ZGlmZiAtLWdpdCBhL2RvY3MvaHRtbC9GQVEuaHRtbCBiL2RvY3MvaHRtbC9GQVEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xN2M2NDkxCi0tLSAvZGV2L251bGwKKysrIGIvZG9jcy9odG1sL0ZBUS5odG1sCkBAIC0wLDAgKzEsNTEgQEAKKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj4KKzx0aXRsZT5WYWxncmluZCBGQVE8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0idmdfYmFzaWMuY3NzIj4KKzxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iRG9jQm9vayBYU0wgU3R5bGVzaGVldHMgVjEuNzguMSI+Cis8bGluayByZWw9ImhvbWUiIGhyZWY9ImluZGV4Lmh0bWwiIHRpdGxlPSJWYWxncmluZCBEb2N1bWVudGF0aW9uIj4KKzxsaW5rIHJlbD0idXAiIGhyZWY9ImluZGV4Lmh0bWwiIHRpdGxlPSJWYWxncmluZCBEb2N1bWVudGF0aW9uIj4KKzxsaW5rIHJlbD0icHJldiIgaHJlZj0ibmwtbWFudWFsLmh0bWwiIHRpdGxlPSIxNC6gTnVsZ3JpbmQ6IHRoZSBtaW5pbWFsIFZhbGdyaW5kIHRvb2wiPgorPGxpbmsgcmVsPSJuZXh0IiBocmVmPSJmYXEuaHRtbCIgdGl0bGU9IlZhbGdyaW5kIEZyZXF1ZW50bHkgQXNrZWQgUXVlc3Rpb25zIj4KKzwvaGVhZD4KKzxib2R5IGJnY29sb3I9IndoaXRlIiB0ZXh0PSJibGFjayIgbGluaz0iIzAwMDBGRiIgdmxpbms9IiM4NDAwODQiIGFsaW5rPSIjMDAwMEZGIj4KKzxkaXY+PHRhYmxlIGNsYXNzPSJuYXYiIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0iMyIgY2VsbHBhZGRpbmc9IjMiIGJvcmRlcj0iMCIgc3VtbWFyeT0iTmF2aWdhdGlvbiBoZWFkZXIiPjx0cj4KKzx0ZCB3aWR0aD0iMjJweCIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPjxhIGFjY2Vzc2tleT0icCIgaHJlZj0ibmwtbWFudWFsLmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvcHJldi5wbmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIyMSIgYm9yZGVyPSIwIiBhbHQ9IlByZXYiPjwvYT48L3RkPgorPHRkIHdpZHRoPSIyNXB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJpbmRleC5odG1sIj48aW1nIHNyYz0iaW1hZ2VzL3VwLnBuZyIgd2lkdGg9IjIxIiBoZWlnaHQ9IjE4IiBib3JkZXI9IjAiIGFsdD0iVXAiPjwvYT48L3RkPgorPHRkIHdpZHRoPSIzMXB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJoIiBocmVmPSJpbmRleC5odG1sIj48aW1nIHNyYz0iaW1hZ2VzL2hvbWUucG5nIiB3aWR0aD0iMjciIGhlaWdodD0iMjAiIGJvcmRlcj0iMCIgYWx0PSJVcCI+PC9hPjwvdGQ+Cis8dGggYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPlZhbGdyaW5kIERvY3VtZW50YXRpb248L3RoPgorPHRkIHdpZHRoPSIyMnB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJuIiBocmVmPSJmYXEuaHRtbCI+PGltZyBzcmM9ImltYWdlcy9uZXh0LnBuZyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjIxIiBib3JkZXI9IjAiIGFsdD0iTmV4dCI+PC9hPjwvdGQ+Cis8L3RyPjwvdGFibGU+PC9kaXY+Cis8ZGl2IGNsYXNzPSJib29rIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+Cis8ZGl2PgorPGRpdj48aDEgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9IkZBUSI+PC9hPlZhbGdyaW5kIEZBUTwvaDE+PC9kaXY+Cis8ZGl2PjxwIGNsYXNzPSJyZWxlYXNlaW5mbyI+UmVsZWFzZSAzLjEyLjAgMjAgT2N0b2JlciAyMDE2PC9wPjwvZGl2PgorPGRpdj48cCBjbGFzcz0iY29weXJpZ2h0Ij5Db3B5cmlnaHQgqSAyMDAwLTIwMTYgPGEgY2xhc3M9InVsaW5rIiBocmVmPSJodHRwOi8vd3d3LnZhbGdyaW5kLm9yZy9pbmZvL2RldmVsb3BlcnMuaHRtbCIgdGFyZ2V0PSJfdG9wIj5WYWxncmluZCBEZXZlbG9wZXJzPC9hPjwvcD48L2Rpdj4KKzxkaXY+PGRpdiBjbGFzcz0ibGVnYWxub3RpY2UiPgorPGEgbmFtZT0iaWRtMTQwNjM5MTE5MjIxMjgwIj48L2E+PHA+RW1haWw6IDxhIGNsYXNzPSJ1bGluayIgaHJlZj0ibWFpbHRvOnZhbGdyaW5kQHZhbGdyaW5kLm9yZyIgdGFyZ2V0PSJfdG9wIj52YWxncmluZEB2YWxncmluZC5vcmc8L2E+PC9wPgorPC9kaXY+PC9kaXY+Cis8L2Rpdj4KKzxocj4KKzwvZGl2PgorPGRpdiBjbGFzcz0idG9jIj4KKzxwPjxiPlRhYmxlIG9mIENvbnRlbnRzPC9iPjwvcD4KKzxkbCBjbGFzcz0idG9jIj48ZHQ+PHNwYW4gY2xhc3M9ImFydGljbGUiPjxhIGhyZWY9ImZhcS5odG1sIj5WYWxncmluZCBGcmVxdWVudGx5IEFza2VkIFF1ZXN0aW9uczwvYT48L3NwYW4+PC9kdD48L2RsPgorPC9kaXY+Cis8L2Rpdj4KKzxkaXY+Cis8YnI+PHRhYmxlIGNsYXNzPSJuYXYiIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0iMyIgY2VsbHBhZGRpbmc9IjIiIGJvcmRlcj0iMCIgc3VtbWFyeT0iTmF2aWdhdGlvbiBmb290ZXIiPgorPHRyPgorPHRkIHJvd3NwYW49IjIiIHdpZHRoPSI0MCUiIGFsaWduPSJsZWZ0Ij4KKzxhIGFjY2Vzc2tleT0icCIgaHJlZj0ibmwtbWFudWFsLmh0bWwiPiZsdDsmbHQ7oDE0LqBOdWxncmluZDogdGhlIG1pbmltYWwgVmFsZ3JpbmQgdG9vbDwvYT6gPC90ZD4KKzx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0iY2VudGVyIj48YSBhY2Nlc3NrZXk9InUiIGhyZWY9ImluZGV4Lmh0bWwiPlVwPC9hPjwvdGQ+Cis8dGQgcm93c3Bhbj0iMiIgd2lkdGg9IjQwJSIgYWxpZ249InJpZ2h0Ij6gPGEgYWNjZXNza2V5PSJuIiBocmVmPSJmYXEuaHRtbCI+VmFsZ3JpbmQgRnJlcXVlbnRseSBBc2tlZCBRdWVzdGlvbnOgJmd0OyZndDs8L2E+Cis8L3RkPgorPC90cj4KKzx0cj48dGQgd2lkdGg9IjIwJSIgYWxpZ249ImNlbnRlciI+PGEgYWNjZXNza2V5PSJoIiBocmVmPSJpbmRleC5odG1sIj5Ib21lPC9hPjwvdGQ+PC90cj4KKzwvdGFibGU+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL2RvY3MvaHRtbC9RdWlja1N0YXJ0Lmh0bWwgYi9kb2NzL2h0bWwvUXVpY2tTdGFydC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEzMDRlZGIKLS0tIC9kZXYvbnVsbAorKysgYi9kb2NzL2h0bWwvUXVpY2tTdGFydC5odG1sCkBAIC0wLDAgKzEsNjEgQEAKKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj4KKzx0aXRsZT5UaGUgVmFsZ3JpbmQgUXVpY2sgU3RhcnQgR3VpZGU8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0idmdfYmFzaWMuY3NzIj4KKzxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iRG9jQm9vayBYU0wgU3R5bGVzaGVldHMgVjEuNzguMSI+Cis8bGluayByZWw9ImhvbWUiIGhyZWY9ImluZGV4Lmh0bWwiIHRpdGxlPSJWYWxncmluZCBEb2N1bWVudGF0aW9uIj4KKzxsaW5rIHJlbD0idXAiIGhyZWY9ImluZGV4Lmh0bWwiIHRpdGxlPSJWYWxncmluZCBEb2N1bWVudGF0aW9uIj4KKzxsaW5rIHJlbD0icHJldiIgaHJlZj0iaW5kZXguaHRtbCIgdGl0bGU9IlZhbGdyaW5kIERvY3VtZW50YXRpb24iPgorPGxpbmsgcmVsPSJuZXh0IiBocmVmPSJxdWljay1zdGFydC5odG1sIiB0aXRsZT0iVGhlIFZhbGdyaW5kIFF1aWNrIFN0YXJ0IEd1aWRlIj4KKzwvaGVhZD4KKzxib2R5IGJnY29sb3I9IndoaXRlIiB0ZXh0PSJibGFjayIgbGluaz0iIzAwMDBGRiIgdmxpbms9IiM4NDAwODQiIGFsaW5rPSIjMDAwMEZGIj4KKzxkaXY+PHRhYmxlIGNsYXNzPSJuYXYiIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0iMyIgY2VsbHBhZGRpbmc9IjMiIGJvcmRlcj0iMCIgc3VtbWFyeT0iTmF2aWdhdGlvbiBoZWFkZXIiPjx0cj4KKzx0ZCB3aWR0aD0iMjJweCIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPjxhIGFjY2Vzc2tleT0icCIgaHJlZj0iaW5kZXguaHRtbCI+PGltZyBzcmM9ImltYWdlcy9wcmV2LnBuZyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjIxIiBib3JkZXI9IjAiIGFsdD0iUHJldiI+PC9hPjwvdGQ+Cis8dGQgd2lkdGg9IjI1cHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9InUiIGhyZWY9ImluZGV4Lmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvdXAucG5nIiB3aWR0aD0iMjEiIGhlaWdodD0iMTgiIGJvcmRlcj0iMCIgYWx0PSJVcCI+PC9hPjwvdGQ+Cis8dGQgd2lkdGg9IjMxcHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvaG9tZS5wbmciIHdpZHRoPSIyNyIgaGVpZ2h0PSIyMCIgYm9yZGVyPSIwIiBhbHQ9IlVwIj48L2E+PC90ZD4KKzx0aCBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+VmFsZ3JpbmQgRG9jdW1lbnRhdGlvbjwvdGg+Cis8dGQgd2lkdGg9IjIycHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9Im4iIGhyZWY9InF1aWNrLXN0YXJ0Lmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvbmV4dC5wbmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIyMSIgYm9yZGVyPSIwIiBhbHQ9Ik5leHQiPjwvYT48L3RkPgorPC90cj48L3RhYmxlPjwvZGl2PgorPGRpdiBjbGFzcz0iYm9vayI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPgorPGRpdj4KKzxkaXY+PGgxIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJRdWlja1N0YXJ0Ij48L2E+VGhlIFZhbGdyaW5kIFF1aWNrIFN0YXJ0IEd1aWRlPC9oMT48L2Rpdj4KKzxkaXY+PHAgY2xhc3M9InJlbGVhc2VpbmZvIj5SZWxlYXNlIDMuMTIuMCAyMCBPY3RvYmVyIDIwMTY8L3A+PC9kaXY+Cis8ZGl2PjxwIGNsYXNzPSJjb3B5cmlnaHQiPkNvcHlyaWdodCCpIDIwMDAtMjAxNiA8YSBjbGFzcz0idWxpbmsiIGhyZWY9Imh0dHA6Ly93d3cudmFsZ3JpbmQub3JnL2luZm8vZGV2ZWxvcGVycy5odG1sIiB0YXJnZXQ9Il90b3AiPlZhbGdyaW5kIERldmVsb3BlcnM8L2E+PC9wPjwvZGl2PgorPGRpdj48ZGl2IGNsYXNzPSJsZWdhbG5vdGljZSI+Cis8YSBuYW1lPSJpZG0xNDA2MzkxMjAwNTQ0MzIiPjwvYT48cD5FbWFpbDogPGEgY2xhc3M9InVsaW5rIiBocmVmPSJtYWlsdG86dmFsZ3JpbmRAdmFsZ3JpbmQub3JnIiB0YXJnZXQ9Il90b3AiPnZhbGdyaW5kQHZhbGdyaW5kLm9yZzwvYT48L3A+Cis8L2Rpdj48L2Rpdj4KKzwvZGl2PgorPGhyPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJ0b2MiPgorPHA+PGI+VGFibGUgb2YgQ29udGVudHM8L2I+PC9wPgorPGRsIGNsYXNzPSJ0b2MiPgorPGR0PjxzcGFuIGNsYXNzPSJhcnRpY2xlIj48YSBocmVmPSJxdWljay1zdGFydC5odG1sIj5UaGUgVmFsZ3JpbmQgUXVpY2sgU3RhcnQgR3VpZGU8L2E+PC9zcGFuPjwvZHQ+Cis8ZGQ+PGRsPgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0icXVpY2stc3RhcnQuaHRtbCNxdWljay1zdGFydC5pbnRybyI+MS4gSW50cm9kdWN0aW9uPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0icXVpY2stc3RhcnQuaHRtbCNxdWljay1zdGFydC5wcmVwYXJlIj4yLiBQcmVwYXJpbmcgeW91ciBwcm9ncmFtPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0icXVpY2stc3RhcnQuaHRtbCNxdWljay1zdGFydC5tY3J1biI+My4gUnVubmluZyB5b3VyIHByb2dyYW0gdW5kZXIgTWVtY2hlY2s8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJxdWljay1zdGFydC5odG1sI3F1aWNrLXN0YXJ0LmludGVycHJldCI+NC4gSW50ZXJwcmV0aW5nIE1lbWNoZWNrJ3Mgb3V0cHV0PC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0icXVpY2stc3RhcnQuaHRtbCNxdWljay1zdGFydC5jYXZlYXRzIj41LiBDYXZlYXRzPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0icXVpY2stc3RhcnQuaHRtbCNxdWljay1zdGFydC5pbmZvIj42LiBNb3JlIGluZm9ybWF0aW9uPC9hPjwvc3Bhbj48L2R0PgorPC9kbD48L2RkPgorPC9kbD4KKzwvZGl2PgorPC9kaXY+Cis8ZGl2PgorPGJyPjx0YWJsZSBjbGFzcz0ibmF2IiB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjMiIGNlbGxwYWRkaW5nPSIyIiBib3JkZXI9IjAiIHN1bW1hcnk9Ik5hdmlnYXRpb24gZm9vdGVyIj4KKzx0cj4KKzx0ZCByb3dzcGFuPSIyIiB3aWR0aD0iNDAlIiBhbGlnbj0ibGVmdCI+Cis8YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImluZGV4Lmh0bWwiPiZsdDsmbHQ7oFZhbGdyaW5kIERvY3VtZW50YXRpb248L2E+oDwvdGQ+Cis8dGQgd2lkdGg9IjIwJSIgYWxpZ249ImNlbnRlciI+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJpbmRleC5odG1sIj5VcDwvYT48L3RkPgorPHRkIHJvd3NwYW49IjIiIHdpZHRoPSI0MCUiIGFsaWduPSJyaWdodCI+oDxhIGFjY2Vzc2tleT0ibiIgaHJlZj0icXVpY2stc3RhcnQuaHRtbCI+VGhlIFZhbGdyaW5kIFF1aWNrIFN0YXJ0IEd1aWRloCZndDsmZ3Q7PC9hPgorPC90ZD4KKzwvdHI+Cis8dHI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJjZW50ZXIiPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iaW5kZXguaHRtbCI+SG9tZTwvYT48L3RkPjwvdHI+Cis8L3RhYmxlPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9kb2NzL2h0bWwvYmJ2LW1hbnVhbC5odG1sIGIvZG9jcy9odG1sL2Jidi1tYW51YWwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMDM5MTkzCi0tLSAvZGV2L251bGwKKysrIGIvZG9jcy9odG1sL2Jidi1tYW51YWwuaHRtbApAQCAtMCwwICsxLDM2NiBAQAorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiPgorPHRpdGxlPjEyLqBCQlY6IGFuIGV4cGVyaW1lbnRhbCBiYXNpYyBibG9jayB2ZWN0b3IgZ2VuZXJhdGlvbiB0b29sPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9InZnX2Jhc2ljLmNzcyI+Cis8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkRvY0Jvb2sgWFNMIFN0eWxlc2hlZXRzIFYxLjc4LjEiPgorPGxpbmsgcmVsPSJob21lIiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0iVmFsZ3JpbmQgRG9jdW1lbnRhdGlvbiI+Cis8bGluayByZWw9InVwIiBocmVmPSJtYW51YWwuaHRtbCIgdGl0bGU9IlZhbGdyaW5kIFVzZXIgTWFudWFsIj4KKzxsaW5rIHJlbD0icHJldiIgaHJlZj0ic2ctbWFudWFsLmh0bWwiIHRpdGxlPSIxMS6gU0dDaGVjazogYW4gZXhwZXJpbWVudGFsIHN0YWNrIGFuZCBnbG9iYWwgYXJyYXkgb3ZlcnJ1biBkZXRlY3RvciI+Cis8bGluayByZWw9Im5leHQiIGhyZWY9ImxrLW1hbnVhbC5odG1sIiB0aXRsZT0iMTMuoExhY2tleTogYW4gZXhhbXBsZSB0b29sIj4KKzwvaGVhZD4KKzxib2R5IGJnY29sb3I9IndoaXRlIiB0ZXh0PSJibGFjayIgbGluaz0iIzAwMDBGRiIgdmxpbms9IiM4NDAwODQiIGFsaW5rPSIjMDAwMEZGIj4KKzxkaXY+PHRhYmxlIGNsYXNzPSJuYXYiIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0iMyIgY2VsbHBhZGRpbmc9IjMiIGJvcmRlcj0iMCIgc3VtbWFyeT0iTmF2aWdhdGlvbiBoZWFkZXIiPjx0cj4KKzx0ZCB3aWR0aD0iMjJweCIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPjxhIGFjY2Vzc2tleT0icCIgaHJlZj0ic2ctbWFudWFsLmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvcHJldi5wbmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIyMSIgYm9yZGVyPSIwIiBhbHQ9IlByZXYiPjwvYT48L3RkPgorPHRkIHdpZHRoPSIyNXB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJtYW51YWwuaHRtbCI+PGltZyBzcmM9ImltYWdlcy91cC5wbmciIHdpZHRoPSIyMSIgaGVpZ2h0PSIxOCIgYm9yZGVyPSIwIiBhbHQ9IlVwIj48L2E+PC90ZD4KKzx0ZCB3aWR0aD0iMzFweCIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iaW5kZXguaHRtbCI+PGltZyBzcmM9ImltYWdlcy9ob21lLnBuZyIgd2lkdGg9IjI3IiBoZWlnaHQ9IjIwIiBib3JkZXI9IjAiIGFsdD0iVXAiPjwvYT48L3RkPgorPHRoIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj5WYWxncmluZCBVc2VyIE1hbnVhbDwvdGg+Cis8dGQgd2lkdGg9IjIycHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImxrLW1hbnVhbC5odG1sIj48aW1nIHNyYz0iaW1hZ2VzL25leHQucG5nIiB3aWR0aD0iMTgiIGhlaWdodD0iMjEiIGJvcmRlcj0iMCIgYWx0PSJOZXh0Ij48L2E+PC90ZD4KKzwvdHI+PC90YWJsZT48L2Rpdj4KKzxkaXYgY2xhc3M9ImNoYXB0ZXIiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgxIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJiYnYtbWFudWFsIj48L2E+MTIuoEJCVjogYW4gZXhwZXJpbWVudGFsIGJhc2ljIGJsb2NrIHZlY3RvciBnZW5lcmF0aW9uIHRvb2w8L2gxPjwvZGl2PjwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0idG9jIj4KKzxwPjxiPlRhYmxlIG9mIENvbnRlbnRzPC9iPjwvcD4KKzxkbCBjbGFzcz0idG9jIj4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9ImJidi1tYW51YWwuaHRtbCNiYnYtbWFudWFsLm92ZXJ2aWV3Ij4xMi4xLiBPdmVydmlldzwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9ImJidi1tYW51YWwuaHRtbCNiYnYtbWFudWFsLnF1aWNrc3RhcnQiPjEyLjIuIFVzaW5nIEJhc2ljIEJsb2NrIFZlY3RvcnMgdG8gY3JlYXRlIFNpbVBvaW50czwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9ImJidi1tYW51YWwuaHRtbCNiYnYtbWFudWFsLnVzYWdlIj4xMi4zLiBCQlYgQ29tbWFuZC1saW5lIE9wdGlvbnM8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJiYnYtbWFudWFsLmh0bWwjYmJ2LW1hbnVhbC5maWxlZm9ybWF0Ij4xMi40LiBCYXNpYyBCbG9jayBWZWN0b3IgRmlsZSBGb3JtYXQ8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJiYnYtbWFudWFsLmh0bWwjYmJ2LW1hbnVhbC5pbXBsZW1lbnRhdGlvbiI+MTIuNS4gSW1wbGVtZW50YXRpb248L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJiYnYtbWFudWFsLmh0bWwjYmJ2LW1hbnVhbC50aHJlYWRzdXBwb3J0Ij4xMi42LiBUaHJlYWRlZCBFeGVjdXRhYmxlIFN1cHBvcnQ8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJiYnYtbWFudWFsLmh0bWwjYmJ2LW1hbnVhbC52YWxpZGF0aW9uIj4xMi43LiBWYWxpZGF0aW9uPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0iYmJ2LW1hbnVhbC5odG1sI2Jidi1tYW51YWwucGVyZm9ybWFuY2UiPjEyLjguIFBlcmZvcm1hbmNlPC9hPjwvc3Bhbj48L2R0PgorPC9kbD4KKzwvZGl2PgorPHA+VG8gdXNlIHRoaXMgdG9vbCwgeW91IG11c3Qgc3BlY2lmeQorPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS10b29sPWV4cC1iYnY8L2NvZGU+IG9uIHRoZSBWYWxncmluZAorY29tbWFuZCBsaW5lLjwvcD4KKzxkaXYgY2xhc3M9InNlY3QxIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+Cis8YSBuYW1lPSJiYnYtbWFudWFsLm92ZXJ2aWV3Ij48L2E+MTIuMS6gT3ZlcnZpZXc8L2gyPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+CisgICBBIGJhc2ljIGJsb2NrIGlzIGEgbGluZWFyIHNlY3Rpb24gb2YgY29kZSB3aXRoIG9uZSBlbnRyeSBwb2ludCBhbmQgb25lIGV4aXQKKyAgIHBvaW50LiAgQSA8c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT5iYXNpYyBibG9jayB2ZWN0b3I8L2VtPjwvc3Bhbj4gKEJCVikgaXMgYSBsaXN0IG9mIGFsbAorICAgYmFzaWMgYmxvY2tzIGVudGVyZWQgZHVyaW5nIHByb2dyYW0gZXhlY3V0aW9uLCBhbmQgYSBjb3VudCBvZiBob3cgbWFueQorICAgdGltZXMgZWFjaCBiYXNpYyBibG9jayB3YXMgcnVuLgorPC9wPgorPHA+CisgICBCQlYgaXMgYSB0b29sIHRoYXQgZ2VuZXJhdGVzIGJhc2ljIGJsb2NrIHZlY3RvcnMgZm9yIHVzZSB3aXRoIHRoZSAKKyAgIDxhIGNsYXNzPSJ1bGluayIgaHJlZj0iaHR0cDovL3d3dy5jc2UudWNzZC5lZHUvfmNhbGRlci9zaW1wb2ludC8iIHRhcmdldD0iX3RvcCI+U2ltUG9pbnQ8L2E+CisgICBhbmFseXNpcyB0b29sLiAKKyAgIFRoZSBTaW1Qb2ludCBtZXRob2RvbG9neSBlbmFibGVzIHNwZWVkaW5nIHVwIGFyY2hpdGVjdHVyYWwgCisgICBzaW11bGF0aW9ucyBieSBvbmx5IHJ1bm5pbmcgYSBzbWFsbCBwb3J0aW9uIG9mIGEgcHJvZ3JhbQorICAgYW5kIHRoZW4gZXh0cmFwb2xhdGluZyB0b3RhbCBiZWhhdmlvciBmcm9tIHRoaXMKKyAgIHNtYWxsIHBvcnRpb24uICBNb3N0IHByb2dyYW1zIGV4aGliaXQgcGhhc2UtYmFzZWQgYmVoYXZpb3IsIHdoaWNoCisgICBtZWFucyB0aGF0IGF0IHZhcmlvdXMgdGltZXMgZHVyaW5nIGV4ZWN1dGlvbiBhIHByb2dyYW0gd2lsbCBlbmNvdW50ZXIgCisgICBpbnRlcnZhbHMgb2YgdGltZSB3aGVyZSB0aGUgY29kZSBiZWhhdmVzIHNpbWlsYXJseSB0byBhIHByZXZpb3VzCisgICBpbnRlcnZhbC4gIElmIHlvdSBjYW4gZGV0ZWN0IHRoZXNlIGludGVydmFscyBhbmQgZ3JvdXAgdGhlbSB0b2dldGhlciwgCisgICBhbiBhcHByb3hpbWF0aW9uIG9mIHRoZSB0b3RhbCBwcm9ncmFtIGJlaGF2aW9yIGNhbiBiZSBvYnRhaW5lZAorICAgYnkgb25seSBzaW11bGF0aW5nIGEgYmFyZSBtaW5pbXVtIG51bWJlciBvZiBpbnRlcnZhbHMsIGFuZCB0aGVuIHNjYWxpbmcgCisgICB0aGUgcmVzdWx0cy4KKzwvcD4KKzxwPgorICBJbiBjb21wdXRlciBhcmNoaXRlY3R1cmUgcmVzZWFyY2gsIHJ1bm5pbmcgYSAKKyAgYmVuY2htYXJrIG9uIGEgY3ljbGUtYWNjdXJhdGUgc2ltdWxhdG9yIGNhbiBjYXVzZSBzbG93ZG93bnMgb24gdGhlIG9yZGVyCisgIG9mIDEwMDAgdGltZXMsIG1ha2luZyBpdCB0YWtlIGRheXMsIHdlZWtzLCBvciBldmVuIGxvbmdlciB0byBydW4gZnVsbAorICBiZW5jaG1hcmtzLiAgQnkgdXRpbGl6aW5nIFNpbVBvaW50IHRoaXMgY2FuIGJlIHJlZHVjZWQgc2lnbmlmaWNhbnRseSwKKyAgdXN1YWxseSBieSA5MC05NSUsIHdoaWxlIHN0aWxsIHJldGFpbmluZyByZWFzb25hYmxlIGFjY3VyYWN5LgorPC9wPgorPHA+CisgICBBIG1vcmUgY29tcGxldGUgaW50cm9kdWN0aW9uIHRvIGhvdyBTaW1Qb2ludCB3b3JrcyBjYW4gYmUgCisgICBmb3VuZCBpbiB0aGUgcGFwZXIgIkF1dG9tYXRpY2FsbHkgQ2hhcmFjdGVyaXppbmcgTGFyZ2UgU2NhbGUgCisgICBQcm9ncmFtIEJlaGF2aW9yIiBieSBULiBTaGVyd29vZCwgRS4gUGVyZWxtYW4sIEcuIEhhbWVybHksIGFuZCAKKyAgIEIuIENhbGRlci4gIAorPC9wPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MSI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPgorPGEgbmFtZT0iYmJ2LW1hbnVhbC5xdWlja3N0YXJ0Ij48L2E+MTIuMi6gVXNpbmcgQmFzaWMgQmxvY2sgVmVjdG9ycyB0byBjcmVhdGUgU2ltUG9pbnRzPC9oMj48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPgorICAgVG8gcXVpY2tseSBjcmVhdGUgYSBiYXNpYyBibG9jayB2ZWN0b3IgZmlsZSwgeW91IHdpbGwgY2FsbCBWYWxncmluZAorICAgbGlrZSB0aGlzOgorCisgICA8L3A+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dmFsZ3JpbmQgLS10b29sPWV4cC1iYnYgL2Jpbi9sczwvcHJlPgorPHA+CisKKyAgIEluIHRoaXMgY2FzZSB3ZSBhcmUgcnVubmluZyBvbiA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPi9iaW4vbHM8L2NvZGU+LAorICAgYnV0IHRoaXMgY2FuIGJlIGFueSBwcm9ncmFtLiAgQnkgZGVmYXVsdCBhIGZpbGUgY2FsbGVkCisgICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmJiLm91dC5QSUQ8L2NvZGU+IHdpbGwgYmUgY3JlYXRlZCwKKyAgIHdoZXJlIFBJRCBpcyByZXBsYWNlZCBieSB0aGUgcHJvY2VzcyBJRCBvZiB0aGUgcnVubmluZyBwcm9jZXNzLgorICAgVGhpcyBmaWxlIGNvbnRhaW5zIHRoZSBiYXNpYyBibG9jayB2ZWN0b3IuICBGb3IgbG9uZy1ydW5uaW5nIHByb2dyYW1zCisgICB0aGlzIGZpbGUgY2FuIGJlIHF1aXRlIGxhcmdlLCBzbyBpdCBtaWdodCBiZSB3aXNlIHRvIGNvbXByZXNzCisgICBpdCB3aXRoIGd6aXAgb3Igc29tZSBvdGhlciBjb21wcmVzc2lvbiBwcm9ncmFtLgorPC9wPgorPHA+CisgICBUbyBjcmVhdGUgYWN0dWFsIFNpbVBvaW50IHJlc3VsdHMsIHlvdSB3aWxsIG5lZWQgdGhlIFNpbVBvaW50IHV0aWxpdHksCisgICBhdmFpbGFibGUgZnJvbSB0aGUgCisgICA8YSBjbGFzcz0idWxpbmsiIGhyZWY9Imh0dHA6Ly93d3cuY3NlLnVjc2QuZWR1L35jYWxkZXIvc2ltcG9pbnQvIiB0YXJnZXQ9Il90b3AiPlNpbVBvaW50IHdlYnBhZ2U8L2E+LgorICAgQXNzdW1pbmcgeW91IGhhdmUgZG93bmxvYWRlZCBTaW1Qb2ludCAzLjIgYW5kIGNvbXBpbGVkIGl0LAorICAgY3JlYXRlIFNpbVBvaW50IHJlc3VsdHMgd2l0aCBhIGNvbW1hbmQgbGlrZSB0aGUgZm9sbG93aW5nOgorICAgICAgCisgICA8L3A+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CisuL1NpbVBvaW50LjMuMi9iaW4vc2ltcG9pbnQgLWlucHV0VmVjdG9yc0d6aXBwZWQgXAorICAgIC1sb2FkRlZGaWxlIGJiLm91dC4xMjM0Lmd6IFwKKyAgICAtayA1IC1zYXZlU2ltcG9pbnRzIHJlc3VsdHMuc2ltcHRzIFwKKyAgICAtc2F2ZVNpbXBvaW50V2VpZ2h0cyByZXN1bHRzLndlaWdodHM8L3ByZT4KKzxwPgorCisgICB3aGVyZSBiYi5vdXQuMTIzNC5neiBpcyB5b3VyIGNvbXByZXNzZWQgYmFzaWMgYmxvY2sgdmVjdG9yIGZpbGUKKyAgIGdlbmVyYXRlZCBieSBCQlYuCis8L3A+Cis8cD4gICAKKyAgIFRoZSBTaW1Qb2ludCB1dGlsaXR5IGRvZXMgcmFuZG9tIGxpbmVhciBwcm9qZWN0aW9uIHVzaW5nIDE1LWRpbWVuc2lvbnMsCisgICB0aGVuIGRvZXMgay1tZWFuIGNsdXN0ZXJpbmcgdG8gY2FsY3VsYXRlIHdoaWNoIGludGVydmFscyBhcmUgCisgICBvZiBpbnRlcmVzdC4gIEluIHRoaXMgZXhhbXBsZSB3ZSBzcGVjaWZ5IDUgaW50ZXJ2YWxzIHdpdGggdGhlIAorICAgLWsgNSBvcHRpb24uICAgCis8L3A+Cis8cD4gICAKKyAgIFRoZSBvdXRwdXRzIGZyb20gdGhlIFNpbVBvaW50IHJ1biBhcmUgdGhlIAorICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5yZXN1bHRzLnNpbXB0czwvY29kZT4KKyAgIGFuZCA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPnJlc3VsdHMud2VpZ2h0czwvY29kZT4gZmlsZXMuCisgICBUaGUgZmlyc3QgaG9sZHMgdGhlIDUgbW9zdCByZWxldmFudCBpbnRlcnZhbHMgb2YgdGhlIHByb2dyYW0uCisgICBUaGUgc2Vjb25kcyBob2xkcyB0aGUgd2VpZ2h0IHRvIHNjYWxlIGVhY2ggaW50ZXJ2YWwgYnkgd2hlbgorICAgZXh0cmFwb2xhdGluZyBmdWxsLXByb2dyYW0gYmVoYXZpb3IuICBUaGUgaW50ZXJ2YWxzIGFuZCB0aGUgd2VpZ2h0cworICAgY2FuIGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCBhIHNpbXVsYXRvciB0aGF0IHN1cHBvcnRzCisgICBmYXN0LWZvcndhcmRpbmc7IHlvdSBmYXN0LWZvcndhcmQgdG8gdGhlIGludGVydmFsIG9mIGludGVyZXN0LAorICAgY29sbGVjdCBzdGF0cyBmb3IgdGhlIGRlc2lyZWQgaW50ZXJ2YWwgbGVuZ3RoLCB0aGVuIHVzZQorICAgc3RhdGlzdGljcyBnYXRoZXJlZCBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSB3ZWlnaHRzIHRvIAorICAgY2FsY3VsYXRlIHlvdXIgcmVzdWx0cy4KKzwvcD4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDEiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj4KKzxhIG5hbWU9ImJidi1tYW51YWwudXNhZ2UiPjwvYT4xMi4zLqBCQlYgQ29tbWFuZC1saW5lIE9wdGlvbnM8L2gyPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+IEJCVi1zcGVjaWZpYyBjb21tYW5kLWxpbmUgb3B0aW9ucyBhcmU6PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij4KKzxhIG5hbWU9ImJidi5vcHRzLmxpc3QiPjwvYT48ZGwgY2xhc3M9InZhcmlhYmxlbGlzdCI+Cis8ZHQ+Cis8YSBuYW1lPSJvcHQuYmItb3V0LWZpbGUiPjwvYT48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tYmItb3V0LWZpbGU9Jmx0O25hbWUmZ3Q7IFtkZWZhdWx0OiBiYi5vdXQuJXBdIDwvY29kZT4KKyAgICAgPC9zcGFuPgorPC9kdD4KKzxkZD48cD4KKyAgICAgICAgICAgVGhpcyBvcHRpb24gc2VsZWN0cyB0aGUgbmFtZSBvZiB0aGUgYmFzaWMgYmxvY2sgdmVjdG9yIGZpbGUuICBUaGUKKyAgICAgICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+JXA8L2NvZGU+IGFuZCA8Y29kZSBjbGFzcz0ib3B0aW9uIj4lcTwvY29kZT4gZm9ybWF0IHNwZWNpZmllcnMgY2FuIGJlCisgICAgICAgICAgIHVzZWQgdG8gZW1iZWQgdGhlIHByb2Nlc3MgSUQgYW5kL29yIHRoZSBjb250ZW50cyBvZiBhbiBlbnZpcm9ubWVudAorICAgICAgICAgICB2YXJpYWJsZSBpbiB0aGUgbmFtZSwgYXMgaXMgdGhlIGNhc2UgZm9yIHRoZSBjb3JlIG9wdGlvbgorICAgICAgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj48YSBjbGFzcz0ieHJlZiIgaHJlZj0ibWFudWFsLWNvcmUuaHRtbCNvcHQubG9nLWZpbGUiPi0tbG9nLWZpbGU8L2E+PC9jb2RlPi4KKyAgICAgICAgPC9wPjwvZGQ+Cis8ZHQ+Cis8YSBuYW1lPSJvcHQucGMtb3V0LWZpbGUiPjwvYT48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tcGMtb3V0LWZpbGU9Jmx0O25hbWUmZ3Q7IFtkZWZhdWx0OiBwYy5vdXQuJXBdIDwvY29kZT4KKyAgICAgPC9zcGFuPgorPC9kdD4KKzxkZD48cD4KKyAgICAgICAgICAgVGhpcyBvcHRpb24gc2VsZWN0cyB0aGUgbmFtZSBvZiB0aGUgUEMgZmlsZS4gIAorICAgICAgICAgICBUaGlzIGZpbGUgaG9sZHMgcHJvZ3JhbSBjb3VudGVyIGFkZHJlc3NlcworICAgICAgICAgICBhbmQgZnVuY3Rpb24gbmFtZSBpbmZvIGZvciB0aGUgdmFyaW91cyBiYXNpYyBibG9ja3MuCisgICAgICAgICAgIFRoaXMgY2FuIGJlIHVzZWQgaW4gY29uanVuY3Rpb24KKyAgICAgICAgICAgd2l0aCB0aGUgYmFzaWMgYmxvY2sgdmVjdG9yIGZpbGUgdG8gZmFzdC1mb3J3YXJkIHZpYSBmdW5jdGlvbiBuYW1lcworICAgICAgICAgICBpbnN0ZWFkIG9mIGp1c3QgaW5zdHJ1Y3Rpb24gY291bnRzLiAgVGhlIAorICAgICAgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4lcDwvY29kZT4gYW5kIDxjb2RlIGNsYXNzPSJvcHRpb24iPiVxPC9jb2RlPiBmb3JtYXQgc3BlY2lmaWVycyBjYW4gYmUKKyAgICAgICAgICAgdXNlZCB0byBlbWJlZCB0aGUgcHJvY2VzcyBJRCBhbmQvb3IgdGhlIGNvbnRlbnRzIG9mIGFuIGVudmlyb25tZW50CisgICAgICAgICAgIHZhcmlhYmxlIGluIHRoZSBuYW1lLCBhcyBpcyB0aGUgY2FzZSBmb3IgdGhlIGNvcmUgb3B0aW9uCisgICAgICAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPjxhIGNsYXNzPSJ4cmVmIiBocmVmPSJtYW51YWwtY29yZS5odG1sI29wdC5sb2ctZmlsZSI+LS1sb2ctZmlsZTwvYT48L2NvZGU+LgorICAgICAgICA8L3A+PC9kZD4KKzxkdD4KKzxhIG5hbWU9Im9wdC5pbnRlcnZhbC1zaXplIj48L2E+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWludGVydmFsLXNpemU9Jmx0O251bWJlciZndDsgW2RlZmF1bHQ6IDEwMDAwMDAwMF0gPC9jb2RlPgorICAgICAgPC9zcGFuPgorPC9kdD4KKzxkZD48cD4KKyAgICAgICAgIFRoaXMgb3B0aW9uIHNlbGVjdHMgdGhlIHNpemUgb2YgdGhlIGludGVydmFsIHRvIHVzZS4gIAorICAgICAgICAgVGhlIGRlZmF1bHQgaXMgMTAwIAorICAgICAgICAgbWlsbGlvbiBpbnN0cnVjdGlvbnMsIHdoaWNoIGlzIGEgY29tbW9ubHkgdXNlZCB2YWx1ZS4gIAorICAgICAgICAgT3RoZXIgc2l6ZXMgY2FuIGJlIHVzZWQ7IHNtYWxsZXIgaW50ZXJ2YWxzIGNhbiBoZWxwIHByb2dyYW1zCisgICAgICAgICB3aXRoIGZpbmVyLWdyYWluZWQgcGhhc2VzLiAgSG93ZXZlciBzbWFsbGVyIGludGVydmFsIHNpemUKKyAgICAgICAgIGNhbiBsZWFkIHRvIGFjY3VyYWN5IGlzc3VlcyBkdWUgdG8gd2FybS11cCBlZmZlY3RzIAorICAgICAgICAgKFdoZW4gZmFzdC1mb3J3YXJkaW5nIHRoZSB2YXJpb3VzIGFyY2hpdGVjdHVyYWwgZmVhdHVyZXMKKyAgICAgICAgIHdpbGwgYmUgdW4taW5pdGlhbGl6ZWQsIGFuZCBpdCB3aWxsIHRha2Ugc29tZSBudW1iZXIKKyAgICAgICAgIG9mIGluc3RydWN0aW9ucyBiZWZvcmUgdGhleSAid2FybSB1cCIgdG8gdGhlIHN0YXRlIGEgCisgICAgICAgICBmdWxsIHNpbXVsYXRpb24gd291bGQgYmUgYXQgd2l0aG91dCB0aGUgZmFzdC1mb3J3YXJkaW5nLgorICAgICAgICAgTGFyZ2UgaW50ZXJ2YWwgc2l6ZXMgdGVuZCB0byBtaXRpZ2F0ZSB0aGlzLikKKyAgICAgIDwvcD48L2RkPgorPGR0PgorPGEgbmFtZT0ib3B0Lmluc3RyLWNvdW50LW9ubHkiPjwvYT48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0taW5zdHItY291bnQtb25seSBbZGVmYXVsdDogbm9dIDwvY29kZT4KKyAgICAgPC9zcGFuPgorPC9kdD4KKzxkZD48cD4KKyAgICAgICAgICAgVGhpcyBvcHRpb24gdGVsbHMgdGhlIHRvb2wgdG8gb25seSBkaXNwbGF5IGluc3RydWN0aW9uIGNvdW50CisgICAgICAgICAgIHRvdGFscywgYW5kIHRvIG5vdCBnZW5lcmF0ZSB0aGUgYWN0dWFsIGJhc2ljIGJsb2NrIHZlY3RvciBmaWxlLgorICAgICAgICAgICBUaGlzIGlzIHVzZWZ1bCBmb3IgZGVidWdnaW5nLCBhbmQgZm9yIGdhdGhlcmluZyBpbnN0cnVjdGlvbiBjb3VudAorICAgICAgICAgICBpbmZvIHdpdGhvdXQgZ2VuZXJhdGluZyB0aGUgbGFyZ2UgYmFzaWMgYmxvY2sgdmVjdG9yIGZpbGVzLgorICAgICAgICA8L3A+PC9kZD4KKzwvZGw+Cis8L2Rpdj4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDEiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj4KKzxhIG5hbWU9ImJidi1tYW51YWwuZmlsZWZvcm1hdCI+PC9hPjEyLjQuoEJhc2ljIEJsb2NrIFZlY3RvciBGaWxlIEZvcm1hdDwvaDI+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD4gIAorICBUaGUgQmFzaWMgQmxvY2sgVmVjdG9yIGlzIGR1bXBlZCBhdCBmaXhlZCBpbnRlcnZhbHMuICBUaGlzCisgIGlzIGNvbW1vbmx5IGRvbmUgZXZlcnkgMTAwIG1pbGxpb24gaW5zdHJ1Y3Rpb25zOyB0aGUgCisgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0taW50ZXJ2YWwtc2l6ZTwvY29kZT4gb3B0aW9uIGNhbiBiZSAKKyAgdXNlZCB0byBjaGFuZ2UgdGhpcy4KKzwvcD4KKzxwPgorICBUaGUgb3V0cHV0IGZpbGUgbG9va3MgbGlrZSB0aGlzOgorPC9wPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPgorVDo0NToxMDI0IDoxODk6OTkzNDMKK1Q6MTE6Nzg1NzMgOjE1OjEzNTMgIDo1NjoxCitUOjE4OjQ1IDoxMjoxMzUzNTMgOjU2Ojc4IDMxNDo0MzI0MjYzPC9wcmU+Cis8cD4KKyAgRWFjaCBuZXcgaW50ZXJ2YWwgc3RhcnRzIHdpdGggYSBULiAgIFRoaXMgaXMgZm9sbG93ZWQgb24gdGhlIHNhbWUgbGluZQorICBieSBhIHNlcmllcyBvZiBiYXNpYyBibG9jayBhbmQgZnJlcXVlbmN5IHBhaXJzLCBvbmUgZm9yIGVhY2gKKyAgYmFzaWMgYmxvY2sgdGhhdCB3YXMgZW50ZXJlZCBkdXJpbmcgdGhlIGludGVydmFsLiAgVGhlIGZvcm1hdCBmb3IKKyAgZWFjaCBibG9jay9mcmVxdWVuY3kgcGFpciBpcyBhIGNvbG9uLCBmb2xsb3dlZCBieSBhIG51bWJlciB0aGF0CisgIHVuaXF1ZWx5IGlkZW50aWZpZXMgdGhlIGJhc2ljIGJsb2NrLCBhbm90aGVyIGNvbG9uLCBhbmQgdGhlbgorICB0aGUgZnJlcXVlbmN5ICh3aGljaCBpcyB0aGUgbnVtYmVyIG9mIHRpbWVzIHRoZSBibG9jayB3YXMgZW50ZXJlZCwKKyAgbXVsdGlwbGllZCBieSB0aGUgbnVtYmVyIG9mIGluc3RydWN0aW9ucyBpbiB0aGUgYmxvY2spLiAgVGhlCisgIHBhaXJzIGFyZSBzZXBhcmF0ZWQgZnJvbSBlYWNoIG90aGVyIGJ5IGEgc3BhY2UuCis8L3A+Cis8cD4KKyAgVGhlIGZyZXF1ZW5jeSBjb3VudCBpcyBtdWx0aXBsaWVkIGJ5IHRoZSBudW1iZXIgb2YgaW5zdHJ1Y3Rpb25zIHRoYXQgYXJlIAorICBpbiB0aGUgYmFzaWMgYmxvY2ssIGluIG9yZGVyIHRvIHdlaWdoIHRoZSBjb3VudCBzbyB0aGF0IGluc3RydWN0aW9ucyBpbiAKKyAgc21hbGwgYmFzaWMgYmxvY2tzIGFyZW4ndCBjb3VudGVkIGFzIG1vcmUgaW1wb3J0YW50IHRoYW4gaW5zdHJ1Y3Rpb25zIAorICBpbiBsYXJnZSBiYXNpYyBibG9ja3MuCis8L3A+Cis8cD4KKyAgVGhlIFNpbVBvaW50IHByb2dyYW0gb25seSBwcm9jZXNzZXMgbGluZXMgdGhhdCBzdGFydCB3aXRoIGEgIlQiLiAgQWxsCisgIG90aGVyIGxpbmVzIGFyZSBpZ25vcmVkLiAgVHJhZGl0aW9uYWxseSBjb21tZW50cyBhcmUgaW5kaWNhdGVkIGJ5CisgIHN0YXJ0aW5nIGEgbGluZSB3aXRoIGEgIiMiIGNoYXJhY3Rlci4gIFNvbWUgb3RoZXIgQkJWIGdlbmVyYXRpb24gdG9vbHMsCisgIHN1Y2ggYXMgUGluUG9pbnRzLCBnZW5lcmF0ZSBsaW5lcyBiZWdpbm5pbmcgd2l0aCBsZXR0ZXJzIG90aGVyIHRoYW4gIlQiCisgIHRvIGluZGljYXRlIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHByb2dyYW0gYmVpbmcgcnVuLiAgV2UgZG8KKyAgbm90IGdlbmVyYXRlIHRoZXNlLCBhcyB0aGUgU2ltUG9pbnQgdXRpbGl0eSBpZ25vcmVzIHRoZW0uCis8L3A+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QxIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+Cis8YSBuYW1lPSJiYnYtbWFudWFsLmltcGxlbWVudGF0aW9uIj48L2E+MTIuNS6gSW1wbGVtZW50YXRpb248L2gyPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+CisgICBWYWxncmluZCBwcm92aWRlcyBhbGwgb2YgdGhlIGluZm9ybWF0aW9uIG5lY2Vzc2FyeSB0byBjcmVhdGUKKyAgIEJCViBmaWxlcy4gIEluIHRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uLCBhbGwgaW5zdHJ1Y3Rpb25zCisgICBhcmUgaW5zdHJ1bWVudGVkLiAgVGhpcyBpcyBzbG93ZXIgKGJ5IGFwcHJveGltYXRlbHkgYSBmYWN0b3IKKyAgIG9mIHR3bykgdGhhbiBhIG1ldGhvZCB0aGF0IGluc3RydW1lbnRzIGF0IHRoZSBiYXNpYyBibG9jayBsZXZlbCwgCisgICBidXQgdGhlcmUgYXJlIHNvbWUgY29tcGxpY2F0aW9ucyAoZXNwZWNpYWxseSB3aXRoIHJlcCBwcmVmaXgKKyAgIGRldGVjdGlvbikgdGhhdCBtYWtlIHRoYXQgbWV0aG9kIG1vcmUgZGlmZmljdWx0LgorPC9wPgorPHA+CisgICBWYWxncmluZCBhY3R1YWxseSBwcm92aWRlcyBpbnN0cnVtZW50YXRpb24gYXQgYSBzdXBlcmJsb2NrIGxldmVsLgorICAgQSBzdXBlcmJsb2NrIGhhcyBvbmUgZW50cnkgcG9pbnQgYnV0IHVubGlrZSBiYXNpYyBibG9ja3MgY2FuCisgICBoYXZlIG11bHRpcGxlIGV4aXQgcG9pbnRzLiAgT25jZSBhIGJyYW5jaCBvY2N1cnMgaW50byB0aGUgbWlkZGxlCisgICBvZiBhIGJsb2NrLCBpdCBpcyBzcGxpdCBpbnRvIGEgbmV3IGJhc2ljIGJsb2NrLiAgQmVjYXVzZQorICAgVmFsZ3JpbmQgY2Fubm90IHByb2R1Y2UgInRydWUiIGJhc2ljIGJsb2NrcywgdGhlIGdlbmVyYXRlZAorICAgQkJWIHZlY3RvcnMgd2lsbCBiZSBkaWZmZXJlbnQgdGhhbiB0aG9zZSBnZW5lcmF0ZWQgYnkgb3RoZXIgdG9vbHMuCisgICBJbiBwcmFjdGljZSB0aGlzIGRvZXMgbm90IHNlZW0gdG8gYWZmZWN0IHRoZSBhY2N1cmFjeSBvZiB0aGUKKyAgIFNpbVBvaW50IHJlc3VsdHMuICBXZSBkbyBpbnRlcm5hbGx5IGZvcmNlIHRoZQorICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS12ZXgtZ3Vlc3QtY2hhc2UtdGhyZXNoPTA8L2NvZGU+CisgICBvcHRpb24gdG8gVmFsZ3JpbmQgd2hpY2ggZm9yY2VzIGEgbW9yZSBiYXNpYy1ibG9jay1saWtlCisgICBiZWhhdmlvci4KKzwvcD4KKzxwPgorICAgV2hlbiBhIHN1cGVyYmxvY2sgaXMgcnVuIGZvciB0aGUgZmlyc3QgdGltZSwgaXQgaXMgaW5zdHJ1bWVudGVkCisgICB3aXRoIG91ciBCQlYgcm91dGluZS4gIEEgYmxvY2sgaW5mbyAoYmJJbmZvKSBzdHJ1Y3R1cmUgaXMgYWxsb2NhdGVkCisgICB3aGljaCBob2xkcyB0aGUgdmFyaW91cyBpbmZvcm1hdGlvbiBhbmQgc3RhdGlzdGljcyBmb3IgdGhlIGJsb2NrLgorICAgQSB1bmlxdWUgYmxvY2sgSUQgaXMgYXNzaWduZWQgdG8gdGhlIGJsb2NrLCBhbmQgdGhlbiB0aGUKKyAgIHN0cnVjdHVyZSBpcyBwbGFjZWQgaW50byBhbiBvcmRlcmVkIHNldC4KKyAgIFRoZW4gZWFjaCBuYXRpdmUgaW5zdHJ1Y3Rpb24gaW4gdGhlIGJsb2NrIGlzIGluc3RydW1lbnRlZCB0bworICAgY2FsbCBhbiBpbnN0cnVjdGlvbiBjb3VudGluZyByb3V0aW5lIHdpdGggYSBwb2ludGVyIHRvIHRoZSBibG9jaworICAgaW5mbyBzdHJ1Y3R1cmUgYXMgYW4gYXJndW1lbnQuCis8L3A+Cis8cD4KKyAgIEF0IHJ1bi10aW1lLCBvdXIgaW5zdHJ1Y3Rpb24gY291bnRpbmcgcm91dGluZXMgYXJlIGNhbGxlZCBvbmNlCisgICBwZXIgbmF0aXZlIGluc3RydWN0aW9uLiAgVGhlIHJlbGV2YW50IGJsb2NrIGluZm8gc3RydWN0dXJlIGlzIGFjY2Vzc2VkCisgICBhbmQgdGhlIGJsb2NrIGNvdW50IGFuZCB0b3RhbCBpbnN0cnVjdGlvbiBjb3VudCBpcyB1cGRhdGVkLiAgIAorICAgSWYgdGhlIHRvdGFsIGluc3RydWN0aW9uIGNvdW50IG92ZXJmbG93cyB0aGUgaW50ZXJ2YWwgc2l6ZSAKKyAgIHRoZW4gd2Ugd2FsayB0aGUgb3JkZXJlZCBzZXQsIHdyaXRpbmcgb3V0IHRoZSBzdGF0aXN0aWNzIGZvcgorICAgYW55IGJsb2NrIHRoYXQgd2FzIGFjY2Vzc2VkIGluIHRoZSBpbnRlcnZhbCwgdGhlbiByZXNldHRpbmcgdGhlCisgICBibG9jayBjb3VudGVycyB0byB6ZXJvLgorPC9wPgorPHA+CisgICBPbiB0aGUgeDg2IGFuZCBhbWQ2NCBhcmNoaXRlY3R1cmVzIHRoZSBjb3VudGluZyBjb2RlIGhhcyBleHRyYQorICAgY29kZSB0byBoYW5kbGUgcmVwLXByZWZpeGVkIHN0cmluZyBpbnN0cnVjdGlvbnMuICBUaGlzIGlzIGJlY2F1c2UgCisgICBhY3R1YWwgaGFyZHdhcmUgY291bnRzIGEgcmVwLXByZWZpeGVkIGluc3RydWN0aW9uIAorICAgYXMgb25lIGluc3RydWN0aW9uLCB3aGlsZSBhIG5haXZlIFZhbGdyaW5kIGltcGxlbWVudGF0aW9uCisgICB3b3VsZCBjb3VudCBpdCBhcyBtYW55IChwb3NzaWJseSBodW5kcmVkcywgdGhvdXNhbmRzIG9yIGV2ZW4gbWlsbGlvbnMpCisgICBvZiBpbnN0cnVjdGlvbnMuICBXZSBoYW5kbGUgcmVwLXByZWZpeGVkIGluc3RydWN0aW9ucyBzcGVjaWFsbHksCisgICBpbiBvcmRlciB0byBtYWtlIHRoZSByZXN1bHRzIG1hdGNoIHRob3NlIG9idGFpbmVkIHdpdGggaGFyZHdhcmUgcGVyZm9ybWFuY2UKKyAgIGNvdW50ZXJzLgorPC9wPgorPHA+CisgICBCQlYgYWxzbyBjb3VudHMgdGhlIGZsZGN3IGluc3RydWN0aW9uLiAgVGhpcyBpbnN0cnVjdGlvbiBpcyB1c2VkIG9uIAorICAgeDg2IG1hY2hpbmVzIGluIHZhcmlvdXMgd2F5czsgaXQgaXMgbW9zdCBjb21tb25seSBmb3VuZCB3aGVuIGNvbnZlcnRpbmcgCisgICBmbG9hdGluZyBwb2ludCB2YWx1ZXMgaW50byBpbnRlZ2Vycy4KKyAgIE9uIFBlbnRpdW0gNCBzeXN0ZW1zIHRoZSByZXRpcmVkIGluc3RydWN0aW9uIHBlcmZvcm1hbmNlCisgICBjb3VudGVyIGNvdW50cyB0aGlzIGluc3RydWN0aW9uIGFzIHR3byBpbnN0cnVjdGlvbnMgKGFsbCBvdGhlciAKKyAgIGtub3duIHByb2Nlc3NvcnMgb25seSBjb3VudCBpdCBhcyBvbmUpLgorICAgVGhpcyBjYW4gYWZmZWN0IHJlc3VsdHMgd2hlbiB1c2luZyBTaW1Qb2ludCBvbiBQZW50aXVtIDQgc3lzdGVtcy4KKyAgIFdlIHByb3ZpZGUgdGhlIGZsZGN3IGNvdW50IHNvIHRoYXQgdXNlcnMgY2FuIGV2YWx1YXRlIHdoZXRoZXIgaXQKKyAgIHdpbGwgaW1wYWN0IHRoZWlyIHJlc3VsdHMgZW5vdWdoIHRvIGF2b2lkIHVzaW5nIFBlbnRpdW0gNCBtYWNoaW5lcworICAgZm9yIHRoZWlyIGV4cGVyaW1lbnRzLiAgSXQgd291bGQgYmUgcG9zc2libGUgdG8gYWRkIGFuIG9wdGlvbiB0byAKKyAgIHRoaXMgdG9vbCB0aGF0IG1pbWljcyB0aGUgZG91YmxlLWNvdW50aW5nIHNvIHRoYXQgdGhlIGdlbmVyYXRlZCBCQlYKKyAgIGZpbGVzIHdvdWxkIGJlIHVzYWJsZSBmb3IgZXhwZXJpbWVudHMgdXNpbmcgaGFyZHdhcmUgcGVyZm9ybWFuY2UKKyAgIGNvdW50ZXJzIG9uIFBlbnRpdW0gNCBzeXN0ZW1zLgorPC9wPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MSI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPgorPGEgbmFtZT0iYmJ2LW1hbnVhbC50aHJlYWRzdXBwb3J0Ij48L2E+MTIuNi6gVGhyZWFkZWQgRXhlY3V0YWJsZSBTdXBwb3J0PC9oMj48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPgorICAgQkJWIHN1cHBvcnRzIHRocmVhZGVkIHByb2dyYW1zLiAgV2hlbiBhIHByb2dyYW0gaGFzIG11bHRpcGxlIHRocmVhZHMsCisgICBhbiBhZGRpdGlvbmFsIGJhc2ljIGJsb2NrIHZlY3RvciBmaWxlIGlzIGNyZWF0ZWQgZm9yIGVhY2ggdGhyZWFkIChlYWNoCisgICBhZGRpdGlvbmFsIGZpbGUgaXMgdGhlIHNwZWNpZmllZCBmaWxlbmFtZSB3aXRoIHRoZSB0aHJlYWQgbnVtYmVyCisgICBhcHBlbmRlZCBhdCB0aGUgZW5kKS4KKzwvcD4KKzxwPgorICAgVGhlcmUgaXMgbm8gb2ZmaWNpYWwgbWV0aG9kIG9mIHVzaW5nIFNpbVBvaW50IHdpdGgKKyAgIHRocmVhZGVkIHdvcmtsb2Fkcy4gIFRoZSBtb3N0IGNvbW1vbiBtZXRob2QgaXMgdG8gcnVuCisgICBTaW1Qb2ludCBvbiBlYWNoIHRocmVhZCdzIHJlc3VsdHMgaW5kZXBlbmRlbnRseSwgYW5kIHVzZSAKKyAgIHNvbWUgbWV0aG9kIG9mIGRldGVybWluaXN0aWMgZXhlY3V0aW9uIHRvIHRyeSB0byBtYXRjaCB0aGUKKyAgIG9yaWdpbmFsIHdvcmtsb2FkLiAgVGhpcyBzaG91bGQgYmUgcG9zc2libGUgd2l0aCB0aGUgY3VycmVudAorICAgQkJWLgorPC9wPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MSI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPgorPGEgbmFtZT0iYmJ2LW1hbnVhbC52YWxpZGF0aW9uIj48L2E+MTIuNy6gVmFsaWRhdGlvbjwvaDI+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD4KKyAgIEJCViBoYXMgYmVlbiB0ZXN0ZWQgb24geDg2LCBhbWQ2NCwgYW5kIHBwYzMyIHBsYXRmb3Jtcy4KKyAgIEFuIGVhcmxpZXIgdmVyc2lvbiBvZiBCQlYgd2FzIHRlc3RlZCBpbiBkZXRhaWwgdXNpbmcKKyAgIGhhcmR3YXJlIHBlcmZvcm1hbmNlIGNvdW50ZXJzLCB0aGlzIHdvcmsgaXMgZGVzY3JpYmVkIGluIGEgcGFwZXIgCisgICBmcm9tIHRoZSBIaVBFQUMnMDggY29uZmVyZW5jZSwgIlVzaW5nIER5bmFtaWMgQmluYXJ5IEluc3RydW1lbnRhdGlvbiAKKyAgIHRvIEdlbmVyYXRlIE11bHRpLVBsYXRmb3JtIFNpbVBvaW50czogTWV0aG9kb2xvZ3kgYW5kIEFjY3VyYWN5IiBieQorICAgVi5NLiBXZWF2ZXIgYW5kIFMuQS4gTWNLZWUuCis8L3A+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QxIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+Cis8YSBuYW1lPSJiYnYtbWFudWFsLnBlcmZvcm1hbmNlIj48L2E+MTIuOC6gUGVyZm9ybWFuY2U8L2gyPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+CisgIFVzaW5nIHRoaXMgcHJvZ3JhbSBzbG93cyBkb3duIGV4ZWN1dGlvbiBieSByb3VnaGx5IGEgZmFjdG9yIG9mIDQwCisgIG92ZXIgbmF0aXZlIGV4ZWN1dGlvbi4gIFRoaXMgdmFyaWVzIGRlcGVuZGluZyBvbiB0aGUgbWFjaGluZQorICB1c2VkIGFuZCB0aGUgYmVuY2htYXJrIGJlaW5nIHJ1bi4KKyAgT24gdGhlIFNQRUMgQ1BVIDIwMDAgYmVuY2htYXJrcyBydW5uaW5nIG9uIGEgMy40R0h6IFBlbnRpdW0gRCAKKyAgcHJvY2Vzc29yLCB0aGUgc2xvd2Rvd24gcmFuZ2VzIGZyb20gMjR4IChtY2YpIHRvIDM0MHggKHZvcnRleC4yKS4KKzwvcD4KKzwvZGl2PgorPC9kaXY+Cis8ZGl2PgorPGJyPjx0YWJsZSBjbGFzcz0ibmF2IiB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjMiIGNlbGxwYWRkaW5nPSIyIiBib3JkZXI9IjAiIHN1bW1hcnk9Ik5hdmlnYXRpb24gZm9vdGVyIj4KKzx0cj4KKzx0ZCByb3dzcGFuPSIyIiB3aWR0aD0iNDAlIiBhbGlnbj0ibGVmdCI+Cis8YSBhY2Nlc3NrZXk9InAiIGhyZWY9InNnLW1hbnVhbC5odG1sIj4mbHQ7Jmx0O6AxMS6gU0dDaGVjazogYW4gZXhwZXJpbWVudGFsIHN0YWNrIGFuZCBnbG9iYWwgYXJyYXkgb3ZlcnJ1biBkZXRlY3RvcjwvYT6gPC90ZD4KKzx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0iY2VudGVyIj48YSBhY2Nlc3NrZXk9InUiIGhyZWY9Im1hbnVhbC5odG1sIj5VcDwvYT48L3RkPgorPHRkIHJvd3NwYW49IjIiIHdpZHRoPSI0MCUiIGFsaWduPSJyaWdodCI+oDxhIGFjY2Vzc2tleT0ibiIgaHJlZj0ibGstbWFudWFsLmh0bWwiPjEzLqBMYWNrZXk6IGFuIGV4YW1wbGUgdG9vbKAmZ3Q7Jmd0OzwvYT4KKzwvdGQ+Cis8L3RyPgorPHRyPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0iY2VudGVyIj48YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPkhvbWU8L2E+PC90ZD48L3RyPgorPC90YWJsZT4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvZG9jcy9odG1sL2NnLW1hbnVhbC5odG1sIGIvZG9jcy9odG1sL2NnLW1hbnVhbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZhYmY2ZmEKLS0tIC9kZXYvbnVsbAorKysgYi9kb2NzL2h0bWwvY2ctbWFudWFsLmh0bWwKQEAgLTAsMCArMSwxMTc2IEBACis8aHRtbD4KKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSI+Cis8dGl0bGU+NS6gQ2FjaGVncmluZDogYSBjYWNoZSBhbmQgYnJhbmNoLXByZWRpY3Rpb24gcHJvZmlsZXI8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0idmdfYmFzaWMuY3NzIj4KKzxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iRG9jQm9vayBYU0wgU3R5bGVzaGVldHMgVjEuNzguMSI+Cis8bGluayByZWw9ImhvbWUiIGhyZWY9ImluZGV4Lmh0bWwiIHRpdGxlPSJWYWxncmluZCBEb2N1bWVudGF0aW9uIj4KKzxsaW5rIHJlbD0idXAiIGhyZWY9Im1hbnVhbC5odG1sIiB0aXRsZT0iVmFsZ3JpbmQgVXNlciBNYW51YWwiPgorPGxpbmsgcmVsPSJwcmV2IiBocmVmPSJtYy1tYW51YWwuaHRtbCIgdGl0bGU9IjQuoE1lbWNoZWNrOiBhIG1lbW9yeSBlcnJvciBkZXRlY3RvciI+Cis8bGluayByZWw9Im5leHQiIGhyZWY9ImNsLW1hbnVhbC5odG1sIiB0aXRsZT0iNi6gQ2FsbGdyaW5kOiBhIGNhbGwtZ3JhcGggZ2VuZXJhdGluZyBjYWNoZSBhbmQgYnJhbmNoIHByZWRpY3Rpb24gcHJvZmlsZXIiPgorPC9oZWFkPgorPGJvZHkgYmdjb2xvcj0id2hpdGUiIHRleHQ9ImJsYWNrIiBsaW5rPSIjMDAwMEZGIiB2bGluaz0iIzg0MDA4NCIgYWxpbms9IiMwMDAwRkYiPgorPGRpdj48dGFibGUgY2xhc3M9Im5hdiIgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSIzIiBjZWxscGFkZGluZz0iMyIgYm9yZGVyPSIwIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciI+PHRyPgorPHRkIHdpZHRoPSIyMnB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJwIiBocmVmPSJtYy1tYW51YWwuaHRtbCI+PGltZyBzcmM9ImltYWdlcy9wcmV2LnBuZyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjIxIiBib3JkZXI9IjAiIGFsdD0iUHJldiI+PC9hPjwvdGQ+Cis8dGQgd2lkdGg9IjI1cHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9InUiIGhyZWY9Im1hbnVhbC5odG1sIj48aW1nIHNyYz0iaW1hZ2VzL3VwLnBuZyIgd2lkdGg9IjIxIiBoZWlnaHQ9IjE4IiBib3JkZXI9IjAiIGFsdD0iVXAiPjwvYT48L3RkPgorPHRkIHdpZHRoPSIzMXB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJoIiBocmVmPSJpbmRleC5odG1sIj48aW1nIHNyYz0iaW1hZ2VzL2hvbWUucG5nIiB3aWR0aD0iMjciIGhlaWdodD0iMjAiIGJvcmRlcj0iMCIgYWx0PSJVcCI+PC9hPjwvdGQ+Cis8dGggYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPlZhbGdyaW5kIFVzZXIgTWFudWFsPC90aD4KKzx0ZCB3aWR0aD0iMjJweCIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPjxhIGFjY2Vzc2tleT0ibiIgaHJlZj0iY2wtbWFudWFsLmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvbmV4dC5wbmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIyMSIgYm9yZGVyPSIwIiBhbHQ9Ik5leHQiPjwvYT48L3RkPgorPC90cj48L3RhYmxlPjwvZGl2PgorPGRpdiBjbGFzcz0iY2hhcHRlciI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDEgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9ImNnLW1hbnVhbCI+PC9hPjUuoENhY2hlZ3JpbmQ6IGEgY2FjaGUgYW5kIGJyYW5jaC1wcmVkaWN0aW9uIHByb2ZpbGVyPC9oMT48L2Rpdj48L2Rpdj48L2Rpdj4KKzxkaXYgY2xhc3M9InRvYyI+Cis8cD48Yj5UYWJsZSBvZiBDb250ZW50czwvYj48L3A+Cis8ZGwgY2xhc3M9InRvYyI+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJjZy1tYW51YWwuaHRtbCNjZy1tYW51YWwub3ZlcnZpZXciPjUuMS4gT3ZlcnZpZXc8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJjZy1tYW51YWwuaHRtbCNjZy1tYW51YWwucHJvZmlsZSI+NS4yLiBVc2luZyBDYWNoZWdyaW5kLCBjZ19hbm5vdGF0ZSBhbmQgY2dfbWVyZ2U8L2E+PC9zcGFuPjwvZHQ+Cis8ZGQ+PGRsPgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iY2ctbWFudWFsLmh0bWwjY2ctbWFudWFsLnJ1bm5pbmctY2FjaGVncmluZCI+NS4yLjEuIFJ1bm5pbmcgQ2FjaGVncmluZDwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9ImNnLW1hbnVhbC5odG1sI2NnLW1hbnVhbC5vdXRwdXRmaWxlIj41LjIuMi4gT3V0cHV0IEZpbGU8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJjZy1tYW51YWwuaHRtbCNjZy1tYW51YWwucnVubmluZy1jZ19hbm5vdGF0ZSI+NS4yLjMuIFJ1bm5pbmcgY2dfYW5ub3RhdGU8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJjZy1tYW51YWwuaHRtbCNjZy1tYW51YWwudGhlLW91dHB1dC1wcmVhbWJsZSI+NS4yLjQuIFRoZSBPdXRwdXQgUHJlYW1ibGU8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJjZy1tYW51YWwuaHRtbCNjZy1tYW51YWwudGhlLWdsb2JhbCI+NS4yLjUuIFRoZSBHbG9iYWwgYW5kIEZ1bmN0aW9uLWxldmVsIENvdW50czwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9ImNnLW1hbnVhbC5odG1sI2NnLW1hbnVhbC5saW5lLWJ5LWxpbmUiPjUuMi42LiBMaW5lLWJ5LWxpbmUgQ291bnRzPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iY2ctbWFudWFsLmh0bWwjY2ctbWFudWFsLmFzc2VtYmxlciI+NS4yLjcuIEFubm90YXRpbmcgQXNzZW1ibHkgQ29kZSBQcm9ncmFtczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9ImNnLW1hbnVhbC5odG1sI21zLW1hbnVhbC5mb3JraW5ncHJvZ3JhbXMiPjUuMi44LiBGb3JraW5nIFByb2dyYW1zPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iY2ctbWFudWFsLmh0bWwjY2ctbWFudWFsLmFubm9wdHMud2FybmluZ3MiPjUuMi45LiBjZ19hbm5vdGF0ZSBXYXJuaW5nczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9ImNnLW1hbnVhbC5odG1sI2NnLW1hbnVhbC5hbm5vcHRzLnRoaW5ncy10by13YXRjaC1vdXQtZm9yIj41LjIuMTAuIFVudXN1YWwgQW5ub3RhdGlvbiBDYXNlczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9ImNnLW1hbnVhbC5odG1sI2NnLW1hbnVhbC5jZ19tZXJnZSI+NS4yLjExLiBNZXJnaW5nIFByb2ZpbGVzIHdpdGggY2dfbWVyZ2U8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJjZy1tYW51YWwuaHRtbCNjZy1tYW51YWwuY2dfZGlmZiI+NS4yLjEyLiBEaWZmZXJlbmNpbmcgUHJvZmlsZXMgd2l0aCBjZ19kaWZmPC9hPjwvc3Bhbj48L2R0PgorPC9kbD48L2RkPgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0iY2ctbWFudWFsLmh0bWwjY2ctbWFudWFsLmNnb3B0cyI+NS4zLiBDYWNoZWdyaW5kIENvbW1hbmQtbGluZSBPcHRpb25zPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0iY2ctbWFudWFsLmh0bWwjY2ctbWFudWFsLmFubm9wdHMiPjUuNC4gY2dfYW5ub3RhdGUgQ29tbWFuZC1saW5lIE9wdGlvbnM8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJjZy1tYW51YWwuaHRtbCNjZy1tYW51YWwubWVyZ2VvcHRzIj41LjUuIGNnX21lcmdlIENvbW1hbmQtbGluZSBPcHRpb25zPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0iY2ctbWFudWFsLmh0bWwjY2ctbWFudWFsLmRpZmZvcHRzIj41LjYuIGNnX2RpZmYgQ29tbWFuZC1saW5lIE9wdGlvbnM8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJjZy1tYW51YWwuaHRtbCNjZy1tYW51YWwuYWN0aW5nLW9uIj41LjcuIEFjdGluZyBvbiBDYWNoZWdyaW5kJ3MgSW5mb3JtYXRpb248L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJjZy1tYW51YWwuaHRtbCNjZy1tYW51YWwuc2ltLWRldGFpbHMiPjUuOC4gU2ltdWxhdGlvbiBEZXRhaWxzPC9hPjwvc3Bhbj48L2R0PgorPGRkPjxkbD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9ImNnLW1hbnVhbC5odG1sI2NhY2hlLXNpbSI+NS44LjEuIENhY2hlIFNpbXVsYXRpb24gU3BlY2lmaWNzPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iY2ctbWFudWFsLmh0bWwjYnJhbmNoLXNpbSI+NS44LjIuIEJyYW5jaCBTaW11bGF0aW9uIFNwZWNpZmljczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9ImNnLW1hbnVhbC5odG1sI2NnLW1hbnVhbC5hbm5vcHRzLmFjY3VyYWN5Ij41LjguMy4gQWNjdXJhY3k8L2E+PC9zcGFuPjwvZHQ+Cis8L2RsPjwvZGQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJjZy1tYW51YWwuaHRtbCNjZy1tYW51YWwuaW1wbC1kZXRhaWxzIj41LjkuIEltcGxlbWVudGF0aW9uIERldGFpbHM8L2E+PC9zcGFuPjwvZHQ+Cis8ZGQ+PGRsPgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iY2ctbWFudWFsLmh0bWwjY2ctbWFudWFsLmltcGwtZGV0YWlscy5ob3ctY2ctd29ya3MiPjUuOS4xLiBIb3cgQ2FjaGVncmluZCBXb3JrczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9ImNnLW1hbnVhbC5odG1sI2NnLW1hbnVhbC5pbXBsLWRldGFpbHMuZmlsZS1mb3JtYXQiPjUuOS4yLiBDYWNoZWdyaW5kIE91dHB1dCBGaWxlIEZvcm1hdDwvYT48L3NwYW4+PC9kdD4KKzwvZGw+PC9kZD4KKzwvZGw+Cis8L2Rpdj4KKzxwPlRvIHVzZSB0aGlzIHRvb2wsIHlvdSBtdXN0IHNwZWNpZnkKKzxjb2RlIGNsYXNzPSJvcHRpb24iPi0tdG9vbD1jYWNoZWdyaW5kPC9jb2RlPiBvbiB0aGUKK1ZhbGdyaW5kIGNvbW1hbmQgbGluZS48L3A+Cis8ZGl2IGNsYXNzPSJzZWN0MSI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPgorPGEgbmFtZT0iY2ctbWFudWFsLm92ZXJ2aWV3Ij48L2E+NS4xLqBPdmVydmlldzwvaDI+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD5DYWNoZWdyaW5kIHNpbXVsYXRlcyBob3cgeW91ciBwcm9ncmFtIGludGVyYWN0cyB3aXRoIGEgbWFjaGluZSdzIGNhY2hlCitoaWVyYXJjaHkgYW5kIChvcHRpb25hbGx5KSBicmFuY2ggcHJlZGljdG9yLiAgSXQgc2ltdWxhdGVzIGEgbWFjaGluZSB3aXRoCitpbmRlcGVuZGVudCBmaXJzdC1sZXZlbCBpbnN0cnVjdGlvbiBhbmQgZGF0YSBjYWNoZXMgKEkxIGFuZCBEMSksIGJhY2tlZCBieSBhCit1bmlmaWVkIHNlY29uZC1sZXZlbCBjYWNoZSAoTDIpLiAgVGhpcyBleGFjdGx5IG1hdGNoZXMgdGhlIGNvbmZpZ3VyYXRpb24gb2YKK21hbnkgbW9kZXJuIG1hY2hpbmVzLjwvcD4KKzxwPkhvd2V2ZXIsIHNvbWUgbW9kZXJuIG1hY2hpbmVzIGhhdmUgdGhyZWUgb3IgZm91ciBsZXZlbHMgb2YgY2FjaGUuICBGb3IgdGhlc2UKK21hY2hpbmVzIChpbiB0aGUgY2FzZXMgd2hlcmUgQ2FjaGVncmluZCBjYW4gYXV0by1kZXRlY3QgdGhlIGNhY2hlCitjb25maWd1cmF0aW9uKSBDYWNoZWdyaW5kIHNpbXVsYXRlcyB0aGUgZmlyc3QtbGV2ZWwgYW5kIGxhc3QtbGV2ZWwgY2FjaGVzLgorVGhlIHJlYXNvbiBmb3IgdGhpcyBjaG9pY2UgaXMgdGhhdCB0aGUgbGFzdC1sZXZlbCBjYWNoZSBoYXMgdGhlIG1vc3QgaW5mbHVlbmNlIG9uCitydW50aW1lLCBhcyBpdCBtYXNrcyBhY2Nlc3NlcyB0byBtYWluIG1lbW9yeS4gIEZ1cnRoZXJtb3JlLCB0aGUgTDEgY2FjaGVzCitvZnRlbiBoYXZlIGxvdyBhc3NvY2lhdGl2aXR5LCBzbyBzaW11bGF0aW5nIHRoZW0gY2FuIGRldGVjdCBjYXNlcyB3aGVyZSB0aGUKK2NvZGUgaW50ZXJhY3RzIGJhZGx5IHdpdGggdGhpcyBjYWNoZSAoZWcuIHRyYXZlcnNpbmcgYSBtYXRyaXggY29sdW1uLXdpc2UKK3dpdGggdGhlIHJvdyBsZW5ndGggYmVpbmcgYSBwb3dlciBvZiAyKS48L3A+Cis8cD5UaGVyZWZvcmUsIENhY2hlZ3JpbmQgYWx3YXlzIHJlZmVycyB0byB0aGUgSTEsIEQxIGFuZCBMTCAobGFzdC1sZXZlbCkKK2NhY2hlcy48L3A+Cis8cD4KK0NhY2hlZ3JpbmQgZ2F0aGVycyB0aGUgZm9sbG93aW5nIHN0YXRpc3RpY3MgKGFiYnJldmlhdGlvbnMgdXNlZCBmb3IgZWFjaCBzdGF0aXN0aWMKK2lzIGdpdmVuIGluIHBhcmVudGhlc2VzKTo8L3A+Cis8ZGl2IGNsYXNzPSJpdGVtaXplZGxpc3QiPjx1bCBjbGFzcz0iaXRlbWl6ZWRsaXN0IiBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOiBkaXNjOyAiPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+SSBjYWNoZSByZWFkcyAoPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5JcjwvY29kZT4sCisgICAgd2hpY2ggZXF1YWxzIHRoZSBudW1iZXIgb2YgaW5zdHJ1Y3Rpb25zIGV4ZWN1dGVkKSwKKyAgICBJMSBjYWNoZSByZWFkIG1pc3NlcyAoPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5JMW1yPC9jb2RlPikgYW5kCisgICAgTEwgY2FjaGUgaW5zdHJ1Y3Rpb24gcmVhZCBtaXNzZXMgKDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+SUxtcjwvY29kZT4pLgorICAgIDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+RCBjYWNoZSByZWFkcyAoPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5EcjwvY29kZT4sIHdoaWNoCisgICAgZXF1YWxzIHRoZSBudW1iZXIgb2YgbWVtb3J5IHJlYWRzKSwKKyAgICBEMSBjYWNoZSByZWFkIG1pc3NlcyAoPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5EMW1yPC9jb2RlPiksIGFuZAorICAgIExMIGNhY2hlIGRhdGEgcmVhZCBtaXNzZXMgKDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+RExtcjwvY29kZT4pLgorICAgIDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+RCBjYWNoZSB3cml0ZXMgKDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+RHc8L2NvZGU+LCB3aGljaCBlcXVhbHMKKyAgICB0aGUgbnVtYmVyIG9mIG1lbW9yeSB3cml0ZXMpLAorICAgIEQxIGNhY2hlIHdyaXRlIG1pc3NlcyAoPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5EMW13PC9jb2RlPiksIGFuZAorICAgIExMIGNhY2hlIGRhdGEgd3JpdGUgbWlzc2VzICg8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPkRMbXc8L2NvZGU+KS4KKyAgICA8L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPkNvbmRpdGlvbmFsIGJyYW5jaGVzIGV4ZWN1dGVkICg8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPkJjPC9jb2RlPikgYW5kCisgICAgY29uZGl0aW9uYWwgYnJhbmNoZXMgbWlzcHJlZGljdGVkICg8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPkJjbTwvY29kZT4pLgorICAgIDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+SW5kaXJlY3QgYnJhbmNoZXMgZXhlY3V0ZWQgKDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+Qmk8L2NvZGU+KSBhbmQKKyAgICBpbmRpcmVjdCBicmFuY2hlcyBtaXNwcmVkaWN0ZWQgKDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+QmltPC9jb2RlPikuCisgICAgPC9wPjwvbGk+Cis8L3VsPjwvZGl2PgorPHA+Tm90ZSB0aGF0IEQxIHRvdGFsIGFjY2Vzc2VzIGlzIGdpdmVuIGJ5Cis8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPkQxbXI8L2NvZGU+ICsKKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+RDFtdzwvY29kZT4sIGFuZCB0aGF0IExMIHRvdGFsCithY2Nlc3NlcyBpcyBnaXZlbiBieSA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPklMbXI8L2NvZGU+ICsKKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+RExtcjwvY29kZT4gKworPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5ETG13PC9jb2RlPi4KKzwvcD4KKzxwPlRoZXNlIHN0YXRpc3RpY3MgYXJlIHByZXNlbnRlZCBmb3IgdGhlIGVudGlyZSBwcm9ncmFtIGFuZCBmb3IgZWFjaAorZnVuY3Rpb24gaW4gdGhlIHByb2dyYW0uICBZb3UgY2FuIGFsc28gYW5ub3RhdGUgZWFjaCBsaW5lIG9mIHNvdXJjZSBjb2RlIGluCit0aGUgcHJvZ3JhbSB3aXRoIHRoZSBjb3VudHMgdGhhdCB3ZXJlIGNhdXNlZCBkaXJlY3RseSBieSBpdC48L3A+Cis8cD5PbiBhIG1vZGVybiBtYWNoaW5lLCBhbiBMMSBtaXNzIHdpbGwgdHlwaWNhbGx5IGNvc3QKK2Fyb3VuZCAxMCBjeWNsZXMsIGFuIExMIG1pc3MgY2FuIGNvc3QgYXMgbXVjaCBhcyAyMDAKK2N5Y2xlcywgYW5kIGEgbWlzcHJlZGljdGVkIGJyYW5jaCBjb3N0cyBpbiB0aGUgcmVnaW9uIG9mIDEwCit0byAzMCBjeWNsZXMuICBEZXRhaWxlZCBjYWNoZSBhbmQgYnJhbmNoIHByb2ZpbGluZyBjYW4gYmUgdmVyeSB1c2VmdWwKK2ZvciB1bmRlcnN0YW5kaW5nIGhvdyB5b3VyIHByb2dyYW0gaW50ZXJhY3RzIHdpdGggdGhlIG1hY2hpbmUgYW5kIHRodXMgaG93Cit0byBtYWtlIGl0IGZhc3Rlci48L3A+Cis8cD5BbHNvLCBzaW5jZSBvbmUgaW5zdHJ1Y3Rpb24gY2FjaGUgcmVhZCBpcyBwZXJmb3JtZWQgcGVyCitpbnN0cnVjdGlvbiBleGVjdXRlZCwgeW91IGNhbiBmaW5kIG91dCBob3cgbWFueSBpbnN0cnVjdGlvbnMgYXJlCitleGVjdXRlZCBwZXIgbGluZSwgd2hpY2ggY2FuIGJlIHVzZWZ1bCBmb3IgdHJhZGl0aW9uYWwgcHJvZmlsaW5nLjwvcD4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDEiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj4KKzxhIG5hbWU9ImNnLW1hbnVhbC5wcm9maWxlIj48L2E+NS4yLqBVc2luZyBDYWNoZWdyaW5kLCBjZ19hbm5vdGF0ZSBhbmQgY2dfbWVyZ2U8L2gyPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+Rmlyc3Qgb2ZmLCBhcyBmb3Igbm9ybWFsIFZhbGdyaW5kIHVzZSwgeW91IHByb2JhYmx5IHdhbnQgdG8KK2NvbXBpbGUgd2l0aCBkZWJ1Z2dpbmcgaW5mbyAodGhlCis8Y29kZSBjbGFzcz0ib3B0aW9uIj4tZzwvY29kZT4gb3B0aW9uKS4gIEJ1dCBieSBjb250cmFzdCB3aXRoCitub3JtYWwgVmFsZ3JpbmQgdXNlLCB5b3UgcHJvYmFibHkgZG8gd2FudCB0byB0dXJuCitvcHRpbWlzYXRpb24gb24sIHNpbmNlIHlvdSBzaG91bGQgcHJvZmlsZSB5b3VyIHByb2dyYW0gYXMgaXQgd2lsbAorYmUgbm9ybWFsbHkgcnVuLjwvcD4KKzxwPlRoZW4sIHlvdSBuZWVkIHRvIHJ1biBDYWNoZWdyaW5kIGl0c2VsZiB0byBnYXRoZXIgdGhlIHByb2ZpbGluZworaW5mb3JtYXRpb24sIGFuZCB0aGVuIHJ1biBjZ19hbm5vdGF0ZSB0byBnZXQgYSBkZXRhaWxlZCBwcmVzZW50YXRpb24gb2YgdGhhdAoraW5mb3JtYXRpb24uICBBcyBhbiBvcHRpb25hbCBpbnRlcm1lZGlhdGUgc3RlcCwgeW91IGNhbiB1c2UgY2dfbWVyZ2UgdG8gc3VtCit0b2dldGhlciB0aGUgb3V0cHV0cyBvZiBtdWx0aXBsZSBDYWNoZWdyaW5kIHJ1bnMgaW50byBhIHNpbmdsZSBmaWxlIHdoaWNoCit5b3UgdGhlbiB1c2UgYXMgdGhlIGlucHV0IGZvciBjZ19hbm5vdGF0ZS4gIEFsdGVybmF0aXZlbHksIHlvdSBjYW4gdXNlCitjZ19kaWZmIHRvIGRpZmZlcmVuY2UgdGhlIG91dHB1dHMgb2YgdHdvIENhY2hlZ3JpbmQgcnVucyBpbnRvIGEgc2luZ2xlIGZpbGUKK3doaWNoIHlvdSB0aGVuIHVzZSBhcyB0aGUgaW5wdXQgZm9yIGNnX2Fubm90YXRlLjwvcD4KKzxkaXYgY2xhc3M9InNlY3QyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0iY2ctbWFudWFsLnJ1bm5pbmctY2FjaGVncmluZCI+PC9hPjUuMi4xLqBSdW5uaW5nIENhY2hlZ3JpbmQ8L2gzPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+VG8gcnVuIENhY2hlZ3JpbmQgb24gYSBwcm9ncmFtIDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+cHJvZzwvY29kZT4sIHJ1bjo8L3A+Cis8cHJlIGNsYXNzPSJzY3JlZW4iPgordmFsZ3JpbmQgLS10b29sPWNhY2hlZ3JpbmQgcHJvZworPC9wcmU+Cis8cD5UaGUgcHJvZ3JhbSB3aWxsIGV4ZWN1dGUgKHNsb3dseSkuICBVcG9uIGNvbXBsZXRpb24sCitzdW1tYXJ5IHN0YXRpc3RpY3MgdGhhdCBsb29rIGxpa2UgdGhpcyB3aWxsIGJlIHByaW50ZWQ6PC9wPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPgorPT0zMTc1MT09IEkgICByZWZzOiAgICAgIDI3LDc0Miw3MTYKKz09MzE3NTE9PSBJMSAgbWlzc2VzOiAgICAgICAgICAgMjc2Cis9PTMxNzUxPT0gTExpIG1pc3NlczogICAgICAgICAgIDI3NQorPT0zMTc1MT09IEkxICBtaXNzIHJhdGU6ICAgICAgICAwLjAlCis9PTMxNzUxPT0gTExpIG1pc3MgcmF0ZTogICAgICAgIDAuMCUKKz09MzE3NTE9PSAKKz09MzE3NTE9PSBEICAgcmVmczogICAgICAxNSw0MzAsMjkwICAoMTAsOTU1LDUxNyByZCArIDQsNDc0LDc3MyB3cikKKz09MzE3NTE9PSBEMSAgbWlzc2VzOiAgICAgICAgNDEsMTg1ICAoICAgIDIxLDkwNSByZCArICAgIDE5LDI4MCB3cikKKz09MzE3NTE9PSBMTGQgbWlzc2VzOiAgICAgICAgMjMsMDg1ICAoICAgICAzLDk4NyByZCArICAgIDE5LDA5OCB3cikKKz09MzE3NTE9PSBEMSAgbWlzcyByYXRlOiAgICAgICAgMC4yJSAoICAgICAgIDAuMSUgICArICAgICAgIDAuNCUpCis9PTMxNzUxPT0gTExkIG1pc3MgcmF0ZTogICAgICAgIDAuMSUgKCAgICAgICAwLjAlICAgKyAgICAgICAwLjQlKQorPT0zMTc1MT09IAorPT0zMTc1MT09IExMIG1pc3NlczogICAgICAgICAyMywzNjAgICggICAgIDQsMjYyIHJkICsgICAgMTksMDk4IHdyKQorPT0zMTc1MT09IExMIG1pc3MgcmF0ZTogICAgICAgICAwLjAlICggICAgICAgMC4wJSAgICsgICAgICAgMC40JSk8L3ByZT4KKzxwPkNhY2hlIGFjY2Vzc2VzIGZvciBpbnN0cnVjdGlvbiBmZXRjaGVzIGFyZSBzdW1tYXJpc2VkCitmaXJzdCwgZ2l2aW5nIHRoZSBudW1iZXIgb2YgZmV0Y2hlcyBtYWRlICh0aGlzIGlzIHRoZSBudW1iZXIgb2YKK2luc3RydWN0aW9ucyBleGVjdXRlZCwgd2hpY2ggY2FuIGJlIHVzZWZ1bCB0byBrbm93IGluIGl0cyBvd24KK3JpZ2h0KSwgdGhlIG51bWJlciBvZiBJMSBtaXNzZXMsIGFuZCB0aGUgbnVtYmVyIG9mIExMIGluc3RydWN0aW9uCisoPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5MTGk8L2NvZGU+KSBtaXNzZXMuPC9wPgorPHA+Q2FjaGUgYWNjZXNzZXMgZm9yIGRhdGEgZm9sbG93LiBUaGUgaW5mb3JtYXRpb24gaXMgc2ltaWxhcgordG8gdGhhdCBvZiB0aGUgaW5zdHJ1Y3Rpb24gZmV0Y2hlcywgZXhjZXB0IHRoYXQgdGhlIHZhbHVlcyBhcmUKK2Fsc28gc2hvd24gc3BsaXQgYmV0d2VlbiByZWFkcyBhbmQgd3JpdGVzIChub3RlIGVhY2ggcm93J3MKKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+cmQ8L2NvZGU+IGFuZAorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij53cjwvY29kZT4gdmFsdWVzIGFkZCB1cCB0byB0aGUgcm93J3MKK3RvdGFsKS48L3A+Cis8cD5Db21iaW5lZCBpbnN0cnVjdGlvbiBhbmQgZGF0YSBmaWd1cmVzIGZvciB0aGUgTEwgY2FjaGUKK2ZvbGxvdyB0aGF0LiAgTm90ZSB0aGF0IHRoZSBMTCBtaXNzIHJhdGUgaXMgY29tcHV0ZWQgcmVsYXRpdmUgdG8gdGhlIHRvdGFsCitudW1iZXIgb2YgbWVtb3J5IGFjY2Vzc2VzLCBub3QgdGhlIG51bWJlciBvZiBMMSBtaXNzZXMuICBJLmUuICBpdCBpcworPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij4oSUxtciArIERMbXIgKyBETG13KSAvIChJciArIERyICsgRHcpPC9jb2RlPgorbm90Cis8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPihJTG1yICsgRExtciArIERMbXcpIC8gKEkxbXIgKyBEMW1yICsgRDFtdyk8L2NvZGU+Cis8L3A+Cis8cD5CcmFuY2ggcHJlZGljdGlvbiBzdGF0aXN0aWNzIGFyZSBub3QgY29sbGVjdGVkIGJ5IGRlZmF1bHQuCitUbyBkbyBzbywgYWRkIHRoZSBvcHRpb24gPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1icmFuY2gtc2ltPXllczwvY29kZT4uPC9wPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MiI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9ImNnLW1hbnVhbC5vdXRwdXRmaWxlIj48L2E+NS4yLjIuoE91dHB1dCBGaWxlPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPkFzIHdlbGwgYXMgcHJpbnRpbmcgc3VtbWFyeSBpbmZvcm1hdGlvbiwgQ2FjaGVncmluZCBhbHNvIHdyaXRlcworbW9yZSBkZXRhaWxlZCBwcm9maWxpbmcgaW5mb3JtYXRpb24gdG8gYSBmaWxlLiAgQnkgZGVmYXVsdCB0aGlzIGZpbGUgaXMgbmFtZWQKKzxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+Y2FjaGVncmluZC5vdXQuJmx0O3BpZCZndDs8L2NvZGU+ICh3aGVyZQorPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj4mbHQ7cGlkJmd0OzwvY29kZT4gaXMgdGhlIHByb2dyYW0ncyBwcm9jZXNzIElEKSwgYnV0IGl0cyBuYW1lCitjYW4gYmUgY2hhbmdlZCB3aXRoIHRoZSA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWNhY2hlZ3JpbmQtb3V0LWZpbGU8L2NvZGU+IG9wdGlvbi4gIFRoaXMKK2ZpbGUgaXMgaHVtYW4tcmVhZGFibGUsIGJ1dCBpcyBpbnRlbmRlZCB0byBiZSBpbnRlcnByZXRlZCBieSB0aGUKK2FjY29tcGFueWluZyBwcm9ncmFtIGNnX2Fubm90YXRlLCBkZXNjcmliZWQgaW4gdGhlIG5leHQgc2VjdGlvbi48L3A+Cis8cD5UaGUgZGVmYXVsdCA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPi4mbHQ7cGlkJmd0OzwvY29kZT4gc3VmZml4CitvbiB0aGUgb3V0cHV0IGZpbGUgbmFtZSBzZXJ2ZXMgdHdvIHB1cnBvc2VzLiAgRmlyc3RseSwgaXQgbWVhbnMgeW91IAorZG9uJ3QgaGF2ZSB0byByZW5hbWUgb2xkIGxvZyBmaWxlcyB0aGF0IHlvdSBkb24ndCB3YW50IHRvIG92ZXJ3cml0ZS4gIAorU2Vjb25kbHksIGFuZCBtb3JlIGltcG9ydGFudGx5LCBpdCBhbGxvd3MgY29ycmVjdCBwcm9maWxpbmcgd2l0aCB0aGUKKzxjb2RlIGNsYXNzPSJvcHRpb24iPi0tdHJhY2UtY2hpbGRyZW49eWVzPC9jb2RlPiBvcHRpb24gb2YKK3Byb2dyYW1zIHRoYXQgc3Bhd24gY2hpbGQgcHJvY2Vzc2VzLjwvcD4KKzxwPlRoZSBvdXRwdXQgZmlsZSBjYW4gYmUgYmlnLCBtYW55IG1lZ2FieXRlcyBmb3IgbGFyZ2UgYXBwbGljYXRpb25zCitidWlsdCB3aXRoIGZ1bGwgZGVidWdnaW5nIGluZm9ybWF0aW9uLjwvcD4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDIiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJjZy1tYW51YWwucnVubmluZy1jZ19hbm5vdGF0ZSI+PC9hPjUuMi4zLqBSdW5uaW5nIGNnX2Fubm90YXRlPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPkJlZm9yZSB1c2luZyBjZ19hbm5vdGF0ZSwKK2l0IGlzIHdvcnRoIHdpZGVuaW5nIHlvdXIgd2luZG93IHRvIGJlIGF0IGxlYXN0IDEyMC1jaGFyYWN0ZXJzCit3aWRlIGlmIHBvc3NpYmxlLCBhcyB0aGUgb3V0cHV0IGxpbmVzIGNhbiBiZSBxdWl0ZSBsb25nLjwvcD4KKzxwPlRvIGdldCBhIGZ1bmN0aW9uLWJ5LWZ1bmN0aW9uIHN1bW1hcnksIHJ1bjo8L3A+Cis8cHJlIGNsYXNzPSJzY3JlZW4iPmNnX2Fubm90YXRlICZsdDtmaWxlbmFtZSZndDs8L3ByZT4KKzxwPm9uIGEgQ2FjaGVncmluZCBvdXRwdXQgZmlsZS48L3A+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0iY2ctbWFudWFsLnRoZS1vdXRwdXQtcHJlYW1ibGUiPjwvYT41LjIuNC6gVGhlIE91dHB1dCBQcmVhbWJsZTwvaDM+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD5UaGUgZmlyc3QgcGFydCBvZiB0aGUgb3V0cHV0IGxvb2tzIGxpa2UgdGhpczo8L3A+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorSTEgY2FjaGU6ICAgICAgICAgICAgICA2NTUzNiBCLCA2NCBCLCAyLXdheSBhc3NvY2lhdGl2ZQorRDEgY2FjaGU6ICAgICAgICAgICAgICA2NTUzNiBCLCA2NCBCLCAyLXdheSBhc3NvY2lhdGl2ZQorTEwgY2FjaGU6ICAgICAgICAgICAgICAyNjIxNDQgQiwgNjQgQiwgOC13YXkgYXNzb2NpYXRpdmUKK0NvbW1hbmQ6ICAgICAgICAgICAgICAgY29uY29yZCB2Z190b191Y29kZS5jCitFdmVudHMgcmVjb3JkZWQ6ICAgICAgIElyIEkxbXIgSUxtciBEciBEMW1yIERMbXIgRHcgRDFtdyBETG13CitFdmVudHMgc2hvd246ICAgICAgICAgIElyIEkxbXIgSUxtciBEciBEMW1yIERMbXIgRHcgRDFtdyBETG13CitFdmVudCBzb3J0IG9yZGVyOiAgICAgIElyIEkxbXIgSUxtciBEciBEMW1yIERMbXIgRHcgRDFtdyBETG13CitUaHJlc2hvbGQ6ICAgICAgICAgICAgIDk5JQorQ2hvc2VuIGZvciBhbm5vdGF0aW9uOgorQXV0by1hbm5vdGF0aW9uOiAgICAgICBvZmYKKzwvcHJlPgorPHA+VGhpcyBpcyBhIHN1bW1hcnkgb2YgdGhlIGFubm90YXRpb24gb3B0aW9uczo8L3A+Cis8ZGl2IGNsYXNzPSJpdGVtaXplZGxpc3QiPjx1bCBjbGFzcz0iaXRlbWl6ZWRsaXN0IiBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOiBkaXNjOyAiPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+STEgY2FjaGUsIEQxIGNhY2hlLCBMTCBjYWNoZTogY2FjaGUgY29uZmlndXJhdGlvbi4gIFNvCisgICAgeW91IGtub3cgdGhlIGNvbmZpZ3VyYXRpb24gd2l0aCB3aGljaCB0aGVzZSByZXN1bHRzIHdlcmUKKyAgICBvYnRhaW5lZC48L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPkNvbW1hbmQ6IHRoZSBjb21tYW5kIGxpbmUgaW52b2NhdGlvbiBvZiB0aGUgcHJvZ3JhbQorICAgICAgdW5kZXIgZXhhbWluYXRpb24uPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5FdmVudHMgcmVjb3JkZWQ6IHdoaWNoIGV2ZW50cyB3ZXJlIHJlY29yZGVkLjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+RXZlbnRzIHNob3duOiB0aGUgZXZlbnRzIHNob3duLCB3aGljaCBpcyBhIHN1YnNldCBvZiB0aGUgZXZlbnRzCisgICBnYXRoZXJlZC4gIFRoaXMgY2FuIGJlIGFkanVzdGVkIHdpdGggdGhlCisgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXNob3c8L2NvZGU+IG9wdGlvbi48L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPgorPHA+RXZlbnQgc29ydCBvcmRlcjogdGhlIHNvcnQgb3JkZXIgaW4gd2hpY2ggZnVuY3Rpb25zIGFyZQorICAgIHNob3duLiAgRm9yIGV4YW1wbGUsIGluIHRoaXMgY2FzZSB0aGUgZnVuY3Rpb25zIGFyZSBzb3J0ZWQKKyAgICBmcm9tIGhpZ2hlc3QgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5JcjwvY29kZT4gY291bnRzIHRvCisgICAgbG93ZXN0LiAgSWYgdHdvIGZ1bmN0aW9ucyBoYXZlIGlkZW50aWNhbAorICAgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+SXI8L2NvZGU+IGNvdW50cywgdGhleSB3aWxsIHRoZW4gYmUKKyAgICBzb3J0ZWQgYnkgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5JMW1yPC9jb2RlPiBjb3VudHMsIGFuZAorICAgIHNvIG9uLiAgVGhpcyBvcmRlciBjYW4gYmUgYWRqdXN0ZWQgd2l0aCB0aGUKKyAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXNvcnQ8L2NvZGU+IG9wdGlvbi48L3A+Cis8cD5Ob3RlIHRoYXQgdGhpcyBkaWN0YXRlcyB0aGUgb3JkZXIgdGhlIGZ1bmN0aW9ucyBhcHBlYXIuCisgICAgSXQgaXMgPHNwYW4gY2xhc3M9ImVtcGhhc2lzIj48ZW0+bm90PC9lbT48L3NwYW4+IHRoZSBvcmRlciBpbiB3aGljaCB0aGUgY29sdW1ucworICAgIGFwcGVhcjsgdGhhdCBpcyBkaWN0YXRlZCBieSB0aGUgImV2ZW50cyBzaG93biIgbGluZSAoYW5kIGNhbgorICAgIGJlIGNoYW5nZWQgd2l0aCB0aGUgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1zaG93PC9jb2RlPgorICAgIG9wdGlvbikuPC9wPgorPC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPlRocmVzaG9sZDogY2dfYW5ub3RhdGUKKyAgICBieSBkZWZhdWx0IG9taXRzIGZ1bmN0aW9ucyB0aGF0IGNhdXNlIHZlcnkgbG93IGNvdW50cworICAgIHRvIGF2b2lkIGRyb3duaW5nIHlvdSBpbiBpbmZvcm1hdGlvbi4gIEluIHRoaXMgY2FzZSwKKyAgICBjZ19hbm5vdGF0ZSBzaG93cyBzdW1tYXJpZXMgdGhlIGZ1bmN0aW9ucyB0aGF0IGFjY291bnQgZm9yCisgICAgOTklIG9mIHRoZSA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPklyPC9jb2RlPiBjb3VudHM7CisgICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5JcjwvY29kZT4gaXMgY2hvc2VuIGFzIHRoZQorICAgIHRocmVzaG9sZCBldmVudCBzaW5jZSBpdCBpcyB0aGUgcHJpbWFyeSBzb3J0IGV2ZW50LiAgVGhlCisgICAgdGhyZXNob2xkIGNhbiBiZSBhZGp1c3RlZCB3aXRoIHRoZQorICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tdGhyZXNob2xkPC9jb2RlPgorICAgIG9wdGlvbi48L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPkNob3NlbiBmb3IgYW5ub3RhdGlvbjogbmFtZXMgb2YgZmlsZXMgc3BlY2lmaWVkCisgICAgbWFudWFsbHkgZm9yIGFubm90YXRpb247IGluIHRoaXMgY2FzZSBub25lLjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+QXV0by1hbm5vdGF0aW9uOiB3aGV0aGVyIGF1dG8tYW5ub3RhdGlvbiB3YXMgcmVxdWVzdGVkCisgICAgdmlhIHRoZSA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWF1dG89eWVzPC9jb2RlPgorICAgIG9wdGlvbi4gSW4gdGhpcyBjYXNlIG5vLjwvcD48L2xpPgorPC91bD48L2Rpdj4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDIiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJjZy1tYW51YWwudGhlLWdsb2JhbCI+PC9hPjUuMi41LqBUaGUgR2xvYmFsIGFuZCBGdW5jdGlvbi1sZXZlbCBDb3VudHM8L2gzPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+VGhlbiBmb2xsb3dzIHN1bW1hcnkgc3RhdGlzdGljcyBmb3IgdGhlIHdob2xlCitwcm9ncmFtOjwvcD4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitJciAgICAgICAgIEkxbXIgSUxtciBEciAgICAgICAgIEQxbXIgICBETG1yICBEdyAgICAgICAgRDFtdyAgIERMbXcKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisyNyw3NDIsNzE2ICAyNzYgIDI3NSAxMCw5NTUsNTE3IDIxLDkwNSAzLDk4NyA0LDQ3NCw3NzMgMTksMjgwIDE5LDA5OCAgUFJPR1JBTSBUT1RBTFM8L3ByZT4KKzxwPgorVGhlc2UgYXJlIHNpbWlsYXIgdG8gdGhlIHN1bW1hcnkgcHJvdmlkZWQgd2hlbiBDYWNoZWdyaW5kIGZpbmlzaGVzIHJ1bm5pbmcuCis8L3A+Cis8cD5UaGVuIGNvbWVzIGZ1bmN0aW9uLWJ5LWZ1bmN0aW9uIHN0YXRpc3RpY3M6PC9wPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0lyICAgICAgICBJMW1yIElMbXIgRHIgICAgICAgIEQxbXIgIERMbXIgIER3ICAgICAgICBEMW13ICAgRExtdyAgICBmaWxlOmZ1bmN0aW9uCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorOCw4MjEsNDgyICAgIDUgICAgNSAyLDI0Miw3MDIgMSw2MjEgICAgNzMgMSw3OTQsMjMwICAgICAgMCAgICAgIDAgIGdldGMuYzpfSU9fZ2V0YworNSwyMjIsMDIzICAgIDQgICAgNCAyLDI3NiwzMzQgICAgMTYgICAgMTIgICA4NzUsOTU5ICAgICAgMSAgICAgIDEgIGNvbmNvcmQuYzpnZXRfd29yZAorMiw2NDksMjQ4ICAgIDIgICAgMiAxLDM0NCw4MTAgNywzMjYgMSwzODUgICAgICAgICAuICAgICAgLiAgICAgIC4gIHZnX21haW4uYzpzdHJjbXAKKzIsNTIxLDkyNyAgICAyICAgIDIgICA1OTEsMjE1ICAgICAwICAgICAwICAgMTc5LDM5OCAgICAgIDAgICAgICAwICBjb25jb3JkLmM6aGFzaAorMiwyNDIsNzQwICAgIDIgICAgMiAxLDA0Niw2MTIgICA1NjggICAgMjIgICA0NDgsNTQ4ICAgICAgMCAgICAgIDAgIGN0eXBlLmM6dG9sb3dlcgorMSw0OTYsOTM3ICAgIDQgICAgNCAgIDYzMCw4NzQgOSwwMDAgMSw0MDAgICAyNzksMzg4ICAgICAgMCAgICAgIDAgIGNvbmNvcmQuYzppbnNlcnQKKyAgODk3LDk5MSAgIDUxICAgNTEgICA4OTcsODMxICAgIDk1ICAgIDMwICAgICAgICA2MiAgICAgIDEgICAgICAxICA/Pz86Pz8/CisgIDU5OCwwNjggICAgMSAgICAxICAgMjk5LDAzNCAgICAgMCAgICAgMCAgIDE0OSw1MTcgICAgICAwICAgICAgMCAgLi4vc3lzZGVwcy9nZW5lcmljL2xvY2tmaWxlLmM6X19mbG9ja2ZpbGUKKyAgNTk4LDA2OCAgICAwICAgIDAgICAyOTksMDM0ICAgICAwICAgICAwICAgMTQ5LDUxNyAgICAgIDAgICAgICAwICAuLi9zeXNkZXBzL2dlbmVyaWMvbG9ja2ZpbGUuYzpfX2Z1bmxvY2tmaWxlCisgIDU5OCwwMjQgICAgNCAgICA0ICAgMjEzLDU4MCAgICAzNSAgICAxNiAgIDE0OSw1MDYgICAgICAwICAgICAgMCAgdmdfY2xpZW50bWFsbG9jLmM6bWFsbG9jCisgIDQ0Niw1ODcgICAgMSAgICAxICAgMjE1LDk3MyAyLDE2NyAgIDQzMCAgIDEyOSw5NDggMTQsMDU3IDEzLDk1NyAgY29uY29yZC5jOmFkZF9leGlzdGluZworICAzNDEsNzYwICAgIDIgICAgMiAgIDEyOCwxNjAgICAgIDAgICAgIDAgICAxMjgsMTYwICAgICAgMCAgICAgIDAgIHZnX2NsaWVudG1hbGxvYy5jOnZnX3RyYXBfaGVyZV9XUkFQUEVSCisgIDMyMCw3ODIgICAgNCAgICA0ICAgMTUwLDcxMSAgIDI3NiAgICAgMCAgICA1NiwwMjcgICAgIDUzICAgICA1MyAgY29uY29yZC5jOmluaXRfaGFzaF90YWJsZQorICAyOTgsOTk4ICAgIDEgICAgMSAgIDEwNiw3ODUgICAgIDAgICAgIDAgICAgNjQsMDcxICAgICAgMSAgICAgIDEgIGNvbmNvcmQuYzpjcmVhdGUKKyAgMTQ5LDUxOCAgICAwICAgIDAgICAxNDksNTE2ICAgICAwICAgICAwICAgICAgICAgMSAgICAgIDAgICAgICAwICA/Pz86dG9sb3dlckBAR0xJQkNfMi4wCisgIDE0OSw1MTggICAgMCAgICAwICAgMTQ5LDUxNiAgICAgMCAgICAgMCAgICAgICAgIDEgICAgICAwICAgICAgMCAgPz8/OmZnZXRjQEBHTElCQ18yLjAKKyAgIDk1LDk4MyAgICA0ICAgIDQgICAgMzgsMDMxICAgICAwICAgICAwICAgIDM0LDQwOSAgMywxNTIgIDMsMTUwICBjb25jb3JkLmM6bmV3X3dvcmRfbm9kZQorICAgODUsNDQwICAgIDAgICAgMCAgICA0Miw3MjAgICAgIDAgICAgIDAgICAgMjEsMzYwICAgICAgMCAgICAgIDAgIHZnX2NsaWVudG1hbGxvYy5jOnZnX2JvZ3VzX2VwaWxvZ3VlPC9wcmU+Cis8cD5FYWNoIGZ1bmN0aW9uCitpcyBpZGVudGlmaWVkIGJ5IGEKKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+ZmlsZV9uYW1lOmZ1bmN0aW9uX25hbWU8L2NvZGU+IHBhaXIuIElmCithIGNvbHVtbiBjb250YWlucyBvbmx5IGEgZG90IGl0IG1lYW5zIHRoZSBmdW5jdGlvbiBuZXZlciBwZXJmb3JtcwordGhhdCBldmVudCAoZS5nLiB0aGUgdGhpcmQgcm93IHNob3dzIHRoYXQKKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+c3RyY21wKCk8L2NvZGU+IGNvbnRhaW5zIG5vCitpbnN0cnVjdGlvbnMgdGhhdCB3cml0ZSB0byBtZW1vcnkpLiBUaGUgbmFtZQorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij4/Pz88L2NvZGU+IGlzIHVzZWQgaWYgdGhlIGZpbGUgbmFtZQorYW5kL29yIGZ1bmN0aW9uIG5hbWUgY291bGQgbm90IGJlIGRldGVybWluZWQgZnJvbSBkZWJ1Z2dpbmcKK2luZm9ybWF0aW9uLiBJZiBtb3N0IG9mIHRoZSBlbnRyaWVzIGhhdmUgdGhlIGZvcm0KKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+Pz8/Oj8/PzwvY29kZT4gdGhlIHByb2dyYW0gcHJvYmFibHkKK3dhc24ndCBjb21waWxlZCB3aXRoIDxjb2RlIGNsYXNzPSJvcHRpb24iPi1nPC9jb2RlPi48L3A+Cis8cD5JdCBpcyB3b3J0aCBub3RpbmcgdGhhdCBmdW5jdGlvbnMgd2lsbCBjb21lIGJvdGggZnJvbQordGhlIHByb2ZpbGVkIHByb2dyYW0gKGUuZy4gPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5jb25jb3JkLmM8L2NvZGU+KQorYW5kIGZyb20gbGlicmFyaWVzIChlLmcuIDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+Z2V0Yy5jPC9jb2RlPik8L3A+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0iY2ctbWFudWFsLmxpbmUtYnktbGluZSI+PC9hPjUuMi42LqBMaW5lLWJ5LWxpbmUgQ291bnRzPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPlRoZXJlIGFyZSB0d28gd2F5cyB0byBhbm5vdGF0ZSBzb3VyY2UgZmlsZXMgLS0gYnkgc3BlY2lmeWluZyB0aGVtCittYW51YWxseSBhcyBhcmd1bWVudHMgdG8gY2dfYW5ub3RhdGUsIG9yIHdpdGggdGhlCis8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWF1dG89eWVzPC9jb2RlPiBvcHRpb24uICBGb3IgZXhhbXBsZSwgdGhlIG91dHB1dCBmcm9tIHJ1bm5pbmcKKzxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+Y2dfYW5ub3RhdGUgJmx0O2ZpbGVuYW1lJmd0OyBjb25jb3JkLmM8L2NvZGU+IGZvciBvdXIgZXhhbXBsZQorcHJvZHVjZXMgdGhlIHNhbWUgb3V0cHV0IGFzIGFib3ZlIGZvbGxvd2VkIGJ5IGFuIGFubm90YXRlZCB2ZXJzaW9uIG9mCis8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPmNvbmNvcmQuYzwvY29kZT4sIGEgc2VjdGlvbiBvZiB3aGljaCBsb29rcyBsaWtlOjwvcD4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCistLSBVc2VyLWFubm90YXRlZCBzb3VyY2U6IGNvbmNvcmQuYworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0lyICAgICAgICBJMW1yIElMbXIgRHIgICAgICBEMW1yICBETG1yICBEdyAgICAgIEQxbXcgICBETG13CisKKyAgICAgICAgLiAgICAuICAgIC4gICAgICAgLiAgICAgLiAgICAgLiAgICAgICAuICAgICAgLiAgICAgIC4gIHZvaWQgaW5pdF9oYXNoX3RhYmxlKGNoYXIgKmZpbGVfbmFtZSwgV29yZF9Ob2RlICp0YWJsZVtdKQorICAgICAgICAzICAgIDEgICAgMSAgICAgICAuICAgICAuICAgICAuICAgICAgIDEgICAgICAwICAgICAgMCAgeworICAgICAgICAuICAgIC4gICAgLiAgICAgICAuICAgICAuICAgICAuICAgICAgIC4gICAgICAuICAgICAgLiAgICAgIEZJTEUgKmZpbGVfcHRyOworICAgICAgICAuICAgIC4gICAgLiAgICAgICAuICAgICAuICAgICAuICAgICAgIC4gICAgICAuICAgICAgLiAgICAgIFdvcmRfSW5mbyAqZGF0YTsKKyAgICAgICAgMSAgICAwICAgIDAgICAgICAgLiAgICAgLiAgICAgLiAgICAgICAxICAgICAgMSAgICAgIDEgICAgICBpbnQgbGluZSA9IDEsIGk7CisgICAgICAgIC4gICAgLiAgICAuICAgICAgIC4gICAgIC4gICAgIC4gICAgICAgLiAgICAgIC4gICAgICAuCisgICAgICAgIDUgICAgMCAgICAwICAgICAgIC4gICAgIC4gICAgIC4gICAgICAgMyAgICAgIDAgICAgICAwICAgICAgZGF0YSA9IChXb3JkX0luZm8gKikgY3JlYXRlKHNpemVvZihXb3JkX0luZm8pKTsKKyAgICAgICAgLiAgICAuICAgIC4gICAgICAgLiAgICAgLiAgICAgLiAgICAgICAuICAgICAgLiAgICAgIC4KKyAgICA0LDk5MSAgICAwICAgIDAgICAxLDk5NSAgICAgMCAgICAgMCAgICAgOTk4ICAgICAgMCAgICAgIDAgICAgICBmb3IgKGkgPSAwOyBpICZsdDsgVEFCTEVfU0laRTsgaSsrKQorICAgIDMsOTg4ICAgIDEgICAgMSAgIDEsOTk0ICAgICAwICAgICAwICAgICA5OTcgICAgIDUzICAgICA1MiAgICAgICAgICB0YWJsZVtpXSA9IE5VTEw7CisgICAgICAgIC4gICAgLiAgICAuICAgICAgIC4gICAgIC4gICAgIC4gICAgICAgLiAgICAgIC4gICAgICAuCisgICAgICAgIC4gICAgLiAgICAuICAgICAgIC4gICAgIC4gICAgIC4gICAgICAgLiAgICAgIC4gICAgICAuICAgICAgLyogT3BlbiBmaWxlLCBjaGVjayBpdC4gKi8KKyAgICAgICAgNiAgICAwICAgIDAgICAgICAgMSAgICAgMCAgICAgMCAgICAgICA0ICAgICAgMCAgICAgIDAgICAgICBmaWxlX3B0ciA9IGZvcGVuKGZpbGVfbmFtZSwgInIiKTsKKyAgICAgICAgMiAgICAwICAgIDAgICAgICAgMSAgICAgMCAgICAgMCAgICAgICAuICAgICAgLiAgICAgIC4gICAgICBpZiAoIShmaWxlX3B0cikpIHsKKyAgICAgICAgLiAgICAuICAgIC4gICAgICAgLiAgICAgLiAgICAgLiAgICAgICAuICAgICAgLiAgICAgIC4gICAgICAgICAgZnByaW50ZihzdGRlcnIsICJDb3VsZG4ndCBvcGVuICclcycuXG4iLCBmaWxlX25hbWUpOworICAgICAgICAxICAgIDEgICAgMSAgICAgICAuICAgICAuICAgICAuICAgICAgIC4gICAgICAuICAgICAgLiAgICAgICAgICBleGl0KEVYSVRfRkFJTFVSRSk7CisgICAgICAgIC4gICAgLiAgICAuICAgICAgIC4gICAgIC4gICAgIC4gICAgICAgLiAgICAgIC4gICAgICAuICAgICAgfQorICAgICAgICAuICAgIC4gICAgLiAgICAgICAuICAgICAuICAgICAuICAgICAgIC4gICAgICAuICAgICAgLgorICAxNjUsMDYyICAgIDEgICAgMSAgNzMsMzYwICAgICAwICAgICAwICA5MSw3MDAgICAgICAwICAgICAgMCAgICAgIHdoaWxlICgobGluZSA9IGdldF93b3JkKGRhdGEsIGxpbmUsIGZpbGVfcHRyKSkgIT0gRU9GKQorICAxNDYsNzEyICAgIDAgICAgMCAgNzMsMzU2ICAgICAwICAgICAwICA3MywzNTYgICAgICAwICAgICAgMCAgICAgICAgICBpbnNlcnQoZGF0YS0mZ3Q7O3dvcmQsIGRhdGEtJmd0O2xpbmUsIHRhYmxlKTsKKyAgICAgICAgLiAgICAuICAgIC4gICAgICAgLiAgICAgLiAgICAgLiAgICAgICAuICAgICAgLiAgICAgIC4KKyAgICAgICAgNCAgICAwICAgIDAgICAgICAgMSAgICAgMCAgICAgMCAgICAgICAyICAgICAgMCAgICAgIDAgICAgICBmcmVlKGRhdGEpOworICAgICAgICA0ICAgIDAgICAgMCAgICAgICAxICAgICAwICAgICAwICAgICAgIDIgICAgICAwICAgICAgMCAgICAgIGZjbG9zZShmaWxlX3B0cik7CisgICAgICAgIDMgICAgMCAgICAwICAgICAgIDIgICAgIDAgICAgIDAgICAgICAgLiAgICAgIC4gICAgICAuICB9PC9wcmU+Cis8cD4oQWx0aG91Z2ggY29sdW1uIHdpZHRocyBhcmUgYXV0b21hdGljYWxseSBtaW5pbWlzZWQsIGEgd2lkZQordGVybWluYWwgaXMgY2xlYXJseSB1c2VmdWwuKTwvcD4KKzxwPkVhY2ggc291cmNlIGZpbGUgaXMgY2xlYXJseSBtYXJrZWQKKyg8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPlVzZXItYW5ub3RhdGVkIHNvdXJjZTwvY29kZT4pIGFzCitoYXZpbmcgYmVlbiBjaG9zZW4gbWFudWFsbHkgZm9yIGFubm90YXRpb24uICBJZiB0aGUgZmlsZSB3YXMKK2ZvdW5kIGluIG9uZSBvZiB0aGUgZGlyZWN0b3JpZXMgc3BlY2lmaWVkIHdpdGggdGhlCis8Y29kZSBjbGFzcz0ib3B0aW9uIj4tSTwvY29kZT4vPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1pbmNsdWRlPC9jb2RlPiBvcHRpb24sIHRoZSBkaXJlY3RvcnkKK2FuZCBmaWxlIGFyZSBib3RoIGdpdmVuLjwvcD4KKzxwPkVhY2ggbGluZSBpcyBhbm5vdGF0ZWQgd2l0aCBpdHMgZXZlbnQgY291bnRzLiAgRXZlbnRzIG5vdAorYXBwbGljYWJsZSBmb3IgYSBsaW5lIGFyZSByZXByZXNlbnRlZCBieSBhIGRvdC4gIFRoaXMgaXMgdXNlZnVsCitmb3IgZGlzdGluZ3Vpc2hpbmcgYmV0d2VlbiBhbiBldmVudCB3aGljaCBjYW5ub3QgaGFwcGVuLCBhbmQgb25lCit3aGljaCBjYW4gYnV0IGRpZCBub3QuPC9wPgorPHA+U29tZXRpbWVzIG9ubHkgYSBzbWFsbCBzZWN0aW9uIG9mIGEgc291cmNlIGZpbGUgaXMKK2V4ZWN1dGVkLiAgVG8gbWluaW1pc2UgdW5pbnRlcmVzdGluZyBvdXRwdXQsIENhY2hlZ3JpbmQgb25seSBzaG93cworYW5ub3RhdGVkIGxpbmVzIGFuZCBsaW5lcyB3aXRoaW4gYSBzbWFsbCBkaXN0YW5jZSBvZiBhbm5vdGF0ZWQKK2xpbmVzLiAgR2FwcyBhcmUgbWFya2VkIHdpdGggdGhlIGxpbmUgbnVtYmVycyBzbyB5b3Uga25vdyB3aGljaAorcGFydCBvZiBhIGZpbGUgdGhlIHNob3duIGNvZGUgY29tZXMgZnJvbSwgZWc6PC9wPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPgorKGZpZ3VyZXMgYW5kIGNvZGUgZm9yIGxpbmUgNzA0KQorLS0gbGluZSA3MDQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLS0gbGluZSA4NzggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKGZpZ3VyZXMgYW5kIGNvZGUgZm9yIGxpbmUgODc4KTwvcHJlPgorPHA+VGhlIGFtb3VudCBvZiBjb250ZXh0IHRvIHNob3cgYXJvdW5kIGFubm90YXRlZCBsaW5lcyBpcworY29udHJvbGxlZCBieSB0aGUgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1jb250ZXh0PC9jb2RlPgorb3B0aW9uLjwvcD4KKzxwPlRvIGdldCBhdXRvbWF0aWMgYW5ub3RhdGlvbiwgdXNlIHRoZSA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWF1dG89eWVzPC9jb2RlPiBvcHRpb24uCitjZ19hbm5vdGF0ZSB3aWxsIGF1dG9tYXRpY2FsbHkgYW5ub3RhdGUgZXZlcnkgc291cmNlIGZpbGUgaXQgY2FuCitmaW5kIHRoYXQgaXMgbWVudGlvbmVkIGluIHRoZSBmdW5jdGlvbi1ieS1mdW5jdGlvbiBzdW1tYXJ5LgorVGhlcmVmb3JlLCB0aGUgZmlsZXMgY2hvc2VuIGZvciBhdXRvLWFubm90YXRpb24gYXJlIGFmZmVjdGVkIGJ5Cit0aGUgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1zb3J0PC9jb2RlPiBhbmQKKzxjb2RlIGNsYXNzPSJvcHRpb24iPi0tdGhyZXNob2xkPC9jb2RlPiBvcHRpb25zLiAgRWFjaAorc291cmNlIGZpbGUgaXMgY2xlYXJseSBtYXJrZWQgKDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+QXV0by1hbm5vdGF0ZWQKK3NvdXJjZTwvY29kZT4pIGFzIGJlaW5nIGNob3NlbiBhdXRvbWF0aWNhbGx5LiAgQW55CitmaWxlcyB0aGF0IGNvdWxkIG5vdCBiZSBmb3VuZCBhcmUgbWVudGlvbmVkIGF0IHRoZSBlbmQgb2YgdGhlCitvdXRwdXQsIGVnOjwvcD4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorVGhlIGZvbGxvd2luZyBmaWxlcyBjaG9zZW4gZm9yIGF1dG8tYW5ub3RhdGlvbiBjb3VsZCBub3QgYmUgZm91bmQ6CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgZ2V0Yy5jCisgIGN0eXBlLmMKKyAgLi4vc3lzZGVwcy9nZW5lcmljL2xvY2tmaWxlLmM8L3ByZT4KKzxwPlRoaXMgaXMgcXVpdGUgY29tbW9uIGZvciBsaWJyYXJ5IGZpbGVzLCBzaW5jZSBsaWJyYXJpZXMgYXJlCit1c3VhbGx5IGNvbXBpbGVkIHdpdGggZGVidWdnaW5nIGluZm9ybWF0aW9uLCBidXQgdGhlIHNvdXJjZSBmaWxlcworYXJlIG9mdGVuIG5vdCBwcmVzZW50IG9uIGEgc3lzdGVtLiAgSWYgYSBmaWxlIGlzIGNob3NlbiBmb3IKK2Fubm90YXRpb24gYm90aCBtYW51YWxseSBhbmQgYXV0b21hdGljYWxseSwgaXQKK2lzIG1hcmtlZCBhcyA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPlVzZXItYW5ub3RhdGVkCitzb3VyY2U8L2NvZGU+LiBVc2UgdGhlCis8Y29kZSBjbGFzcz0ib3B0aW9uIj4tSTwvY29kZT4vPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1pbmNsdWRlPC9jb2RlPiBvcHRpb24gdG8gdGVsbCBWYWxncmluZCB3aGVyZQordG8gbG9vayBmb3Igc291cmNlIGZpbGVzIGlmIHRoZSBmaWxlbmFtZXMgZm91bmQgZnJvbSB0aGUgZGVidWdnaW5nCitpbmZvcm1hdGlvbiBhcmVuJ3Qgc3BlY2lmaWMgZW5vdWdoLjwvcD4KKzxwPkJld2FyZSB0aGF0IGNnX2Fubm90YXRlIGNhbiB0YWtlIHNvbWUgdGltZSB0byBkaWdlc3QgbGFyZ2UKKzxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+Y2FjaGVncmluZC5vdXQuJmx0O3BpZCZndDs8L2NvZGU+IGZpbGVzLAorZS5nLiAzMCBzZWNvbmRzIG9yIG1vcmUuICBBbHNvIGJld2FyZSB0aGF0IGF1dG8tYW5ub3RhdGlvbiBjYW4KK3Byb2R1Y2UgYSBsb3Qgb2Ygb3V0cHV0IGlmIHlvdXIgcHJvZ3JhbSBpcyBsYXJnZSE8L3A+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0iY2ctbWFudWFsLmFzc2VtYmxlciI+PC9hPjUuMi43LqBBbm5vdGF0aW5nIEFzc2VtYmx5IENvZGUgUHJvZ3JhbXM8L2gzPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+VmFsZ3JpbmQgY2FuIGFubm90YXRlIGFzc2VtYmx5IGNvZGUgcHJvZ3JhbXMgdG9vLCBvciBhbm5vdGF0ZQordGhlIGFzc2VtYmx5IGNvZGUgZ2VuZXJhdGVkIGZvciB5b3VyIEMgcHJvZ3JhbS4gIFNvbWV0aW1lcyB0aGlzIGlzCit1c2VmdWwgZm9yIHVuZGVyc3RhbmRpbmcgd2hhdCBpcyByZWFsbHkgaGFwcGVuaW5nIHdoZW4gYW4KK2ludGVyZXN0aW5nIGxpbmUgb2YgQyBjb2RlIGlzIHRyYW5zbGF0ZWQgaW50byBtdWx0aXBsZQoraW5zdHJ1Y3Rpb25zLjwvcD4KKzxwPlRvIGRvIHRoaXMsIHlvdSBqdXN0IG5lZWQgdG8gYXNzZW1ibGUgeW91cgorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij4uczwvY29kZT4gZmlsZXMgd2l0aCBhc3NlbWJseS1sZXZlbCBkZWJ1ZworaW5mb3JtYXRpb24uICBZb3UgY2FuIHVzZSBjb21waWxlIHdpdGggdGhlIDxjb2RlIGNsYXNzPSJvcHRpb24iPi1TPC9jb2RlPiB0byBjb21waWxlIEMvQysrCitwcm9ncmFtcyB0byBhc3NlbWJseSBjb2RlLCBhbmQgdGhlbiBhc3NlbWJsZSB0aGUgYXNzZW1ibHkgY29kZSBmaWxlcyB3aXRoCis8Y29kZSBjbGFzcz0ib3B0aW9uIj4tZzwvY29kZT4gdG8gYWNoaWV2ZSB0aGlzLiAgWW91IGNhbiB0aGVuIHByb2ZpbGUgYW5kIGFubm90YXRlIHRoZQorYXNzZW1ibHkgY29kZSBzb3VyY2UgZmlsZXMgaW4gdGhlIHNhbWUgd2F5IGFzIEMvQysrIHNvdXJjZSBmaWxlcy48L3A+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0ibXMtbWFudWFsLmZvcmtpbmdwcm9ncmFtcyI+PC9hPjUuMi44LqBGb3JraW5nIFByb2dyYW1zPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPklmIHlvdXIgcHJvZ3JhbSBmb3JrcywgdGhlIGNoaWxkIHdpbGwgaW5oZXJpdCBhbGwgdGhlIHByb2ZpbGluZyBkYXRhIHRoYXQKK2hhcyBiZWVuIGdhdGhlcmVkIGZvciB0aGUgcGFyZW50LjwvcD4KKzxwPklmIHRoZSBvdXRwdXQgZmlsZSBmb3JtYXQgc3RyaW5nIChjb250cm9sbGVkIGJ5Cis8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWNhY2hlZ3JpbmQtb3V0LWZpbGU8L2NvZGU+KSBkb2VzIG5vdCBjb250YWluIDxjb2RlIGNsYXNzPSJvcHRpb24iPiVwPC9jb2RlPiwKK3RoZW4gdGhlIG91dHB1dHMgZnJvbSB0aGUgcGFyZW50IGFuZCBjaGlsZCB3aWxsIGJlIGludGVybWluZ2xlZCBpbiBhIHNpbmdsZQorb3V0cHV0IGZpbGUsIHdoaWNoIHdpbGwgYWxtb3N0IGNlcnRhaW5seSBtYWtlIGl0IHVucmVhZGFibGUgYnkKK2NnX2Fubm90YXRlLjwvcD4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDIiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJjZy1tYW51YWwuYW5ub3B0cy53YXJuaW5ncyI+PC9hPjUuMi45LqBjZ19hbm5vdGF0ZSBXYXJuaW5nczwvaDM+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD5UaGVyZSBhcmUgYSBjb3VwbGUgb2Ygc2l0dWF0aW9ucyBpbiB3aGljaAorY2dfYW5ub3RhdGUgaXNzdWVzIHdhcm5pbmdzLjwvcD4KKzxkaXYgY2xhc3M9Iml0ZW1pemVkbGlzdCI+PHVsIGNsYXNzPSJpdGVtaXplZGxpc3QiIHN0eWxlPSJsaXN0LXN0eWxlLXR5cGU6IGRpc2M7ICI+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5JZiBhIHNvdXJjZSBmaWxlIGlzIG1vcmUgcmVjZW50IHRoYW4gdGhlCisgICAgPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5jYWNoZWdyaW5kLm91dC4mbHQ7cGlkJmd0OzwvY29kZT4gZmlsZS4KKyAgICBUaGlzIGlzIGJlY2F1c2UgdGhlIGluZm9ybWF0aW9uIGluCisgICAgPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5jYWNoZWdyaW5kLm91dC4mbHQ7cGlkJmd0OzwvY29kZT4gaXMgb25seQorICAgIHJlY29yZGVkIHdpdGggbGluZSBudW1iZXJzLCBzbyBpZiB0aGUgbGluZSBudW1iZXJzIGNoYW5nZSBhdAorICAgIGFsbCBpbiB0aGUgc291cmNlIChlLmcuICBsaW5lcyBhZGRlZCwgZGVsZXRlZCwgc3dhcHBlZCksIGFueQorICAgIGFubm90YXRpb25zIHdpbGwgYmUgaW5jb3JyZWN0LjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+SWYgaW5mb3JtYXRpb24gaXMgcmVjb3JkZWQgYWJvdXQgbGluZSBudW1iZXJzIHBhc3QgdGhlCisgICAgZW5kIG9mIGEgZmlsZS4gIFRoaXMgY2FuIGJlIGNhdXNlZCBieSB0aGUgYWJvdmUgcHJvYmxlbSwKKyAgICBpLmUuIHNob3J0ZW5pbmcgdGhlIHNvdXJjZSBmaWxlIHdoaWxlIHVzaW5nIGFuIG9sZAorICAgIDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+Y2FjaGVncmluZC5vdXQuJmx0O3BpZCZndDs8L2NvZGU+IGZpbGUuICBJZgorICAgIHRoaXMgaGFwcGVucywgdGhlIGZpZ3VyZXMgZm9yIHRoZSBib2d1cyBsaW5lcyBhcmUgcHJpbnRlZAorICAgIGFueXdheSAoY2xlYXJseSBtYXJrZWQgYXMgYm9ndXMpIGluIGNhc2UgdGhleSBhcmUKKyAgICBpbXBvcnRhbnQuPC9wPjwvbGk+Cis8L3VsPjwvZGl2PgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MiI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9ImNnLW1hbnVhbC5hbm5vcHRzLnRoaW5ncy10by13YXRjaC1vdXQtZm9yIj48L2E+NS4yLjEwLqBVbnVzdWFsIEFubm90YXRpb24gQ2FzZXM8L2gzPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+U29tZSBvZGQgdGhpbmdzIHRoYXQgY2FuIG9jY3VyIGR1cmluZyBhbm5vdGF0aW9uOjwvcD4KKzxkaXYgY2xhc3M9Iml0ZW1pemVkbGlzdCI+PHVsIGNsYXNzPSJpdGVtaXplZGxpc3QiIHN0eWxlPSJsaXN0LXN0eWxlLXR5cGU6IGRpc2M7ICI+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj4KKzxwPklmIGFubm90YXRpbmcgYXQgdGhlIGFzc2VtYmxlciBsZXZlbCwgeW91IG1pZ2h0IHNlZQorICAgIHNvbWV0aGluZyBsaWtlIHRoaXM6PC9wPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPgorICAgICAgMSAgICAwICAgIDAgIC4gICAgLiAgICAuICAuICAgIC4gICAgLiAgICAgICAgICBsZWFsIC0xMiglZWJwKSwlZWF4CisgICAgICAxICAgIDAgICAgMCAgLiAgICAuICAgIC4gIDEgICAgMCAgICAwICAgICAgICAgIG1vdmwgJWVheCw4NCglZWJ4KQorICAgICAgMiAgICAwICAgIDAgIDAgICAgMCAgICAwICAxICAgIDAgICAgMCAgICAgICAgICBtb3ZsICQxLC0yMCglZWJwKQorICAgICAgLiAgICAuICAgIC4gIC4gICAgLiAgICAuICAuICAgIC4gICAgLiAgICAgICAgICAuYWxpZ24gNCwweDkwCisgICAgICAxICAgIDAgICAgMCAgLiAgICAuICAgIC4gIC4gICAgLiAgICAuICAgICAgICAgIG1vdmwgJC5MbnJCLCVlYXgKKyAgICAgIDEgICAgMCAgICAwICAuICAgIC4gICAgLiAgMSAgICAwICAgIDAgICAgICAgICAgbW92bCAlZWF4LC0xNiglZWJwKTwvcHJlPgorPHA+SG93IGNhbiB0aGUgdGhpcmQgaW5zdHJ1Y3Rpb24gYmUgZXhlY3V0ZWQgdHdpY2Ugd2hlbgorICAgIHRoZSBvdGhlcnMgYXJlIGV4ZWN1dGVkIG9ubHkgb25jZT8gIEFzIGl0IHR1cm5zIG91dCwgaXQKKyAgICBpc24ndC4gIEhlcmUncyBhIGR1bXAgb2YgdGhlIGV4ZWN1dGFibGUsIHVzaW5nCisgICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5vYmpkdW1wIC1kPC9jb2RlPjo8L3A+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CisgICAgICA4MDQ4ZjI1OiAgICAgICA4ZCA0NSBmNCAgICAgICAgICAgICAgICBsZWEgICAgMHhmZmZmZmZmNCglZWJwKSwlZWF4CisgICAgICA4MDQ4ZjI4OiAgICAgICA4OSA0MyA1NCAgICAgICAgICAgICAgICBtb3YgICAgJWVheCwweDU0KCVlYngpCisgICAgICA4MDQ4ZjJiOiAgICAgICBjNyA0NSBlYyAwMSAwMCAwMCAwMCAgICBtb3ZsICAgJDB4MSwweGZmZmZmZmVjKCVlYnApCisgICAgICA4MDQ4ZjMyOiAgICAgICA4OSBmNiAgICAgICAgICAgICAgICAgICBtb3YgICAgJWVzaSwlZXNpCisgICAgICA4MDQ4ZjM0OiAgICAgICBiOCAwOCA4YiAwNyAwOCAgICAgICAgICBtb3YgICAgJDB4ODA3OGIwOCwlZWF4CisgICAgICA4MDQ4ZjM5OiAgICAgICA4OSA0NSBmMCAgICAgICAgICAgICAgICBtb3YgICAgJWVheCwweGZmZmZmZmYwKCVlYnApPC9wcmU+Cis8cD5Ob3RpY2UgdGhlIGV4dHJhIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+bW92CisgICAgJWVzaSwlZXNpPC9jb2RlPiBpbnN0cnVjdGlvbi4gIFdoZXJlIGRpZCB0aGlzIGNvbWUKKyAgICBmcm9tPyAgVGhlIEdOVSBhc3NlbWJsZXIgaW5zZXJ0ZWQgaXQgdG8gc2VydmUgYXMgdGhlIHR3bworICAgIGJ5dGVzIG9mIHBhZGRpbmcgbmVlZGVkIHRvIGFsaWduIHRoZSA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPm1vdmwKKyAgICAkLkxuckIsJWVheDwvY29kZT4gaW5zdHJ1Y3Rpb24gb24gYSBmb3VyLWJ5dGUKKyAgICBib3VuZGFyeSwgYnV0IHByZXRlbmRlZCBpdCBkaWRuJ3QgZXhpc3Qgd2hlbiBhZGRpbmcgZGVidWcKKyAgICBpbmZvcm1hdGlvbi4gIFRodXMgd2hlbiBWYWxncmluZCByZWFkcyB0aGUgZGVidWcgaW5mbyBpdAorICAgIHRoaW5rcyB0aGF0IHRoZSA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPm1vdmwKKyAgICAkMHgxLDB4ZmZmZmZmZWMoJWVicCk8L2NvZGU+IGluc3RydWN0aW9uIGNvdmVycyB0aGUKKyAgICBhZGRyZXNzIHJhbmdlIDB4ODA0OGYyYi0tMHg4MDQ4MzMgYnkgaXRzZWxmLCBhbmQgYXR0cmlidXRlcworICAgIHRoZSBjb3VudHMgZm9yIHRoZSA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPm1vdgorICAgICVlc2ksJWVzaTwvY29kZT4gdG8gaXQuPC9wPgorPC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPlNvbWV0aW1lcywgdGhlIHNhbWUgZmlsZW5hbWUgbWlnaHQgYmUgcmVwcmVzZW50ZWQgd2l0aAorICAgIGEgcmVsYXRpdmUgbmFtZSBhbmQgd2l0aCBhbiBhYnNvbHV0ZSBuYW1lIGluIGRpZmZlcmVudCBwYXJ0cworICAgIG9mIHRoZSBkZWJ1ZyBpbmZvLCBlZzoKKyAgICA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPi9ob21lL3VzZXIvcHJvai9wcm9qLmg8L2NvZGU+IGFuZAorICAgIDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+Li4vcHJvai5oPC9jb2RlPi4gIEluIHRoaXMgY2FzZSwgaWYgeW91IHVzZQorICAgIGF1dG8tYW5ub3RhdGlvbiwgdGhlIGZpbGUgd2lsbCBiZSBhbm5vdGF0ZWQgdHdpY2Ugd2l0aCB0aGUKKyAgICBjb3VudHMgc3BsaXQgYmV0d2VlbiB0aGUgdHdvLjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+SWYgeW91IGNvbXBpbGUgc29tZSBmaWxlcyB3aXRoCisgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LWc8L2NvZGU+IGFuZCBzb21lIHdpdGhvdXQsIHNvbWUKKyAgICBldmVudHMgdGhhdCB0YWtlIHBsYWNlIGluIGEgZmlsZSB3aXRob3V0IGRlYnVnIGluZm8gY291bGQgYmUKKyAgICBhdHRyaWJ1dGVkIHRvIHRoZSBsYXN0IGxpbmUgb2YgYSBmaWxlIHdpdGggZGVidWcgaW5mbworICAgICh3aGljaGV2ZXIgb25lIGdldHMgcGxhY2VkIGJlZm9yZSB0aGUgbm9uLWRlYnVnLWluZm8gZmlsZSBpbgorICAgIHRoZSBleGVjdXRhYmxlKS48L3A+PC9saT4KKzwvdWw+PC9kaXY+Cis8cD5UaGlzIGxpc3QgbG9va3MgbG9uZywgYnV0IHRoZXNlIGNhc2VzIHNob3VsZCBiZSBmYWlybHkKK3JhcmUuPC9wPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MiI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9ImNnLW1hbnVhbC5jZ19tZXJnZSI+PC9hPjUuMi4xMS6gTWVyZ2luZyBQcm9maWxlcyB3aXRoIGNnX21lcmdlPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPgorY2dfbWVyZ2UgaXMgYSBzaW1wbGUgcHJvZ3JhbSB3aGljaAorcmVhZHMgbXVsdGlwbGUgcHJvZmlsZSBmaWxlcywgYXMgY3JlYXRlZCBieSBDYWNoZWdyaW5kLCBtZXJnZXMgdGhlbQordG9nZXRoZXIsIGFuZCB3cml0ZXMgdGhlIHJlc3VsdHMgaW50byBhbm90aGVyIGZpbGUgaW4gdGhlIHNhbWUgZm9ybWF0LgorWW91IGNhbiB0aGVuIGV4YW1pbmUgdGhlIG1lcmdlZCByZXN1bHRzIHVzaW5nCis8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmNnX2Fubm90YXRlICZsdDtmaWxlbmFtZSZndDs8L2NvZGU+LCBhcworZGVzY3JpYmVkIGFib3ZlLiAgVGhlIG1lcmdpbmcgZnVuY3Rpb25hbGl0eSBtaWdodCBiZSB1c2VmdWwgaWYgeW91Cit3YW50IHRvIGFnZ3JlZ2F0ZSBjb3N0cyBvdmVyIG11bHRpcGxlIHJ1bnMgb2YgdGhlIHNhbWUgcHJvZ3JhbSwgb3IKK2Zyb20gYSBzaW5nbGUgcGFyYWxsZWwgcnVuIHdpdGggbXVsdGlwbGUgaW5zdGFuY2VzIG9mIHRoZSBzYW1lCitwcm9ncmFtLjwvcD4KKzxwPgorY2dfbWVyZ2UgaXMgaW52b2tlZCBhcyBmb2xsb3dzOgorPC9wPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPgorY2dfbWVyZ2UgLW8gb3V0cHV0ZmlsZSBmaWxlMSBmaWxlMiBmaWxlMyAuLi48L3ByZT4KKzxwPgorSXQgcmVhZHMgYW5kIGNoZWNrcyA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmZpbGUxPC9jb2RlPiwgdGhlbiByZWFkCithbmQgY2hlY2tzIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+ZmlsZTI8L2NvZGU+IGFuZCBtZXJnZXMgaXQgaW50bwordGhlIHJ1bm5pbmcgdG90YWxzLCB0aGVuIHRoZSBzYW1lIHdpdGgKKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+ZmlsZTM8L2NvZGU+LCBldGMuICBUaGUgZmluYWwgcmVzdWx0cyBhcmUKK3dyaXR0ZW4gdG8gPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5vdXRwdXRmaWxlPC9jb2RlPiwgb3IgdG8gc3RhbmRhcmQKK291dCBpZiBubyBvdXRwdXQgZmlsZSBpcyBzcGVjaWZpZWQuPC9wPgorPHA+CitDb3N0cyBhcmUgc3VtbWVkIG9uIGEgcGVyLWZ1bmN0aW9uLCBwZXItbGluZSBhbmQgcGVyLWluc3RydWN0aW9uCitiYXNpcy4gIEJlY2F1c2Ugb2YgdGhpcywgdGhlIG9yZGVyIGluIHdoaWNoIHRoZSBpbnB1dCBmaWxlcyBkb2VzIG5vdAorbWF0dGVyLCBhbHRob3VnaCB5b3Ugc2hvdWxkIHRha2UgY2FyZSB0byBvbmx5IG1lbnRpb24gZWFjaCBmaWxlIG9uY2UsCitzaW5jZSBhbnkgZmlsZSBtZW50aW9uZWQgdHdpY2Ugd2lsbCBiZSBhZGRlZCBpbiB0d2ljZS48L3A+Cis8cD4KK2NnX21lcmdlIGRvZXMgbm90IGF0dGVtcHQgdG8gY2hlY2sKK3RoYXQgdGhlIGlucHV0IGZpbGVzIGNvbWUgZnJvbSBydW5zIG9mIHRoZSBzYW1lIGV4ZWN1dGFibGUuICBJdCB3aWxsCitoYXBwaWx5IG1lcmdlIHRvZ2V0aGVyIHByb2ZpbGUgZmlsZXMgZnJvbSBjb21wbGV0ZWx5IHVucmVsYXRlZAorcHJvZ3JhbXMuICBJdCBkb2VzIGhvd2V2ZXIgY2hlY2sgdGhhdCB0aGUKKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+RXZlbnRzOjwvY29kZT4gbGluZXMgb2YgYWxsIHRoZSBpbnB1dHMgYXJlCitpZGVudGljYWwsIHNvIGFzIHRvIGVuc3VyZSB0aGF0IHRoZSBhZGRpdGlvbiBvZiBjb3N0cyBtYWtlcyBzZW5zZS4KK0ZvciBleGFtcGxlLCBpdCB3b3VsZCBiZSBub25zZW5zaWNhbCBmb3IgaXQgdG8gYWRkIGEgbnVtYmVyIGluZGljYXRpbmcKK0QxIHJlYWQgcmVmZXJlbmNlcyB0byBhIG51bWJlciBmcm9tIGEgZGlmZmVyZW50IGZpbGUgaW5kaWNhdGluZyBMTAord3JpdGUgbWlzc2VzLjwvcD4KKzxwPgorQSBudW1iZXIgb2Ygb3RoZXIgc3ludGF4IGFuZCBzYW5pdHkgY2hlY2tzIGFyZSBkb25lIHdoaWxzdCByZWFkaW5nIHRoZQoraW5wdXRzLiAgY2dfbWVyZ2Ugd2lsbCBzdG9wIGFuZAorYXR0ZW1wdCB0byBwcmludCBhIGhlbHBmdWwgZXJyb3IgbWVzc2FnZSBpZiBhbnkgb2YgdGhlIGlucHV0IGZpbGVzCitmYWlsIHRoZXNlIGNoZWNrcy48L3A+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0iY2ctbWFudWFsLmNnX2RpZmYiPjwvYT41LjIuMTIuoERpZmZlcmVuY2luZyBQcm9maWxlcyB3aXRoIGNnX2RpZmY8L2gzPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+CitjZ19kaWZmIGlzIGEgc2ltcGxlIHByb2dyYW0gd2hpY2gKK3JlYWRzIHR3byBwcm9maWxlIGZpbGVzLCBhcyBjcmVhdGVkIGJ5IENhY2hlZ3JpbmQsIGZpbmRzIHRoZSBkaWZmZXJlbmNlCitiZXR3ZWVuIHRoZW0sIGFuZCB3cml0ZXMgdGhlIHJlc3VsdHMgaW50byBhbm90aGVyIGZpbGUgaW4gdGhlIHNhbWUgZm9ybWF0LgorWW91IGNhbiB0aGVuIGV4YW1pbmUgdGhlIG1lcmdlZCByZXN1bHRzIHVzaW5nCis8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmNnX2Fubm90YXRlICZsdDtmaWxlbmFtZSZndDs8L2NvZGU+LCBhcworZGVzY3JpYmVkIGFib3ZlLiAgVGhpcyBpcyB2ZXJ5IHVzZWZ1bCBpZiB5b3Ugd2FudCB0byBtZWFzdXJlIGhvdyBhIGNoYW5nZSB0bworYSBwcm9ncmFtIGFmZmVjdGVkIGl0cyBwZXJmb3JtYW5jZS4KKzwvcD4KKzxwPgorY2dfZGlmZiBpcyBpbnZva2VkIGFzIGZvbGxvd3M6Cis8L3A+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CitjZ19kaWZmIGZpbGUxIGZpbGUyPC9wcmU+Cis8cD4KK0l0IHJlYWRzIGFuZCBjaGVja3MgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5maWxlMTwvY29kZT4sIHRoZW4gcmVhZAorYW5kIGNoZWNrcyA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmZpbGUyPC9jb2RlPiwgdGhlbiBjb21wdXRlcyB0aGUKK2RpZmZlcmVuY2UgKGVmZmVjdGl2ZWx5IDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+ZmlsZTE8L2NvZGU+IC0KKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+ZmlsZTI8L2NvZGU+KS4gIFRoZSBmaW5hbCByZXN1bHRzIGFyZSB3cml0dGVuIHRvCitzdGFuZGFyZCBvdXRwdXQuPC9wPgorPHA+CitDb3N0cyBhcmUgc3VtbWVkIG9uIGEgcGVyLWZ1bmN0aW9uIGJhc2lzLiAgUGVyLWxpbmUgY29zdHMgYXJlIG5vdCBzdW1tZWQsCitiZWNhdXNlIGRvaW5nIHNvIGlzIHRvbyBkaWZmaWN1bHQuICBGb3IgZXhhbXBsZSwgY29uc2lkZXIgZGlmZmVyZW5jaW5nIHR3bworcHJvZmlsZXMsIG9uZSBmcm9tIGEgc2luZ2xlLWZpbGUgcHJvZ3JhbSBBLCBhbmQgb25lIGZyb20gdGhlIHNhbWUgcHJvZ3JhbSBBCit3aGVyZSBhIHNpbmdsZSBibGFuayBsaW5lIHdhcyBpbnNlcnRlZCBhdCB0aGUgdG9wIG9mIHRoZSBmaWxlLiAgRXZlcnkgc2luZ2xlCitwZXItbGluZSBjb3VudCBoYXMgY2hhbmdlZC4gIEluIGNvbXBhcmlzb24sIHRoZSBwZXItZnVuY3Rpb24gY291bnRzIGhhdmUgbm90CitjaGFuZ2VkLiAgVGhlIHBlci1mdW5jdGlvbiBjb3VudCBkaWZmZXJlbmNlcyBhcmUgc3RpbGwgdmVyeSB1c2VmdWwgZm9yCitkZXRlcm1pbmluZyBkaWZmZXJlbmNlcyBiZXR3ZWVuIHByb2dyYW1zLiAgTm90ZSB0aGF0IGJlY2F1c2UgdGhlIHJlc3VsdCBpcwordGhlIGRpZmZlcmVuY2Ugb2YgdHdvIHByb2ZpbGVzLCBtYW55IG9mIHRoZSBjb3VudHMgd2lsbCBiZSBuZWdhdGl2ZTsgIHRoaXMKK2luZGljYXRlcyB0aGF0IHRoZSBjb3VudHMgZm9yIHRoZSByZWxldmFudCBmdW5jdGlvbiBhcmUgZmV3ZXIgaW4gdGhlIHNlY29uZAordmVyc2lvbiB0aGFuIHRob3NlIGluIHRoZSBmaXJzdCB2ZXJzaW9uLjwvcD4KKzxwPgorY2dfZGlmZiBkb2VzIG5vdCBhdHRlbXB0IHRvIGNoZWNrCit0aGF0IHRoZSBpbnB1dCBmaWxlcyBjb21lIGZyb20gcnVucyBvZiB0aGUgc2FtZSBleGVjdXRhYmxlLiAgSXQgd2lsbAoraGFwcGlseSBtZXJnZSB0b2dldGhlciBwcm9maWxlIGZpbGVzIGZyb20gY29tcGxldGVseSB1bnJlbGF0ZWQKK3Byb2dyYW1zLiAgSXQgZG9lcyBob3dldmVyIGNoZWNrIHRoYXQgdGhlCis8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPkV2ZW50czo8L2NvZGU+IGxpbmVzIG9mIGFsbCB0aGUgaW5wdXRzIGFyZQoraWRlbnRpY2FsLCBzbyBhcyB0byBlbnN1cmUgdGhhdCB0aGUgYWRkaXRpb24gb2YgY29zdHMgbWFrZXMgc2Vuc2UuCitGb3IgZXhhbXBsZSwgaXQgd291bGQgYmUgbm9uc2Vuc2ljYWwgZm9yIGl0IHRvIGFkZCBhIG51bWJlciBpbmRpY2F0aW5nCitEMSByZWFkIHJlZmVyZW5jZXMgdG8gYSBudW1iZXIgZnJvbSBhIGRpZmZlcmVudCBmaWxlIGluZGljYXRpbmcgTEwKK3dyaXRlIG1pc3Nlcy48L3A+Cis8cD4KK0EgbnVtYmVyIG9mIG90aGVyIHN5bnRheCBhbmQgc2FuaXR5IGNoZWNrcyBhcmUgZG9uZSB3aGlsc3QgcmVhZGluZyB0aGUKK2lucHV0cy4gIGNnX2RpZmYgd2lsbCBzdG9wIGFuZAorYXR0ZW1wdCB0byBwcmludCBhIGhlbHBmdWwgZXJyb3IgbWVzc2FnZSBpZiBhbnkgb2YgdGhlIGlucHV0IGZpbGVzCitmYWlsIHRoZXNlIGNoZWNrcy48L3A+Cis8cD4KK1NvbWV0aW1lcyB5b3Ugd2lsbCB3YW50IHRvIGNvbXBhcmUgQ2FjaGVncmluZCBwcm9maWxlcyBvZiB0d28gdmVyc2lvbnMgb2YgYQorcHJvZ3JhbSB0aGF0IHlvdSBoYXZlIHNpdHRpbmcgc2lkZS1ieS1zaWRlLiAgRm9yIGV4YW1wbGUsIHlvdSBtaWdodCBoYXZlCis8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPnZlcnNpb24xL3Byb2cuYzwvY29kZT4gYW5kCis8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPnZlcnNpb24yL3Byb2cuYzwvY29kZT4sIHdoZXJlIHRoZSBzZWNvbmQgaXMKK3NsaWdodGx5IGRpZmZlcmVudCB0byB0aGUgZmlyc3QuICBBIHN0cmFpZ2h0IGNvbXBhcmlzb24gb2YgdGhlIHR3byB3aWxsIG5vdAorYmUgdXNlZnVsIC0tIGJlY2F1c2UgZnVuY3Rpb25zIGFyZSBxdWFsaWZpZWQgd2l0aCBmaWxlbmFtZXMsIGEgZnVuY3Rpb24KKzxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+ZjwvY29kZT4gd2lsbCBiZSBsaXN0ZWQgYXMKKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+dmVyc2lvbjEvcHJvZy5jOmY8L2NvZGU+IGZvciB0aGUgZmlyc3QgdmVyc2lvbiBidXQKKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+dmVyc2lvbjIvcHJvZy5jOmY8L2NvZGU+IGZvciB0aGUgc2Vjb25kCit2ZXJzaW9uLjwvcD4KKzxwPgorV2hlbiB0aGlzIGhhcHBlbnMsIHlvdSBjYW4gdXNlIHRoZSA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLW1vZC1maWxlbmFtZTwvY29kZT4gb3B0aW9uLgorSXRzIGFyZ3VtZW50IGlzIGEgUGVybCBzZWFyY2gtYW5kLXJlcGxhY2UgZXhwcmVzc2lvbiB0aGF0IHdpbGwgYmUgYXBwbGllZAordG8gYWxsIHRoZSBmaWxlbmFtZXMgaW4gYm90aCBDYWNoZWdyaW5kIG91dHB1dCBmaWxlcy4gIEl0IGNhbiBiZSB1c2VkIHRvCityZW1vdmUgbWlub3IgZGlmZmVyZW5jZXMgaW4gZmlsZW5hbWVzLiAgRm9yIGV4YW1wbGUsIHRoZSBvcHRpb24KKzxjb2RlIGNsYXNzPSJvcHRpb24iPi0tbW9kLWZpbGVuYW1lPSdzL3ZlcnNpb25bMC05XS92ZXJzaW9uTi8nPC9jb2RlPiB3aWxsIHN1ZmZpY2UgZm9yCit0aGlzIGNhc2UuPC9wPgorPHA+CitTaW1pbGFybHksIHNvbWV0aW1lcyBjb21waWxlcnMgYXV0by1nZW5lcmF0ZSBjZXJ0YWluIGZ1bmN0aW9ucyBhbmQgZ2l2ZSB0aGVtCityYW5kb21pemVkIG5hbWVzLiAgRm9yIGV4YW1wbGUsIEdDQyBzb21ldGltZXMgYXV0by1nZW5lcmF0ZXMgZnVuY3Rpb25zIHdpdGgKK25hbWVzIGxpa2UgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5ULjEyMzQ8L2NvZGU+LCBhbmQgdGhlIHN1ZmZpeGVzIHZhcnkgZnJvbSBidWlsZCB0bworYnVpbGQuICBZb3UgY2FuIHVzZSB0aGUgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1tb2QtZnVuY25hbWU8L2NvZGU+IG9wdGlvbiB0byByZW1vdmUKK3NtYWxsIGRpZmZlcmVuY2VzIGxpa2UgdGhlc2U7ICBpdCB3b3JrcyBpbiB0aGUgc2FtZSB3YXkgYXMKKzxjb2RlIGNsYXNzPSJvcHRpb24iPi0tbW9kLWZpbGVuYW1lPC9jb2RlPi48L3A+Cis8L2Rpdj4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDEiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj4KKzxhIG5hbWU9ImNnLW1hbnVhbC5jZ29wdHMiPjwvYT41LjMuoENhY2hlZ3JpbmQgQ29tbWFuZC1saW5lIE9wdGlvbnM8L2gyPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+Q2FjaGVncmluZC1zcGVjaWZpYyBvcHRpb25zIGFyZTo8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPgorPGEgbmFtZT0iY2cub3B0cy5saXN0Ij48L2E+PGRsIGNsYXNzPSJ2YXJpYWJsZWxpc3QiPgorPGR0PgorPGEgbmFtZT0ib3B0LkkxIj48L2E+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1JMT0mbHQ7c2l6ZSZndDssJmx0O2Fzc29jaWF0aXZpdHkmZ3Q7LCZsdDtsaW5lIHNpemUmZ3Q7IDwvY29kZT4KKyAgICA8L3NwYW4+Cis8L2R0PgorPGRkPjxwPlNwZWNpZnkgdGhlIHNpemUsIGFzc29jaWF0aXZpdHkgYW5kIGxpbmUgc2l6ZSBvZiB0aGUgbGV2ZWwgMQorICAgICAgaW5zdHJ1Y3Rpb24gY2FjaGUuICA8L3A+PC9kZD4KKzxkdD4KKzxhIG5hbWU9Im9wdC5EMSI+PC9hPjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tRDE9Jmx0O3NpemUmZ3Q7LCZsdDthc3NvY2lhdGl2aXR5Jmd0OywmbHQ7bGluZSBzaXplJmd0OyA8L2NvZGU+CisgICAgPC9zcGFuPgorPC9kdD4KKzxkZD48cD5TcGVjaWZ5IHRoZSBzaXplLCBhc3NvY2lhdGl2aXR5IGFuZCBsaW5lIHNpemUgb2YgdGhlIGxldmVsIDEKKyAgICAgIGRhdGEgY2FjaGUuPC9wPjwvZGQ+Cis8ZHQ+Cis8YSBuYW1lPSJvcHQuTEwiPjwvYT48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLUxMPSZsdDtzaXplJmd0OywmbHQ7YXNzb2NpYXRpdml0eSZndDssJmx0O2xpbmUgc2l6ZSZndDsgPC9jb2RlPgorICAgIDwvc3Bhbj4KKzwvZHQ+Cis8ZGQ+PHA+U3BlY2lmeSB0aGUgc2l6ZSwgYXNzb2NpYXRpdml0eSBhbmQgbGluZSBzaXplIG9mIHRoZSBsYXN0LWxldmVsCisgICAgICBjYWNoZS48L3A+PC9kZD4KKzxkdD4KKzxhIG5hbWU9Im9wdC5jYWNoZS1zaW0iPjwvYT48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWNhY2hlLXNpbT1ub3x5ZXMgW3llc10gPC9jb2RlPgorICAgIDwvc3Bhbj4KKzwvZHQ+Cis8ZGQ+PHA+RW5hYmxlcyBvciBkaXNhYmxlcyBjb2xsZWN0aW9uIG9mIGNhY2hlIGFjY2VzcyBhbmQgbWlzcworICAgICAgICAgICAgY291bnRzLjwvcD48L2RkPgorPGR0PgorPGEgbmFtZT0ib3B0LmJyYW5jaC1zaW0iPjwvYT48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWJyYW5jaC1zaW09bm98eWVzIFtub10gPC9jb2RlPgorICAgIDwvc3Bhbj4KKzwvZHQ+Cis8ZGQ+PHA+RW5hYmxlcyBvciBkaXNhYmxlcyBjb2xsZWN0aW9uIG9mIGJyYW5jaCBpbnN0cnVjdGlvbiBhbmQKKyAgICAgICAgICAgIG1pc3ByZWRpY3Rpb24gY291bnRzLiAgQnkgZGVmYXVsdCB0aGlzIGlzIGRpc2FibGVkIGFzIGl0CisgICAgICAgICAgICBzbG93cyBDYWNoZWdyaW5kIGRvd24gYnkgYXBwcm94aW1hdGVseSAyNSUuICBOb3RlIHRoYXQgeW91CisgICAgICAgICAgICBjYW5ub3Qgc3BlY2lmeSA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWNhY2hlLXNpbT1ubzwvY29kZT4KKyAgICAgICAgICAgIGFuZCA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWJyYW5jaC1zaW09bm88L2NvZGU+CisgICAgICAgICAgICB0b2dldGhlciwgYXMgdGhhdCB3b3VsZCBsZWF2ZSBDYWNoZWdyaW5kIHdpdGggbm8KKyAgICAgICAgICAgIGluZm9ybWF0aW9uIHRvIGNvbGxlY3QuPC9wPjwvZGQ+Cis8ZHQ+Cis8YSBuYW1lPSJvcHQuY2FjaGVncmluZC1vdXQtZmlsZSI+PC9hPjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tY2FjaGVncmluZC1vdXQtZmlsZT0mbHQ7ZmlsZSZndDsgPC9jb2RlPgorICAgIDwvc3Bhbj4KKzwvZHQ+Cis8ZGQ+PHA+V3JpdGUgdGhlIHByb2ZpbGUgZGF0YSB0byAKKyAgICAgICAgICAgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+ZmlsZTwvY29kZT4gcmF0aGVyIHRoYW4gdG8gdGhlIGRlZmF1bHQKKyAgICAgICAgICAgIG91dHB1dCBmaWxlLAorICAgICAgICAgICAgPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5jYWNoZWdyaW5kLm91dC4mbHQ7cGlkJmd0OzwvY29kZT4uICBUaGUKKyAgICAgICAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPiVwPC9jb2RlPiBhbmQgPGNvZGUgY2xhc3M9Im9wdGlvbiI+JXE8L2NvZGU+IGZvcm1hdCBzcGVjaWZpZXJzCisgICAgICAgICAgICBjYW4gYmUgdXNlZCB0byBlbWJlZCB0aGUgcHJvY2VzcyBJRCBhbmQvb3IgdGhlIGNvbnRlbnRzIG9mIGFuCisgICAgICAgICAgICBlbnZpcm9ubWVudCB2YXJpYWJsZSBpbiB0aGUgbmFtZSwgYXMgaXMgdGhlIGNhc2UgZm9yIHRoZSBjb3JlCisgICAgICAgICAgICBvcHRpb24gPGNvZGUgY2xhc3M9Im9wdGlvbiI+PGEgY2xhc3M9InhyZWYiIGhyZWY9Im1hbnVhbC1jb3JlLmh0bWwjb3B0LmxvZy1maWxlIj4tLWxvZy1maWxlPC9hPjwvY29kZT4uCisgICAgICA8L3A+PC9kZD4KKzwvZGw+Cis8L2Rpdj4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDEiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj4KKzxhIG5hbWU9ImNnLW1hbnVhbC5hbm5vcHRzIj48L2E+NS40LqBjZ19hbm5vdGF0ZSBDb21tYW5kLWxpbmUgT3B0aW9uczwvaDI+PC9kaXY+PC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPgorPGEgbmFtZT0iY2dfYW5ub3RhdGUub3B0cy5saXN0Ij48L2E+PGRsIGNsYXNzPSJ2YXJpYWJsZWxpc3QiPgorPGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi1oIC0taGVscCA8L2NvZGU+CisgICAgPC9zcGFuPjwvZHQ+Cis8ZGQ+PHA+U2hvdyB0aGUgaGVscCBtZXNzYWdlLjwvcD48L2RkPgorPGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tdmVyc2lvbiA8L2NvZGU+CisgICAgPC9zcGFuPjwvZHQ+Cis8ZGQ+PHA+U2hvdyB0aGUgdmVyc2lvbiBudW1iZXIuPC9wPjwvZGQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1zaG93PUEsQixDIFtkZWZhdWx0OiBhbGwsIHVzaW5nIG9yZGVyIGluCisgICAgICBjYWNoZWdyaW5kLm91dC4mbHQ7cGlkJmd0O10gPC9jb2RlPgorICAgIDwvc3Bhbj48L2R0PgorPGRkPjxwPlNwZWNpZmllcyB3aGljaCBldmVudHMgdG8gc2hvdyAoYW5kIHRoZSBjb2x1bW4KKyAgICAgIG9yZGVyKS4gRGVmYXVsdCBpcyB0byB1c2UgYWxsIHByZXNlbnQgaW4gdGhlCisgICAgICA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPmNhY2hlZ3JpbmQub3V0LiZsdDtwaWQmZ3Q7PC9jb2RlPiBmaWxlIChhbmQKKyAgICAgIHVzZSB0aGUgb3JkZXIgaW4gdGhlIGZpbGUpLiAgVXNlZnVsIGlmIHlvdSB3YW50IHRvIGNvbmNlbnRyYXRlIG9uLCBmb3IKKyAgICAgIGV4YW1wbGUsIEkgY2FjaGUgbWlzc2VzICg8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXNob3c9STFtcixJTG1yPC9jb2RlPiksIG9yIGRhdGEKKyAgICAgIHJlYWQgbWlzc2VzICg8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXNob3c9RDFtcixETG1yPC9jb2RlPiksIG9yIExMIGRhdGEgbWlzc2VzCisgICAgICAoPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1zaG93PURMbXIsRExtdzwvY29kZT4pLiAgQmVzdCB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGgKKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tc29ydDwvY29kZT4uPC9wPjwvZGQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1zb3J0PUEsQixDIFtkZWZhdWx0OiBvcmRlciBpbgorICAgICAgY2FjaGVncmluZC5vdXQuJmx0O3BpZCZndDtdIDwvY29kZT4KKyAgICA8L3NwYW4+PC9kdD4KKzxkZD48cD5TcGVjaWZpZXMgdGhlIGV2ZW50cyB1cG9uIHdoaWNoIHRoZSBzb3J0aW5nIG9mIHRoZQorICAgICAgZnVuY3Rpb24tYnktZnVuY3Rpb24gZW50cmllcyB3aWxsIGJlIGJhc2VkLjwvcD48L2RkPgorPGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tdGhyZXNob2xkPVggW2RlZmF1bHQ6IDAuMSVdIDwvY29kZT4KKyAgICA8L3NwYW4+PC9kdD4KKzxkZD4KKzxwPlNldHMgdGhlIHRocmVzaG9sZCBmb3IgdGhlIGZ1bmN0aW9uLWJ5LWZ1bmN0aW9uCisgICAgICBzdW1tYXJ5LiAgQSBmdW5jdGlvbiBpcyBzaG93biBpZiBpdCBhY2NvdW50cyBmb3IgbW9yZSB0aGFuIFglCisgICAgICBvZiB0aGUgY291bnRzIGZvciB0aGUgcHJpbWFyeSBzb3J0IGV2ZW50LiAgSWYgYXV0by1hbm5vdGF0aW5nLCBhbHNvCisgICAgICBhZmZlY3RzIHdoaWNoIGZpbGVzIGFyZSBhbm5vdGF0ZWQuPC9wPgorPHA+Tm90ZTogdGhyZXNob2xkcyBjYW4gYmUgc2V0IGZvciBtb3JlIHRoYW4gb25lIG9mIHRoZQorICAgICAgZXZlbnRzIGJ5IGFwcGVuZGluZyBhbnkgZXZlbnRzIGZvciB0aGUKKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tc29ydDwvY29kZT4gb3B0aW9uIHdpdGggYSBjb2xvbgorICAgICAgYW5kIGEgbnVtYmVyIChubyBzcGFjZXMsIHRob3VnaCkuICBFLmcuIGlmIHlvdSB3YW50IHRvIHNlZQorICAgICAgZWFjaCBmdW5jdGlvbiB0aGF0IGNvdmVycyBtb3JlIHRoYW4gMSUgb2YgTEwgcmVhZCBtaXNzZXMgb3IgMSUgb2YgTEwKKyAgICAgIHdyaXRlIG1pc3NlcywgdXNlIHRoaXMgb3B0aW9uOjwvcD4KKzxwPjxjb2RlIGNsYXNzPSJvcHRpb24iPi0tc29ydD1ETG1yOjEsRExtdzoxPC9jb2RlPjwvcD4KKzwvZGQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1hdXRvPSZsdDtub3x5ZXMmZ3Q7IFtkZWZhdWx0OiBub10gPC9jb2RlPgorICAgIDwvc3Bhbj48L2R0PgorPGRkPjxwPldoZW4gZW5hYmxlZCwgYXV0b21hdGljYWxseSBhbm5vdGF0ZXMgZXZlcnkgZmlsZSB0aGF0CisgICAgICBpcyBtZW50aW9uZWQgaW4gdGhlIGZ1bmN0aW9uLWJ5LWZ1bmN0aW9uIHN1bW1hcnkgdGhhdCBjYW4gYmUKKyAgICAgIGZvdW5kLiAgQWxzbyBnaXZlcyBhIGxpc3Qgb2YgdGhvc2UgdGhhdCBjb3VsZG4ndCBiZSBmb3VuZC48L3A+PC9kZD4KKzxkdD48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWNvbnRleHQ9TiBbZGVmYXVsdDogOF0gPC9jb2RlPgorICAgIDwvc3Bhbj48L2R0PgorPGRkPjxwPlByaW50IE4gbGluZXMgb2YgY29udGV4dCBiZWZvcmUgYW5kIGFmdGVyIGVhY2gKKyAgICAgIGFubm90YXRlZCBsaW5lLiAgQXZvaWRzIHByaW50aW5nIGxhcmdlIHNlY3Rpb25zIG9mIHNvdXJjZQorICAgICAgZmlsZXMgdGhhdCB3ZXJlIG5vdCBleGVjdXRlZC4gIFVzZSBhIGxhcmdlIG51bWJlcgorICAgICAgKGUuZy4gMTAwMDAwKSB0byBzaG93IGFsbCBzb3VyY2UgbGluZXMuPC9wPjwvZGQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LUkmbHQ7ZGlyJmd0OyAtLWluY2x1ZGU9Jmx0O2RpciZndDsgW2RlZmF1bHQ6IG5vbmVdIDwvY29kZT4KKyAgICA8L3NwYW4+PC9kdD4KKzxkZD48cD5BZGRzIGEgZGlyZWN0b3J5IHRvIHRoZSBsaXN0IGluIHdoaWNoIHRvIHNlYXJjaCBmb3IKKyAgICAgIGZpbGVzLiAgTXVsdGlwbGUgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LUk8L2NvZGU+Lzxjb2RlIGNsYXNzPSJvcHRpb24iPi0taW5jbHVkZTwvY29kZT4KKyAgICAgIG9wdGlvbnMgY2FuIGJlIGdpdmVuIHRvIGFkZCBtdWx0aXBsZSBkaXJlY3Rvcmllcy48L3A+PC9kZD4KKzwvZGw+Cis8L2Rpdj4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDEiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj4KKzxhIG5hbWU9ImNnLW1hbnVhbC5tZXJnZW9wdHMiPjwvYT41LjUuoGNnX21lcmdlIENvbW1hbmQtbGluZSBPcHRpb25zPC9oMj48L2Rpdj48L2Rpdj48L2Rpdj4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+Cis8YSBuYW1lPSJjZ19tZXJnZS5vcHRzLmxpc3QiPjwvYT48ZGwgY2xhc3M9InZhcmlhYmxlbGlzdCI+Cis8ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LW8gb3V0ZmlsZTwvY29kZT4KKyAgICA8L3NwYW4+PC9kdD4KKzxkZD48cD5Xcml0ZSB0aGUgcHJvZmlsZSBkYXRhIHRvIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+b3V0ZmlsZTwvY29kZT4KKyAgICAgICAgICAgIHJhdGhlciB0aGFuIHRvIHN0YW5kYXJkIG91dHB1dC4KKyAgICAgIDwvcD48L2RkPgorPC9kbD4KKzwvZGl2PgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MSI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPgorPGEgbmFtZT0iY2ctbWFudWFsLmRpZmZvcHRzIj48L2E+NS42LqBjZ19kaWZmIENvbW1hbmQtbGluZSBPcHRpb25zPC9oMj48L2Rpdj48L2Rpdj48L2Rpdj4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+Cis8YSBuYW1lPSJjZ19kaWZmLm9wdHMubGlzdCI+PC9hPjxkbCBjbGFzcz0idmFyaWFibGVsaXN0Ij4KKzxkdD48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4taCAtLWhlbHAgPC9jb2RlPgorICAgIDwvc3Bhbj48L2R0PgorPGRkPjxwPlNob3cgdGhlIGhlbHAgbWVzc2FnZS48L3A+PC9kZD4KKzxkdD48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXZlcnNpb24gPC9jb2RlPgorICAgIDwvc3Bhbj48L2R0PgorPGRkPjxwPlNob3cgdGhlIHZlcnNpb24gbnVtYmVyLjwvcD48L2RkPgorPGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tbW9kLWZpbGVuYW1lPSZsdDtleHByJmd0OyBbZGVmYXVsdDogbm9uZV08L2NvZGU+CisgICAgPC9zcGFuPjwvZHQ+Cis8ZGQ+PHA+U3BlY2lmaWVzIGEgUGVybCBzZWFyY2gtYW5kLXJlcGxhY2UgZXhwcmVzc2lvbiB0aGF0IGlzIGFwcGxpZWQKKyAgICAgIHRvIGFsbCBmaWxlbmFtZXMuICBVc2VmdWwgZm9yIHJlbW92aW5nIG1pbm9yIGRpZmZlcmVuY2VzIGluIHBhdGhzCisgICAgICBiZXR3ZWVuIHR3byBkaWZmZXJlbnQgdmVyc2lvbnMgb2YgYSBwcm9ncmFtIHRoYXQgYXJlIHNpdHRpbmcgaW4KKyAgICAgIGRpZmZlcmVudCBkaXJlY3Rvcmllcy48L3A+PC9kZD4KKzxkdD48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLW1vZC1mdW5jbmFtZT0mbHQ7ZXhwciZndDsgW2RlZmF1bHQ6IG5vbmVdPC9jb2RlPgorICAgIDwvc3Bhbj48L2R0PgorPGRkPjxwPkxpa2UgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1tb2QtZmlsZW5hbWU8L2NvZGU+LCBidXQgZm9yIGZpbGVuYW1lcy4KKyAgICAgIFVzZWZ1bCBmb3IgcmVtb3ZpbmcgbWlub3IgZGlmZmVyZW5jZXMgaW4gcmFuZG9taXplZCBuYW1lcyBvZgorICAgICAgYXV0by1nZW5lcmF0ZWQgZnVuY3Rpb25zIGdlbmVyYXRlZCBieSBzb21lIGNvbXBpbGVycy48L3A+PC9kZD4KKzwvZGw+Cis8L2Rpdj4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDEiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj4KKzxhIG5hbWU9ImNnLW1hbnVhbC5hY3Rpbmctb24iPjwvYT41LjcuoEFjdGluZyBvbiBDYWNoZWdyaW5kJ3MgSW5mb3JtYXRpb248L2gyPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+CitDYWNoZWdyaW5kIGdpdmVzIHlvdSBsb3RzIG9mIGluZm9ybWF0aW9uLCBidXQgYWN0aW5nIG9uIHRoYXQgaW5mb3JtYXRpb24KK2lzbid0IGFsd2F5cyBlYXN5LiAgSGVyZSBhcmUgc29tZSBydWxlcyBvZiB0aHVtYiB0aGF0IHdlIGhhdmUgZm91bmQgdG8gYmUKK3VzZWZ1bC48L3A+Cis8cD4KK0ZpcnN0IG9mIGFsbCwgdGhlIGdsb2JhbCBoaXQvbWlzcyBjb3VudHMgYW5kIG1pc3MgcmF0ZXMgYXJlIG5vdCB0aGF0IHVzZWZ1bC4KK0lmIHlvdSBoYXZlIG11bHRpcGxlIHByb2dyYW1zIG9yIG11bHRpcGxlIHJ1bnMgb2YgYSBwcm9ncmFtLCBjb21wYXJpbmcgdGhlCitudW1iZXJzIG1pZ2h0IGlkZW50aWZ5IGlmIGFueSBhcmUgb3V0bGllcnMgYW5kIHdvcnRoeSBvZiBjbG9zZXIKK2ludmVzdGlnYXRpb24uICBPdGhlcndpc2UsIHRoZXkncmUgbm90IGVub3VnaCB0byBhY3Qgb24uPC9wPgorPHA+CitUaGUgZnVuY3Rpb24tYnktZnVuY3Rpb24gY291bnRzIGFyZSBtb3JlIHVzZWZ1bCB0byBsb29rIGF0LCBhcyB0aGV5IHBpbnBvaW50Cit3aGljaCBmdW5jdGlvbnMgYXJlIGNhdXNpbmcgbGFyZ2UgbnVtYmVycyBvZiBjb3VudHMuICBIb3dldmVyLCBiZXdhcmUgdGhhdAoraW5saW5pbmcgY2FuIG1ha2UgdGhlc2UgY291bnRzIG1pc2xlYWRpbmcuICBJZiBhIGZ1bmN0aW9uCis8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPmY8L2NvZGU+IGlzIGFsd2F5cyBpbmxpbmVkLCBjb3VudHMgd2lsbCBiZSBhdHRyaWJ1dGVkIHRvIHRoZQorZnVuY3Rpb25zIGl0IGlzIGlubGluZWQgaW50bywgcmF0aGVyIHRoYW4gaXRzZWxmLiAgSG93ZXZlciwgaWYgeW91IGxvb2sgYXQKK3RoZSBsaW5lLWJ5LWxpbmUgYW5ub3RhdGlvbnMgZm9yIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+ZjwvY29kZT4geW91J2xsIHNlZSB0aGUKK2NvdW50cyB0aGF0IGJlbG9uZyB0byA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPmY8L2NvZGU+LiAgKFRoaXMgaXMgaGFyZCB0byBhdm9pZCwgaXQncworaG93IHRoZSBkZWJ1ZyBpbmZvIGlzIHN0cnVjdHVyZWQuKSAgU28gaXQncyB3b3J0aCBsb29raW5nIGZvciBsYXJnZSBudW1iZXJzCitpbiB0aGUgbGluZS1ieS1saW5lIGFubm90YXRpb25zLjwvcD4KKzxwPgorVGhlIGxpbmUtYnktbGluZSBzb3VyY2UgY29kZSBhbm5vdGF0aW9ucyBhcmUgbXVjaCBtb3JlIHVzZWZ1bC4gIEluIG91cgorZXhwZXJpZW5jZSwgdGhlIGJlc3QgcGxhY2UgdG8gc3RhcnQgaXMgYnkgbG9va2luZyBhdCB0aGUKKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+SXI8L2NvZGU+IG51bWJlcnMuICBUaGV5IHNpbXBseSBtZWFzdXJlIGhvdyBtYW55CitpbnN0cnVjdGlvbnMgd2VyZSBleGVjdXRlZCBmb3IgZWFjaCBsaW5lLCBhbmQgZG9uJ3QgaW5jbHVkZSBhbnkgY2FjaGUKK2luZm9ybWF0aW9uLCBidXQgdGhleSBjYW4gc3RpbGwgYmUgdmVyeSB1c2VmdWwgZm9yIGlkZW50aWZ5aW5nCitib3R0bGVuZWNrcy48L3A+Cis8cD4KK0FmdGVyIHRoYXQsIHdlIGhhdmUgZm91bmQgdGhhdCBMTCBtaXNzZXMgYXJlIHR5cGljYWxseSBhIG11Y2ggYmlnZ2VyIHNvdXJjZQorb2Ygc2xvdy1kb3ducyB0aGFuIEwxIG1pc3Nlcy4gIFNvIGl0J3Mgd29ydGggbG9va2luZyBmb3IgYW55IHNuaXBwZXRzIG9mCitjb2RlIHdpdGggaGlnaCA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPkRMbXI8L2NvZGU+IG9yCis8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPkRMbXc8L2NvZGU+IGNvdW50cy4gIChZb3UgY2FuIHVzZQorPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1zaG93PURMbXIKKy0tc29ydD1ETG1yPC9jb2RlPiB3aXRoIGNnX2Fubm90YXRlIHRvIGZvY3VzIGp1c3Qgb24KKzxjb2RlIGNsYXNzPSJsaXRlcmFsIj5ETG1yPC9jb2RlPiBjb3VudHMsIGZvciBleGFtcGxlLikgSWYgeW91IGZpbmQgYW55LCBpdCdzIHN0aWxsCitub3QgYWx3YXlzIGVhc3kgdG8gd29yayBvdXQgaG93IHRvIGltcHJvdmUgdGhpbmdzLiAgWW91IG5lZWQgdG8gaGF2ZSBhCityZWFzb25hYmxlIHVuZGVyc3RhbmRpbmcgb2YgaG93IGNhY2hlcyB3b3JrLCB0aGUgcHJpbmNpcGxlcyBvZiBsb2NhbGl0eSwgYW5kCit5b3VyIHByb2dyYW0ncyBkYXRhIGFjY2VzcyBwYXR0ZXJucy4gIEltcHJvdmluZyB0aGluZ3MgbWF5IHJlcXVpcmUKK3JlZGVzaWduaW5nIGEgZGF0YSBzdHJ1Y3R1cmUsIGZvciBleGFtcGxlLjwvcD4KKzxwPgorTG9va2luZyBhdCB0aGUgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5CY208L2NvZGU+IGFuZAorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5CaW08L2NvZGU+IG1pc3NlcyBjYW4gYWxzbyBiZSBoZWxwZnVsLgorSW4gcGFydGljdWxhciwgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5CaW08L2NvZGU+IG1pc3NlcyBhcmUgb2Z0ZW4gY2F1c2VkCitieSA8Y29kZSBjbGFzcz0ibGl0ZXJhbCI+c3dpdGNoPC9jb2RlPiBzdGF0ZW1lbnRzLCBhbmQgaW4gc29tZSBjYXNlcyB0aGVzZQorPGNvZGUgY2xhc3M9ImxpdGVyYWwiPnN3aXRjaDwvY29kZT4gc3RhdGVtZW50cyBjYW4gYmUgcmVwbGFjZWQgd2l0aCB0YWJsZS1kcml2ZW4gY29kZS4KK0ZvciBleGFtcGxlLCB5b3UgbWlnaHQgcmVwbGFjZSBjb2RlIGxpa2UgdGhpczo8L3A+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CitlbnVtIEUgeyBBLCBCLCBDIH07CitlbnVtIEUgZTsKK2ludCBpOworLi4uCitzd2l0Y2ggKGUpCit7CisgICAgY2FzZSBBOiBpICs9IDE7IGJyZWFrOworICAgIGNhc2UgQjogaSArPSAyOyBicmVhazsKKyAgICBjYXNlIEM6IGkgKz0gMzsgYnJlYWs7Cit9Cis8L3ByZT4KKzxwPndpdGggY29kZSBsaWtlIHRoaXM6PC9wPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPgorZW51bSBFIHsgQSwgQiwgQyB9OworZW51bSBFIGU7CitlbnVtIEUgdGFibGVbXSA9IHsgMSwgMiwgMyB9OworaW50IGk7CisuLi4KK2kgKz0gdGFibGVbZV07Cis8L3ByZT4KKzxwPgorVGhpcyBpcyBvYnZpb3VzbHkgYSBjb250cml2ZWQgZXhhbXBsZSwgYnV0IHRoZSBiYXNpYyBwcmluY2lwbGUgYXBwbGllcyBpbiBhCit3aWRlIHZhcmlldHkgb2Ygc2l0dWF0aW9ucy48L3A+Cis8cD4KK0luIHNob3J0LCBDYWNoZWdyaW5kIGNhbiB0ZWxsIHlvdSB3aGVyZSBzb21lIG9mIHRoZSBib3R0bGVuZWNrcyBpbiB5b3VyIGNvZGUKK2FyZSwgYnV0IGl0IGNhbid0IHRlbGwgeW91IGhvdyB0byBmaXggdGhlbS4gIFlvdSBoYXZlIHRvIHdvcmsgdGhhdCBvdXQgZm9yCit5b3Vyc2VsZi4gIEJ1dCBhdCBsZWFzdCB5b3UgaGF2ZSB0aGUgaW5mb3JtYXRpb24hCis8L3A+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QxIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+Cis8YSBuYW1lPSJjZy1tYW51YWwuc2ltLWRldGFpbHMiPjwvYT41LjguoFNpbXVsYXRpb24gRGV0YWlsczwvaDI+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD4KK1RoaXMgc2VjdGlvbiB0YWxrcyBhYm91dCBkZXRhaWxzIHlvdSBkb24ndCBuZWVkIHRvIGtub3cgYWJvdXQgaW4gb3JkZXIgdG8KK3VzZSBDYWNoZWdyaW5kLCBidXQgbWF5IGJlIG9mIGludGVyZXN0IHRvIHNvbWUgcGVvcGxlLgorPC9wPgorPGRpdiBjbGFzcz0ic2VjdDIiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJjYWNoZS1zaW0iPjwvYT41LjguMS6gQ2FjaGUgU2ltdWxhdGlvbiBTcGVjaWZpY3M8L2gzPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+U3BlY2lmaWMgY2hhcmFjdGVyaXN0aWNzIG9mIHRoZSBjYWNoZSBzaW11bGF0aW9uIGFyZSBhcworZm9sbG93czo8L3A+Cis8ZGl2IGNsYXNzPSJpdGVtaXplZGxpc3QiPjx1bCBjbGFzcz0iaXRlbWl6ZWRsaXN0IiBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOiBkaXNjOyAiPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+V3JpdGUtYWxsb2NhdGU6IHdoZW4gYSB3cml0ZSBtaXNzIG9jY3VycywgdGhlIGJsb2NrCisgICAgd3JpdHRlbiB0byBpcyBicm91Z2h0IGludG8gdGhlIEQxIGNhY2hlLiAgTW9zdCBtb2Rlcm4gY2FjaGVzCisgICAgaGF2ZSB0aGlzIHByb3BlcnR5LjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+Cis8cD5CaXQtc2VsZWN0aW9uIGhhc2ggZnVuY3Rpb246IHRoZSBzZXQgb2YgbGluZShzKSBpbiB0aGUgY2FjaGUKKyAgICB0byB3aGljaCBhIG1lbW9yeSBibG9jayBtYXBzIGlzIGNob3NlbiBieSB0aGUgbWlkZGxlIGJpdHMKKyAgICBNLS0oTStOLTEpIG9mIHRoZSBieXRlIGFkZHJlc3MsIHdoZXJlOjwvcD4KKzxkaXYgY2xhc3M9Iml0ZW1pemVkbGlzdCI+PHVsIGNsYXNzPSJpdGVtaXplZGxpc3QiIHN0eWxlPSJsaXN0LXN0eWxlLXR5cGU6IGNpcmNsZTsgIj4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPmxpbmUgc2l6ZSA9IDJeTSBieXRlczwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+KGNhY2hlIHNpemUgLyBsaW5lIHNpemUgLyBhc3NvY2lhdGl2aXR5KSA9IDJeTiBieXRlczwvcD48L2xpPgorPC91bD48L2Rpdj4KKzwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5JbmNsdXNpdmUgTEwgY2FjaGU6IHRoZSBMTCBjYWNoZSB0eXBpY2FsbHkgcmVwbGljYXRlcyBhbGwKKyAgICB0aGUgZW50cmllcyBvZiB0aGUgTDEgY2FjaGVzLCBiZWNhdXNlIGZldGNoaW5nIGludG8gTDEgaW52b2x2ZXMKKyAgICBmZXRjaGluZyBpbnRvIExMIGZpcnN0ICh0aGlzIGRvZXMgbm90IGd1YXJhbnRlZSBzdHJpY3QgaW5jbHVzaXZlbmVzcywKKyAgICBhcyBsaW5lcyBldmljdGVkIGZyb20gTEwgc3RpbGwgY291bGQgcmVzaWRlIGluIEwxKS4gIFRoaXMgaXMKKyAgICBzdGFuZGFyZCBvbiBQZW50aXVtIGNoaXBzLCBidXQgQU1EIE9wdGVyb25zLCBBdGhsb25zIGFuZCBEdXJvbnMKKyAgICB1c2UgYW4gZXhjbHVzaXZlIExMIGNhY2hlIHRoYXQgb25seSBob2xkcworICAgIGJsb2NrcyBldmljdGVkIGZyb20gTDEuICBEaXR0byBtb3N0IG1vZGVybiBWSUEgQ1BVcy48L3A+PC9saT4KKzwvdWw+PC9kaXY+Cis8cD5UaGUgY2FjaGUgY29uZmlndXJhdGlvbiBzaW11bGF0ZWQgKGNhY2hlIHNpemUsCithc3NvY2lhdGl2aXR5IGFuZCBsaW5lIHNpemUpIGlzIGRldGVybWluZWQgYXV0b21hdGljYWxseSB1c2luZwordGhlIHg4NiBDUFVJRCBpbnN0cnVjdGlvbi4gIElmIHlvdSBoYXZlIGEgbWFjaGluZSB0aGF0IChhKQorZG9lc24ndCBzdXBwb3J0IHRoZSBDUFVJRCBpbnN0cnVjdGlvbiwgb3IgKGIpIHN1cHBvcnRzIGl0IGluIGFuCitlYXJseSBpbmNhcm5hdGlvbiB0aGF0IGRvZXNuJ3QgZ2l2ZSBhbnkgY2FjaGUgaW5mb3JtYXRpb24sIHRoZW4KK0NhY2hlZ3JpbmQgd2lsbCBmYWxsIGJhY2sgdG8gdXNpbmcgYSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gKHRoYXQKK29mIGEgbW9kZWwgMy80IEF0aGxvbikuICBDYWNoZWdyaW5kIHdpbGwgdGVsbCB5b3UgaWYgdGhpcworaGFwcGVucy4gIFlvdSBjYW4gbWFudWFsbHkgc3BlY2lmeSBvbmUsIHR3byBvciBhbGwgdGhyZWUgbGV2ZWxzCisoSTEvRDEvTEwpIG9mIHRoZSBjYWNoZSBmcm9tIHRoZSBjb21tYW5kIGxpbmUgdXNpbmcgdGhlCis8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLUkxPC9jb2RlPiwKKzxjb2RlIGNsYXNzPSJvcHRpb24iPi0tRDE8L2NvZGU+IGFuZAorPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1MTDwvY29kZT4gb3B0aW9ucy4KK0ZvciBjYWNoZSBwYXJhbWV0ZXJzIHRvIGJlIHZhbGlkIGZvciBzaW11bGF0aW9uLCB0aGUgbnVtYmVyCitvZiBzZXRzICh3aXRoIGFzc29jaWF0aXZpdHkgYmVpbmcgdGhlIG51bWJlciBvZiBjYWNoZSBsaW5lcyBpbgorZWFjaCBzZXQpIGhhcyB0byBiZSBhIHBvd2VyIG9mIHR3by48L3A+Cis8cD5PbiBQb3dlclBDIHBsYXRmb3JtcworQ2FjaGVncmluZCBjYW5ub3QgYXV0b21hdGljYWxseSAKK2RldGVybWluZSB0aGUgY2FjaGUgY29uZmlndXJhdGlvbiwgc28geW91IHdpbGwgCituZWVkIHRvIHNwZWNpZnkgaXQgd2l0aCB0aGUKKzxjb2RlIGNsYXNzPSJvcHRpb24iPi0tSTE8L2NvZGU+LAorPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1EMTwvY29kZT4gYW5kCis8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLUxMPC9jb2RlPiBvcHRpb25zLjwvcD4KKzxwPk90aGVyIG5vdGV3b3J0aHkgYmVoYXZpb3VyOjwvcD4KKzxkaXYgY2xhc3M9Iml0ZW1pemVkbGlzdCI+PHVsIGNsYXNzPSJpdGVtaXplZGxpc3QiIHN0eWxlPSJsaXN0LXN0eWxlLXR5cGU6IGRpc2M7ICI+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj4KKzxwPlJlZmVyZW5jZXMgdGhhdCBzdHJhZGRsZSB0d28gY2FjaGUgbGluZXMgYXJlIHRyZWF0ZWQgYXMKKyAgICBmb2xsb3dzOjwvcD4KKzxkaXYgY2xhc3M9Iml0ZW1pemVkbGlzdCI+PHVsIGNsYXNzPSJpdGVtaXplZGxpc3QiIHN0eWxlPSJsaXN0LXN0eWxlLXR5cGU6IGNpcmNsZTsgIj4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPklmIGJvdGggYmxvY2tzIGhpdCAtLSZndDsgY291bnRlZCBhcyBvbmUgaGl0PC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5JZiBvbmUgYmxvY2sgaGl0cywgdGhlIG90aGVyIG1pc3NlcyAtLSZndDsgY291bnRlZAorICAgICAgICBhcyBvbmUgbWlzcy48L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPklmIGJvdGggYmxvY2tzIG1pc3MgLS0mZ3Q7IGNvdW50ZWQgYXMgb25lIG1pc3MgKG5vdAorICAgICAgICB0d28pPC9wPjwvbGk+Cis8L3VsPjwvZGl2PgorPC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPgorPHA+SW5zdHJ1Y3Rpb25zIHRoYXQgbW9kaWZ5IGEgbWVtb3J5IGxvY2F0aW9uCisgICAgKGUuZy4gPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5pbmM8L2NvZGU+IGFuZAorICAgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+ZGVjPC9jb2RlPikgYXJlIGNvdW50ZWQgYXMgZG9pbmcKKyAgICBqdXN0IGEgcmVhZCwgaS5lLiBhIHNpbmdsZSBkYXRhIHJlZmVyZW5jZS4gIFRoaXMgbWF5IHNlZW0KKyAgICBzdHJhbmdlLCBidXQgc2luY2UgdGhlIHdyaXRlIGNhbiBuZXZlciBjYXVzZSBhIG1pc3MgKHRoZSByZWFkCisgICAgZ3VhcmFudGVlcyB0aGUgYmxvY2sgaXMgaW4gdGhlIGNhY2hlKSBpdCdzIG5vdCB2ZXJ5CisgICAgaW50ZXJlc3RpbmcuPC9wPgorPHA+VGh1cyBpdCBtZWFzdXJlcyBub3QgdGhlIG51bWJlciBvZiB0aW1lcyB0aGUgZGF0YSBjYWNoZQorICAgIGlzIGFjY2Vzc2VkLCBidXQgdGhlIG51bWJlciBvZiB0aW1lcyBhIGRhdGEgY2FjaGUgbWlzcyBjb3VsZAorICAgIG9jY3VyLjwvcD4KKzwvbGk+Cis8L3VsPjwvZGl2PgorPHA+SWYgeW91IGFyZSBpbnRlcmVzdGVkIGluIHNpbXVsYXRpbmcgYSBjYWNoZSB3aXRoIGRpZmZlcmVudAorcHJvcGVydGllcywgaXQgaXMgbm90IHBhcnRpY3VsYXJseSBoYXJkIHRvIHdyaXRlIHlvdXIgb3duIGNhY2hlCitzaW11bGF0b3IsIG9yIHRvIG1vZGlmeSB0aGUgZXhpc3Rpbmcgb25lcyBpbgorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5jZ19zaW0uYzwvY29kZT4uIFdlJ2QgYmUKK2ludGVyZXN0ZWQgdG8gaGVhciBmcm9tIGFueW9uZSB3aG8gZG9lcy48L3A+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0iYnJhbmNoLXNpbSI+PC9hPjUuOC4yLqBCcmFuY2ggU2ltdWxhdGlvbiBTcGVjaWZpY3M8L2gzPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+Q2FjaGVncmluZCBzaW11bGF0ZXMgYnJhbmNoIHByZWRpY3RvcnMgaW50ZW5kZWQgdG8gYmUKK3R5cGljYWwgb2YgbWFpbnN0cmVhbSBkZXNrdG9wL3NlcnZlciBwcm9jZXNzb3JzIG9mIGFyb3VuZCAyMDA0LjwvcD4KKzxwPkNvbmRpdGlvbmFsIGJyYW5jaGVzIGFyZSBwcmVkaWN0ZWQgdXNpbmcgYW4gYXJyYXkgb2YgMTYzODQgMi1iaXQKK3NhdHVyYXRpbmcgY291bnRlcnMuICBUaGUgYXJyYXkgaW5kZXggdXNlZCBmb3IgYSBicmFuY2ggaW5zdHJ1Y3Rpb24gaXMKK2NvbXB1dGVkIHBhcnRseSBmcm9tIHRoZSBsb3ctb3JkZXIgYml0cyBvZiB0aGUgYnJhbmNoIGluc3RydWN0aW9uJ3MKK2FkZHJlc3MgYW5kIHBhcnRseSB1c2luZyB0aGUgdGFrZW4vbm90LXRha2VuIGJlaGF2aW91ciBvZiB0aGUgbGFzdCBmZXcKK2NvbmRpdGlvbmFsIGJyYW5jaGVzLiAgQXMgYSByZXN1bHQgdGhlIHByZWRpY3Rpb25zIGZvciBhbnkgc3BlY2lmaWMKK2JyYW5jaCBkZXBlbmQgYm90aCBvbiBpdHMgb3duIGhpc3RvcnkgYW5kIHRoZSBiZWhhdmlvdXIgb2YgcHJldmlvdXMKK2JyYW5jaGVzLiAgVGhpcyBpcyBhIHN0YW5kYXJkIHRlY2huaXF1ZSBmb3IgaW1wcm92aW5nIHByZWRpY3Rpb24KK2FjY3VyYWN5LjwvcD4KKzxwPkZvciBpbmRpcmVjdCBicmFuY2hlcyAodGhhdCBpcywganVtcHMgdG8gdW5rbm93biBkZXN0aW5hdGlvbnMpCitDYWNoZWdyaW5kIHVzZXMgYSBzaW1wbGUgYnJhbmNoIHRhcmdldCBhZGRyZXNzIHByZWRpY3Rvci4gIFRhcmdldHMgYXJlCitwcmVkaWN0ZWQgdXNpbmcgYW4gYXJyYXkgb2YgNTEyIGVudHJpZXMgaW5kZXhlZCBieSB0aGUgbG93IG9yZGVyIDkKK2JpdHMgb2YgdGhlIGJyYW5jaCBpbnN0cnVjdGlvbidzIGFkZHJlc3MuICBFYWNoIGJyYW5jaCBpcyBwcmVkaWN0ZWQgdG8KK2p1bXAgdG8gdGhlIHNhbWUgYWRkcmVzcyBpdCBkaWQgbGFzdCB0aW1lLiAgQW55IG90aGVyIGJlaGF2aW91ciBjYXVzZXMKK2EgbWlzcHJlZGljdC48L3A+Cis8cD5Nb3JlIHJlY2VudCBwcm9jZXNzb3JzIGhhdmUgYmV0dGVyIGJyYW5jaCBwcmVkaWN0b3JzLCBpbgorcGFydGljdWxhciBiZXR0ZXIgaW5kaXJlY3QgYnJhbmNoIHByZWRpY3RvcnMuICBDYWNoZWdyaW5kJ3MgcHJlZGljdG9yCitkZXNpZ24gaXMgZGVsaWJlcmF0ZWx5IGNvbnNlcnZhdGl2ZSBzbyBhcyB0byBiZSByZXByZXNlbnRhdGl2ZSBvZiB0aGUKK2xhcmdlIGluc3RhbGxlZCBiYXNlIG9mIHByb2Nlc3NvcnMgd2hpY2ggcHJlLWRhdGUgd2lkZXNwcmVhZAorZGVwbG95bWVudCBvZiBtb3JlIHNvcGhpc3RpY2F0ZWQgaW5kaXJlY3QgYnJhbmNoIHByZWRpY3RvcnMuICBJbgorcGFydGljdWxhciwgbGF0ZSBtb2RlbCBQZW50aXVtIDRzIChQcmVzY290dCksIFBlbnRpdW0gTSwgQ29yZSBhbmQgQ29yZQorMiBoYXZlIG1vcmUgc29waGlzdGljYXRlZCBpbmRpcmVjdCBicmFuY2ggcHJlZGljdG9ycyB0aGFuIG1vZGVsbGVkIGJ5CitDYWNoZWdyaW5kLiAgPC9wPgorPHA+Q2FjaGVncmluZCBkb2VzIG5vdCBzaW11bGF0ZSBhIHJldHVybiBzdGFjayBwcmVkaWN0b3IuICBJdAorYXNzdW1lcyB0aGF0IHByb2Nlc3NvcnMgcGVyZmVjdGx5IHByZWRpY3QgZnVuY3Rpb24gcmV0dXJuIGFkZHJlc3NlcywKK2FuIGFzc3VtcHRpb24gd2hpY2ggaXMgcHJvYmFibHkgY2xvc2UgdG8gYmVpbmcgdHJ1ZS48L3A+Cis8cD5TZWUgSGVubmVzc3kgYW5kIFBhdHRlcnNvbidzIGNsYXNzaWMgdGV4dCAiQ29tcHV0ZXIKK0FyY2hpdGVjdHVyZTogQSBRdWFudGl0YXRpdmUgQXBwcm9hY2giLCA0dGggZWRpdGlvbiAoMjAwNyksIFNlY3Rpb24KKzIuMyAocGFnZXMgODAtODkpIGZvciBiYWNrZ3JvdW5kIG9uIG1vZGVybiBicmFuY2ggcHJlZGljdG9ycy48L3A+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0iY2ctbWFudWFsLmFubm9wdHMuYWNjdXJhY3kiPjwvYT41LjguMy6gQWNjdXJhY3k8L2gzPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+VmFsZ3JpbmQncyBjYWNoZSBwcm9maWxpbmcgaGFzIGEgbnVtYmVyIG9mCitzaG9ydGNvbWluZ3M6PC9wPgorPGRpdiBjbGFzcz0iaXRlbWl6ZWRsaXN0Ij48dWwgY2xhc3M9Iml0ZW1pemVkbGlzdCIgc3R5bGU9Imxpc3Qtc3R5bGUtdHlwZTogZGlzYzsgIj4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPkl0IGRvZXNuJ3QgYWNjb3VudCBmb3Iga2VybmVsIGFjdGl2aXR5IC0tIHRoZSBlZmZlY3Qgb2Ygc3lzdGVtCisgICAgY2FsbHMgb24gdGhlIGNhY2hlIGFuZCBicmFuY2ggcHJlZGljdG9yIGNvbnRlbnRzIGlzIGlnbm9yZWQuPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5JdCBkb2Vzbid0IGFjY291bnQgZm9yIG90aGVyIHByb2Nlc3MgYWN0aXZpdHkuCisgICAgVGhpcyBpcyBwcm9iYWJseSBkZXNpcmFibGUgd2hlbiBjb25zaWRlcmluZyBhIHNpbmdsZQorICAgIHByb2dyYW0uPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5JdCBkb2Vzbid0IGFjY291bnQgZm9yIHZpcnR1YWwtdG8tcGh5c2ljYWwgYWRkcmVzcworICAgIG1hcHBpbmdzLiAgSGVuY2UgdGhlIHNpbXVsYXRpb24gaXMgbm90IGEgdHJ1ZQorICAgIHJlcHJlc2VudGF0aW9uIG9mIHdoYXQncyBoYXBwZW5pbmcgaW4gdGhlCisgICAgY2FjaGUuICBNb3N0IGNhY2hlcyBhbmQgYnJhbmNoIHByZWRpY3RvcnMgYXJlIHBoeXNpY2FsbHkgaW5kZXhlZCwgYnV0CisgICAgQ2FjaGVncmluZCBzaW11bGF0ZXMgY2FjaGVzIHVzaW5nIHZpcnR1YWwgYWRkcmVzc2VzLjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+SXQgZG9lc24ndCBhY2NvdW50IGZvciBjYWNoZSBtaXNzZXMgbm90IHZpc2libGUgYXQgdGhlCisgICAgaW5zdHJ1Y3Rpb24gbGV2ZWwsIGUuZy4gdGhvc2UgYXJpc2luZyBmcm9tIFRMQiBtaXNzZXMsIG9yCisgICAgc3BlY3VsYXRpdmUgZXhlY3V0aW9uLjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+VmFsZ3JpbmQgd2lsbCBzY2hlZHVsZQorICAgIHRocmVhZHMgZGlmZmVyZW50bHkgZnJvbSBob3cgdGhleSB3b3VsZCBiZSB3aGVuIHJ1bm5pbmcgbmF0aXZlbHkuCisgICAgVGhpcyBjb3VsZCB3YXJwIHRoZSByZXN1bHRzIGZvciB0aHJlYWRlZCBwcm9ncmFtcy48L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPgorPHA+VGhlIHg4Ni9hbWQ2NCBpbnN0cnVjdGlvbnMgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5idHM8L2NvZGU+LAorICAgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+YnRyPC9jb2RlPiBhbmQKKyAgICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmJ0YzwvY29kZT4gd2lsbCBpbmNvcnJlY3RseSBiZQorICAgIGNvdW50ZWQgYXMgZG9pbmcgYSBkYXRhIHJlYWQgaWYgYm90aCB0aGUgYXJndW1lbnRzIGFyZQorICAgIHJlZ2lzdGVycywgZWc6PC9wPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPgorICAgIGJ0c2wgJWVheCwgJWVkeDwvcHJlPgorPHA+VGhpcyBzaG91bGQgb25seSBoYXBwZW4gcmFyZWx5LjwvcD4KKzwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD54ODYvYW1kNjQgRlBVIGluc3RydWN0aW9ucyB3aXRoIGRhdGEgc2l6ZXMgb2YgMjggYW5kIDEwOCBieXRlcworICAgIChlLmcuICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmZzYXZlPC9jb2RlPikgYXJlIHRyZWF0ZWQgYXMKKyAgICB0aG91Z2ggdGhleSBvbmx5IGFjY2VzcyAxNiBieXRlcy4gIFRoZXNlIGluc3RydWN0aW9ucyBzZWVtIHRvCisgICAgYmUgcmFyZSBzbyBob3BlZnVsbHkgdGhpcyB3b24ndCBhZmZlY3QgYWNjdXJhY3kgbXVjaC48L3A+PC9saT4KKzwvdWw+PC9kaXY+Cis8cD5Bbm90aGVyIHRoaW5nIHdvcnRoIG5vdGluZyBpcyB0aGF0IHJlc3VsdHMgYXJlIHZlcnkgc2Vuc2l0aXZlLgorQ2hhbmdpbmcgdGhlIHNpemUgb2YgdGhlIGV4ZWN1dGFibGUgYmVpbmcgcHJvZmlsZWQsIG9yIHRoZSBzaXplcworb2YgYW55IG9mIHRoZSBzaGFyZWQgbGlicmFyaWVzIGl0IHVzZXMsIG9yIGV2ZW4gdGhlIGxlbmd0aCBvZiB0aGVpcgorZmlsZSBuYW1lcywgY2FuIHBlcnR1cmIgdGhlIHJlc3VsdHMuICBWYXJpYXRpb25zIHdpbGwgYmUgc21hbGwsIGJ1dAorZG9uJ3QgZXhwZWN0IHBlcmZlY3RseSByZXBlYXRhYmxlIHJlc3VsdHMgaWYgeW91ciBwcm9ncmFtIGNoYW5nZXMgYXQKK2FsbC48L3A+Cis8cD5Nb3JlIHJlY2VudCBHTlUvTGludXggZGlzdHJpYnV0aW9ucyBkbyBhZGRyZXNzIHNwYWNlCityYW5kb21pc2F0aW9uLCBpbiB3aGljaCBpZGVudGljYWwgcnVucyBvZiB0aGUgc2FtZSBwcm9ncmFtIGhhdmUgdGhlaXIKK3NoYXJlZCBsaWJyYXJpZXMgbG9hZGVkIGF0IGRpZmZlcmVudCBsb2NhdGlvbnMsIGFzIGEgc2VjdXJpdHkgbWVhc3VyZS4KK1RoaXMgYWxzbyBwZXJ0dXJicyB0aGUgcmVzdWx0cy48L3A+Cis8cD5XaGlsZSB0aGVzZSBmYWN0b3JzIG1lYW4geW91IHNob3VsZG4ndCB0cnVzdCB0aGUgcmVzdWx0cyB0bworYmUgc3VwZXItYWNjdXJhdGUsIHRoZXkgc2hvdWxkIGJlIGNsb3NlIGVub3VnaCB0byBiZSB1c2VmdWwuPC9wPgorPC9kaXY+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QxIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+Cis8YSBuYW1lPSJjZy1tYW51YWwuaW1wbC1kZXRhaWxzIj48L2E+NS45LqBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC9oMj48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPgorVGhpcyBzZWN0aW9uIHRhbGtzIGFib3V0IGRldGFpbHMgeW91IGRvbid0IG5lZWQgdG8ga25vdyBhYm91dCBpbiBvcmRlciB0bwordXNlIENhY2hlZ3JpbmQsIGJ1dCBtYXkgYmUgb2YgaW50ZXJlc3QgdG8gc29tZSBwZW9wbGUuCis8L3A+Cis8ZGl2IGNsYXNzPSJzZWN0MiI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9ImNnLW1hbnVhbC5pbXBsLWRldGFpbHMuaG93LWNnLXdvcmtzIj48L2E+NS45LjEuoEhvdyBDYWNoZWdyaW5kIFdvcmtzPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPlRoZSBiZXN0IHJlZmVyZW5jZSBmb3IgdW5kZXJzdGFuZGluZyBob3cgQ2FjaGVncmluZCB3b3JrcyBpcyBjaGFwdGVyIDMgb2YKKyJEeW5hbWljIEJpbmFyeSBBbmFseXNpcyBhbmQgSW5zdHJ1bWVudGF0aW9uIiwgYnkgTmljaG9sYXMgTmV0aGVyY290ZS4gIEl0CitpcyBhdmFpbGFibGUgb24gdGhlIDxhIGNsYXNzPSJ1bGluayIgaHJlZj0iaHR0cDovL3d3dy52YWxncmluZC5vcmcvZG9jcy9wdWJzLmh0bWwiIHRhcmdldD0iX3RvcCI+VmFsZ3JpbmQgcHVibGljYXRpb25zCitwYWdlPC9hPi48L3A+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0iY2ctbWFudWFsLmltcGwtZGV0YWlscy5maWxlLWZvcm1hdCI+PC9hPjUuOS4yLqBDYWNoZWdyaW5kIE91dHB1dCBGaWxlIEZvcm1hdDwvaDM+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD5UaGUgZmlsZSBmb3JtYXQgaXMgZmFpcmx5IHN0cmFpZ2h0Zm9yd2FyZCwgYmFzaWNhbGx5IGdpdmluZyB0aGUKK2Nvc3QgY2VudHJlIGZvciBldmVyeSBsaW5lLCBncm91cGVkIGJ5IGZpbGVzIGFuZAorZnVuY3Rpb25zLiAgSXQncyBhbHNvIHRvdGFsbHkgZ2VuZXJpYyBhbmQgc2VsZi1kZXNjcmliaW5nLCBpbiB0aGUgc2Vuc2UgdGhhdAoraXQgY2FuIGJlIHVzZWQgZm9yIGFueSBldmVudHMgdGhhdCBjYW4gYmUgY291bnRlZCBvbiBhIGxpbmUtYnktbGluZSBiYXNpcywKK25vdCBqdXN0IGNhY2hlIGFuZCBicmFuY2ggcHJlZGljdG9yIGV2ZW50cy4gIEZvciBleGFtcGxlLCBlYXJsaWVyIHZlcnNpb25zCitvZiBDYWNoZWdyaW5kIGRpZG4ndCBoYXZlIGEgYnJhbmNoIHByZWRpY3RvciBzaW11bGF0aW9uLiAgV2hlbiB0aGlzIHdhcworYWRkZWQsIHRoZSBmaWxlIGZvcm1hdCBkaWRuJ3QgbmVlZCB0byBjaGFuZ2UgYXQgYWxsLiAgU28gdGhlIGZvcm1hdCAoYW5kCitjb25zZXF1ZW50bHksIGNnX2Fubm90YXRlKSBjb3VsZCBiZSB1c2VkIGJ5IG90aGVyIHRvb2xzLjwvcD4KKzxwPlRoZSBmaWxlIGZvcm1hdDo8L3A+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CitmaWxlICAgICAgICAgOjo9IGRlc2NfbGluZSogY21kX2xpbmUgZXZlbnRzX2xpbmUgZGF0YV9saW5lKyBzdW1tYXJ5X2xpbmUKK2Rlc2NfbGluZSAgICA6Oj0gImRlc2M6IiB3cz8gbm9uX25sX3N0cmluZworY21kX2xpbmUgICAgIDo6PSAiY21kOiIgd3M/IGNtZAorZXZlbnRzX2xpbmUgIDo6PSAiZXZlbnRzOiIgd3M/IChldmVudCB3cykrCitkYXRhX2xpbmUgICAgOjo9IGZpbGVfbGluZSB8IGZuX2xpbmUgfCBjb3VudF9saW5lCitmaWxlX2xpbmUgICAgOjo9ICJmbD0iIGZpbGVuYW1lCitmbl9saW5lICAgICAgOjo9ICJmbj0iIGZuX25hbWUKK2NvdW50X2xpbmUgICA6Oj0gbGluZV9udW0gd3M/IChjb3VudCB3cykrCitzdW1tYXJ5X2xpbmUgOjo9ICJzdW1tYXJ5OiIgd3M/IChjb3VudCB3cykrCitjb3VudCAgICAgICAgOjo9IG51bSB8ICIuIjwvcHJlPgorPHA+V2hlcmU6PC9wPgorPGRpdiBjbGFzcz0iaXRlbWl6ZWRsaXN0Ij48dWwgY2xhc3M9Iml0ZW1pemVkbGlzdCIgc3R5bGU9Imxpc3Qtc3R5bGUtdHlwZTogZGlzYzsgIj4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPjxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+bm9uX25sX3N0cmluZzwvY29kZT4gaXMgYW55CisgICAgc3RyaW5nIG5vdCBjb250YWluaW5nIGEgbmV3bGluZS48L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPjxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+Y21kPC9jb2RlPiBpcyBhIHN0cmluZyBob2xkaW5nIHRoZQorICAgIGNvbW1hbmQgbGluZSBvZiB0aGUgcHJvZmlsZWQgcHJvZ3JhbS48L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPjxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+ZXZlbnQ8L2NvZGU+IGlzIGEgc3RyaW5nIGNvbnRhaW5pbmcKKyAgICBubyB3aGl0ZXNwYWNlLjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+PGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5maWxlbmFtZTwvY29kZT4gYW5kCisgICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5mbl9uYW1lPC9jb2RlPiBhcmUgc3RyaW5ncy48L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPjxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+bnVtPC9jb2RlPiBhbmQKKyAgICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmxpbmVfbnVtPC9jb2RlPiBhcmUgZGVjaW1hbAorICAgIG51bWJlcnMuPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD48Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPndzPC9jb2RlPiBpcyB3aGl0ZXNwYWNlLjwvcD48L2xpPgorPC91bD48L2Rpdj4KKzxwPlRoZSBjb250ZW50cyBvZiB0aGUgImRlc2M6IiBsaW5lcyBhcmUgcHJpbnRlZCBvdXQgYXQgdGhlIHRvcAorb2YgdGhlIHN1bW1hcnkuICBUaGlzIGlzIGEgZ2VuZXJpYyB3YXkgb2YgcHJvdmlkaW5nIHNpbXVsYXRpb24KK3NwZWNpZmljIGluZm9ybWF0aW9uLCBlLmcuIGZvciBnaXZpbmcgdGhlIGNhY2hlIGNvbmZpZ3VyYXRpb24gZm9yCitjYWNoZSBzaW11bGF0aW9uLjwvcD4KKzxwPk1vcmUgdGhhbiBvbmUgbGluZSBvZiBpbmZvIGNhbiBiZSBwcmVzZW50ZWQgZm9yIGVhY2ggZmlsZS9mbi9saW5lIG51bWJlci4KK0luIHN1Y2ggY2FzZXMsIHRoZSBjb3VudHMgZm9yIHRoZSBuYW1lZCBldmVudHMgd2lsbCBiZSBhY2N1bXVsYXRlZC48L3A+Cis8cD5Db3VudHMgY2FuIGJlICIuIiB0byByZXByZXNlbnQgemVyby4gIFRoaXMgbWFrZXMgdGhlIGZpbGVzIGVhc2llciBmb3IKK2h1bWFucyB0byByZWFkLjwvcD4KKzxwPlRoZSBudW1iZXIgb2YgY291bnRzIGluIGVhY2gKKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+bGluZTwvY29kZT4gYW5kIHRoZQorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5zdW1tYXJ5X2xpbmU8L2NvZGU+IHNob3VsZCBub3QgZXhjZWVkCit0aGUgbnVtYmVyIG9mIGV2ZW50cyBpbiB0aGUKKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+ZXZlbnRfbGluZTwvY29kZT4uICBJZiB0aGUgbnVtYmVyIGluCitlYWNoIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+bGluZTwvY29kZT4gaXMgbGVzcywgY2dfYW5ub3RhdGUKK3RyZWF0cyB0aG9zZSBtaXNzaW5nIGFzIHRob3VnaCB0aGV5IHdlcmUgYSAiLiIgZW50cnkuICBUaGlzIHNhdmVzIHNwYWNlLgorPC9wPgorPHA+QSA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmZpbGVfbGluZTwvY29kZT4gY2hhbmdlcyB0aGUKK2N1cnJlbnQgZmlsZSBuYW1lLiAgQSA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmZuX2xpbmU8L2NvZGU+CitjaGFuZ2VzIHRoZSBjdXJyZW50IGZ1bmN0aW9uIG5hbWUuICBBCis8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmNvdW50X2xpbmU8L2NvZGU+IGNvbnRhaW5zIGNvdW50cyB0aGF0CitwZXJ0YWluIHRvIHRoZSBjdXJyZW50IGZpbGVuYW1lL2ZuX25hbWUuICBBICJmbj0iCis8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmZpbGVfbGluZTwvY29kZT4gYW5kIGEKKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+Zm5fbGluZTwvY29kZT4gbXVzdCBhcHBlYXIgYmVmb3JlIGFueQorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5jb3VudF9saW5lPC9jb2RlPnMgdG8gZ2l2ZSB0aGUgY29udGV4dAorb2YgdGhlIGZpcnN0IDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+Y291bnRfbGluZTwvY29kZT5zLjwvcD4KKzxwPkVhY2ggPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5maWxlX2xpbmU8L2NvZGU+IHdpbGwgbm9ybWFsbHkgYmUKK2ltbWVkaWF0ZWx5IGZvbGxvd2VkIGJ5IGEgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5mbl9saW5lPC9jb2RlPi4gIEJ1dCBpdAorZG9lc24ndCBoYXZlIHRvIGJlLjwvcD4KKzxwPlRoZSBzdW1tYXJ5IGxpbmUgaXMgcmVkdW5kYW50LCBiZWNhdXNlIGl0IGp1c3QgaG9sZHMgdGhlIHRvdGFsIGNvdW50cworZm9yIGVhY2ggZXZlbnQuICBCdXQgdGhpcyBzZXJ2ZXMgYXMgYSB1c2VmdWwgc2FuaXR5IGNoZWNrIG9mIHRoZSBkYXRhOyAgaWYKK3RoZSB0b3RhbHMgZm9yIGVhY2ggZXZlbnQgZG9uJ3QgbWF0Y2ggdGhlIHN1bW1hcnkgbGluZSwgc29tZXRoaW5nIGhhcyBnb25lCit3cm9uZy48L3A+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+Cis8ZGl2PgorPGJyPjx0YWJsZSBjbGFzcz0ibmF2IiB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjMiIGNlbGxwYWRkaW5nPSIyIiBib3JkZXI9IjAiIHN1bW1hcnk9Ik5hdmlnYXRpb24gZm9vdGVyIj4KKzx0cj4KKzx0ZCByb3dzcGFuPSIyIiB3aWR0aD0iNDAlIiBhbGlnbj0ibGVmdCI+Cis8YSBhY2Nlc3NrZXk9InAiIGhyZWY9Im1jLW1hbnVhbC5odG1sIj4mbHQ7Jmx0O6A0LqBNZW1jaGVjazogYSBtZW1vcnkgZXJyb3IgZGV0ZWN0b3I8L2E+oDwvdGQ+Cis8dGQgd2lkdGg9IjIwJSIgYWxpZ249ImNlbnRlciI+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJtYW51YWwuaHRtbCI+VXA8L2E+PC90ZD4KKzx0ZCByb3dzcGFuPSIyIiB3aWR0aD0iNDAlIiBhbGlnbj0icmlnaHQiPqA8YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImNsLW1hbnVhbC5odG1sIj42LqBDYWxsZ3JpbmQ6IGEgY2FsbC1ncmFwaCBnZW5lcmF0aW5nIGNhY2hlIGFuZCBicmFuY2ggcHJlZGljdGlvbiBwcm9maWxlcqAmZ3Q7Jmd0OzwvYT4KKzwvdGQ+Cis8L3RyPgorPHRyPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0iY2VudGVyIj48YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPkhvbWU8L2E+PC90ZD48L3RyPgorPC90YWJsZT4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvZG9jcy9odG1sL2NsLWZvcm1hdC5odG1sIGIvZG9jcy9odG1sL2NsLWZvcm1hdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdjZjMwZGUKLS0tIC9kZXYvbnVsbAorKysgYi9kb2NzL2h0bWwvY2wtZm9ybWF0Lmh0bWwKQEAgLTAsMCArMSw2NTEgQEAKKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj4KKzx0aXRsZT4zLqBDYWxsZ3JpbmQgRm9ybWF0IFNwZWNpZmljYXRpb248L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0idmdfYmFzaWMuY3NzIj4KKzxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iRG9jQm9vayBYU0wgU3R5bGVzaGVldHMgVjEuNzguMSI+Cis8bGluayByZWw9ImhvbWUiIGhyZWY9ImluZGV4Lmh0bWwiIHRpdGxlPSJWYWxncmluZCBEb2N1bWVudGF0aW9uIj4KKzxsaW5rIHJlbD0idXAiIGhyZWY9InRlY2gtZG9jcy5odG1sIiB0aXRsZT0iVmFsZ3JpbmQgVGVjaG5pY2FsIERvY3VtZW50YXRpb24iPgorPGxpbmsgcmVsPSJwcmV2IiBocmVmPSJtYW51YWwtd3JpdGluZy10b29scy5odG1sIiB0aXRsZT0iMi6gV3JpdGluZyBhIE5ldyBWYWxncmluZCBUb29sIj4KKzxsaW5rIHJlbD0ibmV4dCIgaHJlZj0iZGlzdC5odG1sIiB0aXRsZT0iVmFsZ3JpbmQgRGlzdHJpYnV0aW9uIERvY3VtZW50cyI+Cis8L2hlYWQ+Cis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+Cis8ZGl2Pjx0YWJsZSBjbGFzcz0ibmF2IiB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjMiIGNlbGxwYWRkaW5nPSIzIiBib3JkZXI9IjAiIHN1bW1hcnk9Ik5hdmlnYXRpb24gaGVhZGVyIj48dHI+Cis8dGQgd2lkdGg9IjIycHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9InAiIGhyZWY9Im1hbnVhbC13cml0aW5nLXRvb2xzLmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvcHJldi5wbmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIyMSIgYm9yZGVyPSIwIiBhbHQ9IlByZXYiPjwvYT48L3RkPgorPHRkIHdpZHRoPSIyNXB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJ0ZWNoLWRvY3MuaHRtbCI+PGltZyBzcmM9ImltYWdlcy91cC5wbmciIHdpZHRoPSIyMSIgaGVpZ2h0PSIxOCIgYm9yZGVyPSIwIiBhbHQ9IlVwIj48L2E+PC90ZD4KKzx0ZCB3aWR0aD0iMzFweCIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iaW5kZXguaHRtbCI+PGltZyBzcmM9ImltYWdlcy9ob21lLnBuZyIgd2lkdGg9IjI3IiBoZWlnaHQ9IjIwIiBib3JkZXI9IjAiIGFsdD0iVXAiPjwvYT48L3RkPgorPHRoIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj5WYWxncmluZCBUZWNobmljYWwgRG9jdW1lbnRhdGlvbjwvdGg+Cis8dGQgd2lkdGg9IjIycHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImRpc3QuaHRtbCI+PGltZyBzcmM9ImltYWdlcy9uZXh0LnBuZyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjIxIiBib3JkZXI9IjAiIGFsdD0iTmV4dCI+PC9hPjwvdGQ+Cis8L3RyPjwvdGFibGU+PC9kaXY+Cis8ZGl2IGNsYXNzPSJjaGFwdGVyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMSBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0iY2wtZm9ybWF0Ij48L2E+My6gQ2FsbGdyaW5kIEZvcm1hdCBTcGVjaWZpY2F0aW9uPC9oMT48L2Rpdj48L2Rpdj48L2Rpdj4KKzxkaXYgY2xhc3M9InRvYyI+Cis8cD48Yj5UYWJsZSBvZiBDb250ZW50czwvYj48L3A+Cis8ZGwgY2xhc3M9InRvYyI+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJjbC1mb3JtYXQuaHRtbCNjbC1mb3JtYXQub3ZlcnZpZXciPjMuMS4gT3ZlcnZpZXc8L2E+PC9zcGFuPjwvZHQ+Cis8ZGQ+PGRsPgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iY2wtZm9ybWF0Lmh0bWwjY2wtZm9ybWF0Lm92ZXJ2aWV3LmJhc2ljcyI+My4xLjEuIEJhc2ljIFN0cnVjdHVyZTwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9ImNsLWZvcm1hdC5odG1sI2NsLWZvcm1hdC5vdmVydmlldy5leGFtcGxlMSI+My4xLjIuIFNpbXBsZSBFeGFtcGxlPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iY2wtZm9ybWF0Lmh0bWwjY2wtZm9ybWF0Lm92ZXJ2aWV3LmFzc29jaWF0aW9ucyI+My4xLjMuIEFzc29jaWF0aW9uczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9ImNsLWZvcm1hdC5odG1sI2NsLWZvcm1hdC5vdmVydmlldy5leGFtcGxlMiI+My4xLjQuIEV4dGVuZGVkIEV4YW1wbGU8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJjbC1mb3JtYXQuaHRtbCNjbC1mb3JtYXQub3ZlcnZpZXcuY29tcHJlc3Npb24xIj4zLjEuNS4gTmFtZSBDb21wcmVzc2lvbjwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9ImNsLWZvcm1hdC5odG1sI2NsLWZvcm1hdC5vdmVydmlldy5jb21wcmVzc2lvbjIiPjMuMS42LiBTdWJwb3NpdGlvbiBDb21wcmVzc2lvbjwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9ImNsLWZvcm1hdC5odG1sI2NsLWZvcm1hdC5vdmVydmlldy5taXNjIj4zLjEuNy4gTWlzY2VsbGFuZW91czwvYT48L3NwYW4+PC9kdD4KKzwvZGw+PC9kZD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9ImNsLWZvcm1hdC5odG1sI2NsLWZvcm1hdC5yZWZlcmVuY2UiPjMuMi4gUmVmZXJlbmNlPC9hPjwvc3Bhbj48L2R0PgorPGRkPjxkbD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9ImNsLWZvcm1hdC5odG1sI2NsLWZvcm1hdC5yZWZlcmVuY2UuZ3JhbW1hciI+My4yLjEuIEdyYW1tYXI8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJjbC1mb3JtYXQuaHRtbCNjbC1mb3JtYXQucmVmZXJlbmNlLmhlYWRlciI+My4yLjIuIERlc2NyaXB0aW9uIG9mIEhlYWRlciBMaW5lczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9ImNsLWZvcm1hdC5odG1sI2NsLWZvcm1hdC5yZWZlcmVuY2UuYm9keSI+My4yLjMuIERlc2NyaXB0aW9uIG9mIEJvZHkgTGluZXM8L2E+PC9zcGFuPjwvZHQ+Cis8L2RsPjwvZGQ+Cis8L2RsPgorPC9kaXY+Cis8cD5UaGlzIGNoYXB0ZXIgZGVzY3JpYmVzIHRoZSBDYWxsZ3JpbmQgUHJvZmlsZSBGb3JtYXQsIFZlcnNpb24gMS48L3A+Cis8cD5BIHN5bm9ueW1vdXMgbmFtZSBpcyAiQ2FsbHRyZWUgUHJvZmlsZSBGb3JtYXQiLiBUaGVzZSBuYW1lcyBhY3R1YWxseSBtZWFuCit0aGUgc2FtZSBzaW5jZSBDYWxsZ3JpbmQgd2FzIHByZXZpb3VzbHkgbmFtZWQgQ2FsbHRyZWUuPC9wPgorPHA+VGhlIGZvcm1hdCBkZXNjcmlwdGlvbiBpcyBtZWFudCBmb3IgdGhlIHVzZXIgdG8gYmUgYWJsZSB0byB1bmRlcnN0YW5kIHRoZQorZmlsZSBjb250ZW50czsgYnV0IG1vcmUgaW1wb3J0YW50LCBpdCBpcyBnaXZlbiBmb3IgYXV0aG9ycyBvZiBtZWFzdXJlbWVudCBvcgordmlzdWFsaXphdGlvbiB0b29scyB0byBiZSBhYmxlIHRvIHdyaXRlIGFuZCByZWFkIHRoaXMgZm9ybWF0LjwvcD4KKzxkaXYgY2xhc3M9InNlY3QxIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+Cis8YSBuYW1lPSJjbC1mb3JtYXQub3ZlcnZpZXciPjwvYT4zLjEuoE92ZXJ2aWV3PC9oMj48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPlRoZSBwcm9maWxlIGRhdGEgZm9ybWF0IGlzIEFTQ0lJIGJhc2VkLgorSXQgaXMgd3JpdHRlbiBieSBDYWxsZ3JpbmQsIGFuZCBpdCBpcyB1cHdhcmRzIGNvbXBhdGlibGUKK3RvIHRoZSBmb3JtYXQgdXNlZCBieSBDYWNoZWdyaW5kIChpZS4gQ2FjaGVncmluZCB1c2VzIGEgc3Vic2V0KS4gSXQgY2FuCitiZSByZWFkIGJ5IGNhbGxncmluZF9hbm5vdGF0ZSBhbmQgS0NhY2hlZ3JpbmQuPC9wPgorPHA+VGhpcyBjaGFwdGVyIGdpdmVzIG9uIG92ZXJ2aWV3IG9mIGZvcm1hdCBmZWF0dXJlcyBhbmQgZXhhbXBsZXMuCitGb3IgZGV0YWlsZWQgc3ludGF4LCBsb29rIGF0IHRoZSBmb3JtYXQgcmVmZXJlbmNlLjwvcD4KKzxkaXYgY2xhc3M9InNlY3QyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0iY2wtZm9ybWF0Lm92ZXJ2aWV3LmJhc2ljcyI+PC9hPjMuMS4xLqBCYXNpYyBTdHJ1Y3R1cmU8L2gzPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+RWFjaCBmaWxlIGhhcyBhIGhlYWRlciBwYXJ0IG9mIGFuIGFyYml0cmFyeSBudW1iZXIgb2YgbGluZXMgb2YgdGhlCitmb3JtYXQgImtleTogdmFsdWUiLiBBZnRlciB0aGUgaGVhZGVyLCBsaW5lcyBzcGVjaWZ5aW5nIHByb2ZpbGUgY29zdHMKK2ZvbGxvdy4gRXZlcnl3aGVyZSwgY29tbWVudHMgb24gb3duIGxpbmVzIHN0YXJ0aW5nIHdpdGggJyMnIGFyZSBhbGxvd2VkLgorVGhlIGhlYWRlciBsaW5lcyB3aXRoIGtleXMgInBvc2l0aW9ucyIgYW5kICJldmVudHMiIGRlZmluZQordGhlIG1lYW5pbmcgb2YgY29zdCBsaW5lcyBpbiB0aGUgc2Vjb25kIHBhcnQgb2YgdGhlIGZpbGU6IHRoZSB2YWx1ZSBvZgorInBvc2l0aW9ucyIgaXMgYSBsaXN0IG9mIHN1YnBvc2l0aW9ucywgYW5kIHRoZSB2YWx1ZSBvZiAiZXZlbnRzIiBpcyBhIGxpc3QKK29mIGV2ZW50IHR5cGUgbmFtZXMuIENvc3QgbGluZXMgY29uc2lzdCBvZiBzdWJwb3NpdGlvbnMgZm9sbG93ZWQgYnkgNjQtYml0Citjb3VudGVycyBmb3IgdGhlIGV2ZW50cywgaW4gdGhlIG9yZGVyIHNwZWNpZmllZCBieSB0aGUgInBvc2l0aW9ucyIgYW5kICJldmVudHMiCitoZWFkZXIgbGluZS48L3A+Cis8cD5UaGUgImV2ZW50cyIgaGVhZGVyIGxpbmUgaXMgYWx3YXlzIHJlcXVpcmVkIGluIGNvbnRyYXN0IHRvIHRoZSBvcHRpb25hbAorbGluZSBmb3IgInBvc2l0aW9ucyIsIHdoaWNoIGRlZmF1bHRzIHRvICJsaW5lIiwgaS5lLiBhIGxpbmUgbnVtYmVyIG9mIHNvbWUKK3NvdXJjZSBmaWxlLiBJbiBhZGRpdGlvbiwgdGhlIHNlY29uZCBwYXJ0IG9mIHRoZSBmaWxlIGNvbnRhaW5zIHBvc2l0aW9uCitzcGVjaWZpY2F0aW9ucyBvZiB0aGUgZm9ybSAic3BlYz1uYW1lIi4gInNwZWMiIGNhbiBiZSBlLmcuICJmbiIgZm9yIGEKK2Z1bmN0aW9uIG5hbWUgb3IgImZsIiBmb3IgYSBmaWxlIG5hbWUuIENvc3QgbGluZXMgYXJlIGFsd2F5cyByZWxhdGVkIHRvCit0aGUgZnVuY3Rpb24vZmlsZSBzcGVjaWZpY2F0aW9ucyBnaXZlbiBkaXJlY3RseSBiZWZvcmUuPC9wPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MiI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9ImNsLWZvcm1hdC5vdmVydmlldy5leGFtcGxlMSI+PC9hPjMuMS4yLqBTaW1wbGUgRXhhbXBsZTwvaDM+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD5UaGUgZXZlbnQgbmFtZXMgaW4gdGhlIGZvbGxvd2luZyBleGFtcGxlIGFyZSBxdWl0ZSBhcmJpdHJhcnksIGFuZCBhcmUgbm90CityZWxhdGVkIHRvIGV2ZW50IG5hbWVzIHVzZWQgYnkgQ2FsbGdyaW5kLiBFc3BlY2lhbGx5LCBjeWNsZSBjb3VudHMgbWF0Y2hpbmcKK3JlYWwgcHJvY2Vzc29ycyBwcm9iYWJseSB3aWxsIG5ldmVyIGJlIGdlbmVyYXRlZCBieSBhbnkgVmFsZ3JpbmQgdG9vbHMsIGFzIHRoZXNlCithcmUgYm91bmQgdG8gc2ltdWxhdGlvbnMgb2Ygc2ltcGxlIG1hY2hpbmUgbW9kZWxzIGZvciBhY2NlcHRhYmxlIHNsb3dkb3duLgorSG93ZXZlciwgYW55IHByb2ZpbGluZyB0b29sIGNvdWxkIHVzZSB0aGUgZm9ybWF0IGRlc2NyaWJlZCBpbiB0aGlzIGNoYXB0ZXIuPC9wPgorPHA+Cis8L3A+Cis8cHJlIGNsYXNzPSJzY3JlZW4iPmV2ZW50czogQ3ljbGVzIEluc3RydWN0aW9ucyBGbG9wcworZmw9ZmlsZS5mCitmbj1tYWluCisxNSA5MCAxNCAyCisxNiAyMCAxMjwvcHJlPgorPHA+VGhlIGFib3ZlIGV4YW1wbGUgZ2l2ZXMgcHJvZmlsZSBpbmZvcm1hdGlvbiBmb3IgZXZlbnQgdHlwZXMgIkN5Y2xlcyIsCisiSW5zdHJ1Y3Rpb25zIiwgYW5kICJGbG9wcyIuIFRodXMsIGNvc3QgbGluZXMgZ2l2ZSB0aGUgbnVtYmVyIG9mIENQVSBjeWNsZXMKK3Bhc3NlZCBieSwgbnVtYmVyIG9mIGV4ZWN1dGVkIGluc3RydWN0aW9ucywgYW5kIG51bWJlciBvZiBmbG9hdGluZyBwb2ludAorb3BlcmF0aW9ucyBleGVjdXRlZCB3aGlsZSBydW5uaW5nIGNvZGUgY29ycmVzcG9uZGluZyB0byBzb21lIHNvdXJjZQorcG9zaXRpb24uIEFzIHRoZXJlIGlzIG5vIGxpbmUgc3BlY2lmeWluZyB0aGUgdmFsdWUgb2YgInBvc2l0aW9ucyIsIGl0IGRlZmF1bHRzCit0byAibGluZSIsIHdoaWNoIG1lYW5zIHRoYXQgdGhlIGZpcnN0IG51bWJlciBvZiBhIGNvc3QgbGluZSBpcyBhbHdheXMgYSBsaW5lCitudW1iZXIuPC9wPgorPHA+VGh1cywgdGhlIGZpcnN0IGNvc3QgbGluZSBzcGVjaWZpZXMgdGhhdCBpbiBsaW5lIDE1IG9mIHNvdXJjZSBmaWxlCis8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPmZpbGUuZjwvY29kZT4gdGhlcmUgaXMgY29kZSBiZWxvbmdpbmcgdG8gZnVuY3Rpb24KKzxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+bWFpbjwvY29kZT4uIFdoaWxlIHJ1bm5pbmcsIDkwIENQVSBjeWNsZXMgcGFzc2VkIGJ5LCBhbmQgMiBvZgordGhlIDE0IGluc3RydWN0aW9ucyBleGVjdXRlZCB3ZXJlIGZsb2F0aW5nIHBvaW50IG9wZXJhdGlvbnMuIFNpbWlsYXJseSwgdGhlCituZXh0IGxpbmUgc3BlY2lmaWVzIHRoYXQgdGhlcmUgd2VyZSAxMiBpbnN0cnVjdGlvbnMgZXhlY3V0ZWQgaW4gdGhlIGNvbnRleHQKK29mIGZ1bmN0aW9uIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+bWFpbjwvY29kZT4gd2hpY2ggY2FuIGJlIHJlbGF0ZWQgdG8gbGluZSAxNiBpbgorZmlsZSA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPmZpbGUuZjwvY29kZT4sIHRha2luZyAyMCBDUFUgY3ljbGVzLiBJZiBhIGNvc3QgbGluZQorc3BlY2lmaWVzIGxlc3MgZXZlbnQgY291bnRzIHRoYW4gZ2l2ZW4gaW4gdGhlICJldmVudHMiIGxpbmUsIHRoZSByZXN0IGlzCithc3N1bWVkIHRvIGJlIHplcm8uICBJLmUuIHRoZXJlIHdhcyBubyBmbG9hdGluZyBwb2ludCBpbnN0cnVjdGlvbiBleGVjdXRlZAorcmVsYXRpbmcgdG8gbGluZSAxNi48L3A+Cis8cD5Ob3RlIHRoYXQgcmVndWxhciBjb3N0IGxpbmVzIGFsd2F5cyBnaXZlIHNlbGYgKGFsc28gY2FsbGVkIGV4Y2x1c2l2ZSkKK2Nvc3Qgb2YgY29kZSBhdCBhIGdpdmVuIHBvc2l0aW9uLiBJZiB5b3Ugc3BlY2lmeSBtdWx0aXBsZSBjb3N0IGxpbmVzIGZvciB0aGUKK3NhbWUgcG9zaXRpb24sIHRoZXNlIHdpbGwgYmUgc3VtbWVkIHVwLiBPbiB0aGUgb3RoZXIgaGFuZCwgaW4gdGhlIGV4YW1wbGUgYWJvdmUKK3RoZXJlIGlzIG5vIHNwZWNpZmljYXRpb24gb2YgaG93IG1hbnkgdGltZXMgZnVuY3Rpb24KKzxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+bWFpbjwvY29kZT4gYWN0dWFsbHkgd2FzCitjYWxsZWQ6IHByb2ZpbGUgZGF0YSBvbmx5IGNvbnRhaW5zIHN1bXMuPC9wPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MiI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9ImNsLWZvcm1hdC5vdmVydmlldy5hc3NvY2lhdGlvbnMiPjwvYT4zLjEuMy6gQXNzb2NpYXRpb25zPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPlRoZSBtb3N0IGltcG9ydGFudCBleHRlbnNpb24gdG8gdGhlIG9yaWdpbmFsIGZvcm1hdCBvZiBDYWNoZWdyaW5kIGlzIHRoZQorYWJpbGl0eSB0byBzcGVjaWZ5IGNhbGwgcmVsYXRpb25zaGlwIGFtb25nIGZ1bmN0aW9ucy4gTW9yZSBnZW5lcmFsbHksIHlvdQorc3BlY2lmeSBhc3NvY2lhdGlvbnMgYW1vbmcgcG9zaXRpb25zLiBGb3IgdGhpcywgdGhlIHNlY29uZCBwYXJ0IG9mIHRoZQorZmlsZSBhbHNvIGNhbiBjb250YWluIGFzc29jaWF0aW9uIHNwZWNpZmljYXRpb25zLiBUaGVzZSBsb29rIHNpbWlsYXIgdG8KK3Bvc2l0aW9uIHNwZWNpZmljYXRpb25zLCBidXQgY29uc2lzdCBvZiB0d28gbGluZXMuIEZvciBjYWxscywgdGhlIGZvcm1hdAorbG9va3MgbGlrZQorPC9wPgorPHByZSBjbGFzcz0ic2NyZWVuIj4KKyBjYWxscz0oQ2FsbCBDb3VudCkgKFRhcmdldCBwb3NpdGlvbikKKyAoU291cmNlIHBvc2l0aW9uKSAoSW5jbHVzaXZlIGNvc3Qgb2YgY2FsbCkKKzwvcHJlPgorPHA+VGhlIGRlc3RpbmF0aW9uIG9ubHkgc3BlY2lmaWVzIHN1YnBvc2l0aW9ucyBsaWtlIGxpbmUgbnVtYmVyLiBUaGVyZWZvcmUsCit0byBiZSBhYmxlIHRvIHNwZWNpZnkgYSBjYWxsIHRvIGFub3RoZXIgZnVuY3Rpb24gaW4gYW5vdGhlciBzb3VyY2UgZmlsZSwgeW91CitoYXZlIHRvIHByZWNlZGUgdGhlIGFib3ZlIGxpbmVzIHdpdGggYSAiY2ZuPSIgc3BlY2lmaWNhdGlvbiBmb3IgdGhlIG5hbWUgb2YgdGhlCitjYWxsZWQgZnVuY3Rpb24sIGFuZCBvcHRpb25hbGx5IGEgImNmaT0iIHNwZWNpZmljYXRpb24gaWYgdGhlIGZ1bmN0aW9uIGlzIGluCithbm90aGVyIHNvdXJjZSBmaWxlICgiY2ZsPSIgaXMgYW4gYWx0ZXJuYXRpdmUgc3BlY2lmaWNhdGlvbiBmb3IgImNmaT0iIGJlY2F1c2UKK29mIGhpc3RvcmljYWwgcmVhc29ucywgYW5kIGJvdGggc2hvdWxkIGJlIHN1cHBvcnRlZCBieSBmb3JtYXQgcmVhZGVycykuCitUaGUgc2Vjb25kIGxpbmUgbG9va3MgbGlrZSBhIHJlZ3VsYXIgY29zdCBsaW5lIHdpdGggdGhlIGRpZmZlcmVuY2UKK3RoYXQgaW5jbHVzaXZlIGNvc3Qgc3BlbnQgaW5zaWRlIG9mIHRoZSBmdW5jdGlvbiBjYWxsIGhhcyB0byBiZSBzcGVjaWZpZWQuPC9wPgorPHA+T3RoZXIgYXNzb2NpYXRpb25zIGFyZSBmb3IgZXhhbXBsZSAoY29uZGl0aW9uYWwpIGp1bXBzLiBTZWUgdGhlCityZWZlcmVuY2UgYmVsb3cgZm9yIGRldGFpbHMuPC9wPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MiI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9ImNsLWZvcm1hdC5vdmVydmlldy5leGFtcGxlMiI+PC9hPjMuMS40LqBFeHRlbmRlZCBFeGFtcGxlPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPlRoZSBmb2xsb3dpbmcgZXhhbXBsZSBzaG93cyAzIGZ1bmN0aW9ucywgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5tYWluPC9jb2RlPiwKKzxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+ZnVuYzE8L2NvZGU+LCBhbmQgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5mdW5jMjwvY29kZT4uIEZ1bmN0aW9uCis8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPm1haW48L2NvZGU+IGNhbGxzIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+ZnVuYzE8L2NvZGU+IG9uY2UgYW5kCis8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPmZ1bmMyPC9jb2RlPiAzIHRpbWVzLiA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPmZ1bmMxPC9jb2RlPiBjYWxscworPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5mdW5jMjwvY29kZT4gMiB0aW1lcy4KKzwvcD4KKzxwcmUgY2xhc3M9InNjcmVlbiI+ZXZlbnRzOiBJbnN0cnVjdGlvbnMKKworZmw9ZmlsZTEuYworZm49bWFpbgorMTYgMjAKK2Nmbj1mdW5jMQorY2FsbHM9MSA1MAorMTYgNDAwCitjZmk9ZmlsZTIuYworY2ZuPWZ1bmMyCitjYWxscz0zIDIwCisxNiA0MDAKKworZm49ZnVuYzEKKzUxIDEwMAorY2ZpPWZpbGUyLmMKK2Nmbj1mdW5jMgorY2FsbHM9MiAyMAorNTEgMzAwCisKK2ZsPWZpbGUyLmMKK2ZuPWZ1bmMyCisyMCA3MDA8L3ByZT4KKzxwPk9uZSBjYW4gc2VlIHRoYXQgaW4gPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5tYWluPC9jb2RlPiBvbmx5IGNvZGUgZnJvbSBsaW5lIDE2CitpcyBleGVjdXRlZCB3aGVyZSBhbHNvIHRoZSBvdGhlciBmdW5jdGlvbnMgYXJlIGNhbGxlZC4gSW5jbHVzaXZlIGNvc3Qgb2YKKzxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+bWFpbjwvY29kZT4gaXMgODIwLCB3aGljaCBpcyB0aGUgc3VtIG9mIHNlbGYgY29zdCAyMCBhbmQgY29zdHMKK3NwZW50IGluIHRoZSBjYWxsczogNDAwIGZvciB0aGUgc2luZ2xlIGNhbGwgdG8gPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5mdW5jMTwvY29kZT4KK2FuZCA0MDAgYXMgc3VtIGZvciB0aGUgdGhyZWUgY2FsbHMgdG8gPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5mdW5jMjwvY29kZT4uPC9wPgorPHA+RnVuY3Rpb24gPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5mdW5jMTwvY29kZT4gaXMgbG9jYXRlZCBpbgorPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5maWxlMS5jPC9jb2RlPiwgdGhlIHNhbWUgYXMgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5tYWluPC9jb2RlPi4KK1RoZXJlZm9yZSwgYSAiY2ZpPSIgc3BlY2lmaWNhdGlvbiBmb3IgdGhlIGNhbGwgdG8gPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5mdW5jMTwvY29kZT4KK2lzIG5vdCBuZWVkZWQuIFRoZSBmdW5jdGlvbiA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPmZ1bmMxPC9jb2RlPiBvbmx5IGNvbnNpc3RzIG9mIGNvZGUKK2F0IGxpbmUgNTEgb2YgPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5maWxlMS5jPC9jb2RlPiwgd2hlcmUgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5mdW5jMjwvY29kZT4KK2lzIGNhbGxlZC48L3A+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0iY2wtZm9ybWF0Lm92ZXJ2aWV3LmNvbXByZXNzaW9uMSI+PC9hPjMuMS41LqBOYW1lIENvbXByZXNzaW9uPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPldpdGggdGhlIGludHJvZHVjdGlvbiBvZiBhc3NvY2lhdGlvbiBzcGVjaWZpY2F0aW9ucyBsaWtlIGNhbGxzIGl0IGlzCituZWVkZWQgdG8gc3BlY2lmeSB0aGUgc2FtZSBmdW5jdGlvbiBvciBzYW1lIGZpbGUgbmFtZSBtdWx0aXBsZSB0aW1lcy4gQXMKK2Fic29sdXRlIGZpbGVuYW1lcyBvciBzeW1ib2wgbmFtZXMgaW4gQysrIGNhbiBiZSBxdWl0ZSBsb25nLCBpdCBpcyBhZHZhbnRhZ2VvdXMKK3RvIGJlIGFibGUgdG8gc3BlY2lmeSBpbnRlZ2VyIElEcyBmb3IgcG9zaXRpb24gc3BlY2lmaWNhdGlvbnMuCitIZXJlLCB0aGUgdGVybSAicG9zaXRpb24iIGNvcnJlc3BvbmRzIHRvIGEgZmlsZSBuYW1lIChzb3VyY2Ugb3Igb2JqZWN0IGZpbGUpCitvciBmdW5jdGlvbiBuYW1lLjwvcD4KKzxwPlRvIHN1cHBvcnQgbmFtZSBjb21wcmVzc2lvbiwgYSBwb3NpdGlvbiBzcGVjaWZpY2F0aW9uIGNhbiBiZSBub3Qgb25seSBvZgordGhlIGZvcm1hdCAic3BlYz1uYW1lIiwgYnV0IGFsc28gInNwZWM9KElEKSBuYW1lIiB0byBzcGVjaWZ5IGEgbWFwcGluZyBvZiBhbgoraW50ZWdlciBJRCB0byBhIG5hbWUsIGFuZCAic3BlYz0oSUQpIiB0byByZWZlcmVuY2UgYSBwcmV2aW91c2x5IGRlZmluZWQgSUQKK21hcHBpbmcuIFRoZXJlIGlzIGEgc2VwYXJhdGUgSUQgbWFwcGluZyBmb3IgZWFjaCBwb3NpdGlvbiBzcGVjaWZpY2F0aW9uLAoraS5lLiB5b3UgY2FuIHVzZSBJRCAxIGZvciBib3RoIGEgZmlsZSBuYW1lIGFuZCBhIHN5bWJvbCBuYW1lLjwvcD4KKzxwPldpdGggc3RyaW5nIGNvbXByZXNzaW9uLCB0aGUgZXhhbXBsZSBmcm9tIDEuNCBsb29rcyBsaWtlIHRoaXM6Cis8L3A+Cis8cHJlIGNsYXNzPSJzY3JlZW4iPmV2ZW50czogSW5zdHJ1Y3Rpb25zCisKK2ZsPSgxKSBmaWxlMS5jCitmbj0oMSkgbWFpbgorMTYgMjAKK2Nmbj0oMikgZnVuYzEKK2NhbGxzPTEgNTAKKzE2IDQwMAorY2ZpPSgyKSBmaWxlMi5jCitjZm49KDMpIGZ1bmMyCitjYWxscz0zIDIwCisxNiA0MDAKKworZm49KDIpCis1MSAxMDAKK2NmaT0oMikKK2Nmbj0oMykKK2NhbGxzPTIgMjAKKzUxIDMwMAorCitmbD0oMikKK2ZuPSgzKQorMjAgNzAwPC9wcmU+Cis8cD5BcyBwb3NpdGlvbiBzcGVjaWZpY2F0aW9ucyBjYXJyeSBubyBpbmZvcm1hdGlvbiB0aGVtc2VsdmVzLCBidXQgb25seSBjaGFuZ2UKK3RoZSBtZWFuaW5nIG9mIHN1YnNlcXVlbnQgY29zdCBsaW5lcyBvciBhc3NvY2lhdGlvbnMsIHRoZXkgY2FuIGFwcGVhcgorZXZlcnl3aGVyZSBpbiB0aGUgZmlsZSB3aXRob3V0IGFueSBuZWdhdGl2ZSBjb25zZXF1ZW5jZS4gRXNwZWNpYWxseSwgeW91IGNhbgorZGVmaW5lIG5hbWUgY29tcHJlc3Npb24gbWFwcGluZ3MgZGlyZWN0bHkgYWZ0ZXIgdGhlIGhlYWRlciwgYW5kIGJlZm9yZSBhbnkgY29zdAorbGluZXMuIFRodXMsIHRoZSBhYm92ZSBleGFtcGxlIGNhbiBhbHNvIGJlIHdyaXR0ZW4gYXMKKzwvcD4KKzxwcmUgY2xhc3M9InNjcmVlbiI+ZXZlbnRzOiBJbnN0cnVjdGlvbnMKKworIyBkZWZpbmUgZmlsZSBJRCBtYXBwaW5nCitmbD0oMSkgZmlsZTEuYworZmw9KDIpIGZpbGUyLmMKKyMgZGVmaW5lIGZ1bmN0aW9uIElEIG1hcHBpbmcKK2ZuPSgxKSBtYWluCitmbj0oMikgZnVuYzEKK2ZuPSgzKSBmdW5jMgorCitmbD0oMSkKK2ZuPSgxKQorMTYgMjAKKy4uLjwvcHJlPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MiI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9ImNsLWZvcm1hdC5vdmVydmlldy5jb21wcmVzc2lvbjIiPjwvYT4zLjEuNi6gU3VicG9zaXRpb24gQ29tcHJlc3Npb248L2gzPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+SWYgYSBDYWxsZ3JpbmQgZGF0YSBmaWxlIHNob3VsZCBob2xkIGNvc3RzIGZvciBlYWNoIGFzc2VtYmxlciBpbnN0cnVjdGlvbgorb2YgYSBwcm9ncmFtLCB5b3Ugc3BlY2lmeSBzdWJwb3NpdGlvbiAiaW5zdHIiIGluIHRoZSAicG9zaXRpb25zOiIgaGVhZGVyIGxpbmUsCithbmQgZWFjaCBjb3N0IGxpbmUgaGFzIHRvIGluY2x1ZGUgdGhlIGFkZHJlc3Mgb2Ygc29tZSBpbnN0cnVjdGlvbi4gQWRkcmVzc2VzCithcmUgYWxsb3dlZCB0byBoYXZlIGEgc2l6ZSBvZiA2NCBiaXRzIHRvIHN1cHBvcnQgNjQtYml0IGFyY2hpdGVjdHVyZXMuIFRodXMsCityZXBlYXRpbmcgc2ltaWxhciwgbG9uZyBhZGRyZXNzZXMgZm9yIGFsbW9zdCBldmVyeSBsaW5lIGluIHRoZSBkYXRhIGZpbGUgY2FuCitlbmxhcmdlIHRoZSBmaWxlIHNpemUgcXVpdGUgc2lnbmlmaWNhbnRseSwgYW5kCittb3RpdmF0ZXMgZm9yIHN1YnBvc2l0aW9uIGNvbXByZXNzaW9uOiBpbnN0ZWFkIG9mIGV2ZXJ5IGNvc3QgbGluZSBzdGFydGluZyB3aXRoCithIDE2IGNoYXJhY3RlciBsb25nIGFkZHJlc3MsIG9uZSBpcyBhbGxvd2VkIHRvIHNwZWNpZnkgcmVsYXRpdmUgYWRkcmVzc2VzLgorVGhpcyByZWxhdGl2ZSBzcGVjaWZpY2F0aW9uIGlzIG5vdCBvbmx5IGFsbG93ZWQgZm9yIGluc3RydWN0aW9uIGFkZHJlc3NlcywgYnV0CithbHNvIGZvciBsaW5lIG51bWJlcnM7IGJvdGggYWRkcmVzc2VzIGFuZCBsaW5lIG51bWJlcnMgYXJlIGNhbGxlZCAic3VicG9zaXRpb25zIi48L3A+Cis8cD5BIHJlbGF0aXZlIHN1YnBvc2l0aW9uIGFsd2F5cyBpcyBiYXNlZCBvbiB0aGUgY29ycmVzcG9uZGluZyBzdWJwb3NpdGlvbgorb2YgdGhlIGxhc3QgY29zdCBsaW5lLCBhbmQgc3RhcnRzIHdpdGggYSAiKyIgdG8gc3BlY2lmeSBhIHBvc2l0aXZlIGRpZmZlcmVuY2UsCithICItIiB0byBzcGVjaWZ5IGEgbmVnYXRpdmUgZGlmZmVyZW5jZSwgb3IgY29uc2lzdHMgb2YgIioiIHRvIHNwZWNpZnkgdGhlIHNhbWUKK3N1YnBvc2l0aW9uLiBCZWNhdXNlIGFic29sdXRlIHN1YnBvc2l0aW9ucyBhbHdheXMgYXJlIHBvc2l0aXZlIChpZS4gbmV2ZXIKK3ByZWZpeGVkIGJ5ICItIiksIGFueSByZWxhdGl2ZSBzcGVjaWZpY2F0aW9uIGlzIG5vbi1hbWJpZ3VvdXM7IGFkZGl0aW9uYWxseSwKK2Fic29sdXRlIGFuZCByZWxhdGl2ZSBzdWJwb3NpdGlvbiBzcGVjaWZpY2F0aW9ucyBjYW4gYmUgbWl4ZWQgZnJlZWx5LgorQXNzdW1lIHRoZSBmb2xsb3dpbmcgZXhhbXBsZSAoc3VicG9zaXRpb25zIGNhbiBhbHdheXMgYmUgc3BlY2lmaWVkCithcyBoZXhhZGVjaW1hbCBudW1iZXJzLCBiZWdpbm5pbmcgd2l0aCAiMHgiKToKKzwvcD4KKzxwcmUgY2xhc3M9InNjcmVlbiI+cG9zaXRpb25zOiBpbnN0ciBsaW5lCitldmVudHM6IHRpY2tzCisKK2ZuPWZ1bmMKKzB4ODAwMDEyMzQgOTAgMQorMHg4MDAwMTIzNyA5MCA1CisweDgwMDAxMjM4IDkxIDY8L3ByZT4KKzxwPldpdGggc3VicG9zaXRpb24gY29tcHJlc3Npb24sIHRoaXMgbG9va3MgbGlrZQorPC9wPgorPHByZSBjbGFzcz0ic2NyZWVuIj5wb3NpdGlvbnM6IGluc3RyIGxpbmUKK2V2ZW50czogdGlja3MKKworZm49ZnVuYworMHg4MDAwMTIzNCA5MCAxCisrMyAqIDUKKysxICsxIDY8L3ByZT4KKzxwPlJlbWFyazogRm9yIGFzc2VtYmxlciBhbm5vdGF0aW9uIHRvIHdvcmssIGluc3RydWN0aW9uIGFkZHJlc3NlcyBoYXZlIHRvCitiZSBjb3JyZWN0ZWQgdG8gY29ycmVzcG9uZCB0byBhZGRyZXNzZXMgZm91bmQgaW4gdGhlIG9yaWdpbmFsIGJpbmFyeS4gSS5lLiBmb3IKK3JlbG9jYXRhYmxlIHNoYXJlZCBvYmplY3RzLCBvZnRlbiBhIGxvYWQgb2Zmc2V0IGhhcyB0byBiZSBzdWJ0cmFjdGVkLjwvcD4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDIiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJjbC1mb3JtYXQub3ZlcnZpZXcubWlzYyI+PC9hPjMuMS43LqBNaXNjZWxsYW5lb3VzPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QzIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoNCBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0iY2wtZm9ybWF0Lm92ZXJ2aWV3Lm1pc2Muc3VtbWFyeSI+PC9hPjMuMS43LjEuoENvc3QgU3VtbWFyeSBJbmZvcm1hdGlvbjwvaDQ+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD5Gb3IgdGhlIHZpc3VhbGl6YXRpb24gdG8gYmUgYWJsZSB0byBzaG93IGNvc3QgcGVyY2VudGFnZSwgYSBzdW0gb2YgdGhlCitjb3N0IG9mIHRoZSBmdWxsIHJ1biBoYXMgdG8gYmUga25vd24uIFVzdWFsbHksIGl0IGlzIGFzc3VtZWQgdGhhdCB0aGlzIGlzIHRoZQorc3VtIG9mIGFsbCBjb3N0IGxpbmVzIGluIGEgZmlsZS4gQnV0IHNvbWV0aW1lcywgdGhpcyBpcyBub3QgY29ycmVjdC4gVGh1cywgeW91CitjYW4gc3BlY2lmeSBhICJzdW1tYXJ5OiIgbGluZSBpbiB0aGUgaGVhZGVyIGdpdmluZyB0aGUgZnVsbCBjb3N0IGZvciB0aGUKK3Byb2ZpbGUgcnVuLiBBbiBpbXBvcnQgZmlsdGVyIG1heSB1c2UgdGhpcyB0byBzaG93IGEgcHJvZ3Jlc3MgYmFyCit3aGlsZSBsb2FkaW5nIGEgbGFyZ2UgZGF0YSBmaWxlLjwvcD4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDMiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGg0IGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJjbC1mb3JtYXQub3ZlcnZpZXcubWlzYy5ldmVudHMiPjwvYT4zLjEuNy4yLqBMb25nIE5hbWVzIGZvciBFdmVudCBUeXBlcyBhbmQgaW5oZXJpdGVkIFR5cGVzPC9oND48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPkV2ZW50IHR5cGVzIGZvciBjb3N0IGxpbmVzIGFyZSBzcGVjaWZpZWQgaW4gdGhlICJldmVudHM6IiBsaW5lIHdpdGggYW4KK2FiYnJldmlhdGVkIG5hbWUuIEZvciB2aXN1YWxpemF0aW9uLCBpdCBtYWtlcyBzZW5zZSB0byBiZSBhYmxlIHRvIHNwZWNpZnkgc29tZQorbG9uZ2VyLCBtb3JlIGRlc2NyaXB0aXZlIG5hbWUuIEZvciBhbiBldmVudCB0eXBlICJJciIgd2hpY2ggbWVhbnMgIkluc3RydWN0aW9uCitGZXRjaGVzIiwgdGhpcyBjYW4gYmUgc3BlY2lmaWVkIHRoZSBoZWFkZXIgbGluZQorPC9wPgorPHByZSBjbGFzcz0ic2NyZWVuIj5ldmVudDogSXIgOiBJbnN0cnVjdGlvbiBGZXRjaGVzCitldmVudHM6IElyIERyPC9wcmU+Cis8cD5JbiB0aGlzIGV4YW1wbGUsICJEciIgaXRzZWxmIGhhcyBubyBsb25nIG5hbWUgYXNzb2NpYXRlZC4gVGhlIG9yZGVyIG9mCisiZXZlbnQ6IiBsaW5lcyBhbmQgdGhlICJldmVudHM6IiBsaW5lIGlzIG9mIG5vIGltcG9ydGFuY2UuIEFkZGl0aW9uYWxseSwKK2luaGVyaXRlZCBldmVudCB0eXBlcyBjYW4gYmUgaW50cm9kdWNlZCBmb3Igd2hpY2ggbm8gcmF3IGRhdGEgaXMgYXZhaWxhYmxlLCBidXQKK3doaWNoIGFyZSBjYWxjdWxhdGVkIGZyb20gZ2l2ZW4gdHlwZXMuIFN1cHBvc2UgdGhlIGxhc3QgZXhhbXBsZSwgeW91IGNvdWxkIGFkZAorPC9wPgorPHByZSBjbGFzcz0ic2NyZWVuIj5ldmVudDogU3VtID0gSXIgKyBEcjwvcHJlPgorPHA+Cit0byBzcGVjaWZ5IGFuIGFkZGl0aW9uYWwgZXZlbnQgdHlwZSAiU3VtIiwgd2hpY2ggaXMgY2FsY3VsYXRlZCBieSBhZGRpbmcgY29zdHMKK2ZvciAiSXIgYW5kICJEciIuPC9wPgorPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDEiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj4KKzxhIG5hbWU9ImNsLWZvcm1hdC5yZWZlcmVuY2UiPjwvYT4zLjIuoFJlZmVyZW5jZTwvaDI+PC9kaXY+PC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MiI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9ImNsLWZvcm1hdC5yZWZlcmVuY2UuZ3JhbW1hciI+PC9hPjMuMi4xLqBHcmFtbWFyPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPgorPC9wPgorPHByZSBjbGFzcz0ic2NyZWVuIj5Qcm9maWxlRGF0YUZpbGUgOj0gRm9ybWF0VmVyc2lvbj8gQ3JlYXRvcj8gUGFydERhdGEqPC9wcmU+Cis8cD4KKzwvcD4KKzxwcmUgY2xhc3M9InNjcmVlbiI+Rm9ybWF0VmVyc2lvbiA6PSAidmVyc2lvbjogMVxuIjwvcHJlPgorPHA+Cis8L3A+Cis8cHJlIGNsYXNzPSJzY3JlZW4iPkNyZWF0b3IgOj0gImNyZWF0b3I6IiBOb05ld0xpbmVDaGFyKiAiXG4iPC9wcmU+Cis8cD4KKzwvcD4KKzxwcmUgY2xhc3M9InNjcmVlbiI+UGFydERhdGEgOj0gKEhlYWRlckxpbmUgIlxuIikrIChCb2R5TGluZSAiXG4iKSs8L3ByZT4KKzxwPgorPC9wPgorPHByZSBjbGFzcz0ic2NyZWVuIj5IZWFkZXJMaW5lIDo9IChlbXB0eSBsaW5lKQorICB8ICgnIycgTm9OZXdMaW5lQ2hhciopCisgIHwgUGFydERldGFpbAorICB8IERlc2NyaXB0aW9uCisgIHwgRXZlbnRTcGVjaWZpY2F0aW9uCisgIHwgQ29zdExpbmVEZWY8L3ByZT4KKzxwPgorPC9wPgorPHByZSBjbGFzcz0ic2NyZWVuIj5QYXJ0RGV0YWlsIDo9IFRhcmdldENvbW1hbmQgfCBUYXJnZXRJRDwvcHJlPgorPHA+Cis8L3A+Cis8cHJlIGNsYXNzPSJzY3JlZW4iPlRhcmdldENvbW1hbmQgOj0gImNtZDoiIFNwYWNlKiBOb05ld0xpbmVDaGFyKjwvcHJlPgorPHA+Cis8L3A+Cis8cHJlIGNsYXNzPSJzY3JlZW4iPlRhcmdldElEIDo9ICgicGlkInwidGhyZWFkInwicGFydCIpICI6IiBTcGFjZSogTnVtYmVyPC9wcmU+Cis8cD4KKzwvcD4KKzxwcmUgY2xhc3M9InNjcmVlbiI+RGVzY3JpcHRpb24gOj0gImRlc2M6IiBTcGFjZSogTmFtZSBTcGFjZSogIjoiIE5vTmV3TGluZUNoYXIqPC9wcmU+Cis8cD4KKzwvcD4KKzxwcmUgY2xhc3M9InNjcmVlbiI+RXZlbnRTcGVjaWZpY2F0aW9uIDo9ICJldmVudDoiIFNwYWNlKiBOYW1lIEluaGVyaXRlZERlZj8gTG9uZ05hbWVEZWY/PC9wcmU+Cis8cD4KKzwvcD4KKzxwcmUgY2xhc3M9InNjcmVlbiI+SW5oZXJpdGVkRGVmIDo9ICI9IiBJbmhlcml0ZWRFeHByPC9wcmU+Cis8cD4KKzwvcD4KKzxwcmUgY2xhc3M9InNjcmVlbiI+SW5oZXJpdGVkRXhwciA6PSBOYW1lCisgIHwgTnVtYmVyIFNwYWNlKiAoIioiIFNwYWNlKik/IE5hbWUKKyAgfCBJbmhlcml0ZWRFeHByIFNwYWNlKiAiKyIgU3BhY2UqIEluaGVyaXRlZEV4cHI8L3ByZT4KKzxwPgorPC9wPgorPHByZSBjbGFzcz0ic2NyZWVuIj5Mb25nTmFtZURlZiA6PSAiOiIgTm9OZXdMaW5lQ2hhcio8L3ByZT4KKzxwPgorPC9wPgorPHByZSBjbGFzcz0ic2NyZWVuIj5Db3N0TGluZURlZiA6PSAiZXZlbnRzOiIgU3BhY2UqIE5hbWUgKFNwYWNlKyBOYW1lKSoKKyAgfCAicG9zaXRpb25zOiIgImluc3RyIj8gKFNwYWNlKyAibGluZSIpPzwvcHJlPgorPHA+Cis8L3A+Cis8cHJlIGNsYXNzPSJzY3JlZW4iPkJvZHlMaW5lIDo9IChlbXB0eSBsaW5lKQorICB8ICgnIycgTm9OZXdMaW5lQ2hhciopCisgIHwgQ29zdExpbmUKKyAgfCBQb3NpdGlvblNwZWMKKyAgfCBDYWxsU3BlYworICB8IFVuY29uZEp1bXBTcGVjCisgIHwgQ29uZEp1bXBTcGVjPC9wcmU+Cis8cD4KKzwvcD4KKzxwcmUgY2xhc3M9InNjcmVlbiI+Q29zdExpbmUgOj0gU3ViUG9zaXRpb25MaXN0IENvc3RzPzwvcHJlPgorPHA+Cis8L3A+Cis8cHJlIGNsYXNzPSJzY3JlZW4iPlN1YlBvc2l0aW9uTGlzdCA6PSAoU3ViUG9zaXRpb24rIFNwYWNlKykrPC9wcmU+Cis8cD4KKzwvcD4KKzxwcmUgY2xhc3M9InNjcmVlbiI+U3ViUG9zaXRpb24gOj0gTnVtYmVyIHwgIisiIE51bWJlciB8ICItIiBOdW1iZXIgfCAiKiI8L3ByZT4KKzxwPgorPC9wPgorPHByZSBjbGFzcz0ic2NyZWVuIj5Db3N0cyA6PSAoTnVtYmVyIFNwYWNlKykrPC9wcmU+Cis8cD4KKzwvcD4KKzxwcmUgY2xhc3M9InNjcmVlbiI+UG9zaXRpb25TcGVjIDo9IFBvc2l0aW9uICI9IiBTcGFjZSogUG9zaXRpb25OYW1lPC9wcmU+Cis8cD4KKzwvcD4KKzxwcmUgY2xhc3M9InNjcmVlbiI+UG9zaXRpb24gOj0gQ29zdFBvc2l0aW9uIHwgQ2FsbGVkUG9zaXRpb248L3ByZT4KKzxwPgorPC9wPgorPHByZSBjbGFzcz0ic2NyZWVuIj5Db3N0UG9zaXRpb24gOj0gIm9iIiB8ICJmbCIgfCAiZmkiIHwgImZlIiB8ICJmbiI8L3ByZT4KKzxwPgorPC9wPgorPHByZSBjbGFzcz0ic2NyZWVuIj5DYWxsZWRQb3NpdGlvbiA6PSAiICJjb2IiIHwgImNmaSIgfCAiY2ZsIiB8ICJjZm4iPC9wcmU+Cis8cD4KKzwvcD4KKzxwcmUgY2xhc3M9InNjcmVlbiI+UG9zaXRpb25OYW1lIDo9ICggIigiIE51bWJlciAiKSIgKT8gKFNwYWNlKiBOb05ld0xpbmVDaGFyKiApPzwvcHJlPgorPHA+Cis8L3A+Cis8cHJlIGNsYXNzPSJzY3JlZW4iPkNhbGxTcGVjIDo9IENhbGxMaW5lICJcbiIgQ29zdExpbmU8L3ByZT4KKzxwPgorPC9wPgorPHByZSBjbGFzcz0ic2NyZWVuIj5DYWxsTGluZSA6PSAiY2FsbHM9IiBTcGFjZSogTnVtYmVyIFNwYWNlKyBTdWJQb3NpdGlvbkxpc3Q8L3ByZT4KKzxwPgorPC9wPgorPHByZSBjbGFzcz0ic2NyZWVuIj5VbmNvbmRKdW1wU3BlYyA6PSAianVtcD0iIFNwYWNlKiBOdW1iZXIgU3BhY2UrIFN1YlBvc2l0aW9uTGlzdDwvcHJlPgorPHA+Cis8L3A+Cis8cHJlIGNsYXNzPSJzY3JlZW4iPkNvbmRKdW1wU3BlYyA6PSAiamNuZD0iIFNwYWNlKiBOdW1iZXIgU3BhY2UrIE51bWJlciBTcGFjZSsgU3ViUG9zaXRpb25MaXN0PC9wcmU+Cis8cD4KKzwvcD4KKzxwcmUgY2xhc3M9InNjcmVlbiI+U3BhY2UgOj0gIiAiIHwgIlx0IjwvcHJlPgorPHA+Cis8L3A+Cis8cHJlIGNsYXNzPSJzY3JlZW4iPk51bWJlciA6PSBIZXhOdW1iZXIgfCAoRGlnaXQpKzwvcHJlPgorPHA+Cis8L3A+Cis8cHJlIGNsYXNzPSJzY3JlZW4iPkRpZ2l0IDo9ICIwIiB8IC4uLiB8ICI5IjwvcHJlPgorPHA+Cis8L3A+Cis8cHJlIGNsYXNzPSJzY3JlZW4iPkhleE51bWJlciA6PSAiMHgiIChEaWdpdCB8IEhleENoYXIpKzwvcHJlPgorPHA+Cis8L3A+Cis8cHJlIGNsYXNzPSJzY3JlZW4iPkhleENoYXIgOj0gImEiIHwgLi4uIHwgImYiIHwgIkEiIHwgLi4uIHwgIkYiPC9wcmU+Cis8cD4KKzwvcD4KKzxwcmUgY2xhc3M9InNjcmVlbiI+TmFtZSA9IEFscGhhIChEaWdpdCB8IEFscGhhKSo8L3ByZT4KKzxwPgorPC9wPgorPHByZSBjbGFzcz0ic2NyZWVuIj5BbHBoYSA9ICJhIiB8IC4uLiB8ICJ6IiB8ICJBIiB8IC4uLiB8ICJaIjwvcHJlPgorPHA+Cis8L3A+Cis8cHJlIGNsYXNzPSJzY3JlZW4iPk5vTmV3TGluZUNoYXIgOj0gYWxsIGNoYXJhY3RlcnMgd2l0aG91dCAiXG4iPC9wcmU+Cis8cD4KKzwvcD4KKzxwPkEgcHJvZmlsZSBkYXRhIGZpbGUgKCJQcm9maWxlRGF0YUZpbGUiKSBzdGFydHMgd2l0aCBiYXNpYyBpbmZvcm1hdGlvbgorICBzdWNoIGFzIHRoZSB2ZXJzaW9uIGFuZCBjcmVhdG9yIGluZm9ybWF0aW9uLCBhbmQgdGhlbiBoYXMgYSBsaXN0IG9mIHBhcnRzLCB3aGVyZQorICBlYWNoIHBhcnQgaGFzIGl0cyBvd24gaGVhZGVyIGFuZCBib2R5LiBQYXJ0cyB0eXBpY2FsbHkgYXJlIGRpZmZlcmVudCB0aHJlYWRzCisgIGFuZC9vciB0aW1lIHNwYW5zL3BoYXNlcyB3aXRoaW4gYSBwcm9maWxlZCBhcHBsaWNhdGlvbiBydW4uPC9wPgorPHA+Tm90ZSB0aGF0IGNhbGxncmluZF9hbm5vdGF0ZSBjdXJyZW50bHkgb25seSBzdXBwb3J0cyBwcm9maWxlIGRhdGEgZmlsZXMgd2l0aAorICBvbmUgcGFydC4gQ2FsbGdyaW5kIG1heSBwcm9kdWNlIG11bHRpcGxlIHBhcnRzIGZvciBvbmUgcHJvZmlsZSBydW4sIGJ1dCBkZWZhdWx0cworICB0byBvbmUgb3V0cHV0IGZpbGUgZm9yIGVhY2ggcGFydC48L3A+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0iY2wtZm9ybWF0LnJlZmVyZW5jZS5oZWFkZXIiPjwvYT4zLjIuMi6gRGVzY3JpcHRpb24gb2YgSGVhZGVyIExpbmVzPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPkJhc2ljIGluZm9ybWF0aW9uIGluIHRoZSBmaXJzdCBsaW5lcyBvZiBhIHByb2ZpbGUgZGF0YSBmaWxlOjwvcD4KKzxkaXYgY2xhc3M9Iml0ZW1pemVkbGlzdCI+PHVsIGNsYXNzPSJpdGVtaXplZGxpc3QiIHN0eWxlPSJsaXN0LXN0eWxlLXR5cGU6IGRpc2M7ICI+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj4KKzxwPjxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+dmVyc2lvbjogbnVtYmVyPC9jb2RlPiBbQ2FsbGdyaW5kXTwvcD4KKzxwPlRoaXMgaXMgdXNlZCB0byBkaXN0aW5ndWlzaCBmdXR1cmUgcHJvZmlsZSBkYXRhIGZvcm1hdHMuICBBIAorICAgIG1ham9yIHZlcnNpb24gb2YgMCBvciAxIGlzIHN1cHBvc2VkIHRvIGJlIHVwd2FyZHMgY29tcGF0aWJsZSB3aXRoIAorICAgIENhY2hlZ3JpbmQncyBmb3JtYXQuICBJdCBpcyBvcHRpb25hbDsgaWYgbm90IGFwcGVhcmluZywgdmVyc2lvbiAxIAorICAgIGlzIGFzc3VtZWQuICBPdGhlcndpc2UsIHRoaXMgaGFzIHRvIGJlIHRoZSBmaXJzdCBoZWFkZXIgbGluZS48L3A+Cis8L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+Cis8cD48Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmNyZWF0b3I6IHN0cmluZzwvY29kZT4gW0NhbGxncmluZF08L3A+Cis8cD5UaGlzIGlzIGFuIGFyYml0cmFyeSBzdHJpbmcgdG8gZGVub3RlIHRoZSBjcmVhdG9yIG9mIHRoaXMgZmlsZS4KKyAgICAgIE9wdGlvbmFsLjwvcD4KKzwvbGk+Cis8L3VsPjwvZGl2PgorPHA+VGhlIGhlYWRlciBmb3IgZWFjaCBwYXJ0IGhhcyBhbiBhcmJpdHJhcnkgbnVtYmVyIG9mIGxpbmVzIG9mIHRoZSBmb3JtYXQgCisia2V5OiB2YWx1ZSIuIFBvc3NpYmxlIDxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPmtleTwvZW0+PC9zcGFuPiB2YWx1ZXMgZm9yIHRoZSBoZWFkZXIgYXJlOjwvcD4KKzxkaXYgY2xhc3M9Iml0ZW1pemVkbGlzdCI+PHVsIGNsYXNzPSJpdGVtaXplZGxpc3QiIHN0eWxlPSJsaXN0LXN0eWxlLXR5cGU6IGRpc2M7ICI+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj4KKzxwPjxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+cGlkOiBwcm9jZXNzIGlkPC9jb2RlPiBbQ2FsbGdyaW5kXTwvcD4KKzxwPk9wdGlvbmFsLiBUaGlzIHNwZWNpZmllcyB0aGUgcHJvY2VzcyBJRCBvZiB0aGUgc3VwZXJ2aXNlZCBhcHBsaWNhdGlvbiAKKyAgICBmb3Igd2hpY2ggdGhpcyBwcm9maWxlIHdhcyBnZW5lcmF0ZWQuPC9wPgorPC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPgorPHA+PGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5jbWQ6IHByb2dyYW0gbmFtZSArIGFyZ3M8L2NvZGU+IFtDYWNoZWdyaW5kXTwvcD4KKzxwPk9wdGlvbmFsLiBUaGlzIHNwZWNpZmllcyB0aGUgZnVsbCBjb21tYW5kIGxpbmUgb2YgdGhlIHN1cGVydmlzZWQKKyAgICBhcHBsaWNhdGlvbiBmb3Igd2hpY2ggdGhpcyBwcm9maWxlIHdhcyBnZW5lcmF0ZWQuPC9wPgorPC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPgorPHA+PGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5wYXJ0OiBudW1iZXI8L2NvZGU+IFtDYWxsZ3JpbmRdPC9wPgorPHA+T3B0aW9uYWwuIFRoaXMgc3BlY2lmaWVzIGEgc2VxdWVudGlhbGx5IGluY3JlbWVudGVkIG51bWJlciBmb3IgZWFjaCBkdW1wIAorICAgIGdlbmVyYXRlZCwgc3RhcnRpbmcgYXQgMS48L3A+Cis8L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+Cis8cD48Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmRlc2M6IHR5cGU6IHZhbHVlPC9jb2RlPiBbQ2FjaGVncmluZF08L3A+Cis8cD5UaGlzIHNwZWNpZmllcyB2YXJpb3VzIGluZm9ybWF0aW9uIGZvciB0aGlzIGR1bXAuICBGb3Igc29tZSAKKyAgICB0eXBlcywgdGhlIHNlbWFudGljIGlzIGRlZmluZWQsIGJ1dCBhbnkgZGVzY3JpcHRpb24gdHlwZSBpcyBhbGxvd2VkLiAKKyAgICBVbmtub3duIHR5cGVzIHNob3VsZCBiZSBpZ25vcmVkLjwvcD4KKzxwPlRoZXJlIGFyZSB0aGUgdHlwZXMgIkkxIGNhY2hlIiwgIkQxIGNhY2hlIiwgIkxMIGNhY2hlIiwgd2hpY2ggCisgICAgc3BlY2lmeSBwYXJhbWV0ZXJzIHVzZWQgZm9yIHRoZSBjYWNoZSBzaW11bGF0b3IuICBUaGVzZSBhcmUgdGhlIG9ubHkKKyAgICB0eXBlcyBvcmlnaW5hbGx5IHVzZWQgYnkgQ2FjaGVncmluZC4gIEFkZGl0aW9uYWxseSwgQ2FsbGdyaW5kIHVzZXMgCisgICAgdGhlIGZvbGxvd2luZyB0eXBlczogICJUaW1lcmFuZ2UiIGdpdmVzIGEgcm91Z2ggcmFuZ2Ugb2YgdGhlIGJhc2ljCisgICAgYmxvY2sgY291bnRlciwgZm9yIHdoaWNoIHRoZSBjb3N0IG9mIHRoaXMgZHVtcCB3YXMgY29sbGVjdGVkLiAKKyAgICBUeXBlICJUcmlnZ2VyIiBzdGF0ZXMgdGhlIHJlYXNvbiBvZiB3aHkgdGhpcyB0cmFjZSB3YXMgZ2VuZXJhdGVkLgorICAgIEUuZy4gcHJvZ3JhbSB0ZXJtaW5hdGlvbiBvciBmb3JjZWQgaW50ZXJhY3RpdmUgZHVtcC48L3A+Cis8L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+Cis8cD48Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPnBvc2l0aW9uczogW2luc3RyXSBbbGluZV08L2NvZGU+IFtDYWxsZ3JpbmRdPC9wPgorPHA+Rm9yIGNvc3QgbGluZXMsIHRoaXMgZGVmaW5lcyB0aGUgc2VtYW50aWMgb2YgdGhlIGZpcnN0IG51bWJlcnMuIAorICAgIEFueSBjb21iaW5hdGlvbiBvZiAiaW5zdHIiLCAiYmIiIGFuZCAibGluZSIgaXMgYWxsb3dlZCwgYnV0IGhhcyB0byBiZSAKKyAgICBpbiB0aGlzIG9yZGVyIHdoaWNoIGNvcnJlc3BvbmRzIHRvIHBvc2l0aW9uIG51bWJlcnMgYXQgdGhlIHN0YXJ0IG9mIAorICAgIHRoZSBjb3N0IGxpbmVzIGxhdGVyIGluIHRoZSBmaWxlLjwvcD4KKzxwPklmICJpbnN0ciIgaXMgc3BlY2lmaWVkLCB0aGUgcG9zaXRpb24gaXMgdGhlIGFkZHJlc3Mgb2YgYW4gCisgICAgaW5zdHJ1Y3Rpb24gd2hvc2UgZXhlY3V0aW9uIHJhaXNlZCB0aGUgZXZlbnRzIGdpdmVuIGxhdGVyIG9uIHRoZSAKKyAgICBsaW5lLiAgVGhpcyBhZGRyZXNzIGlzIHJlbGF0aXZlIHRvIHRoZSBvZmZzZXQgb2YgdGhlIGJpbmFyeS9zaGFyZWQgCisgICAgbGlicmFyeSBmaWxlIHRvIG5vdCBoYXZlIHRvIHNwZWNpZnkgcmVsb2NhdGlvbiBpbmZvLiAgRm9yICJsaW5lIiwgCisgICAgdGhlIHBvc2l0aW9uIGlzIHRoZSBsaW5lIG51bWJlciBvZiBhIHNvdXJjZSBmaWxlLCB3aGljaCBpcyAKKyAgICByZXNwb25zaWJsZSBmb3IgdGhlIGV2ZW50cyByYWlzZWQuIE5vdGUgdGhhdCB0aGUgbWFwcGluZyBvZiAiaW5zdHIiCisgICAgYW5kICJsaW5lIiBwb3NpdGlvbnMgYXJlIGdpdmVuIGJ5IHRoZSBkZWJ1Z2dpbmcgbGluZSBpbmZvcm1hdGlvbgorICAgIHByb2R1Y2VkIGJ5IHRoZSBjb21waWxlci48L3A+Cis8cD5UaGlzIGhlYWRlciBsaW5lIGlzIG9wdGlvbmFsLCBkZWZhdWx0aW5nIHRvICJwb3NpdGlvbnM6CisgICAgbGluZSIgaWYgbm90IHNwZWNpZmllZC48L3A+Cis8L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+Cis8cD48Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmV2ZW50czogZXZlbnQgdHlwZSBhYmJyZXZpYXRpb25zPC9jb2RlPiBbQ2FjaGVncmluZF08L3A+Cis8cD5BIGxpc3Qgb2Ygc2hvcnQgbmFtZXMgb2YgdGhlIGV2ZW50IHR5cGVzIGxvZ2dlZCBpbiBjb3N0CisgICAgICBsaW5lcyBpbiB0aGlzIHBhcnQgb2YgdGhlIHByb2ZpbGUgZGF0YSBmaWxlLiBBcmJpdHJhcnkgc2hvcnQKKyAgICAgIG5hbWVzIGFyZSBhbGxvd2VkLiAgVGhlIG9yZGVyIGdpdmVuIHNwZWNpZmllcyB0aGUgcmVxdWlyZWQgb3JkZXIKKyAgICAgIGluIGNvc3QgbGluZXMuIFRodXMsIHRoZSBmaXJzdCBldmVudCB0eXBlIGlzIHRoZSBzZWNvbmQgb3IgdGhpcmQKKyAgICAgIG51bWJlciBpbiBhIGNvc3QgbGluZSwgZGVwZW5kaW5nIG9uIHRoZSB2YWx1ZSBvZiAicG9zaXRpb25zIi4KKyAgICAgIFJlcXVpcmVkIHRvIGFwcGVhciBmb3IgZWFjaCBoZWFkZXIgcGFydCBleGFjdGx5IG9uY2UuPC9wPgorPC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPgorPHA+PGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5zdW1tYXJ5OiBjb3N0czwvY29kZT4gW0NhbGxncmluZF08L3A+Cis8cD5PcHRpb25hbC4gVGhpcyBoZWFkZXIgbGluZSBzcGVjaWZpZXMgYSBzdW1tYXJ5IGNvc3QsIHdoaWNoIHNob3VsZCBiZQorICAgIGVxdWFsIG9yIGxhcmdlciB0aGFuIGEgdG90YWwgb3ZlciBhbGwgc2VsZiBjb3N0cy4gSXQgbWF5IGJlIGxhcmdlciBhcworICAgIHRoZSBjb3N0IGxpbmVzIG1heSBub3QgcmVwcmVzZW50IGFsbCBjb3N0IG9mIHRoZSBwcm9ncmFtIHJ1bi48L3A+Cis8L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+Cis8cD48Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPnRvdGFsczogY29zdHM8L2NvZGU+IFtDYWNoZWdyaW5kXTwvcD4KKzxwPk9wdGlvbmFsLiBTaG91bGQgYXBwZWFyIGF0IHRoZSBlbmQgb2YgdGhlIGZpbGUgKGFsdGhvdWdoCisgICAgbG9va2luZyBsaWtlIGEgaGVhZGVyIGxpbmUpLiBNdXN0IGdpdmUgdGhlIHRvdGFsIG9mIGFsbCBjb3N0IGxpbmVzLAorICAgIHRvIGFsbG93IGZvciBhIGNvbnNpc3RlbmN5IGNoZWNrLjwvcD4KKzwvbGk+Cis8L3VsPjwvZGl2PgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MiI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9ImNsLWZvcm1hdC5yZWZlcmVuY2UuYm9keSI+PC9hPjMuMi4zLqBEZXNjcmlwdGlvbiBvZiBCb2R5IExpbmVzPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPlRoZSByZWd1bGFyIGJvZHkgbGluZSBpcyBhIGNvc3QgbGluZSBjb25zaXN0aW5nIG9mIG9uZSBvciB0d28KK3Bvc2l0aW9uIG51bWJlcnMgKGRlcGVuZGluZyBvbiAicG9zaXRpb25zOiIgaGVhZGVyIGxpbmUsIHNlZSBhYm92ZSkKK2FuZCBhbiBhcnJheSBvZiBjb3N0IG51bWJlcnMuIEEgcG9zaXRpb24gbnVtYmVyIGVpdGhlciBpcyBhCitsaW5lIG51bWJlcnMgaW50byBhIHNvdXJjZSBmaWxlIG9yIGFuIGluc3RydWN0aW9uIGFkZHJlc3Mgd2l0aGluIGJpbmFyeQorY29kZSwgd2l0aCBzb3VyY2UvYmluYXJ5IGZpbGUgbmFtZXMgc3BlY2lmaWVkIGFzIHBvc2l0aW9uIG5hbWVzIChzZWUKK2JlbG93KS4gVGhlIGNvc3QgbnVtYmVycyBnZXQgbWFwcGVkIHRvIGV2ZW50IHR5cGVzIGluIHRoZSBzYW1lIG9yZGVyCithcyBzcGVjaWZpZWQgaW4gdGhlICJldmVudHM6IiBoZWFkZXIgbGluZS4gSWYgbGVzcyBudW1iZXJzIHRoYW4gZXZlbnQKK3R5cGVzIGFyZSBnaXZlbiwgdGhlIGNvc3RzIGRlZmF1bHQgdG8gemVybyBmb3IgdGhlIHJlbWFpbmluZyBldmVudAordHlwZXMuPC9wPgorPHA+RnVydGhlciwgdGhlcmUgZXhpc3QgbGluZXMKKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+c3BlYz1wb3NpdGlvbiBuYW1lPC9jb2RlPi4gIEEgcG9zaXRpb24gbmFtZQoraXMgYW4gYXJiaXRyYXJ5IHN0cmluZy4gSWYgaXQgc3RhcnRzIHdpdGggIigiIGFuZCBhCitkaWdpdCwgaXQncyBhIHN0cmluZyBpbiBjb21wcmVzc2VkIGZvcm1hdC4gIE90aGVyd2lzZSBpdCdzIHRoZSByZWFsCitwb3NpdGlvbiBzdHJpbmcuICBUaGlzIGFsbG93cyBmb3IgZmlsZSBhbmQgc3ltYm9sIG5hbWVzIGFzIHBvc2l0aW9uCitzdHJpbmdzLCBhcyB0aGVzZSBuZXZlciBzdGFydCB3aXRoICIoIiArIDxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPmRpZ2l0PC9lbT48L3NwYW4+LgorVGhlIGNvbXByZXNzZWQgZm9ybWF0IGlzIGVpdGhlciAiKCIgPHNwYW4gY2xhc3M9ImVtcGhhc2lzIj48ZW0+bnVtYmVyPC9lbT48L3NwYW4+ICIpIgorPHNwYW4gY2xhc3M9ImVtcGhhc2lzIj48ZW0+c3BhY2U8L2VtPjwvc3Bhbj4gPHNwYW4gY2xhc3M9ImVtcGhhc2lzIj48ZW0+cG9zaXRpb248L2VtPjwvc3Bhbj4gb3Igb25seSAKKyIoIiA8c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT5udW1iZXI8L2VtPjwvc3Bhbj4gIikiLiAgVGhlIGZpcnN0IHJlbGF0ZXMKKzxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPnBvc2l0aW9uPC9lbT48L3NwYW4+IHRvIDxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPm51bWJlcjwvZW0+PC9zcGFuPiBpbiB0aGUKK2NvbnRleHQgb2YgdGhlIGdpdmVuIGZvcm1hdCBzcGVjaWZpY2F0aW9uIGZyb20gdGhpcyBsaW5lIHRvIHRoZSBlbmQgb2YKK3RoZSBmaWxlOyBpdCBtYWtlcyB0aGUgKDxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPm51bWJlcjwvZW0+PC9zcGFuPikgYW4gYWxpYXMgZm9yCis8c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT5wb3NpdGlvbjwvZW0+PC9zcGFuPi4gIENvbXByZXNzZWQgZm9ybWF0IGlzIGFsd2F5cworb3B0aW9uYWwuPC9wPgorPHA+UG9zaXRpb24gc3BlY2lmaWNhdGlvbnMgYWxsb3dlZDo8L3A+Cis8ZGl2IGNsYXNzPSJpdGVtaXplZGxpc3QiPjx1bCBjbGFzcz0iaXRlbWl6ZWRsaXN0IiBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOiBkaXNjOyAiPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+Cis8cD48Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPm9iPTwvY29kZT4gW0NhbGxncmluZF08L3A+Cis8cD5UaGUgRUxGIG9iamVjdCB3aGVyZSB0aGUgY29zdCBvZiBuZXh0IGNvc3QgbGluZXMgaGFwcGVucy48L3A+Cis8L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+PGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5mbD08L2NvZGU+IFtDYWNoZWdyaW5kXTwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+PGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5maT08L2NvZGU+IFtDYWNoZWdyaW5kXTwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+Cis8cD48Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmZlPTwvY29kZT4gW0NhY2hlZ3JpbmRdPC9wPgorPHA+VGhlIHNvdXJjZSBmaWxlIGluY2x1ZGluZyB0aGUgY29kZSB3aGljaCBpcyByZXNwb25zaWJsZSBmb3IKKyAgICB0aGUgY29zdCBvZiBuZXh0IGNvc3QgbGluZXMuICJmaT0iLyJmZT0iIGlzIHVzZWQgd2hlbiB0aGUgc291cmNlCisgICAgZmlsZSBjaGFuZ2VzIGluc2lkZSBvZiBhIGZ1bmN0aW9uLCBpLmUuIGZvciBpbmxpbmVkIGNvZGUuPC9wPgorPC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPgorPHA+PGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5mbj08L2NvZGU+IFtDYWNoZWdyaW5kXTwvcD4KKzxwPlRoZSBuYW1lIG9mIHRoZSBmdW5jdGlvbiB3aGVyZSB0aGUgY29zdCBvZiBuZXh0IGNvc3QgbGluZXMgCisgICAgaGFwcGVucy48L3A+Cis8L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+Cis8cD48Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmNvYj08L2NvZGU+IFtDYWxsZ3JpbmRdPC9wPgorPHA+VGhlIEVMRiBvYmplY3Qgb2YgdGhlIHRhcmdldCBvZiB0aGUgbmV4dCBjYWxsIGNvc3QgbGluZXMuPC9wPgorPC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPgorPHA+PGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5jZmk9PC9jb2RlPiBbQ2FsbGdyaW5kXTwvcD4KKzxwPlRoZSBzb3VyY2UgZmlsZSBpbmNsdWRpbmcgdGhlIGNvZGUgb2YgdGhlIHRhcmdldCBvZiB0aGUKKyAgICBuZXh0IGNhbGwgY29zdCBsaW5lcy48L3A+Cis8L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+Cis8cD48Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmNmbD08L2NvZGU+IFtDYWxsZ3JpbmRdPC9wPgorPHA+QWx0ZXJuYXRpdmUgc3BlbGxpbmcgZm9yIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+Y2ZpPTwvY29kZT4KKyAgICBzcGVjaWZpY2F0aW9uIChiZWNhdXNlIG9mIGhpc3RvcmljYWwgcmVhc29ucykuPC9wPgorPC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPgorPHA+PGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5jZm49PC9jb2RlPiBbQ2FsbGdyaW5kXTwvcD4KKzxwPlRoZSBuYW1lIG9mIHRoZSB0YXJnZXQgZnVuY3Rpb24gb2YgdGhlIG5leHQgY2FsbCBjb3N0IAorICAgIGxpbmVzLjwvcD4KKzwvbGk+Cis8L3VsPjwvZGl2PgorPHA+VGhlIGxhc3QgdHlwZSBvZiBib2R5IGxpbmUgcHJvdmlkZXMgc3BlY2lmaWMgY29zdHMgbm90IGp1c3QKK3JlbGF0ZWQgdG8gb25lIHBvc2l0aW9uIGFzIHJlZ3VsYXIgY29zdCBsaW5lcy4gSXQgc3RhcnRzIHdpdGggc3BlY2lmaWMKK3N0cmluZ3Mgc2ltaWxhciB0byBwb3NpdGlvbiBuYW1lIHNwZWNpZmljYXRpb25zLjwvcD4KKzxkaXYgY2xhc3M9Iml0ZW1pemVkbGlzdCI+PHVsIGNsYXNzPSJpdGVtaXplZGxpc3QiIHN0eWxlPSJsaXN0LXN0eWxlLXR5cGU6IGRpc2M7ICI+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj4KKzxwPjxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+Y2FsbHM9Y291bnQgdGFyZ2V0LXBvc2l0aW9uPC9jb2RlPiBbQ2FsbGdyaW5kXTwvcD4KKzxwPkNhbGwgZXhlY3V0ZWQgImNvdW50IiB0aW1lcyB0byAidGFyZ2V0LXBvc2l0aW9uIi4KKyAgICBBZnRlciBhICJjYWxscz0iIGxpbmUgdGhlcmUgTVVTVCBiZSBhIGNvc3QgbGluZS4gVGhpcyBwcm92aWRlcyB0aGUgc291cmNlIHBvc2l0aW9uCisgICAgb2YgdGhlIGNhbGwgYW5kIHRoZSBjb3N0IHNwZW50IGluIHRoZSBjYWxsZWQgZnVuY3Rpb24gaW4gdG90YWwuPC9wPgorPC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPgorPHA+PGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5qdW1wPWNvdW50IHRhcmdldC1wb3NpdGlvbjwvY29kZT4gW0NhbGxncmluZF08L3A+Cis8cD5VbmNvbmRpdGlvbmFsIGp1bXAsIGV4ZWN1dGVkICJjb3VudCIgdGltZXMsIHRvICJ0YXJnZXQtcG9zaXRpb24iLjwvcD4KKzwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj4KKzxwPjxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+amNuZD1leGUtY291bnQganVtcC1jb3VudCB0YXJnZXQtcG9zaXRpb248L2NvZGU+IFtDYWxsZ3JpbmRdPC9wPgorPHA+Q29uZGl0aW9uYWwganVtcCwgZXhlY3V0ZWQgImV4ZS1jb3VudCIgdGltZXMgd2l0aCAianVtcC1jb3VudCIganVtcHMKKyAgICBoYXBwZW5pbmcgKHJlc3QgaXMgZmFsbC10aHJvdWdoKSB0byAidGFyZ2V0LXBvc2l0aW9uIi48L3A+Cis8L2xpPgorPC91bD48L2Rpdj4KKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKzxkaXY+Cis8YnI+PHRhYmxlIGNsYXNzPSJuYXYiIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0iMyIgY2VsbHBhZGRpbmc9IjIiIGJvcmRlcj0iMCIgc3VtbWFyeT0iTmF2aWdhdGlvbiBmb290ZXIiPgorPHRyPgorPHRkIHJvd3NwYW49IjIiIHdpZHRoPSI0MCUiIGFsaWduPSJsZWZ0Ij4KKzxhIGFjY2Vzc2tleT0icCIgaHJlZj0ibWFudWFsLXdyaXRpbmctdG9vbHMuaHRtbCI+Jmx0OyZsdDugMi6gV3JpdGluZyBhIE5ldyBWYWxncmluZCBUb29sPC9hPqA8L3RkPgorPHRkIHdpZHRoPSIyMCUiIGFsaWduPSJjZW50ZXIiPjxhIGFjY2Vzc2tleT0idSIgaHJlZj0idGVjaC1kb2NzLmh0bWwiPlVwPC9hPjwvdGQ+Cis8dGQgcm93c3Bhbj0iMiIgd2lkdGg9IjQwJSIgYWxpZ249InJpZ2h0Ij6gPGEgYWNjZXNza2V5PSJuIiBocmVmPSJkaXN0Lmh0bWwiPlZhbGdyaW5kIERpc3RyaWJ1dGlvbiBEb2N1bWVudHOgJmd0OyZndDs8L2E+Cis8L3RkPgorPC90cj4KKzx0cj48dGQgd2lkdGg9IjIwJSIgYWxpZ249ImNlbnRlciI+PGEgYWNjZXNza2V5PSJoIiBocmVmPSJpbmRleC5odG1sIj5Ib21lPC9hPjwvdGQ+PC90cj4KKzwvdGFibGU+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL2RvY3MvaHRtbC9jbC1tYW51YWwuaHRtbCBiL2RvY3MvaHRtbC9jbC1tYW51YWwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNWYyOWNmCi0tLSAvZGV2L251bGwKKysrIGIvZG9jcy9odG1sL2NsLW1hbnVhbC5odG1sCkBAIC0wLDAgKzEsMTE0NyBAQAorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiPgorPHRpdGxlPjYuoENhbGxncmluZDogYSBjYWxsLWdyYXBoIGdlbmVyYXRpbmcgY2FjaGUgYW5kIGJyYW5jaCBwcmVkaWN0aW9uIHByb2ZpbGVyPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9InZnX2Jhc2ljLmNzcyI+Cis8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkRvY0Jvb2sgWFNMIFN0eWxlc2hlZXRzIFYxLjc4LjEiPgorPGxpbmsgcmVsPSJob21lIiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0iVmFsZ3JpbmQgRG9jdW1lbnRhdGlvbiI+Cis8bGluayByZWw9InVwIiBocmVmPSJtYW51YWwuaHRtbCIgdGl0bGU9IlZhbGdyaW5kIFVzZXIgTWFudWFsIj4KKzxsaW5rIHJlbD0icHJldiIgaHJlZj0iY2ctbWFudWFsLmh0bWwiIHRpdGxlPSI1LqBDYWNoZWdyaW5kOiBhIGNhY2hlIGFuZCBicmFuY2gtcHJlZGljdGlvbiBwcm9maWxlciI+Cis8bGluayByZWw9Im5leHQiIGhyZWY9ImhnLW1hbnVhbC5odG1sIiB0aXRsZT0iNy6gSGVsZ3JpbmQ6IGEgdGhyZWFkIGVycm9yIGRldGVjdG9yIj4KKzwvaGVhZD4KKzxib2R5IGJnY29sb3I9IndoaXRlIiB0ZXh0PSJibGFjayIgbGluaz0iIzAwMDBGRiIgdmxpbms9IiM4NDAwODQiIGFsaW5rPSIjMDAwMEZGIj4KKzxkaXY+PHRhYmxlIGNsYXNzPSJuYXYiIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0iMyIgY2VsbHBhZGRpbmc9IjMiIGJvcmRlcj0iMCIgc3VtbWFyeT0iTmF2aWdhdGlvbiBoZWFkZXIiPjx0cj4KKzx0ZCB3aWR0aD0iMjJweCIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPjxhIGFjY2Vzc2tleT0icCIgaHJlZj0iY2ctbWFudWFsLmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvcHJldi5wbmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIyMSIgYm9yZGVyPSIwIiBhbHQ9IlByZXYiPjwvYT48L3RkPgorPHRkIHdpZHRoPSIyNXB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJtYW51YWwuaHRtbCI+PGltZyBzcmM9ImltYWdlcy91cC5wbmciIHdpZHRoPSIyMSIgaGVpZ2h0PSIxOCIgYm9yZGVyPSIwIiBhbHQ9IlVwIj48L2E+PC90ZD4KKzx0ZCB3aWR0aD0iMzFweCIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iaW5kZXguaHRtbCI+PGltZyBzcmM9ImltYWdlcy9ob21lLnBuZyIgd2lkdGg9IjI3IiBoZWlnaHQ9IjIwIiBib3JkZXI9IjAiIGFsdD0iVXAiPjwvYT48L3RkPgorPHRoIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj5WYWxncmluZCBVc2VyIE1hbnVhbDwvdGg+Cis8dGQgd2lkdGg9IjIycHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImhnLW1hbnVhbC5odG1sIj48aW1nIHNyYz0iaW1hZ2VzL25leHQucG5nIiB3aWR0aD0iMTgiIGhlaWdodD0iMjEiIGJvcmRlcj0iMCIgYWx0PSJOZXh0Ij48L2E+PC90ZD4KKzwvdHI+PC90YWJsZT48L2Rpdj4KKzxkaXYgY2xhc3M9ImNoYXB0ZXIiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgxIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJjbC1tYW51YWwiPjwvYT42LqBDYWxsZ3JpbmQ6IGEgY2FsbC1ncmFwaCBnZW5lcmF0aW5nIGNhY2hlIGFuZCBicmFuY2ggcHJlZGljdGlvbiBwcm9maWxlcjwvaDE+PC9kaXY+PC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJ0b2MiPgorPHA+PGI+VGFibGUgb2YgQ29udGVudHM8L2I+PC9wPgorPGRsIGNsYXNzPSJ0b2MiPgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0iY2wtbWFudWFsLmh0bWwjY2wtbWFudWFsLnVzZSI+Ni4xLiBPdmVydmlldzwvYT48L3NwYW4+PC9kdD4KKzxkZD48ZGw+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJjbC1tYW51YWwuaHRtbCNjbC1tYW51YWwuZnVuY3Rpb25hbGl0eSI+Ni4xLjEuIEZ1bmN0aW9uYWxpdHk8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJjbC1tYW51YWwuaHRtbCNjbC1tYW51YWwuYmFzaWNzIj42LjEuMi4gQmFzaWMgVXNhZ2U8L2E+PC9zcGFuPjwvZHQ+Cis8L2RsPjwvZGQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJjbC1tYW51YWwuaHRtbCNjbC1tYW51YWwudXNhZ2UiPjYuMi4gQWR2YW5jZWQgVXNhZ2U8L2E+PC9zcGFuPjwvZHQ+Cis8ZGQ+PGRsPgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iY2wtbWFudWFsLmh0bWwjY2wtbWFudWFsLmR1bXBzIj42LjIuMS4gTXVsdGlwbGUgcHJvZmlsaW5nIGR1bXBzIGZyb20gb25lIHByb2dyYW0gcnVuPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iY2wtbWFudWFsLmh0bWwjY2wtbWFudWFsLmxpbWl0cyI+Ni4yLjIuIExpbWl0aW5nIHRoZSByYW5nZSBvZiBjb2xsZWN0ZWQgZXZlbnRzPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iY2wtbWFudWFsLmh0bWwjY2wtbWFudWFsLmJ1c2V2ZW50cyI+Ni4yLjMuIENvdW50aW5nIGdsb2JhbCBidXMgZXZlbnRzPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iY2wtbWFudWFsLmh0bWwjY2wtbWFudWFsLmN5Y2xlcyI+Ni4yLjQuIEF2b2lkaW5nIGN5Y2xlczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9ImNsLW1hbnVhbC5odG1sI2NsLW1hbnVhbC5mb3JraW5ncHJvZ3JhbXMiPjYuMi41LiBGb3JraW5nIFByb2dyYW1zPC9hPjwvc3Bhbj48L2R0PgorPC9kbD48L2RkPgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0iY2wtbWFudWFsLmh0bWwjY2wtbWFudWFsLm9wdGlvbnMiPjYuMy4gQ2FsbGdyaW5kIENvbW1hbmQtbGluZSBPcHRpb25zPC9hPjwvc3Bhbj48L2R0PgorPGRkPjxkbD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9ImNsLW1hbnVhbC5odG1sI2NsLW1hbnVhbC5vcHRpb25zLmNyZWF0aW9uIj42LjMuMS4gRHVtcCBjcmVhdGlvbiBvcHRpb25zPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iY2wtbWFudWFsLmh0bWwjY2wtbWFudWFsLm9wdGlvbnMuYWN0aXZpdHkiPjYuMy4yLiBBY3Rpdml0eSBvcHRpb25zPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iY2wtbWFudWFsLmh0bWwjY2wtbWFudWFsLm9wdGlvbnMuY29sbGVjdGlvbiI+Ni4zLjMuIERhdGEgY29sbGVjdGlvbiBvcHRpb25zPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iY2wtbWFudWFsLmh0bWwjY2wtbWFudWFsLm9wdGlvbnMuc2VwYXJhdGlvbiI+Ni4zLjQuIENvc3QgZW50aXR5IHNlcGFyYXRpb24gb3B0aW9uczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9ImNsLW1hbnVhbC5odG1sI2NsLW1hbnVhbC5vcHRpb25zLnNpbXVsYXRpb24iPjYuMy41LiBTaW11bGF0aW9uIG9wdGlvbnM8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJjbC1tYW51YWwuaHRtbCNjbC1tYW51YWwub3B0aW9ucy5jYWNoZXNpbXVsYXRpb24iPjYuMy42LiBDYWNoZSBzaW11bGF0aW9uIG9wdGlvbnM8L2E+PC9zcGFuPjwvZHQ+Cis8L2RsPjwvZGQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJjbC1tYW51YWwuaHRtbCNjbC1tYW51YWwubW9uaXRvci1jb21tYW5kcyI+Ni40LiBDYWxsZ3JpbmQgTW9uaXRvciBDb21tYW5kczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9ImNsLW1hbnVhbC5odG1sI2NsLW1hbnVhbC5jbGllbnRyZXF1ZXN0cyI+Ni41LiBDYWxsZ3JpbmQgc3BlY2lmaWMgY2xpZW50IHJlcXVlc3RzPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0iY2wtbWFudWFsLmh0bWwjY2wtbWFudWFsLmNhbGxncmluZF9hbm5vdGF0ZS1vcHRpb25zIj42LjYuIGNhbGxncmluZF9hbm5vdGF0ZSBDb21tYW5kLWxpbmUgT3B0aW9uczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9ImNsLW1hbnVhbC5odG1sI2NsLW1hbnVhbC5jYWxsZ3JpbmRfY29udHJvbC1vcHRpb25zIj42LjcuIGNhbGxncmluZF9jb250cm9sIENvbW1hbmQtbGluZSBPcHRpb25zPC9hPjwvc3Bhbj48L2R0PgorPC9kbD4KKzwvZGl2PgorPHA+VG8gdXNlIHRoaXMgdG9vbCwgeW91IG11c3Qgc3BlY2lmeQorPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS10b29sPWNhbGxncmluZDwvY29kZT4gb24gdGhlCitWYWxncmluZCBjb21tYW5kIGxpbmUuPC9wPgorPGRpdiBjbGFzcz0ic2VjdDEiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj4KKzxhIG5hbWU9ImNsLW1hbnVhbC51c2UiPjwvYT42LjEuoE92ZXJ2aWV3PC9oMj48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPkNhbGxncmluZCBpcyBhIHByb2ZpbGluZyB0b29sIHRoYXQgcmVjb3JkcyB0aGUgY2FsbCBoaXN0b3J5IGFtb25nCitmdW5jdGlvbnMgaW4gYSBwcm9ncmFtJ3MgcnVuIGFzIGEgY2FsbC1ncmFwaC4KK0J5IGRlZmF1bHQsIHRoZSBjb2xsZWN0ZWQgZGF0YSBjb25zaXN0cyBvZgordGhlIG51bWJlciBvZiBpbnN0cnVjdGlvbnMgZXhlY3V0ZWQsIHRoZWlyIHJlbGF0aW9uc2hpcAordG8gc291cmNlIGxpbmVzLCB0aGUgY2FsbGVyL2NhbGxlZSByZWxhdGlvbnNoaXAgYmV0d2VlbiBmdW5jdGlvbnMsCithbmQgdGhlIG51bWJlcnMgb2Ygc3VjaCBjYWxscy4KK09wdGlvbmFsbHksIGNhY2hlIHNpbXVsYXRpb24gYW5kL29yIGJyYW5jaCBwcmVkaWN0aW9uIChzaW1pbGFyIHRvIENhY2hlZ3JpbmQpCitjYW4gcHJvZHVjZSBmdXJ0aGVyIGluZm9ybWF0aW9uIGFib3V0IHRoZSBydW50aW1lIGJlaGF2aW9yIG9mIGFuIGFwcGxpY2F0aW9uLgorPC9wPgorPHA+VGhlIHByb2ZpbGUgZGF0YSBpcyB3cml0dGVuIG91dCB0byBhIGZpbGUgYXQgcHJvZ3JhbQordGVybWluYXRpb24uIEZvciBwcmVzZW50YXRpb24gb2YgdGhlIGRhdGEsIGFuZCBpbnRlcmFjdGl2ZSBjb250cm9sCitvZiB0aGUgcHJvZmlsaW5nLCB0d28gY29tbWFuZCBsaW5lIHRvb2xzIGFyZSBwcm92aWRlZDo8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjxkbCBjbGFzcz0idmFyaWFibGVsaXN0Ij4KKzxkdD48c3BhbiBjbGFzcz0idGVybSI+PHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+Y2FsbGdyaW5kX2Fubm90YXRlPC9zdHJvbmc+PC9zcGFuPjwvc3Bhbj48L2R0PgorPGRkPgorPHA+VGhpcyBjb21tYW5kIHJlYWRzIGluIHRoZSBwcm9maWxlIGRhdGEsIGFuZCBwcmludHMgYQorICAgIHNvcnRlZCBsaXN0cyBvZiBmdW5jdGlvbnMsIG9wdGlvbmFsbHkgd2l0aCBzb3VyY2UgYW5ub3RhdGlvbi48L3A+Cis8cD5Gb3IgZ3JhcGhpY2FsIHZpc3VhbGl6YXRpb24gb2YgdGhlIGRhdGEsIHRyeQorICAgIDxhIGNsYXNzPSJ1bGluayIgaHJlZj0iaHR0cDovL2tjYWNoZWdyaW5kLnNvdXJjZWZvcmdlLm5ldC9jZ2ktYmluL3Nob3cuY2dpL0tjYWNoZUdyaW5kSW5kZXgiIHRhcmdldD0iX3RvcCI+S0NhY2hlZ3JpbmQ8L2E+LCB3aGljaCBpcyBhIEtERS9RdCBiYXNlZAorICAgIEdVSSB0aGF0IG1ha2VzIGl0IGVhc3kgdG8gbmF2aWdhdGUgdGhlIGxhcmdlIGFtb3VudCBvZiBkYXRhIHRoYXQKKyAgICBDYWxsZ3JpbmQgcHJvZHVjZXMuPC9wPgorPC9kZD4KKzxkdD48c3BhbiBjbGFzcz0idGVybSI+PHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+Y2FsbGdyaW5kX2NvbnRyb2w8L3N0cm9uZz48L3NwYW4+PC9zcGFuPjwvZHQ+Cis8ZGQ+PHA+VGhpcyBjb21tYW5kIGVuYWJsZXMgeW91IHRvIGludGVyYWN0aXZlbHkgb2JzZXJ2ZSBhbmQgY29udHJvbCAKKyAgICB0aGUgc3RhdHVzIG9mIGEgcHJvZ3JhbSBjdXJyZW50bHkgcnVubmluZyB1bmRlciBDYWxsZ3JpbmQncyBjb250cm9sLAorICAgIHdpdGhvdXQgc3RvcHBpbmcgdGhlIHByb2dyYW0uICBZb3UgY2FuIGdldCBzdGF0aXN0aWNzIGluZm9ybWF0aW9uIGFzCisgICAgd2VsbCBhcyB0aGUgY3VycmVudCBzdGFjayB0cmFjZSwgYW5kIHlvdSBjYW4gcmVxdWVzdCB6ZXJvaW5nIG9mIGNvdW50ZXJzCisgICAgb3IgZHVtcGluZyBvZiBwcm9maWxlIGRhdGEuPC9wPjwvZGQ+Cis8L2RsPjwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDIiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJjbC1tYW51YWwuZnVuY3Rpb25hbGl0eSI+PC9hPjYuMS4xLqBGdW5jdGlvbmFsaXR5PC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPkNhY2hlZ3JpbmQgY29sbGVjdHMgZmxhdCBwcm9maWxlIGRhdGE6IGV2ZW50IGNvdW50cyAoZGF0YSByZWFkcywKK2NhY2hlIG1pc3NlcywgZXRjLikgYXJlIGF0dHJpYnV0ZWQgZGlyZWN0bHkgdG8gdGhlIGZ1bmN0aW9uIHRoZXkKK29jY3VycmVkIGluLiAgVGhpcyBjb3N0IGF0dHJpYnV0aW9uIG1lY2hhbmlzbSBpcworY2FsbGVkIDxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPnNlbGY8L2VtPjwvc3Bhbj4gb3IgPHNwYW4gY2xhc3M9ImVtcGhhc2lzIj48ZW0+ZXhjbHVzaXZlPC9lbT48L3NwYW4+CithdHRyaWJ1dGlvbi48L3A+Cis8cD5DYWxsZ3JpbmQgZXh0ZW5kcyB0aGlzIGZ1bmN0aW9uYWxpdHkgYnkgcHJvcGFnYXRpbmcgY29zdHMKK2Fjcm9zcyBmdW5jdGlvbiBjYWxsIGJvdW5kYXJpZXMuICBJZiBmdW5jdGlvbiA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPmZvbzwvY29kZT4gY2FsbHMKKzxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+YmFyPC9jb2RlPiwgdGhlIGNvc3RzIGZyb20gPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5iYXI8L2NvZGU+IGFyZSBhZGRlZCBpbnRvCis8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPmZvbzwvY29kZT4ncyBjb3N0cy4gIFdoZW4gYXBwbGllZCB0byB0aGUgcHJvZ3JhbSBhcyBhIHdob2xlLAordGhpcyBidWlsZHMgdXAgYSBwaWN0dXJlIG9mIHNvIGNhbGxlZCA8c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT5pbmNsdXNpdmU8L2VtPjwvc3Bhbj4KK2Nvc3RzLCB0aGF0IGlzLCB3aGVyZSB0aGUgY29zdCBvZiBlYWNoIGZ1bmN0aW9uIGluY2x1ZGVzIHRoZSBjb3N0cyBvZgorYWxsIGZ1bmN0aW9ucyBpdCBjYWxsZWQsIGRpcmVjdGx5IG9yIGluZGlyZWN0bHkuPC9wPgorPHA+QXMgYW4gZXhhbXBsZSwgdGhlIGluY2x1c2l2ZSBjb3N0IG9mCis8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPm1haW48L2NvZGU+IHNob3VsZCBiZSBhbG1vc3QgMTAwIHBlcmNlbnQKK29mIHRoZSB0b3RhbCBwcm9ncmFtIGNvc3QuICBCZWNhdXNlIG9mIGNvc3RzIGFyaXNpbmcgYmVmb3JlIAorPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5tYWluPC9jb2RlPiBpcyBydW4sIHN1Y2ggYXMKK2luaXRpYWxpemF0aW9uIG9mIHRoZSBydW4gdGltZSBsaW5rZXIgYW5kIGNvbnN0cnVjdGlvbiBvZiBnbG9iYWwgQysrCitvYmplY3RzLCB0aGUgaW5jbHVzaXZlIGNvc3Qgb2YgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5tYWluPC9jb2RlPgoraXMgbm90IGV4YWN0bHkgMTAwIHBlcmNlbnQgb2YgdGhlIHRvdGFsIHByb2dyYW0gY29zdC48L3A+Cis8cD5Ub2dldGhlciB3aXRoIHRoZSBjYWxsIGdyYXBoLCB0aGlzIGFsbG93cyB5b3UgdG8gZmluZCB0aGUKK3NwZWNpZmljIGNhbGwgY2hhaW5zIHN0YXJ0aW5nIGZyb20KKzxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+bWFpbjwvY29kZT4gaW4gd2hpY2ggdGhlIG1ham9yaXR5IG9mIHRoZQorcHJvZ3JhbSdzIGNvc3RzIG9jY3VyLiAgQ2FsbGVyL2NhbGxlZSBjb3N0IGF0dHJpYnV0aW9uIGlzIGFsc28gdXNlZnVsCitmb3IgcHJvZmlsaW5nIGZ1bmN0aW9ucyBjYWxsZWQgZnJvbSBtdWx0aXBsZSBjYWxsIHNpdGVzLCBhbmQgd2hlcmUKK29wdGltaXphdGlvbiBvcHBvcnR1bml0aWVzIGRlcGVuZCBvbiBjaGFuZ2luZyBjb2RlIGluIHRoZSBjYWxsZXJzLCBpbgorcGFydGljdWxhciBieSByZWR1Y2luZyB0aGUgY2FsbCBjb3VudC48L3A+Cis8cD5DYWxsZ3JpbmQncyBjYWNoZSBzaW11bGF0aW9uIGlzIGJhc2VkIG9uIHRoYXQgb2YgQ2FjaGVncmluZC4KK1JlYWQgdGhlIGRvY3VtZW50YXRpb24gZm9yIDxhIGNsYXNzPSJ4cmVmIiBocmVmPSJjZy1tYW51YWwuaHRtbCIgdGl0bGU9IjUuoENhY2hlZ3JpbmQ6IGEgY2FjaGUgYW5kIGJyYW5jaC1wcmVkaWN0aW9uIHByb2ZpbGVyIj5DYWNoZWdyaW5kOiBhIGNhY2hlIGFuZCBicmFuY2gtcHJlZGljdGlvbiBwcm9maWxlcjwvYT4gZmlyc3QuICBUaGUgbWF0ZXJpYWwKK2JlbG93IGRlc2NyaWJlcyB0aGUgZmVhdHVyZXMgc3VwcG9ydGVkIGluIGFkZGl0aW9uIHRvIENhY2hlZ3JpbmQncworZmVhdHVyZXMuPC9wPgorPHA+Q2FsbGdyaW5kJ3MgYWJpbGl0eSB0byBkZXRlY3QgZnVuY3Rpb24gY2FsbHMgYW5kIHJldHVybnMgZGVwZW5kcworb24gdGhlIGluc3RydWN0aW9uIHNldCBvZiB0aGUgcGxhdGZvcm0gaXQgaXMgcnVuIG9uLiAgSXQgd29ya3MgYmVzdCBvbgoreDg2IGFuZCBhbWQ2NCwgYW5kIHVuZm9ydHVuYXRlbHkgY3VycmVudGx5IGRvZXMgbm90IHdvcmsgc28gd2VsbCBvbgorUG93ZXJQQywgQVJNLCBUaHVtYiBvciBNSVBTIGNvZGUuICBUaGlzIGlzIGJlY2F1c2UgdGhlcmUgYXJlIG5vIGV4cGxpY2l0CitjYWxsIG9yIHJldHVybiBpbnN0cnVjdGlvbnMgaW4gdGhlc2UgaW5zdHJ1Y3Rpb24gc2V0cywgc28gQ2FsbGdyaW5kCitoYXMgdG8gcmVseSBvbiBoZXVyaXN0aWNzIHRvIGRldGVjdCBjYWxscyBhbmQgcmV0dXJucy48L3A+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0iY2wtbWFudWFsLmJhc2ljcyI+PC9hPjYuMS4yLqBCYXNpYyBVc2FnZTwvaDM+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD5BcyB3aXRoIENhY2hlZ3JpbmQsIHlvdSBwcm9iYWJseSB3YW50IHRvIGNvbXBpbGUgd2l0aCBkZWJ1Z2dpbmcgaW5mbworICAodGhlIDxjb2RlIGNsYXNzPSJvcHRpb24iPi1nPC9jb2RlPiBvcHRpb24pIGFuZCB3aXRoIG9wdGltaXphdGlvbiB0dXJuZWQgb24uPC9wPgorPHA+VG8gc3RhcnQgYSBwcm9maWxlIHJ1biBmb3IgYSBwcm9ncmFtLCBleGVjdXRlOgorICA8L3A+Cis8cHJlIGNsYXNzPSJzY3JlZW4iPnZhbGdyaW5kIC0tdG9vbD1jYWxsZ3JpbmQgW2NhbGxncmluZCBvcHRpb25zXSB5b3VyLXByb2dyYW0gW3Byb2dyYW0gb3B0aW9uc108L3ByZT4KKzxwPgorICA8L3A+Cis8cD5XaGlsZSB0aGUgc2ltdWxhdGlvbiBpcyBydW5uaW5nLCB5b3UgY2FuIG9ic2VydmUgZXhlY3V0aW9uIHdpdGg6CisgIDwvcD4KKzxwcmUgY2xhc3M9InNjcmVlbiI+Y2FsbGdyaW5kX2NvbnRyb2wgLWI8L3ByZT4KKzxwPgorICBUaGlzIHdpbGwgcHJpbnQgb3V0IHRoZSBjdXJyZW50IGJhY2t0cmFjZS4gVG8gYW5ub3RhdGUgdGhlIGJhY2t0cmFjZSB3aXRoCisgIGV2ZW50IGNvdW50cywgcnVuCisgIDwvcD4KKzxwcmUgY2xhc3M9InNjcmVlbiI+Y2FsbGdyaW5kX2NvbnRyb2wgLWUgLWI8L3ByZT4KKzxwPgorICA8L3A+Cis8cD5BZnRlciBwcm9ncmFtIHRlcm1pbmF0aW9uLCBhIHByb2ZpbGUgZGF0YSBmaWxlIG5hbWVkIAorICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmNhbGxncmluZC5vdXQuJmx0O3BpZCZndDs8L2NvZGU+CisgIGlzIGdlbmVyYXRlZCwgd2hlcmUgPHNwYW4gY2xhc3M9ImVtcGhhc2lzIj48ZW0+cGlkPC9lbT48L3NwYW4+IGlzIHRoZSBwcm9jZXNzIElEIAorICBvZiB0aGUgcHJvZ3JhbSBiZWluZyBwcm9maWxlZC4KKyAgVGhlIGRhdGEgZmlsZSBjb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY2FsbHMgbWFkZSBpbiB0aGUKKyAgcHJvZ3JhbSBhbW9uZyB0aGUgZnVuY3Rpb25zIGV4ZWN1dGVkLCB0b2dldGhlciB3aXRoIAorICA8c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz5JbnN0cnVjdGlvbiBSZWFkPC9zdHJvbmc+PC9zcGFuPiAoSXIpIGV2ZW50IGNvdW50cy48L3A+Cis8cD5UbyBnZW5lcmF0ZSBhIGZ1bmN0aW9uLWJ5LWZ1bmN0aW9uIHN1bW1hcnkgZnJvbSB0aGUgcHJvZmlsZQorICBkYXRhIGZpbGUsIHVzZQorICA8L3A+Cis8cHJlIGNsYXNzPSJzY3JlZW4iPmNhbGxncmluZF9hbm5vdGF0ZSBbb3B0aW9uc10gY2FsbGdyaW5kLm91dC4mbHQ7cGlkJmd0OzwvcHJlPgorPHA+CisgIFRoaXMgc3VtbWFyeSBpcyBzaW1pbGFyIHRvIHRoZSBvdXRwdXQgeW91IGdldCBmcm9tIGEgQ2FjaGVncmluZAorICBydW4gd2l0aCBjZ19hbm5vdGF0ZTogdGhlIGxpc3QKKyAgb2YgZnVuY3Rpb25zIGlzIG9yZGVyZWQgYnkgZXhjbHVzaXZlIGNvc3Qgb2YgZnVuY3Rpb25zLCB3aGljaCBhbHNvCisgIGFyZSB0aGUgb25lcyB0aGF0IGFyZSBzaG93bi4KKyAgSW1wb3J0YW50IGZvciB0aGUgYWRkaXRpb25hbCBmZWF0dXJlcyBvZiBDYWxsZ3JpbmQgYXJlCisgIHRoZSBmb2xsb3dpbmcgdHdvIG9wdGlvbnM6PC9wPgorPGRpdiBjbGFzcz0iaXRlbWl6ZWRsaXN0Ij48dWwgY2xhc3M9Iml0ZW1pemVkbGlzdCIgc3R5bGU9Imxpc3Qtc3R5bGUtdHlwZTogZGlzYzsgIj4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPjxjb2RlIGNsYXNzPSJvcHRpb24iPi0taW5jbHVzaXZlPXllczwvY29kZT46IEluc3RlYWQgb2YgdXNpbmcKKyAgICAgIGV4Y2x1c2l2ZSBjb3N0IG9mIGZ1bmN0aW9ucyBhcyBzb3J0aW5nIG9yZGVyLCB1c2UgYW5kIHNob3cKKyAgICAgIGluY2x1c2l2ZSBjb3N0LjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+PGNvZGUgY2xhc3M9Im9wdGlvbiI+LS10cmVlPWJvdGg8L2NvZGU+OiBJbnRlcmxlYXZlIGludG8gdGhlCisgICAgICB0b3AgbGV2ZWwgbGlzdCBvZiBmdW5jdGlvbnMsIGluZm9ybWF0aW9uIG9uIHRoZSBjYWxsZXJzIGFuZCB0aGUgY2FsbGVlcworICAgICAgb2YgZWFjaCBmdW5jdGlvbi4gSW4gdGhlc2UgbGluZXMsIHdoaWNoIHJlcHJlc2VudHMgZXhlY3V0ZWQKKyAgICAgIGNhbGxzLCB0aGUgY29zdCBnaXZlcyB0aGUgbnVtYmVyIG9mIGV2ZW50cyBzcGVudCBpbiB0aGUgY2FsbC4KKyAgICAgIEluZGVudGVkLCBhYm92ZSBlYWNoIGZ1bmN0aW9uLCB0aGVyZSBpcyB0aGUgbGlzdCBvZiBjYWxsZXJzLAorICAgICAgYW5kIGJlbG93LCB0aGUgbGlzdCBvZiBjYWxsZWVzLiBUaGUgc3VtIG9mIGV2ZW50cyBpbiBjYWxscyB0bworICAgICAgYSBnaXZlbiBmdW5jdGlvbiAoY2FsbGVyIGxpbmVzKSwgYXMgd2VsbCBhcyB0aGUgc3VtIG9mIGV2ZW50cyBpbgorICAgICAgY2FsbHMgZnJvbSB0aGUgZnVuY3Rpb24gKGNhbGxlZSBsaW5lcykgdG9nZXRoZXIgd2l0aCB0aGUgc2VsZgorICAgICAgY29zdCwgZ2l2ZXMgdGhlIHRvdGFsIGluY2x1c2l2ZSBjb3N0IG9mIHRoZSBmdW5jdGlvbi48L3A+PC9saT4KKzwvdWw+PC9kaXY+Cis8cD5Vc2UgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1hdXRvPXllczwvY29kZT4gdG8gZ2V0IGFubm90YXRlZCBzb3VyY2UgY29kZQorICBmb3IgYWxsIHJlbGV2YW50IGZ1bmN0aW9ucyBmb3Igd2hpY2ggdGhlIHNvdXJjZSBjYW4gYmUgZm91bmQuIEluCisgIGFkZGl0aW9uIHRvIHNvdXJjZSBhbm5vdGF0aW9uIGFzIHByb2R1Y2VkIGJ5CisgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+Y2dfYW5ub3RhdGU8L2NvZGU+LCB5b3Ugd2lsbCBzZWUgdGhlCisgIGFubm90YXRlZCBjYWxsIHNpdGVzIHdpdGggY2FsbCBjb3VudHMuIEZvciBhbGwgb3RoZXIgb3B0aW9ucywgCisgIGNvbnN1bHQgdGhlIChDYWNoZWdyaW5kKSBkb2N1bWVudGF0aW9uIGZvcgorICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmNnX2Fubm90YXRlPC9jb2RlPi4KKyAgPC9wPgorPHA+Rm9yIGJldHRlciBjYWxsIGdyYXBoIGJyb3dzaW5nIGV4cGVyaWVuY2UsIGl0IGlzIGhpZ2hseSByZWNvbW1lbmRlZAorICB0byB1c2UgPGEgY2xhc3M9InVsaW5rIiBocmVmPSJodHRwOi8va2NhY2hlZ3JpbmQuc291cmNlZm9yZ2UubmV0L2NnaS1iaW4vc2hvdy5jZ2kvS2NhY2hlR3JpbmRJbmRleCIgdGFyZ2V0PSJfdG9wIj5LQ2FjaGVncmluZDwvYT4uCisgIElmIHlvdXIgY29kZQorICBoYXMgYSBzaWduaWZpY2FudCBmcmFjdGlvbiBvZiBpdHMgY29zdCBpbiA8c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT5jeWNsZXM8L2VtPjwvc3Bhbj4gKHNldHMKKyAgb2YgZnVuY3Rpb25zIGNhbGxpbmcgZWFjaCBvdGhlciBpbiBhIHJlY3Vyc2l2ZSBtYW5uZXIpLCB5b3UgaGF2ZSB0bworICB1c2UgS0NhY2hlZ3JpbmQsIGFzIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+Y2FsbGdyaW5kX2Fubm90YXRlPC9jb2RlPgorICBjdXJyZW50bHkgZG9lcyBub3QgZG8gYW55IGN5Y2xlIGRldGVjdGlvbiwgd2hpY2ggaXMgaW1wb3J0YW50IHRvIGdldCBjb3JyZWN0CisgIHJlc3VsdHMgaW4gdGhpcyBjYXNlLjwvcD4KKzxwPklmIHlvdSBhcmUgYWRkaXRpb25hbGx5IGludGVyZXN0ZWQgaW4gbWVhc3VyaW5nIHRoZSAKKyAgY2FjaGUgYmVoYXZpb3Igb2YgeW91ciBwcm9ncmFtLCB1c2UgQ2FsbGdyaW5kIHdpdGggdGhlIG9wdGlvbgorICA8Y29kZSBjbGFzcz0ib3B0aW9uIj48YSBjbGFzcz0ieHJlZiIgaHJlZj0iY2wtbWFudWFsLmh0bWwjY2xvcHQuY2FjaGUtc2ltIj4tLWNhY2hlLXNpbTwvYT49eWVzPC9jb2RlPi4gRm9yCisgIGJyYW5jaCBwcmVkaWN0aW9uIHNpbXVsYXRpb24sIHVzZSA8Y29kZSBjbGFzcz0ib3B0aW9uIj48YSBjbGFzcz0ieHJlZiIgaHJlZj0iY2wtbWFudWFsLmh0bWwjY2xvcHQuYnJhbmNoLXNpbSI+LS1icmFuY2gtc2ltPC9hPj15ZXM8L2NvZGU+LgorICBFeHBlY3QgYSBmdXJ0aGVyIHNsb3cgZG93biBhcHByb3hpbWF0ZWx5IGJ5IGEgZmFjdG9yIG9mIDIuPC9wPgorPHA+SWYgdGhlIHByb2dyYW0gc2VjdGlvbiB5b3Ugd2FudCB0byBwcm9maWxlIGlzIHNvbWV3aGVyZSBpbiB0aGUKKyAgbWlkZGxlIG9mIHRoZSBydW4sIGl0IGlzIGJlbmVmaWNpYWwgdG8gCisgIDxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPmZhc3QgZm9yd2FyZDwvZW0+PC9zcGFuPiB0byB0aGlzIHNlY3Rpb24gd2l0aG91dCBhbnkgCisgIHByb2ZpbGluZywgYW5kIHRoZW4gZW5hYmxlIHByb2ZpbGluZy4gIFRoaXMgaXMgYWNoaWV2ZWQgYnkgdXNpbmcKKyAgdGhlIGNvbW1hbmQgbGluZSBvcHRpb24KKyAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+PGEgY2xhc3M9InhyZWYiIGhyZWY9ImNsLW1hbnVhbC5odG1sI29wdC5pbnN0ci1hdHN0YXJ0Ij4tLWluc3RyLWF0c3RhcnQ8L2E+PW5vPC9jb2RlPiAKKyAgYW5kIHJ1bm5pbmcsIGluIGEgc2hlbGw6CisgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+Y2FsbGdyaW5kX2NvbnRyb2wgLWkgb248L2NvZGU+IGp1c3QgYmVmb3JlIHRoZSAKKyAgaW50ZXJlc3RpbmcgY29kZSBzZWN0aW9uIGlzIGV4ZWN1dGVkLiBUbyBleGFjdGx5IHNwZWNpZnkKKyAgdGhlIGNvZGUgcG9zaXRpb24gd2hlcmUgcHJvZmlsaW5nIHNob3VsZCBzdGFydCwgdXNlIHRoZSBjbGllbnQgcmVxdWVzdAorICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPjxhIGNsYXNzPSJ4cmVmIiBocmVmPSJjbC1tYW51YWwuaHRtbCNjci5zdGFydC1pbnN0ciI+Q0FMTEdSSU5EX1NUQVJUX0lOU1RSVU1FTlRBVElPTjwvYT48L2NvZGU+LjwvcD4KKzxwPklmIHlvdSB3YW50IHRvIGJlIGFibGUgdG8gc2VlIGFzc2VtYmx5IGNvZGUgbGV2ZWwgYW5ub3RhdGlvbiwgc3BlY2lmeQorICA8Y29kZSBjbGFzcz0ib3B0aW9uIj48YSBjbGFzcz0ieHJlZiIgaHJlZj0iY2wtbWFudWFsLmh0bWwjb3B0LmR1bXAtaW5zdHIiPi0tZHVtcC1pbnN0cjwvYT49eWVzPC9jb2RlPi4gVGhpcyB3aWxsIHByb2R1Y2UKKyAgcHJvZmlsZSBkYXRhIGF0IGluc3RydWN0aW9uIGdyYW51bGFyaXR5LiBOb3RlIHRoYXQgdGhlIHJlc3VsdGluZyBwcm9maWxlCisgIGRhdGEKKyAgY2FuIG9ubHkgYmUgdmlld2VkIHdpdGggS0NhY2hlZ3JpbmQuIEZvciBhc3NlbWJseSBhbm5vdGF0aW9uLCBpdCBhbHNvIGlzCisgIGludGVyZXN0aW5nIHRvIHNlZSBtb3JlIGRldGFpbHMgb2YgdGhlIGNvbnRyb2wgZmxvdyBpbnNpZGUgb2YgZnVuY3Rpb25zLAorICBpLmUuIChjb25kaXRpb25hbCkganVtcHMuIFRoaXMgd2lsbCBiZSBjb2xsZWN0ZWQgYnkgZnVydGhlciBzcGVjaWZ5aW5nCisgIDxjb2RlIGNsYXNzPSJvcHRpb24iPjxhIGNsYXNzPSJ4cmVmIiBocmVmPSJjbC1tYW51YWwuaHRtbCNvcHQuY29sbGVjdC1qdW1wcyI+LS1jb2xsZWN0LWp1bXBzPC9hPj15ZXM8L2NvZGU+LjwvcD4KKzwvZGl2PgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MSI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPgorPGEgbmFtZT0iY2wtbWFudWFsLnVzYWdlIj48L2E+Ni4yLqBBZHZhbmNlZCBVc2FnZTwvaDI+PC9kaXY+PC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MiI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9ImNsLW1hbnVhbC5kdW1wcyI+PC9hPjYuMi4xLqBNdWx0aXBsZSBwcm9maWxpbmcgZHVtcHMgZnJvbSBvbmUgcHJvZ3JhbSBydW48L2gzPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+U29tZXRpbWVzIHlvdSBhcmUgbm90IGludGVyZXN0ZWQgaW4gY2hhcmFjdGVyaXN0aWNzIG9mIGEgZnVsbCAKKyAgcHJvZ3JhbSBydW4sIGJ1dCBvbmx5IG9mIGEgc21hbGwgcGFydCBvZiBpdCwgZm9yIGV4YW1wbGUgZXhlY3V0aW9uIG9mIG9uZQorICBhbGdvcml0aG0uICBJZiB0aGVyZSBhcmUgbXVsdGlwbGUgYWxnb3JpdGhtcywgb3Igb25lIGFsZ29yaXRobSAKKyAgcnVubmluZyB3aXRoIGRpZmZlcmVudCBpbnB1dCBkYXRhLCBpdCBtYXkgZXZlbiBiZSB1c2VmdWwgdG8gZ2V0IGRpZmZlcmVudAorICBwcm9maWxlIGluZm9ybWF0aW9uIGZvciBkaWZmZXJlbnQgcGFydHMgb2YgYSBzaW5nbGUgcHJvZ3JhbSBydW4uPC9wPgorPHA+UHJvZmlsZSBkYXRhIGZpbGVzIGhhdmUgbmFtZXMgb2YgdGhlIGZvcm0KKzwvcD4KKzxwcmUgY2xhc3M9InNjcmVlbiI+CitjYWxsZ3JpbmQub3V0LjxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPnBpZDwvZW0+PC9zcGFuPi48c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT5wYXJ0PC9lbT48L3NwYW4+LTxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPnRocmVhZElEPC9lbT48L3NwYW4+Cis8L3ByZT4KKzxwPgorICA8L3A+Cis8cD53aGVyZSA8c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT5waWQ8L2VtPjwvc3Bhbj4gaXMgdGhlIFBJRCBvZiB0aGUgcnVubmluZyAKKyAgcHJvZ3JhbSwgPHNwYW4gY2xhc3M9ImVtcGhhc2lzIj48ZW0+cGFydDwvZW0+PC9zcGFuPiBpcyBhIG51bWJlciBpbmNyZW1lbnRlZCBvbiBlYWNoCisgIGR1bXAgKCIucGFydCIgaXMgc2tpcHBlZCBmb3IgdGhlIGR1bXAgYXQgcHJvZ3JhbSB0ZXJtaW5hdGlvbiksIGFuZCAKKyAgPHNwYW4gY2xhc3M9ImVtcGhhc2lzIj48ZW0+dGhyZWFkSUQ8L2VtPjwvc3Bhbj4gaXMgYSB0aHJlYWQgaWRlbnRpZmljYXRpb24gCisgICgiLXRocmVhZElEIiBpcyBvbmx5IHVzZWQgaWYgeW91IHJlcXVlc3QgZHVtcHMgb2YgaW5kaXZpZHVhbCAKKyAgdGhyZWFkcyB3aXRoIDxjb2RlIGNsYXNzPSJvcHRpb24iPjxhIGNsYXNzPSJ4cmVmIiBocmVmPSJjbC1tYW51YWwuaHRtbCNvcHQuc2VwYXJhdGUtdGhyZWFkcyI+LS1zZXBhcmF0ZS10aHJlYWRzPC9hPj15ZXM8L2NvZGU+KS48L3A+Cis8cD5UaGVyZSBhcmUgZGlmZmVyZW50IHdheXMgdG8gZ2VuZXJhdGUgbXVsdGlwbGUgcHJvZmlsZSBkdW1wcyAKKyAgd2hpbGUgYSBwcm9ncmFtIGlzIHJ1bm5pbmcgdW5kZXIgQ2FsbGdyaW5kJ3Mgc3VwZXJ2aXNpb24uICBOZXZlcnRoZWxlc3MsCisgIGFsbCBtZXRob2RzIHRyaWdnZXIgdGhlIHNhbWUgYWN0aW9uLCB3aGljaCBpcyAiZHVtcCBhbGwgcHJvZmlsZSAKKyAgaW5mb3JtYXRpb24gc2luY2UgdGhlIGxhc3QgZHVtcCBvciBwcm9ncmFtIHN0YXJ0LCBhbmQgemVybyBjb3N0IAorICBjb3VudGVycyBhZnRlcndhcmRzIi4gIFRvIGFsbG93IGZvciB6ZXJvaW5nIGNvc3QgY291bnRlcnMgd2l0aG91dAorICBkdW1waW5nLCB0aGVyZSBpcyBhIHNlY29uZCBhY3Rpb24gInplcm8gYWxsIGNvc3QgY291bnRlcnMgbm93Ii4gCisgIFRoZSBkaWZmZXJlbnQgbWV0aG9kcyBhcmU6PC9wPgorPGRpdiBjbGFzcz0iaXRlbWl6ZWRsaXN0Ij48dWwgY2xhc3M9Iml0ZW1pemVkbGlzdCIgc3R5bGU9Imxpc3Qtc3R5bGUtdHlwZTogZGlzYzsgIj4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPjxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPkR1bXAgb24gcHJvZ3JhbSB0ZXJtaW5hdGlvbi48L3N0cm9uZz48L3NwYW4+CisgICAgICBUaGlzIG1ldGhvZCBpcyB0aGUgc3RhbmRhcmQgd2F5IGFuZCBkb2Vzbid0IG5lZWQgYW55IHNwZWNpYWwKKyAgICAgIGFjdGlvbiBvbiB5b3VyIHBhcnQuPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj4KKzxwPjxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPlNwb250YW5lb3VzLCBpbnRlcmFjdGl2ZSBkdW1waW5nLjwvc3Ryb25nPjwvc3Bhbj4gVXNlCisgICAgICA8L3A+Cis8cHJlIGNsYXNzPSJzY3JlZW4iPmNhbGxncmluZF9jb250cm9sIC1kIFtoaW50IFtQSUQvTmFtZV1dPC9wcmU+Cis8cD4gdG8gCisgICAgICByZXF1ZXN0IHRoZSBkdW1waW5nIG9mIHByb2ZpbGUgaW5mb3JtYXRpb24gb2YgdGhlIHN1cGVydmlzZWQKKyAgICAgIGFwcGxpY2F0aW9uIHdpdGggUElEIG9yIE5hbWUuICA8c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT5oaW50PC9lbT48L3NwYW4+IGlzIGFuCisgICAgICBhcmJpdHJhcnkgc3RyaW5nIHlvdSBjYW4gb3B0aW9uYWxseSBzcGVjaWZ5IHRvIGxhdGVyIGJlIGFibGUgdG8KKyAgICAgIGRpc3Rpbmd1aXNoIHByb2ZpbGUgZHVtcHMuICBUaGUgY29udHJvbCBwcm9ncmFtIHdpbGwgbm90IHRlcm1pbmF0ZQorICAgICAgYmVmb3JlIHRoZSBkdW1wIGlzIGNvbXBsZXRlbHkgd3JpdHRlbi4gIE5vdGUgdGhhdCB0aGUgYXBwbGljYXRpb24KKyAgICAgIG11c3QgYmUgYWN0aXZlbHkgcnVubmluZyBmb3IgZGV0ZWN0aW9uIG9mIHRoZSBkdW1wIGNvbW1hbmQuIFNvLAorICAgICAgZm9yIGEgR1VJIGFwcGxpY2F0aW9uLCByZXNpemUgdGhlIHdpbmRvdywgb3IgZm9yIGEgc2VydmVyLCBzZW5kIGEKKyAgICAgIHJlcXVlc3QuPC9wPgorPHA+SWYgeW91IGFyZSB1c2luZyA8YSBjbGFzcz0idWxpbmsiIGhyZWY9Imh0dHA6Ly9rY2FjaGVncmluZC5zb3VyY2Vmb3JnZS5uZXQvY2dpLWJpbi9zaG93LmNnaS9LY2FjaGVHcmluZEluZGV4IiB0YXJnZXQ9Il90b3AiPktDYWNoZWdyaW5kPC9hPgorICAgICAgZm9yIGJyb3dzaW5nIG9mIHByb2ZpbGUgaW5mb3JtYXRpb24sIHlvdSBjYW4gdXNlIHRoZSB0b29sYmFyCisgICAgICBidXR0b24gPHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+Rm9yY2UgZHVtcDwvc3Ryb25nPjwvc3Bhbj4uIFRoaXMgd2lsbCByZXF1ZXN0IGEgZHVtcAorICAgICAgYW5kIHRyaWdnZXIgYSByZWxvYWQgYWZ0ZXIgdGhlIGR1bXAgaXMgd3JpdHRlbi48L3A+Cis8L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+PHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+UGVyaW9kaWMgZHVtcGluZyBhZnRlciBleGVjdXRpb24gb2YgYSBzcGVjaWZpZWQKKyAgICAgIG51bWJlciBvZiBiYXNpYyBibG9ja3M8L3N0cm9uZz48L3NwYW4+LiBGb3IgdGhpcywgdXNlIHRoZSBjb21tYW5kIGxpbmUKKyAgICAgIG9wdGlvbiA8Y29kZSBjbGFzcz0ib3B0aW9uIj48YSBjbGFzcz0ieHJlZiIgaHJlZj0iY2wtbWFudWFsLmh0bWwjb3B0LmR1bXAtZXZlcnktYmIiPi0tZHVtcC1ldmVyeS1iYjwvYT49Y291bnQ8L2NvZGU+LgorICAgICAgPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj4KKzxwPjxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPkR1bXBpbmcgYXQgZW50ZXIvbGVhdmUgb2Ygc3BlY2lmaWVkIGZ1bmN0aW9ucy48L3N0cm9uZz48L3NwYW4+CisgICAgICBVc2UgdGhlCisgICAgICBvcHRpb24gPGNvZGUgY2xhc3M9Im9wdGlvbiI+PGEgY2xhc3M9InhyZWYiIGhyZWY9ImNsLW1hbnVhbC5odG1sI29wdC5kdW1wLWJlZm9yZSI+LS1kdW1wLWJlZm9yZTwvYT49ZnVuY3Rpb248L2NvZGU+CisgICAgICBhbmQgPGNvZGUgY2xhc3M9Im9wdGlvbiI+PGEgY2xhc3M9InhyZWYiIGhyZWY9ImNsLW1hbnVhbC5odG1sI29wdC5kdW1wLWFmdGVyIj4tLWR1bXAtYWZ0ZXI8L2E+PWZ1bmN0aW9uPC9jb2RlPi4KKyAgICAgIFRvIHplcm8gY29zdCBjb3VudGVycyBiZWZvcmUgZW50ZXJpbmcgYSBmdW5jdGlvbiwgdXNlCisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj48YSBjbGFzcz0ieHJlZiIgaHJlZj0iY2wtbWFudWFsLmh0bWwjb3B0Lnplcm8tYmVmb3JlIj4tLXplcm8tYmVmb3JlPC9hPj1mdW5jdGlvbjwvY29kZT4uPC9wPgorPHA+WW91IGNhbiBzcGVjaWZ5IHRoZXNlIG9wdGlvbnMgbXVsdGlwbGUgdGltZXMgZm9yIGRpZmZlcmVudAorICAgICAgZnVuY3Rpb25zLiBGdW5jdGlvbiBzcGVjaWZpY2F0aW9ucyBzdXBwb3J0IHdpbGRjYXJkczogZS5nLiB1c2UKKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPjxhIGNsYXNzPSJ4cmVmIiBocmVmPSJjbC1tYW51YWwuaHRtbCNvcHQuZHVtcC1iZWZvcmUiPi0tZHVtcC1iZWZvcmU8L2E+PSdmb28qJzwvY29kZT4gdG8KKyAgICAgIGdlbmVyYXRlIGR1bXBzIGJlZm9yZSBlbnRlcmluZyBhbnkgZnVuY3Rpb24gc3RhcnRpbmcgd2l0aCAKKyAgICAgIDxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPmZvbzwvZW0+PC9zcGFuPi48L3A+Cis8L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+PHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+UHJvZ3JhbSBjb250cm9sbGVkIGR1bXBpbmcuPC9zdHJvbmc+PC9zcGFuPgorICAgICAgSW5zZXJ0CisgICAgICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPjxhIGNsYXNzPSJ4cmVmIiBocmVmPSJjbC1tYW51YWwuaHRtbCNjci5kdW1wLXN0YXRzIj5DQUxMR1JJTkRfRFVNUF9TVEFUUzwvYT47PC9jb2RlPgorICAgICAgYXQgdGhlIHBvc2l0aW9uIGluIHlvdXIgY29kZSB3aGVyZSB5b3Ugd2FudCBhIHByb2ZpbGUgZHVtcCB0byBoYXBwZW4uIFVzZSAKKyAgICAgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+PGEgY2xhc3M9InhyZWYiIGhyZWY9ImNsLW1hbnVhbC5odG1sI2NyLnplcm8tc3RhdHMiPkNBTExHUklORF9aRVJPX1NUQVRTPC9hPjs8L2NvZGU+IHRvIG9ubHkgCisgICAgICB6ZXJvIHByb2ZpbGUgY291bnRlcnMuCisgICAgICBTZWUgPGEgY2xhc3M9InhyZWYiIGhyZWY9ImNsLW1hbnVhbC5odG1sI2NsLW1hbnVhbC5jbGllbnRyZXF1ZXN0cyIgdGl0bGU9IjYuNS6gQ2FsbGdyaW5kIHNwZWNpZmljIGNsaWVudCByZXF1ZXN0cyI+Q2xpZW50IHJlcXVlc3QgcmVmZXJlbmNlPC9hPiBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbgorICAgICAgQ2FsbGdyaW5kIHNwZWNpZmljIGNsaWVudCByZXF1ZXN0cy48L3A+PC9saT4KKzwvdWw+PC9kaXY+Cis8cD5JZiB5b3UgYXJlIHJ1bm5pbmcgYSBtdWx0aS10aHJlYWRlZCBhcHBsaWNhdGlvbiBhbmQgc3BlY2lmeSB0aGUKKyAgY29tbWFuZCBsaW5lIG9wdGlvbiA8Y29kZSBjbGFzcz0ib3B0aW9uIj48YSBjbGFzcz0ieHJlZiIgaHJlZj0iY2wtbWFudWFsLmh0bWwjb3B0LnNlcGFyYXRlLXRocmVhZHMiPi0tc2VwYXJhdGUtdGhyZWFkczwvYT49eWVzPC9jb2RlPiwgCisgIGV2ZXJ5IHRocmVhZCB3aWxsIGJlIHByb2ZpbGVkIG9uIGl0cyBvd24gYW5kIHdpbGwgY3JlYXRlIGl0cyBvd24KKyAgcHJvZmlsZSBkdW1wLiBUaHVzLCB0aGUgbGFzdCB0d28gbWV0aG9kcyB3aWxsIG9ubHkgZ2VuZXJhdGUgb25lIGR1bXAKKyAgb2YgdGhlIGN1cnJlbnRseSBydW5uaW5nIHRocmVhZC4gV2l0aCB0aGUgb3RoZXIgbWV0aG9kcywgeW91IHdpbGwgZ2V0CisgIG11bHRpcGxlIGR1bXBzIChvbmUgZm9yIGVhY2ggdGhyZWFkKSBvbiBhIGR1bXAgcmVxdWVzdC48L3A+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0iY2wtbWFudWFsLmxpbWl0cyI+PC9hPjYuMi4yLqBMaW1pdGluZyB0aGUgcmFuZ2Ugb2YgY29sbGVjdGVkIGV2ZW50czwvaDM+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD5CeSBkZWZhdWx0LCB3aGVuZXZlciBldmVudHMgYXJlIGhhcHBlbmluZyAoc3VjaCBhcyBhbgorICAgIGluc3RydWN0aW9uIGV4ZWN1dGlvbiBvciBjYWNoZSBoaXQvbWlzcyksIENhbGxncmluZCBpcyBhZ2dyZWdhdGluZworICAgIHRoZW0gaW50byBldmVudCBjb3VudGVycy4gSG93ZXZlciwgeW91IG1heSBiZSBpbnRlcmVzdGVkIG9ubHkgaW4KKyAgICB3aGF0IGlzIGhhcHBlbmluZyB3aXRoaW4gYSBnaXZlbiBmdW5jdGlvbiBvciBzdGFydGluZyBmcm9tIGEgZ2l2ZW4KKyAgICBwcm9ncmFtIHBoYXNlLiBUbyB0aGlzIGVuZCwgeW91IGNhbiBkaXNhYmxlIGV2ZW50IGFnZ3JlZ2F0aW9uIGZvcgorICAgIHVuaW50ZXJlc3RpbmcgcHJvZ3JhbSBwYXJ0cy4gV2hpbGUgYXR0cmlidXRpb24gb2YgZXZlbnRzIHRvCisgICAgZnVuY3Rpb25zIGFzIHdlbGwgYXMgcHJvZHVjaW5nIHNlcGVyYXRlIG91dHB1dCBwZXIgcHJvZ3JhbSBwaGFzZQorICAgIGNhbiBiZSBkb25lIGJ5IG90aGVyIG1lYW5zIChzZWUgcHJldmlvdXMgc2VjdGlvbiksIHRoZXJlIGFyZSB0d28KKyAgICBiZW5lZml0cyBieSBkaXNhYmxpbmcgYWdncmVnYXRpb24uIEZpcnN0LCB0aGlzIGlzIHZlcnkKKyAgICBmaW5lLWdyYW51bGFyIChlLmcuIGp1c3QgZm9yIGEgbG9vcCB3aXRoaW4gYSBmdW5jdGlvbikuICBTZWNvbmQsCisgICAgZGlzYWJsaW5nIGV2ZW50IGFnZ3JlZ2F0aW9uIGZvciBjb21wbGV0ZSBwcm9ncmFtIHBoYXNlcyBhbGxvd3MgdG8KKyAgICBzd2l0Y2ggb2ZmIHRpbWUtY29uc3VtaW5nIGNhY2hlIHNpbXVsYXRpb24gYW5kIGFsbG93cyBDYWxsZ3JpbmQgdG8KKyAgICBwcm9ncmVzcyBhdCBtdWNoIGhpZ2hlciBzcGVlZCB3aXRoIGFuIHNsb3dkb3duIG9mIGFyb3VuZCBmYWN0b3IgMgorICAgIChpZGVudGljYWwgdG8gPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij52YWxncmluZAorICAgIC0tdG9vbD1ub25lPC9jb2RlPikuCisgIDwvcD4KKzxwPlRoZXJlIGFyZSB0d28gYXNwZWN0cyB3aGljaCBpbmZsdWVuY2Ugd2hldGhlciBDYWxsZ3JpbmQgaXMKKyAgICBhZ2dyZWdhdGluZyBldmVudHMgYXQgc29tZSBwb2ludCBpbiB0aW1lIG9mIHByb2dyYW0gZXhlY3V0aW9uLgorICAgIEZpcnN0LCB0aGVyZSBpcyB0aGUgPHNwYW4gY2xhc3M9ImVtcGhhc2lzIj48ZW0+Y29sbGVjdGlvbiBzdGF0ZTwvZW0+PC9zcGFuPi4gSWYgdGhpcworICAgIGlzIG9mZiwgbm8gYWdncmVnYXRpb24gd2lsbCBiZSBkb25lLiAgQnkgY2hhbmdpbmcgdGhlIGNvbGxlY3Rpb24KKyAgICBzdGF0ZSwgeW91IGNhbiBjb250cm9sIGV2ZW50IGFnZ3JlZ2F0aW9uIGF0IGEgdmVyeSBmaW5lCisgICAgZ3JhbnVsYXJpdHkuICBIb3dldmVyLCB0aGVyZSBpcyBub3QgbXVjaCBkaWZmZXJlbmNlIGluIHJlZ2FyZCB0bworICAgIGV4ZWN1dGlvbiBzcGVlZCBvZiBDYWxsZ3JpbmQuICBCeSBkZWZhdWx0LCBjb2xsZWN0aW9uIGlzIHN3aXRjaGVkCisgICAgb24sIGJ1dCBjYW4gYmUgZGlzYWJsZWQgYnkgZGlmZmVyZW50IG1lYW5zIChzZWUgYmVsb3cpLiAgU2Vjb25kLAorICAgIHRoZXJlIGlzIHRoZSA8c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT5pbnN0cnVtZW50YXRpb24gbW9kZTwvZW0+PC9zcGFuPiBpbiB3aGljaAorICAgIENhbGxncmluZCBpcyBydW5uaW5nLiBUaGlzIG1vZGUgZWl0aGVyIGNhbiBiZSBvbiBvciBvZmYuIElmCisgICAgaW5zdHJ1bWVudGF0aW9uIGlzIG9mZiwgbm8gb2JzZXJ2YXRpb24gb2YgYWN0aW9ucyBpbiB0aGUgcHJvZ3JhbQorICAgIHdpbGwgYmUgZG9uZSBhbmQgdGh1cywgbm8gYWN0aW9ucyB3aWxsIGJlIGZvcndhcmRlZCB0byB0aGUKKyAgICBzaW11bGF0b3Igd2hpY2ggY291bGQgdHJpZ2dlciBldmVudHMuIEluIHRoZSBlbmQsIG5vIGV2ZW50cyB3aWxsCisgICAgYmUgYWdncmVnYXRlZC4gIFRoZSBodWdlIGJlbmVmaXQgaXMgdGhlIG11Y2ggaGlnaGVyIHNwZWVkIHdpdGgKKyAgICBpbnN0cnVtZW50YXRpb24gc3dpdGNoZWQgb2ZmLiAgSG93ZXZlciwgdGhpcyBvbmx5IHNob3VsZCBiZSB1c2VkCisgICAgd2l0aCBjYXJlIGFuZCBpbiBhIGNvYXJzZSBmYXNoaW9uOiBldmVyeSBtb2RlIGNoYW5nZSByZXNldHMgdGhlCisgICAgc2ltdWxhdG9yIHN0YXRlIChpZS4gd2hldGhlciBhIG1lbW9yeSBibG9jayBpcyBjYWNoZWQgb3Igbm90KSBhbmQKKyAgICBmbHVzaGVzIFZhbGdyaW5kcyBpbnRlcm5hbCBjYWNoZSBvZiBpbnN0cnVtZW50ZWQgY29kZSBibG9ja3MsCisgICAgcmVzdWx0aW5nIGluIGxhdGVuY3kgcGVuYWx0eSBhdCBzd2l0Y2hpbmcgdGltZS4gQWxzbywgY2FjaGUKKyAgICBzaW11bGF0b3IgcmVzdWx0cyBkaXJlY3RseSBhZnRlciBzd2l0Y2hpbmcgb24gaW5zdHJ1bWVudGF0aW9uIHdpbGwKKyAgICBiZSBza2V3ZWQgZHVlIHRvIGlkZW50aWZpZWQgY2FjaGUgbWlzc2VzIHdoaWNoIHdvdWxkIG5vdCBoYXBwZW4gaW4KKyAgICByZWFsaXR5IChpZiB5b3UgY2FyZSBhYm91dCB0aGlzIHdhcm0tdXAgZWZmZWN0LCB5b3Ugc2hvdWxkIG1ha2UKKyAgICBzdXJlIHRvIHRlbXBvcmFybHkgaGF2ZSBjb2xsZWN0aW9uIHN0YXRlIHN3aXRjaGVkIG9mZiBkaXJlY3RseQorICAgIGFmdGVyIHR1cm5pbmcgaW5zdHJ1bWVudGF0aW9uIG1vZGUgb24pLiBIb3dldmVyLCBzd2l0Y2hpbmcKKyAgICBpbnN0cnVtZW50YXRpb24gc3RhdGUgaXMgdmVyeSB1c2VmdWwgdG8gc2tpcCBsYXJnZXIgcHJvZ3JhbSBwaGFzZXMKKyAgICBzdWNoIGFzIGFuIGluaXRpYWxpemF0aW9uIHBoYXNlLiBCeSBkZWZhdWx0LCBpbnN0cnVtZW50YXRpb24gaXMKKyAgICBzd2l0Y2hlZCBvbiwgYnV0IGFzIHdpdGggdGhlIGNvbGxlY3Rpb24gc3RhdGUsIGNhbiBiZSBjaGFuZ2VkIGJ5CisgICAgdmFyaW91cyBtZWFucy4KKyAgPC9wPgorPHA+Q2FsbGdyaW5kIGNhbiBzdGFydCB3aXRoIGluc3RydW1lbnRhdGlvbiBtb2RlIHN3aXRjaGVkIG9mZiBieQorICAgIHNwZWNpZnlpbmcKKyAgICBvcHRpb24gPGNvZGUgY2xhc3M9Im9wdGlvbiI+PGEgY2xhc3M9InhyZWYiIGhyZWY9ImNsLW1hbnVhbC5odG1sI29wdC5pbnN0ci1hdHN0YXJ0Ij4tLWluc3RyLWF0c3RhcnQ8L2E+PW5vPC9jb2RlPi4KKyAgICBBZnRlcndhcmRzLCBpbnN0cnVtZW50YXRpb24gY2FuIGJlIGNvbnRyb2xsZWQgaW4gdHdvIHdheXM6IGZpcnN0LAorICAgIGludGVyYWN0aXZlbHkgd2l0aDogPC9wPgorPHByZSBjbGFzcz0ic2NyZWVuIj5jYWxsZ3JpbmRfY29udHJvbCAtaSBvbjwvcHJlPgorPHA+IChhbmQKKyAgICBzd2l0Y2hpbmcgb2ZmIGFnYWluIGJ5IHNwZWNpZnlpbmcgIm9mZiIgaW5zdGVhZCBvZiAib24iKS4gIFNlY29uZCwKKyAgICBpbnN0cnVtZW50YXRpb24gc3RhdGUgY2FuIGJlIHByb2dyYW1hdGljYWxseSBjaGFuZ2VkIHdpdGggdGhlCisgICAgbWFjcm9zIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+PGEgY2xhc3M9InhyZWYiIGhyZWY9ImNsLW1hbnVhbC5odG1sI2NyLnN0YXJ0LWluc3RyIj5DQUxMR1JJTkRfU1RBUlRfSU5TVFJVTUVOVEFUSU9OPC9hPjs8L2NvZGU+CisgICAgYW5kIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+PGEgY2xhc3M9InhyZWYiIGhyZWY9ImNsLW1hbnVhbC5odG1sI2NyLnN0b3AtaW5zdHIiPkNBTExHUklORF9TVE9QX0lOU1RSVU1FTlRBVElPTjwvYT47PC9jb2RlPi4KKyAgPC9wPgorPHA+U2ltaWxhcmx5LCB0aGUgY29sbGVjdGlvbiBzdGF0ZSBhdCBwcm9ncmFtIHN0YXJ0IGNhbiBiZQorICAgIHN3aXRjaGVkIG9mZgorICAgIGJ5IDxjb2RlIGNsYXNzPSJvcHRpb24iPjxhIGNsYXNzPSJ4cmVmIiBocmVmPSJjbC1tYW51YWwuaHRtbCNvcHQuaW5zdHItYXRzdGFydCI+LS1pbnN0ci1hdHN0YXJ0PC9hPj1ubzwvY29kZT4uIER1cmluZworICAgIGV4ZWN1dGlvbiwgaXQgY2FuIGJlIGNvbnRyb2xsZWQgcHJvZ3JhbWF0aWNhbGx5IHdpdGggdGhlCisgICAgbWFjcm8gPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5DQUxMR1JJTkRfVE9HR0xFX0NPTExFQ1Q7PC9jb2RlPi4KKyAgICBGdXJ0aGVyLCB5b3UgY2FuIGxpbWl0IGV2ZW50IGNvbGxlY3Rpb24gdG8gYSBzcGVjaWZpYyBmdW5jdGlvbiBieQorICAgIHVzaW5nIDxjb2RlIGNsYXNzPSJvcHRpb24iPjxhIGNsYXNzPSJ4cmVmIiBocmVmPSJjbC1tYW51YWwuaHRtbCNvcHQudG9nZ2xlLWNvbGxlY3QiPi0tdG9nZ2xlLWNvbGxlY3Q8L2E+PWZ1bmN0aW9uPC9jb2RlPi4KKyAgICBUaGlzIHdpbGwgdG9nZ2xlIHRoZSBjb2xsZWN0aW9uIHN0YXRlIG9uIGVudGVyaW5nIGFuZCBsZWF2aW5nIHRoZQorICAgIHNwZWNpZmllZCBmdW5jdGlvbi4gIFdoZW4gdGhpcyBvcHRpb24gaXMgaW4gZWZmZWN0LCB0aGUgZGVmYXVsdAorICAgIGNvbGxlY3Rpb24gc3RhdGUgYXQgcHJvZ3JhbSBzdGFydCBpcyAib2ZmIi4gIE9ubHkgZXZlbnRzIGhhcHBlbmluZworICAgIHdoaWxlIHJ1bm5pbmcgaW5zaWRlIG9mIHRoZSBnaXZlbiBmdW5jdGlvbiB3aWxsIGJlCisgICAgY29sbGVjdGVkLiBSZWN1cnNpdmUgY2FsbHMgb2YgdGhlIGdpdmVuIGZ1bmN0aW9uIGRvIG5vdCB0cmlnZ2VyCisgICAgYW55IGFjdGlvbi4gVGhpcyBvcHRpb24gY2FuIGJlIGdpdmVuIG11bHRpcGxlIHRpbWVzIHRvIHNwZWNpZnkKKyAgICBkaWZmZXJlbnQgZnVuY3Rpb25zIG9mIGludGVyZXN0LjwvcD4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDIiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJjbC1tYW51YWwuYnVzZXZlbnRzIj48L2E+Ni4yLjMuoENvdW50aW5nIGdsb2JhbCBidXMgZXZlbnRzPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPkZvciBhY2Nlc3MgdG8gc2hhcmVkIGRhdGEgYW1vbmcgdGhyZWFkcyBpbiBhIG11bHRpdGhyZWFkZWQKKyAgY29kZSwgc3luY2hyb25pemF0aW9uIGlzIHJlcXVpcmVkIHRvIGF2b2lkIHJhY2VkIGNvbmRpdGlvbnMuCisgIFN5bmNocm9uaXphdGlvbiBwcmltaXRpdmVzIGFyZSB1c3VhbGx5IGltcGxlbWVudGVkIHZpYSBhdG9taWMgaW5zdHJ1Y3Rpb25zLgorICBIb3dldmVyLCBleGNlc3NpdmUgdXNlIG9mIHN1Y2ggaW5zdHJ1Y3Rpb25zIGNhbiBsZWFkIHRvIHBlcmZvcm1hbmNlCisgIGlzc3Vlcy48L3A+Cis8cD5UbyBlbmFibGUgYW5hbHlzaXMgb2YgdGhpcyBwcm9ibGVtLCBDYWxsZ3JpbmQgb3B0aW9uYWxseSBjYW4gY291bnQKKyAgdGhlIG51bWJlciBvZiBhdG9taWMgaW5zdHJ1Y3Rpb25zIGV4ZWN1dGVkLiBNb3JlIHByZWNpc2VseSwgZm9yIHg4Ni94ODZfNjQsCisgIHRoZXNlIGFyZSBpbnN0cnVjdGlvbnMgdXNpbmcgYSBsb2NrIHByZWZpeC4gRm9yIGFyY2hpdGVjdHVyZXMgc3VwcG9ydGluZworICBMTC9TQywgdGhlc2UgYXJlIHRoZSBudW1iZXIgb2YgU0MgaW5zdHJ1Y3Rpb25zIGV4ZWN1dGVkLiBGb3IgYm90aCwgdGhlIHRlcm0KKyAgImdsb2JhbCBidXMgZXZlbnRzIiBpcyB1c2VkLjwvcD4KKzxwPlRoZSBzaG9ydCBuYW1lIG9mIHRoZSBldmVudCB0eXBlIHVzZWQgZm9yIGdsb2JhbCBidXMgZXZlbnRzIGlzICJHZSIuCisgIFRvIGNvdW50IGdsb2JhbCBidXMgZXZlbnRzLCB1c2UgPGNvZGUgY2xhc3M9Im9wdGlvbiI+PGEgY2xhc3M9InhyZWYiIGhyZWY9ImNsLW1hbnVhbC5odG1sI2Nsb3B0LmNvbGxlY3QtYnVzIj4tLWNvbGxlY3QtYnVzPC9hPj15ZXM8L2NvZGU+LgorICA8L3A+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0iY2wtbWFudWFsLmN5Y2xlcyI+PC9hPjYuMi40LqBBdm9pZGluZyBjeWNsZXM8L2gzPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+SW5mb3JtYWxseSBzcGVha2luZywgYSBjeWNsZSBpcyBhIGdyb3VwIG9mIGZ1bmN0aW9ucyB3aGljaAorICBjYWxsIGVhY2ggb3RoZXIgaW4gYSByZWN1cnNpdmUgd2F5LjwvcD4KKzxwPkZvcm1hbGx5IHNwZWFraW5nLCBhIGN5Y2xlIGlzIGEgbm9uZW1wdHkgc2V0IFMgb2YgZnVuY3Rpb25zLAorICBzdWNoIHRoYXQgZm9yIGV2ZXJ5IHBhaXIgb2YgZnVuY3Rpb25zIEYgYW5kIEcgaW4gUywgaXQgaXMgcG9zc2libGUKKyAgdG8gY2FsbCBmcm9tIEYgdG8gRyAocG9zc2libHkgdmlhIGludGVybWVkaWF0ZSBmdW5jdGlvbnMpIGFuZCBhbHNvCisgIGZyb20gRyB0byBGLiAgRnVydGhlcm1vcmUsIFMgbXVzdCBiZSBtYXhpbWFsIC0tIHRoYXQgaXMsIGJlIHRoZQorICBsYXJnZXN0IHNldCBvZiBmdW5jdGlvbnMgc2F0aXNmeWluZyB0aGlzIHByb3BlcnR5LiAgRm9yIGV4YW1wbGUsIGlmCisgIGEgdGhpcmQgZnVuY3Rpb24gSCBpcyBjYWxsZWQgZnJvbSBpbnNpZGUgUyBhbmQgY2FsbHMgYmFjayBpbnRvIFMsCisgIHRoZW4gSCBpcyBhbHNvIHBhcnQgb2YgdGhlIGN5Y2xlIGFuZCBzaG91bGQgYmUgaW5jbHVkZWQgaW4gUy48L3A+Cis8cD5SZWN1cnNpb24gaXMgcXVpdGUgdXN1YWwgaW4gcHJvZ3JhbXMsIGFuZCB0aGVyZWZvcmUsIGN5Y2xlcworICBzb21ldGltZXMgYXBwZWFyIGluIHRoZSBjYWxsIGdyYXBoIG91dHB1dCBvZiBDYWxsZ3JpbmQuIEhvd2V2ZXIsCisgIHRoZSB0aXRsZSBvZiB0aGlzIGNoYXB0ZXIgc2hvdWxkIHJhaXNlIHR3byBxdWVzdGlvbnM6IFdoYXQgaXMgYmFkCisgIGFib3V0IGN5Y2xlcyB3aGljaCBtYWtlcyB5b3Ugd2FudCB0byBhdm9pZCB0aGVtPyBBbmQ6IEhvdyBjYW4KKyAgY3ljbGVzIGJlIGF2b2lkZWQgd2l0aG91dCBjaGFuZ2luZyBwcm9ncmFtIGNvZGU/PC9wPgorPHA+Q3ljbGVzIGFyZSBub3QgYmFkIGluIGl0c2VsZiwgYnV0IHRlbmQgdG8gbWFrZSBwZXJmb3JtYW5jZQorICBhbmFseXNpcyBvZiB5b3VyIGNvZGUgaGFyZGVyLiBUaGlzIGlzIGJlY2F1c2UgaW5jbHVzaXZlIGNvc3RzCisgIGZvciBjYWxscyBpbnNpZGUgb2YgYSBjeWNsZSBhcmUgbWVhbmluZ2xlc3MuIFRoZSBkZWZpbml0aW9uIG9mCisgIGluY2x1c2l2ZSBjb3N0LCBpLmUuIHNlbGYgY29zdCBvZiBhIGZ1bmN0aW9uIHBsdXMgaW5jbHVzaXZlIGNvc3QKKyAgb2YgaXRzIGNhbGxlZXMsIG5lZWRzIGEgdG9wb2xvZ2ljYWwgb3JkZXIgYW1vbmcgZnVuY3Rpb25zLiBGb3IKKyAgY3ljbGVzLCB0aGlzIGRvZXMgbm90IGhvbGQgdHJ1ZTogY2FsbGVlcyBvZiBhIGZ1bmN0aW9uIGluIGEgY3ljbGUgaW5jbHVkZQorICB0aGUgZnVuY3Rpb24gaXRzZWxmLiBUaGVyZWZvcmUsIEtDYWNoZWdyaW5kIGRvZXMgY3ljbGUgZGV0ZWN0aW9uCisgIGFuZCBza2lwcyB2aXN1YWxpemF0aW9uIG9mIGFueSBpbmNsdXNpdmUgY29zdCBmb3IgY2FsbHMgaW5zaWRlCisgIG9mIGN5Y2xlcy4gRnVydGhlciwgYWxsIGZ1bmN0aW9ucyBpbiBhIGN5Y2xlIGFyZSBjb2xsYXBzZWQgaW50byBhcnRpZmljYWwKKyAgZnVuY3Rpb25zIGNhbGxlZCBsaWtlIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+Q3ljbGUgMTwvY29kZT4uPC9wPgorPHA+Tm93LCB3aGVuIGEgcHJvZ3JhbSBleHBvc2VzIHJlYWxseSBiaWcgY3ljbGVzIChhcyBpcworICB0cnVlIGZvciBzb21lIEdVSSBjb2RlLCBvciBpbiBnZW5lcmFsIGNvZGUgdXNpbmcgZXZlbnQgb3IgY2FsbGJhY2sgYmFzZWQKKyAgcHJvZ3JhbW1pbmcgc3R5bGUpLCB5b3UgbG9zZSB0aGUgbmljZSBwcm9wZXJ0eSB0byBsZXQgeW91IHBpbnBvaW50CisgIHRoZSBib3R0bGVuZWNrcyBieSBmb2xsb3dpbmcgY2FsbCBjaGFpbnMgZnJvbQorICA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPm1haW48L2NvZGU+LCBndWlkZWQgdmlhCisgIGluY2x1c2l2ZSBjb3N0LiBJbiBhZGRpdGlvbiwgS0NhY2hlZ3JpbmQgbG9zZXMgaXRzIGFiaWxpdHkgdG8gc2hvdworICBpbnRlcmVzdGluZyBwYXJ0cyBvZiB0aGUgY2FsbCBncmFwaCwgYXMgaXQgdXNlcyBpbmNsdXNpdmUgY29zdHMgdG8KKyAgY3V0IG9mZiB1bmludGVyZXN0aW5nIGFyZWFzLjwvcD4KKzxwPkRlc3BpdGUgdGhlIG1lYW5pbmdsZXNzIG9mIGluY2x1c2l2ZSBjb3N0cyBpbiBjeWNsZXMsIHRoZSBiaWcKKyAgZHJhd2JhY2sgZm9yIHZpc3VhbGl6YXRpb24gbW90aXZhdGVzIHRoZSBwb3NzaWJpbGl0eSB0byB0ZW1wb3JhcmlseQorICBzd2l0Y2ggb2ZmIGN5Y2xlIGRldGVjdGlvbiBpbiBLQ2FjaGVncmluZCwgd2hpY2ggY2FuIGxlYWQgdG8KKyAgbWlzZ3VpZGluZyB2aXN1YWxpemF0aW9uLiBIb3dldmVyLCBvZnRlbiBjeWNsZXMgYXBwZWFyIGJlY2F1c2Ugb2YKKyAgdW5sdWNreSBzdXBlcnBvc2l0aW9uIG9mIGluZGVwZW5kZW50IGNhbGwgY2hhaW5zIGluIGEgd2F5IHRoYXQKKyAgdGhlIHByb2ZpbGUgcmVzdWx0IHdpbGwgc2VlIGEgY3ljbGUuIE5lZ2xlY3RpbmcgdW5pbnRlcmVzdGluZworICBjYWxscyB3aXRoIHZlcnkgc21hbGwgbWVhc3VyZWQgaW5jbHVzaXZlIGNvc3Qgd291bGQgYnJlYWsgdGhlc2UKKyAgY3ljbGVzLiBJbiBzdWNoIGNhc2VzLCBpbmNvcnJlY3QgaGFuZGxpbmcgb2YgY3ljbGVzIGJ5IG5vdCBkZXRlY3RpbmcKKyAgdGhlbSBzdGlsbCBnaXZlcyBtZWFuaW5nZnVsIHByb2ZpbGluZyB2aXN1YWxpemF0aW9uLjwvcD4KKzxwPkl0IGhhcyB0byBiZSBub3RlZCB0aGF0IGN1cnJlbnRseSwgPHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+Y2FsbGdyaW5kX2Fubm90YXRlPC9zdHJvbmc+PC9zcGFuPgorICBkb2VzIG5vdCBkbyBhbnkgY3ljbGUgZGV0ZWN0aW9uIGF0IGFsbC4gRm9yIHByb2dyYW0gZXhlY3V0aW9ucyB3aXRoIGZ1bmN0aW9uCisgIHJlY3Vyc2lvbiwgaXQgZS5nLiBjYW4gcHJpbnQgbm9uc2Vuc2UgaW5jbHVzaXZlIGNvc3RzIHdheSBhYm92ZSAxMDAlLjwvcD4KKzxwPkFmdGVyIGRlc2NyaWJpbmcgd2h5IGN5Y2xlcyBhcmUgYmFkIGZvciBwcm9maWxpbmcsIGl0IGlzIHdvcnRoCisgIHRhbGtpbmcgYWJvdXQgY3ljbGUgYXZvaWRhbmNlLiBUaGUga2V5IGluc2lnaHQgaGVyZSBpcyB0aGF0IHN5bWJvbHMgaW4KKyAgdGhlIHByb2ZpbGUgZGF0YSBkbyBub3QgaGF2ZSB0byBleGFjdGx5IG1hdGNoIHRoZSBzeW1ib2xzIGZvdW5kIGluIHRoZQorICBwcm9ncmFtLiBJbnN0ZWFkLCB0aGUgc3ltYm9sIG5hbWUgY291bGQgZW5jb2RlIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyAgZnJvbSB0aGUgY3VycmVudCBleGVjdXRpb24gY29udGV4dCBzdWNoIGFzIHJlY3Vyc2lvbiBsZXZlbCBvZiB0aGUKKyAgY3VycmVudCBmdW5jdGlvbiwgb3IgZXZlbiBzb21lIHBhcnQgb2YgdGhlIGNhbGwgY2hhaW4gbGVhZGluZyB0byB0aGUKKyAgZnVuY3Rpb24uIFdoaWxlIGVuY29kaW5nIG9mIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gaW50byBzeW1ib2xzIGlzCisgIHF1aXRlIGNhcGFibGUgb2YgYXZvaWRpbmcgY3ljbGVzLCBpdCBoYXMgdG8gYmUgdXNlZCBjYXJlZnVsbHkgdG8gbm90IGNhdXNlCisgIHN5bWJvbCBleHBsb3Npb24uIFRoZSBsYXR0ZXIgaW1wb3NlcyBsYXJnZSBtZW1vcnkgcmVxdWlyZW1lbnQgZm9yIENhbGxncmluZAorICB3aXRoIHBvc3NpYmxlIG91dC1vZi1tZW1vcnkgY29uZGl0aW9ucywgYW5kIGJpZyBwcm9maWxlIGRhdGEgZmlsZXMuPC9wPgorPHA+QSBmdXJ0aGVyIHBvc3NpYmlsaXR5IHRvIGF2b2lkIGN5Y2xlcyBpbiBDYWxsZ3JpbmQncyBwcm9maWxlIGRhdGEKKyAgb3V0cHV0IGlzIHRvIHNpbXBseSBsZWF2ZSBvdXQgZ2l2ZW4gZnVuY3Rpb25zIGluIHRoZSBjYWxsIGdyYXBoLiBPZiBjb3Vyc2UsIHRoaXMKKyAgYWxzbyBza2lwcyBhbnkgY2FsbCBpbmZvcm1hdGlvbiBmcm9tIGFuZCB0byBhbiBpZ25vcmVkIGZ1bmN0aW9uLCBhbmQgdGh1cyBjYW4KKyAgYnJlYWsgYSBjeWNsZS4gQ2FuZGlkYXRlcyBmb3IgdGhpcyB0eXBpY2FsbHkgYXJlIGRpc3BhdGNoZXIgZnVuY3Rpb25zIGluIGV2ZW50CisgIGRyaXZlbiBjb2RlLiBUaGUgb3B0aW9uIHRvIGlnbm9yZSBjYWxscyB0byBhIGZ1bmN0aW9uIGlzCisgIDxjb2RlIGNsYXNzPSJvcHRpb24iPjxhIGNsYXNzPSJ4cmVmIiBocmVmPSJjbC1tYW51YWwuaHRtbCNvcHQuZm4tc2tpcCI+LS1mbi1za2lwPC9hPj1mdW5jdGlvbjwvY29kZT4uIEFzaWRlIGZyb20KKyAgcG9zc2libHkgYnJlYWtpbmcgY3ljbGVzLCB0aGlzIGlzIHVzZWQgaW4gQ2FsbGdyaW5kIHRvIHNraXAKKyAgdHJhbXBvbGluZSBmdW5jdGlvbnMgaW4gdGhlIFBMVCBzZWN0aW9ucworICBmb3IgY2FsbHMgdG8gZnVuY3Rpb25zIGluIHNoYXJlZCBsaWJyYXJpZXMuIFlvdSBjYW4gc2VlIHRoZSBkaWZmZXJlbmNlCisgIGlmIHlvdSBwcm9maWxlIHdpdGggPGNvZGUgY2xhc3M9Im9wdGlvbiI+PGEgY2xhc3M9InhyZWYiIGhyZWY9ImNsLW1hbnVhbC5odG1sI29wdC5za2lwLXBsdCI+LS1za2lwLXBsdDwvYT49bm88L2NvZGU+LgorICBJZiBhIGNhbGwgaXMgaWdub3JlZCwgaXRzIGNvc3QgZXZlbnRzIHdpbGwgYmUgcHJvcGFnYXRlZCB0byB0aGUKKyAgZW5jbG9zaW5nIGZ1bmN0aW9uLjwvcD4KKzxwPklmIHlvdSBoYXZlIGEgcmVjdXJzaXZlIGZ1bmN0aW9uLCB5b3UgY2FuIGRpc3Rpbmd1aXNoIHRoZSBmaXJzdAorICAxMCByZWN1cnNpb24gbGV2ZWxzIGJ5IHNwZWNpZnlpbmcKKyAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+PGEgY2xhc3M9InhyZWYiIGhyZWY9ImNsLW1hbnVhbC5odG1sI29wdC5zZXBhcmF0ZS1yZWNzLW51bSI+LS1zZXBhcmF0ZS1yZWNzMTA8L2E+PWZ1bmN0aW9uPC9jb2RlPi4gIAorICBPciBmb3IgYWxsIGZ1bmN0aW9ucyB3aXRoIAorICA8Y29kZSBjbGFzcz0ib3B0aW9uIj48YSBjbGFzcz0ieHJlZiIgaHJlZj0iY2wtbWFudWFsLmh0bWwjb3B0LnNlcGFyYXRlLXJlY3MiPi0tc2VwYXJhdGUtcmVjczwvYT49MTA8L2NvZGU+LCBidXQgdGhpcyB3aWxsIAorICBnaXZlIHlvdSBtdWNoIGJpZ2dlciBwcm9maWxlIGRhdGEgZmlsZXMuICBJbiB0aGUgcHJvZmlsZSBkYXRhLCB5b3Ugd2lsbCBzZWUKKyAgdGhlIHJlY3Vyc2lvbiBsZXZlbHMgb2YgImZ1bmMiIGFzIHRoZSBkaWZmZXJlbnQgZnVuY3Rpb25zIHdpdGggbmFtZXMKKyAgImZ1bmMiLCAiZnVuYycyIiwgImZ1bmMnMyIgYW5kIHNvIG9uLjwvcD4KKzxwPklmIHlvdSBoYXZlIGNhbGwgY2hhaW5zICJBICZndDsgQiAmZ3Q7IEMiIGFuZCAiQSAmZ3Q7IEMgJmd0OyBCIgorICBpbiB5b3VyIHByb2dyYW0sIHlvdSB1c3VhbGx5IGdldCBhICJmYWxzZSIgY3ljbGUgIkIgJmx0OyZndDsgQyIuIFVzZSAKKyAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+PGEgY2xhc3M9InhyZWYiIGhyZWY9ImNsLW1hbnVhbC5odG1sI29wdC5zZXBhcmF0ZS1jYWxsZXJzLW51bSI+LS1zZXBhcmF0ZS1jYWxsZXJzMjwvYT49QjwvY29kZT4gCisgIDxjb2RlIGNsYXNzPSJvcHRpb24iPjxhIGNsYXNzPSJ4cmVmIiBocmVmPSJjbC1tYW51YWwuaHRtbCNvcHQuc2VwYXJhdGUtY2FsbGVycy1udW0iPi0tc2VwYXJhdGUtY2FsbGVyczI8L2E+PUM8L2NvZGU+LAorICBhbmQgZnVuY3Rpb25zICJCIiBhbmQgIkMiIHdpbGwgYmUgdHJlYXRlZCBhcyBkaWZmZXJlbnQgZnVuY3Rpb25zIAorICBkZXBlbmRpbmcgb24gdGhlIGRpcmVjdCBjYWxsZXIuIFVzaW5nIHRoZSBhcG9zdHJvcGhlIGZvciBhcHBlbmRpbmcgCisgIHRoaXMgImNvbnRleHQiIHRvIHRoZSBmdW5jdGlvbiBuYW1lLCB5b3UgZ2V0ICJBICZndDsgQidBICZndDsgQydCIiAKKyAgYW5kICJBICZndDsgQydBICZndDsgQidDIiwgYW5kIHRoZXJlIHdpbGwgYmUgbm8gY3ljbGUuIFVzZSAKKyAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+PGEgY2xhc3M9InhyZWYiIGhyZWY9ImNsLW1hbnVhbC5odG1sI29wdC5zZXBhcmF0ZS1jYWxsZXJzIj4tLXNlcGFyYXRlLWNhbGxlcnM8L2E+PTI8L2NvZGU+IHRvIGdldCBhIDItY2FsbGVyIAorICBkZXBlbmRlbmN5IGZvciBhbGwgZnVuY3Rpb25zLiAgTm90ZSB0aGF0IGRvaW5nIHRoaXMgd2lsbCBpbmNyZWFzZQorICB0aGUgc2l6ZSBvZiBwcm9maWxlIGRhdGEgZmlsZXMuPC9wPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MiI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9ImNsLW1hbnVhbC5mb3JraW5ncHJvZ3JhbXMiPjwvYT42LjIuNS6gRm9ya2luZyBQcm9ncmFtczwvaDM+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD5JZiB5b3VyIHByb2dyYW0gZm9ya3MsIHRoZSBjaGlsZCB3aWxsIGluaGVyaXQgYWxsIHRoZSBwcm9maWxpbmcKKyAgZGF0YSB0aGF0IGhhcyBiZWVuIGdhdGhlcmVkIGZvciB0aGUgcGFyZW50LiBUbyBzdGFydCB3aXRoIGVtcHR5IHByb2ZpbGUKKyAgY291bnRlciB2YWx1ZXMgaW4gdGhlIGNoaWxkLCB0aGUgY2xpZW50IHJlcXVlc3QKKyAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij48YSBjbGFzcz0ieHJlZiIgaHJlZj0iY2wtbWFudWFsLmh0bWwjY3IuemVyby1zdGF0cyI+Q0FMTEdSSU5EX1pFUk9fU1RBVFM8L2E+OzwvY29kZT4KKyAgY2FuIGJlIGluc2VydGVkIGludG8gY29kZSB0byBiZSBleGVjdXRlZCBieSB0aGUgY2hpbGQsIGRpcmVjdGx5IGFmdGVyCisgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+Zm9yazwvY29kZT4uPC9wPgorPHA+SG93ZXZlciwgeW91IHdpbGwgaGF2ZSB0byBtYWtlIHN1cmUgdGhhdCB0aGUgb3V0cHV0IGZpbGUgZm9ybWF0IHN0cmluZworICAoY29udHJvbGxlZCBieSA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWNhbGxncmluZC1vdXQtZmlsZTwvY29kZT4pIGRvZXMgY29udGFpbgorICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4lcDwvY29kZT4gKHdoaWNoIGlzIHRydWUgYnkgZGVmYXVsdCkuIE90aGVyd2lzZSwgdGhlCisgIG91dHB1dHMgZnJvbSB0aGUgcGFyZW50IGFuZCBjaGlsZCB3aWxsIG92ZXJ3cml0ZSBlYWNoIG90aGVyIG9yIHdpbGwgYmUKKyAgaW50ZXJtaW5nbGVkLCB3aGljaCBhbG1vc3QgY2VydGFpbmx5IGlzIG5vdCB3aGF0IHlvdSB3YW50LjwvcD4KKzxwPllvdSB3aWxsIGJlIGFibGUgdG8gY29udHJvbCB0aGUgbmV3IGNoaWxkIGluZGVwZW5kZW50bHkgZnJvbQorICB0aGUgcGFyZW50IHZpYSBjYWxsZ3JpbmRfY29udHJvbC48L3A+Cis8L2Rpdj4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDEiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj4KKzxhIG5hbWU9ImNsLW1hbnVhbC5vcHRpb25zIj48L2E+Ni4zLqBDYWxsZ3JpbmQgQ29tbWFuZC1saW5lIE9wdGlvbnM8L2gyPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+CitJbiB0aGUgZm9sbG93aW5nLCBvcHRpb25zIGFyZSBncm91cGVkIGludG8gY2xhc3Nlcy4KKzwvcD4KKzxwPgorU29tZSBvcHRpb25zIGFsbG93IHRoZSBzcGVjaWZpY2F0aW9uIG9mIGEgZnVuY3Rpb24vc3ltYm9sIG5hbWUsIHN1Y2ggYXMKKzxjb2RlIGNsYXNzPSJvcHRpb24iPjxhIGNsYXNzPSJ4cmVmIiBocmVmPSJjbC1tYW51YWwuaHRtbCNvcHQuZHVtcC1iZWZvcmUiPi0tZHVtcC1iZWZvcmU8L2E+PWZ1bmN0aW9uPC9jb2RlPiwgb3IKKzxjb2RlIGNsYXNzPSJvcHRpb24iPjxhIGNsYXNzPSJ4cmVmIiBocmVmPSJjbC1tYW51YWwuaHRtbCNvcHQuZm4tc2tpcCI+LS1mbi1za2lwPC9hPj1mdW5jdGlvbjwvY29kZT4uIEFsbCB0aGVzZSBvcHRpb25zCitjYW4gYmUgc3BlY2lmaWVkIG11bHRpcGxlIHRpbWVzIGZvciBkaWZmZXJlbnQgZnVuY3Rpb25zLgorSW4gYWRkaXRpb24sIHRoZSBmdW5jdGlvbiBzcGVjaWZpY2F0aW9ucyBhY3R1YWxseSBhcmUgcGF0dGVybnMgYnkgc3VwcG9ydGluZwordGhlIHVzZSBvZiB3aWxkY2FyZHMgJyonICh6ZXJvIG9yIG1vcmUgYXJiaXRyYXJ5IGNoYXJhY3RlcnMpIGFuZCAnPycKKyhleGFjdGx5IG9uZSBhcmJpdHJhcnkgY2hhcmFjdGVyKSwgc2ltaWxhciB0byBmaWxlIG5hbWUgZ2xvYmJpbmcgaW4gdGhlCitzaGVsbC4gVGhpcyBmZWF0dXJlIGlzIGltcG9ydGFudCBlc3BlY2lhbGx5IGZvciBDKyssIGFzIHdpdGhvdXQgd2lsZGNhcmQKK3VzYWdlLCB0aGUgZnVuY3Rpb24gd291bGQgaGF2ZSB0byBiZSBzcGVjaWZpZWQgaW4gZnVsbCBleHRlbnQsIGluY2x1ZGluZworcGFyYW1ldGVyIHNpZ25hdHVyZS4gPC9wPgorPGRpdiBjbGFzcz0ic2VjdDIiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJjbC1tYW51YWwub3B0aW9ucy5jcmVhdGlvbiI+PC9hPjYuMy4xLqBEdW1wIGNyZWF0aW9uIG9wdGlvbnM8L2gzPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+CitUaGVzZSBvcHRpb25zIGluZmx1ZW5jZSB0aGUgbmFtZSBhbmQgZm9ybWF0IG9mIHRoZSBwcm9maWxlIGRhdGEgZmlsZXMuCis8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPgorPGEgbmFtZT0iY2wub3B0cy5saXN0LmNyZWF0aW9uIj48L2E+PGRsIGNsYXNzPSJ2YXJpYWJsZWxpc3QiPgorPGR0PgorPGEgbmFtZT0ib3B0LmNhbGxncmluZC1vdXQtZmlsZSI+PC9hPjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tY2FsbGdyaW5kLW91dC1maWxlPSZsdDtmaWxlJmd0OyA8L2NvZGU+CisgICAgPC9zcGFuPgorPC9kdD4KKzxkZD48cD5Xcml0ZSB0aGUgcHJvZmlsZSBkYXRhIHRvCisgICAgICAgICAgICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmZpbGU8L2NvZGU+IHJhdGhlciB0aGFuIHRvIHRoZSBkZWZhdWx0CisgICAgICAgICAgICBvdXRwdXQgZmlsZSwKKyAgICAgICAgICAgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+Y2FsbGdyaW5kLm91dC4mbHQ7cGlkJmd0OzwvY29kZT4uICBUaGUKKyAgICAgICAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPiVwPC9jb2RlPiBhbmQgPGNvZGUgY2xhc3M9Im9wdGlvbiI+JXE8L2NvZGU+IGZvcm1hdCBzcGVjaWZpZXJzCisgICAgICAgICAgICBjYW4gYmUgdXNlZCB0byBlbWJlZCB0aGUgcHJvY2VzcyBJRCBhbmQvb3IgdGhlIGNvbnRlbnRzIG9mIGFuCisgICAgICAgICAgICBlbnZpcm9ubWVudCB2YXJpYWJsZSBpbiB0aGUgbmFtZSwgYXMgaXMgdGhlIGNhc2UgZm9yIHRoZSBjb3JlCisgICAgICAgICAgICBvcHRpb24gPGNvZGUgY2xhc3M9Im9wdGlvbiI+PGEgY2xhc3M9InhyZWYiIGhyZWY9Im1hbnVhbC1jb3JlLmh0bWwjb3B0LmxvZy1maWxlIj4tLWxvZy1maWxlPC9hPjwvY29kZT4uCisgICAgICAgICAgICBXaGVuIG11bHRpcGxlIGR1bXBzIGFyZSBtYWRlLCB0aGUgZmlsZSBuYW1lCisgICAgICAgICAgICBpcyBtb2RpZmllZCBmdXJ0aGVyOyBzZWUgYmVsb3cuPC9wPjwvZGQ+Cis8ZHQ+Cis8YSBuYW1lPSJvcHQuZHVtcC1saW5lIj48L2E+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1kdW1wLWxpbmU9Jmx0O25vfHllcyZndDsgW2RlZmF1bHQ6IHllc10gPC9jb2RlPgorICAgIDwvc3Bhbj4KKzwvZHQ+Cis8ZGQ+PHA+VGhpcyBzcGVjaWZpZXMgdGhhdCBldmVudCBjb3VudGluZyBzaG91bGQgYmUgcGVyZm9ybWVkIGF0CisgICAgICBzb3VyY2UgbGluZSBncmFudWxhcml0eS4gVGhpcyBhbGxvd3Mgc291cmNlIGFubm90YXRpb24gZm9yIHNvdXJjZXMKKyAgICAgIHdoaWNoIGFyZSBjb21waWxlZCB3aXRoIGRlYnVnIGluZm9ybWF0aW9uCisgICAgICAoPGNvZGUgY2xhc3M9Im9wdGlvbiI+LWc8L2NvZGU+KS48L3A+PC9kZD4KKzxkdD4KKzxhIG5hbWU9Im9wdC5kdW1wLWluc3RyIj48L2E+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1kdW1wLWluc3RyPSZsdDtub3x5ZXMmZ3Q7IFtkZWZhdWx0OiBub10gPC9jb2RlPgorICAgIDwvc3Bhbj4KKzwvZHQ+Cis8ZGQ+PHA+VGhpcyBzcGVjaWZpZXMgdGhhdCBldmVudCBjb3VudGluZyBzaG91bGQgYmUgcGVyZm9ybWVkIGF0CisgICAgICBwZXItaW5zdHJ1Y3Rpb24gZ3JhbnVsYXJpdHkuCisgICAgICBUaGlzIGFsbG93cyBmb3IgYXNzZW1ibHkgY29kZQorICAgICAgYW5ub3RhdGlvbi4gIEN1cnJlbnRseSB0aGUgcmVzdWx0cyBjYW4gb25seSBiZSAKKyAgICAgIGRpc3BsYXllZCBieSBLQ2FjaGVncmluZC48L3A+PC9kZD4KKzxkdD4KKzxhIG5hbWU9Im9wdC5jb21wcmVzcy1zdHJpbmdzIj48L2E+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1jb21wcmVzcy1zdHJpbmdzPSZsdDtub3x5ZXMmZ3Q7IFtkZWZhdWx0OiB5ZXNdIDwvY29kZT4KKyAgICA8L3NwYW4+Cis8L2R0PgorPGRkPjxwPlRoaXMgb3B0aW9uIGluZmx1ZW5jZXMgdGhlIG91dHB1dCBmb3JtYXQgb2YgdGhlIHByb2ZpbGUgZGF0YS4KKyAgICAgIEl0IHNwZWNpZmllcyB3aGV0aGVyIHN0cmluZ3MgKGZpbGUgYW5kIGZ1bmN0aW9uIG5hbWVzKSBzaG91bGQgYmUKKyAgICAgIGlkZW50aWZpZWQgYnkgbnVtYmVycy4gVGhpcyBzaHJpbmtzIHRoZSBmaWxlLCAKKyAgICAgIGJ1dCBtYWtlcyBpdCBtb3JlIGRpZmZpY3VsdAorICAgICAgZm9yIGh1bWFucyB0byByZWFkICh3aGljaCBpcyBub3QgcmVjb21tZW5kZWQgaW4gYW55IGNhc2UpLjwvcD48L2RkPgorPGR0PgorPGEgbmFtZT0ib3B0LmNvbXByZXNzLXBvcyI+PC9hPjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tY29tcHJlc3MtcG9zPSZsdDtub3x5ZXMmZ3Q7IFtkZWZhdWx0OiB5ZXNdIDwvY29kZT4KKyAgICA8L3NwYW4+Cis8L2R0PgorPGRkPjxwPlRoaXMgb3B0aW9uIGluZmx1ZW5jZXMgdGhlIG91dHB1dCBmb3JtYXQgb2YgdGhlIHByb2ZpbGUgZGF0YS4KKyAgICAgIEl0IHNwZWNpZmllcyB3aGV0aGVyIG51bWVyaWNhbCBwb3NpdGlvbnMgYXJlIGFsd2F5cyBzcGVjaWZpZWQgYXMgYWJzb2x1dGUKKyAgICAgIHZhbHVlcyBvciBhcmUgYWxsb3dlZCB0byBiZSByZWxhdGl2ZSB0byBwcmV2aW91cyBudW1iZXJzLgorICAgICAgVGhpcyBzaHJpbmtzIHRoZSBmaWxlIHNpemUuPC9wPjwvZGQ+Cis8ZHQ+Cis8YSBuYW1lPSJvcHQuY29tYmluZS1kdW1wcyI+PC9hPjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tY29tYmluZS1kdW1wcz0mbHQ7bm98eWVzJmd0OyBbZGVmYXVsdDogbm9dIDwvY29kZT4KKyAgICA8L3NwYW4+Cis8L2R0PgorPGRkPjxwPldoZW4gZW5hYmxlZCwgd2hlbiBtdWx0aXBsZSBwcm9maWxlIGRhdGEgcGFydHMgYXJlIHRvIGJlCisgICAgICBnZW5lcmF0ZWQgdGhlc2UgcGFydHMgYXJlIGFwcGVuZGVkIHRvIHRoZSBzYW1lIG91dHB1dCBmaWxlLgorICAgICAgTm90IHJlY29tbWVuZGVkLjwvcD48L2RkPgorPC9kbD4KKzwvZGl2PgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MiI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9ImNsLW1hbnVhbC5vcHRpb25zLmFjdGl2aXR5Ij48L2E+Ni4zLjIuoEFjdGl2aXR5IG9wdGlvbnM8L2gzPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+CitUaGVzZSBvcHRpb25zIHNwZWNpZnkgd2hlbiBhY3Rpb25zIHJlbGF0aW5nIHRvIGV2ZW50IGNvdW50cyBhcmUgdG8KK2JlIGV4ZWN1dGVkLiBGb3IgaW50ZXJhY3RpdmUgY29udHJvbCB1c2UgY2FsbGdyaW5kX2NvbnRyb2wuCis8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPgorPGEgbmFtZT0iY2wub3B0cy5saXN0LmFjdGl2aXR5Ij48L2E+PGRsIGNsYXNzPSJ2YXJpYWJsZWxpc3QiPgorPGR0PgorPGEgbmFtZT0ib3B0LmR1bXAtZXZlcnktYmIiPjwvYT48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWR1bXAtZXZlcnktYmI9Jmx0O2NvdW50Jmd0OyBbZGVmYXVsdDogMCwgbmV2ZXJdIDwvY29kZT4KKyAgICA8L3NwYW4+Cis8L2R0PgorPGRkPjxwPkR1bXAgcHJvZmlsZSBkYXRhIGV2ZXJ5IDxjb2RlIGNsYXNzPSJvcHRpb24iPmNvdW50PC9jb2RlPiBiYXNpYyBibG9ja3MuCisgICAgICBXaGV0aGVyIGEgZHVtcCBpcyBuZWVkZWQgaXMgb25seSBjaGVja2VkIHdoZW4gVmFsZ3JpbmQncyBpbnRlcm5hbAorICAgICAgc2NoZWR1bGVyIGlzIHJ1bi4gVGhlcmVmb3JlLCB0aGUgbWluaW11bSBzZXR0aW5nIHVzZWZ1bCBpcyBhYm91dCAxMDAwMDAuCisgICAgICBUaGUgY291bnQgaXMgYSA2NC1iaXQgdmFsdWUgdG8gbWFrZSBsb25nIGR1bXAgcGVyaW9kcyBwb3NzaWJsZS4KKyAgICAgIDwvcD48L2RkPgorPGR0PgorPGEgbmFtZT0ib3B0LmR1bXAtYmVmb3JlIj48L2E+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1kdW1wLWJlZm9yZT0mbHQ7ZnVuY3Rpb24mZ3Q7IDwvY29kZT4KKyAgICA8L3NwYW4+Cis8L2R0PgorPGRkPjxwPkR1bXAgd2hlbiBlbnRlcmluZyA8Y29kZSBjbGFzcz0ib3B0aW9uIj5mdW5jdGlvbjwvY29kZT4uPC9wPjwvZGQ+Cis8ZHQ+Cis8YSBuYW1lPSJvcHQuemVyby1iZWZvcmUiPjwvYT48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXplcm8tYmVmb3JlPSZsdDtmdW5jdGlvbiZndDsgPC9jb2RlPgorICAgIDwvc3Bhbj4KKzwvZHQ+Cis8ZGQ+PHA+WmVybyBhbGwgY29zdHMgd2hlbiBlbnRlcmluZyA8Y29kZSBjbGFzcz0ib3B0aW9uIj5mdW5jdGlvbjwvY29kZT4uPC9wPjwvZGQ+Cis8ZHQ+Cis8YSBuYW1lPSJvcHQuZHVtcC1hZnRlciI+PC9hPjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tZHVtcC1hZnRlcj0mbHQ7ZnVuY3Rpb24mZ3Q7IDwvY29kZT4KKyAgICA8L3NwYW4+Cis8L2R0PgorPGRkPjxwPkR1bXAgd2hlbiBsZWF2aW5nIDxjb2RlIGNsYXNzPSJvcHRpb24iPmZ1bmN0aW9uPC9jb2RlPi48L3A+PC9kZD4KKzwvZGw+Cis8L2Rpdj4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDIiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJjbC1tYW51YWwub3B0aW9ucy5jb2xsZWN0aW9uIj48L2E+Ni4zLjMuoERhdGEgY29sbGVjdGlvbiBvcHRpb25zPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPgorVGhlc2Ugb3B0aW9ucyBzcGVjaWZ5IHdoZW4gZXZlbnRzIGFyZSB0byBiZSBhZ2dyZWdhdGVkIGludG8gZXZlbnQgY291bnRzLgorQWxzbyBzZWUgPGEgY2xhc3M9InhyZWYiIGhyZWY9ImNsLW1hbnVhbC5odG1sI2NsLW1hbnVhbC5saW1pdHMiIHRpdGxlPSI2LjIuMi6gTGltaXRpbmcgdGhlIHJhbmdlIG9mIGNvbGxlY3RlZCBldmVudHMiPkxpbWl0aW5nIHJhbmdlIG9mIGV2ZW50IGNvbGxlY3Rpb248L2E+LjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+Cis8YSBuYW1lPSJjbC5vcHRzLmxpc3QuY29sbGVjdGlvbiI+PC9hPjxkbCBjbGFzcz0idmFyaWFibGVsaXN0Ij4KKzxkdD4KKzxhIG5hbWU9Im9wdC5pbnN0ci1hdHN0YXJ0Ij48L2E+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1pbnN0ci1hdHN0YXJ0PSZsdDt5ZXN8bm8mZ3Q7IFtkZWZhdWx0OiB5ZXNdIDwvY29kZT4KKyAgICA8L3NwYW4+Cis8L2R0PgorPGRkPgorPHA+U3BlY2lmeSBpZiB5b3Ugd2FudCBDYWxsZ3JpbmQgdG8gc3RhcnQgc2ltdWxhdGlvbiBhbmQKKyAgICAgIHByb2ZpbGluZyBmcm9tIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHByb2dyYW0uICAKKyAgICAgIFdoZW4gc2V0IHRvIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+bm88L2NvZGU+LCAKKyAgICAgIENhbGxncmluZCB3aWxsIG5vdCBiZSBhYmxlCisgICAgICB0byBjb2xsZWN0IGFueSBpbmZvcm1hdGlvbiwgaW5jbHVkaW5nIGNhbGxzLCBidXQgaXQgd2lsbCBoYXZlIGF0CisgICAgICBtb3N0IGEgc2xvd2Rvd24gb2YgYXJvdW5kIDQsIHdoaWNoIGlzIHRoZSBtaW5pbXVtIFZhbGdyaW5kCisgICAgICBvdmVyaGVhZC4gIEluc3RydW1lbnRhdGlvbiBjYW4gYmUgaW50ZXJhY3RpdmVseSBlbmFibGVkIHZpYQorICAgICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5jYWxsZ3JpbmRfY29udHJvbCAtaSBvbjwvY29kZT4uPC9wPgorPHA+Tm90ZSB0aGF0IHRoZSByZXN1bHRpbmcgY2FsbCBncmFwaCB3aWxsIG1vc3QgcHJvYmFibHkgbm90CisgICAgICBjb250YWluIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+bWFpbjwvY29kZT4sIGJ1dCB3aWxsIGNvbnRhaW4gYWxsIHRoZQorICAgICAgZnVuY3Rpb25zIGV4ZWN1dGVkIGFmdGVyIGluc3RydW1lbnRhdGlvbiB3YXMgZW5hYmxlZC4KKyAgICAgIEluc3RydW1lbnRhdGlvbiBjYW4gYWxzbyBwcm9ncmFtYXRpY2FsbHkgZW5hYmxlZC9kaXNhYmxlZC4gU2VlIHRoZQorICAgICAgQ2FsbGdyaW5kIGluY2x1ZGUgZmlsZQorICAgICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5jYWxsZ3JpbmQuaDwvY29kZT4gZm9yIHRoZSBtYWNybworICAgICAgeW91IGhhdmUgdG8gdXNlIGluIHlvdXIgc291cmNlIGNvZGUuPC9wPgorPHA+Rm9yIGNhY2hlCisgICAgICBzaW11bGF0aW9uLCByZXN1bHRzIHdpbGwgYmUgbGVzcyBhY2N1cmF0ZSB3aGVuIHN3aXRjaGluZyBvbgorICAgICAgaW5zdHJ1bWVudGF0aW9uIGxhdGVyIGluIHRoZSBwcm9ncmFtIHJ1biwgYXMgdGhlIHNpbXVsYXRvciBzdGFydHMKKyAgICAgIHdpdGggYW4gZW1wdHkgY2FjaGUgYXQgdGhhdCBtb21lbnQuICBTd2l0Y2ggb24gZXZlbnQgY29sbGVjdGlvbgorICAgICAgbGF0ZXIgdG8gY29wZSB3aXRoIHRoaXMgZXJyb3IuPC9wPgorPC9kZD4KKzxkdD4KKzxhIG5hbWU9Im9wdC5jb2xsZWN0LWF0c3RhcnQiPjwvYT48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWNvbGxlY3QtYXRzdGFydD0mbHQ7eWVzfG5vJmd0OyBbZGVmYXVsdDogeWVzXSA8L2NvZGU+CisgICAgPC9zcGFuPgorPC9kdD4KKzxkZD4KKzxwPlNwZWNpZnkgd2hldGhlciBldmVudCBjb2xsZWN0aW9uIGlzIGVuYWJsZWQgYXQgYmVnaW5uaW5nCisgICAgICBvZiB0aGUgcHJvZmlsZSBydW4uPC9wPgorPHA+VG8gb25seSBsb29rIGF0IHBhcnRzIG9mIHlvdXIgcHJvZ3JhbSwgeW91IGhhdmUgdHdvCisgICAgICBwb3NzaWJpbGl0aWVzOjwvcD4KKzxkaXYgY2xhc3M9Im9yZGVyZWRsaXN0Ij48b2wgY2xhc3M9Im9yZGVyZWRsaXN0IiB0eXBlPSIxIj4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPlplcm8gZXZlbnQgY291bnRlcnMgYmVmb3JlIGVudGVyaW5nIHRoZSBwcm9ncmFtIHBhcnQgeW91CisgICAgICAgIHdhbnQgdG8gcHJvZmlsZSwgYW5kIGR1bXAgdGhlIGV2ZW50IGNvdW50ZXJzIHRvIGEgZmlsZSBhZnRlcgorICAgICAgICBsZWF2aW5nIHRoYXQgcHJvZ3JhbSBwYXJ0LjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+U3dpdGNoIG9uL29mZiBjb2xsZWN0aW9uIHN0YXRlIGFzIG5lZWRlZCB0byBvbmx5IHNlZQorICAgICAgICAgIGV2ZW50IGNvdW50ZXJzIGhhcHBlbmluZyB3aGlsZSBpbnNpZGUgb2YgdGhlIHByb2dyYW0gcGFydCB5b3UKKyAgICAgICAgICB3YW50IHRvIHByb2ZpbGUuPC9wPjwvbGk+Cis8L29sPjwvZGl2PgorPHA+VGhlIHNlY29uZCBvcHRpb24gY2FuIGJlIHVzZWQgaWYgdGhlIHByb2dyYW0gcGFydCB5b3Ugd2FudCB0bworICAgICAgcHJvZmlsZSBpcyBjYWxsZWQgbWFueSB0aW1lcy4gT3B0aW9uIDEsIGkuZS4gY3JlYXRpbmcgYSBsb3Qgb2YKKyAgICAgIGR1bXBzIGlzIG5vdCBwcmFjdGljYWwgaGVyZS48L3A+Cis8cD5Db2xsZWN0aW9uIHN0YXRlIGNhbiBiZQorICAgICAgdG9nZ2xlZCBhdCBlbnRyeSBhbmQgZXhpdCBvZiBhIGdpdmVuIGZ1bmN0aW9uIHdpdGggdGhlCisgICAgICBvcHRpb24gPGNvZGUgY2xhc3M9Im9wdGlvbiI+PGEgY2xhc3M9InhyZWYiIGhyZWY9ImNsLW1hbnVhbC5odG1sI29wdC50b2dnbGUtY29sbGVjdCI+LS10b2dnbGUtY29sbGVjdDwvYT48L2NvZGU+LiAgSWYgeW91CisgICAgICB1c2UgdGhpcyBvcHRpb24sIGNvbGxlY3Rpb24KKyAgICAgIHN0YXRlIHNob3VsZCBiZSBkaXNhYmxlZCBhdCB0aGUgYmVnaW5uaW5nLiAgTm90ZSB0aGF0IHRoZQorICAgICAgc3BlY2lmaWNhdGlvbiBvZiA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXRvZ2dsZS1jb2xsZWN0PC9jb2RlPgorICAgICAgaW1wbGljaXRseSBzZXRzCisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWNvbGxlY3Qtc3RhdGU9bm88L2NvZGU+LjwvcD4KKzxwPkNvbGxlY3Rpb24gc3RhdGUgY2FuIGJlIHRvZ2dsZWQgYWxzbyBieSBpbnNlcnRpbmcgdGhlIGNsaWVudCByZXF1ZXN0CisgICAgICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPgorICAgICAgCisgICAgICBDQUxMR1JJTkRfVE9HR0xFX0NPTExFQ1QKKyAgICAgIDs8L2NvZGU+CisgICAgICBhdCB0aGUgbmVlZGVkIGNvZGUgcG9zaXRpb25zLjwvcD4KKzwvZGQ+Cis8ZHQ+Cis8YSBuYW1lPSJvcHQudG9nZ2xlLWNvbGxlY3QiPjwvYT48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXRvZ2dsZS1jb2xsZWN0PSZsdDtmdW5jdGlvbiZndDsgPC9jb2RlPgorICAgIDwvc3Bhbj4KKzwvZHQ+Cis8ZGQ+PHA+VG9nZ2xlIGNvbGxlY3Rpb24gb24gZW50cnkvZXhpdCBvZiA8Y29kZSBjbGFzcz0ib3B0aW9uIj5mdW5jdGlvbjwvY29kZT4uPC9wPjwvZGQ+Cis8ZHQ+Cis8YSBuYW1lPSJvcHQuY29sbGVjdC1qdW1wcyI+PC9hPjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tY29sbGVjdC1qdW1wcz0mbHQ7bm98eWVzJmd0OyBbZGVmYXVsdDogbm9dIDwvY29kZT4KKyAgICA8L3NwYW4+Cis8L2R0PgorPGRkPjxwPlRoaXMgc3BlY2lmaWVzIHdoZXRoZXIgaW5mb3JtYXRpb24gZm9yIChjb25kaXRpb25hbCkganVtcHMKKyAgICAgIHNob3VsZCBiZSBjb2xsZWN0ZWQuICBBcyBhYm92ZSwgY2FsbGdyaW5kX2Fubm90YXRlIGN1cnJlbnRseSBpcyBub3QKKyAgICAgIGFibGUgdG8gc2hvdyB5b3UgdGhlIGRhdGEuICBZb3UgaGF2ZSB0byB1c2UgS0NhY2hlZ3JpbmQgdG8gZ2V0IGp1bXAKKyAgICAgIGFycm93cyBpbiB0aGUgYW5ub3RhdGVkIGNvZGUuPC9wPjwvZGQ+Cis8ZHQ+Cis8YSBuYW1lPSJvcHQuY29sbGVjdC1zeXN0aW1lIj48L2E+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1jb2xsZWN0LXN5c3RpbWU9Jmx0O25vfHllcyZndDsgW2RlZmF1bHQ6IG5vXSA8L2NvZGU+CisgICAgPC9zcGFuPgorPC9kdD4KKzxkZD48cD5UaGlzIHNwZWNpZmllcyB3aGV0aGVyIGluZm9ybWF0aW9uIGZvciBzeXN0ZW0gY2FsbCB0aW1lcworICAgICAgc2hvdWxkIGJlIGNvbGxlY3RlZC48L3A+PC9kZD4KKzxkdD4KKzxhIG5hbWU9ImNsb3B0LmNvbGxlY3QtYnVzIj48L2E+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1jb2xsZWN0LWJ1cz0mbHQ7bm98eWVzJmd0OyBbZGVmYXVsdDogbm9dIDwvY29kZT4KKyAgICA8L3NwYW4+Cis8L2R0PgorPGRkPjxwPlRoaXMgc3BlY2lmaWVzIHdoZXRoZXIgdGhlIG51bWJlciBvZiBnbG9iYWwgYnVzIGV2ZW50cyBleGVjdXRlZAorICAgICAgc2hvdWxkIGJlIGNvbGxlY3RlZC4gVGhlIGV2ZW50IHR5cGUgIkdlIiBpcyB1c2VkIGZvciB0aGVzZSBldmVudHMuPC9wPjwvZGQ+Cis8L2RsPgorPC9kaXY+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0iY2wtbWFudWFsLm9wdGlvbnMuc2VwYXJhdGlvbiI+PC9hPjYuMy40LqBDb3N0IGVudGl0eSBzZXBhcmF0aW9uIG9wdGlvbnM8L2gzPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+CitUaGVzZSBvcHRpb25zIHNwZWNpZnkgaG93IGV2ZW50IGNvdW50cyBzaG91bGQgYmUgYXR0cmlidXRlZCB0byBleGVjdXRpb24KK2NvbnRleHRzLgorRm9yIGV4YW1wbGUsIHRoZXkgc3BlY2lmeSB3aGV0aGVyIHRoZSByZWN1cnNpb24gbGV2ZWwgb3IgdGhlCitjYWxsIGNoYWluIGxlYWRpbmcgdG8gYSBmdW5jdGlvbiBzaG91bGQgYmUgdGFrZW4gaW50byBhY2NvdW50LCAKK2FuZCB3aGV0aGVyIHRoZSB0aHJlYWQgSUQgc2hvdWxkIGJlIGNvbnNpZGVyZWQuCitBbHNvIHNlZSA8YSBjbGFzcz0ieHJlZiIgaHJlZj0iY2wtbWFudWFsLmh0bWwjY2wtbWFudWFsLmN5Y2xlcyIgdGl0bGU9IjYuMi40LqBBdm9pZGluZyBjeWNsZXMiPkF2b2lkaW5nIGN5Y2xlczwvYT4uPC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij4KKzxhIG5hbWU9ImNtZC1vcHRpb25zLnNlcGFyYXRpb24iPjwvYT48ZGwgY2xhc3M9InZhcmlhYmxlbGlzdCI+Cis8ZHQ+Cis8YSBuYW1lPSJvcHQuc2VwYXJhdGUtdGhyZWFkcyI+PC9hPjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tc2VwYXJhdGUtdGhyZWFkcz0mbHQ7bm98eWVzJmd0OyBbZGVmYXVsdDogbm9dIDwvY29kZT4KKyAgICA8L3NwYW4+Cis8L2R0PgorPGRkPjxwPlRoaXMgb3B0aW9uIHNwZWNpZmllcyB3aGV0aGVyIHByb2ZpbGUgZGF0YSBzaG91bGQgYmUgZ2VuZXJhdGVkCisgICAgICBzZXBhcmF0ZWx5IGZvciBldmVyeSB0aHJlYWQuIElmIHllcywgdGhlIGZpbGUgbmFtZXMgZ2V0ICItdGhyZWFkSUQiCisgICAgICBhcHBlbmRlZC48L3A+PC9kZD4KKzxkdD4KKzxhIG5hbWU9Im9wdC5zZXBhcmF0ZS1jYWxsZXJzIj48L2E+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1zZXBhcmF0ZS1jYWxsZXJzPSZsdDtjYWxsZXJzJmd0OyBbZGVmYXVsdDogMF0gPC9jb2RlPgorICAgIDwvc3Bhbj4KKzwvZHQ+Cis8ZGQ+PHA+U2VwYXJhdGUgY29udGV4dHMgYnkgYXQgbW9zdCAmbHQ7Y2FsbGVycyZndDsgZnVuY3Rpb25zIGluIHRoZQorICAgICAgY2FsbCBjaGFpbi4gU2VlIDxhIGNsYXNzPSJ4cmVmIiBocmVmPSJjbC1tYW51YWwuaHRtbCNjbC1tYW51YWwuY3ljbGVzIiB0aXRsZT0iNi4yLjQuoEF2b2lkaW5nIGN5Y2xlcyI+QXZvaWRpbmcgY3ljbGVzPC9hPi48L3A+PC9kZD4KKzxkdD4KKzxhIG5hbWU9Im9wdC5zZXBhcmF0ZS1jYWxsZXJzLW51bSI+PC9hPjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tc2VwYXJhdGUtY2FsbGVycyZsdDtudW1iZXImZ3Q7PSZsdDtmdW5jdGlvbiZndDsgPC9jb2RlPgorICAgIDwvc3Bhbj4KKzwvZHQ+Cis8ZGQ+PHA+U2VwYXJhdGUgPGNvZGUgY2xhc3M9Im9wdGlvbiI+bnVtYmVyPC9jb2RlPiBjYWxsZXJzIGZvciA8Y29kZSBjbGFzcz0ib3B0aW9uIj5mdW5jdGlvbjwvY29kZT4uCisgICAgICBTZWUgPGEgY2xhc3M9InhyZWYiIGhyZWY9ImNsLW1hbnVhbC5odG1sI2NsLW1hbnVhbC5jeWNsZXMiIHRpdGxlPSI2LjIuNC6gQXZvaWRpbmcgY3ljbGVzIj5Bdm9pZGluZyBjeWNsZXM8L2E+LjwvcD48L2RkPgorPGR0PgorPGEgbmFtZT0ib3B0LnNlcGFyYXRlLXJlY3MiPjwvYT48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXNlcGFyYXRlLXJlY3M9Jmx0O2xldmVsJmd0OyBbZGVmYXVsdDogMl0gPC9jb2RlPgorICAgIDwvc3Bhbj4KKzwvZHQ+Cis8ZGQ+PHA+U2VwYXJhdGUgZnVuY3Rpb24gcmVjdXJzaW9ucyBieSBhdCBtb3N0IDxjb2RlIGNsYXNzPSJvcHRpb24iPmxldmVsPC9jb2RlPiBsZXZlbHMuCisgICAgICBTZWUgPGEgY2xhc3M9InhyZWYiIGhyZWY9ImNsLW1hbnVhbC5odG1sI2NsLW1hbnVhbC5jeWNsZXMiIHRpdGxlPSI2LjIuNC6gQXZvaWRpbmcgY3ljbGVzIj5Bdm9pZGluZyBjeWNsZXM8L2E+LjwvcD48L2RkPgorPGR0PgorPGEgbmFtZT0ib3B0LnNlcGFyYXRlLXJlY3MtbnVtIj48L2E+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1zZXBhcmF0ZS1yZWNzJmx0O251bWJlciZndDs9Jmx0O2Z1bmN0aW9uJmd0OyA8L2NvZGU+CisgICAgPC9zcGFuPgorPC9kdD4KKzxkZD48cD5TZXBhcmF0ZSA8Y29kZSBjbGFzcz0ib3B0aW9uIj5udW1iZXI8L2NvZGU+IHJlY3Vyc2lvbnMgZm9yIDxjb2RlIGNsYXNzPSJvcHRpb24iPmZ1bmN0aW9uPC9jb2RlPi4KKyAgICAgIFNlZSA8YSBjbGFzcz0ieHJlZiIgaHJlZj0iY2wtbWFudWFsLmh0bWwjY2wtbWFudWFsLmN5Y2xlcyIgdGl0bGU9IjYuMi40LqBBdm9pZGluZyBjeWNsZXMiPkF2b2lkaW5nIGN5Y2xlczwvYT4uPC9wPjwvZGQ+Cis8ZHQ+Cis8YSBuYW1lPSJvcHQuc2tpcC1wbHQiPjwvYT48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXNraXAtcGx0PSZsdDtub3x5ZXMmZ3Q7IFtkZWZhdWx0OiB5ZXNdIDwvY29kZT4KKyAgICA8L3NwYW4+Cis8L2R0PgorPGRkPjxwPklnbm9yZSBjYWxscyB0by9mcm9tIFBMVCBzZWN0aW9ucy48L3A+PC9kZD4KKzxkdD4KKzxhIG5hbWU9Im9wdC5za2lwLWRpcmVjdC1yZWMiPjwvYT48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXNraXAtZGlyZWN0LXJlYz0mbHQ7bm98eWVzJmd0OyBbZGVmYXVsdDogeWVzXSA8L2NvZGU+CisgICAgPC9zcGFuPgorPC9kdD4KKzxkZD48cD5JZ25vcmUgZGlyZWN0IHJlY3Vyc2lvbnMuPC9wPjwvZGQ+Cis8ZHQ+Cis8YSBuYW1lPSJvcHQuZm4tc2tpcCI+PC9hPjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tZm4tc2tpcD0mbHQ7ZnVuY3Rpb24mZ3Q7IDwvY29kZT4KKyAgICA8L3NwYW4+Cis8L2R0PgorPGRkPgorPHA+SWdub3JlIGNhbGxzIHRvL2Zyb20gYSBnaXZlbiBmdW5jdGlvbi4gIEUuZy4gaWYgeW91IGhhdmUgYQorICAgICAgY2FsbCBjaGFpbiBBICZndDsgQiAmZ3Q7IEMsIGFuZCB5b3Ugc3BlY2lmeSBmdW5jdGlvbiBCIHRvIGJlCisgICAgICBpZ25vcmVkLCB5b3Ugd2lsbCBvbmx5IHNlZSBBICZndDsgQy48L3A+Cis8cD5UaGlzIGlzIHZlcnkgY29udmVuaWVudCB0byBza2lwIGZ1bmN0aW9ucyBoYW5kbGluZyBjYWxsYmFjaworICAgICAgYmVoYXZpb3VyLiAgRm9yIGV4YW1wbGUsIHdpdGggdGhlIHNpZ25hbC9zbG90IG1lY2hhbmlzbSBpbiB0aGUKKyAgICAgIFF0IGdyYXBoaWNzIGxpYnJhcnksIHlvdSBvbmx5IHdhbnQKKyAgICAgIHRvIHNlZSB0aGUgZnVuY3Rpb24gZW1pdHRpbmcgYSBzaWduYWwgdG8gY2FsbCB0aGUgc2xvdHMgY29ubmVjdGVkCisgICAgICB0byB0aGF0IHNpZ25hbC4gRmlyc3QsIGRldGVybWluZSB0aGUgcmVhbCBjYWxsIGNoYWluIHRvIHNlZSB0aGUKKyAgICAgIGZ1bmN0aW9ucyBuZWVkZWQgdG8gYmUgc2tpcHBlZCwgdGhlbiB1c2UgdGhpcyBvcHRpb24uPC9wPgorPC9kZD4KKzwvZGw+Cis8L2Rpdj4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDIiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJjbC1tYW51YWwub3B0aW9ucy5zaW11bGF0aW9uIj48L2E+Ni4zLjUuoFNpbXVsYXRpb24gb3B0aW9uczwvaDM+PC9kaXY+PC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPgorPGEgbmFtZT0iY2wub3B0cy5saXN0LnNpbXVsYXRpb24iPjwvYT48ZGwgY2xhc3M9InZhcmlhYmxlbGlzdCI+Cis8ZHQ+Cis8YSBuYW1lPSJjbG9wdC5jYWNoZS1zaW0iPjwvYT48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWNhY2hlLXNpbT0mbHQ7eWVzfG5vJmd0OyBbZGVmYXVsdDogbm9dIDwvY29kZT4KKyAgICA8L3NwYW4+Cis8L2R0PgorPGRkPjxwPlNwZWNpZnkgaWYgeW91IHdhbnQgdG8gZG8gZnVsbCBjYWNoZSBzaW11bGF0aW9uLiAgQnkgZGVmYXVsdCwKKyAgICAgIG9ubHkgaW5zdHJ1Y3Rpb24gcmVhZCBhY2Nlc3NlcyB3aWxsIGJlIGNvdW50ZWQgKCJJciIpLgorICAgICAgV2l0aCBjYWNoZSBzaW11bGF0aW9uLCBmdXJ0aGVyIGV2ZW50IGNvdW50ZXJzIGFyZSBlbmFibGVkOgorICAgICAgQ2FjaGUgbWlzc2VzIG9uIGluc3RydWN0aW9uIHJlYWRzICgiSTFtciIvIklMbXIiKSwKKyAgICAgIGRhdGEgcmVhZCBhY2Nlc3NlcyAoIkRyIikgYW5kIHJlbGF0ZWQgY2FjaGUgbWlzc2VzICgiRDFtciIvIkRMbXIiKSwKKyAgICAgIGRhdGEgd3JpdGUgYWNjZXNzZXMgKCJEdyIpIGFuZCByZWxhdGVkIGNhY2hlIG1pc3NlcyAoIkQxbXciLyJETG13IikuCisgICAgICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIDxhIGNsYXNzPSJ4cmVmIiBocmVmPSJjZy1tYW51YWwuaHRtbCIgdGl0bGU9IjUuoENhY2hlZ3JpbmQ6IGEgY2FjaGUgYW5kIGJyYW5jaC1wcmVkaWN0aW9uIHByb2ZpbGVyIj5DYWNoZWdyaW5kOiBhIGNhY2hlIGFuZCBicmFuY2gtcHJlZGljdGlvbiBwcm9maWxlcjwvYT4uCisgICAgICA8L3A+PC9kZD4KKzxkdD4KKzxhIG5hbWU9ImNsb3B0LmJyYW5jaC1zaW0iPjwvYT48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWJyYW5jaC1zaW09Jmx0O3llc3xubyZndDsgW2RlZmF1bHQ6IG5vXSA8L2NvZGU+CisgICAgPC9zcGFuPgorPC9kdD4KKzxkZD48cD5TcGVjaWZ5IGlmIHlvdSB3YW50IHRvIGRvIGJyYW5jaCBwcmVkaWN0aW9uIHNpbXVsYXRpb24uCisgICAgICBGdXJ0aGVyIGV2ZW50IGNvdW50ZXJzIGFyZSBlbmFibGVkOiBOdW1iZXIgb2YgZXhlY3V0ZWQgY29uZGl0aW9uYWwKKyAgICAgIGJyYW5jaGVzIGFuZCByZWxhdGVkIHByZWRpY3RvciBtaXNzZXMgKCJCYyIvIkJjbSIpLCBleGVjdXRlZCBpbmRpcmVjdAorICAgICAganVtcHMgYW5kIHJlbGF0ZWQgbWlzc2VzIG9mIHRoZSBqdW1wIGFkZHJlc3MgcHJlZGljdG9yICgiQmkiLyJCaW0iKS4KKyAgICAgIDwvcD48L2RkPgorPC9kbD4KKzwvZGl2PgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MiI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9ImNsLW1hbnVhbC5vcHRpb25zLmNhY2hlc2ltdWxhdGlvbiI+PC9hPjYuMy42LqBDYWNoZSBzaW11bGF0aW9uIG9wdGlvbnM8L2gzPjwvZGl2PjwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij4KKzxhIG5hbWU9ImNsLm9wdHMubGlzdC5jYWNoZXNpbXVsYXRpb24iPjwvYT48ZGwgY2xhc3M9InZhcmlhYmxlbGlzdCI+Cis8ZHQ+Cis8YSBuYW1lPSJvcHQuc2ltdWxhdGUtd2IiPjwvYT48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXNpbXVsYXRlLXdiPSZsdDt5ZXN8bm8mZ3Q7IFtkZWZhdWx0OiBub10gPC9jb2RlPgorICAgIDwvc3Bhbj4KKzwvZHQ+Cis8ZGQ+PHA+U3BlY2lmeSB3aGV0aGVyIHdyaXRlLWJhY2sgYmVoYXZpb3Igc2hvdWxkIGJlIHNpbXVsYXRlZCwgYWxsb3dpbmcKKyAgICAgIHRvIGRpc3Rpbmd1aXNoIExMIGNhY2hlcyBtaXNzZXMgd2l0aCBhbmQgd2l0aG91dCB3cml0ZSBiYWNrcy4KKyAgICAgIFRoZSBjYWNoZSBtb2RlbCBvZiBDYWNoZWdyaW5kL0NhbGxncmluZCBkb2VzIG5vdCBzcGVjaWZ5IHdyaXRlLXRocm91Z2gKKyAgICAgIHZzLiB3cml0ZS1iYWNrIGJlaGF2aW9yLCBhbmQgdGhpcyBhbHNvIGlzIG5vdCByZWxldmFudCBmb3IgdGhlIG51bWJlcgorICAgICAgb2YgZ2VuZXJhdGVkIG1pc3MgY291bnRzLiBIb3dldmVyLCB3aXRoIGV4cGxpY2l0IHdyaXRlLWJhY2sgc2ltdWxhdGlvbgorICAgICAgaXQgY2FuIGJlIGRlY2lkZWQgd2hldGhlciBhIG1pc3MgdHJpZ2dlcnMgbm90IG9ubHkgdGhlIGxvYWRpbmcgb2YgYSBuZXcKKyAgICAgIGNhY2hlIGxpbmUsIGJ1dCBhbHNvIGlmIGEgd3JpdGUgYmFjayBvZiBhIGRpcnR5IGNhY2hlIGxpbmUgaGFkIHRvIHRha2UKKyAgICAgIHBsYWNlIGJlZm9yZS4gVGhlIG5ldyBkaXJ0eSBtaXNzIGV2ZW50cyBhcmUgSUxkbXIsIERMZG1yLCBhbmQgRExkbXcsCisgICAgICBmb3IgbWlzc2VzIGJlY2F1c2Ugb2YgaW5zdHJ1Y3Rpb24gcmVhZCwgZGF0YSByZWFkLCBhbmQgZGF0YSB3cml0ZSwKKyAgICAgIHJlc3BlY3RpdmVseS4gQXMgdGhleSBwcm9kdWNlIHR3byBtZW1vcnkgdHJhbnNhY3Rpb25zLCB0aGV5IHNob3VsZAorICAgICAgYWNjb3VudCBmb3IgYSBkb3VibGVkIHRpbWUgZXN0aW1hdGlvbiBpbiByZWxhdGlvbiB0byBhIG5vcm1hbCBtaXNzLgorICAgICAgPC9wPjwvZGQ+Cis8ZHQ+Cis8YSBuYW1lPSJvcHQuc2ltdWxhdGUtaHdwcmVmIj48L2E+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1zaW11bGF0ZS1od3ByZWY9Jmx0O3llc3xubyZndDsgW2RlZmF1bHQ6IG5vXSA8L2NvZGU+CisgICAgPC9zcGFuPgorPC9kdD4KKzxkZD48cD5TcGVjaWZ5IHdoZXRoZXIgc2ltdWxhdGlvbiBvZiBhIGhhcmR3YXJlIHByZWZldGNoZXIgc2hvdWxkIGJlCisgICAgICBhZGRlZCB3aGljaCBpcyBhYmxlIHRvIGRldGVjdCBzdHJlYW0gYWNjZXNzIGluIHRoZSBzZWNvbmQgbGV2ZWwgY2FjaGUKKyAgICAgIGJ5IGNvbXBhcmluZyBhY2Nlc3NlcyB0byBzZXBhcmF0ZSB0byBlYWNoIHBhZ2UuCisgICAgICBBcyB0aGUgc2ltdWxhdGlvbiBjYW4gbm90IGRlY2lkZSBhYm91dCBhbnkgdGltaW5nIGlzc3VlcyBvZiBwcmVmZXRjaGluZywKKyAgICAgIGl0IGlzIGFzc3VtZWQgdGhhdCBhbnkgaGFyZHdhcmUgcHJlZmV0Y2ggdHJpZ2dlcmVkIHN1Y2NlZWRzIGJlZm9yZSBhCisgICAgICByZWFsIGFjY2VzcyBpcyBkb25lLiBUaHVzLCB0aGlzIGdpdmVzIGEgYmVzdC1jYXNlIHNjZW5hcmlvIGJ5IGNvdmVyaW5nCisgICAgICBhbGwgcG9zc2libGUgc3RyZWFtIGFjY2Vzc2VzLjwvcD48L2RkPgorPGR0PgorPGEgbmFtZT0ib3B0LmNhY2hldXNlIj48L2E+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1jYWNoZXVzZT0mbHQ7eWVzfG5vJmd0OyBbZGVmYXVsdDogbm9dIDwvY29kZT4KKyAgICA8L3NwYW4+Cis8L2R0PgorPGRkPjxwPlNwZWNpZnkgd2hldGhlciBjYWNoZSBsaW5lIHVzZSBzaG91bGQgYmUgY29sbGVjdGVkLiBGb3IgZXZlcnkKKyAgICAgIGNhY2hlIGxpbmUsIGZyb20gbG9hZGluZyB0byBpdCBiZWluZyBldmljdGVkLCB0aGUgbnVtYmVyIG9mIGFjY2Vzc2VzCisgICAgICBhcyB3ZWxsIGFzIHRoZSBudW1iZXIgb2YgYWN0dWFsbHkgdXNlZCBieXRlcyBpcyBkZXRlcm1pbmVkLiBUaGlzCisgICAgICBiZWhhdmlvciBpcyByZWxhdGVkIHRvIHRoZSBjb2RlIHdoaWNoIHRyaWdnZXJlZCBsb2FkaW5nIG9mIHRoZSBjYWNoZQorICAgICAgbGluZS4gSW4gY29udHJhc3QgdG8gbWlzcyBjb3VudGVycywgd2hpY2ggc2hvd3MgdGhlIHBvc2l0aW9uIHdoZXJlCisgICAgICB0aGUgc3ltcHRvbXMgb2YgYmFkIGNhY2hlIGJlaGF2aW9yIChpLmUuIGxhdGVuY2llcykgaGFwcGVucywgdGhlCisgICAgICB1c2UgY291bnRlcnMgdHJ5IHRvIHBpbnBvaW50IGF0IHRoZSByZWFzb24gKGkuZS4gdGhlIGNvZGUgd2l0aCB0aGUKKyAgICAgIGJhZCBhY2Nlc3MgYmVoYXZpb3IpLiBUaGUgbmV3IGNvdW50ZXJzIGFyZSBkZWZpbmVkIGluIGEgd2F5IHN1Y2gKKyAgICAgIHRoYXQgd29yc2UgYmVoYXZpb3IgcmVzdWx0cyBpbiBoaWdoZXIgY29zdC4KKyAgICAgIEFjQ29zdDEgYW5kIEFjQ29zdDIgYXJlIGNvdW50ZXJzIHNob3dpbmcgYmFkIHRlbXBvcmFsIGxvY2FsaXR5CisgICAgICBmb3IgTDEgYW5kIExMIGNhY2hlcywgcmVzcGVjdGl2ZWx5LiBUaGlzIGlzIGRvbmUgYnkgc3VtbWluZyB1cAorICAgICAgcmVjaXByb2NhbCB2YWx1ZXMgb2YgdGhlIG51bWJlcnMgb2YgYWNjZXNzZXMgb2YgZWFjaCBjYWNoZSBsaW5lLAorICAgICAgbXVsdGlwbGllZCBieSAxMDAwIChhcyBvbmx5IGludGVnZXIgY29zdHMgYXJlIGFsbG93ZWQpLiBFLmcuIGZvcgorICAgICAgYSBnaXZlbiBzb3VyY2UgbGluZSB3aXRoIDUgcmVhZCBhY2Nlc3NlcywgYSB2YWx1ZSBvZiA1MDAwIEFjQ29zdAorICAgICAgbWVhbnMgdGhhdCBmb3IgZXZlcnkgYWNjZXNzLCBhIG5ldyBjYWNoZSBsaW5lIHdhcyBsb2FkZWQgYW5kIGRpcmVjdGx5CisgICAgICBldmljdGVkIGFmdGVyd2FyZHMgd2l0aG91dCBmdXJ0aGVyIGFjY2Vzc2VzLiBTaW1pbGFybHksIFNwTG9zczEvMgorICAgICAgc2hvd3MgYmFkIHNwYXRpYWwgbG9jYWxpdHkgZm9yIEwxIGFuZCBMTCBjYWNoZXMsIHJlc3BlY3RpdmVseS4gSXQKKyAgICAgIGdpdmVzIHRoZSA8c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT5zcGF0aWFsIGxvc3M8L2VtPjwvc3Bhbj4gY291bnQgb2YgYnl0ZXMgd2hpY2gKKyAgICAgIHdlcmUgbG9hZGVkIGludG8gY2FjaGUgYnV0IG5ldmVyIGFjY2Vzc2VkLiBJdCBwaW5wb2ludHMgYXQgY29kZQorICAgICAgYWNjZXNzaW5nIGRhdGEgaW4gYSB3YXkgc3VjaCB0aGF0IGNhY2hlIHNwYWNlIGlzIHdhc3RlZC4gVGhpcyBoaW50cworICAgICAgYXQgYmFkIGxheW91dCBvZiBkYXRhIHN0cnVjdHVyZXMgaW4gbWVtb3J5LiBBc3N1bWluZyBhIGNhY2hlIGxpbmUKKyAgICAgIHNpemUgb2YgNjQgYnl0ZXMgYW5kIDEwMCBMMSBtaXNzZXMgZm9yIGEgZ2l2ZW4gc291cmNlIGxpbmUsIHRoZQorICAgICAgbG9hZGluZyBvZiA2NDAwIGJ5dGVzIGludG8gTDEgd2FzIHRyaWdnZXJlZC4gSWYgU3BMb3NzMSBzaG93cyBhCisgICAgICB2YWx1ZSBvZiAzMjAwIGZvciB0aGlzIGxpbmUsIHRoaXMgbWVhbnMgdGhhdCBoYWxmIG9mIHRoZSBsb2FkZWQgZGF0YSB3YXMKKyAgICAgIG5ldmVyIHVzZWQsIG9yIHVzaW5nIGEgYmV0dGVyIGRhdGEgbGF5b3V0LCBvbmx5IGhhbGYgb2YgdGhlIGNhY2hlCisgICAgICBzcGFjZSB3b3VsZCBoYXZlIGJlZW4gbmVlZGVkLgorICAgICAgUGxlYXNlIG5vdGUgdGhhdCBmb3IgY2FjaGUgbGluZSB1c2UgY291bnRlcnMsIGl0IGN1cnJlbnRseSBpcworICAgICAgbm90IHBvc3NpYmxlIHRvIHByb3ZpZGUgbWVhbmluZ2Z1bCBpbmNsdXNpdmUgY29zdHMuIFRoZXJlZm9yZSwKKyAgICAgIGluY2x1c2l2ZSBjb3N0IG9mIHRoZXNlIGNvdW50ZXJzIHNob3VsZCBiZSBpZ25vcmVkLgorICAgICAgPC9wPjwvZGQ+Cis8ZHQ+Cis8YSBuYW1lPSJvcHQuSTEiPjwvYT48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLUkxPSZsdDtzaXplJmd0OywmbHQ7YXNzb2NpYXRpdml0eSZndDssJmx0O2xpbmUgc2l6ZSZndDsgPC9jb2RlPgorICAgIDwvc3Bhbj4KKzwvZHQ+Cis8ZGQ+PHA+U3BlY2lmeSB0aGUgc2l6ZSwgYXNzb2NpYXRpdml0eSBhbmQgbGluZSBzaXplIG9mIHRoZSBsZXZlbCAxCisgICAgICBpbnN0cnVjdGlvbiBjYWNoZS4gIDwvcD48L2RkPgorPGR0PgorPGEgbmFtZT0ib3B0LkQxIj48L2E+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1EMT0mbHQ7c2l6ZSZndDssJmx0O2Fzc29jaWF0aXZpdHkmZ3Q7LCZsdDtsaW5lIHNpemUmZ3Q7IDwvY29kZT4KKyAgICA8L3NwYW4+Cis8L2R0PgorPGRkPjxwPlNwZWNpZnkgdGhlIHNpemUsIGFzc29jaWF0aXZpdHkgYW5kIGxpbmUgc2l6ZSBvZiB0aGUgbGV2ZWwgMQorICAgICAgZGF0YSBjYWNoZS48L3A+PC9kZD4KKzxkdD4KKzxhIG5hbWU9Im9wdC5MTCI+PC9hPjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tTEw9Jmx0O3NpemUmZ3Q7LCZsdDthc3NvY2lhdGl2aXR5Jmd0OywmbHQ7bGluZSBzaXplJmd0OyA8L2NvZGU+CisgICAgPC9zcGFuPgorPC9kdD4KKzxkZD48cD5TcGVjaWZ5IHRoZSBzaXplLCBhc3NvY2lhdGl2aXR5IGFuZCBsaW5lIHNpemUgb2YgdGhlIGxhc3QtbGV2ZWwKKyAgICAgIGNhY2hlLjwvcD48L2RkPgorPC9kbD4KKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QxIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+Cis8YSBuYW1lPSJjbC1tYW51YWwubW9uaXRvci1jb21tYW5kcyI+PC9hPjYuNC6gQ2FsbGdyaW5kIE1vbml0b3IgQ29tbWFuZHM8L2gyPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+VGhlIENhbGxncmluZCB0b29sIHByb3ZpZGVzIG1vbml0b3IgY29tbWFuZHMgaGFuZGxlZCBieSB0aGUgVmFsZ3JpbmQKK2dkYnNlcnZlciAoc2VlIDxhIGNsYXNzPSJ4cmVmIiBocmVmPSJtYW51YWwtY29yZS1hZHYuaHRtbCNtYW51YWwtY29yZS1hZHYuZ2Ric2VydmVyLWNvbW1hbmRoYW5kbGluZyIgdGl0bGU9IjMuMi41LqBNb25pdG9yIGNvbW1hbmQgaGFuZGxpbmcgYnkgdGhlIFZhbGdyaW5kIGdkYnNlcnZlciI+TW9uaXRvciBjb21tYW5kIGhhbmRsaW5nIGJ5IHRoZSBWYWxncmluZCBnZGJzZXJ2ZXI8L2E+KS4KKzwvcD4KKzxkaXYgY2xhc3M9Iml0ZW1pemVkbGlzdCI+PHVsIGNsYXNzPSJpdGVtaXplZGxpc3QiIHN0eWxlPSJsaXN0LXN0eWxlLXR5cGU6IGRpc2M7ICI+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD48Y29kZSBjbGFzcz0idmFybmFtZSI+ZHVtcCBbJmx0O2R1bXBfaGludCZndDtdPC9jb2RlPiByZXF1ZXN0cyB0byBkdW1wIHRoZQorICAgIHByb2ZpbGUgZGF0YS4gPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD48Y29kZSBjbGFzcz0idmFybmFtZSI+emVybzwvY29kZT4gcmVxdWVzdHMgdG8gemVybyB0aGUgcHJvZmlsZSBkYXRhCisgICAgY291bnRlcnMuIDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+PGNvZGUgY2xhc3M9InZhcm5hbWUiPmluc3RydW1lbnRhdGlvbiBbb258b2ZmXTwvY29kZT4gcmVxdWVzdHMgdG8gc2V0IAorICAgIChpZiBwYXJhbWV0ZXIgb24vb2ZmIGlzIGdpdmVuKSBvciBnZXQgdGhlIGN1cnJlbnQgaW5zdHJ1bWVudGF0aW9uIHN0YXRlLgorICAgIDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+PGNvZGUgY2xhc3M9InZhcm5hbWUiPnN0YXR1czwvY29kZT4gcmVxdWVzdHMgdG8gcHJpbnQgb3V0IHNvbWUgc3RhdHVzCisgICAgaW5mb3JtYXRpb24uPC9wPjwvbGk+Cis8L3VsPjwvZGl2PgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MSI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPgorPGEgbmFtZT0iY2wtbWFudWFsLmNsaWVudHJlcXVlc3RzIj48L2E+Ni41LqBDYWxsZ3JpbmQgc3BlY2lmaWMgY2xpZW50IHJlcXVlc3RzPC9oMj48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPkNhbGxncmluZCBwcm92aWRlcyB0aGUgZm9sbG93aW5nIHNwZWNpZmljIGNsaWVudCByZXF1ZXN0cyBpbgorPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5jYWxsZ3JpbmQuaDwvY29kZT4uICBTZWUgdGhhdCBmaWxlIGZvciB0aGUgZXhhY3QgZGV0YWlscyBvZgordGhlaXIgYXJndW1lbnRzLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+Cis8YSBuYW1lPSJjbC5jbGllbnRyZXF1ZXN0cy5saXN0Ij48L2E+PGRsIGNsYXNzPSJ2YXJpYWJsZWxpc3QiPgorPGR0PgorPGEgbmFtZT0iY3IuZHVtcC1zdGF0cyI+PC9hPjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+Q0FMTEdSSU5EX0RVTVBfU1RBVFM8L2NvZGU+CisgICAgPC9zcGFuPgorPC9kdD4KKzxkZD48cD5Gb3JjZSBnZW5lcmF0aW9uIG9mIGEgcHJvZmlsZSBkdW1wIGF0IHNwZWNpZmllZCBwb3NpdGlvbgorICAgICAgaW4gY29kZSwgZm9yIHRoZSBjdXJyZW50IHRocmVhZCBvbmx5LiBXcml0dGVuIGNvdW50ZXJzIHdpbGwgYmUgcmVzZXQKKyAgICAgIHRvIHplcm8uPC9wPjwvZGQ+Cis8ZHQ+Cis8YSBuYW1lPSJjci5kdW1wLXN0YXRzLWF0Ij48L2E+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5DQUxMR1JJTkRfRFVNUF9TVEFUU19BVChzdHJpbmcpPC9jb2RlPgorICAgIDwvc3Bhbj4KKzwvZHQ+Cis8ZGQ+PHA+U2FtZSBhcyA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPkNBTExHUklORF9EVU1QX1NUQVRTPC9jb2RlPiwKKyAgICAgIGJ1dCBhbGxvd3MgdG8gc3BlY2lmeSBhIHN0cmluZyB0byBiZSBhYmxlIHRvIGRpc3Rpbmd1aXNoIHByb2ZpbGUKKyAgICAgIGR1bXBzLjwvcD48L2RkPgorPGR0PgorPGEgbmFtZT0iY3IuemVyby1zdGF0cyI+PC9hPjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+Q0FMTEdSSU5EX1pFUk9fU1RBVFM8L2NvZGU+CisgICAgPC9zcGFuPgorPC9kdD4KKzxkZD48cD5SZXNldCB0aGUgcHJvZmlsZSBjb3VudGVycyBmb3IgdGhlIGN1cnJlbnQgdGhyZWFkIHRvIHplcm8uPC9wPjwvZGQ+Cis8ZHQ+Cis8YSBuYW1lPSJjci50b2dnbGUtY29sbGVjdCI+PC9hPjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+Q0FMTEdSSU5EX1RPR0dMRV9DT0xMRUNUPC9jb2RlPgorICAgIDwvc3Bhbj4KKzwvZHQ+Cis8ZGQ+PHA+VG9nZ2xlIHRoZSBjb2xsZWN0aW9uIHN0YXRlLiBUaGlzIGFsbG93cyB0byBpZ25vcmUgZXZlbnRzCisgICAgICB3aXRoIHJlZ2FyZCB0byBwcm9maWxlIGNvdW50ZXJzLiBTZWUgYWxzbyBvcHRpb25zCisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj48YSBjbGFzcz0ieHJlZiIgaHJlZj0iY2wtbWFudWFsLmh0bWwjb3B0LmNvbGxlY3QtYXRzdGFydCI+LS1jb2xsZWN0LWF0c3RhcnQ8L2E+PC9jb2RlPiBhbmQKKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPjxhIGNsYXNzPSJ4cmVmIiBocmVmPSJjbC1tYW51YWwuaHRtbCNvcHQudG9nZ2xlLWNvbGxlY3QiPi0tdG9nZ2xlLWNvbGxlY3Q8L2E+PC9jb2RlPi48L3A+PC9kZD4KKzxkdD4KKzxhIG5hbWU9ImNyLnN0YXJ0LWluc3RyIj48L2E+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5DQUxMR1JJTkRfU1RBUlRfSU5TVFJVTUVOVEFUSU9OPC9jb2RlPgorICAgIDwvc3Bhbj4KKzwvZHQ+Cis8ZGQ+PHA+U3RhcnQgZnVsbCBDYWxsZ3JpbmQgaW5zdHJ1bWVudGF0aW9uIGlmIG5vdCBhbHJlYWR5IGVuYWJsZWQuCisgICAgICBXaGVuIGNhY2hlIHNpbXVsYXRpb24gaXMgZG9uZSwgdGhpcyB3aWxsIGZsdXNoIHRoZSBzaW11bGF0ZWQgY2FjaGUKKyAgICAgIGFuZCBsZWFkIHRvIGFuIGFydGlmaWNhbCBjYWNoZSB3YXJtdXAgcGhhc2UgYWZ0ZXJ3YXJkcyB3aXRoCisgICAgICBjYWNoZSBtaXNzZXMgd2hpY2ggd291bGQgbm90IGhhdmUgaGFwcGVuZWQgaW4gcmVhbGl0eS4gIFNlZSBhbHNvCisgICAgICBvcHRpb24gPGNvZGUgY2xhc3M9Im9wdGlvbiI+PGEgY2xhc3M9InhyZWYiIGhyZWY9ImNsLW1hbnVhbC5odG1sI29wdC5pbnN0ci1hdHN0YXJ0Ij4tLWluc3RyLWF0c3RhcnQ8L2E+PC9jb2RlPi48L3A+PC9kZD4KKzxkdD4KKzxhIG5hbWU9ImNyLnN0b3AtaW5zdHIiPjwvYT48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPkNBTExHUklORF9TVE9QX0lOU1RSVU1FTlRBVElPTjwvY29kZT4KKyAgICA8L3NwYW4+Cis8L2R0PgorPGRkPjxwPlN0b3AgZnVsbCBDYWxsZ3JpbmQgaW5zdHJ1bWVudGF0aW9uIGlmIG5vdCBhbHJlYWR5IGRpc2FibGVkLgorICAgICAgVGhpcyBmbHVzaGVzIFZhbGdyaW5kcyB0cmFuc2xhdGlvbiBjYWNoZSwgYW5kIGRvZXMgbm8gYWRkaXRpb25hbAorICAgICAgaW5zdHJ1bWVudGF0aW9uIGFmdGVyd2FyZHM6IGl0IGVmZmVjdGl2bHkgd2lsbCBydW4gYXQgdGhlIHNhbWUKKyAgICAgIHNwZWVkIGFzIE51bGdyaW5kLCBpLmUuIGF0IG1pbmltYWwgc2xvd2Rvd24uIFVzZSB0aGlzIHRvCisgICAgICBzcGVlZCB1cCB0aGUgQ2FsbGdyaW5kIHJ1biBmb3IgdW5pbnRlcmVzdGluZyBjb2RlIHBhcnRzLiBVc2UKKyAgICAgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+PGEgY2xhc3M9InhyZWYiIGhyZWY9ImNsLW1hbnVhbC5odG1sI2NyLnN0YXJ0LWluc3RyIj5DQUxMR1JJTkRfU1RBUlRfSU5TVFJVTUVOVEFUSU9OPC9hPjwvY29kZT4gdG8KKyAgICAgIGVuYWJsZSBpbnN0cnVtZW50YXRpb24gYWdhaW4uICBTZWUgYWxzbyBvcHRpb24KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPjxhIGNsYXNzPSJ4cmVmIiBocmVmPSJjbC1tYW51YWwuaHRtbCNvcHQuaW5zdHItYXRzdGFydCI+LS1pbnN0ci1hdHN0YXJ0PC9hPjwvY29kZT4uPC9wPjwvZGQ+Cis8L2RsPgorPC9kaXY+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QxIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+Cis8YSBuYW1lPSJjbC1tYW51YWwuY2FsbGdyaW5kX2Fubm90YXRlLW9wdGlvbnMiPjwvYT42LjYuoGNhbGxncmluZF9hbm5vdGF0ZSBDb21tYW5kLWxpbmUgT3B0aW9uczwvaDI+PC9kaXY+PC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPgorPGEgbmFtZT0iY2FsbGdyaW5kX2Fubm90YXRlLm9wdHMubGlzdCI+PC9hPjxkbCBjbGFzcz0idmFyaWFibGVsaXN0Ij4KKzxkdD48c3BhbiBjbGFzcz0idGVybSI+PGNvZGUgY2xhc3M9Im9wdGlvbiI+LWggLS1oZWxwPC9jb2RlPjwvc3Bhbj48L2R0PgorPGRkPjxwPlNob3cgc3VtbWFyeSBvZiBvcHRpb25zLjwvcD48L2RkPgorPGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj48Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXZlcnNpb248L2NvZGU+PC9zcGFuPjwvZHQ+Cis8ZGQ+PHA+U2hvdyB2ZXJzaW9uIG9mIGNhbGxncmluZF9hbm5vdGF0ZS48L3A+PC9kZD4KKzxkdD48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXNob3c9QSxCLEMgW2RlZmF1bHQ6IGFsbF08L2NvZGU+CisgICAgPC9zcGFuPjwvZHQ+Cis8ZGQ+PHA+T25seSBzaG93IGZpZ3VyZXMgZm9yIGV2ZW50cyBBLEIsQy48L3A+PC9kZD4KKzxkdD48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXNvcnQ9QSxCLEM8L2NvZGU+CisgICAgPC9zcGFuPjwvZHQ+Cis8ZGQ+PHA+U29ydCBjb2x1bW5zIGJ5IGV2ZW50cyBBLEIsQyBbZXZlbnQgY29sdW1uIG9yZGVyXS48L3A+PC9kZD4KKzxkdD48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXRocmVzaG9sZD0mbHQ7MC0tMTAwJmd0OyBbZGVmYXVsdDogOTklXSA8L2NvZGU+CisgICAgPC9zcGFuPjwvZHQ+Cis8ZGQ+PHA+UGVyY2VudGFnZSBvZiBjb3VudHMgKG9mIHByaW1hcnkgc29ydCBldmVudCkgd2UgYXJlIAorICAgICAgaW50ZXJlc3RlZCBpbi48L3A+PC9kZD4KKzxkdD48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWF1dG89Jmx0O3llc3xubyZndDsgW2RlZmF1bHQ6IG5vXSA8L2NvZGU+CisgICAgPC9zcGFuPjwvZHQ+Cis8ZGQ+PHA+QW5ub3RhdGUgYWxsIHNvdXJjZSBmaWxlcyBjb250YWluaW5nIGZ1bmN0aW9ucyB0aGF0IGhlbHBlZCAKKyAgICAgIHJlYWNoIHRoZSBldmVudCBjb3VudCB0aHJlc2hvbGQuPC9wPjwvZGQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1jb250ZXh0PU4gW2RlZmF1bHQ6IDhdIDwvY29kZT4KKyAgICA8L3NwYW4+PC9kdD4KKzxkZD48cD5QcmludCBOIGxpbmVzIG9mIGNvbnRleHQgYmVmb3JlIGFuZCBhZnRlciBhbm5vdGF0ZWQgCisgICAgICBsaW5lcy48L3A+PC9kZD4KKzxkdD48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWluY2x1c2l2ZT0mbHQ7eWVzfG5vJmd0OyBbZGVmYXVsdDogbm9dIDwvY29kZT4KKyAgICA8L3NwYW4+PC9kdD4KKzxkZD48cD5BZGQgc3Vicm91dGluZSBjb3N0cyB0byBmdW5jdGlvbnMgY2FsbHMuPC9wPjwvZGQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS10cmVlPSZsdDtub25lfGNhbGxlcnxjYWxsaW5nfGJvdGgmZ3Q7IFtkZWZhdWx0OiBub25lXSA8L2NvZGU+CisgICAgPC9zcGFuPjwvZHQ+Cis8ZGQ+PHA+UHJpbnQgZm9yIGVhY2ggZnVuY3Rpb24gdGhlaXIgY2FsbGVycywgdGhlIGNhbGxlZCBmdW5jdGlvbnMgCisgICAgICBvciBib3RoLjwvcD48L2RkPgorPGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi1JLCAtLWluY2x1ZGU9Jmx0O2RpciZndDsgPC9jb2RlPgorICAgIDwvc3Bhbj48L2R0PgorPGRkPjxwPkFkZCA8Y29kZSBjbGFzcz0ib3B0aW9uIj5kaXI8L2NvZGU+IHRvIHRoZSBsaXN0IG9mIGRpcmVjdG9yaWVzIHRvIHNlYXJjaAorICAgICAgZm9yIHNvdXJjZSBmaWxlcy48L3A+PC9kZD4KKzwvZGw+Cis8L2Rpdj4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDEiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj4KKzxhIG5hbWU9ImNsLW1hbnVhbC5jYWxsZ3JpbmRfY29udHJvbC1vcHRpb25zIj48L2E+Ni43LqBjYWxsZ3JpbmRfY29udHJvbCBDb21tYW5kLWxpbmUgT3B0aW9uczwvaDI+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD5CeSBkZWZhdWx0LCBjYWxsZ3JpbmRfY29udHJvbCBhY3RzIG9uIGFsbCBwcm9ncmFtcyBydW4gYnkgdGhlCisgIGN1cnJlbnQgdXNlciB1bmRlciBDYWxsZ3JpbmQuICBJdCBpcyBwb3NzaWJsZSB0byBsaW1pdCB0aGUgYWN0aW9ucyB0bworICBzcGVjaWZpZWQgQ2FsbGdyaW5kIHJ1bnMgYnkgcHJvdmlkaW5nIGEgbGlzdCBvZiBwaWRzIG9yIHByb2dyYW0gbmFtZXMgYXMKKyAgYXJndW1lbnQuICBUaGUgZGVmYXVsdCBhY3Rpb24gaXMgdG8gZ2l2ZSBzb21lIGJyaWVmIGluZm9ybWF0aW9uIGFib3V0IHRoZQorICBhcHBsaWNhdGlvbnMgYmVpbmcgcnVuIHVuZGVyIENhbGxncmluZC48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPgorPGEgbmFtZT0iY2FsbGdyaW5kX2NvbnRyb2wub3B0cy5saXN0Ij48L2E+PGRsIGNsYXNzPSJ2YXJpYWJsZWxpc3QiPgorPGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj48Y29kZSBjbGFzcz0ib3B0aW9uIj4taCAtLWhlbHA8L2NvZGU+PC9zcGFuPjwvZHQ+Cis8ZGQ+PHA+U2hvdyBhIHNob3J0IGRlc2NyaXB0aW9uLCB1c2FnZSwgYW5kIHN1bW1hcnkgb2Ygb3B0aW9ucy48L3A+PC9kZD4KKzxkdD48c3BhbiBjbGFzcz0idGVybSI+PGNvZGUgY2xhc3M9Im9wdGlvbiI+LS12ZXJzaW9uPC9jb2RlPjwvc3Bhbj48L2R0PgorPGRkPjxwPlNob3cgdmVyc2lvbiBvZiBjYWxsZ3JpbmRfY29udHJvbC48L3A+PC9kZD4KKzxkdD48c3BhbiBjbGFzcz0idGVybSI+PGNvZGUgY2xhc3M9Im9wdGlvbiI+LWwgLS1sb25nPC9jb2RlPjwvc3Bhbj48L2R0PgorPGRkPjxwPlNob3cgYWxzbyB0aGUgd29ya2luZyBkaXJlY3RvcnksIGluIGFkZGl0aW9uIHRvIHRoZSBicmllZgorICAgICAgaW5mb3JtYXRpb24gZ2l2ZW4gYnkgZGVmYXVsdC4KKyAgICAgIDwvcD48L2RkPgorPGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj48Y29kZSBjbGFzcz0ib3B0aW9uIj4tcyAtLXN0YXQ8L2NvZGU+PC9zcGFuPjwvZHQ+Cis8ZGQ+PHA+U2hvdyBzdGF0aXN0aWNzIGluZm9ybWF0aW9uIGFib3V0IGFjdGl2ZSBDYWxsZ3JpbmQgcnVucy48L3A+PC9kZD4KKzxkdD48c3BhbiBjbGFzcz0idGVybSI+PGNvZGUgY2xhc3M9Im9wdGlvbiI+LWIgLS1iYWNrPC9jb2RlPjwvc3Bhbj48L2R0PgorPGRkPjxwPlNob3cgc3RhY2svYmFjayB0cmFjZXMgb2YgZWFjaCB0aHJlYWQgaW4gYWN0aXZlIENhbGxncmluZCBydW5zLiBGb3IKKyAgICAgIGVhY2ggYWN0aXZlIGZ1bmN0aW9uIGluIHRoZSBzdGFjayB0cmFjZSwgYWxzbyB0aGUgbnVtYmVyIG9mIGludm9jYXRpb25zCisgICAgICBzaW5jZSBwcm9ncmFtIHN0YXJ0IChvciBsYXN0IGR1bXApIGlzIHNob3duLiBUaGlzIG9wdGlvbiBjYW4gYmUKKyAgICAgIGNvbWJpbmVkIHdpdGggLWUgdG8gc2hvdyBpbmNsdXNpdmUgY29zdCBvZiBhY3RpdmUgZnVuY3Rpb25zLjwvcD48L2RkPgorPGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj48Y29kZSBjbGFzcz0ib3B0aW9uIj4tZSBbQSxCLC4uLl0gPC9jb2RlPiAoZGVmYXVsdDogYWxsKTwvc3Bhbj48L2R0PgorPGRkPjxwPlNob3cgdGhlIGN1cnJlbnQgcGVyLXRocmVhZCwgZXhjbHVzaXZlIGNvc3QgdmFsdWVzIG9mIGV2ZW50CisgICAgICBjb3VudGVycy4gSWYgbm8gZXhwbGljaXQgZXZlbnQgbmFtZXMgYXJlIGdpdmVuLCBmaWd1cmVzIGZvciBhbGwgZXZlbnQKKyAgICAgIHR5cGVzIHdoaWNoIGFyZSBjb2xsZWN0ZWQgaW4gdGhlIGdpdmVuIENhbGxncmluZCBydW4gYXJlCisgICAgICBzaG93bi4gT3RoZXJ3aXNlLCBvbmx5IGZpZ3VyZXMgZm9yIGV2ZW50IHR5cGVzIEEsIEIsIC4uLiBhcmUgc2hvd24uIElmCisgICAgICB0aGlzIG9wdGlvbiBpcyBjb21iaW5lZCB3aXRoIC1iLCBpbmNsdXNpdmUgY29zdCBmb3IgdGhlIGZ1bmN0aW9ucyBvZgorICAgICAgZWFjaCBhY3RpdmUgc3RhY2sgZnJhbWUgaXMgcHJvdmlkZWQsIHRvby4KKyAgICAgIDwvcD48L2RkPgorPGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj48Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWR1bXBbPSZsdDtkZXNjJmd0O10gPC9jb2RlPiAoZGVmYXVsdDogbm8gZGVzY3JpcHRpb24pPC9zcGFuPjwvZHQ+Cis8ZGQ+PHA+UmVxdWVzdCB0aGUgZHVtcGluZyBvZiBwcm9maWxlIGluZm9ybWF0aW9uLiBPcHRpb25hbGx5LCBhIAorICAgICAgZGVzY3JpcHRpb24gY2FuIGJlIHNwZWNpZmllZCB3aGljaCBpcyB3cml0dGVuIGludG8gdGhlIGR1bXAgYXMgcGFydCBvZgorICAgICAgdGhlIGluZm9ybWF0aW9uIGdpdmluZyB0aGUgcmVhc29uIHdoaWNoIHRyaWdnZXJlZCB0aGUgZHVtcCBhY3Rpb24uIFRoaXMKKyAgICAgIGNhbiBiZSB1c2VkIHRvIGRpc3Rpbmd1aXNoIG11bHRpcGxlIGR1bXBzLjwvcD48L2RkPgorPGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj48Y29kZSBjbGFzcz0ib3B0aW9uIj4teiAtLXplcm88L2NvZGU+PC9zcGFuPjwvZHQ+Cis8ZGQ+PHA+WmVybyBhbGwgZXZlbnQgY291bnRlcnMuPC9wPjwvZGQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPjxjb2RlIGNsYXNzPSJvcHRpb24iPi1rIC0ta2lsbDwvY29kZT48L3NwYW4+PC9kdD4KKzxkZD48cD5Gb3JjZSBhIENhbGxncmluZCBydW4gdG8gYmUgdGVybWluYXRlZC48L3A+PC9kZD4KKzxkdD48c3BhbiBjbGFzcz0idGVybSI+PGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1pbnN0cj0mbHQ7b258b2ZmJmd0OzwvY29kZT48L3NwYW4+PC9kdD4KKzxkZD48cD5Td2l0Y2ggaW5zdHJ1bWVudGF0aW9uIG1vZGUgb24gb3Igb2ZmLiBJZiBhIENhbGxncmluZCBydW4gaGFzCisgICAgICBpbnN0cnVtZW50YXRpb24gZGlzYWJsZWQsIG5vIHNpbXVsYXRpb24gaXMgZG9uZSBhbmQgbm8gZXZlbnRzIGFyZQorICAgICAgY291bnRlZC4gVGhpcyBpcyB1c2VmdWwgdG8gc2tpcCB1bmludGVyZXN0aW5nIHByb2dyYW0gcGFydHMsIGFzIHRoZXJlCisgICAgICBpcyBtdWNoIGxlc3Mgc2xvd2Rvd24gKHNhbWUgYXMgd2l0aCB0aGUgVmFsZ3JpbmQgdG9vbCAibm9uZSIpLiBTZWUgYWxzbworICAgICAgdGhlIENhbGxncmluZCBvcHRpb24gPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1pbnN0ci1hdHN0YXJ0PC9jb2RlPi48L3A+PC9kZD4KKzxkdD48c3BhbiBjbGFzcz0idGVybSI+PGNvZGUgY2xhc3M9Im9wdGlvbiI+LS12Z2RiLXByZWZpeD0mbHQ7cHJlZml4Jmd0OzwvY29kZT48L3NwYW4+PC9kdD4KKzxkZD48cD5TcGVjaWZ5IHRoZSB2Z2RiIHByZWZpeCB0byB1c2UgYnkgY2FsbGdyaW5kX2NvbnRyb2wuCisgICAgICBjYWxsZ3JpbmRfY29udHJvbCBpbnRlcm5hbGx5IHVzZXMgdmdkYiB0byBmaW5kIGFuZCBjb250cm9sIHRoZSBhY3RpdmUKKyAgICAgIENhbGxncmluZCBydW5zLiBJZiB0aGUgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS12Z2RiLXByZWZpeDwvY29kZT4gb3B0aW9uIHdhcyB1c2VkCisgICAgICBmb3IgbGF1bmNoaW5nIHZhbGdyaW5kLCB0aGVuIHRoZSBzYW1lIG9wdGlvbiBtdXN0IGJlIGdpdmVuIHRvCisgICAgICBjYWxsZ3JpbmRfY29udHJvbC48L3A+PC9kZD4KKzwvZGw+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+Cis8ZGl2PgorPGJyPjx0YWJsZSBjbGFzcz0ibmF2IiB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjMiIGNlbGxwYWRkaW5nPSIyIiBib3JkZXI9IjAiIHN1bW1hcnk9Ik5hdmlnYXRpb24gZm9vdGVyIj4KKzx0cj4KKzx0ZCByb3dzcGFuPSIyIiB3aWR0aD0iNDAlIiBhbGlnbj0ibGVmdCI+Cis8YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImNnLW1hbnVhbC5odG1sIj4mbHQ7Jmx0O6A1LqBDYWNoZWdyaW5kOiBhIGNhY2hlIGFuZCBicmFuY2gtcHJlZGljdGlvbiBwcm9maWxlcjwvYT6gPC90ZD4KKzx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0iY2VudGVyIj48YSBhY2Nlc3NrZXk9InUiIGhyZWY9Im1hbnVhbC5odG1sIj5VcDwvYT48L3RkPgorPHRkIHJvd3NwYW49IjIiIHdpZHRoPSI0MCUiIGFsaWduPSJyaWdodCI+oDxhIGFjY2Vzc2tleT0ibiIgaHJlZj0iaGctbWFudWFsLmh0bWwiPjcuoEhlbGdyaW5kOiBhIHRocmVhZCBlcnJvciBkZXRlY3RvcqAmZ3Q7Jmd0OzwvYT4KKzwvdGQ+Cis8L3RyPgorPHRyPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0iY2VudGVyIj48YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPkhvbWU8L2E+PC90ZD48L3RyPgorPC90YWJsZT4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvZG9jcy9odG1sL2Rlc2lnbi1pbXBsLmh0bWwgYi9kb2NzL2h0bWwvZGVzaWduLWltcGwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMmY4YzZlCi0tLSAvZGV2L251bGwKKysrIGIvZG9jcy9odG1sL2Rlc2lnbi1pbXBsLmh0bWwKQEAgLTAsMCArMSw4NCBAQAorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiPgorPHRpdGxlPjEuoFRoZSBEZXNpZ24gYW5kIEltcGxlbWVudGF0aW9uIG9mIFZhbGdyaW5kPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9InZnX2Jhc2ljLmNzcyI+Cis8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkRvY0Jvb2sgWFNMIFN0eWxlc2hlZXRzIFYxLjc4LjEiPgorPGxpbmsgcmVsPSJob21lIiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0iVmFsZ3JpbmQgRG9jdW1lbnRhdGlvbiI+Cis8bGluayByZWw9InVwIiBocmVmPSJ0ZWNoLWRvY3MuaHRtbCIgdGl0bGU9IlZhbGdyaW5kIFRlY2huaWNhbCBEb2N1bWVudGF0aW9uIj4KKzxsaW5rIHJlbD0icHJldiIgaHJlZj0idGVjaC1kb2NzLmh0bWwiIHRpdGxlPSJWYWxncmluZCBUZWNobmljYWwgRG9jdW1lbnRhdGlvbiI+Cis8bGluayByZWw9Im5leHQiIGhyZWY9Im1hbnVhbC13cml0aW5nLXRvb2xzLmh0bWwiIHRpdGxlPSIyLqBXcml0aW5nIGEgTmV3IFZhbGdyaW5kIFRvb2wiPgorPC9oZWFkPgorPGJvZHkgYmdjb2xvcj0id2hpdGUiIHRleHQ9ImJsYWNrIiBsaW5rPSIjMDAwMEZGIiB2bGluaz0iIzg0MDA4NCIgYWxpbms9IiMwMDAwRkYiPgorPGRpdj48dGFibGUgY2xhc3M9Im5hdiIgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSIzIiBjZWxscGFkZGluZz0iMyIgYm9yZGVyPSIwIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciI+PHRyPgorPHRkIHdpZHRoPSIyMnB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJwIiBocmVmPSJ0ZWNoLWRvY3MuaHRtbCI+PGltZyBzcmM9ImltYWdlcy9wcmV2LnBuZyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjIxIiBib3JkZXI9IjAiIGFsdD0iUHJldiI+PC9hPjwvdGQ+Cis8dGQgd2lkdGg9IjI1cHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9InUiIGhyZWY9InRlY2gtZG9jcy5odG1sIj48aW1nIHNyYz0iaW1hZ2VzL3VwLnBuZyIgd2lkdGg9IjIxIiBoZWlnaHQ9IjE4IiBib3JkZXI9IjAiIGFsdD0iVXAiPjwvYT48L3RkPgorPHRkIHdpZHRoPSIzMXB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJoIiBocmVmPSJpbmRleC5odG1sIj48aW1nIHNyYz0iaW1hZ2VzL2hvbWUucG5nIiB3aWR0aD0iMjciIGhlaWdodD0iMjAiIGJvcmRlcj0iMCIgYWx0PSJVcCI+PC9hPjwvdGQ+Cis8dGggYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPlZhbGdyaW5kIFRlY2huaWNhbCBEb2N1bWVudGF0aW9uPC90aD4KKzx0ZCB3aWR0aD0iMjJweCIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPjxhIGFjY2Vzc2tleT0ibiIgaHJlZj0ibWFudWFsLXdyaXRpbmctdG9vbHMuaHRtbCI+PGltZyBzcmM9ImltYWdlcy9uZXh0LnBuZyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjIxIiBib3JkZXI9IjAiIGFsdD0iTmV4dCI+PC9hPjwvdGQ+Cis8L3RyPjwvdGFibGU+PC9kaXY+Cis8ZGl2IGNsYXNzPSJjaGFwdGVyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMSBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0iZGVzaWduLWltcGwiPjwvYT4xLqBUaGUgRGVzaWduIGFuZCBJbXBsZW1lbnRhdGlvbiBvZiBWYWxncmluZDwvaDE+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD5BIG51bWJlciBvZiBhY2FkZW1pYyBwdWJsaWNhdGlvbnMgbmljZWx5IGRlc2NyaWJlIG1hbnkgYXNwZWN0cworb2YgVmFsZ3JpbmQncyBkZXNpZ24gYW5kIGltcGxlbWVudGF0aW9uLiAgT25saW5lIGNvcGllcyBvZiBhbGwgb2YKK3RoZW0sIGFuZCBvdGhlcnMsIGFyZSBhdmFpbGFibGUgb24gdGhlIDxhIGNsYXNzPSJ1bGluayIgaHJlZj0iaHR0cDovL3d3dy52YWxncmluZC5vcmcvZG9jcy9wdWJzLmh0bWwiIHRhcmdldD0iX3RvcCI+VmFsZ3JpbmQKK3B1YmxpY2F0aW9ucyBwYWdlPC9hPi48L3A+Cis8cD5UaGUgZm9sbG93aW5nIHBhcGVyIGdpdmVzIGEgZ29vZCBvdmVydmlldyBvZiBWYWxncmluZCwgYW5kIGV4cGxhaW5zCitob3cgaXQgZGlmZmVycyBmcm9tIG90aGVyIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbiBmcmFtZXdvcmtzIHN1Y2ggYXMKK1BpbiBhbmQgRHluYW1vUklPLjwvcD4KKzxkaXYgY2xhc3M9Iml0ZW1pemVkbGlzdCI+PHVsIGNsYXNzPSJpdGVtaXplZGxpc3QiIHN0eWxlPSJsaXN0LXN0eWxlLXR5cGU6IGRpc2M7ICI+PGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+CisgICAgPHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+VmFsZ3JpbmQ6IEEgRnJhbWV3b3JrIGZvciBIZWF2eXdlaWdodCBEeW5hbWljIEJpbmFyeQorICAgIEluc3RydW1lbnRhdGlvbi4gIE5pY2hvbGFzIE5ldGhlcmNvdGUgYW5kIEp1bGlhbiBTZXdhcmQuICBQcm9jZWVkaW5ncworICAgIG9mIEFDTSBTSUdQTEFOIDIwMDcgQ29uZmVyZW5jZSBvbiBQcm9ncmFtbWluZyBMYW5ndWFnZSBEZXNpZ24gYW5kCisgICAgSW1wbGVtZW50YXRpb24gKFBMREkgMjAwNyksIFNhbiBEaWVnbywgQ2FsaWZvcm5pYSwgVVNBLCBKdW5lCisgICAgMjAwNy48L3N0cm9uZz48L3NwYW4+CisgICAgPC9wPjwvbGk+PC91bD48L2Rpdj4KKzxwPlRoZSBmb2xsb3dpbmcgdHdvIHBhcGVycyB0b2dldGhlciBnaXZlIGEgY29tcHJlaGVuc2l2ZSBkZXNjcmlwdGlvbiBvZgoraG93IG1vc3Qgb2YgTWVtY2hlY2sgd29ya3MuICBUaGUgZmlyc3QgcGFwZXIgZGVzY3JpYmVzIGluIGRldGFpbCBob3cKK01lbWNoZWNrJ3MgdW5kZWZpbmVkIHZhbHVlIGVycm9yIGRldGVjdGlvbiAoYS5rLmEuIFYgYml0cykgd29ya3MuICBUaGUKK3NlY29uZCBwYXBlciBkZXNjcmliZXMgaW4gZGV0YWlsIGhvdyBNZW1jaGVjaydzIHNoYWRvdyBtZW1vcnkgaXMKK2ltcGxlbWVudGVkLCBhbmQgY29tcGFyZXMgaXQgdG8gb3RoZXIgYWx0ZXJuYXRpdmUgYXBwcm9hY2hlcy4KKzwvcD4KKzxkaXYgY2xhc3M9Iml0ZW1pemVkbGlzdCI+PHVsIGNsYXNzPSJpdGVtaXplZGxpc3QiIHN0eWxlPSJsaXN0LXN0eWxlLXR5cGU6IGRpc2M7ICI+PGxpIGNsYXNzPSJsaXN0aXRlbSI+Cis8cD48c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz5Vc2luZyBWYWxncmluZCB0byBkZXRlY3QgdW5kZWZpbmVkIHZhbHVlIGVycm9ycyB3aXRoCisgICAgYml0LXByZWNpc2lvbi4gIEp1bGlhbiBTZXdhcmQgYW5kIE5pY2hvbGFzIE5ldGhlcmNvdGUuICBQcm9jZWVkaW5ncworICAgIG9mIHRoZSBVU0VOSVgnMDUgQW5udWFsIFRlY2huaWNhbCBDb25mZXJlbmNlLCBBbmFoZWltLCBDYWxpZm9ybmlhLAorICAgIFVTQSwgQXByaWwgMjAwNS48L3N0cm9uZz48L3NwYW4+ICAKKyAgICA8L3A+Cis8cD48c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz5Ib3cgdG8gU2hhZG93IEV2ZXJ5IEJ5dGUgb2YgTWVtb3J5IFVzZWQgYnkgYSBQcm9ncmFtLgorICAgIE5pY2hvbGFzIE5ldGhlcmNvdGUgYW5kIEp1bGlhbiBTZXdhcmQuICBQcm9jZWVkaW5ncyBvZiB0aGUgVGhpcmQKKyAgICBJbnRlcm5hdGlvbmFsIEFDTSBTSUdQTEFOL1NJR09QUyBDb25mZXJlbmNlIG9uIFZpcnR1YWwgRXhlY3V0aW9uCisgICAgRW52aXJvbm1lbnRzIChWRUUgMjAwNyksIFNhbiBEaWVnbywgQ2FsaWZvcm5pYSwgVVNBLCBKdW5lCisgICAgMjAwNy48L3N0cm9uZz48L3NwYW4+CisgICAgPC9wPgorPC9saT48L3VsPjwvZGl2PgorPHA+VGhlIGZvbGxvd2luZyBwYXBlciBkZXNjcmliZXMgQ2FsbGdyaW5kLjwvcD4KKzxkaXYgY2xhc3M9Iml0ZW1pemVkbGlzdCI+PHVsIGNsYXNzPSJpdGVtaXplZGxpc3QiIHN0eWxlPSJsaXN0LXN0eWxlLXR5cGU6IGRpc2M7ICI+PGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+PHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+QSBUb29sIFN1aXRlIGZvciBTaW11bGF0aW9uIEJhc2VkIEFuYWx5c2lzIG9mIE1lbW9yeSBBY2Nlc3MKKyAgICBCZWhhdmlvci4gIEpvc2VmIFdlaWRlbmRvcmZlciwgTWFya3VzIEtvd2Fyc2NoaWsgYW5kIENhcnN0ZW4KKyAgICBUcmluaXRpcy4gIFByb2NlZWRpbmdzIG9mIHRoZSA0dGggSW50ZXJuYXRpb25hbCBDb25mZXJlbmNlIG9uCisgICAgQ29tcHV0YXRpb25hbCBTY2llbmNlIChJQ0NTIDIwMDQpLCBLcmFrb3csIFBvbGFuZCwgSnVuZSAyMDA0Ljwvc3Ryb25nPjwvc3Bhbj4KKyAgICA8L3A+PC9saT48L3VsPjwvZGl2PgorPHA+VGhlIGZvbGxvd2luZyBkaXNzZXJ0YXRpb24gZGVzY3JpYmVzIFZhbGdyaW5kIGluIHNvbWUgZGV0YWlsCisobWFueSBvZiB0aGVzZSBkZXRhaWxzIGFyZSBub3cgb3V0LW9mLWRhdGUpIGFzIHdlbGwgYXMgQ2FjaGVncmluZCwKK0FubmVsaWQgYW5kIFJlZHV4LiAgSXQgYWxzbyBjb3ZlcnMgc29tZSB1bmRlcmx5aW5nIHRoZW9yeSBhYm91dAorZHluYW1pYyBiaW5hcnkgYW5hbHlzaXMgaW4gZ2VuZXJhbCBhbmQgd2hhdCBhbGwgdGhlc2UgdG9vbHMgaGF2ZSBpbgorY29tbW9uLjwvcD4KKzxkaXYgY2xhc3M9Iml0ZW1pemVkbGlzdCI+PHVsIGNsYXNzPSJpdGVtaXplZGxpc3QiIHN0eWxlPSJsaXN0LXN0eWxlLXR5cGU6IGRpc2M7ICI+PGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+PHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+RHluYW1pYyBCaW5hcnkgQW5hbHlzaXMgYW5kIEluc3RydW1lbnRhdGlvbi4gIE5pY2hvbGFzCisgICAgTmV0aGVyY290ZS48L3N0cm9uZz48L3NwYW4+ICBQaEQgRGlzc2VydGF0aW9uLCBVbml2ZXJzaXR5IG9mIENhbWJyaWRnZSwgTm92ZW1iZXIKKyAgICAyMDA0LjwvcD48L2xpPjwvdWw+PC9kaXY+Cis8L2Rpdj4KKzxkaXY+Cis8YnI+PHRhYmxlIGNsYXNzPSJuYXYiIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0iMyIgY2VsbHBhZGRpbmc9IjIiIGJvcmRlcj0iMCIgc3VtbWFyeT0iTmF2aWdhdGlvbiBmb290ZXIiPgorPHRyPgorPHRkIHJvd3NwYW49IjIiIHdpZHRoPSI0MCUiIGFsaWduPSJsZWZ0Ij4KKzxhIGFjY2Vzc2tleT0icCIgaHJlZj0idGVjaC1kb2NzLmh0bWwiPiZsdDsmbHQ7oFZhbGdyaW5kIFRlY2huaWNhbCBEb2N1bWVudGF0aW9uPC9hPqA8L3RkPgorPHRkIHdpZHRoPSIyMCUiIGFsaWduPSJjZW50ZXIiPjxhIGFjY2Vzc2tleT0idSIgaHJlZj0idGVjaC1kb2NzLmh0bWwiPlVwPC9hPjwvdGQ+Cis8dGQgcm93c3Bhbj0iMiIgd2lkdGg9IjQwJSIgYWxpZ249InJpZ2h0Ij6gPGEgYWNjZXNza2V5PSJuIiBocmVmPSJtYW51YWwtd3JpdGluZy10b29scy5odG1sIj4yLqBXcml0aW5nIGEgTmV3IFZhbGdyaW5kIFRvb2ygJmd0OyZndDs8L2E+Cis8L3RkPgorPC90cj4KKzx0cj48dGQgd2lkdGg9IjIwJSIgYWxpZ249ImNlbnRlciI+PGEgYWNjZXNza2V5PSJoIiBocmVmPSJpbmRleC5odG1sIj5Ib21lPC9hPjwvdGQ+PC90cj4KKzwvdGFibGU+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL2RvY3MvaHRtbC9kaC1tYW51YWwuaHRtbCBiL2RvY3MvaHRtbC9kaC1tYW51YWwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NTU3ZTdkCi0tLSAvZGV2L251bGwKKysrIGIvZG9jcy9odG1sL2RoLW1hbnVhbC5odG1sCkBAIC0wLDAgKzEsMzYzIEBACis8aHRtbD4KKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSI+Cis8dGl0bGU+MTAuoERIQVQ6IGEgZHluYW1pYyBoZWFwIGFuYWx5c2lzIHRvb2w8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0idmdfYmFzaWMuY3NzIj4KKzxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iRG9jQm9vayBYU0wgU3R5bGVzaGVldHMgVjEuNzguMSI+Cis8bGluayByZWw9ImhvbWUiIGhyZWY9ImluZGV4Lmh0bWwiIHRpdGxlPSJWYWxncmluZCBEb2N1bWVudGF0aW9uIj4KKzxsaW5rIHJlbD0idXAiIGhyZWY9Im1hbnVhbC5odG1sIiB0aXRsZT0iVmFsZ3JpbmQgVXNlciBNYW51YWwiPgorPGxpbmsgcmVsPSJwcmV2IiBocmVmPSJtcy1tYW51YWwuaHRtbCIgdGl0bGU9IjkuoE1hc3NpZjogYSBoZWFwIHByb2ZpbGVyIj4KKzxsaW5rIHJlbD0ibmV4dCIgaHJlZj0ic2ctbWFudWFsLmh0bWwiIHRpdGxlPSIxMS6gU0dDaGVjazogYW4gZXhwZXJpbWVudGFsIHN0YWNrIGFuZCBnbG9iYWwgYXJyYXkgb3ZlcnJ1biBkZXRlY3RvciI+Cis8L2hlYWQ+Cis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+Cis8ZGl2Pjx0YWJsZSBjbGFzcz0ibmF2IiB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjMiIGNlbGxwYWRkaW5nPSIzIiBib3JkZXI9IjAiIHN1bW1hcnk9Ik5hdmlnYXRpb24gaGVhZGVyIj48dHI+Cis8dGQgd2lkdGg9IjIycHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9InAiIGhyZWY9Im1zLW1hbnVhbC5odG1sIj48aW1nIHNyYz0iaW1hZ2VzL3ByZXYucG5nIiB3aWR0aD0iMTgiIGhlaWdodD0iMjEiIGJvcmRlcj0iMCIgYWx0PSJQcmV2Ij48L2E+PC90ZD4KKzx0ZCB3aWR0aD0iMjVweCIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPjxhIGFjY2Vzc2tleT0idSIgaHJlZj0ibWFudWFsLmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvdXAucG5nIiB3aWR0aD0iMjEiIGhlaWdodD0iMTgiIGJvcmRlcj0iMCIgYWx0PSJVcCI+PC9hPjwvdGQ+Cis8dGQgd2lkdGg9IjMxcHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvaG9tZS5wbmciIHdpZHRoPSIyNyIgaGVpZ2h0PSIyMCIgYm9yZGVyPSIwIiBhbHQ9IlVwIj48L2E+PC90ZD4KKzx0aCBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+VmFsZ3JpbmQgVXNlciBNYW51YWw8L3RoPgorPHRkIHdpZHRoPSIyMnB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJuIiBocmVmPSJzZy1tYW51YWwuaHRtbCI+PGltZyBzcmM9ImltYWdlcy9uZXh0LnBuZyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjIxIiBib3JkZXI9IjAiIGFsdD0iTmV4dCI+PC9hPjwvdGQ+Cis8L3RyPjwvdGFibGU+PC9kaXY+Cis8ZGl2IGNsYXNzPSJjaGFwdGVyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMSBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0iZGgtbWFudWFsIj48L2E+MTAuoERIQVQ6IGEgZHluYW1pYyBoZWFwIGFuYWx5c2lzIHRvb2w8L2gxPjwvZGl2PjwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0idG9jIj4KKzxwPjxiPlRhYmxlIG9mIENvbnRlbnRzPC9iPjwvcD4KKzxkbCBjbGFzcz0idG9jIj4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9ImRoLW1hbnVhbC5odG1sI2RoLW1hbnVhbC5vdmVydmlldyI+MTAuMS4gT3ZlcnZpZXc8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJkaC1tYW51YWwuaHRtbCNkaC1tYW51YWwudW5kZXJzdGFuZGluZyI+MTAuMi4gVW5kZXJzdGFuZGluZyBESEFUJ3Mgb3V0cHV0PC9hPjwvc3Bhbj48L2R0PgorPGRkPjxkbD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9ImRoLW1hbnVhbC5odG1sI2lkbTE0MDYzOTExNzEyNjE2MCI+MTAuMi4xLiBJbnRlcnByZXRpbmcgdGhlIG1heC1saXZlLCB0b3QtYWxsb2MgYW5kIGRlYXRocyBmaWVsZHM8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJkaC1tYW51YWwuaHRtbCNpZG0xNDA2MzkxMTM4NDE0ODgiPjEwLjIuMi4gSW50ZXJwcmV0aW5nIHRoZSBhY2MtcmF0aW9zIGZpZWxkczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9ImRoLW1hbnVhbC5odG1sI2lkbTE0MDYzOTExNjc0MTE1MiI+MTAuMi4zLiBJbnRlcnByZXRpbmcgIkFnZ3JlZ2F0ZWQgYWNjZXNzIGNvdW50cyBieSBvZmZzZXQiIGRhdGE8L2E+PC9zcGFuPjwvZHQ+Cis8L2RsPjwvZGQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJkaC1tYW51YWwuaHRtbCNkaC1tYW51YWwub3B0aW9ucyI+MTAuMy4gREhBVCBDb21tYW5kLWxpbmUgT3B0aW9uczwvYT48L3NwYW4+PC9kdD4KKzwvZGw+Cis8L2Rpdj4KKzxwPlRvIHVzZSB0aGlzIHRvb2wsIHlvdSBtdXN0IHNwZWNpZnkKKzxjb2RlIGNsYXNzPSJvcHRpb24iPi0tdG9vbD1leHAtZGhhdDwvY29kZT4gb24gdGhlIFZhbGdyaW5kCitjb21tYW5kIGxpbmUuPC9wPgorPGRpdiBjbGFzcz0ic2VjdDEiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj4KKzxhIG5hbWU9ImRoLW1hbnVhbC5vdmVydmlldyI+PC9hPjEwLjEuoE92ZXJ2aWV3PC9oMj48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPkRIQVQgaXMgYSB0b29sIGZvciBleGFtaW5pbmcgaG93IHByb2dyYW1zIHVzZSB0aGVpciBoZWFwCithbGxvY2F0aW9ucy48L3A+Cis8cD5JdCB0cmFja3MgdGhlIGFsbG9jYXRlZCBibG9ja3MsIGFuZCBpbnNwZWN0cyBldmVyeSBtZW1vcnkgYWNjZXNzCit0byBmaW5kIHdoaWNoIGJsb2NrLCBpZiBhbnksIGl0IGlzIHRvLiAgVGhlIGZvbGxvd2luZyBkYXRhIGlzCitjb2xsZWN0ZWQgYW5kIHByZXNlbnRlZCBwZXIgYWxsb2NhdGlvbiBwb2ludCAoYWxsb2NhdGlvbgorc3RhY2spOjwvcD4KKzxkaXYgY2xhc3M9Iml0ZW1pemVkbGlzdCI+PHVsIGNsYXNzPSJpdGVtaXplZGxpc3QiIHN0eWxlPSJsaXN0LXN0eWxlLXR5cGU6IGRpc2M7ICI+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5Ub3RhbCBhbGxvY2F0aW9uIChudW1iZXIgb2YgYnl0ZXMgYW5kCisgIGJsb2Nrcyk8L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPm1heGltdW0gbGl2ZSB2b2x1bWUgKG51bWJlciBvZiBieXRlcyBhbmQKKyAgYmxvY2tzKTwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+YXZlcmFnZSBibG9jayBsaWZldGltZSAobnVtYmVyIG9mIGluc3RydWN0aW9ucworICAgYmV0d2VlbiBhbGxvY2F0aW9uIGFuZCBmcmVlaW5nKTwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+YXZlcmFnZSBudW1iZXIgb2YgcmVhZHMgYW5kIHdyaXRlcyB0byBlYWNoIGJ5dGUgaW4KKyAgIHRoZSBibG9jayAoImFjY2VzcyByYXRpb3MiKTwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+Zm9yIGFsbG9jYXRpb24gcG9pbnRzIHdoaWNoIGFsd2F5cyBhbGxvY2F0ZSBibG9ja3MKKyAgIG9ubHkgb2Ygb25lIHNpemUsIGFuZCB0aGF0IHNpemUgaXMgNDA5NiBieXRlcyBvciBsZXNzOiBjb3VudHMKKyAgIHNob3dpbmcgaG93IG9mdGVuIGVhY2ggYnl0ZSBvZmZzZXQgaW5zaWRlIHRoZSBibG9jayBpcworICAgYWNjZXNzZWQuPC9wPjwvbGk+Cis8L3VsPjwvZGl2PgorPHA+VXNpbmcgdGhlc2Ugc3RhdGlzdGljcyBpdCBpcyBwb3NzaWJsZSB0byBpZGVudGlmeSBhbGxvY2F0aW9uCitwb2ludHMgd2l0aCB0aGUgZm9sbG93aW5nIGNoYXJhY3RlcmlzdGljczo8L3A+Cis8ZGl2IGNsYXNzPSJpdGVtaXplZGxpc3QiPjx1bCBjbGFzcz0iaXRlbWl6ZWRsaXN0IiBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOiBkaXNjOyAiPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+cG90ZW50aWFsIHByb2Nlc3MtbGlmZXRpbWUgbGVha3M6IGJsb2NrcyBhbGxvY2F0ZWQKKyAgIGJ5IHRoZSBwb2ludCBqdXN0IGFjY3VtdWxhdGUsIGFuZCBhcmUgZnJlZWQgb25seSBhdCB0aGUgZW5kIG9mIHRoZQorICAgcnVuLjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+ZXhjZXNzaXZlIHR1cm5vdmVyOiBwb2ludHMgd2hpY2ggY2hldyB0aHJvdWdoIGEgbG90CisgIG9mIGhlYXAsIGV2ZW4gaWYgaXQgaXMgbm90IGhlbGQgb250byBmb3IgdmVyeSBsb25nPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5leGNlc3NpdmVseSB0cmFuc2llbnQ6IHBvaW50cyB3aGljaCBhbGxvY2F0ZSB2ZXJ5Cisgc2hvcnQgbGl2ZWQgYmxvY2tzPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD51c2VsZXNzIG9yIHVuZGVydXNlZCBhbGxvY2F0aW9uczogYmxvY2tzIHdoaWNoIGFyZQorICBhbGxvY2F0ZWQgYnV0IG5vdCBjb21wbGV0ZWx5IGZpbGxlZCBpbiwgb3IgYXJlIGZpbGxlZCBpbiBidXQgbm90CisgIHN1YnNlcXVlbnRseSByZWFkLjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+YmxvY2tzIHdpdGggaW5lZmZpY2llbnQgbGF5b3V0IC0tIGFyZWFzIG5ldmVyCisgIGFjY2Vzc2VkLCBvciB3aXRoIGhvdCBmaWVsZHMgc2NhdHRlcmVkIHRocm91Z2hvdXQgdGhlCisgIGJsb2NrLjwvcD48L2xpPgorPC91bD48L2Rpdj4KKzxwPkFzIHdpdGggdGhlIE1hc3NpZiBoZWFwIHByb2ZpbGVyLCBESEFUIG1lYXN1cmVzIHByb2dyYW0gcHJvZ3Jlc3MKK2J5IGNvdW50aW5nIGluc3RydWN0aW9ucywgYW5kIHNvIHByZXNlbnRzIGFsbCBhZ2UvdGltZSByZWxhdGVkIGZpZ3VyZXMKK2FzIGluc3RydWN0aW9uIGNvdW50cy4gIFRoaXMgc291bmRzIGEgbGl0dGxlIG9kZCBhdCBmaXJzdCwgYnV0IGl0CittYWtlcyBydW5zIHJlcGVhdGFibGUgaW4gYSB3YXkgd2hpY2ggaXMgbm90IHBvc3NpYmxlIGlmIENQVSB0aW1lIGlzCit1c2VkLjwvcD4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDEiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj4KKzxhIG5hbWU9ImRoLW1hbnVhbC51bmRlcnN0YW5kaW5nIj48L2E+MTAuMi6gVW5kZXJzdGFuZGluZyBESEFUJ3Mgb3V0cHV0PC9oMj48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPkRIQVQgcHJvdmlkZXMgYSBsb3Qgb2YgdXNlZnVsIGluZm9ybWF0aW9uIG9uIGR5bmFtaWMgaGVhcCB1c2FnZS4KK01vc3Qgb2YgdGhlIGFydCBvZiB1c2luZyBpdCBpcyBpbiBpbnRlcnByZXRhdGlvbiBvZiB0aGUgcmVzdWx0aW5nCitudW1iZXJzLiAgVGhhdCBpcyBiZXN0IGlsbHVzdHJhdGVkIHZpYSBhIHNldCBvZiBleGFtcGxlcy48L3A+Cis8ZGl2IGNsYXNzPSJzZWN0MiI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9ImlkbTE0MDYzOTExNzEyNjE2MCI+PC9hPjEwLjIuMS6gSW50ZXJwcmV0aW5nIHRoZSBtYXgtbGl2ZSwgdG90LWFsbG9jIGFuZCBkZWF0aHMgZmllbGRzPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QzIj48ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDQgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9ImlkbTE0MDYzOTExNzEyNTQ1NiI+PC9hPjEwLjIuMS4xLqBBIHNpbXBsZSBleGFtcGxlPC9oND48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwcmUgY2xhc3M9InNjcmVlbiI+CisgICA9PT09PT09PSBTVU1NQVJZIFNUQVRJU1RJQ1MgPT09PT09PT0KKworICAgZ3Vlc3RfaW5zbnM6ICAxLDA0NSwzMzksNTM0CisgICBbLi4uXQorICAgbWF4LWxpdmU6ICAgIDYzLDQ5MCBpbiA5ODQgYmxvY2tzCisgICB0b3QtYWxsb2M6ICAgMSw5MDQsNzAwIGluIDI5LDUyMCBibG9ja3MgKGF2ZyBzaXplIDY0LjUyKQorICAgZGVhdGhzOiAgICAgIDI5LDUyMCwgYXQgYXZnIGFnZSAyMiwyMjcsNDI0CisgICBhY2MtcmF0aW9zOiAgNi4zNyByZCwgMS4xNCB3ciAgKDEyLDE0MSw1MjYgYi1yZWFkLCAyLDE3NCw0NjAgYi13cml0dGVuKQorICAgICAgYXQgMHg0QzI3NUI4OiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6MjM2KQorICAgICAgYnkgMHg0MDM1MEU6IHRjY19tYWxsb2MgKHRpbnljYy5jOjY3MTIpCisgICAgICBieSAweDQwNDU4MDogdG9rX2FsbG9jX25ldyAodGlueWNjLmM6NzE1MSkKKyAgICAgIGJ5IDB4NDA4NzBBOiBuZXh0X25vbWFjcm8xICh0aW55Y2MuYzo5MzA1KQorPC9wcmU+Cis8cD5PdmVyIHRoZSBlbnRpcmUgcnVuIG9mIHRoZSBwcm9ncmFtLCB0aGlzIHN0YWNrIChhbGxvY2F0aW9uCitwb2ludCkgYWxsb2NhdGVkIDI5LDUyMCBibG9ja3MgaW4gdG90YWwsIGNvbnRhaW5pbmcgMSw5MDQsNzAwIGJ5dGVzIGluCit0b3RhbC4gIEJ5IGxvb2tpbmcgYXQgdGhlIG1heC1saXZlIGRhdGEsIHdlIHNlZSB0aGF0IG5vdCBtYW55IGJsb2Nrcword2VyZSBzaW11bHRhbmVvdXNseSBsaXZlLCB0aG91Z2g6IGF0IHRoZSBwZWFrLCB0aGVyZSB3ZXJlIDYzLDQ5MAorYWxsb2NhdGVkIGJ5dGVzIGluIDk4NCBibG9ja3MuICBUaGlzIHRlbGxzIHVzIHRoYXQgdGhlIHByb2dyYW0gaXMKK3N0ZWFkaWx5IGZyZWVpbmcgc3VjaCBibG9ja3MgYXMgaXQgcnVucywgcmF0aGVyIHRoYW4gaGFuZ2luZyBvbiB0byBhbGwKK29mIHRoZW0gdW50aWwgdGhlIGVuZCBhbmQgZnJlZWluZyB0aGVtIGFsbC48L3A+Cis8cD5UaGUgZGVhdGhzIGVudHJ5IHRlbGxzIHVzIHRoYXQgMjksNTIwIGJsb2NrcyBhbGxvY2F0ZWQgYnkgdGhpcyBzdGFjaworZGllZCAod2VyZSBmcmVlZCkgZHVyaW5nIHRoZSBydW4gb2YgdGhlIHByb2dyYW0uICBTaW5jZSAyOSw1MjAgaXMKK2Fsc28gdGhlIG51bWJlciBvZiBibG9ja3MgYWxsb2NhdGVkIGluIHRvdGFsLCB0aGF0IHRlbGxzIHVzIHRoYXQKK2FsbCBhbGxvY2F0ZWQgYmxvY2tzIHdlcmUgZnJlZWQgYnkgdGhlIGVuZCBvZiB0aGUgcHJvZ3JhbS48L3A+Cis8cD5JdCBhbHNvIHRlbGxzIHVzIHRoYXQgdGhlIGF2ZXJhZ2UgYWdlIGF0IGRlYXRoIHdhcyAyMiwyMjcsNDI0CitpbnN0cnVjdGlvbnMuICBGcm9tIHRoZSBzdW1tYXJ5IHN0YXRpc3RpY3Mgd2Ugc2VlIHRoYXQgdGhlIHByb2dyYW0gcmFuCitmb3IgMSwwNDUsMzM5LDUzNCBpbnN0cnVjdGlvbnMsIGFuZCBzbyB0aGUgYXZlcmFnZSBhZ2UgYXQgZGVhdGggaXMKK2Fib3V0IDIlIG9mIHRoZSBwcm9ncmFtJ3MgdG90YWwgcnVuIHRpbWUuPC9wPgorPGRpdiBjbGFzcz0ic2VjdDMiPjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoNCBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0iaWRtMTQwNjM5MTEzOTgwNTQ0Ij48L2E+MTAuMi4xLjIuoEV4YW1wbGUgb2YgYSBwb3RlbnRpYWwgcHJvY2Vzcy1saWZldGltZSBsZWFrPC9oND48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPlRoaXMgbmV4dCBleGFtcGxlIChmcm9tIGEgZGlmZmVyZW50IHByb2dyYW0gdGhhbiB0aGUgYWJvdmUpCitzaG93cyBhIHBvdGVudGlhbCBwcm9jZXNzIGxpZmV0aW1lIGxlYWsuICBBIHByb2Nlc3MgbGlmZXRpbWUgbGVhaworb2NjdXJzIHdoZW4gYSBwcm9ncmFtIGtlZXBzIGFsbG9jYXRpbmcgZGF0YSwgYnV0IG9ubHkgZnJlZXMgdGhlCitkYXRhIGp1c3QgYmVmb3JlIGl0IGV4aXRzLiAgSGVuY2UgdGhlIHByb2dyYW0ncyBoZWFwIGdyb3dzIGNvbnN0YW50bHkKK2luIHNpemUsIHlldCBNZW1jaGVjayByZXBvcnRzIG5vIGxlYWssIGJlY2F1c2UgdGhlIHByb2dyYW0gaGFzCitmcmVlZCB1cCBldmVyeXRoaW5nIGF0IGV4aXQuICBUaGlzIGlzIHBhcnRpY3VsYXJseSBhIGhhemFyZCBmb3IKK2xvbmcgcnVubmluZyBwcm9ncmFtcy48L3A+Cis8cHJlIGNsYXNzPSJzY3JlZW4iPgorICAgPT09PT09PT0gU1VNTUFSWSBTVEFUSVNUSUNTID09PT09PT09CisgICAKKyAgIGd1ZXN0X2luc25zOiAgNDE4LDkwMSw1MzcKKyAgIFsuLi5dCisgICBtYXgtbGl2ZTogICAgMzIsNTEyIGluIDI1NCBibG9ja3MKKyAgIHRvdC1hbGxvYzogICAzMiw1MTIgaW4gMjU0IGJsb2NrcyAoYXZnIHNpemUgMTI4LjAwKQorICAgZGVhdGhzOiAgICAgIDI1NCwgYXQgYXZnIGFnZSAzMDAsNDY3LDM4OQorICAgYWNjLXJhdGlvczogIDAuMjYgcmQsIDAuMjAgd3IgICg4LDc1NiBiLXJlYWQsIDYsNjA0IGItd3JpdHRlbikKKyAgICAgIGF0IDB4NEMyNzVCODogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOjIzNikKKyAgICAgIGJ5IDB4NEMyNzYzMjogcmVhbGxvYyAodmdfcmVwbGFjZV9tYWxsb2MuYzo1MjUpCisgICAgICBieSAweDU2RkY0MUQ6IFF0Rm9udFN0eWxlOjpwaXhlbFNpemUodW5zaWduZWQgc2hvcnQsIGJvb2wpIChxZm9udGRhdGFiYXNlLmNwcDoyNjkpCisgICAgICBieSAweDU3MDBENjk6IGxvYWRGb250Q29uZmlnKCkgKHFmb250ZGF0YWJhc2VfeDExLmNwcDoxMTQ2KQorPC9wcmU+Cis8cD5UaGVyZSBhcmUgdHdvIHRlbGwtdGFsZSBzaWducyB0aGF0IHRoaXMgbWlnaHQgYmUgYQorcHJvY2Vzcy1saWZldGltZSBsZWFrLiAgRmlyc3RseSwgdGhlIG1heC1saXZlIGFuZCB0b3QtYWxsb2MgbnVtYmVycworYXJlIGlkZW50aWNhbC4gIFRoZSBvbmx5IHdheSB0aGF0IGNhbiBoYXBwZW4gaXMgaWYgdGhlc2UgYmxvY2tzIGFyZQorYWxsIGFsbG9jYXRlZCBhbmQgdGhlbiBhbGwgZGVhbGxvY2F0ZWQuPC9wPgorPHA+U2Vjb25kbHksIHRoZSBhdmVyYWdlIGFnZSBhdCBkZWF0aCAoMzAwIG1pbGxpb24gaW5zbnMpIGlzIDcxJSBvZgordGhlIHRvdGFsIHByb2dyYW0gbGlmZXRpbWUgKDQxOSBtaWxsaW9uIGluc25zKSwgaGVuY2UgdGhpcyBpcyBub3QgYQordHJhbnNpZW50IGFsbG9jYXRpb24tZnJlZSBzcGlrZSAtLSByYXRoZXIsIGl0IGlzIHNwcmVhZCBvdXQgb3ZlciBhCitsYXJnZSBwYXJ0IG9mIHRoZSBlbnRpcmUgcnVuLiAgT25lIGludGVycHJldGF0aW9uIGlzLCByb3VnaGx5LCB0aGF0CithbGwgMjU0IGJsb2NrcyB3ZXJlIGFsbG9jYXRlZCBpbiB0aGUgZmlyc3QgaGFsZiBvZiB0aGUgcnVuLCBoZWxkIG9udG8KK2ZvciB0aGUgc2Vjb25kIGhhbGYsIGFuZCB0aGVuIGZyZWVkIGp1c3QgYmVmb3JlIGV4aXQuPC9wPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MiI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9ImlkbTE0MDYzOTExMzg0MTQ4OCI+PC9hPjEwLjIuMi6gSW50ZXJwcmV0aW5nIHRoZSBhY2MtcmF0aW9zIGZpZWxkczwvaDM+PC9kaXY+PC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MyI+PGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGg0IGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJpZG0xNDA2MzkxMTM4NDA3MzYiPjwvYT4xMC4yLjIuMS6gQSBmYWlybHkgaGFybWxlc3MgYWxsb2NhdGlvbiBwb2ludCByZWNvcmQ8L2g0PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PgorPHByZSBjbGFzcz0ic2NyZWVuIj4KKyAgIG1heC1saXZlOiAgICA0OSwzOTggaW4gODA4IGJsb2NrcworICAgdG90LWFsbG9jOiAgIDEsNDgxLDk0MCBpbiAyNCwyNDAgYmxvY2tzIChhdmcgc2l6ZSA2MS4xMykKKyAgIGRlYXRoczogICAgICAyNCwyNDAsIGF0IGF2ZyBhZ2UgMzQsNjExLDAyNgorICAgYWNjLXJhdGlvczogIDIuMTMgcmQsIDAuOTEgd3IgICgzLDE2Niw2NTAgYi1yZWFkLCAxLDM1OCw4MjAgYi13cml0dGVuKQorICAgICAgYXQgMHg0QzI3NUI4OiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6MjM2KQorICAgICAgYnkgMHg0MDM1MEU6IHRjY19tYWxsb2MgKHRpbnljYy5jOjY3MTIpCisgICAgICBieSAweDQwNDU4MDogdG9rX2FsbG9jX25ldyAodGlueWNjLmM6NzE1MSkKKyAgICAgIGJ5IDB4NDA0NkM0OiB0b2tfYWxsb2MgKHRpbnljYy5jOjcxOTApCis8L3ByZT4KKzxwPlRoZSBhY2MtcmF0aW9zIGZpZWxkIHRlbGxzIHVzIHRoYXQgZWFjaCBieXRlIGluIHRoZSBibG9ja3MKK2FsbG9jYXRlZCBoZXJlIGlzIHJlYWQgYW4gYXZlcmFnZSBvZiAyLjEzIHRpbWVzIGJlZm9yZSB0aGUgYmxvY2sgaXMKK2RlYWxsb2NhdGVkLiAgR2l2ZW4gdGhhdCB0aGUgYmxvY2tzIGhhdmUgYW4gYXZlcmFnZSBhZ2UgYXQgZGVhdGggb2YKKzM0LDYxMSwwMjYsIHRoYXQncyBvbmUgcmVhZCBwZXIgYmxvY2sgcGVyIGFwcHJveGltYXRlbHkgZXZlcnkgMTUKK21pbGxpb24gaW5zdHJ1Y3Rpb25zLiAgU28gZnJvbSB0aGF0IHN0YW5kcG9pbnQgdGhlIGJsb2NrcyBhcmVuJ3QKKyJ3b3JraW5nIiB2ZXJ5IGhhcmQuPC9wPgorPHA+TW9yZSBpbnRlcmVzdGluZyBpcyB0aGUgd3JpdGUgcmF0aW86IGVhY2ggYnl0ZSBpcyB3cml0dGVuIGFuCithdmVyYWdlIG9mIDAuOTEgdGltZXMuICBUaGlzIHRlbGxzIHVzIHRoYXQgc29tZSBwYXJ0cyBvZiB0aGUgYWxsb2NhdGVkCitibG9ja3MgYXJlIG5ldmVyIHdyaXR0ZW4sIGF0IGxlYXN0IDklIG9uIGF2ZXJhZ2UuICBUbyBjb21wbGV0ZWx5Citpbml0aWFsaXNlIHRoZSBibG9jayB3b3VsZCByZXF1aXJlIHdyaXRpbmcgZWFjaCBieXRlIGF0IGxlYXN0IG9uY2UsCithbmQgdGhhdCB3b3VsZCBnaXZlIGEgd3JpdGUgcmF0aW8gb2YgMS4wLiAgVGhlIGZhY3QgdGhhdCBzb21lIGJsb2NrCithcmVhcyBhcmUgZXZpZGVudGx5IHVudXNlZCBtaWdodCBwb2ludCB0byBkYXRhIGFsaWdubWVudCBob2xlcyBvcgorb3RoZXIgbGF5b3V0IGluZWZmaWNpZW5jaWVzLjwvcD4KKzxwPldlbGwsIGF0IGxlYXN0IGFsbCB0aGUgYmxvY2tzIGFyZSBmcmVlZCAoMjQsMjQwIGFsbG9jYXRpb25zLAorMjQsMjQwIGRlYXRocykuPC9wPgorPHA+SWYgYWxsIHRoZSBibG9ja3MgaGFkIGJlZW4gdGhlIHNhbWUgc2l6ZSwgREhBVCB3b3VsZCBhbHNvIHNob3cKK3RoZSBhY2Nlc3MgY291bnRzIGJ5IGJsb2NrIG9mZnNldCwgc28gd2UgY291bGQgc2VlIHdoZXJlIGV4YWN0bHkgdGhlc2UKK3VudXNlZCBhcmVhcyBhcmUuICBIb3dldmVyLCB0aGF0IGlzbid0IHRoZSBjYXNlOiB0aGUgYmxvY2tzIGhhdmUKK3Zhcnlpbmcgc2l6ZXMsIHNvIERIQVQgY2FuJ3QgcGVyZm9ybSBzdWNoIGFuIGFuYWx5c2lzLiAgV2UgY2FuIHNlZQordGhhdCB0aGV5IG11c3QgaGF2ZSB2YXJ5aW5nIHNpemVzIHNpbmNlIHRoZSBhdmVyYWdlIGJsb2NrIHNpemUsIDYxLjEzLAoraXNuJ3QgYSB3aG9sZSBudW1iZXIuPC9wPgorPGRpdiBjbGFzcz0ic2VjdDMiPjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoNCBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0iaWRtMTQwNjM5MTE4MTM0NTYwIj48L2E+MTAuMi4yLjIuoEEgbW9yZSBzdXNwaWNpb3VzIGxvb2tpbmcgZXhhbXBsZTwvaDQ+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cHJlIGNsYXNzPSJzY3JlZW4iPgorICAgbWF4LWxpdmU6ICAgIDE4MCwyMjQgaW4gMjIgYmxvY2tzCisgICB0b3QtYWxsb2M6ICAgMTgwLDIyNCBpbiAyMiBibG9ja3MgKGF2ZyBzaXplIDgxOTIuMDApCisgICBkZWF0aHM6ICAgICAgbm9uZSAobm9uZSBvZiB0aGVzZSBibG9ja3Mgd2VyZSBmcmVlZCkKKyAgIGFjYy1yYXRpb3M6ICAwLjAwIHJkLCAwLjAwIHdyICAoMCBiLXJlYWQsIDAgYi13cml0dGVuKQorICAgICAgYXQgMHg0QzI3NUI4OiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6MjM2KQorICAgICAgYnkgMHg0MDM1MEU6IHRjY19tYWxsb2MgKHRpbnljYy5jOjY3MTIpCisgICAgICBieSAweDQwMzY5QzogX19zeW1fbWFsbG9jICh0aW55Y2MuYzo2Nzg3KQorICAgICAgYnkgMHg0MDM3MTE6IHN5bV9tYWxsb2MgKHRpbnljYy5jOjY4MDUpCis8L3ByZT4KKzxwPkhlcmUsIGJvdGggdGhlIHJlYWQgYW5kIHdyaXRlIGFjY2VzcyByYXRpb3MgYXJlIHplcm8uICBIZW5jZQordGhpcyBwb2ludCBpcyBhbGxvY2F0aW5nIGJsb2NrcyB3aGljaCBhcmUgbmV2ZXIgdXNlZCwgbmVpdGhlciByZWFkIG5vcgord3JpdHRlbi4gIEluZGVlZCwgdGhleSBhcmUgYWxzbyBub3QgZnJlZWQgKCJkZWF0aHM6IG5vbmUiKSBhbmQgYXJlCitzaW1wbHkgbGVha2VkLiAgU28sIGhlcmUgaXMgMTgwayBvZiBjb21wbGV0ZWx5IHVzZWxlc3MgYWxsb2NhdGlvbiB0aGF0Citjb3VsZCBiZSByZW1vdmVkLjwvcD4KKzxwPlJlLXJ1bm5pbmcgd2l0aCBNZW1jaGVjayBkb2VzIGluZGVlZCByZXBvcnQgdGhlIHNhbWUgbGVhay4gIFdoYXQKK0RIQVQgY2FuIHRlbGwgdXMsIHRoYXQgTWVtY2hlY2sgY2FuJ3QsIGlzIHRoYXQgbm90IG9ubHkgYXJlIHRoZSBibG9ja3MKK2xlYWtlZCwgdGhleSBhcmUgYWxzbyBuZXZlciB1c2VkLjwvcD4KKzxkaXYgY2xhc3M9InNlY3QzIj48ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDQgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9ImlkbTE0MDYzOTExMTQ5ODQzMiI+PC9hPjEwLjIuMi4zLqBBbm90aGVyIHN1c3BpY2lvdXMgZXhhbXBsZTwvaDQ+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD5IZXJlJ3Mgb25lIHdoZXJlIGJsb2NrcyBhcmUgYWxsb2NhdGVkLCB3cml0dGVuIHRvLAorYnV0IG5ldmVyIHJlYWQgZnJvbS4gIFdlIHNlZSB0aGlzIGltbWVkaWF0ZWx5IGZyb20gdGhlIHplcm8gcmVhZAorYWNjZXNzIHJhdGlvLiAgVGhleSBkbyBnZXQgZnJlZWQsIHRob3VnaDo8L3A+Cis8cHJlIGNsYXNzPSJzY3JlZW4iPgorICAgbWF4LWxpdmU6ICAgIDU0IGluIDMgYmxvY2tzCisgICB0b3QtYWxsb2M6ICAgMSw2MjAgaW4gOTAgYmxvY2tzIChhdmcgc2l6ZSAxOC4wMCkKKyAgIGRlYXRoczogICAgICA5MCwgYXQgYXZnIGFnZSAzNCw1NTgsMjM2CisgICBhY2MtcmF0aW9zOiAgMC4wMCByZCwgMS4xMSB3ciAgKDAgYi1yZWFkLCAxLDgwMCBiLXdyaXR0ZW4pCisgICAgICBhdCAweDRDMjc1Qjg6IG1hbGxvYyAodmdfcmVwbGFjZV9tYWxsb2MuYzoyMzYpCisgICAgICBieSAweDQwMzUwRTogdGNjX21hbGxvYyAodGlueWNjLmM6NjcxMikKKyAgICAgIGJ5IDB4NDAzNUJEOiB0Y2Nfc3RyZHVwICh0aW55Y2MuYzo2NzUwKQorICAgICAgYnkgMHg0MUZFQkI6IHRjY19hZGRfc3lzaW5jbHVkZV9wYXRoICh0aW55Y2MuYzoyMDkzMSkKKzwvcHJlPgorPHA+SW4gdGhlIHByZXZpb3VzIHR3byBleGFtcGxlcywgaXQgaXMgZWFzeSB0byBzZWUgYmxvY2tzIHRoYXQgYXJlCituZXZlciB3cml0dGVuIHRvLCBvciBuZXZlciByZWFkIGZyb20sIG9yIHNvbWUgY29tYmluYXRpb24gb2YgYm90aC4KK1VuZm9ydHVuYXRlbHksIGluIEMrKyBjb2RlLCB0aGUgc2l0dWF0aW9uIGlzIGxlc3MgY2xlYXIuICBUaGF0J3MKK2JlY2F1c2UgYW4gb2JqZWN0J3MgY29uc3RydWN0b3Igd2lsbCB3cml0ZSB0byB0aGUgdW5kZXJseWluZyBibG9jaywKK2FuZCBpdHMgZGVzdHJ1Y3RvciB3aWxsIHJlYWQgZnJvbSBpdC4gIFNvIHRoZSBibG9jaydzIHJlYWQgYW5kIHdyaXRlCityYXRpb3Mgd2lsbCBiZSBub24temVybyBldmVuIGlmIHRoZSBvYmplY3QsIG9uY2UgY29uc3RydWN0ZWQsIGlzIG5ldmVyCit1c2VkLCBidXQgb25seSBldmVudHVhbGx5IGRlc3RydWN0ZWQuPC9wPgorPHA+UmVhbGx5LCB3aGF0IHdlIHdhbnQgaXMgdG8gbWVhc3VyZSBvbmx5IG1lbW9yeSBhY2Nlc3NlcyBpbgorYmV0d2VlbiB0aGUgZW5kIG9mIGFuIG9iamVjdCdzIGNvbnN0cnVjdGlvbiBhbmQgdGhlIHN0YXJ0IG9mIGl0cworZGVzdHJ1Y3Rpb24uICBVbmZvcnR1bmF0ZWx5IEkgZG8gbm90IGtub3cgb2YgYSByZWxpYWJsZSB3YXkgdG8KK2RldGVybWluZSB3aGVuIHRob3NlIHRyYW5zaXRpb25zIGFyZSBtYWRlLjwvcD4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDIiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJpZG0xNDA2MzkxMTY3NDExNTIiPjwvYT4xMC4yLjMuoEludGVycHJldGluZyAiQWdncmVnYXRlZCBhY2Nlc3MgY291bnRzIGJ5IG9mZnNldCIgZGF0YTwvaDM+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD5Gb3IgYWxsb2NhdGlvbiBwb2ludHMgdGhhdCBhbHdheXMgYWxsb2NhdGUgYmxvY2tzIG9mIHRoZSBzYW1lCitzaXplLCBhbmQgd2hpY2ggYXJlIDQwOTYgYnl0ZXMgb3Igc21hbGxlciwgREhBVCBjb3VudHMgYWNjZXNzZXMKK3BlciBvZmZzZXQsIGZvciBleGFtcGxlOjwvcD4KKzxwcmUgY2xhc3M9InNjcmVlbiI+CisgICBtYXgtbGl2ZTogICAgMzE3LDQwOCBpbiA1LDY2OCBibG9ja3MKKyAgIHRvdC1hbGxvYzogICAzMTcsNDA4IGluIDUsNjY4IGJsb2NrcyAoYXZnIHNpemUgNTYuMDApCisgICBkZWF0aHM6ICAgICAgNSw2NjgsIGF0IGF2ZyBhZ2UgNjIyLDg5MCw1OTcKKyAgIGFjYy1yYXRpb3M6ICAxLjAzIHJkLCAxLjI4IHdyICAoMzI3LDY0MiBiLXJlYWQsIDQwOCwxNzIgYi13cml0dGVuKQorICAgICAgYXQgMHg0QzI3NUI4OiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6MjM2KQorICAgICAgYnkgMHg1NDQwQzE2OiBRRGVzaWduZXJQcm9wZXJ0eVNoZWV0UHJpdmF0ZTo6ZW5zdXJlSW5mbyAocWhhc2guaDo1MTUpCisgICAgICBieSAweDU0NDM1MEI6IFFEZXNpZ25lclByb3BlcnR5U2hlZXQ6OnNldFZpc2libGUgKHFkZXNpZ25lcl9wcm9wZXJ0eXNoLi4uKQorICAgICAgYnkgMHg1NDQ2MjMyOiBRRGVzaWduZXJQcm9wZXJ0eVNoZWV0OjpRRGVzaWduZXJQcm9wZXJ0eVNoZWV0IChxZGVzaWduZS4uLikKKyAgIAorICAgQWdncmVnYXRlZCBhY2Nlc3MgY291bnRzIGJ5IG9mZnNldDoKKyAgIAorICAgWyAgIDBdICAyODc4MiAyODc4MiAyODc4MiAyODc4MiAyODc4MiAyODc4MiAyODc4MiAyODc4MgorICAgWyAgIDhdICAyMDYzOCAyMDYzOCAyMDYzOCAyMDYzOCAwIDAgMCAwIAorICAgWyAgMTZdICAyMjczOCAyMjczOCAyMjczOCAyMjczOCAyMjczOCAyMjczOCAyMjczOCAyMjczOAorICAgWyAgMjRdICA2MDEzIDYwMTMgNjAxMyA2MDEzIDYwMTMgNjAxMyA2MDEzIDYwMTMgCisgICBbICAzMl0gIDE4ODgzIDE4ODgzIDE4ODgzIDM3NDIyIDAgMCAwIDAKKyAgIFsgIDM2XSAgNTY2OCAxMTkxNSA1NjY4IDU2NjggMTEzMzYgMTEzMzYgMTEzMzYgMTEzMzYgCisgICBbICA0OF0gIDYxNjYgNjE2NiA2MTY2IDYxNjYgMCAwIDAgMCAKKzwvcHJlPgorPHA+VGhpcyBpcyBmYWlybHkgdHlwaWNhbCwgZm9yIEMrKyBjb2RlIHJ1bm5pbmcgb24gYSA2NC1iaXQKK3BsYXRmb3JtLiAgSGVyZSwgd2UgaGF2ZSBhZ2dyZWdhdGVkIGFjY2VzcyBzdGF0aXN0aWNzIGZvciA1NjY4IGJsb2NrcywKK2FsbCBvZiBzaXplIDU2IGJ5dGVzLiAgRWFjaCBieXRlIGhhcyBiZWVuIGFjY2Vzc2VkIGF0IGxlYXN0IDU2NjgKK3RpbWVzLCBleGNlcHQgZm9yIG9mZnNldHMgMTItLTE1LCAzNi0tMzkgYW5kIDUyLS01NS4gIFRoZXNlIGFyZSBsaWtlbHkKK3RvIGJlIGFsaWdubWVudCBob2xlcy48L3A+Cis8cD5DYXJlZnVsIGludGVycHJldGF0aW9uIG9mIHRoZSBudW1iZXJzIHJldmVhbHMgdXNlZnVsIGluZm9ybWF0aW9uLgorR3JvdXBzIG9mIE4gY29uc2VjdXRpdmUgaWRlbnRpY2FsIG51bWJlcnMgdGhhdCBiZWdpbiBhdCBhbiBOLWFsaWduZWQKK29mZnNldCwgZm9yIE4gYmVpbmcgMiwgNCBvciA4LCBhcmUgbGlrZWx5IHRvIGluZGljYXRlIGFuIE4tYnl0ZSBvYmplY3QKK2luIHRoZSBzdHJ1Y3R1cmUgYXQgdGhhdCBwb2ludC4gIEZvciBleGFtcGxlLCB0aGUgZmlyc3QgMzIgYnl0ZXMgb2YKK3RoaXMgb2JqZWN0IGFyZSBsaWtlbHkgdG8gaGF2ZSB0aGUgbGF5b3V0PC9wPgorPHByZSBjbGFzcz0ic2NyZWVuIj4KKyAgIFswIF0gIDY0LWJpdCB0eXBlCisgICBbOCBdICAzMi1iaXQgdHlwZQorICAgWzEyXSAgMzItYml0IGFsaWdubWVudCBob2xlCisgICBbMTZdICA2NC1iaXQgdHlwZQorICAgWzI0XSAgNjQtYml0IHR5cGUKKzwvcHJlPgorPHA+QXMgYSBjb3VudGVyZXhhbXBsZSwgaXQncyBhbHNvIGNsZWFyIHRoYXQsIHdoYXRldmVyIGlzIGF0IG9mZnNldCAzMiwKK2l0IGlzIG5vdCBhIDMyLWJpdCB2YWx1ZS4gIFRoYXQncyBiZWNhdXNlIHRoZSBsYXN0IG51bWJlciBvZiB0aGUgZ3JvdXAKKygzNzQyMikgaXMgbm90IHRoZSBzYW1lIGFzIHRoZSBmaXJzdCB0aHJlZSAoMTg4ODMgMTg4ODMgMTg4ODMpLjwvcD4KKzxwPlRoaXMgZXhhbXBsZSBsZWFkcyBvbmUgdG8gZW5xdWlyZSAoYnkgcmVhZGluZyB0aGUgc291cmNlIGNvZGUpCit3aGV0aGVyIHRoZSB6ZXJvZXMgYXQgMTItLTE1IGFuZCA1Mi0tNTUgYXJlIGFsaWdubWVudCBob2xlcywgYW5kCit3aGV0aGVyIDQ4LS01MSBpcyBpbmRlZWQgYSAzMi1iaXQgdHlwZS4gIElmIHNvLCBpdCBtaWdodCBiZSBwb3NzaWJsZQordG8gcGxhY2Ugd2hhdCdzIGF0IDQ4LS01MSBhdCAxMi0tMTUgaW5zdGVhZCwgd2hpY2ggd291bGQgcmVkdWNlCit0aGUgb2JqZWN0IHNpemUgZnJvbSA1NiB0byA0OCBieXRlcy48L3A+Cis8cD5CZWFyIGluIG1pbmQgdGhhdCB0aGUgYWJvdmUgaW5mZXJlbmNlcyBhcmUgYWxsIG9ubHkgIm1heWJlcyIuICBUaGF0J3MKK2JlY2F1c2UgdGhleSBhcmUgYmFzZWQgb24gZHluYW1pYyBkYXRhLCBub3Qgc3RhdGljIGFuYWx5c2lzIG9mIHRoZQorb2JqZWN0IGxheW91dC4gIEZvciBleGFtcGxlLCB0aGUgemVyb2VzIG1pZ2h0IG5vdCBiZSBhbGlnbm1lbnQKK2hvbGVzLCBidXQgcmF0aGVyIGp1c3QgcGFydHMgb2YgdGhlIHN0cnVjdHVyZSB3aGljaCB3ZXJlIG5vdCB1c2VkCithdCBhbGwgZm9yIHRoaXMgcGFydGljdWxhciBydW4uICBFeHBlcmllbmNlIHNob3dzIHRoYXQncyB1bmxpa2VseQordG8gYmUgdGhlIGNhc2UsIGJ1dCBpdCBjb3VsZCBoYXBwZW4uPC9wPgorPC9kaXY+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QxIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+Cis8YSBuYW1lPSJkaC1tYW51YWwub3B0aW9ucyI+PC9hPjEwLjMuoERIQVQgQ29tbWFuZC1saW5lIE9wdGlvbnM8L2gyPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+REhBVC1zcGVjaWZpYyBjb21tYW5kLWxpbmUgb3B0aW9ucyBhcmU6PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij4KKzxhIG5hbWU9ImRoLm9wdHMubGlzdCI+PC9hPjxkbCBjbGFzcz0idmFyaWFibGVsaXN0Ij4KKzxkdD4KKzxhIG5hbWU9Im9wdC5zaG93LXRvcC1uIj48L2E+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1zaG93LXRvcC1uPSZsdDtudW1iZXImZ3Q7CisgICAgICBbZGVmYXVsdDogMTBdIDwvY29kZT4KKyAgICA8L3NwYW4+Cis8L2R0PgorPGRkPjxwPkF0IHRoZSBlbmQgb2YgdGhlIHJ1biwgREhBVCBzb3J0cyB0aGUgYWNjdW11bGF0ZWQKKyAgICAgICBhbGxvY2F0aW9uIHBvaW50cyBhY2NvcmRpbmcgdG8gc29tZSBtZXRyaWMsIGFuZCBzaG93cyB0aGUKKyAgICAgICBoaWdoZXN0IHNjb3JpbmcgZW50cmllcy4gIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj4tLXNob3ctdG9wLW48L2NvZGU+CisgICAgICAgY29udHJvbHMgaG93IG1hbnkgZW50cmllcyBhcmUgc2hvd24uICBUaGUgZGVmYXVsdCBvZiAxMCBpcworICAgICAgIHF1aXRlIHNtYWxsLiAgRm9yIHJlYWxpc3RpYyBhcHBsaWNhdGlvbnMgeW91IHdpbGwgcHJvYmFibHkgbmVlZAorICAgICAgIHRvIHNldCBpdCBtdWNoIGhpZ2hlciwgYXQgbGVhc3Qgc2V2ZXJhbCBodW5kcmVkLjwvcD48L2RkPgorPGR0PgorPGEgbmFtZT0ib3B0LnNvcnQtYnkiPjwvYT48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXNvcnQtYnk9Jmx0O3N0cmluZyZndDsgW2RlZmF1bHQ6IG1heC1ieXRlcy1saXZlXSA8L2NvZGU+CisgICAgPC9zcGFuPgorPC9kdD4KKzxkZD4KKzxwPkF0IHRoZSBlbmQgb2YgdGhlIHJ1biwgREhBVCBzb3J0cyB0aGUgYWNjdW11bGF0ZWQKKyAgICAgICBhbGxvY2F0aW9uIHBvaW50cyBhY2NvcmRpbmcgdG8gc29tZSBtZXRyaWMsIGFuZCBzaG93cyB0aGUKKyAgICAgICBoaWdoZXN0IHNjb3JpbmcgZW50cmllcy4gIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj4tLXNvcnQtYnk8L2NvZGU+CisgICAgICAgc2VsZWN0cyB0aGUgbWV0cmljIHVzZWQgZm9yIHNvcnRpbmc6PC9wPgorPHA+PGNvZGUgY2xhc3M9InZhcm5hbWUiPm1heC1ieXRlcy1saXZlICAgPC9jb2RlPiAgbWF4aW11bSBsaXZlIGJ5dGVzIFtkZWZhdWx0XTwvcD4KKzxwPjxjb2RlIGNsYXNzPSJ2YXJuYW1lIj50b3QtYnl0ZXMtYWxsb2NkIDwvY29kZT4gIGJ5dGVzIGFsbG9jYXRlcyBpbiB0b3RhbCAodHVybm92ZXIpPC9wPgorPHA+PGNvZGUgY2xhc3M9InZhcm5hbWUiPm1heC1ibG9ja3MtbGl2ZSAgPC9jb2RlPiAgbWF4aW11bSBsaXZlIGJsb2NrczwvcD4KKzxwPjxjb2RlIGNsYXNzPSJ2YXJuYW1lIj50b3QtYmxvY2tzLWFsbG9jZCA8L2NvZGU+IGJsb2NrcyBhbGxvY2F0ZWQgaW4gdG90YWwgKHR1cm5vdmVyKTwvcD4KKzxwPlRoaXMgY29udHJvbHMgdGhlIG9yZGVyIGluIHdoaWNoIGFsbG9jYXRpb24gcG9pbnRzIGFyZQorICAgICAgIGRpc3BsYXllZC4gIFlvdSBjYW4gY2hvb3NlIHRvIGxvb2sgYXQgYWxsb2NhdGlvbiBwb2ludHMgd2l0aAorICAgICAgIHRoZSBoaWdoZXN0IG51bWJlciBvZiBsaXZlIGJ5dGVzLCBvciB0aGUgaGlnaGVzdCB0b3RhbCBieXRlIHR1cm5vdmVyLCBvcgorICAgICAgIGJ5IHRoZSBoaWdoZXN0IG51bWJlciBvZiBsaXZlIGJsb2Nrcywgb3IgdGhlIGhpZ2hlc3QgdG90YWwgYmxvY2sKKyAgICAgICB0dXJub3Zlci4gIFRoZXNlIGdpdmUgdXNlZnVsbHkgZGlmZmVyZW50IHBpY3R1cmVzIG9mIHByb2dyYW0gYmVoYXZpb3VyLgorICAgICAgIEZvciBleGFtcGxlLCBzb3J0aW5nIGJ5IG1heGltdW0gbGl2ZSBibG9ja3MgdGVuZHMgdG8gc2hvdyB1cCBhbGxvY2F0aW9uCisgICAgICAgcG9pbnRzIGNyZWF0aW5nIGxhcmdlIG51bWJlcnMgb2Ygc21hbGwgb2JqZWN0cy48L3A+Cis8L2RkPgorPC9kbD4KKzwvZGl2PgorPHA+T25lIGltcG9ydGFudCBwb2ludCB0byBub3RlIGlzIHRoYXQgZWFjaCBhbGxvY2F0aW9uIHN0YWNrIGNvdW50cworYXMgYSBzZXBlcmF0ZSBhbGxvY2F0aW9uIHBvaW50LiAgQmVjYXVzZSBzdGFja3MgYnkgZGVmYXVsdCBoYXZlIDEyCitmcmFtZXMsIHRoaXMgdGVuZHMgdG8gc3ByZWFkIGRhdGEgb3V0IG92ZXIgbXVsdGlwbGUgYWxsb2NhdGlvbiBwb2ludHMuCitZb3UgbWF5IHdhbnQgdG8gdXNlIHRoZSBmbGFnIC0tbnVtLWNhbGxlcnM9NCBvciBzb21lIHN1Y2ggc21hbGwKK251bWJlciwgdG8gcmVkdWNlIHRoZSBzcHJlYWRpbmcuPC9wPgorPC9kaXY+Cis8L2Rpdj4KKzxkaXY+Cis8YnI+PHRhYmxlIGNsYXNzPSJuYXYiIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0iMyIgY2VsbHBhZGRpbmc9IjIiIGJvcmRlcj0iMCIgc3VtbWFyeT0iTmF2aWdhdGlvbiBmb290ZXIiPgorPHRyPgorPHRkIHJvd3NwYW49IjIiIHdpZHRoPSI0MCUiIGFsaWduPSJsZWZ0Ij4KKzxhIGFjY2Vzc2tleT0icCIgaHJlZj0ibXMtbWFudWFsLmh0bWwiPiZsdDsmbHQ7oDkuoE1hc3NpZjogYSBoZWFwIHByb2ZpbGVyPC9hPqA8L3RkPgorPHRkIHdpZHRoPSIyMCUiIGFsaWduPSJjZW50ZXIiPjxhIGFjY2Vzc2tleT0idSIgaHJlZj0ibWFudWFsLmh0bWwiPlVwPC9hPjwvdGQ+Cis8dGQgcm93c3Bhbj0iMiIgd2lkdGg9IjQwJSIgYWxpZ249InJpZ2h0Ij6gPGEgYWNjZXNza2V5PSJuIiBocmVmPSJzZy1tYW51YWwuaHRtbCI+MTEuoFNHQ2hlY2s6IGFuIGV4cGVyaW1lbnRhbCBzdGFjayBhbmQgZ2xvYmFsIGFycmF5IG92ZXJydW4gZGV0ZWN0b3KgJmd0OyZndDs8L2E+Cis8L3RkPgorPC90cj4KKzx0cj48dGQgd2lkdGg9IjIwJSIgYWxpZ249ImNlbnRlciI+PGEgYWNjZXNza2V5PSJoIiBocmVmPSJpbmRleC5odG1sIj5Ib21lPC9hPjwvdGQ+PC90cj4KKzwvdGFibGU+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL2RvY3MvaHRtbC9kaXN0LmF1dGhvcnMuaHRtbCBiL2RvY3MvaHRtbC9kaXN0LmF1dGhvcnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNjk0OTRlCi0tLSAvZGV2L251bGwKKysrIGIvZG9jcy9odG1sL2Rpc3QuYXV0aG9ycy5odG1sCkBAIC0wLDAgKzEsMTMwIEBACis8aHRtbD4KKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSI+Cis8dGl0bGU+MS6gQVVUSE9SUzwvdGl0bGU+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJ2Z19iYXNpYy5jc3MiPgorPG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJEb2NCb29rIFhTTCBTdHlsZXNoZWV0cyBWMS43OC4xIj4KKzxsaW5rIHJlbD0iaG9tZSIgaHJlZj0iaW5kZXguaHRtbCIgdGl0bGU9IlZhbGdyaW5kIERvY3VtZW50YXRpb24iPgorPGxpbmsgcmVsPSJ1cCIgaHJlZj0iZGlzdC5odG1sIiB0aXRsZT0iVmFsZ3JpbmQgRGlzdHJpYnV0aW9uIERvY3VtZW50cyI+Cis8bGluayByZWw9InByZXYiIGhyZWY9ImRpc3QuaHRtbCIgdGl0bGU9IlZhbGdyaW5kIERpc3RyaWJ1dGlvbiBEb2N1bWVudHMiPgorPGxpbmsgcmVsPSJuZXh0IiBocmVmPSJkaXN0Lm5ld3MuaHRtbCIgdGl0bGU9IjIuoE5FV1MiPgorPC9oZWFkPgorPGJvZHkgYmdjb2xvcj0id2hpdGUiIHRleHQ9ImJsYWNrIiBsaW5rPSIjMDAwMEZGIiB2bGluaz0iIzg0MDA4NCIgYWxpbms9IiMwMDAwRkYiPgorPGRpdj48dGFibGUgY2xhc3M9Im5hdiIgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSIzIiBjZWxscGFkZGluZz0iMyIgYm9yZGVyPSIwIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciI+PHRyPgorPHRkIHdpZHRoPSIyMnB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJwIiBocmVmPSJkaXN0Lmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvcHJldi5wbmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIyMSIgYm9yZGVyPSIwIiBhbHQ9IlByZXYiPjwvYT48L3RkPgorPHRkIHdpZHRoPSIyNXB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJkaXN0Lmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvdXAucG5nIiB3aWR0aD0iMjEiIGhlaWdodD0iMTgiIGJvcmRlcj0iMCIgYWx0PSJVcCI+PC9hPjwvdGQ+Cis8dGQgd2lkdGg9IjMxcHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvaG9tZS5wbmciIHdpZHRoPSIyNyIgaGVpZ2h0PSIyMCIgYm9yZGVyPSIwIiBhbHQ9IlVwIj48L2E+PC90ZD4KKzx0aCBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+VmFsZ3JpbmQgRGlzdHJpYnV0aW9uIERvY3VtZW50czwvdGg+Cis8dGQgd2lkdGg9IjIycHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImRpc3QubmV3cy5odG1sIj48aW1nIHNyYz0iaW1hZ2VzL25leHQucG5nIiB3aWR0aD0iMTgiIGhlaWdodD0iMjEiIGJvcmRlcj0iMCIgYWx0PSJOZXh0Ij48L2E+PC90ZD4KKzwvdHI+PC90YWJsZT48L2Rpdj4KKzxkaXYgY2xhc3M9ImNoYXB0ZXIiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgxIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJkaXN0LmF1dGhvcnMiPjwvYT4xLqBBVVRIT1JTPC9oMT48L2Rpdj48L2Rpdj48L2Rpdj4KKzxkaXYgY2xhc3M9ImxpdGVyYWxsYXlvdXQiPjxwPjxicj4KK6CgoKCgoKCgPGJyPgorSnVsaWFuoFNld2FyZKB3YXOgdGhloG9yaWdpbmFsoGZvdW5kZXIsoGRlc2lnbmVyoGFuZKBhdXRob3Kgb2Y8YnI+CitWYWxncmluZCygY3JlYXRlZKB0aGWgZHluYW1pY6B0cmFuc2xhdGlvbqBmcmFtZXdvcmtzLKB3cm90ZaBNZW1jaGVjayw8YnI+Cit0aGWgMy5YoHZlcnNpb25zoG9moEhlbGdyaW5kLKBTR0NoZWNrLKBESEFULKBhbmSgZGlkoGxvdHOgb2agb3RoZXI8YnI+Cit0aGluZ3MuPGJyPgorPGJyPgorTmljaG9sYXOgTmV0aGVyY290ZaBkaWSgdGhloGNvcmUvdG9vbKBnZW5lcmFsaXNhdGlvbiygd3JvdGU8YnI+CitDYWNoZWdyaW5koGFuZKBNYXNzaWYsoGFuZKB0b25zoG9moG90aGVyoHN0dWZmLjxicj4KKzxicj4KK1RvbaBIdWdoZXOgZGlkoGGgdmFzdKBudW1iZXKgb2agYnVnoGZpeGVzLKBoZWxwZWSgb3V0oHdpdGigc3VwcG9ydKBmb3I8YnI+Cittb3JloHJlY2VudKBMaW51eC9nbGliY6B2ZXJzaW9ucyygc2V0oHVwoHRoZaBwcmVzZW50oGJ1aWxkoHN5c3RlbSygYW5koGhhczxicj4KK2hlbHBlZKBvdXSgd2l0aKB0ZXN0oGFuZKBidWlsZKBtYWNoaW5lcy48YnI+Cis8YnI+CitKZXJlbXmgRml0emhhcmRpbmdloHdyb3RloEhlbGdyaW5koChpbqB0aGWgMi5YoGxpbmUpoGFuZKB0b3RhbGx5PGJyPgorb3ZlcmhhdWxlZKBsb3ctbGV2ZWygc3lzY2FsbC9zaWduYWygYW5koGFkZHJlc3Ogc3BhY2WgbGF5b3V0oHN0dWZmLDxicj4KK2Ftb25noG1hbnmgb3RoZXKgdGhpbmdzLjxicj4KKzxicj4KK0pvc2VmoFdlaWRlbmRvcmZlcqB3cm90ZaBhbmSgbWFpbnRhaW5zoENhbGxncmluZKBhbmSgdGhloGFzc29jaWF0ZWQ8YnI+CitLQ2FjaGVncmluZKBHVUkuPGJyPgorPGJyPgorUGF1bKBNYWNrZXJyYXOgZGlkoGGgbG90oG9moHRoZaBpbml0aWFsoHBlci1hcmNoaXRlY3R1cmWgZmFjdG9yaW5nPGJyPgordGhhdKBmb3Jtc6B0aGWgYmFzaXOgb2agdGhloDMuMKBsaW5loGFuZKB3YXOgYWxzb6BzZWVuoGluoDIuNC4wLjxicj4KK0hloGFsc2+gZGlkoFVDb2RlLWJhc2VkoGR5bmFtaWOgdHJhbnNsYXRpb26gc3VwcG9ydKBmb3KgUG93ZXJQQyygYW5kPGJyPgorY3JlYXRlZKBhoHNldKBvZqBwcGMtbGludXigZGVyaXZhdGl2ZXOgb2agdGhloDIuWKByZWxlYXNloGxpbmUuPGJyPgorPGJyPgorR3JlZ6BQYXJrZXKgd3JvdGWgdGhloE1hY6BPU6BYoHBvcnQuPGJyPgorPGJyPgorRGlya6BNdWVsbGVyoGNvbnRyaWJ1dGVkoHRoZaBtYWxsb2MvZnJlZaBtaXNtYXRjaKBjaGVja2luZzxicj4KK2FuZKBvdGhlcqBiaXRzoGFuZKBwaWVjZXMsoGFuZKBhY3RzoGFzoG91cqBLREWgbGlhaXNvbi48YnI+Cis8YnI+CitSb2JlcnSgV2Fsc2igYWRkZWSgZmlsZaBkZXNjcmlwdG9yoGxlYWthZ2WgY2hlY2tpbmcsoG5ld6BsaWJyYXJ5PGJyPgoraW50ZXJjZXB0aW9uoG1hY2hpbmVyeSygc3VwcG9ydKBmb3KgY2xpZW50oGFsbG9jYXRpb26gcG9vbHMsoGFuZKBtaW5vcjxicj4KK290aGVyoHR3ZWFrYWdlLjxicj4KKzxicj4KK0JhcnSgVmFuoEFzc2NoZaB3cm90ZaBhbmSgbWFpbnRhaW5zoERSRC48YnI+Cis8YnI+CitDZXJpb26gQXJtb3VyLUJyb3duoHdvcmtlZKBvbqBQb3dlclBDoGluc3RydWN0aW9uoHNldKBzdXBwb3J0oGluoHRoZTxicj4KK1ZleKBkeW5hbWljLXRyYW5zbGF0aW9uoGZyYW1ld29yay6goE1heW5hcmSgSm9obnNvbqBpbXByb3ZlZKB0aGU8YnI+CitQb3dlcjagc3VwcG9ydC48YnI+Cis8YnI+CitLaXJpbGygQmF0dXpvdqBhbmSgRG1pdHJ5oFpodXJpa2hpbqBkaWSgdGhloE5FT06gaW5zdHJ1Y3Rpb26gc2V0PGJyPgorc3VwcG9ydKBmb3KgQVJNLqCgRG9ubmGgUm9iaW5zb26gZGlkoHRoZaB2NqBtZWRpYaBpbnN0cnVjdGlvbqBzdXBwb3J0Ljxicj4KKzxicj4KK0Rvbm5hoFJvYmluc29uoGNyZWF0ZWSgYW5koG1haW50YWluc6B0aGWgdmVyeaBleGNlbGxlbnQ8YnI+CitodHRwOi8vd3d3LnZhbGdyaW5kLm9yZy48YnI+Cis8YnI+CitWaW5jZaBXZWF2ZXKgd3JvdGWgYW5koG1haW50YWluc6BCQlYuPGJyPgorPGJyPgorRnJlZGVyaWOgR29icnmgaGVscGVkoHdpdGigYXV0b2NvbmagYW5koGF1dG9tYWtlLjxicj4KKzxicj4KK0RhbmllbKBCZXJsaW6gbW9kaWZpZWSgcmVhZGVsZidzoGR3YXJmMqBzb3VyY2WgbGluZaByZWFkZXIsoHdyaXR0ZW6gYnmgTmljazxicj4KK0NsaWZ0b24soGZvcqB1c2WgaW6gVmFsZ3JpbmQubzxicj4KKzxicj4KK01pY2hhZWygTWF0eqBhbmSgU2ltb26gSGF1c21hbm6gbW9kaWZpZWSgdGhloEdOVaBiaW51dGlsc6BkZW1hbmdsZXIocymgZm9yPGJyPgordXNloGluoFZhbGdyaW5kLjxicj4KKzxicj4KK0RhdmlkoFdvb2Rob3VzZaBoYXOgaGVscGVkoG91dKB3aXRooHRlc3SgYW5koGJ1aWxkoG1hY2hpbmVzoG92ZXKgdGhloGNvdXJzZTxicj4KK29moG1hbnmgcmVsZWFzZXMuPGJyPgorPGJyPgorRmxvcmlhbqBLcm9obaBhbmSgQ2hyaXN0aWFuoEJvcm50cmFlZ2VyoHdyb3RloGFuZKBtYWludGFpbqB0aGU8YnI+CitTMzkwWC9MaW51eKBwb3J0LqCgRmxvcmlhbqBpbXByb3ZlZKBhbmSgcnVnZ2VkaXNlZKB0aGWgcmVncmVzc2lvbqB0ZXN0PGJyPgorc3lzdGVtoGR1cmluZ6AyMDExLjxicj4KKzxicj4KK1BoaWxpcHBloFdhcm9xdWllcnOgd3JvdGWgYW5koG1haW50YWluc6B0aGWgZW1iZWRkZWSgR0RCoHNlcnZlci6goEhlPGJyPgorYWxzb6BtYWRloGGgYnVuY2igb2agcGVyZm9ybWFuY2WgYW5koG1lbW9yeS1yZWR1Y3Rpb26gZml4ZXOgYWNyb3NzPGJyPgorZGl2ZXJzZaBwYXJ0c6BvZqB0aGWgc3lzdGVtLjxicj4KKzxicj4KK0NhcmygTG92ZaBhbmSgTWF5bmFyZKBKb2huc29uoGNvbnRyaWJ1dGVkoElCTaBQb3dlcjagYW5koFBvd2VyNzxicj4KK3N1cHBvcnQsoGFuZKBnZW5lcmFsbHmgZGVhbKB3aXRooHBwY3szMiw2NH0tbGludXigaXNzdWVzLjxicj4KKzxicj4KK1BldGFyoEpvdmFub3ZpY6BhbmSgRGVqYW6gSmV2dGljoHdyb3RloGFuZKBtYWludGFpbqB0aGWgbWlwczMyLWxpbnV4PGJyPgorcG9ydC48YnI+Cis8YnI+CitEcmFnb3OgVGF0dWxlYaBtb2RpZmllZKB0aGWgYXJtLWFuZHJvaWSgcG9ydKBzb6BpdKBhbHNvoHdvcmtzoG9uPGJyPgoreDg2LWFuZHJvaWQuPGJyPgorPGJyPgorSmFrdWKgSmVsaW5la6BoZWxwZWSgb3V0oGV4dGVuc2l2ZWx5oHdpdGigdGhloEFWWKBhbmSgQVZYMqBzdXBwb3J0Ljxicj4KKzxicj4KK01hcmugV2llbGFhcmSgZml4ZWSgYaBidW5jaKBvZqBidWdzoGFuZKBhY3RzoGFzoG91cqBGZWRvcmEvUkhFTDxicj4KK2xpYWlzb24uPGJyPgorPGJyPgorTWFyYW6gUGFra2lyaXNhbXmgaW1wbGVtZW50ZWSgc3VwcG9ydKBmb3KgZGVjaW1hbKBmbG9hdGluZ6Bwb2ludKBvbjxicj4KK3MzOTAuPGJyPgorPGJyPgorTWFueSygbWFueaBwZW9wbGWgc2VudKBidWegcmVwb3J0cyygcGF0Y2hlcyygYW5koGhlbHBmdWygZmVlZGJhY2suPGJyPgorPGJyPgorRGV2ZWxvcG1lbnSgb2agVmFsZ3JpbmSgd2FzoHN1cHBvcnRlZKBpbqBwYXJ0oGJ5oHRoZaBUcmktTGFioFBhcnRuZXJzPGJyPgorKExhd3JlbmNloExpdmVybW9yZaBOYXRpb25hbKBMYWJvcmF0b3J5LKBMb3OgQWxhbW9zoE5hdGlvbmFsPGJyPgorTGFib3JhdG9yeSygYW5koFNhbmRpYaBOYXRpb25hbKBMYWJvcmF0b3JpZXMpoG9moHRoZaBVLlMuoERlcGFydG1lbnQ8YnI+CitvZqBFbmVyZ3knc6BBZHZhbmNlZKBTaW11bGF0aW9uoCZhbXA7oENvbXB1dGluZ6AoQVNDKaBQcm9ncmFtLjxicj4KKzxicj4KK6CgoKA8L3A+PC9kaXY+Cis8L2Rpdj4KKzxkaXY+Cis8YnI+PHRhYmxlIGNsYXNzPSJuYXYiIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0iMyIgY2VsbHBhZGRpbmc9IjIiIGJvcmRlcj0iMCIgc3VtbWFyeT0iTmF2aWdhdGlvbiBmb290ZXIiPgorPHRyPgorPHRkIHJvd3NwYW49IjIiIHdpZHRoPSI0MCUiIGFsaWduPSJsZWZ0Ij4KKzxhIGFjY2Vzc2tleT0icCIgaHJlZj0iZGlzdC5odG1sIj4mbHQ7Jmx0O6BWYWxncmluZCBEaXN0cmlidXRpb24gRG9jdW1lbnRzPC9hPqA8L3RkPgorPHRkIHdpZHRoPSIyMCUiIGFsaWduPSJjZW50ZXIiPjxhIGFjY2Vzc2tleT0idSIgaHJlZj0iZGlzdC5odG1sIj5VcDwvYT48L3RkPgorPHRkIHJvd3NwYW49IjIiIHdpZHRoPSI0MCUiIGFsaWduPSJyaWdodCI+oDxhIGFjY2Vzc2tleT0ibiIgaHJlZj0iZGlzdC5uZXdzLmh0bWwiPjIuoE5FV1OgJmd0OyZndDs8L2E+Cis8L3RkPgorPC90cj4KKzx0cj48dGQgd2lkdGg9IjIwJSIgYWxpZ249ImNlbnRlciI+PGEgYWNjZXNza2V5PSJoIiBocmVmPSJpbmRleC5odG1sIj5Ib21lPC9hPjwvdGQ+PC90cj4KKzwvdGFibGU+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL2RvY3MvaHRtbC9kaXN0Lmh0bWwgYi9kb2NzL2h0bWwvZGlzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI1MDA4N2IKLS0tIC9kZXYvbnVsbAorKysgYi9kb2NzL2h0bWwvZGlzdC5odG1sCkBAIC0wLDAgKzEsNjQgQEAKKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj4KKzx0aXRsZT5WYWxncmluZCBEaXN0cmlidXRpb24gRG9jdW1lbnRzPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9InZnX2Jhc2ljLmNzcyI+Cis8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkRvY0Jvb2sgWFNMIFN0eWxlc2hlZXRzIFYxLjc4LjEiPgorPGxpbmsgcmVsPSJob21lIiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0iVmFsZ3JpbmQgRG9jdW1lbnRhdGlvbiI+Cis8bGluayByZWw9InVwIiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0iVmFsZ3JpbmQgRG9jdW1lbnRhdGlvbiI+Cis8bGluayByZWw9InByZXYiIGhyZWY9ImNsLWZvcm1hdC5odG1sIiB0aXRsZT0iMy6gQ2FsbGdyaW5kIEZvcm1hdCBTcGVjaWZpY2F0aW9uIj4KKzxsaW5rIHJlbD0ibmV4dCIgaHJlZj0iZGlzdC5hdXRob3JzLmh0bWwiIHRpdGxlPSIxLqBBVVRIT1JTIj4KKzwvaGVhZD4KKzxib2R5IGJnY29sb3I9IndoaXRlIiB0ZXh0PSJibGFjayIgbGluaz0iIzAwMDBGRiIgdmxpbms9IiM4NDAwODQiIGFsaW5rPSIjMDAwMEZGIj4KKzxkaXY+PHRhYmxlIGNsYXNzPSJuYXYiIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0iMyIgY2VsbHBhZGRpbmc9IjMiIGJvcmRlcj0iMCIgc3VtbWFyeT0iTmF2aWdhdGlvbiBoZWFkZXIiPjx0cj4KKzx0ZCB3aWR0aD0iMjJweCIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPjxhIGFjY2Vzc2tleT0icCIgaHJlZj0iY2wtZm9ybWF0Lmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvcHJldi5wbmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIyMSIgYm9yZGVyPSIwIiBhbHQ9IlByZXYiPjwvYT48L3RkPgorPHRkIHdpZHRoPSIyNXB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJpbmRleC5odG1sIj48aW1nIHNyYz0iaW1hZ2VzL3VwLnBuZyIgd2lkdGg9IjIxIiBoZWlnaHQ9IjE4IiBib3JkZXI9IjAiIGFsdD0iVXAiPjwvYT48L3RkPgorPHRkIHdpZHRoPSIzMXB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJoIiBocmVmPSJpbmRleC5odG1sIj48aW1nIHNyYz0iaW1hZ2VzL2hvbWUucG5nIiB3aWR0aD0iMjciIGhlaWdodD0iMjAiIGJvcmRlcj0iMCIgYWx0PSJVcCI+PC9hPjwvdGQ+Cis8dGggYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPlZhbGdyaW5kIERvY3VtZW50YXRpb248L3RoPgorPHRkIHdpZHRoPSIyMnB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJuIiBocmVmPSJkaXN0LmF1dGhvcnMuaHRtbCI+PGltZyBzcmM9ImltYWdlcy9uZXh0LnBuZyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjIxIiBib3JkZXI9IjAiIGFsdD0iTmV4dCI+PC9hPjwvdGQ+Cis8L3RyPjwvdGFibGU+PC9kaXY+Cis8ZGl2IGNsYXNzPSJib29rIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+Cis8ZGl2PgorPGRpdj48aDEgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9ImRpc3QiPjwvYT5WYWxncmluZCBEaXN0cmlidXRpb24gRG9jdW1lbnRzPC9oMT48L2Rpdj4KKzxkaXY+PHAgY2xhc3M9InJlbGVhc2VpbmZvIj5SZWxlYXNlIDMuMTIuMCAyMCBPY3RvYmVyIDIwMTY8L3A+PC9kaXY+Cis8ZGl2PjxwIGNsYXNzPSJjb3B5cmlnaHQiPkNvcHlyaWdodCCpIDIwMDAtMjAxNiA8YSBjbGFzcz0idWxpbmsiIGhyZWY9Imh0dHA6Ly93d3cudmFsZ3JpbmQub3JnL2luZm8vZGV2ZWxvcGVycy5odG1sIiB0YXJnZXQ9Il90b3AiPlZhbGdyaW5kIERldmVsb3BlcnM8L2E+PC9wPjwvZGl2PgorPGRpdj48ZGl2IGNsYXNzPSJsZWdhbG5vdGljZSI+Cis8YSBuYW1lPSJpZG0xNDA2MzkxMTY1ODEyODAiPjwvYT48cD5FbWFpbDogPGEgY2xhc3M9InVsaW5rIiBocmVmPSJtYWlsdG86dmFsZ3JpbmRAdmFsZ3JpbmQub3JnIiB0YXJnZXQ9Il90b3AiPnZhbGdyaW5kQHZhbGdyaW5kLm9yZzwvYT48L3A+Cis8L2Rpdj48L2Rpdj4KKzwvZGl2PgorPGhyPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJ0b2MiPgorPHA+PGI+VGFibGUgb2YgQ29udGVudHM8L2I+PC9wPgorPGRsIGNsYXNzPSJ0b2MiPgorPGR0PjxzcGFuIGNsYXNzPSJjaGFwdGVyIj48YSBocmVmPSJkaXN0LmF1dGhvcnMuaHRtbCI+MS4gQVVUSE9SUzwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0iY2hhcHRlciI+PGEgaHJlZj0iZGlzdC5uZXdzLmh0bWwiPjIuIE5FV1M8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9ImNoYXB0ZXIiPjxhIGhyZWY9ImRpc3QubmV3cy5vbGQuaHRtbCI+My4gT0xERVIgTkVXUzwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0iY2hhcHRlciI+PGEgaHJlZj0iZGlzdC5yZWFkbWUuaHRtbCI+NC4gUkVBRE1FPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJjaGFwdGVyIj48YSBocmVmPSJkaXN0LnJlYWRtZS1taXNzaW5nLmh0bWwiPjUuIFJFQURNRV9NSVNTSU5HX1NZU0NBTExfT1JfSU9DVEw8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9ImNoYXB0ZXIiPjxhIGhyZWY9ImRpc3QucmVhZG1lLWRldmVsb3BlcnMuaHRtbCI+Ni4gUkVBRE1FX0RFVkVMT1BFUlM8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9ImNoYXB0ZXIiPjxhIGhyZWY9ImRpc3QucmVhZG1lLXBhY2thZ2Vycy5odG1sIj43LiBSRUFETUVfUEFDS0FHRVJTPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJjaGFwdGVyIj48YSBocmVmPSJkaXN0LnJlYWRtZS1zMzkwLmh0bWwiPjguIFJFQURNRS5TMzkwPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJjaGFwdGVyIj48YSBocmVmPSJkaXN0LnJlYWRtZS1hbmRyb2lkLmh0bWwiPjkuIFJFQURNRS5hbmRyb2lkPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJjaGFwdGVyIj48YSBocmVmPSJkaXN0LnJlYWRtZS1hbmRyb2lkX2VtdWxhdG9yLmh0bWwiPjEwLiBSRUFETUUuYW5kcm9pZF9lbXVsYXRvcjwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0iY2hhcHRlciI+PGEgaHJlZj0iZGlzdC5yZWFkbWUtbWlwcy5odG1sIj4xMS4gUkVBRE1FLm1pcHM8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9ImNoYXB0ZXIiPjxhIGhyZWY9ImRpc3QucmVhZG1lLXNvbGFyaXMuaHRtbCI+MTIuIFJFQURNRS5zb2xhcmlzPC9hPjwvc3Bhbj48L2R0PgorPC9kbD4KKzwvZGl2PgorPC9kaXY+Cis8ZGl2PgorPGJyPjx0YWJsZSBjbGFzcz0ibmF2IiB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjMiIGNlbGxwYWRkaW5nPSIyIiBib3JkZXI9IjAiIHN1bW1hcnk9Ik5hdmlnYXRpb24gZm9vdGVyIj4KKzx0cj4KKzx0ZCByb3dzcGFuPSIyIiB3aWR0aD0iNDAlIiBhbGlnbj0ibGVmdCI+Cis8YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImNsLWZvcm1hdC5odG1sIj4mbHQ7Jmx0O6AzLqBDYWxsZ3JpbmQgRm9ybWF0IFNwZWNpZmljYXRpb248L2E+oDwvdGQ+Cis8dGQgd2lkdGg9IjIwJSIgYWxpZ249ImNlbnRlciI+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJpbmRleC5odG1sIj5VcDwvYT48L3RkPgorPHRkIHJvd3NwYW49IjIiIHdpZHRoPSI0MCUiIGFsaWduPSJyaWdodCI+oDxhIGFjY2Vzc2tleT0ibiIgaHJlZj0iZGlzdC5hdXRob3JzLmh0bWwiPjEuoEFVVEhPUlOgJmd0OyZndDs8L2E+Cis8L3RkPgorPC90cj4KKzx0cj48dGQgd2lkdGg9IjIwJSIgYWxpZ249ImNlbnRlciI+PGEgYWNjZXNza2V5PSJoIiBocmVmPSJpbmRleC5odG1sIj5Ib21lPC9hPjwvdGQ+PC90cj4KKzwvdGFibGU+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL2RvY3MvaHRtbC9kaXN0Lm5ld3MuaHRtbCBiL2RvY3MvaHRtbC9kaXN0Lm5ld3MuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYjkxYmY4Ci0tLSAvZGV2L251bGwKKysrIGIvZG9jcy9odG1sL2Rpc3QubmV3cy5odG1sCkBAIC0wLDAgKzEsMzMzMyBAQAorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiPgorPHRpdGxlPjIuoE5FV1M8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0idmdfYmFzaWMuY3NzIj4KKzxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iRG9jQm9vayBYU0wgU3R5bGVzaGVldHMgVjEuNzguMSI+Cis8bGluayByZWw9ImhvbWUiIGhyZWY9ImluZGV4Lmh0bWwiIHRpdGxlPSJWYWxncmluZCBEb2N1bWVudGF0aW9uIj4KKzxsaW5rIHJlbD0idXAiIGhyZWY9ImRpc3QuaHRtbCIgdGl0bGU9IlZhbGdyaW5kIERpc3RyaWJ1dGlvbiBEb2N1bWVudHMiPgorPGxpbmsgcmVsPSJwcmV2IiBocmVmPSJkaXN0LmF1dGhvcnMuaHRtbCIgdGl0bGU9IjEuoEFVVEhPUlMiPgorPGxpbmsgcmVsPSJuZXh0IiBocmVmPSJkaXN0Lm5ld3Mub2xkLmh0bWwiIHRpdGxlPSIzLqBPTERFUiBORVdTIj4KKzwvaGVhZD4KKzxib2R5IGJnY29sb3I9IndoaXRlIiB0ZXh0PSJibGFjayIgbGluaz0iIzAwMDBGRiIgdmxpbms9IiM4NDAwODQiIGFsaW5rPSIjMDAwMEZGIj4KKzxkaXY+PHRhYmxlIGNsYXNzPSJuYXYiIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0iMyIgY2VsbHBhZGRpbmc9IjMiIGJvcmRlcj0iMCIgc3VtbWFyeT0iTmF2aWdhdGlvbiBoZWFkZXIiPjx0cj4KKzx0ZCB3aWR0aD0iMjJweCIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPjxhIGFjY2Vzc2tleT0icCIgaHJlZj0iZGlzdC5hdXRob3JzLmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvcHJldi5wbmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIyMSIgYm9yZGVyPSIwIiBhbHQ9IlByZXYiPjwvYT48L3RkPgorPHRkIHdpZHRoPSIyNXB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJkaXN0Lmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvdXAucG5nIiB3aWR0aD0iMjEiIGhlaWdodD0iMTgiIGJvcmRlcj0iMCIgYWx0PSJVcCI+PC9hPjwvdGQ+Cis8dGQgd2lkdGg9IjMxcHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvaG9tZS5wbmciIHdpZHRoPSIyNyIgaGVpZ2h0PSIyMCIgYm9yZGVyPSIwIiBhbHQ9IlVwIj48L2E+PC90ZD4KKzx0aCBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+VmFsZ3JpbmQgRGlzdHJpYnV0aW9uIERvY3VtZW50czwvdGg+Cis8dGQgd2lkdGg9IjIycHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImRpc3QubmV3cy5vbGQuaHRtbCI+PGltZyBzcmM9ImltYWdlcy9uZXh0LnBuZyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjIxIiBib3JkZXI9IjAiIGFsdD0iTmV4dCI+PC9hPjwvdGQ+Cis8L3RyPjwvdGFibGU+PC9kaXY+Cis8ZGl2IGNsYXNzPSJjaGFwdGVyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMSBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0iZGlzdC5uZXdzIj48L2E+Mi6gTkVXUzwvaDE+PC9kaXY+PC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJsaXRlcmFsbGF5b3V0Ij48cD48YnI+CiugoKCgoKA8YnI+CitSZWxlYXNloDMuMTIuMKAoMjCgT2N0b2JlcqAyMDE2KTxicj4KK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+PGJyPgorPGJyPgorMy4xMi4woGlzoGGgZmVhdHVyZaByZWxlYXNloHdpdGigbWFueaBpbXByb3ZlbWVudHOgYW5koHRoZaB1c3VhbDxicj4KK2NvbGxlY3Rpb26gb2agYnVnoGZpeGVzLjxicj4KKzxicj4KK1RoaXOgcmVsZWFzZaBzdXBwb3J0c6BYODYvTGludXgsoEFNRDY0L0xpbnV4LKBBUk0zMi9MaW51eCw8YnI+CitBUk02NC9MaW51eCygUFBDMzIvTGludXgsoFBQQzY0QkUvTGludXgsoFBQQzY0TEUvTGludXgsoFMzOTBYL0xpbnV4LDxicj4KK01JUFMzMi9MaW51eCygTUlQUzY0L0xpbnV4LKBBUk0vQW5kcm9pZCygQVJNNjQvQW5kcm9pZCw8YnI+CitNSVBTMzIvQW5kcm9pZCygWDg2L0FuZHJvaWQsoFg4Ni9Tb2xhcmlzLKBBTUQ2NC9Tb2xhcmlzLKBYODYvTWFjT1NYPGJyPgorMTAuMTCgYW5koEFNRDY0L01hY09TWKAxMC4xMC6goFRoZXJloGlzoGFsc2+gcHJlbGltaW5hcnmgc3VwcG9ydKBmb3I8YnI+CitYODYvTWFjT1NYoDEwLjExLzEyLKBBTUQ2NC9NYWNPU1igMTAuMTEvMTKgYW5koFRJTEVHWC9MaW51eC48YnI+Cis8YnI+CisqoD09PT09PT09PT09PT09PT09PaBQTEFURk9STaBDSEFOR0VToD09PT09PT09PT09PT09PT09PGJyPgorPGJyPgorKqBQT1dFUjqgU3VwcG9ydKBmb3KgSVNBoDMuMKBoYXOgYmVlbqBhZGRlZDxicj4KKzxicj4KKyqgbWlwczqgc3VwcG9ydKBmb3KgTzMyoEZQWFigQUJJoGhhc6BiZWVuoGFkZGVkLjxicj4KKyqgbWlwczqgaW1wcm92ZWSgcmVjb2duaXRpb26gb2agZGlmZmVyZW50oHByb2Nlc3NvcnM8YnI+CisqoG1pcHM6oGRldGVybWluYXRpb26gb2agcGFnZaBzaXploG5vd6Bkb25loGF0oHJ1bqB0aW1lPGJyPgorPGJyPgorKqBhbWQ2NDqgUGFydGlhbKBzdXBwb3J0oGZvcqBBTUSgRk1BNKBpbnN0cnVjdGlvbnMuPGJyPgorPGJyPgorKqBhcm0soGFybTY0OqBTdXBwb3J0oGZvcqB2OKBjcnlwdG+gYW5koENSQ6BpbnN0cnVjdGlvbnMuPGJyPgorPGJyPgorKqBJbXByb3ZlbWVudHOgYW5koHJvYnVzdGlmaWNhdGlvbqBvZqB0aGWgU29sYXJpc6Bwb3J0Ljxicj4KKzxicj4KKyqgUHJlbGltaW5hcnmgc3VwcG9ydKBmb3KgTWFjT1OgMTAuMTKgKFNpZXJyYSmgaGFzoGJlZW6gYWRkZWQuPGJyPgorPGJyPgorV2hpbHN0oDMuMTIuMKBjb250aW51ZXOgdG+gc3VwcG9ydKB0aGWgMzItYml0oHg4NqBpbnN0cnVjdGlvbqBzZXQsoHdlPGJyPgord291bGSgcHJlZmVyoHVzZXJzoHRvoG1pZ3JhdGWgdG+gNjQtYml0oHg4NqAoYS5rLmGgYW1kNjSgb3KgeDg2XzY0KTxicj4KK3doZXJloHBvc3NpYmxlLqCgVmFsZ3JpbmQnc6BzdXBwb3J0oGZvcqAzMi1iaXSgeDg2oGhhc6BzdGFnbmF0ZWSgaW48YnI+CityZWNlbnSgeWVhcnOgYW5koGhhc6BmYWxsZW6gZmFyoGJlaGluZKB0aGF0oGZvcqA2NC1iaXSgeDg2PGJyPgoraW5zdHJ1Y3Rpb25zLqCgQnmgY29udHJhc3SgNjQtYml0oHg4NqBpc6B3ZWxsoHN1cHBvcnRlZCygdXCgdG+gYW5kPGJyPgoraW5jbHVkaW5noEFWWDIuPGJyPgorPGJyPgorKqA9PT09PT09PT09PT09PT09PT09PaBUT09MoENIQU5HRVOgPT09PT09PT09PT09PT09PT09PT08YnI+Cis8YnI+CisqoE1lbWNoZWNrOjxicj4KKzxicj4KK6CgLaBBZGRlZKBtZXRhoG1lbXBvb2ygc3VwcG9ydKBmb3KgZGVzY3JpYmluZ6BhoGN1c3RvbaBhbGxvY2F0b3Kgd2hpY2g6PGJyPgoroKCgoKAtoEF1dG8tZnJlZXOgYWxsoGNodW5rc6Bhc3N1bWluZ6B0aGF0oGRlc3Ryb3lpbmegYaBwb29soGRlc3Ryb3lzoGFsbDxicj4KK6CgoKCgoKBvYmplY3RzoGluoHRoZaBwb29sPGJyPgoroKCgoKAtoFVzZXOgaXRzZWxmoHRvoGFsbG9jYXRloG90aGVyoG1lbW9yeaBibG9ja3M8YnI+Cis8YnI+CiugoC2gTmV3oGZsYWegLS1pZ25vcmUtcmFuZ2UtYmVsb3ctc3CgdG+gaWdub3JloG1lbW9yeaBhY2Nlc3Nlc6BiZWxvdzxicj4KK6CgoKB0aGWgc3RhY2ugcG9pbnRlciygaWageW91oHJlYWxseaBoYXZloHRvLqCgVGhloHJlbGF0ZWSgZmxhZzxicj4KK6CgoKAtLXdvcmthcm91bmQtZ2NjMjk2LWJ1Z3M9eWVzoGlzoG5vd6BkZXByZWNhdGVkLqCgVXNlPGJyPgoroKCgoC0taWdub3JlLXJhbmdlLWJlbG93LXNwPTEwMjQtMaBhc6BhoHJlcGxhY2VtZW50Ljxicj4KKzxicj4KKyqgRFJEOjxicj4KKzxicj4KK6CgLaBJbXByb3ZlZKB0aHJlYWSgc3RhcnR1cKB0aW1loHNpZ25pZmljYW50bHmgb26gbm9uLUxpbnV4oHBsYXRmb3Jtcy48YnI+Cis8YnI+CisqoERIQVQ8YnI+Cis8YnI+CiugoC2gQWRkZWSgY29sbGVjdGlvbqBvZqB0aGWgbWV0cmljoCJ0b3QtYmxvY2tzLWFsbG9jZCI8YnI+Cis8YnI+CisqoD09PT09PT09PT09PT09PT09PT09oE9USEVSoENIQU5HRVOgPT09PT09PT09PT09PT09PT09PT08YnI+Cis8YnI+CisqoFJlcGxhY2VtZW50L3dyYXBwaW5noG9moG1hbGxvYy9uZXegcmVsYXRlZKBmdW5jdGlvbnOgaXOgbm93oGRvbmWgbm90oGp1c3Q8YnI+CiugoGZvcqBzeXN0ZW2gbGlicmFyaWVzoGJ5oGRlZmF1bHQsoGJ1dKBmb3KgYW55oGdsb2JhbGx5oGRlZmluZWSgbWFsbG9jL25ldzxicj4KK6CgcmVsYXRlZKBmdW5jdGlvbqAoYm90aKBpbqBzaGFyZWSgbGlicmFyaWVzoGFuZKBzdGF0aWNhbGx5oGxpbmtlZKBhbHRlcm5hdGl2ZTxicj4KK6CgbWFsbG9joGltcGxlbWVudGF0aW9ucykuoKBUaGWgZHluYW1pY6AocnVudGltZSmgbGlua2VyoGlzoGV4Y2x1ZGVkLKB0aG91Z2guPGJyPgoroKBUb6Bvbmx5oGludGVyY2VwdKBtYWxsb2MvbmV3oHJlbGF0ZWSgZnVuY3Rpb25zoGluPGJyPgoroKBzeXN0ZW2gbGlicmFyaWVzoHVzZaAtLXNvbmFtZS1zeW5vbnltcz1zb21hbGxvYz1ub3VzZXJpbnRlcmNlcHRzoCh3aGVyZTxicj4KK6CgIm5vdXNlcmludGVyY2VwdHMioGNhbqBiZaBhbnmgbm9uLWV4aXN0aW5noGxpYnJhcnmgbmFtZSkuPGJyPgoroKBUaGlzoG5ld6BmdW5jdGlvbmFsaXR5oGlzoG5vdKBpbXBsZW1lbnRlZKBmb3KgTWFjT1OgWC48YnI+Cis8YnI+CisqoFRoZaBtYXhpbXVtoG51bWJlcqBvZqBjYWxsZXJzoGluoGGgc3VwcHJlc3Npb26gZW50cnmgaXOgbm93oGVxdWFsoHRvPGJyPgoroKB0aGWgbWF4aW11baBzaXploGZvcqAtLW51bS1jYWxsZXJzoCg1MDApLjxicj4KK6CgTm90ZaB0aGF0oC0tZ2VuLXN1cHByZXNzaW9ucz15ZXN8YWxsoHNpbWlsYXJseaBnZW5lcmF0ZXOgc3VwcHJlc3Npb25zPGJyPgoroKBjb250YWluaW5noHVwoHRvoC0tbnVtLWNhbGxlcnOgZnJhbWVzLjxicj4KKzxicj4KKyqgTmV3oGFuZKBtb2RpZmllZKBHREKgc2VydmVyoG1vbml0b3KgZmVhdHVyZXM6PGJyPgorPGJyPgoroKAtoFZhbGdyaW5kJ3OgZ2Ric2VydmVyoG5vd6BhY2NlcHRzoHRoZaBjb21tYW5koCdjYXRjaKBzeXNjYWxsJy48YnI+CiugoKCgTm90ZaB0aGF0oHlvdaBtdXN0oGhhdmWgR0RCoCZndDs9oDcuMTGgdG+gdXNloCdjYXRjaKBzeXNjYWxsJ6B3aXRoPGJyPgoroKCgoGdkYnNlcnZlci48YnI+Cis8YnI+CisqoE5ld6BvcHRpb26gLS1ydW4tY3h4LWZyZWVyZXM9Jmx0O3llc3xubyZndDugY2FuoGJloHVzZWSgdG+gY2hhbmdloHdoZXRoZXI8YnI+CiugoF9fZ251X2N4eDo6X19mcmVlcmVzKCmgY2xlYW51cKBmdW5jdGlvbqBpc6BjYWxsZWSgb3Kgbm90LqBEZWZhdWx0oGlzPGJyPgoroKAneWVzJy48YnI+Cis8YnI+CisqoFZhbGdyaW5koGlzoGFibGWgdG+gcmVhZKBjb21wcmVzc2VkoGRlYnVnaW5mb6BzZWN0aW9uc6BpbqB0d2+gZm9ybWF0czo8YnI+CiugoC2gemxpYqBFTEagZ0FCSaBmb3JtYXSgd2l0aKBTSEZfQ09NUFJFU1NFRKBmbGFnoChnY2Ogb3B0aW9uoC1nej16bGliKTxicj4KK6CgLaB6bGlioEdOVaBmb3JtYXSgd2l0aKAuemRlYnVnoHNlY3Rpb25zoChnY2Ogb3B0aW9uoC1nej16bGliLWdudSk8YnI+Cis8YnI+CisqoE1vZGVzdKBKSVQtY29zdKBpbXByb3ZlbWVudHM6oHRoZaBjb3N0oG9moGluc3RydW1lbnRpbmegY29kZaBibG9ja3M8YnI+CiugoGZvcqB0aGWgbW9zdKBjb21tb26gdXNloGNhc2WgKHg4Nl82NC1saW51eCygTWVtY2hlY2spoGhhc6BiZWVuPGJyPgoroKByZWR1Y2VkoGJ5oDEwJS0xNSUuPGJyPgorPGJyPgorKqBJbXByb3ZlZKBwZXJmb3JtYW5jZaBmb3KgcHJvZ3JhbXOgdGhhdKBkb6BhoGxvdKBvZqBkaXNjYXJkaW5noG9mPGJyPgoroKBpbnN0cnVjdGlvbqBhZGRyZXNzoHJhbmdlc6BvZqA4S0Kgb3KgbGVzcy48YnI+Cis8YnI+CisqoFRoZaBDKyugc3ltYm9soGRlbWFuZ2xlcqBoYXOgYmVlbqB1cGRhdGVkLjxicj4KKzxicj4KKyqgTW9yZaByb2J1c3RuZXNzoGFnYWluc3SgaW52YWxpZKBzeXNjYWxsoHBhcmFtZXRlcnOgb26gTGludXguPGJyPgorPGJyPgorKqA9PT09PT09PT09PT09PT09PT09PaBGSVhFRKBCVUdToD09PT09PT09PT09PT09PT09PT09PGJyPgorPGJyPgorVGhloGZvbGxvd2luZ6BidWdzoGhhdmWgYmVlbqBmaXhlZKBvcqByZXNvbHZlZC6goE5vdGWgdGhhdKAibi1pLWJ6Ijxicj4KK3N0YW5kc6Bmb3KgIm5vdKBpbqBidWd6aWxsYSKgLS2gdGhhdKBpcyygYaBidWegdGhhdKB3YXOgcmVwb3J0ZWSgdG+gdXM8YnI+CitidXSgbmV2ZXKgZ290oGGgYnVnemlsbGGgZW50cnkuoKBXZaBlbmNvdXJhZ2WgeW91oHRvoGZpbGWgYnVnc6Bpbjxicj4KK2J1Z3ppbGxhoChodHRwczovL2J1Z3Mua2RlLm9yZy9lbnRlcl9idWcuY2dpP3Byb2R1Y3Q9dmFsZ3JpbmQpoHJhdGhlcjxicj4KK3RoYW6gbWFpbGluZ6B0aGWgZGV2ZWxvcGVyc6Aob3KgbWFpbGluZ6BsaXN0cymgZGlyZWN0bHmgLS2gYnVnc6B0aGF0PGJyPgorYXJloG5vdKBlbnRlcmVkoGludG+gYnVnemlsbGGgdGVuZKB0b6BnZXSgZm9yZ290dGVuoGFib3V0oG9yoGlnbm9yZWQuPGJyPgorPGJyPgorVG+gc2VloGRldGFpbHOgb2agYaBnaXZlbqBidWcsoHZpc2l0PGJyPgoroKBodHRwczovL2J1Z3Mua2RlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9WFhYWFhYPGJyPgord2hlcmWgWFhYWFhYoGlzoHRoZaBidWegbnVtYmVyoGFzoGxpc3RlZKBiZWxvdy48YnI+Cis8YnI+CisxOTEwNjmgoEV4aXRpbmegZHVloHRvoHNpZ25hbKBub3SgcmVwb3J0ZWSgaW6gWE1MoG91dHB1dDxicj4KKzE5OTQ2OKCgU3VwcHJlc3Npb25zOqBzdGFja6BzaXploGxpbWl0ZWSgdG+gMjU8YnI+CiugoKCgoKCgoHdoaWxloC0tbnVtLWNhbGxlcnOgYWxsb3dzoG1vcmWgZnJhbWVzPGJyPgorMjEyMzUyoKB2ZXigYW1kNjSgdW5oYW5kbGVkoG9wY19hdXigPaAweKAyLKBmaXJzdF9vcGNvZGWgPT2gMHhEQ6AoRkNPTSk8YnI+CisyNzg3NDSgoGN2dHBzMnBkoHdpdGigcmVkdW5kYW50oFJleFc8YnI+CiszMDM4NzegoHZhbGdyaW5koGRvZXNuJ3Sgc3VwcG9ydKBjb21wcmVzc2VkoGRlYnVnaW5mb6BzZWN0aW9ucy48YnI+CiszNDUzMDegoFdhcm5pbmegYWJvdXSgInN0aWxsoHJlYWNoYWJsZSKgbWVtb3J5oHdoZW6gdXNpbmegbGlic3RkYysroGZyb22gZ2NjoDU8YnI+CiszNDgzNDWgoEFzc2VydGlvbqBmYWlsc6Bmb3KgbmVnYXRpdmWgbGluZW5vPGJyPgorMzUxMjgyoKBWoDMuMTAuMaBNSVBToHNvZnRmbG9hdKBidWlsZKBicm9rZW6gd2l0aKBHQ0OgNC45LjOgL6BiaW51dGlsc6AyLjI1LjE8YnI+CiszNTE2OTKgoER1bXBzoGNyZWF0ZWSgYnmgdmFsZ3JpbmSgYXJloG5vdKByZWFkYWJsZaBieaBnZGKgKG1pcHMzMqBzcGVjaWZpYyk8YnI+CiszNTE4MDSgoENyYXNooG9uoGdlbmVyYXRpbmegc3VwcHJlc3Npb25zoGZvcqAicHJpbnRmIqBjYWxsoG9uoE9ToFigMTAuMTA8YnI+CiszNTIxOTegoG1pcHM6oG1tYXAyKCmgbm90oHdyYXBwZWSgY29ycmVjdGx5oGZvcqBwYWdloHNpemWgJmd0O6A0MDk2PGJyPgorMzUzMDgzoKBhcm02NKBkb2Vzbid0oGltcGxlbWVudKB2YXJpb3VzoHhhdHRyoHN5c3RlbaBjYWxsczxicj4KKzM1MzA4NKCgYXJtNjSgZG9lc24ndKBzdXBwb3J0oHNpZ3BlbmRpbmegc3lzdGVtoGNhbGw8YnI+CiszNTMxMzegoHd3dzqgdXBkYXRloGluZm+gZm9yoFN1cHBvcnRlZKBQbGF0Zm9ybXM8YnI+CiszNTMxMzigoHd3dzqgdXBkYXRloCJUaGWgVmFsZ3JpbmSgRGV2ZWxvcGVycyKgcGFnZTxicj4KKzM1MzM3MKCgZG9uJ3SgYWR2ZXJ0aXNloFJEUkFORKBpbqBjcHVpZKBmb3KgQ29yZS1pNy00OTEwLWxpa2WgYXZ4MqBtYWNoaW5lPGJyPgoroKCgoKCgoKA9PaAzNjUzMjU8YnI+CiugoKCgoKCgoD09oDM1Nzg3Mzxicj4KKzM1MzM4NKCgYW1kNjQtJmd0O0lSOqAweDY2oDB4RqAweDNBoDB4NjKgMHhEMaAweDYyoChwY21wWHN0cligJDB4NjIpPGJyPgorMzUzMzk4oKBXQVJOSU5HOqB1bmhhbmRsZWSgYW1kNjQtc29sYXJpc6BzeXNjYWxsOqAyMDc8YnI+CiszNTM2NjCgoFhNTKBpbqBhdXh3aGF0oHRhZ6Bub3SgZXNjYXBpbmegcmVzZXJ2ZWSgc3ltYm9sc6Bwcm9wZXJseTxicj4KKzM1MzY4MKCgczM5MHg6oENyYXNooHdpdGigY2VydGFpbqBnbGliY6B2ZXJzaW9uc6BkdWWgdG+gbm9uLWltcGxlbWVudGVkoFRCRUdJTjxicj4KKzM1MzcyN6CgYW1kNjQtJmd0O0lSOqAweDY2oDB4RqAweDNBoDB4NjKgMHhEMaAweDcyoChwY21wWHN0cligJDB4NzIpPGJyPgorMzUzODAyoKBFTEagZGVidWegaW5mb6ByZWFkZXKgY29uZnVzZWSgd2l0aKBtdWx0aXBsZaAucm9kYXRhoHNlY3Rpb25zPGJyPgorMzUzODkxoKBBc3NlcnSgJ2JhZF9zY2FubmVkX2FkZHKgJmx0O6BWR19ST1VOREROKHN0YXJ0K2xlbiygc2l6ZW9mKEFkZHIpKSegZmFpbGVkPGJyPgorMzUzOTE3oKB1bmhhbmRsZWSgYW1kNjQtc29sYXJpc6BzeXNjYWxsoGZjaGRpcigxMjApPGJyPgorMzUzOTIwoKB1bmhhbmRsZWSgYW1kNjQtc29sYXJpc6BzeXNjYWxsOqAxNzA8YnI+CiszNTQyNzSgoGFybTqgdW5oYW5kbGVkoGluc3RydWN0aW9uOqAweEVCQUSgMHgwQUMxoChzdWIud6BzbCygc3AsoHIxLKBsc2ygIzMpPGJyPgorMzU0MzkyoKB1bmhhbmRsZWSgYW1kNjQtc29sYXJpc6BzeXNjYWxsOqAxNzE8YnI+CiszNTQ3OTegoFZiaXSgdGVzdKBkb2VzoG5vdKBpbmNsdWRloElvcHOgZm9yoFBvd2VyoDigaW5zdHJ1Y3Rpb26gc3VwcG9ydDxicj4KKzM1NDg4M6CgdHN0LSZndDtvc19zdGF0ZS5wdGhyZWFkoC2gbWFnaWNfZGVsdGGgYXNzZXJ0aW9uoGZhaWx1cmWgb26gT1NYoDEwLjExPGJyPgoroKCgoKCgoKA9PaAzNjEzNTE8YnI+CiugoKCgoKCgoD09oDM2MjkyMDxicj4KK6CgoKCgoKCgPT2gMzY2MjIyPGJyPgorMzU0OTMzoKBGaXigZG9jdW1lbnRhdGlvbqBvZqAtLWtlcm5lbC12YXJpYW50PWFuZHJvaWQtbm8taHctdGxzoG9wdGlvbjxicj4KKzM1NTE4OKCgdmFsZ3JpbmSgc2hvdWxkoGludGVyY2VwdKBhbGygbWFsbG9joHJlbGF0ZWSgZ2xvYmFsoGZ1bmN0aW9uczxicj4KKzM1NTQ1NKCgZG+gbm90oGludGVyY2VwdKBtYWxsb2OgcmVsYXRlZKBzeW1ib2xzoGZyb22gdGhloHJ1bnRpbWWgbGlua2VyPGJyPgorMzU1NDU1oKBzdGRlcnIuZXhwoG9moHRlc3SgY2FzZXOgd3JhcG1hbGxvY6BhbmSgd3JhcG1hbGxvY3N0YXRpY6BvdmVyY29uc3RyYWluZWQ8YnI+CiszNTYwNDSgoER3YXJmoGxpbmWgaW5mb6ByZWFkZXKgbWlzaW50ZXJwcmV0c6Bpc19zdG10oHJlZ2lzdGVyPGJyPgorMzU2MTEyoKBtaXBzOqByZXBsYWNloGFkZGmgd2l0aKBhZGRpdTxicj4KKzM1NjM5M6CgdmFsZ3JpbmSgKHZleCmgY3Jhc2hlc6BiZWNhdXNloGlzWmVyb1WgaGFwcGVuZWQ8YnI+CiugoKCgoKCgoD09oDM2MzQ5Nzxicj4KK6CgoKCgoKCgPT2gMzY0NDk3PGJyPgorMzU2Njc2oKBhcm02NC1saW51eDqgdW5oYW5kbGVkoHN5c2NhbGxzoDEyNSygMTI2oChzY2hlZF9nZXRfcHJpb3JpdHlfbWF4L21pbik8YnI+CiszNTY2NzigoGFybTY0LWxpbnV4OqB1bmhhbmRsZWSgc3lzY2FsbKAyMzKgKG1pbmNvcmUpPGJyPgorMzU2ODE3oKB2YWxncmluZC5ooHRyaWdnZXJzoGNvbXBpbGVyoGVycm9yc6BvbqBNU1ZDoHdoZW6gZGVmaW5pbmegTlZBTEdSSU5EPGJyPgorMzU2ODIzoKBVbnN1cHBvcnRlZKBBUk2gaW5zdHJ1Y3Rpb246oHN0bGV4PGJyPgorMzU3MDU5oKB4ODYvYW1kNjQ6oFNTRaBjdnRwaTJwc6B3aXRooG1lbW9yeaBzb3VyY2WgZG9lc6B0cmFuc2l0aW9uoHRvoE1NWKBzdGF0ZTxicj4KKzM1NzMzOKCgVW5oYW5kbGVkoGluc3RydWN0aW9uoGZvcqBTSEGgaW5zdHJ1Y3Rpb25zoGxpYmNyeXB0b6BCb3JpbmegU1NMPGJyPgorMzU3NjczoKBjcmFzaKBpZqBJoHRyeaB0b6BydW6gdmFsZ3JpbmSgd2l0aKBhoGJpbmFyeaBsaW5roHdpdGigbGliY3VybDxicj4KKzM1NzgzM6CgU2V0dGluZ6BSTElNSVRfREFUQaB0b6B6ZXJvoGJyZWFrc6B3aXRooGxpbnV4oDQuNSs8YnI+CiszNTc4NzGgoHB0aHJlYWRfc3Bpbl9kZXN0cm95oG5vdKBwcm9wZXJseaB3cmFwcGVkPGJyPgorMzU3ODg3oKBDYWxsc6B0b6BWR18oZmNsb3NlKaBkb6Bub3SgY2xvc2WgdGhloGZpbGWgZGVzY3JpcHRvcjxicj4KKzM1NzkzMqCgYW1kNjQtJmd0O0lSOqBhY2NlcHSgcmVkdW5kYW50oFJFWKBwcmVmaXhlc6Bmb3Kge21pbnNkLG1heHNkfaBtMTI4LKB4bW0uPGJyPgorMzU4MDMwoKBzdXBwb3J0oGRpcmVjdKBzb2NrZXSgY2FsbHOgb26geDg2oDMyYml0oChuZXegaW6gbGludXigNC4zKTxicj4KKzM1ODQ3OKCgZHJkL3Rlc3RzL3N0ZF90aHJlYWQuY3BwoGRvZXNuJ3SgYnVpbGSgd2l0aKBHQ0M2PGJyPgorMzU5MTMzoKBBc3NlcnRpb26gJ2VsdFN6QqAmbHQ7PaBkZHBhLSZndDtwb29sU3pCJ6BmYWlsZWQ8YnI+CiszNTkxODGgoEJ1ZmZlcqBPdmVyZmxvd6BkdXJpbmegRGVtYW5nbGluZzxicj4KKzM1OTIwMaCgZnV0ZXigc3lzY2FsbKAic2tpcHMioGFyZ3VtZW50oDWgaWagb3CgaXOgRlVURVhfV0FJVF9CSVRTRVQ8YnI+CiszNTkyODmgoHMzOTB4OqBwb3BjbnSgKEI5RTEpoG5vdKBpbXBsZW1lbnRlZDxicj4KKzM1OTQ3MqCgVGhloFBvd2VyoFBDoHZzdWJ1cW2gaW5zdHJ1Y3Rpb26gZG9lc24ndKBhbHdheXOgZ2l2ZaB0aGWgY29ycmVjdKByZXN1bHQ8YnI+CiszNTk1MDOgoEFkZKBtaXNzaW5noHN5c2NhbGxzoGZvcqBhYXJjaDY0oChhcm02NCk8YnI+CiszNTk2NDWgoCJZb3WgbmVlZKBsaWJjNi1kYmcioGhlbHCgbWVzc2FnZaBjb3VsZKBiZaBtb3JloGhlbHBmdWw8YnI+CiszNTk3MDOgoHMzOTA6oHdpcmWgdXCgc2VwYXJhdGWgc29ja2V0Y2FsbHOgc3lzdGVtoGNhbGxzPGJyPgorMzU5NzI0oKBnZXRzb2NrbmFtZaBtaWdodKBjcmFzaKAtoGRlcmVmX1VJbnSgc2hvdWxkoGNhbGygc2FmZV90b19kZXJlZjxicj4KKzM1OTczM6CgYW1kNjSgaW1wbGVtZW50oGxkLnNvoHN0cmNoci9pbmRleKBvdmVycmlkZaBsaWtloHg4Njxicj4KKzM1OTc2N6CgVmFsZ3JpbmSgZG9lc6Bub3Sgc3VwcG9ydKB0aGWgSUJNoFBPV0VSoElTQaAzLjCgaW5zdHJ1Y3Rpb25zLKBwYXJ0oDEvNTxicj4KKzM1OTgyOaCgUG93ZXKgUEOgdGVzdKBzdWl0ZaBub25lL3Rlc3RzL3BwYzY0L3Rlc3RfaXNhXzJfMDcuY6B1c2VzPGJyPgoroKCgoKCgoKB1bmluaXRpYWxpemVkoGRhdGE8YnI+CiszNTk4MzigoGFybTY0OqBVbmhhbmRsZWSgaW5zdHJ1Y3Rpb26gMHhENTAzM0Y1RqAoY2xyZXgpPGJyPgorMzU5ODcxoKBJbmNvcnJlY3SgbWFza6BoYW5kbGluZ6BpbqBwcG9sbDxicj4KKzM1OTk1MqCgVW5yZWNvZ25pc2VkoFBDTVBFU1RSTaB2YXJpYW50c6AoMHg3MCygMHgxOSk8YnI+CiszNjAwMDigoENvbnRlbnRzoG9moFBvd2VyoHZyoHJlZ2lzdGVyc6Bjb250ZW50c6Bpc6Bub3SgcHJpbnRlZKBjb3JyZWN0bHmgd2hlbjxicj4KK6CgoKCgoKCgdGhloC0tdmdkYi1zaGFkb3ctcmVnaXN0ZXJzPXllc6BvcHRpb26gaXOgdXNlZDxicj4KKzM2MDAzNaCgUE9XRVKgUEOgaW5zdHJ1Y3Rpb26gYmNkYWRkoGFuZKBiY2RzdWJ0cmFjdKBnZW5lcmF0ZaByZXN1bHSgd2l0aDxicj4KK6CgoKCgoKCgbm9uLXplcm+gc2hhZG93oGJpdHM8YnI+CiszNjAzNzigoGFybTY0OqBVbmhhbmRsZWSgaW5zdHJ1Y3Rpb26gMHg1RTI4MDg0NKAoc2hhMWigoHM0LKBzMik8YnI+CiszNjA0MjWgoGFybTY0oHVuc3VwcG9ydGVkoGluc3RydWN0aW9uoGxkcHN3PGJyPgoroKCgoKCgoKA9PaAzNjQ0MzU8YnI+CiszNjA1MTmgoG5vbmUvdGVzdHMvYXJtNjQvbWVtb3J5LnZndGVzdKBtaWdodKBmYWlsoHdpdGigbmV3ZXKgZ2NjPGJyPgorMzYwNTcxoKBFcnJvcqBhYm91dKB0aGWgQW5kcm9pZKBSdW50aW1loHJlYWRpbmegYmVsb3egdGhloHN0YWNroHBvaW50ZXKgb26gQVJNPGJyPgorMzYwNTc0oKBXcm9uZ6BwYXJhbWV0ZXKgdHlwZaBmb3KgYW6gYXNobWVtoGlvY3RsKCmgY2FsbKBvbqBBbmRyb2lkoGFuZKBBUk02NDxicj4KKzM2MDc0OaCga2x1ZGdloGZvcqBtdWx0aXBsZaAucm9kYXRhoHNlY3Rpb25zoG9uoFNvbGFyaXOgbm+gbG9uZ2VyoG5lZWRlZDxicj4KKzM2MDc1MqCgcmFpc2WgdGhloG51bWJlcqBvZqByZXNlcnZlZKBmZHOgaW6gbV9tYWluLmOgZnJvbaAxMKB0b6AxMjxicj4KKzM2MTIwN6CgVmFsZ3JpbmSgZG9lc6Bub3Sgc3VwcG9ydKB0aGWgSUJNoFBPV0VSoElTQaAzLjCgaW5zdHJ1Y3Rpb25zLKBwYXJ0oDIvNTxicj4KKzM2MTIyNqCgczM5MHg6oHJpc2JnbqAoRUM1OSmgbm90oGltcGxlbWVudGVkPGJyPgorMzYxMjUzoKBbczM5MHhdoGV4X2Nsb25lLmM6NDI6oHVuZGVmaW5lZKByZWZlcmVuY2WgdG+gYHB0aHJlYWRfY3JlYXRlJzxicj4KKzM2MTM1NKCgcHBjNjRbbGVdOqB3aXJloHVwoHNlcGFyYXRloHNvY2tldGNhbGxzoHN5c3RlbaBjYWxsczxicj4KKzM2MTYxNaCgSW5jb25zaXN0ZW50oHRlcm1pbmF0aW9uoGZvcqBtdWx0aXRocmVhZGVkoHByb2Nlc3OgdGVybWluYXRlZKBieaBzaWduYWw8YnI+CiszNjE5MjagoFVuaGFuZGxlZKBTb2xhcmlzoHN5c2NhbGw6oHN5c2ZzKDg0KTxicj4KKzM2MjAwOaCgVqBkdW1wc6Bjb3JloG9uoHVuaW1wbGVtZW50ZWSgZnVuY3Rpb25hbGl0eaBiZWZvcmWgdGhyZWFkc6BhcmWgY3JlYXRlZDxicj4KKzM2MjMyOaCgVmFsZ3JpbmSgZG9lc6Bub3Sgc3VwcG9ydKB0aGWgSUJNoFBPV0VSoElTQaAzLjCgaW5zdHJ1Y3Rpb25zLKBwYXJ0oDMvNTxicj4KKzM2Mjg5NKCgbWlzc2luZ6AoYnJva2VuKaBzdXBwb3J0oGZvcqB3Yml0oGZpZWxkoG9uoG10ZnNmaaBpbnN0cnVjdGlvbqAocHBjNjQpPGJyPgorMzYyOTM1oKBbQXN1c1dSVF2gQXNzZXJ0aW9uoCdzaXplb2YoVFRFbnRyeUMpoCZsdDs9oDg4J6BmYWlsZWQ8YnI+CiszNjI5NTOgoFJlcXVlc3SgZm9yoGFuoHVwZGF0ZaB0b6B0aGWgVmFsZ3JpbmSgRGV2ZWxvcGVyc6BwYWdlPGJyPgorMzYzNjgwoKBhZGSgcmVuYW1lYXQyKCmgc3VwcG9ydDxicj4KKzM2MzcwNaCgYXJtNjSgbWlzc2luZ6BzeXNjYWxsoG5hbWVfdG9faGFuZGxlX2F0oGFuZKBvcGVuX2J5X2hhbmRsZV9hdDxicj4KKzM2MzcxNKCgcHBjNjSgbWlzc2luZ6BzeXNjYWxsc6BzeW5jLKB3YWl0aWSgYW5koG5hbWVfdG8vb3Blbl9ieV9oYW5kbGVfYXQ8YnI+CiszNjM4NTigoFZhbGdyaW5koGRvZXOgbm90oHN1cHBvcnSgdGhloElCTaBQT1dFUqBJU0GgMy4woGluc3RydWN0aW9ucyygcGFydKA0LzU8YnI+CiszNjQwNTigoGNsYXJpZnmgaW6gbWFudWFsoGxpbWl0YXRpb25zoG9moGFycmF5oG92ZXJydW5zoGRldGVjdGlvbnM8YnI+CiszNjQ0MTOgoHBzZWxlY3Sgc3ljYWxsd3JhcHBlcqBtaXNoYW5kbGVzoE5VTEygc2lnbWFzazxicj4KKzM2NDcyOKCgUG93ZXKgUEMsoG1pc3Npbmegc3VwcG9ydKBmb3Kgc2V2ZXJhbKBIV6ByZWdpc3RlcnOgaW48YnI+CiugoKCgoKCgoGdldF9vdHJhY2tfc2hhZG93X29mZnNldF93cmsoKTxicj4KKzM2NDk0OKCgVmFsZ3JpbmSgZG9lc6Bub3Sgc3VwcG9ydKB0aGWgSUJNoFBPV0VSoElTQaAzLjCgaW5zdHJ1Y3Rpb25zLKBwYXJ0oDUvNTxicj4KKzM2NTI3M6CgSW52YWxpZKB3cml0ZaB0b6BzdGFja6Bsb2NhdGlvbqByZXBvcnRlZKBhZnRlcqBzaWduYWygaGFuZGxlcqBydW5zPGJyPgorMzY1OTEyoKBwcGM2NEJFoHNlZ2ZhdWx0oGR1cmluZ6BqbS1pbnNuc6B0ZXN0oChSRUxSTyk8YnI+CiszNjYwNzmgoEZQWFigU3VwcG9ydKBmb3KgTUlQUzMyoFZhbGdyaW5kPGJyPgorMzY2MTM4oKBGaXigY29uZmlndXJloGVycm9yc6BvdXSgd2hlbqB1c2luZ6BYY29kZaA4oChjbGFuZ6A4LjAuMCk8YnI+CiszNjYzNDSgoE11bHRpcGxloHVuaGFuZGxlZKBpbnN0cnVjdGlvbqBmb3KgQWFyY2g2NDxicj4KK6CgoKCgoKCgKDB4MEVFMEUwMjAsoDB4MUFDMTU4MDAsoDB4NEUyODQ4MDEsoDB4NUUwNDAwMjMsoDB4NUUwNTYwNjApPGJyPgorMzY3OTk1oKBJbnRlZ3JhdGlvbqBvZqBtZW1jaGVja6B3aXRooGN1c3RvbaBtZW1vcnmgYWxsb2NhdG9yPGJyPgorMzY4MTIwoKB4ODZfbGludXigYXNtoF9zdGFydKBmdW5jdGlvbnOgZG+gbm90oGtlZXCgMTYtYnl0ZaBhbGlnbmVkoHN0YWNroHBvaW50ZXI8YnI+CiszNjg0MTKgoEZhbHNloHBvc2l0aXZloHJlc3VsdKBmb3KgYWx0aXZlY6BjYXBhYmlsaXR5oGNoZWNrPGJyPgorMzY4NDE2oKBBZGSgdGMwNl90d29fcmFjZXNfeG1sLmV4cKBvdXRwdXSgZm9yoHBwYzY0PGJyPgorMzY4NDE5oKBQZXJmoEV2ZW50c6Bpb2N0bHOgbm90oGltcGxlbWVudGVkPGJyPgorMzY4NDYxoKBtbWFwdW5tYXCgdGVzdKBmYWlsc6BvbqBwcGM2NDxicj4KKzM2ODgyM6CgcnVuX2FfdGhyZWFkX05PUkVUVVJOoGFzc2VtYmx5oGNvZGWgdHlwb6Bmb3KgVkdQX2FybTY0X2xpbnV4oHRhcmdldDxicj4KKzM2OTAwMKCgQU1ENjSgZm1hNKBpbnN0cnVjdGlvbnOgdW5zdXBwb3J0ZWQuPGJyPgorMzY5MTY5oKBwcGM2NKBmYWlsc6BqbV9pbnRfaXNhXzJfMDegdGVzdDxicj4KKzM2OTE3NaCgam1fdmVjX2lzYV8yXzA3oHRlc3SgY3Jhc2hlc6BvbqBwcGM2NDxicj4KKzM2OTIwOaCgdmFsZ3JpbmSgbG9vcHOgYW5koGVhdHOgdXCgYWxsoG1lbW9yeaBpZqBjd2SgZG9lc24ndKBleGlzdC48YnI+CiszNjkzNTagoHByZV9tZW1fcmVhZF9zb2NrYWRkcqBzeXNjYWxsoHdyYXBwZXKgY2FuoGNyYXNooHdpdGigYmFkoHNvY2thZGRyPGJyPgorMzY5MzU5oKBtc2doZHJfZm9yZWFjaGZpZWxkoGNhbqBjcmFzaKB3aGVuoGhhbmRsaW5noGJhZKBpb3ZlYzxicj4KKzM2OTM2MKCgQmFkoHNpZ3Byb2NtYXNroG9sZKBvcqBuZXegc2V0c6BjYW6gY3Jhc2igdmFsZ3JpbmQ8YnI+CiszNjkzNjGgoHZtc3BsaWNloHN5c2NhbGygd3JhcHBlcqBjcmFzaGVzoG9uoGJhZKBpb3ZlYzxicj4KKzM2OTM2MqCgQmFkoHNpZ2FjdGlvbqBhcmd1bWVudHOgY3Jhc2igdmFsZ3JpbmQ8YnI+CiszNjkzODOgoHg4NqBzeXNfbW9kaWZ5X2xkdKB3cmFwcGVyoGNyYXNoZXOgb26gYmFkoHB0cjxicj4KKzM2OTQwMqCgQmFkoHNldC9nZXRfdGhyZWFkX2FyZWGgcG9pbnRlcqBjcmFzaGVzoHZhbGdyaW5kPGJyPgorMzY5NDQxoKBiYWSgbHZlY6Bhcmd1bWVudKBjcmFzaGVzoHByb2Nlc3Nfdm1fcmVhZHYvd3JpdGV2oHN5c2NhbGygd3JhcHBlcnM8YnI+CiszNjk0NDagoHZhbGdyaW5koGNyYXNoZXOgb26gdW5rbm93bqBmY250bKBjb21tYW5kPGJyPgorMzY5NDM5oKBTMzkweDqgVW5oYW5kbGVkoGluc25zoFJJU0JMRy9SSVNCSEegYW5koExERS9MREVSoDxicj4KKzM2OTQ2OKCgUmVtb3ZloHF1YWRyYXRpY6BtZXRhcG9vbKBhbGdvcml0aG2gdXNpbmegVkdfKEhUX3JlbW92ZV9hdF9JdGVyKTxicj4KKzM3MDI2NaCgSVNBoDMuMKBIV6BjYXCgc3R1ZmagbmVlZHOgdXBkYXRpbmc8YnI+CiszNzExMjigoEJDRKBhZGSgYW5koHN1YnRyYWN0oGluc3RydWN0aW9uc6BvbqBQb3dlcqBCRaBpbqAzMi1iaXSgbW9kZaBkb6Bub3Sgd29yazxicj4KK24taS1ieqCgRml4oGluY29ycmVjdKAob3KgaW5maW5pdGWgbG9vcCmgdW53aW5koG9uoFJIRUw3oHg4NqBhbmSgYW1kNjQ8YnI+CituLWktYnqgoG1hc3NpZqAtLXBhZ2VzLWFzLWhlYXA9eWVzoGRvZXOgbm90oHJlcG9ydKBwZWFroGNhdXNlZKBieaBtbWFwK211bm1hcDxicj4KK24taS1ieqCgZmFsc2WgcG9zaXRpdmWgbGVha3OgZHVloHRvoGFzcGFjZW1ncqBtZXJnaW5noGhlYXCgJmFtcDugbm9uoGhlYXCgc2VnbWVudHM8YnI+CituLWktYnqgoEZpeKBwcG9sbF9hbGFybaBleGNsdXNpb26gb26gT1OgWDxicj4KK24taS1ieqCgRG9jdW1lbnSgYnJroHNlZ21lbnSgbGltaXRhdGlvbiygcmVmZXJlbmNloG1hbnVhbKBpbqBsaW1pdKByZWFjaGVkoG1zZy48YnI+CituLWktYnqgoEZpeKBjbG9iYmVyoGxpc3SgaW6gbm9uZS90ZXN0cy9hbWQ2NC94YWNxX3hyZWwuY6BbdmFsZ3JpbmSgcjE1NzM3XTxicj4KK24taS1ieqCgQnVtcKBhbGxvd2VkoHNoaWZ0oHZhbHVloGZvcqAiYWRkLnegcmVnLKBzcCygcmVnLKBsc2ygI04ioFt2ZXigcjMyMDZdPGJyPgorbi1pLWJ6oKBhbWQ2NDqgbWVtY2hlY2ugZmFsc2WgcG9zaXRpdmWgd2l0aKBzaHKgJWVkeDxicj4KK24taS1ieqCgYXJtMzqgQWxsb3egZWFybHmgd3JpdGViYWNroG9moFNQoGJhc2WgcmVnaXN0ZXKgaW6gInN0cmSgckQsoFtzcCygIy0xNl0iPGJyPgorbi1pLWJ6oKBwcGM6oEZpeKB0d2+gY2FzZXOgb2agUFBDQXZGcE9woHZzoFBQQ0ZwT3CgZW51baBjb25mdXNpb248YnI+CituLWktYnqgoGFybTqgRml4oGluY29ycmVjdKByZWdpc3Rlci1udW1iZXKgY29uc3RyYWludKBjaGVja6Bmb3KgTERBRVh7LEIsSCxEfTxicj4KK24taS1ieqCgREhBVDqgYWRkZWSgY29sbGVjdGlvbqBvZqB0aGWgbWV0cmljoCJ0b3QtYmxvY2tzLWFsbG9jZCKgPGJyPgorPGJyPgorKDMuMTIuMC5SQzE6oKAyMKBPY3RvYmVyoDIwMTYsoHZleKByMzI4MiygdmFsZ3JpbmSgcjE2MDk0KTxicj4KKygzLjEyLjAuUkMyOqCgMjCgT2N0b2JlcqAyMDE2LKB2ZXigcjMyODIsoHZhbGdyaW5koHIxNjA5Nik8YnI+CisoMy4xMi4wOqCgoKCgoDIxoE9jdG9iZXKgMjAxNiygdmV4oHIzMjgyLKB2YWxncmluZKByMTYwOTgpPGJyPgorPGJyPgorPGJyPgorPGJyPgorUmVsZWFzZaAzLjExLjCgKDIyoFNlcHRlbWJlcqAyMDE1KTxicj4KK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn48YnI+Cis8YnI+CiszLjExLjCgaXOgYaBmZWF0dXJloHJlbGVhc2Wgd2l0aKBtYW55oGltcHJvdmVtZW50c6BhbmSgdGhloHVzdWFsPGJyPgorY29sbGVjdGlvbqBvZqBidWegZml4ZXMuPGJyPgorPGJyPgorVGhpc6ByZWxlYXNloHN1cHBvcnRzoFg4Ni9MaW51eCygQU1ENjQvTGludXgsoEFSTTMyL0xpbnV4LDxicj4KK0FSTTY0L0xpbnV4LKBQUEMzMi9MaW51eCygUFBDNjRCRS9MaW51eCygUFBDNjRMRS9MaW51eCygUzM5MFgvTGludXgsPGJyPgorTUlQUzMyL0xpbnV4LKBNSVBTNjQvTGludXgsoEFSTS9BbmRyb2lkLKBBUk02NC9BbmRyb2lkLDxicj4KK01JUFMzMi9BbmRyb2lkLKBYODYvQW5kcm9pZCygWDg2L1NvbGFyaXMsoEFNRDY0L1NvbGFyaXMsoFg4Ni9NYWNPU1g8YnI+CisxMC4xMKBhbmSgQU1ENjQvTWFjT1NYoDEwLjEwLqCgVGhlcmWgaXOgYWxzb6BwcmVsaW1pbmFyeaBzdXBwb3J0oGZvcjxicj4KK1g4Ni9NYWNPU1igMTAuMTEsoEFNRDY0L01hY09TWKAxMC4xMaBhbmSgVElMRUdYL0xpbnV4Ljxicj4KKzxicj4KKyqgPT09PT09PT09PT09PT09PT09oFBMQVRGT1JNoENIQU5HRVOgPT09PT09PT09PT09PT09PT08YnI+Cis8YnI+CisqoFN1cHBvcnSgZm9yoFNvbGFyaXMveDg2oGFuZKBTb2xhcmlzL2FtZDY0oGhhc6BiZWVuoGFkZGVkLjxicj4KKzxicj4KKyqgUHJlbGltaW5hcnmgc3VwcG9ydKBmb3KgTWFjoE9ToFigMTAuMTGgKEVsoENhcGl0YW4poGhhc6BiZWVuoGFkZGVkLjxicj4KKzxicj4KKyqgUHJlbGltaW5hcnmgc3VwcG9ydKBmb3KgdGhloFRpbGVyYaBUaWxlR1igYXJjaGl0ZWN0dXJloGhhc6BiZWVuoGFkZGVkLjxicj4KKzxicj4KKyqgczM5MHg6oEl0oGlzoG5vd6ByZXF1aXJlZKBmb3KgdGhloGhvc3SgdG+gaGF2ZaB0aGWgImxvbmegZGlzcGxhY2VtZW50Ijxicj4KK6CgZmFjaWxpdHkuoKBUaGWgb2xkZXN0oHN1cHBvcnRlZKBtYWNoaW5loG1vZGVsoGlzoHo5OTAuPGJyPgorPGJyPgorKqB4ODY6oG9uoGFuoFNTRTKgb25seaBob3N0LKBWYWxncmluZKBpbqAzMqBiaXSgbW9kZaBub3egY2xhaW1zoHRvoGJloGE8YnI+CiugoFBlbnRpdW2gNC6goDMuMTAuMaB3cm9uZ2x5oGNsYWltZWSgdG+gYmWgYaBDb3JloDIsoHdoaWNooGlzoFNTU0UzLjxicj4KKzxicj4KKyqgVGhloEpJVCdzoHJlZ2lzdGVyoGFsbG9jYXRvcqBpc6BzaWduaWZpY2FudGx5oGZhc3RlciygbWFraW5noHRoZaBKSVQ8YnI+CiugoGFzoGGgd2hvbGWgc29tZXdoYXSgZmFzdGVyLKBzb6BKSVQtaW50ZW5zaXZloGFjdGl2aXRpZXMsoGZvcqBleGFtcGxlPGJyPgoroKBwcm9ncmFtoHN0YXJ0dXAsoGFyZaBtb2Rlc3RseaBmYXN0ZXIsoGFyb3VuZKA1JS48YnI+Cis8YnI+CisqoFRoZXJloGhhdmWgYmVlbqBjaGFuZ2VzoHRvoHRoZaBkZWZhdWx0oHNldHRpbmdzoG9moHNldmVyYWygY29tbWFuZDxicj4KK6CgbGluZaBmbGFncyygYXOgZGV0YWlsZWSgYmVsb3cuPGJyPgorPGJyPgorKqBJbnRlbKBBVlgyoHN1cHBvcnSgaXOgbW9yZaBjb21wbGV0ZaAoNjSgYml0oHRhcmdldHOgb25seSkuoKBPbqBBVlgyPGJyPgoroKBjYXBhYmxloGhvc3RzLKB0aGWgc2ltdWxhdGVkoENQVUlEoHdpbGygbm93oGluZGljYXRloEFWWDKgc3VwcG9ydC48YnI+Cis8YnI+CisqoD09PT09PT09PT09PT09PT09PT09oFRPT0ygQ0hBTkdFU6A9PT09PT09PT09PT09PT09PT09PTxicj4KKzxicj4KKyqgTWVtY2hlY2s6PGJyPgorPGJyPgoroKAtoFRoZaBkZWZhdWx0oHZhbHVloGZvcqAtLWxlYWstY2hlY2staGV1cmlzdGljc6BoYXOgYmVlbqBjaGFuZ2VkoGZyb208YnI+CiugoKCgIm5vbmUioHRvoCJhbGwiLqBUaGlzoGhlbHBzoHRvoHJlZHVjZaB0aGWgbnVtYmVyoG9moHBvc3NpYmx5PGJyPgoroKCgoGxvc3SgYmxvY2tzLKBpbqBwYXJ0aWN1bGFyoGZvcqBDKyugYXBwbGljYXRpb25zLjxicj4KKzxicj4KK6CgLaBUaGWgZGVmYXVsdKB2YWx1ZaBmb3KgLS1rZWVwLXN0YWNrdHJhY2VzoGhhc6BiZWVuoGNoYW5nZWSgZnJvbTxicj4KK6CgoKAibWFsbG9jLXRoZW4tZnJlZSKgdG+gIm1hbGxvYy1hbmQtZnJlZSIuoKBUaGlzoGhhc6BhoHNtYWxsoGNvc3SgaW48YnI+CiugoKCgbWVtb3J5oChvbmWgd29yZKBwZXKgbWFsbG9jLWVkoGJsb2NrKaBidXSgYWxsb3dzoE1lbWNoZWNroHRvoHNob3egdGhlPGJyPgoroKCgoDOgc3RhY2t0cmFjZXOgb2agYaBkYW5nbGluZ6ByZWZlcmVuY2U6oHdoZXJloHRoZaBibG9ja6B3YXOgYWxsb2NhdGVkLDxicj4KK6CgoKB3aGVyZaBpdKB3YXOgZnJlZWQsoGFuZKB3aGVyZaBpdKBpc6BhY2NjZXNzZWSgYWZ0ZXKgYmVpbmegZnJlZWQuPGJyPgorPGJyPgoroKAtoFRoZaBkZWZhdWx0oHZhbHVloGZvcqAtLXBhcnRpYWwtbG9hZHMtb2ugaGFzoGJlZW6gY2hhbmdlZKBmcm9toCJubyKgdG+gPGJyPgoroKCgoCJ5ZXMiLKBzb6Bhc6B0b6Bhdm9pZKBmYWxzZaBwb3NpdGl2ZaBlcnJvcnOgcmVzdWx0aW5noGZyb22gc29tZaBraW5kczxicj4KK6CgoKBvZqB2ZWN0b3Jpc2VkoGxvb3BzLjxicj4KKzxicj4KK6CgLaBBoG5ld6Btb25pdG9yoGNvbW1hbmSgJ3hioCZsdDthZGRyJmd0O6AmbHQ7bGVuJmd0Oyegc2hvd3OgdGhloHZhbGlkaXR5oGJpdHOgb2Y8YnI+CiugoKCgJmx0O2xlbiZndDugYnl0ZXOgYXSgJmx0O2FkZHImZ3Q7LqCgVGhloG1vbml0b3KgY29tbWFuZKAneGInoGlzoGVhc2llcqB0b6B1c2U8YnI+CiugoKCgdGhhbqBnZXRfdmJpdHOgd2hlbqB5b3WgbmVlZKB0b6Bhc3NvY2lhdGWgYnl0ZaBkYXRhoHZhbHVloHdpdGg8YnI+CiugoKCgdGhlaXKgY29ycmVzcG9uZGluZ6B2YWxpZGl0eaBiaXRzLjxicj4KKzxicj4KK6CgLaBUaGWgJ2Jsb2NrX2xpc3QnoG1vbml0b3KgY29tbWFuZKBoYXOgYmVlbqBlbmhhbmNlZDo8YnI+CiugoKCgoKBvoGl0oGNhbqBwcmludKBhoHJhbmdloG9moGxvc3OgcmVjb3Jkczxicj4KK6CgoKCgoG+gaXSgbm93oGFjY2VwdHOgYW6gb3B0aW9uYWygYXJndW1lbnSgJ2xpbWl0ZWSgJmx0O21heF9ibG9ja3MmZ3Q7Jzxicj4KK6CgoKCgoKCgdG+gY29udHJvbKB0aGWgbnVtYmVyoG9moGJsb2Nrc6BwcmludGVkLjxicj4KK6CgoKCgoG+gaWagYaBibG9ja6BoYXOgYmVlbqBmb3VuZKB1c2luZ6BhoGhldXJpc3RpYyygdGhlbjxicj4KK6CgoKCgoKCgJ2Jsb2NrX2xpc3QnoG5vd6BzaG93c6B0aGWgaGV1cmlzdGljoGFmdGVyoHRoZaBibG9ja6BzaXplLjxicj4KK6CgoKCgoG+gdGhloGxvc3OgcmVjb3Jkcy9ibG9ja3OgdG+gcHJpbnSgY2FuoGJloGxpbWl0ZWSgdG+gdGhloGJsb2Nrczxicj4KK6CgoKCgoKCgZm91bmSgdmlhoHNwZWNpZmllZKBoZXVyaXN0aWNzLjxicj4KKzxicj4KK6CgLaBUaGWgQ6BoZWxwZXKgZnVuY3Rpb25zoHVzZWSgdG+gaW5zdHJ1bWVudKBsb2Fkc6Bvbjxicj4KK6CgoKB4ODYte2xpbnV4LHNvbGFyaXN9oGFuZKBhcm0tbGludXigKGJvdGigMzItYml0oG9ubHkpoGhhdmWgYmVlbjxicj4KK6CgoKByZXBsYWNlZKBieaBoYW5kd3JpdHRlbqBhc3NlbWJseaBzZXF1ZW5jZXMuoKBUaGlzoGdpdmVzoHNwZWVkdXBzPGJyPgoroKCgoGluoHRoZaByZWdpb26gb2agMCWgdG+gNyWgZm9yoHRob3NloHRhcmdldHOgb25seS48YnI+Cis8YnI+CiugoC2gQaBuZXegY29tbWFuZKBsaW5loG9wdGlvbiygLS1leHBlbnNpdmUtZGVmaW5lZG5lc3MtY2hlY2tzPXllc3xubyw8YnI+CiugoKCgaGFzoGJlZW6gYWRkZWQuoKBUaGlzoGlzoHVzZWZ1bKBmb3KgYXZvaWRpbmegb2NjYXNpb25hbKBpbnZhbGlkPGJyPgoroKCgoHVuaW5pdGlhbGlzZWQtdmFsdWWgZXJyb3JzoGluoG9wdGltaXNlZKBjb2RlLqCgV2F0Y2igb3V0oGZvcjxicj4KK6CgoKBydW50aW1loGRlZ3JhZGF0aW9uLKBhc6B0aGlzoGNhbqBiZaB1cKB0b6AyNSUuoKBBc6BhbHdheXMsoHRob3VnaCw8YnI+CiugoKCgdGhloHNsb3dkb3duoGlzoGhpZ2hseaBhcHBsaWNhdGlvbqBzcGVjaWZpYy6goFRoZaBkZWZhdWx0oHNldHRpbmc8YnI+CiugoKCgaXOgIm5vIi48YnI+Cis8YnI+CisqoE1hc3NpZjo8YnI+Cis8YnI+CiugoC2gQaBuZXegbW9uaXRvcqBjb21tYW5koCdhbGxfc25hcHNob3RzoCZsdDtmaWxlbmFtZSZndDsnoGR1bXBzoGFsbDxicj4KK6CgoKBzbmFwc2hvdHOgdGFrZW6gc2+gZmFyLjxicj4KKzxicj4KKyqgSGVsZ3JpbmQ6PGJyPgorPGJyPgoroKAtoFNpZ25pZmljYW50oG1lbW9yeaByZWR1Y3Rpb26gYW5koG1vZGVyYXRloHNwZWVkdXBzoGZvcjxicj4KK6CgoKAtLWhpc3RvcnktbGV2ZWw9ZnVsbKBmb3KgYXBwbGljYXRpb25zoGFjY2Vzc2luZ6BhoGxvdKBvZqBtZW1vcnk8YnI+CiugoKCgd2l0aKBtYW55oGRpZmZlcmVudKBzdGFja3RyYWNlcy48YnI+Cis8YnI+CiugoC2gVGhloGRlZmF1bHSgdmFsdWWgZm9yoC0tY29uZmxpY3QtY2FjaGUtc2l6ZT1OoGhhc6BiZWVuoGRvdWJsZWSgdG88YnI+CiugoKCgMjAwMDAwMC6goFVzZXJzoHRoYXSgd2VyZaBub3SgdXNpbmegdGhloGRlZmF1bHSgdmFsdWWgc2hvdWxkPGJyPgoroKCgoHByZWZlcmFibHmgYWxzb6Bkb3VibGWgdGhloHZhbHVloHRoZXmgZ2l2ZS48YnI+Cis8YnI+CiugoKCgVGhloGRlZmF1bHSgd2FzoGNoYW5nZWSgZHVloHRvoHRoZaBjaGFuZ2VzoGluoHRoZaAiZnVsbKBoaXN0b3J5Ijxicj4KK6CgoKBpbXBsZW1lbnRhdGlvbi6goERvdWJsaW5noHRoZaB2YWx1ZaBnaXZlc6BvbqBhdmVyYWdloGGgc2xpZ2h0bHmgbW9yZTxicj4KK6CgoKBjb21wbGV0ZaBoaXN0b3J5oGFuZKB1c2VzoHNpbWlsYXKgbWVtb3J5oChvcqBzaWduaWZpY2FudGx5oGxlc3OgbWVtb3J5PGJyPgoroKCgoGluoHRoZaB3b3JzdKBjYXNlKaB0aGFuoHRoZaBwcmV2aW91c6BpbXBsZW1lbnRhdGlvbi48YnI+CiugoKCgPGJyPgoroKAtoFRoZaBIZWxncmluZKBtb25pdG9yoGNvbW1hbmSgJ2luZm+gbG9ja3MnoG5vd6BhY2NlcHRzoGFuoG9wdGlvbmFsPGJyPgoroKCgoGFyZ3VtZW50oCdsb2NrX2FkZHInLKB3aGljaKBzaG93c6BpbmZvcm1hdGlvbqBhYm91dKB0aGWgbG9ja6BhdKB0aGU8YnI+CiugoKCgZ2l2ZW6gYWRkcmVzc6Bvbmx5Ljxicj4KKzxicj4KK6CgLaBXaGVuoHVzaW5noC0taGlzdG9yeS1sZXZlbD1mdWxsLKB0aGWgbmV3oEhlbGdyaW5koG1vbml0b3KgY29tbWFuZDxicj4KK6CgoKAnYWNjZXNzaGlzdG9yeaAmbHQ7YWRkciZndDugWyZsdDtsZW4mZ3Q7XSegd2lsbKBzaG93oHRoZaByZWNvcmRlZKBhY2Nlc3Nlc6Bmb3I8YnI+CiugoKCgJmx0O2xlbiZndDugKG9yoDEpoGJ5dGVzoGF0oCZsdDthZGRyJmd0Oy48YnI+Cis8YnI+CisqoD09PT09PT09PT09PT09PT09PT09oE9USEVSoENIQU5HRVOgPT09PT09PT09PT09PT09PT09PT08YnI+Cis8YnI+CisqoFRoZaBkZWZhdWx0oHZhbHVloGZvcqB0aGWgLS1zbWMtY2hlY2ugb3B0aW9uoGhhc6BiZWVuoGNoYW5nZWSgZnJvbTxicj4KK6CgInN0YWNrIqB0b6AiYWxsLW5vbi1maWxlIqBvbqB0YXJnZXRzoHRoYXSgcHJvdmlkZaBhdXRvbWF0aWOgRC1JPGJyPgoroKBjYWNoZaBjb2hlcmVuY2WgKHg4NiygYW1kNjSgYW5koHMzOTB4KS6goFRoZaByZXN1bHSgaXOgdG+gcHJvdmlkZSw8YnI+CiugoGJ5oGRlZmF1bHQsoHRyYW5zcGFyZW50oHN1cHBvcnSgZm9yoEpJVKBnZW5lcmF0ZWSgYW5koHNlbGYtbW9kaWZ5aW5nPGJyPgoroKBjb2RloG9uoGFsbKB0YXJnZXRzLjxicj4KKzxicj4KKyqgTWFjoE9ToFigb25seTqgdGhloGRlZmF1bHSgdmFsdWWgZm9yoHRoZaAtLWRzeW11dGlsoG9wdGlvbqBoYXOgYmVlbjxicj4KK6CgY2hhbmdlZKBmcm9toCJubyKgdG+gInllcyIsoHNpbmNloGFueaBzZXJpb3VzoHVzYWdloG9uoE1hY6BPU6BYPGJyPgoroKBhbHdheXOgcmVxdWlyZWSgaXSgdG+gYmWgInllcyIuPGJyPgorPGJyPgorKqBUaGWgY29tbWFuZKBsaW5loG9wdGlvbnOgLS1kYi1hdHRhY2igYW5koC0tZGItY29tbWFuZKBoYXZloGJlZW6gcmVtb3ZlZC48YnI+CiugoFRoZXmgd2VyZaBkZXByZWNhdGVkoGluoDMuMTAuMC48YnI+Cis8YnI+CisqoFdoZW6gYaBwcm9jZXNzoGRpZXOgZHVloHRvoGGgc2lnbmFsLKBWYWxncmluZKBub3egc2hvd3OgdGhloHNpZ25hbDxicj4KK6CgYW5koHRoZaBzdGFja3RyYWNloGF0oGRlZmF1bHSgdmVyYm9zaXR5oChpLmUuoHZlcmJvc2l0eaAxKS48YnI+Cis8YnI+CisqoFRoZaBhZGRyZXNzoGRlc2NyaXB0aW9uoGxvZ2ljoHVzZWSgYnmgTWVtY2hlY2ugYW5koEhlbGdyaW5koG5vdzxicj4KK6CgZGVzY3JpYmVzoGFkZHJlc3Nlc6BpbqBhbm9ueW1vdXOgc2VnbWVudHMsoGZpbGWgbW1hcC1lZKBzZWdtZW50cyw8YnI+CiugoHNoYXJlZKBtZW1vcnmgc2VnbWVudHOgYW5koHRoZaBicmugZGF0YaBzZWdtZW50Ljxicj4KKzxicj4KKyqgVGhloG5ld6BvcHRpb26gLS1lcnJvci1tYXJrZXJzPSZsdDtiZWdpbiZndDssJmx0O2VuZCZndDugY2FuoGJloHVzZWSgdG+gbWFya6B0aGU8YnI+CiugoGJlZ2luL2VuZKBvZqBlcnJvcnOgaW6gdGV4dHVhbKBvdXRwdXSgbW9kZSygdG+gZmFjaWxpdGF0ZTxicj4KK6Cgc2VhcmNoaW5nL2V4dHJhY3RpbmegZXJyb3JzoGluoG91dHB1dKBmaWxlc6B0aGF0oG1peKB2YWxncmluZKBlcnJvcnM8YnI+CiugoHdpdGigcHJvZ3JhbaBvdXRwdXQuPGJyPgorPGJyPgorKqBUaGWgbmV3oG9wdGlvbqAtLW1heC10aHJlYWRzPSZsdDtudW1iZXImZ3Q7oGNhbqBiZaB1c2VkoHRvoGNoYW5nZaB0aGWgbnVtYmVyPGJyPgoroKBvZqB0aHJlYWRzoHZhbGdyaW5koGNhbqBoYW5kbGUuoKBUaGWgZGVmYXVsdKBpc6A1MDCgdGhyZWFkc6B3aGljaDxicj4KK6Cgc2hvdWxkoGJloG1vcmWgdGhhbqBlbm91Z2igZm9yoG1vc3SgYXBwbGljYXRpb25zLjxicj4KKzxicj4KKyqgVGhloG5ld6BvcHRpb26gLS12YWxncmluZC1zdGFja3NpemU9Jmx0O251bWJlciZndDugY2FuoGJloHVzZWSgdG+gY2hhbmdloHRoZTxicj4KK6Cgc2l6ZaBvZqB0aGWgcHJpdmF0ZaB0aHJlYWSgc3RhY2tzoHVzZWSgYnmgVmFsZ3JpbmQuoKBUaGlzoGlzoHVzZWZ1bDxicj4KK6CgZm9yoHJlZHVjaW5noG1lbW9yeaB1c2Wgb3KgaW5jcmVhc2luZ6B0aGWgc3RhY2ugc2l6ZaBpZqBWYWxncmluZDxicj4KK6Cgc2VnZmF1bHRzoGR1ZaB0b6BzdGFja6BvdmVyZmxvdy48YnI+Cis8YnI+CisqoFRoZaBuZXegb3B0aW9uoC0tYXZnLXRyYW5zdGFiLWVudHJ5LXNpemU9Jmx0O251bWJlciZndDugY2FuoGJloHVzZWSgdG+gc3BlY2lmeTxicj4KK6CgdGhloGV4cGVjdGVkoGluc3RydW1lbnRlZKBibG9ja6BzaXplLKBlaXRoZXKgdG+gcmVkdWNloG1lbW9yeaB1c2Wgb3I8YnI+CiugoHRvoGF2b2lkoGV4Y2Vzc2l2ZaByZXRyYW5zbGF0aW9uLjxicj4KKzxicj4KKyqgVmFsZ3JpbmSgY2FuoGJloGJ1aWx0oHdpdGigSW50ZWwnc6BJQ0OgY29tcGlsZXIsoHZlcnNpb26gMTQuMKBvcqBsYXRlci48YnI+Cis8YnI+CisqoE5ld6BhbmSgbW9kaWZpZWSgR0RCoHNlcnZlcqBtb25pdG9yoGZlYXR1cmVzOjxicj4KKzxicj4KK6CgLaBXaGVuoGGgc2lnbmFsoGlzoHJlcG9ydGVkoGluoEdEQiygeW91oGNhbqBub3egdXNloHRoZaBHREKgY29udmVuaWVuY2U8YnI+CiugoKCgdmFyaWFibGWgJF9zaWdpbmZvoHRvoGV4YW1pbmWgZGV0YWlsZWSgc2lnbmFsoGluZm9ybWF0aW9uLjxicj4KK6A8YnI+CiugoC2gVmFsZ3JpbmQnc6BnZGJzZXJ2ZXKgbm93oGFsbG93c6B0aGWgdXNlcqB0b6BjaGFuZ2WgdGhloHNpZ25hbDxicj4KK6CgoKB0b6BkZWxpdmVyoHRvoHRoZaBwcm9jZXNzLqCgU28soHVzZaAnc2lnbmFsoFNJR05BTCegdG+gY29udGludWWgZXhlY3V0aW9uPGJyPgoroKCgoHdpdGigU0lHTkFMoGluc3RlYWSgb2agdGhloHNpZ25hbKByZXBvcnRlZKB0b6BHREIuoFVzZaAnc2lnbmFsoDAnoHRvPGJyPgoroKCgoGNvbnRpbnVloHdpdGhvdXSgcGFzc2luZ6B0aGWgc2lnbmFsoHRvoHRoZaBwcm9jZXNzLjxicj4KKzxicj4KK6CgLaBXaXRooEdEQqAmZ3Q7PaA3LjEwLKB0aGWgY29tbWFuZKAndGFyZ2V0oHJlbW90ZSc8YnI+CiugoKCgd2lsbKBhdXRvbWF0aWNhbGx5oGxvYWSgdGhloGV4ZWN1dGFibGWgZmlsZaBvZqB0aGWgcHJvY2Vzc6BydW5uaW5nPGJyPgoroKCgoHVuZGVyoFZhbGdyaW5kLqBUaGlzoG1lYW5zoHlvdaBkb6Bub3SgbmVlZKB0b6BzcGVjaWZ5oHRoZaBleGVjdXRhYmxlPGJyPgoroKCgoGZpbGWgeW91cnNlbGYsoEdEQqB3aWxsoGRpc2NvdmVyoGl0oGl0c2VsZi6goFNlZaBHREKgZG9jdW1lbnRhdGlvbqBhYm91dDxicj4KK6CgoKAncVhmZXI6ZXhlYy1maWxlOnJlYWQnoHBhY2tldKBmb3KgbW9yZaBpbmZvLjxicj4KKzxicj4KKyqgPT09PT09PT09PT09PT09PT09PT2gRklYRUSgQlVHU6A9PT09PT09PT09PT09PT09PT09PTxicj4KKzxicj4KK1RoZaBmb2xsb3dpbmegYnVnc6BoYXZloGJlZW6gZml4ZWSgb3KgcmVzb2x2ZWQuoKBOb3RloHRoYXSgIm4taS1ieiI8YnI+CitzdGFuZHOgZm9yoCJub3SgaW6gYnVnemlsbGEioC0toHRoYXSgaXMsoGGgYnVnoHRoYXSgd2FzoHJlcG9ydGVkoHRvoHVzPGJyPgorYnV0oG5ldmVyoGdvdKBhoGJ1Z3ppbGxhoGVudHJ5LqCgV2WgZW5jb3VyYWdloHlvdaB0b6BmaWxloGJ1Z3OgaW48YnI+CitidWd6aWxsYaAoaHR0cHM6Ly9idWdzLmtkZS5vcmcvZW50ZXJfYnVnLmNnaT9wcm9kdWN0PXZhbGdyaW5kKaByYXRoZXI8YnI+Cit0aGFuoG1haWxpbmegdGhloGRldmVsb3BlcnOgKG9yoG1haWxpbmegbGlzdHMpoGRpcmVjdGx5oC0toGJ1Z3OgdGhhdDxicj4KK2FyZaBub3SgZW50ZXJlZKBpbnRvoGJ1Z3ppbGxhoHRlbmSgdG+gZ2V0oGZvcmdvdHRlbqBhYm91dKBvcqBpZ25vcmVkLjxicj4KKzxicj4KK1RvoHNlZaBkZXRhaWxzoG9moGGgZ2l2ZW6gYnVnLKB2aXNpdDxicj4KK6CgaHR0cHM6Ly9idWdzLmtkZS5vcmcvc2hvd19idWcuY2dpP2lkPVhYWFhYWDxicj4KK3doZXJloFhYWFhYWKBpc6B0aGWgYnVnoG51bWJlcqBhc6BsaXN0ZWSgYmVsb3cuPGJyPgorPGJyPgorMTE2MDAyoKBWR18ocHJpbnRmKTqgUHJvYmxlbXOgd2l0aKBqdXN0aWZpY2F0aW9uoG9moHN0cmluZ3OgYW5koGludGVnZXJzPGJyPgorMTU1MTI1oKBhdm9pZKBjdXR0aW5noGF3YXmgZmlsZTpsaW5lbm+gYWZ0ZXKgbG9uZ6BmdW5jdGlvbqBuYW1lPGJyPgorMTk3MjU5oKBVbnN1cHBvcnRlZKBhcmNoX3BydGN0bKBQUl9TRVRfR1Ogb3B0aW9uPGJyPgorMjAxMTUyoKBwcGM2NDqgQXNzZXJ0aW9uoGluoHBwYzMyZ19kaXJ0eWhlbHBlcl9NRlNQUl8yNjhfMjY5PGJyPgorMjAxMjE2oKBGaXigVmFsZ3JpbmSgZG9lc6Bub3Sgc3VwcG9ydKBwdGhyZWFkX3NpZ21hc2soKaBvbqBPU6BYPGJyPgorMjAxNDM1oKBGaXigRGFyd2luOqAtdqBkb2VzoG5vdKBzaG93oGtlcm5lbKB2ZXJzaW9uPGJyPgorMjA4MjE3oKAiV2FybmluZzqgbm90ZWSgYnV0oHVuaGFuZGxlZKBpb2N0bKAweDIwMDA3NDdiIqBvbqBNYWOgT1OgWDxicj4KKzIxMTI1NqCgRml4ZWSgYW6gb3V0ZGF0ZWSgY29tbWVudKByZWdhcmRpbmegdGhloGRlZmF1bHSgcGxhdGZvcm0uPGJyPgorMjExNTI5oKBJbmNvbXBsZXRloGNhbGygc3RhY2tzoGZvcqBjb2RloGNvbXBpbGVkoGJ5oG5ld2VyoHZlcnNpb25zoG9moE1TVkM8YnI+CisyMTE5MjagoEF2b2lkoGNvbXBpbGF0aW9uoHdhcm5pbmdzoGluoHZhbGdyaW5kLmigd2l0aKAtcGVkYW50aWM8YnI+CisyMTIyOTGgoEZpeKB1bmhhbmRsZWSgc3lzY2FsbDqgdW5peDoxMzKgKG1rZmlmbymgb26gT1OgWDxicj4KK6CgoKCgoKCgPT2gMjYzMTE5PGJyPgorMjI2NjA5oKBDcmVkaXRpbmegdXBzdHJlYW2gYXV0aG9yc6BpbqBtYW6gcGFnZTxicj4KKzIzMTI1N6CgVmFsZ3JpbmSgb21pdHOgcGF0aKB3aGVuoGV4ZWN1dGluZ6BzY3JpcHSgZnJvbaBzaGViYW5noGxpbmU8YnI+CisyNTQxNjSgoE9ToFigdGFza19pbmZvOqBVTktOT1dOoHRhc2ugbWVzc2FnZaBbaWSgMzQwNSygdG+gbWFjaF90YXNrX3NlbGYoKaBbLi5dPGJyPgorMjk0MDY1oKBJbXByb3ZloHRoZaBwZGKgZmlsZaByZWFkZXKgYnmgYXZvaWRpbmegaGFyZHdpcmVkoGFic29sdXRloHBhdGhuYW1lczxicj4KKzI2OTM2MKCgczM5MHg6oEZpeKBhZGRyZXNzaW5noG1vZGWgc2VsZWN0aW9uoGZvcqBjb21wYXJlLWFuZC1zd2FwPGJyPgorMzAyNjMwoKBNZW1jaGVjazqgQXNzZXJ0aW9uoGZhaWxlZDqgJ3NpemVvZihVV29yZCmgPT2gc2l6ZW9mKFVJbnQpJzxicj4KK6CgoKCgoKCgPT2gMzI2Nzk3PGJyPgorMzEyOTg5oKBpb2N0bKBoYW5kbGluZ6BuZWVkc6B0b6Bkb6BQT1NUoGhhbmRsaW5noG9uoGdlbmVyaWOgaW9jdGxzoGFuZKBbLi5dPGJyPgorMzE5Mjc0oKBGaXigdW5oYW5kbGVkoHN5c2NhbGw6oHVuaXg6NDEwoChzaWdzdXNwZW5kX25vY2FuY2VsKaBvbqBPU6BYPGJyPgorMzI0MTgxoKBtbWFwoGRvZXOgbm90oGhhbmRsZaBNQVBfMzJCSVSgKGhhbmRsZaBpdKBub3csoHJhdGhlcqB0aGFuoGZhaWygaXQpPGJyPgorMzI3NzQ1oKBGaXigdmFsZ3JpbmSgMy45LjCgYnVpbGSgZmFpbHOgb26gTWFjoE9ToFigMTAuNi44PGJyPgorMzMwMTQ3oKBsaWJtcGl3cmFwoFBNUElfR2V0X2NvdW50oHJldHVybnOgdW5kZWZpbmVkoHZhbHVlPGJyPgorMzMzMDUxoKBtbWFwoG9moGh1Z2WgcGFnZXOgZmFpbHOgZHVloHRvoGluY29ycmVjdKBhbGlnbm1lbnQ8YnI+CiugoKCgoKCgoD09oDMzOTE2Mzxicj4KKzMzNDgwMqCgdmFsZ3JpbmSgZG9lc6Bub3SgYWx3YXlzoGV4cGxhaW6gd2h5oGGgZ2l2ZW6gb3B0aW9uoGlzoGJhZDxicj4KKzMzNTYxOKCgbW92Lnegck4soHBjL3NwoChBUk0zMik8YnI+CiszMzU3ODWgoGFtZDY0LSZndDtJUqAweEM0oDB4RTKgMHg3NaAweDJGoCh2bWFza21vdnBkKTxicj4KK6CgoKCgoKCgPT2gMzA3Mzk5PGJyPgoroKCgoKCgoKA9PaAzNDMxNzU8YnI+CiugoKCgoKCgoD09oDM0Mjc0MDxicj4KK6CgoKCgoKCgPT2gMzQ2OTEyPGJyPgorMzM1OTA3oKBzZWdmYXVsdKB3aGVuoHJ1bm5pbmegd2luZSdzoGRkcmF3ZXgvdGVzdHMvc3VyZmFjZS5joHVuZGVyoHZhbGdyaW5kPGJyPgorMzM4NjAyoKBBVlgyoGJpdKBpbqBDUFVJRKBtaXNzaW5nPGJyPgorMzM4NjA2oKBTdHJhbmdloG1lc3NhZ2WgZm9yoHNjcmlwdHOgd2l0aKBpbnZhbGlkoGludGVycHJldGVyPGJyPgorMzM4NzMxoKBwcGM6oEZpeKB0ZXN0dWl0ZaBidWlsZKBmb3KgdG9vbGNoYWluc6Bub3Sgc3VwcG9ydGluZ6AtbWFsdGl2ZWM8YnI+CiszMzg5OTWgoHNobWF0oHdpdGigaHVnZXBhZ2VzoChTSE1fSFVHRVRMQimgZmFpbHOgd2l0aKBFSU5WQUw8YnI+CiszMzkwNDWgoEdldHRpbmegdmFsZ3JpbmSgdG+gY29tcGlsZaBhbmSgcnVuoG9uoE9ToFigWW9zZW1pdGWgKDEwLjEwKTxicj4KK6CgoKCgoKCgPT2gMzQwMjUyPGJyPgorMzM5MTU2oKBnZGJzcnagbm90oGNhbGxlZKBmb3KgZmF0YWygc2lnbmFsPGJyPgorMzM5MjE1oKBWYWxncmluZKAzLjEwLjCgY29udGFpbqAyMDEzoGluoGNvcHlyaWdodHOgbm90aWNlPGJyPgorMzM5Mjg4oKBzdXBwb3J0oENhdml1baBPY3Rlb26gTUlQU6BzcGVjaWZpY6BCQklUKjMyoGluc3RydWN0aW9uczxicj4KKzMzOTYzNqCgVXNloGZ4c2F2ZTY0oGFuZKBmeHJzdG9yNjSgbW5lbW9uaWNzoGluc3RlYWSgb2agb2xkLXNjaG9vbKByZXg2NKBwcmVmaXg8YnI+CiszMzk0NDKgoEZpeKB0ZXN0c3VpdGWgYnVpbGSgZmFpbHVyZaBvbqBPU6BYoDEwLjk8YnI+CiszMzk1NDKgoEVuYWJsZaBjb21waWxhdGlvbqB3aXRooEludGVsJ3OgSUNDoGNvbXBpbGVyPGJyPgorMzM5NTYzoKBUaGWgRFZCoGRlbXV4oERNWF9TVE9QoGlvY3RsoGRvZXNuJ3SgaGF2ZaBhoHdyYXBwZXI8YnI+CiszMzk2ODigoE1hYy1zcGVjaWZpY6BBU02gZG9lc6Bub3Sgc3VwcG9ydKAudmVyc2lvbqBkaXJlY3RpdmWgKGNwdWlkLDxicj4KK6CgoKCgoKCgdHJvbmljYWygYW5koHB1c2hmcG9wZqB0ZXN0cyk8YnI+CiszMzk3NDWgoFZhbGdyaW5koGNyYXNooHdoZW6gY2hlY2ugTWFybWFsYWRloGFwcKAocGFydGlhbKBmaXgpPGJyPgorMzM5NzU1oKBGaXiga25vd26gZGVsaWJlcmF0ZaBtZW1vcnmgbGVha6BpbqBzZXRlbnYoKaBvbqBNYWOgT1OgWKAxMC45PGJyPgorMzM5Nzc4oKBMaW51eC9UaWxlR3igcGxhdGZvcm2gc3VwcG9ydKBmb3KgVmFsZ3JpbmQ8YnI+CiszMzk3ODCgoEZpeKBrbm93bqB1bmluaXRpYWxpc2VkoHJlYWSgaW6gcHRocmVhZF9yd2xvY2tfaW5pdCgpoG9uoE1hY6BPU6BYoDEwLjmgPGJyPgorMzM5Nzg5oKBGaXigbm9uZS90ZXN0cy9leGVjdmWgdGVzdKBvbqBNYWOgT1OgWKAxMC45PGJyPgorMzM5ODA4oKBGaXigbm9uZS90ZXN0cy9ybGltaXQ2NF9ub2ZpbGWgdGVzdKBvbqBNYWOgT1OgWKAxMC45PGJyPgorMzM5ODIwoKB2ZXigYW1kNjQtJmd0O0lSOqAweDY2oDB4RqAweDNBoDB4NjOgMHhBoDB4NDKgMHg3NKAweDmgKHBjbXBpc3RyaaAkMHg0Mik8YnI+CiszNDAxMTWgoEZpeKBub25lL3Rlc3RzL2NtZGxpbmVbMXwyXaB0ZXN0c6BvbqBzeXN0ZW1zoHdoaWNooGRlZmluZaBUTVBESVI8YnI+CiszNDAzOTKgoEFsbG93oHVzZXKgdG+gc2VsZWN0oG1vcmWgYWNjdXJhdGWgZGVmaW5lZG5lc3OgY2hlY2tpbmegaW6gbWVtY2hlY2s8YnI+CiugoKCgoKCgoHRvoGF2b2lkoGludmFsaWSgY29tcGxhaW50c6BvbqBvcHRpbWlzZWSgY29kZTxicj4KKzM0MDQzMKCgRml4oHNvbWWgZ3JhbW1hdGljYWygd2VpcmRuZXNzoGluoHRoZaBtYW51YWwuPGJyPgorMzQxMjM4oKBSZWNvZ25pemWgR0NDNS9EV0FSRnY1oERXX0xBTkegY29uc3RhbnRzoChHbyygQzExLKBDKysxMSygQysrMTQpPGJyPgorMzQxNDE5oKBTaWduYWygaGFuZGxlcqB1Y29udGV4dF90oG5vdKBmaWxsZWSgb3V0oGNvcnJlY3RseaBvbqBPU6BYPGJyPgorMzQxNTM5oKBWR18oZGVzY3JpYmVfYWRkcimgc2hvdWxkoG5vdKBkZXNjcmliZaBhZGRyZXNzoGFzoGJlbG9uZ2luZ6B0b6BjbGllbnQ8YnI+CiugoKCgoKCgoHNlZ21lbnSgaWagaXSgaXOgcGFzdKB0aGWgaGVhcKBlbmQ8YnI+CiszNDE2MTOgoEVuYWJsZaBidWlsZGluZ6BvZqBtYW55dGhyZWFkc6BhbmSgdGhyZWFkLWV4aXRzoHRlc3RzoG9uoE1hY6BPU6BYPGJyPgorMzQxNjE1oKBGaXigbm9uZS90ZXN0cy9kYXJ3aW4vYWNjZXNzX2V4dGVuZGVkoHRlc3Sgb26gTWFjoE9ToFg8YnI+CiszNDE2OTigoFZhbGdyaW5kJ3OgQUVTS0VZR0VOQVNTSVNUoGdpdmVzoHdyb25noHJlc3VsdKBpbqB3b3Jkc6AwoGFuZKAyoFsuLl08YnI+CiszNDE3ODmgoGFhcmNoNjQ6oHNobWF0oGZhaWxzoHdpdGigdmFsZ3JpbmSgb26gQVJNdjg8YnI+CiszNDE5OTegoE1JUFM2NDqgQ2F2aXVtoE9DVEVPTqBpbnNuc6AtoGltbWVkaWF0ZaBvcGVyYW5koGhhbmRsZWSgaW5jb3JyZWN0bHk8YnI+CiszNDIwMDigoHZhbGdyaW5kLmigbmVlZHOgdHlwZaBjYXN0oFsuLl2gZm9yoGNsYW5nL2xsdm2gaW6gNjQtYml0oG1vZGU8YnI+CiszNDIwMzigoFVuaGFuZGxlZKBzeXNjYWxsc6BvbqBhYXJjaDY0oChtYmluZC9nZXQvc2V0X21lbXBvbGljeSk8YnI+CiszNDIwNjOgoHdyb25noGZvcm1hdKBzcGVjaWZpZXKgZm9yoHRlc3SgbWNibG9ja2xpc3RzZWFyY2igaW6gZ2Ric2VydmVyX3Rlc3RzPGJyPgorMzQyMTE3oKBIYW5noHdoZW6gbG9hZGluZ6BQREKgZmlsZaBmb3KgTVNWQ6Bjb21waWxlZKBGaXJlZm94oHVuZGVyoFdpbmU8YnI+CiszNDIyMjGgoHNvY2tldKBjb25uZWN0oGZhbHNloHBvc2l0aXZloHVuaW5pdKBtZW1vcnmgZm9yoHVua25vd26gYWagZmFtaWx5PGJyPgorMzQyMzUzoKBBbGxvd6BkdW1waW5noGZ1bGygbWFzc2lmoG91dHB1dKB3aGlsZaB2YWxncmluZKBpc6BzdGlsbKBydW5uaW5nPGJyPgorMzQyNTcxoKBWYWxncmluZKBjaG9rZXOgb26gQVZYoGNvbXBhcmWgaW50cmluc2ljoHdpdGigX0NNUF9HRV9RUzxicj4KK6CgoKCgoKCgPT2gMzQ2NDc2PGJyPgoroKCgoKCgoKA9PaAzNDgzODc8YnI+CiugoKCgoKCgoD09oDM1MDU5Mzxicj4KKzM0MjYwM6CgQWRkoEkyQ19TTUJVU6Bpb2N0bKBzdXBwb3J0PGJyPgorMzQyNjM1oKBPU6BYoDEwLjEwoChZb3NlbWl0ZSmgLaBtaXNzaW5noHN5c3RlbaBjYWxsc6BhbmSgZmNudGygY29kZTxicj4KKzM0MjY4M6CgTWFya6BtZW1vcnmgcGFzdKB0aGWgaW5pdGlhbKBicmugbGltaXSgYXOgdW5hZGRyZXNzYWJsZTxicj4KKzM0Mjc4M6CgYXJtOqB1bmhhbmRsZWSgaW5zdHJ1Y3Rpb26gMHhFRUZFMUFDQaA9oCJ2Y3Z0LnMzMi5mMzKgczMsoHMzLKAjMTIiPGJyPgorMzQyNzk1oKBJbnRlcm5hbKBnbGliY6BfX0dJX21lbXBjcHmgY2FsbKBzaG91bGSgYmWgaW50ZXJjZXB0ZWQ8YnI+CiszNDI4NDGgoHMzOTB4OqBTdXBwb3J0oGluc3RydWN0aW9uc6BmaWVicihhKaBhbmSgZmlkYnIoYSk8YnI+CiszNDMwMTKgoFVuaGFuZGxlZKBzeXNjYWxsoDMxOaAobWVtZmRfY3JlYXRlKTxicj4KKzM0MzA2OaCgUGF0Y2igdXBkYXRpbmegdjRsMqBBUEmgc3VwcG9ydDxicj4KKzM0MzE3M6CgaGVsZ3JpbmSgY3Jhc2igZHVyaW5noHN0YWNroHVud2luZDxicj4KKzM0MzIxOaCgZml4oEdFVF9TVEFSVFJFR1OgZm9yoGFybTxicj4KKzM0MzMwM6CgRml4oGtub3duoGRlbGliZXJhdGWgbWVtb3J5oGxlYWugaW6gc2V0ZW52KCmgb26gTWFjoE9ToFigMTAuMTA8YnI+CiszNDMzMDagoE9ToFigMTAuMTA6oFVOS05PV06gbWFjaF9tc2egdW5oYW5kbGVkoE1BQ0hfU0VORF9UUkFJTEVSoG9wdGlvbjxicj4KKzM0MzMzMqCgVW5oYW5kbGVkoGluc3RydWN0aW9uoDB4OUUzMTAwMjGgKGZjdnRtdSmgb26gYWFyY2g2NDxicj4KKzM0MzMzNaCgdW5oYW5kbGVkoGluc3RydWN0aW9uoDB4MUU2Mzg0MDCgKGZjY21wKaBhYXJjaDY0PGJyPgorMzQzNTIzoKBPU6BYoG1hY2hfcG9ydHNfcmVnaXN0ZXI6oFVOS05PV06gdGFza6BtZXNzYWdloFtpZKAzNDAzLKB0b6BbLi5dPGJyPgorMzQzNTI1oKBPU6BYoGhvc3RfZ2V0X3NwZWNpYWxfcG9ydDqgVU5LTk9XTqBob3N0oG1lc3NhZ2WgW2lkoDQxMiygdG+gWy4uXTxicj4KKzM0MzU5N6CgcHBjNjRsZTqgaW5jb3JyZWN0oHVzZaBvZqBvZmZzZW9moG1hY3JvPGJyPgorMzQzNjQ5oKBPU6BYoGhvc3RfY3JlYXRlX21hY2hfdm91Y2hlcjqgVU5LTk9XTqBob3N0oG1lc3NhZ2WgW2lkoDIyMiygdG+gWy4uXTxicj4KKzM0MzY2M6CgT1OgWKAxMC4xMKCgTWVtY2hlY2qgYWx3YXlzoHJlcG9ydHOgYaBsZWFroHJlZ2FyZGxlc3Ogb2agWy4uXTxicj4KKzM0MzczMqCgVW5oYW5kbGVkoHN5c2NhbGygMTQ0oChzZXRnaWQpoG9uoGFhcmNoNjQ8YnI+CiszNDM3MzOgoFVuaGFuZGxlZKBzeXNjYWxsoDE4N6AobXNnY3RsoGFuZKByZWxhdGVkKaBvbqBhYXJjaDY0PGJyPgorMzQzODAyoKBzMzkweDqgRmFsc2WgcG9zaXRpdmWgImNvbmRpdGlvbmFsoGp1bXCgb3KgbW92ZaBkZXBlbmRzoG9uoFsuLl08YnI+CiszNDM5MDKgoC0tdmdkYj15ZXOgZG9lc24ndKBicmVha6B3aGVuoC0teG1sPXllc6Bpc6B1c2VkPGJyPgorMzQzOTY3oKBEb24ndKB3YXJuoGFib3V0oHNldHVpZC9zZXRnaWQvc2V0Y2FwoGV4ZWN1dGFibGWgZm9yoGRpcmVjdG9yaWVzPGJyPgorMzQzOTc4oKBSZWNvZ25pemWgRFdBUkY1L0dDQzWgRFdfTEFOR19Gb3J0cmFuoDIwMDOgYW5koDIwMDigY29uc3RhbnRzPGJyPgorMzQ0MDA3oKBhY2NlcHQ0oHN5c2NhbGygdW5oYW5kbGVkoG9uoGFybTY0oCgyNDIpoGFuZKBwcGM2NKAoMzQ0KTxicj4KKzM0NDAzM6CgSGVsZ3JpbmSgb26gQVJNMzKgbG9zZXOgdHJhY2ugb2agbXV0ZXigc3RhdGWgaW6gcHRocmVhZF9jb25kX3dhaXQ8YnI+CiszNDQwNTSgoHd3d6AtoHVwZGF0ZaBpbmZvoGZvcqBTb2xhcmlzL2lsbHVtb3M8YnI+CiszNDQ0MTagoCdtYWtloHJlZ3Rlc3QnoGRvZXOgbm90oHdvcmugY2xlYW5seaBvbqBPU6BYPGJyPgorMzQ0MjM1oKBSZW1vdmWgZHVwbGljYXRloGluY2x1ZGWgb2agcHViX2NvcmVfYXNwYWNlbWdyLmg8YnI+CiszNDQyNzmgoHN5c2NhbGygc2VuZG1tc2egb26gYXJtNjSgKDI2OSmgYW5koHBwYzMyLzY0oCgzNDkpoHVuaGFuZGxlZDxicj4KKzM0NDI5NaCgc3lzY2FsbKByZWN2bW1zZ6BvbqBhcm02NKAoMjQzKaBhbmSgcHBjMzIvNjSgKDM0MymgdW5oYW5kbGVkPGJyPgorMzQ0MzA3oKAyoHVuaGFuZGxlZKBzeXNjYWxsc6BvbqBhYXJjaDY0L2FybTY0OqB1bW91bnQyKDM5KSygbW91bnSgKDQwKTxicj4KKzM0NDMxNKCgY2FsbGdyaW5kX2Fubm90YXRloC4uLqB3YXJuaW5nc6BhYm91dKBjb21tYW5kc6Bjb250YWluaW5noG5ld2xpbmVzPGJyPgorMzQ0MzE4oKBzb2NrZXRjYWxsoHNob3VsZKB3cmFwoHJlY3ZtbXNnoGFuZKBzZW5kbW1zZzxicj4KKzM0NDMzN6CgRml4oHVuaGFuZGxlZKBzeXNjYWxsOqBtYWNoOjQxoChfa2VybmVscnBjX21hY2hfcG9ydF9ndWFyZF90cmFwKTxicj4KKzM0NDQxNqCgRml4oCdtYWtloHJlZ3Rlc3QnoGRvZXOgbm90oHdvcmugY2xlYW5seaBvbqBPU6BYPGJyPgorMzQ0NDk5oKBGaXigY29tcGlsYXRpb26gZm9yoExpbnV4oGtlcm5lbKAmZ3Q7PaA0LjAuMDxicj4KKzM0NDUxMqCgT1OgWDqgdW5oYW5kbGVkoHN5c2NhbGw6oHVuaXg6MzQ4oChfX3B0aHJlYWRfY2hkaXIpLKA8YnI+CiugoKCgoKCgoHVuaXg6MzQ5oChfX3B0aHJlYWRfZmNoZGlyKTxicj4KKzM0NDU1OaCgR2FyYmFnZaBjb2xsZWN0aW9uoG9moHVudXNlZKBzZWdtZW50oG5hbWVzoGluoGFkZHJlc3Ogc3BhY2WgbWFuYWdlcjxicj4KKzM0NDU2MKCgRml4oHN0YWNroHRyYWNlc6BtaXNzaW5noHBlbnVsdGltYXRloGZyYW1loG9uoE9ToFg8YnI+CiszNDQ2MjGgoEZpeKBtZW1jaGVjay90ZXN0cy9lcnJfZGlzYWJsZTSgdGVzdKBvbqBPU6BYPGJyPgorMzQ0Njg2oKBGaXigc3VwcHJlc3Npb26gZm9yoHB0aHJlYWRfcndsb2NrX2luaXSgb26gT1OgWKAxMC4xMDxicj4KKzM0NDcwMqCgRml4oG1pc3NpbmegbGlib2JqY6BzdXBwcmVzc2lvbnOgb26gT1OgWKAxMC4xMDxicj4KK6CgoKCgoKCgPT2gMzQ0NTQzPGJyPgorMzQ0OTM2oKBGaXigdW5oYW5kbGVkoHN5c2NhbGw6oHVuaXg6NDczoChyZWFkbGlua2F0KaBvbqBPU6BYoDEwLjEwPGJyPgorMzQ0OTM5oKBGaXigbWVtY2hlY2svdGVzdHMveG1sMaBvbqBPU6BYoDEwLjEwPGJyPgorMzQ1MDE2oKBoZWxncmluZC90ZXN0cy9sb2NrZWRfdnNfdW5sb2NrZWQyoGlzoGZhaWxpbmegc29tZXRpbWVzPGJyPgorMzQ1MDc5oKBGaXigYnVpbGSgcHJvYmxlbXOgaW6gVkVYL3VzZWZ1bC90ZXN0X21haW4uYzxicj4KKzM0NTEyNqCgSW5jb3JyZWN0oGhhbmRsaW5noG9moFZJRElPQ19HX0FVRElPoGFuZKBHX0FVRE9VVDxicj4KKzM0NTE3N6CgYXJtNjQ6oHByZm2gKHJlZymgbm90oGltcGxlbWVudGVkPGJyPgorMzQ1MjE1oKBQZXJmb3JtYW5jZaBpbXByb3ZlbWVudHOgZm9yoHRoZaByZWdpc3RlcqBhbGxvY2F0b3I8YnI+CiszNDUyNDigoGFkZKBzdXBwb3J0oGZvcqBTb2xhcmlzoE9ToGluoHZhbGdyaW5kPGJyPgorMzQ1MzM4oKBUSU9DR1NFUklBTKBhbmSgVElPQ1NTRVJJQUygaW9jdGygc3VwcG9ydKBvbqBMaW51eDxicj4KKzM0NTM5NKCgRml4oG1lbWNoZWNrL3Rlc3RzL3N0cmNocqBvbqBPU6BYPGJyPgorMzQ1NjM3oKBGaXigbWVtY2hlY2svdGVzdHMvc2VuZG1zZ6BvbqBPU6BYPGJyPgorMzQ1Njk1oKBBZGSgUE9XRVJQQ6BzdXBwb3J0oGZvcqBBVF9EQ0FDSEVTSVpFoGFuZKBIV0NBUDI8YnI+CiszNDU4MjSgoEZpeKBhc3BhY2VtoHNlZ21lbnSgbWlzbWF0Y2g6oHNlZW6gd2l0aKBub25lL3Rlc3RzL2JpZ2NvZGU8YnI+CiszNDU4ODegoEZpeKBhbqBhc3NlcnRpb26gaW6gdGhloGFkZHJlc3Ogc3BhY2WgbWFuYWdlcjxicj4KKzM0NTkyOKCgYW1kNjQ6oGNhbGxzdGFja6Bvbmx5oGNvbnRhaW5zoGN1cnJlbnSgZnVuY3Rpb26gZm9yoHNtYWxsoHN0YWNrczxicj4KKzM0NTk4NKCgZGlzSW5zdHIoYXJtKTqgdW5oYW5kbGVkoGluc3RydWN0aW9uOqAweEVFMTkzRjFFPGJyPgorMzQ1OTg3oKBNSVBTNjQ6oEltcGxlbWVudKBjYXZpdW2gTEhYoGluc3RydWN0aW9uPGJyPgorMzQ2MDMxoKBNSVBTOqBJbXBsZW1lbnSgc3VwcG9ydKBmb3KgdGhloEN2bUNvdW50oHJlZ2lzdGVyoChyaHdyoCUwLKAzMSk8YnI+CiszNDYxODWgoEZpeKB0eXBvoHNhdmluZ6BhbHRpdmVjoHJlZ2lzdGVyoHYyNDxicj4KKzM0NjI2N6CgQ29tcGlsZXKgd2FybmluZ3OgZm9yoFBQQzY0oGNvZGWgb26gY2FsbKB0b6BMaWJWRVhfR3Vlc3RQUEM2NF9nZXRfWEVSKCk8YnI+CiugoKCgoKCgoGFuZKBMaWJWRVhfR3Vlc3RQUEM2NF9nZXRfQ1IoKTxicj4KKzM0NjI3MKCgUmVncmVzc2lvbqB0ZXN0c6Bub25lL3Rlc3RzL2ptX3ZlYy9pc2FfMl8wN6BhbmQ8YnI+CiugoKCgoKCgoG5vbmUvdGVzdHMvdGVzdF9pc2FfMl8wN19wYXJ0MqBoYXZloGZhaWx1cmVzoG9uoFBQQzY0oGxpdHRsZaBlbmRpYW48YnI+CiszNDYzMDegoGZ1c2WgZmlsZXN5c3RlbaBzeXNjYWxsoGRlYWRsb2Nrczxicj4KKzM0NjMyNKCgUFBDNjSgbWlzc2luZ6BzdXBwb3J0oGZvcqBsYmFyeCygbGhhcngsoHN0YmN4oGFuZKBzdGhjeKBpbnN0cnVjdGlvbnM8YnI+CiszNDY0MTGgoE1JUFM6oFN5c1Jlczo6X3ZhbEV4oGhhbmRsaW5noGlzoGluY29ycmVjdDxicj4KKzM0NjQxNqCgQWRkoHN1cHBvcnSgZm9yoExMX0lPQ19QQVRIMkZJRKBhbmSgTExfSU9DX0dFVFBBUkVOVKBMdXN0cmWgaW9jdGxzPGJyPgorMzQ2NDc0oKBQUEM2NKBQb3dlcqA4LKBzcHKgVEVYQVNSVaByZWdpc3RlcqBub3Sgc3VwcG9ydGVkPGJyPgorMzQ2NDg3oKBDb21waWxlcqBnZW5lcmF0ZXOgIm5vdGUioGFib3V0oGGgZnV0dXJloEFCSaBjaGFuZ2WgZm9yoFBQQzY0PGJyPgorMzQ2NTYyoKBNSVBTNjQ6oGx3bC9sd3KgaW5zdHJ1Y3Rpb25zoGFyZaBwZXJmb3JtaW5noDY0Yml0oGxvYWRzPGJyPgoroKCgoKCgoKBhbmSgY2F1c2luZ6BzcHVyaW91c6AiaW52YWxpZKByZWFkoG9moHNpemWgOCKgd2FybmluZ3M8YnI+CiszNDY4MDGgoEZpeKBsaW5roGVycm9yoG9uoE9ToFg6oF92Z01vZHVsZUxvY2FsX3NmX21heWJlX2V4dGVuZF9zdGFjazxicj4KKzM0NzE1MaCgRml4oHN1cHByZXNzaW9uoGZvcqBwdGhyZWFkX3J3bG9ja19pbml0oG9uoE9ToFigMTAuODxicj4KKzM0NzIzM6CgRml4oG1lbWNoZWNrL3Rlc3RzL3N0cmNocqBvbqBPU6BYoDEwLjEwoChIYXN3ZWxsKaA8YnI+CiszNDczMjKgoFBvd2VyoFBDoHJlZ3Jlc3Npb26gdGVzdKBjbGVhbnVwPGJyPgorMzQ3Mzc5oKB2YWxncmluZKAtLWxlYWstY2hlY2s9ZnVsbKBsZWFroGVycm9yc6Bmcm9toHN5c3RlbaBsaWJzoG9uoE9ToFigMTAuODxicj4KK6CgoKCgoKCgPT2gMjE3MjM2PGJyPgorMzQ3Mzg5oKB1bmhhbmRsZWSgc3lzY2FsbDqgMzczoChMaW51eKBBUk2gc3luY2ZzKTxicj4KKzM0NzY4NqCgUGF0Y2igc2V0oHRvoGNsZWFudXCgUFBDNjSgcmVndGVzdHM8YnI+CiszNDc5NzigoFJlbW92ZaBiYXNooGRlcGVuZGVuY2llc6B3aGVyZaBub3SgbmVlZGVkPGJyPgorMzQ3OTgyoKBPU6BYOqB1bmRlZmluZWSgc3ltYm9sc6Bmb3KgYXJjaGl0ZWN0dXJloHg4Nl82NDqgIl9nbG9iYWwioFsuLl08YnI+CiszNDc5ODigoE1lbWNoZWNrOqB0aGWgJ2ltcG9zc2libGUnoGhhcHBlbmVkOqB1bmV4cGVjdGVkoHNpemWgZm9yoEFkZHKgKE9TWC93aW5lKTxicj4KK6CgoKCgoKCgPT2gMzQ1OTI5PGJyPgorMzQ4MTAyoKBQYXRjaKB1cGRhdGluZ6B2NGwyoEFQSaBzdXBwb3J0PGJyPgorMzQ4MjQ3oKBhbWQ2NKBmcm9udKBlbmQ6oGpub6BqdW1wc6B3cm9uZ2x5oHdoZW6gb3ZlcmZsb3egaXOgbm90oHNldDxicj4KKzM0ODI2OaCgSW1wcm92ZaBtbWFwoE1BUF9IVUdFVExCoHN1cHBvcnQuPGJyPgorMzQ4MzM0oKAocHBjKaB2YWxncmluZKBkb2VzoG5vdKBzaW11bGF0ZaBkY2JmbKAtoHRoZW6gbXmgcHJvZ3JhbaB0ZXJtaW5hdGVzPGJyPgorMzQ4MzQ1oKBBc3NlcnRpb26gZmFpbHOgZm9yoG5lZ2F0aXZloGxpbmVubzxicj4KKzM0ODM3N6CgVW5zdXBwb3J0ZWSgQVJNoGluc3RydWN0aW9uOqB5aWVsZDxicj4KKzM0ODU2NaCgRml4oGRldGVjdGlvbqBvZqBjb21tYW5koGxpbmWgb3B0aW9uoGF2YWlsYWJpbGl0eaBmb3KgY2xhbmc8YnI+CiszNDg1NzSgoHZleKBhbWQ2NC0mZ3Q7SVKgcGNtcGlzdHJpoFNTRTQuMqB1bnN1cHBvcnRlZKAocGNtcGlzdHJpoCQweDE4KTxicj4KKzM0ODcyOKCgRml4oGJyb2tlbqBjaGVja6Bmb3KgVklESU9DX0dfRU5DX0lOREVYPGJyPgorMzQ4NzQ4oKBGaXigcmVkdW5kYW50oGNvbmRpdGlvbjxicj4KKzM0ODg5MKCgRml4oGNsYW5noHdhcm5pbmegYWJvdXSgdW5zdXBwb3J0ZWSgLS1wYXJhbaBpbmxpbmUtdW5pdC1ncm93dGg9OTAwPGJyPgorMzQ4OTQ5oKBCb2d1c6AiRVJST1I6oC0taWdub3JlLXJhbmdlczqgc3VzcGljaW91c2x5oGxhcmdloHJhbmdlIjxicj4KKzM0OTAzNKCgQWRkoEx1c3RyZaBpb2N0bHOgTExfSU9DX0dST1VQX0xPQ0ugYW5koExMX0lPQ19HUk9VUF9VTkxPQ0s8YnI+CiszNDkwODagoEZpeKBVTktOT1dOoHRhc2ugbWVzc2FnZaBbaWSgMzQwNiygdG+gbWFjaF90YXNrX3NlbGYoKSygWy4uXTxicj4KKzM0OTA4N6CgRml4oFVOS05PV06gdGFza6BtZXNzYWdloFtpZKAzNDEwLKB0b6BtYWNoX3Rhc2tfc2VsZigpLKBbLi5dPGJyPgorMzQ5NjI2oKBJbXBsZW1lbnRlZKBhZGRpdGlvbmFsoFhlbqBoeXBlcmNhbGxzPGJyPgorMzQ5NzY5oKBDbGFuZy9vc3g6oGxkOqB3YXJuaW5nOqAtcmVhZF9vbmx5X3JlbG9jc6BjYW5ub3SgYmWgdXNlZKB3aXRooHg4Nl82NDxicj4KKzM0OTc5MKCgQ2xlYW6gdXCgb2agdGhloGhhcmR3YXJloGNhcGFiaWxpdHmgY2hlY2tpbmegdXRpbGl0aWVzLjxicj4KKzM0OTgyOKCgbWVtY3B5oGludGVyY2VwdHOgbWVtbW92ZaBjYXVzaW5noHNyYy9kc3Sgb3ZlcmxhcKBlcnJvcqAocHBjNjSgbGQuc28pPGJyPgorMzQ5ODc0oKBGaXigdHlwb3OgaW6gc291cmNloGNvZGU8YnI+CiszNDk4NzmgoG1lbWNoZWNrOqBhZGSgaGFuZHdyaXR0ZW6gYXNzZW1ibHmgZm9yoGhlbHBlcmNfTE9BRFYqPGJyPgorMzQ5OTQxoKBkaV9ub3RpZnlfbW1hcKBtaWdodKBjcmVhdGWgd3Jvbmegc3RhcnQvc2l6ZaBEZWJ1Z0luZm9NYXBwaW5nPGJyPgorMzUwMDYyoKB2ZXigeDg2LSZndDtJUjqgMHg2NqAweEagMHgzQaAweEKgKFJPVU5EU0QpoG9uoE9ToFg8YnI+CiszNTAyMDKgoEFkZKBsaW1pdGVkoHBhcmFtoHRvoCdtb25pdG9yoGJsb2NrX2xpc3QnPGJyPgorMzUwMjkwoKBzMzkweDqgU3VwcG9ydKBpbnN0cnVjdGlvbnOgZml4YnIoYSk8YnI+CiszNTAzNTmgoG1lbWNoZWNrL3Rlc3RzL3g4Ni9meHNhdmWgaGFuZ3OgaW5kZWZpbmV0ZWx5oG9uoE9ToFg8YnI+CiszNTA4MDmgoEZpeKBub25lL3Rlc3RzL2FzeW5jLXNpZ3OgZm9yoFNvbGFyaXM8YnI+CiszNTA4MTGgoFJlbW92ZaByZWZlcmVuY2WgdG+gLS1kYi1hdHRhY2igd2hpY2igaGFzoGJlZW6gcmVtb3ZlZC48YnI+CiszNTA4MTOgoE1lbWNoZWNrL3g4NjqgZW5hYmxloGhhbmR3cml0dGVuoGFzc2VtYmx5oGhlbHBlcnOgZm9yoHg4Ni9Tb2xhcmlzoHRvbzxicj4KKzM1MDg1NKCgaGFyZC10by11bmRlcnN0YW5koGNvZGWgaW6gVkdfKGxvYWRfRUxGKSgpPGJyPgorMzUxMTQwoKBhcm02NKBzeXNjYWxsc6BzZXR1aWSgKDE0NimgYW5koHNldHJlc2dpZKAoMTQ5KaBub3SgaW1wbGVtZW50ZWQ8YnI+CiszNTEzODagoFNvbGFyaXM6oENhbm5vdKBydW6gbGQuc28uMaB1bmRlcqBWYWxncmluZDxicj4KKzM1MTQ3NKCgRml4oFZHXyhpc2Vxc2lnc2V0KaBhc6BvYnZpb3VzPGJyPgorMzUxNTMxoKBUeXBvoGluoC9pbmNsdWRlL3ZraS92a2kteGVuLXBoeXNkZXYuaKBoZWFkZXKgZ3VhcmQ8YnI+CiszNTE3NTagoEludGVyY2VwdKBwbGF0Zm9ybV9tZW1jaHIkVkFSSUFOVCRIYXN3ZWxsoG9uoE9ToFg8YnI+CiszNTE4NTigoGxkc29leGVjoHN1cHBvcnSgb26gU29sYXJpczxicj4KKzM1MTg3M6CgTmV3ZXKgZ2NjoGRvZXNuJ3SgYWxsb3egX19idWlsdGluX3RhYm9ydGRjW2ldoGluoHBwYzMyoG1vZGU8YnI+CiszNTIxMzCgoGhlbGdyaW5koHJlcG9ydHOgZmFsc2WgcmFjZXOgZm9yoHByaW50ZnOgdXNpbmegbWVtcGNweaBvbqBGSUxFKqBzdGF0ZTxicj4KKzM1MjI4NKCgczM5MDqgQ29uZGl0aW9uYWyganVtcKBkZXBlbmRzoG9uoHVuaW5pdGlhbGlzZWSgdmFsdWUocymgaW6gdmZwcmludGagPGJyPgorMzUyMzIwoKBhcm02NKBjcmFzaKBvbqBub25lL3Rlc3RzL25lc3RlZGZzPGJyPgorMzUyNzY1oKBWYml0oHRlc3SgZmFpbHOgb26gUG93ZXKgNjxicj4KKzM1Mjc2OKCgVGhloG1iYXKgaW5zdHJ1Y3Rpb26gaXOgbWlzc2luZ6Bmcm9toHRoZaBQb3dlcqBQQ6BzdXBwb3J0PGJyPgorMzUyNzY5oKBQb3dlcqBQQ6Bwcm9ncmFtoHByaW9yaXR5oHJlZ2lzdGVyoChQUFIpoGlzoG5vdKBzdXBwb3J0ZWQ8YnI+CituLWktYnqgoFByb3ZpZGWgaW1wbGVtZW50YXRpb25zoG9moGNlcnRhaW6gY29tcGlsZXKgYnVpbHRpbnOgdG+gc3VwcG9ydDxicj4KK6CgoKCgoKCgY29tcGlsZXJzoHRoYXSgbWF5oG5vdKBwcm92aWRloHRob3NlPGJyPgorbi1pLWJ6oKBPbGSgU1RBQlOgY29kZaBpc6BzdGlsbKBiZWluZ6Bjb21waWxlZCygYnV0oG5ldmVyoHVzZWQuoFJlbW92ZaBpdC48YnI+CituLWktYnqgoEZpeKBjb21waWxhdGlvbqBvbqBkaXN0cm9zoHdpdGigZ2xpYmOgJmx0O6AyLjU8YnI+CituLWktYnqgoCh2ZXigMzA5OCmgQXZvaWSgZ2VuZXJhdGlvbqBvZqBOZW9uoGluc25zoG9uoG5vbi1OZW9uoGhvc3RzPGJyPgorbi1pLWJ6oKBFbmFibGWgcnRfc2lncGVuZGluZ6BzeXNjYWxsoG9uoHBwYzY0oGxpbnV4Ljxicj4KK24taS1ieqCgbXJlbWFwoGRpZKBub3Sgd29ya6Bwcm9wZXJseaBvbqBzaGFyZWSgbWVtb3J5PGJyPgorbi1pLWJ6oKBGaXigaW5jb3JyZWN0oHNpemVvZqBleHByZXNzaW9uoGluoHN5c3dyYXAteGVuLmOgcmVwb3J0ZWSgYnmgQ292ZXJpdHk8YnI+CituLWktYnqgoEluoFZBTEdSSU5EX1BSSU5URqB3cml0ZaBvdXSgdGhyZWFkoG5hbWUsoGlmoGFueSygdG+geG1sPGJyPgorPGJyPgorKDMuMTEuMC5URVNUMTqgoDigU2VwdGVtYmVyoDIwMTUsoHZleKByMzE4NyygdmFsZ3JpbmSgcjE1NjQ2KTxicj4KKygzLjExLjAuVEVTVDI6oDIxoFNlcHRlbWJlcqAyMDE1LKB2ZXigcjMxOTMsoHZhbGdyaW5koHIxNTY2Nyk8YnI+CisoMy4xMS4wOqCgoKCgoKAyMqBTZXB0ZW1iZXKgMjAxNSygdmV4oHIzMTk1LKB2YWxncmluZKByMTU2NzQpPGJyPgorPGJyPgorPGJyPgorPGJyPgorUmVsZWFzZaAzLjEwLjGgKDI1oE5vdmVtYmVyoDIwMTQpPGJyPgorfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+PGJyPgorMy4xMC4xoGlzoGGgYnVnoGZpeKByZWxlYXNlLqCgSXSgZml4ZXOgdmFyaW91c6BidWdzoHJlcG9ydGVkoGluoDMuMTAuMDxicj4KK2FuZKBiYWNrcG9ydHOgZml4ZXOgZm9yoGFsbKByZXBvcnRlZKBtaXNzaW5noEFBcmNoNjSgQVJNdjigaW5zdHJ1Y3Rpb25zPGJyPgorYW5koHN5c2NhbGxzoGZyb22gdGhloHRydW5rLqCgSWageW91oHBhY2thZ2Wgb3KgZGVsaXZlcqAzLjEwLjCgZm9yoG90aGVyczxicj4KK3RvoHVzZSygeW91oG1pZ2h0oHdhbnSgdG+gY29uc2lkZXKgdXBncmFkaW5noHRvoDMuMTAuMaBpbnN0ZWFkLjxicj4KKzxicj4KK1RoZaBmb2xsb3dpbmegYnVnc6BoYXZloGJlZW6gZml4ZWSgb3KgcmVzb2x2ZWQuoKBOb3RloHRoYXSgIm4taS1ieiI8YnI+CitzdGFuZHOgZm9yoCJub3SgaW6gYnVnemlsbGEioC0toHRoYXSgaXMsoGGgYnVnoHRoYXSgd2FzoHJlcG9ydGVkoHRvoHVzPGJyPgorYnV0oG5ldmVyoGdvdKBhoGJ1Z3ppbGxhoGVudHJ5LqCgV2WgZW5jb3VyYWdloHlvdaB0b6BmaWxloGJ1Z3OgaW48YnI+CitidWd6aWxsYaAoaHR0cHM6Ly9idWdzLmtkZS5vcmcvZW50ZXJfYnVnLmNnaT9wcm9kdWN0PXZhbGdyaW5kKaByYXRoZXI8YnI+Cit0aGFuoG1haWxpbmegdGhloGRldmVsb3BlcnOgKG9yoG1haWxpbmegbGlzdHMpoGRpcmVjdGx5oC0toGJ1Z3OgdGhhdDxicj4KK2FyZaBub3SgZW50ZXJlZKBpbnRvoGJ1Z3ppbGxhoHRlbmSgdG+gZ2V0oGZvcmdvdHRlbqBhYm91dKBvcqBpZ25vcmVkLjxicj4KKzxicj4KK1RvoHNlZaBkZXRhaWxzoG9moGGgZ2l2ZW6gYnVnLKB2aXNpdDxicj4KK6CgaHR0cHM6Ly9idWdzLmtkZS5vcmcvc2hvd19idWcuY2dpP2lkPVhYWFhYWDxicj4KK3doZXJloFhYWFhYWKBpc6B0aGWgYnVnoG51bWJlcqBhc6BsaXN0ZWSgYmVsb3cuPGJyPgorPGJyPgorMzM1NDQwoKBhcm02NDqgbGQxoChzaW5nbGWgc3RydWN0dXJlKaBpc6Bub3SgaW1wbGVtZW50ZWQ8YnI+CiszMzU3MTOgoGFybTY0OqB1bmhhbmRlZKBpbnN0cnVjdGlvbjqgcHJmbaAoaW1tZWRpYXRlKTxicj4KKzMzOTAyMKCgcHBjNjQ6oG1lbWNoZWNrL3Rlc3RzL3BwYzY0L3Bvd2VyX0lTQTJfMDWgZmFpbGluZ6BpbqBuaWdodGx5oGJ1aWxkPGJyPgorMzM5MTgyoKBwcGM2NDqgQXZTcGxhdKBvdWdodKB0b6Bsb2FkoGRlc3RpbmF0aW9uoHZlY3RvcqByZWdpc3RlcqB3aXRooFsuLl08YnI+CiszMzkzMzagoFBQQzY0oHN0b3JloHF1YWSgaW5zdHJ1Y3Rpb26gKHN0cSmgaXOgbm90oHN1cHBvc2VkoHRvoGNoYW5nZaBbLi5dPGJyPgorMzM5NDMzoKBwcGM2NKBseHZ3NHigaW5zdHJ1Y3Rpb26gdXNlc6Bmb3VyoDMyLWJ5dGWgbG9hZHM8YnI+CiszMzk2NDWgoFVzZaBjb3JyZWN0oHRhZ6BuYW1lc6BpbqBzeXNfZ2V0ZGVudHMvNjSgd3JhcHBlcnM8YnI+CiszMzk3MDagoEZpeKBmYWxzZaBwb3NpdGl2ZaBmb3KgaW9jdGwoVElPQ1NJRymgb26gbGludXg8YnI+CiszMzk3MjGgoGFzc2VydGlvbqAnY2hlY2tfc2libGluZ6A9PaBzaWJsaW5nJ6BmYWlsZWSgaW6gcmVhZGR3YXJmMy5joC4uLjxicj4KKzMzOTg1M6CgYXJtNjSgdGltZXOgc3lzY2FsbKB1bmtub3duPGJyPgorMzM5ODU1oKBhcm02NKB1bmhhbmRsZWSgZ2V0c2lkL3NldHNpZKBzeXNjYWxsczxicj4KKzMzOTg1OKCgYXJtNjSgZG1ioHN5oG5vdKBpbXBsZW1lbnRlZDxicj4KKzMzOTkyNqCgVW5oYW5kbGVkoGluc3RydWN0aW9uoDB4MUU2NzQwMDGgKGZyaW50eCmgb26gYWFybTY0PGJyPgorMzM5OTI3oKBVbmhhbmRsZWSgaW5zdHJ1Y3Rpb26gMHg5RTcxMDBDNqAoZmN2dG11KaBvbqBhYXJjaDY0PGJyPgorMzM5OTM4oKBkaXNJbnN0cihhcm02NCk6oHVuaGFuZGxlZKBpbnN0cnVjdGlvbqAweDRGODAxMEE0oChmbWxhKTxicj4KK6CgoKCgoKCgPT2gMzM5OTUwPGJyPgorMzM5OTQwoKBhcm02NDqgdW5oYW5kbGVkoHN5c2NhbGw6oDgzoChzeXNfZmRhdGFzeW5jKaAroHBhdGNoPGJyPgorMzQwMDMzoKBhcm02NDqgdW5oYW5kbGVkoGluc26gZG1ioGlzaGxkoGFuZKBzb21loG90aGVyoGlzYi1kbWItZHNioHZhcmlhbnRzPGJyPgorMzQwMDI4oKB1bmhhbmRsZWSgc3lzY2FsbHOgZm9yoGFybTY0oChtc3luYyygcHJlYWQ2NCygc2V0cmV1aWSgYW5koHNldHJlZ2lkKTxicj4KKzM0MDAzNqCgYXJtNjQ6oFVuaGFuZGxlZKBpbnN0cnVjdGlvbqBsZDSgKG11bHRpcGxloHN0cnVjdHVyZXMsoG5voG9mZnNldCk8YnI+CiszNDAyMzagoGFybTY0OqB1bmhhbmRsZWSgc3lzY2FsbHM6oG1rbm9kYXQsoGZjaGRpciygY2hyb290LKBmY2hvd25hdDxicj4KKzM0MDUwOaCgYXJtNjQ6oHVuaGFuZGxlZKBpbnN0cnVjdGlvbqBmY3Z0YXM8YnI+CiszNDA2MzCgoGFybTY0OqBmY2htb2SgKDUyKaBhbmSgZmNob3duoCg1NSmgc3lzY2FsbHOgbm90oHJlY29nbml6ZWQ8YnI+CiszNDA2MzKgoGFybTY0OqB1bmhhbmRsZWSgaW5zdHJ1Y3Rpb26gZmN2dGFzPGJyPgorMzQwNzIyoKBSZXNvbHZloCJVTktOT1dOoGF0dHJsaXN0oGZsYWdzoDA6MHgxMDAwMDAwMCI8YnI+CiszNDA3MjWgoEFWWDI6oEluY29ycmVjdKBkZWNvZGluZ6BvZqB2cGJyb2FkY2FzdHtiLHd9oHJlZyxyZWegZm9ybXM8YnI+CiszNDA3ODigoHdhcm5pbmc6oHVuaGFuZGxlZKBzeXNjYWxsOqAzMTigKGdldHJhbmRvbSk8YnI+CiszNDA4MDegoGRpc0luc3RyKGFybSk6oHVuaGFuZGxlZKBpbnN0cnVjdGlvbjqgMHhFRTk4OUIyMDxicj4KKzM0MDg1NqCgZGlzSW5zdHIoYXJtNjQpOqB1bmhhbmRsZWSgaW5zdHJ1Y3Rpb26gMHgxRTYzNEM0NaAoZmNzZWwpPGJyPgorMzQwOTIyoKBhcm02NDqgdW5oYW5kbGVkoGdldGdyb3Vwcy9zZXRncm91cHOgc3lzY2FsbHM8YnI+CiszNTAyNTGgoEZpeKB0eXBvoGluoFZFWKB1dGlsaXR5oHByb2dyYW2gKHRlc3RfbWFpbi5jKS48YnI+CiszNTA0MDegoGFybTY0OqB1bmhhbmRsZWSgaW5zdHJ1Y3Rpb26gdWN2dGagKHZlY3RvciygaW50ZWdlcik8YnI+CiszNTA4MDmgoG5vbmUvdGVzdHMvYXN5bmMtc2lnc6BicmVha3Ogd2hlbqBydW6gdW5kZXKgY3JvbqBvbqBTb2xhcmlzPGJyPgorMzUwODExoKB1cGRhdGWgUkVBRE1FLnNvbGFyaXOgYWZ0ZXKgcjE1NDQ1PGJyPgorMzUwODEzoKBVc2WgaGFuZHdyaXR0ZW6gbWVtY2hlY2ugYXNzZW1ibHmgaGVscGVyc6BvbqB4ODYvU29sYXJpc6BbLi5dPGJyPgorMzUwODU0oKBzdHJhbmdloGNvZGWgaW6gVkdfKGxvYWRfRUxGKSgpPGJyPgorMzUxMTQwoKBhcm02NKBzeXNjYWxsc6BzZXR1aWSgKDE0NimgYW5koHNldHJlc2dpZKAoMTQ5KaBub3SgaW1wbGVtZW50ZWQ8YnI+CituLWktYnqgoERSRKBhbmSgSGVsZ3JpbmQ6oEhhbmRsZaBJbWJlX0NhbmNlbFJlc2VydmF0aW9uoChjbHJleKBvbqBBUk0pPGJyPgorbi1pLWJ6oKBBZGSgbWlzc2luZ6BdXaB0b6B0ZXJtaW5hdGWgQ0RBVEEuPGJyPgorbi1pLWJ6oKBHbGliY6B2ZXJzaW9uc6BwcmlvcqB0b6AyLjWgZG+gbm90oGRlZmluZaBQVFJBQ0VfR0VUU0lHSU5GTzxicj4KK24taS1ieqCgRW5hYmxloHN5c19mYWR2aXNlNjRfNjSgb26gYXJtMzIuPGJyPgorbi1pLWJ6oKBBZGSgdGVzdKBjYXNlc6Bmb3KgYWxsoHJlbWFpbmluZ6BBQXJjaDY0oFNJTUQsoEZQoGFuZKBtZW1vcnmgaW5zbnMuPGJyPgorbi1pLWJ6oKBBZGSgdGVzdKBjYXNlc6Bmb3KgYWxsoGtub3duoGFybTY0oGxvYWQvc3RvcmWgaW5zdHJ1Y3Rpb25zLjxicj4KK24taS1ieqCgUFJFKHN5c19vcGVuYXQpOqB3aGVuoGNoZWNraW5noHdoZXRoZXKgQVJHMaA9PaBWS0lfQVRfRkRDV0SgWy4uXTxicj4KK24taS1ieqCgQWRkoGRldGVjdGlvbqBvZqBvbGSgcHBjMzKgbWFnaWOgaW5zdHJ1Y3Rpb25zoGZyb22gYnVnoDI3ODgwOC48YnI+CituLWktYnqgoGV4cC1kaGF0OqBJbXBsZW1lbnSgbWlzc2luZ6BmdW5jdGlvbqAiZGhfbWFsbG9jX3VzYWJsZV9zaXplIi48YnI+CituLWktYnqgoGFybTY0OqBJbXBsZW1lbnSgImZjdnRwdaB3LKBzIi48YnI+CituLWktYnqgoGFybTY0OqBpbXBsZW1lbnSgQUREUKBhbmSgdmFyaW91c6BvdGhlcnM8YnI+CituLWktYnqgoGFybTY0OqBJbXBsZW1lbnSge1MsVX1DVlRGoChzY2FsYXIsoGZpeGVkcHQpLjxicj4KK24taS1ieqCgYXJtNjQ6oGVuYWJsZaBGQ1ZUe0EsTn1ToFgsUy48YnI+Cis8YnI+CisoMy4xMC4xOqAyNaBOb3ZlbWJlcqAyMDE0LKB2ZXigcjMwMjYsoHZhbGdyaW5koHIxNDc4NSk8YnI+Cis8YnI+Cis8YnI+Cis8YnI+CitSZWxlYXNloDMuMTAuMKAoMTCgU2VwdGVtYmVyoDIwMTQpPGJyPgorfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fjxicj4KKzxicj4KKzMuMTAuMKBpc6BhoGZlYXR1cmWgcmVsZWFzZaB3aXRooG1hbnmgaW1wcm92ZW1lbnRzoGFuZKB0aGWgdXN1YWw8YnI+Citjb2xsZWN0aW9uoG9moGJ1Z6BmaXhlcy48YnI+Cis8YnI+CitUaGlzoHJlbGVhc2Wgc3VwcG9ydHOgWDg2L0xpbnV4LKBBTUQ2NC9MaW51eCygQVJNMzIvTGludXgsoEFSTTY0L0xpbnV4LDxicj4KK1BQQzMyL0xpbnV4LKBQUEM2NEJFL0xpbnV4LKBQUEM2NExFL0xpbnV4LKBTMzkwWC9MaW51eCygTUlQUzMyL0xpbnV4LDxicj4KK01JUFM2NC9MaW51eCygQVJNL0FuZHJvaWQsoE1JUFMzMi9BbmRyb2lkLKBYODYvQW5kcm9pZCygWDg2L01hY09TWKAxMC45PGJyPgorYW5koEFNRDY0L01hY09TWKAxMC45LqCgU3VwcG9ydKBmb3KgTWFjT1NYoDEwLjigYW5koDEwLjmgaXM8YnI+CitzaWduaWZpY2FudGx5oGltcHJvdmVkoHJlbGF0aXZloHRvoHRoZaAzLjkuMKByZWxlYXNlLjxicj4KKzxicj4KKyqgPT09PT09PT09PT09PT09PT09oFBMQVRGT1JNoENIQU5HRVOgPT09PT09PT09PT09PT09PT08YnI+Cis8YnI+CisqoFN1cHBvcnSgZm9yoHRoZaA2NC1iaXSgQVJNoEFyY2hpdGVjdHVyZaAoQUFyY2g2NKBBUk12OCkuoKBUaGlzoHBvcnQ8YnI+CiugoGlzoG1vc3RseaBjb21wbGV0ZSygYW5koGlzoHVzYWJsZSygYnV0oHNvbWWgU0lNRKBpbnN0cnVjdGlvbnOgYXJloGFzPGJyPgoroKB5ZXSgdW5zdXBwb3J0ZWQuPGJyPgorPGJyPgorKqBTdXBwb3J0oGZvcqBsaXR0bGUtZW5kaWFuoHZhcmlhbnSgb2agdGhloDY0LWJpdKBQT1dFUqBhcmNoaXRlY3R1cmUuPGJyPgorPGJyPgorKqBTdXBwb3J0oGZvcqBBbmRyb2lkoG9uoE1JUFMzMi48YnI+Cis8YnI+CisqoFN1cHBvcnSgZm9yoDY0Yml0oEZQVaBvbqBNSVBTMzKgcGxhdGZvcm1zLjxicj4KKzxicj4KKyqgQm90aKAzMi2gYW5koDY0LWJpdKBleGVjdXRhYmxlc6BhcmWgc3VwcG9ydGVkoG9uoE1hY09TWKAxMC44oGFuZKAxMC45Ljxicj4KKzxicj4KKyqgQ29uZmlndXJhdGlvbqBmb3KgYW5koHJ1bm5pbmegb26gQW5kcm9pZKB0YXJnZXRzoGhhc6BjaGFuZ2VkLjxicj4KK6CgU2VloFJFQURNRS5hbmRyb2lkoGluoHRoZaBzb3VyY2WgdHJlZaBmb3KgZGV0YWlscy48YnI+Cis8YnI+CisqoD09PT09PT09PT09PT09PT09PaBERVBSRUNBVEVEoEZFQVRVUkVToD09PT09PT09PT09PT09PT09PGJyPgorPGJyPgorKqAtLWRiLWF0dGFjaKBpc6Bub3egZGVwcmVjYXRlZKBhbmSgd2lsbKBiZaByZW1vdmVkoGluoHRoZaBuZXh0PGJyPgoroKB2YWxncmluZKBmZWF0dXJloHJlbGVhc2UuoKBUaGWgYnVpbHQtaW6gR0RCoHNlcnZlcqBjYXBhYmlsaXRpZXOgYXJlPGJyPgoroKBzdXBlcmlvcqBhbmSgc2hvdWxkoGJloHVzZWSgaW5zdGVhZC6gTGVhcm6gbW9yZaBoZXJlOjxicj4KK6CgaHR0cDovL3ZhbGdyaW5kLm9yZy9kb2NzL21hbnVhbC9tYW51YWwtY29yZS1hZHYuaHRtbCNtYW51YWwtY29yZS1hZHYuZ2Ric2VydmVyPGJyPgorPGJyPgorKqA9PT09PT09PT09PT09PT09PT09PaBUT09MoENIQU5HRVOgPT09PT09PT09PT09PT09PT09PT08YnI+Cis8YnI+CisqoE1lbWNoZWNrOjxicj4KKzxicj4KK6CgLaBDbGllbnSgY29kZaBjYW6gbm93oHNlbGVjdGl2ZWx5oGRpc2FibGWgYW5koHJlLWVuYWJsZaByZXBvcnRpbmegb2Y8YnI+CiugoKCgaW52YWxpZKBhZGRyZXNzoGVycm9yc6BpbqBzcGVjaWZpY6ByYW5nZXOgdXNpbmegdGhloG5ld6BjbGllbnQ8YnI+CiugoKCgcmVxdWVzdHOgVkFMR1JJTkRfRElTQUJMRV9BRERSX0VSUk9SX1JFUE9SVElOR19JTl9SQU5HRaBhbmQ8YnI+CiugoKCgVkFMR1JJTkRfRU5BQkxFX0FERFJfRVJST1JfUkVQT1JUSU5HX0lOX1JBTkdFLjxicj4KKzxicj4KK6CgLaBMZWFroGNoZWNrZXI6oHRoZXJloGlzoGGgbmV3oGxlYWugY2hlY2ugaGV1cmlzdGljoGNhbGxlZDxicj4KK6CgoKAibGVuZ3RoNjQiLqCgVGhpc6Bpc6B1c2VkoHRvoGRldGVjdKBpbnRlcmlvcqBwb2ludGVyc6Bwb2ludGluZ6A4PGJyPgoroKCgoGJ5dGVzoGluc2lkZaBhoGJsb2NrLKBvbqB0aGWgYXNzdW1wdGlvbqB0aGF0oHRoZaBmaXJzdKA4oGJ5dGVzPGJyPgoroKCgoGhvbGRzoHRoZaB2YWx1ZaAiYmxvY2ugc2l6ZaAtoDgiLqCgVGhpc6Bpc6B1c2VkoGJ5PGJyPgoroKCgoHNxbGl0ZTNNZW1NYWxsb2MsoGZvcqBleGFtcGxlLjxicj4KKzxicj4KK6CgLaBDaGVja2luZ6BvZqBzeXN0ZW2gY2FsbKBwYXJhbWV0ZXJzOqBpZqBhoHN5c2NhbGygcGFyYW1ldGVyPGJyPgoroKCgoChlLmcuoGJpbmSgc3RydWN0oHNvY2thZGRyLKBzZW5kbXNnoHN0cnVjdKBtc2doZHIsoC4uLimgaGFzPGJyPgoroKCgoHNldmVyYWygZmllbGRzoG5vdKBpbml0aWFsaXNlZCygYW6gZXJyb3KgaXOgbm93oHJlcG9ydGVkoGZvcqBlYWNoPGJyPgoroKCgoGZpZWxkLqBQcmV2aW91c2x5LKBhbqBlcnJvcqB3YXOgcmVwb3J0ZWSgb25seaBmb3KgdGhloGZpcnN0PGJyPgoroKCgoHVuaW5pdGlhbGlzZWSgZmllbGQuPGJyPgorPGJyPgoroKAtoE1pc21hdGNoZWSgYWxsb2MvZnJlZaBjaGVja2luZzqgYaBuZXegZmxhZzxicj4KK6CgoKAtLXNob3ctbWlzbWF0Y2hlZC1mcmVlcz1ub3x5ZXOgW3llc12gbWFrZXOgaXSgcG9zc2libGWgdG+gdHVybqBvZmY8YnI+CiugoKCgc3VjaKBjaGVja3OgaWagbmVjZXNzYXJ5Ljxicj4KKzxicj4KKyqgSGVsZ3JpbmQ6PGJyPgorPGJyPgoroKAtoEltcHJvdmVtZW50c6B0b6BlcnJvcqBtZXNzYWdlczo8YnI+Cis8YnI+CiugoKCgb6BSYWNloGNvbmRpdGlvbqBlcnJvcqBtZXNzYWdloGludm9sdmluZ6BoZWFwoGFsbG9jYXRlZKBibG9ja3OgYWxzbzxicj4KK6CgoKCgoHNob3egdGhloHRocmVhZKBudW1iZXKgdGhhdKBhbGxvY2F0ZWSgdGhloHJhY2VkLW9uoGJsb2NrLjxicj4KKzxicj4KK6CgoKBvoEFsbKBsb2Nrc6ByZWZlcmVuY2VkoGJ5oGFuoGVycm9yoG1lc3NhZ2WgYXJloG5vd6Bhbm5vdW5jZWQuPGJyPgoroKCgoKCgUHJldmlvdXNseSygc29tZaBlcnJvcqBtZXNzYWdlc6Bvbmx5oHNob3dlZKB0aGWgbG9ja6BhZGRyZXNzZXMuPGJyPgorPGJyPgoroKCgoG+gVGhloG1lc3NhZ2WgaW5kaWNhdGluZ6B3aGVyZaBhoGxvY2ugd2FzoGZpcnN0oG9ic2VydmVkoG5vd6BhbHNvPGJyPgoroKCgoKCgZGVzY3JpYmVzoHRoZaBhZGRyZXNzL2xvY2F0aW9uoG9moHRoZaBsb2NrLjxicj4KKzxicj4KK6CgLaBIZWxncmluZKBub3egdW5kZXJzdGFuZHOgdGhloEFkYaB0YXNroHRlcm1pbmF0aW9uoHJ1bGVzoGFuZDxicj4KK6CgoKBjcmVhdGVzoGGgaGFwcGVucy1iZWZvcmWgcmVsYXRpb25zaGlwoGJldHdlZW6gYaB0ZXJtaW5hdGVkoHRhc2s8YnI+CiugoKCgYW5koGl0c6BtYXN0ZXIuoKBUaGlzoGF2b2lkc6Bzb21loGZhbHNloHBvc2l0aXZlc6BhbmSgYXZvaWRzoGGgYmlnPGJyPgoroKCgoG1lbW9yeaBsZWFroHdoZW6gYaBsb3Sgb2agQWRhoHRhc2tzoGFyZaBjcmVhdGVkoGFuZKB0ZXJtaW5hdGVkLjxicj4KK6CgoKBUaGWgaW50ZXJjZXB0aW9uc6BhcmWgb25seaBhY3RpdmF0ZWSgd2l0aKBmb3J0aGNvbWluZ6ByZWxlYXNlc6BvZjxicj4KK6CgoKBnbmF0cHJvoCZndDs9oDcuMy4wdy0yMDE0MDYxMaBhbmSgZ2NjoCZndDs9oDUuMC48YnI+Cis8YnI+CiugoC2gQaBuZXegR0RCoHNlcnZlcqBtb25pdG9yoGNvbW1hbmSgImluZm+gbG9ja3MioGdpdmluZ6B0aGWgbGlzdKBvZjxicj4KK6CgoKBsb2NrcyygdGhlaXKgbG9jYXRpb24soGFuZKB0aGVpcqBzdGF0dXMuPGJyPgorPGJyPgorKqBDYWxsZ3JpbmQ6PGJyPgorPGJyPgoroKAtoGNhbGxncmluZF9jb250cm9soG5vd6BzdXBwb3J0c6B0aGWgLS12Z2RiLXByZWZpeKBhcmd1bWVudCw8YnI+CiugoKCgd2hpY2igaXOgbmVlZGVkoGlmoHZhbGdyaW5koHdhc6BzdGFydGVkoHdpdGigdGhpc6BzYW1loGFyZ3VtZW50Ljxicj4KKzxicj4KKyqgPT09PT09PT09PT09PT09PT09PT2gT1RIRVKgQ0hBTkdFU6A9PT09PT09PT09PT09PT09PT09PTxicj4KKzxicj4KKyqgVW53aW5kaW5noHRocm91Z2igaW5saW5lZKBmdW5jdGlvbqBjYWxscy6goFN0YWNroHVud2luZGluZ6BjYW6gbm93PGJyPgoroKBtYWtloHVzZaBvZqBEd2FyZjOgaW5saW5lZC11bndpbmSgaW5mb3JtYXRpb26gaWagaXSgaXOgYXZhaWxhYmxlLjxicj4KK6CgVGhloHByYWN0aWNhbKBlZmZlY3SgaXOgdGhhdKBpbmxpbmVkoGNhbGxzoGJlY29tZaB2aXNpYmxloGluoHN0YWNrPGJyPgoroKB0cmFjZXMuoKBUaGWgc3VwcHJlc3Npb26gbWF0Y2hpbmegbWFjaGluZXJ5oGhhc6BiZWVuoGFkanVzdGVkPGJyPgoroKBhY2NvcmRpbmdseS6goFRoaXOgaXOgY29udHJvbGxlZKBieaB0aGWgbmV3oG9wdGlvbjxicj4KK6CgLS1yZWFkLWlubGluZS1pbmZvPXllc3xuby6goEN1cnJlbnRseaB0aGlzoGlzoGVuYWJsZWSgYnmgZGVmYXVsdDxicj4KK6Cgb25seaBvbqBMaW51eKBhbmSgQW5kcm9pZKB0YXJnZXRzoGFuZKBvbmx5oGZvcqB0aGWgdG9vbHOgTWVtY2hlY2ssPGJyPgoroKBIZWxncmluZKBhbmSgRFJELjxicj4KKzxicj4KKyqgVmFsZ3JpbmSgY2FuoG5vd6ByZWFkoEVYSURYoHVud2luZKBpbmZvcm1hdGlvbqBvbqAzMi1iaXSgQVJNPGJyPgoroKB0YXJnZXRzLqCgSWagYW6gb2JqZWN0oGNvbnRhaW5zoGJvdGigQ0ZJoGFuZKBFWElEWKB1bndpbmQ8YnI+CiugoGluZm9ybWF0aW9uLKBWYWxncmluZKB3aWxsoHByZWZlcqB0aGWgQ0ZJoG92ZXKgdGhloEVYSURYLqCgVGhpczxicj4KK6CgZmFjaWxpdGF0ZXOgdW53aW5kaW5noHRocm91Z2igc3lzdGVtoGxpYnJhcmllc6BvbqBhcm0tYW5kcm9pZDxicj4KK6CgdGFyZ2V0cy48YnI+Cis8YnI+CisqoEFkZHJlc3OgZGVzY3JpcHRpb26gbG9naWOgaGFzoGJlZW6gaW1wcm92ZWSgYW5koGlzoG5vd6Bjb21tb248YnI+CiugoGJldHdlZW6gTWVtY2hlY2ugYW5koEhlbGdyaW5kLKByZXN1bHRpbmegaW6gYmV0dGVyoGFkZHJlc3M8YnI+CiugoGRlc2NyaXB0aW9uc6Bmb3Kgc29tZaBraW5kc6BvZqBlcnJvcqBtZXNzYWdlcy48YnI+Cis8YnI+CisqoEVycm9yoG1lc3NhZ2VzoGFib3V0oGR1YmlvdXOgYXJndW1lbnRzoChlZyygdG+gbWFsbG9joG9yoGNhbGxvYymgYXJlPGJyPgoroKBvdXRwdXSgbGlrZaBvdGhlcqBlcnJvcnMuoKBUaGlzoG1lYW5zoHRoYXSgdGhleaBjYW6gYmWgc3VwcHJlc3NlZDxicj4KK6CgYW5koHRoZXmgaGF2ZaBhoHN0YWNroHRyYWNlLjxicj4KKzxicj4KKyqgVGhloEMrK6BkZW1hbmdsZXKgaGFzoGJlZW6gdXBkYXRlZKBmb3KgYmV0dGVyoEMrKzExoHN1cHBvcnQuPGJyPgorPGJyPgorKqBOZXegYW5koG1vZGlmaWVkoEdEQqBzZXJ2ZXKgbW9uaXRvcqBmZWF0dXJlczo8YnI+Cis8YnI+CiugoC2gVGhyZWFkoGxvY2FsoHZhcmlhYmxlcy9zdG9yYWdloChfX3RocmVhZCmgY2FuoG5vd6BiZaBkaXNwbGF5ZWQuPGJyPgorPGJyPgoroKAtoFRoZaBHREKgc2VydmVyoG1vbml0b3KgY29tbWFuZKAidi5pbmZvoGxvY2F0aW9uoCZsdDthZGRyZXNzJmd0OyI8YnI+CiugoKCgZGlzcGxheXOgaW5mb3JtYXRpb26gYWJvdXSgYW6gYWRkcmVzcy6goFRoZaBpbmZvcm1hdGlvbqBwcm9kdWNlZDxicj4KK6CgoKBkZXBlbmRzoG9uoHRoZaB0b29soGFuZKBvbqB0aGWgb3B0aW9uc6BnaXZlbqB0b6B2YWxncmluZC48YnI+CiugoKCgUG9zc2libHksoHRoZaBmb2xsb3dpbmegYXJloGRlc2NyaWJlZDqgZ2xvYmFsoHZhcmlhYmxlcyygbG9jYWw8YnI+CiugoKCgKHN0YWNrKaB2YXJpYWJsZXMsoGFsbG9jYXRlZKBvcqBmcmVlZKBibG9ja3MsoC4uLjxicj4KKzxicj4KK6CgLaBUaGWgb3B0aW9uoCItLXZnZGItc3RvcC1hdD1ldmVudDEsZXZlbnQyLC4uLiKgYWxsb3dzoHRoZaB1c2VyoHRvPGJyPgoroKCgoGFza6B0aGWgR0RCoHNlcnZlcqB0b6BzdG9woGF0oHRoZaBzdGFydKBvZqBwcm9ncmFtoGV4ZWN1dGlvbiygYXQ8YnI+CiugoKCgdGhloGVuZKBvZqB0aGWgcHJvZ3JhbaBleGVjdXRpb26gYW5koG9uoFZhbGdyaW5koGludGVybmFsoGVycm9ycy48YnI+Cis8YnI+CiugoC2gQaBuZXegbW9uaXRvcqBjb21tYW5koCJ2LmluZm+gc3RhdHMioHNob3dzoHZhcmlvdXOgVmFsZ3JpbmSgY29yZTxicj4KK6CgoKBhbmSgdG9vbKBzdGF0aXN0aWNzLjxicj4KKzxicj4KK6CgLaBBoG5ld6Btb25pdG9yoGNvbW1hbmSgInYuc2V0oGhvc3R2aXNpYmlsaXR5IqBhbGxvd3OgdGhloEdEQqBzZXJ2ZXI8YnI+CiugoKCgdG+gcHJvdmlkZaBhY2Nlc3OgdG+gVmFsZ3JpbmSgaW50ZXJuYWygaG9zdKBzdGF0dXMvbWVtb3J5Ljxicj4KKzxicj4KKyqgQaBuZXegb3B0aW9uoCItLWFzcGFjZS1taW5hZGRyPSZsdDthZGRyZXNzJmd0OyKgY2FuoGluoHNvbWWgc2l0dWF0aW9uczxicj4KK6CgYWxsb3egdGhloHVzZaBvZqBtb3JloG1lbW9yeaBieaBkZWNyZWFzaW5noHRoZaBhZGRyZXNzoGFib3ZloHdoaWNoPGJyPgoroKBWYWxncmluZKBtYXBzoG1lbW9yeS6goEl0oGNhbqBhbHNvoGJloHVzZWSgdG+gc29sdmWgYWRkcmVzczxicj4KK6CgY29uZmxpY3RzoHdpdGigc3lzdGVtoGxpYnJhcmllc6BieaBpbmNyZWFzaW5noHRoZaBkZWZhdWx0oHZhbHVlLjxicj4KK6CgU2VloHVzZXKgbWFudWFsoGZvcqBkZXRhaWxzLjxicj4KKzxicj4KKyqgVGhloGFtb3VudKBvZqBtZW1vcnmgdXNlZKBieaBWYWxncmluZKB0b6BzdG9yZaBkZWJ1Z6BpbmZvoCh1bndpbmQ8YnI+CiugoGluZm8soGxpbmWgbnVtYmVyoGluZm9ybWF0aW9uoGFuZKBzeW1ib2ygZGF0YSmgaGFzoGJlZW48YnI+CiugoHNpZ25pZmljYW50bHmgcmVkdWNlZCygZXZlbqB0aG91Z2igVmFsZ3JpbmSgbm93oHJlYWRzoG1vcmU8YnI+CiugoGluZm9ybWF0aW9uoGluoG9yZGVyoHRvoHN1cHBvcnSgdW53aW5kaW5noG9moGlubGluZWSgZnVuY3Rpb26gY2FsbHMuPGJyPgorPGJyPgorKqBEd2FyZjOgaGFuZGxpbmegd2l0aKAtLXJlYWQtdmFyLWluZm89eWVzoGhhc6BiZWVuoGltcHJvdmVkOjxicj4KKzxicj4KK6CgLaBBZGGgYW5koEOgc3RydWN0oGNvbnRhaW5pbmegVkxBc6Bub6Bsb25nZXKgY2F1c2WgYaAiYmFkoERJRSKgZXJyb3I8YnI+Cis8YnI+CiugoC2gQ29kZaBjb21waWxlZKB3aXRoPGJyPgoroKCgoC1mZnVuY3Rpb24tc2VjdGlvbnOgLWZkYXRhLXNlY3Rpb25zoC1XbCwtLWdjLXNlY3Rpb25zPGJyPgoroKCgoG5voGxvbmdlcqBjYXVzZXOgYXNzZXJ0aW9uoGZhaWx1cmVzLjxicj4KKzxicj4KKyqgSW1wcm92ZWSgY2hlY2tpbmegZm9yoHRoZaAtLXNpbS1oaW50cz2gYW5koC0ta2VybmVsLXZhcmlhbnQ9PGJyPgoroKBvcHRpb25zLqCgVW5rbm93bqBzdHJpbmdzoGFyZaBub3egZGV0ZWN0ZWSgYW5koHJlcG9ydGVkoHRvoHRoZaB1c2VyPGJyPgoroKBhc6BhoHVzYWdloGVycm9yLjxicj4KKzxicj4KKyqgVGhloHNlbWFudGljc6BvZqBzdGFja6BzdGFydC9lbmSgYm91bmRhcmllc6BpbqB0aGWgdmFsZ3JpbmQuaDxicj4KK6CgVkFMR1JJTkRfU1RBQ0tfUkVHSVNURVKgY2xpZW50oHJlcXVlc3SgaGFzoGJlZW6gY2xhcmlmaWVkoGFuZDxicj4KK6CgZG9jdW1lbnRlZC6goFRoZaBjb252ZW50aW9uoGlzoHRoYXSgc3RhcnSgYW5koGVuZKBhcmWgcmVzcGVjdGl2ZWx5PGJyPgoroKB0aGWgbG93ZXN0oGFuZKBoaWdoZXN0oGFkZHJlc3NhYmxloGJ5dGVzoG9moHRoZaBzdGFjay48YnI+Cis8YnI+CisqoD09PT09PT09PT09PT09PT09PT09oEZJWEVEoEJVR1OgPT09PT09PT09PT09PT09PT09PT08YnI+Cis8YnI+CitUaGWgZm9sbG93aW5noGJ1Z3OgaGF2ZaBiZWVuoGZpeGVkoG9yoHJlc29sdmVkLqCgTm90ZaB0aGF0oCJuLWktYnoiPGJyPgorc3RhbmRzoGZvcqAibm90oGluoGJ1Z3ppbGxhIqAtLaB0aGF0oGlzLKBhoGJ1Z6B0aGF0oHdhc6ByZXBvcnRlZKB0b6B1czxicj4KK2J1dKBuZXZlcqBnb3SgYaBidWd6aWxsYaBlbnRyeS6goFdloGVuY291cmFnZaB5b3WgdG+gZmlsZaBidWdzoGluPGJyPgorYnVnemlsbGGgKGh0dHBzOi8vYnVncy5rZGUub3JnL2VudGVyX2J1Zy5jZ2k/cHJvZHVjdD12YWxncmluZCmgcmF0aGVyPGJyPgordGhhbqBtYWlsaW5noHRoZaBkZXZlbG9wZXJzoChvcqBtYWlsaW5noGxpc3RzKaBkaXJlY3RseaAtLaBidWdzoHRoYXQ8YnI+CithcmWgbm90oGVudGVyZWSgaW50b6BidWd6aWxsYaB0ZW5koHRvoGdldKBmb3Jnb3R0ZW6gYWJvdXSgb3KgaWdub3JlZC48YnI+Cis8YnI+CitUb6BzZWWgZGV0YWlsc6BvZqBhoGdpdmVuoGJ1ZyygdmlzaXQ8YnI+CiugoGh0dHBzOi8vYnVncy5rZGUub3JnL3Nob3dfYnVnLmNnaT9pZD1YWFhYWFg8YnI+Cit3aGVyZaBYWFhYWFigaXOgdGhloGJ1Z6BudW1iZXKgYXOgbGlzdGVkoGJlbG93Ljxicj4KKzxicj4KKzE3NTgxOaCgU3VwcG9ydKBmb3KgaXB2NqBzb2NrZXSgcmVwb3J0aW5noHdpdGigLS10cmFjay1mZHM8YnI+CisyMzI1MTCgoG1ha2WgZGlzdGNoZWNroGZhaWxzPGJyPgorMjQ5NDM1oKBBbmFseXppbmegd2luZaBwcm9ncmFtc6B3aXRooGNhbGxncmluZKB0cmlnZ2Vyc6BhoGNyYXNoPGJyPgorMjc4OTcyoKBzdXBwb3J0oGZvcqBpbmxpbmVkoGZ1bmN0aW9uoGNhbGxzoGluoHN0YWNrdHJhY2VzoGFuZKBzdXBwcmVzc2lvbjxicj4KK6CgoKCgoKCgPT2gMTk5MTQ0PGJyPgorMjkxMzEwoKBGWFNBVkWgaW5zdHJ1Y3Rpb26gbWFya3OgbWVtb3J5oGFzoHVuZGVmaW5lZKBvbqBhbWQ2NDxicj4KKzMwMzUzNqCgaW9jdGygZm9yoFNJT0NFVEhUT09MoChldGh0b29sKDgpKaBpc24ndKB3cmFwcGVkPGJyPgorMzA4NzI5oKB2ZXigeDg2LSZndDtJUjqgdW5oYW5kbGVkoGluc3RydWN0aW9uoGJ5dGVzoDB4ZqAweDWgKHN5c2NhbGwpoDxicj4KKzMxNTE5OaCgdmdjb3JloGZpbGWgZm9yoHRocmVhZGVkoGFwcKBkb2VzoG5vdKBzaG93oHdoaWNooHRocmVhZKBjcmFzaGVkPGJyPgorMzE1OTUyoKB0dW4vdGFwoGlvY3Rsc6BhcmWgbm90oHN1cHBvcnRlZDxicj4KKzMyMzE3OKCgVW5oYW5kbGVkoGluc3RydWN0aW9uOqBQTERXoHJlZ2lzdGVyoChBUk0poDxicj4KKzMyMzE3OaCgVW5oYW5kbGVkoGluc3RydWN0aW9uOqBQTERXoGltbWVkaWF0ZaAoQVJNKTxicj4KKzMyNDA1MKCgSGVsZ3JpbmQ6oFNFR1agYmVjYXVzZaBvZqB1bmFsaWduZWSgc3RhY2ugd2hlbqB1c2luZ6Btb3ZkcWE8YnI+CiszMjUxMTCgoEFkZKB0ZXN0LWNhc2VzoGZvcqBQb3dlcqBJU0GgMi4wNqBpbnNuczqgZGl2ZG8vZGl2ZG8uoGFuZKBkaXZkdW8vZGl2ZHVvLjxicj4KKzMyNTEyNKCgW01JUFNFTF2gQ29tcGlsYXRpb26gZXJyb3I8YnI+CiszMjU0NzegoFBoYXNloDSgc3VwcG9ydKBmb3KgSUJNoFBvd2VyoElTQaAyLjA3PGJyPgorMzI1NTM4oKBjYXZpdW2gb2N0ZW9uoG1pcHM2NCygdmFsZ3JpbmSgcmVwb3J0ZWSgImR1bXBpbmegY29yZSKgWy4uLl08YnI+CiszMjU2MjigoFBoYXNloDWgc3VwcG9ydKBmb3KgSUJNoFBvd2VyoElTQaAyLjA3PGJyPgorMzI1NzE0oKBFbXB0eaB2Z2NvcmWgYnV0oFJMSU1JVF9DT1JFoGlzoGJpZ6Blbm91Z2igKHRvb6BiaWcpoDxicj4KKzMyNTc1MaCgTWlzc2luZ6B0aGWgdHdvoHByaXZpbGVnZWSgUG93ZXKgUEOgVHJhbnNhY3Rpb25hbKBNZW1vcnmgSW5zdHJ1Y3Rpb25zPGJyPgorMzI1ODE2oKBQaGFzZaA2oHN1cHBvcnSgZm9yoElCTaBQb3dlcqBJU0GgMi4wNzxicj4KKzMyNTg1NqCgTWFrZaBTR0NoZWNroGZhaWygZ3JhY2VmdWxseaBvbqB1bnN1cHBvcnRlZKBwbGF0Zm9ybXM8YnI+CiszMjYwMjagoElvcKBuYW1lc6Bmb3KgY291bnSgbGVhZGluZ6B6ZXJvcy9zaWduoGJpdHOgaW5jb3JyZWN0bHmgaW1wbHmgWy4uXTxicj4KKzMyNjQzNqCgRFJEOqBGYWxzZaBwb3NpdGl2ZaBpbqBsaWJzdGRjKyugc3RkOjpsaXN0OjpwdXNoX2JhY2s8YnI+CiszMjY0NDSgoENhdml1baBNSVBToE9jdGVvbqBTcGVjaWZpY6BMb2FkoEluZGV4ZWSgSW5zdHJ1Y3Rpb25zPGJyPgorMzI2NDYyoKBSZWZhY3RvcqB2Z2RioHRvoGlzb2xhdGWgaW52b2tlcqBzdHVmZqBpbnRvoHNlcGFyYXRloG1vZHVsZTxicj4KKzMyNjQ2OaCgYW1kNjQtJmd0O0lSOqAweDY2oDB4RqAweDNBoDB4NjOgMHhDMaAweEWgKHBjbXBpc3RyaaAweDBFKTxicj4KKzMyNjYyM6CgRFJEOqBmYWxzZaBwb3NpdGl2ZaBjb25mbGljdKByZXBvcnSgaW6gYaBmaWVsZKBhc3NpZ25tZW50PGJyPgorMzI2NzI0oKBWYWxncmluZKBkb2VzoG5vdKBjb21waWxloG9uoE9TWKAxLjmgTWF2ZXJpY2tzPGJyPgorMzI2ODE2oKBJbnRlcmNlcHSgZm9yoF9fc3RybmNweV9zc2UyX3VuYWxpZ25lZKBtaXNzaW5nPzxicj4KKzMyNjkyMaCgY29yZWdyaW5koGZhaWxzoHRvoGNvbXBpbGWgbV90cmFtcG9saW5lLlOgd2l0aKBNSVBTL0xpbnV4oHBvcnSgb2agVjxicj4KKzMyNjk4M6CgQ2xlYXKgZGlyZWN0aW9uoGZsYWegYWZ0ZXKgdGVzdHOgb26gYW1kNjQuPGJyPgorMzI3MjEyoKBEb6Bub3SgcHJlcGVuZKB0aGWgY3VycmVudKBkaXJlY3RvcnmgdG+gYWJzb2x1dGWgcGF0aKBuYW1lcy48YnI+CiszMjcyMjOgoFN1cHBvcnSgZm9yoENhdml1baBNSVBToE9jdGVvbqBBdG9taWOgYW5koENvdW50oEluc3RydWN0aW9uczxicj4KKzMyNzIzOKCgQ2FsbGdyaW5koEFzc2VydGlvbqAncGFzc2VkoCZsdDs9oGxhc3RfYmItJmd0O2NqbXBfY291bnQnoGZhaWxlZDxicj4KKzMyNzI4NKCgczM5MHg6oEZpeKB0cmFuc2xhdGlvbqBvZqB0aGWgcmlzYmegaW5zdHJ1Y3Rpb248YnI+CiszMjc2MzmgoHZleKBhbWQ2NC0mZ3Q7SVKgcGNtcGVzdHJpoFNTRTQuMqBpbnN0cnVjdGlvbqBpc6B1bnN1cHBvcnRlZKAweDM0PGJyPgorMzI3ODM3oKBkd3qgY29tcHJlc3NlZKBhbHRlcm5hdGWgLmRlYnVnX2luZm+gYW5koC5kZWJ1Z19zdHKgbm90oHJlYWSgY29ycmVjdGx5PGJyPgorMzI3OTE2oKBEV19UQUdfdHlwZWRlZqBtYXmgaGF2ZaBub6BuYW1lPGJyPgorMzI3OTQzoKBzMzkweDqgYWRkoGGgcmVkaXJlY3Rpb26gZm9yoHRoZaAnaW5kZXgnoGZ1bmN0aW9uPGJyPgorMzI4MTAwoKBYQUJPUlSgbm90oGltcGxlbWVudGVkPGJyPgorMzI4MjA1oKBJbXBsZW1lbnSgYWRkaXRpb25hbKBYZW6gaHlwZXJjYWxsczxicj4KKzMyODQ1NKCgYWRkoHN1cHBvcnSgQmFja3RyYWNlc6B3aXRooEFSTaB1bndpbmSgdGFibGVzoChFWElEWCk8YnI+CiszMjg0NTWgoHMzOTB4OqBTSUdJTEygYWZ0ZXKgZW1pdHRpbmegd3JvbmegcmVnaXN0ZXKgcGFpcqBmb3KgbGR4YnI8YnI+CiszMjg3MTGgoHZhbGdyaW5kLjGgbWFucGFnZaAibWVtY2hlY2ugb3B0aW9ucyKgc2VjdGlvbqBpc6BiYWRseaBnZW5lcmF0ZWQ8YnI+CiszMjg4NzigoHZleKBhbWQ2NC0mZ3Q7SVKgcGNtcGVzdHJpoFNTRTQuMqBpbnN0cnVjdGlvbqBpc6B1bnN1cHBvcnRlZKAweDE0PGJyPgorMzI5NjEyoKBJbmNvcnJlY3SgaGFuZGxpbmegb2agQVRfQkFTRaBmb3KgaW1hZ2WgZXhlY3V0aW9uoDxicj4KKzMyOTY5NKCgY2xhbmegd2FybnOgYWJvdXSgdXNpbmegdW5pbml0aWFsaXplZKB2YXJpYWJsZaA8YnI+CiszMjk5NTagoHZhbGdyaW5koGNyYXNoZXOgd2hlbqBsbXcvc3Rtd6BpbnN0cnVjdGlvbnOgYXJloHVzZWSgb26gcHBjNjQ8YnI+CiszMzAyMjigoG1tYXCgbXVzdKBhbGlnbqB0b6BWS0lfU0hNTEJBoG9uoG1pcHMzMjxicj4KKzMzMDI1N6CgTExWTaBkb2VzoG5vdKBzdXBwb3J0oGAtbW5vLWR5bmFtaWMtbm8tcGljYKBvcHRpb248YnI+CiszMzAzMTmgoGFtZDY0LSZndDtJUjqgdW5oYW5kbGVkoGluc3RydWN0aW9uoGJ5dGVzOqAweEagMHgxoDB4RDWgKHhlbmQpPGJyPgorMzMwNDU5oKAtLXRyYWNrLWZkcz15ZXOgZG9lc24ndKB0cmFja6BldmVudGZkczxicj4KKzMzMDQ2OaCgQWRkoGNsb2NrX2FkanRpbWWgc3lzY2FsbKBzdXBwb3J0PGJyPgorMzMwNTk0oKBNaXNzaW5noHN5c2FsbHOgb26gUG93ZXJQQ6AvoHVDbGliYzxicj4KKzMzMDYyMqCgQWRkoHRlc3SgdG+gcmVncmVzc2lvbqBzdWl0ZaBmb3KgUE9XRVKgaW5zdHJ1Y3Rpb246oGRjYnpsPGJyPgorMzMwOTM5oKBTdXBwb3J0oGZvcqBBTUQnc6BzeXNjYWxsoGluc3RydWN0aW9uoG9uoHg4Njxicj4KK6CgoKCgoKCgPT2gMzA4NzI5PGJyPgorMzMwOTQxoKBUeXBvoGluoFBSRShwb2xsKaBzeXNjYWxsoHdyYXBwZXI8YnI+CiszMzEwNTegoHVuaGFuZGxlZKBpbnN0cnVjdGlvbjqgMHhFRUUwMUIyMKAodmZtYS5mNjQpoChoYXOgcGF0Y2gpPGJyPgorMzMxMjU0oKBGaXigZXhwZWN0ZWSgb3V0cHV0oGZvcqBtZW1jaGVjay90ZXN0cy9kdzQ8YnI+CiszMzEyNTWgoEZpeKByYWNloGNvbmRpdGlvbqBpbqB0ZXN0oG5vbmUvdGVzdHMvY29vbG9fc2lnYWN0aW9uPGJyPgorMzMxMjU3oKBGaXigdHlwZaBvZqBqdW1woGJ1ZmZlcqBpbqB0ZXN0oG5vbmUvdGVzdHMvZmF1bHRzdGF0dXM8YnI+CiszMzEzMDWgoGNvbmZpZ3VyZaB1c2VzoGJhc2igc3BlY2lmaWOgc3ludGF4PGJyPgorMzMxMzM3oKBzMzkweKBXQVJOSU5HOqB1bmhhbmRsZWSgc3lzY2FsbDqgMzI2oChkdXAzKTxicj4KKzMzMTM4MKCgU3lzY2FsbKBwYXJhbaB0aW1lcl9jcmVhdGUoZXZwKaBwb2ludHOgdG+gdW5pbml0aWFsaXNlZKBieXRlKHMpPGJyPgorMzMxNDc2oKBQYXRjaKB0b6BoYW5kbGWgaW9jdGygMHg1NDIyoG9uoExpbnV4oCh4ODagYW5koGFtZDY0KTxicj4KKzMzMTgyOaCgVW5leHBlY3RlZKBpb2N0bKBvcGNvZGWgc2lnbqBleHRlbnNpb248YnI+CiszMzE4MzCgoHBwYzY0OqBXQVJOSU5HOqB1bmhhbmRsZWSgc3lzY2FsbDqgOTYvOTc8YnI+CiszMzE4MzmgoGRyZC90ZXN0cy9zZW1fb3BlbqBzcGVjaWZpZXOgaW52YWxpZKBzZW1hcGhvcmWgbmFtZaA8YnI+CiszMzE4NDegoG91dGNvbWWgb2agZHJkL3Rlc3RzL3RocmVhZF9uYW1loGlzoG5vbmRldGVybWluaXN0aWM8YnI+CiszMzIwMzegoFZhbGdyaW5koGNhbm5vdKBoYW5kbGWgVGh1bWKgImFkZKBwYyygcmVnIjxicj4KKzMzMjA1NaCgZHJkoGFzc2VydHOgb26gcGxhdGZvcm1zoHdpdGigVkdfU1RBQ0tfUkVEWk9ORV9TWkKgPT2gMKBhbmQ8YnI+CiugoKCgoKCgoGNvbnNpc3RlbmN5oGNoZWNrc6BlbmFibGVkPGJyPgorMzMyMjYzoKBpbnRlcmNlcHRzoGZvcqBwdGhyZWFkX3J3bG9ja190aW1lZHJkbG9ja6BhbmQ8YnI+CiugoKCgoKCgoHB0aHJlYWRfcndsb2NrX3RpbWVkd3Jsb2NroGFyZaBpbmNvcnJlY3Q8YnI+CiszMzIyNjWgoGRyZKBjb3VsZKBkb6B3aXRooHBvc3Qtcndsb2NrX2luaXSgYW5koHByZS1yd2xvY2tfZGVzdHJveTxicj4KK6CgoKCgoKCgY2xpZW50oHJlcXVlc3RzPGJyPgorMzMyMjc2oKBJbXBsZW1lbnSgYWRkaXRpb25hbKBYZW6gaHlwZXJjYWxsczxicj4KKzMzMjY1OKCgbGRyZC53oHIxLKByMiygW1BDLKAjaW1tXaBkb2VzoG5vdKBhZGp1c3SgZm9yoDMyYml0oGFsaWdubWVudDxicj4KKzMzMjc2NaCgRml4oG1zX3ByaW50oHRvoGNyZWF0ZaB0ZW1wb3JhcnmgZmlsZXOgaW6gYaBwcm9wZXKgZGlyZWN0b3J5PGJyPgorMzMzMDcyoKBkcmQ6oEFkZKBzZW1hcGhvcmWgYW5ub3RhdGlvbnM8YnI+CiszMzMxNDWgoFRlc3RzoGZvcqBtaXNzYWxpZ25lZKBQQysjaW1toGFjY2Vzc6Bmb3KgYXJtPGJyPgorMzMzMjI4oKBBQWFyY2g2NKBNaXNzaW5noGluc3RydWN0aW9uoGVuY29kaW5nOqBtcnOgJVtyZWddLKBjdHJfZWwwPGJyPgorMzMzMjMwoKBBQWFyY2g2NKBtaXNzaW5noGluc3RydWN0aW9uoGVuY29kaW5nczqgZGMsoGljLKBkc2IuPGJyPgorMzMzMjQ4oKBXQVJOSU5HOqB1bmhhbmRsZWSgc3lzY2FsbDqgdW5peDo0NDM8YnI+CiszMzM0MjigoGxkci53oHBjoFtyRCygI2ltbV2gaW5zdHJ1Y3Rpb26gbGVhZHOgdG+gYXNzZXJ0aW9uPGJyPgorMzMzNTAxoKBjYWNoZWdyaW5kOqBhc3NlcnRpb246oENhY2hloHNldKBjb3VudKBpc6Bub3SgYaBwb3dlcqBvZqB0d28uPGJyPgoroKCgoKCgoKA9PaAzMzY1Nzc8YnI+CiugoKCgoKCgoD09oDI5MjI4MTxicj4KKzMzMzY2NqCgUmVjb2duaXploE1QWKBpbnN0cnVjdGlvbnOgYW5koGJuZKBwcmVmaXguPGJyPgorMzMzNzg4oKBWYWxncmluZKBkb2VzoG5vdKBzdXBwb3J0oHRoZaBDRFJPTV9ESVNDX1NUQVRVU6Bpb2N0bKAoaGFzoHBhdGNoKTxicj4KKzMzMzgxN6CgVmFsZ3JpbmSgcmVwb3J0c6B0aGWgbWVtb3J5oGFyZWFzoHdyaXR0ZW6gdG+gYnmgdGhloFNHX0lPPGJyPgoroKCgoKCgoKBpb2N0bKBhc6B1bnRvdWNoZWQ8YnI+CiszMzQwNDmgoGx6Y250oGZhaWxzoHNpbGVudGx5oCh4ODZfMzIpPGJyPgorMzM0Mzg0oKBWYWxncmluZKBkb2VzoG5vdKBoYXZloHN1cHBvcnSgTGl0dGxloEVuZGlhbqBzdXBwb3J0oGZvcjxicj4KK6CgoKCgoKCgSUJNoFBPV0VSoFBQQ6A2NDxicj4KKzMzNDU4NaCgcmVjdm1tc2egdW5oYW5kbGVkoCgrcGF0Y2gpoChhcm0pPGJyPgorMzM0NzA1oKBzZW5kbXNnoGFuZKByZWN2bXNnoHNob3VsZKBndWFyZKBhZ2FpbnN0oGJvZ3VzoG1zZ2hkcqBmaWVsZHMuPGJyPgorMzM0NzI3oKBCdWlsZKBmYWlsc6B3aXRooC1XZXJyb3I9Zm9ybWF0LXNlY3VyaXR5PGJyPgorMzM0Nzg4oKBjbGFyaWZ5oGRvY6BhYm91dKAtLWxvZy1maWxloGluaXRpYWygcHJvZ3JhbaBkaXJlY3Rvcnk8YnI+CiszMzQ4MzSgoFBQQzY0oExpdHRsZaBFbmRpYW6gc3VwcG9ydCygcGF0Y2igMjxicj4KKzMzNDgzNqCgUFBDNjSgTGl0dGxloEVuZGlhbqBzdXBwb3J0LKBwYXRjaKAzoHRlc3RjYXNloGZpeGVzPGJyPgorMzM0OTM2oKBwYXRjaKB0b6BmaXigZmFsc2WgcG9zaXRpdmVzoG9uoGFsc2GgU05EUlZfQ1RMXyqgaW9jdGxzPGJyPgorMzM1MDM0oKBVbmhhbmRsZWSgaW9jdGw6oEhDSUdFVERFVkxJU1Q8YnI+CiszMzUxNTWgoHZnZGIsoGZpeKBlcnJvcqBwcmludKBzdGF0ZW1lbnQuPGJyPgorMzM1MjYyoKBhcm02NDqgbW92aaA4Yml0oHZlcnNpb26gaXOgbm90oHN1cHBvcnRlZDxicj4KKzMzNTI2M6CgYXJtNjQ6oGRtYqBpbnN0cnVjdGlvbqBpc6Bub3SgaW1wbGVtZW50ZWQ8YnI+CiszMzU0NDGgoHVuaGFuZGxlZKBpb2N0bKAweDg5MDWgKFNJT0NBVE1BUkspoHdoZW6gcnVubmluZ6B3aW5loHVuZGVyoHZhbGdyaW5kPGJyPgorMzM1NDk2oKBhcm02NDqgc2JjL2FiY6BpbnN0cnVjdGlvbnOgYXJloG5vdKBpbXBsZW1lbnRlZDxicj4KKzMzNTU1NKCgYXJtNjQ6oHVuaGFuZGxlZKBpbnN0cnVjdGlvbjqgYWJzPGJyPgorMzM1NTY0oKBhcm02NDqgdW5oYW5kbGVkoGluc3RydWN0aW9uOqBmY3Z0cHWgoFhuLKBTbjxicj4KKzMzNTczNaCgYXJtNjQ6oHVuaGFuZGxlZKBpbnN0cnVjdGlvbjqgY250PGJyPgorMzM1NzM2oKBhcm02NDqgdW5oYW5kbGVkoGluc3RydWN0aW9uOqB1YWRkbHY8YnI+CiszMzU4NDigoGFybTY0OqB1bmhhbmRsZWSgaW5zdHJ1Y3Rpb246oHtzLHV9Y3Z0Zjxicj4KKzMzNTkwMqCgYXJtNjQ6oHVuaGFuZGxlZKBpbnN0cnVjdGlvbjqgc2xpPGJyPgorMzM1OTAzoKBhcm02NDqgdW5oYW5kbGVkoGluc3RydWN0aW9uOqB1bXVsbKAodmVjdG9yKTxicj4KKzMzNjA1NaCgYXJtNjQ6oHVuaGFuZGxlZKBpbnN0cnVjdGlvbjqgbW92oChlbGVtZW50KTxicj4KKzMzNjA2MqCgYXJtNjQ6oHVuaGFuZGxlZKBpbnN0cnVjdGlvbjqgc2hybnssMn08YnI+CiszMzYxMzmgoG1pcDY0OqBbLi4uXaB2YWxncmluZKBoYW5nc6BhbmSgc3BpbnOgb26gYaBzaW5nbGWgY29yZaBbLi4uXTxicj4KKzMzNjE4OaCgYXJtNjQ6oHVuaGFuZGxlZKBJbnN0cnVjdGlvbjqgbXZuPGJyPgorMzM2NDM1oKBWYWxncmluZKBoYW5nc6BpbqBwdGhyZWFkX3NwaW5fbG9ja6Bjb25zdW1pbmegMTAwJaBDUFU8YnI+CiszMzY2MTmgoHZhbGdyaW5koC0tcmVhZC12YXItaW5mbz15ZXOgZG9lc24ndKBoYW5kbGWgRFdfVEFHX3Jlc3RyaWN0X3R5cGU8YnI+CiszMzY3NzKgoE1ha2WgbW9hbnOgYWJvdXSgdW5rbm93bqBpb2N0bHOgbW9yZaBpbmZvcm1hdGl2ZTxicj4KKzMzNjk1N6CgQWRkoGGgc2VjdGlvbqBhYm91dKB0aGWgU29sYXJpcy9pbGx1bW9zoHBvcnSgb26gdGhloHdlYnBhZ2U8YnI+CiszMzcwOTSgoGlmdW5joHdyYXBwZXKgaXOgYnJva2VuoG9uoHBwYzY0PGJyPgorMzM3Mjg1oKBmY250bKBjb21tYW5kc6BGX09GRF9TRVRMSyygRl9PRkRfU0VUTEtXLKBhbmSgRl9PRkRfR0VUTEugbm90oHN1cHBvcnRlZDxicj4KKzMzNzUyOKCgbGVha6BjaGVja6BoZXVyaXN0aWOgZm9yoGJsb2NroHByZWZpeGVkoGJ5oGxlbmd0aKBhc6A2NGJpdKBudW1iZXI8YnI+CiszMzc3NDCgoEltcGxlbWVudKBhZGRpdGlvbmFsoFhlbqBoeXBlcmNhbGxzPGJyPgorMzM3NzYyoKBndWVzdF9hcm02NF90b0lSLmM6NDE2NqAoZGlzX0FSTTY0X2xvYWRfc3RvcmUpOqBBc3NlcnRpb26gYDAnoGZhaWxlZC48YnI+CiszMzc3NjagoGFybTY0LWxpbnV4OqB1bmhhbmRsZWSgc3lzY2FsbHOgbWxvY2ugKDIyOCmgYW5koG1sb2NrYWxsoCgyMzApPGJyPgorMzM3ODcxoKBkZXByZWNhdGWgLS1kYi1hdHRhY2g8YnI+CiszMzgwMjOgoEFkZKBzdXBwb3J0oGZvcqBhbGygVjRMMi9tZWRpYaBpb2N0bHM8YnI+CiszMzgwMjSgoGlubGluZWSgZnVuY3Rpb25zoGFyZaBub3Sgc2hvd26gaWagRFdfQVRfcmFuZ2VzoGlzoHVzZWQ8YnI+CiszMzgxMDagoEFkZKBzdXBwb3J0oGZvcqAna2NtcCegc3lzY2FsbDxicj4KKzMzODExNaCgRFJEOqBjb21wdXRlZKBjb25mbGljdKBzZXSgZGlmZmVyc6Bmcm9toGFjdHVhbKBhZnRlcqBmb3JrPGJyPgorMzM4MTYwoKBpbXBsZW1lbnSgZGlzcGxheaBvZqB0aHJlYWSgbG9jYWygc3RvcmFnZaBpbqBnZGJzcnY8YnI+CiszMzgyMDWgoGNvbmZpZ3VyZS5hY6BhbmSgY2hlY2ugZm9yoC1Xbm8tdGF1dG9sb2dpY2FsLWNvbXBhcmU8YnI+CiszMzgzMDCgoGNvcmVkdW1wc6BhcmWgbWlzc2luZ6BvbmWgYnl0ZaBvZqBldmVyeaBzZWdtZW50PGJyPgorMzM4NDQ1oKBhbWQ2NKB2Yml0LXRlc3SgZmFpbHOgd2l0aKB1bmtub3duoG9wY29kZXOgdXNlZKBieaBhcm02NKBWRVg8YnI+CiszMzg0OTmgoC0tc2ltLWhpbnRzoHBhcnNpbmegYnJva2VuoGR1ZaB0b6B3cm9uZ6BvcmRlcqBpbqB0b2tlbnM8YnI+CiszMzg2MTWgoHN1cHByZXNzoGdsaWJjoDIuMjCgb3B0aW1pemVkoHN0cmNtcKBpbXBsZW1lbnRhdGlvbqBmb3KgQVJNdjc8YnI+CiszMzg2ODGgoFVuYWJsZaB0b6B1bndpbmSgdGhyb3VnaKBjbG9uZaB0aHJlYWSgY3JlYXRlZKBvbqBpMzg2LWxpbnV4PGJyPgorMzM4Njk4oKByYWNloGNvbmRpdGlvbqBiZXR3ZWVuoGdkYnNydqBhbmSgdmdkYqBvbqBzdGFydHVwPGJyPgorMzM4NzAzoKBoZWxncmluZKBvbqBhcm0tbGludXigZ2V0c6BmYWxzZaBwb3NpdGl2ZXOgaW6gZHluYW1pY6Bsb2FkZXI8YnI+CiszMzg3OTGgoGFsdKBkd3qgZmlsZXOgY2FuoGJloHJlbGF0aXZloG9moGRlYnVnL21haW6gZmlsZTxicj4KKzMzODg3OKCgb26gTWFjT1M6oGFzc2VydGlvbqAnVkdfSVNfUEFHRV9BTElHTkVEKGNsc3RhY2tfZW5kKzEpJ6BmYWlsZWQ8YnI+CiszMzg5MzKgoGJ1aWxkoFYtdHJ1bmugd2l0aKBnY2MtdHJ1bms8YnI+CiszMzg5NzSgoGdsaWJjoDIuMjCgY2hhbmdlZKBzaXploG9moHN0cnVjdKBzaWdhY3Rpb26gc2FfZmxhZ3OgZmllbGSgb26gczM5MDxicj4KKzM0NTA3OaCgRml4oGJ1aWxkoHByb2JsZW1zoGluoFZFWC91c2VmdWwvdGVzdF9tYWluLmM8YnI+CituLWktYnqgoEZpeKBLVk1fQ1JFQVRFX0lSUUNISVCgaW9jdGygaGFuZGxpbmc8YnI+CituLWktYnqgoHMzOTB4OqBGaXigbWVtb3J5oGNvcnJ1cHRpb26gZm9yoG11bHRpdGhyZWFkZWSgYXBwbGljYXRpb25zPGJyPgorbi1pLWJ6oKB2ZXigYXJtLSZndDtJUjqgYWxsb3egUEOgYXOgYmFzZXJlZ6BpbqBzb21loExEUkSgY2FzZXM8YnI+CituLWktYnqgoGludGVybmFsoGVycm9yoGluoFZhbGdyaW5koGlmoHZnZGKgdHJhbnNtaXSgc2lnbmFsc6B3aGVuoHB0cmFjZaBpbnZva2VkPGJyPgorbi1pLWJ6oKBGaXigbWluZ3c2NKBzdXBwb3J0oGluoHZhbGdyaW5kLmigKGRldkAsoDmgTWF5oDIwMTQpPGJyPgorbi1pLWJ6oKBkcmSgbWFudWFsOqBEb2N1bWVudKBob3egdG+gQysrMTGgcHJvZ3JhbXOgdGhhdKB1c2WgY2xhc3OgInN0ZDo6dGhyZWFkIjxicj4KK24taS1ieqCgQWRkoGNvbW1hbmQtbGluZaBvcHRpb26gLS1kZWZhdWx0LXN1cHByZXNzaW9uczxicj4KK24taS1ieqCgQWRkoHN1cHBvcnSgZm9yoEJMS0RJU0NBUkRaRVJPRVOgaW9jdGw8YnI+CituLWktYnqgoHBwYzMyLzY0OqBmaXigYaByZWdyZXNzaW9uoHdpdGigdGhloG10ZnNiMC9tdGZzYjGgaW5zdHJ1Y3Rpb25zPGJyPgorbi1pLWJ6oKBBZGSgc3VwcG9ydKBmb3IJc3lzX3Bpdm90X3Jvb3SgYW5koHN5c191bnNoYXJlPGJyPgorPGJyPgorKDMuMTAuMC5CRVRBMTqgoDKgU2VwdGVtYmVyoDIwMTQsoHZleKByMjk0MCygdmFsZ3JpbmSgcjE0NDI4KTxicj4KKygzLjEwLjAuQkVUQTI6oKA4oFNlcHRlbWJlcqAyMDE0LKB2ZXigcjI5NTAsoHZhbGdyaW5koHIxNDUwMyk8YnI+CisoMy4xMC4wOqCgoKCgoKAxMKBTZXB0ZW1iZXKgMjAxNCygdmV4oHIyOTUwLKB2YWxncmluZKByMTQ1MTQpPGJyPgorPGJyPgorPGJyPgorPGJyPgorUmVsZWFzZaAzLjkuMKAoMzGgT2N0b2JlcqAyMDEzKTxicj4KK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn48YnI+CiszLjkuMKBpc6BhoGZlYXR1cmWgcmVsZWFzZaB3aXRooG1hbnmgaW1wcm92ZW1lbnRzoGFuZKB0aGWgdXN1YWw8YnI+Citjb2xsZWN0aW9uoG9moGJ1Z6BmaXhlcy48YnI+Cis8YnI+CitUaGlzoHJlbGVhc2Wgc3VwcG9ydHOgWDg2L0xpbnV4LKBBTUQ2NC9MaW51eCygQVJNL0xpbnV4LKBQUEMzMi9MaW51eCw8YnI+CitQUEM2NC9MaW51eCygUzM5MFgvTGludXgsoE1JUFMzMi9MaW51eCygTUlQUzY0L0xpbnV4LKBBUk0vQW5kcm9pZCw8YnI+CitYODYvQW5kcm9pZCygWDg2L01hY09TWKAxMC43oGFuZKBBTUQ2NC9NYWNPU1igMTAuNy6goFN1cHBvcnSgZm9yPGJyPgorTWFjT1NYoDEwLjigaXOgc2lnbmlmaWNhbnRseaBpbXByb3ZlZKByZWxhdGl2ZaB0b6B0aGWgMy44LjCgcmVsZWFzZS48YnI+Cis8YnI+CisqoD09PT09PT09PT09PT09PT09PaBQTEFURk9STaBDSEFOR0VToD09PT09PT09PT09PT09PT09PGJyPgorPGJyPgorKqBTdXBwb3J0oGZvcqBNSVBTNjSgTEWgYW5koEJFoHJ1bm5pbmegTGludXguoKBWYWxncmluZKBoYXOgYmVlbjxicj4KK6CgdGVzdGVkoG9uoE1JUFM2NKBEZWJpYW6gU3F1ZWV6ZaBhbmSgRGViaWFuoFdoZWV6eaBkaXN0cmlidXRpb25zLjxicj4KKzxicj4KKyqgU3VwcG9ydKBmb3KgTUlQU6BEU1CgQVNFoG9uoE1JUFMzMqBwbGF0Zm9ybXMuPGJyPgorPGJyPgorKqBTdXBwb3J0oGZvcqBzMzkweKBEZWNpbWFsoEZsb2F0aW5noFBvaW50oGluc3RydWN0aW9uc6BvbqBob3N0c6B0aGF0PGJyPgoroKBoYXZloHRoZaBERlCgZmFjaWxpdHmgaW5zdGFsbGVkLjxicj4KKzxicj4KKyqgU3VwcG9ydKBmb3KgUE9XRVI4oChQb3dlcqBJU0GgMi4wNymgaW5zdHJ1Y3Rpb25zPGJyPgorPGJyPgorKqBTdXBwb3J0oGZvcqBJbnRlbKBBVlgyoGluc3RydWN0aW9ucy6goFRoaXOgaXOgYXZhaWxhYmxloG9ubHmgb26gNjQ8YnI+CiugoGJpdKBjb2RlLjxicj4KKzxicj4KKyqgSW5pdGlhbKBzdXBwb3J0oGZvcqBJbnRlbKBUcmFuc2FjdGlvbmFsoFN5bmNocm9uaXphdGlvbqBFeHRlbnNpb25zLDxicj4KK6CgYm90aKBSVE2gYW5koEhMRS48YnI+Cis8YnI+CisqoEluaXRpYWygc3VwcG9ydKBmb3KgSGFyZHdhcmWgVHJhbnNhY3Rpb25hbKBNZW1vcnmgb26gUE9XRVIuPGJyPgorPGJyPgorKqBJbXByb3ZlZKBzdXBwb3J0oGZvcqBNYWNPU1igMTAuOKAoNjQtYml0oG9ubHkpLqCgTWVtY2hlY2ugY2FuoG5vdzxicj4KK6CgcnVuoGxhcmdloEdVSaBhcHBzoHRvbGVyYWJseaB3ZWxsLjxicj4KKzxicj4KKyqgPT09PT09PT09PT09PT09PT09PT2gVE9PTKBDSEFOR0VToD09PT09PT09PT09PT09PT09PT09PGJyPgorPGJyPgorKqBNZW1jaGVjazo8YnI+Cis8YnI+CiugoC2gSW1wcm92ZW1lbnRzoGluoGhhbmRsaW5noG9moHZlY3RvcmlzZWSgY29kZSygbGVhZGluZ6B0bzxicj4KK6CgoKBzaWduaWZpY2FudGx5oGZld2VyoGZhbHNloGVycm9yoHJlcG9ydHMuoKBZb3WgbmVlZKB0b6B1c2WgdGhloGZsYWc8YnI+CiugoKCgLS1wYXJ0aWFsLWxvYWRzLW9rPXllc6B0b6BnZXSgdGhloGJlbmVmaXRzoG9moHRoZXNloGNoYW5nZXMuPGJyPgorPGJyPgoroKAtoEJldHRlcqBjb250cm9soG92ZXKgdGhloGxlYWugY2hlY2tlci6goEl0oGlzoG5vd6Bwb3NzaWJsZaB0bzxicj4KK6CgoKBzcGVjaWZ5oHdoaWNooGxlYWuga2luZHOgKGRlZmluaXRlL2luZGlyZWN0L3Bvc3NpYmxlL3JlYWNoYWJsZSk8YnI+CiugoKCgc2hvdWxkoGJloGRpc3BsYXllZCygd2hpY2igc2hvdWxkoGJloHJlZ2FyZGVkoGFzoGVycm9ycyygYW5koHdoaWNoPGJyPgoroKCgoHNob3VsZKBiZaBzdXBwcmVzc2VkoGJ5oGGgZ2l2ZW6gbGVha6BzdXBwcmVzc2lvbi6goFRoaXOgaXOgZG9uZTxicj4KK6CgoKB1c2luZ6B0aGWgb3B0aW9uc6AtLXNob3ctbGVhay1raW5kcz1raW5kMSxraW5kMiwuLiw8YnI+CiugoKCgLS1lcnJvcnMtZm9yLWxlYWsta2luZHM9a2luZDEsa2luZDIsLi6gYW5koGFuoG9wdGlvbmFsPGJyPgoroKCgoCJtYXRjaC1sZWFrLWtpbmRzOiKgbGluZaBpbqBzdXBwcmVzc2lvbqBlbnRyaWVzLKByZXNwZWN0aXZlbHkuPGJyPgorPGJyPgoroKCgoE5vdGWgdGhhdKBnZW5lcmF0ZWSgbGVha6BzdXBwcmVzc2lvbnOgY29udGFpbqB0aGlzoG5ld6BsaW5loGFuZDxicj4KK6CgoKBhcmWgdGhlcmVmb3JloG1vcmWgc3BlY2lmaWOgdGhhbqBpbqBwcmV2aW91c6ByZWxlYXNlcy6goFRvoGdldKB0aGU8YnI+CiugoKCgc2FtZaBiZWhhdmlvdXKgYXOgcHJldmlvdXOgcmVsZWFzZXMsoHJlbW92ZaB0aGWgIm1hdGNoLWxlYWsta2luZHM6Ijxicj4KK6CgoKBsaW5loGZyb22gZ2VuZXJhdGVkoHN1cHByZXNzaW9uc6BiZWZvcmWgdXNpbmegdGhlbS48YnI+Cis8YnI+CiugoC2gUmVkdWNlZKAicG9zc2libGWgbGVhayKgcmVwb3J0c6Bmcm9toHRoZaBsZWFroGNoZWNrZXKgYnmgdGhloHVzZTxicj4KK6CgoKBvZqBiZXR0ZXKgaGV1cmlzdGljcy6goFRoZaBhdmFpbGFibGWgaGV1cmlzdGljc6Bwcm92aWRloGRldGVjdGlvbjxicj4KK6CgoKBvZqB2YWxpZKBpbnRlcmlvcqBwb2ludGVyc6B0b6BzdGQ6OnN0ZHN0cmluZyygdG+gbmV3W12gYWxsb2NhdGVkPGJyPgoroKCgoGFycmF5c6B3aXRooGVsZW1lbnRzoGhhdmluZ6BkZXN0cnVjdG9yc6BhbmSgdG+gaW50ZXJpb3KgcG9pbnRlcnM8YnI+CiugoKCgcG9pbnRpbmegdG+gYW6gaW5uZXKgcGFydKBvZqBhoEMrK6BvYmplY3SgdXNpbmegbXVsdGlwbGU8YnI+CiugoKCgaW5oZXJpdGFuY2UuoKBUaGV5oGNhbqBiZaBzZWxlY3RlZKBpbmRpdmlkdWFsbHmgdXNpbmegdGhlPGJyPgoroKCgoG9wdGlvbqAtLWxlYWstY2hlY2staGV1cmlzdGljcz1oZXVyMSxoZXVyMiwuLi48YnI+Cis8YnI+CiugoC2gQmV0dGVyoGNvbnRyb2ygb2agc3RhY2t0cmFjZaBhY3F1aXNpdGlvbqBmb3KgaGVhcC1hbGxvY2F0ZWQ8YnI+CiugoKCgYmxvY2tzLqCgVXNpbmegdGhloC0ta2VlcC1zdGFja3RyYWNlc6BvcHRpb24soGl0oGlzoHBvc3NpYmxloHRvPGJyPgoroKCgoGNvbnRyb2ygaW5kZXBlbmRlbnRseaB3aGV0aGVyoGGgc3RhY2ugdHJhY2WgaXOgYWNxdWlyZWSgZm9yoGVhY2g8YnI+CiugoKCgYWxsb2NhdGlvbqBhbmSgZGVhbGxvY2F0aW9uLqCgVGhpc6BjYW6gYmWgdXNlZKB0b6BjcmVhdGWgYmV0dGVyPGJyPgoroKCgoCJ1c2WgYWZ0ZXKgZnJlZSKgZXJyb3JzoG9yoHRvoGRlY3JlYXNloFZhbGdyaW5kJ3OgcmVzb3VyY2U8YnI+CiugoKCgY29uc3VtcHRpb26gYnmgcmVjb3JkaW5noGxlc3OgaW5mb3JtYXRpb24uPGJyPgorPGJyPgoroKAtoEJldHRlcqByZXBvcnRpbmegb2agbGVha6BzdXBwcmVzc2lvbqB1c2FnZS6goFRoZaBsaXN0oG9moHVzZWQ8YnI+CiugoKCgc3VwcHJlc3Npb25zoChzaG93bqB3aGVuoHRoZaAtdqBvcHRpb26gaXOgZ2l2ZW4poG5vd6BzaG93cyygZm9yPGJyPgoroKCgoGVhY2igbGVha6BzdXBwcmVzc2lvbnMsoGhvd6BtYW55oGJsb2Nrc6BhbmSgYnl0ZXOgaXSgc3VwcHJlc3NlZDxicj4KK6CgoKBkdXJpbmegdGhloGxhc3SgbGVha6BzZWFyY2guPGJyPgorPGJyPgorKqBIZWxncmluZDo8YnI+Cis8YnI+CiugoC2gRmFsc2WgZXJyb3JzoHJlc3VsdGluZ6Bmcm9toHRoZaB1c2Wgb2agc3RhdGljYWxseaBpbml0aWFsaXNlZDxicj4KK6CgoKBtdXRleGVzoGFuZKBjb25kaXRpb26gdmFyaWFibGVzoChQVEhSRUFEX01VVEVYX0lOSVRJQUxJU0VSLKBldGMpPGJyPgoroKCgoGhhdmWgYmVlbqByZW1vdmVkLjxicj4KKzxicj4KK6CgLaBGYWxzZaBlcnJvcnOgcmVzdWx0aW5noGZyb22gdGhloHVzZaBvZqBwdGhyZWFkX2NvbmRfd2FpdHOgdGhhdDxicj4KK6CgoKB0aW1lb3V0LKBoYXZloGJlZW6gcmVtb3ZlZC48YnI+Cis8YnI+CisqoD09PT09PT09PT09PT09PT09PT09oE9USEVSoENIQU5HRVOgPT09PT09PT09PT09PT09PT09PT08YnI+Cis8YnI+CisqoFNvbWWgYXR0ZW1wdKB0b6B0dW5loFZhbGdyaW5kJ3Ogc3BhY2WgcmVxdWlyZW1lbnRzoHRvoHRoZaBleHBlY3RlZDxicj4KK6CgY2FwYWJpbGl0aWVzoG9moHRoZaB0YXJnZXQ6PGJyPgorPGJyPgoroKAtoFRoZaBkZWZhdWx0oHNpemWgb2agdGhloHRyYW5zbGF0aW9uoGNhY2hloGhhc6BiZWVuoHJlZHVjZWSgZnJvbaA4PGJyPgoroKCgoHNlY3RvcnOgdG+gNqBvbqBBbmRyb2lkoHBsYXRmb3Jtcyygc2luY2WgZWFjaKBzZWN0b3Kgb2NjdXBpZXM8YnI+CiugoKCgYWJvdXSgNDBNQqB3aGVuoHVzaW5noE1lbWNoZWNrLjxicj4KKzxicj4KK6CgLaBUaGWgZGVmYXVsdKBzaXploG9moHRoZaB0cmFuc2xhdGlvbqBjYWNoZaBoYXOgYmVlbqBpbmNyZWFzZWSgdG+gMTY8YnI+CiugoKCgc2VjdG9yc6BvbqBhbGygb3RoZXKgcGxhdGZvcm1zLKByZWZsZWN0aW5noHRoZaBmYWN0oHRoYXSgbGFyZ2U8YnI+CiugoKCgYXBwbGljYXRpb25zoHJlcXVpcmWgaW5zdHJ1bWVudGF0aW9uoGFuZKBzdG9yYWdloG9moGh1Z2WgYW1vdW50czxicj4KK6CgoKBvZqBjb2RlLqCgRm9yoHNpbWlsYXKgcmVhc29ucyygdGhloG51bWJlcqBvZqBtZW1vcnmgbWFwcGVkPGJyPgoroKCgoHNlZ21lbnRzoHRoYXSgY2FuoGJloHRyYWNrZWSgaGFzoGJlZW6gaW5jcmVhc2VkoGJ5oGGgZmFjdG9yoG9moDYuPGJyPgorPGJyPgoroKAtoEluoGFsbKBjYXNlcyygdGhloG1heGltdW2gbnVtYmVyoG9moHNlY3RvcnOgaW6gdGhloHRyYW5zbGF0aW9uPGJyPgoroKCgoGNhY2hloGNhbqBiZaBjb250cm9sbGVkoGJ5oHRoZaBuZXegZmxhZ6AtLW51bS10cmFuc3RhYi1zZWN0b3JzLjxicj4KKzxicj4KKyqgQ2hhbmdlc6BpbqBob3egZGVidWegaW5mb6AobGluZaBudW1iZXJzLKBldGMpoGlzoHJlYWQ6PGJyPgorPGJyPgoroKAtoFZhbGdyaW5koG5voGxvbmdlcqB0ZW1wb3JhcmlseaBtbWFwc6B0aGWgZW50aXJloG9iamVjdKB0b6ByZWFkPGJyPgoroKCgoGZyb22gaXQuoKBJbnN0ZWFkLKByZWFkaW5noGlzoGRvbmWgdGhyb3VnaKBhoHNtYWxsoGZpeGVkoHNpemVkPGJyPgoroKCgoGJ1ZmZlci6goFRoaXOgYXZvaWRzoHZpcnR1YWygbWVtb3J5oHVzYWdloHNwaWtlc6B3aGVuoFZhbGdyaW5kPGJyPgoroKCgoHJlYWRzoGRlYnVnaW5mb6Bmcm9toGxhcmdloHNoYXJlZKBvYmplY3RzLjxicj4KKzxicj4KK6CgLaBBoG5ld6BleHBlcmltZW50YWygcmVtb3RloGRlYnVnoGluZm+gc2VydmVyLqCgVmFsZ3JpbmSgY2FuoHJlYWQ8YnI+CiugoKCgZGVidWegaW5mb6Bmcm9toGGgZGlmZmVyZW50oG1hY2hpbmWgKHR5cGljYWxseSygYaBidWlsZKBob3N0KTxicj4KK6CgoKB3aGVyZaBkZWJ1Z2luZm+gb2JqZWN0c6BhcmWgc3RvcmVkLqCgVGhpc6BjYW6gc2F2ZaBhoGxvdKBvZqB0aW1lPGJyPgoroKCgoGFuZKBoYXNzbGWgd2hlbqBydW5uaW5noFZhbGdyaW5koG9uoHJlc291cmNlLWNvbnN0cmFpbmVkoHRhcmdldHM8YnI+CiugoKCgKHBob25lcyygdGFibGV0cymgd2hlbqB0aGWgZnVsbKBkZWJ1Z2luZm+gb2JqZWN0c6BhcmWgc3RvcmVkPGJyPgoroKCgoHNvbWV3aGVyZaBlbHNlLqCgVGhpc6Bpc6BlbmFibGVkoGJ5oHRoZaAtLWRlYnVnaW5mby1zZXJ2ZXI9PGJyPgoroKCgoG9wdGlvbi48YnI+Cis8YnI+CiugoC2gQ29uc2lzdGVuY3mgY2hlY2tpbmegYmV0d2VlbqBtYWluoGFuZKBkZWJ1Z6BvYmplY3RzoGNhbqBiZTxicj4KK6CgoKBkaXNhYmxlZKB1c2luZ6B0aGWgLS1hbGxvdy1taXNtYXRjaGVkLWRlYnVnaW5mb6BvcHRpb24uPGJyPgorPGJyPgorKqBTdGFja6B1bndpbmRpbmegYnmgc3RhY2ugc2Nhbm5pbmcsoG9uoEFSTS6goFVud2luZGluZ6BieaBzdGFjazxicj4KK6Cgc2Nhbm5pbmegY2FuoHJlY292ZXKgc3RhY2ugdHJhY2VzoGluoHNvbWWgY2FzZXOgd2hlbqB0aGWgbm9ybWFsPGJyPgoroKB1bndpbmSgbWVjaGFuaXNtc6BmYWlsLqCgU3RhY2ugc2Nhbm5pbmegaXOgYmVzdKBkZXNjcmliZWSgYXOgImE8YnI+CiugoG5hc3R5LKBkYW5nZXJvdXOgYW5koG1pc2xlYWRpbmegaGFjayKgYW5koHNvoGlzoGRpc2FibGVkoGJ5oGRlZmF1bHQuPGJyPgoroKBVc2WgLS11bnctc3RhY2stc2Nhbi10aHJlc2igYW5koC0tdW53LXN0YWNrLXNjYW4tZnJhbWVzoHRvoGVuYWJsZTxicj4KK6CgYW5koGNvbnRyb2ygaXQuPGJyPgorPGJyPgorKqBEZXRlY3Rpb26gYW5koG1lcmdpbmegb2agcmVjdXJzaXZloHN0YWNroGZyYW1loGN5Y2xlcy6goFdoZW6geW91cjxicj4KK6CgcHJvZ3JhbaBoYXOgcmVjdXJzaXZloGFsZ29yaXRobXMsoHRoaXOgbGltaXRzoHRoZaBtZW1vcnmgdXNlZKBieTxicj4KK6CgVmFsZ3JpbmSgZm9yoHJlY29yZGVkoHN0YWNroHRyYWNlc6BhbmSgYXZvaWRzoHJlY29yZGluZzxicj4KK6CgdW5pbnRlcmVzdGluZ6ByZXBlYXRlZKBjYWxscy6goFRoaXOgaXOgY29udHJvbGxlZKBieaB0aGWgY29tbWFuZDxicj4KK6CgbGluZaBvcHRpb26gLS1tZXJnZS1yZWN1cnNpdmUtZnJhbWWgYW5koGJ5oHRoZaBtb25pdG9yoGNvbW1hbmQ8YnI+CiugoCJ2LnNldKBtZXJnZS1yZWN1cnNpdmUtZnJhbWVzIi48YnI+Cis8YnI+CisqoEZpbGWgbmFtZaBhbmSgbGluZaBudW1iZXJzoGZvcqB1c2VkoHN1cHByZXNzaW9ucy6goFRoZaBsaXN0oG9moHVzZWQ8YnI+CiugoHN1cHByZXNzaW9uc6Aoc2hvd26gd2hlbqB0aGWgLXagb3B0aW9uoGlzoGdpdmVuKaBub3egc2hvd3MsoGZvcqBlYWNoPGJyPgoroKB1c2VkoHN1cHByZXNzaW9uLKB0aGWgZmlsZaBuYW1loGFuZKBsaW5loG51bWJlcqB3aGVyZaB0aGWgc3VwcHJlc3Npb248YnI+CiugoGlzoGRlZmluZWQuPGJyPgorPGJyPgorKqBOZXegYW5koG1vZGlmaWVkoEdEQqBzZXJ2ZXKgbW9uaXRvcqBmZWF0dXJlczo8YnI+Cis8YnI+CiugoC2gdmFsZ3JpbmQuaKBoYXOgYaBuZXegY2xpZW50oHJlcXVlc3QsoFZBTEdSSU5EX01PTklUT1JfQ09NTUFORCw8YnI+CiugoKCgdGhhdKBjYW6gYmWgdXNlZKB0b6BleGVjdXRloGdkYnNlcnZlcqBtb25pdG9yoGNvbW1hbmRzoGZyb22gdGhlPGJyPgoroKCgoGNsaWVudKBwcm9ncmFtLjxicj4KKzxicj4KK6CgLaBBoG5ld6Btb25pdG9yoGNvbW1hbmQsoCJ2LmluZm+gb3Blbl9mZHMiLKB0aGF0oGdpdmVzoHRoZaBsaXN0oG9mPGJyPgoroKCgoG9wZW6gZmlsZaBkZXNjcmlwdG9yc6BhbmSgYWRkaXRpb25hbKBkZXRhaWxzLjxicj4KKzxicj4KK6CgLaBBbqBvcHRpb25hbKBtZXNzYWdloGluoHRoZaAidi5pbmZvoG5fZXJyc19mb3VuZCKgbW9uaXRvcqBjb21tYW5kLDxicj4KK6CgoKBmb3KgZXhhbXBsZaAidi5pbmZvoG5fZXJyc19mb3VuZKB0ZXN0oDEyMzSgZmluaXNoZWQiLKBhbGxvd2luZ6BhPGJyPgoroKCgoGNvbW1lbnSgc3RyaW5noHRvoGJloGFkZGVkoHRvoHRoZaBwcm9jZXNzoG91dHB1dCygcGVyaGFwc6Bmb3KgdGhlPGJyPgoroKCgoHB1cnBvc2Wgb2agc2VwYXJhdGluZ6BlcnJvcnOgb2agZGlmZmVyZW50oHRlc3RzoG9yoHRlc3SgcGhhc2VzLjxicj4KKzxicj4KK6CgLaBBoG5ld6Btb25pdG9yoGNvbW1hbmSgInYuaW5mb6BleGVjb250ZXh0IqB0aGF0oHNob3dzoGluZm9ybWF0aW9uPGJyPgoroKCgoGFib3V0oHRoZaBzdGFja6B0cmFjZXOgcmVjb3JkZWSgYnmgVmFsZ3JpbmQuPGJyPgorPGJyPgoroKAtoEGgbmV3oG1vbml0b3KgY29tbWFuZKAidi5kb6BleHBlbnNpdmVfc2FuaXR5X2NoZWNrX2dlbmVyYWwioHRvoHJ1bjxicj4KK6CgoKBzb21loGludGVybmFsoGNvbnNpc3RlbmN5oGNoZWNrcy48YnI+Cis8YnI+CisqoE5ld6BmbGFnoC0tc2lnaWxsLWRpYWdub3N0aWNzoHRvoGNvbnRyb2ygd2hldGhlcqBhoGRpYWdub3N0aWM8YnI+CiugoG1lc3NhZ2WgaXOgcHJpbnRlZKB3aGVuoHRoZaBKSVSgZW5jb3VudGVyc6BhbqBpbnN0cnVjdGlvbqBpdKBjYW4ndDxicj4KK6CgdHJhbnNsYXRlLqCgVGhloGFjdHVhbKBiZWhhdmlvcqAtLaBkZWxpdmVyeaBvZqBTSUdJTEygdG+gdGhlPGJyPgoroKBhcHBsaWNhdGlvbqAtLaBpc6B1bmNoYW5nZWQuPGJyPgorPGJyPgorKqBUaGWgbWF4aW11baBhbW91bnSgb2agbWVtb3J5oHRoYXSgVmFsZ3JpbmSgY2FuoHVzZaBvbqA2NKBiaXSgdGFyZ2V0czxicj4KK6CgaGFzoGJlZW6gaW5jcmVhc2VkoGZyb22gMzJHQqB0b6A2NEdCLqCgVGhpc6BzaG91bGSgbWFrZaBpdKBwb3NzaWJsZTxicj4KK6CgdG+gcnVuoGFwcGxpY2F0aW9uc6BvbqBNZW1jaGVja6B0aGF0oG5hdGl2ZWx5oHJlcXVpcmWgdXCgdG+gYWJvdXSgMzVHQi48YnI+Cis8YnI+CisqoD09PT09PT09PT09PT09PT09PT09oEZJWEVEoEJVR1OgPT09PT09PT09PT09PT09PT09PT08YnI+Cis8YnI+CitUaGWgZm9sbG93aW5noGJ1Z3OgaGF2ZaBiZWVuoGZpeGVkoG9yoHJlc29sdmVkLqCgTm90ZaB0aGF0oCJuLWktYnoiPGJyPgorc3RhbmRzoGZvcqAibm90oGluoGJ1Z3ppbGxhIqAtLaB0aGF0oGlzLKBhoGJ1Z6B0aGF0oHdhc6ByZXBvcnRlZKB0b6B1czxicj4KK2J1dKBuZXZlcqBnb3SgYaBidWd6aWxsYaBlbnRyeS6goFdloGVuY291cmFnZaB5b3WgdG+gZmlsZaBidWdzoGluPGJyPgorYnVnemlsbGGgKGh0dHBzOi8vYnVncy5rZGUub3JnL2VudGVyX2J1Zy5jZ2k/cHJvZHVjdD12YWxncmluZCmgcmF0aGVyPGJyPgordGhhbqBtYWlsaW5noHRoZaBkZXZlbG9wZXJzoChvcqBtYWlsaW5noGxpc3RzKaBkaXJlY3RseaAtLaBidWdzoHRoYXQ8YnI+CithcmWgbm90oGVudGVyZWSgaW50b6BidWd6aWxsYaB0ZW5koHRvoGdldKBmb3Jnb3R0ZW6gYWJvdXSgb3KgaWdub3JlZC48YnI+Cis8YnI+CitUb6BzZWWgZGV0YWlsc6BvZqBhoGdpdmVuoGJ1ZyygdmlzaXQ8YnI+CiugoGh0dHBzOi8vYnVncy5rZGUub3JnL3Nob3dfYnVnLmNnaT9pZD1YWFhYWFg8YnI+Cit3aGVyZaBYWFhYWFigaXOgdGhloGJ1Z6BudW1iZXKgYXOgbGlzdGVkoGJlbG93Ljxicj4KKzxicj4KKzEyMzgzN6Cgc3lzdGVtoGNhbGw6oDR0aKBhcmd1bWVudKBpc6BvcHRpb25hbCygZGVwZW5kaW5noG9uoGNtZDxicj4KKzEzNTQyNaCgbWVtY2hlY2ugc2hvdWxkoHRlbGygeW91oHdoZXJloEZyZWVkoGJsb2Nrc6B3ZXJloE1hbGxvY2Q8YnI+CisxNjQ0ODWgoFZHX05fU0VHTkFNRVOgYW5koFZHX05fU0VHTUVOVFOgYXJloChzdGlsbCmgdG9voHNtYWxsPGJyPgorMjA3ODE1oKBBZGRzoHNvbWWgb2agdGhloGRybaBpb2N0bHOgdG+gc3lzd3JhcC1saW51eC5joDxicj4KKzI1MTU2OaCgdmV4oGFtZDY0LSZndDtJUjqgMHhGoDB4MaAweEY5oDB4QkagMHg5MKAweEQwoDB4M6AweDCgKFJEVFNDUCk8YnI+CisyNTI5NTWgoEltcG9zc2libGWgdG+gY29tcGlsZaB3aXRooGNjYWNoZTxicj4KKzI1MzUxOaCgTWVtY2hlY2ugcmVwb3J0c6BhdXh2oHBvaW50ZXKgYWNjZXNzZXOgYXOgaW52YWxpZKByZWFkcy48YnI+CisyNjMwMzSgoENyYXNooHdoZW6gbG9hZGluZ6Bzb21loFBQQzY0oGJpbmFyaWVzPGJyPgorMjY5NTk5oKBJbmNyZWFzZaBkZWVwZXN0oGJhY2t0cmFjZTxicj4KKzI3NDY5NaCgczM5MHg6oFN1cHBvcnSgImNvbXBhcmWgdG8vZnJvbaBsb2dpY2FsIqBpbnN0cnVjdGlvbnOgKHoxOTYpPGJyPgorMjc1ODAwoKBzMzkweDqgQXV0b2RldGVjdKBjYWNoZaBpbmZvoChwYXJ0oDIpPGJyPgorMjgwMjcxoKBWYWxncmluZKByZXBvcnRzoHBvc3NpYmxloG1lbW9yeaBsZWFrc6BvbqBzdGlsbC1yZWFjaGFibGWgc3RkOjpzdHJpbmc8YnI+CisyODQ1NDCgoE1lbWNoZWNroHNob3VsZG4ndKBjb3VudKBzdXBwcmVzc2lvbnOgbWF0Y2hpbmegc3RpbGwtcmVhY2hhYmxloFsuLl08YnI+CisyODk1NzigoEJhY2t0cmFjZXOgd2l0aKBBUk2gdW53aW5koHRhYmxlc6Aoc3RhY2ugc2NhbqBmbGFncyk8YnI+CisyOTYzMTGgoFdyb25noHN0YWNroHRyYWNlc6BkdWWgdG+gLWZvbWl0LWZyYW1lLXBvaW50ZXKgKHg4NimgPGJyPgorMzA0ODMyoKBwcGMzMjqgYnVpbGSgZmFpbHVyZTxicj4KKzMwNTQzMaCgVXNloGZpbmRfYnVpbGRpZKBzaGRyoGZhbGxiYWNroGZvcqBzZXBhcmF0ZaAuZGVidWegZmlsZXM8YnI+CiszMDU3MjigoEFkZKBzdXBwb3J0oGZvcqBBVlgyoGluc3RydWN0aW9uczxicj4KKzMwNTk0OKCgcHBjNjQ6oGNvZGWgZ2VuZXJhdGlvbqBmb3KgU2hsRDY0oC+gU2hyRDY0oGFzc2VydHM8YnI+CiszMDYwMzWgoHMzOTB4OqBGaXigSVKgZ2VuZXJhdGlvbqBmb3KgTEFBR6BhbmSgZnJpZW5kczxicj4KKzMwNjA1NKCgczM5MHg6oENvbmRpdGlvbqBjb2RloGNvbXB1dGF0aW9uoGZvcqBjb252ZXJ0LXRvLWludC9sb2dpY2FsPGJyPgorMzA2MDk4oKBzMzkweDqgYWx0ZXJuYXRloG9wY29kZaBmb3JtoGZvcqBjb252ZXJ0oHRvL2Zyb22gZml4ZWQ8YnI+CiszMDY1ODegoEZpeKBjYWNoZaBsaW5loGRldGVjdGlvbqBmcm9toGF1eGlsaWFyeaB2ZWN0b3KgZm9yoFBQQy48YnI+CiszMDY3ODOgoE1pcHOgdW5oYW5kbGVkoHN5c2NhbGygOqCgNDAyNaCgL6CgNDA3OaCgL6A0MTgyPGJyPgorMzA3MDM4oKBEV0FSRjKgQ0ZJoHJlYWRlcjqgdW5oYW5kbGVkoERXX09QX6BvcGNvZGWgMHg4oChEV19PUF9jb25zdDF1oGV0oGFsKTxicj4KKzMwNzA4MqCgSEegZmFsc2WgcG9zaXRpdmU6oHB0aHJlYWRfY29uZF9kZXN0cm95OqBkZXN0cnVjdGlvbqBvZqB1bmtub3duoENWPGJyPgorMzA3MTAxoKBzeXNfY2FwZ2V0oHNlY29uZKBhcmd1bWVudKBjYW6gYmWgTlVMTDxicj4KKzMwNzEwM6Cgc3lzX29wZW5hdDqgSWagcGF0aG5hbWWgaXOgYWJzb2x1dGUsoHRoZW6gZGlyZmSgaXOgaWdub3JlZC48YnI+CiszMDcxMDagoGFtZDY0LSZndDtJUjqgZjCgMGagYzCgMDKgKGxvY2ugeGFkZKBieXRlKTxicj4KKzMwNzExM6CgczM5MHg6oERGUKBzdXBwb3J0PGJyPgorMzA3MTQxoKB2YWxncmluZKBkb2VzJ3Sgd29ya6BpbqBtaXBzLWxpbnV4oHN5c3RlbTxicj4KKzMwNzE1NaCgZmlsdGVyX2dkYqBzaG91bGSgZmlsdGVyoG91dKBzeXNjYWxsLXRlbXBsYXRlLlOgVF9QU0VVRE88YnI+CiszMDcyODWgoHg4Nl9hbWQ2NKBmZWF0dXJloHRlc3SgZm9yoGF2eKBpbqB0ZXN0oHN1aXRloGlzoHdyb25nPGJyPgorMzA3MjkwoKBtZW1jaGVja6BvdmVybGFwoHRlc3RjYXNloG5lZWRzoG1lbWNweaB2ZXJzaW9uoGZpbHRlcjxicj4KKzMwNzQ2M6CgUGxlYXNloGFkZKAiJmFtcDtsaW1pdD0wIqB0b6B0aGWgImFsbKBvcGVuoGJ1Z3MioGxpbms8YnI+CiszMDc0NjWgoC0tc2hvdy1wb3NzaWJseS1sb3N0PW5voHNob3VsZKByZWR1Y2WgdGhloGVycm9yoGNvdW50oC+gZXhpdKBjb2RlPGJyPgorMzA3NTU3oKBMZWFrc6BvbqBNYWOgT1OgWKAxMC43LjWgbGlicmFyaWVzoGF0oEltYWdlTG9hZGVyOjpyZWN1cnNpdmVJbml0Wy4uXTxicj4KKzMwNzcyOaCgcGtnY29uZmlnoHN1cHBvcnSgYnJva2VuoHZhbGdyaW5kLnBjPGJyPgorMzA3ODI4oKBNZW1jaGVja6BmYWxzZaBlcnJvcnOgU1NFoG9wdGltaXplZKB3Y3NjcHksoHdjc2NtcCygd2NzcmNociygd2NzY2hyPGJyPgorMzA3OTU1oKBCdWlsZGluZ6B2YWxncmluZKAzLjcuMC1yNKBmYWlsc6BpbqBHZW50b2+gQU1ENjSgd2hlbqB1c2luZ6BjbGFuZzxicj4KKzMwODA4OaCgVW5oYW5kbGVkoHN5c2NhbGygb26gcHBjNjQ6oHByY3RsPGJyPgorMzA4MTM1oKBQUEMzMqBNUEM4eHigaGFzoDE2oGJ5dGVzoGNhY2hloHNpemU8YnI+CiszMDgzMjGgoHRlc3RzdWl0ZaBtZW1jaGVja6BmaWx0ZXKgaW50ZXJmZXJlc6B3aXRooGdkYl9maWx0ZXKgPGJyPgorMzA4MzMzoD09oDMwNzEwNjxicj4KKzMwODM0MaCgdmdkYqBzaG91bGSgcmVwb3J0oHByb2Nlc3OgZXhpdKAob3KgZmF0YWygc2lnbmFsKTxicj4KKzMwODQyN6CgczM5MKBtZW1jaGVja6ByZXBvcnRzoHRzZWFyY2igY2p1bXAvY21vdmWgZGVwZW5kc6BvbqB1bmluaXQ8YnI+CiszMDg0OTWgoFJlbW92ZaBidWlsZKBkZXBlbmRlbmN5oG9uoGluc3RhbGxlZKBYZW6gaGVhZGVyczxicj4KKzMwODU3M6CgSW50ZXJuYWygZXJyb3Kgb26gNjQtYml0oGluc3RydWN0aW9uoGV4ZWN1dGVkoGluoDMyLWJpdKBtb2RlPGJyPgorMzA4NjI2oKA9PaAzMDg2Mjc8YnI+CiszMDg2MjegoHBtb3Ztc2tioHZhbGlkaXR5oGJpdKBwcm9wYWdhdGlvbqBpc6BpbXByZWNpc2U8YnI+CiszMDg2NDSgoHZnZGKgY29tbWFuZKBmb3KgaGF2aW5noHRoZaBpbmZvoGZvcqB0aGWgdHJhY2stZmRzoG9wdGlvbjxicj4KKzMwODcxMaCgZ2l2ZaBtb3JloGluZm+gYWJvdXSgYXNwYWNlbWdyoGFuZKBhcmVuYXOgaW6gb3V0X29mX21lbW9yeTxicj4KKzMwODcxN6CgQVJNOqBpbXBsZW1lbnSgZml4ZWQtcG9pbnSgVkNWVC5GNjQuW1NVXTMyPGJyPgorMzA4NzE4oKBBUk2gaW1wbGVtZW50oFNNTEFMQkKgZmFtaWx5oG9moGluc3RydWN0aW9uczxicj4KKzMwODg4NqCgTWlzc2luZ6BzdXBwb3J0oGZvcqBQVFJBQ0VfU0VUL0dFVFJFR1NFVKA8YnI+CiszMDg5MzCgoHN5c2NhbGygbmFtZV90b19oYW5kbGVfYXSgKDMwM6BvbqBhbWQ2NCmgbm90oGhhbmRsZWQ8YnI+CiszMDkyMjmgoFYtYml0oHRlc3RlcqBkb2VzoG5vdKByZXBvcnSgbnVtYmVyoG9moHRlc3RzoGdlbmVyYXRlZDxicj4KKzMwOTMyM6CgcHJpbnSgdW5yZWNvZ25pemVkoGluc3R1Y3Rpb26gb26gTUlQUzxicj4KKzMwOTQyNaCgUHJvdmlkZaBhoC0tc2lnaWxsLWRpYWdub3N0aWNzoGZsYWegdG+gc3VwcHJlc3OgaWxsZWdhbKBbLi5dPGJyPgorMzA5NDI3oKBTU0Wgb3B0aW1pemVkoHN0cG5jcHmgdHJpZ2dlcqB1bmluaXRpYWxpc2VkoHZhbHVloFsuLl2gZXJyb3JzPGJyPgorMzA5NDMwoKBTZWxmoGhvc3RpbmegcHBjNjSgZW5jb3VudGVyc6BhoHZhc3NlcnSgZXJyb3Kgb26gb3BlcmFuZKB0eXBlPGJyPgorMzA5NjAwoKB2YWxncmluZKBpc6BhoGJpdKBjb25mdXNlZKBhYm91dKAwLXNpemVkoHNlY3Rpb25zPGJyPgorMzA5ODIzoKBHZW5lcmF0ZaBlcnJvcnOgZm9yoHN0aWxsoHJlYWNoYWJsZaBibG9ja3M8YnI+CiszMDk5MjGgoFBDTVBJU1RSSaB2YWxpZGl0eaBiaXSgcHJvcGFnYXRpb26gaXOgaW1wcmVjaXNlPGJyPgorMzA5OTIyoKBub25lL3Rlc3RzL3BwYzY0L3Rlc3RfZGZwNaBzb21ldGltZXOgZmFpbHM8YnI+CiszMTAxNjmgoFRoZaBJb3BfQ21wT1JEoGNsYXNzoG9moElvcHOgaXOgbm90oHN1cHBvcnRlZKBieaB0aGWgdmJpdKBjaGVja2VyLjxicj4KKzMxMDQyNKCgLS1yZWFkLXZhci1pbmZvoGRvZXOgbm90oHByb3Blcmx5oGRlc2NyaWJloHN0YXRpY6B2YXJpYWJsZXOgPGJyPgorMzEwNzkyoKBzZWFyY2igYWRkaXRpb25hbKBwYXRooGZvcqBkZWJ1Z6BzeW1ib2xzPGJyPgorMzEwOTMxoKBzMzkweDqgTWVzc2FnZS1zZWN1cml0eaBhc3Npc3SgKE1TQSmgaW5zdHJ1Y3Rpb26gZXh0ZW5zaW9uoFsuLl08YnI+CiszMTExMDCgoFBQQ6BERlCgaW1wbGVtZW50YXRpb26gb2agdGhloGludGVnZXKgb3BlcmFuZHOgaXOgaW5jb25zaXN0ZW50oFsuLl08YnI+CiszMTEzMTigoEFSTTqgIjEyOC1iaXSgY29uc3RhbnSgaXOgbm90oGltcGxlbWVudGVkIqBlcnJvcqBtZXNzYWdlPGJyPgorMzExNDA3oKBzc3NlM6BiY29weaAoYWN0dWFsbHmgY29udmVydGVkoG1lbWNweSmgY2F1c2VzoGludmFsaWSgcmVhZKBbLi5dPGJyPgorMzExNjkwoKBWoGNyYXNoZXOgYmVjYXVzZaBpdKByZWRpcmVjdHOgYnJhbmNoZXOgaW5zaWRloG9moGGgcmVkaXJlY3RlZKBmdW5jdGlvbjxicj4KKzMxMTg4MKCgeDg2XzY0OqBtYWtloHJlZ3Rlc3SgaGFuZ3OgYXSgc2hlbGxfdmFsaWQxPGJyPgorMzExOTIyoKBXQVJOSU5HOqB1bmhhbmRsZWSgc3lzY2FsbDqgMTcwPGJyPgorMzExOTMzoKA9PaAyNTE1Njk8YnI+CiszMTIxNzGgoHBwYzqgaW5zbqBzZWxlY3Rpb26gZm9yoERGUDxicj4KKzMxMjU3MaCgUm91bmRpbmegbW9kZaBjYWxsoHdyb25noGZvcqB0aGWgREZQoElvcHOgWy4uXTxicj4KKzMxMjYyMKCgQ2hhbmdloHRvoElvcF9EMzJ0b0Q2NKBbLi5doGZvcqBzMzkwoERGUKBzdXBwb3J0oGJyb2tloHBwY6BbLi5dPGJyPgorMzEyOTEzoKBEYW5nbGluZ6Bwb2ludGVyc6BlcnJvcqBzaG91bGSgYWxzb6ByZXBvcnSgdGhloGFsbG9joHN0YWNroHRyYWNlPGJyPgorMzEyOTgwoKBCdWlsZGluZ6BvbqBNb3VudGFpbqBMaW9uoGdlbmVyYXRlc6Bzb21loGNvbXBpbGVyoHdhcm5pbmdzPGJyPgorMzEzMjY3oKBBZGRpbmegTUlQUzY0L0xpbnV4oHBvcnSgdG+gVmFsZ3JpbmQ8YnI+CiszMTMzNDigoD09oDI1MTU2OTxicj4KKzMxMzM1NKCgPT2gMjUxNTY5PGJyPgorMzEzODExoKBCdWZmZXKgb3ZlcmZsb3egaW6gYXNzZXJ0X2ZhaWw8YnI+CiszMTQwOTmgoGNvdmVyaXR5oHBvaW50ZWSgb3V0oGVycm9yoGluoFZFWKBndWVzdF9wcGNfdG9JUi5joGluc25fc3VmZml4PGJyPgorMzE0MjY5oKBwcGM6oGRlYWSgY29kZaBpbqBpbnNuoHNlbGVjdGlvbjxicj4KKzMxNDcxOKCgQVJNOqBpbXBsZW1lbnSgaW50ZWdlcqBkaXZpZGWgaW5zdHJ1Y3Rpb26gKHNkaXagYW5koHVkaXYpPGJyPgorMzE1MzQ1oKBjbC1mb3JtYXQueG1soGFuZKBjYWxsZ3JpbmQvZHVtcC5joGRvbid0oGFncmVloG9uoHVzaW5noGNmbD2gb3KgY2ZpPTxicj4KKzMxNTQ0MaCgc2VuZG1zZ6BzeXNjYWxsoHNob3VsZKBpZ25vcmWgdW5zZXSgbXNnaGRyoG1zZ19mbGFnczxicj4KKzMxNTUzNKCgbXNncmN2oGluc2lkZaBhoHRocmVhZKBjYXVzZXOgdmFsZ3JpbmSgdG+gaGFuZ6AoYmxvY2spPGJyPgorMzE1NTQ1oKBBc3NlcnRpb26gJyhVQ2hhciopc2VjLSZndDt0dFt0dGVOb10udGNwdHKgJmx0Oz2gKFVDaGFyKiloY29kZSegZmFpbGVkPGJyPgorMzE1Njg5oKBkaXNJbnN0cih0aHVtYik6oHVuaGFuZGxlZKBpbnN0cnVjdGlvbjqgMHhGODUyoDB4MEUxMKAoTERSVCk8YnI+CiszMTU3MzigoGRpc0luc3RyKGFybSk6oHVuaGFuZGxlZKBpbnN0cnVjdGlvbjqgMHhFRUJFMEJFRaAodmN2dC5zMzIuZjY0KTxicj4KKzMxNTk1OaCgdmFsZ3JpbmSgbWFuoHBhZ2WgaGFzoGJvZ3VzoFNHQ0hFQ0ugKGFuZKBub6BCQlYpoE9QVElPTlOgc2VjdGlvbjxicj4KKzMxNjE0NKCgdmFsZ3JpbmQuMaBtYW5wYWdloGNvbnRhaW5zoHVua25vd26gPz8/oHN0cmluZ3OgWy4uXTxicj4KKzMxNjE0NaCgY2FsbGdyaW5koGNvbW1hbmSgbGluZaBvcHRpb25zoGluoG1hbnBhZ2WgcmVmZXJlbmNloCh1bmtub3duKaBbLi5dPGJyPgorMzE2MTQ1oKBjYWxsZ3JpbmSgY29tbWFuZKBsaW5loG9wdGlvbnOgaW6gbWFucGFnZaByZWZlcmVuY2WgWy4uXTxicj4KKzMxNjE4MaCgZHJkOqBGaXhlZKBhoDR4oHNsb3dkb3duoGZvcqBjZXJ0YWluoGFwcGxpY2F0aW9uczxicj4KKzMxNjUwM6CgVmFsZ3JpbmSgZG9lc6Bub3Sgc3VwcG9ydKBTU0U0oCJtb3ZudGRxYSKgaW5zdHJ1Y3Rpb248YnI+CiszMTY1MzWgoFVzZaBvZqB8c2lnbmVkoGludHygaW5zdGVhZKBvZqB8c2l6ZV90fKBpbqB2YWxncmluZKBtZXNzYWdlczxicj4KKzMxNjY5NqCgoGZsdWlkYW5pbWF0ZaBwcm9ncmFtoG9moHBhcnNlY6AyLjGgc3R1Y2ugPGJyPgorMzE2NzYxoKBzeXNjYWxsoG9wZW5fYnlfaGFuZGxlX2F0oCgzMDSgb26gYW1kNjQsoDM0MqBvbqB4ODYpoG5vdKBoYW5kbGVkPGJyPgorMzE3MDkxoKBVc2WgLVdsLC1UdGV4dC1zZWdtZW50oHdoZW6gc3RhdGljoGxpbmtpbmegaWagcG9zc2libGWgWy4uXTxicj4KKzMxNzE4NqCgIkltcG9zc2libGWgaGFwcGVucyKgd2hlbqBvY2N1cnOgVkNWVKBpbnN0cnVjdGlvbqBvbqBBUk08YnI+CiszMTczMTigoFN1cHBvcnSgZm9yoFRocmVhZGluZ6BCdWlsZGluZ6BCbG9ja3OgInNjYWxhYmxlX21hbGxvYyI8YnI+CiszMTc0NDSgoGFtZDY0LSZndDtJUjqgMHhDNKAweDQxoDB4MkOgMHhDMqAweEQyoDB4OKAodmNtcGVxX3VxcHMpPGJyPgorMzE3NDYxoKBGaXigQk1JoGFzc2VtYmxlcqBjb25maWd1cmWgY2hlY2ugYW5koGF2eDIvYm1pL2ZtYaB2Z3Rlc3SgcHJlcmVxczxicj4KKzMxNzQ2M6CgYm1poHRlc3RjYXNloElSoFNBTklUWaBDSEVDS6BGQUlMVVJFPGJyPgorMzE3NTA2oKBtZW1jaGVjay90ZXN0cy92Yml0LXRlc3SgZmFpbHOgd2l0aKB1bmtub3duoG9wY29kZaBhZnRlcqBbLi5dPGJyPgorMzE4MDUwoKBsaWJtcGl3cmFwoGZhaWxzoHRvoGNvbXBpbGWgd2l0aKBvdXQtb2Ytc291cmNloGJ1aWxkPGJyPgorMzE4MjAzoKBzZXRzb2Nrb3B0oGhhbmRsaW5noG5lZWRzoHRvoGhhbmRsZaBTT0xfU09DS0VUL1NPX0FUVEFDSF9GSUxURVI8YnI+CiszMTg2NDOgoGFubm90YXRlX3RyYWNlX21lbW9yeaB0ZXN0c6BpbmZpbml0ZaBsb29woG9uoGFybaBhbmSgcHBjoFsuLl08YnI+CiszMTg3NzOgoGFtZDY0LSZndDtJUjqgMHhGM6AweDQ4oDB4MEagMHhCQ6AweEMyoDB4QzOgMHg2NqAweDBGPGJyPgorMzE4OTI5oKBDcmFzaKB3aXRoOqBkaXNJbnN0cih0aHVtYik6oDB4RjMyMaAweDAwMDGgKHNzYXQxNik8YnI+CiszMTg5MzKgoEFkZKBtaXNzaW5noFBQQzY0oGFuZKBQUEMzMqBzeXN0ZW2gY2FsbKBzdXBwb3J0PGJyPgorMzE5MjM1oKAtLWRiLWF0dGFjaD15ZXOgaXOgYnJva2VuoHdpdGigWWFtYaAocHRyYWNloHNjb3BpbmcpoGVuYWJsZWQ8YnI+CiszMTkzOTWgoENyYXNooHdpdGigdW5oYW5kbGVkoGluc3RydWN0aW9uoG9uoFNUUlSgKFRodW1iKaBpbnN0cnVjdGlvbnM8YnI+CiszMTk0OTSgoFZFWKBNYWtlZmlsZS1nY2Ogc3RhbmRhbG9uZaBidWlsZKB1cGRhdGWgYWZ0ZXKgcjI3MDI8YnI+CiszMTk1MDWgoFtNSVBTRUxdoENyYXNoOqB1bmhhbmRsZWSgVU5SQVmgb3BlcmF0b3IuPGJyPgorMzE5ODU4oKBkaXNJbnN0cih0aHVtYik6oHVuaGFuZGxlZKBpbnN0cnVjdGlvbqBvbqBpbnN0cnVjdGlvbqBTVFJCVDxicj4KKzMxOTkzMqCgZGlzSW5zdHIodGh1bWIpOqB1bmhhbmRsZWSgaW5zdHJ1Y3Rpb26gb26gaW5zdHJ1Y3Rpb26gU1RSSFQ8YnI+CiszMjAwNTegoFByb2JsZW1zoHdoZW6gd2WgdHJ5oHRvoG1tYXCgbW9yZaB0aGFuoDEyoG1lbW9yeaBwYWdlc6BvbqBNSVBTMzI8YnI+CiszMjAwNjOgoE1lbW9yeaBmcm9toFBUUkFDRV9HRVRfVEhSRUFEX0FSRUGgaXOgcmVwb3J0ZWSgdW5pbml0aWFsaXNlZDxicj4KKzMyMDA4M6CgZGlzSW5zdHIodGh1bWIpOqB1bmhhbmRsZWSgaW5zdHJ1Y3Rpb26gb26gaW5zdHJ1Y3Rpb26gTERSQlQ8YnI+CiszMjAxMTagoGJpbmSgb26gQUZfQkxVRVRPT1RIoHByb2R1Y2VzoHdhcm5pbmdzoGJlY2F1c2Wgb2agc29ja2FkZHJfcmOgcGFkZGluZzxicj4KKzMyMDEzMaCgV0FSTklORzqgdW5oYW5kbGVkoHN5c2NhbGw6oDM2OaBvbqBBUk2gKHBybGltaXQ2NCk8YnI+CiszMjAyMTGgoFN0YWNroGJ1ZmZlcqBvdmVyZmxvd6BpbqAuL2NvcmVncmluZC9tX21haW4uY6B3aXRooGh1Z2WgVE1QRElSPGJyPgorMzIwNjYxoKB2Z01vZHVsZUxvY2FsX3JlYWRfZWxmX2RlYnVnX2luZm8oKTqgIkFzc2VydGlvbqAnIWRpLSZndDtzb25hbWUnPGJyPgorMzIwODk1oKBhZGSgZmFub3RpZnmgc3VwcG9ydKAocGF0Y2igaW5jbHVkZWQpPGJyPgorMzIwOTk4oKB2ZXigYW1kNjQtJmd0O0lSoHBjbXBlc3RyaaBhbmSgcGNtcGVzdHJtoFNTRTQuMqBpbnN0cnVjdGlvbjxicj4KKzMyMTA2NaCgVmFsZ3JpbmSgdXBkYXRlc6Bmb3KgWGVuoDQuMzxicj4KKzMyMTE0OKCgVW5oYW5kbGVkoGluc3RydWN0aW9uOqBQTEmgKFRodW1ioDEsoDIsoDMpPGJyPgorMzIxMzYzoKBVbmhhbmRsZWSgaW5zdHJ1Y3Rpb246oFNTQVigKEFSTaAroFRodW1iKTxicj4KKzMyMTM2NKCgVW5oYW5kbGVkoGluc3RydWN0aW9uOqBTWFRBQjE2oChBUk2gK6BUaHVtYik8YnI+CiszMjE0NjagoFVuaGFuZGxlZKBpbnN0cnVjdGlvbjqgU0hBU1igKEFSTaAroFRodW1iKTxicj4KKzMyMTQ2N6CgVW5oYW5kbGVkoGluc3RydWN0aW9uOqBTSFNBWKAoQVJNoCugVGh1bWIpPGJyPgorMzIxNDY4oKBVbmhhbmRsZWSgaW5zdHJ1Y3Rpb246oFNIU1VCMTagKEFSTaAroFRodW1iKTxicj4KKzMyMTYxOaCgVW5oYW5kbGVkoGluc3RydWN0aW9uOqBTSFNVQjigKEFSTaAroFRodW1iKTxicj4KKzMyMTYyMKCgVW5oYW5kbGVkoGluc3RydWN0aW9uOqBVQVNYoChBUk2gK6BUaHVtYik8YnI+CiszMjE2MjGgoFVuaGFuZGxlZKBpbnN0cnVjdGlvbjqgVVNBWKAoQVJNoCugVGh1bWIpPGJyPgorMzIxNjkyoKBVbmhhbmRsZWSgaW5zdHJ1Y3Rpb246oFVRQUREMTagKEFSTaAroFRodW1iKTxicj4KKzMyMTY5M6CgVW5oYW5kbGVkoGluc3RydWN0aW9uOqBMRFJTQlSgKFRodW1iKTxicj4KKzMyMTY5NKCgVW5oYW5kbGVkoGluc3RydWN0aW9uOqBVUUFTWKAoQVJNoCugVGh1bWIpPGJyPgorMzIxNjk2oKBVbmhhbmRsZWSgaW5zdHJ1Y3Rpb246oFVRU0FYoChUaHVtYqAroEFSTSk8YnI+CiszMjE2OTegoFVuaGFuZGxlZKBpbnN0cnVjdGlvbjqgVUhBU1igKEFSTaAroFRodW1iKTxicj4KKzMyMTcwM6CgVW5oYW5kbGVkoGluc3RydWN0aW9uOqBVSFNBWKAoQVJNoCugVGh1bWIpPGJyPgorMzIxNzA0oKBVbmhhbmRsZWSgaW5zdHJ1Y3Rpb246oFJFVlNIoChBUk2gK6BUaHVtYik8YnI+CiszMjE3MzCgoEFkZKBjZ19kaWZmoGFuZKBjZ19tZXJnZaBtYW6gcGFnZXM8YnI+CiszMjE3MzigoEFkZKB2Z2RioGFuZKB2YWxncmluZC1saXN0ZW5lcqBtYW6gcGFnZXM8YnI+CiszMjE4MTSgoD09oDMxNTU0NTxicj4KKzMyMTg5MaCgVW5oYW5kbGVkoGluc3RydWN0aW9uOqBMRFJIVKAoVGh1bWIpPGJyPgorMzIxOTYwoKBwdGhyZWFkX2NyZWF0ZSgpoHRoZW6gYWxsb2NhKCmgY2F1c2luZ6BpbnZhbGlkoHN0YWNroHdyaXRloGVycm9yczxicj4KKzMyMTk2OaCgcHBjMzKgYW5koHBwYzY0oGRvbid0oHN1cHBvcnSgW2xmXXNldHhhdHRyPGJyPgorMzIyMjU0oKBTaG93oHRocmVhZG5hbWWgdG9nZXRoZXKgd2l0aKB0aWSgaWagc2V0oGJ5oGFwcGxpY2F0aW9uPGJyPgorMzIyMjk0oKBBZGSgaW5pdGlhbKBzdXBwb3J0oGZvcqBJQk2gUG93ZXKgSVNBoDIuMDc8YnI+CiszMjIzNjigoEFzc2VydGlvbqBmYWlsdXJloGluoHdxdGhyZWFkX2hpamFja6B1bmRlcqBPU6BYoDEwLjg8YnI+CiszMjI1NjOgoHZleKBtaXBzLSZndDtJUjqgMHg3MKAweDgzoDB4RjCgMHgzQTxicj4KKzMyMjgwN6CgVkFMR1JJTkRfUFJJTlRGX0JBQ0tUUkFDRaB3cml0ZXOgY2FsbHN0YWNroHRvoHhtbKBhbmSgdGV4dKB0b6BzdGRlcnI8YnI+CiszMjI4NTGgoDBiWFhYoGJpbmFyeaBsaXRlcmFsoHN5bnRheKBpc6Bub3Sgc3RhbmRhcmSgPGJyPgorMzIzMDM1oKBVbmhhbmRsZWSgaW5zdHJ1Y3Rpb246oExEUlNIVChUaHVtYik8YnI+CiszMjMwMzagoFVuaGFuZGxlZKBpbnN0cnVjdGlvbjqgU01NTFOgKEFSTaBhbmSgVGh1bWIpPGJyPgorMzIzMTE2oKBUaGWgbWVtY2hlY2svdGVzdHMvcHBjNjQvcG93ZXJfSVNBMl8wNS5joGZhaWxzoHRvoGJ1aWxkoFsuLl08YnI+CiszMjMxNzWgoFVuaGFuZGxlZKBpbnN0cnVjdGlvbjqgU01MQUxEoChBUk2gK6BUaHVtYik8YnI+CiszMjMxNzegoFVuaGFuZGxlZKBpbnN0cnVjdGlvbjqgU01MU0xEoChBUk2gK6BUaHVtYik8YnI+CiszMjM0MzKgoENhbGxpbmegcHRocmVhZF9jb25kX2Rlc3Ryb3koKaBvcqBwdGhyZWFkX211dGV4X2Rlc3Ryb3koKaBbLi5dPGJyPgorMzIzNDM3oKBQaGFzZaAyoHN1cHBvcnSgZm9yoElCTaBQb3dlcqBJU0GgMi4wNzxicj4KKzMyMzcxM6CgU3VwcG9ydKBtbXhleHSgKGludGVnZXKgc3NlKaBzdWJzZXSgb26gaTM4NqAoYXRobG9uKTxicj4KKzMyMzgwM6CgVHJhbnNhY3Rpb25hbKBtZW1vcnmgaW5zdHJ1Y3Rpb25zoGFyZaBub3Sgc3VwcG9ydGVkoGZvcqBQb3dlcjxicj4KKzMyMzg5M6CgU1NFM6Bub3SgYXZhaWxhYmxloG9uoGFtZKBjcHVzoGluoHZhbGdyaW5kPGJyPgorMzIzOTA1oKBQcm9iYWJsZaBmYWxzZaBwb3NpdGl2ZaBmcm9toFZhbGdyaW5kL2RyZKBvbqBjbG9zZSgpPGJyPgorMzIzOTEyoKB2YWxncmluZC5ooGhlYWRlcqBpc24ndKBjb21wYXRpYmxloGZvcqBtaW5ndzY0PGJyPgorMzI0MDQ3oKBWYWxncmluZKBkb2Vzbid0oHN1cHBvcnSgW0xEUixTVF17U31bQixIXVSgQVJNoGluc3RydWN0aW9uczxicj4KKzMyNDE0OaCgaGVsZ3JpbmQ6oFdoZW6gcHRocmVhZF9jb25kX3RpbWVkd2FpdKByZXR1cm5zoEVUSU1FRE9VVKBbLi5dPGJyPgorMzI0MTgxoKBtbWFwoGRvZXOgbm90oGhhbmRsZaBNQVBfMzJCSVQ8YnI+CiszMjQyMjegoG1lbWNoZWNroGZhbHNloHBvc2l0aXZloGxlYWugd2hlbqBhoHRocmVhZKBjYWxsc6BleGl0K2Jsb2NroFsuLl08YnI+CiszMjQ0MjGgoFN1cHBvcnSgZm9yoGZhbm90aWZ5oEFQSaBvbqBBUk2gYXJjaGl0ZWN0dXJlPGJyPgorMzI0NTE0oKBnZGJzZXJ2ZXKgbW9uaXRvcqBjbWSgb3V0cHV0oGJlaGF2aW91cqBjb25zaXN0ZW5jeaBbLi5dPGJyPgorMzI0NTE4oKBwcGM2NDqgRW11bGF0aW9uoG9moGRjYnSgaW5zdHJ1Y3Rpb25zoGRvZXOgbm90oGhhbmRsZaBbLi5dPGJyPgorMzI0NTQ2oKBub25lL3Rlc3RzL3BwYzMyoHRlc3RfaXNhXzJfMDdfcGFydDKgcmVxdWVzdHOgLW02NDxicj4KKzMyNDU4MqCgV2hlbqBhY2Nlc3OgaXOgbWFkZaB0b6BmcmVlZKBtZW1vcnksoHJlcG9ydKBib3RooGFsbG9jYXRpb26gWy4uXTxicj4KKzMyNDU5NKCgRml4oG92ZXJmbG93oGNvbXB1dGF0aW9uoGZvcqBQb3dlcqBJU0GgMi4wNqBpbnNuczqgbXVsbGRvL211bGxkby48YnI+CiszMjQ3NjWgoHBwYzY0OqBpbGxlZ2FsoGluc3RydWN0aW9uoHdoZW6gZXhlY3V0aW5noG5vbmUvdGVzdHMvcHBjNjQvam0tbWlzYzxicj4KKzMyNDgxNqCgSW5jb3JyZWN0oFZFWKBpbXBsZW1lbnRhdGlvbqBmb3KgeHNjdnNwZHAveHZjdnNwZHCgZm9yoFNOYU6gaW5wdXRzPGJyPgorMzI0ODM0oKBVbmhhbmRsZWSgaW5zdHJ1Y3Rpb25zoGluoE1pY3Jvc29mdKBDoHJ1bi10aW1loGZvcqB4ODZfNjQ8YnI+CiszMjQ4OTSgoFBoYXNloDOgc3VwcG9ydKBmb3KgSUJNoFBvd2VyoElTQaAyLjA3PGJyPgorMzI2MDkxoKBkcmQ6oEF2b2lkoGZhbHNloHJhY2WgcmVwb3J0c6Bmcm9toG9wdGltaXplZKBzdHJsZW4oKaBpbXBsczxicj4KKzMyNjExM6CgdmFsZ3JpbmSgbGlidmV4oGh3Y2Fwc6BlcnJvcqBvbqBBTUQ2NKA8YnI+CituLWktYnqgoFNvbWWgd3JvbmegY29tbWFuZKBsaW5loG9wdGlvbnOgY291bGSgYmWgaWdub3JlZDxicj4KK24taS1ieqCgcGF0Y2igdG+gYWxsb3egZmFpci1zY2hlZKBvbqBhbmRyb2lkPGJyPgorbi1pLWJ6oKByZXBvcnSgZXJyb3KgZm9yoHZnZGKgc25hcHNob3SgcmVxdWVzdGVkoGJlZm9yZaBleGVjdXRpb248YnI+CituLWktYnqgoHNhbWWgYXOgMzAzNjI0oChmaXhlZKBpbqAzLjguMCksoGJ1dKBmb3KgeDg2oGFuZHJvaWQ8YnI+Cis8YnI+CisoMy45LjA6oDMxoE9jdG9iZXKgMjAxMyygdmV4oHIyNzk2LKB2YWxncmluZKByMTM3MDgpPGJyPgorPGJyPgorPGJyPgorPGJyPgorUmVsZWFzZaAzLjguMaAoMTmgU2VwdGVtYmVyoDIwMTIpPGJyPgorfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+PGJyPgorMy44LjGgaXOgYaBidWegZml4oHJlbGVhc2UuoKBJdKBmaXhlc6Bzb21loGFzc2VydGlvbqBmYWlsdXJlc6BpbqAzLjguMDxicj4KK3RoYXSgb2NjdXKgbW9kZXJhdGVseaBmcmVxdWVudGx5oGluoHJlYWygdXNloGNhc2VzLKBhZGRzoHN1cHBvcnSgZm9yPGJyPgorc29tZaBtaXNzaW5noGluc3RydWN0aW9uc6BvbqBBUk0soGFuZKBmaXhlc6BhoGRlYWRsb2NroGNvbmRpdGlvbqBvbjxicj4KK01hY09TWC6goElmoHlvdaBwYWNrYWdloG9yoGRlbGl2ZXKgMy44LjCgZm9yoG90aGVyc6B0b6B1c2UsoHlvdaBtaWdodDxicj4KK3dhbnSgdG+gY29uc2lkZXKgdXBncmFkaW5noHRvoDMuOC4xoGluc3RlYWQuPGJyPgorPGJyPgorVGhloGZvbGxvd2luZ6BidWdzoGhhdmWgYmVlbqBmaXhlZKBvcqByZXNvbHZlZC6goE5vdGWgdGhhdKAibi1pLWJ6Ijxicj4KK3N0YW5kc6Bmb3KgIm5vdKBpbqBidWd6aWxsYSKgLS2gdGhhdKBpcyygYaBidWegdGhhdKB3YXOgcmVwb3J0ZWSgdG+gdXM8YnI+CitidXSgbmV2ZXKgZ290oGGgYnVnemlsbGGgZW50cnkuoKBXZaBlbmNvdXJhZ2WgeW91oHRvoGZpbGWgYnVnc6Bpbjxicj4KK2J1Z3ppbGxhoChodHRwczovL2J1Z3Mua2RlLm9yZy9lbnRlcl9idWcuY2dpP3Byb2R1Y3Q9dmFsZ3JpbmQpoHJhdGhlcjxicj4KK3RoYW6gbWFpbGluZ6B0aGWgZGV2ZWxvcGVyc6Aob3KgbWFpbGluZ6BsaXN0cymgZGlyZWN0bHmgLS2gYnVnc6B0aGF0PGJyPgorYXJloG5vdKBlbnRlcmVkoGludG+gYnVnemlsbGGgdGVuZKB0b6BnZXSgZm9yZ290dGVuoGFib3V0oG9yoGlnbm9yZWQuPGJyPgorPGJyPgorVG+gc2VloGRldGFpbHOgb2agYaBnaXZlbqBidWcsoHZpc2l0PGJyPgoroKBodHRwczovL2J1Z3Mua2RlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9WFhYWFhYPGJyPgord2hlcmWgWFhYWFhYoGlzoHRoZaBidWegbnVtYmVyoGFzoGxpc3RlZKBiZWxvdy48YnI+Cis8YnI+CisyODQwMDSgoD09oDMwMTI4MTxicj4KKzI4OTU4NKCgVW5oYW5kbGVkoGluc3RydWN0aW9uOqAweEagMHgyOaAweEU1oChNT1ZBUFMpPGJyPgorMjk1ODA4oKBhbWQ2NC0mZ3Q7SVI6oDB4RjOgMHhGoDB4QkOgMHhDMKAoVFpDTlQpPGJyPgorMjk4MjgxoKB3Y3NsZW6gY2F1c2VzoGZhbHNlKD8poHVuaW5pdGlhbGlzZWSgdmFsdWWgd2FybmluZ3M8YnI+CiszMDEyODGgoHZhbGdyaW5koGhhbmdzoG9uoE9ToFigd2hlbqB0aGWgcHJvY2Vzc6BjYWxsc6BzeXN0ZW0oKTxicj4KKzMwNDAzNaCgZGlzSW5zdHIoYXJtKTqgdW5oYW5kbGVkoGluc3RydWN0aW9uoDB4RTEwMjMwNTM8YnI+CiszMDQ4NjegoGltcGxlbWVudKBNT1ZCRaBpbnN0cnVjdGlvbqBpbqB4ODagbW9kZTxicj4KKzMwNDk4MKCgQXNzZXJ0aW9uoCdsb6AmbHQ7PaBoaSegZmFpbGVkoGluoHZnTW9kdWxlTG9jYWxfZmluZF9yeF9tYXBwaW5nPGJyPgorMzA1MDQyoKBhbWQ2NDqgaW1wbGVtZW50oDBGoDdGoGVuY29kaW5noG9moG1vdnGgYmV0d2VlbqB0d2+gcmVnaXN0ZXJzPGJyPgorMzA1MTk5oKBBUk06oGltcGxlbWVudKBRREFERKBhbmSgUURTVUI8YnI+CiszMDUzMjGgoGFtZDY0LSZndDtJUjqgMHhGoDB4RKAweEOgKHByZWZldGNodyk8YnI+CiszMDU1MTOgoGtpbGxlZKBieaBmYXRhbKBzaWduYWw6oFNJR1NFR1Y8YnI+CiszMDU2OTCgoERSRKByZXBvcnRpbmegaW52YWxpZKBzZW1hcGhvcmWgd2hlbqBzZW1fdHJ5d2FpdKBmYWlsczxicj4KKzMwNTkyNqCgSW52YWxpZKBhbGlnbm1lbnSgY2hlY2tzoGZvcqBzb21loEFWWKBpbnN0cnVjdGlvbnM8YnI+CiszMDYyOTegoGRpc0luc3RyKHRodW1iKTqgdW5oYW5kbGVkoGluc3RydWN0aW9uoDB4RTg4M6AweDAwMEM8YnI+CiszMDYzMTCgoDMuOC4woHJlbGVhc2WgdGFyYmFsbKBtaXNzaW5noHNvbWWgZmlsZXM8YnI+CiszMDY2MTKgoFJIRUygNqBnbGliYy0yLligZGVmYXVsdKBzdXBwcmVzc2lvbnOgbmVlZKAvbGliKi9saWJjLSpwYXR0ZXJuczxicj4KKzMwNjY2NKCgdmV4oGFtZDY0LSZndDtJUjqgMHg2NqAweEagMHgzQaAweDYyoDB4RDGgMHg0NqAweDY2oDB4Rjxicj4KK24taS1ieqCgc2htYXSgb2agYaBzZWdtZW50oCZndDugNEdioGRvZXOgbm90oHdvcmugPGJyPgorbi1pLWJ6oKBzaW11bGF0ZV9jb250cm9sX2Ogc2NyaXB0oHdyb25noFVTUjGgc2lnbmFsoG51bWJlcqBvbqBtaXBzPGJyPgorbi1pLWJ6oKB2Z2RioHB0cmFjZaBjYWxsc6B3cm9uZ6BvbqBtaXBzoFsuLi5dPGJyPgorbi1pLWJ6oKBGaXhlc6Bmb3KgbW9yZaBNUEmgZmFsc2WgcG9zaXRpdmVzPGJyPgorbi1pLWJ6oKBleHAtc2djaGVjaydzoG1lbWNweaBjYXVzZXOgcHJvZ3JhbXOgdG+gc2VnZmF1bHQ8YnI+CituLWktYnqgoE9TWKBidWlsZKB3L6BjbGFuZzqgYXNzZXJ0c6BhdKBzdGFydHVwPGJyPgorbi1pLWJ6oKBJbmNvcnJlY3SgdW5kZWYnZG5lc3OgcHJvcKBmb3KgSW9wX0RQQnRvQkNEoGFuZKBJb3BfQkNEdG9EUEI8YnI+CituLWktYnqgoGZpeKBhoGNvdXBsZaBvZqB1bmlvbqB0YWctdnMtZmllbGSgbWl4dXBzPGJyPgorbi1pLWJ6oKBPU1g6oHVzZaBfX05SX3BvbGxfbm9jYW5jZWygcmF0aGVyoHRoYW6gX19OUl9wb2xsPGJyPgorPGJyPgorVGhloGZvbGxvd2luZ6BidWdzoHdlcmWgZml4ZWSgaW6gMy44LjCgYnV0oG5vdKBsaXN0ZWSgaW6gdGhpc6BORVdTPGJyPgorZmlsZaBhdKB0aGWgdGltZTo8YnI+Cis8YnI+CisyNTQwODigoFZhbGdyaW5koHNob3VsZKBrbm93oGFib3V0oFVEMqBpbnN0cnVjdGlvbjxicj4KKzMwMTI4MKCgPT2gMjU0MDg4PGJyPgorMzAxOTAyoKA9PaAyNTQwODg8YnI+CiszMDQ3NTSgoE5FV1OgYmxvd3OgVGVYJ3OgbGl0dGxloG1pbmQ8YnI+Cis8YnI+CisoMy44LjE6oDE5oFNlcHRlbWJlcqAyMDEyLKB2ZXigcjI1MzcsoHZhbGdyaW5koHIxMjk5Nik8YnI+Cis8YnI+Cis8YnI+Cis8YnI+CitSZWxlYXNloDMuOC4woCgxMKBBdWd1c3SgMjAxMik8YnI+Cit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn48YnI+CiszLjguMKBpc6BhoGZlYXR1cmWgcmVsZWFzZaB3aXRooG1hbnmgaW1wcm92ZW1lbnRzoGFuZKB0aGWgdXN1YWw8YnI+Citjb2xsZWN0aW9uoG9moGJ1Z6BmaXhlcy48YnI+Cis8YnI+CitUaGlzoHJlbGVhc2Wgc3VwcG9ydHOgWDg2L0xpbnV4LKBBTUQ2NC9MaW51eCygQVJNL0xpbnV4LKBQUEMzMi9MaW51eCw8YnI+CitQUEM2NC9MaW51eCygUzM5MFgvTGludXgsoE1JUFMvTGludXgsoEFSTS9BbmRyb2lkLKBYODYvQW5kcm9pZCw8YnI+CitYODYvTWFjT1NYoDEwLjYvMTAuN6BhbmSgQU1ENjQvTWFjT1NYoDEwLjYvMTAuNy6goFN1cHBvcnSgZm9yoHJlY2VudDxicj4KK2Rpc3Ryb3OgYW5koHRvb2xjaGFpbqBjb21wb25lbnRzoChnbGliY6AyLjE2LKBnY2OgNC43KaBoYXOgYmVlbqBhZGRlZC48YnI+CitUaGVyZaBpc6Bpbml0aWFsoHN1cHBvcnSgZm9yoE1hY09TWKAxMC44LKBidXSgaXSgaXOgbm90oHVzYWJsZaBmb3I8YnI+CitzZXJpb3VzoHdvcmugYXSgcHJlc2VudC48YnI+Cis8YnI+CisqoD09PT09PT09PT09PT09PT09PaBQTEFURk9STaBDSEFOR0VToD09PT09PT09PT09PT09PT09PGJyPgorPGJyPgorKqBTdXBwb3J0oGZvcqBNSVBTMzKgcGxhdGZvcm1zoHJ1bm5pbmegTGludXguoKBWYWxncmluZKBoYXOgYmVlbjxicj4KK6CgdGVzdGVkoG9uoE1JUFMzMqBhbmSgTUlQUzMycjKgcGxhdGZvcm1zoHJ1bm5pbmegZGlmZmVyZW50oERlYmlhbjxicj4KK6CgU3F1ZWV6ZaBhbmSgTWVlR2+gZGlzdHJpYnV0aW9ucy6goEJvdGigbGl0dGxlLWVuZGlhbqBhbmSgYmlnLWVuZGlhbjxicj4KK6CgY29yZXOgYXJloHN1cHBvcnRlZC6goFRoZaB0b29sc6BNZW1jaGVjayygTWFzc2lmoGFuZKBMYWNrZXmgaGF2ZTxicj4KK6CgYmVlbqB0ZXN0ZWSgYW5koGFyZaBrbm93bqB0b6B3b3JrLqBTZWWgUkVBRE1FLm1pcHOgZm9yoG1vcmWgZGV0YWlscy48YnI+Cis8YnI+CisqoFByZWxpbWluYXJ5oHN1cHBvcnSgZm9yoEFuZHJvaWSgcnVubmluZ6BvbqB4ODYuPGJyPgorPGJyPgorKqBQcmVsaW1pbmFyeaAoYXMteWV0oGxhcmdlbHmgdW51c2FibGUpoHN1cHBvcnSgZm9yoE1hY09TWKAxMC44Ljxicj4KKzxicj4KKyqgU3VwcG9ydKBmb3KgSW50ZWygQVZYoGluc3RydWN0aW9uc6BhbmSgZm9yoEFFU6BpbnN0cnVjdGlvbnMuoKBUaGlzPGJyPgoroKBzdXBwb3J0oGlzoGF2YWlsYWJsZaBvbmx5oGZvcqA2NKBiaXSgY29kZS48YnI+Cis8YnI+CisqoFN1cHBvcnSgZm9yoFBPV0VSoERlY2ltYWygRmxvYXRpbmegUG9pbnSgaW5zdHJ1Y3Rpb25zLjxicj4KKzxicj4KKyqgPT09PT09PT09PT09PT09PT09PT2gVE9PTKBDSEFOR0VToD09PT09PT09PT09PT09PT09PT09PGJyPgorPGJyPgorKqBOb24tbGliY6BtYWxsb2OgaW1wbGVtZW50YXRpb25zoGFyZaBub3egc3VwcG9ydGVkLqCgVGhpc6Bpc6B1c2VmdWw8YnI+CiugoGZvcqB0b29sc6B0aGF0oHJlcGxhY2WgbWFsbG9joChNZW1jaGVjayygTWFzc2lmLKBEUkQsoEhlbGdyaW5kKS48YnI+CiugoFVzaW5noHRoZaBuZXegb3B0aW9uoC0tc29uYW1lLXN5bm9ueW1zLKBzdWNooHRvb2xzoGNhbqBiZaBpbmZvcm1lZDxicj4KK6CgdGhhdKB0aGWgbWFsbG9joGltcGxlbWVudGF0aW9uoGlzoGVpdGhlcqBsaW5rZWSgc3RhdGljYWxseaBpbnRvoHRoZTxicj4KK6CgZXhlY3V0YWJsZSygb3KgaXOgcHJlc2VudKBpbqBzb21loG90aGVyoHNoYXJlZKBsaWJyYXJ5oGRpZmZlcmVudDxicj4KK6CgZnJvbaBsaWJjLnNvLqCgVGhpc6BtYWtlc6BpdKBwb3NzaWJsZaB0b6Bwcm9jZXNzoHN0YXRpY2FsbHmgbGlua2VkPGJyPgoroKBwcm9ncmFtcyygYW5koHByb2dyYW1zoHVzaW5noG90aGVyoG1hbGxvY6BsaWJyYXJpZXMsoGZvcqBleGFtcGxlPGJyPgoroKBUQ01hbGxvY6BvcqBKRU1hbGxvYy48YnI+Cis8YnI+CisqoEZvcqB0b29sc6B0aGF0oHByb3ZpZGWgdGhlaXKgb3duoHJlcGxhY2VtZW50oGZvcqBtYWxsb2OgZXSgYWwsoHRoZTxicj4KK6Cgb3B0aW9uoC0tcmVkem9uZS1zaXplPSZsdDtudW1iZXImZ3Q7oGFsbG93c6B1c2Vyc6B0b6BzcGVjaWZ5oHRoZaBzaXploG9mPGJyPgoroKB0aGWgcGFkZGluZ6BibG9ja3OgKHJlZHpvbmVzKaBhZGRlZKBiZWZvcmWgYW5koGFmdGVyoGVhY2igY2xpZW50PGJyPgoroKBhbGxvY2F0ZWSgYmxvY2suoKBTbWFsbGVyoHJlZHpvbmVzoGRlY3JlYXNloHRoZaBtZW1vcnmgbmVlZGVkoGJ5PGJyPgoroKBWYWxncmluZC6goEJpZ2dlcqByZWR6b25lc6BpbmNyZWFzZaB0aGWgY2hhbmNloHRvoGRldGVjdKBibG9ja3M8YnI+CiugoG92ZXJydW6gb3KgdW5kZXJydW4uoKBQcmlvcqB0b6B0aGlzoGNoYW5nZSygdGhloHJlZHpvbmWgc2l6ZaB3YXM8YnI+CiugoGhhcmR3aXJlZKB0b6AxNqBieXRlc6BpbqBNZW1jaGVjay48YnI+Cis8YnI+CisqoE1lbWNoZWNrOjxicj4KKzxicj4KK6CgLaBUaGWgbGVha19jaGVja6BHREKgc2VydmVyoG1vbml0b3KgY29tbWFuZKBub3egY2FuPGJyPgoroKCgoGNvbnRyb2ygdGhloG1heGltdW2gbnKgb2agbG9zc6ByZWNvcmRzoHRvoG91dHB1dC48YnI+Cis8YnI+CiugoC2gUmVkdWN0aW9uoG9moG1lbW9yeaB1c2WgZm9yoGFwcGxpY2F0aW9uc6BhbGxvY2F0aW5nPGJyPgoroKCgoG1hbnmgYmxvY2tzoGFuZC9vcqBoYXZpbmegbWFueaBwYXJ0aWFsbHmgZGVmaW5lZKBieXRlcy48YnI+Cis8YnI+CiugoC2gQWRkaXRpb26gb2agR0RCoHNlcnZlcqBtb25pdG9yoGNvbW1hbmSgJ2Jsb2NrX2xpc3QnoHRoYXSgbGlzdHM8YnI+CiugoKCgdGhloGFkZHJlc3Nlcy9zaXplc6BvZqB0aGWgYmxvY2tzoG9moGGgbGVha6BzZWFyY2igbG9zc6ByZWNvcmQuPGJyPgorPGJyPgoroKAtoEFkZGl0aW9uoG9moEdEQqBzZXJ2ZXKgbW9uaXRvcqBjb21tYW5koCd3aG9fcG9pbnRzX2F0J6B0aGF0oGxpc3RzPGJyPgoroKCgoHRoZaBsb2NhdGlvbnOgcG9pbnRpbmegYXSgYaBibG9jay48YnI+Cis8YnI+CiugoC2gSWagYaByZWR6b25loHNpemWgJmd0O6AwoGlzoGdpdmVuLKBWQUxHUklORF9NQUxMT0NMSUtFX0JMT0NLoG5vd6B3aWxsPGJyPgoroKCgoGRldGVjdKBhbqBpbnZhbGlkoGFjY2Vzc6BvZqB0aGVzZaByZWR6b25lcyygYnmgbWFya2luZ6B0aGVtPGJyPgoroKCgoG5vYWNjZXNzLqCgU2ltaWxhcmx5LKBpZqBhoHJlZHpvbmWgc2l6ZaBpc6BnaXZlbqBmb3KgYaBtZW1vcnk8YnI+CiugoKCgcG9vbCygVkFMR1JJTkRfTUVNUE9PTF9BTExPQ6B3aWxsoG1hcmugdGhloHJlZHpvbmVzoG5voGFjY2Vzcy48YnI+CiugoKCgVGhpc6BzdGlsbKBhbGxvd3OgdG+gZmluZKBzb21loGJ1Z3OgaWagdGhloHVzZXKgaGFzoGZvcmdvdHRlbqB0bzxicj4KK6CgoKBtYXJroHRoZaBwb29soHN1cGVyYmxvY2ugbm9hY2Nlc3MuPGJyPgorPGJyPgoroKAtoFBlcmZvcm1hbmNloG9moG1lbW9yeaBsZWFroGNoZWNroGhhc6BiZWVuoGltcHJvdmVkLKBlc3BlY2lhbGx5oGluPGJyPgoroKCgoGNhc2VzoHdoZXJloHRoZXJloGFyZaBtYW55oGxlYWtlZKBibG9ja3OgYW5kL29yoG1hbnmgc3VwcHJlc3Npb248YnI+CiugoKCgcnVsZXOgdXNlZKB0b6BzdXBwcmVzc6BsZWFroHJlcG9ydHMuPGJyPgorPGJyPgoroKAtoFJlZHVjZWSgbm9pc2WgKGZhbHNloHBvc2l0aXZlKaBsZXZlbKBvbqBNYWNPU1igMTAuNi8xMC43LKBkdWWgdG88YnI+CiugoKCgbW9yZaBwcmVjaXNloGFuYWx5c2lzLKB3aGljaKBpc6BpbXBvcnRhbnSgZm9yoExMVk0vQ2xhbmc8YnI+CiugoKCgZ2VuZXJhdGVkoGNvZGUuoKBUaGlzoGlzoGF0oHRoZaBjb3N0oG9moHNvbWV3aGF0oHJlZHVjZWQ8YnI+CiugoKCgcGVyZm9ybWFuY2UuoKBOb3RloHRoZXJloGlzoG5voGNoYW5nZaB0b6BhbmFseXNpc6BwcmVjaXNpb26gb3I8YnI+CiugoKCgY29zdHOgb26gTGludXigdGFyZ2V0cy48YnI+Cis8YnI+CisqoERSRDo8YnI+Cis8YnI+CiugoC2gQWRkZWSgZXZlbqBtb3JloGZhY2lsaXRpZXOgdGhhdKBjYW6gaGVscKBmaW5kaW5noHRoZaBjYXVzZaBvZqBhoGRhdGE8YnI+CiugoKCgcmFjZSygbmFtZWx5oHRoZaBjb21tYW5kLWxpbmWgb3B0aW9uoC0tcHRyYWNlLWFkZHKgYW5koHRoZaBtYWNybzxicj4KK6CgoKBEUkRfU1RPUF9UUkFDSU5HX1ZBUih4KS6gTW9yZaBpbmZvcm1hdGlvbqBjYW6gYmWgZm91bmSgaW6gdGhloG1hbnVhbC48YnI+Cis8YnI+CiugoC2gRml4ZWSgYaBzdWJ0bGWgYnVnoHRoYXSgY291bGSgY2F1c2WgZmFsc2WgcG9zaXRpdmWgZGF0YaByYWNloHJlcG9ydHMuPGJyPgorPGJyPgorKqA9PT09PT09PT09PT09PT09PT09PaBPVEhFUqBDSEFOR0VToD09PT09PT09PT09PT09PT09PT09PGJyPgorPGJyPgorKqBUaGWgQysroGRlbWFuZ2xlcqBoYXOgYmVlbqB1cGRhdGVkoHNvoGFzoHRvoHdvcmugd2VsbKB3aXRooEMrK6A8YnI+CiugoGNvbXBpbGVkoGJ5oHVwoHRvoGF0oGxlYXN0oGcrK6A0LjYuPGJyPgorPGJyPgorKqBUb29soGRldmVsb3BlcnOgY2FuoG1ha2WgcmVwbGFjZW1lbnQvd3JhcHBpbmegbW9yZaBmbGV4aWJsZaB0aGFua3M8YnI+CiugoHRvoHRoZaBuZXegb3B0aW9uoC0tc29uYW1lLXN5bm9ueW1zLqCgVGhpc6B3YXOgcmVwb3J0ZWSgYWJvdmUsoGJ1dDxicj4KK6CgaW6gZmFjdKBpc6B2ZXJ5oGdlbmVyYWygYW5koGFwcGxpZXOgdG+gYWxsoGZ1bmN0aW9uPGJyPgoroKByZXBsYWNlbWVudC93cmFwcGluZyygbm90oGp1c3SgdG+gbWFsbG9jLWZhbWlseaBmdW5jdGlvbnMuPGJyPgorPGJyPgorKqBSb3VuZC1yb2JpbqBzY2hlZHVsaW5noG9moHRocmVhZHOgY2FuoGJloHNlbGVjdGVkLKB1c2luZ6B0aGWgbmV3PGJyPgoroKBvcHRpb26gLS1mYWlyLXNjaGVkPaB5ZXMuoKBQcmlvcqB0b6B0aGlzoGNoYW5nZSygdGhloHBpcGUtYmFzZWQ8YnI+CiugoHRocmVhZKBzZXJpYWxpc2F0aW9uoG1lY2hhbmlzbaAod2hpY2igaXOgc3RpbGygdGhloGRlZmF1bHQpoGNvdWxkPGJyPgoroKBnaXZloHZlcnmgdW5mYWlyoHNjaGVkdWxpbmcuoKAtLWZhaXItc2NoZWQ9eWVzoGltcHJvdmVzPGJyPgoroKByZXNwb25zaXZlbmVzc6BvZqBpbnRlcmFjdGl2ZaBtdWx0aXRocmVhZGVkoGFwcGxpY2F0aW9ucyygYW5kPGJyPgoroKBpbXByb3Zlc6ByZXBlYXRhYmlsaXR5oG9moHJlc3VsdHOgZnJvbaB0aGWgdGhyZWFkoGNoZWNrZXJzoEhlbGdyaW5kPGJyPgoroKBhbmSgRFJELjxicj4KKzxicj4KKyqgRm9yoHRvb2ygZGV2ZWxvcGVyczqgc3VwcG9ydKB0b6BydW6gVmFsZ3JpbmSgb26gVmFsZ3JpbmSgaGFzoGJlZW48YnI+CiugoGltcHJvdmVkLqCgV2WgY2FuoG5vd6Byb3V0aW5lbHmgVmFsZ3JpbmSgb26gSGVsZ3JpbmSgb3KgTWVtY2hlY2suPGJyPgorPGJyPgorKqBnZGJzZXJ2ZXKgbm93oHNob3dzoHRoZaBmbG9hdKBzaGFkb3egcmVnaXN0ZXJzoGFzoGludGVnZXI8YnI+CiugoHJhdGhlcqB0aGFuoGZsb2F0oHZhbHVlcyygYXOgdGhloHNoYWRvd6B2YWx1ZXOgYXJloG1vc3RseTxicj4KK6CgdXNlZKBhc6BiaXSgcGF0dGVybnMuPGJyPgorPGJyPgorKqBJbmNyZWFzZWSgbGltaXSgZm9yoHRoZaAtLW51bS1jYWxsZXJzoGNvbW1hbmSgbGluZaBmbGFnoHRvoDUwMC48YnI+Cis8YnI+CisqoFBlcmZvcm1hbmNloGltcHJvdmVtZW50c6Bmb3KgZXJyb3KgbWF0Y2hpbmegd2hlbqB0aGVyZaBhcmWgbWFueTxicj4KK6Cgc3VwcHJlc3Npb26gcmVjb3Jkc6BpbqB1c2UuPGJyPgorPGJyPgorKqBJbXByb3ZlZKBzdXBwb3J0oGZvcqBEV0FSRjSgZGVidWdnaW5noGluZm9ybWF0aW9uoChidWegMjg0MTg0KS48YnI+Cis8YnI+CisqoEluaXRpYWygc3VwcG9ydKBmb3KgRFdaoGNvbXByZXNzZWSgRHdhcmagZGVidWegaW5mby48YnI+Cis8YnI+CisqoEltcHJvdmVkoGNvbnRyb2ygb3ZlcqB0aGWgSVKgb3B0aW1pc2VyJ3OgaGFuZGxpbmegb2agdGhloHRyYWRlb2ZmPGJyPgoroKBiZXR3ZWVuoHBlcmZvcm1hbmNloGFuZKBwcmVjaXNpb26gb2agZXhjZXB0aW9ucy6goFNwZWNpZmljYWxseSw8YnI+CiugoC0tdmV4LWlyb3B0LXByZWNpc2UtbWVtb3J5LWV4bnOgaGFzoGJlZW6gcmVtb3ZlZKBhbmSgcmVwbGFjZWSgYnk8YnI+CiugoC0tdmV4LWlyb3B0LXJlZ2lzdGVyLXVwZGF0ZXMsoHdpdGigZXh0ZW5kZWSgZnVuY3Rpb25hbGl0eS6goFRoaXM8YnI+CiugoGFsbG93c6B0aGWgVmFsZ3JpbmSgZ2Ric2VydmVyoHRvoGFsd2F5c6BzaG93oHVwoHRvoGRhdGWgcmVnaXN0ZXI8YnI+CiugoHZhbHVlc6B0b6BHREIuPGJyPgorPGJyPgorKqBNb2Rlc3SgcGVyZm9ybWFuY2WgZ2FpbnOgdGhyb3VnaKB0aGWgdXNloG9moHRyYW5zbGF0aW9uoGNoYWluaW5noGZvcjxicj4KK6CgSklULWdlbmVyYXRlZKBjb2RlLjxicj4KKzxicj4KKyqgPT09PT09PT09PT09PT09PT09PT2gRklYRUSgQlVHU6A9PT09PT09PT09PT09PT09PT09PTxicj4KKzxicj4KK1RoZaBmb2xsb3dpbmegYnVnc6BoYXZloGJlZW6gZml4ZWSgb3KgcmVzb2x2ZWQuoKBOb3RloHRoYXSgIm4taS1ieiI8YnI+CitzdGFuZHOgZm9yoCJub3SgaW6gYnVnemlsbGEioC0toHRoYXSgaXMsoGGgYnVnoHRoYXSgd2FzoHJlcG9ydGVkoHRvoHVzPGJyPgorYnV0oG5ldmVyoGdvdKBhoGJ1Z3ppbGxhoGVudHJ5LqCgV2WgZW5jb3VyYWdloHlvdaB0b6BmaWxloGJ1Z3OgaW48YnI+CitidWd6aWxsYaAoaHR0cHM6Ly9idWdzLmtkZS5vcmcvZW50ZXJfYnVnLmNnaT9wcm9kdWN0PXZhbGdyaW5kKaByYXRoZXI8YnI+Cit0aGFuoG1haWxpbmegdGhloGRldmVsb3BlcnOgKG9yoG1haWxpbmegbGlzdHMpoGRpcmVjdGx5oC0toGJ1Z3OgdGhhdDxicj4KK2FyZaBub3SgZW50ZXJlZKBpbnRvoGJ1Z3ppbGxhoHRlbmSgdG+gZ2V0oGZvcmdvdHRlbqBhYm91dKBvcqBpZ25vcmVkLjxicj4KKzxicj4KK1RvoHNlZaBkZXRhaWxzoG9moGGgZ2l2ZW6gYnVnLKB2aXNpdDxicj4KK6CgaHR0cHM6Ly9idWdzLmtkZS5vcmcvc2hvd19idWcuY2dpP2lkPVhYWFhYWDxicj4KK3doZXJloFhYWFhYWKBpc6B0aGWgYnVnoG51bWJlcqBhc6BsaXN0ZWSgYmVsb3cuPGJyPgorPGJyPgorMTk3OTE0oKBCdWlsZGluZ6B2YWxncmluZKBmcm9toHN2bqBub3egcmVxdWlyZXOgYXV0b21ha2UtMS4xMDxicj4KKzIwMzg3N6CgaW5jcmVhc2WgdG+gMTZNYqBtYXhpbXVtoGFsbG93ZWSgYWxpZ25tZW50oGZvcqBtZW1hbGlnbqBldKBhbDxicj4KKzIxOTE1NqCgSGFuZGxloHN0YXRpY2FsbHmgbGlua2VkoG1hbGxvY6BvcqBvdGhlcqBtYWxsb2OgbGlioChlLmcuoHRjbWFsbG9jKaA8YnI+CisyNDczODagoG1ha2WgcGVyZqBkb2VzoG5vdKBydW6gYWxsoHBlcmZvcm1hbmNloHRlc3RzPGJyPgorMjcwMDA2oKBWYWxncmluZKBzY2hlZHVsZXKgdW5mYWlyoDxicj4KKzI3MDc3N6CgQWRkaW5noE1JUFMvTGludXigcG9ydKB0b6BWYWxncmluZDxicj4KKzI3MDc5NqCgczM5MHg6oFJlbW92ZWSgYnJva2VuoHN1cHBvcnSgZm9yoHRoZaBUU6BpbnNuPGJyPgorMjcxNDM4oKBGaXigY29uZmlndXJloGZvcqBwcm9wZXKgU1NFNC4yoGRldGVjdGlvbjxicj4KKzI3MzExNKCgczM5MHg6oFN1cHBvcnSgVFIsoFRSRSygVFJPTyygVFJPVCygVFJUTyygYW5koFRSVFSgaW5zdHJ1Y3Rpb25zPGJyPgorMjczNDc1oKBBZGSgc3VwcG9ydKBmb3KgQVZYoGluc3RydWN0aW9uczxicj4KKzI3NDA3OKCgaW1wcm92ZWSgY29uZmlndXJloGxvZ2ljoGZvcqBtcGljYzxicj4KKzI3Njk5M6CgZml4oG1yZW1hcKAnbm+gdGhyYXNooGNoZWNrcyegPGJyPgorMjc4MzEzoKBGZWRvcmGgMTUveDY0OqBlcnKgcmVhZKBkZWJ1Z6BpbmZvoHdpdGigLS1yZWFkLXZhci1pbmZvPXllc6BmbGFnPGJyPgorMjgxNDgyoKBtZW1jaGVja6BpbmNvcnJlY3SgYnl0ZaBhbGxvY2F0aW9uoGNvdW50oGluoHJlYWxsb2MoKaBmb3Kgc2lsbHmgYXJndW1lbnQ8YnI+CisyODIyMzCgoGdyb3VwoGFsbG9jYXRvcqBmb3Kgc21hbGygZml4ZWSgc2l6ZSygdXNloGl0oGZvcqBNQ19DaHVuay9TRWOgdmJpdDxicj4KKzI4MzQxM6CgRml4oHdyb25noHNhbml0eaBjaGVjazxicj4KKzI4MzY3MaCgUm9idXN0aXploGFsaWdubWVudKBjb21wdXRhdGlvbqBpbqBMaWJWRVhfQWxsb2M8YnI+CisyODM5NjGgoEFkZGluZ6BzdXBwb3J0oGZvcqBzb21loEhDSaBJT0NUTHM8YnI+CisyODQxMjSgoHBhcnNlX3R5cGVfRElFOqBjb25mdXNlZKBieTqgRFdBUkagNDxicj4KKzI4NDg2NKCgPT2gMjczNDc1oChBZGSgc3VwcG9ydKBmb3KgQVZYoGluc3RydWN0aW9ucyk8YnI+CisyODUyMTmgoFRvby1yZXN0cmljdGl2ZaBjb25zdHJhaW50c6Bmb3KgVGh1bWIyoCJTUKBwbHVzL21pbnVzoHJlZ2lzdGVyIjxicj4KKzI4NTY2MqCgKE1hY09TWCk6oE1lbWNoZWNroG5lZWRzoHRvoHJlcGxhY2WgbWVtY3B5L21lbW1vdmU8YnI+CisyODU3MjWgoD09oDI3MzQ3NaAoQWRkoHN1cHBvcnSgZm9yoEFWWKBpbnN0cnVjdGlvbnMpPGJyPgorMjg2MjYxoKBhZGSgd3JhcHBlcqBmb3KgbGludXigSTJDX1JEV1KgaW9jdGw8YnI+CisyODYyNzCgoHZncHJlbG9hZKBpc6Bub3SgZnJpZW5kbHmgdG+gNjQtJmd0OzMyoGJpdKBleGVjcyygZ2l2ZXOgbGQuc2+gd2FybmluZ3M8YnI+CisyODYzNzSgoFJ1bm5pbmegY2FjaGVncmluZKB3aXRooC0tYnJhbmNoLXNpbT15ZXOgb26gNjQtYml0oFBvd2VyUEOgcHJvZ3JhbaBmYWlsczxicj4KKzI4NjM4NKCgY29uZmlndXJloGZhaWxzoCJjaGVja2luZ6Bmb3KgYaBzdXBwb3J0ZWSgdmVyc2lvbqBvZqBnY2MiPGJyPgorMjg2NDk3oKA9PaAyNzM0NzWgKEFkZKBzdXBwb3J0oGZvcqBBVligaW5zdHJ1Y3Rpb25zKTxicj4KKzI4NjU5NqCgPT2gMjczNDc1oChBZGSgc3VwcG9ydKBmb3KgQVZYoGluc3RydWN0aW9ucyk8YnI+CisyODY5MTegoGRpc0luc3RyKGFybSk6oHVuaGFuZGxlZKBpbnN0cnVjdGlvbjqgUUFERKAoYWxzb6BRU1VCKTxicj4KKzI4NzE3NaCgQVJNOqBzY2FsYXKgVkZQoGZpeGVkLXBvaW50oFZDVlSgaW5zdHJ1Y3Rpb25zoG5vdKBoYW5kbGVkPGJyPgorMjg3MjYwoKBJbmNvcnJlY3SgY29uZGl0aW9uYWyganVtcKBvcqBtb3ZloGRlcGVuZHOgb26gdW5pbml0aWFsaXNlZKB2YWx1ZShzKTxicj4KKzI4NzMwMaCgdmV4oGFtZDY0LSZndDtJUjqgMHg2NqAweEagMHgzOKAweDQxoDB4QzCgMHhCOKAweDCgMHgwoChQSE1JTlBPU1VXKTxicj4KKzI4NzMwN6CgPT2gMjczNDc1oChBZGSgc3VwcG9ydKBmb3KgQVZYoGluc3RydWN0aW9ucyk8YnI+CisyODc4NTigoFZHXyhzdHJlcnJvcik6oHVua25vd26gZXJyb3KgPGJyPgorMjg4Mjk4oKAoTWFjT1NYKaB1bmhhbmRsZWSgc3lzY2FsbKBzaG1fdW5saW5rPGJyPgorMjg4OTk1oKA9PaAyNzM0NzWgKEFkZKBzdXBwb3J0oGZvcqBBVligaW5zdHJ1Y3Rpb25zKTxicj4KKzI4OTQ3MKCgTG9hZGluZ6BvZqBsYXJnZaBNYWNoLU+gdGhpbqBiaW5hcmllc6BmYWlscy48YnI+CisyODk2NTagoD09oDI3MzQ3NaAoQWRkoHN1cHBvcnSgZm9yoEFWWKBpbnN0cnVjdGlvbnMpPGJyPgorMjg5Njk5oKB2Z2RioGNvbm5lY3Rpb26gaW6gcmVsYXmgbW9kZaBlcnJvbmVvdXNseaBjbG9zZWSgZHVloHRvoGJ1ZmZlcqBvdmVycnVuoDxicj4KKzI4OTgyM6CgPT2goDI5Mzc1NKAoUENNUHhTVFJ4oG5vdKBpbXBsZW1lbnRlZKBmb3KgMTYtYml0oGNoYXJhY3RlcnMpPGJyPgorMjg5ODM5oKBzMzkweDqgUHJvdmlkZaBzdXBwb3J0oGZvcqB1bmljb2RloGNvbnZlcnNpb26gaW5zdHJ1Y3Rpb25zPGJyPgorMjg5OTM5oKBtb25pdG9yoGNtZKAnbGVha19jaGVjayegd2l0aKBkZXRhaWxzoGFib3V0oGxlYWtlZKBvcqByZWFjaGFibGWgYmxvY2tzPGJyPgorMjkwMDA2oKBtZW1jaGVja6Bkb2Vzbid0oG1hcmugJXhtbaBhc6Bpbml0aWFsaXplZKBhZnRlcqAicGNtcGVxd6AleG1toCV4bW0iPGJyPgorMjkwNjU1oKBBZGSgc3VwcG9ydKBmb3KgQUVTS0VZR0VOQVNTSVNUoGluc3RydWN0aW9uoDxicj4KKzI5MDcxOaCgdmFsZ3JpbmQtMy43LjCgZmFpbHOgd2l0aKBhdXRvbWFrZS0xLjExLjKgZHVloHRvInBrZ2xpYmRpciKgdXNhZ2U8YnI+CisyOTA5NzSgoHZnZGKgbXVzdKBhbGlnbqBwYWdlc6B0b6BWS0lfU0hNTEJBoCgxNktCKaBvbqBBUk2gPGJyPgorMjkxMjUzoKBFU6ByZWdpc3RlcqBub3SgaW5pdGlhbGlzZWSgaW6gdmFsZ3JpbmSgc2ltdWxhdGlvbjxicj4KKzI5MTU2OKCgRml4oDNETk9XLXJlbGF0ZWSgY3Jhc2hlc6B3aXRooGJhc2VsaW5loHg4Nl82NKBDUFWgKHegcGF0Y2gpPGJyPgorMjkxODY1oKBzMzkweDqgU3VwcG9ydKB0aGWgIkNvbXBhcmWgRG91YmxloGFuZKBTd2FwIqBmYW1pbHmgb2agaW5zdHJ1Y3Rpb25zPGJyPgorMjkyMzAwoKA9PaAyNzM0NzWgKEFkZKBzdXBwb3J0oGZvcqBBVligaW5zdHJ1Y3Rpb25zKTxicj4KKzI5MjQzMKCgdW5yZWNvZ25pemVkoGluc3RydWN0aW9uoGluoF9faW50ZWxfZ2V0X25ld19tZW1fb3BzX2NwdWlkPGJyPgorMjkyNDkzoKA9PaAyNzM0NzWgKEFkZKBzdXBwb3J0oGZvcqBBVligaW5zdHJ1Y3Rpb25zKTxicj4KKzI5MjYyNqCgTWlzc2luZ6BmY250bKBGX1NFVE9XTl9FWKBhbmSgRl9HRVRPV05fRVigc3VwcG9ydDxicj4KKzI5MjYyN6CgTWlzc2luZ6BzdXBwb3J0oGZvcqBzb21loFNDU0mgaW9jdGxzPGJyPgorMjkyNjI4oKBub25lL3Rlc3RzL3g4Ni9idWcxMjU5NTkteDg2LmOgdHJpZ2dlcnOgdW5kZWZpbmVkoGJlaGF2aW9yPGJyPgorMjkyODQxoKA9PaAyNzM0NzWgKEFkZKBzdXBwb3J0oGZvcqBBVligaW5zdHJ1Y3Rpb25zKTxicj4KKzI5Mjk5M6CgaW1wbGVtZW50oHRoZaBnZXRjcHWgc3lzY2FsbKBvbqBhbWQ2NC1saW51eDxicj4KKzI5Mjk5NaCgSW1wbGVtZW50oHRoZaAmIzgyMjA7Y3Jvc3OgbWVtb3J5oGF0dGFjaCYjODIyMTugc3lzY2FsbHOgaW50cm9kdWNlZKBpbqBMaW51eKAzLjI8YnI+CisyOTMwODigoEFkZKBzb21loFZFWKBzYW5pdHmgY2hlY2tzoGZvcqBwcGM2NKB1bmhhbmRsZWSgaW5zdHJ1Y3Rpb25zPGJyPgorMjkzNzUxoKA9PaAyOTA2NTWgKEFkZKBzdXBwb3J0oGZvcqBBRVNLRVlHRU5BU1NJU1SgaW5zdHJ1Y3Rpb24pPGJyPgorMjkzNzU0oKBQQ01QeFNUUnigbm90oGltcGxlbWVudGVkoGZvcqAxNi1iaXSgY2hhcmFjdGVyczxicj4KKzI5Mzc1NaCgPT2gMjkzNzU0oChOb6B0ZXN0c6Bmb3KgUENNUHhTVFJ4oG9uoDE2LWJpdKBjaGFyYWN0ZXJzKTxicj4KKzI5MzgwOKCgQ0xGTFVTSKBub3Sgc3VwcG9ydGVkoGJ5oGxhdGVzdKBWRVigZm9yoGFtZDY0PGJyPgorMjk0MDQ3oKB2YWxncmluZKBkb2VzoG5vdKBjb3JyZWN0bHmgZW11bGF0ZaBwcmxpbWl0NjQoLi4uLKBSTElNSVRfTk9GSUxFLKAuLi4pPGJyPgorMjk0MDQ4oKBNUFNBREJXoGluc3RydWN0aW9uoG5vdKBpbXBsZW1lbnRlZDxicj4KKzI5NDA1NaCgcmVndGVzdKBub25lL3Rlc3RzL3NoZWxsoGZhaWxzoHdoZW6gbG9jYWxloGlzoG5vdKBzZXSgdG+gQzxicj4KKzI5NDE4NaCgSU5UoDB4NDSgKGFuZKBvdGhlcnMpoG5vdKBzdXBwb3J0ZWSgb26geDg2oGd1ZXN0LKBidXSgdXNlZKBieaBKaWtlc6BSVk08YnI+CisyOTQxOTCgoC0tdmdkYi1lcnJvcj14eHigY2FuoGJloG91dKBvZqBzeW5joHdpdGigZXJyb3JzoHNob3duoHRvoHRoZaB1c2VyPGJyPgorMjk0MTkxoKBhbWQ2NDqgZm5zYXZlL2Zyc3RvcqBhbmSgMHg2NqBzaXploHByZWZpeGVzoG9uoEZQoGluc3RydWN0aW9uczxicj4KKzI5NDI2MKCgZGlzSW5zdHJfQU1ENjQ6oGRpc0luc3RyoG1pc2NhbGN1bGF0ZWSgbmV4dKAlcmlwPGJyPgorMjk0NTIzoKAtLXBhcnRpYWwtbG9hZHMtb2s9eWVzoGNhdXNlc6BmYWxzZaBuZWdhdGl2ZXM8YnI+CisyOTQ2MTegoHZleKBhbWQ2NC0mZ3Q7SVI6oDB4NjagMHhGoDB4M0GgMHhERqAweEQxoDB4MaAweEU4oDB4NkE8YnI+CisyOTQ3MzagoHZleKBhbWQ2NC0mZ3Q7SVI6oDB4NDigMHhGoDB4RDegMHhENqAweDQ4oDB4ODM8YnI+CisyOTQ4MTKgoHBhdGNooGFsbG93aW5noHRvoHJ1bqAob26geDg2oGF0oGxlYXN0KaBoZWxncmluZC9kcmSgb26gdG9vbC48YnI+CisyOTUwODmgoGNhbqBub3SgYW5ub3RhdGWgc291cmNloGZvcqBib3RooGhlbGdyaW5koGFuZKBkcmQ8YnI+CisyOTUyMjGgoFBPV0VSoFByb2Nlc3NvcqBkZWNpbWFsoGZsb2F0aW5noHBvaW50oGluc3RydWN0aW9uoHN1cHBvcnSgbWlzc2luZzxicj4KKzI5NTQyN6CgYnVpbGRpbmegZm9yoGkzODagd2l0aKBjbGFuZ6BvbqBkYXJ3aW4xMaByZXF1aXJlc6AiLW5ld19saW5rZXKgbGlua2VyIjxicj4KKzI5NTQyOKCgY29yZWdyaW5kL21fbWFpbi5joGhhc6BpbmNvcnJlY3SgeDg2oGFzc2VtYmx5oGZvcqBkYXJ3aW48YnI+CisyOTU1OTCgoEhlbGdyaW5kOqBBc3NlcnRpb26gJ2N2aS0mZ3Q7bldhaXRlcnOgJmd0O6AwJ6BmYWlsZWQ8YnI+CisyOTU2MTegoEFSTaAtoEFkZKBzb21loG1pc3Npbmegc3lzY2FsbHM8YnI+CisyOTU3OTmgoE1pc3NpbmegXG6gd2l0aKBnZXRfdmJpdHOgaW6gZ2Ric2VydmVyoHdoZW6gbGluZaBpc6AloDgwoFsuLi5dPGJyPgorMjk2MjI5oKBMaW51eKB1c2VyoGlucHV0oGRldmljZaBpb2N0bHOgbWlzc2luZ6B3cmFwcGVyczxicj4KKzI5NjMxOKCgRUxGoERlYnVnoGluZm+gaW1wcm92ZW1lbnRzoChtb3JloHRoYW6gb25loHJ4L3J3oG1hcHBpbmcpPGJyPgorMjk2NDIyoKBBZGSgdHJhbnNsYXRpb26gY2hhaW5pbmegc3VwcG9ydDxicj4KKzI5NjQ1N6CgdmV4oGFtZDY0LSZndDtJUjqgMHg2NqAweEagMHgzQaAweERGoDB4RDGgMHgxoDB4RTigMHg2QaAoZHVwoG9moEFFUyk8YnI+CisyOTY3OTKgoHZhbGdyaW5koDMuNy4wOqBhZGSgU0lPQ1NIV1RTVEFNUKAoMHg4OUIwKaBpb2N0bKB3cmFwcGVyPGJyPgorMjk2OTgzoKBGaXigYnVpbGSgaXNzdWVzoG9uoHg4Nl82NC9wcGM2NKB3aXRob3V0oDMyLWJpdKB0b29sY2hhaW5zPGJyPgorMjk3MDc4oKBnZGJzZXJ2ZXKgc2lnbmFsoGhhbmRsaW5noHByb2JsZW1zoFsuLl08YnI+CisyOTcxNDegoGRyZKBmYWxzZaBwb3NpdGl2ZXOgb26gbmV3bHmgYWxsb2NhdGVkoG1lbW9yeTxicj4KKzI5NzMyOaCgZGlzYWxsb3egZGVjb2Rpbmegb2agSUJNoFBvd2VyoERGUKBpbnNuc6BvbqBzb21loG1hY2hpbmVzPGJyPgorMjk3NDk3oKBQT1dFUqBQcm9jZXNzb3KgZGVjaW1hbKBmbG9hdGluZ6Bwb2ludKBpbnN0cnVjdGlvbqBzdXBwb3J0oG1pc3Npbmc8YnI+CisyOTc3MDGgoEFub3RoZXKgYWxpYXOgZm9yoHN0cm5jYXNlY21wX2ygaW6gbGliYy0yLjEzLnNvPGJyPgorMjk3OTExoKAnaW52YWxpZKB3cml0ZSegbm90oHJlcG9ydGVkoHdoZW6gdXNpbmegQVBJc6Bmb3KgY3VzdG9toG1lbaBhbGxvY2F0b3JzLjxicj4KKzI5Nzk3NqCgczM5MHg6oHJldmlzaXSgRVigaW1wbGVtZW50YXRpb248YnI+CisyOTc5OTGgoFZhbGdyaW5koGludGVyZmVyZXOgd2l0aKBtbWFwKCkrZnRlbGwoKaA8YnI+CisyOTc5OTKgoFN1cHBvcnSgc3lzdGVtc6BtaXNzaW5noFdJRkNPTlRJTlVFRKAoZS5nLqBwcmUtMi42LjEwoExpbnV4KaA8YnI+CisyOTc5OTOgoEZpeKBjb21waWxhdGlvbqBvZqB2YWxncmluZKB3aXRooGdjY6AtZzMuPGJyPgorMjk4MDgwoKBQT1dFUqBQcm9jZXNzb3KgREZQoHN1cHBvcnSgbWlzc2luZyygcGFydKAzPGJyPgorMjk4MjI3oKA9PaAyNzM0NzWgKEFkZKBzdXBwb3J0oGZvcqBBVligaW5zdHJ1Y3Rpb25zKTxicj4KKzI5ODMzNaCgPT2gMjczNDc1oChBZGSgc3VwcG9ydKBmb3KgQVZYoGluc3RydWN0aW9ucyk8YnI+CisyOTgzNTSgoFVuaGFuZGxlZKBBUk2gVGh1bWKgaW5zdHJ1Y3Rpb26gMHhFQjBEoDB4MDU4NaAoc3RyZXEpPGJyPgorMjk4Mzk0oKBzMzkweDqgRG9uJ3SgYmFpbKBvdXSgb26gYW6gdW5rbm93bqBtYWNoaW5loG1vZGVsLqCgWy4uXTxicj4KKzI5ODQyMaCgYWNjZXB0NCgpoHN5c2NhbGygKDM2Nimgc3VwcG9ydKBpc6BtaXNzaW5noGZvcqBBUk08YnI+CisyOTg3MTigoHZleKBhbWQ2NC0mZ3Q7SVI6oDB4RqAweEIxoDB4Q0KgMHg5Q6AweDhGoDB4NDU8YnI+CisyOTg3MzKgoHZhbGdyaW5koGluc3RhbGxhdGlvbqBwcm9ibGVtoGluoHVidW50daB3aXRooGtlcm5lbKB2ZXJzaW9uoDMueDxicj4KKzI5ODg2MqCgUE9XRVKgUHJvY2Vzc29yoERGUKBpbnN0cnVjdGlvbqBzdXBwb3J0oG1pc3NpbmcsoHBhcnSgNDxicj4KKzI5ODg2NKCgRFdBUkagcmVhZGVyoG1pcy1wYXJzZXOgRFdfRk9STV9yZWZfYWRkcjxicj4KKzI5ODk0M6CgbWFzc2lmoGFzc2VydHOgd2l0aKAtLXBhZ2VzLWFzLWhlYXA9eWVzoHdoZW6gYnJroGlzoGNoYW5naW5noFsuLl08YnI+CisyOTkwNTOgoFN1cHBvcnSgRFdBUkY0oERXX0FUX2hpZ2hfcGOgY29uc3RhbnSgZm9ybTxicj4KKzI5OTEwNKCgPT2gMjczNDc1oChBZGSgc3VwcG9ydKBmb3KgQVZYoGluc3RydWN0aW9ucyk8YnI+CisyOTkzMTagoEhlbGdyaW5kOqBoZ19tYWluLmM6NjI4oChtYXBfdGhyZWFkc19sb29rdXApOqBBc3NlcnRpb26gJ3RociegZmFpbGVkLjxicj4KKzI5OTYyOaCgZHVwMygpoHN5c2NhbGygKDM1OCmgc3VwcG9ydKBpc6BtaXNzaW5noGZvcqBBUk08YnI+CisyOTk2OTSgoFBPV0VSoFByb2Nlc3NvcqBERlCgaW5zdHJ1Y3Rpb26gc3VwcG9ydKBtaXNzaW5nLKBwYXJ0oDU8YnI+CisyOTk3NTagoElnbm9yZaAtLWZyZWUtZmlsbKBmb3KgTUVNUE9PTF9GUkVFoGFuZKBGUkVFTElLRaBjbGllbnSgcmVxdWVzdHM8YnI+CisyOTk4MDOgoD09oDI3MzQ3NaAoQWRkoHN1cHBvcnSgZm9yoEFWWKBpbnN0cnVjdGlvbnMpPGJyPgorMjk5ODA0oKA9PaAyNzM0NzWgKEFkZKBzdXBwb3J0oGZvcqBBVligaW5zdHJ1Y3Rpb25zKTxicj4KKzI5OTgwNaCgPT2gMjczNDc1oChBZGSgc3VwcG9ydKBmb3KgQVZYoGluc3RydWN0aW9ucyk8YnI+CiszMDAxNDCgoEFSTaAtoE1pc3NpbmegKFQxKaBTTU1VTDxicj4KKzMwMDE5NaCgPT2gMjk2MzE4oChFTEagRGVidWegaW5mb6BpbXByb3ZlbWVudHOgKG1vcmWgdGhhbqBvbmWgcngvcnegbWFwcGluZykpPGJyPgorMzAwMzg5oKBBc3NlcnRpb26gYGFyZV92YWxpZF9od2NhcHMoVmV4QXJjaEFNRDY0LKBbLi5dKSegZmFpbGVkLjxicj4KKzMwMDQxNKCgRkNPTaBhbmSgRkNPTVCgdW5pbXBsZW1lbnRlZKBmb3KgYW1kNjSgZ3Vlc3Q8YnI+CiszMDEyMDSgoGluZmluaXRloGxvb3CgaW6gY2Fub25pY2FsaXNlU3ltdGFioHdpdGigaWZ1bmOgc3ltYm9sPGJyPgorMzAxMjI5oKA9PaAyMDM4NzegKGluY3JlYXNloHRvoDE2TWKgbWF4aW11baBhbGxvd2VkoGFsaWdubWVudKBmb3KgbWVtYWxpZ26gZXRjKTxicj4KKzMwMTI2NaCgYWRkoHg4NqBzdXBwb3J0oHRvoEFuZHJvaWSgYnVpbGSgPGJyPgorMzAxOTg0oKBjb25maWd1cmWgc2NyaXB0oGRvZXNuJ3SgZGV0ZWN0oGNlcnRhaW6gdmVyc2lvbnOgb2agY2xhbmc8YnI+CiszMDIyMDWgoEZpeKBjb21waWxlcqB3YXJuaW5nc6Bmb3KgUE9XRVKgVkVYoGNvZGWgYW5koFBPV0VSoHRlc3SgY2FzZXM8YnI+CiszMDIyODegoFVuaGFuZGxlZKBtb3ZiZaBpbnN0cnVjdGlvbqBvbqBBdG9toHByb2Nlc3NvcnM8YnI+CiszMDIzNzCgoFBQQzqgZm5tYWRkLKBmbm1zdWIsoGZubWFkZHMsoGZubXN1YnOgaW5zbnOgYWx3YXlzoG5lZ2F0ZaB0aGWgcmVzdWx0PGJyPgorMzAyNTM2oKBGaXigZm9yoHRoZaBQT1dFUqBWYWxncmluZKByZWdyZXNzaW9uoHRlc3Q6oG1lbWNoZWNrLUlTQTIuMC48YnI+CiszMDI1NzigoFVucmVjb2duaXplZKBpc250cnVjdGlvbqAweGM1oDB4MzKgMHhjMqAweGNhoDB4MDmgdmNtcG5nZXNzPGJyPgorMzAyNjU2oKA9PaAyNzM0NzWgKEFkZKBzdXBwb3J0oGZvcqBBVligaW5zdHJ1Y3Rpb25zKTxicj4KKzMwMjcwOaCgdmFsZ3JpbmSgZm9yoEFSTaBuZWVkc6BleHRyYaB0bHOgc3VwcG9ydKBmb3KgYW5kcm9pZKBlbXVsYXRvcqBbLi5dPGJyPgorMzAyODI3oKBhZGSgd3JhcHBlcqBmb3KgQ0RST01fR0VUX0NBUEFCSUxJVFk8YnI+CiszMDI5MDGgoFZhbGdyaW5koGNyYXNoZXOgd2l0aKBkd3qgb3B0aW1pemVkoGRlYnVnaW5mbzxicj4KKzMwMjkxOKCgRW5hYmxloHRlc3Rpbmegb2agdGhloHZtYWRkZnCgYW5koHZuc3ViZnCgaW5zdHJ1Y3Rpb25zoGluoHRoZaB0ZXN0c3VpdGU8YnI+CiszMDMxMTagoEFkZKBzdXBwb3J0oGZvcqB0aGWgUE9XRVKgaW5zdHJ1Y3Rpb26gcG9wY250Yjxicj4KKzMwMzEyN6CgUG93ZXKgdGVzdKBzdWl0ZaBmaXhlc6Bmb3KgZnJzcXJ0ZSygdnJlZnAsoGFuZKB2cnNxcnRlZnCgaW5zdHJ1Y3Rpb25zLjxicj4KKzMwMzI1MKCgQXNzZXJ0aW9uoGBpbnN0cnNfaW4tJmd0O2Fycl91c2VkoCZsdDs9oDEwMDAwJ6BmYWlsZWSgdy+gT3BlblNTTKBjb2RlPGJyPgorMzAzNDY2oKA9PaAyNzM0NzWgKEFkZKBzdXBwb3J0oGZvcqBBVligaW5zdHJ1Y3Rpb25zKTxicj4KKzMwMzYyNKCgc2VnbWVudGF0aW9uoGZhdWx0oG9uoEFuZHJvaWSgNC4xoChlLmcuoG9uoEdhbGF4eaBOZXh1c6BPTUFQKaA8YnI+CiszMDM5NjOgoHN0cnN0cigpoGZ1bmN0aW9uoHByb2R1Y2VzoHdyb25noHJlc3VsdHOgdW5kZXKgdmFsZ3JpbmSgY2FsbGdyaW5kPGJyPgorMzA0MDU0oKBDQUxMX0ZOX3h4oG1hY3Jvc6BuZWVkoHRvoGVuZm9yY2Wgc3RhY2ugYWxpZ25tZW50PGJyPgorMzA0NTYxoKB0ZWWgc3lzdGVtoGNhbGygbm90oHN1cHBvcnRlZDxicj4KKzcxNTc1MKCgKE1hY09TWCk6oEluY29ycmVjdKBpbnZhbGlkLWFkZHJlc3OgZXJyb3JzoG5lYXKgMHhGRkZGeHh4eKAobW96YnVnIyk8YnI+CituLWktYnqgoEFkZKBtaXNzaW5noGdkYnNlcnZlcqB4bWygZmlsZXOgZm9yoHNoYWRvd6ByZWdpc3RlcnOgZm9yoHBwYzMyPGJyPgorbi1pLWJ6oKBCeXBhc3OgZ2NjNC40LzQuNaBjb2RloGdlbqBidWdzoGNhdXNpbmegb3V0oG9moG1lbW9yeaBvcqBhc3NlcnRzPGJyPgorbi1pLWJ6oKBGaXigYXNzZXJ0oGluoGdkYnNlcnZlcqBmb3Kgd2F0Y2hwb2ludHOgd2F0Y2hpbmegdGhloHNhbWWgYWRkcmVzczxicj4KK24taS1ieqCgRml4oGZhbHNloHBvc2l0aXZloGluoHN5c19jbG9uZaBvbqBhbWQ2NKB3aGVuoG9wdGlvbmFsoGFyZ3OgWy4uXTxicj4KK24taS1ieqCgczM5MHg6oFNoYWRvd6ByZWdpc3RlcnOgY2FuoG5vd6BiZaBleGFtaW5lZKB1c2luZ6B2Z2RiPGJyPgorPGJyPgorKDMuOC4wLVRFU1QzOqCgOaBBdWd1c3SgMjAxMiygdmV4oHIyNDY1LKB2YWxncmluZKByMTI4NjUpPGJyPgorKDMuOC4wOqCgoKCgoKAxMKBBdWd1c3SgMjAxMiygdmV4oHIyNDY1LKB2YWxncmluZKByMTI4NjYpPGJyPgorPGJyPgorPGJyPgorPGJyPgorUmVsZWFzZaAzLjcuMKAoNaBOb3ZlbWJlcqAyMDExKTxicj4KK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn48YnI+CiszLjcuMKBpc6BhoGZlYXR1cmWgcmVsZWFzZaB3aXRooG1hbnmgc2lnbmlmaWNhbnSgaW1wcm92ZW1lbnRzoGFuZKB0aGU8YnI+Cit1c3VhbKBjb2xsZWN0aW9uoG9moGJ1Z6BmaXhlcy48YnI+Cis8YnI+CitUaGlzoHJlbGVhc2Wgc3VwcG9ydHOgWDg2L0xpbnV4LKBBTUQ2NC9MaW51eCygQVJNL0xpbnV4LKBQUEMzMi9MaW51eCw8YnI+CitQUEM2NC9MaW51eCygUzM5MFgvTGludXgsoEFSTS9BbmRyb2lkLKBYODYvRGFyd2luoGFuZKBBTUQ2NC9EYXJ3aW4uPGJyPgorU3VwcG9ydKBmb3KgcmVjZW50oGRpc3Ryb3OgYW5koHRvb2xjaGFpbqBjb21wb25lbnRzoChnbGliY6AyLjE0LKBnY2M8YnI+Cis0LjYsoE1hY09TWKAxMC43KaBoYXOgYmVlbqBhZGRlZC48YnI+Cis8YnI+CisqoD09PT09PT09PT09PT09PT09PaBQTEFURk9STaBDSEFOR0VToD09PT09PT09PT09PT09PT09PGJyPgorPGJyPgorKqBTdXBwb3J0oGZvcqBJQk2gei9BcmNoaXRlY3R1cmWgKHMzOTB4KaBydW5uaW5noExpbnV4LqCgVmFsZ3JpbmSgY2FuPGJyPgoroKBhbmFseXNloDY0LWJpdKBwcm9ncmFtc6BydW5uaW5noG9uoHovQXJjaGl0ZWN0dXJlLqCgTW9zdKB1c2VyoHNwYWNlPGJyPgoroKBpbnN0cnVjdGlvbnOgdXCgdG+gYW5koGluY2x1ZGluZ6B6MTCgYXJloHN1cHBvcnRlZC6goFZhbGdyaW5koGhhczxicj4KK6CgYmVlbqB0ZXN0ZWSgZXh0ZW5zaXZlbHmgb26gejksoHoxMCygYW5koHoxOTagbWFjaGluZXOgcnVubmluZ6BTTEVTPGJyPgoroKAxMC8xMSygUmVkSGF0oDUvNm0soGFuZKBGZWRvcmEuoFRoZaBNZW1jaGVja6BhbmSgTWFzc2lmoHRvb2xzoGFyZTxicj4KK6Cga25vd26gdG+gd29ya6B3ZWxsLqBDYWxsZ3JpbmQsoEhlbGdyaW5kLKBhbmSgRFJEoHdvcmugcmVhc29uYWJseTxicj4KK6Cgd2VsbKBvbqB6OaBhbmSgbGF0ZXKgbW9kZWxzLqBTZWWgUkVBRE1FLnMzOTCgZm9yoG1vcmWgZGV0YWlscy48YnI+Cis8YnI+CisqoFByZWxpbWluYXJ5oHN1cHBvcnSgZm9yoE1hY09TWKAxMC43oGFuZKBYQ29kZaA0LqCgQm90aKAzMi2gYW5kPGJyPgoroKA2NC1iaXSgcHJvY2Vzc2VzoGFyZaBzdXBwb3J0ZWQuoKBTb21loGNvbXBsZXigdGhyZWFkZWSgYXBwbGljYXRpb25zPGJyPgoroKAoRmlyZWZveCmgYXJloG9ic2VydmVkoHRvoGhhbmegd2hlbqBydW6gYXOgMzKgYml0oGFwcGxpY2F0aW9ucyw8YnI+CiugoHdoZXJlYXOgNjQtYml0oHZlcnNpb25zoHJ1bqBPSy6goFRoZaBjYXVzZaBpc6B1bmtub3duLqCgTWVtY2hlY2s8YnI+CiugoHdpbGygbGlrZWx5oHJlcG9ydKBzb21loGZhbHNloGVycm9ycy6goEluoGdlbmVyYWwsoGV4cGVjdKBzb21loHJvdWdoPGJyPgoroKBzcG90cy6goFRoaXOgcmVsZWFzZaBhbHNvoHN1cHBvcnRzoE1hY09TWKAxMC42LKBidXSgZHJvcHOgc3VwcG9ydDxicj4KK6CgZm9yoDEwLjUuPGJyPgorPGJyPgorKqBQcmVsaW1pbmFyeaBzdXBwb3J0oGZvcqBBbmRyb2lkoChvbqBBUk0pLqCgVmFsZ3JpbmSgY2FuoG5vd6BydW48YnI+CiugoGxhcmdloGFwcGxpY2F0aW9uc6AoZWcsoEZpcmVmb3gpoG9uoChlZymgYaBTYW1zdW5noE5leHVzoFMuoKBTZWU8YnI+CiugoFJFQURNRS5hbmRyb2lkoGZvcqBtb3JloGRldGFpbHMsoHBsdXOgaW5zdHJ1Y3Rpb25zoG9uoGhvd6B0b6BnZXQ8YnI+CiugoHN0YXJ0ZWQuPGJyPgorPGJyPgorKqBTdXBwb3J0oGZvcqB0aGWgSUJNoFBvd2VyoElTQaAyLjA2oChQb3dlcjegaW5zdHJ1Y3Rpb25zKTxicj4KKzxicj4KKyqgR2VuZXJhbKBjb3JyZWN0bmVzc6BhbmSgcGVyZm9ybWFuY2WgaW1wcm92ZW1lbnRzoGZvcqBBUk0vTGludXgsoGFuZCw8YnI+CiugoGJ5oGV4dGVuc2lvbiygQVJNL0FuZHJvaWQuPGJyPgorPGJyPgorKqBGdXJ0aGVyoHNvbGlkaWZpY2F0aW9uoG9moHN1cHBvcnSgZm9yoFNTRaA0LjKgaW6gNjQtYml0oG1vZGUuoKBBVlg8YnI+CiugoGluc3RydWN0aW9uoHNldKBzdXBwb3J0oGlzoHVuZGVyoGRldmVsb3BtZW50oGJ1dKBpc6Bub3SgYXZhaWxhYmxloGluPGJyPgoroKB0aGlzoHJlbGVhc2UuPGJyPgorPGJyPgorKqBTdXBwb3J0oGZvcqBBSVg1oGhhc6BiZWVuoHJlbW92ZWQuPGJyPgorPGJyPgorKqA9PT09PT09PT09PT09PT09PT09PaBUT09MoENIQU5HRVOgPT09PT09PT09PT09PT09PT09PT08YnI+Cis8YnI+CisqoE1lbWNoZWNrOqBzb21loGluY3JlbWVudGFsoGNoYW5nZXM6PGJyPgorPGJyPgoroKAtoHJlZHVjdGlvbqBvZqBtZW1vcnmgdXNloGluoHNvbWWgY2lyY3Vtc3RhbmNlczxicj4KKzxicj4KK6CgLaBpbXByb3ZlZKBoYW5kbGluZ6BvZqBmcmVlZKBtZW1vcnksoHdoaWNooGluoHNvbWWgY2lyY3Vtc3RhbmNlc6A8YnI+CiugoKCgY2FuoGNhdXNloGRldGVjdGlvbqBvZqB1c2UtYWZ0ZXItZnJlZaB0aGF0oHdvdWxkoHByZXZpb3VzbHmgaGF2ZTxicj4KK6CgoKBiZWVuoG1pc3NlZDxicj4KKzxicj4KK6CgLaBmaXigb2agYaBsb25nc3RhbmRpbmegYnVnoHRoYXSgY291bGSgY2F1c2WgZmFsc2WgbmVnYXRpdmVzoChtaXNzZWQ8YnI+CiugoKCgZXJyb3JzKaBpbqBwcm9ncmFtc6Bkb2luZ6B2ZWN0b3Kgc2F0dXJhdGVkoG5hcnJvd2luZ6BpbnN0cnVjdGlvbnMuPGJyPgorPGJyPgorKqBIZWxncmluZDqgcGVyZm9ybWFuY2WgaW1wcm92ZW1lbnRzoGFuZKBtYWpvcqBtZW1vcnmgdXNloHJlZHVjdGlvbnMsPGJyPgoroKBwYXJ0aWN1bGFybHmgZm9yoGxhcmdlLKBsb25noHJ1bm5pbmegYXBwbGljYXRpb25zoHdoaWNooHBlcmZvcm2gbWFueTxicj4KK6Cgc3luY2hyb25pc2F0aW9uoChsb2NrLKB1bmxvY2ssoGV0YymgZXZlbnRzLqCgUGx1c6BtYW55oHNtYWxsZXI8YnI+CiugoGNoYW5nZXM6PGJyPgorPGJyPgoroKAtoGRpc3BsYXmgb2agbG9ja3NldHOgZm9yoGJvdGigdGhyZWFkc6BpbnZvbHZlZKBpbqBhoHJhY2U8YnI+Cis8YnI+CiugoC2gZ2VuZXJhbKBpbXByb3ZlbWVudHOgaW6gZm9ybWF0dGluZy9jbGFyaXR5oG9moGVycm9yoG1lc3NhZ2VzPGJyPgorPGJyPgoroKAtoGFkZGl0aW9uoG9moGZhY2lsaXRpZXOgYW5koGRvY3VtZW50YXRpb26gcmVnYXJkaW5noGFubm90YXRpb248YnI+CiugoKCgb2agdGhyZWFkoHNhZmWgcmVmZXJlbmNloGNvdW50ZWSgQysroGNsYXNzZXM8YnI+Cis8YnI+CiugoC2gbmV3oGZsYWegLS1jaGVjay1zdGFjay1yZWZzPW5vfHllc6BbeWVzXSygdG+gZGlzYWJsZaByYWNloGNoZWNraW5nPGJyPgoroKCgoG9uoHRocmVhZKBzdGFja3OgKGGgcGVyZm9ybWFuY2WgaGFjayk8YnI+Cis8YnI+CiugoC2gbmV3oGZsYWegLS1mcmVlLWlzLXdyaXRlPW5vfHllc6Bbbm9dLKB0b6BlbmFibGWgZGV0ZWN0aW9uoG9moHJhY2VzPGJyPgoroKCgoHdoZXJloG9uZaB0aHJlYWSgYWNjZXNzZXOgaGVhcKBtZW1vcnmgYnV0oGFub3RoZXKgb25loGZyZWVzoGl0LDxicj4KK6CgoKB3aXRob3V0oGFueaBjb29yZGluYXRpbmegc3luY2hyb25pc2F0aW9uoGV2ZW50PGJyPgorPGJyPgorKqBEUkQ6oGVuYWJsZWSgWE1MoG91dHB1dDugYWRkZWSgc3VwcG9ydKBmb3KgZGVsYXllZKB0aHJlYWSgZGVsZXRpb248YnI+CiugoGluoG9yZGVyoHRvoGRldGVjdKByYWNlc6B0aGF0oG9jY3VyoGNsb3NloHRvoHRoZaBlbmSgb2agYaB0aHJlYWQ8YnI+CiugoCgtLWpvaW4tbGlzdC12b2wpO6BmaXhlZKBhoG1lbW9yeaBsZWFroHRyaWdnZXJlZKBieaByZXBlYXRlZKBjbGllbnQ8YnI+CiugoG1lbW9yeaBhbGxvY2F0YXRpb26gYW5koGRlYWxsb2NhdGlvbjugaW1wcm92ZWSgRGFyd2luoHN1cHBvcnQuPGJyPgorPGJyPgorKqBleHAtcHRyY2hlY2s6oHRoaXOgdG9vbKBoYXOgYmVlbqByZW5hbWVkoHRvoGV4cC1zZ2NoZWNrPGJyPgorPGJyPgorKqBleHAtc2djaGVjazqgdGhpc6B0b29soGhhc6BiZWVuoHJlZHVjZWSgaW6gc2NvcGWgc2+gYXOgdG+gaW1wcm92ZTxicj4KK6CgcGVyZm9ybWFuY2WgYW5koHJlbW92ZaBjaGVja2luZ6B0aGF0oE1lbWNoZWNroGRvZXOgYmV0dGVyLjxicj4KK6CgU3BlY2lmaWNhbGx5LKB0aGWgYWJpbGl0eaB0b6BjaGVja6Bmb3Kgb3ZlcnJ1bnOgZm9yoHN0YWNroGFuZKBnbG9iYWw8YnI+CiugoGFycmF5c6Bpc6B1bmNoYW5nZWQsoGJ1dKB0aGWgYWJpbGl0eaB0b6BjaGVja6Bmb3Kgb3ZlcnJ1bnOgb2agaGVhcDxicj4KK6CgYmxvY2tzoGhhc6BiZWVuoHJlbW92ZWQuoKBUaGWgdG9vbKBoYXOgYWNjb3JkaW5nbHmgYmVlbqByZW5hbWVkoHRvPGJyPgoroKBleHAtc2djaGVja6AoIlN0YWNroGFuZKBHbG9iYWygQXJyYXmgQ2hlY2tpbmciKS48YnI+Cis8YnI+CisqoD09PT09PT09PT09PT09PT09PT09oE9USEVSoENIQU5HRVOgPT09PT09PT09PT09PT09PT09PT08YnI+Cis8YnI+CisqoEdEQqBzZXJ2ZXI6oFZhbGdyaW5koG5vd6BoYXOgYW6gZW1iZWRkZWSgR0RCoHNlcnZlci6goFRoYXSgbWVhbnOgaXQ8YnI+CiugoGlzoHBvc3NpYmxloHRvoGNvbnRyb2ygYaBWYWxncmluZKBydW6gZnJvbaBHREIsoGRvaW5noGFsbKB0aGWgdXN1YWw8YnI+CiugoHRoaW5nc6B0aGF0oEdEQqBjYW6gZG+gKHNpbmdsZaBzdGVwcGluZyygYnJlYWtwb2ludHMsoGV4YW1pbmluZzxicj4KK6CgZGF0YSygZXRjKS6goFRvb2wtc3BlY2lmaWOgZnVuY3Rpb25hbGl0eaBpc6BhbHNvoGF2YWlsYWJsZS6goEZvcjxicj4KK6CgZXhhbXBsZSygaXSgaXOgcG9zc2libGWgdG+gcXVlcnmgdGhloGRlZmluZWRuZXNzoHN0YXRloG9moHZhcmlhYmxlczxicj4KK6Cgb3KgbWVtb3J5oGZyb22gd2l0aGluoEdEQqB3aGVuoHJ1bm5pbmegTWVtY2hlY2s7oGFyYml0cmFyaWx5oGxhcmdlPGJyPgoroKBtZW1vcnmgd2F0Y2hwb2ludHOgYXJloHN1cHBvcnRlZCygZXRjLqCgVG+gdXNloHRoZaBHREKgc2VydmVyLKBzdGFydDxicj4KK6CgVmFsZ3JpbmSgd2l0aKB0aGWgZmxhZ6AtLXZnZGItZXJyb3I9MKBhbmSgZm9sbG93oHRoZaBvbi1zY3JlZW48YnI+CiugoGluc3RydWN0aW9ucy48YnI+Cis8YnI+CisqoEltcHJvdmVkoHN1cHBvcnSgZm9yoHVuZnJpZW5kbHmgc2VsZi1tb2RpZnlpbmegY29kZTqgYaBuZXegb3B0aW9uPGJyPgoroKAtLXNtYy1jaGVjaz1hbGwtbm9uLWZpbGWgaXOgYXZhaWxhYmxlLqCgVGhpc6BhZGRzoHRoZaByZWxldmFudDxicj4KK6CgY29uc2lzdGVuY3mgY2hlY2tzoG9ubHmgdG+gY29kZaB0aGF0oG9yaWdpbmF0ZXOgaW6gbm9uLWZpbGUtYmFja2VkPGJyPgoroKBtYXBwaW5ncy6goEluoGVmZmVjdKB0aGlzoGNvbmZpbmVzoHRoZaBjb25zaXN0ZW5jeaBjaGVja2luZ6Bvbmx5oHRvPGJyPgoroKBjb2RloHRoYXSgaXOgb3KgbWlnaHSgYmWgSklUoGdlbmVyYXRlZCygYW5koGF2b2lkc6BjaGVja3Ogb26gY29kZTxicj4KK6CgdGhhdKBtdXN0oGhhdmWgYmVlbqBjb21waWxlZKBhaGVhZKBvZqB0aW1lLqCgVGhpc6BzaWduaWZpY2FudGx5PGJyPgoroKBpbXByb3Zlc6BwZXJmb3JtYW5jZaBvbqBhcHBsaWNhdGlvbnOgdGhhdKBnZW5lcmF0ZaBjb2RloGF0oHJ1bqB0aW1lLjxicj4KKzxicj4KKyqgSXSgaXOgbm93oHBvc3NpYmxloHRvoGJ1aWxkoGGgd29ya2luZ6BWYWxncmluZKB1c2luZ6BDbGFuZy0yLjmgb248YnI+CiugoExpbnV4Ljxicj4KKzxicj4KKyqgbmV3oGNsaWVudKByZXF1ZXN0c6BWQUxHUklORF97RElTQUJMRSxFTkFCTEV9X0VSUk9SX1JFUE9SVElORy48YnI+CiugoFRoZXNloGVuYWJsZaBhbmSgZGlzYWJsZaBlcnJvcqByZXBvcnRpbmegb26gYaBwZXItdGhyZWFkLKBhbmQ8YnI+CiugoG5lc3RhYmxlLKBiYXNpcy6goFRoaXOgaXOgdXNlZnVsoGZvcqBoaWRpbmegZXJyb3JzoGluoHBhcnRpY3VsYXJseTxicj4KK6CgdHJvdWJsZXNvbWWgcGllY2VzoG9moGNvZGUuoKBUaGWgTVBJoHdyYXBwZXKgbGlicmFyeaAobGlibXBpd3JhcC5jKTxicj4KK6Cgbm93oHVzZXOgdGhpc6BmYWNpbGl0eS48YnI+Cis8YnI+CisqoEFkZGVkoHRoZaAtLW1vZC1mdW5jbmFtZaBvcHRpb26gdG+gY2dfZGlmZi48YnI+Cis8YnI+CisqoD09PT09PT09PT09PT09PT09PT09oEZJWEVEoEJVR1OgPT09PT09PT09PT09PT09PT09PT08YnI+Cis8YnI+CitUaGWgZm9sbG93aW5noGJ1Z3OgaGF2ZaBiZWVuoGZpeGVkoG9yoHJlc29sdmVkLqCgTm90ZaB0aGF0oCJuLWktYnoiPGJyPgorc3RhbmRzoGZvcqAibm90oGluoGJ1Z3ppbGxhIqAtLaB0aGF0oGlzLKBhoGJ1Z6B0aGF0oHdhc6ByZXBvcnRlZKB0b6B1czxicj4KK2J1dKBuZXZlcqBnb3SgYaBidWd6aWxsYaBlbnRyeS6goFdloGVuY291cmFnZaB5b3WgdG+gZmlsZaBidWdzoGluPGJyPgorYnVnemlsbGGgKGh0dHA6Ly9idWdzLmtkZS5vcmcvZW50ZXJfdmFsZ3JpbmRfYnVnLmNnaSmgcmF0aGVyoHRoYW48YnI+CittYWlsaW5noHRoZaBkZXZlbG9wZXJzoChvcqBtYWlsaW5noGxpc3RzKaBkaXJlY3RseaAtLaBidWdzoHRoYXSgYXJlPGJyPgorbm90oGVudGVyZWSgaW50b6BidWd6aWxsYaB0ZW5koHRvoGdldKBmb3Jnb3R0ZW6gYWJvdXSgb3KgaWdub3JlZC48YnI+Cis8YnI+CitUb6BzZWWgZGV0YWlsc6BvZqBhoGdpdmVuoGJ1ZyygdmlzaXQ8YnI+CitodHRwczovL2J1Z3Mua2RlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9WFhYWFhYPGJyPgord2hlcmWgWFhYWFhYoGlzoHRoZaBidWegbnVtYmVyoGFzoGxpc3RlZKBiZWxvdy48YnI+Cis8YnI+CiugNzkzMTGgoG1hbGxvY6BzaWxseaBhcmegd2FybmluZ6Bkb2VzoG5vdKBnaXZloHN0YWNroHRyYWNlPGJyPgorMjEwOTM1oKBwb3J0oHZhbGdyaW5kLmigKG5vdKB2YWxncmluZCmgdG+gd2luMzKgdG+gc3VwcG9ydKBjbGllbnSgcmVxdWVzdHM8YnI+CisyMTQyMjOgoHZhbGdyaW5koFNJR1NFR1agb26gc3RhcnR1cKBnY2OgNC40LjGgcHBjMzKgKEc0KaBVYnVudHWgOS4xMDxicj4KKzI0MzQwNKCgUG9ydKB0b6B6U2VyaWVzPGJyPgorMjQzOTM1oKBIZWxncmluZDqgaW5jb3JyZWN0oGhhbmRsaW5noG9moEFOTk9UQVRFX0hBUFBFTlNfQkVGT1JFKCkvQUZURVIoKTxicj4KKzI0NzIyM6Cgbm9uLXg4NjqgU3VwcHJlc3Ogd2FybmluZzqgJ3JlZ3Bhcm0noGF0dHJpYnV0ZaBkaXJlY3RpdmWgaWdub3JlZDxicj4KKzI1MDEwMaCgaHVnZaAiZnJlZSKgbWVtb3J5oHVzYWdloGR1ZaB0b6BtX21hbGxvY2ZyZWUuY6BmcmFnbWVudGF0aW9uPGJyPgorMjUzMjA2oKBTb21loGZpeGVzoGZvcqB0aGWgZmF1bHRzdGF0dXOgdGVzdGNhc2U8YnI+CisyNTUyMjOgoGNhcGdldKB0ZXN0Y2FzZaBmYWlsc6B3aGVuoHJ1bm5pbmegYXOgcm9vdDxicj4KKzI1NjcwM6CgeGxjX2RibF91MzIuY6B0ZXN0Y2FzZaBicm9rZW48YnI+CisyNTY3MjagoEhlbGdyaW5koHRlc3RzoGhhdmWgYnJva2VuoGlubGluZaBhc22gPGJyPgorMjU5OTc3oKA9PaAyMTQyMjOgKFZhbGdyaW5koHNlZ2ZhdWx0c6Bkb2luZ6BfX2J1aWx0aW5fbG9uZ2ptcCk8YnI+CisyNjQ4MDCgoHRlc3RjYXNloGNvbXBpbGWgZmFpbHVyZaBvbqB6c2VyaWVzPGJyPgorMjY1NzYyoKBtYWtloHB1YmxpY6BWRVigaGVhZGVyc6Bjb21waWxhYmxloGJ5oEcrK6AzLng8YnI+CisyNjU3NzGgoGFzc2VydGlvbqBpbqBqdW1wcy5joChyMTE1MjMpoGZhaWxzoHdpdGigZ2xpYmMtMi4zPGJyPgorMjY2NzUzoKBjb25maWd1cmWgc2NyaXB0oGRvZXOgbm90oGdpdmWgdGhloHVzZXKgdGhloG9wdGlvbqB0b6Bub3SgdXNloFF0Q29yZTxicj4KKzI2NjkzMaCgZ2VuX2luc25fdGVzdC5wbKBpc6Bicm9rZW48YnI+CisyNjY5NjGgoGxkLWxpbnV4LnNvLjKgaT84Ni1saW51eKBzdHJsZW6gaXNzdWVzPGJyPgorMjY2OTkwoKBzZXRuc6BpbnN0cnVjdGlvbqBjYXVzZXOgZmFsc2WgcG9zaXRpdmU8YnI+CisyNjcwMjCgoE1ha2WgZGlyZWN0b3J5oGZvcqB0ZW1wb3JhcnmgZmlsZXOgY29uZmlndXJhYmxloGF0oHJ1bi10aW1lLjxicj4KKzI2NzM0MqCgPT2gMjY3OTk3oChzZWdtZW50YXRpb26gZmF1bHSgb26gTWFjoE9ToDEwLjYpPGJyPgorMjY3MzgzoKBBc3NlcnRpb26gJ3ZnUGxhaW5fc3RybGVuKGRpcimgK6B2Z1BsYWluX3N0cmxlbihmaWxlKaAroDGgJmx0O6AyNTYnoGZhaWxlZDxicj4KKzI2NzQxM6CgQXNzZXJ0aW9uoCdEUkRfKGdfdGhyZWFkaW5mbylbdGlkXS5zeW5jaHJfbmVzdGluZ6AmZ3Q7PaAxJ6BmYWlsZWQuPGJyPgorMjY3NDg4oKByZWd0ZXN0OqBkYXJ3aW6gc3VwcG9ydKBmb3KgNjQtYml0oGJ1aWxkPGJyPgorMjY3NTUyoKBTSUdTRUdWoChtaXNhbGlnbmVkX3N0YWNrX2Vycm9yKaB3aXRooERSRCygYnV0oG5vdKB3aXRooG90aGVyoHRvb2xzPGJyPgorMjY3NjMwoKBBZGSgc3VwcG9ydKBmb3KgSUJNoFBvd2VyoElTQaAyLjA2oC0toHN0YWdloDE8YnI+CisyNjc3NjmgoD09oDI2Nzk5N6AoRGFyd2luOqBtZW1jaGVja6B0cmlnZ2Vyc6BzZWdtZW50YXRpb26gZmF1bHQpPGJyPgorMjY3ODE5oKBBZGSgY2xpZW50oHJlcXVlc3SgZm9yoGluZm9ybWluZ6B0aGWgY29yZaBhYm91dKByZWFsbG9jYXRpb248YnI+CisyNjc5MjWgoGxhb2egZGF0YaBzdHJ1Y3R1cmWgcXVhZHJhdGljoGZvcqBhoHNpbmdsZaBzZXF1ZW5jZaBvZqBsb2NrPGJyPgorMjY3OTY4oKBkcmQ6oCh2Z0RyZF90aHJlYWRfc2V0X2pvaW5hYmxlKTqgQXNzZXJ0aW9uoCcwoCZsdDs9oChpbnQpdGlkoC4uJ6BmYWlsZWQ8YnI+CisyNjc5OTegoE1hY09TWDqgNjQtYml0oFagc2VnZmF1bHRzoG9uoGxhdW5jaKB3aGVuoGJ1aWx0oHdpdGigWGNvZGWgNC4wLjE8YnI+CisyNjg1MTOgoG1pc3NlZKBvcHRpbWl6YXRpb25zoGluoGZvbGRfRXhwcjxicj4KKzI2ODYxOaCgczM5MHg6oGZwcqAtoGdwcqB0cmFuc2ZlcqBmYWNpbGl0eaA8YnI+CisyNjg2MjCgoHMzOTB4OqByZWNvbnNpZGVyoCJsb25noGRpc3BsYWNlbWVudCKgcmVxdWlyZW1lbnSgPGJyPgorMjY4NjIxoKBzMzkweDqgaW1wcm92ZaBJUqBnZW5lcmF0aW9uoGZvcqBYQzxicj4KKzI2ODcxNaCgczM5MHg6oEZMT0dSoGlzoG5vdKB1bml2ZXJzYWxseaBhdmFpbGFibGU8YnI+CisyNjg3OTKgoD09oDI2Nzk5N6AodmFsZ3JpbmSgc2VnoGZhdWx0c6BvbqBzdGFydHVwoHdoZW6gY29tcGlsZWSgd2l0aKBYY29kZaA0KTxicj4KKzI2ODkzMKCgczM5MHg6oE1IWaBpc6Bub3SgdW5pdmVyc2FsbHmgYXZhaWxhYmxlPGJyPgorMjY5MDc4oKBhcm0tJmd0O0lSOqB1bmhhbmRsZWSgaW5zdHJ1Y3Rpb26gU1VCoChTUKBtaW51c6BpbW1lZGlhdGUvcmVnaXN0ZXIpoDxicj4KKzI2OTA3OaCgU3VwcG9ydKBwdHJhY2Wgc3lzdGVtoGNhbGygb26gQVJNPGJyPgorMjY5MTQ0oKBtaXNzaW5noCJCYWSgb3B0aW9uIqBlcnJvcqBtZXNzYWdlPGJyPgorMjY5MjA5oKBjb25kaXRpb25hbKBsb2FkoGFuZKBzdG9yZaBmYWNpbGl0eaAoejE5Nik8YnI+CisyNjkzNTSgoFNoaWZ0oGJ5oHplcm+gb26geDg2oGNhbqBpbmNvcnJlY3RseaBjbG9iYmVyoENDX05ERVA8YnI+CisyNjk2NDGgoD09oDI2Nzk5N6AodmFsZ3JpbmSgc2VnZmF1bHRzoGltbWVkaWF0ZWx5oChzZWdtZW50YXRpb26gZmF1bHQpKTxicj4KKzI2OTczNqCgczM5MHg6oG1pbm9yoGNvZGWgZ2VuZXJhdGlvbqB0d2Vha3M8YnI+CisyNjk3NzigoD09oDI3Mjk4NqAodmFsZ3JpbmQuaDqgc3dhcKByb2xlc6BvZqBWQUxHUklORF9ET19DTElFTlRfUkVRVUVTVCgpoC4uKTxicj4KKzI2OTg2M6CgczM5MHg6oHJlbW92ZaB1bnVzZWSgZnVuY3Rpb26gcGFyYW1ldGVyczxicj4KKzI2OTg2NKCgczM5MHg6oHR3ZWFroHMzOTBfZW1pdF9sb2FkX2NjoDxicj4KKzI2OTg4NKCgPT2gMjUwMTAxoChvdmVyaGVhZKBmb3KgaHVnZaBibG9ja3OgZXhoYXVzdHOgc3BhY2WgdG9voHNvb24pPGJyPgorMjcwMDgyoKBzMzkweDqgTWFrZaBzdXJloHRvoHBvaW50oHRoZaBQU1egYWRkcmVzc6B0b6B0aGWgbmV4dKBhZGRyZXNzoG9uoFNJR0lMTDxicj4KKzI3MDExNaCgczM5MHg6oHJld3JpdGWgc29tZaB0ZXN0Y2FzZXM8YnI+CisyNzAzMDmgoD09oDI2Nzk5N6AodmFsZ3JpbmSgY3Jhc2igb26gc3RhcnR1cCk8YnI+CisyNzAzMjCgoGFkZKBzdXBwb3J0oGZvcqBMaW51eKBGSU9RU0laRaBpb2N0bCgpoGNhbGw8YnI+CisyNzAzMjagoHNlZ2ZhdWx0oHdoaWxloHRyeWluZ6B0b6BzYW5pdGl6ZaB0aGWgZW52aXJvbm1lbnSgcGFzc2VkoHRvoGV4ZWNsZTxicj4KKzI3MDc5NKCgSUJNoFBPV0VSN6BzdXBwb3J0oHBhdGNooGNhdXNlc6ByZWdyZXNzaW9uoGluoG5vbmUvdGVzdHM8YnI+CisyNzA4NTGgoElCTaBQT1dFUjegZmNmaWR1c6BpbnN0cnVjdGlvbqBjYXVzZXOgbWVtY2hlY2ugdG+gZmFpbDxicj4KKzI3MDg1NqCgSUJNoFBPV0VSN6B4c25tYWRkYWRwoGluc3RydWN0aW9uoGNhdXNlc6BtZW1jaGVja6B0b6BmYWlsoG9uoDMyYml0oGFwcKA8YnI+CisyNzA5MjWgoGh5cGVyLW9wdGltaXplZKBzdHJzcG4oKaBpbqAvbGliNjQvbGliYy0yLjEzLnNvoG5lZWRzoGZpeDxicj4KKzI3MDk1OaCgczM5MHg6oGludmFsaWSgdXNloG9moFIwoGFzoGJhc2WgcmVnaXN0ZXI8YnI+CisyNzEwNDKgoFZTWKBjb25maWd1cmWgY2hlY2ugZmFpbHOgd2hlbqBpdKBzaG91bGSgbm90oDxicj4KKzI3MTA0M6CgVmFsZ3JpbmSgYnVpbGSgZmFpbHOgd2l0aKBhc3NlbWJsZXKgZXJyb3Kgb26gcHBjNjSgd2l0aKBiaW51dGlsc6AyLjIxoDxicj4KKzI3MTI1OaCgczM5MHg6oGZpeKBjb2RloGNvbmZ1c2lvbqA8YnI+CisyNzEzMzegoD09oDI2Nzk5N6AoVmFsZ3JpbmSgc2VnZmF1bHRzoG9uoE1hY09ToFgpPGJyPgorMjcxMzg1oKBzMzkweDqgSW1wbGVtZW50oElzdF9NQkWgPGJyPgorMjcxNTAxoKBzMzkweDqgbWlzY6BjbGVhbnVwc6A8YnI+CisyNzE1MDSgoHMzOTB4OqBwcm9tb3RloGxpa2VseaBhbmSgdW5saWtlbHmgPGJyPgorMjcxNTc5oKBwcGM6oHVzaW5noHdyb25noGVudW2gdHlwZaA8YnI+CisyNzE2MTWgoHVuaGFuZGxlZKBpbnN0cnVjdGlvbqAicG9wY250IqAoYXJjaD1hbWQxMGgpoDxicj4KKzI3MTczMKCgRml4oGJ1Z6B3aGVuoGNoZWNraW5noGlvY3RsczqgZHVwbGljYXRloGNoZWNroDxicj4KKzI3MTc3NqCgczM5MHg6oHByb3ZpZGWgU1RGTEWgaW5zdHJ1Y3Rpb26gc3VwcG9ydKA8YnI+CisyNzE3NzmgoHMzOTB4OqBwcm92aWRloGNsb2NroGluc3RydWN0aW9uc6BsaWtloFNUQ0ugPGJyPgorMjcxNzk5oKBEYXJ3aW46oGlvY3Rsc6B3aXRob3V0oGFuoGFyZ6ByZXBvcnSgYaBtZW1vcnmgZXJyb3KgPGJyPgorMjcxODIwoKBhcm06oGZpeKB0eXBloGNvbmZ1c2lvbqA8YnI+CisyNzE5MTegoHB0aHJlYWRfY29uZF90aW1lZHdhaXSgZmFpbHVyZaBsZWFkc6B0b6Bub3QtbG9ja2VkoGZhbHNloHBvc2l0aXZloDxicj4KKzI3MjA2N6CgczM5MHg6oGZpeKBESVNQMjCgbWFjcm+gPGJyPgorMjcyNjE1oKBBoHR5cG+gaW6gZGVidWegb3V0cHV0oGluoG1jX2xlYWtjaGVjay5jPGJyPgorMjcyNjYxoKBjYWxsZ3JpbmRfYW5ub3RhdGWgY2hva2VzoHdoZW6gcnVuoGZyb22gcGF0aHOgY29udGFpbmluZ6ByZWdleKBjaGFyczxicj4KKzI3Mjg5M6CgYW1kNjQtJmd0O0lSOqAweDY2oDB4RqAweDM4oDB4MkKgMHhDMaAweDY2oDB4RqAweDdGoD09oChjbG9zZWSgYXOgZHVwKTxicj4KKzI3Mjk1NaCgVW5oYW5kbGVkoHN5c2NhbGygZXJyb3KgZm9yoHB3cml0ZTY0oG9uoHBwYzY0oGFyY2igPGJyPgorMjcyOTY3oKBtYWtloGRvY3VtZW50YXRpb26gYnVpbGQtc3lzdGVtoG1vcmWgcm9idXN0oDxicj4KKzI3Mjk4NqCgRml4oGdjYy00Ljagd2FybmluZ3Ogd2l0aKB2YWxncmluZC5oPGJyPgorMjczMzE4oKBhbWQ2NC0mZ3Q7SVI6oDB4NjagMHhGoDB4M0GgMHg2MaAweEMxoDB4MzigKG1pc3NpbmegUENNUHhTVFJ4oGNhc2UpPGJyPgorMjczMzE4oKB1bmhhbmRsZWSgUENNUHhTVFJ4oGNhc2U6oHZleKBhbWQ2NC0mZ3Q7SVI6oDB4NjagMHhGoDB4M0GgMHg2MaAweEMxoDB4MzigPGJyPgorMjczNDMxoKB2YWxncmluZKBzZWdmYXVsdHOgaW6gZXZhbENmaUV4cHKgKGRlYnVnaW5mby5jOjIwMzkpPGJyPgorMjczNDY1oKBDYWxsZ3JpbmQ6oGp1bXBzLmM6MTY0oChuZXdfamNjKTqgQXNzZXJ0aW9uoCcoMKAmbHQ7PaBqbXApoCZhbXA7JmFtcDugLi4uJzxicj4KKzI3MzUzNqCgQnVpbGSgZXJyb3I6oG11bHRpcGxloGRlZmluaXRpb26gb2agYHZnRHJkX3B0aHJlYWRfY29uZF9pbml0aWFsaXplcic8YnI+CisyNzM2NDCgoHBwYzY0LWxpbnV4OqB1bmhhbmRsZWSgc3lzY2FsbHOgc2V0cmVzdWlkKDE2NCmgYW5koHNldHJlc2dpZCgxNjkpPGJyPgorMjczNzI5oKA9PaAyODMwMDCgKElsbGVnYWygb3Bjb2RloGZvcqBTU0UyoCJyb3VuZHNkIqBpbnN0cnVjdGlvbik8YnI+CisyNzM3NzigoGV4cC1wdHJjaGVjazqgdW5oYW5kbGVkoHN5c25voD09oDI1OTxicj4KKzI3NDA4OaCgZXhwLXB0cmNoZWNrOqB1bmhhbmRsZWSgc3lzbm+gPT2gMjA4PGJyPgorMjc0Mzc4oKBzMzkweDqgVmFyaW91c6BkaXNwYXRjaGVyoHR3ZWFrczxicj4KKzI3NDQ0N6CgV0FSTklORzqgdW5oYW5kbGVkoHN5c2NhbGw6oDM0MDxicj4KKzI3NDc3NqCgYW1kNjQtJmd0O0lSOqAweDY2oDB4RqAweDM4oDB4MkKgMHhDNaAweDY2PGJyPgorMjc0Nzg0oKA9PaAyNjc5OTegKHZhbGdyaW5koGxzoC1soHJlc3VsdHOgaW6gU2VnbWVudGF0aW9uoEZhdWx0KTxicj4KKzI3NDkyNqCgdmFsZ3JpbmSgZG9lc6Bub3SgYnVpbGSgYWdhaW5zdKBsaW51eC0zPGJyPgorMjc1MTQ4oKBjb25maWd1cmWgRkFJTKB3aXRooGdsaWJjLTIuMTQ8YnI+CisyNzUxNTGgoEZlZG9yYaAxNaAvoGdsaWJjLTIuMTSgJ21ha2WgcmVndGVzdCegRkFJTDxicj4KKzI3NTE2OKCgTWFrZaBWYWxncmluZKB3b3JroGZvcqBNYWNPU1igMTAuN6BMaW9uPGJyPgorMjc1MjEyoKA9PaAyNzUyODSgKGxvdHOgb2agZmFsc2WgcG9zaXRpdmVzoGZyb22gX19tZW1jcHlfc3NzZTNfYmFja6BldKBhbCk8YnI+CisyNzUyNzigoHZhbGdyaW5koGRvZXOgbm90oGJ1aWxkoG9uoExpbnV4oGtlcm5lbKAzLjAuKqBkdWWgdG+gc2lsbHk8YnI+CisyNzUyODSgoFZhbGdyaW5koG1lbWNweS9tZW1tb3ZloHJlZGlyZWN0aW9uoHN0b3BwZWSgd29ya2luZ6BpbqBnbGliY6AyLjE0L3g4Nl82NDxicj4KKzI3NTMwOKCgRml4oGltcGxlbWVudGF0aW9uoGZvcqBwcGM2NKBmcmVzoGluc3RydWM8YnI+CisyNzUzMzmgoHMzOTB4OqBmaXigdGVzdGNhc2WgY29tcGlsZaB3YXJuaW5nczxicj4KKzI3NTUxN6CgczM5MHg6oFByb3ZpZGWgc3VwcG9ydKBmb3KgQ0tTTaBpbnN0cnVjdGlvbjxicj4KKzI3NTcxMKCgczM5MHg6oGdldKByaWSgb2agcmVkdW5kYW50oGFkZHJlc3OgbW9kZaBjYWxjdWxhdGlvbjxicj4KKzI3NTgxNaCgPT2gMjQ3ODk0oChWYWxncmluZKBkb2Vzbid0oGtub3egYWJvdXSgTGludXigcmVhZGFoZWFkKDIpoHN5c2NhbGwpPGJyPgorMjc1ODUyoKA9PaAyNTAxMDGgKHZhbGdyaW5koHVzZXOgYWxsoHN3YXCgc3BhY2WgYW5koGlzoGtpbGxlZCk8YnI+CisyNzY3ODSgoEFkZKBzdXBwb3J0oGZvcqBJQk2gUG93ZXKgSVNBoDIuMDagLS2gc3RhZ2WgMzxicj4KKzI3Njk4N6CgZ2Ric3J2OqBmaXigdGVzdHOgZm9sbG93aW5noHJlY2VudKBjb21taXRzPGJyPgorMjc3MDQ1oKBWYWxncmluZKBjcmFzaGVzoHdpdGigoHVuaGFuZGxlZKBEV19PUF+gb3Bjb2RloDB4MmE8YnI+CisyNzcxOTmgoFRoZaB0ZXN0X2lzYV8yXzA2X3BhcnQxLmOgaW6gbm9uZS90ZXN0cy9wcGM2NKBzaG91bGSgYmWgYaBzeW1saW5rPGJyPgorMjc3NDcxoKBVbmhhbmRsZWSgc3lzY2FsbDqgMzQwPGJyPgorMjc3NjEwoKB2YWxncmluZKBjcmFzaGVzoGluoFZHXyhsc2VlaykoY29yZV9mZCygcGhkcnNbaWR4XS5wX29mZnNldCygLi4uKTxicj4KKzI3NzY1M6CgQVJNOqBzdXBwb3J0oFRodW1iMqBQTESgaW5zdHJ1Y3Rpb248YnI+CisyNzc2NjOgoEFSTTqgTkVPTqBmbG9hdKBWTVVMoGJ5oHNjYWxhcqBpbmNvcnJlY3Q8YnI+CisyNzc2ODmgoEFSTTqgdGVzdHOgZm9yoFZTVG6gd2l0aKByZWdpc3RlcqBwb3N0LWluZGV4oGFyZaBicm9rZW48YnI+CisyNzc2OTSgoEFSTTqgQkxYoExSoGluc3RydWN0aW9uoGJyb2tlbqBpbqBBUk2gbW9kZTxicj4KKzI3Nzc4MKCgQVJNOqBWTU9WLkYzMqAoaW1tZWRpYXRlKaBpbnN0cnVjdGlvbqBpc6Bicm9rZW48YnI+CisyNzgwNTegoGZ1c2WgZmlsZXN5c3RlbaBzeXNjYWxsoGRlYWRsb2Nrczxicj4KKzI3ODA3OKCgVW5pbXBsZW1lbnRlZKBzeXNjYWxsoDI4MKBvbqBwcGMzMjxicj4KKzI3ODM0OaCgRl9HRVRQSVBFX1NaoGFuZKCgRl9TRVRQSVBFX1NaoExpbnV4oGZjbnRsoGNvbW1hbmRzPGJyPgorMjc4NDU0oKBWQUxHUklORF9TVEFDS19ERVJFR0lTVEVSoGhhc6B3cm9uZ6BvdXRwdXSgdHlwZTxicj4KKzI3ODUwMqCgPT2gMjc1Mjg0oChWYWxncmluZKBjb25mdXNlc6BtZW1jcHkoKaBhbmSgbWVtbW92ZSgpKTxicj4KKzI3ODg5MqCgZ2Ric3J2OqBmYWN0b3JpemWgZ2RioHZlcnNpb26gaGFuZGxpbmcsoGZpeKBkb2OgYW5koHR5cG9zPGJyPgorMjc5MDI3oKBTdXBwb3J0oGZvcqBNVkNMoGFuZKBDTENMoGluc3RydWN0aW9uPGJyPgorMjc5MDI3oKBzMzkweDqgUHJvdmlkZaBzdXBwb3J0oGZvcqBDTENMoGFuZKBNVkNMoGluc3RydWN0aW9uczxicj4KKzI3OTA2MqCgUmVtb3ZloGGgcmVkdW5kYW50oGNoZWNroGluoHRoZaBpbnNuoHNlbGVjdG9yoGZvcqBwcGMuPGJyPgorMjc5MDcxoKBKREugY3JlYXRlc6BQVEVTVKB3aXRooHJlZHVuZGFudKBSRVguV6BwcmVmaXg8YnI+CisyNzkyMTKgoGdkYnNydjqgYWRkoG1vbml0b3KgY21koHYuaW5mb6BzY2hlZHVsZXIuPGJyPgorMjc5Mzc4oKBleHAtcHRyY2hlY2s6oHRoZaAnaW1wb3NzaWJsZSegaGFwcGVuZWSgb26gbWtmaWZvoGNhbGw8YnI+CisyNzk2OTigoG1lbWNoZWNroGRpc2NhcmRzoHZhbGlkLWJpdHOgZm9yoHBhY2t1c3diPGJyPgorMjc5Nzk1oKBtZW1jaGVja6ByZXBvcnRzoHVuaW5pdGlhbGlzZWSgdmFsdWVzoGZvcqBtaW5jb3JloG9uoGFtZDY0PGJyPgorMjc5OTk0oKBBZGSgc3VwcG9ydKBmb3KgSUJNoFBvd2VyoElTQaAyLjA2oC0toHN0YWdloDM8YnI+CisyODAwODOgoG1lbXBvbGljeaBzeXNjYWxsoGNoZWNroGVycm9yczxicj4KKzI4MDI5MKCgdmV4oGFtZDY0LSZndDtJUjqgMHg2NqAweEagMHgzOKAweDI4oDB4QzGgMHg2NqAweEagMHg2Rjxicj4KKzI4MDcxMKCgczM5MHg6oGNvbmZpZ6BmaWxlc6Bmb3KgbmlnaHRseaBidWlsZHM8YnI+CisyODA3NTegoC90bXCgZGlyoHN0aWxsoHVzZWSgYnmgdmFsZ3JpbmSgZXZlbqBpZqBUTVBESVKgaXOgc3BlY2lmaWVkPGJyPgorMjgwOTY1oKBWYWxncmluZKBicmVha3OgZmNudGygbG9ja3Ogd2hlbqBwcm9ncmFtoGRvZXOgbW1hcDxicj4KKzI4MTEzOKCgV0FSTklORzqgdW5oYW5kbGVkoHN5c2NhbGw6oDM0MDxicj4KKzI4MTI0MaCgPT2gMjc1MTY4oCh2YWxncmluZKB1c2VsZXNzoG9uoE1hY29zoDEwLjcuMaBMaW9uKTxicj4KKzI4MTMwNKCgPT2gMjc1MTY4oChEYXJ3aW46oGR5bGSgImNhbm5vdKBsb2FkoGluc2VydGVkoGxpYnJhcnkiKTxicj4KKzI4MTMwNaCgPT2gMjc1MTY4oCh1bmhhbmRsZWSgc3lzY2FsbDqgdW5peDozNTegb26gRGFyd2luoDExLjEpPGJyPgorMjgxNDY4oKBzMzkweDqgaGFuZGxloGRvX2Nsb25loGFuZKBnY2OgY2xvbmVzoGluoGNhbGygdHJhY2VzPGJyPgorMjgxNDg4oKBBUk06oFZGUKByZWdpc3RlcqBjb3JydXB0aW9uPGJyPgorMjgxODI4oKA9PaAyNzUyODSgKGZhbHNloG1lbW1vdmWgd2FybmluZzqgIlNvdXJjZaBhbmSgZGVzdGluYXRpb26gb3ZlcmxhcCIpPGJyPgorMjgxODgzoKBzMzkweDqgRml4oHN5c3RlbaBjYWxsoHdyYXBwZXKgZm9yoCJjbG9uZSIuPGJyPgorMjgyMTA1oKBnZW5lcmFsaXNloCdyZWNsYWltU3VwZXJCbG9jayegdG+gYWxzb6ByZWNsYWltoHNwbGl0dGFibGWgc3VwZXJibG9jazxicj4KKzI4MjExMqCgVW5oYW5kbGVkoGluc3RydWN0aW9uoGJ5dGVzOqAweERFoDB4RDmgMHg5QqAweERGoChmY29tcHApPGJyPgorMjgyMjM4oKBTTEVTMTA6oG1ha2WgY2hlY2ugZmFpbHM8YnI+CisyODI5NzmgoHN0cmNhc2VzdHKgbmVlZHOgcmVwbGFjZW1lbnSgd2l0aKByZWNlbnQoJmd0Oz0yLjEyKaBnbGliYzxicj4KKzI4MzAwMKCgdmV4oGFtZDY0LSZndDtJUjqgMHg2NqAweEagMHgzQaAweEGgMHhDMKAweDmgMHhGM6AweEY8YnI+CisyODMyNDOgoFJlZ3Jlc3Npb26gaW6gcHBjNjSgbWVtY2hlY2ugdGVzdHM8YnI+CisyODMzMjWgoD09oDI2Nzk5N6AoRGFyd2luOqBWoHNlZ2ZhdWx0c6BvbqBzdGFydHVwoHdoZW6gYnVpbHSgd2l0aKBYY29kZaA0LjApPGJyPgorMjgzNDI3oKByZS1jb25uZWN0oGVwb2xsX3B3YWl0oHN5c2NhbGygb26gQVJNoGxpbnV4PGJyPgorMjgzNjAwoKBnZGJzcnY6oGFuZHJvaWQ6oHBvcnSgdmdkYi5jPGJyPgorMjgzNzA5oKBub25lL3Rlc3RzL2ZhdWx0c3RhdHVzoG5lZWRzoHRvoGFjY291bnSgZm9yoHBhZ2Wgc2l6ZTxicj4KKzI4NDMwNaCgZmlsdGVyX2dkYqBuZWVkc6BlbmhhbmNlbWVudKB0b6B3b3JroG9uoHBwYzY0PGJyPgorMjg0Mzg0oKBjbGFuZ6AzLjGgLVd1bnVzZWQtdmFsdWWgd2FybmluZ3OgaW6gdmFsZ3JpbmQuaCygbWVtY2hlY2suaDxicj4KKzI4NDQ3MqCgVGh1bWIyoFJPUi5XoGVuY29kaW5noFQyoG5vdKBpbXBsZW1lbnRlZDxicj4KKzI4NDYyMaCgWE1MLWVzY2FwZaBwcm9jZXNzoGNvbW1hbmSgbGluZaBpbqBYTUygb3V0cHV0PGJyPgorbi1pLWJ6oKBjYWNoZWdyaW5kL2NhbGxncmluZDqgaGFuZGxloENQVUlEoGluZm9ybWF0aW9uoGZvcqBDb3JloGlYoEludGVsoENQVXM8YnI+CiugoKCgoKCgoHRoYXSgaGF2ZaBub24tcG93ZXItb2YtMqBzaXplc6AoYWxzb6BBTURzKTxicj4KK24taS1ieqCgZG9uJ3SgYmWgc3Bvb2tlZKBieaBsaWJyYXJpZXOgbWFzaGVkoGJ5oGVsZmhhY2s8YnI+CituLWktYnqgoGRvbid0oGJloHNwb29rZWSgYnmgbGlieHVsLnNvoGxpbmtlZKB3aXRooGdvbGQ8YnI+CituLWktYnqgoGltcHJvdmVkoGNoZWNraW5noGZvcqBWQUxHUklORF9DSEVDS19NRU1fSVNfREVGSU5FRDxicj4KKzxicj4KKygzLjcuMC1URVNUMTqgMjegoE9jdG9iZXKgMjAxMSygdmV4oHIyMjI4LKB2YWxncmluZKByMTIyNDUpPGJyPgorKDMuNy4wLlJDMTqgoKCgMaBOb3ZlbWJlcqAyMDExLKB2ZXigcjIyMzEsoHZhbGdyaW5koHIxMjI1Nyk8YnI+CisoMy43LjA6oKCgoKCgoKA1oE5vdmVtYmVyoDIwMTEsoHZleKByMjIzMSygdmFsZ3JpbmSgcjEyMjU4KTxicj4KKzxicj4KKzxicj4KKzxicj4KK1JlbGVhc2WgMy42LjGgKDE2oEZlYnJ1YXJ5oDIwMTEpPGJyPgorfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn48YnI+CiszLjYuMaBpc6BhoGJ1Z6BmaXigcmVsZWFzZS6goEl0oGFkZHOgc3VwcG9ydKBmb3Kgc29tZaBTU0U0PGJyPgoraW5zdHJ1Y3Rpb25zoHRoYXSgd2VyZaBvbWl0dGVkoGluoDMuNi4woGR1ZaB0b6BsYWNroG9moHRpbWUuoKBJbml0aWFsPGJyPgorc3VwcG9ydKBmb3KgZ2xpYmMtMi4xM6BoYXOgYmVlbqBhZGRlZC6goEGgbnVtYmVyoG9moGJ1Z3OgY2F1c2luZzxicj4KK2NyYXNoaW5noG9yoGFzc2VydGlvbqBmYWlsdXJlc6BoYXZloGJlZW6gZml4ZWQuPGJyPgorPGJyPgorVGhloGZvbGxvd2luZ6BidWdzoGhhdmWgYmVlbqBmaXhlZKBvcqByZXNvbHZlZC6goE5vdGWgdGhhdKAibi1pLWJ6Ijxicj4KK3N0YW5kc6Bmb3KgIm5vdKBpbqBidWd6aWxsYSKgLS2gdGhhdKBpcyygYaBidWegdGhhdKB3YXOgcmVwb3J0ZWSgdG+gdXM8YnI+CitidXSgbmV2ZXKgZ290oGGgYnVnemlsbGGgZW50cnkuoKBXZaBlbmNvdXJhZ2WgeW91oHRvoGZpbGWgYnVnc6Bpbjxicj4KK2J1Z3ppbGxhoChodHRwOi8vYnVncy5rZGUub3JnL2VudGVyX3ZhbGdyaW5kX2J1Zy5jZ2kpoHJhdGhlcqB0aGFuPGJyPgorbWFpbGluZ6B0aGWgZGV2ZWxvcGVyc6Aob3KgbWFpbGluZ6BsaXN0cymgZGlyZWN0bHmgLS2gYnVnc6B0aGF0oGFyZTxicj4KK25vdKBlbnRlcmVkoGludG+gYnVnemlsbGGgdGVuZKB0b6BnZXSgZm9yZ290dGVuoGFib3V0oG9yoGlnbm9yZWQuPGJyPgorPGJyPgorVG+gc2VloGRldGFpbHOgb2agYaBnaXZlbqBidWcsoHZpc2l0PGJyPgoraHR0cHM6Ly9idWdzLmtkZS5vcmcvc2hvd19idWcuY2dpP2lkPVhYWFhYWDxicj4KK3doZXJloFhYWFhYWKBpc6B0aGWgYnVnoG51bWJlcqBhc6BsaXN0ZWSgYmVsb3cuPGJyPgorPGJyPgorMTg4NTcyoKBWYWxncmluZKBvbqBNYWOgc2hvdWxkoHN1cHByZXNzoHNldGVudigpoG1lbaBsZWFrPGJyPgorMTk0NDAyoKB2ZXigYW1kNjQtJmd0O0lSOqAweDQ4oDB4RqAweEFFoDB4NKAocHJvcGVyoEZYe1NBVkUsUlNUT1J9oHN1cHBvcnQpPGJyPgorMjEwNDgxoKB2ZXigYW1kNjQtJmd0O0lSOqBBc3NlcnRpb26gYHN6oD09oDKgfHygc3qgPT2gNCegZmFpbGVkoChSRVguV6BQT1BRKTxicj4KKzI0NjE1MqCgY2FsbGdyaW5koGludGVybmFsoGVycm9yoGFmdGVyoHB0aHJlYWRfY2FuY2VsoG9uoDMyoEJpdKBMaW51eDxicj4KKzI1MDAzOKCgcHBjNjQ6oEFsdGl2ZWOgTFZTUqBhbmSgTFZTTKBpbnN0cnVjdGlvbnOgZmFpbKB0aGVpcqByZWd0ZXN0PGJyPgorMjU0NDIwoKBtZW1vcnmgcG9vbKB0cmFja2luZ6Bicm9rZW6gPGJyPgorMjU0OTU3oKBUZXN0oGNvZGWgZmFpbGluZ6B0b6Bjb21waWxloGR1ZaB0b6BjaGFuZ2VzoGluoG1lbWNoZWNrLmg8YnI+CisyNTUwMDmgoGhlbGdyaW5kL2RyZDqgY3Jhc2igb26gY2htb2Sgd2l0aKBpbnZhbGlkoHBhcmFtZXRlcjxicj4KKzI1NTEzMKCgcmVhZGR3YXJmMy5joHBhcnNlX3R5cGVfRElFoGNvbmZ1c2VkoGJ5oEdOQVSgQWRhoHR5cGVzPGJyPgorMjU1MzU1oKBoZWxncmluZC9kcmQ6oGNyYXNooG9uoHRocmVhZGVkoHByb2dyYW1zoGRvaW5noGZvcms8YnI+CisyNTUzNTigoD09oDI1NTM1NTxicj4KKzI1NTQxOKCgKFNTRTQueCmgcmludKBjYWxsoGNvbXBpbGVkoHdpdGigSUNDPGJyPgorMjU1ODIyoKAtLWdlbi1zdXBwcmVzc2lvbnOgY2FuoGNyZWF0ZaBpbnZhbGlkoGZpbGVzOqAidG9voG1hbnmgY2FsbGVyc6BbLi4uXSI8YnI+CisyNTU4ODigoGNsb3NpbmegdmFsZ3JpbmRvdXRwdXSgdGFnoG91dHB1dHRlZKB0b6Bsb2ctc3RyZWFtoG9uoGVycm9yPGJyPgorMjU1OTYzoKAoU1NFNC54KaB2ZXigYW1kNjQtJmd0O0lSOqAweDY2oDB4RqAweDNBoDB4OaAweERCoDB4MKAoUk9VTkRQRCk8YnI+CisyNTU5NjagoFNsb3duZXNzoHdoZW6gdXNpbmegbWVtcG9vbKBhbm5vdGF0aW9uczxicj4KKzI1NjM4N6CgdmV4oHg4Ni0mZ3Q7SVI6oDB4RDSgMHhBoDB4MqAweDegKEFBRKBhbmSgQUFNKTxicj4KKzI1NjYwMKCgc3VwZXItb3B0aW1pemVkoHN0cmNhc2VjbXAoKaBmYWxzZaBwb3NpdGl2ZTxicj4KKzI1NjY2OaCgdmV4oGFtZDY0LSZndDtJUjqgVW5oYW5kbGVkoExPT1BORUygaW5zbqBvbqBhbWQ2NDxicj4KKzI1Njk2OKCgKFNTRTQueCmgdmV4oGFtZDY0LSZndDtJUjqgMHg2NqAweEagMHgzOKAweDEwoDB4RDOgMHg2NqAoQkxFTkRWUHgpPGJyPgorMjU3MDExoKAoU1NFNC54KaB2ZXigYW1kNjQtJmd0O0lSOqAweDY2oDB4RqAweDNBoDB4RaAweEZEoDB4QTCgKFBCTEVORFcpPGJyPgorMjU3MDYzoKAoU1NFNC54KaB2ZXigYW1kNjQtJmd0O0lSOqAweDY2oDB4RqAweDNBoDB4OKAweEMwoDB4MKAoUk9VTkRQUyk8YnI+CisyNTcyNzagoE1pc3NpbmegY2FzZaBpbqBtZW1jaGVja6AtLXRyYWNrLW9yaWdpbnM9eWVzPGJyPgorMjU4ODcwoKAoU1NFNC54KaBBZGSgc3VwcG9ydKBmb3KgRVhUUkFDVFBToFNTRaA0LjGgaW5zdHJ1Y3Rpb248YnI+CisyNjE5NjagoChTU0U0LngpoHN1cHBvcnSgZm9yoENSQzMyQqBhbmSgQ1JDMzJRoGlzoGxhY2tpbmegKGFsc2+gQ1JDMzJ7VyxMfSk8YnI+CisyNjI5ODWgoFZFWKByZWdyZXNzaW9uoGluoHZhbGdyaW5koDMuNi4woGluoGhhbmRsaW5noFBvd2VyUEOgVk1YPGJyPgorMjYyOTk1oKAoU1NFNC54KaBjcmFzaKB3aGVuoHRyeWluZ6B0b6B2YWxncmluZKBnY2Mtc25hcHNob3SgKFBDTVB4U1RSeKAkMCk8YnI+CisyNjMwOTmgoGNhbGxncmluZF9hbm5vdGF0ZaBjb3VudHOgSXKgaW1wcm9wZXJseaBbLi4uXTxicj4KKzI2Mzg3N6CgdW5kZWZpbmVkoGNvcHJvY2Vzc29yoGluc3RydWN0aW9uoG9uoEFSTXY3PGJyPgorMjY1OTY0oKBjb25maWd1cmWgRkFJTKB3aXRooGdsaWJjLTIuMTM8YnI+CituLWktYnqgoEZpeKBjb21waWxloGVycm9yoHcvoGljYy0xMi54oGluoGd1ZXN0X2FybV90b0lSLmM8YnI+CituLWktYnqgoERvY3M6oGZpeKBib2d1c6BkZXNjcmlwdGlvbnOgZm9yoFZBTEdSSU5EX0NSRUFURV9CTE9DS6BldKBhbDxicj4KK24taS1ieqCgTWFzc2lmOqBkb24ndKBhc3NlcnSgb26gc2htYXQoKaB3aXRooC0tcGFnZXMtYXMtaGVhcD15ZXM8YnI+CituLWktYnqgoEJ1Z6BmaXhlc6BhbmSgbWFqb3Kgc3BlZWR1cHOgZm9yoHRoZaBleHAtREhBVKBzcGFjZaBwcm9maWxlcjxicj4KK24taS1ieqCgRFJEOqBkaXNhYmxloC0tZnJlZS1pcy13cml0ZaBkdWWgdG+gaW1wbGVtZW50YXRpb26gZGlmZmljdWx0aWVzPGJyPgorPGJyPgorKDMuNi4xOqAxNqBGZWJydWFyeaAyMDExLKB2ZXigcjIxMDMsoHZhbGdyaW5koHIxMTU2MSkuPGJyPgorPGJyPgorPGJyPgorPGJyPgorUmVsZWFzZaAzLjYuMKAoMjGgT2N0b2JlcqAyMDEwKTxicj4KK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn48YnI+CiszLjYuMKBpc6BhoGZlYXR1cmWgcmVsZWFzZaB3aXRooG1hbnmgc2lnbmlmaWNhbnSgaW1wcm92ZW1lbnRzoGFuZKB0aGU8YnI+Cit1c3VhbKBjb2xsZWN0aW9uoG9moGJ1Z6BmaXhlcy48YnI+Cis8YnI+CitUaGlzoHJlbGVhc2Wgc3VwcG9ydHOgWDg2L0xpbnV4LKBBTUQ2NC9MaW51eCygQVJNL0xpbnV4LKBQUEMzMi9MaW51eCw8YnI+CitQUEM2NC9MaW51eCygWDg2L0RhcndpbqBhbmSgQU1ENjQvRGFyd2luLqCgU3VwcG9ydKBmb3KgcmVjZW50oGRpc3Ryb3M8YnI+CithbmSgdG9vbGNoYWluoGNvbXBvbmVudHOgKGdsaWJjoDIuMTIsoGdjY6A0LjUsoE9TWKAxMC42KaBoYXOgYmVlbqBhZGRlZC48YnI+Cis8YnI+CiugoKCgoKCgoKCgoKCgoKCgoKCgoC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS08YnI+Cis8YnI+CitIZXJloGFyZaBzb21loGhpZ2hsaWdodHMuoKBEZXRhaWxzoGFyZaBzaG93bqBmdXJ0aGVyoGRvd246PGJyPgorPGJyPgorKqBTdXBwb3J0oGZvcqBBUk0vTGludXguPGJyPgorPGJyPgorKqBTdXBwb3J0oGZvcqByZWNlbnSgTGludXigZGlzdHJvczqgVWJ1bnR1oDEwLjEwoGFuZKBGZWRvcmGgMTQuPGJyPgorPGJyPgorKqBTdXBwb3J0oGZvcqBNYWOgT1OgWKAxMC42LKBib3RooDMyLaBhbmSgNjQtYml0oGV4ZWN1dGFibGVzLjxicj4KKzxicj4KKyqgU3VwcG9ydKBmb3KgdGhloFNTRTQuMqBpbnN0cnVjdGlvbqBzZXQuPGJyPgorPGJyPgorKqBFbmhhbmNlbWVudHOgdG+gdGhloENhbGxncmluZKBwcm9maWxlciygaW5jbHVkaW5noHRoZaBhYmlsaXR5oHRvPGJyPgoroKBoYW5kbGWgQ1BVc6B3aXRooHRocmVloGxldmVsc6BvZqBjYWNoZS48YnI+Cis8YnI+CisqoEGgbmV3oGV4cGVyaW1lbnRhbKBoZWFwoHByb2ZpbGVyLKBESEFULjxicj4KKzxicj4KKyqgQaBodWdloG51bWJlcqBvZqBidWegZml4ZXOgYW5koHNtYWxsoGVuaGFuY2VtZW50cy48YnI+Cis8YnI+CiugoKCgoKCgoKCgoKCgoKCgoKCgoC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS08YnI+Cis8YnI+CitIZXJloGFyZaBkZXRhaWxzoG9moHRoZaBhYm92ZaBjaGFuZ2VzLKB0b2dldGhlcqB3aXRooGRlc2NyaXB0aW9uc6BvZjxicj4KK21hbnmgb3RoZXKgY2hhbmdlcyygYW5koGGgbGlzdKBvZqBmaXhlZKBidWdzLjxicj4KKzxicj4KKyqgPT09PT09PT09PT09PT09PT09oFBMQVRGT1JNoENIQU5HRVOgPT09PT09PT09PT09PT09PT08YnI+Cis8YnI+CisqoFN1cHBvcnSgZm9yoEFSTS9MaW51eC6goFZhbGdyaW5koG5vd6BydW5zoG9uoEFSTXY3oGNhcGFibGWgQ1BVczxicj4KK6CgcnVubmluZ6BMaW51eC6goEl0oGlzoGtub3duoHRvoHdvcmugb26gVWJ1bnR1oDEwLjA0LKBVYnVudHWgMTAuMTAsPGJyPgoroKBhbmSgTWFlbW+gNSygc2+geW91oGNhbqBydW6gVmFsZ3JpbmSgb26geW91cqBOb2tpYaBOOTAwoGlmoHlvdaB3YW50Ljxicj4KKzxicj4KK6CgVGhpc6ByZXF1aXJlc6BhoENQVaBjYXBhYmxloG9moHJ1bm5pbmegdGhloEFSTXY3LUGgaW5zdHJ1Y3Rpb26gc2V0PGJyPgoroKAoQ29ydGV4oEE1LKBBOKBhbmSgQTkpLqCgVmFsZ3JpbmSgcHJvdmlkZXOgZmFpcmx5oGNvbXBsZXRloGNvdmVyYWdlPGJyPgoroKBvZqB0aGWgdXNlcqBzcGFjZaBpbnN0cnVjdGlvbqBzZXQsoGluY2x1ZGluZ6BBUk2gYW5koFRodW1ioGludGVnZXI8YnI+CiugoGNvZGUsoFZGUHYzLKBORU9OoGFuZKBWNqBtZWRpYaBpbnN0cnVjdGlvbnMuoKBUaGWgTWVtY2hlY2ssPGJyPgoroKBDYWNoZWdyaW5koGFuZKBNYXNzaWagdG9vbHOgd29ya6Bwcm9wZXJseTugb3RoZXKgdG9vbHOgd29ya6B0bzxicj4KK6CgdmFyeWluZ6BkZWdyZWVzLjxicj4KKzxicj4KKyqgU3VwcG9ydKBmb3KgcmVjZW50oExpbnV4oGRpc3Ryb3OgKFVidW50daAxMC4xMKBhbmSgRmVkb3JhoDE0KSygYWxvbmc8YnI+CiugoHdpdGigc3VwcG9ydKBmb3KgcmVjZW50oHJlbGVhc2VzoG9moHRoZaB1bmRlcmx5aW5noHRvb2xjaGFpbjxicj4KK6CgY29tcG9uZW50cyygbm90YWJseaBnY2MtNC41oGFuZKBnbGliYy0yLjEyLjxicj4KKzxicj4KKyqgU3VwcG9ydKBmb3KgTWFjoE9ToFigMTAuNiygYm90aKAzMi2gYW5koDY0LWJpdKBleGVjdXRhYmxlcy6goDY0LWJpdDxicj4KK6Cgc3VwcG9ydKBhbHNvoHdvcmtzoG11Y2igYmV0dGVyoG9uoE9ToFigMTAuNSygYW5koGlzoGFzoHNvbGlkoGFzPGJyPgoroKAzMi1iaXSgc3VwcG9ydKBub3cuPGJyPgorPGJyPgorKqBTdXBwb3J0oGZvcqB0aGWgU1NFNC4yoGluc3RydWN0aW9uoHNldC6goFNTRTQuMqBpc6BzdXBwb3J0ZWSgaW48YnI+CiugoDY0LWJpdKBtb2RlLqCgSW6gMzItYml0oG1vZGUsoHN1cHBvcnSgaXOgb25seaBhdmFpbGFibGWgdXCgdG+gYW5kPGJyPgoroKBpbmNsdWRpbmegU1NTRTMuoKBTb21loGV4Y2VwdGlvbnM6oFNTRTQuMqBBRVOgaW5zdHJ1Y3Rpb25zoGFyZaBub3Q8YnI+CiugoHN1cHBvcnRlZKBpbqA2NC1iaXSgbW9kZSygYW5koDMyLWJpdKBtb2RloGRvZXOgaW6gZmFjdKBzdXBwb3J0oHRoZTxicj4KK6CgYmFyZaBtaW5pbXVtoFNTRTSgaW5zdHJ1Y3Rpb25zoHRvoG5lZWRlZKB0b6BydW6gcHJvZ3JhbXOgb26gTWFjoE9ToFg8YnI+CiugoDEwLjagb26gMzItYml0oHRhcmdldHMuPGJyPgorPGJyPgorKqBTdXBwb3J0oGZvcqBJQk2gUE9XRVI2oGNwdXOgaGFzoGJlZW6gaW1wcm92ZWQuoKBUaGWgUG93ZXKgSVNBoHVwoHRvPGJyPgoroKBhbmSgaW5jbHVkaW5noHZlcnNpb26gMi4wNaBpc6BzdXBwb3J0ZWQuPGJyPgorPGJyPgorKqA9PT09PT09PT09PT09PT09PT09PaBUT09MoENIQU5HRVOgPT09PT09PT09PT09PT09PT09PT08YnI+Cis8YnI+CisqoENhY2hlZ3JpbmSgaGFzoGGgbmV3oHByb2Nlc3Npbmegc2NyaXB0LKBjZ19kaWZmLKB3aGljaKBmaW5kc6B0aGU8YnI+CiugoGRpZmZlcmVuY2WgYmV0d2VlbqB0d2+gcHJvZmlsZXMuoKBJdCdzoHZlcnmgdXNlZnVsoGZvcqBldmFsdWF0aW5nPGJyPgoroKB0aGWgcGVyZm9ybWFuY2WgZWZmZWN0c6BvZqBhoGNoYW5nZaBpbqBhoHByb2dyYW0uPGJyPgoroKA8YnI+CiugoFJlbGF0ZWSgdG+gdGhpc6BjaGFuZ2UsoHRoZaBtZWFuaW5noG9moGNnX2Fubm90YXRlJ3OgKHJhcmVseS11c2VkKTxicj4KK6CgLS10aHJlc2hvbGSgb3B0aW9uoGhhc6BjaGFuZ2VkO6B0aGlzoGlzoHVubGlrZWx5oHRvoGFmZmVjdKBtYW55PGJyPgoroKBwZW9wbGUsoGlmoHlvdaBkb6B1c2WgaXSgcGxlYXNloHNlZaB0aGWgdXNlcqBtYW51YWygZm9yoGRldGFpbHMuPGJyPgorPGJyPgorKqBDYWxsZ3JpbmSgbm93oGNhbqBkb6BicmFuY2igcHJlZGljdGlvbqBzaW11bGF0aW9uLKBzaW1pbGFyoHRvPGJyPgoroKBDYWNoZWdyaW5kLqCgSW6gYWRkaXRpb24soGl0oG9wdGlvbmFsbHmgY2FuoGNvdW50oHRoZaBudW1iZXKgb2Y8YnI+CiugoGV4ZWN1dGVkoGdsb2JhbKBidXOgZXZlbnRzLqCgQm90aKBjYW6gYmWgdXNlZKBmb3KgYaBiZXR0ZXI8YnI+CiugoGFwcHJveGltYXRpb26gb2agYaAiQ3ljbGWgRXN0aW1hdGlvbiKgYXOgZGVyaXZlZKBldmVudKAoeW91oG5lZWSgdG88YnI+CiugoHVwZGF0ZaB0aGWgZXZlbnSgZm9ybXVsYaBpbqBLQ2FjaGVncmluZKB5b3Vyc2VsZikuPGJyPgorPGJyPgorKqBDYWNoZWdyaW5koGFuZKBDYWxsZ3JpbmSgbm93oHJlZmVyoHRvoHRoZaBMTKAobGFzdC1sZXZlbCmgY2FjaGU8YnI+CiugoHJhdGhlcqB0aGFuoHRoZaBMMqBjYWNoZS6goFRoaXOgaXOgdG+gYWNjb21tb2RhdGWgbWFjaGluZXOgd2l0aDxicj4KK6CgdGhyZWWgbGV2ZWxzoG9moGNhY2hlc6AtLaBpZqBDYWNoZWdyaW5kL0NhbGxncmluZKBhdXRvLWRldGVjdHOgdGhlPGJyPgoroKBjYWNoZaBjb25maWd1cmF0aW9uoG9moHN1Y2igYaBtYWNoaW5loGl0oHdpbGygcnVuoHRoZaBzaW11bGF0aW9uoGFzPGJyPgoroKBpZqB0aGWgTDKgY2FjaGWgaXNuJ3SgcHJlc2VudC6goFRoaXOgbWVhbnOgdGhloHJlc3VsdHOgYXJloGxlc3M8YnI+CiugoGxpa2VseaB0b6BtYXRjaKB0aGWgdHJ1ZaByZXN1bHSgZm9yoHRoZaBtYWNoaW5lLKBidXQ8YnI+CiugoENhY2hlZ3JpbmQvQ2FsbGdyaW5kJ3OgcmVzdWx0c6BhcmWgYWxyZWFkeaBvbmx5oGFwcHJveGltYXRlLKBhbmQ8YnI+CiugoHNob3VsZKBub3SgYmWgY29uc2lkZXJlZKBhdXRob3JpdGF0aXZlLqCgVGhloHJlc3VsdHOgYXJloHN0aWxsPGJyPgoroKB1c2VmdWygZm9yoGdpdmluZ6BhoGdlbmVyYWygaWRlYaBhYm91dKBhoHByb2dyYW0nc6Bsb2NhbGl0eS48YnI+Cis8YnI+CisqoE1hc3NpZqBoYXOgYaBuZXegb3B0aW9uLKAtLXBhZ2VzLWFzLWhlYXAsoHdoaWNooGlzoGRpc2FibGVkoGJ5PGJyPgoroKBkZWZhdWx0LqCgV2hlbqBlbmFibGVkLKBpbnN0ZWFkoG9moHRyYWNraW5noGFsbG9jYXRpb25zoGF0oHRoZaBsZXZlbDxicj4KK6Cgb2agaGVhcKBibG9ja3OgKGFzoGFsbG9jYXRlZKB3aXRooG1hbGxvYy9uZXcvbmV3W10pLKBpdKBpbnN0ZWFkPGJyPgoroKB0cmFja3OgbWVtb3J5oGFsbG9jYXRpb25zoGF0oHRoZaBsZXZlbKBvZqBtZW1vcnmgcGFnZXOgKGFzoG1hcHBlZKBieTxicj4KK6CgbW1hcCygYnJrLKBldGMpLqCgRWFjaKBtYXBwZWSgcGFnZaBpc6B0cmVhdGVkoGFzoGl0c6Bvd26gYmxvY2suPGJyPgoroKBJbnRlcnByZXRpbmegdGhloHBhZ2UtbGV2ZWygb3V0cHV0oGlzoGhhcmRlcqB0aGFuoHRoZaBoZWFwLWxldmVsPGJyPgoroKBvdXRwdXQsoGJ1dKB0aGlzoG9wdGlvbqBpc6B1c2VmdWygaWageW91oHdhbnSgdG+gYWNjb3VudKBmb3KgZXZlcnk8YnI+CiugoGJ5dGWgb2agbWVtb3J5oHVzZWSgYnmgYaBwcm9ncmFtLjxicj4KKzxicj4KKyqgRFJEoGhhc6B0d2+gbmV3oGNvbW1hbmQtbGluZaBvcHRpb25zOqAtLWZyZWUtaXMtd3JpdGWgYW5kPGJyPgoroKAtLXRyYWNlLWFsbG9jLqCgVGhloGZvcm1lcqBhbGxvd3OgdG+gZGV0ZWN0oHJlYWRpbmegZnJvbaBhbHJlYWR5oGZyZWVkPGJyPgoroKBtZW1vcnksoGFuZKB0aGWgbGF0dGVyoGFsbG93c6B0cmFjaW5noG9moGFsbKBtZW1vcnmgYWxsb2NhdGlvbnOgYW5kPGJyPgoroKBkZWFsbG9jYXRpb25zLjxicj4KKzxicj4KKyqgRFJEoGhhc6BzZXZlcmFsoG5ld6Bhbm5vdGF0aW9ucy6goEN1c3RvbaBiYXJyaWVyoGltcGxlbWVudGF0aW9uc6BjYW48YnI+CiugoG5vd6BiZaBhbm5vdGF0ZWQsoGFzoHdlbGygYXOgYmVuaWduoHJhY2VzoG9uoHN0YXRpY6B2YXJpYWJsZXMuPGJyPgorPGJyPgorKqBEUkQnc6BoYXBwZW5zoGJlZm9yZaAvoGhhcHBlbnOgYWZ0ZXKgYW5ub3RhdGlvbnOgaGF2ZaBiZWVuoG1hZGWgbW9yZTxicj4KK6CgcG93ZXJmdWwsoHNvoHRoYXSgdGhleaBjYW6gbm93oGFsc2+gYmWgdXNlZKB0b6Bhbm5vdGF0ZaBlLmcuoGGgc21hcnQ8YnI+CiugoHBvaW50ZXKgaW1wbGVtZW50YXRpb24uPGJyPgorPGJyPgorKqBIZWxncmluZCdzoGFubm90YXRpb26gc2V0oGhhc6BhbHNvoGJlZW6gZHJhc3RpY2FsbHmgaW1wcm92ZWQsoHNvoGFzPGJyPgoroKB0b6Bwcm92aWRloHRvoHVzZXJzoGGgZ2VuZXJhbKBzZXSgb2agYW5ub3RhdGlvbnOgdG+gZGVzY3JpYmWgbG9ja3MsPGJyPgoroKBzZW1hcGhvcmVzLKBiYXJyaWVyc6BhbmSgY29uZGl0aW9uoHZhcmlhYmxlcy6goEFubm90YXRpb25zoHRvPGJyPgoroKBkZXNjcmliZaB0aHJlYWQtc2FmZaByZWZlcmVuY2WgY291bnRlZKBoZWFwoG9iamVjdHOgaGF2ZaBhbHNvoGJlZW48YnI+CiugoGFkZGVkLjxicj4KKzxicj4KKyqgTWVtY2hlY2ugaGFzoGGgbmV3oGNvbW1hbmQtbGluZaBvcHRpb24soC0tc2hvdy1wb3NzaWJseS1sb3N0LKB3aGljaDxicj4KK6CgaXOgZW5hYmxlZKBieaBkZWZhdWx0LqCgV2hlbqBkaXNhYmxlZCygdGhloGxlYWugZGV0ZWN0b3Kgd2lsbKBub3Q8YnI+CiugoHNob3egcG9zc2libHktbG9zdKBibG9ja3MuPGJyPgorPGJyPgorKqBBoG5ld6BleHBlcmltZW50YWygaGVhcKBwcm9maWxlciygREhBVKAoRHluYW1pY6BIZWFwoEFuYWx5c2lzoFRvb2wpLDxicj4KK6CgaGFzoGJlZW6gYWRkZWQuoKBESEFUoGtlZXBzoHRyYWNroG9moGFsbG9jYXRlZKBoZWFwoGJsb2NrcyygYW5koGFsc288YnI+CiugoGluc3BlY3RzoGV2ZXJ5oG1lbW9yeaByZWZlcmVuY2WgdG+gc2VloHdoaWNooGJsb2NroChpZqBhbnkpoGlzoGJlaW5nPGJyPgoroKBhY2Nlc3NlZC6goFRoaXOgZ2l2ZXOgYaBsb3Sgb2agaW5zaWdodKBpbnRvoGJsb2NroGxpZmV0aW1lcyw8YnI+CiugoHV0aWxpc2F0aW9uLKB0dXJub3ZlciygbGl2ZW5lc3MsoGFuZKB0aGWgbG9jYXRpb26gb2agaG90oGFuZKBjb2xkPGJyPgoroKBmaWVsZHMuoKBZb3WgY2FuoHVzZaBESEFUoHRvoGRvoGhvdC1maWVsZKBwcm9maWxpbmcuPGJyPgorPGJyPgorKqA9PT09PT09PT09PT09PT09PT09PaBPVEhFUqBDSEFOR0VToD09PT09PT09PT09PT09PT09PT09PGJyPgorPGJyPgorKqBJbXByb3ZlZKBzdXBwb3J0oGZvcqB1bmZyaWVuZGx5oHNlbGYtbW9kaWZ5aW5noGNvZGU6oHRoZaBleHRyYTxicj4KK6Cgb3ZlcmhlYWSgaW5jdXJyZWSgYnmgLS1zbWMtY2hlY2s9YWxsoGhhc6BiZWVuoHJlZHVjZWSgYnk8YnI+CiugoGFwcHJveGltYXRlbHmgYaBmYWN0b3Kgb2agNaBhc6Bjb21wYXJlZKB3aXRooDMuNS4wLjxicj4KKzxicj4KKyqgQWJpbGl0eaB0b6BzaG93oGRpcmVjdG9yeaBuYW1lc6Bmb3Kgc291cmNloGZpbGVzoGluoGVycm9yoG1lc3NhZ2VzLjxicj4KK6CgVGhpc6Bpc6Bjb21iaW5lZKB3aXRooGGgZmxleGlibGWgbWVjaGFuaXNtoGZvcqBzcGVjaWZ5aW5noHdoaWNoPGJyPgoroKBwYXJ0c6BvZqB0aGWgcGF0aHOgc2hvdWxkoGJloHNob3duLqCgVGhpc6Bpc6BlbmFibGVkoGJ5oHRoZaBuZXegZmxhZzxicj4KK6CgLS1mdWxscGF0aC1hZnRlci48YnI+Cis8YnI+CisqoEGgbmV3oGZsYWcsoC0tcmVxdWlyZS10ZXh0LXN5bWJvbCygd2hpY2igd2lsbKBzdG9woHRoZaBydW6gaWagYTxicj4KK6Cgc3BlY2lmaWVkoHN5bWJvbKBpc6Bub3SgZm91bmSgaXSgYaBnaXZlbqBzaGFyZWSgb2JqZWN0oHdoZW6gaXSgaXM8YnI+CiugoGxvYWRlZKBpbnRvoHRoZaBwcm9jZXNzLqCgVGhpc6BtYWtlc6BhZHZhbmNlZKB3b3JraW5noHdpdGigZnVuY3Rpb248YnI+CiugoGludGVyY2VwdGluZ6BhbmSgd3JhcHBpbmegc2FmZXKgYW5koG1vcmWgcmVsaWFibGUuPGJyPgorPGJyPgorKqBJbXByb3ZlZKBzdXBwb3J0oGZvcqB0aGWgVmFsa3lyaWWgR1VJLKB2ZXJzaW9uoDIuMC4wLqCgR1VJoG91dHB1dDxicj4KK6CgYW5koGNvbnRyb2ygb2agVmFsZ3JpbmSgaXOgbm93oGF2YWlsYWJsZaBmb3KgdGhloHRvb2xzoE1lbWNoZWNroGFuZDxicj4KK6CgSGVsZ3JpbmQuoKBYTUygb3V0cHV0oGZyb22gVmFsZ3JpbmSgaXOgYXZhaWxhYmxloGZvcqBNZW1jaGVjayw8YnI+CiugoEhlbGdyaW5koGFuZKBleHAtUHRyY2hlY2suPGJyPgorPGJyPgorKqBNb3JloHJlbGlhYmxloHN0YWNroHVud2luZGluZ6BvbqBhbWQ2NC1saW51eCygcGFydGljdWxhcmx5oGluoHRoZTxicj4KK6CgcHJlc2VuY2Wgb2agZnVuY3Rpb26gd3JhcHBlcnMsoGFuZKB3aXRooGdjYy00LjWgY29tcGlsZWSgY29kZS48YnI+Cis8YnI+CisqoE1vZGVzdKBzY2FsYWJpbGl0eaAocGVyZm9ybWFuY2WgaW1wcm92ZW1lbnRzKaBmb3KgbWFzc2l2ZTxicj4KK6CgbG9uZy1ydW5uaW5noGFwcGxpY2F0aW9ucyygcGFydGljdWxhcmx5oGZvcqB0aG9zZaB3aXRooGh1Z2WgYW1vdW50czxicj4KK6Cgb2agY29kZS48YnI+Cis8YnI+CisqoFN1cHBvcnSgZm9yoGFuYWx5emluZ6Bwcm9ncmFtc6BydW5uaW5noHVuZGVyoFdpbmWgd2l0aKBoYXOgYmVlbjxicj4KK6CgaW1wcm92ZWQuoKBUaGWgaGVhZGVyoGZpbGVzoCZsdDt2YWxncmluZC92YWxncmluZC5oJmd0Oyw8YnI+CiugoCZsdDt2YWxncmluZC9tZW1jaGVjay5oJmd0O6BhbmSgJmx0O3ZhbGdyaW5kL2RyZC5oJmd0O6BjYW6gbm93oGJloHVzZWSgaW48YnI+CiugoFdpbmRvd3MtcHJvZ3JhbXOgY29tcGlsZWSgd2l0aKBNaW5HV6BvcqBvbmWgb2agdGhloE1pY3Jvc29mdKBWaXN1YWw8YnI+CiugoFN0dWRpb6Bjb21waWxlcnMuPGJyPgorPGJyPgorKqBBoHJhcmWgYnV0oHNlcmlvdXOgZXJyb3KgaW6gdGhloDY0LWJpdKB4ODagQ1BVoHNpbXVsYXRpb26gd2FzoGZpeGVkLjxicj4KK6CgVGhloDMyLWJpdKBzaW11bGF0b3Kgd2FzoG5vdKBhZmZlY3RlZC6goFRoaXOgZGlkoG5vdKBvY2N1cqBvZnRlbiw8YnI+CiugoGJ1dKB3aGVuoGl0oGRpZKB3b3VsZKB1c3VhbGx5oGNyYXNooHRoZaBwcm9ncmFtoHVuZGVyoHRlc3QuPGJyPgoroKBCdWegMjQ1OTI1Ljxicj4KKzxicj4KKyqgQaBsYXJnZaBudW1iZXKgb2agYnVnc6B3ZXJloGZpeGVkLqCgVGhlc2WgYXJloHNob3duoGJlbG93Ljxicj4KKzxicj4KKyqgQaBudW1iZXKgb2agYnVnc6B3ZXJloGludmVzdGlnYXRlZCygYW5koHdlcmWgY2FuZGlkYXRlc6Bmb3KgZml4aW5nLDxicj4KK6CgYnV0oGFyZaBub3SgZml4ZWSgaW6gMy42LjAsoGR1ZaB0b6BsYWNroG9moGRldmVsb3BlcqB0aW1lLqCgVGhleaBtYXk8YnI+CiugoGdldKBmaXhlZKBpbqBsYXRlcqByZWxlYXNlcy6goFRoZXmgYXJlOjxicj4KKzxicj4KK6CgMTk0NDAyoKB2ZXigYW1kNjQtJmd0O0lSOqAweDQ4oDB4RqAweEFFoDB4NKAweDI0oDB4NDmgoChGWFNBVkU2NCk8YnI+CiugoDIxMjQxOaCgZmFsc2WgcG9zaXRpdmWgImxvY2ugb3JkZXKgdmlvbGF0ZWQioChBK0KgdnOgQSmgPGJyPgoroKAyMTM2ODWgoFVuZGVmaW5lZKB2YWx1ZaBwcm9wYWdhdGVzoHBhc3SgZGVwZW5kZW5jeaBicmVha2luZ6BpbnN0cnVjdGlvbjxicj4KK6CgMjE2ODM3oKBJbmNvcnJlY3SgaW5zdHJ1bWVudGF0aW9uoG9moE5TT3BlcmF0aW9uUXVldWWgb26gRGFyd2luoDxicj4KK6CgMjM3OTIwoKB2YWxncmluZKBzZWdmYXVsdKBvbqBmb3JroGZhaWx1cmWgPGJyPgoroKAyNDIxMzegoHN1cHBvcnSgZm9yoGNvZGWgY29tcGlsZWSgYnmgTExWTS0yLjg8YnI+CiugoDI0MjQyM6CgQW5vdGhlcqB1bmtub3duoEludGVsoGNhY2hloGNvbmZpZ6B2YWx1ZaA8YnI+CiugoDI0MzIzMqCgSW5jb25zaXN0ZW50oExvY2ugT3JkZXJpbmdzoHJlcG9ydKB3aXRooHRyeWxvY2ugPGJyPgoroKAyNDM0ODOgoHBwYzqgY2FsbGdyaW5koHRyaWdnZXJzoFZFWKBhc3NlcnRpb26gZmFpbHVyZaA8YnI+CiugoDI0MzkzNaCgSGVsZ3JpbmQ6oGltcGxlbWVudGF0aW9uoG9moEFOTk9UQVRFX0hBUFBFTlNfQkVGT1JFKCmgaXOgd3Jvbmc8YnI+CiugoDI0NDY3N6CgSGVsZ3JpbmSgY3Jhc2igaGdfbWFpbi5jOjYxNqAobWFwX3RocmVhZHNfbG9va3VwKTqgQXNzZXJ0aW9uPGJyPgoroKCgoKCgoKCgoCd0aHInoGZhaWxlZC6gPGJyPgoroKAyNDYxNTKgoGNhbGxncmluZKBpbnRlcm5hbKBlcnJvcqBhZnRlcqBwdGhyZWFkX2NhbmNlbKBvbqAzMqBCaXSgTGludXigPGJyPgoroKAyNDk0MzWgoEFuYWx5emluZ6B3aW5loHByb2dyYW1zoHdpdGigY2FsbGdyaW5koHRyaWdnZXJzoGGgY3Jhc2igPGJyPgoroKAyNTAwMzigoHBwYzY0OqBBbHRpdmVjoGx2c3KgYW5koGx2c2ygaW5zdHJ1Y3Rpb25zoGZhaWygdGhlaXKgcmVndGVzdDxicj4KK6CgMjUwMDY1oKBIYW5kbGluZ6BsYXJnZaBhbGxvY2F0aW9uc6A8YnI+CiugoDI1MDEwMaCgaHVnZaAiZnJlZSKgbWVtb3J5oHVzYWdloGR1ZaB0b6BtX21hbGxvY2ZyZWUuYzxicj4KK6CgoKCgoKCgoKAic3VwZXJibG9ja3OgZnJhZ21lbnRhdGlvbiI8YnI+CiugoDI1MTU2OaCgdmV4oGFtZDY0LSZndDtJUjqgMHhGoDB4MaAweEY5oDB4OEKgMHg0Q6AweDI0oChSRFRTQ1ApPGJyPgoroKAyNTIwOTGgoENhbGxncmluZKBvbqBBUk2gZG9lc6Bub3SgZGV0ZWN0oGZ1bmN0aW9uoHJldHVybnOgY29ycmVjdGx5PGJyPgoroKAyNTI2MDCgoFtQQVRDSF2gQWxsb3egbGhzoHRvoGJloGGgcG9pbnRlcqBmb3Kgc2hsL3Nocjxicj4KK6CgMjU0NDIwoKBtZW1vcnmgcG9vbKB0cmFja2luZ6Bicm9rZW48YnI+CiugoG4taS1ieqCgc3VwcG9ydKBmb3KgYWRkaW5noHN5bWJvbHOgZm9yoEpJVKBnZW5lcmF0ZWSgY29kZTxicj4KKzxicj4KKzxicj4KK1RoZaBmb2xsb3dpbmegYnVnc6BoYXZloGJlZW6gZml4ZWSgb3KgcmVzb2x2ZWQuoKBOb3RloHRoYXSgIm4taS1ieiI8YnI+CitzdGFuZHOgZm9yoCJub3SgaW6gYnVnemlsbGEioC0toHRoYXSgaXMsoGGgYnVnoHRoYXSgd2FzoHJlcG9ydGVkoHRvoHVzPGJyPgorYnV0oG5ldmVyoGdvdKBhoGJ1Z3ppbGxhoGVudHJ5LqCgV2WgZW5jb3VyYWdloHlvdaB0b6BmaWxloGJ1Z3OgaW48YnI+CitidWd6aWxsYaAoaHR0cDovL2J1Z3Mua2RlLm9yZy9lbnRlcl92YWxncmluZF9idWcuY2dpKaByYXRoZXKgdGhhbjxicj4KK21haWxpbmegdGhloGRldmVsb3BlcnOgKG9yoG1haWxpbmegbGlzdHMpoGRpcmVjdGx5oC0toGJ1Z3OgdGhhdKBhcmU8YnI+Citub3SgZW50ZXJlZKBpbnRvoGJ1Z3ppbGxhoHRlbmSgdG+gZ2V0oGZvcmdvdHRlbqBhYm91dKBvcqBpZ25vcmVkLjxicj4KKzxicj4KK1RvoHNlZaBkZXRhaWxzoG9moGGgZ2l2ZW6gYnVnLKB2aXNpdDxicj4KK2h0dHBzOi8vYnVncy5rZGUub3JnL3Nob3dfYnVnLmNnaT9pZD1YWFhYWFg8YnI+Cit3aGVyZaBYWFhYWFigaXOgdGhloGJ1Z6BudW1iZXKgYXOgbGlzdGVkoGJlbG93Ljxicj4KKzxicj4KKzEzNTI2NKCgZGNiemygaW5zdHJ1Y3Rpb26gbWlzc2luZzxicj4KKzE0MjY4OKCgPT2gMjUwNzk5PGJyPgorMTUzNjk5oKBWYWxncmluZKBzaG91bGSgcmVwb3J0oHVuYWxpZ25lZKByZWFkc6B3aXRooG1vdmRxYTxicj4KKzE4MDIxN6CgPT2gMjEyMzM1PGJyPgorMTkwNDI5oKBWYWxncmluZKByZXBvcnRzoGxvc3Sgb2agZXJyb3JzoGluoGxkLnNvPGJyPgoroKCgoKCgoKB3aXRooHg4Nl82NKAyLjkuOTCgZ2xpYmOgPGJyPgorMTk3MjY2oKB2YWxncmluZKBhcHBlYXJzoHRvoGNob2tloG9uoHRoZaB4bW1zoGluc3RydWN0aW9uPGJyPgoroKCgoKCgoKAicm91bmRzZCKgb26geDg2XzY0oDxicj4KKzE5Nzk4OKCgQ3Jhc2igd2hlbqBkZW1hbmdsaW5noHZlcnmgbGFyZ2Wgc3ltYm9soG5hbWVzPGJyPgorMjAyMzE1oKB1bmhhbmRsZWSgc3lzY2FsbDqgMzMyoChpbm90aWZ5X2luaXQxKTxicj4KKzIwMzI1NqCgQWRkoHBhZ2UtbGV2ZWygcHJvZmlsaW5noHRvoE1hc3NpZjxicj4KKzIwNTA5M6CgZHN5bXV0aWw9eWVzoG5lZWRzoHF1b3RlcyygbG9ja2luZ6AocGFydGlhbKBmaXgpPGJyPgorMjA1MjQxoKBTbm93oExlb3BhcmSgMTAuNqBzdXBwb3J0oChwYXJ0aWFsoGZpeCk8YnI+CisyMDY2MDCgoExlYWugY2hlY2tlcqBmYWlsc6B0b6B1cGdyYWRloGluZGlyZWN0oGJsb2Nrc6B3aGVuoHRoZWlyPGJyPgoroKCgoKCgoKBwYXJlbnSgYmVjb21lc6ByZWFjaGFibGWgPGJyPgorMjEwOTM1oKBwb3J0oHZhbGdyaW5kLmigKG5vdKB2YWxncmluZCmgdG+gd2luMzKgc2+gYXBwc6BydW6gdW5kZXI8YnI+CiugoKCgoKCgoHdpbmWgY2FuoG1ha2WgY2xpZW50oHJlcXVlc3RzPGJyPgorMjExNDEwoKB2ZXigYW1kNjQtJmd0O0lSOqAweDE1oDB4RkagMHhGRqAweDCgMHgwoDB4ODk8YnI+CiugoKCgoKCgoHdpdGhpbqBMaW51eKBpcC1zdGFja6BjaGVja3N1baBmdW5jdGlvbnOgPGJyPgorMjEyMzM1oKB1bmhhbmRsZWSgaW5zdHJ1Y3Rpb26gYnl0ZXM6oDB4RjOgMHhGoDB4QkSgMHhDMDxicj4KK6CgoKCgoKCgKGx6Y250oCVlYXgsJWVheCmgPGJyPgorMjEzNjg1oKBVbmRlZmluZWSgdmFsdWWgcHJvcGFnYXRlc6BwYXN0oGRlcGVuZGVuY3mgYnJlYWtpbmegaW5zdHJ1Y3Rpb248YnI+CiugoKCgoKCgoChwYXJ0aWFsoGZpeCk8YnI+CisyMTU5MTSgoFZhbGdyaW5koGluc2VydHOgYm9ndXOgZW1wdHmgZW52aXJvbm1lbnSgdmFyaWFibGWgPGJyPgorMjE3ODYzoKA9PaAxOTc5ODg8YnI+CisyMTk1MzigoGFkanRpbWV4oHN5c2NhbGygd3JhcHBlcqB3cm9uZ6BpbqByZWFkb25seaBhZGp0aW1loG1vZGWgPGJyPgorMjIyNTQ1oKBzaG1hdKBmYWlsc6B1bmRlcqB2YWxnaW5koG9uoHNvbWWgYXJtoHRhcmdldHOgPGJyPgorMjIyNTYwoKBBUk2gTkVPTqBzdXBwb3J0oDxicj4KKzIzMDQwN6CgPT2gMjAyMzE1PGJyPgorMjMxMDc2oKA9PaAyMDIzMTU8YnI+CisyMzI1MDmgoERvY3OgYnVpbGSgZmFpbHOgd2l0aKBmb3JtYXR0aW5noGluc2lkZaAmbHQ7dGl0bGUmZ3Q7Jmx0Oy90aXRsZSZndDugZWxlbWVudHOgPGJyPgorMjMyNzkzoKA9PaAyMDIzMTU8YnI+CisyMzU2NDKgoFtQQVRDSF2gc3lzd3JhcC1saW51eC5jOqBzdXBwb3J0oGV2ZGV2oEVWSU9DRyqgaW9jdGxzoDxicj4KKzIzNjU0NqCgdmV4oHg4Ni0mZ3Q7SVI6oDB4NjagMHhGoDB4M0GgMHhBPGJyPgorMjM3MjAyoKB2ZXigYW1kNjQtJmd0O0lSOqAweEYzoDB4RqAweEI4oDB4QzCgMHg0OaAweDNCoDxicj4KKzIzNzM3MaCgYmV0dGVyoHN1cHBvcnSgZm9yoFZBTEdSSU5EX01BTExPQ0xJS0VfQkxPQ0ugPGJyPgorMjM3NDg1oKBzeW1saW5roChzeXNjYWxsoDU3KaBpc6Bub3Sgc3VwcG9ydGVkoG9uoE1hY6BPU6A8YnI+CisyMzc3MjOgoHN5c25voD09oDEwMaBleHAtcHRyY2hlY2s6oHRoZaAnaW1wb3NzaWJsZSegaGFwcGVuZWQ6PGJyPgoroKCgoKCgoKB1bmhhbmRsZWSgc3lzY2FsbKA8YnI+CisyMzgyMDigoGlzX2p1c3RfYmVsb3dfRVNQoGRvZXNuJ3SgdGFrZaBpbnRvoGFjY291bnSgcmVkLXpvbmWgPGJyPgorMjM4MzQ1oKB2YWxncmluZKBwYXNzZXOgd3JvbmegJDCgd2hlbqBleGVjdXRpbmegYaBzaGVsbKBzY3JpcHSgPGJyPgorMjM4Njc5oKBtcV90aW1lZHJlY2VpdmWgc3lzY2FsbKBkb2Vzbid0oGZsYWegdGhloHJlY2VwdGlvbqBidWZmZXI8YnI+CiugoKCgoKCgoGFzoCJkZWZpbmVkIjxicj4KKzIzODY5NqCgZmNudGygY29tbWFuZKBGX0RVUEZEX0NMT0VYRUOgbm90oHN1cHBvcnRlZKA8YnI+CisyMzg3MTOgoHVuaGFuZGxlZKBpbnN0cnVjdGlvbqBieXRlczqgMHg2NqAweEagMHgyOaAweEM2oDxicj4KKzIzODcxM6CgdW5oYW5kbGVkoGluc3RydWN0aW9uoGJ5dGVzOqAweDY2oDB4RqAweDI5oDB4QzagPGJyPgorMjM4NzQ1oKAzLjUuMKBNYWtloGZhaWxzoG9uoFBQQ6BBbHRpdmVjoG9wY29kZXMsoHRob3VnaKBjb25maWd1cmU8YnI+CiugoKCgoKCgoHNheXOgIkFsdGl2ZWOgb2ZmIjxicj4KKzIzOTk5MqCgdmV4oGFtZDY0LSZndDtJUjqgMHg0OKAweEagMHhDNKAweEMxoDB4MKAweDQ4oDxicj4KKzI0MDQ4OKCgPT2gMTk3OTg4PGJyPgorMjQwNjM5oKA9PaAyMTIzMzU8YnI+CisyNDEzNzegoD09oDIzNjU0Njxicj4KKzI0MTkwM6CgPT2gMjAyMzE1PGJyPgorMjQxOTIwoKA9PaAyMTIzMzU8YnI+CisyNDI2MDagoHVuaGFuZGxlZKBzeXNjYWxsOqBzZXRlZ2lkoChpbqBQdHJjaGVjayk8YnI+CisyNDI4MTSgoEhlbGdyaW5koCJJbXBvc3NpYmxloGhhc6BoYXBwZW5lZCKgZHVyaW5nPGJyPgoroKCgoKCgoKBRQXBwbGljYXRpb246OmluaXRJbnN0YW5jZSgpO6A8YnI+CisyNDMwNjSgoFZhbGdyaW5koGF0dGVtcHRpbmegdG+gcmVhZKBkZWJ1Z6BpbmZvcm1hdGlvbqBmcm9toGlzb6A8YnI+CisyNDMyNzCgoE1ha2Wgc3RhY2ugdW53aW5kaW5noGluoFZhbGdyaW5koHdyYXBwZXJzoG1vcmWgcmVsaWFibGU8YnI+CisyNDM4ODSgoGV4cC1wdHJjaGVjazqgdGhloCdpbXBvc3NpYmxloGhhcHBlbmVkOqB1bmhhbmRsZWSgc3lzY2FsbKA8YnI+CiugoKCgoKCgoHN5c25voD2gMjc3oChtcV9vcGVuKTxicj4KKzI0NDAwOaCgZXhwLXB0cmNoZWNroHVua25vd26gc3lzY2FsbHOgaW6gYW5hbHl6aW5noGxpZ2h0dHBkPGJyPgorMjQ0NDkzoKBBUk2gVkZQoGQxNi1kMzGgcmVnaXN0ZXJzoHN1cHBvcnSgPGJyPgorMjQ0NjcwoKBhZGSgc3VwcG9ydKBmb3KgYXVkaXRfc2Vzc2lvbl9zZWxmoHN5c2NhbGygb26gTWFjoE9ToDEwLjY8YnI+CisyNDQ5MjGgoFRoZaB4bWygcmVwb3J0oG9moGhlbGdyaW5koHRvb2ygaXOgbm90oHdlbGygZm9ybWF0PGJyPgorMjQ0OTIzoKBJbqB0aGWgeG1soHJlcG9ydKBmaWxlLKB0aGWgJmx0O3ByZWFtYmxlJmd0O6Bub3SgZXNjYXBloHRoZaA8YnI+CiugoKCgoKCgoHhtbKBjaGFyLKBlZ6AnJmx0OycsJyZhbXA7JywnJmd0Oyc8YnI+CisyNDU1MzWgoHByaW50oGZ1bGygcGF0aKBuYW1lc6BpbqBwbGFpbqB0ZXh0oHJlcG9ydHOgPGJyPgorMjQ1OTI1oKB4ODYtNjSgcmVkoHpvbmWgaGFuZGxpbmegcHJvYmxlbaA8YnI+CisyNDYyNTigoFZhbGdyaW5koG5vdKBjYXRjaGluZ6BpbnRlZ2VyoHVuZGVycnVuc6AroG5ld6BbXaBzPGJyPgorMjQ2MzExoKByZWcvcmVnoGNtcHhjaGegZG9lc24ndKB3b3JroG9uoGFtZDY0PGJyPgorMjQ2NTQ5oKB1bmhhbmRsZWSgc3lzY2FsbKB1bml4OjI3N6B3aGlsZaB0ZXN0aW5noDMyLWJpdKBEYXJ3aW6gYXBwoDxicj4KKzI0Njg4OKCgSW1wcm92ZaBNYWtlZmlsZS52ZXguYW2gPGJyPgorMjQ3NTEwoKBbT1OgWKAxMC42XaBNZW1jaGVja6ByZXBvcnRzoHVuYWRkcmVzc2FibGWgYnl0ZXOgcGFzc2VkoDxicj4KK6CgoKCgoKCgdG+gW2ZdY2htb2RfZXh0ZW5kZWQ8YnI+CisyNDc1MjagoElCTaBQT1dFUjagKElTQaAyLjA1KaBzdXBwb3J0oGlzoGluY29tcGxldGU8YnI+CisyNDc1NjGgoFNvbWWgbGVha6B0ZXN0Y2FzZXOgZmFpbHOgZHVloHRvoHJlYWNoYWJsZaBhZGRyZXNzZXOgaW48YnI+CiugoKCgoKCgoGNhbGxlcqBzYXZloHJlZ3M8YnI+CisyNDc4NzWgoHNpemVvZklSVHlwZaB0b6BoYW5kbGWgSXR5X0kxMjigPGJyPgorMjQ3ODk0oKBbUEFUQ0hdoHVuaGFuZGxlZKBzeXNjYWxsoHN5c19yZWFkYWhlYWSgPGJyPgorMjQ3OTgwoKBEb2Vzbid0oGhvbm9yoENGTEFHU6BwYXNzZWSgdG+gY29uZmlndXJloDxicj4KKzI0ODM3M6CgZGFyd2luMTAuc3VwcKBpc6BlbXB0eaBpbqB0aGWgdHJ1bmugPGJyPgorMjQ4ODIyoKBMaW51eKBGSUJNQVCgaW9jdGygaGFzoGludKBwYXJhbWV0ZXKgaW5zdGVhZKBvZqBsb25nPGJyPgorMjQ4ODkzoKBbUEFUQ0hdoG1ha2WgcmVhZGR3YXJmLmOgYmlnoGVuZGlhbmVzc6BzYWZloHRvoGVuYWJsZTxicj4KK6CgoKCgoKCgdW53aW5kaW5noG9uoGJpZ6BlbmRpYW6gc3lzdGVtczxicj4KKzI0OTIyNKCgU3lzY2FsbKAzMzagbm90oHN1cHBvcnRlZKAoU1lTX3Byb2NfaW5mbymgPGJyPgorMjQ5MzU5oKA9PaAyNDU1MzU8YnI+CisyNDk3NzWgoEluY29ycmVjdKBzY2hlbWWgZm9yoGRldGVjdGluZ6BORU9OoGNhcGFiaWxpdGllc6BvZqBob3N0oENQVTxicj4KKzI0OTk0M6Cgam5poEpWTaBpbml0oGZhaWxzoHdoZW6gdXNpbmegdmFsZ3JpbmQ8YnI+CisyNDk5OTGgoFZhbGdyaW5koGluY29ycmVjdGx5oGRlY2xhcmVzoEFFU0tFWUdFTkFTU0lTVKBzdXBwb3J0PGJyPgoroKCgoKCgoKBzaW5jZaBWRVigcjIwMTE8YnI+CisyNDk5OTagoGxpbnV4L2FybTqgdW5oYW5kbGVkoHN5c2NhbGw6oDE4MaAoX19OUl9wd3JpdGU2NCk8YnI+CisyNTA3OTmgoGZyZXhwJGZlbnZfYWNjZXNzX29mZqBmdW5jdGlvbqBnZW5lcmF0ZXOgU0lHSUxMoDxicj4KKzI1MDk5OKCgdmV4oHg4Ni0mZ3Q7SVI6oHVuaGFuZGxlZKBpbnN0cnVjdGlvbqBieXRlczqgMHg2NqAweDY2oDB4NjagMHgyRaA8YnI+CisyNTEyNTGgoHN1cHBvcnSgcGNsbXVscWRxoGluc26gPGJyPgorMjUxMzYyoKB2YWxncmluZDqgQVJNOqBhdHRhY2igdG+gZGVidWdnZXKgZWl0aGVyoGZhaWxzoG9yoHByb3Zva2VzPGJyPgoroKCgoKCgoKBrZXJuZWygb29wc6A8YnI+CisyNTE2NzSgoFVuaGFuZGxlZKBzeXNjYWxsoDI5NDxicj4KKzI1MTgxOKCgPT2gMjU0NTUwPGJyPgorPGJyPgorMjU0MjU3oKBBZGSgc3VwcG9ydKBmb3KgZGVidWdmaWxlc6Bmb3VuZKBieaBidWlsZC1pZDxicj4KKzI1NDU1MKCgW1BBVENIXaBJbXBsZW1lbnSgRFdfQVRFX1VURqAoRFdBUkY0KTxicj4KKzI1NDY0NqCgV3JhcHBlZKBmdW5jdGlvbnOgY2F1c2Wgc3RhY2ugbWlzYWxpZ25tZW50oG9uoE9ToFg8YnI+CiugoKCgoKCgoChhbmSgcG9zc2libHmgTGludXgpPGJyPgorMjU0NTU2oKBBUk06oHZhbGdyaW5kaW5noGFueXRoaW5noGZhaWxzoHdpdGigU0lHU0VHVqBmb3KgMHhGRkZGMEZBMDxicj4KKzxicj4KKygzLjYuMDqgMjGgT2N0b2JlcqAyMDEwLKB2ZXigcjIwNjgsoHZhbGdyaW5koHIxMTQ3MSkuPGJyPgorPGJyPgorPGJyPgorPGJyPgorUmVsZWFzZaAzLjUuMKAoMTmgQXVndXN0oDIwMDkpPGJyPgorfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+PGJyPgorMy41LjCgaXOgYaBmZWF0dXJloHJlbGVhc2Wgd2l0aKBtYW55oHNpZ25pZmljYW50oGltcHJvdmVtZW50c6BhbmSgdGhlPGJyPgordXN1YWygY29sbGVjdGlvbqBvZqBidWegZml4ZXMuoKBUaGWgbWFpbqBpbXByb3ZlbWVudKBpc6B0aGF0oFZhbGdyaW5kPGJyPgorbm93oHdvcmtzoG9uoE1hY6BPU6BYLjxicj4KKzxicj4KK1RoaXOgcmVsZWFzZaBzdXBwb3J0c6BYODYvTGludXgsoEFNRDY0L0xpbnV4LKBQUEMzMi9MaW51eCygUFBDNjQvTGludXg8YnI+CithbmSgWDg2L0Rhcndpbi6goFN1cHBvcnSgZm9yoHJlY2VudKBkaXN0cm9zoGFuZKB0b29sY2hhaW6gY29tcG9uZW50czxicj4KKyhnbGliY6AyLjEwLKBnY2OgNC41KaBoYXOgYmVlbqBhZGRlZC48YnI+Cis8YnI+CiugoKCgoKCgoKCgoKCgoKCgoKCgoC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS08YnI+Cis8YnI+CitIZXJloGlzoGGgc2hvcnSgc3VtbWFyeaBvZqB0aGWgY2hhbmdlcy6goERldGFpbHOgYXJloHNob3duoGZ1cnRoZXI8YnI+Citkb3duOjxicj4KKzxicj4KKyqgU3VwcG9ydKBmb3KgTWFjoE9ToFigKDEwLjUueCkuPGJyPgorPGJyPgorKqBJbXByb3ZlbWVudHOgYW5koHNpbXBsaWZpY2F0aW9uc6B0b6BNZW1jaGVjaydzoGxlYWugY2hlY2tlci48YnI+Cis8YnI+CisqoENsYXJpZmljYXRpb26gYW5koHNpbXBsaWZpY2F0aW9uc6BpbqB2YXJpb3VzoGFzcGVjdHOgb2agVmFsZ3JpbmQnczxicj4KK6CgdGV4dKBvdXRwdXQuPGJyPgorPGJyPgorKqBYTUygb3V0cHV0oGZvcqBIZWxncmluZKBhbmSgUHRyY2hlY2suPGJyPgorPGJyPgorKqBQZXJmb3JtYW5jZaBhbmSgc3RhYmlsaXR5oGltcHJvdmVtZW50c6Bmb3KgSGVsZ3JpbmSgYW5koERSRC48YnI+Cis8YnI+CisqoEdlbnVpbmVseaBhdG9taWOgc3VwcG9ydKBmb3KgeDg2L2FtZDY0L3BwY6BhdG9taWOgaW5zdHJ1Y3Rpb25zLjxicj4KKzxicj4KKyqgQaBuZXegZXhwZXJpbWVudGFsoHRvb2wsoEJCViygdXNlZnVsoGZvcqBjb21wdXRlcqBhcmNoaXRlY3R1cmU8YnI+CiugoHJlc2VhcmNoLjxicj4KKzxicj4KKyqgSW1wcm92ZWSgV2luZaBzdXBwb3J0LKBpbmNsdWRpbmegYWJpbGl0eaB0b6ByZWFkoFdpbmRvd3OgUERCPGJyPgoroKBkZWJ1Z2luZm8uPGJyPgorPGJyPgoroKCgoKCgoKCgoKCgoKCgoKCgoKAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPGJyPgorPGJyPgorSGVyZaBhcmWgZGV0YWlsc6BvZqB0aGWgYWJvdmWgY2hhbmdlcyygZm9sbG93ZWSgYnmgZGVzY3JpcHRpb25zoG9mPGJyPgorbWFueaBvdGhlcqBtaW5vcqBjaGFuZ2VzLKBhbmSgYaBsaXN0oG9moGZpeGVkoGJ1Z3MuPGJyPgorPGJyPgorPGJyPgorKqBWYWxncmluZKBub3egcnVuc6BvbqBNYWOgT1OgWC6goChOb3RloHRoYXSgTWFjoE9ToFigaXOgc29tZXRpbWVzPGJyPgoroKBjYWxsZWSgIkRhcndpbiKgYmVjYXVzZaB0aGF0oGlzoHRoZaBuYW1loG9moHRoZaBPU6Bjb3JlLKB3aGljaKBpc6B0aGU8YnI+CiugoGxldmVsoHRoYXSgVmFsZ3JpbmSgd29ya3OgYXQuKTxicj4KKzxicj4KK6CgU3VwcG9ydGVkoHN5c3RlbXM6PGJyPgorPGJyPgoroKAtoEl0oHJlcXVpcmVzoE9ToDEwLjUueKAoTGVvcGFyZCkuoKBQb3J0aW5noHRvoDEwLjQueKBpc6Bub3SgcGxhbm5lZDxicj4KK6CgoKBiZWNhdXNloGl0oHdvdWxkoHJlcXVpcmWgd29ya6BhbmSgMTAuNKBpc6Bvbmx5oGJlY29taW5noGxlc3OgY29tbW9uLjxicj4KKzxicj4KK6CgLaAzMi1iaXSgcHJvZ3JhbXOgb26geDg2oGFuZKBBTUQ2NKAoYS5rLmGgeDg2LTY0KaBtYWNoaW5lc6BhcmWgc3VwcG9ydGVkPGJyPgoroKCgoGZhaXJseaB3ZWxsLqCgRm9yoDEwLjUueCygMzItYml0oHByb2dyYW1zoGFyZaB0aGWgZGVmYXVsdKBldmVuoG9uPGJyPgoroKCgoDY0LWJpdKBtYWNoaW5lcyygc2+gaXSgaGFuZGxlc6Btb3N0oGN1cnJlbnSgcHJvZ3JhbXMuPGJyPgoroKCgoDxicj4KK6CgLaA2NC1iaXSgcHJvZ3JhbXOgb26geDg2oGFuZKBBTUQ2NKAoYS5rLmGgeDg2LTY0KaBtYWNoaW5lc6BhcmWgbm90PGJyPgoroKCgoG9mZmljaWFsbHmgc3VwcG9ydGVkLKBidXSgc2ltcGxloHByb2dyYW1zoGF0oGxlYXN0oHdpbGygcHJvYmFibHmgd29yay48YnI+CiugoKCgSG93ZXZlciygc3RhcnQtdXCgaXOgc2xvdy48YnI+Cis8YnI+CiugoC2gUG93ZXJQQ6BtYWNoaW5lc6BhcmWgbm90oHN1cHBvcnRlZC48YnI+Cis8YnI+CiugoFRoaW5nc6B0aGF0oGRvbid0oHdvcms6PGJyPgorPGJyPgoroKAtoFRoZaBQdHJjaGVja6B0b29sLjxicj4KKzxicj4KK6CgLaBPYmplY3RpdmUtQ6BnYXJiYWdloGNvbGxlY3Rpb24uPGJyPgorPGJyPgoroKAtoC0tZGItYXR0YWNoPXllcy48YnI+Cis8YnI+CiugoC2gSWageW91oGhhdmWgUm9ndWWgQW1vZWJhJ3OgIkluc3RhbnSgSGlqYWNrIqBwcm9ncmFtoGluc3RhbGxlZCw8YnI+CiugoKCgVmFsZ3JpbmSgd2lsbKBmYWlsoHdpdGigYaBTSUdUUkFQoGF0oHN0YXJ0LXVwLqCgU2VlPGJyPgoroKCgoGh0dHBzOi8vYnVncy5rZGUub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTM5MTegZm9yoGRldGFpbHOgYW5koGE8YnI+CiugoKCgc2ltcGxloHdvcmstYXJvdW5kLjxicj4KKzxicj4KK6CgVXNhZ2Wgbm90ZXM6PGJyPgorPGJyPgoroKAtoFlvdaB3aWxsoGxpa2VseaBmaW5koC0tZHN5bXV0aWw9eWVzoGGgdXNlZnVsoG9wdGlvbiygYXOgZXJyb3I8YnI+CiugoKCgbWVzc2FnZXOgbWF5oGJloGltcHJlY2lzZaB3aXRob3V0oGl0Ljxicj4KKzxicj4KK6CgLaBNYWOgT1OgWKBzdXBwb3J0oGlzoG5ld6BhbmSgdGhlcmVmb3JloHdpbGygYmWgbGVzc6Byb2J1c3SgdGhhbqB0aGU8YnI+CiugoKCgTGludXigc3VwcG9ydC6goFBsZWFzZaByZXBvcnSgYW55oGJ1Z3OgeW91oGZpbmQuPGJyPgorPGJyPgoroKAtoFRocmVhZGVkoHByb2dyYW1zoG1heaBydW6gbW9yZaBzbG93bHmgdGhhbqBvbqBMaW51eC48YnI+Cis8YnI+CiugoE1hbnmgdGhhbmtzoHRvoEdyZWegUGFya2VyoGZvcqBkZXZlbG9waW5noHRoaXOgcG9ydKBvdmVyoHNldmVyYWygeWVhcnMuPGJyPgorPGJyPgorPGJyPgorKqBNZW1jaGVjaydzoGxlYWugY2hlY2tlcqBoYXOgYmVlbqBpbXByb3ZlZC6goDxicj4KKzxicj4KK6CgLaBUaGWgcmVzdWx0c6Bmb3KgLS1sZWFrLWNoZWNrPXN1bW1hcnmgbm93oG1hdGNooHRoZaBzdW1tYXJ5oHJlc3VsdHM8YnI+CiugoKCgZm9yoC0tbGVhay1jaGVjaz1mdWxsLqCgUHJldmlvdXNseaB0aGV5oGNvdWxkoGRpZmZlcqBiZWNhdXNlPGJyPgoroKCgoC0tbGVhay1jaGVjaz1zdW1tYXJ5oGNvdW50ZWSgImluZGlyZWN0bHmgbG9zdCKgYmxvY2tzoGFuZDxicj4KK6CgoKAic3VwcHJlc3NlZCKgYmxvY2tzoGFzoCJkZWZpbml0ZWx5oGxvc3QiLjxicj4KKzxicj4KK6CgLaBCbG9ja3OgdGhhdKBhcmWgb25seaByZWFjaGFibGWgdmlhoGF0oGxlYXN0oG9uZaBpbnRlcmlvci1wb2ludGVyLDxicj4KK6CgoKBidXSgYXJloGRpcmVjdGx5oHBvaW50ZWSgdG+gYnmgYaBzdGFydC1wb2ludGVyLKB3ZXJloHByZXZpb3VzbHk8YnI+CiugoKCgbWFya2VkoGFzoCJzdGlsbKByZWFjaGFibGUiLqCgVGhleaBhcmWgbm93oGNvcnJlY3RseaBtYXJrZWSgYXM8YnI+CiugoKCgInBvc3NpYmx5oGxvc3QiLjxicj4KKzxicj4KK6CgLaBUaGWgZGVmYXVsdKB2YWx1ZaBmb3KgdGhloC0tbGVhay1yZXNvbHV0aW9uoG9wdGlvbqBoYXOgYmVlbjxicj4KK6CgoKBjaGFuZ2VkoGZyb22gImxvdyKgdG+gImhpZ2giLqCgSW6gZ2VuZXJhbCygdGhpc6BtZWFuc6B0aGF0oG1vcmU8YnI+CiugoKCgbGVha6ByZXBvcnRzoHdpbGygYmWgcHJvZHVjZWQsoGJ1dKBlYWNooGxlYWugcmVwb3J0oHdpbGygZGVzY3JpYmU8YnI+CiugoKCgZmV3ZXKgbGVha2VkoGJsb2Nrcy48YnI+Cis8YnI+CiugoC2gV2l0aKAtLWxlYWstY2hlY2s9ZnVsbCygImRlZmluaXRlbHmgbG9zdCKgYW5koCJwb3NzaWJseaBsb3N0Ijxicj4KK6CgoKBsZWFrc6BhcmWgbm93oGNvbnNpZGVyZWSgYXOgcHJvcGVyoGVycm9ycyygaWUuoHRoZXmgYXJloGNvdW50ZWQ8YnI+CiugoKCgZm9yoHRoZaAiRVJST1KgU1VNTUFSWSKgYW5koGFmZmVjdKB0aGWgYmVoYXZpb3VyoG9mPGJyPgoroKCgoC0tZXJyb3ItZXhpdGNvZGUuoKBUaGVzZaBsZWFrc6BhcmWgbm90oGNvdW50ZWSgYXOgZXJyb3JzoGlmPGJyPgoroKCgoC0tbGVhay1jaGVjaz1zdW1tYXJ5oGlzoHNwZWNpZmllZCygaG93ZXZlci48YnI+Cis8YnI+CiugoC2gRG9jdW1lbnRhdGlvbqBmb3KgdGhloGxlYWugY2hlY2tlcqBoYXOgYmVlbqBpbXByb3ZlZC48YnI+Cis8YnI+Cis8YnI+CisqoFZhcmlvdXOgYXNwZWN0c6BvZqBWYWxncmluZCdzoHRleHSgb3V0cHV0oGhhdmWgY2hhbmdlZC48YnI+Cis8YnI+CiugoC2gVmFsZ3JpbmQnc6BzdGFydC11cKBtZXNzYWdloGhhc6BjaGFuZ2VkLqCgSXSgaXOgc2hvcnRlcqBidXSgYWxzbzxicj4KK6CgoKBpbmNsdWRlc6B0aGWgY29tbWFuZKBiZWluZ6BydW4soHdoaWNooG1ha2VzoGl0oGVhc2llcqB0b6B1c2U8YnI+CiugoKCgLS10cmFjZS1jaGlsZHJlbj15ZXMuoKBBbqBleGFtcGxlOjxicj4KKzxicj4KK6CgLaBWYWxncmluZCdzoHNodXQtZG93bqBtZXNzYWdlc6BoYXZloGFsc2+gY2hhbmdlZC6goFRoaXOgaXOgbW9zdDxicj4KK6CgoKBub3RpY2VhYmxloHdpdGigTWVtY2hlY2ssoHdoZXJloHRoZaBsZWFroHN1bW1hcnmgbm93oG9jY3Vyc6BiZWZvcmU8YnI+CiugoKCgdGhloGVycm9yoHN1bW1hcnkuoKBUaGlzoGNoYW5nZaB3YXOgbmVjZXNzYXJ5oHRvoGFsbG93oGxlYWtzoHRvoGJlPGJyPgoroKCgoGNvdW50ZWSgYXOgcHJvcGVyoGVycm9yc6Aoc2VloHRoZaBkZXNjcmlwdGlvbqBvZqB0aGWgbGVha6BjaGVja2VyPGJyPgoroKCgoGNoYW5nZXOgYWJvdmWgZm9yoG1vcmWgZGV0YWlscykuoKBUaGlzoHdhc6BhbHNvoG5lY2Vzc2FyeaB0b6BmaXigYTxicj4KK6CgoKBsb25nc3RhbmRpbmegYnVnoGluoHdoaWNooHVzZXOgb2agc3VwcHJlc3Npb25zoGFnYWluc3SgbGVha3Ogd2VyZTxicj4KK6CgoKBub3SgImNvdW50ZWQiLKBsZWFkaW5noHRvoGRpZmZpY3VsdGllc6BpbqBtYWludGFpbmluZ6BzdXBwcmVzc2lvbjxicj4KK6CgoKBmaWxlc6Aoc2VloGh0dHBzOi8vYnVncy5rZGUub3JnL3Nob3dfYnVnLmNnaT9pZD0xODY3OTApLjxicj4KKzxicj4KK6CgLaBCZWhhdmlvcqBvZqAtdqBoYXOgY2hhbmdlZC6goEluoHByZXZpb3VzoHZlcnNpb25zLKAtdqBwcmludGVkoG91dDxicj4KK6CgoKBhoG1peHR1cmWgb2agbWFyZ2luYWxseS11c2VyLXVzZWZ1bKBpbmZvcm1hdGlvbiygYW5koHRvb2wvY29yZTxicj4KK6CgoKBzdGF0aXN0aWNzLqCgVGhloHN0YXRpc3RpY3OgcHJpbnRpbmegaGFzoG5vd6BiZWVuoG1vdmVkoHRvoGl0c6Bvd248YnI+CiugoKCgZmxhZyygLS1zdGF0cz15ZXMuoKBUaGlzoG1lYW5zoC12oGlzoGxlc3OgdmVyYm9zZaBhbmSgbW9yZaBsaWtlbHk8YnI+CiugoKCgdG+gY29udmV5oHVzZWZ1bKBlbmQtdXNlcqBpbmZvcm1hdGlvbi48YnI+Cis8YnI+CiugoC2gVGhloGZvcm1hdKBvZqBzb21loChub24tWE1MKaBzdGFja6B0cmFjZaBlbnRyaWVzoGhhc6BjaGFuZ2VkoGE8YnI+CiugoKCgbGl0dGxlLqCgUHJldmlvdXNseaB0aGVyZaB3ZXJloHNpeKBwb3NzaWJsZaBmb3Jtczo8YnI+Cis8YnI+CiugoKCgoKAweDgwNDgzQkY6oHJlYWxseaAoYS5jOjIwKTxicj4KK6CgoKCgoDB4ODA0ODNCRjqgcmVhbGx5oChpbqAvZm9vL2Eub3V0KTxicj4KK6CgoKCgoDB4ODA0ODNCRjqgcmVhbGx5PGJyPgoroKCgoKCgMHg4MDQ4M0JGOqAod2l0aGluoC9mb28vYS5vdXQpPGJyPgoroKCgoKCgMHg4MDQ4M0JGOqA/Pz+gKGEuYzoyMCk8YnI+CiugoKCgoKAweDgwNDgzQkY6oD8/Pzxicj4KKzxicj4KK6CgoKBUaGWgdGhpcmSgYW5koGZvdXJ0aKBvZqB0aGVzZaBmb3Jtc6BoYXZloGJlZW6gbWFkZaBtb3JloGNvbnNpc3RlbnQ8YnI+CiugoKCgd2l0aKB0aGWgb3RoZXJzLqCgVGhloHNpeKBwb3NzaWJsZaBmb3Jtc6BhcmWgbm93Ojxicj4KK6CgPGJyPgoroKCgoKCgMHg4MDQ4M0JGOqByZWFsbHmgKGEuYzoyMCk8YnI+CiugoKCgoKAweDgwNDgzQkY6oHJlYWxseaAoaW6gL2Zvby9hLm91dCk8YnI+CiugoKCgoKAweDgwNDgzQkY6oHJlYWxseaAoaW6gPz8/KTxicj4KK6CgoKCgoDB4ODA0ODNCRjqgPz8/oChpbqAvZm9vL2Eub3V0KTxicj4KK6CgoKCgoDB4ODA0ODNCRjqgPz8/oChhLmM6MjApPGJyPgoroKCgoKCgMHg4MDQ4M0JGOqA/Pz88YnI+Cis8YnI+CiugoKCgU3RhY2ugdHJhY2VzoHByb2R1Y2VkoHdoZW6gLS14bWw9eWVzoGlzoHNwZWNpZmllZKBhcmWgZGlmZmVyZW50PGJyPgoroKCgoGFuZKB1bmNoYW5nZWQuPGJyPgorPGJyPgorPGJyPgorKqBIZWxncmluZKBhbmSgUHRyY2hlY2ugbm93oHN1cHBvcnSgWE1MoG91dHB1dCygc2+gdGhleaBjYW6gYmWgdXNlZDxicj4KK6CgZnJvbaBHVUmgdG9vbHMuoKBBbHNvLKB0aGWgWE1MoG91dHB1dKBtZWNoYW5pc22gaGFzoGJlZW48YnI+CiugoG92ZXJoYXVsZWQuPGJyPgorPGJyPgoroKAtoFRoZaBYTUygZm9ybWF0oGhhc6BiZWVuoG92ZXJoYXVsZWSgYW5koGdlbmVyYWxpc2VkLKBzb6BpdKBpc6Btb3JlPGJyPgoroKCgoHN1aXRhYmxloGZvcqBlcnJvcqByZXBvcnRpbmegdG9vbHOgaW6gZ2VuZXJhbC6goFRoZaBNZW1jaGVjazxicj4KK6CgoKBzcGVjaWZpY6Bhc3BlY3RzoG9moGl0oGhhdmWgYmVlbqByZW1vdmVkLqCgVGhloG5ld6Bmb3JtYXQsoHdoaWNoPGJyPgoroKCgoGlzoGFuoGV2b2x1dGlvbqBvZqB0aGWgb2xkoGZvcm1hdCygaXOgZGVzY3JpYmVkoGluPGJyPgoroKCgoGRvY3MvaW50ZXJuYWxzL3htbC1vdXRwdXQtcHJvdG9jb2w0LnR4dC48YnI+Cis8YnI+CiugoC2gTWVtY2hlY2ugaGFzoGJlZW6gdXBkYXRlZKB0b6B1c2WgdGhloG5ld6Bmb3JtYXQuPGJyPgorPGJyPgoroKAtoEhlbGdyaW5koGFuZKBQdHJjaGVja6BhcmWgbm93oGFibGWgdG+gZW1pdKBvdXRwdXSgaW6gdGhpc6Bmb3JtYXQuPGJyPgorPGJyPgoroKAtoFRoZaBYTUygb3V0cHV0oG1lY2hhbmlzbaBoYXOgYmVlbqBvdmVyaGF1bGVkLqCgWE1MoGlzoG5vd6BvdXRwdXQ8YnI+CiugoKCgdG+gaXRzoG93bqBmaWxloGRlc2NyaXB0b3IsoHdoaWNooG1lYW5zoHRoYXQ6PGJyPgorPGJyPgoroKCgoCqgVmFsZ3JpbmSgY2FuoG91dHB1dKB0ZXh0oGFuZKBYTUygaW5kZXBlbmRlbnRseS48YnI+Cis8YnI+CiugoKCgKqBUaGWgbG9uZ3N0YW5kaW5noHByb2JsZW2gb2agWE1MoG91dHB1dKBiZWluZ6Bjb3JydXB0ZWSgYnmgPGJyPgoroKCgoKCgdW5leHBlY3RlZKB1bi10YWdnZWSgdGV4dKBtZXNzYWdlc6CgaXOgc29sdmVkLjxicj4KKzxicj4KK6CgoKBBc6BiZWZvcmUsoHRoZaBkZXN0aW5hdGlvbqBmb3KgdGV4dKBvdXRwdXSgaXOgc3BlY2lmaWVkoHVzaW5nPGJyPgoroKCgoC0tbG9nLWZpbGU9LKAtLWxvZy1mZD2gb3KgLS1sb2ctc29ja2V0PS48YnI+Cis8YnI+CiugoKCgQXOgYmVmb3JlLKBYTUygb3V0cHV0oGZvcqBhoHRvb2ygaXOgZW5hYmxlZKB1c2luZ6AtLXhtbD15ZXMuPGJyPgorPGJyPgoroKCgoEJlY2F1c2WgdGhlcmUnc6BhoG5ld6BYTUygb3V0cHV0oGNoYW5uZWwsoHRoZaBYTUygb3V0cHV0PGJyPgoroKCgoGRlc3RpbmF0aW9uoGlzoG5vd6BzcGVjaWZpZWSgYnmgLS14bWwtZmlsZT0soC0teG1sLWZkPaBvcjxicj4KK6CgoKAtLXhtbC1zb2NrZXQ9Ljxicj4KKzxicj4KK6CgoKBJbml0aWFsoGZlZWRiYWNroGhhc6BzaG93bqB0aGlzoGNhdXNlc6Bzb21loGNvbmZ1c2lvbi6goFRvPGJyPgoroKCgoGNsYXJpZnksoHRoZaB0d2+gZW52aXNhZ2VkoHVzYWdloHNjZW5hcmlvc6BhcmU6PGJyPgorPGJyPgoroKCgoCgxKaBOb3JtYWygdGV4dKBvdXRwdXQuoKBJbqB0aGlzoGNhc2UsoGRvoG5vdKBzcGVjaWZ5oC0teG1sPXllczxicj4KK6CgoKCgoKCgbm9yoGFueaBvZqAtLXhtbC1maWxlPSygLS14bWwtZmQ9oG9yoC0teG1sLXNvY2tldD0uPGJyPgorPGJyPgoroKCgoCgyKaBYTUygb3V0cHV0LqCgSW6gdGhpc6BjYXNlLKBzcGVjaWZ5oC0teG1sPXllcyygYW5koG9uZaBvZjxicj4KK6CgoKCgoKCgLS14bWwtZmlsZT0soC0teG1sLWZkPaBvcqAtLXhtbC1zb2NrZXQ9oHRvoHNlbGVjdKB0aGWgWE1MPGJyPgoroKCgoKCgoKBkZXN0aW5hdGlvbiygb25loG9moC0tbG9nLWZpbGU9LKAtLWxvZy1mZD2gb3KgLS1sb2ctc29ja2V0PTxicj4KK6CgoKCgoKCgdG+gc2VsZWN0oHRoZaBkZXN0aW5hdGlvbqBmb3KgYW55oHJlbWFpbmluZ6B0ZXh0oG1lc3NhZ2VzLDxicj4KK6CgoKCgoKCgYW5kLKBpbXBvcnRhbnRseSygLXEuPGJyPgorPGJyPgoroKCgoKCgoKAtcaBtYWtlc6BWYWxncmluZKBjb21wbGV0ZWx5oHNpbGVudKBvbqB0aGWgdGV4dKBjaGFubmVsLDxicj4KK6CgoKCgoKCgZXhjZXB0oGluoHRoZaBjYXNloG9moGNyaXRpY2FsoGZhaWx1cmVzLKBzdWNooGFzoFZhbGdyaW5kPGJyPgoroKCgoKCgoKBpdHNlbGagc2VnZmF1bHRpbmcsoG9yoGZhaWxpbmegdG+gcmVhZKBkZWJ1Z2dpbmegaW5mb3JtYXRpb24uPGJyPgoroKCgoKCgoKBIZW5jZSygaW6gdGhpc6BzY2VuYXJpbyygaXSgc3VmZmljZXOgdG+gY2hlY2ugd2hldGhlcqBvcqBub3Q8YnI+CiugoKCgoKCgoGFueaBvdXRwdXSgYXBwZWFyZWSgb26gdGhloHRleHSgY2hhbm5lbC6goElmoHllcyygdGhlbqBpdKBpczxicj4KK6CgoKCgoKCgbGlrZWx5oHRvoGJloGGgY3JpdGljYWygZXJyb3Kgd2hpY2igc2hvdWxkoGJloGJyb3VnaHSgdG+gdGhlPGJyPgoroKCgoKCgoKBhdHRlbnRpb26gb2agdGhloHVzZXIuoKBJZqBub6AodGhloHRleHSgY2hhbm5lbKBwcm9kdWNlZKBubzxicj4KK6CgoKCgoKCgb3V0cHV0KaB0aGVuoGl0oGNhbqBiZaBhc3N1bWVkoHRoYXSgdGhloHJ1bqB3YXOgc3VjY2Vzc2Z1bC48YnI+Cis8YnI+CiugoKCgoKCgoFRoaXOgYWxsb3dzoEdVSXOgdG+gbWFrZaB0aGWgY3JpdGljYWygZGlzdGluY3Rpb26gdGhleaBuZWVkoHRvPGJyPgoroKCgoKCgoKBtYWtloChkaWSgdGhloHJ1bqBmYWlsoG9yoG5vdD8poHdpdGhvdXSgaGF2aW5noHRvoHNlYXJjaKBvcjxicj4KK6CgoKCgoKCgZmlsdGVyoHRoZaB0ZXh0oG91dHB1dKBjaGFubmVsoGluoGFueaB3YXkuPGJyPgorPGJyPgoroKCgoEl0oGlzoGFsc2+gcmVjb21tZW5kZWSgdG+gdXNloC0tY2hpbGQtc2lsZW50LWFmdGVyLWZvcms9eWVzoGluPGJyPgoroKCgoHNjZW5hcmlvoCgyKS48YnI+Cis8YnI+Cis8YnI+CisqoEltcHJvdmVtZW50c6BhbmSgY2hhbmdlc6BpbqBIZWxncmluZDo8YnI+Cis8YnI+CiugoC2gWE1MoG91dHB1dCygYXOgZGVzY3JpYmVkoGFib3ZlPGJyPgorPGJyPgoroKAtoENoZWNrc6Bmb3KgY29uc2lzdGVudKBhc3NvY2lhdGlvbqBiZXR3ZWVuoHB0aHJlYWSgY29uZGl0aW9uPGJyPgoroKCgoHZhcmlhYmxlc6BhbmSgdGhlaXKgYXNzb2NpYXRlZKBtdXRleGVzoGFyZaBub3egcGVyZm9ybWVkLjxicj4KKzxicj4KK6CgLaBwdGhyZWFkX3NwaW5sb2NroGZ1bmN0aW9uc6BhcmWgc3VwcG9ydGVkLjxicj4KKzxicj4KK6CgLaBNb2Rlc3SgcGVyZm9ybWFuY2WgaW1wcm92ZW1lbnRzLjxicj4KKzxicj4KK6CgLaBJbml0aWFsoChza2VsZXRhbCmgc3VwcG9ydKBmb3KgZGVzY3JpYmluZ6B0aGWgYmVoYXZpb3VyoG9mPGJyPgoroKCgoG5vbi1QT1NJWKBzeW5jaHJvbmlzYXRpb26gb2JqZWN0c6B0aHJvdWdooFRocmVhZFNhbml0aXplcjxicj4KK6CgoKBjb21wYXRpYmxloEFOTk9UQVRFXyqgbWFjcm9zLjxicj4KKzxicj4KK6CgLaBNb3JloGNvbnRyb2xsYWJsZaB0cmFkZW9mZnOgYmV0d2VlbqBwZXJmb3JtYW5jZaBhbmSgdGhloGxldmVsoG9mPGJyPgoroKCgoGRldGFpbKBvZqAicHJldmlvdXMioGFjY2Vzc2VzoGluoGGgcmFjZS6goFRoZXJloGFyZaBub3egdGhyZWU8YnI+CiugoKCgc2V0dGluZ3M6PGJyPgorPGJyPgoroKCgoCqgLS1oaXN0b3J5LWxldmVsPWZ1bGwuoKBUaGlzoGlzoHRoZaBkZWZhdWx0LKBhbmSgd2FzoGFsc2+gdGhlPGJyPgoroKCgoKCgZGVmYXVsdKBpbqAzLjQueC6goEl0oHNob3dzoGJvdGigc3RhY2tzoGludm9sdmVkoGluoGGgcmFjZSygYnV0PGJyPgoroKCgoKCgcmVxdWlyZXOgYaBsb3Sgb2agbWVtb3J5oGFuZKBjYW6gYmWgdmVyeaBzbG93oGluoHByb2dyYW1zoHRoYXQ8YnI+CiugoKCgoKBkb6BtYW55oGludGVyLXRocmVhZKBzeW5jaHJvbmlzYXRpb26gZXZlbnRzLjxicj4KKzxicj4KK6CgoKAqoC0taGlzdG9yeS1sZXZlbD1ub25lLqCgVGhpc6Bvbmx5oHNob3dzoHRoZaBsYXRlcqBzdGFja6BpbnZvbHZlZDxicj4KK6CgoKCgoGluoGGgcmFjZS6goFRoaXOgY2FuoGJloG11Y2igZmFzdGVyoHRoYW6gLS1oaXN0b3J5LWxldmVsPWZ1bGwsPGJyPgoroKCgoKCgYnV0oG1ha2VzoGl0oG11Y2igbW9yZaBkaWZmaWN1bHSgdG+gZmluZKB0aGWgb3RoZXKgYWNjZXNzPGJyPgoroKCgoKCgaW52b2x2ZWSgaW6gdGhloHJhY2UuPGJyPgorPGJyPgoroKCgoFRoZaBuZXegaW50ZXJtZWRpYXRloHNldHRpbmegaXM8YnI+Cis8YnI+CiugoKCgKqAtLWhpc3RvcnktbGV2ZWw9YXBwcm94PGJyPgorPGJyPgoroKCgoKCgRm9yoHRoZaBlYXJsaWVyoChvdGhlcimgYWNjZXNzLKB0d2+gc3RhY2tzoGFyZaBwcmVzZW50ZWQuoKBUaGU8YnI+CiugoKCgoKBlYXJsaWVyoGFjY2Vzc6Bpc6BndWFyYW50ZWVkoHRvoGJloHNvbWV3aGVyZaBpbqBiZXR3ZWVuoHRoZaB0d288YnI+CiugoKCgoKBwcm9ncmFtoHBvaW50c6BkZW5vdGVkoGJ5oHRob3NloHN0YWNrcy6goFRoaXOgaXOgbm90oGFzoHVzZWZ1bDxicj4KK6CgoKCgoGFzoHNob3dpbmegdGhloGV4YWN0oHN0YWNroGZvcqB0aGWgcHJldmlvdXOgYWNjZXNzoChhc6BwZXI8YnI+CiugoKCgoKAtLWhpc3RvcnktbGV2ZWw9ZnVsbCksoGJ1dKBpdKBpc6BiZXR0ZXKgdGhhbqBub3RoaW5nLKBhbmSgaXQnczxicj4KK6CgoKCgoGFsbW9zdKBhc6BmYXN0oGFzoC0taGlzdG9yeS1sZXZlbD1ub25lLjxicj4KKzxicj4KKzxicj4KKyqgTmV3oGZlYXR1cmVzoGFuZKBpbXByb3ZlbWVudHOgaW6gRFJEOjxicj4KKzxicj4KK6CgLaBUaGWgZXJyb3KgbWVzc2FnZXOgcHJpbnRlZKBieaBEUkSgYXJloG5vd6BlYXNpZXKgdG+gaW50ZXJwcmV0Ljxicj4KK6CgoKBJbnN0ZWFkoG9moHVzaW5noHR3b6BkaWZmZXJlbnSgbnVtYmVyc6B0b6BpZGVudGlmeaBlYWNooHRocmVhZDxicj4KK6CgoKAoVmFsZ3JpbmSgdGhyZWFkoElEoGFuZKBEUkSgdGhyZWFkoElEKSygRFJEoGRvZXOgbm93oGlkZW50aWZ5PGJyPgoroKCgoHRocmVhZHOgdmlhoGGgc2luZ2xloG51bWJlcqAodGhloERSRKB0aHJlYWSgSUQpLqCgRnVydGhlcm1vcmU8YnI+CiugoKCgImZpcnN0oG9ic2VydmVkoGF0IqBpbmZvcm1hdGlvbqBpc6Bub3egcHJpbnRlZKBmb3KgYWxsoGVycm9yPGJyPgoroKCgoG1lc3NhZ2VzoHJlbGF0ZWSgdG+gc3luY2hyb25pemF0aW9uoG9iamVjdHMuPGJyPgorPGJyPgoroKAtoEFkZGVkoHN1cHBvcnSgZm9yoG5hbWVkoHNlbWFwaG9yZXOgKHNlbV9vcGVuKCmgYW5koHNlbV9jbG9zZSgpKS48YnI+Cis8YnI+CiugoC2gUmFjZaBjb25kaXRpb25zoGJldHdlZW6gcHRocmVhZF9iYXJyaWVyX3dhaXQoKaBhbmQ8YnI+CiugoKCgcHRocmVhZF9iYXJyaWVyX2Rlc3Ryb3koKaBjYWxsc6BhcmWgbm93oHJlcG9ydGVkLjxicj4KKzxicj4KK6CgLaBBZGRlZKBzdXBwb3J0oGZvcqBjdXN0b22gYWxsb2NhdG9yc6B0aHJvdWdooHRoZaBtYWNyb3M8YnI+CiugoKCgVkFMR1JJTkRfTUFMTE9DTElLRV9CTE9DSygpoFZBTEdSSU5EX0ZSRUVMSUtFX0JMT0NLKCmgKGRlZmluZWSgaW48YnI+CiugoKCgaW6gJmx0O3ZhbGdyaW5kL3ZhbGdyaW5kLmgmZ3Q7KS6gQW6gYWx0ZXJuYXRpdmWgZm9yoHRoZXNloHR3b6BtYWNyb3OgaXM8YnI+CiugoKCgdGhloG5ld6BjbGllbnSgcmVxdWVzdKBWR19VU0VSUkVRX19EUkRfQ0xFQU5fTUVNT1JZoChkZWZpbmVkoGluPGJyPgoroKCgoCZsdDt2YWxncmluZC9kcmQuaCZndDspLjxicj4KKzxicj4KK6CgLaBBZGRlZKBzdXBwb3J0oGZvcqBhbm5vdGF0aW5noG5vbi1QT1NJWKBzeW5jaHJvbml6YXRpb26gb2JqZWN0czxicj4KK6CgoKB0aHJvdWdooHNldmVyYWygbmV3oEFOTk9UQVRFXyooKaBtYWNyb3MuPGJyPgorPGJyPgoroKAtoE9wZW5NUDqgYWRkZWSgc3VwcG9ydKBmb3KgdGhloE9wZW5NUKBydW50aW1loChsaWJnb21wKaBpbmNsdWRlZDxicj4KK6CgoKB3aXRooGdjY6B2ZXJzaW9uc6A0LjMuMKBhbmSgNC40LjAuPGJyPgorPGJyPgoroKAtoEZhc3RlcqBvcGVyYXRpb24uPGJyPgorPGJyPgoroKAtoEFkZGVkoHR3b6BuZXegY29tbWFuZC1saW5loG9wdGlvbnOgKC0tZmlyc3QtcmFjZS1vbmx5oGFuZDxicj4KK6CgoKAtLXNlZ21lbnQtbWVyZ2luZy1pbnRlcnZhbCkuPGJyPgorPGJyPgorPGJyPgorKqBHZW51aW5lbHmgYXRvbWljoHN1cHBvcnSgZm9yoHg4Ni9hbWQ2NC9wcGOgYXRvbWljoGluc3RydWN0aW9uczxicj4KKzxicj4KK6CgVmFsZ3JpbmSgd2lsbKBub3egcHJlc2VydmWgKG1lbW9yeS1hY2Nlc3MpoGF0b21pY2l0eaBvZqBMT0NLLTxicj4KK6CgcHJlZml4ZWSgeDg2L2FtZDY0oGluc3RydWN0aW9ucyygYW5koGFueaBvdGhlcnOgaW1wbHlpbmegYaBnbG9iYWw8YnI+CiugoGJ1c6Bsb2NrLqCgRGl0dG+gZm9yoFBvd2VyUEOgbHt3LGR9YXJ4L3N0e3csZH1jeC6gaW5zdHJ1Y3Rpb25zLjxicj4KKzxicj4KK6CgVGhpc6BtZWFuc6B0aGF0oFZhbGdyaW5kZWSgcHJvY2Vzc2VzoHdpbGygInBsYXmgbmljZWx5IqBpbjxicj4KK6Cgc2l0dWF0aW9uc6B3aGVyZaBjb21tdW5pY2F0aW9uoHdpdGigb3RoZXKgcHJvY2Vzc2VzLKBvcqB0aGWga2VybmVsLDxicj4KK6CgaXOgZG9uZaB0aHJvdWdooHNoYXJlZKBtZW1vcnmgYW5koGNvb3JkaW5hdGVkoHdpdGigc3VjaKBhdG9taWM8YnI+CiugoGluc3RydWN0aW9ucy6goFByaW9yoHRvoHRoaXOgY2hhbmdlLKBzdWNooGFycmFuZ2VtZW50c6B1c3VhbGx5PGJyPgoroKByZXN1bHRlZKBpbqBoYW5ncyygcmFjZXOgb3Kgb3RoZXKgc3luY2hyb25pc2F0aW9uoGZhaWx1cmVzLKBiZWNhdXNlPGJyPgoroKBWYWxncmluZKBkaWSgbm90oGhvbm91cqBhdG9taWNpdHmgb2agc3VjaKBpbnN0cnVjdGlvbnMuPGJyPgorPGJyPgorPGJyPgorKqBBoG5ld6BleHBlcmltZW50YWygdG9vbCygQkJWLKBoYXOgYmVlbqBhZGRlZC6goEJCVqBnZW5lcmF0ZXOgYmFzaWM8YnI+CiugoGJsb2NroHZlY3RvcnOgZm9yoHVzZaB3aXRooHRoZaBTaW1Qb2ludKBhbmFseXNpc6B0b29sLKB3aGljaKBhbGxvd3M8YnI+CiugoGGgcHJvZ3JhbSdzoG92ZXJhbGygYmVoYXZpb3VyoHRvoGJloGFwcHJveGltYXRlZKBieaBydW5uaW5noG9ubHmgYTxicj4KK6CgZnJhY3Rpb26gb2agaXQuoKBUaGlzoGlzoHVzZWZ1bKBmb3KgY29tcHV0ZXKgYXJjaGl0ZWN0dXJlPGJyPgoroKByZXNlYXJjaGVycy6goFlvdaBjYW6gcnVuoEJCVqBieaBzcGVjaWZ5aW5noC0tdG9vbD1leHAtYmJ2oCh0aGU8YnI+CiugoCJleHAtIqBwcmVmaXigaXOgc2hvcnSgZm9yoCJleHBlcmltZW50YWwiKS6goEJCVqB3YXOgd3JpdHRlbqBieTxicj4KK6CgVmluY2WgV2VhdmVyLjxicj4KKzxicj4KKzxicj4KKyqgTW9kZXN0bHmgaW1wcm92ZWSgc3VwcG9ydKBmb3KgcnVubmluZ6BXaW5kb3dzoGFwcGxpY2F0aW9uc6B1bmRlcjxicj4KK6CgV2luZS6goEluoHBhcnRpY3VsYXIsoGluaXRpYWygc3VwcG9ydKBmb3KgcmVhZGluZ6BXaW5kb3dzoC5QREKgZGVidWc8YnI+CiugoGluZm9ybWF0aW9uoGhhc6BiZWVuoGFkZGVkLjxicj4KKzxicj4KKzxicj4KKyqgQaBuZXegTWVtY2hlY2ugY2xpZW50oHJlcXVlc3SgVkFMR1JJTkRfQ09VTlRfTEVBS19CTE9DS1OgaGFzoGJlZW48YnI+CiugoGFkZGVkLqCgSXSgaXOgc2ltaWxhcqB0b6BWQUxHUklORF9DT1VOVF9MRUFLU6BidXSgY291bnRzoGJsb2Nrczxicj4KK6CgaW5zdGVhZKBvZqBieXRlcy48YnI+Cis8YnI+Cis8YnI+CisqoFRoZaBWYWxncmluZKBjbGllbnSgcmVxdWVzdHOgVkFMR1JJTkRfUFJJTlRGoGFuZDxicj4KK6CgVkFMR1JJTkRfUFJJTlRGX0JBQ0tUUkFDRaBoYXZloGJlZW6gY2hhbmdlZKBzbGlnaHRseS6goFByZXZpb3VzbHksPGJyPgoroKB0aGWgc3RyaW5noHdhc6BhbHdheXOgcHJpbnRlZKBpbW1lZGlhdGVseaBvbqBpdHOgb3duoGxpbmUuoKBOb3csoHRoZTxicj4KK6Cgc3RyaW5noHdpbGygYmWgYWRkZWSgdG+gYaBidWZmZXKgYnV0oG5vdKBwcmludGVkoHVudGlsoGGgbmV3bGluZaBpczxicj4KK6CgZW5jb3VudGVyZWQsoG9yoG90aGVyoFZhbGdyaW5koG91dHB1dKBpc6BwcmludGVkoChub3RloHRoYXSgZm9yPGJyPgoroKBWQUxHUklORF9QUklOVEZfQkFDS1RSQUNFLKB0aGWgYmFjay10cmFjZaBpdHNlbGagaXOgY29uc2lkZXJlZDxicj4KK6CgIm90aGVyoFZhbGdyaW5koG91dHB1dCIpLqCgVGhpc6BhbGxvd3OgeW91oHRvoHVzZaBtdWx0aXBsZTxicj4KK6CgVkFMR1JJTkRfUFJJTlRGoGNhbGxzoHRvoGJ1aWxkoHVwoGGgc2luZ2xloG91dHB1dKBsaW5lLKBhbmSgYWxzb6B0bzxicj4KK6CgcHJpbnSgbXVsdGlwbGWgb3V0cHV0oGxpbmVzoHdpdGigYaBzaW5nbGWgcmVxdWVzdKAoYnmgZW1iZWRkaW5nPGJyPgoroKBtdWx0aXBsZaBuZXdsaW5lc6BpbqB0aGWgc3RyaW5nKS48YnI+Cis8YnI+Cis8YnI+CisqoFRoZaBncmFwaHOgZHJhd26gYnmgTWFzc2lmJ3OgbXNfcHJpbnSgcHJvZ3JhbaBoYXZloGNoYW5nZWSgc2xpZ2h0bHk6PGJyPgorPGJyPgoroKAtoFRoZaBoYWxmLWhlaWdodKBjaGFyc6AnLiegYW5koCcsJ6BhcmWgbm+gbG9uZ2VyoGRyYXduLKBiZWNhdXNlPGJyPgoroKCgoHRoZXmgYXJloGNvbmZ1c2luZy6goFRoZaAtLXmgb3B0aW9uoGNhbqBiZaB1c2VkoGlmoHRoZaBkZWZhdWx0PGJyPgoroKCgoHktcmVzb2x1dGlvbqBpc6Bub3SgaGlnaKBlbm91Z2guPGJyPgorPGJyPgoroKAtoEhvcml6b250YWygbGluZXOgYXJloG5vd6BkcmF3bqBhZnRlcqB0aGWgdG9woG9moGGgc25hcHNob3SgaWY8YnI+CiugoKCgdGhlcmWgaXOgYaBnYXCgdW50aWygdGhloG5leHSgc25hcHNob3QuoKBUaGlzoG1ha2VzoGl0oGNsZWFyoHRoYXQ8YnI+CiugoKCgdGhloG1lbW9yeaB1c2FnZaBoYXOgbm90oGRyb3BwZWSgdG+gemVyb6BiZXR3ZWVuoHNuYXBzaG90cy48YnI+Cis8YnI+Cis8YnI+CisqoFNvbWV0aGluZ6B0aGF0oGhhcHBlbmVkoGluoDMuNC4wLKBidXSgd2Fzbid0oGNsZWFybHmgYW5ub3VuY2VkOqB0aGU8YnI+CiugoG9wdGlvbqAtLXJlYWQtdmFyLWluZm89eWVzoGNhbqBiZaB1c2VkoGJ5oHNvbWWgdG9vbHOgKE1lbWNoZWNrLDxicj4KK6CgSGVsZ3JpbmSgYW5koERSRCkuoKBXaGVuoGVuYWJsZWQsoGl0oGNhdXNlc6BWYWxncmluZKB0b6ByZWFkoERXQVJGMzxicj4KK6CgdmFyaWFibGWgdHlwZaBhbmSgbG9jYXRpb26gaW5mb3JtYXRpb24uoKBUaGlzoG1ha2VzoHRob3NloHRvb2xzPGJyPgoroKBzdGFydKB1cKBtb3JloHNsb3dseaBhbmSgaW5jcmVhc2VzoG1lbW9yeaBjb25zdW1wdGlvbiygYnV0PGJyPgoroKBkZXNjcmlwdGlvbnOgb2agZGF0YaBhZGRyZXNzZXOgaW6gZXJyb3KgbWVzc2FnZXOgYmVjb21loG1vcmU8YnI+CiugoGRldGFpbGVkLjxicj4KKzxicj4KKzxicj4KKyqgZXhwLU9tZWdhLKBhbqBleHBlcmltZW50YWygaW5zdGFudGFuZW91c6BsZWFrLWRldGVjdGluZ6B0b29sLKB3YXM8YnI+CiugoGRpc2FibGVkoGluoDMuNC4woGR1ZaB0b6BhoGxhY2ugb2agaW50ZXJlc3SgYW5koG1haW50ZW5hbmNlLDxicj4KK6CgYWx0aG91Z2igdGhloHNvdXJjZaBjb2RloHdhc6BzdGlsbKBpbqB0aGWgZGlzdHJpYnV0aW9uLqCgVGhloHNvdXJjZTxicj4KK6CgY29kZaBoYXOgbm93oGJlZW6gcmVtb3ZlZKBmcm9toHRoZaBkaXN0cmlidXRpb24uoKBGb3KgYW55b25lPGJyPgoroKBpbnRlcmVzdGVkLKB0aGWgcmVtb3ZhbKBvY2N1cnJlZKBpbqBTVk6gcmV2aXNpb26gcjEwMjQ3Ljxicj4KKzxicj4KKzxicj4KKyqgU29tZaBjaGFuZ2VzoGhhdmWgYmVlbqBtYWRloHRvoHRoZaBidWlsZKBzeXN0ZW0uPGJyPgorPGJyPgoroKAtoFZFWC+gaXOgbm93oGludGVncmF0ZWSgcHJvcGVybHmgaW50b6B0aGWgYnVpbGSgc3lzdGVtLqCgVGhpc6BtZWFuczxicj4KK6CgoKB0aGF0oGRlcGVuZGVuY3mgdHJhY2tpbmegd2l0aGluoFZFWC+gbm93oHdvcmtzoHByb3Blcmx5LKAibWFrZTxicj4KK6CgoKBpbnN0YWxsIqB3aWxsoHdvcmugd2l0aG91dKByZXF1aXJpbmegIm1ha2UioGJlZm9yZaBpdCygYW5kPGJyPgoroKCgoHBhcmFsbGVsoGJ1aWxkc6AoaWUuoCdtYWtloC1qJymgbm93oHdvcmugKHByZXZpb3VzbHmgYTxicj4KK6CgoKAuTk9UUEFSQUxMRUygZGlyZWN0aXZloHdhc6B1c2VkoHRvoHNlcmlhbGl6ZaBidWlsZHMsoGllLqAnbWFrZaAtaic8YnI+CiugoKCgd2FzoGVmZmVjdGl2ZWx5oGlnbm9yZWQpLjxicj4KKzxicj4KK6CgLaBUaGWgLS13aXRoLXZleKBjb25maWd1cmWgb3B0aW9uoGhhc6BiZWVuoHJlbW92ZWQuoKBJdKB3YXOgb2Y8YnI+CiugoKCgbGl0dGxloHVzZaBhbmSgcmVtb3ZpbmegaXSgc2ltcGxpZmllZKB0aGWgYnVpbGSgc3lzdGVtLjxicj4KKzxicj4KK6CgLaBUaGWgbG9jYXRpb26gb2agc29tZaBpbnN0YWxsoGZpbGVzoGhhc6BjaGFuZ2VkLqCgVGhpc6BzaG91bGSgbm90PGJyPgoroKCgoGFmZmVjdKBtb3N0oHVzZXJzLqCgVGhvc2Wgd2hvoG1pZ2h0oGJloGFmZmVjdGVkOjxicj4KKzxicj4KK6CgoKAqoEZvcqBwZW9wbGWgd2hvoHVzZaBWYWxncmluZKB3aXRooE1QSaBwcm9ncmFtcyygdGhloGluc3RhbGxlZDxicj4KK6CgoKCgoGxpYm1waXdyYXAuc2+gbGlicmFyeaBoYXOgbW92ZWSgZnJvbTxicj4KK6CgoKCgoCQoSU5TVEFMTCkvJmx0O3BsYXRmb3JtJmd0Oy9saWJtcGl3cmFwLnNvoHRvPGJyPgoroKCgoKCgJChJTlNUQUxMKS9saWJtcGl3cmFwLSZsdDtwbGF0Zm9ybSZndDsuc28uPGJyPgorPGJyPgoroKCgoCqgRm9yoHBlb3BsZaB3aG+gZGlzdHJpYnV0ZaBzdGFuZGFsb25loFZhbGdyaW5koHRvb2xzLKB0aGU8YnI+CiugoKCgoKBpbnN0YWxsZWSgbGlicmFyaWVzoHN1Y2igYXOgJChJTlNUQUxMKS8mbHQ7cGxhdGZvcm0mZ3Q7L2xpYmNvcmVncmluZC5hPGJyPgoroKCgoKCgaGF2ZaBtb3ZlZKB0b6AkKElOU1RBTEwpL2xpYmNvcmVncmluZC0mbHQ7cGxhdGZvcm0mZ3Q7LmEuPGJyPgorPGJyPgoroKCgoFRoZXNloGNoYW5nZXOgc2ltcGxpZnmgdGhloGJ1aWxkoHN5c3RlbS48YnI+Cis8YnI+CiugoC2gUHJldmlvdXNseSygYWxsoHRoZaBkaXN0cmlidXRlZKBzdXBwcmVzc2lvbqAoKi5zdXBwKaBmaWxlc6B3ZXJlPGJyPgoroKCgoGluc3RhbGxlZC6goE5vdyygb25seaBkZWZhdWx0LnN1cHCgaXOgaW5zdGFsbGVkLqCgVGhpc6BzaG91bGSgbm90PGJyPgoroKCgoGFmZmVjdKB1c2Vyc6Bhc6B0aGWgb3RoZXKgaW5zdGFsbGVkoHN1cHByZXNzaW9uoGZpbGVzoHdlcmWgbm90PGJyPgoroKCgoHJlYWQ7oHRoZaBmYWN0oHRoYXSgdGhleaB3ZXJloGluc3RhbGxlZKB3YXOgYaBtaXN0YWtlLjxicj4KKzxicj4KKzxicj4KKyqgS05PV06gTElNSVRBVElPTlM6PGJyPgorPGJyPgoroKAtoE1lbWNoZWNroGlzoHVudXNhYmxloHdpdGigdGhloEludGVsoGNvbXBpbGVyoHN1aXRloHZlcnNpb26gMTEuMSw8YnI+CiugoKCgd2hlbqBpdKBnZW5lcmF0ZXOgY29kZaBmb3KgU1NFMi1hbmQtYWJvdmWgY2FwYWJsZaB0YXJnZXRzLqCgVGhpczxicj4KK6CgoKBpc6BiZWNhdXNloG9moGljYydzoHVzZaBvZqBoaWdobHmgb3B0aW1pc2VkoGlubGluZWSgc3RybGVuPGJyPgoroKCgoGltcGxlbWVudGF0aW9ucy6goEl0oGNhdXNlc6BNZW1jaGVja6B0b6ByZXBvcnSgaHVnZaBudW1iZXJzoG9mPGJyPgoroKCgoGZhbHNloGVycm9yc6BldmVuoGluoHNpbXBsZaBwcm9ncmFtcy6goEhlbGdyaW5koGFuZKBEUkSgbWF5oGFsc288YnI+CiugoKCgaGF2ZaBwcm9ibGVtcy48YnI+Cis8YnI+CiugoKCgVmVyc2lvbnOgMTEuMKBhbmSgZWFybGllcqBtYXmgYmWgT0ssoGJ1dKB0aGlzoGhhc6Bub3SgYmVlbjxicj4KK6CgoKBwcm9wZXJseaB0ZXN0ZWQuPGJyPgorPGJyPgorPGJyPgorVGhloGZvbGxvd2luZ6BidWdzoGhhdmWgYmVlbqBmaXhlZKBvcqByZXNvbHZlZC6goE5vdGWgdGhhdKAibi1pLWJ6Ijxicj4KK3N0YW5kc6Bmb3KgIm5vdKBpbqBidWd6aWxsYSKgLS2gdGhhdKBpcyygYaBidWegdGhhdKB3YXOgcmVwb3J0ZWSgdG+gdXM8YnI+CitidXSgbmV2ZXKgZ290oGGgYnVnemlsbGGgZW50cnkuoKBXZaBlbmNvdXJhZ2WgeW91oHRvoGZpbGWgYnVnc6Bpbjxicj4KK2J1Z3ppbGxhoChodHRwOi8vYnVncy5rZGUub3JnL2VudGVyX3ZhbGdyaW5kX2J1Zy5jZ2kpoHJhdGhlcqB0aGFuPGJyPgorbWFpbGluZ6B0aGWgZGV2ZWxvcGVyc6Aob3KgbWFpbGluZ6BsaXN0cymgZGlyZWN0bHmgLS2gYnVnc6B0aGF0oGFyZTxicj4KK25vdKBlbnRlcmVkoGludG+gYnVnemlsbGGgdGVuZKB0b6BnZXSgZm9yZ290dGVuoGFib3V0oG9yoGlnbm9yZWQuPGJyPgorPGJyPgorVG+gc2VloGRldGFpbHOgb2agYaBnaXZlbqBidWcsoHZpc2l0PGJyPgoraHR0cHM6Ly9idWdzLmtkZS5vcmcvc2hvd19idWcuY2dpP2lkPVhYWFhYWDxicj4KK3doZXJloFhYWFhYWKBpc6B0aGWgYnVnoG51bWJlcqBhc6BsaXN0ZWSgYmVsb3cuPGJyPgorPGJyPgorODQzMDOgoKBIb3egYWJvdXSgYaBMb2NrQ2hlY2ugdG9vbD+gPGJyPgorOTE2MzOgoKBkZXJlZmVyZW5jZaBvZqBudWxsoHB0cqBpbqB2Z1BsYWluX3N0X2Jhc2V0eXBloDxicj4KKzk3NDUyoKCgVmFsZ3JpbmSgZG9lc24ndKByZXBvcnSgYW55oHB0aHJlYWRzoHByb2JsZW1zoDxicj4KKzEwMDYyOKCgbGVhay1jaGVja6BnZXRzoGFzc2VydGlvbqBmYWlsdXJloHdoZW6gdXNpbmegPGJyPgoroKCgoKCgoKBWQUxHUklORF9NQUxMT0NMSUtFX0JMT0NLoG9uoG1hbGxvYygpZWSgbWVtb3J5oDxicj4KKzEwODUyOKCgTlBUTKBwdGhyZWFkoGNsZWFudXCgaGFuZGxlcnOgbm90oGNhbGxlZKA8YnI+CisxMTAxMjagoFZhbGdyaW5koDIuNC4xoGNvbmZpZ3VyZS5pbqB0cmFtcGxlc6BDRkxBR1OgPGJyPgorMTEwMTI4oKBtYWxsaW5mb6Bpc6Bub3SgaW1wbGVtZW50ZWQuLi6gPGJyPgorMTEwNzcwoKBWRVg6oEdlbmVyYXRlZKBmaWxlc6Bub3SgYWx3YXlzoHVwZGF0ZWSgd2hlbqBtYWtpbmegdmFsZ3JpbmQ8YnI+CisxMTExMDKgoE1lbWNoZWNrOqBwcm9ibGVtc6B3aXRooGxhcmdloChtZW1vcnmgZm9vdHByaW50KaBhcHBsaWNhdGlvbnOgPGJyPgorMTE1NjczoKBWZXgnc6BkZWNvZGVyoHNob3VsZKBuZXZlcqBhc3NlcnSgPGJyPgorMTE3NTY0oKBGYWxzZaBwb3NpdGl2ZTqgU3lzY2FsbKBwYXJhbaBjbG9uZShjaGlsZF90aWRwdHIpoGNvbnRhaW5zPGJyPgoroKCgoKCgoKB1bmluaXRpYWxpc2VkoGJ5dGUocymgPGJyPgorMTE5NDA0oKBleGVjdXRpbmegc3NooGZyb22gaW5zaWRloHZhbGdyaW5koGZhaWxzoDxicj4KKzEzMzY3OaCgQ2FsbGdyaW5koGRvZXOgbm90oHdyaXRloHBhdGigbmFtZXOgdG+gc291cmNlc6B3aXRooGR3YXJmoGRlYnVnPGJyPgoroKCgoKCgoKBpbmZvPGJyPgorMTM1ODQ3oKBjb25maWd1cmUuaW6gcHJvYmxlbaB3aXRooG5vbqBnbnWgY29tcGlsZXJzoChhbmSgcG9zc2libGWgZml4KaA8YnI+CisxMzYxNTSgoHRocmVhZHMuYzoyNzOgKHZnQ2FsbGdyaW5kX3Bvc3Rfc2lnbmFsKTqgQXNzZXJ0aW9uPGJyPgoroKCgoKCgoKAnKih2Z0NhbGxncmluZF9jdXJyZW50X2ZuX3N0YWNrLnRvcCmgPT2gMCegZmFpbGVkLqA8YnI+CisxMzYyMzCgoG1lbWNoZWNroHJlcG9ydHOgInBvc3NpYmx5oGxvc3QiLKBzaG91bGSgYmWgInN0aWxsoHJlYWNoYWJsZSKgPGJyPgorMTM3MDczoKBOVUxMoGFyZ6B0b6BNQUxMT0NMSUtFX0JMT0NLoGNhdXNlc6BjcmFzaKA8YnI+CisxMzc5MDSgoFZhbGdyaW5koHJlcG9ydHOgYaBtZW1vcnmgbGVha6B3aGVuoHVzaW5noFBPU0lYoHRocmVhZHMsPGJyPgoroKCgoKCgoKB3aGlsZaBpdKBzaG91bGRuJ3SgPGJyPgorMTM5MDc2oKB2YWxncmluZKBWVF9HRVRTVEFURaBlcnJvcqA8YnI+CisxNDIyMjigoGNvbXBsYWludKBvZqBlbGZfZHluYW1pY19kb19yZWxhoGluoHRyaXZpYWygdXNhZ2WgPGJyPgorMTQ1MzQ3oKBzcHVyaW91c6B3YXJuaW5noHdpdGigVVNCREVWRlNfUkVBUFVSQqA8YnI+CisxNDg0NDGgoCh3aW5lKaBjYW4ndKBmaW5koG1lbW9yeaBsZWFroGluoFdpbmUsoHdpbjMyoGJpbmFyeaA8YnI+CiugoKCgoKCgoGV4ZWN1dGFibGWgZmlsZS48YnI+CisxNDg3NDKgoExlYWstY2hlY2ugZmFpbHOgYXNzZXJ0oG9uoGV4aXSgPGJyPgorMTQ5ODc4oKBhZGSgKHByb3BlcimgY2hlY2ugZm9yoGNhbGxvY6BpbnRlZ2VyoG92ZXJmbG93oDxicj4KKzE1MDYwNqCgQ2FsbKBncmFwaKBpc6Bicm9rZW6gd2hlbqB1c2luZ6BjYWxsZ3JpbmSgY29udHJvbKA8YnI+CisxNTIzOTOgoGxlYWugZXJyb3JzoHByb2R1Y2WgYW6gZXhpdKBjb2RloG9moDAuoEmgbmVlZKBzb21loHdheaB0b6A8YnI+CiugoKCgoKCgoGNhdXNloGxlYWugZXJyb3JzoHRvoHJlc3VsdKBpbqBhoG5vbnplcm+gZXhpdKBjb2RlLqA8YnI+CisxNTcxNTSgoGRvY3VtZW50YXRpb26gKGxlYWstcmVzb2x1dGlvbqBkb2Ogc3BlYWtzoGFib3V0oG51bS1jYWxsZXJzPGJyPgoroKCgoKCgoKBkZWY9NCmgK6B3aGF0oGlzoGGgbG9zc6ByZWNvcmQ8YnI+CisxNTk1MDGgoGluY29ycmVjdKBoYW5kbGluZ6BvZqBBTFNBoGlvY3Rsc6A8YnI+CisxNjIwMjCgoFZhbGdyaW5kaW5noGFuoGVtcHR5L3plcm8tYnl0ZaBmaWxloGNyYXNoZXOgdmFsZ3JpbmSgPGJyPgorMTYyNDgyoKBwcGM6oFZhbGdyaW5koGNyYXNoZXOgd2hpbGWgcmVhZGluZ6BzdGFic6BpbmZvcm1hdGlvbqA8YnI+CisxNjI3MTigoHg4NjqgYXZvaWSgc2VnbWVudKBzZWxlY3RvcqAwoGluoHN5c19zZXRfdGhyZWFkX2FyZWEoKaA8YnI+CisxNjMyNTOgoCh3aW5lKaBjYW5vbmljYWxpc2VTeW10YWKgZm9yZ290oHNvbWWgZmllbGRzoGluoERpU3ltoDxicj4KKzE2MzU2MKCgVkVYL3Rlc3RfbWFpbi5joGlzoG1pc3NpbmegZnJvbaB2YWxncmluZC0zLjMuMaA8YnI+CisxNjQzNTOgoG1hbGxvY191c2FibGVfc2l6ZSgpoGRvZXNuJ3SgcmV0dXJuoGGgdXNhYmxloHNpemWgPGJyPgorMTY1NDY4oKBJbmNvbnNpc3RlbnSgZm9ybWF0dGluZ6BpbqBtZW1jaGVja6BtYW51YWygLS2gcGxlYXNloGZpeKA8YnI+CisxNjk1MDWgoG1haW4uYzoyODagKGVuZE9mSW5zdHIpOjxicj4KK6CgoKCgoKCgQXNzZXJ0aW9uoCdpaS0mZ3Q7Y29zdF9vZmZzZXSgPT2gKmNvc3Rfb2Zmc2V0J6BmYWlsZWSgPGJyPgorMTc3MjA2oKBHZW5lcmF0ZaBkZWZhdWx0LnN1cHCgZHVyaW5noGNvbXBpbGWgaW5zdGVhZKBvZqBjb25maWd1cmU8YnI+CisxNzcyMDmgoENvbmZpZ3VyZaB2YWx0X2xvYWRfYWRkcmVzc6BiYXNlZKBvbqBhcmNoK29zoDxicj4KKzE3NzMwNaCgZXZlbnRmZKAvoHN5c2NhbGygMzIzoHBhdGNooGxvc3Q8YnI+CisxNzk3MzGgoFRlc3RzoGZhaWygdG+gYnVpbGSgYmVjYXVzZaBvZqBpbmxpbmluZ6BvZqBub24tbG9jYWygYXNtoGxhYmVsczxicj4KKzE4MTM5NKCgaGVsZ3JpbmQ6oGxpYmhiX2NvcmUuYzozNzYyoChtc21fd3JpdGUpOqBBc3NlcnRpb26gPGJyPgoroKCgoKCgoKAnb3JkeHigPT2gUE9yZF9FUaB8fKBvcmR4eKA9PaBQT3JkX0xUJ6BmYWlsZWQuoDxicj4KKzE4MTU5NKCgQm9ndXOgd2FybmluZ6Bmb3KgZW1wdHmgdGV4dKBzZWdtZW50oDxicj4KKzE4MTcwN6CgZHdhcmagZG9lc24ndKByZXF1aXJloGVudW1lcmF0aW9uc6B0b6BoYXZloG5hbWWgPGJyPgorMTg1MDM4oKBleHAtcHRyY2hlY2s6oCJ1bmhhbmRsZWSgc3lzY2FsbDqgMjg1IqAoZmFsbG9jYXRlKaBvbqB4ODZfNjSgPGJyPgorMTg1MDUwoKBleHAtcHRyY2hlY2s6oHNnX21haW4uYzo3MjegKGFkZF9ibG9ja190b19HbG9iYWxUcmVlKTo8YnI+CiugoKCgoKCgoEFzc2VydGlvbqAnIWFscmVhZHlfcHJlc2VudCegZmFpbGVkLjxicj4KKzE4NTM1OaCgZXhwLXB0cmNoZWNrOqB1bmhhbmRsZWSgc3lzY2FsbKBnZXRyZXN1aWQoKTxicj4KKzE4NTc5NKCgIldBUk5JTkc6oHVuaGFuZGxlZKBzeXNjYWxsOqAyODUioChmYWxsb2NhdGUpoG9uoHg4Nl82NDxicj4KKzE4NTgxNqCgVmFsZ3JpbmSgaXOgdW5hYmxloHRvoGhhbmRsZaBkZWJ1Z6BpbmZvoGZvcqBmaWxlc6B3aXRooHNwbGl0PGJyPgoroKCgoKCgoKBkZWJ1Z6BpbmZvoHRoYXSgYXJloHByZWxpbmtlZKBhZnRlcndhcmRzoDxicj4KKzE4NTk4MKCgW2Rhcndpbl2gdW5oYW5kbGVkoHN5c2NhbGw6oHNlbV9vcGVuoDxicj4KKzE4NjIzOKCgYmJUb0lSX0FNRDY0OqBkaXNJbnN0cqBtaXNjYWxjdWxhdGVkoG5leHSgJXJpcDxicj4KKzE4NjUwN6CgZXhwLXB0cmNoZWNroHVuaGFuZGxlZKBzeXNjYWxsc6BwcmN0bCygZXRjLqA8YnI+CisxODY3OTCgoFN1cHByZXNzaW9uoHBhdHRlcm6gdXNlZKBmb3KgbGVha3OgYXJloG5vdKByZXBvcnRlZKA8YnI+CisxODY3OTagoFN5bWJvbHOgd2l0aKBsZW5ndGgmZ3Q7MjAwoGluoHN1cHByZXNzaW9uoGZpbGVzoGFyZaBpZ25vcmVkoDxicj4KKzE4NzA0OKCgZHJkOqBtdXRleKBQVEhSRUFEX1BST0NFU1NfU0hBUkVEoGF0dHJpYnV0ZaBtaXNzaW50ZXJwcmV0YXRpb248YnI+CisxODc0MTagoGV4cC1wdHJjaGVjazqgc3VwcG9ydKBmb3KgX19OUl97c2V0cmVnaWQsc2V0cmV1aWQsc2V0cmVzdWlkfTxicj4KKzE4ODAzOKCgaGVsZ3JpbmQ6oGhnX21haW4uYzo5MjY6oG1rX1NIVkFMX2ZhaWw6oHRoZaAnaW1wb3NzaWJsZSegaGFwcGVuZWQ8YnI+CisxODgwNDagoGJhc2hpc21zoGluoHRoZaBjb25maWd1cmWgc2NyaXB0PGJyPgorMTg4MTI3oKBhbWQ2NC0mZ3Q7SVI6oHVuaGFuZGxlZKBpbnN0cnVjdGlvbqBieXRlczqgMHhGMKAweEagMHhCMKAweEE8YnI+CisxODgxNjGgoG1lbWNoZWNrOqAtLXRyYWNrLW9yaWdpbnM9eWVzoGFzc2VydHOgIm1jX21hY2hpbmUuYzo2NzI8YnI+CiugoKCgoKCgoChnZXRfb3RyYWNrX3NoYWRvd19vZmZzZXRfd3JrKTqgdGhloCdpbXBvc3NpYmxlJ6BoYXBwZW5lZC4iPGJyPgorMTg4MjQ4oKBoZWxncmluZDqgcHRocmVhZF9jbGVhbnVwX3B1c2gsoHB0aHJlYWRfcndsb2NrX3VubG9jayygPGJyPgoroKCgoKCgoKBhc3NlcnRpb26gZmFpbKAiIWxvY2stJmd0O2hlbGRCeSKgPGJyPgorMTg4NDI3oKBBZGSgc3VwcG9ydKBmb3KgZXBvbGxfY3JlYXRlMaAod2l0aKBwYXRjaCmgPGJyPgorMTg4NTMwoKBTdXBwb3J0oGZvcqBTSU9DR1NUQU1QTlM8YnI+CisxODg1NjCgoEluY2x1ZGWgdmFsZ3JpbmQuc3BlY6BpbqB0aGWgdGFyYmFsbDxicj4KKzE4ODU3MqCgVmFsZ3JpbmSgb26gTWFjoHNob3VsZKBzdXBwcmVzc6BzZXRlbnYoKaBtZW2gbGVha6A8YnI+CisxODkwNTSgoFZhbGdyaW5koGZhaWxzoHRvoGJ1aWxkoGJlY2F1c2Wgb2agZHVwbGljYXRloG5vbi1sb2NhbKBhc22gbGFiZWxzoDxicj4KKzE4OTczN6CgdmV4oGFtZDY0LSZndDtJUjqgdW5oYW5kbGVkoGluc3RydWN0aW9uoGJ5dGVzOqAweEFDPGJyPgorMTg5NzYyoKBlcG9sbF9jcmVhdGWgc3lzY2FsbKBub3SgaGFuZGxlZKAoLS10b29sPWV4cC1wdHJjaGVjayk8YnI+CisxODk3NjOgoGRyZKBhc3NlcnRpb26gZmFpbHVyZTqgc190aHJlYWRpbmZvW3RpZF0uaXNfcmVjb3JkaW5noDxicj4KKzE5MDIxOaCgdW5oYW5kbGVkoHN5c2NhbGw6oDMyOKAoeDg2LWxpbnV4KTxicj4KKzE5MDM5MaCgZHVwoG9moDE4MTM5NDugc2VloGFib3ZlPGJyPgorMTkwNDI5oKBWYWxncmluZKByZXBvcnRzoGxvdHOgb2agZXJyb3JzoGluoGxkLnNvoHdpdGigeDg2XzY0oDIuOS45MKBnbGliY6A8YnI+CisxOTA4MjCgoE5voGRlYnVnoGluZm9ybWF0aW9uoG9uoHBvd2VycGMtbGludXg8YnI+CisxOTEwOTWgoFBBVENIOqBJbXByb3ZloHVzYmRldmZzoGlvY3RsoGhhbmRsaW5noDxicj4KKzE5MTE4MqCgbWVtY2hlY2s6oFZBTEdSSU5EX0xFQUtfQ0hFQ0ugcXVhZHJhdGljoHdoZW6gYmlnoG5yoG9moGNodW5rczxicj4KK6CgoKCgoKCgb3KgYmlnoG5yoG9moGVycm9yczxicj4KKzE5MTE4OaCgLS14bWw9eWVzoHNob3VsZKBvYmV5oC0tZ2VuLXN1cHByZXNzaW9ucz1hbGygPGJyPgorMTkxMTkyoKBzeXNsb2coKaBuZWVkc6BhoHN1cHByZXNzaW9uoG9uoG1hY29zeKA8YnI+CisxOTEyNzGgoERBUldJTjqgV0FSTklORzqgdW5oYW5kbGVkoHN5c2NhbGw6oDMzNTU0Njk3oGEuay5hLjqgMjY1oDxicj4KKzE5MTc2MaCgZ2V0cmxpbWl0oG9uoE1hY09TWKA8YnI+CisxOTE5OTKgoG11bHRpcGxloC0tZm4tc2tpcKBvbmx5oHdvcmtzoHNvbWV0aW1lczugZGVwZW5kZW50oG9uoG9yZGVyoDxicj4KKzE5MjYzNKCgVi6gcmVwb3J0c6AiYXNwYWNlbaBzeW5jX2NoZWNrX21hcHBpbmdfY2FsbGJhY2s6oDxicj4KK6CgoKCgoKCgc2VnbWVudKBtaXNtYXRjaCKgb26gRGFyd2luPGJyPgorMTkyOTU0oKBfX2V4dGVuc2lvbl9foG1pc3Npbmegb26gMqBjbGllbnSgcmVxdWVzdHOgPGJyPgorMTk0NDI5oKBDcmFzaKBhdKBzdGFydC11cKB3aXRooGdsaWJjLTIuMTAuMaBhbmSgbGludXgtMi42LjI5oDxicj4KKzE5NDQ3NKCgIklOU1RBTEwioGZpbGWgaGFzoGRpZmZlcmVudKBidWlsZKBpbnN0cnVjdGlvbnOgdGhhbqAiUkVBRE1FIjxicj4KKzE5NDY3MaCgVW5oYW5kbGVkoHN5c2NhbGygKHNlbV93YWl0PymgZnJvbaBtYWOgdmFsZ3JpbmSgPGJyPgorMTk1MDY5oKBtZW1jaGVjazqgcmVwb3J0c6BsZWFroChtZW1vcnmgc3RpbGygcmVhY2hhYmxlKaBmb3KgPGJyPgoroKCgoKCgoKBwcmludGYoIiVkJyygeCmgPGJyPgorMTk1MTY5oKBkcmQ6oCh2Z0RyZF9iYXJyaWVyX3Bvc3Rfd2FpdCk6PGJyPgoroKCgoKCgoKBBc3NlcnRpb26gJ3ItJmd0O3NnW3AtJmd0O3Bvc3RfaXRlcmF0aW9uXSegZmFpbGVkLqA8YnI+CisxOTUyNjigoHZhbGdyaW5koC0tbG9nLWZpbGWgZG9lc24ndKBhY2NlcHSgfi8uLi48YnI+CisxOTU4MzigoFZFWKBhYm9ydDqgTGliVkVYX05fU1BJTExfQllURVOgdG9voHNtYWxsoGZvcqBDUFVJRKBib2lsZXJwbGF0ZaA8YnI+CisxOTU4NjCgoFdBUk5JTkc6oHVuaGFuZGxlZKBzeXNjYWxsOqB1bml4OjIyM6A8YnI+CisxOTY1MjigoG5lZWSgYaBlcnJvcqBzdXBwcmVzc2lvbqBmb3KgcHRocmVhZF9yd2xvY2tfaW5pdKB1bmRlcqBvc6B4P6A8YnI+CisxOTcyMjegoFN1cHBvcnSgYWlvXyqgc3lzY2FsbHOgb26gRGFyd2luPGJyPgorMTk3NDU2oKB2YWxncmluZKBzaG91bGSgcmVqZWN0oC0tc3VwcHJlc3Npb25zPShkaXJlY3RvcnkpoDxicj4KKzE5NzUxMqCgRFdBUkYyoENGSaByZWFkZXI6oHVuaGFuZGxlZKBDRkmgaW5zdHJ1Y3Rpb26gMDoxMKA8YnI+CisxOTc1OTGgoHVuaGFuZGxlZKBzeXNjYWxsoDI3oChtaW5jb3JlKaA8YnI+CisxOTc3OTOgoE1lcmdloERDQVOgYnJhbmNooHRvoHRoZaB0cnVua6A9PaA4NTc1NiygMTQyMTAzPGJyPgorMTk3Nzk0oKBBdm9pZKBkdXBsaWNhdGWgZmlsZW5hbWVzoGluoFZleKA8YnI+CisxOTc4OTigoG1ha2WgY2hlY2ugZmFpbHOgb26gY3VycmVudKBTVk6gPGJyPgorMTk3OTAxoKBtYWtloGNoZWNroGZhaWxzoGFsc2+gdW5kZXKgZXhwLXB0cmNoZWNroGluoGN1cnJlbnSgU1ZOoDxicj4KKzE5NzkyOaCgTWFrZaAtLWxlYWstcmVzb2x1dGlvbj1oaWdooHRoZaBkZWZhdWx0oDxicj4KKzE5NzkzMKCgUmVkdWNloHNwYWNpbmegYmV0d2VlbqBsZWFroHJlcG9ydHOgPGJyPgorMTk3OTMzoKBQcmludKBjb21tYW5koGxpbmWgb2agY2xpZW50oGF0oHN0YXJ0LXVwLKBhbmSgc2hvcnRlbqBwcmVhbWJsZaA8YnI+CisxOTc5NjagoHVuaGFuZGxlZKBzeXNjYWxsoDIwNaAoeDg2LWxpbnV4LKAtLXRvb2w9ZXhwLXB0cmNoZWNrKTxicj4KKzE5ODM5NaCgYWRkoEJCVqB0b6B0aGWgZGlzdHJpYnV0aW9uoGFzoGFuoGV4cGVyaW1lbnRhbKB0b29soDxicj4KKzE5ODYyNKCgTWlzc2luZ6BzeXNjYWxsc6BvbqBEYXJ3aW46oDgyLKAxNjcsoDI4MSygMzQ3oDxicj4KKzE5ODY0OaCgY2FsbGdyaW5kX2Fubm90YXRloGRvZXNuJ3SgY3VtdWxhdGWgY291bnRlcnOgPGJyPgorMTk5MzM4oKBjYWxsZ3JpbmRfYW5ub3RhdGWgc29ydGluZy90aHJlc2hvbGRzoGFyZaBicm9rZW6gZm9yoGFsbKBidXSgSXKgPGJyPgorMTk5OTc3oKBWYWxncmluZKBjb21wbGFpbnOgYWJvdXSgYW6gdW5yZWNvZ25pemVkoGluc3RydWN0aW9uoGluoHRoZTxicj4KK6CgoKCgoKCgYXRvbWljX2luY3OgdGVzdKBwcm9ncmFtPGJyPgorMjAwMDI5oKB2YWxncmluZKBpc24ndKBhYmxloHRvoHJlYWSgRmVkb3JhoDEyoGRlYnVnaW5mb6A8YnI+CisyMDA3NjCgoGRhcndpbqB1bmhhbmRsZWSgc3lzY2FsbDqgdW5peDoyODSgPGJyPgorMjAwODI3oKBEUkSgZG9lc24ndKB3b3JroG9uoE1hY6BPU6BYoDxicj4KKzIwMDk5MKCgVkdfKHJlYWRfbWlsbGlzZWNvbmRfdGltZXIpKCmgZG9lc6Bub3Sgd29ya6Bjb3JyZWN0bHmgPGJyPgorMjAxMDE2oKBWYWxncmluZKBkb2VzoG5vdKBzdXBwb3J0oHB0aHJlYWRfa2lsbCgpoG9uoE1hY6BPU6A8YnI+CisyMDExNjmgoERvY3VtZW50oC0tcmVhZC12YXItaW5mbzxicj4KKzIwMTMyM6CgUHJlLTMuNS4woHBlcmZvcm1hbmNloHNhbml0eaBjaGVja2luZ6A8YnI+CisyMDEzODSgoFJldmlld6B1c2VyoG1hbnVhbKBmb3KgdGhloDMuNS4woHJlbGVhc2WgPGJyPgorMjAxNTg1oKBtZnB2cqBub3SgaW1wbGVtZW50ZWSgb26gcHBjoDxicj4KKzIwMTcwOKCgdGVzdHOgZmFpbGluZ6BiZWNhdXNloHg4NqBkaXJlY3Rpb26gZmxhZ6Bpc6BsZWZ0oHNldKA8YnI+CisyMDE3NTegoFZhbGdyaW5koGRvZXNuJ3SgaGFuZGxloGFueaByZWNlbnSgc3lzX2Z1dGV4oGFkZGl0aW9uc6A8YnI+CisyMDQzNzegoDY0LWJpdKB2YWxncmluZKBjYW6gbm90oHN0YXJ0oGGgc2hlbGygc2NyaXB0PGJyPgoroKCgoKCgoKAod2l0aKAjIS9wYXRoL3RvL3NoZWxsKaBpZqB0aGWgc2hlbGygaXOgYaAzMi1iaXSgZXhlY3V0YWJsZTxicj4KK24taS1ieqCgZHJkOqBmaXhlZKBhc3NlcnRpb26gZmFpbHVyZaB0cmlnZ2VyZWSgYnmgbXV0ZXigcmVpbml0aWFsaXphdGlvbi48YnI+CituLWktYnqgoGRyZDqgZml4ZWSgYaBidWegdGhhdKBjYXVzZWSgaW5jb3JyZWN0oG1lc3NhZ2VzoHRvoGJloHByaW50ZWQ8YnI+CiugoKCgoKCgoGFib3V0oG1lbW9yeaBhbGxvY2F0aW9uoGV2ZW50c6B3aXRooG1lbW9yeaBhY2Nlc3OgdHJhY2luZ6BlbmFibGVkPGJyPgorbi1pLWJ6oKBkcmQ6oGZpeGVkoGGgbWVtb3J5oGxlYWugdHJpZ2dlcmVkoGJ5oHZlY3RvcqBjbG9ja6BkZWFsbG9jYXRpb248YnI+Cis8YnI+CisoMy41LjA6oDE5oEF1Z6AyMDA5LKB2ZXigcjE5MTMsoHZhbGdyaW5koHIxMDg0NikuPGJyPgorPGJyPgorPGJyPgorPGJyPgorUmVsZWFzZaAzLjQuMaAoMjigRmVicnVhcnmgMjAwOSk8YnI+Cit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fjxicj4KKzMuNC4xoGlzoGGgYnVnLWZpeKByZWxlYXNloHRoYXSgZml4ZXOgc29tZaByZWdyZXNzaW9uc6BhbmSgYXNzZXJ0aW9uPGJyPgorZmFpbHVyZXOgaW6gZGVidWegaW5mb6ByZWFkaW5noGluoDMuNC4wLKBtb3N0oG5vdGFibHmgaW5jb3JyZWN0oHN0YWNrPGJyPgordHJhY2VzoG9uoGFtZDY0LWxpbnV4oG9uoG9sZGVyoChnbGliYy0yLjOgYmFzZWQpoHN5c3RlbXMuoFZhcmlvdXM8YnI+CitvdGhlcqBkZWJ1Z6BpbmZvoHByb2JsZW1zoGFyZaBhbHNvoGZpeGVkLqCgQaBudW1iZXKgb2agYnVnc6BpbqB0aGU8YnI+CitleHAtcHRyY2hlY2ugdG9vbKBpbnRyb2R1Y2VkoGluoDMuNC4woGhhdmWgYmVlbqBmaXhlZC48YnI+Cis8YnI+CitJbqB2aWV3oG9moHRoZaBmYWN0oHRoYXSgMy40LjCgY29udGFpbnOgdXNlci12aXNpYmxloHJlZ3Jlc3Npb25zPGJyPgorcmVsYXRpdmWgdG+gMy4zLngsoHVwZ3JhZGluZ6B0b6AzLjQuMaBpc6ByZWNvbW1lbmRlZC6goFBhY2thZ2Vyc6BhcmU8YnI+CitlbmNvdXJhZ2VkoHRvoHNoaXCgMy40LjGgaW6gcHJlZmVyZW5jZaB0b6AzLjQuMC48YnI+Cis8YnI+CitUaGWgZml4ZWSgYnVnc6BhcmWgYXOgZm9sbG93cy6goE5vdGWgdGhhdKAibi1pLWJ6IqBzdGFuZHOgZm9yoCJub3SgaW48YnI+CitidWd6aWxsYSKgLS2gdGhhdKBpcyygYaBidWegdGhhdKB3YXOgcmVwb3J0ZWSgdG+gdXOgYnV0oG5ldmVyoGdvdKBhPGJyPgorYnVnemlsbGGgZW50cnkuoKBXZaBlbmNvdXJhZ2WgeW91oHRvoGZpbGWgYnVnc6BpbqBidWd6aWxsYTxicj4KKyhodHRwOi8vYnVncy5rZGUub3JnL2VudGVyX3ZhbGdyaW5kX2J1Zy5jZ2kpoHJhdGhlcqB0aGFuoG1haWxpbmegdGhlPGJyPgorZGV2ZWxvcGVyc6Aob3KgbWFpbGluZ6BsaXN0cymgZGlyZWN0bHmgLS2gYnVnc6B0aGF0oGFyZaBub3SgZW50ZXJlZDxicj4KK2ludG+gYnVnemlsbGGgdGVuZKB0b6BnZXSgZm9yZ290dGVuoGFib3V0oG9yoGlnbm9yZWQuPGJyPgorPGJyPgorbi1pLWJ6oKBGaXigdmFyaW91c6BidWdzoHJlYWRpbmegaWNjLTExoGdlbmVyYXRlZKBkZWJ1Z6BpbmZvPGJyPgorbi1pLWJ6oKBGaXigdmFyaW91c6BidWdzoHJlYWRpbmegZ2NjLTQuNKBnZW5lcmF0ZWSgZGVidWegaW5mbzxicj4KK24taS1ieqCgUHJlbGltaW5hcnmgc3VwcG9ydKBmb3KgZ2xpYmMtMi4xMKAvoEZlZG9yYaAxMTxicj4KK24taS1ieqCgQ2FjaGVncmluZKBhbmSgQ2FsbGdyaW5kOqBoYW5kbGWgbm9uLXBvd2VyLW9mLXR3b6BjYWNoZaBzaXplcyw8YnI+CiugoKCgoKCgoHNvoGFzoHRvoHN1cHBvcnSgKGVnKaAyNGugQXRvbaBEMaBhbmSgQ29yZTKgd2l0aKAzLzYvMTJNQqBMMi48YnI+CisxNzk2MTigoGV4cC1wdHJjaGVja6BjcmFzaGVkoC+gZXhpdKBwcmVtYXR1cmVseTxicj4KKzE3OTYyNKCgaGVsZ3JpbmQ6oGZhbHNloHBvc2l0aXZloHJhY2VzoHdpdGigcHRocmVhZF9jcmVhdGWgYW5kPGJyPgoroKCgoKCgoKByZWN2L29wZW4vY2xvc2UvcmVhZDxicj4KKzEzNDIwN6CgcGtnLWNvbmZpZ6BvdXRwdXSgY29udGFpbnOgQFZHX1BMQVRGT1JNQDxicj4KKzE3NjkyNqCgZmxvYXRpbmegcG9pbnSgZXhjZXB0aW9uoGF0oHZhbGdyaW5koHN0YXJ0dXCgd2l0aKBQUEOgNDQwRVBYPGJyPgorMTgxNTk0oKBCb2d1c6B3YXJuaW5noGZvcqBlbXB0eaB0ZXh0oHNlZ21lbnQ8YnI+CisxNzM3NTGgoGFtZDY0LSZndDtJUjqgMHg0OKAweEagMHg2RqAweDQ1oChldmVuoG1vcmWgcmVkdW5kYW50oHJleKBwcmVmaXhlcyk8YnI+CisxODE3MDegoER3YXJmM6Bkb2Vzbid0oHJlcXVpcmWgZW51bWVyYXRpb25zoHRvoGhhdmWgbmFtZTxicj4KKzE4NTAzOKCgZXhwLXB0cmNoZWNrOqAidW5oYW5kbGVkoHN5c2NhbGw6oDI4NSKgKGZhbGxvY2F0ZSmgb26geDg2XzY0PGJyPgorMTg1MDUwoKBleHAtcHRyY2hlY2s6oHNnX21haW4uYzo3MjegKGFkZF9ibG9ja190b19HbG9iYWxUcmVlKTo8YnI+CiugoKCgoKCgoEFzc2VydGlvbqAnIWFscmVhZHlfcHJlc2VudCegZmFpbGVkLjxicj4KKzE4NTM1OaCgZXhwLXB0cmNoZWNroHVuaGFuZGxlZKBzeXNjYWxsoGdldHJlc3VpZCgpPGJyPgorPGJyPgorKDMuNC4xLlJDMTqgoDI0oEZlYqAyMDA4LKB2ZXigcjE4ODQsoHZhbGdyaW5koHI5MjUzKS48YnI+CisoMy40LjE6oKCgoKCgMjigRmVioDIwMDgsoHZleKByMTg4NCygdmFsZ3JpbmSgcjkyOTMpLjxicj4KKzxicj4KKzxicj4KKzxicj4KK1JlbGVhc2WgMy40LjCgKDKgSmFudWFyeaAyMDA5KTxicj4KK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fjxicj4KKzMuNC4woGlzoGGgZmVhdHVyZaByZWxlYXNloHdpdGigbWFueaBzaWduaWZpY2FudKBpbXByb3ZlbWVudHOgYW5koHRoZTxicj4KK3VzdWFsoGNvbGxlY3Rpb26gb2agYnVnoGZpeGVzLqCgVGhpc6ByZWxlYXNloHN1cHBvcnRzoFg4Ni9MaW51eCw8YnI+CitBTUQ2NC9MaW51eCygUFBDMzIvTGludXigYW5koFBQQzY0L0xpbnV4LqCgU3VwcG9ydKBmb3KgcmVjZW50oGRpc3Ryb3M8YnI+CisodXNpbmegZ2NjoDQuNCygZ2xpYmOgMi44oGFuZKAyLjkpoGhhc6BiZWVuoGFkZGVkLjxicj4KKzxicj4KKzMuNC4woGJyaW5nc6Bzb21loHNpZ25pZmljYW50oHRvb2ygaW1wcm92ZW1lbnRzLqCgTWVtY2hlY2ugY2FuoG5vdzxicj4KK3JlcG9ydKB0aGWgb3JpZ2luoG9moHVuaW5pdGlhbGlzZWSgdmFsdWVzLKB0aGWgdGhyZWFkoGNoZWNrZXJzPGJyPgorSGVsZ3JpbmSgYW5koERSRKBhcmWgbXVjaKBpbXByb3ZlZCygYW5koHdloGhhdmWgYaBuZXegZXhwZXJpbWVudGFsPGJyPgordG9vbCygZXhwLVB0cmNoZWNrLKB3aGljaKBpc6BhYmxloHRvoGRldGVjdKBvdmVycnVuc6BvZqBzdGFja6BhbmQ8YnI+CitnbG9iYWygYXJyYXlzLqCgSW6gZGV0YWlsOjxicj4KKzxicj4KKyqgTWVtY2hlY2ugaXOgbm93oGFibGWgdG+gdHJhY2ugdGhloG9yaWdpbqBvZqB1bmluaXRpYWxpc2VkoHZhbHVlcy48YnI+CiugoFdoZW6gaXSgcmVwb3J0c6BhbqB1bmluaXRpYWxpc2VkoHZhbHVloGVycm9yLKBpdKB3aWxsoHRyeaB0b6BzaG93PGJyPgoroKB0aGWgb3JpZ2luoG9moHRoZaB2YWx1ZSygYXOgZWl0aGVyoGGgaGVhcKBvcqBzdGFja6BhbGxvY2F0aW9uLjxicj4KK6CgT3JpZ2luoHRyYWNraW5noGlzoGV4cGVuc2l2ZaBhbmSgc2+gaXOgbm90oGVuYWJsZWSgYnmgZGVmYXVsdC6goFRvPGJyPgoroKB1c2WgaXQsoHNwZWNpZnmgLS10cmFjay1vcmlnaW5zPXllcy6goE1lbWNoZWNrJ3Ogc3BlZWSgd2lsbKBiZTxicj4KK6CgZXNzZW50aWFsbHmgaGFsdmVkLKBhbmSgbWVtb3J5oHVzYWdloHdpbGygYmWgc2lnbmlmaWNhbnRseTxicj4KK6CgaW5jcmVhc2VkLqCgTmV2ZXJ0aGVsZXNzoGl0oGNhbqBkcmFzdGljYWxseaByZWR1Y2WgdGhloGVmZm9ydDxicj4KK6CgcmVxdWlyZWSgdG+gaWRlbnRpZnmgdGhloHJvb3SgY2F1c2Wgb2agdW5pbml0aWFsaXNlZKB2YWx1ZaBlcnJvcnMsPGJyPgoroKBhbmSgc2+gaXOgb2Z0ZW6gYaBwcm9ncmFtbWVyoHByb2R1Y3Rpdml0eaB3aW4soGRlc3BpdGWgcnVubmluZ6Btb3JlPGJyPgoroKBzbG93bHkuPGJyPgorPGJyPgorKqBBoHZlcnNpb26gKDEuNC4wKaBvZqB0aGWgVmFsa3lyaWWgR1VJLKB0aGF0oHdvcmtzoHdpdGigTWVtY2hlY2ugaW48YnI+CiugoDMuNC4wLKB3aWxsoGJloHJlbGVhc2VkoHNob3J0bHkuPGJyPgorPGJyPgorKqBIZWxncmluZCdzoHJhY2WgZGV0ZWN0aW9uoGFsZ29yaXRobaBoYXOgYmVlbqBjb21wbGV0ZWx5oHJlZGVzaWduZWQ8YnI+CiugoGFuZKByZWltcGxlbWVudGVkLKB0b6BhZGRyZXNzoHVzYWJpbGl0eaBhbmSgc2NhbGFiaWxpdHmgY29uY2VybnM6PGJyPgorPGJyPgoroKAtoFRoZaBuZXegYWxnb3JpdGhtoGhhc6BhoGxvd2VyoGZhbHNlLWVycm9yoHJhdGU6oGl0oGlzoG11Y2igbGVzczxicj4KK6CgoKBsaWtlbHmgdG+gcmVwb3J0oHJhY2VzoHRoYXSgZG+gbm90oHJlYWxseaBleGlzdC48YnI+Cis8YnI+CiugoC2gSGVsZ3JpbmSgd2lsbKBkaXNwbGF5oGZ1bGygY2FsbKBzdGFja3OgZm9yoGJvdGigYWNjZXNzZXOgaW52b2x2ZWQ8YnI+CiugoKCgaW6gYaByYWNlLqCgVGhpc6BtYWtlc6BpdKBlYXNpZXKgdG+gaWRlbnRpZnmgdGhloHJvb3SgY2F1c2VzoG9mPGJyPgoroKCgoHJhY2VzLjxicj4KKzxicj4KK6CgLaBMaW1pdGF0aW9uc6BvbqB0aGWgc2l6ZaBvZqBwcm9ncmFtoHRoYXSgY2FuoHJ1bqBoYXZloGJlZW6gcmVtb3ZlZC48YnI+Cis8YnI+CiugoC2gUGVyZm9ybWFuY2WgaGFzoGJlZW6gbW9kZXN0bHmgaW1wcm92ZWQsoGFsdGhvdWdooHRoYXSgaXOgdmVyeTxicj4KK6CgoKB3b3JrbG9hZC1kZXBlbmRlbnQuPGJyPgorPGJyPgoroKAtoERpcmVjdKBzdXBwb3J0oGZvcqBRdDSgdGhyZWFkaW5noGhhc6BiZWVuoGFkZGVkLjxicj4KKzxicj4KK6CgLaBwdGhyZWFkX2JhcnJpZXJzoGFyZaBub3egZGlyZWN0bHmgc3VwcG9ydGVkLjxicj4KKzxicj4KK6CgLaBIZWxncmluZKB3b3Jrc6B3ZWxsoG9uoGFsbKBzdXBwb3J0ZWSgTGludXigdGFyZ2V0cy48YnI+Cis8YnI+CisqoFRoZaBEUkSgdGhyZWFkoGRlYnVnZ2luZ6B0b29soGhhc6BzZWVuoG1ham9yoGltcHJvdmVtZW50czo8YnI+Cis8YnI+CiugoC2gR3JlYXRseaBpbXByb3ZlZKBwZXJmb3JtYW5jZaBhbmSgc2lnbmlmaWNhbnRseaByZWR1Y2VkoG1lbW9yeTxicj4KK6CgoKB1c2FnZS48YnI+Cis8YnI+CiugoC2gU3VwcG9ydKBmb3Kgc2V2ZXJhbKBtYWpvcqB0aHJlYWRpbmegbGlicmFyaWVzoChCb29zdC5UaHJlYWQsoFF0NCw8YnI+CiugoKCgZ2xpYiygT3Blbk1QKaBoYXOgYmVlbqBhZGRlZC48YnI+Cis8YnI+CiugoC2gU3VwcG9ydKBmb3KgYXRvbWljoGluc3RydWN0aW9ucyygUE9TSVigc2VtYXBob3JlcyygYmFycmllcnOgYW5kPGJyPgoroKCgoHJlYWRlci13cml0ZXKgbG9ja3OgaGFzoGJlZW6gYWRkZWQuPGJyPgorPGJyPgoroKAtoFdvcmtzoG5vd6BvbqBQb3dlclBDoENQVXOgdG9vLjxicj4KKzxicj4KK6CgLaBBZGRlZKBzdXBwb3J0oGZvcqBwcmludGluZ6B0aHJlYWSgc3RhY2ugdXNhZ2WgYXSgdGhyZWFkoGV4aXSgdGltZS48YnI+Cis8YnI+CiugoC2gQWRkZWSgc3VwcG9ydKBmb3KgZGVidWdnaW5noGxvY2ugY29udGVudGlvbi48YnI+Cis8YnI+CiugoC2gQWRkZWSgYaBtYW51YWygZm9yoERyZC48YnI+Cis8YnI+CisqoEGgbmV3oGV4cGVyaW1lbnRhbKB0b29sLKBleHAtUHRyY2hlY2ssoGhhc6BiZWVuoGFkZGVkLqCgUHRyY2hlY2s8YnI+CiugoGNoZWNrc6Bmb3KgbWlzdXNlc6BvZqBwb2ludGVycy6goEluoHRoYXSgc2Vuc2WgaXSgaXOgYaBiaXSgbGlrZTxicj4KK6CgTWVtY2hlY2suoKBIb3dldmVyLKBQdHJjaGVja6BjYW6gZG+gdGhpbmdzoE1lbWNoZWNroGNhbid0OqBpdKBjYW48YnI+CiugoGRldGVjdKBvdmVycnVuc6BvZqBzdGFja6BhbmSgZ2xvYmFsoGFycmF5cyygaXSgY2FuoGRldGVjdDxicj4KK6CgYXJiaXRyYXJpbHmgZmFyoG91dC1vZi1ib3VuZHOgYWNjZXNzZXOgdG+gaGVhcKBibG9ja3MsoGFuZKBpdKBjYW48YnI+CiugoGRldGVjdKBhY2Nlc3Nlc6BoZWFwoGJsb2Nrc6B0aGF0oGhhdmWgYmVlbqBmcmVlZKBhoHZlcnmgbG9uZ6B0aW1lPGJyPgoroKBhZ2+gKG1pbGxpb25zoG9moGJsb2Nrc6BpbqB0aGWgcGFzdCkuPGJyPgorPGJyPgoroKBQdHJjaGVja6BjdXJyZW50bHmgd29ya3Ogb25seaBvbqB4ODYtbGludXigYW5koGFtZDY0LWxpbnV4LqCgVG+gdXNlPGJyPgoroKBpdCygdXNloC0tdG9vbD1leHAtcHRyY2hlY2suoKBBoHNpbXBsZaBtYW51YWygaXOgcHJvdmlkZWQsoGFzoHBhcnQ8YnI+CiugoG9moHRoZaBtYWluoFZhbGdyaW5koGRvY3VtZW50YXRpb24uoKBBc6B0aGlzoGlzoGFuoGV4cGVyaW1lbnRhbDxicj4KK6CgdG9vbCygd2Wgd291bGSgYmWgcGFydGljdWxhcmx5oGludGVyZXN0ZWSgaW6gaGVhcmluZ6BhYm91dKB5b3VyPGJyPgoroKBleHBlcmllbmNlc6B3aXRooGl0Ljxicj4KKzxicj4KKyqgZXhwLU9tZWdhLKBhbqBleHBlcmltZW50YWygaW5zdGFudGFuZW91c6BsZWFrLWRldGVjdGluZ6B0b29sLKBpc6Bubzxicj4KK6CgbG9uZ2VyoGJ1aWx0oGJ5oGRlZmF1bHQsoGFsdGhvdWdooHRoZaBjb2RloHJlbWFpbnOgaW6gdGhloHJlcG9zaXRvcnk8YnI+CiugoGFuZKB0aGWgdGFyYmFsbC6goFRoaXOgaXOgZHVloHRvoHRocmVloGZhY3RvcnM6oGGgcGVyY2VpdmVkoGxhY2ugb2Y8YnI+CiugoHVzZXJzLKBhoGxhY2ugb2agbWFpbnRlbmFuY2UsoGFuZKBjb25jZXJuc6B0aGF0oGl0oG1heaBub3SgYmU8YnI+CiugoHBvc3NpYmxloHRvoGFjaGlldmWgcmVsaWFibGWgb3BlcmF0aW9uoHVzaW5noHRoZaBleGlzdGluZ6BkZXNpZ24uPGJyPgorPGJyPgorKqBBc6B1c3VhbCygc3VwcG9ydKBmb3KgdGhloGxhdGVzdKBMaW51eKBkaXN0cm9zoGFuZKB0b29sY2hhaW48YnI+CiugoGNvbXBvbmVudHOgaGFzoGJlZW6gYWRkZWQuoKBJdKBzaG91bGSgd29ya6B3ZWxsoG9uoEZlZG9yYaBDb3JloDEwLDxicj4KK6CgT3BlblNVU0WgMTEuMaBhbmSgVWJ1bnR1oDguMTAuoKBnY2MtNC40oChpbqBpdHOgY3VycmVudKBwcmUtcmVsZWFzZTxicj4KK6Cgc3RhdGUpoGlzoHN1cHBvcnRlZCygYXOgaXOgZ2xpYmMtMi45LqCgVGhloEMrK6BkZW1hbmdsZXKgaGFzoGJlZW48YnI+CiugoHVwZGF0ZWSgc2+gYXOgdG+gd29ya6B3ZWxsoHdpdGigQysroGNvbXBpbGVkoGJ5oGV2ZW6gdGhloG1vc3SgcmVjZW50PGJyPgoroKBnKysncy48YnI+Cis8YnI+CisqoFlvdaBjYW6gbm93oHVzZaBmcmFtZS1sZXZlbKB3aWxkY2FyZHOgaW6gc3VwcHJlc3Npb25zLqCgVGhpc6B3YXOgYTxicj4KK6CgZnJlcXVlbnRseS1yZXF1ZXN0ZWSgZW5oYW5jZW1lbnQuoKBBoGxpbmWgIi4uLiKgaW6gYaBzdXBwcmVzc2lvbqBub3c8YnI+CiugoG1hdGNoZXOgemVyb6BvcqBtb3JloGZyYW1lcy6goFRoaXOgbWFrZXOgaXSgZWFzaWVyoHRvoHdyaXRlPGJyPgoroKBzdXBwcmVzc2lvbnOgd2hpY2igYXJloHByZWNpc2WgeWV0oGluc2Vuc2l0aXZloHRvoGNoYW5nZXOgaW48YnI+CiugoGlubGluaW5noGJlaGF2aW91ci48YnI+Cis8YnI+CisqoDMuNC4woGFkZHOgc3VwcG9ydKBvbqB4ODYvYW1kNjSgZm9yoHRoZaBTU1NFM6BpbnN0cnVjdGlvbqBzZXQuPGJyPgorPGJyPgorKqBWZXJ5oGJhc2ljoHN1cHBvcnSgZm9yoElCTaBQb3dlcjagaGFzoGJlZW6gYWRkZWSgKDY0LWJpdKBwcm9jZXNzZXOgb25seSkuPGJyPgorPGJyPgorKqBWYWxncmluZKBpc6Bub3egY3Jvc3MtY29tcGlsYWJsZS6goEZvcqBleGFtcGxlLKBpdKBpc6Bwb3NzaWJsZaB0bzxicj4KK6CgY3Jvc3OgY29tcGlsZaBWYWxncmluZKBvbqBhbqB4ODYvYW1kNjQtbGludXigaG9zdCygc2+gdGhhdKBpdKBydW5zPGJyPgoroKBvbqBhoHBwYzMyLzY0LWxpbnV4oHRhcmdldC48YnI+Cis8YnI+CisqoFlvdaBjYW6gc2V0oHRoZaBtYWluoHRocmVhZCdzoHN0YWNroHNpemWgYXSgc3RhcnR1cKB1c2luZ6B0aGU8YnI+CiugoG5ld6AtLW1haW4tc3RhY2tzaXplPaBmbGFnoChzdWJqZWN0oG9moGNvdXJzZaB0b6B1bGltaXSgc2V0dGluZ3MpLjxicj4KK6CgVGhpc6Bpc6B1c2VmdWygZm9yoHJ1bm5pbmegYXBwc6B0aGF0oG5lZWSgYaBsb3Sgb2agc3RhY2ugc3BhY2UuPGJyPgorPGJyPgorKqBUaGWgbGltaXRhdGlvbqB0aGF0oHlvdaBjYW4ndKB1c2WgLS10cmFjZS1jaGlsZHJlbj15ZXOgdG9nZXRoZXI8YnI+CiugoHdpdGigLS1kYi1hdHRhY2g9eWVzoGhhc6BiZWVuoHJlbW92ZWQuPGJyPgorPGJyPgorKqBUaGWgZm9sbG93aW5noGJ1Z3OgaGF2ZaBiZWVuoGZpeGVkLqCgTm90ZaB0aGF0oCJuLWktYnoioHN0YW5kc6Bmb3I8YnI+CiugoCJub3SgaW6gYnVnemlsbGEioC0toHRoYXSgaXMsoGGgYnVnoHRoYXSgd2FzoHJlcG9ydGVkoHRvoHVzoGJ1dDxicj4KK6CgbmV2ZXKgZ290oGGgYnVnemlsbGGgZW50cnkuoKBXZaBlbmNvdXJhZ2WgeW91oHRvoGZpbGWgYnVnc6Bpbjxicj4KK6CgYnVnemlsbGGgKGh0dHA6Ly9idWdzLmtkZS5vcmcvZW50ZXJfdmFsZ3JpbmRfYnVnLmNnaSmgcmF0aGVyoHRoYW48YnI+CiugoG1haWxpbmegdGhloGRldmVsb3BlcnOgKG9yoG1haWxpbmegbGlzdHMpoGRpcmVjdGx5Ljxicj4KKzxicj4KK6Cgbi1pLWJ6oKBNYWtloHJldHVybqB0eXBlc6Bmb3Kgc29tZaBjbGllbnSgcmVxdWVzdHOgNjQtYml0oGNsZWFuPGJyPgoroKBuLWktYnqgoGdsaWJjoDIuOaBzdXBwb3J0PGJyPgoroKBuLWktYnqgoGlnbm9yZaB1bnNhZmWgLnZhbGdyaW5kcmMnc6AoQ1ZFLTIwMDgtNDg2NSk8YnI+CiugoG4taS1ieqCgTVBJX0luaXQoMCwwKaBpc6B2YWxpZKBidXSgbGlibXBpd3JhcC5joHNlZ2ZhdWx0czxicj4KK6Cgbi1pLWJ6oKBCdWlsZGluZ6BpbqBhbqBlbnagd2l0aG91dKBnZGKgZ2l2ZXOgYm9ndXOgZ2RioGF0dGFjaDxicj4KK6CgOTI0NTagoKBUcmFjaW5noHRoZaBvcmlnaW6gb2agdW5pbml0aWFsaXNlZKBtZW1vcnk8YnI+CiugoDEwNjQ5N6CgVmFsZ3JpbmSgZG9lc6Bub3SgZGVtYW5nbGWgc29tZaBDKyugdGVtcGxhdGWgc3ltYm9sczxicj4KK6CgMTYyMjIyoKA9PTEwNjQ5Nzxicj4KK6CgMTUxNjEyoKBTdXBwcmVzc2lvbqB3aXRooCIuLi4ioChmcmFtZS1sZXZlbKB3aWxkY2FyZHOgaW6gLnN1cHCgZmlsZXMpPGJyPgoroKAxNTY0MDSgoFVuYWJsZaB0b6BzdGFydKBvb2NhbGOgdW5kZXKgbWVtY2hlY2ugb26gb3BlblNVU0WgMTAuM6AoNjQtYml0KTxicj4KK6CgMTU5Mjg1oKB1bmhhbmRsZWSgc3lzY2FsbDoyNaAoc3RpbWUsoG9uoHg4Ni1saW51eCk8YnI+CiugoDE1OTQ1MqCgdW5oYW5kbGVkoGlvY3RsoDB4OEIwMaBvbqAidmFsZ3JpbmSgaXdjb25maWciPGJyPgoroKAxNjA5NTSgoHBwY6BidWlsZKBvZqB2YWxncmluZKBjcmFzaGVzoHdpdGigaWxsZWdhbKBpbnN0cnVjdGlvbqAoaXNlbCk8YnI+CiugoDE2MDk1NqCgbWFsbGluZm+gaW1wbGVtZW50YXRpb24soHcvoHBhdGNoPGJyPgoroKAxNjIwOTKgoFZhbGdyaW5koGZhaWxzoHRvoHN0YXJ0oGdub21lLXN5c3RlbS1tb25pdG9yPGJyPgoroKAxNjI4MTmgoG1hbGxvY19mcmVlX2ZpbGygdGVzdKBkb2Vzbid0oHBhc3Ogb26gZ2xpYmMyLjigeDg2PGJyPgoroKAxNjM3OTSgoGFzc2VydGlvbqBmYWlsdXJloHdpdGigIi0tdHJhY2stb3JpZ2lucz15ZXMiPGJyPgoroKAxNjM5MzOgoHNpZ2NvbnRleHQuZXJyoGFuZKAudHJhcG5voG11c3SgYmWgc2V0oHRvZ2V0aGVyPGJyPgoroKAxNjM5NTWgoHJlbW92ZaBjb25zdHJhaW50oCEoLS1kYi1hdHRhY2g9eWVzoCZhbXA7JmFtcDugLS10cmFjZS1jaGlsZHJlbj15ZXMpPGJyPgoroKAxNjQ0NzagoE1pc3Npbmega2VybmVsoG1vZHVsZaBsb2FkaW5noHN5c3RlbaBjYWxsczxicj4KK6CgMTY0NjY5oKBTVk6gcmVncmVzc2lvbjqgbW1hcCgpoGRyb3BzoHBvc2l4oGZpbGWgbG9ja3M8YnI+CiugoDE2NjU4MaCgQ2FsbGdyaW5koG91dHB1dKBjb3JydXB0aW9uoHdoZW6gcHJvZ3JhbaBmb3Jrczxicj4KK6CgMTY3Mjg4oKBQYXRjaKBmaWxloGZvcqBtaXNzaW5noHN5c3RlbaBjYWxsc6BvbqBDZWxsoEJFPGJyPgoroKAxNjg5NDOgoHVuc3VwcG9ydGVkoHNjYXOgaW5zdHJ1Y3Rpb26gcGVudGl1bTxicj4KK6CgMTcxNjQ1oKBVbnJlY29nbmlzZWSgaW5zdHJ1Y3Rpb26gKE1PVlNELKBub24tYmludXRpbHOgZW5jb2RpbmcpPGJyPgoroKAxNzI0MTegoHg4Ni0mZ3Q7SVI6oDB4ODKgLi4uPGJyPgoroKAxNzI1NjOgoGFtZDY0LSZndDtJUjqgMHhEOaAweEY1oKAtoKBmcHJlbTE8YnI+CiugoDE3MzA5OaCgLmxkc6BsaW5rZXKgc2NyaXB0oGdlbmVyYXRpb26gZXJyb3I8YnI+CiugoDE3MzE3N6CgW3g4Nl82NF2gc3lzY2FsbHM6oDEyNS8xMjYvMTc5oChjYXBnZXQvY2Fwc2V0L3F1b3RhY3RsKTxicj4KK6CgMTczNzUxoKBhbWQ2NC0mZ3Q7SVI6oDB4NDigMHhGoDB4NkagMHg0NaAoZXZlbqBtb3JloHJlZHVuZGFudKBwcmVmaXhlcyk8YnI+CiugoDE3NDUzMqCgPT2gMTczNzUxPGJyPgoroKAxNzQ5MDigoC0tbG9nLWZpbGWgdmFsdWWgbm90oGV4cGFuZGVkoGNvcnJlY3RseaBmb3KgY29yZaBmaWxlPGJyPgoroKAxNzUwNDSgoEFkZKBsb29rdXBfZGNvb2tpZaBmb3KgYW1kNjQ8YnI+CiugoDE3NTE1MKCgeDg2LSZndDtJUjqgMHhGMqAweEagMHgxMaAweEMxoChtb3Zzc6Bub24tYmludXRpbHOgZW5jb2RpbmcpPGJyPgorPGJyPgorRGV2ZWxvcGVyLXZpc2libGWgY2hhbmdlczo8YnI+Cis8YnI+CisqoFZhbGdyaW5kJ3OgZGVidWctaW5mb6ByZWFkaW5noG1hY2hpbmVyeaBoYXOgYmVlbqBtYWpvcmx5oG92ZXJoYXVsZWQuPGJyPgoroKBJdKBjYW6gbm93oGNvcnJlY3RseaBlc3RhYmxpc2igdGhloGFkZHJlc3Nlc6Bmb3KgRUxGoGRhdGGgc3ltYm9scyw8YnI+CiugoHdoaWNooGlzoHNvbWV0aGluZ6B0aGF0oGhhc6BuZXZlcqB3b3JrZWSgcHJvcGVybHmgYmVmb3JloG5vdy48YnI+Cis8YnI+CiugoEFsc28soFZhbGdyaW5koGNhbqBub3egcmVhZKBEV0FSRjOgdHlwZaBhbmSgbG9jYXRpb26gaW5mb3JtYXRpb26gZm9yPGJyPgoroKBzdGFja6BhbmSgZ2xvYmFsoHZhcmlhYmxlcy6goFRoaXOgbWFrZXOgaXSgcG9zc2libGWgdG+gdXNloHRoZTxicj4KK6CgZnJhbWV3b3JroHRvoGJ1aWxkoHRvb2xzoHRoYXSgcmVseaBvbqBrbm93aW5noHRoZaB0eXBloGFuZKBsb2NhdGlvbnM8YnI+CiugoG9moHN0YWNroGFuZKBnbG9iYWygdmFyaWFibGVzLKBmb3KgZXhhbXBsZaBleHAtUHRyY2hlY2suPGJyPgorPGJyPgoroKBSZWFkaW5noG9moHN1Y2igaW5mb3JtYXRpb26gaXOgZGlzYWJsZWSgYnmgZGVmYXVsdCygYmVjYXVzZaBtb3N0PGJyPgoroKB0b29sc6Bkb24ndKBuZWVkoGl0LKBhbmSgYmVjYXVzZaBpdKBpc6BleHBlbnNpdmWgaW6gc3BhY2WgYW5koHRpbWUuPGJyPgoroKBIb3dldmVyLKB5b3WgY2FuoGZvcmNloFZhbGdyaW5koHRvoHJlYWSgaXQsoHVzaW5noHRoZTxicj4KK6CgLS1yZWFkLXZhci1pbmZvPXllc6BmbGFnLqCgTWVtY2hlY2ssoEhlbGdyaW5koGFuZKBEUkSgYXJloGFibGWgdG88YnI+CiugoG1ha2WgdXNloG9moHN1Y2igaW5mb3JtYXRpb24soGlmoHByZXNlbnQsoHRvoHByb3ZpZGWgc291cmNlLWxldmVsPGJyPgoroKBkZXNjcmlwdGlvbnOgb2agZGF0YaBhZGRyZXNzZXOgaW6gdGhloGVycm9yoG1lc3NhZ2VzoHRoZXmgY3JlYXRlLjxicj4KKzxicj4KKygzLjQuMC5SQzE6oKAyNKBEZWOgMjAwOCygdmV4oHIxODc4LKB2YWxncmluZKByODg4MikuPGJyPgorKDMuNC4wOqCgoKCgoKAzoEphbqAyMDA5LKB2ZXigcjE4NzgsoHZhbGdyaW5koHI4ODk5KS48YnI+Cis8YnI+CiugoKCgPC9wPjwvZGl2PgorPC9kaXY+Cis8ZGl2PgorPGJyPjx0YWJsZSBjbGFzcz0ibmF2IiB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjMiIGNlbGxwYWRkaW5nPSIyIiBib3JkZXI9IjAiIHN1bW1hcnk9Ik5hdmlnYXRpb24gZm9vdGVyIj4KKzx0cj4KKzx0ZCByb3dzcGFuPSIyIiB3aWR0aD0iNDAlIiBhbGlnbj0ibGVmdCI+Cis8YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImRpc3QuYXV0aG9ycy5odG1sIj4mbHQ7Jmx0O6AxLqBBVVRIT1JTPC9hPqA8L3RkPgorPHRkIHdpZHRoPSIyMCUiIGFsaWduPSJjZW50ZXIiPjxhIGFjY2Vzc2tleT0idSIgaHJlZj0iZGlzdC5odG1sIj5VcDwvYT48L3RkPgorPHRkIHJvd3NwYW49IjIiIHdpZHRoPSI0MCUiIGFsaWduPSJyaWdodCI+oDxhIGFjY2Vzc2tleT0ibiIgaHJlZj0iZGlzdC5uZXdzLm9sZC5odG1sIj4zLqBPTERFUiBORVdToCZndDsmZ3Q7PC9hPgorPC90ZD4KKzwvdHI+Cis8dHI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJjZW50ZXIiPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iaW5kZXguaHRtbCI+SG9tZTwvYT48L3RkPjwvdHI+Cis8L3RhYmxlPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9kb2NzL2h0bWwvZGlzdC5uZXdzLm9sZC5odG1sIGIvZG9jcy9odG1sL2Rpc3QubmV3cy5vbGQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNTc0N2Q1Ci0tLSAvZGV2L251bGwKKysrIGIvZG9jcy9odG1sL2Rpc3QubmV3cy5vbGQuaHRtbApAQCAtMCwwICsxLDIwNDMgQEAKKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj4KKzx0aXRsZT4zLqBPTERFUiBORVdTPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9InZnX2Jhc2ljLmNzcyI+Cis8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkRvY0Jvb2sgWFNMIFN0eWxlc2hlZXRzIFYxLjc4LjEiPgorPGxpbmsgcmVsPSJob21lIiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0iVmFsZ3JpbmQgRG9jdW1lbnRhdGlvbiI+Cis8bGluayByZWw9InVwIiBocmVmPSJkaXN0Lmh0bWwiIHRpdGxlPSJWYWxncmluZCBEaXN0cmlidXRpb24gRG9jdW1lbnRzIj4KKzxsaW5rIHJlbD0icHJldiIgaHJlZj0iZGlzdC5uZXdzLmh0bWwiIHRpdGxlPSIyLqBORVdTIj4KKzxsaW5rIHJlbD0ibmV4dCIgaHJlZj0iZGlzdC5yZWFkbWUuaHRtbCIgdGl0bGU9IjQuoFJFQURNRSI+Cis8L2hlYWQ+Cis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+Cis8ZGl2Pjx0YWJsZSBjbGFzcz0ibmF2IiB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjMiIGNlbGxwYWRkaW5nPSIzIiBib3JkZXI9IjAiIHN1bW1hcnk9Ik5hdmlnYXRpb24gaGVhZGVyIj48dHI+Cis8dGQgd2lkdGg9IjIycHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImRpc3QubmV3cy5odG1sIj48aW1nIHNyYz0iaW1hZ2VzL3ByZXYucG5nIiB3aWR0aD0iMTgiIGhlaWdodD0iMjEiIGJvcmRlcj0iMCIgYWx0PSJQcmV2Ij48L2E+PC90ZD4KKzx0ZCB3aWR0aD0iMjVweCIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPjxhIGFjY2Vzc2tleT0idSIgaHJlZj0iZGlzdC5odG1sIj48aW1nIHNyYz0iaW1hZ2VzL3VwLnBuZyIgd2lkdGg9IjIxIiBoZWlnaHQ9IjE4IiBib3JkZXI9IjAiIGFsdD0iVXAiPjwvYT48L3RkPgorPHRkIHdpZHRoPSIzMXB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJoIiBocmVmPSJpbmRleC5odG1sIj48aW1nIHNyYz0iaW1hZ2VzL2hvbWUucG5nIiB3aWR0aD0iMjciIGhlaWdodD0iMjAiIGJvcmRlcj0iMCIgYWx0PSJVcCI+PC9hPjwvdGQ+Cis8dGggYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPlZhbGdyaW5kIERpc3RyaWJ1dGlvbiBEb2N1bWVudHM8L3RoPgorPHRkIHdpZHRoPSIyMnB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJuIiBocmVmPSJkaXN0LnJlYWRtZS5odG1sIj48aW1nIHNyYz0iaW1hZ2VzL25leHQucG5nIiB3aWR0aD0iMTgiIGhlaWdodD0iMjEiIGJvcmRlcj0iMCIgYWx0PSJOZXh0Ij48L2E+PC90ZD4KKzwvdHI+PC90YWJsZT48L2Rpdj4KKzxkaXYgY2xhc3M9ImNoYXB0ZXIiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgxIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJkaXN0Lm5ld3Mub2xkIj48L2E+My6gT0xERVIgTkVXUzwvaDE+PC9kaXY+PC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJsaXRlcmFsbGF5b3V0Ij48cD48YnI+CiugoKCgoKBSZWxlYXNloDMuMy4xoCg0oEp1bmWgMjAwOCk8YnI+Cit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn48YnI+CiszLjMuMaBmaXhlc6BhoGJ1bmNooG9moGJ1Z3OgaW6gMy4zLjAsoGFkZHOgc3VwcG9ydKBmb3KgZ2xpYmMtMi44oGJhc2VkPGJyPgorc3lzdGVtc6Aob3BlblNVU0WgMTEsoEZlZG9yYaBDb3JloDkpLKBpbXByb3Zlc6B0aGWgZXhpc3RpbmegZ2xpYmMtMi43PGJyPgorc3VwcG9ydCygYW5koGFkZHOgc3VwcG9ydKBmb3KgdGhloFNTU0UzoChDb3JloDIpoGluc3RydWN0aW9uoHNldC48YnI+Cis8YnI+CiszLjMuMaB3aWxsoGxpa2VseaBiZaB0aGWgbGFzdKByZWxlYXNloHRoYXSgc3VwcG9ydHOgc29tZaB2ZXJ5oG9sZDxicj4KK3N5c3RlbXMuoKBJbqBwYXJ0aWN1bGFyLKB0aGWgbmV4dKBtYWpvcqByZWxlYXNlLKAzLjQuMCygd2lsbKBkcm9wPGJyPgorc3VwcG9ydKBmb3KgdGhloG9sZKBMaW51eFRocmVhZHOgdGhyZWFkaW5noGxpYnJhcnksoGFuZKBmb3KgZ2NjPGJyPgordmVyc2lvbnOgcHJpb3KgdG+gMy4wLjxicj4KKzxicj4KK1RoZaBmaXhlZKBidWdzoGFyZaBhc6Bmb2xsb3dzLqCgTm90ZaB0aGF0oCJuLWktYnoioHN0YW5kc6Bmb3KgIm5vdKBpbjxicj4KK2J1Z3ppbGxhIqAtLaB0aGF0oGlzLKBhoGJ1Z6B0aGF0oHdhc6ByZXBvcnRlZKB0b6B1c6BidXSgbmV2ZXKgZ290oGE8YnI+CitidWd6aWxsYaBlbnRyeS6goFdloGVuY291cmFnZaB5b3WgdG+gZmlsZaBidWdzoGluoGJ1Z3ppbGxhPGJyPgorKGh0dHA6Ly9idWdzLmtkZS5vcmcvZW50ZXJfdmFsZ3JpbmRfYnVnLmNnaSmgcmF0aGVyoHRoYW6gbWFpbGluZ6B0aGU8YnI+CitkZXZlbG9wZXJzoChvcqBtYWlsaW5noGxpc3RzKaBkaXJlY3RseaAtLaBidWdzoHRoYXSgYXJloG5vdKBlbnRlcmVkPGJyPgoraW50b6BidWd6aWxsYaB0ZW5koHRvoGdldKBmb3Jnb3R0ZW6gYWJvdXSgb3KgaWdub3JlZC48YnI+Cis8YnI+CituLWktYnqgoE1hc3NpZqBzZWdmYXVsdHOgYXSgZXhpdDxicj4KK24taS1ieqCgTWVtY2hlY2ugYXNzZXJ0c6BvbqBBbHRpdmVjoGNvZGU8YnI+CituLWktYnqgoGZpeKBzaXplb2agYnVnoGluoEhlbGdyaW5kPGJyPgorbi1pLWJ6oKBjaGVja6BmZKBvbqBzeXNfbGxzZWVrPGJyPgorbi1pLWJ6oKB1cGRhdGWgc3lzY2FsbKBsaXN0c6B0b6BrZXJuZWygMi42LjIzLjE8YnI+CituLWktYnqgoHN1cHBvcnSgc3lzX3N5bmNfZmlsZV9yYW5nZTxicj4KK24taS1ieqCgaGFuZGxloHN5c19zeXNpbmZvLKBzeXNfZ2V0cmVzdWlkLKBzeXNfZ2V0cmVzZ2lkoG9uoHBwYzY0LWxpbnV4PGJyPgorbi1pLWJ6oKBpbnRlcmNlcHSgbWVtY3B5oGluoDY0LWJpdKBsZC5zbydzPGJyPgorbi1pLWJ6oKBGaXigd3JhcHBlcnOgZm9yoHN5c197ZnV0aW1lc2F0LHV0aW1lbnNhdH08YnI+CituLWktYnqgoE1pbm9yoGZhbHNlLWVycm9yoGF2b2lkYW5jZaBmaXhlc6Bmb3KgTWVtY2hlY2s8YnI+CituLWktYnqgoGxpYm1waXdyYXAuYzqgYWRkoGGgd3JhcHBlcqBmb3KgTVBJX1dhaXRhbnk8YnI+CituLWktYnqgoGhlbGdyaW5koHN1cHBvcnSgZm9yoGdsaWJjLTIuODxicj4KK24taS1ieqCgcGFydGlhbKBmaXigZm9yoG1jX2xlYWtjaGVjay5jOjY5OKBhc3NlcnQ6PGJyPgoroKCgoKCgoKAnbGNfc2hhZG93c1tpXS0mZ3Q7ZGF0YaAroGxjX3NoYWRvd3NbaV2gLi4uPGJyPgorbi1pLWJ6oKBNYXNzaWYvQ2FjaGVncmluZKBvdXRwdXSgY29ycnVwdGlvbqB3aGVuoHByb2dyYW1zoGZvcms8YnI+CituLWktYnqgoHJlZ2lzdGVyoGFsbG9jYXRvcqBmaXg6oGhhbmRsZaBzcGlsbKBzdG9yZXOgY29ycmVjdGx5PGJyPgorbi1pLWJ6oKBhZGSgc3VwcG9ydKBmb3KgUEE2VKBQb3dlclBDoENQVXM8YnI+CisxMjYzODmgoHZleKB4ODYtJmd0O0lSOqAweEagMHhBRaAoRlhSU1RPUik8YnI+CisxNTg1MjWgoD09MTI2Mzg5PGJyPgorMTUyODE4oKB2ZXigeDg2LSZndDtJUjqgMHhGM6AweEFDoChyZXB6oGxvZHNiKaA8YnI+CisxNTMxOTagoHZleKB4ODYtJmd0O0lSOqAweEYyoDB4QTagKHJlcG56oGNtcHNiKaA8YnI+CisxNTUwMTGgoHZleKB4ODYtJmd0O0lSOqAweENGoChpcmV0KTxicj4KKzE1NTA5MaCgV2FybmluZ6BbLi4uXaB1bmhhbmRsZWSgRFdfT1BfoG9wY29kZaAweDIzPGJyPgorMTU2OTYwoKA9PTE1NTkwMTxicj4KKzE1NTUyOKCgc3VwcG9ydKBDb3JlMi9TU1NFM6BpbnNuc6BvbqB4ODYvYW1kNjQ8YnI+CisxNTU5MjmgoG1zX3ByaW50oGZhaWxzoG9uoG1hc3NpZqBvdXRwdXRzoGNvbnRhaW5pbmegbG9uZ6BsaW5lczxicj4KKzE1NzY2NaCgdmFsZ3JpbmSgZmFpbHOgb26gc2htZHQoMCmgYWZ0ZXKgc2htYXSgdG+gMDxicj4KKzE1Nzc0OKCgc3VwcG9ydKB4ODagUFVTSEZXL1BPUEZXPGJyPgorMTU4MjEyoKBoZWxncmluZDqgaGFuZGxloHB0aHJlYWRfcndsb2NrX3RyeXtyZCx3cn1sb2NrLjxicj4KKzE1ODQyNaCgc3lzX3BvbGygaW5jb3JyZWN0bHmgZW11bGF0ZWSgd2hlbqBSRVM9PTA8YnI+CisxNTg3NDSgoHZleKBhbWQ2NC0mZ3Q7SVI6oDB4RjCgMHg0MaAweEagMHhDMKAoeGFkZGIpPGJyPgorMTYwOTA3oKBTdXBwb3J0oGZvcqBhoGNvdXBsZaBvZqByZWNlbnSgTGludXigc3lzY2FsbHM8YnI+CisxNjEyODWgoFBhdGNooC0toHN1cHBvcnSgZm9yoGV2ZW50ZmQoKaBzeXNjYWxsPGJyPgorMTYxMzc4oKBpbGxlZ2FsoG9wY29kZaBpbqBkZWJ1Z6BsaWJtoChGVUNPTVBQKTxicj4KKzE2MDEzNqCgPT0xNjEzNzg8YnI+CisxNjE0ODegoG51bWJlcqBvZqBzdXBwcmVzc2lvbnOgZmlsZXOgaXOgbGltaXRlZKB0b6AxMDxicj4KKzE2MjM4NqCgbXNfcHJpbnSgdHlwb6BpbqBtaWxsaXNlY29uZHOgdGltZaB1bml0oGZvcqBtYXNzaWY8YnI+CisxNjEwMzagoGV4cC1kcmQ6oGNsaWVudKBhbGxvY2F0ZWSgbWVtb3J5oHdhc6BuZXZlcqBmcmVlZDxicj4KKzE2MjY2M6Cgc2lnbmFsZmRfd3JhcHBlcqBmYWlsc6BvbqA2NGJpdKBsaW51eDxicj4KKzxicj4KKygzLjMuMS5SQzE6oKAyoEp1bmWgMjAwOCygdmV4oHIxODU0LKB2YWxncmluZKByODE2OSkuPGJyPgorKDMuMy4xOqCgoKCgoDSgSnVuZaAyMDA4LKB2ZXigcjE4NTQsoHZhbGdyaW5koHI4MTgwKS48YnI+Cis8YnI+Cis8YnI+Cis8YnI+CitSZWxlYXNloDMuMy4woCg3oERlY2VtYmVyoDIwMDcpPGJyPgorfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fjxicj4KKzMuMy4woGlzoGGgZmVhdHVyZaByZWxlYXNloHdpdGigbWFueaBzaWduaWZpY2FudKBpbXByb3ZlbWVudHOgYW5koHRoZTxicj4KK3VzdWFsoGNvbGxlY3Rpb26gb2agYnVnoGZpeGVzLqCgVGhpc6ByZWxlYXNloHN1cHBvcnRzoFg4Ni9MaW51eCw8YnI+CitBTUQ2NC9MaW51eCygUFBDMzIvTGludXigYW5koFBQQzY0L0xpbnV4LqCgU3VwcG9ydKBmb3KgcmVjZW50oGRpc3Ryb3M8YnI+CisodXNpbmegZ2NjoDQuMyygZ2xpYmOgMi42oGFuZKAyLjcpoGhhc6BiZWVuoGFkZGVkLjxicj4KKzxicj4KK1RoZaBtYWluoGV4Y2l0ZW1lbnSgaW6gMy4zLjCgaXOgbmV3oGFuZKBpbXByb3ZlZKB0b29scy6goEhlbGdyaW5kPGJyPgord29ya3OgYWdhaW4soE1hc3NpZqBoYXOgYmVlbqBjb21wbGV0ZWx5oG92ZXJoYXVsZWSgYW5koG11Y2igaW1wcm92ZWQsPGJyPgorQ2FjaGVncmluZKBub3egZG9lc6BicmFuY2gtbWlzcHJlZGljdGlvbqBwcm9maWxpbmcsoGFuZKBhoG5ld6BjYXRlZ29yeTxicj4KK29moGV4cGVyaW1lbnRhbKB0b29sc6BoYXOgYmVlbqBjcmVhdGVkLKBjb250YWluaW5noHR3b6BuZXegdG9vbHM6PGJyPgorT21lZ2GgYW5koERSRC6goFRoZXJloGFyZaBtYW55oG90aGVyoHNtYWxsZXKgaW1wcm92ZW1lbnRzLqCgSW6gZGV0YWlsOjxicj4KKzxicj4KKy2gSGVsZ3JpbmSgaGFzoGJlZW6gY29tcGxldGVseaBvdmVyaGF1bGVkoGFuZKB3b3Jrc6Bmb3KgdGhloGZpcnN0oHRpbWU8YnI+CiugoHNpbmNloFZhbGdyaW5koDIuMi4wLqCgU3VwcG9ydGVkoGZ1bmN0aW9uYWxpdHmgaXM6oGRldGVjdGlvbqBvZjxicj4KK6CgbWlzdXNlc6BvZqB0aGWgUE9TSVigUFRocmVhZHOgQVBJLKBkZXRlY3Rpb26gb2agcG90ZW50aWFsoGRlYWRsb2Nrczxicj4KK6CgcmVzdWx0aW5noGZyb22gY3ljbGljoGxvY2ugZGVwZW5kZW5jaWVzLKBhbmSgZGV0ZWN0aW9uoG9moGRhdGE8YnI+CiugoHJhY2VzLqCgQ29tcGFyZWSgdG+gdGhloDIuMi4woEhlbGdyaW5kLKB0aGWgcmFjZaBkZXRlY3Rpb26gYWxnb3JpdGhtPGJyPgoroKBoYXOgc29tZaBzaWduaWZpY2FudKBpbXByb3ZlbWVudHOgYWltZWSgYXSgcmVkdWNpbmegdGhloGZhbHNloGVycm9yPGJyPgoroKByYXRlLqCgSGFuZGxpbmegb2agdmFyaW91c6BraW5kc6BvZqBjb3JuZXKgY2FzZXOgaGFzoGJlZW6gaW1wcm92ZWQuPGJyPgoroKBFZmZvcnRzoGhhdmWgYmVlbqBtYWRloHRvoG1ha2WgdGhloGVycm9yoG1lc3NhZ2VzoGVhc2llcqB0bzxicj4KK6CgdW5kZXJzdGFuZC6goEV4dGVuc2l2ZaBkb2N1bWVudGF0aW9uoGlzoHByb3ZpZGVkLjxicj4KKzxicj4KKy2gTWFzc2lmoGhhc6BiZWVuoGNvbXBsZXRlbHmgb3ZlcmhhdWxlZC6goEluc3RlYWSgb2agbWVhc3VyaW5nPGJyPgoroKBzcGFjZS10aW1loHVzYWdloC0toHdoaWNooHdhc24ndKBhbHdheXOgdXNlZnVsoGFuZKBtYW55oHBlb3BsZaBmb3VuZDxicj4KK6CgY29uZnVzaW5noC0toGl0oG5vd6BtZWFzdXJlc6BzcGFjZaB1c2FnZaBhdKB2YXJpb3VzoHBvaW50c6BpbqB0aGU8YnI+CiugoGV4ZWN1dGlvbiygaW5jbHVkaW5noHRoZaBwb2ludKBvZqBwZWFroG1lbW9yeaBhbGxvY2F0aW9uLqCgSXRzPGJyPgoroKBvdXRwdXSgZm9ybWF0oGhhc6BhbHNvoGNoYW5nZWQ6oGluc3RlYWSgb2agcHJvZHVjaW5noFBvc3RTY3JpcHQ8YnI+CiugoGdyYXBoc6BhbmSgSFRNTKB0ZXh0LKBpdKBwcm9kdWNlc6BhoHNpbmdsZaB0ZXh0oG91dHB1dKAodmlhoHRoZaBuZXc8YnI+CiugoCdtc19wcmludCegc2NyaXB0KaB0aGF0oGNvbnRhaW5zoGJvdGigYaBncmFwaKBhbmSgdGhloG9sZKB0ZXh0dWFsPGJyPgoroKBpbmZvcm1hdGlvbiygYnV0oGluoGGgbW9yZaBjb21wYWN0oGFuZKByZWFkYWJsZaBmb3JtLqCgRmluYWxseSygdGhlPGJyPgoroKBuZXegdmVyc2lvbqBzaG91bGSgYmWgbW9yZaByZWxpYWJsZaB0aGFuoHRoZaBvbGSgb25lLKBhc6BpdKBoYXOgYmVlbjxicj4KK6CgdGVzdGVkoG1vcmWgdGhvcm91Z2hseS48YnI+Cis8YnI+CistoENhY2hlZ3JpbmSgaGFzoGJlZW6gZXh0ZW5kZWSgdG+gZG+gYnJhbmNoLW1pc3ByZWRpY3Rpb26gcHJvZmlsaW5nLjxicj4KK6CgQm90aKBjb25kaXRpb25hbKBhbmSgaW5kaXJlY3SgYnJhbmNoZXOgYXJloHByb2ZpbGVkLqCgVGhloGRlZmF1bHQ8YnI+CiugoGJlaGF2aW91cqBvZqBDYWNoZWdyaW5koGlzoHVuY2hhbmdlZC6goFRvoHVzZaB0aGWgbmV3oGZ1bmN0aW9uYWxpdHksPGJyPgoroKBnaXZloHRoZaBvcHRpb26gLS1icmFuY2gtc2ltPXllcy48YnI+Cis8YnI+CistoEGgbmV3oGNhdGVnb3J5oG9moCJleHBlcmltZW50YWygdG9vbHMioGhhc6BiZWVuoGNyZWF0ZWQuoKBTdWNooHRvb2xzPGJyPgoroKBtYXmgbm90oHdvcmugYXOgd2VsbKBhc6B0aGWgc3RhbmRhcmSgdG9vbHMsoGJ1dKBhcmWgaW5jbHVkZWSgYmVjYXVzZTxicj4KK6Cgc29tZaBwZW9wbGWgd2lsbKBmaW5koHRoZW2gdXNlZnVsLKBhbmSgYmVjYXVzZaBleHBvc3VyZaB0b6BhoHdpZGVyPGJyPgoroKB1c2VyoGdyb3VwoHByb3ZpZGVzoHRvb2ygYXV0aG9yc6B3aXRooG1vcmWgZW5kLXVzZXKgZmVlZGJhY2suoKBUaGVzZTxicj4KK6CgdG9vbHOgaGF2ZaBhoCJleHAtIqBwcmVmaXigYXR0YWNoZWSgdG+gdGhlaXKgbmFtZXOgdG+gaW5kaWNhdGWgdGhlaXI8YnI+CiugoGV4cGVyaW1lbnRhbKBuYXR1cmUuoKBDdXJyZW50bHmgdGhlcmWgYXJloHR3b6BleHBlcmltZW50YWygdG9vbHM6PGJyPgorPGJyPgoroKAqoGV4cC1PbWVnYTqgYW6gaW5zdGFudGFuZW91c6BsZWFroGRldGVjdG9yLqCgU2VlPGJyPgoroKCgoGV4cC1vbWVnYS9kb2NzL29tZWdhX2ludHJvZHVjdGlvbi50eHQuPGJyPgorPGJyPgoroKAqoGV4cC1EUkQ6oGGgZGF0YaByYWNloGRldGVjdG9yoGJhc2VkoG9uoHRoZaBoYXBwZW5zLWJlZm9yZTxicj4KK6CgoKByZWxhdGlvbi6goFNlZaBleHAtZHJkL2RvY3MvUkVBRE1FLnR4dC48YnI+Cis8YnI+CistoFNjYWxhYmlsaXR5oGltcHJvdmVtZW50c6Bmb3KgdmVyeaBsYXJnZaBwcm9ncmFtcyygcGFydGljdWxhcmx5oHRob3NlPGJyPgoroKB3aGljaKBoYXZloGGgbWlsbGlvbqBvcqBtb3JloG1hbGxvYydkoGJsb2Nrc6BpbqB1c2WgYXSgb25jZS6goFRoZXNlPGJyPgoroKBpbXByb3ZlbWVudHOgbW9zdGx5oGFmZmVjdKBNZW1jaGVjay6goE1lbWNoZWNroGlzoGFsc2+gdXCgdG+gMTAlPGJyPgoroKBmYXN0ZXKgZm9yoGFsbKBwcm9ncmFtcyygd2l0aKB4ODYtbGludXigc2VlaW5noHRoZaBsYXJnZXN0PGJyPgoroKBpbXByb3ZlbWVudC48YnI+Cis8YnI+CistoFdvcmtzoHdlbGygb26gdGhloGxhdGVzdKBMaW51eKBkaXN0cm9zLqCgSGFzoGJlZW6gdGVzdGVkoG9uoEZlZG9yYTxicj4KK6CgQ29yZaA4oCh4ODYsoGFtZDY0LKBwcGMzMiygcHBjNjQpoGFuZKBvcGVuU1VTRaAxMC4zLqCgZ2xpYmOgMi42oGFuZDxicj4KK6CgMi43oGFyZaBzdXBwb3J0ZWQuoKBnY2MtNC4zoChpbqBpdHOgY3VycmVudKBwcmUtcmVsZWFzZaBzdGF0ZSmgaXM8YnI+CiugoHN1cHBvcnRlZC6goEF0oHRoZaBzYW1loHRpbWUsoDMuMy4woHJldGFpbnOgc3VwcG9ydKBmb3Kgb2xkZXI8YnI+CiugoGRpc3Ryb3MuPGJyPgorPGJyPgorLaBUaGWgZG9jdW1lbnRhdGlvbqBoYXOgYmVlbqBtb2Rlc3RseaByZW9yZ2FuaXNlZKB3aXRooHRoZaBhaW2gb2Y8YnI+CiugoG1ha2luZ6BpdKBlYXNpZXKgdG+gZmluZKBpbmZvcm1hdGlvbqBvbqBjb21tb24tdXNhZ2Wgc2NlbmFyaW9zLjxicj4KK6CgU29tZaBhZHZhbmNlZKBtYXRlcmlhbKBoYXOgYmVlbqBtb3ZlZKBpbnRvoGGgbmV3oGNoYXB0ZXKgaW6gdGhloG1haW48YnI+CiugoG1hbnVhbCygc2+gYXOgdG+gdW5jbHV0dGVyoHRoZaBtYWluoGZsb3csoGFuZKBvdGhlcqB0aWR5aW5noHVwoGhhczxicj4KK6CgYmVlbqBkb25lLjxicj4KKzxicj4KKy2gVGhlcmWgaXOgZXhwZXJpbWVudGFsoHN1cHBvcnSgZm9yoEFJWKA1LjMsoGJvdGigMzItYml0oGFuZKA2NC1iaXQ8YnI+CiugoHByb2Nlc3Nlcy6goFlvdaBuZWVkoHRvoGJloHJ1bm5pbmegYaA2NC1iaXSga2VybmVsoHRvoHVzZaBWYWxncmluZDxicj4KK6Cgb26gYaA2NC1iaXSgZXhlY3V0YWJsZS48YnI+Cis8YnI+CistoFRoZXJloGhhdmWgYmVlbqBzb21loGNoYW5nZXOgdG+gY29tbWFuZKBsaW5loG9wdGlvbnMsoHdoaWNooG1heTxicj4KK6CgYWZmZWN0oHlvdTo8YnI+Cis8YnI+CiugoCqgLS1sb2ctZmlsZS1leGFjdGx5oGFuZKA8YnI+CiugoKCgLS1sb2ctZmlsZS1xdWFsaWZpZXKgb3B0aW9uc6BoYXZloGJlZW6gcmVtb3ZlZC48YnI+Cis8YnI+CiugoKCgVG+gbWFrZaB1cKBmb3KgdGhpc6AtLWxvZy1maWxloG9wdGlvbqBoYXOgYmVlbqBtYWRloG1vcmWgcG93ZXJmdWwuPGJyPgoroKCgoEl0oG5vd6BhY2NlcHRzoGGgJXCgZm9ybWF0oHNwZWNpZmllciygd2hpY2igaXOgcmVwbGFjZWSgd2l0aKB0aGU8YnI+CiugoKCgcHJvY2Vzc6BJRCygYW5koGGgJXF7Rk9PfaBmb3JtYXSgc3BlY2lmaWVyLKB3aGljaKBpc6ByZXBsYWNlZKB3aXRoPGJyPgoroKCgoHRoZaBjb250ZW50c6BvZqB0aGWgZW52aXJvbm1lbnSgdmFyaWFibGWgRk9PLjxicj4KKzxicj4KK6CgKqAtLWNoaWxkLXNpbGVudC1hZnRlci1mb3JrPXllc3xub6Bbbm9dPGJyPgorPGJyPgoroKCgoENhdXNlc6BWYWxncmluZKB0b6Bub3Sgc2hvd6BhbnmgZGVidWdnaW5noG9yoGxvZ2dpbmegb3V0cHV0oGZvcjxicj4KK6CgoKB0aGWgY2hpbGSgcHJvY2Vzc6ByZXN1bHRpbmegZnJvbaBhoGZvcmsoKaBjYWxsLqCgVGhpc6BjYW6gbWFrZaB0aGU8YnI+CiugoKCgb3V0cHV0oGxlc3OgY29uZnVzaW5noChhbHRob3VnaKBtb3JloG1pc2xlYWRpbmcpoHdoZW6gZGVhbGluZ6B3aXRoPGJyPgoroKCgoHByb2Nlc3Nlc6B0aGF0oGNyZWF0ZaBjaGlsZHJlbi48YnI+Cis8YnI+CiugoCqgLS1jYWNoZWdyaW5kLW91dC1maWxlLKAtLWNhbGxncmluZC1vdXQtZmlsZaBhbmSgLS1tYXNzaWYtb3V0LWZpbGU8YnI+Cis8YnI+CiugoKCgVGhlc2WgY29udHJvbKB0aGWgbmFtZXOgb2agdGhloG91dHB1dKBmaWxlc6Bwcm9kdWNlZKBieTxicj4KK6CgoKBDYWNoZWdyaW5kLKBDYWxsZ3JpbmSgYW5koE1hc3NpZi6goFRoZXmgYWNjZXB0oHRoZaBzYW1loCVwoGFuZKAlcTxicj4KK6CgoKBmb3JtYXSgc3BlY2lmaWVyc6B0aGF0oC0tbG9nLWZpbGWgYWNjZXB0cy6goC0tY2FsbGdyaW5kLW91dC1maWxlPGJyPgoroKCgoHJlcGxhY2VzoENhbGxncmluZCdzoG9sZKAtLWJhc2Wgb3B0aW9uLjxicj4KKzxicj4KK6CgKqBDYWNoZWdyaW5kJ3OgJ2NnX2Fubm90YXRlJ6BzY3JpcHSgbm+gbG9uZ2VyoHVzZXOgdGhloC0tJmx0O3BpZCZndDs8YnI+CiugoKCgb3B0aW9uoHRvoHNwZWNpZnmgdGhloG91dHB1dKBmaWxlLqCgSW5zdGVhZCygdGhloGZpcnN0oG5vbi1vcHRpb248YnI+CiugoKCgYXJndW1lbnSgaXOgdGFrZW6gdG+gYmWgdGhloG5hbWWgb2agdGhloG91dHB1dKBmaWxlLKBhbmSgYW55PGJyPgoroKCgoHN1YnNlcXVlbnSgbm9uLW9wdGlvbqBhcmd1bWVudHOgYXJloHRha2VuoHRvoGJloHRoZaBuYW1lc6BvZjxicj4KK6CgoKBzb3VyY2WgZmlsZXOgdG+gYmWgYW5ub3RhdGVkLjxicj4KKzxicj4KK6CgKqBDYWNoZWdyaW5koGFuZKBDYWxsZ3JpbmSgbm93oHVzZaBkaXJlY3RvcnmgbmFtZXOgd2hlcmWgcG9zc2libGWgaW48YnI+CiugoKCgdGhlaXKgb3V0cHV0oGZpbGVzLqCgVGhpc6BtZWFuc6B0aGF0oHRoZaAtSaBvcHRpb26gdG88YnI+CiugoKCgJ2NnX2Fubm90YXRlJ6BhbmSgJ2NhbGxncmluZF9hbm5vdGF0ZSegc2hvdWxkoG5vdKBiZaBuZWVkZWSgaW48YnI+CiugoKCgbW9zdKBjYXNlcy6goEl0oGFsc2+gbWVhbnOgdGhleaBjYW6gY29ycmVjdGx5oGhhbmRsZaB0aGWgY2FzZTxicj4KK6CgoKB3aGVyZaB0d2+gc291cmNloGZpbGVzoGluoGRpZmZlcmVudKBkaXJlY3Rvcmllc6BoYXZloHRoZaBzYW1lPGJyPgoroKCgoG5hbWUuPGJyPgorPGJyPgorLaBNZW1jaGVja6BvZmZlcnOgYaBuZXegc3VwcHJlc3Npb26ga2luZDqgIkp1bXAiLqCgVGhpc6Bpc6Bmb3I8YnI+CiugoHN1cHByZXNzaW5noGp1bXAtdG8taW52YWxpZC1hZGRyZXNzoGVycm9ycy6goFByZXZpb3VzbHmgeW91oGhhZKB0bzxicj4KK6CgdXNloGFuoCJBZGRyMSKgc3VwcHJlc3Npb24soHdoaWNooGRpZG4ndKBtYWtloG11Y2igc2Vuc2UuPGJyPgorPGJyPgorLaBNZW1jaGVja6BoYXOgbmV3oGZsYWdzoC0tbWFsbG9jLWZpbGw9Jmx0O2hleG51bSZndDugYW5kPGJyPgoroKAtLWZyZWUtZmlsbD0mbHQ7aGV4bnVtJmd0O6B3aGljaKBmcmVloG1hbGxvYydkoC+gZnJlZSdkoGFyZWFzoHdpdGigdGhlPGJyPgoroKBzcGVjaWZpZWSgYnl0ZS6goFRoaXOgY2FuoGhlbHCgc2hha2Wgb3V0oG9ic2N1cmWgbWVtb3J5oGNvcnJ1cHRpb248YnI+CiugoHByb2JsZW1zLqCgVGhloGRlZmluZWRuZXNzoGFuZKBhZGRyZXNzYWJpbGl0eaBvZqB0aGVzZaBhcmVhc6Bpczxicj4KK6CgdW5jaGFuZ2VkoC0toG9ubHmgdGhloGNvbnRlbnRzoGFyZaBhZmZlY3RlZC48YnI+Cis8YnI+CistoFRoZaBiZWhhdmlvdXKgb2agTWVtY2hlY2snc6BjbGllbnSgcmVxdWVzdHOgVkFMR1JJTkRfR0VUX1ZCSVRToGFuZDxicj4KK6CgVkFMR1JJTkRfU0VUX1ZCSVRToGhhdmWgY2hhbmdlZKBzbGlnaHRseS6goFRoZXmgbm+gbG9uZ2VyoGlzc3VlPGJyPgoroKBhZGRyZXNzYWJpbGl0eaBlcnJvcnOgLS2gaWagZWl0aGVyoGFycmF5oGlzoHBhcnRpYWxseaB1bmFkZHJlc3NhYmxlLDxicj4KK6CgdGhleaBqdXN0oHJldHVybqAzoChhc6BiZWZvcmUpLqCgQWxzbyygU0VUX1ZCSVRToGRvZXNuJ3SgcmVwb3J0PGJyPgoroKBkZWZpbmVkbmVzc6BlcnJvcnOgaWagYW55oG9moHRoZaBWoGJpdHOgYXJloHVuZGVmaW5lZC48YnI+Cis8YnI+CistoFRoZaBmb2xsb3dpbmegTWVtY2hlY2ugY2xpZW50oHJlcXVlc3RzoGhhdmWgYmVlbqByZW1vdmVkOjxicj4KK6CgoKBWQUxHUklORF9NQUtFX05PQUNDRVNTPGJyPgoroKCgoFZBTEdSSU5EX01BS0VfV1JJVEFCTEU8YnI+CiugoKCgVkFMR1JJTkRfTUFLRV9SRUFEQUJMRTxicj4KK6CgoKBWQUxHUklORF9DSEVDS19XUklUQUJMRTxicj4KK6CgoKBWQUxHUklORF9DSEVDS19SRUFEQUJMRTxicj4KK6CgoKBWQUxHUklORF9DSEVDS19ERUZJTkVEPGJyPgoroKBUaGV5oHdlcmWgZGVwcmVjYXRlZKBpbqAzLjIuMCygd2hlbqBlcXVpdmFsZW50oGJ1dKBiZXR0ZXItbmFtZWSgY2xpZW50PGJyPgoroKByZXF1ZXN0c6B3ZXJloGFkZGVkLqCgU2VloHRoZaAzLjIuMKByZWxlYXNloG5vdGVzoGZvcqBtb3JloGRldGFpbHMuPGJyPgorPGJyPgorLaBUaGWgYmVoYXZpb3VyoG9moHRoZaB0b29soExhY2tleaBoYXOgY2hhbmdlZKBzbGlnaHRseS6goEZpcnN0LKB0aGWgb3V0cHV0PGJyPgoroKBmcm9toC0tdHJhY2UtbWVtoGhhc6BiZWVuoG1hZGWgbW9yZaBjb21wYWN0LKB0b6ByZWR1Y2WgdGhloHNpemWgb2agdGhlPGJyPgoroKB0cmFjZXMuoKBTZWNvbmQsoGGgbmV3oG9wdGlvbqAtLXRyYWNlLXN1cGVyYmxvY2tzoGhhc6BiZWVuoGFkZGVkLKB3aGljaDxicj4KK6Cgc2hvd3OgdGhloGFkZHJlc3Nlc6BvZqBzdXBlcmJsb2Nrc6AoY29kZaBibG9ja3MpoGFzoHRoZXmgYXJloGV4ZWN1dGVkLjxicj4KKzxicj4KKy2gVGhloGZvbGxvd2luZ6BidWdzoGhhdmWgYmVlbqBmaXhlZC6goE5vdGWgdGhhdKAibi1pLWJ6IqBzdGFuZHOgZm9yPGJyPgoroKAibm90oGluoGJ1Z3ppbGxhIqAtLaB0aGF0oGlzLKBhoGJ1Z6B0aGF0oHdhc6ByZXBvcnRlZKB0b6B1c6BidXQ8YnI+CiugoG5ldmVyoGdvdKBhoGJ1Z3ppbGxhoGVudHJ5LqCgV2WgZW5jb3VyYWdloHlvdaB0b6BmaWxloGJ1Z3OgaW48YnI+CiugoGJ1Z3ppbGxhoChodHRwOi8vYnVncy5rZGUub3JnL2VudGVyX3ZhbGdyaW5kX2J1Zy5jZ2kpoHJhdGhlcqB0aGFuPGJyPgoroKBtYWlsaW5noHRoZaBkZXZlbG9wZXJzoChvcqBtYWlsaW5noGxpc3RzKaBkaXJlY3RseS48YnI+Cis8YnI+CiugoG4taS1ieqCgeDg2X2xpbnV4X1JFRElSX0ZPUl9pbmRleCgpoGJyb2tlbjxicj4KK6Cgbi1pLWJ6oKBndWVzdC1hbWQ2NC90b0lSLmM6MjUxMqAoZGlzX29wMl9FX0cpOqBBc3NlcnRpb26gYDAnoGZhaWxlZC48YnI+CiugoG4taS1ieqCgU3VwcG9ydKB4ODagSU5UoGluc26gKElOVKAoMHhDRCmgMHg0MKAtoDB4NDMpPGJyPgoroKBuLWktYnqgoEFkZKBzeXNfdXRpbWVuc2F0oHN5c3RlbaBjYWxsoGZvcqBMaW51eKB4ODagcGxhdGZvcm08YnI+CiugoKA3OTg0NKCgSGVsZ3JpbmSgY29tcGxhaW5zoGFib3V0oHJhY2WgY29uZGl0aW9uoHdoaWNooGRvZXOgbm90oGV4aXN0PGJyPgoroKCgODI4NzGgoE1hc3NpZqBvdXRwdXSgZnVuY3Rpb26gbmFtZXOgdG9voHNob3J0PGJyPgoroKCgODkwNjGgoE1hc3NpZjqgbXNfbWFpbi5jOjQ4NaAoZ2V0X1hDb24pOqBBc3NlcnRpb26gYHhwdC0mZ3Q7bWF4X2NoaS4uLic8YnI+CiugoKA5MjYxNaCgV3JpdGWgb3V0cHV0oGZyb22gTWFzc2lmoGF0oGNyYXNoPGJyPgoroKCgOTU0ODOgoG1hc3NpZqBmZWF0dXJloHJlcXVlc3Q6oGluY2x1ZGWgcGVha6BhbGxvY2F0aW9uoGluoHJlcG9ydDxicj4KK6CgMTEyMTYzoKBNQVNTSUagY3Jhc2hlZKB3aXRooHNpZ25hbKA3oChTSUdCVVMpoGFmdGVyoHJ1bm5pbmegMqBkYXlzPGJyPgoroKAxMTk0MDSgoHByb2JsZW1zoHJ1bm5pbmegc2V0dWlkoGV4ZWN1dGFibGVzoChwYXJ0aWFsoGZpeCk8YnI+CiugoDEyMTYyOaCgYWRkoGluc3RydWN0aW9uLWNvdW50aW5noG1vZGWgZm9yoHRpbWluZzxicj4KK6CgMTI3MzcxoKBqYXZhoHZtoGdpdmluZ6B1bmhhbmRsZWSgaW5zdHJ1Y3Rpb26gYnl0ZXM6oDB4MjagMHgyRaAweDY0oDB4NjU8YnI+CiugoDEyOTkzN6CgPT0xNTAzODA8YnI+CiugoDEyOTU3NqCgTWFzc2lmoGxvc2VzoHRyYWNroG9moG1lbW9yeSygaW5jb3JyZWN0oGdyYXBoczxicj4KK6CgMTMyMTMyoKBtYXNzaWagLS1mb3JtYXQ9aHRtbKBvdXRwdXSgZG9lc6Bub3SgZG+gaHRtbKBlbnRpdHmgZXNjYXBpbmc8YnI+CiugoDEzMjk1MKCgSGVhcKBhbGxvYy91c2FnZaBzdW1tYXJ5PGJyPgoroKAxMzM5NjKgoHVuaGFuZGxlZKBpbnN0cnVjdGlvbqBieXRlczqgMHhGMqAweDRDoDB4RqAweDEwPGJyPgoroKAxMzQ5OTCgoHVzZaAtZm5vLXN0YWNrLXByb3RlY3RvcqBpZqBwb3NzaWJsZTxicj4KK6CgMTM2MzgyoKA9PTEzNDk5MDxicj4KK6CgMTM3Mzk2oKBJoHdvdWxkoHJlYWxseaBsaWtloGhlbGdyaW5koHRvoHdvcmugYWdhaW4uLi48YnI+CiugoDEzNzcxNKCgeDg2L2FtZDY0LSZndDtJUjqgMHg2NqAweEagMHhGN6AweEM2oChtYXNrbW92cSygbWFza21vdmRxKTxicj4KK6CgMTQxNjMxoKBNYXNzaWY6oHBlcmNlbnRhZ2VzoGRvbid0oGFkZKB1cKBjb3JyZWN0bHk8YnI+CiugoDE0MjcwNqCgbWFzc2lmoG51bWJlcnOgZG9uJ3Sgc2VlbaB0b6BhZGSgdXA8YnI+CiugoDE0MzA2MqCgbWFzc2lmoGNyYXNoZXOgb26gYXBwoGV4aXSgd2l0aKBzaWduYWygOKBTSUdGUEU8YnI+CiugoDE0NDQ1M6CgKGdldF9YQ29uKTqgQXNzZXJ0aW9uoCd4cHQtJmd0O21heF9jaGlsZHJlbqAhPaAwJ6BmYWlsZWQuPGJyPgoroKAxNDU1NTmgoHZhbGdyaW5koGFib3J0c6B3aGVuoG1hbGxvY19zdGF0c6Bpc6BjYWxsZWQ8YnI+CiugoDE0NTYwOaCgdmFsZ3JpbmSgYWJvcnRzoGFsbKBydW5zoHdpdGigJ3JlcGVhdGVkoHNlY3Rpb24hJzxicj4KK6CgMTQ1NjIyoKAtLWRiLWF0dGFjaKBicm9rZW6gYWdhaW6gb26geDg2LTY0PGJyPgoroKAxNDU4MzegoD09MTQ5NTE5PGJyPgoroKAxNDU4ODegoFBQQzMyOqBnZXRpdGltZXIoKaBzeXN0ZW2gY2FsbKBpc6Bub3Sgc3VwcG9ydGVkPGJyPgoroKAxNDYyNTKgoD09MTUwNjc4PGJyPgoroKAxNDY0NTagoCh1cGRhdGVfWENvbik6oEFzc2VydGlvbqAneHB0LSZndDtjdXJyX3NwYWNloCZndDs9oC1zcGFjZV9kZWx0YScuLi48YnI+CiugoDE0NjcwMaCgPT0xMzQ5OTA8YnI+CiugoDE0Njc4MaCgQWRkaW5noHN1cHBvcnSgZm9yoHByaXZhdGWgZnV0ZXhlczxicj4KK6CgMTQ3MzI1oKB2YWxncmluZKBpbnRlcm5hbKBlcnJvcqBvbqBzeXNjYWxsoChTWVNfaW9fZGVzdHJveSygMCk8YnI+CiugoDE0NzQ5OKCgYW1kNjQtJmd0O0lSOqAweEYwoDB4RqAweEIwoDB4RqAobG9ja6BjbXB4Y2hnoCVjbCwoJXJkaSkpPGJyPgoroKAxNDc1NDWgoE1lbWNoZWNrOqBtY19tYWluLmM6ODE3oChnZXRfc2VjX3ZiaXRzOCk6oEFzc2VydGlvbqAnbiegZmFpbGVkLjxicj4KK6CgMTQ3NjI4oKBTQUxDoG9wY29kZaAweGQ2oHVuaW1wbGVtZW50ZWQ8YnI+CiugoDE0NzgyNaCgY3Jhc2igb26gYW1kNjQtbGludXigd2l0aKBnY2OgNC4yoGFuZKBnbGliY6AyLjagKENGSSk8YnI+CiugoDE0ODE3NKCgSW5jb3JyZWN0oHR5cGWgb2agZnJlZWRfbGlzdF92b2x1bWWgY2F1c2VzoGFzc2VydGlvbqBbLi4uXTxicj4KK6CgMTQ4NDQ3oKB4ODZfNjSgOqBuZXegTk9QoGNvZGVzOqA2NqA2NqA2NqA2NqAyZaAwZqAxZjxicj4KK6CgMTQ5MTgyoKBQUEOgVHJhcKBpbnN0cnVjdGlvbnOgbm90oGltcGxlbWVudGVkoGluoHZhbGdyaW5kPGJyPgoroKAxNDk1MDSgoEFzc2VydGlvbqBoaXSgb26gYWxsb2NfeHB0LSZndDtjdXJyX3NwYWNloCZndDs9oC1zcGFjZV9kZWx0YTxicj4KK6CgMTQ5NTE5oKBwcGMzMjqgVqBhYm9ydHOgd2l0aKBTSUdTRUdWoG9uoGV4ZWN1dGlvbqBvZqBhoHNpZ25hbKBoYW5kbGVyPGJyPgoroKAxNDk4OTKgoD09MTM3NzE0PGJyPgoroKAxNTAwNDSgoFNFR1agZHVyaW5noHN0YWNroGRlcmVnaXN0ZXI8YnI+CiugoDE1MDM4MKCgZHdhcmYvZ2NjoGludGVyb3BlcmF0aW9uoChkd2FyZjOgcmVhZKBwcm9ibGVtcyk8YnI+CiugoDE1MDQwOKCgPT0xNDg0NDc8YnI+CiugoDE1MDY3OKCgZ3Vlc3QtYW1kNjQvdG9JUi5jOjM3NDGgKGRpc19HcnA1KTqgQXNzZXJ0aW9uoGBzeqA9PaA0J6BmYWlsZWQ8YnI+CiugoDE1MTIwOaCgVqB1bmFibGWgdG+gZXhlY3V0ZaBwcm9ncmFtc6Bmb3KgdXNlcnOgd2l0aKBVSUSgJmd0O6AyXjE2PGJyPgoroKAxNTE5MzigoGhlbHCgb26gLS1kYi1jb21tYW5kPaBtaXNsZWFkaW5nPGJyPgoroKAxNTIwMjKgoHN1YnegJDB4MjgsoCUlc3CgY2F1c2VzoGFzc2VydGlvbqBmYWlsdXJloGluoG1lbWNoZWNrPGJyPgoroKAxNTIzNTegoGluYqBhbmSgb3V0YqBub3SgcmVjb2duaXplZKBpbqA2NC1iaXSgbW9kZTxicj4KK6CgMTUyNTAxoKB2ZXigeDg2LSZndDtJUjqgMHgyN6AweDY2oDB4ODmgMHg0NaAoZGFhKaA8YnI+CiugoDE1MjgxOKCgdmV4oHg4Ni0mZ3Q7SVI6oDB4RjOgMHhBQ6AweEZDoDB4OUOgKHJlcKBsb2RzYik8YnI+Cis8YnI+CitEZXZlbG9wZXItdmlzaWJsZaBjaGFuZ2VzOjxicj4KKzxicj4KKy2gVGhloG5hbWVzoG9moHNvbWWgZnVuY3Rpb25zoGFuZKB0eXBlc6B3aXRoaW6gdGhloFZleKBJUqBoYXZlPGJyPgoroKBjaGFuZ2VkLqCgUnVuoCdzdm6gbG9noC1yMTY4OaBWRVgvcHViL2xpYnZleF9pci5oJ6Bmb3KgZnVsbKBkZXRhaWxzLjxicj4KK6CgQW55oGV4aXN0aW5noHN0YW5kYWxvbmWgdG9vbHOgd2lsbKBoYXZloHRvoGJloHVwZGF0ZWSgdG+gcmVmbGVjdDxicj4KK6CgdGhlc2WgY2hhbmdlcy6goFRoZaBuZXegbmFtZXOgc2hvdWxkoGJloGNsZWFyZXIuoKBUaGWgZmlsZTxicj4KK6CgVkVYL3B1Yi9saWJ2ZXhfaXIuaKBpc6BhbHNvoG11Y2igYmV0dGVyoGNvbW1lbnRlZC48YnI+Cis8YnI+CistoEGgbnVtYmVyoG9moG5ld6BkZWJ1Z2dpbmegY29tbWFuZKBsaW5loG9wdGlvbnOgaGF2ZaBiZWVuoGFkZGVkLjxicj4KK6CgVGhlc2WgYXJloG1vc3RseaBvZqB1c2WgZm9yoGRlYnVnZ2luZ6B0aGWgc3ltYm9soHRhYmxloGFuZKBsaW5lPGJyPgoroKBudW1iZXKgcmVhZGVyczo8YnI+Cis8YnI+CiugoC0tdHJhY2Utc3ltdGFiLXBhdHQ9Jmx0O3BhdHQmZ3Q7oGxpbWl0oGRlYnVnaW5mb6B0cmFjaW5noHRvoG9iaqBuYW1loCZsdDtwYXR0Jmd0Ozxicj4KK6CgLS10cmFjZS1jZmk9bm98eWVzoKCgoKCgoKBzaG93oGNhbGwtZnJhbWUtaW5mb6BkZXRhaWxzP6Bbbm9dPGJyPgoroKAtLWRlYnVnLWR1bXA9c3ltc6CgoKCgoKCgoG1pbWljoC91c3IvYmluL3JlYWRlbGagLS1zeW1zPGJyPgoroKAtLWRlYnVnLWR1bXA9bGluZaCgoKCgoKCgoG1pbWljoC91c3IvYmluL3JlYWRlbGagLS1kZWJ1Zy1kdW1wPWxpbmU8YnI+CiugoC0tZGVidWctZHVtcD1mcmFtZXOgoKCgoKCgbWltaWOgL3Vzci9iaW4vcmVhZGVsZqAtLWRlYnVnLWR1bXA9ZnJhbWVzPGJyPgoroKAtLXN5bS1vZmZzZXRzPXllc3xub6CgoKCgoHNob3egc3ltc6BpbqBmb3JtoCduYW1lK29mZnNldCegP6Bbbm9dPGJyPgorPGJyPgorLaBJbnRlcm5hbGx5LKB0aGWgY29kZaBiYXNloGhhc6BiZWVuoGZ1cnRoZXKgZmFjdG9yaXNlZKBhbmQ8YnI+CiugoGFic3RyYWN0aWZpZWQsoHBhcnRpY3VsYXJseaB3aXRooHJlc3BlY3SgdG+gc3VwcG9ydKBmb3Kgbm9uLUxpbnV4PGJyPgoroKBPU3MuPGJyPgorPGJyPgorKDMuMy4wLlJDMTqgoDKgRGVjoDIwMDcsoHZleKByMTgwMyygdmFsZ3JpbmSgcjcyNjgpLjxicj4KKygzLjMuMC5SQzI6oKA1oERlY6AyMDA3LKB2ZXigcjE4MDQsoHZhbGdyaW5koHI3MjgyKS48YnI+CisoMy4zLjAuUkMzOqCgOaBEZWOgMjAwNyygdmV4oHIxODA0LKB2YWxncmluZKByNzI4OCkuPGJyPgorKDMuMy4wOqCgoKCgMTCgRGVjoDIwMDcsoHZleKByMTgwNCygdmFsZ3JpbmSgcjcyOTApLjxicj4KKzxicj4KKzxicj4KKzxicj4KK1JlbGVhc2WgMy4yLjOgKDI5oEphbqAyMDA3KTxicj4KK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fjxicj4KK1VuZm9ydHVuYXRlbHmgMy4yLjKgaW50cm9kdWNlZKBhoHJlZ3Jlc3Npb26gd2hpY2igY2FuoGNhdXNloGFuPGJyPgorYXNzZXJ0aW9uoGZhaWx1cmWgKCJ2ZXg6oHRoZaBgaW1wb3NzaWJsZSegaGFwcGVuZWQ6oGVxSVJDb25zdCIpoHdoZW48YnI+CitydW5uaW5noG9ic2N1cmWgcGllY2VzoG9moFNTRaBjb2RlLqCgMy4yLjOgZml4ZXOgdGhpc6BhbmSgYWRkc6BvbmU8YnI+Cittb3JloGdsaWJjLTIuNaBpbnRlcmNlcHQuoKBJbqBhbGygb3RoZXKgcmVzcGVjdHOgaXSgaXOgaWRlbnRpY2FsoHRvPGJyPgorMy4yLjIuoKBQbGVhc2WgZG+gbm90oHVzZaAob3KgcGFja2FnZSmgMy4yLjI7oGluc3RlYWSgdXNloDMuMi4zLjxicj4KKzxicj4KK24taS1ieqCgoHZleDqgdGhloGBpbXBvc3NpYmxlJ6BoYXBwZW5lZDqgZXFJUkNvbnN0PGJyPgorbi1pLWJ6oKCgQWRkoGFuoGludGVyY2VwdKBmb3KgZ2xpYmMtMi41oF9fc3RwY3B5X2Noazxicj4KKzxicj4KKygzLjIuMzqgMjmgSmFuoDIwMDcsoHZleKByMTczMiygdmFsZ3JpbmSgcjY1NjApLjxicj4KKzxicj4KKzxicj4KK1JlbGVhc2WgMy4yLjKgKDIyoEphbqAyMDA3KTxicj4KK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fjxicj4KKzMuMi4yoGZpeGVzoGGgYnVuY2igb2agYnVnc6BpbqAzLjIuMSygYWRkc6BzdXBwb3J0oGZvcqBnbGliYy0yLjWgYmFzZWQ8YnI+CitzeXN0ZW1zoChvcGVuU1VTRaAxMC4yLKBGZWRvcmGgQ29yZaA2KSygaW1wcm92ZXOgc3VwcG9ydKBmb3KgaWNjLTkuWDxicj4KK2NvbXBpbGVkoGNvZGUsoGFuZKBicmluZ3OgbW9kZXN0oHBlcmZvcm1hbmNloGltcHJvdmVtZW50c6BpbqBzb21lPGJyPgorYXJlYXMsoGluY2x1ZGluZ6BhbWQ2NKBmbG9hdGluZ6Bwb2ludCygcG93ZXJwY6BzdXBwb3J0LKBhbmSgc3RhcnR1cDxicj4KK3Jlc3BvbnNpdmVuZXNzoG9uoGFsbKB0YXJnZXRzLjxicj4KKzxicj4KK1RoZaBmaXhlZKBidWdzoGFyZaBhc6Bmb2xsb3dzLqCgTm90ZaB0aGF0oCJuLWktYnoioHN0YW5kc6Bmb3KgIm5vdKBpbjxicj4KK2J1Z3ppbGxhIqAtLaB0aGF0oGlzLKBhoGJ1Z6B0aGF0oHdhc6ByZXBvcnRlZKB0b6B1c6BidXSgbmV2ZXKgZ290oGE8YnI+CitidWd6aWxsYaBlbnRyeS6goFdloGVuY291cmFnZaB5b3WgdG+gZmlsZaBidWdzoGluoGJ1Z3ppbGxhPGJyPgorKGh0dHA6Ly9idWdzLmtkZS5vcmcvZW50ZXJfdmFsZ3JpbmRfYnVnLmNnaSmgcmF0aGVyoHRoYW6gbWFpbGluZ6B0aGU8YnI+CitkZXZlbG9wZXJzoChvcqBtYWlsaW5noGxpc3RzKaBkaXJlY3RseS48YnI+Cis8YnI+CisxMjkzOTCgoKBwcGM/LSZndDtJUjqgc29tZaBraW5koG9moFZNWKBwcmVmZXRjaKAoZHN0dCk8YnI+CisxMjk5NjigoKBhbWQ2NC0mZ3Q7SVI6oDB4RqAweEFFoDB4MKAoZnhzYXZlKTxicj4KKzEzNDMxOaCgoD09MTI5OTY4PGJyPgorMTMzMDU0oKCgJ21ha2WgaW5zdGFsbCegZmFpbHOgd2l0aKBzeW50YXigZXJyb3JzPGJyPgorMTE4OTAzoKCgPT0xMzMwNTQ8YnI+CisxMzI5OTigoKBzdGFydHVwoGZhaWxzoGluoHdoZW6gcnVubmluZ6BvbqBVTUw8YnI+CisxMzQyMDegoKBwa2ctY29uZmlnoG91dHB1dKBjb250YWluc6BAVkdfUExBVEZPUk1APGJyPgorMTM0NzI3oKCgdmFsZ3JpbmSgZXhpdHOgd2l0aKAiVmFsdWWgdG9voGxhcmdloGZvcqBkZWZpbmVkoGRhdGGgdHlwZSI8YnI+CituLWktYnqgoKBwcGMzMi82NDqgc3VwcG9ydKBtY3Jmczxicj4KK24taS1ieqCgoENhY2hlZ3JpbmQvQ2FsbGdyaW5kOqBVcGRhdGWgY2FjaGWgcGFyYW1ldGVyoGRldGVjdGlvbjxicj4KKzEzNTAxMqCgoHg4Ni0mZ3Q7SVI6oDB4RDegMHg4QaAweEUwoDB4RDCgKHhsYXQpPGJyPgorMTI1OTU5oKCgPT0xMzUwMTI8YnI+CisxMjYxNDegoKB4ODYtJmd0O0lSOqAweEYyoDB4QTWgMHhGoDB4NzegKHJlcG5loG1vdnN3KTxicj4KKzEzNjY1MKCgoGFtZDY0LSZndDtJUjqgMHhDMqAweDigMHgwPGJyPgorMTM1NDIxoKCgeDg2LSZndDtJUjqgdW5oYW5kbGVkoEdycDUoUimgY2FzZaA2PGJyPgorbi1pLWJ6oKCgSW1wcm92ZWSgZG9jdW1lbnRhdGlvbqBvZqB0aGWgSVKgaW50ZXJtZWRpYXRloHJlcHJlc2VudGF0aW9uPGJyPgorbi1pLWJ6oKCgamN4eqAoeDg2KaAodXNlcnOgbGlzdCygOKBOb3YpPGJyPgorbi1pLWJ6oKCgRXhlQ29udGV4dKBoYXNoaW5noGZpeDxicj4KK24taS1ieqCgoGZpeKBDRkmgcmVhZGluZ6BmYWlsdXJlc6AoIkR3YXJmoENGSaAwOjI0oDA6MzKgMDo0OKAwOjciKTxicj4KK24taS1ieqCgoGZpeKBDYWNoZWdyaW5kL0NhbGxncmluZKBzaW11bGF0aW9uoGJ1Zzxicj4KK24taS1ieqCgoGxpYm1waXdyYXAuYzqgZml4oGhhbmRsaW5noG9moE1QSV9MT05HX0RPVUJMRTxicj4KK24taS1ieqCgoG1ha2WgVXNlcqBlcnJvcnOgc3VwcHJlc3NpYmxlPGJyPgorMTM2ODQ0oKCgY29ycnVwdGVkoG1hbGxvY6BsaW5loHdoZW6gdXNpbmegLS1nZW4tc3VwcHJlc3Npb25zPXllczxicj4KKzEzODUwN6CgoD09MTM2ODQ0PGJyPgorbi1pLWJ6oKCgU3BlZWSgdXCgdGhloEpJVCdzoHJlZ2lzdGVyoGFsbG9jYXRvcjxicj4KK24taS1ieqCgoEZpeKBjb25mdXNpbmegbGVhay1jaGVja2VyoGZsYWegaGludHM8YnI+CituLWktYnqgoKBTdXBwb3J0oHJlY2VudKBhdXRvc3dhbXCgdmVyc2lvbnM8YnI+CituLWktYnqgoKBwcGMzMi82NKBkaXNwYXRjaGVyoHNwZWVkdXBzPGJyPgorbi1pLWJ6oKCgcHBjNjSgZnJvbnSgZW5koHJsZC9ybHegaW1wcm92ZW1lbnRzPGJyPgorbi1pLWJ6oKCgcHBjNjSgYmFja6BlbmSgaW1tNjSgaW1wcm92ZW1lbnRzPGJyPgorMTM2MzAwoKCgc3VwcG9ydKA2NEugcGFnZXOgb26gcHBjNjQtbGludXg8YnI+CisxMzkxMjSgoKA9PaAxMzYzMDA8YnI+CituLWktYnqgoKBmaXigcHBjoGluc26gc2V0oHRlc3RzoGZvcqBnY2OgJmd0Oz2gNC4xPGJyPgorMTM3NDkzoKCgeDg2LSZndDtJUjqgcmVjZW50oGJpbnV0aWxzoG5vLW9wczxicj4KKzEzNzcxNKCgoHg4Ni0mZ3Q7SVI6oDB4NjagMHhGoDB4RjegMHhDNqAobWFza21vdmRxdSk8YnI+CisxMzg0MjSgoKAiZmFpbGVkoGluoFVNRaB3aXRooGVycm9yoDIyIqAocHJvZHVjZaBhoGJldHRlcqBlcnJvcqBtc2cpPGJyPgorMTM4ODU2oKCgPT0xMzg0MjQ8YnI+CisxMzg2MjegoKBFbmhhbmNlbWVudKBzdXBwb3J0oGZvcqBwcmN0bKBpb2N0bHM8YnI+CisxMzg4OTagoKBBZGSgc3VwcG9ydKBmb3KgdXNioGlvY3Rsczxicj4KKzEzNjA1OaCgoD09MTM4ODk2PGJyPgorMTM5MDUwoKCgcHBjMzItJmd0O0lSOqBtZnNwcqAyNjgvMjY5oGluc3RydWN0aW9uc6Bub3SgaGFuZGxlZDxicj4KK24taS1ieqCgoHBwYzMyLSZndDtJUjqgbHZ4bC9zdHZ4bDxicj4KK24taS1ieqCgoGdsaWJjLTIuNaBzdXBwb3J0PGJyPgorbi1pLWJ6oKCgbWVtY2hlY2s6oHByb3ZpZGWgcmVwbGFjZW1lbnSgZm9yoG1lbXBjcHk8YnI+CituLWktYnqgoKBtZW1jaGVjazqgcmVwbGFjZaBiY21woGluoGxkLnNvPGJyPgorbi1pLWJ6oKCgVXNloCdpZm5kZWYnoGluoFZFWCdzoE1ha2VmaWxloGNvcnJlY3RseTxicj4KK24taS1ieqCgoFN1cHByZXNzaW9uc6Bmb3KgTVZMoDQuMC4xoG9uoHBwYzMyLWxpbnV4PGJyPgorbi1pLWJ6oKCgbGlibXBpd3JhcC5jOqBGaXhlc6Bmb3KgTVBJQ0g8YnI+CituLWktYnqgoKBNb3JloHJvYnVzdKBoYW5kbGluZ6BvZqBoaW50ZWSgY2xpZW50oG1tYXBzPGJyPgorMTM5Nzc2oKCgSW52YWxpZKByZWFkoGluoHVuYWxpZ25lZKBtZW1jcHmgd2l0aKBJbnRlbKBjb21waWxlcqB2OTxicj4KK24taS1ieqCgoEdlbmVyYXRloHZhbGlkoFhNTKBldmVuoGZvcqB2ZXJ5oGxvbmegZm6gbmFtZXM8YnI+CituLWktYnqgoKBEb24ndKBwcm9tcHSgYWJvdXSgc3VwcHJlc3Npb25zoGZvcqB1bnNob3duoHJlYWNoYWJsZaBsZWFrczxicj4KKzEzOTkxMKCgoGFtZDY0oHJjbKBpc6Bub3Sgc3VwcG9ydGVkPGJyPgorbi1pLWJ6oKCgRFdBUkagQ0ZJoHJlYWRlcjqgaGFuZGxloERXX0NGQV91bmRlZmluZWQ8YnI+CituLWktYnqgoKBEV0FSRqBDRkmgcmVhZGVyOqBoYW5kbGWgaWNjOaBnZW5lcmF0ZWSgQ0ZJoGluZm+gYmV0dGVyPGJyPgorbi1pLWJ6oKCgZml4oGZhbHNloHVuaW5pdC12YWx1ZaBlcnJzoGluoGljYzmgZ2VuZXJhdGVkoEZQoGNvZGU8YnI+CituLWktYnqgoKByZWR1Y2WgZXh0cmFuZW91c6BmcmFtZXOgaW6gbGlibXBpd3JhcC5jPGJyPgorbi1pLWJ6oKCgc3VwcG9ydKBwc2VsZWN0NqBvbqBhbWQ2NC1saW51eDxicj4KKzxicj4KKygzLjIuMjqgMjKgSmFuoDIwMDcsoHZleKByMTcyOSygdmFsZ3JpbmSgcjY1NDUpLjxicj4KKzxicj4KKzxicj4KK1JlbGVhc2WgMy4yLjGgKDE2oFNlcHSgMjAwNik8YnI+Cit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+PGJyPgorMy4yLjGgYWRkc6B4ODYvYW1kNjSgc3VwcG9ydKBmb3KgYWxsoFNTRTOgaW5zdHJ1Y3Rpb25zoGV4Y2VwdKBtb25pdG9yPGJyPgorYW5koG13YWl0LKBmdXJ0aGVyoHJlZHVjZXOgbWVtY2hlY2snc6BmYWxzZaBlcnJvcqByYXRloG9uoGFsbDxicj4KK3BsYXRmb3JtcyygYWRkc6BzdXBwb3J0oGZvcqByZWNlbnSgYmludXRpbHOgKGluoE9wZW5TVVNFoDEwLjKgYW5kPGJyPgorRmVkb3JhoFJhd2hpZGUpoGFuZKBmaXhlc6BhoGJ1bmNooG9moGJ1Z3OgaW6gMy4yLjAuoKBTb21loG9moHRoZaBmaXhlZDxicj4KK2J1Z3Ogd2VyZaBjYXVzaW5noGxhcmdloHByb2dyYW1zoHRvoHNlZ2ZhdWx0oHdpdGigLS10b29sPWNhbGxncmluZKBhbmQ8YnI+CistLXRvb2w9Y2FjaGVncmluZCygc2+gYW6gdXBncmFkZaBpc6ByZWNvbW1lbmRlZC48YnI+Cis8YnI+CitJbqB2aWV3oG9moHRoZaBmYWN0oHRoYXSgYW55oDMuMy4woHJlbGVhc2WgaXOgdW5saWtlbHmgdG+gaGFwcGVuoHVudGlsPGJyPgord2VsbKBpbnRvoDFRMDcsoHdloGludGVuZKB0b6BrZWVwoHRoZaAzLjIuWKBsaW5loGFsaXZloGZvcqBhoHdoaWxlPGJyPgoreWV0LKBhbmSgc2+gd2WgdGVudGF0aXZlbHmgcGxhbqBhoDMuMi4yoHJlbGVhc2Wgc29tZXRpbWWgaW6gRGVjZW1iZXI8YnI+CiswNi48YnI+Cis8YnI+CitUaGWgZml4ZWSgYnVnc6BhcmWgYXOgZm9sbG93cy6goE5vdGWgdGhhdKAibi1pLWJ6IqBzdGFuZHOgZm9yoCJub3SgaW48YnI+CitidWd6aWxsYSKgLS2gdGhhdKBpcyygYaBidWegdGhhdKB3YXOgcmVwb3J0ZWSgdG+gdXOgYnV0oG5ldmVyoGdvdKBhPGJyPgorYnVnemlsbGGgZW50cnkuPGJyPgorPGJyPgorbi1pLWJ6oKCgRXhwYW5kaW5noGJyaygpoGludG+gbGFzdKBhdmFpbGFibGWgcGFnZaBhc3NlcnRzPGJyPgorbi1pLWJ6oKCgcHBjNjQtbGludXigc3RhY2ugUlqgZmFzdC1jYXNloHNuYWZ1PGJyPgorbi1pLWJ6oKCgJ2MnoGluoC0tZ2VuLXN1cHBzPXllc6Bkb2Vzbid0oHdvcms8YnI+CituLWktYnqgoKBWR19OX1NFR01FTlRToHRvb6Bsb3egKHVzZXJzLKAyOKBKdW5lKTxicj4KK24taS1ieqCgoFZHX05fU0VHTkFNRVOgdG9voGxvd6AoU3R1oFJvYmluc29uKTxicj4KKzEwNjg1MqCgoHg4Ni0mZ3Q7SVI6oGZpc3R0cKAoU1NFMyk8YnI+CisxMTcxNzKgoKBGVVRFWF9XQUtFoGRvZXOgbm90oHVzZaB1YWRkcjI8YnI+CisxMjQwMzmgoKBMYWNrc6BzdXBwb3J0oGZvcqBWS0lfW0dQXUlPX1VOSU1BUCo8YnI+CisxMjc1MjGgoKBhbWQ2NC0mZ3Q7SVI6oDB4RjCgMHg0OKAweEagMHhDN6AoY21weGNoZzhiKTxicj4KKzEyODkxN6CgoGFtZDY0LSZndDtJUjqgMHg2NqAweEagMHhGNqAweEM0oChwc2FkYncsU1NFMik8YnI+CisxMjkyNDagoKBKSjqgcHBjMzIvcHBjNjSgc3lzY2FsbHMsoHcvoHBhdGNoPGJyPgorMTI5MzU4oKCgeDg2LSZndDtJUjqgZmlzdHRwbKAoU1NFMyk8YnI+CisxMjk4NjagoKBjYWNoZWdyaW5kL2NhbGxncmluZKBjYXVzZXOgZXhlY3V0YWJsZaB0b6BkaWU8YnI+CisxMzAwMjCgoKBDYW4ndKBzdGF0oC5zby8uZXhloGVycm9yoHdoaWxloHJlYWRpbmegc3ltYm9sczxicj4KKzEzMDM4OKCgoFZhbGdyaW5koGFib3J0c6B3aGVuoHByb2Nlc3OgY2FsbHOgbWFsbG9jX3RyaW0oKTxicj4KKzEzMDYzOKCgoFBBVENIOqBwcGMzMqBtaXNzaW5noHN5c3RlbaBjYWxsczxicj4KKzEzMDc4NaCgoGFtZDY0LSZndDtJUjqgdW5oYW5kbGVkoGluc3RydWN0aW9uoCJwdXNoZnEiPGJyPgorMTMxNDgxOqCgKEhJTlRfTk9QKaB2ZXigeDg2LSZndDtJUjqgMHhGoDB4MUagMHgwoDB4Rjxicj4KKzEzMTI5OKCgoD09MTMxNDgxPGJyPgorMTMyMTQ2oKCgUHJvZ3JhbXOgd2l0aKBsb25noHNlcXVlbmNlc6BvZqBic3dhcFtsLHFdczxicj4KKzEzMjkxOKCgoHZleKBhbWQ2NC0mZ3Q7SVI6oDB4RDmgMHhGOKAoZnByZW0pPGJyPgorMTMyODEzoKCgQXNzZXJ0aW9uoGF0oHByaXYvZ3Vlc3QteDg2L3RvSVIuYzo2NTKgZmFpbHM8YnI+CisxMzMwNTGgoKAnY2ZzaS0mZ3Q7bGVuoCZndDugMKAmYW1wOyZhbXA7oGNmc2ktJmd0O2xlbqAmbHQ7oDIwMDAwMDAnoGZhaWxlZDxicj4KKzEzMjcyMqCgoHZhbGdyaW5koGhlYWRlcqBmaWxlc6BhcmWgbm90oHN0YW5kYXJkoEM8YnI+CituLWktYnqgoKBMaXZlbG9ja3OgZW50aXJloG1hY2hpbmWgKHVzZXJzoGxpc3QsoFRpbW90aHmgVGVycmliZXJyeSk8YnI+CituLWktYnqgoKBBbGV4oEJlbm5lZaBtbWFwoHByb2JsZW2gKDmgQXVnKTxicj4KK24taS1ieqCgoEJhcnRWOqBEb24ndKBwcmludKBtb3JloGxpbmVzoG9moGGgc3RhY2stdHJhY2WgdGhhbqB3ZXJloG9idGFpbmVkLjxicj4KK24taS1ieqCgoHBwYzMyoFN1U0WgMTAuMaByZWRpcjxicj4KK24taS1ieqCgoGFtZDY0oHBhZGRpbmegc3VwcHJlc3Npb25zPGJyPgorbi1pLWJ6oKCgYW1kNjSgaW5zbqBwcmludGluZ6BmaXguPGJyPgorbi1pLWJ6oKCgcHBjoGNtcKByZWcscmVnoGZpeDxicj4KK24taS1ieqCgoHg4Ni9hbWQ2NKBpcm9wdKBlL3JmbGFnoHJlZHVjdGlvbqBydWxlczxicj4KK24taS1ieqCgoFN1U0WgMTAuMaAocHBjMzIpoG1pbm9yoGZpeGVzPGJyPgorMTMzNjc4oKCgYW1kNjQtJmd0O0lSOqAweDQ4oDB4RqAweEM1oDB4QzCgKHBleHRydz8pPGJyPgorMTMzNjk0oKCgYXNwYWNlbaBhc3NlcnRpb246oGFzcGFjZW1fbWluQWRkcqAmbHQ7PaBob2xlU3RhcnQ8YnI+CituLWktYnqgoKBjYWxsZ3JpbmQ6oGZpeKB3YXJuaW5noGFib3V0oG1hbGZvcm1lZKBjcmVhdG9yoGxpbmWgPGJyPgorbi1pLWJ6oKCgY2FsbGdyaW5kOqBmaXigYW5ub3RhdGWgc2NyaXB0oGZvcqBkYXRhoHByb2R1Y2VkoHdpdGigPGJyPgoroKCgoKCgoKCgLS1kdW1wLWluc3RyPXllczxicj4KK24taS1ieqCgoGNhbGxncmluZDqgZml4oGZhaWxlZKBhc3NlcnRpb26gd2hlbqB0b2dnbGluZ6A8YnI+CiugoKCgoKCgoKBpbnN0cnVtZW50YXRpb26gbW9kZTxicj4KK24taS1ieqCgoGNhbGxncmluZDqgZml4oGFubm90YXRloHNjcmlwdKBmaXigd2FybmluZ3Ogd2l0aDxicj4KK6CgoKCgoKCgoC0tY29sbGVjdC1qdW1wcz15ZXM8YnI+CituLWktYnqgoKBkb2NzoHBhdGigaGFyZHdpcmVkoChEZW5uaXOgTHViZXJ0KTxicj4KKzxicj4KK1RoZaBmb2xsb3dpbmegYnVnc6B3ZXJloG5vdKBmaXhlZCygZHVloHByaW1hcmlseaB0b6BsYWNroG9moGRldmVsb3Blcjxicj4KK3RpbWUsoGFuZKBhbHNvoGJlY2F1c2WgYnVnoHJlcG9ydGVyc6BkaWSgbm90oGFuc3dlcqByZXF1ZXN0c6Bmb3I8YnI+CitmZWVkYmFja6BpbqB0aW1loGZvcqB0aGWgcmVsZWFzZTo8YnI+Cis8YnI+CisxMjkzOTCgoKBwcGM/LSZndDtJUjqgc29tZaBraW5koG9moFZNWKBwcmVmZXRjaKAoZHN0dCk8YnI+CisxMjk5NjigoKBhbWQ2NC0mZ3Q7SVI6oDB4RqAweEFFoDB4MKAoZnhzYXZlKTxicj4KKzEzMzA1NKCgoCdtYWtloGluc3RhbGwnoGZhaWxzoHdpdGigc3ludGF4oGVycm9yczxicj4KK24taS1ieqCgoFNpZ25hbKByYWNloGNvbmRpdGlvbqAodXNlcnOgbGlzdCygMTOgSnVuZSygSm9oYW5uZXOgQmVyZyk8YnI+CituLWktYnqgoKBVbnJlY29nbmlzZWSgaW5zdHJ1Y3Rpb26gYXSgYWRkcmVzc6AweDcwMTk4RUMyoCh1c2Vyc6BsaXN0LDxicj4KK6CgoKCgoKCgoDE5oEp1bHksoEJlbm5lZSk8YnI+CisxMzI5OTigoKBzdGFydHVwoGZhaWxzoGluoHdoZW6gcnVubmluZ6BvbqBVTUw8YnI+Cis8YnI+CitUaGWgZm9sbG93aW5noGJ1Z6B3YXOgdGVudGF0aXZlbHmgZml4ZWSgb26gdGhloG1haW5saW5loGJ1dKB0aGWgZml4PGJyPgord2FzoGNvbnNpZGVyZWSgdG9voHJpc2t5oHRvoHB1c2igaW50b6AzLjIuWDo8YnI+Cis8YnI+CisxMzMxNTSgoKBjcmFzaKB3aGVuoHVzaW5noGNsaWVudKByZXF1ZXN0c6B0b6ByZWdpc3Rlci9kZXJlZ2lzdGVyoHN0YWNrPGJyPgorPGJyPgorKDMuMi4xOqAxNqBTZXB0oDIwMDYsoHZleKByMTY1OCygdmFsZ3JpbmSgcjYwNzApLjxicj4KKzxicj4KKzxicj4KK1JlbGVhc2WgMy4yLjCgKDegSnVuZaAyMDA2KTxicj4KK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fjxicj4KKzMuMi4woGlzoGGgZmVhdHVyZaByZWxlYXNloHdpdGigbWFueaBzaWduaWZpY2FudKBpbXByb3ZlbWVudHOgYW5koHRoZTxicj4KK3VzdWFsoGNvbGxlY3Rpb26gb2agYnVnoGZpeGVzLqCgVGhpc6ByZWxlYXNloHN1cHBvcnRzoFg4Ni9MaW51eCw8YnI+CitBTUQ2NC9MaW51eCygUFBDMzIvTGludXigYW5koFBQQzY0L0xpbnV4Ljxicj4KKzxicj4KK1BlcmZvcm1hbmNlLKBlc3BlY2lhbGx5oG9moE1lbWNoZWNrLKBpc6BpbXByb3ZlZCygQWRkcmNoZWNroGhhc6BiZWVuPGJyPgorcmVtb3ZlZCygQ2FsbGdyaW5koGhhc6BiZWVuoGFkZGVkLKBQUEM2NC9MaW51eKBzdXBwb3J0oGhhc6BiZWVuoGFkZGVkLDxicj4KK0xhY2tleaBoYXOgYmVlbqBpbXByb3ZlZCygYW5koE1QSaBzdXBwb3J0oGhhc6BiZWVuoGFkZGVkLqCgSW6gZGV0YWlsOjxicj4KKzxicj4KKy2gTWVtY2hlY2ugaGFzoGltcHJvdmVkoHNwZWVkoGFuZKByZWR1Y2VkoG1lbW9yeaB1c2UuoKBSdW6gdGltZXOgYXJlPGJyPgoroKB0eXBpY2FsbHmgcmVkdWNlZKBieaAxNS0zMCUsoGF2ZXJhZ2luZ6BhYm91dKAyNCWgZm9yoFNQRUOgQ1BVMjAwMC48YnI+CiugoFRoZaBvdGhlcqB0b29sc6BoYXZloHNtYWxsZXKgYnV0oG5vdGljZWFibGWgc3BlZWSgaW1wcm92ZW1lbnRzLqCgV2U8YnI+CiugoGFyZaBpbnRlcmVzdGVkoHRvoGhlYXKgd2hhdKBpbXByb3ZlbWVudHOgdXNlcnOgZ2V0Ljxicj4KKzxicj4KK6CgTWVtY2hlY2ugdXNlc6BsZXNzoG1lbW9yeaBkdWWgdG+gdGhloGludHJvZHVjdGlvbqBvZqBhoGNvbXByZXNzZWQ8YnI+CiugoHJlcHJlc2VudGF0aW9uoGZvcqBzaGFkb3egbWVtb3J5LqCgVGhloHNwYWNloG92ZXJoZWFkoGhhc6BiZWVuPGJyPgoroKByZWR1Y2VkoGJ5oGGgZmFjdG9yoG9moHVwoHRvoGZvdXIsoGRlcGVuZGluZ6BvbqBwcm9ncmFtoGJlaGF2aW91ci48YnI+CiugoFRoaXOgbWVhbnOgeW91oHNob3VsZKBiZaBhYmxloHRvoHJ1bqBwcm9ncmFtc6B0aGF0oHVzZaBtb3JloG1lbW9yeTxicj4KK6CgdGhhbqBiZWZvcmWgd2l0aG91dKBoaXR0aW5noHByb2JsZW1zLjxicj4KKzxicj4KKy2gQWRkcmNoZWNroGhhc6BiZWVuoHJlbW92ZWQuoKBJdKBoYXOgbm90oHdvcmtlZKBzaW5jZaB2ZXJzaW9uoDIuNC4wLDxicj4KK6CgYW5koHRoZaBzcGVlZKBhbmSgbWVtb3J5oGltcHJvdmVtZW50c6B0b6BNZW1jaGVja6BtYWtloGl0oHJlZHVuZGFudC48YnI+CiugoElmoHlvdaBsaWtlZKB1c2luZ6BBZGRyY2hlY2ugYmVjYXVzZaBpdKBkaWRuJ3SgZ2l2ZaB1bmRlZmluZWSgdmFsdWU8YnI+CiugoGVycm9ycyygeW91oGNhbqB1c2WgdGhloG5ld6BNZW1jaGVja6BvcHRpb26gLS11bmRlZi12YWx1ZS1lcnJvcnM9bm88YnI+CiugoHRvoGdldKB0aGWgc2FtZaBiZWhhdmlvdXIuPGJyPgorPGJyPgorLaBUaGWgbnVtYmVyoG9moHVuZGVmaW5lZC12YWx1ZaBlcnJvcnOgaW5jb3JyZWN0bHmgcmVwb3J0ZWSgYnk8YnI+CiugoE1lbWNoZWNroGhhc6BiZWVuoHJlZHVjZWSgKHN1Y2igZmFsc2WgcmVwb3J0c6B3ZXJloGFscmVhZHmgdmVyeTxicj4KK6CgcmFyZSkuoKBJbqBwYXJ0aWN1bGFyLKBlZmZvcnRzoGhhdmWgYmVlbqBtYWRloHRvoGVuc3VyZaBNZW1jaGVjazxicj4KK6Cgd29ya3OgcmVhbGx5oHdlbGygd2l0aKBnY2OgNC4wLzQuMS1nZW5lcmF0ZWSgY29kZaBvbqBYODYvTGludXigYW5kPGJyPgoroKBBTUQ2NC9MaW51eC48YnI+Cis8YnI+CistoEpvc2VmoFdlaWRlbmRvcmZlcidzoHBvcHVsYXKgQ2FsbGdyaW5koHRvb2ygaGFzoGJlZW6gYWRkZWQuoKBGb2xkaW5nPGJyPgoroKBpdKBpbqB3YXOgYaBsb2dpY2FsoHN0ZXCgZ2l2ZW6gaXRzoHBvcHVsYXJpdHmgYW5koHVzZWZ1bG5lc3MsoGFuZDxicj4KK6CgbWFrZXOgaXSgZWFzaWVyoGZvcqB1c6B0b6BlbnN1cmWgaXSgd29ya3OgIm91dKBvZqB0aGWgYm94IqBvbqBhbGw8YnI+CiugoHN1cHBvcnRlZKB0YXJnZXRzLqCgVGhloGFzc29jaWF0ZWSgS0RFoEtDYWNoZWdyaW5koEdVSaByZW1haW5zoGE8YnI+CiugoHNlcGFyYXRloHByb2plY3QuPGJyPgorPGJyPgorLaBBoG5ld6ByZWxlYXNloG9moHRoZaBWYWxreXJpZaBHVUmgZm9yoE1lbWNoZWNrLKB2ZXJzaW9uoDEuMi4wLDxicj4KK6CgYWNjb21wYW5pZXOgdGhpc6ByZWxlYXNlLqCgSW1wcm92ZW1lbnRzoG92ZXKgcHJldmlvdXOgcmVsZWFzZXM8YnI+CiugoGluY2x1ZGWgaW1wcm92ZWSgcm9idXN0bmVzcyygbWFueaByZWZpbmVtZW50c6B0b6B0aGWgdXNlcqBpbnRlcmZhY2UsPGJyPgoroKBhbmSgdXNloG9moGGgc3RhbmRhcmSgYXV0b2NvbmYvYXV0b21ha2WgYnVpbGSgc3lzdGVtLqCgWW91oGNhbqBnZXQ8YnI+CiugoGl0oGZyb22gaHR0cDovL3d3dy52YWxncmluZC5vcmcvZG93bmxvYWRzL2d1aXMuaHRtbC48YnI+Cis8YnI+CistoFZhbGdyaW5koG5vd6B3b3Jrc6BvbqBQUEM2NC9MaW51eC6goEFzoHdpdGigdGhloEFNRDY0L0xpbnV4oHBvcnQsPGJyPgoroKB0aGlzoHN1cHBvcnRzoHByb2dyYW1zoHVzaW5noHRvoDMyR6BvZqBhZGRyZXNzoHNwYWNlLqCgT26gNjQtYml0PGJyPgoroKBjYXBhYmxloFBQQzY0L0xpbnV4oHNldHVwcyygeW91oGdldKBhoGR1YWygYXJjaGl0ZWN0dXJloGJ1aWxkoHNvPGJyPgoroKB0aGF0oGJvdGigMzItYml0oGFuZKA2NC1iaXSgZXhlY3V0YWJsZXOgY2FuoGJloHJ1bi6goExpbnV4oG9uoFBPV0VSNTxicj4KK6CgaXOgc3VwcG9ydGVkLKBhbmSgUE9XRVI0oGlzoGFsc2+gYmVsaWV2ZWSgdG+gd29yay6goEJvdGigMzItYml0oGFuZDxicj4KK6CgNjQtYml0oERXQVJGMqBpc6BzdXBwb3J0ZWQuoKBUaGlzoHBvcnSgaXOga25vd26gdG+gd29ya6B3ZWxsoHdpdGg8YnI+CiugoGJvdGigZ2NjLWNvbXBpbGVkoGFuZKB4bGMveGxmLWNvbXBpbGVkoGNvZGUuPGJyPgorPGJyPgorLaBGbG9hdGluZ6Bwb2ludKBhY2N1cmFjeaBoYXOgYmVlbqBpbXByb3ZlZKBmb3KgUFBDMzIvTGludXguPGJyPgoroKBTcGVjaWZpY2FsbHksoHRoZaBmbG9hdGluZ6Bwb2ludKByb3VuZGluZ6Btb2RloGlzoG9ic2VydmVkoG9uoGFsbKBGUDxicj4KK6CgYXJpdGhtZXRpY6BvcGVyYXRpb25zLKBhbmSgbXVsdGlwbHktYWNjdW11bGF0ZaBpbnN0cnVjdGlvbnOgYXJlPGJyPgoroKBwcmVzZXJ2ZWSgYnmgdGhloGNvbXBpbGF0aW9uoHBpcGVsaW5lLqCgVGhpc6BtZWFuc6B5b3Wgc2hvdWxkoGdldKBGUDxicj4KK6CgcmVzdWx0c6B3aGljaKBhcmWgYml0LWZvci1iaXSgaWRlbnRpY2FsoHRvoGGgbmF0aXZloHJ1bi6goFRoZXNlPGJyPgoroKBpbXByb3ZlbWVudHOgYXJloGFsc2+gcHJlc2VudKBpbqB0aGWgUFBDNjQvTGludXigcG9ydC48YnI+Cis8YnI+CistoExhY2tleSygdGhloGV4YW1wbGWgdG9vbCygaGFzoGJlZW6gaW1wcm92ZWQ6PGJyPgorPGJyPgoroKAqoEl0oGhhc6BhoG5ld6BvcHRpb26gLS1kZXRhaWxlZC1jb3VudHOgKG9mZqBieaBkZWZhdWx0KaB3aGljaDxicj4KK6CgoKBjYXVzZXOgaXSgdG+gcHJpbnSgb3V0oGGgY291bnSgb2agbG9hZHMsoHN0b3Jlc6BhbmSgQUxVoG9wZXJhdGlvbnM8YnI+CiugoKCgZG9uZSygYW5koHRoZWlyoHNpemVzLjxicj4KKzxicj4KK6CgKqBJdKBoYXOgYaBuZXegb3B0aW9uoC0tdHJhY2UtbWVtoChvZmagYnmgZGVmYXVsdCmgd2hpY2igY2F1c2VzoGl0PGJyPgoroKCgoHRvoHByaW50oG91dKBhoHRyYWNloG9moGFsbKBtZW1vcnmgYWNjZXNzZXOgcGVyZm9ybWVkoGJ5oGE8YnI+CiugoKCgcHJvZ3JhbS6goEl0J3OgYaBnb29koHN0YXJ0aW5noHBvaW50oGZvcqBidWlsZGluZ6BWYWxncmluZKB0b29sczxicj4KK6CgoKB0aGF0oG5lZWSgdG+gdHJhY2ugbWVtb3J5oGFjY2Vzc2VzLqCgUmVhZKB0aGWgY29tbWVudHOgYXSgdGhloHRvcDxicj4KK6CgoKBvZqB0aGWgZmlsZaBsYWNrZXkvbGtfbWFpbi5joGZvcqBkZXRhaWxzLjxicj4KKzxicj4KK6CgKqBUaGWgb3JpZ2luYWygaW5zdHJ1bWVudGF0aW9uoChjb3VudGluZ6BudW1iZXJzoG9moGluc3RydWN0aW9ucyw8YnI+CiugoKCganVtcHMsoGV0YymgaXOgbm93oGNvbnRyb2xsZWSgYnmgYaBuZXegb3B0aW9uoC0tYmFzaWMtY291bnRzLqCgSXQ8YnI+CiugoKCgaXOgb26gYnmgZGVmYXVsdC48YnI+Cis8YnI+CistoE1QSaBzdXBwb3J0OqBwYXJ0aWFsoHN1cHBvcnSgZm9yoGRlYnVnZ2luZ6BkaXN0cmlidXRlZKBhcHBsaWNhdGlvbnM8YnI+CiugoHVzaW5noHRoZaBNUEmgbGlicmFyeaBzcGVjaWZpY2F0aW9uoGhhc6BiZWVuoGFkZGVkLqCgVmFsZ3JpbmSgaXM8YnI+CiugoGF3YXJloG9moHRoZaBtZW1vcnmgc3RhdGWgY2hhbmdlc6BjYXVzZWSgYnmgYaBzdWJzZXSgb2agdGhloE1QSTxicj4KK6CgZnVuY3Rpb25zLKBhbmSgd2lsbKBjYXJlZnVsbHmgY2hlY2ugZGF0YaBwYXNzZWSgdG+gdGhloChQKU1QSV88YnI+CiugoGludGVyZmFjZS48YnI+Cis8YnI+CistoEGgbmV3oGZsYWcsoC0tZXJyb3ItZXhpdGNvZGU9LKBoYXOgYmVlbqBhZGRlZC6goFRoaXOgYWxsb3dzoGNoYW5naW5nPGJyPgoroKB0aGWgZXhpdKBjb2RloGluoHJ1bnOgd2hlcmWgVmFsZ3JpbmSgcmVwb3J0ZWSgZXJyb3JzLKB3aGljaKBpczxicj4KK6CgdXNlZnVsoHdoZW6gdXNpbmegVmFsZ3JpbmSgYXOgcGFydKBvZqBhbqBhdXRvbWF0ZWSgdGVzdKBzdWl0ZS48YnI+Cis8YnI+CistoFZhcmlvdXOgc2VnZmF1bHRzoHdoZW6gcmVhZGluZ6BvbGQtc3R5bGWgInN0YWJzIqBkZWJ1Z6BpbmZvcm1hdGlvbjxicj4KK6CgaGF2ZaBiZWVuoGZpeGVkLjxicj4KKzxicj4KKy2gQaBzaW1wbGWgcGVyZm9ybWFuY2WgZXZhbHVhdGlvbqBzdWl0ZaBoYXOgYmVlbqBhZGRlZC6goFNlZTxicj4KK6CgcGVyZi9SRUFETUWgYW5koFJFQURNRV9ERVZFTE9QRVJToGZvcqBkZXRhaWxzLqCgVGhlcmWgYXJlPGJyPgoroKB2YXJpb3VzoGJlbGxzoGFuZKB3aGlzdGxlcy48YnI+Cis8YnI+CistoE5ld6Bjb25maWd1cmF0aW9uoGZsYWdzOjxicj4KK6CgoKAtLWVuYWJsZS1vbmx5MzJiaXQ8YnI+CiugoKCgLS1lbmFibGUtb25seTY0Yml0PGJyPgoroKBCeaBkZWZhdWx0LKBvbqA2NKBiaXSgcGxhdGZvcm1zoChwcGM2NC1saW51eCygYW1kNjQtbGludXgpoHRoZaBidWlsZDxicj4KK6Cgc3lzdGVtoHdpbGygYXR0ZW1wdKB0b6BidWlsZKBhoFZhbGdyaW5koHdoaWNooHN1cHBvcnRzoGJvdGigMzItYml0PGJyPgoroKBhbmSgNjQtYml0oGV4ZWN1dGFibGVzLqCgVGhpc6BtYXmgbm90oGJloHdoYXSgeW91oHdhbnQsoGFuZKB5b3WgY2FuPGJyPgoroKBvdmVycmlkZaB0aGWgZGVmYXVsdKBiZWhhdmlvdXKgdXNpbmegdGhlc2WgZmxhZ3MuPGJyPgorPGJyPgorUGxlYXNloG5vdGWgdGhhdKBIZWxncmluZKBpc6BzdGlsbKBub3Sgd29ya2luZy6goFdloGhhdmWgbWFkZaBhbjxicj4KK2ltcG9ydGFudKBzdGVwoHRvd2FyZHOgbWFraW5noGl0oHdvcmugYWdhaW4soGhvd2V2ZXIsoHdpdGigdGhlPGJyPgorYWRkaXRpb26gb2agZnVuY3Rpb26gd3JhcHBpbmegKHNlZaBiZWxvdykuPGJyPgorPGJyPgorT3RoZXKgdXNlci12aXNpYmxloGNoYW5nZXM6PGJyPgorPGJyPgorLaBWYWxncmluZKBub3egaGFzoHRoZaBhYmlsaXR5oHRvoGludGVyY2VwdKBhbmSgd3JhcKBhcmJpdHJhcnk8YnI+CiugoGZ1bmN0aW9ucy6goFRoaXOgaXOgYaBwcmVsaW1pbmFyeaBzdGVwoHRvd2FyZHOgbWFraW5noEhlbGdyaW5koHdvcms8YnI+CiugoGFnYWluLKBhbmSgd2FzoHJlcXVpcmVkoGZvcqBNUEmgc3VwcG9ydC48YnI+Cis8YnI+CistoFRoZXJloGFyZaBzb21loGNoYW5nZXOgdG+gTWVtY2hlY2snc6BjbGllbnSgcmVxdWVzdHMuoKBTb21loG9moHRoZW08YnI+CiugoGhhdmWgY2hhbmdlZKBuYW1lczo8YnI+Cis8YnI+CiugoKCgTUFLRV9OT0FDQ0VTU6CgLS0mZ3Q7oE1BS0VfTUVNX05PQUNDRVNTPGJyPgoroKCgoE1BS0VfV1JJVEFCTEWgoC0tJmd0O6BNQUtFX01FTV9VTkRFRklORUQ8YnI+CiugoKCgTUFLRV9SRUFEQUJMRaCgLS0mZ3Q7oE1BS0VfTUVNX0RFRklORUQ8YnI+Cis8YnI+CiugoKCgQ0hFQ0tfV1JJVEFCTEWgLS0mZ3Q7oENIRUNLX01FTV9JU19BRERSRVNTQUJMRTxicj4KK6CgoKBDSEVDS19SRUFEQUJMRaAtLSZndDugQ0hFQ0tfTUVNX0lTX0RFRklORUQ8YnI+CiugoKCgQ0hFQ0tfREVGSU5FRKCgLS0mZ3Q7oENIRUNLX1ZBTFVFX0lTX0RFRklORUQ8YnI+Cis8YnI+CiugoFRoZaByZWFzb26gZm9yoHRoZaBjaGFuZ2WgaXOgdGhhdKB0aGWgb2xkoG5hbWVzoGFyZaBzdWJ0bHk8YnI+CiugoG1pc2xlYWRpbmcuoKBUaGWgb2xkoG5hbWVzoHdpbGygc3RpbGygd29yayygYnV0oHRoZXmgYXJloGRlcHJlY2F0ZWQ8YnI+CiugoGFuZKBtYXmgYmWgcmVtb3ZlZKBpbqBhoGZ1dHVyZaByZWxlYXNlLjxicj4KKzxicj4KK6CgV2WgYWxzb6BhZGRlZKBhoG5ld6BjbGllbnSgcmVxdWVzdDo8YnI+CiugoDxicj4KK6CgoKBNQUtFX01FTV9ERUZJTkVEX0lGX0FERFJFU1NBQkxFKGEsoGxlbik8YnI+CiugoKCgPGJyPgoroKB3aGljaKBpc6BsaWtloE1BS0VfTUVNX0RFRklORUSgYnV0oG9ubHmgYWZmZWN0c6BhoGJ5dGWgaWagdGhloGJ5dGWgaXM8YnI+CiugoGFscmVhZHmgYWRkcmVzc2FibGUuPGJyPgorPGJyPgorLaBUaGWgd2F5oGNsaWVudKByZXF1ZXN0c6BhcmWgZW5jb2RlZKBpbqB0aGWgaW5zdHJ1Y3Rpb26gc3RyZWFtoGhhczxicj4KK6CgY2hhbmdlZC6goFVuZm9ydHVuYXRlbHksoHRoaXOgbWVhbnOgMy4yLjCgd2lsbKBub3SgaG9ub3VyoGNsaWVudDxicj4KK6CgcmVxdWVzdHOgY29tcGlsZWSgaW50b6BiaW5hcmllc6B1c2luZ6BoZWFkZXJzoGZyb22gZWFybGllcqB2ZXJzaW9uczxicj4KK6Cgb2agVmFsZ3JpbmQuoKBXZaB3aWxsoHRyeaB0b6BrZWVwoHRoZaBjbGllbnSgcmVxdWVzdKBlbmNvZGluZ3OgbW9yZaA8YnI+CiugoHN0YWJsZaBpbqBmdXR1cmUuPGJyPgorPGJyPgorQlVHU6BGSVhFRDo8YnI+Cis8YnI+CisxMDgyNTigoKBOUFRMoHB0aHJlYWSgY2xlYW51cKBoYW5kbGVyc6Bub3SgY2FsbGVkoDxicj4KKzExNzI5MKCgoHZhbGdyaW5koGlzoHNpZ0tJTEwnZKBvbqBzdGFydHVwPGJyPgorMTE3Mjk1oKCgPT2gMTE3MjkwPGJyPgorMTE4NzAzoKCgbV9zaWduYWxzLmM6MTQyN6BBc3NlcnRpb26gJ3RzdC0mZ3Q7c3RhdHVzoD09oFZnVHNfV2FpdFN5cyc8YnI+CisxMTg0NjagoKBhZGSgJXJlZyygJXJlZ6BnZW5lcmF0ZXOgaW5jb3JyZWN0oHZhbGlkaXR5oGZvcqBiaXSgMDxicj4KKzEyMzIxMKCgoE5ldzqgc3RybGVuoGZyb22gbGQtbGludXigb26gYW1kNjQ8YnI+CisxMjMyNDSgoKBEV0FSRjKgQ0ZJoHJlYWRlcjqgdW5oYW5kbGVkoENGSaBpbnN0cnVjdGlvbqAwOjE4PGJyPgorMTIzMjQ4oKCgc3lzY2FsbHOgaW6gZ2xpYmMtMi40OqBvcGVuYXQsoGZzdGF0YXQsoHN5bWxpbmthdDxicj4KKzEyMzI1OKCgoHNvY2tldGNhbGwucmVjdm1zZyhtc2cubXNnX2lvdltpXaBwb2ludHOgdG+gdW5pbml0PGJyPgorMTIzNTM1oKCgbXJlbWFwKG5ld19hZGRyKaByZXF1aXJlc6BNUkVNQVBfRklYRUSgaW6gNHRooGFyZzxicj4KKzEyMzgzNqCgoHNtYWxsoHR5cG+gaW6gdGhloGRvYzxicj4KKzEyNDAyOaCgoHBwY6Bjb21waWxloGZhaWxlZDqgYHZvciegZ2NjoDMuMy41PGJyPgorMTI0MjIyoKCgU2VnZmF1bHQ6oEBAZG9uJ3Sga25vd6B3aGF0oHR5cGWgJzonoGlzPGJyPgorMTI0NDc1oKCgcHBjMzI6oGNyYXNooChzeXNjYWxsPymgdGltZXJfc2V0dGltZSgpPGJyPgorMTI0NDk5oKCgYW1kNjQtJmd0O0lSOqAweEagMHhFoDB4NDigMHg4NaAoZmVtbXMpPGJyPgorMTI0NTI4oKCgRkFUQUw6oGFzcGFjZW2gYXNzZXJ0aW9uoGZhaWxlZDqgc2VnbWVudF9pc19zYW5lPGJyPgorMTI0Njk3oKCgdmV4oHg4Ni0mZ3Q7SVI6oDB4RqAweDcwoDB4QzmgMHgwoChwc2h1ZncpPGJyPgorMTI0ODkyoKCgdmV4oHg4Ni0mZ3Q7SVI6oDB4RjOgMHhBRaAoUkVQeKBTQ0FTQik8YnI+CisxMjYyMTagoKA9PaAxMjQ4OTI8YnI+CisxMjQ4MDigoKBwcGMzMjqgc3lzX3NjaGVkX2dldGFmZmluaXR5KCmgbm90oGhhbmRsZWQ8YnI+CituLWktYnqgoKBWZXJ5oGxvbmegc3RhYnOgc3RyaW5nc6BjcmFzaKBtX2RlYnVnaW5mbzxicj4KK24taS1ieqCgoGFtZDY0LSZndDtJUjqgMHg2NqAweEagMHhGNaAocG1hZGR3ZCk8YnI+CisxMjU0OTKgoKBwcGMzMjqgc3VwcG9ydKBhoGJ1bmNooG1vcmWgc3lzY2FsbHM8YnI+CisxMjE2MTegoKBwcGMzMi82NDqgY29yZWR1bXBpbmegZ2l2ZXOgYXNzZXJ0aW9uoGZhaWx1cmU8YnI+CisxMjE4MTSgoKBDb3JlZ3JpbmSgcmV0dXJuoGVycm9yoGFzoGV4aXRjb2RloHBhdGNoPGJyPgorMTI2NTE3oKCgPT2gMTIxODE0PGJyPgorMTI1NjA3oKCgYW1kNjQtJmd0O0lSOqAweDY2oDB4RqAweEEzoDB4MqAoYnR3oGV0Yyk8YnI+CisxMjU2NTGgoKBhbWQ2NC0mZ3Q7SVI6oDB4RjigMHg0OaAweEZGoDB4RTOgKGNsYz8pPGJyPgorMTI2MjUzoKCgeDg2oG1vdnigaXOgd3Jvbmc8YnI+CisxMjY0NTGgoKAzLjKgU1ZOoGRvZXNuJ3Sgd29ya6BvbqBwcGMzMqBDUFUnc6B3aXRob3V0oEZQVTxicj4KKzEyNjIxN6CgoGluY3JlYXNloCOgdGhyZWFkczxicj4KKzEyNjI0M6CgoHZleKB4ODYtJmd0O0lSOqBwb3B3oG1lbTxicj4KKzEyNjU4M6CgoGFtZDY0LSZndDtJUjqgMHg0OKAweEagMHhBNKAweEMyoChzaGxkoCQxLCVyYXgsJXJkeCk8YnI+CisxMjY2NjigoKBhbWQ2NC0mZ3Q7SVI6oDB4MUOgMHhGRqAoc2JioCQweGZmLCVhbCk8YnI+CisxMjY2OTagoKBzdXBwb3J0oGZvcqBDRFJPTVJFQURSQVegaW9jdGygYW5koENEUk9NUkVBRFRPQ0VOVFJZoGZpeDxicj4KKzEyNjcyMqCgoGFzc2VydGlvbjqgc2VnbWVudF9pc19zYW5loGF0oG1fYXNwYWNlbWdyL2FzcGFjZW1nci5jOjE2MjQ8YnI+CisxMjY5MzigoKBiYWSgY2hlY2tpbmegZm9yoHN5c2NhbGxzoGxpbmthdCygcmVuYW1lYXQsoHN5bWxpbmthdDxicj4KKzxicj4KKygzLjIuMFJDMTqgMjegTWF5oKAyMDA2LKB2ZXigcjE2MjYsoHZhbGdyaW5koHI1OTQ3KS48YnI+CisoMy4yLjA6oKCgoKA3oEp1bmWgMjAwNiygdmV4oHIxNjI4LKB2YWxncmluZKByNTk1NykuPGJyPgorPGJyPgorPGJyPgorUmVsZWFzZaAzLjEuMaAoMTWgTWFyY2igMjAwNik8YnI+Cit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fjxicj4KKzMuMS4xoGZpeGVzoGGgYnVuY2igb2agYnVnc6ByZXBvcnRlZKBpbqAzLjEuMC6goFRoZXJloGlzoG5voG5ldzxicj4KK2Z1bmN0aW9uYWxpdHkuoKBUaGWgZml4ZWSgYnVnc6BhcmU6PGJyPgorPGJyPgorKG5vdGU6oCJuLWktYnoioG1lYW5zoCJub3SgaW6gYnVnemlsbGEioC0toHRoaXOgYnVnoGRvZXOgbm90oGhhdmU8YnI+CiugYaBidWd6aWxsYaBlbnRyeSkuPGJyPgorPGJyPgorbi1pLWJ6oKCgcHBjMzI6oGZzdWKgMywzLDOgaW6gZGlzcGF0Y2hlcqBkb2Vzbid0oGNsZWFyoE5hTnM8YnI+CituLWktYnqgoKBwcGMzMjqgX19OUl97c2V0LGdldH1wcmlvcml0eTxicj4KKzExNzMzMqCgoHg4NjqgbWlzc2luZ6BsaW5loGluZm+gd2l0aKBpY2OgOC4xPGJyPgorMTE3MzY2oKCgYW1kNjQ6oDB4RESgMHg3Q6BmbnN0c3c8YnI+CisxMTgyNzSgoKA9PaAxMTczNjY8YnI+CisxMTczNjegoKBhbWQ2NDqgMHhEOaAweEY0oGZ4dHJhY3Q8YnI+CisxMTczNjmgoKBhbWQ2NDqgX19OUl9nZXRwcmlvcml0eaAoMTQwKTxicj4KKzExNzQxOaCgoHBwYzMyOqBsZnN1oGY1LKAtNChyMTEpPGJyPgorMTE3NDE5oKCgcHBjMzI6oGZzcXJ0PGJyPgorMTE3OTM2oKCgbW9yZaBzdGFic6Bwcm9ibGVtc6Aoc2VnZmF1bHRzoHdoaWxloHJlYWRpbmegZGVidWegaW5mbyk8YnI+CisxMTk5MTSgoKA9PaAxMTc5MzY8YnI+CisxMjAzNDWgoKA9PaAxMTc5MzY8YnI+CisxMTgyMzmgoKBhbWQ2NDqgMHhGoDB4QUWgMHgzRqAoY2xmbHVzaCk8YnI+CisxMTg5MzmgoKB2bTg2b2xkoHN5c3RlbaBjYWxsPGJyPgorbi1pLWJ6oKCgbWVtY2hlY2svdGVzdHMvbWVtcG9vbKByZWFkc6BmcmVlZKBtZW1vcnk8YnI+CituLWktYnqgoKBBc2hsZXlQJ3OgY3VzdG9tLWFsbG9jYXRvcqBhc3NlcnRpb248YnI+CituLWktYnqgoKBEaXJroHN0cmljdC1hbGlhc2luZ6BzdHVmZjxicj4KK24taS1ieqCgoE1vcmWgc3BhY2WgZm9yoGRlYnVnZ2VyoGNtZKBsaW5loChEYW6gVGhhbGVyKTxicj4KK24taS1ieqCgoENsYXJpZmllZKBsZWFroGNoZWNrZXKgb3V0cHV0oG1lc3NhZ2U8YnI+CituLWktYnqgoKBBc2hsZXlQJ3OgLS1nZW4tc3VwcHJlc3Npb25zoG91dHB1dKBmaXg8YnI+CituLWktYnqgoKBjZ19hbm5vdGF0ZSdzoC0tc29ydKBvcHRpb26gYnJva2VuPGJyPgorbi1pLWJ6oKCgT1NldKA2NC1iaXSgZmFzdGNtcKBidWc8YnI+CituLWktYnqgoKBWR18oZ2V0Z3JvdXBzKaBmaXigKFNoaW5pY2hpoE5vZGEpPGJyPgorbi1pLWJ6oKCgcHBjMzI6oGFsbG9jYXRloGZyb22gY2FsbGVlLXNhdmVkoEZQL1ZNWKByZWdzPGJyPgorbi1pLWJ6oKCgbWlzYWxpZ25lZKBwYXRooHdvcmQtc2l6ZaBidWegaW6gbWNfbWFpbi5jPGJyPgorMTE5Mjk3oKCgSW5jb3JyZWN0oGVycm9yoG1lc3NhZ2WgZm9yoHNzZaBjb2RlPGJyPgorMTIwNDEwoKCgeDg2OqBwcmVmZXRjaHegKDB4RqAweESgMHg0OKAweDQpPGJyPgorMTIwNzI4oKCgVElPQ1NFUkdFVExTUiygVElPQ0dJQ09VTlQsoEhESU9fR0VUX0RNQaBpb2N0bHM8YnI+CisxMjA2NTigoKBCdWlsZKBmaXhlc6Bmb3KgZ2NjoDIuOTY8YnI+CisxMjA3MzSgoKB4ODY6oFN1cHBvcnSgZm9yoGNoYW5naW5noEVJUKBpbqBzaWduYWygaGFuZGxlcjxicj4KK24taS1ieqCgoG1lbWNoZWNrL3Rlc3RzL3plcm9wYWdloGRlLWxvb3BpbmegZml4PGJyPgorbi1pLWJ6oKCgeDg2OqBmeHRyYWN0oGRvZXNuJ3Sgd29ya6ByZWxpYWJseTxicj4KKzEyMTY2MqCgoHg4NjqgbG9ja6B4YWRkoCgweEYwoDB4RqAweEMwoDB4Mik8YnI+CisxMjE4OTOgoKBjYWxsb2OgZG9lc6Bub3SgYWx3YXlzoHJldHVybqB6ZXJvZWSgbWVtb3J5PGJyPgorMTIxOTAxoKCgbm+gc3VwcG9ydKBmb3Kgc3lzY2FsbKB0a2lsbDxicj4KK24taS1ieqCgoFN1cHByZXNzaW9uoHVwZGF0ZaBmb3KgRGViaWFuoHVuc3RhYmxlPGJyPgorMTIyMDY3oKCgYW1kNjQ6oGZjbW92bnWgKDB4REKgMHhEOSk8YnI+CituLWktYnqgoKBwcGMzMjqgYnJva2VuoHNpZ25hbKBoYW5kbGluZ6BpbqBjcHWgZmVhdHVyZaBkZXRlY3Rpb248YnI+CituLWktYnqgoKBwcGMzMjqgcm91bmRpbmegbW9kZaBwcm9ibGVtc6AoaW1wcm92ZWQsoHBhcnRpYWygZml4oG9ubHkpPGJyPgorMTE5NDgyoKCgcHBjMzI6oG10ZnNiMTxicj4KK24taS1ieqCgoHBwYzMyOqBtdG9jcmYvbWZvY3JmPGJyPgorPGJyPgorKDMuMS4xOqCgMTWgTWFyY2igMjAwNiygdmV4oHIxNTk3LKB2YWxncmluZKByNTc3MSkuPGJyPgorPGJyPgorPGJyPgorUmVsZWFzZaAzLjEuMKAoMjWgTm92ZW1iZXKgMjAwNSk8YnI+Cit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fjxicj4KKzMuMS4woGlzoGGgZmVhdHVyZaByZWxlYXNloHdpdGigYaBudW1iZXKgb2agc2lnbmlmaWNhbnSgaW1wcm92ZW1lbnRzOjxicj4KK0FNRDY0oHN1cHBvcnSgaXOgbXVjaKBpbXByb3ZlZCygUFBDMzKgc3VwcG9ydKBpc6Bnb29koGVub3VnaKB0b6BiZTxicj4KK3VzYWJsZSygYW5koHRoZaBoYW5kbGluZ6BvZqBtZW1vcnmgbWFuYWdlbWVudKBhbmSgYWRkcmVzc6BzcGFjZaBpczxicj4KK211Y2igbW9yZaByb2J1c3QuoKBJbqBkZXRhaWw6PGJyPgorPGJyPgorLaBBTUQ2NKBzdXBwb3J0oGlzoG11Y2igaW1wcm92ZWQuoKBUaGWgNjQtYml0oHZzLqAzMi1iaXSgaXNzdWVzoGluPGJyPgoroKAzLjAuWKBoYXZloGJlZW6gcmVzb2x2ZWQsoGFuZKBpdKBzaG91bGSgImp1c3Sgd29yayKgbm93oGluoGFsbDxicj4KK6CgY2FzZXMuoKBPbqBBTUQ2NKBtYWNoaW5lc6Bib3RooDY0LWJpdKBhbmSgMzItYml0oHZlcnNpb25zoG9mPGJyPgoroKBWYWxncmluZKBhcmWgYnVpbHQuoKBUaGWgcmlnaHSgdmVyc2lvbqB3aWxsoGJloGludm9rZWQ8YnI+CiugoGF1dG9tYXRpY2FsbHksoGV2ZW6gd2hlbqB1c2luZ6AtLXRyYWNlLWNoaWxkcmVuoGFuZKBtaXhpbmegZXhlY3V0aW9uPGJyPgoroKBiZXR3ZWVuoDY0LWJpdKBhbmSgMzItYml0oGV4ZWN1dGFibGVzLqCgQWxzbyygbWFueaBtb3JloGluc3RydWN0aW9uczxicj4KK6CgYXJloHN1cHBvcnRlZC48YnI+Cis8YnI+CistoFBQQzMyoHN1cHBvcnSgaXOgbm93oGdvb2SgZW5vdWdooHRvoGJloHVzYWJsZS6goEl0oHNob3VsZKB3b3JroHdpdGg8YnI+CiugoGFsbKB0b29scyygYnV0oHBsZWFzZaBsZXSgdXOga25vd6BpZqB5b3WgaGF2ZaBwcm9ibGVtcy6goFRocmVlPGJyPgoroKBjbGFzc2VzoG9moENQVXOgYXJloHN1cHBvcnRlZDqgaW50ZWdlcqBvbmx5oChub6BGUCygbm+gQWx0aXZlYyksPGJyPgoroKB3aGljaKBjb3ZlcnOgZW1iZWRkZWSgUFBDoHVzZXMsoGludGVnZXKgYW5koEZQoGJ1dKBub6BBbHRpdmVjPGJyPgoroKAoRzMtaXNoKSygYW5koENQVXOgY2FwYWJsZaBvZqBBbHRpdmVjoHRvb6AoRzQsoEc1KS48YnI+Cis8YnI+CistoFZhbGdyaW5kJ3OgYWRkcmVzc6BzcGFjZaBtYW5hZ2VtZW50oGhhc6BiZWVuoG92ZXJoYXVsZWQuoKBBc6BhPGJyPgoroKByZXN1bHQsoFZhbGdyaW5koHNob3VsZKBiZaBtdWNooG1vcmWgcm9idXN0oHdpdGigcHJvZ3JhbXOgdGhhdKB1c2U8YnI+CiugoGxhcmdloGFtb3VudHOgb2agbWVtb3J5LqCgVGhlcmWgc2hvdWxkoGJloG1hbnmgZmV3ZXKgIm1lbW9yeTxicj4KK6CgZXhoYXVzdGVkIqBtZXNzYWdlcyygYW5koGRlYnVnoHN5bWJvbHOgc2hvdWxkoGJloHJlYWSgY29ycmVjdGx5oG9uPGJyPgoroKBsYXJnZaAoZWcuoDMwME1CKymgZXhlY3V0YWJsZXMuoKBPbqAzMi1iaXSgbWFjaGluZXOgdGhloGZ1bGygYWRkcmVzczxicj4KK6Cgc3BhY2WgYXZhaWxhYmxloHRvoHVzZXKgcHJvZ3JhbXOgKHVzdWFsbHmgM0dCoG9yoDRHQimgY2FuoGJloGZ1bGx5PGJyPgoroKB1dGlsaXNlZC6goE9uoDY0LWJpdKBtYWNoaW5lc6B1cKB0b6AzMkdCoG9moHNwYWNloGlzoHVzYWJsZTugd2hlbjxicj4KK6CgdXNpbmegTWVtY2hlY2ugdGhhdKBtZWFuc6B5b3VyoHByb2dyYW2gY2FuoHVzZaB1cKB0b6BhYm91dKAxNEdCLjxicj4KKzxicj4KK6CgQaBzaWRloGVmZmVjdKBvZqB0aGlzoGNoYW5nZaBpc6B0aGF0oFZhbGdyaW5koGlzoG5voGxvbmdlcqBwcm90ZWN0ZWQ8YnI+CiugoGFnYWluc3Sgd2lsZKB3cml0ZXOgYnmgdGhloGNsaWVudC6goFRoaXOgZmVhdHVyZaB3YXOgbmljZaBidXSgcmVsaWVkPGJyPgoroKBvbqB0aGWgeDg2oHNlZ21lbnSgcmVnaXN0ZXJzoGFuZKBzb6B3YXNuJ3SgcG9ydGFibGUuPGJyPgorPGJyPgorLaBNb3N0oHVzZXJzoHNob3VsZKBub3Sgbm90aWNlLKBidXSgYXOgcGFydKBvZqB0aGWgYWRkcmVzc6BzcGFjZTxicj4KK6CgbWFuYWdlcqBjaGFuZ2UsoHRoZaB3YXmgVmFsZ3JpbmSgaXOgYnVpbHSgaGFzoGJlZW6gY2hhbmdlZC6goEVhY2g8YnI+CiugoHRvb2ygaXOgbm93oGJ1aWx0oGFzoGGgc3RhdGljYWxseaBsaW5rZWSgc3RhbmQtYWxvbmWgZXhlY3V0YWJsZSw8YnI+CiugoHJhdGhlcqB0aGFuoGFzoGGgc2hhcmVkoG9iamVjdKB0aGF0oGlzoGR5bmFtaWNhbGx5oGxpbmtlZKB3aXRooHRoZTxicj4KK6CgY29yZS6goFRoZaAidmFsZ3JpbmQioHByb2dyYW2gaW52b2tlc6B0aGWgYXBwcm9wcmlhdGWgdG9vbKBkZXBlbmRpbmc8YnI+CiugoG9uoHRoZaAtLXRvb2ygb3B0aW9uLqCgVGhpc6BzbGlnaHRseaBpbmNyZWFzZXOgdGhloGFtb3VudKBvZqBkaXNrPGJyPgoroKBzcGFjZaB1c2VkoGJ5oFZhbGdyaW5kLKBidXSgaXSgZ3JlYXRseaBzaW1wbGlmaWVkoG1hbnmgdGhpbmdzoGFuZDxicj4KK6CgcmVtb3ZlZKBWYWxncmluZCdzoGRlcGVuZGVuY2Wgb26gZ2xpYmMuPGJyPgorPGJyPgorUGxlYXNloG5vdGWgdGhhdKBBZGRyY2hlY2ugYW5koEhlbGdyaW5koGFyZaBzdGlsbKBub3Sgd29ya2luZy6goFdvcms8YnI+Citpc6B1bmRlcndheaB0b6ByZWluc3RhdGWgdGhlbaAob3KgZXF1aXZhbGVudHMpLqCgV2WgYXBvbG9naXNloGZvcqB0aGU8YnI+CitpbmNvbnZlbmllbmNlLjxicj4KKzxicj4KK090aGVyoHVzZXItdmlzaWJsZaBjaGFuZ2VzOjxicj4KKzxicj4KKy2gVGhloC0td2VpcmQtaGFja3Ogb3B0aW9uoGhhc6BiZWVuoHJlbmFtZWSgLS1zaW0taGludHMuPGJyPgorPGJyPgorLaBUaGWgLS10aW1lLXN0YW1woG9wdGlvbqBub6Bsb25nZXKgZ2l2ZXOgYW6gYWJzb2x1dGWgZGF0ZaBhbmSgdGltZS48YnI+CiugoEl0oG5vd6BwcmludHOgdGhloHRpbWWgZWxhcHNlZKBzaW5jZaB0aGWgcHJvZ3JhbaBiZWdhbi48YnI+Cis8YnI+CistoEl0oHNob3VsZKBidWlsZKB3aXRooGdjYy0yLjk2Ljxicj4KKzxicj4KKy2gVmFsZ3JpbmSgY2FuoG5vd6BydW6gaXRzZWxmoChzZWWgUkVBRE1FX0RFVkVMT1BFUlOgZm9yoGhvdykuPGJyPgoroKBUaGlzoGlzoG5vdKBtdWNooHVzZaB0b6B5b3UsoGJ1dKBpdKBtZWFuc6B0aGWgZGV2ZWxvcGVyc6BjYW6gbm93PGJyPgoroKBwcm9maWxloFZhbGdyaW5koHVzaW5noENhY2hlZ3JpbmQuoKBBc6BhoHJlc3VsdKBhoGNvdXBsZaBvZjxicj4KK6CgcGVyZm9ybWFuY2WgYmFkoGNhc2VzoGhhdmWgYmVlbqBmaXhlZC48YnI+Cis8YnI+CistoFRoZaBYTUygb3V0cHV0oGZvcm1hdKBoYXOgY2hhbmdlZKBzbGlnaHRseS6goFNlZTxicj4KK6CgZG9jcy9pbnRlcm5hbHMveG1sLW91dHB1dC50eHQuPGJyPgorPGJyPgorLaBDb3JloGR1bXBpbmegaGFzoGJlZW6gcmVpbnN0YXRlZKAoaXSgd2FzoGRpc2FibGVkoGluoDMuMC4woGFuZKAzLjAuMSkuPGJyPgoroKBJZqB5b3VyoHByb2dyYW2gY3Jhc2hlc6B3aGlsZaBydW5uaW5noHVuZGVyoFZhbGdyaW5kLKBhoGNvcmWgZmlsZaB3aXRoPGJyPgoroKB0aGWgbmFtZaAidmdjb3JlLiZsdDtwaWQmZ3Q7IqB3aWxsoGJloGNyZWF0ZWSgKGlmoHlvdXKgc2V0dGluZ3OgYWxsb3egY29yZTxicj4KK6CgZmlsZaBjcmVhdGlvbikuoKBOb3RloHRoYXSgdGhloGZsb2F0aW5noHBvaW50oGluZm9ybWF0aW9uoGlzoG5vdKBhbGw8YnI+CiugoHRoZXJlLqCgSWagVmFsZ3JpbmSgaXRzZWxmoGNyYXNoZXMsoHRoZaBPU6B3aWxsoGNyZWF0ZaBhoG5vcm1hbKBjb3JlPGJyPgoroKBmaWxlLjxicj4KKzxicj4KK1RoZaBmb2xsb3dpbmegYXJloHNvbWWgdXNlci12aXNpYmxloGNoYW5nZXOgdGhhdKBvY2N1cnJlZKBpbqBlYXJsaWVyPGJyPgordmVyc2lvbnOgdGhhdKBtYXmgbm90oGhhdmWgYmVlbqBhbm5vdW5jZWQsoG9yoHdlcmWgYW5ub3VuY2VkoGJ1dKBub3Q8YnI+Cit3aWRlbHmgbm90aWNlZC6goFNvoHdlJ3JloG1lbnRpb25pbmegdGhlbaBub3cuPGJyPgorPGJyPgorLaBUaGWgLS10b29soGZsYWegaXOgb3B0aW9uYWygb25jZaBhZ2FpbjugoGlmoHlvdaBvbWl0oGl0LKBNZW1jaGVjazxicj4KK6CgaXOgcnVuoGJ5oGRlZmF1bHQuPGJyPgorPGJyPgorLaBUaGWgLS1udW0tY2FsbGVyc6BmbGFnoG5vd6BoYXOgYaBkZWZhdWx0oHZhbHVloG9moDEyLqCgSXSgd2FzPGJyPgoroKBwcmV2aW91c2x5oDQuPGJyPgorPGJyPgorLaBUaGWgLS14bWw9eWVzoGZsYWegY2F1c2VzoFZhbGdyaW5kJ3Ogb3V0cHV0oHRvoGJloHByb2R1Y2VkoGluoFhNTDxicj4KK6CgZm9ybWF0LqCgVGhpc6Bpc6BkZXNpZ25lZKB0b6BtYWtloGl0oGVhc3mgZm9yoG90aGVyoHByb2dyYW1zoHRvPGJyPgoroKBjb25zdW1loFZhbGdyaW5kJ3Ogb3V0cHV0LqCgVGhloGZvcm1hdKBpc6BkZXNjcmliZWSgaW6gdGhloGZpbGU8YnI+CiugoGRvY3MvaW50ZXJuYWxzL3htbC1mb3JtYXQudHh0Ljxicj4KKzxicj4KKy2gVGhloC0tZ2VuLXN1cHByZXNzaW9uc6BmbGFnoHN1cHBvcnRzoGFuoCJhbGwioHZhbHVloHRoYXSgY2F1c2VzoGV2ZXJ5PGJyPgoroKBzdXBwcmVzc2lvbqB0b6BiZaBwcmludGVkoHdpdGhvdXSgYXNraW5nLjxicj4KKzxicj4KKy2gVGhloC0tbG9nLWZpbGWgb3B0aW9uoG5voGxvbmdlcqBwdXRzoCJwaWQioGluoHRoZaBmaWxlbmFtZSygZWcuoHRoZTxicj4KK6Cgb2xkoG5hbWWgImZvby5waWQxMjM0NSKgaXOgbm93oCJmb28uMTIzNDUiLjxicj4KKzxicj4KKy2gVGhlcmWgYXJloHNldmVyYWygZ3JhcGhpY2FsoGZyb250LWVuZHOgZm9yoFZhbGdyaW5kLKBzdWNooGFzoFZhbGt5cmllLDxicj4KK6CgQWxsZXlvb3CgYW5koFZhbGd1aS6goFNlZaBodHRwOi8vd3d3LnZhbGdyaW5kLm9yZy9kb3dubG9hZHMvZ3Vpcy5odG1sPGJyPgoroKBmb3KgYaBsaXN0Ljxicj4KKzxicj4KK0JVR1OgRklYRUQ6PGJyPgorPGJyPgorMTA5ODYxoKBhbWQ2NKBoYW5nc6BhdKBzdGFydHVwPGJyPgorMTEwMzAxoKBkaXR0bzxicj4KKzExMTU1NKCgdmFsZ3JpbmSgY3Jhc2hlc6B3aXRooENhbm5vdKBhbGxvY2F0ZaBtZW1vcnk8YnI+CisxMTE4MDmgoE1lbWNoZWNroHRvb2ygZG9lc24ndKBzdGFydKBqYXZhPGJyPgorMTExOTAxoKBjcm9zcy1wbGF0Zm9ybaBydW6gb2agY2FjaGVncmluZKBmYWlsc6BvbqBvcHRlcm9uPGJyPgorMTEzNDY4oKAodmdQbGFpbl9tcHJvdGVjdF9yYW5nZSk6oEFzc2VydGlvbqAncqAhPaAtMSegZmFpbGVkLjxicj4KK6A5MjA3MaCgUmVhZGluZ6BkZWJ1Z2dpbmegaW5mb6B1c2VzoHRvb6BtdWNooG1lbW9yeTxicj4KKzEwOTc0NKCgbWVtY2hlY2ugbG9zZXOgdHJhY2ugb2agbW1hcKBmcm9toGRpcmVjdKBsZC1saW51eC5zby4yPGJyPgorMTEwMTgzoKB0YWlsoG9moHBhZ2Wgd2l0aKBfZW5kPGJyPgoroDgyMzAxoKBGVqBtZW1vcnmgbGF5b3V0oHRvb6ByaWdpZDxicj4KK6A5ODI3OKCgSW5maW5pdGWgcmVjdXJzaW9uoHBvc3NpYmxloHdoZW6gYWxsb2NhdGluZ6BtZW1vcnk8YnI+CisxMDg5OTSgoFZhbGdyaW5koHJ1bnOgb3V0oG9moG1lbW9yeaBkdWWgdG+gMTMzeKBvdmVyaGVhZDxicj4KKzExNTY0M6CgdmFsZ3JpbmSgY2Fubm90oGFsbG9jYXRloG1lbW9yeTxicj4KKzEwNTk3NKCgdmdfaGFzaHRhYmxlLmOgc3RhdGljoGhhc2igdGFibGU8YnI+CisxMDkzMjOgoHBwYzMyOqBkaXNwYXRjaC5ToHVzZXOgQWx0aXZlY6BpbnNuLKB3aGljaKBkb2Vzbid0oHdvcmugb26gUE9XRVIuoDxicj4KKzEwOTM0NaCgcHRyYWNlX3NldHJlZ3Ogbm90oHlldKBpbXBsZW1lbnRlZKBmb3KgcHBjPGJyPgorMTEwODMxoKBXb3VsZKBsaWtloHRvoGJloGFibGWgdG+gcnVuoGFnYWluc3SgYm90aKAzMqBhbmSgNjSgYml0oDxicj4KK6CgoKCgoKCgYmluYXJpZXOgb26gQU1ENjQ8YnI+CisxMTA4MjmgoD09oDExMDgzMTxicj4KKzExMTc4MaCgY29tcGlsZaBvZqB2YWxncmluZC0zLjAuMKBmYWlsc6BvbqBteaBsaW51eKAoZ2NjoDIuWKBwcm9iKTxicj4KKzExMjY3MKCgQ2FjaGVncmluZDqgY2dfbWFpbi5jOjQ4NqAoaGFuZGxlT25lU3RhdGVtZW50oC4uLjxicj4KKzExMjk0MaCgdmV4oHg4NjqgMHhEOaAweEY0oChmeHRyYWN0KTxicj4KKzExMDIwMaCgPT2gMTEyOTQxPGJyPgorMTEzMDE1oKB2ZXigYW1kNjQtJmd0O0lSOqAweEUzoDB4MTSgMHg0OKAweDgzoChqcmN4eik8YnI+CisxMTMxMjagoENyYXNooHdpdGigYmluYXJpZXOgYnVpbHSgd2l0aKAtZ3N0YWJzKy8tZ2dkYjxicj4KKzEwNDA2NaCgPT2gMTEzMTI2PGJyPgorMTE1NzQxoKA9PaAxMTMxMjY8YnI+CisxMTM0MDOgoFBhcnRpYWygU1NFM6BzdXBwb3J0oG9uoHg4Njxicj4KKzExMzU0MaCgdmV4OqBHcnA1KHg4NimgKGFsdKBlbmNvZGluZ6BpbmMvZGVjKaBjYXNloDE8YnI+CisxMTM2NDKgoHZhbGdyaW5koGNyYXNoZXOgd2hlbqB0cnlpbmegdG+gcmVhZKBkZWJ1Z6BpbmZvcm1hdGlvbjxicj4KKzExMzgxMKCgdmV4oHg4Ni0mZ3Q7SVI6oDY2oDBGoEY2oCg2NqAroFBTQURCV6A9PaBTU0WgUFNBREJXKTxicj4KKzExMzc5NqCgcmVhZCgpoGFuZKB3cml0ZSgpoGRvoG5vdKB3b3JroGlmoGJ1ZmZlcqBpc6BpbqBzaGFyZWSgbWVtb3J5PGJyPgorMTEzODUxoKB2ZXigeDg2LSZndDtJUjqgKHBtYWRkd2QpOqAweDY2oDB4RqAweEY1oDB4Qzc8YnI+CisxMTQzNjagoHZleKBhbWQ2NKBjYW5ubm90oGhhbmRsZaBfX2FzbV9fKKAiZm5pbml0IqApPGJyPgorMTE0NDEyoKB2ZXigYW1kNjQtJmd0O0lSOqAweEagMHhBRKAweEMyoDB4RDOgKDEyOC1iaXSgc2hpZnQsoHNocmRxPyk8YnI+CisxMTQ0NTWgoHZleKBhbWQ2NC0mZ3Q7SVI6oDB4RqAweEFDoDB4RDCgMHgxoChhbHNvoHNocmRxKTxicj4KKzExNTU5MDqgYW1kNjQtJmd0O0lSOqAweDY3oDB4RTOgMHg5oDB4RUKgKGFkZHJlc3Ogc2l6ZaBvdmVycmlkZSk8YnI+CisxMTU5NTOgoHZhbGdyaW5koHN2bqByNTA0MqBkb2VzoG5vdKBidWlsZKB3aXRooHBhcmFsbGVsoG1ha2WgKC1qMyk8YnI+CisxMTYwNTegoG1heGltdW2gaW5zdHJ1Y3Rpb26gc2l6ZaAtoFZHX01BWF9JTlNUUl9TWkKgdG9voHNtYWxsPzxicj4KKzExNjQ4M6Cgc2htYXSgZmFpbGVzoHdpdGigaW52YWxpZKBhcmd1bWVudDxicj4KKzEwMjIwMqCgdmFsZ3JpbmSgY3Jhc2hlc6B3aGVuoHJlYWxsb2MnaW5noHVudGlsoG91dKBvZqBtZW1vcnk8YnI+CisxMDk0ODegoD09oDEwMjIwMjxicj4KKzExMDUzNqCgPT2gMTAyMjAyPGJyPgorMTEyNjg3oKA9PaAxMDIyMDI8YnI+CisxMTE3MjSgoHZleKBhbWQ2NC0mZ3Q7SVI6oDB4NDGgMHhGoDB4QUKgKG1vcmWgQlR7LFMsUixDfaBmdW6gbqBnYW1lcyk8YnI+CisxMTE3NDigoHZleKBhbWQ2NC0mZ3Q7SVI6oDB4RESgMHhFMqAoZnVjb20pPGJyPgorMTExNzg1oKBtYWtloGZhaWxzoGlmoENDoGNvbnRhaW5zoHNwYWNlczxicj4KKzExMTgyOaCgdmV4oHg4Ni0mZ3Q7SVI6oHNiYqBBTCygSWI8YnI+CisxMTE4NTGgoHZleKB4ODYtJmd0O0lSOqAweDlGoDB4ODmgKGxhaGYvc2FoZik8YnI+CisxMTIwMzGgoGlvcGygb26gQU1ENjSgYW5koFJFQURNRV9NSVNTSU5HX1NZU0NBTExfT1JfSU9DVEygdXBkYXRlPGJyPgorMTEyMTUyoKBjb2RloGdlbmVyYXRpb26gZm9yoFhpbl9NRmVuY2Wgb26geDg2oHdpdGigU1NFMKBzdWJhcmNoPGJyPgorMTEyMTY3oKA9PaAxMTIxNTI8YnI+CisxMTI3ODmgoD09oDExMjE1Mjxicj4KKzExMjE5OaCgbmFrZWSgYXKgdG9vbKBpc6B1c2VkoGluoHZleKBtYWtlZmlsZTxicj4KKzExMjUwMaCgdmV4oHg4Ni0mZ3Q7SVI6oG1vdnGgKDB4RqAweDdGoDB4QzGgMHhGKaAobW14oE1PVlEpPGJyPgorMTEzNTgzoKA9PaAxMTI1MDE8YnI+CisxMTI1MzigoG1lbWFsaWduoGNyYXNoPGJyPgorMTEzMTkwoKBCcm9rZW6gbGlua3OgaW6gZG9jcy9odG1sLzxicj4KKzExMzIzMKCgVmFsZ3JpbmSgc3lzX3BpcGWgb26geDg2LTY0oHdyb25nbHmgdGhpbmtzoGZpbGWgZGVzY3JpcHRvcnM8YnI+CiugoKCgoKCgoHNob3VsZKBiZaA2NGJpdDxicj4KKzExMzk5NqCgdmV4oGFtZDY0LSZndDtJUjqgZnVjb21woCgweEREoDB4RTkpPGJyPgorMTE0MTk2oKB2ZXigeDg2LSZndDtJUjqgb3V0oCVlYXgsKCVkeCmgKDB4RUagMHhDOaAweEMzoDB4OTApPGJyPgorMTE0Mjg5oKBNZW1jaGVja6BmYWlsc6B0b6BpbnRlcmNlcHSgbWFsbG9joHdoZW6gdXNlZKBpbqBhbqB1Y2xpYmOgZW52aXJvbm1lbnQ8YnI+CisxMTQ3NTagoG1iaW5koHN5c2NhbGygc3VwcG9ydDxicj4KKzExNDc1N6CgVmFsZ3JpbmSgZGllc6B3aXRooGFzc2VydGlvbjqgQXNzZXJ0aW9uoCdub0xhcmdlclRoYW6gJmd0O6AwJ6BmYWlsZWQ8YnI+CisxMTQ1NjOgoHN0YWNroHRyYWNraW5noG1vZHVsZaBub3SgaW5mb3JtZWSgd2hlbqB2YWxncmluZKBzd2l0Y2hlc6B0aHJlYWRzPGJyPgorMTE0NTY0oKBjbG9uZSgpoGFuZKBzdGFja3M8YnI+CisxMTQ1NjWgoD09oDExNDU2NDxicj4KKzExNTQ5NqCgZ2xpYmOgY3Jhc2hlc6B0cnlpbmegdG+gdXNloHN5c2luZm+gcGFnZTxicj4KKzExNjIwMKCgZW5hYmxloGZzZXR4YXR0ciygZmdldHhhdHRyLKBhbmSgZnJlbW92ZXhhdHRyoGZvcqBhbWQ2NDxicj4KKzxicj4KKygzLjEuMFJDMTqgMjCgTm92ZW1iZXKgMjAwNSygdmV4oHIxNDY2LKB2YWxncmluZKByNTIyNCkuPGJyPgorKDMuMS4wOqCgoKAyNqBOb3ZlbWJlcqAyMDA1LKB2ZXigcjE0NzEsoHZhbGdyaW5koHI1MjM1KS48YnI+Cis8YnI+Cis8YnI+CitSZWxlYXNloDMuMC4xoCgyOaBBdWd1c3SgMjAwNSk8YnI+Cit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn48YnI+CiszLjAuMaBmaXhlc6BhoGJ1bmNooG9moGJ1Z3OgcmVwb3J0ZWSgaW6gMy4wLjAuoKBUaGVyZaBpc6Bub6BuZXc8YnI+CitmdW5jdGlvbmFsaXR5LqCgU29tZaBvZqB0aGWgZml4ZWSgYnVnc6BhcmWgY3JpdGljYWwsoHNvoGlmoHlvdTxicj4KK3VzZS9kaXN0cmlidXRloDMuMC4wLKBhbqB1cGdyYWRloHRvoDMuMC4xoGlzoHJlY29tbWVuZGVkLqCgVGhloGZpeGVkPGJyPgorYnVnc6BhcmU6PGJyPgorPGJyPgorKG5vdGU6oCJuLWktYnoioG1lYW5zoCJub3SgaW6gYnVnemlsbGEioC0toHRoaXOgYnVnoGRvZXOgbm90oGhhdmU8YnI+CiugYaBidWd6aWxsYaBlbnRyeSkuPGJyPgorPGJyPgorMTA5MzEzoKAoPT2gMTEwNTA1KaB4ODagY21weGNoZzhiPGJyPgorbi1pLWJ6oKB4ODY6oHRyYWNroGJ1dKBpZ25vcmWgY2hhbmdlc6B0b6AlZWZsYWdzLkFDoChhbGlnbm1lbnSgY2hlY2spPGJyPgorMTEwMTAyoKBkaXNfb3AyX0VfRyhhbWQ2NCk8YnI+CisxMTAyMDKgoHg4NqBzeXNfd2FpdHBpZCgjMjg2KTxicj4KKzExMDIwM6CgY2xvY2tfZ2V0cmVzKCwwKTxicj4KKzExMDIwOKCgZXhlY3ZloGZhaWygd3JvbmegcmV0dmFsPGJyPgorMTEwMjc0oKBTU0UxoG5vd6BtYW5kYXRvcnmgZm9yoHg4Njxicj4KKzExMDM4OKCgYW1kNjSgMHhERKAweEQxPGJyPgorMTEwNDY0oKBhbWQ2NKAweERDoDB4MUSgRkNPTVA8YnI+CisxMTA0NzigoGFtZDY0oDB4RqAweESgUFJFRkVUQ0g8YnI+CituLWktYnqgoFhNTKAmbHQ7dW5pcXVlJmd0O6BwcmludGluZ6B3cm9uZzxicj4KK24taS1ieqCgRGlya6ByNDM1OaAoYW1kNjSgc3lzY2FsbHOgZnJvbaB0cnVuayk8YnI+CisxMTA1OTGgoGFtZDY0oGFuZKB4ODY6oHJkdHNjoG5vdKBpbXBsZW1lbnRlZKBwcm9wZXJseTxicj4KK24taS1ieqCgTmlja6ByNDM4NKAoc3R1YqBpbXBsZW1lbnRhdGlvbnOgb2agQWRkcmNoZWNroGFuZKBIZWxncmluZCk8YnI+CisxMTA2NTKgoEFNRDY0oHZhbGdyaW5koGNyYXNoZXOgb26gY3d0ZKBpbnN0cnVjdGlvbjxicj4KKzExMDY1M6CgQU1ENjSgdmFsZ3JpbmSgY3Jhc2hlc6BvbqBzYXJioCQweDQsZm9vKCVyaXApoGluc3RydWN0aW9uPGJyPgorMTEwNjU2oKBQQVRIPS91c3IvYmluOjovYmluoHZhbGdyaW5koGZvb2JhcqBzdGF0c6AuL2Zvb2JhPGJyPgorMTEwNjU3oKBTbWFsbKB0ZXN0oGZpeGVzPGJyPgorMTEwNjcxoKB2ZXigeDg2LSZndDtJUjqgdW5oYW5kbGVkoGluc3RydWN0aW9uoGJ5dGVzOqAweEYzoDB4QzOgKHJlcKByZXQpPGJyPgorbi1pLWJ6oKBOaWNroChDYWNoZWdyaW5koHNob3VsZKBub3SgYXNzZXJ0oHdoZW6gaXSgZW5jb3VudGVyc6BhoGNsaWVudDxicj4KK6CgoKCgoKCgcmVxdWVzdC4pPGJyPgorMTEwNjg1oKBhbWQ2NC0mZ3Q7SVI6oHVuaGFuZGxlZKBpbnN0cnVjdGlvbqBieXRlczqgMHhFMaAweDU2oChsb29wZaBKYik8YnI+CisxMTA4MzCgoGNvbmZpZ3VyaW5noHdpdGigLS1ob3N0oGZhaWxzoHRvoGJ1aWxkoDMyoGJpdKBvbqA2NKBiaXSgdGFyZ2V0PGJyPgorMTEwODc1oKBBc3NlcnRpb26gd2hlbqBleGVjdmWgZmFpbHM8YnI+CituLWktYnqgoFVwZGF0ZXOgdG+gTWVtY2hlY2ugbWFudWFsPGJyPgorbi1pLWJ6oKBGaXhlZKBicm9rZW6gbWFsbG9jX3VzYWJsZV9zaXplKCk8YnI+CisxMTA4OTigoG9wdGVyb26gaW5zdHJ1Y3Rpb25zoG1pc3Npbmc6oGJ0caBidHNxoGJ0cnGgYnNmcTxicj4KKzExMDk1NKCgeDg2LSZndDtJUjqgdW5oYW5kbGVkoGluc3RydWN0aW9uoGJ5dGVzOqAweEUyoDB4RjagKGxvb3CgSmIpPGJyPgorbi1pLWJ6oKBNYWtloHN1cHByZXNzaW9uc6B3b3JroGZvcqAiPz8/IqBsaW5lc6BpbqBzdGFja3RyYWNlcy48YnI+CisxMTEwMDagoGJvZ3VzoHdhcm5pbmdzoGZyb22gbGludXh0aHJlYWRzPGJyPgorMTExMDkyoKB4ODY6oGRpc19HcnAyKFJlZyk6oHVuaGFuZGxlZKBjYXNlKHg4NimgPGJyPgorMTExMjMxoKBzY3RwX2dldGxhZGRycygpoGFuZKBzY3RwX2dldHBhZGRycygpoHJldHVybnOgdW5pbml0aWFsaXplZDxicj4KK6CgoKCgoKCgbWVtb3J5PGJyPgorMTExMTAyoKAoY29tbWVudKAjNCmgoKBGaXhlZKA2NC1iaXSgdW5jbGVhbqAic2lsbHmgYXJnIqBtZXNzYWdlPGJyPgorbi1pLWJ6oKB2ZXigeDg2LSZndDtJUjqgdW5oYW5kbGVkoGluc3RydWN0aW9uoGJ5dGVzOqAweDE0oDB4MDxicj4KK24taS1ieqCgbWlub3KgdW1vdW50L2ZjbnRsoHdyYXBwZXKgZml4ZXM8YnI+CisxMTEwOTCgoEludGVybmFsoEVycm9yoHJ1bm5pbmegTWFzc2lmPGJyPgorMTAxMjA0oKBub2lzeaB3YXJuaW5nPGJyPgorMTExNTEzoKBJbGxlZ2FsoG9wY29kZaBmb3KgU1NFoGluc3RydWN0aW9uoCh4ODagbW92dXBzKTxicj4KKzExMTU1NaCgVkVYL01ha2VmaWxlOqBDQ6Bpc6BzZXSgdG+gZ2NjPGJyPgorbi1pLWJ6oKBGaXigWE1MoGJ1Z3OgaW6gRkFRPGJyPgorPGJyPgorKDMuMC4xOqAyOaBBdWd1c3SgMDUsPGJyPgoroKCgoKCgoKB2ZXgvYnJhbmNoZXMvVkVYXzNfMF9CUkFOQ0igcjEzNjcsPGJyPgoroKCgoKCgoKB2YWxncmluZC9icmFuY2hlcy9WQUxHUklORF8zXzBfQlJBTkNIoHI0NTc0KS48YnI+Cis8YnI+Cis8YnI+Cis8YnI+CitSZWxlYXNloDMuMC4woCgzoEF1Z3VzdKAyMDA1KTxicj4KK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+PGJyPgorMy4wLjCgaXOgYaBtYWpvcqBvdmVyaGF1bKBvZqBWYWxncmluZC6goFRoZaBtb3N0oHNpZ25pZmljYW50oHVzZXI8YnI+Cit2aXNpYmxloGNoYW5nZaBpc6B0aGF0oFZhbGdyaW5koG5vd6BzdXBwb3J0c6BhcmNoaXRlY3R1cmVzoG90aGVyoHRoYW48YnI+Cit4ODYuoKBUaGWgbmV3oGFyY2hpdGVjdHVyZXOgaXSgc3VwcG9ydHOgYXJloEFNRDY0oGFuZKBQUEMzMiygYW5koHRoZTxicj4KK2luZnJhc3RydWN0dXJloGlzoHByZXNlbnSgZm9yoG90aGVyoGFyY2hpdGVjdHVyZXOgdG+gYmWgYWRkZWSgbGF0ZXIuPGJyPgorPGJyPgorQU1ENjSgc3VwcG9ydKB3b3Jrc6B3ZWxsLKBidXSgaGFzoHNvbWWgc2hvcnRjb21pbmdzOjxicj4KKzxicj4KKy2gSXSgZ2VuZXJhbGx5oHdvbid0oGJloGFzoHNvbGlkoGFzoHRoZaB4ODagdmVyc2lvbi6goEZvcqBleGFtcGxlLDxicj4KK6Cgc3VwcG9ydKBmb3KgbW9yZaBvYnNjdXJloGluc3RydWN0aW9uc6BhbmSgc3lzdGVtoGNhbGxzoG1heaBiZaBtaXNzaW5nLjxicj4KK6CgV2Wgd2lsbKBmaXigdGhlc2WgYXOgdGhleaBhcmlzZS48YnI+Cis8YnI+CistoEFkZHJlc3Ogc3BhY2WgbWF5oGJloGxpbWl0ZWQ7oHNlZaB0aGWgcG9pbnSgYWJvdXQ8YnI+CiugoHBvc2l0aW9uLWluZGVwZW5kZW50oGV4ZWN1dGFibGVzoGJlbG93Ljxicj4KKzxicj4KKy2gSWagVmFsZ3JpbmSgaXOgYnVpbHSgb26gYW6gQU1ENjSgbWFjaGluZSygaXSgd2lsbKBvbmx5oHJ1bqA2NC1iaXQ8YnI+CiugoGV4ZWN1dGFibGVzLqCgSWageW91oHdhbnSgdG+gcnVuoDMyLWJpdKB4ODagZXhlY3V0YWJsZXOgdW5kZXKgVmFsZ3JpbmQ8YnI+CiugoG9uoGFuoEFNRDY0LKB5b3Wgd2lsbKBuZWVkoHRvoGJ1aWxkoFZhbGdyaW5koG9uoGFuoHg4NqBtYWNoaW5loGFuZDxicj4KK6CgY29weaBpdKB0b6B0aGWgQU1ENjSgbWFjaGluZS6goEFuZKBpdKBwcm9iYWJseaB3b24ndKB3b3JroGlmoHlvdaBkbzxicj4KK6Cgc29tZXRoaW5noHRyaWNreaBsaWtloGV4ZWMnaW5noGGgMzItYml0oHByb2dyYW2gZnJvbaBhoDY0LWJpdKBwcm9ncmFtPGJyPgoroKB3aGlsZaB1c2luZ6AtLXRyYWNlLWNoaWxkcmVuPXllcy6goFdloGhvcGWgdG+gaW1wcm92ZaB0aGlzoHNpdHVhdGlvbjxicj4KK6CgaW6gdGhloGZ1dHVyZS48YnI+Cis8YnI+CitUaGWgUFBDMzKgc3VwcG9ydKBpc6B2ZXJ5oGJhc2ljLqCgSXSgbWF5oG5vdKB3b3JroHJlbGlhYmx5oGV2ZW6gZm9yPGJyPgorc21hbGygcHJvZ3JhbXMsoGJ1dKBpdCdzoGGgc3RhcnQuoKBNYW55oHRoYW5rc6B0b6BQYXVsoE1hY2tlcnJhc6Bmb3I8YnI+CitoaXOgZ3JlYXSgd29ya6B0aGF0oGVuYWJsZWSgdGhpc6BzdXBwb3J0LqCgV2WgYXJloHdvcmtpbmegdG+gbWFrZTxicj4KK1BQQzMyoHVzYWJsZaBhc6Bzb29uoGFzoHBvc3NpYmxlLjxicj4KKzxicj4KK090aGVyoHVzZXItdmlzaWJsZaBjaGFuZ2VzOjxicj4KKzxicj4KKy2gVmFsZ3JpbmSgaXOgbm+gbG9uZ2VyoGJ1aWx0oGJ5oGRlZmF1bHSgYXOgYaBwb3NpdGlvbi1pbmRlcGVuZGVudDxicj4KK6CgZXhlY3V0YWJsZaAoUElFKSygYXOgdGhpc6BjYXVzZWSgdG9voG1hbnmgcHJvYmxlbXMuPGJyPgorPGJyPgoroKBXaXRob3V0oFBJRaBlbmFibGVkLKBBTUQ2NKBwcm9ncmFtc6B3aWxsoG9ubHmgYmWgYWJsZaB0b6BhY2Nlc3OgMkdCoG9mPGJyPgoroKBhZGRyZXNzoHNwYWNlLqCgV2Wgd2lsbKBmaXigdGhpc6BldmVudHVhbGx5LKBidXSgbm90oGZvcqB0aGWgbW9tZW50Ljxicj4KK6CgPGJyPgoroKBVc2WgLS1lbmFibGUtcGlloGF0oGNvbmZpZ3VyZS10aW1loHRvoHR1cm6gdGhpc6Bvbi48YnI+Cis8YnI+CistoFN1cHBvcnSgZm9yoHByb2dyYW1zoHRoYXSgdXNloHN0YWNrLXN3aXRjaGluZ6BoYXOgYmVlbqBpbXByb3ZlZC6goFVzZTxicj4KK6CgdGhloC0tbWF4LXN0YWNrZnJhbWWgZmxhZ6Bmb3Kgc2ltcGxloGNhc2VzLKBhbmSgdGhlPGJyPgoroKBWQUxHUklORF9TVEFDS19SRUdJU1RFUiygVkFMR1JJTkRfU1RBQ0tfREVSRUdJU1RFUqBhbmQ8YnI+CiugoFZBTEdSSU5EX1NUQUNLX0NIQU5HRaBjbGllbnSgcmVxdWVzdHOgZm9yoHRyaWNraWVyoGNhc2VzLjxicj4KKzxicj4KKy2gU3VwcG9ydKBmb3KgcHJvZ3JhbXOgdGhhdKB1c2Wgc2VsZi1tb2RpZnlpbmegY29kZaBoYXOgYmVlbqBpbXByb3ZlZCw8YnI+CiugoGluoHBhcnRpY3VsYXKgcHJvZ3JhbXOgdGhhdKBwdXSgdGVtcG9yYXJ5oGNvZGWgZnJhZ21lbnRzoG9uoHRoZaBzdGFjay48YnI+CiugoFRoaXOgaGVscHOgZm9yoEOgcHJvZ3JhbXOgY29tcGlsZWSgd2l0aKBHQ0OgdGhhdKB1c2WgbmVzdGVkoGZ1bmN0aW9ucyw8YnI+CiugoGFuZKBhbHNvoEFkYaBwcm9ncmFtcy6goFRoaXOgaXOgY29udHJvbGxlZKB3aXRooHRoZaAtLXNtYy1jaGVjazxicj4KK6CgZmxhZyygYWx0aG91Z2igdGhloGRlZmF1bHSgc2V0dGluZ6BzaG91bGSgd29ya6BpbqBtb3N0oGNhc2VzLjxicj4KKzxicj4KKy2gT3V0cHV0oGNhbqBub3egYmWgcHJpbnRlZKBpbqBYTUygZm9ybWF0LqCgVGhpc6BzaG91bGSgbWFrZaBpdKBlYXNpZXI8YnI+CiugoGZvcqB0b29sc6BzdWNooGFzoEdVSaBmcm9udC1lbmRzoGFuZKBhdXRvbWF0ZWSgZXJyb3ItcHJvY2Vzc2luZzxicj4KK6Cgc2NoZW1lc6B0b6B1c2WgVmFsZ3JpbmSgb3V0cHV0oGFzoGlucHV0LqCgVGhloC0teG1soGZsYWegY29udHJvbHOgdGhpcy48YnI+CiugoEFzoHBhcnSgb2agdGhpc6BjaGFuZ2UsoEVMRqBkaXJlY3RvcnmgaW5mb3JtYXRpb26gaXOgcmVhZKBmcm9toGV4ZWN1dGFibGVzLDxicj4KK6Cgc2+gYWJzb2x1dGWgc291cmNloGZpbGWgcGF0aHOgYXJloGF2YWlsYWJsZaBpZqBuZWVkZWQuPGJyPgorPGJyPgorLaBQcm9ncmFtc6B0aGF0oGFsbG9jYXRloG1hbnmgaGVhcKBibG9ja3OgbWF5oHJ1bqBmYXN0ZXIsoGR1ZaB0bzxicj4KK6CgaW1wcm92ZW1lbnRzoGluoGNlcnRhaW6gZGF0YaBzdHJ1Y3R1cmVzLjxicj4KKzxicj4KKy2gQWRkcmNoZWNroGlzoGN1cnJlbnRseaBub3Sgd29ya2luZy6goFdloGhvcGWgdG+gZ2V0oGl0oHdvcmtpbmegYWdhaW48YnI+CiugoHNvb24uoKBIZWxncmluZKBpc6BzdGlsbKBub3Sgd29ya2luZyygYXOgd2FzoHRoZaBjYXNloGZvcqB0aGWgMi40LjA8YnI+CiugoHJlbGVhc2UuPGJyPgorPGJyPgorLaBUaGWgSklUdGVyoGhhc6BiZWVuoGNvbXBsZXRlbHmgcmV3cml0dGVuLKBhbmSgaXOgbm93oGluoGGgc2VwYXJhdGU8YnI+CiugoGxpYnJhcnksoGNhbGxlZKBWZXguoKBUaGlzoGVuYWJsZWSgYaBsb3Sgb2agdGhloHVzZXItdmlzaWJsZaBjaGFuZ2VzLDxicj4KK6Cgc3VjaKBhc6BuZXegYXJjaGl0ZWN0dXJloHN1cHBvcnQuoKBUaGWgbmV3oEpJVKB1bmZvcnR1bmF0ZWx5oHRyYW5zbGF0ZXM8YnI+CiugoG1vcmWgc2xvd2x5oHRoYW6gdGhloG9sZKBvbmUsoHNvoHByb2dyYW1zoG1heaB0YWtloGxvbmdlcqB0b6BzdGFydC48YnI+CiugoFdloGJlbGlldmWgdGhloGNvZGWgcXVhbGl0eaBpc6Bwcm9kdWNlc6Bpc6BhYm91dKB0aGWgc2FtZSygc2+gb25jZTxicj4KK6Cgc3RhcnRlZCygcHJvZ3JhbXOgc2hvdWxkoHJ1bqBhdKBhYm91dKB0aGWgc2FtZaBzcGVlZC6goEZlZWRiYWNroGFib3V0PGJyPgoroKB0aGlzoHdvdWxkoGJloHVzZWZ1bC48YnI+Cis8YnI+CiugoE9uoHRoZaBwbHVzoHNpZGUsoFZleKBhbmSgaGVuY2WgTWVtY2hlY2ugdHJhY2tzoHZhbHVloGZsb3egcHJvcGVybHk8YnI+CiugoHRocm91Z2igZmxvYXRpbmegcG9pbnSgYW5koHZlY3RvcqByZWdpc3RlcnMsoHNvbWV0aGluZ6B0aGWgMi5YoGxpbmU8YnI+CiugoGNvdWxkoG5vdKBkby6goFRoYXSgbWVhbnOgdGhhdKBNZW1jaGVja6Bpc6BtdWNooG1vcmWgbGlrZWx5oHRvoGJlPGJyPgoroKB1c2FibHmgYWNjdXJhdGWgb26gdmVjdG9yaXNlZKBjb2RlLjxicj4KKzxicj4KKy2gVGhlcmWgaXOgYaBzdWJ0bGWgY2hhbmdloHRvoHRoZaB3YXmgZXhpdGluZ6BvZqB0aHJlYWRlZKBwcm9ncmFtczxicj4KK6CgaXOgaGFuZGxlZC6goEluoDMuMCygVmFsZ3JpbmQnc6BmaW5hbKBkaWFnbm9zdGljoG91dHB1dKAobGVha6BjaGVjayw8YnI+CiugoGV0YymgaXOgbm90oHByaW50ZWSgdW50aWygdGhloGxhc3SgdGhyZWFkoGV4aXRzLqCgSWagdGhloGxhc3SgdGhyZWFkPGJyPgoroKB0b6BleGl0oHdhc6Bub3SgdGhloG9yaWdpbmFsoHRocmVhZKB3aGljaKBzdGFydGVkoHRoZaBwcm9ncmFtLKBhbnk8YnI+CiugoG90aGVyoHByb2Nlc3Ogd2FpdCgpLWluZ6BvbqB0aGlzoG9uZaB0b6BleGl0oG1heaBjb25jbHVkZaBpdKBoYXM8YnI+CiugoGZpbmlzaGVkoGJlZm9yZaB0aGWgZGlhZ25vc3RpY6BvdXRwdXSgaXOgcHJpbnRlZC6goFRoaXOgbWF5oG5vdKBiZTxicj4KK6Cgd2hhdKB5b3WgZXhwZWN0LqCgMi5YoGhhZKBhoGRpZmZlcmVudKBzY2hlbWWgd2hpY2igYXZvaWRlZKB0aGlzPGJyPgoroKBwcm9ibGVtLKBidXSgY2F1c2VkoGRlYWRsb2Nrc6B1bmRlcqBvYnNjdXJloGNpcmN1bXN0YW5jZXMsoHNvoHdlPGJyPgoroKBhcmWgdHJ5aW5noHNvbWV0aGluZ6BkaWZmZXJlbnSgZm9yoDMuMC48YnI+Cis8YnI+CistoFNtYWxsoGNoYW5nZXOgaW6gY29udHJvbKBsb2egZmlsZaBuYW1pbmegd2hpY2igbWFrZaBpdKBlYXNpZXKgdG88YnI+CiugoHVzZaB2YWxncmluZKBmb3KgZGVidWdnaW5noE1QSS1iYXNlZKBwcm9ncmFtcy6goFRoZaByZWxldmFudDxicj4KK6CgbmV3oGZsYWdzoGFyZaAtLWxvZy1maWxlLWV4YWN0bHk9oGFuZKAtLWxvZy1maWxlLXF1YWxpZmllcj0uPGJyPgorPGJyPgorLaBBc6BwYXJ0oG9moGFkZGluZ6BBTUQ2NKBzdXBwb3J0LKBEV0FSRjKgQ0ZJLWJhc2VkoHN0YWNroHVud2luZGluZzxicj4KK6Cgc3VwcG9ydKB3YXOgYWRkZWQuoKBJbqBwcmluY2lwbGWgdGhpc6BtZWFuc6BWYWxncmluZKBjYW6gcHJvZHVjZTxicj4KK6CgbWVhbmluZ2Z1bKBiYWNrdHJhY2VzoG9uoHg4NqBjb2RloGNvbXBpbGVkoHdpdGigLWZvbWl0LWZyYW1lLXBvaW50ZXI8YnI+CiugoHByb3ZpZGluZ6B5b3WgYWxzb6Bjb21waWxloHlvdXKgY29kZaB3aXRooC1mYXN5bmNocm9ub3VzLXVud2luZC10YWJsZXMuPGJyPgorPGJyPgorLaBUaGWgZG9jdW1lbnRhdGlvbqBidWlsZKBzeXN0ZW2gaGFzoGJlZW6gY29tcGxldGVseaByZWRvbmUuPGJyPgoroKBUaGWgZG9jdW1lbnRhdGlvbqBtYXN0ZXJzoGFyZaBub3egaW6gWE1MoGZvcm1hdCygYW5koGZyb22gdGhhdDxicj4KK6CgSFRNTCygUG9zdFNjcmlwdKBhbmSgUERGoGRvY3VtZW50YXRpb26gaXOgZ2VuZXJhdGVkLqCgQXOgYaByZXN1bHQ8YnI+CiugoHRoZaBtYW51YWygaXOgbm93oGF2YWlsYWJsZaBpbqBib29roGZvcm0uoKBOb3RloHRoYXSgdGhlPGJyPgoroKBkb2N1bWVudGF0aW9uoGluoHRoZaBzb3VyY2WgdGFyYmFsbHOgaXOgcHJlLWJ1aWx0LKBzb6B5b3WgZG9uJ3SgbmVlZDxicj4KK6CgYW55oFhNTKBwcm9jZXNzaW5noHRvb2xzoHRvoGJ1aWxkoFZhbGdyaW5koGZyb22gYaB0YXJiYWxsLjxicj4KKzxicj4KK0NoYW5nZXOgdGhhdKBhcmWgbm90oHVzZXItdmlzaWJsZTo8YnI+Cis8YnI+CistoFRoZaBjb2RloGhhc6BiZWVuoG1hc3NpdmVseaBvdmVyaGF1bGVkoGluoG9yZGVyoHRvoG1vZHVsYXJpc2WgaXQuPGJyPgoroKBBc6BhoHJlc3VsdKB3ZaBob3BloGl0oGlzoGVhc2llcqB0b6BuYXZpZ2F0ZaBhbmSgdW5kZXJzdGFuZC48YnI+Cis8YnI+CistoExvdHOgb2agY29kZaBoYXOgYmVlbqByZXdyaXR0ZW4uPGJyPgorPGJyPgorQlVHU6BGSVhFRDo8YnI+Cis8YnI+CisxMTAwNDagoHN6oD09oDSgYXNzZXJ0aW9uoGZhaWxlZKA8YnI+CisxMDk4MTCgoHZleKBhbWQ2NC0mZ3Q7SVI6oHVuaGFuZGxlZKBpbnN0cnVjdGlvbqBieXRlczqgMHhBM6AweDRDoDB4NzCgMHhENzxicj4KKzEwOTgwMqCgQWRkoGGgcGxhdXNpYmxlX3N0YWNrX3NpemWgY29tbWFuZC1saW5loHBhcmFtZXRlcqA/PGJyPgorMTA5NzgzoKB1bmhhbmRsZWSgaW9jdGygVElPQ01HRVSgKHJ1bm5pbmegaHegZGV0ZWN0aW9uoHRvb2ygZGlzY292ZXIpoDxicj4KKzEwOTc4MKCgdW5oYW5kbGVkoGlvY3RsoEJMS1NTWkdFVKAocnVubmluZ6BmZGlza6AtbKAvZGV2L2hkYSk8YnI+CisxMDk3MTigoHZleKB4ODYtJmd0O0lSOqB1bmhhbmRsZWSgaW5zdHJ1Y3Rpb246oGZmcmVlcKA8YnI+CisxMDk0MjmgoEFNRDY0oHVuaGFuZGxlZKBzeXNjYWxsOqAxMjegKHNpZ3BlbmRpbmcpPGJyPgorMTA5NDAxoKBmYWxzZaBwb3NpdGl2ZaB1bmluaXSgaW6gc3RyY2hyoGZyb22gbGQtbGludXguc28uMjxicj4KKzEwOTM4NaCgInN0YWJzIqBwYXJzZaBmYWlsdXJloDxicj4KKzEwOTM3OKCgYW1kNjQ6oHVuaGFuZGxlZKBpbnN0cnVjdGlvbqBSRVCgTk9QPGJyPgorMTA5Mzc2oKBhbWQ2NDqgdW5oYW5kbGVkoGluc3RydWN0aW9uoExPT1CgSmKgPGJyPgorMTA5MzYzoKBBTUQ2NKB1bmhhbmRsZWSgaW5zdHJ1Y3Rpb26gYnl0ZXOgPGJyPgorMTA5MzYyoKBBTUQ2NKB1bmhhbmRsZWSgc3lzY2FsbDqgMjSgKHNjaGVkX3lpZWxkKTxicj4KKzEwOTM1OKCgZm9yaygpoHdvbid0oHdvcmugd2l0aKB2YWxncmluZC0zLjCgU1ZOPGJyPgorMTA5MzMyoKBhbWQ2NKB1bmhhbmRsZWSgaW5zdHJ1Y3Rpb246oEFEQ6BFdiygR3Y8YnI+CisxMDkzMTSgoEJvZ3VzoG1lbWNoZWNroHJlcG9ydKBvbqBhbWQ2NDxicj4KKzEwODg4M6CgQ3Jhc2g7oHZnX21lbW9yeS5jOjkwNaAodmdQbGFpbl9pbml0X3NoYWRvd19yYW5nZSk6PGJyPgoroKCgoKCgoKBBc3NlcnRpb26gYHZnUGxhaW5fZGVmaW5lZF9pbml0X3NoYWRvd19wYWdlKCknoGZhaWxlZC48YnI+CisxMDgzNDmgoG1pbmNvcmWgc3lzY2FsbKBwYXJhbWV0ZXKgY2hlY2tlZKBpbmNvcnJlY3RseaA8YnI+CisxMDgwNTmgoGJ1aWxkoGluZnJhc3RydWN0dXJlOqBzbWFsbKB1cGRhdGU8YnI+CisxMDc1MjSgoGVwb2xsX2N0bKBldmVudKBwYXJhbWV0ZXKgY2hlY2tlZKBvbqBFUE9MTF9DVExfREVMPGJyPgorMTA3MTIzoKBWZXigZGllc6B3aXRooHVuaGFuZGxlZKBpbnN0cnVjdGlvbnM6oDB4RDmgMHgzMaAweEagMHhBRTxicj4KKzEwNjg0MaCgYXV4bWFwoCZhbXA7oG9wZW5HTKBwcm9ibGVtczxicj4KKzEwNjcxM6CgU0RMX0luaXSgY2F1c2VzoHZhbGdyaW5koHRvoGV4aXQ8YnI+CisxMDYzNTKgoHNldGNvbnRleHSgYW5koG1ha2Vjb250ZXh0oG5vdKBoYW5kbGVkoGNvcnJlY3RseaA8YnI+CisxMDYyOTOgoGFkZHJlc3Nlc6BiZXlvbmSgaW5pdGlhbKBjbGllbnSgc3RhY2ugYWxsb2NhdGlvbqA8YnI+CiugoKCgoKCgoG5vdKBjaGVja2VkoGluoFZBTEdSSU5EX0RPX0xFQUtfQ0hFQ0s8YnI+CisxMDYyODOgoFBJRaBjbGllbnSgcHJvZ3JhbXOgYXJloGxvYWRlZKBhdKBhZGRyZXNzoDA8YnI+CisxMDU4MzGgoEFzc2VydGlvbqBgdmdQbGFpbl9kZWZpbmVkX2luaXRfc2hhZG93X3BhZ2UoKSegZmFpbGVkLjxicj4KKzEwNTAzOaCgbG9uZ6BydW4tdGltZXOgcHJvYmFibHmgZHVloHRvoG1lbW9yeaBtYW5hZ2VyoDxicj4KKzEwNDc5N6CgdmFsZ3JpbmSgbmVlZHOgdG+gYmWgYXdhcmWgb2agQkxLR0VUU0laRTY0PGJyPgorMTAzNTk0oKB1bmhhbmRsZWSgaW5zdHJ1Y3Rpb246oEZJQ09NPGJyPgorMTAzMzIwoKBWYWxncmluZKAyLjQuMKBmYWlsc6B0b6Bjb21waWxloHdpdGigZ2NjoDMuNC4zoGFuZKAtTzA8YnI+CisxMDMxNjigoHBvdGVudGlhbGx5oG1lbW9yeaBsZWFroGluoGNvcmVncmluZC91bWUuY6A8YnI+CisxMDIwMzmgoGJhZKBwZXJtaXNzaW9uc6Bmb3KgbWFwcGVkoHJlZ2lvbqBhdKBhZGRyZXNzoDB4QjdDNzM2ODA8YnI+CisxMDE4ODGgoHdlaXJkoGFzc2VydGlvbqBwcm9ibGVtPGJyPgorMTAxNTQzoKBTdXBwb3J0oGZhZHZpc2U2NKBzeXNjYWxsczxicj4KKzc1MjQ3oKCgeDg2XzY0L2FtZDY0oHN1cHBvcnSgKHRoZaBiaWdnZXN0oCJidWcioHdloGhhdmWgZXZlcqBmaXhlZCk8YnI+Cis8YnI+CisoMy4wUkMxOqAyN6BKdWx5oKCgMDUsoHZleKByMTMwMyygdmFsZ3JpbmSgcjQyODMpLjxicj4KKygzLjAuMDqgoKAzoEF1Z3VzdKAwNSygdmV4oHIxMzEzLKB2YWxncmluZKByNDMxNikuPGJyPgorPGJyPgorPGJyPgorPGJyPgorU3RhYmxloHJlbGVhc2WgMi40LjGgKDGgQXVndXN0oDIwMDUpPGJyPgorfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fjxicj4KKyhUaGWgbm90ZXOgZm9yoHRoaXOgcmVsZWFzZaBoYXZloGJlZW6gbG9zdC6goFNvcnJ5IaCgSXSgd291bGSgaGF2ZTxicj4KK2NvbnRhaW5lZKB2YXJpb3VzoGJ1Z6BmaXhlc6BidXSgbm+gbmV3oGZlYXR1cmVzLik8YnI+Cis8YnI+Cis8YnI+Cis8YnI+CitTdGFibGWgcmVsZWFzZaAyLjQuMKAoTWFyY2igMjAwNSmgLS2gQ0hBTkdFU6BSRUxBVElWRaBUT6AyLjIuMDxicj4KK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+PGJyPgorMi40LjCgYnJpbmdzoG1hbnmgc2lnbmlmaWNhbnSgY2hhbmdlc6BhbmSgYnVnoGZpeGVzLqCgVGhloG1vc3Q8YnI+CitzaWduaWZpY2FudKB1c2VyLXZpc2libGWgY2hhbmdloGlzoHRoYXSgd2Wgbm+gbG9uZ2VyoHN1cHBseaBvdXKgb3duPGJyPgorcHRocmVhZKBpbXBsZW1lbnRhdGlvbi6goEluc3RlYWQsoFZhbGdyaW5koGlzoGZpbmFsbHmgY2FwYWJsZaBvZjxicj4KK3J1bm5pbmegdGhloG5hdGl2ZaB0aHJlYWSgbGlicmFyeSygZWl0aGVyoExpbnV4VGhyZWFkc6BvcqBOUFRMLjxicj4KKzxicj4KK1RoaXOgbWVhbnOgb3VyoGxpYnB0aHJlYWSgaGFzoGdvbmUsoGFsb25noHdpdGigdGhloGJ1Z3OgYXNzb2NpYXRlZDxicj4KK3dpdGigaXQuoKBWYWxncmluZKBub3egc3VwcG9ydHOgdGhloGtlcm5lbCdzoHRocmVhZGluZ6BzeXNjYWxscyygYW5kPGJyPgorbGV0c6B5b3WgdXNloHlvdXKgc3RhbmRhcmSgc3lzdGVtoGxpYnB0aHJlYWQuoKBBc6BhoHJlc3VsdDo8YnI+Cis8YnI+CisqoFRoZXJloGFyZaBtYW55oGZld2VyoHN5c3RlbaBkZXBlbmRlbmNpZXOgYW5koHN0cmFuZ2WgbGlicmFyeS1yZWxhdGVkPGJyPgoroKBidWdzLqCgVGhlcmWgaXOgYaBzbWFsbKBwZXJmb3JtYW5jZaBpbXByb3ZlbWVudCygYW5koGGgbGFyZ2U8YnI+CiugoHN0YWJpbGl0eaBpbXByb3ZlbWVudC48YnI+Cis8YnI+CisqoE9uoHRoZaBkb3duc2lkZSygVmFsZ3JpbmSgY2FuoG5voGxvbmdlcqByZXBvcnSgbWlzdXNlc6BvZqB0aGWgUE9TSVg8YnI+CiugoFBUaHJlYWRzoEFQSS6goEl0oGFsc2+gbWVhbnOgdGhhdKBIZWxncmluZKBjdXJyZW50bHmgZG9lc6Bub3Sgd29yay48YnI+CiugoFdloGhvcGWgdG+gZml4oHRoZXNloHByb2JsZW1zoGluoGGgZnV0dXJloHJlbGVhc2UuPGJyPgorPGJyPgorTm90ZaB0aGF0oHJ1bm5pbmegdGhloG5hdGl2ZaB0aHJlYWSgbGlicmFyaWVzoGRvZXOgbm90oG1lYW6gVmFsZ3JpbmQ8YnI+Citpc6BhYmxloHRvoHByb3ZpZGWgZ2VudWluZaBjb25jdXJyZW50oGV4ZWN1dGlvbqBvbqBTTVBzLqCgV2Wgc3RpbGw8YnI+CitpbXBvc2WgdGhloHJlc3RyaWN0aW9uoHRoYXSgb25seaBvbmWgdGhyZWFkoGlzoHJ1bm5pbmegYXSgYW55oGdpdmVuPGJyPgordGltZS48YnI+Cis8YnI+CitUaGVyZaBhcmWgbWFueaBvdGhlcqBzaWduaWZpY2FudKBjaGFuZ2VzoHRvbzo8YnI+Cis8YnI+CisqoE1lbWNoZWNroGlzoChvbmNloGFnYWluKaB0aGWgZGVmYXVsdKB0b29sLjxicj4KKzxicj4KKyqgVGhloGRlZmF1bHSgc3RhY2ugYmFja3RyYWNloGlzoG5vd6AxMqBjYWxsoGZyYW1lcyygcmF0aGVyoHRoYW6gNC48YnI+Cis8YnI+CisqoFN1cHByZXNzaW9uc6BjYW6gaGF2ZaB1cKB0b6AyNaBjYWxsoGZyYW1loG1hdGNoZXMsoHJhdGhlcqB0aGFuoDQuPGJyPgorPGJyPgorKqBNZW1jaGVja6BhbmSgQWRkcmNoZWNroHVzZaBsZXNzoG1lbW9yeS6goFVuZGVyoHNvbWWgY2lyY3Vtc3RhbmNlcyw8YnI+CiugoHRoZXmgbm+gbG9uZ2VyoGFsbG9jYXRloHNoYWRvd6BtZW1vcnmgaWagdGhlcmWgYXJloGxhcmdloHJlZ2lvbnOgb2Y8YnI+CiugoG1lbW9yeaB3aXRooHRoZaBzYW1loEEvVqBzdGF0ZXOgLaBzdWNooGFzoGFuoG1tYXBlZKBmaWxlLjxicj4KKzxicj4KKyqgVGhloG1lbW9yeS1sZWFroGRldGVjdG9yoGluoE1lbWNoZWNroGFuZKBBZGRyY2hlY2ugaGFzoGJlZW48YnI+CiugoGltcHJvdmVkLqCgSXSgbm93oHJlcG9ydHOgbW9yZaB0eXBlc6BvZqBtZW1vcnmgbGVhayygaW5jbHVkaW5nPGJyPgoroKBsZWFrZWSgY3ljbGVzLqCgV2hlbqByZXBvcnRpbmegbGVha2VkoG1lbW9yeSygaXSgY2FuoGRpc3Rpbmd1aXNoPGJyPgoroKBiZXR3ZWVuoGRpcmVjdGx5oGxlYWtlZKBtZW1vcnmgKG1lbW9yeaB3aXRooG5voHJlZmVyZW5jZXMpLKBhbmQ8YnI+CiugoGluZGlyZWN0bHmgbGVha2VkoG1lbW9yeaAobWVtb3J5oG9ubHmgcmVmZXJyZWSgdG+gYnmgb3RoZXKgbGVha2VkPGJyPgoroKBtZW1vcnkpLjxicj4KKzxicj4KKyqgTWVtY2hlY2snc6Bjb25mdXNpb26gb3ZlcqB0aGWgZWZmZWN0oG9moG1wcm90ZWN0KCmgaGFzoGJlZW6gZml4ZWQ6PGJyPgoroKBwcmV2aW91c2x5oG1wcm90ZWN0oGNvdWxkoGVycm9uZW91c2x5oG1hcmugdW5kZWZpbmVkoGRhdGGgYXM8YnI+CiugoGRlZmluZWQuPGJyPgorPGJyPgorKqBTaWduYWygaGFuZGxpbmegaXOgbXVjaKBpbXByb3ZlZKBhbmSgc2hvdWxkoGJloHZlcnmgY2xvc2WgdG+gd2hhdDxicj4KK6CgeW91oGdldKB3aGVuoHJ1bm5pbmegbmF0aXZlbHkuoKA8YnI+Cis8YnI+CiugoE9uZaByZXN1bHSgb2agdGhpc6Bpc6B0aGF0oFZhbGdyaW5koG9ic2VydmVzoGNoYW5nZXOgdG+gc2lnY29udGV4dHM8YnI+CiugoHBhc3NlZKB0b6BzaWduYWygaGFuZGxlcnMuoKBTdWNooG1vZGlmaWNhdGlvbnOgd2lsbKB0YWtloGVmZmVjdKB3aGVuPGJyPgoroKB0aGWgc2lnbmFsoHJldHVybnMuoKBZb3Wgd2lsbKBuZWVkoHRvoHJ1bqB3aXRooC0tc2luZ2xlLXN0ZXA9eWVzoHRvPGJyPgoroKBtYWtloHRoaXOgdXNlZnVsLjxicj4KKzxicj4KKyqgVmFsZ3JpbmSgaXOgYnVpbHSgaW6gUG9zaXRpb26gSW5kZXBlbmRlbnSgRXhlY3V0YWJsZaAoUElFKaBmb3JtYXSgaWY8YnI+CiugoHlvdXKgdG9vbGNoYWluoHN1cHBvcnRzoGl0LqCgVGhpc6BhbGxvd3OgaXSgdG+gdGFrZaBhZHZhbnRhZ2Wgb2agYWxsPGJyPgoroKB0aGWgYXZhaWxhYmxloGFkZHJlc3Ogc3BhY2Wgb26gc3lzdGVtc6B3aXRooDRHYnl0ZaB1c2VyoGFkZHJlc3M8YnI+CiugoHNwYWNlcy48YnI+Cis8YnI+CisqoFZhbGdyaW5koGNhbqBub3egcnVuoGl0c2VsZqAocmVxdWlyZXOgUElFoHN1cHBvcnQpLjxicj4KKzxicj4KKyqgU3lzY2FsbKBhcmd1bWVudHOgYXJloG5vd6BjaGVja2VkoGZvcqB2YWxpZGl0eS6goFByZXZpb3VzbHmgYWxsPGJyPgoroKBtZW1vcnmgdXNlZKBieaBzeXNjYWxsc6B3YXOgY2hlY2tlZCygYnV0oG5vd6B0aGWgYWN0dWFsoHZhbHVlczxicj4KK6CgcGFzc2VkoGFyZaBhbHNvoGNoZWNrZWQuPGJyPgorPGJyPgorKqBTeXNjYWxsoHdyYXBwZXJzoGFyZaBtb3JloHJvYnVzdKBhZ2FpbnN0oGJhZKBhZGRyZXNzZXOgYmVpbmegcGFzc2VkPGJyPgoroKB0b6BzeXNjYWxsczqgdGhleaB3aWxsoGZhaWygd2l0aKBFRkFVTFSgcmF0aGVyoHRoYW6ga2lsbGluZ6BWYWxncmluZDxicj4KK6Cgd2l0aKBTSUdTRUdWLjxicj4KKzxicj4KKyqgQmVjYXVzZaBjbG9uZSgpoGlzoGRpcmVjdGx5oHN1cHBvcnRlZCygc29tZaBub24tcHRocmVhZKB1c2VzoG9moGl0PGJyPgoroKB3aWxsoHdvcmsuoKBQYXJ0aWFsoHNoYXJpbmegKHdoZXJloHNvbWWgcmVzb3VyY2VzoGFyZaBzaGFyZWQsoGFuZDxicj4KK6Cgc29tZaBhcmWgbm90KaBpc6Bub3Sgc3VwcG9ydGVkLjxicj4KKzxicj4KKyqgb3BlbigpoGFuZKByZWFkbGluaygpoG9uoC9wcm9jL3NlbGYvZXhloGFyZaBzdXBwb3J0ZWQuPGJyPgorPGJyPgorQlVHU6BGSVhFRDo8YnI+Cis8YnI+Cis4ODUyMKCgoHBpcGUrZm9yaytkdXAyoGtpbGxzoHRoZaBtYWluoHByb2dyYW08YnI+Cis4ODYwNKAJVmFsZ3JpbmSgQWJvcnRzoHdoZW6gdXNpbmegJFZBTEdSSU5EX09QVFOgYW5koHVzZXKgcHJvZ3JhLi4uPGJyPgorODg2MTSgCXZhbGdyaW5kOqB2Z19saWJwdGhyZWFkLmM6MjMyM6AocmVhZCk6oEFzc2VydGlvbqBgcmVhZF9wdC4uLjxicj4KKzg4NzAzoAlTdGFic6BwYXJzZXKgZmFpbHOgdG+gaGFuZGxloCI7Ijxicj4KKzg4ODg2oAlpb2N0bKB3cmFwcGVyc6Bmb3KgVElPQ01CSVOgYW5koFRJT0NNQklDPGJyPgorODkwMzKgCXZhbGdyaW5koHB0aHJlYWRfY29uZF90aW1lZHdhaXSgZmFpbHM8YnI+Cis4OTEwNqAJdGhloCdpbXBvc3NpYmxlJ6BoYXBwZW5lZDxicj4KKzg5MTM5oAlNaXNzaW5noHNjaGVkX3NldGFmZmluaXR5oCZhbXA7oHNjaGVkX2dldGFmZmluaXR5PGJyPgorODkxOTigCXZhbGdyaW5koGxhY2tzoHN1cHBvcnSgZm9yoFNJT0NTUEdSUKBhbmSgU0lPQ0dQR1JQPGJyPgorODkyNjOgCU1pc3NpbmegaW9jdGygdHJhbnNsYXRpb25zoGZvcqBzY3NpLWdlbmVyaWOgYW5koENEoHBsYXlpbmc8YnI+Cis4OTQ0MKAJdGVzdHMvZGVhZGxvY2suY6BsaW5loGVuZGluZ3M8YnI+Cis4OTQ4MaAJYGltcG9zc2libGUnoGhhcHBlbmVkOqBFWEVDoEZBSUxFRDxicj4KKzg5NjYzoAl2YWxncmluZKAyLjIuMKBjcmFzaKBvbqBSZWRoYXSgNy4yPGJyPgorODk3OTKgCVJlcG9ydKBwdGhyZWFkX211dGV4X2xvY2soKaBkZWFkbG9ja3OgaW5zdGVhZKBvZqByZXR1cm5pbi4uLjxicj4KKzkwMTExoAlzdGF0dmZzNjSgZ2l2ZXOgaW52YWxpZKBlcnJvci93YXJuaW5nPGJyPgorOTAxMjigCWNyYXNoK21lbW9yeaBmYXVsdKB3aXRooHN0YWJzoGdlbmVyYXRlZKBieaBnbmF0oGZvcqBhoHJ1bi4uLjxicj4KKzkwNzc4oAlWQUxHUklORF9DSEVDS19ERUZJTkVEKCmgbm90oGFzoGRvY3VtZW50ZWSgaW6gbWVtY2hlY2suaDxicj4KKzkwODM0oAljYWNoZWdyaW5koGNyYXNoZXOgYXSgZW5koG9moHByb2dyYW2gd2l0aG91dKByZXBvcnRpbmegcmUuLi48YnI+Cis5MTAyOKAJdmFsZ3JpbmQ6oHZnX21lbW9yeS5jOjIyOaAodmdQbGFpbl91bm1hcF9yYW5nZSk6oEFzc2VydGlvLi4uPGJyPgorOTExNjKgCXZhbGdyaW5koGNyYXNooHdoaWxloGRlYnVnZ2luZ6Bkcml2ZWygMS4yLjE8YnI+Cis5MTE5OaAJVW5pbXBsZW1lbnRlZKBmdW5jdGlvbjxicj4KKzkxMzI1oAlTaWduYWygcm91dGluZ6Bkb2VzoG5vdKBwcm9wYWdhdGWgdGhloHNpZ2luZm+gc3RydWN0dXJlPGJyPgorOTE1OTmgCUFzc2VydGlvbqBgY3agPT2gKCh2b2lkoCopMCknPGJyPgorOTE2MDSgCXJ3X2xvb2t1cKBjbGVhcnOgb3JpZ6BhbmSgc2VuZHOgdGhloE5VTEygdmFsdWWgdG+gcndfbmV3PGJyPgorOTE4MjGgCVNtYWxsoHByb2JsZW1zoGJ1aWxkaW5noHZhbGdyaW5koHdpdGigJHRvcF9idWlsZGRpcqBuZaAkdC4uLjxicj4KKzkxODQ0oAlzaWduYWygMTGgKFNJR1NFR1YpoGF0oGdldF90Y2KgKGxpYnB0aHJlYWQuYzo4NimgaW6gY29yZWMuLi48YnI+Cis5MjI2NKAJVU5JTVBMRU1FTlRFRKBGVU5DVElPTjqgcHRocmVhZF9jb25kYXR0cl9zZXRwc2hhcmVkPGJyPgorOTIzMzGgCXBlci10YXJnZXSgZmxhZ3OgbmVjZXNzaXRhdGWgQU1fUFJPR19DQ19DX088YnI+Cis5MjQyMKAJdmFsZ3JpbmSgZG9lc24ndKBjb21waWxloHdpdGigbGludXigMi42LjguMS85PGJyPgorOTI1MTOgCVZhbGdyaW5koDIuMi4woGdlbmVyYXRlc6Bzb21loHdhcm5pbmegbWVzc2FnZXM8YnI+Cis5MjUyOKAJdmdfc3ltdGFiMi5jOjE3MKAoYWRkTG9jKTqgQXNzZXJ0aW9uoGBsb2MtJmd0O3NpemWgJmd0O6AwJ6BmYWlsZWQuPGJyPgorOTMwOTagCXVuaGFuZGxlZKBpb2N0bKAweDRCM0GgYW5koDB4NTYwMTxicj4KKzkzMTE3oAlUb29soGFuZKBjb3JloGludGVyZmFjZaB2ZXJzaW9uc6Bkb6Bub3SgbWF0Y2g8YnI+Cis5MzEyOKAJQ2FuJ3SgcnVuoHZhbGdyaW5koC0tdG9vbD1tZW1jaGVja6BiZWNhdXNloG9moHVuaW1wbGVtZW50Li4uPGJyPgorOTMxNzSgCVZhbGdyaW5koGNhbqBjcmFzaKBpZqBwYXNzZWSgYmFkoGFyZ3OgdG+gY2VydGFpbqBzeXNjYWxsczxicj4KKzkzMzA5oAlTdGFja6BmcmFtZaBpbqBuZXegdGhyZWFkoGlzoGJhZGx5oGFsaWduZWQ8YnI+Cis5MzMyOKAJV3JvbmegdHlwZXOgdXNlZKB3aXRooHN5c19zaWdwcm9jbWFzaygpPGJyPgorOTM3NjOgCS91c3IvaW5jbHVkZS9hc20vbXNyLmigaXOgbWlzc2luZzxicj4KKzkzNzc2oAl2YWxncmluZDqgdmdfbWVtb3J5LmM6NTA4oCh2Z1BsYWluX2ZpbmRfbWFwX3NwYWNlKTqgQXNzZXIuLi48YnI+Cis5MzgxMKAJZmNudGwoKaBhcmd1bWVudKBjaGVja2luZ6BhoGJpdKB0b2+gc3RyaWN0PGJyPgorOTQzNzigCUFzc2VydGlvbqBgdHN0LSZndDtzaWdxdWV1ZV9oZWFkoCE9oHRzdC0mZ3Q7c2lncXVldWVfdGFpbCegZmFpbGVkLjxicj4KKzk0NDI5oAl2YWxncmluZKAyLjIuMKBzZWdmYXVsdKB3aXRooG1tYXA2NKBpbqBnbGliY6AyLjMuMzxicj4KKzk0NjQ1oAlJbXBvc3NpYmxloGhhcHBlbmVkOqBQSU5TUlegbWVtPGJyPgorOTQ5NTOgCXZhbGdyaW5kOqB0aGWgYGltcG9zc2libGUnoGhhcHBlbmVkOqBTSUdTRUdWPGJyPgorOTU2NjegCVZhbGdyaW5koGRvZXOgbm90oHdvcmugd2l0aKBhbnmgS0RFoGFwcDxicj4KKzk2MjQzoAlBc3NlcnRpb26gJ3Jlcz09MCegZmFpbGVkPGJyPgorOTYyNTKgCXN0YWdlMqBsb2FkZXKgb2agdmFsZ3JpbmSgZmFpbHOgdG+gYWxsb2NhdGWgbWVtb3J5PGJyPgorOTY1MjCgCUFsbKBwcm9ncmFtc6BjcmFzaGluZ6BhdKBfZGxfc3RhcnSgKGluoC9saWIvbGQtMi4zLjMuc28poC4uLjxicj4KKzk2NjYwoAlpb2N0bKBDRFJPTVJFQURUT0NFTlRSWaBjYXVzZXOgYm9ndXOgd2FybmluZ3M8YnI+Cis5Njc0N6AJQWZ0ZXKgbG9vcGluZ6BpbqBhoHNlZ2ZhdWx0oGhhbmRsZXIsoHRoZaBpbXBvc3NpYmxloGhhcHBlbnM8YnI+Cis5NjkyM6AJWmVyb6BzaXplZKBhcnJheXOgY3Jhc2igdmFsZ3JpbmSgdHJhY2WgYmFja6B3aXRooFNJR0ZQRTxicj4KKzk2OTQ4oAl2YWxncmluZKBzdG9wc6B3aXRooGFzc2VydGlvbqBmYWlsdXJloHJlZ2FyZGluZ6BtbWFwMjxicj4KKzk2OTY2oAl2YWxncmluZKBmYWlsc6B3aGVuoGFwcGxpY2F0aW9uoG9wZW5zoG1vcmWgdGhhbqAxNqBzb2NrZXRzPGJyPgorOTczOTigCXZhbGdyaW5kOqB2Z19saWJwdGhyZWFkLmM6MjY2N6BBc3NlcnRpb26gZmFpbGVkPGJyPgorOTc0MDegCXZhbGdyaW5kOqB2Z19teWxpYmMuYzoxMjI2oCh2Z1BsYWluX3NhZmVfZmQpOqBBc3NlcnRpb26gYC4uLjxicj4KKzk3NDI3oAkiV2FybmluZzqgaW52YWxpZKBmaWxloGRlc2NyaXB0b3KgLTGgaW6gc3lzY2FsbKBjbG9zZSgpIqAuLi48YnI+Cis5Nzc4NaAJbWlzc2luZ6BiYWNrdHJhY2U8YnI+Cis5Nzc5MqAJYnVpbGSgaW6gb2JqoGRpcqBmYWlsc6AtoGF1dG9jb25moC+gbWFrZWZpbGWgY2xlYW51cDxicj4KKzk3ODgwoAlwdGhyZWFkX211dGV4X2xvY2ugZmFpbHOgZnJvbaBzaGFyZWSgbGlicmFyeaAoc3BlY2lhbKBrZXIuLi48YnI+Cis5Nzk3NaAJcHJvZ3JhbaBhYm9ydHOgd2l0aG91dKBhbmegVkegbWVzc2FnZXM8YnI+Cis5ODEyOaAJRmFpbGVkoHdoZW6gb3BlbqBhbmSgY2xvc2WgZmlsZaAyMzAwMDCgdGltZXOgdXNpbmegc3RkaW88YnI+Cis5ODE3NaAJQ3Jhc2hlc6B3aGVuoHVzaW5noHZhbGdyaW5kLTIuMi4woHdpdGigYaBwcm9ncmFtoHVzaW5noGFsLi4uPGJyPgorOTgyODigCU1hc3NpZqBicm9rZW48YnI+Cis5ODMwM6AJVU5JTVBMRU1FTlRFRKBGVU5DVElPTqBwdGhyZWFkX2NvbmRhdHRyX3NldHBzaGFyZWQ8YnI+Cis5ODYzMKAJZmFpbGVkLS1jb21waWxhdGlvbqBtaXNzaW5noHdhcm5pbmdzLnBtLKBmYWlsc6B0b6BtYWtloGhlLi4uPGJyPgorOTg3NTagCUNhbm5vdKB2YWxncmluZKBzaWduYWwtaGVhdnmga2RyaXZloFigc2VydmVyPGJyPgorOTg5NjagCXZhbGdyaW5kaW5noHRoZaBKVk2gZmFpbHOgd2l0aKBhoHNhbml0eaBjaGVja6Bhc3NlcnRpb248YnI+Cis5OTAzNaAJVmFsZ3JpbmSgY3Jhc2hlc6B3aGlsZaBwcm9maWxpbmc8YnI+Cis5OTE0MqAJbG9vcHOgd2l0aKBtZXNzYWdloCJTaWduYWygMTGgYmVpbmegZHJvcHBlZKBmcm9toHRocmVhZKAwLi4uPGJyPgorOTkxOTWgCXRocmVhZGVkoGFwcHOgY3Jhc2igb26gdGhyZWFkoHN0YXJ0oCh1c2luZ6BRVGhyZWFkOjpzdGFydC4uLjxicj4KKzk5MzQ4oAlBc3NlcnRpb26gYHZnUGxhaW5fbHNlZWsoY29yZV9mZCygMCygMSmgPT2gcGhkcnNbaV0ucF9vZmYuLi48YnI+Cis5OTU2OKAJRmFsc2WgbmVnYXRpdmWgZHVloHRvoG1pc2hhbmRsaW5noG9moG1wcm90ZWN0PGJyPgorOTk3MzigCXZhbGdyaW5koG1lbWNoZWNroGNyYXNoZXOgb26gcHJvZ3JhbaB0aGF0oHVzZXOgc2lnaXRpbWVyPGJyPgorOTk5MjOgCTAtc2l6ZWSgYWxsb2NhdGlvbnOgYXJloHJlcG9ydGVkoGFzoGxlYWtzPGJyPgorOTk5NDmgCXByb2dyYW2gc2VnoGZhdWx0c6BhZnRlcqBleGl0KCk8YnI+CisxMDAwMzagCSJuZXdTdXBlcmJsb2NrJ3OgcmVxdWVzdKBmb3KgMTA0ODU3NqBieXRlc6BmYWlsZWQiPGJyPgorMTAwMTE2oAl2YWxncmluZDqgKHB0aHJlYWRfY29uZF9pbml0KTqgQXNzZXJ0aW9uoGBzaXplb2YoKqBjb25kKaAuLi48YnI+CisxMDA0ODagCW1lbWNoZWNroHJlcG9ydHOgInZhbGdyaW5kOqB0aGWgYGltcG9zc2libGUnoGhhcHBlbmVkOqBWLi4uPGJyPgorMTAwODMzoAlzZWNvbmSgY2FsbKB0b6AibXJlbWFwIqBmYWlsc6B3aXRooEVJTlZBTDxicj4KKzEwMTE1NqAJKHZnUGxhaW5fZmluZF9tYXBfc3BhY2UpOqBBc3NlcnRpb26gYChhZGRyoCZhbXA7oCgoMaAmbHQ7Jmx0O6AxMiktMS4uLjxicj4KKzEwMTE3M6AJQXNzZXJ0aW9uoGByZWNEZXB0aKAmZ3Q7PaAwoCZhbXA7JmFtcDugcmVjRGVwdGigJmx0O6A1MDAnoGZhaWxlZDxicj4KKzEwMTI5MaAJY3JlYXRpbmegdGhyZWFkc6BpbqBhoGZvcmtlZKBwcm9jZXNzoGZhaWxzPGJyPgorMTAxMzEzoAl2YWxncmluZKBjYXVzZXOgZGlmZmVyZW50oGJlaGF2aW9yoHdoZW6gcmVzaXppbmegYaB3aW5kb3cuLi48YnI+CisxMDE0MjOgCXNlZ2ZhdWx0oGZvcqBjKyugYXJyYXmgb2agZmxvYXRzPGJyPgorMTAxNTYyoAl2YWxncmluZKBtYXNzaWagZGllc6BvbqBTSUdJTlSgZXZlbqB3aXRooHNpZ25hbKBoYW5kbGVyoHIuLi48YnI+Cis8YnI+Cis8YnI+CitTdGFibGWgcmVsZWFzZaAyLjIuMKAoMzGgQXVndXN0oDIwMDQpoC0toENIQU5HRVOgUkVMQVRJVkWgVE+gMi4wLjA8YnI+Cit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn48YnI+CisyLjIuMKBicmluZ3OgbmluZaBtb250aHOgd29ydGigb2agaW1wcm92ZW1lbnRzoGFuZKBidWegZml4ZXMuoKBXZTxicj4KK2JlbGlldmWgaXSgdG+gYmWgYaB3b3J0aHmgc3VjY2Vzc29yoHRvoDIuMC4wLqCgVGhlcmWgYXJloGxpdGVyYWxseTxicj4KK2h1bmRyZWRzoG9moGJ1Z6BmaXhlc6BhbmSgbWlub3KgaW1wcm92ZW1lbnRzLqCgVGhlcmWgYXJloGFsc2+gc29tZTxicj4KK2ZhaXJseaBtYWpvcqB1c2VyLXZpc2libGWgY2hhbmdlczo8YnI+Cis8YnI+CisqoEGgY29tcGxldGWgb3ZlcmhhdWygb2agaGFuZGxpbmegb2agc3lzdGVtoGNhbGxzoGFuZKBzaWduYWxzLKBhbmSgPGJyPgoroKB0aGVpcqBpbnRlcmFjdGlvbqB3aXRooHRocmVhZHMuoKBJbqBnZW5lcmFsLKB0aGWgYWNjdXJhY3mgb2agdGhloDxicj4KK6Cgc3lzdGVtoGNhbGwsoHRocmVhZKBhbmSgc2lnbmFsoHNpbXVsYXRpb25zoGlzoG11Y2igaW1wcm92ZWQ6PGJyPgorPGJyPgoroKAtoEJsb2NraW5noHN5c3RlbaBjYWxsc6BiZWhhdmWgZXhhY3RseaBhc6B0aGV5oGRvoHdoZW6gcnVubmluZzxicj4KK6CgoKBuYXRpdmVseaAobm90oG9uoHZhbGdyaW5kKS6goFRoYXSgaXMsoGlmoGGgc3lzY2FsbKBibG9ja3Ogb25seaB0aGU8YnI+CiugoKCgY2FsbGluZ6B0aHJlYWSgd2hlbqBydW5uaW5noG5hdGl2ZWx5LKB0aGFuoGl0oGJlaGF2ZXOgdGhloHNhbWWgb248YnI+CiugoKCgdmFsZ3JpbmQuoKBOb6Btb3JloG15c3RlcmlvdXOgaGFuZ3OgYmVjYXVzZaBWoGRvZXNuJ3Sga25vd6B0aGF0oHNvbWU8YnI+CiugoKCgc3lzY2FsbKBvcqBvdGhlciygc2hvdWxkoGJsb2NroG9ubHmgdGhloGNhbGxpbmegdGhyZWFkLjxicj4KKzxicj4KK6CgLaBJbnRlcnJ1cHRlZKBzeXNjYWxsc6BzaG91bGSgbm93oGdpdmWgbW9yZaBmYWl0aGZ1bKByZXN1bHRzLjxicj4KKzxicj4KK6CgLaBTaWduYWygY29udGV4dHOgaW6gc2lnbmFsoGhhbmRsZXJzoGFyZaBzdXBwb3J0ZWQuPGJyPgorPGJyPgorKqBJbXByb3ZlbWVudHOgdG+gTlBUTKBzdXBwb3J0oHRvoHRoZaBleHRlbnSgdGhhdKBWoG5vd6B3b3Jrc6A8YnI+CiugoHByb3Blcmx5oG9uoE5QVEwtb25seaBzZXR1cHMuPGJyPgorPGJyPgorKqBHcmVhdGVyoGlzb2xhdGlvbqBiZXR3ZWVuoFZhbGdyaW5koGFuZKB0aGWgcHJvZ3JhbaBiZWluZ6BydW4soHNvPGJyPgoroKB0aGWgcHJvZ3JhbaBpc6BsZXNzoGxpa2VseaB0b6BpbmFkdmVydGVudGx5oGtpbGygVmFsZ3JpbmSgYnk8YnI+CiugoGRvaW5noHdpbGSgd3JpdGVzLjxicj4KKzxicj4KKyqgTWFzc2lmOqBhoG5ld6BzcGFjZaBwcm9maWxpbmegdG9vbC6goFRyeaBpdCGgoEl0J3OgY29vbCygYW5koGl0J2xsPGJyPgoroKB0ZWxsoHlvdaBpbqBkZXRhaWygd2hlcmWgYW5koHdoZW6geW91cqBDL0MrK6Bjb2RloGlzoGFsbG9jYXRpbmegaGVhcC48YnI+CiugoERyYXdzoHByZXR0eaAucHOgcGljdHVyZXOgb2agbWVtb3J5oHVzZaBhZ2FpbnN0oHRpbWUuoKBBoHBvdGVudGlhbGx5PGJyPgoroKBwb3dlcmZ1bKB0b29soGZvcqBtYWtpbmegc2Vuc2Wgb2ageW91cqBwcm9ncmFtJ3Ogc3BhY2WgdXNlLjxicj4KKzxicj4KKyqgRmlsZaBkZXNjcmlwdG9yoGxlYWthZ2WgY2hlY2tzLqCgV2hlbqBlbmFibGVkLKBWYWxncmluZKB3aWxsoHByaW50oG91dDxicj4KK6CgYaBsaXN0oG9moG9wZW6gZmlsZaBkZXNjcmlwdG9yc6BvbqBleGl0Ljxicj4KKzxicj4KKyqgSW1wcm92ZWSgU1NFMi9TU0UzoHN1cHBvcnQuPGJyPgorPGJyPgorKqBUaW1lLXN0YW1wZWSgb3V0cHV0O6B1c2WgLS10aW1lLXN0YW1wPXllczxicj4KKzxicj4KKzxicj4KKzxicj4KK1N0YWJsZaByZWxlYXNloDIuMi4woCgzMaBBdWd1c3SgMjAwNCmgLS2gQ0hBTkdFU6BSRUxBVElWRaBUT6AyLjEuMjxicj4KK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fjxicj4KKzIuMi4woGlzoG5vdKBtdWNooGRpZmZlcmVudKBmcm9toDIuMS4yLKByZWxlYXNlZKBzZXZlbqB3ZWVrc6BhZ28uPGJyPgorQaBudW1iZXKgb2agYnVnc6BoYXZloGJlZW6gZml4ZWQsoG1vc3Sgbm90YWJseaAjODU2NTgsoHdoaWNooGdhdmU8YnI+Citwcm9ibGVtc6Bmb3KgcXVpdGWgYaBmZXegcGVvcGxlLqCgVGhlcmWgaGF2ZaBiZWVuoG1hbnmgaW50ZXJuYWw8YnI+CitjbGVhbnVwcyygYnV0oHRob3NloGFyZaBub3SgdXNlcqB2aXNpYmxlLjxicj4KKzxicj4KK1RoZaBmb2xsb3dpbmegYnVnc6BoYXZloGJlZW6gZml4ZWSgc2luY2WgMi4xLjI6PGJyPgorPGJyPgorODU2NTigoKBBc3NlcnSgaW6gY29yZWdyaW5kL3ZnX2xpYnB0aHJlYWQuYzoyMzI2oChvcGVuNjQpoCE9PGJyPgoroKCgoKCgoKAodm9pZCopMKBmYWlsZWQ8YnI+CiugoKCgoKCgoFRoaXOgYnVnoHdhc6ByZXBvcnRlZKBtdWx0aXBsZaB0aW1lcyygYW5koHNvoHRoZaBmb2xsb3dpbmc8YnI+CiugoKCgoKCgoGR1cGxpY2F0ZXOgb2agaXSgYXJloGFsc2+gZml4ZWQ6oDg3NjIwLKA4NTc5NiygODU5MzUsoDg2MDY1LKA8YnI+CiugoKCgoKCgoDg2OTE5LKA4Njk4OCygODc5MTcsoDg4MTU2PGJyPgorPGJyPgorODA3MTagoKBTZW1hcGhvcmWgbWFwcGluZ6BidWegY2F1c2VkoGJ5oHVubWFwoChzZW1fZGVzdHJveSk8YnI+CiugoKCgoKCgoChXYXOgZml4ZWSgcHJpb3KgdG+gMi4xLjIpPGJyPgorPGJyPgorODY5ODegoKBzZW1jdGygYW5koHNobWN0bKBzeXNjYWxsc6BmYW1pbHmgaXOgbm90oGhhbmRsZWSgcHJvcGVybHk8YnI+Cis8YnI+Cis4NjY5NqCgoHZhbGdyaW5koDIuMS4yoCugUkigQVMyLjGgK6BsaWJydDxicj4KKzxicj4KKzg2NzMwoKCgdmFsZ3JpbmSgbG9ja3OgdXCgYXSgZW5koG9moHJ1bqB3aXRooGFzc2VydGlvbqBmYWlsdXJloDxicj4KK6CgoKCgoKCgaW6gX19wdGhyZWFkX3Vud2luZDxicj4KKzxicj4KKzg2NjQxoKCgbWVtY2hlY2ugZG9lc24ndKB3b3JroHdpdGigTWVzYaBPcGVuR0wvQVRJoG9uoFN1c2WgOS4xPGJyPgoroKCgoKCgoKAoYWxzb6BmaXhlc6A3NDI5OCygYaBkdXBsaWNhdGWgb2agdGhpcyk8YnI+Cis8YnI+Cis4NTk0N6CgoE1NWC9TU0WgdW5oYW5kbGVkoGluc3RydWN0aW9uoCdzZmVuY2UnPGJyPgorPGJyPgorODQ5NzigoKBXcm9uZ6BlcnJvcqAiQ29uZGl0aW9uYWyganVtcKBvcqBtb3ZloGRlcGVuZHOgb248YnI+CiugoKCgoKCgoHVuaW5pdGlhbGlzZWSgdmFsdWUioHJlc3VsdGluZ6Bmcm9toCJzYmJsoCVyZWcsoCVyZWciPGJyPgorPGJyPgorODYyNTSgoKBzc29ydCgpoGZhaWxzoHdoZW6gc2lnbmVkoGludKByZXR1cm6gdHlwZaBmcm9toGNvbXBhcmlzb26gaXOgPGJyPgoroKCgoKCgoKB0b2+gc21hbGygdG+gaGFuZGxloHJlc3VsdKBvZqB1bnNpZ25lZKBpbnSgc3VidHJhY3Rpb248YnI+Cis8YnI+Cis4NzA4OaCgoG1lbWFsaWduKKA0LKB4eHgpoG1ha2VzoHZhbGdyaW5koGFzc2VydDxicj4KKzxicj4KKzg2NDA3oKCgQWRkoHN1cHBvcnSgZm9yoGxvdy1sZXZlbKBwYXJhbGxlbKBwb3J0oGRyaXZlcqBpb2N0bHMuPGJyPgorPGJyPgorNzA1ODegoKBBZGSgdGltZXN0YW1wc6B0b6BWYWxncmluZKBvdXRwdXQ/oCh3aXNobGlzdCk8YnI+Cis8YnI+Cis4NDkzN6CgoHZnX2xpYnB0aHJlYWQuYzoyNTA1oChzZV9yZW1hcCk6oEFzc2VydGlvbqBgcmVzoD09oDAnPGJyPgoroKCgoKCgoKAoZml4ZWSgcHJpb3KgdG+gMi4xLjIpPGJyPgorPGJyPgorODYzMTegoKBjYW5ub3SgbG9hZKBsaWJTREwtMS4yLnNvLjCgdXNpbmegdmFsZ3JpbmQ8YnI+Cis8YnI+Cis4Njk4OaCgoG1lbWNweaBmcm9toG1hY19yZXBsYWNlX3N0cm1lbS5joGNvbXBsYWluc6BhYm91dDxicj4KK6CgoKCgoKCgdW5pbml0aWFsaXplZKBwb2ludGVyc6BwYXNzZWSgd2hlbqBsZW5ndGigdG+gY29weaBpc6B6ZXJvPGJyPgorPGJyPgorODU4MTGgoKBnbnWgcGFzY2FsoHN5bWJvbKBjYXVzZXOgc2VnbWVudGF0aW9uoGZhdWx0O6Bva6BpbqAyLjAuMDxicj4KKzxicj4KKzc5MTM4oKCgd3JpdGluZ6B0b6BzYnJrKCknZKBtZW1vcnmgY2F1c2VzoHNlZ2ZhdWx0PGJyPgorPGJyPgorNzczNjmgoKBzY2hlZKBkZWFkbG9ja6B3aGlsZaBzaWduYWygcmVjZWl2ZWSgZHVyaW5noHB0aHJlYWRfam9pbjxicj4KK6CgoKCgoKCgYW5koHRoZaBqb2luZWSgdGhyZWFkoGV4aXRlZDxicj4KKzxicj4KKzg4MTE1oKCgSW6gc2lnbmFsoGhhbmRsZXKgZm9yoFNJR0ZQRSygoHNpZ2luZm8tJmd0O3NpX2FkZHKgaXOgd3JvbmegPGJyPgoroKCgoKCgoKB1bmRlcqBWYWxncmluZDxicj4KKzxicj4KKzc4NzY1oKCgTWFzc2lmoGNyYXNoZXOgb26gYXBwoGV4aXSgaWagRlCgZXhjZXB0aW9uc6BhcmWgZW5hYmxlZDxicj4KKzxicj4KK0FkZGl0aW9uYWxseaB0aGVyZaBhcmWgdGhloGZvbGxvd2luZ6BjaGFuZ2VzLKB3aGljaKBhcmWgbm90oDxicj4KK2Nvbm5lY3RlZKB0b6BhbnmgYnVnoHJlcG9ydKBudW1iZXJzLKBBRkFJQ1M6PGJyPgorPGJyPgorKqBGaXigc2NhcnmgYnVnoGNhdXNpbmegbWlzLWlkZW50aWZpY2F0aW9uoG9moFNTRaBzdG9yZXOgdnM8YnI+CiugoGxvYWRzoGFuZKBzb6BjYXVzaW5noG1lbWNoZWNroHRvoHNvbWV0aW1lc6BnaXZloG5vbnNlbnNloHJlc3VsdHM8YnI+CiugoG9uoFNTRaBjb2RlLjxicj4KKzxicj4KKyqgQWRkoHN1cHBvcnSgZm9yoHRoZaBQT1NJWKBtZXNzYWdloHF1ZXVloHN5c3RlbaBjYWxscy48YnI+Cis8YnI+CisqoEZpeKB0b6BhbGxvd6AzMi1iaXSgVmFsZ3JpbmSgdG+gcnVuoG9uoEFNRDY0oGJveGVzLqCgTm90ZTqgdGhpc6Bkb2VzPGJyPgoroKBOT1SgYWxsb3egVmFsZ3JpbmSgdG+gd29ya6B3aXRooDY0LWJpdKBleGVjdXRhYmxlc6AtoG9ubHmgd2l0aKAzMi1iaXQ8YnI+CiugoGV4ZWN1dGFibGVzoG9uoGFuoEFNRDY0oGJveC48YnI+Cis8YnI+CisqoEF0oGNvbmZpZ3VyZaB0aW1lLKBvbmx5oGNoZWNroHdoZXRoZXKgbGludXgvbWlpLmigY2FuoGJloHByb2Nlc3NlZKA8YnI+CiugoHNvoHRoYXSgd2WgZG9uJ3SgZ2VuZXJhdGWgdWdseaB3YXJuaW5nc6BieaB0cnlpbmegdG+gY29tcGlsZaBpdC48YnI+Cis8YnI+CisqoEFkZKBzdXBwb3J0oGZvcqBQT1NJWKBjbG9ja3OgYW5koHRpbWVycy48YnI+Cis8YnI+Cis8YnI+Cis8YnI+CitEZXZlbG9wZXKgKGN2c6BoZWFkKaByZWxlYXNloDIuMS4yoCgxOKBKdWx5oDIwMDQpPGJyPgorfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fjxicj4KKzIuMS4yoGNvbnRhaW5zoGZvdXKgbW9udGhzoHdvcnRooG9moGJ1Z6BmaXhlc6BhbmSgcmVmaW5lbWVudHMuPGJyPgorQWx0aG91Z2igb2ZmaWNpYWxseaBhoGRldmVsb3BlcqByZWxlYXNlLKB3ZaBiZWxpZXZloGl0oHRvoGJloHN0YWJsZTxicj4KK2Vub3VnaKBmb3Kgd2lkZXNwcmVhZKBkYXktdG8tZGF5oHVzZS6goDIuMS4yoGlzoHByZXR0eaBnb29kLKBzb6B0cnmgaXQ8YnI+CitmaXJzdCygYWx0aG91Z2igdGhlcmWgaXOgYaBjaGFuY2WgaXSgd29uJ3Sgd29yay6goElmoHNvoHRoZW6gdHJ5oDIuMC4wPGJyPgorYW5koHRlbGygdXOgd2hhdKB3ZW50oHdyb25nLiKgoDIuMS4yoGZpeGVzoGGgbG90oG9moHByb2JsZW1zoHByZXNlbnQ8YnI+CitpbqAyLjAuMKBhbmSgaXOgZ2VuZXJhbGx5oGGgbXVjaKBiZXR0ZXKgcHJvZHVjdC48YnI+Cis8YnI+CitSZWxhdGl2ZaB0b6AyLjEuMSygYaBsYXJnZaBudW1iZXKgb2agbWlub3KgcHJvYmxlbXOgd2l0aKAyLjEuMaBoYXZlPGJyPgorYmVlbqBmaXhlZCygYW5koHNvoGlmoHlvdaB1c2WgMi4xLjGgeW91oHNob3VsZKB0cnmgMi4xLjIuoKBVc2Vyc6BvZjxicj4KK3RoZaBsYXN0oHN0YWJsZaByZWxlYXNlLKAyLjAuMCygbWlnaHSgYWxzb6B3YW50oHRvoHRyeaB0aGlzoHJlbGVhc2UuPGJyPgorPGJyPgorVGhloGZvbGxvd2luZ6BidWdzLKBhbmSgcHJvYmFibHmgbWFueaBtb3JlLKBoYXZloGJlZW6gZml4ZWQuoKBUaGVzZTxicj4KK2FyZaBsaXN0ZWSgYXSgaHR0cDovL2J1Z3Mua2RlLm9yZy6goFJlcG9ydGluZ6BhoGJ1Z6Bmb3KgdmFsZ3JpbmSgaW48YnI+Cit0aGWgaHR0cDovL2J1Z3Mua2RlLm9yZ6Bpc6BtdWNooG1vcmWgbGlrZWx5oHRvoGdldKB5b3WgYaBmaXigdGhhbjxicj4KK21haWxpbmegZGV2ZWxvcGVyc6BkaXJlY3RseSygc2+gcGxlYXNloGNvbnRpbnVloHRvoGtlZXCgc2VuZGluZ6BidWdzPGJyPgordGhlcmUuPGJyPgorPGJyPgorNzY4NjmgoKBDcmFzaGVzoHdoZW6gcnVubmluZ6BhbnmgdG9vbKB1bmRlcqBGZWRvcmGgQ29yZaAyoHRlc3QxPGJyPgoroKCgoKCgoKBUaGlzoGZpeGVzoHRoZaBwcm9ibGVtoHdpdGigcmV0dXJuaW5noGZyb22gYaBzaWduYWygaGFuZGxlcqA8YnI+CiugoKCgoKCgoHdoZW6gVkRTT3OgYXJloHR1cm5lZKBvZmagaW6gRkMyLjxicj4KKzxicj4KKzY5NTA4oKCgamF2YaAxLjQuMqBjbGllbnSgZmFpbHOgd2l0aKBlcnJvbmVvdXOgInN0YWNroHNpemWgdG9voHNtYWxsIi48YnI+CiugoKCgoKCgoFRoaXOgZml4oG1ha2VzoG1vcmWgb2agdGhloHB0aHJlYWSgc3RhY2ugYXR0cmlidXRloHJlbGF0ZWSgPGJyPgoroKCgoKCgoKBmdW5jdGlvbnOgd29ya6Bwcm9wZXJseS6goEphdmGgc3RpbGygZG9lc24ndKB3b3JroHRob3VnaC48YnI+Cis8YnI+Cis3MTkwNqCgoG1hbGxvY6BhbGlnbm1lbnSgc2hvdWxkoGJloDgsoG5vdKA0PGJyPgoroKCgoKCgoKBBbGygbWVtb3J5oHJldHVybmVkoGJ5oG1hbGxvYy9uZXegZXRjoGlzoG5vd6BhdKBsZWFzdDxicj4KK6CgoKCgoKCgOC1ieXRloGFsaWduZWQuPGJyPgorPGJyPgorODE5NzCgoKB2Z19hbGxvY19UaHJlYWRTdGF0ZTqgbm+gZnJlZaBzbG90c6BhdmFpbGFibGU8YnI+CiugoKCgoKCgoChjbG9zZWSgYmVjYXVzZaB0aGWgd29ya2Fyb3VuZKBpc6BzaW1wbGU6oGluY3JlYXNlPGJyPgoroKCgoKCgoKCgVkdfTl9USFJFQURTLKByZWJ1aWxkoGFuZKB0cnmgYWdhaW4uKTxicj4KKzxicj4KKzc4NTE0oKCgQ29uZGl0aW9uYWyganVtcKBvcqBtb3ZloGRlcGVuZHOgb26gdW5pbml0aWFsaXplZKB2YWx1ZShzKTxicj4KK6CgoKCgoKCgKGGgc2xpZ2h0oG1pc2hhbmRpbmegb2agRlCgY29kZaBpbqBtZW1jaGVjayk8YnI+Cis8YnI+Cis3Nzk1MqCgoHBUaHJlYWSgU3VwcG9ydKAoY3Jhc2gpoChkdWWgdG+gaW5pdGlhbGlzYXRpb24tb3JkZXJpbmegcHJvYnMpPGJyPgoroKCgoKCgoKAoYWxzb6A4NTExOCk8YnI+Cis8YnI+Cis4MDk0MqCgoEFkZHJjaGVja6B3YXNuJ3SgZG9pbmegb3ZlcmxhcKBjaGVja2luZ6Bhc6BpdKBzaG91bGQuPGJyPgorNzgwNDigoKByZXR1cm6gTlVMTKBvbqBtYWxsb2MvbmV3oGV0Y6BmYWlsdXJlLKBpbnN0ZWFkoG9moGFzc2VydGluZzxicj4KKzczNjU1oKCgb3BlcmF0b3KgbmV3KCmgb3ZlcnJpZGWgaW6gdXNlcqAuc2+gZmlsZXOgb2Z0ZW6gZG9lc24ndKBnZXSgcGlja2VkoHVwPGJyPgorODMwNjCgoKBWYWxncmluZKBkb2VzoG5vdKBoYW5kbGWgbmF0aXZloGtlcm5lbKBBSU88YnI+Cis2OTg3MqCgoENyZWF0ZaBwcm9wZXKgY29yZWR1bXBzoGFmdGVyoGZhdGFsoHNpZ25hbHM8YnI+Cis4MjAyNqCgoGZhaWx1cmWgd2l0aKBuZXegZ2xpYmOgdmVyc2lvbnM6oF9fbGliY18qoGZ1bmN0aW9uc6BhcmWgbm90oGV4cG9ydGVkPGJyPgorNzAzNDSgoKBVTklNUExFTUVOVEVEoEZVTkNUSU9OOqB0Y2RyYWluoDxicj4KKzgxMjk3oKCgQ2FuY2VsbGF0aW9uoG9moHB0aHJlYWRfY29uZF93YWl0oGRvZXOgbm90oHJlcXVpcmWgbXV0ZXg8YnI+Cis4Mjg3MqCgoFVzaW5noGRlYnVnoGluZm+gZnJvbaBhZGRpdGlvbmFsoHBhY2thZ2VzoCh3aXNobGlzdCk8YnI+Cis4MzAyNaCgoFN1cHBvcnSgZm9yoGlvY3Rsc6BGSUdFVEJTWqBhbmSgRklCTUFQPGJyPgorODMzNDCgoKBTdXBwb3J0oGZvcqBpb2N0bKBIRElPX0dFVF9JREVOVElUWTxicj4KKzc5NzE0oKCgU3VwcG9ydKBmb3KgdGhloHNlbXRpbWVkb3Cgc3lzdGVtoGNhbGwuPGJyPgorNzcwMjKgoKBTdXBwb3J0oGZvcqBpb2N0bHOgRkJJT0dFVF9WU0NSRUVOSU5GT6BhbmSgRkJJT0dFVF9GU0NSRUVOSU5GTzxicj4KKzgyMDk4oKCgaHAycHOgYW5zaWZpY2F0aW9uoCh3aXNobGlzdCk8YnI+Cis4MzU3M6CgoFZhbGdyaW5koFNJR1NFR1agb26gZXhlY3ZlPGJyPgorODI5OTmgoKBzaG93oHdoaWNooGNtZGxpbmWgb3B0aW9uoHdhc6BlcnJvbmVvdXOgKHdpc2hsaXN0KTxicj4KKzgzMDQwoKCgbWFrZaB2YWxncmluZKBWUEFUSKBhbmSgZGlzdGNoZWNrLWNsZWFuoCh3aXNobGlzdCk8YnI+Cis4Mzk5OKCgoEFzc2VydGlvbqBgbmV3ZmSgJmd0O6B2Z1BsYWluX21heF9mZCegZmFpbGVkoChzZWWgYmVsb3cpPGJyPgorODI3MjKgoKBVbmNoZWNrZWSgbW1hcKBpbqBhc19wYWSgbGVhZHOgdG+gbXlzdGVyaW91c6BmYWlsdXJlc6BsYXRlcjxicj4KKzc4OTU4oKCgbWVtY2hlY2ugc2VnoGZhdWx0c6B3aGlsZaBydW5uaW5noE1vemlsbGGgPGJyPgorODU0MTagoKBBcmd1bWVudHOgd2l0aKBjb2xvbqAoZS5nLqAtLWxvZ3NvY2tldCmgaWdub3JlZDxicj4KKzxicj4KKzxicj4KK0FkZGl0aW9uYWxseaB0aGVyZaBhcmWgdGhloGZvbGxvd2luZ6BjaGFuZ2VzLKB3aGljaKBhcmWgbm90oDxicj4KK2Nvbm5lY3RlZKB0b6BhbnmgYnVnoHJlcG9ydKBudW1iZXJzLKBBRkFJQ1M6PGJyPgorPGJyPgorKqBSZWFycmFuZ2VkoGFkZHJlc3Ogc3BhY2WgbGF5b3V0oHJlbGF0aXZloHRvoDIuMS4xLKBzb6B0aGF0PGJyPgoroKBWYWxncmluZC90b29sc6B3aWxsoHJ1bqBvdXSgb2agbWVtb3J5oGxhdGVyoHRoYW6gY3VycmVudGx5oGluoG1hbnk8YnI+CiugoGNpcmN1bXN0YW5jZXMuoKBUaGlzoGlzoGdvb2SgbmV3c6Blc3AuoGZvcqBDYWxsdHJlZS6goEl0oHNob3VsZDxicj4KK6CgYmWgcG9zc2libGWgZm9yoGNsaWVudKBwcm9ncmFtc6B0b6BhbGxvY2F0ZaBvdmVyoDgwME1CoG9mPGJyPgoroKBtZW1vcnmgd2hlbqB1c2luZ6BtZW1jaGVja6Bub3cuPGJyPgorPGJyPgorKqBJbXByb3ZlZKBjaGVja2luZ6B3aGVuoGxheWluZ6BvdXSgbWVtb3J5LqCgU2hvdWxkoGhvcGVmdWxseaBhdm9pZDxicj4KK6CgdGhloHJhbmRvbaBzZWdtZW50YXRpb26gZmF1bHRzoHRoYXSgMi4xLjGgc29tZXRpbWVzoGNhdXNlZC48YnI+Cis8YnI+CisqoFN1cHBvcnSgZm9yoEZlZG9yYaBDb3JloDKgYW5koFN1U0WgOS4xLqCgSW1wcm92ZW1lbnRzoHRvoE5QVEw8YnI+CiugoHN1cHBvcnSgdG+gdGhloGV4dGVudKB0aGF0oFagbm93oHdvcmtzoHByb3Blcmx5oG9uoE5QVEwtb25seaBzZXR1cHMuPGJyPgorPGJyPgorKqBSZW5hbWVkoHRoZaBmb2xsb3dpbmegb3B0aW9uczo8YnI+CiugoC0tbG9nZmlsZS1mZKCgLS0mZ3Q7oKAtLWxvZy1mZDxicj4KK6CgLS1sb2dmaWxloKCgoKAtLSZndDugoC0tbG9nLWZpbGU8YnI+CiugoC0tbG9nc29ja2V0oKCgLS0mZ3Q7oKAtLWxvZy1zb2NrZXQ8YnI+CiugoHRvoGJloGNvbnNpc3RlbnSgd2l0aKBlYWNooG90aGVyoGFuZKBvdGhlcqBvcHRpb25zoChlc3AuoC0taW5wdXQtZmQpLjxicj4KKzxicj4KKyqgQWRkoHN1cHBvcnSgZm9yoFNJT0NHTUlJUEhZLKBTSU9DR01JSVJFR6BhbmSgU0lPQ1NNSUlSRUegaW9jdGxzoGFuZDxicj4KK6CgaW1wcm92ZaB0aGWgY2hlY2tpbmegb2agb3RoZXKgaW50ZXJmYWNloHJlbGF0ZWSgaW9jdGxzLjxicj4KKzxicj4KKyqgRml4oGJ1aWxkaW5noHdpdGigZ2NjLTMuNC4xLjxicj4KKzxicj4KKyqgUmVtb3ZloGxpbWl0oG9uoG51bWJlcqBvZqBzZW1hcGhvcmVzoHN1cHBvcnRlZC48YnI+Cis8YnI+CisqoEFkZKBzdXBwb3J0oGZvcqBzeXNjYWxsczqgc2V0X3RpZF9hZGRyZXNzoCgyNTgpLKBhY2N0oCg1MSkuPGJyPgorPGJyPgorKqBTdXBwb3J0oGluc3RydWN0aW9uoCJyZXBuZaBtb3ZzIqAtLaBub3Sgb2ZmaWNpYWygYnV0oHNlZW1zoHRvoG9jY3VyLjxicj4KKzxicj4KKyqgSW1wbGVtZW50oGFuoGVtdWxhdGVkoHNvZnSgbGltaXSgZm9yoGZpbGWgZGVzY3JpcHRvcnOgaW6gYWRkaXRpb26gdG88YnI+CiugoHRoZaBjdXJyZW50oHJlc2VydmVkoGFyZWEsoHdoaWNooGVmZmVjdGl2ZWx5oGFjdHOgYXOgYaBoYXJkoGxpbWl0LqBUaGU8YnI+CiugoHNldHJsaW1pdKBzeXN0ZW2gY2FsbKBub3egc2ltcGx5oHVwZGF0ZXOgdGhloGVtdWxhdGVkoGxpbWl0c6Bhc6BiZXN0PGJyPgoroKBhc6Bwb3NzaWJsZaAtoHRoZaBoYXJkoGxpbWl0oGlzoG5vdKBhbGxvd2VkoHRvoG1vdmWgYXSgYWxsoGFuZKBqdXN0PGJyPgoroKByZXR1cm5zoEVQRVJNoGlmoHlvdaB0cnmgYW5koGNoYW5nZaBpdC6goFRoaXOgc2hvdWxkoHN0b3CgcmVkdWN0aW9uczxicj4KK6CgaW6gdGhloHNvZnSgbGltaXSgY2F1c2luZ6Bhc3NlcnRpb25zoHdoZW6gdmFsZ3JpbmSgdHJpZXOgdG+gYWxsb2NhdGU8YnI+CiugoGRlc2NyaXB0b3JzoGZyb22gdGhloHJlc2VydmVkoGFyZWEuPGJyPgoroKAoVGhpc6BhY3R1YWxseaBjYW1loGZyb22gYnVnoCM4Mzk5OCkuPGJyPgorPGJyPgorKqBNYWpvcqBvdmVyaGF1bKBvZqBDYWNoZWdyaW5koGltcGxlbWVudGF0aW9uLqCgRmlyc3SgdXNlci12aXNpYmxloGNoYW5nZTxicj4KK6CgaXOgdGhhdKBjYWNoZWdyaW5kLm91dKBmaWxlc6BhcmWgbm93oHR5cGljYWxseaA5MCWgc21hbGxlcqB0aGFuoHRoZXk8YnI+CiugoHVzZWSgdG+gYmU7oKBjb2RloGFubm90YXRpb26gdGltZXOgYXJloGNvcnJlc3BvbmRpbmdseaBtdWNooHNtYWxsZXIuPGJyPgoroKBTZWNvbmSgdXNlci12aXNpYmxloGNoYW5nZaBpc6B0aGF0oGhpdC9taXNzoGNvdW50c6Bmb3KgY29kZaB0aGF0oGlzPGJyPgoroKB1bmxvYWRlZKBhdKBydW4tdGltZaBpc6Bub6Bsb25nZXKgZHVtcGVkoGludG+gYaBzaW5nbGWgImRpc2NhcmQioHBpbGUsPGJyPgoroKBidXSgYWNjdXJhdGVseaBwcmVzZXJ2ZWQuPGJyPgorPGJyPgorKqBDbGllbnSgcmVxdWVzdHOgZm9yoHRlbGxpbmegdmFsZ3JpbmSgYWJvdXSgbWVtb3J5oHBvb2xzLjxicj4KKzxicj4KKzxicj4KKzxicj4KK0RldmVsb3BlcqAoY3ZzoGhlYWQpoHJlbGVhc2WgMi4xLjGgKDEyoE1hcmNooDIwMDQpPGJyPgorfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn48YnI+CisyLjEuMaBjb250YWluc6Bzb21loGludGVybmFsoHN0cnVjdHVyYWygY2hhbmdlc6BuZWVkZWSgZm9yoFYnczxicj4KK2xvbmctdGVybaBmdXR1cmUuoKBUaGVzZaBkb24ndKBhZmZlY3SgZW5kLXVzZXJzLqCgTW9zdKBub3RhYmxlPGJyPgordXNlci12aXNpYmxloGNoYW5nZXOgYXJlOjxicj4KKzxicj4KKyqgR3JlYXRlcqBpc29sYXRpb26gYmV0d2VlbqBWYWxncmluZKBhbmSgdGhloHByb2dyYW2gYmVpbmegcnVuLKBzbzxicj4KK6CgdGhloHByb2dyYW2gaXOgbGVzc6BsaWtlbHmgdG+gaW5hZHZlcnRlbnRseaBraWxsoFZhbGdyaW5koGJ5PGJyPgoroKBkb2luZ6B3aWxkoHdyaXRlcy48YnI+Cis8YnI+CisqoE1hc3NpZjqgYaBuZXegc3BhY2WgcHJvZmlsaW5noHRvb2wuoKBUcnmgaXQhoKBJdCdzoGNvb2wsoGFuZKBpdCdsbDxicj4KK6CgdGVsbKB5b3WgaW6gZGV0YWlsoHdoZXJloGFuZKB3aGVuoHlvdXKgQy9DKyugY29kZaBpc6BhbGxvY2F0aW5noGhlYXAuPGJyPgoroKBEcmF3c6BwcmV0dHmgLnBzoHBpY3R1cmVzoG9moG1lbW9yeaB1c2WgYWdhaW5zdKB0aW1lLqCgQaBwb3RlbnRpYWxseTxicj4KK6CgcG93ZXJmdWygdG9vbKBmb3KgbWFraW5noHNlbnNloG9moHlvdXKgcHJvZ3JhbSdzoHNwYWNloHVzZS48YnI+Cis8YnI+CisqoEZpeGVzoGZvcqBtYW55oGJ1Z3MsoGluY2x1ZGluZ6BzdXBwb3J0oGZvcqBtb3JloFNTRTIvU1NFM6BpbnN0cnVjdGlvbnMsPGJyPgoroKB2YXJpb3VzoHNpZ25hbC9zeXNjYWxsoHRoaW5ncyygYW5koHZhcmlvdXOgcHJvYmxlbXOgd2l0aKBkZWJ1Zzxicj4KK6CgaW5mb6ByZWFkZXJzLjxicj4KKzxicj4KKyqgU3VwcG9ydKBmb3KgZ2xpYmMtMi4zLjOgYmFzZWSgc3lzdGVtcy48YnI+Cis8YnI+CitXZaBhcmWgbm93oGRvaW5noGF1dG9tYXRpY6BvdmVybmlnaHSgYnVpbGQtYW5kLXRlc3SgcnVuc6BvbqBhoHZhcmlldHk8YnI+CitvZqBkaXN0cm9zLqCgQXOgYaByZXN1bHQsoHdloGJlbGlldmWgMi4xLjGgYnVpbGRzoGFuZKBydW5zoG9uOjxicj4KK1JlZKBIYXSgNy4yLKA3LjMsoDguMCygOSygRmVkb3JhoENvcmWgMSygU3VTRaA4LjIsoFN1U0WgOS48YnI+Cis8YnI+Cis8YnI+CitUaGWgZm9sbG93aW5noGJ1Z3MsoGFuZKBwcm9iYWJseaBtYW55oG1vcmUsoGhhdmWgYmVlbqBmaXhlZC6goFRoZXNlPGJyPgorYXJloGxpc3RlZKBhdKBodHRwOi8vYnVncy5rZGUub3JnLqCgUmVwb3J0aW5noGGgYnVnoGZvcqB2YWxncmluZKBpbjxicj4KK3RoZaBodHRwOi8vYnVncy5rZGUub3JnoGlzoG11Y2igbW9yZaBsaWtlbHmgdG+gZ2V0oHlvdaBhoGZpeKB0aGFuPGJyPgorbWFpbGluZ6BkZXZlbG9wZXJzoGRpcmVjdGx5LKBzb6BwbGVhc2WgY29udGludWWgdG+ga2VlcKBzZW5kaW5noGJ1Z3M8YnI+Cit0aGVyZS48YnI+Cis8YnI+Cis2OTYxNqCgoGdsaWJjoDIuMy4yoHcvTlBUTKBpc6BtYXNzaXZlbHmgZGlmZmVyZW50oHRoYW6gd2hhdKB2YWxncmluZKBleHBlY3RzoDxicj4KKzY5ODU2oKCgSaBkb24ndKBrbm93oGhvd6B0b6BpbnN0cnVtZW50oE1NWGlzaKBzdHVmZqAoSGVsZ3JpbmQpPGJyPgorNzM4OTKgoKB2YWxncmluZKBzZWdmYXVsdHOgc3RhcnRpbmegd2l0aKBPYmplY3RpdmUtQ6BkZWJ1Z6BpbmZvoDxicj4KK6CgoKCgoKCgKGZpeKBmb3KgUy10eXBloHN0YWJzKTxicj4KKzczMTQ1oKCgVmFsZ3JpbmSgY29tcGxhaW5zoHRvb6BtdWNooGFib3V0oGNsb3NlKCZsdDtyZXNlcnZlZKBmZCZndDspoDxicj4KKzczOTAyoKCgU2hhZG93oG1lbW9yeaBhbGxvY2F0aW9uoHNlZW1zoHRvoGZhaWygb26gUmVkSGF0oDguMKA8YnI+Cis2ODYzM6CgoFZHX05fU0VNQVBIT1JFU6B0b2+gbG93oChWoGl0c2VsZqB3YXOgbGVha2luZ6BzZW1hcGhvcmVzKTxicj4KKzc1MDk5oKCgaW1wb3NzaWJsZaB0b6B0cmFjZaBtdWx0aXByb2Nlc3OgcHJvZ3JhbXOgPGJyPgorNzY4MzmgoKB0aGWgYGltcG9zc2libGUnoGhhcHBlbmVkOqBkaXNJbnN0cjqgSU5UoGJ1dKBub3SgMHg4MKAhoDxicj4KKzc2NzYyoKCgdmdfdG9fdWNvZGUuYzozNzQ4oChkaXNfcHVzaF9zZWdyZWcpOqBBc3NlcnRpb26gYHN6oD09oDQnoGZhaWxlZC6gPGJyPgorNzY3NDegoKBjYW5ub3SgaW5jbHVkZaB2YWxncmluZC5ooGluoGMrK6Bwcm9ncmFtoDxicj4KKzc2MjIzoKCgcGFyc2luZ6BCKDMsMTApoGdhdmWgTlVMTKB0eXBloD0mZ3Q7oGltcG9zc2libGWgaGFwcGVuc6A8YnI+Cis3NTYwNKCgoHNobWR0oGhhbmRsaW5noHByb2JsZW2gPGJyPgorNzY0MTagoKBQcm9ibGVtc6B3aXRooGdjY6AzLjSgc25hcKAyMDA0MDIyNaA8YnI+Cis3NTYxNKCgoHVzaW5noC1nc3RhYnOgd2hlbqBidWlsZGluZ6B5b3VyoHByb2dyYW1zoHRoZaBgaW1wb3NzaWJsZSegaGFwcGVuZWQ8YnI+Cis3NTc4N6CgoFBhdGNooGZvcqBzb21loENEUk9NoGlvY3Rsc6BDRE9STV9HRVRfTUNOLKBDRFJPTV9TRU5EX1BBQ0tFVCw8YnI+Cis3NTI5NKCgoGdjY6AzLjSgc25hcHNob3Qnc6BsaWJzdGRjKyugaGF2ZaB1bnN1cHBvcnRlZKBpbnN0cnVjdGlvbnMuoDxicj4KK6CgoKCgoKCgKFJFUKBSRVQpPGJyPgorNzMzMjagoKB2Z19zeW10YWIyLmM6MjcyoChhZGRTY29wZVJhbmdlKTqgQXNzZXJ0aW9uoGByYW5nZS0mZ3Q7c2l6ZaAmZ3Q7oDAnoGZhaWxlZC6gPGJyPgorNzI1OTagoKBub3SgcmVjb2duaXppbmegX19saWJjX21hbGxvY6A8YnI+Cis2OTQ4OaCgoFdvdWxkoGxpa2WgdG+gYXR0YWNooGRkZKB0b6BydW5uaW5noHByb2dyYW2gPGJyPgorNzI3ODGgoKBDYWNoZWdyaW5koGNyYXNoZXOgd2l0aKBrZGWgcHJvZ3JhbXOgPGJyPgorNzMwNTWgoKBJbGxlZ2FsoG9wZXJhbmSgYXSgRFhUQ1YxMUNvbXByZXNzQmxvY2tTU0UyoChtb3JloFNTRaBvcGNvZGVzKTxicj4KKzczMDI2oKCgRGVzY3JpcHRvcqBsZWFroGNoZWNroHJlcG9ydHOgcG9ydKBudW1iZXJzoHdyb25nbHmgPGJyPgorNzE3MDWgoKBSRUFETUVfTUlTU0lOR19TWVNDQUxMX09SX0lPQ1RMoG91dKBvZqBkYXRloDxicj4KKzcyNjQzoKCgSW1wcm92ZaBzdXBwb3J0oGZvcqBTU0UvU1NFMqBpbnN0cnVjdGlvbnOgPGJyPgorNzI0ODSgoKB2YWxncmluZKBsZWF2ZXOgaXQnc6Bvd26gc2lnbmFsoG1hc2ugaW6gcGxhY2Wgd2hlbqBleGVjaW5noDxicj4KKzcyNjUwoKCgU2lnbmFsoEhhbmRsaW5noGFsd2F5c6BzZWVtc6B0b6ByZXN0YXJ0oHN5c3RlbaBjYWxsc6A8YnI+Cis3MjAwNqCgoFRoZaBtbWFwoHN5c3RlbaBjYWxsoHR1cm5zoGFsbKBlcnJvcnOgaW6gRU5PTUVNoDxicj4KKzcxNzgxoKCgZ2RioGF0dGFjaKBpc6BwcmV0dHmgdXNlbGVzc6A8YnI+Cis3MTE4MKCgoHVuaGFuZGxlZKBpbnN0cnVjdGlvbqBieXRlczqgMHhGoDB4QUWgMHg4NaAweEU4oDxicj4KKzY5ODg2oKCgd3JpdGVzoHRvoHplcm+gcGFnZaBjYXVzZaB2YWxncmluZKB0b6Bhc3NlcnSgb26gZXhpdKA8YnI+Cis3MTc5MaCgoGNyYXNooHdoZW6gdmFsZ3JpbmRpbmegZ2ltcKAxLjOgKHN0YWJzoHJlYWRlcqBwcm9ibGVtKTxicj4KKzY5NzgzoKCgdW5oYW5kbGVkoHN5c2NhbGw6oDIxOKA8YnI+Cis2OTc4MqCgoHVuaGFuZGxlZKBpbnN0cnVjdGlvbqBieXRlczqgMHg2NqAweEagMHgyQqAweDgwoDxicj4KKzcwMzg1oKCgdmFsZ3JpbmSgZmFpbHOgaWagdGhloHNvZnSgZmlsZaBkZXNjcmlwdG9yoGxpbWl0oGlzoGxlc3OgPGJyPgoroKCgoKCgoKB0aGFuoGFib3V0oDgyODxicj4KKzY5NTI5oKCgInJlcDugbm9wIqBzaG91bGSgZG+gYaB5aWVsZKA8YnI+Cis3MDgyN6CgoHByb2dyYW1zoHdpdGigbG90c6BvZqBzaGFyZWSgbGlicmFyaWVzoHJlcG9ydKAibW1hcKBmYWlsZWQioDxicj4KK6CgoKCgoKCgZm9yoHNvbWWgb2agdGhlbaB3aGVuoHJlYWRpbmegc3ltYm9sc6A8YnI+Cis3MTAyOKCgoGdsaWJjJ3Ogc3RybmxlbqBpc6BvcHRpbWlzZWSgZW5vdWdooHRvoGNvbmZ1c2WgdmFsZ3JpbmSgPGJyPgorPGJyPgorPGJyPgorPGJyPgorPGJyPgorVW5zdGFibGWgKGN2c6BoZWFkKaByZWxlYXNloDIuMS4woCgxNaBEZWNlbWJlcqAyMDAzKTxicj4KK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn48YnI+CitGb3Kgd2hhdGV2ZXKgaXQnc6B3b3J0aCygMi4xLjCgYWN0dWFsbHmgc2VlbXOgcHJldHR5oGRhcm6gc3RhYmxloHRvoG1lPGJyPgorKEp1bGlhbikuoKBJdKBsb29rc6BlbWluZW50bHmgdXNhYmxlLKBhbmSgZ2l2ZW6gdGhhdKBpdKBmaXhlc6Bzb21lPGJyPgorc2lnbmlmaWNhbnSgYnVncyygbWF5oHdlbGygYmWgd29ydGigdXNpbmegb26gYaBkYXktdG8tZGF5oGJhc2lzLjxicj4KKzIuMS4woGlzoGtub3duoHRvoGJ1aWxkoGFuZKBwYXNzoHJlZ3Jlc3Npb26gdGVzdHOgb246oFN1U0WgOSygU3VTRTxicj4KKzguMiygUmVkSGF0oDguPGJyPgorPGJyPgorMi4xLjCgbW9zdKBub3RhYmx5oGluY2x1ZGVzoEplcmVteaBGaXR6aGFyZGluZ2Unc6Bjb21wbGV0ZaBvdmVyaGF1bKBvZjxicj4KK2hhbmRsaW5noG9moHN5c3RlbaBjYWxsc6BhbmSgc2lnbmFscyygYW5koHRoZWlyoGludGVyYWN0aW9uoHdpdGg8YnI+Cit0aHJlYWRzLqCgSW6gZ2VuZXJhbCygdGhloGFjY3VyYWN5oG9moHRoZaBzeXN0ZW2gY2FsbCygdGhyZWFkoGFuZDxicj4KK3NpZ25hbKBzaW11bGF0aW9uc6Bpc6BtdWNooGltcHJvdmVkLqCgU3BlY2lmaWNhbGx5Ojxicj4KKzxicj4KKy2gQmxvY2tpbmegc3lzdGVtoGNhbGxzoGJlaGF2ZaBleGFjdGx5oGFzoHRoZXmgZG+gd2hlbqBydW5uaW5nPGJyPgoroKBuYXRpdmVseaAobm90oG9uoHZhbGdyaW5kKS6goFRoYXSgaXMsoGlmoGGgc3lzY2FsbKBibG9ja3Ogb25seaB0aGU8YnI+CiugoGNhbGxpbmegdGhyZWFkoHdoZW6gcnVubmluZ6BuYXRpdmVseSygdGhhbqBpdKBiZWhhdmVzoHRoZaBzYW1loG9uPGJyPgoroKB2YWxncmluZC6goE5voG1vcmWgbXlzdGVyaW91c6BoYW5nc6BiZWNhdXNloFagZG9lc24ndKBrbm93oHRoYXSgc29tZTxicj4KK6Cgc3lzY2FsbKBvcqBvdGhlciygc2hvdWxkoGJsb2NroG9ubHmgdGhloGNhbGxpbmegdGhyZWFkLjxicj4KKzxicj4KKy2gSW50ZXJydXB0ZWSgc3lzY2FsbHOgc2hvdWxkoG5vd6BnaXZloG1vcmWgZmFpdGhmdWygcmVzdWx0cy48YnI+Cis8YnI+CistoEZpbmFsbHksoHNpZ25hbKBjb250ZXh0c6BpbqBzaWduYWygaGFuZGxlcnOgYXJloHN1cHBvcnRlZC6goEFzoGE8YnI+CiugoHJlc3VsdCyga29ucXVlcm9yoG9uoFN1U0WgOaBub6Bsb25nZXKgc2VnZmF1bHRzoHdoZW6gbm90aWZpZWSgb2Y8YnI+CiugoGZpbGWgY2hhbmdlc6BpbqBkaXJlY3Rvcmllc6BpdKBpc6B3YXRjaGluZy48YnI+Cis8YnI+CitPdGhlcqBjaGFuZ2VzOjxicj4KKzxicj4KKy2gUm9iZXJ0oFdhbHNoJ3OgZmlsZaBkZXNjcmlwdG9yoGxlYWthZ2WgY2hlY2tzLqCgV2hlbqBlbmFibGVkLDxicj4KK6CgVmFsZ3JpbmSgd2lsbKBwcmludKBvdXSgYaBsaXN0oG9moG9wZW6gZmlsZaBkZXNjcmlwdG9yc6Bvbjxicj4KK6CgZXhpdC6goEFsb25noHdpdGigZWFjaKBmaWxloGRlc2NyaXB0b3IsoFZhbGdyaW5koHByaW50c6BvdXSgYaBzdGFjazxicj4KK6CgYmFja3RyYWNloG9moHdoZXJloHRoZaBmaWxloHdhc6BvcGVuZWSgYW5koGFueaBkZXRhaWxzoHJlbGF0aW5noHRvoHRoZTxicj4KK6CgZmlsZaBkZXNjcmlwdG9yoHN1Y2igYXOgdGhloGZpbGWgbmFtZaBvcqBzb2NrZXSgZGV0YWlscy48YnI+CiugoFRvoHVzZSygZ2l2ZTqgLS10cmFjay1mZHM9eWVzPGJyPgorPGJyPgorLaBJbXBsZW1lbnRlZKBhoGZld6Btb3JloFNTRS9TU0UyoGluc3RydWN0aW9ucy48YnI+Cis8YnI+CistoExlc3OgY3J1ZKBvbqB0aGWgc3RhY2ugd2hlbqB5b3WgZG+gJ3doZXJlJ6BpbnNpZGWgYaBHREKgYXR0YWNoLjxicj4KKzxicj4KKy2gRml4ZWSgdGhloGZvbGxvd2luZ6BidWdzOjxicj4KK6CgNjgzNjA6oFZhbGdyaW5koGRvZXOgbm90oGNvbXBpbGWgYWdhaW5zdKAyLjYuMC10ZXN0WKBrZXJuZWxzPGJyPgoroKA2ODUyNTqgQ1ZToGhlYWSgZG9lc24ndKBjb21waWxloG9uoEM5MKBjb21waWxlcnM8YnI+CiugoDY4NTY2OqBwa2djb25maWegc3VwcG9ydKAod2lzaGxpc3QpPGJyPgoroKA2ODU4ODqgQXNzZXJ0aW9uoGBzeqA9PaA0J6BmYWlsZWSgaW6gdmdfdG9fdWNvZGUuY6AoZGlzSW5zdHIpPGJyPgoroKA2OTE0MDqgdmFsZ3JpbmSgbm90oGFibGWgdG+gZXhwbGljaXRseaBzcGVjaWZ5oGGgcGF0aKB0b6BhoGJpbmFyeS6gPGJyPgoroKA2OTQzMjqgaGVsZ3JpbmSgYXNzZXJ0c6BlbmNvdW50ZXJpbmegYaBNdXRleEVycqB3aGVuoHRoZXJloGFyZaA8YnI+CiugoKCgoKCgoKBFcmFzZXJFcnKgc3VwcHJlc3Npb25zPGJyPgorPGJyPgorLaBJbmNyZWFzZaB0aGWgbWF4oHNpemWgb2agdGhloHRyYW5zbGF0aW9uoGNhY2hloGZyb22gMjAwa6BhdmVyYWdloGJiczxicj4KK6CgdG+gMzAwa6BhdmVyYWdloGJicy6goFByb2dyYW1zoG9uoHRoZaBzaXploG9moE9Pb6AoNjgwbTE3KaBhcmU8YnI+CiugoHRocmFzaGluZ6B0aGWgY2FjaGWgYXSgdGhloHNtYWxsZXKgc2l6ZSygY3JlYXRpbmegbGFyZ2WgbnVtYmVyc6BvZjxicj4KK6CgcmV0cmFuc2xhdGlvbnOgYW5koHdhc3Rpbmegc2lnbmlmaWNhbnSgdGltZaBhc6BhoHJlc3VsdC48YnI+Cis8YnI+Cis8YnI+Cis8YnI+CitTdGFibGWgcmVsZWFzZaAyLjAuMKAoNaBOb3agMjAwMyk8YnI+Cit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn48YnI+Cis8YnI+CisyLjAuMKBpbXByb3Zlc6BTU0UvU1NFMqBzdXBwb3J0LKBmaXhlc6Bzb21loG1pbm9yoGJ1Z3MsoGFuZDxicj4KK2ltcHJvdmVzoHN1cHBvcnSgZm9yoFN1U0WgOaBhbmSgdGhloFJlZKBIYXSgIlNldmVybiKgYmV0YS48YnI+Cis8YnI+CistoEZ1cnRoZXKgaW1wcm92ZW1lbnRzoHRvoFNTRS9TU0UyoHN1cHBvcnQuoKBUaGWgZW50aXJloHRlc3Sgc3VpdGWgb2Y8YnI+CiugoHRoZaBHTlWgU2NpZW50aWZpY6BMaWJyYXJ5oChnc2wtMS40KaBjb21waWxlZKB3aXRooEludGVsoEljY6A3LjE8YnI+CiugoDIwMDMwMzA3WqAnLWegLU+gLXhXJ6Bub3egd29ya3MuoKBJoHRoaW5roHRoaXOgZ2l2ZXOgcHJldHR5oGdvb2Q8YnI+CiugoGNvdmVyYWdloG9moFNTRS9TU0UyoGZsb2F0aW5noHBvaW50oGluc3RydWN0aW9ucyygb3KgYXSgbGVhc3SgdGhlPGJyPgoroKBzdWJzZXSgZW1pdHRlZKBieaBJY2MuPGJyPgorPGJyPgorLaBBbHNvoGFkZGVkoHN1cHBvcnSgZm9yoHRoZaBmb2xsb3dpbmegaW5zdHJ1Y3Rpb25zOjxicj4KK6CgoKBNT1ZOVERRoFVDT01JU0SgVU5QQ0tMUFOgVU5QQ0tIUFOgU1FSVFNTPGJyPgoroKCgoFBVU0gvUE9QoCV7RlMsR1N9LKBhbmSgUFVTSKAlQ1OgKE5iOqB0aGVyZaBpc6Bub6BQT1CgJUNTKS48YnI+Cis8YnI+CistoENGSaBzdXBwb3J0oGZvcqBHREKgdmVyc2lvbqA2LqCgTmVlZGVkoHRvoGVuYWJsZaBuZXdlcqBHREJzPGJyPgoroKB0b6BmaWd1cmWgb3V0oHdoZXJloHRoZXmgYXJloHdoZW6gdXNpbmegLS1nZGItYXR0YWNoPXllcy48YnI+Cis8YnI+CistoEZpeKB0aGlzOjxicj4KK6CgoKCgoG1jX3RyYW5zbGF0ZS5jOjEwOTGgKG1lbWNoZWNrX2luc3RydW1lbnQpOqBBc3NlcnRpb248YnI+CiugoKCgoKBgdV9pbi0mZ3Q7c2l6ZaA9PaA0oHx8oHVfaW4tJmd0O3NpemWgPT2gMTYnoGZhaWxlZC48YnI+Cis8YnI+CistoFJldHVybqBhbqBlcnJvcqByYXRoZXKgdGhhbqBwYW5pY2luZ6B3aGVuoGdpdmVuoGGgYmFkoHNvY2tldGNhbGwuPGJyPgorPGJyPgorLaBGaXigY2hlY2tpbmegb2agc3lzY2FsbKBydF9zaWd0aW1lZHdhaXQoKS48YnI+Cis8YnI+CistoEltcGxlbWVudKBfX05SX2Nsb2NrX2dldHRpbWWgKHN5c2NhbGygMjY1KS6goE5lZWRlZKBvbqBSZWSgSGF0oFNldmVybi48YnI+Cis8YnI+CistoEZpeGVkoGJ1Z6BpbqBvdmVybGFwoGNoZWNroGluoHN0cm5jcHkoKaAtLaBpdKB3YXOgYXNzdW1pbmegdGhloHNyY6B3YXOgJ24nPGJyPgoroKBieXRlc6Bsb25nLKB3aGVuoGl0oGNvdWxkoGJloHNob3J0ZXIsoHdoaWNooGNvdWxkoGNhdXNloGZhbHNlPGJyPgoroKBwb3NpdGl2ZXMuPGJyPgorPGJyPgorLaBTdXBwb3J0oHVzZaBvZqBzZWxlY3QoKaBmb3KgdmVyeaBsYXJnZaBudW1iZXJzoG9moGZpbGWgZGVzY3JpcHRvcnMuPGJyPgorPGJyPgorLaBEb24ndKBmYWlsoHNpbGVudGx5oGlmoHRoZaBleGVjdXRhYmxloGlzoHN0YXRpY2FsbHmgbGlua2VkLKBvcqBpczxicj4KK6Cgc2V0dWlkL3NldGdpZC6gUHJpbnSgYW6gZXJyb3KgbWVzc2FnZaBpbnN0ZWFkLjxicj4KKzxicj4KKy2gU3VwcG9ydKBmb3Kgb2xkoERXQVJGLTGgZm9ybWF0oGxpbmWgbnVtYmVyoGluZm8uPGJyPgorPGJyPgorPGJyPgorPGJyPgorU25hcHNob3SgMjAwMzEwMTKgKDEyoE9jdG9iZXKgMjAwMyk8YnI+Cit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fjxicj4KKzxicj4KK1RocmVloG1vbnRoc6B3b3J0aKBvZqBidWegZml4ZXMsoHJvdWdobHkuoKBNb3N0oHNpZ25pZmljYW50oHNpbmdsZTxicj4KK2NoYW5nZaBpc6BpbXByb3ZlZKBTU0UvU1NFMqBzdXBwb3J0LKBtb3N0bHmgdGhhbmtzoHRvoERpcmugTXVlbGxlci48YnI+Cis8YnI+CisyMDAzMTAxMqBidWlsZHOgb26gUmVkoEhhdKBGZWRvcmGgKCJTZXZlcm4iKaBidXSgZG9lc24ndKByZWFsbHmgd29yazxicj4KKyhjdXJpb3VzbHksoG1vemlsbGGgcnVuc6BPSyygYnV0oGGgbW9kZXN0oCJsc6AtbCKgYm9tYnMpLqCgSaBob3BloHRvPGJyPgorZ2V0oGGgd29ya2luZ6B2ZXJzaW9uoG91dKBzb29uLqCgSXSgbWF5oG9yoG1heaBub3Sgd29ya6Bva6BvbqB0aGU8YnI+Citmb3J0aGNvbWluZ6BTdVNFoDk7oEmgaGVhcqBwb3NpdGl2ZaBub2lzZXOgYWJvdXSgaXSgYnV0oGhhdmVuJ3SgYmVlbjxicj4KK2FibGWgdG+gdmVyaWZ5oHRoaXOgbXlzZWxmoChub3SgdW50aWygSaBnZXSgaG9sZKBvZqBhoGNvcHmgb2agOSkuPGJyPgorPGJyPgorQaBkZXRhaWxlZKBsaXN0oG9moGNoYW5nZXMsoGluoG5voHBhcnRpY3VsYXKgb3JkZXI6PGJyPgorPGJyPgorLaBEZXNjcmliZaAtLWdlbi1zdXBwcmVzc2lvbnOgaW6gdGhloEZBUS48YnI+Cis8YnI+CistoFN5c2NhbGygX19OUl93YWl0cGlkoHN1cHBvcnRlZC48YnI+Cis8YnI+CistoE1pbm9yoE1NWKBidWegZml4Ljxicj4KKzxicj4KKy2gLXagcHJpbnRzoHByb2dyYW0nc6Bhcmd2W12gYXSgc3RhcnR1cC48YnI+Cis8YnI+CistoE1vcmWgZ2xpYmMtMi4zoHN1cHByZXNzaW9ucy48YnI+Cis8YnI+CistoFN1cHByZXNzaW9uc6Bmb3Kgc3RhY2ugdW5kZXJydW6gYnVnKHMpoGluoHRoZaBjKyugc3VwcG9ydKBsaWJyYXJ5PGJyPgoroKBkaXN0cmlidXRlZKB3aXRooEludGVsoEljY6A3LjAuPGJyPgorPGJyPgorLaBGaXigcHJvYmxlbXOgcmVhZGluZ6AvcHJvYy9zZWxmL21hcHMuPGJyPgorPGJyPgorLaBGaXigYaBjb3VwbGWgb2agbWVzc2FnZXOgdGhhdKBzaG91bGSgaGF2ZaBiZWVuoHN1cHByZXNzZWSgYnmgLXEsoDxicj4KK6CgYnV0oHdlcmVuJ3QuPGJyPgorPGJyPgorLaBNYWtloEFkZHJjaGVja6B1bmRlcnN0YW5koCJPdmVybGFwIqBzdXBwcmVzc2lvbnMuPGJyPgorPGJyPgorLaBBdKBzdGFydHVwLKBjaGVja6BpZqBwcm9ncmFtoGlzoHN0YXRpY2FsbHmgbGlua2VkoGFuZKBiYWlsoG91dKBpZqBzby48YnI+Cis8YnI+CistoENhY2hlZ3JpbmQ6oEF1dG8tZGV0ZWN0oEludGVsoFBlbnRpdW0tTSygYWxzb6BWSUGgTmVoZW1pYWg8YnI+Cis8YnI+CistoE1lbWNoZWNrL2FkZHJjaGVjazqgbWlub3Kgc3BlZWSgb3B0aW1pc2F0aW9uczxicj4KKzxicj4KKy2gSGFuZGxloHN5c2NhbGygX19OUl9icmugbW9yZaBjb3JyZWN0bHmgdGhhbqBiZWZvcmUuPGJyPgorPGJyPgorLaBGaXhlZKBpbmNvcnJlY3SgYWxsb2NhdGUvZnJlZaBtaXNtYXRjaKBlcnJvcnOgd2hlbqB1c2luZzxicj4KK6Cgb3BlcmF0b3KgbmV3KHVuc2lnbmVkLKBzdGQ6Om5vdGhyb3dfdKBjb25zdCZhbXA7KTxicj4KK6Cgb3BlcmF0b3KgbmV3W10odW5zaWduZWQsoHN0ZDo6bm90aHJvd190oGNvbnN0JmFtcDspPGJyPgorPGJyPgorLaBTdXBwb3J0oFBPU0lYoHB0aHJlYWSgc3BpbmxvY2tzLjxicj4KKzxicj4KKy2gRml4dXBzoGZvcqBjbGVhbqBjb21waWxhdGlvbqB3aXRooGdjYy0zLjMuMS48YnI+Cis8YnI+CistoEltcGxlbWVudGVkoG1vcmWgb3Bjb2RlczqgPGJyPgoroKCgoC2gcHVzaKAlZXM8YnI+CiugoKCgLaBwdXNooCVkczxicj4KK6CgoKAtoHBvcKAlZXM8YnI+CiugoKCgLaBwb3CgJWRzPGJyPgoroKCgoC2gbW92bnRxPGJyPgoroKCgoC2gc2ZlbmNlPGJyPgoroKCgoC2gcHNodWZ3PGJyPgoroKCgoC2gcGF2Z2I8YnI+CiugoKCgLaB1Y29taXNzPGJyPgoroKCgoC2gZW50ZXI8YnI+CiugoKCgLaBtb3agaW1tMzIsoCVlc3A8YnI+CiugoKCgLaBhbGygImluIqBhbmSgIm91dCKgb3Bjb2Rlczxicj4KK6CgoKAtoGluYy9kZWOgJWVzcDxicj4KK6CgoKAtoEGgd2hvbGWgYnVuY2igb2agU1NFL1NTRTKgaW5zdHJ1Y3Rpb25zPGJyPgorPGJyPgorLaBNZW1jaGVjazqgZG9uJ3SgYm9tYqBvbqBTU0UvU1NFMqBjb2RlLjxicj4KKzxicj4KKzxicj4KK1NuYXBzaG90oDIwMDMwNzI1oCgyNaBKdWx5oDIwMDMpPGJyPgorfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn48YnI+Cis8YnI+CitGaXhlc6Bzb21loG1pbm9yoHByb2JsZW1zoGluoDIwMDMwNzE2Ljxicj4KKzxicj4KKy2gRml4oGJ1Z3OgaW6gb3ZlcmxhcKBjaGVja2luZ6Bmb3Kgc3RyY3B5L21lbWNweaBldGMuPGJyPgorPGJyPgorLaBEb6BvdmVybGFwoGNoZWNraW5noHdpdGigQWRkcmNoZWNroGFzoHdlbGygYXOgTWVtY2hlY2suPGJyPgorPGJyPgorLaBGaXigdGhpczo8YnI+CiugoKCgoKBNZW1jaGVjazqgdGhloGBpbXBvc3NpYmxlJ6BoYXBwZW5lZDo8YnI+CiugoKCgoKBnZXRfZXJyb3JfbmFtZTqgdW5leHBlY3RlZKB0eXBlPGJyPgorPGJyPgorLaBJbnN0YWxsoGhlYWRlcnOgbmVlZGVkoHRvoGNvbXBpbGWgbmV3oHNraW5zLjxicj4KKzxicj4KKy2gUmVtb3ZloGxlYWRpbmegc3BhY2VzoGFuZKBjb2xvbqBpbqB0aGWgTERfTElCUkFSWV9QQVRIoC+gTERfUFJFTE9BRDxicj4KK6CgcGFzc2VkoHRvoG5vbi10cmFjZWSgY2hpbGRyZW4uPGJyPgorPGJyPgorLaBGaXigZmlsZaBkZXNjcmlwdG9yoGxlYWugaW6gdmFsZ3JpbmQtbGlzdGVuZXIuPGJyPgorPGJyPgorLaBGaXigbG9uZ3N0YW5kaW5noGJ1Z6BpbqB3aGljaKB0aGWgYWxsb2NhdGlvbqBwb2ludKBvZqBhoDxicj4KK6CgYmxvY2ugcmVzaXplZKBieaByZWFsbG9joHdhc6Bub3SgY29ycmVjdGx5oHNldC6goFRoaXOgbWF5PGJyPgoroKBoYXZloGNhdXNlZKBjb25mdXNpbmegZXJyb3KgbWVzc2FnZXMuPGJyPgorPGJyPgorPGJyPgorU25hcHNob3SgMjAwMzA3MTagKDE2oEp1bHmgMjAwMyk8YnI+Cit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fjxicj4KKzxicj4KKzIwMDMwNzE2oGlzoGGgc25hcHNob3Sgb2agb3VyoGN1cnJlbnSgQ1ZToGhlYWSgKGRldmVsb3BtZW50KaBicmFuY2guPGJyPgorVGhpc6Bpc6B0aGWgYnJhbmNooHdoaWNooHdpbGygYmVjb21loHZhbGdyaW5kLTIuMC6goEl0oGNvbnRhaW5zPGJyPgorc2lnbmlmaWNhbnSgZW5oYW5jZW1lbnRzoG92ZXKgdGhloDEuOS5YoGJyYW5jaC48YnI+Cis8YnI+CitEZXNwaXRloHRoaXOgYmVpbmegYaBzbmFwc2hvdKBvZqB0aGWgQ1ZToGhlYWQsoGl0oGlzoGJlbGlldmVkoHRvoGJlPGJyPgorcXVpdGWgc3RhYmxloC0toGF0oGxlYXN0oGFzoHN0YWJsZaBhc6AxLjkuNqBvcqAxLjAuNCygaWagbm90oG1vcmWgc288YnI+CistLaBhbmSgdGhlcmVmb3JloHN1aXRhYmxloGZvcqB3aWRlc3ByZWFkoHVzZS6goFBsZWFzZaBsZXSgdXOga25vd6Bhc2FwPGJyPgoraWagaXSgY2F1c2VzoHByb2JsZW1zoGZvcqB5b3UuPGJyPgorPGJyPgorVHdvoHJlYXNvbnOgZm9yoHJlbGVhc2luZ6BhoHNuYXBzaG90oG5vd6BhcmU6PGJyPgorPGJyPgorLaBJdCdzoGJlZW6gYaB3aGlsZaBzaW5jZaAxLjkuNiygYW5koHRoaXOgc25hcHNob3SgZml4ZXM8YnI+CiugoHZhcmlvdXOgcHJvYmxlbXOgdGhhdKAxLjkuNqBoYXOgd2l0aKB0aHJlYWRlZKBwcm9ncmFtc6A8YnI+CiugoG9uoGdsaWJjLTIuMy5YoGJhc2VkoHN5c3RlbXMuPGJyPgorPGJyPgorLaBTb6Bhc6B0b6BtYWtloGF2YWlsYWJsZaBpbXByb3ZlbWVudHOgaW6gdGhloDIuMKBsaW5lLjxicj4KKzxicj4KK01ham9yoGNoYW5nZXOgaW6gMjAwMzA3MTYsoGFzoGNvbXBhcmVkoHRvoDEuOS42Ojxicj4KKzxicj4KKy2gTW9yZaBmaXhlc6B0b6B0aHJlYWRpbmegc3VwcG9ydKBvbqBnbGliYy0yLjMuMaBhbmSgMi4zLjItYmFzZWQ8YnI+CiugoHN5c3RlbXOgKFN1U0WgOC4yLKBSZWSgSGF0oDkpLqCgSWageW91oGhhdmWgaGFkoHByb2JsZW1zPGJyPgoroKB3aXRooGluY29uc2lzdGVudC9pbGxvZ2ljYWygYmVoYXZpb3VyoG9moGVycm5vLKBoX2Vycm5voG9yoHRoZaBETlM8YnI+CiugoHJlc29sdmVyoGZ1bmN0aW9uc6BpbqB0aHJlYWRlZKBwcm9ncmFtcyygMjAwMzA3MTagc2hvdWxkoGltcHJvdmU8YnI+CiugoG1hdHRlcnMuoKBUaGlzoHNuYXBzaG90oHNlZW1zoHN0YWJsZaBlbm91Z2igdG+gcnVuoE9wZW5PZmZpY2Uub3JnPGJyPgoroKAxLjFyY6BvbqBSZWSgSGF0oDcuMyygU3VTRaA4LjKgYW5koFJlZKBIYXSgOSygYW5koHRoYXQnc6BhoGJpZzxicj4KK6CgdGhyZWFkZWSgYXBwoGlmoGV2ZXKgSaBzYXegb25lLjxicj4KKzxicj4KKy2gQXV0b21hdGljoGdlbmVyYXRpb26gb2agc3VwcHJlc3Npb26gcmVjb3JkczugeW91oG5voGxvbmdlcjxicj4KK6CgbmVlZKB0b6B3cml0ZaB0aGVtoGJ5oGhhbmQuoKBVc2WgLS1nZW4tc3VwcHJlc3Npb25zPXllcy48YnI+Cis8YnI+CistoHN0cmNweS9tZW1jcHkvZXRjoGNoZWNroHRoZWlyoGFyZ3VtZW50c6Bmb3Kgb3ZlcmxhcHMsoHdoZW48YnI+CiugoHJ1bm5pbmegd2l0aKB0aGWgTWVtY2hlY2ugb3KgQWRkcmNoZWNroHNraW5zLjxicj4KKzxicj4KKy2gbWFsbG9jX3VzYWJsZV9zaXplKCmgaXOgbm93oHN1cHBvcnRlZC48YnI+Cis8YnI+CistoG5ld6BjbGllbnSgcmVxdWVzdHM6PGJyPgoroKCgoC2gVkFMR1JJTkRfQ09VTlRfRVJST1JTLKBWQUxHUklORF9DT1VOVF9MRUFLUzqgPGJyPgoroKCgoKCgdXNlZnVsoHdpdGigcmVncmVzc2lvbqB0ZXN0aW5nPGJyPgoroKCgoC2gVkFMR1JJTkRfTk9OX1NJTURfQ0FMTFswMTIzXTqgZm9yoHJ1bm5pbmegYXJiaXRyYXJ5oGZ1bmN0aW9uc6A8YnI+CiugoKCgoKBvbqByZWFsoENQVaAodXNloHdpdGigY2F1dGlvbiEpPGJyPgorPGJyPgorLaBUaGWgR0RCoGF0dGFjaKBtZWNoYW5pc22gaXOgbW9yZaBmbGV4aWJsZS6goEFsbG93oHRoZaBHREKgdG88YnI+CiugoGJloHJ1bqB0b6BiZaBzcGVjaWZpZWSgYnmgLS1nZGItcGF0aD0vcGF0aC90by9nZGIsoGFuZKBzcGVjaWZ5PGJyPgoroKB3aGljaKBmaWxloGRlc2NyaXB0b3KgVqB3aWxsoHJlYWSgaXRzoGlucHV0oGZyb22gd2l0aDxicj4KK6CgLS1pbnB1dC1mZD0mbHQ7bnVtYmVyJmd0Oy48YnI+Cis8YnI+CistoENhY2hlZ3JpbmSgZ2l2ZXOgbW9yZaBhY2N1cmF0ZaByZXN1bHRzoCh3YXNuJ3SgdHJhY2tpbmegaW5zdHJ1Y3Rpb25zoGluPGJyPgoroKBtYWxsb2MoKaBhbmSgZnJpZW5kc6BwcmV2aW91c2x5LKBpc6Bub3cpLjxicj4KKzxicj4KKy2gQ29tcGxldGWgc3VwcG9ydKBmb3KgdGhloE1NWKBpbnN0cnVjdGlvbqBzZXQuPGJyPgorPGJyPgorLaBQYXJ0aWFsoHN1cHBvcnSgZm9yoHRoZaBTU0WgYW5koFNTRTKgaW5zdHJ1Y3Rpb26gc2V0cy6goFdvcmugZm9yoHRoaXM8YnI+CiugoGlzoG9uZ29pbmcuoKBBYm91dKBoYWxmoHRoZaBTU0UvU1NFMqBpbnN0cnVjdGlvbnOgYXJloGRvbmUsoHNvPGJyPgoroKBzb21loFNTRaBiYXNlZKBwcm9ncmFtc6BtYXmgd29yay6goEN1cnJlbnRseaB5b3WgbmVlZKB0b6BzcGVjaWZ5PGJyPgoroKAtLXNraW49YWRkcmNoZWNrLqCgQmFzaWNhbGx5oG5vdKBzdWl0YWJsZaBmb3KgcmVhbKB1c2WgeWV0Ljxicj4KKzxicj4KKy2gU2lnbmlmaWNhbnSgc3BlZWR1cHOgKDEwJS0yMCUpoGZvcqBzdGFuZGFyZKBtZW1vcnmgY2hlY2tpbmcuPGJyPgorPGJyPgorLaBGaXigYXNzZXJ0aW9uoGZhaWx1cmWgaW6gcHRocmVhZF9vbmNlKCkuPGJyPgorPGJyPgorLaBGaXigdGhpczo8YnI+CiugoKCgdmFsZ3JpbmQ6oHZnX2ludGVyY2VwdC5jOjU5OKAodmdBbGxSb2Fkc0xlYWRUb1JvbWVfc2VsZWN0KTqgPGJyPgoroKCgoKCgoKCgoKCgoKBBc3NlcnRpb26gYG1zX2VuZKAmZ3Q7PaBtc19ub3cnoGZhaWxlZC48YnI+Cis8YnI+CistoEltcGxlbWVudKBwdGhyZWFkX211dGV4YXR0cl9zZXRwc2hhcmVkLjxicj4KKzxicj4KKy2gVW5kZXJzdGFuZKBQZW50aXVtoDSgYnJhbmNooGhpbnRzLqCgQWxzb6BpbXBsZW1lbnRlZKBhoGNvdXBsZaBtb3JlPGJyPgoroKBvYnNjdXJloHg4NqBpbnN0cnVjdGlvbnMuPGJyPgorPGJyPgorLaBMb3RzoG9moG90aGVyoG1pbm9yoGJ1Z6BmaXhlcy48YnI+Cis8YnI+CistoFdloGhhdmWgYaBkZWNlbnSgcmVncmVzc2lvbqB0ZXN0oHN5c3RlbSygZm9yoHRoZaBmaXJzdKB0aW1lLjxicj4KK6CgVGhpc6Bkb2Vzbid0oGhlbHCgeW91oGRpcmVjdGx5LKBidXSgaXSgZG9lc6BtYWtloGl0oGGgbG90oGVhc2llcjxicj4KK6CgZm9yoHVzoHRvoHRyYWNroHRoZaBxdWFsaXR5oG9moHRoZaBzeXN0ZW0soGVzcGVjaWFsbHmgYWNyb3NzPGJyPgoroKBtdWx0aXBsZaBsaW51eKBkaXN0cmlidXRpb25zLqCgPGJyPgorPGJyPgoroKBZb3WgY2FuoHJ1bqB0aGWgcmVncmVzc2lvbqB0ZXN0c6B3aXRooCdtYWtloHJlZ3Rlc3QnoGFmdGVyoCdtYWtlPGJyPgoroKBpbnN0YWxsJ6Bjb21wbGV0ZXMuoKBPbqBTdVNFoDguMqBhbmSgUmVkoEhhdKA5oEmgZ2V0oHRoaXM6PGJyPgoroDxicj4KK6CgoKCgPT2gODSgdGVzdHMsoDCgc3RkZXJyoGZhaWx1cmVzLKAwoHN0ZG91dKBmYWlsdXJlc6A9PTxicj4KKzxicj4KK6CgT26gUmVkoEhhdKA4LKBJoGdldKB0aGlzOjxicj4KKzxicj4KK6CgoKCgPT2gODSgdGVzdHMsoDKgc3RkZXJyoGZhaWx1cmVzLKAxoHN0ZG91dKBmYWlsdXJloD09PGJyPgoroKCgoKBjb3JlY2hlY2svdGVzdHMvcmVzX3NlYXJjaKCgoKCgoKCgoKCgoKCgoChzdGRvdXQpPGJyPgoroKCgoKBtZW1jaGVjay90ZXN0cy9zaWdhbHRzdGFja6CgoKCgoKCgoKCgoKCgoChzdGRlcnIpPGJyPgorPGJyPgoroKBzaWdhbHRzdGFja6Bpc6Bwcm9iYWJseaBoYXJtbGVzcy6goHJlc19zZWFyY2igZG9lc24ndKB3b3JrPGJyPgoroKBvbqBSoEigOKBldmVuoHJ1bm5pbmegbmF0aXZlbHksoHNvoEknbaBub3SgdG9voHdvcnJpZWQuoKCgPGJyPgorPGJyPgoroKBPbqBSZWSgSGF0oDcuMyygYaBnbGliYy0yLjIuNaBzeXN0ZW0soEmgZ2V0oHRoZXNloGhhcm1sZXNzoGZhaWx1cmVzOjxicj4KKzxicj4KK6CgoKCgPT2gODSgdGVzdHMsoDKgc3RkZXJyoGZhaWx1cmVzLKAxoHN0ZG91dKBmYWlsdXJloD09PGJyPgoroKCgoKBjb3JlY2hlY2svdGVzdHMvcHRoX2F0Zm9yazGgoKCgoKCgoKCgoKCgoChzdGRvdXQpPGJyPgoroKCgoKBjb3JlY2hlY2svdGVzdHMvcHRoX2F0Zm9yazGgoKCgoKCgoKCgoKCgoChzdGRlcnIpPGJyPgoroKCgoKBtZW1jaGVjay90ZXN0cy9zaWdhbHRzdGFja6CgoKCgoKCgoKCgoKCgoChzdGRlcnIpPGJyPgorPGJyPgoroKBZb3WgbmVlZKB0b6BydW6gb26gYaBQSUmgc3lzdGVtLKBhdKBsZWFzdCygc2luY2Wgc29tZaB0ZXN0czxicj4KK6CgY29udGFpbqBQNi1zcGVjaWZpY6BpbnN0cnVjdGlvbnMsoGFuZKB0aGWgdGVzdKBtYWNoaW5loG5lZWRzPGJyPgoroKBhY2Nlc3OgdG+gdGhloGludGVybmV0oHNvoHRoYXSgY29yZWNoZWNrL3Rlc3RzL3Jlc19zZWFyY2g8YnI+CiugoChhoHRlc3SgdGhhdKB0aGWgRE5ToHJlc29sdmVyoHdvcmtzKaBjYW6gZnVuY3Rpb24uPGJyPgorPGJyPgorQXOgZXZlciygdGhhbmtzoGZvcqB0aGWgdmFzdKBhbW91bnSgb2agZmVlZGJhY2ugOimgYW5koGJ1Z6ByZXBvcnRzoDooPGJyPgorV2WgbWF5oG5vdKBhbnN3ZXKgYWxsoG1lc3NhZ2VzLKBidXSgd2WgZG+gYXSgbGVhc3SgbG9va6BhdKBhbGygb2Y8YnI+Cit0aGVtLKBhbmSgdGVuZKB0b6BmaXigdGhloG1vc3SgZnJlcXVlbnRseaByZXBvcnRlZKBidWdzLjxicj4KKzxicj4KKzxicj4KKzxicj4KK1ZlcnNpb26gMS45LjagKDegTWF5oDIwMDOgb3KgdGhlcmVhYm91dHMpPGJyPgorfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn48YnI+Cis8YnI+CitNYWpvcqBjaGFuZ2VzoGluoDEuOS42Ojxicj4KKzxicj4KKy2gSW1wcm92ZWSgdGhyZWFkaW5noHN1cHBvcnSgZm9yoGdsaWJjoCZndDs9oDIuMy4yoChTdVNFoDguMiw8YnI+CiugoFJlZEhhdKA5LKB0b6BuYW1loGJ1dKB0d2+gLi4uKaCgSXSgdHVybmVkoG91dKB0aGF0oDEuOS41PGJyPgoroKBoYWSgcHJvYmxlbXOgd2l0aKB0aHJlYWRpbmegc3VwcG9ydKBvbqBnbGliY6AmZ3Q7PaAyLjMuMiw8YnI+CiugoHVzdWFsbHmgbWFuaWZlc3RlZKBieaB0aHJlYWRlZKBwcm9ncmFtc6BkZWFkbG9ja2luZ6BpbqBzeXN0ZW2gY2FsbHMsPGJyPgoroKBvcqBydW5uaW5noHVuYmVsaWV2YWJseaBzbG93bHkuoKBIb3BlZnVsbHmgdGhlc2WgYXJloGZpeGVkoG5vdy6goDEuOS42PGJyPgoroKBpc6B0aGWgZmlyc3SgdmFsZ3JpbmSgd2hpY2igZ2l2ZXOgcmVhc29uYWJsZaBzdXBwb3J0oGZvcjxicj4KK6CgZ2xpYmMtMi4zLjIuoKBBbHNvoGZpeGVkoGGgMi4zLjKgcHJvYmxlbaB3aXRooHB0aHJlYWRfYXRmb3JrKCkuPGJyPgorPGJyPgorLaBNYWpvcmx5oGV4cGFuZGVkoEZBUS50eHQuoKBXZSd2ZaBhZGRlZKB3b3JrYXJvdW5kc6Bmb3KgYWxsPGJyPgoroKBjb21tb26gcHJvYmxlbXOgZm9yoHdoaWNooGGgd29ya2Fyb3VuZKBpc6Brbm93bi48YnI+Cis8YnI+CitNaW5vcqBjaGFuZ2VzoGluoDEuOS42Ojxicj4KKzxicj4KKy2gRml4oGlkZW50aWZpY2F0aW9uoG9moHRoZaBtYWluoHRocmVhZCdzoHN0YWNrLqCgSW5jb3JyZWN0PGJyPgoroKBpZGVudGlmaWNhdGlvbqBvZqBpdKB3YXOgY2F1c2luZ6Bzb21loG9uLXN0YWNroGFkZHJlc3Nlc6B0b6Bub3SgZ2V0PGJyPgoroKBpZGVudGlmaWVkoGFzoHN1Y2guoKBUaGlzoG9ubHmgYWZmZWN0ZWSgdGhloHVzZWZ1bG5lc3Ogb2agc29tZaBlcnJvcjxicj4KK6CgbWVzc2FnZXM7oHRoZaBjb3JyZWN0bmVzc6BvZqB0aGWgY2hlY2tzoG1hZGWgaXOgdW5jaGFuZ2VkLjxicj4KKzxicj4KKy2gU3VwcG9ydKBmb3Kga2VybmVsc6AmZ3Q7PaAyLjUuNjguPGJyPgorPGJyPgorLaBEdW1teaBpbXBsZW1lbnRhdGlvbnOgb2agX19saWJjX2N1cnJlbnRfc2lncnRtaW4soDxicj4KK6CgX19saWJjX2N1cnJlbnRfc2lncnRtYXigYW5koF9fbGliY19hbGxvY2F0ZV9ydHNpZyygaG9wZWZ1bGx5PGJyPgoroKBnb29koGVub3VnaKB0b6BrZWVwoGFsaXZloHByb2dyYW1zoHdoaWNooHByZXZpb3VzbHmgZGllZKBmb3KgbGFja6BvZjxicj4KK6CgdGhlbS48YnI+Cis8YnI+CistoEZpeKBidWegaW6gdGhloFZBTEdSSU5EX0RJU0NBUkRfVFJBTlNMQVRJT05ToGNsaWVudKByZXF1ZXN0Ljxicj4KKzxicj4KKy2gRml4oGJ1Z6BpbqB0aGWgRFdBUkYyoGRlYnVnoGxpbmWgaW5mb6Bsb2FkZXIsoHdoZW6gaW5zdHJ1Y3Rpb25zoDxicj4KK6CgZm9sbG93aW5noGVhY2igb3RoZXKgaGF2ZaBzb3VyY2WgbGluZXOgZmFyoGZyb22gZWFjaKBvdGhlcqA8YnI+CiugoChlLmcuoHdpdGigaW5saW5lZKBmdW5jdGlvbnMpLjxicj4KKzxicj4KKy2gRGVidWegaW5mb6ByZWFkaW5nOqByZWFkoHN5bWJvbHOgZnJvbaBib3RooCJzeW10YWIioGFuZKAiZHluc3ltIjxicj4KK6Cgc2VjdGlvbnMsoHJhdGhlcqB0aGFuoG1lcmVseaBmcm9toHRoZaBvbmWgdGhhdKBjb21lc6BsYXN0oGluoHRoZTxicj4KK6CgZmlsZS48YnI+Cis8YnI+CistoE5ld6BzeXNjYWxsoHN1cHBvcnQ6oHByY3RsKCksoGNyZWF0KCksoGxvb2t1cF9kY29va2llKCkuPGJyPgorPGJyPgorLaBXaGVuoGNoZWNraW5noGNhbGxzoHRvoGFjY2VwdCgpLKByZWN2ZnJvbSgpLKBnZXRzb2NrZXRvcHQoKSw8YnI+CiugoGRvbid0oGNvbXBsYWluoGlmoGJ1ZmZlcqB2YWx1ZXOgYXJloE5VTEwuPGJyPgorPGJyPgorLaBUcnmgYW5koGF2b2lkoGFzc2VydGlvbqBmYWlsdXJlc6Bpbjxicj4KK6CgbWFzaF9MRF9QUkVMT0FEX2FuZF9MRF9MSUJSQVJZX1BBVEguPGJyPgorPGJyPgorLaBNaW5vcqBidWegZml4ZXOgaW6gY2dfYW5ub3RhdGUuPGJyPgorPGJyPgorPGJyPgorPGJyPgorVmVyc2lvbqAxLjkuNaAoN6BBcHJpbKAyMDAzKTxicj4KK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn48YnI+Cis8YnI+CitJdKBvY2N1cnOgdG+gbWWgdGhhdKBpdKB3b3VsZKBiZaBoZWxwZnVsoGZvcqB2YWxncmluZKB1c2Vyc6B0b6ByZWNvcmQ8YnI+CitpbqB0aGWgc291cmNloGRpc3RyaWJ1dGlvbqB0aGWgY2hhbmdlc6BpbqBlYWNooHJlbGVhc2UuoKBTb6BJoG5vdzxicj4KK2F0dGVtcHSgdG+gbWVuZKBteaBlcnJhbnSgd2F5c6A6LSmgoENoYW5nZXOgaW6gdGhpc6BhbmSgZnV0dXJloHJlbGVhc2VzPGJyPgord2lsbKBiZaBkb2N1bWVudGVkoGluoHRoZaBORVdToGZpbGWgaW6gdGhloHNvdXJjZaBkaXN0cmlidXRpb24uPGJyPgorPGJyPgorTWFqb3KgY2hhbmdlc6BpbqAxLjkuNTo8YnI+Cis8YnI+CistoChDcml0aWNhbKBidWegZml4KTqgRml4oGGgYnVnoGluoHRoZaBGUFWgc2ltdWxhdGlvbi6goFRoaXOgd2FzPGJyPgoroKBjYXVzaW5noHNvbWWgZmxvYXRpbmegcG9pbnSgY29uZGl0aW9uYWygdGVzdHOgbm90oHRvoHdvcmugcmlnaHQuPGJyPgoroKBTZXZlcmFsoHBlb3BsZaByZXBvcnRlZKB0aGlzLqCgSWageW91oGhhZKBmbG9hdGluZ6Bwb2ludKBjb2RloHdoaWNoPGJyPgoroKBkaWRuJ3Sgd29ya6ByaWdodKBvbqAxLjkuMaB0b6AxLjkuNCygaXQnc6B3b3J0aKB0cnlpbmegMS45LjUuPGJyPgorPGJyPgorLaBQYXJ0aWFsoHN1cHBvcnSgZm9yoFJlZKBIYXSgOS6goFJIOaB1c2VzoHRoZaBuZXegTmF0aXZloFBvc2l4oDxicj4KK6CgVGhyZWFkc6BMaWJyYXJ5oChOUFRMKSygaW5zdGVhZKBvZqB0aGWgb2xkZXKgTGludXhUaHJlYWRzLqCgPGJyPgoroKBUaGlzoHBvdGVudGlhbGx5oGNhdXNlc6Bwcm9ibGVtc6B3aXRooFagd2hpY2igd2lsbKB0YWtloHNvbWU8YnI+CiugoHRpbWWgdG+gY29ycmVjdC6goEluoHRoZaBtZWFudGltZaB3ZaBoYXZloHBhcnRpYWxseaB3b3JrZWSgYXJvdW5kPGJyPgoroKB0aGlzLKBhbmSgc2+gMS45LjWgd29ya3Ogb26gUkg5LqCgVGhyZWFkZWSgcHJvZ3JhbXOgc3RpbGygd29yayw8YnI+CiugoGJ1dKB0aGV5oG1heaBkZWFkbG9jayygYmVjYXVzZaBzb21loHN5c3RlbaBjYWxsc6AoYWNjZXB0LKByZWFkLDxicj4KK6Cgd3JpdGUsoGV0Yymgd2hpY2igc2hvdWxkoGJloG5vbmJsb2NraW5nLKBpbqBmYWN0oGRvoGJsb2NrLqCgVGhpczxicj4KK6CgaXOgYaBrbm93bqBidWegd2hpY2igd2WgYXJloGxvb2tpbmegaW50by48YnI+Cis8YnI+CiugoElmoHlvdaBjYW4soHlvdXKgYmVzdKBiZXSgKHVuZm9ydHVuYXRlbHkpoGlzoHRvoGF2b2lkoHVzaW5noDxicj4KK6CgMS45LjWgb26gYaBSZWSgSGF0oDmgc3lzdGVtLKBvcqBvbqBhbnmgTlBUTC1iYXNlZKBkaXN0cmlidXRpb24uPGJyPgoroKBJZqB5b3VyoGdsaWJjoGlzoDIuMy4xoG9yoGVhcmxpZXIsoHlvdSdyZaBhbG1vc3SgY2VydGFpbmx5oE9LLjxicj4KKzxicj4KK01pbm9yoGNoYW5nZXOgaW6gMS45LjU6PGJyPgorPGJyPgorLaBBZGRlZKBzb21loCNlcnJvcnOgdG+gdmFsZ3JpbmQuaKB0b6BlbnN1cmWgcGVvcGxloGRvbid0oGluY2x1ZGU8YnI+CiugoGl0oGFjY2lkZW50YWxseaBpbqB0aGVpcqBzb3VyY2VzLqCgVGhpc6Bpc6BhoGNoYW5nZaBmcm9toDEuMC5YPGJyPgoroKB3aGljaKB3YXOgbmV2ZXKgcHJvcGVybHmgZG9jdW1lbnRlZC6goFRoZaByaWdodKB0aGluZ6B0b6BpbmNsdWRlPGJyPgoroKBpc6Bub3egbWVtY2hlY2suaC6goFNvbWWgcGVvcGxloHJlcG9ydGVkoHByb2JsZW1zoGFuZKBzdHJhbmdlPGJyPgoroKBiZWhhdmlvdXKgd2hlbqAoaW5jb3JyZWN0bHkpoGluY2x1ZGluZ6B2YWxncmluZC5ooGluoGNvZGWgd2l0aKA8YnI+CiugoDEuOS4xoC0toDEuOS40LqCgVGhpc6Bpc6Bub6Bsb25nZXKgcG9zc2libGUuPGJyPgorPGJyPgorLaBBZGSgc29tZaBfX2V4dGVuc2lvbl9foGJpdHOgYW5koHBpZWNlc6Bzb6B0aGF0oGdjY6Bjb25maWd1cmVkPGJyPgoroKBmb3KgdmFsZ3JpbmQtY2hlY2tpbmegY29tcGlsZXOgZXZlbqB3aXRooC1XZXJyb3IuoKBJZqB5b3U8YnI+CiugoGRvbid0oHVuZGVyc3RhbmSgdGhpcyygaWdub3JloGl0LqCgT2agaW50ZXJlc3SgdG+gZ2NjoGRldmVsb3BlcnM8YnI+CiugoG9ubHkuPGJyPgorPGJyPgorLaBSZW1vdmVkoGGgcG9pbnRsZXNzoGNoZWNroHdoaWNooGNhdXNlZKBwcm9ibGVtc6BpbnRlcndvcmtpbmegPGJyPgoroKB3aXRooENsZWFyY2FzZS6goFagd291bGSgY29tcGxhaW6gYWJvdXSgc2hhcmVkoG9iamVjdHOgd2hvc2U8YnI+CiugoG5hbWVzoGRpZKBub3SgZW5koCIuc28iLKBhbmSgcmVmdXNloHRvoHJ1bi6goFRoaXOgaXOgbm93oGZpeGVkLjxicj4KK6CgSW6gZmFjdKBpdKB3YXOgZml4ZWSgaW6gMS45LjSgYnV0oG5vdKBkb2N1bWVudGVkLjxicj4KKzxicj4KKy2gRml4ZWSgYaBidWegY2F1c2luZ6BhbqBhc3NlcnRpb26gZmFpbHVyZaBvZqAid2FpdGVyc6A9PaAxIjxicj4KK6Cgc29tZXdoZXJloGluoHZnX3NjaGVkdWxlci5jLKB3aGVuoHJ1bm5pbmegbGFyZ2WgdGhyZWFkZWSgYXBwcyw8YnI+CiugoG5vdGFibHmgTXlTUUwuPGJyPgorPGJyPgorLaBBZGSgc3VwcG9ydKBmb3KgdGhloG11bmxvY2ugc3lzdGVtoGNhbGygKDEyNCkuPGJyPgorPGJyPgorU29tZaBjb21tZW50c6BhYm91dKBmdXR1cmWgcmVsZWFzZXM6PGJyPgorPGJyPgorMS45LjWgaXMsoHdloGhvcGUsoHRoZaBtb3N0oHN0YWJsZaBWYWxncmluZKBzb6BmYXIuoKBJdKBwcmV0dHmgbXVjaDxicj4KK3N1cGVyc2VkZXOgdGhloDEuMC5YoGJyYW5jaC6goElmoHlvdaBhcmWgYaB2YWxncmluZKBwYWNrYWdlciygcGxlYXNlPGJyPgorY29uc2lkZXKgbWFraW5noDEuOS41oGF2YWlsYWJsZaB0b6B5b3VyoHVzZXJzLqCgWW91oGNhbqByZWdhcmSgdGhlPGJyPgorMS4wLligYnJhbmNooGFzoG9ic29sZXRlOqAxLjkuNaBpc6BzdGFibGWgYW5koHZhc3RseaBzdXBlcmlvci6goFRoZXJlPGJyPgorYXJloG5voHBsYW5zoGF0oGFsbKBmb3KgZnVydGhlcqByZWxlYXNlc6BvZqB0aGWgMS4wLligYnJhbmNoLjxicj4KKzxicj4KK0lmoHlvdaB3YW50oGGgbGVhZGluZy1lZGdloHZhbGdyaW5kLKBjb25zaWRlcqBidWlsZGluZ6B0aGWgY3ZzoGhlYWQ8YnI+CisoZnJvbaBTb3VyY2VGb3JnZSksoG9yoGdldHRpbmegYaBzbmFwc2hvdKBvZqBpdC6goEN1cnJlbnSgY29vbKBzdHVmZjxicj4KK2dvaW5noGluoGluY2x1ZGVzoE1NWKBzdXBwb3J0oChkb25lKTugU1NFL1NTRTKgc3VwcG9ydKAoaW6gcHJvZ3Jlc3MpLDxicj4KK2Ggc2lnbmlmaWNhbnSgKDEwLTIwJSmgcGVyZm9ybWFuY2WgaW1wcm92ZW1lbnSgKGRvbmUpLKBhbmSgdGhloHVzdWFsPGJyPgorbGFyZ2WgY29sbGVjdGlvbqBvZqBtaW5vcqBjaGFuZ2VzLqCgSG9wZWZ1bGx5oHdloHdpbGygYmWgYWJsZaB0bzxicj4KK2ltcHJvdmWgb3VyoE5QVEygc3VwcG9ydCygYnV0oG5voHByb21pc2VzLjxicj4KKzxicj4KKzxicj4KK6CgoKA8L3A+PC9kaXY+Cis8L2Rpdj4KKzxkaXY+Cis8YnI+PHRhYmxlIGNsYXNzPSJuYXYiIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0iMyIgY2VsbHBhZGRpbmc9IjIiIGJvcmRlcj0iMCIgc3VtbWFyeT0iTmF2aWdhdGlvbiBmb290ZXIiPgorPHRyPgorPHRkIHJvd3NwYW49IjIiIHdpZHRoPSI0MCUiIGFsaWduPSJsZWZ0Ij4KKzxhIGFjY2Vzc2tleT0icCIgaHJlZj0iZGlzdC5uZXdzLmh0bWwiPiZsdDsmbHQ7oDIuoE5FV1M8L2E+oDwvdGQ+Cis8dGQgd2lkdGg9IjIwJSIgYWxpZ249ImNlbnRlciI+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJkaXN0Lmh0bWwiPlVwPC9hPjwvdGQ+Cis8dGQgcm93c3Bhbj0iMiIgd2lkdGg9IjQwJSIgYWxpZ249InJpZ2h0Ij6gPGEgYWNjZXNza2V5PSJuIiBocmVmPSJkaXN0LnJlYWRtZS5odG1sIj40LqBSRUFETUWgJmd0OyZndDs8L2E+Cis8L3RkPgorPC90cj4KKzx0cj48dGQgd2lkdGg9IjIwJSIgYWxpZ249ImNlbnRlciI+PGEgYWNjZXNza2V5PSJoIiBocmVmPSJpbmRleC5odG1sIj5Ib21lPC9hPjwvdGQ+PC90cj4KKzwvdGFibGU+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL2RvY3MvaHRtbC9kaXN0LnJlYWRtZS1hbmRyb2lkLmh0bWwgYi9kb2NzL2h0bWwvZGlzdC5yZWFkbWUtYW5kcm9pZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRmY2JmYjcKLS0tIC9kZXYvbnVsbAorKysgYi9kb2NzL2h0bWwvZGlzdC5yZWFkbWUtYW5kcm9pZC5odG1sCkBAIC0wLDAgKzEsMjUwIEBACis8aHRtbD4KKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSI+Cis8dGl0bGU+OS6gUkVBRE1FLmFuZHJvaWQ8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0idmdfYmFzaWMuY3NzIj4KKzxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iRG9jQm9vayBYU0wgU3R5bGVzaGVldHMgVjEuNzguMSI+Cis8bGluayByZWw9ImhvbWUiIGhyZWY9ImluZGV4Lmh0bWwiIHRpdGxlPSJWYWxncmluZCBEb2N1bWVudGF0aW9uIj4KKzxsaW5rIHJlbD0idXAiIGhyZWY9ImRpc3QuaHRtbCIgdGl0bGU9IlZhbGdyaW5kIERpc3RyaWJ1dGlvbiBEb2N1bWVudHMiPgorPGxpbmsgcmVsPSJwcmV2IiBocmVmPSJkaXN0LnJlYWRtZS1zMzkwLmh0bWwiIHRpdGxlPSI4LqBSRUFETUUuUzM5MCI+Cis8bGluayByZWw9Im5leHQiIGhyZWY9ImRpc3QucmVhZG1lLWFuZHJvaWRfZW11bGF0b3IuaHRtbCIgdGl0bGU9IjEwLqBSRUFETUUuYW5kcm9pZF9lbXVsYXRvciI+Cis8L2hlYWQ+Cis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+Cis8ZGl2Pjx0YWJsZSBjbGFzcz0ibmF2IiB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjMiIGNlbGxwYWRkaW5nPSIzIiBib3JkZXI9IjAiIHN1bW1hcnk9Ik5hdmlnYXRpb24gaGVhZGVyIj48dHI+Cis8dGQgd2lkdGg9IjIycHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImRpc3QucmVhZG1lLXMzOTAuaHRtbCI+PGltZyBzcmM9ImltYWdlcy9wcmV2LnBuZyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjIxIiBib3JkZXI9IjAiIGFsdD0iUHJldiI+PC9hPjwvdGQ+Cis8dGQgd2lkdGg9IjI1cHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9InUiIGhyZWY9ImRpc3QuaHRtbCI+PGltZyBzcmM9ImltYWdlcy91cC5wbmciIHdpZHRoPSIyMSIgaGVpZ2h0PSIxOCIgYm9yZGVyPSIwIiBhbHQ9IlVwIj48L2E+PC90ZD4KKzx0ZCB3aWR0aD0iMzFweCIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iaW5kZXguaHRtbCI+PGltZyBzcmM9ImltYWdlcy9ob21lLnBuZyIgd2lkdGg9IjI3IiBoZWlnaHQ9IjIwIiBib3JkZXI9IjAiIGFsdD0iVXAiPjwvYT48L3RkPgorPHRoIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj5WYWxncmluZCBEaXN0cmlidXRpb24gRG9jdW1lbnRzPC90aD4KKzx0ZCB3aWR0aD0iMjJweCIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPjxhIGFjY2Vzc2tleT0ibiIgaHJlZj0iZGlzdC5yZWFkbWUtYW5kcm9pZF9lbXVsYXRvci5odG1sIj48aW1nIHNyYz0iaW1hZ2VzL25leHQucG5nIiB3aWR0aD0iMTgiIGhlaWdodD0iMjEiIGJvcmRlcj0iMCIgYWx0PSJOZXh0Ij48L2E+PC90ZD4KKzwvdHI+PC90YWJsZT48L2Rpdj4KKzxkaXYgY2xhc3M9ImNoYXB0ZXIiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgxIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJkaXN0LnJlYWRtZS1hbmRyb2lkIj48L2E+OS6gUkVBRE1FLmFuZHJvaWQ8L2gxPjwvZGl2PjwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0ibGl0ZXJhbGxheW91dCI+PHA+PGJyPgoroKCgoKCgPGJyPgorSG93oHRvoGNyb3NzLWNvbXBpbGWgYW5koHJ1bqBvbqBBbmRyb2lkLqCgUGxlYXNloHJlYWSgdG+gdGhloGVuZCw8YnI+CitzaW5jZaB0aGVyZaBhcmWgaW1wb3J0YW50oGRldGFpbHOgZnVydGhlcqBkb3duoHJlZ2FyZGluZ6BjcmFzaDxicj4KK2F2b2lkYW5jZaBhbmSgR1BVoHN1cHBvcnQuPGJyPgorPGJyPgorVGhlc2Wgbm90ZXOgd2VyZaBsYXN0oHVwZGF0ZWSgb26gNKBOb3agMjAxNCygZm9yoFZhbGdyaW5koFNWTjxicj4KK3JldmlzaW9uoDE0Njg5LzI5ODcuPGJyPgorPGJyPgorVGhlc2WgaW5zdHJ1Y3Rpb25zoGFyZaBrbm93bqB0b6B3b3JrLKBvcqBoYXZloHdvcmtlZKBhdKBzb21loHRpbWWgaW48YnI+Cit0aGWgcGFzdCygZm9yOjxicj4KKzxicj4KK2FybTo8YnI+CiugoEFuZHJvaWSgNC4wLjOgcnVubmluZ6BvbqBhoChyb290ZWQsoEFPU1CgYnVpbGQpoE5leHVzoFMuPGJyPgoroKBBbmRyb2lkoDQuMC4zoHJ1bm5pbmegb26gTW90b3JvbGGgWG9vbS48YnI+CiugoEFuZHJvaWSgNC4wLjOgcnVubmluZ6BvbqBhbmRyb2lkoGFybaBlbXVsYXRvci48YnI+CiugoEFuZHJvaWSgNC4xoKCgcnVubmluZ6BvbqBhbmRyb2lkoGVtdWxhdG9yLjxicj4KK6CgQW5kcm9pZKAyLjMuNKBvbqBOZXh1c6BToHdvcmtlZKBhdKBzb21loHRpbWWgaW6gdGhloHBhc3QuPGJyPgorPGJyPgoreDg2Ojxicj4KK6CgQW5kcm9pZKA0LjAuM6BydW5uaW5noG9uoGFuZHJvaWSgeDg2oGVtdWxhdG9yLjxicj4KKzxicj4KK21pcHMzMjo8YnI+CiugoEFuZHJvaWSgNC4xLjKgcnVubmluZ6BvbqBhbmRyb2lkoG1pcHOgZW11bGF0b3IuPGJyPgoroKBBbmRyb2lkoDQuMi4yoHJ1bm5pbmegb26gYW5kcm9pZKBtaXBzoGVtdWxhdG9yLjxicj4KK6CgQW5kcm9pZKA0LjOgoKBydW5uaW5noG9uoGFuZHJvaWSgbWlwc6BlbXVsYXRvci48YnI+CiugoEFuZHJvaWSgNC4wLjSgcnVubmluZ6BvbqBCUk9BRENPTaBiY203NDI1PGJyPgorPGJyPgorYXJtNjQ6PGJyPgoroKBBbmRyb2lkoDQuNaAoPymgcnVubmluZ6BvbqBBUk2gSnVubzxicj4KKzxicj4KK09uoGFuZHJvaWQtYXJtLKBHREJzZXJ2ZXKgbWlnaHSgaW5zZXJ0oGJyZWFrc6BhdKB3cm9uZ6BhZGRyZXNzZXMuPGJyPgorRmVlZGJhY2ugb26gdGhpc6B3ZWxjb21lLjxicj4KKzxicj4KK090aGVyoGNvbmZpZ3VyYXRpb25zoGFuZKB0b29sY2hhaW5zoG1pZ2h0oHdvcmssoGJ1dKBoYXZlbid0oGJlZW6gdGVzdGVkLjxicj4KK0ZlZWRiYWNroGlzoHdlbGNvbWUuPGJyPgorPGJyPgorVG9vbGNoYWluOjxicj4KKzxicj4KK6CgRm9yoGFybTMyLKB4ODagYW5koG1pcHMzMqB5b3WgbmVlZKB0aGWgYW5kcm9pZC1uZGstcjagbmF0aXZlPGJyPgoroKCgoGRldmVsb3BtZW50oGtpdC6goHI2YqBhbmSgcjegZ2l2ZaBhoG5vbi1jb21wbGV0ZWx5LXdvcmtpbmegYnVpbGQ7PGJyPgoroKCgoHNlZaBodHRwOi8vY29kZS5nb29nbGUuY29tL3AvYW5kcm9pZC9pc3N1ZXMvZGV0YWlsP2lkPTIzMjAzPGJyPgoroKCgoEZvcqB0aGWgYW5kcm9pZKBlbXVsYXRvciygdGhloHZlcnNpb25zoG5lZWRlZKBhbmSgaG93oHRvoGluc3RhbGw8YnI+CiugoKCgdGhlbaBhcmWgZGVzY3JpYmVkoGluoFJFQURNRS5hbmRyb2lkX2VtdWxhdG9yLjxicj4KKzxicj4KK6CgoKBZb3WgY2FuoGdldKBhbmRyb2lkLW5kay1yNqBmcm9tPGJyPgoroKCgoGh0dHA6Ly9kbC5nb29nbGUuY29tL2FuZHJvaWQvbmRrL2FuZHJvaWQtbmRrLXI2LWxpbnV4LXg4Ni50YXIuYnoyPGJyPgorPGJyPgoroKBGb3KgYXJtNjSgKGFhcmNoNjQpoHlvdaBuZWVkoHRoZaBhbmRyb2lkLW5kay1yMTBjoE5ESyygZnJvbTxicj4KK6CgoKBodHRwOi8vZGwuZ29vZ2xlLmNvbS9hbmRyb2lkL25kay9hbmRyb2lkLW5kay1yMTBjLWxpbnV4LXg4Nl82NC5iaW48YnI+Cis8YnI+CitJbnN0YWxsoHRoZaBOREugc29tZXdoZXJlLqCgRG9lc24ndKBtYXR0ZXKgd2hlcmUuoKBUaGVuOjxicj4KKzxicj4KKzxicj4KKyOgTW9kaWZ5oHRoaXOgKG9idmlvdXNseSkuoKBOb3RlLKB0aGlzoCJleHBvcnQioGNvbW1hbmSgaXOgb25seaBkb25lPGJyPgorI6Bzb6Bhc6B0b6ByZWR1Y2WgdGhloGFtb3VudKBvZqB0eXBpbmegcmVxdWlyZWQuoKBOb25loG9moHRoZaBjb21tYW5kczxicj4KKyOgYmVsb3egcmVhZKBpdKBhc6BwYXJ0oG9moHRoZWlyoG9wZXJhdGlvbi48YnI+CisjPGJyPgorZXhwb3J0oE5ES1JPT1Q9L3BhdGgvdG8vYW5kcm9pZC1uZGstciZsdDt2ZXJzaW9uJmd0Ozxicj4KKzxicj4KKzxicj4KKyOgVGhlbqBjZKB0b6B0aGWgcm9vdKBvZqB5b3VyoFZhbGdyaW5koHNvdXJjZaB0cmVlLjxicj4KKyM8YnI+CitjZKAvcGF0aC90by92YWxncmluZC9zb3VyY2UvdHJlZTxicj4KKzxicj4KKzxicj4KKyOgQWZ0ZXKgdGhpc6Bwb2ludCygeW91oGRvbid0oG5lZWSgdG+gbW9kaWZ5oGFueXRoaW5nLqCgSnVzdKBjb3B5oGFuZDxicj4KKyOgcGFzdGWgdGhloGNvbW1hbmRzoGJlbG93Ljxicj4KKzxicj4KKzxicj4KKyOgU2V0oHVwoHRvb2xjaGFpbqBwYXRocy48YnI+CisjPGJyPgorI6BGb3KgQVJNPGJyPgorZXhwb3J0oEFSPSROREtST09UL3Rvb2xjaGFpbnMvYXJtLWxpbnV4LWFuZHJvaWRlYWJpLTQuNC4zL3ByZWJ1aWx0L2xpbnV4LXg4Ni9iaW4vYXJtLWxpbnV4LWFuZHJvaWRlYWJpLWFyPGJyPgorZXhwb3J0oExEPSROREtST09UL3Rvb2xjaGFpbnMvYXJtLWxpbnV4LWFuZHJvaWRlYWJpLTQuNC4zL3ByZWJ1aWx0L2xpbnV4LXg4Ni9iaW4vYXJtLWxpbnV4LWFuZHJvaWRlYWJpLWxkPGJyPgorZXhwb3J0oENDPSROREtST09UL3Rvb2xjaGFpbnMvYXJtLWxpbnV4LWFuZHJvaWRlYWJpLTQuNC4zL3ByZWJ1aWx0L2xpbnV4LXg4Ni9iaW4vYXJtLWxpbnV4LWFuZHJvaWRlYWJpLWdjYzxicj4KKzxicj4KKyOgRm9yoHg4Njxicj4KK2V4cG9ydKBBUj0kTkRLUk9PVC90b29sY2hhaW5zL3g4Ni00LjQuMy9wcmVidWlsdC9saW51eC14ODYvYmluL2k2ODYtYW5kcm9pZC1saW51eC1hcjxicj4KK2V4cG9ydKBMRD0kTkRLUk9PVC90b29sY2hhaW5zL3g4Ni00LjQuMy9wcmVidWlsdC9saW51eC14ODYvYmluL2k2ODYtYW5kcm9pZC1saW51eC1sZDxicj4KK2V4cG9ydKBDQz0kTkRLUk9PVC90b29sY2hhaW5zL3g4Ni00LjQuMy9wcmVidWlsdC9saW51eC14ODYvYmluL2k2ODYtYW5kcm9pZC1saW51eC1nY2M8YnI+Cis8YnI+CisjoEZvcqBNSVBTMzI8YnI+CitleHBvcnSgQVI9JE5ES1JPT1QvdG9vbGNoYWlucy9taXBzZWwtbGludXgtYW5kcm9pZC00LjgvcHJlYnVpbHQvbGludXgteDg2XzY0L2Jpbi9taXBzZWwtbGludXgtYW5kcm9pZC1hcjxicj4KK2V4cG9ydKBMRD0kTkRLUk9PVC90b29sY2hhaW5zL21pcHNlbC1saW51eC1hbmRyb2lkLTQuOC9wcmVidWlsdC9saW51eC14ODZfNjQvYmluL21pcHNlbC1saW51eC1hbmRyb2lkLWxkPGJyPgorZXhwb3J0oENDPSROREtST09UL3Rvb2xjaGFpbnMvbWlwc2VsLWxpbnV4LWFuZHJvaWQtNC44L3ByZWJ1aWx0L2xpbnV4LXg4Nl82NC9iaW4vbWlwc2VsLWxpbnV4LWFuZHJvaWQtZ2NjPGJyPgorPGJyPgorI6BGb3KgQVJNNjSgKEFBcmNoNjQpPGJyPgorZXhwb3J0oEFSPSROREtST09UL3Rvb2xjaGFpbnMvYWFyY2g2NC1saW51eC1hbmRyb2lkLTQuOS9wcmVidWlsdC9saW51eC14ODZfNjQvYmluL2FhcmNoNjQtbGludXgtYW5kcm9pZC1hcqA8YnI+CitleHBvcnSgTEQ9JE5ES1JPT1QvdG9vbGNoYWlucy9hYXJjaDY0LWxpbnV4LWFuZHJvaWQtNC45L3ByZWJ1aWx0L2xpbnV4LXg4Nl82NC9iaW4vYWFyY2g2NC1saW51eC1hbmRyb2lkLWxkPGJyPgorZXhwb3J0oENDPSROREtST09UL3Rvb2xjaGFpbnMvYWFyY2g2NC1saW51eC1hbmRyb2lkLTQuOS9wcmVidWlsdC9saW51eC14ODZfNjQvYmluL2FhcmNoNjQtbGludXgtYW5kcm9pZC1nY2M8YnI+Cis8YnI+Cis8YnI+CisjoERvoGNvbmZpZ3VyYXRpb26gc3R1ZmYuoKBEb24ndKBtZXNzoHdpdGigdGhloC0tcHJlZml4oGluoHRoZTxicj4KKyOgY29uZmlndXJloGNvbW1hbmSgYmVsb3csoGV2ZW6gaWageW91oHRoaW5roGl0J3Ogd3JvbmcuPGJyPgorI6BZb3WgbWF5oG5lZWSgdG+gc2V0oHRoZaAtLXdpdGgtdG1wZGlyoHBhdGigdG+gc29tZXRoaW5nPGJyPgorI6BkaWZmZXJlbnSgaWagL3NkY2FyZKBkb2Vzbid0oHdvcmugb26gdGhloGRldmljZaAtLaB0aGlzoGlzPGJyPgorI6BhoGtub3duoGNhdXNloG9moGRpZmZpY3VsdGllcy48YnI+Cis8YnI+CisjoFRoZaBiZWxvd6ByZS1nZW5lcmF0ZXOgY29uZmlndXJlLKBNYWtlZmlsZXMsoC4uLjxicj4KKyOgVGhpc6Bpc6Bub3SgbmVlZGVkoGlmoHlvdaBzdGFydKBmcm9toGGgcmVsZWFzZaB0YXJiYWxsLjxicj4KKy4vYXV0b2dlbi5zaDxicj4KKzxicj4KKyOgZm9yoEFSTTxicj4KK0NQUEZMQUdTPSItLXN5c3Jvb3Q9JE5ES1JPT1QvcGxhdGZvcm1zL2FuZHJvaWQtMy9hcmNoLWFybSKgXDxicj4KK6CgoENGTEFHUz0iLS1zeXNyb290PSROREtST09UL3BsYXRmb3Jtcy9hbmRyb2lkLTMvYXJjaC1hcm0ioFw8YnI+CiugoKAuL2NvbmZpZ3VyZaAtLXByZWZpeD0vZGF0YS9sb2NhbC9JbnN0oFw8YnI+CiugoKAtLWhvc3Q9YXJtdjctdW5rbm93bi1saW51eKAtLXRhcmdldD1hcm12Ny11bmtub3duLWxpbnV4oFw8YnI+CiugoKAtLXdpdGgtdG1wZGlyPS9zZGNhcmQ8YnI+CisjoG5vdGU6oG9uoGFuZHJvaWSgZW11bGF0b3IsoGFuZHJvaWQtMTSgcGxhdGZvcm2gd2FzoGFsc2+gdGVzdGVkoGFuZKB3b3Jrcy48YnI+CisjoEl0oGlzoG5vdKBjbGVhcqB3aGF0oHRoaXOgcGxhdGZvcm2gbnKgcmVhbGx5oGlzLjxicj4KKzxicj4KKyOgZm9yoHg4Njxicj4KK0NQUEZMQUdTPSItLXN5c3Jvb3Q9JE5ES1JPT1QvcGxhdGZvcm1zL2FuZHJvaWQtOS9hcmNoLXg4NiKgXDxicj4KK6CgoENGTEFHUz0iLS1zeXNyb290PSROREtST09UL3BsYXRmb3Jtcy9hbmRyb2lkLTkvYXJjaC14ODagLWZuby1waWMioFw8YnI+CiugoKAuL2NvbmZpZ3VyZaAtLXByZWZpeD0vZGF0YS9sb2NhbC9JbnN0oFw8YnI+CiugoKAtLWhvc3Q9aTY4Ni1hbmRyb2lkLWxpbnV4oC0tdGFyZ2V0PWk2ODYtYW5kcm9pZC1saW51eKBcPGJyPgoroKCgLS13aXRoLXRtcGRpcj0vc2RjYXJkPGJyPgorPGJyPgorI6Bmb3KgTUlQUzMyPGJyPgorQ1BQRkxBR1M9Ii0tc3lzcm9vdD0kTkRLUk9PVC9wbGF0Zm9ybXMvYW5kcm9pZC0xOC9hcmNoLW1pcHMioFw8YnI+CiugoKBDRkxBR1M9Ii0tc3lzcm9vdD0kTkRLUk9PVC9wbGF0Zm9ybXMvYW5kcm9pZC0xOC9hcmNoLW1pcHMioFw8YnI+CiugoKAuL2NvbmZpZ3VyZaAtLXByZWZpeD0vZGF0YS9sb2NhbC9JbnN0oFw8YnI+CiugoKAtLWhvc3Q9bWlwc2VsLWxpbnV4LWFuZHJvaWSgLS10YXJnZXQ9bWlwc2VsLWxpbnV4LWFuZHJvaWSgXDxicj4KK6CgoC0td2l0aC10bXBkaXI9L3NkY2FyZDxicj4KKzxicj4KKyOgZm9yoEFSTTY0oChBQXJjaDY0KTxicj4KK0NQUEZMQUdTPSItLXN5c3Jvb3Q9JE5ES1JPT1QvcGxhdGZvcm1zL2FuZHJvaWQtMjEvYXJjaC1hcm02NCKgXDxicj4KK6CgoENGTEFHUz0iLS1zeXNyb290PSROREtST09UL3BsYXRmb3Jtcy9hbmRyb2lkLTIxL2FyY2gtYXJtNjQioFw8YnI+CiugoKAuL2NvbmZpZ3VyZaAtLXByZWZpeD0vZGF0YS9sb2NhbC9JbnN0oFw8YnI+CiugoKAtLWhvc3Q9YWFyY2g2NC11bmtub3duLWxpbnV4oC0tdGFyZ2V0PWFhcmNoNjQtdW5rbm93bi1saW51eKBcPGJyPgoroKCgLS13aXRoLXRtcGRpcj0vc2RjYXJkPGJyPgorPGJyPgorPGJyPgorI6BBdKB0aGWgZW5koG9moHRoZaBjb25maWd1cmWgcnVuLKBhoGZld6BsaW5lc6BvZqBkZXRhaWxzPGJyPgorI6BhcmWgcHJpbnRlZC6goE1ha2Wgc3VyZaB0aGF0oHlvdaBzZWWgdGhlc2WgdHdvoGxpbmVzOjxicj4KKyM8YnI+CisjoEZvcqBBUk06PGJyPgorI6CgoKCgoKCgoKBQbGF0Zm9ybaB2YXJpYW50OqBhbmRyb2lkPGJyPgorI6CgoKCgUHJpbWFyeaAtRFZHUFagc3RyaW5nOqAtRFZHUFZfYXJtX2xpbnV4X2FuZHJvaWQ9MTxicj4KKyM8YnI+CisjoEZvcqB4ODY6PGJyPgorI6CgoKCgoKCgoKBQbGF0Zm9ybaB2YXJpYW50OqBhbmRyb2lkPGJyPgorI6CgoKCgUHJpbWFyeaAtRFZHUFagc3RyaW5nOqAtRFZHUFZfeDg2X2xpbnV4X2FuZHJvaWQ9MTxicj4KKyM8YnI+CisjoEZvcqBtaXBzMzI6PGJyPgorI6CgoKCgoKCgoKBQbGF0Zm9ybaB2YXJpYW50OqBhbmRyb2lkPGJyPgorI6CgoKCgUHJpbWFyeaAtRFZHUFagc3RyaW5nOqAtRFZHUFZfbWlwczMyX2xpbnV4X2FuZHJvaWQ9MTxicj4KKyM8YnI+CisjoEZvcqBBUk02NKAoQUFyY2g2NCk6PGJyPgorI6CgoKCgoKCgoKBQbGF0Zm9ybaB2YXJpYW50OqBhbmRyb2lkPGJyPgorI6CgoKCgUHJpbWFyeaAtRFZHUFagc3RyaW5nOqAtRFZHUFZfYXJtNjRfbGludXhfYW5kcm9pZD0xPGJyPgorIzxicj4KKyOgSWageW91oHNlZaBhbnl0aGluZ6BlbHNloGF0oHRoaXOgcG9pbnQsoHNvbWV0aGluZ6Bpc6B3cm9uZyygYW5kPGJyPgorI6BlaXRoZXKgdGhloGJ1aWxkoHdpbGygZmFpbCygb3Kgd2lsbKBzdWNjZWVkoGJ1dKB5b3UnbGygZ2V0oHNvbWV0aGluZzxicj4KKyOgd2hpY2igd29uJ3Sgd29yay48YnI+Cis8YnI+Cis8YnI+CisjoEJ1aWxkLKBhbmSgcGFya6B0aGWgaW5zdGFsbKB0cmVloGluoGBwd2RgL0luc3Q8YnI+CisjPGJyPgorbWFrZaAtajQ8YnI+CittYWtloC1qNKBpbnN0YWxsoERFU1RESVI9YHB3ZGAvSW5zdDxicj4KKzxicj4KKzxicj4KKyOgVG+gZ2V0oHRoZaBpbnN0YWxsoHRyZWWgb250b6B0aGWgZGV2aWNlOjxicj4KKyOgKEmgZG9uJ3Sga25vd6B3aHmgaXQnc6Bub3SgImFkYqBwdXNooEluc3SgL2RhdGEvbG9jYWwiLKBidXSgdGhpczxicj4KKyOgZm9ybXVsYXRpb26gZG9lc6BhcHBlYXKgdG+gcHV0oHRoZaByZXN1bHSgaW6gL2RhdGEvbG9jYWwvSW5zdC4pPGJyPgorIzxicj4KK2FkYqBwdXNooEluc3SgLzxicj4KKzxicj4KKzxicj4KKyOgVG+gcnVuoChvbqB0aGWgZGV2aWNlKS6goFRoZXJloGFyZaB0d2+gdGhpbmdzoHlvdaBuZWVkoHRvoGNvbnNpZGVyOjxicj4KKyM8YnI+CisjoCgxKaBpZqB5b3WgYXJloHJ1bm5pbmegb26gdGhloEFuZHJvaWSgZW11bGF0b3IsoFZhbGdyaW5koG1heaBjcmFzaDxicj4KKyOgoKCgoGF0oHN0YXJ0dXAuoKBUaGlzoGlzoGJlY2F1c2WgdGhloGVtdWxhdG9yoChmb3KgQVJNKaBtYXmgbm90oGJlPGJyPgorI6CgoKCgc2ltdWxhdGluZ6BhoGhhcmR3YXJloFRMU6ByZWdpc3Rlci6goFRvoGdldKBhcm91bmSgdGhpcyygcnVuPGJyPgorI6CgoKCgVmFsZ3JpbmSgd2l0aDo8YnI+CisjoKCgoKCgoC0ta2VybmVsLXZhcmlhbnQ9YW5kcm9pZC1uby1ody10bHM8YnI+CisjoDxicj4KKyOgKDIpoGlmoHlvdaBhcmWgcnVubmluZ6BhoHJlYWygZGV2aWNlLKB5b3WgbmVlZKB0b6B0ZWxsoFZhbGdyaW5kPGJyPgorI6CgoKCgd2hhdKBHUFWgaXSgaGFzLKBzb6BWYWxncmluZKBrbm93c6Bob3egdG+gaGFuZGxloGN1c3RvbaBHUFU8YnI+CisjoKCgoKBpb2N0bHMuoKBZb3WgY2FuoGNob29zZaBvbmWgb2agdGhloGZvbGxvd2luZzo8YnI+CisjoKCgoKCgoC0ta2VybmVsLXZhcmlhbnQ9YW5kcm9pZC1ncHUtc2d4NXh4oKCgoKAjoFBvd2VyVlKgU0dYoDVYWKBzZXJpZXM8YnI+CisjoKCgoKCgoC0ta2VybmVsLXZhcmlhbnQ9YW5kcm9pZC1ncHUtYWRyZW5vM3h4oKAjoFF1YWxjb21toEFkcmVub6AzWFigc2VyaWVzPGJyPgorI6CgoKCgSWageW91oGRvbid0oGNob29zZaBvbmUsoHRoZaBwcm9ncmFtoHdpbGygc3RpbGygcnVuLKBidXSgTWVtY2hlY2s8YnI+CisjoKCgoKBtYXmgcmVwb3J0oGZhbHNloGVycm9yc6BhZnRlcqB0aGWgcHJvZ3JhbaBwZXJmb3Jtc6BHUFUtc3BlY2lmaWOgaW9jdGxzLjxicj4KKyM8YnI+CisjoEFueXdheTqgdG+gcnVuoG9uoHRoZaBkZXZpY2U6PGJyPgorIzxicj4KKy9kYXRhL2xvY2FsL0luc3QvYmluL3ZhbGdyaW5koFtrZXJuZWygdmFyaWFudKBhcmdzXaBbdGhloHVzdWFsoGFyZ3OgZXRjXTxicj4KKzxicj4KKzxicj4KKyOgT25jZaB5b3UncmWgdXCgYW5koHJ1bm5pbmcsoGGgaGFuZHmgbW9kaWZ5LVYtcmVidWlsZC1yZWluc3RhbGw8YnI+CisjoGNvbW1hbmSgbGluZaAob26gdGhloGhvc3QsoG9moGNvdXJzZSmgaXM8YnI+CisjPGJyPgorbXGgLWoyoCZhbXA7JmFtcDugbXGgLWoyoGluc3RhbGygREVTVERJUj1gcHdkYC9JbnN0oCZhbXA7JmFtcDugYWRioHB1c2igSW5zdKAvPGJyPgorIzxicj4KKyOgd2hlcmWgJ21xJ6Bpc6BhbqBhbGlhc6Bmb3KgJ21ha2WgLS1xdWlldCcuPGJyPgorPGJyPgorPGJyPgorI6BPbmWgY29tbW9uoGNhdXNloG9moHJ1bnOgZmFpbGluZ6BhdKBzdGFydHVwoGlzoHRoZaBpbmFiaWxpdHmgb2Y8YnI+CisjoFZhbGdyaW5koHRvoGZpbmSgYaBzdWl0YWJsZaB0ZW1wb3JhcnmgZGlyZWN0b3J5LqCgT26gdGhloGRldmljZSw8YnI+CisjoHRoZXJloGRvZXNuJ3Sgc2VlbaB0b6BiZaBhbnmgb25loGxvY2F0aW9uoHdoaWNooHdloGFsd2F5c6BoYXZlPGJyPgorI6BwZXJtaXNzaW9uoHRvoHdyaXRloHRvLqCgVGhloGluc3RydWN0aW9uc6BhYm92ZaB1c2WgL3NkY2FyZC6goElmPGJyPgorI6B0aGF0oGRvZXNuJ3Sgd29ya6Bmb3KgeW91LKBhbmSgeW91J3JloFZhbGdyaW5kaW5noG9uZaBzcGVjaWZpYzxicj4KKyOgYXBwbGljYXRpb26gd2hpY2igaXOgYWxyZWFkeaBpbnN0YWxsZWQsoHlvdaBjb3VsZKB0cnmgdXNpbmegaXRzPGJyPgorI6B0ZW1wb3JhcnmgZGlyZWN0b3J5LKBpbqAvZGF0YS9kYXRhLKBmb3KgZXhhbXBsZTxicj4KKyOgL2RhdGEvZGF0YS9vcmcubW96aWxsYS5maXJlZm94X2JldGEuPGJyPgorIzxicj4KKyOgVXNpbmegL3N5c3RlbS9iaW4vbG9nY2F0oG9uoHRoZaBkZXZpY2WgaXOgaGVscGZ1bKBmb3KgZGlhZ25vc2luZzxicj4KKyOgdGhlc2Wga2luZHOgb2agcHJvYmxlbXMuPGJyPgorPGJyPgoroKCgoDwvcD48L2Rpdj4KKzwvZGl2PgorPGRpdj4KKzxicj48dGFibGUgY2xhc3M9Im5hdiIgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSIzIiBjZWxscGFkZGluZz0iMiIgYm9yZGVyPSIwIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGZvb3RlciI+Cis8dHI+Cis8dGQgcm93c3Bhbj0iMiIgd2lkdGg9IjQwJSIgYWxpZ249ImxlZnQiPgorPGEgYWNjZXNza2V5PSJwIiBocmVmPSJkaXN0LnJlYWRtZS1zMzkwLmh0bWwiPiZsdDsmbHQ7oDguoFJFQURNRS5TMzkwPC9hPqA8L3RkPgorPHRkIHdpZHRoPSIyMCUiIGFsaWduPSJjZW50ZXIiPjxhIGFjY2Vzc2tleT0idSIgaHJlZj0iZGlzdC5odG1sIj5VcDwvYT48L3RkPgorPHRkIHJvd3NwYW49IjIiIHdpZHRoPSI0MCUiIGFsaWduPSJyaWdodCI+oDxhIGFjY2Vzc2tleT0ibiIgaHJlZj0iZGlzdC5yZWFkbWUtYW5kcm9pZF9lbXVsYXRvci5odG1sIj4xMC6gUkVBRE1FLmFuZHJvaWRfZW11bGF0b3KgJmd0OyZndDs8L2E+Cis8L3RkPgorPC90cj4KKzx0cj48dGQgd2lkdGg9IjIwJSIgYWxpZ249ImNlbnRlciI+PGEgYWNjZXNza2V5PSJoIiBocmVmPSJpbmRleC5odG1sIj5Ib21lPC9hPjwvdGQ+PC90cj4KKzwvdGFibGU+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL2RvY3MvaHRtbC9kaXN0LnJlYWRtZS1hbmRyb2lkX2VtdWxhdG9yLmh0bWwgYi9kb2NzL2h0bWwvZGlzdC5yZWFkbWUtYW5kcm9pZF9lbXVsYXRvci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZjNzg4ZmQKLS0tIC9kZXYvbnVsbAorKysgYi9kb2NzL2h0bWwvZGlzdC5yZWFkbWUtYW5kcm9pZF9lbXVsYXRvci5odG1sCkBAIC0wLDAgKzEsMTIxIEBACis8aHRtbD4KKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSI+Cis8dGl0bGU+MTAuoFJFQURNRS5hbmRyb2lkX2VtdWxhdG9yPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9InZnX2Jhc2ljLmNzcyI+Cis8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkRvY0Jvb2sgWFNMIFN0eWxlc2hlZXRzIFYxLjc4LjEiPgorPGxpbmsgcmVsPSJob21lIiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0iVmFsZ3JpbmQgRG9jdW1lbnRhdGlvbiI+Cis8bGluayByZWw9InVwIiBocmVmPSJkaXN0Lmh0bWwiIHRpdGxlPSJWYWxncmluZCBEaXN0cmlidXRpb24gRG9jdW1lbnRzIj4KKzxsaW5rIHJlbD0icHJldiIgaHJlZj0iZGlzdC5yZWFkbWUtYW5kcm9pZC5odG1sIiB0aXRsZT0iOS6gUkVBRE1FLmFuZHJvaWQiPgorPGxpbmsgcmVsPSJuZXh0IiBocmVmPSJkaXN0LnJlYWRtZS1taXBzLmh0bWwiIHRpdGxlPSIxMS6gUkVBRE1FLm1pcHMiPgorPC9oZWFkPgorPGJvZHkgYmdjb2xvcj0id2hpdGUiIHRleHQ9ImJsYWNrIiBsaW5rPSIjMDAwMEZGIiB2bGluaz0iIzg0MDA4NCIgYWxpbms9IiMwMDAwRkYiPgorPGRpdj48dGFibGUgY2xhc3M9Im5hdiIgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSIzIiBjZWxscGFkZGluZz0iMyIgYm9yZGVyPSIwIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciI+PHRyPgorPHRkIHdpZHRoPSIyMnB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJwIiBocmVmPSJkaXN0LnJlYWRtZS1hbmRyb2lkLmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvcHJldi5wbmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIyMSIgYm9yZGVyPSIwIiBhbHQ9IlByZXYiPjwvYT48L3RkPgorPHRkIHdpZHRoPSIyNXB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJkaXN0Lmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvdXAucG5nIiB3aWR0aD0iMjEiIGhlaWdodD0iMTgiIGJvcmRlcj0iMCIgYWx0PSJVcCI+PC9hPjwvdGQ+Cis8dGQgd2lkdGg9IjMxcHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvaG9tZS5wbmciIHdpZHRoPSIyNyIgaGVpZ2h0PSIyMCIgYm9yZGVyPSIwIiBhbHQ9IlVwIj48L2E+PC90ZD4KKzx0aCBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+VmFsZ3JpbmQgRGlzdHJpYnV0aW9uIERvY3VtZW50czwvdGg+Cis8dGQgd2lkdGg9IjIycHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImRpc3QucmVhZG1lLW1pcHMuaHRtbCI+PGltZyBzcmM9ImltYWdlcy9uZXh0LnBuZyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjIxIiBib3JkZXI9IjAiIGFsdD0iTmV4dCI+PC9hPjwvdGQ+Cis8L3RyPjwvdGFibGU+PC9kaXY+Cis8ZGl2IGNsYXNzPSJjaGFwdGVyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMSBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0iZGlzdC5yZWFkbWUtYW5kcm9pZF9lbXVsYXRvciI+PC9hPjEwLqBSRUFETUUuYW5kcm9pZF9lbXVsYXRvcjwvaDE+PC9kaXY+PC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJsaXRlcmFsbGF5b3V0Ij48cD48YnI+CiugoKCgoKA8YnI+CitIb3egdG+gaW5zdGFsbKBhbmSgcnVuoGFuoGFuZHJvaWSgZW11bGF0b3IuPGJyPgorPGJyPgorbWtkaXKgYW5kcm9pZKAjoG9yoGFueaBvdGhlcqBwbGFjZaB5b3WgcHJlZmVyPGJyPgorY2SgYW5kcm9pZDxicj4KKzxicj4KKyOgZG93bmxvYWSgamF2YaBKREs8YnI+CisjoGh0dHA6Ly93d3cub3JhY2xlLmNvbS90ZWNobmV0d29yay9qYXZhL2phdmFzZS9kb3dubG9hZHMvaW5kZXguaHRtbDxicj4KKyOgZG93bmxvYWSgYW5kcm9pZKBTREs8YnI+CisjoGh0dHA6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vc2RrL2luZGV4Lmh0bWw8YnI+CisjoGRvd25sb2FkoGFuZHJvaWSgTkRLPGJyPgorI6BodHRwOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3Nkay9uZGsvaW5kZXguaHRtbDxicj4KKzxicj4KKyOgdmVyc2lvbnOgSaB1c2VkOjxicj4KKyOgoGpkay03dTQtbGludXgtaTU4Ni50YXIuZ3o8YnI+CisjoKBhbmRyb2lkLW5kay1yOC1saW51eC14ODYudGFyLmJ6Mjxicj4KKyOgoGFuZHJvaWQtc2RrX3IxOC1saW51eC50Z3o8YnI+Cis8YnI+CisjoGluc3RhbGygamRrPGJyPgordGFyoHh6ZqBqZGstN3U0LWxpbnV4LWk1ODYudGFyLmd6PGJyPgorPGJyPgorI6BpbnN0YWxsoHNkazxicj4KK3RhcqB4emagYW5kcm9pZC1zZGtfcjE4LWxpbnV4LnRnejxicj4KKzxicj4KKyOgaW5zdGFsbKBuZGs8YnI+Cit0YXKgeGpmoGFuZHJvaWQtbmRrLXI4LWxpbnV4LXg4Ni50YXIuYnoyPGJyPgorPGJyPgorPGJyPgorI6BzZXR1cKBQQVRIoHRvoHVzZaB0aGWgaW5zdGFsbGVkoHNvZnR3YXJlOjxicj4KK2V4cG9ydKBTREtST09UPSRIT01FL2FuZHJvaWQvYW5kcm9pZC1zZGstbGludXg8YnI+CitleHBvcnSgUEFUSD0kUEFUSDokU0RLUk9PVC90b29sczokU0RLUk9PVC9wbGF0Zm9ybS10b29sczxicj4KK2V4cG9ydKBOREtST09UPSRIT01FL2FuZHJvaWQvYW5kcm9pZC1uZGstcjg8YnI+Cis8YnI+CisjoGluc3RhbGygYW5kcm9pZKBwbGF0Zm9ybXOgeW91oHdhbnSgYnmgc3RhcnRpbmc6PGJyPgorYW5kcm9pZKA8YnI+CisjoChmcm9toCRTREtST09UL3Rvb2xzKTxicj4KKzxicj4KKyOgc2VsZWN0oHRoZaBwbGF0Zm9ybXOgeW91oG5lZWQ8YnI+CisjoEmgc2VsZWN0ZWSgYW5koGluc3RhbGxlZDo8YnI+CisjoKCgQW5kcm9pZKA0LjAuM6AoQVBJoDE1KTxicj4KKyOgVXBncmFkZWSgdGhlbqB0b6B0aGWgbmV3ZXKgdmVyc2lvbqBhdmFpbGFibGU6PGJyPgorI6CgoKCgQW5kcm9pZKBzZGugMjA8YnI+CisjoKCgoKBBbmRyb2lkoHBsYXRmb3JtoHRvb2xzoDEyPGJyPgorPGJyPgorI6B0aGVuoGRlZmluZaBhoHZpcnR1YWygZGV2aWNlOjxicj4KK1Rvb2xzoC0mZ3Q7oE1hbmFnZaBBVkRzLi4uPGJyPgorI6BJoGRlZmluZaBhbqBBVkSgTmFtZaB3aXRooDY0oE1ioFNEoENhcmQsoCg0LjAuMyygYXBpoDE1KTxicj4KKyOgcmVzdKBpc6BkZWZhdWx0PGJyPgorPGJyPgorPGJyPgorI6Bjb21waWxloGFuZKBtYWtloGluc3RhbGygVmFsZ3JpbmQsoGZvbGxvd2luZ6BSRUFETUUuYW5kcm9pZDxicj4KKzxicj4KKzxicj4KKyOgU3RhcnSgeW91cqBhbmRyb2lkoGVtdWxhdG9yoChpdKB0YWtlc6Bzb21loHRpbWUpLjxicj4KKyOgWW91oGNhbqB1c2WgYWRioHNoZWxsoHRvoGdldKBhoHNoZWxsoG9uoHRoZaBkZXZpY2U8YnI+CisjoGFuZKBzZWWgaXSgaXOgd29ya2luZy6gTm90ZaB0aGF0oEmgdXN1YWxseaBnZXQ8YnI+CisjoG9uZaBvcqB0d2+gdGltZaBvdXSgZnJvbaBhZGKgc2hlbGygYmVmb3JloGl0oHdvcmtzPGJyPgorYWRioHNoZWxsPGJyPgorPGJyPgorI6BPbmNloHRoZaBlbXVsYXRvcqBpc6ByZWFkeSygcHVzaKB5b3VyoFZhbGdyaW5koHRvoHRoZaBlbXVsYXRvcjo8YnI+CithZGKgcHVzaKBJbnN0oC88YnI+Cis8YnI+Cis8YnI+CisjoElNUE9SVEFOVDqgd2hlbqBydW5uaW5noFZhbGdyaW5kLKB5b3WgbWF5oG5lZWSgZ2l2ZaBpdKB0aGWgZmxhZzxicj4KKyM8YnI+CisjoKCgoC0ta2VybmVsLXZhcmlhbnQ9YW5kcm9pZC1uby1ody10bHM8YnI+CisjPGJyPgorI6BzaW5jZaBvdGhlcndpc2WgaXSgbWF5oGNyYXNooGF0oHN0YXJ0dXAuPGJyPgorI6BTZWWgUkVBRE1FLmFuZHJvaWSgZm9yoGRldGFpbHMuPGJyPgorPGJyPgorPGJyPgorI6BpZqB5b3WgbmVlZKB0b6BkZWJ1Zzo8YnI+CisjoFlvdaBoYXZloG9uoHRoZaBhbmRyb2lkoHNpZGWgYaBnZGJzZXJ2ZXI8YnI+CisjoG9uoHRoZaBkZXZpY2Wgc2lkZTo8YnI+CitnZGJzZXJ2ZXKgOjEyMzSgeW91cl9leGU8YnI+Cis8YnI+CisjoG9uoHRoZaBob3N0oHNpZGU6PGJyPgorYWRioGZvcndhcmSgdGNwOjEyMzSgdGNwOjEyMzQ8YnI+CiskSE9NRS9hbmRyb2lkL2FuZHJvaWQtbmRrLXI4L3Rvb2xjaGFpbnMvYXJtLWxpbnV4LWFuZHJvaWRlYWJpLTQuNC4zL3ByZWJ1aWx0L2xpbnV4LXg4Ni9iaW4vYXJtLWxpbnV4LWFuZHJvaWRlYWJpLWdkYqB5b3VyX2V4ZTxicj4KK3RhcmdldKByZW1vdGWgOjEyMzQ8YnI+Cis8YnI+Cis8YnI+CiugoKCgPC9wPjwvZGl2PgorPC9kaXY+Cis8ZGl2PgorPGJyPjx0YWJsZSBjbGFzcz0ibmF2IiB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjMiIGNlbGxwYWRkaW5nPSIyIiBib3JkZXI9IjAiIHN1bW1hcnk9Ik5hdmlnYXRpb24gZm9vdGVyIj4KKzx0cj4KKzx0ZCByb3dzcGFuPSIyIiB3aWR0aD0iNDAlIiBhbGlnbj0ibGVmdCI+Cis8YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImRpc3QucmVhZG1lLWFuZHJvaWQuaHRtbCI+Jmx0OyZsdDugOS6gUkVBRE1FLmFuZHJvaWQ8L2E+oDwvdGQ+Cis8dGQgd2lkdGg9IjIwJSIgYWxpZ249ImNlbnRlciI+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJkaXN0Lmh0bWwiPlVwPC9hPjwvdGQ+Cis8dGQgcm93c3Bhbj0iMiIgd2lkdGg9IjQwJSIgYWxpZ249InJpZ2h0Ij6gPGEgYWNjZXNza2V5PSJuIiBocmVmPSJkaXN0LnJlYWRtZS1taXBzLmh0bWwiPjExLqBSRUFETUUubWlwc6AmZ3Q7Jmd0OzwvYT4KKzwvdGQ+Cis8L3RyPgorPHRyPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0iY2VudGVyIj48YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPkhvbWU8L2E+PC90ZD48L3RyPgorPC90YWJsZT4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvZG9jcy9odG1sL2Rpc3QucmVhZG1lLWRldmVsb3BlcnMuaHRtbCBiL2RvY3MvaHRtbC9kaXN0LnJlYWRtZS1kZXZlbG9wZXJzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjlhZDRkNQotLS0gL2Rldi9udWxsCisrKyBiL2RvY3MvaHRtbC9kaXN0LnJlYWRtZS1kZXZlbG9wZXJzLmh0bWwKQEAgLTAsMCArMSwzMzQgQEAKKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj4KKzx0aXRsZT42LqBSRUFETUVfREVWRUxPUEVSUzwvdGl0bGU+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJ2Z19iYXNpYy5jc3MiPgorPG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJEb2NCb29rIFhTTCBTdHlsZXNoZWV0cyBWMS43OC4xIj4KKzxsaW5rIHJlbD0iaG9tZSIgaHJlZj0iaW5kZXguaHRtbCIgdGl0bGU9IlZhbGdyaW5kIERvY3VtZW50YXRpb24iPgorPGxpbmsgcmVsPSJ1cCIgaHJlZj0iZGlzdC5odG1sIiB0aXRsZT0iVmFsZ3JpbmQgRGlzdHJpYnV0aW9uIERvY3VtZW50cyI+Cis8bGluayByZWw9InByZXYiIGhyZWY9ImRpc3QucmVhZG1lLW1pc3NpbmcuaHRtbCIgdGl0bGU9IjUuoFJFQURNRV9NSVNTSU5HX1NZU0NBTExfT1JfSU9DVEwiPgorPGxpbmsgcmVsPSJuZXh0IiBocmVmPSJkaXN0LnJlYWRtZS1wYWNrYWdlcnMuaHRtbCIgdGl0bGU9IjcuoFJFQURNRV9QQUNLQUdFUlMiPgorPC9oZWFkPgorPGJvZHkgYmdjb2xvcj0id2hpdGUiIHRleHQ9ImJsYWNrIiBsaW5rPSIjMDAwMEZGIiB2bGluaz0iIzg0MDA4NCIgYWxpbms9IiMwMDAwRkYiPgorPGRpdj48dGFibGUgY2xhc3M9Im5hdiIgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSIzIiBjZWxscGFkZGluZz0iMyIgYm9yZGVyPSIwIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciI+PHRyPgorPHRkIHdpZHRoPSIyMnB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJwIiBocmVmPSJkaXN0LnJlYWRtZS1taXNzaW5nLmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvcHJldi5wbmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIyMSIgYm9yZGVyPSIwIiBhbHQ9IlByZXYiPjwvYT48L3RkPgorPHRkIHdpZHRoPSIyNXB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJkaXN0Lmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvdXAucG5nIiB3aWR0aD0iMjEiIGhlaWdodD0iMTgiIGJvcmRlcj0iMCIgYWx0PSJVcCI+PC9hPjwvdGQ+Cis8dGQgd2lkdGg9IjMxcHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvaG9tZS5wbmciIHdpZHRoPSIyNyIgaGVpZ2h0PSIyMCIgYm9yZGVyPSIwIiBhbHQ9IlVwIj48L2E+PC90ZD4KKzx0aCBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+VmFsZ3JpbmQgRGlzdHJpYnV0aW9uIERvY3VtZW50czwvdGg+Cis8dGQgd2lkdGg9IjIycHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImRpc3QucmVhZG1lLXBhY2thZ2Vycy5odG1sIj48aW1nIHNyYz0iaW1hZ2VzL25leHQucG5nIiB3aWR0aD0iMTgiIGhlaWdodD0iMjEiIGJvcmRlcj0iMCIgYWx0PSJOZXh0Ij48L2E+PC90ZD4KKzwvdHI+PC90YWJsZT48L2Rpdj4KKzxkaXYgY2xhc3M9ImNoYXB0ZXIiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgxIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJkaXN0LnJlYWRtZS1kZXZlbG9wZXJzIj48L2E+Ni6gUkVBRE1FX0RFVkVMT1BFUlM8L2gxPjwvZGl2PjwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0ibGl0ZXJhbGxheW91dCI+PHA+PGJyPgoroKCgoKCgPGJyPgorQnVpbGRpbmegYW5koG5vdKBpbnN0YWxsaW5noGl0PGJyPgorfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+PGJyPgorVG+gcnVuoFZhbGdyaW5koHdpdGhvdXSgaGF2aW5noHRvoGluc3RhbGygaXQsoHJ1bqBjb3JlZ3JpbmQvdmFsZ3JpbmQ8YnI+Cit3aXRooHRoZaBWQUxHUklORF9MSUKgZW52aXJvbm1lbnSgdmFyaWFibGWgc2V0LKB3aGVyZaAmbHQ7ZGlyJmd0O6Bpc6B0aGWgcm9vdDxicj4KK29moHRoZaBzb3VyY2WgdHJlZaAoYW5koG11c3SgYmWgYW6gYWJzb2x1dGWgcGF0aCkuoKBFZzo8YnI+Cis8YnI+CiugoFZBTEdSSU5EX0xJQj1+L2dyaW5kL2hlYWQ0Ly5pbl9wbGFjZaB+L2dyaW5kL2hlYWQ0L2NvcmVncmluZC92YWxncmluZKA8YnI+Cis8YnI+CitUaGlzoGFsbG93c6B5b3WgdG+gY29tcGlsZaBhbmSgcnVuoHdpdGigIm1ha2UioGluc3RlYWSgb2agIm1ha2WgaW5zdGFsbCIsPGJyPgorc2F2aW5noHlvdaB0aW1lLjxicj4KKzxicj4KK09yLKB5b3WgY2FuoHVzZaB0aGWgJ3ZnLWluLXBsYWNlJ6BzY3JpcHSgd2hpY2igZG9lc6B0aGF0oGZvcqB5b3UuPGJyPgorPGJyPgorSaByZWNvbW1lbmSgY29tcGlsaW5noHdpdGigIm1ha2WgLS1xdWlldCKgdG+gZnVydGhlcqByZWR1Y2WgdGhloGFtb3VudKBvZjxicj4KK291dHB1dKBzcGV3ZWSgb3V0oGR1cmluZ6Bjb21waWxhdGlvbiygbGV0dGluZ6B5b3WgYWN0dWFsbHmgc2VloGFueaBlcnJvcnMsPGJyPgord2FybmluZ3MsoGV0Yy48YnI+Cis8YnI+Cis8YnI+CitCdWlsZGluZ6BhoGRpc3RyaWJ1dGlvbqB0YXJiYWxsPGJyPgorfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fjxicj4KK1RvoGJ1aWxkoGGgZGlzdHJpYnV0aW9uoHRhcmJhbGygZnJvbaB0aGWgdmFsZ3JpbmSgc291cmNlczo8YnI+Cis8YnI+CiugoG1ha2WgZGlzdDxicj4KKzxicj4KK0luoGFkZGl0aW9uoHRvoGNvbXBpbGluZyygbGlua2luZ6BhbmSgcGFja2FnaW5noGV2ZXJ5dGhpbmegdXAsoHRoZaBjb21tYW5kPGJyPgord2lsbKBhbHNvoGF0dGVtcHSgdG+gYnVpbGSgdGhloGRvY3VtZW50YXRpb24uPGJyPgorPGJyPgorSWageW91oG9ubHmgd2FudKB0b6B0ZXN0oHdoZXRoZXKgdGhloGdlbmVyYXRlZKB0YXJiYWxsoGlzoGNvbXBsZXRloGFuZKBydW5zPGJyPgorcmVncmVzc2lvbqB0ZXN0c6BzdWNjZXNzZnVsbHksoGJ1aWxkaW5noGRvY3VtZW50YXRpb26gaXOgbm90oG5lZWRlZC48YnI+Cis8YnI+CiugoG1ha2WgZGlzdKBCVUlMRF9BTExfRE9DUz1ubzxicj4KKzxicj4KK0lmoHlvdaBpbnNpc3Sgb26gYnVpbGRpbmegZG9jdW1lbnRhdGlvbqBzb21loGVtYmFycmFzc2luZ6BpbnN0cnVjdGlvbnM8YnI+CitjYW6gYmWgZm91bmSgaW6gZG9jcy9SRUFETUUuPGJyPgorPGJyPgorPGJyPgorUnVubmluZ6B0aGWgcmVncmVzc2lvbqB0ZXN0czxicj4KK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn48YnI+CitUb6BidWlsZKBhbmSgcnVuoGFsbKB0aGWgcmVncmVzc2lvbqB0ZXN0cyygcnVuoCJtYWtloFstLXF1aWV0XaByZWd0ZXN0Ii48YnI+Cis8YnI+CitUb6BydW6gYaBzdWJzZXSgb2agdGhloHJlZ3Jlc3Npb26gdGVzdHMsoGV4ZWN1dGU6PGJyPgorPGJyPgoroKBwZXJsoHRlc3RzL3ZnX3JlZ3Rlc3SgJmx0O25hbWUmZ3Q7PGJyPgorPGJyPgord2hlcmWgJmx0O25hbWUmZ3Q7oGlzoGGgZGlyZWN0b3J5oChhbGygdGVzdHOgd2l0aGluoHdpbGygYmWgcnVuKaBvcqBhoHNpbmdsZTxicj4KKy52Z3Rlc3SgdGVzdKBmaWxlLKBvcqB0aGWgbmFtZaBvZqBhoHByb2dyYW2gd2hpY2igaGFzoGGgbGlrZS1uYW1lZKAudmd0ZXN0PGJyPgorZmlsZS6goEVnOjxicj4KKzxicj4KK6CgcGVybKB0ZXN0cy92Z19yZWd0ZXN0oG1lbWNoZWNrPGJyPgoroKBwZXJsoHRlc3RzL3ZnX3JlZ3Rlc3SgbWVtY2hlY2svdGVzdHMvYmFkZnJlZS52Z3Rlc3Q8YnI+CiugoHBlcmygdGVzdHMvdmdfcmVndGVzdKBtZW1jaGVjay90ZXN0cy9iYWRmcmVlPGJyPgorPGJyPgorPGJyPgorUnVubmluZ6B0aGWgcGVyZm9ybWFuY2WgdGVzdHM8YnI+Cit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fjxicj4KK1RvoGJ1aWxkoGFuZKBydW6gYWxsoHRoZaBwZXJmb3JtYW5jZaB0ZXN0cyygcnVuoCJtYWtloFstLXF1aWV0XaBwZXJmIi48YnI+Cis8YnI+CitUb6BydW6gYaBzdWJzZXSgb2agdGhloHBlcmZvcm1hbmNloHN1aXRlLKBleGVjdXRlOjxicj4KKzxicj4KK6CgcGVybKBwZXJmL3ZnX3BlcmagJmx0O25hbWUmZ3Q7PGJyPgorPGJyPgord2hlcmWgJmx0O25hbWUmZ3Q7oGlzoGGgZGlyZWN0b3J5oChhbGygdGVzdHOgd2l0aGluoHdpbGygYmWgcnVuKaBvcqBhoHNpbmdsZTxicj4KKy52Z3BlcmagdGVzdKBmaWxlLKBvcqB0aGWgbmFtZaBvZqBhoHByb2dyYW2gd2hpY2igaGFzoGGgbGlrZS1uYW1lZKAudmdwZXJmPGJyPgorZmlsZS6goEVnOjxicj4KKzxicj4KK6CgcGVybKBwZXJmL3ZnX3BlcmagcGVyZi88YnI+CiugoHBlcmygcGVyZi92Z19wZXJmoHBlcmYvYnoyLnZncGVyZjxicj4KK6CgcGVybKBwZXJmL3ZnX3BlcmagcGVyZi9iejI8YnI+Cis8YnI+CitUb6Bjb21wYXJloG11bHRpcGxloHZlcnNpb25zoG9moFZhbGdyaW5kLKB1c2WgdGhloC0tdmc9oG9wdGlvbqBtdWx0aXBsZTxicj4KK3RpbWVzLqCgRm9yoGV4YW1wbGUsoGlmoHlvdaBoYXZloHR3b6BWYWxncmluZHOgbmV4dKB0b6BlYWNooG90aGVyLKBvbmWgaW48YnI+Cit0cnVuazEvoGFuZKBvbmWgaW6gdHJ1bmsyLyygZnJvbaB3aXRoaW6gZWl0aGVyoHRydW5rMS+gb3KgdHJ1bmsyL6Bkb6B0aGlzoHRvPGJyPgorY29tcGFyZaB0aGVtoG9uoGFsbKB0aGWgcGVyZm9ybWFuY2WgdGVzdHM6PGJyPgorPGJyPgoroKBwZXJsoHBlcmYvdmdfcGVyZqAtLXZnPS4uL3RydW5rMaAtLXZnPS4uL3RydW5rMqBwZXJmLzxicj4KKzxicj4KKzxicj4KK0RlYnVnZ2luZ6BWYWxncmluZKB3aXRooEdEQjxicj4KK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fjxicj4KK1RvoGRlYnVnoHRoZaB2YWxncmluZKBsYXVuY2hlcqBwcm9ncmFtoCgmbHQ7cHJlZml4Jmd0Oy9iaW4vdmFsZ3JpbmQpoGp1c3Q8YnI+CitydW6gaXSgdW5kZXKgZ2RioGluoHRoZaBub3JtYWygd2F5Ljxicj4KKzxicj4KK0RlYnVnZ2luZ6B0aGWgbWFpbqBib2R5oG9moHRoZaB2YWxncmluZKBjb2RloChhbmQvb3KgdGhloGNvZGWgZm9yPGJyPgorYaBwYXJ0aWN1bGFyoHRvb2wpoHJlcXVpcmVzoGGgYml0oG1vcmWgdHJpY2tlcnmgYnV0oGNhbqBiZaBhY2hpZXZlZDxicj4KK3dpdGhvdXSgdG9voG11Y2igcHJvYmxlbaBieaBmb2xsb3dpbmegdGhlc2Wgc3RlcHM6PGJyPgorPGJyPgorKDEpoFNldKBWQUxHUklORF9MQVVOQ0hFUqB0b6Bwb2ludKB0b6B0aGWgdmFsZ3JpbmSgZXhlY3V0YWJsZS6goEVnOjxicj4KKzxicj4KK6CgoKCgoGV4cG9ydKBWQUxHUklORF9MQVVOQ0hFUj0vdXNyL2xvY2FsL2Jpbi92YWxncmluZDxicj4KKzxicj4KK6CgoKBvcqBmb3KgYW6gdW5pbnN0YWxsZWSgdmVyc2lvbqBpbqBhoHNvdXJjZaBkaXJlY3RvcnmgJERJUjo8YnI+Cis8YnI+CiugoKCgoKBleHBvcnSgVkFMR1JJTkRfTEFVTkNIRVI9JERJUi9jb3JlZ3JpbmQvdmFsZ3JpbmQ8YnI+Cis8YnI+CisoMimgUnVuoGdkYqBvbqB0aGWgdG9vbKBleGVjdXRhYmxlLqCgRWc6PGJyPgorPGJyPgoroKCgoKCgZ2RioC91c3IvbG9jYWwvbGliL3ZhbGdyaW5kL3BwYzMyLWxpbnV4L2xhY2tleTxicj4KKzxicj4KK6CgoKBvcjxicj4KKzxicj4KK6CgoKCgoGdkYqAkRElSLy5pbl9wbGFjZS94ODYtbGludXgvbWVtY2hlY2s8YnI+Cis8YnI+CisoMymgRG+gImhhbmRsZaBTSUdTRUdWoFNJR0lMTKBub3N0b3Cgbm9wcmludCKgaW6gR0RCoHRvoHByZXZlbnSgR0RCoGZyb208YnI+CiugoKCgc3RvcHBpbmegb26gYaBTSUdTRUdWoG9yoFNJR0lMTDo8YnI+Cis8YnI+CiugoKCgKGdkYimgaGFuZGxloFNJR0lMTKBTSUdTRUdWoG5vc3RvcKBub3ByaW50PGJyPgorPGJyPgorKDQpoFNldKBhbnmgYnJlYWtwb2ludHOgeW91oHdhbnSgYW5koHByb2NlZWSgYXOgbm9ybWFsoGZvcqBnZGIuoFRoZTxicj4KK6CgoKBtYWNyb6BWR18oRlVOQymgaXOgZXhwYW5kZWSgdG+gdmdQbGFpbl9GVU5DLKBzb6BJZqB5b3Wgd2FudKB0b6BzZXQ8YnI+CiugoKCgYaBicmVha3BvaW50oFZHXyhkb19leGVjKSygeW91oGNvdWxkoGRvoGxpa2WgdGhpc6BpbqBHREI6PGJyPgorPGJyPgoroKCgoChnZGIpoGKgdmdQbGFpbl9kb19leGVjPGJyPgorPGJyPgorKDUpoFJ1bqB0aGWgdG9vbKB3aXRooHJlcXVpcmVkoG9wdGlvbnOgKHRoZaAtLXRvb2ygb3B0aW9uoGlzoHJlcXVpcmVkPGJyPgoroKCgoGZvcqBjb3JyZWN0oHNldHVwKSygZS5nLjxicj4KKzxicj4KK6CgoKAoZ2RiKaBydW6gLS10b29sPWxhY2tleaBwd2Q8YnI+Cis8YnI+CitTdGVwc6AoMSktLSgzKaBjYW6gYmWgcHV0oGluoGGgLmdkYmluaXSgZmlsZSygYnV0oGFueaBkaXJlY3RvcnmgbmFtZXOgbXVzdDxicj4KK2JloGZ1bGx5oGV4cGFuZGVkoChpZS6gbm90oGFuoGVudmlyb25tZW50oHZhcmlhYmxlKS48YnI+Cis8YnI+CitBoGRpZmZlcmVudKBhbmSgcG9zc2libHmgZWFzaWVyoHdheaBpc6Bhc6Bmb2xsb3dzOjxicj4KKzxicj4KKygxKaBSdW6gVmFsZ3JpbmSgYXOgbm9ybWFsLKBidXSgYWRkoHRoZaBmbGFnoC0td2FpdC1mb3ItZ2RiPXllcy6goFRoaXM8YnI+CiugoKCgcHV0c6B0aGWgdG9vbKBleGVjdXRhYmxloGludG+gYaB3YWl0oGxvb3Cgc29vbqBhZnRlcqBpdKBnYWluczxicj4KK6CgoKBjb250cm9sLqCgVGhpc6BkZWxheXOgc3RhcnR1cKBmb3KgYaBmZXegc2Vjb25kcy48YnI+Cis8YnI+CisoMimgSW6gYaBkaWZmZXJlbnSgc2hlbGwsoGRvoCJnZGKgL3Byb2MvJmx0O3BpZCZndDsvZXhloCZsdDtwaWQmZ3Q7Iiygd2hlcmU8YnI+CiugoKCgJmx0O3BpZCZndDugeW91oHJlYWSgZnJvbaB0aGWgb3V0cHV0oHByaW50ZWSgYnmgKDEpLqCgVGhpc6BhdHRhY2hlczxicj4KK6CgoKBHREKgdG+gdGhloHRvb2ygZXhlY3V0YWJsZSygd2hpY2igc2hvdWxkoGJloGluoHRoZaBhYm92ZW1lbnRpb25lZDxicj4KK6CgoKB3YWl0oGxvb3AuPGJyPgorPGJyPgorKDMpoERvoCJjb250IqB0b6Bjb250aW51ZS6goEFmdGVyoHRoZaBsb29woGZpbmlzaGVzoHNwaW5uaW5nLKBzdGFydHVwPGJyPgoroKCgoHdpbGygY29udGludWWgYXOgbm9ybWFsLqCgTm90ZaB0aGF0oGNvbW1lbnSgKDMpoGFib3ZloHJloHBhc3Npbmc8YnI+CiugoKCgc2lnbmFsc6BhcHBsaWVzoGhlcmWgdG9vLjxicj4KKzxicj4KKzxicj4KK1NlbGYtaG9zdGluZzxicj4KK35+fn5+fn5+fn5+fjxicj4KK1RoaXOgc2VjdGlvbqBleHBsYWluc6A6PGJyPgoroKAoQSmgSG93oHRvoGNvbmZpZ3VyZaBWYWxncmluZKB0b6BydW6gdW5kZXKgVmFsZ3JpbmQuPGJyPgoroKCgoKCgU3VjaKBhoHNldHVwoGlzoGNhbGxlZKBzZWxmoGhvc3RpbmcsoG9yoG91dGVyL2lubmVyoHNldHVwLjxicj4KK6CgKEIpoEhvd6B0b6BydW6gVmFsZ3JpbmSgcmVncmVzc2lvbqB0ZXN0c6BpbqBhoCdzZWxmLWhvc3RpbmcnoG1vZGUsPGJyPgoroKCgoKCgZS5nLqB0b6B2ZXJpZnmgVmFsZ3JpbmSgaGFzoG5voGJ1Z3Ogc3VjaKBhc6BtZW1vcnmgbGVha3MuPGJyPgoroKAoQymgSG93oHRvoHJ1bqBWYWxncmluZKBwZXJmb3JtYW5jZaB0ZXN0c6BpbqBhoCdzZWxmLWhvc3RpbmcnoG1vZGUsPGJyPgoroKCgoKCgdG+gYW5hbHlzZaBhbmSgb3B0aW1pc2WgdGhloHBlcmZvcm1hbmNloG9moFZhbGdyaW5koGFuZKBpdHOgdG9vbHMuPGJyPgorPGJyPgorKEEpoEhvd6B0b6Bjb25maWd1cmWgVmFsZ3JpbmSgdG+gcnVuoHVuZGVyoFZhbGdyaW5kOjxicj4KKzxicj4KKygxKaBDaGVja6BvdXSgMqB0cmVlcyygIklubmVyIqBhbmSgIk91dGVyIi6goElubmVyoHJ1bnOgdGhloGFwcDxicj4KK6CgoKBkaXJlY3RseS6goE91dGVyoHJ1bnOgSW5uZXIuPGJyPgorPGJyPgorKDIpoENvbmZpZ3VyZaBpbm5lcqB3aXRooC0tZW5hYmxlLWlubmVyoGFuZKBidWlsZC9pbnN0YWxsoGFzoHVzdWFsLjxicj4KKzxicj4KKygzKaBDb25maWd1cmWgT3V0ZXKgbm9ybWFsbHmgYW5koGJ1aWxkL2luc3RhbGygYXOgdXN1YWwuPGJyPgorPGJyPgorKDQpoENob29zZaBhoHZlcnmgc2ltcGxloHByb2dyYW2gKGRhdGUpoGFuZKB0cnk8YnI+Cis8YnI+CiugoKCgb3V0ZXIvLi4uL2Jpbi92YWxncmluZKAtLXNpbS1oaW50cz1lbmFibGUtb3V0ZXKgLS10cmFjZS1jaGlsZHJlbj15ZXOgoFw8YnI+CiugoKCgoKCgLS1zbWMtY2hlY2s9YWxsLW5vbi1maWxloFw8YnI+CiugoKCgoKCgLS1ydW4tbGliYy1mcmVlcmVzPW5voC0tdG9vbD1jYWNoZWdyaW5koC12oFw8YnI+CiugoKCgoKCgaW5uZXIvLi4uL2Jpbi92YWxncmluZKAtLXZnZGItcHJlZml4PS4vaW5uZXKgLS10b29sPW5vbmWgLXagcHJvZzxicj4KKzxicj4KK05vdGU6oFlvdaBtdXN0oHVzZaBhoCJtYWtloGluc3RhbGwiLWVkoHZhbGdyaW5kLjxicj4KK0RvoCpub3QqoHVzZaB2Zy1pbi1wbGFjZaBmb3KgdGhloG91dGVyoHZhbGdyaW5kLjxicj4KKzxicj4KK0lmoHlvdaBvbWl0oHRoZaAtLXRyYWNlLWNoaWxkcmVuPXllcyygeW91J2xsoG9ubHmgbW9uaXRvcqBJbm5lcidzoGxhdW5jaGVyPGJyPgorcHJvZ3JhbSygbm90oGl0c6BzdGFnZTIuoE91dGVyoG5lZWRzoC0tcnVuLWxpYmMtZnJlZXJlcz1ubyygYXOgb3RoZXJ3aXNlPGJyPgoraXSgd2lsbKB0cnmgdG+gZmluZKBhbmSgcnVuoF9fbGliY19mcmVlcmVzoGluoHRoZaBpbm5lciygd2hpbGWgbGliY6Bpc6Bub3Q8YnI+Cit1c2VkoGJ5oHRoZaBpbm5lci6gSW5uZXKgbmVlZHOgLS12Z2RiLXByZWZpeD0uL2lubmVyoHRvoGF2b2lkoGlubmVyPGJyPgorZ2Ric2VydmVyoGNvbGxpZGluZ6B3aXRooG91dGVyoGdkYnNlcnZlci48YnI+CitDdXJyZW50bHksoGlubmVyoGRvZXOgKm5vdCqgdXNloHRoZaBjbGllbnSgcmVxdWVzdKA8YnI+CitWQUxHUklORF9ESVNDQVJEX1RSQU5TTEFUSU9OU6Bmb3KgdGhloEpJVHRlZKBjb2RloG9yoHRoZaBjb2RloHBhdGNoZWSgZm9yPGJyPgordHJhbnNsYXRpb26gY2hhaW5pbmcuoFNvoHRoZaBvdXRlcqBuZWVkc6AtLXNtYy1jaGVjaz1hbGwtbm9uLWZpbGWgdG88YnI+CitkZXRlY3SgdGhloG1vZGlmaWVkoGNvZGUuPGJyPgorPGJyPgorRGVidWdnaW5noHRoZaB3aG9sZaB0aGluZ6BtaWdodKBpbXBseaB0b6B1c2WgdXCgdG+gM6BHREI6PGJyPgoroKAqoGGgR0RCoGF0dGFjaGVkoHRvoHRoZaBPdXRlcqB2YWxncmluZCygYWxsb3dpbmc8YnI+CiugoKCgdG+gZXhhbWluZaB0aGWgc3RhdGWgb2agT3V0ZXIuPGJyPgoroKAqoGGgR0RCoHVzaW5noE91dGVyoGdkYnNlcnZlciygYWxsb3dpbmegdG88YnI+CiugoKCgZXhhbWluZaB0aGWgc3RhdGWgb2agSW5uZXIuPGJyPgoroKAqoGGgR0RCoHVzaW5noElubmVyoGdkYnNlcnZlciygYWxsb3dpbmegdG88YnI+CiugoKCgZXhhbWluZaB0aGWgc3RhdGWgb2agcHJvZy48YnI+Cis8YnI+CitUaGWgd2hvbGWgdGhpbmegaXOgZnJhZ2lsZSygY29uZnVzaW5noGFuZKBzbG93LKBidXSgaXSgZG9lc6B3b3JroHdlbGygZW5vdWdoPGJyPgorZm9yoHlvdaB0b6BnZXSgc29tZaB1c2VmdWygcGVyZm9ybWFuY2WgZGF0YS6goElubmVyoGhhc6Btb3N0oG9mPGJyPgoraXRzoG91dHB1dKAoaWUuoHRob3NloGxpbmVzoGJlZ2lubmluZ6B3aXRooCI9PSZsdDtwaWQmZ3Q7PT0iKaBwcmVmaXhlZKB3aXRooGGgJyZndDsnLDxicj4KK3doaWNooGhlbHBzoGGgbG90LqBIb3dldmVyLKB3aGVuoHJ1bm5pbmegcmVncmVzc2lvbqB0ZXN0c6BpbqBhbqBPdXRlci9Jbm5lcjxicj4KK3NldHVwLKB0aGlzoHByZWZpeKBjYXVzZXOgdGhloHJlZ6B0ZXN0oGRpZmagdG+gZmFpbC6gR2l2ZaA8YnI+CistLXNpbS1oaW50cz1uby1pbm5lci1wcmVmaXigdG+gdGhloElubmVyoHRvoGRpc2FibGWgdGhloHByb2R1Y3Rpb248YnI+CitvZqB0aGWgcHJlZml4oGluoHRoZaBzdGRvdXQvc3RkZXJyoG91dHB1dKBvZqBJbm5lci48YnI+Cis8YnI+CitUaGWgYWxsb2NhdG9yoChjb3JlZ3JpbmQvbV9tYWxsb2NmcmVlLmMpoGlzoGFubm90YXRlZKB3aXRooGNsaWVudKByZXF1ZXN0czxicj4KK3NvoE1lbWNoZWNroGNhbqBiZaB1c2VkoHRvoGZpbmSgbGVha3OgYW5koHVzZaBhZnRlcqBmcmVloGluoGFuoElubmVyPGJyPgorVmFsZ3JpbmQuPGJyPgorPGJyPgorVGhloFZhbGdyaW5koCJiaWegbG9jayKgaXOgYW5ub3RhdGVkoHdpdGigaGVsZ3JpbmSgY2xpZW50oHJlcXVlc3RzPGJyPgorc2+gaGVsZ3JpbmSgYW5koGRyZKBjYW6gYmWgdXNlZKB0b6BmaW5koHJhY2WgY29uZGl0aW9uc6BpbqBhbqBJbm5lcjxicj4KK1ZhbGdyaW5kLjxicj4KKzxicj4KK0FsbKB0aGlzoGhhc6Bub3SgYmVlbqB0ZXN0ZWSgbXVjaCygc2+gZG9uJ3SgYmWgc3VycHJpc2VkoGlmoHlvdaBoaXSgcHJvYmxlbXMuPGJyPgorPGJyPgorV2hlbqB1c2luZ6BzZWxmLWhvc3Rpbmegd2l0aKBhbqBvdXRlcqBDYWxsZ3JpbmSgdG9vbCygdXNloCctLXBvcC1vbi1qdW1wJzxicj4KKyhvbqB0aGWgb3V0ZXIpLqBPdGhlcndpc2UsoENhbGxncmluZKBoYXOgbXVjaKBoaWdoZXKgbWVtb3J5oHJlcXVpcmVtZW50cy6gPGJyPgorPGJyPgorKEIpoFJlZ3Jlc3Npb26gdGVzdHOgaW6gYW6gb3V0ZXIvaW5uZXKgc2V0dXA6PGJyPgorPGJyPgoroFRvoHJ1bqBhbGygdGhloHJlZ3Jlc3Npb26gdGVzdHOgd2l0aKBhbqBvdXRlcqBtZW1jaGVjayygZG+gOjxicj4KK6CgoHBlcmygdGVzdHMvdmdfcmVndGVzdKAtLW91dGVyLXZhbGdyaW5kPS4uL291dGVyLy4uLi9iaW4vdmFsZ3JpbmSgXDxicj4KK6CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKAtLWFsbDxicj4KKzxicj4KK6BUb6BydW6gYaBzcGVjaWZpY6ByZWdyZXNzaW9uoHRlc3RzoHdpdGigYW6gb3V0ZXKgbWVtY2hlY2ssoGRvOjxicj4KK6CgoHBlcmygdGVzdHMvdmdfcmVndGVzdKAtLW91dGVyLXZhbGdyaW5kPS4uL291dGVyLy4uLi9iaW4vdmFsZ3JpbmSgXDxicj4KK6CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKBub25lL3Rlc3RzL2FyZ3Mudmd0ZXN0PGJyPgorPGJyPgoroFRvoHJ1bqByZWdyZXNzaW9uoHRlc3RzoHdpdGigYW5vdGhlcqBvdXRlcqB0b29sOjxicj4KK6CgoHBlcmygdGVzdHMvdmdfcmVndGVzdKAtLW91dGVyLXZhbGdyaW5kPS4uL291dGVyLy4uLi9iaW4vdmFsZ3JpbmSgXDxicj4KK6CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKAtLW91dGVyLXRvb2w9aGVsZ3JpbmSgLS1hbGw8YnI+Cis8YnI+CiugLS1vdXRlci1hcmdzoGFsbG93c6B0b6BnaXZloHNwZWNpZmljoGFyZ3VtZW50c6B0b6B0aGWgb3V0ZXKgdG9vbCw8YnI+CiugcmVwbGFjaW5noHRoZaBkZWZhdWx0oG9uZaBwcm92aWRlZKBieaB2Z19yZWd0ZXN0Ljxicj4KKzxicj4KK05vdGU6oC0tb3V0ZXItdmFsZ3JpbmSgbXVzdKBiZaBhoCJtYWtloGluc3RhbGwiLWVkoHZhbGdyaW5kLjxicj4KK0RvoCpub3QqoHVzZaB2Zy1pbi1wbGFjZS48YnI+Cis8YnI+CitXaGVuoGFuoG91dGVyoHZhbGdyaW5koHJ1bnOgYW6gaW5uZXKgdmFsZ3JpbmQsoGGgcmVncmVzc2lvbqB0ZXN0PGJyPgorcHJvZHVjZXOgb25loGFkZGl0aW9uYWygZmlsZaAmbHQ7dGVzdG5hbWUmZ3Q7Lm91dGVyLmxvZ6B3aGljaKBjb250YWluc6B0aGU8YnI+CitlcnJvcnOgZGV0ZWN0ZWSgYnmgdGhloG91dGVyoHZhbGdyaW5kLqCgRS5nLqBmb3KgYW6gb3V0ZXKgbWVtY2hlY2ssoGl0PGJyPgorY29udGFpbnOgdGhloGxlYWtzoGZvdW5koGluoHRoZaBpbm5lciygZm9yoGFuoG91dGVyoGhlbGdyaW5koG9yoGRyZCw8YnI+CitpdKBjb250YWluc6B0aGWgZGV0ZWN0ZWSgcmFjZaBjb25kaXRpb25zLjxicj4KKzxicj4KK1RoZaBmaWxloHRlc3RzL291dGVyX2lubmVyLnN1cHCgY29udGFpbnOgc3VwcHJlc3Npb25zoGZvcqA8YnI+Cit0aGWgaXJyZWxldmFudKBvcqBiZW5pZ26gZXJyb3JzoGZvdW5koGluoHRoZaBpbm5lci48YnI+Cis8YnI+CisoQymgUGVyZm9ybWFuY2WgdGVzdHOgaW6gYW6gb3V0ZXIvaW5uZXKgc2V0dXA6PGJyPgorPGJyPgoroFRvoHJ1bqBhbGygdGhloHBlcmZvcm1hbmNloHRlc3RzoHdpdGigYW6gb3V0ZXKgY2FjaGVncmluZCygZG+gOjxicj4KK6CgoKBwZXJsoHBlcmYvdmdfcGVyZqAtLW91dGVyLXZhbGdyaW5kPS4uL291dGVyLy4uLi9iaW4vdmFsZ3JpbmSgcGVyZjxicj4KKzxicj4KK6BUb6BydW6gYaBzcGVjaWZpY6BwZXJmoHRlc3SgKGUuZy6gYnoyKaBpbqB0aGlzoHNldHVwLKBkb6A6PGJyPgoroKCgoHBlcmygcGVyZi92Z19wZXJmoC0tb3V0ZXItdmFsZ3JpbmQ9Li4vb3V0ZXIvLi4uL2Jpbi92YWxncmluZKBwZXJmL2J6Mjxicj4KKzxicj4KK6BUb6BydW6gYWxsoHRoZaBwZXJmb3JtYW5jZaB0ZXN0c6B3aXRooGFuoG91dGVyoGNhbGxncmluZCygZG+gOjxicj4KK6CgoKBwZXJsoHBlcmYvdmdfcGVyZqAtLW91dGVyLXZhbGdyaW5kPS4uL291dGVyLy4uLi9iaW4vdmFsZ3JpbmSgXDxicj4KK6CgoKCgoKCgoKCgoKCgoKCgoKCgoKAtLW91dGVyLXRvb2w9Y2FsbGdyaW5koHBlcmY8YnI+Cis8YnI+CitOb3RlOqAtLW91dGVyLXZhbGdyaW5koG11c3SgYmWgYaAibWFrZaBpbnN0YWxsIi1lZKB2YWxncmluZC48YnI+CitEb6Aqbm90KqB1c2WgdmctaW4tcGxhY2UuPGJyPgorPGJyPgoroFRvoGNvbXBhcmWgdGhloHBlcmZvcm1hbmNloG9moG11bHRpcGxloFZhbGdyaW5koHZlcnNpb25zLKBkb6A6PGJyPgoroKCgoHBlcmygcGVyZi92Z19wZXJmoC0tb3V0ZXItdmFsZ3JpbmQ9Li4vb3V0ZXIvLi4uL2Jpbi92YWxncmluZKBcPGJyPgoroKCgoKCgLS1vdXRlci10b29sPWNhbGxncmluZKBcPGJyPgoroKCgoKCgLS12Zz0uLi9pbm5lcl94eHh4oC0tdmc9Li4vaW5uZXJfeXl5eaBwZXJmPGJyPgoroKAod2hlcmWgaW5uZXJfeHh4eKBhbmSgaW5uZXJfeXl5eaBhcmWgdGhloHRvcGxldmVsoGRpcmVjdG9yaWVzoG9mPGJyPgoroKB0aGWgdmVyc2lvbnOgdG+gY29tcGFyZSkuPGJyPgoroKBDYWNoZWdyaW5koGFuZKBjZ19kaWZmoGFyZaBwYXJ0aWN1bGFybHmgaGFuZHmgdG+gb2J0YWluoGGgZGVsdGE8YnI+CiugoGJldHdlZW6gdGhloHR3b6B2ZXJzaW9ucy48YnI+Cis8YnI+CitXaGVuoHRoZaBvdXRlcqB0b29soGlzoGNhbGxncmluZKBvcqBjYWNoZWdyaW5kLKB0aGWgZm9sbG93aW5nPGJyPgorb3V0cHV0oGZpbGVzoHdpbGygYmWgY3JlYXRlZKBmb3KgZWFjaKB0ZXN0Ojxicj4KK6CgoCZsdDtvdXRlcnRvb2xuYW1lJmd0Oy5vdXQuJmx0O2lubmVyX3ZhbGdyaW5kX2RpciZndDsuJmx0O3R0Jmd0Oy4mbHQ7cGVyZnRlc3RuYW1lJmd0Oy4mbHQ7cGlkJmd0Ozxicj4KK6CgoCZsdDtvdXRlcnRvb2xuYW1lJmd0Oy5vdXRlci5sb2cuJmx0O2lubmVyX3ZhbGdyaW5kX2RpciZndDsuJmx0O3R0Jmd0Oy4mbHQ7cGVyZnRlc3RuYW1lJmd0Oy4mbHQ7cGlkJmd0Ozxicj4KK6Aod2hlcmWgdHSgaXOgdGhloHR3b6BsZXR0ZXJzoGFiYnJldmlhdGlvbqBmb3KgdGhloGlubmVyoHRvb2wocymgcnVuKS48YnI+Cis8YnI+CitGb3KgZXhhbXBsZSygdGhloGNvbW1hbmQ8YnI+CiugoKCgcGVybKBwZXJmL3ZnX3BlcmagXDxicj4KK6CgoKCgoC0tb3V0ZXItdmFsZ3JpbmQ9Li4vb3V0ZXJfdHJ1bmsvaW5zdGFsbC9iaW4vdmFsZ3JpbmSgXDxicj4KK6CgoKCgoC0tb3V0ZXItdG9vbD1jYWxsZ3JpbmSgXDxicj4KK6CgoKCgoC0tdmc9Li4vaW5uZXJfdGNoYWluoC0tdmc9Li4vaW5uZXJfdHJ1bmugcGVyZi9tYW55LWxvc3MtcmVjb3Jkczxicj4KKzxicj4KK3Byb2R1Y2VzoHRoZaBmaWxlczxicj4KK6CgoKBjYWxsZ3JpbmQub3V0LmlubmVyX3RjaGFpbi5uby5tYW55LWxvc3MtcmVjb3Jkcy4xODQ2NTxicj4KK6CgoKBjYWxsZ3JpbmQub3V0ZXIubG9nLmlubmVyX3RjaGFpbi5uby5tYW55LWxvc3MtcmVjb3Jkcy4xODQ2NTxicj4KK6CgoKBjYWxsZ3JpbmQub3V0LmlubmVyX3RjaGFpbi5tZS5tYW55LWxvc3MtcmVjb3Jkcy4yMTg5OTxicj4KK6CgoKBjYWxsZ3JpbmQub3V0ZXIubG9nLmlubmVyX3RjaGFpbi5tZS5tYW55LWxvc3MtcmVjb3Jkcy4yMTg5OTxicj4KK6CgoKBjYWxsZ3JpbmQub3V0LmlubmVyX3RydW5rLm5vLm1hbnktbG9zcy1yZWNvcmRzLjIxMjI0PGJyPgoroKCgoGNhbGxncmluZC5vdXRlci5sb2cuaW5uZXJfdHJ1bmsubm8ubWFueS1sb3NzLXJlY29yZHMuMjEyMjQ8YnI+CiugoKCgY2FsbGdyaW5kLm91dC5pbm5lcl90cnVuay5tZS5tYW55LWxvc3MtcmVjb3Jkcy4yMjkxNjxicj4KK6CgoKBjYWxsZ3JpbmQub3V0ZXIubG9nLmlubmVyX3RydW5rLm1lLm1hbnktbG9zcy1yZWNvcmRzLjIyOTE2PGJyPgorPGJyPgorPGJyPgorUHJpbnRpbmegb3V0oHByb2JsZW1hdGljoGJsb2Nrczxicj4KK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn48YnI+CitJZqB5b3Wgd2FudKB0b6BwcmludKBvdXSgYaBkaXNhc3NlbWJseaBvZqBhoHBhcnRpY3VsYXKgYmxvY2ugdGhhdDxicj4KK2NhdXNlc6BhoGNyYXNoLKBkb6B0aGWgZm9sbG93aW5nLjxicj4KKzxicj4KK1RyeaBydW5uaW5noHdpdGigIi0tdmV4LWd1ZXN0LWNoYXNlLXRocmVzaD0woC0tdHJhY2UtZmxhZ3M9MTAwMDAwMDA8YnI+CistLXRyYWNlLW5vdGJlbG93PTk5OTk5OSIuoKBUaGlzoHNob3VsZKBwcmludKBvbmWgbGluZaBmb3KgZWFjaKBibG9jazxicj4KK3RyYW5zbGF0ZWQsoGFuZKB0aGF0oGluY2x1ZGVzoHRoZaBhZGRyZXNzLjxicj4KKzxicj4KK1RoZW6gcmUtcnVuoHdpdGigOTk5OTk5oGNoYW5nZWSgdG+gdGhloGhpZ2hlc3SgYmKgbnVtYmVyoHNob3duLjxicj4KK1RoaXOgd2lsbKBwcmludKB0aGWgb25loGxpbmWgcGVyoGJsb2NrLKBhbmSgYWxzb6B3aWxsoHByaW50oGE8YnI+CitkaXNhc3NlbWJseaBvZqB0aGWgYmxvY2ugaW6gd2hpY2igdGhloGZhdWx0oG9jY3VycmVkLjxicj4KKzxicj4KK6CgoKA8L3A+PC9kaXY+Cis8L2Rpdj4KKzxkaXY+Cis8YnI+PHRhYmxlIGNsYXNzPSJuYXYiIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0iMyIgY2VsbHBhZGRpbmc9IjIiIGJvcmRlcj0iMCIgc3VtbWFyeT0iTmF2aWdhdGlvbiBmb290ZXIiPgorPHRyPgorPHRkIHJvd3NwYW49IjIiIHdpZHRoPSI0MCUiIGFsaWduPSJsZWZ0Ij4KKzxhIGFjY2Vzc2tleT0icCIgaHJlZj0iZGlzdC5yZWFkbWUtbWlzc2luZy5odG1sIj4mbHQ7Jmx0O6A1LqBSRUFETUVfTUlTU0lOR19TWVNDQUxMX09SX0lPQ1RMPC9hPqA8L3RkPgorPHRkIHdpZHRoPSIyMCUiIGFsaWduPSJjZW50ZXIiPjxhIGFjY2Vzc2tleT0idSIgaHJlZj0iZGlzdC5odG1sIj5VcDwvYT48L3RkPgorPHRkIHJvd3NwYW49IjIiIHdpZHRoPSI0MCUiIGFsaWduPSJyaWdodCI+oDxhIGFjY2Vzc2tleT0ibiIgaHJlZj0iZGlzdC5yZWFkbWUtcGFja2FnZXJzLmh0bWwiPjcuoFJFQURNRV9QQUNLQUdFUlOgJmd0OyZndDs8L2E+Cis8L3RkPgorPC90cj4KKzx0cj48dGQgd2lkdGg9IjIwJSIgYWxpZ249ImNlbnRlciI+PGEgYWNjZXNza2V5PSJoIiBocmVmPSJpbmRleC5odG1sIj5Ib21lPC9hPjwvdGQ+PC90cj4KKzwvdGFibGU+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL2RvY3MvaHRtbC9kaXN0LnJlYWRtZS1taXBzLmh0bWwgYi9kb2NzL2h0bWwvZGlzdC5yZWFkbWUtbWlwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJkN2M0NzcKLS0tIC9kZXYvbnVsbAorKysgYi9kb2NzL2h0bWwvZGlzdC5yZWFkbWUtbWlwcy5odG1sCkBAIC0wLDAgKzEsODkgQEAKKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj4KKzx0aXRsZT4xMS6gUkVBRE1FLm1pcHM8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0idmdfYmFzaWMuY3NzIj4KKzxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iRG9jQm9vayBYU0wgU3R5bGVzaGVldHMgVjEuNzguMSI+Cis8bGluayByZWw9ImhvbWUiIGhyZWY9ImluZGV4Lmh0bWwiIHRpdGxlPSJWYWxncmluZCBEb2N1bWVudGF0aW9uIj4KKzxsaW5rIHJlbD0idXAiIGhyZWY9ImRpc3QuaHRtbCIgdGl0bGU9IlZhbGdyaW5kIERpc3RyaWJ1dGlvbiBEb2N1bWVudHMiPgorPGxpbmsgcmVsPSJwcmV2IiBocmVmPSJkaXN0LnJlYWRtZS1hbmRyb2lkX2VtdWxhdG9yLmh0bWwiIHRpdGxlPSIxMC6gUkVBRE1FLmFuZHJvaWRfZW11bGF0b3IiPgorPGxpbmsgcmVsPSJuZXh0IiBocmVmPSJkaXN0LnJlYWRtZS1zb2xhcmlzLmh0bWwiIHRpdGxlPSIxMi6gUkVBRE1FLnNvbGFyaXMiPgorPC9oZWFkPgorPGJvZHkgYmdjb2xvcj0id2hpdGUiIHRleHQ9ImJsYWNrIiBsaW5rPSIjMDAwMEZGIiB2bGluaz0iIzg0MDA4NCIgYWxpbms9IiMwMDAwRkYiPgorPGRpdj48dGFibGUgY2xhc3M9Im5hdiIgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSIzIiBjZWxscGFkZGluZz0iMyIgYm9yZGVyPSIwIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciI+PHRyPgorPHRkIHdpZHRoPSIyMnB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJwIiBocmVmPSJkaXN0LnJlYWRtZS1hbmRyb2lkX2VtdWxhdG9yLmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvcHJldi5wbmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIyMSIgYm9yZGVyPSIwIiBhbHQ9IlByZXYiPjwvYT48L3RkPgorPHRkIHdpZHRoPSIyNXB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJkaXN0Lmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvdXAucG5nIiB3aWR0aD0iMjEiIGhlaWdodD0iMTgiIGJvcmRlcj0iMCIgYWx0PSJVcCI+PC9hPjwvdGQ+Cis8dGQgd2lkdGg9IjMxcHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvaG9tZS5wbmciIHdpZHRoPSIyNyIgaGVpZ2h0PSIyMCIgYm9yZGVyPSIwIiBhbHQ9IlVwIj48L2E+PC90ZD4KKzx0aCBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+VmFsZ3JpbmQgRGlzdHJpYnV0aW9uIERvY3VtZW50czwvdGg+Cis8dGQgd2lkdGg9IjIycHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImRpc3QucmVhZG1lLXNvbGFyaXMuaHRtbCI+PGltZyBzcmM9ImltYWdlcy9uZXh0LnBuZyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjIxIiBib3JkZXI9IjAiIGFsdD0iTmV4dCI+PC9hPjwvdGQ+Cis8L3RyPjwvdGFibGU+PC9kaXY+Cis8ZGl2IGNsYXNzPSJjaGFwdGVyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMSBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0iZGlzdC5yZWFkbWUtbWlwcyI+PC9hPjExLqBSRUFETUUubWlwczwvaDE+PC9kaXY+PC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJsaXRlcmFsbGF5b3V0Ij48cD48YnI+CiugoKCgoKA8YnI+CitTdXBwb3J0ZWSgcGxhdGZvcm1zPGJyPgorLS0tLS0tLS0tLS0tLS0tLS0tLTxicj4KKy2gTUlQUzMyoGFuZKBNSVBTNjSgcGxhdGZvcm1zoGFyZaBjdXJyZW50bHmgc3VwcG9ydGVkLjxicj4KKy2gQm90aKBsaXR0bGUtZW5kaWFuoGFuZKBiaWctZW5kaWFuoGNvcmVzoGFyZaBzdXBwb3J0ZWQuPGJyPgorLaBNSVBToERTUKBBU0Wgb26gTUlQUzMyoHBsYXRmb3Jtc6Bpc6BzdXBwb3J0ZWQuPGJyPgorPGJyPgorPGJyPgorQnVpbGRpbmegVqBmb3KgTUlQUzxicj4KKy0tLS0tLS0tLS0tLS0tLS0tLS08YnI+CistoE5hdGl2ZaBidWlsZKBpc6BhdmFpbGFibGWgZm9yoGFsbKBzdXBwb3J0ZWSgcGxhdGZvcm1zLqBUaGWgYnVpbGSgc3lzdGVtPGJyPgorZXhwZWN0c6B0aGF0oG5hdGl2ZaBHQ0OgaXOgY29uZmlndXJlZKBjb3JyZWN0bHmgYW5koG9wdGltaXplZKBmb3KgdGhloHBsYXRmb3JtLjxicj4KK1lldCygdGhpc6BtYXmgbm90oGJloHRoZaBjYXNloHdpdGigc29tZaBEZWJpYW6gZGlzdHJpYnV0aW9uc6B3aGljaKBjb25maWd1cmU8YnI+CitHQ0OgdG+gY29tcGlsZaB0b6AibWlwczEioGJ5oGRlZmF1bHQuoERlcGVuZGluZ6BvbqBhoHRhcmdldKBwbGF0Zm9ybSygdXNpbmc8YnI+CitDRkxBR1M9Ii1taXBzMzJyMiIsoENGTEFHUz0iLW1pcHMzMiKgb3KgQ0ZMQUdTPSItbWlwczY0IqBvcjxicj4KK0NGTEFHUz0iLW1pcHM2NKAtbWFiaT02NCKgd2lsbKBkb6B0aGWgdHJpY2ugYW5koGNvbXBpbGWgVmFsZ3JpbmSgY29ycmVjdGx5Ljxicj4KKzxicj4KKy2gVXNloG9moGNyb3NzLXRvb2xjaGFpbqBpc6BzdXBwb3J0ZWSgYXOgd2VsbC48YnI+CistoEV4YW1wbGWgb2agY29uZmlndXJloGxpbmWgYW5koGFkZGl0aW9uYWygY29uZmlndXJloG9wdGlvbnM6PGJyPgorPGJyPgoroKCgJKAuL2NvbmZpZ3VyZaAtLWhvc3Q9bWlwc2VsLWxpbnV4LWdudaAtLXByZWZpeD0mbHQ7cGF0aF90b19pbnN0YWxsX2RpcmVjdG9yeSZndDs8YnI+Cis8YnI+CiugKqAtLWhvc3Q9bWlwcy1saW51eC1nbnWgaXOgbmVjZXNzYXJ5oG9ubHmgaWagVmFsZ3JpbmSgaXOgYnVpbHSgb26gcGxhdGZvcm08YnI+CiugoKBvdGhlcqB0aGVuoE1JUFMsoHRvb2xzoGZvcqBidWlsZGluZ6BNSVBToGFwcGxpY2F0aW9uoGhhdmWgdG+gYmWgaW6gUEFUSC48YnI+Cis8YnI+CiugKqAtLWhvc3Q9bWlwcy1saW51eC1nbnWgaXOgbmVjZXNzYXJ5oGlmoHlvdaBjb21waWxloGl0oHdpdGigY3Jvc3OgdG9vbGNoYWluPGJyPgoroKCgY29tcGlsZXKgZm9yoGJpZ6BlbmRpYW6gcGxhdGZvcm0uPGJyPgorPGJyPgoroCqgLS1ob3N0PW1pcHNlbC1saW51eC1nbnWgaXOgbmVjZXNzYXJ5oGlmoHlvdaBjb21waWxloGl0oHdpdGigY3Jvc3OgdG9vbGNoYWluPGJyPgoroKCgY29tcGlsZXKgZm9yoGxpdHRsZaBlbmRpYW6gcGxhdGZvcm0uPGJyPgorPGJyPgoroCqgLS1idWlsZD1taXBzLWxpbnV4oGlzoG5lZWRlZKBpZqB5b3Wgd2FudKB0b6BidWlsZKBpdKBmb3KgTUlQUzMyoG9uoDY0LWJpdDxicj4KK6CgoE1JUFOgc3lzdGVtLjxicj4KKzxicj4KK6AqoElmoHlvdaBhcmWgY29tcGlsaW5noFZhbGdyaW5koGZvcqBtaXBzMzKgd2l0aKBnY2OgdmVyc2lvbqBvbGRlcqB0aGVuPGJyPgoroKCgZ2NjoChHQ0MpoDQuNS4xLKB5b3WgbXVzdKBzcGVjaWZ5oENGTEFHUz0iLW1pcHMzMnIyoC1tcGx0IiygZS5nLjxicj4KKzxicj4KK6CgoC4vY29uZmlndXJloC0tcHJlZml4PSZsdDtwYXRoX3RvX2luc3RhbGxfZGlyZWN0b3J5Jmd0Ozxicj4KK6CgoENGTEFHUz0iLW1pcHMzMnIyoC1tcGx0Ijxicj4KKzxicj4KKzxicj4KK0xpbWl0YXRpb25zPGJyPgorLS0tLS0tLS0tLS08YnI+CistoFNvbWWgZ2RioHRlc3RzoHdpbGygZmFpbKB3aGVuoGdkYqAoR0RCKaBvbGRlcqB0aGFuoDcuNaBpc6B1c2VkoGFuZKBnZGKgaXM8YnI+CiugoG5vdKBjb21waWxlZKB3aXRooCctLXdpdGgtZXhwYXQ9eWVzJy48YnI+CistoFlvdaBjYW6gbm90oGNvbXBpbGWgdGVzdHOgZm9yoERTUKBBU0WgaWageW91oGFyZaB1c2luZ6BnY2OgKEdDQymgb2xkZXI8YnI+CiugoHRoZW6gNC42LjGgZHVloHRvoGGgYnVnoGluoHRoZaB0b29sY2hhaW4uPGJyPgorLaBPbGRlcqBHQ0OgbWF5oGhhdmWgaXNzdWVzoHdpdGigc29tZaBpbmxpbmWgYXNzZW1ibHmgYmxvY2tzLqBHZXSgYaB0b29sY2hhaW48YnI+CiugoGJhc2VkoG9uoG5ld2VyoEdDQ6B2ZXJzaW9ucyygaWagcG9zc2libGUuPGJyPgorPGJyPgoroKCgoDwvcD48L2Rpdj4KKzwvZGl2PgorPGRpdj4KKzxicj48dGFibGUgY2xhc3M9Im5hdiIgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSIzIiBjZWxscGFkZGluZz0iMiIgYm9yZGVyPSIwIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGZvb3RlciI+Cis8dHI+Cis8dGQgcm93c3Bhbj0iMiIgd2lkdGg9IjQwJSIgYWxpZ249ImxlZnQiPgorPGEgYWNjZXNza2V5PSJwIiBocmVmPSJkaXN0LnJlYWRtZS1hbmRyb2lkX2VtdWxhdG9yLmh0bWwiPiZsdDsmbHQ7oDEwLqBSRUFETUUuYW5kcm9pZF9lbXVsYXRvcjwvYT6gPC90ZD4KKzx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0iY2VudGVyIj48YSBhY2Nlc3NrZXk9InUiIGhyZWY9ImRpc3QuaHRtbCI+VXA8L2E+PC90ZD4KKzx0ZCByb3dzcGFuPSIyIiB3aWR0aD0iNDAlIiBhbGlnbj0icmlnaHQiPqA8YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImRpc3QucmVhZG1lLXNvbGFyaXMuaHRtbCI+MTIuoFJFQURNRS5zb2xhcmlzoCZndDsmZ3Q7PC9hPgorPC90ZD4KKzwvdHI+Cis8dHI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJjZW50ZXIiPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iaW5kZXguaHRtbCI+SG9tZTwvYT48L3RkPjwvdHI+Cis8L3RhYmxlPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9kb2NzL2h0bWwvZGlzdC5yZWFkbWUtbWlzc2luZy5odG1sIGIvZG9jcy9odG1sL2Rpc3QucmVhZG1lLW1pc3NpbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MjczYjUxCi0tLSAvZGV2L251bGwKKysrIGIvZG9jcy9odG1sL2Rpc3QucmVhZG1lLW1pc3NpbmcuaHRtbApAQCAtMCwwICsxLDI3NSBAQAorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiPgorPHRpdGxlPjUuoFJFQURNRV9NSVNTSU5HX1NZU0NBTExfT1JfSU9DVEw8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0idmdfYmFzaWMuY3NzIj4KKzxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iRG9jQm9vayBYU0wgU3R5bGVzaGVldHMgVjEuNzguMSI+Cis8bGluayByZWw9ImhvbWUiIGhyZWY9ImluZGV4Lmh0bWwiIHRpdGxlPSJWYWxncmluZCBEb2N1bWVudGF0aW9uIj4KKzxsaW5rIHJlbD0idXAiIGhyZWY9ImRpc3QuaHRtbCIgdGl0bGU9IlZhbGdyaW5kIERpc3RyaWJ1dGlvbiBEb2N1bWVudHMiPgorPGxpbmsgcmVsPSJwcmV2IiBocmVmPSJkaXN0LnJlYWRtZS5odG1sIiB0aXRsZT0iNC6gUkVBRE1FIj4KKzxsaW5rIHJlbD0ibmV4dCIgaHJlZj0iZGlzdC5yZWFkbWUtZGV2ZWxvcGVycy5odG1sIiB0aXRsZT0iNi6gUkVBRE1FX0RFVkVMT1BFUlMiPgorPC9oZWFkPgorPGJvZHkgYmdjb2xvcj0id2hpdGUiIHRleHQ9ImJsYWNrIiBsaW5rPSIjMDAwMEZGIiB2bGluaz0iIzg0MDA4NCIgYWxpbms9IiMwMDAwRkYiPgorPGRpdj48dGFibGUgY2xhc3M9Im5hdiIgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSIzIiBjZWxscGFkZGluZz0iMyIgYm9yZGVyPSIwIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciI+PHRyPgorPHRkIHdpZHRoPSIyMnB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJwIiBocmVmPSJkaXN0LnJlYWRtZS5odG1sIj48aW1nIHNyYz0iaW1hZ2VzL3ByZXYucG5nIiB3aWR0aD0iMTgiIGhlaWdodD0iMjEiIGJvcmRlcj0iMCIgYWx0PSJQcmV2Ij48L2E+PC90ZD4KKzx0ZCB3aWR0aD0iMjVweCIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPjxhIGFjY2Vzc2tleT0idSIgaHJlZj0iZGlzdC5odG1sIj48aW1nIHNyYz0iaW1hZ2VzL3VwLnBuZyIgd2lkdGg9IjIxIiBoZWlnaHQ9IjE4IiBib3JkZXI9IjAiIGFsdD0iVXAiPjwvYT48L3RkPgorPHRkIHdpZHRoPSIzMXB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJoIiBocmVmPSJpbmRleC5odG1sIj48aW1nIHNyYz0iaW1hZ2VzL2hvbWUucG5nIiB3aWR0aD0iMjciIGhlaWdodD0iMjAiIGJvcmRlcj0iMCIgYWx0PSJVcCI+PC9hPjwvdGQ+Cis8dGggYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPlZhbGdyaW5kIERpc3RyaWJ1dGlvbiBEb2N1bWVudHM8L3RoPgorPHRkIHdpZHRoPSIyMnB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJuIiBocmVmPSJkaXN0LnJlYWRtZS1kZXZlbG9wZXJzLmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvbmV4dC5wbmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIyMSIgYm9yZGVyPSIwIiBhbHQ9Ik5leHQiPjwvYT48L3RkPgorPC90cj48L3RhYmxlPjwvZGl2PgorPGRpdiBjbGFzcz0iY2hhcHRlciI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDEgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9ImRpc3QucmVhZG1lLW1pc3NpbmciPjwvYT41LqBSRUFETUVfTUlTU0lOR19TWVNDQUxMX09SX0lPQ1RMPC9oMT48L2Rpdj48L2Rpdj48L2Rpdj4KKzxkaXYgY2xhc3M9ImxpdGVyYWxsYXlvdXQiPjxwPjxicj4KK6CgoKCgoDxicj4KK0RlYWxpbmegd2l0aKBtaXNzaW5noHN5c3RlbaBjYWxsoG9yoGlvY3RsoHdyYXBwZXJzoGluoFZhbGdyaW5kPGJyPgorfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn48YnI+CitZb3UncmWgcHJvYmFibHmgcmVhZGluZ6B0aGlzoGJlY2F1c2WgVmFsZ3JpbmSgYm9tYmVkoG91dKB3aGlsc3Q8YnI+CitydW5uaW5noHlvdXKgcHJvZ3JhbSygYW5koGFkdmlzZWSgeW91oHRvoHJlYWSgdGhpc6BmaWxlLqCgVGhloGdvb2Q8YnI+CituZXdzoGlzoHRoYXQsoGluoGdlbmVyYWwsoGl0J3OgZWFzeaB0b6B3cml0ZaB0aGWgbWlzc2luZ6BzeXNjYWxsoG9yPGJyPgoraW9jdGygd3JhcHBlcnOgeW91oG5lZWQsoHNvoHRoYXSgeW91oGNhbqBjb250aW51ZaB5b3VyoGRlYnVnZ2luZy6goElmPGJyPgoreW91oHNlbmSgdGhloHJlc3VsdGluZ6BwYXRjaGVzoHRvoG1lLKB0aGVuoHlvdSdsbKBiZaBkb2luZ6BhoGZhdm91cqB0bzxicj4KK2FsbKBmdXR1cmWgVmFsZ3JpbmSgdXNlcnOgdG9vLjxicj4KKzxicj4KK05vdGWgdGhhdKBhbqAiaW9jdGwioGlzoGp1c3SgYaBzcGVjaWFsoGtpbmSgb2agc3lzdGVtoGNhbGwsoHJlYWxseTugc288YnI+Cit0aGVyZSdzoG5vdKBhoGxvdKBvZqBuZWVkoHRvoGRpc3Rpbmd1aXNooHRoZW2gKGF0oGxlYXN0oGNvbmNlcHR1YWxseSk8YnI+CitpbqB0aGWgZGlzY3Vzc2lvbqB0aGF0oGZvbGxvd3MuPGJyPgorPGJyPgorQWxsoHRoaXOgbWFjaGluZXJ5oGlzoGluoGNvcmVncmluZC9tX3N5c3dyYXAuPGJyPgorPGJyPgorPGJyPgorV2hhdKBhcmWgc3lzY2FsbC9pb2N0bKB3cmFwcGVycz+goFdoYXSgZG+gdGhleaBkbz88YnI+Cit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fjxicj4KK1ZhbGdyaW5koGRvZXOgd2hhdKBpdKBkb2VzLKBpbqBwYXJ0LKBieaBrZWVwaW5noHRyYWNroG9moGV2ZXJ5dGhpbmegeW91cjxicj4KK3Byb2dyYW2gZG9lcy6goFdoZW6gYaBzeXN0ZW2gY2FsbKBoYXBwZW5zLKBmb3KgZXhhbXBsZaBhoHJlcXVlc3SgdG+gcmVhZDxicj4KK3BhcnSgb2agYaBmaWxlLKBjb250cm9soHBhc3Nlc6B0b6B0aGWgTGludXiga2VybmVsLKB3aGljaKBmdWxmaWxsc6B0aGU8YnI+CityZXF1ZXN0LKBhbmSgcmV0dXJuc6Bjb250cm9soHRvoHlvdXKgcHJvZ3JhbS6goFRoZaBwcm9ibGVtoGlzoHRoYXSgdGhlPGJyPgora2VybmVsoHdpbGygb2Z0ZW6gY2hhbmdloHRoZaBzdGF0dXOgb2agc29tZaBwYXJ0oG9moHlvdXKgcHJvZ3JhbSdzoG1lbW9yeTxicj4KK2FzoGGgcmVzdWx0LKBhbmSgdG9vbHOgKGluc3RydW1lbnRhdGlvbqBwbHVnLWlucymgbWF5oG5lZWSgdG+ga25vd6BhYm91dDxicj4KK3RoaXMuPGJyPgorPGJyPgorU3lzY2FsbKBhbmSgaW9jdGygd3JhcHBlcnOgaGF2ZaB0d2+gam9iczqgPGJyPgorPGJyPgorMS6gVGVsbKBhoHRvb2ygd2hhdCdzoGFib3V0oHRvoGhhcHBlbiygYmVmb3JloHRoZaBzeXNjYWxsoHRha2VzoHBsYWNlLqCgQTxicj4KK6CgoHRvb2ygY291bGSgcGVyZm9ybaBjaGVja3OgYmVmb3JlaGFuZCygZWcuoGlmoG1lbW9yeaBhYm91dKB0b6BiZaB3cml0dGVuPGJyPgoroKCgaXOgYWN0dWFsbHmgd3JpdGVhYmxlLqCgVGhpc6BwYXJ0oGlzoHVzZWZ1bCygYnV0oG5vdKBzdHJpY3RseTxicj4KK6CgoGVzc2VudGlhbC48YnI+Cis8YnI+CisyLqBUZWxsoGGgdG9vbKB3aGF0oGp1c3SgaGFwcGVuZWQsoGFmdGVyoGGgc3lzY2FsbKB0YWtlc6BwbGFjZS6goFRoaXOgaXM8YnI+CiugoKBzb6BpdKBjYW6gdXBkYXRloGl0c6B2aWV3oG9moHRoZaBwcm9ncmFtJ3Ogc3RhdGUsoGVnLqB0aGF0oG1lbW9yeaBoYXM8YnI+CiugoKBqdXN0oGJlZW6gd3JpdHRlbqB0by6goFRoaXOgc3RlcKBpc6Blc3NlbnRpYWwuPGJyPgorPGJyPgorVGhloCJoYXBwZW5pbmdzIqBtb3N0bHmgaW52b2x2ZaByZWFkaW5nL3dyaXRpbmegb2agbWVtb3J5Ljxicj4KKzxicj4KK1NvLKBsZXQnc6Bsb29roGF0oGFuoGV4YW1wbGWgb2agYaB3cmFwcGVyoGZvcqBhoHN5c3RlbaBjYWxsoHdoaWNoPGJyPgorc2hvdWxkoGJloGZhbWlsaWFyoHRvoG1hbnmgVW5peKBwcm9ncmFtbWVycy48YnI+Cis8YnI+Cis8YnI+CitUaGWgc3lzY2FsbKB3cmFwcGVyoGZvcqB0aW1lKCk8YnI+Cit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn48YnI+CitUaGWgd3JhcHBlcqBmb3KgdGhloHRpbWWgc3lzdGVtoGNhbGygbG9va3OgbGlrZaB0aGlzOjxicj4KKzxicj4KK6CgUFJFKHN5c190aW1lKTxicj4KK6Cgezxicj4KK6CgoKCgLyqgdGltZV90oHRpbWUodGltZV90oCp0KTugKi88YnI+CiugoKCgoFBSSU5UKCJzeXNfdGltZaAooCVwoCkiLEFSRzEpOzxicj4KK6CgoKCgUFJFX1JFR19SRUFEMShsb25nLKAidGltZSIsoGludKAqLKB0KTs8YnI+CiugoKCgoGlmoChBUkcxoCE9oDApoHs8YnI+CiugoKCgoKCgoFBSRV9NRU1fV1JJVEUooCJ0aW1lKHQpIiygQVJHMSygc2l6ZW9mKHZraV90aW1lX3QpoCk7PGJyPgoroKCgoKB9PGJyPgoroKB9PGJyPgorPGJyPgoroKBQT1NUKHN5c190aW1lKTxicj4KK6Cge6CgPGJyPgoroKCgoKBpZqAoQVJHMaAhPaAwKaB7PGJyPgoroKCgoKCgoKBQT1NUX01FTV9XUklURSigQVJHMSygc2l6ZW9mKHZraV90aW1lX3QpoCk7PGJyPgoroKCgoKB9PGJyPgoroKB9PGJyPgorPGJyPgorVGhloGZpcnN0oHRoaW5noHdloGRvoGhhcHBlbnOgYmVmb3JloHRoZaBzeXNjYWxsoG9jY3VycyygaW6gdGhloFBSRSgpoGZ1bmN0aW9uLjxicj4KK1RoZaBQUkUoKaBmdW5jdGlvbqB0eXBpY2FsbHmgc3RhcnRzoHdpdGigaW52b2tpbmegdG+gdGhloFBSSU5UKCmgbWFjcm8uoFRoaXM8YnI+CitQUklOVCgpoG1hY3JvoGltcGxlbWVudHOgc3VwcG9ydKBmb3KgdGhloC0tdHJhY2Utc3lzY2FsbHOgY29tbWFuZKBsaW5loG9wdGlvbi48YnI+CitOZXh0LKB0aGWgdG9vbKBpc6B0b2xkoHRoZaByZXR1cm6gdHlwZaBvZqB0aGWgc3lzY2FsbCygdGhhdKB0aGWgc3lzY2FsbKBoYXM8YnI+CitvbmWgYXJndW1lbnQsoHRoZaB0eXBloG9moHRoZaBzeXNjYWxsoGFyZ3VtZW50oGFuZKB0aGF0oHRoZaBhcmd1bWVudKBpc6BiZWluZzxicj4KK3JlYWSgZnJvbaBhoHJlZ2lzdGVyOjxicj4KKzxicj4KK6CgoKCgUFJFX1JFR19SRUFEMShsb25nLKAidGltZSIsoGludKAqLKB0KTs8YnI+Cis8YnI+CitOZXh0LKBpZqBhoG5vbi1OVUxMoGJ1ZmZlcqBpc6BwYXNzZWSgaW6gYXOgdGhloGFyZ3VtZW50LKB0ZWxsoHRoZaB0b29soHRoYXSgdGhlPGJyPgorYnVmZmVyoGlzoGFib3V0oHRvoGJloHdyaXR0ZW6gdG86PGJyPgorPGJyPgoroKCgoKBpZqAoQVJHMaAhPaAwKaB7PGJyPgoroKCgoKCgoKBQUkVfTUVNX1dSSVRFKKAidGltZSIsoEFSRzEsoHNpemVvZih2a2lfdGltZV90KaApOzxicj4KK6CgoKCgfTxicj4KKzxicj4KK0ZpbmFsbHksoHRoZaByZWFsbHmgaW1wb3J0YW50oGJpdCygYWZ0ZXKgdGhloHN5c2NhbGygb2NjdXJzLKBpbqB0aGWgUE9TVCgpPGJyPgorZnVuY3Rpb246oKBpZiygYW5koG9ubHmgaWYsoHRoZaBzeXN0ZW2gY2FsbKB3YXOgc3VjY2Vzc2Z1bCygdGVsbKB0aGWgdG9vbKB0aGF0PGJyPgordGhloG1lbW9yeaB3YXOgd3JpdHRlbjo8YnI+Cis8YnI+CiugoKCgoGlmoChBUkcxoCE9oDApoHs8YnI+CiugoKCgoKCgoFBPU1RfTUVNX1dSSVRFKKBBUkcxLKBzaXplb2YodmtpX3RpbWVfdCmgKTs8YnI+CiugoKCgoH08YnI+Cis8YnI+CitUaGWgUE9TVCgpoGZ1bmN0aW9uoHdvbid0oGJloGNhbGxlZKBpZqB0aGWgc3lzY2FsbKBmYWlsZWQsoHNvoHlvdTxicj4KK2Rvbid0oG5lZWSgdG+gd29ycnmgYWJvdXSgY2hlY2tpbmegdGhhdKBpbqB0aGWgUE9TVCgpoGZ1bmN0aW9uLjxicj4KKyhOb3RlOqB0aGlzoGlzoHNvbWV0aW1lc6BhoGJ1Zzugc29tZaBzeXNjYWxsc6Bkb6ByZXR1cm6gcmVzdWx0c6B3aGVuPGJyPgordGhleaAiZmFpbCKgLaBmb3KgZXhhbXBsZSygbmFub3NsZWVwoHJldHVybnOgdGhloGFtb3VudKBvZqB1bnNsZXB0PGJyPgordGltZaBpZqBpbnRlcnJ1cHRlZC6gVE9ETzqgYWRkoGFub3RoZXKgcGVyLXN5c2NhbGygZmxhZ6Bmb3KgdGhpczxicj4KK2Nhc2UuKTxicj4KKzxicj4KK05vdGWgdGhhdKB3ZaB1c2WgdGhloHR5cGWgJ3ZraV90aW1lX3QnLqCgVGhpc6Bpc6BhoGNvcHmgb2agdGhloGtlcm5lbDxicj4KK3R5cGUsoHdpdGigJ3ZraV8noHByZWZpeGVkLqCgT3VyoGNvcGllc6BvZqBzdWNooHR5cGVzoGFyZaBrZXB0oGluoHRoZTxicj4KK2FwcHJvcHJpYXRloHZraSouaKBmaWxlKHMpLqCgV2WgZG9uJ3SgaW5jbHVkZaBrZXJuZWygaGVhZGVyc6BvcqBnbGliY6BoZWFkZXJzPGJyPgorZGlyZWN0bHkuPGJyPgorPGJyPgorPGJyPgorV3JpdGluZ6B5b3VyoG93bqBzeXNjYWxsoHdyYXBwZXJzoChzZWWgYmVsb3egZm9yoGlvY3RsoHdyYXBwZXJzKTxicj4KK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn48YnI+CitJZqBWYWxncmluZKB0ZWxsc6B5b3WgdGhhdKBzeXN0ZW2gY2FsbKBOTk6gaXOgdW5pbXBsZW1lbnRlZCygZG+gdGhloDxicj4KK2ZvbGxvd2luZzo8YnI+Cis8YnI+CisxLqCgRmluZKBvdXSgdGhloG5hbWWgb2agdGhloHN5c3RlbaBjYWxsOjxicj4KKzxicj4KK6CgoKCgoKBncmVwoE5OTqAvdXNyL2luY2x1ZGUvYXNtL3VuaXN0ZCouaDxicj4KKzxicj4KK6CgoKBUaGlzoHNob3VsZKB0ZWxsoHlvdaBzb21ldGhpbmegbGlrZaCgX19OUl9teXN5c2NhbGxuYW1lLjxicj4KK6CgoKBDb3B5oHRoaXOgZW50cnmgdG+gaW5jbHVkZS92a2kvdmtpLXNjbnVtcy0kKFZHX1BMQVRGT1JNKS5oLjxicj4KKzxicj4KKzxicj4KKzIuoKBEb6AnbWFuoDKgbXlzeXNjYWxsbmFtZSegdG+gZ2V0oHNvbWWgaWRlYaBvZqB3aGF0oHRoZaBzeXNjYWxsPGJyPgoroKCgoGRvZXMuoKBOb3RloHRoYXSgdGhloGFjdHVhbKBrZXJuZWygaW50ZXJmYWNloGNhbqBkaWZmZXKgZnJvbaB0aGlzLDxicj4KK6CgoKBzb6B5b3WgbWlnaHSgYWxzb6B3YW50oHRvoGNoZWNroGGgdmVyc2lvbqBvZqB0aGWgTGludXiga2VybmVsPGJyPgoroKCgoHNvdXJjZS48YnI+Cis8YnI+CiugoKCgTk9URTqgYW55oHN5c2NhbGygd2hpY2igaGFzoHNvbWV0aGluZ6B0b6Bkb6B3aXRooHNpZ25hbHOgb3I8YnI+CiugoKCgdGhyZWFkc6Bpc6Bwcm9iYWJseaAic3BlY2lhbCIsoGFuZKBuZWVkc6Btb3JloGNhcmVmdWygaGFuZGxpbmcuPGJyPgoroKCgoFBvc3Sgc29tZXRoaW5noHRvoHZhbGdyaW5kLWRldmVsb3BlcnOgaWageW91oGFyZW4ndKBzdXJlLjxicj4KKzxicj4KKzxicj4KKzMuoKBBZGSgYaBjYXNloHRvoHRoZaBhbHJlYWR5LWh1Z2WgY29sbGVjdGlvbqBvZqB3cmFwcGVyc6BpbqA8YnI+CiugoKCgdGhloGNvcmVncmluZC9tX3N5c3dyYXAvc3lzd3JhcC0qLmOgZmlsZXMuoDxicj4KK6CgoKBGb3KgZWFjaKBpbi1tZW1vcnmgcGFyYW1ldGVyoHdoaWNooGlzoHJlYWSgb3Kgd3JpdHRlbqBieTxicj4KK6CgoKB0aGWgc3lzY2FsbCygZG+gb25loG9mPGJyPgoroKCgoDxicj4KK6CgoKCgoFBSRV9NRU1fUkVBRCigLi4uoCk8YnI+CiugoKCgoKBQUkVfTUVNX1JBU0NJSVoooC4uLqApoDxicj4KK6CgoKCgoFBSRV9NRU1fV1JJVEUooC4uLqApoDxicj4KK6CgoKCgoDxicj4KK6CgoKBmb3KgoHRoYXSgcGFyYW1ldGVyLqCgVGhlbqBkb6B0aGWgc3lzY2FsbC6goFRoZW4soGlmoHRoZaBzeXNjYWxsPGJyPgoroKCgoHN1Y2NlZWRzLKBpc3N1ZaBzdWl0YWJsZaBQT1NUX01FTV9XUklURSigLi4uoCmgY2FsbHMuPGJyPgoroKCgoChUaGVyZSdzoG5voG5lZWSgZm9yoFBPU1RfTUVNX1JFQUSgY2FsbHMuKTxicj4KKzxicj4KK6CgoKBBbHNvLKBhZGSgaXSgdG+gdGhloHN5c2NhbGxfdGFibGVbXaBhcnJheTugdXNloG9uZaBvZqBHRU5YXyygR0VOWFk8YnI+CiugoKCgTElOWF8soExJTlhZLKBQTEFYXyygUExBWFkuPGJyPgoroKCgoEdFTiqgZm9yoGdlbmVyaWOgc3lzY2FsbHOgKGluoHN5c3dyYXAtZ2VuZXJpYy5jKSygTElOKqBmb3KgbGludXg8YnI+CiugoKCgc3BlY2lmaWOgb25lc6AoaW6gc3lzd3JhcC1saW51eC5jKaBhbmSgUExBKqBmb3KgdGhloHBsYXRmb3JtPGJyPgoroKCgoGRlcGVuZGFudKBvbmVzoChpbqBzeXN3cmFwLSQoUExBVEZPUk0pLWxpbnV4LmMpLjxicj4KK6CgoKBUaGWgKlhZoHZhcmlhbnSgaWagaXSgcmVxdWlyZXOgYaBQUkUoKaBhbmSgUE9TVCgpoGZ1bmN0aW9uLKBhbmQ8YnI+CiugoKCgdGhloCpYX6B2YXJpYW50oGlmoGl0oG9ubHmgcmVxdWlyZXOgYaBQUkUoKTxicj4KK6CgoKBmdW5jdGlvbi6goDxicj4KK6CgoKA8YnI+CiugoKCgSWageW91oGZpbmSgdGhpc6BkaWZmaWN1bHQsoHJlYWSgdGhloHdyYXBwZXJzoGZvcqBvdGhlcqBzeXNjYWxsczxicj4KK6CgoKBmb3KgaWRlYXMuoKBBoGdvb2SgdGlwoGlzoHRvoGxvb2ugZm9yoHRoZaB3cmFwcGVyoGZvcqBhoHN5c2NhbGw8YnI+CiugoKCgd2hpY2igaGFzoGGgc2ltaWxhcqBiZWhhdmlvdXKgdG+geW91cnMsoGFuZKB1c2WgaXSgYXOgYaA8YnI+CiugoKCgc3RhcnRpbmegcG9pbnQuPGJyPgorPGJyPgoroKCgoElmoHlvdaBuZWVkoHN0cnVjdHVyZaBkZWZpbml0aW9uc6BhbmQvb3KgY29uc3RhbnRzoGZvcqB5b3VyoHN5c2NhbGwsPGJyPgoroKCgoGNvcHmgdGhlbaBmcm9toHRoZaBrZXJuZWygaGVhZGVyc6BpbnRvoGluY2x1ZGUvdmtpLmigYW5koGNvLiygd2l0aDxicj4KK6CgoKB0aGWgYXBwcm9wcmlhdGWgdmtpXyovVktJXyqgbmFtZaBtYW5nbGluZy6goERvbid0oCNpbmNsdWRloGFueTxicj4KK6CgoKBrZXJuZWygaGVhZGVycy6goEFuZKBjZXJ0YWlubHmgZG9uJ3SgI2luY2x1ZGWgYW55oGdsaWJjoGhlYWRlcnMuPGJyPgorPGJyPgoroKCgoFRlc3SgaXQuPGJyPgorPGJyPgoroKCgoE5vdGWgdGhhdKBhoGNvbW1vbqBlcnJvcqBpc6B0b6BjYWxsoFBPU1RfTUVNX1dSSVRFKKAuLi6gKTxicj4KK6CgoKB3aXRooDCgKE5VTEwpoGFzoHRoZaBmaXJzdKAoYWRkcmVzcymgYXJndW1lbnQuoKBUaGlzoHVzdWFsbHmgbWVhbnM8YnI+CiugoKCgeW91cqBsb2dpY6Bpc6BzbGlnaHRseaBpbmFkZXF1YXRlLqCgSXQnc6BhoHN1ZmZpY2llbnRseaBjb21tb26gYnVnPGJyPgoroKCgoHRoYXSgdGhlcmUnc6BhoGJ1aWx0LWluoGNoZWNroGZvcqBpdCygYW5koHlvdSdsbKBnZXSgYaAicHJvYmFibHk8YnI+CiugoKCgc2FuaXR5oGNoZWNroGZhaWx1cmUioGZvcqB0aGWgc3lzY2FsbKB3cmFwcGVyoHlvdaBqdXN0oG1hZGUsoGlmoHRoaXM8YnI+CiugoKCgaXOgdGhloGNhc2UuPGJyPgorPGJyPgorPGJyPgorNC6goE9uY2WgaGFwcHksoHNlbmSgdXOgdGhloHBhdGNoLqCgUHJldHR5oHBsZWFzZS48YnI+Cis8YnI+Cis8YnI+Cis8YnI+Cis8YnI+CitXcml0aW5noHlvdXKgb3duoGlvY3RsoHdyYXBwZXJzPGJyPgorfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fjxicj4KKzxicj4KK0lzoHByZXR0eaBtdWNooHRoZaBzYW1loGFzoHdyaXRpbmegc3lzY2FsbKB3cmFwcGVycyygZXhjZXB0oHRoYXSgYWxsPGJyPgordGhloGFjdGlvbqBoYXBwZW5zoHdpdGhpbqBQUkUoaW9jdGwpoGFuZKBQT1NUKGlvY3RsKS48YnI+Cis8YnI+CitUaGVyZSdzoGGgZGVmYXVsdKBjYXNlLKBzb21ldGltZXOgaXSgaXNuJ3SgY29ycmVjdKBhbmSgeW91oGhhdmWgdG+gd3JpdGWgYTxicj4KK21vcmWgc3BlY2lmaWOgY2FzZaB0b6BnZXSgdGhloHJpZ2h0oGJlaGF2aW91ci48YnI+Cis8YnI+CitBc6BhYm92ZSygcGxlYXNloGNyZWF0ZaBhoGJ1Z6ByZXBvcnSgYW5koGF0dGFjaKB0aGWgcGF0Y2igYXOgZGVzY3JpYmVkPGJyPgorb26gaHR0cDovL3d3dy52YWxncmluZC5vcmcuPGJyPgorPGJyPgorPGJyPgorV3JpdGluZ6B5b3VyoG93bqBkb29yoGNhbGygd3JhcHBlcnOgKFNvbGFyaXOgb25seSk8YnI+Cit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fjxicj4KKzxicj4KK1VubGlrZaBzeXNjYWxsc6BvcqBpb2N0bHMsoGRvb3KgY2FsbHOgdHJhbnNmZXKgZGF0YaBiZXR3ZWVuoHR3b6B1c2Vyc3BhY2U8YnI+Citwcm9ncmFtcyygYWxiZWl0oHRocm91Z2igYaBrZXJuZWygaW50ZXJmYWNlLqBQcm9ncmFtc6BtYXmgdXNloGNvbXBsZXRlbHk8YnI+Citwcm9wcmlldGFyeaBzZW1hbnRpY3OgaW6gdGhloGRhdGGgYnVmZmVyc6BwYXNzZWSgYmV0d2VlbqB0aGVtLjxicj4KK1RoZXJlZm9yZaBpdKBtYXmgbm90oGJloHBvc3NpYmxloHRvoGNhcHR1cmWgdGhlc2Wgc2VtYW50aWNzoHdpdGhpbjxicj4KK2GgVmFsZ3JpbmSgZG9vcqBjYWxsoG9yoGRvb3KgcmV0dXJuoHdyYXBwZXIuPGJyPgorPGJyPgorTmV2ZXJ0aGVsZXNzLKBmb3Kgc3lzdGVtoG9yoHdlbGwta25vd26gZG9vcqBzZXJ2aWNlc6BpdKB3b3VsZKBiZaBiZW5lZmljaWFsPGJyPgordG+gaGF2ZaBhoGRvb3KgY2FsbKBhbmSgYaBkb29yoHJldHVybqB3cmFwcGVyLqBXcml0aW5noHN1Y2igd3JhcHBlcqBpc6BwcmV0dHk8YnI+CittdWNooHRoZaBzYW1loGFzoHdyaXRpbmegaW9jdGygd3JhcHBlcnMuoFBsZWFzZaB0YWtloGGgZmV3oG1vbWVudHOgdG+gc3R1ZHk8YnI+Cit0aGWgZm9sbG93aW5noHBpY3R1cmWgZGVwaWN0aW5noGhvd6BhoGRvb3KgY2xpZW50oGFuZKBhoGRvb3Kgc2VydmVyoGludGVyYWN0PGJyPgordGhyb3VnaKB0aGWga2VybmVsoGludGVyZmFjZaBpbqBhoHR5cGljYWygc2NlbmFyaW86PGJyPgorPGJyPgorPGJyPgorZG9vcqBjbGllbnSgdGhyZWFkoKCgoKCgoKCgoGtlcm5lbKCgoKCgoKBkb29yoHNlcnZlcqB0aHJlYWQ8YnI+CitpbnZva2VzoGRvb3JfY2FsbCgpoKCgoKCgoKCgoKCgoKCgoKCgoKCgaW52b2tlc6Bkb29yX3JldHVybigpPGJyPgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTxicj4KK6CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKAmbHQ7LS0tLaCgUFJFKHN5c19kb29yLKBET09SX1JFVFVSTik8YnI+CitQUkUoc3lzX2Rvb3IsoERPT1JfQ0FMTCmgoC0tLSZndDs8YnI+CiugoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgLS0tLSZndDugoFBPU1Qoc3lzX2Rvb3IsoERPT1JfUkVUVVJOKTxicj4KK6CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKAtLS0tJmd0O6BzZXJ2ZXJfcHJvY2VkdXJlKCk8YnI+CiugoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgJmx0Oy0tLS08YnI+CiugoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgJmx0Oy0tLS2goFBSRShzeXNfZG9vciygRE9PUl9SRVRVUk4pPGJyPgorUE9TVChzeXNfZG9vciygRE9PUl9DQUxMKaAmbHQ7LS0tPGJyPgorPGJyPgorVGhloGZpcnN0oFBSRShzeXNfZG9vciygRE9PUl9SRVRVUk4poGlzoGludm9rZWSgd2l0aKBkYXRhX3B0cj1OVUxMPGJyPgorYW5koGRhdGFfc2l6ZT0wLqBUaGF0J3OgYmVjYXVzZaBpdKBoYXOgbm90oHJlY2VpdmVkoGFueaBkYXRhoGZyb208YnI+CithoGRvb3KgY2FsbCygeWV0Ljxicj4KKzxicj4KK1NlbWFudGljc6BhcmWgZGVzY3JpYmVkoGJ5oHRoZaBmb2xsb3dpbmegZnVuY3Rpb25zPGJyPgoraW6gY29yZWdyaW5nL21fc3lzd3JhcC9zeXN3cmFwLXNvbGFyaXMuY6Btb2R1bGU6PGJyPgorb6BGb3KgYaBkb29yoGNhbGygd3JhcHBlcqB0aGWgZm9sbG93aW5noGF0dHJpYnV0ZXOgb2agJ3BhcmFtcyegYXJndW1lbnQ6PGJyPgoroKAtoGRhdGFfcHRyoChhbmSgYXNzb2NpYXRlZKBkYXRhX3NpemUpoGFzoGlucHV0oGJ1ZmZlcqAocmVxdWVzdCk7PGJyPgoroKCgoKCgZGVzY3JpYmVkoGluoGRvb3JfY2FsbF9wcmVfbWVtX3BhcmFtc19kYXRhKCk8YnI+CiugoC2gcmJ1ZqAoYW5koGFzc29jaWF0ZWSgcnNpemUpoGFzoG91dHB1dKBidWZmZXKgKHJlc3BvbnNlKTs8YnI+CiugoKCgoKBkZXNjcmliZWSgaW6gZG9vcl9jYWxsX3Bvc3RfbWVtX3BhcmFtc19yYnVmKCk8YnI+CitvoEZvcqBhoGRvb3KgcmV0dXJuoHdyYXBwZXKgdGhloGZvbGxvd2luZ6BwYXJhbWV0ZXJzOjxicj4KK6CgLaBkYXRhX3B0cqAoYW5koGFzc29jaWF0ZWSgZGF0YV9zaXplKaBhc6BpbnB1dKBidWZmZXKgKHJlcXVlc3QpOzxicj4KK6CgoKCgoGRlc2NyaWJlZKBpbqBkb29yX3JldHVybl9wb3N0X21lbV9kYXRhKCk8YnI+CiugoC2gZGF0YV9wdHKgKGFuZKBhc3NvY2lhdGVkoGRhdGFfc2l6ZSmgYXOgb3V0cHV0oGJ1ZmZlcqAocmVzcG9uc2UpOzxicj4KK6CgoKCgoGRlc2NyaWJlZKBpbqBkb29yX3JldHVybl9wcmVfbWVtX2RhdGEoKTxicj4KKzxicj4KK1RoZXJlJ3OgYaBkZWZhdWx0oGNhc2Wgd2hpY2igbWF5oG5vdKBiZaBjb3JyZWN0oGFuZKB5b3WgaGF2ZaB0b6B3cml0ZaBhPGJyPgorbW9yZaBzcGVjaWZpY6BjYXNloHRvoGdldKB0aGWgcmlnaHSgYmVoYXZpb3VyLqBVbmxlc3OgVmFsZ3JpbmQnc6BvcHRpb248YnI+CisnLS1zaW0taGludHM9bGF4LWRvb3JzJ6Bpc6BzcGVjaWZpZWQsoHRoZaBkZWZhdWx0oGNhc2WgYWxzb6BzcGl0c6BhoHdhcm5pbmcuPGJyPgorPGJyPgorQXOgYWJvdmUsoHBsZWFzZaBjcmVhdGWgYaBidWegcmVwb3J0oGFuZKBhdHRhY2igdGhloHBhdGNooGFzoGRlc2NyaWJlZDxicj4KK29uoGh0dHA6Ly93d3cudmFsZ3JpbmQub3JnLjxicj4KKzxicj4KK6CgoKA8L3A+PC9kaXY+Cis8L2Rpdj4KKzxkaXY+Cis8YnI+PHRhYmxlIGNsYXNzPSJuYXYiIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0iMyIgY2VsbHBhZGRpbmc9IjIiIGJvcmRlcj0iMCIgc3VtbWFyeT0iTmF2aWdhdGlvbiBmb290ZXIiPgorPHRyPgorPHRkIHJvd3NwYW49IjIiIHdpZHRoPSI0MCUiIGFsaWduPSJsZWZ0Ij4KKzxhIGFjY2Vzc2tleT0icCIgaHJlZj0iZGlzdC5yZWFkbWUuaHRtbCI+Jmx0OyZsdDugNC6gUkVBRE1FPC9hPqA8L3RkPgorPHRkIHdpZHRoPSIyMCUiIGFsaWduPSJjZW50ZXIiPjxhIGFjY2Vzc2tleT0idSIgaHJlZj0iZGlzdC5odG1sIj5VcDwvYT48L3RkPgorPHRkIHJvd3NwYW49IjIiIHdpZHRoPSI0MCUiIGFsaWduPSJyaWdodCI+oDxhIGFjY2Vzc2tleT0ibiIgaHJlZj0iZGlzdC5yZWFkbWUtZGV2ZWxvcGVycy5odG1sIj42LqBSRUFETUVfREVWRUxPUEVSU6AmZ3Q7Jmd0OzwvYT4KKzwvdGQ+Cis8L3RyPgorPHRyPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0iY2VudGVyIj48YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPkhvbWU8L2E+PC90ZD48L3RyPgorPC90YWJsZT4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvZG9jcy9odG1sL2Rpc3QucmVhZG1lLXBhY2thZ2Vycy5odG1sIGIvZG9jcy9odG1sL2Rpc3QucmVhZG1lLXBhY2thZ2Vycy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyYjY2ODUKLS0tIC9kZXYvbnVsbAorKysgYi9kb2NzL2h0bWwvZGlzdC5yZWFkbWUtcGFja2FnZXJzLmh0bWwKQEAgLTAsMCArMSwxMzUgQEAKKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj4KKzx0aXRsZT43LqBSRUFETUVfUEFDS0FHRVJTPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9InZnX2Jhc2ljLmNzcyI+Cis8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkRvY0Jvb2sgWFNMIFN0eWxlc2hlZXRzIFYxLjc4LjEiPgorPGxpbmsgcmVsPSJob21lIiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0iVmFsZ3JpbmQgRG9jdW1lbnRhdGlvbiI+Cis8bGluayByZWw9InVwIiBocmVmPSJkaXN0Lmh0bWwiIHRpdGxlPSJWYWxncmluZCBEaXN0cmlidXRpb24gRG9jdW1lbnRzIj4KKzxsaW5rIHJlbD0icHJldiIgaHJlZj0iZGlzdC5yZWFkbWUtZGV2ZWxvcGVycy5odG1sIiB0aXRsZT0iNi6gUkVBRE1FX0RFVkVMT1BFUlMiPgorPGxpbmsgcmVsPSJuZXh0IiBocmVmPSJkaXN0LnJlYWRtZS1zMzkwLmh0bWwiIHRpdGxlPSI4LqBSRUFETUUuUzM5MCI+Cis8L2hlYWQ+Cis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+Cis8ZGl2Pjx0YWJsZSBjbGFzcz0ibmF2IiB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjMiIGNlbGxwYWRkaW5nPSIzIiBib3JkZXI9IjAiIHN1bW1hcnk9Ik5hdmlnYXRpb24gaGVhZGVyIj48dHI+Cis8dGQgd2lkdGg9IjIycHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImRpc3QucmVhZG1lLWRldmVsb3BlcnMuaHRtbCI+PGltZyBzcmM9ImltYWdlcy9wcmV2LnBuZyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjIxIiBib3JkZXI9IjAiIGFsdD0iUHJldiI+PC9hPjwvdGQ+Cis8dGQgd2lkdGg9IjI1cHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9InUiIGhyZWY9ImRpc3QuaHRtbCI+PGltZyBzcmM9ImltYWdlcy91cC5wbmciIHdpZHRoPSIyMSIgaGVpZ2h0PSIxOCIgYm9yZGVyPSIwIiBhbHQ9IlVwIj48L2E+PC90ZD4KKzx0ZCB3aWR0aD0iMzFweCIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iaW5kZXguaHRtbCI+PGltZyBzcmM9ImltYWdlcy9ob21lLnBuZyIgd2lkdGg9IjI3IiBoZWlnaHQ9IjIwIiBib3JkZXI9IjAiIGFsdD0iVXAiPjwvYT48L3RkPgorPHRoIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj5WYWxncmluZCBEaXN0cmlidXRpb24gRG9jdW1lbnRzPC90aD4KKzx0ZCB3aWR0aD0iMjJweCIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPjxhIGFjY2Vzc2tleT0ibiIgaHJlZj0iZGlzdC5yZWFkbWUtczM5MC5odG1sIj48aW1nIHNyYz0iaW1hZ2VzL25leHQucG5nIiB3aWR0aD0iMTgiIGhlaWdodD0iMjEiIGJvcmRlcj0iMCIgYWx0PSJOZXh0Ij48L2E+PC90ZD4KKzwvdHI+PC90YWJsZT48L2Rpdj4KKzxkaXYgY2xhc3M9ImNoYXB0ZXIiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgxIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJkaXN0LnJlYWRtZS1wYWNrYWdlcnMiPjwvYT43LqBSRUFETUVfUEFDS0FHRVJTPC9oMT48L2Rpdj48L2Rpdj48L2Rpdj4KKzxkaXYgY2xhc3M9ImxpdGVyYWxsYXlvdXQiPjxwPjxicj4KK6CgoKCgoDxicj4KK0dyZWV0aW5ncyygcGFja2FnaW5noHBlcnNvbiGgoFRoaXOgaW5mb3JtYXRpb26gaXOgYWltZWSgYXSgcGVvcGxlPGJyPgorYnVpbGRpbmegYmluYXJ5oGRpc3RyaWJ1dGlvbnOgb2agVmFsZ3JpbmQuPGJyPgorPGJyPgorVGhhbmtzoGZvcqB0YWtpbmegdGhloHRpbWWgYW5koGVmZm9ydKB0b6BtYWtloGGgYmluYXJ5oGRpc3RyaWJ1dGlvbqBvZjxicj4KK1ZhbGdyaW5kLqCgVGhloGZvbGxvd2luZ6Bub3Rlc6BtYXmgc2F2ZaB5b3Wgc29tZaB0cm91YmxlLjxicj4KKzxicj4KKzxicj4KKy0toERvoG5vdKBzaGlwoHlvdXKgTGludXigZGlzdHJvoHdpdGigYaBjb21wbGV0ZWx5oHN0cmlwcGVkPGJyPgoroKCgL2xpYi9sZC5zby6goEF0oGxlYXN0oGxlYXZloHRoZaBkZWJ1Z2dpbmegc3ltYm9soG5hbWVzoG9uoC0toGxpbmU8YnI+CiugoKBudW1iZXKgaW5mb6Bpc24ndKBuZWNlc3NhcnkuoKBJZqB5b3WgZG9uJ3Sgd2FudKB0b6BsZWF2ZaBzeW1ib2xzoG9uPGJyPgoroKCgbGQuc28soGFsdGVybmF0aXZlbHmgeW91oGNhbqBoYXZloHlvdXKgZGlzdHJvoGluc3RhbGygbGQuc28nczxicj4KK6CgoGRlYnVnaW5mb6BwYWNrYWdloGJ5oGRlZmF1bHQsoG9yoG1ha2WgbGQuc28uZGVidWdpbmZvoGJloGE8YnI+CiugoKByZXF1aXJlbWVudKBvZqB5b3VyoFZhbGdyaW5koFJQTS9ERUIvd2hhdGV2ZXIuPGJyPgorPGJyPgoroKCgUmVhc29uoGZvcqB0aGlzoGlzoHRoYXSgVmFsZ3JpbmQnc6BNZW1jaGVja6B0b29soG5lZWRzoHRvoGludGVyY2VwdDxicj4KK6CgoGNhbGxzoHRvLKBhbmSgcHJvdmlkZaByZXBsYWNlbWVudHOgZm9yLKBzb21loHN5bWJvbHOgaW6gbGQuc2+gYXQ8YnI+CiugoKBzdGFydHVwoChtb3N0oGltcG9ydGFudGx5oHN0cmxlbikuoKBJZqBpdKBjYW5ub3SgZG+gdGhhdCygTWVtY2hlY2s8YnI+CiugoKBzaG93c6BhoGxhcmdloG51bWJlcqBvZqBmYWxzZaBwb3NpdGl2ZXOgZHVloHRvoHRoZaBoaWdobHmgb3B0aW1pc2VkPGJyPgoroKCgc3RybGVuoChldGMpoHJvdXRpbmVzoGluoGxkLnNvLqCgVGhpc6BoYXOgY2F1c2VkoHNvbWWgdHJvdWJsZaBpbjxicj4KK6CgoHRoZaBwYXN0LqCgQXOgb2agdmVyc2lvbqAzLjMuMCygb26gc29tZaB0YXJnZXRzoChwcGMzMi1saW51eCw8YnI+CiugoKBwcGM2NC1saW51eCksoE1lbWNoZWNroHdpbGygc2ltcGx5oHN0b3CgYXSgc3RhcnR1cKAoYW5koHByaW50oGFuPGJyPgoroKCgZXJyb3KgbWVzc2FnZSmgaWagc3VjaKBzeW1ib2xzoGFyZaBub3SgcHJlc2VudCygYmVjYXVzZaBpdKBpczxicj4KK6CgoGluZmVhc2libGWgdG+gY29udGludWUuPGJyPgorPGJyPgoroKCgSXQnc6Bub3SgbGlrZaB0aGlzoGlzoGdvaW5noHRvoGNvc3SgeW91oG11Y2igc3BhY2UuoKBXZaBvbmx5oG5lZWQ8YnI+CiugoKB0aGWgc3ltYm9sc6Bmb3KgbGQuc2+gKGGgZmV3oEugYXSgbW9zdCkuoKBOb3SgdGhloGRlYnVnoGluZm+gYW5kPGJyPgoroKCgbm90oGFueaBkZWJ1Z2luZm+gb3KgZXh0cmGgc3ltYm9sc6Bmb3KgYW55oG90aGVyoGxpYnJhcmllcy48YnI+Cis8YnI+Cis8YnI+CistLaAoVW5mb3J0dW5hdGWgYnV0oHRydWUpoFdoZW6geW91oGNvbmZpZ3VyZaB0b6BidWlsZKB3aXRooHRoZaA8YnI+CiugoKAtLXByZWZpeD0vZm9vL2Jhci94eXp6eaBvcHRpb24soHRoZaBwcmVmaXigL2Zvby9iYXIveHl6enmgZ2V0czxicj4KK6CgoGJha2VkoGludG+gdmFsZ3JpbmQuoKBUaGWgY29uc2VxdWVuY2WgaXOgdGhhdKB5b3WgX211c3RfoGluc3RhbGw8YnI+CiugoKB2YWxncmluZKBhdKB0aGWgbG9jYXRpb26gc3BlY2lmaWVkoGluoHRoZaBwcmVmaXguoKBJZqB5b3WgZG9uJ3QsPGJyPgoroKCgaXSgbWF5oGFwcGVhcqB0b6B3b3JrLKBidXSgd2lsbKBicmVha6Bkb2luZ6Bzb21loG9ic2N1cmWgdGhpbmdzLDxicj4KK6CgoHBhcnRpY3VsYXJseaBkb2luZ6Bmb3JrKCmgYW5koGV4ZWMoKS48YnI+Cis8YnI+CiugoKBTb6B5b3WgY2FuJ3SgYnVpbGSgYaByZWxvY2F0YWJsZaBSUE2gL6B3aGF0ZXZlcqBmcm9toFZhbGdyaW5kLjxicj4KKzxicj4KKzxicj4KKy0toERvbid0oHN0cmlwoHRoZaBkZWJ1Z6BpbmZvoG9mZqBsaWIvdmFsZ3JpbmQvJHBsYXRmb3JtL3ZncHJlbG9hZCouc288YnI+CiugoKBpbqB0aGWgaW5zdGFsbGF0aW9uoHRyZWUuoKBFaXRoZXKgVmFsZ3JpbmSgd29uJ3Sgd29ya6BhdKBhbGwsoG9yoGl0PGJyPgoroKCgd2lsbKBzdGlsbKB3b3JroGlmoHlvdaBkbyygYnV0oHdpbGygZ2VuZXJhdGWgbGVzc6BoZWxwZnVsoGVycm9yPGJyPgoroKCgbWVzc2FnZXMuoKBIZXJlJ3OgYW6gZXhhbXBsZTo8YnI+Cis8YnI+CiugoKBNaXNtYXRjaGVkoGZyZWUoKaAvoGRlbGV0ZaAvoGRlbGV0ZaBbXTxicj4KK6CgoKCgoGF0oDB4NDAwNDMyNDk6oGZyZWWgKHZnX2NsaWVudGZ1bmNzLmM6MTcxKTxicj4KK6CgoKCgoGJ5oDB4NDEwMkJCNEU6oFFHQXJyYXk6On5RR0FycmF5KHZvaWQpoCh0b29scy9xZ2FycmF5LmNwcDoxNDkpPGJyPgoroKCgoKCgYnmgMHg0QzI2MUM0MTqgUHB0RG9jOjp+UHB0RG9jKHZvaWQpoChpbmNsdWRlL3FtZW1hcnJheS5oOjYwKTxicj4KK6CgoKCgoGJ5oDB4NEMyNjFGMEU6oFBwdFhtbDo6flBwdFhtbCh2b2lkKaAocHB0eG1sLmNjOjQ0KTxicj4KK6CgoKCgoEFkZHJlc3OgMHg0QkIyOTJBOKBpc6AwoGJ5dGVzoGluc2lkZaBhoGJsb2NroG9moHNpemWgNjSgYWxsb2MnZDxicj4KK6CgoKCgoGF0oDB4NDAwNDMxOEM6oF9fYnVpbHRpbl92ZWNfbmV3oCh2Z19jbGllbnRmdW5jcy5jOjE1Mik8YnI+CiugoKCgoKBieaAweDRDMjFCQzE1OqBLTGFvbGE6OnJlYWRTQlN0cmVhbShpbnQpoGNvbnN0oChrbGFvbGEuY2M6MzE0KTxicj4KK6CgoKCgoGJ5oDB4NEMyMUMxNTU6oEtMYW9sYTo6c3RyZWFtKEtMYW9sYTo6T0xFTm9kZaBjb25zdKAqKaAoa2xhb2xhLmNjOjQxNik8YnI+CiugoKCgoKBieaAweDRDMjE3ODhGOqBPTEVGaWx0ZXI6OmNvbnZlcnQoUUNTdHJpbmegY29uc3SgJmFtcDspoChvbGVmaWx0ZXIuY2M6MjcyKTxicj4KKzxicj4KK6CgoFRoaXOgdGVsbHOgeW91oHRoYXSgc29tZaBtZW1vcnmgYWxsb2NhdGVkoHdpdGigbmV3W12gd2FzoGZyZWVkoHdpdGg8YnI+CiugoKBmcmVlKCkuPGJyPgorPGJyPgoroKCgTWlzbWF0Y2hlZKBmcmVlKCmgL6BkZWxldGWgL6BkZWxldGWgW108YnI+CiugoKCgoKBhdKAweDQwMDQzMjQ5OqAoaW5zaWRloHZncHJlbG9hZF9tZW1jaGVjay5zbyk8YnI+CiugoKCgoKBieaAweDQxMDJCQjRFOqBRR0FycmF5Ojp+UUdBcnJheSh2b2lkKaAodG9vbHMvcWdhcnJheS5jcHA6MTQ5KTxicj4KK6CgoKCgoGJ5oDB4NEMyNjFDNDE6oFBwdERvYzo6flBwdERvYyh2b2lkKaAoaW5jbHVkZS9xbWVtYXJyYXkuaDo2MCk8YnI+CiugoKCgoKBieaAweDRDMjYxRjBFOqBQcHRYbWw6On5QcHRYbWwodm9pZCmgKHBwdHhtbC5jYzo0NCk8YnI+CiugoKCgoKBBZGRyZXNzoDB4NEJCMjkyQTigaXOgMKBieXRlc6BpbnNpZGWgYaBibG9ja6BvZqBzaXploDY0oGFsbG9jJ2Q8YnI+CiugoKCgoKBhdKAweDQwMDQzMThDOqAoaW5zaWRloHZncHJlbG9hZF9tZW1jaGVjay5zbyk8YnI+CiugoKCgoKBieaAweDRDMjFCQzE1OqBLTGFvbGE6OnJlYWRTQlN0cmVhbShpbnQpoGNvbnN0oChrbGFvbGEuY2M6MzE0KTxicj4KK6CgoKCgoGJ5oDB4NEMyMUMxNTU6oEtMYW9sYTo6c3RyZWFtKEtMYW9sYTo6T0xFTm9kZaBjb25zdKAqKaAoa2xhb2xhLmNjOjQxNik8YnI+CiugoKCgoKBieaAweDRDMjE3ODhGOqBPTEVGaWx0ZXI6OmNvbnZlcnQoUUNTdHJpbmegY29uc3SgJmFtcDspoChvbGVmaWx0ZXIuY2M6MjcyKTxicj4KKzxicj4KK6CgoFRoaXOgaXNuJ3Sgc2+gaGVscGZ1bC6goEFsdGhvdWdooHlvdaBjYW6gdGVsbKB0aGVyZaBpc6BhoG1pc21hdGNoLKA8YnI+CiugoKB0aGWgbmFtZXOgb2agdGhloGFsbG9jYXRpbmegYW5koGRlYWxsb2NhdGluZ6BmdW5jdGlvbnOgYXJloG5voGxvbmdlcjxicj4KK6CgoHZpc2libGUuoKBUaGWgc2FtZaBraW5koG9moHRoaW5noG9jY3Vyc6BpbqB2YXJpb3VzoG90aGVyoG1lc3NhZ2VzoDxicj4KK6CgoGZyb22gdmFsZ3JpbmQuPGJyPgorPGJyPgorPGJyPgorLS2gRG9uJ3Sgc3RyaXCgc3ltYm9sc6Bmcm9toGxpYi92YWxncmluZC8qoGluoHRoZaBpbnN0YWxsYXRpb26gdHJlZS48YnI+CiugoKBEb2luZ6Bzb6B3aWxsoGxpa2VseaBjYXVzZaBwcm9ibGVtcy6goFJlbW92aW5noHRoZaBsaW5loG51bWJlcqBpbmZvoGlzPGJyPgoroKCgcHJvYmFibHmgT0ugKGF0oGxlYXN0oGZvcqBzb21loG9moHRoZaBmaWxlc6BpbqB0aGF0oGRpcmVjdG9yeSksoGFsdGhvdWdoPGJyPgoroKCgdGhhdKBoYXOgbm90oGJlZW6gdGVzdGVkoGJ5oHRoZaBWYWxncmluZKBkZXZlbG9wZXJzLjxicj4KKzxicj4KKzxicj4KKy0toFBsZWFzZaB0ZXN0oHRoZaBmaW5hbKBpbnN0YWxsYXRpb26gd29ya3OgYnmgcnVubmluZ6BpdKBvbqBzb21ldGhpbmc8YnI+CiugoKBodWdlLqCgSaBzdWdnZXN0oGNoZWNraW5noHRoYXSgaXSgY2FuoHN0YXJ0oGFuZKBleGl0oHN1Y2Nlc3NmdWxseTxicj4KK6CgoGJvdGigRmlyZWZveKBhbmSgT3Blbk9mZmljZS5vcmcuoKBJoHVzZaB0aGVzZaBhc6B0ZXN0oHByb2dyYW1zLKBhbmSgSTxicj4KK6CgoGtub3egdGhleaBmYWlybHmgdGhvcm91Z2hseaBleGVyY2lzZaBWYWxncmluZC6goFRoZaBjb21tYW5koGxpbmVzoHRvoHVzZTxicj4KK6CgoGFyZTo8YnI+Cis8YnI+CiugoKB2YWxncmluZKAtdqAtLXRyYWNlLWNoaWxkcmVuPXllc6BmaXJlZm94PGJyPgorPGJyPgoroKCgdmFsZ3JpbmSgLXagLS10cmFjZS1jaGlsZHJlbj15ZXOgc29mZmljZTxicj4KKzxicj4KKzxicj4KK0lmoHlvdaBmaW5koGFueaBtb3JloGhpbnRzL3RpcHOgZm9yoHBhY2thZ2luZyygcGxlYXNloHJlcG9ydDxicj4KK2l0oGFzoGGgYnVncmVwb3J0LqBTZWWgaHR0cDovL3d3dy52YWxncmluZC5vcmegZm9yoGRldGFpbHMuPGJyPgorPGJyPgoroKCgoDwvcD48L2Rpdj4KKzwvZGl2PgorPGRpdj4KKzxicj48dGFibGUgY2xhc3M9Im5hdiIgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSIzIiBjZWxscGFkZGluZz0iMiIgYm9yZGVyPSIwIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGZvb3RlciI+Cis8dHI+Cis8dGQgcm93c3Bhbj0iMiIgd2lkdGg9IjQwJSIgYWxpZ249ImxlZnQiPgorPGEgYWNjZXNza2V5PSJwIiBocmVmPSJkaXN0LnJlYWRtZS1kZXZlbG9wZXJzLmh0bWwiPiZsdDsmbHQ7oDYuoFJFQURNRV9ERVZFTE9QRVJTPC9hPqA8L3RkPgorPHRkIHdpZHRoPSIyMCUiIGFsaWduPSJjZW50ZXIiPjxhIGFjY2Vzc2tleT0idSIgaHJlZj0iZGlzdC5odG1sIj5VcDwvYT48L3RkPgorPHRkIHJvd3NwYW49IjIiIHdpZHRoPSI0MCUiIGFsaWduPSJyaWdodCI+oDxhIGFjY2Vzc2tleT0ibiIgaHJlZj0iZGlzdC5yZWFkbWUtczM5MC5odG1sIj44LqBSRUFETUUuUzM5MKAmZ3Q7Jmd0OzwvYT4KKzwvdGQ+Cis8L3RyPgorPHRyPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0iY2VudGVyIj48YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPkhvbWU8L2E+PC90ZD48L3RyPgorPC90YWJsZT4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvZG9jcy9odG1sL2Rpc3QucmVhZG1lLXMzOTAuaHRtbCBiL2RvY3MvaHRtbC9kaXN0LnJlYWRtZS1zMzkwLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDAzZDVjOAotLS0gL2Rldi9udWxsCisrKyBiL2RvY3MvaHRtbC9kaXN0LnJlYWRtZS1zMzkwLmh0bWwKQEAgLTAsMCArMSw5NSBAQAorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiPgorPHRpdGxlPjguoFJFQURNRS5TMzkwPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9InZnX2Jhc2ljLmNzcyI+Cis8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkRvY0Jvb2sgWFNMIFN0eWxlc2hlZXRzIFYxLjc4LjEiPgorPGxpbmsgcmVsPSJob21lIiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0iVmFsZ3JpbmQgRG9jdW1lbnRhdGlvbiI+Cis8bGluayByZWw9InVwIiBocmVmPSJkaXN0Lmh0bWwiIHRpdGxlPSJWYWxncmluZCBEaXN0cmlidXRpb24gRG9jdW1lbnRzIj4KKzxsaW5rIHJlbD0icHJldiIgaHJlZj0iZGlzdC5yZWFkbWUtcGFja2FnZXJzLmh0bWwiIHRpdGxlPSI3LqBSRUFETUVfUEFDS0FHRVJTIj4KKzxsaW5rIHJlbD0ibmV4dCIgaHJlZj0iZGlzdC5yZWFkbWUtYW5kcm9pZC5odG1sIiB0aXRsZT0iOS6gUkVBRE1FLmFuZHJvaWQiPgorPC9oZWFkPgorPGJvZHkgYmdjb2xvcj0id2hpdGUiIHRleHQ9ImJsYWNrIiBsaW5rPSIjMDAwMEZGIiB2bGluaz0iIzg0MDA4NCIgYWxpbms9IiMwMDAwRkYiPgorPGRpdj48dGFibGUgY2xhc3M9Im5hdiIgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSIzIiBjZWxscGFkZGluZz0iMyIgYm9yZGVyPSIwIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciI+PHRyPgorPHRkIHdpZHRoPSIyMnB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJwIiBocmVmPSJkaXN0LnJlYWRtZS1wYWNrYWdlcnMuaHRtbCI+PGltZyBzcmM9ImltYWdlcy9wcmV2LnBuZyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjIxIiBib3JkZXI9IjAiIGFsdD0iUHJldiI+PC9hPjwvdGQ+Cis8dGQgd2lkdGg9IjI1cHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9InUiIGhyZWY9ImRpc3QuaHRtbCI+PGltZyBzcmM9ImltYWdlcy91cC5wbmciIHdpZHRoPSIyMSIgaGVpZ2h0PSIxOCIgYm9yZGVyPSIwIiBhbHQ9IlVwIj48L2E+PC90ZD4KKzx0ZCB3aWR0aD0iMzFweCIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iaW5kZXguaHRtbCI+PGltZyBzcmM9ImltYWdlcy9ob21lLnBuZyIgd2lkdGg9IjI3IiBoZWlnaHQ9IjIwIiBib3JkZXI9IjAiIGFsdD0iVXAiPjwvYT48L3RkPgorPHRoIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj5WYWxncmluZCBEaXN0cmlidXRpb24gRG9jdW1lbnRzPC90aD4KKzx0ZCB3aWR0aD0iMjJweCIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPjxhIGFjY2Vzc2tleT0ibiIgaHJlZj0iZGlzdC5yZWFkbWUtYW5kcm9pZC5odG1sIj48aW1nIHNyYz0iaW1hZ2VzL25leHQucG5nIiB3aWR0aD0iMTgiIGhlaWdodD0iMjEiIGJvcmRlcj0iMCIgYWx0PSJOZXh0Ij48L2E+PC90ZD4KKzwvdHI+PC90YWJsZT48L2Rpdj4KKzxkaXYgY2xhc3M9ImNoYXB0ZXIiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgxIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJkaXN0LnJlYWRtZS1zMzkwIj48L2E+OC6gUkVBRE1FLlMzOTA8L2gxPjwvZGl2PjwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0ibGl0ZXJhbGxheW91dCI+PHA+PGJyPgoroKCgoKCgPGJyPgorUmVxdWlyZW1lbnRzPGJyPgorLS0tLS0tLS0tLS0tPGJyPgorLaBZb3WgbmVlZKBHQ0OgMy40oG9yoGxhdGVyoHRvoGNvbXBpbGWgdGhloHMzOTCgcG9ydC48YnI+CistoFRvoHJ1bqB2YWxncmluZKBhoHoxMKBtYWNoaW5loG9yoGFueaBsYXRlcqBtb2RlbKBpc6ByZWNvbW1lbmRlZC48YnI+CiugoE9sZGVyoG1hY2hpbmWgbW9kZWxzoGRvd26gdG+gYW5koGluY2x1ZGluZ6B6OTkwoG1heaB3b3JroGJ1dKBoYXZlPGJyPgoroKBub3SgYmVlbqB0ZXN0ZWSgZXh0ZW5zaXZlbHkuPGJyPgorPGJyPgorPGJyPgorTGltaXRhdGlvbnM8YnI+CistLS0tLS0tLS0tLTxicj4KKy2gMzEtYml0oGNsaWVudKBwcm9ncmFtc6BhcmWgbm90oHN1cHBvcnRlZC48YnI+CistoEhleGFkZWNpbWFsoGZsb2F0aW5noHBvaW50oGlzoG5vdKBzdXBwb3J0ZWQuPGJyPgorLaBUcmFuc2FjdGlvbmFsoG1lbW9yeaBpc6Bub3Sgc3VwcG9ydGVkLjxicj4KKy2gSW5zdHJ1Y3Rpb25zoG9wZXJhdGluZ6BvbqB2ZWN0b3KgcmVnaXN0ZXJzoGFyZaBub3Sgc3VwcG9ydGVkLjxicj4KKy2gbWVtY2hlY2ssoGNhY2hlZ3JpbmQsoGRyZCygaGVsZ3JpbmQsoG1hc3NpZiygbGFja2V5LKBhbmSgbm9uZaBhcmU8YnI+CiugoHN1cHBvcnRlZC6gPGJyPgorLaBPbqBtYWNoaW5loG1vZGVsc6BwcmVkYXRpbmegejEwLKBjYWNoZWdyaW5koHdpbGygYXNzdW1loGGgejEwoGNhY2hlPGJyPgoroKBhcmNoaXRlY3R1cmUuoE90aGVyd2lzZSygY2FjaGVncmluZKB3aWxsoHF1ZXJ5oHRoZaBob3N0c6BjYWNoZaBzeXN0ZW08YnI+CiugoGFuZKB1c2WgdGhvc2WgcGFyYW1ldGVycy48YnI+CistoGNhbGxncmluZKBhbmSgYWxsoGV4cGVyaW1lbnRhbKB0b29sc6BhcmWgY3VycmVudGx5oG5vdKBzdXBwb3J0ZWQuPGJyPgorLaBTb21loGdjY6B2ZXJzaW9uc6B1c2WgbXZjoHRvoGNvcHmgNC84oGJ5dGWgdmFsdWVzLqBUaGlzoHdpbGygYWZmZWN0PGJyPgoroKBjZXJ0YWluoGRlYnVnoG1lc3NhZ2VzLqBGb3KgZXhhbXBsZSygbWVtY2hlY2ugd2lsbKBjb21wbGFpbqBhYm91dDxicj4KK6CgNKBvbmUtYnl0ZaByZWFkcy93cml0ZXOgaW5zdGVhZKBvZqBqdXN0oGGgc2luZ2xloHJlYWQvd3JpdGUuPGJyPgorLaBUaGWgdHJhbnNhY3Rpb25hbC1leGVjdXRpb26gZmFjaWxpdHmgaXOgbm90oHN1cHBvcnRlZDugaXSgaXOgbWFza2VkPGJyPgoroKBvZmagZnJvbaBIV0NBUC48YnI+CistoFRoZaB2ZWN0b3KgZmFjaWxpdHmgaXOgbm90oHN1cHBvcnRlZDugaXSgaXOgbWFza2VkoG9mZqBmcm9toEhXQ0FQLjxicj4KKzxicj4KKzxicj4KK0hhcmR3YXJloGZhY2lsaXRpZXM8YnI+CistLS0tLS0tLS0tLS0tLS0tLS0tPGJyPgorVmFsZ3JpbmSgZG9lc6Bub3SgcmVxdWlyZaB0aGF0oHRoZaBob3N0oG1hY2hpbmWgaGFzoHRoZaBzYW1loGhhcmR3YXJlPGJyPgorZmFjaWxpdGllc6Bhc6B0aGWgbWFjaGluZaBmb3Kgd2hpY2igdGhloGNsaWVudKBwcm9ncmFtoHdhc6Bjb21waWxlZC48YnI+CitUaGlzoGlzoGNvbnZlbmllbnQuoElmoHBvc3NpYmxlLKB0aGWgSklUoGNvbXBpbGVyoHdpbGygdHJhbnNsYXRloHRoZTxicj4KK2NsaWVudKBpbnN0cnVjdGlvbnOgYWNjb3JkaW5noHRvoHRoZaBmYWNpbGl0aWVzoGF2YWlsYWJsZaBvbqB0aGWgaG9zdC48YnI+CitUaGlzoG1lYW5zLKB0aG91Z2gsoHRoYXSgcHJvYmluZ6Bmb3KgaGFyZHdhcmWgZmFjaWxpdGllc6BieaBpc3N1aW5nPGJyPgoraW5zdHJ1Y3Rpb25zoGZyb22gdGhhdKBmYWNpbGl0eaBhbmSgb2JzZXJ2aW5noHdoZXRoZXKgU0lHSUxMoGlzoHRocm93bjxicj4KK21heaBub3Sgd29yay6gQXOgYaBjb25zZXF1ZW5jZSygcHJvZ3JhbXOgdGhhdKBhdHRlbXB0oHRvoGRvoHNvoG1heTxicj4KK2JlaGF2ZaBkaWZmZXJlbnRseS6gSXSgaXOgYmVsaWV2ZWSgdGhhdKB0aGlzoGlzoGGgcmFyZaB1c2WgY2FzZS48YnI+Cis8YnI+Cis8YnI+CitSZWNvbW1lbmRhdGlvbnM8YnI+CistLS0tLS0tLS0tLS0tLS08YnI+CitBcHBsaWNhdGlvbnOgc2hvdWxkoGJloGNvbXBpbGVkoHdpdGigLWZuby1idWlsdGluoHRvoGF2b2lkPGJyPgorZmFsc2WgcG9zaXRpdmVzoGR1ZaB0b6BidWlsdGluoHN0cmluZ6BvcGVyYXRpb25zoHdoZW6gcnVubmluZ6BtZW1jaGVjay48YnI+Cis8YnI+Cis8YnI+CitSZWFkaW5noE1hdGVyaWFsPGJyPgorLS0tLS0tLS0tLS0tLS0tLTxicj4KKygxKaBMaW51eKBmb3KgelNlcmllc6BFTEagQUJJoFN1cHBsZW1lbnQ8YnI+CiugoKCgaHR0cDovL3JlZnNwZWNzLmxpbnV4Zm91bmRhdGlvbi5vcmcvRUxGL3pTZXJpZXMvaW5kZXguaHRtbDxicj4KKygyKaB6L0FyY2hpdGVjdHVyZaBQcmluY2lwbGVzoG9moE9wZXJhdGlvbjxicj4KK6CgoKBodHRwOi8vcHVibGliZmkuYm91bGRlci5pYm0uY29tL2VwdWJzL3BkZi9kejl6cjAxMC5wZGY8YnI+CisoMymgei9BcmNoaXRlY3R1cmWgUmVmZXJlbmNloFN1bW1hcnk8YnI+CiugoKCgaHR0cDovL3B1YmxpYmZpLmJvdWxkZXIuaWJtLmNvbS9lcHVicy9wZGYvZHo5enMwMDgucGRmPGJyPgorPGJyPgoroKCgoDwvcD48L2Rpdj4KKzwvZGl2PgorPGRpdj4KKzxicj48dGFibGUgY2xhc3M9Im5hdiIgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSIzIiBjZWxscGFkZGluZz0iMiIgYm9yZGVyPSIwIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGZvb3RlciI+Cis8dHI+Cis8dGQgcm93c3Bhbj0iMiIgd2lkdGg9IjQwJSIgYWxpZ249ImxlZnQiPgorPGEgYWNjZXNza2V5PSJwIiBocmVmPSJkaXN0LnJlYWRtZS1wYWNrYWdlcnMuaHRtbCI+Jmx0OyZsdDugNy6gUkVBRE1FX1BBQ0tBR0VSUzwvYT6gPC90ZD4KKzx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0iY2VudGVyIj48YSBhY2Nlc3NrZXk9InUiIGhyZWY9ImRpc3QuaHRtbCI+VXA8L2E+PC90ZD4KKzx0ZCByb3dzcGFuPSIyIiB3aWR0aD0iNDAlIiBhbGlnbj0icmlnaHQiPqA8YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImRpc3QucmVhZG1lLWFuZHJvaWQuaHRtbCI+OS6gUkVBRE1FLmFuZHJvaWSgJmd0OyZndDs8L2E+Cis8L3RkPgorPC90cj4KKzx0cj48dGQgd2lkdGg9IjIwJSIgYWxpZ249ImNlbnRlciI+PGEgYWNjZXNza2V5PSJoIiBocmVmPSJpbmRleC5odG1sIj5Ib21lPC9hPjwvdGQ+PC90cj4KKzwvdGFibGU+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL2RvY3MvaHRtbC9kaXN0LnJlYWRtZS1zb2xhcmlzLmh0bWwgYi9kb2NzL2h0bWwvZGlzdC5yZWFkbWUtc29sYXJpcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZhMTBmZTMKLS0tIC9kZXYvbnVsbAorKysgYi9kb2NzL2h0bWwvZGlzdC5yZWFkbWUtc29sYXJpcy5odG1sCkBAIC0wLDAgKzEsMTg2IEBACis8aHRtbD4KKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSI+Cis8dGl0bGU+MTIuoFJFQURNRS5zb2xhcmlzPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9InZnX2Jhc2ljLmNzcyI+Cis8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkRvY0Jvb2sgWFNMIFN0eWxlc2hlZXRzIFYxLjc4LjEiPgorPGxpbmsgcmVsPSJob21lIiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0iVmFsZ3JpbmQgRG9jdW1lbnRhdGlvbiI+Cis8bGluayByZWw9InVwIiBocmVmPSJkaXN0Lmh0bWwiIHRpdGxlPSJWYWxncmluZCBEaXN0cmlidXRpb24gRG9jdW1lbnRzIj4KKzxsaW5rIHJlbD0icHJldiIgaHJlZj0iZGlzdC5yZWFkbWUtbWlwcy5odG1sIiB0aXRsZT0iMTEuoFJFQURNRS5taXBzIj4KKzxsaW5rIHJlbD0ibmV4dCIgaHJlZj0ibGljZW5zZXMuaHRtbCIgdGl0bGU9IkdOVSBMaWNlbnNlcyI+Cis8L2hlYWQ+Cis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+Cis8ZGl2Pjx0YWJsZSBjbGFzcz0ibmF2IiB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjMiIGNlbGxwYWRkaW5nPSIzIiBib3JkZXI9IjAiIHN1bW1hcnk9Ik5hdmlnYXRpb24gaGVhZGVyIj48dHI+Cis8dGQgd2lkdGg9IjIycHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImRpc3QucmVhZG1lLW1pcHMuaHRtbCI+PGltZyBzcmM9ImltYWdlcy9wcmV2LnBuZyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjIxIiBib3JkZXI9IjAiIGFsdD0iUHJldiI+PC9hPjwvdGQ+Cis8dGQgd2lkdGg9IjI1cHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9InUiIGhyZWY9ImRpc3QuaHRtbCI+PGltZyBzcmM9ImltYWdlcy91cC5wbmciIHdpZHRoPSIyMSIgaGVpZ2h0PSIxOCIgYm9yZGVyPSIwIiBhbHQ9IlVwIj48L2E+PC90ZD4KKzx0ZCB3aWR0aD0iMzFweCIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iaW5kZXguaHRtbCI+PGltZyBzcmM9ImltYWdlcy9ob21lLnBuZyIgd2lkdGg9IjI3IiBoZWlnaHQ9IjIwIiBib3JkZXI9IjAiIGFsdD0iVXAiPjwvYT48L3RkPgorPHRoIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj5WYWxncmluZCBEaXN0cmlidXRpb24gRG9jdW1lbnRzPC90aD4KKzx0ZCB3aWR0aD0iMjJweCIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPjxhIGFjY2Vzc2tleT0ibiIgaHJlZj0ibGljZW5zZXMuaHRtbCI+PGltZyBzcmM9ImltYWdlcy9uZXh0LnBuZyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjIxIiBib3JkZXI9IjAiIGFsdD0iTmV4dCI+PC9hPjwvdGQ+Cis8L3RyPjwvdGFibGU+PC9kaXY+Cis8ZGl2IGNsYXNzPSJjaGFwdGVyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMSBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0iZGlzdC5yZWFkbWUtc29sYXJpcyI+PC9hPjEyLqBSRUFETUUuc29sYXJpczwvaDE+PC9kaXY+PC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJsaXRlcmFsbGF5b3V0Ij48cD48YnI+CiugoKCgoKBSZXF1aXJlbWVudHM8YnI+CistLS0tLS0tLS0tLS08YnI+CistoFlvdaBuZWVkoGGgcmVjZW50oFNvbGFyaXMtbGlrZaBPU6B0b6Bjb21waWxloHRoaXOgcG9ydC6gU29sYXJpc6AxMaBvcjxicj4KK6CgYW55oGlsbHVtb3MtYmFzZWSgZGlzdHJpYnV0aW9uoHNob3VsZKB3b3JrLKBTb2xhcmlzoDEwoGlzoG5vdKBzdXBwb3J0ZWQuPGJyPgoroKBSdW5uaW5noGB1bmFtZaAtcmCgaGFzoHRvoHByaW50oCc1LjExJy48YnI+CistoFJlY2VudKBHQ0OgdG9vbHOgYXJloHJlcXVpcmVkLKBHQ0OgM6B3aWxsoHByb2JhYmx5oG5vdKB3b3JrLqBHQ0OgdmVyc2lvbjxicj4KK6CgNC41oChvcqBoaWdoZXIpoGlzoHJlY29tbWVuZGVkLjxicj4KKy2gU29sYXJpc6BsZKBoYXOgdG+gYmWgdGhloGZpcnN0oGxpbmtlcqBpbqB0aGWgUEFUSC6gR05VoGxkoGNhbm5vdKBiZaB1c2VkLjxicj4KK6CgVGhlcmWgaXOgY3VycmVudGx5oG5voGxpbmtlcqBjaGVja6BpbqB0aGWgY29uZmlndXJloHNjcmlwdKBidXSgdGhloGxpbmtpbmc8YnI+CiugoHBoYXNloGZhaWxzoGlmoEdOVaBsZKBpc6B1c2VkLqBSZWNlbnSgU29sYXJpcy9pbGx1bW9zoGRpc3RyaWJ1dGlvbnOgYXJloG9rLjxicj4KKy2gQaB3b3JraW5noGNvbWJpbmF0aW9uoG9moGF1dG90b29sc6Bpc6ByZXF1aXJlZDqgYWNsb2NhbCygYXV0b2hlYWRlciw8YnI+CiugoGF1dG9tYWtloGFuZKBhdXRvY29uZqBoYXZloHRvoGJloGZvdW5koGluoHRoZaBQQVRILqBZb3Wgc2hvdWxkoGJloGFibGWgdG88YnI+CiugoGluc3RhbGygcGtnOi9kZXZlbG9wZXIvYnVpbGQvYXV0b21ha2WgYW5koHBrZzovZGV2ZWxvcGVyL2J1aWxkL2F1dG9jb25mPGJyPgoroKBwYWNrYWdlc6B0b6BmdWxsZmlsoHRoaXOgcmVxdWlyZW1lbnQuPGJyPgorLaBTeXN0ZW2gaGVhZGVyoGZpbGVzoGFyZaByZXF1aXJlZC6gT26gU29sYXJpcyygdGhlc2WgY2FuoGJloGluc3RhbGxlZKB3aXRoOjxicj4KK6CgoKAjoHBrZ6BpbnN0YWxsoHN5c3RlbS9oZWFkZXI8YnI+CistoEdOVaBtYWtloGlzoGFsc2+gcmVxdWlyZWQuoE9uoFNvbGFyaXMsoHRoaXOgY2FuoGJloHF1aWNrbHmgYWNoaWV2ZWSgd2l0aDo8YnI+CiugoKCgJKBQQVRIPS91c3IvZ251L2JpbjokUEFUSDugZXhwb3J0oFBBVEg8YnI+CistoEZvcqByZW1vdGWgZGVidWdnaW5noHN1cHBvcnQsoHdvcmtpbmegR0RCoGlzoHJlcXVpcmVkoChzZWWgYmVsb3cpLjxicj4KKzxicj4KKzxicj4KK0NvbXBpbGF0aW9uPGJyPgorLS0tLS0tLS0tLS08YnI+CitQbGVhc2WgZm9sbG93oHRoZaBnZW5lcmljoGluc3RydWN0aW9uc6BpbqB0aGWgUkVBRE1FoGZpbGUuPGJyPgorPGJyPgorVGhloGNvbmZpZ3VyZaBzY3JpcHSgZGV0ZWN0c6BhoGNhbm9uaWNhbKBob3N0oHRvoGRldGVybWluZaB3aGljaKB2ZXJzaW9uoG9mPGJyPgorVmFsZ3JpbmSgc2hvdWxkoGJloGJ1aWx0LqBJZqB0aGWgc3lzdGVtoGNvbXBpbGVyoGJ5oGRlZmF1bHSgcHJvZHVjZXOgMzItYml0PGJyPgorYmluYXJpZXOgdGhlbqBvbmx5oGGgMzItYml0oHZlcnNpb26gb2agVmFsZ3JpbmSgd2lsbKBiZaBidWlsdC6gVG+gZW5hYmxlPGJyPgorY29tcGlsYXRpb26gb2agYm90aKA2NC1iaXSgYW5koDMyLWJpdKB2ZXJzaW9uc6BvbqBzdWNooGGgc3lzdGVtLKBpc3N1ZaB0aGU8YnI+Citjb25maWd1cmWgc2NyaXB0oGFzoGZvbGxvd3M6PGJyPgorLi9jb25maWd1cmWgQ0M9J2djY6AtbTY0J6BDWFg9J2crK6AtbTY0Jzxicj4KKzxicj4KKzxicj4KK09yYWNsZaBTb2xhcmlzoGFuZKBpbGx1bW9zoHN1cHBvcnQ8YnI+CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPGJyPgorT25loG9moHRoZaBtYWluoGdvYWygb2agdGhpc6Bwb3J0oGlzoHRvoHN1cHBvcnSgYm90aKBPcmFjbGWgU29sYXJpc6BhbmQ8YnI+CitpbGx1bW9zoGtlcm5lbHMuoFRoaXOgaXOgYaB2ZXJ5oGhhcmSgdGFza6BiZWNhdXNloFNvbGFyaXOga2VybmVsoHRyYWRpdGlvbmFsbHk8YnI+Citkb2VzoG5vdKBwcm92aWRloGGgc3RhYmxloHN5c2NhbGygaW50ZXJmYWNloGFuZKBiZWNhdXNloFZhbGdyaW5koGNvbnRhaW5zPGJyPgorc2V2ZXJhbKBwYXJ0c6B0aGF0oGFyZaBjbG9zZWx5oHRpZWSgdG+gdGhloHVuZGVybHlpbmega2VybmVsLqBGb3KgdGhlc2U8YnI+CityZWFzb25zLKB0aGWgcG9ydKBuZWVkc6B0b6BkZXRlY3Sgd2hpY2igc3lzY2FsbKBpbnRlcmZhY2VzoGFyZaBwcmVzZW50LqBUaGlzPGJyPgorZGV0ZWN0aW9uoGNhbm5vdKBiZaBkb25loGVhc2lseaBhdKBydW6gdGltZaBhbmSgaXOgY3VycmVudGx5oGltcGxlbWVudGVkoGFzPGJyPgorYaBzZXSgb2agY29uZmlndXJloHRlc3RzLqBUaGlzoG1lYW5zoHRoYXSgYaBiaW5hcnmgdmVyc2lvbqBvZqB0aGlzoHBvcnSgY2FuoGJlPGJyPgorZXhlY3V0ZWSgb25seaBvbqBhoGtlcm5lbKB0aGF0oGlzoGNvbXBhdGlibGWgd2l0aKBhoGtlcm5lbKB0aGF0oHdhc6B1c2VkPGJyPgorZHVyaW5noHRoZaBjb25maWd1cmWgYW5koGNvbXBpbGF0aW9uoHRpbWUuPGJyPgorPGJyPgorTWFpbqBjdXJyZW50bHkta25vd26gaW5jb21wYXRpYmlsaXRpZXM6PGJyPgorLaBTb2xhcmlzoDExoChyZWxlYXNlZKBpbqBOb3ZlbWJlcqAyMDExKaByZW1vdmVkoGGgbGFyZ2Wgc2V0oG9moHN5c2NhbGxzoHdoZXJlPGJyPgoroKAqYXSgdmFyaWFudKBvZqB0aGWgc3lzY2FsbKB3YXOgYWxzb6BwcmVzZW50LKBmb3KgZXhhbXBsZSygb3BlbigpoHZlcnN1czxicj4KK6Cgb3BlbmF0KEFUX0ZEQ1dEKaBbMV08YnI+CistoHN5c2NhbGygbnVtYmVyoGZvcqB1bmxpbmthdCgpoGlzoDc2oG9uoFNvbGFyaXOgMTEsoGJ1dKA2NaBvbqBpbGx1bW9zoFsyXTxicj4KKy2gaWxsdW1vc6AoaW6gQXByaWygMjAxMymgY2hhbmdlZKBpbnRlcmZhY2Wgb2agdGhloGFjY2VwdCgpoGFuZKBwaXBlKCk8YnI+CiugoHN5c2NhbGxzoFszXTxicj4KKy2gcG9zaXhfc3Bhd24oKaBmdW5jdGlvbmFsaXR5oGlzoGJhY2tlZKB1cKBieaB0cnVloHNwYXduKCmgc3lzY2FsbKBvbqBTb2xhcmlzoDEyPGJyPgoroKB3aGVyZWFzoGlsbHVtb3OgYW5koFNvbGFyaXOgMTGgbGV2ZXJhZ2WgdmZvcmsoKTxicj4KKy2gaWxsdW1vc6BhbmSgb2xkZXKgU29sYXJpc6B1c2WgdXRpbWVzeXMoKaBzeXNjYWxsoHdoZXJlYXOgbmV3ZXKgU29sYXJpczxicj4KK6CgdXNlc6B1dGltZW5zYXQoKTxicj4KKzxicj4KK1sxXaBodHRwOi8vZG9jcy5vcmFjbGUuY29tL2NkL0UyNjUwMl8wMS9odG1sL0UyODU1Ni9na3psZi5odG1sI2dremlwPGJyPgorWzJdoGh0dHBzOi8vd3d3LmlsbHVtb3Mub3JnL2lzc3Vlcy81MjE8YnI+CitbM12gaHR0cHM6Ly9naXRodWIuY29tL2lsbHVtb3MvaWxsdW1vcy1nYXRlL2NvbW1pdC81ZGJmZDE5YWQ1ZmNjMmI3NzlmNDBmODBmYTA1YzFiZDI4ZmQwYjRlPGJyPgorPGJyPgorPGJyPgorTGltaXRhdGlvbnM8YnI+CistLS0tLS0tLS0tLTxicj4KKy2gVGhloHBvcnSgaXOgV29yay1Jbi1Qcm9ncmVzcyygbWFueaB0aGluZ3OgbWF5oG5vdKB3b3JroG9yoHRoZXmgY2FuoGJloHN1YnRseTxicj4KK6CgYnJva2VuLjxicj4KKy2gQ29yZWR1bXBzoHByb2R1Y2VkoGJ5oFZhbGdyaW5koGRvoG5vdKBjb250YWluoGFsbKBpbmZvcm1hdGlvbqBhdmFpbGFibGUsPGJyPgoroKBlc3BlY2lhbGx5oG1pY3Jvc3RhdGWgYWNjb3VudGluZ6BhbmSgcHJvY2Vzc29yoGJpbmRpbmdzLjxicj4KKy2gQWNjZXNzaW5noGNvbnRlbnRzoG9moC9wcm9jL3NlbGYvcHNpbmZvoGlzoG5vdKB0aHJlYWQtc2FmZS6goFRoYXSgaXOgYmVjYXVzZTxicj4KK6CgVmFsZ3JpbmSgZW11bGF0ZXOgdGhpc6BmaWxloG9uoGJlaGFsZqBvZqB0aGWgY2xpZW50oHByb2dyYW1zLqCgRW50aXJlPGJyPgoroKBvcGVuKCmgLaByZWFkKCmgLaBjbG9zZSgpoHNlcXVlbmNloG9uoHRoaXOgZmlsZaBuZWVkc6B0b6BiZaBwZXJmb3JtZWQ8YnI+CiugoGF0b21pY2FsbHkuPGJyPgorLaBGb3JroGxpbWl0YXRpb25zOqB2Zm9yaygpoGlzoHRyYW5zbGF0ZWSgdG+gZm9yaygpLKBmb3JrYWxsKCmgaXOgbm90PGJyPgoroKBzdXBwb3J0ZWQuPGJyPgorLaBWYWxncmluZKBkb2VzoG5vdKB0cmFja6BkZWZpbmVkbmVzc6BvZqBzb21loGVmbGFnc6AoT0YsoFNGLKBaRiygQUYsoENGLKBQRik8YnI+CiugoGluZGl2aWR1YWxseaBmb3KgZWFjaKBmbGFnLqBBZnRlcqBhoHN5c2NhbGygaXOgZmluaXNoZWQsoHdoZW6gYaBjYXJyeaBmbGFnPGJyPgoroKBpc6BzZXSgYW5koGRlZmluZWQsoGFsbKBvdGhlcqBtZW50aW9uZWSgZmxhZ3Ogd2lsbKBiZaBhbHNvoGRlZmluZWSgZXZlbjxicj4KK6CgdGhvdWdooHRoZXmgbWlnaHSgYmWgdW5kZWZpbmVkoGJlZm9yZaBtYWtpbmegdGhloHN5c2NhbGwuPGJyPgorLaBTeXN0ZW2gY2FsbKAiZXhlY3ZlIqB3aXRooGGgZmlsZaBkZXNjcmlwdG9yoHdoaWNooHBvaW50c6B0b6BhoGhhcmRsaW5rPGJyPgoroKBpc6BjdXJyZW50bHmgbm90oHN1cHBvcnRlZC6gVGhhdKBpc6BiZWNhdXNloGZyb22gdGhloG9wZW5lZKBmaWxloGRlc2NyaXB0b3I8YnI+CiugoGl0c2VsZqBpdKBpc6Bub3SgcG9zc2libGWgdG+gcmV2ZXJzZaBtYXCgdGhloGludGVuZGVkoHBhdGhuYW1lLjxicj4KK6CgRXhhbXBsZXOgYXJloGZleGVjdmUoM0MpoGFuZKBpc2FleGVjKDNDKS48YnI+CistoFByb2dyYW2gaGVhZGVyc6BQVF9TVU5XX1NZU1NUQVSgYW5koFBUX1NVTldfU1lTU1RBVF9aT05FoGFyZaBub3Sgc3VwcG9ydGVkLjxicj4KK6CgVGhhdKBpcyygcHJvZ3JhbXOgbGlua2VkoHdpdGigbWFwZmlsZaBkaXJlY3RpdmWgUkVTRVJWRV9TRUdNRU5UoGFuZKBhdHRyaWJ1dGU8YnI+CiugoFRZUEWgZXF1YWygdG+gU1lTU1RBVKBvcqBTWVNTVEFUX1pPTkWgd2lsbKBjYXVzZaBWYWxncmluZKBleGl0LqBJdKBpc6Bub3Q8YnI+CiugoHBvc3NpYmxloGZvcqBWYWxncmluZKB0b6BhcnJhbmdloG1hcHBpbmegb2agYaBrZXJuZWygc2hhcmVkoHBhZ2WgYXSgdGhlPGJyPgoroKBhZGRyZXNzoHNwZWNpZmllZKBpbqB0aGWgbWFwZmlsZaBmb3KgdGhloGd1ZXN0oGFwcGxpY2F0aW9uLqBUaGVyZaBpc6BjdXJyZW50bHk8YnI+CiugoG5voHN1Y2igbWVjaGFuaXNtoGluoFNvbGFyaXMuoEhhY2t5oHdvcmthcm91bmRzoGFyZaBwb3NzaWJsZSygdGhvdWdoLjxicj4KKy2gV2hlbqBhoHRocmVhZKBoYXOgbm+gc3RhY2ugdGhlbqBhbGygc3lzdGVtoGNhbGxzoHdpbGygcmVzdWx0oGluoFZhbGdyaW5kPGJyPgoroKBjcmFzaCygZXZlbqB0aG91Z2igc3VjaKBzeXN0ZW2gY2FsbHOgdXNloGp1c3SgcGFyYW1ldGVyc6BwYXNzZWSgaW6gcmVnaXN0ZXJzLjxicj4KK6CgVGhpc6BzaG91bGSgaGFwcGVuoG9ubHmgaW6gcGF0aG9sb2dpY2FsoHNpdHVhdGlvbnOgd2hlbqBhoHRocmVhZKBpc6BjcmVhdGVkPGJyPgoroKB3aXRooGN1c3RvbaBtbWFwJ2VkoHN0YWNroGFuZKB0aGlzoHN0YWNroGlzoHRoZW6gdW5tYXAnZWSgZHVyaW5noHRocmVhZDxicj4KK6CgZXhlY3V0aW9uLjxicj4KKzxicj4KKzxicj4KK1JlbW90ZaBkZWJ1Z2dpbmegc3VwcG9ydDxicj4KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTxicj4KK1NvbGFyaXOgcG9ydKBvZqBHREKgaGFzoGGgbWFqb3KgZmxhd6B3aGljaKBwcmV2ZW50c6ByZW1vdGWgZGVidWdnaW5noGZyb208YnI+Cit3b3JraW5noGNvcnJlY3RseS6gRm9ydHVuYXRlbHmgdGhpc6BmbGF3oGhhc6BhbqBlYXN5oGZpeKBbNF0uoFVuZm9ydHVuYXRlbHk8YnI+CitpdKBpc6Bub3SgcHJlc2VudKBpbqB0aGWgY3VycmVudKBHREKgNy42LjIuoFRoaXOgYm9pbHOgZG93bqB0b6BzZXZlcmFsPGJyPgorb3B0aW9uczo8YnI+CistoFVzZaBHREKgc2hpcHBlZKB3aXRooFNvbGFyaXOgMTEuMqB3aGljaKBoYXOgdGhpc6BmbGF3oGZpeGVkLjxicj4KKy2gV2FpdKB1bnRpbKBHREKgNy43oGJlY29tZXOgYXZhaWxhYmxloCh0aGVyZaB3b24ndKBiZaBvdGhlcqA3LjYueKByZWxlYXNlcykuPGJyPgorLaBCdWlsZKBHREKgNy42LjKgd2l0aKB0aGWgZml4oGJ5oHlvdXJzZWxmoHVzaW5noHRoZaBmb2xsb3dpbmegc3RlcHM6PGJyPgoroKCgoCOgcGtnoGluc3RhbGygZGV2ZWxvcGVyL2dudS1iaW51dGlsczxicj4KK6CgoKAkoHdnZXSgaHR0cDovL2Z0cC5nbnUub3JnL2dudS9nZGIvZ2RiLTcuNi4yLnRhci5nejxicj4KK6CgoKAkoGd6aXCgLWRjoGdkYi03LjYuMi50YXIuZ3qgfKB0YXKgeGagLTxicj4KK6CgoKAkoGNkoGdkYi03LjYuMjxicj4KK6CgoKAkoHBhdGNooC1wMaAtaaAvcGF0aC90by92YWxncmluZC1zb2xhcmlzL3NvbGFyaXMvZ2RiLXNvbC10aHJlYWQucGF0Y2g8YnI+CiugoKCgJKBleHBvcnSgTElCUz0iLWxuY3Vyc2VzIjxicj4KK6CgoKAkoGV4cG9ydKBDQz0iZ2NjoC1tNjQiPGJyPgoroKCgoCSgLi9jb25maWd1cmWgLS13aXRoLXg9bm+gLS13aXRoLWN1cnNlc6AtLXdpdGgtbGliZXhwYXQtcHJlZml4PS91c3IvbGliPGJyPgoroKCgoCSgZ21ha2WgJmFtcDsmYW1wO6BnbWFrZaBpbnN0YWxsPGJyPgorPGJyPgorWzRdoGh0dHBzOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxMy0xMi9tc2cwMDU3My5odG1sPGJyPgorPGJyPgorPGJyPgorVE9ET6BsaXN0PGJyPgorLS0tLS0tLS0tPGJyPgorLaBGaXigZmV3oHJlbWFpbmluZ6BmYWlsaW5noHRlc3RzLjxicj4KKy2gQWRkoG1vcmWgU29sYXJpcy1zcGVjaWZpY6B0ZXN0c6AoZXNwZWNpYWxseaBmb3KgdGhloGRvb3KgYW5koHNwYXduPGJyPgoroKBzeXNjYWxscykuPGJyPgorLaBQcm92aWRloGJldHRlcqBlcnJvcqByZXBvcnRpbmegZm9yoHZhcmlvdXOgc3Vic3lzY2FsbHMuPGJyPgorLaBJbXBsZW1lbnSgc3RvcmluZ6BvZqBleHRyYaByZWdpc3RlcqBzdGF0ZaBpbqBzaWduYWygZnJhbWUuPGJyPgorLaBQZXJmb3JtYW5jZaBjb21wYXJpc29uoGFnYWluc3Sgb3RoZXKgcGxhdGZvcm1zLjxicj4KKzxicj4KKy2gUHJldmVudKBTSUdQSVBFoHdoZW6gd3JpdGluZ6B0b6BhoHNvY2tldKAoY29yZWdyaW5kL21fbGliY2ZpbGUuYykuPGJyPgorLaBJbXBsZW1lbnSgdGlja2V0oGxvY2tpbmegZm9yoGZhaXKgc2NoZWR1bGluZ6AoLS1mYWlyLXNjaGVkPXllcykuPGJyPgorLaBJbXBsZW1lbnSgc3VwcG9ydKBpbqBEUkSgYW5koEhlbGdyaW5koHRvb2xzoGZvcqB0aHJfam9pbigpoHdpdGigdGhyZWFkoD09oDAuPGJyPgorLaBBZGSgc3VwcG9ydKBmb3KgYWNjZXNzaW5noHRocmVhZC1sb2NhbKB2YXJpYWJsZXOgdmlhoGdkYqAoYXV4cHJvZ3MvZ2V0b2ZmLmMpLjxicj4KK6CgUmVxdWlyZXOgcmVzZWFyY2igb26gaW50ZXJuYWygbGliY6BUTFOgcmVwcmVzZW50YXRpb24uPGJyPgorLaBWRVigc3VwcG9ydHOgQVZYLKBCTUmgYW5koEFWWDIuoEludmVzdGlnYXRloGlmoHRoZXmgY2FuoGJloGVuYWJsZWSgb248YnI+CiugoFNvbGFyaXMvaWxsdW1vcy48YnI+CistoEludmVzdGlnYXRloHN1cHBvcnSgZm9yoG1vcmWgZmxhZ3OgaW6gQVRfU1VOX0FVWEZMQUdTLjxicj4KKy2gRml4oFZhbGdyaW5koGNyYXNooHdoZW6gYaB0aHJlYWSgaGFzoG5voHN0YWNroGFuZKBzeXN3cmFwLW1haW4uY6BhY2Nlc3Nlczxicj4KK6CgYWxsoHBvc3NpYmxloHN5c2NhbGygcGFyYW1ldGVycy6gRW5hYmxloGhlbGdyaW5kL3Rlc3RzL3N0YWNrdGVhcmRvd24uYzxicj4KK6CgdG+gc2VloHRoaXOgaW6gZWZmZWN0LqBXb3VsZKByZXF1aXJloGF3YXJlbmVzc6BvZqBzeXNjYWxsoHBhcmFtZXRlcqBzZW1hbnRpY3MuPGJyPgorLaBDb3JyZWN0bHmgcHJpbnSgYXJndW1lbnRzoG9moERXX0NGQV9PUkNMX2FyZ19sb2OgaW6gc2hvd19DRl9pbnN0cnVjdGlvbigpoHdoZW48YnI+CiugoGl0oGlzoGltcGxlbWVudGVkoGluoGxpYmR3YXJmLjxicj4KKzxicj4KKzxicj4KK0NvbnRhY3RzPGJyPgorLS0tLS0tLS08YnI+CitQbGVhc2Wgc2VuZKBidWegcmVwb3J0c6BhbmSgYW55oHF1ZXN0aW9uc6BhYm91dKB0aGWgcG9ydKB0bzo8YnI+CitJdm+gUmFpc3KgJmx0O2l2b3NoQGl2b3NoLm5ldCZndDs8YnI+CitQZXRyoFBhdmx1oCZsdDtzZXR1cEBkYWdvYmFoLmN6Jmd0Ozxicj4KKzxicj4KK6CgoKA8L3A+PC9kaXY+Cis8L2Rpdj4KKzxkaXY+Cis8YnI+PHRhYmxlIGNsYXNzPSJuYXYiIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0iMyIgY2VsbHBhZGRpbmc9IjIiIGJvcmRlcj0iMCIgc3VtbWFyeT0iTmF2aWdhdGlvbiBmb290ZXIiPgorPHRyPgorPHRkIHJvd3NwYW49IjIiIHdpZHRoPSI0MCUiIGFsaWduPSJsZWZ0Ij4KKzxhIGFjY2Vzc2tleT0icCIgaHJlZj0iZGlzdC5yZWFkbWUtbWlwcy5odG1sIj4mbHQ7Jmx0O6AxMS6gUkVBRE1FLm1pcHM8L2E+oDwvdGQ+Cis8dGQgd2lkdGg9IjIwJSIgYWxpZ249ImNlbnRlciI+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJkaXN0Lmh0bWwiPlVwPC9hPjwvdGQ+Cis8dGQgcm93c3Bhbj0iMiIgd2lkdGg9IjQwJSIgYWxpZ249InJpZ2h0Ij6gPGEgYWNjZXNza2V5PSJuIiBocmVmPSJsaWNlbnNlcy5odG1sIj5HTlUgTGljZW5zZXOgJmd0OyZndDs8L2E+Cis8L3RkPgorPC90cj4KKzx0cj48dGQgd2lkdGg9IjIwJSIgYWxpZ249ImNlbnRlciI+PGEgYWNjZXNza2V5PSJoIiBocmVmPSJpbmRleC5odG1sIj5Ib21lPC9hPjwvdGQ+PC90cj4KKzwvdGFibGU+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL2RvY3MvaHRtbC9kaXN0LnJlYWRtZS5odG1sIGIvZG9jcy9odG1sL2Rpc3QucmVhZG1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjkwNGRlMwotLS0gL2Rldi9udWxsCisrKyBiL2RvY3MvaHRtbC9kaXN0LnJlYWRtZS5odG1sCkBAIC0wLDAgKzEsMTQwIEBACis8aHRtbD4KKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSI+Cis8dGl0bGU+NC6gUkVBRE1FPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9InZnX2Jhc2ljLmNzcyI+Cis8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkRvY0Jvb2sgWFNMIFN0eWxlc2hlZXRzIFYxLjc4LjEiPgorPGxpbmsgcmVsPSJob21lIiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0iVmFsZ3JpbmQgRG9jdW1lbnRhdGlvbiI+Cis8bGluayByZWw9InVwIiBocmVmPSJkaXN0Lmh0bWwiIHRpdGxlPSJWYWxncmluZCBEaXN0cmlidXRpb24gRG9jdW1lbnRzIj4KKzxsaW5rIHJlbD0icHJldiIgaHJlZj0iZGlzdC5uZXdzLm9sZC5odG1sIiB0aXRsZT0iMy6gT0xERVIgTkVXUyI+Cis8bGluayByZWw9Im5leHQiIGhyZWY9ImRpc3QucmVhZG1lLW1pc3NpbmcuaHRtbCIgdGl0bGU9IjUuoFJFQURNRV9NSVNTSU5HX1NZU0NBTExfT1JfSU9DVEwiPgorPC9oZWFkPgorPGJvZHkgYmdjb2xvcj0id2hpdGUiIHRleHQ9ImJsYWNrIiBsaW5rPSIjMDAwMEZGIiB2bGluaz0iIzg0MDA4NCIgYWxpbms9IiMwMDAwRkYiPgorPGRpdj48dGFibGUgY2xhc3M9Im5hdiIgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSIzIiBjZWxscGFkZGluZz0iMyIgYm9yZGVyPSIwIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciI+PHRyPgorPHRkIHdpZHRoPSIyMnB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJwIiBocmVmPSJkaXN0Lm5ld3Mub2xkLmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvcHJldi5wbmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIyMSIgYm9yZGVyPSIwIiBhbHQ9IlByZXYiPjwvYT48L3RkPgorPHRkIHdpZHRoPSIyNXB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJkaXN0Lmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvdXAucG5nIiB3aWR0aD0iMjEiIGhlaWdodD0iMTgiIGJvcmRlcj0iMCIgYWx0PSJVcCI+PC9hPjwvdGQ+Cis8dGQgd2lkdGg9IjMxcHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvaG9tZS5wbmciIHdpZHRoPSIyNyIgaGVpZ2h0PSIyMCIgYm9yZGVyPSIwIiBhbHQ9IlVwIj48L2E+PC90ZD4KKzx0aCBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+VmFsZ3JpbmQgRGlzdHJpYnV0aW9uIERvY3VtZW50czwvdGg+Cis8dGQgd2lkdGg9IjIycHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImRpc3QucmVhZG1lLW1pc3NpbmcuaHRtbCI+PGltZyBzcmM9ImltYWdlcy9uZXh0LnBuZyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjIxIiBib3JkZXI9IjAiIGFsdD0iTmV4dCI+PC9hPjwvdGQ+Cis8L3RyPjwvdGFibGU+PC9kaXY+Cis8ZGl2IGNsYXNzPSJjaGFwdGVyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMSBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0iZGlzdC5yZWFkbWUiPjwvYT40LqBSRUFETUU8L2gxPjwvZGl2PjwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0ibGl0ZXJhbGxheW91dCI+PHA+PGJyPgoroKCgoKCgPGJyPgorUmVsZWFzZaBub3Rlc6Bmb3KgVmFsZ3JpbmQ8YnI+Cit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fjxicj4KK0lmoHlvdaBhcmWgYnVpbGRpbmegYaBiaW5hcnmgcGFja2FnZaBvZqBWYWxncmluZKBmb3KgZGlzdHJpYnV0aW9uLDxicj4KK3BsZWFzZaByZWFkoFJFQURNRV9QQUNLQUdFUlMuoKBJdKBjb250YWluc6Bzb21loGltcG9ydGFudKBpbmZvcm1hdGlvbi48YnI+Cis8YnI+CitJZqB5b3WgYXJloGRldmVsb3BpbmegVmFsZ3JpbmQsoHBsZWFzZaByZWFkoFJFQURNRV9ERVZFTE9QRVJTLqCgSXSgY29udGFpbnM8YnI+Citzb21loHVzZWZ1bKBpbmZvcm1hdGlvbi48YnI+Cis8YnI+CitGb3KgaW5zdHJ1Y3Rpb25zoG9uoGhvd6B0b6BidWlsZC9pbnN0YWxsLKBzZWWgdGhloGVuZKBvZqB0aGlzoGZpbGUuPGJyPgorPGJyPgorSWageW91oGhhdmWgcHJvYmxlbXMsoGNvbnN1bHSgdGhloEZBUaB0b6BzZWWgaWagdGhlcmWgYXJloHdvcmthcm91bmRzLjxicj4KKzxicj4KKzxicj4KK0V4ZWN1dGl2ZaBTdW1tYXJ5PGJyPgorfn5+fn5+fn5+fn5+fn5+fn48YnI+CitWYWxncmluZKBpc6BhoGZyYW1ld29ya6Bmb3KgYnVpbGRpbmegZHluYW1pY6BhbmFseXNpc6B0b29scy6gVGhlcmWgYXJlPGJyPgorVmFsZ3JpbmSgdG9vbHOgdGhhdKBjYW6gYXV0b21hdGljYWxseaBkZXRlY3SgbWFueaBtZW1vcnmgbWFuYWdlbWVudDxicj4KK2FuZKB0aHJlYWRpbmegYnVncyygYW5koHByb2ZpbGWgeW91cqBwcm9ncmFtc6BpbqBkZXRhaWwuoFlvdaBjYW6gYWxzbzxicj4KK3VzZaBWYWxncmluZKB0b6BidWlsZKBuZXegdG9vbHMuPGJyPgorPGJyPgorVGhloFZhbGdyaW5koGRpc3RyaWJ1dGlvbqBjdXJyZW50bHmgaW5jbHVkZXOgc2l4oHByb2R1Y3Rpb24tcXVhbGl0eTxicj4KK3Rvb2xzOqBhoG1lbW9yeaBlcnJvcqBkZXRlY3RvciygdHdvoHRocmVhZKBlcnJvcqBkZXRlY3RvcnMsoGGgY2FjaGU8YnI+CithbmSgYnJhbmNoLXByZWRpY3Rpb26gcHJvZmlsZXIsoGGgY2FsbC1ncmFwaKBnZW5lcmF0aW5noGNhY2hloGFiZDxicj4KK2JyYW5jaC1wcmVkaWN0aW9uoHByb2ZpbGVyLKBhbmSgYaBoZWFwoHByb2ZpbGVyLqBJdKBhbHNvoGluY2x1ZGVzPGJyPgordGhyZWWgZXhwZXJpbWVudGFsoHRvb2xzOqBhoGhlYXAvc3RhY2svZ2xvYmFsoGFycmF5oG92ZXJydW6gZGV0ZWN0b3IsPGJyPgorYaBkaWZmZXJlbnSga2luZKBvZqBoZWFwoHByb2ZpbGVyLKBhbmSgYaBTaW1Qb2ludKBiYXNpY6BibG9ja6B2ZWN0b3I8YnI+CitnZW5lcmF0b3IuPGJyPgorPGJyPgorVmFsZ3JpbmSgaXOgY2xvc2VseaB0aWVkoHRvoGRldGFpbHOgb2agdGhloENQVSygb3BlcmF0aW5noHN5c3RlbaBhbmSgdG88YnI+CithoGxlc3NlcqBleHRlbnQsoGNvbXBpbGVyoGFuZKBiYXNpY6BDoGxpYnJhcmllcy6gVGhpc6BtYWtlc6BpdKBkaWZmaWN1bHQ8YnI+Cit0b6BtYWtloGl0oHBvcnRhYmxlLqCgTm9uZXRoZWxlc3MsoGl0oGlzoGF2YWlsYWJsZaBmb3KgdGhloGZvbGxvd2luZzxicj4KK3BsYXRmb3JtczqgPGJyPgorPGJyPgorLaBYODYvTGludXg8YnI+CistoEFNRDY0L0xpbnV4PGJyPgorLaBQUEMzMi9MaW51eDxicj4KKy2gUFBDNjQvTGludXg8YnI+CistoEFSTS9MaW51eDxicj4KKy2geDg2L01hY09TWDxicj4KKy2gQU1ENjQvTWFjT1NYPGJyPgorLaBTMzkwWC9MaW51eDxicj4KKy2gTUlQUzMyL0xpbnV4PGJyPgorLaBNSVBTNjQvTGludXg8YnI+CistoFg4Ni9Tb2xhcmlzPGJyPgorLaBBTUQ2NC9Tb2xhcmlzPGJyPgorPGJyPgorTm90ZaB0aGF0oEFNRDY0oGlzoGp1c3SgYW5vdGhlcqBuYW1loGZvcqB4ODZfNjQsoGFuZKBWYWxncmluZKBydW5zoGZpbmU8YnI+CitvbqBJbnRlbKBwcm9jZXNzb3JzLqCgQWxzb6Bub3RloHRoYXSgdGhloGNvcmWgb2agTWFjT1NYoGlzoGNhbGxlZDxicj4KKyJEYXJ3aW4ioGFuZKB0aGlzoG5hbWWgaXOgdXNlZKBzb21ldGltZXMuPGJyPgorPGJyPgorVmFsZ3JpbmSgaXOgbGljZW5zZWSgdW5kZXKgdGhloEdOVaBHZW5lcmFsoFB1YmxpY6BMaWNlbnNlLKB2ZXJzaW9uoDIuoDxicj4KK1JlYWSgdGhloGZpbGWgQ09QWUlOR6BpbqB0aGWgc291cmNloGRpc3RyaWJ1dGlvbqBmb3KgZGV0YWlscy48YnI+Cis8YnI+CitIb3dldmVyOqBpZqB5b3WgY29udHJpYnV0ZaBjb2RlLKB5b3WgbmVlZKB0b6BtYWtloGl0oGF2YWlsYWJsZaBhc6BHUEw8YnI+Cit2ZXJzaW9uoDKgb3KgbGF0ZXIsoGFuZKBub3SgMi1vbmx5Ljxicj4KKzxicj4KKzxicj4KK0RvY3VtZW50YXRpb248YnI+Cit+fn5+fn5+fn5+fn5+PGJyPgorQaBjb21wcmVoZW5zaXZloHVzZXKgZ3VpZGWgaXOgc3VwcGxpZWQuoKBQb2ludKB5b3VyoGJyb3dzZXKgYXQ8YnI+CiskUFJFRklYL3NoYXJlL2RvYy92YWxncmluZC9tYW51YWwuaHRtbCygd2hlcmWgJFBSRUZJWKBpc6B3aGF0ZXZlcqB5b3U8YnI+CitzcGVjaWZpZWSgd2l0aKAtLXByZWZpeD2gd2hlbqBidWlsZGluZy48YnI+Cis8YnI+Cis8YnI+CitCdWlsZGluZ6BhbmSgaW5zdGFsbGluZ6BpdDxicj4KK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+PGJyPgorVG+gaW5zdGFsbKBmcm9toHRoZaBTdWJ2ZXJzaW9uoHJlcG9zaXRvcnmgOjxicj4KKzxicj4KK6CgMC6gQ2hlY2ugb3V0oHRoZaBjb2RloGZyb22gU1ZOLKBmb2xsb3dpbmegdGhloGluc3RydWN0aW9uc6BhdDxicj4KK6CgoKCgaHR0cDovL3d3dy52YWxncmluZC5vcmcvZG93bmxvYWRzL3JlcG9zaXRvcnkuaHRtbC48YnI+Cis8YnI+CiugoDEuoGNkoGludG+gdGhloHNvdXJjZaBkaXJlY3RvcnkuPGJyPgorPGJyPgoroKAyLqBSdW6gLi9hdXRvZ2VuLnNooHRvoHNldHVwoHRoZaBlbnZpcm9ubWVudKAoeW91oG5lZWSgdGhloHN0YW5kYXJkPGJyPgoroKCgoKBhdXRvY29uZqB0b29sc6B0b6Bkb6BzbykuPGJyPgorPGJyPgoroKAzLqBDb250aW51ZaB3aXRooHRoZaBmb2xsb3dpbmegaW5zdHJ1Y3Rpb25zLi4uPGJyPgorPGJyPgorVG+gaW5zdGFsbKBmcm9toGGgdGFyLmJ6MqBkaXN0cmlidXRpb246PGJyPgorPGJyPgoroKA0LqBSdW6gLi9jb25maWd1cmUsoHdpdGigc29tZaBvcHRpb25zoGlmoHlvdaB3aXNoLqCgVGhloG9ubHmgaW50ZXJlc3Rpbmc8YnI+CiugoKCgoG9uZaBpc6B0aGWgdXN1YWygLS1wcmVmaXg9L3doZXJlL3lvdS93YW50L2l0L2luc3RhbGxlZC48YnI+Cis8YnI+CiugoDUuoFJ1bqAibWFrZSIuPGJyPgorPGJyPgoroKA2LqBSdW6gIm1ha2WgaW5zdGFsbCIsoHBvc3NpYmx5oGFzoHJvb3SgaWagdGhloGRlc3RpbmF0aW9uoHBlcm1pc3Npb25zPGJyPgoroKCgoKByZXF1aXJloHRoYXQuPGJyPgorPGJyPgoroKA3LqBTZWWgaWagaXSgd29ya3MuoKBUcnmgInZhbGdyaW5koGxzoC1sIi6goEVpdGhlcqB0aGlzoHdvcmtzLKBvcqBpdDxicj4KK6CgoKCgYm9tYnOgb3V0oHdpdGigc29tZaBjb21wbGFpbnQuoKBJbqB0aGF0oGNhc2UsoHBsZWFzZaBsZXSgdXOga25vdzxicj4KK6CgoKCgKHNlZaB3d3cudmFsZ3JpbmQub3JnKS48YnI+Cis8YnI+CitJbXBvcnRhbnQhoKBEb6Bub3SgbW92ZaB0aGWgdmFsZ3JpbmSgaW5zdGFsbGF0aW9uoGludG+gYaBwbGFjZTxicj4KK2RpZmZlcmVudKBmcm9toHRoYXSgc3BlY2lmaWVkoGJ5oC0tcHJlZml4oGF0oGJ1aWxkoHRpbWUuoKBUaGlzoHdpbGw8YnI+CitjYXVzZaB0aGluZ3OgdG+gYnJlYWugaW6gc3VidGxloHdheXMsoG1vc3RseaB3aGVuoFZhbGdyaW5koGhhbmRsZXM8YnI+Citmb3JrL2V4ZWOgY2FsbHMuPGJyPgorPGJyPgorPGJyPgorVGhloFZhbGdyaW5koERldmVsb3BlcnM8YnI+Cis8YnI+CiugoKCgPC9wPjwvZGl2PgorPC9kaXY+Cis8ZGl2PgorPGJyPjx0YWJsZSBjbGFzcz0ibmF2IiB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjMiIGNlbGxwYWRkaW5nPSIyIiBib3JkZXI9IjAiIHN1bW1hcnk9Ik5hdmlnYXRpb24gZm9vdGVyIj4KKzx0cj4KKzx0ZCByb3dzcGFuPSIyIiB3aWR0aD0iNDAlIiBhbGlnbj0ibGVmdCI+Cis8YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImRpc3QubmV3cy5vbGQuaHRtbCI+Jmx0OyZsdDugMy6gT0xERVIgTkVXUzwvYT6gPC90ZD4KKzx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0iY2VudGVyIj48YSBhY2Nlc3NrZXk9InUiIGhyZWY9ImRpc3QuaHRtbCI+VXA8L2E+PC90ZD4KKzx0ZCByb3dzcGFuPSIyIiB3aWR0aD0iNDAlIiBhbGlnbj0icmlnaHQiPqA8YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImRpc3QucmVhZG1lLW1pc3NpbmcuaHRtbCI+NS6gUkVBRE1FX01JU1NJTkdfU1lTQ0FMTF9PUl9JT0NUTKAmZ3Q7Jmd0OzwvYT4KKzwvdGQ+Cis8L3RyPgorPHRyPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0iY2VudGVyIj48YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPkhvbWU8L2E+PC90ZD48L3RyPgorPC90YWJsZT4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvZG9jcy9odG1sL2RyZC1tYW51YWwuaHRtbCBiL2RvY3MvaHRtbC9kcmQtbWFudWFsLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGRlMDk1NQotLS0gL2Rldi9udWxsCisrKyBiL2RvY3MvaHRtbC9kcmQtbWFudWFsLmh0bWwKQEAgLTAsMCArMSwxNTMwIEBACis8aHRtbD4KKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSI+Cis8dGl0bGU+OC6gRFJEOiBhIHRocmVhZCBlcnJvciBkZXRlY3RvcjwvdGl0bGU+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJ2Z19iYXNpYy5jc3MiPgorPG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJEb2NCb29rIFhTTCBTdHlsZXNoZWV0cyBWMS43OC4xIj4KKzxsaW5rIHJlbD0iaG9tZSIgaHJlZj0iaW5kZXguaHRtbCIgdGl0bGU9IlZhbGdyaW5kIERvY3VtZW50YXRpb24iPgorPGxpbmsgcmVsPSJ1cCIgaHJlZj0ibWFudWFsLmh0bWwiIHRpdGxlPSJWYWxncmluZCBVc2VyIE1hbnVhbCI+Cis8bGluayByZWw9InByZXYiIGhyZWY9ImhnLW1hbnVhbC5odG1sIiB0aXRsZT0iNy6gSGVsZ3JpbmQ6IGEgdGhyZWFkIGVycm9yIGRldGVjdG9yIj4KKzxsaW5rIHJlbD0ibmV4dCIgaHJlZj0ibXMtbWFudWFsLmh0bWwiIHRpdGxlPSI5LqBNYXNzaWY6IGEgaGVhcCBwcm9maWxlciI+Cis8L2hlYWQ+Cis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+Cis8ZGl2Pjx0YWJsZSBjbGFzcz0ibmF2IiB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjMiIGNlbGxwYWRkaW5nPSIzIiBib3JkZXI9IjAiIHN1bW1hcnk9Ik5hdmlnYXRpb24gaGVhZGVyIj48dHI+Cis8dGQgd2lkdGg9IjIycHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImhnLW1hbnVhbC5odG1sIj48aW1nIHNyYz0iaW1hZ2VzL3ByZXYucG5nIiB3aWR0aD0iMTgiIGhlaWdodD0iMjEiIGJvcmRlcj0iMCIgYWx0PSJQcmV2Ij48L2E+PC90ZD4KKzx0ZCB3aWR0aD0iMjVweCIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPjxhIGFjY2Vzc2tleT0idSIgaHJlZj0ibWFudWFsLmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvdXAucG5nIiB3aWR0aD0iMjEiIGhlaWdodD0iMTgiIGJvcmRlcj0iMCIgYWx0PSJVcCI+PC9hPjwvdGQ+Cis8dGQgd2lkdGg9IjMxcHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvaG9tZS5wbmciIHdpZHRoPSIyNyIgaGVpZ2h0PSIyMCIgYm9yZGVyPSIwIiBhbHQ9IlVwIj48L2E+PC90ZD4KKzx0aCBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+VmFsZ3JpbmQgVXNlciBNYW51YWw8L3RoPgorPHRkIHdpZHRoPSIyMnB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJuIiBocmVmPSJtcy1tYW51YWwuaHRtbCI+PGltZyBzcmM9ImltYWdlcy9uZXh0LnBuZyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjIxIiBib3JkZXI9IjAiIGFsdD0iTmV4dCI+PC9hPjwvdGQ+Cis8L3RyPjwvdGFibGU+PC9kaXY+Cis8ZGl2IGNsYXNzPSJjaGFwdGVyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMSBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0iZHJkLW1hbnVhbCI+PC9hPjguoERSRDogYSB0aHJlYWQgZXJyb3IgZGV0ZWN0b3I8L2gxPjwvZGl2PjwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0idG9jIj4KKzxwPjxiPlRhYmxlIG9mIENvbnRlbnRzPC9iPjwvcD4KKzxkbCBjbGFzcz0idG9jIj4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9ImRyZC1tYW51YWwuaHRtbCNkcmQtbWFudWFsLm92ZXJ2aWV3Ij44LjEuIE92ZXJ2aWV3PC9hPjwvc3Bhbj48L2R0PgorPGRkPjxkbD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9ImRyZC1tYW51YWwuaHRtbCNkcmQtbWFudWFsLm10LXByb2dyLW1vZGVscyI+OC4xLjEuIE11bHRpdGhyZWFkZWQgUHJvZ3JhbW1pbmcgUGFyYWRpZ21zPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iZHJkLW1hbnVhbC5odG1sI2RyZC1tYW51YWwucHRocmVhZHMtbW9kZWwiPjguMS4yLiBQT1NJWCBUaHJlYWRzIFByb2dyYW1taW5nIE1vZGVsPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iZHJkLW1hbnVhbC5odG1sI2RyZC1tYW51YWwubXQtcHJvYmxlbXMiPjguMS4zLiBNdWx0aXRocmVhZGVkIFByb2dyYW1taW5nIFByb2JsZW1zPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iZHJkLW1hbnVhbC5odG1sI2RyZC1tYW51YWwuZGF0YS1yYWNlLWRldGVjdGlvbiI+OC4xLjQuIERhdGEgUmFjZSBEZXRlY3Rpb248L2E+PC9zcGFuPjwvZHQ+Cis8L2RsPjwvZGQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJkcmQtbWFudWFsLmh0bWwjZHJkLW1hbnVhbC51c2luZy1kcmQiPjguMi4gVXNpbmcgRFJEPC9hPjwvc3Bhbj48L2R0PgorPGRkPjxkbD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9ImRyZC1tYW51YWwuaHRtbCNkcmQtbWFudWFsLm9wdGlvbnMiPjguMi4xLiBEUkQgQ29tbWFuZC1saW5lIE9wdGlvbnM8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJkcmQtbWFudWFsLmh0bWwjZHJkLW1hbnVhbC5kYXRhLXJhY2VzIj44LjIuMi4gRGV0ZWN0ZWQgRXJyb3JzOiBEYXRhIFJhY2VzPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iZHJkLW1hbnVhbC5odG1sI2RyZC1tYW51YWwubG9jay1jb250ZW50aW9uIj44LjIuMy4gRGV0ZWN0ZWQgRXJyb3JzOiBMb2NrIENvbnRlbnRpb248L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJkcmQtbWFudWFsLmh0bWwjZHJkLW1hbnVhbC5hcGktY2hlY2tzIj44LjIuNC4gRGV0ZWN0ZWQgRXJyb3JzOiBNaXN1c2Ugb2YgdGhlIFBPU0lYIHRocmVhZHMgQVBJPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iZHJkLW1hbnVhbC5odG1sI2RyZC1tYW51YWwuY2xpZW50cmVxcyI+OC4yLjUuIENsaWVudCBSZXF1ZXN0czwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9ImRyZC1tYW51YWwuaHRtbCNkcmQtbWFudWFsLkMrKzExIj44LjIuNi4gRGVidWdnaW5nIEMrKzExIFByb2dyYW1zPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iZHJkLW1hbnVhbC5odG1sI2RyZC1tYW51YWwuZ25vbWUiPjguMi43LiBEZWJ1Z2dpbmcgR05PTUUgUHJvZ3JhbXM8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJkcmQtbWFudWFsLmh0bWwjZHJkLW1hbnVhbC5ib29zdC50aHJlYWQiPjguMi44LiBEZWJ1Z2dpbmcgQm9vc3QuVGhyZWFkIFByb2dyYW1zPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iZHJkLW1hbnVhbC5odG1sI2RyZC1tYW51YWwub3Blbm1wIj44LjIuOS4gRGVidWdnaW5nIE9wZW5NUCBQcm9ncmFtczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9ImRyZC1tYW51YWwuaHRtbCNkcmQtbWFudWFsLmN1c3QtbWVtLWFsbG9jIj44LjIuMTAuIERSRCBhbmQgQ3VzdG9tIE1lbW9yeSBBbGxvY2F0b3JzPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iZHJkLW1hbnVhbC5odG1sI2RyZC1tYW51YWwuZHJkLXZlcnN1cy1tZW1jaGVjayI+OC4yLjExLiBEUkQgVmVyc3VzIE1lbWNoZWNrPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iZHJkLW1hbnVhbC5odG1sI2RyZC1tYW51YWwucmVzb3VyY2UtcmVxdWlyZW1lbnRzIj44LjIuMTIuIFJlc291cmNlIFJlcXVpcmVtZW50czwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9ImRyZC1tYW51YWwuaHRtbCNkcmQtbWFudWFsLmVmZmVjdGl2ZS11c2UiPjguMi4xMy4gSGludHMgYW5kIFRpcHMgZm9yIEVmZmVjdGl2ZSBVc2Ugb2YgRFJEPC9hPjwvc3Bhbj48L2R0PgorPC9kbD48L2RkPgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0iZHJkLW1hbnVhbC5odG1sI2RyZC1tYW51YWwuUHRocmVhZHMiPjguMy4gVXNpbmcgdGhlIFBPU0lYIFRocmVhZHMgQVBJIEVmZmVjdGl2ZWx5PC9hPjwvc3Bhbj48L2R0PgorPGRkPjxkbD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9ImRyZC1tYW51YWwuaHRtbCNkcmQtbWFudWFsLm11dGV4LXR5cGVzIj44LjMuMS4gTXV0ZXggdHlwZXM8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJkcmQtbWFudWFsLmh0bWwjZHJkLW1hbnVhbC5jb25kdmFyIj44LjMuMi4gQ29uZGl0aW9uIHZhcmlhYmxlczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9ImRyZC1tYW51YWwuaHRtbCNkcmQtbWFudWFsLnBjdHciPjguMy4zLiBwdGhyZWFkX2NvbmRfdGltZWR3YWl0IGFuZCB0aW1lb3V0czwvYT48L3NwYW4+PC9kdD4KKzwvZGw+PC9kZD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9ImRyZC1tYW51YWwuaHRtbCNkcmQtbWFudWFsLmxpbWl0YXRpb25zIj44LjQuIExpbWl0YXRpb25zPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0iZHJkLW1hbnVhbC5odG1sI2RyZC1tYW51YWwuZmVlZGJhY2siPjguNS4gRmVlZGJhY2s8L2E+PC9zcGFuPjwvZHQ+Cis8L2RsPgorPC9kaXY+Cis8cD5UbyB1c2UgdGhpcyB0b29sLCB5b3UgbXVzdCBzcGVjaWZ5Cis8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXRvb2w9ZHJkPC9jb2RlPgorb24gdGhlIFZhbGdyaW5kIGNvbW1hbmQgbGluZS48L3A+Cis8ZGl2IGNsYXNzPSJzZWN0MSI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPgorPGEgbmFtZT0iZHJkLW1hbnVhbC5vdmVydmlldyI+PC9hPjguMS6gT3ZlcnZpZXc8L2gyPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+CitEUkQgaXMgYSBWYWxncmluZCB0b29sIGZvciBkZXRlY3RpbmcgZXJyb3JzIGluIG11bHRpdGhyZWFkZWQgQyBhbmQgQysrCitwcm9ncmFtcy4gVGhlIHRvb2wgd29ya3MgZm9yIGFueSBwcm9ncmFtIHRoYXQgdXNlcyB0aGUgUE9TSVggdGhyZWFkaW5nCitwcmltaXRpdmVzIG9yIHRoYXQgdXNlcyB0aHJlYWRpbmcgY29uY2VwdHMgYnVpbHQgb24gdG9wIG9mIHRoZSBQT1NJWCB0aHJlYWRpbmcKK3ByaW1pdGl2ZXMuCis8L3A+Cis8ZGl2IGNsYXNzPSJzZWN0MiI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9ImRyZC1tYW51YWwubXQtcHJvZ3ItbW9kZWxzIj48L2E+OC4xLjEuoE11bHRpdGhyZWFkZWQgUHJvZ3JhbW1pbmcgUGFyYWRpZ21zPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPgorVGhlcmUgYXJlIHR3byBwb3NzaWJsZSByZWFzb25zIGZvciB1c2luZyBtdWx0aXRocmVhZGluZyBpbiBhIHByb2dyYW06Cis8L3A+Cis8ZGl2IGNsYXNzPSJpdGVtaXplZGxpc3QiPjx1bCBjbGFzcz0iaXRlbWl6ZWRsaXN0IiBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOiBkaXNjOyAiPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+CisgICAgICBUbyBtb2RlbCBjb25jdXJyZW50IGFjdGl2aXRpZXMuIEFzc2lnbmluZyBvbmUgdGhyZWFkIHRvIGVhY2ggYWN0aXZpdHkKKyAgICAgIGNhbiBiZSBhIGdyZWF0IHNpbXBsaWZpY2F0aW9uIGNvbXBhcmVkIHRvIG11bHRpcGxleGluZyB0aGUgc3RhdGVzIG9mCisgICAgICBtdWx0aXBsZSBhY3Rpdml0aWVzIGluIGEgc2luZ2xlIHRocmVhZC4gVGhpcyBpcyB3aHkgbW9zdCBzZXJ2ZXIgc29mdHdhcmUKKyAgICAgIGFuZCBlbWJlZGRlZCBzb2Z0d2FyZSBpcyBtdWx0aXRocmVhZGVkLgorICAgIDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+CisgICAgICBUbyB1c2UgbXVsdGlwbGUgQ1BVIGNvcmVzIHNpbXVsdGFuZW91c2x5IGZvciBzcGVlZGluZyB1cAorICAgICAgY29tcHV0YXRpb25zLiBUaGlzIGlzIHdoeSBtYW55IEhpZ2ggUGVyZm9ybWFuY2UgQ29tcHV0aW5nIChIUEMpCisgICAgICBhcHBsaWNhdGlvbnMgYXJlIG11bHRpdGhyZWFkZWQuCisgICAgPC9wPjwvbGk+Cis8L3VsPjwvZGl2PgorPHA+Cis8L3A+Cis8cD4KK011bHRpdGhyZWFkZWQgcHJvZ3JhbXMgY2FuIHVzZSBvbmUgb3IgbW9yZSBvZiB0aGUgZm9sbG93aW5nIHByb2dyYW1taW5nCitwYXJhZGlnbXMuIFdoaWNoIHBhcmFkaWdtIGlzIGFwcHJvcHJpYXRlIGRlcGVuZHMgZS5nLiBvbiB0aGUgYXBwbGljYXRpb24gdHlwZS4KK1NvbWUgZXhhbXBsZXMgb2YgbXVsdGl0aHJlYWRlZCBwcm9ncmFtbWluZyBwYXJhZGlnbXMgYXJlOgorPC9wPgorPGRpdiBjbGFzcz0iaXRlbWl6ZWRsaXN0Ij48dWwgY2xhc3M9Iml0ZW1pemVkbGlzdCIgc3R5bGU9Imxpc3Qtc3R5bGUtdHlwZTogZGlzYzsgIj4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPgorICAgICAgTG9ja2luZy4gRGF0YSB0aGF0IGlzIHNoYXJlZCBvdmVyIHRocmVhZHMgaXMgcHJvdGVjdGVkIGZyb20gY29uY3VycmVudAorICAgICAgYWNjZXNzZXMgdmlhIGxvY2tpbmcuIEUuZy4gdGhlIFBPU0lYIHRocmVhZHMgbGlicmFyeSwgdGhlIFF0IGxpYnJhcnkKKyAgICAgIGFuZCB0aGUgQm9vc3QuVGhyZWFkIGxpYnJhcnkgc3VwcG9ydCB0aGlzIHBhcmFkaWdtIGRpcmVjdGx5LgorICAgIDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+CisgICAgICBNZXNzYWdlIHBhc3NpbmcuIE5vIGRhdGEgaXMgc2hhcmVkIGJldHdlZW4gdGhyZWFkcywgYnV0IHRocmVhZHMgZXhjaGFuZ2UKKyAgICAgIGRhdGEgYnkgcGFzc2luZyBtZXNzYWdlcyB0byBlYWNoIG90aGVyLiBFeGFtcGxlcyBvZiBpbXBsZW1lbnRhdGlvbnMgb2YKKyAgICAgIHRoZSBtZXNzYWdlIHBhc3NpbmcgcGFyYWRpZ20gYXJlIE1QSSBhbmQgQ09SQkEuCisgICAgPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD4KKyAgICAgIEF1dG9tYXRpYyBwYXJhbGxlbGl6YXRpb24uIEEgY29tcGlsZXIgY29udmVydHMgYSBzZXF1ZW50aWFsIHByb2dyYW0gaW50bworICAgICAgYSBtdWx0aXRocmVhZGVkIHByb2dyYW0uIFRoZSBvcmlnaW5hbCBwcm9ncmFtIG1heSBvciBtYXkgbm90IGNvbnRhaW4KKyAgICAgIHBhcmFsbGVsaXphdGlvbiBoaW50cy4gT25lIGV4YW1wbGUgb2Ygc3VjaCBwYXJhbGxlbGl6YXRpb24gaGludHMgaXMgdGhlCisgICAgICBPcGVuTVAgc3RhbmRhcmQuIEluIHRoaXMgc3RhbmRhcmQgYSBzZXQgb2YgZGlyZWN0aXZlcyBhcmUgZGVmaW5lZCB3aGljaAorICAgICAgdGVsbCBhIGNvbXBpbGVyIGhvdyB0byBwYXJhbGxlbGl6ZSBhIEMsIEMrKyBvciBGb3J0cmFuIHByb2dyYW0uIE9wZW5NUAorICAgICAgaXMgd2VsbCBzdWl0ZWQgZm9yIGNvbXB1dGF0aW9uYWwgaW50ZW5zaXZlIGFwcGxpY2F0aW9ucy4gQXMgYW4gZXhhbXBsZSwKKyAgICAgIGFuIG9wZW4gc291cmNlIGltYWdlIHByb2Nlc3Npbmcgc29mdHdhcmUgcGFja2FnZSBpcyB1c2luZyBPcGVuTVAgdG8KKyAgICAgIG1heGltaXplIHBlcmZvcm1hbmNlIG9uIHN5c3RlbXMgd2l0aCBtdWx0aXBsZSBDUFUKKyAgICAgIGNvcmVzLiBHQ0Mgc3VwcG9ydHMgdGhlCisgICAgICBPcGVuTVAgc3RhbmRhcmQgZnJvbSB2ZXJzaW9uIDQuMi4wIG9uLgorICAgIDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+CisgICAgICBTb2Z0d2FyZSBUcmFuc2FjdGlvbmFsIE1lbW9yeSAoU1RNKS4gQW55IGRhdGEgdGhhdCBpcyBzaGFyZWQgYmV0d2VlbgorICAgICAgdGhyZWFkcyBpcyB1cGRhdGVkIHZpYSB0cmFuc2FjdGlvbnMuIEFmdGVyIGVhY2ggdHJhbnNhY3Rpb24gaXQgaXMKKyAgICAgIHZlcmlmaWVkIHdoZXRoZXIgdGhlcmUgd2VyZSBhbnkgY29uZmxpY3RpbmcgdHJhbnNhY3Rpb25zLiBJZiB0aGVyZSB3ZXJlCisgICAgICBjb25mbGljdHMsIHRoZSB0cmFuc2FjdGlvbiBpcyBhYm9ydGVkLCBvdGhlcndpc2UgaXQgaXMgY29tbWl0dGVkLiBUaGlzCisgICAgICBpcyBhIHNvLWNhbGxlZCBvcHRpbWlzdGljIGFwcHJvYWNoLiBUaGVyZSBpcyBhIHByb3RvdHlwZSBvZiB0aGUgSW50ZWwgQysrCisgICAgICBDb21waWxlciBhdmFpbGFibGUgdGhhdCBzdXBwb3J0cyBTVE0uIFJlc2VhcmNoIGFib3V0IHRoZSBhZGRpdGlvbiBvZgorICAgICAgU1RNIHN1cHBvcnQgdG8gR0NDIGlzIG9uZ29pbmcuCisgICAgPC9wPjwvbGk+Cis8L3VsPjwvZGl2PgorPHA+Cis8L3A+Cis8cD4KK0RSRCBzdXBwb3J0cyBhbnkgY29tYmluYXRpb24gb2YgbXVsdGl0aHJlYWRlZCBwcm9ncmFtbWluZyBwYXJhZGlnbXMgYXMKK2xvbmcgYXMgdGhlIGltcGxlbWVudGF0aW9uIG9mIHRoZXNlIHBhcmFkaWdtcyBpcyBiYXNlZCBvbiB0aGUgUE9TSVgKK3RocmVhZHMgcHJpbWl0aXZlcy4gRFJEIGhvd2V2ZXIgZG9lcyBub3Qgc3VwcG9ydCBwcm9ncmFtcyB0aGF0IHVzZQorZS5nLiBMaW51eCcgZnV0ZXhlcyBkaXJlY3RseS4gQXR0ZW1wdHMgdG8gYW5hbHl6ZSBzdWNoIHByb2dyYW1zIHdpdGgKK0RSRCB3aWxsIGNhdXNlIERSRCB0byByZXBvcnQgbWFueSBmYWxzZSBwb3NpdGl2ZXMuCis8L3A+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0iZHJkLW1hbnVhbC5wdGhyZWFkcy1tb2RlbCI+PC9hPjguMS4yLqBQT1NJWCBUaHJlYWRzIFByb2dyYW1taW5nIE1vZGVsPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPgorUE9TSVggdGhyZWFkcywgYWxzbyBrbm93biBhcyBQdGhyZWFkcywgaXMgdGhlIG1vc3Qgd2lkZWx5IGF2YWlsYWJsZQordGhyZWFkaW5nIGxpYnJhcnkgb24gVW5peCBzeXN0ZW1zLgorPC9wPgorPHA+CitUaGUgUE9TSVggdGhyZWFkcyBwcm9ncmFtbWluZyBtb2RlbCBpcyBiYXNlZCBvbiB0aGUgZm9sbG93aW5nIGFic3RyYWN0aW9uczoKKzwvcD4KKzxkaXYgY2xhc3M9Iml0ZW1pemVkbGlzdCI+PHVsIGNsYXNzPSJpdGVtaXplZGxpc3QiIHN0eWxlPSJsaXN0LXN0eWxlLXR5cGU6IGRpc2M7ICI+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD4KKyAgICAgIEEgc2hhcmVkIGFkZHJlc3Mgc3BhY2UuIEFsbCB0aHJlYWRzIHJ1bm5pbmcgd2l0aGluIHRoZSBzYW1lCisgICAgICBwcm9jZXNzIHNoYXJlIHRoZSBzYW1lIGFkZHJlc3Mgc3BhY2UuIEFsbCBkYXRhLCB3aGV0aGVyIHNoYXJlZCBvcgorICAgICAgbm90LCBpcyBpZGVudGlmaWVkIGJ5IGl0cyBhZGRyZXNzLgorICAgIDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+CisgICAgICBSZWd1bGFyIGxvYWQgYW5kIHN0b3JlIG9wZXJhdGlvbnMsIHdoaWNoIGFsbG93IHRvIHJlYWQgdmFsdWVzCisgICAgICBmcm9tIG9yIHRvIHdyaXRlIHZhbHVlcyB0byB0aGUgbWVtb3J5IHNoYXJlZCBieSBhbGwgdGhyZWFkcworICAgICAgcnVubmluZyBpbiB0aGUgc2FtZSBwcm9jZXNzLgorICAgIDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+CisgICAgICBBdG9taWMgc3RvcmUgYW5kIGxvYWQtbW9kaWZ5LXN0b3JlIG9wZXJhdGlvbnMuIFdoaWxlIHRoZXNlIGFyZQorICAgICAgbm90IG1lbnRpb25lZCBpbiB0aGUgUE9TSVggdGhyZWFkcyBzdGFuZGFyZCwgbW9zdAorICAgICAgbWljcm9wcm9jZXNzb3JzIHN1cHBvcnQgYXRvbWljIG1lbW9yeSBvcGVyYXRpb25zLgorICAgIDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+CisgICAgICBUaHJlYWRzLiBFYWNoIHRocmVhZCByZXByZXNlbnRzIGEgY29uY3VycmVudCBhY3Rpdml0eS4KKyAgICA8L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPgorICAgICAgU3luY2hyb25pemF0aW9uIG9iamVjdHMgYW5kIG9wZXJhdGlvbnMgb24gdGhlc2Ugc3luY2hyb25pemF0aW9uCisgICAgICBvYmplY3RzLiBUaGUgZm9sbG93aW5nIHR5cGVzIG9mIHN5bmNocm9uaXphdGlvbiBvYmplY3RzIGhhdmUgYmVlbgorICAgICAgZGVmaW5lZCBpbiB0aGUgUE9TSVggdGhyZWFkcyBzdGFuZGFyZDogbXV0ZXhlcywgY29uZGl0aW9uIHZhcmlhYmxlcywKKyAgICAgIHNlbWFwaG9yZXMsIHJlYWRlci13cml0ZXIgc3luY2hyb25pemF0aW9uIG9iamVjdHMsIGJhcnJpZXJzIGFuZAorICAgICAgc3BpbmxvY2tzLgorICAgIDwvcD48L2xpPgorPC91bD48L2Rpdj4KKzxwPgorPC9wPgorPHA+CitXaGljaCBzb3VyY2UgY29kZSBzdGF0ZW1lbnRzIGdlbmVyYXRlIHdoaWNoIG1lbW9yeSBhY2Nlc3NlcyBkZXBlbmRzIG9uCit0aGUgPHNwYW4gY2xhc3M9ImVtcGhhc2lzIj48ZW0+bWVtb3J5IG1vZGVsPC9lbT48L3NwYW4+IG9mIHRoZSBwcm9ncmFtbWluZyBsYW5ndWFnZSBiZWluZwordXNlZC4gVGhlcmUgaXMgbm90IHlldCBhIGRlZmluaXRpdmUgbWVtb3J5IG1vZGVsIGZvciB0aGUgQyBhbmQgQysrCitsYW5ndWFnZXMuIEZvciBhIGRyYWZ0IG1lbW9yeSBtb2RlbCwgc2VlIGFsc28gdGhlIGRvY3VtZW50Cis8YSBjbGFzcz0idWxpbmsiIGhyZWY9Imh0dHA6Ly93d3cub3Blbi1zdGQub3JnL2p0YzEvc2MyMi93ZzIxL2RvY3MvcGFwZXJzLzIwMDcvbjIzMzguaHRtbCIgdGFyZ2V0PSJfdG9wIj4KK1dHMjEvTjIzMzg6IENvbmN1cnJlbmN5IG1lbW9yeSBtb2RlbCBjb21waWxlciBjb25zZXF1ZW5jZXM8L2E+LgorPC9wPgorPHA+CitGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBQT1NJWCB0aHJlYWRzLCBzZWUgYWxzbyB0aGUgU2luZ2xlIFVOSVgKK1NwZWNpZmljYXRpb24gdmVyc2lvbiAzLCBhbHNvIGtub3duIGFzCis8YSBjbGFzcz0idWxpbmsiIGhyZWY9Imh0dHA6Ly93d3cub3Blbmdyb3VwLm9yZy9vbmxpbmVwdWJzLzAwMDA5NTM5OS9pZHgvdGhyZWFkcy5odG1sIiB0YXJnZXQ9Il90b3AiPgorSUVFRSBTdGQgMTAwMy4xPC9hPi4KKzwvcD4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDIiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJkcmQtbWFudWFsLm10LXByb2JsZW1zIj48L2E+OC4xLjMuoE11bHRpdGhyZWFkZWQgUHJvZ3JhbW1pbmcgUHJvYmxlbXM8L2gzPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+CitEZXBlbmRpbmcgb24gd2hpY2ggbXVsdGl0aHJlYWRpbmcgcGFyYWRpZ20gaXMgYmVpbmcgdXNlZCBpbiBhIHByb2dyYW0sCitvbmUgb3IgbW9yZSBvZiB0aGUgZm9sbG93aW5nIHByb2JsZW1zIGNhbiBvY2N1cjoKKzwvcD4KKzxkaXYgY2xhc3M9Iml0ZW1pemVkbGlzdCI+PHVsIGNsYXNzPSJpdGVtaXplZGxpc3QiIHN0eWxlPSJsaXN0LXN0eWxlLXR5cGU6IGRpc2M7ICI+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD4KKyAgICAgIERhdGEgcmFjZXMuIE9uZSBvciBtb3JlIHRocmVhZHMgYWNjZXNzIHRoZSBzYW1lIG1lbW9yeSBsb2NhdGlvbiB3aXRob3V0CisgICAgICBzdWZmaWNpZW50IGxvY2tpbmcuIE1vc3QgYnV0IG5vdCBhbGwgZGF0YSByYWNlcyBhcmUgcHJvZ3JhbW1pbmcgZXJyb3JzCisgICAgICBhbmQgYXJlIHRoZSBjYXVzZSBvZiBzdWJ0bGUgYW5kIGhhcmQtdG8tZmluZCBidWdzLgorICAgIDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+CisgICAgICBMb2NrIGNvbnRlbnRpb24uIE9uZSB0aHJlYWQgYmxvY2tzIHRoZSBwcm9ncmVzcyBvZiBvbmUgb3IgbW9yZSBvdGhlcgorICAgICAgdGhyZWFkcyBieSBob2xkaW5nIGEgbG9jayB0b28gbG9uZy4KKyAgICA8L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPgorICAgICAgSW1wcm9wZXIgdXNlIG9mIHRoZSBQT1NJWCB0aHJlYWRzIEFQSS4gTW9zdCBpbXBsZW1lbnRhdGlvbnMgb2YgdGhlIFBPU0lYCisgICAgICB0aHJlYWRzIEFQSSBoYXZlIGJlZW4gb3B0aW1pemVkIGZvciBydW50aW1lIHNwZWVkLiBTdWNoIGltcGxlbWVudGF0aW9ucworICAgICAgd2lsbCBub3QgY29tcGxhaW4gb24gY2VydGFpbiBlcnJvcnMsIGUuZy4gd2hlbiBhIG11dGV4IGlzIGJlaW5nIHVubG9ja2VkCisgICAgICBieSBhbm90aGVyIHRocmVhZCB0aGFuIHRoZSB0aHJlYWQgdGhhdCBvYnRhaW5lZCBhIGxvY2sgb24gdGhlIG11dGV4LgorICAgIDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+CisgICAgICBEZWFkbG9jay4gQSBkZWFkbG9jayBvY2N1cnMgd2hlbiB0d28gb3IgbW9yZSB0aHJlYWRzIHdhaXQgZm9yCisgICAgICBlYWNoIG90aGVyIGluZGVmaW5pdGVseS4KKyAgICA8L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPgorICAgICAgRmFsc2Ugc2hhcmluZy4gSWYgdGhyZWFkcyB0aGF0IHJ1biBvbiBkaWZmZXJlbnQgcHJvY2Vzc29yIGNvcmVzCisgICAgICBhY2Nlc3MgZGlmZmVyZW50IHZhcmlhYmxlcyBsb2NhdGVkIGluIHRoZSBzYW1lIGNhY2hlIGxpbmUKKyAgICAgIGZyZXF1ZW50bHksIHRoaXMgd2lsbCBzbG93IGRvd24gdGhlIGludm9sdmVkIHRocmVhZHMgYSBsb3QgZHVlCisgICAgICB0byBmcmVxdWVudCBleGNoYW5nZSBvZiBjYWNoZSBsaW5lcy4KKyAgICA8L3A+PC9saT4KKzwvdWw+PC9kaXY+Cis8cD4KKzwvcD4KKzxwPgorQWx0aG91Z2ggdGhlIGxpa2VsaWhvb2Qgb2YgdGhlIG9jY3VycmVuY2Ugb2YgZGF0YSByYWNlcyBjYW4gYmUgcmVkdWNlZAordGhyb3VnaCBhIGRpc2NpcGxpbmVkIHByb2dyYW1taW5nIHN0eWxlLCBhIHRvb2wgZm9yIGF1dG9tYXRpYworZGV0ZWN0aW9uIG9mIGRhdGEgcmFjZXMgaXMgYSBuZWNlc3NpdHkgd2hlbiBkZXZlbG9waW5nIG11bHRpdGhyZWFkZWQKK3NvZnR3YXJlLiBEUkQgY2FuIGRldGVjdCB0aGVzZSwgYXMgd2VsbCBhcyBsb2NrIGNvbnRlbnRpb24gYW5kCitpbXByb3BlciB1c2Ugb2YgdGhlIFBPU0lYIHRocmVhZHMgQVBJLgorPC9wPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MiI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9ImRyZC1tYW51YWwuZGF0YS1yYWNlLWRldGVjdGlvbiI+PC9hPjguMS40LqBEYXRhIFJhY2UgRGV0ZWN0aW9uPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPgorVGhlIHJlc3VsdCBvZiBsb2FkIGFuZCBzdG9yZSBvcGVyYXRpb25zIHBlcmZvcm1lZCBieSBhIG11bHRpdGhyZWFkZWQgcHJvZ3JhbQorZGVwZW5kcyBvbiB0aGUgb3JkZXIgaW4gd2hpY2ggbWVtb3J5IG9wZXJhdGlvbnMgYXJlIHBlcmZvcm1lZC4gVGhpcyBvcmRlciBpcworZGV0ZXJtaW5lZCBieToKKzwvcD4KKzxkaXYgY2xhc3M9Im9yZGVyZWRsaXN0Ij48b2wgY2xhc3M9Im9yZGVyZWRsaXN0IiB0eXBlPSIxIj4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPgorICAgICAgQWxsIG1lbW9yeSBvcGVyYXRpb25zIHBlcmZvcm1lZCBieSB0aGUgc2FtZSB0aHJlYWQgYXJlIHBlcmZvcm1lZCBpbgorICAgICAgPHNwYW4gY2xhc3M9ImVtcGhhc2lzIj48ZW0+cHJvZ3JhbSBvcmRlcjwvZW0+PC9zcGFuPiwgdGhhdCBpcywgdGhlIG9yZGVyIGRldGVybWluZWQgYnkgdGhlCisgICAgICBwcm9ncmFtIHNvdXJjZSBjb2RlIGFuZCB0aGUgcmVzdWx0cyBvZiBwcmV2aW91cyBsb2FkIG9wZXJhdGlvbnMuCisgICAgPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD4KKyAgICAgIFN5bmNocm9uaXphdGlvbiBvcGVyYXRpb25zIGRldGVybWluZSBjZXJ0YWluIG9yZGVyaW5nIGNvbnN0cmFpbnRzIG9uCisgICAgICBtZW1vcnkgb3BlcmF0aW9ucyBwZXJmb3JtZWQgYnkgZGlmZmVyZW50IHRocmVhZHMuIFRoZXNlIG9yZGVyaW5nCisgICAgICBjb25zdHJhaW50cyBhcmUgY2FsbGVkIHRoZSA8c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT5zeW5jaHJvbml6YXRpb24gb3JkZXI8L2VtPjwvc3Bhbj4uCisgICAgPC9wPjwvbGk+Cis8L29sPjwvZGl2PgorPHA+CitUaGUgY29tYmluYXRpb24gb2YgcHJvZ3JhbSBvcmRlciBhbmQgc3luY2hyb25pemF0aW9uIG9yZGVyIGlzIGNhbGxlZCB0aGUKKzxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPmhhcHBlbnMtYmVmb3JlIHJlbGF0aW9uc2hpcDwvZW0+PC9zcGFuPi4gVGhpcyBjb25jZXB0IHdhcyBmaXJzdAorZGVmaW5lZCBieSBTLiBBZHZlIGV0IGFsIGluIHRoZSBwYXBlciA8c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT5EZXRlY3RpbmcgZGF0YSByYWNlcyBvbiB3ZWFrCittZW1vcnkgc3lzdGVtczwvZW0+PC9zcGFuPiwgQUNNIFNJR0FSQ0ggQ29tcHV0ZXIgQXJjaGl0ZWN0dXJlIE5ld3MsIHYuMTkgbi4zLAorcC4yMzQtMjQzLCBNYXkgMTk5MS4KKzwvcD4KKzxwPgorVHdvIG1lbW9yeSBvcGVyYXRpb25zIDxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPmNvbmZsaWN0PC9lbT48L3NwYW4+IGlmIGJvdGggb3BlcmF0aW9ucyBhcmUKK3BlcmZvcm1lZCBieSBkaWZmZXJlbnQgdGhyZWFkcywgcmVmZXIgdG8gdGhlIHNhbWUgbWVtb3J5IGxvY2F0aW9uIGFuZCBhdCBsZWFzdAorb25lIG9mIHRoZW0gaXMgYSBzdG9yZSBvcGVyYXRpb24uCis8L3A+Cis8cD4KK0EgbXVsdGl0aHJlYWRlZCBwcm9ncmFtIGlzIDxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPmRhdGEtcmFjZSBmcmVlPC9lbT48L3NwYW4+IGlmIGFsbAorY29uZmxpY3RpbmcgbWVtb3J5IGFjY2Vzc2VzIGFyZSBvcmRlcmVkIGJ5IHN5bmNocm9uaXphdGlvbgorb3BlcmF0aW9ucy4KKzwvcD4KKzxwPgorQSB3ZWxsIGtub3duIHdheSB0byBlbnN1cmUgdGhhdCBhIG11bHRpdGhyZWFkZWQgcHJvZ3JhbSBpcyBkYXRhLXJhY2UKK2ZyZWUgaXMgdG8gZW5zdXJlIHRoYXQgYSBsb2NraW5nIGRpc2NpcGxpbmUgaXMgZm9sbG93ZWQuIEl0IGlzIGUuZy4KK3Bvc3NpYmxlIHRvIGFzc29jaWF0ZSBhIG11dGV4IHdpdGggZWFjaCBzaGFyZWQgZGF0YSBpdGVtLCBhbmQgdG8gaG9sZAorYSBsb2NrIG9uIHRoZSBhc3NvY2lhdGVkIG11dGV4IHdoaWxlIHRoZSBzaGFyZWQgZGF0YSBpcyBhY2Nlc3NlZC4KKzwvcD4KKzxwPgorQWxsIHByb2dyYW1zIHRoYXQgZm9sbG93IGEgbG9ja2luZyBkaXNjaXBsaW5lIGFyZSBkYXRhLXJhY2UgZnJlZSwgYnV0IG5vdCBhbGwKK2RhdGEtcmFjZSBmcmVlIHByb2dyYW1zIGZvbGxvdyBhIGxvY2tpbmcgZGlzY2lwbGluZS4gVGhlcmUgZXhpc3QgbXVsdGl0aHJlYWRlZAorcHJvZ3JhbXMgd2hlcmUgYWNjZXNzIHRvIHNoYXJlZCBkYXRhIGlzIGFyYml0cmF0ZWQgdmlhIGNvbmRpdGlvbiB2YXJpYWJsZXMsCitzZW1hcGhvcmVzIG9yIGJhcnJpZXJzLiBBcyBhbiBleGFtcGxlLCBhIGNlcnRhaW4gY2xhc3Mgb2YgSFBDIGFwcGxpY2F0aW9ucworY29uc2lzdHMgb2YgYSBzZXF1ZW5jZSBvZiBjb21wdXRhdGlvbiBzdGVwcyBzZXBhcmF0ZWQgaW4gdGltZSBieSBiYXJyaWVycywgYW5kCit3aGVyZSB0aGVzZSBiYXJyaWVycyBhcmUgdGhlIG9ubHkgbWVhbnMgb2Ygc3luY2hyb25pemF0aW9uLiBBbHRob3VnaCB0aGVyZSBhcmUKK21hbnkgY29uZmxpY3RpbmcgbWVtb3J5IGFjY2Vzc2VzIGluIHN1Y2ggYXBwbGljYXRpb25zIGFuZCBhbHRob3VnaCBzdWNoCithcHBsaWNhdGlvbnMgZG8gbm90IG1ha2UgdXNlIG11dGV4ZXMsIG1vc3Qgb2YgdGhlc2UgYXBwbGljYXRpb25zIGRvIG5vdAorY29udGFpbiBkYXRhIHJhY2VzLgorPC9wPgorPHA+CitUaGVyZSBleGlzdCB0d28gZGlmZmVyZW50IGFwcHJvYWNoZXMgZm9yIHZlcmlmeWluZyB0aGUgY29ycmVjdG5lc3Mgb2YKK211bHRpdGhyZWFkZWQgcHJvZ3JhbXMgYXQgcnVudGltZS4gVGhlIGFwcHJvYWNoIG9mIHRoZSBzby1jYWxsZWQgRXJhc2VyCithbGdvcml0aG0gaXMgdG8gdmVyaWZ5IHdoZXRoZXIgYWxsIHNoYXJlZCBtZW1vcnkgYWNjZXNzZXMgZm9sbG93IGEgY29uc2lzdGVudAorbG9ja2luZyBzdHJhdGVneS4gQW5kIHRoZSBoYXBwZW5zLWJlZm9yZSBkYXRhIHJhY2UgZGV0ZWN0b3JzIHZlcmlmeSBkaXJlY3RseQord2hldGhlciBhbGwgaW50ZXJ0aHJlYWQgbWVtb3J5IGFjY2Vzc2VzIGFyZSBvcmRlcmVkIGJ5IHN5bmNocm9uaXphdGlvbgorb3BlcmF0aW9ucy4gV2hpbGUgdGhlIGxhc3QgYXBwcm9hY2ggaXMgbW9yZSBjb21wbGV4IHRvIGltcGxlbWVudCwgYW5kIHdoaWxlIGl0CitpcyBtb3JlIHNlbnNpdGl2ZSB0byBPUyBzY2hlZHVsaW5nLCBpdCBpcyBhIGdlbmVyYWwgYXBwcm9hY2ggdGhhdCB3b3JrcyBmb3IKK2FsbCBjbGFzc2VzIG9mIG11bHRpdGhyZWFkZWQgcHJvZ3JhbXMuIEFuIGltcG9ydGFudCBhZHZhbnRhZ2Ugb2YKK2hhcHBlbnMtYmVmb3JlIGRhdGEgcmFjZSBkZXRlY3RvcnMgaXMgdGhhdCB0aGVzZSBkbyBub3QgcmVwb3J0IGFueSBmYWxzZQorcG9zaXRpdmVzLgorPC9wPgorPHA+CitEUkQgaXMgYmFzZWQgb24gdGhlIGhhcHBlbnMtYmVmb3JlIGFsZ29yaXRobS4KKzwvcD4KKzwvZGl2PgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MSI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPgorPGEgbmFtZT0iZHJkLW1hbnVhbC51c2luZy1kcmQiPjwvYT44LjIuoFVzaW5nIERSRDwvaDI+PC9kaXY+PC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MiI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9ImRyZC1tYW51YWwub3B0aW9ucyI+PC9hPjguMi4xLqBEUkQgQ29tbWFuZC1saW5lIE9wdGlvbnM8L2gzPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+VGhlIGZvbGxvd2luZyBjb21tYW5kLWxpbmUgb3B0aW9ucyBhcmUgYXZhaWxhYmxlIGZvciBjb250cm9sbGluZyB0aGUKK2JlaGF2aW9yIG9mIHRoZSBEUkQgdG9vbCBpdHNlbGY6PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij4KKzxhIG5hbWU9ImRyZC5vcHRzLmxpc3QiPjwvYT48ZGwgY2xhc3M9InZhcmlhYmxlbGlzdCI+Cis8ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1jaGVjay1zdGFjay12YXI9Jmx0O3llc3xubyZndDsgW2RlZmF1bHQ6IG5vXTwvY29kZT4KKyAgICA8L3NwYW4+PC9kdD4KKzxkZD48cD4KKyAgICAgICAgQ29udHJvbHMgd2hldGhlciBEUkQgZGV0ZWN0cyBkYXRhIHJhY2VzIG9uIHN0YWNrCisgICAgICAgIHZhcmlhYmxlcy4gVmVyaWZ5aW5nIHN0YWNrIHZhcmlhYmxlcyBpcyBkaXNhYmxlZCBieSBkZWZhdWx0IGJlY2F1c2UKKyAgICAgICAgbW9zdCBwcm9ncmFtcyBkbyBub3Qgc2hhcmUgc3RhY2sgdmFyaWFibGVzIG92ZXIgdGhyZWFkcy4KKyAgICAgIDwvcD48L2RkPgorPGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tZXhjbHVzaXZlLXRocmVzaG9sZD0mbHQ7biZndDsgW2RlZmF1bHQ6IG9mZl08L2NvZGU+CisgICAgPC9zcGFuPjwvZHQ+Cis8ZGQ+PHA+CisgICAgICAgIFByaW50IGFuIGVycm9yIG1lc3NhZ2UgaWYgYW55IG11dGV4IG9yIHdyaXRlciBsb2NrIGhhcyBiZWVuCisgICAgICAgIGhlbGQgbG9uZ2VyIHRoYW4gdGhlIHRpbWUgc3BlY2lmaWVkIGluIG1pbGxpc2Vjb25kcy4gVGhpcworICAgICAgICBvcHRpb24gZW5hYmxlcyB0aGUgZGV0ZWN0aW9uIG9mIGxvY2sgY29udGVudGlvbi4KKyAgICAgIDwvcD48L2RkPgorPGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tam9pbi1saXN0LXZvbD0mbHQ7biZndDsgW2RlZmF1bHQ6IDEwXTwvY29kZT4KKyAgICA8L3NwYW4+PC9kdD4KKzxkZD48cD4KKyAgICAgICAgRGF0YSByYWNlcyB0aGF0IG9jY3VyIGJldHdlZW4gYSBzdGF0ZW1lbnQgYXQgdGhlIGVuZCBvZiBvbmUgdGhyZWFkCisJYW5kIGFub3RoZXIgdGhyZWFkIGNhbiBiZSBtaXNzZWQgaWYgbWVtb3J5IGFjY2VzcyBpbmZvcm1hdGlvbiBpcworCWRpc2NhcmRlZCBpbW1lZGlhdGVseSBhZnRlciBhIHRocmVhZCBoYXMgYmVlbiBqb2luZWQuIFRoaXMgb3B0aW9uCisJYWxsb3dzIHRvIHNwZWNpZnkgZm9yIGhvdyBtYW55IGpvaW5lZCB0aHJlYWRzIG1lbW9yeSBhY2Nlc3MgaW5mb3JtYXRpb24KKwlzaG91bGQgYmUgcmV0YWluZWQuCisgICAgICA8L3A+PC9kZD4KKzxkdD48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4KKyAgICAgICAgLS1maXJzdC1yYWNlLW9ubHk9Jmx0O3llc3xubyZndDsgW2RlZmF1bHQ6IG5vXQorICAgICAgPC9jb2RlPgorICAgIDwvc3Bhbj48L2R0PgorPGRkPjxwPgorICAgICAgICBXaGV0aGVyIHRvIHJlcG9ydCBvbmx5IHRoZSBmaXJzdCBkYXRhIHJhY2UgdGhhdCBoYXMgYmVlbiBkZXRlY3RlZCBvbiBhCisgICAgICAgIG1lbW9yeSBsb2NhdGlvbiBvciBhbGwgZGF0YSByYWNlcyB0aGF0IGhhdmUgYmVlbiBkZXRlY3RlZCBvbiBhIG1lbW9yeQorICAgICAgICBsb2NhdGlvbi4KKyAgICAgIDwvcD48L2RkPgorPGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPgorICAgICAgICAtLWZyZWUtaXMtd3JpdGU9Jmx0O3llc3xubyZndDsgW2RlZmF1bHQ6IG5vXQorICAgICAgPC9jb2RlPgorICAgIDwvc3Bhbj48L2R0PgorPGRkPgorPHA+CisgICAgICAgIFdoZXRoZXIgdG8gcmVwb3J0IHJhY2VzIGJldHdlZW4gYWNjZXNzaW5nIG1lbW9yeSBhbmQgZnJlZWluZworICAgICAgICBtZW1vcnkuIEVuYWJsaW5nIHRoaXMgb3B0aW9uIG1heSBjYXVzZSBEUkQgdG8gcnVuIHNsaWdodGx5CisgICAgICAgIHNsb3dlci4gTm90ZXM6PC9wPgorPGRpdiBjbGFzcz0iaXRlbWl6ZWRsaXN0Ij48dWwgY2xhc3M9Iml0ZW1pemVkbGlzdCIgc3R5bGU9Imxpc3Qtc3R5bGUtdHlwZTogZGlzYzsgIj4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPgorCSAgICBEb24ndCBlbmFibGUgdGhpcyBvcHRpb24gd2hlbiB1c2luZyBjdXN0b20gbWVtb3J5IGFsbG9jYXRvcnMKKwkgICAgdGhhdCB1c2UKKwkgICAgdGhlIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+VkdfVVNFUlJFUV9fTUFMTE9DTElLRV9CTE9DSzwvY29kZT4KKwkgICAgYW5kIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+VkdfVVNFUlJFUV9fRlJFRUxJS0VfQkxPQ0s8L2NvZGU+CisJICAgIGJlY2F1c2UgdGhhdCB3b3VsZCByZXN1bHQgaW4gZmFsc2UgcG9zaXRpdmVzLgorCSAgPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5Eb24ndCBlbmFibGUgdGhpcyBvcHRpb24gd2hlbiB1c2luZyByZWZlcmVuY2UtY291bnRlZAorCSAgICBvYmplY3RzIGJlY2F1c2UgdGhhdCB3aWxsIHJlc3VsdCBpbiBmYWxzZSBwb3NpdGl2ZXMsIGV2ZW4gd2hlbgorCSAgICB0aGF0IGNvZGUgaGFzIGJlZW4gYW5ub3RhdGVkIHByb3Blcmx5IHdpdGgKKwkgICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5BTk5PVEFURV9IQVBQRU5TX0JFRk9SRTwvY29kZT4KKwkgICAgYW5kIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+QU5OT1RBVEVfSEFQUEVOU19BRlRFUjwvY29kZT4uIFNlZQorCSAgICBlLmcuICB0aGUgb3V0cHV0IG9mIHRoZSBmb2xsb3dpbmcgY29tbWFuZCBmb3IgYW4gZXhhbXBsZToKKwkgICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij52YWxncmluZCAtLXRvb2w9ZHJkIC0tZnJlZS1pcy13cml0ZT15ZXMKKwkgICAgICBkcmQvdGVzdHMvYW5ub3RhdGVfc21hcnRfcG9pbnRlcjwvY29kZT4uCisJICA8L3A+PC9saT4KKzwvdWw+PC9kaXY+Cis8L2RkPgorPGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPgorICAgICAgICAtLXJlcG9ydC1zaWduYWwtdW5sb2NrZWQ9Jmx0O3llc3xubyZndDsgW2RlZmF1bHQ6IHllc10KKyAgICAgIDwvY29kZT4KKyAgICA8L3NwYW4+PC9kdD4KKzxkZD48cD4KKyAgICAgICAgV2hldGhlciB0byByZXBvcnQgY2FsbHMgdG8KKyAgICAgICAgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5wdGhyZWFkX2NvbmRfc2lnbmFsPC9jb2RlPiBhbmQKKyAgICAgICAgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5wdGhyZWFkX2NvbmRfYnJvYWRjYXN0PC9jb2RlPiB3aGVyZSB0aGUgbXV0ZXgKKyAgICAgICAgYXNzb2NpYXRlZCB3aXRoIHRoZSBzaWduYWwgdGhyb3VnaAorICAgICAgICA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPnB0aHJlYWRfY29uZF93YWl0PC9jb2RlPiBvcgorICAgICAgICA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPnB0aHJlYWRfY29uZF90aW1lZF93YWl0PC9jb2RlPmlzIG5vdCBsb2NrZWQgYXQKKyAgICAgICAgdGhlIHRpbWUgdGhlIHNpZ25hbCBpcyBzZW50LiAgU2VuZGluZyBhIHNpZ25hbCB3aXRob3V0IGhvbGRpbmcKKyAgICAgICAgYSBsb2NrIG9uIHRoZSBhc3NvY2lhdGVkIG11dGV4IGlzIGEgY29tbW9uIHByb2dyYW1taW5nIGVycm9yCisgICAgICAgIHdoaWNoIGNhbiBjYXVzZSBzdWJ0bGUgcmFjZSBjb25kaXRpb25zIGFuZCB1bnByZWRpY3RhYmxlCisgICAgICAgIGJlaGF2aW9yLiBUaGVyZSBleGlzdCBzb21lIHVuY29tbW9uIHN5bmNocm9uaXphdGlvbiBwYXR0ZXJucworICAgICAgICBob3dldmVyIHdoZXJlIGl0IGlzIHNhZmUgdG8gc2VuZCBhIHNpZ25hbCB3aXRob3V0IGhvbGRpbmcgYQorICAgICAgICBsb2NrIG9uIHRoZSBhc3NvY2lhdGVkIG11dGV4LgorICAgICAgPC9wPjwvZGQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1zZWdtZW50LW1lcmdpbmc9Jmx0O3llc3xubyZndDsgW2RlZmF1bHQ6IHllc108L2NvZGU+CisgICAgPC9zcGFuPjwvZHQ+Cis8ZGQ+PHA+CisgICAgICAgIENvbnRyb2xzIHNlZ21lbnQgbWVyZ2luZy4gU2VnbWVudCBtZXJnaW5nIGlzIGFuIGFsZ29yaXRobSB0bworICAgICAgICBsaW1pdCBtZW1vcnkgdXNhZ2Ugb2YgdGhlIGRhdGEgcmFjZSBkZXRlY3Rpb24KKyAgICAgICAgYWxnb3JpdGhtLiBEaXNhYmxpbmcgc2VnbWVudCBtZXJnaW5nIG1heSBpbXByb3ZlIHRoZSBhY2N1cmFjeQorICAgICAgICBvZiB0aGUgc28tY2FsbGVkICdvdGhlciBzZWdtZW50cycgZGlzcGxheWVkIGluIHJhY2UgcmVwb3J0cworICAgICAgICBidXQgY2FuIGFsc28gdHJpZ2dlciBhbiBvdXQgb2YgbWVtb3J5IGVycm9yLgorICAgICAgPC9wPjwvZGQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1zZWdtZW50LW1lcmdpbmctaW50ZXJ2YWw9Jmx0O24mZ3Q7IFtkZWZhdWx0OiAxMF08L2NvZGU+CisgICAgPC9zcGFuPjwvZHQ+Cis8ZGQ+PHA+CisgICAgICAgIFBlcmZvcm0gc2VnbWVudCBtZXJnaW5nIG9ubHkgYWZ0ZXIgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgbmV3CisgICAgICAgIHNlZ21lbnRzIGhhdmUgYmVlbiBjcmVhdGVkLiBUaGlzIGlzIGFuIGFkdmFuY2VkIGNvbmZpZ3VyYXRpb24gb3B0aW9uCisgICAgICAgIHRoYXQgYWxsb3dzIHRvIGNob29zZSB3aGV0aGVyIHRvIG1pbmltaXplIERSRCdzIG1lbW9yeSB1c2FnZSBieQorICAgICAgICBjaG9vc2luZyBhIGxvdyB2YWx1ZSBvciB0byBsZXQgRFJEIHJ1biBmYXN0ZXIgYnkgY2hvb3NpbmcgYSBzbGlnaHRseQorICAgICAgICBoaWdoZXIgdmFsdWUuIFRoZSBvcHRpbWFsIHZhbHVlIGZvciB0aGlzIHBhcmFtZXRlciBkZXBlbmRzIG9uIHRoZQorICAgICAgICBwcm9ncmFtIGJlaW5nIGFuYWx5emVkLiBUaGUgZGVmYXVsdCB2YWx1ZSB3b3JrcyB3ZWxsIGZvciBtb3N0IHByb2dyYW1zLgorICAgICAgPC9wPjwvZGQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1zaGFyZWQtdGhyZXNob2xkPSZsdDtuJmd0OyBbZGVmYXVsdDogb2ZmXTwvY29kZT4KKyAgICA8L3NwYW4+PC9kdD4KKzxkZD48cD4KKyAgICAgICAgUHJpbnQgYW4gZXJyb3IgbWVzc2FnZSBpZiBhIHJlYWRlciBsb2NrIGhhcyBiZWVuIGhlbGQgbG9uZ2VyCisgICAgICAgIHRoYW4gdGhlIHNwZWNpZmllZCB0aW1lIChpbiBtaWxsaXNlY29uZHMpLiBUaGlzIG9wdGlvbiBlbmFibGVzCisgICAgICAgIHRoZSBkZXRlY3Rpb24gb2YgbG9jayBjb250ZW50aW9uLgorICAgICAgPC9wPjwvZGQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1zaG93LWNvbmZsLXNlZz0mbHQ7eWVzfG5vJmd0OyBbZGVmYXVsdDogeWVzXTwvY29kZT4KKyAgICA8L3NwYW4+PC9kdD4KKzxkZD48cD4KKyAgICAgICAgIFNob3cgY29uZmxpY3Rpbmcgc2VnbWVudHMgaW4gcmFjZSByZXBvcnRzLiBTaW5jZSB0aGlzCisgICAgICAgICBpbmZvcm1hdGlvbiBjYW4gaGVscCB0byBmaW5kIHRoZSBjYXVzZSBvZiBhIGRhdGEgcmFjZSwgdGhpcworICAgICAgICAgb3B0aW9uIGlzIGVuYWJsZWQgYnkgZGVmYXVsdC4gRGlzYWJsaW5nIHRoaXMgb3B0aW9uIG1ha2VzIHRoZQorICAgICAgICAgb3V0cHV0IG9mIERSRCBtb3JlIGNvbXBhY3QuCisgICAgICA8L3A+PC9kZD4KKzxkdD48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXNob3ctc3RhY2stdXNhZ2U9Jmx0O3llc3xubyZndDsgW2RlZmF1bHQ6IG5vXTwvY29kZT4KKyAgICA8L3NwYW4+PC9kdD4KKzxkZD48cD4KKyAgICAgICAgUHJpbnQgc3RhY2sgdXNhZ2UgYXQgdGhyZWFkIGV4aXQgdGltZS4gV2hlbiBhIHByb2dyYW0gY3JlYXRlcyBhIGxhcmdlCisgICAgICAgIG51bWJlciBvZiB0aHJlYWRzIGl0IGJlY29tZXMgaW1wb3J0YW50IHRvIGxpbWl0IHRoZSBhbW91bnQgb2YgdmlydHVhbAorICAgICAgICBtZW1vcnkgYWxsb2NhdGVkIGZvciB0aHJlYWQgc3RhY2tzLiBUaGlzIG9wdGlvbiBtYWtlcyBpdCBwb3NzaWJsZSB0bworICAgICAgICBvYnNlcnZlIGhvdyBtdWNoIHN0YWNrIG1lbW9yeSBoYXMgYmVlbiB1c2VkIGJ5IGVhY2ggdGhyZWFkIG9mIHRoZQorICAgICAgICBjbGllbnQgcHJvZ3JhbS4gTm90ZTogdGhlIERSRCB0b29sIGl0c2VsZiBhbGxvY2F0ZXMgc29tZSB0ZW1wb3JhcnkKKyAgICAgICAgZGF0YSBvbiB0aGUgY2xpZW50IHRocmVhZCBzdGFjay4gVGhlIHNwYWNlIG5lY2Vzc2FyeSBmb3IgdGhpcworICAgICAgICB0ZW1wb3JhcnkgZGF0YSBtdXN0IGJlIGFsbG9jYXRlZCBieSB0aGUgY2xpZW50IHByb2dyYW0gd2hlbiBpdAorICAgICAgICBhbGxvY2F0ZXMgc3RhY2sgbWVtb3J5LCBidXQgaXMgbm90IGluY2x1ZGVkIGluIHN0YWNrIHVzYWdlIHJlcG9ydGVkIGJ5CisgICAgICAgIERSRC4KKyAgICAgIDwvcD48L2RkPgorPGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0taWdub3JlLXRocmVhZC1jcmVhdGlvbj0mbHQ7eWVzfG5vJmd0OyBbZGVmYXVsdDogbm9dPC9jb2RlPgorICAgIDwvc3Bhbj48L2R0PgorPGRkPgorPHA+CisgICAgICAgIENvbnRyb2xzIHdoZXRoZXIgYWxsIGFjdGl2aXRpZXMgZHVyaW5nIHRocmVhZCBjcmVhdGlvbiBzaG91bGQgYmUKKyAgICAgICAgaWdub3JlZC4gQnkgZGVmYXVsdCBlbmFibGVkIG9ubHkgb24gU29sYXJpcy4KKyAgICAgICAgU29sYXJpcyBwcm92aWRlcyBoaWdoZXIgdGhyb3VnaHB1dCwgcGFyYWxsZWxpc20gYW5kIHNjYWxhYmlsaXR5IHRoYW4KKyAgICAgICAgb3RoZXIgb3BlcmF0aW5nIHN5c3RlbXMsIGF0IHRoZSBjb3N0IG9mIG1vcmUgZmluZS1ncmFpbmVkIGxvY2tpbmcKKyAgICAgICAgYWN0aXZpdHkuIFRoaXMgbWVhbnMgZm9yIGV4YW1wbGUgdGhhdCB3aGVuIGEgdGhyZWFkIGlzIGNyZWF0ZWQgdW5kZXIKKyAgICAgICAgZ2xpYmMsIGp1c3Qgb25lIGJpZyBsb2NrIGlzIHVzZWQgZm9yIGFsbCB0aHJlYWQgc2V0dXAuIFNvbGFyaXMgbGliYworICAgICAgICB1c2VzIHNldmVyYWwgZmluZS1ncmFpbmVkIGxvY2tzIGFuZCB0aGUgY3JlYXRvciB0aHJlYWQgcmVzdW1lcyBpdHMKKyAgICAgICAgYWN0aXZpdGllcyBhcyBzb29uIGFzIHBvc3NpYmxlLCBsZWF2aW5nIGZvciBleGFtcGxlIHN0YWNrIGFuZCBUTFMgc2V0dXAKKyAgICAgICAgc2VxdWVuY2UgdG8gdGhlIGNyZWF0ZWQgdGhyZWFkLgorICAgICAgICBUaGlzIHNpdHVhdGlvbiBjb25mdXNlcyBEUkQgYXMgaXQgYXNzdW1lcyB0aGVyZSBpcyBzb21lIGZhbHNlIG9yZGVyaW5nCisgICAgICAgIGluIHBsYWNlIGJldHdlZW4gY3JlYXRvciBhbmQgY3JlYXRlZCB0aHJlYWQ7IGFuZCB0aGVyZWZvcmUgbWFueSB0eXBlcworICAgICAgICBvZiByYWNlIGNvbmRpdGlvbnMgaW4gdGhlIGFwcGxpY2F0aW9uIHdvdWxkIG5vdCBiZSByZXBvcnRlZC4gVG8gcHJldmVudAorICAgICAgICBzdWNoIGZhbHNlIG9yZGVyaW5nLCB0aGlzIGNvbW1hbmQgbGluZSBvcHRpb24gaXMgc2V0IHRvCisgICAgICAgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+eWVzPC9jb2RlPiBieSBkZWZhdWx0IG9uIFNvbGFyaXMuCisgICAgICAgIEFsbCBhY3Rpdml0eSAobG9hZHMsIHN0b3JlcywgY2xpZW50IHJlcXVlc3RzKSBpcyB0aGVyZWZvcmUgaWdub3JlZAorICAgICAgICBkdXJpbmc6PC9wPgorPGRpdiBjbGFzcz0iaXRlbWl6ZWRsaXN0Ij48dWwgY2xhc3M9Iml0ZW1pemVkbGlzdCIgc3R5bGU9Imxpc3Qtc3R5bGUtdHlwZTogZGlzYzsgIj4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPgorCSAgICBwdGhyZWFkX2NyZWF0ZSgpIGNhbGwgaW4gdGhlIGNyZWF0b3IgdGhyZWFkCisJICA8L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPgorCSAgICB0aHJlYWQgY3JlYXRpb24gcGhhc2UgKHN0YWNrIGFuZCBUTFMgc2V0dXApIGluIHRoZSBjcmVhdGVkIHRocmVhZAorCSAgPC9wPjwvbGk+Cis8L3VsPjwvZGl2PgorPC9kZD4KKzwvZGw+Cis8L2Rpdj4KKzxwPgorVGhlIGZvbGxvd2luZyBvcHRpb25zIGFyZSBhdmFpbGFibGUgZm9yIG1vbml0b3JpbmcgdGhlIGJlaGF2aW9yIG9mIHRoZQorY2xpZW50IHByb2dyYW06Cis8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPgorPGEgbmFtZT0iZHJkLmRlYnVnb3B0cy5saXN0Ij48L2E+PGRsIGNsYXNzPSJ2YXJpYWJsZWxpc3QiPgorPGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tdHJhY2UtYWRkcj0mbHQ7YWRkcmVzcyZndDsgW2RlZmF1bHQ6IG5vbmVdPC9jb2RlPgorICAgIDwvc3Bhbj48L2R0PgorPGRkPjxwPgorICAgICAgICBUcmFjZSBhbGwgbG9hZCBhbmQgc3RvcmUgYWN0aXZpdHkgZm9yIHRoZSBzcGVjaWZpZWQKKyAgICAgICAgYWRkcmVzcy4gVGhpcyBvcHRpb24gbWF5IGJlIHNwZWNpZmllZCBtb3JlIHRoYW4gb25jZS4KKyAgICAgIDwvcD48L2RkPgorPGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tcHRyYWNlLWFkZHI9Jmx0O2FkZHJlc3MmZ3Q7IFtkZWZhdWx0OiBub25lXTwvY29kZT4KKyAgICA8L3NwYW4+PC9kdD4KKzxkZD48cD4KKyAgICAgICAgVHJhY2UgYWxsIGxvYWQgYW5kIHN0b3JlIGFjdGl2aXR5IGZvciB0aGUgc3BlY2lmaWVkIGFkZHJlc3MgYW5kIGtlZXAKKyAgICAgICAgZG9pbmcgdGhhdCBldmVuIGFmdGVyIHRoZSBtZW1vcnkgYXQgdGhhdCBhZGRyZXNzIGhhcyBiZWVuIGZyZWVkIGFuZAorICAgICAgICByZWFsbG9jYXRlZC4KKyAgICAgIDwvcD48L2RkPgorPGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tdHJhY2UtYWxsb2M9Jmx0O3llc3xubyZndDsgW2RlZmF1bHQ6IG5vXTwvY29kZT4KKyAgICA8L3NwYW4+PC9kdD4KKzxkZD48cD4KKyAgICAgICAgVHJhY2UgYWxsIG1lbW9yeSBhbGxvY2F0aW9ucyBhbmQgZGVhbGxvY2F0aW9ucy4gTWF5IHByb2R1Y2UgYSBodWdlCisgICAgICAgIGFtb3VudCBvZiBvdXRwdXQuCisgICAgICA8L3A+PC9kZD4KKzxkdD48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXRyYWNlLWJhcnJpZXI9Jmx0O3llc3xubyZndDsgW2RlZmF1bHQ6IG5vXTwvY29kZT4KKyAgICA8L3NwYW4+PC9kdD4KKzxkZD48cD4KKyAgICAgICAgVHJhY2UgYWxsIGJhcnJpZXIgYWN0aXZpdHkuCisgICAgICA8L3A+PC9kZD4KKzxkdD48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXRyYWNlLWNvbmQ9Jmx0O3llc3xubyZndDsgW2RlZmF1bHQ6IG5vXTwvY29kZT4KKyAgICA8L3NwYW4+PC9kdD4KKzxkZD48cD4KKyAgICAgICAgVHJhY2UgYWxsIGNvbmRpdGlvbiB2YXJpYWJsZSBhY3Rpdml0eS4KKyAgICAgIDwvcD48L2RkPgorPGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tdHJhY2UtZm9yay1qb2luPSZsdDt5ZXN8bm8mZ3Q7IFtkZWZhdWx0OiBub108L2NvZGU+CisgICAgPC9zcGFuPjwvZHQ+Cis8ZGQ+PHA+CisgICAgICAgIFRyYWNlIGFsbCB0aHJlYWQgY3JlYXRpb24gYW5kIGFsbCB0aHJlYWQgdGVybWluYXRpb24gZXZlbnRzLgorICAgICAgPC9wPjwvZGQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS10cmFjZS1oYj0mbHQ7eWVzfG5vJmd0OyBbZGVmYXVsdDogbm9dPC9jb2RlPgorICAgIDwvc3Bhbj48L2R0PgorPGRkPjxwPgorICAgICAgICBUcmFjZSBleGVjdXRpb24gb2YgdGhlIDxjb2RlIGNsYXNzPSJsaXRlcmFsIj5BTk5PVEFURV9IQVBQRU5TX0JFRk9SRSgpPC9jb2RlPiwKKwk8Y29kZSBjbGFzcz0ibGl0ZXJhbCI+QU5OT1RBVEVfSEFQUEVOU19BRlRFUigpPC9jb2RlPiBhbmQKKwk8Y29kZSBjbGFzcz0ibGl0ZXJhbCI+QU5OT1RBVEVfSEFQUEVOU19ET05FKCk8L2NvZGU+IGNsaWVudCByZXF1ZXN0cy4KKyAgICAgIDwvcD48L2RkPgorPGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tdHJhY2UtbXV0ZXg9Jmx0O3llc3xubyZndDsgW2RlZmF1bHQ6IG5vXTwvY29kZT4KKyAgICA8L3NwYW4+PC9kdD4KKzxkZD48cD4KKyAgICAgICAgVHJhY2UgYWxsIG11dGV4IGFjdGl2aXR5LgorICAgICAgPC9wPjwvZGQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS10cmFjZS1yd2xvY2s9Jmx0O3llc3xubyZndDsgW2RlZmF1bHQ6IG5vXTwvY29kZT4KKyAgICA8L3NwYW4+PC9kdD4KKzxkZD48cD4KKyAgICAgICAgIFRyYWNlIGFsbCByZWFkZXItd3JpdGVyIGxvY2sgYWN0aXZpdHkuCisgICAgICA8L3A+PC9kZD4KKzxkdD48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXRyYWNlLXNlbWFwaG9yZT0mbHQ7eWVzfG5vJmd0OyBbZGVmYXVsdDogbm9dPC9jb2RlPgorICAgIDwvc3Bhbj48L2R0PgorPGRkPjxwPgorICAgICAgICBUcmFjZSBhbGwgc2VtYXBob3JlIGFjdGl2aXR5LgorICAgICAgPC9wPjwvZGQ+Cis8L2RsPgorPC9kaXY+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0iZHJkLW1hbnVhbC5kYXRhLXJhY2VzIj48L2E+OC4yLjIuoERldGVjdGVkIEVycm9yczogRGF0YSBSYWNlczwvaDM+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD4KK0RSRCBwcmludHMgYSBtZXNzYWdlIGV2ZXJ5IHRpbWUgaXQgZGV0ZWN0cyBhIGRhdGEgcmFjZS4gUGxlYXNlIGtlZXAKK3RoZSBmb2xsb3dpbmcgaW4gbWluZCB3aGVuIGludGVycHJldGluZyBEUkQncyBvdXRwdXQ6Cis8L3A+Cis8ZGl2IGNsYXNzPSJpdGVtaXplZGxpc3QiPjx1bCBjbGFzcz0iaXRlbWl6ZWRsaXN0IiBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOiBkaXNjOyAiPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+CisgICAgICBFdmVyeSB0aHJlYWQgaXMgYXNzaWduZWQgYSA8c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT50aHJlYWQgSUQ8L2VtPjwvc3Bhbj4gYnkgdGhlIERSRAorICAgICAgdG9vbC4gQSB0aHJlYWQgSUQgaXMgYSBudW1iZXIuIFRocmVhZCBJRCdzIHN0YXJ0IGF0IG9uZSBhbmQgYXJlIG5ldmVyCisgICAgICByZWN5Y2xlZC4KKyAgICA8L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPgorICAgICAgVGhlIHRlcm0gPHNwYW4gY2xhc3M9ImVtcGhhc2lzIj48ZW0+c2VnbWVudDwvZW0+PC9zcGFuPiByZWZlcnMgdG8gYSBjb25zZWN1dGl2ZQorICAgICAgc2VxdWVuY2Ugb2YgbG9hZCwgc3RvcmUgYW5kIHN5bmNocm9uaXphdGlvbiBvcGVyYXRpb25zLCBhbGwKKyAgICAgIGlzc3VlZCBieSB0aGUgc2FtZSB0aHJlYWQuIEEgc2VnbWVudCBhbHdheXMgc3RhcnRzIGFuZCBlbmRzIGF0IGEKKyAgICAgIHN5bmNocm9uaXphdGlvbiBvcGVyYXRpb24uIERhdGEgcmFjZSBhbmFseXNpcyBpcyBwZXJmb3JtZWQKKyAgICAgIGJldHdlZW4gc2VnbWVudHMgaW5zdGVhZCBvZiBiZXR3ZWVuIGluZGl2aWR1YWwgbG9hZCBhbmQgc3RvcmUKKyAgICAgIG9wZXJhdGlvbnMgYmVjYXVzZSBvZiBwZXJmb3JtYW5jZSByZWFzb25zLgorICAgIDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+CisgICAgICBUaGVyZSBhcmUgYWx3YXlzIGF0IGxlYXN0IHR3byBtZW1vcnkgYWNjZXNzZXMgaW52b2x2ZWQgaW4gYSBkYXRhCisgICAgICByYWNlLiBNZW1vcnkgYWNjZXNzZXMgaW52b2x2ZWQgaW4gYSBkYXRhIHJhY2UgYXJlIGNhbGxlZAorICAgICAgPHNwYW4gY2xhc3M9ImVtcGhhc2lzIj48ZW0+Y29uZmxpY3RpbmcgbWVtb3J5IGFjY2Vzc2VzPC9lbT48L3NwYW4+LiBEUkQgcHJpbnRzIGEKKyAgICAgIHJlcG9ydCBmb3IgZWFjaCBtZW1vcnkgYWNjZXNzIHRoYXQgY29uZmxpY3RzIHdpdGggYSBwYXN0IG1lbW9yeQorICAgICAgYWNjZXNzLgorICAgIDwvcD48L2xpPgorPC91bD48L2Rpdj4KKzxwPgorPC9wPgorPHA+CitCZWxvdyB5b3UgY2FuIGZpbmQgYW4gZXhhbXBsZSBvZiBhIG1lc3NhZ2UgcHJpbnRlZCBieSBEUkQgd2hlbiBpdAorZGV0ZWN0cyBhIGRhdGEgcmFjZToKKzwvcD4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KKyQgdmFsZ3JpbmQgLS10b29sPWRyZCAtLXJlYWQtdmFyLWluZm89eWVzIGRyZC90ZXN0cy9yd2xvY2tfcmFjZQorLi4uCis9PTk0NjY9PSBUaHJlYWQgMzoKKz09OTQ2Nj09IENvbmZsaWN0aW5nIGxvYWQgYnkgdGhyZWFkIDMgYXQgMHgwMDYwMjBiOCBzaXplIDQKKz09OTQ2Nj09ICAgIGF0IDB4NDAwQjZDOiB0aHJlYWRfZnVuYyAocndsb2NrX3JhY2UuYzoyOSkKKz09OTQ2Nj09ICAgIGJ5IDB4NEMyOTFERjogdmdfdGhyZWFkX3dyYXBwZXIgKGRyZF9wdGhyZWFkX2ludGVyY2VwdHMuYzoxODYpCis9PTk0NjY9PSAgICBieSAweDRFMzQwM0Y6IHN0YXJ0X3RocmVhZCAoaW4gL2xpYjY0L2xpYnB0aHJlYWQtMi44LnNvKQorPT05NDY2PT0gICAgYnkgMHg1MzI1MENDOiBjbG9uZSAoaW4gL2xpYjY0L2xpYmMtMi44LnNvKQorPT05NDY2PT0gTG9jYXRpb24gMHg2MDIwYjggaXMgMCBieXRlcyBpbnNpZGUgbG9jYWwgdmFyICJzX3JhY3kiCis9PTk0NjY9PSBkZWNsYXJlZCBhdCByd2xvY2tfcmFjZS5jOjE4LCBpbiBmcmFtZSAjMCBvZiB0aHJlYWQgMworPT05NDY2PT0gT3RoZXIgc2VnbWVudCBzdGFydCAodGhyZWFkIDIpCis9PTk0NjY9PSAgICBhdCAweDRDMjg0N0Q6IHB0aHJlYWRfcndsb2NrX3JkbG9jayogKGRyZF9wdGhyZWFkX2ludGVyY2VwdHMuYzo4MTMpCis9PTk0NjY9PSAgICBieSAweDQwMEI2QjogdGhyZWFkX2Z1bmMgKHJ3bG9ja19yYWNlLmM6MjgpCis9PTk0NjY9PSAgICBieSAweDRDMjkxREY6IHZnX3RocmVhZF93cmFwcGVyIChkcmRfcHRocmVhZF9pbnRlcmNlcHRzLmM6MTg2KQorPT05NDY2PT0gICAgYnkgMHg0RTM0MDNGOiBzdGFydF90aHJlYWQgKGluIC9saWI2NC9saWJwdGhyZWFkLTIuOC5zbykKKz09OTQ2Nj09ICAgIGJ5IDB4NTMyNTBDQzogY2xvbmUgKGluIC9saWI2NC9saWJjLTIuOC5zbykKKz09OTQ2Nj09IE90aGVyIHNlZ21lbnQgZW5kICh0aHJlYWQgMikKKz09OTQ2Nj09ICAgIGF0IDB4NEMyOEI1NDogcHRocmVhZF9yd2xvY2tfdW5sb2NrKiAoZHJkX3B0aHJlYWRfaW50ZXJjZXB0cy5jOjkxMikKKz09OTQ2Nj09ICAgIGJ5IDB4NDAwQjg0OiB0aHJlYWRfZnVuYyAocndsb2NrX3JhY2UuYzozMCkKKz09OTQ2Nj09ICAgIGJ5IDB4NEMyOTFERjogdmdfdGhyZWFkX3dyYXBwZXIgKGRyZF9wdGhyZWFkX2ludGVyY2VwdHMuYzoxODYpCis9PTk0NjY9PSAgICBieSAweDRFMzQwM0Y6IHN0YXJ0X3RocmVhZCAoaW4gL2xpYjY0L2xpYnB0aHJlYWQtMi44LnNvKQorPT05NDY2PT0gICAgYnkgMHg1MzI1MENDOiBjbG9uZSAoaW4gL2xpYjY0L2xpYmMtMi44LnNvKQorLi4uCis8L3ByZT4KKzxwPgorVGhlIGFib3ZlIHJlcG9ydCBoYXMgdGhlIGZvbGxvd2luZyBtZWFuaW5nOgorPC9wPgorPGRpdiBjbGFzcz0iaXRlbWl6ZWRsaXN0Ij48dWwgY2xhc3M9Iml0ZW1pemVkbGlzdCIgc3R5bGU9Imxpc3Qtc3R5bGUtdHlwZTogZGlzYzsgIj4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPgorICAgICAgVGhlIG51bWJlciBpbiB0aGUgY29sdW1uIG9uIHRoZSBsZWZ0IGlzIHRoZSBwcm9jZXNzIElEIG9mIHRoZQorICAgICAgcHJvY2VzcyBiZWluZyBhbmFseXplZCBieSBEUkQuCisgICAgPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD4KKyAgICAgIFRoZSBmaXJzdCBsaW5lICgiVGhyZWFkIDMiKSB0ZWxscyB5b3UgdGhlIHRocmVhZCBJRCBmb3IKKyAgICAgIHRoZSB0aHJlYWQgaW4gd2hpY2ggY29udGV4dCB0aGUgZGF0YSByYWNlIGhhcyBiZWVuIGRldGVjdGVkLgorICAgIDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+CisgICAgICBUaGUgbmV4dCBsaW5lIHRlbGxzIHdoaWNoIGtpbmQgb2Ygb3BlcmF0aW9uIHdhcyBwZXJmb3JtZWQgKGxvYWQgb3IKKyAgICAgIHN0b3JlKSBhbmQgYnkgd2hpY2ggdGhyZWFkLiBPbiB0aGUgc2FtZSBsaW5lIHRoZSBzdGFydCBhZGRyZXNzIGFuZCB0aGUKKyAgICAgIG51bWJlciBvZiBieXRlcyBpbnZvbHZlZCBpbiB0aGUgY29uZmxpY3RpbmcgYWNjZXNzIGFyZSBhbHNvIGRpc3BsYXllZC4KKyAgICA8L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPgorICAgICAgTmV4dCwgdGhlIGNhbGwgc3RhY2sgb2YgdGhlIGNvbmZsaWN0aW5nIGFjY2VzcyBpcyBkaXNwbGF5ZWQuIElmCisgICAgICB5b3VyIHByb2dyYW0gaGFzIGJlZW4gY29tcGlsZWQgd2l0aCBkZWJ1ZyBpbmZvcm1hdGlvbgorICAgICAgKDxjb2RlIGNsYXNzPSJvcHRpb24iPi1nPC9jb2RlPiksIHRoaXMgY2FsbCBzdGFjayB3aWxsIGluY2x1ZGUgZmlsZSBuYW1lcyBhbmQKKyAgICAgIGxpbmUgbnVtYmVycy4gVGhlIHR3bworICAgICAgYm90dG9tbW9zdCBmcmFtZXMgaW4gdGhpcyBjYWxsIHN0YWNrICg8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPmNsb25lPC9jb2RlPgorICAgICAgYW5kIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+c3RhcnRfdGhyZWFkPC9jb2RlPikgc2hvdyBob3cgdGhlIE5QVEwgc3RhcnRzCisgICAgICBhIHRocmVhZC4gVGhlIHRoaXJkIGZyYW1lCisgICAgICAoPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj52Z190aHJlYWRfd3JhcHBlcjwvY29kZT4pIGlzIGFkZGVkIGJ5IERSRC4gVGhlCisgICAgICBmb3VydGggZnJhbWUgKDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+dGhyZWFkX2Z1bmM8L2NvZGU+KSBpcyB0aGUgZmlyc3QKKyAgICAgIGludGVyZXN0aW5nIGxpbmUgYmVjYXVzZSBpdCBzaG93cyB0aGUgdGhyZWFkIGVudHJ5IHBvaW50LCB0aGF0CisgICAgICBpcyB0aGUgZnVuY3Rpb24gdGhhdCBoYXMgYmVlbiBwYXNzZWQgYXMgdGhlIHRoaXJkIGFyZ3VtZW50IHRvCisgICAgICA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPnB0aHJlYWRfY3JlYXRlPC9jb2RlPi4KKyAgICA8L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPgorICAgICAgTmV4dCwgdGhlIGFsbG9jYXRpb24gY29udGV4dCBmb3IgdGhlIGNvbmZsaWN0aW5nIGFkZHJlc3MgaXMKKyAgICAgIGRpc3BsYXllZC4gRm9yIGR5bmFtaWNhbGx5IGFsbG9jYXRlZCBkYXRhIHRoZSBhbGxvY2F0aW9uIGNhbGwKKyAgICAgIHN0YWNrIGlzIHNob3duLiBGb3Igc3RhdGljIHZhcmlhYmxlcyBhbmQgc3RhY2sgdmFyaWFibGVzIHRoZQorICAgICAgYWxsb2NhdGlvbiBjb250ZXh0IGlzIG9ubHkgc2hvd24gd2hlbiB0aGUgb3B0aW9uCisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXJlYWQtdmFyLWluZm89eWVzPC9jb2RlPiBoYXMgYmVlbgorICAgICAgc3BlY2lmaWVkLiBPdGhlcndpc2UgRFJEIHdpbGwgcHJpbnQgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5BbGxvY2F0aW9uCisgICAgICBjb250ZXh0OiB1bmtub3duPC9jb2RlPi4KKyAgICA8L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPgorPHA+CisgICAgICBBIGNvbmZsaWN0aW5nIGFjY2VzcyBpbnZvbHZlcyBhdCBsZWFzdCB0d28gbWVtb3J5IGFjY2Vzc2VzLiBGb3IKKyAgICAgIG9uZSBvZiB0aGVzZSBhY2Nlc3NlcyBhbiBleGFjdCBjYWxsIHN0YWNrIGlzIGRpc3BsYXllZCwgYW5kIGZvcgorICAgICAgdGhlIG90aGVyIGFjY2Vzc2VzIGFuIGFwcHJveGltYXRlIGNhbGwgc3RhY2sgaXMgZGlzcGxheWVkLAorICAgICAgbmFtZWx5IHRoZSBzdGFydCBhbmQgdGhlIGVuZCBvZiB0aGUgc2VnbWVudHMgb2YgdGhlIG90aGVyCisgICAgICBhY2Nlc3Nlcy4gVGhpcyBpbmZvcm1hdGlvbiBjYW4gYmUgaW50ZXJwcmV0ZWQgYXMgZm9sbG93czoKKyAgICAgIDwvcD4KKzxkaXYgY2xhc3M9Im9yZGVyZWRsaXN0Ij48b2wgY2xhc3M9Im9yZGVyZWRsaXN0IiB0eXBlPSIxIj4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPgorICAgICAgICAgICAgU3RhcnQgYXQgdGhlIGJvdHRvbSBvZiBib3RoIGNhbGwgc3RhY2tzLCBhbmQgY291bnQgdGhlCisgICAgICAgICAgICBudW1iZXIgc3RhY2sgZnJhbWVzIHdpdGggaWRlbnRpY2FsIGZ1bmN0aW9uIG5hbWUsIGZpbGUKKyAgICAgICAgICAgIG5hbWUgYW5kIGxpbmUgbnVtYmVyLiBJbiB0aGUgYWJvdmUgZXhhbXBsZSB0aGUgdGhyZWUKKyAgICAgICAgICAgIGJvdHRvbW1vc3QgZnJhbWVzIGFyZSBpZGVudGljYWwKKyAgICAgICAgICAgICg8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPmNsb25lPC9jb2RlPiwKKyAgICAgICAgICAgIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+c3RhcnRfdGhyZWFkPC9jb2RlPiBhbmQKKyAgICAgICAgICAgIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+dmdfdGhyZWFkX3dyYXBwZXI8L2NvZGU+KS4KKyAgICAgICAgICA8L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPgorICAgICAgICAgICAgVGhlIG5leHQgaGlnaGVyIHN0YWNrIGZyYW1lIGluIGJvdGggY2FsbCBzdGFja3Mgbm93IHRlbGxzCisgICAgICAgICAgICB5b3UgYmV0d2VlbiBpbiB3aGljaCBzb3VyY2UgY29kZSByZWdpb24gdGhlIG90aGVyIG1lbW9yeQorICAgICAgICAgICAgYWNjZXNzIGhhcHBlbmVkLiBUaGUgYWJvdmUgb3V0cHV0IHRlbGxzIHRoYXQgdGhlIG90aGVyCisgICAgICAgICAgICBtZW1vcnkgYWNjZXNzIGludm9sdmVkIGluIHRoZSBkYXRhIHJhY2UgaGFwcGVuZWQgYmV0d2VlbgorICAgICAgICAgICAgc291cmNlIGNvZGUgbGluZXMgMjggYW5kIDMwIGluIGZpbGUKKyAgICAgICAgICAgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+cndsb2NrX3JhY2UuYzwvY29kZT4uCisgICAgICAgICAgPC9wPjwvbGk+Cis8L29sPjwvZGl2PgorPHA+CisgICAgPC9wPgorPC9saT4KKzwvdWw+PC9kaXY+Cis8cD4KKzwvcD4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDIiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJkcmQtbWFudWFsLmxvY2stY29udGVudGlvbiI+PC9hPjguMi4zLqBEZXRlY3RlZCBFcnJvcnM6IExvY2sgQ29udGVudGlvbjwvaDM+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD4KK1RocmVhZHMgbXVzdCBiZSBhYmxlIHRvIG1ha2UgcHJvZ3Jlc3Mgd2l0aG91dCBiZWluZyBibG9ja2VkIGZvciB0b28gbG9uZyBieQorb3RoZXIgdGhyZWFkcy4gU29tZXRpbWVzIGEgdGhyZWFkIGhhcyB0byB3YWl0IHVudGlsIGEgbXV0ZXggb3IgcmVhZGVyLXdyaXRlcgorc3luY2hyb25pemF0aW9uIG9iamVjdCBpcyB1bmxvY2tlZCBieSBhbm90aGVyIHRocmVhZC4gVGhpcyBpcyBjYWxsZWQKKzxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPmxvY2sgY29udGVudGlvbjwvZW0+PC9zcGFuPi4KKzwvcD4KKzxwPgorTG9jayBjb250ZW50aW9uIGNhdXNlcyBkZWxheXMuIFN1Y2ggZGVsYXlzIHNob3VsZCBiZSBhcyBzaG9ydCBhcworcG9zc2libGUuIFRoZSB0d28gY29tbWFuZCBsaW5lIG9wdGlvbnMKKzxjb2RlIGNsYXNzPSJsaXRlcmFsIj4tLWV4Y2x1c2l2ZS10aHJlc2hvbGQ9Jmx0O24mZ3Q7PC9jb2RlPiBhbmQKKzxjb2RlIGNsYXNzPSJsaXRlcmFsIj4tLXNoYXJlZC10aHJlc2hvbGQ9Jmx0O24mZ3Q7PC9jb2RlPiBtYWtlIGl0IHBvc3NpYmxlIHRvCitkZXRlY3QgZXhjZXNzaXZlIGxvY2sgY29udGVudGlvbiBieSBtYWtpbmcgRFJEIHJlcG9ydCBhbnkgbG9jayB0aGF0CitoYXMgYmVlbiBoZWxkIGxvbmdlciB0aGFuIHRoZSBzcGVjaWZpZWQgdGhyZXNob2xkLiBBbiBleGFtcGxlOgorPC9wPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPgorJCB2YWxncmluZCAtLXRvb2w9ZHJkIC0tZXhjbHVzaXZlLXRocmVzaG9sZD0xMCBkcmQvdGVzdHMvaG9sZF9sb2NrIC1pIDUwMAorLi4uCis9PTEwNjY4PT0gQWNxdWlyZWQgYXQ6Cis9PTEwNjY4PT0gICAgYXQgMHg0QzI2N0M4OiBwdGhyZWFkX211dGV4X2xvY2sgKGRyZF9wdGhyZWFkX2ludGVyY2VwdHMuYzozOTUpCis9PTEwNjY4PT0gICAgYnkgMHg0MDBEOTI6IG1haW4gKGhvbGRfbG9jay5jOjUxKQorPT0xMDY2OD09IExvY2sgb24gbXV0ZXggMHg3ZmVmZmZkNTAgd2FzIGhlbGQgZHVyaW5nIDUwMyBtcyAodGhyZXNob2xkOiAxMCBtcykuCis9PTEwNjY4PT0gICAgYXQgMHg0QzI2QURBOiBwdGhyZWFkX211dGV4X3VubG9jayAoZHJkX3B0aHJlYWRfaW50ZXJjZXB0cy5jOjQ0MSkKKz09MTA2Njg9PSAgICBieSAweDQwMERCNTogbWFpbiAoaG9sZF9sb2NrLmM6NTUpCisuLi4KKzwvcHJlPgorPHA+CitUaGUgPGNvZGUgY2xhc3M9ImxpdGVyYWwiPmhvbGRfbG9jazwvY29kZT4gdGVzdCBwcm9ncmFtIGhvbGRzIGEgbG9jayBhcyBsb25nIGFzCitzcGVjaWZpZWQgYnkgdGhlIDxjb2RlIGNsYXNzPSJsaXRlcmFsIj4taTwvY29kZT4gKGludGVydmFsKSBhcmd1bWVudC4gVGhlIERSRAorb3V0cHV0IHJlcG9ydHMgdGhhdCB0aGUgbG9jayBhY3F1aXJlZCBhdCBsaW5lIDUxIGluIHNvdXJjZSBmaWxlCis8Y29kZSBjbGFzcz0ibGl0ZXJhbCI+aG9sZF9sb2NrLmM8L2NvZGU+IGFuZCByZWxlYXNlZCBhdCBsaW5lIDU1IHdhcyBoZWxkIGR1cmluZworNTAzIG1zLCB3aGlsZSBhIHRocmVzaG9sZCBvZiAxMCBtcyB3YXMgc3BlY2lmaWVkIHRvIERSRC4KKzwvcD4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDIiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJkcmQtbWFudWFsLmFwaS1jaGVja3MiPjwvYT44LjIuNC6gRGV0ZWN0ZWQgRXJyb3JzOiBNaXN1c2Ugb2YgdGhlIFBPU0lYIHRocmVhZHMgQVBJPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPgorICBEUkQgaXMgYWJsZSB0byBkZXRlY3QgYW5kIHJlcG9ydCB0aGUgZm9sbG93aW5nIG1pc3VzZXMgb2YgdGhlIFBPU0lYCisgIHRocmVhZHMgQVBJOgorICA8L3A+Cis8ZGl2IGNsYXNzPSJpdGVtaXplZGxpc3QiPjx1bCBjbGFzcz0iaXRlbWl6ZWRsaXN0IiBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOiBkaXNjOyAiPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+CisgICAgICAgIFBhc3NpbmcgdGhlIGFkZHJlc3Mgb2Ygb25lIHR5cGUgb2Ygc3luY2hyb25pemF0aW9uIG9iamVjdAorICAgICAgICAoZS5nLiBhIG11dGV4KSB0byBhIFBPU0lYIEFQSSBjYWxsIHRoYXQgZXhwZWN0cyBhIHBvaW50ZXIgdG8KKyAgICAgICAgYW5vdGhlciB0eXBlIG9mIHN5bmNocm9uaXphdGlvbiBvYmplY3QgKGUuZy4gYSBjb25kaXRpb24KKyAgICAgICAgdmFyaWFibGUpLgorICAgICAgPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD4KKyAgICAgICAgQXR0ZW1wdHMgdG8gdW5sb2NrIGEgbXV0ZXggdGhhdCBoYXMgbm90IGJlZW4gbG9ja2VkLgorICAgICAgPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD4KKyAgICAgICAgQXR0ZW1wdHMgdG8gdW5sb2NrIGEgbXV0ZXggdGhhdCB3YXMgbG9ja2VkIGJ5IGFub3RoZXIgdGhyZWFkLgorICAgICAgPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD4KKyAgICAgICAgQXR0ZW1wdHMgdG8gbG9jayBhIG11dGV4IG9mIHR5cGUKKyAgICAgICAgPGNvZGUgY2xhc3M9ImxpdGVyYWwiPlBUSFJFQURfTVVURVhfTk9STUFMPC9jb2RlPiBvciBhIHNwaW5sb2NrCisgICAgICAgIHJlY3Vyc2l2ZWx5LgorICAgICAgPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD4KKyAgICAgICAgRGVzdHJ1Y3Rpb24gb3IgZGVhbGxvY2F0aW9uIG9mIGEgbG9ja2VkIG11dGV4LgorICAgICAgPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD4KKyAgICAgICAgU2VuZGluZyBhIHNpZ25hbCB0byBhIGNvbmRpdGlvbiB2YXJpYWJsZSB3aGlsZSBubyBsb2NrIGlzIGhlbGQKKyAgICAgICAgb24gdGhlIG11dGV4IGFzc29jaWF0ZWQgd2l0aCB0aGUgY29uZGl0aW9uIHZhcmlhYmxlLgorICAgICAgPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD4KKyAgICAgICAgQ2FsbGluZyA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPnB0aHJlYWRfY29uZF93YWl0PC9jb2RlPiBvbiBhIG11dGV4CisgICAgICAgIHRoYXQgaXMgbm90IGxvY2tlZCwgdGhhdCBpcyBsb2NrZWQgYnkgYW5vdGhlciB0aHJlYWQgb3IgdGhhdAorICAgICAgICBoYXMgYmVlbiBsb2NrZWQgcmVjdXJzaXZlbHkuCisgICAgICA8L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPgorICAgICAgICBBc3NvY2lhdGluZyB0d28gZGlmZmVyZW50IG11dGV4ZXMgd2l0aCBhIGNvbmRpdGlvbiB2YXJpYWJsZQorICAgICAgICB0aHJvdWdoIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+cHRocmVhZF9jb25kX3dhaXQ8L2NvZGU+LgorICAgICAgPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD4KKyAgICAgICAgRGVzdHJ1Y3Rpb24gb3IgZGVhbGxvY2F0aW9uIG9mIGEgY29uZGl0aW9uIHZhcmlhYmxlIHRoYXQgaXMKKyAgICAgICAgYmVpbmcgd2FpdGVkIHVwb24uCisgICAgICA8L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPgorICAgICAgICBEZXN0cnVjdGlvbiBvciBkZWFsbG9jYXRpb24gb2YgYSBsb2NrZWQgcmVhZGVyLXdyaXRlciBzeW5jaHJvbml6YXRpb24KKyAgICAgICAgb2JqZWN0LgorICAgICAgPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD4KKyAgICAgICAgQXR0ZW1wdHMgdG8gdW5sb2NrIGEgcmVhZGVyLXdyaXRlciBzeW5jaHJvbml6YXRpb24gb2JqZWN0IHRoYXQgd2FzIG5vdAorICAgICAgICBsb2NrZWQgYnkgdGhlIGNhbGxpbmcgdGhyZWFkLgorICAgICAgPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD4KKyAgICAgICAgQXR0ZW1wdHMgdG8gcmVjdXJzaXZlbHkgbG9jayBhIHJlYWRlci13cml0ZXIgc3luY2hyb25pemF0aW9uIG9iamVjdAorICAgICAgICBleGNsdXNpdmVseS4KKyAgICAgIDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+CisgICAgICAgIEF0dGVtcHRzIHRvIHBhc3MgdGhlIGFkZHJlc3Mgb2YgYSB1c2VyLWRlZmluZWQgcmVhZGVyLXdyaXRlcgorICAgICAgICBzeW5jaHJvbml6YXRpb24gb2JqZWN0IHRvIGEgUE9TSVggdGhyZWFkcyBmdW5jdGlvbi4KKyAgICAgIDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+CisgICAgICAgIEF0dGVtcHRzIHRvIHBhc3MgdGhlIGFkZHJlc3Mgb2YgYSBQT1NJWCByZWFkZXItd3JpdGVyIHN5bmNocm9uaXphdGlvbgorICAgICAgICBvYmplY3QgdG8gb25lIG9mIHRoZSBhbm5vdGF0aW9ucyBmb3IgdXNlci1kZWZpbmVkIHJlYWRlci13cml0ZXIKKyAgICAgICAgc3luY2hyb25pemF0aW9uIG9iamVjdHMuCisgICAgICA8L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPgorICAgICAgICBSZWluaXRpYWxpemF0aW9uIG9mIGEgbXV0ZXgsIGNvbmRpdGlvbiB2YXJpYWJsZSwgcmVhZGVyLXdyaXRlcgorICAgICAgICBsb2NrLCBzZW1hcGhvcmUgb3IgYmFycmllci4KKyAgICAgIDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+CisgICAgICAgIERlc3RydWN0aW9uIG9yIGRlYWxsb2NhdGlvbiBvZiBhIHNlbWFwaG9yZSBvciBiYXJyaWVyIHRoYXQgaXMKKyAgICAgICAgYmVpbmcgd2FpdGVkIHVwb24uCisgICAgICA8L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPgorICAgICAgICBNaXNzaW5nIHN5bmNocm9uaXphdGlvbiBiZXR3ZWVuIGJhcnJpZXIgd2FpdCBhbmQgYmFycmllciBkZXN0cnVjdGlvbi4KKyAgICAgIDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+CisgICAgICAgIEV4aXRpbmcgYSB0aHJlYWQgd2l0aG91dCBmaXJzdCB1bmxvY2tpbmcgdGhlIHNwaW5sb2NrcywgbXV0ZXhlcyBvcgorICAgICAgICByZWFkZXItd3JpdGVyIHN5bmNocm9uaXphdGlvbiBvYmplY3RzIHRoYXQgd2VyZSBsb2NrZWQgYnkgdGhhdCB0aHJlYWQuCisgICAgICA8L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPgorICAgICAgICBQYXNzaW5nIGFuIGludmFsaWQgdGhyZWFkIElEIHRvIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+cHRocmVhZF9qb2luPC9jb2RlPgorICAgICAgICBvciA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPnB0aHJlYWRfY2FuY2VsPC9jb2RlPi4KKyAgICAgIDwvcD48L2xpPgorPC91bD48L2Rpdj4KKzxwPgorPC9wPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MiI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9ImRyZC1tYW51YWwuY2xpZW50cmVxcyI+PC9hPjguMi41LqBDbGllbnQgUmVxdWVzdHM8L2gzPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+CitKdXN0IGFzIGZvciBvdGhlciBWYWxncmluZCB0b29scyBpdCBpcyBwb3NzaWJsZSB0byBsZXQgYSBjbGllbnQgcHJvZ3JhbQoraW50ZXJhY3Qgd2l0aCB0aGUgRFJEIHRvb2wgdGhyb3VnaCBjbGllbnQgcmVxdWVzdHMuIEluIGFkZGl0aW9uIHRvIHRoZQorY2xpZW50IHJlcXVlc3RzIHNldmVyYWwgbWFjcm9zIGhhdmUgYmVlbiBkZWZpbmVkIHRoYXQgYWxsb3cgdG8gdXNlIHRoZQorY2xpZW50IHJlcXVlc3RzIGluIGEgY29udmVuaWVudCB3YXkuCis8L3A+Cis8cD4KK1RoZSBpbnRlcmZhY2UgYmV0d2VlbiBjbGllbnQgcHJvZ3JhbXMgYW5kIHRoZSBEUkQgdG9vbCBpcyBkZWZpbmVkIGluCit0aGUgaGVhZGVyIGZpbGUgPGNvZGUgY2xhc3M9ImxpdGVyYWwiPiZsdDt2YWxncmluZC9kcmQuaCZndDs8L2NvZGU+LiBUaGUKK2F2YWlsYWJsZSBtYWNyb3MgYW5kIGNsaWVudCByZXF1ZXN0cyBhcmU6Cis8L3A+Cis8ZGl2IGNsYXNzPSJpdGVtaXplZGxpc3QiPjx1bCBjbGFzcz0iaXRlbWl6ZWRsaXN0IiBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOiBkaXNjOyAiPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+CisgICAgICBUaGUgbWFjcm8gPGNvZGUgY2xhc3M9ImxpdGVyYWwiPkRSRF9HRVRfVkFMR1JJTkRfVEhSRUFESUQ8L2NvZGU+IGFuZCB0aGUKKyAgICAgIGNvcnJlc3BvbmRpbmcgY2xpZW50CisgICAgICByZXF1ZXN0IDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5WR19VU0VSUkVRX19EUkRfR0VUX1ZBTEdSSU5EX1RIUkVBRF9JRDwvY29kZT4uCisgICAgICBRdWVyeSB0aGUgdGhyZWFkIElEIHRoYXQgaGFzIGJlZW4gYXNzaWduZWQgYnkgdGhlIFZhbGdyaW5kIGNvcmUgdG8gdGhlCisgICAgICB0aHJlYWQgZXhlY3V0aW5nIHRoaXMgY2xpZW50IHJlcXVlc3QuIFZhbGdyaW5kJ3MgdGhyZWFkIElEJ3Mgc3RhcnQgYXQKKyAgICAgIG9uZSBhbmQgYXJlIHJlY3ljbGVkIGluIGNhc2UgYSB0aHJlYWQgc3RvcHMuCisgICAgPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD4KKyAgICAgIFRoZSBtYWNybyA8Y29kZSBjbGFzcz0ibGl0ZXJhbCI+RFJEX0dFVF9EUkRfVEhSRUFESUQ8L2NvZGU+IGFuZCB0aGUgY29ycmVzcG9uZGluZworICAgICAgY2xpZW50IHJlcXVlc3QgPGNvZGUgY2xhc3M9InZhcm5hbWUiPlZHX1VTRVJSRVFfX0RSRF9HRVRfRFJEX1RIUkVBRF9JRDwvY29kZT4uCisgICAgICBRdWVyeSB0aGUgdGhyZWFkIElEIHRoYXQgaGFzIGJlZW4gYXNzaWduZWQgYnkgRFJEIHRvIHRoZSB0aHJlYWQKKyAgICAgIGV4ZWN1dGluZyB0aGlzIGNsaWVudCByZXF1ZXN0LiBUaGVzZSBhcmUgdGhlIHRocmVhZCBJRCdzIHJlcG9ydGVkIGJ5IERSRAorICAgICAgaW4gZGF0YSByYWNlIHJlcG9ydHMgYW5kIGluIHRyYWNlIG1lc3NhZ2VzLiBEUkQncyB0aHJlYWQgSUQncyBzdGFydCBhdAorICAgICAgb25lIGFuZCBhcmUgbmV2ZXIgcmVjeWNsZWQuCisgICAgPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD4KKyAgICAgIFRoZSBtYWNyb3MgPGNvZGUgY2xhc3M9ImxpdGVyYWwiPkRSRF9JR05PUkVfVkFSKHgpPC9jb2RlPiwKKyAgICAgIDxjb2RlIGNsYXNzPSJsaXRlcmFsIj5BTk5PVEFURV9UUkFDRV9NRU1PUlkoJmFtcDt4KTwvY29kZT4gYW5kIHRoZSBjb3JyZXNwb25kaW5nCisgICAgICBjbGllbnQgcmVxdWVzdCA8Y29kZSBjbGFzcz0idmFybmFtZSI+VkdfVVNFUlJFUV9fRFJEX1NUQVJUX1NVUFBSRVNTSU9OPC9jb2RlPi4gU29tZQorICAgICAgYXBwbGljYXRpb25zIGNvbnRhaW4gaW50ZW50aW9uYWwgcmFjZXMuIFRoZXJlIGV4aXN0IGUuZy4gYXBwbGljYXRpb25zCisgICAgICB3aGVyZSB0aGUgc2FtZSB2YWx1ZSBpcyBhc3NpZ25lZCB0byBhIHNoYXJlZCB2YXJpYWJsZSBmcm9tIHR3byBkaWZmZXJlbnQKKyAgICAgIHRocmVhZHMuIEl0IG1heSBiZSBtb3JlIGNvbnZlbmllbnQgdG8gc3VwcHJlc3Mgc3VjaCByYWNlcyB0aGFuIHRvIHNvbHZlCisgICAgICB0aGVzZS4gVGhpcyBjbGllbnQgcmVxdWVzdCBhbGxvd3MgdG8gc3VwcHJlc3Mgc3VjaCByYWNlcy4KKyAgICA8L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPgorICAgICAgVGhlIG1hY3JvIDxjb2RlIGNsYXNzPSJsaXRlcmFsIj5EUkRfU1RPUF9JR05PUklOR19WQVIoeCk8L2NvZGU+IGFuZCB0aGUKKyAgICAgIGNvcnJlc3BvbmRpbmcgY2xpZW50IHJlcXVlc3QKKyAgICAgIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5WR19VU0VSUkVRX19EUkRfRklOSVNIX1NVUFBSRVNTSU9OPC9jb2RlPi4gVGVsbCBEUkQKKyAgICAgIHRvIG5vIGxvbmdlciBpZ25vcmUgZGF0YSByYWNlcyBmb3IgdGhlIGFkZHJlc3MgcmFuZ2UgdGhhdCB3YXMgc3VwcHJlc3NlZAorICAgICAgZWl0aGVyIHZpYSB0aGUgbWFjcm8gPGNvZGUgY2xhc3M9ImxpdGVyYWwiPkRSRF9JR05PUkVfVkFSKHgpPC9jb2RlPiBvciB2aWEgdGhlCisgICAgICBjbGllbnQgcmVxdWVzdCA8Y29kZSBjbGFzcz0idmFybmFtZSI+VkdfVVNFUlJFUV9fRFJEX1NUQVJUX1NVUFBSRVNTSU9OPC9jb2RlPi4KKyAgICA8L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPgorICAgICAgVGhlIG1hY3JvIDxjb2RlIGNsYXNzPSJsaXRlcmFsIj5EUkRfVFJBQ0VfVkFSKHgpPC9jb2RlPi4gVHJhY2UgYWxsIGxvYWQgYW5kIHN0b3JlCisgICAgICBhY3Rpdml0eSBmb3IgdGhlIGFkZHJlc3MgcmFuZ2Ugc3RhcnRpbmcgYXQgPGNvZGUgY2xhc3M9ImxpdGVyYWwiPiZhbXA7eDwvY29kZT4gYW5kCisgICAgICBvY2N1cHlpbmcgPGNvZGUgY2xhc3M9ImxpdGVyYWwiPnNpemVvZih4KTwvY29kZT4gYnl0ZXMuIFdoZW4gRFJEIHJlcG9ydHMgYSBkYXRhCisgICAgICByYWNlIG9uIGEgc3BlY2lmaWVkIHZhcmlhYmxlLCBhbmQgaXQncyBub3QgaW1tZWRpYXRlbHkgY2xlYXIgd2hpY2gKKyAgICAgIHNvdXJjZSBjb2RlIHN0YXRlbWVudHMgdHJpZ2dlcmVkIHRoZSBjb25mbGljdGluZyBhY2Nlc3NlcywgaXQgY2FuIGJlCisgICAgICB2ZXJ5IGhlbHBmdWwgdG8gdHJhY2UgYWxsIGFjdGl2aXR5IG9uIHRoZSBvZmZlbmRpbmcgbWVtb3J5IGxvY2F0aW9uLgorICAgIDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+CisgICAgICBUaGUgbWFjcm8gPGNvZGUgY2xhc3M9ImxpdGVyYWwiPkRSRF9TVE9QX1RSQUNJTkdfVkFSKHgpPC9jb2RlPi4gU3RvcCB0cmFjaW5nIGxvYWQKKyAgICAgIGFuZCBzdG9yZSBhY3Rpdml0eSBmb3IgdGhlIGFkZHJlc3MgcmFuZ2Ugc3RhcnRpbmcKKyAgICAgIGF0IDxjb2RlIGNsYXNzPSJsaXRlcmFsIj4mYW1wO3g8L2NvZGU+IGFuZCBvY2N1cHlpbmcgPGNvZGUgY2xhc3M9ImxpdGVyYWwiPnNpemVvZih4KTwvY29kZT4KKyAgICAgIGJ5dGVzLgorICAgIDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+CisgICAgICBUaGUgbWFjcm8gPGNvZGUgY2xhc3M9ImxpdGVyYWwiPkFOTk9UQVRFX1RSQUNFX01FTU9SWSgmYW1wO3gpPC9jb2RlPi4gVHJhY2UgYWxsCisgICAgICBsb2FkIGFuZCBzdG9yZSBhY3Rpdml0eSB0aGF0IHRvdWNoZXMgYXQgbGVhc3QgdGhlIHNpbmdsZSBieXRlIGF0IHRoZQorICAgICAgYWRkcmVzcyA8Y29kZSBjbGFzcz0ibGl0ZXJhbCI+JmFtcDt4PC9jb2RlPi4KKyAgICA8L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPgorICAgICAgVGhlIGNsaWVudCByZXF1ZXN0IDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5WR19VU0VSUkVRX19EUkRfU1RBUlRfVFJBQ0VfQUREUjwvY29kZT4sCisgICAgICB3aGljaCBhbGxvd3MgdG8gdHJhY2UgYWxsIGxvYWQgYW5kIHN0b3JlIGFjdGl2aXR5IGZvciB0aGUgc3BlY2lmaWVkCisgICAgICBhZGRyZXNzIHJhbmdlLgorICAgIDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+CisgICAgICBUaGUgY2xpZW50CisgICAgICByZXF1ZXN0IDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5WR19VU0VSUkVRX19EUkRfU1RPUF9UUkFDRV9BRERSPC9jb2RlPi4gRG8gbm8gbG9uZ2VyCisgICAgICB0cmFjZSBsb2FkIGFuZCBzdG9yZSBhY3Rpdml0eSBmb3IgdGhlIHNwZWNpZmllZCBhZGRyZXNzIHJhbmdlLgorICAgIDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+CisgICAgICBUaGUgbWFjcm8gPGNvZGUgY2xhc3M9ImxpdGVyYWwiPkFOTk9UQVRFX0hBUFBFTlNfQkVGT1JFKGFkZHIpPC9jb2RlPiB0ZWxscyBEUkQgdG8KKyAgICAgIGluc2VydCBhIG1hcmsuIEluc2VydCB0aGlzIG1hY3JvIGp1c3QgYWZ0ZXIgYW4gYWNjZXNzIHRvIHRoZSB2YXJpYWJsZSBhdAorICAgICAgdGhlIHNwZWNpZmllZCBhZGRyZXNzIGhhcyBiZWVuIHBlcmZvcm1lZC4KKyAgICA8L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPgorICAgICAgVGhlIG1hY3JvIDxjb2RlIGNsYXNzPSJsaXRlcmFsIj5BTk5PVEFURV9IQVBQRU5TX0FGVEVSKGFkZHIpPC9jb2RlPiB0ZWxscyBEUkQgdGhhdAorICAgICAgdGhlIG5leHQgYWNjZXNzIHRvIHRoZSB2YXJpYWJsZSBhdCB0aGUgc3BlY2lmaWVkIGFkZHJlc3Mgc2hvdWxkIGJlCisgICAgICBjb25zaWRlcmVkIHRvIGhhdmUgaGFwcGVuZWQgYWZ0ZXIgdGhlIGFjY2VzcyBqdXN0IGJlZm9yZSB0aGUgbGF0ZXN0CisgICAgICA8Y29kZSBjbGFzcz0ibGl0ZXJhbCI+QU5OT1RBVEVfSEFQUEVOU19CRUZPUkUoYWRkcik8L2NvZGU+IGFubm90YXRpb24gdGhhdAorICAgICAgcmVmZXJlbmNlcyB0aGUgc2FtZSB2YXJpYWJsZS4gVGhlIHB1cnBvc2Ugb2YgdGhlc2UgdHdvIG1hY3JvcyBpcyB0byB0ZWxsCisgICAgICBEUkQgYWJvdXQgdGhlIG9yZGVyIG9mIGludGVyLXRocmVhZCBtZW1vcnkgYWNjZXNzZXMgaW1wbGVtZW50ZWQgdmlhCisgICAgICBhdG9taWMgbWVtb3J5IG9wZXJhdGlvbnMuIFNlZQorICAgICAgYWxzbyA8Y29kZSBjbGFzcz0ibGl0ZXJhbCI+ZHJkL3Rlc3RzL2Fubm90YXRlX3NtYXJ0X3BvaW50ZXIuY3BwPC9jb2RlPiBmb3IgYW4KKyAgICAgIGV4YW1wbGUuCisgICAgPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD4KKyAgICAgIFRoZSBtYWNybyA8Y29kZSBjbGFzcz0ibGl0ZXJhbCI+QU5OT1RBVEVfUldMT0NLX0NSRUFURShyd2xvY2spPC9jb2RlPiB0ZWxscyBEUkQKKyAgICAgIHRoYXQgdGhlIG9iamVjdCBhdCBhZGRyZXNzIDxjb2RlIGNsYXNzPSJsaXRlcmFsIj5yd2xvY2s8L2NvZGU+IGlzIGEKKyAgICAgIHJlYWRlci13cml0ZXIgc3luY2hyb25pemF0aW9uIG9iamVjdCB0aGF0IGlzIG5vdCBhCisgICAgICA8Y29kZSBjbGFzcz0ibGl0ZXJhbCI+cHRocmVhZF9yd2xvY2tfdDwvY29kZT4gc3luY2hyb25pemF0aW9uIG9iamVjdC4gIFNlZQorICAgICAgYWxzbyA8Y29kZSBjbGFzcz0ibGl0ZXJhbCI+ZHJkL3Rlc3RzL2Fubm90YXRlX3J3bG9jay5jPC9jb2RlPiBmb3IgYW4gZXhhbXBsZS4KKyAgICA8L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPgorICAgICAgVGhlIG1hY3JvIDxjb2RlIGNsYXNzPSJsaXRlcmFsIj5BTk5PVEFURV9SV0xPQ0tfREVTVFJPWShyd2xvY2spPC9jb2RlPiB0ZWxscyBEUkQKKyAgICAgIHRoYXQgdGhlIHJlYWRlci13cml0ZXIgc3luY2hyb25pemF0aW9uIG9iamVjdCBhdAorICAgICAgYWRkcmVzcyA8Y29kZSBjbGFzcz0ibGl0ZXJhbCI+cndsb2NrPC9jb2RlPiBoYXMgYmVlbiBkZXN0cm95ZWQuCisgICAgPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD4KKyAgICAgIFRoZSBtYWNybyA8Y29kZSBjbGFzcz0ibGl0ZXJhbCI+QU5OT1RBVEVfV1JJVEVSTE9DS19BQ1FVSVJFRChyd2xvY2spPC9jb2RlPiB0ZWxscworICAgICAgRFJEIHRoYXQgYSB3cml0ZXIgbG9jayBoYXMgYmVlbiBhY3F1aXJlZCBvbiB0aGUgcmVhZGVyLXdyaXRlcgorICAgICAgc3luY2hyb25pemF0aW9uIG9iamVjdCBhdCBhZGRyZXNzIDxjb2RlIGNsYXNzPSJsaXRlcmFsIj5yd2xvY2s8L2NvZGU+LgorICAgIDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+CisgICAgICBUaGUgbWFjcm8gPGNvZGUgY2xhc3M9ImxpdGVyYWwiPkFOTk9UQVRFX1JFQURFUkxPQ0tfQUNRVUlSRUQocndsb2NrKTwvY29kZT4gdGVsbHMKKyAgICAgIERSRCB0aGF0IGEgcmVhZGVyIGxvY2sgaGFzIGJlZW4gYWNxdWlyZWQgb24gdGhlIHJlYWRlci13cml0ZXIKKyAgICAgIHN5bmNocm9uaXphdGlvbiBvYmplY3QgYXQgYWRkcmVzcyA8Y29kZSBjbGFzcz0ibGl0ZXJhbCI+cndsb2NrPC9jb2RlPi4KKyAgICA8L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPgorICAgICAgVGhlIG1hY3JvIDxjb2RlIGNsYXNzPSJsaXRlcmFsIj5BTk5PVEFURV9SV0xPQ0tfQUNRVUlSRUQocndsb2NrLCBpc193KTwvY29kZT4KKyAgICAgIHRlbGxzIERSRCB0aGF0IGEgd3JpdGVyIGxvY2sgKHdoZW4gPGNvZGUgY2xhc3M9ImxpdGVyYWwiPmlzX3cgIT0gMDwvY29kZT4pIG9yIHRoYXQKKyAgICAgIGEgcmVhZGVyIGxvY2sgKHdoZW4gPGNvZGUgY2xhc3M9ImxpdGVyYWwiPmlzX3cgPT0gMDwvY29kZT4pIGhhcyBiZWVuIGFjcXVpcmVkIG9uCisgICAgICB0aGUgcmVhZGVyLXdyaXRlciBzeW5jaHJvbml6YXRpb24gb2JqZWN0IGF0CisgICAgICBhZGRyZXNzIDxjb2RlIGNsYXNzPSJsaXRlcmFsIj5yd2xvY2s8L2NvZGU+LgorICAgIDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+CisgICAgICBUaGUgbWFjcm8gPGNvZGUgY2xhc3M9ImxpdGVyYWwiPkFOTk9UQVRFX1dSSVRFUkxPQ0tfUkVMRUFTRUQocndsb2NrKTwvY29kZT4gdGVsbHMKKyAgICAgIERSRCB0aGF0IGEgd3JpdGVyIGxvY2sgaGFzIGJlZW4gcmVsZWFzZWQgb24gdGhlIHJlYWRlci13cml0ZXIKKyAgICAgIHN5bmNocm9uaXphdGlvbiBvYmplY3QgYXQgYWRkcmVzcyA8Y29kZSBjbGFzcz0ibGl0ZXJhbCI+cndsb2NrPC9jb2RlPi4KKyAgICA8L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPgorICAgICAgVGhlIG1hY3JvIDxjb2RlIGNsYXNzPSJsaXRlcmFsIj5BTk5PVEFURV9SRUFERVJMT0NLX1JFTEVBU0VEKHJ3bG9jayk8L2NvZGU+IHRlbGxzCisgICAgICBEUkQgdGhhdCBhIHJlYWRlciBsb2NrIGhhcyBiZWVuIHJlbGVhc2VkIG9uIHRoZSByZWFkZXItd3JpdGVyCisgICAgICBzeW5jaHJvbml6YXRpb24gb2JqZWN0IGF0IGFkZHJlc3MgPGNvZGUgY2xhc3M9ImxpdGVyYWwiPnJ3bG9jazwvY29kZT4uCisgICAgPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD4KKyAgICAgIFRoZSBtYWNybyA8Y29kZSBjbGFzcz0ibGl0ZXJhbCI+QU5OT1RBVEVfUldMT0NLX1JFTEVBU0VEKHJ3bG9jaywgaXNfdyk8L2NvZGU+CisgICAgICB0ZWxscyBEUkQgdGhhdCBhIHdyaXRlciBsb2NrICh3aGVuIDxjb2RlIGNsYXNzPSJsaXRlcmFsIj5pc193ICE9IDA8L2NvZGU+KSBvciB0aGF0CisgICAgICBhIHJlYWRlciBsb2NrICh3aGVuIDxjb2RlIGNsYXNzPSJsaXRlcmFsIj5pc193ID09IDA8L2NvZGU+KSBoYXMgYmVlbiByZWxlYXNlZCBvbgorICAgICAgdGhlIHJlYWRlci13cml0ZXIgc3luY2hyb25pemF0aW9uIG9iamVjdCBhdAorICAgICAgYWRkcmVzcyA8Y29kZSBjbGFzcz0ibGl0ZXJhbCI+cndsb2NrPC9jb2RlPi4KKyAgICA8L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPgorICAgICAgVGhlIG1hY3JvIDxjb2RlIGNsYXNzPSJsaXRlcmFsIj5BTk5PVEFURV9CQVJSSUVSX0lOSVQoYmFycmllciwgY291bnQsCisgICAgICByZWluaXRpYWxpemF0aW9uX2FsbG93ZWQpPC9jb2RlPiB0ZWxscyBEUkQgdGhhdCBhIG5ldyBiYXJyaWVyIG9iamVjdAorICAgICAgYXQgdGhlIGFkZHJlc3MgPGNvZGUgY2xhc3M9ImxpdGVyYWwiPmJhcnJpZXI8L2NvZGU+IGhhcyBiZWVuIGluaXRpYWxpemVkLAorICAgICAgdGhhdCA8Y29kZSBjbGFzcz0ibGl0ZXJhbCI+Y291bnQ8L2NvZGU+IHRocmVhZHMgcGFydGljaXBhdGUgaW4gZWFjaCBiYXJyaWVyIGFuZAorICAgICAgYWxzbyB3aGV0aGVyIG9yIG5vdCBiYXJyaWVyIHJlaW5pdGlhbGl6YXRpb24gd2l0aG91dCBpbnRlcnZlbmluZworICAgICAgZGVzdHJ1Y3Rpb24gc2hvdWxkIGJlIHJlcG9ydGVkIGFzIGFuIGVycm9yLiBTZWUKKyAgICAgIGFsc28gPGNvZGUgY2xhc3M9ImxpdGVyYWwiPmRyZC90ZXN0cy9hbm5vdGF0ZV9iYXJyaWVyLmM8L2NvZGU+IGZvciBhbiBleGFtcGxlLgorICAgIDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+CisgICAgICBUaGUgbWFjcm8gPGNvZGUgY2xhc3M9ImxpdGVyYWwiPkFOTk9UQVRFX0JBUlJJRVJfREVTVFJPWShiYXJyaWVyKTwvY29kZT4KKyAgICAgIHRlbGxzIERSRCB0aGF0IGEgYmFycmllciBvYmplY3QgaXMgYWJvdXQgdG8gYmUgZGVzdHJveWVkLgorICAgIDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+CisgICAgICBUaGUgbWFjcm8gPGNvZGUgY2xhc3M9ImxpdGVyYWwiPkFOTk9UQVRFX0JBUlJJRVJfV0FJVF9CRUZPUkUoYmFycmllcik8L2NvZGU+CisgICAgICB0ZWxscyBEUkQgdGhhdCB3YWl0aW5nIGZvciBhIGJhcnJpZXIgd2lsbCBzdGFydC4KKyAgICA8L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPgorICAgICAgVGhlIG1hY3JvIDxjb2RlIGNsYXNzPSJsaXRlcmFsIj5BTk5PVEFURV9CQVJSSUVSX1dBSVRfQUZURVIoYmFycmllcik8L2NvZGU+CisgICAgICB0ZWxscyBEUkQgdGhhdCB3YWl0aW5nIGZvciBhIGJhcnJpZXIgaGFzIGZpbmlzaGVkLgorICAgIDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+CisgICAgICBUaGUgbWFjcm8gPGNvZGUgY2xhc3M9ImxpdGVyYWwiPkFOTk9UQVRFX0JFTklHTl9SQUNFX1NJWkVEKGFkZHIsIHNpemUsCisgICAgICBkZXNjcik8L2NvZGU+IHRlbGxzIERSRCB0aGF0IGFueSByYWNlcyBkZXRlY3RlZCBvbiB0aGUgc3BlY2lmaWVkCisgICAgICBhZGRyZXNzIGFyZSBiZW5pZ24gYW5kIGhlbmNlIHNob3VsZCBub3QgYmUKKyAgICAgIHJlcG9ydGVkLiBUaGUgPGNvZGUgY2xhc3M9ImxpdGVyYWwiPmRlc2NyPC9jb2RlPiBhcmd1bWVudCBpcyBpZ25vcmVkIGJ1dCBjYW4gYmUKKyAgICAgIHVzZWQgdG8gZG9jdW1lbnQgd2h5IGRhdGEgcmFjZXMgb24gPGNvZGUgY2xhc3M9ImxpdGVyYWwiPmFkZHI8L2NvZGU+IGFyZSBiZW5pZ24uCisgICAgPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD4KKyAgICAgIFRoZSBtYWNybyA8Y29kZSBjbGFzcz0ibGl0ZXJhbCI+QU5OT1RBVEVfQkVOSUdOX1JBQ0VfU1RBVElDKHZhciwgZGVzY3IpPC9jb2RlPgorICAgICAgdGVsbHMgRFJEIHRoYXQgYW55IHJhY2VzIGRldGVjdGVkIG9uIHRoZSBzcGVjaWZpZWQgc3RhdGljIHZhcmlhYmxlIGFyZQorICAgICAgYmVuaWduIGFuZCBoZW5jZSBzaG91bGQgbm90IGJlIHJlcG9ydGVkLiBUaGUgPGNvZGUgY2xhc3M9ImxpdGVyYWwiPmRlc2NyPC9jb2RlPgorICAgICAgYXJndW1lbnQgaXMgaWdub3JlZCBidXQgY2FuIGJlIHVzZWQgdG8gZG9jdW1lbnQgd2h5IGRhdGEgcmFjZXMKKyAgICAgIG9uIDxjb2RlIGNsYXNzPSJsaXRlcmFsIj52YXI8L2NvZGU+IGFyZSBiZW5pZ24uIE5vdGU6IHRoaXMgbWFjcm8gY2FuIG9ubHkgYmUKKyAgICAgIHVzZWQgaW4gQysrIHByb2dyYW1zIGFuZCBub3QgaW4gQyBwcm9ncmFtcy4KKyAgICA8L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPgorICAgICAgVGhlIG1hY3JvIDxjb2RlIGNsYXNzPSJsaXRlcmFsIj5BTk5PVEFURV9JR05PUkVfUkVBRFNfQkVHSU48L2NvZGU+IHRlbGxzCisgICAgICBEUkQgdG8gaWdub3JlIGFsbCBtZW1vcnkgbG9hZHMgcGVyZm9ybWVkIGJ5IHRoZSBjdXJyZW50IHRocmVhZC4KKyAgICA8L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPgorICAgICAgVGhlIG1hY3JvIDxjb2RlIGNsYXNzPSJsaXRlcmFsIj5BTk5PVEFURV9JR05PUkVfUkVBRFNfRU5EPC9jb2RlPiB0ZWxscworICAgICAgRFJEIHRvIHN0b3AgaWdub3JpbmcgdGhlIG1lbW9yeSBsb2FkcyBwZXJmb3JtZWQgYnkgdGhlIGN1cnJlbnQgdGhyZWFkLgorICAgIDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+CisgICAgICBUaGUgbWFjcm8gPGNvZGUgY2xhc3M9ImxpdGVyYWwiPkFOTk9UQVRFX0lHTk9SRV9XUklURVNfQkVHSU48L2NvZGU+IHRlbGxzCisgICAgICBEUkQgdG8gaWdub3JlIGFsbCBtZW1vcnkgc3RvcmVzIHBlcmZvcm1lZCBieSB0aGUgY3VycmVudCB0aHJlYWQuCisgICAgPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD4KKyAgICAgIFRoZSBtYWNybyA8Y29kZSBjbGFzcz0ibGl0ZXJhbCI+QU5OT1RBVEVfSUdOT1JFX1dSSVRFU19FTkQ8L2NvZGU+IHRlbGxzCisgICAgICBEUkQgdG8gc3RvcCBpZ25vcmluZyB0aGUgbWVtb3J5IHN0b3JlcyBwZXJmb3JtZWQgYnkgdGhlIGN1cnJlbnQgdGhyZWFkLgorICAgIDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+CisgICAgICBUaGUgbWFjcm8gPGNvZGUgY2xhc3M9ImxpdGVyYWwiPkFOTk9UQVRFX0lHTk9SRV9SRUFEU19BTkRfV1JJVEVTX0JFR0lOPC9jb2RlPiB0ZWxscworICAgICAgRFJEIHRvIGlnbm9yZSBhbGwgbWVtb3J5IGFjY2Vzc2VzIHBlcmZvcm1lZCBieSB0aGUgY3VycmVudCB0aHJlYWQuCisgICAgPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD4KKyAgICAgIFRoZSBtYWNybyA8Y29kZSBjbGFzcz0ibGl0ZXJhbCI+QU5OT1RBVEVfSUdOT1JFX1JFQURTX0FORF9XUklURVNfRU5EPC9jb2RlPiB0ZWxscworICAgICAgRFJEIHRvIHN0b3AgaWdub3JpbmcgdGhlIG1lbW9yeSBhY2Nlc3NlcyBwZXJmb3JtZWQgYnkgdGhlIGN1cnJlbnQgdGhyZWFkLgorICAgIDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+CisgICAgICBUaGUgbWFjcm8gPGNvZGUgY2xhc3M9ImxpdGVyYWwiPkFOTk9UQVRFX05FV19NRU1PUlkoYWRkciwgc2l6ZSk8L2NvZGU+IHRlbGxzCisgICAgICBEUkQgdGhhdCB0aGUgc3BlY2lmaWVkIG1lbW9yeSByYW5nZSBoYXMgYmVlbiBhbGxvY2F0ZWQgYnkgYSBjdXN0b20KKyAgICAgIG1lbW9yeSBhbGxvY2F0b3IgaW4gdGhlIGNsaWVudCBwcm9ncmFtIGFuZCB0aGF0IHRoZSBjbGllbnQgcHJvZ3JhbQorICAgICAgd2lsbCBzdGFydCB1c2luZyB0aGlzIG1lbW9yeSByYW5nZS4KKyAgICA8L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPgorICAgICAgVGhlIG1hY3JvIDxjb2RlIGNsYXNzPSJsaXRlcmFsIj5BTk5PVEFURV9USFJFQURfTkFNRShuYW1lKTwvY29kZT4gdGVsbHMgRFJEIHRvCisgICAgICBhc3NvY2lhdGUgdGhlIHNwZWNpZmllZCBuYW1lIHdpdGggdGhlIGN1cnJlbnQgdGhyZWFkIGFuZCB0byBpbmNsdWRlIHRoaXMKKyAgICAgIG5hbWUgaW4gdGhlIGVycm9yIG1lc3NhZ2VzIHByaW50ZWQgYnkgRFJELgorICAgIDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+CisgICAgICBUaGUgbWFjcm9zIDxjb2RlIGNsYXNzPSJsaXRlcmFsIj5WQUxHUklORF9NQUxMT0NMSUtFX0JMT0NLPC9jb2RlPiBhbmQKKyAgICAgIDxjb2RlIGNsYXNzPSJsaXRlcmFsIj5WQUxHUklORF9GUkVFTElLRV9CTE9DSzwvY29kZT4gZnJvbSB0aGUgVmFsZ3JpbmQgY29yZSBhcmUKKyAgICAgIGltcGxlbWVudGVkOyAgdGhleSBhcmUgZGVzY3JpYmVkIGluIAorICAgICAgPGEgY2xhc3M9InhyZWYiIGhyZWY9Im1hbnVhbC1jb3JlLWFkdi5odG1sI21hbnVhbC1jb3JlLWFkdi5jbGllbnRyZXEiIHRpdGxlPSIzLjEuoFRoZSBDbGllbnQgUmVxdWVzdCBtZWNoYW5pc20iPlRoZSBDbGllbnQgUmVxdWVzdCBtZWNoYW5pc208L2E+LgorICAgIDwvcD48L2xpPgorPC91bD48L2Rpdj4KKzxwPgorPC9wPgorPHA+CitOb3RlOiBpZiB5b3UgY29tcGlsZWQgVmFsZ3JpbmQgeW91cnNlbGYsIHRoZSBoZWFkZXIgZmlsZQorPGNvZGUgY2xhc3M9ImxpdGVyYWwiPiZsdDt2YWxncmluZC9kcmQuaCZndDs8L2NvZGU+IHdpbGwgaGF2ZSBiZWVuIGluc3RhbGxlZCBpbgordGhlIGRpcmVjdG9yeSA8Y29kZSBjbGFzcz0ibGl0ZXJhbCI+L3Vzci9pbmNsdWRlPC9jb2RlPiBieSB0aGUgY29tbWFuZAorPGNvZGUgY2xhc3M9ImxpdGVyYWwiPm1ha2UgaW5zdGFsbDwvY29kZT4uIElmIHlvdSBvYnRhaW5lZCBWYWxncmluZCBieQoraW5zdGFsbGluZyBpdCBhcyBhIHBhY2thZ2UgaG93ZXZlciwgeW91IHdpbGwgcHJvYmFibHkgaGF2ZSB0byBpbnN0YWxsCithbm90aGVyIHBhY2thZ2Ugd2l0aCBhIG5hbWUgbGlrZSA8Y29kZSBjbGFzcz0ibGl0ZXJhbCI+dmFsZ3JpbmQtZGV2ZWw8L2NvZGU+CitiZWZvcmUgVmFsZ3JpbmQncyBoZWFkZXIgZmlsZXMgYXJlIGF2YWlsYWJsZS4KKzwvcD4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDIiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJkcmQtbWFudWFsLkMrKzExIj48L2E+OC4yLjYuoERlYnVnZ2luZyBDKysxMSBQcm9ncmFtczwvaDM+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD5JZiB5b3Ugd2FudCB0byB1c2UgdGhlIEMrKzExIGNsYXNzIHN0ZDo6dGhyZWFkIHlvdSB3aWxsIG5lZWQgdG8gZG8gdGhlCisgIGZvbGxvd2luZyB0byBhbm5vdGF0ZSB0aGUgc3RkOjpzaGFyZWRfcHRyJmx0OyZndDsgb2JqZWN0cyB1c2VkIGluIHRoZQorICBpbXBsZW1lbnRhdGlvbiBvZiB0aGF0IGNsYXNzOgorPC9wPgorPGRpdiBjbGFzcz0iaXRlbWl6ZWRsaXN0Ij48dWwgY2xhc3M9Iml0ZW1pemVkbGlzdCIgc3R5bGU9Imxpc3Qtc3R5bGUtdHlwZTogZGlzYzsgIj4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPgorPHA+QWRkIHRoZSBmb2xsb3dpbmcgY29kZSBhdCB0aGUgc3RhcnQgb2YgYSBjb21tb24gaGVhZGVyIG9yIGF0IHRoZQorICAgIHN0YXJ0IG9mIGVhY2ggc291cmNlIGZpbGUsIGJlZm9yZSBhbnkgQysrIGhlYWRlciBmaWxlcyBhcmUgaW5jbHVkZWQ6PC9wPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPgorI2luY2x1ZGUgJmx0O3ZhbGdyaW5kL2RyZC5oJmd0OworI2RlZmluZSBfR0xJQkNYWF9TWU5DSFJPTklaQVRJT05fSEFQUEVOU19CRUZPUkUoYWRkcikgQU5OT1RBVEVfSEFQUEVOU19CRUZPUkUoYWRkcikKKyNkZWZpbmUgX0dMSUJDWFhfU1lOQ0hST05JWkFUSU9OX0hBUFBFTlNfQUZURVIoYWRkcikgIEFOTk9UQVRFX0hBUFBFTlNfQUZURVIoYWRkcikKKzwvcHJlPgorPC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPkRvd25sb2FkIHRoZSBnY2Mgc291cmNlIGNvZGUgYW5kIGZyb20gc291cmNlIGZpbGUKKyAgICBsaWJzdGRjKystdjMvc3JjL2MrKzExL3RocmVhZC5jYyBjb3B5IHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUKKyAgICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmV4ZWN1dGVfbmF0aXZlX3RocmVhZF9yb3V0aW5lKCk8L2NvZGU+CisgICAgYW5kIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+c3RkOjp0aHJlYWQ6Ol9NX3N0YXJ0X3RocmVhZCgpPC9jb2RlPgorICAgIGZ1bmN0aW9ucyBpbnRvIGEgc291cmNlIGZpbGUgdGhhdCBpcyBsaW5rZWQgd2l0aCB5b3VyIGFwcGxpY2F0aW9uLiBNYWtlCisgICAgc3VyZSB0aGF0IGFsc28gaW4gdGhpcyBzb3VyY2UgZmlsZSB0aGUKKyAgICBfR0xJQkNYWF9TWU5DSFJPTklaQVRJT05fSEFQUEVOU18qKCkgbWFjcm9zIGFyZSBkZWZpbmVkIHByb3Blcmx5LjwvcD48L2xpPgorPC91bD48L2Rpdj4KKzxwPgorPC9wPgorPHA+Rm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBhbHNvIDxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPlRoZQorR05VIEMrKyBMaWJyYXJ5IE1hbnVhbCwgRGVidWdnaW5nIFN1cHBvcnQ8L2VtPjwvc3Bhbj4KKyg8YSBjbGFzcz0idWxpbmsiIGhyZWY9Imh0dHA6Ly9nY2MuZ251Lm9yZy9vbmxpbmVkb2NzL2xpYnN0ZGMrKy9tYW51YWwvZGVidWcuaHRtbCIgdGFyZ2V0PSJfdG9wIj5odHRwOi8vZ2NjLmdudS5vcmcvb25saW5lZG9jcy9saWJzdGRjKysvbWFudWFsL2RlYnVnLmh0bWw8L2E+KS48L3A+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0iZHJkLW1hbnVhbC5nbm9tZSI+PC9hPjguMi43LqBEZWJ1Z2dpbmcgR05PTUUgUHJvZ3JhbXM8L2gzPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+CitHTk9NRSBhcHBsaWNhdGlvbnMgdXNlIHRoZSB0aHJlYWRpbmcgcHJpbWl0aXZlcyBwcm92aWRlZCBieSB0aGUKKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+Z2xpYjwvY29kZT4gYW5kCis8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmd0aHJlYWQ8L2NvZGU+IGxpYnJhcmllcy4gVGhlc2UgbGlicmFyaWVzCithcmUgYnVpbHQgb24gdG9wIG9mIFBPU0lYIHRocmVhZHMsIGFuZCBoZW5jZSBhcmUgZGlyZWN0bHkgc3VwcG9ydGVkIGJ5CitEUkQuIFBsZWFzZSBrZWVwIGluIG1pbmQgdGhhdCB5b3UgaGF2ZSB0byBjYWxsCis8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPmdfdGhyZWFkX2luaXQ8L2NvZGU+IGJlZm9yZSBjcmVhdGluZyBhbnkgdGhyZWFkcywgb3IKK0RSRCB3aWxsIHJlcG9ydCBzZXZlcmFsIGRhdGEgcmFjZXMgb24gZ2xpYiBmdW5jdGlvbnMuIFNlZSBhbHNvIHRoZQorPGEgY2xhc3M9InVsaW5rIiBocmVmPSJodHRwOi8vbGlicmFyeS5nbm9tZS5vcmcvZGV2ZWwvZ2xpYi9zdGFibGUvZ2xpYi1UaHJlYWRzLmh0bWwiIHRhcmdldD0iX3RvcCI+R0xpYgorUmVmZXJlbmNlIE1hbnVhbDwvYT4gZm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQKKzxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+Z190aHJlYWRfaW5pdDwvY29kZT4uCis8L3A+Cis8cD4KK09uZSBvZiB0aGUgbWFueSBmYWNpbGl0aWVzIHByb3ZpZGVkIGJ5IHRoZSA8Y29kZSBjbGFzcz0ibGl0ZXJhbCI+Z2xpYjwvY29kZT4KK2xpYnJhcnkgaXMgYSBibG9jayBhbGxvY2F0b3IsIGNhbGxlZCA8Y29kZSBjbGFzcz0ibGl0ZXJhbCI+Z19zbGljZTwvY29kZT4uIFlvdQoraGF2ZSB0byBkaXNhYmxlIHRoaXMgYmxvY2sgYWxsb2NhdG9yIHdoZW4gdXNpbmcgRFJEIGJ5IGFkZGluZyB0aGUKK2ZvbGxvd2luZyB0byB0aGUgc2hlbGwgZW52aXJvbm1lbnQgdmFyaWFibGVzOgorPGNvZGUgY2xhc3M9ImxpdGVyYWwiPkdfU0xJQ0U9YWx3YXlzLW1hbGxvYzwvY29kZT4uIFNlZSBhbHNvIHRoZSA8YSBjbGFzcz0idWxpbmsiIGhyZWY9Imh0dHA6Ly9saWJyYXJ5Lmdub21lLm9yZy9kZXZlbC9nbGliL3N0YWJsZS9nbGliLU1lbW9yeS1TbGljZXMuaHRtbCIgdGFyZ2V0PSJfdG9wIj5HTGliCitSZWZlcmVuY2UgTWFudWFsPC9hPiBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KKzwvcD4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDIiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJkcmQtbWFudWFsLmJvb3N0LnRocmVhZCI+PC9hPjguMi44LqBEZWJ1Z2dpbmcgQm9vc3QuVGhyZWFkIFByb2dyYW1zPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPgorVGhlIEJvb3N0LlRocmVhZCBsaWJyYXJ5IGlzIHRoZSB0aHJlYWRpbmcgbGlicmFyeSBpbmNsdWRlZCB3aXRoIHRoZQorY3Jvc3MtcGxhdGZvcm0gQm9vc3QgTGlicmFyaWVzLiBUaGlzIHRocmVhZGluZyBsaWJyYXJ5IGlzIGFuIGVhcmx5CitpbXBsZW1lbnRhdGlvbiBvZiB0aGUgdXBjb21pbmcgQysrMHggdGhyZWFkaW5nIGxpYnJhcnkuCis8L3A+Cis8cD4KK0FwcGxpY2F0aW9ucyB0aGF0IHVzZSB0aGUgQm9vc3QuVGhyZWFkIGxpYnJhcnkgc2hvdWxkIHJ1biBmaW5lIHVuZGVyIERSRC4KKzwvcD4KKzxwPgorTW9yZSBpbmZvcm1hdGlvbiBhYm91dCBCb29zdC5UaHJlYWQgY2FuIGJlIGZvdW5kIGhlcmU6Cis8L3A+Cis8ZGl2IGNsYXNzPSJpdGVtaXplZGxpc3QiPjx1bCBjbGFzcz0iaXRlbWl6ZWRsaXN0IiBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOiBkaXNjOyAiPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+CisgICAgICBBbnRob255IFdpbGxpYW1zLCA8YSBjbGFzcz0idWxpbmsiIGhyZWY9Imh0dHA6Ly93d3cuYm9vc3Qub3JnL2RvYy9saWJzLzFfMzdfMC9kb2MvaHRtbC90aHJlYWQuaHRtbCIgdGFyZ2V0PSJfdG9wIj5Cb29zdC5UaHJlYWQ8L2E+CisgICAgICBMaWJyYXJ5IERvY3VtZW50YXRpb24sIEJvb3N0IHdlYnNpdGUsIDIwMDcuCisgICAgPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD4KKyAgICAgIEFudGhvbnkgV2lsbGlhbXMsIDxhIGNsYXNzPSJ1bGluayIgaHJlZj0iaHR0cDovL3d3dy5kZGouY29tL2NwcC8yMTE2MDA0NDEiIHRhcmdldD0iX3RvcCI+V2hhdCdzIE5ldyBpbiBCb29zdAorICAgICAgVGhyZWFkcz88L2E+LCBSZWNlbnQgY2hhbmdlcyB0byB0aGUgQm9vc3QgVGhyZWFkIGxpYnJhcnksCisgICAgICBEci4gRG9iYnMgTWFnYXppbmUsIE9jdG9iZXIgMjAwOC4KKyAgICA8L3A+PC9saT4KKzwvdWw+PC9kaXY+Cis8cD4KKzwvcD4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDIiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJkcmQtbWFudWFsLm9wZW5tcCI+PC9hPjguMi45LqBEZWJ1Z2dpbmcgT3Blbk1QIFByb2dyYW1zPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPgorT3Blbk1QIHN0YW5kcyBmb3IgPHNwYW4gY2xhc3M9ImVtcGhhc2lzIj48ZW0+T3BlbiBNdWx0aS1Qcm9jZXNzaW5nPC9lbT48L3NwYW4+LiBUaGUgT3Blbk1QCitzdGFuZGFyZCBjb25zaXN0cyBvZiBhIHNldCBvZiBjb21waWxlciBkaXJlY3RpdmVzIGZvciBDLCBDKysgYW5kIEZvcnRyYW4KK3Byb2dyYW1zIHRoYXQgYWxsb3dzIGEgY29tcGlsZXIgdG8gdHJhbnNmb3JtIGEgc2VxdWVudGlhbCBwcm9ncmFtIGludG8gYQorcGFyYWxsZWwgcHJvZ3JhbS4gT3Blbk1QIGlzIHdlbGwgc3VpdGVkIGZvciBIUEMgYXBwbGljYXRpb25zIGFuZCBhbGxvd3MgdG8KK3dvcmsgYXQgYSBoaWdoZXIgbGV2ZWwgY29tcGFyZWQgdG8gZGlyZWN0IHVzZSBvZiB0aGUgUE9TSVggdGhyZWFkcyBBUEkuIFdoaWxlCitPcGVuTVAgZW5zdXJlcyB0aGF0IHRoZSBQT1NJWCBBUEkgaXMgdXNlZCBjb3JyZWN0bHksIE9wZW5NUCBwcm9ncmFtcyBjYW4gc3RpbGwKK2NvbnRhaW4gZGF0YSByYWNlcy4gU28gaXQgZGVmaW5pdGVseSBtYWtlcyBzZW5zZSB0byB2ZXJpZnkgT3Blbk1QIHByb2dyYW1zCit3aXRoIGEgdGhyZWFkIGNoZWNraW5nIHRvb2wuCis8L3A+Cis8cD4KK0RSRCBzdXBwb3J0cyBPcGVuTVAgc2hhcmVkLW1lbW9yeSBwcm9ncmFtcyBnZW5lcmF0ZWQgYnkgR0NDLiBHQ0MKK3N1cHBvcnRzIE9wZW5NUCBzaW5jZSB2ZXJzaW9uIDQuMi4wLiAgR0NDJ3MgcnVudGltZSBzdXBwb3J0Citmb3IgT3Blbk1QIHByb2dyYW1zIGlzIHByb3ZpZGVkIGJ5IGEgbGlicmFyeSBjYWxsZWQKKzxjb2RlIGNsYXNzPSJsaXRlcmFsIj5saWJnb21wPC9jb2RlPi4gVGhlIHN5bmNocm9uaXphdGlvbiBwcmltaXRpdmVzIGltcGxlbWVudGVkCitpbiB0aGlzIGxpYnJhcnkgdXNlIExpbnV4JyBmdXRleCBzeXN0ZW0gY2FsbCBkaXJlY3RseSwgdW5sZXNzIHRoZQorbGlicmFyeSBoYXMgYmVlbiBjb25maWd1cmVkIHdpdGggdGhlCis8Y29kZSBjbGFzcz0ibGl0ZXJhbCI+LS1kaXNhYmxlLWxpbnV4LWZ1dGV4PC9jb2RlPiBvcHRpb24uIERSRCBvbmx5IHN1cHBvcnRzCitsaWJnb21wIGxpYnJhcmllcyB0aGF0IGhhdmUgYmVlbiBjb25maWd1cmVkIHdpdGggdGhpcyBvcHRpb24gYW5kIGluCit3aGljaCBzeW1ib2wgaW5mb3JtYXRpb24gaXMgcHJlc2VudC4gRm9yIG1vc3QgTGludXggZGlzdHJpYnV0aW9ucyB0aGlzCittZWFucyB0aGF0IHlvdSB3aWxsIGhhdmUgdG8gcmVjb21waWxlIEdDQy4gU2VlIGFsc28gdGhlIHNjcmlwdAorPGNvZGUgY2xhc3M9ImxpdGVyYWwiPmRyZC9zY3JpcHRzL2Rvd25sb2FkLWFuZC1idWlsZC1nY2M8L2NvZGU+IGluIHRoZQorVmFsZ3JpbmQgc291cmNlIHRyZWUgZm9yIGFuIGV4YW1wbGUgb2YgaG93IHRvIGNvbXBpbGUgR0NDLiBZb3Ugd2lsbAorYWxzbyBoYXZlIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBuZXdseSBjb21waWxlZAorPGNvZGUgY2xhc3M9ImxpdGVyYWwiPmxpYmdvbXAuc288L2NvZGU+IGxpYnJhcnkgaXMgbG9hZGVkIHdoZW4gT3Blbk1QIHByb2dyYW1zCithcmUgc3RhcnRlZC4gVGhpcyBpcyBwb3NzaWJsZSBieSBhZGRpbmcgYSBsaW5lIHNpbWlsYXIgdG8gdGhlCitmb2xsb3dpbmcgdG8geW91ciBzaGVsbCBzdGFydHVwIHNjcmlwdDoKKzwvcD4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KK2V4cG9ydCBMRF9MSUJSQVJZX1BBVEg9fi9nY2MtNC40LjAvbGliNjQ6fi9nY2MtNC40LjAvbGliOgorPC9wcmU+Cis8cD4KK0FzIGFuIGV4YW1wbGUsIHRoZSB0ZXN0IE9wZW5NUCB0ZXN0IHByb2dyYW0KKzxjb2RlIGNsYXNzPSJsaXRlcmFsIj5kcmQvdGVzdHMvb21wX21hdGludjwvY29kZT4gdHJpZ2dlcnMgYSBkYXRhIHJhY2UKK3doZW4gdGhlIG9wdGlvbiAtciBoYXMgYmVlbiBzcGVjaWZpZWQgb24gdGhlIGNvbW1hbmQgbGluZS4gVGhlIGRhdGEKK3JhY2UgaXMgdHJpZ2dlcmVkIGJ5IHRoZSBmb2xsb3dpbmcgY29kZToKKzwvcD4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KKyNwcmFnbWEgb21wIHBhcmFsbGVsIGZvciBwcml2YXRlKGopCitmb3IgKGogPSAwOyBqICZsdDsgcm93czsgaisrKQoreworICBpZiAoaSAhPSBqKQorICB7CisgICAgY29uc3QgZWxlbV90IGZhY3RvciA9IGFbaiAqIGNvbHMgKyBpXTsKKyAgICBmb3IgKGsgPSAwOyBrICZsdDsgY29sczsgaysrKQorICAgIHsKKyAgICAgIGFbaiAqIGNvbHMgKyBrXSAtPSBhW2kgKiBjb2xzICsga10gKiBmYWN0b3I7CisgICAgfQorICB9Cit9Cis8L3ByZT4KKzxwPgorVGhlIGFib3ZlIGNvZGUgaXMgcmFjeSBiZWNhdXNlIHRoZSB2YXJpYWJsZSA8Y29kZSBjbGFzcz0ibGl0ZXJhbCI+azwvY29kZT4gaGFzCitub3QgYmVlbiBkZWNsYXJlZCBwcml2YXRlLiBEUkQgd2lsbCBwcmludCB0aGUgZm9sbG93aW5nIGVycm9yIG1lc3NhZ2UKK2ZvciB0aGUgYWJvdmUgY29kZToKKzwvcD4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KKyQgdmFsZ3JpbmQgLS10b29sPWRyZCAtLWNoZWNrLXN0YWNrLXZhcj15ZXMgLS1yZWFkLXZhci1pbmZvPXllcyBkcmQvdGVzdHMvb21wX21hdGludiAzIC10IDIgLXIKKy4uLgorQ29uZmxpY3Rpbmcgc3RvcmUgYnkgdGhyZWFkIDEvMSBhdCAweDdmZWZmZmJjNCBzaXplIDQKKyAgIGF0IDB4NDAxNEEwOiBnai5vbXBfZm4uMCAob21wX21hdGludi5jOjIwMykKKyAgIGJ5IDB4NDAxMjExOiBnaiAob21wX21hdGludi5jOjE1OSkKKyAgIGJ5IDB4NDAxNjZBOiBpbnZlcnRfbWF0cml4IChvbXBfbWF0aW52LmM6MjM4KQorICAgYnkgMHg0MDE5QjQ6IG1haW4gKG9tcF9tYXRpbnYuYzozMTYpCitMb2NhdGlvbiAweDdmZWZmZmJjNCBpcyAwIGJ5dGVzIGluc2lkZSBsb2NhbCB2YXIgImsiCitkZWNsYXJlZCBhdCBvbXBfbWF0aW52LmM6MTYwLCBpbiBmcmFtZSAjMCBvZiB0aHJlYWQgMQorLi4uCis8L3ByZT4KKzxwPgorSW4gdGhlIGFib3ZlIG91dHB1dCB0aGUgZnVuY3Rpb24gbmFtZSA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPmdqLm9tcF9mbi4wPC9jb2RlPgoraGFzIGJlZW4gZ2VuZXJhdGVkIGJ5IEdDQyBmcm9tIHRoZSBmdW5jdGlvbiBuYW1lCis8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPmdqPC9jb2RlPi4gVGhlIGFsbG9jYXRpb24gY29udGV4dCBpbmZvcm1hdGlvbiBzaG93cyB0aGF0IHRoZQorZGF0YSByYWNlIGhhcyBiZWVuIGNhdXNlZCBieSBtb2RpZnlpbmcgdGhlIHZhcmlhYmxlIDxjb2RlIGNsYXNzPSJsaXRlcmFsIj5rPC9jb2RlPi4KKzwvcD4KKzxwPgorTm90ZTogZm9yIEdDQyB2ZXJzaW9ucyBiZWZvcmUgNC40LjAsIG5vIGFsbG9jYXRpb24gY29udGV4dCBpbmZvcm1hdGlvbiBpcworc2hvd24uIFdpdGggdGhlc2UgR0NDIHZlcnNpb25zIHRoZSBtb3N0IHVzYWJsZSBpbmZvcm1hdGlvbiBpbiB0aGUgYWJvdmUgb3V0cHV0CitpcyB0aGUgc291cmNlIGZpbGUgbmFtZSBhbmQgdGhlIGxpbmUgbnVtYmVyIHdoZXJlIHRoZSBkYXRhIHJhY2UgaGFzIGJlZW4KK2RldGVjdGVkICg8Y29kZSBjbGFzcz0ibGl0ZXJhbCI+b21wX21hdGludi5jOjIwMzwvY29kZT4pLgorPC9wPgorPHA+CitGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBPcGVuTVAsIHNlZSBhbHNvIAorPGEgY2xhc3M9InVsaW5rIiBocmVmPSJodHRwOi8vb3Blbm1wLm9yZy8iIHRhcmdldD0iX3RvcCI+b3Blbm1wLm9yZzwvYT4uCis8L3A+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0iZHJkLW1hbnVhbC5jdXN0LW1lbS1hbGxvYyI+PC9hPjguMi4xMC6gRFJEIGFuZCBDdXN0b20gTWVtb3J5IEFsbG9jYXRvcnM8L2gzPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+CitEUkQgdHJhY2tzIGFsbCBtZW1vcnkgYWxsb2NhdGlvbiBldmVudHMgdGhhdCBoYXBwZW4gdmlhIHRoZQorc3RhbmRhcmQgbWVtb3J5IGFsbG9jYXRpb24gYW5kIGRlYWxsb2NhdGlvbiBmdW5jdGlvbnMKKyg8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPm1hbGxvYzwvY29kZT4sIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+ZnJlZTwvY29kZT4sCis8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPm5ldzwvY29kZT4gYW5kIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+ZGVsZXRlPC9jb2RlPiksIHZpYSBlbnRyeQorYW5kIGV4aXQgb2Ygc3RhY2sgZnJhbWVzIG9yIHRoYXQgaGF2ZSBiZWVuIGFubm90YXRlZCB3aXRoIFZhbGdyaW5kJ3MKK21lbW9yeSBwb29sIGNsaWVudCByZXF1ZXN0cy4gRFJEIHVzZXMgbWVtb3J5IGFsbG9jYXRpb24gYW5kIGRlYWxsb2NhdGlvbgoraW5mb3JtYXRpb24gZm9yIHR3byBwdXJwb3NlczoKKzwvcD4KKzxkaXYgY2xhc3M9Iml0ZW1pemVkbGlzdCI+PHVsIGNsYXNzPSJpdGVtaXplZGxpc3QiIHN0eWxlPSJsaXN0LXN0eWxlLXR5cGU6IGRpc2M7ICI+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD4KKyAgICAgIFRvIGtub3cgd2hlcmUgdGhlIHNjb3BlIGVuZHMgb2YgUE9TSVggb2JqZWN0cyB0aGF0IGhhdmUgbm90IGJlZW4KKyAgICAgIGRlc3Ryb3llZCBleHBsaWNpdGx5LiBJdCBpcyBlLmcuIG5vdCByZXF1aXJlZCBieSB0aGUgUE9TSVgKKyAgICAgIHRocmVhZHMgc3RhbmRhcmQgdG8gY2FsbAorICAgICAgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5wdGhyZWFkX211dGV4X2Rlc3Ryb3k8L2NvZGU+IGJlZm9yZSBmcmVlaW5nIHRoZQorICAgICAgbWVtb3J5IGluIHdoaWNoIGEgbXV0ZXggb2JqZWN0IHJlc2lkZXMuCisgICAgPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD4KKyAgICAgIFRvIGtub3cgd2hlcmUgdGhlIHNjb3BlIG9mIHZhcmlhYmxlcyBlbmRzLiBJZiBlLmcuIGhlYXAgbWVtb3J5CisgICAgICBoYXMgYmVlbiB1c2VkIGJ5IG9uZSB0aHJlYWQsIHRoYXQgdGhyZWFkIGZyZWVzIHRoYXQgbWVtb3J5LCBhbmQKKyAgICAgIGFub3RoZXIgdGhyZWFkIGFsbG9jYXRlcyBhbmQgc3RhcnRzIHVzaW5nIHRoYXQgbWVtb3J5LCBubyBkYXRhCisgICAgICByYWNlcyBtdXN0IGJlIHJlcG9ydGVkIGZvciB0aGF0IG1lbW9yeS4KKyAgICA8L3A+PC9saT4KKzwvdWw+PC9kaXY+Cis8cD4KKzwvcD4KKzxwPgorSXQgaXMgZXNzZW50aWFsIGZvciBjb3JyZWN0IG9wZXJhdGlvbiBvZiBEUkQgdGhhdCB0aGUgdG9vbCBrbm93cyBhYm91dAorbWVtb3J5IGFsbG9jYXRpb24gYW5kIGRlYWxsb2NhdGlvbiBldmVudHMuIFdoZW4gYW5hbHl6aW5nIGEgY2xpZW50IHByb2dyYW0KK3dpdGggRFJEIHRoYXQgdXNlcyBhIGN1c3RvbSBtZW1vcnkgYWxsb2NhdG9yLCBlaXRoZXIgaW5zdHJ1bWVudCB0aGUgY3VzdG9tCittZW1vcnkgYWxsb2NhdG9yIHdpdGggdGhlIDxjb2RlIGNsYXNzPSJsaXRlcmFsIj5WQUxHUklORF9NQUxMT0NMSUtFX0JMT0NLPC9jb2RlPgorYW5kIDxjb2RlIGNsYXNzPSJsaXRlcmFsIj5WQUxHUklORF9GUkVFTElLRV9CTE9DSzwvY29kZT4gbWFjcm9zIG9yIGRpc2FibGUgdGhlCitjdXN0b20gbWVtb3J5IGFsbG9jYXRvci4KKzwvcD4KKzxwPgorQXMgYW4gZXhhbXBsZSwgdGhlIEdOVSBsaWJzdGRjKysgbGlicmFyeSBjYW4gYmUgY29uZmlndXJlZAordG8gdXNlIHN0YW5kYXJkIG1lbW9yeSBhbGxvY2F0aW9uIGZ1bmN0aW9ucyBpbnN0ZWFkIG9mIG1lbW9yeSBwb29scyBieQorc2V0dGluZyB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUKKzxjb2RlIGNsYXNzPSJsaXRlcmFsIj5HTElCQ1hYX0ZPUkNFX05FVzwvY29kZT4uIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgYWxzbwordGhlIDxhIGNsYXNzPSJ1bGluayIgaHJlZj0iaHR0cDovL2djYy5nbnUub3JnL29ubGluZWRvY3MvbGlic3RkYysrL21hbnVhbC9iazAxcHQwNGNoMTEuaHRtbCIgdGFyZ2V0PSJfdG9wIj5saWJzdGRjKysKK21hbnVhbDwvYT4uCis8L3A+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0iZHJkLW1hbnVhbC5kcmQtdmVyc3VzLW1lbWNoZWNrIj48L2E+OC4yLjExLqBEUkQgVmVyc3VzIE1lbWNoZWNrPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPgorSXQgaXMgZXNzZW50aWFsIGZvciBjb3JyZWN0IG9wZXJhdGlvbiBvZiBEUkQgdGhhdCB0aGVyZSBhcmUgbm8gbWVtb3J5CitlcnJvcnMgc3VjaCBhcyBkYW5nbGluZyBwb2ludGVycyBpbiB0aGUgY2xpZW50IHByb2dyYW0uIFdoaWNoIG1lYW5zIHRoYXQKK2l0IGlzIGEgZ29vZCBpZGVhIHRvIG1ha2Ugc3VyZSB0aGF0IHlvdXIgcHJvZ3JhbSBpcyBNZW1jaGVjay1jbGVhbgorYmVmb3JlIHlvdSBhbmFseXplIGl0IHdpdGggRFJELiBJdCBpcyBwb3NzaWJsZSBob3dldmVyIHRoYXQgc29tZSBvZgordGhlIE1lbWNoZWNrIHJlcG9ydHMgYXJlIGNhdXNlZCBieSBkYXRhIHJhY2VzLiBJbiB0aGlzIGNhc2UgaXQgbWFrZXMKK3NlbnNlIHRvIHJ1biBEUkQgYmVmb3JlIE1lbWNoZWNrLgorPC9wPgorPHA+CitTbyB3aGljaCB0b29sIHNob3VsZCBiZSBydW4gZmlyc3Q/IEluIGNhc2UgYm90aCBEUkQgYW5kIE1lbWNoZWNrCitjb21wbGFpbiBhYm91dCBhIHByb2dyYW0sIGEgcG9zc2libGUgYXBwcm9hY2ggaXMgdG8gcnVuIGJvdGggdG9vbHMKK2FsdGVybmF0aW5nbHkgYW5kIHRvIGZpeCBhcyBtYW55IGVycm9ycyBhcyBwb3NzaWJsZSBhZnRlciBlYWNoIHJ1biBvZgorZWFjaCB0b29sIHVudGlsIG5vbmUgb2YgdGhlIHR3byB0b29scyBwcmludHMgYW55IG1vcmUgZXJyb3IgbWVzc2FnZXMuCis8L3A+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0iZHJkLW1hbnVhbC5yZXNvdXJjZS1yZXF1aXJlbWVudHMiPjwvYT44LjIuMTIuoFJlc291cmNlIFJlcXVpcmVtZW50czwvaDM+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD4KK1RoZSByZXF1aXJlbWVudHMgb2YgRFJEIHdpdGggcmVnYXJkIHRvIGhlYXAgYW5kIHN0YWNrIG1lbW9yeSBhbmQgdGhlCitlZmZlY3Qgb24gdGhlIGV4ZWN1dGlvbiB0aW1lIG9mIGNsaWVudCBwcm9ncmFtcyBhcmUgYXMgZm9sbG93czoKKzwvcD4KKzxkaXYgY2xhc3M9Iml0ZW1pemVkbGlzdCI+PHVsIGNsYXNzPSJpdGVtaXplZGxpc3QiIHN0eWxlPSJsaXN0LXN0eWxlLXR5cGU6IGRpc2M7ICI+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD4KKyAgICAgIFdoZW4gcnVubmluZyBhIHByb2dyYW0gdW5kZXIgRFJEIHdpdGggZGVmYXVsdCBEUkQgb3B0aW9ucywKKyAgICAgIGJldHdlZW4gMS4xIGFuZCAzLjYgdGltZXMgbW9yZSBtZW1vcnkgd2lsbCBiZSBuZWVkZWQgY29tcGFyZWQgdG8KKyAgICAgIGEgbmF0aXZlIHJ1biBvZiB0aGUgY2xpZW50IHByb2dyYW0uIE1vcmUgbWVtb3J5IHdpbGwgYmUgbmVlZGVkCisgICAgICBpZiBsb2FkaW5nIGRlYnVnIGluZm9ybWF0aW9uIGhhcyBiZWVuIGVuYWJsZWQKKyAgICAgICg8Y29kZSBjbGFzcz0ibGl0ZXJhbCI+LS1yZWFkLXZhci1pbmZvPXllczwvY29kZT4pLgorICAgIDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+CisgICAgICBEUkQgYWxsb2NhdGVzIHNvbWUgb2YgaXRzIHRlbXBvcmFyeSBkYXRhIHN0cnVjdHVyZXMgb24gdGhlIHN0YWNrCisgICAgICBvZiB0aGUgY2xpZW50IHByb2dyYW0gdGhyZWFkcy4gVGhpcyBhbW91bnQgb2YgZGF0YSBpcyBsaW1pdGVkIHRvCisgICAgICAxIC0gMiBLQi4gTWFrZSBzdXJlIHRoYXQgdGhyZWFkIHN0YWNrcyBhcmUgc3VmZmljaWVudGx5IGxhcmdlLgorICAgIDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+CisgICAgICBNb3N0IGFwcGxpY2F0aW9ucyB3aWxsIHJ1biBiZXR3ZWVuIDIwIGFuZCA1MCB0aW1lcyBzbG93ZXIgdW5kZXIKKyAgICAgIERSRCB0aGFuIGEgbmF0aXZlIHNpbmdsZS10aHJlYWRlZCBydW4uIFRoZSBzbG93ZG93biB3aWxsIGJlIG1vc3QKKyAgICAgIG5vdGljZWFibGUgZm9yIGFwcGxpY2F0aW9ucyB3aGljaCBwZXJmb3JtIGZyZXF1ZW50IG11dGV4IGxvY2sgLworICAgICAgdW5sb2NrIG9wZXJhdGlvbnMuCisgICAgPC9wPjwvbGk+Cis8L3VsPjwvZGl2PgorPHA+Cis8L3A+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0iZHJkLW1hbnVhbC5lZmZlY3RpdmUtdXNlIj48L2E+OC4yLjEzLqBIaW50cyBhbmQgVGlwcyBmb3IgRWZmZWN0aXZlIFVzZSBvZiBEUkQ8L2gzPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+CitUaGUgZm9sbG93aW5nIGluZm9ybWF0aW9uIG1heSBiZSBoZWxwZnVsIHdoZW4gdXNpbmcgRFJEOgorPC9wPgorPGRpdiBjbGFzcz0iaXRlbWl6ZWRsaXN0Ij48dWwgY2xhc3M9Iml0ZW1pemVkbGlzdCIgc3R5bGU9Imxpc3Qtc3R5bGUtdHlwZTogZGlzYzsgIj4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPgorICAgICAgTWFrZSBzdXJlIHRoYXQgZGVidWcgaW5mb3JtYXRpb24gaXMgcHJlc2VudCBpbiB0aGUgZXhlY3V0YWJsZQorICAgICAgYmVpbmcgYW5hbHl6ZWQsIHN1Y2ggdGhhdCBEUkQgY2FuIHByaW50IGZ1bmN0aW9uIG5hbWUgYW5kIGxpbmUKKyAgICAgIG51bWJlciBpbmZvcm1hdGlvbiBpbiBzdGFjayB0cmFjZXMuIE1vc3QgY29tcGlsZXJzIGNhbiBiZSB0b2xkCisgICAgICB0byBpbmNsdWRlIGRlYnVnIGluZm9ybWF0aW9uIHZpYSBjb21waWxlciBvcHRpb24KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi1nPC9jb2RlPi4KKyAgICA8L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPgorICAgICAgQ29tcGlsZSB3aXRoIG9wdGlvbiA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tTzE8L2NvZGU+IGluc3RlYWQgb2YKKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi1PMDwvY29kZT4uIFRoaXMgd2lsbCByZWR1Y2UgdGhlIGFtb3VudCBvZiBnZW5lcmF0ZWQKKyAgICAgIGNvZGUsIG1heSByZWR1Y2UgdGhlIGFtb3VudCBvZiBkZWJ1ZyBpbmZvIGFuZCB3aWxsIHNwZWVkIHVwCisgICAgICBEUkQncyBwcm9jZXNzaW5nIG9mIHRoZSBjbGllbnQgcHJvZ3JhbS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sCisgICAgICBzZWUgYWxzbyA8YSBjbGFzcz0ieHJlZiIgaHJlZj0ibWFudWFsLWNvcmUuaHRtbCNtYW51YWwtY29yZS5zdGFydGVkIiB0aXRsZT0iMi4yLqBHZXR0aW5nIHN0YXJ0ZWQiPkdldHRpbmcgc3RhcnRlZDwvYT4uCisgICAgPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD4KKyAgICAgIElmIERSRCByZXBvcnRzIGFueSBlcnJvcnMgb24gbGlicmFyaWVzIHRoYXQgYXJlIHBhcnQgb2YgeW91cgorICAgICAgTGludXggZGlzdHJpYnV0aW9uIGxpa2UgZS5nLiA8Y29kZSBjbGFzcz0ibGl0ZXJhbCI+bGliYy5zbzwvY29kZT4gb3IKKyAgICAgIDxjb2RlIGNsYXNzPSJsaXRlcmFsIj5saWJzdGRjKysuc288L2NvZGU+LCBpbnN0YWxsaW5nIHRoZSBkZWJ1ZyBwYWNrYWdlcworICAgICAgZm9yIHRoZXNlIGxpYnJhcmllcyB3aWxsIG1ha2UgdGhlIG91dHB1dCBvZiBEUkQgYSBsb3QgbW9yZQorICAgICAgZGV0YWlsZWQuCisgICAgPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj4KKzxwPgorICAgICAgV2hlbiB1c2luZyBDKyssIGRvIG5vdCBzZW5kIG91dHB1dCBmcm9tIG1vcmUgdGhhbiBvbmUgdGhyZWFkIHRvCisgICAgICA8Y29kZSBjbGFzcz0ibGl0ZXJhbCI+c3RkOjpjb3V0PC9jb2RlPi4gRG9pbmcgc28gd291bGQgbm90IG9ubHkKKyAgICAgIGdlbmVyYXRlIG11bHRpcGxlIGRhdGEgcmFjZSByZXBvcnRzLCBpdCBjb3VsZCBhbHNvIHJlc3VsdCBpbgorICAgICAgb3V0cHV0IGZyb20gc2V2ZXJhbCB0aHJlYWRzIGdldHRpbmcgbWl4ZWQgdXAuICBFaXRoZXIgdXNlCisgICAgICA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPnByaW50ZjwvY29kZT4gb3IgZG8gdGhlIGZvbGxvd2luZzoKKyAgICAgIDwvcD4KKzxkaXYgY2xhc3M9Im9yZGVyZWRsaXN0Ij48b2wgY2xhc3M9Im9yZGVyZWRsaXN0IiB0eXBlPSIxIj4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPkRlcml2ZSBhIGNsYXNzIGZyb20gPGNvZGUgY2xhc3M9ImxpdGVyYWwiPnN0ZDo6b3N0cmVhbWJ1ZjwvY29kZT4KKyAgICAgICAgICBhbmQgbGV0IHRoYXQgY2xhc3Mgc2VuZCBvdXRwdXQgbGluZSBieSBsaW5lIHRvCisgICAgICAgICAgPGNvZGUgY2xhc3M9ImxpdGVyYWwiPnN0ZG91dDwvY29kZT4uIFRoaXMgd2lsbCBhdm9pZCB0aGF0IGluZGl2aWR1YWwKKyAgICAgICAgICBsaW5lcyBvZiB0ZXh0IHByb2R1Y2VkIGJ5IGRpZmZlcmVudCB0aHJlYWRzIGdldCBtaXhlZAorICAgICAgICAgIHVwLjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+Q3JlYXRlIG9uZSBpbnN0YW5jZSBvZiA8Y29kZSBjbGFzcz0ibGl0ZXJhbCI+c3RkOjpvc3RyZWFtPC9jb2RlPgorICAgICAgICAgIGZvciBlYWNoIHRocmVhZC4gVGhpcyBtYWtlcyBzdHJlYW0gZm9ybWF0dGluZyBzZXR0aW5ncworICAgICAgICAgIHRocmVhZC1sb2NhbC4gUGFzcyBhIHBlci10aHJlYWQgaW5zdGFuY2Ugb2YgdGhlIGNsYXNzCisgICAgICAgICAgZGVyaXZlZCBmcm9tIDxjb2RlIGNsYXNzPSJsaXRlcmFsIj5zdGQ6Om9zdHJlYW1idWY8L2NvZGU+IHRvIHRoZQorICAgICAgICAgIGNvbnN0cnVjdG9yIG9mIGVhY2ggaW5zdGFuY2UuIDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+TGV0IGVhY2ggdGhyZWFkIHNlbmQgaXRzIG91dHB1dCB0byBpdHMgb3duIGluc3RhbmNlIG9mCisgICAgICAgICAgPGNvZGUgY2xhc3M9ImxpdGVyYWwiPnN0ZDo6b3N0cmVhbTwvY29kZT4gaW5zdGVhZCBvZgorICAgICAgICAgIDxjb2RlIGNsYXNzPSJsaXRlcmFsIj5zdGQ6OmNvdXQ8L2NvZGU+LjwvcD48L2xpPgorPC9vbD48L2Rpdj4KKzxwPgorICAgIDwvcD4KKzwvbGk+Cis8L3VsPjwvZGl2PgorPHA+Cis8L3A+Cis8L2Rpdj4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDEiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj4KKzxhIG5hbWU9ImRyZC1tYW51YWwuUHRocmVhZHMiPjwvYT44LjMuoFVzaW5nIHRoZSBQT1NJWCBUaHJlYWRzIEFQSSBFZmZlY3RpdmVseTwvaDI+PC9kaXY+PC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MiI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9ImRyZC1tYW51YWwubXV0ZXgtdHlwZXMiPjwvYT44LjMuMS6gTXV0ZXggdHlwZXM8L2gzPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+CitUaGUgU2luZ2xlIFVOSVggU3BlY2lmaWNhdGlvbiB2ZXJzaW9uIHR3byBkZWZpbmVzIHRoZSBmb2xsb3dpbmcgZm91cgorbXV0ZXggdHlwZXMgKHNlZSBhbHNvIHRoZSBkb2N1bWVudGF0aW9uIG9mIDxhIGNsYXNzPSJ1bGluayIgaHJlZj0iaHR0cDovL3d3dy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMvMDA3OTA4Nzk5L3hzaC9wdGhyZWFkX211dGV4YXR0cl9zZXR0eXBlLmh0bWwiIHRhcmdldD0iX3RvcCI+PGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5wdGhyZWFkX211dGV4YXR0cl9zZXR0eXBlPC9jb2RlPjwvYT4pOgorPC9wPgorPGRpdiBjbGFzcz0iaXRlbWl6ZWRsaXN0Ij48dWwgY2xhc3M9Iml0ZW1pemVkbGlzdCIgc3R5bGU9Imxpc3Qtc3R5bGUtdHlwZTogZGlzYzsgIj4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPgorICAgICAgPHNwYW4gY2xhc3M9ImVtcGhhc2lzIj48ZW0+bm9ybWFsPC9lbT48L3NwYW4+LCB3aGljaCBtZWFucyB0aGF0IG5vIGVycm9yIGNoZWNraW5nCisgICAgICBpcyBwZXJmb3JtZWQsIGFuZCB0aGF0IHRoZSBtdXRleCBpcyBub24tcmVjdXJzaXZlLgorICAgIDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+CisgICAgICA8c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT5lcnJvciBjaGVja2luZzwvZW0+PC9zcGFuPiwgd2hpY2ggbWVhbnMgdGhhdCB0aGUgbXV0ZXgKKyAgICAgIGlzIG5vbi1yZWN1cnNpdmUgYW5kIHRoYXQgZXJyb3IgY2hlY2tpbmcgaXMgcGVyZm9ybWVkLgorICAgIDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+CisgICAgICA8c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT5yZWN1cnNpdmU8L2VtPjwvc3Bhbj4sIHdoaWNoIG1lYW5zIHRoYXQgYSBtdXRleCBtYXkgYmUKKyAgICAgIGxvY2tlZCByZWN1cnNpdmVseS4KKyAgICA8L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPgorICAgICAgPHNwYW4gY2xhc3M9ImVtcGhhc2lzIj48ZW0+ZGVmYXVsdDwvZW0+PC9zcGFuPiwgd2hpY2ggbWVhbnMgdGhhdCBlcnJvciBjaGVja2luZworICAgICAgYmVoYXZpb3IgaXMgdW5kZWZpbmVkLCBhbmQgdGhhdCB0aGUgYmVoYXZpb3IgZm9yIHJlY3Vyc2l2ZQorICAgICAgbG9ja2luZyBpcyBhbHNvIHVuZGVmaW5lZC4gT3I6IHBvcnRhYmxlIGNvZGUgbXVzdCBuZWl0aGVyCisgICAgICB0cmlnZ2VyIGVycm9yIGNvbmRpdGlvbnMgdGhyb3VnaCB0aGUgUHRocmVhZHMgQVBJIG5vciBhdHRlbXB0IHRvCisgICAgICBsb2NrIGEgbXV0ZXggb2YgZGVmYXVsdCB0eXBlIHJlY3Vyc2l2ZWx5LgorICAgIDwvcD48L2xpPgorPC91bD48L2Rpdj4KKzxwPgorPC9wPgorPHA+CitJbiBjb21wbGV4IGFwcGxpY2F0aW9ucyBpdCBpcyBub3QgYWx3YXlzIGNsZWFyIGZyb20gYmVmb3JlaGFuZCB3aGljaAorbXV0ZXggd2lsbCBiZSBsb2NrZWQgcmVjdXJzaXZlbHkgYW5kIHdoaWNoIG11dGV4IHdpbGwgbm90IGJlIGxvY2tlZAorcmVjdXJzaXZlbHkuIEF0dGVtcHRzIGxvY2sgYSBub24tcmVjdXJzaXZlIG11dGV4IHJlY3Vyc2l2ZWx5IHdpbGwKK3Jlc3VsdCBpbiByYWNlIGNvbmRpdGlvbnMgdGhhdCBhcmUgdmVyeSBoYXJkIHRvIGZpbmQgd2l0aG91dCBhIHRocmVhZAorY2hlY2tpbmcgdG9vbC4gU28gZWl0aGVyIHVzZSB0aGUgZXJyb3IgY2hlY2tpbmcgbXV0ZXggdHlwZSBhbmQKK2NvbnNpc3RlbnRseSBjaGVjayB0aGUgcmV0dXJuIHZhbHVlIG9mIFB0aHJlYWQgQVBJIG11dGV4IGNhbGxzLCBvciB1c2UKK3RoZSByZWN1cnNpdmUgbXV0ZXggdHlwZS4KKzwvcD4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDIiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJkcmQtbWFudWFsLmNvbmR2YXIiPjwvYT44LjMuMi6gQ29uZGl0aW9uIHZhcmlhYmxlczwvaDM+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD4KK0EgY29uZGl0aW9uIHZhcmlhYmxlIGFsbG93cyBvbmUgdGhyZWFkIHRvIHdha2UgdXAgb25lIG9yIG1vcmUgb3RoZXIKK3RocmVhZHMuIENvbmRpdGlvbiB2YXJpYWJsZXMgYXJlIG9mdGVuIHVzZWQgdG8gbm90aWZ5IG9uZSBvciBtb3JlCit0aHJlYWRzIGFib3V0IHN0YXRlIGNoYW5nZXMgb2Ygc2hhcmVkIGRhdGEuIFVuZm9ydHVuYXRlbHkgaXQgaXMgdmVyeQorZWFzeSB0byBpbnRyb2R1Y2UgcmFjZSBjb25kaXRpb25zIGJ5IHVzaW5nIGNvbmRpdGlvbiB2YXJpYWJsZXMgYXMgdGhlCitvbmx5IG1lYW5zIG9mIHN0YXRlIGluZm9ybWF0aW9uIHByb3BhZ2F0aW9uLiBBIGJldHRlciBhcHByb2FjaCBpcyB0bworbGV0IHRocmVhZHMgcG9sbCBmb3IgY2hhbmdlcyBvZiBhIHN0YXRlIHZhcmlhYmxlIHRoYXQgaXMgcHJvdGVjdGVkIGJ5CithIG11dGV4LCBhbmQgdG8gdXNlIGNvbmRpdGlvbiB2YXJpYWJsZXMgb25seSBhcyBhIHRocmVhZCB3YWtldXAKK21lY2hhbmlzbS4gU2VlIGFsc28gdGhlIHNvdXJjZSBmaWxlCis8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmRyZC90ZXN0cy9tb25pdG9yX2V4YW1wbGUuY3BwPC9jb2RlPiBmb3IgYW4KK2V4YW1wbGUgb2YgaG93IHRvIGltcGxlbWVudCB0aGlzIGNvbmNlcHQgaW4gQysrLiBUaGUgbW9uaXRvciBjb25jZXB0Cit1c2VkIGluIHRoaXMgZXhhbXBsZSBpcyBhIHdlbGwga25vd24gYW5kIHZlcnkgdXNlZnVsIGNvbmNlcHQgLS0gc2VlCithbHNvIFdpa2lwZWRpYSBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgPGEgY2xhc3M9InVsaW5rIiBocmVmPSJodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL01vbml0b3JfKHN5bmNocm9uaXphdGlvbikiIHRhcmdldD0iX3RvcCI+bW9uaXRvcjwvYT4KK2NvbmNlcHQuCis8L3A+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0iZHJkLW1hbnVhbC5wY3R3Ij48L2E+OC4zLjMuoHB0aHJlYWRfY29uZF90aW1lZHdhaXQgYW5kIHRpbWVvdXRzPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPgorSGlzdG9yaWNhbGx5IHRoZSBmdW5jdGlvbgorPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5wdGhyZWFkX2NvbmRfdGltZWR3YWl0PC9jb2RlPiBvbmx5IGFsbG93ZWQgdGhlCitzcGVjaWZpY2F0aW9uIG9mIGFuIGFic29sdXRlIHRpbWVvdXQsIHRoYXQgaXMgYSB0aW1lb3V0IGluZGVwZW5kZW50IG9mCit0aGUgdGltZSB3aGVuIHRoaXMgZnVuY3Rpb24gd2FzIGNhbGxlZC4gSG93ZXZlciwgYWxtb3N0IGV2ZXJ5IGNhbGwgdG8KK3RoaXMgZnVuY3Rpb24gZXhwcmVzc2VzIGEgcmVsYXRpdmUgdGltZW91dC4gVGhpcyB0eXBpY2FsbHkgaGFwcGVucyBieQorcGFzc2luZyB0aGUgc3VtIG9mCis8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmNsb2NrX2dldHRpbWUoQ0xPQ0tfUkVBTFRJTUUpPC9jb2RlPiBhbmQgYQorcmVsYXRpdmUgdGltZW91dCBhcyB0aGUgdGhpcmQgYXJndW1lbnQuIFRoaXMgYXBwcm9hY2ggaXMgaW5jb3JyZWN0CitzaW5jZSBmb3J3YXJkIG9yIGJhY2t3YXJkIGNsb2NrIGFkanVzdG1lbnRzIGJ5IGUuZy4gbnRwZCB3aWxsIGFmZmVjdAordGhlIHRpbWVvdXQuIEEgbW9yZSByZWxpYWJsZSBhcHByb2FjaCBpcyBhcyBmb2xsb3dzOgorPC9wPgorPGRpdiBjbGFzcz0iaXRlbWl6ZWRsaXN0Ij48dWwgY2xhc3M9Iml0ZW1pemVkbGlzdCIgc3R5bGU9Imxpc3Qtc3R5bGUtdHlwZTogZGlzYzsgIj4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPgorICAgICAgV2hlbiBpbml0aWFsaXppbmcgYSBjb25kaXRpb24gdmFyaWFibGUgdGhyb3VnaAorICAgICAgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5wdGhyZWFkX2NvbmRfaW5pdDwvY29kZT4sIHNwZWNpZnkgdGhhdCB0aGUgdGltZW91dCBvZgorICAgICAgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5wdGhyZWFkX2NvbmRfdGltZWR3YWl0PC9jb2RlPiB3aWxsIHVzZSB0aGUgY2xvY2sKKyAgICAgIDxjb2RlIGNsYXNzPSJsaXRlcmFsIj5DTE9DS19NT05PVE9OSUM8L2NvZGU+IGluc3RlYWQgb2YKKyAgICAgIDxjb2RlIGNsYXNzPSJsaXRlcmFsIj5DTE9DS19SRUFMVElNRTwvY29kZT4uIFlvdSBjYW4gZG8gdGhpcyB2aWEKKyAgICAgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+cHRocmVhZF9jb25kYXR0cl9zZXRjbG9jayguLi4sCisgICAgICBDTE9DS19NT05PVE9OSUMpPC9jb2RlPi4KKyAgICA8L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPgorICAgICAgV2hlbiBjYWxsaW5nIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+cHRocmVhZF9jb25kX3RpbWVkd2FpdDwvY29kZT4sIHBhc3MKKyAgICAgIHRoZSBzdW0gb2YKKyAgICAgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+Y2xvY2tfZ2V0dGltZShDTE9DS19NT05PVE9OSUMpPC9jb2RlPgorICAgICAgYW5kIGEgcmVsYXRpdmUgdGltZW91dCBhcyB0aGUgdGhpcmQgYXJndW1lbnQuCisgICAgPC9wPjwvbGk+Cis8L3VsPjwvZGl2PgorPHA+CitTZWUgYWxzbworPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5kcmQvdGVzdHMvbW9uaXRvcl9leGFtcGxlLmNwcDwvY29kZT4gZm9yIGFuCitleGFtcGxlLgorPC9wPgorPC9kaXY+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QxIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+Cis8YSBuYW1lPSJkcmQtbWFudWFsLmxpbWl0YXRpb25zIj48L2E+OC40LqBMaW1pdGF0aW9uczwvaDI+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD5EUkQgY3VycmVudGx5IGhhcyB0aGUgZm9sbG93aW5nIGxpbWl0YXRpb25zOjwvcD4KKzxkaXYgY2xhc3M9Iml0ZW1pemVkbGlzdCI+PHVsIGNsYXNzPSJpdGVtaXplZGxpc3QiIHN0eWxlPSJsaXN0LXN0eWxlLXR5cGU6IGRpc2M7ICI+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD4KKyAgICAgIERSRCwganVzdCBsaWtlIE1lbWNoZWNrLCB3aWxsIHJlZnVzZSB0byBzdGFydCBvbiBMaW51eAorICAgICAgZGlzdHJpYnV0aW9ucyB3aGVyZSBhbGwgc3ltYm9sIGluZm9ybWF0aW9uIGhhcyBiZWVuIHJlbW92ZWQgZnJvbQorICAgICAgPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5sZC5zbzwvY29kZT4uIFRoaXMgaXMgZS5nLiB0aGUgY2FzZSBmb3IgdGhlIFBQQyBlZGl0aW9ucworICAgICAgb2Ygb3BlblNVU0UgYW5kIEdlbnRvby4gWW91IHdpbGwgaGF2ZSB0byBpbnN0YWxsIHRoZSBnbGliYyBkZWJ1Z2luZm8KKyAgICAgIHBhY2thZ2Ugb24gdGhlc2UgcGxhdGZvcm1zIGJlZm9yZSB5b3UgY2FuIHVzZSBEUkQuIFNlZSBhbHNvIG9wZW5TVVNFCisgICAgICBidWcgPGEgY2xhc3M9InVsaW5rIiBocmVmPSJodHRwOi8vYnVnemlsbGEubm92ZWxsLmNvbS9zaG93X2J1Zy5jZ2k/aWQ9Mzk2MTk3IiB0YXJnZXQ9Il90b3AiPgorICAgICAgMzk2MTk3PC9hPiBhbmQgR2VudG9vIGJ1ZyA8YSBjbGFzcz0idWxpbmsiIGhyZWY9Imh0dHA6Ly9idWdzLmdlbnRvby5vcmcvMjE0MDY1IiB0YXJnZXQ9Il90b3AiPjIxNDA2NTwvYT4uCisgICAgPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD4KKyAgICAgIFdpdGggZ2NjIDQuNC4zIGFuZCBiZWZvcmUsIERSRCBtYXkgcmVwb3J0IGRhdGEgcmFjZXMgb24gdGhlIEMrKworICAgICAgY2xhc3MgPGNvZGUgY2xhc3M9ImxpdGVyYWwiPnN0ZDo6c3RyaW5nPC9jb2RlPiBpbiBhIG11bHRpdGhyZWFkZWQgcHJvZ3JhbS4gVGhpcyBpcworICAgICAgYSBrbm93IDxjb2RlIGNsYXNzPSJsaXRlcmFsIj5saWJzdGRjKys8L2NvZGU+IGlzc3VlIC0tIHNlZSBhbHNvIEdDQyBidWcKKyAgICAgIDxhIGNsYXNzPSJ1bGluayIgaHJlZj0iaHR0cDovL2djYy5nbnUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD00MDUxOCIgdGFyZ2V0PSJfdG9wIj40MDUxODwvYT4KKyAgICAgIGZvciBtb3JlIGluZm9ybWF0aW9uLgorICAgIDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+CisgICAgICBJZiB5b3UgY29tcGlsZSB0aGUgRFJEIHNvdXJjZSBjb2RlIHlvdXJzZWxmLCB5b3UgbmVlZCBHQ0MgMy4wIG9yCisgICAgICBsYXRlci4gR0NDIDIuOTUgaXMgbm90IHN1cHBvcnRlZC4KKyAgICA8L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPgorICAgICAgT2YgdGhlIHR3byBQT1NJWCB0aHJlYWRzIGltcGxlbWVudGF0aW9ucyBmb3IgTGludXgsIG9ubHkgdGhlCisgICAgICBOUFRMIChOYXRpdmUgUE9TSVggVGhyZWFkIExpYnJhcnkpIGlzIHN1cHBvcnRlZC4gVGhlIG9sZGVyCisgICAgICBMaW51eFRocmVhZHMgbGlicmFyeSBpcyBub3Qgc3VwcG9ydGVkLgorICAgIDwvcD48L2xpPgorPC91bD48L2Rpdj4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDEiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj4KKzxhIG5hbWU9ImRyZC1tYW51YWwuZmVlZGJhY2siPjwvYT44LjUuoEZlZWRiYWNrPC9oMj48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPgorSWYgeW91IGhhdmUgYW55IGNvbW1lbnRzLCBzdWdnZXN0aW9ucywgZmVlZGJhY2sgb3IgYnVnIHJlcG9ydHMgYWJvdXQKK0RSRCwgZmVlbCBmcmVlIHRvIGVpdGhlciBwb3N0IGEgbWVzc2FnZSBvbiB0aGUgVmFsZ3JpbmQgdXNlcnMgbWFpbGluZworbGlzdCBvciB0byBmaWxlIGEgYnVnIHJlcG9ydC4gU2VlIGFsc28gPGEgY2xhc3M9InVsaW5rIiBocmVmPSJodHRwOi8vd3d3LnZhbGdyaW5kLm9yZy8iIHRhcmdldD0iX3RvcCI+aHR0cDovL3d3dy52YWxncmluZC5vcmcvPC9hPiBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KKzwvcD4KKzwvZGl2PgorPC9kaXY+Cis8ZGl2PgorPGJyPjx0YWJsZSBjbGFzcz0ibmF2IiB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjMiIGNlbGxwYWRkaW5nPSIyIiBib3JkZXI9IjAiIHN1bW1hcnk9Ik5hdmlnYXRpb24gZm9vdGVyIj4KKzx0cj4KKzx0ZCByb3dzcGFuPSIyIiB3aWR0aD0iNDAlIiBhbGlnbj0ibGVmdCI+Cis8YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImhnLW1hbnVhbC5odG1sIj4mbHQ7Jmx0O6A3LqBIZWxncmluZDogYSB0aHJlYWQgZXJyb3IgZGV0ZWN0b3I8L2E+oDwvdGQ+Cis8dGQgd2lkdGg9IjIwJSIgYWxpZ249ImNlbnRlciI+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJtYW51YWwuaHRtbCI+VXA8L2E+PC90ZD4KKzx0ZCByb3dzcGFuPSIyIiB3aWR0aD0iNDAlIiBhbGlnbj0icmlnaHQiPqA8YSBhY2Nlc3NrZXk9Im4iIGhyZWY9Im1zLW1hbnVhbC5odG1sIj45LqBNYXNzaWY6IGEgaGVhcCBwcm9maWxlcqAmZ3Q7Jmd0OzwvYT4KKzwvdGQ+Cis8L3RyPgorPHRyPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0iY2VudGVyIj48YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPkhvbWU8L2E+PC90ZD48L3RyPgorPC90YWJsZT4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvZG9jcy9odG1sL2ZhcS5odG1sIGIvZG9jcy9odG1sL2ZhcS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIxNzM2MWUKLS0tIC9kZXYvbnVsbAorKysgYi9kb2NzL2h0bWwvZmFxLmh0bWwKQEAgLTAsMCArMSw3NzYgQEAKKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj4KKzx0aXRsZT5WYWxncmluZCBGcmVxdWVudGx5IEFza2VkIFF1ZXN0aW9uczwvdGl0bGU+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJ2Z19iYXNpYy5jc3MiPgorPG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJEb2NCb29rIFhTTCBTdHlsZXNoZWV0cyBWMS43OC4xIj4KKzxsaW5rIHJlbD0iaG9tZSIgaHJlZj0iaW5kZXguaHRtbCIgdGl0bGU9IlZhbGdyaW5kIERvY3VtZW50YXRpb24iPgorPGxpbmsgcmVsPSJ1cCIgaHJlZj0iRkFRLmh0bWwiIHRpdGxlPSJWYWxncmluZCBGQVEiPgorPGxpbmsgcmVsPSJwcmV2IiBocmVmPSJGQVEuaHRtbCIgdGl0bGU9IlZhbGdyaW5kIEZBUSI+Cis8bGluayByZWw9Im5leHQiIGhyZWY9InRlY2gtZG9jcy5odG1sIiB0aXRsZT0iVmFsZ3JpbmQgVGVjaG5pY2FsIERvY3VtZW50YXRpb24iPgorPC9oZWFkPgorPGJvZHkgYmdjb2xvcj0id2hpdGUiIHRleHQ9ImJsYWNrIiBsaW5rPSIjMDAwMEZGIiB2bGluaz0iIzg0MDA4NCIgYWxpbms9IiMwMDAwRkYiPgorPGRpdj48dGFibGUgY2xhc3M9Im5hdiIgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSIzIiBjZWxscGFkZGluZz0iMyIgYm9yZGVyPSIwIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciI+PHRyPgorPHRkIHdpZHRoPSIyMnB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJwIiBocmVmPSJGQVEuaHRtbCI+PGltZyBzcmM9ImltYWdlcy9wcmV2LnBuZyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjIxIiBib3JkZXI9IjAiIGFsdD0iUHJldiI+PC9hPjwvdGQ+Cis8dGQgd2lkdGg9IjI1cHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9InUiIGhyZWY9IkZBUS5odG1sIj48aW1nIHNyYz0iaW1hZ2VzL3VwLnBuZyIgd2lkdGg9IjIxIiBoZWlnaHQ9IjE4IiBib3JkZXI9IjAiIGFsdD0iVXAiPjwvYT48L3RkPgorPHRkIHdpZHRoPSIzMXB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJoIiBocmVmPSJpbmRleC5odG1sIj48aW1nIHNyYz0iaW1hZ2VzL2hvbWUucG5nIiB3aWR0aD0iMjciIGhlaWdodD0iMjAiIGJvcmRlcj0iMCIgYWx0PSJVcCI+PC9hPjwvdGQ+Cis8dGggYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPlZhbGdyaW5kIEZBUTwvdGg+Cis8dGQgd2lkdGg9IjIycHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9Im4iIGhyZWY9InRlY2gtZG9jcy5odG1sIj48aW1nIHNyYz0iaW1hZ2VzL25leHQucG5nIiB3aWR0aD0iMTgiIGhlaWdodD0iMjEiIGJvcmRlcj0iMCIgYWx0PSJOZXh0Ij48L2E+PC90ZD4KKzwvdHI+PC90YWJsZT48L2Rpdj4KKzxkaXYgY2xhc3M9ImFydGljbGUiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj4KKzxkaXY+PGRpdj48aDEgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9ImZhcSI+PC9hPlZhbGdyaW5kIEZyZXF1ZW50bHkgQXNrZWQgUXVlc3Rpb25zPC9oMT48L2Rpdj48L2Rpdj4KKzxocj4KKzwvZGl2PgorPGRpdiBjbGFzcz0icWFuZGFzZXQiPgorPGRsPgorPGR0PjEuICA8YSBocmVmPSJmYXEuaHRtbCNmYXEuYmFja2dyb3VuZCI+QmFja2dyb3VuZDwvYT4KKzwvZHQ+Cis8ZGQ+MS4xLiA8YSBocmVmPSJmYXEuaHRtbCNmYXEucHJvbm91bmNlIj5Ib3cgZG8geW91IHByb25vdW5jZSAiVmFsZ3JpbmQiPzwvYT4KKzwvZGQ+Cis8ZGQ+MS4yLiA8YSBocmVmPSJmYXEuaHRtbCNmYXEud2hlbmNlIj5XaGVyZSBkb2VzIHRoZSBuYW1lICJWYWxncmluZCIgY29tZSBmcm9tPzwvYT4KKzwvZGQ+Cis8L2RsPgorPGRsPgorPGR0PjIuICA8YSBocmVmPSJmYXEuaHRtbCNmYXEuaW5zdGFsbGluZyI+Q29tcGlsaW5nLCBpbnN0YWxsaW5nIGFuZCBjb25maWd1cmluZzwvYT4KKzwvZHQ+Cis8ZGQ+Mi4xLiA8YSBocmVmPSJmYXEuaHRtbCNmYXEubWFrZV9kaWVzIj5XaGVuIGJ1aWxkaW5nIFZhbGdyaW5kLCAnbWFrZScgZGllcyBwYXJ0d2F5IHdpdGgKKyAgYW4gYXNzZXJ0aW9uIGZhaWx1cmUsIHNvbWV0aGluZyBsaWtlIHRoaXM6PC9hPgorPC9kZD4KKzxkZD4yLjIuIDxhIGhyZWY9ImZhcS5odG1sI2ZhcS5nbGliY19kZXZlbCI+V2hlbiBidWlsZGluZyBWYWxncmluZCwgJ21ha2UnIGZhaWxzIHdpdGggdGhpczo8L2E+Cis8L2RkPgorPC9kbD4KKzxkbD4KKzxkdD4zLiAgPGEgaHJlZj0iZmFxLmh0bWwjZmFxLmFib3J0Ij5WYWxncmluZCBhYm9ydHMgdW5leHBlY3RlZGx5PC9hPgorPC9kdD4KKzxkZD4zLjEuIDxhIGhyZWY9ImZhcS5odG1sI2ZhcS5leGl0X2Vycm9ycyI+UHJvZ3JhbXMgcnVuIE9LIG9uIFZhbGdyaW5kLCBidXQgYXQgZXhpdCBwcm9kdWNlIGEgYnVuY2ggb2YKKyAgICBlcnJvcnMgaW52b2x2aW5nIF9fbGliY19mcmVlcmVzIGFuZCB0aGVuIGRpZQorICAgIHdpdGggYSBzZWdtZW50YXRpb24gZmF1bHQuPC9hPgorPC9kZD4KKzxkZD4zLjIuIDxhIGhyZWY9ImZhcS5odG1sI2ZhcS5idWdkZWF0aCI+TXkgKGJ1Z2d5KSBwcm9ncmFtIGRpZXMgbGlrZSB0aGlzOjwvYT4KKzwvZGQ+Cis8ZGQ+My4zLiA8YSBocmVmPSJmYXEuaHRtbCNmYXEubXNnZGVhdGgiPk15IHByb2dyYW0gZGllcywgcHJpbnRpbmcgYSBtZXNzYWdlIGxpa2UgdGhpcyBhbG9uZyB0aGUKKyAgICB3YXk6PC9hPgorPC9kZD4KKzxkZD4zLjQuIDxhIGhyZWY9ImZhcS5odG1sI2ZhcS5qYXZhIj5JIHRyaWVkIHJ1bm5pbmcgYSBKYXZhIHByb2dyYW0gKG9yIGFub3RoZXIgcHJvZ3JhbSB0aGF0IHVzZXMgYQorICAgIGp1c3QtaW4tdGltZSBjb21waWxlcikgdW5kZXIgVmFsZ3JpbmQgYnV0IHNvbWV0aGluZyB3ZW50IHdyb25nLgorICAgIERvZXMgVmFsZ3JpbmQgaGFuZGxlIHN1Y2ggcHJvZ3JhbXM/PC9hPgorPC9kZD4KKzwvZGw+Cis8ZGw+Cis8ZHQ+NC4gIDxhIGhyZWY9ImZhcS5odG1sI2ZhcS51bmV4cGVjdGVkIj5WYWxncmluZCBiZWhhdmVzIHVuZXhwZWN0ZWRseTwvYT4KKzwvZHQ+Cis8ZGQ+NC4xLiA8YSBocmVmPSJmYXEuaHRtbCNmYXEucmVwb3J0cyI+TXkgcHJvZ3JhbSB1c2VzIHRoZSBDKysgU1RMIGFuZCBzdHJpbmcgY2xhc3Nlcy4gIFZhbGdyaW5kCisgICAgcmVwb3J0cyAnc3RpbGwgcmVhY2hhYmxlJyBtZW1vcnkgbGVha3MgaW52b2x2aW5nIHRoZXNlIGNsYXNzZXMgYXQKKyAgICB0aGUgZXhpdCBvZiB0aGUgcHJvZ3JhbSwgYnV0IHRoZXJlIHNob3VsZCBiZSBub25lLjwvYT4KKzwvZGQ+Cis8ZGQ+NC4yLiA8YSBocmVmPSJmYXEuaHRtbCNmYXEudW5oZWxwZnVsIj5UaGUgc3RhY2sgdHJhY2VzIGdpdmVuIGJ5IE1lbWNoZWNrIChvciBhbm90aGVyIHRvb2wpIGFyZW4ndAorICAgIGhlbHBmdWwuICBIb3cgY2FuIEkgaW1wcm92ZSB0aGVtPzwvYT4KKzwvZGQ+Cis8ZGQ+NC4zLiA8YSBocmVmPSJmYXEuaHRtbCNmYXEuYWxpYXNlcyI+VGhlIHN0YWNrIHRyYWNlcyBnaXZlbiBieSBNZW1jaGVjayAob3IgYW5vdGhlciB0b29sKSBzZWVtIHRvCisgICAgaGF2ZSB0aGUgd3JvbmcgZnVuY3Rpb24gbmFtZSBpbiB0aGVtLiAgV2hhdCdzIGhhcHBlbmluZz88L2E+Cis8L2RkPgorPGRkPjQuNC4gPGEgaHJlZj0iZmFxLmh0bWwjZmFxLmNyYXNoZXMiPk15IHByb2dyYW0gY3Jhc2hlcyBub3JtYWxseSwgYnV0IGRvZXNuJ3QgdW5kZXIgVmFsZ3JpbmQsIG9yIHZpY2UKKyAgICB2ZXJzYS4gIFdoYXQncyBoYXBwZW5pbmc/PC9hPgorPC9kZD4KKzxkZD40LjUuIDxhIGhyZWY9ImZhcS5odG1sI2ZhcS5oaWRkZW5idWciPiBNZW1jaGVjayBkb2Vzbid0IHJlcG9ydCBhbnkgZXJyb3JzIGFuZCBJIGtub3cgbXkgcHJvZ3JhbSBoYXMKKyAgICBlcnJvcnMuPC9hPgorPC9kZD4KKzxkZD40LjYuIDxhIGhyZWY9ImZhcS5odG1sI2ZhcS5vdmVycnVucyI+V2h5IGRvZXNuJ3QgTWVtY2hlY2sgZmluZCB0aGUgYXJyYXkgb3ZlcnJ1bnMgaW4gdGhpcworICAgIHByb2dyYW0/PC9hPgorPC9kZD4KKzwvZGw+Cis8ZGw+Cis8ZHQ+NS4gIDxhIGhyZWY9ImZhcS5odG1sI2ZhcS5taXNjIj5NaXNjZWxsYW5lb3VzPC9hPgorPC9kdD4KKzxkZD41LjEuIDxhIGhyZWY9ImZhcS5odG1sI2ZhcS53cml0ZXN1cHAiPkkgdHJpZWQgd3JpdGluZyBhIHN1cHByZXNzaW9uIGJ1dCBpdCBkaWRuJ3Qgd29yay4gIENhbiB5b3UKKyAgICB3cml0ZSBteSBzdXBwcmVzc2lvbiBmb3IgbWU/PC9hPgorPC9kZD4KKzxkZD41LjIuIDxhIGhyZWY9ImZhcS5odG1sI2ZhcS5kZWZsb3N0Ij5XaXRoIE1lbWNoZWNrJ3MgbWVtb3J5IGxlYWsgZGV0ZWN0b3IsIHdoYXQncyB0aGUKKyAgICBkaWZmZXJlbmNlIGJldHdlZW4gImRlZmluaXRlbHkgbG9zdCIsICJpbmRpcmVjdGx5IGxvc3QiLCAicG9zc2libHkKKyAgICBsb3N0IiwgInN0aWxsIHJlYWNoYWJsZSIsIGFuZCAic3VwcHJlc3NlZCI/PC9hPgorPC9kZD4KKzxkZD41LjMuIDxhIGhyZWY9ImZhcS5odG1sI2ZhcS51bmRlZmVycm9ycyI+TWVtY2hlY2sncyB1bmluaXRpYWxpc2VkIHZhbHVlIGVycm9ycyBhcmUgaGFyZCB0byB0cmFjayBkb3duLAorICAgIGJlY2F1c2UgdGhleSBhcmUgb2Z0ZW4gcmVwb3J0ZWQgc29tZSB0aW1lIGFmdGVyIHRoZXkgYXJlIGNhdXNlZC4gIENvdWxkIAorICAgIE1lbWNoZWNrIHJlY29yZCBhIHRyYWlsIG9mIG9wZXJhdGlvbnMgdG8gYmV0dGVyIGxpbmsgdGhlIGNhdXNlIHRvIHRoZQorICAgIGVmZmVjdD8gIE9yIG1heWJlIGp1c3QgZWFnZXJseSByZXBvcnQgYW55IGNvcGllcyBvZiB1bmluaXRpYWxpc2VkCisgICAgbWVtb3J5IHZhbHVlcz88L2E+Cis8L2RkPgorPGRkPjUuNC4gPGEgaHJlZj0iZmFxLmh0bWwjZmFxLmF0dGFjaCI+SXMgaXQgcG9zc2libGUgdG8gYXR0YWNoIFZhbGdyaW5kIHRvIGEgcHJvZ3JhbSB0aGF0IGlzIGFscmVhZHkKKyAgICBydW5uaW5nPzwvYT4KKzwvZGQ+Cis8L2RsPgorPGRsPjxkdD42LiAgPGEgaHJlZj0iZmFxLmh0bWwjZmFxLmhlbHAiPkhvdyBUbyBHZXQgRnVydGhlciBBc3Npc3RhbmNlPC9hPgorPC9kdD48L2RsPgorPGJyPjx0YWJsZSB3aWR0aD0iMTAwJSIgc3VtbWFyeT0iUSBhbmQgQSBEaXYiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMiIgYm9yZGVyPSIwIj4KKzx0ciBjbGFzcz0icWFuZGFkaXYiPjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiIGNvbHNwYW49IjIiPgorPGEgbmFtZT0iZmFxLmJhY2tncm91bmQiPjwvYT48aDMgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9ImZhcS5iYWNrZ3JvdW5kIj48L2E+MS4gQmFja2dyb3VuZDwvaDM+Cis8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InRvYyIgY29sc3Bhbj0iMiI+PHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCIgY29sc3Bhbj0iMiI+MS4xLiA8YSBocmVmPSJmYXEuaHRtbCNmYXEucHJvbm91bmNlIj5Ib3cgZG8geW91IHByb25vdW5jZSAiVmFsZ3JpbmQiPzwvYT48YnI+MS4yLiA8YSBocmVmPSJmYXEuaHRtbCNmYXEud2hlbmNlIj5XaGVyZSBkb2VzIHRoZSBuYW1lICJWYWxncmluZCIgY29tZSBmcm9tPzwvYT48YnI+Cis8L3RkPjwvdHI+Cis8dHI+PHRkIGNvbHNwYW49IjIiPqA8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InF1ZXN0aW9uIj4KKzx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPgorPGEgbmFtZT0iZmFxLnByb25vdW5jZSI+PC9hPjxhIG5hbWU9InEtcHJvbm91bmNlIj48L2E+PGI+MS4xLjwvYj4KKzwvdGQ+Cis8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj48Yj5Ib3cgZG8geW91IHByb25vdW5jZSAiVmFsZ3JpbmQiPzwvYj48L3RkPgorPC90cj4KKzx0ciBjbGFzcz0iYW5zd2VyIj4KKzx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjxhIG5hbWU9ImEtcHJvbm91bmNlIj48L2E+PC90ZD4KKzx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPgorPHA+VGhlICJWYWwiIGFzIGluIHRoZSB3b3JkICJ2YWx1ZSIuICBUaGUgImdyaW5kIiBpcyBwcm9ub3VuY2VkCisgIHdpdGggYSBzaG9ydCAnaScgLS0gaWUuICJncmlubmVkIiAocmh5bWVzIHdpdGggInRpbm5lZCIpIHJhdGhlciB0aGFuCisgICJncmluZWQiIChyaHltZXMgd2l0aCAiZmluZCIpLjwvcD4KKzxwPkRvbid0IGZlZWwgYmFkOiBhbG1vc3QKKyAgZXZlcnlvbmUgZ2V0cyBpdCB3cm9uZyBhdCBmaXJzdC48L3A+Cis8L3RkPgorPC90cj4KKzx0cj48dGQgY29sc3Bhbj0iMiI+oDwvdGQ+PC90cj4KKzx0ciBjbGFzcz0icXVlc3Rpb24iPgorPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+Cis8YSBuYW1lPSJmYXEud2hlbmNlIj48L2E+PGEgbmFtZT0icS13aGVuY2UiPjwvYT48Yj4xLjIuPC9iPgorPC90ZD4KKzx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjxiPldoZXJlIGRvZXMgdGhlIG5hbWUgIlZhbGdyaW5kIiBjb21lIGZyb20/PC9iPjwvdGQ+Cis8L3RyPgorPHRyIGNsYXNzPSJhbnN3ZXIiPgorPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+PGEgbmFtZT0iYS13aGVuY2UiPjwvYT48L3RkPgorPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+Cis8cD5Gcm9tIE5vcmRpYyBteXRob2xvZ3kuICBPcmlnaW5hbGx5IChiZWZvcmUgcmVsZWFzZSkgdGhlIHByb2plY3QKKyAgd2FzIG5hbWVkIEhlaW1kYWxsLCBhZnRlciB0aGUgd2F0Y2htYW4gb2YgdGhlIE5vcmRpYyBnb2RzLiAgSGUgY291bGQKKyAgInNlZSBhIGh1bmRyZWQgbWlsZXMgYnkgZGF5IG9yIG5pZ2h0LCBoZWFyIHRoZSBncmFzcyBncm93aW5nLCBzZWUgdGhlCisgIHdvb2wgZ3Jvd2luZyBvbiBhIHNoZWVwJ3MgYmFjayIsIGV0Yy4gIFRoaXMgd291bGQgaGF2ZSBiZWVuIGEgZ3JlYXQKKyAgbmFtZSwgYnV0IGl0IHdhcyBhbHJlYWR5IHRha2VuIGJ5IGEgc2VjdXJpdHkgcGFja2FnZSAiSGVpbWRhbCIuPC9wPgorPHA+S2VlcGluZyB3aXRoIHRoZSBOb3JkaWMgdGhlbWUsIFZhbGdyaW5kIHdhcyBjaG9zZW4uICBWYWxncmluZCBpcworICB0aGUgbmFtZSBvZiB0aGUgbWFpbiBlbnRyYW5jZSB0byBWYWxoYWxsYSAodGhlIEhhbGwgb2YgdGhlIENob3NlbgorICBTbGFpbiBpbiBBc2dhcmQpLiAgT3ZlciB0aGlzIGVudHJhbmNlIHRoZXJlIHJlc2lkZXMgYSB3b2xmIGFuZCBvdmVyIGl0CisgIHRoZXJlIGlzIHRoZSBoZWFkIG9mIGEgYm9hciBhbmQgb24gaXQgcGVyY2hlcyBhIGh1Z2UgZWFnbGUsIHdob3NlIGV5ZXMKKyAgY2FuIHNlZSB0byB0aGUgZmFyIHJlZ2lvbnMgb2YgdGhlIG5pbmUgd29ybGRzLiAgT25seSB0aG9zZSBqdWRnZWQKKyAgd29ydGh5IGJ5IHRoZSBndWFyZGlhbnMgYXJlIGFsbG93ZWQgdG8gcGFzcyB0aHJvdWdoIFZhbGdyaW5kLiAgQWxsCisgIG90aGVycyBhcmUgcmVmdXNlZCBlbnRyYW5jZS48L3A+Cis8cD5JdCdzIG5vdCBzaG9ydCBmb3IgInZhbHVlIGdyaW5kZXIiLCBhbHRob3VnaCB0aGF0J3Mgbm90IGEgYmFkCisgIGd1ZXNzLjwvcD4KKzwvdGQ+Cis8L3RyPgorPC90YWJsZT4KKzxicj48dGFibGUgd2lkdGg9IjEwMCUiIHN1bW1hcnk9IlEgYW5kIEEgRGl2IiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjIiIGJvcmRlcj0iMCI+Cis8dHIgY2xhc3M9InFhbmRhZGl2Ij48dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIiBjb2xzcGFuPSIyIj4KKzxhIG5hbWU9ImZhcS5pbnN0YWxsaW5nIj48L2E+PGgzIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJmYXEuaW5zdGFsbGluZyI+PC9hPjIuIENvbXBpbGluZywgaW5zdGFsbGluZyBhbmQgY29uZmlndXJpbmc8L2gzPgorPC90ZD48L3RyPgorPHRyIGNsYXNzPSJ0b2MiIGNvbHNwYW49IjIiPjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiIGNvbHNwYW49IjIiPjIuMS4gPGEgaHJlZj0iZmFxLmh0bWwjZmFxLm1ha2VfZGllcyI+V2hlbiBidWlsZGluZyBWYWxncmluZCwgJ21ha2UnIGRpZXMgcGFydHdheSB3aXRoCisgIGFuIGFzc2VydGlvbiBmYWlsdXJlLCBzb21ldGhpbmcgbGlrZSB0aGlzOjwvYT48YnI+Mi4yLiA8YSBocmVmPSJmYXEuaHRtbCNmYXEuZ2xpYmNfZGV2ZWwiPldoZW4gYnVpbGRpbmcgVmFsZ3JpbmQsICdtYWtlJyBmYWlscyB3aXRoIHRoaXM6PC9hPjxicj4KKzwvdGQ+PC90cj4KKzx0cj48dGQgY29sc3Bhbj0iMiI+oDwvdGQ+PC90cj4KKzx0ciBjbGFzcz0icXVlc3Rpb24iPgorPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+Cis8YSBuYW1lPSJmYXEubWFrZV9kaWVzIj48L2E+PGEgbmFtZT0icS1tYWtlX2RpZXMiPjwvYT48Yj4yLjEuPC9iPgorPC90ZD4KKzx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPgorPGI+V2hlbiBidWlsZGluZyBWYWxncmluZCwgJ21ha2UnIGRpZXMgcGFydHdheSB3aXRoCisgIGFuIGFzc2VydGlvbiBmYWlsdXJlLCBzb21ldGhpbmcgbGlrZSB0aGlzOjwvYj48cHJlIGNsYXNzPSJzY3JlZW4iPgorJSBtYWtlOiBleHBhbmQuYzo0ODk6IGFsbG9jYXRlZF92YXJpYWJsZV9hcHBlbmQ6IAorICAgICAgICBBc3NlcnRpb24gJ2N1cnJlbnRfdmFyaWFibGVfc2V0X2xpc3QtJmd0O25leHQgIT0gMCcgZmFpbGVkLgorPC9wcmU+Cis8L3RkPgorPC90cj4KKzx0ciBjbGFzcz0iYW5zd2VyIj4KKzx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjxhIG5hbWU9ImEtbWFrZV9kaWVzIj48L2E+PC90ZD4KKzx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjxwPkl0J3MgcHJvYmFibHkgYSBidWcgaW4gJ21ha2UnLiAgU29tZSwgYnV0IG5vdCBhbGwsIGluc3RhbmNlcyBvZgorICB2ZXJzaW9uIDMuNzkuMSBoYXZlIHRoaXMgYnVnLCBzZWUKKyAgPGEgY2xhc3M9InVsaW5rIiBocmVmPSJodHRwOi8vd3d3Lm1haWwtYXJjaGl2ZS5jb20vYnVnLW1ha2VAZ251Lm9yZy9tc2cwMTY1OC5odG1sIiB0YXJnZXQ9Il90b3AiPnRoaXM8L2E+LgorICBUcnkgdXBncmFkaW5nIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiBvZiAnbWFrZScuICBBbHRlcm5hdGl2ZWx5LCB3ZSBoYXZlCisgIGhlYXJkIHRoYXQgdW5zZXR0aW5nIHRoZSBDRkxBR1MgZW52aXJvbm1lbnQgdmFyaWFibGUgYXZvaWRzIHRoZQorICBwcm9ibGVtLjwvcD48L3RkPgorPC90cj4KKzx0cj48dGQgY29sc3Bhbj0iMiI+oDwvdGQ+PC90cj4KKzx0ciBjbGFzcz0icXVlc3Rpb24iPgorPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+Cis8YSBuYW1lPSJmYXEuZ2xpYmNfZGV2ZWwiPjwvYT48YSBuYW1lPSJpZG0xNDA2MzkxMTgyMDM1MzYiPjwvYT48Yj4yLjIuPC9iPgorPC90ZD4KKzx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPgorPGI+V2hlbiBidWlsZGluZyBWYWxncmluZCwgJ21ha2UnIGZhaWxzIHdpdGggdGhpczo8L2I+PHByZSBjbGFzcz0ic2NyZWVuIj4KKy91c3IvYmluL2xkOiBjYW5ub3QgZmluZCAtbGMKK2NvbGxlY3QyOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCis8L3ByZT4KKzwvdGQ+Cis8L3RyPgorPHRyIGNsYXNzPSJhbnN3ZXIiPgorPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+PC90ZD4KKzx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjxwPllvdSBuZWVkIHRvIGluc3RhbGwgdGhlIGdsaWJjLXN0YXRpYy1kZXZlbCBwYWNrYWdlLjwvcD48L3RkPgorPC90cj4KKzwvdGFibGU+Cis8YnI+PHRhYmxlIHdpZHRoPSIxMDAlIiBzdW1tYXJ5PSJRIGFuZCBBIERpdiIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIyIiBib3JkZXI9IjAiPgorPHRyIGNsYXNzPSJxYW5kYWRpdiI+PHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCIgY29sc3Bhbj0iMiI+Cis8YSBuYW1lPSJmYXEuYWJvcnQiPjwvYT48aDMgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9ImZhcS5hYm9ydCI+PC9hPjMuIFZhbGdyaW5kIGFib3J0cyB1bmV4cGVjdGVkbHk8L2gzPgorPC90ZD48L3RyPgorPHRyIGNsYXNzPSJ0b2MiIGNvbHNwYW49IjIiPjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiIGNvbHNwYW49IjIiPjMuMS4gPGEgaHJlZj0iZmFxLmh0bWwjZmFxLmV4aXRfZXJyb3JzIj5Qcm9ncmFtcyBydW4gT0sgb24gVmFsZ3JpbmQsIGJ1dCBhdCBleGl0IHByb2R1Y2UgYSBidW5jaCBvZgorICAgIGVycm9ycyBpbnZvbHZpbmcgX19saWJjX2ZyZWVyZXMgYW5kIHRoZW4gZGllCisgICAgd2l0aCBhIHNlZ21lbnRhdGlvbiBmYXVsdC48L2E+PGJyPjMuMi4gPGEgaHJlZj0iZmFxLmh0bWwjZmFxLmJ1Z2RlYXRoIj5NeSAoYnVnZ3kpIHByb2dyYW0gZGllcyBsaWtlIHRoaXM6PC9hPjxicj4zLjMuIDxhIGhyZWY9ImZhcS5odG1sI2ZhcS5tc2dkZWF0aCI+TXkgcHJvZ3JhbSBkaWVzLCBwcmludGluZyBhIG1lc3NhZ2UgbGlrZSB0aGlzIGFsb25nIHRoZQorICAgIHdheTo8L2E+PGJyPjMuNC4gPGEgaHJlZj0iZmFxLmh0bWwjZmFxLmphdmEiPkkgdHJpZWQgcnVubmluZyBhIEphdmEgcHJvZ3JhbSAob3IgYW5vdGhlciBwcm9ncmFtIHRoYXQgdXNlcyBhCisgICAganVzdC1pbi10aW1lIGNvbXBpbGVyKSB1bmRlciBWYWxncmluZCBidXQgc29tZXRoaW5nIHdlbnQgd3JvbmcuCisgICAgRG9lcyBWYWxncmluZCBoYW5kbGUgc3VjaCBwcm9ncmFtcz88L2E+PGJyPgorPC90ZD48L3RyPgorPHRyPjx0ZCBjb2xzcGFuPSIyIj6gPC90ZD48L3RyPgorPHRyIGNsYXNzPSJxdWVzdGlvbiI+Cis8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj4KKzxhIG5hbWU9ImZhcS5leGl0X2Vycm9ycyI+PC9hPjxhIG5hbWU9InEtZXhpdF9lcnJvcnMiPjwvYT48Yj4zLjEuPC9iPgorPC90ZD4KKzx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjxiPlByb2dyYW1zIHJ1biBPSyBvbiBWYWxncmluZCwgYnV0IGF0IGV4aXQgcHJvZHVjZSBhIGJ1bmNoIG9mCisgICAgZXJyb3JzIGludm9sdmluZyA8Y29kZSBjbGFzcz0ibGl0ZXJhbCI+X19saWJjX2ZyZWVyZXM8L2NvZGU+IGFuZCB0aGVuIGRpZQorICAgIHdpdGggYSBzZWdtZW50YXRpb24gZmF1bHQuPC9iPjwvdGQ+Cis8L3RyPgorPHRyIGNsYXNzPSJhbnN3ZXIiPgorPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+PGEgbmFtZT0iYS1leGl0X2Vycm9ycyI+PC9hPjwvdGQ+Cis8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj4KKzxwPldoZW4gdGhlIHByb2dyYW0gZXhpdHMsIFZhbGdyaW5kIHJ1bnMgdGhlIHByb2NlZHVyZQorICAgIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+X19saWJjX2ZyZWVyZXM8L2NvZGU+IGluIGdsaWJjLiAgVGhpcyBpcyBhIGhvb2sgZm9yCisgICAgbWVtb3J5IGRlYnVnZ2Vycywgc28gdGhleSBjYW4gYXNrIGdsaWJjIHRvIGZyZWUgdXAgYW55IG1lbW9yeSBpdCBoYXMKKyAgICB1c2VkLiAgRG9pbmcgdGhhdCBpcyBuZWVkZWQgdG8gZW5zdXJlIHRoYXQgVmFsZ3JpbmQgZG9lc24ndAorICAgIGluY29ycmVjdGx5IHJlcG9ydCBzcGFjZSBsZWFrcyBpbiBnbGliYy48L3A+Cis8cD5UaGUgcHJvYmxlbSBpcyB0aGF0IHJ1bm5pbmcgPGNvZGUgY2xhc3M9ImxpdGVyYWwiPl9fbGliY19mcmVlcmVzPC9jb2RlPiBpbgorICAgIG9sZGVyIGdsaWJjIHZlcnNpb25zIGNhdXNlcyB0aGlzIGNyYXNoLjwvcD4KKzxwPldvcmthcm91bmQgZm9yIDEuMS5YIGFuZCBsYXRlciB2ZXJzaW9ucyBvZiBWYWxncmluZDogdXNlIHRoZQorICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tcnVuLWxpYmMtZnJlZXJlcz1ubzwvY29kZT4gb3B0aW9uLiAgWW91IG1heSB0aGVuIGdldCBzcGFjZQorICAgIGxlYWsgcmVwb3J0cyBmb3IgZ2xpYmMgYWxsb2NhdGlvbnMgKHBsZWFzZSBkb24ndCByZXBvcnQgdGhlc2UgdG8KKyAgICB0aGUgZ2xpYmMgcGVvcGxlLCBzaW5jZSB0aGV5IGFyZSBub3QgcmVhbCBsZWFrcyksIGJ1dCBhdCBsZWFzdCB0aGUKKyAgICBwcm9ncmFtIHJ1bnMuPC9wPgorPC90ZD4KKzwvdHI+Cis8dHI+PHRkIGNvbHNwYW49IjIiPqA8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InF1ZXN0aW9uIj4KKzx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPgorPGEgbmFtZT0iZmFxLmJ1Z2RlYXRoIj48L2E+PGEgbmFtZT0icS1idWdkZWF0aCI+PC9hPjxiPjMuMi48L2I+Cis8L3RkPgorPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+Cis8Yj5NeSAoYnVnZ3kpIHByb2dyYW0gZGllcyBsaWtlIHRoaXM6PC9iPjxwcmUgY2xhc3M9InNjcmVlbiI+dmFsZ3JpbmQ6IG1fbWFsbG9jZnJlZS5jOjI0OCAoZ2V0X2JzekJfYXNfaXMpOiBBc3NlcnRpb24gJ2JzekJfbG8gPT0gYnN6Ql9oaScgZmFpbGVkLjwvcHJlPgorPGI+b3IgbGlrZSB0aGlzOjwvYj48cHJlIGNsYXNzPSJzY3JlZW4iPnZhbGdyaW5kOiBtX21hbGxvY2ZyZWUuYzo0NDIgKG1rX2ludXNlX2JzekIpOiBBc3NlcnRpb24gJ2JzekIgIT0gMCcgZmFpbGVkLjwvcHJlPgorPGI+b3Igb3RoZXJ3aXNlIGFib3J0cyBvciBjcmFzaGVzIGluIG1fbWFsbG9jZnJlZS5jLjwvYj4KKzwvdGQ+Cis8L3RyPgorPHRyIGNsYXNzPSJhbnN3ZXIiPgorPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+PGEgbmFtZT0iYS1idWdkZWF0aCI+PC9hPjwvdGQ+Cis8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj48cD5JZiBNZW1jaGVjayAodGhlIG1lbW9yeSBjaGVja2VyKSBzaG93cyBhbnkgaW52YWxpZCByZWFkcywKKyAgICBpbnZhbGlkIHdyaXRlcyBvciBpbnZhbGlkIGZyZWVzIGluIHlvdXIgcHJvZ3JhbSwgdGhlIGFib3ZlIG1heQorICAgIGhhcHBlbi4gIFJlYXNvbiBpcyB0aGF0IHlvdXIgcHJvZ3JhbSBtYXkgdHJhc2ggVmFsZ3JpbmQncyBsb3ctbGV2ZWwKKyAgICBtZW1vcnkgbWFuYWdlciwgd2hpY2ggdGhlbiBkaWVzIHdpdGggdGhlIGFib3ZlIGFzc2VydGlvbiwgb3IKKyAgICBzb21ldGhpbmcgc2ltaWxhci4gIFRoZSBjdXJlIGlzIHRvIGZpeCB5b3VyIHByb2dyYW0gc28gdGhhdCBpdAorICAgIGRvZXNuJ3QgZG8gYW55IGlsbGVnYWwgbWVtb3J5IGFjY2Vzc2VzLiAgVGhlIGFib3ZlIGZhaWx1cmUgd2lsbAorICAgIGhvcGVmdWxseSBnbyBhd2F5IGFmdGVyIHRoYXQuPC9wPjwvdGQ+Cis8L3RyPgorPHRyPjx0ZCBjb2xzcGFuPSIyIj6gPC90ZD48L3RyPgorPHRyIGNsYXNzPSJxdWVzdGlvbiI+Cis8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj4KKzxhIG5hbWU9ImZhcS5tc2dkZWF0aCI+PC9hPjxhIG5hbWU9InEtbXNnZGVhdGgiPjwvYT48Yj4zLjMuPC9iPgorPC90ZD4KKzx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPgorPGI+TXkgcHJvZ3JhbSBkaWVzLCBwcmludGluZyBhIG1lc3NhZ2UgbGlrZSB0aGlzIGFsb25nIHRoZQorICAgIHdheTo8L2I+PHByZSBjbGFzcz0ic2NyZWVuIj52ZXggeDg2LSZndDtJUjogdW5oYW5kbGVkIGluc3RydWN0aW9uIGJ5dGVzOiAweDY2IDB4RiAweDJFIDB4NTwvcHJlPgorPC90ZD4KKzwvdHI+Cis8dHIgY2xhc3M9ImFuc3dlciI+Cis8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj48YSBuYW1lPSJhLW1zZ2RlYXRoIj48L2E+PC90ZD4KKzx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPgorPHA+T25lIHBvc3NpYmlsaXR5IGlzIHRoYXQgeW91ciBwcm9ncmFtIGhhcyBhIGJ1ZyBhbmQgZXJyb25lb3VzbHkKKyAgICBqdW1wcyB0byBhIG5vbi1jb2RlIGFkZHJlc3MsIGluIHdoaWNoIGNhc2UgeW91J2xsIGdldCBhIFNJR0lMTCBzaWduYWwuCisgICAgTWVtY2hlY2sgbWF5IGlzc3VlIGEgd2FybmluZyBqdXN0IGJlZm9yZSB0aGlzIGhhcHBlbnMsIGJ1dCBpdCBtaWdodCBub3QKKyAgICBpZiB0aGUganVtcCBoYXBwZW5zIHRvIGxhbmQgaW4gYWRkcmVzc2FibGUgbWVtb3J5LjwvcD4KKzxwPkFub3RoZXIgcG9zc2liaWxpdHkgaXMgdGhhdCBWYWxncmluZCBkb2VzIG5vdCBoYW5kbGUgdGhlCisgICAgaW5zdHJ1Y3Rpb24uICBJZiB5b3UgYXJlIHVzaW5nIGFuIG9sZGVyIFZhbGdyaW5kLCBhIG5ld2VyIHZlcnNpb24gbWlnaHQKKyAgICBoYW5kbGUgdGhlIGluc3RydWN0aW9uLiAgSG93ZXZlciwgYWxsIGluc3RydWN0aW9uIHNldHMgaGF2ZSBzb21lCisgICAgb2JzY3VyZSwgcmFyZWx5IHVzZWQgaW5zdHJ1Y3Rpb25zLiAgQWxzbywgb24gYW1kNjQgdGhlcmUgYXJlIGFuIGFsbW9zdAorICAgIGxpbWl0bGVzcyBudW1iZXIgb2YgY29tYmluYXRpb25zIG9mIHJlZHVuZGFudCBpbnN0cnVjdGlvbiBwcmVmaXhlcywgbWFueQorICAgIG9mIHRoZW0gdW5kb2N1bWVudGVkIGJ1dCBhY2NlcHRlZCBieSBDUFVzLiAgU28gVmFsZ3JpbmQgd2lsbCBzdGlsbCBoYXZlCisgICAgZGVjb2RpbmcgZmFpbHVyZXMgZnJvbSB0aW1lIHRvIHRpbWUuICBJZiB0aGlzIGhhcHBlbnMsIHBsZWFzZSBmaWxlIGEgYnVnCisgICAgcmVwb3J0LjwvcD4KKzwvdGQ+Cis8L3RyPgorPHRyPjx0ZCBjb2xzcGFuPSIyIj6gPC90ZD48L3RyPgorPHRyIGNsYXNzPSJxdWVzdGlvbiI+Cis8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj4KKzxhIG5hbWU9ImZhcS5qYXZhIj48L2E+PGEgbmFtZT0icS1qYXZhIj48L2E+PGI+My40LjwvYj4KKzwvdGQ+Cis8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj48Yj5JIHRyaWVkIHJ1bm5pbmcgYSBKYXZhIHByb2dyYW0gKG9yIGFub3RoZXIgcHJvZ3JhbSB0aGF0IHVzZXMgYQorICAgIGp1c3QtaW4tdGltZSBjb21waWxlcikgdW5kZXIgVmFsZ3JpbmQgYnV0IHNvbWV0aGluZyB3ZW50IHdyb25nLgorICAgIERvZXMgVmFsZ3JpbmQgaGFuZGxlIHN1Y2ggcHJvZ3JhbXM/PC9iPjwvdGQ+Cis8L3RyPgorPHRyIGNsYXNzPSJhbnN3ZXIiPgorPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+PGEgbmFtZT0iYS1qYXZhIj48L2E+PC90ZD4KKzx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPgorPHA+VmFsZ3JpbmQgY2FuIGhhbmRsZSBkeW5hbWljYWxseSBnZW5lcmF0ZWQgY29kZSwgc28gbG9uZyBhcworICAgIG5vbmUgb2YgdGhlIGdlbmVyYXRlZCBjb2RlIGlzIGxhdGVyIG92ZXJ3cml0dGVuIGJ5IG90aGVyIGdlbmVyYXRlZAorICAgIGNvZGUuICBJZiB0aGlzIGhhcHBlbnMsIHRob3VnaCwgdGhpbmdzIHdpbGwgZ28gd3JvbmcgYXMgVmFsZ3JpbmQKKyAgICB3aWxsIGNvbnRpbnVlIHJ1bm5pbmcgaXRzIHRyYW5zbGF0aW9ucyBvZiB0aGUgb2xkIGNvZGUgKHRoaXMgaXMgdHJ1ZQorICAgIG9uIHg4NiBhbmQgYW1kNjQsIG9uIFBvd2VyUEMgdGhlcmUgYXJlIGV4cGxpY2l0IGNhY2hlIGZsdXNoCisgICAgaW5zdHJ1Y3Rpb25zIHdoaWNoIFZhbGdyaW5kIGRldGVjdHMgYW5kIGhvbm91cnMpLgorICAgIFlvdSBzaG91bGQgdHJ5IHJ1bm5pbmcgd2l0aAorICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tc21jLWNoZWNrPWFsbDwvY29kZT4gaW4gdGhpcyBjYXNlLiAgVmFsZ3JpbmQgd2lsbCBydW4KKyAgICBtdWNoIG1vcmUgc2xvd2x5LCBidXQgc2hvdWxkIGRldGVjdCB0aGUgdXNlIG9mIHRoZSBvdXQtb2YtZGF0ZQorICAgIGNvZGUuPC9wPgorPHA+QWx0ZXJuYXRpdmVseSwgaWYgeW91IGhhdmUgdGhlIHNvdXJjZSBjb2RlIHRvIHRoZSBKSVQgY29tcGlsZXIKKyAgICB5b3UgY2FuIGluc2VydCBjYWxscyB0byB0aGUKKyAgICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPlZBTEdSSU5EX0RJU0NBUkRfVFJBTlNMQVRJT05TPC9jb2RlPgorICAgIGNsaWVudCByZXF1ZXN0IHRvIG1hcmsgb3V0LW9mLWRhdGUgY29kZSwgc2F2aW5nIHlvdSBmcm9tIHVzaW5nCisgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1zbWMtY2hlY2s9YWxsPC9jb2RlPi48L3A+Cis8cD5BcGFydCBmcm9tIHRoaXMsIGluIHRoZW9yeSBWYWxncmluZCBjYW4gcnVuIGFueSBKYXZhIHByb2dyYW0KKyAgICBqdXN0IGZpbmUsIGV2ZW4gdGhvc2UgdGhhdCB1c2UgSk5JIGFuZCBhcmUgcGFydGlhbGx5IGltcGxlbWVudGVkIGluCisgICAgb3RoZXIgbGFuZ3VhZ2VzIGxpa2UgQyBhbmQgQysrLiAgSW4gcHJhY3RpY2UsIEphdmEgaW1wbGVtZW50YXRpb25zCisgICAgdGVuZCB0byBkbyBuYXN0eSB0aGluZ3MgdGhhdCBtb3N0IHByb2dyYW1zIGRvIG5vdCwgYW5kIFZhbGdyaW5kCisgICAgc29tZXRpbWVzIGZhbGxzIG92ZXIgdGhlc2UgY29ybmVyIGNhc2VzLjwvcD4KKzxwPklmIHlvdXIgSmF2YSBwcm9ncmFtcyBkbyBub3QgcnVuIHVuZGVyIFZhbGdyaW5kLCBldmVuIHdpdGgKKyAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXNtYy1jaGVjaz1hbGw8L2NvZGU+LCBwbGVhc2UgZmlsZSBhIGJ1ZyByZXBvcnQgYW5kCisgICAgaG9wZWZ1bGx5IHdlJ2xsIGJlIGFibGUgdG8gZml4IHRoZSBwcm9ibGVtLjwvcD4KKzwvdGQ+Cis8L3RyPgorPC90YWJsZT4KKzxicj48dGFibGUgd2lkdGg9IjEwMCUiIHN1bW1hcnk9IlEgYW5kIEEgRGl2IiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjIiIGJvcmRlcj0iMCI+Cis8dHIgY2xhc3M9InFhbmRhZGl2Ij48dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIiBjb2xzcGFuPSIyIj4KKzxhIG5hbWU9ImZhcS51bmV4cGVjdGVkIj48L2E+PGgzIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJmYXEudW5leHBlY3RlZCI+PC9hPjQuIFZhbGdyaW5kIGJlaGF2ZXMgdW5leHBlY3RlZGx5PC9oMz4KKzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0idG9jIiBjb2xzcGFuPSIyIj48dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIiBjb2xzcGFuPSIyIj40LjEuIDxhIGhyZWY9ImZhcS5odG1sI2ZhcS5yZXBvcnRzIj5NeSBwcm9ncmFtIHVzZXMgdGhlIEMrKyBTVEwgYW5kIHN0cmluZyBjbGFzc2VzLiAgVmFsZ3JpbmQKKyAgICByZXBvcnRzICdzdGlsbCByZWFjaGFibGUnIG1lbW9yeSBsZWFrcyBpbnZvbHZpbmcgdGhlc2UgY2xhc3NlcyBhdAorICAgIHRoZSBleGl0IG9mIHRoZSBwcm9ncmFtLCBidXQgdGhlcmUgc2hvdWxkIGJlIG5vbmUuPC9hPjxicj40LjIuIDxhIGhyZWY9ImZhcS5odG1sI2ZhcS51bmhlbHBmdWwiPlRoZSBzdGFjayB0cmFjZXMgZ2l2ZW4gYnkgTWVtY2hlY2sgKG9yIGFub3RoZXIgdG9vbCkgYXJlbid0CisgICAgaGVscGZ1bC4gIEhvdyBjYW4gSSBpbXByb3ZlIHRoZW0/PC9hPjxicj40LjMuIDxhIGhyZWY9ImZhcS5odG1sI2ZhcS5hbGlhc2VzIj5UaGUgc3RhY2sgdHJhY2VzIGdpdmVuIGJ5IE1lbWNoZWNrIChvciBhbm90aGVyIHRvb2wpIHNlZW0gdG8KKyAgICBoYXZlIHRoZSB3cm9uZyBmdW5jdGlvbiBuYW1lIGluIHRoZW0uICBXaGF0J3MgaGFwcGVuaW5nPzwvYT48YnI+NC40LiA8YSBocmVmPSJmYXEuaHRtbCNmYXEuY3Jhc2hlcyI+TXkgcHJvZ3JhbSBjcmFzaGVzIG5vcm1hbGx5LCBidXQgZG9lc24ndCB1bmRlciBWYWxncmluZCwgb3IgdmljZQorICAgIHZlcnNhLiAgV2hhdCdzIGhhcHBlbmluZz88L2E+PGJyPjQuNS4gPGEgaHJlZj0iZmFxLmh0bWwjZmFxLmhpZGRlbmJ1ZyI+IE1lbWNoZWNrIGRvZXNuJ3QgcmVwb3J0IGFueSBlcnJvcnMgYW5kIEkga25vdyBteSBwcm9ncmFtIGhhcworICAgIGVycm9ycy48L2E+PGJyPjQuNi4gPGEgaHJlZj0iZmFxLmh0bWwjZmFxLm92ZXJydW5zIj5XaHkgZG9lc24ndCBNZW1jaGVjayBmaW5kIHRoZSBhcnJheSBvdmVycnVucyBpbiB0aGlzCisgICAgcHJvZ3JhbT88L2E+PGJyPgorPC90ZD48L3RyPgorPHRyPjx0ZCBjb2xzcGFuPSIyIj6gPC90ZD48L3RyPgorPHRyIGNsYXNzPSJxdWVzdGlvbiI+Cis8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj4KKzxhIG5hbWU9ImZhcS5yZXBvcnRzIj48L2E+PGEgbmFtZT0icS1yZXBvcnRzIj48L2E+PGI+NC4xLjwvYj4KKzwvdGQ+Cis8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj48Yj5NeSBwcm9ncmFtIHVzZXMgdGhlIEMrKyBTVEwgYW5kIHN0cmluZyBjbGFzc2VzLiAgVmFsZ3JpbmQKKyAgICByZXBvcnRzICdzdGlsbCByZWFjaGFibGUnIG1lbW9yeSBsZWFrcyBpbnZvbHZpbmcgdGhlc2UgY2xhc3NlcyBhdAorICAgIHRoZSBleGl0IG9mIHRoZSBwcm9ncmFtLCBidXQgdGhlcmUgc2hvdWxkIGJlIG5vbmUuPC9iPjwvdGQ+Cis8L3RyPgorPHRyIGNsYXNzPSJhbnN3ZXIiPgorPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+PGEgbmFtZT0iYS1yZXBvcnRzIj48L2E+PC90ZD4KKzx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPgorPHA+Rmlyc3Qgb2YgYWxsOiByZWxheCwgaXQncyBwcm9iYWJseSBub3QgYSBidWcsIGJ1dCBhIGZlYXR1cmUuCisgICAgTWFueSBpbXBsZW1lbnRhdGlvbnMgb2YgdGhlIEMrKyBzdGFuZGFyZCBsaWJyYXJpZXMgdXNlIHRoZWlyIG93bgorICAgIG1lbW9yeSBwb29sIGFsbG9jYXRvcnMuICBNZW1vcnkgZm9yIHF1aXRlIGEgbnVtYmVyIG9mIGRlc3RydWN0ZWQKKyAgICBvYmplY3RzIGlzIG5vdCBpbW1lZGlhdGVseSBmcmVlZCBhbmQgZ2l2ZW4gYmFjayB0byB0aGUgT1MsIGJ1dCBrZXB0CisgICAgaW4gdGhlIHBvb2wocykgZm9yIGxhdGVyIHJlLXVzZS4gIFRoZSBmYWN0IHRoYXQgdGhlIHBvb2xzIGFyZSBub3QKKyAgICBmcmVlZCBhdCB0aGUgZXhpdCBvZiB0aGUgcHJvZ3JhbSBjYXVzZSBWYWxncmluZCB0byByZXBvcnQgdGhpcworICAgIG1lbW9yeSBhcyBzdGlsbCByZWFjaGFibGUuICBUaGUgYmVoYXZpb3VyIG5vdCB0byBmcmVlIHBvb2xzIGF0IHRoZQorICAgIGV4aXQgY291bGQgYmUgY2FsbGVkIGEgYnVnIG9mIHRoZSBsaWJyYXJ5IHRob3VnaC48L3A+Cis8cD5Vc2luZyBHQ0MsIHlvdSBjYW4gZm9yY2UgdGhlIFNUTCB0byB1c2UgbWFsbG9jIGFuZCB0byBmcmVlCisgICAgbWVtb3J5IGFzIHNvb24gYXMgcG9zc2libGUgYnkgZ2xvYmFsbHkgZGlzYWJsaW5nIG1lbW9yeSBjYWNoaW5nLgorICAgIEJld2FyZSEgIERvaW5nIHNvIHdpbGwgcHJvYmFibHkgc2xvdyBkb3duIHlvdXIgcHJvZ3JhbSwgc29tZXRpbWVzCisgICAgZHJhc3RpY2FsbHkuPC9wPgorPGRpdiBjbGFzcz0iaXRlbWl6ZWRsaXN0Ij48dWwgY2xhc3M9Iml0ZW1pemVkbGlzdCIgc3R5bGU9Imxpc3Qtc3R5bGUtdHlwZTogZGlzYzsgIj4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPldpdGggR0NDIDIuOTEsIDIuOTUsIDMuMCBhbmQgMy4xLCBjb21waWxlIGFsbCBzb3VyY2UgdXNpbmcKKyAgICAgICAgdGhlIFNUTCB3aXRoIDxjb2RlIGNsYXNzPSJsaXRlcmFsIj4tRF9fVVNFX01BTExPQzwvY29kZT4uIEJld2FyZSEgIFRoaXMgd2FzCisgICAgICAgIHJlbW92ZWQgZnJvbSBHQ0Mgc3RhcnRpbmcgd2l0aCB2ZXJzaW9uIDMuMy48L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPldpdGggR0NDIDMuMi4yIGFuZCBsYXRlciwgeW91IHNob3VsZCBleHBvcnQgdGhlCisgICAgICAgIGVudmlyb25tZW50IHZhcmlhYmxlIDxjb2RlIGNsYXNzPSJsaXRlcmFsIj5HTElCQ1BQX0ZPUkNFX05FVzwvY29kZT4gYmVmb3JlCisgICAgICAgIHJ1bm5pbmcgeW91ciBwcm9ncmFtLjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+V2l0aCBHQ0MgMy40IGFuZCBsYXRlciwgdGhhdCB2YXJpYWJsZSBoYXMgY2hhbmdlZCBuYW1lIHRvCisgICAgICAgIDxjb2RlIGNsYXNzPSJsaXRlcmFsIj5HTElCQ1hYX0ZPUkNFX05FVzwvY29kZT4uPC9wPjwvbGk+Cis8L3VsPjwvZGl2PgorPHA+VGhlcmUgYXJlIG90aGVyIHdheXMgdG8gZGlzYWJsZSBtZW1vcnkgcG9vbGluZzogdXNpbmcgdGhlCisgICAgPGNvZGUgY2xhc3M9ImxpdGVyYWwiPm1hbGxvY19hbGxvYzwvY29kZT4gdGVtcGxhdGUgd2l0aCB5b3VyIG9iamVjdHMgKG5vdAorICAgIHBvcnRhYmxlLCBidXQgc2hvdWxkIHdvcmsgZm9yIEdDQykgb3IgZXZlbiB3cml0aW5nIHlvdXIgb3duIG1lbW9yeQorICAgIGFsbG9jYXRvcnMuIEJ1dCBhbGwgdGhpcyBnb2VzIGJleW9uZCB0aGUgc2NvcGUgb2YgdGhpcyBGQVEuICBTdGFydAorICAgIGJ5IHJlYWRpbmcgCisgICAgPGEgY2xhc3M9InVsaW5rIiBocmVmPSJodHRwOi8vZ2NjLmdudS5vcmcvb25saW5lZG9jcy9saWJzdGRjKysvZmFxL2luZGV4Lmh0bWwjNF80X2xlYWsiIHRhcmdldD0iX3RvcCI+CisgICAgICAgICBodHRwOi8vZ2NjLmdudS5vcmcvb25saW5lZG9jcy9saWJzdGRjKysvZmFxL2luZGV4Lmh0bWwjNF80X2xlYWs8L2E+CisgICAgaWYgeW91IGFic29sdXRlbHkgd2FudCB0byBkbyB0aGF0LiBCdXQgYmV3YXJlOiAKKyAgICBhbGxvY2F0b3JzIGJlbG9uZyB0byB0aGUgbW9yZSBtZXNzeSBwYXJ0cyBvZiB0aGUgU1RMIGFuZAorICAgIHBlb3BsZSB3ZW50IHRvIGdyZWF0IGxlbmd0aHMgdG8gbWFrZSB0aGUgU1RMIHBvcnRhYmxlIGFjcm9zcworICAgIHBsYXRmb3Jtcy4gQ2hhbmNlcyBhcmUgZ29vZCB0aGF0IHlvdXIgc29sdXRpb24gd2lsbCB3b3JrIG9uIHlvdXIKKyAgICBwbGF0Zm9ybSwgYnV0IG5vdCBvbiBvdGhlcnMuPC9wPgorPC90ZD4KKzwvdHI+Cis8dHI+PHRkIGNvbHNwYW49IjIiPqA8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InF1ZXN0aW9uIj4KKzx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPgorPGEgbmFtZT0iZmFxLnVuaGVscGZ1bCI+PC9hPjxhIG5hbWU9InEtdW5oZWxwZnVsIj48L2E+PGI+NC4yLjwvYj4KKzwvdGQ+Cis8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj48Yj5UaGUgc3RhY2sgdHJhY2VzIGdpdmVuIGJ5IE1lbWNoZWNrIChvciBhbm90aGVyIHRvb2wpIGFyZW4ndAorICAgIGhlbHBmdWwuICBIb3cgY2FuIEkgaW1wcm92ZSB0aGVtPzwvYj48L3RkPgorPC90cj4KKzx0ciBjbGFzcz0iYW5zd2VyIj4KKzx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjxhIG5hbWU9ImEtdW5oZWxwZnVsIj48L2E+PC90ZD4KKzx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPgorPHA+SWYgdGhleSdyZSBub3QgbG9uZyBlbm91Z2gsIHVzZSA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLW51bS1jYWxsZXJzPC9jb2RlPgorICAgIHRvIG1ha2UgdGhlbSBsb25nZXIuPC9wPgorPHA+SWYgdGhleSdyZSBub3QgZGV0YWlsZWQgZW5vdWdoLCBtYWtlIHN1cmUgeW91IGFyZSBjb21waWxpbmcKKyAgICB3aXRoIDxjb2RlIGNsYXNzPSJvcHRpb24iPi1nPC9jb2RlPiB0byBhZGQgZGVidWcgaW5mb3JtYXRpb24uICBBbmQgZG9uJ3Qgc3RyaXAKKyAgICBzeW1ib2wgdGFibGVzIChwcm9ncmFtcyBzaG91bGQgYmUgdW5zdHJpcHBlZCB1bmxlc3MgeW91IHJ1biAnc3RyaXAnCisgICAgb24gdGhlbTsgc29tZSBsaWJyYXJpZXMgc2hpcCBzdHJpcHBlZCkuPC9wPgorPHA+QWxzbywgZm9yIGxlYWsgcmVwb3J0cyBpbnZvbHZpbmcgc2hhcmVkIG9iamVjdHMsIGlmIHRoZSBzaGFyZWQKKyAgICBvYmplY3QgaXMgdW5sb2FkZWQgYmVmb3JlIHRoZSBwcm9ncmFtIHRlcm1pbmF0ZXMsIFZhbGdyaW5kIHdpbGwKKyAgICBkaXNjYXJkIHRoZSBkZWJ1ZyBpbmZvcm1hdGlvbiBhbmQgdGhlIGVycm9yIG1lc3NhZ2Ugd2lsbCBiZSBmdWxsIG9mCisgICAgPGNvZGUgY2xhc3M9ImxpdGVyYWwiPj8/PzwvY29kZT4gZW50cmllcy4gIFRoZSB3b3JrYXJvdW5kIGhlcmUgaXMgdG8gYXZvaWQKKyAgICBjYWxsaW5nIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+ZGxjbG9zZTwvY29kZT4gb24gdGhlc2Ugc2hhcmVkIG9iamVjdHMuPC9wPgorPHA+QWxzbywgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LWZvbWl0LWZyYW1lLXBvaW50ZXI8L2NvZGU+IGFuZAorICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi1mc3RhY2stY2hlY2s8L2NvZGU+IGNhbiBtYWtlIHN0YWNrIHRyYWNlcyB3b3JzZS48L3A+Cis8cD5Tb21lIGV4YW1wbGUgc3ViLXRyYWNlczo8L3A+Cis8ZGl2IGNsYXNzPSJpdGVtaXplZGxpc3QiPjx1bCBjbGFzcz0iaXRlbWl6ZWRsaXN0IiBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOiBkaXNjOyAiPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+Cis8cD5XaXRoIGRlYnVnIGluZm9ybWF0aW9uIGFuZCB1bnN0cmlwcGVkIChiZXN0KTo8L3A+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CitJbnZhbGlkIHdyaXRlIG9mIHNpemUgMQorICAgYXQgMHg4MDQ4M0JGOiByZWFsbHkgKG1hbGxvYzEuYzoyMCkKKyAgIGJ5IDB4ODA0ODM3MDogbWFpbiAobWFsbG9jMS5jOjkpCis8L3ByZT4KKzwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj4KKzxwPldpdGggbm8gZGVidWcgaW5mb3JtYXRpb24sIHVuc3RyaXBwZWQ6PC9wPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPgorSW52YWxpZCB3cml0ZSBvZiBzaXplIDEKKyAgIGF0IDB4ODA0ODNCRjogcmVhbGx5IChpbiAvYXV0by9ob21lcy9uam4yNS9ncmluZC9oZWFkNS9hLm91dCkKKyAgIGJ5IDB4ODA0ODM3MDogbWFpbiAoaW4gL2F1dG8vaG9tZXMvbmpuMjUvZ3JpbmQvaGVhZDUvYS5vdXQpCis8L3ByZT4KKzwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj4KKzxwPldpdGggbm8gZGVidWcgaW5mb3JtYXRpb24sIHN0cmlwcGVkOjwvcD4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KK0ludmFsaWQgd3JpdGUgb2Ygc2l6ZSAxCisgICBhdCAweDgwNDgzQkY6ICh3aXRoaW4gL2F1dG8vaG9tZXMvbmpuMjUvZ3JpbmQvaGVhZDUvYS5vdXQpCisgICBieSAweDgwNDgzNzA6ICh3aXRoaW4gL2F1dG8vaG9tZXMvbmpuMjUvZ3JpbmQvaGVhZDUvYS5vdXQpCisgICBieSAweDQyMDE1NzAzOiBfX2xpYmNfc3RhcnRfbWFpbiAoaW4gL2xpYi90bHMvbGliYy0yLjMuMi5zbykKKyAgIGJ5IDB4ODA0ODJDQzogKHdpdGhpbiAvYXV0by9ob21lcy9uam4yNS9ncmluZC9oZWFkNS9hLm91dCkKKzwvcHJlPgorPC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPgorPHA+V2l0aCBkZWJ1ZyBpbmZvcm1hdGlvbiBhbmQgLWZvbWl0LWZyYW1lLXBvaW50ZXI6PC9wPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPgorSW52YWxpZCB3cml0ZSBvZiBzaXplIDEKKyAgIGF0IDB4ODA0ODNDNDogcmVhbGx5IChtYWxsb2MxLmM6MjApCisgICBieSAweDQyMDE1NzAzOiBfX2xpYmNfc3RhcnRfbWFpbiAoaW4gL2xpYi90bHMvbGliYy0yLjMuMi5zbykKKyAgIGJ5IDB4ODA0ODJDQzogPz8/IChzdGFydC5TOjgxKQorPC9wcmU+Cis8L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+Cis8cD5BIGxlYWsgZXJyb3IgbWVzc2FnZSBpbnZvbHZpbmcgYW4gdW5sb2FkZWQgc2hhcmVkIG9iamVjdDo8L3A+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Cis4NCBieXRlcyBpbiAxIGJsb2NrcyBhcmUgcG9zc2libHkgbG9zdCBpbiBsb3NzIHJlY29yZCA0ODggb2YgNzEzCisgICBhdCAweDFCOTAzNkRBOiBvcGVyYXRvciBuZXcodW5zaWduZWQpICh2Z19yZXBsYWNlX21hbGxvYy5jOjEzMikKKyAgIGJ5IDB4MURCNjNFRUI6ID8/PworICAgYnkgMHgxREI0QjgwMDogPz8/CisgICBieSAweDFENjVFMDA3OiA/Pz8KKyAgIGJ5IDB4ODA0OUVFNjogbWFpbiAobWFpbi5jcHA6MjQpCis8L3ByZT4KKzwvbGk+Cis8L3VsPjwvZGl2PgorPC90ZD4KKzwvdHI+Cis8dHI+PHRkIGNvbHNwYW49IjIiPqA8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InF1ZXN0aW9uIj4KKzx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPgorPGEgbmFtZT0iZmFxLmFsaWFzZXMiPjwvYT48YSBuYW1lPSJxLWFsaWFzZXMiPjwvYT48Yj40LjMuPC9iPgorPC90ZD4KKzx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjxiPlRoZSBzdGFjayB0cmFjZXMgZ2l2ZW4gYnkgTWVtY2hlY2sgKG9yIGFub3RoZXIgdG9vbCkgc2VlbSB0bworICAgIGhhdmUgdGhlIHdyb25nIGZ1bmN0aW9uIG5hbWUgaW4gdGhlbS4gIFdoYXQncyBoYXBwZW5pbmc/PC9iPjwvdGQ+Cis8L3RyPgorPHRyIGNsYXNzPSJhbnN3ZXIiPgorPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+PGEgbmFtZT0iYS1hbGlhc2VzIj48L2E+PC90ZD4KKzx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjxwPk9jY2FzaW9uYWxseSBWYWxncmluZCBzdGFjayB0cmFjZXMgZ2V0IHRoZSB3cm9uZyBmdW5jdGlvbgorICAgIG5hbWVzLiAgVGhpcyBpcyBjYXVzZWQgYnkgZ2xpYmMgdXNpbmcgYWxpYXNlcyB0byBlZmZlY3RpdmVseSBnaXZlCisgICAgb25lIGZ1bmN0aW9uIHR3byBuYW1lcy4gIE1vc3Qgb2YgdGhlIHRpbWUgVmFsZ3JpbmQgY2hvb3NlcyBhCisgICAgc3VpdGFibGUgbmFtZSwgYnV0IHZlcnkgb2NjYXNpb25hbGx5IGl0IGdldHMgaXQgd3JvbmcuICBFeGFtcGxlcyB3ZSBrbm93CisgICAgb2YgYXJlIHByaW50aW5nIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+YmNtcDwvY29kZT4gaW5zdGVhZCBvZgorICAgIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+bWVtY21wPC9jb2RlPiwgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5pbmRleDwvY29kZT4gaW5zdGVhZCBvZgorICAgIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+c3RyY2hyPC9jb2RlPiwgYW5kIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+cmluZGV4PC9jb2RlPiBpbnN0ZWFkIG9mCisgICAgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5zdHJyY2hyPC9jb2RlPi48L3A+PC90ZD4KKzwvdHI+Cis8dHI+PHRkIGNvbHNwYW49IjIiPqA8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InF1ZXN0aW9uIj4KKzx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPgorPGEgbmFtZT0iZmFxLmNyYXNoZXMiPjwvYT48YSBuYW1lPSJxLWNyYXNoZXMiPjwvYT48Yj40LjQuPC9iPgorPC90ZD4KKzx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjxiPk15IHByb2dyYW0gY3Jhc2hlcyBub3JtYWxseSwgYnV0IGRvZXNuJ3QgdW5kZXIgVmFsZ3JpbmQsIG9yIHZpY2UKKyAgICB2ZXJzYS4gIFdoYXQncyBoYXBwZW5pbmc/PC9iPjwvdGQ+Cis8L3RyPgorPHRyIGNsYXNzPSJhbnN3ZXIiPgorPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+PGEgbmFtZT0iYS1jcmFzaGVzIj48L2E+PC90ZD4KKzx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPgorPHA+V2hlbiBhIHByb2dyYW0gcnVucyB1bmRlciBWYWxncmluZCwgaXRzIGVudmlyb25tZW50IGlzIHNsaWdodGx5CisgICAgZGlmZmVyZW50IHRvIHdoZW4gaXQgcnVucyBuYXRpdmVseS4gIEZvciBleGFtcGxlLCB0aGUgbWVtb3J5IGxheW91dCBpcworICAgIGRpZmZlcmVudCwgYW5kIHRoZSB3YXkgdGhhdCB0aHJlYWRzIGFyZSBzY2hlZHVsZWQgaXMgZGlmZmVyZW50LjwvcD4KKzxwPk1vc3Qgb2YgdGhlIHRpbWUgdGhpcyBkb2Vzbid0IG1ha2UgYW55IGRpZmZlcmVuY2UsIGJ1dCBpdCBjYW4sCisgICAgcGFydGljdWxhcmx5IGlmIHlvdXIgcHJvZ3JhbSBpcyBidWdneS4gIEZvciBleGFtcGxlLCBpZiB5b3VyIHByb2dyYW0KKyAgICBjcmFzaGVzIGJlY2F1c2UgaXQgZXJyb25lb3VzbHkgYWNjZXNzZXMgbWVtb3J5IHRoYXQgaXMgdW5hZGRyZXNzYWJsZSwKKyAgICBpdCdzIHBvc3NpYmxlIHRoYXQgdGhpcyBtZW1vcnkgd2lsbCBub3QgYmUgdW5hZGRyZXNzYWJsZSB3aGVuIHJ1biB1bmRlcgorICAgIFZhbGdyaW5kLiAgQWx0ZXJuYXRpdmVseSwgaWYgeW91ciBwcm9ncmFtIGhhcyBkYXRhIHJhY2VzLCB0aGVzZSBtYXkgbm90CisgICAgbWFuaWZlc3QgdW5kZXIgVmFsZ3JpbmQuPC9wPgorPHA+VGhlcmUgaXNuJ3QgYW55dGhpbmcgeW91IGNhbiBkbyB0byBjaGFuZ2UgdGhpcywgaXQncyBqdXN0IHRoZQorICAgIG5hdHVyZSBvZiB0aGUgd2F5IFZhbGdyaW5kIHdvcmtzIHRoYXQgaXQgY2Fubm90IGV4YWN0bHkgcmVwbGljYXRlIGEKKyAgICBuYXRpdmUgZXhlY3V0aW9uIGVudmlyb25tZW50LiAgSW4gdGhlIGNhc2Ugd2hlcmUgeW91ciBwcm9ncmFtIGNyYXNoZXMKKyAgICBkdWUgdG8gYSBtZW1vcnkgZXJyb3Igd2hlbiBydW4gbmF0aXZlbHkgYnV0IG5vdCB3aGVuIHJ1biB1bmRlciBWYWxncmluZCwKKyAgICBpbiBtb3N0IGNhc2VzIE1lbWNoZWNrIHNob3VsZCBpZGVudGlmeSB0aGUgYmFkIG1lbW9yeSBvcGVyYXRpb24uPC9wPgorPC90ZD4KKzwvdHI+Cis8dHI+PHRkIGNvbHNwYW49IjIiPqA8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InF1ZXN0aW9uIj4KKzx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPgorPGEgbmFtZT0iZmFxLmhpZGRlbmJ1ZyI+PC9hPjxhIG5hbWU9InEtaGlkZGVuYnVnIj48L2E+PGI+NC41LjwvYj4KKzwvdGQ+Cis8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj48Yj4gTWVtY2hlY2sgZG9lc24ndCByZXBvcnQgYW55IGVycm9ycyBhbmQgSSBrbm93IG15IHByb2dyYW0gaGFzCisgICAgZXJyb3JzLjwvYj48L3RkPgorPC90cj4KKzx0ciBjbGFzcz0iYW5zd2VyIj4KKzx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjxhIG5hbWU9ImEtaGlkZGVuYnVnIj48L2E+PC90ZD4KKzx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPgorPHA+VGhlcmUgYXJlIHR3byBwb3NzaWJsZSBjYXVzZXMgb2YgdGhpcy48L3A+Cis8cD5GaXJzdCwgYnkgZGVmYXVsdCwgVmFsZ3JpbmQgb25seSB0cmFjZXMgdGhlIHRvcC1sZXZlbCBwcm9jZXNzLgorICAgIFNvIGlmIHlvdXIgcHJvZ3JhbSBzcGF3bnMgY2hpbGRyZW4sIHRoZXkgd29uJ3QgYmUgdHJhY2VkIGJ5IFZhbGdyaW5kCisgICAgYnkgZGVmYXVsdC4gIEFsc28sIGlmIHlvdXIgcHJvZ3JhbSBpcyBzdGFydGVkIGJ5IGEgc2hlbGwgc2NyaXB0LAorICAgIFBlcmwgc2NyaXB0LCBvciBzb21ldGhpbmcgc2ltaWxhciwgVmFsZ3JpbmQgd2lsbCB0cmFjZSB0aGUgc2hlbGwsIG9yCisgICAgdGhlIFBlcmwgaW50ZXJwcmV0ZXIsIG9yIGVxdWl2YWxlbnQuPC9wPgorPHA+VG8gdHJhY2UgY2hpbGQgcHJvY2Vzc2VzLCB1c2UgdGhlCisgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS10cmFjZS1jaGlsZHJlbj15ZXM8L2NvZGU+IG9wdGlvbi48L3A+Cis8cD5JZiB5b3UgYXJlIHRyYWNpbmcgbGFyZ2UgdHJlZXMgb2YgcHJvY2Vzc2VzLCBpdCBjYW4gYmUgbGVzcworICAgIGRpc3J1cHRpdmUgdG8gaGF2ZSB0aGUgb3V0cHV0IHNlbnQgb3ZlciB0aGUgbmV0d29yay4gIEdpdmUgVmFsZ3JpbmQKKyAgICB0aGUgb3B0aW9uIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tbG9nLXNvY2tldD0xMjcuMC4wLjE6MTIzNDU8L2NvZGU+IChpZiB5b3Ugd2FudAorICAgIGxvZ2dpbmcgb3V0cHV0IHNlbnQgdG8gcG9ydCA8Y29kZSBjbGFzcz0ibGl0ZXJhbCI+MTIzNDU8L2NvZGU+IG9uCisgICAgPGNvZGUgY2xhc3M9ImxpdGVyYWwiPmxvY2FsaG9zdDwvY29kZT4pLiAgWW91IGNhbiB1c2UgdGhlIHZhbGdyaW5kLWxpc3RlbmVyCisgICAgcHJvZ3JhbSB0byBsaXN0ZW4gb24gdGhhdCBwb3J0OjwvcD4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KK3ZhbGdyaW5kLWxpc3RlbmVyIDEyMzQ1Cis8L3ByZT4KKzxwPk9idmlvdXNseSB5b3UgaGF2ZSB0byBzdGFydCB0aGUgbGlzdGVuZXIgcHJvY2VzcyBmaXJzdC4gIFNlZQorICAgIHRoZSBtYW51YWwgZm9yIG1vcmUgZGV0YWlscy48L3A+Cis8cD5TZWNvbmQsIGlmIHlvdXIgcHJvZ3JhbSBpcyBzdGF0aWNhbGx5IGxpbmtlZCwgbW9zdCBWYWxncmluZAorICAgIHRvb2xzIHdpbGwgb25seSB3b3JrIHdlbGwgaWYgdGhleSBhcmUgYWJsZSB0byByZXBsYWNlIGNlcnRhaW4KKyAgICBmdW5jdGlvbnMsIHN1Y2ggYXMgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5tYWxsb2M8L2NvZGU+LCB3aXRoIHRoZWlyIG93bgorICAgIHZlcnNpb25zLiAgQnkgZGVmYXVsdCwgc3RhdGljYWxseSBsaW5rZWQgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5tYWxsb2MKKyAgICBmdW5jdGlvbnM8L2NvZGU+IGFyZSBub3QgcmVwbGFjZWQuIEEga2V5IGluZGljYXRvciBvZiB0aGlzIGlzCisgICAgaWYgTWVtY2hlY2sgc2F5czoKKzwvcD4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KK0FsbCBoZWFwIGJsb2NrcyB3ZXJlIGZyZWVkIC0tIG5vIGxlYWtzIGFyZSBwb3NzaWJsZQorPC9wcmU+Cis8cD4KKyAgICB3aGVuIHlvdSBrbm93IHlvdXIgcHJvZ3JhbSBjYWxscyA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPm1hbGxvYzwvY29kZT4uICBUaGUKKyAgICB3b3JrYXJvdW5kIGlzIHRvIHVzZSB0aGUgb3B0aW9uIAorICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tc29uYW1lLXN5bm9ueW1zPXNvbWFsbG9jPU5PTkU8L2NvZGU+CisgICAgb3IgdG8gYXZvaWQgc3RhdGljYWxseSBsaW5raW5nIHlvdXIgcHJvZ3JhbS48L3A+Cis8cD5UaGVyZSB3aWxsIGFsc28gYmUgbm8gcmVwbGFjZW1lbnQgaWYgeW91IHVzZSBhbiBhbHRlcm5hdGl2ZSAKKyAgICA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPm1hbGxvYyBsaWJyYXJ5PC9jb2RlPiBzdWNoIGFzIHRjbWFsbG9jLCBqZW1hbGxvYywKKyAgICAuLi4gIEluIHN1Y2ggYSBjYXNlLCB0aGUKKyAgICBvcHRpb24gPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1zb25hbWUtc3lub255bXM9c29tYWxsb2M9enp6ejwvY29kZT4gKHdoZXJlCisgICAgenp6eiBpcyB0aGUgc29uYW1lIG9mIHRoZSBhbHRlcm5hdGl2ZSBtYWxsb2MgbGlicmFyeSkgd2lsbCBhbGxvdworICAgIFZhbGdyaW5kIHRvIHJlcGxhY2UgdGhlIGZ1bmN0aW9ucy48L3A+Cis8L3RkPgorPC90cj4KKzx0cj48dGQgY29sc3Bhbj0iMiI+oDwvdGQ+PC90cj4KKzx0ciBjbGFzcz0icXVlc3Rpb24iPgorPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+Cis8YSBuYW1lPSJmYXEub3ZlcnJ1bnMiPjwvYT48YSBuYW1lPSJxLW92ZXJydW5zIj48L2E+PGI+NC42LjwvYj4KKzwvdGQ+Cis8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj4KKzxiPldoeSBkb2Vzbid0IE1lbWNoZWNrIGZpbmQgdGhlIGFycmF5IG92ZXJydW5zIGluIHRoaXMKKyAgICBwcm9ncmFtPzwvYj48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CitpbnQgc3RhdGljWzVdOworCitpbnQgbWFpbih2b2lkKQoreworICBpbnQgc3RhY2tbNV07CisKKyAgc3RhdGljWzVdID0gMDsKKyAgc3RhY2sgWzVdID0gMDsKKyAgICAgICAgICAKKyAgcmV0dXJuIDA7Cit9Cis8L3ByZT4KKzwvdGQ+Cis8L3RyPgorPHRyIGNsYXNzPSJhbnN3ZXIiPgorPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+PGEgbmFtZT0iYS1vdmVycnVucyI+PC9hPjwvdGQ+Cis8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj4KKzxwPlVuZm9ydHVuYXRlbHksIE1lbWNoZWNrIGRvZXNuJ3QgZG8gYm91bmRzIGNoZWNraW5nIG9uIGdsb2JhbAorICAgIG9yIHN0YWNrIGFycmF5cy4gIFdlJ2QgbGlrZSB0bywgYnV0IGl0J3MganVzdCBub3QgcG9zc2libGUgdG8gZG8gaW4KKyAgICBhIHJlYXNvbmFibGUgd2F5IHRoYXQgZml0cyB3aXRoIGhvdyBNZW1jaGVjayB3b3Jrcy4gIFNvcnJ5LjwvcD4KKzxwPkhvd2V2ZXIsIHRoZSBleHBlcmltZW50YWwgdG9vbCBTR2NoZWNrIGNhbiBkZXRlY3QgZXJyb3JzIGxpa2UKKyAgICB0aGlzLiAgUnVuIFZhbGdyaW5kIHdpdGggdGhlIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tdG9vbD1leHAtc2djaGVjazwvY29kZT4gb3B0aW9uCisgICAgdG8gdHJ5IGl0LCBidXQgYmUgYXdhcmUgdGhhdCBpdCBpcyBub3QgYXMgcm9idXN0IGFzIE1lbWNoZWNrLjwvcD4KKzwvdGQ+Cis8L3RyPgorPC90YWJsZT4KKzxicj48dGFibGUgd2lkdGg9IjEwMCUiIHN1bW1hcnk9IlEgYW5kIEEgRGl2IiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjIiIGJvcmRlcj0iMCI+Cis8dHIgY2xhc3M9InFhbmRhZGl2Ij48dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIiBjb2xzcGFuPSIyIj4KKzxhIG5hbWU9ImZhcS5taXNjIj48L2E+PGgzIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJmYXEubWlzYyI+PC9hPjUuIE1pc2NlbGxhbmVvdXM8L2gzPgorPC90ZD48L3RyPgorPHRyIGNsYXNzPSJ0b2MiIGNvbHNwYW49IjIiPjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiIGNvbHNwYW49IjIiPjUuMS4gPGEgaHJlZj0iZmFxLmh0bWwjZmFxLndyaXRlc3VwcCI+SSB0cmllZCB3cml0aW5nIGEgc3VwcHJlc3Npb24gYnV0IGl0IGRpZG4ndCB3b3JrLiAgQ2FuIHlvdQorICAgIHdyaXRlIG15IHN1cHByZXNzaW9uIGZvciBtZT88L2E+PGJyPjUuMi4gPGEgaHJlZj0iZmFxLmh0bWwjZmFxLmRlZmxvc3QiPldpdGggTWVtY2hlY2sncyBtZW1vcnkgbGVhayBkZXRlY3Rvciwgd2hhdCdzIHRoZQorICAgIGRpZmZlcmVuY2UgYmV0d2VlbiAiZGVmaW5pdGVseSBsb3N0IiwgImluZGlyZWN0bHkgbG9zdCIsICJwb3NzaWJseQorICAgIGxvc3QiLCAic3RpbGwgcmVhY2hhYmxlIiwgYW5kICJzdXBwcmVzc2VkIj88L2E+PGJyPjUuMy4gPGEgaHJlZj0iZmFxLmh0bWwjZmFxLnVuZGVmZXJyb3JzIj5NZW1jaGVjaydzIHVuaW5pdGlhbGlzZWQgdmFsdWUgZXJyb3JzIGFyZSBoYXJkIHRvIHRyYWNrIGRvd24sCisgICAgYmVjYXVzZSB0aGV5IGFyZSBvZnRlbiByZXBvcnRlZCBzb21lIHRpbWUgYWZ0ZXIgdGhleSBhcmUgY2F1c2VkLiAgQ291bGQgCisgICAgTWVtY2hlY2sgcmVjb3JkIGEgdHJhaWwgb2Ygb3BlcmF0aW9ucyB0byBiZXR0ZXIgbGluayB0aGUgY2F1c2UgdG8gdGhlCisgICAgZWZmZWN0PyAgT3IgbWF5YmUganVzdCBlYWdlcmx5IHJlcG9ydCBhbnkgY29waWVzIG9mIHVuaW5pdGlhbGlzZWQKKyAgICBtZW1vcnkgdmFsdWVzPzwvYT48YnI+NS40LiA8YSBocmVmPSJmYXEuaHRtbCNmYXEuYXR0YWNoIj5JcyBpdCBwb3NzaWJsZSB0byBhdHRhY2ggVmFsZ3JpbmQgdG8gYSBwcm9ncmFtIHRoYXQgaXMgYWxyZWFkeQorICAgIHJ1bm5pbmc/PC9hPjxicj4KKzwvdGQ+PC90cj4KKzx0cj48dGQgY29sc3Bhbj0iMiI+oDwvdGQ+PC90cj4KKzx0ciBjbGFzcz0icXVlc3Rpb24iPgorPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+Cis8YSBuYW1lPSJmYXEud3JpdGVzdXBwIj48L2E+PGEgbmFtZT0icS13cml0ZXN1cHAiPjwvYT48Yj41LjEuPC9iPgorPC90ZD4KKzx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjxiPkkgdHJpZWQgd3JpdGluZyBhIHN1cHByZXNzaW9uIGJ1dCBpdCBkaWRuJ3Qgd29yay4gIENhbiB5b3UKKyAgICB3cml0ZSBteSBzdXBwcmVzc2lvbiBmb3IgbWU/PC9iPjwvdGQ+Cis8L3RyPgorPHRyIGNsYXNzPSJhbnN3ZXIiPgorPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+PGEgbmFtZT0iYS13cml0ZXN1cHAiPjwvYT48L3RkPgorPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+Cis8cD5ZZXMhICBVc2UgdGhlIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tZ2VuLXN1cHByZXNzaW9ucz15ZXM8L2NvZGU+IGZlYXR1cmUKKyAgICB0byBzcGl0IG91dCBzdXBwcmVzc2lvbnMgYXV0b21hdGljYWxseSBmb3IgeW91LiAgWW91IGNhbiB0aGVuIGVkaXQKKyAgICB0aGVtIGlmIHlvdSBsaWtlLCBlZy4gIGNvbWJpbmluZyBzaW1pbGFyIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkCisgICAgc3VwcHJlc3Npb25zIHVzaW5nIHdpbGRjYXJkcyBsaWtlIDxjb2RlIGNsYXNzPSJsaXRlcmFsIj4nKic8L2NvZGU+LjwvcD4KKzxwPklmIHlvdSByZWFsbHkgd2FudCB0byB3cml0ZSBzdXBwcmVzc2lvbnMgYnkgaGFuZCwgcmVhZCB0aGUKKyAgICBtYW51YWwgY2FyZWZ1bGx5LiAgTm90ZSBwYXJ0aWN1bGFybHkgdGhhdCBDKysgZnVuY3Rpb24gbmFtZXMgbXVzdCBiZQorICAgIG1hbmdsZWQgKHRoYXQgaXMsIG5vdCBkZW1hbmdsZWQpLjwvcD4KKzwvdGQ+Cis8L3RyPgorPHRyPjx0ZCBjb2xzcGFuPSIyIj6gPC90ZD48L3RyPgorPHRyIGNsYXNzPSJxdWVzdGlvbiI+Cis8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj4KKzxhIG5hbWU9ImZhcS5kZWZsb3N0Ij48L2E+PGEgbmFtZT0icS1kZWZsb3N0Ij48L2E+PGI+NS4yLjwvYj4KKzwvdGQ+Cis8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj48Yj5XaXRoIE1lbWNoZWNrJ3MgbWVtb3J5IGxlYWsgZGV0ZWN0b3IsIHdoYXQncyB0aGUKKyAgICBkaWZmZXJlbmNlIGJldHdlZW4gImRlZmluaXRlbHkgbG9zdCIsICJpbmRpcmVjdGx5IGxvc3QiLCAicG9zc2libHkKKyAgICBsb3N0IiwgInN0aWxsIHJlYWNoYWJsZSIsIGFuZCAic3VwcHJlc3NlZCI/PC9iPjwvdGQ+Cis8L3RyPgorPHRyIGNsYXNzPSJhbnN3ZXIiPgorPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+PGEgbmFtZT0iYS1kZWZsb3N0Ij48L2E+PC90ZD4KKzx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPgorPHA+VGhlIGRldGFpbHMgYXJlIGluIHRoZSBNZW1jaGVjayBzZWN0aW9uIG9mIHRoZSB1c2VyIG1hbnVhbC48L3A+Cis8cD5JbiBzaG9ydDo8L3A+Cis8ZGl2IGNsYXNzPSJpdGVtaXplZGxpc3QiPjx1bCBjbGFzcz0iaXRlbWl6ZWRsaXN0IiBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOiBkaXNjOyAiPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+ImRlZmluaXRlbHkgbG9zdCIgbWVhbnMgeW91ciBwcm9ncmFtIGlzIGxlYWtpbmcgbWVtb3J5IC0tCisgICAgICAgIGZpeCB0aG9zZSBsZWFrcyE8L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPiJpbmRpcmVjdGx5IGxvc3QiIG1lYW5zIHlvdXIgcHJvZ3JhbSBpcyBsZWFraW5nIG1lbW9yeSBpbgorICAgICAgICBhIHBvaW50ZXItYmFzZWQgc3RydWN0dXJlLiAgKEUuZy4gaWYgdGhlIHJvb3Qgbm9kZSBvZiBhIGJpbmFyeSB0cmVlCisgICAgICAgIGlzICJkZWZpbml0ZWx5IGxvc3QiLCBhbGwgdGhlIGNoaWxkcmVuIHdpbGwgYmUgImluZGlyZWN0bHkgbG9zdCIuKSAKKyAgICAgICAgSWYgeW91IGZpeCB0aGUgImRlZmluaXRlbHkgbG9zdCIgbGVha3MsIHRoZSAiaW5kaXJlY3RseSBsb3N0IiBsZWFrcworICAgICAgICBzaG91bGQgZ28gYXdheS4KKyAgICAgICAgPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD4icG9zc2libHkgbG9zdCIgbWVhbnMgeW91ciBwcm9ncmFtIGlzIGxlYWtpbmcKKyAgICAgICAgbWVtb3J5LCB1bmxlc3MgeW91J3JlIGRvaW5nIHVudXN1YWwgdGhpbmdzIHdpdGggcG9pbnRlcnMgdGhhdCBjb3VsZAorICAgICAgICBjYXVzZSB0aGVtIHRvIHBvaW50IGludG8gdGhlIG1pZGRsZSBvZiBhbiBhbGxvY2F0ZWQgYmxvY2s7ICBzZWUgdGhlCisgICAgICAgIHVzZXIgbWFudWFsIGZvciBzb21lIHBvc3NpYmxlIGNhdXNlcy4gIFVzZQorICAgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXNob3ctcG9zc2libHktbG9zdD1ubzwvY29kZT4gaWYgeW91IGRvbid0IHdhbnQgdG8gc2VlCisgICAgICAgIHRoZXNlIHJlcG9ydHMuPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD4ic3RpbGwgcmVhY2hhYmxlIiBtZWFucyB5b3VyIHByb2dyYW0gaXMgcHJvYmFibHkgb2sgLS0gaXQKKyAgICAgICAgZGlkbid0IGZyZWUgc29tZSBtZW1vcnkgaXQgY291bGQgaGF2ZS4gIFRoaXMgaXMgcXVpdGUgY29tbW9uIGFuZAorICAgICAgICBvZnRlbiByZWFzb25hYmxlLiAgRG9uJ3QgdXNlCisgICAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tc2hvdy1yZWFjaGFibGU9eWVzPC9jb2RlPiBpZiB5b3UgZG9uJ3Qgd2FudCB0byBzZWUKKyAgICAgICAgdGhlc2UgcmVwb3J0cy48L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPiJzdXBwcmVzc2VkIiBtZWFucyB0aGF0IGEgbGVhayBlcnJvciBoYXMgYmVlbiBzdXBwcmVzc2VkLgorICAgICAgICBUaGVyZSBhcmUgc29tZSBzdXBwcmVzc2lvbnMgaW4gdGhlIGRlZmF1bHQgc3VwcHJlc3Npb24gZmlsZXMuCisgICAgICAgIFlvdSBjYW4gaWdub3JlIHN1cHByZXNzZWQgZXJyb3JzLjwvcD48L2xpPgorPC91bD48L2Rpdj4KKzwvdGQ+Cis8L3RyPgorPHRyPjx0ZCBjb2xzcGFuPSIyIj6gPC90ZD48L3RyPgorPHRyIGNsYXNzPSJxdWVzdGlvbiI+Cis8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj4KKzxhIG5hbWU9ImZhcS51bmRlZmVycm9ycyI+PC9hPjxhIG5hbWU9InEtdW5kZWZlcnJvcnMiPjwvYT48Yj41LjMuPC9iPgorPC90ZD4KKzx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjxiPk1lbWNoZWNrJ3MgdW5pbml0aWFsaXNlZCB2YWx1ZSBlcnJvcnMgYXJlIGhhcmQgdG8gdHJhY2sgZG93biwKKyAgICBiZWNhdXNlIHRoZXkgYXJlIG9mdGVuIHJlcG9ydGVkIHNvbWUgdGltZSBhZnRlciB0aGV5IGFyZSBjYXVzZWQuICBDb3VsZCAKKyAgICBNZW1jaGVjayByZWNvcmQgYSB0cmFpbCBvZiBvcGVyYXRpb25zIHRvIGJldHRlciBsaW5rIHRoZSBjYXVzZSB0byB0aGUKKyAgICBlZmZlY3Q/ICBPciBtYXliZSBqdXN0IGVhZ2VybHkgcmVwb3J0IGFueSBjb3BpZXMgb2YgdW5pbml0aWFsaXNlZAorICAgIG1lbW9yeSB2YWx1ZXM/PC9iPjwvdGQ+Cis8L3RyPgorPHRyIGNsYXNzPSJhbnN3ZXIiPgorPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+PGEgbmFtZT0iYS11bmRlZmVycm9ycyI+PC9hPjwvdGQ+Cis8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj4KKzxwPlByaW9yIHRvIHZlcnNpb24gMy40LjAsIHRoZSBhbnN3ZXIgd2FzICJ3ZSBkb24ndCBrbm93IGhvdyB0byBkbyBpdAorICAgIHdpdGhvdXQgaHVnZSBwZXJmb3JtYW5jZSBwZW5hbHRpZXMiLiAgQXMgb2YgMy40LjAsIHRyeSB1c2luZyB0aGUKKyAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXRyYWNrLW9yaWdpbnM9eWVzPC9jb2RlPiBvcHRpb24uICBJdCB3aWxsIHJ1biBzbG93ZXIgdGhhbgorICAgIHVzdWFsLCBidXQgd2lsbCBnaXZlIHlvdSBleHRyYSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgb3JpZ2luIG9mCisgICAgdW5pbml0aWFsaXNlZCB2YWx1ZXMuPC9wPgorPHA+T3IgaWYgeW91IHdhbnQgdG8gZG8gaXQgdGhlIG9sZCBmYXNoaW9uZWQgd2F5LCB5b3UgY2FuIHVzZSB0aGUKKyAgICBjbGllbnQgcmVxdWVzdAorICAgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+VkFMR1JJTkRfQ0hFQ0tfVkFMVUVfSVNfREVGSU5FRDwvY29kZT4gdG8gaGVscAorICAgIHRyYWNrIHRoZXNlIGVycm9ycyBkb3duIC0tIHdvcmsgYmFja3dhcmRzIGZyb20gdGhlIHBvaW50IHdoZXJlIHRoZQorICAgIHVuaW5pdGlhbGlzZWQgZXJyb3Igb2NjdXJzLCBjaGVja2luZyBzdXNwZWN0IHZhbHVlcyB1bnRpbCB5b3UgZmluZCB0aGUKKyAgICBjYXVzZS4gIFRoaXMgcmVxdWlyZXMgZWRpdGluZywgY29tcGlsaW5nIGFuZCByZS1ydW5uaW5nIHlvdXIgcHJvZ3JhbQorICAgIG11bHRpcGxlIHRpbWVzLCB3aGljaCBpcyBhIHBhaW4sIGJ1dCBzdGlsbCBlYXNpZXIgdGhhbiBkZWJ1Z2dpbmcgdGhlCisgICAgcHJvYmxlbSB3aXRob3V0IE1lbWNoZWNrJ3MgaGVscC48L3A+Cis8cD5BcyBmb3IgZWFnZXIgcmVwb3J0aW5nIG9mIGNvcGllcyBvZiB1bmluaXRpYWxpc2VkIG1lbW9yeSB2YWx1ZXMsCisgICAgdGhpcyBoYXMgYmVlbiBzdWdnZXN0ZWQgbXVsdGlwbGUgdGltZXMuICBVbmZvcnR1bmF0ZWx5LCBhbG1vc3QgYWxsCisgICAgcHJvZ3JhbXMgbGVnaXRpbWF0ZWx5IGNvcHkgdW5pbml0aWFsaXNlZCBtZW1vcnkgdmFsdWVzIGFyb3VuZCAoYmVjYXVzZQorICAgIGNvbXBpbGVycyBwYWQgc3RydWN0cyB0byBwcmVzZXJ2ZSBhbGlnbm1lbnQpIGFuZCBlYWdlciBjaGVja2luZyBsZWFkcyB0bworICAgIGh1bmRyZWRzIG9mIGZhbHNlIHBvc2l0aXZlcy4gIFRoZXJlZm9yZSBNZW1jaGVjayBkb2VzIG5vdCBzdXBwb3J0IGVhZ2VyCisgICAgY2hlY2tpbmcgYXQgdGhpcyB0aW1lLjwvcD4KKzwvdGQ+Cis8L3RyPgorPHRyPjx0ZCBjb2xzcGFuPSIyIj6gPC90ZD48L3RyPgorPHRyIGNsYXNzPSJxdWVzdGlvbiI+Cis8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj4KKzxhIG5hbWU9ImZhcS5hdHRhY2giPjwvYT48YSBuYW1lPSJxLWF0dGFjaCI+PC9hPjxiPjUuNC48L2I+Cis8L3RkPgorPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+PGI+SXMgaXQgcG9zc2libGUgdG8gYXR0YWNoIFZhbGdyaW5kIHRvIGEgcHJvZ3JhbSB0aGF0IGlzIGFscmVhZHkKKyAgICBydW5uaW5nPzwvYj48L3RkPgorPC90cj4KKzx0ciBjbGFzcz0iYW5zd2VyIj4KKzx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjxhIG5hbWU9ImEtYXR0YWNoIj48L2E+PC90ZD4KKzx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPgorPHA+Tm8uICBUaGUgZW52aXJvbm1lbnQgdGhhdCBWYWxncmluZCBwcm92aWRlcyBmb3IgcnVubmluZyBwcm9ncmFtcworICAgIGlzIHNpZ25pZmljYW50bHkgZGlmZmVyZW50IHRvIHRoYXQgZm9yIG5vcm1hbCBwcm9ncmFtcywgZS5nLiBkdWUgdG8KKyAgICBkaWZmZXJlbnQgbGF5b3V0IG9mIG1lbW9yeS4gIFRoZXJlZm9yZSBWYWxncmluZCBoYXMgdG8gaGF2ZSBmdWxsIGNvbnRyb2wKKyAgICBmcm9tIHRoZSB2ZXJ5IHN0YXJ0LjwvcD4KKzxwPkl0IGlzIHBvc3NpYmxlIHRvIGFjaGlldmUgc29tZXRoaW5nIGxpa2UgdGhpcyBieSBydW5uaW5nIHlvdXIKKyAgICBwcm9ncmFtIHdpdGhvdXQgYW55IGluc3RydW1lbnRhdGlvbiAod2hpY2ggaW52b2x2ZXMgYSBzbG93LWRvd24gb2YgYWJvdXQKKyAgICA1eCwgbGVzcyB0aGFuIHRoYXQgb2YgbW9zdCB0b29scyksIGFuZCB0aGVuIGFkZGluZyBpbnN0cnVtZW50YXRpb24gb25jZQorICAgIHlvdSBnZXQgdG8gYSBwb2ludCBvZiBpbnRlcmVzdC4gIFN1cHBvcnQgZm9yIHRoaXMgbXVzdCBiZSBwcm92aWRlZCBieQorICAgIHRoZSB0b29sLCBob3dldmVyLCBhbmQgQ2FsbGdyaW5kIGlzIHRoZSBvbmx5IHRvb2wgdGhhdCBjdXJyZW50bHkgaGFzCisgICAgc3VjaCBzdXBwb3J0LiAgU2VlIHRoZSBpbnN0cnVjdGlvbnMgb24gdGhlCisgICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5jYWxsZ3JpbmRfY29udHJvbDwvY29kZT4gcHJvZ3JhbSBmb3IgZGV0YWlscy4KKyAgICA8L3A+Cis8L3RkPgorPC90cj4KKzwvdGFibGU+Cis8YnI+PHRhYmxlIHdpZHRoPSIxMDAlIiBzdW1tYXJ5PSJRIGFuZCBBIERpdiIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIyIiBib3JkZXI9IjAiPgorPHRyIGNsYXNzPSJxYW5kYWRpdiI+PHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCIgY29sc3Bhbj0iMiI+Cis8YSBuYW1lPSJmYXEuaGVscCI+PC9hPjxoMyBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0iZmFxLmhlbHAiPjwvYT42LiBIb3cgVG8gR2V0IEZ1cnRoZXIgQXNzaXN0YW5jZTwvaDM+Cis8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InRvYyIgY29sc3Bhbj0iMiI+PHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCIgY29sc3Bhbj0iMiI+PC90ZD48L3RyPgorPHRyIGNsYXNzPSJhbnN3ZXIiPgorPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+PGEgbmFtZT0iYS1oZWxwIj48L2E+PC90ZD4KKzx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPgorPHA+UmVhZCB0aGUgYXBwcm9wcmlhdGUgc2VjdGlvbihzKSBvZiB0aGUgCisgIDxhIGNsYXNzPSJ1bGluayIgaHJlZj0iaHR0cDovL3d3dy52YWxncmluZC5vcmcvZG9jcy9tYW51YWwvaW5kZXguaHRtbCIgdGFyZ2V0PSJfdG9wIj5WYWxncmluZCBEb2N1bWVudGF0aW9uPC9hPi48L3A+Cis8cD48YSBjbGFzcz0idWxpbmsiIGhyZWY9Imh0dHA6Ly9zZWFyY2guZ21hbmUub3JnIiB0YXJnZXQ9Il90b3AiPlNlYXJjaDwvYT4gdGhlIAorICA8YSBjbGFzcz0idWxpbmsiIGhyZWY9Imh0dHA6Ly9uZXdzLmdtYW5lLm9yZy9nbWFuZS5jb21wLmRlYnVnZ2luZy52YWxncmluZCIgdGFyZ2V0PSJfdG9wIj52YWxncmluZC11c2VyczwvYT4gbWFpbGluZyBsaXN0IGFyY2hpdmVzLCB1c2luZyB0aGUgZ3JvdXAgbmFtZSAKKyAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5nbWFuZS5jb21wLmRlYnVnZ2luZy52YWxncmluZDwvY29kZT4uPC9wPgorPHA+SWYgeW91IHRoaW5rIGFuIGFuc3dlciBpbiB0aGlzIEZBUSBpcyBpbmNvbXBsZXRlIG9yIGluYWNjdXJhdGUsIHBsZWFzZQorICBlLW1haWwgPGEgY2xhc3M9InVsaW5rIiBocmVmPSJtYWlsdG86dmFsZ3JpbmRAdmFsZ3JpbmQub3JnIiB0YXJnZXQ9Il90b3AiPnZhbGdyaW5kQHZhbGdyaW5kLm9yZzwvYT4uPC9wPgorPHA+SWYgeW91IGhhdmUgdHJpZWQgYWxsIG9mIHRoZXNlIHRoaW5ncyBhbmQgYXJlIHN0aWxsCisgIHN0dWNrLCB5b3UgY2FuIHRyeSBtYWlsaW5nIHRoZQorICA8YSBjbGFzcz0idWxpbmsiIGhyZWY9Imh0dHA6Ly93d3cudmFsZ3JpbmQub3JnL3N1cHBvcnQvbWFpbGluZ19saXN0cy5odG1sIiB0YXJnZXQ9Il90b3AiPnZhbGdyaW5kLXVzZXJzIG1haWxpbmcgbGlzdDwvYT4uIAorICBOb3RlIHRoYXQgYW4gZW1haWwgaGFzIGEgYmV0dGVyIGNoYW5nZSBvZiBiZWluZyBhbnN3ZXJlZCB1c2VmdWxseSBpZiBpdCBpcworICBjbGVhcmx5IHdyaXR0ZW4uICBBbHNvIHJlbWVtYmVyIHRoYXQsIGRlc3BpdGUgdGhlIGZhY3QgdGhhdCBtb3N0IG9mIHRoZQorICBjb21tdW5pdHkgYXJlIHZlcnkgaGVscGZ1bCBhbmQgcmVzcG9uc2l2ZSB0byBlbWFpbGVkIHF1ZXN0aW9ucywgeW91IGFyZQorICBwcm9iYWJseSByZXF1ZXN0aW5nIGhlbHAgZnJvbSB1bnBhaWQgdm9sdW50ZWVycywgc28geW91IGhhdmUgbm8gZ3VhcmFudGVlCisgIG9mIHJlY2VpdmluZyBhbiBhbnN3ZXIuPC9wPgorPC90ZD4KKzwvdHI+Cis8L3RhYmxlPgorPC9kaXY+Cis8L2Rpdj4KKzxkaXY+Cis8YnI+PHRhYmxlIGNsYXNzPSJuYXYiIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0iMyIgY2VsbHBhZGRpbmc9IjIiIGJvcmRlcj0iMCIgc3VtbWFyeT0iTmF2aWdhdGlvbiBmb290ZXIiPgorPHRyPgorPHRkIHJvd3NwYW49IjIiIHdpZHRoPSI0MCUiIGFsaWduPSJsZWZ0Ij4KKzxhIGFjY2Vzc2tleT0icCIgaHJlZj0iRkFRLmh0bWwiPiZsdDsmbHQ7oFZhbGdyaW5kIEZBUTwvYT6gPC90ZD4KKzx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0iY2VudGVyIj48YSBhY2Nlc3NrZXk9InUiIGhyZWY9IkZBUS5odG1sIj5VcDwvYT48L3RkPgorPHRkIHJvd3NwYW49IjIiIHdpZHRoPSI0MCUiIGFsaWduPSJyaWdodCI+oDxhIGFjY2Vzc2tleT0ibiIgaHJlZj0idGVjaC1kb2NzLmh0bWwiPlZhbGdyaW5kIFRlY2huaWNhbCBEb2N1bWVudGF0aW9uoCZndDsmZ3Q7PC9hPgorPC90ZD4KKzwvdHI+Cis8dHI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJjZW50ZXIiPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iaW5kZXguaHRtbCI+SG9tZTwvYT48L3RkPjwvdHI+Cis8L3RhYmxlPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9kb2NzL2h0bWwvaGctbWFudWFsLmh0bWwgYi9kb2NzL2h0bWwvaGctbWFudWFsLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDE1NmMwNQotLS0gL2Rldi9udWxsCisrKyBiL2RvY3MvaHRtbC9oZy1tYW51YWwuaHRtbApAQCAtMCwwICsxLDEyNDggQEAKKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj4KKzx0aXRsZT43LqBIZWxncmluZDogYSB0aHJlYWQgZXJyb3IgZGV0ZWN0b3I8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0idmdfYmFzaWMuY3NzIj4KKzxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iRG9jQm9vayBYU0wgU3R5bGVzaGVldHMgVjEuNzguMSI+Cis8bGluayByZWw9ImhvbWUiIGhyZWY9ImluZGV4Lmh0bWwiIHRpdGxlPSJWYWxncmluZCBEb2N1bWVudGF0aW9uIj4KKzxsaW5rIHJlbD0idXAiIGhyZWY9Im1hbnVhbC5odG1sIiB0aXRsZT0iVmFsZ3JpbmQgVXNlciBNYW51YWwiPgorPGxpbmsgcmVsPSJwcmV2IiBocmVmPSJjbC1tYW51YWwuaHRtbCIgdGl0bGU9IjYuoENhbGxncmluZDogYSBjYWxsLWdyYXBoIGdlbmVyYXRpbmcgY2FjaGUgYW5kIGJyYW5jaCBwcmVkaWN0aW9uIHByb2ZpbGVyIj4KKzxsaW5rIHJlbD0ibmV4dCIgaHJlZj0iZHJkLW1hbnVhbC5odG1sIiB0aXRsZT0iOC6gRFJEOiBhIHRocmVhZCBlcnJvciBkZXRlY3RvciI+Cis8L2hlYWQ+Cis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+Cis8ZGl2Pjx0YWJsZSBjbGFzcz0ibmF2IiB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjMiIGNlbGxwYWRkaW5nPSIzIiBib3JkZXI9IjAiIHN1bW1hcnk9Ik5hdmlnYXRpb24gaGVhZGVyIj48dHI+Cis8dGQgd2lkdGg9IjIycHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImNsLW1hbnVhbC5odG1sIj48aW1nIHNyYz0iaW1hZ2VzL3ByZXYucG5nIiB3aWR0aD0iMTgiIGhlaWdodD0iMjEiIGJvcmRlcj0iMCIgYWx0PSJQcmV2Ij48L2E+PC90ZD4KKzx0ZCB3aWR0aD0iMjVweCIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPjxhIGFjY2Vzc2tleT0idSIgaHJlZj0ibWFudWFsLmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvdXAucG5nIiB3aWR0aD0iMjEiIGhlaWdodD0iMTgiIGJvcmRlcj0iMCIgYWx0PSJVcCI+PC9hPjwvdGQ+Cis8dGQgd2lkdGg9IjMxcHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvaG9tZS5wbmciIHdpZHRoPSIyNyIgaGVpZ2h0PSIyMCIgYm9yZGVyPSIwIiBhbHQ9IlVwIj48L2E+PC90ZD4KKzx0aCBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+VmFsZ3JpbmQgVXNlciBNYW51YWw8L3RoPgorPHRkIHdpZHRoPSIyMnB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJuIiBocmVmPSJkcmQtbWFudWFsLmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvbmV4dC5wbmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIyMSIgYm9yZGVyPSIwIiBhbHQ9Ik5leHQiPjwvYT48L3RkPgorPC90cj48L3RhYmxlPjwvZGl2PgorPGRpdiBjbGFzcz0iY2hhcHRlciI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDEgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9ImhnLW1hbnVhbCI+PC9hPjcuoEhlbGdyaW5kOiBhIHRocmVhZCBlcnJvciBkZXRlY3RvcjwvaDE+PC9kaXY+PC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJ0b2MiPgorPHA+PGI+VGFibGUgb2YgQ29udGVudHM8L2I+PC9wPgorPGRsIGNsYXNzPSJ0b2MiPgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0iaGctbWFudWFsLmh0bWwjaGctbWFudWFsLm92ZXJ2aWV3Ij43LjEuIE92ZXJ2aWV3PC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0iaGctbWFudWFsLmh0bWwjaGctbWFudWFsLmFwaS1jaGVja3MiPjcuMi4gRGV0ZWN0ZWQgZXJyb3JzOiBNaXN1c2VzIG9mIHRoZSBQT1NJWCBwdGhyZWFkcyBBUEk8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJoZy1tYW51YWwuaHRtbCNoZy1tYW51YWwubG9jay1vcmRlcnMiPjcuMy4gRGV0ZWN0ZWQgZXJyb3JzOiBJbmNvbnNpc3RlbnQgTG9jayBPcmRlcmluZ3M8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJoZy1tYW51YWwuaHRtbCNoZy1tYW51YWwuZGF0YS1yYWNlcyI+Ny40LiBEZXRlY3RlZCBlcnJvcnM6IERhdGEgUmFjZXM8L2E+PC9zcGFuPjwvZHQ+Cis8ZGQ+PGRsPgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iaGctbWFudWFsLmh0bWwjaGctbWFudWFsLmRhdGEtcmFjZXMuZXhhbXBsZSI+Ny40LjEuIEEgU2ltcGxlIERhdGEgUmFjZTwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9ImhnLW1hbnVhbC5odG1sI2hnLW1hbnVhbC5kYXRhLXJhY2VzLmFsZ29yaXRobSI+Ny40LjIuIEhlbGdyaW5kJ3MgUmFjZSBEZXRlY3Rpb24gQWxnb3JpdGhtPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iaGctbWFudWFsLmh0bWwjaGctbWFudWFsLmRhdGEtcmFjZXMuZXJybXNncyI+Ny40LjMuIEludGVycHJldGluZyBSYWNlIEVycm9yIE1lc3NhZ2VzPC9hPjwvc3Bhbj48L2R0PgorPC9kbD48L2RkPgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0iaGctbWFudWFsLmh0bWwjaGctbWFudWFsLmVmZmVjdGl2ZS11c2UiPjcuNS4gSGludHMgYW5kIFRpcHMgZm9yIEVmZmVjdGl2ZSBVc2Ugb2YgSGVsZ3JpbmQ8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJoZy1tYW51YWwuaHRtbCNoZy1tYW51YWwub3B0aW9ucyI+Ny42LiBIZWxncmluZCBDb21tYW5kLWxpbmUgT3B0aW9uczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9ImhnLW1hbnVhbC5odG1sI2hnLW1hbnVhbC5tb25pdG9yLWNvbW1hbmRzIj43LjcuIEhlbGdyaW5kIE1vbml0b3IgQ29tbWFuZHM8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJoZy1tYW51YWwuaHRtbCNoZy1tYW51YWwuY2xpZW50LXJlcXVlc3RzIj43LjguIEhlbGdyaW5kIENsaWVudCBSZXF1ZXN0czwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9ImhnLW1hbnVhbC5odG1sI2hnLW1hbnVhbC50b2RvbGlzdCI+Ny45LiBBIFRvLURvIExpc3QgZm9yIEhlbGdyaW5kPC9hPjwvc3Bhbj48L2R0PgorPC9kbD4KKzwvZGl2PgorPHA+VG8gdXNlIHRoaXMgdG9vbCwgeW91IG11c3Qgc3BlY2lmeQorPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS10b29sPWhlbGdyaW5kPC9jb2RlPiBvbiB0aGUgVmFsZ3JpbmQKK2NvbW1hbmQgbGluZS48L3A+Cis8ZGl2IGNsYXNzPSJzZWN0MSI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPgorPGEgbmFtZT0iaGctbWFudWFsLm92ZXJ2aWV3Ij48L2E+Ny4xLqBPdmVydmlldzwvaDI+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD5IZWxncmluZCBpcyBhIFZhbGdyaW5kIHRvb2wgZm9yIGRldGVjdGluZyBzeW5jaHJvbmlzYXRpb24gZXJyb3JzCitpbiBDLCBDKysgYW5kIEZvcnRyYW4gcHJvZ3JhbXMgdGhhdCB1c2UgdGhlIFBPU0lYIHB0aHJlYWRzCit0aHJlYWRpbmcgcHJpbWl0aXZlcy48L3A+Cis8cD5UaGUgbWFpbiBhYnN0cmFjdGlvbnMgaW4gUE9TSVggcHRocmVhZHMgYXJlOiBhIHNldCBvZiB0aHJlYWRzCitzaGFyaW5nIGEgY29tbW9uIGFkZHJlc3Mgc3BhY2UsIHRocmVhZCBjcmVhdGlvbiwgdGhyZWFkIGpvaW5pbmcsCit0aHJlYWQgZXhpdCwgbXV0ZXhlcyAobG9ja3MpLCBjb25kaXRpb24gdmFyaWFibGVzIChpbnRlci10aHJlYWQgZXZlbnQKK25vdGlmaWNhdGlvbnMpLCByZWFkZXItd3JpdGVyIGxvY2tzLCBzcGlubG9ja3MsIHNlbWFwaG9yZXMgYW5kCitiYXJyaWVycy48L3A+Cis8cD5IZWxncmluZCBjYW4gZGV0ZWN0IHRocmVlIGNsYXNzZXMgb2YgZXJyb3JzLCB3aGljaCBhcmUgZGlzY3Vzc2VkCitpbiBkZXRhaWwgaW4gdGhlIG5leHQgdGhyZWUgc2VjdGlvbnM6PC9wPgorPGRpdiBjbGFzcz0ib3JkZXJlZGxpc3QiPjxvbCBjbGFzcz0ib3JkZXJlZGxpc3QiIHR5cGU9IjEiPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+PGEgY2xhc3M9ImxpbmsiIGhyZWY9ImhnLW1hbnVhbC5odG1sI2hnLW1hbnVhbC5hcGktY2hlY2tzIiB0aXRsZT0iNy4yLqBEZXRlY3RlZCBlcnJvcnM6IE1pc3VzZXMgb2YgdGhlIFBPU0lYIHB0aHJlYWRzIEFQSSI+CisgICAgICAgIE1pc3VzZXMgb2YgdGhlIFBPU0lYIHB0aHJlYWRzIEFQSS48L2E+PC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD48YSBjbGFzcz0ibGluayIgaHJlZj0iaGctbWFudWFsLmh0bWwjaGctbWFudWFsLmxvY2stb3JkZXJzIiB0aXRsZT0iNy4zLqBEZXRlY3RlZCBlcnJvcnM6IEluY29uc2lzdGVudCBMb2NrIE9yZGVyaW5ncyI+CisgICAgICAgIFBvdGVudGlhbCBkZWFkbG9ja3MgYXJpc2luZyBmcm9tIGxvY2sKKyAgICAgICAgb3JkZXJpbmcgcHJvYmxlbXMuPC9hPjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+PGEgY2xhc3M9ImxpbmsiIGhyZWY9ImhnLW1hbnVhbC5odG1sI2hnLW1hbnVhbC5kYXRhLXJhY2VzIiB0aXRsZT0iNy40LqBEZXRlY3RlZCBlcnJvcnM6IERhdGEgUmFjZXMiPgorICAgICAgICBEYXRhIHJhY2VzIC0tIGFjY2Vzc2luZyBtZW1vcnkgd2l0aG91dCBhZGVxdWF0ZSBsb2NraW5nCisgICAgICAgICAgICAgICAgICAgICAgb3Igc3luY2hyb25pc2F0aW9uPC9hPi4KKyAgPC9wPjwvbGk+Cis8L29sPjwvZGl2PgorPHA+UHJvYmxlbXMgbGlrZSB0aGVzZSBvZnRlbiByZXN1bHQgaW4gdW5yZXByb2R1Y2libGUsCit0aW1pbmctZGVwZW5kZW50IGNyYXNoZXMsIGRlYWRsb2NrcyBhbmQgb3RoZXIgbWlzYmVoYXZpb3VyLCBhbmQKK2NhbiBiZSBkaWZmaWN1bHQgdG8gZmluZCBieSBvdGhlciBtZWFucy48L3A+Cis8cD5IZWxncmluZCBpcyBhd2FyZSBvZiBhbGwgdGhlIHB0aHJlYWQgYWJzdHJhY3Rpb25zIGFuZCB0cmFja3MKK3RoZWlyIGVmZmVjdHMgYXMgYWNjdXJhdGVseSBhcyBpdCBjYW4uICBPbiB4ODYgYW5kIGFtZDY0IHBsYXRmb3JtcywgaXQKK3VuZGVyc3RhbmRzIGFuZCBwYXJ0aWFsbHkgaGFuZGxlcyBpbXBsaWNpdCBsb2NraW5nIGFyaXNpbmcgZnJvbSB0aGUKK3VzZSBvZiB0aGUgTE9DSyBpbnN0cnVjdGlvbiBwcmVmaXguICBPbiBQb3dlclBDL1BPV0VSIGFuZCBBUk0KK3BsYXRmb3JtcywgaXQgcGFydGlhbGx5IGhhbmRsZXMgaW1wbGljaXQgbG9ja2luZyBhcmlzaW5nIGZyb20gCitsb2FkLWxpbmtlZCBhbmQgc3RvcmUtY29uZGl0aW9uYWwgaW5zdHJ1Y3Rpb24gcGFpcnMuCis8L3A+Cis8cD5IZWxncmluZCB3b3JrcyBiZXN0IHdoZW4geW91ciBhcHBsaWNhdGlvbiB1c2VzIG9ubHkgdGhlIFBPU0lYCitwdGhyZWFkcyBBUEkuICBIb3dldmVyLCBpZiB5b3Ugd2FudCB0byB1c2UgY3VzdG9tIHRocmVhZGluZyAKK3ByaW1pdGl2ZXMsIHlvdSBjYW4gZGVzY3JpYmUgdGhlaXIgYmVoYXZpb3VyIHRvIEhlbGdyaW5kIHVzaW5nIHRoZQorPGNvZGUgY2xhc3M9InZhcm5hbWUiPkFOTk9UQVRFXyo8L2NvZGU+IG1hY3JvcyBkZWZpbmVkCitpbiA8Y29kZSBjbGFzcz0idmFybmFtZSI+aGVsZ3JpbmQuaDwvY29kZT4uPC9wPgorPHA+Rm9sbG93aW5nIHRob3NlIGlzIGEgc2VjdGlvbiBjb250YWluaW5nIAorPGEgY2xhc3M9ImxpbmsiIGhyZWY9ImhnLW1hbnVhbC5odG1sI2hnLW1hbnVhbC5lZmZlY3RpdmUtdXNlIiB0aXRsZT0iNy41LqBIaW50cyBhbmQgVGlwcyBmb3IgRWZmZWN0aXZlIFVzZSBvZiBIZWxncmluZCI+CitoaW50cyBhbmQgdGlwcyBvbiBob3cgdG8gZ2V0IHRoZSBiZXN0IG91dCBvZiBIZWxncmluZC48L2E+Cis8L3A+Cis8cD5UaGVuIHRoZXJlIGlzIGEKKzxhIGNsYXNzPSJsaW5rIiBocmVmPSJoZy1tYW51YWwuaHRtbCNoZy1tYW51YWwub3B0aW9ucyIgdGl0bGU9IjcuNi6gSGVsZ3JpbmQgQ29tbWFuZC1saW5lIE9wdGlvbnMiPnN1bW1hcnkgb2YgY29tbWFuZC1saW5lCitvcHRpb25zLjwvYT4KKzwvcD4KKzxwPkZpbmFsbHksIHRoZXJlIGlzIAorPGEgY2xhc3M9ImxpbmsiIGhyZWY9ImhnLW1hbnVhbC5odG1sI2hnLW1hbnVhbC50b2RvbGlzdCIgdGl0bGU9IjcuOS6gQSBUby1EbyBMaXN0IGZvciBIZWxncmluZCI+YSBicmllZiBzdW1tYXJ5IG9mIGFyZWFzIGluIHdoaWNoIEhlbGdyaW5kCitjb3VsZCBiZSBpbXByb3ZlZC48L2E+Cis8L3A+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QxIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+Cis8YSBuYW1lPSJoZy1tYW51YWwuYXBpLWNoZWNrcyI+PC9hPjcuMi6gRGV0ZWN0ZWQgZXJyb3JzOiBNaXN1c2VzIG9mIHRoZSBQT1NJWCBwdGhyZWFkcyBBUEk8L2gyPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+SGVsZ3JpbmQgaW50ZXJjZXB0cyBjYWxscyB0byBtYW55IFBPU0lYIHB0aHJlYWRzIGZ1bmN0aW9ucywgYW5kCitpcyB0aGVyZWZvcmUgYWJsZSB0byByZXBvcnQgb24gdmFyaW91cyBjb21tb24gcHJvYmxlbXMuICBBbHRob3VnaAordGhlc2UgYXJlIHVuZ2xhbW91cm91cyBlcnJvcnMsIHRoZWlyIHByZXNlbmNlIGNhbiBsZWFkIHRvIHVuZGVmaW5lZAorcHJvZ3JhbSBiZWhhdmlvdXIgYW5kIGhhcmQtdG8tZmluZCBidWdzIGxhdGVyIG9uLiAgVGhlIGRldGVjdGVkIGVycm9ycworYXJlOjwvcD4KKzxkaXYgY2xhc3M9Iml0ZW1pemVkbGlzdCI+PHVsIGNsYXNzPSJpdGVtaXplZGxpc3QiIHN0eWxlPSJsaXN0LXN0eWxlLXR5cGU6IGRpc2M7ICI+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD51bmxvY2tpbmcgYW4gaW52YWxpZCBtdXRleDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+dW5sb2NraW5nIGEgbm90LWxvY2tlZCBtdXRleDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+dW5sb2NraW5nIGEgbXV0ZXggaGVsZCBieSBhIGRpZmZlcmVudAorICAgICAgICAgICAgICAgICB0aHJlYWQ8L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPmRlc3Ryb3lpbmcgYW4gaW52YWxpZCBvciBhIGxvY2tlZCBtdXRleDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+cmVjdXJzaXZlbHkgbG9ja2luZyBhIG5vbi1yZWN1cnNpdmUgbXV0ZXg8L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPmRlYWxsb2NhdGlvbiBvZiBtZW1vcnkgdGhhdCBjb250YWlucyBhCisgICAgICAgICAgICAgICAgIGxvY2tlZCBtdXRleDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+cGFzc2luZyBtdXRleCBhcmd1bWVudHMgdG8gZnVuY3Rpb25zIGV4cGVjdGluZworICAgICAgICAgICAgICAgICByZWFkZXItd3JpdGVyIGxvY2sgYXJndW1lbnRzLCBhbmQgdmljZQorICAgICAgICAgICAgICAgICB2ZXJzYTwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+d2hlbiBhIFBPU0lYIHB0aHJlYWQgZnVuY3Rpb24gZmFpbHMgd2l0aCBhbgorICAgICAgICAgICAgICAgICBlcnJvciBjb2RlIHRoYXQgbXVzdCBiZSBoYW5kbGVkPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD53aGVuIGEgdGhyZWFkIGV4aXRzIHdoaWxzdCBzdGlsbCBob2xkaW5nIGxvY2tlZAorICAgICAgICAgICAgICAgICBsb2NrczwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+Y2FsbGluZyA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPnB0aHJlYWRfY29uZF93YWl0PC9jb2RlPgorICAgICAgICAgICAgICAgICB3aXRoIGEgbm90LWxvY2tlZCBtdXRleCwgYW4gaW52YWxpZCBtdXRleCwKKyAgICAgICAgICAgICAgICAgb3Igb25lIGxvY2tlZCBieSBhIGRpZmZlcmVudAorICAgICAgICAgICAgICAgICB0aHJlYWQ8L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPmluY29uc2lzdGVudCBiaW5kaW5ncyBiZXR3ZWVuIGNvbmRpdGlvbgorICAgICAgICAgICAgICAgICB2YXJpYWJsZXMgYW5kIHRoZWlyIGFzc29jaWF0ZWQgbXV0ZXhlczwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+aW52YWxpZCBvciBkdXBsaWNhdGUgaW5pdGlhbGlzYXRpb24gb2YgYSBwdGhyZWFkCisgICAgICAgICAgICAgICAgIGJhcnJpZXI8L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPmluaXRpYWxpc2F0aW9uIG9mIGEgcHRocmVhZCBiYXJyaWVyIG9uIHdoaWNoIHRocmVhZHMKKyAgICAgICAgICAgICAgICAgYXJlIHN0aWxsIHdhaXRpbmc8L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPmRlc3RydWN0aW9uIG9mIGEgcHRocmVhZCBiYXJyaWVyIG9iamVjdCB3aGljaCB3YXMKKyAgICAgICAgICAgICAgICAgbmV2ZXIgaW5pdGlhbGlzZWQsIG9yIG9uIHdoaWNoIHRocmVhZHMgYXJlIHN0aWxsCisgICAgICAgICAgICAgICAgIHdhaXRpbmc8L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPndhaXRpbmcgb24gYW4gdW5pbml0aWFsaXNlZCBwdGhyZWFkCisgICAgICAgICAgICAgICAgIGJhcnJpZXI8L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPmZvciBhbGwgb2YgdGhlIHB0aHJlYWRzIGZ1bmN0aW9ucyB0aGF0IEhlbGdyaW5kCisgICAgICAgICAgICAgICAgIGludGVyY2VwdHMsIGFuIGVycm9yIGlzIHJlcG9ydGVkLCBhbG9uZyB3aXRoIGEgc3RhY2sKKyAgICAgICAgICAgICAgICAgdHJhY2UsIGlmIHRoZSBzeXN0ZW0gdGhyZWFkaW5nIGxpYnJhcnkgcm91dGluZSByZXR1cm5zCisgICAgICAgICAgICAgICAgIGFuIGVycm9yIGNvZGUsIGV2ZW4gaWYgSGVsZ3JpbmQgaXRzZWxmIGRldGVjdGVkIG5vCisgICAgICAgICAgICAgICAgIGVycm9yPC9wPjwvbGk+Cis8L3VsPjwvZGl2PgorPHA+Q2hlY2tzIHBlcnRhaW5pbmcgdG8gdGhlIHZhbGlkaXR5IG9mIG11dGV4ZXMgYXJlIGdlbmVyYWxseSBhbHNvCitwZXJmb3JtZWQgZm9yIHJlYWRlci13cml0ZXIgbG9ja3MuPC9wPgorPHA+VmFyaW91cyBraW5kcyBvZiB0aGlzLWNhbid0LXBvc3NpYmx5LWhhcHBlbiBldmVudHMgYXJlIGFsc28KK3JlcG9ydGVkLiAgVGhlc2UgdXN1YWxseSBpbmRpY2F0ZSBidWdzIGluIHRoZSBzeXN0ZW0gdGhyZWFkaW5nCitsaWJyYXJ5LjwvcD4KKzxwPlJlcG9ydGVkIGVycm9ycyBhbHdheXMgY29udGFpbiBhIHByaW1hcnkgc3RhY2sgdHJhY2UgaW5kaWNhdGluZword2hlcmUgdGhlIGVycm9yIHdhcyBkZXRlY3RlZC4gIFRoZXkgbWF5IGFsc28gY29udGFpbiBhdXhpbGlhcnkgc3RhY2sKK3RyYWNlcyBnaXZpbmcgYWRkaXRpb25hbCBpbmZvcm1hdGlvbi4gIEluIHBhcnRpY3VsYXIsIG1vc3QgZXJyb3JzCityZWxhdGluZyB0byBtdXRleGVzIHdpbGwgYWxzbyB0ZWxsIHlvdSB3aGVyZSB0aGF0IG11dGV4IGZpcnN0IGNhbWUgdG8KK0hlbGdyaW5kJ3MgYXR0ZW50aW9uICh0aGUgIjxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+d2FzIGZpcnN0IG9ic2VydmVkCithdDwvY29kZT4iIHBhcnQpLCBzbyB5b3UgaGF2ZSBhIGNoYW5jZSBvZiBmaWd1cmluZyBvdXQgd2hpY2gKK211dGV4IGl0IGlzIHJlZmVycmluZyB0by4gIEZvciBleGFtcGxlOjwvcD4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KK1RocmVhZCAjMSB1bmxvY2tlZCBhIG5vdC1sb2NrZWQgbG9jayBhdCAweDdGRUZGRkE5MAorICAgYXQgMHg0QzI0MDhEOiBwdGhyZWFkX211dGV4X3VubG9jayAoaGdfaW50ZXJjZXB0cy5jOjQ5MikKKyAgIGJ5IDB4NDAwNzNBOiBuZWFybHlfbWFpbiAodGMwOV9iYWRfdW5sb2NrLmM6MjcpCisgICBieSAweDQwMDc5QjogbWFpbiAodGMwOV9iYWRfdW5sb2NrLmM6NTApCisgIExvY2sgYXQgMHg3RkVGRkZBOTAgd2FzIGZpcnN0IG9ic2VydmVkCisgICBhdCAweDRDMjVEMDE6IHB0aHJlYWRfbXV0ZXhfaW5pdCAoaGdfaW50ZXJjZXB0cy5jOjMyNikKKyAgIGJ5IDB4NDAwNzFGOiBuZWFybHlfbWFpbiAodGMwOV9iYWRfdW5sb2NrLmM6MjMpCisgICBieSAweDQwMDc5QjogbWFpbiAodGMwOV9iYWRfdW5sb2NrLmM6NTApCis8L3ByZT4KKzxwPkhlbGdyaW5kIGhhcyBhIHdheSBvZiBzdW1tYXJpc2luZyB0aHJlYWQgaWRlbnRpdGllcywgYXMKK3lvdSBzZWUgaGVyZSB3aXRoIHRoZSB0ZXh0ICI8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPlRocmVhZAorIzE8L2NvZGU+Ii4gIFRoaXMgaXMgc28gdGhhdCBpdCBjYW4gc3BlYWsgYWJvdXQgdGhyZWFkcyBhbmQKK3NldHMgb2YgdGhyZWFkcyB3aXRob3V0IG92ZXJ3aGVsbWluZyB5b3Ugd2l0aCBkZXRhaWxzLiAgU2VlIAorPGEgY2xhc3M9ImxpbmsiIGhyZWY9ImhnLW1hbnVhbC5odG1sI2hnLW1hbnVhbC5kYXRhLXJhY2VzLmVycm1zZ3MiIHRpdGxlPSI3LjQuMy6gSW50ZXJwcmV0aW5nIFJhY2UgRXJyb3IgTWVzc2FnZXMiPmJlbG93PC9hPgorZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gaW50ZXJwcmV0aW5nIGVycm9yIG1lc3NhZ2VzLjwvcD4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDEiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj4KKzxhIG5hbWU9ImhnLW1hbnVhbC5sb2NrLW9yZGVycyI+PC9hPjcuMy6gRGV0ZWN0ZWQgZXJyb3JzOiBJbmNvbnNpc3RlbnQgTG9jayBPcmRlcmluZ3M8L2gyPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+SW4gdGhpcyBzZWN0aW9uLCBhbmQgaW4gZ2VuZXJhbCwgdG8gImFjcXVpcmUiIGEgbG9jayBzaW1wbHkKK21lYW5zIHRvIGxvY2sgdGhhdCBsb2NrLCBhbmQgdG8gInJlbGVhc2UiIGEgbG9jayBtZWFucyB0byB1bmxvY2sKK2l0LjwvcD4KKzxwPkhlbGdyaW5kIG1vbml0b3JzIHRoZSBvcmRlciBpbiB3aGljaCB0aHJlYWRzIGFjcXVpcmUgbG9ja3MuCitUaGlzIGFsbG93cyBpdCB0byBkZXRlY3QgcG90ZW50aWFsIGRlYWRsb2NrcyB3aGljaCBjb3VsZCBhcmlzZSBmcm9tCit0aGUgZm9ybWF0aW9uIG9mIGN5Y2xlcyBvZiBsb2Nrcy4gIERldGVjdGluZyBzdWNoIGluY29uc2lzdGVuY2llcyBpcwordXNlZnVsIGJlY2F1c2UsIHdoaWxzdCBhY3R1YWwgZGVhZGxvY2tzIGFyZSBmYWlybHkgb2J2aW91cywgcG90ZW50aWFsCitkZWFkbG9ja3MgbWF5IG5ldmVyIGJlIGRpc2NvdmVyZWQgZHVyaW5nIHRlc3RpbmcgYW5kIGNvdWxkIGxhdGVyIGxlYWQKK3RvIGhhcmQtdG8tZGlhZ25vc2UgaW4tc2VydmljZSBmYWlsdXJlcy48L3A+Cis8cD5UaGUgc2ltcGxlc3QgZXhhbXBsZSBvZiBzdWNoIGEgcHJvYmxlbSBpcyBhcworZm9sbG93cy48L3A+Cis8ZGl2IGNsYXNzPSJpdGVtaXplZGxpc3QiPjx1bCBjbGFzcz0iaXRlbWl6ZWRsaXN0IiBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOiBkaXNjOyAiPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+SW1hZ2luZSBzb21lIHNoYXJlZCByZXNvdXJjZSBSLCB3aGljaCwgZm9yIHdoYXRldmVyCisgIHJlYXNvbiwgaXMgZ3VhcmRlZCBieSB0d28gbG9ja3MsIEwxIGFuZCBMMiwgd2hpY2ggbXVzdCBib3RoIGJlIGhlbGQKKyAgd2hlbiBSIGlzIGFjY2Vzc2VkLjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+U3VwcG9zZSBhIHRocmVhZCBhY3F1aXJlcyBMMSwgdGhlbiBMMiwgYW5kIHByb2NlZWRzCisgIHRvIGFjY2VzcyBSLiAgVGhlIGltcGxpY2F0aW9uIG9mIHRoaXMgaXMgdGhhdCBhbGwgdGhyZWFkcyBpbiB0aGUKKyAgcHJvZ3JhbSBtdXN0IGFjcXVpcmUgdGhlIHR3byBsb2NrcyBpbiB0aGUgb3JkZXIgZmlyc3QgTDEgdGhlbiBMMi4KKyAgTm90IGRvaW5nIHNvIHJpc2tzIGRlYWRsb2NrLjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+VGhlIGRlYWRsb2NrIGNvdWxkIGhhcHBlbiBpZiB0d28gdGhyZWFkcyAtLSBjYWxsIHRoZW0KKyAgVDEgYW5kIFQyIC0tIGJvdGggd2FudCB0byBhY2Nlc3MgUi4gIFN1cHBvc2UgVDEgYWNxdWlyZXMgTDEgZmlyc3QsCisgIGFuZCBUMiBhY3F1aXJlcyBMMiBmaXJzdC4gIFRoZW4gVDEgdHJpZXMgdG8gYWNxdWlyZSBMMiwgYW5kIFQyIHRyaWVzCisgIHRvIGFjcXVpcmUgTDEsIGJ1dCB0aG9zZSBsb2NrcyBhcmUgYm90aCBhbHJlYWR5IGhlbGQuICBTbyBUMSBhbmQgVDIKKyAgYmVjb21lIGRlYWRsb2NrZWQuPC9wPjwvbGk+Cis8L3VsPjwvZGl2PgorPHA+SGVsZ3JpbmQgYnVpbGRzIGEgZGlyZWN0ZWQgZ3JhcGggaW5kaWNhdGluZyB0aGUgb3JkZXIgaW4gd2hpY2gKK2xvY2tzIGhhdmUgYmVlbiBhY3F1aXJlZCBpbiB0aGUgcGFzdC4gIFdoZW4gYSB0aHJlYWQgYWNxdWlyZXMgYSBuZXcKK2xvY2ssIHRoZSBncmFwaCBpcyB1cGRhdGVkLCBhbmQgdGhlbiBjaGVja2VkIHRvIHNlZSBpZiBpdCBub3cgY29udGFpbnMKK2EgY3ljbGUuICBUaGUgcHJlc2VuY2Ugb2YgYSBjeWNsZSBpbmRpY2F0ZXMgYSBwb3RlbnRpYWwgZGVhZGxvY2sgaW52b2x2aW5nCit0aGUgbG9ja3MgaW4gdGhlIGN5Y2xlLjwvcD4KKzxwPkluIGdlbmVyYWwsIEhlbGdyaW5kIHdpbGwgY2hvb3NlIHR3byBsb2NrcyBpbnZvbHZlZCBpbiB0aGUgY3ljbGUKK2FuZCBzaG93IHlvdSBob3cgdGhlaXIgYWNxdWlzaXRpb24gb3JkZXJpbmcgaGFzIGJlY29tZSBpbmNvbnNpc3RlbnQuCitJdCBkb2VzIHRoaXMgYnkgc2hvd2luZyB0aGUgcHJvZ3JhbSBwb2ludHMgdGhhdCBmaXJzdCBkZWZpbmVkIHRoZQorb3JkZXJpbmcsIGFuZCB0aGUgcHJvZ3JhbSBwb2ludHMgd2hpY2ggbGF0ZXIgdmlvbGF0ZWQgaXQuICBIZXJlIGlzIGEKK3NpbXBsZSBleGFtcGxlIGludm9sdmluZyBqdXN0IHR3byBsb2Nrczo8L3A+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CitUaHJlYWQgIzE6IGxvY2sgb3JkZXIgIjB4N0ZGMDAwNkQwIGJlZm9yZSAweDdGRjAwMDZBMCIgdmlvbGF0ZWQKKworT2JzZXJ2ZWQgKGluY29ycmVjdCkgb3JkZXIgaXM6IGFjcXVpc2l0aW9uIG9mIGxvY2sgYXQgMHg3RkYwMDA2QTAKKyAgIGF0IDB4NEMyQkM2MjogcHRocmVhZF9tdXRleF9sb2NrIChoZ19pbnRlcmNlcHRzLmM6NDk0KQorICAgYnkgMHg0MDA4MjU6IG1haW4gKHRjMTNfbGFvZzEuYzoyMykKKworIGZvbGxvd2VkIGJ5IGEgbGF0ZXIgYWNxdWlzaXRpb24gb2YgbG9jayBhdCAweDdGRjAwMDZEMAorICAgYXQgMHg0QzJCQzYyOiBwdGhyZWFkX211dGV4X2xvY2sgKGhnX2ludGVyY2VwdHMuYzo0OTQpCisgICBieSAweDQwMDg1MzogbWFpbiAodGMxM19sYW9nMS5jOjI0KQorCitSZXF1aXJlZCBvcmRlciB3YXMgZXN0YWJsaXNoZWQgYnkgYWNxdWlzaXRpb24gb2YgbG9jayBhdCAweDdGRjAwMDZEMAorICAgYXQgMHg0QzJCQzYyOiBwdGhyZWFkX211dGV4X2xvY2sgKGhnX2ludGVyY2VwdHMuYzo0OTQpCisgICBieSAweDQwMDc2RDogbWFpbiAodGMxM19sYW9nMS5jOjE3KQorCisgZm9sbG93ZWQgYnkgYSBsYXRlciBhY3F1aXNpdGlvbiBvZiBsb2NrIGF0IDB4N0ZGMDAwNkEwCisgICBhdCAweDRDMkJDNjI6IHB0aHJlYWRfbXV0ZXhfbG9jayAoaGdfaW50ZXJjZXB0cy5jOjQ5NCkKKyAgIGJ5IDB4NDAwNzlCOiBtYWluICh0YzEzX2xhb2cxLmM6MTgpCis8L3ByZT4KKzxwPldoZW4gdGhlcmUgYXJlIG1vcmUgdGhhbiB0d28gbG9ja3MgaW4gdGhlIGN5Y2xlLCB0aGUgZXJyb3IgaXMKK2VxdWFsbHkgc2VyaW91cy4gIEhvd2V2ZXIsIGF0IHByZXNlbnQgSGVsZ3JpbmQgZG9lcyBub3Qgc2hvdyB0aGUgbG9ja3MKK2ludm9sdmVkLCBzb21ldGltZXMgYmVjYXVzZSB0aGF0IGluZm9ybWF0aW9uIGlzIG5vdCBhdmFpbGFibGUsIGJ1dAorYWxzbyBzbyBhcyB0byBhdm9pZCBmbG9vZGluZyB5b3Ugd2l0aCBpbmZvcm1hdGlvbi4gIEZvciBleGFtcGxlLCBhCituYWl2ZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgZmFtb3VzIERpbmluZyBQaGlsb3NvcGhlcnMgcHJvYmxlbQoraW52b2x2ZXMgYSBjeWNsZSBvZiBmaXZlIGxvY2tzCisoc2VlIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+aGVsZ3JpbmQvdGVzdHMvdGMxNF9sYW9nX2RpbnBoaWxzLmM8L2NvZGU+KS4KK0luIHRoaXMgY2FzZSBIZWxncmluZCBoYXMgZGV0ZWN0ZWQgdGhhdCBhbGwgNSBwaGlsb3NvcGhlcnMgY291bGQKK3NpbXVsdGFuZW91c2x5IHBpY2sgdXAgdGhlaXIgbGVmdCBmb3JrIGFuZCB0aGVuIGRlYWRsb2NrIHdoaWxzdAord2FpdGluZyB0byBwaWNrIHVwIHRoZWlyIHJpZ2h0IGZvcmtzLjwvcD4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KK1RocmVhZCAjNjogbG9jayBvcmRlciAiMHg4MDQ5OUEwIGJlZm9yZSAweDgwNDlBMDAiIHZpb2xhdGVkCisKK09ic2VydmVkIChpbmNvcnJlY3QpIG9yZGVyIGlzOiBhY3F1aXNpdGlvbiBvZiBsb2NrIGF0IDB4ODA0OUEwMAorICAgYXQgMHg0MDA4NUJDOiBwdGhyZWFkX211dGV4X2xvY2sgKGhnX2ludGVyY2VwdHMuYzo0OTUpCisgICBieSAweDgwNDg1QjQ6IGRpbmUgKHRjMTRfbGFvZ19kaW5waGlscy5jOjE4KQorICAgYnkgMHg0MDBCREE0OiBteXRocmVhZF93cmFwcGVyIChoZ19pbnRlcmNlcHRzLmM6MjE5KQorICAgYnkgMHgzOUI5MjQ6IHN0YXJ0X3RocmVhZCAocHRocmVhZF9jcmVhdGUuYzoyOTcpCisgICBieSAweDJGMTA3RDogY2xvbmUgKGNsb25lLlM6MTMwKQorCisgZm9sbG93ZWQgYnkgYSBsYXRlciBhY3F1aXNpdGlvbiBvZiBsb2NrIGF0IDB4ODA0OTlBMAorICAgYXQgMHg0MDA4NUJDOiBwdGhyZWFkX211dGV4X2xvY2sgKGhnX2ludGVyY2VwdHMuYzo0OTUpCisgICBieSAweDgwNDg1Q0Q6IGRpbmUgKHRjMTRfbGFvZ19kaW5waGlscy5jOjE5KQorICAgYnkgMHg0MDBCREE0OiBteXRocmVhZF93cmFwcGVyIChoZ19pbnRlcmNlcHRzLmM6MjE5KQorICAgYnkgMHgzOUI5MjQ6IHN0YXJ0X3RocmVhZCAocHRocmVhZF9jcmVhdGUuYzoyOTcpCisgICBieSAweDJGMTA3RDogY2xvbmUgKGNsb25lLlM6MTMwKQorPC9wcmU+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QxIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+Cis8YSBuYW1lPSJoZy1tYW51YWwuZGF0YS1yYWNlcyI+PC9hPjcuNC6gRGV0ZWN0ZWQgZXJyb3JzOiBEYXRhIFJhY2VzPC9oMj48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPkEgZGF0YSByYWNlIGhhcHBlbnMsIG9yIGNvdWxkIGhhcHBlbiwgd2hlbiB0d28gdGhyZWFkcyBhY2Nlc3MgYQorc2hhcmVkIG1lbW9yeSBsb2NhdGlvbiB3aXRob3V0IHVzaW5nIHN1aXRhYmxlIGxvY2tzIG9yIG90aGVyCitzeW5jaHJvbmlzYXRpb24gdG8gZW5zdXJlIHNpbmdsZS10aHJlYWRlZCBhY2Nlc3MuICBTdWNoIG1pc3NpbmcKK2xvY2tpbmcgY2FuIGNhdXNlIG9ic2N1cmUgdGltaW5nIGRlcGVuZGVudCBidWdzLiAgRW5zdXJpbmcgcHJvZ3JhbXMKK2FyZSByYWNlLWZyZWUgaXMgb25lIG9mIHRoZSBjZW50cmFsIGRpZmZpY3VsdGllcyBvZiB0aHJlYWRlZAorcHJvZ3JhbW1pbmcuPC9wPgorPHA+UmVsaWFibHkgZGV0ZWN0aW5nIHJhY2VzIGlzIGEgZGlmZmljdWx0IHByb2JsZW0sIGFuZCBtb3N0CitvZiBIZWxncmluZCdzIGludGVybmFscyBhcmUgZGV2b3RlZCB0byBkZWFsaW5nIHdpdGggaXQuICAKK1dlIGJlZ2luIHdpdGggYSBzaW1wbGUgZXhhbXBsZS48L3A+Cis8ZGl2IGNsYXNzPSJzZWN0MiI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9ImhnLW1hbnVhbC5kYXRhLXJhY2VzLmV4YW1wbGUiPjwvYT43LjQuMS6gQSBTaW1wbGUgRGF0YSBSYWNlPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPkFib3V0IHRoZSBzaW1wbGVzdCBwb3NzaWJsZSBleGFtcGxlIG9mIGEgcmFjZSBpcyBhcyBmb2xsb3dzLiAgSW4KK3RoaXMgcHJvZ3JhbSwgaXQgaXMgaW1wb3NzaWJsZSB0byBrbm93IHdoYXQgdGhlIHZhbHVlCitvZiA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPnZhcjwvY29kZT4gaXMgYXQgdGhlIGVuZCBvZiB0aGUgcHJvZ3JhbS4KK0lzIGl0IDIgPyAgT3IgMSA/PC9wPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPgorI2luY2x1ZGUgJmx0O3B0aHJlYWQuaCZndDsKKworaW50IHZhciA9IDA7CisKK3ZvaWQqIGNoaWxkX2ZuICggdm9pZCogYXJnICkgeworICAgdmFyKys7IC8qIFVucHJvdGVjdGVkIHJlbGF0aXZlIHRvIHBhcmVudCAqLyAvKiB0aGlzIGlzIGxpbmUgNiAqLworICAgcmV0dXJuIE5VTEw7Cit9CisKK2ludCBtYWluICggdm9pZCApIHsKKyAgIHB0aHJlYWRfdCBjaGlsZDsKKyAgIHB0aHJlYWRfY3JlYXRlKCZhbXA7Y2hpbGQsIE5VTEwsIGNoaWxkX2ZuLCBOVUxMKTsKKyAgIHZhcisrOyAvKiBVbnByb3RlY3RlZCByZWxhdGl2ZSB0byBjaGlsZCAqLyAvKiB0aGlzIGlzIGxpbmUgMTMgKi8KKyAgIHB0aHJlYWRfam9pbihjaGlsZCwgTlVMTCk7CisgICByZXR1cm4gMDsKK30KKzwvcHJlPgorPHA+VGhlIHByb2JsZW0gaXMgdGhlcmUgaXMgbm90aGluZyB0bworc3RvcCA8Y29kZSBjbGFzcz0idmFybmFtZSI+dmFyPC9jb2RlPiBiZWluZyB1cGRhdGVkIHNpbXVsdGFuZW91c2x5CitieSBib3RoIHRocmVhZHMuICBBIGNvcnJlY3QgcHJvZ3JhbSB3b3VsZCAKK3Byb3RlY3QgPGNvZGUgY2xhc3M9InZhcm5hbWUiPnZhcjwvY29kZT4gd2l0aCBhIGxvY2sgb2YgdHlwZQorPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5wdGhyZWFkX211dGV4X3Q8L2NvZGU+LCB3aGljaCBpcyBhY3F1aXJlZAorYmVmb3JlIGVhY2ggYWNjZXNzIGFuZCByZWxlYXNlZCBhZnRlcndhcmRzLiAgSGVsZ3JpbmQncyBvdXRwdXQgZm9yCit0aGlzIHByb2dyYW0gaXM6PC9wPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPgorVGhyZWFkICMxIGlzIHRoZSBwcm9ncmFtJ3Mgcm9vdCB0aHJlYWQKKworVGhyZWFkICMyIHdhcyBjcmVhdGVkCisgICBhdCAweDUxMUMwOEU6IGNsb25lIChpbiAvbGliNjQvbGliYy0yLjguc28pCisgICBieSAweDRFMzMzQTQ6IGRvX2Nsb25lIChpbiAvbGliNjQvbGlicHRocmVhZC0yLjguc28pCisgICBieSAweDRFMzNBMzA6IHB0aHJlYWRfY3JlYXRlQEBHTElCQ18yLjIuNSAoaW4gL2xpYjY0L2xpYnB0aHJlYWQtMi44LnNvKQorICAgYnkgMHg0QzI5OUQ0OiBwdGhyZWFkX2NyZWF0ZUAqIChoZ19pbnRlcmNlcHRzLmM6MjE0KQorICAgYnkgMHg0MDA2MDU6IG1haW4gKHNpbXBsZV9yYWNlLmM6MTIpCisKK1Bvc3NpYmxlIGRhdGEgcmFjZSBkdXJpbmcgcmVhZCBvZiBzaXplIDQgYXQgMHg2MDEwMzggYnkgdGhyZWFkICMxCitMb2NrcyBoZWxkOiBub25lCisgICBhdCAweDQwMDYwNjogbWFpbiAoc2ltcGxlX3JhY2UuYzoxMykKKworVGhpcyBjb25mbGljdHMgd2l0aCBhIHByZXZpb3VzIHdyaXRlIG9mIHNpemUgNCBieSB0aHJlYWQgIzIKK0xvY2tzIGhlbGQ6IG5vbmUKKyAgIGF0IDB4NDAwNURDOiBjaGlsZF9mbiAoc2ltcGxlX3JhY2UuYzo2KQorICAgYnkgMHg0QzI5QUZGOiBteXRocmVhZF93cmFwcGVyIChoZ19pbnRlcmNlcHRzLmM6MTk0KQorICAgYnkgMHg0RTM0MDNGOiBzdGFydF90aHJlYWQgKGluIC9saWI2NC9saWJwdGhyZWFkLTIuOC5zbykKKyAgIGJ5IDB4NTExQzBDQzogY2xvbmUgKGluIC9saWI2NC9saWJjLTIuOC5zbykKKworTG9jYXRpb24gMHg2MDEwMzggaXMgMCBieXRlcyBpbnNpZGUgZ2xvYmFsIHZhciAidmFyIgorZGVjbGFyZWQgYXQgc2ltcGxlX3JhY2UuYzozCis8L3ByZT4KKzxwPlRoaXMgaXMgcXVpdGUgYSBsb3Qgb2YgZGV0YWlsIGZvciBhbiBhcHBhcmVudGx5IHNpbXBsZSBlcnJvci4KK1RoZSBsYXN0IGNsYXVzZSBpcyB0aGUgbWFpbiBlcnJvciBtZXNzYWdlLiAgSXQgc2F5cyB0aGVyZSBpcyBhIHJhY2UgYXMKK2EgcmVzdWx0IG9mIGEgcmVhZCBvZiBzaXplIDQgKGJ5dGVzKSwgYXQgMHg2MDEwMzgsIHdoaWNoIGlzIHRoZQorYWRkcmVzcyBvZiA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPnZhcjwvY29kZT4sIGhhcHBlbmluZyBpbgorZnVuY3Rpb24gPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5tYWluPC9jb2RlPiBhdCBsaW5lIDEzIGluIHRoZQorcHJvZ3JhbS48L3A+Cis8cD5Ud28gaW1wb3J0YW50IHBhcnRzIG9mIHRoZSBtZXNzYWdlIGFyZTo8L3A+Cis8ZGl2IGNsYXNzPSJpdGVtaXplZGxpc3QiPjx1bCBjbGFzcz0iaXRlbWl6ZWRsaXN0IiBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOiBkaXNjOyAiPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+Cis8cD5IZWxncmluZCBzaG93cyB0d28gc3RhY2sgdHJhY2VzIGZvciB0aGUgZXJyb3IsIG5vdCBvbmUuICBCeQorICAgZGVmaW5pdGlvbiwgYSByYWNlIGludm9sdmVzIHR3byBkaWZmZXJlbnQgdGhyZWFkcyBhY2Nlc3NpbmcgdGhlCisgICBzYW1lIGxvY2F0aW9uIGluIHN1Y2ggYSB3YXkgdGhhdCB0aGUgcmVzdWx0IGRlcGVuZHMgb24gdGhlIHJlbGF0aXZlCisgICBzcGVlZHMgb2YgdGhlIHR3byB0aHJlYWRzLjwvcD4KKzxwPgorICAgVGhlIGZpcnN0IHN0YWNrIHRyYWNlIGZvbGxvd3MgdGhlIHRleHQgIjxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+UG9zc2libGUKKyAgIGRhdGEgcmFjZSBkdXJpbmcgcmVhZCBvZiBzaXplIDQgLi4uPC9jb2RlPiIgYW5kIHRoZQorICAgc2Vjb25kIHRyYWNlIGZvbGxvd3MgdGhlIHRleHQgIjxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+VGhpcyBjb25mbGljdHMgd2l0aAorICAgYSBwcmV2aW91cyB3cml0ZSBvZiBzaXplIDQgLi4uPC9jb2RlPiIuICBIZWxncmluZCBpcworICAgdXN1YWxseSBhYmxlIHRvIHNob3cgYm90aCBhY2Nlc3NlcyBpbnZvbHZlZCBpbiBhIHJhY2UuICBBdCBsZWFzdAorICAgb25lIG9mIHRoZXNlIHdpbGwgYmUgYSB3cml0ZSAoc2luY2UgdHdvIGNvbmN1cnJlbnQsIHVuc3luY2hyb25pc2VkCisgICByZWFkcyBhcmUgaGFybWxlc3MpLCBhbmQgdGhleSB3aWxsIG9mIGNvdXJzZSBiZSBmcm9tIGRpZmZlcmVudAorICAgdGhyZWFkcy48L3A+Cis8cD5CeSBleGFtaW5pbmcgeW91ciBwcm9ncmFtIGF0IHRoZSB0d28gbG9jYXRpb25zLCB5b3Ugc2hvdWxkIGJlCisgICBhYmxlIHRvIGdldCBhdCBsZWFzdCBzb21lIGlkZWEgb2Ygd2hhdCB0aGUgcm9vdCBjYXVzZSBvZiB0aGUKKyAgIHByb2JsZW0gaXMuICBGb3IgZWFjaCBsb2NhdGlvbiwgSGVsZ3JpbmQgc2hvd3MgdGhlIHNldCBvZiBsb2NrcworICAgaGVsZCBhdCB0aGUgdGltZSBvZiB0aGUgYWNjZXNzLiAgVGhpcyBvZnRlbiBtYWtlcyBpdCBjbGVhciB3aGljaAorICAgdGhyZWFkLCBpZiBhbnksIGZhaWxlZCB0byB0YWtlIGEgcmVxdWlyZWQgbG9jay4gIEluIHRoaXMgZXhhbXBsZQorICAgbmVpdGhlciB0aHJlYWQgaG9sZHMgYSBsb2NrIGR1cmluZyB0aGUgYWNjZXNzLjwvcD4KKzwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj4KKzxwPkZvciByYWNlcyB3aGljaCBvY2N1ciBvbiBnbG9iYWwgb3Igc3RhY2sgdmFyaWFibGVzLCBIZWxncmluZAorICAgdHJpZXMgdG8gaWRlbnRpZnkgdGhlIG5hbWUgYW5kIGRlZmluaW5nIHBvaW50IG9mIHRoZSB2YXJpYWJsZS4KKyAgIEhlbmNlIHRoZSB0ZXh0ICI8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPkxvY2F0aW9uIDB4NjAxMDM4IGlzIDAgYnl0ZXMgaW5zaWRlCisgICBnbG9iYWwgdmFyICJ2YXIiIGRlY2xhcmVkIGF0IHNpbXBsZV9yYWNlLmM6MzwvY29kZT4iLjwvcD4KKzxwPlNob3dpbmcgbmFtZXMgb2Ygc3RhY2sgYW5kIGdsb2JhbCB2YXJpYWJsZXMgY2FycmllcyBubworICAgcnVuLXRpbWUgb3ZlcmhlYWQgb25jZSBIZWxncmluZCBoYXMgeW91ciBwcm9ncmFtIHVwIGFuZCBydW5uaW5nLgorICAgSG93ZXZlciwgaXQgZG9lcyByZXF1aXJlIEhlbGdyaW5kIHRvIHNwZW5kIGNvbnNpZGVyYWJsZSBleHRyYSB0aW1lCisgICBhbmQgbWVtb3J5IGF0IHByb2dyYW0gc3RhcnR1cCB0byByZWFkIHRoZSByZWxldmFudCBkZWJ1ZyBpbmZvLgorICAgSGVuY2UgdGhpcyBmYWNpbGl0eSBpcyBkaXNhYmxlZCBieSBkZWZhdWx0LiAgVG8gZW5hYmxlIGl0LCB5b3UgbmVlZAorICAgdG8gZ2l2ZSB0aGUgPGNvZGUgY2xhc3M9InZhcm5hbWUiPi0tcmVhZC12YXItaW5mbz15ZXM8L2NvZGU+IG9wdGlvbiB0bworICAgSGVsZ3JpbmQuPC9wPgorPC9saT4KKzwvdWw+PC9kaXY+Cis8cD5UaGUgZm9sbG93aW5nIHNlY3Rpb24gZXhwbGFpbnMgSGVsZ3JpbmQncyByYWNlIGRldGVjdGlvbgorYWxnb3JpdGhtIGluIG1vcmUgZGV0YWlsLjwvcD4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDIiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJoZy1tYW51YWwuZGF0YS1yYWNlcy5hbGdvcml0aG0iPjwvYT43LjQuMi6gSGVsZ3JpbmQncyBSYWNlIERldGVjdGlvbiBBbGdvcml0aG08L2gzPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+TW9zdCBwcm9ncmFtbWVycyB0aGluayBhYm91dCB0aHJlYWRlZCBwcm9ncmFtbWluZyBpbiB0ZXJtcyBvZgordGhlIGJhc2ljIGZ1bmN0aW9uYWxpdHkgcHJvdmlkZWQgYnkgdGhlIHRocmVhZGluZyBsaWJyYXJ5IChQT1NJWAorUHRocmVhZHMpOiB0aHJlYWQgY3JlYXRpb24sIHRocmVhZCBqb2luaW5nLCBsb2NrcywgY29uZGl0aW9uCit2YXJpYWJsZXMsIHNlbWFwaG9yZXMgYW5kIGJhcnJpZXJzLjwvcD4KKzxwPlRoZSBlZmZlY3Qgb2YgdXNpbmcgdGhlc2UgZnVuY3Rpb25zIGlzIHRvIGltcG9zZSAKK2NvbnN0cmFpbnRzIHVwb24gdGhlIG9yZGVyIGluIHdoaWNoIG1lbW9yeSBhY2Nlc3NlcyBjYW4KK2hhcHBlbi4gIFRoaXMgaW1wbGllZCBvcmRlcmluZyBpcyBnZW5lcmFsbHkga25vd24gYXMgdGhlCisiaGFwcGVucy1iZWZvcmUgcmVsYXRpb24iLiAgT25jZSB5b3UgdW5kZXJzdGFuZCB0aGUgaGFwcGVucy1iZWZvcmUKK3JlbGF0aW9uLCBpdCBpcyBlYXN5IHRvIHNlZSBob3cgSGVsZ3JpbmQgZmluZHMgcmFjZXMgaW4geW91ciBjb2RlLgorRm9ydHVuYXRlbHksIHRoZSBoYXBwZW5zLWJlZm9yZSByZWxhdGlvbiBpcyBpdHNlbGYgZWFzeSB0byB1bmRlcnN0YW5kLAorYW5kIGlzIGJ5IGl0c2VsZiBhIHVzZWZ1bCB0b29sIGZvciByZWFzb25pbmcgYWJvdXQgdGhlIGJlaGF2aW91ciBvZgorcGFyYWxsZWwgcHJvZ3JhbXMuICBXZSBub3cgaW50cm9kdWNlIGl0IHVzaW5nIGEgc2ltcGxlIGV4YW1wbGUuPC9wPgorPHA+Q29uc2lkZXIgZmlyc3QgdGhlIGZvbGxvd2luZyBidWdneSBwcm9ncmFtOjwvcD4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KK1BhcmVudCB0aHJlYWQ6ICAgICAgICAgICAgICAgICAgICAgICAgIENoaWxkIHRocmVhZDoKKworaW50IHZhcjsKKworLy8gY3JlYXRlIGNoaWxkIHRocmVhZAorcHRocmVhZF9jcmVhdGUoLi4uKSAgICAgICAgICAgICAgICAgICAgICAgICAgCit2YXIgPSAyMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgPSAxMDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4aXQKKworLy8gd2FpdCBmb3IgY2hpbGQKK3B0aHJlYWRfam9pbiguLi4pCitwcmludGYoIiVkXG4iLCB2YXIpOworPC9wcmU+Cis8cD5UaGUgcGFyZW50IHRocmVhZCBjcmVhdGVzIGEgY2hpbGQuICBCb3RoIHRoZW4gd3JpdGUgZGlmZmVyZW50Cit2YWx1ZXMgdG8gc29tZSB2YXJpYWJsZSA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPnZhcjwvY29kZT4sIGFuZCB0aGUKK3BhcmVudCB0aGVuIHdhaXRzIGZvciB0aGUgY2hpbGQgdG8gZXhpdC48L3A+Cis8cD5XaGF0IGlzIHRoZSB2YWx1ZSBvZiA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPnZhcjwvY29kZT4gYXQgdGhlCitlbmQgb2YgdGhlIHByb2dyYW0sIDEwIG9yIDIwPyAgV2UgZG9uJ3Qga25vdy4gIFRoZSBwcm9ncmFtIGlzCitjb25zaWRlcmVkIGJ1Z2d5IChpdCBoYXMgYSByYWNlKSBiZWNhdXNlIHRoZSBmaW5hbCB2YWx1ZQorb2YgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij52YXI8L2NvZGU+IGRlcGVuZHMgb24gdGhlIHJlbGF0aXZlIHJhdGVzCitvZiBwcm9ncmVzcyBvZiB0aGUgcGFyZW50IGFuZCBjaGlsZCB0aHJlYWRzLiAgSWYgdGhlIHBhcmVudCBpcyBmYXN0CithbmQgdGhlIGNoaWxkIGlzIHNsb3csIHRoZW4gdGhlIGNoaWxkJ3MgYXNzaWdubWVudCBtYXkgaGFwcGVuIGxhdGVyLAorc28gdGhlIGZpbmFsIHZhbHVlIHdpbGwgYmUgMTA7IGFuZCB2aWNlIHZlcnNhIGlmIHRoZSBjaGlsZCBpcyBmYXN0ZXIKK3RoYW4gdGhlIHBhcmVudC48L3A+Cis8cD5UaGUgcmVsYXRpdmUgcmF0ZXMgb2YgcHJvZ3Jlc3Mgb2YgcGFyZW50IHZzIGNoaWxkIGlzIG5vdCBzb21ldGhpbmcKK3RoZSBwcm9ncmFtbWVyIGNhbiBjb250cm9sLCBhbmQgd2lsbCBvZnRlbiBjaGFuZ2UgZnJvbSBydW4gdG8gcnVuLgorSXQgZGVwZW5kcyBvbiBmYWN0b3JzIHN1Y2ggYXMgdGhlIGxvYWQgb24gdGhlIG1hY2hpbmUsIHdoYXQgZWxzZSBpcworcnVubmluZywgdGhlIGtlcm5lbCdzIHNjaGVkdWxpbmcgc3RyYXRlZ3ksIGFuZCBtYW55IG90aGVyIGZhY3RvcnMuPC9wPgorPHA+VGhlIG9idmlvdXMgZml4IGlzIHRvIHVzZSBhIGxvY2sgdG8KK3Byb3RlY3QgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij52YXI8L2NvZGU+LiAgSXQgaXMgaG93ZXZlcgoraW5zdHJ1Y3RpdmUgdG8gY29uc2lkZXIgYSBzb21ld2hhdCBtb3JlIGFic3RyYWN0IHNvbHV0aW9uLCB3aGljaCBpcyB0bworc2VuZCBhIG1lc3NhZ2UgZnJvbSBvbmUgdGhyZWFkIHRvIHRoZSBvdGhlcjo8L3A+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CitQYXJlbnQgdGhyZWFkOiAgICAgICAgICAgICAgICAgICAgICAgICBDaGlsZCB0aHJlYWQ6CisKK2ludCB2YXI7CisKKy8vIGNyZWF0ZSBjaGlsZCB0aHJlYWQKK3B0aHJlYWRfY3JlYXRlKC4uLikgICAgICAgICAgICAgICAgICAgICAgICAgIAordmFyID0gMjA7CisvLyBzZW5kIG1lc3NhZ2UgdG8gY2hpbGQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdhaXQgZm9yIG1lc3NhZ2UgdG8gYXJyaXZlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgPSAxMDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4aXQKKworLy8gd2FpdCBmb3IgY2hpbGQKK3B0aHJlYWRfam9pbiguLi4pCitwcmludGYoIiVkXG4iLCB2YXIpOworPC9wcmU+Cis8cD5Ob3cgdGhlIHByb2dyYW0gcmVsaWFibHkgcHJpbnRzICIxMCIsIHJlZ2FyZGxlc3Mgb2YgdGhlIHNwZWVkIG9mCit0aGUgdGhyZWFkcy4gIFdoeT8gIEJlY2F1c2UgdGhlIGNoaWxkJ3MgYXNzaWdubWVudCBjYW5ub3QgaGFwcGVuIHVudGlsCithZnRlciBpdCByZWNlaXZlcyB0aGUgbWVzc2FnZS4gIEFuZCB0aGUgbWVzc2FnZSBpcyBub3Qgc2VudCB1bnRpbAorYWZ0ZXIgdGhlIHBhcmVudCdzIGFzc2lnbm1lbnQgaXMgZG9uZS48L3A+Cis8cD5UaGUgbWVzc2FnZSB0cmFuc21pc3Npb24gY3JlYXRlcyBhICJoYXBwZW5zLWJlZm9yZSIgZGVwZW5kZW5jeQorYmV0d2VlbiB0aGUgdHdvIGFzc2lnbm1lbnRzOiA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPnZhciA9IDIwOzwvY29kZT4KK211c3Qgbm93IGhhcHBlbi1iZWZvcmUgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij52YXIgPSAxMDs8L2NvZGU+LgorQW5kIHNvIHRoZXJlIGlzIG5vIGxvbmdlciBhIHJhY2UKK29uIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+dmFyPC9jb2RlPi4KKzwvcD4KKzxwPk5vdGUgdGhhdCBpdCdzIG5vdCBzaWduaWZpY2FudCB0aGF0IHRoZSBwYXJlbnQgc2VuZHMgYSBtZXNzYWdlCit0byB0aGUgY2hpbGQuICBTZW5kaW5nIGEgbWVzc2FnZSBmcm9tIHRoZSBjaGlsZCAoYWZ0ZXIgaXRzIGFzc2lnbm1lbnQpCit0byB0aGUgcGFyZW50IChiZWZvcmUgaXRzIGFzc2lnbm1lbnQpIHdvdWxkIGFsc28gZml4IHRoZSBwcm9ibGVtLCBjYXVzaW5nCit0aGUgcHJvZ3JhbSB0byByZWxpYWJseSBwcmludCAiMjAiLjwvcD4KKzxwPkhlbGdyaW5kJ3MgYWxnb3JpdGhtIGlzIChjb25jZXB0dWFsbHkpIHZlcnkgc2ltcGxlLiAgSXQgbW9uaXRvcnMgYWxsCithY2Nlc3NlcyB0byBtZW1vcnkgbG9jYXRpb25zLiAgSWYgYSBsb2NhdGlvbiAtLSBpbiB0aGlzIGV4YW1wbGUsIAorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij52YXI8L2NvZGU+LAoraXMgYWNjZXNzZWQgYnkgdHdvIGRpZmZlcmVudCB0aHJlYWRzLCBIZWxncmluZCBjaGVja3MgdG8gc2VlIGlmIHRoZQordHdvIGFjY2Vzc2VzIGFyZSBvcmRlcmVkIGJ5IHRoZSBoYXBwZW5zLWJlZm9yZSByZWxhdGlvbi4gIElmIHNvLAordGhhdCdzIGZpbmU7IGlmIG5vdCwgaXQgcmVwb3J0cyBhIHJhY2UuPC9wPgorPHA+SXQgaXMgaW1wb3J0YW50IHRvIHVuZGVyc3RhbmQgdGhhdCB0aGUgaGFwcGVucy1iZWZvcmUgcmVsYXRpb24KK2NyZWF0ZXMgb25seSBhIHBhcnRpYWwgb3JkZXJpbmcsIG5vdCBhIHRvdGFsIG9yZGVyaW5nLiAgQW4gZXhhbXBsZSBvZgorYSB0b3RhbCBvcmRlcmluZyBpcyBjb21wYXJpc29uIG9mIG51bWJlcnM6IGZvciBhbnkgdHdvIG51bWJlcnMgCis8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPng8L2NvZGU+IGFuZAorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij55PC9jb2RlPiwgZWl0aGVyIAorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij54PC9jb2RlPiBpcyBsZXNzIHRoYW4sIGVxdWFsIHRvLCBvciBncmVhdGVyCit0aGFuCis8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPnk8L2NvZGU+LiAgQSBwYXJ0aWFsIG9yZGVyaW5nIGlzIGxpa2UgYQordG90YWwgb3JkZXJpbmcsIGJ1dCBpdCBjYW4gYWxzbyBleHByZXNzIHRoZSBjb25jZXB0IHRoYXQgdHdvIGVsZW1lbnRzCithcmUgbmVpdGhlciBlcXVhbCwgbGVzcyBvciBncmVhdGVyLCBidXQgbWVyZWx5IHVub3JkZXJlZCB3aXRoIHJlc3BlY3QKK3RvIGVhY2ggb3RoZXIuPC9wPgorPHA+SW4gdGhlIGZpeGVkIGV4YW1wbGUgYWJvdmUsIHdlIHNheSB0aGF0IAorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij52YXIgPSAyMDs8L2NvZGU+ICJoYXBwZW5zLWJlZm9yZSIKKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+dmFyID0gMTA7PC9jb2RlPi4gIEJ1dCBpbiB0aGUgb3JpZ2luYWwKK3ZlcnNpb24sIHRoZXkgYXJlIHVub3JkZXJlZDogd2UgY2Fubm90IHNheSB0aGF0IGVpdGhlciBoYXBwZW5zLWJlZm9yZQordGhlIG90aGVyLjwvcD4KKzxwPldoYXQgZG9lcyBpdCBtZWFuIHRvIHNheSB0aGF0IHR3byBhY2Nlc3NlcyBmcm9tIGRpZmZlcmVudAordGhyZWFkcyBhcmUgb3JkZXJlZCBieSB0aGUgaGFwcGVucy1iZWZvcmUgcmVsYXRpb24/ICBJdCBtZWFucyB0aGF0Cit0aGVyZSBpcyBzb21lIGNoYWluIG9mIGludGVyLXRocmVhZCBzeW5jaHJvbmlzYXRpb24gb3BlcmF0aW9ucyB3aGljaAorY2F1c2UgdGhvc2UgYWNjZXNzZXMgdG8gaGFwcGVuIGluIGEgcGFydGljdWxhciBvcmRlciwgaXJyZXNwZWN0aXZlIG9mCit0aGUgYWN0dWFsIHJhdGVzIG9mIHByb2dyZXNzIG9mIHRoZSBpbmRpdmlkdWFsIHRocmVhZHMuICBUaGlzIGlzIGEKK3JlcXVpcmVkIHByb3BlcnR5IGZvciBhIHJlbGlhYmxlIHRocmVhZGVkIHByb2dyYW0sIHdoaWNoIGlzIHdoeQorSGVsZ3JpbmQgY2hlY2tzIGZvciBpdC48L3A+Cis8cD5UaGUgaGFwcGVucy1iZWZvcmUgcmVsYXRpb25zIGNyZWF0ZWQgYnkgc3RhbmRhcmQgdGhyZWFkaW5nCitwcmltaXRpdmVzIGFyZSBhcyBmb2xsb3dzOjwvcD4KKzxkaXYgY2xhc3M9Iml0ZW1pemVkbGlzdCI+PHVsIGNsYXNzPSJpdGVtaXplZGxpc3QiIHN0eWxlPSJsaXN0LXN0eWxlLXR5cGU6IGRpc2M7ICI+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5XaGVuIGEgbXV0ZXggaXMgdW5sb2NrZWQgYnkgdGhyZWFkIFQxIGFuZCBsYXRlciAob3IKKyAgaW1tZWRpYXRlbHkpIGxvY2tlZCBieSB0aHJlYWQgVDIsIHRoZW4gdGhlIG1lbW9yeSBhY2Nlc3NlcyBpbiBUMQorICBwcmlvciB0byB0aGUgdW5sb2NrIG11c3QgaGFwcGVuLWJlZm9yZSB0aG9zZSBpbiBUMiBhZnRlciBpdCBhY3F1aXJlcworICB0aGUgbG9jay48L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPlRoZSBzYW1lIGlkZWEgYXBwbGllcyB0byByZWFkZXItd3JpdGVyIGxvY2tzLAorICBhbHRob3VnaCB3aXRoIHNvbWUgY29tcGxpY2F0aW9uIHNvIGFzIHRvIGFsbG93IGNvcnJlY3QgaGFuZGxpbmcgb2YKKyAgcmVhZHMgdnMgd3JpdGVzLjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+V2hlbiBhIGNvbmRpdGlvbiB2YXJpYWJsZSAoQ1YpIGlzIHNpZ25hbGxlZCBvbiBieQorICB0aHJlYWQgVDEgYW5kIHNvbWUgb3RoZXIgdGhyZWFkIFQyIGlzIHRoZXJlYnkgcmVsZWFzZWQgZnJvbSBhIHdhaXQKKyAgb24gdGhlIHNhbWUgQ1YsIHRoZW4gdGhlIG1lbW9yeSBhY2Nlc3NlcyBpbiBUMSBwcmlvciB0byB0aGUKKyAgc2lnbmFsbGluZyBtdXN0IGhhcHBlbi1iZWZvcmUgdGhvc2UgaW4gVDIgYWZ0ZXIgaXQgcmV0dXJucyBmcm9tIHRoZQorICB3YWl0LiAgSWYgbm8gdGhyZWFkIHdhcyB3YWl0aW5nIG9uIHRoZSBDViB0aGVuIHRoZXJlIGlzIG5vCisgIGVmZmVjdC48L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPklmIGluc3RlYWQgVDEgYnJvYWRjYXN0cyBvbiBhIENWLCB0aGVuIGFsbCBvZiB0aGUKKyAgd2FpdGluZyB0aHJlYWRzLCByYXRoZXIgdGhhbiBqdXN0IG9uZSBvZiB0aGVtLCBhY3F1aXJlIGEKKyAgaGFwcGVucy1iZWZvcmUgZGVwZW5kZW5jeSBvbiB0aGUgYnJvYWRjYXN0aW5nIHRocmVhZCBhdCB0aGUgcG9pbnQgaXQKKyAgZGlkIHRoZSBicm9hZGNhc3QuPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5BIHRocmVhZCBUMiB0aGF0IGNvbnRpbnVlcyBhZnRlciBjb21wbGV0aW5nIHNlbV93YWl0CisgIG9uIGEgc2VtYXBob3JlIHRoYXQgdGhyZWFkIFQxIHBvc3RzIG9uLCBhY3F1aXJlcyBhIGhhcHBlbnMtYmVmb3JlCisgIGRlcGVuZGVuY2Ugb24gdGhlIHBvc3RpbmcgdGhyZWFkLCBhIGJpdCBsaWtlIGRlcGVuZGVuY2llcyBjYXVzZWQKKyAgbXV0ZXggdW5sb2NrLWxvY2sgcGFpcnMuICBIb3dldmVyLCBzaW5jZSBhIHNlbWFwaG9yZSBjYW4gYmUgcG9zdGVkCisgIG9uIG1hbnkgdGltZXMsIGl0IGlzIHVuc3BlY2lmaWVkIGZyb20gd2hpY2ggb2YgdGhlIHBvc3QgY2FsbHMgdGhlCisgIHdhaXQgY2FsbCBnZXRzIGl0cyBoYXBwZW5zLWJlZm9yZSBkZXBlbmRlbmN5LjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+Rm9yIGEgZ3JvdXAgb2YgdGhyZWFkcyBUMSAuLiBUbiB3aGljaCBhcnJpdmUgYXQgYQorICBiYXJyaWVyIGFuZCB0aGVuIG1vdmUgb24sIGVhY2ggdGhyZWFkIGFmdGVyIHRoZSBjYWxsIGhhcyBhCisgIGhhcHBlbnMtYWZ0ZXIgZGVwZW5kZW5jeSBmcm9tIGFsbCB0aHJlYWRzIGJlZm9yZSB0aGUKKyAgYmFycmllci48L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPkEgbmV3bHktY3JlYXRlZCBjaGlsZCB0aHJlYWQgYWNxdWlyZXMgYW4gaW5pdGlhbAorICBoYXBwZW5zLWFmdGVyIGRlcGVuZGVuY3kgb24gdGhlIHBvaW50IHdoZXJlIGl0cyBwYXJlbnQgY3JlYXRlZCBpdC4KKyAgVGhhdCBpcywgYWxsIG1lbW9yeSBhY2Nlc3NlcyBwZXJmb3JtZWQgYnkgdGhlIHBhcmVudCBwcmlvciB0bworICBjcmVhdGluZyB0aGUgY2hpbGQgYXJlIHJlZ2FyZGVkIGFzIGhhcHBlbmluZy1iZWZvcmUgYWxsIHRoZSBhY2Nlc3NlcworICBvZiB0aGUgY2hpbGQuPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5TaW1pbGFybHksIHdoZW4gYW4gZXhpdGluZyB0aHJlYWQgaXMgcmVhcGVkIHZpYSBhCisgIGNhbGwgdG8gPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5wdGhyZWFkX2pvaW48L2NvZGU+LCBvbmNlIHRoZSBjYWxsIHJldHVybnMsIHRoZQorICByZWFwaW5nIHRocmVhZCBhY3F1aXJlcyBhIGhhcHBlbnMtYWZ0ZXIgZGVwZW5kZW5jeSByZWxhdGl2ZSB0byBhbGwgbWVtb3J5CisgIGFjY2Vzc2VzIG1hZGUgYnkgdGhlIGV4aXRpbmcgdGhyZWFkLjwvcD48L2xpPgorPC91bD48L2Rpdj4KKzxwPkluIHN1bW1hcnk6IEhlbGdyaW5kIGludGVyY2VwdHMgdGhlIGFib3ZlIGxpc3RlZCBldmVudHMsIGFuZCBidWlsZHMgYQorZGlyZWN0ZWQgYWN5Y2xpYyBncmFwaCByZXByZXNlbnRlZCB0aGUgY29sbGVjdGl2ZSBoYXBwZW5zLWJlZm9yZQorZGVwZW5kZW5jaWVzLiAgSXQgYWxzbyBtb25pdG9ycyBhbGwgbWVtb3J5IGFjY2Vzc2VzLjwvcD4KKzxwPklmIGEgbG9jYXRpb24gaXMgYWNjZXNzZWQgYnkgdHdvIGRpZmZlcmVudCB0aHJlYWRzLCBidXQgSGVsZ3JpbmQKK2Nhbm5vdCBmaW5kIGFueSBwYXRoIHRocm91Z2ggdGhlIGhhcHBlbnMtYmVmb3JlIGdyYXBoIGZyb20gb25lIGFjY2VzcwordG8gdGhlIG90aGVyLCB0aGVuIGl0IHJlcG9ydHMgYSByYWNlLjwvcD4KKzxwPlRoZXJlIGFyZSBhIGNvdXBsZSBvZiBjYXZlYXRzOjwvcD4KKzxkaXYgY2xhc3M9Iml0ZW1pemVkbGlzdCI+PHVsIGNsYXNzPSJpdGVtaXplZGxpc3QiIHN0eWxlPSJsaXN0LXN0eWxlLXR5cGU6IGRpc2M7ICI+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5IZWxncmluZCBkb2Vzbid0IGNoZWNrIGZvciBhIHJhY2UgaW4gdGhlIGNhc2Ugd2hlcmUKKyAgYm90aCBhY2Nlc3NlcyBhcmUgcmVhZHMuICBUaGF0IHdvdWxkIGJlIHNpbGx5LCBzaW5jZSBjb25jdXJyZW50CisgIHJlYWRzIGFyZSBoYXJtbGVzcy48L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPlR3byBhY2Nlc3NlcyBhcmUgY29uc2lkZXJlZCB0byBiZSBvcmRlcmVkIGJ5IHRoZQorICBoYXBwZW5zLWJlZm9yZSBkZXBlbmRlbmN5IGV2ZW4gdGhyb3VnaCBhcmJpdHJhcmlseSBsb25nIGNoYWlucyBvZgorICBzeW5jaHJvbmlzYXRpb24gZXZlbnRzLiAgRm9yIGV4YW1wbGUsIGlmIFQxIGFjY2Vzc2VzIHNvbWUgbG9jYXRpb24KKyAgTCwgYW5kIHRoZW4gPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5wdGhyZWFkX2NvbmRfc2lnbmFsczwvY29kZT4gVDIsIHdoaWNoIGxhdGVyCisgIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+cHRocmVhZF9jb25kX3NpZ25hbHM8L2NvZGU+IFQzLCB3aGljaCB0aGVuIGFjY2Vzc2VzIEwsIHRoZW4KKyAgYSBzdWl0YWJsZSBoYXBwZW5zLWJlZm9yZSBkZXBlbmRlbmN5IGV4aXN0cyBiZXR3ZWVuIHRoZSBmaXJzdCBhbmQgc2Vjb25kCisgIGFjY2Vzc2VzLCBldmVuIHRob3VnaCBpdCBpbnZvbHZlcyB0d28gZGlmZmVyZW50IGludGVyLXRocmVhZAorICBzeW5jaHJvbmlzYXRpb24gZXZlbnRzLjwvcD48L2xpPgorPC91bD48L2Rpdj4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDIiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJoZy1tYW51YWwuZGF0YS1yYWNlcy5lcnJtc2dzIj48L2E+Ny40LjMuoEludGVycHJldGluZyBSYWNlIEVycm9yIE1lc3NhZ2VzPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPkhlbGdyaW5kJ3MgcmFjZSBkZXRlY3Rpb24gYWxnb3JpdGhtIGNvbGxlY3RzIGEgbG90IG9mCitpbmZvcm1hdGlvbiwgYW5kIHRyaWVzIHRvIHByZXNlbnQgaXQgaW4gYSBoZWxwZnVsIHdheSB3aGVuIGEgcmFjZSBpcworZGV0ZWN0ZWQuICBIZXJlJ3MgYW4gZXhhbXBsZTo8L3A+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CitUaHJlYWQgIzIgd2FzIGNyZWF0ZWQKKyAgIGF0IDB4NTExQzA4RTogY2xvbmUgKGluIC9saWI2NC9saWJjLTIuOC5zbykKKyAgIGJ5IDB4NEUzMzNBNDogZG9fY2xvbmUgKGluIC9saWI2NC9saWJwdGhyZWFkLTIuOC5zbykKKyAgIGJ5IDB4NEUzM0EzMDogcHRocmVhZF9jcmVhdGVAQEdMSUJDXzIuMi41IChpbiAvbGliNjQvbGlicHRocmVhZC0yLjguc28pCisgICBieSAweDRDMjk5RDQ6IHB0aHJlYWRfY3JlYXRlQCogKGhnX2ludGVyY2VwdHMuYzoyMTQpCisgICBieSAweDQwMDhGMjogbWFpbiAodGMyMV9wdGhvbmNlLmM6ODYpCisKK1RocmVhZCAjMyB3YXMgY3JlYXRlZAorICAgYXQgMHg1MTFDMDhFOiBjbG9uZSAoaW4gL2xpYjY0L2xpYmMtMi44LnNvKQorICAgYnkgMHg0RTMzM0E0OiBkb19jbG9uZSAoaW4gL2xpYjY0L2xpYnB0aHJlYWQtMi44LnNvKQorICAgYnkgMHg0RTMzQTMwOiBwdGhyZWFkX2NyZWF0ZUBAR0xJQkNfMi4yLjUgKGluIC9saWI2NC9saWJwdGhyZWFkLTIuOC5zbykKKyAgIGJ5IDB4NEMyOTlENDogcHRocmVhZF9jcmVhdGVAKiAoaGdfaW50ZXJjZXB0cy5jOjIxNCkKKyAgIGJ5IDB4NDAwOEYyOiBtYWluICh0YzIxX3B0aG9uY2UuYzo4NikKKworUG9zc2libGUgZGF0YSByYWNlIGR1cmluZyByZWFkIG9mIHNpemUgNCBhdCAweDYwMTA3MCBieSB0aHJlYWQgIzMKK0xvY2tzIGhlbGQ6IG5vbmUKKyAgIGF0IDB4NDAwODdBOiBjaGlsZCAodGMyMV9wdGhvbmNlLmM6NzQpCisgICBieSAweDRDMjlBRkY6IG15dGhyZWFkX3dyYXBwZXIgKGhnX2ludGVyY2VwdHMuYzoxOTQpCisgICBieSAweDRFMzQwM0Y6IHN0YXJ0X3RocmVhZCAoaW4gL2xpYjY0L2xpYnB0aHJlYWQtMi44LnNvKQorICAgYnkgMHg1MTFDMENDOiBjbG9uZSAoaW4gL2xpYjY0L2xpYmMtMi44LnNvKQorCitUaGlzIGNvbmZsaWN0cyB3aXRoIGEgcHJldmlvdXMgd3JpdGUgb2Ygc2l6ZSA0IGJ5IHRocmVhZCAjMgorTG9ja3MgaGVsZDogbm9uZQorICAgYXQgMHg0MDA4ODM6IGNoaWxkICh0YzIxX3B0aG9uY2UuYzo3NCkKKyAgIGJ5IDB4NEMyOUFGRjogbXl0aHJlYWRfd3JhcHBlciAoaGdfaW50ZXJjZXB0cy5jOjE5NCkKKyAgIGJ5IDB4NEUzNDAzRjogc3RhcnRfdGhyZWFkIChpbiAvbGliNjQvbGlicHRocmVhZC0yLjguc28pCisgICBieSAweDUxMUMwQ0M6IGNsb25lIChpbiAvbGliNjQvbGliYy0yLjguc28pCisKK0xvY2F0aW9uIDB4NjAxMDcwIGlzIDAgYnl0ZXMgaW5zaWRlIGxvY2FsIHZhciAidW5wcm90ZWN0ZWQyIgorZGVjbGFyZWQgYXQgdGMyMV9wdGhvbmNlLmM6NTEsIGluIGZyYW1lICMwIG9mIHRocmVhZCAzCis8L3ByZT4KKzxwPkhlbGdyaW5kIGZpcnN0IGFubm91bmNlcyB0aGUgY3JlYXRpb24gcG9pbnRzIG9mIGFueSB0aHJlYWRzCityZWZlcmVuY2VkIGluIHRoZSBlcnJvciBtZXNzYWdlLiAgVGhpcyBpcyBzbyBpdCBjYW4gc3BlYWsgY29uY2lzZWx5CithYm91dCB0aHJlYWRzIHdpdGhvdXQgcmVwZWF0ZWRseSBwcmludGluZyB0aGVpciBjcmVhdGlvbiBwb2ludCBjYWxsCitzdGFja3MuICBFYWNoIHRocmVhZCBpcyBvbmx5IGV2ZXIgYW5ub3VuY2VkIG9uY2UsIHRoZSBmaXJzdCB0aW1lIGl0CithcHBlYXJzIGluIGFueSBIZWxncmluZCBlcnJvciBtZXNzYWdlLjwvcD4KKzxwPlRoZSBtYWluIGVycm9yIG1lc3NhZ2UgYmVnaW5zIGF0IHRoZSB0ZXh0CisiPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5Qb3NzaWJsZSBkYXRhIHJhY2UgZHVyaW5nIHJlYWQ8L2NvZGU+Ii4gIEF0Cit0aGUgc3RhcnQgaXMgaW5mb3JtYXRpb24geW91IHdvdWxkIGV4cGVjdCB0byBzZWUgLS0gYWRkcmVzcyBhbmQgc2l6ZQorb2YgdGhlIHJhY2luZyBhY2Nlc3MsIHdoZXRoZXIgYSByZWFkIG9yIGEgd3JpdGUsIGFuZCB0aGUgY2FsbCBzdGFjayBhdAordGhlIHBvaW50IGl0IHdhcyBkZXRlY3RlZC48L3A+Cis8cD5BIHNlY29uZCBjYWxsIHN0YWNrIGlzIHByZXNlbnRlZCBzdGFydGluZyBhdCB0aGUgdGV4dAorIjxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+VGhpcyBjb25mbGljdHMgd2l0aCBhIHByZXZpb3VzCit3cml0ZTwvY29kZT4iLiAgVGhpcyBzaG93cyBhIHByZXZpb3VzIGFjY2VzcyB3aGljaCBhbHNvCithY2Nlc3NlZCB0aGUgc3RhdGVkIGFkZHJlc3MsIGFuZCB3aGljaCBpcyBiZWxpZXZlZCB0byBiZSByYWNpbmcKK2FnYWluc3QgdGhlIGFjY2VzcyBpbiB0aGUgZmlyc3QgY2FsbCBzdGFjay4gTm90ZSB0aGF0IHRoaXMgc2Vjb25kCitjYWxsIHN0YWNrIGlzIGxpbWl0ZWQgdG8gYSBtYXhpbXVtIG9mIDggZW50cmllcyB0byBsaW1pdCB0aGUKK21lbW9yeSB1c2FnZS48L3A+Cis8cD5GaW5hbGx5LCBIZWxncmluZCBtYXkgYXR0ZW1wdCB0byBnaXZlIGEgZGVzY3JpcHRpb24gb2YgdGhlCityYWNlZC1vbiBhZGRyZXNzIGluIHNvdXJjZSBsZXZlbCB0ZXJtcy4gIEluIHRoaXMgZXhhbXBsZSwgaXQKK2lkZW50aWZpZXMgaXQgYXMgYSBsb2NhbCB2YXJpYWJsZSwgc2hvd3MgaXRzIG5hbWUsIGRlY2xhcmF0aW9uIHBvaW50LAorYW5kIGluIHdoaWNoIGZyYW1lIChvZiB0aGUgZmlyc3QgY2FsbCBzdGFjaykgaXQgbGl2ZXMuICBOb3RlIHRoYXQgdGhpcworaW5mb3JtYXRpb24gaXMgb25seSBzaG93biB3aGVuIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj4tLXJlYWQtdmFyLWluZm89eWVzPC9jb2RlPgoraXMgc3BlY2lmaWVkIG9uIHRoZSBjb21tYW5kIGxpbmUuICBUaGF0J3MgYmVjYXVzZSByZWFkaW5nIHRoZSBEV0FSRjMKK2RlYnVnIGluZm9ybWF0aW9uIGluIGVub3VnaCBkZXRhaWwgdG8gY2FwdHVyZSB2YXJpYWJsZSB0eXBlIGFuZAorbG9jYXRpb24gaW5mb3JtYXRpb24gbWFrZXMgSGVsZ3JpbmQgbXVjaCBzbG93ZXIgYXQgc3RhcnR1cCwgYW5kIGFsc28KK3JlcXVpcmVzIGNvbnNpZGVyYWJsZSBhbW91bnRzIG9mIG1lbW9yeSwgZm9yIGxhcmdlIHByb2dyYW1zLgorPC9wPgorPHA+T25jZSB5b3UgaGF2ZSB5b3VyIHR3byBjYWxsIHN0YWNrcywgaG93IGRvIHlvdSBmaW5kIHRoZSByb290CitjYXVzZSBvZiB0aGUgcmFjZT88L3A+Cis8cD5UaGUgZmlyc3QgdGhpbmcgdG8gZG8gaXMgZXhhbWluZSB0aGUgc291cmNlIGxvY2F0aW9ucyByZWZlcnJlZAordG8gYnkgZWFjaCBjYWxsIHN0YWNrLiAgVGhleSBzaG91bGQgYm90aCBzaG93IGFuIGFjY2VzcyB0byB0aGUgc2FtZQorbG9jYXRpb24sIG9yIHZhcmlhYmxlLjwvcD4KKzxwPk5vdyBmaWd1cmUgb3V0IGhvdyBob3cgdGhhdCBsb2NhdGlvbiBzaG91bGQgaGF2ZSBiZWVuIG1hZGUKK3RocmVhZC1zYWZlOjwvcD4KKzxkaXYgY2xhc3M9Iml0ZW1pemVkbGlzdCI+PHVsIGNsYXNzPSJpdGVtaXplZGxpc3QiIHN0eWxlPSJsaXN0LXN0eWxlLXR5cGU6IGRpc2M7ICI+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5QZXJoYXBzIHRoZSBsb2NhdGlvbiB3YXMgaW50ZW5kZWQgdG8gYmUgcHJvdGVjdGVkIGJ5CisgIGEgbXV0ZXg/ICBJZiBzbywgeW91IG5lZWQgdG8gbG9jayBhbmQgdW5sb2NrIHRoZSBtdXRleCBhdCBib3RoCisgIGFjY2VzcyBwb2ludHMsIGV2ZW4gaWYgb25lIG9mIHRoZSBhY2Nlc3NlcyBpcyByZXBvcnRlZCB0byBiZSBhIHJlYWQuCisgIERpZCB5b3UgcGVyaGFwcyBmb3JnZXQgdGhlIGxvY2tpbmcgYXQgb25lIG9yIG90aGVyIG9mIHRoZSBhY2Nlc3Nlcz8KKyAgVG8gaGVscCB5b3UgZG8gdGhpcywgSGVsZ3JpbmQgc2hvd3MgdGhlIHNldCBvZiBsb2NrcyBoZWxkIGJ5IGVhY2gKKyAgdGhyZWFkcyBhdCB0aGUgdGltZSB0aGV5IGFjY2Vzc2VkIHRoZSByYWNlZC1vbiBsb2NhdGlvbi48L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPgorPHA+QWx0ZXJuYXRpdmVseSwgcGVyaGFwcyB5b3UgaW50ZW5kZWQgdG8gdXNlIGEgc29tZQorICBvdGhlciBzY2hlbWUgdG8gbWFrZSBpdCBzYWZlLCBzdWNoIGFzIHNpZ25hbGxpbmcgb24gYSBjb25kaXRpb24KKyAgdmFyaWFibGUuICBJbiBhbGwgc3VjaCBjYXNlcywgdHJ5IHRvIGZpbmQgYSBzeW5jaHJvbmlzYXRpb24gZXZlbnQKKyAgKG9yIGEgY2hhaW4gdGhlcmVvZikgd2hpY2ggc2VwYXJhdGVzIHRoZSBlYXJsaWVyLW9ic2VydmVkIGFjY2VzcyAoYXMKKyAgc2hvd24gaW4gdGhlIHNlY29uZCBjYWxsIHN0YWNrKSBmcm9tIHRoZSBsYXRlci1vYnNlcnZlZCBhY2Nlc3MgKGFzCisgIHNob3duIGluIHRoZSBmaXJzdCBjYWxsIHN0YWNrKS4gIEluIG90aGVyIHdvcmRzLCB0cnkgdG8gZmluZAorICBldmlkZW5jZSB0aGF0IHRoZSBlYXJsaWVyIGFjY2VzcyAiaGFwcGVucy1iZWZvcmUiIHRoZSBsYXRlciBhY2Nlc3MuCisgIFNlZSB0aGUgcHJldmlvdXMgc3Vic2VjdGlvbiBmb3IgYW4gZXhwbGFuYXRpb24gb2YgdGhlIGhhcHBlbnMtYmVmb3JlCisgIHJlbGF0aW9uLjwvcD4KKzxwPgorICBUaGUgZmFjdCB0aGF0IEhlbGdyaW5kIGlzIHJlcG9ydGluZyBhIHJhY2UgbWVhbnMgaXQgZGlkIG5vdCBvYnNlcnZlCisgIGFueSBoYXBwZW5zLWJlZm9yZSByZWxhdGlvbiBiZXR3ZWVuIHRoZSB0d28gYWNjZXNzZXMuICBJZgorICBIZWxncmluZCBpcyB3b3JraW5nIGNvcnJlY3RseSwgaXQgc2hvdWxkIGFsc28gYmUgdGhlIGNhc2UgdGhhdCB5b3UKKyAgYWxzbyBjYW5ub3QgZmluZCBhbnkgc3VjaCByZWxhdGlvbiwgZXZlbiBvbiBkZXRhaWxlZCBpbnNwZWN0aW9uCisgIG9mIHRoZSBzb3VyY2UgY29kZS4gIEhvcGVmdWxseSwgdGhvdWdoLCB5b3VyIGluc3BlY3Rpb24gb2YgdGhlIGNvZGUKKyAgd2lsbCBzaG93IHdoZXJlIHRoZSBtaXNzaW5nIHN5bmNocm9uaXNhdGlvbiBvcGVyYXRpb24ocykgc2hvdWxkIGhhdmUKKyAgYmVlbi48L3A+Cis8L2xpPgorPC91bD48L2Rpdj4KKzwvZGl2PgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MSI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPgorPGEgbmFtZT0iaGctbWFudWFsLmVmZmVjdGl2ZS11c2UiPjwvYT43LjUuoEhpbnRzIGFuZCBUaXBzIGZvciBFZmZlY3RpdmUgVXNlIG9mIEhlbGdyaW5kPC9oMj48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPkhlbGdyaW5kIGNhbiBiZSB2ZXJ5IGhlbHBmdWwgaW4gZmluZGluZyBhbmQgcmVzb2x2aW5nCit0aHJlYWRpbmctcmVsYXRlZCBwcm9ibGVtcy4gIExpa2UgYWxsIHNvcGhpc3RpY2F0ZWQgdG9vbHMsIGl0IGlzIG1vc3QKK2VmZmVjdGl2ZSB3aGVuIHlvdSB1bmRlcnN0YW5kIGhvdyB0byBwbGF5IHRvIGl0cyBzdHJlbmd0aHMuPC9wPgorPHA+SGVsZ3JpbmQgd2lsbCBiZSBsZXNzIGVmZmVjdGl2ZSB3aGVuIHlvdSBtZXJlbHkgdGhyb3cgYW4KK2V4aXN0aW5nIHRocmVhZGVkIHByb2dyYW0gYXQgaXQgYW5kIHRyeSB0byBtYWtlIHNlbnNlIG9mIGFueSByZXBvcnRlZAorZXJyb3JzLiAgSXQgd2lsbCBiZSBtb3JlIGVmZmVjdGl2ZSBpZiB5b3UgZGVzaWduIHRocmVhZGVkIHByb2dyYW1zCitmcm9tIHRoZSBzdGFydCBpbiBhIHdheSB0aGF0IGhlbHBzIEhlbGdyaW5kIHZlcmlmeSBjb3JyZWN0bmVzcy4gIFRoZQorc2FtZSBpcyB0cnVlIGZvciBmaW5kaW5nIG1lbW9yeSBlcnJvcnMgd2l0aCBNZW1jaGVjaywgYnV0IGFwcGxpZXMgbW9yZQoraGVyZSwgYmVjYXVzZSB0aHJlYWQgY2hlY2tpbmcgaXMgYSBoYXJkZXIgcHJvYmxlbS4gIENvbnNlcXVlbnRseSBpdCBpcworbXVjaCBlYXNpZXIgdG8gd3JpdGUgYSBjb3JyZWN0IHByb2dyYW0gZm9yIHdoaWNoIEhlbGdyaW5kIGZhbHNlbHkKK3JlcG9ydHMgKHRocmVhZGluZykgZXJyb3JzIHRoYW4gaXQgaXMgdG8gd3JpdGUgYSBjb3JyZWN0IHByb2dyYW0gZm9yCit3aGljaCBNZW1jaGVjayBmYWxzZWx5IHJlcG9ydHMgKG1lbW9yeSkgZXJyb3JzLjwvcD4KKzxwPldpdGggdGhhdCBpbiBtaW5kLCBoZXJlIGFyZSBzb21lIHRpcHMsIGxpc3RlZCBtb3N0IGltcG9ydGFudCBmaXJzdCwKK2ZvciBnZXR0aW5nIHJlbGlhYmxlIHJlc3VsdHMgYW5kIGF2b2lkaW5nIGZhbHNlIGVycm9ycy4gIFRoZSBmaXJzdCB0d28KK2FyZSBjcml0aWNhbC4gIEFueSB2aW9sYXRpb25zIG9mIHRoZW0gd2lsbCBzd2FtcCB5b3Ugd2l0aCBodWdlIG51bWJlcnMKK29mIGZhbHNlIGRhdGEtcmFjZSBlcnJvcnMuPC9wPgorPGRpdiBjbGFzcz0ib3JkZXJlZGxpc3QiPjxvbCBjbGFzcz0ib3JkZXJlZGxpc3QiIHR5cGU9IjEiPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+Cis8cD5NYWtlIHN1cmUgeW91ciBhcHBsaWNhdGlvbiwgYW5kIGFsbCB0aGUgbGlicmFyaWVzIGl0IHVzZXMsCisgICAgdXNlIHRoZSBQT1NJWCB0aHJlYWRpbmcgcHJpbWl0aXZlcy4gIEhlbGdyaW5kIG5lZWRzIHRvIGJlIGFibGUgdG8KKyAgICBzZWUgYWxsIGV2ZW50cyBwZXJ0YWluaW5nIHRvIHRocmVhZCBjcmVhdGlvbiwgZXhpdCwgbG9ja2luZyBhbmQKKyAgICBvdGhlciBzeW5jaHJvbmlzYXRpb24gZXZlbnRzLiAgVG8gZG8gc28gaXQgaW50ZXJjZXB0cyBtYW55IFBPU0lYCisgICAgcHRocmVhZHMgZnVuY3Rpb25zLjwvcD4KKzxwPkRvIG5vdCByb2xsIHlvdXIgb3duIHRocmVhZGluZyBwcmltaXRpdmVzIChtdXRleGVzLCBldGMpCisgICAgZnJvbSBjb21iaW5hdGlvbnMgb2YgdGhlIExpbnV4IGZ1dGV4IHN5c2NhbGwsIGF0b21pYyBjb3VudGVycywgZXRjLgorICAgIFRoZXNlIHRocm93IEhlbGdyaW5kJ3MgaW50ZXJuYWwgd2hhdCdzLWdvaW5nLW9uIG1vZGVscworICAgIHdheSBvZmYgY291cnNlIGFuZCB3aWxsIGdpdmUgYm9ndXMgcmVzdWx0cy48L3A+Cis8cD5BbHNvLCBkbyBub3QgcmVpbXBsZW1lbnQgZXhpc3RpbmcgUE9TSVggYWJzdHJhY3Rpb25zIHVzaW5nCisgICAgb3RoZXIgUE9TSVggYWJzdHJhY3Rpb25zLiAgRm9yIGV4YW1wbGUsIGRvbid0IGJ1aWxkIHlvdXIgb3duCisgICAgc2VtYXBob3JlIHJvdXRpbmVzIG9yIHJlYWRlci13cml0ZXIgbG9ja3MgZnJvbSBQT1NJWCBtdXRleGVzIGFuZAorICAgIGNvbmRpdGlvbiB2YXJpYWJsZXMuICBJbnN0ZWFkIHVzZSBQT1NJWCByZWFkZXItd3JpdGVyIGxvY2tzIGFuZAorICAgIHNlbWFwaG9yZXMgZGlyZWN0bHksIHNpbmNlIEhlbGdyaW5kIHN1cHBvcnRzIHRoZW0gZGlyZWN0bHkuPC9wPgorPHA+SGVsZ3JpbmQgZGlyZWN0bHkgc3VwcG9ydHMgdGhlIGZvbGxvd2luZyBQT1NJWCB0aHJlYWRpbmcKKyAgICBhYnN0cmFjdGlvbnM6IG11dGV4ZXMsIHJlYWRlci13cml0ZXIgbG9ja3MsIGNvbmRpdGlvbiB2YXJpYWJsZXMKKyAgICAoYnV0IHNlZSBiZWxvdyksIHNlbWFwaG9yZXMgYW5kIGJhcnJpZXJzLiAgQ3VycmVudGx5IHNwaW5sb2NrcworICAgIGFyZSBub3Qgc3VwcG9ydGVkLCBhbHRob3VnaCB0aGV5IGNvdWxkIGJlIGluIGZ1dHVyZS48L3A+Cis8cD5BdCB0aGUgdGltZSBvZiB3cml0aW5nLCB0aGUgZm9sbG93aW5nIHBvcHVsYXIgTGludXggcGFja2FnZXMKKyAgICBhcmUga25vd24gdG8gaW1wbGVtZW50IHRoZWlyIG93biB0aHJlYWRpbmcgcHJpbWl0aXZlczo8L3A+Cis8ZGl2IGNsYXNzPSJpdGVtaXplZGxpc3QiPjx1bCBjbGFzcz0iaXRlbWl6ZWRsaXN0IiBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOiBkaXNjOyAiPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+UXQgdmVyc2lvbiA0LlguICBRdCAzLlggaXMgaGFybWxlc3MgaW4gdGhhdCBpdAorICAgICAgb25seSB1c2VzIFBPU0lYIHB0aHJlYWRzIHByaW1pdGl2ZXMuICBVbmZvcnR1bmF0ZWx5IFF0IDQuWCAKKyAgICAgIGhhcyBpdHMgb3duIGltcGxlbWVudGF0aW9uIG9mIG11dGV4ZXMgKFFNdXRleCkgYW5kIHRocmVhZCByZWFwaW5nLgorICAgICAgSGVsZ3JpbmQgMy40LnggY29udGFpbnMgZGlyZWN0IHN1cHBvcnQKKyAgICAgIGZvciBRdCA0LlggdGhyZWFkaW5nLCB3aGljaCBpcyBleHBlcmltZW50YWwgYnV0IGlzIGJlbGlldmVkIHRvCisgICAgICB3b3JrIGZhaXJseSB3ZWxsLiAgQSBzaWRlIGVmZmVjdCBvZiBzdXBwb3J0aW5nIFF0IDQgZGlyZWN0bHkgaXMKKyAgICAgIHRoYXQgSGVsZ3JpbmQgY2FuIGJlIHVzZWQgdG8gZGVidWcgS0RFNCBhcHBsaWNhdGlvbnMuICBBcyB0aGlzCisgICAgICBpcyBhbiBleHBlcmltZW50YWwgZmVhdHVyZSwgd2Ugd291bGQgcGFydGljdWxhcmx5IGFwcHJlY2lhdGUKKyAgICAgIGZlZWRiYWNrIGZyb20gZm9sa3Mgd2hvIGhhdmUgdXNlZCBIZWxncmluZCB0byBzdWNjZXNzZnVsbHkgZGVidWcKKyAgICAgIFF0IDQgYW5kL29yIEtERTQgYXBwbGljYXRpb25zLjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+Cis8cD5SdW50aW1lIHN1cHBvcnQgbGlicmFyeSBmb3IgR05VIE9wZW5NUCAocGFydCBvZgorICAgICAgR0NDKSwgYXQgbGVhc3QgZm9yIEdDQyB2ZXJzaW9ucyA0LjIgYW5kIDQuMy4gIFRoZSBHTlUgT3Blbk1QIHJ1bnRpbWUKKyAgICAgIGxpYnJhcnkgKDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+bGliZ29tcC5zbzwvY29kZT4pIGNvbnN0cnVjdHMgaXRzIG93bgorICAgICAgc3luY2hyb25pc2F0aW9uIHByaW1pdGl2ZXMgdXNpbmcgY29tYmluYXRpb25zIG9mIGF0b21pYyBtZW1vcnkKKyAgICAgIGluc3RydWN0aW9ucyBhbmQgdGhlIGZ1dGV4IHN5c2NhbGwsIHdoaWNoIGNhdXNlcyB0b3RhbCBjaGFvcyBzaW5jZSBpbgorICAgICAgSGVsZ3JpbmQgc2luY2UgaXQgY2Fubm90ICJzZWUiIHRob3NlLjwvcD4KKzxwPkZvcnR1bmF0ZWx5LCB0aGlzIGNhbiBiZSBzb2x2ZWQgdXNpbmcgYSBjb25maWd1cmF0aW9uLXRpbWUKKyAgICAgIG9wdGlvbiAoZm9yIEdDQykuICBSZWJ1aWxkIEdDQyBmcm9tIHNvdXJjZSwgYW5kIGNvbmZpZ3VyZSB1c2luZworICAgICAgPGNvZGUgY2xhc3M9InZhcm5hbWUiPi0tZGlzYWJsZS1saW51eC1mdXRleDwvY29kZT4uCisgICAgICBUaGlzIG1ha2VzIGxpYmdvbXAuc28gdXNlIHRoZSBzdGFuZGFyZAorICAgICAgUE9TSVggdGhyZWFkaW5nIHByaW1pdGl2ZXMgaW5zdGVhZC4gIE5vdGUgdGhhdCB0aGlzIHdhcyB0ZXN0ZWQKKyAgICAgIHVzaW5nIEdDQyA0LjIuMyBhbmQgaGFzIG5vdCBiZWVuIHJlLXRlc3RlZCB1c2luZyBtb3JlIHJlY2VudCBHQ0MKKyAgICAgIHZlcnNpb25zLiAgV2Ugd291bGQgYXBwcmVjaWF0ZSBoZWFyaW5nIGFib3V0IGFueSBzdWNjZXNzZXMgb3IKKyAgICAgIGZhaWx1cmVzIHdpdGggbW9yZSByZWNlbnQgdmVyc2lvbnMuPC9wPgorPC9saT4KKzwvdWw+PC9kaXY+Cis8cD5JZiB5b3UgbXVzdCBpbXBsZW1lbnQgeW91ciBvd24gdGhyZWFkaW5nIHByaW1pdGl2ZXMsIHRoZXJlCisgICAgICBhcmUgYSBzZXQgb2YgY2xpZW50IHJlcXVlc3QgbWFjcm9zCisgICAgICBpbiA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmhlbGdyaW5kLmg8L2NvZGU+IHRvIGhlbHAgeW91CisgICAgICBkZXNjcmliZSB5b3VyIHByaW1pdGl2ZXMgdG8gSGVsZ3JpbmQuICBZb3Ugc2hvdWxkIGJlIGFibGUgdG8KKyAgICAgIG1hcmsgdXAgbXV0ZXhlcywgY29uZGl0aW9uIHZhcmlhYmxlcywgZXRjLCB3aXRob3V0IGRpZmZpY3VsdHkuCisgICAgPC9wPgorPHA+CisgICAgICBJdCBpcyBhbHNvIHBvc3NpYmxlIHRvIG1hcmsgdXAgdGhlIGVmZmVjdHMgb2YgdGhyZWFkLXNhZmUKKyAgICAgIHJlZmVyZW5jZSBjb3VudGluZyB1c2luZyB0aGUKKyAgICAgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+QU5OT1RBVEVfSEFQUEVOU19CRUZPUkU8L2NvZGU+LAorICAgICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5BTk5PVEFURV9IQVBQRU5TX0FGVEVSPC9jb2RlPiBhbmQKKyAgICAgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+QU5OT1RBVEVfSEFQUEVOU19CRUZPUkVfRk9SR0VUX0FMTDwvY29kZT4sCisgICAgICBtYWNyb3MuICBUaHJlYWQtc2FmZSByZWZlcmVuY2UgY291bnRpbmcgdXNpbmcgYW4gYXRvbWljYWxseQorICAgICAgaW5jcmVtZW50ZWQvZGVjcmVtZW50ZWQgcmVmY291bnQgdmFyaWFibGUgY2F1c2VzIEhlbGdyaW5kCisgICAgICBwcm9ibGVtcyBiZWNhdXNlIGEgb25lLXRvLXplcm8gdHJhbnNpdGlvbiBvZiB0aGUgcmVmZXJlbmNlIGNvdW50CisgICAgICBtZWFucyB0aGUgYWNjZXNzaW5nIHRocmVhZCBoYXMgZXhjbHVzaXZlIG93bmVyc2hpcCBvZiB0aGUKKyAgICAgIGFzc29jaWF0ZWQgcmVzb3VyY2UgKG5vcm1hbGx5LCBhIEMrKyBvYmplY3QpIGFuZCBjYW4gdGhlcmVmb3JlCisgICAgICBhY2Nlc3MgaXQgKG5vcm1hbGx5LCB0byBydW4gaXRzIGRlc3RydWN0b3IpIHdpdGhvdXQgbG9ja2luZy4KKyAgICAgIEhlbGdyaW5kIGRvZXNuJ3QgdW5kZXJzdGFuZCB0aGlzLCBhbmQgbWFya3VwIGlzIGVzc2VudGlhbCB0bworICAgICAgYXZvaWQgZmFsc2UgcG9zaXRpdmVzLgorICAgIDwvcD4KKzxwPgorICAgICAgSGVyZSBhcmUgcmVjb21tZW5kZWQgZ3VpZGVsaW5lcyBmb3IgbWFya2luZyB1cCB0aHJlYWQgc2FmZQorICAgICAgcmVmZXJlbmNlIGNvdW50aW5nIGluIEMrKy4gIFlvdSBvbmx5IG5lZWQgdG8gbWFyayB1cCB5b3VyCisgICAgICByZWxlYXNlIG1ldGhvZHMgLS0gdGhlIG9uZXMgd2hpY2ggZGVjcmVtZW50IHRoZSByZWZlcmVuY2UgY291bnQuCisgICAgICBHaXZlbiBhIGNsYXNzIGxpa2UgdGhpczoKKyAgICA8L3A+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CitjbGFzcyBNeUNsYXNzIHsKKyAgIHVuc2lnbmVkIGludCBtUmVmQ291bnQ7CisKKyAgIHZvaWQgUmVsZWFzZSAoIHZvaWQgKSB7CisgICAgICB1bnNpZ25lZCBpbnQgbmV3Q291bnQgPSBhdG9taWNfZGVjcmVtZW50KCZhbXA7bVJlZkNvdW50KTsKKyAgICAgIGlmIChuZXdDb3VudCA9PSAwKSB7CisgICAgICAgICBkZWxldGUgdGhpczsKKyAgICAgIH0KKyAgIH0KK30KKzwvcHJlPgorPHA+CisgICAgIHRoZSByZWxlYXNlIG1ldGhvZCBzaG91bGQgYmUgbWFya2VkIHVwIGFzIGZvbGxvd3M6CisgICA8L3A+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CisgICB2b2lkIFJlbGVhc2UgKCB2b2lkICkgeworICAgICAgdW5zaWduZWQgaW50IG5ld0NvdW50ID0gYXRvbWljX2RlY3JlbWVudCgmYW1wO21SZWZDb3VudCk7CisgICAgICBpZiAobmV3Q291bnQgPT0gMCkgeworICAgICAgICAgQU5OT1RBVEVfSEFQUEVOU19BRlRFUigmYW1wO21SZWZDb3VudCk7CisgICAgICAgICBBTk5PVEFURV9IQVBQRU5TX0JFRk9SRV9GT1JHRVRfQUxMKCZhbXA7bVJlZkNvdW50KTsKKyAgICAgICAgIGRlbGV0ZSB0aGlzOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgIEFOTk9UQVRFX0hBUFBFTlNfQkVGT1JFKCZhbXA7bVJlZkNvdW50KTsKKyAgICAgIH0KKyAgIH0KKzwvcHJlPgorPHA+CisgICAgICBUaGVyZSBhcmUgYSBudW1iZXIgb2YgY29tcGxleCwgbW9zdGx5LXRoZW9yZXRpY2FsIG9iamVjdGlvbnMgdG8KKyAgICAgIHRoaXMgc2NoZW1lLiAgRnJvbSBhIHRoZW9yZXRpY2FsIHN0YW5kcG9pbnQgaXQgYXBwZWFycyB0byBiZQorICAgICAgaW1wb3NzaWJsZSB0byBkZXZpc2UgYSBtYXJrdXAgc2NoZW1lIHdoaWNoIGlzIGNvbXBsZXRlbHkgY29ycmVjdAorICAgICAgaW4gdGhlIHNlbnNlIG9mIGd1YXJhbnRlZWluZyB0byByZW1vdmUgYWxsIGZhbHNlIHJhY2VzLiAgVGhlCisgICAgICBwcm9wb3NlZCBzY2hlbWUgaG93ZXZlciB3b3JrcyB3ZWxsIGluIHByYWN0aWNlLgorICAgIDwvcD4KKzwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj4KKzxwPkF2b2lkIG1lbW9yeSByZWN5Y2xpbmcuICBJZiB5b3UgY2FuJ3QgYXZvaWQgaXQsIHlvdSBtdXN0IHVzZQorICAgIHRlbGwgSGVsZ3JpbmQgd2hhdCBpcyBnb2luZyBvbiB2aWEgdGhlCisgICAgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5WQUxHUklORF9IR19DTEVBTl9NRU1PUlk8L2NvZGU+IGNsaWVudCByZXF1ZXN0IChpbgorICAgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+aGVsZ3JpbmQuaDwvY29kZT4pLjwvcD4KKzxwPkhlbGdyaW5kIGlzIGF3YXJlIG9mIHN0YW5kYXJkIGhlYXAgbWVtb3J5IGFsbG9jYXRpb24gYW5kCisgICAgZGVhbGxvY2F0aW9uIHRoYXQgb2NjdXJzIHZpYQorICAgIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+bWFsbG9jPC9jb2RlPi88Y29kZSBjbGFzcz0iZnVuY3Rpb24iPmZyZWU8L2NvZGU+Lzxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+bmV3PC9jb2RlPi88Y29kZSBjbGFzcz0iZnVuY3Rpb24iPmRlbGV0ZTwvY29kZT4KKyAgICBhbmQgZnJvbSBlbnRyeSBhbmQgZXhpdCBvZiBzdGFjayBmcmFtZXMuICBJbiBwYXJ0aWN1bGFyLCB3aGVuIG1lbW9yeSBpcworICAgIGRlYWxsb2NhdGVkIHZpYSA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPmZyZWU8L2NvZGU+LCA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPmRlbGV0ZTwvY29kZT4sCisgICAgb3IgZnVuY3Rpb24gZXhpdCwgSGVsZ3JpbmQgY29uc2lkZXJzIHRoYXQgbWVtb3J5IGNsZWFuLCBzbyB3aGVuIGl0IGlzCisgICAgZXZlbnR1YWxseSByZWFsbG9jYXRlZCwgaXRzIGhpc3RvcnkgaXMgaXJyZWxldmFudC48L3A+Cis8cD5Ib3dldmVyLCBpdCBpcyBjb21tb24gcHJhY3RpY2UgdG8gaW1wbGVtZW50IG1lbW9yeSByZWN5Y2xpbmcKKyAgICBzY2hlbWVzLiAgSW4gdGhlc2UsIG1lbW9yeSB0byBiZSBmcmVlZCBpcyBub3QgaGFuZGVkIHRvCisgICAgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5mcmVlPC9jb2RlPi88Y29kZSBjbGFzcz0iZnVuY3Rpb24iPmRlbGV0ZTwvY29kZT4sIGJ1dCBpbnN0ZWFkIHB1dAorICAgIGludG8gYSBwb29sIG9mIGZyZWUgYnVmZmVycyB0byBiZSBoYW5kZWQgb3V0IGFnYWluIGFzIHJlcXVpcmVkLiAgVGhlCisgICAgcHJvYmxlbSBpcyB0aGF0IEhlbGdyaW5kIGhhcyBubworICAgIHdheSB0byBrbm93IHRoYXQgc3VjaCBtZW1vcnkgaXMgbG9naWNhbGx5IG5vIGxvbmdlciBpbiB1c2UsIGFuZAorICAgIGl0cyBoaXN0b3J5IGlzIGlycmVsZXZhbnQuICBIZW5jZSB5b3UgbXVzdCBtYWtlIHRoYXQgZXhwbGljaXQsCisgICAgdXNpbmcgdGhlIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+VkFMR1JJTkRfSEdfQ0xFQU5fTUVNT1JZPC9jb2RlPiBjbGllbnQgcmVxdWVzdAorICAgIHRvIHNwZWNpZnkgdGhlIHJlbGV2YW50IGFkZHJlc3MgcmFuZ2VzLiAgSXQncyBlYXNpZXN0IHRvIHB1dCB0aGVzZQorICAgIHJlcXVlc3RzIGludG8gdGhlIHBvb2wgbWFuYWdlciBjb2RlLCBhbmQgdXNlIHRoZW0gZWl0aGVyIHdoZW4gbWVtb3J5IGlzCisgICAgcmV0dXJuZWQgdG8gdGhlIHBvb2wsIG9yIGlzIGFsbG9jYXRlZCBmcm9tIGl0LjwvcD4KKzwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj4KKzxwPkF2b2lkIFBPU0lYIGNvbmRpdGlvbiB2YXJpYWJsZXMuICBJZiB5b3UgY2FuLCB1c2UgUE9TSVgKKyAgICBzZW1hcGhvcmVzICg8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPnNlbV90PC9jb2RlPiwgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5zZW1fcG9zdDwvY29kZT4sCisgICAgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5zZW1fd2FpdDwvY29kZT4pIHRvIGRvIGludGVyLXRocmVhZCBldmVudCBzaWduYWxsaW5nLgorICAgIFNlbWFwaG9yZXMgd2l0aCBhbiBpbml0aWFsIHZhbHVlIG9mIHplcm8gYXJlIHBhcnRpY3VsYXJseSB1c2VmdWwgZm9yCisgICAgdGhpcy48L3A+Cis8cD5IZWxncmluZCBvbmx5IHBhcnRpYWxseSBjb3JyZWN0bHkgaGFuZGxlcyBQT1NJWCBjb25kaXRpb24KKyAgICB2YXJpYWJsZXMuICBUaGlzIGlzIGJlY2F1c2UgSGVsZ3JpbmQgY2FuIHNlZSBpbnRlci10aHJlYWQKKyAgICBkZXBlbmRlbmNpZXMgYmV0d2VlbiBhIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+cHRocmVhZF9jb25kX3dhaXQ8L2NvZGU+IGNhbGwgYW5kIGEKKyAgICA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPnB0aHJlYWRfY29uZF9zaWduYWw8L2NvZGU+Lzxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+cHRocmVhZF9jb25kX2Jyb2FkY2FzdDwvY29kZT4KKyAgICBjYWxsIG9ubHkgaWYgdGhlIHdhaXRpbmcgdGhyZWFkIGFjdHVhbGx5IGdldHMgdG8gdGhlIHJlbmRlenZvdXMgZmlyc3QKKyAgICAoc28gdGhhdCBpdCBhY3R1YWxseSBjYWxscworICAgIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+cHRocmVhZF9jb25kX3dhaXQ8L2NvZGU+KS4gIEl0IGNhbid0IHNlZSBkZXBlbmRlbmNpZXMKKyAgICBiZXR3ZWVuIHRoZSB0aHJlYWRzIGlmIHRoZSBzaWduYWxsZXIgYXJyaXZlcyBmaXJzdC4gIEluIHRoZSBsYXR0ZXIgY2FzZSwKKyAgICBQT1NJWCBndWlkZWxpbmVzIGltcGx5IHRoYXQgdGhlIGFzc29jaWF0ZWQgYm9vbGVhbiBjb25kaXRpb24gc3RpbGwKKyAgICBwcm92aWRlcyBhbiBpbnRlci10aHJlYWQgc3luY2hyb25pc2F0aW9uIGV2ZW50LCBidXQgb25lIHdoaWNoIGlzCisgICAgaW52aXNpYmxlIHRvIEhlbGdyaW5kLjwvcD4KKzxwPlRoZSByZXN1bHQgb2YgSGVsZ3JpbmQgbWlzc2luZyBzb21lIGludGVyLXRocmVhZAorICAgIHN5bmNocm9uaXNhdGlvbiBldmVudHMgaXMgdG8gY2F1c2UgaXQgdG8gcmVwb3J0IGZhbHNlIHBvc2l0aXZlcy4KKyAgICA8L3A+Cis8cD5UaGUgcm9vdCBjYXVzZSBvZiB0aGlzIHN5bmNocm9uaXNhdGlvbiBsb3NzYWdlIGlzCisgICAgcGFydGljdWxhcmx5IGhhcmQgdG8gdW5kZXJzdGFuZCwgc28gYW4gZXhhbXBsZSBpcyBoZWxwZnVsLiAgSXQgd2FzCisgICAgZGlzY3Vzc2VkIGF0IGxlbmd0aCBieSBBcm5kdCBNdWVobGVuZmVsZCAoIlJ1bnRpbWUgUmFjZSBEZXRlY3Rpb24KKyAgICBpbiBNdWx0aS1UaHJlYWRlZCBQcm9ncmFtcyIsIERpc3NlcnRhdGlvbiwgVFUgR3JheiwgQXVzdHJpYSkuICBUaGUKKyAgICBjYW5vbmljYWwgUE9TSVgtcmVjb21tZW5kZWQgdXNhZ2Ugc2NoZW1lIGZvciBjb25kaXRpb24gdmFyaWFibGVzCisgICAgaXMgYXMgZm9sbG93czo8L3A+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CitiICAgaXMgYSBCb29sZWFuIGNvbmRpdGlvbiwgd2hpY2ggaXMgRmFsc2UgbW9zdCBvZiB0aGUgdGltZQorY3YgIGlzIGEgY29uZGl0aW9uIHZhcmlhYmxlCitteCAgaXMgaXRzIGFzc29jaWF0ZWQgbXV0ZXgKKworU2lnbmFsbGVyOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2FpdGVyOgorCitsb2NrKG14KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NrKG14KQorYiA9IFRydWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGIgPT0gRmFsc2UpCitzaWduYWwoY3YpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3YWl0KGN2LG14KQordW5sb2NrKG14KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5sb2NrKG14KQorPC9wcmU+Cis8cD5Bc3N1bWUgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5iPC9jb2RlPiBpcyBGYWxzZSBtb3N0IG9mCisgICAgdGhlIHRpbWUuICBJZiB0aGUgd2FpdGVyIGFycml2ZXMgYXQgdGhlIHJlbmRlenZvdXMgZmlyc3QsIGl0CisgICAgZW50ZXJzIGl0cyB3aGlsZS1sb29wLCB3YWl0cyBmb3IgdGhlIHNpZ25hbGxlciB0byBzaWduYWwsIGFuZAorICAgIGV2ZW50dWFsbHkgcHJvY2VlZHMuICBIZWxncmluZCBzZWVzIHRoZSBzaWduYWwsIG5vdGVzIHRoZQorICAgIGRlcGVuZGVuY3ksIGFuZCBhbGwgaXMgd2VsbC48L3A+Cis8cD5JZiB0aGUgc2lnbmFsbGVyIGFycml2ZXMKKyAgICBmaXJzdCwgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5iPC9jb2RlPiBpcyBzZXQgdG8gdHJ1ZSwgYW5kIHRoZQorICAgIHNpZ25hbCBkaXNhcHBlYXJzIGludG8gbm93aGVyZS4gIFdoZW4gdGhlIHdhaXRlciBsYXRlciBhcnJpdmVzLCBpdAorICAgIGRvZXMgbm90IGVudGVyIGl0cyB3aGlsZS1sb29wIGFuZCBzaW1wbHkgY2FycmllcyBvbi4gIEJ1dCBldmVuIGluCisgICAgdGhpcyBjYXNlLCB0aGUgd2FpdGVyIGNvZGUgZm9sbG93aW5nIHRoZSB3aGlsZS1sb29wIGNhbm5vdCBleGVjdXRlCisgICAgdW50aWwgdGhlIHNpZ25hbGxlciBzZXRzIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+YjwvY29kZT4gdG8KKyAgICBUcnVlLiAgSGVuY2UgdGhlcmUgaXMgc3RpbGwgdGhlIHNhbWUgaW50ZXItdGhyZWFkIGRlcGVuZGVuY3ksIGJ1dAorICAgIHRoaXMgdGltZSBpdCBpcyB0aHJvdWdoIGFuIGFyYml0cmFyeSBpbi1tZW1vcnkgY29uZGl0aW9uLCBhbmQKKyAgICBIZWxncmluZCBjYW5ub3Qgc2VlIGl0LjwvcD4KKzxwPkJ5IGNvbXBhcmlzb24sIEhlbGdyaW5kJ3MgZGV0ZWN0aW9uIG9mIGludGVyLXRocmVhZAorICAgIGRlcGVuZGVuY2llcyBjYXVzZWQgYnkgc2VtYXBob3JlIG9wZXJhdGlvbnMgaXMgYmVsaWV2ZWQgdG8gYmUKKyAgICBleGFjdGx5IGNvcnJlY3QuPC9wPgorPHA+QXMgZmFyIGFzIEkga25vdywgYSBzb2x1dGlvbiB0byB0aGlzIHByb2JsZW0gdGhhdCBkb2VzIG5vdAorICAgIHJlcXVpcmUgc291cmNlLWxldmVsIGFubm90YXRpb24gb2YgY29uZGl0aW9uLXZhcmlhYmxlIHdhaXQgbG9vcHMKKyAgICBpcyBiZXlvbmQgdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIGFydC48L3A+Cis8L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+TWFrZSBzdXJlIHlvdSBhcmUgdXNpbmcgYSBzdXBwb3J0ZWQgTGludXggZGlzdHJpYnV0aW9uLiAgQXQKKyAgICBwcmVzZW50LCBIZWxncmluZCBvbmx5IHByb3Blcmx5IHN1cHBvcnRzIGdsaWJjLTIuMyBvciBsYXRlci4gIFRoaXMKKyAgICBpbiB0dXJuIG1lYW5zIHdlIG9ubHkgc3VwcG9ydCBnbGliYydzIE5QVEwgdGhyZWFkaW5nCisgICAgaW1wbGVtZW50YXRpb24uICBUaGUgb2xkIExpbnV4VGhyZWFkcyBpbXBsZW1lbnRhdGlvbiBpcyBub3QKKyAgICBzdXBwb3J0ZWQuPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5JZiB5b3VyIGFwcGxpY2F0aW9uIGlzIHVzaW5nIHRocmVhZCBsb2NhbCB2YXJpYWJsZXMsCisgICAgaGVsZ3JpbmQgbWlnaHQgcmVwb3J0IGZhbHNlIHBvc2l0aXZlIHJhY2UgY29uZGl0aW9ucyBvbiB0aGVzZQorICAgIHZhcmlhYmxlcywgZGVzcGl0ZSBiZWluZyB2ZXJ5IHByb2JhYmx5IHJhY2UgZnJlZS4gIE9uIExpbnV4LCB5b3UgY2FuCisgICAgdXNlIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tc2ltLWhpbnRzPWRlYWN0aXZhdGUtcHRocmVhZC1zdGFjay1jYWNoZS12aWEtaGFjazwvY29kZT4KKyAgICB0byBhdm9pZCBzdWNoIGZhbHNlIHBvc2l0aXZlIGVycm9yIG1lc3NhZ2VzCisgICAgKHNlZSA8YSBjbGFzcz0ieHJlZiIgaHJlZj0ibWFudWFsLWNvcmUuaHRtbCNvcHQuc2ltLWhpbnRzIj4tLXNpbS1oaW50czwvYT4pLgorICAgIDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+Cis8cD5Sb3VuZCB1cCBhbGwgZmluaXNoZWQgdGhyZWFkcyB1c2luZworICAgIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+cHRocmVhZF9qb2luPC9jb2RlPi4gIEF2b2lkCisgICAgZGV0YWNoaW5nIHRocmVhZHM6IGRvbid0IGNyZWF0ZSB0aHJlYWRzIGluIHRoZSBkZXRhY2hlZCBzdGF0ZSwgYW5kCisgICAgZG9uJ3QgY2FsbCA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPnB0aHJlYWRfZGV0YWNoPC9jb2RlPiBvbiBleGlzdGluZyB0aHJlYWRzLjwvcD4KKzxwPlVzaW5nIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+cHRocmVhZF9qb2luPC9jb2RlPiB0byByb3VuZCB1cCBmaW5pc2hlZAorICAgIHRocmVhZHMgcHJvdmlkZXMgYSBjbGVhciBzeW5jaHJvbmlzYXRpb24gcG9pbnQgdGhhdCBib3RoIEhlbGdyaW5kIGFuZAorICAgIHByb2dyYW1tZXJzIGNhbiBzZWUuICBJZiB5b3UgZG9uJ3QgY2FsbAorICAgIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+cHRocmVhZF9qb2luPC9jb2RlPiBvbiBhIHRocmVhZCwgSGVsZ3JpbmQgaGFzIG5vIHdheSB0bworICAgIGtub3cgd2hlbiBpdCBmaW5pc2hlcywgcmVsYXRpdmUgdG8gYW55CisgICAgc2lnbmlmaWNhbnQgc3luY2hyb25pc2F0aW9uIHBvaW50cyBmb3Igb3RoZXIgdGhyZWFkcyBpbiB0aGUgcHJvZ3JhbS4gIFNvCisgICAgaXQgYXNzdW1lcyB0aGF0IHRoZSB0aHJlYWQgbGluZ2VycyBpbmRlZmluaXRlbHkgYW5kIGNhbiBwb3RlbnRpYWxseQorICAgIGludGVyZmVyZSBpbmRlZmluaXRlbHkgd2l0aCB0aGUgbWVtb3J5IHN0YXRlIG9mIHRoZSBwcm9ncmFtLiAgSXQKKyAgICBoYXMgZXZlcnkgcmlnaHQgdG8gYXNzdW1lIHRoYXQgLS0gYWZ0ZXIgYWxsLCBpdCBtaWdodCByZWFsbHkgYmUKKyAgICB0aGUgY2FzZSB0aGF0LCBmb3Igc2NoZWR1bGluZyByZWFzb25zLCB0aGUgZXhpdGluZyB0aHJlYWQgZGlkIHJ1bgorICAgIHZlcnkgc2xvd2x5IGluIHRoZSBsYXN0IHN0YWdlcyBvZiBpdHMgbGlmZS48L3A+Cis8L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+Cis8cD5QZXJmb3JtIHRocmVhZCBkZWJ1Z2dpbmcgKHdpdGggSGVsZ3JpbmQpIGFuZCBtZW1vcnkKKyAgICBkZWJ1Z2dpbmcgKHdpdGggTWVtY2hlY2spIHRvZ2V0aGVyLjwvcD4KKzxwPkhlbGdyaW5kIHRyYWNrcyB0aGUgc3RhdGUgb2YgbWVtb3J5IGluIGRldGFpbCwgYW5kIG1lbW9yeQorICAgIG1hbmFnZW1lbnQgYnVncyBpbiB0aGUgYXBwbGljYXRpb24gYXJlIGxpYWJsZSB0byBjYXVzZSBjb25mdXNpb24uCisgICAgSW4gZXh0cmVtZSBjYXNlcywgYXBwbGljYXRpb25zIHdoaWNoIGRvIG1hbnkgaW52YWxpZCByZWFkcyBhbmQKKyAgICB3cml0ZXMgKHBhcnRpY3VsYXJseSB0byBmcmVlZCBtZW1vcnkpIGhhdmUgYmVlbiBrbm93biB0byBjcmFzaAorICAgIEhlbGdyaW5kLiAgU28sIGlkZWFsbHksIHlvdSBzaG91bGQgbWFrZSB5b3VyIGFwcGxpY2F0aW9uCisgICAgTWVtY2hlY2stY2xlYW4gYmVmb3JlIHVzaW5nIEhlbGdyaW5kLjwvcD4KKzxwPkl0IG1heSBiZSBpbXBvc3NpYmxlIHRvIG1ha2UgeW91ciBhcHBsaWNhdGlvbiBNZW1jaGVjay1jbGVhbgorICAgIHVubGVzcyB5b3UgZmlyc3QgcmVtb3ZlIHRocmVhZGluZyBidWdzLiAgSW4gcGFydGljdWxhciwgaXQgbWF5IGJlCisgICAgZGlmZmljdWx0IHRvIHJlbW92ZSBhbGwgcmVhZHMgYW5kIHdyaXRlcyB0byBmcmVlZCBtZW1vcnkgaW4KKyAgICBtdWx0aXRocmVhZGVkIEMrKyBkZXN0cnVjdG9yIHNlcXVlbmNlcyBhdCBwcm9ncmFtIHRlcm1pbmF0aW9uLgorICAgIFNvLCBpZGVhbGx5LCB5b3Ugc2hvdWxkIG1ha2UgeW91ciBhcHBsaWNhdGlvbiBIZWxncmluZC1jbGVhbgorICAgIGJlZm9yZSB1c2luZyBNZW1jaGVjay48L3A+Cis8cD5TaW5jZSB0aGlzIGNpcmN1bGFyaXR5IGlzIG9idmlvdXNseSB1bnJlc29sdmFibGUsIGF0IGxlYXN0CisgICAgYmVhciBpbiBtaW5kIHRoYXQgTWVtY2hlY2sgYW5kIEhlbGdyaW5kIGFyZSB0byBzb21lIGV4dGVudAorICAgIGNvbXBsZW1lbnRhcnksIGFuZCB5b3UgbWF5IG5lZWQgdG8gdXNlIHRoZW0gdG9nZXRoZXIuPC9wPgorPC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPgorPHA+UE9TSVggcmVxdWlyZXMgdGhhdCBpbXBsZW1lbnRhdGlvbnMgb2Ygc3RhbmRhcmQgSS9PCisgICAgKDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+cHJpbnRmPC9jb2RlPiwgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5mcHJpbnRmPC9jb2RlPiwKKyAgICA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPmZ3cml0ZTwvY29kZT4sIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+ZnJlYWQ8L2NvZGU+LCBldGMpIGFyZSB0aHJlYWQKKyAgICBzYWZlLiAgVW5mb3J0dW5hdGVseSBHTlUgbGliYyBpbXBsZW1lbnRzIHRoaXMgYnkgdXNpbmcgaW50ZXJuYWwgbG9ja2luZworICAgIHByaW1pdGl2ZXMgdGhhdCBIZWxncmluZCBpcyB1bmFibGUgdG8gaW50ZXJjZXB0LiAgQ29uc2VxdWVudGx5IEhlbGdyaW5kCisgICAgZ2VuZXJhdGVzIG1hbnkgZmFsc2UgcmFjZSByZXBvcnRzIHdoZW4geW91IHVzZSB0aGVzZSBmdW5jdGlvbnMuPC9wPgorPHA+SGVsZ3JpbmQgYXR0ZW1wdHMgdG8gaGlkZSB0aGVzZSBlcnJvcnMgdXNpbmcgdGhlIHN0YW5kYXJkCisgICAgVmFsZ3JpbmQgZXJyb3Itc3VwcHJlc3Npb24gbWVjaGFuaXNtLiAgU28sIGF0IGxlYXN0IGZvciBzaW1wbGUKKyAgICB0ZXN0IGNhc2VzLCB5b3UgZG9uJ3Qgc2VlIGFueS4gIE5ldmVydGhlbGVzcywgc29tZSBtYXkgc2xpcAorICAgIHRocm91Z2guICBKdXN0IHNvbWV0aGluZyB0byBiZSBhd2FyZSBvZi48L3A+Cis8L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+Cis8cD5IZWxncmluZCdzIGVycm9yIGNoZWNrcyBkbyBub3Qgd29yayBwcm9wZXJseSBpbnNpZGUgdGhlCisgICAgc3lzdGVtIHRocmVhZGluZyBsaWJyYXJ5IGl0c2VsZgorICAgICg8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmxpYnB0aHJlYWQuc288L2NvZGU+KSwgYW5kIGl0IHVzdWFsbHkKKyAgICBvYnNlcnZlcyBsYXJnZSBudW1iZXJzIG9mIChmYWxzZSkgZXJyb3JzIGluIHRoZXJlLiAgVmFsZ3JpbmQncworICAgIHN1cHByZXNzaW9uIHN5c3RlbSB0aGVuIGZpbHRlcnMgdGhlc2Ugb3V0LCBzbyB5b3Ugc2hvdWxkIG5vdCBzZWUKKyAgICB0aGVtLjwvcD4KKzxwPklmIHlvdSBzZWUgYW55IHJhY2UgZXJyb3JzIHJlcG9ydGVkCisgICAgd2hlcmUgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5saWJwdGhyZWFkLnNvPC9jb2RlPiBvcgorICAgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+bGQuc288L2NvZGU+IGlzIHRoZSBvYmplY3QgYXNzb2NpYXRlZAorICAgIHdpdGggdGhlIGlubmVybW9zdCBzdGFjayBmcmFtZSwgcGxlYXNlIGZpbGUgYSBidWcgcmVwb3J0IGF0CisgICAgPGEgY2xhc3M9InVsaW5rIiBocmVmPSJodHRwOi8vd3d3LnZhbGdyaW5kLm9yZy8iIHRhcmdldD0iX3RvcCI+aHR0cDovL3d3dy52YWxncmluZC5vcmcvPC9hPi4KKyAgICA8L3A+Cis8L2xpPgorPC9vbD48L2Rpdj4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDEiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj4KKzxhIG5hbWU9ImhnLW1hbnVhbC5vcHRpb25zIj48L2E+Ny42LqBIZWxncmluZCBDb21tYW5kLWxpbmUgT3B0aW9uczwvaDI+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD5UaGUgZm9sbG93aW5nIGVuZC11c2VyIG9wdGlvbnMgYXJlIGF2YWlsYWJsZTo8L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPgorPGEgbmFtZT0iaGcub3B0cy5saXN0Ij48L2E+PGRsIGNsYXNzPSJ2YXJpYWJsZWxpc3QiPgorPGR0PgorPGEgbmFtZT0ib3B0LmZyZWUtaXMtd3JpdGUiPjwvYT48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWZyZWUtaXMtd3JpdGU9bm98eWVzCisgICAgICBbZGVmYXVsdDogbm9dIDwvY29kZT4KKyAgICA8L3NwYW4+Cis8L2R0PgorPGRkPgorPHA+V2hlbiBlbmFibGVkIChub3QgdGhlIGRlZmF1bHQpLCBIZWxncmluZCB0cmVhdHMgZnJlZWluZyBvZgorICAgICAgICBoZWFwIG1lbW9yeSBhcyBpZiB0aGUgbWVtb3J5IHdhcyB3cml0dGVuIGltbWVkaWF0ZWx5IGJlZm9yZQorICAgICAgICB0aGUgZnJlZS4gIFRoaXMgZXhwb3NlcyByYWNlcyB3aGVyZSBtZW1vcnkgaXMgcmVmZXJlbmNlZCBieQorICAgICAgICBvbmUgdGhyZWFkLCBhbmQgZnJlZWQgYnkgYW5vdGhlciwgYnV0IHRoZXJlIGlzIG5vIG9ic2VydmFibGUKKyAgICAgICAgc3luY2hyb25pc2F0aW9uIGV2ZW50IHRvIGVuc3VyZSB0aGF0IHRoZSByZWZlcmVuY2UgaGFwcGVucworICAgICAgICBiZWZvcmUgdGhlIGZyZWUuCisgICAgICA8L3A+Cis8cD5UaGlzIGZ1bmN0aW9uYWxpdHkgaXMgbmV3IGluIFZhbGdyaW5kIDMuNy4wLCBhbmQgaXMKKyAgICAgICAgcmVnYXJkZWQgYXMgZXhwZXJpbWVudGFsLiAgSXQgaXMgbm90IGVuYWJsZWQgYnkgZGVmYXVsdAorICAgICAgICBiZWNhdXNlIGl0cyBpbnRlcmFjdGlvbiB3aXRoIGN1c3RvbSBtZW1vcnkgYWxsb2NhdG9ycyBpcyBub3QKKyAgICAgICAgd2VsbCB1bmRlcnN0b29kIGF0IHByZXNlbnQuICBVc2VyIGZlZWRiYWNrIGlzIHdlbGNvbWVkLgorICAgICAgPC9wPgorPC9kZD4KKzxkdD4KKzxhIG5hbWU9Im9wdC50cmFjay1sb2Nrb3JkZXJzIj48L2E+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS10cmFjay1sb2Nrb3JkZXJzPW5vfHllcworICAgICAgW2RlZmF1bHQ6IHllc10gPC9jb2RlPgorICAgIDwvc3Bhbj4KKzwvZHQ+Cis8ZGQ+PHA+V2hlbiBlbmFibGVkICh0aGUgZGVmYXVsdCksIEhlbGdyaW5kIHBlcmZvcm1zIGxvY2sgb3JkZXIKKyAgICAgIGNvbnNpc3RlbmN5IGNoZWNraW5nLiAgRm9yIHNvbWUgYnVnZ3kgcHJvZ3JhbXMsIHRoZSBsYXJnZSBudW1iZXIKKyAgICAgIG9mIGxvY2sgb3JkZXIgZXJyb3JzIHJlcG9ydGVkIGNhbiBiZWNvbWUgYW5ub3lpbmcsIHBhcnRpY3VsYXJseQorICAgICAgaWYgeW91J3JlIG9ubHkgaW50ZXJlc3RlZCBpbiByYWNlIGVycm9ycy4gIFlvdSBtYXkgdGhlcmVmb3JlIGZpbmQKKyAgICAgIGl0IGhlbHBmdWwgdG8gZGlzYWJsZSBsb2NrIG9yZGVyIGNoZWNraW5nLjwvcD48L2RkPgorPGR0PgorPGEgbmFtZT0ib3B0Lmhpc3RvcnktbGV2ZWwiPjwvYT48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWhpc3RvcnktbGV2ZWw9bm9uZXxhcHByb3h8ZnVsbAorICAgICAgW2RlZmF1bHQ6IGZ1bGxdIDwvY29kZT4KKyAgICA8L3NwYW4+Cis8L2R0PgorPGRkPgorPHA+PGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1oaXN0b3J5LWxldmVsPWZ1bGw8L2NvZGU+ICh0aGUgZGVmYXVsdCkgY2F1c2VzCisgICAgICAgIEhlbGdyaW5kIGNvbGxlY3RzIGVub3VnaCBpbmZvcm1hdGlvbiBhYm91dCAib2xkIiBhY2Nlc3NlcyB0aGF0CisgICAgICAgIGl0IGNhbiBwcm9kdWNlIHR3byBzdGFjayB0cmFjZXMgaW4gYSByYWNlIHJlcG9ydCAtLSBib3RoIHRoZQorICAgICAgICBzdGFjayB0cmFjZSBmb3IgdGhlIGN1cnJlbnQgYWNjZXNzLCBhbmQgdGhlIHRyYWNlIGZvciB0aGUKKyAgICAgICAgb2xkZXIsIGNvbmZsaWN0aW5nIGFjY2Vzcy4gVG8gbGltaXQgbWVtb3J5IHVzYWdlLCAib2xkIiBhY2Nlc3NlcworICAgICAgICBzdGFjayB0cmFjZXMgYXJlIGxpbWl0ZWQgdG8gYSBtYXhpbXVtIG9mIDggZW50cmllcywgZXZlbiBpZgorICAgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLW51bS1jYWxsZXJzPC9jb2RlPiB2YWx1ZSBpcyBiaWdnZXIuPC9wPgorPHA+Q29sbGVjdGluZyBzdWNoIGluZm9ybWF0aW9uIGlzIGV4cGVuc2l2ZSBpbiBib3RoIHNwZWVkIGFuZAorICAgICAgICBtZW1vcnksIHBhcnRpY3VsYXJseSBmb3IgcHJvZ3JhbXMgdGhhdCBkbyBtYW55IGludGVyLXRocmVhZAorICAgICAgICBzeW5jaHJvbmlzYXRpb24gZXZlbnRzIChsb2NrcywgdW5sb2NrcywgZXRjKS4gIFdpdGhvdXQgc3VjaAorICAgICAgICBpbmZvcm1hdGlvbiwgaXQgaXMgbW9yZSBkaWZmaWN1bHQgdG8gdHJhY2sgZG93biB0aGUgcm9vdAorICAgICAgICBjYXVzZXMgb2YgcmFjZXMuICBOb25ldGhlbGVzcywgeW91IG1heSBub3QgbmVlZCBpdCBpbgorICAgICAgICBzaXR1YXRpb25zIHdoZXJlIHlvdSBqdXN0IHdhbnQgdG8gY2hlY2sgZm9yIHRoZSBwcmVzZW5jZSBvcgorICAgICAgICBhYnNlbmNlIG9mIHJhY2VzLCBmb3IgZXhhbXBsZSwgd2hlbiBkb2luZyByZWdyZXNzaW9uIHRlc3RpbmcKKyAgICAgICAgb2YgYSBwcmV2aW91c2x5IHJhY2UtZnJlZSBwcm9ncmFtLjwvcD4KKzxwPjxjb2RlIGNsYXNzPSJvcHRpb24iPi0taGlzdG9yeS1sZXZlbD1ub25lPC9jb2RlPiBpcyB0aGUgb3Bwb3NpdGUKKyAgICAgICAgZXh0cmVtZS4gIEl0IGNhdXNlcyBIZWxncmluZCBub3QgdG8gY29sbGVjdCBhbnkgaW5mb3JtYXRpb24KKyAgICAgICAgYWJvdXQgcHJldmlvdXMgYWNjZXNzZXMuICBUaGlzIGNhbiBiZSBkcmFtYXRpY2FsbHkgZmFzdGVyCisgICAgICAgIHRoYW4gPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1oaXN0b3J5LWxldmVsPWZ1bGw8L2NvZGU+LjwvcD4KKzxwPjxjb2RlIGNsYXNzPSJvcHRpb24iPi0taGlzdG9yeS1sZXZlbD1hcHByb3g8L2NvZGU+IHByb3ZpZGVzIGEKKyAgICAgICAgY29tcHJvbWlzZSBiZXR3ZWVuIHRoZXNlIHR3byBleHRyZW1lcy4gIEl0IGNhdXNlcyBIZWxncmluZCB0bworICAgICAgICBzaG93IGEgZnVsbCB0cmFjZSBmb3IgdGhlIGxhdGVyIGFjY2VzcywgYW5kIGFwcHJveGltYXRlCisgICAgICAgIGluZm9ybWF0aW9uIHJlZ2FyZGluZyB0aGUgZWFybGllciBhY2Nlc3MuICBUaGlzIGFwcHJveGltYXRlCisgICAgICAgIGluZm9ybWF0aW9uIGNvbnNpc3RzIG9mIHR3byBzdGFja3MsIGFuZCB0aGUgZWFybGllciBhY2Nlc3MgaXMKKyAgICAgICAgZ3VhcmFudGVlZCB0byBoYXZlIG9jY3VycmVkIHNvbWV3aGVyZSBiZXR3ZWVuIHByb2dyYW0gcG9pbnRzCisgICAgICAgIGRlbm90ZWQgYnkgdGhlIHR3byBzdGFja3MuIFRoaXMgaXMgbm90IGFzIHVzZWZ1bCBhcyBzaG93aW5nCisgICAgICAgIHRoZSBleGFjdCBzdGFjayBmb3IgdGhlIHByZXZpb3VzIGFjY2VzcworICAgICAgICAoYXMgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1oaXN0b3J5LWxldmVsPWZ1bGw8L2NvZGU+IGRvZXMpLCBidXQgaXQgaXMKKyAgICAgICAgYmV0dGVyIHRoYW4gbm90aGluZywgYW5kIGl0IGlzIGFsbW9zdCBhcyBmYXN0IGFzCisgICAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0taGlzdG9yeS1sZXZlbD1ub25lPC9jb2RlPi48L3A+Cis8L2RkPgorPGR0PgorPGEgbmFtZT0ib3B0LmNvbmZsaWN0LWNhY2hlLXNpemUiPjwvYT48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWNvbmZsaWN0LWNhY2hlLXNpemU9TgorICAgICAgW2RlZmF1bHQ6IDEwMDAwMDBdIDwvY29kZT4KKyAgICA8L3NwYW4+Cis8L2R0PgorPGRkPgorPHA+VGhpcyBmbGFnIG9ubHkgaGFzIGFueSBlZmZlY3QKKyAgICAgICAgYXQgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1oaXN0b3J5LWxldmVsPWZ1bGw8L2NvZGU+LjwvcD4KKzxwPkluZm9ybWF0aW9uIGFib3V0ICJvbGQiIGNvbmZsaWN0aW5nIGFjY2Vzc2VzIGlzIHN0b3JlZCBpbgorICAgICAgICBhIGNhY2hlIG9mIGxpbWl0ZWQgc2l6ZSwgd2l0aCBMUlUtc3R5bGUgbWFuYWdlbWVudC4gIFRoaXMgaXMKKyAgICAgICAgbmVjZXNzYXJ5IGJlY2F1c2UgaXQgaXNuJ3QgcHJhY3RpY2FsIHRvIHN0b3JlIGEgc3RhY2sgdHJhY2UKKyAgICAgICAgZm9yIGV2ZXJ5IHNpbmdsZSBtZW1vcnkgYWNjZXNzIG1hZGUgYnkgdGhlIHByb2dyYW0uCisgICAgICAgIEhpc3RvcmljYWwgaW5mb3JtYXRpb24gb24gbm90IHJlY2VudGx5IGFjY2Vzc2VkIGxvY2F0aW9ucyBpcworICAgICAgICBwZXJpb2RpY2FsbHkgZGlzY2FyZGVkLCB0byBmcmVlIHVwIHNwYWNlIGluIHRoZSBjYWNoZS48L3A+Cis8cD5UaGlzIG9wdGlvbiBjb250cm9scyB0aGUgc2l6ZSBvZiB0aGUgY2FjaGUsIGluIHRlcm1zIG9mIHRoZQorICAgICAgICBudW1iZXIgb2YgZGlmZmVyZW50IG1lbW9yeSBhZGRyZXNzZXMgZm9yIHdoaWNoCisgICAgICAgIGNvbmZsaWN0aW5nIGFjY2VzcyBpbmZvcm1hdGlvbiBpcyBzdG9yZWQuICBJZiB5b3UgZmluZCB0aGF0CisgICAgICAgIEhlbGdyaW5kIGlzIHNob3dpbmcgcmFjZSBlcnJvcnMgd2l0aCBvbmx5IG9uZSBzdGFjayBpbnN0ZWFkIG9mCisgICAgICAgIHRoZSBleHBlY3RlZCB0d28gc3RhY2tzLCB0cnkgaW5jcmVhc2luZyB0aGlzIHZhbHVlLjwvcD4KKzxwPlRoZSBtaW5pbXVtIHZhbHVlIGlzIDEwLDAwMCBhbmQgdGhlIG1heGltdW0gaXMgMzAsMDAwLDAwMAorICAgICAgICAodGhpcnR5IHRpbWVzIHRoZSBkZWZhdWx0IHZhbHVlKS4gIEluY3JlYXNpbmcgdGhlIHZhbHVlIGJ5IDEKKyAgICAgICAgaW5jcmVhc2VzIEhlbGdyaW5kJ3MgbWVtb3J5IHJlcXVpcmVtZW50IGJ5IHZlcnkgcm91Z2hseSAxMDAKKyAgICAgICAgYnl0ZXMsIHNvIHRoZSBtYXhpbXVtIHZhbHVlIHdpbGwgZWFzaWx5IGVhdCB1cCB0aHJlZSBleHRyYQorICAgICAgICBnaWdhYnl0ZXMgb3Igc28gb2YgbWVtb3J5LjwvcD4KKzwvZGQ+Cis8ZHQ+Cis8YSBuYW1lPSJvcHQuY2hlY2stc3RhY2stcmVmcyI+PC9hPjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tY2hlY2stc3RhY2stcmVmcz1ub3x5ZXMKKyAgICAgIFtkZWZhdWx0OiB5ZXNdIDwvY29kZT4KKyAgICA8L3NwYW4+Cis8L2R0PgorPGRkPjxwPgorICAgICAgICBCeSBkZWZhdWx0IEhlbGdyaW5kIGNoZWNrcyBhbGwgZGF0YSBtZW1vcnkgYWNjZXNzZXMgbWFkZSBieSB5b3VyCisgICAgICAgIHByb2dyYW0uICBUaGlzIGZsYWcgZW5hYmxlcyB5b3UgdG8gc2tpcCBjaGVja2luZyBmb3IgYWNjZXNzZXMKKyAgICAgICAgdG8gdGhyZWFkIHN0YWNrcyAobG9jYWwgdmFyaWFibGVzKS4gIFRoaXMgY2FuIGltcHJvdmUKKyAgICAgICAgcGVyZm9ybWFuY2UsIGJ1dCBjb21lcyBhdCB0aGUgY29zdCBvZiBtaXNzaW5nIHJhY2VzIG9uCisgICAgICAgIHN0YWNrLWFsbG9jYXRlZCBkYXRhLgorICAgICAgPC9wPjwvZGQ+Cis8ZHQ+Cis8YSBuYW1lPSJvcHQuaWdub3JlLXRocmVhZC1jcmVhdGlvbiI+PC9hPjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0taWdub3JlLXRocmVhZC1jcmVhdGlvbj0mbHQ7eWVzfG5vJmd0OworICAgICAgW2RlZmF1bHQ6IG5vXTwvY29kZT4KKyAgICA8L3NwYW4+Cis8L2R0PgorPGRkPgorPHA+CisgICAgICAgIENvbnRyb2xzIHdoZXRoZXIgYWxsIGFjdGl2aXRpZXMgZHVyaW5nIHRocmVhZCBjcmVhdGlvbiBzaG91bGQgYmUKKyAgICAgICAgaWdub3JlZC4gQnkgZGVmYXVsdCBlbmFibGVkIG9ubHkgb24gU29sYXJpcy4KKyAgICAgICAgU29sYXJpcyBwcm92aWRlcyBoaWdoZXIgdGhyb3VnaHB1dCwgcGFyYWxsZWxpc20gYW5kIHNjYWxhYmlsaXR5IHRoYW4KKyAgICAgICAgb3RoZXIgb3BlcmF0aW5nIHN5c3RlbXMsIGF0IHRoZSBjb3N0IG9mIG1vcmUgZmluZS1ncmFpbmVkIGxvY2tpbmcKKyAgICAgICAgYWN0aXZpdHkuIFRoaXMgbWVhbnMgZm9yIGV4YW1wbGUgdGhhdCB3aGVuIGEgdGhyZWFkIGlzIGNyZWF0ZWQgdW5kZXIKKyAgICAgICAgZ2xpYmMsIGp1c3Qgb25lIGJpZyBsb2NrIGlzIHVzZWQgZm9yIGFsbCB0aHJlYWQgc2V0dXAuIFNvbGFyaXMgbGliYworICAgICAgICB1c2VzIHNldmVyYWwgZmluZS1ncmFpbmVkIGxvY2tzIGFuZCB0aGUgY3JlYXRvciB0aHJlYWQgcmVzdW1lcyBpdHMKKyAgICAgICAgYWN0aXZpdGllcyBhcyBzb29uIGFzIHBvc3NpYmxlLCBsZWF2aW5nIGZvciBleGFtcGxlIHN0YWNrIGFuZCBUTFMgc2V0dXAKKyAgICAgICAgc2VxdWVuY2UgdG8gdGhlIGNyZWF0ZWQgdGhyZWFkLgorICAgICAgICBUaGlzIHNpdHVhdGlvbiBjb25mdXNlcyBIZWxncmluZCBhcyBpdCBhc3N1bWVzIHRoZXJlIGlzIHNvbWUgZmFsc2UKKyAgICAgICAgb3JkZXJpbmcgaW4gcGxhY2UgYmV0d2VlbiBjcmVhdG9yIGFuZCBjcmVhdGVkIHRocmVhZDsgYW5kIHRoZXJlZm9yZSBtYW55CisgICAgICAgIHR5cGVzIG9mIHJhY2UgY29uZGl0aW9ucyBpbiB0aGUgYXBwbGljYXRpb24gd291bGQgbm90IGJlIHJlcG9ydGVkLgorICAgICAgICBUbyBwcmV2ZW50IHN1Y2ggZmFsc2Ugb3JkZXJpbmcsIHRoaXMgY29tbWFuZCBsaW5lIG9wdGlvbiBpcyBzZXQgdG8KKyAgICAgICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij55ZXM8L2NvZGU+IGJ5IGRlZmF1bHQgb24gU29sYXJpcy4KKyAgICAgICAgQWxsIGFjdGl2aXR5IChsb2Fkcywgc3RvcmVzLCBjbGllbnQgcmVxdWVzdHMpIGlzIHRoZXJlZm9yZSBpZ25vcmVkCisgICAgICAgIGR1cmluZzo8L3A+Cis8ZGl2IGNsYXNzPSJpdGVtaXplZGxpc3QiPjx1bCBjbGFzcz0iaXRlbWl6ZWRsaXN0IiBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOiBkaXNjOyAiPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+CisgICAgICAgICAgICBwdGhyZWFkX2NyZWF0ZSgpIGNhbGwgaW4gdGhlIGNyZWF0b3IgdGhyZWFkCisgICAgICAgICAgPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD4KKyAgICAgICAgICAgIHRocmVhZCBjcmVhdGlvbiBwaGFzZSAoc3RhY2sgYW5kIFRMUyBzZXR1cCkgaW4gdGhlIGNyZWF0ZWQgdGhyZWFkCisgICAgICAgICAgPC9wPjwvbGk+Cis8L3VsPjwvZGl2PgorPHA+CisgICAgICAgICBBbHNvIG5ldyBtZW1vcnkgYWxsb2NhdGVkIGR1cmluZyB0aHJlYWQgY3JlYXRpb24gaXMgdW50cmFja2VkLAorICAgICAgICAgdGhhdCBpcyByYWNlIHJlcG9ydGluZyBpcyBzdXBwcmVzc2VkIHRoZXJlLiBEUkQgZG9lcyB0aGUgc2FtZSB0aGluZworICAgICAgICAgaW1wbGljaXRseS4gVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSBTb2xhcmlzIGxpYmMgY2FjaGVzIG1hbnkgb2JqZWN0cworICAgICAgICAgYW5kIHJldXNlcyB0aGVtIGZvciBkaWZmZXJlbnQgdGhyZWFkcyBhbmQgdGhhdCBjb25mdXNlcworICAgICAgICAgSGVsZ3JpbmQuPC9wPgorPC9kZD4KKzwvZGw+Cis8L2Rpdj4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDEiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj4KKzxhIG5hbWU9ImhnLW1hbnVhbC5tb25pdG9yLWNvbW1hbmRzIj48L2E+Ny43LqBIZWxncmluZCBNb25pdG9yIENvbW1hbmRzPC9oMj48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPlRoZSBIZWxncmluZCB0b29sIHByb3ZpZGVzIG1vbml0b3IgY29tbWFuZHMgaGFuZGxlZCBieSBWYWxncmluZCdzCitidWlsdC1pbiBnZGJzZXJ2ZXIgKHNlZSA8YSBjbGFzcz0ieHJlZiIgaHJlZj0ibWFudWFsLWNvcmUtYWR2Lmh0bWwjbWFudWFsLWNvcmUtYWR2LmdkYnNlcnZlci1jb21tYW5kaGFuZGxpbmciIHRpdGxlPSIzLjIuNS6gTW9uaXRvciBjb21tYW5kIGhhbmRsaW5nIGJ5IHRoZSBWYWxncmluZCBnZGJzZXJ2ZXIiPk1vbml0b3IgY29tbWFuZCBoYW5kbGluZyBieSB0aGUgVmFsZ3JpbmQgZ2Ric2VydmVyPC9hPikuCis8L3A+Cis8ZGl2IGNsYXNzPSJpdGVtaXplZGxpc3QiPjx1bCBjbGFzcz0iaXRlbWl6ZWRsaXN0IiBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOiBkaXNjOyAiPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+Cis8cD48Y29kZSBjbGFzcz0idmFybmFtZSI+aW5mbyBsb2NrcyBbbG9ja19hZGRyXTwvY29kZT4gc2hvd3MgdGhlIGxpc3Qgb2YgbG9ja3MKKyAgICBhbmQgdGhlaXIgc3RhdHVzLiBJZiAgPGNvZGUgY2xhc3M9InZhcm5hbWUiPmxvY2tfYWRkcjwvY29kZT4gaXMgZ2l2ZW4sIG9ubHkgc2hvd3MKKyAgICB0aGUgbG9jayBsb2NhdGVkIGF0IHRoaXMgYWRkcmVzcy4gPC9wPgorPHA+CisgICAgSW4gdGhlIGZvbGxvd2luZyBleGFtcGxlLCBoZWxncmluZCBrbm93cyBhYm91dCBvbmUgbG9jay4gIFRoaXMKKyAgICBsb2NrIGlzIGxvY2F0ZWQgYXQgdGhlIGd1ZXN0IGFkZHJlc3MgPGNvZGUgY2xhc3M9InZhcm5hbWUiPmdhCisgICAgMHg4MDQ5YTIwPC9jb2RlPi4gIFRoZSBsb2NrIGtpbmQgaXMgPGNvZGUgY2xhc3M9InZhcm5hbWUiPnJkd3I8L2NvZGU+CisgICAgaW5kaWNhdGluZyBhIHJlYWRlci13cml0ZXIgbG9jay4gIE90aGVyIHBvc3NpYmxlIGxvY2sga2luZHMKKyAgICBhcmUgPGNvZGUgY2xhc3M9InZhcm5hbWUiPm5vblJlYzwvY29kZT4gKHNpbXBsZSBtdXRleCwgbm9uIHJlY3Vyc2l2ZSkKKyAgICBhbmQgPGNvZGUgY2xhc3M9InZhcm5hbWUiPm1iUmVjPC9jb2RlPiAoc2ltcGxlIG11dGV4LCBwb3NzaWJseSByZWN1cnNpdmUpLgorICAgIFRoZSBsb2NrIGtpbmQgaXMgdGhlbiBmb2xsb3dlZCBieSB0aGUgbGlzdCBvZiB0aHJlYWRzIGhlbGRpbmcgdGhlCisgICAgbG9jay4gIEluIHRoZSBiZWxvdyBleGFtcGxlLCA8Y29kZSBjbGFzcz0idmFybmFtZSI+UjE6dGhyZWFkICM2IHRpZCAzPC9jb2RlPgorICAgIGluZGljYXRlcyB0aGF0IHRoZSBoZWxncmluZCB0aHJlYWQgIzYgaGFzIGFjcXVpcmVkIChvbmNlLCBhcyB0aGUKKyAgICBjb3VudGVyIGZvbGxvd2luZyB0aGUgbGV0dGVyIFIgaXMgb25lKSB0aGUgbG9jayBpbiByZWFkIG1vZGUuIFRoZQorICAgIGhlbGdyaW5kIHRocmVhZCBuciBpcyBpbmNyZW1lbnRlZCBmb3IgZWFjaCBzdGFydGVkIHRocmVhZC4gIFRoZQorICAgIHByZXNlbmNlIG9mICd0aWQgMycgaW5kaWNhdGVzIHRoYXQgdGhlIHRocmVhZCAjNiBpcyBoYXMgbm90IGV4aXRlZAorICAgIHlldCBhbmQgaXMgdGhlIHZhbGdyaW5kIHRpZCAzLiBJZiBhIHRocmVhZCBoYXMgdGVybWluYXRlZCwgdGhlbgorICAgIHRoaXMgaXMgaW5kaWNhdGVkIHdpdGggJ3RpZCAoZXhpdGVkKScuCisgICAgPC9wPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPgorKGdkYikgbW9uaXRvciBpbmZvIGxvY2tzCitMb2NrIGdhIDB4ODA0OWEyMCB7CisgICBraW5kICAgcmR3cgorIHsgUjE6dGhyZWFkICM2IHRpZCAzIH0KK30KKyhnZGIpIAorPC9wcmU+Cis8cD4gSWYgeW91IGdpdmUgdGhlIG9wdGlvbiA8Y29kZSBjbGFzcz0idmFybmFtZSI+LS1yZWFkLXZhci1pbmZvPXllczwvY29kZT4sCisgICAgdGhlbiBtb3JlIGluZm9ybWF0aW9uIHdpbGwgYmUgcHJvdmlkZWQgYWJvdXQgdGhlIGxvY2sgbG9jYXRpb24sIHN1Y2ggYXMKKyAgICB0aGUgZ2xvYmFsIHZhcmlhYmxlIG9yIHRoZSBoZWFwIGJsb2NrIHRoYXQgY29udGFpbnMgdGhlIGxvY2s6CisgICAgPC9wPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPgorTG9jayBnYSAweDgwNDlhMjAgeworIExvY2F0aW9uIDB4ODA0OWEyMCBpcyAwIGJ5dGVzIGluc2lkZSBnbG9iYWwgdmFyICJzX3J3bG9jayIKKyBkZWNsYXJlZCBhdCByd2xvY2tfcmFjZS5jOjE3CisgICBraW5kICAgcmR3cgorIHsgUjE6dGhyZWFkICMzIHRpZCAzIH0KK30KKzwvcHJlPgorPC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPgorPHA+PGNvZGUgY2xhc3M9InZhcm5hbWUiPmFjY2Vzc2hpc3RvcnkgICZsdDthZGRyJmd0OyBbJmx0O2xlbiZndDtdPC9jb2RlPgorICAgIHNob3dzIHRoZSAgYWNjZXNzIGhpc3RvcnkgcmVjb3JkZWQgZm9yICZsdDtsZW4mZ3Q7IChkZWZhdWx0IDEpIGJ5dGVzCisgICAgc3RhcnRpbmcgYXQgJmx0O2FkZHImZ3Q7LiBGb3IgZWFjaCByZWNvcmRlZCBhY2Nlc3MgdGhhdCBvdmVybGFwcworICAgIHdpdGggdGhlIGdpdmVuIHJhbmdlLCA8Y29kZSBjbGFzcz0idmFybmFtZSI+YWNjZXNzaGlzdG9yeTwvY29kZT4gc2hvd3MgdGhlIG9wZXJhdGlvbgorICAgIHR5cGUgKHJlYWQgb3Igd3JpdGUpLCB0aGUgYWRkcmVzcyBhbmQgc2l6ZSByZWFkIG9yIHdyaXR0ZW4sIHRoZSBoZWxncmluZAorICAgIHRocmVhZCBuci92YWxncmluZCB0aWQgbnVtYmVyIHRoYXQgZGlkIHRoZSBvcGVyYXRpb24gYW5kIHRoZSBsb2NrcyBoZWxkCisgICAgYnkgdGhlIHRocmVhZCBhdCB0aGUgdGltZSBvZiB0aGUgb3BlcmF0aW9uLgorICAgIFRoZSBvbGRlc3QgYWNjZXNzIGlzIHNob3duIGZpcnN0LCB0aGUgbW9zdCByZWNlbnQgYWNjZXNzIGlzIHNob3duIGxhc3QuCisgICAgPC9wPgorPHA+CisgICAgSW4gdGhlIGZvbGxvd2luZyBleGFtcGxlLCB3ZSBzZWUgZmlyc3QgYSByZWNvcmRlZCB3cml0ZSBvZiA0IGJ5dGVzIGJ5CisgICAgdGhyZWFkICM3IHRoYXQgaGFzIG1vZGlmaWVkIHRoZSBnaXZlbiAyIGJ5dGVzIHJhbmdlLgorICAgIFRoZSBzZWNvbmQgcmVjb3JkZWQgd3JpdGUgaXMgdGhlIG1vc3QgcmVjZW50IHJlY29yZGVkIHdyaXRlIDogdGhyZWFkICM5CisgICAgbW9kaWZpZWQgdGhlIHNhbWUgMiBieXRlcyBhcyBwYXJ0IG9mIGEgNCBieXRlcyB3cml0ZSBvcGVyYXRpb24uCisgICAgVGhlIGxpc3Qgb2YgbG9ja3MgaGVsZCBieSBlYWNoIHRocmVhZCBhdCB0aGUgdGltZSBvZiB0aGUgd3JpdGUgb3BlcmF0aW9uCisgICAgYXJlIGFsc28gc2hvd24uCisgICAgPC9wPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPgorKGdkYikgbW9uaXRvciBhY2Nlc3NoaXN0b3J5IDB4ODA0OUQ4QSAyCit3cml0ZSBvZiBzaXplIDQgYXQgMHg4MDQ5RDg4IGJ5IHRocmVhZCAjNyB0aWQgMworPT02MzE5PT0gTG9ja3MgaGVsZDogMiwgYXQgYWRkcmVzcyAweDgwNDlEOEMgKGFuZCAxIHRoYXQgY2FuJ3QgYmUgc2hvd24pCis9PTYzMTk9PSAgICBhdCAweDgwNDg2NUY6IGNoaWxkX2ZuMSAobG9ja2VkX3ZzX3VubG9ja2VkMi5jOjI5KQorPT02MzE5PT0gICAgYnkgMHg0MDBBRTYxOiBteXRocmVhZF93cmFwcGVyIChoZ19pbnRlcmNlcHRzLmM6MjM0KQorPT02MzE5PT0gICAgYnkgMHgzOUI5MjQ6IHN0YXJ0X3RocmVhZCAocHRocmVhZF9jcmVhdGUuYzoyOTcpCis9PTYzMTk9PSAgICBieSAweDJGMTA3RDogY2xvbmUgKGNsb25lLlM6MTMwKQorCit3cml0ZSBvZiBzaXplIDQgYXQgMHg4MDQ5RDg4IGJ5IHRocmVhZCAjOSB0aWQgMgorPT02MzE5PT0gTG9ja3MgaGVsZDogMiwgYXQgYWRkcmVzc2VzIDB4ODA0OURBNCAweDgwNDlERDQKKz09NjMxOT09ICAgIGF0IDB4ODA0ODc3QjogY2hpbGRfZm4yIChsb2NrZWRfdnNfdW5sb2NrZWQyLmM6NDUpCis9PTYzMTk9PSAgICBieSAweDQwMEFFNjE6IG15dGhyZWFkX3dyYXBwZXIgKGhnX2ludGVyY2VwdHMuYzoyMzQpCis9PTYzMTk9PSAgICBieSAweDM5QjkyNDogc3RhcnRfdGhyZWFkIChwdGhyZWFkX2NyZWF0ZS5jOjI5NykKKz09NjMxOT09ICAgIGJ5IDB4MkYxMDdEOiBjbG9uZSAoY2xvbmUuUzoxMzApCisKKzwvcHJlPgorPC9saT4KKzwvdWw+PC9kaXY+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QxIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+Cis8YSBuYW1lPSJoZy1tYW51YWwuY2xpZW50LXJlcXVlc3RzIj48L2E+Ny44LqBIZWxncmluZCBDbGllbnQgUmVxdWVzdHM8L2gyPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+VGhlIGZvbGxvd2luZyBjbGllbnQgcmVxdWVzdHMgYXJlIGRlZmluZWQgaW4KKzxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+aGVsZ3JpbmQuaDwvY29kZT4uICBTZWUgdGhhdCBmaWxlIGZvciBleGFjdCBkZXRhaWxzIG9mIHRoZWlyCithcmd1bWVudHMuPC9wPgorPGRpdiBjbGFzcz0iaXRlbWl6ZWRsaXN0Ij48dWwgY2xhc3M9Iml0ZW1pemVkbGlzdCIgc3R5bGU9Imxpc3Qtc3R5bGUtdHlwZTogZGlzYzsgIj4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPgorPHA+PGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5WQUxHUklORF9IR19DTEVBTl9NRU1PUlk8L2NvZGU+PC9wPgorPHA+VGhpcyBtYWtlcyBIZWxncmluZCBmb3JnZXQgZXZlcnl0aGluZyBpdCBrbm93cyBhYm91dCBhCisgICAgc3BlY2lmaWVkIG1lbW9yeSByYW5nZS4gIFRoaXMgaXMgcGFydGljdWxhcmx5IHVzZWZ1bCBmb3IgbWVtb3J5CisgICAgYWxsb2NhdG9ycyB0aGF0IHdpc2ggdG8gcmVjeWNsZSBtZW1vcnkuPC9wPgorPC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPjxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+QU5OT1RBVEVfSEFQUEVOU19CRUZPUkU8L2NvZGU+PC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD48Y29kZSBjbGFzcz0iZnVuY3Rpb24iPkFOTk9UQVRFX0hBUFBFTlNfQUZURVI8L2NvZGU+PC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD48Y29kZSBjbGFzcz0iZnVuY3Rpb24iPkFOTk9UQVRFX05FV19NRU1PUlk8L2NvZGU+PC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD48Y29kZSBjbGFzcz0iZnVuY3Rpb24iPkFOTk9UQVRFX1JXTE9DS19DUkVBVEU8L2NvZGU+PC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD48Y29kZSBjbGFzcz0iZnVuY3Rpb24iPkFOTk9UQVRFX1JXTE9DS19ERVNUUk9ZPC9jb2RlPjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+PGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5BTk5PVEFURV9SV0xPQ0tfQUNRVUlSRUQ8L2NvZGU+PC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj4KKzxwPjxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+QU5OT1RBVEVfUldMT0NLX1JFTEVBU0VEPC9jb2RlPjwvcD4KKzxwPlRoZXNlIGFyZSB1c2VkIHRvIGRlc2NyaWJlIHRvIEhlbGdyaW5kLCB0aGUgYmVoYXZpb3VyIG9mCisgICAgY3VzdG9tIChub24tUE9TSVgpIHN5bmNocm9uaXNhdGlvbiBwcmltaXRpdmVzLCB3aGljaCBpdCBvdGhlcndpc2UKKyAgICBoYXMgbm8gd2F5IHRvIHVuZGVyc3RhbmQuICBTZWUgY29tbWVudHMKKyAgICBpbiA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPmhlbGdyaW5kLmg8L2NvZGU+IGZvciBmdXJ0aGVyCisgICAgZG9jdW1lbnRhdGlvbi48L3A+Cis8L2xpPgorPC91bD48L2Rpdj4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDEiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj4KKzxhIG5hbWU9ImhnLW1hbnVhbC50b2RvbGlzdCI+PC9hPjcuOS6gQSBUby1EbyBMaXN0IGZvciBIZWxncmluZDwvaDI+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD5UaGUgZm9sbG93aW5nIGlzIGEgbGlzdCBvZiBsb29zZSBlbmRzIHdoaWNoIHNob3VsZCBiZSB0aWRpZWQgdXAKK3NvbWUgdGltZS48L3A+Cis8ZGl2IGNsYXNzPSJpdGVtaXplZGxpc3QiPjx1bCBjbGFzcz0iaXRlbWl6ZWRsaXN0IiBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOiBkaXNjOyAiPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+Rm9yIGxvY2sgb3JkZXIgZXJyb3JzLCBwcmludCB0aGUgY29tcGxldGUgbG9jaworICAgIGN5Y2xlLCByYXRoZXIgdGhhbiBvbmx5IGRvaW5nIGZvciBzaXplLTIgY3ljbGVzIGFzIGF0CisgICAgcHJlc2VudC48L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPlRoZSBjb25mbGljdGluZyBhY2Nlc3MgbWVjaGFuaXNtIHNvbWV0aW1lcworICAgIG15c3RlcmlvdXNseSBmYWlscyB0byBzaG93IHRoZSBjb25mbGljdGluZyBhY2Nlc3MnIHN0YWNrLCBldmVuCisgICAgd2hlbiBwcm92aWRlZCB3aXRoIHVuYm91bmRlZCBzdG9yYWdlIGZvciBjb25mbGljdGluZyBhY2Nlc3MgaW5mby4KKyAgICBUaGlzIHNob3VsZCBiZSBpbnZlc3RpZ2F0ZWQuPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5Eb2N1bWVudCByYWNlcyBjYXVzZWQgYnkgR0NDJ3MgdGhyZWFkLXVuc2FmZSBjb2RlCisgICAgZ2VuZXJhdGlvbiBmb3Igc3BlY3VsYXRpdmUgc3RvcmVzLiAgSW4gdGhlIGludGVyaW0gc2VlCisgICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5odHRwOi8vZ2NjLmdudS5vcmcvbWwvZ2NjLzIwMDctMTAvbXNnMDAyNjYuaHRtbAorICAgIDwvY29kZT4KKyAgICBhbmQgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5odHRwOi8vbGttbC5vcmcvbGttbC8yMDA3LzEwLzI0LzY3MzwvY29kZT4uCisgICAgPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5Eb24ndCB1cGRhdGUgdGhlIGxvY2stb3JkZXIgZ3JhcGgsIGFuZCBkb24ndCBjaGVjaworICAgIGZvciBlcnJvcnMsIHdoZW4gYSAidHJ5Ii1zdHlsZSBsb2NrIG9wZXJhdGlvbiBoYXBwZW5zIChlLmcuCisgICAgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5wdGhyZWFkX211dGV4X3RyeWxvY2s8L2NvZGU+KS4gIFN1Y2ggY2FsbHMgZG8gbm90IGFkZCBhbnkgcmVhbAorICAgIHJlc3RyaWN0aW9ucyB0byB0aGUgbG9ja2luZyBvcmRlciwgc2luY2UgdGhleSBjYW4gYWx3YXlzIGZhaWwgdG8KKyAgICBhY3F1aXJlIHRoZSBsb2NrLCByZXN1bHRpbmcgaW4gdGhlIGNhbGxlciBnb2luZyBvZmYgYW5kIGRvaW5nIFBsYW4KKyAgICBCIChwcmVzdW1hYmx5IGl0IHdpbGwgaGF2ZSBhIFBsYW4gQikuICBEb2luZyBzdWNoIGNoZWNrcyBjb3VsZAorICAgIGdlbmVyYXRlIGZhbHNlIGxvY2stb3JkZXIgZXJyb3JzIGFuZCBjb25mdXNlIHVzZXJzLjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+IFBlcmZvcm1hbmNlIGNhbiBiZSB2ZXJ5IHBvb3IuICBTbG93ZG93bnMgb24gdGhlCisgICAgb3JkZXIgb2YgMTAwOjEgYXJlIG5vdCB1bnVzdWFsLiAgVGhlcmUgaXMgbGltaXRlZCBzY29wZSBmb3IKKyAgICBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudHMuCisgICAgPC9wPjwvbGk+Cis8L3VsPjwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKzxkaXY+Cis8YnI+PHRhYmxlIGNsYXNzPSJuYXYiIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0iMyIgY2VsbHBhZGRpbmc9IjIiIGJvcmRlcj0iMCIgc3VtbWFyeT0iTmF2aWdhdGlvbiBmb290ZXIiPgorPHRyPgorPHRkIHJvd3NwYW49IjIiIHdpZHRoPSI0MCUiIGFsaWduPSJsZWZ0Ij4KKzxhIGFjY2Vzc2tleT0icCIgaHJlZj0iY2wtbWFudWFsLmh0bWwiPiZsdDsmbHQ7oDYuoENhbGxncmluZDogYSBjYWxsLWdyYXBoIGdlbmVyYXRpbmcgY2FjaGUgYW5kIGJyYW5jaCBwcmVkaWN0aW9uIHByb2ZpbGVyPC9hPqA8L3RkPgorPHRkIHdpZHRoPSIyMCUiIGFsaWduPSJjZW50ZXIiPjxhIGFjY2Vzc2tleT0idSIgaHJlZj0ibWFudWFsLmh0bWwiPlVwPC9hPjwvdGQ+Cis8dGQgcm93c3Bhbj0iMiIgd2lkdGg9IjQwJSIgYWxpZ249InJpZ2h0Ij6gPGEgYWNjZXNza2V5PSJuIiBocmVmPSJkcmQtbWFudWFsLmh0bWwiPjguoERSRDogYSB0aHJlYWQgZXJyb3IgZGV0ZWN0b3KgJmd0OyZndDs8L2E+Cis8L3RkPgorPC90cj4KKzx0cj48dGQgd2lkdGg9IjIwJSIgYWxpZ249ImNlbnRlciI+PGEgYWNjZXNza2V5PSJoIiBocmVmPSJpbmRleC5odG1sIj5Ib21lPC9hPjwvdGQ+PC90cj4KKzwvdGFibGU+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL2RvY3MvaHRtbC9pbWFnZXMvaG9tZS5wbmcgYi9kb2NzL2h0bWwvaW1hZ2VzL2hvbWUucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFjY2ZiN2IKLS0tIC9kZXYvbnVsbAorKysgYi9kb2NzL2h0bWwvaW1hZ2VzL2hvbWUucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RvY3MvaHRtbC9pbWFnZXMvbmV4dC5wbmcgYi9kb2NzL2h0bWwvaW1hZ2VzL25leHQucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZkMGMxMWEKLS0tIC9kZXYvbnVsbAorKysgYi9kb2NzL2h0bWwvaW1hZ2VzL25leHQucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RvY3MvaHRtbC9pbWFnZXMvcHJldi5wbmcgYi9kb2NzL2h0bWwvaW1hZ2VzL3ByZXYucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlmZGYyOWUKLS0tIC9kZXYvbnVsbAorKysgYi9kb2NzL2h0bWwvaW1hZ2VzL3ByZXYucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RvY3MvaHRtbC9pbWFnZXMvdXAucG5nIGIvZG9jcy9odG1sL2ltYWdlcy91cC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTc1ZjBiMwotLS0gL2Rldi9udWxsCisrKyBiL2RvY3MvaHRtbC9pbWFnZXMvdXAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RvY3MvaHRtbC9pbmRleC5odG1sIGIvZG9jcy9odG1sL2luZGV4Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGUyNzA2MwotLS0gL2Rldi9udWxsCisrKyBiL2RvY3MvaHRtbC9pbmRleC5odG1sCkBAIC0wLDAgKzEsNjQgQEAKKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj4KKzx0aXRsZT5WYWxncmluZCBEb2N1bWVudGF0aW9uPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9InZnX2Jhc2ljLmNzcyI+Cis8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkRvY0Jvb2sgWFNMIFN0eWxlc2hlZXRzIFYxLjc4LjEiPgorPGxpbmsgcmVsPSJob21lIiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0iVmFsZ3JpbmQgRG9jdW1lbnRhdGlvbiI+Cis8bGluayByZWw9Im5leHQiIGhyZWY9IlF1aWNrU3RhcnQuaHRtbCIgdGl0bGU9IlRoZSBWYWxncmluZCBRdWljayBTdGFydCBHdWlkZSI+Cis8L2hlYWQ+Cis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+Cis8ZGl2PjwvZGl2PgorPGRpdiBsYW5nPSJlbiIgY2xhc3M9InNldCI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPgorPGRpdj4KKzxkaXYgYWxpZ249ImNlbnRlciI+PGgxIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJzZXQtaW5kZXgiPjwvYT5WYWxncmluZCBEb2N1bWVudGF0aW9uPC9oMT48L2Rpdj4KKzxkaXYgYWxpZ249ImNlbnRlciI+PHAgY2xhc3M9InJlbGVhc2VpbmZvIj5SZWxlYXNlIDMuMTIuMCAyMCBPY3RvYmVyIDIwMTY8L3A+PC9kaXY+Cis8ZGl2IGFsaWduPSJjZW50ZXIiPjxwIGNsYXNzPSJjb3B5cmlnaHQiPkNvcHlyaWdodCCpIDIwMDAtMjAxNiAKKyAgICAgICAgPGEgY2xhc3M9ImxpbmsiIGhyZWY9ImRpc3QuYXV0aG9ycy5odG1sIiB0aXRsZT0iMS6gQVVUSE9SUyI+QVVUSE9SUzwvYT4KKyAgICAgIDwvcD48L2Rpdj4KKzxkaXYgYWxpZ249ImNlbnRlciI+PGRpdiBjbGFzcz0ibGVnYWxub3RpY2UiPgorPGEgbmFtZT0iaWRtMTQwNjM5MTI3NTQ2NzY4Ij48L2E+PHA+UGVybWlzc2lvbiBpcyBncmFudGVkIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kL29yIG1vZGlmeQorICAgICAgICB0aGlzIGRvY3VtZW50IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEZyZWUgRG9jdW1lbnRhdGlvbgorICAgICAgICBMaWNlbnNlLCBWZXJzaW9uIDEuMiBvciBhbnkgbGF0ZXIgdmVyc2lvbiBwdWJsaXNoZWQgYnkgdGhlCisgICAgICAgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgd2l0aCBubyBJbnZhcmlhbnQgU2VjdGlvbnMsIHdpdGggbm8KKyAgICAgICAgRnJvbnQtQ292ZXIgVGV4dHMsIGFuZCB3aXRoIG5vIEJhY2stQ292ZXIgVGV4dHMuICBBIGNvcHkgb2YKKyAgICAgICAgdGhlIGxpY2Vuc2UgaXMgaW5jbHVkZWQgaW4gdGhlIHNlY3Rpb24gZW50aXRsZWQKKyAgICAgICAgPGEgY2xhc3M9InhyZWYiIGhyZWY9ImxpY2Vuc2UuZ2ZkbC5odG1sIiB0aXRsZT0iMi6gVGhlIEdOVSBGcmVlIERvY3VtZW50YXRpb24gTGljZW5zZSI+VGhlIEdOVSBGcmVlIERvY3VtZW50YXRpb24gTGljZW5zZTwvYT4uCisgICAgICA8L3A+Cis8cD5UaGlzIGlzIHRoZSB0b3AgbGV2ZWwgb2YgVmFsZ3JpbmQncyBkb2N1bWVudGF0aW9uIHRyZWUuCisgICAgICAgIFRoZSBkb2N1bWVudGF0aW9uIGlzIGNvbnRhaW5lZCBpbiBzaXggbG9naWNhbGx5IHNlcGFyYXRlCisgICAgICAgIGRvY3VtZW50cywgYXMgbGlzdGVkIGluIHRoZSBmb2xsb3dpbmcgVGFibGUgb2YgQ29udGVudHMuICBUbworICAgICAgICBnZXQgc3RhcnRlZCBxdWlja2x5LCByZWFkIHRoZSBWYWxncmluZCBRdWljayBTdGFydCBHdWlkZS4gIEZvcgorICAgICAgICBmdWxsIGRvY3VtZW50YXRpb24gb24gVmFsZ3JpbmQsIHJlYWQgdGhlIFZhbGdyaW5kIFVzZXIgTWFudWFsLgorICAgICAgPC9wPgorPC9kaXY+PC9kaXY+Cis8L2Rpdj4KKzxocj4KKzwvZGl2PgorPGRpdiBjbGFzcz0idG9jIj4KKzxwPjxiPlRhYmxlIG9mIENvbnRlbnRzPC9iPjwvcD4KKzxkbCBjbGFzcz0idG9jIj4KKzxkdD48c3BhbiBjbGFzcz0iYm9vayI+PGEgaHJlZj0iUXVpY2tTdGFydC5odG1sIj5UaGUgVmFsZ3JpbmQgUXVpY2sgU3RhcnQgR3VpZGU8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9ImJvb2siPjxhIGhyZWY9Im1hbnVhbC5odG1sIj5WYWxncmluZCBVc2VyIE1hbnVhbDwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0iYm9vayI+PGEgaHJlZj0iRkFRLmh0bWwiPlZhbGdyaW5kIEZBUTwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0iYm9vayI+PGEgaHJlZj0idGVjaC1kb2NzLmh0bWwiPlZhbGdyaW5kIFRlY2huaWNhbCBEb2N1bWVudGF0aW9uPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJib29rIj48YSBocmVmPSJkaXN0Lmh0bWwiPlZhbGdyaW5kIERpc3RyaWJ1dGlvbiBEb2N1bWVudHM8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9ImJvb2siPjxhIGhyZWY9ImxpY2Vuc2VzLmh0bWwiPkdOVSBMaWNlbnNlczwvYT48L3NwYW4+PC9kdD4KKzwvZGw+Cis8L2Rpdj4KKzwvZGl2PgorPGRpdj4KKzxicj48dGFibGUgY2xhc3M9Im5hdiIgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSIzIiBjZWxscGFkZGluZz0iMiIgYm9yZGVyPSIwIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGZvb3RlciI+Cis8dHI+Cis8dGQgcm93c3Bhbj0iMiIgd2lkdGg9IjQwJSIgYWxpZ249ImxlZnQiPqA8L3RkPgorPHRkIHdpZHRoPSIyMCUiIGFsaWduPSJjZW50ZXIiPqA8L3RkPgorPHRkIHJvd3NwYW49IjIiIHdpZHRoPSI0MCUiIGFsaWduPSJyaWdodCI+oDxhIGFjY2Vzc2tleT0ibiIgaHJlZj0iUXVpY2tTdGFydC5odG1sIj5UaGUgVmFsZ3JpbmQgUXVpY2sgU3RhcnQgR3VpZGWgJmd0OyZndDs8L2E+Cis8L3RkPgorPC90cj4KKzx0cj48dGQgd2lkdGg9IjIwJSIgYWxpZ249ImNlbnRlciI+oDwvdGQ+PC90cj4KKzwvdGFibGU+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL2RvY3MvaHRtbC9saWNlbnNlLmdmZGwuaHRtbCBiL2RvY3MvaHRtbC9saWNlbnNlLmdmZGwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNGY5ZTExCi0tLSAvZGV2L251bGwKKysrIGIvZG9jcy9odG1sL2xpY2Vuc2UuZ2ZkbC5odG1sCkBAIC0wLDAgKzEsNDM1IEBACis8aHRtbD4KKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSI+Cis8dGl0bGU+Mi6gVGhlIEdOVSBGcmVlIERvY3VtZW50YXRpb24gTGljZW5zZTwvdGl0bGU+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJ2Z19iYXNpYy5jc3MiPgorPG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJEb2NCb29rIFhTTCBTdHlsZXNoZWV0cyBWMS43OC4xIj4KKzxsaW5rIHJlbD0iaG9tZSIgaHJlZj0iaW5kZXguaHRtbCIgdGl0bGU9IlZhbGdyaW5kIERvY3VtZW50YXRpb24iPgorPGxpbmsgcmVsPSJ1cCIgaHJlZj0ibGljZW5zZXMuaHRtbCIgdGl0bGU9IkdOVSBMaWNlbnNlcyI+Cis8bGluayByZWw9InByZXYiIGhyZWY9ImxpY2Vuc2UuZ3BsLmh0bWwiIHRpdGxlPSIxLqBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UiPgorPC9oZWFkPgorPGJvZHkgYmdjb2xvcj0id2hpdGUiIHRleHQ9ImJsYWNrIiBsaW5rPSIjMDAwMEZGIiB2bGluaz0iIzg0MDA4NCIgYWxpbms9IiMwMDAwRkYiPgorPGRpdj48dGFibGUgY2xhc3M9Im5hdiIgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSIzIiBjZWxscGFkZGluZz0iMyIgYm9yZGVyPSIwIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciI+PHRyPgorPHRkIHdpZHRoPSIyMnB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJwIiBocmVmPSJsaWNlbnNlLmdwbC5odG1sIj48aW1nIHNyYz0iaW1hZ2VzL3ByZXYucG5nIiB3aWR0aD0iMTgiIGhlaWdodD0iMjEiIGJvcmRlcj0iMCIgYWx0PSJQcmV2Ij48L2E+PC90ZD4KKzx0ZCB3aWR0aD0iMjVweCIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPjxhIGFjY2Vzc2tleT0idSIgaHJlZj0ibGljZW5zZXMuaHRtbCI+PGltZyBzcmM9ImltYWdlcy91cC5wbmciIHdpZHRoPSIyMSIgaGVpZ2h0PSIxOCIgYm9yZGVyPSIwIiBhbHQ9IlVwIj48L2E+PC90ZD4KKzx0ZCB3aWR0aD0iMzFweCIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iaW5kZXguaHRtbCI+PGltZyBzcmM9ImltYWdlcy9ob21lLnBuZyIgd2lkdGg9IjI3IiBoZWlnaHQ9IjIwIiBib3JkZXI9IjAiIGFsdD0iVXAiPjwvYT48L3RkPgorPHRoIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj5HTlUgTGljZW5zZXM8L3RoPgorPHRkIHdpZHRoPSIyMnB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PC90ZD4KKzwvdHI+PC90YWJsZT48L2Rpdj4KKzxkaXYgY2xhc3M9ImNoYXB0ZXIiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgxIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJsaWNlbnNlLmdmZGwiPjwvYT4yLqBUaGUgR05VIEZyZWUgRG9jdW1lbnRhdGlvbiBMaWNlbnNlPC9oMT48L2Rpdj48L2Rpdj48L2Rpdj4KKzxkaXYgY2xhc3M9ImxpdGVyYWxsYXlvdXQiPjxwPjxicj4KK6CgoKCgoKCgoKCgoKCgoKCgoKCgoKBHTlWgRnJlZaBEb2N1bWVudGF0aW9uoExpY2Vuc2U8YnI+CiugoKCgoKCgoKCgoKCgoKCgoKBWZXJzaW9uoDEuMiygTm92ZW1iZXKgMjAwMjxicj4KKzxicj4KKzxicj4KK6BDb3B5cmlnaHSgKEMpoDIwMDAsMjAwMSwyMDAyoKBGcmVloFNvZnR3YXJloEZvdW5kYXRpb24soEluYy48YnI+CiugoKCgoDUxoEZyYW5rbGluoFN0LKBGaWZ0aKBGbG9vciygQm9zdG9uLKBNQaCgMDIxMTAtMTMwMaCgVVNBPGJyPgoroEV2ZXJ5b25loGlzoHBlcm1pdHRlZKB0b6Bjb3B5oGFuZKBkaXN0cmlidXRloHZlcmJhdGltoGNvcGllczxicj4KK6BvZqB0aGlzoGxpY2Vuc2WgZG9jdW1lbnQsoGJ1dKBjaGFuZ2luZ6BpdKBpc6Bub3SgYWxsb3dlZC48YnI+Cis8YnI+Cis8YnI+CiswLqBQUkVBTUJMRTxicj4KKzxicj4KK1RoZaBwdXJwb3NloG9moHRoaXOgTGljZW5zZaBpc6B0b6BtYWtloGGgbWFudWFsLKB0ZXh0Ym9vayygb3Kgb3RoZXI8YnI+CitmdW5jdGlvbmFsoGFuZKB1c2VmdWygZG9jdW1lbnSgImZyZWUioGluoHRoZaBzZW5zZaBvZqBmcmVlZG9tOqB0bzxicj4KK2Fzc3VyZaBldmVyeW9uZaB0aGWgZWZmZWN0aXZloGZyZWVkb22gdG+gY29weaBhbmSgcmVkaXN0cmlidXRloGl0LDxicj4KK3dpdGigb3Kgd2l0aG91dKBtb2RpZnlpbmegaXQsoGVpdGhlcqBjb21tZXJjaWFsbHmgb3Kgbm9uY29tbWVyY2lhbGx5Ljxicj4KK1NlY29uZGFyaWx5LKB0aGlzoExpY2Vuc2WgcHJlc2VydmVzoGZvcqB0aGWgYXV0aG9yoGFuZKBwdWJsaXNoZXKgYaB3YXk8YnI+Cit0b6BnZXSgY3JlZGl0oGZvcqB0aGVpcqB3b3JrLKB3aGlsZaBub3SgYmVpbmegY29uc2lkZXJlZKByZXNwb25zaWJsZTxicj4KK2ZvcqBtb2RpZmljYXRpb25zoG1hZGWgYnmgb3RoZXJzLjxicj4KKzxicj4KK1RoaXOgTGljZW5zZaBpc6BhoGtpbmSgb2agImNvcHlsZWZ0Iiygd2hpY2igbWVhbnOgdGhhdKBkZXJpdmF0aXZlPGJyPgord29ya3Ogb2agdGhloGRvY3VtZW50oG11c3SgdGhlbXNlbHZlc6BiZaBmcmVloGluoHRoZaBzYW1loHNlbnNlLqCgSXQ8YnI+Citjb21wbGVtZW50c6B0aGWgR05VoEdlbmVyYWygUHVibGljoExpY2Vuc2UsoHdoaWNooGlzoGGgY29weWxlZnQ8YnI+CitsaWNlbnNloGRlc2lnbmVkoGZvcqBmcmVloHNvZnR3YXJlLjxicj4KKzxicj4KK1dloGhhdmWgZGVzaWduZWSgdGhpc6BMaWNlbnNloGluoG9yZGVyoHRvoHVzZaBpdKBmb3KgbWFudWFsc6Bmb3KgZnJlZTxicj4KK3NvZnR3YXJlLKBiZWNhdXNloGZyZWWgc29mdHdhcmWgbmVlZHOgZnJlZaBkb2N1bWVudGF0aW9uOqBhoGZyZWU8YnI+Citwcm9ncmFtoHNob3VsZKBjb21loHdpdGigbWFudWFsc6Bwcm92aWRpbmegdGhloHNhbWWgZnJlZWRvbXOgdGhhdKB0aGU8YnI+Citzb2Z0d2FyZaBkb2VzLqCgQnV0oHRoaXOgTGljZW5zZaBpc6Bub3SgbGltaXRlZKB0b6Bzb2Z0d2FyZaBtYW51YWxzOzxicj4KK2l0oGNhbqBiZaB1c2VkoGZvcqBhbnmgdGV4dHVhbKB3b3JrLKByZWdhcmRsZXNzoG9moHN1YmplY3SgbWF0dGVyoG9yPGJyPgord2hldGhlcqBpdKBpc6BwdWJsaXNoZWSgYXOgYaBwcmludGVkoGJvb2suoKBXZaByZWNvbW1lbmSgdGhpc6BMaWNlbnNlPGJyPgorcHJpbmNpcGFsbHmgZm9yoHdvcmtzoHdob3NloHB1cnBvc2WgaXOgaW5zdHJ1Y3Rpb26gb3KgcmVmZXJlbmNlLjxicj4KKzxicj4KKzxicj4KKzEuoEFQUExJQ0FCSUxJVFmgQU5EoERFRklOSVRJT05TPGJyPgorPGJyPgorVGhpc6BMaWNlbnNloGFwcGxpZXOgdG+gYW55oG1hbnVhbKBvcqBvdGhlcqB3b3JrLKBpbqBhbnmgbWVkaXVtLKB0aGF0PGJyPgorY29udGFpbnOgYaBub3RpY2WgcGxhY2VkoGJ5oHRoZaBjb3B5cmlnaHSgaG9sZGVyoHNheWluZ6BpdKBjYW6gYmU8YnI+CitkaXN0cmlidXRlZKB1bmRlcqB0aGWgdGVybXOgb2agdGhpc6BMaWNlbnNlLqCgU3VjaKBhoG5vdGljZaBncmFudHOgYTxicj4KK3dvcmxkLXdpZGUsoHJveWFsdHktZnJlZaBsaWNlbnNlLKB1bmxpbWl0ZWSgaW6gZHVyYXRpb24soHRvoHVzZaB0aGF0PGJyPgord29ya6B1bmRlcqB0aGWgY29uZGl0aW9uc6BzdGF0ZWSgaGVyZWluLqCgVGhloCJEb2N1bWVudCIsoGJlbG93LDxicj4KK3JlZmVyc6B0b6Bhbnmgc3VjaKBtYW51YWygb3Kgd29yay6goEFueaBtZW1iZXKgb2agdGhloHB1YmxpY6Bpc6BhPGJyPgorbGljZW5zZWUsoGFuZKBpc6BhZGRyZXNzZWSgYXOgInlvdSIuoKBZb3WgYWNjZXB0oHRoZaBsaWNlbnNloGlmoHlvdTxicj4KK2NvcHksoG1vZGlmeaBvcqBkaXN0cmlidXRloHRoZaB3b3JroGluoGGgd2F5oHJlcXVpcmluZ6BwZXJtaXNzaW9uPGJyPgordW5kZXKgY29weXJpZ2h0oGxhdy48YnI+Cis8YnI+CitBoCJNb2RpZmllZKBWZXJzaW9uIqBvZqB0aGWgRG9jdW1lbnSgbWVhbnOgYW55oHdvcmugY29udGFpbmluZ6B0aGU8YnI+CitEb2N1bWVudKBvcqBhoHBvcnRpb26gb2agaXQsoGVpdGhlcqBjb3BpZWSgdmVyYmF0aW0soG9yoHdpdGg8YnI+Cittb2RpZmljYXRpb25zoGFuZC9vcqB0cmFuc2xhdGVkoGludG+gYW5vdGhlcqBsYW5ndWFnZS48YnI+Cis8YnI+CitBoCJTZWNvbmRhcnmgU2VjdGlvbiKgaXOgYaBuYW1lZKBhcHBlbmRpeKBvcqBhoGZyb250LW1hdHRlcqBzZWN0aW9uoG9mPGJyPgordGhloERvY3VtZW50oHRoYXSgZGVhbHOgZXhjbHVzaXZlbHmgd2l0aKB0aGWgcmVsYXRpb25zaGlwoG9moHRoZTxicj4KK3B1Ymxpc2hlcnOgb3KgYXV0aG9yc6BvZqB0aGWgRG9jdW1lbnSgdG+gdGhloERvY3VtZW50J3Ogb3ZlcmFsbKBzdWJqZWN0PGJyPgorKG9yoHRvoHJlbGF0ZWSgbWF0dGVycymgYW5koGNvbnRhaW5zoG5vdGhpbmegdGhhdKBjb3VsZKBmYWxsoGRpcmVjdGx5PGJyPgord2l0aGluoHRoYXSgb3ZlcmFsbKBzdWJqZWN0LqCgKFRodXMsoGlmoHRoZaBEb2N1bWVudKBpc6BpbqBwYXJ0oGE8YnI+Cit0ZXh0Ym9va6BvZqBtYXRoZW1hdGljcyygYaBTZWNvbmRhcnmgU2VjdGlvbqBtYXmgbm90oGV4cGxhaW6gYW55PGJyPgorbWF0aGVtYXRpY3MuKaCgVGhloHJlbGF0aW9uc2hpcKBjb3VsZKBiZaBhoG1hdHRlcqBvZqBoaXN0b3JpY2FsPGJyPgorY29ubmVjdGlvbqB3aXRooHRoZaBzdWJqZWN0oG9yoHdpdGigcmVsYXRlZKBtYXR0ZXJzLKBvcqBvZqBsZWdhbCw8YnI+Citjb21tZXJjaWFsLKBwaGlsb3NvcGhpY2FsLKBldGhpY2FsoG9yoHBvbGl0aWNhbKBwb3NpdGlvbqByZWdhcmRpbmc8YnI+Cit0aGVtLjxicj4KKzxicj4KK1RoZaAiSW52YXJpYW50oFNlY3Rpb25zIqBhcmWgY2VydGFpbqBTZWNvbmRhcnmgU2VjdGlvbnOgd2hvc2WgdGl0bGVzPGJyPgorYXJloGRlc2lnbmF0ZWQsoGFzoGJlaW5noHRob3NloG9moEludmFyaWFudKBTZWN0aW9ucyygaW6gdGhloG5vdGljZTxicj4KK3RoYXSgc2F5c6B0aGF0oHRoZaBEb2N1bWVudKBpc6ByZWxlYXNlZKB1bmRlcqB0aGlzoExpY2Vuc2UuoKBJZqBhPGJyPgorc2VjdGlvbqBkb2VzoG5vdKBmaXSgdGhloGFib3ZloGRlZmluaXRpb26gb2agU2Vjb25kYXJ5oHRoZW6gaXSgaXOgbm90PGJyPgorYWxsb3dlZKB0b6BiZaBkZXNpZ25hdGVkoGFzoEludmFyaWFudC6goFRoZaBEb2N1bWVudKBtYXmgY29udGFpbqB6ZXJvPGJyPgorSW52YXJpYW50oFNlY3Rpb25zLqCgSWagdGhloERvY3VtZW50oGRvZXOgbm90oGlkZW50aWZ5oGFueaBJbnZhcmlhbnQ8YnI+CitTZWN0aW9uc6B0aGVuoHRoZXJloGFyZaBub25lLjxicj4KKzxicj4KK1RoZaAiQ292ZXKgVGV4dHMioGFyZaBjZXJ0YWluoHNob3J0oHBhc3NhZ2VzoG9moHRleHSgdGhhdKBhcmWgbGlzdGVkLDxicj4KK2FzoEZyb250LUNvdmVyoFRleHRzoG9yoEJhY2stQ292ZXKgVGV4dHMsoGluoHRoZaBub3RpY2WgdGhhdKBzYXlzoHRoYXQ8YnI+Cit0aGWgRG9jdW1lbnSgaXOgcmVsZWFzZWSgdW5kZXKgdGhpc6BMaWNlbnNlLqCgQaBGcm9udC1Db3ZlcqBUZXh0oG1heTxicj4KK2JloGF0oG1vc3SgNaB3b3JkcyygYW5koGGgQmFjay1Db3ZlcqBUZXh0oG1heaBiZaBhdKBtb3N0oDI1oHdvcmRzLjxicj4KKzxicj4KK0GgIlRyYW5zcGFyZW50IqBjb3B5oG9moHRoZaBEb2N1bWVudKBtZWFuc6BhoG1hY2hpbmUtcmVhZGFibGWgY29weSw8YnI+CityZXByZXNlbnRlZKBpbqBhoGZvcm1hdKB3aG9zZaBzcGVjaWZpY2F0aW9uoGlzoGF2YWlsYWJsZaB0b6B0aGU8YnI+CitnZW5lcmFsoHB1YmxpYyygdGhhdKBpc6BzdWl0YWJsZaBmb3KgcmV2aXNpbmegdGhloGRvY3VtZW50PGJyPgorc3RyYWlnaHRmb3J3YXJkbHmgd2l0aKBnZW5lcmljoHRleHSgZWRpdG9yc6BvcqAoZm9yoGltYWdlc6Bjb21wb3NlZKBvZjxicj4KK3BpeGVscymgZ2VuZXJpY6BwYWludKBwcm9ncmFtc6BvcqAoZm9yoGRyYXdpbmdzKaBzb21loHdpZGVseaBhdmFpbGFibGU8YnI+CitkcmF3aW5noGVkaXRvciygYW5koHRoYXSgaXOgc3VpdGFibGWgZm9yoGlucHV0oHRvoHRleHSgZm9ybWF0dGVyc6Bvcjxicj4KK2ZvcqBhdXRvbWF0aWOgdHJhbnNsYXRpb26gdG+gYaB2YXJpZXR5oG9moGZvcm1hdHOgc3VpdGFibGWgZm9yoGlucHV0PGJyPgordG+gdGV4dKBmb3JtYXR0ZXJzLqCgQaBjb3B5oG1hZGWgaW6gYW6gb3RoZXJ3aXNloFRyYW5zcGFyZW50oGZpbGU8YnI+Citmb3JtYXSgd2hvc2WgbWFya3VwLKBvcqBhYnNlbmNloG9moG1hcmt1cCygaGFzoGJlZW6gYXJyYW5nZWSgdG+gdGh3YXJ0PGJyPgorb3KgZGlzY291cmFnZaBzdWJzZXF1ZW50oG1vZGlmaWNhdGlvbqBieaByZWFkZXJzoGlzoG5vdKBUcmFuc3BhcmVudC48YnI+CitBbqBpbWFnZaBmb3JtYXSgaXOgbm90oFRyYW5zcGFyZW50oGlmoHVzZWSgZm9yoGFueaBzdWJzdGFudGlhbKBhbW91bnQ8YnI+CitvZqB0ZXh0LqCgQaBjb3B5oHRoYXSgaXOgbm90oCJUcmFuc3BhcmVudCKgaXOgY2FsbGVkoCJPcGFxdWUiLjxicj4KKzxicj4KK0V4YW1wbGVzoG9moHN1aXRhYmxloGZvcm1hdHOgZm9yoFRyYW5zcGFyZW50oGNvcGllc6BpbmNsdWRloHBsYWluPGJyPgorQVNDSUmgd2l0aG91dKBtYXJrdXAsoFRleGluZm+gaW5wdXSgZm9ybWF0LKBMYVRlWKBpbnB1dKBmb3JtYXQsoFNHTUw8YnI+CitvcqBYTUygdXNpbmegYaBwdWJsaWNseaBhdmFpbGFibGWgRFRELKBhbmSgc3RhbmRhcmQtY29uZm9ybWluZ6BzaW1wbGU8YnI+CitIVE1MLKBQb3N0U2NyaXB0oG9yoFBERqBkZXNpZ25lZKBmb3KgaHVtYW6gbW9kaWZpY2F0aW9uLqCgRXhhbXBsZXOgb2Y8YnI+Cit0cmFuc3BhcmVudKBpbWFnZaBmb3JtYXRzoGluY2x1ZGWgUE5HLKBYQ0agYW5koEpQRy6goE9wYXF1ZaBmb3JtYXRzPGJyPgoraW5jbHVkZaBwcm9wcmlldGFyeaBmb3JtYXRzoHRoYXSgY2FuoGJloHJlYWSgYW5koGVkaXRlZKBvbmx5oGJ5PGJyPgorcHJvcHJpZXRhcnmgd29yZKBwcm9jZXNzb3JzLKBTR01MoG9yoFhNTKBmb3Kgd2hpY2igdGhloERURKBhbmQvb3I8YnI+Citwcm9jZXNzaW5noHRvb2xzoGFyZaBub3SgZ2VuZXJhbGx5oGF2YWlsYWJsZSygYW5koHRoZTxicj4KK21hY2hpbmUtZ2VuZXJhdGVkoEhUTUwsoFBvc3RTY3JpcHSgb3KgUERGoHByb2R1Y2VkoGJ5oHNvbWWgd29yZDxicj4KK3Byb2Nlc3NvcnOgZm9yoG91dHB1dKBwdXJwb3Nlc6Bvbmx5Ljxicj4KKzxicj4KK1RoZaAiVGl0bGWgUGFnZSKgbWVhbnMsoGZvcqBhoHByaW50ZWSgYm9vayygdGhloHRpdGxloHBhZ2WgaXRzZWxmLDxicj4KK3BsdXOgc3VjaKBmb2xsb3dpbmegcGFnZXOgYXOgYXJloG5lZWRlZKB0b6Bob2xkLKBsZWdpYmx5LKB0aGWgbWF0ZXJpYWw8YnI+Cit0aGlzoExpY2Vuc2WgcmVxdWlyZXOgdG+gYXBwZWFyoGluoHRoZaB0aXRsZaBwYWdlLqCgRm9yoHdvcmtzoGluPGJyPgorZm9ybWF0c6B3aGljaKBkb6Bub3SgaGF2ZaBhbnmgdGl0bGWgcGFnZaBhc6BzdWNoLKAiVGl0bGWgUGFnZSKgbWVhbnM8YnI+Cit0aGWgdGV4dKBuZWFyoHRoZaBtb3N0oHByb21pbmVudKBhcHBlYXJhbmNloG9moHRoZaB3b3JrJ3OgdGl0bGUsPGJyPgorcHJlY2VkaW5noHRoZaBiZWdpbm5pbmegb2agdGhloGJvZHmgb2agdGhloHRleHQuPGJyPgorPGJyPgorQaBzZWN0aW9uoCJFbnRpdGxlZKBYWVoioG1lYW5zoGGgbmFtZWSgc3VidW5pdKBvZqB0aGWgRG9jdW1lbnSgd2hvc2U8YnI+Cit0aXRsZaBlaXRoZXKgaXOgcHJlY2lzZWx5oFhZWqBvcqBjb250YWluc6BYWVqgaW6gcGFyZW50aGVzZXOgZm9sbG93aW5nPGJyPgordGV4dKB0aGF0oHRyYW5zbGF0ZXOgWFlaoGluoGFub3RoZXKgbGFuZ3VhZ2UuoKAoSGVyZaBYWVqgc3RhbmRzoGZvcqBhPGJyPgorc3BlY2lmaWOgc2VjdGlvbqBuYW1loG1lbnRpb25lZKBiZWxvdyygc3VjaKBhc6AiQWNrbm93bGVkZ2VtZW50cyIsPGJyPgorIkRlZGljYXRpb25zIiygIkVuZG9yc2VtZW50cyIsoG9yoCJIaXN0b3J5Ii4poKBUb6AiUHJlc2VydmWgdGhloFRpdGxlIjxicj4KK29moHN1Y2igYaBzZWN0aW9uoHdoZW6geW91oG1vZGlmeaB0aGWgRG9jdW1lbnSgbWVhbnOgdGhhdKBpdKByZW1haW5zoGE8YnI+CitzZWN0aW9uoCJFbnRpdGxlZKBYWVoioGFjY29yZGluZ6B0b6B0aGlzoGRlZmluaXRpb24uPGJyPgorPGJyPgorVGhloERvY3VtZW50oG1heaBpbmNsdWRloFdhcnJhbnR5oERpc2NsYWltZXJzoG5leHSgdG+gdGhloG5vdGljZaB3aGljaDxicj4KK3N0YXRlc6B0aGF0oHRoaXOgTGljZW5zZaBhcHBsaWVzoHRvoHRoZaBEb2N1bWVudC6goFRoZXNloFdhcnJhbnR5PGJyPgorRGlzY2xhaW1lcnOgYXJloGNvbnNpZGVyZWSgdG+gYmWgaW5jbHVkZWSgYnmgcmVmZXJlbmNloGluoHRoaXM8YnI+CitMaWNlbnNlLKBidXSgb25seaBhc6ByZWdhcmRzoGRpc2NsYWltaW5noHdhcnJhbnRpZXM6oGFueaBvdGhlcjxicj4KK2ltcGxpY2F0aW9uoHRoYXSgdGhlc2WgV2FycmFudHmgRGlzY2xhaW1lcnOgbWF5oGhhdmWgaXOgdm9pZKBhbmSgaGFzPGJyPgorbm+gZWZmZWN0oG9uoHRoZaBtZWFuaW5noG9moHRoaXOgTGljZW5zZS48YnI+Cis8YnI+Cis8YnI+CisyLqBWRVJCQVRJTaBDT1BZSU5HPGJyPgorPGJyPgorWW91oG1heaBjb3B5oGFuZKBkaXN0cmlidXRloHRoZaBEb2N1bWVudKBpbqBhbnmgbWVkaXVtLKBlaXRoZXI8YnI+Citjb21tZXJjaWFsbHmgb3Kgbm9uY29tbWVyY2lhbGx5LKBwcm92aWRlZKB0aGF0oHRoaXOgTGljZW5zZSygdGhlPGJyPgorY29weXJpZ2h0oG5vdGljZXMsoGFuZKB0aGWgbGljZW5zZaBub3RpY2Wgc2F5aW5noHRoaXOgTGljZW5zZaBhcHBsaWVzPGJyPgordG+gdGhloERvY3VtZW50oGFyZaByZXByb2R1Y2VkoGluoGFsbKBjb3BpZXMsoGFuZKB0aGF0oHlvdaBhZGSgbm+gb3RoZXI8YnI+Citjb25kaXRpb25zoHdoYXRzb2V2ZXKgdG+gdGhvc2Wgb2agdGhpc6BMaWNlbnNlLqCgWW91oG1heaBub3SgdXNlPGJyPgordGVjaG5pY2FsoG1lYXN1cmVzoHRvoG9ic3RydWN0oG9yoGNvbnRyb2ygdGhloHJlYWRpbmegb3KgZnVydGhlcjxicj4KK2NvcHlpbmegb2agdGhloGNvcGllc6B5b3WgbWFrZaBvcqBkaXN0cmlidXRlLqCgSG93ZXZlciygeW91oG1heaBhY2NlcHQ8YnI+Citjb21wZW5zYXRpb26gaW6gZXhjaGFuZ2WgZm9yoGNvcGllcy6goElmoHlvdaBkaXN0cmlidXRloGGgbGFyZ2WgZW5vdWdoPGJyPgorbnVtYmVyoG9moGNvcGllc6B5b3WgbXVzdKBhbHNvoGZvbGxvd6B0aGWgY29uZGl0aW9uc6BpbqBzZWN0aW9uoDMuPGJyPgorPGJyPgorWW91oG1heaBhbHNvoGxlbmSgY29waWVzLKB1bmRlcqB0aGWgc2FtZaBjb25kaXRpb25zoHN0YXRlZKBhYm92ZSygYW5kPGJyPgoreW91oG1heaBwdWJsaWNseaBkaXNwbGF5oGNvcGllcy48YnI+Cis8YnI+Cis8YnI+CiszLqBDT1BZSU5HoElOoFFVQU5USVRZPGJyPgorPGJyPgorSWageW91oHB1Ymxpc2igcHJpbnRlZKBjb3BpZXOgKG9yoGNvcGllc6BpbqBtZWRpYaB0aGF0oGNvbW1vbmx5oGhhdmU8YnI+CitwcmludGVkoGNvdmVycymgb2agdGhloERvY3VtZW50LKBudW1iZXJpbmegbW9yZaB0aGFuoDEwMCygYW5koHRoZTxicj4KK0RvY3VtZW50J3OgbGljZW5zZaBub3RpY2WgcmVxdWlyZXOgQ292ZXKgVGV4dHMsoHlvdaBtdXN0oGVuY2xvc2WgdGhlPGJyPgorY29waWVzoGluoGNvdmVyc6B0aGF0oGNhcnJ5LKBjbGVhcmx5oGFuZKBsZWdpYmx5LKBhbGygdGhlc2WgQ292ZXI8YnI+CitUZXh0czqgRnJvbnQtQ292ZXKgVGV4dHOgb26gdGhloGZyb250oGNvdmVyLKBhbmSgQmFjay1Db3ZlcqBUZXh0c6Bvbjxicj4KK3RoZaBiYWNroGNvdmVyLqCgQm90aKBjb3ZlcnOgbXVzdKBhbHNvoGNsZWFybHmgYW5koGxlZ2libHmgaWRlbnRpZnk8YnI+Cit5b3WgYXOgdGhloHB1Ymxpc2hlcqBvZqB0aGVzZaBjb3BpZXMuoKBUaGWgZnJvbnSgY292ZXKgbXVzdKBwcmVzZW50PGJyPgordGhloGZ1bGygdGl0bGWgd2l0aKBhbGygd29yZHOgb2agdGhloHRpdGxloGVxdWFsbHmgcHJvbWluZW50oGFuZDxicj4KK3Zpc2libGUuoKBZb3WgbWF5oGFkZKBvdGhlcqBtYXRlcmlhbKBvbqB0aGWgY292ZXJzoGluoGFkZGl0aW9uLjxicj4KK0NvcHlpbmegd2l0aKBjaGFuZ2VzoGxpbWl0ZWSgdG+gdGhloGNvdmVycyygYXOgbG9uZ6Bhc6B0aGV5oHByZXNlcnZlPGJyPgordGhloHRpdGxloG9moHRoZaBEb2N1bWVudKBhbmSgc2F0aXNmeaB0aGVzZaBjb25kaXRpb25zLKBjYW6gYmWgdHJlYXRlZDxicj4KK2FzoHZlcmJhdGltoGNvcHlpbmegaW6gb3RoZXKgcmVzcGVjdHMuPGJyPgorPGJyPgorSWagdGhloHJlcXVpcmVkoHRleHRzoGZvcqBlaXRoZXKgY292ZXKgYXJloHRvb6B2b2x1bWlub3VzoHRvoGZpdDxicj4KK2xlZ2libHksoHlvdaBzaG91bGSgcHV0oHRoZaBmaXJzdKBvbmVzoGxpc3RlZKAoYXOgbWFueaBhc6BmaXQ8YnI+CityZWFzb25hYmx5KaBvbqB0aGWgYWN0dWFsoGNvdmVyLKBhbmSgY29udGludWWgdGhloHJlc3Sgb250b6BhZGphY2VudDxicj4KK3BhZ2VzLjxicj4KKzxicj4KK0lmoHlvdaBwdWJsaXNooG9yoGRpc3RyaWJ1dGWgT3BhcXVloGNvcGllc6BvZqB0aGWgRG9jdW1lbnSgbnVtYmVyaW5nPGJyPgorbW9yZaB0aGFuoDEwMCygeW91oG11c3SgZWl0aGVyoGluY2x1ZGWgYaBtYWNoaW5lLXJlYWRhYmxloFRyYW5zcGFyZW50PGJyPgorY29weaBhbG9uZ6B3aXRooGVhY2igT3BhcXVloGNvcHksoG9yoHN0YXRloGluoG9yoHdpdGigZWFjaKBPcGFxdWWgY29weTxicj4KK2GgY29tcHV0ZXItbmV0d29ya6Bsb2NhdGlvbqBmcm9toHdoaWNooHRoZaBnZW5lcmFsoG5ldHdvcmstdXNpbmc8YnI+CitwdWJsaWOgaGFzoGFjY2Vzc6B0b6Bkb3dubG9hZKB1c2luZ6BwdWJsaWMtc3RhbmRhcmSgbmV0d29ya6Bwcm90b2NvbHM8YnI+CithoGNvbXBsZXRloFRyYW5zcGFyZW50oGNvcHmgb2agdGhloERvY3VtZW50LKBmcmVloG9moGFkZGVkoG1hdGVyaWFsLjxicj4KK0lmoHlvdaB1c2WgdGhloGxhdHRlcqBvcHRpb24soHlvdaBtdXN0oHRha2WgcmVhc29uYWJseaBwcnVkZW50oHN0ZXBzLDxicj4KK3doZW6geW91oGJlZ2luoGRpc3RyaWJ1dGlvbqBvZqBPcGFxdWWgY29waWVzoGluoHF1YW50aXR5LKB0b6BlbnN1cmU8YnI+Cit0aGF0oHRoaXOgVHJhbnNwYXJlbnSgY29weaB3aWxsoHJlbWFpbqB0aHVzoGFjY2Vzc2libGWgYXSgdGhloHN0YXRlZDxicj4KK2xvY2F0aW9uoHVudGlsoGF0oGxlYXN0oG9uZaB5ZWFyoGFmdGVyoHRoZaBsYXN0oHRpbWWgeW91oGRpc3RyaWJ1dGWgYW48YnI+CitPcGFxdWWgY29weaAoZGlyZWN0bHmgb3KgdGhyb3VnaKB5b3VyoGFnZW50c6BvcqByZXRhaWxlcnMpoG9moHRoYXQ8YnI+CitlZGl0aW9uoHRvoHRoZaBwdWJsaWMuPGJyPgorPGJyPgorSXSgaXOgcmVxdWVzdGVkLKBidXSgbm90oHJlcXVpcmVkLKB0aGF0oHlvdaBjb250YWN0oHRoZaBhdXRob3JzoG9moHRoZTxicj4KK0RvY3VtZW50oHdlbGygYmVmb3JloHJlZGlzdHJpYnV0aW5noGFueaBsYXJnZaBudW1iZXKgb2agY29waWVzLKB0b6BnaXZlPGJyPgordGhlbaBhoGNoYW5jZaB0b6Bwcm92aWRloHlvdaB3aXRooGFuoHVwZGF0ZWSgdmVyc2lvbqBvZqB0aGWgRG9jdW1lbnQuPGJyPgorPGJyPgorPGJyPgorNC6gTU9ESUZJQ0FUSU9OUzxicj4KKzxicj4KK1lvdaBtYXmgY29weaBhbmSgZGlzdHJpYnV0ZaBhoE1vZGlmaWVkoFZlcnNpb26gb2agdGhloERvY3VtZW50oHVuZGVyPGJyPgordGhloGNvbmRpdGlvbnOgb2agc2VjdGlvbnOgMqBhbmSgM6BhYm92ZSygcHJvdmlkZWSgdGhhdKB5b3WgcmVsZWFzZTxicj4KK3RoZaBNb2RpZmllZKBWZXJzaW9uoHVuZGVyoHByZWNpc2VseaB0aGlzoExpY2Vuc2UsoHdpdGigdGhloE1vZGlmaWVkPGJyPgorVmVyc2lvbqBmaWxsaW5noHRoZaByb2xloG9moHRoZaBEb2N1bWVudCygdGh1c6BsaWNlbnNpbmegZGlzdHJpYnV0aW9uPGJyPgorYW5koG1vZGlmaWNhdGlvbqBvZqB0aGWgTW9kaWZpZWSgVmVyc2lvbqB0b6B3aG9ldmVyoHBvc3Nlc3Nlc6BhoGNvcHk8YnI+CitvZqBpdC6goEluoGFkZGl0aW9uLKB5b3WgbXVzdKBkb6B0aGVzZaB0aGluZ3OgaW6gdGhloE1vZGlmaWVkoFZlcnNpb246PGJyPgorPGJyPgorQS6gVXNloGluoHRoZaBUaXRsZaBQYWdloChhbmSgb26gdGhloGNvdmVycyygaWagYW55KaBhoHRpdGxloGRpc3RpbmN0PGJyPgoroKCgZnJvbaB0aGF0oG9moHRoZaBEb2N1bWVudCygYW5koGZyb22gdGhvc2Wgb2agcHJldmlvdXOgdmVyc2lvbnM8YnI+CiugoKAod2hpY2igc2hvdWxkLKBpZqB0aGVyZaB3ZXJloGFueSygYmWgbGlzdGVkoGluoHRoZaBIaXN0b3J5oHNlY3Rpb248YnI+CiugoKBvZqB0aGWgRG9jdW1lbnQpLqCgWW91oG1heaB1c2WgdGhloHNhbWWgdGl0bGWgYXOgYaBwcmV2aW91c6B2ZXJzaW9uPGJyPgoroKCgaWagdGhloG9yaWdpbmFsoHB1Ymxpc2hlcqBvZqB0aGF0oHZlcnNpb26gZ2l2ZXOgcGVybWlzc2lvbi48YnI+CitCLqBMaXN0oG9uoHRoZaBUaXRsZaBQYWdlLKBhc6BhdXRob3JzLKBvbmWgb3KgbW9yZaBwZXJzb25zoG9yoGVudGl0aWVzPGJyPgoroKCgcmVzcG9uc2libGWgZm9yoGF1dGhvcnNoaXCgb2agdGhloG1vZGlmaWNhdGlvbnOgaW6gdGhloE1vZGlmaWVkPGJyPgoroKCgVmVyc2lvbiygdG9nZXRoZXKgd2l0aKBhdKBsZWFzdKBmaXZloG9moHRoZaBwcmluY2lwYWygYXV0aG9yc6BvZqB0aGU8YnI+CiugoKBEb2N1bWVudKAoYWxsoG9moGl0c6BwcmluY2lwYWygYXV0aG9ycyygaWagaXSgaGFzoGZld2VyoHRoYW6gZml2ZSksPGJyPgoroKCgdW5sZXNzoHRoZXmgcmVsZWFzZaB5b3WgZnJvbaB0aGlzoHJlcXVpcmVtZW50Ljxicj4KK0MuoFN0YXRloG9uoHRoZaBUaXRsZaBwYWdloHRoZaBuYW1loG9moHRoZaBwdWJsaXNoZXKgb2agdGhlPGJyPgoroKCgTW9kaWZpZWSgVmVyc2lvbiygYXOgdGhloHB1Ymxpc2hlci48YnI+CitELqBQcmVzZXJ2ZaBhbGygdGhloGNvcHlyaWdodKBub3RpY2VzoG9moHRoZaBEb2N1bWVudC48YnI+CitFLqBBZGSgYW6gYXBwcm9wcmlhdGWgY29weXJpZ2h0oG5vdGljZaBmb3KgeW91cqBtb2RpZmljYXRpb25zPGJyPgoroKCgYWRqYWNlbnSgdG+gdGhloG90aGVyoGNvcHlyaWdodKBub3RpY2VzLjxicj4KK0YuoEluY2x1ZGUsoGltbWVkaWF0ZWx5oGFmdGVyoHRoZaBjb3B5cmlnaHSgbm90aWNlcyygYaBsaWNlbnNloG5vdGljZTxicj4KK6CgoGdpdmluZ6B0aGWgcHVibGljoHBlcm1pc3Npb26gdG+gdXNloHRoZaBNb2RpZmllZKBWZXJzaW9uoHVuZGVyoHRoZTxicj4KK6CgoHRlcm1zoG9moHRoaXOgTGljZW5zZSygaW6gdGhloGZvcm2gc2hvd26gaW6gdGhloEFkZGVuZHVtoGJlbG93Ljxicj4KK0cuoFByZXNlcnZloGluoHRoYXSgbGljZW5zZaBub3RpY2WgdGhloGZ1bGygbGlzdHOgb2agSW52YXJpYW50oFNlY3Rpb25zPGJyPgoroKCgYW5koHJlcXVpcmVkoENvdmVyoFRleHRzoGdpdmVuoGluoHRoZaBEb2N1bWVudCdzoGxpY2Vuc2Wgbm90aWNlLjxicj4KK0guoEluY2x1ZGWgYW6gdW5hbHRlcmVkoGNvcHmgb2agdGhpc6BMaWNlbnNlLjxicj4KK0kuoFByZXNlcnZloHRoZaBzZWN0aW9uoEVudGl0bGVkoCJIaXN0b3J5IiygUHJlc2VydmWgaXRzoFRpdGxlLKBhbmSgYWRkPGJyPgoroKCgdG+gaXSgYW6gaXRlbaBzdGF0aW5noGF0oGxlYXN0oHRoZaB0aXRsZSygeWVhciygbmV3oGF1dGhvcnMsoGFuZDxicj4KK6CgoHB1Ymxpc2hlcqBvZqB0aGWgTW9kaWZpZWSgVmVyc2lvbqBhc6BnaXZlbqBvbqB0aGWgVGl0bGWgUGFnZS6goElmPGJyPgoroKCgdGhlcmWgaXOgbm+gc2VjdGlvbqBFbnRpdGxlZKAiSGlzdG9yeSKgaW6gdGhloERvY3VtZW50LKBjcmVhdGWgb25lPGJyPgoroKCgc3RhdGluZ6B0aGWgdGl0bGUsoHllYXIsoGF1dGhvcnMsoGFuZKBwdWJsaXNoZXKgb2agdGhloERvY3VtZW50oGFzPGJyPgoroKCgZ2l2ZW6gb26gaXRzoFRpdGxloFBhZ2UsoHRoZW6gYWRkoGFuoGl0ZW2gZGVzY3JpYmluZ6B0aGWgTW9kaWZpZWQ8YnI+CiugoKBWZXJzaW9uoGFzoHN0YXRlZKBpbqB0aGWgcHJldmlvdXOgc2VudGVuY2UuPGJyPgorSi6gUHJlc2VydmWgdGhloG5ldHdvcmugbG9jYXRpb24soGlmoGFueSygZ2l2ZW6gaW6gdGhloERvY3VtZW50oGZvcjxicj4KK6CgoHB1YmxpY6BhY2Nlc3OgdG+gYaBUcmFuc3BhcmVudKBjb3B5oG9moHRoZaBEb2N1bWVudCygYW5koGxpa2V3aXNlPGJyPgoroKCgdGhloG5ldHdvcmugbG9jYXRpb25zoGdpdmVuoGluoHRoZaBEb2N1bWVudKBmb3KgcHJldmlvdXOgdmVyc2lvbnM8YnI+CiugoKBpdKB3YXOgYmFzZWSgb24uoKBUaGVzZaBtYXmgYmWgcGxhY2VkoGluoHRoZaAiSGlzdG9yeSKgc2VjdGlvbi48YnI+CiugoKBZb3WgbWF5oG9taXSgYaBuZXR3b3JroGxvY2F0aW9uoGZvcqBhoHdvcmugdGhhdKB3YXOgcHVibGlzaGVkoGF0PGJyPgoroKCgbGVhc3SgZm91cqB5ZWFyc6BiZWZvcmWgdGhloERvY3VtZW50oGl0c2VsZiygb3KgaWagdGhloG9yaWdpbmFsPGJyPgoroKCgcHVibGlzaGVyoG9moHRoZaB2ZXJzaW9uoGl0oHJlZmVyc6B0b6BnaXZlc6BwZXJtaXNzaW9uLjxicj4KK0suoEZvcqBhbnmgc2VjdGlvbqBFbnRpdGxlZKAiQWNrbm93bGVkZ2VtZW50cyKgb3KgIkRlZGljYXRpb25zIiw8YnI+CiugoKBQcmVzZXJ2ZaB0aGWgVGl0bGWgb2agdGhloHNlY3Rpb24soGFuZKBwcmVzZXJ2ZaBpbqB0aGWgc2VjdGlvbqBhbGw8YnI+CiugoKB0aGWgc3Vic3RhbmNloGFuZKB0b25loG9moGVhY2igb2agdGhloGNvbnRyaWJ1dG9yoGFja25vd2xlZGdlbWVudHM8YnI+CiugoKBhbmQvb3KgZGVkaWNhdGlvbnOgZ2l2ZW6gdGhlcmVpbi48YnI+CitMLqBQcmVzZXJ2ZaBhbGygdGhloEludmFyaWFudKBTZWN0aW9uc6BvZqB0aGWgRG9jdW1lbnQsPGJyPgoroKCgdW5hbHRlcmVkoGluoHRoZWlyoHRleHSgYW5koGluoHRoZWlyoHRpdGxlcy6goFNlY3Rpb26gbnVtYmVyczxicj4KK6CgoG9yoHRoZaBlcXVpdmFsZW50oGFyZaBub3SgY29uc2lkZXJlZKBwYXJ0oG9moHRoZaBzZWN0aW9uoHRpdGxlcy48YnI+CitNLqBEZWxldGWgYW55oHNlY3Rpb26gRW50aXRsZWSgIkVuZG9yc2VtZW50cyIuoKBTdWNooGGgc2VjdGlvbjxicj4KK6CgoG1heaBub3SgYmWgaW5jbHVkZWSgaW6gdGhloE1vZGlmaWVkoFZlcnNpb24uPGJyPgorTi6gRG+gbm90oHJldGl0bGWgYW55oGV4aXN0aW5noHNlY3Rpb26gdG+gYmWgRW50aXRsZWSgIkVuZG9yc2VtZW50cyI8YnI+CiugoKBvcqB0b6Bjb25mbGljdKBpbqB0aXRsZaB3aXRooGFueaBJbnZhcmlhbnSgU2VjdGlvbi48YnI+CitPLqBQcmVzZXJ2ZaBhbnmgV2FycmFudHmgRGlzY2xhaW1lcnMuPGJyPgorPGJyPgorSWagdGhloE1vZGlmaWVkoFZlcnNpb26gaW5jbHVkZXOgbmV3oGZyb250LW1hdHRlcqBzZWN0aW9uc6Bvcjxicj4KK2FwcGVuZGljZXOgdGhhdKBxdWFsaWZ5oGFzoFNlY29uZGFyeaBTZWN0aW9uc6BhbmSgY29udGFpbqBub6BtYXRlcmlhbDxicj4KK2NvcGllZKBmcm9toHRoZaBEb2N1bWVudCygeW91oG1heaBhdKB5b3VyoG9wdGlvbqBkZXNpZ25hdGWgc29tZaBvcqBhbGw8YnI+CitvZqB0aGVzZaBzZWN0aW9uc6Bhc6BpbnZhcmlhbnQuoKBUb6Bkb6B0aGlzLKBhZGSgdGhlaXKgdGl0bGVzoHRvoHRoZTxicj4KK2xpc3Sgb2agSW52YXJpYW50oFNlY3Rpb25zoGluoHRoZaBNb2RpZmllZKBWZXJzaW9uJ3OgbGljZW5zZaBub3RpY2UuPGJyPgorVGhlc2WgdGl0bGVzoG11c3SgYmWgZGlzdGluY3SgZnJvbaBhbnmgb3RoZXKgc2VjdGlvbqB0aXRsZXMuPGJyPgorPGJyPgorWW91oG1heaBhZGSgYaBzZWN0aW9uoEVudGl0bGVkoCJFbmRvcnNlbWVudHMiLKBwcm92aWRlZKBpdKBjb250YWluczxicj4KK25vdGhpbmegYnV0oGVuZG9yc2VtZW50c6BvZqB5b3VyoE1vZGlmaWVkoFZlcnNpb26gYnmgdmFyaW91czxicj4KK3BhcnRpZXMtLWZvcqBleGFtcGxlLKBzdGF0ZW1lbnRzoG9moHBlZXKgcmV2aWV3oG9yoHRoYXSgdGhloHRleHSgaGFzPGJyPgorYmVlbqBhcHByb3ZlZKBieaBhbqBvcmdhbml6YXRpb26gYXOgdGhloGF1dGhvcml0YXRpdmWgZGVmaW5pdGlvbqBvZqBhPGJyPgorc3RhbmRhcmQuPGJyPgorPGJyPgorWW91oG1heaBhZGSgYaBwYXNzYWdloG9moHVwoHRvoGZpdmWgd29yZHOgYXOgYaBGcm9udC1Db3ZlcqBUZXh0LKBhbmSgYTxicj4KK3Bhc3NhZ2Wgb2agdXCgdG+gMjWgd29yZHOgYXOgYaBCYWNrLUNvdmVyoFRleHQsoHRvoHRoZaBlbmSgb2agdGhloGxpc3Q8YnI+CitvZqBDb3ZlcqBUZXh0c6BpbqB0aGWgTW9kaWZpZWSgVmVyc2lvbi6goE9ubHmgb25loHBhc3NhZ2Wgb2Y8YnI+CitGcm9udC1Db3ZlcqBUZXh0oGFuZKBvbmWgb2agQmFjay1Db3ZlcqBUZXh0oG1heaBiZaBhZGRlZKBieaAob3I8YnI+Cit0aHJvdWdooGFycmFuZ2VtZW50c6BtYWRloGJ5KaBhbnmgb25loGVudGl0eS6goElmoHRoZaBEb2N1bWVudKBhbHJlYWR5PGJyPgoraW5jbHVkZXOgYaBjb3ZlcqB0ZXh0oGZvcqB0aGWgc2FtZaBjb3ZlciygcHJldmlvdXNseaBhZGRlZKBieaB5b3Wgb3I8YnI+CitieaBhcnJhbmdlbWVudKBtYWRloGJ5oHRoZaBzYW1loGVudGl0eaB5b3WgYXJloGFjdGluZ6BvbqBiZWhhbGagb2YsPGJyPgoreW91oG1heaBub3SgYWRkoGFub3RoZXI7oGJ1dKB5b3WgbWF5oHJlcGxhY2WgdGhloG9sZKBvbmUsoG9uoGV4cGxpY2l0PGJyPgorcGVybWlzc2lvbqBmcm9toHRoZaBwcmV2aW91c6BwdWJsaXNoZXKgdGhhdKBhZGRlZKB0aGWgb2xkoG9uZS48YnI+Cis8YnI+CitUaGWgYXV0aG9yKHMpoGFuZKBwdWJsaXNoZXIocymgb2agdGhloERvY3VtZW50oGRvoG5vdKBieaB0aGlzoExpY2Vuc2U8YnI+CitnaXZloHBlcm1pc3Npb26gdG+gdXNloHRoZWlyoG5hbWVzoGZvcqBwdWJsaWNpdHmgZm9yoG9yoHRvoGFzc2VydKBvcjxicj4KK2ltcGx5oGVuZG9yc2VtZW50oG9moGFueaBNb2RpZmllZKBWZXJzaW9uLjxicj4KKzxicj4KKzxicj4KKzUuoENPTUJJTklOR6BET0NVTUVOVFM8YnI+Cis8YnI+CitZb3WgbWF5oGNvbWJpbmWgdGhloERvY3VtZW50oHdpdGigb3RoZXKgZG9jdW1lbnRzoHJlbGVhc2VkoHVuZGVyoHRoaXM8YnI+CitMaWNlbnNlLKB1bmRlcqB0aGWgdGVybXOgZGVmaW5lZKBpbqBzZWN0aW9uoDSgYWJvdmWgZm9yoG1vZGlmaWVkPGJyPgordmVyc2lvbnMsoHByb3ZpZGVkoHRoYXSgeW91oGluY2x1ZGWgaW6gdGhloGNvbWJpbmF0aW9uoGFsbKBvZqB0aGU8YnI+CitJbnZhcmlhbnSgU2VjdGlvbnOgb2agYWxsoG9moHRoZaBvcmlnaW5hbKBkb2N1bWVudHMsoHVubW9kaWZpZWQsoGFuZDxicj4KK2xpc3SgdGhlbaBhbGygYXOgSW52YXJpYW50oFNlY3Rpb25zoG9moHlvdXKgY29tYmluZWSgd29ya6BpbqBpdHM8YnI+CitsaWNlbnNloG5vdGljZSygYW5koHRoYXSgeW91oHByZXNlcnZloGFsbKB0aGVpcqBXYXJyYW50eaBEaXNjbGFpbWVycy48YnI+Cis8YnI+CitUaGWgY29tYmluZWSgd29ya6BuZWVkoG9ubHmgY29udGFpbqBvbmWgY29weaBvZqB0aGlzoExpY2Vuc2UsoGFuZDxicj4KK211bHRpcGxloGlkZW50aWNhbKBJbnZhcmlhbnSgU2VjdGlvbnOgbWF5oGJloHJlcGxhY2VkoHdpdGigYaBzaW5nbGU8YnI+Citjb3B5LqCgSWagdGhlcmWgYXJloG11bHRpcGxloEludmFyaWFudKBTZWN0aW9uc6B3aXRooHRoZaBzYW1loG5hbWWgYnV0PGJyPgorZGlmZmVyZW50oGNvbnRlbnRzLKBtYWtloHRoZaB0aXRsZaBvZqBlYWNooHN1Y2igc2VjdGlvbqB1bmlxdWWgYnk8YnI+CithZGRpbmegYXSgdGhloGVuZKBvZqBpdCygaW6gcGFyZW50aGVzZXMsoHRoZaBuYW1loG9moHRoZaBvcmlnaW5hbDxicj4KK2F1dGhvcqBvcqBwdWJsaXNoZXKgb2agdGhhdKBzZWN0aW9uoGlmoGtub3duLKBvcqBlbHNloGGgdW5pcXVloG51bWJlci48YnI+CitNYWtloHRoZaBzYW1loGFkanVzdG1lbnSgdG+gdGhloHNlY3Rpb26gdGl0bGVzoGluoHRoZaBsaXN0oG9mPGJyPgorSW52YXJpYW50oFNlY3Rpb25zoGluoHRoZaBsaWNlbnNloG5vdGljZaBvZqB0aGWgY29tYmluZWSgd29yay48YnI+Cis8YnI+CitJbqB0aGWgY29tYmluYXRpb24soHlvdaBtdXN0oGNvbWJpbmWgYW55oHNlY3Rpb25zoEVudGl0bGVkoCJIaXN0b3J5Ijxicj4KK2luoHRoZaB2YXJpb3VzoG9yaWdpbmFsoGRvY3VtZW50cyygZm9ybWluZ6BvbmWgc2VjdGlvbqBFbnRpdGxlZDxicj4KKyJIaXN0b3J5IjugbGlrZXdpc2WgY29tYmluZaBhbnmgc2VjdGlvbnOgRW50aXRsZWSgIkFja25vd2xlZGdlbWVudHMiLDxicj4KK2FuZKBhbnmgc2VjdGlvbnOgRW50aXRsZWSgIkRlZGljYXRpb25zIi6goFlvdaBtdXN0oGRlbGV0ZaBhbGygc2VjdGlvbnM8YnI+CitFbnRpdGxlZKAiRW5kb3JzZW1lbnRzIi48YnI+Cis8YnI+Cis8YnI+Cis2LqBDT0xMRUNUSU9OU6BPRqBET0NVTUVOVFM8YnI+Cis8YnI+CitZb3WgbWF5oG1ha2WgYaBjb2xsZWN0aW9uoGNvbnNpc3Rpbmegb2agdGhloERvY3VtZW50oGFuZKBvdGhlcqBkb2N1bWVudHM8YnI+CityZWxlYXNlZKB1bmRlcqB0aGlzoExpY2Vuc2UsoGFuZKByZXBsYWNloHRoZaBpbmRpdmlkdWFsoGNvcGllc6BvZqB0aGlzPGJyPgorTGljZW5zZaBpbqB0aGWgdmFyaW91c6Bkb2N1bWVudHOgd2l0aKBhoHNpbmdsZaBjb3B5oHRoYXSgaXOgaW5jbHVkZWSgaW48YnI+Cit0aGWgY29sbGVjdGlvbiygcHJvdmlkZWSgdGhhdKB5b3WgZm9sbG93oHRoZaBydWxlc6BvZqB0aGlzoExpY2Vuc2WgZm9yPGJyPgordmVyYmF0aW2gY29weWluZ6BvZqBlYWNooG9moHRoZaBkb2N1bWVudHOgaW6gYWxsoG90aGVyoHJlc3BlY3RzLjxicj4KKzxicj4KK1lvdaBtYXmgZXh0cmFjdKBhoHNpbmdsZaBkb2N1bWVudKBmcm9toHN1Y2igYaBjb2xsZWN0aW9uLKBhbmSgZGlzdHJpYnV0ZTxicj4KK2l0oGluZGl2aWR1YWxseaB1bmRlcqB0aGlzoExpY2Vuc2UsoHByb3ZpZGVkoHlvdaBpbnNlcnSgYaBjb3B5oG9moHRoaXM8YnI+CitMaWNlbnNloGludG+gdGhloGV4dHJhY3RlZKBkb2N1bWVudCygYW5koGZvbGxvd6B0aGlzoExpY2Vuc2WgaW6gYWxsPGJyPgorb3RoZXKgcmVzcGVjdHOgcmVnYXJkaW5noHZlcmJhdGltoGNvcHlpbmegb2agdGhhdKBkb2N1bWVudC48YnI+Cis8YnI+Cis8YnI+Cis3LqBBR0dSRUdBVElPTqBXSVRIoElOREVQRU5ERU5UoFdPUktTPGJyPgorPGJyPgorQaBjb21waWxhdGlvbqBvZqB0aGWgRG9jdW1lbnSgb3KgaXRzoGRlcml2YXRpdmVzoHdpdGigb3RoZXKgc2VwYXJhdGU8YnI+CithbmSgaW5kZXBlbmRlbnSgZG9jdW1lbnRzoG9yoHdvcmtzLKBpbqBvcqBvbqBhoHZvbHVtZaBvZqBhoHN0b3JhZ2Wgb3I8YnI+CitkaXN0cmlidXRpb26gbWVkaXVtLKBpc6BjYWxsZWSgYW6gImFnZ3JlZ2F0ZSKgaWagdGhloGNvcHlyaWdodDxicj4KK3Jlc3VsdGluZ6Bmcm9toHRoZaBjb21waWxhdGlvbqBpc6Bub3SgdXNlZKB0b6BsaW1pdKB0aGWgbGVnYWygcmlnaHRzPGJyPgorb2agdGhloGNvbXBpbGF0aW9uJ3OgdXNlcnOgYmV5b25koHdoYXSgdGhloGluZGl2aWR1YWygd29ya3OgcGVybWl0Ljxicj4KK1doZW6gdGhloERvY3VtZW50oGlzoGluY2x1ZGVkoGluoGFuoGFnZ3JlZ2F0ZSygdGhpc6BMaWNlbnNloGRvZXOgbm90PGJyPgorYXBwbHmgdG+gdGhloG90aGVyoHdvcmtzoGluoHRoZaBhZ2dyZWdhdGWgd2hpY2igYXJloG5vdKB0aGVtc2VsdmVzPGJyPgorZGVyaXZhdGl2ZaB3b3Jrc6BvZqB0aGWgRG9jdW1lbnQuPGJyPgorPGJyPgorSWagdGhloENvdmVyoFRleHSgcmVxdWlyZW1lbnSgb2agc2VjdGlvbqAzoGlzoGFwcGxpY2FibGWgdG+gdGhlc2U8YnI+Citjb3BpZXOgb2agdGhloERvY3VtZW50LKB0aGVuoGlmoHRoZaBEb2N1bWVudKBpc6BsZXNzoHRoYW6gb25loGhhbGagb2Y8YnI+Cit0aGWgZW50aXJloGFnZ3JlZ2F0ZSygdGhloERvY3VtZW50J3OgQ292ZXKgVGV4dHOgbWF5oGJloHBsYWNlZKBvbjxicj4KK2NvdmVyc6B0aGF0oGJyYWNrZXSgdGhloERvY3VtZW50oHdpdGhpbqB0aGWgYWdncmVnYXRlLKBvcqB0aGU8YnI+CitlbGVjdHJvbmljoGVxdWl2YWxlbnSgb2agY292ZXJzoGlmoHRoZaBEb2N1bWVudKBpc6BpbqBlbGVjdHJvbmljoGZvcm0uPGJyPgorT3RoZXJ3aXNloHRoZXmgbXVzdKBhcHBlYXKgb26gcHJpbnRlZKBjb3ZlcnOgdGhhdKBicmFja2V0oHRoZaB3aG9sZTxicj4KK2FnZ3JlZ2F0ZS48YnI+Cis8YnI+Cis8YnI+Cis4LqBUUkFOU0xBVElPTjxicj4KKzxicj4KK1RyYW5zbGF0aW9uoGlzoGNvbnNpZGVyZWSgYaBraW5koG9moG1vZGlmaWNhdGlvbiygc2+geW91oG1heTxicj4KK2Rpc3RyaWJ1dGWgdHJhbnNsYXRpb25zoG9moHRoZaBEb2N1bWVudKB1bmRlcqB0aGWgdGVybXOgb2agc2VjdGlvbqA0Ljxicj4KK1JlcGxhY2luZ6BJbnZhcmlhbnSgU2VjdGlvbnOgd2l0aKB0cmFuc2xhdGlvbnOgcmVxdWlyZXOgc3BlY2lhbDxicj4KK3Blcm1pc3Npb26gZnJvbaB0aGVpcqBjb3B5cmlnaHSgaG9sZGVycyygYnV0oHlvdaBtYXmgaW5jbHVkZTxicj4KK3RyYW5zbGF0aW9uc6BvZqBzb21loG9yoGFsbKBJbnZhcmlhbnSgU2VjdGlvbnOgaW6gYWRkaXRpb26gdG+gdGhlPGJyPgorb3JpZ2luYWygdmVyc2lvbnOgb2agdGhlc2WgSW52YXJpYW50oFNlY3Rpb25zLqCgWW91oG1heaBpbmNsdWRloGE8YnI+Cit0cmFuc2xhdGlvbqBvZqB0aGlzoExpY2Vuc2UsoGFuZKBhbGygdGhloGxpY2Vuc2Wgbm90aWNlc6BpbqB0aGU8YnI+CitEb2N1bWVudCygYW5koGFueaBXYXJyYW50eaBEaXNjbGFpbWVycyygcHJvdmlkZWSgdGhhdKB5b3WgYWxzb6BpbmNsdWRlPGJyPgordGhloG9yaWdpbmFsoEVuZ2xpc2igdmVyc2lvbqBvZqB0aGlzoExpY2Vuc2WgYW5koHRoZaBvcmlnaW5hbKB2ZXJzaW9uczxicj4KK29moHRob3NloG5vdGljZXOgYW5koGRpc2NsYWltZXJzLqCgSW6gY2FzZaBvZqBhoGRpc2FncmVlbWVudKBiZXR3ZWVuPGJyPgordGhloHRyYW5zbGF0aW9uoGFuZKB0aGWgb3JpZ2luYWygdmVyc2lvbqBvZqB0aGlzoExpY2Vuc2Wgb3KgYaBub3RpY2U8YnI+CitvcqBkaXNjbGFpbWVyLKB0aGWgb3JpZ2luYWygdmVyc2lvbqB3aWxsoHByZXZhaWwuPGJyPgorPGJyPgorSWagYaBzZWN0aW9uoGluoHRoZaBEb2N1bWVudKBpc6BFbnRpdGxlZKAiQWNrbm93bGVkZ2VtZW50cyIsPGJyPgorIkRlZGljYXRpb25zIiygb3KgIkhpc3RvcnkiLKB0aGWgcmVxdWlyZW1lbnSgKHNlY3Rpb26gNCmgdG+gUHJlc2VydmU8YnI+CitpdHOgVGl0bGWgKHNlY3Rpb26gMSmgd2lsbKB0eXBpY2FsbHmgcmVxdWlyZaBjaGFuZ2luZ6B0aGWgYWN0dWFsPGJyPgordGl0bGUuPGJyPgorPGJyPgorPGJyPgorOS6gVEVSTUlOQVRJT048YnI+Cis8YnI+CitZb3WgbWF5oG5vdKBjb3B5LKBtb2RpZnksoHN1YmxpY2Vuc2UsoG9yoGRpc3RyaWJ1dGWgdGhloERvY3VtZW50oGV4Y2VwdDxicj4KK2FzoGV4cHJlc3NseaBwcm92aWRlZKBmb3KgdW5kZXKgdGhpc6BMaWNlbnNlLqCgQW55oG90aGVyoGF0dGVtcHSgdG88YnI+Citjb3B5LKBtb2RpZnksoHN1YmxpY2Vuc2Wgb3KgZGlzdHJpYnV0ZaB0aGWgRG9jdW1lbnSgaXOgdm9pZCygYW5koHdpbGw8YnI+CithdXRvbWF0aWNhbGx5oHRlcm1pbmF0ZaB5b3VyoHJpZ2h0c6B1bmRlcqB0aGlzoExpY2Vuc2UuoKBIb3dldmVyLDxicj4KK3BhcnRpZXOgd2hvoGhhdmWgcmVjZWl2ZWSgY29waWVzLKBvcqByaWdodHMsoGZyb22geW91oHVuZGVyoHRoaXM8YnI+CitMaWNlbnNloHdpbGygbm90oGhhdmWgdGhlaXKgbGljZW5zZXOgdGVybWluYXRlZKBzb6Bsb25noGFzoHN1Y2g8YnI+CitwYXJ0aWVzoHJlbWFpbqBpbqBmdWxsoGNvbXBsaWFuY2UuPGJyPgorPGJyPgorPGJyPgorMTAuoEZVVFVSRaBSRVZJU0lPTlOgT0agVEhJU6BMSUNFTlNFPGJyPgorPGJyPgorVGhloEZyZWWgU29mdHdhcmWgRm91bmRhdGlvbqBtYXmgcHVibGlzaKBuZXcsoHJldmlzZWSgdmVyc2lvbnM8YnI+CitvZqB0aGWgR05VoEZyZWWgRG9jdW1lbnRhdGlvbqBMaWNlbnNloGZyb22gdGltZaB0b6B0aW1lLqCgU3VjaKBuZXc8YnI+Cit2ZXJzaW9uc6B3aWxsoGJloHNpbWlsYXKgaW6gc3Bpcml0oHRvoHRoZaBwcmVzZW50oHZlcnNpb24soGJ1dKBtYXk8YnI+CitkaWZmZXKgaW6gZGV0YWlsoHRvoGFkZHJlc3OgbmV3oHByb2JsZW1zoG9yoGNvbmNlcm5zLqCgU2VlPGJyPgoraHR0cDovL3d3dy5nbnUub3JnL2NvcHlsZWZ0Ly48YnI+Cis8YnI+CitFYWNooHZlcnNpb26gb2agdGhloExpY2Vuc2WgaXOgZ2l2ZW6gYaBkaXN0aW5ndWlzaGluZ6B2ZXJzaW9uoG51bWJlci48YnI+CitJZqB0aGWgRG9jdW1lbnSgc3BlY2lmaWVzoHRoYXSgYaBwYXJ0aWN1bGFyoG51bWJlcmVkoHZlcnNpb26gb2agdGhpczxicj4KK0xpY2Vuc2WgIm9yoGFueaBsYXRlcqB2ZXJzaW9uIqBhcHBsaWVzoHRvoGl0LKB5b3WgaGF2ZaB0aGWgb3B0aW9uoG9mPGJyPgorZm9sbG93aW5noHRoZaB0ZXJtc6BhbmSgY29uZGl0aW9uc6BlaXRoZXKgb2agdGhhdKBzcGVjaWZpZWSgdmVyc2lvbqBvcjxicj4KK29moGFueaBsYXRlcqB2ZXJzaW9uoHRoYXSgaGFzoGJlZW6gcHVibGlzaGVkoChub3SgYXOgYaBkcmFmdCmgYnmgdGhlPGJyPgorRnJlZaBTb2Z0d2FyZaBGb3VuZGF0aW9uLqCgSWagdGhloERvY3VtZW50oGRvZXOgbm90oHNwZWNpZnmgYaB2ZXJzaW9uPGJyPgorbnVtYmVyoG9moHRoaXOgTGljZW5zZSygeW91oG1heaBjaG9vc2WgYW55oHZlcnNpb26gZXZlcqBwdWJsaXNoZWSgKG5vdDxicj4KK2FzoGGgZHJhZnQpoGJ5oHRoZaBGcmVloFNvZnR3YXJloEZvdW5kYXRpb24uPGJyPgorPGJyPgorPGJyPgorQURERU5EVU06oEhvd6B0b6B1c2WgdGhpc6BMaWNlbnNloGZvcqB5b3VyoGRvY3VtZW50czxicj4KKzxicj4KK1RvoHVzZaB0aGlzoExpY2Vuc2WgaW6gYaBkb2N1bWVudKB5b3WgaGF2ZaB3cml0dGVuLKBpbmNsdWRloGGgY29weaBvZjxicj4KK3RoZaBMaWNlbnNloGluoHRoZaBkb2N1bWVudKBhbmSgcHV0oHRoZaBmb2xsb3dpbmegY29weXJpZ2h0oGFuZDxicj4KK2xpY2Vuc2Wgbm90aWNlc6BqdXN0oGFmdGVyoHRoZaB0aXRsZaBwYWdlOjxicj4KKzxicj4KK6CgoKBDb3B5cmlnaHSgKGMpoKBZRUFSoKBZT1VSoE5BTUUuPGJyPgoroKCgoFBlcm1pc3Npb26gaXOgZ3JhbnRlZKB0b6Bjb3B5LKBkaXN0cmlidXRloGFuZC9vcqBtb2RpZnmgdGhpc6Bkb2N1bWVudDxicj4KK6CgoKB1bmRlcqB0aGWgdGVybXOgb2agdGhloEdOVaBGcmVloERvY3VtZW50YXRpb26gTGljZW5zZSygVmVyc2lvbqAxLjI8YnI+CiugoKCgb3KgYW55oGxhdGVyoHZlcnNpb26gcHVibGlzaGVkoGJ5oHRoZaBGcmVloFNvZnR3YXJloEZvdW5kYXRpb247PGJyPgoroKCgoHdpdGigbm+gSW52YXJpYW50oFNlY3Rpb25zLKBub6BGcm9udC1Db3ZlcqBUZXh0cyygYW5koG5voEJhY2stQ292ZXKgVGV4dHMuPGJyPgoroKCgoEGgY29weaBvZqB0aGWgbGljZW5zZaBpc6BpbmNsdWRlZKBpbqB0aGWgc2VjdGlvbqBlbnRpdGxlZKAiR05VPGJyPgoroKCgoEZyZWWgRG9jdW1lbnRhdGlvbqBMaWNlbnNlIi48YnI+Cis8YnI+CitJZqB5b3WgaGF2ZaBJbnZhcmlhbnSgU2VjdGlvbnMsoEZyb250LUNvdmVyoFRleHRzoGFuZKBCYWNrLUNvdmVyoFRleHRzLDxicj4KK3JlcGxhY2WgdGhloCJ3aXRoLi4uVGV4dHMuIqBsaW5loHdpdGigdGhpczo8YnI+Cis8YnI+CiugoKCgd2l0aKB0aGWgSW52YXJpYW50oFNlY3Rpb25zoGJlaW5noExJU1SgVEhFSVKgVElUTEVTLKB3aXRooHRoZTxicj4KK6CgoKBGcm9udC1Db3ZlcqBUZXh0c6BiZWluZ6BMSVNULKBhbmSgd2l0aKB0aGWgQmFjay1Db3ZlcqBUZXh0c6BiZWluZ6BMSVNULjxicj4KKzxicj4KK0lmoHlvdaBoYXZloEludmFyaWFudKBTZWN0aW9uc6B3aXRob3V0oENvdmVyoFRleHRzLKBvcqBzb21loG90aGVyPGJyPgorY29tYmluYXRpb26gb2agdGhloHRocmVlLKBtZXJnZaB0aG9zZaB0d2+gYWx0ZXJuYXRpdmVzoHRvoHN1aXSgdGhlPGJyPgorc2l0dWF0aW9uLjxicj4KKzxicj4KK0lmoHlvdXKgZG9jdW1lbnSgY29udGFpbnOgbm9udHJpdmlhbKBleGFtcGxlc6BvZqBwcm9ncmFtoGNvZGUsoHdlPGJyPgorcmVjb21tZW5koHJlbGVhc2luZ6B0aGVzZaBleGFtcGxlc6BpbqBwYXJhbGxlbKB1bmRlcqB5b3VyoGNob2ljZaBvZjxicj4KK2ZyZWWgc29mdHdhcmWgbGljZW5zZSygc3VjaKBhc6B0aGWgR05VoEdlbmVyYWygUHVibGljoExpY2Vuc2UsPGJyPgordG+gcGVybWl0oHRoZWlyoHVzZaBpbqBmcmVloHNvZnR3YXJlLjxicj4KKzxicj4KK6CgoKCgoDwvcD48L2Rpdj4KKzwvZGl2PgorPGRpdj4KKzxicj48dGFibGUgY2xhc3M9Im5hdiIgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSIzIiBjZWxscGFkZGluZz0iMiIgYm9yZGVyPSIwIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGZvb3RlciI+Cis8dHI+Cis8dGQgcm93c3Bhbj0iMiIgd2lkdGg9IjQwJSIgYWxpZ249ImxlZnQiPgorPGEgYWNjZXNza2V5PSJwIiBocmVmPSJsaWNlbnNlLmdwbC5odG1sIj4mbHQ7Jmx0O6AxLqBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2U8L2E+oDwvdGQ+Cis8dGQgd2lkdGg9IjIwJSIgYWxpZ249ImNlbnRlciI+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJsaWNlbnNlcy5odG1sIj5VcDwvYT48L3RkPgorPHRkIHJvd3NwYW49IjIiIHdpZHRoPSI0MCUiIGFsaWduPSJyaWdodCI+oDwvdGQ+Cis8L3RyPgorPHRyPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0iY2VudGVyIj48YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPkhvbWU8L2E+PC90ZD48L3RyPgorPC90YWJsZT4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvZG9jcy9odG1sL2xpY2Vuc2UuZ3BsLmh0bWwgYi9kb2NzL2h0bWwvbGljZW5zZS5ncGwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNDhhNmM0Ci0tLSAvZGV2L251bGwKKysrIGIvZG9jcy9odG1sL2xpY2Vuc2UuZ3BsLmh0bWwKQEAgLTAsMCArMSwzNzkgQEAKKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj4KKzx0aXRsZT4xLqBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2U8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0idmdfYmFzaWMuY3NzIj4KKzxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iRG9jQm9vayBYU0wgU3R5bGVzaGVldHMgVjEuNzguMSI+Cis8bGluayByZWw9ImhvbWUiIGhyZWY9ImluZGV4Lmh0bWwiIHRpdGxlPSJWYWxncmluZCBEb2N1bWVudGF0aW9uIj4KKzxsaW5rIHJlbD0idXAiIGhyZWY9ImxpY2Vuc2VzLmh0bWwiIHRpdGxlPSJHTlUgTGljZW5zZXMiPgorPGxpbmsgcmVsPSJwcmV2IiBocmVmPSJsaWNlbnNlcy5odG1sIiB0aXRsZT0iR05VIExpY2Vuc2VzIj4KKzxsaW5rIHJlbD0ibmV4dCIgaHJlZj0ibGljZW5zZS5nZmRsLmh0bWwiIHRpdGxlPSIyLqBUaGUgR05VIEZyZWUgRG9jdW1lbnRhdGlvbiBMaWNlbnNlIj4KKzwvaGVhZD4KKzxib2R5IGJnY29sb3I9IndoaXRlIiB0ZXh0PSJibGFjayIgbGluaz0iIzAwMDBGRiIgdmxpbms9IiM4NDAwODQiIGFsaW5rPSIjMDAwMEZGIj4KKzxkaXY+PHRhYmxlIGNsYXNzPSJuYXYiIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0iMyIgY2VsbHBhZGRpbmc9IjMiIGJvcmRlcj0iMCIgc3VtbWFyeT0iTmF2aWdhdGlvbiBoZWFkZXIiPjx0cj4KKzx0ZCB3aWR0aD0iMjJweCIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPjxhIGFjY2Vzc2tleT0icCIgaHJlZj0ibGljZW5zZXMuaHRtbCI+PGltZyBzcmM9ImltYWdlcy9wcmV2LnBuZyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjIxIiBib3JkZXI9IjAiIGFsdD0iUHJldiI+PC9hPjwvdGQ+Cis8dGQgd2lkdGg9IjI1cHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9InUiIGhyZWY9ImxpY2Vuc2VzLmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvdXAucG5nIiB3aWR0aD0iMjEiIGhlaWdodD0iMTgiIGJvcmRlcj0iMCIgYWx0PSJVcCI+PC9hPjwvdGQ+Cis8dGQgd2lkdGg9IjMxcHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvaG9tZS5wbmciIHdpZHRoPSIyNyIgaGVpZ2h0PSIyMCIgYm9yZGVyPSIwIiBhbHQ9IlVwIj48L2E+PC90ZD4KKzx0aCBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+R05VIExpY2Vuc2VzPC90aD4KKzx0ZCB3aWR0aD0iMjJweCIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPjxhIGFjY2Vzc2tleT0ibiIgaHJlZj0ibGljZW5zZS5nZmRsLmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvbmV4dC5wbmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIyMSIgYm9yZGVyPSIwIiBhbHQ9Ik5leHQiPjwvYT48L3RkPgorPC90cj48L3RhYmxlPjwvZGl2PgorPGRpdiBjbGFzcz0iY2hhcHRlciI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDEgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9ImxpY2Vuc2UuZ3BsIj48L2E+MS6gVGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlPC9oMT48L2Rpdj48L2Rpdj48L2Rpdj4KKzxkaXYgY2xhc3M9ImxpdGVyYWxsYXlvdXQiPjxwPjxicj4KK6CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgR05VoEdFTkVSQUygUFVCTElDoExJQ0VOU0U8YnI+CiugoKCgoKCgoKCgoKCgoKCgoKCgoKCgoFZlcnNpb26gMiygSnVuZaAxOTkxPGJyPgorPGJyPgoroENvcHlyaWdodKAoQymgMTk4OSygMTk5MaBGcmVloFNvZnR3YXJloEZvdW5kYXRpb24soEluYy4sPGJyPgoroDUxoEZyYW5rbGluoFN0cmVldCygRmlmdGigRmxvb3IsoEJvc3RvbiygTUGgMDIxMTAtMTMwMaBVU0E8YnI+CiugRXZlcnlvbmWgaXOgcGVybWl0dGVkoHRvoGNvcHmgYW5koGRpc3RyaWJ1dGWgdmVyYmF0aW2gY29waWVzPGJyPgoroG9moHRoaXOgbGljZW5zZaBkb2N1bWVudCygYnV0oGNoYW5naW5noGl0oGlzoG5vdKBhbGxvd2VkLjxicj4KKzxicj4KK6CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKBQcmVhbWJsZTxicj4KKzxicj4KK6CgVGhloGxpY2Vuc2VzoGZvcqBtb3N0oHNvZnR3YXJloGFyZaBkZXNpZ25lZKB0b6B0YWtloGF3YXmgeW91cjxicj4KK2ZyZWVkb22gdG+gc2hhcmWgYW5koGNoYW5nZaBpdC6goEJ5oGNvbnRyYXN0LKB0aGWgR05VoEdlbmVyYWygUHVibGljPGJyPgorTGljZW5zZaBpc6BpbnRlbmRlZKB0b6BndWFyYW50ZWWgeW91cqBmcmVlZG9toHRvoHNoYXJloGFuZKBjaGFuZ2WgZnJlZTxicj4KK3NvZnR3YXJlLS10b6BtYWtloHN1cmWgdGhloHNvZnR3YXJloGlzoGZyZWWgZm9yoGFsbKBpdHOgdXNlcnMuoKBUaGlzPGJyPgorR2VuZXJhbKBQdWJsaWOgTGljZW5zZaBhcHBsaWVzoHRvoG1vc3Sgb2agdGhloEZyZWWgU29mdHdhcmU8YnI+CitGb3VuZGF0aW9uJ3Ogc29mdHdhcmWgYW5koHRvoGFueaBvdGhlcqBwcm9ncmFtoHdob3NloGF1dGhvcnOgY29tbWl0oHRvPGJyPgordXNpbmegaXQuoKAoU29tZaBvdGhlcqBGcmVloFNvZnR3YXJloEZvdW5kYXRpb26gc29mdHdhcmWgaXOgY292ZXJlZKBieTxicj4KK3RoZaBHTlWgTGVzc2VyoEdlbmVyYWygUHVibGljoExpY2Vuc2WgaW5zdGVhZC4poKBZb3WgY2FuoGFwcGx5oGl0oHRvPGJyPgoreW91cqBwcm9ncmFtcyygdG9vLjxicj4KKzxicj4KK6CgV2hlbqB3ZaBzcGVha6BvZqBmcmVloHNvZnR3YXJlLKB3ZaBhcmWgcmVmZXJyaW5noHRvoGZyZWVkb20soG5vdDxicj4KK3ByaWNlLqCgT3VyoEdlbmVyYWygUHVibGljoExpY2Vuc2VzoGFyZaBkZXNpZ25lZKB0b6BtYWtloHN1cmWgdGhhdKB5b3U8YnI+CitoYXZloHRoZaBmcmVlZG9toHRvoGRpc3RyaWJ1dGWgY29waWVzoG9moGZyZWWgc29mdHdhcmWgKGFuZKBjaGFyZ2WgZm9yPGJyPgordGhpc6BzZXJ2aWNloGlmoHlvdaB3aXNoKSygdGhhdKB5b3WgcmVjZWl2ZaBzb3VyY2WgY29kZaBvcqBjYW6gZ2V0oGl0PGJyPgoraWageW91oHdhbnSgaXQsoHRoYXSgeW91oGNhbqBjaGFuZ2WgdGhloHNvZnR3YXJloG9yoHVzZaBwaWVjZXOgb2agaXQ8YnI+CitpbqBuZXegZnJlZaBwcm9ncmFtczugYW5koHRoYXSgeW91oGtub3egeW91oGNhbqBkb6B0aGVzZaB0aGluZ3MuPGJyPgorPGJyPgoroKBUb6Bwcm90ZWN0oHlvdXKgcmlnaHRzLKB3ZaBuZWVkoHRvoG1ha2WgcmVzdHJpY3Rpb25zoHRoYXSgZm9yYmlkPGJyPgorYW55b25loHRvoGRlbnmgeW91oHRoZXNloHJpZ2h0c6BvcqB0b6Bhc2ugeW91oHRvoHN1cnJlbmRlcqB0aGWgcmlnaHRzLjxicj4KK1RoZXNloHJlc3RyaWN0aW9uc6B0cmFuc2xhdGWgdG+gY2VydGFpbqByZXNwb25zaWJpbGl0aWVzoGZvcqB5b3WgaWageW91PGJyPgorZGlzdHJpYnV0ZaBjb3BpZXOgb2agdGhloHNvZnR3YXJlLKBvcqBpZqB5b3WgbW9kaWZ5oGl0Ljxicj4KKzxicj4KK6CgRm9yoGV4YW1wbGUsoGlmoHlvdaBkaXN0cmlidXRloGNvcGllc6BvZqBzdWNooGGgcHJvZ3JhbSygd2hldGhlcjxicj4KK2dyYXRpc6BvcqBmb3KgYaBmZWUsoHlvdaBtdXN0oGdpdmWgdGhloHJlY2lwaWVudHOgYWxsoHRoZaByaWdodHOgdGhhdDxicj4KK3lvdaBoYXZlLqCgWW91oG11c3SgbWFrZaBzdXJloHRoYXSgdGhleSygdG9vLKByZWNlaXZloG9yoGNhbqBnZXSgdGhlPGJyPgorc291cmNloGNvZGUuoKBBbmSgeW91oG11c3Sgc2hvd6B0aGVtoHRoZXNloHRlcm1zoHNvoHRoZXmga25vd6B0aGVpcjxicj4KK3JpZ2h0cy48YnI+Cis8YnI+CiugoFdloHByb3RlY3SgeW91cqByaWdodHOgd2l0aKB0d2+gc3RlcHM6oCgxKaBjb3B5cmlnaHSgdGhloHNvZnR3YXJlLKBhbmQ8YnI+CisoMimgb2ZmZXKgeW91oHRoaXOgbGljZW5zZaB3aGljaKBnaXZlc6B5b3WgbGVnYWygcGVybWlzc2lvbqB0b6Bjb3B5LDxicj4KK2Rpc3RyaWJ1dGWgYW5kL29yoG1vZGlmeaB0aGWgc29mdHdhcmUuPGJyPgorPGJyPgoroKBBbHNvLKBmb3KgZWFjaKBhdXRob3Inc6Bwcm90ZWN0aW9uoGFuZKBvdXJzLKB3ZaB3YW50oHRvoG1ha2WgY2VydGFpbjxicj4KK3RoYXSgZXZlcnlvbmWgdW5kZXJzdGFuZHOgdGhhdKB0aGVyZaBpc6Bub6B3YXJyYW50eaBmb3KgdGhpc6BmcmVlPGJyPgorc29mdHdhcmUuoKBJZqB0aGWgc29mdHdhcmWgaXOgbW9kaWZpZWSgYnmgc29tZW9uZaBlbHNloGFuZKBwYXNzZWSgb24soHdlPGJyPgord2FudKBpdHOgcmVjaXBpZW50c6B0b6Brbm93oHRoYXSgd2hhdKB0aGV5oGhhdmWgaXOgbm90oHRoZaBvcmlnaW5hbCygc288YnI+Cit0aGF0oGFueaBwcm9ibGVtc6BpbnRyb2R1Y2VkoGJ5oG90aGVyc6B3aWxsoG5vdKByZWZsZWN0oG9uoHRoZaBvcmlnaW5hbDxicj4KK2F1dGhvcnMnoHJlcHV0YXRpb25zLjxicj4KKzxicj4KK6CgRmluYWxseSygYW55oGZyZWWgcHJvZ3JhbaBpc6B0aHJlYXRlbmVkoGNvbnN0YW50bHmgYnmgc29mdHdhcmU8YnI+CitwYXRlbnRzLqCgV2Wgd2lzaKB0b6Bhdm9pZKB0aGWgZGFuZ2VyoHRoYXSgcmVkaXN0cmlidXRvcnOgb2agYaBmcmVlPGJyPgorcHJvZ3JhbaB3aWxsoGluZGl2aWR1YWxseaBvYnRhaW6gcGF0ZW50oGxpY2Vuc2VzLKBpbqBlZmZlY3SgbWFraW5noHRoZTxicj4KK3Byb2dyYW2gcHJvcHJpZXRhcnkuoKBUb6BwcmV2ZW50oHRoaXMsoHdloGhhdmWgbWFkZaBpdKBjbGVhcqB0aGF0oGFueTxicj4KK3BhdGVudKBtdXN0oGJloGxpY2Vuc2VkoGZvcqBldmVyeW9uZSdzoGZyZWWgdXNloG9yoG5vdKBsaWNlbnNlZKBhdKBhbGwuPGJyPgorPGJyPgoroKBUaGWgcHJlY2lzZaB0ZXJtc6BhbmSgY29uZGl0aW9uc6Bmb3KgY29weWluZyygZGlzdHJpYnV0aW9uoGFuZDxicj4KK21vZGlmaWNhdGlvbqBmb2xsb3cuPGJyPgorPGJyPgoroKCgoKCgoKCgoKCgoKCgoKCgoKBHTlWgR0VORVJBTKBQVUJMSUOgTElDRU5TRTxicj4KK6CgoFRFUk1ToEFORKBDT05ESVRJT05ToEZPUqBDT1BZSU5HLKBESVNUUklCVVRJT06gQU5EoE1PRElGSUNBVElPTjxicj4KKzxicj4KK6CgMC6gVGhpc6BMaWNlbnNloGFwcGxpZXOgdG+gYW55oHByb2dyYW2gb3Kgb3RoZXKgd29ya6B3aGljaKBjb250YWluczxicj4KK2Ggbm90aWNloHBsYWNlZKBieaB0aGWgY29weXJpZ2h0oGhvbGRlcqBzYXlpbmegaXSgbWF5oGJloGRpc3RyaWJ1dGVkPGJyPgordW5kZXKgdGhloHRlcm1zoG9moHRoaXOgR2VuZXJhbKBQdWJsaWOgTGljZW5zZS6goFRoZaAiUHJvZ3JhbSIsoGJlbG93LDxicj4KK3JlZmVyc6B0b6Bhbnmgc3VjaKBwcm9ncmFtoG9yoHdvcmssoGFuZKBhoCJ3b3JroGJhc2VkoG9uoHRoZaBQcm9ncmFtIjxicj4KK21lYW5zoGVpdGhlcqB0aGWgUHJvZ3JhbaBvcqBhbnmgZGVyaXZhdGl2ZaB3b3JroHVuZGVyoGNvcHlyaWdodKBsYXc6PGJyPgordGhhdKBpc6B0b6BzYXksoGGgd29ya6Bjb250YWluaW5noHRoZaBQcm9ncmFtoG9yoGGgcG9ydGlvbqBvZqBpdCw8YnI+CitlaXRoZXKgdmVyYmF0aW2gb3Kgd2l0aKBtb2RpZmljYXRpb25zoGFuZC9vcqB0cmFuc2xhdGVkoGludG+gYW5vdGhlcjxicj4KK2xhbmd1YWdlLqCgKEhlcmVpbmFmdGVyLKB0cmFuc2xhdGlvbqBpc6BpbmNsdWRlZKB3aXRob3V0oGxpbWl0YXRpb26gaW48YnI+Cit0aGWgdGVybaAibW9kaWZpY2F0aW9uIi4poKBFYWNooGxpY2Vuc2VloGlzoGFkZHJlc3NlZKBhc6AieW91Ii48YnI+Cis8YnI+CitBY3Rpdml0aWVzoG90aGVyoHRoYW6gY29weWluZyygZGlzdHJpYnV0aW9uoGFuZKBtb2RpZmljYXRpb26gYXJloG5vdDxicj4KK2NvdmVyZWSgYnmgdGhpc6BMaWNlbnNlO6B0aGV5oGFyZaBvdXRzaWRloGl0c6BzY29wZS6goFRoZaBhY3Sgb2Y8YnI+CitydW5uaW5noHRoZaBQcm9ncmFtoGlzoG5vdKByZXN0cmljdGVkLKBhbmSgdGhloG91dHB1dKBmcm9toHRoZaBQcm9ncmFtPGJyPgoraXOgY292ZXJlZKBvbmx5oGlmoGl0c6Bjb250ZW50c6Bjb25zdGl0dXRloGGgd29ya6BiYXNlZKBvbqB0aGU8YnI+CitQcm9ncmFtoChpbmRlcGVuZGVudKBvZqBoYXZpbmegYmVlbqBtYWRloGJ5oHJ1bm5pbmegdGhloFByb2dyYW0pLjxicj4KK1doZXRoZXKgdGhhdKBpc6B0cnVloGRlcGVuZHOgb26gd2hhdKB0aGWgUHJvZ3JhbaBkb2VzLjxicj4KKzxicj4KK6CgMS6gWW91oG1heaBjb3B5oGFuZKBkaXN0cmlidXRloHZlcmJhdGltoGNvcGllc6BvZqB0aGWgUHJvZ3JhbSdzPGJyPgorc291cmNloGNvZGWgYXOgeW91oHJlY2VpdmWgaXQsoGluoGFueaBtZWRpdW0soHByb3ZpZGVkoHRoYXSgeW91PGJyPgorY29uc3BpY3VvdXNseaBhbmSgYXBwcm9wcmlhdGVseaBwdWJsaXNooG9uoGVhY2igY29weaBhbqBhcHByb3ByaWF0ZTxicj4KK2NvcHlyaWdodKBub3RpY2WgYW5koGRpc2NsYWltZXKgb2agd2FycmFudHk7oGtlZXCgaW50YWN0oGFsbKB0aGU8YnI+Citub3RpY2VzoHRoYXSgcmVmZXKgdG+gdGhpc6BMaWNlbnNloGFuZKB0b6B0aGWgYWJzZW5jZaBvZqBhbnmgd2FycmFudHk7PGJyPgorYW5koGdpdmWgYW55oG90aGVyoHJlY2lwaWVudHOgb2agdGhloFByb2dyYW2gYaBjb3B5oG9moHRoaXOgTGljZW5zZTxicj4KK2Fsb25noHdpdGigdGhloFByb2dyYW0uPGJyPgorPGJyPgorWW91oG1heaBjaGFyZ2WgYaBmZWWgZm9yoHRoZaBwaHlzaWNhbKBhY3Sgb2agdHJhbnNmZXJyaW5noGGgY29weSygYW5kPGJyPgoreW91oG1heaBhdKB5b3VyoG9wdGlvbqBvZmZlcqB3YXJyYW50eaBwcm90ZWN0aW9uoGluoGV4Y2hhbmdloGZvcqBhoGZlZS48YnI+Cis8YnI+CiugoDIuoFlvdaBtYXmgbW9kaWZ5oHlvdXKgY29weaBvcqBjb3BpZXOgb2agdGhloFByb2dyYW2gb3KgYW55oHBvcnRpb248YnI+CitvZqBpdCygdGh1c6Bmb3JtaW5noGGgd29ya6BiYXNlZKBvbqB0aGWgUHJvZ3JhbSygYW5koGNvcHmgYW5kPGJyPgorZGlzdHJpYnV0ZaBzdWNooG1vZGlmaWNhdGlvbnOgb3Kgd29ya6B1bmRlcqB0aGWgdGVybXOgb2agU2VjdGlvbqAxPGJyPgorYWJvdmUsoHByb3ZpZGVkoHRoYXSgeW91oGFsc2+gbWVldKBhbGygb2agdGhlc2WgY29uZGl0aW9uczo8YnI+Cis8YnI+CiugoKCgYSmgWW91oG11c3SgY2F1c2WgdGhloG1vZGlmaWVkoGZpbGVzoHRvoGNhcnJ5oHByb21pbmVudKBub3RpY2VzPGJyPgoroKCgoHN0YXRpbmegdGhhdKB5b3WgY2hhbmdlZKB0aGWgZmlsZXOgYW5koHRoZaBkYXRloG9moGFueaBjaGFuZ2UuPGJyPgorPGJyPgoroKCgoGIpoFlvdaBtdXN0oGNhdXNloGFueaB3b3JroHRoYXSgeW91oGRpc3RyaWJ1dGWgb3KgcHVibGlzaCygdGhhdKBpbjxicj4KK6CgoKB3aG9sZaBvcqBpbqBwYXJ0oGNvbnRhaW5zoG9yoGlzoGRlcml2ZWSgZnJvbaB0aGWgUHJvZ3JhbaBvcqBhbnk8YnI+CiugoKCgcGFydKB0aGVyZW9mLKB0b6BiZaBsaWNlbnNlZKBhc6BhoHdob2xloGF0oG5voGNoYXJnZaB0b6BhbGygdGhpcmQ8YnI+CiugoKCgcGFydGllc6B1bmRlcqB0aGWgdGVybXOgb2agdGhpc6BMaWNlbnNlLjxicj4KKzxicj4KK6CgoKBjKaBJZqB0aGWgbW9kaWZpZWSgcHJvZ3JhbaBub3JtYWxseaByZWFkc6Bjb21tYW5kc6BpbnRlcmFjdGl2ZWx5PGJyPgoroKCgoHdoZW6gcnVuLKB5b3WgbXVzdKBjYXVzZaBpdCygd2hlbqBzdGFydGVkoHJ1bm5pbmegZm9yoHN1Y2g8YnI+CiugoKCgaW50ZXJhY3RpdmWgdXNloGluoHRoZaBtb3N0oG9yZGluYXJ5oHdheSygdG+gcHJpbnSgb3KgZGlzcGxheaBhbjxicj4KK6CgoKBhbm5vdW5jZW1lbnSgaW5jbHVkaW5noGFuoGFwcHJvcHJpYXRloGNvcHlyaWdodKBub3RpY2WgYW5koGE8YnI+CiugoKCgbm90aWNloHRoYXSgdGhlcmWgaXOgbm+gd2FycmFudHmgKG9yoGVsc2UsoHNheWluZ6B0aGF0oHlvdaBwcm92aWRlPGJyPgoroKCgoGGgd2FycmFudHkpoGFuZKB0aGF0oHVzZXJzoG1heaByZWRpc3RyaWJ1dGWgdGhloHByb2dyYW2gdW5kZXI8YnI+CiugoKCgdGhlc2WgY29uZGl0aW9ucyygYW5koHRlbGxpbmegdGhloHVzZXKgaG93oHRvoHZpZXegYaBjb3B5oG9moHRoaXM8YnI+CiugoKCgTGljZW5zZS6goChFeGNlcHRpb246oGlmoHRoZaBQcm9ncmFtoGl0c2VsZqBpc6BpbnRlcmFjdGl2ZaBidXQ8YnI+CiugoKCgZG9lc6Bub3Sgbm9ybWFsbHmgcHJpbnSgc3VjaKBhbqBhbm5vdW5jZW1lbnQsoHlvdXKgd29ya6BiYXNlZKBvbjxicj4KK6CgoKB0aGWgUHJvZ3JhbaBpc6Bub3SgcmVxdWlyZWSgdG+gcHJpbnSgYW6gYW5ub3VuY2VtZW50Lik8YnI+Cis8YnI+CitUaGVzZaByZXF1aXJlbWVudHOgYXBwbHmgdG+gdGhloG1vZGlmaWVkoHdvcmugYXOgYaB3aG9sZS6goElmPGJyPgoraWRlbnRpZmlhYmxloHNlY3Rpb25zoG9moHRoYXSgd29ya6BhcmWgbm90oGRlcml2ZWSgZnJvbaB0aGWgUHJvZ3JhbSw8YnI+CithbmSgY2FuoGJloHJlYXNvbmFibHmgY29uc2lkZXJlZKBpbmRlcGVuZGVudKBhbmSgc2VwYXJhdGWgd29ya3OgaW48YnI+Cit0aGVtc2VsdmVzLKB0aGVuoHRoaXOgTGljZW5zZSygYW5koGl0c6B0ZXJtcyygZG+gbm90oGFwcGx5oHRvoHRob3NlPGJyPgorc2VjdGlvbnOgd2hlbqB5b3WgZGlzdHJpYnV0ZaB0aGVtoGFzoHNlcGFyYXRloHdvcmtzLqCgQnV0oHdoZW6geW91PGJyPgorZGlzdHJpYnV0ZaB0aGWgc2FtZaBzZWN0aW9uc6Bhc6BwYXJ0oG9moGGgd2hvbGWgd2hpY2igaXOgYaB3b3JroGJhc2VkPGJyPgorb26gdGhloFByb2dyYW0soHRoZaBkaXN0cmlidXRpb26gb2agdGhloHdob2xloG11c3SgYmWgb26gdGhloHRlcm1zoG9mPGJyPgordGhpc6BMaWNlbnNlLKB3aG9zZaBwZXJtaXNzaW9uc6Bmb3Kgb3RoZXKgbGljZW5zZWVzoGV4dGVuZKB0b6B0aGU8YnI+CitlbnRpcmWgd2hvbGUsoGFuZKB0aHVzoHRvoGVhY2igYW5koGV2ZXJ5oHBhcnSgcmVnYXJkbGVzc6BvZqB3aG+gd3JvdGWgaXQuPGJyPgorPGJyPgorVGh1cyygaXSgaXOgbm90oHRoZaBpbnRlbnSgb2agdGhpc6BzZWN0aW9uoHRvoGNsYWltoHJpZ2h0c6BvcqBjb250ZXN0PGJyPgoreW91cqByaWdodHOgdG+gd29ya6B3cml0dGVuoGVudGlyZWx5oGJ5oHlvdTugcmF0aGVyLKB0aGWgaW50ZW50oGlzoHRvPGJyPgorZXhlcmNpc2WgdGhloHJpZ2h0oHRvoGNvbnRyb2ygdGhloGRpc3RyaWJ1dGlvbqBvZqBkZXJpdmF0aXZloG9yPGJyPgorY29sbGVjdGl2ZaB3b3Jrc6BiYXNlZKBvbqB0aGWgUHJvZ3JhbS48YnI+Cis8YnI+CitJbqBhZGRpdGlvbiygbWVyZaBhZ2dyZWdhdGlvbqBvZqBhbm90aGVyoHdvcmugbm90oGJhc2VkoG9uoHRoZaBQcm9ncmFtPGJyPgord2l0aKB0aGWgUHJvZ3JhbaAob3Kgd2l0aKBhoHdvcmugYmFzZWSgb26gdGhloFByb2dyYW0poG9uoGGgdm9sdW1loG9mPGJyPgorYaBzdG9yYWdloG9yoGRpc3RyaWJ1dGlvbqBtZWRpdW2gZG9lc6Bub3SgYnJpbmegdGhloG90aGVyoHdvcmugdW5kZXI8YnI+Cit0aGWgc2NvcGWgb2agdGhpc6BMaWNlbnNlLjxicj4KKzxicj4KK6CgMy6gWW91oG1heaBjb3B5oGFuZKBkaXN0cmlidXRloHRoZaBQcm9ncmFtoChvcqBhoHdvcmugYmFzZWSgb26gaXQsPGJyPgordW5kZXKgU2VjdGlvbqAyKaBpbqBvYmplY3SgY29kZaBvcqBleGVjdXRhYmxloGZvcm2gdW5kZXKgdGhloHRlcm1zoG9mPGJyPgorU2VjdGlvbnOgMaBhbmSgMqBhYm92ZaBwcm92aWRlZKB0aGF0oHlvdaBhbHNvoGRvoG9uZaBvZqB0aGWgZm9sbG93aW5nOjxicj4KKzxicj4KK6CgoKBhKaBBY2NvbXBhbnmgaXSgd2l0aKB0aGWgY29tcGxldGWgY29ycmVzcG9uZGluZ6BtYWNoaW5lLXJlYWRhYmxlPGJyPgoroKCgoHNvdXJjZaBjb2RlLKB3aGljaKBtdXN0oGJloGRpc3RyaWJ1dGVkoHVuZGVyoHRoZaB0ZXJtc6BvZqBTZWN0aW9uczxicj4KK6CgoKAxoGFuZKAyoGFib3ZloG9uoGGgbWVkaXVtoGN1c3RvbWFyaWx5oHVzZWSgZm9yoHNvZnR3YXJloGludGVyY2hhbmdlO6Bvciw8YnI+Cis8YnI+CiugoKCgYimgQWNjb21wYW55oGl0oHdpdGigYaB3cml0dGVuoG9mZmVyLKB2YWxpZKBmb3KgYXSgbGVhc3SgdGhyZWU8YnI+CiugoKCgeWVhcnMsoHRvoGdpdmWgYW55oHRoaXJkoHBhcnR5LKBmb3KgYaBjaGFyZ2Wgbm+gbW9yZaB0aGFuoHlvdXI8YnI+CiugoKCgY29zdKBvZqBwaHlzaWNhbGx5oHBlcmZvcm1pbmegc291cmNloGRpc3RyaWJ1dGlvbiygYaBjb21wbGV0ZTxicj4KK6CgoKBtYWNoaW5lLXJlYWRhYmxloGNvcHmgb2agdGhloGNvcnJlc3BvbmRpbmegc291cmNloGNvZGUsoHRvoGJlPGJyPgoroKCgoGRpc3RyaWJ1dGVkoHVuZGVyoHRoZaB0ZXJtc6BvZqBTZWN0aW9uc6AxoGFuZKAyoGFib3ZloG9uoGGgbWVkaXVtPGJyPgoroKCgoGN1c3RvbWFyaWx5oHVzZWSgZm9yoHNvZnR3YXJloGludGVyY2hhbmdlO6Bvciw8YnI+Cis8YnI+CiugoKCgYymgQWNjb21wYW55oGl0oHdpdGigdGhloGluZm9ybWF0aW9uoHlvdaByZWNlaXZlZKBhc6B0b6B0aGWgb2ZmZXI8YnI+CiugoKCgdG+gZGlzdHJpYnV0ZaBjb3JyZXNwb25kaW5noHNvdXJjZaBjb2RlLqCgKFRoaXOgYWx0ZXJuYXRpdmWgaXM8YnI+CiugoKCgYWxsb3dlZKBvbmx5oGZvcqBub25jb21tZXJjaWFsoGRpc3RyaWJ1dGlvbqBhbmSgb25seaBpZqB5b3U8YnI+CiugoKCgcmVjZWl2ZWSgdGhloHByb2dyYW2gaW6gb2JqZWN0oGNvZGWgb3KgZXhlY3V0YWJsZaBmb3JtoHdpdGigc3VjaDxicj4KK6CgoKBhbqBvZmZlciygaW6gYWNjb3JkoHdpdGigU3Vic2VjdGlvbqBioGFib3ZlLik8YnI+Cis8YnI+CitUaGWgc291cmNloGNvZGWgZm9yoGGgd29ya6BtZWFuc6B0aGWgcHJlZmVycmVkoGZvcm2gb2agdGhloHdvcmugZm9yPGJyPgorbWFraW5noG1vZGlmaWNhdGlvbnOgdG+gaXQuoKBGb3KgYW6gZXhlY3V0YWJsZaB3b3JrLKBjb21wbGV0ZaBzb3VyY2U8YnI+Citjb2RloG1lYW5zoGFsbKB0aGWgc291cmNloGNvZGWgZm9yoGFsbKBtb2R1bGVzoGl0oGNvbnRhaW5zLKBwbHVzoGFueTxicj4KK2Fzc29jaWF0ZWSgaW50ZXJmYWNloGRlZmluaXRpb26gZmlsZXMsoHBsdXOgdGhloHNjcmlwdHOgdXNlZKB0bzxicj4KK2NvbnRyb2ygY29tcGlsYXRpb26gYW5koGluc3RhbGxhdGlvbqBvZqB0aGWgZXhlY3V0YWJsZS6goEhvd2V2ZXIsoGFzoGE8YnI+CitzcGVjaWFsoGV4Y2VwdGlvbiygdGhloHNvdXJjZaBjb2RloGRpc3RyaWJ1dGVkoG5lZWSgbm90oGluY2x1ZGU8YnI+Cithbnl0aGluZ6B0aGF0oGlzoG5vcm1hbGx5oGRpc3RyaWJ1dGVkoChpbqBlaXRoZXKgc291cmNloG9yoGJpbmFyeTxicj4KK2Zvcm0poHdpdGigdGhloG1ham9yoGNvbXBvbmVudHOgKGNvbXBpbGVyLKBrZXJuZWwsoGFuZKBzb6Bvbimgb2agdGhlPGJyPgorb3BlcmF0aW5noHN5c3RlbaBvbqB3aGljaKB0aGWgZXhlY3V0YWJsZaBydW5zLKB1bmxlc3OgdGhhdKBjb21wb25lbnQ8YnI+CitpdHNlbGagYWNjb21wYW5pZXOgdGhloGV4ZWN1dGFibGUuPGJyPgorPGJyPgorSWagZGlzdHJpYnV0aW9uoG9moGV4ZWN1dGFibGWgb3Kgb2JqZWN0oGNvZGWgaXOgbWFkZaBieaBvZmZlcmluZzxicj4KK2FjY2Vzc6B0b6Bjb3B5oGZyb22gYaBkZXNpZ25hdGVkoHBsYWNlLKB0aGVuoG9mZmVyaW5noGVxdWl2YWxlbnQ8YnI+CithY2Nlc3OgdG+gY29weaB0aGWgc291cmNloGNvZGWgZnJvbaB0aGWgc2FtZaBwbGFjZaBjb3VudHOgYXM8YnI+CitkaXN0cmlidXRpb26gb2agdGhloHNvdXJjZaBjb2RlLKBldmVuoHRob3VnaKB0aGlyZKBwYXJ0aWVzoGFyZaBub3Q8YnI+Citjb21wZWxsZWSgdG+gY29weaB0aGWgc291cmNloGFsb25noHdpdGigdGhloG9iamVjdKBjb2RlLjxicj4KKzxicj4KK6CgNC6gWW91oG1heaBub3SgY29weSygbW9kaWZ5LKBzdWJsaWNlbnNlLKBvcqBkaXN0cmlidXRloHRoZaBQcm9ncmFtPGJyPgorZXhjZXB0oGFzoGV4cHJlc3NseaBwcm92aWRlZKB1bmRlcqB0aGlzoExpY2Vuc2UuoKBBbnmgYXR0ZW1wdDxicj4KK290aGVyd2lzZaB0b6Bjb3B5LKBtb2RpZnksoHN1YmxpY2Vuc2Wgb3KgZGlzdHJpYnV0ZaB0aGWgUHJvZ3JhbaBpczxicj4KK3ZvaWQsoGFuZKB3aWxsoGF1dG9tYXRpY2FsbHmgdGVybWluYXRloHlvdXKgcmlnaHRzoHVuZGVyoHRoaXOgTGljZW5zZS48YnI+CitIb3dldmVyLKBwYXJ0aWVzoHdob6BoYXZloHJlY2VpdmVkoGNvcGllcyygb3KgcmlnaHRzLKBmcm9toHlvdaB1bmRlcjxicj4KK3RoaXOgTGljZW5zZaB3aWxsoG5vdKBoYXZloHRoZWlyoGxpY2Vuc2VzoHRlcm1pbmF0ZWSgc2+gbG9uZ6Bhc6BzdWNoPGJyPgorcGFydGllc6ByZW1haW6gaW6gZnVsbKBjb21wbGlhbmNlLjxicj4KKzxicj4KK6CgNS6gWW91oGFyZaBub3SgcmVxdWlyZWSgdG+gYWNjZXB0oHRoaXOgTGljZW5zZSygc2luY2WgeW91oGhhdmWgbm90PGJyPgorc2lnbmVkoGl0LqCgSG93ZXZlciygbm90aGluZ6BlbHNloGdyYW50c6B5b3WgcGVybWlzc2lvbqB0b6Btb2RpZnmgb3I8YnI+CitkaXN0cmlidXRloHRoZaBQcm9ncmFtoG9yoGl0c6BkZXJpdmF0aXZloHdvcmtzLqCgVGhlc2WgYWN0aW9uc6BhcmU8YnI+Citwcm9oaWJpdGVkoGJ5oGxhd6BpZqB5b3WgZG+gbm90oGFjY2VwdKB0aGlzoExpY2Vuc2UuoKBUaGVyZWZvcmUsoGJ5PGJyPgorbW9kaWZ5aW5noG9yoGRpc3RyaWJ1dGluZ6B0aGWgUHJvZ3JhbaAob3KgYW55oHdvcmugYmFzZWSgb26gdGhlPGJyPgorUHJvZ3JhbSksoHlvdaBpbmRpY2F0ZaB5b3VyoGFjY2VwdGFuY2Wgb2agdGhpc6BMaWNlbnNloHRvoGRvoHNvLKBhbmQ8YnI+CithbGygaXRzoHRlcm1zoGFuZKBjb25kaXRpb25zoGZvcqBjb3B5aW5nLKBkaXN0cmlidXRpbmegb3KgbW9kaWZ5aW5nPGJyPgordGhloFByb2dyYW2gb3Kgd29ya3OgYmFzZWSgb26gaXQuPGJyPgorPGJyPgoroKA2LqBFYWNooHRpbWWgeW91oHJlZGlzdHJpYnV0ZaB0aGWgUHJvZ3JhbaAob3KgYW55oHdvcmugYmFzZWSgb26gdGhlPGJyPgorUHJvZ3JhbSksoHRoZaByZWNpcGllbnSgYXV0b21hdGljYWxseaByZWNlaXZlc6BhoGxpY2Vuc2WgZnJvbaB0aGU8YnI+CitvcmlnaW5hbKBsaWNlbnNvcqB0b6Bjb3B5LKBkaXN0cmlidXRloG9yoG1vZGlmeaB0aGWgUHJvZ3JhbaBzdWJqZWN0oHRvPGJyPgordGhlc2WgdGVybXOgYW5koGNvbmRpdGlvbnMuoKBZb3WgbWF5oG5vdKBpbXBvc2WgYW55oGZ1cnRoZXI8YnI+CityZXN0cmljdGlvbnOgb26gdGhloHJlY2lwaWVudHMnoGV4ZXJjaXNloG9moHRoZaByaWdodHOgZ3JhbnRlZKBoZXJlaW4uPGJyPgorWW91oGFyZaBub3SgcmVzcG9uc2libGWgZm9yoGVuZm9yY2luZ6Bjb21wbGlhbmNloGJ5oHRoaXJkoHBhcnRpZXOgdG88YnI+Cit0aGlzoExpY2Vuc2UuPGJyPgorPGJyPgoroKA3LqBJZiygYXOgYaBjb25zZXF1ZW5jZaBvZqBhoGNvdXJ0oGp1ZGdtZW50oG9yoGFsbGVnYXRpb26gb2agcGF0ZW50PGJyPgoraW5mcmluZ2VtZW50oG9yoGZvcqBhbnmgb3RoZXKgcmVhc29uoChub3SgbGltaXRlZKB0b6BwYXRlbnSgaXNzdWVzKSw8YnI+Citjb25kaXRpb25zoGFyZaBpbXBvc2VkoG9uoHlvdaAod2hldGhlcqBieaBjb3VydKBvcmRlciygYWdyZWVtZW50oG9yPGJyPgorb3RoZXJ3aXNlKaB0aGF0oGNvbnRyYWRpY3SgdGhloGNvbmRpdGlvbnOgb2agdGhpc6BMaWNlbnNlLKB0aGV5oGRvoG5vdDxicj4KK2V4Y3VzZaB5b3WgZnJvbaB0aGWgY29uZGl0aW9uc6BvZqB0aGlzoExpY2Vuc2UuoKBJZqB5b3WgY2Fubm90PGJyPgorZGlzdHJpYnV0ZaBzb6Bhc6B0b6BzYXRpc2Z5oHNpbXVsdGFuZW91c2x5oHlvdXKgb2JsaWdhdGlvbnOgdW5kZXKgdGhpczxicj4KK0xpY2Vuc2WgYW5koGFueaBvdGhlcqBwZXJ0aW5lbnSgb2JsaWdhdGlvbnMsoHRoZW6gYXOgYaBjb25zZXF1ZW5jZaB5b3U8YnI+CittYXmgbm90oGRpc3RyaWJ1dGWgdGhloFByb2dyYW2gYXSgYWxsLqCgRm9yoGV4YW1wbGUsoGlmoGGgcGF0ZW50PGJyPgorbGljZW5zZaB3b3VsZKBub3SgcGVybWl0oHJveWFsdHktZnJlZaByZWRpc3RyaWJ1dGlvbqBvZqB0aGWgUHJvZ3JhbaBieTxicj4KK2FsbKB0aG9zZaB3aG+gcmVjZWl2ZaBjb3BpZXOgZGlyZWN0bHmgb3KgaW5kaXJlY3RseaB0aHJvdWdooHlvdSygdGhlbjxicj4KK3RoZaBvbmx5oHdheaB5b3WgY291bGSgc2F0aXNmeaBib3RooGl0oGFuZKB0aGlzoExpY2Vuc2Wgd291bGSgYmWgdG88YnI+CityZWZyYWluoGVudGlyZWx5oGZyb22gZGlzdHJpYnV0aW9uoG9moHRoZaBQcm9ncmFtLjxicj4KKzxicj4KK0lmoGFueaBwb3J0aW9uoG9moHRoaXOgc2VjdGlvbqBpc6BoZWxkoGludmFsaWSgb3KgdW5lbmZvcmNlYWJsZaB1bmRlcjxicj4KK2FueaBwYXJ0aWN1bGFyoGNpcmN1bXN0YW5jZSygdGhloGJhbGFuY2Wgb2agdGhloHNlY3Rpb26gaXOgaW50ZW5kZWSgdG88YnI+CithcHBseaBhbmSgdGhloHNlY3Rpb26gYXOgYaB3aG9sZaBpc6BpbnRlbmRlZKB0b6BhcHBseaBpbqBvdGhlcjxicj4KK2NpcmN1bXN0YW5jZXMuPGJyPgorPGJyPgorSXSgaXOgbm90oHRoZaBwdXJwb3NloG9moHRoaXOgc2VjdGlvbqB0b6BpbmR1Y2WgeW91oHRvoGluZnJpbmdloGFueTxicj4KK3BhdGVudHOgb3Kgb3RoZXKgcHJvcGVydHmgcmlnaHSgY2xhaW1zoG9yoHRvoGNvbnRlc3SgdmFsaWRpdHmgb2agYW55PGJyPgorc3VjaKBjbGFpbXM7oHRoaXOgc2VjdGlvbqBoYXOgdGhloHNvbGWgcHVycG9zZaBvZqBwcm90ZWN0aW5noHRoZTxicj4KK2ludGVncml0eaBvZqB0aGWgZnJlZaBzb2Z0d2FyZaBkaXN0cmlidXRpb26gc3lzdGVtLKB3aGljaKBpczxicj4KK2ltcGxlbWVudGVkoGJ5oHB1YmxpY6BsaWNlbnNloHByYWN0aWNlcy6goE1hbnmgcGVvcGxloGhhdmWgbWFkZTxicj4KK2dlbmVyb3VzoGNvbnRyaWJ1dGlvbnOgdG+gdGhloHdpZGWgcmFuZ2Wgb2agc29mdHdhcmWgZGlzdHJpYnV0ZWQ8YnI+Cit0aHJvdWdooHRoYXSgc3lzdGVtoGluoHJlbGlhbmNloG9uoGNvbnNpc3RlbnSgYXBwbGljYXRpb26gb2agdGhhdDxicj4KK3N5c3RlbTugaXSgaXOgdXCgdG+gdGhloGF1dGhvci9kb25vcqB0b6BkZWNpZGWgaWagaGWgb3Kgc2hloGlzoHdpbGxpbmc8YnI+Cit0b6BkaXN0cmlidXRloHNvZnR3YXJloHRocm91Z2igYW55oG90aGVyoHN5c3RlbaBhbmSgYaBsaWNlbnNlZaBjYW5ub3Q8YnI+CitpbXBvc2WgdGhhdKBjaG9pY2UuPGJyPgorPGJyPgorVGhpc6BzZWN0aW9uoGlzoGludGVuZGVkoHRvoG1ha2WgdGhvcm91Z2hseaBjbGVhcqB3aGF0oGlzoGJlbGlldmVkoHRvPGJyPgorYmWgYaBjb25zZXF1ZW5jZaBvZqB0aGWgcmVzdKBvZqB0aGlzoExpY2Vuc2UuPGJyPgorPGJyPgoroKA4LqBJZqB0aGWgZGlzdHJpYnV0aW9uoGFuZC9vcqB1c2Wgb2agdGhloFByb2dyYW2gaXOgcmVzdHJpY3RlZKBpbjxicj4KK2NlcnRhaW6gY291bnRyaWVzoGVpdGhlcqBieaBwYXRlbnRzoG9yoGJ5oGNvcHlyaWdodGVkoGludGVyZmFjZXMsoHRoZTxicj4KK29yaWdpbmFsoGNvcHlyaWdodKBob2xkZXKgd2hvoHBsYWNlc6B0aGWgUHJvZ3JhbaB1bmRlcqB0aGlzoExpY2Vuc2U8YnI+CittYXmgYWRkoGFuoGV4cGxpY2l0oGdlb2dyYXBoaWNhbKBkaXN0cmlidXRpb26gbGltaXRhdGlvbqBleGNsdWRpbmc8YnI+Cit0aG9zZaBjb3VudHJpZXMsoHNvoHRoYXSgZGlzdHJpYnV0aW9uoGlzoHBlcm1pdHRlZKBvbmx5oGluoG9yoGFtb25nPGJyPgorY291bnRyaWVzoG5vdKB0aHVzoGV4Y2x1ZGVkLqCgSW6gc3VjaKBjYXNlLKB0aGlzoExpY2Vuc2WgaW5jb3Jwb3JhdGVzPGJyPgordGhloGxpbWl0YXRpb26gYXOgaWagd3JpdHRlbqBpbqB0aGWgYm9keaBvZqB0aGlzoExpY2Vuc2UuPGJyPgorPGJyPgoroKA5LqBUaGWgRnJlZaBTb2Z0d2FyZaBGb3VuZGF0aW9uoG1heaBwdWJsaXNooHJldmlzZWSgYW5kL29yoG5ld6B2ZXJzaW9uczxicj4KK29moHRoZaBHZW5lcmFsoFB1YmxpY6BMaWNlbnNloGZyb22gdGltZaB0b6B0aW1lLqCgU3VjaKBuZXegdmVyc2lvbnOgd2lsbDxicj4KK2JloHNpbWlsYXKgaW6gc3Bpcml0oHRvoHRoZaBwcmVzZW50oHZlcnNpb24soGJ1dKBtYXmgZGlmZmVyoGluoGRldGFpbKB0bzxicj4KK2FkZHJlc3OgbmV3oHByb2JsZW1zoG9yoGNvbmNlcm5zLjxicj4KKzxicj4KK0VhY2igdmVyc2lvbqBpc6BnaXZlbqBhoGRpc3Rpbmd1aXNoaW5noHZlcnNpb26gbnVtYmVyLqCgSWagdGhloFByb2dyYW08YnI+CitzcGVjaWZpZXOgYaB2ZXJzaW9uoG51bWJlcqBvZqB0aGlzoExpY2Vuc2Wgd2hpY2igYXBwbGllc6B0b6BpdKBhbmSgImFueTxicj4KK2xhdGVyoHZlcnNpb24iLKB5b3WgaGF2ZaB0aGWgb3B0aW9uoG9moGZvbGxvd2luZ6B0aGWgdGVybXOgYW5koGNvbmRpdGlvbnM8YnI+CitlaXRoZXKgb2agdGhhdKB2ZXJzaW9uoG9yoG9moGFueaBsYXRlcqB2ZXJzaW9uoHB1Ymxpc2hlZKBieaB0aGWgRnJlZTxicj4KK1NvZnR3YXJloEZvdW5kYXRpb24uoKBJZqB0aGWgUHJvZ3JhbaBkb2VzoG5vdKBzcGVjaWZ5oGGgdmVyc2lvbqBudW1iZXKgb2Y8YnI+Cit0aGlzoExpY2Vuc2UsoHlvdaBtYXmgY2hvb3NloGFueaB2ZXJzaW9uoGV2ZXKgcHVibGlzaGVkoGJ5oHRoZaBGcmVloFNvZnR3YXJlPGJyPgorRm91bmRhdGlvbi48YnI+Cis8YnI+CiugoDEwLqBJZqB5b3Wgd2lzaKB0b6BpbmNvcnBvcmF0ZaBwYXJ0c6BvZqB0aGWgUHJvZ3JhbaBpbnRvoG90aGVyoGZyZWU8YnI+Citwcm9ncmFtc6B3aG9zZaBkaXN0cmlidXRpb26gY29uZGl0aW9uc6BhcmWgZGlmZmVyZW50LKB3cml0ZaB0b6B0aGWgYXV0aG9yPGJyPgordG+gYXNroGZvcqBwZXJtaXNzaW9uLqCgRm9yoHNvZnR3YXJloHdoaWNooGlzoGNvcHlyaWdodGVkoGJ5oHRoZaBGcmVlPGJyPgorU29mdHdhcmWgRm91bmRhdGlvbiygd3JpdGWgdG+gdGhloEZyZWWgU29mdHdhcmWgRm91bmRhdGlvbjugd2Wgc29tZXRpbWVzPGJyPgorbWFrZaBleGNlcHRpb25zoGZvcqB0aGlzLqCgT3VyoGRlY2lzaW9uoHdpbGygYmWgZ3VpZGVkoGJ5oHRoZaB0d2+gZ29hbHM8YnI+CitvZqBwcmVzZXJ2aW5noHRoZaBmcmVloHN0YXR1c6BvZqBhbGygZGVyaXZhdGl2ZXOgb2agb3VyoGZyZWWgc29mdHdhcmWgYW5kPGJyPgorb2agcHJvbW90aW5noHRoZaBzaGFyaW5noGFuZKByZXVzZaBvZqBzb2Z0d2FyZaBnZW5lcmFsbHkuPGJyPgorPGJyPgoroKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoE5PoFdBUlJBTlRZPGJyPgorPGJyPgoroKAxMS6gQkVDQVVTRaBUSEWgUFJPR1JBTaBJU6BMSUNFTlNFRKBGUkVFoE9GoENIQVJHRSygVEhFUkWgSVOgTk+gV0FSUkFOVFk8YnI+CitGT1KgVEhFoFBST0dSQU0soFRPoFRIRaBFWFRFTlSgUEVSTUlUVEVEoEJZoEFQUExJQ0FCTEWgTEFXLqCgRVhDRVBUoFdIRU48YnI+CitPVEhFUldJU0WgU1RBVEVEoElOoFdSSVRJTkegVEhFoENPUFlSSUdIVKBIT0xERVJToEFORC9PUqBPVEhFUqBQQVJUSUVTPGJyPgorUFJPVklERaBUSEWgUFJPR1JBTaAiQVOgSVMioFdJVEhPVVSgV0FSUkFOVFmgT0agQU5ZoEtJTkQsoEVJVEhFUqBFWFBSRVNTRUQ8YnI+CitPUqBJTVBMSUVELKBJTkNMVURJTkcsoEJVVKBOT1SgTElNSVRFRKBUTyygVEhFoElNUExJRUSgV0FSUkFOVElFU6BPRjxicj4KK01FUkNIQU5UQUJJTElUWaBBTkSgRklUTkVTU6BGT1KgQaBQQVJUSUNVTEFSoFBVUlBPU0UuoKBUSEWgRU5USVJFoFJJU0ugQVM8YnI+CitUT6BUSEWgUVVBTElUWaBBTkSgUEVSRk9STUFOQ0WgT0agVEhFoFBST0dSQU2gSVOgV0lUSKBZT1UuoKBTSE9VTESgVEhFPGJyPgorUFJPR1JBTaBQUk9WRaBERUZFQ1RJVkUsoFlPVaBBU1NVTUWgVEhFoENPU1SgT0agQUxMoE5FQ0VTU0FSWaBTRVJWSUNJTkcsPGJyPgorUkVQQUlSoE9SoENPUlJFQ1RJT04uPGJyPgorPGJyPgoroKAxMi6gSU6gTk+gRVZFTlSgVU5MRVNToFJFUVVJUkVEoEJZoEFQUExJQ0FCTEWgTEFXoE9SoEFHUkVFRKBUT6BJTqBXUklUSU5HPGJyPgorV0lMTKBBTlmgQ09QWVJJR0hUoEhPTERFUiygT1KgQU5ZoE9USEVSoFBBUlRZoFdIT6BNQVmgTU9ESUZZoEFORC9PUjxicj4KK1JFRElTVFJJQlVURaBUSEWgUFJPR1JBTaBBU6BQRVJNSVRURUSgQUJPVkUsoEJFoExJQUJMRaBUT6BZT1WgRk9SoERBTUFHRVMsPGJyPgorSU5DTFVESU5HoEFOWaBHRU5FUkFMLKBTUEVDSUFMLKBJTkNJREVOVEFMoE9SoENPTlNFUVVFTlRJQUygREFNQUdFU6BBUklTSU5HPGJyPgorT1VUoE9GoFRIRaBVU0WgT1KgSU5BQklMSVRZoFRPoFVTRaBUSEWgUFJPR1JBTaAoSU5DTFVESU5HoEJVVKBOT1SgTElNSVRFRDxicj4KK1RPoExPU1OgT0agREFUQaBPUqBEQVRBoEJFSU5HoFJFTkRFUkVEoElOQUNDVVJBVEWgT1KgTE9TU0VToFNVU1RBSU5FRKBCWTxicj4KK1lPVaBPUqBUSElSRKBQQVJUSUVToE9SoEGgRkFJTFVSRaBPRqBUSEWgUFJPR1JBTaBUT6BPUEVSQVRFoFdJVEigQU5ZoE9USEVSPGJyPgorUFJPR1JBTVMpLKBFVkVOoElGoFNVQ0igSE9MREVSoE9SoE9USEVSoFBBUlRZoEhBU6BCRUVOoEFEVklTRUSgT0agVEhFPGJyPgorUE9TU0lCSUxJVFmgT0agU1VDSKBEQU1BR0VTLjxicj4KKzxicj4KK6CgoKCgoKCgoKCgoKCgoKCgoKCgoEVORKBPRqBURVJNU6BBTkSgQ09ORElUSU9OUzxicj4KKzxicj4KK6CgoKCgoKCgoKCgoEhvd6B0b6BBcHBseaBUaGVzZaBUZXJtc6B0b6BZb3VyoE5ld6BQcm9ncmFtczxicj4KKzxicj4KK6CgSWageW91oGRldmVsb3CgYaBuZXegcHJvZ3JhbSygYW5koHlvdaB3YW50oGl0oHRvoGJloG9moHRoZaBncmVhdGVzdDxicj4KK3Bvc3NpYmxloHVzZaB0b6B0aGWgcHVibGljLKB0aGWgYmVzdKB3YXmgdG+gYWNoaWV2ZaB0aGlzoGlzoHRvoG1ha2WgaXQ8YnI+CitmcmVloHNvZnR3YXJloHdoaWNooGV2ZXJ5b25loGNhbqByZWRpc3RyaWJ1dGWgYW5koGNoYW5nZaB1bmRlcqB0aGVzZaB0ZXJtcy48YnI+Cis8YnI+CiugoFRvoGRvoHNvLKBhdHRhY2igdGhloGZvbGxvd2luZ6Bub3RpY2VzoHRvoHRoZaBwcm9ncmFtLqCgSXSgaXOgc2FmZXN0PGJyPgordG+gYXR0YWNooHRoZW2gdG+gdGhloHN0YXJ0oG9moGVhY2igc291cmNloGZpbGWgdG+gbW9zdKBlZmZlY3RpdmVseTxicj4KK2NvbnZleaB0aGWgZXhjbHVzaW9uoG9moHdhcnJhbnR5O6BhbmSgZWFjaKBmaWxloHNob3VsZKBoYXZloGF0oGxlYXN0PGJyPgordGhloCJjb3B5cmlnaHQioGxpbmWgYW5koGGgcG9pbnRlcqB0b6B3aGVyZaB0aGWgZnVsbKBub3RpY2WgaXOgZm91bmQuPGJyPgorPGJyPgoroKCgoCZsdDtvbmWgbGluZaB0b6BnaXZloHRoZaBwcm9ncmFtJ3OgbmFtZaBhbmSgYaBicmllZqBpZGVhoG9moHdoYXSgaXSgZG9lcy4mZ3Q7PGJyPgoroKCgoENvcHlyaWdodKAoQymgJmx0O3llYXImZ3Q7oKAmbHQ7bmFtZaBvZqBhdXRob3ImZ3Q7PGJyPgorPGJyPgoroKCgoFRoaXOgcHJvZ3JhbaBpc6BmcmVloHNvZnR3YXJlO6B5b3WgY2FuoHJlZGlzdHJpYnV0ZaBpdKBhbmQvb3KgbW9kaWZ5PGJyPgoroKCgoGl0oHVuZGVyoHRoZaB0ZXJtc6BvZqB0aGWgR05VoEdlbmVyYWygUHVibGljoExpY2Vuc2WgYXOgcHVibGlzaGVkoGJ5PGJyPgoroKCgoHRoZaBGcmVloFNvZnR3YXJloEZvdW5kYXRpb247oGVpdGhlcqB2ZXJzaW9uoDKgb2agdGhloExpY2Vuc2UsoG9yPGJyPgoroKCgoChhdKB5b3VyoG9wdGlvbimgYW55oGxhdGVyoHZlcnNpb24uPGJyPgorPGJyPgoroKCgoFRoaXOgcHJvZ3JhbaBpc6BkaXN0cmlidXRlZKBpbqB0aGWgaG9wZaB0aGF0oGl0oHdpbGygYmWgdXNlZnVsLDxicj4KK6CgoKBidXSgV0lUSE9VVKBBTlmgV0FSUkFOVFk7oHdpdGhvdXSgZXZlbqB0aGWgaW1wbGllZKB3YXJyYW50eaBvZjxicj4KK6CgoKBNRVJDSEFOVEFCSUxJVFmgb3KgRklUTkVTU6BGT1KgQaBQQVJUSUNVTEFSoFBVUlBPU0UuoKBTZWWgdGhlPGJyPgoroKCgoEdOVaBHZW5lcmFsoFB1YmxpY6BMaWNlbnNloGZvcqBtb3JloGRldGFpbHMuPGJyPgorPGJyPgoroKCgoFlvdaBzaG91bGSgaGF2ZaByZWNlaXZlZKBhoGNvcHmgb2agdGhloEdOVaBHZW5lcmFsoFB1YmxpY6BMaWNlbnNloGFsb25nPGJyPgoroKCgoHdpdGigdGhpc6Bwcm9ncmFtO6BpZqBub3QsoHdyaXRloHRvoHRoZaBGcmVloFNvZnR3YXJloEZvdW5kYXRpb24soEluYy4sPGJyPgoroKCgoDUxoEZyYW5rbGluoFN0cmVldCygRmlmdGigRmxvb3IsoEJvc3RvbiygTUGgMDIxMTAtMTMwMaBVU0EuPGJyPgorPGJyPgorQWxzb6BhZGSgaW5mb3JtYXRpb26gb26gaG93oHRvoGNvbnRhY3SgeW91oGJ5oGVsZWN0cm9uaWOgYW5koHBhcGVyoG1haWwuPGJyPgorPGJyPgorSWagdGhloHByb2dyYW2gaXOgaW50ZXJhY3RpdmUsoG1ha2WgaXSgb3V0cHV0oGGgc2hvcnSgbm90aWNloGxpa2WgdGhpczxicj4KK3doZW6gaXSgc3RhcnRzoGluoGFuoGludGVyYWN0aXZloG1vZGU6PGJyPgorPGJyPgoroKCgoEdub21vdmlzaW9uoHZlcnNpb26gNjksoENvcHlyaWdodKAoQymgeWVhcqBuYW1loG9moGF1dGhvcjxicj4KK6CgoKBHbm9tb3Zpc2lvbqBjb21lc6B3aXRooEFCU09MVVRFTFmgTk+gV0FSUkFOVFk7oGZvcqBkZXRhaWxzoHR5cGWgYHNob3egdycuPGJyPgoroKCgoFRoaXOgaXOgZnJlZaBzb2Z0d2FyZSygYW5koHlvdaBhcmWgd2VsY29tZaB0b6ByZWRpc3RyaWJ1dGWgaXQ8YnI+CiugoKCgdW5kZXKgY2VydGFpbqBjb25kaXRpb25zO6B0eXBloGBzaG93oGMnoGZvcqBkZXRhaWxzLjxicj4KKzxicj4KK1RoZaBoeXBvdGhldGljYWygY29tbWFuZHOgYHNob3egdyegYW5koGBzaG93oGMnoHNob3VsZKBzaG93oHRoZaBhcHByb3ByaWF0ZTxicj4KK3BhcnRzoG9moHRoZaBHZW5lcmFsoFB1YmxpY6BMaWNlbnNlLqCgT2agY291cnNlLKB0aGWgY29tbWFuZHOgeW91oHVzZaBtYXk8YnI+CitiZaBjYWxsZWSgc29tZXRoaW5noG90aGVyoHRoYW6gYHNob3egdyegYW5koGBzaG93oGMnO6B0aGV5oGNvdWxkoGV2ZW6gYmU8YnI+Cittb3VzZS1jbGlja3Ogb3KgbWVudaBpdGVtcy0td2hhdGV2ZXKgc3VpdHOgeW91cqBwcm9ncmFtLjxicj4KKzxicj4KK1lvdaBzaG91bGSgYWxzb6BnZXSgeW91cqBlbXBsb3llcqAoaWageW91oHdvcmugYXOgYaBwcm9ncmFtbWVyKaBvcqB5b3VyPGJyPgorc2Nob29sLKBpZqBhbnksoHRvoHNpZ26gYaAiY29weXJpZ2h0oGRpc2NsYWltZXIioGZvcqB0aGWgcHJvZ3JhbSygaWY8YnI+CituZWNlc3NhcnkuoKBIZXJloGlzoGGgc2FtcGxlO6BhbHRlcqB0aGWgbmFtZXM6PGJyPgorPGJyPgoroKBZb3lvZHluZSygSW5jLiygaGVyZWJ5oGRpc2NsYWltc6BhbGygY29weXJpZ2h0oGludGVyZXN0oGluoHRoZaBwcm9ncmFtPGJyPgoroKBgR25vbW92aXNpb24noCh3aGljaKBtYWtlc6BwYXNzZXOgYXSgY29tcGlsZXJzKaB3cml0dGVuoGJ5oEphbWVzoEhhY2tlci48YnI+Cis8YnI+CiugoCZsdDtzaWduYXR1cmWgb2agVHmgQ29vbiZndDssoDGgQXByaWygMTk4OTxicj4KK6CgVHmgQ29vbiygUHJlc2lkZW50oG9moFZpY2U8YnI+Cis8YnI+CitUaGlzoEdlbmVyYWygUHVibGljoExpY2Vuc2WgZG9lc6Bub3SgcGVybWl0oGluY29ycG9yYXRpbmegeW91cqBwcm9ncmFtoGludG88YnI+Citwcm9wcmlldGFyeaBwcm9ncmFtcy6goElmoHlvdXKgcHJvZ3JhbaBpc6BhoHN1YnJvdXRpbmWgbGlicmFyeSygeW91oG1heTxicj4KK2NvbnNpZGVyoGl0oG1vcmWgdXNlZnVsoHRvoHBlcm1pdKBsaW5raW5noHByb3ByaWV0YXJ5oGFwcGxpY2F0aW9uc6B3aXRooHRoZTxicj4KK2xpYnJhcnkuoKBJZqB0aGlzoGlzoHdoYXSgeW91oHdhbnSgdG+gZG8soHVzZaB0aGWgR05VoExlc3NlcqBHZW5lcmFsPGJyPgorUHVibGljoExpY2Vuc2WgaW5zdGVhZKBvZqB0aGlzoExpY2Vuc2UuPGJyPgorPGJyPgoroKCgoKCgPC9wPjwvZGl2PgorPC9kaXY+Cis8ZGl2PgorPGJyPjx0YWJsZSBjbGFzcz0ibmF2IiB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjMiIGNlbGxwYWRkaW5nPSIyIiBib3JkZXI9IjAiIHN1bW1hcnk9Ik5hdmlnYXRpb24gZm9vdGVyIj4KKzx0cj4KKzx0ZCByb3dzcGFuPSIyIiB3aWR0aD0iNDAlIiBhbGlnbj0ibGVmdCI+Cis8YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImxpY2Vuc2VzLmh0bWwiPiZsdDsmbHQ7oEdOVSBMaWNlbnNlczwvYT6gPC90ZD4KKzx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0iY2VudGVyIj48YSBhY2Nlc3NrZXk9InUiIGhyZWY9ImxpY2Vuc2VzLmh0bWwiPlVwPC9hPjwvdGQ+Cis8dGQgcm93c3Bhbj0iMiIgd2lkdGg9IjQwJSIgYWxpZ249InJpZ2h0Ij6gPGEgYWNjZXNza2V5PSJuIiBocmVmPSJsaWNlbnNlLmdmZGwuaHRtbCI+Mi6gVGhlIEdOVSBGcmVlIERvY3VtZW50YXRpb24gTGljZW5zZaAmZ3Q7Jmd0OzwvYT4KKzwvdGQ+Cis8L3RyPgorPHRyPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0iY2VudGVyIj48YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPkhvbWU8L2E+PC90ZD48L3RyPgorPC90YWJsZT4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvZG9jcy9odG1sL2xpY2Vuc2VzLmh0bWwgYi9kb2NzL2h0bWwvbGljZW5zZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MjRhMTMwCi0tLSAvZGV2L251bGwKKysrIGIvZG9jcy9odG1sL2xpY2Vuc2VzLmh0bWwKQEAgLTAsMCArMSw0NyBAQAorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiPgorPHRpdGxlPkdOVSBMaWNlbnNlczwvdGl0bGU+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJ2Z19iYXNpYy5jc3MiPgorPG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJEb2NCb29rIFhTTCBTdHlsZXNoZWV0cyBWMS43OC4xIj4KKzxsaW5rIHJlbD0iaG9tZSIgaHJlZj0iaW5kZXguaHRtbCIgdGl0bGU9IlZhbGdyaW5kIERvY3VtZW50YXRpb24iPgorPGxpbmsgcmVsPSJ1cCIgaHJlZj0iaW5kZXguaHRtbCIgdGl0bGU9IlZhbGdyaW5kIERvY3VtZW50YXRpb24iPgorPGxpbmsgcmVsPSJwcmV2IiBocmVmPSJkaXN0LnJlYWRtZS1zb2xhcmlzLmh0bWwiIHRpdGxlPSIxMi6gUkVBRE1FLnNvbGFyaXMiPgorPGxpbmsgcmVsPSJuZXh0IiBocmVmPSJsaWNlbnNlLmdwbC5odG1sIiB0aXRsZT0iMS6gVGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIj4KKzwvaGVhZD4KKzxib2R5IGJnY29sb3I9IndoaXRlIiB0ZXh0PSJibGFjayIgbGluaz0iIzAwMDBGRiIgdmxpbms9IiM4NDAwODQiIGFsaW5rPSIjMDAwMEZGIj4KKzxkaXY+PHRhYmxlIGNsYXNzPSJuYXYiIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0iMyIgY2VsbHBhZGRpbmc9IjMiIGJvcmRlcj0iMCIgc3VtbWFyeT0iTmF2aWdhdGlvbiBoZWFkZXIiPjx0cj4KKzx0ZCB3aWR0aD0iMjJweCIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPjxhIGFjY2Vzc2tleT0icCIgaHJlZj0iZGlzdC5yZWFkbWUtc29sYXJpcy5odG1sIj48aW1nIHNyYz0iaW1hZ2VzL3ByZXYucG5nIiB3aWR0aD0iMTgiIGhlaWdodD0iMjEiIGJvcmRlcj0iMCIgYWx0PSJQcmV2Ij48L2E+PC90ZD4KKzx0ZCB3aWR0aD0iMjVweCIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPjxhIGFjY2Vzc2tleT0idSIgaHJlZj0iaW5kZXguaHRtbCI+PGltZyBzcmM9ImltYWdlcy91cC5wbmciIHdpZHRoPSIyMSIgaGVpZ2h0PSIxOCIgYm9yZGVyPSIwIiBhbHQ9IlVwIj48L2E+PC90ZD4KKzx0ZCB3aWR0aD0iMzFweCIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iaW5kZXguaHRtbCI+PGltZyBzcmM9ImltYWdlcy9ob21lLnBuZyIgd2lkdGg9IjI3IiBoZWlnaHQ9IjIwIiBib3JkZXI9IjAiIGFsdD0iVXAiPjwvYT48L3RkPgorPHRoIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj5WYWxncmluZCBEb2N1bWVudGF0aW9uPC90aD4KKzx0ZCB3aWR0aD0iMjJweCIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPjxhIGFjY2Vzc2tleT0ibiIgaHJlZj0ibGljZW5zZS5ncGwuaHRtbCI+PGltZyBzcmM9ImltYWdlcy9uZXh0LnBuZyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjIxIiBib3JkZXI9IjAiIGFsdD0iTmV4dCI+PC9hPjwvdGQ+Cis8L3RyPjwvdGFibGU+PC9kaXY+Cis8ZGl2IGNsYXNzPSJib29rIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+Cis8ZGl2PjxkaXY+PGgxIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJsaWNlbnNlcyI+PC9hPkdOVSBMaWNlbnNlczwvaDE+PC9kaXY+PC9kaXY+Cis8aHI+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InRvYyI+Cis8cD48Yj5UYWJsZSBvZiBDb250ZW50czwvYj48L3A+Cis8ZGwgY2xhc3M9InRvYyI+Cis8ZHQ+PHNwYW4gY2xhc3M9ImNoYXB0ZXIiPjxhIGhyZWY9ImxpY2Vuc2UuZ3BsLmh0bWwiPjEuIFRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZTwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0iY2hhcHRlciI+PGEgaHJlZj0ibGljZW5zZS5nZmRsLmh0bWwiPjIuIFRoZSBHTlUgRnJlZSBEb2N1bWVudGF0aW9uIExpY2Vuc2U8L2E+PC9zcGFuPjwvZHQ+Cis8L2RsPgorPC9kaXY+Cis8L2Rpdj4KKzxkaXY+Cis8YnI+PHRhYmxlIGNsYXNzPSJuYXYiIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0iMyIgY2VsbHBhZGRpbmc9IjIiIGJvcmRlcj0iMCIgc3VtbWFyeT0iTmF2aWdhdGlvbiBmb290ZXIiPgorPHRyPgorPHRkIHJvd3NwYW49IjIiIHdpZHRoPSI0MCUiIGFsaWduPSJsZWZ0Ij4KKzxhIGFjY2Vzc2tleT0icCIgaHJlZj0iZGlzdC5yZWFkbWUtc29sYXJpcy5odG1sIj4mbHQ7Jmx0O6AxMi6gUkVBRE1FLnNvbGFyaXM8L2E+oDwvdGQ+Cis8dGQgd2lkdGg9IjIwJSIgYWxpZ249ImNlbnRlciI+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJpbmRleC5odG1sIj5VcDwvYT48L3RkPgorPHRkIHJvd3NwYW49IjIiIHdpZHRoPSI0MCUiIGFsaWduPSJyaWdodCI+oDxhIGFjY2Vzc2tleT0ibiIgaHJlZj0ibGljZW5zZS5ncGwuaHRtbCI+MS6gVGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNloCZndDsmZ3Q7PC9hPgorPC90ZD4KKzwvdHI+Cis8dHI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJjZW50ZXIiPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iaW5kZXguaHRtbCI+SG9tZTwvYT48L3RkPjwvdHI+Cis8L3RhYmxlPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9kb2NzL2h0bWwvbGstbWFudWFsLmh0bWwgYi9kb2NzL2h0bWwvbGstbWFudWFsLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDcxMzE0MwotLS0gL2Rldi9udWxsCisrKyBiL2RvY3MvaHRtbC9say1tYW51YWwuaHRtbApAQCAtMCwwICsxLDEzMSBAQAorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiPgorPHRpdGxlPjEzLqBMYWNrZXk6IGFuIGV4YW1wbGUgdG9vbDwvdGl0bGU+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJ2Z19iYXNpYy5jc3MiPgorPG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJEb2NCb29rIFhTTCBTdHlsZXNoZWV0cyBWMS43OC4xIj4KKzxsaW5rIHJlbD0iaG9tZSIgaHJlZj0iaW5kZXguaHRtbCIgdGl0bGU9IlZhbGdyaW5kIERvY3VtZW50YXRpb24iPgorPGxpbmsgcmVsPSJ1cCIgaHJlZj0ibWFudWFsLmh0bWwiIHRpdGxlPSJWYWxncmluZCBVc2VyIE1hbnVhbCI+Cis8bGluayByZWw9InByZXYiIGhyZWY9ImJidi1tYW51YWwuaHRtbCIgdGl0bGU9IjEyLqBCQlY6IGFuIGV4cGVyaW1lbnRhbCBiYXNpYyBibG9jayB2ZWN0b3IgZ2VuZXJhdGlvbiB0b29sIj4KKzxsaW5rIHJlbD0ibmV4dCIgaHJlZj0ibmwtbWFudWFsLmh0bWwiIHRpdGxlPSIxNC6gTnVsZ3JpbmQ6IHRoZSBtaW5pbWFsIFZhbGdyaW5kIHRvb2wiPgorPC9oZWFkPgorPGJvZHkgYmdjb2xvcj0id2hpdGUiIHRleHQ9ImJsYWNrIiBsaW5rPSIjMDAwMEZGIiB2bGluaz0iIzg0MDA4NCIgYWxpbms9IiMwMDAwRkYiPgorPGRpdj48dGFibGUgY2xhc3M9Im5hdiIgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSIzIiBjZWxscGFkZGluZz0iMyIgYm9yZGVyPSIwIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciI+PHRyPgorPHRkIHdpZHRoPSIyMnB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJwIiBocmVmPSJiYnYtbWFudWFsLmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvcHJldi5wbmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIyMSIgYm9yZGVyPSIwIiBhbHQ9IlByZXYiPjwvYT48L3RkPgorPHRkIHdpZHRoPSIyNXB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJtYW51YWwuaHRtbCI+PGltZyBzcmM9ImltYWdlcy91cC5wbmciIHdpZHRoPSIyMSIgaGVpZ2h0PSIxOCIgYm9yZGVyPSIwIiBhbHQ9IlVwIj48L2E+PC90ZD4KKzx0ZCB3aWR0aD0iMzFweCIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iaW5kZXguaHRtbCI+PGltZyBzcmM9ImltYWdlcy9ob21lLnBuZyIgd2lkdGg9IjI3IiBoZWlnaHQ9IjIwIiBib3JkZXI9IjAiIGFsdD0iVXAiPjwvYT48L3RkPgorPHRoIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj5WYWxncmluZCBVc2VyIE1hbnVhbDwvdGg+Cis8dGQgd2lkdGg9IjIycHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9Im4iIGhyZWY9Im5sLW1hbnVhbC5odG1sIj48aW1nIHNyYz0iaW1hZ2VzL25leHQucG5nIiB3aWR0aD0iMTgiIGhlaWdodD0iMjEiIGJvcmRlcj0iMCIgYWx0PSJOZXh0Ij48L2E+PC90ZD4KKzwvdHI+PC90YWJsZT48L2Rpdj4KKzxkaXYgY2xhc3M9ImNoYXB0ZXIiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgxIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJsay1tYW51YWwiPjwvYT4xMy6gTGFja2V5OiBhbiBleGFtcGxlIHRvb2w8L2gxPjwvZGl2PjwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0idG9jIj4KKzxwPjxiPlRhYmxlIG9mIENvbnRlbnRzPC9iPjwvcD4KKzxkbCBjbGFzcz0idG9jIj4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9ImxrLW1hbnVhbC5odG1sI2xrLW1hbnVhbC5vdmVydmlldyI+MTMuMS4gT3ZlcnZpZXc8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJsay1tYW51YWwuaHRtbCNsay1tYW51YWwub3B0aW9ucyI+MTMuMi4gTGFja2V5IENvbW1hbmQtbGluZSBPcHRpb25zPC9hPjwvc3Bhbj48L2R0PgorPC9kbD4KKzwvZGl2PgorPHA+VG8gdXNlIHRoaXMgdG9vbCwgeW91IG11c3Qgc3BlY2lmeQorPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS10b29sPWxhY2tleTwvY29kZT4gb24gdGhlIFZhbGdyaW5kCitjb21tYW5kIGxpbmUuPC9wPgorPGRpdiBjbGFzcz0ic2VjdDEiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj4KKzxhIG5hbWU9ImxrLW1hbnVhbC5vdmVydmlldyI+PC9hPjEzLjEuoE92ZXJ2aWV3PC9oMj48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPkxhY2tleSBpcyBhIHNpbXBsZSBWYWxncmluZCB0b29sIHRoYXQgZG9lcyB2YXJpb3VzIGtpbmRzIG9mIGJhc2ljCitwcm9ncmFtIG1lYXN1cmVtZW50LiAgSXQgYWRkcyBxdWl0ZSBhIGxvdCBvZiBzaW1wbGUgaW5zdHJ1bWVudGF0aW9uIHRvIHRoZQorcHJvZ3JhbSdzIGNvZGUuICBJdCBpcyBwcmltYXJpbHkgaW50ZW5kZWQgdG8gYmUgb2YgdXNlIGFzIGFuIGV4YW1wbGUgdG9vbCwKK2FuZCBjb25zZXF1ZW50bHkgZW1waGFzaXNlcyBjbGFyaXR5IG9mIGltcGxlbWVudGF0aW9uIG92ZXIKK3BlcmZvcm1hbmNlLjwvcD4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDEiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj4KKzxhIG5hbWU9ImxrLW1hbnVhbC5vcHRpb25zIj48L2E+MTMuMi6gTGFja2V5IENvbW1hbmQtbGluZSBPcHRpb25zPC9oMj48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPkxhY2tleS1zcGVjaWZpYyBjb21tYW5kLWxpbmUgb3B0aW9ucyBhcmU6PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij4KKzxhIG5hbWU9ImxrLm9wdHMubGlzdCI+PC9hPjxkbCBjbGFzcz0idmFyaWFibGVsaXN0Ij4KKzxkdD4KKzxhIG5hbWU9Im9wdC5iYXNpYy1jb3VudHMiPjwvYT48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWJhc2ljLWNvdW50cz0mbHQ7bm98eWVzJmd0OyBbZGVmYXVsdDogeWVzXSA8L2NvZGU+CisgICAgPC9zcGFuPgorPC9kdD4KKzxkZD4KKzxwPldoZW4gZW5hYmxlZCwgTGFja2V5IHByaW50cyB0aGUgZm9sbG93aW5nIHN0YXRpc3RpY3MgYW5kCisgICAgICBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZXhlY3V0aW9uIG9mIHRoZSBjbGllbnQgcHJvZ3JhbTo8L3A+Cis8ZGl2IGNsYXNzPSJvcmRlcmVkbGlzdCI+PG9sIGNsYXNzPSJvcmRlcmVkbGlzdCIgdHlwZT0iMSI+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5UaGUgbnVtYmVyIG9mIGNhbGxzIHRvIHRoZSBmdW5jdGlvbiBzcGVjaWZpZWQgYnkgdGhlCisgICAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tZm5uYW1lPC9jb2RlPiBvcHRpb24gKHRoZSBkZWZhdWx0IGlzCisgICAgICAgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+bWFpbjwvY29kZT4pLgorICAgICAgICBJZiB0aGUgcHJvZ3JhbSBoYXMgaGFkIGl0cyBzeW1ib2xzIHN0cmlwcGVkLCB0aGUgY291bnQgd2lsbCBhbHdheXMKKyAgICAgICAgYmUgemVyby48L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPlRoZSBudW1iZXIgb2YgY29uZGl0aW9uYWwgYnJhbmNoZXMgZW5jb3VudGVyZWQgYW5kIHRoZQorICAgICAgICBudW1iZXIgYW5kIHByb3BvcnRpb24gb2YgdGhvc2UgdGFrZW4uPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5UaGUgbnVtYmVyIG9mIHN1cGVyYmxvY2tzIGVudGVyZWQgYW5kIGNvbXBsZXRlZCBieSB0aGUKKyAgICAgICAgcHJvZ3JhbS4gIE5vdGUgdGhhdCBkdWUgdG8gb3B0aW1pc2F0aW9ucyBkb25lIGJ5IHRoZSBKSVQsIHRoaXMKKyAgICAgICAgaXMgbm90IGF0IGFsbCBhbiBhY2N1cmF0ZSB2YWx1ZS48L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPlRoZSBudW1iZXIgb2YgZ3Vlc3QgKHg4NiwgYW1kNjQsIHBwYywgZXRjLikgaW5zdHJ1Y3Rpb25zIGFuZCBJUgorICAgICAgICBzdGF0ZW1lbnRzIGV4ZWN1dGVkLiAgSVIgaXMgVmFsZ3JpbmQncyBSSVNDLWxpa2UgaW50ZXJtZWRpYXRlCisgICAgICAgIHJlcHJlc2VudGF0aW9uIHZpYSB3aGljaCBhbGwgaW5zdHJ1bWVudGF0aW9uIGlzIGRvbmUuCisgICAgICAgIDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+UmF0aW9zIGJldHdlZW4gc29tZSBvZiB0aGVzZSBjb3VudHMuPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5UaGUgZXhpdCBjb2RlIG9mIHRoZSBjbGllbnQgcHJvZ3JhbS48L3A+PC9saT4KKzwvb2w+PC9kaXY+Cis8L2RkPgorPGR0PgorPGEgbmFtZT0ib3B0LmRldGFpbGVkLWNvdW50cyI+PC9hPjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tZGV0YWlsZWQtY291bnRzPSZsdDtub3x5ZXMmZ3Q7IFtkZWZhdWx0OiBub10gPC9jb2RlPgorICAgIDwvc3Bhbj4KKzwvZHQ+Cis8ZGQ+PHA+V2hlbiBlbmFibGVkLCBMYWNrZXkgcHJpbnRzIGEgdGFibGUgY29udGFpbmluZyBjb3VudHMgb2YgbG9hZHMsCisgICAgICBzdG9yZXMgYW5kIEFMVSBvcGVyYXRpb25zLCBkaWZmZXJlbnRpYXRlZCBieSB0aGVpciBJUiB0eXBlcy4KKyAgICAgIFRoZSBJUiB0eXBlcyBhcmUgaWRlbnRpZmllZCBieSB0aGVpciBJUiBuYW1lICgiSTEiLCAiSTgiLCAuLi4gIkkxMjgiLAorICAgICAgIkYzMiIsICJGNjQiLCBhbmQgIlYxMjgiKS48L3A+PC9kZD4KKzxkdD4KKzxhIG5hbWU9Im9wdC50cmFjZS1tZW0iPjwvYT48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXRyYWNlLW1lbT0mbHQ7bm98eWVzJmd0OyBbZGVmYXVsdDogbm9dIDwvY29kZT4KKyAgICA8L3NwYW4+Cis8L2R0PgorPGRkPjxwPldoZW4gZW5hYmxlZCwgTGFja2V5IHByaW50cyB0aGUgc2l6ZSBhbmQgYWRkcmVzcyBvZiBhbG1vc3QgZXZlcnkKKyAgICAgIG1lbW9yeSBhY2Nlc3MgbWFkZSBieSB0aGUgcHJvZ3JhbS4gIFNlZSB0aGUgY29tbWVudHMgYXQgdGhlIHRvcCBvZgorICAgICAgdGhlIGZpbGUgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5sYWNrZXkvbGtfbWFpbi5jPC9jb2RlPiBmb3IgZGV0YWlscworICAgICAgYWJvdXQgdGhlIG91dHB1dCBmb3JtYXQsIGhvdyBpdCB3b3JrcywgYW5kIGluYWNjdXJhY2llcyBpbiB0aGUgYWRkcmVzcworICAgICAgdHJhY2UuICBOb3RlIHRoYXQgdGhpcyBvcHRpb24gcHJvZHVjZXMgaW1tZW5zZSBhbW91bnRzIG9mIG91dHB1dC48L3A+PC9kZD4KKzxkdD4KKzxhIG5hbWU9Im9wdC50cmFjZS1zdXBlcmJsb2NrcyI+PC9hPjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tdHJhY2Utc3VwZXJibG9ja3M9Jmx0O25vfHllcyZndDsgW2RlZmF1bHQ6IG5vXSA8L2NvZGU+CisgICAgPC9zcGFuPgorPC9kdD4KKzxkZD48cD5XaGVuIGVuYWJsZWQsIAorICAgICAgTGFja2V5IHByaW50cyBvdXQgdGhlIGFkZHJlc3Mgb2YgZXZlcnkgc3VwZXJibG9jayAKKyAgICAgIChhIHNpbmdsZSBlbnRyeSwgbXVsdGlwbGUgZXhpdCwgbGluZWFyIGNodW5rIG9mIGNvZGUpIGV4ZWN1dGVkIGJ5IHRoZQorICAgICAgcHJvZ3JhbS4gIFRoaXMgaXMgcHJpbWFyaWx5IG9mIGludGVyZXN0IHRvIFZhbGdyaW5kIGRldmVsb3BlcnMuICBTZWUKKyAgICAgIHRoZSBjb21tZW50cyBhdCB0aGUgdG9wIG9mIHRoZSBmaWxlCisgICAgICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmxhY2tleS9sa19tYWluLmM8L2NvZGU+IGZvciBkZXRhaWxzIGFib3V0CisgICAgICB0aGUgb3V0cHV0IGZvcm1hdC4gIE5vdGUgdGhhdCB0aGlzIG9wdGlvbiBwcm9kdWNlcyBsYXJnZSBhbW91bnRzIG9mCisgICAgICBvdXRwdXQuPC9wPjwvZGQ+Cis8ZHQ+Cis8YSBuYW1lPSJvcHQuZm5uYW1lIj48L2E+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1mbm5hbWU9Jmx0O25hbWUmZ3Q7IFtkZWZhdWx0OiBtYWluXSA8L2NvZGU+CisgICAgPC9zcGFuPgorPC9kdD4KKzxkZD48cD5DaGFuZ2VzIHRoZSBmdW5jdGlvbiBmb3Igd2hpY2ggY2FsbHMgYXJlIGNvdW50ZWQgd2hlbgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1iYXNpYy1jb3VudHM9eWVzPC9jb2RlPiBpcyBzcGVjaWZpZWQuPC9wPjwvZGQ+Cis8L2RsPgorPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPGRpdj4KKzxicj48dGFibGUgY2xhc3M9Im5hdiIgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSIzIiBjZWxscGFkZGluZz0iMiIgYm9yZGVyPSIwIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGZvb3RlciI+Cis8dHI+Cis8dGQgcm93c3Bhbj0iMiIgd2lkdGg9IjQwJSIgYWxpZ249ImxlZnQiPgorPGEgYWNjZXNza2V5PSJwIiBocmVmPSJiYnYtbWFudWFsLmh0bWwiPiZsdDsmbHQ7oDEyLqBCQlY6IGFuIGV4cGVyaW1lbnRhbCBiYXNpYyBibG9jayB2ZWN0b3IgZ2VuZXJhdGlvbiB0b29sPC9hPqA8L3RkPgorPHRkIHdpZHRoPSIyMCUiIGFsaWduPSJjZW50ZXIiPjxhIGFjY2Vzc2tleT0idSIgaHJlZj0ibWFudWFsLmh0bWwiPlVwPC9hPjwvdGQ+Cis8dGQgcm93c3Bhbj0iMiIgd2lkdGg9IjQwJSIgYWxpZ249InJpZ2h0Ij6gPGEgYWNjZXNza2V5PSJuIiBocmVmPSJubC1tYW51YWwuaHRtbCI+MTQuoE51bGdyaW5kOiB0aGUgbWluaW1hbCBWYWxncmluZCB0b29soCZndDsmZ3Q7PC9hPgorPC90ZD4KKzwvdHI+Cis8dHI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJjZW50ZXIiPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iaW5kZXguaHRtbCI+SG9tZTwvYT48L3RkPjwvdHI+Cis8L3RhYmxlPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9kb2NzL2h0bWwvbWFudWFsLWNvcmUtYWR2Lmh0bWwgYi9kb2NzL2h0bWwvbWFudWFsLWNvcmUtYWR2Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGU2NzM4YwotLS0gL2Rldi9udWxsCisrKyBiL2RvY3MvaHRtbC9tYW51YWwtY29yZS1hZHYuaHRtbApAQCAtMCwwICsxLDE2OTAgQEAKKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj4KKzx0aXRsZT4zLqBVc2luZyBhbmQgdW5kZXJzdGFuZGluZyB0aGUgVmFsZ3JpbmQgY29yZTogQWR2YW5jZWQgVG9waWNzPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9InZnX2Jhc2ljLmNzcyI+Cis8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkRvY0Jvb2sgWFNMIFN0eWxlc2hlZXRzIFYxLjc4LjEiPgorPGxpbmsgcmVsPSJob21lIiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0iVmFsZ3JpbmQgRG9jdW1lbnRhdGlvbiI+Cis8bGluayByZWw9InVwIiBocmVmPSJtYW51YWwuaHRtbCIgdGl0bGU9IlZhbGdyaW5kIFVzZXIgTWFudWFsIj4KKzxsaW5rIHJlbD0icHJldiIgaHJlZj0ibWFudWFsLWNvcmUuaHRtbCIgdGl0bGU9IjIuoFVzaW5nIGFuZCB1bmRlcnN0YW5kaW5nIHRoZSBWYWxncmluZCBjb3JlIj4KKzxsaW5rIHJlbD0ibmV4dCIgaHJlZj0ibWMtbWFudWFsLmh0bWwiIHRpdGxlPSI0LqBNZW1jaGVjazogYSBtZW1vcnkgZXJyb3IgZGV0ZWN0b3IiPgorPC9oZWFkPgorPGJvZHkgYmdjb2xvcj0id2hpdGUiIHRleHQ9ImJsYWNrIiBsaW5rPSIjMDAwMEZGIiB2bGluaz0iIzg0MDA4NCIgYWxpbms9IiMwMDAwRkYiPgorPGRpdj48dGFibGUgY2xhc3M9Im5hdiIgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSIzIiBjZWxscGFkZGluZz0iMyIgYm9yZGVyPSIwIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciI+PHRyPgorPHRkIHdpZHRoPSIyMnB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJwIiBocmVmPSJtYW51YWwtY29yZS5odG1sIj48aW1nIHNyYz0iaW1hZ2VzL3ByZXYucG5nIiB3aWR0aD0iMTgiIGhlaWdodD0iMjEiIGJvcmRlcj0iMCIgYWx0PSJQcmV2Ij48L2E+PC90ZD4KKzx0ZCB3aWR0aD0iMjVweCIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPjxhIGFjY2Vzc2tleT0idSIgaHJlZj0ibWFudWFsLmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvdXAucG5nIiB3aWR0aD0iMjEiIGhlaWdodD0iMTgiIGJvcmRlcj0iMCIgYWx0PSJVcCI+PC9hPjwvdGQ+Cis8dGQgd2lkdGg9IjMxcHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvaG9tZS5wbmciIHdpZHRoPSIyNyIgaGVpZ2h0PSIyMCIgYm9yZGVyPSIwIiBhbHQ9IlVwIj48L2E+PC90ZD4KKzx0aCBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+VmFsZ3JpbmQgVXNlciBNYW51YWw8L3RoPgorPHRkIHdpZHRoPSIyMnB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJuIiBocmVmPSJtYy1tYW51YWwuaHRtbCI+PGltZyBzcmM9ImltYWdlcy9uZXh0LnBuZyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjIxIiBib3JkZXI9IjAiIGFsdD0iTmV4dCI+PC9hPjwvdGQ+Cis8L3RyPjwvdGFibGU+PC9kaXY+Cis8ZGl2IGNsYXNzPSJjaGFwdGVyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMSBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0ibWFudWFsLWNvcmUtYWR2Ij48L2E+My6gVXNpbmcgYW5kIHVuZGVyc3RhbmRpbmcgdGhlIFZhbGdyaW5kIGNvcmU6IEFkdmFuY2VkIFRvcGljczwvaDE+PC9kaXY+PC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJ0b2MiPgorPHA+PGI+VGFibGUgb2YgQ29udGVudHM8L2I+PC9wPgorPGRsIGNsYXNzPSJ0b2MiPgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0ibWFudWFsLWNvcmUtYWR2Lmh0bWwjbWFudWFsLWNvcmUtYWR2LmNsaWVudHJlcSI+My4xLiBUaGUgQ2xpZW50IFJlcXVlc3QgbWVjaGFuaXNtPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0ibWFudWFsLWNvcmUtYWR2Lmh0bWwjbWFudWFsLWNvcmUtYWR2LmdkYnNlcnZlciI+My4yLiBEZWJ1Z2dpbmcgeW91ciBwcm9ncmFtIHVzaW5nIFZhbGdyaW5kIGdkYnNlcnZlciBhbmQgR0RCPC9hPjwvc3Bhbj48L2R0PgorPGRkPjxkbD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9Im1hbnVhbC1jb3JlLWFkdi5odG1sI21hbnVhbC1jb3JlLWFkdi5nZGJzZXJ2ZXItc2ltcGxlIj4zLjIuMS4gUXVpY2sgU3RhcnQ6IGRlYnVnZ2luZyBpbiAzIHN0ZXBzPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0ibWFudWFsLWNvcmUtYWR2Lmh0bWwjbWFudWFsLWNvcmUtYWR2LmdkYnNlcnZlci1jb25jZXB0Ij4zLjIuMi4gVmFsZ3JpbmQgZ2Ric2VydmVyIG92ZXJhbGwgb3JnYW5pc2F0aW9uPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0ibWFudWFsLWNvcmUtYWR2Lmh0bWwjbWFudWFsLWNvcmUtYWR2LmdkYnNlcnZlci1nZGIiPjMuMi4zLiBDb25uZWN0aW5nIEdEQiB0byBhIFZhbGdyaW5kIGdkYnNlcnZlcjwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9Im1hbnVhbC1jb3JlLWFkdi5odG1sI21hbnVhbC1jb3JlLWFkdi5nZGJzZXJ2ZXItZ2RiLWFuZHJvaWQiPjMuMi40LiBDb25uZWN0aW5nIHRvIGFuIEFuZHJvaWQgZ2Ric2VydmVyPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0ibWFudWFsLWNvcmUtYWR2Lmh0bWwjbWFudWFsLWNvcmUtYWR2LmdkYnNlcnZlci1jb21tYW5kaGFuZGxpbmciPjMuMi41LiBNb25pdG9yIGNvbW1hbmQgaGFuZGxpbmcgYnkgdGhlIFZhbGdyaW5kIGdkYnNlcnZlcjwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9Im1hbnVhbC1jb3JlLWFkdi5odG1sI21hbnVhbC1jb3JlLWFkdi5nZGJzZXJ2ZXItdGhyZWFkcyI+My4yLjYuIFZhbGdyaW5kIGdkYnNlcnZlciB0aHJlYWQgaW5mb3JtYXRpb248L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJtYW51YWwtY29yZS1hZHYuaHRtbCNtYW51YWwtY29yZS1hZHYuZ2Ric2VydmVyLXNoYWRvd3JlZ2lzdGVycyI+My4yLjcuIEV4YW1pbmluZyBhbmQgbW9kaWZ5aW5nIFZhbGdyaW5kIHNoYWRvdyByZWdpc3RlcnM8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJtYW51YWwtY29yZS1hZHYuaHRtbCNtYW51YWwtY29yZS1hZHYuZ2Ric2VydmVyLWxpbWl0YXRpb25zIj4zLjIuOC4gTGltaXRhdGlvbnMgb2YgdGhlIFZhbGdyaW5kIGdkYnNlcnZlcjwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9Im1hbnVhbC1jb3JlLWFkdi5odG1sI21hbnVhbC1jb3JlLWFkdi52Z2RiIj4zLjIuOS4gdmdkYiBjb21tYW5kIGxpbmUgb3B0aW9uczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9Im1hbnVhbC1jb3JlLWFkdi5odG1sI21hbnVhbC1jb3JlLWFkdi52YWxncmluZC1tb25pdG9yLWNvbW1hbmRzIj4zLjIuMTAuIFZhbGdyaW5kIG1vbml0b3IgY29tbWFuZHM8L2E+PC9zcGFuPjwvZHQ+Cis8L2RsPjwvZGQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJtYW51YWwtY29yZS1hZHYuaHRtbCNtYW51YWwtY29yZS1hZHYud3JhcHBpbmciPjMuMy4gRnVuY3Rpb24gd3JhcHBpbmc8L2E+PC9zcGFuPjwvZHQ+Cis8ZGQ+PGRsPgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0ibWFudWFsLWNvcmUtYWR2Lmh0bWwjbWFudWFsLWNvcmUtYWR2LndyYXBwaW5nLmV4YW1wbGUiPjMuMy4xLiBBIFNpbXBsZSBFeGFtcGxlPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0ibWFudWFsLWNvcmUtYWR2Lmh0bWwjbWFudWFsLWNvcmUtYWR2LndyYXBwaW5nLnNwZWNzIj4zLjMuMi4gV3JhcHBpbmcgU3BlY2lmaWNhdGlvbnM8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJtYW51YWwtY29yZS1hZHYuaHRtbCNtYW51YWwtY29yZS1hZHYud3JhcHBpbmcuc2VtYW50aWNzIj4zLjMuMy4gV3JhcHBpbmcgU2VtYW50aWNzPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0ibWFudWFsLWNvcmUtYWR2Lmh0bWwjbWFudWFsLWNvcmUtYWR2LndyYXBwaW5nLmRlYnVnZ2luZyI+My4zLjQuIERlYnVnZ2luZzwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9Im1hbnVhbC1jb3JlLWFkdi5odG1sI21hbnVhbC1jb3JlLWFkdi53cmFwcGluZy5saW1pdGF0aW9ucy1jZiI+My4zLjUuIExpbWl0YXRpb25zIC0gY29udHJvbCBmbG93PC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0ibWFudWFsLWNvcmUtYWR2Lmh0bWwjbWFudWFsLWNvcmUtYWR2LndyYXBwaW5nLmxpbWl0YXRpb25zLXNpZ3MiPjMuMy42LiBMaW1pdGF0aW9ucyAtIG9yaWdpbmFsIGZ1bmN0aW9uIHNpZ25hdHVyZXM8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJtYW51YWwtY29yZS1hZHYuaHRtbCNtYW51YWwtY29yZS1hZHYud3JhcHBpbmcuZXhhbXBsZXMiPjMuMy43LiBFeGFtcGxlczwvYT48L3NwYW4+PC9kdD4KKzwvZGw+PC9kZD4KKzwvZGw+Cis8L2Rpdj4KKzxwPlRoaXMgY2hhcHRlciBkZXNjcmliZXMgYWR2YW5jZWQgYXNwZWN0cyBvZiB0aGUgVmFsZ3JpbmQgY29yZQorc2VydmljZXMsIHdoaWNoIGFyZSBtb3N0bHkgb2YgaW50ZXJlc3QgdG8gcG93ZXIgdXNlcnMgd2hvIHdpc2ggdG8KK2N1c3RvbWlzZSBhbmQgbW9kaWZ5IFZhbGdyaW5kJ3MgZGVmYXVsdCBiZWhhdmlvdXJzIGluIGNlcnRhaW4gdXNlZnVsCit3YXlzLiAgVGhlIHN1YmplY3RzIGNvdmVyZWQgYXJlOjwvcD4KKzxkaXYgY2xhc3M9Iml0ZW1pemVkbGlzdCI+PHVsIGNsYXNzPSJpdGVtaXplZGxpc3QiIHN0eWxlPSJsaXN0LXN0eWxlLXR5cGU6IGRpc2M7ICI+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5UaGUgIkNsaWVudCBSZXF1ZXN0IiBtZWNoYW5pc208L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPkRlYnVnZ2luZyB5b3VyIHByb2dyYW0gdXNpbmcgVmFsZ3JpbmQncyBnZGJzZXJ2ZXIKKyAgICAgIGFuZCBHREI8L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPkZ1bmN0aW9uIFdyYXBwaW5nPC9wPjwvbGk+Cis8L3VsPjwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDEiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj4KKzxhIG5hbWU9Im1hbnVhbC1jb3JlLWFkdi5jbGllbnRyZXEiPjwvYT4zLjEuoFRoZSBDbGllbnQgUmVxdWVzdCBtZWNoYW5pc208L2gyPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+VmFsZ3JpbmQgaGFzIGEgdHJhcGRvb3IgbWVjaGFuaXNtIHZpYSB3aGljaCB0aGUgY2xpZW50Citwcm9ncmFtIGNhbiBwYXNzIGFsbCBtYW5uZXIgb2YgcmVxdWVzdHMgYW5kIHF1ZXJpZXMgdG8gVmFsZ3JpbmQKK2FuZCB0aGUgY3VycmVudCB0b29sLiAgSW50ZXJuYWxseSwgdGhpcyBpcyB1c2VkIGV4dGVuc2l2ZWx5IAordG8gbWFrZSB2YXJpb3VzIHRoaW5ncyB3b3JrLCBhbHRob3VnaCB0aGF0J3Mgbm90IHZpc2libGUgZnJvbSB0aGUKK291dHNpZGUuPC9wPgorPHA+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGEgc3Vic2V0IG9mIHRoZXNlIHNvLWNhbGxlZCBjbGllbnQKK3JlcXVlc3RzIGlzIHByb3ZpZGVkIHRvIGFsbG93IHlvdSB0byB0ZWxsIFZhbGdyaW5kIGZhY3RzIGFib3V0Cit0aGUgYmVoYXZpb3VyIG9mIHlvdXIgcHJvZ3JhbSwgYW5kIGFsc28gdG8gbWFrZSBxdWVyaWVzLgorSW4gcGFydGljdWxhciwgeW91ciBwcm9ncmFtIGNhbiB0ZWxsIFZhbGdyaW5kIGFib3V0IHRoaW5ncyB0aGF0IGl0CitvdGhlcndpc2Ugd291bGQgbm90IGtub3csIGxlYWRpbmcgdG8gYmV0dGVyIHJlc3VsdHMuCis8L3A+Cis8cD5DbGllbnRzIG5lZWQgdG8gaW5jbHVkZSBhIGhlYWRlciBmaWxlIHRvIG1ha2UgdGhpcyB3b3JrLgorV2hpY2ggaGVhZGVyIGZpbGUgZGVwZW5kcyBvbiB3aGljaCBjbGllbnQgcmVxdWVzdHMgeW91IHVzZS4gIFNvbWUKK2NsaWVudCByZXF1ZXN0cyBhcmUgaGFuZGxlZCBieSB0aGUgY29yZSwgYW5kIGFyZSBkZWZpbmVkIGluIHRoZQoraGVhZGVyIGZpbGUgPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj52YWxncmluZC92YWxncmluZC5oPC9jb2RlPi4gIFRvb2wtc3BlY2lmaWMKK2hlYWRlciBmaWxlcyBhcmUgbmFtZWQgYWZ0ZXIgdGhlIHRvb2wsIGUuZy4KKzxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+dmFsZ3JpbmQvbWVtY2hlY2suaDwvY29kZT4uICBFYWNoIHRvb2wtc3BlY2lmaWMgaGVhZGVyIGZpbGUKK2luY2x1ZGVzIDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+dmFsZ3JpbmQvdmFsZ3JpbmQuaDwvY29kZT4gc28geW91IGRvbid0IG5lZWQgdG8KK2luY2x1ZGUgaXQgaW4geW91ciBjbGllbnQgaWYgeW91IGluY2x1ZGUgYSB0b29sLXNwZWNpZmljIGhlYWRlci4gIEFsbCBoZWFkZXIKK2ZpbGVzIGNhbiBiZSBmb3VuZCBpbiB0aGUgPGNvZGUgY2xhc3M9ImxpdGVyYWwiPmluY2x1ZGUvdmFsZ3JpbmQ8L2NvZGU+IGRpcmVjdG9yeSBvZgord2hlcmV2ZXIgVmFsZ3JpbmQgd2FzIGluc3RhbGxlZC48L3A+Cis8cD5UaGUgbWFjcm9zIGluIHRoZXNlIGhlYWRlciBmaWxlcyBoYXZlIHRoZSBtYWdpY2FsIHByb3BlcnR5Cit0aGF0IHRoZXkgZ2VuZXJhdGUgY29kZSBpbi1saW5lIHdoaWNoIFZhbGdyaW5kIGNhbiBzcG90LgorSG93ZXZlciwgdGhlIGNvZGUgZG9lcyBub3RoaW5nIHdoZW4gbm90IHJ1biBvbiBWYWxncmluZCwgc28geW91CithcmUgbm90IGZvcmNlZCB0byBydW4geW91ciBwcm9ncmFtIHVuZGVyIFZhbGdyaW5kIGp1c3QgYmVjYXVzZSB5b3UKK3VzZSB0aGUgbWFjcm9zIGluIHRoaXMgZmlsZS4gIEFsc28sIHlvdSBhcmUgbm90IHJlcXVpcmVkIHRvIGxpbmsgeW91cgorcHJvZ3JhbSB3aXRoIGFueSBleHRyYSBzdXBwb3J0aW5nIGxpYnJhcmllcy48L3A+Cis8cD5UaGUgY29kZSBhZGRlZCB0byB5b3VyIGJpbmFyeSBoYXMgbmVnbGlnaWJsZSBwZXJmb3JtYW5jZSBpbXBhY3Q6CitvbiB4ODYsIGFtZDY0LCBwcGMzMiwgcHBjNjQgYW5kIEFSTSwgdGhlIG92ZXJoZWFkIGlzIDYgc2ltcGxlIGludGVnZXIKK2luc3RydWN0aW9ucyBhbmQgaXMgcHJvYmFibHkgdW5kZXRlY3RhYmxlIGV4Y2VwdCBpbiB0aWdodCBsb29wcy4KK0hvd2V2ZXIsIGlmIHlvdSByZWFsbHkgd2lzaCB0byBjb21waWxlIG91dCB0aGUgY2xpZW50IHJlcXVlc3RzLCB5b3UKK2NhbiBjb21waWxlIHdpdGggPGNvZGUgY2xhc3M9Im9wdGlvbiI+LUROVkFMR1JJTkQ8L2NvZGU+IChhbmFsb2dvdXMgdG8KKzxjb2RlIGNsYXNzPSJvcHRpb24iPi1ETkRFQlVHPC9jb2RlPidzIGVmZmVjdCBvbgorPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5hc3NlcnQ8L2NvZGU+KS4KKzwvcD4KKzxwPllvdSBhcmUgZW5jb3VyYWdlZCB0byBjb3B5IHRoZSA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPnZhbGdyaW5kLyouaDwvY29kZT4gaGVhZGVycworaW50byB5b3VyIHByb2plY3QncyBpbmNsdWRlIGRpcmVjdG9yeSwgc28geW91ciBwcm9ncmFtIGRvZXNuJ3QgaGF2ZSBhCitjb21waWxlLXRpbWUgZGVwZW5kZW5jeSBvbiBWYWxncmluZCBiZWluZyBpbnN0YWxsZWQuICBUaGUgVmFsZ3JpbmQgaGVhZGVycywKK3VubGlrZSBtb3N0IG9mIHRoZSByZXN0IG9mIHRoZSBjb2RlLCBhcmUgdW5kZXIgYSBCU0Qtc3R5bGUgbGljZW5zZSBzbyB5b3UgbWF5CitpbmNsdWRlIHRoZW0gd2l0aG91dCB3b3JyeWluZyBhYm91dCBsaWNlbnNlIGluY29tcGF0aWJpbGl0eS48L3A+Cis8cD5IZXJlIGlzIGEgYnJpZWYgZGVzY3JpcHRpb24gb2YgdGhlIG1hY3JvcyBhdmFpbGFibGUgaW4KKzxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+dmFsZ3JpbmQuaDwvY29kZT4sIHdoaWNoIHdvcmsgd2l0aCBtb3JlIHRoYW4gb25lCit0b29sIChzZWUgdGhlIHRvb2wtc3BlY2lmaWMgZG9jdW1lbnRhdGlvbiBmb3IgZXhwbGFuYXRpb25zIG9mIHRoZQordG9vbC1zcGVjaWZpYyBtYWNyb3MpLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PGRsIGNsYXNzPSJ2YXJpYWJsZWxpc3QiPgorPGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj48c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz48Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPlJVTk5JTkdfT05fVkFMR1JJTkQ8L2NvZGU+PC9zdHJvbmc+PC9zcGFuPjo8L3NwYW4+PC9kdD4KKzxkZD48cD5SZXR1cm5zIDEgaWYgcnVubmluZyBvbiBWYWxncmluZCwgMCBpZiBydW5uaW5nIG9uIHRoZQorICAgIHJlYWwgQ1BVLiAgSWYgeW91IGFyZSBydW5uaW5nIFZhbGdyaW5kIG9uIGl0c2VsZiwgcmV0dXJucyB0aGUKKyAgICBudW1iZXIgb2YgbGF5ZXJzIG9mIFZhbGdyaW5kIGVtdWxhdGlvbiB5b3UncmUgcnVubmluZyBvbi4KKyAgICA8L3A+PC9kZD4KKzxkdD48c3BhbiBjbGFzcz0idGVybSI+PHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+PGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5WQUxHUklORF9ESVNDQVJEX1RSQU5TTEFUSU9OUzwvY29kZT46PC9zdHJvbmc+PC9zcGFuPjwvc3Bhbj48L2R0PgorPGRkPgorPHA+RGlzY2FyZHMgdHJhbnNsYXRpb25zIG9mIGNvZGUgaW4gdGhlIHNwZWNpZmllZCBhZGRyZXNzCisgICAgcmFuZ2UuICBVc2VmdWwgaWYgeW91IGFyZSBkZWJ1Z2dpbmcgYSBKSVQgY29tcGlsZXIgb3Igc29tZSBvdGhlcgorICAgIGR5bmFtaWMgY29kZSBnZW5lcmF0aW9uIHN5c3RlbS4gIEFmdGVyIHRoaXMgY2FsbCwgYXR0ZW1wdHMgdG8KKyAgICBleGVjdXRlIGNvZGUgaW4gdGhlIGludmFsaWRhdGVkIGFkZHJlc3MgcmFuZ2Ugd2lsbCBjYXVzZQorICAgIFZhbGdyaW5kIHRvIG1ha2UgbmV3IHRyYW5zbGF0aW9ucyBvZiB0aGF0IGNvZGUsIHdoaWNoIGlzCisgICAgcHJvYmFibHkgdGhlIHNlbWFudGljcyB5b3Ugd2FudC4gIE5vdGUgdGhhdCBjb2RlIGludmFsaWRhdGlvbnMKKyAgICBhcmUgZXhwZW5zaXZlIGJlY2F1c2UgZmluZGluZyBhbGwgdGhlIHJlbGV2YW50IHRyYW5zbGF0aW9ucworICAgIHF1aWNrbHkgaXMgdmVyeSBkaWZmaWN1bHQsIHNvIHRyeSBub3QgdG8gY2FsbCBpdCBvZnRlbi4KKyAgICBOb3RlIHRoYXQgeW91IGNhbiBiZSBjbGV2ZXIgYWJvdXQKKyAgICB0aGlzOiB5b3Ugb25seSBuZWVkIHRvIGNhbGwgaXQgd2hlbiBhbiBhcmVhIHdoaWNoIHByZXZpb3VzbHkKKyAgICBjb250YWluZWQgY29kZSBpcyBvdmVyd3JpdHRlbiB3aXRoIG5ldyBjb2RlLiAgWW91IGNhbiBjaG9vc2UKKyAgICB0byB3cml0ZSBjb2RlIGludG8gZnJlc2ggbWVtb3J5LCBhbmQganVzdCBjYWxsIHRoaXMKKyAgICBvY2Nhc2lvbmFsbHkgdG8gZGlzY2FyZCBsYXJnZSBjaHVua3Mgb2Ygb2xkIGNvZGUgYWxsIGF0CisgICAgb25jZS48L3A+Cis8cD4KKyAgICBBbHRlcm5hdGl2ZWx5LCBmb3IgdHJhbnNwYXJlbnQgc2VsZi1tb2RpZnlpbmctY29kZSBzdXBwb3J0LAorICAgIHVzZTxjb2RlIGNsYXNzPSJvcHRpb24iPi0tc21jLWNoZWNrPWFsbDwvY29kZT4sIG9yIHJ1bgorICAgIG9uIHBwYzMyL0xpbnV4LCBwcGM2NC9MaW51eCBvciBBUk0vTGludXguCisgICAgPC9wPgorPC9kZD4KKzxkdD48c3BhbiBjbGFzcz0idGVybSI+PHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+PGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5WQUxHUklORF9DT1VOVF9FUlJPUlM8L2NvZGU+Ojwvc3Ryb25nPjwvc3Bhbj48L3NwYW4+PC9kdD4KKzxkZD48cD5SZXR1cm5zIHRoZSBudW1iZXIgb2YgZXJyb3JzIGZvdW5kIHNvIGZhciBieSBWYWxncmluZC4gIENhbiBiZQorICAgIHVzZWZ1bCBpbiB0ZXN0IGhhcm5lc3MgY29kZSB3aGVuIGNvbWJpbmVkIHdpdGggdGhlCisgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1sb2ctZmQ9LTE8L2NvZGU+IG9wdGlvbjsgdGhpcyBydW5zIFZhbGdyaW5kIHNpbGVudGx5LAorICAgIGJ1dCB0aGUgY2xpZW50IHByb2dyYW0gY2FuIGRldGVjdCB3aGVuIGVycm9ycyBvY2N1ci4gIE9ubHkgdXNlZnVsCisgICAgZm9yIHRvb2xzIHRoYXQgcmVwb3J0IGVycm9ycywgZS5nLiBpdCdzIHVzZWZ1bCBmb3IgTWVtY2hlY2ssIGJ1dCBmb3IKKyAgICBDYWNoZWdyaW5kIGl0IHdpbGwgYWx3YXlzIHJldHVybiB6ZXJvIGJlY2F1c2UgQ2FjaGVncmluZCBkb2Vzbid0CisgICAgcmVwb3J0IGVycm9ycy48L3A+PC9kZD4KKzxkdD48c3BhbiBjbGFzcz0idGVybSI+PHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+PGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5WQUxHUklORF9NQUxMT0NMSUtFX0JMT0NLPC9jb2RlPjo8L3N0cm9uZz48L3NwYW4+PC9zcGFuPjwvZHQ+Cis8ZGQ+PHA+SWYgeW91ciBwcm9ncmFtIG1hbmFnZXMgaXRzIG93biBtZW1vcnkgaW5zdGVhZCBvZiB1c2luZworICAgIHRoZSBzdGFuZGFyZCA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPm1hbGxvYzwvY29kZT4gLworICAgIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+bmV3PC9jb2RlPiAvCisgICAgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5uZXdbXTwvY29kZT4sIHRvb2xzIHRoYXQgdHJhY2sKKyAgICBpbmZvcm1hdGlvbiBhYm91dCBoZWFwIGJsb2NrcyB3aWxsIG5vdCBkbyBuZWFybHkgYXMgZ29vZCBhCisgICAgam9iLiAgRm9yIGV4YW1wbGUsIE1lbWNoZWNrIHdvbid0IGRldGVjdCBuZWFybHkgYXMgbWFueQorICAgIGVycm9ycywgYW5kIHRoZSBlcnJvciBtZXNzYWdlcyB3b24ndCBiZSBhcyBpbmZvcm1hdGl2ZS4gIFRvCisgICAgaW1wcm92ZSB0aGlzIHNpdHVhdGlvbiwgdXNlIHRoaXMgbWFjcm8ganVzdCBhZnRlciB5b3VyIGN1c3RvbQorICAgIGFsbG9jYXRvciBhbGxvY2F0ZXMgc29tZSBuZXcgbWVtb3J5LiAgU2VlIHRoZSBjb21tZW50cyBpbgorICAgIDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+dmFsZ3JpbmQuaDwvY29kZT4gZm9yIGluZm9ybWF0aW9uIG9uIGhvdyB0byB1c2UKKyAgICBpdC48L3A+PC9kZD4KKzxkdD48c3BhbiBjbGFzcz0idGVybSI+PHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+PGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5WQUxHUklORF9GUkVFTElLRV9CTE9DSzwvY29kZT46PC9zdHJvbmc+PC9zcGFuPjwvc3Bhbj48L2R0PgorPGRkPjxwPlRoaXMgc2hvdWxkIGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aAorICAgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+VkFMR1JJTkRfTUFMTE9DTElLRV9CTE9DSzwvY29kZT4uCisgICAgQWdhaW4sIHNlZSA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPnZhbGdyaW5kLmg8L2NvZGU+IGZvcgorICAgIGluZm9ybWF0aW9uIG9uIGhvdyB0byB1c2UgaXQuPC9wPjwvZGQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPjxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPjxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+VkFMR1JJTkRfUkVTSVpFSU5QTEFDRV9CTE9DSzwvY29kZT46PC9zdHJvbmc+PC9zcGFuPjwvc3Bhbj48L2R0PgorPGRkPjxwPkluZm9ybXMgYSBWYWxncmluZCB0b29sIHRoYXQgdGhlIHNpemUgb2YgYW4gYWxsb2NhdGVkIGJsb2NrIGhhcyBiZWVuCisgICAgbW9kaWZpZWQgYnV0IG5vdCBpdHMgYWRkcmVzcy4gU2VlIDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+dmFsZ3JpbmQuaDwvY29kZT4gZm9yCisgICAgbW9yZSBpbmZvcm1hdGlvbiBvbiBob3cgdG8gdXNlIGl0LjwvcD48L2RkPgorPGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgIDxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPjxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+VkFMR1JJTkRfQ1JFQVRFX01FTVBPT0w8L2NvZGU+PC9zdHJvbmc+PC9zcGFuPiwKKyAgIDxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPjxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+VkFMR1JJTkRfREVTVFJPWV9NRU1QT09MPC9jb2RlPjwvc3Ryb25nPjwvc3Bhbj4sCisgICA8c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz48Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPlZBTEdSSU5EX01FTVBPT0xfQUxMT0M8L2NvZGU+PC9zdHJvbmc+PC9zcGFuPiwKKyAgIDxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPjxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+VkFMR1JJTkRfTUVNUE9PTF9GUkVFPC9jb2RlPjwvc3Ryb25nPjwvc3Bhbj4sCisgICA8c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz48Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPlZBTEdSSU5EX01PVkVfTUVNUE9PTDwvY29kZT48L3N0cm9uZz48L3NwYW4+LAorICAgPHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+PGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5WQUxHUklORF9NRU1QT09MX0NIQU5HRTwvY29kZT48L3N0cm9uZz48L3NwYW4+LAorICAgPHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+PGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5WQUxHUklORF9NRU1QT09MX0VYSVNUUzwvY29kZT48L3N0cm9uZz48L3NwYW4+OgorICAgPC9zcGFuPjwvZHQ+Cis8ZGQ+PHA+VGhlc2UgYXJlIHNpbWlsYXIgdG8gCisgICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5WQUxHUklORF9NQUxMT0NMSUtFX0JMT0NLPC9jb2RlPiBhbmQKKyAgICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPlZBTEdSSU5EX0ZSRUVMSUtFX0JMT0NLPC9jb2RlPgorICAgIGJ1dCBhcmUgdGFpbG9yZWQgdG93YXJkcyBjb2RlIHRoYXQgdXNlcyBtZW1vcnkgcG9vbHMuICBTZWUgCisgICAgPGEgY2xhc3M9InhyZWYiIGhyZWY9Im1jLW1hbnVhbC5odG1sI21jLW1hbnVhbC5tZW1wb29scyIgdGl0bGU9IjQuOC6gTWVtb3J5IFBvb2xzOiBkZXNjcmliaW5nIGFuZCB3b3JraW5nIHdpdGggY3VzdG9tIGFsbG9jYXRvcnMiPk1lbW9yeSBQb29sczwvYT4gZm9yIGEgZGV0YWlsZWQgZGVzY3JpcHRpb24uPC9wPjwvZGQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPjxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPjxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+VkFMR1JJTkRfTk9OX1NJTURfQ0FMTFswMTIzXTwvY29kZT46PC9zdHJvbmc+PC9zcGFuPjwvc3Bhbj48L2R0PgorPGRkPgorPHA+RXhlY3V0ZXMgYSBmdW5jdGlvbiBpbiB0aGUgY2xpZW50IHByb2dyYW0gb24gdGhlCisgICAgPHNwYW4gY2xhc3M9ImVtcGhhc2lzIj48ZW0+cmVhbDwvZW0+PC9zcGFuPiBDUFUsIG5vdCB0aGUgdmlydHVhbCBDUFUgdGhhdCBWYWxncmluZAorICAgIG5vcm1hbGx5IHJ1bnMgY29kZSBvbi4gIFRoZSBmdW5jdGlvbiBtdXN0IHRha2UgYW4gaW50ZWdlciAoaG9sZGluZyBhCisgICAgdGhyZWFkIElEKSBhcyB0aGUgZmlyc3QgYXJndW1lbnQgYW5kIHRoZW4gMCwgMSwgMiBvciAzIG1vcmUgYXJndW1lbnRzCisgICAgKGRlcGVuZGluZyBvbiB3aGljaCBjbGllbnQgcmVxdWVzdCBpcyB1c2VkKS4gIFRoZXNlIGFyZSB1c2VkIGluIHZhcmlvdXMKKyAgICB3YXlzIGludGVybmFsbHkgdG8gVmFsZ3JpbmQuICBUaGV5IG1pZ2h0IGJlIHVzZWZ1bCB0byBjbGllbnQKKyAgICBwcm9ncmFtcy48L3A+Cis8cD48c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz5XYXJuaW5nOjwvc3Ryb25nPjwvc3Bhbj4gT25seSB1c2UgdGhlc2UgaWYgeW91CisgICAgPHNwYW4gY2xhc3M9ImVtcGhhc2lzIj48ZW0+cmVhbGx5PC9lbT48L3NwYW4+IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLiAgVGhleSBhcmVuJ3QgCisgICAgZW50aXJlbHkgcmVsaWFibGUsIGFuZCBjYW4gY2F1c2UgVmFsZ3JpbmQgdG8gY3Jhc2guICBTZWUKKyAgICA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPnZhbGdyaW5kLmg8L2NvZGU+IGZvciBtb3JlIGRldGFpbHMuCisgICAgPC9wPgorPC9kZD4KKzxkdD48c3BhbiBjbGFzcz0idGVybSI+PHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+PGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5WQUxHUklORF9QUklOVEYoZm9ybWF0LCAuLi4pPC9jb2RlPjo8L3N0cm9uZz48L3NwYW4+PC9zcGFuPjwvZHQ+Cis8ZGQ+PHA+UHJpbnQgYSBwcmludGYtc3R5bGUgbWVzc2FnZSB0byB0aGUgVmFsZ3JpbmQgbG9nIGZpbGUuICBUaGUKKyAgICBtZXNzYWdlIGlzIHByZWZpeGVkIHdpdGggdGhlIFBJRCBiZXR3ZWVuIGEgcGFpciBvZgorICAgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+Kio8L2NvZGU+IG1hcmtlcnMuICAoTGlrZSBhbGwgY2xpZW50IHJlcXVlc3RzLAorICAgIG5vdGhpbmcgaXMgb3V0cHV0IGlmIHRoZSBjbGllbnQgcHJvZ3JhbSBpcyBub3QgcnVubmluZyB1bmRlciBWYWxncmluZC4pCisgICAgT3V0cHV0IGlzIG5vdCBwcm9kdWNlZCB1bnRpbCBhIG5ld2xpbmUgaXMgZW5jb3VudGVyZWQsIG9yIHN1YnNlcXVlbnQKKyAgICBWYWxncmluZCBvdXRwdXQgaXMgcHJpbnRlZDsgdGhpcyBhbGxvd3MgeW91IHRvIGJ1aWxkIHVwIGEgc2luZ2xlIGxpbmUgb2YKKyAgICBvdXRwdXQgb3ZlciBtdWx0aXBsZSBjYWxscy4gIFJldHVybnMgdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIG91dHB1dCwKKyAgICBleGNsdWRpbmcgdGhlIFBJRCBwcmVmaXguPC9wPjwvZGQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPjxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPjxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+VkFMR1JJTkRfUFJJTlRGX0JBQ0tUUkFDRShmb3JtYXQsIC4uLik8L2NvZGU+Ojwvc3Ryb25nPjwvc3Bhbj48L3NwYW4+PC9kdD4KKzxkZD48cD5MaWtlIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+VkFMR1JJTkRfUFJJTlRGPC9jb2RlPiAoaW4KKyAgICBwYXJ0aWN1bGFyLCB0aGUgcmV0dXJuIHZhbHVlIGlzIGlkZW50aWNhbCksIGJ1dCBwcmludHMgYSBzdGFjayBiYWNrdHJhY2UKKyAgICBpbW1lZGlhdGVseSBhZnRlcndhcmRzLjwvcD48L2RkPgorPGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj48c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz48Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPlZBTEdSSU5EX01PTklUT1JfQ09NTUFORChjb21tYW5kKTwvY29kZT46PC9zdHJvbmc+PC9zcGFuPjwvc3Bhbj48L2R0PgorPGRkPjxwPkV4ZWN1dGUgdGhlIGdpdmVuIG1vbml0b3IgY29tbWFuZCAoYSBzdHJpbmcpLgorICAgIFJldHVybnMgMCBpZiBjb21tYW5kIGlzIHJlY29nbmlzZWQuIFJldHVybnMgMSBpZiBjb21tYW5kIGlzIG5vdCByZWNvZ25pc2VkLgorICAgIE5vdGUgdGhhdCBzb21lIG1vbml0b3IgY29tbWFuZHMgcHJvdmlkZSBhY2Nlc3MgdG8gYSBmdW5jdGlvbmFsaXR5CisgICAgYWxzbyBhY2Nlc3NpYmxlIHZpYSBhIHNwZWNpZmljIGNsaWVudCByZXF1ZXN0LiBGb3IgZXhhbXBsZSwKKyAgICBtZW1jaGVjayBsZWFrIHNlYXJjaCBjYW4gYmUgcmVxdWVzdGVkIGZyb20gdGhlIGNsaWVudCBwcm9ncmFtCisgICAgdXNpbmcgVkFMR1JJTkRfRE9fTEVBS19DSEVDSyBvciB2aWEgdGhlIG1vbml0b3IgY29tbWFuZCAibGVha19zZWFyY2giLgorICAgIE5vdGUgdGhhdCB0aGUgc3ludGF4IG9mIHRoZSBjb21tYW5kIHN0cmluZyBpcyBvbmx5IHZlcmlmaWVkIGF0CisgICAgcnVuLXRpbWUuIFNvLCBpZiBpdCBleGlzdHMsIGl0IGlzIHByZWZlcnJhYmxlIHRvIHVzZSBhIHNwZWNpZmljCisgICAgY2xpZW50IHJlcXVlc3QgdG8gaGF2ZSBiZXR0ZXIgY29tcGlsZSB0aW1lIHZlcmlmaWNhdGlvbnMgb2YgdGhlCisgICAgYXJndW1lbnRzLgorICAgIDwvcD48L2RkPgorPGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj48c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz48Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPlZBTEdSSU5EX1NUQUNLX1JFR0lTVEVSKHN0YXJ0LCBlbmQpPC9jb2RlPjo8L3N0cm9uZz48L3NwYW4+PC9zcGFuPjwvZHQ+Cis8ZGQ+Cis8cD5SZWdpc3RlcnMgYSBuZXcgc3RhY2suICBJbmZvcm1zIFZhbGdyaW5kIHRoYXQgdGhlIG1lbW9yeSByYW5nZQorICAgIGJldHdlZW4gc3RhcnQgYW5kIGVuZCBpcyBhIHVuaXF1ZSBzdGFjay4gIFJldHVybnMgYSBzdGFjayBpZGVudGlmaWVyCisgICAgdGhhdCBjYW4gYmUgdXNlZCB3aXRoIG90aGVyCisgICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5WQUxHUklORF9TVEFDS18qPC9jb2RlPiBjYWxscy48L3A+Cis8cD5WYWxncmluZCB3aWxsIHVzZSB0aGlzIGluZm9ybWF0aW9uIHRvIGRldGVybWluZSBpZiBhIGNoYW5nZQorICAgIHRvIHRoZSBzdGFjayBwb2ludGVyIGlzIGFuIGl0ZW0gcHVzaGVkIG9udG8gdGhlIHN0YWNrIG9yIGEgY2hhbmdlCisgICAgb3ZlciB0byBhIG5ldyBzdGFjay4gIFVzZSB0aGlzIGlmIHlvdSdyZSB1c2luZyBhIHVzZXItbGV2ZWwgdGhyZWFkCisgICAgcGFja2FnZSBhbmQgYXJlIG5vdGljaW5nIGNyYXNoZXMgaW4gc3RhY2sgdHJhY2UgcmVjb3JkaW5nIG9yCisgICAgc3B1cmlvdXMgZXJyb3JzIGZyb20gVmFsZ3JpbmQgYWJvdXQgdW5pbml0aWFsaXplZCBtZW1vcnkKKyAgICByZWFkcy48L3A+Cis8cD48c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz5XYXJuaW5nOjwvc3Ryb25nPjwvc3Bhbj4gVW5mb3J0dW5hdGVseSwgdGhpcyBjbGllbnQgcmVxdWVzdCBpcworICAgIHVucmVsaWFibGUgYW5kIGJlc3QgYXZvaWRlZC48L3A+Cis8L2RkPgorPGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj48c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz48Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPlZBTEdSSU5EX1NUQUNLX0RFUkVHSVNURVIoaWQpPC9jb2RlPjo8L3N0cm9uZz48L3NwYW4+PC9zcGFuPjwvZHQ+Cis8ZGQ+Cis8cD5EZXJlZ2lzdGVycyBhIHByZXZpb3VzbHkgcmVnaXN0ZXJlZCBzdGFjay4gIEluZm9ybXMKKyAgICBWYWxncmluZCB0aGF0IHByZXZpb3VzbHkgcmVnaXN0ZXJlZCBtZW1vcnkgcmFuZ2Ugd2l0aCBzdGFjayBpZAorICAgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+aWQ8L2NvZGU+IGlzIG5vIGxvbmdlciBhIHN0YWNrLjwvcD4KKzxwPjxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPldhcm5pbmc6PC9zdHJvbmc+PC9zcGFuPiBVbmZvcnR1bmF0ZWx5LCB0aGlzIGNsaWVudCByZXF1ZXN0IGlzCisgICAgdW5yZWxpYWJsZSBhbmQgYmVzdCBhdm9pZGVkLjwvcD4KKzwvZGQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPjxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPjxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+VkFMR1JJTkRfU1RBQ0tfQ0hBTkdFKGlkLCBzdGFydCwgZW5kKTwvY29kZT46PC9zdHJvbmc+PC9zcGFuPjwvc3Bhbj48L2R0PgorPGRkPgorPHA+Q2hhbmdlcyBhIHByZXZpb3VzbHkgcmVnaXN0ZXJlZCBzdGFjay4gIEluZm9ybXMKKyAgICBWYWxncmluZCB0aGF0IHRoZSBwcmV2aW91c2x5IHJlZ2lzdGVyZWQgc3RhY2sgd2l0aCBzdGFjayBpZAorICAgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+aWQ8L2NvZGU+IGhhcyBjaGFuZ2VkIGl0cyBzdGFydCBhbmQgZW5kCisgICAgdmFsdWVzLiAgVXNlIHRoaXMgaWYgeW91ciB1c2VyLWxldmVsIHRocmVhZCBwYWNrYWdlIGltcGxlbWVudHMKKyAgICBzdGFjayBncm93dGguPC9wPgorPHA+PHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+V2FybmluZzo8L3N0cm9uZz48L3NwYW4+IFVuZm9ydHVuYXRlbHksIHRoaXMgY2xpZW50IHJlcXVlc3QgaXMKKyAgICB1bnJlbGlhYmxlIGFuZCBiZXN0IGF2b2lkZWQuPC9wPgorPC9kZD4KKzwvZGw+PC9kaXY+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QxIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+Cis8YSBuYW1lPSJtYW51YWwtY29yZS1hZHYuZ2Ric2VydmVyIj48L2E+My4yLqBEZWJ1Z2dpbmcgeW91ciBwcm9ncmFtIHVzaW5nIFZhbGdyaW5kIGdkYnNlcnZlciBhbmQgR0RCPC9oMj48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPkEgcHJvZ3JhbSBydW5uaW5nIHVuZGVyIFZhbGdyaW5kIGlzIG5vdCBleGVjdXRlZCBkaXJlY3RseSBieSB0aGUKK0NQVS4gIEluc3RlYWQgaXQgcnVucyBvbiBhIHN5bnRoZXRpYyBDUFUgcHJvdmlkZWQgYnkgVmFsZ3JpbmQuICBUaGlzIGlzCit3aHkgYSBkZWJ1Z2dlciBjYW5ub3QgZGVidWcgeW91ciBwcm9ncmFtIHdoZW4gaXQgcnVucyBvbiBWYWxncmluZC4KKzwvcD4KKzxwPgorVGhpcyBzZWN0aW9uIGRlc2NyaWJlcyBob3cgR0RCIGNhbiBpbnRlcmFjdCB3aXRoIHRoZQorVmFsZ3JpbmQgZ2Ric2VydmVyIHRvIHByb3ZpZGUgYSBmdWxseSBkZWJ1Z2dhYmxlIHByb2dyYW0gdW5kZXIKK1ZhbGdyaW5kLiBVc2VkIGluIHRoaXMgd2F5LCBHREIgYWxzbyBwcm92aWRlcyBhbiBpbnRlcmFjdGl2ZSB1c2FnZSBvZgorVmFsZ3JpbmQgY29yZSBvciB0b29sIGZ1bmN0aW9uYWxpdGllcywgaW5jbHVkaW5nIGluY3JlbWVudGFsIGxlYWsgc2VhcmNoCit1bmRlciBNZW1jaGVjayBhbmQgb24tZGVtYW5kIE1hc3NpZiBzbmFwc2hvdCBwcm9kdWN0aW9uLgorPC9wPgorPGRpdiBjbGFzcz0ic2VjdDIiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJtYW51YWwtY29yZS1hZHYuZ2Ric2VydmVyLXNpbXBsZSI+PC9hPjMuMi4xLqBRdWljayBTdGFydDogZGVidWdnaW5nIGluIDMgc3RlcHM8L2gzPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+VGhlIHNpbXBsZXN0IHdheSB0byBnZXQgc3RhcnRlZCBpcyB0byBydW4gVmFsZ3JpbmQgd2l0aCB0aGUKK2ZsYWcgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS12Z2RiLWVycm9yPTA8L2NvZGU+LiAgVGhlbiBmb2xsb3cgdGhlIG9uLXNjcmVlbgorZGlyZWN0aW9ucywgd2hpY2ggZ2l2ZSB5b3UgdGhlIHByZWNpc2UgY29tbWFuZHMgbmVlZGVkIHRvIHN0YXJ0IEdEQgorYW5kIGNvbm5lY3QgaXQgdG8geW91ciBwcm9ncmFtLjwvcD4KKzxwPk90aGVyd2lzZSwgaGVyZSdzIGEgc2xpZ2h0bHkgbW9yZSB2ZXJib3NlIG92ZXJ2aWV3LjwvcD4KKzxwPklmIHlvdSB3YW50IHRvIGRlYnVnIGEgcHJvZ3JhbSB3aXRoIEdEQiB3aGVuIHVzaW5nIHRoZSBNZW1jaGVjawordG9vbCwgc3RhcnQgVmFsZ3JpbmQgbGlrZSB0aGlzOgorPC9wPgorPHByZSBjbGFzcz0ic2NyZWVuIj4KK3ZhbGdyaW5kIC0tdmdkYj15ZXMgLS12Z2RiLWVycm9yPTAgcHJvZworPC9wcmU+Cis8cD5JbiBhbm90aGVyIHNoZWxsLCBzdGFydCBHREI6Cis8L3A+Cis8cHJlIGNsYXNzPSJzY3JlZW4iPgorZ2RiIHByb2cKKzwvcHJlPgorPHA+VGhlbiBnaXZlIHRoZSBmb2xsb3dpbmcgY29tbWFuZCB0byBHREI6Cis8L3A+Cis8cHJlIGNsYXNzPSJzY3JlZW4iPgorKGdkYikgdGFyZ2V0IHJlbW90ZSB8IHZnZGIKKzwvcHJlPgorPHA+WW91IGNhbiBub3cgZGVidWcgeW91ciBwcm9ncmFtIGUuZy4gYnkgaW5zZXJ0aW5nIGEgYnJlYWtwb2ludAorYW5kIHRoZW4gdXNpbmcgdGhlIEdEQiA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmNvbnRpbnVlPC9jb2RlPgorY29tbWFuZC48L3A+Cis8cD5UaGlzIHF1aWNrIHN0YXJ0IGluZm9ybWF0aW9uIGlzIGVub3VnaCBmb3IgYmFzaWMgdXNhZ2Ugb2YgdGhlCitWYWxncmluZCBnZGJzZXJ2ZXIuICBUaGUgc2VjdGlvbnMgYmVsb3cgZGVzY3JpYmUgbW9yZSBhZHZhbmNlZAorZnVuY3Rpb25hbGl0eSBwcm92aWRlZCBieSB0aGUgY29tYmluYXRpb24gb2YgVmFsZ3JpbmQgYW5kIEdEQi4gTm90ZQordGhhdCB0aGUgY29tbWFuZCBsaW5lIGZsYWcgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS12Z2RiPXllczwvY29kZT4gY2FuIGJlIG9taXR0ZWQsCithcyB0aGlzIGlzIHRoZSBkZWZhdWx0IHZhbHVlLgorPC9wPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MiI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9Im1hbnVhbC1jb3JlLWFkdi5nZGJzZXJ2ZXItY29uY2VwdCI+PC9hPjMuMi4yLqBWYWxncmluZCBnZGJzZXJ2ZXIgb3ZlcmFsbCBvcmdhbmlzYXRpb248L2gzPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+VGhlIEdOVSBHREIgZGVidWdnZXIgaXMgdHlwaWNhbGx5IHVzZWQgdG8gZGVidWcgYSBwcm9jZXNzCitydW5uaW5nIG9uIHRoZSBzYW1lIG1hY2hpbmUuICBJbiB0aGlzIG1vZGUsIEdEQiB1c2VzIHN5c3RlbSBjYWxscyB0bworY29udHJvbCBhbmQgcXVlcnkgdGhlIHByb2dyYW0gYmVpbmcgZGVidWdnZWQuICBUaGlzIHdvcmtzIHdlbGwsIGJ1dAorb25seSBhbGxvd3MgR0RCIHRvIGRlYnVnIGEgcHJvZ3JhbSBydW5uaW5nIG9uIHRoZSBzYW1lIGNvbXB1dGVyLgorPC9wPgorPHA+R0RCIGNhbiBhbHNvIGRlYnVnIHByb2Nlc3NlcyBydW5uaW5nIG9uIGEgZGlmZmVyZW50IGNvbXB1dGVyLgorVG8gYWNoaWV2ZSB0aGlzLCBHREIgZGVmaW5lcyBhIHByb3RvY29sICh0aGF0IGlzLCBhIHNldCBvZiBxdWVyeSBhbmQKK3JlcGx5IHBhY2tldHMpIHRoYXQgZmFjaWxpdGF0ZXMgZmV0Y2hpbmcgdGhlIHZhbHVlIG9mIG1lbW9yeSBvcgorcmVnaXN0ZXJzLCBzZXR0aW5nIGJyZWFrcG9pbnRzLCBldGMuICBBIGdkYnNlcnZlciBpcyBhbiBpbXBsZW1lbnRhdGlvbgorb2YgdGhpcyAiR0RCIHJlbW90ZSBkZWJ1Z2dpbmciIHByb3RvY29sLiAgVG8gZGVidWcgYSBwcm9jZXNzIHJ1bm5pbmcKK29uIGEgcmVtb3RlIGNvbXB1dGVyLCBhIGdkYnNlcnZlciAoc29tZXRpbWVzIGNhbGxlZCBhIEdEQiBzdHViKQorbXVzdCBydW4gYXQgdGhlIHJlbW90ZSBjb21wdXRlciBzaWRlLgorPC9wPgorPHA+VGhlIFZhbGdyaW5kIGNvcmUgcHJvdmlkZXMgYSBidWlsdC1pbiBnZGJzZXJ2ZXIgaW1wbGVtZW50YXRpb24sCit3aGljaCBpcyBhY3RpdmF0ZWQgdXNpbmcgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS12Z2RiPXllczwvY29kZT4KK29yIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tdmdkYj1mdWxsPC9jb2RlPi4gIFRoaXMgZ2Ric2VydmVyIGFsbG93cyB0aGUgcHJvY2VzcworcnVubmluZyBvbiBWYWxncmluZCdzIHN5bnRoZXRpYyBDUFUgdG8gYmUgZGVidWdnZWQgcmVtb3RlbHkuCitHREIgc2VuZHMgcHJvdG9jb2wgcXVlcnkgcGFja2V0cyAoc3VjaCBhcyAiZ2V0IHJlZ2lzdGVyIGNvbnRlbnRzIikgdG8KK3RoZSBWYWxncmluZCBlbWJlZGRlZCBnZGJzZXJ2ZXIuICBUaGUgZ2Ric2VydmVyIGV4ZWN1dGVzIHRoZSBxdWVyaWVzCisoZm9yIGV4YW1wbGUsIGl0IHdpbGwgZ2V0IHRoZSByZWdpc3RlciB2YWx1ZXMgb2YgdGhlIHN5bnRoZXRpYyBDUFUpCithbmQgZ2l2ZXMgdGhlIHJlc3VsdHMgYmFjayB0byBHREIuCis8L3A+Cis8cD5HREIgY2FuIHVzZSB2YXJpb3VzIGtpbmRzIG9mIGNoYW5uZWxzIChUQ1AvSVAsIHNlcmlhbCBsaW5lLCBldGMpCit0byBjb21tdW5pY2F0ZSB3aXRoIHRoZSBnZGJzZXJ2ZXIuICBJbiB0aGUgY2FzZSBvZiBWYWxncmluZCdzCitnZGJzZXJ2ZXIsIGNvbW11bmljYXRpb24gaXMgZG9uZSB2aWEgYSBwaXBlIGFuZCBhIHNtYWxsIGhlbHBlciBwcm9ncmFtCitjYWxsZWQgPGEgY2xhc3M9InhyZWYiIGhyZWY9Im1hbnVhbC1jb3JlLWFkdi5odG1sI21hbnVhbC1jb3JlLWFkdi52Z2RiIiB0aXRsZT0iMy4yLjkuoHZnZGIgY29tbWFuZCBsaW5lIG9wdGlvbnMiPnZnZGI8L2E+LCB3aGljaCBhY3RzIGFzIGFuCitpbnRlcm1lZGlhcnkuICBJZiBubyBHREIgaXMgaW4gdXNlLCB2Z2RiIGNhbiBhbHNvIGJlCit1c2VkIHRvIHNlbmQgbW9uaXRvciBjb21tYW5kcyB0byB0aGUgVmFsZ3JpbmQgZ2Ric2VydmVyIGZyb20gYSBzaGVsbAorY29tbWFuZCBsaW5lLgorPC9wPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MiI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9Im1hbnVhbC1jb3JlLWFkdi5nZGJzZXJ2ZXItZ2RiIj48L2E+My4yLjMuoENvbm5lY3RpbmcgR0RCIHRvIGEgVmFsZ3JpbmQgZ2Ric2VydmVyPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPlRvIGRlYnVnIGEgcHJvZ3JhbSAiPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5wcm9nPC9jb2RlPiIgcnVubmluZyB1bmRlcgorVmFsZ3JpbmQsIHlvdSBtdXN0IGVuc3VyZSB0aGF0IHRoZSBWYWxncmluZCBnZGJzZXJ2ZXIgaXMgYWN0aXZhdGVkIGJ5CitzcGVjaWZ5aW5nIGVpdGhlciA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXZnZGI9eWVzPC9jb2RlPgorb3IgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS12Z2RiPWZ1bGw8L2NvZGU+LiAgQSBzZWNvbmRhcnkgY29tbWFuZCBsaW5lIG9wdGlvbiwKKzxjb2RlIGNsYXNzPSJvcHRpb24iPi0tdmdkYi1lcnJvcj1udW1iZXI8L2NvZGU+LCBjYW4gYmUgdXNlZCB0byB0ZWxsIHRoZSBnZGJzZXJ2ZXIKK29ubHkgdG8gYmVjb21lIGFjdGl2ZSBvbmNlIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIGVycm9ycyBoYXZlIGJlZW4KK3Nob3duLiAgQSB2YWx1ZSBvZiB6ZXJvIHdpbGwgdGhlcmVmb3JlIGNhdXNlCit0aGUgZ2Ric2VydmVyIHRvIGJlY29tZSBhY3RpdmUgYXQgc3RhcnR1cCwgd2hpY2ggYWxsb3dzIHlvdSB0bworaW5zZXJ0IGJyZWFrcG9pbnRzIGJlZm9yZSBzdGFydGluZyB0aGUgcnVuLiAgRm9yIGV4YW1wbGU6Cis8L3A+Cis8cHJlIGNsYXNzPSJzY3JlZW4iPgordmFsZ3JpbmQgLS10b29sPW1lbWNoZWNrIC0tdmdkYj15ZXMgLS12Z2RiLWVycm9yPTAgLi9wcm9nCis8L3ByZT4KKzxwPlRoZSBWYWxncmluZCBnZGJzZXJ2ZXIgaXMgaW52b2tlZCBhdCBzdGFydHVwCithbmQgaW5kaWNhdGVzIGl0IGlzIHdhaXRpbmcgZm9yIGEgY29ubmVjdGlvbiBmcm9tIGEgR0RCOjwvcD4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KKz09MjQxOD09IE1lbWNoZWNrLCBhIG1lbW9yeSBlcnJvciBkZXRlY3RvcgorPT0yNDE4PT0gQ29weXJpZ2h0IChDKSAyMDAyLTIwMTAsIGFuZCBHTlUgR1BMJ2QsIGJ5IEp1bGlhbiBTZXdhcmQgZXQgYWwuCis9PTI0MTg9PSBVc2luZyBWYWxncmluZC0zLjcuMC5TVk4gYW5kIExpYlZFWDsgcmVydW4gd2l0aCAtaCBmb3IgY29weXJpZ2h0IGluZm8KKz09MjQxOD09IENvbW1hbmQ6IC4vcHJvZworPT0yNDE4PT0gCis9PTI0MTg9PSAoYWN0aW9uIGF0IHN0YXJ0dXApIHZnZGIgbWUgLi4uIAorPC9wcmU+Cis8cD5HREIgKGluIGFub3RoZXIgc2hlbGwpIGNhbiB0aGVuIGJlIGNvbm5lY3RlZCB0byB0aGUgVmFsZ3JpbmQgZ2Ric2VydmVyLgorRm9yIHRoaXMsIEdEQiBtdXN0IGJlIHN0YXJ0ZWQgb24gdGhlIHByb2dyYW0gPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5wcm9nPC9jb2RlPjoKKzwvcD4KKzxwcmUgY2xhc3M9InNjcmVlbiI+CitnZGIgLi9wcm9nCis8L3ByZT4KKzxwPllvdSB0aGVuIGluZGljYXRlIHRvIEdEQiB0aGF0IHlvdSB3YW50IHRvIGRlYnVnIGEgcmVtb3RlIHRhcmdldDoKKzwvcD4KKzxwcmUgY2xhc3M9InNjcmVlbiI+CisoZ2RiKSB0YXJnZXQgcmVtb3RlIHwgdmdkYgorPC9wcmU+Cis8cD4KK0dEQiB0aGVuIHN0YXJ0cyBhIHZnZGIgcmVsYXkgYXBwbGljYXRpb24gdG8gY29tbXVuaWNhdGUgd2l0aCB0aGUgCitWYWxncmluZCBlbWJlZGRlZCBnZGJzZXJ2ZXI6PC9wPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPgorKGdkYikgdGFyZ2V0IHJlbW90ZSB8IHZnZGIKK1JlbW90ZSBkZWJ1Z2dpbmcgdXNpbmcgfCB2Z2RiCityZWxheWluZyBkYXRhIGJldHdlZW4gZ2RiIGFuZCBwcm9jZXNzIDI0MTgKK1JlYWRpbmcgc3ltYm9scyBmcm9tIC9saWIvbGQtbGludXguc28uMi4uLmRvbmUuCitSZWFkaW5nIHN5bWJvbHMgZnJvbSAvdXNyL2xpYi9kZWJ1Zy9saWIvbGQtMi4xMS4yLnNvLmRlYnVnLi4uZG9uZS4KK0xvYWRlZCBzeW1ib2xzIGZvciAvbGliL2xkLWxpbnV4LnNvLjIKK1tTd2l0Y2hpbmcgdG8gVGhyZWFkIDI0MThdCisweDAwMWYyODUwIGluIF9zdGFydCAoKSBmcm9tIC9saWIvbGQtbGludXguc28uMgorKGdkYikgCis8L3ByZT4KKzxwPk5vdGUgdGhhdCB2Z2RiIGlzIHByb3ZpZGVkIGFzIHBhcnQgb2YgdGhlIFZhbGdyaW5kCitkaXN0cmlidXRpb24uICBZb3UgZG8gbm90IG5lZWQgdG8gaW5zdGFsbCBpdCBzZXBhcmF0ZWx5LjwvcD4KKzxwPklmIHZnZGIgZGV0ZWN0cyB0aGF0IHRoZXJlIGFyZSBtdWx0aXBsZSBWYWxncmluZCBnZGJzZXJ2ZXJzIHRoYXQKK2NhbiBiZSBjb25uZWN0ZWQgdG8sIGl0IHdpbGwgbGlzdCBhbGwgc3VjaCBzZXJ2ZXJzIGFuZCB0aGVpciBQSURzLCBhbmQKK3RoZW4gZXhpdC4gIFlvdSBjYW4gdGhlbiByZWlzc3VlIHRoZSBHREIgInRhcmdldCIgY29tbWFuZCwgYnV0CitzcGVjaWZ5aW5nIHRoZSBQSUQgb2YgdGhlIHByb2Nlc3MgeW91IHdhbnQgdG8gZGVidWc6Cis8L3A+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CisoZ2RiKSB0YXJnZXQgcmVtb3RlIHwgdmdkYgorUmVtb3RlIGRlYnVnZ2luZyB1c2luZyB8IHZnZGIKK25vIC0tcGlkPSBhcmcgZ2l2ZW4gYW5kIG11bHRpcGxlIHZhbGdyaW5kIHBpZHMgZm91bmQ6Cit1c2UgLS1waWQ9MjQ3OSBmb3IgdmFsZ3JpbmQgLS10b29sPW1lbWNoZWNrIC0tdmdkYj15ZXMgLS12Z2RiLWVycm9yPTAgLi9wcm9nIAordXNlIC0tcGlkPTI0ODEgZm9yIHZhbGdyaW5kIC0tdG9vbD1tZW1jaGVjayAtLXZnZGI9eWVzIC0tdmdkYi1lcnJvcj0wIC4vcHJvZyAKK3VzZSAtLXBpZD0yNDgzIGZvciB2YWxncmluZCAtLXZnZGI9eWVzIC0tdmdkYi1lcnJvcj0wIC4vYW5vdGhlcl9wcm9nIAorUmVtb3RlIGNvbW11bmljYXRpb24gZXJyb3I6IFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlLgorKGdkYikgIHRhcmdldCByZW1vdGUgfCB2Z2RiIC0tcGlkPTI0NzkKK1JlbW90ZSBkZWJ1Z2dpbmcgdXNpbmcgfCB2Z2RiIC0tcGlkPTI0NzkKK3JlbGF5aW5nIGRhdGEgYmV0d2VlbiBnZGIgYW5kIHByb2Nlc3MgMjQ3OQorUmVhZGluZyBzeW1ib2xzIGZyb20gL2xpYi9sZC1saW51eC5zby4yLi4uZG9uZS4KK1JlYWRpbmcgc3ltYm9scyBmcm9tIC91c3IvbGliL2RlYnVnL2xpYi9sZC0yLjExLjIuc28uZGVidWcuLi5kb25lLgorTG9hZGVkIHN5bWJvbHMgZm9yIC9saWIvbGQtbGludXguc28uMgorW1N3aXRjaGluZyB0byBUaHJlYWQgMjQ3OV0KKzB4MDAxZjI4NTAgaW4gX3N0YXJ0ICgpIGZyb20gL2xpYi9sZC1saW51eC5zby4yCisoZ2RiKSAKKzwvcHJlPgorPHA+T25jZSBHREIgaXMgY29ubmVjdGVkIHRvIHRoZSBWYWxncmluZCBnZGJzZXJ2ZXIsIGl0IGNhbiBiZSB1c2VkCitpbiB0aGUgc2FtZSB3YXkgYXMgaWYgeW91IHdlcmUgZGVidWdnaW5nIHRoZSBwcm9ncmFtIG5hdGl2ZWx5OjwvcD4KKzxkaXYgY2xhc3M9Iml0ZW1pemVkbGlzdCI+PHVsIGNsYXNzPSJpdGVtaXplZGxpc3QiIHN0eWxlPSJsaXN0LXN0eWxlLXR5cGU6IGRpc2M7ICI+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5CcmVha3BvaW50cyBjYW4gYmUgaW5zZXJ0ZWQgb3IgZGVsZXRlZC48L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPlZhcmlhYmxlcyBhbmQgcmVnaXN0ZXIgdmFsdWVzIGNhbiBiZSBleGFtaW5lZCBvciBtb2RpZmllZC4KKyAgICA8L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPlNpZ25hbCBoYW5kbGluZyBjYW4gYmUgY29uZmlndXJlZCAocHJpbnRpbmcsIGlnbm9yaW5nKS4KKyAgICA8L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPkV4ZWN1dGlvbiBjYW4gYmUgY29udHJvbGxlZCAoY29udGludWUsIHN0ZXAsIG5leHQsIHN0ZXBpLCBldGMpLgorICAgIDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+UHJvZ3JhbSBleGVjdXRpb24gY2FuIGJlIGludGVycnVwdGVkIHVzaW5nIENvbnRyb2wtQy48L3A+PC9saT4KKzwvdWw+PC9kaXY+Cis8cD5BbmQgc28gb24uICBSZWZlciB0byB0aGUgR0RCIHVzZXIgbWFudWFsIGZvciBhIGNvbXBsZXRlCitkZXNjcmlwdGlvbiBvZiBHREIncyBmdW5jdGlvbmFsaXR5LgorPC9wPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MiI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9Im1hbnVhbC1jb3JlLWFkdi5nZGJzZXJ2ZXItZ2RiLWFuZHJvaWQiPjwvYT4zLjIuNC6gQ29ubmVjdGluZyB0byBhbiBBbmRyb2lkIGdkYnNlcnZlcjwvaDM+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD4gV2hlbiBkZXZlbG9wcGluZyBhcHBsaWNhdGlvbnMgZm9yIEFuZHJvaWQsIHlvdSB3aWxsIHR5cGljYWxseSB1c2UKK2EgZGV2ZWxvcG1lbnQgc3lzdGVtIChvbiB3aGljaCB0aGUgQW5kcm9pZCBOREsgaXMgaW5zdGFsbGVkKSB0byBjb21waWxlIHlvdXIKK2FwcGxpY2F0aW9uLiBBbiBBbmRyb2lkIHRhcmdldCBzeXN0ZW0gb3IgZW11bGF0b3Igd2lsbCBiZSB1c2VkIHRvIHJ1bgordGhlIGFwcGxpY2F0aW9uLgorSW4gdGhpcyBzZXR1cCwgVmFsZ3JpbmQgYW5kIHZnZGIgd2lsbCBydW4gb24gdGhlIEFuZHJvaWQgc3lzdGVtLAord2hpbGUgR0RCIHdpbGwgcnVuIG9uIHRoZSBkZXZlbG9wbWVudCBzeXN0ZW0uIEdEQiB3aWxsIGNvbm5lY3QKK3RvIHRoZSB2Z2RiIHJ1bm5pbmcgb24gdGhlIEFuZHJvaWQgc3lzdGVtIHVzaW5nIHRoZSBBbmRyb2lkIE5ESworJ2FkYiBmb3J3YXJkJyBhcHBsaWNhdGlvbi4KKzwvcD4KKzxwPiBFeGFtcGxlOiBvbiB0aGUgQW5kcm9pZCBzeXN0ZW0sIGV4ZWN1dGUgdGhlIGZvbGxvd2luZzoKKyAgICA8L3A+Cis8cHJlIGNsYXNzPSJzY3JlZW4iPgordmFsZ3JpbmQgLS12Z2RiLWVycm9yPTAgLS12Z2RiPXllcyBwcm9nCisjIGFuZCB0aGVuIGluIGFub3RoZXIgc2hlbGwsIHJ1bjoKK3ZnZGIgLS1wb3J0PTEyMzQKKzwvcHJlPgorPHA+Cis8L3A+Cis8cD4gT24gdGhlIGRldmVsb3BtZW50IHN5c3RlbSwgZXhlY3V0ZSB0aGUgZm9sbG93aW5nIGNvbW1hbmRzOgorPC9wPgorPHByZSBjbGFzcz0ic2NyZWVuIj4KK2FkYiBmb3J3YXJkIHRjcDoxMjM0IHRjcDoxMjM0CitnZGIgcHJvZworKGdkYikgdGFyZ2V0IHJlbW90ZSA6MTIzNAorPC9wcmU+Cis8cD4KK0dEQiB3aWxsIHVzZSBhIGxvY2FsIHRjcC9pcCBjb25uZWN0aW9uIHRvIGNvbm5lY3QgdG8gdGhlIEFuZHJvaWQgYWRiIGZvcndhcmRlci4KK0FkYiB3aWxsIGVzdGFibGlzaCBhIHJlbGF5IGNvbm5lY3Rpb24gYmV0d2VlbiB0aGUgaG9zdCBzeXN0ZW0gYW5kIHRoZSBBbmRyb2lkCit0YXJnZXQgc3lzdGVtLiAgQmUgc3VyZSB0byB1c2UgdGhlIEdEQiBkZWxpdmVyZWQgaW4gdGhlCitBbmRyb2lkIE5ESyBzeXN0ZW0gKHR5cGljYWxseSwgYXJtLWxpbnV4LWFuZHJvaWRlYWJpLWdkYiksIGFzIHRoZSBob3N0CitHREIgaXMgcHJvYmFibHkgbm90IGFibGUgdG8gZGVidWcgQW5kcm9pZCBhcm0gYXBwbGljYXRpb25zLgorTm90ZSB0aGF0IHRoZSBsb2NhbCBwb3J0IG5yICh1c2VkIGJ5IEdEQikgbXVzdCBub3QgbmVjZXNzYXJpbHkgYmUgZXF1YWwKK3RvIHRoZSBwb3J0IG51bWJlciB1c2VkIGJ5IHZnZGI6IGFkYiBjYW4gZm9yd2FyZCB0Y3AvaXAgYmV0d2VlbiBkaWZmZXJlbnQKK3BvcnQgbnVtYmVycy4KKzwvcD4KKzxwPkluIHRoZSBjdXJyZW50IHJlbGVhc2UsIHRoZSBHREIgc2VydmVyIGlzIG5vdCBlbmFibGVkIGJ5IGRlZmF1bHQKK2ZvciBBbmRyb2lkLCBkdWUgdG8gcHJvYmxlbXMgaW4gZXN0YWJsaXNoaW5nIGEgc3VpdGFibGUgZGlyZWN0b3J5IGluCit3aGljaCBWYWxncmluZCBjYW4gY3JlYXRlIHRoZSBuZWNlc3NhcnkgRklGT3MgKG5hbWVkIHBpcGVzKSBmb3IKK2NvbW11bmljYXRpb24gcHVycG9zZXMuICBZb3UgY2FuIHN0aWwgdHJ5IHRvIHVzZSB0aGUgR0RCIHNlcnZlciwgYnV0Cit5b3Ugd2lsbCBuZWVkIHRvIGV4cGxpY2l0bHkgZW5hYmxlIGl0IHVzaW5nIHRoZSBmbGFnIAorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij4tLXZnZGI9eWVzPC9jb2RlPiBvcgorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij4tLXZnZGI9ZnVsbDwvY29kZT4uCis8L3A+Cis8cD5BZGRpdGlvbmFsbHksIHlvdQord2lsbCBuZWVkIHRvIHNlbGVjdCBhIHRlbXBvcmFyeSBkaXJlY3Rvcnkgd2hpY2ggaXMgKGEpIHdyaXRhYmxlCitieSBWYWxncmluZCwgYW5kIChiKSBzdXBwb3J0cyBGSUZPcy4gIFRoaXMgaXMgdGhlIG1haW4gZGlmZmljdWx0Citwb2ludC4gIE9mdGVuLCA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPi9zZGNhcmQ8L2NvZGU+IHNhdGlzZmllcworcmVxdWlyZW1lbnQgKGEpLCBidXQgZmFpbHMgZm9yIChiKSBiZWNhdXNlIGl0IGlzIGEgVkZBVCBmaWxlIHN5c3RlbQorYW5kIFZGQVQgZG9lcyBub3Qgc3VwcG9ydCBwaXBlcy4gIFBvc3NpYmlsaXRpZXMgeW91IGNvdWxkIHRyeSBhcmUKKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+L2RhdGEvbG9jYWw8L2NvZGU+LAorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij4vZGF0YS9sb2NhbC9JbnN0PC9jb2RlPiAoaWYgeW91CitpbnN0YWxsZWQgVmFsZ3JpbmQgdGhlcmUpLCBvcgorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij4vZGF0YS9kYXRhL25hbWUub2YubXkuYXBwPC9jb2RlPiwgaWYgeW91CithcmUgcnVubmluZyBhIHNwZWNpZmljIGFwcGxpY2F0aW9uIGFuZCBpdCBoYXMgaXRzIG93biBkaXJlY3Rvcnkgb2YgCit0aGF0IGZvcm0uICBUaGlzIGxhc3QgcG9zc2liaWxpdHkgbWF5IGhhdmUgdGhlIGhpZ2hlc3QgcHJvYmFiaWxpdHkKK29mIHN1Y2Nlc3MuPC9wPgorPHA+WW91IGNhbiBzcGVjaWZ5IHRoZSB0ZW1wb3JhcnkgZGlyZWN0b3J5IHRvIHVzZSBlaXRoZXIgdmlhCit0aGUgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij4tLXdpdGgtdG1wZGlyPTwvY29kZT4gY29uZmlndXJlIHRpbWUKK2ZsYWcsIG9yIGJ5IHNldHRpbmcgZW52aXJvbm1lbnQgdmFyaWFibGUgVE1QRElSIHdoZW4gcnVubmluZyBWYWxncmluZAorKG9uIHRoZSBBbmRyb2lkIGRldmljZSwgbm90IG9uIHRoZSBBbmRyb2lkIE5ESyBkZXZlbG9wbWVudCBob3N0KS4KK0Fub3RoZXIgYWx0ZXJuYXRpdmUgaXMgdG8gc3BlY2lmeSB0aGUgZGlyZWN0b3J5IGZvciB0aGUgRklGT3MgdXNpbmcKK3RoZSA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPi0tdmdkYi1wcmVmaXg9PC9jb2RlPiBWYWxncmluZCBjb21tYW5kCitsaW5lIG9wdGlvbi4KKzwvcD4KKzxwPldlIGhvcGUgdG8gaGF2ZSBhIGJldHRlciBzdG9yeSBmb3IgdGVtcG9yYXJ5IGRpcmVjdG9yeSBoYW5kbGluZworb24gQW5kcm9pZCBpbiB0aGUgZnV0dXJlLiAgVGhlIGRpZmZpY3VsdHkgaXMgdGhhdCwgdW5saWtlIGluIHN0YW5kYXJkCitVbml4ZXMsIHRoZXJlIGlzIG5vIHNpbmdsZSB0ZW1wb3JhcnkgZmlsZSBkaXJlY3RvcnkgdGhhdCByZWxpYWJseQord29ya3MgYWNyb3NzIGFsbCBkZXZpY2VzIGFuZCBzY2VuYXJpb3MuCis8L3A+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0ibWFudWFsLWNvcmUtYWR2LmdkYnNlcnZlci1jb21tYW5kaGFuZGxpbmciPjwvYT4zLjIuNS6gTW9uaXRvciBjb21tYW5kIGhhbmRsaW5nIGJ5IHRoZSBWYWxncmluZCBnZGJzZXJ2ZXI8L2gzPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+IFRoZSBWYWxncmluZCBnZGJzZXJ2ZXIgcHJvdmlkZXMgYWRkaXRpb25hbCBWYWxncmluZC1zcGVjaWZpYworZnVuY3Rpb25hbGl0eSB2aWEgIm1vbml0b3IgY29tbWFuZHMiLiAgU3VjaCBtb25pdG9yIGNvbW1hbmRzIGNhbiBiZQorc2VudCBmcm9tIHRoZSBHREIgY29tbWFuZCBsaW5lIG9yIGZyb20gdGhlIHNoZWxsIGNvbW1hbmQgbGluZSBvcgorcmVxdWVzdGVkIGJ5IHRoZSBjbGllbnQgcHJvZ3JhbSB1c2luZyB0aGUgVkFMR1JJTkRfTU9OSVRPUl9DT01NQU5ECitjbGllbnQgcmVxdWVzdC4gIFNlZQorPGEgY2xhc3M9InhyZWYiIGhyZWY9Im1hbnVhbC1jb3JlLWFkdi5odG1sI21hbnVhbC1jb3JlLWFkdi52YWxncmluZC1tb25pdG9yLWNvbW1hbmRzIiB0aXRsZT0iMy4yLjEwLqBWYWxncmluZCBtb25pdG9yIGNvbW1hbmRzIj5WYWxncmluZCBtb25pdG9yIGNvbW1hbmRzPC9hPiBmb3IgdGhlCitsaXN0IG9mIHRoZSBWYWxncmluZCBjb3JlIG1vbml0b3IgY29tbWFuZHMgYXZhaWxhYmxlIHJlZ2FyZGxlc3Mgb2YgdGhlCitWYWxncmluZCB0b29sIHNlbGVjdGVkLgorPC9wPgorPHA+VGhlIGZvbGxvd2luZyB0b29scyBwcm92aWRlIHRvb2wtc3BlY2lmaWMgbW9uaXRvciBjb21tYW5kczoKKyAgPC9wPgorPGRpdiBjbGFzcz0iaXRlbWl6ZWRsaXN0Ij48dWwgY2xhc3M9Iml0ZW1pemVkbGlzdCIgc3R5bGU9Imxpc3Qtc3R5bGUtdHlwZTogZGlzYzsgIj4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPjxhIGNsYXNzPSJ4cmVmIiBocmVmPSJtYy1tYW51YWwuaHRtbCNtYy1tYW51YWwubW9uaXRvci1jb21tYW5kcyIgdGl0bGU9IjQuNi6gTWVtY2hlY2sgTW9uaXRvciBDb21tYW5kcyI+TWVtY2hlY2sgTW9uaXRvciBDb21tYW5kczwvYT48L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPjxhIGNsYXNzPSJ4cmVmIiBocmVmPSJjbC1tYW51YWwuaHRtbCNjbC1tYW51YWwubW9uaXRvci1jb21tYW5kcyIgdGl0bGU9IjYuNC6gQ2FsbGdyaW5kIE1vbml0b3IgQ29tbWFuZHMiPkNhbGxncmluZCBNb25pdG9yIENvbW1hbmRzPC9hPjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+PGEgY2xhc3M9InhyZWYiIGhyZWY9Im1zLW1hbnVhbC5odG1sI21zLW1hbnVhbC5tb25pdG9yLWNvbW1hbmRzIiB0aXRsZT0iOS40LqBNYXNzaWYgTW9uaXRvciBDb21tYW5kcyI+TWFzc2lmIE1vbml0b3IgQ29tbWFuZHM8L2E+PC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD48YSBjbGFzcz0ieHJlZiIgaHJlZj0iaGctbWFudWFsLmh0bWwjaGctbWFudWFsLm1vbml0b3ItY29tbWFuZHMiIHRpdGxlPSI3LjcuoEhlbGdyaW5kIE1vbml0b3IgQ29tbWFuZHMiPkhlbGdyaW5kIE1vbml0b3IgQ29tbWFuZHM8L2E+PC9wPjwvbGk+Cis8L3VsPjwvZGl2PgorPHA+Cis8L3A+Cis8cD5BbiBleGFtcGxlIG9mIGEgdG9vbCBzcGVjaWZpYyBtb25pdG9yIGNvbW1hbmQgaXMgdGhlIE1lbWNoZWNrIG1vbml0b3IKK2NvbW1hbmQgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5sZWFrX2NoZWNrIGZ1bGwKK3JlYWNoYWJsZSBhbnk8L2NvZGU+LiAgVGhpcyByZXF1ZXN0cyBhIGZ1bGwgcmVwb3J0aW5nIG9mIHRoZQorYWxsb2NhdGVkIG1lbW9yeSBibG9ja3MuICBUbyBoYXZlIHRoaXMgbGVhayBjaGVjayBleGVjdXRlZCwgdXNlIHRoZSBHREIKK2NvbW1hbmQ6Cis8L3A+Cis8cHJlIGNsYXNzPSJzY3JlZW4iPgorKGdkYikgbW9uaXRvciBsZWFrX2NoZWNrIGZ1bGwgcmVhY2hhYmxlIGFueQorPC9wcmU+Cis8cD4KKzwvcD4KKzxwPkdEQiB3aWxsIHNlbmQgdGhlIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+bGVha19jaGVjazwvY29kZT4KK2NvbW1hbmQgdG8gdGhlIFZhbGdyaW5kIGdkYnNlcnZlci4gIFRoZSBWYWxncmluZCBnZGJzZXJ2ZXIgd2lsbAorZXhlY3V0ZSB0aGUgbW9uaXRvciBjb21tYW5kIGl0c2VsZiwgaWYgaXQgcmVjb2duaXNlcyBpdCB0byBiZSBhIFZhbGdyaW5kIGNvcmUKK21vbml0b3IgY29tbWFuZC4gIElmIGl0IGlzIG5vdCByZWNvZ25pc2VkIGFzIHN1Y2gsIGl0IGlzIGFzc3VtZWQgdG8KK2JlIHRvb2wtc3BlY2lmaWMgYW5kIGlzIGhhbmRlZCB0byB0aGUgdG9vbCBmb3IgZXhlY3V0aW9uLiAgRm9yIGV4YW1wbGU6Cis8L3A+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CisoZ2RiKSBtb25pdG9yIGxlYWtfY2hlY2sgZnVsbCByZWFjaGFibGUgYW55Cis9PTI0MTg9PSAxMDAgYnl0ZXMgaW4gMSBibG9ja3MgYXJlIHN0aWxsIHJlYWNoYWJsZSBpbiBsb3NzIHJlY29yZCAxIG9mIDEKKz09MjQxOD09ICAgIGF0IDB4NDAwNkU5RTogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOjIzNikKKz09MjQxOD09ICAgIGJ5IDB4ODA0ODg0RjogbWFpbiAocHJvZy5jOjg4KQorPT0yNDE4PT0gCis9PTI0MTg9PSBMRUFLIFNVTU1BUlk6Cis9PTI0MTg9PSAgICBkZWZpbml0ZWx5IGxvc3Q6IDAgYnl0ZXMgaW4gMCBibG9ja3MKKz09MjQxOD09ICAgIGluZGlyZWN0bHkgbG9zdDogMCBieXRlcyBpbiAwIGJsb2NrcworPT0yNDE4PT0gICAgICBwb3NzaWJseSBsb3N0OiAwIGJ5dGVzIGluIDAgYmxvY2tzCis9PTI0MTg9PSAgICBzdGlsbCByZWFjaGFibGU6IDEwMCBieXRlcyBpbiAxIGJsb2NrcworPT0yNDE4PT0gICAgICAgICBzdXBwcmVzc2VkOiAwIGJ5dGVzIGluIDAgYmxvY2tzCis9PTI0MTg9PSAKKyhnZGIpIAorPC9wcmU+Cis8cD5BcyB3aXRoIG90aGVyIEdEQiBjb21tYW5kcywgdGhlIFZhbGdyaW5kIGdkYnNlcnZlciB3aWxsIGFjY2VwdAorYWJicmV2aWF0ZWQgbW9uaXRvciBjb21tYW5kIG5hbWVzIGFuZCBhcmd1bWVudHMsIGFzIGxvbmcgYXMgdGhlIGdpdmVuCithYmJyZXZpYXRpb24gaXMgdW5hbWJpZ3VvdXMuICBGb3IgZXhhbXBsZSwgdGhlIGFib3ZlCis8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmxlYWtfY2hlY2s8L2NvZGU+Citjb21tYW5kIGNhbiBhbHNvIGJlIHR5cGVkIGFzOgorPC9wPgorPHByZSBjbGFzcz0ic2NyZWVuIj4KKyhnZGIpIG1vIGwgZiByIGEKKzwvcHJlPgorPHA+CisKK1RoZSBsZXR0ZXJzIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+bW88L2NvZGU+IGFyZSByZWNvZ25pc2VkIGJ5IEdEQiBhcyBiZWluZworYW4gYWJicmV2aWF0aW9uIGZvciA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPm1vbml0b3I8L2NvZGU+LiAgU28gR0RCIHNlbmRzIHRoZQorc3RyaW5nIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+bCBmIHIgYTwvY29kZT4gdG8gdGhlIFZhbGdyaW5kCitnZGJzZXJ2ZXIuICBUaGUgbGV0dGVycyBwcm92aWRlZCBpbiB0aGlzIHN0cmluZyBhcmUgdW5hbWJpZ3VvdXMgZm9yIHRoZQorVmFsZ3JpbmQgZ2Ric2VydmVyLiAgVGhpcyB0aGVyZWZvcmUgZ2l2ZXMgdGhlIHNhbWUgb3V0cHV0IGFzIHRoZQordW5hYmJyZXZpYXRlZCBjb21tYW5kIGFuZCBhcmd1bWVudHMuICBJZiB0aGUgcHJvdmlkZWQgYWJicmV2aWF0aW9uIGlzCithbWJpZ3VvdXMsIHRoZSBWYWxncmluZCBnZGJzZXJ2ZXIgd2lsbCByZXBvcnQgdGhlIGxpc3Qgb2YgY29tbWFuZHMgKG9yCithcmd1bWVudCB2YWx1ZXMpIHRoYXQgY2FuIG1hdGNoOgorPC9wPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPgorKGdkYikgbW8gdi4gbgordi4gY2FuIG1hdGNoIHYuc2V0IHYuaW5mbyB2LndhaXQgdi5raWxsIHYudHJhbnNsYXRlIHYuZG8KKyhnZGIpIG1vIHYuaSBuCituX2VycnNfZm91bmQgMCBuX2VycnNfc2hvd24gMCAodmdkYi1lcnJvciAwKQorKGdkYikgCis8L3ByZT4KKzxwPgorPC9wPgorPHA+SW5zdGVhZCBvZiBzZW5kaW5nIGEgbW9uaXRvciBjb21tYW5kIGZyb20gR0RCLCB5b3UgY2FuIGFsc28gc2VuZAordGhlc2UgZnJvbSBhIHNoZWxsIGNvbW1hbmQgbGluZS4gIEZvciBleGFtcGxlLCB0aGUgZm9sbG93aW5nIGNvbW1hbmQKK2xpbmVzLCB3aGVuIGdpdmVuIGluIGEgc2hlbGwsIHdpbGwgY2F1c2UgdGhlIHNhbWUgbGVhayBzZWFyY2ggdG8gYmUgZXhlY3V0ZWQKK2J5IHRoZSBwcm9jZXNzIDMxNDU6Cis8L3A+Cis8cHJlIGNsYXNzPSJzY3JlZW4iPgordmdkYiAtLXBpZD0zMTQ1IGxlYWtfY2hlY2sgZnVsbCByZWFjaGFibGUgYW55Cit2Z2RiIC0tcGlkPTMxNDUgbCBmIHIgYQorPC9wcmU+Cis8cD5Ob3RlIHRoYXQgdGhlIFZhbGdyaW5kIGdkYnNlcnZlciBhdXRvbWF0aWNhbGx5IGNvbnRpbnVlcyB0aGUKK2V4ZWN1dGlvbiBvZiB0aGUgcHJvZ3JhbSBhZnRlciBhIHN0YW5kYWxvbmUgaW52b2NhdGlvbiBvZgordmdkYi4gIE1vbml0b3IgY29tbWFuZHMgc2VudCBmcm9tIEdEQiBkbyBub3QgY2F1c2UgdGhlIHByb2dyYW0gdG8KK2NvbnRpbnVlOiB0aGUgcHJvZ3JhbSBleGVjdXRpb24gaXMgY29udHJvbGxlZCBleHBsaWNpdGx5IHVzaW5nIEdEQgorY29tbWFuZHMgc3VjaCBhcyAiY29udGludWUiIG9yICJuZXh0Ii48L3A+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0ibWFudWFsLWNvcmUtYWR2LmdkYnNlcnZlci10aHJlYWRzIj48L2E+My4yLjYuoFZhbGdyaW5kIGdkYnNlcnZlciB0aHJlYWQgaW5mb3JtYXRpb248L2gzPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+VmFsZ3JpbmQncyBnZGJzZXJ2ZXIgZW5yaWNoZXMgdGhlIG91dHB1dCBvZiB0aGUKK0dEQiA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmluZm8gdGhyZWFkczwvY29kZT4gY29tbWFuZAord2l0aCBWYWxncmluZC1zcGVjaWZpYyBpbmZvcm1hdGlvbi4KK1RoZSBvcGVyYXRpbmcgc3lzdGVtJ3MgdGhyZWFkIG51bWJlciBpcyBmb2xsb3dlZAorYnkgVmFsZ3JpbmQncyBpbnRlcm5hbCBpbmRleCBmb3IgdGhhdCB0aHJlYWQgKCJ0aWQiKSBhbmQgYnkKK3RoZSBWYWxncmluZCBzY2hlZHVsZXIgdGhyZWFkIHN0YXRlOjwvcD4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KKyhnZGIpIGluZm8gdGhyZWFkcworICA0IFRocmVhZCA2MjM5ICh0aWQgNCBWZ1RzX1lpZWxkaW5nKSAgMHgwMDFmMjgzMiBpbiBfZGxfc3lzaW5mb19pbnQ4MCAoKSBmcm9tIC9saWIvbGQtbGludXguc28uMgorKiAzIFRocmVhZCA2MjM4ICh0aWQgMyBWZ1RzX1J1bm5hYmxlKSAgbWFrZV9lcnJvciAocz0weDgwNDhiNzYgImNhbGxlZCBmcm9tIExvbmRvbiIpIGF0IHByb2cuYzoyMAorICAyIFRocmVhZCA2MjM3ICh0aWQgMiBWZ1RzX1dhaXRTeXMpICAweDAwMWYyODMyIGluIF9kbF9zeXNpbmZvX2ludDgwICgpIGZyb20gL2xpYi9sZC1saW51eC5zby4yCisgIDEgVGhyZWFkIDYyMzQgKHRpZCAxIFZnVHNfWWllbGRpbmcpICBtYWluIChhcmdjPTEsIGFyZ3Y9MHhiZWRjYzI3NCkgYXQgcHJvZy5jOjEwNQorKGdkYikgCis8L3ByZT4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDIiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJtYW51YWwtY29yZS1hZHYuZ2Ric2VydmVyLXNoYWRvd3JlZ2lzdGVycyI+PC9hPjMuMi43LqBFeGFtaW5pbmcgYW5kIG1vZGlmeWluZyBWYWxncmluZCBzaGFkb3cgcmVnaXN0ZXJzPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPiBXaGVuIHRoZSBvcHRpb24gPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS12Z2RiLXNoYWRvdy1yZWdpc3RlcnM9eWVzPC9jb2RlPiBpcworZ2l2ZW4sIHRoZSBWYWxncmluZCBnZGJzZXJ2ZXIgd2lsbCBsZXQgR0RCIGV4YW1pbmUgYW5kL29yIG1vZGlmeQorVmFsZ3JpbmQncyBzaGFkb3cgcmVnaXN0ZXJzLiAgR0RCIHZlcnNpb24gNy4xIG9yIGxhdGVyIGlzIG5lZWRlZCBmb3IgdGhpcwordG8gd29yay4gRm9yIHg4NiBhbmQgYW1kNjQsIEdEQiB2ZXJzaW9uIDcuMiBvciBsYXRlciBpcyBuZWVkZWQuPC9wPgorPHA+Rm9yIGVhY2ggQ1BVIHJlZ2lzdGVyLCB0aGUgVmFsZ3JpbmQgY29yZSBtYWludGFpbnMgdHdvCitzaGFkb3cgcmVnaXN0ZXIgc2V0cy4gIFRoZXNlIHNoYWRvdyByZWdpc3RlcnMgY2FuIGJlIGFjY2Vzc2VkIGZyb20KK0dEQiBieSBnaXZpbmcgYSBwb3N0Zml4IDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+czE8L2NvZGU+CitvciA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPnMyPC9jb2RlPiBmb3IgcmVzcGVjdGl2ZWx5IHRoZSBmaXJzdAorYW5kIHNlY29uZCBzaGFkb3cgcmVnaXN0ZXIuICBGb3IgZXhhbXBsZSwgdGhlIHg4NiByZWdpc3RlcgorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5lYXg8L2NvZGU+IGFuZCBpdHMgdHdvIHNoYWRvd3MKK2NhbiBiZSBleGFtaW5lZCB1c2luZyB0aGUgZm9sbG93aW5nIGNvbW1hbmRzOjwvcD4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KKyhnZGIpIHAgJGVheAorJDEgPSAwCisoZ2RiKSBwICRlYXhzMQorJDIgPSAwCisoZ2RiKSBwICRlYXhzMgorJDMgPSAwCisoZ2RiKSAKKzwvcHJlPgorPHA+RmxvYXQgc2hhZG93IHJlZ2lzdGVycyBhcmUgc2hvd24gYnkgR0RCIGFzIHVuc2lnbmVkIGludGVnZXIKK3ZhbHVlcyBpbnN0ZWFkIG9mIGZsb2F0IHZhbHVlcywgYXMgaXQgaXMgZXhwZWN0ZWQgdGhhdCB0aGVzZQorc2hhZG93IHZhbHVlcyBhcmUgbW9zdGx5IHVzZWQgZm9yIG1lbWNoZWNrIHZhbGlkaXR5IGJpdHMuIDwvcD4KKzxwPkludGVsL2FtZDY0IEFWWCByZWdpc3RlcnMgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij55bW0wPC9jb2RlPgordG8gPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij55bW0xNTwvY29kZT4gaGF2ZSBhbHNvIHRoZWlyIHNoYWRvdworcmVnaXN0ZXJzLiBIb3dldmVyLCBHREIgcHJlc2VudHMgdGhlIHNoYWRvdyB2YWx1ZXMgdXNpbmcgdHdvCisiaGFsZiIgcmVnaXN0ZXJzLiBGb3IgZXhhbXBsZSwgdGhlIGhhbGYgc2hhZG93IHJlZ2lzdGVycyBmb3IgCis8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPnltbTk8L2NvZGU+IGFyZQorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij54bW05czE8L2NvZGU+IChsb3dlciBoYWxmIGZvciBzZXQgMSksCis8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPnltbTloczE8L2NvZGU+ICh1cHBlciBoYWxmIGZvciBzZXQgMSksCis8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPnhtbTlzMjwvY29kZT4gKGxvd2VyIGhhbGYgZm9yIHNldCAyKSwKKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+eW1tOWhzMjwvY29kZT4gKHVwcGVyIGhhbGYgZm9yIHNldCAyKS4KK05vdGUgdGhlIGluY29uc2lzdGVudCBub3RhdGlvbiBmb3IgdGhlIG5hbWVzIG9mIHRoZSBoYWxmIHJlZ2lzdGVyczoKK3RoZSBsb3dlciBwYXJ0IHN0YXJ0cyB3aXRoIGFuIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+eDwvY29kZT4sCit0aGUgdXBwZXIgcGFydCBzdGFydHMgd2l0aCBhbiA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPnk8L2NvZGU+CithbmQgaGFzIGFuIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+aDwvY29kZT4gYmVmb3JlIHRoZSBzaGFkb3cgcG9zdGZpeC4KKzwvcD4KKzxwPlRoZSBzcGVjaWFsIHByZXNlbnRhdGlvbiBvZiB0aGUgQVZYIHNoYWRvdyByZWdpc3RlcnMgaXMgZHVlIHRvCit0aGUgZmFjdCB0aGF0IEdEQiBpbmRlcGVuZGVudGx5IHJldHJpZXZlcyB0aGUgbG93ZXIgYW5kIHVwcGVyIGhhbGYgb2YKK3RoZSA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPnltbTwvY29kZT4gcmVnaXN0ZXJzLiAgR0RCIGRvZXMgbm90Citob3dldmVyIGtub3cgdGhhdCB0aGUgc2hhZG93IGhhbGYgcmVnaXN0ZXJzIGhhdmUgdG8gYmUgc2hvd24gY29tYmluZWQuCis8L3A+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0ibWFudWFsLWNvcmUtYWR2LmdkYnNlcnZlci1saW1pdGF0aW9ucyI+PC9hPjMuMi44LqBMaW1pdGF0aW9ucyBvZiB0aGUgVmFsZ3JpbmQgZ2Ric2VydmVyPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPkRlYnVnZ2luZyB3aXRoIHRoZSBWYWxncmluZCBnZGJzZXJ2ZXIgaXMgdmVyeSBzaW1pbGFyIHRvIG5hdGl2ZQorZGVidWdnaW5nLiAgVmFsZ3JpbmQncyBnZGJzZXJ2ZXIgaW1wbGVtZW50YXRpb24gaXMgcXVpdGUKK2NvbXBsZXRlLCBhbmQgc28gcHJvdmlkZXMgbW9zdCBvZiB0aGUgR0RCIGRlYnVnZ2luZyBmdW5jdGlvbmFsaXR5LiAgVGhlcmUKK2FyZSBob3dldmVyIHNvbWUgbGltaXRhdGlvbnMgYW5kIHBlY3VsaWFyaXRpZXM6PC9wPgorPGRpdiBjbGFzcz0iaXRlbWl6ZWRsaXN0Ij48dWwgY2xhc3M9Iml0ZW1pemVkbGlzdCIgc3R5bGU9Imxpc3Qtc3R5bGUtdHlwZTogZGlzYzsgIj4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPgorPHA+UHJlY2lzaW9uIG9mICJzdG9wLWF0IiBjb21tYW5kcy48L3A+Cis8cD4KKyAgICAgICBHREIgY29tbWFuZHMgc3VjaCBhcyAic3RlcCIsICJuZXh0IiwgInN0ZXBpIiwgYnJlYWtwb2ludHMKKyAgICAgICBhbmQgd2F0Y2hwb2ludHMsIHdpbGwgc3RvcCB0aGUgZXhlY3V0aW9uIG9mIHRoZSBwcm9jZXNzLiAgV2l0aAorICAgICAgIHRoZSBvcHRpb24gPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS12Z2RiPXllczwvY29kZT4sIHRoZSBwcm9jZXNzIG1pZ2h0IG5vdAorICAgICAgIHN0b3AgYXQgdGhlIGV4YWN0IHJlcXVlc3RlZCBpbnN0cnVjdGlvbi4gSW5zdGVhZCwgaXQgbWlnaHQKKyAgICAgICBjb250aW51ZSBleGVjdXRpb24gb2YgdGhlIGN1cnJlbnQgYmFzaWMgYmxvY2sgYW5kIHN0b3AgYXQgb25lCisgICAgICAgb2YgdGhlIGZvbGxvd2luZyBiYXNpYyBibG9ja3MuIFRoaXMgaXMgbGlua2VkIHRvIHRoZSBmYWN0IHRoYXQKKyAgICAgICBWYWxncmluZCBnZGJzZXJ2ZXIgaGFzIHRvIGluc3RydW1lbnQgYSBibG9jayB0byBhbGxvdyBzdG9wcGluZworICAgICAgIGF0IHRoZSBleGFjdCBpbnN0cnVjdGlvbiByZXF1ZXN0ZWQuICBDdXJyZW50bHksCisgICAgICAgcmUtaW5zdHJ1bWVudGF0aW9uIG9mIHRoZSBibG9jayBjdXJyZW50bHkgYmVpbmcgZXhlY3V0ZWQgaXMgbm90CisgICAgICAgc3VwcG9ydGVkLiBTbywgaWYgdGhlIGFjdGlvbiByZXF1ZXN0ZWQgYnkgR0RCIChlLmcuIHNpbmdsZQorICAgICAgIHN0ZXBwaW5nIG9yIGluc2VydGluZyBhIGJyZWFrcG9pbnQpIGltcGxpZXMgcmUtaW5zdHJ1bWVudGF0aW9uCisgICAgICAgb2YgdGhlIGN1cnJlbnQgYmxvY2ssIHRoZSBHREIgYWN0aW9uIG1heSBub3QgYmUgZXhlY3V0ZWQKKyAgICAgICBwcmVjaXNlbHkuCisgICAgIDwvcD4KKzxwPgorICAgICAgIFRoaXMgbGltaXRhdGlvbiBhcHBsaWVzIHdoZW4gdGhlIGJhc2ljIGJsb2NrCisgICAgICAgY3VycmVudGx5IGJlaW5nIGV4ZWN1dGVkIGhhcyBub3QgeWV0IGJlZW4gaW5zdHJ1bWVudGVkIGZvciBkZWJ1Z2dpbmcuCisgICAgICAgVGhpcyB0eXBpY2FsbHkgaGFwcGVucyB3aGVuIHRoZSBnZGJzZXJ2ZXIgaXMgYWN0aXZhdGVkIGR1ZSB0byB0aGUKKyAgICAgICB0b29sIHJlcG9ydGluZyBhbiBlcnJvciBvciB0byBhIHdhdGNocG9pbnQuICBJZiB0aGUgZ2Ric2VydmVyCisgICAgICAgYmxvY2sgaGFzIGJlZW4gYWN0aXZhdGVkIGZvbGxvd2luZyBhIGJyZWFrcG9pbnQsIG9yIGlmIGEKKyAgICAgICBicmVha3BvaW50IGhhcyBiZWVuIGluc2VydGVkIGluIHRoZSBibG9jayBiZWZvcmUgaXRzIGV4ZWN1dGlvbiwKKyAgICAgICB0aGVuIHRoZSBibG9jayBoYXMgYWxyZWFkeSBiZWVuIGluc3RydW1lbnRlZCBmb3IgZGVidWdnaW5nLgorICAgICA8L3A+Cis8cD4KKyAgICAgICBJZiB5b3UgdXNlIHRoZSBvcHRpb24gPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS12Z2RiPWZ1bGw8L2NvZGU+LCB0aGVuIEdEQgorICAgICAgICJzdG9wLWF0IiBjb21tYW5kcyB3aWxsIGJlIG9iZXllZCBwcmVjaXNlbHkuICBUaGUKKyAgICAgICBkb3duc2lkZSBpcyB0aGF0IHRoaXMgcmVxdWlyZXMgZWFjaCBpbnN0cnVjdGlvbiB0byBiZQorICAgICAgIGluc3RydW1lbnRlZCB3aXRoIGFuIGFkZGl0aW9uYWwgY2FsbCB0byBhIGdkYnNlcnZlciBoZWxwZXIKKyAgICAgICBmdW5jdGlvbiwgd2hpY2ggZ2l2ZXMgY29uc2lkZXJhYmxlIG92ZXJoZWFkICgrNTAwJSBmb3IgbWVtY2hlY2spCisgICAgICAgY29tcGFyZWQgdG8gIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tdmdkYj1ubzwvY29kZT4uCisgICAgICAgT3B0aW9uIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tdmdkYj15ZXM8L2NvZGU+IGhhcyBuZWdsZWN0aWJsZSBvdmVyaGVhZCBjb21wYXJlZAorICAgICAgIHRvIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tdmdkYj1ubzwvY29kZT4uCisgICAgIDwvcD4KKzwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj4KKzxwPlByb2Nlc3NvciByZWdpc3RlcnMgYW5kIGZsYWdzIHZhbHVlcy48L3A+Cis8cD5XaGVuIFZhbGdyaW5kIGdkYnNlcnZlciBzdG9wcyBvbiBhbiBlcnJvciwgb24gYSBicmVha3BvaW50CisgICAgIG9yIHdoZW4gc2luZ2xlIHN0ZXBwaW5nLCByZWdpc3RlcnMgYW5kIGZsYWdzIHZhbHVlcyBtaWdodCBub3QgYmUgYWx3YXlzCisgICAgIHVwIHRvIGRhdGUgZHVlIHRvIHRoZSBvcHRpbWlzYXRpb25zIGRvbmUgYnkgdGhlIFZhbGdyaW5kIGNvcmUuCisgICAgIFRoZSBkZWZhdWx0IHZhbHVlIAorICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXZleC1pcm9wdC1yZWdpc3Rlci11cGRhdGVzPXVud2luZHJlZ3MtYXQtbWVtLWFjY2VzczwvY29kZT4KKyAgICAgZW5zdXJlcyB0aGF0IHRoZSByZWdpc3RlcnMgbmVlZGVkIHRvIG1ha2UgYSBzdGFjayB0cmFjZSAodHlwaWNhbGx5CisgICAgIFBDL1NQL0ZQKSBhcmUgdXAgdG8gZGF0ZSBhdCBlYWNoIG1lbW9yeSBhY2Nlc3MgKGkuZS4gbWVtb3J5IGV4Y2VwdGlvbgorICAgICBwb2ludHMpLgorICAgICBEaXNhYmxpbmcgc29tZSBvcHRpbWlzYXRpb25zIHVzaW5nIHRoZSBmb2xsb3dpbmcgdmFsdWVzIHdpbGwgaW5jcmVhc2UKKyAgICAgdGhlIHByZWNpc2lvbiBvZiByZWdpc3RlcnMgYW5kIGZsYWdzIHZhbHVlcyAoYSB0eXBpY2FsIHBlcmZvcm1hbmNlIAorICAgICBpbXBhY3QgZm9yIG1lbWNoZWNrIGlzIGdpdmVuIGZvciBlYWNoIG9wdGlvbikuCisgICAgICAgPC9wPgorPGRpdiBjbGFzcz0iaXRlbWl6ZWRsaXN0Ij48dWwgY2xhc3M9Iml0ZW1pemVkbGlzdCIgc3R5bGU9Imxpc3Qtc3R5bGUtdHlwZTogY2lyY2xlOyAiPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+Cis8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXZleC1pcm9wdC1yZWdpc3Rlci11cGRhdGVzPWFsbHJlZ3MtYXQtbWVtLWFjY2VzczwvY29kZT4gKCsxMCUpCisgICAgICAgICAgIGVuc3VyZXMgdGhhdCBhbGwgcmVnaXN0ZXJzIGFuZCBmbGFncyBhcmUgdXAgdG8gZGF0ZSBhdCBlYWNoIG1lbW9yeQorICAgICAgICAgICBhY2Nlc3MuCisgICAgICAgICA8L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+Cis8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXZleC1pcm9wdC1yZWdpc3Rlci11cGRhdGVzPWFsbHJlZ3MtYXQtZWFjaC1pbnNuPC9jb2RlPiAoKzI1JSkKKyAgICAgICAgICAgZW5zdXJlcyB0aGF0IGFsbCByZWdpc3RlcnMgYW5kIGZsYWdzIGFyZSB1cCB0byBkYXRlIGF0IGVhY2ggaW5zdHJ1Y3Rpb24uCisgICAgICAgICA8L2xpPgorPC91bD48L2Rpdj4KKzxwPgorICAgICAgIE5vdGUgdGhhdCA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXZnZGI9ZnVsbDwvY29kZT4gKCs1MDAlLCBzZWUgYWJvdmUKKyAgICAgICBQcmVjaXNpb24gb2YgInN0b3AtYXQiIGNvbW1hbmRzKSBhdXRvbWF0aWNhbGx5CisgICAgICAgYWN0aXZhdGVzIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tdmV4LWlyb3B0LXJlZ2lzdGVyLXVwZGF0ZXM9YWxscmVncy1hdC1lYWNoLWluc248L2NvZGU+LgorICAgICA8L3A+Cis8L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+Cis8cD5IYXJkd2FyZSB3YXRjaHBvaW50IHN1cHBvcnQgYnkgdGhlIFZhbGdyaW5kCisgICAgIGdkYnNlcnZlci48L3A+Cis8cD4gVGhlIFZhbGdyaW5kIGdkYnNlcnZlciBjYW4gc2ltdWxhdGUgaGFyZHdhcmUgd2F0Y2hwb2ludHMKKyAgICAgaWYgdGhlIHNlbGVjdGVkIHRvb2wgcHJvdmlkZXMgc3VwcG9ydCBmb3IgaXQuICBDdXJyZW50bHksCisgICAgIG9ubHkgTWVtY2hlY2sgcHJvdmlkZXMgaGFyZHdhcmUgd2F0Y2hwb2ludCBzaW11bGF0aW9uLiAgVGhlCisgICAgIGhhcmR3YXJlIHdhdGNocG9pbnQgc2ltdWxhdGlvbiBwcm92aWRlZCBieSBNZW1jaGVjayBpcyBtdWNoCisgICAgIGZhc3RlciB0aGF0IEdEQiBzb2Z0d2FyZSB3YXRjaHBvaW50cywgd2hpY2ggYXJlIGltcGxlbWVudGVkIGJ5CisgICAgIEdEQiBjaGVja2luZyB0aGUgdmFsdWUgb2YgdGhlIHdhdGNoZWQgem9uZShzKSBhZnRlciBlYWNoCisgICAgIGluc3RydWN0aW9uLiAgSGFyZHdhcmUgd2F0Y2hwb2ludCBzaW11bGF0aW9uIGFsc28gcHJvdmlkZXMgcmVhZAorICAgICB3YXRjaHBvaW50cy4gIFRoZSBoYXJkd2FyZSB3YXRjaHBvaW50IHNpbXVsYXRpb24gYnkgTWVtY2hlY2sgaGFzCisgICAgIHNvbWUgbGltaXRhdGlvbnMgY29tcGFyZWQgdG8gcmVhbCBoYXJkd2FyZQorICAgICB3YXRjaHBvaW50cy4gSG93ZXZlciwgdGhlIG51bWJlciBhbmQgbGVuZ3RoIG9mIHNpbXVsYXRlZAorICAgICB3YXRjaHBvaW50cyBhcmUgbm90IGxpbWl0ZWQuCisgICAgIDwvcD4KKzxwPlR5cGljYWxseSwgdGhlIG51bWJlciBvZiAocmVhbCkgaGFyZHdhcmUgd2F0Y2hwb2ludHMgaXMKKyAgICAgbGltaXRlZC4gIEZvciBleGFtcGxlLCB0aGUgeDg2IGFyY2hpdGVjdHVyZSBzdXBwb3J0cyBhIG1heGltdW0gb2YKKyAgICAgNCBoYXJkd2FyZSB3YXRjaHBvaW50cywgZWFjaCB3YXRjaHBvaW50IHdhdGNoaW5nIDEsIDIsIDQgb3IgOAorICAgICBieXRlcy4gVGhlIFZhbGdyaW5kIGdkYnNlcnZlciBkb2VzIG5vdCBoYXZlIGFueSBsaW1pdGF0aW9uIG9uIHRoZQorICAgICBudW1iZXIgb2Ygc2ltdWxhdGVkIGhhcmR3YXJlIHdhdGNocG9pbnRzLiBJdCBhbHNvIGhhcyBubworICAgICBsaW1pdGF0aW9uIG9uIHRoZSBsZW5ndGggb2YgdGhlIG1lbW9yeSB6b25lIGJlaW5nCisgICAgIHdhdGNoZWQuICBVc2luZyBHREIgdmVyc2lvbiA3LjQgb3IgbGF0ZXIgYWxsb3cgZnVsbCB1c2Ugb2YgdGhlCisgICAgIGZsZXhpYmlsaXR5IG9mIHRoZSBWYWxncmluZCBnZGJzZXJ2ZXIncyBzaW11bGF0ZWQgaGFyZHdhcmUgd2F0Y2hwb2ludHMuCisgICAgIFByZXZpb3VzIEdEQiB2ZXJzaW9ucyBkbyBub3QgdW5kZXJzdGFuZCB0aGF0IFZhbGdyaW5kIGdkYnNlcnZlcgorICAgICB3YXRjaHBvaW50cyBoYXZlIG5vIGxlbmd0aCBsaW1pdC4KKyAgICAgPC9wPgorPHA+TWVtY2hlY2sgaW1wbGVtZW50cyBoYXJkd2FyZSB3YXRjaHBvaW50IHNpbXVsYXRpb24gYnkKKyAgICAgbWFya2luZyB0aGUgd2F0Y2hlZCBhZGRyZXNzIHJhbmdlcyBhcyBiZWluZyB1bmFkZHJlc3NhYmxlLiAgV2hlbgorICAgICBhIGhhcmR3YXJlIHdhdGNocG9pbnQgaXMgcmVtb3ZlZCwgdGhlIHJhbmdlIGlzIG1hcmtlZCBhcworICAgICBhZGRyZXNzYWJsZSBhbmQgZGVmaW5lZC4gIEhhcmR3YXJlIHdhdGNocG9pbnQgc2ltdWxhdGlvbiBvZgorICAgICBhZGRyZXNzYWJsZS1idXQtdW5kZWZpbmVkIG1lbW9yeSB6b25lcyB3b3JrcyBwcm9wZXJseSwgYnV0IGhhcworICAgICB0aGUgdW5kZXNpcmFibGUgc2lkZSBlZmZlY3Qgb2YgbWFya2luZyB0aGUgem9uZSBhcyBkZWZpbmVkIHdoZW4KKyAgICAgdGhlIHdhdGNocG9pbnQgaXMgcmVtb3ZlZC4KKyAgICAgPC9wPgorPHA+V3JpdGUgd2F0Y2hwb2ludHMgbWlnaHQgbm90IGJlIHJlcG9ydGVkIGF0IHRoZSAKKyAgICAgZXhhY3QgaW5zdHJ1Y3Rpb24gdGhhdCB3cml0ZXMgdGhlIG1vbml0b3JlZCBhcmVhLAorICAgICB1bmxlc3Mgb3B0aW9uIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tdmdkYj1mdWxsPC9jb2RlPiBpcyBnaXZlbi4gIFJlYWQgd2F0Y2hwb2ludHMKKyAgICAgd2lsbCBhbHdheXMgYmUgcmVwb3J0ZWQgYXQgdGhlIGV4YWN0IGluc3RydWN0aW9uIHJlYWRpbmcgdGhlCisgICAgIHdhdGNoZWQgbWVtb3J5LgorICAgICA8L3A+Cis8cD5JdCBpcyBiZXR0ZXIgdG8gYXZvaWQgdXNpbmcgaGFyZHdhcmUgd2F0Y2hwb2ludCBvZiBub3QKKyAgICAgYWRkcmVzc2FibGUgKHlldCkgbWVtb3J5OiBpbiBzdWNoIGEgY2FzZSwgR0RCIHdpbGwgZmFsbCBiYWNrIHRvCisgICAgIGV4dHJlbWVseSBzbG93IHNvZnR3YXJlIHdhdGNocG9pbnRzLiAgQWxzbywgaWYgeW91IGRvIG5vdCBxdWl0IEdEQgorICAgICBiZXR3ZWVuIHR3byBkZWJ1Z2dpbmcgc2Vzc2lvbnMsIHRoZSBoYXJkd2FyZSB3YXRjaHBvaW50cyBvZiB0aGUKKyAgICAgcHJldmlvdXMgc2Vzc2lvbnMgd2lsbCBiZSByZS1pbnNlcnRlZCBhcyBzb2Z0d2FyZSB3YXRjaHBvaW50cyBpZgorICAgICB0aGUgd2F0Y2hlZCBtZW1vcnkgem9uZSBpcyBub3QgYWRkcmVzc2FibGUgYXQgcHJvZ3JhbSBzdGFydHVwLgorICAgICA8L3A+Cis8L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+Cis8cD5TdGVwcGluZyBpbnNpZGUgc2hhcmVkIGxpYnJhcmllcyBvbiBBUk0uPC9wPgorPHA+Rm9yIHVua25vd24gcmVhc29ucywgc3RlcHBpbmcgaW5zaWRlIHNoYXJlZAorICAgICBsaWJyYXJpZXMgb24gQVJNIG1heSBmYWlsLiAgQSB3b3JrYXJvdW5kIGlzIHRvIHVzZSB0aGUKKyAgICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5sZGQ8L2NvZGU+IGNvbW1hbmQKKyAgICAgdG8gZmluZCB0aGUgbGlzdCBvZiBzaGFyZWQgbGlicmFyaWVzIGFuZCB0aGVpciBsb2FkaW5nIGFkZHJlc3MKKyAgICAgYW5kIGluZm9ybSBHREIgb2YgdGhlIGxvYWRpbmcgYWRkcmVzcyB1c2luZyB0aGUgR0RCIGNvbW1hbmQKKyAgICAgImFkZC1zeW1ib2wtZmlsZSIuIEV4YW1wbGU6CisgICAgIDwvcD4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KKyhnZGIpIHNoZWxsIGxkZCAuL3Byb2cKKwlsaWJjLnNvLjYgPSZndDsgL2xpYi9saWJjLnNvLjYgKDB4NDAwMmMwMDApCisJL2xpYi9sZC1saW51eC5zby4zICgweDQwMDAwMDAwKQorKGdkYikgYWRkLXN5bWJvbC1maWxlIC9saWIvbGliYy5zby42IDB4NDAwMmMwMDAKK2FkZCBzeW1ib2wgdGFibGUgZnJvbSBmaWxlICIvbGliL2xpYmMuc28uNiIgYXQKKwkudGV4dF9hZGRyID0gMHg0MDAyYzAwMAorKHkgb3IgbikgeQorUmVhZGluZyBzeW1ib2xzIGZyb20gL2xpYi9saWJjLnNvLjYuLi4obm8gZGVidWdnaW5nIHN5bWJvbHMgZm91bmQpLi4uZG9uZS4KKyhnZGIpIAorPC9wcmU+Cis8cD4KKyAgICAgPC9wPgorPC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPgorPHA+R0RCIHZlcnNpb24gbmVlZGVkIGZvciBBUk0gYW5kIFBQQzMyLzY0LjwvcD4KKzxwPllvdSBtdXN0IHVzZSBhIEdEQiB2ZXJzaW9uIHdoaWNoIGlzIGFibGUgdG8gcmVhZCBYTUwKKyAgICAgdGFyZ2V0IGRlc2NyaXB0aW9uIHNlbnQgYnkgYSBnZGJzZXJ2ZXIuICBUaGlzIGlzIHRoZSBzdGFuZGFyZCBzZXR1cAorICAgICBpZiBHREIgd2FzIGNvbmZpZ3VyZWQgYW5kIGJ1aWx0IHdpdGggdGhlICJleHBhdCIKKyAgICAgbGlicmFyeS4gIElmIHlvdXIgR0RCIHdhcyBub3QgY29uZmlndXJlZCB3aXRoIFhNTCBzdXBwb3J0LCBpdAorICAgICB3aWxsIHJlcG9ydCBhbiBlcnJvciBtZXNzYWdlIHdoZW4gdXNpbmcgdGhlICJ0YXJnZXQiCisgICAgIGNvbW1hbmQuICBEZWJ1Z2dpbmcgd2lsbCBub3Qgd29yayBiZWNhdXNlIEdEQiB3aWxsIHRoZW4gbm90IGJlCisgICAgIGFibGUgdG8gZmV0Y2ggdGhlIHJlZ2lzdGVycyBmcm9tIHRoZSBWYWxncmluZCBnZGJzZXJ2ZXIuCisgICAgIEZvciBBUk0gcHJvZ3JhbXMgdXNpbmcgdGhlIFRodW1iIGluc3RydWN0aW9uIHNldCwgeW91IG11c3QgdXNlCisgICAgIGEgR0RCIHZlcnNpb24gb2YgNy4xIG9yIGxhdGVyLCBhcyBlYXJsaWVyIHZlcnNpb25zIGhhdmUgcHJvYmxlbXMKKyAgICAgd2l0aCBuZXh0L3N0ZXAvYnJlYWtwb2ludHMgaW4gVGh1bWIgY29kZS4KKyAgICAgPC9wPgorPC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPgorPHA+U3RhY2sgdW53aW5kaW5nIG9uIFBQQzMyL1BQQzY0LiA8L3A+Cis8cD5PbiBQUEMzMi9QUEM2NCwgc3RhY2sgdW53aW5kaW5nIGZvciBsZWFmIGZ1bmN0aW9ucworICAgICAoZnVuY3Rpb25zIHRoYXQgZG8gbm90IGNhbGwgYW55IG90aGVyIGZ1bmN0aW9ucykgd29ya3MgcHJvcGVybHkKKyAgICAgb25seSB3aGVuIHlvdSBnaXZlIHRoZSBvcHRpb24KKyAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS12ZXgtaXJvcHQtcmVnaXN0ZXItdXBkYXRlcz1hbGxyZWdzLWF0LW1lbS1hY2Nlc3M8L2NvZGU+CisgICAgIG9yIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tdmV4LWlyb3B0LXJlZ2lzdGVyLXVwZGF0ZXM9YWxscmVncy1hdC1lYWNoLWluc248L2NvZGU+LgorICAgICBZb3UgbXVzdCBhbHNvIHBhc3MgdGhpcyBvcHRpb24gaW4gb3JkZXIgdG8gZ2V0IGEgcHJlY2lzZSBzdGFjayB3aGVuCisgICAgIGEgc2lnbmFsIGlzIHRyYXBwZWQgYnkgR0RCLgorICAgICA8L3A+Cis8L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+Cis8cD5CcmVha3BvaW50cyBlbmNvdW50ZXJlZCBtdWx0aXBsZSB0aW1lcy48L3A+Cis8cD5Tb21lIGluc3RydWN0aW9ucyAoZS5nLiB4ODYgInJlcCBtb3ZzYiIpCisgICAgIGFyZSB0cmFuc2xhdGVkIGJ5IFZhbGdyaW5kIHVzaW5nIGEgbG9vcC4gIElmIGEgYnJlYWtwb2ludCBpcyBwbGFjZWQKKyAgICAgb24gc3VjaCBhbiBpbnN0cnVjdGlvbiwgdGhlIGJyZWFrcG9pbnQgd2lsbCBiZSBlbmNvdW50ZXJlZAorICAgICBtdWx0aXBsZSB0aW1lcyAtLSBvbmNlIGZvciBlYWNoIHN0ZXAgb2YgdGhlICJpbXBsaWNpdCIgbG9vcAorICAgICBpbXBsZW1lbnRpbmcgdGhlIGluc3RydWN0aW9uLgorICAgICA8L3A+Cis8L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+Cis8cD5FeGVjdXRpb24gb2YgSW5mZXJpb3IgZnVuY3Rpb24gY2FsbHMgYnkgdGhlIFZhbGdyaW5kCisgICAgIGdkYnNlcnZlci48L3A+Cis8cD5HREIgYWxsb3dzIHRoZSB1c2VyIHRvICJjYWxsIiBmdW5jdGlvbnMgaW5zaWRlIHRoZSBwcm9jZXNzCisgICAgIGJlaW5nIGRlYnVnZ2VkLiAgU3VjaCBjYWxscyBhcmUgbmFtZWQgImluZmVyaW9yIGNhbGxzIiBpbiB0aGUgR0RCCisgICAgIHRlcm1pbm9sb2d5LiAgQSB0eXBpY2FsIHVzZSBvZiBhbiBpbmZlcmlvciBjYWxsIGlzIHRvIGV4ZWN1dGUKKyAgICAgYSBmdW5jdGlvbiB0aGF0IHByaW50cyBhIGh1bWFuLXJlYWRhYmxlIHZlcnNpb24gb2YgYSBjb21wbGV4IGRhdGEKKyAgICAgc3RydWN0dXJlLiAgVG8gbWFrZSBhbiBpbmZlcmlvciBjYWxsLCB1c2UgdGhlIEdEQiAicHJpbnQiIGNvbW1hbmQKKyAgICAgZm9sbG93ZWQgYnkgdGhlIGZ1bmN0aW9uIHRvIGNhbGwgYW5kIGl0cyBhcmd1bWVudHMuICBBcyBhbgorICAgICBleGFtcGxlLCB0aGUgZm9sbG93aW5nIEdEQiBjb21tYW5kIGNhdXNlcyBhbiBpbmZlcmlvciBjYWxsIHRvIHRoZQorICAgICBsaWJjICJwcmludGYiIGZ1bmN0aW9uIHRvIGJlIGV4ZWN1dGVkIGJ5IHRoZSBwcm9jZXNzCisgICAgIGJlaW5nIGRlYnVnZ2VkOgorICAgICA8L3A+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CisoZ2RiKSBwIHByaW50ZigicHJvY2VzcyBiZWluZyBkZWJ1Z2dlZCBoYXMgcGlkICVkXG4iLCBnZXRwaWQoKSkKKyQ1ID0gMzYKKyhnZGIpIAorPC9wcmU+Cis8cD5UaGUgVmFsZ3JpbmQgZ2Ric2VydmVyIHN1cHBvcnRzIGluZmVyaW9yIGZ1bmN0aW9uIGNhbGxzLgorICAgICBXaGlsc3QgYW4gaW5mZXJpb3IgY2FsbCBpcyBydW5uaW5nLCB0aGUgVmFsZ3JpbmQgdG9vbCB3aWxsIHJlcG9ydAorICAgICBlcnJvcnMgYXMgdXN1YWwuICBJZiB5b3UgZG8gbm90IHdhbnQgdG8gaGF2ZSBzdWNoIGVycm9ycyBzdG9wIHRoZQorICAgICBleGVjdXRpb24gb2YgdGhlIGluZmVyaW9yIGNhbGwsIHlvdSBjYW4KKyAgICAgdXNlIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+di5zZXQgdmdkYi1lcnJvcjwvY29kZT4gdG8gc2V0IGEKKyAgICAgYmlnIHZhbHVlIGJlZm9yZSB0aGUgY2FsbCwgdGhlbiBtYW51YWxseSByZXNldCBpdCB0byBpdHMgb3JpZ2luYWwKKyAgICAgdmFsdWUgd2hlbiB0aGUgY2FsbCBpcyBjb21wbGV0ZS48L3A+Cis8cD5UbyBleGVjdXRlIGluZmVyaW9yIGNhbGxzLCBHREIgY2hhbmdlcyByZWdpc3RlcnMgc3VjaCBhcworICAgICB0aGUgcHJvZ3JhbSBjb3VudGVyLCBhbmQgdGhlbiBjb250aW51ZXMgdGhlIGV4ZWN1dGlvbiBvZiB0aGUKKyAgICAgcHJvZ3JhbS4gSW4gYSBtdWx0aXRocmVhZGVkIHByb2dyYW0sIGFsbCB0aHJlYWRzIGFyZSBjb250aW51ZWQsCisgICAgIG5vdCBqdXN0IHRoZSB0aHJlYWQgaW5zdHJ1Y3RlZCB0byBtYWtlIHRoZSBpbmZlcmlvciBjYWxsLiAgSWYKKyAgICAgYW5vdGhlciB0aHJlYWQgcmVwb3J0cyBhbiBlcnJvciBvciBlbmNvdW50ZXJzIGEgYnJlYWtwb2ludCwgdGhlCisgICAgIGV2YWx1YXRpb24gb2YgdGhlIGluZmVyaW9yIGNhbGwgaXMgYWJhbmRvbmVkLjwvcD4KKzxwPk5vdGUgdGhhdCBpbmZlcmlvciBmdW5jdGlvbiBjYWxscyBhcmUgYSBwb3dlcmZ1bCBHREIKKyAgICAgZmVhdHVyZSwgYnV0IHNob3VsZCBiZSB1c2VkIHdpdGggY2F1dGlvbi4gRm9yIGV4YW1wbGUsIGlmCisgICAgIHRoZSBwcm9ncmFtIGJlaW5nIGRlYnVnZ2VkIGlzIHN0b3BwZWQgaW5zaWRlIHRoZSBmdW5jdGlvbiAicHJpbnRmIiwKKyAgICAgZm9yY2luZyBhIHJlY3Vyc2l2ZSBjYWxsIHRvIHByaW50ZiB2aWEgYW4gaW5mZXJpb3IgY2FsbCB3aWxsCisgICAgIHZlcnkgcHJvYmFibHkgY3JlYXRlIHByb2JsZW1zLiAgVGhlIFZhbGdyaW5kIHRvb2wgbWlnaHQgYWxzbyBhZGQKKyAgICAgYW5vdGhlciBsZXZlbCBvZiBjb21wbGV4aXR5IHRvIGluZmVyaW9yIGNhbGxzLCBlLmcuIGJ5IHJlcG9ydGluZworICAgICB0b29sIGVycm9ycyBkdXJpbmcgdGhlIEluZmVyaW9yIGNhbGwgb3IgZHVlIHRvIHRoZQorICAgICBpbnN0cnVtZW50YXRpb24gZG9uZS4KKyAgICAgPC9wPgorPC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPgorPHA+Q29ubmVjdGluZyB0byBvciBpbnRlcnJ1cHRpbmcgYSBWYWxncmluZCBwcm9jZXNzIGJsb2NrZWQgaW4KKyAgICAgYSBzeXN0ZW0gY2FsbC48L3A+Cis8cD5Db25uZWN0aW5nIHRvIG9yIGludGVycnVwdGluZyBhIFZhbGdyaW5kIHByb2Nlc3MgYmxvY2tlZCBpbgorICAgICBhIHN5c3RlbSBjYWxsIHJlcXVpcmVzIHRoZSAicHRyYWNlIiBzeXN0ZW0gY2FsbCB0byBiZSB1c2FibGUuCisgICAgIFRoaXMgbWF5IGJlIGRpc2FibGVkIGluIHlvdXIga2VybmVsIGZvciBzZWN1cml0eSByZWFzb25zLgorICAgICA8L3A+Cis8cD5XaGVuIHJ1bm5pbmcgeW91ciBwcm9ncmFtLCBWYWxncmluZCdzIHNjaGVkdWxlcgorICAgICBwZXJpb2RpY2FsbHkgY2hlY2tzIHdoZXRoZXIgdGhlcmUgaXMgYW55IHdvcmsgdG8gYmUgaGFuZGxlZCBieQorICAgICB0aGUgZ2Ric2VydmVyLiAgVW5mb3J0dW5hdGVseSB0aGlzIGNoZWNrIGlzIG9ubHkgZG9uZSBpZiBhdCBsZWFzdAorICAgICBvbmUgdGhyZWFkIG9mIHRoZSBwcm9jZXNzIGlzIHJ1bm5hYmxlLiAgSWYgYWxsIHRoZSB0aHJlYWRzIG9mIHRoZQorICAgICBwcm9jZXNzIGFyZSBibG9ja2VkIGluIGEgc3lzdGVtIGNhbGwsIHRoZW4gdGhlIGNoZWNrcyBkbyBub3QKKyAgICAgaGFwcGVuLCBhbmQgdGhlIFZhbGdyaW5kIHNjaGVkdWxlciB3aWxsIG5vdCBpbnZva2UgdGhlIGdkYnNlcnZlci4KKyAgICAgSW4gc3VjaCBhIGNhc2UsIHRoZSB2Z2RiIHJlbGF5IGFwcGxpY2F0aW9uIHdpbGwgImZvcmNlIiB0aGUKKyAgICAgZ2Ric2VydmVyIHRvIGJlIGludm9rZWQsIHdpdGhvdXQgdGhlIGludGVydmVudGlvbiBvZiB0aGUgVmFsZ3JpbmQKKyAgICAgc2NoZWR1bGVyLgorICAgICA8L3A+Cis8cD5TdWNoIGZvcmNlZCBpbnZvY2F0aW9uIG9mIHRoZSBWYWxncmluZCBnZGJzZXJ2ZXIgaXMKKyAgICAgaW1wbGVtZW50ZWQgYnkgdmdkYiB1c2luZyBwdHJhY2Ugc3lzdGVtIGNhbGxzLiAgT24gYSBwcm9wZXJseQorICAgICBpbXBsZW1lbnRlZCBrZXJuZWwsIHRoZSBwdHJhY2UgY2FsbHMgZG9uZSBieSB2Z2RiIHdpbGwgbm90CisgICAgIGluZmx1ZW5jZSB0aGUgYmVoYXZpb3VyIG9mIHRoZSBwcm9ncmFtIHJ1bm5pbmcgdW5kZXIgVmFsZ3JpbmQuCisgICAgIElmIGhvd2V2ZXIgdGhleSBkbywgZ2l2aW5nIHRoZQorICAgICBvcHRpb24gPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1tYXgtaW52b2tlLW1zPTA8L2NvZGU+IHRvIHRoZSB2Z2RiIHJlbGF5CisgICAgIGFwcGxpY2F0aW9uIHdpbGwgZGlzYWJsZSB0aGUgdXNhZ2Ugb2YgcHRyYWNlIGNhbGxzLiAgVGhlCisgICAgIGNvbnNlcXVlbmNlIG9mIGRpc2FibGluZyBwdHJhY2UgdXNhZ2UgaW4gdmdkYiBpcyB0aGF0IGEgVmFsZ3JpbmQKKyAgICAgcHJvY2VzcyBibG9ja2VkIGluIGEgc3lzdGVtIGNhbGwgY2Fubm90IGJlIHdva2VuIHVwIG9yCisgICAgIGludGVycnVwdGVkIGZyb20gR0RCIHVudGlsIGl0IGV4ZWN1dGVzIGVub3VnaCBiYXNpYyBibG9ja3MgdG8gbGV0CisgICAgIHRoZSBWYWxncmluZCBzY2hlZHVsZXIncyBub3JtYWwgY2hlY2tpbmcgdGFrZSBlZmZlY3QuCisgICAgIDwvcD4KKzxwPldoZW4gcHRyYWNlIGlzIGRpc2FibGVkIGluIHZnZGIsIHlvdSBjYW4gaW5jcmVhc2UgdGhlCisgICAgIHJlc3BvbnNpdmVuZXNzIG9mIHRoZSBWYWxncmluZCBnZGJzZXJ2ZXIgdG8gY29tbWFuZHMgb3IKKyAgICAgaW50ZXJydXB0cyBieSBnaXZpbmcgYSBsb3dlciB2YWx1ZSB0byB0aGUKKyAgICAgb3B0aW9uIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tdmdkYi1wb2xsPC9jb2RlPi4gIElmIHlvdXIgYXBwbGljYXRpb24gaXMKKyAgICAgYmxvY2tlZCBpbiBzeXN0ZW0gY2FsbHMgbW9zdCBvZiB0aGUgdGltZSwgdXNpbmcgYSB2ZXJ5IGxvdyB2YWx1ZQorICAgICBmb3IgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS12Z2RiLXBvbGw8L2NvZGU+IHdpbGwgY2F1c2UgYSB0aGUgZ2Ric2VydmVyIHRvIGJlCisgICAgIGludm9rZWQgc29vbmVyLiAgVGhlIGdkYnNlcnZlciBwb2xsaW5nIGRvbmUgYnkgVmFsZ3JpbmQncworICAgICBzY2hlZHVsZXIgaXMgdmVyeSBlZmZpY2llbnQsIHNvIHRoZSBpbmNyZWFzZWQgcG9sbGluZyBmcmVxdWVuY3kKKyAgICAgc2hvdWxkIG5vdCBjYXVzZSBzaWduaWZpY2FudCBwZXJmb3JtYW5jZSBkZWdyYWRhdGlvbi4KKyAgICAgPC9wPgorPHA+V2hlbiBwdHJhY2UgaXMgZGlzYWJsZWQgaW4gdmdkYiwgYSBxdWVyeSBwYWNrZXQgc2VudCBieSBHREIKKyAgICAgbWF5IHRha2Ugc2lnbmlmaWNhbnQgdGltZSB0byBiZSBoYW5kbGVkIGJ5IHRoZSBWYWxncmluZAorICAgICBnZGJzZXJ2ZXIuICBJbiBzdWNoIGNhc2VzLCBHREIgbWlnaHQgZW5jb3VudGVyIGEgcHJvdG9jb2wKKyAgICAgdGltZW91dC4gIFRvIGF2b2lkIHRoaXMsCisgICAgIHlvdSBjYW4gaW5jcmVhc2UgdGhlIHZhbHVlIG9mIHRoZSB0aW1lb3V0IGJ5IHVzaW5nIHRoZSBHREIKKyAgICAgY29tbWFuZCAic2V0IHJlbW90ZXRpbWVvdXQiLgorICAgICA8L3A+Cis8cD5VYnVudHUgdmVyc2lvbnMgMTAuMTAgYW5kIGxhdGVyIG1heSByZXN0cmljdCB0aGUgc2NvcGUgb2YKKyAgICAgcHRyYWNlIHRvIHRoZSBjaGlsZHJlbiBvZiB0aGUgcHJvY2VzcyBjYWxsaW5nIHB0cmFjZS4gIEFzIHRoZQorICAgICBWYWxncmluZCBwcm9jZXNzIGlzIG5vdCBhIGNoaWxkIG9mIHZnZGIsIHN1Y2ggcmVzdHJpY3RlZCBzY29waW5nCisgICAgIGNhdXNlcyB0aGUgcHRyYWNlIGNhbGxzIHRvIGZhaWwuICBUbyBhdm9pZCB0aGF0LCBWYWxncmluZCB3aWxsCisgICAgIGF1dG9tYXRpY2FsbHkgYWxsb3cgYWxsIHByb2Nlc3NlcyBiZWxvbmdpbmcgdG8gdGhlIHNhbWUgdXNlcmlkIHRvCisgICAgICJwdHJhY2UiIGEgVmFsZ3JpbmQgcHJvY2VzcywgYnkgdXNpbmcgUFJfU0VUX1BUUkFDRVIuPC9wPgorPHA+VW5ibG9ja2luZyBwcm9jZXNzZXMgYmxvY2tlZCBpbiBzeXN0ZW0gY2FsbHMgaXMgbm90CisgICAgIGN1cnJlbnRseSBpbXBsZW1lbnRlZCBvbiBNYWMgT1MgWCBhbmQgQW5kcm9pZC4gIFNvIHlvdSBjYW5ub3QKKyAgICAgY29ubmVjdCB0byBvciBpbnRlcnJ1cHQgYSBwcm9jZXNzIGJsb2NrZWQgaW4gYSBzeXN0ZW0gY2FsbCBvbiBNYWMKKyAgICAgT1MgWCBvciBBbmRyb2lkLgorICAgICA8L3A+Cis8L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+Cis8cD5DaGFuZ2luZyByZWdpc3RlciB2YWx1ZXMuPC9wPgorPHA+VGhlIFZhbGdyaW5kIGdkYnNlcnZlciB3aWxsIG9ubHkgbW9kaWZ5IHRoZSB2YWx1ZXMgb2YgdGhlCisgICAgIHRocmVhZCdzIHJlZ2lzdGVycyB3aGVuIHRoZSB0aHJlYWQgaXMgaW4gc3RhdHVzIFJ1bm5hYmxlIG9yCisgICAgIFlpZWxkaW5nLiAgSW4gb3RoZXIgc3RhdGVzICh0eXBpY2FsbHksIFdhaXRTeXMpLCBhdHRlbXB0cyB0bworICAgICBjaGFuZ2UgcmVnaXN0ZXIgdmFsdWVzIHdpbGwgZmFpbC4gIEFtb25nc3Qgb3RoZXIgdGhpbmdzLCB0aGlzCisgICAgIG1lYW5zIHRoYXQgaW5mZXJpb3IgY2FsbHMgYXJlIG5vdCBleGVjdXRlZCBmb3IgYSB0aHJlYWQgd2hpY2ggaXMKKyAgICAgaW4gYSBzeXN0ZW0gY2FsbCwgc2luY2UgdGhlIFZhbGdyaW5kIGdkYnNlcnZlciBkb2VzIG5vdCBpbXBsZW1lbnQKKyAgICAgc3lzdGVtIGNhbGwgcmVzdGFydC4KKyAgICAgPC9wPgorPC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPgorPHA+VW5zdXBwb3J0ZWQgR0RCIGZ1bmN0aW9uYWxpdHkuPC9wPgorPHA+R0RCIHByb3ZpZGVzIGEgbG90IG9mIGRlYnVnZ2luZyBmdW5jdGlvbmFsaXR5IGFuZCBub3QgYWxsCisgICAgIG9mIGl0IGlzIHN1cHBvcnRlZC4gIFNwZWNpZmljYWxseSwgdGhlIGZvbGxvd2luZyBhcmUgbm90CisgICAgIHN1cHBvcnRlZDogcmV2ZXJzaWJsZSBkZWJ1Z2dpbmcgYW5kIHRyYWNlcG9pbnRzLgorICAgICA8L3A+Cis8L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+Cis8cD5Vbmtub3duIGxpbWl0YXRpb25zIG9yIHByb2JsZW1zLjwvcD4KKzxwPlRoZSBjb21iaW5hdGlvbiBvZiBHREIsIFZhbGdyaW5kIGFuZCB0aGUgVmFsZ3JpbmQgZ2Ric2VydmVyCisgICAgIHByb2JhYmx5IGhhcyB1bmtub3duIG90aGVyIGxpbWl0YXRpb25zIGFuZCBwcm9ibGVtcy4gIElmIHlvdQorICAgICBlbmNvdW50ZXIgc3RyYW5nZSBvciB1bmV4cGVjdGVkIGJlaGF2aW91ciwgZmVlbCBmcmVlIHRvIHJlcG9ydCBhCisgICAgIGJ1Zy4gIEJ1dCBmaXJzdCBwbGVhc2UgdmVyaWZ5IHRoYXQgdGhlIGxpbWl0YXRpb24gb3IgcHJvYmxlbSBpcworICAgICBub3QgaW5oZXJlbnQgdG8gR0RCIG9yIHRoZSBHREIgcmVtb3RlIHByb3RvY29sLiAgWW91IG1heSBiZSBhYmxlCisgICAgIHRvIGRvIHNvIGJ5IGNoZWNraW5nIHRoZSBiZWhhdmlvdXIgd2hlbiB1c2luZyBzdGFuZGFyZCBnZGJzZXJ2ZXIKKyAgICAgcGFydCBvZiB0aGUgR0RCIHBhY2thZ2UuCisgICAgIDwvcD4KKzwvbGk+Cis8L3VsPjwvZGl2PgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MiI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9Im1hbnVhbC1jb3JlLWFkdi52Z2RiIj48L2E+My4yLjkuoHZnZGIgY29tbWFuZCBsaW5lIG9wdGlvbnM8L2gzPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+IFVzYWdlOiA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPnZnZGIgW09QVElPTl0uLi4gW1stY10gQ09NTUFORF0uLi48L2NvZGU+PC9wPgorPHA+IHZnZGIgKCJWYWxncmluZCB0byBHREIiKSBpcyBhIHNtYWxsIHByb2dyYW0gdGhhdCBpcyB1c2VkIGFzIGFuCitpbnRlcm1lZGlhcnkgYmV0d2VlbiBWYWxncmluZCBhbmQgR0RCIG9yIGEgc2hlbGwuCitUaGVyZWZvcmUsIGl0IGhhcyB0d28gdXNhZ2UgbW9kZXM6Cis8L3A+Cis8ZGl2IGNsYXNzPSJvcmRlcmVkbGlzdCI+Cis8YSBuYW1lPSJ2Z2RiLmRlc2MubW9kZXMiPjwvYT48b2wgY2xhc3M9Im9yZGVyZWRsaXN0IiB0eXBlPSIxIj4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPjxhIG5hbWU9Im1hbnVhbC1jb3JlLWFkdi52Z2RiLXN0YW5kYWxvbmUiPjwvYT5BcyBhIHN0YW5kYWxvbmUgdXRpbGl0eSwgaXQgaXMgdXNlZCBmcm9tIGEgc2hlbGwgY29tbWFuZAorICAgIGxpbmUgdG8gc2VuZCBtb25pdG9yIGNvbW1hbmRzIHRvIGEgcHJvY2VzcyBydW5uaW5nIHVuZGVyCisgICAgVmFsZ3JpbmQuIEZvciB0aGlzIHVzYWdlLCB0aGUgdmdkYiBPUFRJT04ocykgbXVzdCBiZSBmb2xsb3dlZCBieQorICAgIHRoZSBtb25pdG9yIGNvbW1hbmQgdG8gc2VuZC4gVG8gc2VuZCBtb3JlIHRoYW4gb25lIGNvbW1hbmQsCisgICAgc2VwYXJhdGUgdGhlbSB3aXRoIHRoZSA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tYzwvY29kZT4gb3B0aW9uLgorICAgIDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+PGEgbmFtZT0ibWFudWFsLWNvcmUtYWR2LnZnZGItcmVsYXkiPjwvYT5JbiBjb21iaW5hdGlvbiB3aXRoIEdEQiAidGFyZ2V0IHJlbW90ZSB8IiBjb21tYW5kLCBpdCBpcworICAgIHVzZWQgYXMgdGhlIHJlbGF5IGFwcGxpY2F0aW9uIGJldHdlZW4gR0RCIGFuZCB0aGUgVmFsZ3JpbmQKKyAgICBnZGJzZXJ2ZXIuICBGb3IgdGhpcyB1c2FnZSwgb25seSBPUFRJT04ocykgY2FuIGJlIGdpdmVuLCBidXQgbm8KKyAgICBDT01NQU5EIGNhbiBiZSBnaXZlbi4KKyAgICA8L3A+PC9saT4KKzwvb2w+Cis8L2Rpdj4KKzxwPjxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+dmdkYjwvY29kZT4gYWNjZXB0cyB0aGUgZm9sbG93aW5nCitvcHRpb25zOjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+Cis8YSBuYW1lPSJ2Z2RiLm9wdHMubGlzdCI+PC9hPjxkbCBjbGFzcz0idmFyaWFibGVsaXN0Ij4KKzxkdD48c3BhbiBjbGFzcz0idGVybSI+PGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1waWQ9Jmx0O251bWJlciZndDs8L2NvZGU+PC9zcGFuPjwvZHQ+Cis8ZGQ+PHA+U3BlY2lmaWVzIHRoZSBQSUQgb2YKKyAgICB0aGUgcHJvY2VzcyB0byB3aGljaCB2Z2RiIG11c3QgY29ubmVjdCB0by4gIFRoaXMgb3B0aW9uIGlzIHVzZWZ1bAorICAgIGluIGNhc2UgbW9yZSB0aGFuIG9uZSBWYWxncmluZCBnZGJzZXJ2ZXIgY2FuIGJlIGNvbm5lY3RlZCB0by4gIElmCisgICAgdGhlIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tcGlkPC9jb2RlPiBhcmd1bWVudCBpcyBub3QgZ2l2ZW4gYW5kIG11bHRpcGxlCisgICAgVmFsZ3JpbmQgZ2Ric2VydmVyIHByb2Nlc3NlcyBhcmUgcnVubmluZywgdmdkYiB3aWxsIHJlcG9ydCB0aGUKKyAgICBsaXN0IG9mIHN1Y2ggcHJvY2Vzc2VzIGFuZCB0aGVuIGV4aXQuPC9wPjwvZGQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPjxjb2RlIGNsYXNzPSJvcHRpb24iPi0tdmdkYi1wcmVmaXg8L2NvZGU+PC9zcGFuPjwvZHQ+Cis8ZGQ+PHA+TXVzdCBiZSBnaXZlbiB0byBib3RoCisgICAgVmFsZ3JpbmQgYW5kIHZnZGIgaWYgeW91IHdhbnQgdG8gY2hhbmdlIHRoZSBkZWZhdWx0IHByZWZpeCBmb3IgdGhlCisgICAgRklGT3MgKG5hbWVkIHBpcGVzKSB1c2VkIGZvciBjb21tdW5pY2F0aW9uIGJldHdlZW4gdGhlIFZhbGdyaW5kCisgICAgZ2Ric2VydmVyIGFuZCB2Z2RiLjwvcD48L2RkPgorPGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj48Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXdhaXQ9Jmx0O251bWJlciZndDs8L2NvZGU+PC9zcGFuPjwvZHQ+Cis8ZGQ+PHA+SW5zdHJ1Y3RzIHZnZGIgdG8KKyAgICBzZWFyY2ggZm9yIGF2YWlsYWJsZSBWYWxncmluZCBnZGJzZXJ2ZXJzIGZvciB0aGUgc3BlY2lmaWVkIG51bWJlcgorICAgIG9mIHNlY29uZHMuICBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIHN0YXJ0IGEgdmdkYiBwcm9jZXNzIAorICAgIGJlZm9yZSBzdGFydGluZyB0aGUgVmFsZ3JpbmQgZ2Ric2VydmVyIHdpdGggd2hpY2ggeW91IGludGVuZCB0aGUKKyAgICB2Z2RiIHRvIGNvbW11bmljYXRlLiAgVGhpcyBvcHRpb24gaXMgdXNlZnVsIHdoZW4gdXNlZCBpbgorICAgIGNvbmp1bmN0aW9uIHdpdGggYSA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXZnZGItcHJlZml4PC9jb2RlPiB0aGF0IGlzCisgICAgdW5pcXVlIHRvIHRoZSBwcm9jZXNzIHlvdSB3YW50IHRvIHdhaXQgZm9yLgorICAgIEFsc28sIGlmIHlvdSB1c2UgdGhlIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0td2FpdDwvY29kZT4gYXJndW1lbnQgaW4gdGhlIEdEQgorICAgICJ0YXJnZXQgcmVtb3RlIiBjb21tYW5kLCB5b3UgbXVzdCBzZXQgdGhlIEdEQiByZW1vdGV0aW1lb3V0IHRvIGEKKyAgICB2YWx1ZSBiaWdnZXIgdGhhbiB0aGUgLS13YWl0IGFyZ3VtZW50IHZhbHVlLiAgU2VlIG9wdGlvbgorICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tbWF4LWludm9rZS1tczwvY29kZT4gKGp1c3QgYmVsb3cpCisgICAgZm9yIGFuIGV4YW1wbGUgb2Ygc2V0dGluZyB0aGUgcmVtb3RldGltZW91dCB2YWx1ZS48L3A+PC9kZD4KKzxkdD48c3BhbiBjbGFzcz0idGVybSI+PGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1tYXgtaW52b2tlLW1zPSZsdDtudW1iZXImZ3Q7PC9jb2RlPjwvc3Bhbj48L2R0PgorPGRkPgorPHA+R2l2ZXMgdGhlCisgICAgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBhZnRlciB3aGljaCB2Z2RiIHdpbGwgZm9yY2UgdGhlIGludm9jYXRpb24KKyAgICBvZiBnZGJzZXJ2ZXIgZW1iZWRkZWQgaW4gVmFsZ3JpbmQuICBUaGUgZGVmYXVsdCB2YWx1ZSBpcyAxMDAKKyAgICBtaWxsaXNlY29uZHMuIEEgdmFsdWUgb2YgMCBkaXNhYmxlcyBmb3JjZWQgaW52b2NhdGlvbi4gVGhlIGZvcmNlZAorICAgIGludm9jYXRpb24gaXMgdXNlZCB3aGVuIHZnZGIgaXMgY29ubmVjdGVkIHRvIGEgVmFsZ3JpbmQgZ2Ric2VydmVyLAorICAgIGFuZCB0aGUgVmFsZ3JpbmQgcHJvY2VzcyBoYXMgYWxsIGl0cyB0aHJlYWRzIGJsb2NrZWQgaW4gYSBzeXN0ZW0KKyAgICBjYWxsLgorICAgIDwvcD4KKzxwPklmIHlvdSBzcGVjaWZ5IGEgbGFyZ2UgdmFsdWUsIHlvdSBtaWdodCBuZWVkIHRvIGluY3JlYXNlIHRoZQorICAgIEdEQiAicmVtb3RldGltZW91dCIgdmFsdWUgZnJvbSBpdHMgZGVmYXVsdCB2YWx1ZSBvZiAyIHNlY29uZHMuCisgICAgWW91IHNob3VsZCBlbnN1cmUgdGhhdCB0aGUgdGltZW91dCAoaW4gc2Vjb25kcykgaXMKKyAgICBiaWdnZXIgdGhhbiB0aGUgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1tYXgtaW52b2tlLW1zPC9jb2RlPiB2YWx1ZS4gIEZvcgorICAgIGV4YW1wbGUsIGZvciA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLW1heC1pbnZva2UtbXM9NTAwMDwvY29kZT4sIHRoZSBmb2xsb3dpbmcKKyAgICBHREIgY29tbWFuZCBpcyBzdWl0YWJsZToKKyAgICA8L3A+Cis8cHJlIGNsYXNzPSJzY3JlZW4iPgorICAgIChnZGIpIHNldCByZW1vdGV0aW1lb3V0IDYKKyAgICA8L3ByZT4KKzxwPgorICAgIDwvcD4KKzwvZGQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPjxjb2RlIGNsYXNzPSJvcHRpb24iPi0tY21kLXRpbWUtb3V0PSZsdDtudW1iZXImZ3Q7PC9jb2RlPjwvc3Bhbj48L2R0PgorPGRkPjxwPkluc3RydWN0cyBhCisgICAgc3RhbmRhbG9uZSB2Z2RiIHRvIGV4aXQgaWYgdGhlIFZhbGdyaW5kIGdkYnNlcnZlciBpdCBpcyBjb25uZWN0ZWQKKyAgICB0byBkb2VzIG5vdCBwcm9jZXNzIGEgY29tbWFuZCBpbiB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBzZWNvbmRzLgorICAgIFRoZSBkZWZhdWx0IHZhbHVlIGlzIHRvIG5ldmVyIHRpbWUgb3V0LjwvcD48L2RkPgorPGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj48Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXBvcnQ9Jmx0O3BvcnRuciZndDs8L2NvZGU+PC9zcGFuPjwvZHQ+Cis8ZGQ+Cis8cD5JbnN0cnVjdHMgdmdkYiB0bworICAgIHVzZSB0Y3AvaXAgYW5kIGxpc3RlbiBmb3IgR0RCIG9uIHRoZSBzcGVjaWZpZWQgcG9ydCBuciByYXRoZXIgdGhhbgorICAgIHRvIHVzZSBhIHBpcGUgdG8gY29tbXVuaWNhdGUgd2l0aCBHREIuIFVzaW5nIHRjcC9pcCBhbGxvd3MgdG8gaGF2ZQorICAgIEdEQiBydW5uaW5nIG9uIG9uZSBjb21wdXRlciBhbmQgZGVidWdnaW5nIGEgVmFsZ3JpbmQgcHJvY2VzcworICAgIHJ1bm5pbmcgb24gYW5vdGhlciB0YXJnZXQgY29tcHV0ZXIuCisgICAgRXhhbXBsZTogCisgICAgPC9wPgorPHByZSBjbGFzcz0ic2NyZWVuIj4KKyMgT24gdGhlIHRhcmdldCBjb21wdXRlciwgc3RhcnQgeW91ciBwcm9ncmFtIHVuZGVyIHZhbGdyaW5kIHVzaW5nCit2YWxncmluZCAtLXZnZGItZXJyb3I9MCBwcm9nCisjIGFuZCB0aGVuIGluIGFub3RoZXIgc2hlbGwsIHJ1bjoKK3ZnZGIgLS1wb3J0PTEyMzQKKzwvcHJlPgorPHA+T24gdGhlIGNvbXB1dGVyIHdoaWNoIGhvc3RzIEdEQiwgZXhlY3V0ZSB0aGUgY29tbWFuZDoKKyAgICA8L3A+Cis8cHJlIGNsYXNzPSJzY3JlZW4iPgorZ2RiIHByb2cKKyhnZGIpIHRhcmdldCByZW1vdGUgdGFyZ2V0aXA6MTIzNAorPC9wcmU+Cis8cD4KKyAgICB3aGVyZSB0YXJnZXRpcCBpcyB0aGUgaXAgYWRkcmVzcyBvciBob3N0bmFtZSBvZiB0aGUgdGFyZ2V0IGNvbXB1dGVyLgorICAgIDwvcD4KKzwvZGQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPjxjb2RlIGNsYXNzPSJvcHRpb24iPi1jPC9jb2RlPjwvc3Bhbj48L2R0PgorPGRkPgorPHA+VG8gZ2l2ZSBtb3JlIHRoYW4gb25lIGNvbW1hbmQgdG8gYQorICAgIHN0YW5kYWxvbmUgdmdkYiwgc2VwYXJhdGUgdGhlIGNvbW1hbmRzIGJ5IGFuCisgICAgb3B0aW9uIDxjb2RlIGNsYXNzPSJvcHRpb24iPi1jPC9jb2RlPi4gRXhhbXBsZToKKyAgICA8L3A+Cis8cHJlIGNsYXNzPSJzY3JlZW4iPgordmdkYiB2LnNldCBsb2dfb3V0cHV0IC1jIGxlYWtfY2hlY2sgYW55Cis8L3ByZT4KKzwvZGQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPjxjb2RlIGNsYXNzPSJvcHRpb24iPi1sPC9jb2RlPjwvc3Bhbj48L2R0PgorPGRkPjxwPkluc3RydWN0cyBhIHN0YW5kYWxvbmUgdmdkYiB0byByZXBvcnQKKyAgICB0aGUgbGlzdCBvZiB0aGUgVmFsZ3JpbmQgZ2Ric2VydmVyIHByb2Nlc3NlcyBydW5uaW5nIGFuZCB0aGVuCisgICAgZXhpdC48L3A+PC9kZD4KKzxkdD48c3BhbiBjbGFzcz0idGVybSI+PGNvZGUgY2xhc3M9Im9wdGlvbiI+LUQ8L2NvZGU+PC9zcGFuPjwvZHQ+Cis8ZGQ+PHA+SW5zdHJ1Y3RzIGEgc3RhbmRhbG9uZSB2Z2RiIHRvIHNob3cgdGhlCisgICAgc3RhdGUgb2YgdGhlIHNoYXJlZCBtZW1vcnkgdXNlZCBieSB0aGUgVmFsZ3JpbmQgZ2Ric2VydmVyLiAgdmdkYgorICAgIHdpbGwgZXhpdCBhZnRlciBoYXZpbmcgc2hvd24gdGhlIFZhbGdyaW5kIGdkYnNlcnZlciBzaGFyZWQgbWVtb3J5CisgICAgc3RhdGUuPC9wPjwvZGQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPjxjb2RlIGNsYXNzPSJvcHRpb24iPi1kPC9jb2RlPjwvc3Bhbj48L2R0PgorPGRkPjxwPkluc3RydWN0cyB2Z2RiIHRvIHByb2R1Y2UgZGVidWdnaW5nCisgICAgb3V0cHV0LiAgR2l2ZSBtdWx0aXBsZSA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tZDwvY29kZT4gYXJncyB0byBpbmNyZWFzZSB0aGUKKyAgICB2ZXJib3NpdHkuIFdoZW4gZ2l2aW5nIDxjb2RlIGNsYXNzPSJvcHRpb24iPi1kPC9jb2RlPiB0byBhIHJlbGF5IHZnZGIsIHlvdSBiZXR0ZXIKKyAgICByZWRpcmVjdCB0aGUgc3RhbmRhcmQgZXJyb3IgKHN0ZGVycikgb2YgdmdkYiB0byBhIGZpbGUgdG8gYXZvaWQKKyAgICBpbnRlcmFjdGlvbiBiZXR3ZWVuIEdEQiBhbmQgdmdkYiBkZWJ1Z2dpbmcgb3V0cHV0LjwvcD48L2RkPgorPC9kbD4KKzwvZGl2PgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MiI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9Im1hbnVhbC1jb3JlLWFkdi52YWxncmluZC1tb25pdG9yLWNvbW1hbmRzIj48L2E+My4yLjEwLqBWYWxncmluZCBtb25pdG9yIGNvbW1hbmRzPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPlRoaXMgc2VjdGlvbiBkZXNjcmliZXMgdGhlIFZhbGdyaW5kIG1vbml0b3IgY29tbWFuZHMsIGF2YWlsYWJsZQorcmVnYXJkbGVzcyBvZiB0aGUgVmFsZ3JpbmQgdG9vbCBzZWxlY3RlZC4gRm9yIHRoZSB0b29sIHNwZWNpZmljCitjb21tYW5kcywgcmVmZXIgdG8gPGEgY2xhc3M9InhyZWYiIGhyZWY9Im1jLW1hbnVhbC5odG1sI21jLW1hbnVhbC5tb25pdG9yLWNvbW1hbmRzIiB0aXRsZT0iNC42LqBNZW1jaGVjayBNb25pdG9yIENvbW1hbmRzIj5NZW1jaGVjayBNb25pdG9yIENvbW1hbmRzPC9hPiwKKzxhIGNsYXNzPSJ4cmVmIiBocmVmPSJoZy1tYW51YWwuaHRtbCNoZy1tYW51YWwubW9uaXRvci1jb21tYW5kcyIgdGl0bGU9IjcuNy6gSGVsZ3JpbmQgTW9uaXRvciBDb21tYW5kcyI+SGVsZ3JpbmQgTW9uaXRvciBDb21tYW5kczwvYT4sCis8YSBjbGFzcz0ieHJlZiIgaHJlZj0iY2wtbWFudWFsLmh0bWwjY2wtbWFudWFsLm1vbml0b3ItY29tbWFuZHMiIHRpdGxlPSI2LjQuoENhbGxncmluZCBNb25pdG9yIENvbW1hbmRzIj5DYWxsZ3JpbmQgTW9uaXRvciBDb21tYW5kczwvYT4gYW5kCis8YSBjbGFzcz0ieHJlZiIgaHJlZj0ibXMtbWFudWFsLmh0bWwjbXMtbWFudWFsLm1vbml0b3ItY29tbWFuZHMiIHRpdGxlPSI5LjQuoE1hc3NpZiBNb25pdG9yIENvbW1hbmRzIj5NYXNzaWYgTW9uaXRvciBDb21tYW5kczwvYT4uIDwvcD4KKzxwPiBUaGUgbW9uaXRvciBjb21tYW5kcyBjYW4gYmUgc2VudCBlaXRoZXIgZnJvbSBhIHNoZWxsIGNvbW1hbmQgbGluZSwgYnkgdXNpbmcgYQorc3RhbmRhbG9uZSB2Z2RiLCBvciBmcm9tIEdEQiwgYnkgdXNpbmcgR0RCJ3MgIm1vbml0b3IiCitjb21tYW5kIChzZWUgPGEgY2xhc3M9InhyZWYiIGhyZWY9Im1hbnVhbC1jb3JlLWFkdi5odG1sI21hbnVhbC1jb3JlLWFkdi5nZGJzZXJ2ZXItY29tbWFuZGhhbmRsaW5nIiB0aXRsZT0iMy4yLjUuoE1vbml0b3IgY29tbWFuZCBoYW5kbGluZyBieSB0aGUgVmFsZ3JpbmQgZ2Ric2VydmVyIj5Nb25pdG9yIGNvbW1hbmQgaGFuZGxpbmcgYnkgdGhlIFZhbGdyaW5kIGdkYnNlcnZlcjwvYT4pLgorVGhleSBjYW4gYWxzbyBiZSBsYXVuY2hlZCBieSB0aGUgY2xpZW50IHByb2dyYW0sIHVzaW5nIHRoZSBWQUxHUklORF9NT05JVE9SX0NPTU1BTkQKK2NsaWVudCByZXF1ZXN0LgorPC9wPgorPGRpdiBjbGFzcz0iaXRlbWl6ZWRsaXN0Ij48dWwgY2xhc3M9Iml0ZW1pemVkbGlzdCIgc3R5bGU9Imxpc3Qtc3R5bGUtdHlwZTogZGlzYzsgIj4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPjxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5oZWxwIFtkZWJ1Z108L2NvZGU+IGluc3RydWN0cyBWYWxncmluZCdzIGdkYnNlcnZlcgorICAgIHRvIGdpdmUgdGhlIGxpc3Qgb2YgYWxsIG1vbml0b3IgY29tbWFuZHMgb2YgdGhlIFZhbGdyaW5kIGNvcmUgYW5kCisgICAgb2YgdGhlIHRvb2wuIFRoZSBvcHRpb25hbCAiZGVidWciIGFyZ3VtZW50IHRlbGxzIHRvIGFsc28gZ2l2ZSBoZWxwCisgICAgZm9yIHRoZSBtb25pdG9yIGNvbW1hbmRzIGFpbWVkIGF0IFZhbGdyaW5kIGludGVybmFscyBkZWJ1Z2dpbmcuCisgICAgPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD48Y29kZSBjbGFzcz0idmFybmFtZSI+di5pbmZvIGFsbF9lcnJvcnM8L2NvZGU+IHNob3dzIGFsbCBlcnJvcnMgZm91bmQKKyAgICBzbyBmYXIuPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD48Y29kZSBjbGFzcz0idmFybmFtZSI+di5pbmZvIGxhc3RfZXJyb3I8L2NvZGU+IHNob3dzIHRoZSBsYXN0IGVycm9yCisgICAgZm91bmQuPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj4KKzxwPjxjb2RlIGNsYXNzPSJ2YXJuYW1lIj52LmluZm8gbG9jYXRpb24gJmx0O2FkZHImZ3Q7PC9jb2RlPiBvdXRwdXRzCisgICAgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGxvY2F0aW9uICZsdDthZGRyJmd0Oy4gUG9zc2libHksIHRoZQorICAgIGZvbGxvd2luZyBhcmUgZGVzY3JpYmVkOiBnbG9iYWwgdmFyaWFibGVzLCBsb2NhbCAoc3RhY2spCisgICAgdmFyaWFibGVzLCBhbGxvY2F0ZWQgb3IgZnJlZWQgYmxvY2tzLCAuLi4gIFRoZSBpbmZvcm1hdGlvbgorICAgIHByb2R1Y2VkIGRlcGVuZHMgb24gdGhlIHRvb2wgYW5kIG9uIHRoZSBvcHRpb25zIGdpdmVuIHRvIHZhbGdyaW5kLgorICAgIFNvbWUgdG9vbHMgKGUuZy4gbWVtY2hlY2sgYW5kIGhlbGdyaW5kKSBwcm9kdWNlIG1vcmUgZGV0YWlsZWQKKyAgICBpbmZvcm1hdGlvbiBmb3IgY2xpZW50IGhlYXAgYmxvY2tzLiBGb3IgZXhhbXBsZSwgdGhlc2UgdG9vbHMgc2hvdworICAgIHRoZSBzdGFja3RyYWNlIHdoZXJlIHRoZSBoZWFwIGJsb2NrIHdhcyBhbGxvY2F0ZWQuIElmIGEgdG9vbCBkb2VzCisgICAgbm90IHJlcGxhY2UgdGhlIG1hbGxvYy9mcmVlLy4uLiBmdW5jdGlvbnMsIHRoZW4gY2xpZW50IGhlYXAgYmxvY2tzCisgICAgd2lsbCBub3QgYmUgZGVzY3JpYmVkLiAgVXNlIHRoZQorICAgIG9wdGlvbiA8Y29kZSBjbGFzcz0idmFybmFtZSI+LS1yZWFkLXZhci1pbmZvPXllczwvY29kZT4gdG8gb2J0YWluIG1vcmUKKyAgICBkZXRhaWxlZCBpbmZvcm1hdGlvbiBhYm91dCBnbG9iYWwgb3IgbG9jYWwgKHN0YWNrKSB2YXJpYWJsZXMuCisgICAgPC9wPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPgorKGdkYikgbW9uaXRvciB2LmluZm8gbG9jYXRpb24gMHg4MDUwYjIwCisgTG9jYXRpb24gMHg4MDUwYjIwIGlzIDAgYnl0ZXMgaW5zaWRlIGdsb2JhbCB2YXIgIm14IgorIGRlY2xhcmVkIGF0IHRjMTlfc2hhZG93bWVtLmM6MTkKKworKGdkYikgbW8gdi5pbiBsb2MgMHg1ODJmMzNjCisgTG9jYXRpb24gMHg1ODJmMzNjIGlzIDAgYnl0ZXMgaW5zaWRlIGxvY2FsIHZhciAiaW5mbyIKKyBkZWNsYXJlZCBhdCB0YzE5X3NoYWRvd21lbS5jOjI4MiwgaW4gZnJhbWUgIzEgb2YgdGhyZWFkIDMKKyhnZGIpIAorPC9wcmU+Cis8L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+PGNvZGUgY2xhc3M9InZhcm5hbWUiPnYuaW5mbyBuX2VycnNfZm91bmQgW21zZ108L2NvZGU+IHNob3dzIHRoZSBudW1iZXIgb2YKKyAgICBlcnJvcnMgZm91bmQgc28gZmFyLCB0aGUgbnIgb2YgZXJyb3JzIHNob3duIHNvIGZhciBhbmQgdGhlIGN1cnJlbnQKKyAgICB2YWx1ZSBvZiB0aGUgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS12Z2RiLWVycm9yPC9jb2RlPiBhcmd1bWVudC4gVGhlIG9wdGlvbmFsCisgICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5tc2c8L2NvZGU+IChvbmUgb3IgbW9yZSB3b3JkcykgaXMgYXBwZW5kZWQuCisgICAgVHlwaWNhbGx5LCB0aGlzIGNhbiBiZSB1c2VkIHRvIGluc2VydCBtYXJrZXJzIGluIGEgcHJvY2VzcyBvdXRwdXQKKyAgICBmaWxlIGJldHdlZW4gc2V2ZXJhbCB0ZXN0cyBleGVjdXRlZCBpbiBzZXF1ZW5jZSBieSBhIHByb2Nlc3MKKyAgICBzdGFydGVkIG9ubHkgb25jZS4gVGhpcyBhbGxvd3MgdG8gYXNzb2NpYXRlIHRoZSBlcnJvcnMgcmVwb3J0ZWQKKyAgICBieSBWYWxncmluZCB3aXRoIHRoZSBzcGVjaWZpYyB0ZXN0IHRoYXQgcHJvZHVjZWQgdGhlc2UgZXJyb3JzLgorICAgIDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+PGNvZGUgY2xhc3M9InZhcm5hbWUiPnYuaW5mbyBvcGVuX2ZkczwvY29kZT4gc2hvd3MgdGhlIGxpc3Qgb2Ygb3BlbiBmaWxlCisgICAgZGVzY3JpcHRvcnMgYW5kIGRldGFpbHMgcmVsYXRlZCB0byB0aGUgZmlsZSBkZXNjcmlwdG9yLgorICAgIFRoaXMgb25seSB3b3JrcyBpZiA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXRyYWNrLWZkcz15ZXM8L2NvZGU+CisgICAgd2FzIGdpdmVuIGF0IFZhbGdyaW5kIHN0YXJ0dXAuPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj4KKzxwPjxjb2RlIGNsYXNzPSJ2YXJuYW1lIj52LnNldCB7Z2RiX291dHB1dCB8IGxvZ19vdXRwdXQgfAorICAgIG1peGVkX291dHB1dH08L2NvZGU+IGFsbG93cyByZWRpcmVjdGlvbiBvZiB0aGUgVmFsZ3JpbmQgb3V0cHV0CisgICAgKGUuZy4gdGhlIGVycm9ycyBkZXRlY3RlZCBieSB0aGUgdG9vbCkuICBUaGUgZGVmYXVsdCBzZXR0aW5nIGlzCisgICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5taXhlZF9vdXRwdXQ8L2NvZGU+LjwvcD4KKzxwPldpdGggPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5taXhlZF9vdXRwdXQ8L2NvZGU+LCB0aGUKKyAgICBWYWxncmluZCBvdXRwdXQgZ29lcyB0byB0aGUgVmFsZ3JpbmQgbG9nICh0eXBpY2FsbHkgc3RkZXJyKSB3aGlsZQorICAgIHRoZSBvdXRwdXQgb2YgdGhlIGludGVyYWN0aXZlIEdEQiBtb25pdG9yIGNvbW1hbmRzIChlLmcuIAorICAgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+di5pbmZvIGxhc3RfZXJyb3I8L2NvZGU+KQorICAgIGlzIGRpc3BsYXllZCBieSBHREIuPC9wPgorPHA+V2l0aCA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmdkYl9vdXRwdXQ8L2NvZGU+LCBib3RoIHRoZQorICAgIFZhbGdyaW5kIG91dHB1dCBhbmQgdGhlIGludGVyYWN0aXZlIEdEQiBtb25pdG9yIGNvbW1hbmRzIG91dHB1dCBhcmUKKyAgICBkaXNwbGF5ZWQgYnkgR0RCLjwvcD4KKzxwPldpdGggPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5sb2dfb3V0cHV0PC9jb2RlPiwgYm90aCB0aGUKKyAgICBWYWxncmluZCBvdXRwdXQgYW5kIHRoZSBpbnRlcmFjdGl2ZSBHREIgbW9uaXRvciBjb21tYW5kcyBvdXRwdXQgZ28KKyAgICB0byB0aGUgVmFsZ3JpbmQgbG9nLjwvcD4KKzwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD48Y29kZSBjbGFzcz0idmFybmFtZSI+di53YWl0IFttcyAoZGVmYXVsdCAwKV08L2NvZGU+IGluc3RydWN0cworICAgIFZhbGdyaW5kIGdkYnNlcnZlciB0byBzbGVlcCAibXMiIG1pbGxpLXNlY29uZHMgYW5kIHRoZW4KKyAgICBjb250aW51ZS4gIFdoZW4gc2VudCBmcm9tIGEgc3RhbmRhbG9uZSB2Z2RiLCBpZiB0aGlzIGlzIHRoZSBsYXN0CisgICAgY29tbWFuZCwgdGhlIFZhbGdyaW5kIHByb2Nlc3Mgd2lsbCBjb250aW51ZSB0aGUgZXhlY3V0aW9uIG9mIHRoZQorICAgIGd1ZXN0IHByb2Nlc3MuIFRoZSB0eXBpY2FsIHVzYWdlIG9mIHRoaXMgaXMgdG8gdXNlIHZnZGIgdG8gc2VuZCBhCisgICAgIm5vLW9wIiBjb21tYW5kIHRvIGEgVmFsZ3JpbmQgZ2Ric2VydmVyIHNvIGFzIHRvIGNvbnRpbnVlIHRoZQorICAgIGV4ZWN1dGlvbiBvZiB0aGUgZ3Vlc3QgcHJvY2Vzcy4KKyAgICA8L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPjxjb2RlIGNsYXNzPSJ2YXJuYW1lIj52LmtpbGw8L2NvZGU+IHJlcXVlc3RzIHRoZSBnZGJzZXJ2ZXIgdG8ga2lsbAorICAgIHRoZSBwcm9jZXNzLiBUaGlzIGNhbiBiZSB1c2VkIGZyb20gYSBzdGFuZGFsb25lIHZnZGIgdG8gcHJvcGVybHkKKyAgICBraWxsIGEgVmFsZ3JpbmQgcHJvY2VzcyB3aGljaCBpcyBjdXJyZW50bHkgZXhwZWN0aW5nIGEgdmdkYgorICAgIGNvbm5lY3Rpb24uPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD48Y29kZSBjbGFzcz0idmFybmFtZSI+di5zZXQgdmdkYi1lcnJvciAmbHQ7ZXJyb3JuciZndDs8L2NvZGU+CisgICAgZHluYW1pY2FsbHkgY2hhbmdlcyB0aGUgdmFsdWUgb2YgdGhlIAorICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tdmdkYi1lcnJvcjwvY29kZT4gYXJndW1lbnQuIEEKKyAgICB0eXBpY2FsIHVzYWdlIG9mIHRoaXMgaXMgdG8gc3RhcnQgd2l0aAorICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tdmdkYi1lcnJvcj0wPC9jb2RlPiBvbiB0aGUKKyAgICBjb21tYW5kIGxpbmUsIHRoZW4gc2V0IGEgZmV3IGJyZWFrcG9pbnRzLCBzZXQgdGhlIHZnZGItZXJyb3IgdmFsdWUKKyAgICB0byBhIGh1Z2UgdmFsdWUgYW5kIGNvbnRpbnVlIGV4ZWN1dGlvbi48L3A+PC9saT4KKzwvdWw+PC9kaXY+Cis8cD5UaGUgZm9sbG93aW5nIFZhbGdyaW5kIG1vbml0b3IgY29tbWFuZHMgYXJlIHVzZWZ1bCBmb3IKK2ludmVzdGlnYXRpbmcgdGhlIGJlaGF2aW91ciBvZiBWYWxncmluZCBvciBpdHMgZ2Ric2VydmVyIGluIGNhc2Ugb2YKK3Byb2JsZW1zIG9yIGJ1Z3MuPC9wPgorPGRpdiBjbGFzcz0iaXRlbWl6ZWRsaXN0Ij48dWwgY2xhc3M9Iml0ZW1pemVkbGlzdCIgc3R5bGU9Imxpc3Qtc3R5bGUtdHlwZTogZGlzYzsgIj4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPjxjb2RlIGNsYXNzPSJ2YXJuYW1lIj52LmRvIGV4cGVuc2l2ZV9zYW5pdHlfY2hlY2tfZ2VuZXJhbDwvY29kZT4KKyAgICBleGVjdXRlcyB2YXJpb3VzIHNhbml0eSBjaGVja3MuIEluIHBhcnRpY3VsYXIsIHRoZSBzYW5pdHkgb2YgdGhlCisgICAgVmFsZ3JpbmQgaGVhcCBpcyB2ZXJpZmllZC4gVGhpcyBjYW4gYmUgdXNlZnVsIGlmIHlvdSBzdXNwZWN0IHRoYXQKKyAgICB5b3VyIHByb2dyYW0gYW5kL29yIFZhbGdyaW5kIGhhcyBhIGJ1ZyBjb3JydXB0aW5nIFZhbGdyaW5kIGRhdGEKKyAgICBzdHJ1Y3R1cmUuICBJdCBjYW4gYWxzbyBiZSB1c2VkIHdoZW4gYSBWYWxncmluZCB0b29sCisgICAgcmVwb3J0cyBhIGNsaWVudCBlcnJvciB0byB0aGUgY29ubmVjdGVkIEdEQiwgaW4gb3JkZXIgdG8gdmVyaWZ5CisgICAgdGhlIHNhbml0eSBvZiBWYWxncmluZCBiZWZvcmUgY29udGludWluZyB0aGUgZXhlY3V0aW9uLgorICAgIDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+PGNvZGUgY2xhc3M9InZhcm5hbWUiPnYuaW5mbyBnZGJzZXJ2ZXJfc3RhdHVzPC9jb2RlPiBzaG93cyB0aGUKKyAgICBnZGJzZXJ2ZXIgc3RhdHVzLiBJbiBjYXNlIG9mIHByb2JsZW1zIChlLmcuIG9mIGNvbW11bmljYXRpb25zKSwKKyAgICB0aGlzIHNob3dzIHRoZSB2YWx1ZXMgb2Ygc29tZSByZWxldmFudCBWYWxncmluZCBnZGJzZXJ2ZXIgaW50ZXJuYWwKKyAgICB2YXJpYWJsZXMuICBOb3RlIHRoYXQgdGhlIHZhcmlhYmxlcyByZWxhdGVkIHRvIGJyZWFrcG9pbnRzIGFuZAorICAgIHdhdGNocG9pbnRzIChlLmcuIHRoZSBudW1iZXIgb2YgYnJlYWtwb2ludCBhZGRyZXNzZXMgYW5kIHRoZSBudW1iZXIgb2YKKyAgICB3YXRjaHBvaW50cykgd2lsbCBiZSB6ZXJvLCBhcyBHREIgYnkgZGVmYXVsdCByZW1vdmVzIGFsbAorICAgIHdhdGNocG9pbnRzIGFuZCBicmVha3BvaW50cyB3aGVuIGV4ZWN1dGlvbiBzdG9wcywgYW5kIHJlLWluc2VydHMKKyAgICB0aGVtIHdoZW4gcmVzdW1pbmcgdGhlIGV4ZWN1dGlvbiBvZiB0aGUgZGVidWdnZWQgcHJvY2Vzcy4gIFlvdSBjYW4KKyAgICBjaGFuZ2UgdGhpcyBHREIgYmVoYXZpb3VyIGJ5IHVzaW5nIHRoZSBHREIgY29tbWFuZAorICAgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+c2V0IGJyZWFrcG9pbnQgYWx3YXlzLWluc2VydGVkIG9uPC9jb2RlPi4KKyAgICA8L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPjxjb2RlIGNsYXNzPSJ2YXJuYW1lIj52LmluZm8gbWVtb3J5IFthc3BhY2VtZ3JdPC9jb2RlPiBzaG93cyB0aGUgc3RhdGlzdGljcyBvZgorICAgIFZhbGdyaW5kJ3MgaW50ZXJuYWwgaGVhcCBtYW5hZ2VtZW50LiBJZgorICAgIG9wdGlvbiA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXByb2ZpbGUtaGVhcD15ZXM8L2NvZGU+IHdhcyBnaXZlbiwgZGV0YWlsZWQKKyAgICBzdGF0aXN0aWNzIHdpbGwgYmUgb3V0cHV0LiBXaXRoIHRoZSBvcHRpb25hbCBhcmd1bWVudAorICAgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+YXNwYWNlbWdyPC9jb2RlPi4gdGhlIHNlZ21lbnQgbGlzdCBtYWludGFpbmVkCisgICAgYnkgdmFsZ3JpbmQgYWRkcmVzcyBzcGFjZSBtYW5hZ2VyIHdpbGwgYmUgb3V0cHV0LiBOb3RlIHRoYXQKKyAgICB0aGlzIGxpc3Qgb2Ygc2VnbWVudHMgaXMgYWx3YXlzIG91dHB1dCBvbiB0aGUgVmFsZ3JpbmQgbG9nLgorICAgIDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+PGNvZGUgY2xhc3M9InZhcm5hbWUiPnYuaW5mbyBleGVjdHh0PC9jb2RlPiBzaG93cyBpbmZvcm1hdGlvbnMgYWJvdXQKKyAgICB0aGUgImV4ZWN1dGFibGUgY29udGV4dHMiIChpLmUuIHRoZSBzdGFjayB0cmFjZXMpIHJlY29yZGVkIGJ5CisgICAgVmFsZ3JpbmQuICBGb3Igc29tZSBwcm9ncmFtcywgVmFsZ3JpbmQgY2FuIHJlY29yZCBhIHZlcnkgaGlnaAorICAgIG51bWJlciBvZiBzdWNoIHN0YWNrIHRyYWNlcywgY2F1c2luZyBhIGhpZ2ggbWVtb3J5IHVzYWdlLiAgVGhpcworICAgIG1vbml0b3IgY29tbWFuZCBzaG93cyBhbGwgdGhlIHJlY29yZGVkIHN0YWNrIHRyYWNlcywgZm9sbG93ZWQgYnkKKyAgICBzb21lIHN0YXRpc3RpY3MuIFRoaXMgY2FuIGJlIHVzZWQgdG8gYW5hbHlzZSB0aGUgcmVhc29uIGZvciBoYXZpbmcKKyAgICBhIGJpZyBudW1iZXIgb2Ygc3RhY2sgdHJhY2VzLiBUeXBpY2FsbHksIHlvdSB3aWxsIHVzZSB0aGlzIGNvbW1hbmQKKyAgICBpZiA8Y29kZSBjbGFzcz0idmFybmFtZSI+di5pbmZvIG1lbW9yeTwvY29kZT4gaGFzIHNob3duIHNpZ25pZmljYW50IG1lbW9yeQorICAgIHVzYWdlIGJ5IHRoZSAiZXhlY3R4dCIgYXJlbmEuCisgICAgPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj4KKzxwPjxjb2RlIGNsYXNzPSJ2YXJuYW1lIj52LmluZm8gc2NoZWR1bGVyPC9jb2RlPiBzaG93cyB2YXJpb3VzCisgICAgaW5mb3JtYXRpb24gYWJvdXQgdGhyZWFkcy4gRmlyc3QsIGl0IG91dHB1dHMgdGhlIGhvc3Qgc3RhY2sgdHJhY2UsCisgICAgaS5lLiB0aGUgVmFsZ3JpbmQgY29kZSBiZWluZyBleGVjdXRlZC4gVGhlbiwgZm9yIGVhY2ggdGhyZWFkLCBpdAorICAgIG91dHB1dHMgdGhlIHRocmVhZCBzdGF0ZS4gRm9yIG5vbiB0ZXJtaW5hdGVkIHRocmVhZHMsIHRoZSBzdGF0ZSBpcworICAgIGZvbGxvd2VkIGJ5IHRoZSBndWVzdCAoY2xpZW50KSBzdGFjayB0cmFjZS4gRmluYWxseSwgZm9yIGVhY2gKKyAgICBhY3RpdmUgdGhyZWFkIG9yIGZvciBlYWNoIHRlcm1pbmF0ZWQgdGhyZWFkIHNsb3Qgbm90IHlldCByZS11c2VkLAorICAgIGl0IHNob3dzIHRoZSBtYXggdXNhZ2Ugb2YgdGhlIHZhbGdyaW5kIHN0YWNrLjwvcD4KKzxwPlNob3dpbmcgdGhlIGNsaWVudCBzdGFjayB0cmFjZXMgYWxsb3dzIHRvIGNvbXBhcmUgdGhlIHN0YWNrCisgICAgdHJhY2VzIHByb2R1Y2VkIGJ5IHRoZSBWYWxncmluZCB1bndpbmRlciB3aXRoIHRoZSBzdGFjayB0cmFjZXMKKyAgICBwcm9kdWNlZCBieSBHREIrVmFsZ3JpbmQgZ2Ric2VydmVyLiBQYXkgYXR0ZW50aW9uIHRoYXQgR0RCIGFuZAorICAgIFZhbGdyaW5kIHNjaGVkdWxlciBzdGF0dXMgaGF2ZSB0aGVpciBvd24gdGhyZWFkIG51bWJlcmluZworICAgIHNjaGVtZS4gVG8gbWFrZSB0aGUgbGluayBiZXR3ZWVuIHRoZSBHREIgdGhyZWFkIG51bWJlciBhbmQgdGhlCisgICAgY29ycmVzcG9uZGluZyBWYWxncmluZCBzY2hlZHVsZXIgdGhyZWFkIG51bWJlciwgdXNlIHRoZSBHREIKKyAgICBjb21tYW5kIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+aW5mbyB0aHJlYWRzPC9jb2RlPi4gIFRoZSBvdXRwdXQKKyAgICBvZiB0aGlzIGNvbW1hbmQgc2hvd3MgdGhlIEdEQiB0aHJlYWQgbnVtYmVyIGFuZCB0aGUgdmFsZ3JpbmQKKyAgICAndGlkJy4gVGhlICd0aWQnIGlzIHRoZSB0aHJlYWQgbnVtYmVyIG91dHB1dAorICAgIGJ5IDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+di5pbmZvIHNjaGVkdWxlcjwvY29kZT4uICBXaGVuIHVzaW5nCisgICAgdGhlIGNhbGxncmluZCB0b29sLCB0aGUgY2FsbGdyaW5kIG1vbml0b3IgY29tbWFuZAorICAgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+c3RhdHVzPC9jb2RlPiBvdXRwdXRzIGludGVybmFsIGNhbGxncmluZAorICAgIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzdGFjay9jYWxsIGdyYXBoIGl0IG1haW50YWlucy4KKyAgICA8L3A+Cis8L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+PGNvZGUgY2xhc3M9InZhcm5hbWUiPnYuaW5mbyBzdGF0czwvY29kZT4gc2hvd3MgdmFyaW91cyB2YWxncmluZCBjb3JlIGFuZAorICAgIHRvb2wgc3RhdGlzdGljcy4gV2l0aCB0aGlzLCBWYWxncmluZCBhbmQgdG9vbCBzdGF0aXN0aWNzIGNhbgorICAgIGJlIGV4YW1pbmVkIHdoaWxlIHJ1bm5pbmcsIGV2ZW4gd2l0aG91dCBvcHRpb24gPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1zdGF0cz15ZXM8L2NvZGU+LgorICAgIDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+PGNvZGUgY2xhc3M9InZhcm5hbWUiPnYuaW5mbyB1bndpbmQgICZsdDthZGRyJmd0OyBbJmx0O2xlbiZndDtdPC9jb2RlPiBzaG93cworICAgIHRoZSBDRkkgdW53aW5kIGRlYnVnIGluZm8gZm9yIHRoZSBhZGRyZXNzIHJhbmdlIFthZGRyLCBhZGRyK2xlbi0xXS4KKyAgICBUaGUgZGVmYXVsdCB2YWx1ZSBvZiAmbHQ7bGVuJmd0OyBpcyAxLCBnaXZpbmcgdGhlIHVud2luZCBpbmZvcm1hdGlvbgorICAgIGZvciB0aGUgaW5zdHJ1Y3Rpb24gYXQgJmx0O2FkZHImZ3Q7LgorICAgIDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+PGNvZGUgY2xhc3M9InZhcm5hbWUiPnYuc2V0IGRlYnVnbG9nICZsdDtpbnR2YWx1ZSZndDs8L2NvZGU+IHNldHMgdGhlCisgICAgVmFsZ3JpbmQgZGVidWcgbG9nIGxldmVsIHRvICZsdDtpbnR2YWx1ZSZndDsuICBUaGlzIGFsbG93cyB0bworICAgIGR5bmFtaWNhbGx5IGNoYW5nZSB0aGUgbG9nIGxldmVsIG9mIFZhbGdyaW5kIGUuZy4gd2hlbiBhIHByb2JsZW0KKyAgICBpcyBkZXRlY3RlZC48L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPgorPHA+PGNvZGUgY2xhc3M9InZhcm5hbWUiPnYuc2V0IGhvc3R2aXNpYmlsaXR5IFt5ZXMqfG5vXTwvY29kZT4gVGhlIHZhbHVlCisgICAgInllcyIgaW5kaWNhdGVzIHRvIGdkYnNlcnZlciB0aGF0IEdEQiBjYW4gbG9vayBhdCB0aGUgVmFsZ3JpbmQKKyAgICAnaG9zdCcgKGludGVybmFsKSBzdGF0dXMvbWVtb3J5LiAibm8iIGRpc2FibGVzIHRoaXMgYWNjZXNzLgorICAgIFdoZW4gaG9zdHZpc2liaWxpdHkgaXMgYWN0aXZhdGVkLCBHREIgY2FuIGUuZy4gbG9vayBhdCBWYWxncmluZAorICAgIGdsb2JhbCB2YXJpYWJsZXMuIEFzIGFuIGV4YW1wbGUsIHRvIGV4YW1pbmUgYSBWYWxncmluZCBnbG9iYWwKKyAgICB2YXJpYWJsZSBvZiB0aGUgbWVtY2hlY2sgdG9vbCBvbiBhbiB4ODYsIGRvIHRoZSBmb2xsb3dpbmcgc2V0dXA6PC9wPgorPHByZSBjbGFzcz0ic2NyZWVuIj4KKyhnZGIpIG1vbml0b3Igdi5zZXQgaG9zdHZpc2liaWxpdHkgeWVzCisoZ2RiKSBhZGQtc3ltYm9sLWZpbGUgL3BhdGgvdG8vdG9vbC9leGVjdXRhYmxlL2ZpbGUvbWVtY2hlY2steDg2LWxpbnV4IDB4MzgwMDAwMDAKK2FkZCBzeW1ib2wgdGFibGUgZnJvbSBmaWxlICIvcGF0aC90by90b29sL2V4ZWN1dGFibGUvZmlsZS9tZW1jaGVjay14ODYtbGludXgiIGF0CisJLnRleHRfYWRkciA9IDB4MzgwMDAwMDAKKyh5IG9yIG4pIHkKK1JlYWRpbmcgc3ltYm9scyBmcm9tIC9wYXRoL3RvL3Rvb2wvZXhlY3V0YWJsZS9maWxlL21lbWNoZWNrLXg4Ni1saW51eC4uLmRvbmUuCisoZ2RiKSAKKzwvcHJlPgorPHA+QWZ0ZXIgdGhhdCwgdmFyaWFibGVzIGRlZmluZWQgaW4gbWVtY2hlY2steDg2LWxpbnV4IGNhbiBiZSBhY2Nlc3NlZCwgZS5nLjwvcD4KKzxwcmUgY2xhc3M9InNjcmVlbiI+CisoZ2RiKSBwIC94IHZnUGxhaW5fdGhyZWFkc1sxXS5vc19zdGF0ZQorJDMgPSB7bHdwaWQgPSAweDQ2ODgsIHRocmVhZGdyb3VwID0gMHg0Njg4LCBwYXJlbnQgPSAweDAsIAorICB2YWxncmluZF9zdGFja19iYXNlID0gMHg2MmU3ODAwMCwgdmFsZ3JpbmRfc3RhY2tfaW5pdF9TUCA9IDB4NjJmNzlmZTAsIAorICBleGl0Y29kZSA9IDB4MCwgZmF0YWxzaWcgPSAweDB9CisoZ2RiKSBwIHZleF9jb250cm9sCiskNSA9IHtpcm9wdF92ZXJib3NpdHkgPSAwLCBpcm9wdF9sZXZlbCA9IDIsIAorICBpcm9wdF9yZWdpc3Rlcl91cGRhdGVzID0gVmV4UmVnVXBkVW53aW5kcmVnc0F0TWVtQWNjZXNzLCAKKyAgaXJvcHRfdW5yb2xsX3RocmVzaCA9IDEyMCwgZ3Vlc3RfbWF4X2luc25zID0gNjAsIGd1ZXN0X2NoYXNlX3RocmVzaCA9IDEwLCAKKyAgZ3Vlc3RfY2hhc2VfY29uZCA9IDAgJ1wwMDAnfQorKGdkYikgCis8L3ByZT4KKzwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj4KKzxwPjxjb2RlIGNsYXNzPSJ2YXJuYW1lIj52LnRyYW5zbGF0ZSAmbHQ7YWRkcmVzcyZndDsKKyAgICBbJmx0O3RyYWNlZmxhZ3MmZ3Q7XTwvY29kZT4gc2hvd3MgdGhlIHRyYW5zbGF0aW9uIG9mIHRoZSBibG9jaworICAgIGNvbnRhaW5pbmcgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5hZGRyZXNzPC9jb2RlPiB3aXRoIHRoZSBnaXZlbgorICAgIHRyYWNlIGZsYWdzLiBUaGUgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij50cmFjZWZsYWdzPC9jb2RlPiB2YWx1ZQorICAgIGJpdCBwYXR0ZXJucyBoYXZlIHNpbWlsYXIgbWVhbmluZyB0byBWYWxncmluZCdzCisgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS10cmFjZS1mbGFnczwvY29kZT4gb3B0aW9uLiAgSXQgY2FuIGJlIGdpdmVuCisgICAgaW4gaGV4YWRlY2ltYWwgKGUuZy4gMHgyMCkgb3IgZGVjaW1hbCAoZS5nLiAzMikgb3IgaW4gYmluYXJ5IDFzCisgICAgYW5kIDBzIGJpdCAoZS5nLiAwYjAwMTAwMDAwKS4gVGhlIGRlZmF1bHQgdmFsdWUgb2YgdGhlIHRyYWNlZmxhZ3MKKyAgICBpcyAwYjAwMTAwMDAwLCBjb3JyZXNwb25kaW5nIHRvICJzaG93IGFmdGVyIGluc3RydW1lbnRhdGlvbiIuIAorICAgIFRoZSBvdXRwdXQgb2YgdGhpcyBjb21tYW5kIGFsd2F5cyBnb2VzIHRvIHRoZSBWYWxncmluZAorICAgIGxvZy48L3A+Cis8cD5UaGUgYWRkaXRpb25hbCBiaXQgZmxhZyAwYjEwMDAwMDAwMCAoYml0IDgpCisgICAgaGFzIG5vIGVxdWl2YWxlbnQgaW4gdGhlIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tdHJhY2UtZmxhZ3M8L2NvZGU+IG9wdGlvbi4KKyAgICBJdCBlbmFibGVzIHRyYWNpbmcgb2YgdGhlIGdkYnNlcnZlciBzcGVjaWZpYyBpbnN0cnVtZW50YXRpb24uICBOb3RlCisgICAgdGhhdCB0aGlzIGJpdCA4IGNhbiBvbmx5IGVuYWJsZSB0aGUgYWRkaXRpb24gb2YgZ2Ric2VydmVyCisgICAgaW5zdHJ1bWVudGF0aW9uIGluIHRoZSB0cmFjZS4gIFNldHRpbmcgaXQgdG8gMCB3aWxsIG5vdAorICAgIGRpc2FibGUgdGhlIHRyYWNpbmcgb2YgdGhlIGdkYnNlcnZlciBpbnN0cnVtZW50YXRpb24gaWYgaXQgaXMKKyAgICBhY3RpdmUgZm9yIHNvbWUgb3RoZXIgcmVhc29uLCBmb3IgZXhhbXBsZSBiZWNhdXNlIHRoZXJlIGlzIGEgYnJlYWtwb2ludCBhdAorICAgIHRoaXMgYWRkcmVzcyBvciBiZWNhdXNlIGdkYnNlcnZlciBpcyBpbiBzaW5nbGUgc3RlcHBpbmcKKyAgICBtb2RlLjwvcD4KKzwvbGk+Cis8L3VsPjwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QxIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+Cis8YSBuYW1lPSJtYW51YWwtY29yZS1hZHYud3JhcHBpbmciPjwvYT4zLjMuoEZ1bmN0aW9uIHdyYXBwaW5nPC9oMj48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPgorVmFsZ3JpbmQgYWxsb3dzIGNhbGxzIHRvIHNvbWUgc3BlY2lmaWVkIGZ1bmN0aW9ucyB0byBiZSBpbnRlcmNlcHRlZCBhbmQKK3Jlcm91dGVkIHRvIGEgZGlmZmVyZW50LCB1c2VyLXN1cHBsaWVkIGZ1bmN0aW9uLiAgVGhpcyBjYW4gZG8gd2hhdGV2ZXIgaXQKK2xpa2VzLCB0eXBpY2FsbHkgZXhhbWluaW5nIHRoZSBhcmd1bWVudHMsIGNhbGxpbmcgb253YXJkcyB0byB0aGUgb3JpZ2luYWwsCithbmQgcG9zc2libHkgZXhhbWluaW5nIHRoZSByZXN1bHQuICBBbnkgbnVtYmVyIG9mIGZ1bmN0aW9ucyBtYXkgYmUKK3dyYXBwZWQuPC9wPgorPHA+CitGdW5jdGlvbiB3cmFwcGluZyBpcyB1c2VmdWwgZm9yIGluc3RydW1lbnRpbmcgYW4gQVBJIGluIHNvbWUgd2F5LiAgRm9yCitleGFtcGxlLCBIZWxncmluZCB3cmFwcyBmdW5jdGlvbnMgaW4gdGhlIFBPU0lYIHB0aHJlYWRzIEFQSSBzbyBpdCBjYW4ga25vdworYWJvdXQgdGhyZWFkIHN0YXR1cyBjaGFuZ2VzLCBhbmQgdGhlIGNvcmUgaXMgYWJsZSB0byB3cmFwCitmdW5jdGlvbnMgaW4gdGhlIE1QSSAobWVzc2FnZS1wYXNzaW5nKSBBUEkgc28gaXQgY2FuIGtub3cKK29mIG1lbW9yeSBzdGF0dXMgY2hhbmdlcyBhc3NvY2lhdGVkIHdpdGggbWVzc2FnZSBhcnJpdmFsL2RlcGFydHVyZS4KK1N1Y2ggaW5mb3JtYXRpb24gaXMgdXN1YWxseSBwYXNzZWQgdG8gVmFsZ3JpbmQgYnkgdXNpbmcgY2xpZW50CityZXF1ZXN0cyBpbiB0aGUgd3JhcHBlciBmdW5jdGlvbnMsIGFsdGhvdWdoIHRoZSBleGFjdCBtZWNoYW5pc20gbWF5IHZhcnkuCis8L3A+Cis8ZGl2IGNsYXNzPSJzZWN0MiI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9Im1hbnVhbC1jb3JlLWFkdi53cmFwcGluZy5leGFtcGxlIj48L2E+My4zLjEuoEEgU2ltcGxlIEV4YW1wbGU8L2gzPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+U3VwcG9zaW5nIHdlIHdhbnQgdG8gd3JhcCBzb21lIGZ1bmN0aW9uPC9wPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPgoraW50IGZvbyAoIGludCB4LCBpbnQgeSApIHsgcmV0dXJuIHggKyB5OyB9PC9wcmU+Cis8cD5BIHdyYXBwZXIgaXMgYSBmdW5jdGlvbiBvZiBpZGVudGljYWwgdHlwZSwgYnV0IHdpdGggYSBzcGVjaWFsIG5hbWUKK3doaWNoIGlkZW50aWZpZXMgaXQgYXMgdGhlIHdyYXBwZXIgZm9yIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+Zm9vPC9jb2RlPi4KK1dyYXBwZXJzIG5lZWQgdG8gaW5jbHVkZQorc3VwcG9ydGluZyBtYWNyb3MgZnJvbSA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPnZhbGdyaW5kLmg8L2NvZGU+LgorSGVyZSBpcyBhIHNpbXBsZSB3cmFwcGVyIHdoaWNoIHByaW50cyB0aGUgYXJndW1lbnRzIGFuZCByZXR1cm4gdmFsdWU6PC9wPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPgorI2luY2x1ZGUgJmx0O3N0ZGlvLmgmZ3Q7CisjaW5jbHVkZSAidmFsZ3JpbmQuaCIKK2ludCBJX1dSQVBfU09OQU1FX0ZOTkFNRV9aVShOT05FLGZvbykoIGludCB4LCBpbnQgeSApCit7CisgICBpbnQgICAgcmVzdWx0OworICAgT3JpZ0ZuIGZuOworICAgVkFMR1JJTkRfR0VUX09SSUdfRk4oZm4pOworICAgcHJpbnRmKCJmb28ncyB3cmFwcGVyOiBhcmdzICVkICVkXG4iLCB4LCB5KTsKKyAgIENBTExfRk5fV19XVyhyZXN1bHQsIGZuLCB4LHkpOworICAgcHJpbnRmKCJmb28ncyB3cmFwcGVyOiByZXN1bHQgJWRcbiIsIHJlc3VsdCk7CisgICByZXR1cm4gcmVzdWx0OworfQorPC9wcmU+Cis8cD5UbyBiZWNvbWUgYWN0aXZlLCB0aGUgd3JhcHBlciBtZXJlbHkgbmVlZHMgdG8gYmUgcHJlc2VudCBpbiBhIHRleHQKK3NlY3Rpb24gc29tZXdoZXJlIGluIHRoZSBzYW1lIHByb2Nlc3MnIGFkZHJlc3Mgc3BhY2UgYXMgdGhlIGZ1bmN0aW9uCitpdCB3cmFwcywgYW5kIGZvciBpdHMgRUxGIHN5bWJvbCBuYW1lIHRvIGJlIHZpc2libGUgdG8gVmFsZ3JpbmQuICBJbgorcHJhY3RpY2UsIHRoaXMgbWVhbnMgZWl0aGVyIGNvbXBpbGluZyB0byBhIAorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij4ubzwvY29kZT4gYW5kIGxpbmtpbmcgaXQgaW4sIG9yCitjb21waWxpbmcgdG8gYSA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPi5zbzwvY29kZT4gYW5kIAorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5MRF9QUkVMT0FEPC9jb2RlPmluZyBpdCBpbi4gIFRoZSBsYXR0ZXIgaXMgbW9yZQorY29udmVuaWVudCBpbiB0aGF0IGl0IGRvZXNuJ3QgcmVxdWlyZSByZWxpbmtpbmcuPC9wPgorPHA+QWxsIHdyYXBwZXJzIGhhdmUgYXBwcm94aW1hdGVseSB0aGUgYWJvdmUgZm9ybS4gIFRoZXJlIGFyZSB0aHJlZQorY3J1Y2lhbCBtYWNyb3M6PC9wPgorPHA+PGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5JX1dSQVBfU09OQU1FX0ZOTkFNRV9aVTwvY29kZT46IAordGhpcyBnZW5lcmF0ZXMgdGhlIHJlYWwgbmFtZSBvZiB0aGUgd3JhcHBlci4KK1RoaXMgaXMgYW4gZW5jb2RlZCBuYW1lIHdoaWNoIFZhbGdyaW5kIG5vdGljZXMgd2hlbiByZWFkaW5nIHN5bWJvbAordGFibGUgaW5mb3JtYXRpb24uICBXaGF0IGl0IHNheXMgaXM6IEkgYW0gdGhlIHdyYXBwZXIgZm9yIGFueSBmdW5jdGlvbgorbmFtZWQgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5mb288L2NvZGU+IHdoaWNoIGlzIGZvdW5kIGluIAorYW4gRUxGIHNoYXJlZCBvYmplY3Qgd2l0aCBhbiBlbXB0eQorKCI8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPk5PTkU8L2NvZGU+Iikgc29uYW1lIGZpZWxkLiAgVGhlIHNwZWNpZmljYXRpb24gCittZWNoYW5pc20gaXMgcG93ZXJmdWwgaW4KK3RoYXQgd2lsZGNhcmRzIGFyZSBhbGxvd2VkIGZvciBib3RoIHNvbmFtZXMgYW5kIGZ1bmN0aW9uIG5hbWVzLiAgCitUaGUgZGV0YWlscyBhcmUgZGlzY3Vzc2VkIGJlbG93LjwvcD4KKzxwPjxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+VkFMR1JJTkRfR0VUX09SSUdfRk48L2NvZGU+OiAKK29uY2UgaW4gdGhlIHdyYXBwZXIsIHRoZSBmaXJzdCBwcmlvcml0eSBpcwordG8gZ2V0IGhvbGQgb2YgdGhlIGFkZHJlc3Mgb2YgdGhlIG9yaWdpbmFsIChhbmQgYW55IG90aGVyIHN1cHBvcnRpbmcKK2luZm9ybWF0aW9uIG5lZWRlZCkuICBUaGlzIGlzIHN0b3JlZCBpbiBhIHZhbHVlIG9mIG9wYXF1ZSAKK3R5cGUgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5PcmlnRm48L2NvZGU+LgorVGhlIGluZm9ybWF0aW9uIGlzIGFjcXVpcmVkIHVzaW5nIAorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5WQUxHUklORF9HRVRfT1JJR19GTjwvY29kZT4uICBJdCBpcyBjcnVjaWFsCit0byBtYWtlIHRoaXMgbWFjcm8gY2FsbCBiZWZvcmUgY2FsbGluZyBhbnkgb3RoZXIgd3JhcHBlZCBmdW5jdGlvbgoraW4gdGhlIHNhbWUgdGhyZWFkLjwvcD4KKzxwPjxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+Q0FMTF9GTl9XX1dXPC9jb2RlPjogZXZlbnR1YWxseSB3ZSB3aWxsCit3YW50IHRvIGNhbGwgdGhlIGZ1bmN0aW9uIGJlaW5nCit3cmFwcGVkLiAgQ2FsbGluZyBpdCBkaXJlY3RseSBkb2VzIG5vdCB3b3JrLCBzaW5jZSB0aGF0IGp1c3QgZ2V0cyB1cworYmFjayB0byB0aGUgd3JhcHBlciBhbmQgbGVhZHMgdG8gYW4gaW5maW5pdGUgbG9vcC4gIEluc3RlYWQsIHRoZSByZXN1bHQKK2x2YWx1ZSwgCis8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPk9yaWdGbjwvY29kZT4gYW5kIGFyZ3VtZW50cyBhcmUKK2hhbmRlZCB0byBvbmUgb2YgYSBmYW1pbHkgb2YgbWFjcm9zIG9mIHRoZSBmb3JtIAorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5DQUxMX0ZOXyo8L2NvZGU+LiAgVGhlc2UKK2NhdXNlIFZhbGdyaW5kIHRvIGNhbGwgdGhlIG9yaWdpbmFsIGFuZCBhdm9pZCByZWN1cnNpb24gYmFjayB0byB0aGUKK3dyYXBwZXIuPC9wPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MiI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9Im1hbnVhbC1jb3JlLWFkdi53cmFwcGluZy5zcGVjcyI+PC9hPjMuMy4yLqBXcmFwcGluZyBTcGVjaWZpY2F0aW9uczwvaDM+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD5UaGlzIHNjaGVtZSBoYXMgdGhlIGFkdmFudGFnZSBvZiBiZWluZyBzZWxmLWNvbnRhaW5lZC4gIEEgbGlicmFyeSBvZgord3JhcHBlcnMgY2FuIGJlIGNvbXBpbGVkIHRvIG9iamVjdCBjb2RlIGluIHRoZSBub3JtYWwgd2F5LCBhbmQgZG9lcworbm90IHJlbHkgb24gYW4gZXh0ZXJuYWwgc2NyaXB0IHRlbGxpbmcgVmFsZ3JpbmQgd2hpY2ggd3JhcHBlcnMgcGVydGFpbgordG8gd2hpY2ggb3JpZ2luYWxzLjwvcD4KKzxwPkVhY2ggd3JhcHBlciBoYXMgYSBuYW1lIHdoaWNoLCBpbiB0aGUgbW9zdCBnZW5lcmFsIGNhc2Ugc2F5czogSSBhbSB0aGUKK3dyYXBwZXIgZm9yIGFueSBmdW5jdGlvbiB3aG9zZSBuYW1lIG1hdGNoZXMgRk5QQVRUIGFuZCB3aG9zZSBFTEYKKyJzb25hbWUiIG1hdGNoZXMgU09QQVRULiAgQm90aCBGTlBBVFQgYW5kIFNPUEFUVCBtYXkgY29udGFpbiB3aWxkY2FyZHMKKyhhc3Rlcmlza3MpIGFuZCBvdGhlciBjaGFyYWN0ZXJzIChzcGFjZXMsIGRvdHMsIEAsIGV0Yykgd2hpY2ggYXJlIG5vdCAKK2dlbmVyYWxseSByZWdhcmRlZCBhcyB2YWxpZCBDIGlkZW50aWZpZXIgbmFtZXMuPC9wPgorPHA+VGhpcyBmbGV4aWJpbGl0eSBpcyBuZWVkZWQgdG8gd3JpdGUgcm9idXN0IHdyYXBwZXJzIGZvciBQT1NJWCBwdGhyZWFkCitmdW5jdGlvbnMsIHdoZXJlIHR5cGljYWxseSB3ZSBhcmUgbm90IGNvbXBsZXRlbHkgc3VyZSBvZiBlaXRoZXIgdGhlCitmdW5jdGlvbiBuYW1lIG9yIHRoZSBzb25hbWUsIG9yIGFsdGVybmF0aXZlbHkgd2Ugd2FudCB0byB3cmFwIGEgd2hvbGUKK3NldCBvZiBmdW5jdGlvbnMgYXQgb25jZS48L3A+Cis8cD5Gb3IgZXhhbXBsZSwgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5wdGhyZWFkX2NyZWF0ZTwvY29kZT4gCitpbiBHTlUgbGlicHRocmVhZCBpcyB1c3VhbGx5IGEKK3ZlcnNpb25lZCBzeW1ib2wgLSBvbmUgd2hvc2UgbmFtZSBlbmRzIGluLCBlZywgCis8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPkBHTElCQ18yLjM8L2NvZGU+LiAgSGVuY2Ugd2UKK2FyZSBub3Qgc3VyZSB3aGF0IGl0cyByZWFsIG5hbWUgaXMuICBXZSBhbHNvIHdhbnQgdG8gY292ZXIgYW55IHNvbmFtZQorb2YgdGhlIGZvcm0gPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5saWJwdGhyZWFkLnNvKjwvY29kZT4uCitTbyB0aGUgaGVhZGVyIG9mIHRoZSB3cmFwcGVyIHdpbGwgYmU8L3A+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CitpbnQgSV9XUkFQX1NPTkFNRV9GTk5BTUVfWloobGlicHRocmVhZFpkc29aZDAscHRocmVhZFp1Y3JlYXRlWkFaYSkKKyAgKCAuLi4gZm9ybWFscyAuLi4gKQorICB7IC4uLiBib2R5IC4uLiB9Cis8L3ByZT4KKzxwPkluIG9yZGVyIHRvIHdyaXRlIHVudXN1YWwgY2hhcmFjdGVycyBhcyB2YWxpZCBDIGZ1bmN0aW9uIG5hbWVzLCBhCitaLWVuY29kaW5nIHNjaGVtZSBpcyB1c2VkLiAgTmFtZXMgYXJlIHdyaXR0ZW4gbGl0ZXJhbGx5LCBleGNlcHQgdGhhdAorYSBjYXBpdGFsIFogYWN0cyBhcyBhbiBlc2NhcGUgY2hhcmFjdGVyLCB3aXRoIHRoZSBmb2xsb3dpbmcgZW5jb2Rpbmc6PC9wPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPgorICAgICBaYSAgIGVuY29kZXMgICAgKgorICAgICBacCAgICAgICAgICAgICAgKworICAgICBaYyAgICAgICAgICAgICAgOgorICAgICBaZCAgICAgICAgICAgICAgLgorICAgICBadSAgICAgICAgICAgICAgXworICAgICBaaCAgICAgICAgICAgICAgLQorICAgICBacyAgICAgICAgICAgICAgKHNwYWNlKQorICAgICBaQSAgICAgICAgICAgICAgQAorICAgICBaWiAgICAgICAgICAgICAgWgorICAgICBaTCAgICAgICAgICAgICAgKCAgICAgICAjIG9ubHkgaW4gdmFsZ3JpbmQgMy4zLjAgYW5kIGxhdGVyCisgICAgIFpSICAgICAgICAgICAgICApICAgICAgICMgb25seSBpbiB2YWxncmluZCAzLjMuMCBhbmQgbGF0ZXIKKzwvcHJlPgorPHA+SGVuY2UgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5saWJwdGhyZWFkWmRzb1pkMDwvY29kZT4gaXMgYW4gCitlbmNvZGluZyBvZiB0aGUgc29uYW1lIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+bGlicHRocmVhZC5zby4wPC9jb2RlPgorYW5kIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+cHRocmVhZFp1Y3JlYXRlWkFaYTwvY29kZT4gaXMgYW4gZW5jb2RpbmcgCitvZiB0aGUgZnVuY3Rpb24gbmFtZSA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPnB0aHJlYWRfY3JlYXRlQCo8L2NvZGU+LgorPC9wPgorPHA+VGhlIG1hY3JvIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+SV9XUkFQX1NPTkFNRV9GTk5BTUVfWlo8L2NvZGU+IAorY29uc3RydWN0cyBhIHdyYXBwZXIgbmFtZSBpbiB3aGljaAorYm90aCB0aGUgc29uYW1lIChmaXJzdCBjb21wb25lbnQpIGFuZCBmdW5jdGlvbiBuYW1lIChzZWNvbmQgY29tcG9uZW50KQorYXJlIFotZW5jb2RlZC4gIEVuY29kaW5nIHRoZSBmdW5jdGlvbiBuYW1lIGNhbiBiZSB0aXJlc29tZSBhbmQgaXMKK29mdGVuIHVubmVjZXNzYXJ5LCBzbyBhIHNlY29uZCBtYWNybywKKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+SV9XUkFQX1NPTkFNRV9GTk5BTUVfWlU8L2NvZGU+LCBjYW4gYmUKK3VzZWQgaW5zdGVhZC4gIFRoZSA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPl9aVTwvY29kZT4gdmFyaWFudCBpcyAKK2Fsc28gdXNlZnVsIGZvciB3cml0aW5nIHdyYXBwZXJzIGZvcgorQysrIGZ1bmN0aW9ucywgaW4gd2hpY2ggdGhlIGZ1bmN0aW9uIG5hbWUgaXMgdXN1YWxseSBhbHJlYWR5IG1hbmdsZWQKK3VzaW5nIHNvbWUgb3RoZXIgY29udmVudGlvbiBpbiB3aGljaCBaIHBsYXlzIGFuIGltcG9ydGFudCByb2xlLiAgSGF2aW5nCit0byBlbmNvZGUgYSBzZWNvbmQgdGltZSBxdWlja2x5IGJlY29tZXMgY29uZnVzaW5nLjwvcD4KKzxwPlNpbmNlIHRoZSBmdW5jdGlvbiBuYW1lIGZpZWxkIG1heSBjb250YWluIHdpbGRjYXJkcywgaXQgY2FuIGJlCithbnl0aGluZywgaW5jbHVkaW5nIGp1c3QgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij4qPC9jb2RlPi4KK1RoZSBzYW1lIGlzIHRydWUgZm9yIHRoZSBzb25hbWUuCitIb3dldmVyLCBzb21lIEVMRiBvYmplY3RzIC0gc3BlY2lmaWNhbGx5LCBtYWluIGV4ZWN1dGFibGVzIC0gZG8gbm90CitoYXZlIHNvbmFtZXMuICBBbnkgb2JqZWN0IGxhY2tpbmcgYSBzb25hbWUgaXMgdHJlYXRlZCBhcyBpZiBpdHMgc29uYW1lCit3YXMgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5OT05FPC9jb2RlPiwgd2hpY2ggaXMgd2h5IHRoZSBvcmlnaW5hbCAKK2V4YW1wbGUgYWJvdmUgaGFkIGEgbmFtZQorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5JX1dSQVBfU09OQU1FX0ZOTkFNRV9aVShOT05FLGZvbyk8L2NvZGU+LjwvcD4KKzxwPk5vdGUgdGhhdCB0aGUgc29uYW1lIG9mIGFuIEVMRiBvYmplY3QgaXMgbm90IHRoZSBzYW1lIGFzIGl0cworZmlsZSBuYW1lLCBhbHRob3VnaCBpdCBpcyBvZnRlbiBzaW1pbGFyLiAgWW91IGNhbiBmaW5kIHRoZSBzb25hbWUgb2YKK2FuIG9iamVjdCA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmxpYmZvby5zbzwvY29kZT4gdXNpbmcgdGhlIGNvbW1hbmQKKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+cmVhZGVsZiAtYSBsaWJmb28uc28gfCBncmVwIHNvbmFtZTwvY29kZT4uPC9wPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MiI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9Im1hbnVhbC1jb3JlLWFkdi53cmFwcGluZy5zZW1hbnRpY3MiPjwvYT4zLjMuMy6gV3JhcHBpbmcgU2VtYW50aWNzPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPlRoZSBhYmlsaXR5IGZvciBhIHdyYXBwZXIgdG8gcmVwbGFjZSBhbiBpbmZpbml0ZSBmYW1pbHkgb2YgZnVuY3Rpb25zCitpcyBwb3dlcmZ1bCBidXQgYnJpbmdzIGNvbXBsaWNhdGlvbnMgaW4gc2l0dWF0aW9ucyB3aGVyZSBFTEYgb2JqZWN0cworYXBwZWFyIGFuZCBkaXNhcHBlYXIgKGFyZSBkbG9wZW4nZCBhbmQgZGxjbG9zZSdkKSBvbiB0aGUgZmx5LgorVmFsZ3JpbmQgdHJpZXMgdG8gbWFpbnRhaW4gc2Vuc2libGUgYmVoYXZpb3VyIGluIHN1Y2ggc2l0dWF0aW9ucy48L3A+Cis8cD5Gb3IgZXhhbXBsZSwgc3VwcG9zZSBhIHByb2Nlc3MgaGFzIGRsb3BlbmVkIChhbiBFTEYgb2JqZWN0IHdpdGgKK3NvbmFtZSkgPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5vYmplY3QxLnNvPC9jb2RlPiwgd2hpY2ggY29udGFpbnMgCis8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmZ1bmN0aW9uMTwvY29kZT4uICBJdCBzdGFydHMgdG8gdXNlCis8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmZ1bmN0aW9uMTwvY29kZT4gaW1tZWRpYXRlbHkuPC9wPgorPHA+QWZ0ZXIgYSB3aGlsZSBpdCBkbG9wZW5zIDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+d3JhcHBlcnMuc288L2NvZGU+LAord2hpY2ggY29udGFpbnMgYSB3cmFwcGVyCitmb3IgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5mdW5jdGlvbjE8L2NvZGU+IGluIChzb25hbWUpIAorPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5vYmplY3QxLnNvPC9jb2RlPi4gIEFsbCBzdWJzZXF1ZW50IGNhbGxzIHRvIAorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5mdW5jdGlvbjE8L2NvZGU+IGFyZSByZXJvdXRlZCB0byB0aGUgd3JhcHBlci48L3A+Cis8cD5JZiA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPndyYXBwZXJzLnNvPC9jb2RlPiBpcyAKK2xhdGVyIGRsY2xvc2UnZCwgY2FsbHMgdG8gPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5mdW5jdGlvbjE8L2NvZGU+IGFyZSAKK25hdHVyYWxseSByb3V0ZWQgYmFjayB0byB0aGUgb3JpZ2luYWwuPC9wPgorPHA+QWx0ZXJuYXRpdmVseSwgaWYgPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5vYmplY3QxLnNvPC9jb2RlPgoraXMgZGxjbG9zZSdkIGJ1dCA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPndyYXBwZXJzLnNvPC9jb2RlPiByZW1haW5zLAordGhlbiB0aGUgd3JhcHBlciBleHBvcnRlZCBieSA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPndyYXBwZXJzLnNvPC9jb2RlPgorYmVjb21lcyBpbmFjdGl2ZSwgc2luY2UgdGhlcmUKK2lzIG5vIHdheSB0byBnZXQgdG8gaXQgLSB0aGVyZSBpcyBubyBvcmlnaW5hbCB0byBjYWxsIGFueSBtb3JlLiAgSG93ZXZlciwKK1ZhbGdyaW5kIHJlbWVtYmVycyB0aGF0IHRoZSB3cmFwcGVyIGlzIHN0aWxsIHByZXNlbnQuICBJZiAKKzxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+b2JqZWN0MS5zbzwvY29kZT4gaXMKK2V2ZW50dWFsbHkgZGxvcGVuJ2QgYWdhaW4sIHRoZSB3cmFwcGVyIHdpbGwgYmVjb21lIGFjdGl2ZSBhZ2Fpbi48L3A+Cis8cD5JbiBzaG9ydCwgdmFsZ3JpbmQgaW5zcGVjdHMgYWxsIGNvZGUgbG9hZGluZy91bmxvYWRpbmcgZXZlbnRzIHRvCitlbnN1cmUgdGhhdCB0aGUgc2V0IG9mIGN1cnJlbnRseSBhY3RpdmUgd3JhcHBlcnMgcmVtYWlucyBjb25zaXN0ZW50LjwvcD4KKzxwPkEgc2Vjb25kIHBvc3NpYmxlIHByb2JsZW0gaXMgdGhhdCBvZiBjb25mbGljdGluZyB3cmFwcGVycy4gIEl0IGlzIAorZWFzaWx5IHBvc3NpYmxlIHRvIGxvYWQgdHdvIG9yIG1vcmUgd3JhcHBlcnMsIGJvdGggb2Ygd2hpY2ggY2xhaW0KK3RvIGJlIHdyYXBwZXJzIGZvciBzb21lIHRoaXJkIGZ1bmN0aW9uLiAgSW4gc3VjaCBjYXNlcyBWYWxncmluZCB3aWxsCitjb21wbGFpbiBhYm91dCBjb25mbGljdGluZyB3cmFwcGVycyB3aGVuIHRoZSBzZWNvbmQgb25lIGFwcGVhcnMsIGFuZAord2lsbCBob25vdXIgb25seSB0aGUgZmlyc3Qgb25lLjwvcD4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDIiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJtYW51YWwtY29yZS1hZHYud3JhcHBpbmcuZGVidWdnaW5nIj48L2E+My4zLjQuoERlYnVnZ2luZzwvaDM+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD5GaWd1cmluZyBvdXQgd2hhdCdzIGdvaW5nIG9uIGdpdmVuIHRoZSBkeW5hbWljIG5hdHVyZSBvZiB3cmFwcGluZworY2FuIGJlIGRpZmZpY3VsdC4gIFRoZSAKKzxjb2RlIGNsYXNzPSJvcHRpb24iPi0tdHJhY2UtcmVkaXI9eWVzPC9jb2RlPiBvcHRpb24gbWFrZXMgCit0aGlzIHBvc3NpYmxlCitieSBzaG93aW5nIHRoZSBjb21wbGV0ZSBzdGF0ZSBvZiB0aGUgcmVkaXJlY3Rpb24gc3Vic3lzdGVtIGFmdGVyCitldmVyeQorPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5tbWFwPC9jb2RlPi88Y29kZSBjbGFzcz0iZnVuY3Rpb24iPm11bm1hcDwvY29kZT4KK2V2ZW50IGFmZmVjdGluZyBjb2RlICh0ZXh0KS48L3A+Cis8cD5UaGVyZSBhcmUgdHdvIGNlbnRyYWwgY29uY2VwdHM6PC9wPgorPGRpdiBjbGFzcz0iaXRlbWl6ZWRsaXN0Ij48dWwgY2xhc3M9Iml0ZW1pemVkbGlzdCIgc3R5bGU9Imxpc3Qtc3R5bGUtdHlwZTogZGlzYzsgIj4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPkEgInJlZGlyZWN0aW9uIHNwZWNpZmljYXRpb24iIGlzIGEgYmluZGluZyBvZiAKKyAgYSAoc29uYW1lIHBhdHRlcm4sIGZubmFtZSBwYXR0ZXJuKSBwYWlyIHRvIGEgY29kZSBhZGRyZXNzLgorICBUaGVzZSBiaW5kaW5ncyBhcmUgY3JlYXRlZCBieSB3cml0aW5nIGZ1bmN0aW9ucyB3aXRoIG5hbWVzCisgIG1hZGUgd2l0aCB0aGUgCisgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+SV9XUkFQX1NPTkFNRV9GTk5BTUVfe1paLF9aVX08L2NvZGU+CisgIG1hY3Jvcy48L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPkFuICJhY3RpdmUgcmVkaXJlY3Rpb24iIGlzIGEgY29kZS1hZGRyZXNzIHRvIAorICBjb2RlLWFkZHJlc3MgYmluZGluZyBjdXJyZW50bHkgaW4gZWZmZWN0LjwvcD48L2xpPgorPC91bD48L2Rpdj4KKzxwPlRoZSBzdGF0ZSBvZiB0aGUgd3JhcHBpbmctYW5kLXJlZGlyZWN0aW9uIHN1YnN5c3RlbSBjb21wcmlzZXMgYSBzZXQgb2YKK3NwZWNpZmljYXRpb25zIGFuZCBhIHNldCBvZiBhY3RpdmUgYmluZGluZ3MuICBUaGUgc3BlY2lmaWNhdGlvbnMgYXJlCithY3F1aXJlZC9kaXNjYXJkZWQgYnkgd2F0Y2hpbmcgYWxsIAorPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5tbWFwPC9jb2RlPi88Y29kZSBjbGFzcz0iZnVuY3Rpb24iPm11bm1hcDwvY29kZT4KK2V2ZW50cyBvbiBjb2RlICh0ZXh0KQorc2VjdGlvbnMuICBUaGUgYWN0aXZlIGJpbmRpbmcgc2V0IGlzIChjb25jZXB0dWFsbHkpIHJlY29tcHV0ZWQgZnJvbQordGhlIHNwZWNpZmljYXRpb25zLCBhbmQgYWxsIGtub3duIHN5bWJvbCBuYW1lcywgZm9sbG93aW5nIGFueSBjaGFuZ2UKK3RvIHRoZSBzcGVjaWZpY2F0aW9uIHNldC48L3A+Cis8cD48Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXRyYWNlLXJlZGlyPXllczwvY29kZT4gc2hvd3MgdGhlIGNvbnRlbnRzIAorb2YgYm90aCBzZXRzIGZvbGxvd2luZyBhbnkgc3VjaCBldmVudC48L3A+Cis8cD48Y29kZSBjbGFzcz0ib3B0aW9uIj4tdjwvY29kZT4gcHJpbnRzIGEgbGluZSBvZiB0ZXh0IGVhY2ggCit0aW1lIGFuIGFjdGl2ZSBzcGVjaWZpY2F0aW9uIGlzIHVzZWQgZm9yIHRoZSBmaXJzdCB0aW1lLjwvcD4KKzxwPkhlbmNlIGZvciBtYXhpbXVtIGRlYnVnZ2luZyBlZmZlY3RpdmVuZXNzIHlvdSB3aWxsIG5lZWQgdG8gdXNlIGJvdGgKK29wdGlvbnMuPC9wPgorPHA+T25lIGZpbmFsIGNvbW1lbnQuICBUaGUgZnVuY3Rpb24td3JhcHBpbmcgZmFjaWxpdHkgaXMgY2xvc2VseQordGllZCB0byBWYWxncmluZCdzIGFiaWxpdHkgdG8gcmVwbGFjZSAocmVkaXJlY3QpIHNwZWNpZmllZAorZnVuY3Rpb25zLCBmb3IgZXhhbXBsZSB0byByZWRpcmVjdCBjYWxscyB0byAKKzxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+bWFsbG9jPC9jb2RlPiB0byBpdHMKK293biBpbXBsZW1lbnRhdGlvbi4gIEluZGVlZCwgYSByZXBsYWNlbWVudCBmdW5jdGlvbiBjYW4gYmUKK3JlZ2FyZGVkIGFzIGEgd3JhcHBlciBmdW5jdGlvbiB3aGljaCBkb2VzIG5vdCBjYWxsIHRoZSBvcmlnaW5hbC4KK0hvd2V2ZXIsIHRvIG1ha2UgdGhlIGltcGxlbWVudGF0aW9uIG1vcmUgcm9idXN0LCB0aGUgdHdvIGtpbmRzCitvZiBpbnRlcmNlcHRpb24gKHdyYXBwaW5nIHZzIHJlcGxhY2VtZW50KSBhcmUgdHJlYXRlZCBkaWZmZXJlbnRseS4KKzwvcD4KKzxwPjxjb2RlIGNsYXNzPSJvcHRpb24iPi0tdHJhY2UtcmVkaXI9eWVzPC9jb2RlPiBzaG93cyAKK3NwZWNpZmljYXRpb25zIGFuZCBiaW5kaW5ncyBmb3IgYm90aAorcmVwbGFjZW1lbnQgYW5kIHdyYXBwZXIgZnVuY3Rpb25zLiAgVG8gZGlmZmVyZW50aWF0ZSB0aGUgCit0d28sIHJlcGxhY2VtZW50IGJpbmRpbmdzIGFyZSBwcmludGVkIHVzaW5nIAorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5SLSZndDs8L2NvZGU+IHdoZXJlYXMgCit3cmFwcyBhcmUgcHJpbnRlZCB1c2luZyA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPlctJmd0OzwvY29kZT4uCis8L3A+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0ibWFudWFsLWNvcmUtYWR2LndyYXBwaW5nLmxpbWl0YXRpb25zLWNmIj48L2E+My4zLjUuoExpbWl0YXRpb25zIC0gY29udHJvbCBmbG93PC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPkZvciB0aGUgbW9zdCBwYXJ0LCB0aGUgZnVuY3Rpb24gd3JhcHBpbmcgaW1wbGVtZW50YXRpb24gaXMgcm9idXN0LgorVGhlIG9ubHkgaW1wb3J0YW50IGNhdmVhdCBpczogaW4gYSB3cmFwcGVyLCBnZXQgaG9sZCBvZgordGhlIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+T3JpZ0ZuPC9jb2RlPiBpbmZvcm1hdGlvbiB1c2luZyAKKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+VkFMR1JJTkRfR0VUX09SSUdfRk48L2NvZGU+IGJlZm9yZSBjYWxsaW5nIGFueQorb3RoZXIgd3JhcHBlZCBmdW5jdGlvbi4gIE9uY2UgeW91IGhhdmUgdGhlIAorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5PcmlnRm48L2NvZGU+LCBhcmJpdHJhcnkKK2NhbGxzIGJldHdlZW4sIHJlY3Vyc2lvbiBiZXR3ZWVuLCBhbmQgbG9uZ2p1bXBzIG91dCBvZiB3cmFwcGVycworc2hvdWxkIHdvcmsgY29ycmVjdGx5LiAgVGhlcmUgaXMgbmV2ZXIgYW55IGludGVyYWN0aW9uIGJldHdlZW4gd3JhcHBlZAorZnVuY3Rpb25zIGFuZCBtZXJlbHkgcmVwbGFjZWQgZnVuY3Rpb25zIAorKGVnIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+bWFsbG9jPC9jb2RlPiksIHNvIHlvdSBjYW4gY2FsbAorPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5tYWxsb2M8L2NvZGU+IGV0YyBzYWZlbHkgZnJvbSB3aXRoaW4gd3JhcHBlcnMuCis8L3A+Cis8cD5UaGUgYWJvdmUgY29tbWVudHMgYXJlIHRydWUgZm9yIHt4ODYsYW1kNjQscHBjMzIsYXJtLG1pcHMzMixzMzkwfS1saW51eC4KK09uCitwcGM2NC1saW51eCBmdW5jdGlvbiB3cmFwcGluZyBpcyBtb3JlIGZyYWdpbGUgZHVlIHRvIHRoZSAoYXJndWFibHkKK3Bvb3JseSBkZXNpZ25lZCkgcHBjNjQtbGludXggQUJJLiAgVGhpcyBtYW5kYXRlcyB0aGUgdXNlIG9mIGEgc2hhZG93CitzdGFjayB3aGljaCB0cmFja3MgZW50cmllcy9leGl0cyBvZiBib3RoIHdyYXBwZXIgYW5kIHJlcGxhY2VtZW50CitmdW5jdGlvbnMuICBUaGlzIGdpdmVzIHR3byBsaW1pdGF0aW9uczogZmlyc3RseSwgbG9uZ2p1bXBpbmcgb3V0IG9mCit3cmFwcGVycyB3aWxsIHJhcGlkbHkgbGVhZCB0byBkaXNhc3Rlciwgc2luY2UgdGhlIHNoYWRvdyBzdGFjayB3aWxsCitub3QgZ2V0IGNvcnJlY3RseSBjbGVhcmVkLiAgU2Vjb25kbHksIHNpbmNlIHRoZSBzaGFkb3cgc3RhY2sgaGFzCitmaW5pdGUgc2l6ZSwgcmVjdXJzaW9uIGJldHdlZW4gd3JhcHBlci9yZXBsYWNlbWVudCBmdW5jdGlvbnMgaXMgb25seQorcG9zc2libGUgdG8gYSBsaW1pdGVkIGRlcHRoLCBiZXlvbmQgd2hpY2ggVmFsZ3JpbmQgaGFzIHRvIGFib3J0IHRoZQorcnVuLiAgVGhpcyBkZXB0aCBpcyBjdXJyZW50bHkgMTYgY2FsbHMuPC9wPgorPHA+Rm9yIGFsbCBwbGF0Zm9ybXMgKHt4ODYsYW1kNjQscHBjMzIscHBjNjQsYXJtLG1pcHMzMixzMzkwfS1saW51eCkKK2FsbCB0aGUgYWJvdmUKK2NvbW1lbnRzIGFwcGx5IG9uIGEgcGVyLXRocmVhZCBiYXNpcy4gIEluIG90aGVyIHdvcmRzLCB3cmFwcGluZyBpcwordGhyZWFkLXNhZmU6IGVhY2ggdGhyZWFkIG11c3QgaW5kaXZpZHVhbGx5IG9ic2VydmUgdGhlIGFib3ZlCityZXN0cmljdGlvbnMsIGJ1dCB0aGVyZSBpcyBubyBuZWVkIGZvciBhbnkga2luZCBvZiBpbnRlci10aHJlYWQKK2Nvb3BlcmF0aW9uLjwvcD4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDIiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJtYW51YWwtY29yZS1hZHYud3JhcHBpbmcubGltaXRhdGlvbnMtc2lncyI+PC9hPjMuMy42LqBMaW1pdGF0aW9ucyAtIG9yaWdpbmFsIGZ1bmN0aW9uIHNpZ25hdHVyZXM8L2gzPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+QXMgc2hvd24gaW4gdGhlIGFib3ZlIGV4YW1wbGUsIHRvIGNhbGwgdGhlIG9yaWdpbmFsIHlvdSBtdXN0IHVzZSBhCittYWNybyBvZiB0aGUgZm9ybSA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPkNBTExfRk5fKjwvY29kZT4uICAKK0ZvciB0ZWNobmljYWwgcmVhc29ucyBpdCBpcyBpbXBvc3NpYmxlCit0byBjcmVhdGUgYSBzaW5nbGUgbWFjcm8gdG8gZGVhbCB3aXRoIGFsbCBhcmd1bWVudCB0eXBlcyBhbmQgbnVtYmVycywKK3NvIGEgZmFtaWx5IG9mIG1hY3JvcyBjb3ZlcmluZyB0aGUgbW9zdCBjb21tb24gY2FzZXMgaXMgc3VwcGxpZWQuICBJbgord2hhdCBmb2xsb3dzLCAnVycgZGVub3RlcyBhIG1hY2hpbmUtd29yZC10eXBlZCB2YWx1ZSAoYSBwb2ludGVyIG9yIGEKK0MgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5sb25nPC9jb2RlPiksIAorYW5kICd2JyBkZW5vdGVzIEMncyA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPnZvaWQ8L2NvZGU+IHR5cGUuCitUaGUgY3VycmVudGx5IGF2YWlsYWJsZSBtYWNyb3MgYXJlOjwvcD4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KK0NBTExfRk5fdl92ICAgIC0tIGNhbGwgYW4gb3JpZ2luYWwgb2YgdHlwZSAgdm9pZCBmbiAoIHZvaWQgKQorQ0FMTF9GTl9XX3YgICAgLS0gY2FsbCBhbiBvcmlnaW5hbCBvZiB0eXBlICBsb25nIGZuICggdm9pZCApCisKK0NBTExfRk5fdl9XICAgIC0tIGNhbGwgYW4gb3JpZ2luYWwgb2YgdHlwZSAgdm9pZCBmbiAoIGxvbmcgKQorQ0FMTF9GTl9XX1cgICAgLS0gY2FsbCBhbiBvcmlnaW5hbCBvZiB0eXBlICBsb25nIGZuICggbG9uZyApCisKK0NBTExfRk5fdl9XVyAgIC0tIGNhbGwgYW4gb3JpZ2luYWwgb2YgdHlwZSAgdm9pZCBmbiAoIGxvbmcsIGxvbmcgKQorQ0FMTF9GTl9XX1dXICAgLS0gY2FsbCBhbiBvcmlnaW5hbCBvZiB0eXBlICBsb25nIGZuICggbG9uZywgbG9uZyApCisKK0NBTExfRk5fdl9XV1cgIC0tIGNhbGwgYW4gb3JpZ2luYWwgb2YgdHlwZSAgdm9pZCBmbiAoIGxvbmcsIGxvbmcsIGxvbmcgKQorQ0FMTF9GTl9XX1dXVyAgLS0gY2FsbCBhbiBvcmlnaW5hbCBvZiB0eXBlICBsb25nIGZuICggbG9uZywgbG9uZywgbG9uZyApCisKK0NBTExfRk5fV19XV1dXIC0tIGNhbGwgYW4gb3JpZ2luYWwgb2YgdHlwZSAgbG9uZyBmbiAoIGxvbmcsIGxvbmcsIGxvbmcsIGxvbmcgKQorQ0FMTF9GTl9XXzVXICAgLS0gY2FsbCBhbiBvcmlnaW5hbCBvZiB0eXBlICBsb25nIGZuICggbG9uZywgbG9uZywgbG9uZywgbG9uZywgbG9uZyApCitDQUxMX0ZOX1dfNlcgICAtLSBjYWxsIGFuIG9yaWdpbmFsIG9mIHR5cGUgIGxvbmcgZm4gKCBsb25nLCBsb25nLCBsb25nLCBsb25nLCBsb25nLCBsb25nICkKK2FuZCBzbyBvbiwgdXAgdG8gCitDQUxMX0ZOX1dfMTJXCis8L3ByZT4KKzxwPlRoZSBzZXQgb2Ygc3VwcG9ydGVkIHR5cGVzIGNhbiBiZSBleHBhbmRlZCBhcyBuZWVkZWQuICBJdCBpcworcmVncmV0dGFibGUgdGhhdCB0aGlzIGxpbWl0YXRpb24gZXhpc3RzLiAgRnVuY3Rpb24gd3JhcHBpbmcgaGFzIHByb3ZlbgorZGlmZmljdWx0IHRvIGltcGxlbWVudCwgd2l0aCBhIGNlcnRhaW4gYXBwYXJlbnRseSB1bmF2b2lkYWJsZSBsZXZlbCBvZgoraWNraW5lc3MuICBBZnRlciBzZXZlcmFsIGltcGxlbWVudGF0aW9uIGF0dGVtcHRzLCB0aGUgcHJlc2VudAorYXJyYW5nZW1lbnQgYXBwZWFycyB0byBiZSB0aGUgbGVhc3Qtd29yc3QgdHJhZGVvZmYuICBBdCBsZWFzdCBpdCB3b3JrcworcmVsaWFibHkgaW4gdGhlIHByZXNlbmNlIG9mIGR5bmFtaWMgbGlua2luZyBhbmQgZHluYW1pYyBjb2RlCitsb2FkaW5nL3VubG9hZGluZy48L3A+Cis8cD5Zb3Ugc2hvdWxkIG5vdCBhdHRlbXB0IHRvIHdyYXAgYSBmdW5jdGlvbiBvZiBvbmUgdHlwZSBzaWduYXR1cmUgd2l0aCBhCit3cmFwcGVyIG9mIGEgZGlmZmVyZW50IHR5cGUgc2lnbmF0dXJlLiAgU3VjaCB0cmlja2VyeSB3aWxsIHN1cmVseSBsZWFkCit0byBjcmFzaGVzIG9yIHN0cmFuZ2UgYmVoYXZpb3VyLiAgVGhpcyBpcyBub3QgYSBsaW1pdGF0aW9uCitvZiB0aGUgZnVuY3Rpb24gd3JhcHBpbmcgaW1wbGVtZW50YXRpb24sIG1lcmVseSBhIHJlZmxlY3Rpb24gb2YgdGhlCitmYWN0IHRoYXQgaXQgZ2l2ZXMgeW91IHN3ZWVwaW5nIHBvd2VycyB0byBzaG9vdCB5b3Vyc2VsZiBpbiB0aGUgZm9vdAoraWYgeW91IGFyZSBub3QgY2FyZWZ1bC4gIEltYWdpbmUgdGhlIGluc3RhbnQgaGF2b2MgeW91IGNvdWxkIHdyZWFrIGJ5Cit3cml0aW5nIGEgd3JhcHBlciB3aGljaCBtYXRjaGVkIGFueSBmdW5jdGlvbiBuYW1lIGluIGFueSBzb25hbWUgLSBpbgorZWZmZWN0LCBvbmUgd2hpY2ggY2xhaW1lZCB0byBiZSBhIHdyYXBwZXIgZm9yIGFsbCBmdW5jdGlvbnMgaW4gdGhlCitwcm9jZXNzLjwvcD4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDIiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJtYW51YWwtY29yZS1hZHYud3JhcHBpbmcuZXhhbXBsZXMiPjwvYT4zLjMuNy6gRXhhbXBsZXM8L2gzPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+SW4gdGhlIHNvdXJjZSB0cmVlLCAKKzxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+bWVtY2hlY2svdGVzdHMvd3JhcFsxLThdLmM8L2NvZGU+IHByb3ZpZGUgYSBzZXJpZXMgb2YKK2V4YW1wbGVzLCByYW5naW5nIGZyb20gdmVyeSBzaW1wbGUgdG8gcXVpdGUgYWR2YW5jZWQuPC9wPgorPHA+PGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5tcGkvbGlibXBpd3JhcC5jPC9jb2RlPiBpcyBhbiBleGFtcGxlIAorb2Ygd3JhcHBpbmcgYSBiaWcsIGNvbXBsZXggQVBJICh0aGUgTVBJLTIgaW50ZXJmYWNlKS4gIFRoaXMgZmlsZSBkZWZpbmVzIAorYWxtb3N0IDMwMCBkaWZmZXJlbnQgd3JhcHBlcnMuPC9wPgorPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPGRpdj4KKzxicj48dGFibGUgY2xhc3M9Im5hdiIgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSIzIiBjZWxscGFkZGluZz0iMiIgYm9yZGVyPSIwIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGZvb3RlciI+Cis8dHI+Cis8dGQgcm93c3Bhbj0iMiIgd2lkdGg9IjQwJSIgYWxpZ249ImxlZnQiPgorPGEgYWNjZXNza2V5PSJwIiBocmVmPSJtYW51YWwtY29yZS5odG1sIj4mbHQ7Jmx0O6AyLqBVc2luZyBhbmQgdW5kZXJzdGFuZGluZyB0aGUgVmFsZ3JpbmQgY29yZTwvYT6gPC90ZD4KKzx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0iY2VudGVyIj48YSBhY2Nlc3NrZXk9InUiIGhyZWY9Im1hbnVhbC5odG1sIj5VcDwvYT48L3RkPgorPHRkIHJvd3NwYW49IjIiIHdpZHRoPSI0MCUiIGFsaWduPSJyaWdodCI+oDxhIGFjY2Vzc2tleT0ibiIgaHJlZj0ibWMtbWFudWFsLmh0bWwiPjQuoE1lbWNoZWNrOiBhIG1lbW9yeSBlcnJvciBkZXRlY3RvcqAmZ3Q7Jmd0OzwvYT4KKzwvdGQ+Cis8L3RyPgorPHRyPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0iY2VudGVyIj48YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPkhvbWU8L2E+PC90ZD48L3RyPgorPC90YWJsZT4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvZG9jcy9odG1sL21hbnVhbC1jb3JlLmh0bWwgYi9kb2NzL2h0bWwvbWFudWFsLWNvcmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ODBkMDM4Ci0tLSAvZGV2L251bGwKKysrIGIvZG9jcy9odG1sL21hbnVhbC1jb3JlLmh0bWwKQEAgLTAsMCArMSwyNjU4IEBACis8aHRtbD4KKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSI+Cis8dGl0bGU+Mi6gVXNpbmcgYW5kIHVuZGVyc3RhbmRpbmcgdGhlIFZhbGdyaW5kIGNvcmU8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0idmdfYmFzaWMuY3NzIj4KKzxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iRG9jQm9vayBYU0wgU3R5bGVzaGVldHMgVjEuNzguMSI+Cis8bGluayByZWw9ImhvbWUiIGhyZWY9ImluZGV4Lmh0bWwiIHRpdGxlPSJWYWxncmluZCBEb2N1bWVudGF0aW9uIj4KKzxsaW5rIHJlbD0idXAiIGhyZWY9Im1hbnVhbC5odG1sIiB0aXRsZT0iVmFsZ3JpbmQgVXNlciBNYW51YWwiPgorPGxpbmsgcmVsPSJwcmV2IiBocmVmPSJtYW51YWwtaW50cm8uaHRtbCIgdGl0bGU9IjEuoEludHJvZHVjdGlvbiI+Cis8bGluayByZWw9Im5leHQiIGhyZWY9Im1hbnVhbC1jb3JlLWFkdi5odG1sIiB0aXRsZT0iMy6gVXNpbmcgYW5kIHVuZGVyc3RhbmRpbmcgdGhlIFZhbGdyaW5kIGNvcmU6IEFkdmFuY2VkIFRvcGljcyI+Cis8L2hlYWQ+Cis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+Cis8ZGl2Pjx0YWJsZSBjbGFzcz0ibmF2IiB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjMiIGNlbGxwYWRkaW5nPSIzIiBib3JkZXI9IjAiIHN1bW1hcnk9Ik5hdmlnYXRpb24gaGVhZGVyIj48dHI+Cis8dGQgd2lkdGg9IjIycHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9InAiIGhyZWY9Im1hbnVhbC1pbnRyby5odG1sIj48aW1nIHNyYz0iaW1hZ2VzL3ByZXYucG5nIiB3aWR0aD0iMTgiIGhlaWdodD0iMjEiIGJvcmRlcj0iMCIgYWx0PSJQcmV2Ij48L2E+PC90ZD4KKzx0ZCB3aWR0aD0iMjVweCIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPjxhIGFjY2Vzc2tleT0idSIgaHJlZj0ibWFudWFsLmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvdXAucG5nIiB3aWR0aD0iMjEiIGhlaWdodD0iMTgiIGJvcmRlcj0iMCIgYWx0PSJVcCI+PC9hPjwvdGQ+Cis8dGQgd2lkdGg9IjMxcHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvaG9tZS5wbmciIHdpZHRoPSIyNyIgaGVpZ2h0PSIyMCIgYm9yZGVyPSIwIiBhbHQ9IlVwIj48L2E+PC90ZD4KKzx0aCBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+VmFsZ3JpbmQgVXNlciBNYW51YWw8L3RoPgorPHRkIHdpZHRoPSIyMnB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJuIiBocmVmPSJtYW51YWwtY29yZS1hZHYuaHRtbCI+PGltZyBzcmM9ImltYWdlcy9uZXh0LnBuZyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjIxIiBib3JkZXI9IjAiIGFsdD0iTmV4dCI+PC9hPjwvdGQ+Cis8L3RyPjwvdGFibGU+PC9kaXY+Cis8ZGl2IGNsYXNzPSJjaGFwdGVyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMSBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0ibWFudWFsLWNvcmUiPjwvYT4yLqBVc2luZyBhbmQgdW5kZXJzdGFuZGluZyB0aGUgVmFsZ3JpbmQgY29yZTwvaDE+PC9kaXY+PC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJ0b2MiPgorPHA+PGI+VGFibGUgb2YgQ29udGVudHM8L2I+PC9wPgorPGRsIGNsYXNzPSJ0b2MiPgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0ibWFudWFsLWNvcmUuaHRtbCNtYW51YWwtY29yZS53aGF0ZG9lcyI+Mi4xLiBXaGF0IFZhbGdyaW5kIGRvZXMgd2l0aCB5b3VyIHByb2dyYW08L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJtYW51YWwtY29yZS5odG1sI21hbnVhbC1jb3JlLnN0YXJ0ZWQiPjIuMi4gR2V0dGluZyBzdGFydGVkPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0ibWFudWFsLWNvcmUuaHRtbCNtYW51YWwtY29yZS5jb21tZW50Ij4yLjMuIFRoZSBDb21tZW50YXJ5PC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0ibWFudWFsLWNvcmUuaHRtbCNtYW51YWwtY29yZS5yZXBvcnQiPjIuNC4gUmVwb3J0aW5nIG9mIGVycm9yczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9Im1hbnVhbC1jb3JlLmh0bWwjbWFudWFsLWNvcmUuc3VwcHJlc3MiPjIuNS4gU3VwcHJlc3NpbmcgZXJyb3JzPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0ibWFudWFsLWNvcmUuaHRtbCNtYW51YWwtY29yZS5vcHRpb25zIj4yLjYuIENvcmUgQ29tbWFuZC1saW5lIE9wdGlvbnM8L2E+PC9zcGFuPjwvZHQ+Cis8ZGQ+PGRsPgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0ibWFudWFsLWNvcmUuaHRtbCNtYW51YWwtY29yZS50b29sb3B0cyI+Mi42LjEuIFRvb2wtc2VsZWN0aW9uIE9wdGlvbjwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9Im1hbnVhbC1jb3JlLmh0bWwjbWFudWFsLWNvcmUuYmFzaWNvcHRzIj4yLjYuMi4gQmFzaWMgT3B0aW9uczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9Im1hbnVhbC1jb3JlLmh0bWwjbWFudWFsLWNvcmUuZXJyb3B0cyI+Mi42LjMuIEVycm9yLXJlbGF0ZWQgT3B0aW9uczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9Im1hbnVhbC1jb3JlLmh0bWwjbWFudWFsLWNvcmUubWFsbG9jb3B0cyI+Mi42LjQuIG1hbGxvYy1yZWxhdGVkIE9wdGlvbnM8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJtYW51YWwtY29yZS5odG1sI21hbnVhbC1jb3JlLnJhcmVvcHRzIj4yLjYuNS4gVW5jb21tb24gT3B0aW9uczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9Im1hbnVhbC1jb3JlLmh0bWwjbWFudWFsLWNvcmUuZGVidWdvcHRzIj4yLjYuNi4gRGVidWdnaW5nIE9wdGlvbnM8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJtYW51YWwtY29yZS5odG1sI21hbnVhbC1jb3JlLmRlZm9wdHMiPjIuNi43LiBTZXR0aW5nIERlZmF1bHQgT3B0aW9uczwvYT48L3NwYW4+PC9kdD4KKzwvZGw+PC9kZD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9Im1hbnVhbC1jb3JlLmh0bWwjbWFudWFsLWNvcmUucHRocmVhZHMiPjIuNy4gU3VwcG9ydCBmb3IgVGhyZWFkczwvYT48L3NwYW4+PC9kdD4KKzxkZD48ZGw+PGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0ibWFudWFsLWNvcmUuaHRtbCNtYW51YWwtY29yZS5wdGhyZWFkc19wZXJmX3NjaGVkIj4yLjcuMS4gU2NoZWR1bGluZyBhbmQgTXVsdGktVGhyZWFkIFBlcmZvcm1hbmNlPC9hPjwvc3Bhbj48L2R0PjwvZGw+PC9kZD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9Im1hbnVhbC1jb3JlLmh0bWwjbWFudWFsLWNvcmUuc2lnbmFscyI+Mi44LiBIYW5kbGluZyBvZiBTaWduYWxzPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0ibWFudWFsLWNvcmUuaHRtbCNtYW51YWwtY29yZS5pbnN0YWxsIj4yLjkuIEJ1aWxkaW5nIGFuZCBJbnN0YWxsaW5nIFZhbGdyaW5kPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0ibWFudWFsLWNvcmUuaHRtbCNtYW51YWwtY29yZS5wcm9ibGVtcyI+Mi4xMC4gSWYgWW91IEhhdmUgUHJvYmxlbXM8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJtYW51YWwtY29yZS5odG1sI21hbnVhbC1jb3JlLmxpbWl0cyI+Mi4xMS4gTGltaXRhdGlvbnM8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJtYW51YWwtY29yZS5odG1sI21hbnVhbC1jb3JlLmV4YW1wbGUiPjIuMTIuIEFuIEV4YW1wbGUgUnVuPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0ibWFudWFsLWNvcmUuaHRtbCNtYW51YWwtY29yZS53YXJuaW5ncyI+Mi4xMy4gV2FybmluZyBNZXNzYWdlcyBZb3UgTWlnaHQgU2VlPC9hPjwvc3Bhbj48L2R0PgorPC9kbD4KKzwvZGl2PgorPHA+VGhpcyBjaGFwdGVyIGRlc2NyaWJlcyB0aGUgVmFsZ3JpbmQgY29yZSBzZXJ2aWNlcywgY29tbWFuZC1saW5lCitvcHRpb25zIGFuZCBiZWhhdmlvdXJzLiAgVGhhdCBtZWFucyBpdCBpcyByZWxldmFudCByZWdhcmRsZXNzIG9mIHdoYXQKK3BhcnRpY3VsYXIgdG9vbCB5b3UgYXJlIHVzaW5nLiAgVGhlIGluZm9ybWF0aW9uIHNob3VsZCBiZSBzdWZmaWNpZW50IGZvciB5b3UKK3RvIG1ha2UgZWZmZWN0aXZlIGRheS10by1kYXkgdXNlIG9mIFZhbGdyaW5kLiAgQWR2YW5jZWQgdG9waWNzIHJlbGF0ZWQgdG8KK3RoZSBWYWxncmluZCBjb3JlIGFyZSBkZXNjcmliZWQgaW4gPGEgY2xhc3M9InhyZWYiIGhyZWY9Im1hbnVhbC1jb3JlLWFkdi5odG1sIiB0aXRsZT0iMy6gVXNpbmcgYW5kIHVuZGVyc3RhbmRpbmcgdGhlIFZhbGdyaW5kIGNvcmU6IEFkdmFuY2VkIFRvcGljcyI+VmFsZ3JpbmQncyBjb3JlOiBhZHZhbmNlZCB0b3BpY3M8L2E+LgorPC9wPgorPHA+CitBIHBvaW50IG9mIHRlcm1pbm9sb2d5OiBtb3N0IHJlZmVyZW5jZXMgdG8gIlZhbGdyaW5kIiBpbiB0aGlzIGNoYXB0ZXIKK3JlZmVyIHRvIHRoZSBWYWxncmluZCBjb3JlIHNlcnZpY2VzLiAgPC9wPgorPGRpdiBjbGFzcz0ic2VjdDEiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj4KKzxhIG5hbWU9Im1hbnVhbC1jb3JlLndoYXRkb2VzIj48L2E+Mi4xLqBXaGF0IFZhbGdyaW5kIGRvZXMgd2l0aCB5b3VyIHByb2dyYW08L2gyPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+VmFsZ3JpbmQgaXMgZGVzaWduZWQgdG8gYmUgYXMgbm9uLWludHJ1c2l2ZSBhcyBwb3NzaWJsZS4gSXQgd29ya3MKK2RpcmVjdGx5IHdpdGggZXhpc3RpbmcgZXhlY3V0YWJsZXMuIFlvdSBkb24ndCBuZWVkIHRvIHJlY29tcGlsZSwgcmVsaW5rLAorb3Igb3RoZXJ3aXNlIG1vZGlmeSB0aGUgcHJvZ3JhbSB0byBiZSBjaGVja2VkLjwvcD4KKzxwPllvdSBpbnZva2UgVmFsZ3JpbmQgbGlrZSB0aGlzOjwvcD4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KK3ZhbGdyaW5kIFt2YWxncmluZC1vcHRpb25zXSB5b3VyLXByb2cgW3lvdXItcHJvZy1vcHRpb25zXTwvcHJlPgorPHA+VGhlIG1vc3QgaW1wb3J0YW50IG9wdGlvbiBpcyA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXRvb2w8L2NvZGU+IHdoaWNoIGRpY3RhdGVzCit3aGljaCBWYWxncmluZCB0b29sIHRvIHJ1bi4gIEZvciBleGFtcGxlLCBpZiB3YW50IHRvIHJ1biB0aGUgY29tbWFuZAorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5scyAtbDwvY29kZT4gdXNpbmcgdGhlIG1lbW9yeS1jaGVja2luZyB0b29sCitNZW1jaGVjaywgaXNzdWUgdGhpcyBjb21tYW5kOjwvcD4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KK3ZhbGdyaW5kIC0tdG9vbD1tZW1jaGVjayBscyAtbDwvcHJlPgorPHA+SG93ZXZlciwgTWVtY2hlY2sgaXMgdGhlIGRlZmF1bHQsIHNvIGlmIHlvdSB3YW50IHRvIHVzZSBpdCB5b3UgY2FuCitvbWl0IHRoZSA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXRvb2w8L2NvZGU+IG9wdGlvbi48L3A+Cis8cD5SZWdhcmRsZXNzIG9mIHdoaWNoIHRvb2wgaXMgaW4gdXNlLCBWYWxncmluZCB0YWtlcyBjb250cm9sIG9mIHlvdXIKK3Byb2dyYW0gYmVmb3JlIGl0IHN0YXJ0cy4gIERlYnVnZ2luZyBpbmZvcm1hdGlvbiBpcyByZWFkIGZyb20gdGhlCitleGVjdXRhYmxlIGFuZCBhc3NvY2lhdGVkIGxpYnJhcmllcywgc28gdGhhdCBlcnJvciBtZXNzYWdlcyBhbmQgb3RoZXIKK291dHB1dHMgY2FuIGJlIHBocmFzZWQgaW4gdGVybXMgb2Ygc291cmNlIGNvZGUgbG9jYXRpb25zLCB3aGVuCithcHByb3ByaWF0ZS48L3A+Cis8cD5Zb3VyIHByb2dyYW0gaXMgdGhlbiBydW4gb24gYSBzeW50aGV0aWMgQ1BVIHByb3ZpZGVkIGJ5IHRoZQorVmFsZ3JpbmQgY29yZS4gIEFzIG5ldyBjb2RlIGlzIGV4ZWN1dGVkIGZvciB0aGUgZmlyc3QgdGltZSwgdGhlIGNvcmUKK2hhbmRzIHRoZSBjb2RlIHRvIHRoZSBzZWxlY3RlZCB0b29sLiAgVGhlIHRvb2wgYWRkcyBpdHMgb3duCitpbnN0cnVtZW50YXRpb24gY29kZSB0byB0aGlzIGFuZCBoYW5kcyB0aGUgcmVzdWx0IGJhY2sgdG8gdGhlIGNvcmUsCit3aGljaCBjb29yZGluYXRlcyB0aGUgY29udGludWVkIGV4ZWN1dGlvbiBvZiB0aGlzIGluc3RydW1lbnRlZAorY29kZS48L3A+Cis8cD5UaGUgYW1vdW50IG9mIGluc3RydW1lbnRhdGlvbiBjb2RlIGFkZGVkIHZhcmllcyB3aWRlbHkgYmV0d2VlbgordG9vbHMuICBBdCBvbmUgZW5kIG9mIHRoZSBzY2FsZSwgTWVtY2hlY2sgYWRkcyBjb2RlIHRvIGNoZWNrIGV2ZXJ5CittZW1vcnkgYWNjZXNzIGFuZCBldmVyeSB2YWx1ZSBjb21wdXRlZCwKK21ha2luZyBpdCBydW4gMTAtNTAgdGltZXMgc2xvd2VyIHRoYW4gbmF0aXZlbHkuCitBdCB0aGUgb3RoZXIgZW5kIG9mIHRoZSBzcGVjdHJ1bSwgdGhlIG1pbmltYWwgdG9vbCwgY2FsbGVkIE51bGdyaW5kLAorYWRkcyBubyBpbnN0cnVtZW50YXRpb24gYXQgYWxsIGFuZCBjYXVzZXMgaW4gdG90YWwgIm9ubHkiIGFib3V0IGEgNCB0aW1lcworc2xvd2Rvd24uPC9wPgorPHA+VmFsZ3JpbmQgc2ltdWxhdGVzIGV2ZXJ5IHNpbmdsZSBpbnN0cnVjdGlvbiB5b3VyIHByb2dyYW0gZXhlY3V0ZXMuCitCZWNhdXNlIG9mIHRoaXMsIHRoZSBhY3RpdmUgdG9vbCBjaGVja3MsIG9yIHByb2ZpbGVzLCBub3Qgb25seSB0aGUgY29kZQoraW4geW91ciBhcHBsaWNhdGlvbiBidXQgYWxzbyBpbiBhbGwgc3VwcG9ydGluZyBkeW5hbWljYWxseS1saW5rZWQgbGlicmFyaWVzLAoraW5jbHVkaW5nIHRoZSBDIGxpYnJhcnksIGdyYXBoaWNhbCBsaWJyYXJpZXMsIGFuZCBzbyBvbi48L3A+Cis8cD5JZiB5b3UncmUgdXNpbmcgYW4gZXJyb3ItZGV0ZWN0aW9uIHRvb2wsIFZhbGdyaW5kIG1heQorZGV0ZWN0IGVycm9ycyBpbiBzeXN0ZW0gbGlicmFyaWVzLCBmb3IgZXhhbXBsZSB0aGUgR05VIEMgb3IgWDExCitsaWJyYXJpZXMsIHdoaWNoIHlvdSBoYXZlIHRvIHVzZS4gIFlvdSBtaWdodCBub3QgYmUgaW50ZXJlc3RlZCBpbiB0aGVzZQorZXJyb3JzLCBzaW5jZSB5b3UgcHJvYmFibHkgaGF2ZSBubyBjb250cm9sIG92ZXIgdGhhdCBjb2RlLiAgVGhlcmVmb3JlLAorVmFsZ3JpbmQgYWxsb3dzIHlvdSB0byBzZWxlY3RpdmVseSBzdXBwcmVzcyBlcnJvcnMsIGJ5IHJlY29yZGluZyB0aGVtIGluCithIHN1cHByZXNzaW9ucyBmaWxlIHdoaWNoIGlzIHJlYWQgd2hlbiBWYWxncmluZCBzdGFydHMgdXAuICBUaGUgYnVpbGQKK21lY2hhbmlzbSBzZWxlY3RzIGRlZmF1bHQgc3VwcHJlc3Npb25zIHdoaWNoIGdpdmUgcmVhc29uYWJsZQorYmVoYXZpb3VyIGZvciB0aGUgT1MgYW5kIGxpYnJhcmllcyBkZXRlY3RlZCBvbiB5b3VyIG1hY2hpbmUuCitUbyBtYWtlIGl0IGVhc2llciB0byB3cml0ZSBzdXBwcmVzc2lvbnMsIHlvdSBjYW4gdXNlIHRoZQorPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1nZW4tc3VwcHJlc3Npb25zPXllczwvY29kZT4gb3B0aW9uLiAgVGhpcyB0ZWxscyBWYWxncmluZCB0bworcHJpbnQgb3V0IGEgc3VwcHJlc3Npb24gZm9yIGVhY2ggcmVwb3J0ZWQgZXJyb3IsIHdoaWNoIHlvdSBjYW4gdGhlbgorY29weSBpbnRvIGEgc3VwcHJlc3Npb25zIGZpbGUuPC9wPgorPHA+RGlmZmVyZW50IGVycm9yLWNoZWNraW5nIHRvb2xzIHJlcG9ydCBkaWZmZXJlbnQga2luZHMgb2YgZXJyb3JzLgorVGhlIHN1cHByZXNzaW9uIG1lY2hhbmlzbSB0aGVyZWZvcmUgYWxsb3dzIHlvdSB0byBzYXkgd2hpY2ggdG9vbCBvcgordG9vbChzKSBlYWNoIHN1cHByZXNzaW9uIGFwcGxpZXMgdG8uPC9wPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MSI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPgorPGEgbmFtZT0ibWFudWFsLWNvcmUuc3RhcnRlZCI+PC9hPjIuMi6gR2V0dGluZyBzdGFydGVkPC9oMj48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPkZpcnN0IG9mZiwgY29uc2lkZXIgd2hldGhlciBpdCBtaWdodCBiZSBiZW5lZmljaWFsIHRvIHJlY29tcGlsZQoreW91ciBhcHBsaWNhdGlvbiBhbmQgc3VwcG9ydGluZyBsaWJyYXJpZXMgd2l0aCBkZWJ1Z2dpbmcgaW5mbyBlbmFibGVkCisodGhlIDxjb2RlIGNsYXNzPSJvcHRpb24iPi1nPC9jb2RlPiBvcHRpb24pLiAgV2l0aG91dCBkZWJ1Z2dpbmcgaW5mbywgdGhlIGJlc3QKK1ZhbGdyaW5kIHRvb2xzIHdpbGwgYmUgYWJsZSB0byBkbyBpcyBndWVzcyB3aGljaCBmdW5jdGlvbiBhIHBhcnRpY3VsYXIKK3BpZWNlIG9mIGNvZGUgYmVsb25ncyB0bywgd2hpY2ggbWFrZXMgYm90aCBlcnJvciBtZXNzYWdlcyBhbmQgcHJvZmlsaW5nCitvdXRwdXQgbmVhcmx5IHVzZWxlc3MuICBXaXRoIDxjb2RlIGNsYXNzPSJvcHRpb24iPi1nPC9jb2RlPiwgeW91J2xsIGdldAorbWVzc2FnZXMgd2hpY2ggcG9pbnQgZGlyZWN0bHkgdG8gdGhlIHJlbGV2YW50IHNvdXJjZSBjb2RlIGxpbmVzLjwvcD4KKzxwPkFub3RoZXIgb3B0aW9uIHlvdSBtaWdodCBsaWtlIHRvIGNvbnNpZGVyLCBpZiB5b3UgYXJlIHdvcmtpbmcgd2l0aAorQysrLCBpcyA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tZm5vLWlubGluZTwvY29kZT4uICBUaGF0IG1ha2VzIGl0IGVhc2llciB0byBzZWUgdGhlCitmdW5jdGlvbi1jYWxsIGNoYWluLCB3aGljaCBjYW4gaGVscCByZWR1Y2UgY29uZnVzaW9uIHdoZW4gbmF2aWdhdGluZworYXJvdW5kIGxhcmdlIEMrKyBhcHBzLiAgRm9yIGV4YW1wbGUsIGRlYnVnZ2luZworT3Blbk9mZmljZS5vcmcgd2l0aCBNZW1jaGVjayBpcyBhIGJpdCBlYXNpZXIgd2hlbiB1c2luZyB0aGlzIG9wdGlvbi4gIFlvdQorZG9uJ3QgaGF2ZSB0byBkbyB0aGlzLCBidXQgZG9pbmcgc28gaGVscHMgVmFsZ3JpbmQgcHJvZHVjZSBtb3JlIGFjY3VyYXRlCithbmQgbGVzcyBjb25mdXNpbmcgZXJyb3IgcmVwb3J0cy4gIENoYW5jZXMgYXJlIHlvdSdyZSBzZXQgdXAgbGlrZSB0aGlzCithbHJlYWR5LCBpZiB5b3UgaW50ZW5kZWQgdG8gZGVidWcgeW91ciBwcm9ncmFtIHdpdGggR05VIEdEQiwgb3Igc29tZQorb3RoZXIgZGVidWdnZXIuIEFsdGVybmF0aXZlbHksIHRoZSBWYWxncmluZCBvcHRpb24gCis8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXJlYWQtaW5saW5lLWluZm89eWVzPC9jb2RlPiBpbnN0cnVjdHMgVmFsZ3JpbmQgdG8gcmVhZAordGhlIGRlYnVnIGluZm9ybWF0aW9uIGRlc2NyaWJpbmcgaW5saW5pbmcgaW5mb3JtYXRpb24uIFdpdGggdGhpcywKK2Z1bmN0aW9uIGNhbGwgY2hhaW4gd2lsbCBiZSBwcm9wZXJseSBzaG93biwgZXZlbiB3aGVuIHlvdXIgYXBwbGljYXRpb24KK2lzIGNvbXBpbGVkIHdpdGggaW5saW5pbmcuIDwvcD4KKzxwPklmIHlvdSBhcmUgcGxhbm5pbmcgdG8gdXNlIE1lbWNoZWNrOiBPbiByYXJlCitvY2Nhc2lvbnMsIGNvbXBpbGVyIG9wdGltaXNhdGlvbnMgKGF0IDxjb2RlIGNsYXNzPSJvcHRpb24iPi1PMjwvY29kZT4KK2FuZCBhYm92ZSwgYW5kIHNvbWV0aW1lcyA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tTzE8L2NvZGU+KSBoYXZlIGJlZW4KK29ic2VydmVkIHRvIGdlbmVyYXRlIGNvZGUgd2hpY2ggZm9vbHMgTWVtY2hlY2sgaW50byB3cm9uZ2x5IHJlcG9ydGluZwordW5pbml0aWFsaXNlZCB2YWx1ZSBlcnJvcnMsIG9yIG1pc3NpbmcgdW5pbml0aWFsaXNlZCB2YWx1ZSBlcnJvcnMuICBXZSBoYXZlCitsb29rZWQgaW4gZGV0YWlsIGludG8gZml4aW5nIHRoaXMsIGFuZCB1bmZvcnR1bmF0ZWx5IHRoZSByZXN1bHQgaXMgdGhhdAorZG9pbmcgc28gd291bGQgZ2l2ZSBhIGZ1cnRoZXIgc2lnbmlmaWNhbnQgc2xvd2Rvd24gaW4gd2hhdCBpcyBhbHJlYWR5IGEgc2xvdwordG9vbC4gIFNvIHRoZSBiZXN0IHNvbHV0aW9uIGlzIHRvIHR1cm4gb2ZmIG9wdGltaXNhdGlvbiBhbHRvZ2V0aGVyLiAgU2luY2UKK3RoaXMgb2Z0ZW4gbWFrZXMgdGhpbmdzIHVubWFuYWdlYWJseSBzbG93LCBhIHJlYXNvbmFibGUgY29tcHJvbWlzZSBpcyB0byB1c2UKKzxjb2RlIGNsYXNzPSJvcHRpb24iPi1PPC9jb2RlPi4gIFRoaXMgZ2V0cyB5b3UgdGhlIG1ham9yaXR5IG9mIHRoZQorYmVuZWZpdHMgb2YgaGlnaGVyIG9wdGltaXNhdGlvbiBsZXZlbHMgd2hpbHN0IGtlZXBpbmcgcmVsYXRpdmVseSBzbWFsbCB0aGUKK2NoYW5jZXMgb2YgZmFsc2UgcG9zaXRpdmVzIG9yIGZhbHNlIG5lZ2F0aXZlcyBmcm9tIE1lbWNoZWNrLiAgQWxzbywgeW91CitzaG91bGQgY29tcGlsZSB5b3VyIGNvZGUgd2l0aCA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tV2FsbDwvY29kZT4gYmVjYXVzZQoraXQgY2FuIGlkZW50aWZ5IHNvbWUgb3IgYWxsIG9mIHRoZSBwcm9ibGVtcyB0aGF0IFZhbGdyaW5kIGNhbiBtaXNzIGF0IHRoZQoraGlnaGVyIG9wdGltaXNhdGlvbiBsZXZlbHMuICAoVXNpbmcgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LVdhbGw8L2NvZGU+CitpcyBhbHNvIGEgZ29vZCBpZGVhIGluIGdlbmVyYWwuKSAgQWxsIG90aGVyIHRvb2xzIChhcyBmYXIgYXMgd2Uga25vdykgYXJlCit1bmFmZmVjdGVkIGJ5IG9wdGltaXNhdGlvbiBsZXZlbCwgYW5kIGZvciBwcm9maWxpbmcgdG9vbHMgbGlrZSBDYWNoZWdyaW5kIGl0CitpcyBiZXR0ZXIgdG8gY29tcGlsZSB5b3VyIHByb2dyYW0gYXQgaXRzIG5vcm1hbCBvcHRpbWlzYXRpb24gbGV2ZWwuPC9wPgorPHA+VmFsZ3JpbmQgdW5kZXJzdGFuZHMgdGhlIERXQVJGMi8zLzQgZm9ybWF0cyB1c2VkIGJ5IEdDQyAzLjEgYW5kCitsYXRlci4gIFRoZSByZWFkZXIgZm9yICJzdGFicyIgZGVidWdnaW5nIGZvcm1hdCAodXNlZCBieSBHQ0MgdmVyc2lvbnMKK3ByaW9yIHRvIDMuMSkgaGFzIGJlZW4gZGlzYWJsZWQgaW4gVmFsZ3JpbmQgMy45LjAuPC9wPgorPHA+V2hlbiB5b3UncmUgcmVhZHkgdG8gcm9sbCwgcnVuIFZhbGdyaW5kIGFzIGRlc2NyaWJlZCBhYm92ZS4KK05vdGUgdGhhdCB5b3Ugc2hvdWxkIHJ1biB0aGUgcmVhbAorKG1hY2hpbmUtY29kZSkgZXhlY3V0YWJsZSBoZXJlLiAgSWYgeW91ciBhcHBsaWNhdGlvbiBpcyBzdGFydGVkIGJ5LCBmb3IKK2V4YW1wbGUsIGEgc2hlbGwgb3IgUGVybCBzY3JpcHQsIHlvdSdsbCBuZWVkIHRvIG1vZGlmeSBpdCB0byBpbnZva2UKK1ZhbGdyaW5kIG9uIHRoZSByZWFsIGV4ZWN1dGFibGVzLiAgUnVubmluZyBzdWNoIHNjcmlwdHMgZGlyZWN0bHkgdW5kZXIKK1ZhbGdyaW5kIHdpbGwgcmVzdWx0IGluIHlvdSBnZXR0aW5nIGVycm9yIHJlcG9ydHMgcGVydGFpbmluZyB0bworPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj4vYmluL3NoPC9jb2RlPiwKKzxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+L3Vzci9iaW4vcGVybDwvY29kZT4sIG9yIHdoYXRldmVyIGludGVycHJldGVyCit5b3UncmUgdXNpbmcuICBUaGlzIG1heSBub3QgYmUgd2hhdCB5b3Ugd2FudCBhbmQgY2FuIGJlIGNvbmZ1c2luZy4gIFlvdQorY2FuIGZvcmNlIHRoZSBpc3N1ZSBieSBnaXZpbmcgdGhlIG9wdGlvbgorPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS10cmFjZS1jaGlsZHJlbj15ZXM8L2NvZGU+LCBidXQgY29uZnVzaW9uIGlzIHN0aWxsCitsaWtlbHkuPC9wPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MSI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPgorPGEgbmFtZT0ibWFudWFsLWNvcmUuY29tbWVudCI+PC9hPjIuMy6gVGhlIENvbW1lbnRhcnk8L2gyPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+VmFsZ3JpbmQgdG9vbHMgd3JpdGUgYSBjb21tZW50YXJ5LCBhIHN0cmVhbSBvZiB0ZXh0LCBkZXRhaWxpbmcKK2Vycm9yIHJlcG9ydHMgYW5kIG90aGVyIHNpZ25pZmljYW50IGV2ZW50cy4gIEFsbCBsaW5lcyBpbiB0aGUgY29tbWVudGFyeQoraGF2ZSBmb2xsb3dpbmcgZm9ybToKKworPC9wPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPgorPT0xMjM0NT09IHNvbWUtbWVzc2FnZS1mcm9tLVZhbGdyaW5kPC9wcmU+Cis8cD4KKzwvcD4KKzxwPlRoZSA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPjEyMzQ1PC9jb2RlPiBpcyB0aGUgcHJvY2VzcyBJRC4KK1RoaXMgc2NoZW1lIG1ha2VzIGl0IGVhc3kgdG8gZGlzdGluZ3Vpc2ggcHJvZ3JhbSBvdXRwdXQgZnJvbSBWYWxncmluZAorY29tbWVudGFyeSwgYW5kIGFsc28gZWFzeSB0byBkaWZmZXJlbnRpYXRlIGNvbW1lbnRhcmllcyBmcm9tIGRpZmZlcmVudAorcHJvY2Vzc2VzIHdoaWNoIGhhdmUgYmVjb21lIG1lcmdlZCB0b2dldGhlciwgZm9yIHdoYXRldmVyIHJlYXNvbi48L3A+Cis8cD5CeSBkZWZhdWx0LCBWYWxncmluZCB0b29scyB3cml0ZSBvbmx5IGVzc2VudGlhbCBtZXNzYWdlcyB0byB0aGUKK2NvbW1lbnRhcnksIHNvIGFzIHRvIGF2b2lkIGZsb29kaW5nIHlvdSB3aXRoIGluZm9ybWF0aW9uIG9mIHNlY29uZGFyeQoraW1wb3J0YW5jZS4gIElmIHlvdSB3YW50IG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgd2hhdCBpcyBoYXBwZW5pbmcsCityZS1ydW4sIHBhc3NpbmcgdGhlIDxjb2RlIGNsYXNzPSJvcHRpb24iPi12PC9jb2RlPiBvcHRpb24gdG8gVmFsZ3JpbmQuICBBIHNlY29uZAorPGNvZGUgY2xhc3M9Im9wdGlvbiI+LXY8L2NvZGU+IGdpdmVzIHlldCBtb3JlIGRldGFpbC4KKzwvcD4KKzxwPllvdSBjYW4gZGlyZWN0IHRoZSBjb21tZW50YXJ5IHRvIHRocmVlIGRpZmZlcmVudCBwbGFjZXM6PC9wPgorPGRpdiBjbGFzcz0ib3JkZXJlZGxpc3QiPjxvbCBjbGFzcz0ib3JkZXJlZGxpc3QiIHR5cGU9IjEiPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+Cis8cD48YSBuYW1lPSJtYW51YWwtY29yZS5vdXQyZmQiPjwvYT5UaGUgZGVmYXVsdDogc2VuZCBpdCB0byBhIGZpbGUgZGVzY3JpcHRvciwgd2hpY2ggaXMgYnkgZGVmYXVsdAorICAgIDIgKHN0ZGVycikuICBTbywgaWYgeW91IGdpdmUgdGhlIGNvcmUgbm8gb3B0aW9ucywgaXQgd2lsbCB3cml0ZQorICAgIGNvbW1lbnRhcnkgdG8gdGhlIHN0YW5kYXJkIGVycm9yIHN0cmVhbS4gIElmIHlvdSB3YW50IHRvIHNlbmQgaXQgdG8KKyAgICBzb21lIG90aGVyIGZpbGUgZGVzY3JpcHRvciwgZm9yIGV4YW1wbGUgbnVtYmVyIDksIHlvdSBjYW4gc3BlY2lmeQorICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tbG9nLWZkPTk8L2NvZGU+LjwvcD4KKzxwPlRoaXMgaXMgdGhlIHNpbXBsZXN0IGFuZCBtb3N0IGNvbW1vbiBhcnJhbmdlbWVudCwgYnV0IGNhbgorICAgIGNhdXNlIHByb2JsZW1zIHdoZW4gVmFsZ3JpbmRpbmcgZW50aXJlIHRyZWVzIG9mIHByb2Nlc3NlcyB3aGljaAorICAgIGV4cGVjdCBzcGVjaWZpYyBmaWxlIGRlc2NyaXB0b3JzLCBwYXJ0aWN1bGFybHkgc3RkaW4vc3Rkb3V0L3N0ZGVyciwKKyAgICB0byBiZSBhdmFpbGFibGUgZm9yIHRoZWlyIG93biB1c2UuPC9wPgorPC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPjxhIG5hbWU9Im1hbnVhbC1jb3JlLm91dDJmaWxlIj48L2E+QSBsZXNzIGludHJ1c2l2ZQorICAgIG9wdGlvbiBpcyB0byB3cml0ZSB0aGUgY29tbWVudGFyeSB0byBhIGZpbGUsIHdoaWNoIHlvdSBzcGVjaWZ5IGJ5CisgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1sb2ctZmlsZT1maWxlbmFtZTwvY29kZT4uICBUaGVyZSBhcmUgc3BlY2lhbCBmb3JtYXQKKyAgICBzcGVjaWZpZXJzIHRoYXQgY2FuIGJlIHVzZWQgdG8gdXNlIGEgcHJvY2VzcyBJRCBvciBhbiBlbnZpcm9ubWVudAorICAgIHZhcmlhYmxlIG5hbWUgaW4gdGhlIGxvZyBmaWxlIG5hbWUuICBUaGVzZSBhcmUgdXNlZnVsL25lY2Vzc2FyeSBpZiB5b3VyCisgICAgcHJvZ3JhbSBpbnZva2VzIG11bHRpcGxlIHByb2Nlc3NlcyAoZXNwZWNpYWxseSBmb3IgTVBJIHByb2dyYW1zKS4KKyAgICBTZWUgdGhlIDxhIGNsYXNzPSJsaW5rIiBocmVmPSJtYW51YWwtY29yZS5odG1sI21hbnVhbC1jb3JlLmJhc2ljb3B0cyIgdGl0bGU9IjIuNi4yLqBCYXNpYyBPcHRpb25zIj5iYXNpYyBvcHRpb25zIHNlY3Rpb248L2E+CisgICAgZm9yIG1vcmUgZGV0YWlscy48L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPgorPHA+PGEgbmFtZT0ibWFudWFsLWNvcmUub3V0MnNvY2tldCI+PC9hPlRoZQorICAgIGxlYXN0IGludHJ1c2l2ZSBvcHRpb24gaXMgdG8gc2VuZCB0aGUgY29tbWVudGFyeSB0byBhIG5ldHdvcmsKKyAgICBzb2NrZXQuICBUaGUgc29ja2V0IGlzIHNwZWNpZmllZCBhcyBhbiBJUCBhZGRyZXNzIGFuZCBwb3J0IG51bWJlcgorICAgIHBhaXIsIGxpa2UgdGhpczogPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1sb2ctc29ja2V0PTE5Mi4xNjguMC4xOjEyMzQ1PC9jb2RlPiBpZgorICAgIHlvdSB3YW50IHRvIHNlbmQgdGhlIG91dHB1dCB0byBob3N0IElQIDE5Mi4xNjguMC4xIHBvcnQgMTIzNDUKKyAgICAobm90ZTogd2UKKyAgICBoYXZlIG5vIGlkZWEgaWYgMTIzNDUgaXMgYSBwb3J0IG9mIHByZS1leGlzdGluZyBzaWduaWZpY2FuY2UpLiAgWW91CisgICAgY2FuIGFsc28gb21pdCB0aGUgcG9ydCBudW1iZXI6CisgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1sb2ctc29ja2V0PTE5Mi4xNjguMC4xPC9jb2RlPiwgaW4gd2hpY2ggY2FzZSBhIGRlZmF1bHQKKyAgICBwb3J0IG9mIDE1MDAgaXMgdXNlZC4gIFRoaXMgZGVmYXVsdCBpcyBkZWZpbmVkIGJ5IHRoZSBjb25zdGFudAorICAgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+VkdfQ0xPX0RFRkFVTFRfTE9HUE9SVDwvY29kZT4gaW4gdGhlCisgICAgc291cmNlcy48L3A+Cis8cD5Ob3RlLCB1bmZvcnR1bmF0ZWx5LCB0aGF0IHlvdSBoYXZlIHRvIHVzZSBhbiBJUCBhZGRyZXNzIGhlcmUsCisgICAgcmF0aGVyIHRoYW4gYSBob3N0bmFtZS48L3A+Cis8cD5Xcml0aW5nIHRvIGEgbmV0d29yayBzb2NrZXQgaXMgcG9pbnRsZXNzIGlmIHlvdSBkb24ndAorICAgIGhhdmUgc29tZXRoaW5nIGxpc3RlbmluZyBhdCB0aGUgb3RoZXIgZW5kLiAgV2UgcHJvdmlkZSBhIHNpbXBsZQorICAgIGxpc3RlbmVyIHByb2dyYW0sCisgICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij52YWxncmluZC1saXN0ZW5lcjwvY29kZT4sIHdoaWNoIGFjY2VwdHMKKyAgICBjb25uZWN0aW9ucyBvbiB0aGUgc3BlY2lmaWVkIHBvcnQgYW5kIGNvcGllcyB3aGF0ZXZlciBpdCBpcyBzZW50IHRvCisgICAgc3Rkb3V0LiAgUHJvYmFibHkgc29tZW9uZSB3aWxsIHRlbGwgdXMgdGhpcyBpcyBhIGhvcnJpYmxlIHNlY3VyaXR5CisgICAgcmlzay4gIEl0IHNlZW1zIGxpa2VseSB0aGF0IHBlb3BsZSB3aWxsIHdyaXRlIG1vcmUgc29waGlzdGljYXRlZAorICAgIGxpc3RlbmVycyBpbiB0aGUgZnVsbG5lc3Mgb2YgdGltZS48L3A+Cis8cD48Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPnZhbGdyaW5kLWxpc3RlbmVyPC9jb2RlPiBjYW4gYWNjZXB0CisgICAgc2ltdWx0YW5lb3VzIGNvbm5lY3Rpb25zIGZyb20gdXAgdG8gNTAgVmFsZ3JpbmRlZCBwcm9jZXNzZXMuICBJbiBmcm9udAorICAgIG9mIGVhY2ggbGluZSBvZiBvdXRwdXQgaXQgcHJpbnRzIHRoZSBjdXJyZW50IG51bWJlciBvZiBhY3RpdmUKKyAgICBjb25uZWN0aW9ucyBpbiByb3VuZCBicmFja2V0cy48L3A+Cis8cD48Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPnZhbGdyaW5kLWxpc3RlbmVyPC9jb2RlPiBhY2NlcHRzIHRocmVlCisgICAgY29tbWFuZC1saW5lIG9wdGlvbnM6PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij4KKzxhIG5hbWU9Imxpc3RlbmVyLm9wdHMubGlzdCI+PC9hPjxkbCBjbGFzcz0idmFyaWFibGVsaXN0Ij4KKzxkdD48c3BhbiBjbGFzcz0idGVybSI+PGNvZGUgY2xhc3M9Im9wdGlvbiI+LWUgLS1leGl0LWF0LXplcm88L2NvZGU+PC9zcGFuPjwvZHQ+Cis8ZGQ+PHA+V2hlbiB0aGUgbnVtYmVyIG9mIGNvbm5lY3RlZCBwcm9jZXNzZXMgZmFsbHMgYmFjayB0byB6ZXJvLAorICAgICAgICAgICBleGl0LiAgV2l0aG91dCB0aGlzLCBpdCB3aWxsIHJ1biBmb3JldmVyLCB0aGF0IGlzLCB1bnRpbCB5b3UKKyAgICAgICAgICAgc2VuZCBpdCBDb250cm9sLUMuPC9wPjwvZGQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPjxjb2RlIGNsYXNzPSJvcHRpb24iPi0tbWF4LWNvbm5lY3Q9SU5URUdFUjwvY29kZT48L3NwYW4+PC9kdD4KKzxkZD48cD5CeSBkZWZhdWx0LCB0aGUgbGlzdGVuZXIgY2FuIGNvbm5lY3QgdG8gdXAgdG8gNTAgcHJvY2Vzc2VzLgorICAgICAgICAgICAgIE9jY2FzaW9uYWxseSwgdGhhdCBudW1iZXIgaXMgdG9vIHNtYWxsLiBVc2UgdGhpcyBvcHRpb24gdG8KKyAgICAgICAgICAgICBwcm92aWRlIGEgZGlmZmVyZW50IGxpbWl0LiBFLmcuCisgICAgICAgICAgICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij4tLW1heC1jb25uZWN0PTEwMDwvY29kZT4uCisgICAgICAgICAgIDwvcD48L2RkPgorPGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj48Y29kZSBjbGFzcz0ib3B0aW9uIj5wb3J0bnVtYmVyPC9jb2RlPjwvc3Bhbj48L2R0PgorPGRkPjxwPkNoYW5nZXMgdGhlIHBvcnQgaXQgbGlzdGVucyBvbiBmcm9tIHRoZSBkZWZhdWx0ICgxNTAwKS4KKyAgICAgICAgICBUaGUgc3BlY2lmaWVkIHBvcnQgbXVzdCBiZSBpbiB0aGUgcmFuZ2UgMTAyNCB0byA2NTUzNS4KKyAgICAgICAgICBUaGUgc2FtZSByZXN0cmljdGlvbiBhcHBsaWVzIHRvIHBvcnQgbnVtYmVycyBzcGVjaWZpZWQgYnkgYQorICAgICAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tbG9nLXNvY2tldDwvY29kZT4gdG8gVmFsZ3JpbmQgaXRzZWxmLjwvcD48L2RkPgorPC9kbD4KKzwvZGl2PgorPHA+SWYgYSBWYWxncmluZGVkIHByb2Nlc3MgZmFpbHMgdG8gY29ubmVjdCB0byBhIGxpc3RlbmVyLCBmb3IKKyAgICB3aGF0ZXZlciByZWFzb24gKHRoZSBsaXN0ZW5lciBpc24ndCBydW5uaW5nLCBpbnZhbGlkIG9yIHVucmVhY2hhYmxlCisgICAgaG9zdCBvciBwb3J0LCBldGMpLCBWYWxncmluZCBzd2l0Y2hlcyBiYWNrIHRvIHdyaXRpbmcgdGhlIGNvbW1lbnRhcnkKKyAgICB0byBzdGRlcnIuICBUaGUgc2FtZSBnb2VzIGZvciBhbnkgcHJvY2VzcyB3aGljaCBsb3NlcyBhbiBlc3RhYmxpc2hlZAorICAgIGNvbm5lY3Rpb24gdG8gYSBsaXN0ZW5lci4gIEluIG90aGVyIHdvcmRzLCBraWxsaW5nIHRoZSBsaXN0ZW5lcgorICAgIGRvZXNuJ3Qga2lsbCB0aGUgcHJvY2Vzc2VzIHNlbmRpbmcgZGF0YSB0byBpdC48L3A+Cis8L2xpPgorPC9vbD48L2Rpdj4KKzxwPkhlcmUgaXMgYW4gaW1wb3J0YW50IHBvaW50IGFib3V0IHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiB0aGUKK2NvbW1lbnRhcnkgYW5kIHByb2ZpbGluZyBvdXRwdXQgZnJvbSB0b29scy4gIFRoZSBjb21tZW50YXJ5IGNvbnRhaW5zIGEKK21peCBvZiBtZXNzYWdlcyBmcm9tIHRoZSBWYWxncmluZCBjb3JlIGFuZCB0aGUgc2VsZWN0ZWQgdG9vbC4gIElmIHRoZQordG9vbCByZXBvcnRzIGVycm9ycywgaXQgd2lsbCByZXBvcnQgdGhlbSB0byB0aGUgY29tbWVudGFyeS4gIEhvd2V2ZXIsIGlmCit0aGUgdG9vbCBkb2VzIHByb2ZpbGluZywgdGhlIHByb2ZpbGUgZGF0YSB3aWxsIGJlIHdyaXR0ZW4gdG8gYSBmaWxlIG9mCitzb21lIGtpbmQsIGRlcGVuZGluZyBvbiB0aGUgdG9vbCwgYW5kIGluZGVwZW5kZW50IG9mIHdoYXQKKzxjb2RlIGNsYXNzPSJvcHRpb24iPi0tbG9nLSo8L2NvZGU+IG9wdGlvbnMgYXJlIGluIGZvcmNlLiAgVGhlIGNvbW1lbnRhcnkgaXMKK2ludGVuZGVkIHRvIGJlIGEgbG93LWJhbmR3aWR0aCwgaHVtYW4tcmVhZGFibGUgY2hhbm5lbC4gIFByb2ZpbGluZyBkYXRhLAorb24gdGhlIG90aGVyIGhhbmQsIGlzIHVzdWFsbHkgdm9sdW1pbm91cyBhbmQgbm90IG1lYW5pbmdmdWwgd2l0aG91dAorZnVydGhlciBwcm9jZXNzaW5nLCB3aGljaCBpcyB3aHkgd2UgaGF2ZSBjaG9zZW4gdGhpcyBhcnJhbmdlbWVudC48L3A+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QxIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+Cis8YSBuYW1lPSJtYW51YWwtY29yZS5yZXBvcnQiPjwvYT4yLjQuoFJlcG9ydGluZyBvZiBlcnJvcnM8L2gyPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+V2hlbiBhbiBlcnJvci1jaGVja2luZyB0b29sCitkZXRlY3RzIHNvbWV0aGluZyBiYWQgaGFwcGVuaW5nIGluIHRoZSBwcm9ncmFtLCBhbiBlcnJvcgorbWVzc2FnZSBpcyB3cml0dGVuIHRvIHRoZSBjb21tZW50YXJ5LiAgSGVyZSdzIGFuIGV4YW1wbGUgZnJvbSBNZW1jaGVjazo8L3A+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Cis9PTI1ODMyPT0gSW52YWxpZCByZWFkIG9mIHNpemUgNAorPT0yNTgzMj09ICAgIGF0IDB4ODA0ODcyNDogQmFuZE1hdHJpeDo6UmVTaXplKGludCwgaW50LCBpbnQpIChib2dvbi5jcHA6NDUpCis9PTI1ODMyPT0gICAgYnkgMHg4MDQ4N0FGOiBtYWluIChib2dvbi5jcHA6NjYpCis9PTI1ODMyPT0gIEFkZHJlc3MgMHhCRkZGRjc0QyBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgZnJlZSdkPC9wcmU+Cis8cD5UaGlzIG1lc3NhZ2Ugc2F5cyB0aGF0IHRoZSBwcm9ncmFtIGRpZCBhbiBpbGxlZ2FsIDQtYnl0ZSByZWFkIG9mCithZGRyZXNzIDB4QkZGRkY3NEMsIHdoaWNoLCBhcyBmYXIgYXMgTWVtY2hlY2sgY2FuIHRlbGwsIGlzIG5vdCBhIHZhbGlkCitzdGFjayBhZGRyZXNzLCBub3IgY29ycmVzcG9uZHMgdG8gYW55IGN1cnJlbnQgaGVhcCBibG9ja3Mgb3IgcmVjZW50bHkgZnJlZWQKK2hlYXAgYmxvY2tzLiAgVGhlIHJlYWQgaXMgaGFwcGVuaW5nIGF0IGxpbmUgNDUgb2YKKzxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+Ym9nb24uY3BwPC9jb2RlPiwgY2FsbGVkIGZyb20gbGluZSA2NiBvZiB0aGUgc2FtZSBmaWxlLAorZXRjLiAgRm9yIGVycm9ycyBhc3NvY2lhdGVkIHdpdGggYW4gaWRlbnRpZmllZCAoY3VycmVudCBvciBmcmVlZCkgaGVhcCBibG9jaywKK2ZvciBleGFtcGxlIHJlYWRpbmcgZnJlZWQgbWVtb3J5LCBWYWxncmluZCByZXBvcnRzIG5vdCBvbmx5IHRoZQorbG9jYXRpb24gd2hlcmUgdGhlIGVycm9yIGhhcHBlbmVkLCBidXQgYWxzbyB3aGVyZSB0aGUgYXNzb2NpYXRlZCBoZWFwIGJsb2NrCit3YXMgYWxsb2NhdGVkL2ZyZWVkLjwvcD4KKzxwPlZhbGdyaW5kIHJlbWVtYmVycyBhbGwgZXJyb3IgcmVwb3J0cy4gIFdoZW4gYW4gZXJyb3IgaXMgZGV0ZWN0ZWQsCitpdCBpcyBjb21wYXJlZCBhZ2FpbnN0IG9sZCByZXBvcnRzLCB0byBzZWUgaWYgaXQgaXMgYSBkdXBsaWNhdGUuICBJZiBzbywKK3RoZSBlcnJvciBpcyBub3RlZCwgYnV0IG5vIGZ1cnRoZXIgY29tbWVudGFyeSBpcyBlbWl0dGVkLiAgVGhpcyBhdm9pZHMKK3lvdSBiZWluZyBzd2FtcGVkIHdpdGggYmF6aWxsaW9ucyBvZiBkdXBsaWNhdGUgZXJyb3IgcmVwb3J0cy48L3A+Cis8cD5JZiB5b3Ugd2FudCB0byBrbm93IGhvdyBtYW55IHRpbWVzIGVhY2ggZXJyb3Igb2NjdXJyZWQsIHJ1biB3aXRoCit0aGUgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LXY8L2NvZGU+IG9wdGlvbi4gIFdoZW4gZXhlY3V0aW9uIGZpbmlzaGVzLCBhbGwgdGhlCityZXBvcnRzIGFyZSBwcmludGVkIG91dCwgYWxvbmcgd2l0aCwgYW5kIHNvcnRlZCBieSwgdGhlaXIgb2NjdXJyZW5jZQorY291bnRzLiAgVGhpcyBtYWtlcyBpdCBlYXN5IHRvIHNlZSB3aGljaCBlcnJvcnMgaGF2ZSBvY2N1cnJlZCBtb3N0CitmcmVxdWVudGx5LjwvcD4KKzxwPkVycm9ycyBhcmUgcmVwb3J0ZWQgYmVmb3JlIHRoZSBhc3NvY2lhdGVkIG9wZXJhdGlvbiBhY3R1YWxseQoraGFwcGVucy4gIEZvciBleGFtcGxlLCBpZiB5b3UncmUgdXNpbmcgTWVtY2hlY2sgYW5kIHlvdXIgcHJvZ3JhbSBhdHRlbXB0cyB0bworcmVhZCBmcm9tIGFkZHJlc3MgemVybywgTWVtY2hlY2sgd2lsbCBlbWl0IGEgbWVzc2FnZSB0byB0aGlzIGVmZmVjdCwgYW5kCit5b3VyIHByb2dyYW0gd2lsbCB0aGVuIGxpa2VseSBkaWUgd2l0aCBhIHNlZ21lbnRhdGlvbiBmYXVsdC48L3A+Cis8cD5JbiBnZW5lcmFsLCB5b3Ugc2hvdWxkIHRyeSBhbmQgZml4IGVycm9ycyBpbiB0aGUgb3JkZXIgdGhhdCB0aGV5CithcmUgcmVwb3J0ZWQuICBOb3QgZG9pbmcgc28gY2FuIGJlIGNvbmZ1c2luZy4gIEZvciBleGFtcGxlLCBhIHByb2dyYW0KK3doaWNoIGNvcGllcyB1bmluaXRpYWxpc2VkIHZhbHVlcyB0byBzZXZlcmFsIG1lbW9yeSBsb2NhdGlvbnMsIGFuZCBsYXRlcgordXNlcyB0aGVtLCB3aWxsIGdlbmVyYXRlIHNldmVyYWwgZXJyb3IgbWVzc2FnZXMsIHdoZW4gcnVuIG9uIE1lbWNoZWNrLgorVGhlIGZpcnN0IHN1Y2ggZXJyb3IgbWVzc2FnZSBtYXkgd2VsbCBnaXZlIHRoZSBtb3N0IGRpcmVjdCBjbHVlIHRvIHRoZQorcm9vdCBjYXVzZSBvZiB0aGUgcHJvYmxlbS48L3A+Cis8cD5UaGUgcHJvY2VzcyBvZiBkZXRlY3RpbmcgZHVwbGljYXRlIGVycm9ycyBpcyBxdWl0ZSBhbgorZXhwZW5zaXZlIG9uZSBhbmQgY2FuIGJlY29tZSBhIHNpZ25pZmljYW50IHBlcmZvcm1hbmNlIG92ZXJoZWFkCitpZiB5b3VyIHByb2dyYW0gZ2VuZXJhdGVzIGh1Z2UgcXVhbnRpdGllcyBvZiBlcnJvcnMuICBUbyBhdm9pZAorc2VyaW91cyBwcm9ibGVtcywgVmFsZ3JpbmQgd2lsbCBzaW1wbHkgc3RvcCBjb2xsZWN0aW5nCitlcnJvcnMgYWZ0ZXIgMSwwMDAgZGlmZmVyZW50IGVycm9ycyBoYXZlIGJlZW4gc2Vlbiwgb3IgMTAsMDAwLDAwMCBlcnJvcnMKK2luIHRvdGFsIGhhdmUgYmVlbiBzZWVuLiAgSW4gdGhpcyBzaXR1YXRpb24geW91IG1pZ2h0IGFzIHdlbGwKK3N0b3AgeW91ciBwcm9ncmFtIGFuZCBmaXggaXQsIGJlY2F1c2UgVmFsZ3JpbmQgd29uJ3QgdGVsbCB5b3UKK2FueXRoaW5nIGVsc2UgdXNlZnVsIGFmdGVyIHRoaXMuICBOb3RlIHRoYXQgdGhlIDEsMDAwLzEwLDAwMCwwMDAgbGltaXRzCithcHBseSBhZnRlciBzdXBwcmVzc2VkIGVycm9ycyBhcmUgcmVtb3ZlZC4gIFRoZXNlIGxpbWl0cyBhcmUKK2RlZmluZWQgaW4gPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5tX2Vycm9ybWdyLmM8L2NvZGU+IGFuZCBjYW4gYmUgaW5jcmVhc2VkCitpZiBuZWNlc3NhcnkuPC9wPgorPHA+VG8gYXZvaWQgdGhpcyBjdXRvZmYgeW91IGNhbiB1c2UgdGhlCis8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWVycm9yLWxpbWl0PW5vPC9jb2RlPiBvcHRpb24uICBUaGVuIFZhbGdyaW5kIHdpbGwgYWx3YXlzIHNob3cKK2Vycm9ycywgcmVnYXJkbGVzcyBvZiBob3cgbWFueSB0aGVyZSBhcmUuICBVc2UgdGhpcyBvcHRpb24gY2FyZWZ1bGx5LAorc2luY2UgaXQgbWF5IGhhdmUgYSBiYWQgZWZmZWN0IG9uIHBlcmZvcm1hbmNlLjwvcD4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDEiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj4KKzxhIG5hbWU9Im1hbnVhbC1jb3JlLnN1cHByZXNzIj48L2E+Mi41LqBTdXBwcmVzc2luZyBlcnJvcnM8L2gyPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+VGhlIGVycm9yLWNoZWNraW5nIHRvb2xzIGRldGVjdCBudW1lcm91cyBwcm9ibGVtcyBpbiB0aGUgc3lzdGVtCitsaWJyYXJpZXMsIHN1Y2ggYXMgdGhlIEMgbGlicmFyeSwgCit3aGljaCBjb21lIHByZS1pbnN0YWxsZWQgd2l0aCB5b3VyIE9TLiAgWW91IGNhbid0IGVhc2lseSBmaXgKK3RoZXNlLCBidXQgeW91IGRvbid0IHdhbnQgdG8gc2VlIHRoZXNlIGVycm9ycyAoYW5kIHllcywgdGhlcmUgYXJlIG1hbnkhKQorU28gVmFsZ3JpbmQgcmVhZHMgYSBsaXN0IG9mIGVycm9ycyB0byBzdXBwcmVzcyBhdCBzdGFydHVwLiAgQSBkZWZhdWx0CitzdXBwcmVzc2lvbiBmaWxlIGlzIGNyZWF0ZWQgYnkgdGhlCis8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPi4vY29uZmlndXJlPC9jb2RlPiBzY3JpcHQgd2hlbiB0aGUgc3lzdGVtIGlzCitidWlsdC48L3A+Cis8cD5Zb3UgY2FuIG1vZGlmeSBhbmQgYWRkIHRvIHRoZSBzdXBwcmVzc2lvbnMgZmlsZSBhdCB5b3VyIGxlaXN1cmUsCitvciwgYmV0dGVyLCB3cml0ZSB5b3VyIG93bi4gIE11bHRpcGxlIHN1cHByZXNzaW9uIGZpbGVzIGFyZSBhbGxvd2VkLgorVGhpcyBpcyB1c2VmdWwgaWYgcGFydCBvZiB5b3VyIHByb2plY3QgY29udGFpbnMgZXJyb3JzIHlvdSBjYW4ndCBvcgorZG9uJ3Qgd2FudCB0byBmaXgsIHlldCB5b3UgZG9uJ3Qgd2FudCB0byBjb250aW51b3VzbHkgYmUgcmVtaW5kZWQgb2YKK3RoZW0uPC9wPgorPHA+PGI+Tm90ZTqgPC9iPkJ5IGZhciB0aGUgZWFzaWVzdCB3YXkgdG8gYWRkCitzdXBwcmVzc2lvbnMgaXMgdG8gdXNlIHRoZSA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWdlbi1zdXBwcmVzc2lvbnM9eWVzPC9jb2RlPiBvcHRpb24KK2Rlc2NyaWJlZCBpbiA8YSBjbGFzcz0ieHJlZiIgaHJlZj0ibWFudWFsLWNvcmUuaHRtbCNtYW51YWwtY29yZS5vcHRpb25zIiB0aXRsZT0iMi42LqBDb3JlIENvbW1hbmQtbGluZSBPcHRpb25zIj5Db3JlIENvbW1hbmQtbGluZSBPcHRpb25zPC9hPi4gIFRoaXMgZ2VuZXJhdGVzCitzdXBwcmVzc2lvbnMgYXV0b21hdGljYWxseS4gIEZvciBiZXN0IHJlc3VsdHMsCit0aG91Z2gsIHlvdSBtYXkgd2FudCB0byBlZGl0IHRoZSBvdXRwdXQKKyAgICBvZiAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1nZW4tc3VwcHJlc3Npb25zPXllczwvY29kZT4gYnkgaGFuZCwgaW4gd2hpY2gKK2Nhc2UgaXQgd291bGQgYmUgYWR2aXNhYmxlIHRvIHJlYWQgdGhyb3VnaCB0aGlzIHNlY3Rpb24uCis8L3A+Cis8cD5FYWNoIGVycm9yIHRvIGJlIHN1cHByZXNzZWQgaXMgZGVzY3JpYmVkIHZlcnkgc3BlY2lmaWNhbGx5LCB0bworbWluaW1pc2UgdGhlIHBvc3NpYmlsaXR5IHRoYXQgYSBzdXBwcmVzc2lvbi1kaXJlY3RpdmUgaW5hZHZlcnRlbnRseQorc3VwcHJlc3NlcyBhIGJ1bmNoIG9mIHNpbWlsYXIgZXJyb3JzIHdoaWNoIHlvdSBkaWQgd2FudCB0byBzZWUuICBUaGUKK3N1cHByZXNzaW9uIG1lY2hhbmlzbSBpcyBkZXNpZ25lZCB0byBhbGxvdyBwcmVjaXNlIHlldCBmbGV4aWJsZQorc3BlY2lmaWNhdGlvbiBvZiBlcnJvcnMgdG8gc3VwcHJlc3MuPC9wPgorPHA+SWYgeW91IHVzZSB0aGUgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LXY8L2NvZGU+IG9wdGlvbiwgYXQgdGhlIGVuZCBvZiBleGVjdXRpb24sCitWYWxncmluZCBwcmludHMgb3V0IG9uZSBsaW5lIGZvciBlYWNoIHVzZWQgc3VwcHJlc3Npb24sIGdpdmluZyB0aGUgbnVtYmVyIG9mIHRpbWVzCitpdCBnb3QgdXNlZCwgaXRzIG5hbWUgYW5kIHRoZSBmaWxlbmFtZSBhbmQgbGluZSBudW1iZXIgd2hlcmUgdGhlIHN1cHByZXNzaW9uIGlzCitkZWZpbmVkLiBEZXBlbmRpbmcgb24gdGhlIHN1cHByZXNzaW9uIGtpbmQsIHRoZSBmaWxlbmFtZSBhbmQgbGluZSBudW1iZXIgYXJlIG9wdGlvbmFsbHkKK2ZvbGxvd2VkIGJ5IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gKHN1Y2ggYXMgdGhlIG51bWJlciBvZiBibG9ja3MgYW5kIGJ5dGVzIHN1cHByZXNzZWQKK2J5IGEgbWVtY2hlY2sgbGVhayBzdXBwcmVzc2lvbikuIEhlcmUncyB0aGUgc3VwcHJlc3Npb25zIHVzZWQgYnkgYQorcnVuIG9mIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+dmFsZ3JpbmQgLXYgLS10b29sPW1lbWNoZWNrIGxzIC1sPC9jb2RlPjo8L3A+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CistLTE2MTAtLSB1c2VkX3N1cHByZXNzaW9uOiAgICAgIDIgZGwtaGFjazMtY29uZC0xIC91c3IvbGliL3ZhbGdyaW5kL2RlZmF1bHQuc3VwcDoxMjM0CistLTE2MTAtLSB1c2VkX3N1cHByZXNzaW9uOiAgICAgIDIgZ2xpYmMtMi41Lngtb24tU1VTRS0xMC4yLShQUEMpLTJhIC91c3IvbGliL3ZhbGdyaW5kL2RlZmF1bHQuc3VwcDoxMjM0Cis8L3ByZT4KKzxwPk11bHRpcGxlIHN1cHByZXNzaW9ucyBmaWxlcyBhcmUgYWxsb3dlZC4gIFZhbGdyaW5kIGxvYWRzIHN1cHByZXNzaW9uCitwYXR0ZXJucyBmcm9tIDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+JFBSRUZJWC9saWIvdmFsZ3JpbmQvZGVmYXVsdC5zdXBwPC9jb2RlPiB1bmxlc3MKKzxjb2RlIGNsYXNzPSJvcHRpb24iPi0tZGVmYXVsdC1zdXBwcmVzc2lvbnM9bm88L2NvZGU+IGhhcyBiZWVuIHNwZWNpZmllZC4gIFlvdSBjYW4KK2FzayB0byBhZGQgc3VwcHJlc3Npb25zIGZyb20gYWRkaXRpb25hbCBmaWxlcyBieSBzcGVjaWZ5aW5nCis8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXN1cHByZXNzaW9ucz0vcGF0aC90by9maWxlLnN1cHA8L2NvZGU+IG9uZSBvciBtb3JlIHRpbWVzLgorPC9wPgorPHA+SWYgeW91IHdhbnQgdG8gdW5kZXJzdGFuZCBtb3JlIGFib3V0IHN1cHByZXNzaW9ucywgbG9vayBhdCBhbgorZXhpc3Rpbmcgc3VwcHJlc3Npb25zIGZpbGUgd2hpbHN0IHJlYWRpbmcgdGhlIGZvbGxvd2luZyBkb2N1bWVudGF0aW9uLgorVGhlIGZpbGUgPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5nbGliYy0yLjMuc3VwcDwvY29kZT4sIGluIHRoZSBzb3VyY2UKK2Rpc3RyaWJ1dGlvbiwgcHJvdmlkZXMgc29tZSBnb29kIGV4YW1wbGVzLjwvcD4KKzxwPkVhY2ggc3VwcHJlc3Npb24gaGFzIHRoZSBmb2xsb3dpbmcgY29tcG9uZW50czo8L3A+Cis8ZGl2IGNsYXNzPSJpdGVtaXplZGxpc3QiPjx1bCBjbGFzcz0iaXRlbWl6ZWRsaXN0IiBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOiBkaXNjOyAiPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+Rmlyc3QgbGluZTogaXRzIG5hbWUuICBUaGlzIG1lcmVseSBnaXZlcyBhIGhhbmR5IG5hbWUgdG8gdGhlCisgICAgc3VwcHJlc3Npb24sIGJ5IHdoaWNoIGl0IGlzIHJlZmVycmVkIHRvIGluIHRoZSBzdW1tYXJ5IG9mIHVzZWQKKyAgICBzdXBwcmVzc2lvbnMgcHJpbnRlZCBvdXQgd2hlbiBhIHByb2dyYW0gZmluaXNoZXMuICBJdCdzIG5vdAorICAgIGltcG9ydGFudCB3aGF0IHRoZSBuYW1lIGlzOyBhbnkgaWRlbnRpZnlpbmcgc3RyaW5nIHdpbGwgZG8uPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj4KKzxwPlNlY29uZCBsaW5lOiBuYW1lIG9mIHRoZSB0b29sKHMpIHRoYXQgdGhlIHN1cHByZXNzaW9uIGlzIGZvcgorICAgIChpZiBtb3JlIHRoYW4gb25lLCBjb21tYS1zZXBhcmF0ZWQpLCBhbmQgdGhlIG5hbWUgb2YgdGhlIHN1cHByZXNzaW9uCisgICAgaXRzZWxmLCBzZXBhcmF0ZWQgYnkgYSBjb2xvbiAobi5iLjogbm8gc3BhY2VzIGFyZSBhbGxvd2VkKSwgZWc6PC9wPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPgordG9vbF9uYW1lMSx0b29sX25hbWUyOnN1cHByZXNzaW9uX25hbWU8L3ByZT4KKzxwPlJlY2FsbCB0aGF0IFZhbGdyaW5kIGlzIGEgbW9kdWxhciBzeXN0ZW0sIGluIHdoaWNoCisgICAgZGlmZmVyZW50IGluc3RydW1lbnRhdGlvbiB0b29scyBjYW4gb2JzZXJ2ZSB5b3VyIHByb2dyYW0gd2hpbHN0IGl0CisgICAgaXMgcnVubmluZy4gIFNpbmNlIGRpZmZlcmVudCB0b29scyBkZXRlY3QgZGlmZmVyZW50IGtpbmRzIG9mIGVycm9ycywKKyAgICBpdCBpcyBuZWNlc3NhcnkgdG8gc2F5IHdoaWNoIHRvb2wocykgdGhlIHN1cHByZXNzaW9uIGlzIG1lYW5pbmdmdWwKKyAgICB0by48L3A+Cis8cD5Ub29scyB3aWxsIGNvbXBsYWluLCBhdCBzdGFydHVwLCBpZiBhIHRvb2wgZG9lcyBub3QgdW5kZXJzdGFuZAorICAgIGFueSBzdXBwcmVzc2lvbiBkaXJlY3RlZCB0byBpdC4gIFRvb2xzIGlnbm9yZSBzdXBwcmVzc2lvbnMgd2hpY2ggYXJlCisgICAgbm90IGRpcmVjdGVkIHRvIHRoZW0uICBBcyBhIHJlc3VsdCwgaXQgaXMgcXVpdGUgcHJhY3RpY2FsIHRvIHB1dAorICAgIHN1cHByZXNzaW9ucyBmb3IgYWxsIHRvb2xzIGludG8gdGhlIHNhbWUgc3VwcHJlc3Npb24gZmlsZS48L3A+Cis8L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+TmV4dCBsaW5lOiBhIHNtYWxsIG51bWJlciBvZiBzdXBwcmVzc2lvbiB0eXBlcyBoYXZlIGV4dHJhCisgICAgaW5mb3JtYXRpb24gYWZ0ZXIgdGhlIHNlY29uZCBsaW5lIChlZy4gdGhlIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5QYXJhbTwvY29kZT4KKyAgICBzdXBwcmVzc2lvbiBmb3IgTWVtY2hlY2spPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj4KKzxwPlJlbWFpbmluZyBsaW5lczogVGhpcyBpcyB0aGUgY2FsbGluZyBjb250ZXh0IGZvciB0aGUgZXJyb3IgLS0KKyAgICB0aGUgY2hhaW4gb2YgZnVuY3Rpb24gY2FsbHMgdGhhdCBsZWQgdG8gaXQuICBUaGVyZSBjYW4gYmUgdXAgdG8gMjQKKyAgICBvZiB0aGVzZSBsaW5lcy48L3A+Cis8cD5Mb2NhdGlvbnMgbWF5IGJlIG5hbWVzIG9mIGVpdGhlciBzaGFyZWQgb2JqZWN0cyBvcgorICAgIGZ1bmN0aW9ucy4gIFRoZXkgYmVnaW4KKyAgICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPm9iajo8L2NvZGU+IGFuZAorICAgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+ZnVuOjwvY29kZT4gcmVzcGVjdGl2ZWx5LiAgRnVuY3Rpb24gYW5kCisgICAgb2JqZWN0IG5hbWVzIHRvIG1hdGNoIGFnYWluc3QgbWF5IHVzZSB0aGUgd2lsZGNhcmQgY2hhcmFjdGVycworICAgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+KjwvY29kZT4gYW5kCisgICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij4/PC9jb2RlPi48L3A+Cis8cD48c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz5JbXBvcnRhbnQgbm90ZTogPC9zdHJvbmc+PC9zcGFuPiBDKysgZnVuY3Rpb24gbmFtZXMgbXVzdCBiZQorICAgIDxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPm1hbmdsZWQ8L3N0cm9uZz48L3NwYW4+LiAgSWYgeW91IGFyZSB3cml0aW5nIHN1cHByZXNzaW9ucyBieQorICAgIGhhbmQsIHVzZSB0aGUgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1kZW1hbmdsZT1ubzwvY29kZT4gb3B0aW9uIHRvIGdldCB0aGUKKyAgICBtYW5nbGVkIG5hbWVzIGluIHlvdXIgZXJyb3IgbWVzc2FnZXMuICBBbiBleGFtcGxlIG9mIGEgbWFuZ2xlZAorICAgIEMrKyBuYW1lIGlzICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPl9aTjlRTGlzdFZpZXc0c2hvd0V2PC9jb2RlPi4KKyAgICBUaGlzIGlzIHRoZSBmb3JtIHRoYXQgdGhlIEdOVSBDKysgY29tcGlsZXIgdXNlcyBpbnRlcm5hbGx5LCBhbmQKKyAgICB0aGUgZm9ybSB0aGF0IG11c3QgYmUgdXNlZCBpbiBzdXBwcmVzc2lvbiBmaWxlcy4gIFRoZSBlcXVpdmFsZW50CisgICAgZGVtYW5nbGVkIG5hbWUsIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+UUxpc3RWaWV3OjpzaG93KCk8L2NvZGU+LAorICAgIGlzIHdoYXQgeW91IHNlZSBhdCB0aGUgQysrIHNvdXJjZSBjb2RlIGxldmVsLgorICAgIDwvcD4KKzxwPkEgbG9jYXRpb24gbGluZSBtYXkgYWxzbyBiZQorICAgIHNpbXBseSAiPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij4uLi48L2NvZGU+IiAodGhyZWUgZG90cykuICBUaGlzIGlzCisgICAgYSBmcmFtZS1sZXZlbCB3aWxkY2FyZCwgd2hpY2ggbWF0Y2hlcyB6ZXJvIG9yIG1vcmUgZnJhbWVzLiAgRnJhbWUKKyAgICBsZXZlbCB3aWxkY2FyZHMgYXJlIHVzZWZ1bCBiZWNhdXNlIHRoZXkgbWFrZSBpdCBlYXN5IHRvIGlnbm9yZQorICAgIHZhcnlpbmcgbnVtYmVycyBvZiB1bmludGVyZXN0aW5nIGZyYW1lcyBpbiBiZXR3ZWVuIGZyYW1lcyBvZgorICAgIGludGVyZXN0LiAgVGhhdCBpcyBvZnRlbiBpbXBvcnRhbnQgd2hlbiB3cml0aW5nIHN1cHByZXNzaW9ucyB3aGljaAorICAgIGFyZSBpbnRlbmRlZCB0byBiZSByb2J1c3QgYWdhaW5zdCB2YXJpYXRpb25zIGluIHRoZSBhbW91bnQgb2YKKyAgICBmdW5jdGlvbiBpbmxpbmluZyBkb25lIGJ5IGNvbXBpbGVycy48L3A+Cis8L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+RmluYWxseSwgdGhlIGVudGlyZSBzdXBwcmVzc2lvbiBtdXN0IGJlIGJldHdlZW4gY3VybHkKKyAgICBicmFjZXMuIEVhY2ggYnJhY2UgbXVzdCBiZSB0aGUgZmlyc3QgY2hhcmFjdGVyIG9uIGl0cyBvd24KKyAgICBsaW5lLjwvcD48L2xpPgorPC91bD48L2Rpdj4KKzxwPkEgc3VwcHJlc3Npb24gb25seSBzdXBwcmVzc2VzIGFuIGVycm9yIHdoZW4gdGhlIGVycm9yIG1hdGNoZXMgYWxsCit0aGUgZGV0YWlscyBpbiB0aGUgc3VwcHJlc3Npb24uICBIZXJlJ3MgYW4gZXhhbXBsZTo8L3A+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Cit7CisgIF9fZ2NvbnZfdHJhbnNmb3JtX2FzY2lpX2ludGVybmFsL19fbWJydG93Yy9tYnRvd2MKKyAgTWVtY2hlY2s6VmFsdWU0CisgIGZ1bjpfX2djb252X3RyYW5zZm9ybV9hc2NpaV9pbnRlcm5hbAorICBmdW46X19tYnIqdG9jCisgIGZ1bjptYnRvd2MKK308L3ByZT4KKzxwPldoYXQgaXQgbWVhbnMgaXM6IGZvciBNZW1jaGVjayBvbmx5LCBzdXBwcmVzcyBhCit1c2Utb2YtdW5pbml0aWFsaXNlZC12YWx1ZSBlcnJvciwgd2hlbiB0aGUgZGF0YSBzaXplIGlzIDQsIHdoZW4gaXQKK29jY3VycyBpbiB0aGUgZnVuY3Rpb24KKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+X19nY29udl90cmFuc2Zvcm1fYXNjaWlfaW50ZXJuYWw8L2NvZGU+LCB3aGVuCit0aGF0IGlzIGNhbGxlZCBmcm9tIGFueSBmdW5jdGlvbiBvZiBuYW1lIG1hdGNoaW5nCis8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPl9fbWJyKnRvYzwvY29kZT4sIHdoZW4gdGhhdCBpcyBjYWxsZWQgZnJvbQorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5tYnRvd2M8L2NvZGU+LiAgSXQgZG9lc24ndCBhcHBseSB1bmRlciBhbnkKK290aGVyIGNpcmN1bXN0YW5jZXMuICBUaGUgc3RyaW5nIGJ5IHdoaWNoIHRoaXMgc3VwcHJlc3Npb24gaXMgaWRlbnRpZmllZAordG8gdGhlIHVzZXIgaXMKKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+X19nY29udl90cmFuc2Zvcm1fYXNjaWlfaW50ZXJuYWwvX19tYnJ0b3djL21idG93YzwvY29kZT4uPC9wPgorPHA+KFNlZSA8YSBjbGFzcz0ieHJlZiIgaHJlZj0ibWMtbWFudWFsLmh0bWwjbWMtbWFudWFsLnN1cHBmaWxlcyIgdGl0bGU9IjQuNC6gV3JpdGluZyBzdXBwcmVzc2lvbiBmaWxlcyI+V3JpdGluZyBzdXBwcmVzc2lvbiBmaWxlczwvYT4gZm9yIG1vcmUgZGV0YWlscworb24gdGhlIHNwZWNpZmljcyBvZiBNZW1jaGVjaydzIHN1cHByZXNzaW9uIGtpbmRzLik8L3A+Cis8cD5Bbm90aGVyIGV4YW1wbGUsIGFnYWluIGZvciB0aGUgTWVtY2hlY2sgdG9vbDo8L3A+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Cit7CisgIGxpYlgxMS5zby42LjIvbGliWDExLnNvLjYuMi9saWJYYXcuc28uNy4wCisgIE1lbWNoZWNrOlZhbHVlNAorICBvYmo6L3Vzci9YMTFSNi9saWIvbGliWDExLnNvLjYuMgorICBvYmo6L3Vzci9YMTFSNi9saWIvbGliWDExLnNvLjYuMgorICBvYmo6L3Vzci9YMTFSNi9saWIvbGliWGF3LnNvLjcuMAorfTwvcHJlPgorPHA+VGhpcyBzdXBwcmVzc2VzIGFueSBzaXplIDQgdW5pbml0aWFsaXNlZC12YWx1ZSBlcnJvciB3aGljaCBvY2N1cnMKK2FueXdoZXJlIGluIDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+bGliWDExLnNvLjYuMjwvY29kZT4sIHdoZW4gY2FsbGVkIGZyb20KK2FueXdoZXJlIGluIHRoZSBzYW1lIGxpYnJhcnksIHdoZW4gY2FsbGVkIGZyb20gYW55d2hlcmUgaW4KKzxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+bGliWGF3LnNvLjcuMDwvY29kZT4uICBUaGUgaW5leGFjdCBzcGVjaWZpY2F0aW9uIG9mCitsb2NhdGlvbnMgaXMgcmVncmV0dGFibGUsIGJ1dCBpcyBhYm91dCBhbGwgeW91IGNhbiBob3BlIGZvciwgZ2l2ZW4gdGhhdAordGhlIFgxMSBsaWJyYXJpZXMgc2hpcHBlZCBvbiB0aGUgTGludXggZGlzdHJvIG9uIHdoaWNoIHRoaXMgZXhhbXBsZQord2FzIG1hZGUgaGF2ZSBoYWQgdGhlaXIgc3ltYm9sIHRhYmxlcyByZW1vdmVkLjwvcD4KKzxwPkFsdGhvdWdoIHRoZSBhYm92ZSB0d28gZXhhbXBsZXMgZG8gbm90IG1ha2UgdGhpcyBjbGVhciwgeW91IGNhbgorZnJlZWx5IG1peCA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPm9iajo8L2NvZGU+IGFuZAorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5mdW46PC9jb2RlPiBsaW5lcyBpbiBhIHN1cHByZXNzaW9uLjwvcD4KKzxwPkZpbmFsbHksIGhlcmUncyBhbiBleGFtcGxlIHVzaW5nIHRocmVlIGZyYW1lLWxldmVsIHdpbGRjYXJkczo8L3A+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Cit7CisgICBhLWNvbnRyaXZlZC1leGFtcGxlCisgICBNZW1jaGVjazpMZWFrCisgICBmdW46bWFsbG9jCisgICAuLi4KKyAgIGZ1bjpkZGQKKyAgIC4uLgorICAgZnVuOmNjYworICAgLi4uCisgICBmdW46bWFpbgorfQorPC9wcmU+CitUaGlzIHN1cHByZXNzZXMgTWVtY2hlY2sgbWVtb3J5LWxlYWsgZXJyb3JzLCBpbiB0aGUgY2FzZSB3aGVyZQordGhlIGFsbG9jYXRpb24gd2FzIGRvbmUgYnkgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5tYWluPC9jb2RlPgorY2FsbGluZyAodGhvdWdoIGFueSBudW1iZXIgb2YgaW50ZXJtZWRpYXJpZXMsIGluY2x1ZGluZyB6ZXJvKQorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5jY2M8L2NvZGU+LAorY2FsbGluZyBvbndhcmRzIHZpYQorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5kZGQ8L2NvZGU+IGFuZCBldmVudHVhbGx5Cit0byA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPm1hbGxvYy48L2NvZGU+LgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MSI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPgorPGEgbmFtZT0ibWFudWFsLWNvcmUub3B0aW9ucyI+PC9hPjIuNi6gQ29yZSBDb21tYW5kLWxpbmUgT3B0aW9uczwvaDI+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD5BcyBtZW50aW9uZWQgYWJvdmUsIFZhbGdyaW5kJ3MgY29yZSBhY2NlcHRzIGEgY29tbW9uIHNldCBvZiBvcHRpb25zLgorVGhlIHRvb2xzIGFsc28gYWNjZXB0IHRvb2wtc3BlY2lmaWMgb3B0aW9ucywgd2hpY2ggYXJlIGRvY3VtZW50ZWQKK3NlcGFyYXRlbHkgZm9yIGVhY2ggdG9vbC48L3A+Cis8cD5WYWxncmluZCdzIGRlZmF1bHQgc2V0dGluZ3Mgc3VjY2VlZCBpbiBnaXZpbmcgcmVhc29uYWJsZSBiZWhhdmlvdXIKK2luIG1vc3QgY2FzZXMuICBXZSBncm91cCB0aGUgYXZhaWxhYmxlIG9wdGlvbnMgYnkgcm91Z2ggY2F0ZWdvcmllcy48L3A+Cis8ZGl2IGNsYXNzPSJzZWN0MiI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9Im1hbnVhbC1jb3JlLnRvb2xvcHRzIj48L2E+Mi42LjEuoFRvb2wtc2VsZWN0aW9uIE9wdGlvbjwvaDM+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD48YSBuYW1lPSJ0b29sLm9wdHMucGFyYSI+PC9hPlRoZSBzaW5nbGUgbW9zdCBpbXBvcnRhbnQgb3B0aW9uLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+Cis8YSBuYW1lPSJ0b29sLm9wdHMubGlzdCI+PC9hPjxkbCBjbGFzcz0idmFyaWFibGVsaXN0Ij4KKzxkdD4KKzxhIG5hbWU9InRvb2xfbmFtZSI+PC9hPjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tdG9vbD0mbHQ7dG9vbG5hbWUmZ3Q7IFtkZWZhdWx0OiBtZW1jaGVja10gPC9jb2RlPgorICAgIDwvc3Bhbj4KKzwvZHQ+Cis8ZGQ+PHA+UnVuIHRoZSBWYWxncmluZCB0b29sIGNhbGxlZCA8Y29kZSBjbGFzcz0idmFybmFtZSI+dG9vbG5hbWU8L2NvZGU+LAorICAgICAgZS5nLiBtZW1jaGVjaywgY2FjaGVncmluZCwgY2FsbGdyaW5kLCBoZWxncmluZCwgZHJkLCBtYXNzaWYsCisgICAgICBsYWNrZXksIG5vbmUsIGV4cC1zZ2NoZWNrLCBleHAtYmJ2LCBleHAtZGhhdCwgZXRjLjwvcD48L2RkPgorPC9kbD4KKzwvZGl2PgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MiI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9Im1hbnVhbC1jb3JlLmJhc2ljb3B0cyI+PC9hPjIuNi4yLqBCYXNpYyBPcHRpb25zPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPjxhIG5hbWU9ImJhc2ljLm9wdHMucGFyYSI+PC9hPlRoZXNlIG9wdGlvbnMgd29yayB3aXRoIGFsbCB0b29scy48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPgorPGEgbmFtZT0iYmFzaWMub3B0cy5saXN0Ij48L2E+PGRsIGNsYXNzPSJ2YXJpYWJsZWxpc3QiPgorPGR0PgorPGEgbmFtZT0ib3B0LmhlbHAiPjwvYT48c3BhbiBjbGFzcz0idGVybSI+PGNvZGUgY2xhc3M9Im9wdGlvbiI+LWggLS1oZWxwPC9jb2RlPjwvc3Bhbj4KKzwvZHQ+Cis8ZGQ+PHA+U2hvdyBoZWxwIGZvciBhbGwgb3B0aW9ucywgYm90aCBmb3IgdGhlIGNvcmUgYW5kIGZvciB0aGUKKyAgICAgIHNlbGVjdGVkIHRvb2wuICBJZiB0aGUgb3B0aW9uIGlzIHJlcGVhdGVkIGl0IGlzIGVxdWl2YWxlbnQgdG8gZ2l2aW5nCisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWhlbHAtZGVidWc8L2NvZGU+LjwvcD48L2RkPgorPGR0PgorPGEgbmFtZT0ib3B0LmhlbHAtZGVidWciPjwvYT48c3BhbiBjbGFzcz0idGVybSI+PGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1oZWxwLWRlYnVnPC9jb2RlPjwvc3Bhbj4KKzwvZHQ+Cis8ZGQ+PHA+U2FtZSBhcyA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWhlbHA8L2NvZGU+LCBidXQgYWxzbyBsaXN0cyBkZWJ1Z2dpbmcKKyAgICAgIG9wdGlvbnMgd2hpY2ggdXN1YWxseSBhcmUgb25seSBvZiB1c2UgdG8gVmFsZ3JpbmQncworICAgICAgZGV2ZWxvcGVycy48L3A+PC9kZD4KKzxkdD4KKzxhIG5hbWU9Im9wdC52ZXJzaW9uIj48L2E+PHNwYW4gY2xhc3M9InRlcm0iPjxjb2RlIGNsYXNzPSJvcHRpb24iPi0tdmVyc2lvbjwvY29kZT48L3NwYW4+Cis8L2R0PgorPGRkPjxwPlNob3cgdGhlIHZlcnNpb24gbnVtYmVyIG9mIHRoZSBWYWxncmluZCBjb3JlLiBUb29scyBjYW4gaGF2ZQorICAgICAgdGhlaXIgb3duIHZlcnNpb24gbnVtYmVycy4gVGhlcmUgaXMgYSBzY2hlbWUgaW4gcGxhY2UgdG8gZW5zdXJlCisgICAgICB0aGF0IHRvb2xzIG9ubHkgZXhlY3V0ZSB3aGVuIHRoZSBjb3JlIHZlcnNpb24gaXMgb25lIHRoZXkgYXJlCisgICAgICBrbm93biB0byB3b3JrIHdpdGguIFRoaXMgd2FzIGRvbmUgdG8gbWluaW1pc2UgdGhlIGNoYW5jZXMgb2YKKyAgICAgIHN0cmFuZ2UgcHJvYmxlbXMgYXJpc2luZyBmcm9tIHRvb2wtdnMtY29yZSB2ZXJzaW9uCisgICAgICBpbmNvbXBhdGliaWxpdGllcy48L3A+PC9kZD4KKzxkdD4KKzxhIG5hbWU9Im9wdC5xdWlldCI+PC9hPjxzcGFuIGNsYXNzPSJ0ZXJtIj48Y29kZSBjbGFzcz0ib3B0aW9uIj4tcTwvY29kZT4sIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tcXVpZXQ8L2NvZGU+PC9zcGFuPgorPC9kdD4KKzxkZD48cD5SdW4gc2lsZW50bHksIGFuZCBvbmx5IHByaW50IGVycm9yIG1lc3NhZ2VzLiBVc2VmdWwgaWYgeW91CisgICAgICBhcmUgcnVubmluZyByZWdyZXNzaW9uIHRlc3RzIG9yIGhhdmUgc29tZSBvdGhlciBhdXRvbWF0ZWQgdGVzdAorICAgICAgbWFjaGluZXJ5LjwvcD48L2RkPgorPGR0PgorPGEgbmFtZT0ib3B0LnZlcmJvc2UiPjwvYT48c3BhbiBjbGFzcz0idGVybSI+PGNvZGUgY2xhc3M9Im9wdGlvbiI+LXY8L2NvZGU+LCA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXZlcmJvc2U8L2NvZGU+PC9zcGFuPgorPC9kdD4KKzxkZD48cD5CZSBtb3JlIHZlcmJvc2UuIEdpdmVzIGV4dHJhIGluZm9ybWF0aW9uIG9uIHZhcmlvdXMgYXNwZWN0cworICAgICAgb2YgeW91ciBwcm9ncmFtLCBzdWNoIGFzOiB0aGUgc2hhcmVkIG9iamVjdHMgbG9hZGVkLCB0aGUKKyAgICAgIHN1cHByZXNzaW9ucyB1c2VkLCB0aGUgcHJvZ3Jlc3Mgb2YgdGhlIGluc3RydW1lbnRhdGlvbiBhbmQKKyAgICAgIGV4ZWN1dGlvbiBlbmdpbmVzLCBhbmQgd2FybmluZ3MgYWJvdXQgdW51c3VhbCBiZWhhdmlvdXIuIFJlcGVhdGluZworICAgICAgdGhlIG9wdGlvbiBpbmNyZWFzZXMgdGhlIHZlcmJvc2l0eSBsZXZlbC48L3A+PC9kZD4KKzxkdD4KKzxhIG5hbWU9Im9wdC50cmFjZS1jaGlsZHJlbiI+PC9hPjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tdHJhY2UtY2hpbGRyZW49Jmx0O3llc3xubyZndDsgW2RlZmF1bHQ6IG5vXSA8L2NvZGU+CisgICAgPC9zcGFuPgorPC9kdD4KKzxkZD4KKzxwPldoZW4gZW5hYmxlZCwgVmFsZ3JpbmQgd2lsbCB0cmFjZSBpbnRvIHN1Yi1wcm9jZXNzZXMKKyAgICAgIGluaXRpYXRlZCB2aWEgdGhlIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5leGVjPC9jb2RlPiBzeXN0ZW0gY2FsbC4gIFRoaXMgaXMKKyAgICAgIG5lY2Vzc2FyeSBmb3IgbXVsdGktcHJvY2VzcyBwcm9ncmFtcy4KKyAgICAgIDwvcD4KKzxwPk5vdGUgdGhhdCBWYWxncmluZCBkb2VzIHRyYWNlIGludG8gdGhlIGNoaWxkIG9mIGEKKyAgICAgIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5mb3JrPC9jb2RlPiAoaXQgd291bGQgYmUgZGlmZmljdWx0IG5vdCB0bywgc2luY2UKKyAgICAgIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5mb3JrPC9jb2RlPiBtYWtlcyBhbiBpZGVudGljYWwgY29weSBvZiBhIHByb2Nlc3MpLCBzbyB0aGlzCisgICAgICBvcHRpb24gaXMgYXJndWFibHkgYmFkbHkgbmFtZWQuICBIb3dldmVyLCBtb3N0IGNoaWxkcmVuIG9mCisgICAgICA8Y29kZSBjbGFzcz0idmFybmFtZSI+Zm9yazwvY29kZT4gY2FsbHMgaW1tZWRpYXRlbHkgY2FsbCA8Y29kZSBjbGFzcz0idmFybmFtZSI+ZXhlYzwvY29kZT4KKyAgICAgIGFueXdheS4KKyAgICAgIDwvcD4KKzwvZGQ+Cis8ZHQ+Cis8YSBuYW1lPSJvcHQudHJhY2UtY2hpbGRyZW4tc2tpcCI+PC9hPjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tdHJhY2UtY2hpbGRyZW4tc2tpcD1wYXR0MSxwYXR0MiwuLi4gPC9jb2RlPgorICAgIDwvc3Bhbj4KKzwvZHQ+Cis8ZGQ+Cis8cD5UaGlzIG9wdGlvbiBvbmx5IGhhcyBhbiBlZmZlY3Qgd2hlbiAKKyAgICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS10cmFjZS1jaGlsZHJlbj15ZXM8L2NvZGU+IGlzIHNwZWNpZmllZC4gIEl0IGFsbG93cworICAgICAgICBmb3Igc29tZSBjaGlsZHJlbiB0byBiZSBza2lwcGVkLiAgVGhlIG9wdGlvbiB0YWtlcyBhIGNvbW1hCisgICAgICAgIHNlcGFyYXRlZCBsaXN0IG9mIHBhdHRlcm5zIGZvciB0aGUgbmFtZXMgb2YgY2hpbGQgZXhlY3V0YWJsZXMKKyAgICAgICAgdGhhdCBWYWxncmluZCBzaG91bGQgbm90IHRyYWNlIGludG8uICBQYXR0ZXJucyBtYXkgaW5jbHVkZSB0aGUKKyAgICAgICAgbWV0YWNoYXJhY3RlcnMgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij4/PC9jb2RlPgorICAgICAgICBhbmQgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij4qPC9jb2RlPiwgd2hpY2ggaGF2ZSB0aGUgdXN1YWwKKyAgICAgICAgbWVhbmluZy48L3A+Cis8cD4KKyAgICAgICAgVGhpcyBjYW4gYmUgdXNlZnVsIGZvciBwcnVuaW5nIHVuaW50ZXJlc3RpbmcgYnJhbmNoZXMgZnJvbSBhCisgICAgICAgIHRyZWUgb2YgcHJvY2Vzc2VzIGJlaW5nIHJ1biBvbiBWYWxncmluZC4gIEJ1dCB5b3Ugc2hvdWxkIGJlCisgICAgICAgIGNhcmVmdWwgd2hlbiB1c2luZyBpdC4gIFdoZW4gVmFsZ3JpbmQgc2tpcHMgdHJhY2luZyBpbnRvIGFuCisgICAgICAgIGV4ZWN1dGFibGUsIGl0IGRvZXNuJ3QganVzdCBza2lwIHRyYWNpbmcgdGhhdCBleGVjdXRhYmxlLCBpdAorICAgICAgICBhbHNvIHNraXBzIHRyYWNpbmcgYW55IG9mIHRoYXQgZXhlY3V0YWJsZSdzIGNoaWxkIHByb2Nlc3Nlcy4KKyAgICAgICAgSW4gb3RoZXIgd29yZHMsIHRoZSBmbGFnIGRvZXNuJ3QgbWVyZWx5IGNhdXNlIHRyYWNpbmcgdG8gc3RvcAorICAgICAgICBhdCB0aGUgc3BlY2lmaWVkIGV4ZWN1dGFibGVzIC0tIGl0IHNraXBzIHRyYWNpbmcgb2YgZW50aXJlCisgICAgICAgIHByb2Nlc3Mgc3VidHJlZXMgcm9vdGVkIGF0IGFueSBvZiB0aGUgc3BlY2lmaWVkCisgICAgICAgIGV4ZWN1dGFibGVzLjwvcD4KKzwvZGQ+Cis8ZHQ+Cis8YSBuYW1lPSJvcHQudHJhY2UtY2hpbGRyZW4tc2tpcC1ieS1hcmciPjwvYT48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXRyYWNlLWNoaWxkcmVuLXNraXAtYnktYXJnPXBhdHQxLHBhdHQyLC4uLiA8L2NvZGU+CisgICAgPC9zcGFuPgorPC9kdD4KKzxkZD48cD5UaGlzIGlzIHRoZSBzYW1lIGFzICAKKyAgICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS10cmFjZS1jaGlsZHJlbi1za2lwPC9jb2RlPiwgd2l0aCBvbmUgZGlmZmVyZW5jZToKKyAgICAgICAgdGhlIGRlY2lzaW9uIGFzIHRvIHdoZXRoZXIgdG8gdHJhY2UgaW50byBhIGNoaWxkIHByb2Nlc3MgaXMKKyAgICAgICAgbWFkZSBieSBleGFtaW5pbmcgdGhlIGFyZ3VtZW50cyB0byB0aGUgY2hpbGQgcHJvY2VzcywgcmF0aGVyCisgICAgICAgIHRoYW4gdGhlIG5hbWUgb2YgaXRzIGV4ZWN1dGFibGUuPC9wPjwvZGQ+Cis8ZHQ+Cis8YSBuYW1lPSJvcHQuY2hpbGQtc2lsZW50LWFmdGVyLWZvcmsiPjwvYT48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWNoaWxkLXNpbGVudC1hZnRlci1mb3JrPSZsdDt5ZXN8bm8mZ3Q7IFtkZWZhdWx0OiBub10gPC9jb2RlPgorICAgIDwvc3Bhbj4KKzwvZHQ+Cis8ZGQ+PHA+V2hlbiBlbmFibGVkLCBWYWxncmluZCB3aWxsIG5vdCBzaG93IGFueSBkZWJ1Z2dpbmcgb3IKKyAgICAgIGxvZ2dpbmcgb3V0cHV0IGZvciB0aGUgY2hpbGQgcHJvY2VzcyByZXN1bHRpbmcgZnJvbQorICAgICAgYSA8Y29kZSBjbGFzcz0idmFybmFtZSI+Zm9yazwvY29kZT4gY2FsbC4gIFRoaXMgY2FuIG1ha2UgdGhlIG91dHB1dCBsZXNzCisgICAgICBjb25mdXNpbmcgKGFsdGhvdWdoIG1vcmUgbWlzbGVhZGluZykgd2hlbiBkZWFsaW5nIHdpdGggcHJvY2Vzc2VzCisgICAgICB0aGF0IGNyZWF0ZSBjaGlsZHJlbi4gIEl0IGlzIHBhcnRpY3VsYXJseSB1c2VmdWwgaW4gY29uanVuY3Rpb24KKyAgICAgIHdpdGggPGNvZGUgY2xhc3M9InZhcm5hbWUiPi0tdHJhY2UtY2hpbGRyZW49PC9jb2RlPi4gIFVzZSBvZiB0aGlzIG9wdGlvbiBpcyBhbHNvCisgICAgICBzdHJvbmdseSByZWNvbW1lbmRlZCBpZiB5b3UgYXJlIHJlcXVlc3RpbmcgWE1MIG91dHB1dAorICAgICAgKDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj4tLXhtbD15ZXM8L2NvZGU+KSwgc2luY2Ugb3RoZXJ3aXNlIHRoZSBYTUwgZnJvbSBjaGlsZCBhbmQKKyAgICAgIHBhcmVudCBtYXkgYmVjb21lIG1peGVkIHVwLCB3aGljaCB1c3VhbGx5IG1ha2VzIGl0IHVzZWxlc3MuCisgICAgICA8L3A+PC9kZD4KKzxkdD4KKzxhIG5hbWU9Im9wdC52Z2RiIj48L2E+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS12Z2RiPSZsdDtub3x5ZXN8ZnVsbCZndDsgW2RlZmF1bHQ6IHllc10gPC9jb2RlPgorICAgIDwvc3Bhbj4KKzwvZHQ+Cis8ZGQ+Cis8cD5WYWxncmluZCB3aWxsIHByb3ZpZGUgImdkYnNlcnZlciIgZnVuY3Rpb25hbGl0eSB3aGVuCisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXZnZGI9eWVzPC9jb2RlPiBvciA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXZnZGI9ZnVsbDwvY29kZT4gaXMKKyAgICAgIHNwZWNpZmllZC4gIFRoaXMgYWxsb3dzIGFuIGV4dGVybmFsIEdOVSBHREIgZGVidWdnZXIgdG8gY29udHJvbAorICAgICAgYW5kIGRlYnVnIHlvdXIgcHJvZ3JhbSB3aGVuIGl0IHJ1bnMgb24gVmFsZ3JpbmQuCisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXZnZGI9ZnVsbDwvY29kZT4gaW5jdXJzIHNpZ25pZmljYW50IHBlcmZvcm1hbmNlCisgICAgICBvdmVyaGVhZHMsIGJ1dCBwcm92aWRlcyBtb3JlIHByZWNpc2UgYnJlYWtwb2ludHMgYW5kCisgICAgICB3YXRjaHBvaW50cy4gU2VlIDxhIGNsYXNzPSJ4cmVmIiBocmVmPSJtYW51YWwtY29yZS1hZHYuaHRtbCNtYW51YWwtY29yZS1hZHYuZ2Ric2VydmVyIiB0aXRsZT0iMy4yLqBEZWJ1Z2dpbmcgeW91ciBwcm9ncmFtIHVzaW5nIFZhbGdyaW5kIGdkYnNlcnZlciBhbmQgR0RCIj5EZWJ1Z2dpbmcgeW91ciBwcm9ncmFtIHVzaW5nIFZhbGdyaW5kJ3MgZ2Ric2VydmVyIGFuZCBHREI8L2E+IGZvcgorICAgICAgYSBkZXRhaWxlZCBkZXNjcmlwdGlvbi4KKyAgICAgIDwvcD4KKzxwPiBJZiB0aGUgZW1iZWRkZWQgZ2Ric2VydmVyIGlzIGVuYWJsZWQgYnV0IG5vIGdkYiBpcworICAgICAgY3VycmVudGx5IGJlaW5nIHVzZWQsIHRoZSA8YSBjbGFzcz0ieHJlZiIgaHJlZj0ibWFudWFsLWNvcmUtYWR2Lmh0bWwjbWFudWFsLWNvcmUtYWR2LnZnZGIiIHRpdGxlPSIzLjIuOS6gdmdkYiBjb21tYW5kIGxpbmUgb3B0aW9ucyI+dmdkYjwvYT4KKyAgICAgIGNvbW1hbmQgbGluZSB1dGlsaXR5IGNhbiBzZW5kICJtb25pdG9yIGNvbW1hbmRzIiB0byBWYWxncmluZAorICAgICAgZnJvbSBhIHNoZWxsLiAgVGhlIFZhbGdyaW5kIGNvcmUgcHJvdmlkZXMgYSBzZXQgb2YKKyAgICAgIDxhIGNsYXNzPSJ4cmVmIiBocmVmPSJtYW51YWwtY29yZS1hZHYuaHRtbCNtYW51YWwtY29yZS1hZHYudmFsZ3JpbmQtbW9uaXRvci1jb21tYW5kcyIgdGl0bGU9IjMuMi4xMC6gVmFsZ3JpbmQgbW9uaXRvciBjb21tYW5kcyI+VmFsZ3JpbmQgbW9uaXRvciBjb21tYW5kczwvYT4uIEEgdG9vbAorICAgICAgY2FuIG9wdGlvbmFsbHkgcHJvdmlkZSB0b29sIHNwZWNpZmljIG1vbml0b3IgY29tbWFuZHMsIHdoaWNoIGFyZQorICAgICAgZG9jdW1lbnRlZCBpbiB0aGUgdG9vbCBzcGVjaWZpYyBjaGFwdGVyLgorICAgICAgPC9wPgorPC9kZD4KKzxkdD4KKzxhIG5hbWU9Im9wdC52Z2RiLWVycm9yIj48L2E+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS12Z2RiLWVycm9yPSZsdDtudW1iZXImZ3Q7IFtkZWZhdWx0OiA5OTk5OTk5OTldIDwvY29kZT4KKyAgICA8L3NwYW4+Cis8L2R0PgorPGRkPjxwPiBVc2UgdGhpcyBvcHRpb24gd2hlbiB0aGUgVmFsZ3JpbmQgZ2Ric2VydmVyIGlzIGVuYWJsZWQgd2l0aAorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS12Z2RiPXllczwvY29kZT4gb3IgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS12Z2RiPWZ1bGw8L2NvZGU+LgorICAgICAgVG9vbHMgdGhhdCByZXBvcnQgZXJyb3JzIHdpbGwgd2FpdAorICAgICAgZm9yICI8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPm51bWJlcjwvY29kZT4iIGVycm9ycyB0byBiZQorICAgICAgcmVwb3J0ZWQgYmVmb3JlIGZyZWV6aW5nIHRoZSBwcm9ncmFtIGFuZCB3YWl0aW5nIGZvciB5b3UgdG8KKyAgICAgIGNvbm5lY3Qgd2l0aCBHREIuICBJdCBmb2xsb3dzIHRoYXQgYSB2YWx1ZSBvZiB6ZXJvIHdpbGwgY2F1c2UKKyAgICAgIHRoZSBnZGJzZXJ2ZXIgdG8gYmUgc3RhcnRlZCBiZWZvcmUgeW91ciBwcm9ncmFtIGlzIGV4ZWN1dGVkLgorICAgICAgVGhpcyBpcyB0eXBpY2FsbHkgdXNlZCB0byBpbnNlcnQgR0RCIGJyZWFrcG9pbnRzIGJlZm9yZQorICAgICAgZXhlY3V0aW9uLCBhbmQgYWxzbyB3b3JrcyB3aXRoIHRvb2xzIHRoYXQgZG8gbm90IHJlcG9ydAorICAgICAgZXJyb3JzLCBzdWNoIGFzIE1hc3NpZi4KKyAgICAgIDwvcD48L2RkPgorPGR0PgorPGEgbmFtZT0ib3B0LnZnZGItc3RvcC1hdCI+PC9hPjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tdmdkYi1zdG9wLWF0PSZsdDtzZXQmZ3Q7IFtkZWZhdWx0OiBub25lXSA8L2NvZGU+CisgICAgPC9zcGFuPgorPC9kdD4KKzxkZD4KKzxwPiBVc2UgdGhpcyBvcHRpb24gd2hlbiB0aGUgVmFsZ3JpbmQgZ2Ric2VydmVyIGlzIGVuYWJsZWQgd2l0aAorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS12Z2RiPXllczwvY29kZT4gb3IgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS12Z2RiPWZ1bGw8L2NvZGU+LgorICAgICAgVGhlIFZhbGdyaW5kIGdkYnNlcnZlciB3aWxsIGJlIGludm9rZWQgZm9yIGVhY2ggZXJyb3IgYWZ0ZXIKKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tdmdkYi1lcnJvcjwvY29kZT4gaGF2ZSBiZWVuIHJlcG9ydGVkLgorICAgICAgWW91IGNhbiBhZGRpdGlvbmFsbHkgYXNrIHRoZSBWYWxncmluZCBnZGJzZXJ2ZXIgdG8gYmUgaW52b2tlZAorICAgICAgZm9yIG90aGVyIGV2ZW50cywgc3BlY2lmaWVkIGluIG9uZSBvZiB0aGUgZm9sbG93aW5nIHdheXM6ICA8L3A+Cis8ZGl2IGNsYXNzPSJpdGVtaXplZGxpc3QiPjx1bCBjbGFzcz0iaXRlbWl6ZWRsaXN0IiBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOiBkaXNjOyAiPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+Cis8cD5hIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIG9uZSBvciBtb3JlIG9mCisgICAgICAgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj5zdGFydHVwIGV4aXQgdmFsZ3JpbmRhYmV4aXQ8L2NvZGU+LjwvcD4KKzxwPlRoZSB2YWx1ZXMgPGNvZGUgY2xhc3M9Im9wdGlvbiI+c3RhcnR1cDwvY29kZT4gPGNvZGUgY2xhc3M9Im9wdGlvbiI+ZXhpdDwvY29kZT4KKyAgICAgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj52YWxncmluZGFiZXhpdDwvY29kZT4gcmVzcGVjdGl2ZWx5IGluZGljYXRlIHRvCisgICAgICAgICAgaW52b2tlIGdkYnNlcnZlciBiZWZvcmUgeW91ciBwcm9ncmFtIGlzIGV4ZWN1dGVkLCBhZnRlciB0aGUKKyAgICAgICAgICBsYXN0IGluc3RydWN0aW9uIG9mIHlvdXIgcHJvZ3JhbSwgb24gVmFsZ3JpbmQgYWJub3JtYWwgZXhpdAorICAgICAgICAgIChlLmcuIGludGVybmFsIGVycm9yLCBvdXQgb2YgbWVtb3J5LCAuLi4pLjwvcD4KKzxwPk5vdGU6IDxjb2RlIGNsYXNzPSJvcHRpb24iPnN0YXJ0dXA8L2NvZGU+IGFuZAorICAgICAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tdmdkYi1lcnJvcj0wPC9jb2RlPiB3aWxsIGJvdGggY2F1c2UgVmFsZ3JpbmQKKyAgICAgICAgICBnZGJzZXJ2ZXIgdG8gYmUgaW52b2tlZCBiZWZvcmUgeW91ciBwcm9ncmFtIGlzIGV4ZWN1dGVkLiBUaGUKKyAgICAgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXZnZGItZXJyb3I9MDwvY29kZT4gd2lsbCBpbiBhZGRpdGlvbiBjYXVzZSB5b3VyIAorICAgICAgICAgIHByb2dyYW0gdG8gc3RvcCBvbiBhbGwgc3Vic2VxdWVudCBlcnJvcnMuPC9wPgorPC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPjxjb2RlIGNsYXNzPSJvcHRpb24iPmFsbDwvY29kZT4gdG8gc3BlY2lmeSB0aGUgY29tcGxldGUgc2V0LgorICAgICAgICAgICAgSXQgaXMgZXF1aXZhbGVudCB0bworICAgICAgICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS12Z2RiLXN0b3AtYXQ9c3RhcnR1cCxleGl0LHZhbGdyaW5kYWJleGl0PC9jb2RlPi48L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPjxjb2RlIGNsYXNzPSJvcHRpb24iPm5vbmU8L2NvZGU+IGZvciB0aGUgZW1wdHkgc2V0LjwvcD48L2xpPgorPC91bD48L2Rpdj4KKzwvZGQ+Cis8ZHQ+Cis8YSBuYW1lPSJvcHQudHJhY2stZmRzIj48L2E+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS10cmFjay1mZHM9Jmx0O3llc3xubyZndDsgW2RlZmF1bHQ6IG5vXSA8L2NvZGU+CisgICAgPC9zcGFuPgorPC9kdD4KKzxkZD48cD5XaGVuIGVuYWJsZWQsIFZhbGdyaW5kIHdpbGwgcHJpbnQgb3V0IGEgbGlzdCBvZiBvcGVuIGZpbGUKKyAgICAgIGRlc2NyaXB0b3JzIG9uIGV4aXQgb3Igb24gcmVxdWVzdCwgdmlhIHRoZSBnZGJzZXJ2ZXIgbW9uaXRvcgorICAgICAgY29tbWFuZCA8Y29kZSBjbGFzcz0idmFybmFtZSI+di5pbmZvIG9wZW5fZmRzPC9jb2RlPi4gIEFsb25nIHdpdGggZWFjaAorICAgICAgZmlsZSBkZXNjcmlwdG9yIGlzIHByaW50ZWQgYSBzdGFjayBiYWNrdHJhY2Ugb2Ygd2hlcmUgdGhlIGZpbGUKKyAgICAgIHdhcyBvcGVuZWQgYW5kIGFueSBkZXRhaWxzIHJlbGF0aW5nIHRvIHRoZSBmaWxlIGRlc2NyaXB0b3Igc3VjaAorICAgICAgYXMgdGhlIGZpbGUgbmFtZSBvciBzb2NrZXQgZGV0YWlscy48L3A+PC9kZD4KKzxkdD4KKzxhIG5hbWU9Im9wdC50aW1lLXN0YW1wIj48L2E+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS10aW1lLXN0YW1wPSZsdDt5ZXN8bm8mZ3Q7IFtkZWZhdWx0OiBub10gPC9jb2RlPgorICAgIDwvc3Bhbj4KKzwvZHQ+Cis8ZGQ+PHA+V2hlbiBlbmFibGVkLCBlYWNoIG1lc3NhZ2UgaXMgcHJlY2VkZWQgd2l0aCBhbiBpbmRpY2F0aW9uIG9mCisgICAgICB0aGUgZWxhcHNlZCB3YWxsY2xvY2sgdGltZSBzaW5jZSBzdGFydHVwLCBleHByZXNzZWQgYXMgZGF5cywKKyAgICAgIGhvdXJzLCBtaW51dGVzLCBzZWNvbmRzIGFuZCBtaWxsaXNlY29uZHMuPC9wPjwvZGQ+Cis8ZHQ+Cis8YSBuYW1lPSJvcHQubG9nLWZkIj48L2E+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1sb2ctZmQ9Jmx0O251bWJlciZndDsgW2RlZmF1bHQ6IDIsIHN0ZGVycl0gPC9jb2RlPgorICAgIDwvc3Bhbj4KKzwvZHQ+Cis8ZGQ+PHA+U3BlY2lmaWVzIHRoYXQgVmFsZ3JpbmQgc2hvdWxkIHNlbmQgYWxsIG9mIGl0cyBtZXNzYWdlcyB0bworICAgICAgdGhlIHNwZWNpZmllZCBmaWxlIGRlc2NyaXB0b3IuICBUaGUgZGVmYXVsdCwgMiwgaXMgdGhlIHN0YW5kYXJkCisgICAgICBlcnJvciBjaGFubmVsIChzdGRlcnIpLiAgTm90ZSB0aGF0IHRoaXMgbWF5IGludGVyZmVyZSB3aXRoIHRoZQorICAgICAgY2xpZW50J3Mgb3duIHVzZSBvZiBzdGRlcnIsIGFzIFZhbGdyaW5kJ3Mgb3V0cHV0IHdpbGwgYmUKKyAgICAgIGludGVybGVhdmVkIHdpdGggYW55IG91dHB1dCB0aGF0IHRoZSBjbGllbnQgc2VuZHMgdG8KKyAgICAgIHN0ZGVyci48L3A+PC9kZD4KKzxkdD4KKzxhIG5hbWU9Im9wdC5sb2ctZmlsZSI+PC9hPjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tbG9nLWZpbGU9Jmx0O2ZpbGVuYW1lJmd0OyA8L2NvZGU+CisgICAgPC9zcGFuPgorPC9kdD4KKzxkZD4KKzxwPlNwZWNpZmllcyB0aGF0IFZhbGdyaW5kIHNob3VsZCBzZW5kIGFsbCBvZiBpdHMgbWVzc2FnZXMgdG8KKyAgICAgIHRoZSBzcGVjaWZpZWQgZmlsZS4gIElmIHRoZSBmaWxlIG5hbWUgaXMgZW1wdHksIGl0IGNhdXNlcyBhbiBhYm9ydC4KKyAgICAgIFRoZXJlIGFyZSB0aHJlZSBzcGVjaWFsIGZvcm1hdCBzcGVjaWZpZXJzIHRoYXQgY2FuIGJlIHVzZWQgaW4gdGhlIGZpbGUKKyAgICAgIG5hbWUuPC9wPgorPHA+PGNvZGUgY2xhc3M9Im9wdGlvbiI+JXA8L2NvZGU+IGlzIHJlcGxhY2VkIHdpdGggdGhlIGN1cnJlbnQgcHJvY2VzcyBJRC4KKyAgICAgIFRoaXMgaXMgdmVyeSB1c2VmdWwgZm9yIHByb2dyYW0gdGhhdCBpbnZva2UgbXVsdGlwbGUgcHJvY2Vzc2VzLgorICAgICAgV0FSTklORzogSWYgeW91IHVzZSA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXRyYWNlLWNoaWxkcmVuPXllczwvY29kZT4gYW5kIHlvdXIKKyAgICAgIHByb2dyYW0gaW52b2tlcyBtdWx0aXBsZSBwcm9jZXNzZXMgT1IgeW91ciBwcm9ncmFtIGZvcmtzIHdpdGhvdXQKKyAgICAgIGNhbGxpbmcgZXhlYyBhZnRlcndhcmRzLCBhbmQgeW91IGRvbid0IHVzZSB0aGlzIHNwZWNpZmllcgorICAgICAgKG9yIHRoZSA8Y29kZSBjbGFzcz0ib3B0aW9uIj4lcTwvY29kZT4gc3BlY2lmaWVyIGJlbG93KSwgdGhlIFZhbGdyaW5kIG91dHB1dCBmcm9tCisgICAgICBhbGwgdGhvc2UgcHJvY2Vzc2VzIHdpbGwgZ28gaW50byBvbmUgZmlsZSwgcG9zc2libHkganVtYmxlZCB1cCwgYW5kCisgICAgICBwb3NzaWJseSBpbmNvbXBsZXRlLjwvcD4KKzxwPjxjb2RlIGNsYXNzPSJvcHRpb24iPiVxe0ZPT308L2NvZGU+IGlzIHJlcGxhY2VkIHdpdGggdGhlIGNvbnRlbnRzIG9mIHRoZQorICAgICAgZW52aXJvbm1lbnQgdmFyaWFibGUgPGNvZGUgY2xhc3M9InZhcm5hbWUiPkZPTzwvY29kZT4uICBJZiB0aGUKKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPntGT099PC9jb2RlPiBwYXJ0IGlzIG1hbGZvcm1lZCwgaXQgY2F1c2VzIGFuIGFib3J0LiAgVGhpcworICAgICAgc3BlY2lmaWVyIGlzIHJhcmVseSBuZWVkZWQsIGJ1dCB2ZXJ5IHVzZWZ1bCBpbiBjZXJ0YWluIGNpcmN1bXN0YW5jZXMKKyAgICAgIChlZy4gd2hlbiBydW5uaW5nIE1QSSBwcm9ncmFtcykuICBUaGUgaWRlYSBpcyB0aGF0IHlvdSBzcGVjaWZ5IGEKKyAgICAgIHZhcmlhYmxlIHdoaWNoIHdpbGwgYmUgc2V0IGRpZmZlcmVudGx5IGZvciBlYWNoIHByb2Nlc3MgaW4gdGhlIGpvYiwKKyAgICAgIGZvciBleGFtcGxlIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+QlBST0NfUkFOSzwvY29kZT4gb3Igd2hhdGV2ZXIgaXMKKyAgICAgIGFwcGxpY2FibGUgaW4geW91ciBNUEkgc2V0dXAuICBJZiB0aGUgbmFtZWQgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgbm90CisgICAgICBzZXQsIGl0IGNhdXNlcyBhbiBhYm9ydC4gIE5vdGUgdGhhdCBpbiBzb21lIHNoZWxscywgdGhlCisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj57PC9jb2RlPiBhbmQgPGNvZGUgY2xhc3M9Im9wdGlvbiI+fTwvY29kZT4gY2hhcmFjdGVycyBtYXkgbmVlZCB0byBiZQorICAgICAgZXNjYXBlZCB3aXRoIGEgYmFja3NsYXNoLjwvcD4KKzxwPjxjb2RlIGNsYXNzPSJvcHRpb24iPiUlPC9jb2RlPiBpcyByZXBsYWNlZCB3aXRoIDxjb2RlIGNsYXNzPSJvcHRpb24iPiU8L2NvZGU+LjwvcD4KKzxwPklmIGFuIDxjb2RlIGNsYXNzPSJvcHRpb24iPiU8L2NvZGU+IGlzIGZvbGxvd2VkIGJ5IGFueSBvdGhlciBjaGFyYWN0ZXIsIGl0CisgICAgICBjYXVzZXMgYW4gYWJvcnQuPC9wPgorPHA+SWYgdGhlIGZpbGUgbmFtZSBzcGVjaWZpZXMgYSByZWxhdGl2ZSBmaWxlIG5hbWUsIGl0IGlzIHB1dAorICAgICAgaW4gdGhlIHByb2dyYW0ncyBpbml0aWFsIHdvcmtpbmcgZGlyZWN0b3J5IDogdGhpcyBpcyB0aGUgY3VycmVudAorICAgICAgZGlyZWN0b3J5IHdoZW4gdGhlIHByb2dyYW0gc3RhcnRlZCBpdHMgZXhlY3V0aW9uIGFmdGVyIHRoZSBmb3JrCisgICAgICBvciBhZnRlciB0aGUgZXhlYy4gIElmIGl0IHNwZWNpZmllcyBhbiBhYnNvbHV0ZSBmaWxlIG5hbWUgKGllLgorICAgICAgc3RhcnRzIHdpdGggJy8nKSB0aGVuIGl0IGlzIHB1dCB0aGVyZS4KKyAgICAgIDwvcD4KKzwvZGQ+Cis8ZHQ+Cis8YSBuYW1lPSJvcHQubG9nLXNvY2tldCI+PC9hPjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tbG9nLXNvY2tldD0mbHQ7aXAtYWRkcmVzczpwb3J0LW51bWJlciZndDsgPC9jb2RlPgorICAgIDwvc3Bhbj4KKzwvZHQ+Cis8ZGQ+PHA+U3BlY2lmaWVzIHRoYXQgVmFsZ3JpbmQgc2hvdWxkIHNlbmQgYWxsIG9mIGl0cyBtZXNzYWdlcyB0bworICAgICAgdGhlIHNwZWNpZmllZCBwb3J0IGF0IHRoZSBzcGVjaWZpZWQgSVAgYWRkcmVzcy4gIFRoZSBwb3J0IG1heSBiZQorICAgICAgb21pdHRlZCwgaW4gd2hpY2ggY2FzZSBwb3J0IDE1MDAgaXMgdXNlZC4gIElmIGEgY29ubmVjdGlvbiBjYW5ub3QKKyAgICAgIGJlIG1hZGUgdG8gdGhlIHNwZWNpZmllZCBzb2NrZXQsIFZhbGdyaW5kIGZhbGxzIGJhY2sgdG8gd3JpdGluZworICAgICAgb3V0cHV0IHRvIHRoZSBzdGFuZGFyZCBlcnJvciAoc3RkZXJyKS4gIFRoaXMgb3B0aW9uIGlzIGludGVuZGVkIHRvCisgICAgICBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlCisgICAgICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPnZhbGdyaW5kLWxpc3RlbmVyPC9jb2RlPiBwcm9ncmFtLiAgRm9yCisgICAgICBmdXJ0aGVyIGRldGFpbHMsIHNlZSAKKyAgICAgIDxhIGNsYXNzPSJsaW5rIiBocmVmPSJtYW51YWwtY29yZS5odG1sI21hbnVhbC1jb3JlLmNvbW1lbnQiIHRpdGxlPSIyLjMuoFRoZSBDb21tZW50YXJ5Ij50aGUgY29tbWVudGFyeTwvYT4KKyAgICAgIGluIHRoZSBtYW51YWwuPC9wPjwvZGQ+Cis8L2RsPgorPC9kaXY+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0ibWFudWFsLWNvcmUuZXJyb3B0cyI+PC9hPjIuNi4zLqBFcnJvci1yZWxhdGVkIE9wdGlvbnM8L2gzPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+PGEgbmFtZT0iZXJyb3ItcmVsYXRlZC5vcHRzLnBhcmEiPjwvYT5UaGVzZSBvcHRpb25zIGFyZSB1c2VkIGJ5IGFsbCB0b29scwordGhhdCBjYW4gcmVwb3J0IGVycm9ycywgZS5nLiBNZW1jaGVjaywgYnV0IG5vdCBDYWNoZWdyaW5kLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+Cis8YSBuYW1lPSJlcnJvci1yZWxhdGVkLm9wdHMubGlzdCI+PC9hPjxkbCBjbGFzcz0idmFyaWFibGVsaXN0Ij4KKzxkdD4KKzxhIG5hbWU9Im9wdC54bWwiPjwvYT48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXhtbD0mbHQ7eWVzfG5vJmd0OyBbZGVmYXVsdDogbm9dIDwvY29kZT4KKyAgICA8L3NwYW4+Cis8L2R0PgorPGRkPgorPHA+V2hlbiBlbmFibGVkLCB0aGUgaW1wb3J0YW50IHBhcnRzIG9mIHRoZSBvdXRwdXQgKGUuZy4gdG9vbCBlcnJvcgorICAgICAgbWVzc2FnZXMpIHdpbGwgYmUgaW4gWE1MIGZvcm1hdCByYXRoZXIgdGhhbiBwbGFpbiB0ZXh0LiAgRnVydGhlcm1vcmUsCisgICAgICB0aGUgWE1MIG91dHB1dCB3aWxsIGJlIHNlbnQgdG8gYSBkaWZmZXJlbnQgb3V0cHV0IGNoYW5uZWwgdGhhbiB0aGUKKyAgICAgIHBsYWluIHRleHQgb3V0cHV0LiAgVGhlcmVmb3JlLCB5b3UgYWxzbyBtdXN0IHVzZSBvbmUgb2YKKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0teG1sLWZkPC9jb2RlPiwgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS14bWwtZmlsZTwvY29kZT4gb3IKKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0teG1sLXNvY2tldDwvY29kZT4gdG8gc3BlY2lmeSB3aGVyZSB0aGUgWE1MIGlzIHRvIGJlIHNlbnQuCisgICAgICA8L3A+Cis8cD5MZXNzIGltcG9ydGFudCBtZXNzYWdlcyB3aWxsIHN0aWxsIGJlIHByaW50ZWQgaW4gcGxhaW4gdGV4dCwgYnV0CisgICAgICBiZWNhdXNlIHRoZSBYTUwgb3V0cHV0IGFuZCBwbGFpbiB0ZXh0IG91dHB1dCBhcmUgc2VudCB0byBkaWZmZXJlbnQKKyAgICAgIG91dHB1dCBjaGFubmVscyAodGhlIGRlc3RpbmF0aW9uIG9mIHRoZSBwbGFpbiB0ZXh0IG91dHB1dCBpcyBzdGlsbAorICAgICAgY29udHJvbGxlZCBieSA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWxvZy1mZDwvY29kZT4sIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tbG9nLWZpbGU8L2NvZGU+CisgICAgICBhbmQgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1sb2ctc29ja2V0PC9jb2RlPikgdGhpcyBzaG91bGQgbm90IGNhdXNlIHByb2JsZW1zLgorICAgICAgPC9wPgorPHA+VGhpcyBvcHRpb24gaXMgYWltZWQgYXQgbWFraW5nIGxpZmUgZWFzaWVyIGZvciB0b29scyB0aGF0IGNvbnN1bWUKKyAgICAgIFZhbGdyaW5kJ3Mgb3V0cHV0IGFzIGlucHV0LCBzdWNoIGFzIEdVSSBmcm9udCBlbmRzLiAgQ3VycmVudGx5IHRoaXMKKyAgICAgIG9wdGlvbiB3b3JrcyB3aXRoIE1lbWNoZWNrLCBIZWxncmluZCwgRFJEIGFuZCBTR2NoZWNrLiAgVGhlIG91dHB1dAorICAgICAgZm9ybWF0IGlzIHNwZWNpZmllZCBpbiB0aGUgZmlsZQorICAgICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5kb2NzL2ludGVybmFscy94bWwtb3V0cHV0LXByb3RvY29sNC50eHQ8L2NvZGU+CisgICAgICBpbiB0aGUgc291cmNlIHRyZWUgZm9yIFZhbGdyaW5kIDMuNS4wIG9yIGxhdGVyLjwvcD4KKzxwPlRoZSByZWNvbW1lbmRlZCBvcHRpb25zIGZvciBhIEdVSSB0byBwYXNzLCB3aGVuIHJlcXVlc3RpbmcKKyAgICAgIFhNTCBvdXRwdXQsIGFyZTogPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS14bWw9eWVzPC9jb2RlPiB0byBlbmFibGUgWE1MIG91dHB1dCwKKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0teG1sLWZpbGU8L2NvZGU+IHRvIHNlbmQgdGhlIFhNTCBvdXRwdXQgdG8gYSAocHJlc3VtYWJseQorICAgICAgR1VJLXNlbGVjdGVkKSBmaWxlLCA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWxvZy1maWxlPC9jb2RlPiB0byBzZW5kIHRoZSBwbGFpbgorICAgICAgdGV4dCBvdXRwdXQgdG8gYSBzZWNvbmQgR1VJLXNlbGVjdGVkIGZpbGUsCisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWNoaWxkLXNpbGVudC1hZnRlci1mb3JrPXllczwvY29kZT4sIGFuZAorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LXE8L2NvZGU+IHRvIHJlc3RyaWN0IHRoZSBwbGFpbiB0ZXh0IG91dHB1dCB0byBjcml0aWNhbAorICAgICAgZXJyb3IgbWVzc2FnZXMgY3JlYXRlZCBieSBWYWxncmluZCBpdHNlbGYuICBGb3IgZXhhbXBsZSwgZmFpbHVyZSB0bworICAgICAgcmVhZCBhIHNwZWNpZmllZCBzdXBwcmVzc2lvbnMgZmlsZSBjb3VudHMgYXMgYSBjcml0aWNhbCBlcnJvciBtZXNzYWdlLgorICAgICAgSW4gdGhpcyB3YXksIGZvciBhIHN1Y2Nlc3NmdWwgcnVuIHRoZSB0ZXh0IG91dHB1dCBmaWxlIHdpbGwgYmUgZW1wdHkuCisgICAgICBCdXQgaWYgaXQgaXNuJ3QgZW1wdHksIHRoZW4gaXQgd2lsbCBjb250YWluIGltcG9ydGFudCBpbmZvcm1hdGlvbgorICAgICAgd2hpY2ggdGhlIEdVSSB1c2VyIHNob3VsZCBiZSBtYWRlIGF3YXJlCisgICAgICBvZi48L3A+Cis8L2RkPgorPGR0PgorPGEgbmFtZT0ib3B0LnhtbC1mZCI+PC9hPjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0teG1sLWZkPSZsdDtudW1iZXImZ3Q7IFtkZWZhdWx0OiAtMSwgZGlzYWJsZWRdIDwvY29kZT4KKyAgICA8L3NwYW4+Cis8L2R0PgorPGRkPjxwPlNwZWNpZmllcyB0aGF0IFZhbGdyaW5kIHNob3VsZCBzZW5kIGl0cyBYTUwgb3V0cHV0IHRvIHRoZQorICAgICAgc3BlY2lmaWVkIGZpbGUgZGVzY3JpcHRvci4gIEl0IG11c3QgYmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoCisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXhtbD15ZXM8L2NvZGU+LjwvcD48L2RkPgorPGR0PgorPGEgbmFtZT0ib3B0LnhtbC1maWxlIj48L2E+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS14bWwtZmlsZT0mbHQ7ZmlsZW5hbWUmZ3Q7IDwvY29kZT4KKyAgICA8L3NwYW4+Cis8L2R0PgorPGRkPjxwPlNwZWNpZmllcyB0aGF0IFZhbGdyaW5kIHNob3VsZCBzZW5kIGl0cyBYTUwgb3V0cHV0CisgICAgICB0byB0aGUgc3BlY2lmaWVkIGZpbGUuICBJdCBtdXN0IGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aAorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS14bWw9eWVzPC9jb2RlPi4gIEFueSA8Y29kZSBjbGFzcz0ib3B0aW9uIj4lcDwvY29kZT4gb3IKKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPiVxPC9jb2RlPiBzZXF1ZW5jZXMgYXBwZWFyaW5nIGluIHRoZSBmaWxlbmFtZSBhcmUgZXhwYW5kZWQKKyAgICAgIGluIGV4YWN0bHkgdGhlIHNhbWUgd2F5IGFzIHRoZXkgYXJlIGZvciA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWxvZy1maWxlPC9jb2RlPi4KKyAgICAgIFNlZSB0aGUgZGVzY3JpcHRpb24gb2YgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1sb2ctZmlsZTwvY29kZT4gZm9yIGRldGFpbHMuCisgICAgICA8L3A+PC9kZD4KKzxkdD4KKzxhIG5hbWU9Im9wdC54bWwtc29ja2V0Ij48L2E+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS14bWwtc29ja2V0PSZsdDtpcC1hZGRyZXNzOnBvcnQtbnVtYmVyJmd0OyA8L2NvZGU+CisgICAgPC9zcGFuPgorPC9kdD4KKzxkZD48cD5TcGVjaWZpZXMgdGhhdCBWYWxncmluZCBzaG91bGQgc2VuZCBpdHMgWE1MIG91dHB1dCB0aGUKKyAgICAgIHNwZWNpZmllZCBwb3J0IGF0IHRoZSBzcGVjaWZpZWQgSVAgYWRkcmVzcy4gIEl0IG11c3QgYmUgdXNlZCBpbgorICAgICAgY29uanVuY3Rpb24gd2l0aCA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXhtbD15ZXM8L2NvZGU+LiAgVGhlIGZvcm0gb2YgdGhlIGFyZ3VtZW50CisgICAgICBpcyB0aGUgc2FtZSBhcyB0aGF0IHVzZWQgYnkgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1sb2ctc29ja2V0PC9jb2RlPi4KKyAgICAgIFNlZSB0aGUgZGVzY3JpcHRpb24gb2YgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1sb2ctc29ja2V0PC9jb2RlPgorICAgICAgZm9yIGZ1cnRoZXIgZGV0YWlscy48L3A+PC9kZD4KKzxkdD4KKzxhIG5hbWU9Im9wdC54bWwtdXNlci1jb21tZW50Ij48L2E+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS14bWwtdXNlci1jb21tZW50PSZsdDtzdHJpbmcmZ3Q7IDwvY29kZT4KKyAgICA8L3NwYW4+Cis8L2R0PgorPGRkPjxwPkVtYmVkcyBhbiBleHRyYSB1c2VyIGNvbW1lbnQgc3RyaW5nIGF0IHRoZSBzdGFydCBvZiB0aGUgWE1MCisgICAgICBvdXRwdXQuICBPbmx5IHdvcmtzIHdoZW4gPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS14bWw9eWVzPC9jb2RlPiBpcyBzcGVjaWZpZWQ7CisgICAgICBpZ25vcmVkIG90aGVyd2lzZS48L3A+PC9kZD4KKzxkdD4KKzxhIG5hbWU9Im9wdC5kZW1hbmdsZSI+PC9hPjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tZGVtYW5nbGU9Jmx0O3llc3xubyZndDsgW2RlZmF1bHQ6IHllc10gPC9jb2RlPgorICAgIDwvc3Bhbj4KKzwvZHQ+Cis8ZGQ+Cis8cD5FbmFibGUvZGlzYWJsZSBhdXRvbWF0aWMgZGVtYW5nbGluZyAoZGVjb2RpbmcpIG9mIEMrKyBuYW1lcy4KKyAgICAgIEVuYWJsZWQgYnkgZGVmYXVsdC4gIFdoZW4gZW5hYmxlZCwgVmFsZ3JpbmQgd2lsbCBhdHRlbXB0IHRvCisgICAgICB0cmFuc2xhdGUgZW5jb2RlZCBDKysgbmFtZXMgYmFjayB0byBzb21ldGhpbmcgYXBwcm9hY2hpbmcgdGhlCisgICAgICBvcmlnaW5hbC4gIFRoZSBkZW1hbmdsZXIgaGFuZGxlcyBzeW1ib2xzIG1hbmdsZWQgYnkgZysrIHZlcnNpb25zCisgICAgICAyLlgsIDMuWCBhbmQgNC5YLjwvcD4KKzxwPkFuIGltcG9ydGFudCBmYWN0IGFib3V0IGRlbWFuZ2xpbmcgaXMgdGhhdCBmdW5jdGlvbiBuYW1lcworICAgICAgbWVudGlvbmVkIGluIHN1cHByZXNzaW9ucyBmaWxlcyBzaG91bGQgYmUgaW4gdGhlaXIgbWFuZ2xlZCBmb3JtLgorICAgICAgVmFsZ3JpbmQgZG9lcyBub3QgZGVtYW5nbGUgZnVuY3Rpb24gbmFtZXMgd2hlbiBzZWFyY2hpbmcgZm9yCisgICAgICBhcHBsaWNhYmxlIHN1cHByZXNzaW9ucywgYmVjYXVzZSB0byBkbyBvdGhlcndpc2Ugd291bGQgbWFrZQorICAgICAgc3VwcHJlc3Npb24gZmlsZSBjb250ZW50cyBkZXBlbmRlbnQgb24gdGhlIHN0YXRlIG9mIFZhbGdyaW5kJ3MKKyAgICAgIGRlbWFuZ2xpbmcgbWFjaGluZXJ5LCBhbmQgYWxzbyBzbG93IGRvd24gc3VwcHJlc3Npb24gbWF0Y2hpbmcuPC9wPgorPC9kZD4KKzxkdD4KKzxhIG5hbWU9Im9wdC5udW0tY2FsbGVycyI+PC9hPjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tbnVtLWNhbGxlcnM9Jmx0O251bWJlciZndDsgW2RlZmF1bHQ6IDEyXSA8L2NvZGU+CisgICAgPC9zcGFuPgorPC9kdD4KKzxkZD4KKzxwPlNwZWNpZmllcyB0aGUgbWF4aW11bSBudW1iZXIgb2YgZW50cmllcyBzaG93biBpbiBzdGFjayB0cmFjZXMKKyAgICAgIHRoYXQgaWRlbnRpZnkgcHJvZ3JhbSBsb2NhdGlvbnMuICBOb3RlIHRoYXQgZXJyb3JzIGFyZSBjb21tb25lZCB1cAorICAgICAgdXNpbmcgb25seSB0aGUgdG9wIGZvdXIgZnVuY3Rpb24gbG9jYXRpb25zICh0aGUgcGxhY2UgaW4gdGhlIGN1cnJlbnQKKyAgICAgIGZ1bmN0aW9uLCBhbmQgdGhhdCBvZiBpdHMgdGhyZWUgaW1tZWRpYXRlIGNhbGxlcnMpLiAgU28gdGhpcyBkb2Vzbid0CisgICAgICBhZmZlY3QgdGhlIHRvdGFsIG51bWJlciBvZiBlcnJvcnMgcmVwb3J0ZWQuPC9wPgorPHA+VGhlIG1heGltdW0gdmFsdWUgZm9yIHRoaXMgaXMgNTAwLiBOb3RlIHRoYXQgaGlnaGVyIHNldHRpbmdzCisgICAgICB3aWxsIG1ha2UgVmFsZ3JpbmQgcnVuIGEgYml0IG1vcmUgc2xvd2x5IGFuZCB0YWtlIGEgYml0IG1vcmUKKyAgICAgIG1lbW9yeSwgYnV0IGNhbiBiZSB1c2VmdWwgd2hlbiB3b3JraW5nIHdpdGggcHJvZ3JhbXMgd2l0aAorICAgICAgZGVlcGx5LW5lc3RlZCBjYWxsIGNoYWlucy48L3A+Cis8L2RkPgorPGR0PgorPGEgbmFtZT0ib3B0LnVudy1zdGFjay1zY2FuLXRocmVzaCI+PC9hPjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tdW53LXN0YWNrLXNjYW4tdGhyZXNoPSZsdDtudW1iZXImZ3Q7IFtkZWZhdWx0OiAwXSA8L2NvZGU+CisgICAgLCA8L3NwYW4+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS11bnctc3RhY2stc2Nhbi1mcmFtZXM9Jmx0O251bWJlciZndDsgW2RlZmF1bHQ6IDVdIDwvY29kZT4KKyAgICA8L3NwYW4+Cis8L2R0PgorPGRkPgorPHA+U3RhY2stc2Nhbm5pbmcgc3VwcG9ydCBpcyBhdmFpbGFibGUgb25seSBvbiBBUk0KKyAgICAgIHRhcmdldHMuPC9wPgorPHA+VGhlc2UgZmxhZ3MgZW5hYmxlIGFuZCBjb250cm9sIHN0YWNrIHVud2luZGluZyBieSBzdGFjaworICAgICAgc2Nhbm5pbmcuICBXaGVuIHRoZSBub3JtYWwgc3RhY2sgdW53aW5kaW5nIG1lY2hhbmlzbXMgLS0gdXNhZ2UKKyAgICAgIG9mIER3YXJmIENGSSByZWNvcmRzLCBhbmQgZnJhbWUtcG9pbnRlciBmb2xsb3dpbmcgLS0gZmFpbCwgc3RhY2sKKyAgICAgIHNjYW5uaW5nIG1heSBiZSBhYmxlIHRvIHJlY292ZXIgYSBzdGFjayB0cmFjZS48L3A+Cis8cD5Ob3RlIHRoYXQgc3RhY2sgc2Nhbm5pbmcgaXMgYW4gaW1wcmVjaXNlLCBoZXVyaXN0aWMKKyAgICAgIG1lY2hhbmlzbSB0aGF0IG1heSBnaXZlIHZlcnkgbWlzbGVhZGluZyByZXN1bHRzLCBvciBub25lIGF0IGFsbC4KKyAgICAgIEl0IHNob3VsZCBiZSB1c2VkIG9ubHkgaW4gZW1lcmdlbmNpZXMsIHdoZW4gbm9ybWFsIHVud2luZGluZworICAgICAgZmFpbHMsIGFuZCBpdCBpcyBpbXBvcnRhbnQgdG8gbmV2ZXJ0aGVsZXNzIGhhdmUgc3RhY2sKKyAgICAgIHRyYWNlcy48L3A+Cis8cD5TdGFjayBzY2FubmluZyBpcyBhIHNpbXBsZSB0ZWNobmlxdWU6IHRoZSB1bndpbmRlciByZWFkcworICAgICAgd29yZHMgZnJvbSB0aGUgc3RhY2ssIGFuZCB0cmllcyB0byBndWVzcyB3aGljaCBvZiB0aGVtIG1pZ2h0IGJlCisgICAgICByZXR1cm4gYWRkcmVzc2VzLCBieSBjaGVja2luZyB0byBzZWUgaWYgdGhleSBwb2ludCBqdXN0IGFmdGVyCisgICAgICBBUk0gb3IgVGh1bWIgY2FsbCBpbnN0cnVjdGlvbnMuICBJZiBzbywgdGhlIHdvcmQgaXMgYWRkZWQgdG8gdGhlCisgICAgICBiYWNrdHJhY2UuPC9wPgorPHA+VGhlIG1haW4gZGFuZ2VyIG9jY3VycyB3aGVuIGEgZnVuY3Rpb24gY2FsbCByZXR1cm5zLAorICAgICAgbGVhdmluZyBpdHMgcmV0dXJuIGFkZHJlc3MgZXhwb3NlZCwgYW5kIGEgbmV3IGZ1bmN0aW9uIGlzCisgICAgICBjYWxsZWQsIGJ1dCB0aGUgbmV3IGZ1bmN0aW9uIGRvZXMgbm90IG92ZXJ3cml0ZSB0aGUgb2xkIGFkZHJlc3MuCisgICAgICBUaGUgcmVzdWx0IG9mIHRoaXMgaXMgdGhhdCB0aGUgYmFja3RyYWNlIG1heSBjb250YWluIGVudHJpZXMgZm9yCisgICAgICBmdW5jdGlvbnMgd2hpY2ggaGF2ZSBhbHJlYWR5IHJldHVybmVkLCBhbmQgc28gYmUgdmVyeQorICAgICAgY29uZnVzaW5nLjwvcD4KKzxwPkEgc2Vjb25kIGxpbWl0YXRpb24gb2YgdGhpcyBpbXBsZW1lbnRhdGlvbiBpcyB0aGF0IGl0IHdpbGwKKyAgICAgIHNjYW4gb25seSB0aGUgcGFnZSAoNEtCLCBub3JtYWxseSkgY29udGFpbmluZyB0aGUgc3RhcnRpbmcgc3RhY2sKKyAgICAgIHBvaW50ZXIuICBJZiB0aGUgc3RhY2sgZnJhbWVzIGFyZSBsYXJnZSwgdGhpcyBtYXkgcmVzdWx0IGluIG9ubHkKKyAgICAgIGEgZmV3IChvciBub3QgZXZlbiBhbnkpIGJlaW5nIHByZXNlbnQgaW4gdGhlIHRyYWNlLiAgQWxzbywgaWYKKyAgICAgIHlvdSBhcmUgdW5sdWNreSBhbmQgaGF2ZSBhbiBpbml0aWFsIHN0YWNrIHBvaW50ZXIgbmVhciB0aGUgZW5kCisgICAgICBvZiBpdHMgY29udGFpbmluZyBwYWdlLCB0aGUgc2NhbiBtYXkgbWlzcyBhbGwgaW50ZXJlc3RpbmcKKyAgICAgIGZyYW1lcy48L3A+Cis8cD5CeSBkZWZhdWx0IHN0YWNrIHNjYW5uaW5nIGlzIGRpc2FibGVkLiAgVGhlIG5vcm1hbCB1c2UKKyAgICAgIGNhc2UgaXMgdG8gYXNrIGZvciBpdCB3aGVuIGEgc3RhY2sgdHJhY2Ugd291bGQgb3RoZXJ3aXNlIGJlIHZlcnkKKyAgICAgIHNob3J0LiAgU28sIHRvIGVuYWJsZSBpdCwKKyAgICAgIHVzZSA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPi0tdW53LXN0YWNrLXNjYW4tdGhyZXNoPW51bWJlcjwvY29kZT4uCisgICAgICBUaGlzIHJlcXVlc3RzIFZhbGdyaW5kIHRvIHRyeSB1c2luZyBzdGFjayBzY2FubmluZyB0byAiZXh0ZW5kIgorICAgICAgc3RhY2sgdHJhY2VzIHdoaWNoIGNvbnRhaW4gZmV3ZXIKKyAgICAgIHRoYW4gPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5udW1iZXI8L2NvZGU+IGZyYW1lcy48L3A+Cis8cD5JZiBzdGFjayBzY2FubmluZyBkb2VzIHRha2UgcGxhY2UsIGl0IHdpbGwgb25seSBnZW5lcmF0ZQorICAgICAgYXQgbW9zdCB0aGUgbnVtYmVyIG9mIGZyYW1lcyBzcGVjaWZpZWQKKyAgICAgIGJ5IDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+LS11bnctc3RhY2stc2Nhbi1mcmFtZXM8L2NvZGU+LgorICAgICAgVHlwaWNhbGx5LCBzdGFjayBzY2FubmluZyBnZW5lcmF0ZXMgc28gbWFueSBnYXJiYWdlIGVudHJpZXMgdGhhdAorICAgICAgdGhpcyB2YWx1ZSBpcyBzZXQgdG8gYSBsb3cgdmFsdWUgKDUpIGJ5IGRlZmF1bHQuICBJbiBubyBjYXNlCisgICAgICB3aWxsIGEgc3RhY2sgdHJhY2UgbGFyZ2VyIHRoYW4gdGhlIHZhbHVlIHNwZWNpZmllZAorICAgICAgYnkgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij4tLW51bS1jYWxsZXJzPC9jb2RlPiBiZQorICAgICAgY3JlYXRlZC48L3A+Cis8L2RkPgorPGR0PgorPGEgbmFtZT0ib3B0LmVycm9yLWxpbWl0Ij48L2E+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1lcnJvci1saW1pdD0mbHQ7eWVzfG5vJmd0OyBbZGVmYXVsdDogeWVzXSA8L2NvZGU+CisgICAgPC9zcGFuPgorPC9kdD4KKzxkZD48cD5XaGVuIGVuYWJsZWQsIFZhbGdyaW5kIHN0b3BzIHJlcG9ydGluZyBlcnJvcnMgYWZ0ZXIgMTAsMDAwLDAwMAorICAgICAgaW4gdG90YWwsIG9yIDEsMDAwIGRpZmZlcmVudCBvbmVzLCBoYXZlIGJlZW4gc2Vlbi4gIFRoaXMgaXMgdG8KKyAgICAgIHN0b3AgdGhlIGVycm9yIHRyYWNraW5nIG1hY2hpbmVyeSBmcm9tIGJlY29taW5nIGEgaHVnZSBwZXJmb3JtYW5jZQorICAgICAgb3ZlcmhlYWQgaW4gcHJvZ3JhbXMgd2l0aCBtYW55IGVycm9ycy48L3A+PC9kZD4KKzxkdD4KKzxhIG5hbWU9Im9wdC5lcnJvci1leGl0Y29kZSI+PC9hPjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tZXJyb3ItZXhpdGNvZGU9Jmx0O251bWJlciZndDsgW2RlZmF1bHQ6IDBdIDwvY29kZT4KKyAgICA8L3NwYW4+Cis8L2R0PgorPGRkPjxwPlNwZWNpZmllcyBhbiBhbHRlcm5hdGl2ZSBleGl0IGNvZGUgdG8gcmV0dXJuIGlmIFZhbGdyaW5kCisgICAgICByZXBvcnRlZCBhbnkgZXJyb3JzIGluIHRoZSBydW4uICBXaGVuIHNldCB0byB0aGUgZGVmYXVsdCB2YWx1ZQorICAgICAgKHplcm8pLCB0aGUgcmV0dXJuIHZhbHVlIGZyb20gVmFsZ3JpbmQgd2lsbCBhbHdheXMgYmUgdGhlIHJldHVybiAKKyAgICAgIHZhbHVlIG9mIHRoZSBwcm9jZXNzIGJlaW5nIHNpbXVsYXRlZC4gIFdoZW4gc2V0IHRvIGEgbm9uemVybyB2YWx1ZSwKKyAgICAgIHRoYXQgdmFsdWUgaXMgcmV0dXJuZWQgaW5zdGVhZCwgaWYgVmFsZ3JpbmQgZGV0ZWN0cyBhbnkgZXJyb3JzLgorICAgICAgVGhpcyBpcyB1c2VmdWwgZm9yIHVzaW5nIFZhbGdyaW5kIGFzIHBhcnQgb2YgYW4gYXV0b21hdGVkIHRlc3QKKyAgICAgIHN1aXRlLCBzaW5jZSBpdCBtYWtlcyBpdCBlYXN5IHRvIGRldGVjdCB0ZXN0IGNhc2VzIGZvciB3aGljaAorICAgICAgVmFsZ3JpbmQgaGFzIHJlcG9ydGVkIGVycm9ycywganVzdCBieSBpbnNwZWN0aW5nIHJldHVybiBjb2Rlcy48L3A+PC9kZD4KKzxkdD4KKzxhIG5hbWU9Im9wdC5lcnJvci1tYXJrZXJzIj48L2E+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1lcnJvci1tYXJrZXJzPSZsdDtiZWdpbiZndDssJmx0O2VuZCZndDsgW2RlZmF1bHQ6IG5vbmVdPC9jb2RlPgorICAgIDwvc3Bhbj4KKzwvZHQ+Cis8ZGQ+Cis8cD5XaGVuIGVycm9ycyBhcmUgb3V0cHV0IGFzIHBsYWluIHRleHQgKGkuZS4gWE1MIG5vdCB1c2VkKSwKKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tZXJyb3ItbWFya2VyczwvY29kZT4gaW5zdHJ1Y3RzIHRvIG91dHB1dCBhIGxpbmUKKyAgICAgIGNvbnRhaW5pbmcgdGhlIDxjb2RlIGNsYXNzPSJvcHRpb24iPmJlZ2luPC9jb2RlPiAoPGNvZGUgY2xhc3M9Im9wdGlvbiI+ZW5kPC9jb2RlPikKKyAgICAgIHN0cmluZyBiZWZvcmUgKGFmdGVyKSBlYWNoIGVycm9yLiA8L3A+Cis8cD4gU3VjaCBtYXJrZXIgbGluZXMgZmFjaWxpdGF0ZSBzZWFyY2hpbmcgZm9yIGVycm9ycyBhbmQvb3IKKyAgICAgIGV4dHJhY3RpbmcgZXJyb3JzIGluIGFuIG91dHB1dCBmaWxlIHRoYXQgY29udGFpbiB2YWxncmluZCBlcnJvcnMgbWl4ZWQKKyAgICAgIHdpdGggdGhlIHByb2dyYW0gb3V0cHV0LiA8L3A+Cis8cD4gTm90ZSB0aGF0IGVtcHR5IG1hcmtlcnMgYXJlIGFjY2VwdGVkLiBTbywgb25seSB1c2luZyBhIGJlZ2luCisgICAgICAob3IgYW4gZW5kKSBtYXJrZXIgaXMgcG9zc2libGUuPC9wPgorPC9kZD4KKzxkdD4KKzxhIG5hbWU9Im9wdC5zaWdpbGwtZGlhZ25vc3RpY3MiPjwvYT48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXNpZ2lsbC1kaWFnbm9zdGljcz0mbHQ7eWVzfG5vJmd0OyBbZGVmYXVsdDogeWVzXSA8L2NvZGU+CisgICAgPC9zcGFuPgorPC9kdD4KKzxkZD4KKzxwPkVuYWJsZS9kaXNhYmxlIHByaW50aW5nIG9mIGlsbGVnYWwgaW5zdHJ1Y3Rpb24gZGlhZ25vc3RpY3MuCisgICAgICBFbmFibGVkIGJ5IGRlZmF1bHQsIGJ1dCBkZWZhdWx0cyB0byBkaXNhYmxlZCB3aGVuCisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXF1aWV0PC9jb2RlPiBpcyBnaXZlbi4gVGhlIGRlZmF1bHQgY2FuIGFsd2F5cyBiZSBleHBsaWNpdGx5CisgICAgICBvdmVycmlkZGVuIGJ5IGdpdmluZyB0aGlzIG9wdGlvbi48L3A+Cis8cD5XaGVuIGVuYWJsZWQsIGEgd2FybmluZyBtZXNzYWdlIHdpbGwgYmUgcHJpbnRlZCwgYWxvbmcgd2l0aCBzb21lCisgICAgICBkaWFnbm9zdGljcywgd2hlbmV2ZXIgYW4gaW5zdHJ1Y3Rpb24gaXMgZW5jb3VudGVyZWQgdGhhdCBWYWxncmluZAorICAgICAgY2Fubm90IGRlY29kZSBvciB0cmFuc2xhdGUsIGJlZm9yZSB0aGUgcHJvZ3JhbSBpcyBnaXZlbiBhIFNJR0lMTCBzaWduYWwuCisgICAgICBPZnRlbiBhbiBpbGxlZ2FsIGluc3RydWN0aW9uIGluZGljYXRlcyBhIGJ1ZyBpbiB0aGUgcHJvZ3JhbSBvciBtaXNzaW5nCisgICAgICBzdXBwb3J0IGZvciB0aGUgcGFydGljdWxhciBpbnN0cnVjdGlvbiBpbiBWYWxncmluZC4gIEJ1dCBzb21lIHByb2dyYW1zCisgICAgICBkbyBkZWxpYmVyYXRlbHkgdHJ5IHRvIGV4ZWN1dGUgYW4gaW5zdHJ1Y3Rpb24gdGhhdCBtaWdodCBiZSBtaXNzaW5nCisgICAgICBhbmQgdHJhcCB0aGUgU0lHSUxMIHNpZ25hbCB0byBkZXRlY3QgcHJvY2Vzc29yIGZlYXR1cmVzLiAgVXNpbmcKKyAgICAgIHRoaXMgZmxhZyBtYWtlcyBpdCBwb3NzaWJsZSB0byBhdm9pZCB0aGUgZGlhZ25vc3RpYyBvdXRwdXQKKyAgICAgIHRoYXQgeW91IHdvdWxkIG90aGVyd2lzZSBnZXQgaW4gc3VjaCBjYXNlcy48L3A+Cis8L2RkPgorPGR0PgorPGEgbmFtZT0ib3B0LnNob3ctYmVsb3ctbWFpbiI+PC9hPjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tc2hvdy1iZWxvdy1tYWluPSZsdDt5ZXN8bm8mZ3Q7IFtkZWZhdWx0OiBub10gPC9jb2RlPgorICAgIDwvc3Bhbj4KKzwvZHQ+Cis8ZGQ+Cis8cD5CeSBkZWZhdWx0LCBzdGFjayB0cmFjZXMgZm9yIGVycm9ycyBkbyBub3Qgc2hvdyBhbnkKKyAgICAgIGZ1bmN0aW9ucyB0aGF0IGFwcGVhciBiZW5lYXRoIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+bWFpbjwvY29kZT4gYmVjYXVzZQorICAgICAgbW9zdCBvZiB0aGUgdGltZSBpdCdzIHVuaW50ZXJlc3RpbmcgQyBsaWJyYXJ5IHN0dWZmIGFuZC9vcgorICAgICAgZ29iYmxlZHlnb29rLiAgQWx0ZXJuYXRpdmVseSwgaWYgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5tYWluPC9jb2RlPiBpcyBub3QKKyAgICAgIHByZXNlbnQgaW4gdGhlIHN0YWNrIHRyYWNlLCBzdGFjayB0cmFjZXMgd2lsbCBub3Qgc2hvdyBhbnkgZnVuY3Rpb25zCisgICAgICBiZWxvdyA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPm1haW48L2NvZGU+LWxpa2UgZnVuY3Rpb25zIHN1Y2ggYXMgZ2xpYmMncworICAgICAgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5fX2xpYmNfc3RhcnRfbWFpbjwvY29kZT4uICAgRnVydGhlcm1vcmUsIGlmCisgICAgICA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPm1haW48L2NvZGU+LWxpa2UgZnVuY3Rpb25zIGFyZSBwcmVzZW50IGluIHRoZSB0cmFjZSwKKyAgICAgIHRoZXkgYXJlIG5vcm1hbGlzZWQgYXMgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj4oYmVsb3cgbWFpbik8L2NvZGU+LCBpbiBvcmRlciB0bworICAgICAgbWFrZSB0aGUgb3V0cHV0IG1vcmUgZGV0ZXJtaW5pc3RpYy48L3A+Cis8cD5JZiB0aGlzIG9wdGlvbiBpcyBlbmFibGVkLCBhbGwgc3RhY2sgdHJhY2UgZW50cmllcyB3aWxsIGJlCisgICAgICBzaG93biBhbmQgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5tYWluPC9jb2RlPi1saWtlIGZ1bmN0aW9ucyB3aWxsIG5vdCBiZQorICAgICAgbm9ybWFsaXNlZC48L3A+Cis8L2RkPgorPGR0PgorPGEgbmFtZT0ib3B0LmZ1bGxwYXRoLWFmdGVyIj48L2E+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1mdWxscGF0aC1hZnRlcj0mbHQ7c3RyaW5nJmd0OworICAgICAgICAgICAgICBbZGVmYXVsdDogZG9uJ3Qgc2hvdyBzb3VyY2UgcGF0aHNdIDwvY29kZT4KKyAgICA8L3NwYW4+Cis8L2R0PgorPGRkPgorPHA+QnkgZGVmYXVsdCBWYWxncmluZCBvbmx5IHNob3dzIHRoZSBmaWxlbmFtZXMgaW4gc3RhY2sKKyAgICAgIHRyYWNlcywgYnV0IG5vdCBmdWxsIHBhdGhzIHRvIHNvdXJjZSBmaWxlcy4gIFdoZW4gdXNpbmcgVmFsZ3JpbmQKKyAgICAgIGluIGxhcmdlIHByb2plY3RzIHdoZXJlIHRoZSBzb3VyY2VzIHJlc2lkZSBpbiBtdWx0aXBsZSBkaWZmZXJlbnQKKyAgICAgIGRpcmVjdG9yaWVzLCB0aGlzIGNhbiBiZSBpbmNvbnZlbmllbnQuCisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWZ1bGxwYXRoLWFmdGVyPC9jb2RlPiBwcm92aWRlcyBhIGZsZXhpYmxlIHNvbHV0aW9uCisgICAgICB0byB0aGlzIHByb2JsZW0uICBXaGVuIHRoaXMgb3B0aW9uIGlzIHByZXNlbnQsIHRoZSBwYXRoIHRvIGVhY2gKKyAgICAgIHNvdXJjZSBmaWxlIGlzIHNob3duLCB3aXRoIHRoZSBmb2xsb3dpbmcgYWxsLWltcG9ydGFudCBjYXZlYXQ6CisgICAgICBpZiA8Y29kZSBjbGFzcz0ib3B0aW9uIj5zdHJpbmc8L2NvZGU+IGlzIGZvdW5kIGluIHRoZSBwYXRoLCB0aGVuIHRoZSBwYXRoCisgICAgICB1cCB0byBhbmQgaW5jbHVkaW5nIDxjb2RlIGNsYXNzPSJvcHRpb24iPnN0cmluZzwvY29kZT4gaXMgb21pdHRlZCwgZWxzZSB0aGUKKyAgICAgIHBhdGggaXMgc2hvd24gdW5tb2RpZmllZC4gIE5vdGUgdGhhdCA8Y29kZSBjbGFzcz0ib3B0aW9uIj5zdHJpbmc8L2NvZGU+IGlzCisgICAgICBub3QgcmVxdWlyZWQgdG8gYmUgYSBwcmVmaXggb2YgdGhlIHBhdGguPC9wPgorPHA+Rm9yIGV4YW1wbGUsIGNvbnNpZGVyIGEgZmlsZSBuYW1lZAorICAgICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij4vaG9tZS9qYW5lZG9lL2JsYWgvc3JjL2Zvby9iYXIveHl6enkuYzwvY29kZT4uCisgICAgICBTcGVjaWZ5aW5nIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tZnVsbHBhdGgtYWZ0ZXI9L2hvbWUvamFuZWRvZS9ibGFoL3NyYy88L2NvZGU+CisgICAgICB3aWxsIGNhdXNlIFZhbGdyaW5kIHRvIHNob3cgdGhlIG5hbWUKKyAgICAgIGFzIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+Zm9vL2Jhci94eXp6eS5jPC9jb2RlPi48L3A+Cis8cD5CZWNhdXNlIHRoZSBzdHJpbmcgaXMgbm90IHJlcXVpcmVkIHRvIGJlIGEgcHJlZml4LAorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1mdWxscGF0aC1hZnRlcj1zcmMvPC9jb2RlPiB3aWxsIHByb2R1Y2UgdGhlIHNhbWUKKyAgICAgIG91dHB1dC4gIFRoaXMgaXMgdXNlZnVsIHdoZW4gdGhlIHBhdGggY29udGFpbnMgYXJiaXRyYXJ5CisgICAgICBtYWNoaW5lLWdlbmVyYXRlZCBjaGFyYWN0ZXJzLiAgRm9yIGV4YW1wbGUsIHRoZQorICAgICAgcGF0aAorICAgICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij4vbXkvYnVpbGQvZGlyL0MzMkExQjQ3L2JsYWgvc3JjL2Zvby94eXp6eTwvY29kZT4KKyAgICAgIGNhbiBiZSBwcnVuZWQgdG8gPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5mb28veHl6enk8L2NvZGU+CisgICAgICB1c2luZworICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1mdWxscGF0aC1hZnRlcj0vYmxhaC9zcmMvPC9jb2RlPi48L3A+Cis8cD5JZiB5b3Ugc2ltcGx5IHdhbnQgdG8gc2VlIHRoZSBmdWxsIHBhdGgsIGp1c3Qgc3BlY2lmeSBhbgorICAgICAgZW1wdHkgc3RyaW5nOiA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWZ1bGxwYXRoLWFmdGVyPTwvY29kZT4uICBUaGlzIGlzbid0IGEKKyAgICAgIHNwZWNpYWwgY2FzZSwgbWVyZWx5IGEgbG9naWNhbCBjb25zZXF1ZW5jZSBvZiB0aGUgYWJvdmUgcnVsZXMuPC9wPgorPHA+RmluYWxseSwgeW91IGNhbiB1c2UgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1mdWxscGF0aC1hZnRlcjwvY29kZT4KKyAgICAgIG11bHRpcGxlIHRpbWVzLiAgQW55IGFwcGVhcmFuY2Ugb2YgaXQgY2F1c2VzIFZhbGdyaW5kIHRvIHN3aXRjaAorICAgICAgdG8gcHJvZHVjaW5nIGZ1bGwgcGF0aHMgYW5kIGFwcGx5aW5nIHRoZSBhYm92ZSBmaWx0ZXJpbmcgcnVsZS4KKyAgICAgIEVhY2ggcHJvZHVjZWQgcGF0aCBpcyBjb21wYXJlZCBhZ2FpbnN0IGFsbAorICAgICAgdGhlIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tZnVsbHBhdGgtYWZ0ZXI8L2NvZGU+LXNwZWNpZmllZCBzdHJpbmdzLCBpbiB0aGUKKyAgICAgIG9yZGVyIHNwZWNpZmllZC4gIFRoZSBmaXJzdCBzdHJpbmcgdG8gbWF0Y2ggY2F1c2VzIHRoZSBwYXRoIHRvCisgICAgICBiZSB0cnVuY2F0ZWQgYXMgZGVzY3JpYmVkIGFib3ZlLiAgSWYgbm9uZSBtYXRjaCwgdGhlIGZ1bGwgcGF0aAorICAgICAgaXMgc2hvd24uICBUaGlzIGZhY2lsaXRhdGVzIGNob3BwaW5nIG9mZiBwcmVmaXhlcyB3aGVuIHRoZQorICAgICAgc291cmNlcyBhcmUgZHJhd24gZnJvbSBhIG51bWJlciBvZiB1bnJlbGF0ZWQgZGlyZWN0b3JpZXMuCisgICAgICA8L3A+Cis8L2RkPgorPGR0PgorPGEgbmFtZT0ib3B0LmV4dHJhLWRlYnVnaW5mby1wYXRoIj48L2E+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1leHRyYS1kZWJ1Z2luZm8tcGF0aD0mbHQ7cGF0aCZndDsgW2RlZmF1bHQ6IHVuZGVmaW5lZCBhbmQgdW51c2VkXSA8L2NvZGU+CisgICAgPC9zcGFuPgorPC9kdD4KKzxkZD4KKzxwPkJ5IGRlZmF1bHQgVmFsZ3JpbmQgc2VhcmNoZXMgaW4gc2V2ZXJhbCB3ZWxsLWtub3duIHBhdGhzCisgICAgICBmb3IgZGVidWcgb2JqZWN0cywgc3VjaAorICAgICAgYXMgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij4vdXNyL2xpYi9kZWJ1Zy88L2NvZGU+LjwvcD4KKzxwPkhvd2V2ZXIsIHRoZXJlIG1heSBiZSBzY2VuYXJpb3Mgd2hlcmUgeW91IG1heSB3aXNoIHRvIHB1dAorICAgICAgZGVidWcgb2JqZWN0cyBhdCBhbiBhcmJpdHJhcnkgbG9jYXRpb24sIHN1Y2ggYXMgZXh0ZXJuYWwgc3RvcmFnZQorICAgICAgd2hlbiBydW5uaW5nIFZhbGdyaW5kIG9uIGEgbW9iaWxlIGRldmljZSB3aXRoIGxpbWl0ZWQgbG9jYWwKKyAgICAgIHN0b3JhZ2UuICBBbm90aGVyIGV4YW1wbGUgbWlnaHQgYmUgYSBzaXR1YXRpb24gd2hlcmUgeW91IGRvIG5vdAorICAgICAgaGF2ZSBwZXJtaXNzaW9uIHRvIGluc3RhbGwgZGVidWcgb2JqZWN0IHBhY2thZ2VzIG9uIHRoZSBzeXN0ZW0KKyAgICAgIHdoZXJlIHlvdSBhcmUgcnVubmluZyBWYWxncmluZC48L3A+Cis8cD5JbiB0aGVzZSBzY2VuYXJpb3MsIHlvdSBtYXkgcHJvdmlkZSBhbiBhYnNvbHV0ZSBwYXRoIGFzIGFuIGV4dHJhLAorICAgICAgZmluYWwgcGxhY2UgZm9yIFZhbGdyaW5kIHRvIHNlYXJjaCBmb3IgZGVidWcgb2JqZWN0cyBieSBzcGVjaWZ5aW5nCisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWV4dHJhLWRlYnVnaW5mby1wYXRoPS9wYXRoL3RvL2RlYnVnL29iamVjdHM8L2NvZGU+LgorICAgICAgVGhlIGdpdmVuIHBhdGggd2lsbCBiZSBwcmVwZW5kZWQgdG8gdGhlIGFic29sdXRlIHBhdGggbmFtZSBvZgorICAgICAgdGhlIHNlYXJjaGVkLWZvciBvYmplY3QuICBGb3IgZXhhbXBsZSwgaWYgVmFsZ3JpbmQgaXMgbG9va2luZworICAgICAgZm9yIHRoZSBkZWJ1Z2luZm8KKyAgICAgIGZvciA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPi93L3gveS96ei5zbzwvY29kZT4KKyAgICAgIGFuZCA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWV4dHJhLWRlYnVnaW5mby1wYXRoPS9hL2IvYzwvY29kZT4gaXMgc3BlY2lmaWVkLAorICAgICAgaXQgd2lsbCBsb29rIGZvciBhIGRlYnVnIG9iamVjdCBhdAorICAgICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij4vYS9iL2Mvdy94L3kvenouc288L2NvZGU+LjwvcD4KKzxwPlRoaXMgZmxhZyBzaG91bGQgb25seSBiZSBzcGVjaWZpZWQgb25jZS4gIElmIGl0IGlzCisgICAgICBzcGVjaWZpZWQgbXVsdGlwbGUgdGltZXMsIG9ubHkgdGhlIGxhc3QgaW5zdGFuY2UgaXMKKyAgICAgIGhvbm91cmVkLjwvcD4KKzwvZGQ+Cis8ZHQ+Cis8YSBuYW1lPSJvcHQuZGVidWdpbmZvLXNlcnZlciI+PC9hPjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tZGVidWdpbmZvLXNlcnZlcj1pcGFkZHI6cG9ydCBbZGVmYXVsdDogdW5kZWZpbmVkIGFuZCB1bnVzZWRdPC9jb2RlPgorICAgIDwvc3Bhbj4KKzwvZHQ+Cis8ZGQ+Cis8cD5UaGlzIGlzIGEgbmV3LCBleHBlcmltZW50YWwsIGZlYXR1cmUgaW50cm9kdWNlZCBpbiB2ZXJzaW9uCisgICAgICAzLjkuMC48L3A+Cis8cD5JbiBzb21lIHNjZW5hcmlvcyBpdCBtYXkgYmUgY29udmVuaWVudCB0byByZWFkIGRlYnVnaW5mbworICAgICAgZnJvbSBvYmplY3RzIHN0b3JlZCBvbiBhIGRpZmZlcmVudCBtYWNoaW5lLiAgV2l0aCB0aGlzIGZsYWcsCisgICAgICBWYWxncmluZCB3aWxsIHF1ZXJ5IGEgZGVidWdpbmZvIHNlcnZlciBydW5uaW5nCisgICAgICBvbiA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmlwYWRkcjwvY29kZT4gYW5kIGxpc3RlbmluZyBvbgorICAgICAgcG9ydCA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPnBvcnQ8L2NvZGU+LCBpZiBpdCBjYW5ub3QgZmluZAorICAgICAgdGhlIGRlYnVnaW5mbyBvYmplY3QgaW4gdGhlIGxvY2FsIGZpbGVzeXN0ZW0uPC9wPgorPHA+VGhlIGRlYnVnaW5mbyBzZXJ2ZXIgbXVzdCBhY2NlcHQgVENQIGNvbm5lY3Rpb25zIG9uCisgICAgICBwb3J0IDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+cG9ydDwvY29kZT4uICBUaGUgZGVidWdpbmZvCisgICAgICBzZXJ2ZXIgaXMgY29udGFpbmVkIGluIHRoZSBzb3VyY2UKKyAgICAgIGZpbGUgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5hdXhwcm9ncy92YWxncmluZC1kaS1zZXJ2ZXIuYzwvY29kZT4uCisgICAgICBJdCB3aWxsIG9ubHkgc2VydmUgZnJvbSB0aGUgZGlyZWN0b3J5IGl0IGlzIHN0YXJ0ZWQKKyAgICAgIGluLiAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5wb3J0PC9jb2RlPiBkZWZhdWx0cyB0byAxNTAwIGluCisgICAgICBib3RoIGNsaWVudCBhbmQgc2VydmVyIGlmIG5vdCBzcGVjaWZpZWQuPC9wPgorPHA+SWYgVmFsZ3JpbmQgbG9va3MgZm9yIHRoZSBkZWJ1Z2luZm8gZm9yCisgICAgICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPi93L3gveS96ei5zbzwvY29kZT4gYnkgdXNpbmcgdGhlCisgICAgICBkZWJ1Z2luZm8gc2VydmVyLCBpdCB3aWxsIHN0cmlwIHRoZSBwYXRobmFtZSBjb21wb25lbnRzIGFuZAorICAgICAgbWVyZWx5IHJlcXVlc3QgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij56ei5zbzwvY29kZT4gb24gdGhlCisgICAgICBzZXJ2ZXIuICBUaGF0IGluIHR1cm4gd2lsbCBsb29rIG9ubHkgaW4gaXRzIGN1cnJlbnQgd29ya2luZworICAgICAgZGlyZWN0b3J5IGZvciBhIG1hdGNoaW5nIGRlYnVnaW5mbyBvYmplY3QuPC9wPgorPHA+VGhlIGRlYnVnaW5mbyBkYXRhIGlzIHRyYW5zbWl0dGVkIGluIHNtYWxsIGZyYWdtZW50cyAoOAorICAgICAgS0IpIGFzIHJlcXVlc3RlZCBieSBWYWxncmluZC4gIEVhY2ggYmxvY2sgaXMgY29tcHJlc3NlZCB1c2luZworICAgICAgTFpPIHRvIHJlZHVjZSB0cmFuc21pc3Npb24gdGltZS4gIFRoZSBpbXBsZW1lbnRhdGlvbiBoYXMgYmVlbgorICAgICAgdHVuZWQgZm9yIGJlc3QgcGVyZm9ybWFuY2Ugb3ZlciBhIHNpbmdsZS1zdGFnZSA4MDIuMTFnIChXaUZpKQorICAgICAgbmV0d29yayBsaW5rLjwvcD4KKzxwPk5vdGUgdGhhdCBjaGVja3MgZm9yIG1hdGNoaW5nIHByaW1hcnkgdnMgZGVidWcgb2JqZWN0cywKKyAgICAgIHVzaW5nIEdOVSBkZWJ1Z2xpbmsgQ1JDIHNjaGVtZSwgYXJlIHBlcmZvcm1lZCBldmVuIHdoZW4gdXNpbmcKKyAgICAgIHRoZSBkZWJ1Z2luZm8gc2VydmVyLiAgVG8gZGlzYWJsZSBzdWNoIGNoZWNraW5nLCB5b3UgbmVlZCB0bworICAgICAgYWxzbyBzcGVjaWZ5CisgICAgICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPi0tYWxsb3ctbWlzbWF0Y2hlZC1kZWJ1Z2luZm89eWVzPC9jb2RlPi4KKyAgICAgIDwvcD4KKzxwPkJ5IGRlZmF1bHQgdGhlIFZhbGdyaW5kIGJ1aWxkIHN5c3RlbSB3aWxsCisgICAgICBidWlsZCA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPnZhbGdyaW5kLWRpLXNlcnZlcjwvY29kZT4gZm9yCisgICAgICB0aGUgdGFyZ2V0IHBsYXRmb3JtLCB3aGljaCBpcyBhbG1vc3QgY2VydGFpbmx5IG5vdCB3aGF0IHlvdQorICAgICAgd2FudC4gIFNvIGZhciB3ZSBoYXZlIGJlZW4gdW5hYmxlIHRvIGZpbmQgb3V0IGhvdyB0byBnZXQKKyAgICAgIGF1dG9tYWtlL2F1dG9jb25mIHRvIGJ1aWxkIGl0IGZvciB0aGUgYnVpbGQgcGxhdGZvcm0uICBJZgorICAgICAgeW91IHdhbnQgdG8gdXNlIGl0LCB5b3Ugd2lsbCBoYXZlIHRvIHJlY29tcGlsZSBpdCBieSBoYW5kIHVzaW5nCisgICAgICB0aGUgY29tbWFuZCBzaG93biBhdCB0aGUgdG9wCisgICAgICBvZiA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmF1eHByb2dzL3ZhbGdyaW5kLWRpLXNlcnZlci5jPC9jb2RlPi48L3A+Cis8L2RkPgorPGR0PgorPGEgbmFtZT0ib3B0LmFsbG93LW1pc21hdGNoZWQtZGVidWdpbmZvIj48L2E+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1hbGxvdy1taXNtYXRjaGVkLWRlYnVnaW5mbz1ub3x5ZXMgW25vXSA8L2NvZGU+CisgICAgPC9zcGFuPgorPC9kdD4KKzxkZD4KKzxwPldoZW4gcmVhZGluZyBkZWJ1Z2luZm8gZnJvbSBzZXBhcmF0ZSBkZWJ1Z2luZm8gb2JqZWN0cywKKyAgICAgIFZhbGdyaW5kIHdpbGwgYnkgZGVmYXVsdCBjaGVjayB0aGF0IHRoZSBtYWluIGFuZCBkZWJ1Z2luZm8KKyAgICAgIG9iamVjdHMgbWF0Y2gsIHVzaW5nIHRoZSBHTlUgZGVidWdsaW5rIG1lY2hhbmlzbS4gIFRoaXMKKyAgICAgIGd1YXJhbnRlZXMgdGhhdCBpdCBkb2VzIG5vdCByZWFkIGRlYnVnaW5mbyBmcm9tIG91dCBvZiBkYXRlCisgICAgICBkZWJ1Z2luZm8gb2JqZWN0cywgYW5kIGFsc28gZW5zdXJlcyB0aGF0IFZhbGdyaW5kIGNhbid0IGNyYXNoIGFzCisgICAgICBhIHJlc3VsdCBvZiBtaXNtYXRjaGVzLjwvcD4KKzxwPlRoaXMgY2hlY2sgY2FuIGJlIG92ZXJyaWRkZW4gdXNpbmcgCisgICAgICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPi0tYWxsb3ctbWlzbWF0Y2hlZC1kZWJ1Z2luZm89eWVzPC9jb2RlPi4KKyAgICAgIFRoaXMgbWF5IGJlIHVzZWZ1bCB3aGVuIHRoZSBkZWJ1Z2luZm8gYW5kIG1haW4gb2JqZWN0cyBoYXZlIG5vdAorICAgICAgYmVlbiBzcGxpdCBpbiB0aGUgcHJvcGVyIHdheS4gIEJlIGNhcmVmdWwgd2hlbiB1c2luZyB0aGlzLAorICAgICAgdGhvdWdoOiBpdCBkaXNhYmxlcyBhbGwgY29uc2lzdGVuY3kgY2hlY2tpbmcsIGFuZCBWYWxncmluZCBoYXMKKyAgICAgIGJlZW4gb2JzZXJ2ZWQgdG8gY3Jhc2ggd2hlbiB0aGUgbWFpbiBhbmQgZGVidWdpbmZvIG9iamVjdHMgZG9uJ3QKKyAgICAgIG1hdGNoLjwvcD4KKzwvZGQ+Cis8ZHQ+Cis8YSBuYW1lPSJvcHQuc3VwcHJlc3Npb25zIj48L2E+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1zdXBwcmVzc2lvbnM9Jmx0O2ZpbGVuYW1lJmd0OyBbZGVmYXVsdDogJFBSRUZJWC9saWIvdmFsZ3JpbmQvZGVmYXVsdC5zdXBwXSA8L2NvZGU+CisgICAgPC9zcGFuPgorPC9kdD4KKzxkZD48cD5TcGVjaWZpZXMgYW4gZXh0cmEgZmlsZSBmcm9tIHdoaWNoIHRvIHJlYWQgZGVzY3JpcHRpb25zIG9mCisgICAgICBlcnJvcnMgdG8gc3VwcHJlc3MuICBZb3UgbWF5IHVzZSB1cCB0byAxMDAgZXh0cmEgc3VwcHJlc3Npb24KKyAgICAgIGZpbGVzLjwvcD48L2RkPgorPGR0PgorPGEgbmFtZT0ib3B0Lmdlbi1zdXBwcmVzc2lvbnMiPjwvYT48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWdlbi1zdXBwcmVzc2lvbnM9Jmx0O3llc3xub3xhbGwmZ3Q7IFtkZWZhdWx0OiBub10gPC9jb2RlPgorICAgIDwvc3Bhbj4KKzwvZHQ+Cis8ZGQ+Cis8cD5XaGVuIHNldCB0byA8Y29kZSBjbGFzcz0idmFybmFtZSI+eWVzPC9jb2RlPiwgVmFsZ3JpbmQgd2lsbCBwYXVzZQorICAgICAgYWZ0ZXIgZXZlcnkgZXJyb3Igc2hvd24gYW5kIHByaW50IHRoZSBsaW5lOgorICAgICAgPC9wPgorPGRpdiBjbGFzcz0ibGl0ZXJhbGxheW91dCI+PHA+PGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij6goKCgLS0tLaBQcmludKBzdXBwcmVzc2lvbqA/oC0tLaBbUmV0dXJuL04vbi9ZL3kvQy9jXaAtLS0tPC9jb2RlPjwvcD48L2Rpdj4KKzxwPgorCisgICAgICBQcmVzc2luZyA8Y29kZSBjbGFzcz0idmFybmFtZSI+UmV0PC9jb2RlPiwgb3IgPGNvZGUgY2xhc3M9InZhcm5hbWUiPk4gUmV0PC9jb2RlPiBvcgorICAgICAgPGNvZGUgY2xhc3M9InZhcm5hbWUiPm4gUmV0PC9jb2RlPiwgY2F1c2VzIFZhbGdyaW5kIGNvbnRpbnVlIGV4ZWN1dGlvbiB3aXRob3V0CisgICAgICBwcmludGluZyBhIHN1cHByZXNzaW9uIGZvciB0aGlzIGVycm9yLjwvcD4KKzxwPlByZXNzaW5nIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5ZIFJldDwvY29kZT4gb3IKKyAgICAgIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj55IFJldDwvY29kZT4gY2F1c2VzIFZhbGdyaW5kIHRvIHdyaXRlIGEgc3VwcHJlc3Npb24KKyAgICAgIGZvciB0aGlzIGVycm9yLiAgWW91IGNhbiB0aGVuIGN1dCBhbmQgcGFzdGUgaXQgaW50byBhIHN1cHByZXNzaW9uIGZpbGUKKyAgICAgIGlmIHlvdSBkb24ndCB3YW50IHRvIGhlYXIgYWJvdXQgdGhlIGVycm9yIGluIHRoZSBmdXR1cmUuPC9wPgorPHA+V2hlbiBzZXQgdG8gPGNvZGUgY2xhc3M9InZhcm5hbWUiPmFsbDwvY29kZT4sIFZhbGdyaW5kIHdpbGwgcHJpbnQgYQorICAgICAgc3VwcHJlc3Npb24gZm9yIGV2ZXJ5IHJlcG9ydGVkIGVycm9yLCB3aXRob3V0IHF1ZXJ5aW5nIHRoZQorICAgICAgdXNlci48L3A+Cis8cD5UaGlzIG9wdGlvbiBpcyBwYXJ0aWN1bGFybHkgdXNlZnVsIHdpdGggQysrIHByb2dyYW1zLCBhcyBpdAorICAgICAgcHJpbnRzIG91dCB0aGUgc3VwcHJlc3Npb25zIHdpdGggbWFuZ2xlZCBuYW1lcywgYXMKKyAgICAgIHJlcXVpcmVkLjwvcD4KKzxwPk5vdGUgdGhhdCB0aGUgc3VwcHJlc3Npb25zIHByaW50ZWQgYXJlIGFzIHNwZWNpZmljIGFzCisgICAgICBwb3NzaWJsZS4gIFlvdSBtYXkgd2FudCB0byBjb21tb24gdXAgc2ltaWxhciBvbmVzLCBieSBhZGRpbmcKKyAgICAgIHdpbGRjYXJkcyB0byBmdW5jdGlvbiBuYW1lcywgYW5kIGJ5IHVzaW5nIGZyYW1lLWxldmVsIHdpbGRjYXJkcy4KKyAgICAgIFRoZSB3aWxkY2FyZGluZyBmYWNpbGl0aWVzIGFyZSBwb3dlcmZ1bCB5ZXQgZmxleGlibGUsIGFuZCB3aXRoIGEKKyAgICAgIGJpdCBvZiBjYXJlZnVsIGVkaXRpbmcsIHlvdSBtYXkgYmUgYWJsZSB0byBzdXBwcmVzcyBhIHdob2xlCisgICAgICBmYW1pbHkgb2YgcmVsYXRlZCBlcnJvcnMgd2l0aCBvbmx5IGEgZmV3IHN1cHByZXNzaW9ucy4gIAorICAgICAgCisgICAgICA8L3A+Cis8cD5Tb21ldGltZXMgdHdvIGRpZmZlcmVudCBlcnJvcnMKKyAgICAgIGFyZSBzdXBwcmVzc2VkIGJ5IHRoZSBzYW1lIHN1cHByZXNzaW9uLCBpbiB3aGljaCBjYXNlIFZhbGdyaW5kCisgICAgICB3aWxsIG91dHB1dCB0aGUgc3VwcHJlc3Npb24gbW9yZSB0aGFuIG9uY2UsIGJ1dCB5b3Ugb25seSBuZWVkIHRvCisgICAgICBoYXZlIG9uZSBjb3B5IGluIHlvdXIgc3VwcHJlc3Npb24gZmlsZSAoYnV0IGhhdmluZyBtb3JlIHRoYW4gb25lCisgICAgICB3b24ndCBjYXVzZSBwcm9ibGVtcykuICBBbHNvLCB0aGUgc3VwcHJlc3Npb24gbmFtZSBpcyBnaXZlbiBhcworICAgICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij4mbHQ7aW5zZXJ0IGEgc3VwcHJlc3Npb24gbmFtZQorICAgICAgaGVyZSZndDs8L2NvZGU+OyB0aGUgbmFtZSBkb2Vzbid0IHJlYWxseSBtYXR0ZXIsIGl0J3MKKyAgICAgIG9ubHkgdXNlZCB3aXRoIHRoZSA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tdjwvY29kZT4gb3B0aW9uIHdoaWNoIHByaW50cyBvdXQgYWxsCisgICAgICB1c2VkIHN1cHByZXNzaW9uIHJlY29yZHMuPC9wPgorPC9kZD4KKzxkdD4KKzxhIG5hbWU9Im9wdC5pbnB1dC1mZCI+PC9hPjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0taW5wdXQtZmQ9Jmx0O251bWJlciZndDsgW2RlZmF1bHQ6IDAsIHN0ZGluXSA8L2NvZGU+CisgICAgPC9zcGFuPgorPC9kdD4KKzxkZD48cD5XaGVuIHVzaW5nCisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWdlbi1zdXBwcmVzc2lvbnM9eWVzPC9jb2RlPiwgVmFsZ3JpbmQgd2lsbCBzdG9wIHNvIGFzCisgICAgICB0byByZWFkIGtleWJvYXJkIGlucHV0IGZyb20geW91IHdoZW4gZWFjaCBlcnJvciBvY2N1cnMuICBCeQorICAgICAgZGVmYXVsdCBpdCByZWFkcyBmcm9tIHRoZSBzdGFuZGFyZCBpbnB1dCAoc3RkaW4pLCB3aGljaCBpcworICAgICAgcHJvYmxlbWF0aWMgZm9yIHByb2dyYW1zIHdoaWNoIGNsb3NlIHN0ZGluLiAgVGhpcyBvcHRpb24gYWxsb3dzCisgICAgICB5b3UgdG8gc3BlY2lmeSBhbiBhbHRlcm5hdGl2ZSBmaWxlIGRlc2NyaXB0b3IgZnJvbSB3aGljaCB0byByZWFkCisgICAgICBpbnB1dC48L3A+PC9kZD4KKzxkdD4KKzxhIG5hbWU9Im9wdC5kc3ltdXRpbCI+PC9hPjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tZHN5bXV0aWw9bm98eWVzIFt5ZXNdIDwvY29kZT4KKyAgICA8L3NwYW4+Cis8L2R0PgorPGRkPgorPHA+VGhpcyBvcHRpb24gaXMgb25seSByZWxldmFudCB3aGVuIHJ1bm5pbmcgVmFsZ3JpbmQgb24KKyAgICAgIE1hYyBPUyBYLjwvcD4KKzxwPk1hYyBPUyBYIHVzZXMgYSBkZWZlcnJlZCBkZWJ1ZyBpbmZvcm1hdGlvbiAoZGVidWdpbmZvKQorICAgICAgbGlua2luZyBzY2hlbWUuICBXaGVuIG9iamVjdCBmaWxlcyBjb250YWluaW5nIGRlYnVnaW5mbyBhcmUKKyAgICAgIGxpbmtlZCBpbnRvIGEgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij4uZHlsaWI8L2NvZGU+IG9yIGFuCisgICAgICBleGVjdXRhYmxlLCB0aGUgZGVidWdpbmZvIGlzIG5vdCBjb3BpZWQgaW50byB0aGUgZmluYWwgZmlsZS4KKyAgICAgIEluc3RlYWQsIHRoZSBkZWJ1Z2luZm8gbXVzdCBiZSBsaW5rZWQgbWFudWFsbHkgYnkKKyAgICAgIHJ1bm5pbmcgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5kc3ltdXRpbDwvY29kZT4sIGEKKyAgICAgIHN5c3RlbS1wcm92aWRlZCB1dGlsaXR5LCBvbiB0aGUgZXhlY3V0YWJsZQorICAgICAgb3IgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij4uZHlsaWI8L2NvZGU+LiAgVGhlIHJlc3VsdGluZworICAgICAgY29tYmluZWQgZGVidWdpbmZvIGlzIHBsYWNlZCBpbiBhIGRpcmVjdG9yeSBhbG9uZ3NpZGUgdGhlCisgICAgICBleGVjdXRhYmxlIG9yIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+LmR5bGliPC9jb2RlPiwgYnV0IHdpdGgKKyAgICAgIHRoZSBleHRlbnNpb24gPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij4uZFNZTTwvY29kZT4uPC9wPgorPHA+V2l0aCA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWRzeW11dGlsPW5vPC9jb2RlPiwgVmFsZ3JpbmQKKyAgICAgIHdpbGwgZGV0ZWN0IGNhc2VzIHdoZXJlIHRoZQorICAgICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij4uZFNZTTwvY29kZT4gZGlyZWN0b3J5IGlzIGVpdGhlcgorICAgICAgbWlzc2luZywgb3IgaXMgcHJlc2VudCBidXQgZG9lcyBub3QgYXBwZWFyIHRvIG1hdGNoIHRoZQorICAgICAgYXNzb2NpYXRlZCBleGVjdXRhYmxlIG9yIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+LmR5bGliPC9jb2RlPiwKKyAgICAgIG1vc3QgbGlrZWx5IGJlY2F1c2UgaXQgaXMgb3V0IG9mIGRhdGUuICBJbiB0aGVzZSBjYXNlcywgVmFsZ3JpbmQKKyAgICAgIHdpbGwgcHJpbnQgYSB3YXJuaW5nIG1lc3NhZ2UgYnV0IHRha2Ugbm8gZnVydGhlciBhY3Rpb24uPC9wPgorPHA+V2l0aCA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWRzeW11dGlsPXllczwvY29kZT4sIFZhbGdyaW5kCisgICAgICB3aWxsLCBpbiBzdWNoIGNhc2VzLCBhdXRvbWF0aWNhbGx5CisgICAgICBydW4gPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5kc3ltdXRpbDwvY29kZT4gYXMgbmVjZXNzYXJ5IHRvCisgICAgICBicmluZyB0aGUgZGVidWdpbmZvIHVwIHRvIGRhdGUuICBGb3IgYWxsIHByYWN0aWNhbCBwdXJwb3NlcywgaWYKKyAgICAgIHlvdSBhbHdheXMgdXNlIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tZHN5bXV0aWw9eWVzPC9jb2RlPiwgdGhlbgorICAgICAgdGhlcmUgaXMgbmV2ZXIgYW55IG5lZWQgdG8KKyAgICAgIHJ1biA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmRzeW11dGlsPC9jb2RlPiBtYW51YWxseSBvciBhcyBwYXJ0CisgICAgICBvZiB5b3VyIGFwcGxpY2F0aW9ucydzIGJ1aWxkIHN5c3RlbSwgc2luY2UgVmFsZ3JpbmQgd2lsbCBydW4gaXQKKyAgICAgIGFzIG5lY2Vzc2FyeS48L3A+Cis8cD5WYWxncmluZCB3aWxsIG5vdCBhdHRlbXB0IHRvCisgICAgICBydW4gPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5kc3ltdXRpbDwvY29kZT4gb24gYW55IAorICAgICAgZXhlY3V0YWJsZSBvciBsaWJyYXJ5IGluCisgICAgICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPi91c3IvPC9jb2RlPiwKKyAgICAgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+L2Jpbi88L2NvZGU+LAorICAgICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij4vc2Jpbi88L2NvZGU+LAorICAgICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij4vb3B0LzwvY29kZT4sCisgICAgICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPi9zdy88L2NvZGU+LAorICAgICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij4vU3lzdGVtLzwvY29kZT4sCisgICAgICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPi9MaWJyYXJ5LzwvY29kZT4gb3IKKyAgICAgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+L0FwcGxpY2F0aW9ucy88L2NvZGU+CisgICAgICBzaW5jZSA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmRzeW11dGlsPC9jb2RlPiB3aWxsIGFsd2F5cyBmYWlsCisgICAgICBpbiBzdWNoIHNpdHVhdGlvbnMuICBJdCBmYWlscyBib3RoIGJlY2F1c2UgdGhlIGRlYnVnaW5mbyBmb3IKKyAgICAgIHN1Y2ggcHJlLWluc3RhbGxlZCBzeXN0ZW0gY29tcG9uZW50cyBpcyBub3QgYXZhaWxhYmxlIGFueXdoZXJlLAorICAgICAgYW5kIGFsc28gYmVjYXVzZSBpdCB3b3VsZCByZXF1aXJlIHdyaXRlIHByaXZpbGVnZXMgaW4gdGhvc2UKKyAgICAgIGRpcmVjdG9yaWVzLjwvcD4KKzxwPkJlIGNhcmVmdWwgd2hlbgorICAgICAgdXNpbmcgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1kc3ltdXRpbD15ZXM8L2NvZGU+LCBzaW5jZSBpdCB3aWxsCisgICAgICBjYXVzZSBwcmUtZXhpc3RpbmcgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij4uZFNZTTwvY29kZT4KKyAgICAgIGRpcmVjdG9yaWVzIHRvIGJlIHNpbGVudGx5IGRlbGV0ZWQgYW5kIHJlLWNyZWF0ZWQuICBBbHNvIG5vdGUgdGhhdAorICAgICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5kc3ltdXRpbDwvY29kZT4gaXMgcXVpdGUgc2xvdywgc29tZXRpbWVzCisgICAgICBleGNlc3NpdmVseSBzby48L3A+Cis8L2RkPgorPGR0PgorPGEgbmFtZT0ib3B0Lm1heC1zdGFja2ZyYW1lIj48L2E+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1tYXgtc3RhY2tmcmFtZT0mbHQ7bnVtYmVyJmd0OyBbZGVmYXVsdDogMjAwMDAwMF0gPC9jb2RlPgorICAgIDwvc3Bhbj4KKzwvZHQ+Cis8ZGQ+Cis8cD5UaGUgbWF4aW11bSBzaXplIG9mIGEgc3RhY2sgZnJhbWUuICBJZiB0aGUgc3RhY2sgcG9pbnRlciBtb3ZlcyBieQorICAgICAgbW9yZSB0aGFuIHRoaXMgYW1vdW50IHRoZW4gVmFsZ3JpbmQgd2lsbCBhc3N1bWUgdGhhdAorICAgICAgdGhlIHByb2dyYW0gaXMgc3dpdGNoaW5nIHRvIGEgZGlmZmVyZW50IHN0YWNrLjwvcD4KKzxwPllvdSBtYXkgbmVlZCB0byB1c2UgdGhpcyBvcHRpb24gaWYgeW91ciBwcm9ncmFtIGhhcyBsYXJnZQorICAgICAgc3RhY2stYWxsb2NhdGVkIGFycmF5cy4gIFZhbGdyaW5kIGtlZXBzIHRyYWNrIG9mIHlvdXIgcHJvZ3JhbSdzCisgICAgICBzdGFjayBwb2ludGVyLiAgSWYgaXQgY2hhbmdlcyBieSBtb3JlIHRoYW4gdGhlIHRocmVzaG9sZCBhbW91bnQsCisgICAgICBWYWxncmluZCBhc3N1bWVzIHlvdXIgcHJvZ3JhbSBpcyBzd2l0Y2hpbmcgdG8gYSBkaWZmZXJlbnQgc3RhY2ssCisgICAgICBhbmQgTWVtY2hlY2sgYmVoYXZlcyBkaWZmZXJlbnRseSB0aGFuIGl0IHdvdWxkIGZvciBhIHN0YWNrIHBvaW50ZXIKKyAgICAgIGNoYW5nZSBzbWFsbGVyIHRoYW4gdGhlIHRocmVzaG9sZC4gIFVzdWFsbHkgdGhpcyBoZXVyaXN0aWMgd29ya3MKKyAgICAgIHdlbGwuICBIb3dldmVyLCBpZiB5b3VyIHByb2dyYW0gYWxsb2NhdGVzIGxhcmdlIHN0cnVjdHVyZXMgb24gdGhlCisgICAgICBzdGFjaywgdGhpcyBoZXVyaXN0aWMgd2lsbCBiZSBmb29sZWQsIGFuZCBNZW1jaGVjayB3aWxsCisgICAgICBzdWJzZXF1ZW50bHkgcmVwb3J0IGxhcmdlIG51bWJlcnMgb2YgaW52YWxpZCBzdGFjayBhY2Nlc3Nlcy4gIFRoaXMKKyAgICAgIG9wdGlvbiBhbGxvd3MgeW91IHRvIGNoYW5nZSB0aGUgdGhyZXNob2xkIHRvIGEgZGlmZmVyZW50CisgICAgICB2YWx1ZS48L3A+Cis8cD5Zb3Ugc2hvdWxkIG9ubHkgY29uc2lkZXIgdXNlIG9mIHRoaXMgb3B0aW9uIGlmIFZhbGdyaW5kJ3MKKyAgICAgIGRlYnVnIG91dHB1dCBkaXJlY3RzIHlvdSB0byBkbyBzby4gIEluIHRoYXQgY2FzZSBpdCB3aWxsIHRlbGwgeW91CisgICAgICB0aGUgbmV3IHRocmVzaG9sZCB5b3Ugc2hvdWxkIHNwZWNpZnkuPC9wPgorPHA+SW4gZ2VuZXJhbCwgYWxsb2NhdGluZyBsYXJnZSBzdHJ1Y3R1cmVzIG9uIHRoZSBzdGFjayBpcyBhCisgICAgICBiYWQgaWRlYSwgYmVjYXVzZSB5b3UgY2FuIGVhc2lseSBydW4gb3V0IG9mIHN0YWNrIHNwYWNlLAorICAgICAgZXNwZWNpYWxseSBvbiBzeXN0ZW1zIHdpdGggbGltaXRlZCBtZW1vcnkgb3Igd2hpY2ggZXhwZWN0IHRvCisgICAgICBzdXBwb3J0IGxhcmdlIG51bWJlcnMgb2YgdGhyZWFkcyBlYWNoIHdpdGggYSBzbWFsbCBzdGFjaywgYW5kIGFsc28KKyAgICAgIGJlY2F1c2UgdGhlIGVycm9yIGNoZWNraW5nIHBlcmZvcm1lZCBieSBNZW1jaGVjayBpcyBtb3JlIGVmZmVjdGl2ZQorICAgICAgZm9yIGhlYXAtYWxsb2NhdGVkIGRhdGEgdGhhbiBmb3Igc3RhY2stYWxsb2NhdGVkIGRhdGEuICBJZiB5b3UKKyAgICAgIGhhdmUgdG8gdXNlIHRoaXMgb3B0aW9uLCB5b3UgbWF5IHdpc2ggdG8gY29uc2lkZXIgcmV3cml0aW5nIHlvdXIKKyAgICAgIGNvZGUgdG8gYWxsb2NhdGUgb24gdGhlIGhlYXAgcmF0aGVyIHRoYW4gb24gdGhlIHN0YWNrLjwvcD4KKzwvZGQ+Cis8ZHQ+Cis8YSBuYW1lPSJvcHQubWFpbi1zdGFja3NpemUiPjwvYT48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLW1haW4tc3RhY2tzaXplPSZsdDtudW1iZXImZ3Q7CisgICAgICAgICAgICAgICBbZGVmYXVsdDogdXNlIGN1cnJlbnQgJ3VsaW1pdCcgdmFsdWVdIDwvY29kZT4KKyAgICA8L3NwYW4+Cis8L2R0PgorPGRkPgorPHA+U3BlY2lmaWVzIHRoZSBzaXplIG9mIHRoZSBtYWluIHRocmVhZCdzIHN0YWNrLjwvcD4KKzxwPlRvIHNpbXBsaWZ5IGl0cyBtZW1vcnkgbWFuYWdlbWVudCwgVmFsZ3JpbmQgcmVzZXJ2ZXMgYWxsCisgICAgICByZXF1aXJlZCBzcGFjZSBmb3IgdGhlIG1haW4gdGhyZWFkJ3Mgc3RhY2sgYXQgc3RhcnR1cC4gIFRoYXQKKyAgICAgIG1lYW5zIGl0IG5lZWRzIHRvIGtub3cgdGhlIHJlcXVpcmVkIHN0YWNrIHNpemUgYXQKKyAgICAgIHN0YXJ0dXAuPC9wPgorPHA+QnkgZGVmYXVsdCwgVmFsZ3JpbmQgdXNlcyB0aGUgY3VycmVudCAidWxpbWl0IiB2YWx1ZSBmb3IKKyAgICAgIHRoZSBzdGFjayBzaXplLCBvciAxNiBNQiwgd2hpY2hldmVyIGlzIGxvd2VyLiAgSW4gbWFueSBjYXNlcworICAgICAgdGhpcyBnaXZlcyBhIHN0YWNrIHNpemUgaW4gdGhlIHJhbmdlIDggdG8gMTYgTUIsIHdoaWNoIGFsbW9zdAorICAgICAgbmV2ZXIgb3ZlcmZsb3dzIGZvciBtb3N0IGFwcGxpY2F0aW9ucy48L3A+Cis8cD5JZiB5b3UgbmVlZCBhIGxhcmdlciB0b3RhbCBzdGFjayBzaXplLAorICAgICAgdXNlIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tbWFpbi1zdGFja3NpemU8L2NvZGU+IHRvIHNwZWNpZnkgaXQuICBPbmx5IHNldAorICAgICAgaXQgYXMgaGlnaCBhcyB5b3UgbmVlZCwgc2luY2UgcmVzZXJ2aW5nIGZhciBtb3JlIHNwYWNlIHRoYW4geW91CisgICAgICBuZWVkICh0aGF0IGlzLCBodW5kcmVkcyBvZiBtZWdhYnl0ZXMgbW9yZSB0aGFuIHlvdSBuZWVkKQorICAgICAgY29uc3RyYWlucyBWYWxncmluZCdzIG1lbW9yeSBhbGxvY2F0b3JzIGFuZCBtYXkgcmVkdWNlIHRoZSB0b3RhbAorICAgICAgYW1vdW50IG9mIG1lbW9yeSB0aGF0IFZhbGdyaW5kIGNhbiB1c2UuICBUaGlzIGlzIG9ubHkgcmVhbGx5IG9mCisgICAgICBzaWduaWZpY2FuY2Ugb24gMzItYml0IG1hY2hpbmVzLjwvcD4KKzxwPk9uIExpbnV4LCB5b3UgbWF5IHJlcXVlc3QgYSBzdGFjayBvZiBzaXplIHVwIHRvIDJHQi4KKyAgICAgIFZhbGdyaW5kIHdpbGwgc3RvcCB3aXRoIGEgZGlhZ25vc3RpYyBtZXNzYWdlIGlmIHRoZSBzdGFjayBjYW5ub3QKKyAgICAgIGJlIGFsbG9jYXRlZC48L3A+Cis8cD48Y29kZSBjbGFzcz0ib3B0aW9uIj4tLW1haW4tc3RhY2tzaXplPC9jb2RlPiBvbmx5IGFmZmVjdHMgdGhlIHN0YWNrCisgICAgICBzaXplIGZvciB0aGUgcHJvZ3JhbSdzIGluaXRpYWwgdGhyZWFkLiAgSXQgaGFzIG5vIGJlYXJpbmcgb24gdGhlCisgICAgICBzaXplIG9mIHRocmVhZCBzdGFja3MsIGFzIFZhbGdyaW5kIGRvZXMgbm90IGFsbG9jYXRlCisgICAgICB0aG9zZS48L3A+Cis8cD5Zb3UgbWF5IG5lZWQgdG8gdXNlIGJvdGggPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1tYWluLXN0YWNrc2l6ZTwvY29kZT4KKyAgICAgIGFuZCA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLW1heC1zdGFja2ZyYW1lPC9jb2RlPiB0b2dldGhlci4gIEl0IGlzIGltcG9ydGFudAorICAgICAgdG8gdW5kZXJzdGFuZCB0aGF0IDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tbWFpbi1zdGFja3NpemU8L2NvZGU+IHNldHMgdGhlCisgICAgICBtYXhpbXVtIHRvdGFsIHN0YWNrIHNpemUsCisgICAgICB3aGlsc3QgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1tYXgtc3RhY2tmcmFtZTwvY29kZT4gc3BlY2lmaWVzIHRoZSBsYXJnZXN0CisgICAgICBzaXplIG9mIGFueSBvbmUgc3RhY2sgZnJhbWUuICBZb3Ugd2lsbCBoYXZlIHRvIHdvcmsgb3V0CisgICAgICB0aGUgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1tYWluLXN0YWNrc2l6ZTwvY29kZT4gdmFsdWUgZm9yIHlvdXJzZWxmCisgICAgICAodXN1YWxseSwgaWYgeW91ciBhcHBsaWNhdGlvbnMgc2VnZmF1bHRzKS4gIEJ1dCBWYWxncmluZCB3aWxsCisgICAgICB0ZWxsIHlvdSB0aGUgbmVlZGVkIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tbWF4LXN0YWNrZnJhbWU8L2NvZGU+IHNpemUsIGlmCisgICAgICBuZWNlc3NhcnkuPC9wPgorPHA+QXMgZGlzY3Vzc2VkIGZ1cnRoZXIgaW4gdGhlIGRlc2NyaXB0aW9uCisgICAgICBvZiA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLW1heC1zdGFja2ZyYW1lPC9jb2RlPiwgYSByZXF1aXJlbWVudCBmb3IgYSBsYXJnZQorICAgICAgc3RhY2sgaXMgYSBzaWduIG9mIHBvdGVudGlhbCBwb3J0YWJpbGl0eSBwcm9ibGVtcy4gIFlvdSBhcmUgYmVzdAorICAgICAgYWR2aXNlZCB0byBwbGFjZSBhbGwgbGFyZ2UgZGF0YSBpbiBoZWFwLWFsbG9jYXRlZCBtZW1vcnkuPC9wPgorPC9kZD4KKzxkdD4KKzxhIG5hbWU9Im9wdC5tYXgtdGhyZWFkcyI+PC9hPjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tbWF4LXRocmVhZHM9Jmx0O251bWJlciZndDsgW2RlZmF1bHQ6IDUwMF0gPC9jb2RlPgorICAgIDwvc3Bhbj4KKzwvZHQ+Cis8ZGQ+PHA+QnkgZGVmYXVsdCwgVmFsZ3JpbmQgY2FuIGhhbmRsZSB0byB1cCB0byA1MDAgdGhyZWFkcy4KKyAgICAgIE9jY2FzaW9uYWxseSwgdGhhdCBudW1iZXIgaXMgdG9vIHNtYWxsLiBVc2UgdGhpcyBvcHRpb24gdG8KKyAgICAgIHByb3ZpZGUgYSBkaWZmZXJlbnQgbGltaXQuIEUuZy4KKyAgICAgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+LS1tYXgtdGhyZWFkcz0zMDAwPC9jb2RlPi4KKyAgICAgIDwvcD48L2RkPgorPC9kbD4KKzwvZGl2PgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MiI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9Im1hbnVhbC1jb3JlLm1hbGxvY29wdHMiPjwvYT4yLjYuNC6gbWFsbG9jLXJlbGF0ZWQgT3B0aW9uczwvaDM+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD48YSBuYW1lPSJtYWxsb2MtcmVsYXRlZC5vcHRzLnBhcmEiPjwvYT5Gb3IgdG9vbHMgdGhhdCB1c2UgdGhlaXIgb3duIHZlcnNpb24gb2YKKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+bWFsbG9jPC9jb2RlPiAoZS5nLiBNZW1jaGVjaywKK01hc3NpZiwgSGVsZ3JpbmQsIERSRCksIHRoZSBmb2xsb3dpbmcgb3B0aW9ucyBhcHBseS48L3A+Cis8ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPgorPGEgbmFtZT0ibWFsbG9jLXJlbGF0ZWQub3B0cy5saXN0Ij48L2E+PGRsIGNsYXNzPSJ2YXJpYWJsZWxpc3QiPgorPGR0PgorPGEgbmFtZT0ib3B0LmFsaWdubWVudCI+PC9hPjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tYWxpZ25tZW50PSZsdDtudW1iZXImZ3Q7IFtkZWZhdWx0OiA4IG9yIDE2LCBkZXBlbmRpbmcgb24gdGhlIHBsYXRmb3JtXSA8L2NvZGU+CisgICAgPC9zcGFuPgorPC9kdD4KKzxkZD48cD5CeSBkZWZhdWx0IFZhbGdyaW5kJ3MgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5tYWxsb2M8L2NvZGU+LAorICAgICAgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5yZWFsbG9jPC9jb2RlPiwgZXRjLCByZXR1cm4gYSBibG9jayB3aG9zZSBzdGFydGluZworICAgICAgYWRkcmVzcyBpcyA4LWJ5dGUgYWxpZ25lZCBvciAxNi1ieXRlIGFsaWduZWQgKHRoZSB2YWx1ZSBkZXBlbmRzIG9uIHRoZQorICAgICAgcGxhdGZvcm0gYW5kIG1hdGNoZXMgdGhlIHBsYXRmb3JtIGRlZmF1bHQpLiAgVGhpcyBvcHRpb24gYWxsb3dzIHlvdSB0bworICAgICAgc3BlY2lmeSBhIGRpZmZlcmVudCBhbGlnbm1lbnQuICBUaGUgc3VwcGxpZWQgdmFsdWUgbXVzdCBiZSBncmVhdGVyCisgICAgICB0aGFuIG9yIGVxdWFsIHRvIHRoZSBkZWZhdWx0LCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gNDA5NiwgYW5kIG11c3QgYmUKKyAgICAgIGEgcG93ZXIgb2YgdHdvLjwvcD48L2RkPgorPGR0PgorPGEgbmFtZT0ib3B0LnJlZHpvbmUtc2l6ZSI+PC9hPjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tcmVkem9uZS1zaXplPSZsdDtudW1iZXImZ3Q7IFtkZWZhdWx0OiBkZXBlbmRzIG9uIHRoZSB0b29sXSA8L2NvZGU+CisgICAgPC9zcGFuPgorPC9kdD4KKzxkZD4KKzxwPiBWYWxncmluZCdzIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+bWFsbG9jLCByZWFsbG9jLDwvY29kZT4gZXRjLCBhZGQKKyAgICAgIHBhZGRpbmcgYmxvY2tzIGJlZm9yZSBhbmQgYWZ0ZXIgZWFjaCBoZWFwIGJsb2NrIGFsbG9jYXRlZCBieSB0aGUKKyAgICAgIHByb2dyYW0gYmVpbmcgcnVuLiBTdWNoIHBhZGRpbmcgYmxvY2tzIGFyZSBjYWxsZWQgcmVkem9uZXMuICBUaGUKKyAgICAgIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSByZWR6b25lIHNpemUgZGVwZW5kcyBvbiB0aGUgdG9vbC4gIEZvcgorICAgICAgZXhhbXBsZSwgTWVtY2hlY2sgYWRkcyBhbmQgcHJvdGVjdHMgYSBtaW5pbXVtIG9mIDE2IGJ5dGVzIGJlZm9yZQorICAgICAgYW5kIGFmdGVyIGVhY2ggYmxvY2sgYWxsb2NhdGVkIGJ5IHRoZSBjbGllbnQuICBUaGlzIGFsbG93cyBpdCB0bworICAgICAgZGV0ZWN0IGJsb2NrIHVuZGVycnVucyBvciBvdmVycnVucyBvZiB1cCB0byAxNiBieXRlcy4KKyAgICAgIDwvcD4KKzxwPkluY3JlYXNpbmcgdGhlIHJlZHpvbmUgc2l6ZSBtYWtlcyBpdCBwb3NzaWJsZSB0byBkZXRlY3QKKyAgICAgIG92ZXJydW5zIG9mIGxhcmdlciBkaXN0YW5jZXMsIGJ1dCBpbmNyZWFzZXMgdGhlIGFtb3VudCBvZiBtZW1vcnkKKyAgICAgIHVzZWQgYnkgVmFsZ3JpbmQuICBEZWNyZWFzaW5nIHRoZSByZWR6b25lIHNpemUgd2lsbCByZWR1Y2UgdGhlCisgICAgICBtZW1vcnkgbmVlZGVkIGJ5IFZhbGdyaW5kIGJ1dCBhbHNvIHJlZHVjZXMgdGhlIGNoYW5jZXMgb2YKKyAgICAgIGRldGVjdGluZyBvdmVyL3VuZGVycnVucywgc28gaXMgbm90IHJlY29tbWVuZGVkLjwvcD4KKzwvZGQ+Cis8L2RsPgorPC9kaXY+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0ibWFudWFsLWNvcmUucmFyZW9wdHMiPjwvYT4yLjYuNS6gVW5jb21tb24gT3B0aW9uczwvaDM+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD48YSBuYW1lPSJ1bmNvbW1vbi5vcHRzLnBhcmEiPjwvYT5UaGVzZSBvcHRpb25zIGFwcGx5IHRvIGFsbCB0b29scywgYXMgdGhleQorYWZmZWN0IGNlcnRhaW4gb2JzY3VyZSB3b3JraW5ncyBvZiB0aGUgVmFsZ3JpbmQgY29yZS4gIE1vc3QgcGVvcGxlIHdvbid0CituZWVkIHRvIHVzZSB0aGVtLjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+Cis8YSBuYW1lPSJ1bmNvbW1vbi5vcHRzLmxpc3QiPjwvYT48ZGwgY2xhc3M9InZhcmlhYmxlbGlzdCI+Cis8ZHQ+Cis8YSBuYW1lPSJvcHQuc21jLWNoZWNrIj48L2E+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1zbWMtY2hlY2s9Jmx0O25vbmV8c3RhY2t8YWxsfGFsbC1ub24tZmlsZSZndDsKKyAgICAgIFtkZWZhdWx0OiBhbGwtbm9uLWZpbGUgZm9yIHg4Ni9hbWQ2NC9zMzkweCwgc3RhY2sgZm9yIG90aGVyIGFyY2hzXSA8L2NvZGU+CisgICAgPC9zcGFuPgorPC9kdD4KKzxkZD4KKzxwPlRoaXMgb3B0aW9uIGNvbnRyb2xzIFZhbGdyaW5kJ3MgZGV0ZWN0aW9uIG9mIHNlbGYtbW9kaWZ5aW5nCisgICAgICAgY29kZS4gIElmIG5vIGNoZWNraW5nIGlzIGRvbmUsIHdoZW4gYSBwcm9ncmFtIGV4ZWN1dGVzIHNvbWUgY29kZSwgdGhlbgorICAgICAgIG92ZXJ3cml0ZXMgaXQgd2l0aCBuZXcgY29kZSwgYW5kIGV4ZWN1dGVzIHRoZSBuZXcgY29kZSwgVmFsZ3JpbmQgd2lsbAorICAgICAgIGNvbnRpbnVlIHRvIGV4ZWN1dGUgdGhlIHRyYW5zbGF0aW9ucyBpdCBtYWRlIGZvciB0aGUgb2xkIGNvZGUuICBUaGlzCisgICAgICAgd2lsbCBsaWtlbHkgbGVhZCB0byBpbmNvcnJlY3QgYmVoYXZpb3VyIGFuZC9vciBjcmFzaGVzLjwvcD4KKzxwPkZvciAibW9kZXJuIiBhcmNoaXRlY3R1cmVzIC0tIGFueXRoaW5nIHRoYXQncyBub3QgeDg2LAorICAgICAgICBhbWQ2NCBvciBzMzkweCAtLSB0aGUgZGVmYXVsdCBpcyA8Y29kZSBjbGFzcz0idmFybmFtZSI+c3RhY2s8L2NvZGU+LgorICAgICAgICBUaGlzIGlzIGJlY2F1c2UgYSBjb3JyZWN0IHByb2dyYW0gbXVzdCB0YWtlIGV4cGxpY2l0IGFjdGlvbgorICAgICAgICB0byByZWVzdGFibGlzaCBELUkgY2FjaGUgY29oZXJlbmNlIGZvbGxvd2luZyBjb2RlCisgICAgICAgIG1vZGlmaWNhdGlvbi4gIFZhbGdyaW5kIG9ic2VydmVzIGFuZCBob25vdXJzIHN1Y2ggYWN0aW9ucywKKyAgICAgICAgd2l0aCB0aGUgcmVzdWx0IHRoYXQgc2VsZi1tb2RpZnlpbmcgY29kZSBpcyB0cmFuc3BhcmVudGx5CisgICAgICAgIGhhbmRsZWQgd2l0aCB6ZXJvIGV4dHJhIGNvc3QuPC9wPgorPHA+Rm9yIHg4NiwgYW1kNjQgYW5kIHMzOTB4LCB0aGUgcHJvZ3JhbSBpcyBub3QgcmVxdWlyZWQgdG8KKyAgICAgICAgbm90aWZ5IHRoZSBoYXJkd2FyZSBvZiByZXF1aXJlZCBELUkgY29oZXJlbmNlIHN5bmNpbmcuICBIZW5jZQorICAgICAgICB0aGUgZGVmYXVsdCBpcyA8Y29kZSBjbGFzcz0idmFybmFtZSI+YWxsLW5vbi1maWxlPC9jb2RlPiwgd2hpY2ggY292ZXJzCisgICAgICAgIHRoZSBub3JtYWwgY2FzZSBvZiBnZW5lcmF0aW5nIGNvZGUgaW50byBhbiBhbm9ueW1vdXMKKyAgICAgICAgKG5vbi1maWxlLWJhY2tlZCkgbW1hcCdkIGFyZWEuPC9wPgorPHA+VGhlIG1lYW5pbmdzIG9mIHRoZSBmb3VyIGF2YWlsYWJsZSBzZXR0aW5ncyBhcmUgYXMKKyAgICAgICAgZm9sbG93cy4gIE5vIGRldGVjdGlvbiAoPGNvZGUgY2xhc3M9InZhcm5hbWUiPm5vbmU8L2NvZGU+KSwKKyAgICAgICAgZGV0ZWN0IHNlbGYtbW9kaWZ5aW5nIGNvZGUKKyAgICAgICAgb24gdGhlIHN0YWNrICh3aGljaCBpcyB1c2VkIGJ5IEdDQyB0byBpbXBsZW1lbnQgbmVzdGVkCisgICAgICAgIGZ1bmN0aW9ucykgKDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5zdGFjazwvY29kZT4pLCBkZXRlY3Qgc2VsZi1tb2RpZnlpbmcgY29kZQorICAgICAgICBldmVyeXdoZXJlICg8Y29kZSBjbGFzcz0idmFybmFtZSI+YWxsPC9jb2RlPiksIGFuZCBkZXRlY3QKKyAgICAgICAgc2VsZi1tb2RpZnlpbmcgY29kZSBldmVyeXdoZXJlIGV4Y2VwdCBpbiBmaWxlLWJhY2tlZAorICAgICAgICBtYXBwaW5ncyAoPGNvZGUgY2xhc3M9InZhcm5hbWUiPmFsbC1ub24tZmlsZTwvY29kZT4pLjwvcD4KKzxwPlJ1bm5pbmcgd2l0aCA8Y29kZSBjbGFzcz0idmFybmFtZSI+YWxsPC9jb2RlPiB3aWxsIHNsb3cgVmFsZ3JpbmQKKyAgICAgICAgZG93biBub3RpY2VhYmx5LiAgUnVubmluZyB3aXRoIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5ub25lPC9jb2RlPiB3aWxsCisgICAgICAgIHJhcmVseSBzcGVlZCB0aGluZ3MgdXAsIHNpbmNlIHZlcnkgbGl0dGxlIGNvZGUgZ2V0cworICAgICAgICBkeW5hbWljYWxseSBnZW5lcmF0ZWQgaW4gbW9zdCBwcm9ncmFtcy4gIFRoZQorICAgICAgICA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPlZBTEdSSU5EX0RJU0NBUkRfVFJBTlNMQVRJT05TPC9jb2RlPiBjbGllbnQKKyAgICAgICAgcmVxdWVzdCBpcyBhbiBhbHRlcm5hdGl2ZSB0byA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXNtYy1jaGVjaz1hbGw8L2NvZGU+CisgICAgICAgIGFuZCA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXNtYy1jaGVjaz1hbGwtbm9uLWZpbGU8L2NvZGU+CisgICAgICAgIHRoYXQgcmVxdWlyZXMgbW9yZSBwcm9ncmFtbWVyIGVmZm9ydCBidXQgYWxsb3dzIFZhbGdyaW5kIHRvIHJ1bgorICAgICAgICB5b3VyIHByb2dyYW0gZmFzdGVyLCBieSB0ZWxsaW5nIGl0IHByZWNpc2VseSB3aGVuIHRyYW5zbGF0aW9ucworICAgICAgICBuZWVkIHRvIGJlIHJlLW1hZGUuCisgICAgICAgIAorICAgICAgICA8L3A+Cis8cD48Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXNtYy1jaGVjaz1hbGwtbm9uLWZpbGU8L2NvZGU+IHByb3ZpZGVzIGEKKyAgICAgICBjaGVhcGVyIGJ1dCBtb3JlIGxpbWl0ZWQgdmVyc2lvbgorICAgICAgIG9mIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tc21jLWNoZWNrPWFsbDwvY29kZT4uICBJdCBhZGRzIGNoZWNrcyB0byBhbnkKKyAgICAgICB0cmFuc2xhdGlvbnMgdGhhdCBkbyBub3Qgb3JpZ2luYXRlIGZyb20gZmlsZS1iYWNrZWQgbWVtb3J5CisgICAgICAgbWFwcGluZ3MuICBUeXBpY2FsIGFwcGxpY2F0aW9ucyB0aGF0IGdlbmVyYXRlIGNvZGUsIGZvciBleGFtcGxlCisgICAgICAgSklUcyBpbiB3ZWIgYnJvd3NlcnMsIGdlbmVyYXRlIGNvZGUgaW50byBhbm9ueW1vdXMgbW1hcGVkIGFyZWFzLAorICAgICAgIHdoZXJlYXMgdGhlICJmaXhlZCIgY29kZSBvZiB0aGUgYnJvd3NlciBhbHdheXMgbGl2ZXMgaW4KKyAgICAgICBmaWxlLWJhY2tlZCBtYXBwaW5ncy4gIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tc21jLWNoZWNrPWFsbC1ub24tZmlsZTwvY29kZT4KKyAgICAgICB0YWtlcyBhZHZhbnRhZ2Ugb2YgdGhpcyBvYnNlcnZhdGlvbiwgbGltaXRpbmcgdGhlIG92ZXJoZWFkIG9mCisgICAgICAgY2hlY2tpbmcgdG8gY29kZSB3aGljaCBpcyBsaWtlbHkgdG8gYmUgSklUIGdlbmVyYXRlZC48L3A+Cis8L2RkPgorPGR0PgorPGEgbmFtZT0ib3B0LnJlYWQtaW5saW5lLWluZm8iPjwvYT48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXJlYWQtaW5saW5lLWluZm89Jmx0O3llc3xubyZndDsgW2RlZmF1bHQ6IHNlZSBiZWxvd10gPC9jb2RlPgorICAgIDwvc3Bhbj4KKzwvZHQ+Cis8ZGQ+Cis8cD5XaGVuIGVuYWJsZWQsIFZhbGdyaW5kIHdpbGwgcmVhZCBpbmZvcm1hdGlvbiBhYm91dCBpbmxpbmVkCisgICAgICBmdW5jdGlvbiBjYWxscyBmcm9tIERXQVJGMyBkZWJ1ZyBpbmZvLiAgVGhpcyBzbG93cyBWYWxncmluZAorICAgICAgc3RhcnR1cCBhbmQgbWFrZXMgaXQgdXNlIG1vcmUgbWVtb3J5ICh0eXBpY2FsbHkgZm9yIGVhY2ggaW5saW5lZAorICAgICAgcGllY2Ugb2YgY29kZSwgNiB3b3JkcyBhbmQgc3BhY2UgZm9yIHRoZSBmdW5jdGlvbiBuYW1lKSwgYnV0IGl0CisgICAgICByZXN1bHRzIGluIG1vcmUgZGVzY3JpcHRpdmUgc3RhY2t0cmFjZXMuICBGb3IgdGhlIDMuMTAuMAorICAgICAgcmVsZWFzZSwgdGhpcyBmdW5jdGlvbmFsaXR5IGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvbmx5IGZvciBMaW51eCwKKyAgICAgIEFuZHJvaWQgYW5kIFNvbGFyaXMgdGFyZ2V0cyBhbmQgb25seSBmb3IgdGhlIHRvb2xzIE1lbWNoZWNrLCBIZWxncmluZAorICAgICAgYW5kIERSRC4gIEhlcmUgaXMgYW4gZXhhbXBsZSBvZiBzb21lIHN0YWNrdHJhY2VzIHdpdGgKKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tcmVhZC1pbmxpbmUtaW5mbz1ubzwvY29kZT46Cis8L3A+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Cis9PTE1MzgwPT0gQ29uZGl0aW9uYWwganVtcCBvciBtb3ZlIGRlcGVuZHMgb24gdW5pbml0aWFsaXNlZCB2YWx1ZShzKQorPT0xNTM4MD09ICAgIGF0IDB4ODA0ODRFQTogbWFpbiAoaW5saW5mby5jOjYpCis9PTE1MzgwPT0gCis9PTE1MzgwPT0gQ29uZGl0aW9uYWwganVtcCBvciBtb3ZlIGRlcGVuZHMgb24gdW5pbml0aWFsaXNlZCB2YWx1ZShzKQorPT0xNTM4MD09ICAgIGF0IDB4ODA0ODU1MDogZnVuX25vbmlubGluZSAoaW5saW5mby5jOjYpCis9PTE1MzgwPT0gICAgYnkgMHg4MDQ4NTBFOiBtYWluIChpbmxpbmZvLmM6MzQpCis9PTE1MzgwPT0gCis9PTE1MzgwPT0gQ29uZGl0aW9uYWwganVtcCBvciBtb3ZlIGRlcGVuZHMgb24gdW5pbml0aWFsaXNlZCB2YWx1ZShzKQorPT0xNTM4MD09ICAgIGF0IDB4ODA0ODUyMDogbWFpbiAoaW5saW5mby5jOjYpCis8L3ByZT4KKzxwPkFuZCBoZXJlIGFyZSB0aGUgc2FtZSBlcnJvcnMgd2l0aAorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1yZWFkLWlubGluZS1pbmZvPXllczwvY29kZT46PC9wPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPgorPT0xNTM3Nz09IENvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKKz09MTUzNzc9PSAgICBhdCAweDgwNDg0RUE6IGZ1bl9kIChpbmxpbmZvLmM6NikKKz09MTUzNzc9PSAgICBieSAweDgwNDg0RUE6IGZ1bl9jIChpbmxpbmZvLmM6MTQpCis9PTE1Mzc3PT0gICAgYnkgMHg4MDQ4NEVBOiBmdW5fYiAoaW5saW5mby5jOjIwKQorPT0xNTM3Nz09ICAgIGJ5IDB4ODA0ODRFQTogZnVuX2EgKGlubGluZm8uYzoyNikKKz09MTUzNzc9PSAgICBieSAweDgwNDg0RUE6IG1haW4gKGlubGluZm8uYzozMykKKz09MTUzNzc9PSAKKz09MTUzNzc9PSBDb25kaXRpb25hbCBqdW1wIG9yIG1vdmUgZGVwZW5kcyBvbiB1bmluaXRpYWxpc2VkIHZhbHVlKHMpCis9PTE1Mzc3PT0gICAgYXQgMHg4MDQ4NTUwOiBmdW5fZCAoaW5saW5mby5jOjYpCis9PTE1Mzc3PT0gICAgYnkgMHg4MDQ4NTUwOiBmdW5fbm9uaW5saW5lIChpbmxpbmZvLmM6NDEpCis9PTE1Mzc3PT0gICAgYnkgMHg4MDQ4NTBFOiBtYWluIChpbmxpbmZvLmM6MzQpCis9PTE1Mzc3PT0gCis9PTE1Mzc3PT0gQ29uZGl0aW9uYWwganVtcCBvciBtb3ZlIGRlcGVuZHMgb24gdW5pbml0aWFsaXNlZCB2YWx1ZShzKQorPT0xNTM3Nz09ICAgIGF0IDB4ODA0ODUyMDogZnVuX2QgKGlubGluZm8uYzo2KQorPT0xNTM3Nz09ICAgIGJ5IDB4ODA0ODUyMDogbWFpbiAoaW5saW5mby5jOjM1KQorPC9wcmU+Cis8L2RkPgorPGR0PgorPGEgbmFtZT0ib3B0LnJlYWQtdmFyLWluZm8iPjwvYT48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXJlYWQtdmFyLWluZm89Jmx0O3llc3xubyZndDsgW2RlZmF1bHQ6IG5vXSA8L2NvZGU+CisgICAgPC9zcGFuPgorPC9kdD4KKzxkZD4KKzxwPldoZW4gZW5hYmxlZCwgVmFsZ3JpbmQgd2lsbCByZWFkIGluZm9ybWF0aW9uIGFib3V0CisgICAgICB2YXJpYWJsZSB0eXBlcyBhbmQgbG9jYXRpb25zIGZyb20gRFdBUkYzIGRlYnVnIGluZm8uCisgICAgICBUaGlzIHNsb3dzIFZhbGdyaW5kIHN0YXJ0dXAgc2lnbmlmaWNhbnRseSBhbmQgbWFrZXMgaXQgdXNlIHNpZ25pZmljYW50bHkKKyAgICAgIG1vcmUgbWVtb3J5LCBidXQgZm9yIHRoZSB0b29scyB0aGF0IGNhbiB0YWtlIGFkdmFudGFnZSBvZiBpdCAoTWVtY2hlY2ssCisgICAgICBIZWxncmluZCwgRFJEKSBpdCBjYW4gcmVzdWx0IGluIG1vcmUgcHJlY2lzZSBlcnJvciBtZXNzYWdlcy4gIEZvciBleGFtcGxlLAorICAgICAgaGVyZSBhcmUgc29tZSBzdGFuZGFyZCBlcnJvcnMgaXNzdWVkIGJ5IE1lbWNoZWNrOjwvcD4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KKz09MTUzNjM9PSBVbmluaXRpYWxpc2VkIGJ5dGUocykgZm91bmQgZHVyaW5nIGNsaWVudCBjaGVjayByZXF1ZXN0Cis9PTE1MzYzPT0gICAgYXQgMHg4MDQ4NEE5OiBjcm9hayAodmFyaW5mbzEuYzoyOCkKKz09MTUzNjM9PSAgICBieSAweDgwNDg1NDQ6IG1haW4gKHZhcmluZm8xLmM6NTUpCis9PTE1MzYzPT0gIEFkZHJlc3MgMHg4MDQ5N2Y3IGlzIDcgYnl0ZXMgaW5zaWRlIGRhdGEgc3ltYm9sICJnbG9iYWxfaTIiCis9PTE1MzYzPT0gCis9PTE1MzYzPT0gVW5pbml0aWFsaXNlZCBieXRlKHMpIGZvdW5kIGR1cmluZyBjbGllbnQgY2hlY2sgcmVxdWVzdAorPT0xNTM2Mz09ICAgIGF0IDB4ODA0ODRBOTogY3JvYWsgKHZhcmluZm8xLmM6MjgpCis9PTE1MzYzPT0gICAgYnkgMHg4MDQ4NTUwOiBtYWluICh2YXJpbmZvMS5jOjU2KQorPT0xNTM2Mz09ICBBZGRyZXNzIDB4YmVhMGQwY2MgaXMgb24gdGhyZWFkIDEncyBzdGFjaworPT0xNTM2Mz09ICBpbiBmcmFtZSAjMSwgY3JlYXRlZCBieSBtYWluICh2YXJpbmZvMS5jOjQ1KQorPC9wcmU+Cis8cD5BbmQgaGVyZSBhcmUgdGhlIHNhbWUgZXJyb3JzIHdpdGgKKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tcmVhZC12YXItaW5mbz15ZXM8L2NvZGU+OjwvcD4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KKz09MTUzNzA9PSBVbmluaXRpYWxpc2VkIGJ5dGUocykgZm91bmQgZHVyaW5nIGNsaWVudCBjaGVjayByZXF1ZXN0Cis9PTE1MzcwPT0gICAgYXQgMHg4MDQ4NEE5OiBjcm9hayAodmFyaW5mbzEuYzoyOCkKKz09MTUzNzA9PSAgICBieSAweDgwNDg1NDQ6IG1haW4gKHZhcmluZm8xLmM6NTUpCis9PTE1MzcwPT0gIExvY2F0aW9uIDB4ODA0OTdmNyBpcyAwIGJ5dGVzIGluc2lkZSBnbG9iYWxfaTJbN10sCis9PTE1MzcwPT0gIGEgZ2xvYmFsIHZhcmlhYmxlIGRlY2xhcmVkIGF0IHZhcmluZm8xLmM6NDEKKz09MTUzNzA9PSAKKz09MTUzNzA9PSBVbmluaXRpYWxpc2VkIGJ5dGUocykgZm91bmQgZHVyaW5nIGNsaWVudCBjaGVjayByZXF1ZXN0Cis9PTE1MzcwPT0gICAgYXQgMHg4MDQ4NEE5OiBjcm9hayAodmFyaW5mbzEuYzoyOCkKKz09MTUzNzA9PSAgICBieSAweDgwNDg1NTA6IG1haW4gKHZhcmluZm8xLmM6NTYpCis9PTE1MzcwPT0gIExvY2F0aW9uIDB4YmViNGEwY2MgaXMgMCBieXRlcyBpbnNpZGUgbG9jYWwgdmFyICJsb2NhbCIKKz09MTUzNzA9PSAgZGVjbGFyZWQgYXQgdmFyaW5mbzEuYzo0NiwgaW4gZnJhbWUgIzEgb2YgdGhyZWFkIDEKKzwvcHJlPgorPC9kZD4KKzxkdD4KKzxhIG5hbWU9Im9wdC52Z2RiLXBvbGwiPjwvYT48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXZnZGItcG9sbD0mbHQ7bnVtYmVyJmd0OyBbZGVmYXVsdDogNTAwMF0gPC9jb2RlPgorICAgIDwvc3Bhbj4KKzwvZHQ+Cis8ZGQ+PHA+IEFzIHBhcnQgb2YgaXRzIG1haW4gbG9vcCwgdGhlIFZhbGdyaW5kIHNjaGVkdWxlciB3aWxsCisgICAgICBwb2xsIHRvIGNoZWNrIGlmIHNvbWUgYWN0aXZpdHkgKHN1Y2ggYXMgYW4gZXh0ZXJuYWwgY29tbWFuZCBvcgorICAgICAgc29tZSBpbnB1dCBmcm9tIGEgZ2RiKSBoYXMgdG8gYmUgaGFuZGxlZCBieSBnZGJzZXJ2ZXIuICBUaGlzCisgICAgICBhY3Rpdml0eSBwb2xsIHdpbGwgYmUgZG9uZSBhZnRlciBoYXZpbmcgcnVuIHRoZSBnaXZlbiBudW1iZXIgb2YKKyAgICAgIGJhc2ljIGJsb2NrcyAob3Igc2xpZ2h0bHkgbW9yZSB0aGFuIHRoZSBnaXZlbiBudW1iZXIgb2YgYmFzaWMKKyAgICAgIGJsb2NrcykuIFRoaXMgcG9sbCBpcyBxdWl0ZSBjaGVhcCBzbyB0aGUgZGVmYXVsdCB2YWx1ZSBpcyBzZXQKKyAgICAgIHJlbGF0aXZlbHkgbG93LiBZb3UgbWlnaHQgZnVydGhlciBkZWNyZWFzZSB0aGlzIHZhbHVlIGlmIHZnZGIKKyAgICAgIGNhbm5vdCB1c2UgcHRyYWNlIHN5c3RlbSBjYWxsIHRvIGludGVycnVwdCBWYWxncmluZCBpZiBhbGwKKyAgICAgIHRocmVhZHMgYXJlIChtb3N0IG9mIHRoZSB0aW1lKSBibG9ja2VkIGluIGEgc3lzdGVtIGNhbGwuCisgICAgICA8L3A+PC9kZD4KKzxkdD4KKzxhIG5hbWU9Im9wdC52Z2RiLXNoYWRvdy1yZWdpc3RlcnMiPjwvYT48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXZnZGItc2hhZG93LXJlZ2lzdGVycz1ub3x5ZXMgW2RlZmF1bHQ6IG5vXSA8L2NvZGU+CisgICAgPC9zcGFuPgorPC9kdD4KKzxkZD48cD4gV2hlbiBhY3RpdmF0ZWQsIGdkYnNlcnZlciB3aWxsIGV4cG9zZSB0aGUgVmFsZ3JpbmQgc2hhZG93IHJlZ2lzdGVycworICAgICAgdG8gR0RCLiBXaXRoIHRoaXMsIHRoZSB2YWx1ZSBvZiB0aGUgVmFsZ3JpbmQgc2hhZG93IHJlZ2lzdGVycyBjYW4gYmUgZXhhbWluZWQKKyAgICAgIG9yIGNoYW5nZWQgdXNpbmcgR0RCLiBFeHBvc2luZyBzaGFkb3cgcmVnaXN0ZXJzIG9ubHkgd29ya3Mgd2l0aCBHREIgdmVyc2lvbgorICAgICAgNy4xIG9yIGxhdGVyLgorICAgICAgPC9wPjwvZGQ+Cis8ZHQ+Cis8YSBuYW1lPSJvcHQudmdkYi1wcmVmaXgiPjwvYT48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXZnZGItcHJlZml4PSZsdDtwcmVmaXgmZ3Q7IFtkZWZhdWx0OiAvdG1wL3ZnZGItcGlwZV0gPC9jb2RlPgorICAgIDwvc3Bhbj4KKzwvZHQ+Cis8ZGQ+PHA+IFRvIGNvbW11bmljYXRlIHdpdGggZ2RiL3ZnZGIsIHRoZSBWYWxncmluZCBnZGJzZXJ2ZXIKKyAgICAgIGNyZWF0ZXMgMyBmaWxlcyAoMiBuYW1lZCBGSUZPcyBhbmQgYSBtbWFwIHNoYXJlZCBtZW1vcnkKKyAgICAgIGZpbGUpLiBUaGUgcHJlZml4IG9wdGlvbiBjb250cm9scyB0aGUgZGlyZWN0b3J5IGFuZCBwcmVmaXggZm9yCisgICAgICB0aGUgY3JlYXRpb24gb2YgdGhlc2UgZmlsZXMuCisgICAgICA8L3A+PC9kZD4KKzxkdD4KKzxhIG5hbWU9Im9wdC5ydW4tbGliYy1mcmVlcmVzIj48L2E+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1ydW4tbGliYy1mcmVlcmVzPSZsdDt5ZXN8bm8mZ3Q7IFtkZWZhdWx0OiB5ZXNdIDwvY29kZT4KKyAgICA8L3NwYW4+Cis8L2R0PgorPGRkPgorPHA+VGhpcyBvcHRpb24gaXMgb25seSByZWxldmFudCB3aGVuIHJ1bm5pbmcgVmFsZ3JpbmQgb24gTGludXguPC9wPgorPHA+VGhlIEdOVSBDIGxpYnJhcnkgKDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+bGliYy5zbzwvY29kZT4pLCB3aGljaCBpcworICAgICAgdXNlZCBieSBhbGwgcHJvZ3JhbXMsIG1heSBhbGxvY2F0ZSBtZW1vcnkgZm9yIGl0cyBvd24gdXNlcy4KKyAgICAgIFVzdWFsbHkgaXQgZG9lc24ndCBib3RoZXIgdG8gZnJlZSB0aGF0IG1lbW9yeSB3aGVuIHRoZSBwcm9ncmFtCisgICAgICBlbmRzJiM4MjEyO3RoZXJlIHdvdWxkIGJlIG5vIHBvaW50LCBzaW5jZSB0aGUgTGludXgga2VybmVsIHJlY2xhaW1zCisgICAgICBhbGwgcHJvY2VzcyByZXNvdXJjZXMgd2hlbiBhIHByb2Nlc3MgZXhpdHMgYW55d2F5LCBzbyBpdCB3b3VsZAorICAgICAganVzdCBzbG93IHRoaW5ncyBkb3duLjwvcD4KKzxwPlRoZSBnbGliYyBhdXRob3JzIHJlYWxpc2VkIHRoYXQgdGhpcyBiZWhhdmlvdXIgY2F1c2VzIGxlYWsKKyAgICAgIGNoZWNrZXJzLCBzdWNoIGFzIFZhbGdyaW5kLCB0byBmYWxzZWx5IHJlcG9ydCBsZWFrcyBpbiBnbGliYywgd2hlbgorICAgICAgYSBsZWFrIGNoZWNrIGlzIGRvbmUgYXQgZXhpdC4gIEluIG9yZGVyIHRvIGF2b2lkIHRoaXMsIHRoZXkKKyAgICAgIHByb3ZpZGVkIGEgcm91dGluZSBjYWxsZWQgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5fX2xpYmNfZnJlZXJlczwvY29kZT4KKyAgICAgIHNwZWNpZmljYWxseSB0byBtYWtlIGdsaWJjIHJlbGVhc2UgYWxsIG1lbW9yeSBpdCBoYXMgYWxsb2NhdGVkLgorICAgICAgTWVtY2hlY2sgdGhlcmVmb3JlIHRyaWVzIHRvIHJ1bgorICAgICAgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5fX2xpYmNfZnJlZXJlczwvY29kZT4gYXQgZXhpdC48L3A+Cis8cD5VbmZvcnR1bmF0ZWx5LCBpbiBzb21lIHZlcnkgb2xkIHZlcnNpb25zIG9mIGdsaWJjLAorICAgICAgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5fX2xpYmNfZnJlZXJlczwvY29kZT4gaXMgc3VmZmljaWVudGx5IGJ1Z2d5IHRvIGNhdXNlCisgICAgICBzZWdtZW50YXRpb24gZmF1bHRzLiAgVGhpcyB3YXMgcGFydGljdWxhcmx5IG5vdGljZWFibGUgb24gUmVkIEhhdAorICAgICAgNy4xLiAgU28gdGhpcyBvcHRpb24gaXMgcHJvdmlkZWQgaW4gb3JkZXIgdG8gaW5oaWJpdCB0aGUgcnVuIG9mCisgICAgICA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPl9fbGliY19mcmVlcmVzPC9jb2RlPi4gIElmIHlvdXIgcHJvZ3JhbSBzZWVtcyB0byBydW4KKyAgICAgIGZpbmUgb24gVmFsZ3JpbmQsIGJ1dCBzZWdmYXVsdHMgYXQgZXhpdCwgeW91IG1heSBmaW5kIHRoYXQKKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tcnVuLWxpYmMtZnJlZXJlcz1ubzwvY29kZT4gZml4ZXMgdGhhdCwgYWx0aG91Z2ggYXQgdGhlCisgICAgICBjb3N0IG9mIHBvc3NpYmx5IGZhbHNlbHkgcmVwb3J0aW5nIHNwYWNlIGxlYWtzIGluCisgICAgICA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPmxpYmMuc288L2NvZGU+LjwvcD4KKzwvZGQ+Cis8ZHQ+Cis8YSBuYW1lPSJvcHQucnVuLWN4eC1mcmVlcmVzIj48L2E+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1ydW4tY3h4LWZyZWVyZXM9Jmx0O3llc3xubyZndDsgW2RlZmF1bHQ6IHllc10gPC9jb2RlPgorICAgIDwvc3Bhbj4KKzwvZHQ+Cis8ZGQ+Cis8cD5UaGlzIG9wdGlvbiBpcyBvbmx5IHJlbGV2YW50IHdoZW4gcnVubmluZyBWYWxncmluZCBvbiBMaW51eAorICAgICAgICAgICAgb3IgU29sYXJpcyBDKysgcHJvZ3JhbXMuPC9wPgorPHA+VGhlIEdOVSBTdGFuZGFyZCBDKysgbGlicmFyeSAoPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5saWJzdGRjKysuc288L2NvZGU+KSwKKyAgICAgIHdoaWNoIGlzIHVzZWQgYnkgYWxsIEMrKyBwcm9ncmFtcyBjb21waWxlZCB3aXRoIGcrKywgbWF5IGFsbG9jYXRlIG1lbW9yeQorICAgICAgZm9yIGl0cyBvd24gdXNlcy4gVXN1YWxseSBpdCBkb2Vzbid0IGJvdGhlciB0byBmcmVlIHRoYXQgbWVtb3J5IHdoZW4KKyAgICAgIHRoZSBwcm9ncmFtIGVuZHMmIzgyMTI7dGhlcmUgd291bGQgYmUgbm8gcG9pbnQsIHNpbmNlIHRoZSBrZXJuZWwgcmVjbGFpbXMKKyAgICAgIGFsbCBwcm9jZXNzIHJlc291cmNlcyB3aGVuIGEgcHJvY2VzcyBleGl0cyBhbnl3YXksIHNvIGl0IHdvdWxkCisgICAgICBqdXN0IHNsb3cgdGhpbmdzIGRvd24uPC9wPgorPHA+VGhlIGdjYyBhdXRob3JzIHJlYWxpc2VkIHRoYXQgdGhpcyBiZWhhdmlvdXIgY2F1c2VzIGxlYWsKKyAgICAgIGNoZWNrZXJzLCBzdWNoIGFzIFZhbGdyaW5kLCB0byBmYWxzZWx5IHJlcG9ydCBsZWFrcyBpbiBsaWJzdGRjKyssIHdoZW4KKyAgICAgIGEgbGVhayBjaGVjayBpcyBkb25lIGF0IGV4aXQuICBJbiBvcmRlciB0byBhdm9pZCB0aGlzLCB0aGV5CisgICAgICBwcm92aWRlZCBhIHJvdXRpbmUgY2FsbGVkIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+X19nbnVfY3h4OjpfX2ZyZWVyZXM8L2NvZGU+CisgICAgICBzcGVjaWZpY2FsbHkgdG8gbWFrZSBsaWJzdGRjKysgcmVsZWFzZSBhbGwgbWVtb3J5IGl0IGhhcyBhbGxvY2F0ZWQuCisgICAgICBNZW1jaGVjayB0aGVyZWZvcmUgdHJpZXMgdG8gcnVuCisgICAgICA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPl9fZ251X2N4eDo6X19mcmVlcmVzPC9jb2RlPiBhdCBleGl0LjwvcD4KKzxwPkZvciB0aGUgc2FrZSBvZiBmbGV4aWJpbGl0eSBhbmQgdW5mb3Jlc2VlbiBwcm9ibGVtcyB3aXRoCisgICAgICA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPl9fZ251X2N4eDo6X19mcmVlcmVzPC9jb2RlPiwgb3B0aW9uCisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXJ1bi1jeHgtZnJlZXJlcz1ubzwvY29kZT4gZXhpc3RzLAorICAgICAgYWx0aG91Z2ggYXQgdGhlIGNvc3Qgb2YgcG9zc2libHkgZmFsc2VseSByZXBvcnRpbmcgc3BhY2UgbGVha3MgaW4KKyAgICAgIDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+bGlic3RkYysrLnNvPC9jb2RlPi48L3A+Cis8L2RkPgorPGR0PgorPGEgbmFtZT0ib3B0LnNpbS1oaW50cyI+PC9hPjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tc2ltLWhpbnRzPWhpbnQxLGhpbnQyLC4uLiA8L2NvZGU+CisgICAgPC9zcGFuPgorPC9kdD4KKzxkZD4KKzxwPlBhc3MgbWlzY2VsbGFuZW91cyBoaW50cyB0byBWYWxncmluZCB3aGljaCBzbGlnaHRseSBtb2RpZnkKKyAgICAgIHRoZSBzaW11bGF0ZWQgYmVoYXZpb3VyIGluIG5vbnN0YW5kYXJkIG9yIGRhbmdlcm91cyB3YXlzLCBwb3NzaWJseQorICAgICAgdG8gaGVscCB0aGUgc2ltdWxhdGlvbiBvZiBzdHJhbmdlIGZlYXR1cmVzLiAgQnkgZGVmYXVsdCBubyBoaW50cworICAgICAgYXJlIGVuYWJsZWQuICBVc2Ugd2l0aCBjYXV0aW9uISAgQ3VycmVudGx5IGtub3duIGhpbnRzIGFyZTo8L3A+Cis8ZGl2IGNsYXNzPSJpdGVtaXplZGxpc3QiPjx1bCBjbGFzcz0iaXRlbWl6ZWRsaXN0IiBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOiBkaXNjOyAiPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+PGNvZGUgY2xhc3M9Im9wdGlvbiI+bGF4LWlvY3RsczogPC9jb2RlPiBCZSB2ZXJ5IGxheCBhYm91dCBpb2N0bAorICAgICAgICAgIGhhbmRsaW5nOyB0aGUgb25seSBhc3N1bXB0aW9uIGlzIHRoYXQgdGhlIHNpemUgaXMKKyAgICAgICAgICBjb3JyZWN0LiBEb2Vzbid0IHJlcXVpcmUgdGhlIGZ1bGwgYnVmZmVyIHRvIGJlIGluaXRpYWxpc2VkCisgICAgICAgICAgd2hlbiB3cml0aW5nLiAgV2l0aG91dCB0aGlzLCB1c2luZyBzb21lIGRldmljZSBkcml2ZXJzIHdpdGggYQorICAgICAgICAgIGxhcmdlIG51bWJlciBvZiBzdHJhbmdlIGlvY3RsIGNvbW1hbmRzIGJlY29tZXMgdmVyeQorICAgICAgICAgIHRpcmVzb21lLjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+PGNvZGUgY2xhc3M9Im9wdGlvbiI+ZnVzZS1jb21wYXRpYmxlOiA8L2NvZGU+IEVuYWJsZSBzcGVjaWFsCisgICAgICAgICAgICBoYW5kbGluZyBmb3IgY2VydGFpbiBzeXN0ZW0gY2FsbHMgdGhhdCBtYXkgYmxvY2sgaW4gYSBGVVNFCisgICAgICAgICAgICBmaWxlLXN5c3RlbS4gIFRoaXMgbWF5IGJlIG5lY2Vzc2FyeSB3aGVuIHJ1bm5pbmcgVmFsZ3JpbmQKKyAgICAgICAgICAgIG9uIGEgbXVsdGktdGhyZWFkZWQgcHJvZ3JhbSB0aGF0IHVzZXMgb25lIHRocmVhZCB0byBtYW5hZ2UKKyAgICAgICAgICAgIGEgRlVTRSBmaWxlLXN5c3RlbSBhbmQgYW5vdGhlciB0aHJlYWQgdG8gYWNjZXNzIHRoYXQKKyAgICAgICAgICAgIGZpbGUtc3lzdGVtLgorICAgICAgICAgIDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+PGNvZGUgY2xhc3M9Im9wdGlvbiI+ZW5hYmxlLW91dGVyOiA8L2NvZGU+IEVuYWJsZSBzb21lIHNwZWNpYWwKKyAgICAgICAgICBtYWdpYyBuZWVkZWQgd2hlbiB0aGUgcHJvZ3JhbSBiZWluZyBydW4gaXMgaXRzZWxmCisgICAgICAgICAgVmFsZ3JpbmQuPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD48Y29kZSBjbGFzcz0ib3B0aW9uIj5uby1pbm5lci1wcmVmaXg6IDwvY29kZT4gRGlzYWJsZSBwcmludGluZworICAgICAgICAgIGEgcHJlZml4IDxjb2RlIGNsYXNzPSJvcHRpb24iPiZndDs8L2NvZGU+IGluIGZyb250IG9mIGVhY2ggc3Rkb3V0IG9yCisgICAgICAgICAgc3RkZXJyIG91dHB1dCBsaW5lIGluIGFuIGlubmVyIFZhbGdyaW5kIGJlaW5nIHJ1biBieSBhbgorICAgICAgICAgIG91dGVyIFZhbGdyaW5kLiBUaGlzIGlzIHVzZWZ1bCB3aGVuIHJ1bm5pbmcgVmFsZ3JpbmQKKyAgICAgICAgICByZWdyZXNzaW9uIHRlc3RzIGluIGFuIG91dGVyL2lubmVyIHNldHVwLiBOb3RlIHRoYXQgdGhlCisgICAgICAgICAgcHJlZml4IDxjb2RlIGNsYXNzPSJvcHRpb24iPiZndDs8L2NvZGU+IHdpbGwgYWx3YXlzIGJlIHByaW50ZWQgaW4KKyAgICAgICAgICBmcm9udCBvZiB0aGUgaW5uZXIgZGVidWcgbG9nZ2luZyBsaW5lcy48L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPgorPHA+PGNvZGUgY2xhc3M9Im9wdGlvbiI+bm8tbnB0bC1wdGhyZWFkLXN0YWNrY2FjaGU6IDwvY29kZT4KKyAgICAgICAgICAgIFRoaXMgaGludCBpcyBvbmx5IHJlbGV2YW50IHdoZW4gcnVubmluZyBWYWxncmluZCBvbiBMaW51eC48L3A+Cis8cD5UaGUgR05VIGdsaWJjIHB0aHJlYWQgbGlicmFyeQorICAgICAgICAgICAgKDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+bGlicHRocmVhZC5zbzwvY29kZT4pLCB3aGljaCBpcyB1c2VkIGJ5CisgICAgICAgICAgICBwdGhyZWFkIHByb2dyYW1zLCBtYWludGFpbnMgYSBjYWNoZSBvZiBwdGhyZWFkIHN0YWNrcy4KKyAgICAgICAgICAgIFdoZW4gYSBwdGhyZWFkIHRlcm1pbmF0ZXMsIHRoZSBtZW1vcnkgdXNlZCBmb3IgdGhlIHB0aHJlYWQKKyAgICAgICAgICAgIHN0YWNrIGFuZCBzb21lIHRocmVhZCBsb2NhbCBzdG9yYWdlIHJlbGF0ZWQgZGF0YSBzdHJ1Y3R1cmUKKyAgICAgICAgICAgIGFyZSBub3QgYWx3YXlzIGRpcmVjdGx5IHJlbGVhc2VkLiAgVGhpcyBtZW1vcnkgaXMga2VwdCBpbgorICAgICAgICAgICAgYSBjYWNoZSAodXAgdG8gYSBjZXJ0YWluIHNpemUpLCBhbmQgaXMgcmUtdXNlZCBpZiBhIG5ldworICAgICAgICAgICAgdGhyZWFkIGlzIHN0YXJ0ZWQuPC9wPgorPHA+VGhpcyBjYWNoZSBjYXVzZXMgdGhlIGhlbGdyaW5kIHRvb2wgdG8gcmVwb3J0IHNvbWUKKyAgICAgICAgICAgIGZhbHNlIHBvc2l0aXZlIHJhY2UgY29uZGl0aW9uIGVycm9ycyBvbiB0aGlzIGNhY2hlZAorICAgICAgICAgICAgbWVtb3J5LCBhcyBoZWxncmluZCBkb2VzIG5vdCB1bmRlcnN0YW5kIHRoZSBpbnRlcm5hbCBnbGliYworICAgICAgICAgICAgY2FjaGUgc3luY2hyb25pc2F0aW9uIHByaW1pdGl2ZXMuIFNvLCB3aGVuIHVzaW5nIGhlbGdyaW5kLAorICAgICAgICAgICAgZGlzYWJsaW5nIHRoZSBjYWNoZSBoZWxwcyB0byBhdm9pZCBmYWxzZSBwb3NpdGl2ZSByYWNlCisgICAgICAgICAgICBjb25kaXRpb25zLCBpbiBwYXJ0aWN1bGFyIHdoZW4gdXNpbmcgdGhyZWFkIGxvY2FsIHN0b3JhZ2UKKyAgICAgICAgICAgIHZhcmlhYmxlcyAoZS5nLiB2YXJpYWJsZXMgdXNpbmcgdGhlCisgICAgICAgICAgICA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPl9fdGhyZWFkPC9jb2RlPiBxdWFsaWZpZXIpLjwvcD4KKzxwPldoZW4gdXNpbmcgdGhlIG1lbWNoZWNrIHRvb2wsIGRpc2FibGluZyB0aGUgY2FjaGUKKyAgICAgICAgICAgIGVuc3VyZXMgdGhlIG1lbW9yeSB1c2VkIGJ5IGdsaWJjIHRvIGhhbmRsZSBfX3RocmVhZAorICAgICAgICAgICAgdmFyaWFibGVzIGlzIGRpcmVjdGx5IHJlbGVhc2VkIHdoZW4gYSB0aHJlYWQKKyAgICAgICAgICAgIHRlcm1pbmF0ZXMuPC9wPgorPHA+Tm90ZTogVmFsZ3JpbmQgZGlzYWJsZXMgdGhlIGNhY2hlIHVzaW5nIHNvbWUgaW50ZXJuYWwKKyAgICAgICAgICAgIGtub3dsZWRnZSBvZiB0aGUgZ2xpYmMgc3RhY2sgY2FjaGUgaW1wbGVtZW50YXRpb24gYW5kIGJ5CisgICAgICAgICAgICBleGFtaW5pbmcgdGhlIGRlYnVnIGluZm9ybWF0aW9uIG9mIHRoZSBwdGhyZWFkCisgICAgICAgICAgICBsaWJyYXJ5LiBUaGlzIHRlY2huaXF1ZSBpcyB0aHVzIHNvbWV3aGF0IGZyYWdpbGUgYW5kIG1pZ2h0CisgICAgICAgICAgICBub3Qgd29yayBmb3IgYWxsIGdsaWJjIHZlcnNpb25zLiBUaGlzIGhhcyBiZWVuIHN1Y2Nlc2Z1bGx5CisgICAgICAgICAgICB0ZXN0ZWQgd2l0aCB2YXJpb3VzIGdsaWJjIHZlcnNpb25zIChlLmcuIDIuMTEsIDIuMTYsIDIuMTgpCisgICAgICAgICAgICBvbiB2YXJpb3VzIHBsYXRmb3Jtcy48L3A+Cis8L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+PGNvZGUgY2xhc3M9Im9wdGlvbiI+bGF4LWRvb3JzOiA8L2NvZGU+IChTb2xhcmlzIG9ubHkpIEJlIHZlcnkgbGF4CisgICAgICAgICAgYWJvdXQgZG9vciBzeXNjYWxsIGhhbmRsaW5nIG92ZXIgdW5yZWNvZ25pc2VkIGRvb3IgZmlsZQorICAgICAgICAgIGRlc2NyaXB0b3JzLiBEb2VzIG5vdCByZXF1aXJlIHRoYXQgZnVsbCBidWZmZXIgaXMgaW5pdGlhbGlzZWQKKyAgICAgICAgICB3aGVuIHdyaXRpbmcuIFdpdGhvdXQgdGhpcywgcHJvZ3JhbXMgdXNpbmcgbGliZG9vcigzTElCKQorICAgICAgICAgIGZ1bmN0aW9uYWxpdHkgd2l0aCBjb21wbGV0ZWx5IHByb3ByaWV0YXJ5IHNlbWFudGljcyBtYXkgcmVwb3J0CisgICAgICAgICAgbGFyZ2UgbnVtYmVyIG9mIGZhbHNlIHBvc2l0aXZlcy48L3A+PC9saT4KKzwvdWw+PC9kaXY+Cis8L2RkPgorPGR0PgorPGEgbmFtZT0ib3B0LmZhaXItc2NoZWQiPjwvYT48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWZhaXItc2NoZWQ9Jmx0O25vfHllc3x0cnkmZ3Q7ICAgIFtkZWZhdWx0OiBub10gPC9jb2RlPgorICAgIDwvc3Bhbj4KKzwvZHQ+Cis8ZGQ+Cis8cD5UaGUgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1mYWlyLXNjaGVkPC9jb2RlPiBvcHRpb24gY29udHJvbHMKKyAgICAgIHRoZSBsb2NraW5nIG1lY2hhbmlzbSB1c2VkIGJ5IFZhbGdyaW5kIHRvIHNlcmlhbGlzZSB0aHJlYWQKKyAgICAgIGV4ZWN1dGlvbi4gIFRoZSBsb2NraW5nIG1lY2hhbmlzbSBjb250cm9scyB0aGUgd2F5IHRoZSB0aHJlYWRzCisgICAgICBhcmUgc2NoZWR1bGVkLCBhbmQgZGlmZmVyZW50IHNldHRpbmdzIGdpdmUgZGlmZmVyZW50IHRyYWRlLW9mZnMKKyAgICAgIGJldHdlZW4gZmFpcm5lc3MgYW5kIHBlcmZvcm1hbmNlLiBGb3IgbW9yZSBkZXRhaWxzIGFib3V0IHRoZQorICAgICAgVmFsZ3JpbmQgdGhyZWFkIHNlcmlhbGlzYXRpb24gc2NoZW1lIGFuZCBpdHMgaW1wYWN0IG9uCisgICAgICBwZXJmb3JtYW5jZSBhbmQgdGhyZWFkIHNjaGVkdWxpbmcsIHNlZQorICAgICAgPGEgY2xhc3M9InhyZWYiIGhyZWY9Im1hbnVhbC1jb3JlLmh0bWwjbWFudWFsLWNvcmUucHRocmVhZHNfcGVyZl9zY2hlZCIgdGl0bGU9IjIuNy4xLqBTY2hlZHVsaW5nIGFuZCBNdWx0aS1UaHJlYWQgUGVyZm9ybWFuY2UiPlNjaGVkdWxpbmcgYW5kIE11bHRpLVRocmVhZCBQZXJmb3JtYW5jZTwvYT4uPC9wPgorPGRpdiBjbGFzcz0iaXRlbWl6ZWRsaXN0Ij48dWwgY2xhc3M9Iml0ZW1pemVkbGlzdCIgc3R5bGU9Imxpc3Qtc3R5bGUtdHlwZTogZGlzYzsgIj4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPgorPHA+VGhlIHZhbHVlIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tZmFpci1zY2hlZD15ZXM8L2NvZGU+CisgICAgICAgICAgYWN0aXZhdGVzIGEgZmFpciBzY2hlZHVsZXIuICBJbiBzaG9ydCwgaWYgbXVsdGlwbGUgdGhyZWFkcyBhcmUKKyAgICAgICAgICByZWFkeSB0byBydW4sIHRoZSB0aHJlYWRzIHdpbGwgYmUgc2NoZWR1bGVkIGluIGEgcm91bmQgcm9iaW4KKyAgICAgICAgICBmYXNoaW9uLiAgVGhpcyBtZWNoYW5pc20gaXMgbm90IGF2YWlsYWJsZSBvbiBhbGwgcGxhdGZvcm1zIG9yCisgICAgICAgICAgTGludXggdmVyc2lvbnMuICBJZiBub3QgYXZhaWxhYmxlLAorICAgICAgICAgIHVzaW5nIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tZmFpci1zY2hlZD15ZXM8L2NvZGU+IHdpbGwgY2F1c2UgVmFsZ3JpbmQgdG8KKyAgICAgICAgICB0ZXJtaW5hdGUgd2l0aCBhbiBlcnJvci48L3A+Cis8cD5Zb3UgbWF5IGZpbmQgdGhpcyBzZXR0aW5nIGltcHJvdmVzIG92ZXJhbGwKKyAgICAgICAgICByZXNwb25zaXZlbmVzcyBpZiB5b3UgYXJlIHJ1bm5pbmcgYW4gaW50ZXJhY3RpdmUKKyAgICAgICAgICBtdWx0aXRocmVhZGVkIHByb2dyYW0sIGZvciBleGFtcGxlIGEgd2ViIGJyb3dzZXIsIG9uCisgICAgICAgICAgVmFsZ3JpbmQuPC9wPgorPC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPlRoZSB2YWx1ZSA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWZhaXItc2NoZWQ9dHJ5PC9jb2RlPgorICAgICAgICAgIGFjdGl2YXRlcyBmYWlyIHNjaGVkdWxpbmcgaWYgYXZhaWxhYmxlIG9uIHRoZQorICAgICAgICAgIHBsYXRmb3JtLiAgT3RoZXJ3aXNlLCBpdCB3aWxsIGF1dG9tYXRpY2FsbHkgZmFsbCBiYWNrCisgICAgICAgICAgdG8gPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1mYWlyLXNjaGVkPW5vPC9jb2RlPi48L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPlRoZSB2YWx1ZSA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWZhaXItc2NoZWQ9bm88L2NvZGU+IGFjdGl2YXRlcworICAgICAgICAgIGEgc2NoZWR1bGVyIHdoaWNoIGRvZXMgbm90IGd1YXJhbnRlZSBmYWlybmVzcworICAgICAgICAgIGJldHdlZW4gdGhyZWFkcyByZWFkeSB0byBydW4sIGJ1dCB3aGljaCBpbiBnZW5lcmFsIGdpdmVzIHRoZQorICAgICAgICAgaGlnaGVzdCBwZXJmb3JtYW5jZS48L3A+PC9saT4KKzwvdWw+PC9kaXY+Cis8L2RkPgorPGR0PgorPGEgbmFtZT0ib3B0Lmtlcm5lbC12YXJpYW50Ij48L2E+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1rZXJuZWwtdmFyaWFudD12YXJpYW50MSx2YXJpYW50MiwuLi48L2NvZGU+CisgICAgPC9zcGFuPgorPC9kdD4KKzxkZD4KKzxwPkhhbmRsZSBzeXN0ZW0gY2FsbHMgYW5kIGlvY3RscyBhcmlzaW5nIGZyb20gbWlub3IgdmFyaWFudHMKKyAgICAgIG9mIHRoZSBkZWZhdWx0IGtlcm5lbCBmb3IgdGhpcyBwbGF0Zm9ybS4gIFRoaXMgaXMgdXNlZnVsIGZvcgorICAgICAgcnVubmluZyBvbiBoYWNrZWQga2VybmVscyBvciB3aXRoIGtlcm5lbCBtb2R1bGVzIHdoaWNoIHN1cHBvcnQKKyAgICAgIG5vbnN0YW5kYXJkIGlvY3RscywgZm9yIGV4YW1wbGUuICBVc2Ugd2l0aCBjYXV0aW9uLiAgSWYgeW91IGRvbid0CisgICAgICB1bmRlcnN0YW5kIHdoYXQgdGhpcyBvcHRpb24gZG9lcyB0aGVuIHlvdSBhbG1vc3QgY2VydGFpbmx5IGRvbid0CisgICAgICBuZWVkIGl0LiAgQ3VycmVudGx5IGtub3duIHZhcmlhbnRzIGFyZTo8L3A+Cis8ZGl2IGNsYXNzPSJpdGVtaXplZGxpc3QiPjx1bCBjbGFzcz0iaXRlbWl6ZWRsaXN0IiBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOiBkaXNjOyAiPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+PGNvZGUgY2xhc3M9Im9wdGlvbiI+YnByb2M8L2NvZGU+OiBzdXBwb3J0IHRoZQorICAgICAgICAgICAgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5zeXNfYnJvYzwvY29kZT4gc3lzdGVtIGNhbGwgb24geDg2LiAgVGhpcyBpcyBmb3IKKyAgICAgICAgICAgIHJ1bm5pbmcgb24gQlByb2MsIHdoaWNoIGlzIGEgbWlub3IgdmFyaWFudCBvZiBzdGFuZGFyZCBMaW51eCB3aGljaAorICAgICAgICAgICAgaXMgc29tZXRpbWVzIHVzZWQgZm9yIGJ1aWxkaW5nIGNsdXN0ZXJzLgorICAgICAgICAgIDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+PGNvZGUgY2xhc3M9Im9wdGlvbiI+YW5kcm9pZC1uby1ody10bHM8L2NvZGU+OiBzb21lCisgICAgICAgICAgdmVyc2lvbnMgb2YgdGhlIEFuZHJvaWQgZW11bGF0b3IgZm9yIEFSTSBkbyBub3QgcHJvdmlkZSBhCisgICAgICAgICAgaGFyZHdhcmUgVExTICh0aHJlYWQtbG9jYWwgc3RhdGUpIHJlZ2lzdGVyLCBhbmQgVmFsZ3JpbmQKKyAgICAgICAgICBjcmFzaGVzIGF0IHN0YXJ0dXAuICBVc2UgdGhpcyB2YXJpYW50IHRvIHNlbGVjdCBzb2Z0d2FyZQorICAgICAgICAgIHN1cHBvcnQgZm9yIFRMUy4KKyAgICAgICAgICA8L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPjxjb2RlIGNsYXNzPSJvcHRpb24iPmFuZHJvaWQtZ3B1LXNneDV4eDwvY29kZT46IHVzZSB0aGlzIHRvCisgICAgICAgICAgc3VwcG9ydCBoYW5kbGluZyBvZiBwcm9wcmlldGFyeSBpb2N0bHMgZm9yIHRoZSBQb3dlclZSIFNHWAorICAgICAgICAgIDVYWCBzZXJpZXMgb2YgR1BVcyBvbiBBbmRyb2lkIGRldmljZXMuICBGYWlsdXJlIHRvIHNlbGVjdAorICAgICAgICAgIHRoaXMgZG9lcyBub3QgY2F1c2Ugc3RhYmlsaXR5IHByb2JsZW1zLCBidXQgbWF5IGNhdXNlCisgICAgICAgICAgTWVtY2hlY2sgdG8gcmVwb3J0IGZhbHNlIGVycm9ycyBhZnRlciB0aGUgcHJvZ3JhbSBwZXJmb3JtcworICAgICAgICAgIEdQVS1zcGVjaWZpYyBpb2N0bHMuCisgICAgICAgICAgPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD48Y29kZSBjbGFzcz0ib3B0aW9uIj5hbmRyb2lkLWdwdS1hZHJlbm8zeHg8L2NvZGU+OiBzaW1pbGFybHksIHVzZQorICAgICAgICAgIHRoaXMgdG8gc3VwcG9ydCBoYW5kbGluZyBvZiBwcm9wcmlldGFyeSBpb2N0bHMgZm9yIHRoZQorICAgICAgICAgIFF1YWxjb21tIEFkcmVubyAzWFggc2VyaWVzIG9mIEdQVXMgb24gQW5kcm9pZCBkZXZpY2VzLgorICAgICAgICAgIDwvcD48L2xpPgorPC91bD48L2Rpdj4KKzwvZGQ+Cis8ZHQ+Cis8YSBuYW1lPSJvcHQubWVyZ2UtcmVjdXJzaXZlLWZyYW1lcyI+PC9hPjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tbWVyZ2UtcmVjdXJzaXZlLWZyYW1lcz0mbHQ7bnVtYmVyJmd0OyBbZGVmYXVsdDogMF0gPC9jb2RlPgorICAgIDwvc3Bhbj4KKzwvZHQ+Cis8ZGQ+Cis8cD5Tb21lIHJlY3Vyc2l2ZSBhbGdvcml0aG1zLCBmb3IgZXhhbXBsZSBiYWxhbmNlZCBiaW5hcnkKKyAgICAgIHRyZWUgaW1wbGVtZW50YXRpb25zLCBjcmVhdGUgbWFueSBkaWZmZXJlbnQgc3RhY2sgdHJhY2VzLCBlYWNoCisgICAgICBjb250YWluaW5nIGN5Y2xlcyBvZiBjYWxscy4gIEEgY3ljbGUgaXMgZGVmaW5lZCBhcyB0d28gaWRlbnRpY2FsCisgICAgICBwcm9ncmFtIGNvdW50ZXIgdmFsdWVzIHNlcGFyYXRlZCBieSB6ZXJvIG9yIG1vcmUgb3RoZXIgcHJvZ3JhbQorICAgICAgY291bnRlciB2YWx1ZXMuICBWYWxncmluZCBtYXkgdGhlbiB1c2UgYSBsb3Qgb2YgbWVtb3J5IHRvIHN0b3JlCisgICAgICBhbGwgdGhlc2Ugc3RhY2sgdHJhY2VzLiAgVGhpcyBpcyBhIHBvb3IgdXNlIG9mIG1lbW9yeQorICAgICAgY29uc2lkZXJpbmcgdGhhdCBzdWNoIHN0YWNrIHRyYWNlcyBjb250YWluIHJlcGVhdGVkCisgICAgICB1bmludGVyZXN0aW5nIHJlY3Vyc2l2ZSBjYWxscyBpbnN0ZWFkIG9mIG1vcmUgaW50ZXJlc3RpbmcKKyAgICAgIGluZm9ybWF0aW9uIHN1Y2ggYXMgdGhlIGZ1bmN0aW9uIHRoYXQgaGFzIGluaXRpYXRlZCB0aGUKKyAgICAgIHJlY3Vyc2l2ZSBjYWxsLgorICAgICAgPC9wPgorPHA+VGhlIG9wdGlvbiA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLW1lcmdlLXJlY3Vyc2l2ZS1mcmFtZXM9Jmx0O251bWJlciZndDs8L2NvZGU+CisgICAgICBpbnN0cnVjdHMgVmFsZ3JpbmQgdG8gZGV0ZWN0IGFuZCBtZXJnZSByZWN1cnNpdmUgY2FsbCBjeWNsZXMKKyAgICAgIGhhdmluZyBhIHNpemUgb2YgdXAgdG8gPGNvZGUgY2xhc3M9Im9wdGlvbiI+Jmx0O251bWJlciZndDs8L2NvZGU+CisgICAgICBmcmFtZXMuIFdoZW4gc3VjaCBhIGN5Y2xlIGlzIGRldGVjdGVkLCBWYWxncmluZCByZWNvcmRzIHRoZQorICAgICAgY3ljbGUgaW4gdGhlIHN0YWNrIHRyYWNlIGFzIGEgdW5pcXVlIHByb2dyYW0gY291bnRlci4KKyAgICAgIDwvcD4KKzxwPgorICAgICAgVGhlIHZhbHVlIDAgKHRoZSBkZWZhdWx0KSBjYXVzZXMgbm8gcmVjdXJzaXZlIGNhbGwgbWVyZ2luZy4KKyAgICAgIEEgdmFsdWUgb2YgMSB3aWxsIGNhdXNlIHN0YWNrIHRyYWNlcyBvZiBzaW1wbGUgcmVjdXJzaXZlIGFsZ29yaXRobXMKKyAgICAgIChmb3IgZXhhbXBsZSwgYSBmYWN0b3JpYWwgaW1wbGVtZW50YXRpb24pIHRvIGJlIGNvbGxhcHNlZC4KKyAgICAgIEEgdmFsdWUgb2YgMiB3aWxsIHVzdWFsbHkgYmUgbmVlZGVkIHRvIGNvbGxhcHNlIHN0YWNrIHRyYWNlcyBwcm9kdWNlZAorICAgICAgYnkgcmVjdXJzaXZlIGFsZ29yaXRobXMgc3VjaCBhcyBiaW5hcnkgdHJlZXMsIHF1aWNrIHNvcnQsIGV0Yy4KKyAgICAgIEhpZ2hlciB2YWx1ZXMgbWlnaHQgYmUgbmVlZGVkIGZvciBtb3JlIGNvbXBsZXggcmVjdXJzaXZlIGFsZ29yaXRobXMuCisgICAgICA8L3A+Cis8cD5Ob3RlOiByZWN1cnNpdmUgY2FsbHMgYXJlIGRldGVjdGVkIGJ5IGFuYWx5c2lzIG9mIHByb2dyYW0KKyAgICAgIGNvdW50ZXIgdmFsdWVzLiAgVGhleSBhcmUgbm90IGRldGVjdGVkIGJ5IGxvb2tpbmcgYXQgZnVuY3Rpb24KKyAgICAgIG5hbWVzLjwvcD4KKzwvZGQ+Cis8ZHQ+Cis8YSBuYW1lPSJvcHQubnVtLXRyYW5zdGFiLXNlY3RvcnMiPjwvYT48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLW51bS10cmFuc3RhYi1zZWN0b3JzPSZsdDtudW1iZXImZ3Q7IFtkZWZhdWx0OiA2CisgICAgICBmb3IgQW5kcm9pZCBwbGF0Zm9ybXMsIDE2IGZvciBhbGwgb3RoZXJzXSA8L2NvZGU+CisgICAgPC9zcGFuPgorPC9kdD4KKzxkZD48cD5WYWxncmluZCB0cmFuc2xhdGVzIGFuZCBpbnN0cnVtZW50cyB5b3VyIHByb2dyYW0ncyBtYWNoaW5lCisgICAgICBjb2RlIGluIHNtYWxsIGZyYWdtZW50cyAoYmFzaWMgYmxvY2tzKS4gVGhlIHRyYW5zbGF0aW9ucyBhcmUgc3RvcmVkIGluIGEKKyAgICAgIHRyYW5zbGF0aW9uIGNhY2hlIHRoYXQgaXMgZGl2aWRlZCBpbnRvIGEgbnVtYmVyIG9mIHNlY3Rpb25zCisgICAgICAoc2VjdG9ycykuIElmIHRoZSBjYWNoZSBpcyBmdWxsLCB0aGUgc2VjdG9yIGNvbnRhaW5pbmcgdGhlCisgICAgICBvbGRlc3QgdHJhbnNsYXRpb25zIGlzIGVtcHRpZWQgYW5kIHJldXNlZC4gSWYgdGhlc2Ugb2xkCisgICAgICB0cmFuc2xhdGlvbnMgYXJlIG5lZWRlZCBhZ2FpbiwgVmFsZ3JpbmQgbXVzdCByZS10cmFuc2xhdGUgYW5kCisgICAgICByZS1pbnN0cnVtZW50IHRoZSBjb3JyZXNwb25kaW5nIG1hY2hpbmUgY29kZSwgd2hpY2ggaXMKKyAgICAgIGV4cGVuc2l2ZS4gIElmIHRoZSAiZXhlY3V0ZWQgaW5zdHJ1Y3Rpb25zIiB3b3JraW5nIHNldCBvZiBhCisgICAgICBwcm9ncmFtIGlzIGJpZywgaW5jcmVhc2luZyB0aGUgbnVtYmVyIG9mIHNlY3RvcnMgbWF5IGltcHJvdmUKKyAgICAgIHBlcmZvcm1hbmNlIGJ5IHJlZHVjaW5nIHRoZSBudW1iZXIgb2YgcmUtdHJhbnNsYXRpb25zIG5lZWRlZC4KKyAgICAgIFNlY3RvcnMgYXJlIGFsbG9jYXRlZCBvbiBkZW1hbmQuICBPbmNlIGFsbG9jYXRlZCwgYSBzZWN0b3IgY2FuCisgICAgICBuZXZlciBiZSBmcmVlZCwgYW5kIG9jY3VwaWVzIGNvbnNpZGVyYWJsZSBzcGFjZSwgZGVwZW5kaW5nIG9uIHRoZSB0b29sCisgICAgICBhbmQgdGhlIHZhbHVlIG9mIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tYXZnLXRyYW5zdGFiLWVudHJ5LXNpemU8L2NvZGU+CisgICAgICAoYWJvdXQgNDAgTUIgcGVyIHNlY3RvciBmb3IgTWVtY2hlY2spLiAgVXNlIHRoZQorICAgICAgb3B0aW9uIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tc3RhdHM9eWVzPC9jb2RlPiB0byBvYnRhaW4gcHJlY2lzZQorICAgICAgaW5mb3JtYXRpb24gYWJvdXQgdGhlIG1lbW9yeSB1c2VkIGJ5IGEgc2VjdG9yIGFuZCB0aGUgYWxsb2NhdGlvbgorICAgICAgYW5kIHJlY3ljbGluZyBvZiBzZWN0b3JzLjwvcD48L2RkPgorPGR0PgorPGEgbmFtZT0ib3B0LmF2Zy10cmFuc3RhYi1lbnRyeS1zaXplIj48L2E+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1hdmctdHJhbnN0YWItZW50cnktc2l6ZT0mbHQ7bnVtYmVyJmd0OyBbZGVmYXVsdDogMCwKKyAgICAgIG1lYW5pbmcgdXNlIHRvb2wgcHJvdmlkZWQgZGVmYXVsdF0gPC9jb2RlPgorICAgIDwvc3Bhbj4KKzwvZHQ+Cis8ZGQ+PHA+QXZlcmFnZSBzaXplIG9mIHRyYW5zbGF0ZWQgYmFzaWMgYmxvY2suIFRoaXMgYXZlcmFnZSBzaXplCisgICAgICBpcyB1c2VkIHRvIGRpbWVuc2lvbiB0aGUgc2l6ZSBvZiBhIHNlY3Rvci4KKyAgICAgIEVhY2ggdG9vbCBwcm92aWRlcyBhIGRlZmF1bHQgdmFsdWUgdG8gYmUgdXNlZC4KKyAgICAgIElmIHRoaXMgZGVmYXVsdCB2YWx1ZSBpcyB0b28gc21hbGwsIHRoZSB0cmFuc2xhdGlvbiBzZWN0b3JzCisgICAgICB3aWxsIGJlY29tZSBmdWxsIHRvbyBxdWlja2x5LiBJZiB0aGlzIGRlZmF1bHQgdmFsdWUgaXMgdG9vIGJpZywKKyAgICAgIGEgc2lnbmlmaWNhbnQgcGFydCBvZiB0aGUgdHJhbnNsYXRpb24gc2VjdG9yIG1lbW9yeSB3aWxsIGJlIHVudXNlZC4KKyAgICAgIE5vdGUgdGhhdCB0aGUgYXZlcmFnZSBzaXplIG9mIGEgYmFzaWMgYmxvY2sgdHJhbnNsYXRpb24gZGVwZW5kcworICAgICAgb24gdGhlIHRvb2wsIGFuZCBtaWdodCBkZXBlbmQgb24gdG9vbCBvcHRpb25zLiBGb3IgZXhhbXBsZSwKKyAgICAgIHRoZSBtZW1jaGVjayBvcHRpb24gPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS10cmFjay1vcmlnaW5zPXllczwvY29kZT4KKyAgICAgIGluY3JlYXNlcyB0aGUgc2l6ZSBvZiB0aGUgYmFzaWMgYmxvY2sgdHJhbnNsYXRpb25zLgorICAgICAgVXNlIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tYXZnLXRyYW5zdGFiLWVudHJ5LXNpemU8L2NvZGU+IHRvIHR1bmUgdGhlIHNpemUgb2YgdGhlCisgICAgICBzZWN0b3JzLCBlaXRoZXIgdG8gZ2FpbiBtZW1vcnkgb3IgdG8gYXZvaWQgdG9vIG1hbnkgcmV0cmFuc2xhdGlvbnMuCisgICAgICA8L3A+PC9kZD4KKzxkdD4KKzxhIG5hbWU9Im9wdC5hc3BhY2UtbWluYWRkciI+PC9hPjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tYXNwYWNlLW1pbmFkZHI9Jmx0O2FkZHJlc3MmZ3Q7IFtkZWZhdWx0OiBkZXBlbmRzCisgICAgICBvbiB0aGUgcGxhdGZvcm1dIDwvY29kZT4KKyAgICA8L3NwYW4+Cis8L2R0PgorPGRkPjxwPlRvIGF2b2lkIHBvdGVudGlhbCBjb25mbGljdHMgd2l0aCBzb21lIHN5c3RlbSBsaWJyYXJpZXMsCisgICAgICBWYWxncmluZCBkb2VzIG5vdCB1c2UgdGhlIGFkZHJlc3Mgc3BhY2UKKyAgICAgIGJlbG93IDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tYXNwYWNlLW1pbmFkZHI8L2NvZGU+IHZhbHVlLCBrZWVwaW5nIGl0CisgICAgICByZXNlcnZlZCBpbiBjYXNlIGEgbGlicmFyeSBzcGVjaWZpY2FsbHkgcmVxdWVzdHMgbWVtb3J5IGluIHRoaXMKKyAgICAgIHJlZ2lvbi4gIFNvLCBzb21lICJwZXNzaW1pc3RpYyIgdmFsdWUgaXMgZ3Vlc3NlZCBieSBWYWxncmluZAorICAgICAgZGVwZW5kaW5nIG9uIHRoZSBwbGF0Zm9ybS4gT24gbGludXgsIGJ5IGRlZmF1bHQsIFZhbGdyaW5kIGF2b2lkcworICAgICAgdXNpbmcgdGhlIGZpcnN0IDY0TUIgZXZlbiBpZiB0eXBpY2FsbHkgdGhlcmUgaXMgbm8gY29uZmxpY3QgaW4KKyAgICAgIHRoaXMgY29tcGxldGUgem9uZS4gIFlvdSBjYW4gdXNlIHRoZQorICAgICAgb3B0aW9uIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tYXNwYWNlLW1pbmFkZHI8L2NvZGU+IHRvIGhhdmUgeW91ciBtZW1vcnkKKyAgICAgIGh1bmdyeSBhcHBsaWNhdGlvbiBiZW5lZml0dGluZyBmcm9tIG1vcmUgb2YgdGhpcyBsb3dlciBtZW1vcnkuCisgICAgICBPbiB0aGUgb3RoZXIgaGFuZCwgaWYgeW91IGVuY291bnRlciBhIGNvbmZsaWN0LCBpbmNyZWFzaW5nCisgICAgICBhc3BhY2UtbWluYWRkciB2YWx1ZSBtaWdodCBzb2x2ZSBpdC4gQ29uZmxpY3RzIHdpbGwgdHlwaWNhbGx5CisgICAgICBtYW5pZmVzdCB0aGVtc2VsdmVzIHdpdGggbW1hcCBmYWlsdXJlcyBpbiB0aGUgbG93IHJhbmdlIG9mIHRoZQorICAgICAgYWRkcmVzcyBzcGFjZS4gVGhlCisgICAgICBwcm92aWRlZCA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmFkZHJlc3M8L2NvZGU+IG11c3QgYmUgcGFnZQorICAgICAgYWxpZ25lZCBhbmQgbXVzdCBiZSBlcXVhbCBvciBiaWdnZXIgdG8gMHgxMDAwICg0S0IpLiBUbyBmaW5kIHRoZQorICAgICAgZGVmYXVsdCB2YWx1ZSBvbiB5b3VyIHBsYXRmb3JtLCBkbyBzb21ldGhpbmcgc3VjaCBhcworICAgICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij52YWxncmluZCAtZCAtZCBkYXRlIDImZ3Q7JmFtcDsxIHwgZ3JlcCAtaSBtaW5hZGRyPC9jb2RlPi4KKyAgICAgIFZhbHVlcyBsb3dlciB0aGFuIDB4MTAwMDAgKDY0S0IpIGFyZSBrbm93biB0byBjcmVhdGUgcHJvYmxlbXMKKyAgICAgIG9uIHNvbWUgZGlzdHJpYnV0aW9ucy4KKyAgICAgIDwvcD48L2RkPgorPGR0PgorPGEgbmFtZT0ib3B0LnZhbGdyaW5kLXN0YWNrc2l6ZSI+PC9hPjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tdmFsZ3JpbmQtc3RhY2tzaXplPSZsdDtudW1iZXImZ3Q7IFtkZWZhdWx0OiAxTUJdIDwvY29kZT4KKyAgICA8L3NwYW4+Cis8L2R0PgorPGRkPgorPHA+Rm9yIGVhY2ggdGhyZWFkLCBWYWxncmluZCBuZWVkcyBpdHMgb3duICdwcml2YXRlJyBzdGFjay4KKyAgICAgIFRoZSBkZWZhdWx0IHNpemUgZm9yIHRoZXNlIHN0YWNrcyBpcyBsYXJnZWx5IGRpbWVuc2lvbmVkLCBhbmQgc28KKyAgICAgIHNob3VsZCBiZSBzdWZmaWNpZW50IGluIG1vc3QgY2FzZXMuICBJbiBjYXNlIHRoZSBzaXplIGlzIHRvbyBzbWFsbCwKKyAgICAgIFZhbGdyaW5kIHdpbGwgc2VnZmF1bHQuIEJlZm9yZSBzZWdmYXVsdGluZywgYSB3YXJuaW5nIG1pZ2h0IGJlIHByb2R1Y2VkCisgICAgICBieSBWYWxncmluZCB3aGVuIGFwcHJvYWNoaW5nIHRoZSBsaW1pdC4KKyAgICAgIDwvcD4KKzxwPgorICAgICAgVXNlIHRoZSBvcHRpb24gPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS12YWxncmluZC1zdGFja3NpemU8L2NvZGU+IGlmIHN1Y2ggYW4gKHVubGlrZWx5KQorICAgICAgd2FybmluZyBpcyBwcm9kdWNlZCwgb3IgVmFsZ3JpbmQgZGllcyBkdWUgdG8gYSBzZWdtZW50YXRpb24gdmlvbGF0aW9uLgorICAgICAgU3VjaCBzZWdtZW50YXRpb24gdmlvbGF0aW9ucyBoYXZlIGJlZW4gc2VlbiB3aGVuIGRlbWFuZ2xpbmcgaHVnZSBDKysKKyAgICAgIHN5bWJvbHMuCisgICAgICA8L3A+Cis8cD5JZiB5b3VyIGFwcGxpY2F0aW9uIHVzZXMgbWFueSB0aHJlYWRzIGFuZCBuZWVkcyBhIGxvdCBvZiBtZW1vcnksIHlvdSBjYW4KKyAgICAgIGdhaW4gc29tZSBtZW1vcnkgYnkgcmVkdWNpbmcgdGhlIHNpemUgb2YgdGhlc2UgVmFsZ3JpbmQgc3RhY2tzIHVzaW5nCisgICAgICB0aGUgb3B0aW9uIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tdmFsZ3JpbmQtc3RhY2tzaXplPC9jb2RlPi4KKyAgICAgIDwvcD4KKzwvZGQ+Cis8ZHQ+Cis8YSBuYW1lPSJvcHQuc2hvdy1lbXdhcm5zIj48L2E+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1zaG93LWVtd2FybnM9Jmx0O3llc3xubyZndDsgW2RlZmF1bHQ6IG5vXSA8L2NvZGU+CisgICAgPC9zcGFuPgorPC9kdD4KKzxkZD48cD5XaGVuIGVuYWJsZWQsIFZhbGdyaW5kIHdpbGwgZW1pdCB3YXJuaW5ncyBhYm91dCBpdHMgQ1BVCisgICAgICBlbXVsYXRpb24gaW4gY2VydGFpbiBjYXNlcy4gIFRoZXNlIGFyZSB1c3VhbGx5IG5vdAorICAgICAgaW50ZXJlc3RpbmcuPC9wPjwvZGQ+Cis8ZHQ+Cis8YSBuYW1lPSJvcHQucmVxdWlyZS10ZXh0LXN5bWJvbCI+PC9hPjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tcmVxdWlyZS10ZXh0LXN5bWJvbD06c29uYW1lcGF0dDpmbm5hbWVwYXR0PC9jb2RlPgorICAgIDwvc3Bhbj4KKzwvZHQ+Cis8ZGQ+Cis8cD5XaGVuIGEgc2hhcmVkIG9iamVjdCB3aG9zZSBzb25hbWUKKyAgICAgIG1hdGNoZXMgPGNvZGUgY2xhc3M9InZhcm5hbWUiPnNvbmFtZXBhdHQ8L2NvZGU+IGlzIGxvYWRlZCBpbnRvIHRoZQorICAgICAgcHJvY2VzcywgZXhhbWluZSBhbGwgdGhlIHRleHQgc3ltYm9scyBpdCBleHBvcnRzLiAgSWYgbm9uZSBvZgorICAgICAgdGhvc2UgbWF0Y2ggPGNvZGUgY2xhc3M9InZhcm5hbWUiPmZubmFtZXBhdHQ8L2NvZGU+LCBwcmludCBhbiBlcnJvcgorICAgICAgbWVzc2FnZSBhbmQgYWJhbmRvbiB0aGUgcnVuLiAgVGhpcyBtYWtlcyBpdCBwb3NzaWJsZSB0byBlbnN1cmUKKyAgICAgIHRoYXQgdGhlIHJ1biBkb2VzIG5vdCBjb250aW51ZSB1bmxlc3MgYSBnaXZlbiBzaGFyZWQgb2JqZWN0CisgICAgICBjb250YWlucyBhIHBhcnRpY3VsYXIgZnVuY3Rpb24gbmFtZS4KKyAgICAgIDwvcD4KKzxwPgorICAgICAgQm90aCA8Y29kZSBjbGFzcz0idmFybmFtZSI+c29uYW1lcGF0dDwvY29kZT4gYW5kCisgICAgICA8Y29kZSBjbGFzcz0idmFybmFtZSI+Zm5uYW1lcGF0dDwvY29kZT4gY2FuIGJlIHdyaXR0ZW4gdXNpbmcgdGhlIHVzdWFsCisgICAgICA8Y29kZSBjbGFzcz0idmFybmFtZSI+PzwvY29kZT4gYW5kIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj4qPC9jb2RlPiB3aWxkY2FyZHMuICBGb3IKKyAgICAgIGV4YW1wbGU6IDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj4iOipsaWJjLnNvKjpmb28/YmFyIjwvY29kZT4uICBZb3UgbWF5IHVzZQorICAgICAgY2hhcmFjdGVycyBvdGhlciB0aGFuIGEgY29sb24gdG8gc2VwYXJhdGUgdGhlIHR3byBwYXR0ZXJucy4gIEl0CisgICAgICBpcyBvbmx5IGltcG9ydGFudCB0aGF0IHRoZSBmaXJzdCBjaGFyYWN0ZXIgYW5kIHRoZSBzZXBhcmF0b3IKKyAgICAgIGNoYXJhY3RlciBhcmUgdGhlIHNhbWUuICBGb3IgZXhhbXBsZSwgdGhlIGFib3ZlIGV4YW1wbGUgY291bGQKKyAgICAgIGFsc28gYmUgd3JpdHRlbiA8Y29kZSBjbGFzcz0idmFybmFtZSI+IlEqbGliYy5zbypRZm9vP2JhciI8L2NvZGU+LgorICAgICAgTXVsdGlwbGUgPGNvZGUgY2xhc3M9InZhcm5hbWUiPiAtLXJlcXVpcmUtdGV4dC1zeW1ib2w8L2NvZGU+IGZsYWdzIGFyZQorICAgICAgYWxsb3dlZCwgaW4gd2hpY2ggY2FzZSBzaGFyZWQgb2JqZWN0cyB0aGF0IGFyZSBsb2FkZWQgaW50bworICAgICAgdGhlIHByb2Nlc3Mgd2lsbCBiZSBjaGVja2VkIGFnYWluc3QgYWxsIG9mIHRoZW0uCisgICAgICA8L3A+Cis8cD4KKyAgICAgIFRoZSBwdXJwb3NlIG9mIHRoaXMgaXMgdG8gc3VwcG9ydCByZWxpYWJsZSB1c2FnZSBvZiBtYXJrZWQtdXAKKyAgICAgIGxpYnJhcmllcy4gIEZvciBleGFtcGxlLCBzdXBwb3NlIHdlIGhhdmUgYSB2ZXJzaW9uIG9mIEdDQydzCisgICAgICA8Y29kZSBjbGFzcz0idmFybmFtZSI+bGliZ29tcC5zbzwvY29kZT4gd2hpY2ggaGFzIGJlZW4gbWFya2VkIHVwIHdpdGgKKyAgICAgIGFubm90YXRpb25zIHRvIHN1cHBvcnQgSGVsZ3JpbmQuICBJdCBpcyBvbmx5IHRvbyBlYXN5IGFuZAorICAgICAgY29uZnVzaW5nIHRvIGxvYWQgdGhlIHdyb25nLCB1bi1hbm5vdGF0ZWQKKyAgICAgIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5saWJnb21wLnNvPC9jb2RlPiBpbnRvIHRoZSBhcHBsaWNhdGlvbi4gIFNvIHRoZSBpZGVhCisgICAgICBpczogYWRkIGEgdGV4dCBzeW1ib2wgaW4gdGhlIG1hcmtlZC11cCBsaWJyYXJ5LCBmb3IKKyAgICAgIGV4YW1wbGUgPGNvZGUgY2xhc3M9InZhcm5hbWUiPmFubm90YXRlZF9mb3JfaGVsZ3JpbmRfM182PC9jb2RlPiwgYW5kIHRoZW4KKyAgICAgIGdpdmUgdGhlIGZsYWcKKyAgICAgIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj4tLXJlcXVpcmUtdGV4dC1zeW1ib2w9OipsaWJnb21wKnNvKjphbm5vdGF0ZWRfZm9yX2hlbGdyaW5kXzNfNjwvY29kZT4KKyAgICAgIHNvIHRoYXQgd2hlbiA8Y29kZSBjbGFzcz0idmFybmFtZSI+bGliZ29tcC5zbzwvY29kZT4gaXMgbG9hZGVkLCBWYWxncmluZAorICAgICAgc2NhbnMgaXRzIHN5bWJvbCB0YWJsZSwgYW5kIGlmIHRoZSBzeW1ib2wgaXNuJ3QgcHJlc2VudCB0aGUgcnVuCisgICAgICBpcyBhYm9ydGVkLCByYXRoZXIgdGhhbiBjb250aW51aW5nIHNpbGVudGx5IHdpdGggdGhlCisgICAgICB1bi1tYXJrZWQtdXAgbGlicmFyeS4gIE5vdGUgdGhhdCB5b3Ugc2hvdWxkIHB1dCB0aGUgZW50aXJlIGZsYWcKKyAgICAgIGluIHF1b3RlcyB0byBzdG9wIHNoZWxscyBleHBhbmRpbmcgdXAgdGhlIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj4qPC9jb2RlPgorICAgICAgYW5kIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj4/PC9jb2RlPiB3aWxkY2FyZHMuCisgICAgICA8L3A+Cis8L2RkPgorPGR0PgorPGEgbmFtZT0ib3B0LnNvbmFtZS1zeW5vbnltcyI+PC9hPjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tc29uYW1lLXN5bm9ueW1zPXN5bjE9cGF0dGVybjEsc3luMj1wYXR0ZXJuMiwuLi48L2NvZGU+CisgICAgPC9zcGFuPgorPC9kdD4KKzxkZD4KKzxwPldoZW4gYSBzaGFyZWQgbGlicmFyeSBpcyBsb2FkZWQsIFZhbGdyaW5kIGNoZWNrcyBmb3IKKyAgICAgIGZ1bmN0aW9ucyBpbiB0aGUgbGlicmFyeSB0aGF0IG11c3QgYmUgcmVwbGFjZWQgb3Igd3JhcHBlZC4gIEZvcgorICAgICAgZXhhbXBsZSwgTWVtY2hlY2sgcmVwbGFjZXMgc29tZSBzdHJpbmcgYW5kIG1lbW9yeSBmdW5jdGlvbnMKKyAgICAgIChzdHJjaHIsIHN0cmxlbiwgc3RyY3B5LCBtZW1jaHIsIG1lbWNweSwgbWVtbW92ZSwgZXRjLikgd2l0aCBpdHMKKyAgICAgIG93biB2ZXJzaW9ucy4gIFN1Y2ggcmVwbGFjZW1lbnRzIGFyZSBub3JtYWxseSBkb25lIG9ubHkgaW4gc2hhcmVkCisgICAgICBsaWJyYXJpZXMgd2hvc2Ugc29uYW1lIG1hdGNoZXMgYSBwcmVkZWZpbmVkIHNvbmFtZSBwYXR0ZXJuIChlLmcuCisgICAgICA8Y29kZSBjbGFzcz0idmFybmFtZSI+bGliYy5zbyo8L2NvZGU+IG9uIGxpbnV4KS4gIEJ5IGRlZmF1bHQsIG5vCisgICAgICByZXBsYWNlbWVudCBpcyBkb25lIGZvciBhIHN0YXRpY2FsbHkgbGlua2VkIGJpbmFyeSBvciBmb3IKKyAgICAgIGFsdGVybmF0aXZlIGxpYnJhcmllcywgZXhjZXB0IGZvciB0aGUgYWxsb2NhdGlvbiBmdW5jdGlvbnMKKyAgICAgIChtYWxsb2MsIGZyZWUsIGNhbGxvYywgbWVtYWxpZ24sIHJlYWxsb2MsIG9wZXJhdG9yIG5ldywgb3BlcmF0b3IKKyAgICAgIGRlbGV0ZSwgZXRjLikgU3VjaCBhbGxvY2F0aW9uIGZ1bmN0aW9ucyBhcmUgaW50ZXJjZXB0ZWQgYnkKKyAgICAgIGRlZmF1bHQgaW4gYW55IHNoYXJlZCBsaWJyYXJ5IG9yIGluIHRoZSBleGVjdXRhYmxlIGlmIHRoZXkgYXJlCisgICAgICBleHBvcnRlZCBhcyBnbG9iYWwgc3ltYm9scy4gVGhpcyBtZWFucyB0aGF0IGlmIGEgcmVwbGFjZW1lbnQKKyAgICAgIGFsbG9jYXRpb24gbGlicmFyeSBzdWNoIGFzIHRjbWFsbG9jIGlzIGZvdW5kLCBpdHMgZnVuY3Rpb25zIGFyZQorICAgICAgYWxzbyBpbnRlcmNlcHRlZCBieSBkZWZhdWx0LgorCisgICAgICBJbiBzb21lIGNhc2VzLCB0aGUgcmVwbGFjZW1lbnRzIGFsbG93CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXNvbmFtZS1zeW5vbnltczwvY29kZT4gdG8gc3BlY2lmeSBvbmUgYWRkaXRpb25hbAorICAgICAgc3lub255bSBwYXR0ZXJuLCBnaXZpbmcgZmxleGliaWxpdHkgaW4gdGhlIHJlcGxhY2VtZW50LiAgT3IgdG8KKyAgICAgIHByZXZlbnQgaW50ZXJjZXB0aW9uIG9mIGFsbCBwdWJsaWMgYWxsb2NhdGlvbiBzeW1ib2xzLjwvcD4KKzxwPkN1cnJlbnRseSwgdGhpcyBmbGV4aWJpbGl0eSBpcyBvbmx5IGFsbG93ZWQgZm9yIHRoZQorICAgICAgbWFsbG9jIHJlbGF0ZWQgZnVuY3Rpb25zLCB1c2luZyB0aGUKKyAgICAgIHN5bm9ueW0gPGNvZGUgY2xhc3M9InZhcm5hbWUiPnNvbWFsbG9jPC9jb2RlPi4gIFRoaXMgc3lub255bSBpcyB1c2FibGUgZm9yCisgICAgICBhbGwgdG9vbHMgZG9pbmcgc3RhbmRhcmQgcmVwbGFjZW1lbnQgb2YgbWFsbG9jIHJlbGF0ZWQgZnVuY3Rpb25zCisgICAgICAoZS5nLiBtZW1jaGVjaywgbWFzc2lmLCBkcmQsIGhlbGdyaW5kLCBleHAtZGhhdCwgZXhwLXNnY2hlY2spLgorICAgICAgPC9wPgorPGRpdiBjbGFzcz0iaXRlbWl6ZWRsaXN0Ij48dWwgY2xhc3M9Iml0ZW1pemVkbGlzdCIgc3R5bGU9Imxpc3Qtc3R5bGUtdHlwZTogZGlzYzsgIj4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPgorPHA+QWx0ZXJuYXRlIG1hbGxvYyBsaWJyYXJ5OiB0byByZXBsYWNlIHRoZSBtYWxsb2MKKyAgICAgICAgICByZWxhdGVkIGZ1bmN0aW9ucyBpbiBhIHNwZWNpZmljIGFsdGVybmF0ZSBsaWJyYXJ5IHdpdGgKKyAgICAgICAgICBzb25hbWUgPGNvZGUgY2xhc3M9InZhcm5hbWUiPm15bWFsbG9jbGliLnNvPC9jb2RlPiAoYW5kIG5vdCBpbiBhbnkKKyAgICAgICAgICBvdGhlcnMpLCBnaXZlIHRoZQorICAgICAgICAgIG9wdGlvbiA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXNvbmFtZS1zeW5vbnltcz1zb21hbGxvYz1teW1hbGxvY2xpYi5zbzwvY29kZT4uCisgICAgICAgICAgQSBwYXR0ZXJuIGNhbiBiZSB1c2VkIHRvIG1hdGNoIG11bHRpcGxlIGxpYnJhcmllcyBzb25hbWVzLgorICAgICAgICAgIEZvcgorICAgICAgICAgIGV4YW1wbGUsIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tc29uYW1lLXN5bm9ueW1zPXNvbWFsbG9jPSp0Y21hbGxvYyo8L2NvZGU+CisgICAgICAgICAgd2lsbCBtYXRjaCB0aGUgc29uYW1lIG9mIGFsbCB2YXJpYW50cyBvZiB0aGUgdGNtYWxsb2MKKyAgICAgICAgICBsaWJyYXJ5IChuYXRpdmUsIGRlYnVnLCBwcm9maWxlZCwgLi4uIHRjbWFsbG9jCisgICAgICAgICAgdmFyaWFudHMpLiA8L3A+Cis8cD5Ob3RlOiB0aGUgc29uYW1lIG9mIGEgZWxmIHNoYXJlZCBsaWJyYXJ5IGNhbiBiZQorICAgICAgICAgIHJldHJpZXZlZCB1c2luZyB0aGUgcmVhZGVsZiB1dGlsaXR5LiA8L3A+Cis8L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+UmVwbGFjZW1lbnRzIGluIGEgc3RhdGljYWxseSBsaW5rZWQgbGlicmFyeSBhcmUgZG9uZQorICAgICAgICAgIGJ5IHVzaW5nIHRoZSA8Y29kZSBjbGFzcz0idmFybmFtZSI+Tk9ORTwvY29kZT4gcGF0dGVybi4gRm9yIGV4YW1wbGUsCisgICAgICAgICAgaWYgeW91IGxpbmsgd2l0aCA8Y29kZSBjbGFzcz0idmFybmFtZSI+bGlidGNtYWxsb2MuYTwvY29kZT4sIGFuZCBvbmx5CisgICAgICAgICAgd2FudCB0byBpbnRlcmNlcHQgdGhlIG1hbGxvYyByZWxhdGVkIGZ1bmN0aW9ucyBpbiB0aGUKKyAgICAgICAgICBleGVjdXRhYmxlIChhbmQgc3RhbmRhcmQgbGlicmFyaWVzKSB0aGVtc2VsdmVzLCBidXQgbm90IGFueQorICAgICAgICAgIG90aGVyIHNoYXJlZCBsaWJyYXJpZXMsIHlvdSBjYW4gZ2l2ZSB0aGUKKyAgICAgICAgICBvcHRpb24gPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1zb25hbWUtc3lub255bXM9c29tYWxsb2M9Tk9ORTwvY29kZT4uCisgICAgICAgICAgTm90ZSB0aGF0IGEgTk9ORSBwYXR0ZXJuIHdpbGwgbWF0Y2ggdGhlIG1haW4gZXhlY3V0YWJsZSBhbmQKKyAgICAgICAgICBhbnkgc2hhcmVkIGxpYnJhcnkgaGF2aW5nIG5vIHNvbmFtZS4gPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5UbyBydW4gYSAiZGVmYXVsdCIgRmlyZWZveCBidWlsZCBmb3IgTGludXgsIGluIHdoaWNoCisgICAgICAgICAgSkVNYWxsb2MgaXMgbGlua2VkIGluIHRvIHRoZSBtYWluIGV4ZWN1dGFibGUsCisgICAgICAgICAgdXNlIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tc29uYW1lLXN5bm9ueW1zPXNvbWFsbG9jPU5PTkU8L2NvZGU+LgorICAgICAgICAgIDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+VG8gb25seSBpbnRlcmNlcHQgYWxsb2NhdGlvbiBzeW1ib2xzIGluIHRoZSBkZWZhdWx0CisJICBzeXN0ZW0gbGlicmFyaWVzLCBidXQgbm90IGluIGFueSBvdGhlciBzaGFyZWQgbGlicmFyeSBvciB0aGUKKwkgIGV4ZWN1dGFibGUgZGVmaW5pbmcgcHVibGljIG1hbGxvYyBvciBvcGVyYXRvciBuZXcgcmVsYXRlZAorCSAgZnVuY3Rpb25zIHVzZSBhIG5vbi1leGlzdGluZyBsaWJyYXJ5IG5hbWUKKwkgIGxpa2UgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1zb25hbWUtc3lub255bXM9c29tYWxsb2M9bm91c2VyaW50ZXJjZXB0czwvY29kZT4KKwkgICh3aGVyZSA8Y29kZSBjbGFzcz0idmFybmFtZSI+bm91c2VyaW50ZXJjZXB0czwvY29kZT4gY2FuIGJlIGFueQorCSAgbm9uLWV4aXN0aW5nIGxpYnJhcnkgbmFtZSkuCisJICA8L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPlNoYXJlZCBsaWJyYXJ5IG9mIHRoZSBkeW5hbWljIChydW50aW1lKSBsaW5rZXIgaXMgZXhjbHVkZWQgZnJvbQorICAgICAgICAgc2VhcmNoaW5nIGZvciBnbG9iYWwgcHVibGljIHN5bWJvbHMsIHN1Y2ggYXMgdGhvc2UgZm9yIHRoZSBtYWxsb2MKKyAgICAgICAgIHJlbGF0ZWQgZnVuY3Rpb25zIChpZGVudGlmaWVkIGJ5IDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5zb21hbGxvYzwvY29kZT4gc3lub255bSkuCisgICAgICAgICA8L3A+PC9saT4KKzwvdWw+PC9kaXY+Cis8L2RkPgorPC9kbD4KKzwvZGl2PgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MiI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9Im1hbnVhbC1jb3JlLmRlYnVnb3B0cyI+PC9hPjIuNi42LqBEZWJ1Z2dpbmcgT3B0aW9uczwvaDM+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD48YSBuYW1lPSJkZWJ1Zy5vcHRzLnBhcmEiPjwvYT5UaGVyZSBhcmUgYWxzbyBzb21lIG9wdGlvbnMgZm9yIGRlYnVnZ2luZworVmFsZ3JpbmQgaXRzZWxmLiAgWW91IHNob3VsZG4ndCBuZWVkIHRvIHVzZSB0aGVtIGluIHRoZSBub3JtYWwgcnVuIG9mCit0aGluZ3MuICBJZiB5b3Ugd2lzaCB0byBzZWUgdGhlIGxpc3QsIHVzZSB0aGUKKzxjb2RlIGNsYXNzPSJvcHRpb24iPi0taGVscC1kZWJ1ZzwvY29kZT4gb3B0aW9uLjwvcD4KKzxwPklmIHlvdSB3aXNoIHRvIGRlYnVnIHlvdXIgcHJvZ3JhbSByYXRoZXIgdGhhbiBkZWJ1Z2dpbmcKK1ZhbGdyaW5kIGl0c2VsZiwgdGhlbiB5b3Ugc2hvdWxkIHVzZSB0aGUgb3B0aW9ucworPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS12Z2RiPXllczwvY29kZT4gb3IgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS12Z2RiPWZ1bGw8L2NvZGU+LgorPC9wPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MiI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9Im1hbnVhbC1jb3JlLmRlZm9wdHMiPjwvYT4yLjYuNy6gU2V0dGluZyBEZWZhdWx0IE9wdGlvbnM8L2gzPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+Tm90ZSB0aGF0IFZhbGdyaW5kIGFsc28gcmVhZHMgb3B0aW9ucyBmcm9tIHRocmVlIHBsYWNlczo8L3A+Cis8ZGl2IGNsYXNzPSJvcmRlcmVkbGlzdCI+PG9sIGNsYXNzPSJvcmRlcmVkbGlzdCIgdHlwZT0iMSI+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5UaGUgZmlsZSA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPn4vLnZhbGdyaW5kcmM8L2NvZGU+PC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5UaGUgZW52aXJvbm1lbnQgdmFyaWFibGUKKyAgICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPiRWQUxHUklORF9PUFRTPC9jb2RlPjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+VGhlIGZpbGUgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij4uLy52YWxncmluZHJjPC9jb2RlPjwvcD48L2xpPgorPC9vbD48L2Rpdj4KKzxwPlRoZXNlIGFyZSBwcm9jZXNzZWQgaW4gdGhlIGdpdmVuIG9yZGVyLCBiZWZvcmUgdGhlCitjb21tYW5kLWxpbmUgb3B0aW9ucy4gIE9wdGlvbnMgcHJvY2Vzc2VkIGxhdGVyIG92ZXJyaWRlIHRob3NlCitwcm9jZXNzZWQgZWFybGllcjsgZm9yIGV4YW1wbGUsIG9wdGlvbnMgaW4KKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+Li8udmFsZ3JpbmRyYzwvY29kZT4gd2lsbCB0YWtlCitwcmVjZWRlbmNlIG92ZXIgdGhvc2UgaW4KKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+fi8udmFsZ3JpbmRyYzwvY29kZT4uCis8L3A+Cis8cD5QbGVhc2Ugbm90ZSB0aGF0IHRoZSA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPi4vLnZhbGdyaW5kcmM8L2NvZGU+CitmaWxlIGlzIGlnbm9yZWQgaWYgaXQgaXMgbWFya2VkIGFzIHdvcmxkIHdyaXRlYWJsZSBvciBub3Qgb3duZWQgCitieSB0aGUgY3VycmVudCB1c2VyLiBUaGlzIGlzIGJlY2F1c2UgdGhlCis8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPi4vLnZhbGdyaW5kcmM8L2NvZGU+IGNhbiBjb250YWluIG9wdGlvbnMgdGhhdCBhcmUKK3BvdGVudGlhbGx5IGhhcm1mdWwgb3IgY2FuIGJlIHVzZWQgYnkgYSBsb2NhbCBhdHRhY2tlciB0byBleGVjdXRlIGNvZGUgdW5kZXIKK3lvdXIgdXNlciBhY2NvdW50LgorPC9wPgorPHA+QW55IHRvb2wtc3BlY2lmaWMgb3B0aW9ucyBwdXQgaW4KKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+JFZBTEdSSU5EX09QVFM8L2NvZGU+IG9yIHRoZQorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij4udmFsZ3JpbmRyYzwvY29kZT4gZmlsZXMgc2hvdWxkIGJlCitwcmVmaXhlZCB3aXRoIHRoZSB0b29sIG5hbWUgYW5kIGEgY29sb24uICBGb3IgZXhhbXBsZSwgaWYgeW91Cit3YW50IE1lbWNoZWNrIHRvIGFsd2F5cyBkbyBsZWFrIGNoZWNraW5nLCB5b3UgY2FuIHB1dCB0aGUKK2ZvbGxvd2luZyBlbnRyeSBpbiA8Y29kZSBjbGFzcz0ibGl0ZXJhbCI+fi8udmFsZ3JpbmRyYzwvY29kZT46PC9wPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPgorLS1tZW1jaGVjazpsZWFrLWNoZWNrPXllczwvcHJlPgorPHA+VGhpcyB3aWxsIGJlIGlnbm9yZWQgaWYgYW55IHRvb2wgb3RoZXIgdGhhbiBNZW1jaGVjayBpcworcnVuLiAgV2l0aG91dCB0aGUgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5tZW1jaGVjazo8L2NvZGU+CitwYXJ0LCB0aGlzIHdpbGwgY2F1c2UgcHJvYmxlbXMgaWYgeW91IHNlbGVjdCBvdGhlciB0b29scyB0aGF0Citkb24ndCB1bmRlcnN0YW5kCis8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWxlYWstY2hlY2s9eWVzPC9jb2RlPi48L3A+Cis8L2Rpdj4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDEiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj4KKzxhIG5hbWU9Im1hbnVhbC1jb3JlLnB0aHJlYWRzIj48L2E+Mi43LqBTdXBwb3J0IGZvciBUaHJlYWRzPC9oMj48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPlRocmVhZGVkIHByb2dyYW1zIGFyZSBmdWxseSBzdXBwb3J0ZWQuPC9wPgorPHA+VGhlIG1haW4gdGhpbmcgdG8gcG9pbnQgb3V0IHdpdGggcmVzcGVjdCB0byB0aHJlYWRlZCBwcm9ncmFtcyBpcwordGhhdCB5b3VyIHByb2dyYW0gd2lsbCB1c2UgdGhlIG5hdGl2ZSB0aHJlYWRpbmcgbGlicmFyeSwgYnV0IFZhbGdyaW5kCitzZXJpYWxpc2VzIGV4ZWN1dGlvbiBzbyB0aGF0IG9ubHkgb25lIChrZXJuZWwpIHRocmVhZCBpcyBydW5uaW5nIGF0IGEKK3RpbWUuICBUaGlzIGFwcHJvYWNoIGF2b2lkcyB0aGUgaG9ycmlibGUgaW1wbGVtZW50YXRpb24gcHJvYmxlbXMgb2YKK2ltcGxlbWVudGluZyBhIHRydWx5IG11bHRpdGhyZWFkZWQgdmVyc2lvbiBvZiBWYWxncmluZCwgYnV0IGl0IGRvZXMKK21lYW4gdGhhdCB0aHJlYWRlZCBhcHBzIG5ldmVyIHVzZSBtb3JlIHRoYW4gb25lIENQVSBzaW11bHRhbmVvdXNseSwKK2V2ZW4gaWYgeW91IGhhdmUgYSBtdWx0aXByb2Nlc3NvciBvciBtdWx0aWNvcmUgbWFjaGluZS48L3A+Cis8cD5WYWxncmluZCBkb2Vzbid0IHNjaGVkdWxlIHRoZSB0aHJlYWRzIGl0c2VsZi4gIEl0IG1lcmVseSBlbnN1cmVzCit0aGF0IG9ubHkgb25lIHRocmVhZCBydW5zIGF0IG9uY2UsIHVzaW5nIGEgc2ltcGxlIGxvY2tpbmcgc2NoZW1lLiAgVGhlCithY3R1YWwgdGhyZWFkIHNjaGVkdWxpbmcgcmVtYWlucyB1bmRlciBjb250cm9sIG9mIHRoZSBPUyBrZXJuZWwuICBXaGF0Cit0aGlzIGRvZXMgbWVhbiwgdGhvdWdoLCBpcyB0aGF0IHlvdXIgcHJvZ3JhbSB3aWxsIHNlZSB2ZXJ5IGRpZmZlcmVudAorc2NoZWR1bGluZyB3aGVuIHJ1biBvbiBWYWxncmluZCB0aGFuIGl0IGRvZXMgd2hlbiBydW5uaW5nIG5vcm1hbGx5LgorVGhpcyBpcyBib3RoIGJlY2F1c2UgVmFsZ3JpbmQgaXMgc2VyaWFsaXNpbmcgdGhlIHRocmVhZHMsIGFuZCBiZWNhdXNlCit0aGUgY29kZSBydW5zIHNvIG11Y2ggc2xvd2VyIHRoYW4gbm9ybWFsLjwvcD4KKzxwPlRoaXMgZGlmZmVyZW5jZSBpbiBzY2hlZHVsaW5nIG1heSBjYXVzZSB5b3VyIHByb2dyYW0gdG8gYmVoYXZlCitkaWZmZXJlbnRseSwgaWYgeW91IGhhdmUgc29tZSBraW5kIG9mIGNvbmN1cnJlbmN5LCBjcml0aWNhbCByYWNlLAorbG9ja2luZywgb3Igc2ltaWxhciwgYnVncy4gIEluIHRoYXQgY2FzZSB5b3UgbWlnaHQgY29uc2lkZXIgdXNpbmcgdGhlCit0b29scyBIZWxncmluZCBhbmQvb3IgRFJEIHRvIHRyYWNrIHRoZW0gZG93bi48L3A+Cis8cD5PbiBMaW51eCwgVmFsZ3JpbmQgYWxzbyBzdXBwb3J0cyBkaXJlY3QgdXNlIG9mIHRoZQorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5jbG9uZTwvY29kZT4gc3lzdGVtIGNhbGwsCis8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmZ1dGV4PC9jb2RlPiBhbmQgc28gb24uCis8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmNsb25lPC9jb2RlPiBpcyBzdXBwb3J0ZWQgd2hlcmUgZWl0aGVyCitldmVyeXRoaW5nIGlzIHNoYXJlZCAoYSB0aHJlYWQpIG9yIG5vdGhpbmcgaXMgc2hhcmVkIChmb3JrLWxpa2UpOyBwYXJ0aWFsCitzaGFyaW5nIHdpbGwgZmFpbC4KKzwvcD4KKzxkaXYgY2xhc3M9InNlY3QyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0ibWFudWFsLWNvcmUucHRocmVhZHNfcGVyZl9zY2hlZCI+PC9hPjIuNy4xLqBTY2hlZHVsaW5nIGFuZCBNdWx0aS1UaHJlYWQgUGVyZm9ybWFuY2U8L2gzPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+QSB0aHJlYWQgZXhlY3V0ZXMgY29kZSBvbmx5IHdoZW4gaXQgaG9sZHMgdGhlIGFib3ZlbWVudGlvbmVkCitsb2NrLiAgQWZ0ZXIgZXhlY3V0aW5nIHNvbWUgbnVtYmVyIG9mIGluc3RydWN0aW9ucywgdGhlIHJ1bm5pbmcgdGhyZWFkCit3aWxsIHJlbGVhc2UgdGhlIGxvY2suICBBbGwgdGhyZWFkcyByZWFkeSB0byBydW4gd2lsbCB0aGVuIGNvbXBldGUgdG8KK2FjcXVpcmUgdGhlIGxvY2suPC9wPgorPHA+VGhlIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tZmFpci1zY2hlZDwvY29kZT4gb3B0aW9uIGNvbnRyb2xzIHRoZSBsb2NraW5nIG1lY2hhbmlzbQordXNlZCB0byBzZXJpYWxpc2UgdGhyZWFkIGV4ZWN1dGlvbi48L3A+Cis8cD5UaGUgZGVmYXVsdCBwaXBlIGJhc2VkIGxvY2tpbmcgbWVjaGFuaXNtCisoPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1mYWlyLXNjaGVkPW5vPC9jb2RlPikgaXMgYXZhaWxhYmxlIG9uIGFsbAorcGxhdGZvcm1zLiAgUGlwZSBiYXNlZCBsb2NraW5nIGRvZXMgbm90IGd1YXJhbnRlZSBmYWlybmVzcyBiZXR3ZWVuCit0aHJlYWRzOiBpdCBpcyBxdWl0ZSBsaWtlbHkgdGhhdCBhIHRocmVhZCB0aGF0IGhhcyBqdXN0IHJlbGVhc2VkIHRoZQorbG9jayByZWFjcXVpcmVzIGl0IGltbWVkaWF0ZWx5LCBldmVuIHRob3VnaCBvdGhlciB0aHJlYWRzIGFyZSByZWFkeSB0bworcnVuLiAgV2hlbiB1c2luZyBwaXBlIGJhc2VkIGxvY2tpbmcsIGRpZmZlcmVudCBydW5zIG9mIHRoZSBzYW1lCittdWx0aXRocmVhZGVkIGFwcGxpY2F0aW9uIG1pZ2h0IGdpdmUgdmVyeSBkaWZmZXJlbnQgdGhyZWFkCitzY2hlZHVsaW5nLjwvcD4KKzxwPkFuIGFsdGVybmF0aXZlIGxvY2tpbmcgbWVjaGFuaXNtLCBiYXNlZCBvbiBmdXRleGVzLCBpcyBhdmFpbGFibGUKK29uIHNvbWUgcGxhdGZvcm1zLiAgSWYgYXZhaWxhYmxlLCBpdCBpcyBhY3RpdmF0ZWQKK2J5IDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tZmFpci1zY2hlZD15ZXM8L2NvZGU+IG9yCis8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWZhaXItc2NoZWQ9dHJ5PC9jb2RlPi4gIEZ1dGV4IGJhc2VkIGxvY2tpbmcgZW5zdXJlcworZmFpcm5lc3MgKHJvdW5kLXJvYmluIHNjaGVkdWxpbmcpIGJldHdlZW4gdGhyZWFkczogaWYgbXVsdGlwbGUgdGhyZWFkcworYXJlIHJlYWR5IHRvIHJ1biwgdGhlIGxvY2sgd2lsbCBiZSBnaXZlbiB0byB0aGUgdGhyZWFkIHdoaWNoIGZpcnN0CityZXF1ZXN0ZWQgdGhlIGxvY2suICBOb3RlIHRoYXQgYSB0aHJlYWQgd2hpY2ggaXMgYmxvY2tlZCBpbiBhIHN5c3RlbQorY2FsbCAoZS5nLiBpbiBhIGJsb2NraW5nIHJlYWQgc3lzdGVtIGNhbGwpIGhhcyBub3QgKHlldCkgcmVxdWVzdGVkIHRoZQorbG9jazogc3VjaCBhIHRocmVhZCByZXF1ZXN0cyB0aGUgbG9jayBvbmx5IGFmdGVyIHRoZSBzeXN0ZW0gY2FsbCBpcworZmluaXNoZWQuPC9wPgorPHA+IFRoZSBmYWlybmVzcyBvZiB0aGUgZnV0ZXggYmFzZWQgbG9ja2luZyBwcm9kdWNlcyBiZXR0ZXIKK3JlcHJvZHVjaWJpbGl0eSBvZiB0aHJlYWQgc2NoZWR1bGluZyBmb3IgZGlmZmVyZW50IGV4ZWN1dGlvbnMgb2YgYQorbXVsdGl0aHJlYWRlZCBhcHBsaWNhdGlvbi4gVGhpcyBiZXR0ZXIgcmVwcm9kdWNpYmlsaXR5IGlzIHBhcnRpY3VsYXJseQoraGVscGZ1bCB3aGVuIHVzaW5nIEhlbGdyaW5kIG9yIERSRC48L3A+Cis8cD5WYWxncmluZCdzIHVzZSBvZiB0aHJlYWQgc2VyaWFsaXNhdGlvbiBpbXBsaWVzIHRoYXQgb25seSBvbmUKK3RocmVhZCBhdCBhIHRpbWUgbWF5IHJ1bi4gIE9uIGEgbXVsdGlwcm9jZXNzb3IvbXVsdGljb3JlIHN5c3RlbSwgdGhlCitydW5uaW5nIHRocmVhZCBpcyBhc3NpZ25lZCB0byBvbmUgb2YgdGhlIENQVXMgYnkgdGhlIE9TIGtlcm5lbAorc2NoZWR1bGVyLiAgV2hlbiBhIHRocmVhZCBhY3F1aXJlcyB0aGUgbG9jaywgc29tZXRpbWVzIHRoZSB0aHJlYWQgd2lsbAorYmUgYXNzaWduZWQgdG8gdGhlIHNhbWUgQ1BVIGFzIHRoZSB0aHJlYWQgdGhhdCBqdXN0IHJlbGVhc2VkIHRoZQorbG9jay4gIFNvbWV0aW1lcywgdGhlIHRocmVhZCB3aWxsIGJlIGFzc2lnbmVkIHRvIGFub3RoZXIgQ1BVLiAgV2hlbgordXNpbmcgcGlwZSBiYXNlZCBsb2NraW5nLCB0aGUgdGhyZWFkIHRoYXQganVzdCBhY3F1aXJlZCB0aGUgbG9jaword2lsbCB1c3VhbGx5IGJlIHNjaGVkdWxlZCBvbiB0aGUgc2FtZSBDUFUgYXMgdGhlIHRocmVhZCB0aGF0IGp1c3QKK3JlbGVhc2VkIHRoZSBsb2NrLiAgV2l0aCB0aGUgZnV0ZXggYmFzZWQgbWVjaGFuaXNtLCB0aGUgdGhyZWFkIHRoYXQKK2p1c3QgYWNxdWlyZWQgdGhlIGxvY2sgd2lsbCBtb3JlIG9mdGVuIGJlIHNjaGVkdWxlZCBvbiBhbm90aGVyCitDUFUuPC9wPgorPHA+VmFsZ3JpbmQncyB0aHJlYWQgc2VyaWFsaXNhdGlvbiBhbmQgQ1BVIGFzc2lnbm1lbnQgYnkgdGhlIE9TCitrZXJuZWwgc2NoZWR1bGVyIGNhbiBpbnRlcmFjdCBiYWRseSB3aXRoIHRoZSBDUFUgZnJlcXVlbmN5IHNjYWxpbmcKK2F2YWlsYWJsZSBvbiBtYW55IG1vZGVybiBDUFVzLiAgVG8gZGVjcmVhc2UgcG93ZXIgY29uc3VtcHRpb24sIHRoZQorZnJlcXVlbmN5IG9mIGEgQ1BVIG9yIGNvcmUgaXMgYXV0b21hdGljYWxseSBkZWNyZWFzZWQgaWYgdGhlIENQVS9jb3JlCitoYXMgbm90IGJlZW4gdXNlZCByZWNlbnRseS4gIElmIHRoZSBPUyBrZXJuZWwgb2Z0ZW4gYXNzaWducyB0aGUgdGhyZWFkCit3aGljaCBqdXN0IGFjcXVpcmVkIHRoZSBsb2NrIHRvIGFub3RoZXIgQ1BVL2NvcmUsIGl0IGlzIHF1aXRlIGxpa2VseQordGhhdCB0aGlzIENQVS9jb3JlIGlzIGN1cnJlbnRseSBhdCBhIGxvdyBmcmVxdWVuY3kuICBUaGUgZnJlcXVlbmN5IG9mCit0aGlzIENQVSB3aWxsIGJlIGluY3JlYXNlZCBhZnRlciBzb21lIHRpbWUuICBIb3dldmVyLCBkdXJpbmcgdGhpcwordGltZSwgdGhlIChvbmx5KSBydW5uaW5nIHRocmVhZCB3aWxsIGhhdmUgcnVuIGF0IHRoZSBsb3cgZnJlcXVlbmN5LgorT25jZSB0aGlzIHRocmVhZCBoYXMgcnVuIGZvciBzb21lIHRpbWUsIGl0IHdpbGwgcmVsZWFzZSB0aGUgbG9jay4KK0Fub3RoZXIgdGhyZWFkIHdpbGwgYWNxdWlyZSB0aGlzIGxvY2ssIGFuZCBtaWdodCBiZSBzY2hlZHVsZWQgYWdhaW4gb24KK2Fub3RoZXIgQ1BVIHdob3NlIGNsb2NrIGZyZXF1ZW5jeSB3YXMgZGVjcmVhc2VkIGluIHRoZQorbWVhbnRpbWUuPC9wPgorPHA+VGhlIGZ1dGV4IGJhc2VkIGxvY2tpbmcgY2F1c2VzIHRocmVhZHMgdG8gY2hhbmdlIENQVXMvY29yZXMgbW9yZQorb2Z0ZW4uICBTbywgaWYgQ1BVIGZyZXF1ZW5jeSBzY2FsaW5nIGlzIGFjdGl2YXRlZCwgdGhlIGZ1dGV4IGJhc2VkCitsb2NraW5nIG1pZ2h0IGRlY3JlYXNlIHNpZ25pZmljYW50bHkgdGhlIHBlcmZvcm1hbmNlIG9mIGEKK211bHRpdGhyZWFkZWQgYXBwIHJ1bm5pbmcgdW5kZXIgVmFsZ3JpbmQuICBQZXJmb3JtYW5jZSBsb3NzZXMgb2YgdXAgdG8KKzUwJSBkZWdyYWRhdGlvbiBoYXZlIGJlZW4gb2JzZXJ2ZWQsIGFzIGNvbXBhcmVkIHRvIHJ1bm5pbmcgb24gYQorbWFjaGluZSBmb3Igd2hpY2ggQ1BVIGZyZXF1ZW5jeSBzY2FsaW5nIGhhcyBiZWVuIGRpc2FibGVkLiAgVGhlIHBpcGUKK2Jhc2VkIGxvY2tpbmcgbG9ja2luZyBzY2hlbWUgYWxzbyBpbnRlcmFjdHMgYmFkbHkgd2l0aCBDUFUgZnJlcXVlbmN5CitzY2FsaW5nLCB3aXRoIHBlcmZvcm1hbmNlIGxvc3NlcyBpbiB0aGUgcmFuZ2UgMTAuLjIwJSBoYXZpbmcgYmVlbgorb2JzZXJ2ZWQuPC9wPgorPHA+VG8gYXZvaWQgc3VjaCBwZXJmb3JtYW5jZSBkZWdyYWRhdGlvbiwgeW91IHNob3VsZCBpbmRpY2F0ZSB0bwordGhlIGtlcm5lbCB0aGF0IGFsbCBDUFVzL2NvcmVzIHNob3VsZCBhbHdheXMgcnVuIGF0IG1heGltdW0gY2xvY2sKK3NwZWVkLiAgRGVwZW5kaW5nIG9uIHlvdXIgTGludXggZGlzdHJpYnV0aW9uLCBDUFUgZnJlcXVlbmN5IHNjYWxpbmcKK21heSBiZSBjb250cm9sbGVkIHVzaW5nIGEgZ3JhcGhpY2FsIGludGVyZmFjZSBvciB1c2luZyBjb21tYW5kIGxpbmUKK3N1Y2ggYXMKKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+Y3B1ZnJlcS1zZWxlY3RvcjwvY29kZT4gb3IKKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+Y3B1ZnJlcS1zZXQ8L2NvZGU+LgorPC9wPgorPHA+QW4gYWx0ZXJuYXRpdmUgd2F5IHRvIGF2b2lkIHRoZXNlIHByb2JsZW1zIGlzIHRvIHRlbGwgdGhlCitPUyBzY2hlZHVsZXIgdG8gdGllIGEgVmFsZ3JpbmQgcHJvY2VzcyB0byBhIHNwZWNpZmljIChmaXhlZCkgQ1BVIHVzaW5nIHRoZQorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij50YXNrc2V0PC9jb2RlPiBjb21tYW5kLiAgVGhpcyBzaG91bGQgZW5zdXJlCit0aGF0IHRoZSBzZWxlY3RlZCBDUFUgZG9lcyBub3QgZmFsbCBiZWxvdyBpdHMgbWF4aW11bSBmcmVxdWVuY3kKK3NldHRpbmcgc28gbG9uZyBhcyBhbnkgdGhyZWFkIG9mIHRoZSBwcm9ncmFtIGhhcyB3b3JrIHRvIGRvLgorPC9wPgorPC9kaXY+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QxIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+Cis8YSBuYW1lPSJtYW51YWwtY29yZS5zaWduYWxzIj48L2E+Mi44LqBIYW5kbGluZyBvZiBTaWduYWxzPC9oMj48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPlZhbGdyaW5kIGhhcyBhIGZhaXJseSBjb21wbGV0ZSBzaWduYWwgaW1wbGVtZW50YXRpb24uICBJdCBzaG91bGQgYmUKK2FibGUgdG8gY29wZSB3aXRoIGFueSBQT1NJWC1jb21wbGlhbnQgdXNlIG9mIHNpZ25hbHMuPC9wPgorPHA+SWYgeW91J3JlIHVzaW5nIHNpZ25hbHMgaW4gY2xldmVyIHdheXMgKGZvciBleGFtcGxlLCBjYXRjaGluZworU0lHU0VHViwgbW9kaWZ5aW5nIHBhZ2Ugc3RhdGUgYW5kIHJlc3RhcnRpbmcgdGhlIGluc3RydWN0aW9uKSwgeW91J3JlCitwcm9iYWJseSByZWx5aW5nIG9uIHByZWNpc2UgZXhjZXB0aW9ucy4gIEluIHRoaXMgY2FzZSwgeW91IHdpbGwgbmVlZAordG8gdXNlIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tdmV4LWlyb3B0LXJlZ2lzdGVyLXVwZGF0ZXM9YWxscmVncy1hdC1tZW0tYWNjZXNzPC9jb2RlPgorb3IgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS12ZXgtaXJvcHQtcmVnaXN0ZXItdXBkYXRlcz1hbGxyZWdzLWF0LWVhY2gtaW5zbjwvY29kZT4uCis8L3A+Cis8cD5JZiB5b3VyIHByb2dyYW0gZGllcyBhcyBhIHJlc3VsdCBvZiBhIGZhdGFsIGNvcmUtZHVtcGluZyBzaWduYWwsCitWYWxncmluZCB3aWxsIGdlbmVyYXRlIGl0cyBvd24gY29yZSBmaWxlCisoPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij52Z2NvcmUuTk5OTk48L2NvZGU+KSBjb250YWluaW5nIHlvdXIgcHJvZ3JhbSdzCitzdGF0ZS4gIFlvdSBtYXkgdXNlIHRoaXMgY29yZSBmaWxlIGZvciBwb3N0LW1vcnRlbSBkZWJ1Z2dpbmcgd2l0aCBHREIgb3IKK3NpbWlsYXIuICAoTm90ZTogaXQgd2lsbCBub3QgZ2VuZXJhdGUgYSBjb3JlIGlmIHlvdXIgY29yZSBkdW1wIHNpemUgbGltaXQgaXMKKzAuKSAgQXQgdGhlIHRpbWUgb2Ygd3JpdGluZyB0aGUgY29yZSBkdW1wcyBkbyBub3QgaW5jbHVkZSBhbGwgdGhlIGZsb2F0aW5nCitwb2ludCByZWdpc3RlciBpbmZvcm1hdGlvbi48L3A+Cis8cD5JbiB0aGUgdW5saWtlbHkgZXZlbnQgdGhhdCBWYWxncmluZCBpdHNlbGYgY3Jhc2hlcywgdGhlIG9wZXJhdGluZyBzeXN0ZW0KK3dpbGwgY3JlYXRlIGEgY29yZSBkdW1wIGluIHRoZSB1c3VhbCB3YXkuPC9wPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MSI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPgorPGEgbmFtZT0ibWFudWFsLWNvcmUuaW5zdGFsbCI+PC9hPjIuOS6gQnVpbGRpbmcgYW5kIEluc3RhbGxpbmcgVmFsZ3JpbmQ8L2gyPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+V2UgdXNlIHRoZSBzdGFuZGFyZCBVbml4Cis8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPi4vY29uZmlndXJlPC9jb2RlPiwKKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+bWFrZTwvY29kZT4sIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+bWFrZQoraW5zdGFsbDwvY29kZT4gbWVjaGFuaXNtLiAgT25jZSB5b3UgaGF2ZSBjb21wbGV0ZWQgCis8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPm1ha2UgaW5zdGFsbDwvY29kZT4geW91IG1heSB0aGVuIHdhbnQgCit0byBydW4gdGhlIHJlZ3Jlc3Npb24gdGVzdHMKK3dpdGggPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5tYWtlIHJlZ3Rlc3Q8L2NvZGU+LgorPC9wPgorPHA+SW4gYWRkaXRpb24gdG8gdGhlIHVzdWFsCis8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXByZWZpeD0vcGF0aC90by9pbnN0YWxsL3RyZWU8L2NvZGU+LCB0aGVyZSBhcmUgdGhyZWUKKyBvcHRpb25zIHdoaWNoIGFmZmVjdCBob3cgVmFsZ3JpbmQgaXMgYnVpbHQ6Cis8L3A+Cis8ZGl2IGNsYXNzPSJpdGVtaXplZGxpc3QiPjx1bCBjbGFzcz0iaXRlbWl6ZWRsaXN0IiBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOiBkaXNjOyAiPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+Cis8cD48Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWVuYWJsZS1pbm5lcjwvY29kZT48L3A+Cis8cD5UaGlzIGJ1aWxkcyBWYWxncmluZCB3aXRoIHNvbWUgc3BlY2lhbCBtYWdpYyBoYWNrcyB3aGljaCBtYWtlCisgICAgIGl0IHBvc3NpYmxlIHRvIHJ1biBpdCBvbiBhIHN0YW5kYXJkIGJ1aWxkIG9mIFZhbGdyaW5kICh3aGF0IHRoZQorICAgICBkZXZlbG9wZXJzIGNhbGwgInNlbGYtaG9zdGluZyIpLiAgT3JkaW5hcmlseSB5b3Ugc2hvdWxkIG5vdCB1c2UKKyAgICAgdGhpcyBvcHRpb24gYXMgdmFyaW91cyBraW5kcyBvZiBzYWZldHkgY2hlY2tzIGFyZSBkaXNhYmxlZC4KKyAgIDwvcD4KKzwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj4KKzxwPjxjb2RlIGNsYXNzPSJvcHRpb24iPi0tZW5hYmxlLW9ubHk2NGJpdDwvY29kZT48L3A+Cis8cD48Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWVuYWJsZS1vbmx5MzJiaXQ8L2NvZGU+PC9wPgorPHA+T24gNjQtYml0IHBsYXRmb3JtcyAoYW1kNjQtbGludXgsIHBwYzY0LWxpbnV4LAorICAgICBhbWQ2NC1kYXJ3aW4pLCBWYWxncmluZCBpcyBieSBkZWZhdWx0IGJ1aWx0IGluIHN1Y2ggYSB3YXkgdGhhdAorICAgICBib3RoIDMyLWJpdCBhbmQgNjQtYml0IGV4ZWN1dGFibGVzIGNhbiBiZSBydW4uICBTb21ldGltZXMgdGhpcworICAgICBjbGV2ZXJuZXNzIGlzIGEgcHJvYmxlbSBmb3IgYSB2YXJpZXR5IG9mIHJlYXNvbnMuICBUaGVzZSB0d28KKyAgICAgb3B0aW9ucyBhbGxvdyBmb3Igc2luZ2xlLXRhcmdldCBidWlsZHMgaW4gdGhpcyBzaXR1YXRpb24uICBJZiB5b3UKKyAgICAgaXNzdWUgYm90aCwgdGhlIGNvbmZpZ3VyZSBzY3JpcHQgd2lsbCBjb21wbGFpbi4gIE5vdGUgdGhleSBhcmUKKyAgICAgaWdub3JlZCBvbiAzMi1iaXQtb25seSBwbGF0Zm9ybXMgKHg4Ni1saW51eCwgcHBjMzItbGludXgsCisgICAgIGFybS1saW51eCwgeDg2LWRhcndpbikuCisgICA8L3A+Cis8L2xpPgorPC91bD48L2Rpdj4KKzxwPgorPC9wPgorPHA+VGhlIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+Y29uZmlndXJlPC9jb2RlPiBzY3JpcHQgdGVzdHMKK3RoZSB2ZXJzaW9uIG9mIHRoZSBYIHNlcnZlciBjdXJyZW50bHkgaW5kaWNhdGVkIGJ5IHRoZSBjdXJyZW50Cis8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPiRESVNQTEFZPC9jb2RlPi4gIFRoaXMgaXMgYSBrbm93biBidWcuCitUaGUgaW50ZW50aW9uIHdhcyB0byBkZXRlY3QgdGhlIHZlcnNpb24gb2YgdGhlIGN1cnJlbnQgWAorY2xpZW50IGxpYnJhcmllcywgc28gdGhhdCBjb3JyZWN0IHN1cHByZXNzaW9ucyBjb3VsZCBiZSBzZWxlY3RlZAorZm9yIHRoZW0sIGJ1dCBpbnN0ZWFkIHRoZSB0ZXN0IGNoZWNrcyB0aGUgc2VydmVyIHZlcnNpb24uICBUaGlzCitpcyBqdXN0IHBsYWluIHdyb25nLjwvcD4KKzxwPklmIHlvdSBhcmUgYnVpbGRpbmcgYSBiaW5hcnkgcGFja2FnZSBvZiBWYWxncmluZCBmb3IKK2Rpc3RyaWJ1dGlvbiwgcGxlYXNlIHJlYWQgPGNvZGUgY2xhc3M9ImxpdGVyYWwiPlJFQURNRV9QQUNLQUdFUlM8L2NvZGU+Cis8YSBjbGFzcz0ieHJlZiIgaHJlZj0iZGlzdC5yZWFkbWUtcGFja2FnZXJzLmh0bWwiIHRpdGxlPSI3LqBSRUFETUVfUEFDS0FHRVJTIj5SZWFkbWUgUGFja2FnZXJzPC9hPi4gIEl0IGNvbnRhaW5zIHNvbWUKK2ltcG9ydGFudCBpbmZvcm1hdGlvbi48L3A+Cis8cD5BcGFydCBmcm9tIHRoYXQsIHRoZXJlJ3Mgbm90IG11Y2ggZXhjaXRlbWVudCBoZXJlLiAgTGV0IHVzCitrbm93IGlmIHlvdSBoYXZlIGJ1aWxkIHByb2JsZW1zLjwvcD4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDEiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj4KKzxhIG5hbWU9Im1hbnVhbC1jb3JlLnByb2JsZW1zIj48L2E+Mi4xMC6gSWYgWW91IEhhdmUgUHJvYmxlbXM8L2gyPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+Q29udGFjdCB1cyBhdCA8YSBjbGFzcz0idWxpbmsiIGhyZWY9Imh0dHA6Ly93d3cudmFsZ3JpbmQub3JnLyIgdGFyZ2V0PSJfdG9wIj5odHRwOi8vd3d3LnZhbGdyaW5kLm9yZy88L2E+LjwvcD4KKzxwPlNlZSA8YSBjbGFzcz0ieHJlZiIgaHJlZj0ibWFudWFsLWNvcmUuaHRtbCNtYW51YWwtY29yZS5saW1pdHMiIHRpdGxlPSIyLjExLqBMaW1pdGF0aW9ucyI+TGltaXRhdGlvbnM8L2E+IGZvciB0aGUga25vd24KK2xpbWl0YXRpb25zIG9mIFZhbGdyaW5kLCBhbmQgZm9yIGEgbGlzdCBvZiBwcm9ncmFtcyB3aGljaCBhcmUKK2tub3duIG5vdCB0byB3b3JrIG9uIGl0LjwvcD4KKzxwPkFsbCBwYXJ0cyBvZiB0aGUgc3lzdGVtIG1ha2UgaGVhdnkgdXNlIG9mIGFzc2VydGlvbnMgYW5kIAoraW50ZXJuYWwgc2VsZi1jaGVja3MuICBUaGV5IGFyZSBwZXJtYW5lbnRseSBlbmFibGVkLCBhbmQgd2UgaGF2ZSBubyAKK3BsYW5zIHRvIGRpc2FibGUgdGhlbS4gIElmIG9uZSBvZiB0aGVtIGJyZWFrcywgcGxlYXNlIG1haWwgdXMhPC9wPgorPHA+SWYgeW91IGdldCBhbiBhc3NlcnRpb24gZmFpbHVyZQoraW4gPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5tX21hbGxvY2ZyZWUuYzwvY29kZT4sIHRoaXMgbWF5IGhhdmUgaGFwcGVuZWQgYmVjYXVzZQoreW91ciBwcm9ncmFtIHdyb3RlIG9mZiB0aGUgZW5kIG9mIGEgaGVhcCBibG9jaywgb3IgYmVmb3JlIGl0cworYmVnaW5uaW5nLCB0aHVzIGNvcnJ1cHRpbmcgaGVhcCBtZXRhZGF0YS4gIFZhbGdyaW5kIGhvcGVmdWxseSB3aWxsIGhhdmUKK2VtaXR0ZWQgYSBtZXNzYWdlIHRvIHRoYXQgZWZmZWN0IGJlZm9yZSBkeWluZyBpbiB0aGlzIHdheS48L3A+Cis8cD5SZWFkIHRoZSA8YSBjbGFzcz0ieHJlZiIgaHJlZj0iRkFRLmh0bWwiIHRpdGxlPSJWYWxncmluZCBGQVEiPlZhbGdyaW5kIEZBUTwvYT4gZm9yIG1vcmUgYWR2aWNlIGFib3V0IGNvbW1vbiBwcm9ibGVtcywgCitjcmFzaGVzLCBldGMuPC9wPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MSI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPgorPGEgbmFtZT0ibWFudWFsLWNvcmUubGltaXRzIj48L2E+Mi4xMS6gTGltaXRhdGlvbnM8L2gyPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+VGhlIGZvbGxvd2luZyBsaXN0IG9mIGxpbWl0YXRpb25zIHNlZW1zIGxvbmcuICBIb3dldmVyLCBtb3N0Citwcm9ncmFtcyBhY3R1YWxseSB3b3JrIGZpbmUuPC9wPgorPHA+VmFsZ3JpbmQgd2lsbCBydW4gcHJvZ3JhbXMgb24gdGhlIHN1cHBvcnRlZCBwbGF0Zm9ybXMKK3N1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25zdHJhaW50czo8L3A+Cis8ZGl2IGNsYXNzPSJpdGVtaXplZGxpc3QiPjx1bCBjbGFzcz0iaXRlbWl6ZWRsaXN0IiBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOiBkaXNjOyAiPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+T24gTGludXgsIFZhbGdyaW5kIGRldGVybWluZXMgYXQgc3RhcnR1cCB0aGUgc2l6ZSBvZiB0aGUgJ2JyaworICAgICAgc2VnbWVudCcgdXNpbmcgdGhlIFJMSU1JVF9EQVRBIHJsaW1fY3VyLCB3aXRoIGEgbWluaW11bSBvZiAxIE1CIGFuZAorICAgICAgYSBtYXhpbXVtIG9mIDggTUIuIFZhbGdyaW5kIG91dHB1dHMgYSBtZXNzYWdlIGVhY2ggdGltZSBhIHByb2dyYW0KKyAgICAgIHRyaWVzIHRvIGV4dGVuZCB0aGUgYnJrIHNlZ21lbnQgYmV5b25kIHRoZSBzaXplIGRldGVybWluZWQgYXQKKyAgICAgIHN0YXJ0dXAuICBNb3N0IHByb2dyYW1zIHdpbGwgd29yayBwcm9wZXJseSB3aXRoIHRoaXMgbGltaXQsCisgICAgICB0eXBpY2FsbHkgYnkgc3dpdGNoaW5nIHRvIHRoZSB1c2Ugb2YgbW1hcCB0byBnZXQgbW9yZSBtZW1vcnkuCisgICAgICBJZiB5b3VyIHByb2dyYW0gcmVhbGx5IG5lZWRzIGEgYmlnIGJyayBzZWdtZW50LCB5b3UgbXVzdCBjaGFuZ2UKKyAgICAgIHRoZSA4IE1CIGhhcmRjb2RlZCBsaW1pdCBhbmQgcmVjb21waWxlIFZhbGdyaW5kLgorICAgPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5PbiB4ODYgYW5kIGFtZDY0LCB0aGVyZSBpcyBubyBzdXBwb3J0IGZvciAzRE5vdyEKKyAgIGluc3RydWN0aW9ucy4gIElmIHRoZSB0cmFuc2xhdG9yIGVuY291bnRlcnMgdGhlc2UsIFZhbGdyaW5kIHdpbGwKKyAgIGdlbmVyYXRlIGEgU0lHSUxMIHdoZW4gdGhlIGluc3RydWN0aW9uIGlzIGV4ZWN1dGVkLiAgQXBhcnQgZnJvbQorICAgdGhhdCwgb24geDg2IGFuZCBhbWQ2NCwgZXNzZW50aWFsbHkgYWxsIGluc3RydWN0aW9ucyBhcmUgc3VwcG9ydGVkLAorICAgdXAgdG8gYW5kIGluY2x1ZGluZyBBVlggYW5kIEFFUyBpbiA2NC1iaXQgbW9kZSBhbmQgU1NTRTMgaW4gMzItYml0CisgICBtb2RlLiAgMzItYml0IG1vZGUgZG9lcyBpbiBmYWN0IHN1cHBvcnQgdGhlIGJhcmUgbWluaW11bSBTU0U0CisgICBpbnN0cnVjdGlvbnMgbmVlZGVkIHRvIHJ1biBwcm9ncmFtcyBvbiBNYWNPU1ggMTAuNiBvbiAzMi1iaXQKKyAgIHRhcmdldHMuCisgICA8L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPk9uIHBwYzMyIGFuZCBwcGM2NCwgYWxtb3N0IGFsbCBpbnRlZ2VyLCBmbG9hdGluZyBwb2ludCBhbmQKKyAgIEFsdGl2ZWMgaW5zdHJ1Y3Rpb25zIGFyZSBzdXBwb3J0ZWQuICBTcGVjaWZpY2FsbHk6IGludGVnZXIgYW5kIEZQCisgICBpbnNucyB0aGF0IGFyZSBtYW5kYXRvcnkgZm9yIFBvd2VyUEMsIHRoZSAiR2VuZXJhbC1wdXJwb3NlCisgICBvcHRpb25hbCIgZ3JvdXAgKGZzcXJ0LCBmc3FydHMsIHN0Zml3eCksIHRoZSAiR3JhcGhpY3Mgb3B0aW9uYWwiCisgICBncm91cCAoZnJlLCBmcmVzLCBmcnNxcnRlLCBmcnNxcnRlcyksIGFuZCB0aGUgQWx0aXZlYyAoYWxzbyBrbm93bgorICAgYXMgVk1YKSBTSU1EIGluc3RydWN0aW9uIHNldCwgYXJlIHN1cHBvcnRlZC4gIEFsc28sIGluc3RydWN0aW9ucworICAgZnJvbSB0aGUgUG93ZXIgSVNBIDIuMDUgc3BlY2lmaWNhdGlvbiwgYXMgcHJlc2VudCBpbiBQT1dFUjYgQ1BVcywKKyAgIGFyZSBzdXBwb3J0ZWQuPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5PbiBBUk0sIGVzc2VudGlhbGx5IHRoZSBlbnRpcmUgQVJNdjctQSBpbnN0cnVjdGlvbiBzZXQKKyAgICBpcyBzdXBwb3J0ZWQsIGluIGJvdGggQVJNIGFuZCBUaHVtYiBtb2RlLiAgVGh1bWJFRSBhbmQgSmF6ZWxsZSBhcmUKKyAgICBub3Qgc3VwcG9ydGVkLiAgTkVPTiwgVkZQdjMgYW5kIEFSTXY2IG1lZGlhIHN1cHBvcnQgaXMgZmFpcmx5CisgICAgY29tcGxldGUuCisgICA8L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPklmIHlvdXIgcHJvZ3JhbSBkb2VzIGl0cyBvd24gbWVtb3J5IG1hbmFnZW1lbnQsIHJhdGhlciB0aGFuCisgICB1c2luZyBtYWxsb2MvbmV3L2ZyZWUvZGVsZXRlLCBpdCBzaG91bGQgc3RpbGwgd29yaywgYnV0IE1lbWNoZWNrJ3MKKyAgIGVycm9yIGNoZWNraW5nIHdvbid0IGJlIHNvIGVmZmVjdGl2ZS4gIElmIHlvdSBkZXNjcmliZSB5b3VyCisgICBwcm9ncmFtJ3MgbWVtb3J5IG1hbmFnZW1lbnQgc2NoZW1lIHVzaW5nICJjbGllbnQgcmVxdWVzdHMiIChzZWUKKyAgIDxhIGNsYXNzPSJ4cmVmIiBocmVmPSJtYW51YWwtY29yZS1hZHYuaHRtbCNtYW51YWwtY29yZS1hZHYuY2xpZW50cmVxIiB0aXRsZT0iMy4xLqBUaGUgQ2xpZW50IFJlcXVlc3QgbWVjaGFuaXNtIj5UaGUgQ2xpZW50IFJlcXVlc3QgbWVjaGFuaXNtPC9hPiksIE1lbWNoZWNrIGNhbiBkbworICAgYmV0dGVyLiAgTmV2ZXJ0aGVsZXNzLCB1c2luZyBtYWxsb2MvbmV3IGFuZCBmcmVlL2RlbGV0ZSBpcyBzdGlsbAorICAgdGhlIGJlc3QgYXBwcm9hY2guPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5WYWxncmluZCdzIHNpZ25hbCBzaW11bGF0aW9uIGlzIG5vdCBhcyByb2J1c3QgYXMgaXQgY291bGQgYmUuCisgICBCYXNpYyBQT1NJWC1jb21wbGlhbnQgc2lnYWN0aW9uIGFuZCBzaWdwcm9jbWFzayBmdW5jdGlvbmFsaXR5IGlzCisgICBzdXBwbGllZCwgYnV0IGl0J3MgY29uY2VpdmFibGUgdGhhdCB0aGluZ3MgY291bGQgZ28gYmFkbHkgYXdyeSBpZiB5b3UKKyAgIGRvIHdlaXJkIHRoaW5ncyB3aXRoIHNpZ25hbHMuICBXb3JrYXJvdW5kOiBkb24ndC4gIFByb2dyYW1zIHRoYXQgZG8KKyAgIG5vbi1QT1NJWCBzaWduYWwgdHJpY2tzIGFyZSBpbiBhbnkgY2FzZSBpbmhlcmVudGx5IHVucG9ydGFibGUsIHNvCisgICBzaG91bGQgYmUgYXZvaWRlZCBpZiBwb3NzaWJsZS48L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPk1hY2hpbmUgaW5zdHJ1Y3Rpb25zLCBhbmQgc3lzdGVtIGNhbGxzLCBoYXZlIGJlZW4gaW1wbGVtZW50ZWQKKyAgIG9uIGRlbWFuZC4gIFNvIGl0J3MgcG9zc2libGUsIGFsdGhvdWdoIHVubGlrZWx5LCB0aGF0IGEgcHJvZ3JhbSB3aWxsCisgICBmYWxsIG92ZXIgd2l0aCBhIG1lc3NhZ2UgdG8gdGhhdCBlZmZlY3QuICBJZiB0aGlzIGhhcHBlbnMsIHBsZWFzZQorICAgcmVwb3J0IGFsbCB0aGUgZGV0YWlscyBwcmludGVkIG91dCwgc28gd2UgY2FuIHRyeSBhbmQgaW1wbGVtZW50IHRoZQorICAgbWlzc2luZyBmZWF0dXJlLjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+TWVtb3J5IGNvbnN1bXB0aW9uIG9mIHlvdXIgcHJvZ3JhbSBpcyBtYWpvcmx5IGluY3JlYXNlZAorICAgd2hpbHN0IHJ1bm5pbmcgdW5kZXIgVmFsZ3JpbmQncyBNZW1jaGVjayB0b29sLiAgVGhpcyBpcyBkdWUgdG8gdGhlCisgICBsYXJnZSBhbW91bnQgb2YgYWRtaW5pc3RyYXRpdmUgaW5mb3JtYXRpb24gbWFpbnRhaW5lZCBiZWhpbmQgdGhlCisgICBzY2VuZXMuICBBbm90aGVyIGNhdXNlIGlzIHRoYXQgVmFsZ3JpbmQgZHluYW1pY2FsbHkgdHJhbnNsYXRlcyB0aGUKKyAgIG9yaWdpbmFsIGV4ZWN1dGFibGUuICBUcmFuc2xhdGVkLCBpbnN0cnVtZW50ZWQgY29kZSBpcyAxMi0xOCB0aW1lcworICAgbGFyZ2VyIHRoYW4gdGhlIG9yaWdpbmFsIHNvIHlvdSBjYW4gZWFzaWx5IGVuZCB1cCB3aXRoIDE1MCsgTUIgb2YKKyAgIHRyYW5zbGF0aW9ucyB3aGVuIHJ1bm5pbmcgKGVnKSBhIHdlYiBicm93c2VyLjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+Cis8cD5WYWxncmluZCBjYW4gaGFuZGxlIGR5bmFtaWNhbGx5LWdlbmVyYXRlZCBjb2RlIGp1c3QgZmluZS4gIElmCisgICB5b3UgcmVnZW5lcmF0ZSBjb2RlIG92ZXIgdGhlIHRvcCBvZiBvbGQgY29kZSAoaWUuIGF0IHRoZSBzYW1lCisgICBtZW1vcnkgYWRkcmVzc2VzKSwgaWYgdGhlIGNvZGUgaXMgb24gdGhlIHN0YWNrIFZhbGdyaW5kIHdpbGwKKyAgIHJlYWxpc2UgdGhlIGNvZGUgaGFzIGNoYW5nZWQsIGFuZCB3b3JrIGNvcnJlY3RseS4gIFRoaXMgaXMKKyAgIG5lY2Vzc2FyeSB0byBoYW5kbGUgdGhlIHRyYW1wb2xpbmVzIEdDQyB1c2VzIHRvIGltcGxlbWVudGVkIG5lc3RlZAorICAgZnVuY3Rpb25zLiAgSWYgeW91IHJlZ2VuZXJhdGUgY29kZSBzb21ld2hlcmUgb3RoZXIgdGhhbiB0aGUgc3RhY2ssCisgICBhbmQgeW91IGFyZSBydW5uaW5nIG9uIGFuIDMyLSBvciA2NC1iaXQgeDg2IENQVSwgeW91IHdpbGwgbmVlZCB0bworICAgdXNlIHRoZSA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXNtYy1jaGVjaz1hbGw8L2NvZGU+IG9wdGlvbiwgYW5kIFZhbGdyaW5kIHdpbGwKKyAgIHJ1biBtb3JlIHNsb3dseSB0aGFuIG5vcm1hbC4gIE9yIHlvdSBjYW4gYWRkIGNsaWVudCByZXF1ZXN0cyB0aGF0CisgICB0ZWxsIFZhbGdyaW5kIHdoZW4geW91ciBwcm9ncmFtIGhhcyBvdmVyd3JpdHRlbiBjb2RlLgorICAgPC9wPgorPHA+IE9uIG90aGVyIHBsYXRmb3JtcyAoQVJNLCBQb3dlclBDKSBWYWxncmluZCBvYnNlcnZlcyBhbmQKKyAgIGhvbm91cnMgdGhlIGNhY2hlIGludmFsaWRhdGlvbiBoaW50cyB0aGF0IHByb2dyYW1zIGFyZSBvYmxpZ2VkIHRvCisgICBlbWl0IHRvIG5vdGlmeSBuZXcgY29kZSwgYW5kIHNvIHNlbGYtbW9kaWZ5aW5nLWNvZGUgc3VwcG9ydCBzaG91bGQKKyAgIHdvcmsgYXV0b21hdGljYWxseSwgd2l0aG91dCB0aGUgbmVlZAorICAgZm9yIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tc21jLWNoZWNrPWFsbDwvY29kZT4uPC9wPgorPC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPgorPHA+VmFsZ3JpbmQgaGFzIHRoZSBmb2xsb3dpbmcgbGltaXRhdGlvbnMKKyAgIGluIGl0cyBpbXBsZW1lbnRhdGlvbiBvZiB4ODYvQU1ENjQgZmxvYXRpbmcgcG9pbnQgcmVsYXRpdmUgdG8gCisgICBJRUVFNzU0LjwvcD4KKzxwPlByZWNpc2lvbjogVGhlcmUgaXMgbm8gc3VwcG9ydCBmb3IgODAgYml0IGFyaXRobWV0aWMuCisgICBJbnRlcm5hbGx5LCBWYWxncmluZCByZXByZXNlbnRzIGFsbCBzdWNoICJsb25nIGRvdWJsZSIgbnVtYmVycyBpbiA2NAorICAgYml0cywgYW5kIHNvIHRoZXJlIG1heSBiZSBzb21lIGRpZmZlcmVuY2VzIGluIHJlc3VsdHMuICBXaGV0aGVyIG9yCisgICBub3QgdGhpcyBpcyBjcml0aWNhbCByZW1haW5zIHRvIGJlIHNlZW4uICBOb3RlLCB0aGUgeDg2L2FtZDY0CisgICBmbGR0L2ZzdHB0IGluc3RydWN0aW9ucyAocmVhZC93cml0ZSA4MC1iaXQgbnVtYmVycykgYXJlIGNvcnJlY3RseQorICAgc2ltdWxhdGVkLCB1c2luZyBjb252ZXJzaW9ucyB0by9mcm9tIDY0IGJpdHMsIHNvIHRoYXQgaW4tbWVtb3J5CisgICBpbWFnZXMgb2YgODAtYml0IG51bWJlcnMgbG9vayBjb3JyZWN0IGlmIGFueW9uZSB3YW50cyB0byBzZWUuPC9wPgorPHA+VGhlIGltcHJlc3Npb24gb2JzZXJ2ZWQgZnJvbSBtYW55IEZQIHJlZ3Jlc3Npb24gdGVzdHMgaXMgdGhhdAorICAgdGhlIGFjY3VyYWN5IGRpZmZlcmVuY2VzIGFyZW4ndCBzaWduaWZpY2FudC4gIEdlbmVyYWxseSBzcGVha2luZywgaWYKKyAgIGEgcHJvZ3JhbSByZWxpZXMgb24gODAtYml0IHByZWNpc2lvbiwgdGhlcmUgbWF5IGJlIGRpZmZpY3VsdGllcworICAgcG9ydGluZyBpdCB0byBub24geDg2L2FtZDY0IHBsYXRmb3JtcyB3aGljaCBvbmx5IHN1cHBvcnQgNjQtYml0IEZQCisgICBwcmVjaXNpb24uICBFdmVuIG9uIHg4Ni9hbWQ2NCwgdGhlIHByb2dyYW0gbWF5IGdldCBkaWZmZXJlbnQgcmVzdWx0cworICAgZGVwZW5kaW5nIG9uIHdoZXRoZXIgaXQgaXMgY29tcGlsZWQgdG8gdXNlIFNTRTIgaW5zdHJ1Y3Rpb25zICg2NC1iaXRzCisgICBvbmx5KSwgb3IgeDg3IGluc3RydWN0aW9ucyAoODAtYml0KS4gIFRoZSBuZXQgZWZmZWN0IGlzIHRvIG1ha2UgRlAKKyAgIHByb2dyYW1zIGJlaGF2ZSBhcyBpZiB0aGV5IGhhZCBiZWVuIHJ1biBvbiBhIG1hY2hpbmUgd2l0aCA2NC1iaXQgSUVFRQorICAgZmxvYXRzLCBmb3IgZXhhbXBsZSBQb3dlclBDLiAgT24gYW1kNjQgRlAgYXJpdGhtZXRpYyBpcyBkb25lIGJ5CisgICBkZWZhdWx0IG9uIFNTRTIsIHNvIGFtZDY0IGxvb2tzIG1vcmUgbGlrZSBQb3dlclBDIHRoYW4geDg2IGZyb20gYW4gRlAKKyAgIHBlcnNwZWN0aXZlLCBhbmQgdGhlcmUgYXJlIGZhciBmZXdlciBub3RpY2VhYmxlIGFjY3VyYWN5IGRpZmZlcmVuY2VzCisgICB0aGFuIHdpdGggeDg2LjwvcD4KKzxwPlJvdW5kaW5nOiBWYWxncmluZCBkb2VzIG9ic2VydmUgdGhlIDQgSUVFRS1tYW5kYXRlZCByb3VuZGluZworICAgbW9kZXMgKHRvIG5lYXJlc3QsIHRvICtpbmZpbml0eSwgdG8gLWluZmluaXR5LCB0byB6ZXJvKSBmb3IgdGhlCisgICBmb2xsb3dpbmcgY29udmVyc2lvbnM6IGZsb2F0IHRvIGludGVnZXIsIGludGVnZXIgdG8gZmxvYXQgd2hlcmUKKyAgIHRoZXJlIGlzIGEgcG9zc2liaWxpdHkgb2YgbG9zcyBvZiBwcmVjaXNpb24sIGFuZCBmbG9hdC10by1mbG9hdAorICAgcm91bmRpbmcuICBGb3IgYWxsIG90aGVyIEZQIG9wZXJhdGlvbnMsIG9ubHkgdGhlIElFRUUgZGVmYXVsdCBtb2RlCisgICAocm91bmQgdG8gbmVhcmVzdCkgaXMgc3VwcG9ydGVkLjwvcD4KKzxwPk51bWVyaWMgZXhjZXB0aW9ucyBpbiBGUCBjb2RlOiBJRUVFNzU0IGRlZmluZXMgZml2ZSB0eXBlcyBvZgorICAgbnVtZXJpYyBleGNlcHRpb24gdGhhdCBjYW4gaGFwcGVuOiBpbnZhbGlkIG9wZXJhdGlvbiAoc3FydCBvZgorICAgbmVnYXRpdmUgbnVtYmVyLCBldGMpLCBkaXZpc2lvbiBieSB6ZXJvLCBvdmVyZmxvdywgdW5kZXJmbG93LAorICAgaW5leGFjdCAobG9zcyBvZiBwcmVjaXNpb24pLjwvcD4KKzxwPkZvciBlYWNoIGV4Y2VwdGlvbiwgdHdvIGNvdXJzZXMgb2YgYWN0aW9uIGFyZSBkZWZpbmVkIGJ5IElFRUU3NTQ6CisgICBlaXRoZXIgKDEpIGEgdXNlci1kZWZpbmVkIGV4Y2VwdGlvbiBoYW5kbGVyIG1heSBiZSBjYWxsZWQsIG9yICgyKSBhCisgICBkZWZhdWx0IGFjdGlvbiBpcyBkZWZpbmVkLCB3aGljaCAiZml4ZXMgdGhpbmdzIHVwIiBhbmQgYWxsb3dzIHRoZQorICAgY29tcHV0YXRpb24gdG8gcHJvY2VlZCB3aXRob3V0IHRocm93aW5nIGFuIGV4Y2VwdGlvbi48L3A+Cis8cD5DdXJyZW50bHkgVmFsZ3JpbmQgb25seSBzdXBwb3J0cyB0aGUgZGVmYXVsdCBmaXh1cCBhY3Rpb25zLgorICAgQWdhaW4sIGZlZWRiYWNrIG9uIHRoZSBpbXBvcnRhbmNlIG9mIGV4Y2VwdGlvbiBzdXBwb3J0IHdvdWxkIGJlCisgICBhcHByZWNpYXRlZC48L3A+Cis8cD5XaGVuIFZhbGdyaW5kIGRldGVjdHMgdGhhdCB0aGUgcHJvZ3JhbSBpcyB0cnlpbmcgdG8gZXhjZWVkIGFueQorICAgb2YgdGhlc2UgbGltaXRhdGlvbnMgKHNldHRpbmcgZXhjZXB0aW9uIGhhbmRsZXJzLCByb3VuZGluZyBtb2RlLCBvcgorICAgcHJlY2lzaW9uIGNvbnRyb2wpLCBpdCBjYW4gcHJpbnQgYSBtZXNzYWdlIGdpdmluZyBhIHRyYWNlYmFjayBvZgorICAgd2hlcmUgdGhpcyBoYXMgaGFwcGVuZWQsIGFuZCBjb250aW51ZSBleGVjdXRpb24uICBUaGlzIGJlaGF2aW91ciB1c2VkCisgICB0byBiZSB0aGUgZGVmYXVsdCwgYnV0IHRoZSBtZXNzYWdlcyBhcmUgYW5ub3lpbmcgYW5kIHNvIHNob3dpbmcgdGhlbQorICAgaXMgbm93IGRpc2FibGVkIGJ5IGRlZmF1bHQuICBVc2UgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1zaG93LWVtd2FybnM9eWVzPC9jb2RlPiB0byBzZWUKKyAgIHRoZW0uPC9wPgorPHA+VGhlIGFib3ZlIGxpbWl0YXRpb25zIGRlZmluZSBwcmVjaXNlbHkgdGhlIElFRUU3NTQgJ2RlZmF1bHQnCisgICBiZWhhdmlvdXI6IGRlZmF1bHQgZml4dXAgb24gYWxsIGV4Y2VwdGlvbnMsIHJvdW5kLXRvLW5lYXJlc3QKKyAgIG9wZXJhdGlvbnMsIGFuZCA2NC1iaXQgcHJlY2lzaW9uLjwvcD4KKzwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj4KKzxwPlZhbGdyaW5kIGhhcyB0aGUgZm9sbG93aW5nIGxpbWl0YXRpb25zIGluCisgICBpdHMgaW1wbGVtZW50YXRpb24gb2YgeDg2L0FNRDY0IFNTRTIgRlAgYXJpdGhtZXRpYywgcmVsYXRpdmUgdG8gCisgICBJRUVFNzU0LjwvcD4KKzxwPkVzc2VudGlhbGx5IHRoZSBzYW1lOiBubyBleGNlcHRpb25zLCBhbmQgbGltaXRlZCBvYnNlcnZhbmNlIG9mCisgICByb3VuZGluZyBtb2RlLiAgQWxzbywgU1NFMiBoYXMgY29udHJvbCBiaXRzIHdoaWNoIG1ha2UgaXQgdHJlYXQKKyAgIGRlbm9ybWFsaXNlZCBudW1iZXJzIGFzIHplcm8gKERBWikgYW5kIGEgcmVsYXRlZCBhY3Rpb24sIGZsdXNoCisgICBkZW5vcm1hbHMgdG8gemVybyAoRlRaKS4gIEJvdGggb2YgdGhlc2UgY2F1c2UgU1NFMiBhcml0aG1ldGljIHRvIGJlCisgICBsZXNzIGFjY3VyYXRlIHRoYW4gSUVFRSByZXF1aXJlcy4gIFZhbGdyaW5kIGRldGVjdHMsIGlnbm9yZXMsIGFuZCBjYW4KKyAgIHdhcm4gYWJvdXQsIGF0dGVtcHRzIHRvIGVuYWJsZSBlaXRoZXIgbW9kZS48L3A+Cis8L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+Cis8cD5WYWxncmluZCBoYXMgdGhlIGZvbGxvd2luZyBsaW1pdGF0aW9ucyBpbgorICAgaXRzIGltcGxlbWVudGF0aW9uIG9mIEFSTSBWRlB2MyBhcml0aG1ldGljLCByZWxhdGl2ZSB0byAKKyAgIElFRUU3NTQuPC9wPgorPHA+RXNzZW50aWFsbHkgdGhlIHNhbWU6IG5vIGV4Y2VwdGlvbnMsIGFuZCBsaW1pdGVkIG9ic2VydmFuY2UKKyAgIG9mIHJvdW5kaW5nIG1vZGUuICBBbHNvLCBzd2l0Y2hpbmcgdGhlIFZGUCB1bml0IGludG8gdmVjdG9yIG1vZGUKKyAgIHdpbGwgY2F1c2UgVmFsZ3JpbmQgdG8gYWJvcnQgdGhlIHByb2dyYW0gLS0gaXQgaGFzIG5vIHdheSB0bworICAgZW11bGF0ZSB2ZWN0b3IgdXNlcyBvZiBWRlAgYXQgYSByZWFzb25hYmxlIHBlcmZvcm1hbmNlIGxldmVsLiAgVGhpcworICAgaXMgbm8gYmlnIGRlYWwgZ2l2ZW4gdGhhdCBub24tc2NhbGFyIHVzZXMgb2YgVkZQIGluc3RydWN0aW9ucyBhcmUKKyAgIGluIGFueSBjYXNlIGRlcHJlY2F0ZWQuPC9wPgorPC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPgorPHA+VmFsZ3JpbmQgaGFzIHRoZSBmb2xsb3dpbmcgbGltaXRhdGlvbnMKKyAgIGluIGl0cyBpbXBsZW1lbnRhdGlvbiBvZiBQUEMzMiBhbmQgUFBDNjQgZmxvYXRpbmcgcG9pbnQgCisgICBhcml0aG1ldGljLCByZWxhdGl2ZSB0byBJRUVFNzU0LjwvcD4KKzxwPlNjYWxhciAobm9uLUFsdGl2ZWMpOiBWYWxncmluZCBwcm92aWRlcyBhIGJpdC1leGFjdCBlbXVsYXRpb24gb2YKKyAgIGFsbCBmbG9hdGluZyBwb2ludCBpbnN0cnVjdGlvbnMsIGV4Y2VwdCBmb3IgImZyZSIgYW5kICJmcmVzIiwgd2hpY2ggYXJlCisgICBkb25lIG1vcmUgcHJlY2lzZWx5IHRoYW4gcmVxdWlyZWQgYnkgdGhlIFBvd2VyUEMgYXJjaGl0ZWN0dXJlIHNwZWNpZmljYXRpb24uCisgICBBbGwgZmxvYXRpbmcgcG9pbnQgb3BlcmF0aW9ucyBvYnNlcnZlIHRoZSBjdXJyZW50IHJvdW5kaW5nIG1vZGUuCisgICA8L3A+Cis8cD5Ib3dldmVyLCBmcHNjcltGUFJGXSBpcyBub3Qgc2V0IGFmdGVyIGVhY2ggb3BlcmF0aW9uLiAgVGhhdCBjb3VsZAorICAgYmUgZG9uZSBidXQgd291bGQgZ2l2ZSBtZWFzdXJhYmxlIHBlcmZvcm1hbmNlIG92ZXJoZWFkcywgYW5kIHNvIGZhcgorICAgbm8gbmVlZCBmb3IgaXQgaGFzIGJlZW4gZm91bmQuPC9wPgorPHA+QXMgb24geDg2L0FNRDY0LCBJRUVFNzU0IGV4Y2VwdGlvbnMgYXJlIG5vdCBzdXBwb3J0ZWQ6IGFsbCBmbG9hdGluZworICAgcG9pbnQgZXhjZXB0aW9ucyBhcmUgaGFuZGxlZCB1c2luZyB0aGUgZGVmYXVsdCBJRUVFIGZpeHVwIGFjdGlvbnMuCisgICBWYWxncmluZCBkZXRlY3RzLCBpZ25vcmVzLCBhbmQgY2FuIHdhcm4gYWJvdXQsIGF0dGVtcHRzIHRvIHVubWFzayAKKyAgIHRoZSA1IElFRUUgRlAgZXhjZXB0aW9uIGtpbmRzIGJ5IHdyaXRpbmcgdG8gdGhlIGZsb2F0aW5nLXBvaW50IHN0YXR1cyAKKyAgIGFuZCBjb250cm9sIHJlZ2lzdGVyIChmcHNjcikuCisgICA8L3A+Cis8cD5WZWN0b3IgKEFsdGl2ZWMsIFZNWCk6IGVzc2VudGlhbGx5IGFzIHdpdGggeDg2L0FNRDY0IFNTRS9TU0UyOiAKKyAgIG5vIGV4Y2VwdGlvbnMsIGFuZCBsaW1pdGVkIG9ic2VydmFuY2Ugb2Ygcm91bmRpbmcgbW9kZS4gIAorICAgRm9yIEFsdGl2ZWMsIEZQIGFyaXRobWV0aWMKKyAgIGlzIGRvbmUgaW4gSUVFRS9KYXZhIG1vZGUsIHdoaWNoIGlzIG1vcmUgYWNjdXJhdGUgdGhhbiB0aGUgTGludXggZGVmYXVsdAorICAgc2V0dGluZy4gICJNb3JlIGFjY3VyYXRlIiBtZWFucyB0aGF0IGRlbm9ybWFscyBhcmUgaGFuZGxlZCBwcm9wZXJseSwgCisgICByYXRoZXIgdGhhbiBzaW1wbHkgYmVpbmcgZmx1c2hlZCB0byB6ZXJvLjwvcD4KKzwvbGk+Cis8L3VsPjwvZGl2PgorPHA+UHJvZ3JhbXMgd2hpY2ggYXJlIGtub3duIG5vdCB0byB3b3JrIGFyZTo8L3A+Cis8ZGl2IGNsYXNzPSJpdGVtaXplZGxpc3QiPjx1bCBjbGFzcz0iaXRlbWl6ZWRsaXN0IiBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOiBkaXNjOyAiPjxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPmVtYWNzIHN0YXJ0cyB1cCBidXQgaW1tZWRpYXRlbHkgY29uY2x1ZGVzIGl0IGlzIG91dCBvZgorICAgbWVtb3J5IGFuZCBhYm9ydHMuICBJdCBtYXkgYmUgdGhhdCBNZW1jaGVjayBkb2VzIG5vdCBwcm92aWRlCisgICBhIGdvb2QgZW5vdWdoIGVtdWxhdGlvbiBvZiB0aGUgCisgICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPm1hbGxpbmZvPC9jb2RlPiBmdW5jdGlvbi4KKyAgIEVtYWNzIHdvcmtzIGZpbmUgaWYgeW91IGJ1aWxkIGl0IHRvIHVzZQorICAgdGhlIHN0YW5kYXJkIG1hbGxvYy9mcmVlIHJvdXRpbmVzLjwvcD48L2xpPjwvdWw+PC9kaXY+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QxIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+Cis8YSBuYW1lPSJtYW51YWwtY29yZS5leGFtcGxlIj48L2E+Mi4xMi6gQW4gRXhhbXBsZSBSdW48L2gyPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+VGhpcyBpcyB0aGUgbG9nIGZvciBhIHJ1biBvZiBhIHNtYWxsIHByb2dyYW0gdXNpbmcgTWVtY2hlY2suCitUaGUgcHJvZ3JhbSBpcyBpbiBmYWN0IGNvcnJlY3QsIGFuZCB0aGUgcmVwb3J0ZWQgZXJyb3IgaXMgYXMgdGhlCityZXN1bHQgb2YgYSBwb3RlbnRpYWxseSBzZXJpb3VzIGNvZGUgZ2VuZXJhdGlvbiBidWcgaW4gR05VIGcrKworKHNuYXBzaG90IDIwMDEwNTI3KS48L3A+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CitzZXdhcmRqQHBob2VuaXg6fi9uZXdtYXQxMCQgfi9WYWxncmluZC02L3ZhbGdyaW5kIC12IC4vYm9nb24gCis9PTI1ODMyPT0gVmFsZ3JpbmQgMC4xMCwgYSBtZW1vcnkgZXJyb3IgZGV0ZWN0b3IgZm9yIHg4NiBSZWRIYXQgNy4xLgorPT0yNTgzMj09IENvcHlyaWdodCAoQykgMjAwMC0yMDAxLCBhbmQgR05VIEdQTCdkLCBieSBKdWxpYW4gU2V3YXJkLgorPT0yNTgzMj09IFN0YXJ0dXAsIHdpdGggZmxhZ3M6Cis9PTI1ODMyPT0gLS1zdXBwcmVzc2lvbnM9L2hvbWUvc2V3YXJkai9WYWxncmluZC9yZWRoYXQ3MS5zdXBwCis9PTI1ODMyPT0gcmVhZGluZyBzeW1zIGZyb20gL2xpYi9sZC1saW51eC5zby4yCis9PTI1ODMyPT0gcmVhZGluZyBzeW1zIGZyb20gL2xpYi9saWJjLnNvLjYKKz09MjU4MzI9PSByZWFkaW5nIHN5bXMgZnJvbSAvbW50L3BpbWEvanJzL0luc3QvbGliL2xpYmdjY19zLnNvLjAKKz09MjU4MzI9PSByZWFkaW5nIHN5bXMgZnJvbSAvbGliL2xpYm0uc28uNgorPT0yNTgzMj09IHJlYWRpbmcgc3ltcyBmcm9tIC9tbnQvcGltYS9qcnMvSW5zdC9saWIvbGlic3RkYysrLnNvLjMKKz09MjU4MzI9PSByZWFkaW5nIHN5bXMgZnJvbSAvaG9tZS9zZXdhcmRqL1ZhbGdyaW5kL3ZhbGdyaW5kLnNvCis9PTI1ODMyPT0gcmVhZGluZyBzeW1zIGZyb20gL3Byb2Mvc2VsZi9leGUKKz09MjU4MzI9PSAKKz09MjU4MzI9PSBJbnZhbGlkIHJlYWQgb2Ygc2l6ZSA0Cis9PTI1ODMyPT0gICAgYXQgMHg4MDQ4NzI0OiBCYW5kTWF0cml4OjpSZVNpemUoaW50LGludCxpbnQpIChib2dvbi5jcHA6NDUpCis9PTI1ODMyPT0gICAgYnkgMHg4MDQ4N0FGOiBtYWluIChib2dvbi5jcHA6NjYpCis9PTI1ODMyPT0gIEFkZHJlc3MgMHhCRkZGRjc0QyBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgZnJlZSdkCis9PTI1ODMyPT0KKz09MjU4MzI9PSBFUlJPUiBTVU1NQVJZOiAxIGVycm9ycyBmcm9tIDEgY29udGV4dHMgKHN1cHByZXNzZWQ6IDAgZnJvbSAwKQorPT0yNTgzMj09IG1hbGxvYy9mcmVlOiBpbiB1c2UgYXQgZXhpdDogMCBieXRlcyBpbiAwIGJsb2Nrcy4KKz09MjU4MzI9PSBtYWxsb2MvZnJlZTogMCBhbGxvY3MsIDAgZnJlZXMsIDAgYnl0ZXMgYWxsb2NhdGVkLgorPT0yNTgzMj09IEZvciBhIGRldGFpbGVkIGxlYWsgYW5hbHlzaXMsIHJlcnVuIHdpdGg6IC0tbGVhay1jaGVjaz15ZXMKKzwvcHJlPgorPHA+VGhlIEdDQyBmb2xrcyBmaXhlZCB0aGlzIGFib3V0IGEgd2VlayBiZWZvcmUgR0NDIDMuMAorc2hpcHBlZC48L3A+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QxIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+Cis8YSBuYW1lPSJtYW51YWwtY29yZS53YXJuaW5ncyI+PC9hPjIuMTMuoFdhcm5pbmcgTWVzc2FnZXMgWW91IE1pZ2h0IFNlZTwvaDI+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD5Tb21lIG9mIHRoZXNlIG9ubHkgYXBwZWFyIGlmIHlvdSBydW4gaW4gdmVyYm9zZSBtb2RlCisoZW5hYmxlZCBieSA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tdjwvY29kZT4pOjwvcD4KKzxkaXYgY2xhc3M9Iml0ZW1pemVkbGlzdCI+PHVsIGNsYXNzPSJpdGVtaXplZGxpc3QiIHN0eWxlPSJsaXN0LXN0eWxlLXR5cGU6IGRpc2M7ICI+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj4KKzxwPjxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+TW9yZSB0aGFuIDEwMCBlcnJvcnMgZGV0ZWN0ZWQuICBTdWJzZXF1ZW50CisgICAgZXJyb3JzIHdpbGwgc3RpbGwgYmUgcmVjb3JkZWQsIGJ1dCBpbiBsZXNzIGRldGFpbCB0aGFuCisgICAgYmVmb3JlLjwvY29kZT48L3A+Cis8cD5BZnRlciAxMDAgZGlmZmVyZW50IGVycm9ycyBoYXZlIGJlZW4gc2hvd24sIFZhbGdyaW5kIGJlY29tZXMKKyAgICBtb3JlIGNvbnNlcnZhdGl2ZSBhYm91dCBjb2xsZWN0aW5nIHRoZW0uICBJdCB0aGVuIHJlcXVpcmVzIG9ubHkgdGhlCisgICAgcHJvZ3JhbSBjb3VudGVycyBpbiB0aGUgdG9wIHR3byBzdGFjayBmcmFtZXMgdG8gbWF0Y2ggd2hlbiBkZWNpZGluZworICAgIHdoZXRoZXIgb3Igbm90IHR3byBlcnJvcnMgYXJlIHJlYWxseSB0aGUgc2FtZSBvbmUuICBQcmlvciB0byB0aGlzCisgICAgcG9pbnQsIHRoZSBQQ3MgaW4gdGhlIHRvcCBmb3VyIGZyYW1lcyBhcmUgcmVxdWlyZWQgdG8gbWF0Y2guICBUaGlzCisgICAgaGFjayBoYXMgdGhlIGVmZmVjdCBvZiBzbG93aW5nIGRvd24gdGhlIGFwcGVhcmFuY2Ugb2YgbmV3IGVycm9ycworICAgIGFmdGVyIHRoZSBmaXJzdCAxMDAuICBUaGUgMTAwIGNvbnN0YW50IGNhbiBiZSBjaGFuZ2VkIGJ5IHJlY29tcGlsaW5nCisgICAgVmFsZ3JpbmQuPC9wPgorPC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPgorPHA+PGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5Nb3JlIHRoYW4gMTAwMCBlcnJvcnMgZGV0ZWN0ZWQuICBJJ20gbm90CisgICAgcmVwb3J0aW5nIGFueSBtb3JlLiAgRmluYWwgZXJyb3IgY291bnRzIG1heSBiZSBpbmFjY3VyYXRlLiAgR28gZml4CisgICAgeW91ciBwcm9ncmFtITwvY29kZT48L3A+Cis8cD5BZnRlciAxMDAwIGRpZmZlcmVudCBlcnJvcnMgaGF2ZSBiZWVuIGRldGVjdGVkLCBWYWxncmluZAorICAgIGlnbm9yZXMgYW55IG1vcmUuICBJdCBzZWVtcyB1bmxpa2VseSB0aGF0IGNvbGxlY3RpbmcgZXZlbiBtb3JlCisgICAgZGlmZmVyZW50IG9uZXMgd291bGQgYmUgb2YgcHJhY3RpY2FsIGhlbHAgdG8gYW55Ym9keSwgYW5kIGl0IGF2b2lkcworICAgIHRoZSBkYW5nZXIgdGhhdCBWYWxncmluZCBzcGVuZHMgbW9yZSBhbmQgbW9yZSBvZiBpdHMgdGltZSBjb21wYXJpbmcKKyAgICBuZXcgZXJyb3JzIGFnYWluc3QgYW4gZXZlci1ncm93aW5nIGNvbGxlY3Rpb24uICBBcyBhYm92ZSwgdGhlIDEwMDAKKyAgICBudW1iZXIgaXMgYSBjb21waWxlLXRpbWUgY29uc3RhbnQuPC9wPgorPC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPgorPHA+PGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5XYXJuaW5nOiBjbGllbnQgc3dpdGNoaW5nIHN0YWNrcz88L2NvZGU+PC9wPgorPHA+VmFsZ3JpbmQgc3BvdHRlZCBzdWNoIGEgbGFyZ2UgY2hhbmdlIGluIHRoZSBzdGFjayBwb2ludGVyCisgICAgdGhhdCBpdCBndWVzc2VzIHRoZSBjbGllbnQgaXMgc3dpdGNoaW5nIHRvIGEgZGlmZmVyZW50IHN0YWNrLiAgQXQKKyAgICB0aGlzIHBvaW50IGl0IG1ha2VzIGEga2x1ZGdleSBndWVzcyB3aGVyZSB0aGUgYmFzZSBvZiB0aGUgbmV3CisgICAgc3RhY2sgaXMsIGFuZCBzZXRzIG1lbW9yeSBwZXJtaXNzaW9ucyBhY2NvcmRpbmdseS4gIEF0IHRoZSBtb21lbnQKKyAgICAibGFyZ2UgY2hhbmdlIiBpcyBkZWZpbmVkIGFzIGEgY2hhbmdlIG9mIG1vcmUgdGhhdCAyMDAwMDAwIGluIHRoZQorICAgIHZhbHVlIG9mIHRoZSBzdGFjayBwb2ludGVyIHJlZ2lzdGVyLiAgSWYgVmFsZ3JpbmQgZ3Vlc3NlcyB3cm9uZywKKyAgICB5b3UgbWF5IGdldCBtYW55IGJvZ3VzIGVycm9yIG1lc3NhZ2VzIGZvbGxvd2luZyB0aGlzIGFuZC9vciBoYXZlCisgICAgY3Jhc2hlcyBpbiB0aGUgc3RhY2sgdHJhY2UgcmVjb3JkaW5nIGNvZGUuICBZb3UgbWlnaHQgYXZvaWQgdGhlc2UKKyAgICBwcm9ibGVtcyBieSBpbmZvcm1pbmcgVmFsZ3JpbmQgYWJvdXQgdGhlIHN0YWNrIGJvdW5kcyB1c2luZworICAgIFZBTEdSSU5EX1NUQUNLX1JFR0lTVEVSIGNsaWVudCByZXF1ZXN0LiA8L3A+Cis8L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+Cis8cD48Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPldhcm5pbmc6IGNsaWVudCBhdHRlbXB0ZWQgdG8gY2xvc2UgVmFsZ3JpbmQncworICAgIGxvZ2ZpbGUgZmQgJmx0O251bWJlciZndDs8L2NvZGU+PC9wPgorPHA+VmFsZ3JpbmQgZG9lc24ndCBhbGxvdyB0aGUgY2xpZW50IHRvIGNsb3NlIHRoZSBsb2dmaWxlLAorICAgIGJlY2F1c2UgeW91J2QgbmV2ZXIgc2VlIGFueSBkaWFnbm9zdGljIGluZm9ybWF0aW9uIGFmdGVyIHRoYXQgcG9pbnQuCisgICAgSWYgeW91IHNlZSB0aGlzIG1lc3NhZ2UsIHlvdSBtYXkgd2FudCB0byB1c2UgdGhlCisgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1sb2ctZmQ9Jmx0O251bWJlciZndDs8L2NvZGU+IG9wdGlvbiB0byBzcGVjaWZ5IGEKKyAgICBkaWZmZXJlbnQgbG9nZmlsZSBmaWxlLWRlc2NyaXB0b3IgbnVtYmVyLjwvcD4KKzwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj4KKzxwPjxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+V2FybmluZzogbm90ZWQgYnV0IHVuaGFuZGxlZCBpb2N0bAorICAgICZsdDtudW1iZXImZ3Q7PC9jb2RlPjwvcD4KKzxwPlZhbGdyaW5kIG9ic2VydmVkIGEgY2FsbCB0byBvbmUgb2YgdGhlIHZhc3QgZmFtaWx5IG9mCisgICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5pb2N0bDwvY29kZT4gc3lzdGVtIGNhbGxzLCBidXQgZGlkIG5vdAorICAgIG1vZGlmeSBpdHMgbWVtb3J5IHN0YXR1cyBpbmZvIChiZWNhdXNlIG5vYm9keSBoYXMgeWV0IHdyaXR0ZW4gYSAKKyAgICBzdWl0YWJsZSB3cmFwcGVyKS4gIFRoZSBjYWxsIHdpbGwgc3RpbGwgaGF2ZSBnb25lIHRocm91Z2gsIGJ1dCB5b3UgbWF5IGdldAorICAgIHNwdXJpb3VzIGVycm9ycyBhZnRlciB0aGlzIGFzIGEgcmVzdWx0IG9mIHRoZSBub24tdXBkYXRlIG9mIHRoZQorICAgIG1lbW9yeSBpbmZvLjwvcD4KKzwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj4KKzxwPjxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+V2FybmluZzogc2V0IGFkZHJlc3MgcmFuZ2UgcGVybXM6IGxhcmdlIHJhbmdlCisgICAgJmx0O251bWJlciZndDs8L2NvZGU+PC9wPgorPHA+RGlhZ25vc3RpYyBtZXNzYWdlLCBtb3N0bHkgZm9yIGJlbmVmaXQgb2YgdGhlIFZhbGdyaW5kCisgICAgZGV2ZWxvcGVycywgdG8gZG8gd2l0aCBtZW1vcnkgcGVybWlzc2lvbnMuPC9wPgorPC9saT4KKzwvdWw+PC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPGRpdj4KKzxicj48dGFibGUgY2xhc3M9Im5hdiIgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSIzIiBjZWxscGFkZGluZz0iMiIgYm9yZGVyPSIwIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGZvb3RlciI+Cis8dHI+Cis8dGQgcm93c3Bhbj0iMiIgd2lkdGg9IjQwJSIgYWxpZ249ImxlZnQiPgorPGEgYWNjZXNza2V5PSJwIiBocmVmPSJtYW51YWwtaW50cm8uaHRtbCI+Jmx0OyZsdDugMS6gSW50cm9kdWN0aW9uPC9hPqA8L3RkPgorPHRkIHdpZHRoPSIyMCUiIGFsaWduPSJjZW50ZXIiPjxhIGFjY2Vzc2tleT0idSIgaHJlZj0ibWFudWFsLmh0bWwiPlVwPC9hPjwvdGQ+Cis8dGQgcm93c3Bhbj0iMiIgd2lkdGg9IjQwJSIgYWxpZ249InJpZ2h0Ij6gPGEgYWNjZXNza2V5PSJuIiBocmVmPSJtYW51YWwtY29yZS1hZHYuaHRtbCI+My6gVXNpbmcgYW5kIHVuZGVyc3RhbmRpbmcgdGhlIFZhbGdyaW5kIGNvcmU6IEFkdmFuY2VkIFRvcGljc6AmZ3Q7Jmd0OzwvYT4KKzwvdGQ+Cis8L3RyPgorPHRyPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0iY2VudGVyIj48YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPkhvbWU8L2E+PC90ZD48L3RyPgorPC90YWJsZT4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvZG9jcy9odG1sL21hbnVhbC1pbnRyby5odG1sIGIvZG9jcy9odG1sL21hbnVhbC1pbnRyby5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk2NWMwNTEKLS0tIC9kZXYvbnVsbAorKysgYi9kb2NzL2h0bWwvbWFudWFsLWludHJvLmh0bWwKQEAgLTAsMCArMSwxMjkgQEAKKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj4KKzx0aXRsZT4xLqBJbnRyb2R1Y3Rpb248L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0idmdfYmFzaWMuY3NzIj4KKzxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iRG9jQm9vayBYU0wgU3R5bGVzaGVldHMgVjEuNzguMSI+Cis8bGluayByZWw9ImhvbWUiIGhyZWY9ImluZGV4Lmh0bWwiIHRpdGxlPSJWYWxncmluZCBEb2N1bWVudGF0aW9uIj4KKzxsaW5rIHJlbD0idXAiIGhyZWY9Im1hbnVhbC5odG1sIiB0aXRsZT0iVmFsZ3JpbmQgVXNlciBNYW51YWwiPgorPGxpbmsgcmVsPSJwcmV2IiBocmVmPSJtYW51YWwuaHRtbCIgdGl0bGU9IlZhbGdyaW5kIFVzZXIgTWFudWFsIj4KKzxsaW5rIHJlbD0ibmV4dCIgaHJlZj0ibWFudWFsLWNvcmUuaHRtbCIgdGl0bGU9IjIuoFVzaW5nIGFuZCB1bmRlcnN0YW5kaW5nIHRoZSBWYWxncmluZCBjb3JlIj4KKzwvaGVhZD4KKzxib2R5IGJnY29sb3I9IndoaXRlIiB0ZXh0PSJibGFjayIgbGluaz0iIzAwMDBGRiIgdmxpbms9IiM4NDAwODQiIGFsaW5rPSIjMDAwMEZGIj4KKzxkaXY+PHRhYmxlIGNsYXNzPSJuYXYiIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0iMyIgY2VsbHBhZGRpbmc9IjMiIGJvcmRlcj0iMCIgc3VtbWFyeT0iTmF2aWdhdGlvbiBoZWFkZXIiPjx0cj4KKzx0ZCB3aWR0aD0iMjJweCIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPjxhIGFjY2Vzc2tleT0icCIgaHJlZj0ibWFudWFsLmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvcHJldi5wbmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIyMSIgYm9yZGVyPSIwIiBhbHQ9IlByZXYiPjwvYT48L3RkPgorPHRkIHdpZHRoPSIyNXB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJtYW51YWwuaHRtbCI+PGltZyBzcmM9ImltYWdlcy91cC5wbmciIHdpZHRoPSIyMSIgaGVpZ2h0PSIxOCIgYm9yZGVyPSIwIiBhbHQ9IlVwIj48L2E+PC90ZD4KKzx0ZCB3aWR0aD0iMzFweCIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iaW5kZXguaHRtbCI+PGltZyBzcmM9ImltYWdlcy9ob21lLnBuZyIgd2lkdGg9IjI3IiBoZWlnaHQ9IjIwIiBib3JkZXI9IjAiIGFsdD0iVXAiPjwvYT48L3RkPgorPHRoIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj5WYWxncmluZCBVc2VyIE1hbnVhbDwvdGg+Cis8dGQgd2lkdGg9IjIycHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9Im4iIGhyZWY9Im1hbnVhbC1jb3JlLmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvbmV4dC5wbmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIyMSIgYm9yZGVyPSIwIiBhbHQ9Ik5leHQiPjwvYT48L3RkPgorPC90cj48L3RhYmxlPjwvZGl2PgorPGRpdiBjbGFzcz0iY2hhcHRlciI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDEgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9Im1hbnVhbC1pbnRybyI+PC9hPjEuoEludHJvZHVjdGlvbjwvaDE+PC9kaXY+PC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJ0b2MiPgorPHA+PGI+VGFibGUgb2YgQ29udGVudHM8L2I+PC9wPgorPGRsIGNsYXNzPSJ0b2MiPgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0ibWFudWFsLWludHJvLmh0bWwjbWFudWFsLWludHJvLm92ZXJ2aWV3Ij4xLjEuIEFuIE92ZXJ2aWV3IG9mIFZhbGdyaW5kPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0ibWFudWFsLWludHJvLmh0bWwjbWFudWFsLWludHJvLm5hdmlnYXRpb24iPjEuMi4gSG93IHRvIG5hdmlnYXRlIHRoaXMgbWFudWFsPC9hPjwvc3Bhbj48L2R0PgorPC9kbD4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDEiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj4KKzxhIG5hbWU9Im1hbnVhbC1pbnRyby5vdmVydmlldyI+PC9hPjEuMS6gQW4gT3ZlcnZpZXcgb2YgVmFsZ3JpbmQ8L2gyPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+VmFsZ3JpbmQgaXMgYW4gaW5zdHJ1bWVudGF0aW9uIGZyYW1ld29yayBmb3IgYnVpbGRpbmcgZHluYW1pYyBhbmFseXNpcwordG9vbHMuICBJdCBjb21lcyB3aXRoIGEgc2V0IG9mIHRvb2xzIGVhY2ggb2Ygd2hpY2ggcGVyZm9ybXMgc29tZSBraW5kIG9mCitkZWJ1Z2dpbmcsIHByb2ZpbGluZywgb3Igc2ltaWxhciB0YXNrIHRoYXQgaGVscHMgeW91IGltcHJvdmUgeW91ciBwcm9ncmFtcy4KK1ZhbGdyaW5kJ3MgYXJjaGl0ZWN0dXJlIGlzIG1vZHVsYXIsIHNvIG5ldyB0b29scyBjYW4gYmUgY3JlYXRlZCBlYXNpbHkKK2FuZCB3aXRob3V0IGRpc3R1cmJpbmcgdGhlIGV4aXN0aW5nIHN0cnVjdHVyZS48L3A+Cis8cD5BIG51bWJlciBvZiB1c2VmdWwgdG9vbHMgYXJlIHN1cHBsaWVkIGFzIHN0YW5kYXJkLjwvcD4KKzxkaXYgY2xhc3M9Im9yZGVyZWRsaXN0Ij48b2wgY2xhc3M9Im9yZGVyZWRsaXN0IiB0eXBlPSIxIj4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPjxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPk1lbWNoZWNrPC9zdHJvbmc+PC9zcGFuPiBpcyBhIG1lbW9yeSBlcnJvciBkZXRlY3Rvci4gIEl0IGhlbHBzCisgICAgeW91IG1ha2UgeW91ciBwcm9ncmFtcywgcGFydGljdWxhcmx5IHRob3NlIHdyaXR0ZW4gaW4gQyBhbmQgQysrLCBtb3JlCisgICAgY29ycmVjdC48L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPjxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPkNhY2hlZ3JpbmQ8L3N0cm9uZz48L3NwYW4+IGlzIGEgY2FjaGUgYW5kIGJyYW5jaC1wcmVkaWN0aW9uCisgICAgcHJvZmlsZXIuICBJdCBoZWxwcyB5b3UgbWFrZSB5b3VyIHByb2dyYW1zIHJ1biBmYXN0ZXIuPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD48c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz5DYWxsZ3JpbmQ8L3N0cm9uZz48L3NwYW4+IGlzIGEgY2FsbC1ncmFwaCBnZW5lcmF0aW5nIGNhY2hlCisgICAgcHJvZmlsZXIuICBJdCBoYXMgc29tZSBvdmVybGFwIHdpdGggQ2FjaGVncmluZCwgYnV0IGFsc28gZ2F0aGVycyBzb21lCisgICAgaW5mb3JtYXRpb24gdGhhdCBDYWNoZWdyaW5kIGRvZXMgbm90LjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+PHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+SGVsZ3JpbmQ8L3N0cm9uZz48L3NwYW4+IGlzIGEgdGhyZWFkIGVycm9yIGRldGVjdG9yLgorICAgIEl0IGhlbHBzIHlvdSBtYWtlIHlvdXIgbXVsdGktdGhyZWFkZWQgcHJvZ3JhbXMgbW9yZSBjb3JyZWN0LgorICAgIDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+PHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+RFJEPC9zdHJvbmc+PC9zcGFuPiBpcyBhbHNvIGEgdGhyZWFkIGVycm9yIGRldGVjdG9yLiAgSXQgaXMKKyAgICBzaW1pbGFyIHRvIEhlbGdyaW5kIGJ1dCB1c2VzIGRpZmZlcmVudCBhbmFseXNpcyB0ZWNobmlxdWVzIGFuZCBzbyBtYXkKKyAgICBmaW5kIGRpZmZlcmVudCBwcm9ibGVtcy48L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPjxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPk1hc3NpZjwvc3Ryb25nPjwvc3Bhbj4gaXMgYSBoZWFwIHByb2ZpbGVyLiAgSXQgaGVscHMgeW91CisgICAgbWFrZSB5b3VyIHByb2dyYW1zIHVzZSBsZXNzIG1lbW9yeS48L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPjxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPkRIQVQ8L3N0cm9uZz48L3NwYW4+IGlzIGEgZGlmZmVyZW50IGtpbmQgb2YgaGVhcAorICAgIHByb2ZpbGVyLiAgSXQgaGVscHMgeW91IHVuZGVyc3RhbmQgaXNzdWVzIG9mIGJsb2NrIGxpZmV0aW1lcywKKyAgICBibG9jayB1dGlsaXNhdGlvbiwgYW5kIGxheW91dCBpbmVmZmljaWVuY2llcy48L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPjxzcGFuIGNsYXNzPSJjb21tYW5kIj48c3Ryb25nPlNHY2hlY2s8L3N0cm9uZz48L3NwYW4+IGlzIGFuIGV4cGVyaW1lbnRhbCB0b29sIHRoYXQgY2FuCisgICAgZGV0ZWN0IG92ZXJydW5zIG9mIHN0YWNrIGFuZCBnbG9iYWwgYXJyYXlzLiAgSXRzIGZ1bmN0aW9uYWxpdHkgaXMKKyAgICBjb21wbGVtZW50YXJ5IHRvIHRoYXQgb2YgTWVtY2hlY2s6IFNHY2hlY2sgZmluZHMgcHJvYmxlbXMgdGhhdAorICAgIE1lbWNoZWNrIGNhbid0LCBhbmQgdmljZSB2ZXJzYS4uPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD48c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz5CQlY8L3N0cm9uZz48L3NwYW4+IGlzIGFuIGV4cGVyaW1lbnRhbCBTaW1Qb2ludCBiYXNpYyBibG9jaworICAgIHZlY3RvciBnZW5lcmF0b3IuICBJdCBpcyB1c2VmdWwgdG8gcGVvcGxlIGRvaW5nIGNvbXB1dGVyIGFyY2hpdGVjdHVyZQorICAgIHJlc2VhcmNoIGFuZCBkZXZlbG9wbWVudC48L3A+PC9saT4KKzwvb2w+PC9kaXY+Cis8cD5UaGVyZSBhcmUgYWxzbyBhIGNvdXBsZSBvZiBtaW5vciB0b29scyB0aGF0IGFyZW4ndCB1c2VmdWwgdG8KK21vc3QgdXNlcnM6ICA8c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz5MYWNrZXk8L3N0cm9uZz48L3NwYW4+IGlzIGFuIGV4YW1wbGUgdG9vbCB0aGF0IGlsbHVzdHJhdGVzCitzb21lIGluc3RydW1lbnRhdGlvbiBiYXNpY3M7IGFuZCA8c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz5OdWxncmluZDwvc3Ryb25nPjwvc3Bhbj4gaXMgdGhlIG1pbmltYWwKK1ZhbGdyaW5kIHRvb2wgdGhhdCBkb2VzIG5vIGFuYWx5c2lzIG9yIGluc3RydW1lbnRhdGlvbiwgYW5kIGlzIG9ubHkgdXNlZnVsCitmb3IgdGVzdGluZyBwdXJwb3Nlcy48L3A+Cis8cD5WYWxncmluZCBpcyBjbG9zZWx5IHRpZWQgdG8gZGV0YWlscyBvZiB0aGUgQ1BVIGFuZCBvcGVyYXRpbmcKK3N5c3RlbSwgYW5kIHRvIGEgbGVzc2VyIGV4dGVudCwgdGhlIGNvbXBpbGVyIGFuZCBiYXNpYyBDIGxpYnJhcmllcy4KK05vbmV0aGVsZXNzLCBpdCBzdXBwb3J0cyBhIG51bWJlciBvZiB3aWRlbHktdXNlZCBwbGF0Zm9ybXMsIGxpc3RlZCBpbiBmdWxsCithdCA8YSBjbGFzcz0idWxpbmsiIGhyZWY9Imh0dHA6Ly93d3cudmFsZ3JpbmQub3JnLyIgdGFyZ2V0PSJfdG9wIj5odHRwOi8vd3d3LnZhbGdyaW5kLm9yZy88L2E+LjwvcD4KKzxwPlZhbGdyaW5kIGlzIGJ1aWx0IHZpYSB0aGUgc3RhbmRhcmQgVW5peAorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij4uL2NvbmZpZ3VyZTwvY29kZT4sCis8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPm1ha2U8L2NvZGU+LCA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPm1ha2UKK2luc3RhbGw8L2NvZGU+IHByb2Nlc3M7ICBmdWxsIGRldGFpbHMgYXJlIGdpdmVuIGluIHRoZQorUkVBRE1FIGZpbGUgaW4gdGhlIGRpc3RyaWJ1dGlvbi48L3A+Cis8cD5WYWxncmluZCBpcyBsaWNlbnNlZCB1bmRlciB0aGUgPGEgY2xhc3M9InhyZWYiIGhyZWY9ImxpY2Vuc2UuZ3BsLmh0bWwiIHRpdGxlPSIxLqBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UiPiBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2U8L2E+LAordmVyc2lvbiAyLiAgVGhlIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+dmFsZ3JpbmQvKi5oPC9jb2RlPiBoZWFkZXJzCit0aGF0IHlvdSBtYXkgd2lzaCB0byBpbmNsdWRlIGluIHlvdXIgY29kZSAoZWcuCis8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPnZhbGdyaW5kLmg8L2NvZGU+LCA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPm1lbWNoZWNrLmg8L2NvZGU+LAorPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5oZWxncmluZC5oPC9jb2RlPiwgZXRjLikgYXJlCitkaXN0cmlidXRlZCB1bmRlciBhIEJTRC1zdHlsZSBsaWNlbnNlLCBzbyB5b3UgbWF5IGluY2x1ZGUgdGhlbSBpbiB5b3VyCitjb2RlIHdpdGhvdXQgd29ycnlpbmcgYWJvdXQgbGljZW5zZSBjb25mbGljdHMuICBTb21lIG9mIHRoZSBQVGhyZWFkcwordGVzdCBjYXNlcywgPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5wdGhfKi5jPC9jb2RlPiwgYXJlIHRha2VuIGZyb20gIlB0aHJlYWRzCitQcm9ncmFtbWluZyIgYnkgQnJhZGZvcmQgTmljaG9scywgRGljayBCdXR0bGFyICZhbXA7IEphY3F1ZWxpbmUgUHJvdWx4CitGYXJyZWxsLCBJU0JOIDEtNTY1OTItMTE1LTEsIHB1Ymxpc2hlZCBieSBPJ1JlaWxseSAmYW1wOyBBc3NvY2lhdGVzLAorSW5jLjwvcD4KKzxwPklmIHlvdSBjb250cmlidXRlIGNvZGUgdG8gVmFsZ3JpbmQsIHBsZWFzZSBlbnN1cmUgeW91cgorY29udHJpYnV0aW9ucyBhcmUgbGljZW5zZWQgYXMgIkdQTHYyLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlcgordmVyc2lvbi4iICBUaGlzIGlzIHNvIGFzIHRvIGFsbG93IHRoZSBwb3NzaWJpbGl0eSBvZiBlYXNpbHkgdXBncmFkaW5nCit0aGUgbGljZW5zZSB0byBHUEx2MyBpbiBmdXR1cmUuICBJZiB5b3Ugd2FudCB0byBtb2RpZnkgY29kZSBpbiB0aGUgVkVYCitzdWJkaXJlY3RvcnksIHBsZWFzZSBhbHNvIHNlZSB0aGUgZmlsZSBWRVgvSEFDS0lORy5SRUFETUUgaW4gdGhlCitkaXN0cmlidXRpb24uPC9wPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MSI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPgorPGEgbmFtZT0ibWFudWFsLWludHJvLm5hdmlnYXRpb24iPjwvYT4xLjIuoEhvdyB0byBuYXZpZ2F0ZSB0aGlzIG1hbnVhbDwvaDI+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD5UaGlzIG1hbnVhbCdzIHN0cnVjdHVyZSByZWZsZWN0cyB0aGUgc3RydWN0dXJlIG9mIFZhbGdyaW5kIGl0c2VsZi4KK0ZpcnN0LCB3ZSBkZXNjcmliZSB0aGUgVmFsZ3JpbmQgY29yZSwgaG93IHRvIHVzZSBpdCwgYW5kIHRoZSBvcHRpb25zCitpdCBzdXBwb3J0cy4gIFRoZW4sIGVhY2ggdG9vbCBoYXMgaXRzIG93biBjaGFwdGVyIGluIHRoaXMgbWFudWFsLiAgWW91Citvbmx5IG5lZWQgdG8gcmVhZCB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGNvcmUgYW5kIGZvciB0aGUgdG9vbChzKSB5b3UKK2FjdHVhbGx5IHVzZSwgYWx0aG91Z2ggeW91IG1heSBmaW5kIGl0IGhlbHBmdWwgdG8gYmUgYXQgbGVhc3QgYSBsaXR0bGUKK2JpdCBmYW1pbGlhciB3aXRoIHdoYXQgYWxsIHRvb2xzIGRvLiAgSWYgeW91J3JlIG5ldyB0byBhbGwgdGhpcywgeW91IHByb2JhYmx5Cit3YW50IHRvIHJ1biB0aGUgTWVtY2hlY2sgdG9vbCBhbmQgeW91IG1pZ2h0IGZpbmQgdGhlIDxhIGNsYXNzPSJ4cmVmIiBocmVmPSJxdWljay1zdGFydC5odG1sIiB0aXRsZT0iVGhlIFZhbGdyaW5kIFF1aWNrIFN0YXJ0IEd1aWRlIj5UaGUgVmFsZ3JpbmQgUXVpY2sgU3RhcnQgR3VpZGU8L2E+IHVzZWZ1bC48L3A+Cis8cD5CZSBhd2FyZSB0aGF0IHRoZSBjb3JlIHVuZGVyc3RhbmRzIHNvbWUgY29tbWFuZCBsaW5lIG9wdGlvbnMsIGFuZAordGhlIHRvb2xzIGhhdmUgdGhlaXIgb3duIG9wdGlvbnMgd2hpY2ggdGhleSBrbm93IGFib3V0LiAgVGhpcyBtZWFucwordGhlcmUgaXMgbm8gY2VudHJhbCBwbGFjZSBkZXNjcmliaW5nIGFsbCB0aGUgb3B0aW9ucyB0aGF0IGFyZQorYWNjZXB0ZWQgLS0geW91IGhhdmUgdG8gcmVhZCB0aGUgb3B0aW9ucyBkb2N1bWVudGF0aW9uIGJvdGggZm9yCis8YSBjbGFzcz0ieHJlZiIgaHJlZj0ibWFudWFsLWNvcmUuaHRtbCIgdGl0bGU9IjIuoFVzaW5nIGFuZCB1bmRlcnN0YW5kaW5nIHRoZSBWYWxncmluZCBjb3JlIj5WYWxncmluZCdzIGNvcmU8L2E+IGFuZCBmb3IgdGhlIHRvb2wgeW91IHdhbnQgdG8gdXNlLjwvcD4KKzwvZGl2PgorPC9kaXY+Cis8ZGl2PgorPGJyPjx0YWJsZSBjbGFzcz0ibmF2IiB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjMiIGNlbGxwYWRkaW5nPSIyIiBib3JkZXI9IjAiIHN1bW1hcnk9Ik5hdmlnYXRpb24gZm9vdGVyIj4KKzx0cj4KKzx0ZCByb3dzcGFuPSIyIiB3aWR0aD0iNDAlIiBhbGlnbj0ibGVmdCI+Cis8YSBhY2Nlc3NrZXk9InAiIGhyZWY9Im1hbnVhbC5odG1sIj4mbHQ7Jmx0O6BWYWxncmluZCBVc2VyIE1hbnVhbDwvYT6gPC90ZD4KKzx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0iY2VudGVyIj48YSBhY2Nlc3NrZXk9InUiIGhyZWY9Im1hbnVhbC5odG1sIj5VcDwvYT48L3RkPgorPHRkIHJvd3NwYW49IjIiIHdpZHRoPSI0MCUiIGFsaWduPSJyaWdodCI+oDxhIGFjY2Vzc2tleT0ibiIgaHJlZj0ibWFudWFsLWNvcmUuaHRtbCI+Mi6gVXNpbmcgYW5kIHVuZGVyc3RhbmRpbmcgdGhlIFZhbGdyaW5kIGNvcmWgJmd0OyZndDs8L2E+Cis8L3RkPgorPC90cj4KKzx0cj48dGQgd2lkdGg9IjIwJSIgYWxpZ249ImNlbnRlciI+PGEgYWNjZXNza2V5PSJoIiBocmVmPSJpbmRleC5odG1sIj5Ib21lPC9hPjwvdGQ+PC90cj4KKzwvdGFibGU+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL2RvY3MvaHRtbC9tYW51YWwtd3JpdGluZy10b29scy5odG1sIGIvZG9jcy9odG1sL21hbnVhbC13cml0aW5nLXRvb2xzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTlmYzg0ZAotLS0gL2Rldi9udWxsCisrKyBiL2RvY3MvaHRtbC9tYW51YWwtd3JpdGluZy10b29scy5odG1sCkBAIC0wLDAgKzEsNTAxIEBACis8aHRtbD4KKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSI+Cis8dGl0bGU+Mi6gV3JpdGluZyBhIE5ldyBWYWxncmluZCBUb29sPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9InZnX2Jhc2ljLmNzcyI+Cis8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkRvY0Jvb2sgWFNMIFN0eWxlc2hlZXRzIFYxLjc4LjEiPgorPGxpbmsgcmVsPSJob21lIiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0iVmFsZ3JpbmQgRG9jdW1lbnRhdGlvbiI+Cis8bGluayByZWw9InVwIiBocmVmPSJ0ZWNoLWRvY3MuaHRtbCIgdGl0bGU9IlZhbGdyaW5kIFRlY2huaWNhbCBEb2N1bWVudGF0aW9uIj4KKzxsaW5rIHJlbD0icHJldiIgaHJlZj0iZGVzaWduLWltcGwuaHRtbCIgdGl0bGU9IjEuoFRoZSBEZXNpZ24gYW5kIEltcGxlbWVudGF0aW9uIG9mIFZhbGdyaW5kIj4KKzxsaW5rIHJlbD0ibmV4dCIgaHJlZj0iY2wtZm9ybWF0Lmh0bWwiIHRpdGxlPSIzLqBDYWxsZ3JpbmQgRm9ybWF0IFNwZWNpZmljYXRpb24iPgorPC9oZWFkPgorPGJvZHkgYmdjb2xvcj0id2hpdGUiIHRleHQ9ImJsYWNrIiBsaW5rPSIjMDAwMEZGIiB2bGluaz0iIzg0MDA4NCIgYWxpbms9IiMwMDAwRkYiPgorPGRpdj48dGFibGUgY2xhc3M9Im5hdiIgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSIzIiBjZWxscGFkZGluZz0iMyIgYm9yZGVyPSIwIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGhlYWRlciI+PHRyPgorPHRkIHdpZHRoPSIyMnB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJwIiBocmVmPSJkZXNpZ24taW1wbC5odG1sIj48aW1nIHNyYz0iaW1hZ2VzL3ByZXYucG5nIiB3aWR0aD0iMTgiIGhlaWdodD0iMjEiIGJvcmRlcj0iMCIgYWx0PSJQcmV2Ij48L2E+PC90ZD4KKzx0ZCB3aWR0aD0iMjVweCIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPjxhIGFjY2Vzc2tleT0idSIgaHJlZj0idGVjaC1kb2NzLmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvdXAucG5nIiB3aWR0aD0iMjEiIGhlaWdodD0iMTgiIGJvcmRlcj0iMCIgYWx0PSJVcCI+PC9hPjwvdGQ+Cis8dGQgd2lkdGg9IjMxcHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvaG9tZS5wbmciIHdpZHRoPSIyNyIgaGVpZ2h0PSIyMCIgYm9yZGVyPSIwIiBhbHQ9IlVwIj48L2E+PC90ZD4KKzx0aCBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+VmFsZ3JpbmQgVGVjaG5pY2FsIERvY3VtZW50YXRpb248L3RoPgorPHRkIHdpZHRoPSIyMnB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJuIiBocmVmPSJjbC1mb3JtYXQuaHRtbCI+PGltZyBzcmM9ImltYWdlcy9uZXh0LnBuZyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjIxIiBib3JkZXI9IjAiIGFsdD0iTmV4dCI+PC9hPjwvdGQ+Cis8L3RyPjwvdGFibGU+PC9kaXY+Cis8ZGl2IGNsYXNzPSJjaGFwdGVyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMSBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0ibWFudWFsLXdyaXRpbmctdG9vbHMiPjwvYT4yLqBXcml0aW5nIGEgTmV3IFZhbGdyaW5kIFRvb2w8L2gxPjwvZGl2PjwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0idG9jIj4KKzxwPjxiPlRhYmxlIG9mIENvbnRlbnRzPC9iPjwvcD4KKzxkbCBjbGFzcz0idG9jIj4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9Im1hbnVhbC13cml0aW5nLXRvb2xzLmh0bWwjbWFudWFsLXdyaXRpbmctdG9vbHMuaW50cm8iPjIuMS4gSW50cm9kdWN0aW9uPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0ibWFudWFsLXdyaXRpbmctdG9vbHMuaHRtbCNtYW51YWwtd3JpdGluZy10b29scy53cml0aW5nYXRvb2wiPjIuMi4gQmFzaWNzPC9hPjwvc3Bhbj48L2R0PgorPGRkPjxkbD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9Im1hbnVhbC13cml0aW5nLXRvb2xzLmh0bWwjbWFudWFsLXdyaXRpbmctdG9vbHMuaG93dG9vbHN3b3JrIj4yLjIuMS4gSG93IHRvb2xzIHdvcms8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJtYW51YWwtd3JpdGluZy10b29scy5odG1sI21hbnVhbC13cml0aW5nLXRvb2xzLmdldHRpbmdjb2RlIj4yLjIuMi4gR2V0dGluZyB0aGUgY29kZTwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9Im1hbnVhbC13cml0aW5nLXRvb2xzLmh0bWwjbWFudWFsLXdyaXRpbmctdG9vbHMuZ2V0dGluZ3N0YXJ0ZWQiPjIuMi4zLiBHZXR0aW5nIHN0YXJ0ZWQ8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJtYW51YWwtd3JpdGluZy10b29scy5odG1sI21hbnVhbC13cml0aW5nLXRvb2xzLndyaXRpbmdjb2RlIj4yLjIuNC4gV3JpdGluZyB0aGUgY29kZTwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9Im1hbnVhbC13cml0aW5nLXRvb2xzLmh0bWwjbWFudWFsLXdyaXRpbmctdG9vbHMuaW5pdCI+Mi4yLjUuIEluaXRpYWxpc2F0aW9uPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0ibWFudWFsLXdyaXRpbmctdG9vbHMuaHRtbCNtYW51YWwtd3JpdGluZy10b29scy5pbnN0ciI+Mi4yLjYuIEluc3RydW1lbnRhdGlvbjwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9Im1hbnVhbC13cml0aW5nLXRvb2xzLmh0bWwjbWFudWFsLXdyaXRpbmctdG9vbHMuZmluaSI+Mi4yLjcuIEZpbmFsaXNhdGlvbjwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9Im1hbnVhbC13cml0aW5nLXRvb2xzLmh0bWwjbWFudWFsLXdyaXRpbmctdG9vbHMub3RoZXJpbmZvIj4yLjIuOC4gT3RoZXIgSW1wb3J0YW50IEluZm9ybWF0aW9uPC9hPjwvc3Bhbj48L2R0PgorPC9kbD48L2RkPgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0ibWFudWFsLXdyaXRpbmctdG9vbHMuaHRtbCNtYW51YWwtd3JpdGluZy10b29scy5hZHZ0b3BpY3MiPjIuMy4gQWR2YW5jZWQgVG9waWNzPC9hPjwvc3Bhbj48L2R0PgorPGRkPjxkbD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9Im1hbnVhbC13cml0aW5nLXRvb2xzLmh0bWwjbWFudWFsLXdyaXRpbmctdG9vbHMuYWR2aWNlIj4yLjMuMS4gRGVidWdnaW5nIFRpcHM8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJtYW51YWwtd3JpdGluZy10b29scy5odG1sI21hbnVhbC13cml0aW5nLXRvb2xzLnN1cHByZXNzaW9ucyI+Mi4zLjIuIFN1cHByZXNzaW9uczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9Im1hbnVhbC13cml0aW5nLXRvb2xzLmh0bWwjbWFudWFsLXdyaXRpbmctdG9vbHMuZG9jcyI+Mi4zLjMuIERvY3VtZW50YXRpb248L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJtYW51YWwtd3JpdGluZy10b29scy5odG1sI21hbnVhbC13cml0aW5nLXRvb2xzLnJlZ3Rlc3RzIj4yLjMuNC4gUmVncmVzc2lvbiBUZXN0czwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9Im1hbnVhbC13cml0aW5nLXRvb2xzLmh0bWwjbWFudWFsLXdyaXRpbmctdG9vbHMucHJvZmlsaW5nIj4yLjMuNS4gUHJvZmlsaW5nPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0ibWFudWFsLXdyaXRpbmctdG9vbHMuaHRtbCNtYW51YWwtd3JpdGluZy10b29scy5ta2hhY2tlcnkiPjIuMy42LiBPdGhlciBNYWtlZmlsZSBIYWNrZXJ5PC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0ibWFudWFsLXdyaXRpbmctdG9vbHMuaHRtbCNtYW51YWwtd3JpdGluZy10b29scy5pZmFjZXZlciI+Mi4zLjcuIFRoZSBDb3JlL3Rvb2wgSW50ZXJmYWNlPC9hPjwvc3Bhbj48L2R0PgorPC9kbD48L2RkPgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0ibWFudWFsLXdyaXRpbmctdG9vbHMuaHRtbCNtYW51YWwtd3JpdGluZy10b29scy5maW5hbHdvcmRzIj4yLjQuIEZpbmFsIFdvcmRzPC9hPjwvc3Bhbj48L2R0PgorPC9kbD4KKzwvZGl2PgorCitTbyB5b3Ugd2FudCB0byB3cml0ZSBhIFZhbGdyaW5kIHRvb2w/ICBIZXJlIGFyZSBzb21lIGluc3RydWN0aW9ucyB0aGF0IG1heQoraGVscC4KKworPGRpdiBjbGFzcz0ic2VjdDEiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj4KKzxhIG5hbWU9Im1hbnVhbC13cml0aW5nLXRvb2xzLmludHJvIj48L2E+Mi4xLqBJbnRyb2R1Y3Rpb248L2gyPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+VGhlIGtleSBpZGVhIGJlaGluZCBWYWxncmluZCdzIGFyY2hpdGVjdHVyZSBpcyB0aGUgZGl2aXNpb24KK2JldHdlZW4gaXRzIDxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPmNvcmU8L2VtPjwvc3Bhbj4gYW5kIDxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPnRvb2xzPC9lbT48L3NwYW4+LjwvcD4KKzxwPlRoZSBjb3JlIHByb3ZpZGVzIHRoZSBjb21tb24gbG93LWxldmVsIGluZnJhc3RydWN0dXJlIHRvCitzdXBwb3J0IHByb2dyYW0gaW5zdHJ1bWVudGF0aW9uLCBpbmNsdWRpbmcgdGhlIEpJVAorY29tcGlsZXIsIGxvdy1sZXZlbCBtZW1vcnkgbWFuYWdlciwgc2lnbmFsIGhhbmRsaW5nIGFuZCBhCit0aHJlYWQgc2NoZWR1bGVyLiAgSXQgYWxzbyBwcm92aWRlcyBjZXJ0YWluIHNlcnZpY2VzIHRoYXQKK2FyZSB1c2VmdWwgdG8gc29tZSBidXQgbm90IGFsbCB0b29scywgc3VjaCBhcyBzdXBwb3J0IGZvciBlcnJvcgorcmVjb3JkaW5nLCBhbmQgc3VwcG9ydCBmb3IgcmVwbGFjaW5nIGhlYXAgYWxsb2NhdGlvbiBmdW5jdGlvbnMgc3VjaCBhcworPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5tYWxsb2M8L2NvZGU+LjwvcD4KKzxwPkJ1dCB0aGUgY29yZSBsZWF2ZXMgY2VydGFpbiBvcGVyYXRpb25zIHVuZGVmaW5lZCwgd2hpY2gKK211c3QgYmUgZmlsbGVkIGJ5IHRvb2xzLiAgTW9zdCBub3RhYmx5LCB0b29scyBkZWZpbmUgaG93IHByb2dyYW0KK2NvZGUgc2hvdWxkIGJlIGluc3RydW1lbnRlZC4gIFRoZXkgY2FuIGFsc28gY2FsbCBjZXJ0YWluCitmdW5jdGlvbnMgdG8gaW5kaWNhdGUgdG8gdGhlIGNvcmUgdGhhdCB0aGV5IHdvdWxkIGxpa2UgdG8gdXNlCitjZXJ0YWluIHNlcnZpY2VzLCBvciBiZSBub3RpZmllZCB3aGVuIGNlcnRhaW4gaW50ZXJlc3RpbmcgZXZlbnRzCitvY2N1ci4gIEJ1dCB0aGUgY29yZSB0YWtlcyBjYXJlIG9mIGFsbCB0aGUgaGFyZCB3b3JrLjwvcD4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDEiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj4KKzxhIG5hbWU9Im1hbnVhbC13cml0aW5nLXRvb2xzLndyaXRpbmdhdG9vbCI+PC9hPjIuMi6gQmFzaWNzPC9oMj48L2Rpdj48L2Rpdj48L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0ibWFudWFsLXdyaXRpbmctdG9vbHMuaG93dG9vbHN3b3JrIj48L2E+Mi4yLjEuoEhvdyB0b29scyB3b3JrPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPlRvb2xzIG11c3QgZGVmaW5lIHZhcmlvdXMgZnVuY3Rpb25zIGZvciBpbnN0cnVtZW50aW5nIHByb2dyYW1zCit0aGF0IGFyZSBjYWxsZWQgYnkgVmFsZ3JpbmQncyBjb3JlLiBUaGV5IGFyZSB0aGVuIGxpbmtlZCBhZ2FpbnN0CitWYWxncmluZCdzIGNvcmUgdG8gZGVmaW5lIGEgY29tcGxldGUgVmFsZ3JpbmQgdG9vbCB3aGljaCB3aWxsIGJlIHVzZWQKK3doZW4gdGhlIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tdG9vbDwvY29kZT4gb3B0aW9uIGlzIHVzZWQgdG8gc2VsZWN0IGl0LjwvcD4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDIiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJtYW51YWwtd3JpdGluZy10b29scy5nZXR0aW5nY29kZSI+PC9hPjIuMi4yLqBHZXR0aW5nIHRoZSBjb2RlPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPlRvIHdyaXRlIHlvdXIgb3duIHRvb2wsIHlvdSdsbCBuZWVkIHRoZSBWYWxncmluZCBzb3VyY2UgY29kZS4gIFlvdSdsbAorbmVlZCBhIGNoZWNrLW91dCBvZiB0aGUgU3VidmVyc2lvbiByZXBvc2l0b3J5IGZvciB0aGUgYXV0b21ha2UvYXV0b2NvbmYKK2J1aWxkIGluc3RydWN0aW9ucyB0byB3b3JrLiAgU2VlIHRoZSBpbmZvcm1hdGlvbiBhYm91dCBob3cgdG8gZG8gY2hlY2stb3V0Citmcm9tIHRoZSByZXBvc2l0b3J5IGF0IDxhIGNsYXNzPSJ1bGluayIgaHJlZj0iaHR0cDovL3d3dy52YWxncmluZC5vcmcvZG93bmxvYWRzL3JlcG9zaXRvcnkuaHRtbCIgdGFyZ2V0PSJfdG9wIj50aGUgVmFsZ3JpbmQKK3dlYnNpdGU8L2E+LjwvcD4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDIiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJtYW51YWwtd3JpdGluZy10b29scy5nZXR0aW5nc3RhcnRlZCI+PC9hPjIuMi4zLqBHZXR0aW5nIHN0YXJ0ZWQ8L2gzPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+VmFsZ3JpbmQgdXNlcyBHTlUgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5hdXRvbWFrZTwvY29kZT4gYW5kCis8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmF1dG9jb25mPC9jb2RlPiBmb3IgdGhlIGNyZWF0aW9uIG9mIE1ha2VmaWxlcworYW5kIGNvbmZpZ3VyYXRpb24uICBCdXQgZG9uJ3Qgd29ycnksIHRoZXNlIGluc3RydWN0aW9ucyBzaG91bGQgYmUgZW5vdWdoCit0byBnZXQgeW91IHN0YXJ0ZWQgZXZlbiBpZiB5b3Uga25vdyBub3RoaW5nIGFib3V0IHRob3NlIHRvb2xzLjwvcD4KKzxwPkluIHdoYXQgZm9sbG93cywgYWxsIGZpbGVuYW1lcyBhcmUgcmVsYXRpdmUgdG8gVmFsZ3JpbmQncwordG9wLWxldmVsIGRpcmVjdG9yeSA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPnZhbGdyaW5kLzwvY29kZT4uPC9wPgorPGRpdiBjbGFzcz0ib3JkZXJlZGxpc3QiPjxvbCBjbGFzcz0ib3JkZXJlZGxpc3QiIHR5cGU9IjEiPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+Q2hvb3NlIGEgbmFtZSBmb3IgdGhlIHRvb2wsIGFuZCBhIHR3by1sZXR0ZXIgYWJicmV2aWF0aW9uIHRoYXQgY2FuCisgIGJlIHVzZWQgYXMgYSBzaG9ydCBwcmVmaXguICBXZSdsbCB1c2UKKyAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5mb29iYXI8L2NvZGU+IGFuZAorICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmZiPC9jb2RlPiBhcyBhbiBleGFtcGxlLjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+TWFrZSB0aHJlZSBuZXcgZGlyZWN0b3JpZXMgPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5mb29iYXIvPC9jb2RlPiwKKyAgPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5mb29iYXIvZG9jcy88L2NvZGU+IGFuZAorICA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPmZvb2Jhci90ZXN0cy88L2NvZGU+LgorICA8L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPkNyZWF0ZSBhbiBlbXB0eSBmaWxlIDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+Zm9vYmFyL3Rlc3RzL01ha2VmaWxlLmFtPC9jb2RlPi4KKyAgPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5Db3B5IDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+bm9uZS9NYWtlZmlsZS5hbTwvY29kZT4gaW50bworICA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPmZvb2Jhci88L2NvZGU+LiAgRWRpdCBpdCBieSByZXBsYWNpbmcgYWxsCisgIG9jY3VycmVuY2VzIG9mIHRoZSBzdHJpbmdzCisgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+Im5vbmUiPC9jb2RlPiwKKyAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij4ibmxfIjwvY29kZT4gYW5kCisgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+Im5sLSI8L2NvZGU+IHdpdGgKKyAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij4iZm9vYmFyIjwvY29kZT4sCisgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+ImZiXyI8L2NvZGU+IGFuZAorICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPiJmYi0iPC9jb2RlPiByZXNwZWN0aXZlbHkuPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5Db3B5IDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+bm9uZS9ubF9tYWluLmM8L2NvZGU+IGludG8KKyAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5mb29iYXIvPC9jb2RlPiwgcmVuYW1pbmcgaXQgYXMKKyAgPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5mYl9tYWluLmM8L2NvZGU+LiAgRWRpdCBpdCBieSBjaGFuZ2luZyB0aGUKKyAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5kZXRhaWxzPC9jb2RlPiBsaW5lcyBpbgorICA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPm5sX3ByZV9jbG9faW5pdDwvY29kZT4gdG8gc29tZXRoaW5nIGFwcHJvcHJpYXRlIGZvciB0aGUKKyAgdG9vbC4gIFRoZXNlIGZpZWxkcyBhcmUgdXNlZCBpbiB0aGUgc3RhcnR1cCBtZXNzYWdlLCBleGNlcHQgZm9yCisgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+YnVnX3JlcG9ydHNfdG88L2NvZGU+IHdoaWNoIGlzIHVzZWQgaWYgYQorICB0b29sIGFzc2VydGlvbiBmYWlscy4gIEFsc28sIHJlcGxhY2UgdGhlIHN0cmluZworICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPiJubF8iPC9jb2RlPiB0aHJvdWdob3V0IHdpdGggIAorICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPiJmYl8iPC9jb2RlPiBhZ2Fpbi48L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPkVkaXQgPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5NYWtlZmlsZS5hbTwvY29kZT4sIGFkZGluZyB0aGUgbmV3IGRpcmVjdG9yeQorICAgPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5mb29iYXI8L2NvZGU+IHRvIHRoZQorICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5UT09MUzwvY29kZT4gb3IKKyAgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+RVhQX1RPT0xTPC9jb2RlPiB2YXJpYWJsZXMuPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5FZGl0IDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+Y29uZmlndXJlLmluPC9jb2RlPiwgYWRkaW5nCisgICA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPmZvb2Jhci9NYWtlZmlsZTwvY29kZT4gYW5kCisgICA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPmZvb2Jhci90ZXN0cy9NYWtlZmlsZTwvY29kZT4gdG8gdGhlCisgICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPkFDX09VVFBVVDwvY29kZT4gbGlzdC48L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPgorPHA+UnVuOjwvcD4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KKyAgYXV0b2dlbi5zaAorICAuL2NvbmZpZ3VyZSAtLXByZWZpeD1gcHdkYC9pbnN0CisgIG1ha2UKKyAgbWFrZSBpbnN0YWxsPC9wcmU+Cis8cD5JdCBzaG91bGQgYXV0b21ha2UsIGNvbmZpZ3VyZSBhbmQgY29tcGlsZSB3aXRob3V0IGVycm9ycywKKyAgIHB1dHRpbmcgY29waWVzIG9mIHRoZSB0b29sIGluCisgICA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPmZvb2Jhci88L2NvZGU+IGFuZAorICAgPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5pbnN0L2xpYi92YWxncmluZC88L2NvZGU+LjwvcD4KKzwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj4KKzxwPllvdSBjYW4gdGVzdCBpdCB3aXRoIGEgY29tbWFuZCBsaWtlOjwvcD4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KKyAgaW5zdC9iaW4vdmFsZ3JpbmQgLS10b29sPWZvb2JhciBkYXRlPC9wcmU+Cis8cD4oYWxtb3N0IGFueSBwcm9ncmFtIHNob3VsZCB3b3JrOworICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5kYXRlPC9jb2RlPiBpcyBqdXN0IGFuIGV4YW1wbGUpLgorICAgVGhlIG91dHB1dCBzaG91bGQgYmUgc29tZXRoaW5nIGxpa2UgdGhpczo8L3A+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CisgID09NzM4PT0gZm9vYmFyLTAuMC4xLCBhIGZvb2JhcnJpbmcgdG9vbC4KKyAgPT03Mzg9PSBDb3B5cmlnaHQgKEMpIDIwMDItMjAwOSwgYW5kIEdOVSBHUEwnZCwgYnkgSi4gUHJvZ3JhbW1lci4KKyAgPT03Mzg9PSBVc2luZyBWYWxncmluZC0zLjUuMC5TVk4gYW5kIExpYlZFWDsgcmVydW4gd2l0aCAtaCBmb3IgY29weXJpZ2h0IGluZm8KKyAgPT03Mzg9PSBDb21tYW5kOiBkYXRlCisgID09NzM4PT0KKyAgVHVlIE5vdiAyNyAxMjo0MDo0OSBFU1QgMjAwNworICA9PTczOD09PC9wcmU+Cis8cD5UaGUgdG9vbCBkb2VzIG5vdGhpbmcgZXhjZXB0IHJ1biB0aGUgcHJvZ3JhbSB1bmluc3RydW1lbnRlZC48L3A+Cis8L2xpPgorPC9vbD48L2Rpdj4KKzxwPlRoZXNlIHN0ZXBzIGRvbid0IGhhdmUgdG8gYmUgZm9sbG93ZWQgZXhhY3RseSAtLSB5b3UgY2FuIGNob29zZQorZGlmZmVyZW50IG5hbWVzIGZvciB5b3VyIHNvdXJjZSBmaWxlcywgYW5kIHVzZSBhIGRpZmZlcmVudAorPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1wcmVmaXg8L2NvZGU+IGZvcgorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij4uL2NvbmZpZ3VyZTwvY29kZT4uPC9wPgorPHA+Tm93IHRoYXQgd2UndmUgc2V0dXAsIGJ1aWx0IGFuZCB0ZXN0ZWQgdGhlIHNpbXBsZXN0IHBvc3NpYmxlIHRvb2wsCitvbnRvIHRoZSBpbnRlcmVzdGluZyBzdHVmZi4uLjwvcD4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDIiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJtYW51YWwtd3JpdGluZy10b29scy53cml0aW5nY29kZSI+PC9hPjIuMi40LqBXcml0aW5nIHRoZSBjb2RlPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPkEgdG9vbCBtdXN0IGRlZmluZSBhdCBsZWFzdCB0aGVzZSBmb3VyIGZ1bmN0aW9uczo8L3A+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CisgIHByZV9jbG9faW5pdCgpCisgIHBvc3RfY2xvX2luaXQoKQorICBpbnN0cnVtZW50KCkKKyAgZmluaSgpPC9wcmU+Cis8cD5UaGUgbmFtZXMgY2FuIGJlIGRpZmZlcmVudCB0byB0aGUgYWJvdmUsIGJ1dCB0aGVzZSBhcmUgdGhlIHVzdWFsCituYW1lcy4gIFRoZSBmaXJzdCBvbmUgaXMgcmVnaXN0ZXJlZCB1c2luZyB0aGUgbWFjcm8KKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+VkdfREVURVJNSU5FX0lOVEVSRkFDRV9WRVJTSU9OPC9jb2RlPi4KK1RoZSBsYXN0IHRocmVlIGFyZSByZWdpc3RlcmVkIHVzaW5nIHRoZQorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5WR18oYmFzaWNfdG9vbF9mdW5jcyk8L2NvZGU+IGZ1bmN0aW9uLjwvcD4KKzxwPkluIGFkZGl0aW9uLCBpZiBhIHRvb2wgd2FudHMgdG8gdXNlIHNvbWUgb2YgdGhlIG9wdGlvbmFsIHNlcnZpY2VzCitwcm92aWRlZCBieSB0aGUgY29yZSwgaXQgbWF5IGhhdmUgdG8gZGVmaW5lIG90aGVyIGZ1bmN0aW9ucyBhbmQgdGVsbCB0aGUKK2NvcmUgYWJvdXQgdGhlbS48L3A+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0ibWFudWFsLXdyaXRpbmctdG9vbHMuaW5pdCI+PC9hPjIuMi41LqBJbml0aWFsaXNhdGlvbjwvaDM+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD5Nb3N0IG9mIHRoZSBpbml0aWFsaXNhdGlvbiBzaG91bGQgYmUgZG9uZSBpbgorPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5wcmVfY2xvX2luaXQ8L2NvZGU+LiAgT25seSB1c2UKKzxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+cG9zdF9jbG9faW5pdDwvY29kZT4gaWYgYSB0b29sIHByb3ZpZGVzIGNvbW1hbmQgbGluZQorb3B0aW9ucyBhbmQgbXVzdCBkbyBzb21lIGluaXRpYWxpc2F0aW9uIGFmdGVyIG9wdGlvbiBwcm9jZXNzaW5nIHRha2VzCitwbGFjZSAoPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij4iY2xvIjwvY29kZT4gc3RhbmRzIGZvciAiY29tbWFuZCBsaW5lCitvcHRpb25zIikuPC9wPgorPHA+Rmlyc3Qgb2YgYWxsLCB2YXJpb3VzICJkZXRhaWxzIiBuZWVkIHRvIGJlIHNldCBmb3IgYSB0b29sLCB1c2luZwordGhlIGZ1bmN0aW9ucyA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPlZHXyhkZXRhaWxzXyopPC9jb2RlPi4gIFNvbWUgYXJlIGFsbAorY29tcHVsc29yeSwgc29tZSBhcmVuJ3QuICBTb21lIGFyZSB1c2VkIHdoZW4gY29uc3RydWN0aW5nIHRoZSBzdGFydHVwCittZXNzYWdlLCA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmRldGFpbF9idWdfcmVwb3J0c190bzwvY29kZT4gaXMgdXNlZAoraWYgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5WR18odG9vbF9wYW5pYyk8L2NvZGU+IGlzIGV2ZXIgY2FsbGVkLCBvcgorYSB0b29sIGFzc2VydGlvbiBmYWlscy4gIE90aGVycyBoYXZlIG90aGVyIHVzZXMuPC9wPgorPHA+U2Vjb25kLCB2YXJpb3VzICJuZWVkcyIgY2FuIGJlIHNldCBmb3IgYSB0b29sLCB1c2luZyB0aGUgZnVuY3Rpb25zCis8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPlZHXyhuZWVkc18qKTwvY29kZT4uICBUaGV5IGFyZSBtb3N0bHkgYm9vbGVhbnMsIGFuZCBjYW4KK2JlIGxlZnQgdW50b3VjaGVkICh0aGV5IGRlZmF1bHQgdG8gPGNvZGUgY2xhc3M9InZhcm5hbWUiPkZhbHNlPC9jb2RlPikuICBUaGV5CitkZXRlcm1pbmUgd2hldGhlciBhIHRvb2wgY2FuIGRvIHZhcmlvdXMgdGhpbmdzIHN1Y2ggYXM6IHJlY29yZCwgcmVwb3J0CithbmQgc3VwcHJlc3MgZXJyb3JzOyBwcm9jZXNzIGNvbW1hbmQgbGluZSBvcHRpb25zOyB3cmFwIHN5c3RlbSBjYWxsczsKK3JlY29yZCBleHRyYSBpbmZvcm1hdGlvbiBhYm91dCBoZWFwIGJsb2NrczsgZXRjLjwvcD4KKzxwPkZvciBleGFtcGxlLCBpZiBhIHRvb2wgd2FudHMgdGhlIGNvcmUncyBoZWxwIGluIHJlY29yZGluZyBhbmQKK3JlcG9ydGluZyBlcnJvcnMsIGl0IG11c3QgY2FsbAorPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5WR18obmVlZHNfdG9vbF9lcnJvcnMpPC9jb2RlPiBhbmQgcHJvdmlkZSBkZWZpbml0aW9ucyBvZgorZWlnaHQgZnVuY3Rpb25zIGZvciBjb21wYXJpbmcgZXJyb3JzLCBwcmludGluZyBvdXQgZXJyb3JzLCByZWFkaW5nCitzdXBwcmVzc2lvbnMgZnJvbSBhIHN1cHByZXNzaW9ucyBmaWxlLCBldGMuICBXaGlsZSB3cml0aW5nIHRoZXNlCitmdW5jdGlvbnMgcmVxdWlyZXMgc29tZSB3b3JrLCBpdCdzIG11Y2ggbGVzcyB0aGFuIGRvaW5nIGVycm9yIGhhbmRsaW5nCitmcm9tIHNjcmF0Y2ggYmVjYXVzZSB0aGUgY29yZSBpcyBkb2luZyBtb3N0IG9mIHRoZSB3b3JrLgorPC9wPgorPHA+VGhpcmQsIHRoZSB0b29sIGNhbiBpbmRpY2F0ZSB3aGljaCBldmVudHMgaW4gY29yZSBpdCB3YW50cyB0byBiZQorbm90aWZpZWQgYWJvdXQsIHVzaW5nIHRoZSBmdW5jdGlvbnMgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5WR18odHJhY2tfKik8L2NvZGU+LgorVGhlc2UgaW5jbHVkZSB0aGluZ3Mgc3VjaCBhcyBoZWFwIGJsb2NrcyBiZWluZyBhbGxvY2F0ZWQsIHRoZSBzdGFjaworcG9pbnRlciBjaGFuZ2luZywgYSBtdXRleCBiZWluZyBsb2NrZWQsIGV0Yy4gIElmIGEgdG9vbCB3YW50cyB0byBrbm93CithYm91dCB0aGlzLCBpdCBzaG91bGQgcHJvdmlkZSBhIHBvaW50ZXIgdG8gYSBmdW5jdGlvbiwgd2hpY2ggd2lsbCBiZQorY2FsbGVkIHdoZW4gdGhhdCBldmVudCBoYXBwZW5zLjwvcD4KKzxwPkZvciBleGFtcGxlLCBpZiB0aGUgdG9vbCB3YW50IHRvIGJlIG5vdGlmaWVkIHdoZW4gYSBuZXcgaGVhcCBibG9jaworaXMgYWxsb2NhdGVkLCBpdCBzaG91bGQgY2FsbAorPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5WR18odHJhY2tfbmV3X21lbV9oZWFwKTwvY29kZT4gd2l0aCBhbiBhcHByb3ByaWF0ZQorZnVuY3Rpb24gcG9pbnRlciwgYW5kIHRoZSBhc3NpZ25lZCBmdW5jdGlvbiB3aWxsIGJlIGNhbGxlZCBlYWNoIHRpbWUKK3RoaXMgaGFwcGVucy48L3A+Cis8cD5Nb3JlIGluZm9ybWF0aW9uIGFib3V0ICJkZXRhaWxzIiwgIm5lZWRzIiBhbmQgInRyYWNrYWJsZSBldmVudHMiCitjYW4gYmUgZm91bmQgaW4KKzxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+aW5jbHVkZS9wdWJfdG9vbF90b29saWZhY2UuaDwvY29kZT4uPC9wPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MiI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9Im1hbnVhbC13cml0aW5nLXRvb2xzLmluc3RyIj48L2E+Mi4yLjYuoEluc3RydW1lbnRhdGlvbjwvaDM+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD48Y29kZSBjbGFzcz0iZnVuY3Rpb24iPmluc3RydW1lbnQ8L2NvZGU+IGlzIHRoZSBpbnRlcmVzdGluZyBvbmUuICBJdAorYWxsb3dzIHlvdSB0byBpbnN0cnVtZW50IDxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPlZFWCBJUjwvZW0+PC9zcGFuPiwgd2hpY2ggaXMKK1ZhbGdyaW5kJ3MgUklTQy1saWtlIGludGVybWVkaWF0ZSBsYW5ndWFnZS4gIFZFWCBJUiBpcyBkZXNjcmliZWQKK2luIHRoZSBjb21tZW50cyBvZiB0aGUgaGVhZGVyIGZpbGUKKzxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+VkVYL3B1Yi9saWJ2ZXhfaXIuaDwvY29kZT4uPC9wPgorPHA+VGhlIGVhc2llc3Qgd2F5IHRvIGluc3RydW1lbnQgVkVYIElSIGlzIHRvIGluc2VydCBjYWxscyB0byBDCitmdW5jdGlvbnMgd2hlbiBpbnRlcmVzdGluZyB0aGluZ3MgaGFwcGVuLiAgU2VlIHRoZSB0b29sICJMYWNrZXkiCisoPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5sYWNrZXkvbGtfbWFpbi5jPC9jb2RlPikgZm9yIGEgc2ltcGxlIGV4YW1wbGUgb2YgdGhpcywgb3IKK0NhY2hlZ3JpbmQgKDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+Y2FjaGVncmluZC9jZ19tYWluLmM8L2NvZGU+KSBmb3IgYSBtb3JlCitjb21wbGV4IGV4YW1wbGUuPC9wPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MiI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9Im1hbnVhbC13cml0aW5nLXRvb2xzLmZpbmkiPjwvYT4yLjIuNy6gRmluYWxpc2F0aW9uPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPlRoaXMgaXMgd2hlcmUgeW91IGNhbiBwcmVzZW50IHRoZSBmaW5hbCByZXN1bHRzLCBzdWNoIGFzIGEgc3VtbWFyeQorb2YgdGhlIGluZm9ybWF0aW9uIGNvbGxlY3RlZC4gIEFueSBsb2cgZmlsZXMgc2hvdWxkIGJlIHdyaXR0ZW4gb3V0IGF0Cit0aGlzIHBvaW50LjwvcD4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDIiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJtYW51YWwtd3JpdGluZy10b29scy5vdGhlcmluZm8iPjwvYT4yLjIuOC6gT3RoZXIgSW1wb3J0YW50IEluZm9ybWF0aW9uPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPlBsZWFzZSBub3RlIHRoYXQgdGhlIGNvcmUvdG9vbCBzcGxpdCBpbmZyYXN0cnVjdHVyZSBpcyBxdWl0ZQorY29tcGxleCBhbmQgbm90IGJyaWxsaWFudGx5IGRvY3VtZW50ZWQuICBIZXJlIGFyZSBzb21lIGltcG9ydGFudCBwb2ludHMsCitidXQgdGhlcmUgYXJlIHVuZG91YnRlZGx5IG1hbnkgb3RoZXJzIHRoYXQgSSBzaG91bGQgbm90ZSBidXQgaGF2ZW4ndAordGhvdWdodCBvZi48L3A+Cis8cD5UaGUgZmlsZXMgPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5pbmNsdWRlL3B1Yl90b29sXyouaDwvY29kZT4gY29udGFpbiBhbGwgdGhlCit0eXBlcywgbWFjcm9zLCBmdW5jdGlvbnMsIGV0Yy4gdGhhdCBhIHRvb2wgc2hvdWxkIChob3BlZnVsbHkpIG5lZWQsIGFuZCBhcmUKK3RoZSBvbmx5IDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+Lmg8L2NvZGU+IGZpbGVzIGEgdG9vbCBzaG91bGQgbmVlZCB0bworPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij4jaW5jbHVkZTwvY29kZT4uICBUaGV5IGhhdmUgYSByZWFzb25hYmxlIGFtb3VudCBvZgorZG9jdW1lbnRhdGlvbiBpbiBpdCB0aGF0IHNob3VsZCBob3BlZnVsbHkgYmUgZW5vdWdoIHRvIGdldCB5b3UgZ29pbmcuPC9wPgorPHA+Tm90ZSB0aGF0IHlvdSBjYW4ndCB1c2UgYW55dGhpbmcgZnJvbSB0aGUgQyBsaWJyYXJ5ICh0aGVyZQorYXJlIGRlZXAgcmVhc29ucyBmb3IgdGhpcywgdHJ1c3QgdXMpLiAgVmFsZ3JpbmQgcHJvdmlkZXMgYW4KK2ltcGxlbWVudGF0aW9uIG9mIGEgcmVhc29uYWJsZSBzdWJzZXQgb2YgdGhlIEMgbGlicmFyeSwgZGV0YWlscyBvZiB3aGljaAorYXJlIGluIDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+cHViX3Rvb2xfbGliYyouaDwvY29kZT4uPC9wPgorPHA+V2hlbiB3cml0aW5nIGEgdG9vbCwgaW4gdGhlb3J5IHlvdSBzaG91bGRuJ3QgbmVlZCB0byBsb29rIGF0IGFueSBvZgordGhlIGNvZGUgaW4gVmFsZ3JpbmQncyBjb3JlLCBidXQgaW4gcHJhY3RpY2UgaXQgbWlnaHQgYmUgdXNlZnVsIHNvbWV0aW1lcyB0bworaGVscCB1bmRlcnN0YW5kIHNvbWV0aGluZy48L3A+Cis8cD5UaGUgPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5pbmNsdWRlL3B1Yl90b29sX2Jhc2ljcy5oPC9jb2RlPiBhbmQKKzxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+VkVYL3B1Yi9saWJ2ZXhfYmFzaWN0eXBlcy5oPC9jb2RlPiBmaWxlcyBoYXZlIHNvbWUgYmFzaWMKK3R5cGVzIHRoYXQgYXJlIHdpZGVseSB1c2VkLjwvcD4KKzxwPlVsdGltYXRlbHksIHRoZSB0b29scyBkaXN0cmlidXRlZCAoTWVtY2hlY2ssIENhY2hlZ3JpbmQsIExhY2tleSwgZXRjLikKK2FyZSBwcm9iYWJseSB0aGUgYmVzdCBkb2N1bWVudGF0aW9uIG9mIGFsbCwgZm9yIHRoZSBtb21lbnQuPC9wPgorPHA+VGhlIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+VkdfPC9jb2RlPiBtYWNybyBpcyB1c2VkCitoZWF2aWx5LiAgVGhpcyBqdXN0IHByZXBlbmRzIGEgbG9uZ2VyIHN0cmluZyBpbiBmcm9udCBvZiBuYW1lcyB0byBhdm9pZAorcG90ZW50aWFsIG5hbWVzcGFjZSBjbGFzaGVzLiAgSXQgaXMgZGVmaW5lZCBpbgorPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5pbmNsdWRlL3B1Yl90b29sX2Jhc2ljcy5oPC9jb2RlPi48L3A+Cis8cD5UaGVyZSBhcmUgc29tZSBhc3NvcnRlZCBub3RlcyBhYm91dCB2YXJpb3VzIGFzcGVjdHMgb2YgdGhlCitpbXBsZW1lbnRhdGlvbiBpbiA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPmRvY3MvaW50ZXJuYWxzLzwvY29kZT4uICBNdWNoIG9mIGl0Citpc24ndCB0aGF0IHJlbGV2YW50IHRvIHRvb2wtd3JpdGVycywgaG93ZXZlci48L3A+Cis8L2Rpdj4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDEiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj4KKzxhIG5hbWU9Im1hbnVhbC13cml0aW5nLXRvb2xzLmFkdnRvcGljcyI+PC9hPjIuMy6gQWR2YW5jZWQgVG9waWNzPC9oMj48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPk9uY2UgYSB0b29sIGJlY29tZXMgbW9yZSBjb21wbGljYXRlZCwgdGhlcmUgYXJlIHNvbWUgZXh0cmEKK3RoaW5ncyB5b3UgbWF5IHdhbnQvbmVlZCB0byBkby48L3A+Cis8ZGl2IGNsYXNzPSJzZWN0MiI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9Im1hbnVhbC13cml0aW5nLXRvb2xzLmFkdmljZSI+PC9hPjIuMy4xLqBEZWJ1Z2dpbmcgVGlwczwvaDM+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD5Xcml0aW5nIGFuZCBkZWJ1Z2dpbmcgdG9vbHMgaXMgbm90IHRyaXZpYWwuICBIZXJlIGFyZSBzb21lCitzdWdnZXN0aW9ucyBmb3Igc29sdmluZyBjb21tb24gcHJvYmxlbXMuPC9wPgorPHA+SWYgeW91IGFyZSBnZXR0aW5nIHNlZ21lbnRhdGlvbiBmYXVsdHMgaW4gQyBmdW5jdGlvbnMgdXNlZCBieSB5b3VyCit0b29sLCB0aGUgdXN1YWwgR0RCIGNvbW1hbmQ6PC9wPgorPHByZSBjbGFzcz0ic2NyZWVuIj4KKyAgZ2RiICZsdDtwcm9nJmd0OyBjb3JlPC9wcmU+Cis8cD51c3VhbGx5IGdpdmVzIHRoZSBsb2NhdGlvbiBvZiB0aGUgc2VnbWVudGF0aW9uIGZhdWx0LjwvcD4KKzxwPklmIHlvdSB3YW50IHRvIGRlYnVnIEMgZnVuY3Rpb25zIHVzZWQgYnkgeW91ciB0b29sLCB0aGVyZSBhcmUKK2luc3RydWN0aW9ucyBvbiBob3cgdG8gZG8gc28gaW4gdGhlIGZpbGUKKzxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+UkVBRE1FX0RFVkVMT1BFUlM8L2NvZGU+LjwvcD4KKzxwPklmIHlvdSBhcmUgaGF2aW5nIHByb2JsZW1zIHdpdGggeW91ciBWRVggSVIgaW5zdHJ1bWVudGF0aW9uLCBpdCdzCitsaWtlbHkgdGhhdCBHREIgd29uJ3QgYmUgYWJsZSB0byBoZWxwIGF0IGFsbC4gIEluIHRoaXMgY2FzZSwgVmFsZ3JpbmQncworPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS10cmFjZS1mbGFnczwvY29kZT4gb3B0aW9uIGlzIGludmFsdWFibGUgZm9yIG9ic2VydmluZyB0aGUKK3Jlc3VsdHMgb2YgaW5zdHJ1bWVudGF0aW9uLjwvcD4KKzxwPklmIHlvdSBqdXN0IHdhbnQgdG8ga25vdyB3aGV0aGVyIGEgcHJvZ3JhbSBwb2ludCBoYXMgYmVlbiByZWFjaGVkLAordXNpbmcgdGhlIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+T0lOSzwvY29kZT4gbWFjcm8gKGluCis8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPmluY2x1ZGUvcHViX3Rvb2xfbGliY3ByaW50Lmg8L2NvZGU+KSBjYW4gYmUgZWFzaWVyIHRoYW4KK3VzaW5nIEdEQi48L3A+Cis8cD5UaGUgb3RoZXIgZGVidWdnaW5nIGNvbW1hbmQgbGluZSBvcHRpb25zIGNhbiBiZSB1c2VmdWwgdG9vIChydW4KKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+dmFsZ3JpbmQgLS1oZWxwLWRlYnVnPC9jb2RlPiBmb3IgdGhlCitsaXN0KS48L3A+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0ibWFudWFsLXdyaXRpbmctdG9vbHMuc3VwcHJlc3Npb25zIj48L2E+Mi4zLjIuoFN1cHByZXNzaW9uczwvaDM+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD5JZiB5b3VyIHRvb2wgcmVwb3J0cyBlcnJvcnMgYW5kIHlvdSB3YW50IHRvIHN1cHByZXNzIHNvbWUgY29tbW9uCitvbmVzLCB5b3UgY2FuIGFkZCBzdXBwcmVzc2lvbnMgdG8gdGhlIHN1cHByZXNzaW9uIGZpbGVzLiAgVGhlIHJlbGV2YW50CitmaWxlcyBhcmUgPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj4qLnN1cHA8L2NvZGU+OyB0aGUgZmluYWwgc3VwcHJlc3Npb24KK2ZpbGUgaXMgYWdncmVnYXRlZCBmcm9tIHRoZXNlIGZpbGVzIGJ5IGNvbWJpbmluZyB0aGUgcmVsZXZhbnQKKzxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+LnN1cHA8L2NvZGU+IGZpbGVzIGRlcGVuZGluZyBvbiB0aGUgdmVyc2lvbnMgb2YgbGludXgsIFgKK2FuZCBnbGliYyBvbiBhIHN5c3RlbS48L3A+Cis8cD5TdXBwcmVzc2lvbiB0eXBlcyBoYXZlIHRoZSBmb3JtCis8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPnRvb2xfbmFtZTpzdXBwcmVzc2lvbl9uYW1lPC9jb2RlPi4gIFRoZQorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij50b29sX25hbWU8L2NvZGU+IGhlcmUgaXMgdGhlIG5hbWUgeW91IHNwZWNpZnkKK2ZvciB0aGUgdG9vbCBkdXJpbmcgaW5pdGlhbGlzYXRpb24gd2l0aAorPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5WR18oZGV0YWlsc19uYW1lKTwvY29kZT4uPC9wPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MiI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9Im1hbnVhbC13cml0aW5nLXRvb2xzLmRvY3MiPjwvYT4yLjMuMy6gRG9jdW1lbnRhdGlvbjwvaDM+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD5JZiB5b3UgYXJlIGZlZWxpbmcgY29uc2NpZW50aW91cyBhbmQgd2FudCB0byB3cml0ZSBzb21lCitkb2N1bWVudGF0aW9uIGZvciB5b3VyIHRvb2wsIHBsZWFzZSB1c2UgWE1MIGFzIHRoZSByZXN0IG9mIFZhbGdyaW5kIGRvZXMuCitUaGUgZmlsZSA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPmRvY3MvUkVBRE1FPC9jb2RlPiBoYXMgbW9yZSBkZXRhaWxzIG9uIGdldHRpbmcKK3RoZSBYTUwgdG9vbGNoYWluIHRvIHdvcms7ICB0aGlzIGNhbiBiZSBkaWZmaWN1bHQsIHVuZm9ydHVuYXRlbHkuPC9wPgorPHA+VG8gd3JpdGUgdGhlIGRvY3VtZW50YXRpb24sIGZvbGxvdyB0aGVzZSBzdGVwcyAodXNpbmcKKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+Zm9vYmFyPC9jb2RlPiBhcyB0aGUgZXhhbXBsZSB0b29sIG5hbWUKK2FnYWluKTo8L3A+Cis8ZGl2IGNsYXNzPSJvcmRlcmVkbGlzdCI+PG9sIGNsYXNzPSJvcmRlcmVkbGlzdCIgdHlwZT0iMSI+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5UaGUgZG9jcyBnbyBpbgorICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5mb29iYXIvZG9jcy88L2NvZGU+LCB3aGljaCB5b3Ugd2lsbAorICAgaGF2ZSBjcmVhdGVkIHdoZW4geW91IHN0YXJ0ZWQgd3JpdGluZyB0aGUgdG9vbC48L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPgorPHA+Q29weSB0aGUgWE1MIGRvY3VtZW50YXRpb24gZmlsZSBmb3IgdGhlIHRvb2wgTnVsZ3JpbmQgZnJvbQorICAgIDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+bm9uZS9kb2NzL25sLW1hbnVhbC54bWw8L2NvZGU+IHRvCisgICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5mb29iYXIvZG9jcy88L2NvZGU+LCBhbmQgcmVuYW1lIGl0IHRvCisgICAgPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5mb29iYXIvZG9jcy9mYi1tYW51YWwueG1sPC9jb2RlPi48L3A+Cis8cD48c3BhbiBjbGFzcz0iY29tbWFuZCI+PHN0cm9uZz5Ob3RlPC9zdHJvbmc+PC9zcGFuPjogdGhlcmUgaXMgYSB0ZXRleCBidWcKKyAgICBpbnZvbHZpbmcgdW5kZXJzY29yZXMgaW4gZmlsZW5hbWVzLCBzbyBkb24ndCB1c2UgJ18nLjwvcD4KKzwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5Xcml0ZSB0aGUgZG9jdW1lbnRhdGlvbi4gVGhlcmUgYXJlIHNvbWUgaGVscGZ1bCBiaXRzIGFuZAorICAgIHBpZWNlcyBvbiB1c2luZyBYTUwgbWFya3VwIGluCisgICAgPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5kb2NzL3htbC94bWxfaGVscC50eHQ8L2NvZGU+LjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+SW5jbHVkZSBpdCBpbiB0aGUgVXNlciBNYW51YWwgYnkgYWRkaW5nIHRoZSByZWxldmFudCBlbnRyeSB0bworICAgIDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+ZG9jcy94bWwvbWFudWFsLnhtbDwvY29kZT4uICBDb3B5IGFuZCBlZGl0IGFuCisgICAgZXhpc3RpbmcgZW50cnkuPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5JbmNsdWRlIGl0IGluIHRoZSBtYW4gcGFnZSBieSBhZGRpbmcgdGhlIHJlbGV2YW50IGVudHJ5IHRvCisgICAgPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5kb2NzL3htbC92YWxncmluZC1tYW5wYWdlLnhtbDwvY29kZT4uICBDb3B5IGFuZAorICAgIGVkaXQgYW4gZXhpc3RpbmcgZW50cnkuPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj4KKzxwPlZhbGlkYXRlIDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+Zm9vYmFyL2RvY3MvZmItbWFudWFsLnhtbDwvY29kZT4gdXNpbmcKKyAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQgZnJvbSB3aXRoaW4gPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5kb2NzLzwvY29kZT46CisgIDwvcD4KKzxwcmUgY2xhc3M9InNjcmVlbiI+CittYWtlIHZhbGlkCis8L3ByZT4KKzxwPllvdSBtYXkgZ2V0IGVycm9ycyB0aGF0IGxvb2sgbGlrZSB0aGlzOjwvcD4KKzxwcmUgY2xhc3M9InNjcmVlbiI+CisuL3htbC9pbmRleC54bWw6NTogZWxlbWVudCBjaGFwdGVyOiB2YWxpZGl0eSBlcnJvciA6IE5vIGRlY2xhcmF0aW9uIGZvcgorYXR0cmlidXRlIGJhc2Ugb2YgZWxlbWVudCBjaGFwdGVyCis8L3ByZT4KKzxwPklnbm9yZSAob25seSkgdGhlc2UgLS0gdGhleSdyZSBub3QgaW1wb3J0YW50LjwvcD4KKzxwPkJlY2F1c2UgdGhlIFhNTCB0b29sY2hhaW4gaXMgZnJhZ2lsZSwgaXQgaXMgaW1wb3J0YW50IHRvIGVuc3VyZQorICAgdGhhdCA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPmZiLW1hbnVhbC54bWw8L2NvZGU+IHdvbid0IGJyZWFrIHRoZSBkb2N1bWVudGF0aW9uCisgICBzZXQgYnVpbGQuICBOb3RlIHRoYXQganVzdCBiZWNhdXNlIGFuIFhNTCBmaWxlIGhhcHBpbHkgdHJhbnNmb3JtcyB0bworICAgaHRtbCBkb2VzIG5vdCBuZWNlc3NhcmlseSBtZWFuIHRoZSBzYW1lIGhvbGRzIHRydWUgZm9yIHBkZi9wcy48L3A+Cis8L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+Cis8cD5Zb3UgY2FuIChyZS0pZ2VuZXJhdGUgdGhlIEhUTUwgZG9jcyB3aGlsZSB5b3UgYXJlIHdyaXRpbmcKKyAgICA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPmZiLW1hbnVhbC54bWw8L2NvZGU+IHRvIGhlbHAgeW91IHNlZSBob3cgaXQncyBsb29raW5nLgorICAgIFRoZSBnZW5lcmF0ZWQgZmlsZXMgZW5kIHVwIGluCisgICAgPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5kb2NzL2h0bWwvPC9jb2RlPi4gIFVzZSB0aGUgZm9sbG93aW5nCisgICAgY29tbWFuZCwgd2l0aGluIDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+ZG9jcy88L2NvZGU+OjwvcD4KKzxwcmUgY2xhc3M9InNjcmVlbiI+CittYWtlIGh0bWwtZG9jcworPC9wcmU+Cis8L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+Cis8cD5XaGVuIHlvdSBoYXZlIGZpbmlzaGVkLCB0cnkgdG8gZ2VuZXJhdGUgUERGIGFuZCBQb3N0U2NyaXB0IG91dHB1dCB0bworICAgIGNoZWNrIGFsbCBpcyB3ZWxsLCBmcm9tIHdpdGhpbiA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPmRvY3MvPC9jb2RlPjoKKyAgPC9wPgorPHByZSBjbGFzcz0ic2NyZWVuIj4KK21ha2UgcHJpbnQtZG9jcworPC9wcmU+Cis8cD5DaGVjayB0aGUgb3V0cHV0IDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+LnBkZjwvY29kZT4gYW5kCisgICAgPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj4ucHM8L2NvZGU+IGZpbGVzIGluCisgICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5kb2NzL3ByaW50LzwvY29kZT4uPC9wPgorPHA+Tm90ZSB0aGF0IHRoZSB0b29sY2hhaW4gaXMgZXZlbiBtb3JlIGZyYWdpbGUgZm9yIHRoZSBwcmludCBkb2NzLAorICAgIHNvIGRvbid0IGZlZWwgdG9vIGJhZCBpZiB5b3UgY2FuJ3QgZ2V0IGl0IHdvcmtpbmcuPC9wPgorPC9saT4KKzwvb2w+PC9kaXY+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0ibWFudWFsLXdyaXRpbmctdG9vbHMucmVndGVzdHMiPjwvYT4yLjMuNC6gUmVncmVzc2lvbiBUZXN0czwvaDM+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD5WYWxncmluZCBoYXMgc29tZSBzdXBwb3J0IGZvciByZWdyZXNzaW9uIHRlc3RzLiAgSWYgeW91IHdhbnQgdG8KK3dyaXRlIHJlZ3Jlc3Npb24gdGVzdHMgZm9yIHlvdXIgdG9vbDo8L3A+Cis8ZGl2IGNsYXNzPSJvcmRlcmVkbGlzdCI+PG9sIGNsYXNzPSJvcmRlcmVkbGlzdCIgdHlwZT0iMSI+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5UaGUgdGVzdHMgZ28gaW4gPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5mb29iYXIvdGVzdHMvPC9jb2RlPiwKKyAgICB3aGljaCB5b3Ugd2lsbCBoYXZlIGNyZWF0ZWQgd2hlbiB5b3Ugc3RhcnRlZCB3cml0aW5nIHRoZSB0b29sLjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+V3JpdGUgPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5mb29iYXIvdGVzdHMvTWFrZWZpbGUuYW08L2NvZGU+LiAgVXNlCisgICAgPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5tZW1jaGVjay90ZXN0cy9NYWtlZmlsZS5hbTwvY29kZT4gYXMgYW4KKyAgICBleGFtcGxlLjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+V3JpdGUgdGhlIHRlc3RzLCA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPi52Z3Rlc3Q8L2NvZGU+IHRlc3QKKyAgICBkZXNjcmlwdGlvbiBmaWxlcywgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij4uc3Rkb3V0LmV4cDwvY29kZT4gYW5kCisgICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij4uc3RkZXJyLmV4cDwvY29kZT4gZXhwZWN0ZWQgb3V0cHV0IGZpbGVzLgorICAgIChOb3RlIHRoYXQgVmFsZ3JpbmQncyBvdXRwdXQgZ29lcyB0byBzdGRlcnIuKSAgU29tZSBkZXRhaWxzIG9uCisgICAgd3JpdGluZyBhbmQgcnVubmluZyB0ZXN0cyBhcmUgZ2l2ZW4gaW4gdGhlIGNvbW1lbnRzIGF0IHRoZSB0b3Agb2YKKyAgICB0aGUgdGVzdGluZyBzY3JpcHQKKyAgICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPnRlc3RzL3ZnX3JlZ3Rlc3Q8L2NvZGU+LjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+V3JpdGUgYSBmaWx0ZXIgZm9yIHN0ZGVyciByZXN1bHRzCisgICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5mb29iYXIvdGVzdHMvZmlsdGVyX3N0ZGVycjwvY29kZT4uICBJdCBjYW4KKyAgICBjYWxsIHRoZSBleGlzdGluZyBmaWx0ZXJzIGluCisgICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij50ZXN0cy88L2NvZGU+LiAgU2VlCisgICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5tZW1jaGVjay90ZXN0cy9maWx0ZXJfc3RkZXJyPC9jb2RlPiBmb3IgYW4KKyAgICBleGFtcGxlOyBpbiBwYXJ0aWN1bGFyIG5vdGUgdGhlCisgICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij4kZGlyPC9jb2RlPiB0cmljayB0aGF0IGVuc3VyZXMgdGhlIGZpbHRlcgorICAgIHdvcmtzIGNvcnJlY3RseSBmcm9tIGFueSBkaXJlY3RvcnkuPC9wPjwvbGk+Cis8L29sPjwvZGl2PgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MiI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9Im1hbnVhbC13cml0aW5nLXRvb2xzLnByb2ZpbGluZyI+PC9hPjIuMy41LqBQcm9maWxpbmc8L2gzPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+TG90cyBvZiBwcm9maWxpbmcgdG9vbHMgaGF2ZSB0cm91YmxlIHJ1bm5pbmcgVmFsZ3JpbmQuICBGb3IgZXhhbXBsZSwKK3RyeWluZyB0byB1c2UgZ3Byb2YgaXMgaG9wZWxlc3MuPC9wPgorPHA+UHJvYmFibHkgdGhlIGJlc3Qgd2F5IHRvIHByb2ZpbGUgYSB0b29sIGlzIHdpdGggT1Byb2ZpbGUgb24gTGludXguPC9wPgorPHA+WW91IGNhbiBhbHNvIHVzZSBDYWNoZWdyaW5kIG9uIGl0LiAgUmVhZAorPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5SRUFETUVfREVWRUxPUEVSUzwvY29kZT4gZm9yIGRldGFpbHMgb24gcnVubmluZyBWYWxncmluZCB1bmRlcgorVmFsZ3JpbmQ7ICBpdCdzIGEgYml0IGZyYWdpbGUgYnV0IGNhbiB1c3VhbGx5IGJlIG1hZGUgdG8gd29yay48L3A+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0ibWFudWFsLXdyaXRpbmctdG9vbHMubWtoYWNrZXJ5Ij48L2E+Mi4zLjYuoE90aGVyIE1ha2VmaWxlIEhhY2tlcnk8L2gzPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+SWYgeW91IGFkZCBhbnkgZGlyZWN0b3JpZXMgdW5kZXIKKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+Zm9vYmFyLzwvY29kZT4sIHlvdSB3aWxsIG5lZWQgdG8gYWRkCithbiBhcHByb3ByaWF0ZSA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPk1ha2VmaWxlLmFtPC9jb2RlPiB0byBpdCwgYW5kIGFkZCBhCitjb3JyZXNwb25kaW5nIGVudHJ5IHRvIHRoZSA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPkFDX09VVFBVVDwvY29kZT4KK2xpc3QgaW4gPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5jb25maWd1cmUuaW48L2NvZGU+LjwvcD4KKzxwPklmIHlvdSBhZGQgYW55IHNjcmlwdHMgdG8geW91ciB0b29sIChzZWUgQ2FjaGVncmluZCBmb3IgYW4KK2V4YW1wbGUpIHlvdSBuZWVkIHRvIGFkZCB0aGVtIHRvIHRoZQorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5iaW5fU0NSSVBUUzwvY29kZT4gdmFyaWFibGUgaW4KKzxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+Zm9vYmFyL01ha2VmaWxlLmFtPC9jb2RlPiBhbmQgcG9zc2libGUgYWxzbyB0byB0aGUKKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+QUNfT1VUUFVUPC9jb2RlPiBsaXN0IGluCis8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPmNvbmZpZ3VyZS5pbjwvY29kZT4uPC9wPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MiI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9Im1hbnVhbC13cml0aW5nLXRvb2xzLmlmYWNldmVyIj48L2E+Mi4zLjcuoFRoZSBDb3JlL3Rvb2wgSW50ZXJmYWNlPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPlRoZSBjb3JlL3Rvb2wgaW50ZXJmYWNlIGV2b2x2ZXMgb3ZlciB0aW1lLCBidXQgaXQncyBwcmV0dHkgc3RhYmxlLgorV2UgZGVsaWJlcmF0ZWx5IGRvIG5vdCBwcm92aWRlIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgd2l0aCBvbGQgaW50ZXJmYWNlcywKK2JlY2F1c2UgaXQgaXMgdG9vIGRpZmZpY3VsdCBhbmQgdG9vIHJlc3RyaWN0aXZlLiAgV2UgdmlldyB0aGlzIGFzIGEgZ29vZAordGhpbmcgLS0gaWYgd2UgaGFkIHRvIGJlIGJhY2t3YXJkIGNvbXBhdGlibGUgd2l0aCBlYXJsaWVyIHZlcnNpb25zLCBtYW55CitpbXByb3ZlbWVudHMgbm93IGluIHRoZSBzeXN0ZW0gY291bGQgbm90IGhhdmUgYmVlbiBhZGRlZC48L3A+Cis8cD5CZWNhdXNlIHRvb2xzIGFyZSBzdGF0aWNhbGx5IGxpbmtlZCB3aXRoIHRoZSBjb3JlLCBpZiBhIHRvb2wgY29tcGlsZXMKK3N1Y2Nlc3NmdWxseSB0aGVuIGl0IHNob3VsZCBiZSBjb21wYXRpYmxlIHdpdGggdGhlIGNvcmUuICBXZSB3b3VsZCBub3QKK2RlbGliZXJhdGVseSB2aW9sYXRlIHRoaXMgcHJvcGVydHkgYnksIGZvciBleGFtcGxlLCBjaGFuZ2luZyB0aGUgYmVoYXZpb3VyCitvZiBhIGNvcmUgZnVuY3Rpb24gd2l0aG91dCBjaGFuZ2luZyBpdHMgcHJvdG90eXBlLjwvcD4KKzwvZGl2PgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MSI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPgorPGEgbmFtZT0ibWFudWFsLXdyaXRpbmctdG9vbHMuZmluYWx3b3JkcyI+PC9hPjIuNC6gRmluYWwgV29yZHM8L2gyPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+V3JpdGluZyBhIG5ldyBWYWxncmluZCB0b29sIGlzIG5vdCBlYXN5LCBidXQgdGhlIHRvb2xzIHlvdSBjYW4gd3JpdGUKK3dpdGggVmFsZ3JpbmQgYXJlIGFtb25nIHRoZSBtb3N0IHBvd2VyZnVsIHByb2dyYW1taW5nIHRvb2xzIHRoZXJlIGFyZS4KK0hhcHB5IHByb2dyYW1taW5nITwvcD4KKzwvZGl2PgorPC9kaXY+Cis8ZGl2PgorPGJyPjx0YWJsZSBjbGFzcz0ibmF2IiB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjMiIGNlbGxwYWRkaW5nPSIyIiBib3JkZXI9IjAiIHN1bW1hcnk9Ik5hdmlnYXRpb24gZm9vdGVyIj4KKzx0cj4KKzx0ZCByb3dzcGFuPSIyIiB3aWR0aD0iNDAlIiBhbGlnbj0ibGVmdCI+Cis8YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImRlc2lnbi1pbXBsLmh0bWwiPiZsdDsmbHQ7oDEuoFRoZSBEZXNpZ24gYW5kIEltcGxlbWVudGF0aW9uIG9mIFZhbGdyaW5kPC9hPqA8L3RkPgorPHRkIHdpZHRoPSIyMCUiIGFsaWduPSJjZW50ZXIiPjxhIGFjY2Vzc2tleT0idSIgaHJlZj0idGVjaC1kb2NzLmh0bWwiPlVwPC9hPjwvdGQ+Cis8dGQgcm93c3Bhbj0iMiIgd2lkdGg9IjQwJSIgYWxpZ249InJpZ2h0Ij6gPGEgYWNjZXNza2V5PSJuIiBocmVmPSJjbC1mb3JtYXQuaHRtbCI+My6gQ2FsbGdyaW5kIEZvcm1hdCBTcGVjaWZpY2F0aW9uoCZndDsmZ3Q7PC9hPgorPC90ZD4KKzwvdHI+Cis8dHI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJjZW50ZXIiPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iaW5kZXguaHRtbCI+SG9tZTwvYT48L3RkPjwvdHI+Cis8L3RhYmxlPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9kb2NzL2h0bWwvbWFudWFsLmh0bWwgYi9kb2NzL2h0bWwvbWFudWFsLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWQ0NDAzNgotLS0gL2Rldi9udWxsCisrKyBiL2RvY3MvaHRtbC9tYW51YWwuaHRtbApAQCAtMCwwICsxLDMyMyBAQAorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiPgorPHRpdGxlPlZhbGdyaW5kIFVzZXIgTWFudWFsPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9InZnX2Jhc2ljLmNzcyI+Cis8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkRvY0Jvb2sgWFNMIFN0eWxlc2hlZXRzIFYxLjc4LjEiPgorPGxpbmsgcmVsPSJob21lIiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0iVmFsZ3JpbmQgRG9jdW1lbnRhdGlvbiI+Cis8bGluayByZWw9InVwIiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0iVmFsZ3JpbmQgRG9jdW1lbnRhdGlvbiI+Cis8bGluayByZWw9InByZXYiIGhyZWY9InF1aWNrLXN0YXJ0Lmh0bWwiIHRpdGxlPSJUaGUgVmFsZ3JpbmQgUXVpY2sgU3RhcnQgR3VpZGUiPgorPGxpbmsgcmVsPSJuZXh0IiBocmVmPSJtYW51YWwtaW50cm8uaHRtbCIgdGl0bGU9IjEuoEludHJvZHVjdGlvbiI+Cis8L2hlYWQ+Cis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+Cis8ZGl2Pjx0YWJsZSBjbGFzcz0ibmF2IiB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjMiIGNlbGxwYWRkaW5nPSIzIiBib3JkZXI9IjAiIHN1bW1hcnk9Ik5hdmlnYXRpb24gaGVhZGVyIj48dHI+Cis8dGQgd2lkdGg9IjIycHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9InAiIGhyZWY9InF1aWNrLXN0YXJ0Lmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvcHJldi5wbmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIyMSIgYm9yZGVyPSIwIiBhbHQ9IlByZXYiPjwvYT48L3RkPgorPHRkIHdpZHRoPSIyNXB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJpbmRleC5odG1sIj48aW1nIHNyYz0iaW1hZ2VzL3VwLnBuZyIgd2lkdGg9IjIxIiBoZWlnaHQ9IjE4IiBib3JkZXI9IjAiIGFsdD0iVXAiPjwvYT48L3RkPgorPHRkIHdpZHRoPSIzMXB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJoIiBocmVmPSJpbmRleC5odG1sIj48aW1nIHNyYz0iaW1hZ2VzL2hvbWUucG5nIiB3aWR0aD0iMjciIGhlaWdodD0iMjAiIGJvcmRlcj0iMCIgYWx0PSJVcCI+PC9hPjwvdGQ+Cis8dGggYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPlZhbGdyaW5kIERvY3VtZW50YXRpb248L3RoPgorPHRkIHdpZHRoPSIyMnB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJuIiBocmVmPSJtYW51YWwtaW50cm8uaHRtbCI+PGltZyBzcmM9ImltYWdlcy9uZXh0LnBuZyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjIxIiBib3JkZXI9IjAiIGFsdD0iTmV4dCI+PC9hPjwvdGQ+Cis8L3RyPjwvdGFibGU+PC9kaXY+Cis8ZGl2IGNsYXNzPSJib29rIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+Cis8ZGl2PgorPGRpdj48aDEgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9Im1hbnVhbCI+PC9hPlZhbGdyaW5kIFVzZXIgTWFudWFsPC9oMT48L2Rpdj4KKzxkaXY+PHAgY2xhc3M9InJlbGVhc2VpbmZvIj5SZWxlYXNlIDMuMTIuMCAyMCBPY3RvYmVyIDIwMTY8L3A+PC9kaXY+Cis8ZGl2PjxwIGNsYXNzPSJjb3B5cmlnaHQiPkNvcHlyaWdodCCpIDIwMDAtMjAxNiA8YSBjbGFzcz0idWxpbmsiIGhyZWY9Imh0dHA6Ly93d3cudmFsZ3JpbmQub3JnL2luZm8vZGV2ZWxvcGVycy5odG1sIiB0YXJnZXQ9Il90b3AiPlZhbGdyaW5kIERldmVsb3BlcnM8L2E+PC9wPjwvZGl2PgorPGRpdj48ZGl2IGNsYXNzPSJsZWdhbG5vdGljZSI+Cis8YSBuYW1lPSJpZG0xNDA2MzkxMTU4NzM2MzIiPjwvYT48cD5FbWFpbDogPGEgY2xhc3M9InVsaW5rIiBocmVmPSJtYWlsdG86dmFsZ3JpbmRAdmFsZ3JpbmQub3JnIiB0YXJnZXQ9Il90b3AiPnZhbGdyaW5kQHZhbGdyaW5kLm9yZzwvYT48L3A+Cis8L2Rpdj48L2Rpdj4KKzwvZGl2PgorPGhyPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJ0b2MiPgorPHA+PGI+VGFibGUgb2YgQ29udGVudHM8L2I+PC9wPgorPGRsIGNsYXNzPSJ0b2MiPgorPGR0PjxzcGFuIGNsYXNzPSJjaGFwdGVyIj48YSBocmVmPSJtYW51YWwtaW50cm8uaHRtbCI+MS4gSW50cm9kdWN0aW9uPC9hPjwvc3Bhbj48L2R0PgorPGRkPjxkbD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9Im1hbnVhbC1pbnRyby5odG1sI21hbnVhbC1pbnRyby5vdmVydmlldyI+MS4xLiBBbiBPdmVydmlldyBvZiBWYWxncmluZDwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9Im1hbnVhbC1pbnRyby5odG1sI21hbnVhbC1pbnRyby5uYXZpZ2F0aW9uIj4xLjIuIEhvdyB0byBuYXZpZ2F0ZSB0aGlzIG1hbnVhbDwvYT48L3NwYW4+PC9kdD4KKzwvZGw+PC9kZD4KKzxkdD48c3BhbiBjbGFzcz0iY2hhcHRlciI+PGEgaHJlZj0ibWFudWFsLWNvcmUuaHRtbCI+Mi4gVXNpbmcgYW5kIHVuZGVyc3RhbmRpbmcgdGhlIFZhbGdyaW5kIGNvcmU8L2E+PC9zcGFuPjwvZHQ+Cis8ZGQ+PGRsPgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0ibWFudWFsLWNvcmUuaHRtbCNtYW51YWwtY29yZS53aGF0ZG9lcyI+Mi4xLiBXaGF0IFZhbGdyaW5kIGRvZXMgd2l0aCB5b3VyIHByb2dyYW08L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJtYW51YWwtY29yZS5odG1sI21hbnVhbC1jb3JlLnN0YXJ0ZWQiPjIuMi4gR2V0dGluZyBzdGFydGVkPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0ibWFudWFsLWNvcmUuaHRtbCNtYW51YWwtY29yZS5jb21tZW50Ij4yLjMuIFRoZSBDb21tZW50YXJ5PC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0ibWFudWFsLWNvcmUuaHRtbCNtYW51YWwtY29yZS5yZXBvcnQiPjIuNC4gUmVwb3J0aW5nIG9mIGVycm9yczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9Im1hbnVhbC1jb3JlLmh0bWwjbWFudWFsLWNvcmUuc3VwcHJlc3MiPjIuNS4gU3VwcHJlc3NpbmcgZXJyb3JzPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0ibWFudWFsLWNvcmUuaHRtbCNtYW51YWwtY29yZS5vcHRpb25zIj4yLjYuIENvcmUgQ29tbWFuZC1saW5lIE9wdGlvbnM8L2E+PC9zcGFuPjwvZHQ+Cis8ZGQ+PGRsPgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0ibWFudWFsLWNvcmUuaHRtbCNtYW51YWwtY29yZS50b29sb3B0cyI+Mi42LjEuIFRvb2wtc2VsZWN0aW9uIE9wdGlvbjwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9Im1hbnVhbC1jb3JlLmh0bWwjbWFudWFsLWNvcmUuYmFzaWNvcHRzIj4yLjYuMi4gQmFzaWMgT3B0aW9uczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9Im1hbnVhbC1jb3JlLmh0bWwjbWFudWFsLWNvcmUuZXJyb3B0cyI+Mi42LjMuIEVycm9yLXJlbGF0ZWQgT3B0aW9uczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9Im1hbnVhbC1jb3JlLmh0bWwjbWFudWFsLWNvcmUubWFsbG9jb3B0cyI+Mi42LjQuIG1hbGxvYy1yZWxhdGVkIE9wdGlvbnM8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJtYW51YWwtY29yZS5odG1sI21hbnVhbC1jb3JlLnJhcmVvcHRzIj4yLjYuNS4gVW5jb21tb24gT3B0aW9uczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9Im1hbnVhbC1jb3JlLmh0bWwjbWFudWFsLWNvcmUuZGVidWdvcHRzIj4yLjYuNi4gRGVidWdnaW5nIE9wdGlvbnM8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJtYW51YWwtY29yZS5odG1sI21hbnVhbC1jb3JlLmRlZm9wdHMiPjIuNi43LiBTZXR0aW5nIERlZmF1bHQgT3B0aW9uczwvYT48L3NwYW4+PC9kdD4KKzwvZGw+PC9kZD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9Im1hbnVhbC1jb3JlLmh0bWwjbWFudWFsLWNvcmUucHRocmVhZHMiPjIuNy4gU3VwcG9ydCBmb3IgVGhyZWFkczwvYT48L3NwYW4+PC9kdD4KKzxkZD48ZGw+PGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0ibWFudWFsLWNvcmUuaHRtbCNtYW51YWwtY29yZS5wdGhyZWFkc19wZXJmX3NjaGVkIj4yLjcuMS4gU2NoZWR1bGluZyBhbmQgTXVsdGktVGhyZWFkIFBlcmZvcm1hbmNlPC9hPjwvc3Bhbj48L2R0PjwvZGw+PC9kZD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9Im1hbnVhbC1jb3JlLmh0bWwjbWFudWFsLWNvcmUuc2lnbmFscyI+Mi44LiBIYW5kbGluZyBvZiBTaWduYWxzPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0ibWFudWFsLWNvcmUuaHRtbCNtYW51YWwtY29yZS5pbnN0YWxsIj4yLjkuIEJ1aWxkaW5nIGFuZCBJbnN0YWxsaW5nIFZhbGdyaW5kPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0ibWFudWFsLWNvcmUuaHRtbCNtYW51YWwtY29yZS5wcm9ibGVtcyI+Mi4xMC4gSWYgWW91IEhhdmUgUHJvYmxlbXM8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJtYW51YWwtY29yZS5odG1sI21hbnVhbC1jb3JlLmxpbWl0cyI+Mi4xMS4gTGltaXRhdGlvbnM8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJtYW51YWwtY29yZS5odG1sI21hbnVhbC1jb3JlLmV4YW1wbGUiPjIuMTIuIEFuIEV4YW1wbGUgUnVuPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0ibWFudWFsLWNvcmUuaHRtbCNtYW51YWwtY29yZS53YXJuaW5ncyI+Mi4xMy4gV2FybmluZyBNZXNzYWdlcyBZb3UgTWlnaHQgU2VlPC9hPjwvc3Bhbj48L2R0PgorPC9kbD48L2RkPgorPGR0PjxzcGFuIGNsYXNzPSJjaGFwdGVyIj48YSBocmVmPSJtYW51YWwtY29yZS1hZHYuaHRtbCI+My4gVXNpbmcgYW5kIHVuZGVyc3RhbmRpbmcgdGhlIFZhbGdyaW5kIGNvcmU6IEFkdmFuY2VkIFRvcGljczwvYT48L3NwYW4+PC9kdD4KKzxkZD48ZGw+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJtYW51YWwtY29yZS1hZHYuaHRtbCNtYW51YWwtY29yZS1hZHYuY2xpZW50cmVxIj4zLjEuIFRoZSBDbGllbnQgUmVxdWVzdCBtZWNoYW5pc208L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJtYW51YWwtY29yZS1hZHYuaHRtbCNtYW51YWwtY29yZS1hZHYuZ2Ric2VydmVyIj4zLjIuIERlYnVnZ2luZyB5b3VyIHByb2dyYW0gdXNpbmcgVmFsZ3JpbmQgZ2Ric2VydmVyIGFuZCBHREI8L2E+PC9zcGFuPjwvZHQ+Cis8ZGQ+PGRsPgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0ibWFudWFsLWNvcmUtYWR2Lmh0bWwjbWFudWFsLWNvcmUtYWR2LmdkYnNlcnZlci1zaW1wbGUiPjMuMi4xLiBRdWljayBTdGFydDogZGVidWdnaW5nIGluIDMgc3RlcHM8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJtYW51YWwtY29yZS1hZHYuaHRtbCNtYW51YWwtY29yZS1hZHYuZ2Ric2VydmVyLWNvbmNlcHQiPjMuMi4yLiBWYWxncmluZCBnZGJzZXJ2ZXIgb3ZlcmFsbCBvcmdhbmlzYXRpb248L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJtYW51YWwtY29yZS1hZHYuaHRtbCNtYW51YWwtY29yZS1hZHYuZ2Ric2VydmVyLWdkYiI+My4yLjMuIENvbm5lY3RpbmcgR0RCIHRvIGEgVmFsZ3JpbmQgZ2Ric2VydmVyPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0ibWFudWFsLWNvcmUtYWR2Lmh0bWwjbWFudWFsLWNvcmUtYWR2LmdkYnNlcnZlci1nZGItYW5kcm9pZCI+My4yLjQuIENvbm5lY3RpbmcgdG8gYW4gQW5kcm9pZCBnZGJzZXJ2ZXI8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJtYW51YWwtY29yZS1hZHYuaHRtbCNtYW51YWwtY29yZS1hZHYuZ2Ric2VydmVyLWNvbW1hbmRoYW5kbGluZyI+My4yLjUuIE1vbml0b3IgY29tbWFuZCBoYW5kbGluZyBieSB0aGUgVmFsZ3JpbmQgZ2Ric2VydmVyPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0ibWFudWFsLWNvcmUtYWR2Lmh0bWwjbWFudWFsLWNvcmUtYWR2LmdkYnNlcnZlci10aHJlYWRzIj4zLjIuNi4gVmFsZ3JpbmQgZ2Ric2VydmVyIHRocmVhZCBpbmZvcm1hdGlvbjwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9Im1hbnVhbC1jb3JlLWFkdi5odG1sI21hbnVhbC1jb3JlLWFkdi5nZGJzZXJ2ZXItc2hhZG93cmVnaXN0ZXJzIj4zLjIuNy4gRXhhbWluaW5nIGFuZCBtb2RpZnlpbmcgVmFsZ3JpbmQgc2hhZG93IHJlZ2lzdGVyczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9Im1hbnVhbC1jb3JlLWFkdi5odG1sI21hbnVhbC1jb3JlLWFkdi5nZGJzZXJ2ZXItbGltaXRhdGlvbnMiPjMuMi44LiBMaW1pdGF0aW9ucyBvZiB0aGUgVmFsZ3JpbmQgZ2Ric2VydmVyPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0ibWFudWFsLWNvcmUtYWR2Lmh0bWwjbWFudWFsLWNvcmUtYWR2LnZnZGIiPjMuMi45LiB2Z2RiIGNvbW1hbmQgbGluZSBvcHRpb25zPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0ibWFudWFsLWNvcmUtYWR2Lmh0bWwjbWFudWFsLWNvcmUtYWR2LnZhbGdyaW5kLW1vbml0b3ItY29tbWFuZHMiPjMuMi4xMC4gVmFsZ3JpbmQgbW9uaXRvciBjb21tYW5kczwvYT48L3NwYW4+PC9kdD4KKzwvZGw+PC9kZD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9Im1hbnVhbC1jb3JlLWFkdi5odG1sI21hbnVhbC1jb3JlLWFkdi53cmFwcGluZyI+My4zLiBGdW5jdGlvbiB3cmFwcGluZzwvYT48L3NwYW4+PC9kdD4KKzxkZD48ZGw+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJtYW51YWwtY29yZS1hZHYuaHRtbCNtYW51YWwtY29yZS1hZHYud3JhcHBpbmcuZXhhbXBsZSI+My4zLjEuIEEgU2ltcGxlIEV4YW1wbGU8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJtYW51YWwtY29yZS1hZHYuaHRtbCNtYW51YWwtY29yZS1hZHYud3JhcHBpbmcuc3BlY3MiPjMuMy4yLiBXcmFwcGluZyBTcGVjaWZpY2F0aW9uczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9Im1hbnVhbC1jb3JlLWFkdi5odG1sI21hbnVhbC1jb3JlLWFkdi53cmFwcGluZy5zZW1hbnRpY3MiPjMuMy4zLiBXcmFwcGluZyBTZW1hbnRpY3M8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJtYW51YWwtY29yZS1hZHYuaHRtbCNtYW51YWwtY29yZS1hZHYud3JhcHBpbmcuZGVidWdnaW5nIj4zLjMuNC4gRGVidWdnaW5nPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0ibWFudWFsLWNvcmUtYWR2Lmh0bWwjbWFudWFsLWNvcmUtYWR2LndyYXBwaW5nLmxpbWl0YXRpb25zLWNmIj4zLjMuNS4gTGltaXRhdGlvbnMgLSBjb250cm9sIGZsb3c8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJtYW51YWwtY29yZS1hZHYuaHRtbCNtYW51YWwtY29yZS1hZHYud3JhcHBpbmcubGltaXRhdGlvbnMtc2lncyI+My4zLjYuIExpbWl0YXRpb25zIC0gb3JpZ2luYWwgZnVuY3Rpb24gc2lnbmF0dXJlczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9Im1hbnVhbC1jb3JlLWFkdi5odG1sI21hbnVhbC1jb3JlLWFkdi53cmFwcGluZy5leGFtcGxlcyI+My4zLjcuIEV4YW1wbGVzPC9hPjwvc3Bhbj48L2R0PgorPC9kbD48L2RkPgorPC9kbD48L2RkPgorPGR0PjxzcGFuIGNsYXNzPSJjaGFwdGVyIj48YSBocmVmPSJtYy1tYW51YWwuaHRtbCI+NC4gTWVtY2hlY2s6IGEgbWVtb3J5IGVycm9yIGRldGVjdG9yPC9hPjwvc3Bhbj48L2R0PgorPGRkPjxkbD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9Im1jLW1hbnVhbC5odG1sI21jLW1hbnVhbC5vdmVydmlldyI+NC4xLiBPdmVydmlldzwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9Im1jLW1hbnVhbC5odG1sI21jLW1hbnVhbC5lcnJvcm1zZ3MiPjQuMi4gRXhwbGFuYXRpb24gb2YgZXJyb3IgbWVzc2FnZXMgZnJvbSBNZW1jaGVjazwvYT48L3NwYW4+PC9kdD4KKzxkZD48ZGw+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJtYy1tYW51YWwuaHRtbCNtYy1tYW51YWwuYmFkcnciPjQuMi4xLiBJbGxlZ2FsIHJlYWQgLyBJbGxlZ2FsIHdyaXRlIGVycm9yczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9Im1jLW1hbnVhbC5odG1sI21jLW1hbnVhbC51bmluaXR2YWxzIj40LjIuMi4gVXNlIG9mIHVuaW5pdGlhbGlzZWQgdmFsdWVzPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0ibWMtbWFudWFsLmh0bWwjbWMtbWFudWFsLmJhZC1zeXNjYWxsLWFyZ3MiPjQuMi4zLiBVc2Ugb2YgdW5pbml0aWFsaXNlZCBvciB1bmFkZHJlc3NhYmxlIHZhbHVlcyBpbiBzeXN0ZW0KKyAgICAgICBjYWxsczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9Im1jLW1hbnVhbC5odG1sI21jLW1hbnVhbC5iYWRmcmVlcyI+NC4yLjQuIElsbGVnYWwgZnJlZXM8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJtYy1tYW51YWwuaHRtbCNtYy1tYW51YWwucnVkZWZuIj40LjIuNS4gV2hlbiBhIGhlYXAgYmxvY2sgaXMgZnJlZWQgd2l0aCBhbiBpbmFwcHJvcHJpYXRlIGRlYWxsb2NhdGlvbgorZnVuY3Rpb248L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJtYy1tYW51YWwuaHRtbCNtYy1tYW51YWwub3ZlcmxhcCI+NC4yLjYuIE92ZXJsYXBwaW5nIHNvdXJjZSBhbmQgZGVzdGluYXRpb24gYmxvY2tzPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0ibWMtbWFudWFsLmh0bWwjbWMtbWFudWFsLmZpc2h5dmFsdWUiPjQuMi43LiBGaXNoeSBhcmd1bWVudCB2YWx1ZXM8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJtYy1tYW51YWwuaHRtbCNtYy1tYW51YWwubGVha3MiPjQuMi44LiBNZW1vcnkgbGVhayBkZXRlY3Rpb248L2E+PC9zcGFuPjwvZHQ+Cis8L2RsPjwvZGQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJtYy1tYW51YWwuaHRtbCNtYy1tYW51YWwub3B0aW9ucyI+NC4zLiBNZW1jaGVjayBDb21tYW5kLUxpbmUgT3B0aW9uczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9Im1jLW1hbnVhbC5odG1sI21jLW1hbnVhbC5zdXBwZmlsZXMiPjQuNC4gV3JpdGluZyBzdXBwcmVzc2lvbiBmaWxlczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9Im1jLW1hbnVhbC5odG1sI21jLW1hbnVhbC5tYWNoaW5lIj40LjUuIERldGFpbHMgb2YgTWVtY2hlY2sncyBjaGVja2luZyBtYWNoaW5lcnk8L2E+PC9zcGFuPjwvZHQ+Cis8ZGQ+PGRsPgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0ibWMtbWFudWFsLmh0bWwjbWMtbWFudWFsLnZhbHVlIj40LjUuMS4gVmFsaWQtdmFsdWUgKFYpIGJpdHM8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJtYy1tYW51YWwuaHRtbCNtYy1tYW51YWwudmFkZHJlc3MiPjQuNS4yLiBWYWxpZC1hZGRyZXNzIChBKSBiaXRzPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0ibWMtbWFudWFsLmh0bWwjbWMtbWFudWFsLnRvZ2V0aGVyIj40LjUuMy4gUHV0dGluZyBpdCBhbGwgdG9nZXRoZXI8L2E+PC9zcGFuPjwvZHQ+Cis8L2RsPjwvZGQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJtYy1tYW51YWwuaHRtbCNtYy1tYW51YWwubW9uaXRvci1jb21tYW5kcyI+NC42LiBNZW1jaGVjayBNb25pdG9yIENvbW1hbmRzPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0ibWMtbWFudWFsLmh0bWwjbWMtbWFudWFsLmNsaWVudHJlcXMiPjQuNy4gQ2xpZW50IFJlcXVlc3RzPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0ibWMtbWFudWFsLmh0bWwjbWMtbWFudWFsLm1lbXBvb2xzIj40LjguIE1lbW9yeSBQb29sczogZGVzY3JpYmluZyBhbmQgd29ya2luZyB3aXRoIGN1c3RvbSBhbGxvY2F0b3JzPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0ibWMtbWFudWFsLmh0bWwjbWMtbWFudWFsLm1waXdyYXAiPjQuOS4gRGVidWdnaW5nIE1QSSBQYXJhbGxlbCBQcm9ncmFtcyB3aXRoIFZhbGdyaW5kPC9hPjwvc3Bhbj48L2R0PgorPGRkPjxkbD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9Im1jLW1hbnVhbC5odG1sI21jLW1hbnVhbC5tcGl3cmFwLmJ1aWxkIj40LjkuMS4gQnVpbGRpbmcgYW5kIGluc3RhbGxpbmcgdGhlIHdyYXBwZXJzPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0ibWMtbWFudWFsLmh0bWwjbWMtbWFudWFsLm1waXdyYXAuZ2V0dGluZ3N0YXJ0ZWQiPjQuOS4yLiBHZXR0aW5nIHN0YXJ0ZWQ8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJtYy1tYW51YWwuaHRtbCNtYy1tYW51YWwubXBpd3JhcC5jb250cm9sbGluZyI+NC45LjMuIENvbnRyb2xsaW5nIHRoZSB3cmFwcGVyIGxpYnJhcnk8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJtYy1tYW51YWwuaHRtbCNtYy1tYW51YWwubXBpd3JhcC5saW1pdGF0aW9ucy5mdW5jdGlvbnMiPjQuOS40LiBGdW5jdGlvbnM8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJtYy1tYW51YWwuaHRtbCNtYy1tYW51YWwubXBpd3JhcC5saW1pdGF0aW9ucy50eXBlcyI+NC45LjUuIFR5cGVzPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0ibWMtbWFudWFsLmh0bWwjbWMtbWFudWFsLm1waXdyYXAud3JpdGluZ3dyYXBwZXJzIj40LjkuNi4gV3JpdGluZyBuZXcgd3JhcHBlcnM8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJtYy1tYW51YWwuaHRtbCNtYy1tYW51YWwubXBpd3JhcC53aGF0dG9leHBlY3QiPjQuOS43LiBXaGF0IHRvIGV4cGVjdCB3aGVuIHVzaW5nIHRoZSB3cmFwcGVyczwvYT48L3NwYW4+PC9kdD4KKzwvZGw+PC9kZD4KKzwvZGw+PC9kZD4KKzxkdD48c3BhbiBjbGFzcz0iY2hhcHRlciI+PGEgaHJlZj0iY2ctbWFudWFsLmh0bWwiPjUuIENhY2hlZ3JpbmQ6IGEgY2FjaGUgYW5kIGJyYW5jaC1wcmVkaWN0aW9uIHByb2ZpbGVyPC9hPjwvc3Bhbj48L2R0PgorPGRkPjxkbD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9ImNnLW1hbnVhbC5odG1sI2NnLW1hbnVhbC5vdmVydmlldyI+NS4xLiBPdmVydmlldzwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9ImNnLW1hbnVhbC5odG1sI2NnLW1hbnVhbC5wcm9maWxlIj41LjIuIFVzaW5nIENhY2hlZ3JpbmQsIGNnX2Fubm90YXRlIGFuZCBjZ19tZXJnZTwvYT48L3NwYW4+PC9kdD4KKzxkZD48ZGw+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJjZy1tYW51YWwuaHRtbCNjZy1tYW51YWwucnVubmluZy1jYWNoZWdyaW5kIj41LjIuMS4gUnVubmluZyBDYWNoZWdyaW5kPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iY2ctbWFudWFsLmh0bWwjY2ctbWFudWFsLm91dHB1dGZpbGUiPjUuMi4yLiBPdXRwdXQgRmlsZTwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9ImNnLW1hbnVhbC5odG1sI2NnLW1hbnVhbC5ydW5uaW5nLWNnX2Fubm90YXRlIj41LjIuMy4gUnVubmluZyBjZ19hbm5vdGF0ZTwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9ImNnLW1hbnVhbC5odG1sI2NnLW1hbnVhbC50aGUtb3V0cHV0LXByZWFtYmxlIj41LjIuNC4gVGhlIE91dHB1dCBQcmVhbWJsZTwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9ImNnLW1hbnVhbC5odG1sI2NnLW1hbnVhbC50aGUtZ2xvYmFsIj41LjIuNS4gVGhlIEdsb2JhbCBhbmQgRnVuY3Rpb24tbGV2ZWwgQ291bnRzPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iY2ctbWFudWFsLmh0bWwjY2ctbWFudWFsLmxpbmUtYnktbGluZSI+NS4yLjYuIExpbmUtYnktbGluZSBDb3VudHM8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJjZy1tYW51YWwuaHRtbCNjZy1tYW51YWwuYXNzZW1ibGVyIj41LjIuNy4gQW5ub3RhdGluZyBBc3NlbWJseSBDb2RlIFByb2dyYW1zPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iY2ctbWFudWFsLmh0bWwjbXMtbWFudWFsLmZvcmtpbmdwcm9ncmFtcyI+NS4yLjguIEZvcmtpbmcgUHJvZ3JhbXM8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJjZy1tYW51YWwuaHRtbCNjZy1tYW51YWwuYW5ub3B0cy53YXJuaW5ncyI+NS4yLjkuIGNnX2Fubm90YXRlIFdhcm5pbmdzPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iY2ctbWFudWFsLmh0bWwjY2ctbWFudWFsLmFubm9wdHMudGhpbmdzLXRvLXdhdGNoLW91dC1mb3IiPjUuMi4xMC4gVW51c3VhbCBBbm5vdGF0aW9uIENhc2VzPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iY2ctbWFudWFsLmh0bWwjY2ctbWFudWFsLmNnX21lcmdlIj41LjIuMTEuIE1lcmdpbmcgUHJvZmlsZXMgd2l0aCBjZ19tZXJnZTwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9ImNnLW1hbnVhbC5odG1sI2NnLW1hbnVhbC5jZ19kaWZmIj41LjIuMTIuIERpZmZlcmVuY2luZyBQcm9maWxlcyB3aXRoIGNnX2RpZmY8L2E+PC9zcGFuPjwvZHQ+Cis8L2RsPjwvZGQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJjZy1tYW51YWwuaHRtbCNjZy1tYW51YWwuY2dvcHRzIj41LjMuIENhY2hlZ3JpbmQgQ29tbWFuZC1saW5lIE9wdGlvbnM8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJjZy1tYW51YWwuaHRtbCNjZy1tYW51YWwuYW5ub3B0cyI+NS40LiBjZ19hbm5vdGF0ZSBDb21tYW5kLWxpbmUgT3B0aW9uczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9ImNnLW1hbnVhbC5odG1sI2NnLW1hbnVhbC5tZXJnZW9wdHMiPjUuNS4gY2dfbWVyZ2UgQ29tbWFuZC1saW5lIE9wdGlvbnM8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJjZy1tYW51YWwuaHRtbCNjZy1tYW51YWwuZGlmZm9wdHMiPjUuNi4gY2dfZGlmZiBDb21tYW5kLWxpbmUgT3B0aW9uczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9ImNnLW1hbnVhbC5odG1sI2NnLW1hbnVhbC5hY3Rpbmctb24iPjUuNy4gQWN0aW5nIG9uIENhY2hlZ3JpbmQncyBJbmZvcm1hdGlvbjwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9ImNnLW1hbnVhbC5odG1sI2NnLW1hbnVhbC5zaW0tZGV0YWlscyI+NS44LiBTaW11bGF0aW9uIERldGFpbHM8L2E+PC9zcGFuPjwvZHQ+Cis8ZGQ+PGRsPgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iY2ctbWFudWFsLmh0bWwjY2FjaGUtc2ltIj41LjguMS4gQ2FjaGUgU2ltdWxhdGlvbiBTcGVjaWZpY3M8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJjZy1tYW51YWwuaHRtbCNicmFuY2gtc2ltIj41LjguMi4gQnJhbmNoIFNpbXVsYXRpb24gU3BlY2lmaWNzPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iY2ctbWFudWFsLmh0bWwjY2ctbWFudWFsLmFubm9wdHMuYWNjdXJhY3kiPjUuOC4zLiBBY2N1cmFjeTwvYT48L3NwYW4+PC9kdD4KKzwvZGw+PC9kZD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9ImNnLW1hbnVhbC5odG1sI2NnLW1hbnVhbC5pbXBsLWRldGFpbHMiPjUuOS4gSW1wbGVtZW50YXRpb24gRGV0YWlsczwvYT48L3NwYW4+PC9kdD4KKzxkZD48ZGw+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJjZy1tYW51YWwuaHRtbCNjZy1tYW51YWwuaW1wbC1kZXRhaWxzLmhvdy1jZy13b3JrcyI+NS45LjEuIEhvdyBDYWNoZWdyaW5kIFdvcmtzPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iY2ctbWFudWFsLmh0bWwjY2ctbWFudWFsLmltcGwtZGV0YWlscy5maWxlLWZvcm1hdCI+NS45LjIuIENhY2hlZ3JpbmQgT3V0cHV0IEZpbGUgRm9ybWF0PC9hPjwvc3Bhbj48L2R0PgorPC9kbD48L2RkPgorPC9kbD48L2RkPgorPGR0PjxzcGFuIGNsYXNzPSJjaGFwdGVyIj48YSBocmVmPSJjbC1tYW51YWwuaHRtbCI+Ni4gQ2FsbGdyaW5kOiBhIGNhbGwtZ3JhcGggZ2VuZXJhdGluZyBjYWNoZSBhbmQgYnJhbmNoIHByZWRpY3Rpb24gcHJvZmlsZXI8L2E+PC9zcGFuPjwvZHQ+Cis8ZGQ+PGRsPgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0iY2wtbWFudWFsLmh0bWwjY2wtbWFudWFsLnVzZSI+Ni4xLiBPdmVydmlldzwvYT48L3NwYW4+PC9kdD4KKzxkZD48ZGw+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJjbC1tYW51YWwuaHRtbCNjbC1tYW51YWwuZnVuY3Rpb25hbGl0eSI+Ni4xLjEuIEZ1bmN0aW9uYWxpdHk8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJjbC1tYW51YWwuaHRtbCNjbC1tYW51YWwuYmFzaWNzIj42LjEuMi4gQmFzaWMgVXNhZ2U8L2E+PC9zcGFuPjwvZHQ+Cis8L2RsPjwvZGQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJjbC1tYW51YWwuaHRtbCNjbC1tYW51YWwudXNhZ2UiPjYuMi4gQWR2YW5jZWQgVXNhZ2U8L2E+PC9zcGFuPjwvZHQ+Cis8ZGQ+PGRsPgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iY2wtbWFudWFsLmh0bWwjY2wtbWFudWFsLmR1bXBzIj42LjIuMS4gTXVsdGlwbGUgcHJvZmlsaW5nIGR1bXBzIGZyb20gb25lIHByb2dyYW0gcnVuPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iY2wtbWFudWFsLmh0bWwjY2wtbWFudWFsLmxpbWl0cyI+Ni4yLjIuIExpbWl0aW5nIHRoZSByYW5nZSBvZiBjb2xsZWN0ZWQgZXZlbnRzPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iY2wtbWFudWFsLmh0bWwjY2wtbWFudWFsLmJ1c2V2ZW50cyI+Ni4yLjMuIENvdW50aW5nIGdsb2JhbCBidXMgZXZlbnRzPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iY2wtbWFudWFsLmh0bWwjY2wtbWFudWFsLmN5Y2xlcyI+Ni4yLjQuIEF2b2lkaW5nIGN5Y2xlczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9ImNsLW1hbnVhbC5odG1sI2NsLW1hbnVhbC5mb3JraW5ncHJvZ3JhbXMiPjYuMi41LiBGb3JraW5nIFByb2dyYW1zPC9hPjwvc3Bhbj48L2R0PgorPC9kbD48L2RkPgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0iY2wtbWFudWFsLmh0bWwjY2wtbWFudWFsLm9wdGlvbnMiPjYuMy4gQ2FsbGdyaW5kIENvbW1hbmQtbGluZSBPcHRpb25zPC9hPjwvc3Bhbj48L2R0PgorPGRkPjxkbD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9ImNsLW1hbnVhbC5odG1sI2NsLW1hbnVhbC5vcHRpb25zLmNyZWF0aW9uIj42LjMuMS4gRHVtcCBjcmVhdGlvbiBvcHRpb25zPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iY2wtbWFudWFsLmh0bWwjY2wtbWFudWFsLm9wdGlvbnMuYWN0aXZpdHkiPjYuMy4yLiBBY3Rpdml0eSBvcHRpb25zPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iY2wtbWFudWFsLmh0bWwjY2wtbWFudWFsLm9wdGlvbnMuY29sbGVjdGlvbiI+Ni4zLjMuIERhdGEgY29sbGVjdGlvbiBvcHRpb25zPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iY2wtbWFudWFsLmh0bWwjY2wtbWFudWFsLm9wdGlvbnMuc2VwYXJhdGlvbiI+Ni4zLjQuIENvc3QgZW50aXR5IHNlcGFyYXRpb24gb3B0aW9uczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9ImNsLW1hbnVhbC5odG1sI2NsLW1hbnVhbC5vcHRpb25zLnNpbXVsYXRpb24iPjYuMy41LiBTaW11bGF0aW9uIG9wdGlvbnM8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJjbC1tYW51YWwuaHRtbCNjbC1tYW51YWwub3B0aW9ucy5jYWNoZXNpbXVsYXRpb24iPjYuMy42LiBDYWNoZSBzaW11bGF0aW9uIG9wdGlvbnM8L2E+PC9zcGFuPjwvZHQ+Cis8L2RsPjwvZGQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJjbC1tYW51YWwuaHRtbCNjbC1tYW51YWwubW9uaXRvci1jb21tYW5kcyI+Ni40LiBDYWxsZ3JpbmQgTW9uaXRvciBDb21tYW5kczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9ImNsLW1hbnVhbC5odG1sI2NsLW1hbnVhbC5jbGllbnRyZXF1ZXN0cyI+Ni41LiBDYWxsZ3JpbmQgc3BlY2lmaWMgY2xpZW50IHJlcXVlc3RzPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0iY2wtbWFudWFsLmh0bWwjY2wtbWFudWFsLmNhbGxncmluZF9hbm5vdGF0ZS1vcHRpb25zIj42LjYuIGNhbGxncmluZF9hbm5vdGF0ZSBDb21tYW5kLWxpbmUgT3B0aW9uczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9ImNsLW1hbnVhbC5odG1sI2NsLW1hbnVhbC5jYWxsZ3JpbmRfY29udHJvbC1vcHRpb25zIj42LjcuIGNhbGxncmluZF9jb250cm9sIENvbW1hbmQtbGluZSBPcHRpb25zPC9hPjwvc3Bhbj48L2R0PgorPC9kbD48L2RkPgorPGR0PjxzcGFuIGNsYXNzPSJjaGFwdGVyIj48YSBocmVmPSJoZy1tYW51YWwuaHRtbCI+Ny4gSGVsZ3JpbmQ6IGEgdGhyZWFkIGVycm9yIGRldGVjdG9yPC9hPjwvc3Bhbj48L2R0PgorPGRkPjxkbD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9ImhnLW1hbnVhbC5odG1sI2hnLW1hbnVhbC5vdmVydmlldyI+Ny4xLiBPdmVydmlldzwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9ImhnLW1hbnVhbC5odG1sI2hnLW1hbnVhbC5hcGktY2hlY2tzIj43LjIuIERldGVjdGVkIGVycm9yczogTWlzdXNlcyBvZiB0aGUgUE9TSVggcHRocmVhZHMgQVBJPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0iaGctbWFudWFsLmh0bWwjaGctbWFudWFsLmxvY2stb3JkZXJzIj43LjMuIERldGVjdGVkIGVycm9yczogSW5jb25zaXN0ZW50IExvY2sgT3JkZXJpbmdzPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0iaGctbWFudWFsLmh0bWwjaGctbWFudWFsLmRhdGEtcmFjZXMiPjcuNC4gRGV0ZWN0ZWQgZXJyb3JzOiBEYXRhIFJhY2VzPC9hPjwvc3Bhbj48L2R0PgorPGRkPjxkbD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9ImhnLW1hbnVhbC5odG1sI2hnLW1hbnVhbC5kYXRhLXJhY2VzLmV4YW1wbGUiPjcuNC4xLiBBIFNpbXBsZSBEYXRhIFJhY2U8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJoZy1tYW51YWwuaHRtbCNoZy1tYW51YWwuZGF0YS1yYWNlcy5hbGdvcml0aG0iPjcuNC4yLiBIZWxncmluZCdzIFJhY2UgRGV0ZWN0aW9uIEFsZ29yaXRobTwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9ImhnLW1hbnVhbC5odG1sI2hnLW1hbnVhbC5kYXRhLXJhY2VzLmVycm1zZ3MiPjcuNC4zLiBJbnRlcnByZXRpbmcgUmFjZSBFcnJvciBNZXNzYWdlczwvYT48L3NwYW4+PC9kdD4KKzwvZGw+PC9kZD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9ImhnLW1hbnVhbC5odG1sI2hnLW1hbnVhbC5lZmZlY3RpdmUtdXNlIj43LjUuIEhpbnRzIGFuZCBUaXBzIGZvciBFZmZlY3RpdmUgVXNlIG9mIEhlbGdyaW5kPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0iaGctbWFudWFsLmh0bWwjaGctbWFudWFsLm9wdGlvbnMiPjcuNi4gSGVsZ3JpbmQgQ29tbWFuZC1saW5lIE9wdGlvbnM8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJoZy1tYW51YWwuaHRtbCNoZy1tYW51YWwubW9uaXRvci1jb21tYW5kcyI+Ny43LiBIZWxncmluZCBNb25pdG9yIENvbW1hbmRzPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0iaGctbWFudWFsLmh0bWwjaGctbWFudWFsLmNsaWVudC1yZXF1ZXN0cyI+Ny44LiBIZWxncmluZCBDbGllbnQgUmVxdWVzdHM8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJoZy1tYW51YWwuaHRtbCNoZy1tYW51YWwudG9kb2xpc3QiPjcuOS4gQSBUby1EbyBMaXN0IGZvciBIZWxncmluZDwvYT48L3NwYW4+PC9kdD4KKzwvZGw+PC9kZD4KKzxkdD48c3BhbiBjbGFzcz0iY2hhcHRlciI+PGEgaHJlZj0iZHJkLW1hbnVhbC5odG1sIj44LiBEUkQ6IGEgdGhyZWFkIGVycm9yIGRldGVjdG9yPC9hPjwvc3Bhbj48L2R0PgorPGRkPjxkbD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9ImRyZC1tYW51YWwuaHRtbCNkcmQtbWFudWFsLm92ZXJ2aWV3Ij44LjEuIE92ZXJ2aWV3PC9hPjwvc3Bhbj48L2R0PgorPGRkPjxkbD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9ImRyZC1tYW51YWwuaHRtbCNkcmQtbWFudWFsLm10LXByb2dyLW1vZGVscyI+OC4xLjEuIE11bHRpdGhyZWFkZWQgUHJvZ3JhbW1pbmcgUGFyYWRpZ21zPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iZHJkLW1hbnVhbC5odG1sI2RyZC1tYW51YWwucHRocmVhZHMtbW9kZWwiPjguMS4yLiBQT1NJWCBUaHJlYWRzIFByb2dyYW1taW5nIE1vZGVsPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iZHJkLW1hbnVhbC5odG1sI2RyZC1tYW51YWwubXQtcHJvYmxlbXMiPjguMS4zLiBNdWx0aXRocmVhZGVkIFByb2dyYW1taW5nIFByb2JsZW1zPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iZHJkLW1hbnVhbC5odG1sI2RyZC1tYW51YWwuZGF0YS1yYWNlLWRldGVjdGlvbiI+OC4xLjQuIERhdGEgUmFjZSBEZXRlY3Rpb248L2E+PC9zcGFuPjwvZHQ+Cis8L2RsPjwvZGQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJkcmQtbWFudWFsLmh0bWwjZHJkLW1hbnVhbC51c2luZy1kcmQiPjguMi4gVXNpbmcgRFJEPC9hPjwvc3Bhbj48L2R0PgorPGRkPjxkbD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9ImRyZC1tYW51YWwuaHRtbCNkcmQtbWFudWFsLm9wdGlvbnMiPjguMi4xLiBEUkQgQ29tbWFuZC1saW5lIE9wdGlvbnM8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJkcmQtbWFudWFsLmh0bWwjZHJkLW1hbnVhbC5kYXRhLXJhY2VzIj44LjIuMi4gRGV0ZWN0ZWQgRXJyb3JzOiBEYXRhIFJhY2VzPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iZHJkLW1hbnVhbC5odG1sI2RyZC1tYW51YWwubG9jay1jb250ZW50aW9uIj44LjIuMy4gRGV0ZWN0ZWQgRXJyb3JzOiBMb2NrIENvbnRlbnRpb248L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJkcmQtbWFudWFsLmh0bWwjZHJkLW1hbnVhbC5hcGktY2hlY2tzIj44LjIuNC4gRGV0ZWN0ZWQgRXJyb3JzOiBNaXN1c2Ugb2YgdGhlIFBPU0lYIHRocmVhZHMgQVBJPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iZHJkLW1hbnVhbC5odG1sI2RyZC1tYW51YWwuY2xpZW50cmVxcyI+OC4yLjUuIENsaWVudCBSZXF1ZXN0czwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9ImRyZC1tYW51YWwuaHRtbCNkcmQtbWFudWFsLkMrKzExIj44LjIuNi4gRGVidWdnaW5nIEMrKzExIFByb2dyYW1zPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iZHJkLW1hbnVhbC5odG1sI2RyZC1tYW51YWwuZ25vbWUiPjguMi43LiBEZWJ1Z2dpbmcgR05PTUUgUHJvZ3JhbXM8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJkcmQtbWFudWFsLmh0bWwjZHJkLW1hbnVhbC5ib29zdC50aHJlYWQiPjguMi44LiBEZWJ1Z2dpbmcgQm9vc3QuVGhyZWFkIFByb2dyYW1zPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iZHJkLW1hbnVhbC5odG1sI2RyZC1tYW51YWwub3Blbm1wIj44LjIuOS4gRGVidWdnaW5nIE9wZW5NUCBQcm9ncmFtczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9ImRyZC1tYW51YWwuaHRtbCNkcmQtbWFudWFsLmN1c3QtbWVtLWFsbG9jIj44LjIuMTAuIERSRCBhbmQgQ3VzdG9tIE1lbW9yeSBBbGxvY2F0b3JzPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iZHJkLW1hbnVhbC5odG1sI2RyZC1tYW51YWwuZHJkLXZlcnN1cy1tZW1jaGVjayI+OC4yLjExLiBEUkQgVmVyc3VzIE1lbWNoZWNrPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iZHJkLW1hbnVhbC5odG1sI2RyZC1tYW51YWwucmVzb3VyY2UtcmVxdWlyZW1lbnRzIj44LjIuMTIuIFJlc291cmNlIFJlcXVpcmVtZW50czwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9ImRyZC1tYW51YWwuaHRtbCNkcmQtbWFudWFsLmVmZmVjdGl2ZS11c2UiPjguMi4xMy4gSGludHMgYW5kIFRpcHMgZm9yIEVmZmVjdGl2ZSBVc2Ugb2YgRFJEPC9hPjwvc3Bhbj48L2R0PgorPC9kbD48L2RkPgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0iZHJkLW1hbnVhbC5odG1sI2RyZC1tYW51YWwuUHRocmVhZHMiPjguMy4gVXNpbmcgdGhlIFBPU0lYIFRocmVhZHMgQVBJIEVmZmVjdGl2ZWx5PC9hPjwvc3Bhbj48L2R0PgorPGRkPjxkbD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9ImRyZC1tYW51YWwuaHRtbCNkcmQtbWFudWFsLm11dGV4LXR5cGVzIj44LjMuMS4gTXV0ZXggdHlwZXM8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJkcmQtbWFudWFsLmh0bWwjZHJkLW1hbnVhbC5jb25kdmFyIj44LjMuMi4gQ29uZGl0aW9uIHZhcmlhYmxlczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9ImRyZC1tYW51YWwuaHRtbCNkcmQtbWFudWFsLnBjdHciPjguMy4zLiBwdGhyZWFkX2NvbmRfdGltZWR3YWl0IGFuZCB0aW1lb3V0czwvYT48L3NwYW4+PC9kdD4KKzwvZGw+PC9kZD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9ImRyZC1tYW51YWwuaHRtbCNkcmQtbWFudWFsLmxpbWl0YXRpb25zIj44LjQuIExpbWl0YXRpb25zPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0iZHJkLW1hbnVhbC5odG1sI2RyZC1tYW51YWwuZmVlZGJhY2siPjguNS4gRmVlZGJhY2s8L2E+PC9zcGFuPjwvZHQ+Cis8L2RsPjwvZGQ+Cis8ZHQ+PHNwYW4gY2xhc3M9ImNoYXB0ZXIiPjxhIGhyZWY9Im1zLW1hbnVhbC5odG1sIj45LiBNYXNzaWY6IGEgaGVhcCBwcm9maWxlcjwvYT48L3NwYW4+PC9kdD4KKzxkZD48ZGw+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJtcy1tYW51YWwuaHRtbCNtcy1tYW51YWwub3ZlcnZpZXciPjkuMS4gT3ZlcnZpZXc8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJtcy1tYW51YWwuaHRtbCNtcy1tYW51YWwudXNpbmciPjkuMi4gVXNpbmcgTWFzc2lmIGFuZCBtc19wcmludDwvYT48L3NwYW4+PC9kdD4KKzxkZD48ZGw+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJtcy1tYW51YWwuaHRtbCNtcy1tYW51YWwuYW5leGFtcGxlIj45LjIuMS4gQW4gRXhhbXBsZSBQcm9ncmFtPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0ibXMtbWFudWFsLmh0bWwjbXMtbWFudWFsLnJ1bm5pbmctbWFzc2lmIj45LjIuMi4gUnVubmluZyBNYXNzaWY8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJtcy1tYW51YWwuaHRtbCNtcy1tYW51YWwucnVubmluZy1tc19wcmludCI+OS4yLjMuIFJ1bm5pbmcgbXNfcHJpbnQ8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJtcy1tYW51YWwuaHRtbCNtcy1tYW51YWwudGhlb3V0cHV0cHJlYW1ibGUiPjkuMi40LiBUaGUgT3V0cHV0IFByZWFtYmxlPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0ibXMtbWFudWFsLmh0bWwjbXMtbWFudWFsLnRoZW91dHB1dGdyYXBoIj45LjIuNS4gVGhlIE91dHB1dCBHcmFwaDwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9Im1zLW1hbnVhbC5odG1sI21zLW1hbnVhbC50aGVzbmFwc2hvdGRldGFpbHMiPjkuMi42LiBUaGUgU25hcHNob3QgRGV0YWlsczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9Im1zLW1hbnVhbC5odG1sI21zLW1hbnVhbC5mb3JraW5ncHJvZ3JhbXMiPjkuMi43LiBGb3JraW5nIFByb2dyYW1zPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0ibXMtbWFudWFsLmh0bWwjbXMtbWFudWFsLm5vdC1tZWFzdXJlZCI+OS4yLjguIE1lYXN1cmluZyBBbGwgTWVtb3J5IGluIGEgUHJvY2VzczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9Im1zLW1hbnVhbC5odG1sI21zLW1hbnVhbC5hY3RpbmciPjkuMi45LiBBY3Rpbmcgb24gTWFzc2lmJ3MgSW5mb3JtYXRpb248L2E+PC9zcGFuPjwvZHQ+Cis8L2RsPjwvZGQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJtcy1tYW51YWwuaHRtbCNtcy1tYW51YWwub3B0aW9ucyI+OS4zLiBNYXNzaWYgQ29tbWFuZC1saW5lIE9wdGlvbnM8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJtcy1tYW51YWwuaHRtbCNtcy1tYW51YWwubW9uaXRvci1jb21tYW5kcyI+OS40LiBNYXNzaWYgTW9uaXRvciBDb21tYW5kczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9Im1zLW1hbnVhbC5odG1sI21zLW1hbnVhbC5jbGllbnRyZXFzIj45LjUuIE1hc3NpZiBDbGllbnQgUmVxdWVzdHM8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJtcy1tYW51YWwuaHRtbCNtcy1tYW51YWwubXNfcHJpbnQtb3B0aW9ucyI+OS42LiBtc19wcmludCBDb21tYW5kLWxpbmUgT3B0aW9uczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9Im1zLW1hbnVhbC5odG1sI21zLW1hbnVhbC5maWxlZm9ybWF0Ij45LjcuIE1hc3NpZidzIE91dHB1dCBGaWxlIEZvcm1hdDwvYT48L3NwYW4+PC9kdD4KKzwvZGw+PC9kZD4KKzxkdD48c3BhbiBjbGFzcz0iY2hhcHRlciI+PGEgaHJlZj0iZGgtbWFudWFsLmh0bWwiPjEwLiBESEFUOiBhIGR5bmFtaWMgaGVhcCBhbmFseXNpcyB0b29sPC9hPjwvc3Bhbj48L2R0PgorPGRkPjxkbD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9ImRoLW1hbnVhbC5odG1sI2RoLW1hbnVhbC5vdmVydmlldyI+MTAuMS4gT3ZlcnZpZXc8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJkaC1tYW51YWwuaHRtbCNkaC1tYW51YWwudW5kZXJzdGFuZGluZyI+MTAuMi4gVW5kZXJzdGFuZGluZyBESEFUJ3Mgb3V0cHV0PC9hPjwvc3Bhbj48L2R0PgorPGRkPjxkbD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9ImRoLW1hbnVhbC5odG1sI2lkbTE0MDYzOTExNzEyNjE2MCI+MTAuMi4xLiBJbnRlcnByZXRpbmcgdGhlIG1heC1saXZlLCB0b3QtYWxsb2MgYW5kIGRlYXRocyBmaWVsZHM8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJkaC1tYW51YWwuaHRtbCNpZG0xNDA2MzkxMTM4NDE0ODgiPjEwLjIuMi4gSW50ZXJwcmV0aW5nIHRoZSBhY2MtcmF0aW9zIGZpZWxkczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9ImRoLW1hbnVhbC5odG1sI2lkbTE0MDYzOTExNjc0MTE1MiI+MTAuMi4zLiBJbnRlcnByZXRpbmcgIkFnZ3JlZ2F0ZWQgYWNjZXNzIGNvdW50cyBieSBvZmZzZXQiIGRhdGE8L2E+PC9zcGFuPjwvZHQ+Cis8L2RsPjwvZGQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJkaC1tYW51YWwuaHRtbCNkaC1tYW51YWwub3B0aW9ucyI+MTAuMy4gREhBVCBDb21tYW5kLWxpbmUgT3B0aW9uczwvYT48L3NwYW4+PC9kdD4KKzwvZGw+PC9kZD4KKzxkdD48c3BhbiBjbGFzcz0iY2hhcHRlciI+PGEgaHJlZj0ic2ctbWFudWFsLmh0bWwiPjExLiBTR0NoZWNrOiBhbiBleHBlcmltZW50YWwgc3RhY2sgYW5kIGdsb2JhbCBhcnJheSBvdmVycnVuIGRldGVjdG9yPC9hPjwvc3Bhbj48L2R0PgorPGRkPjxkbD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9InNnLW1hbnVhbC5odG1sI3NnLW1hbnVhbC5vdmVydmlldyI+MTEuMS4gT3ZlcnZpZXc8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJzZy1tYW51YWwuaHRtbCNzZy1tYW51YWwub3B0aW9ucyI+MTEuMi4gU0dDaGVjayBDb21tYW5kLWxpbmUgT3B0aW9uczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9InNnLW1hbnVhbC5odG1sI3NnLW1hbnVhbC5ob3ctd29ya3Muc2ctY2hlY2tzIj4xMS4zLiBIb3cgU0dDaGVjayBXb3JrczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9InNnLW1hbnVhbC5odG1sI3NnLW1hbnVhbC5jbXAtdy1tZW1jaGVjayI+MTEuNC4gQ29tcGFyaXNvbiB3aXRoIE1lbWNoZWNrPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0ic2ctbWFudWFsLmh0bWwjc2ctbWFudWFsLmxpbWl0YXRpb25zIj4xMS41LiBMaW1pdGF0aW9uczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9InNnLW1hbnVhbC5odG1sI3NnLW1hbnVhbC50b2RvLXVzZXItdmlzaWJsZSI+MTEuNi4gU3RpbGwgVG8gRG86IFVzZXItdmlzaWJsZSBGdW5jdGlvbmFsaXR5PC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0ic2ctbWFudWFsLmh0bWwjc2ctbWFudWFsLnRvZG8taW1wbGVtZW50YXRpb24iPjExLjcuIFN0aWxsIFRvIERvOiBJbXBsZW1lbnRhdGlvbiBUaWR5aW5nPC9hPjwvc3Bhbj48L2R0PgorPC9kbD48L2RkPgorPGR0PjxzcGFuIGNsYXNzPSJjaGFwdGVyIj48YSBocmVmPSJiYnYtbWFudWFsLmh0bWwiPjEyLiBCQlY6IGFuIGV4cGVyaW1lbnRhbCBiYXNpYyBibG9jayB2ZWN0b3IgZ2VuZXJhdGlvbiB0b29sPC9hPjwvc3Bhbj48L2R0PgorPGRkPjxkbD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9ImJidi1tYW51YWwuaHRtbCNiYnYtbWFudWFsLm92ZXJ2aWV3Ij4xMi4xLiBPdmVydmlldzwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9ImJidi1tYW51YWwuaHRtbCNiYnYtbWFudWFsLnF1aWNrc3RhcnQiPjEyLjIuIFVzaW5nIEJhc2ljIEJsb2NrIFZlY3RvcnMgdG8gY3JlYXRlIFNpbVBvaW50czwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9ImJidi1tYW51YWwuaHRtbCNiYnYtbWFudWFsLnVzYWdlIj4xMi4zLiBCQlYgQ29tbWFuZC1saW5lIE9wdGlvbnM8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJiYnYtbWFudWFsLmh0bWwjYmJ2LW1hbnVhbC5maWxlZm9ybWF0Ij4xMi40LiBCYXNpYyBCbG9jayBWZWN0b3IgRmlsZSBGb3JtYXQ8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJiYnYtbWFudWFsLmh0bWwjYmJ2LW1hbnVhbC5pbXBsZW1lbnRhdGlvbiI+MTIuNS4gSW1wbGVtZW50YXRpb248L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJiYnYtbWFudWFsLmh0bWwjYmJ2LW1hbnVhbC50aHJlYWRzdXBwb3J0Ij4xMi42LiBUaHJlYWRlZCBFeGVjdXRhYmxlIFN1cHBvcnQ8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJiYnYtbWFudWFsLmh0bWwjYmJ2LW1hbnVhbC52YWxpZGF0aW9uIj4xMi43LiBWYWxpZGF0aW9uPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0iYmJ2LW1hbnVhbC5odG1sI2Jidi1tYW51YWwucGVyZm9ybWFuY2UiPjEyLjguIFBlcmZvcm1hbmNlPC9hPjwvc3Bhbj48L2R0PgorPC9kbD48L2RkPgorPGR0PjxzcGFuIGNsYXNzPSJjaGFwdGVyIj48YSBocmVmPSJsay1tYW51YWwuaHRtbCI+MTMuIExhY2tleTogYW4gZXhhbXBsZSB0b29sPC9hPjwvc3Bhbj48L2R0PgorPGRkPjxkbD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9ImxrLW1hbnVhbC5odG1sI2xrLW1hbnVhbC5vdmVydmlldyI+MTMuMS4gT3ZlcnZpZXc8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJsay1tYW51YWwuaHRtbCNsay1tYW51YWwub3B0aW9ucyI+MTMuMi4gTGFja2V5IENvbW1hbmQtbGluZSBPcHRpb25zPC9hPjwvc3Bhbj48L2R0PgorPC9kbD48L2RkPgorPGR0PjxzcGFuIGNsYXNzPSJjaGFwdGVyIj48YSBocmVmPSJubC1tYW51YWwuaHRtbCI+MTQuIE51bGdyaW5kOiB0aGUgbWluaW1hbCBWYWxncmluZCB0b29sPC9hPjwvc3Bhbj48L2R0PgorPGRkPjxkbD48ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJubC1tYW51YWwuaHRtbCNtcy1tYW51YWwub3ZlcnZpZXciPjE0LjEuIE92ZXJ2aWV3PC9hPjwvc3Bhbj48L2R0PjwvZGw+PC9kZD4KKzwvZGw+Cis8L2Rpdj4KKzwvZGl2PgorPGRpdj4KKzxicj48dGFibGUgY2xhc3M9Im5hdiIgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSIzIiBjZWxscGFkZGluZz0iMiIgYm9yZGVyPSIwIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGZvb3RlciI+Cis8dHI+Cis8dGQgcm93c3Bhbj0iMiIgd2lkdGg9IjQwJSIgYWxpZ249ImxlZnQiPgorPGEgYWNjZXNza2V5PSJwIiBocmVmPSJxdWljay1zdGFydC5odG1sIj4mbHQ7Jmx0O6BUaGUgVmFsZ3JpbmQgUXVpY2sgU3RhcnQgR3VpZGU8L2E+oDwvdGQ+Cis8dGQgd2lkdGg9IjIwJSIgYWxpZ249ImNlbnRlciI+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJpbmRleC5odG1sIj5VcDwvYT48L3RkPgorPHRkIHJvd3NwYW49IjIiIHdpZHRoPSI0MCUiIGFsaWduPSJyaWdodCI+oDxhIGFjY2Vzc2tleT0ibiIgaHJlZj0ibWFudWFsLWludHJvLmh0bWwiPjEuoEludHJvZHVjdGlvbqAmZ3Q7Jmd0OzwvYT4KKzwvdGQ+Cis8L3RyPgorPHRyPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0iY2VudGVyIj48YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPkhvbWU8L2E+PC90ZD48L3RyPgorPC90YWJsZT4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvZG9jcy9odG1sL21jLW1hbnVhbC5odG1sIGIvZG9jcy9odG1sL21jLW1hbnVhbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI0N2RhN2QKLS0tIC9kZXYvbnVsbAorKysgYi9kb2NzL2h0bWwvbWMtbWFudWFsLmh0bWwKQEAgLTAsMCArMSwyMzg2IEBACis8aHRtbD4KKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSI+Cis8dGl0bGU+NC6gTWVtY2hlY2s6IGEgbWVtb3J5IGVycm9yIGRldGVjdG9yPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9InZnX2Jhc2ljLmNzcyI+Cis8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkRvY0Jvb2sgWFNMIFN0eWxlc2hlZXRzIFYxLjc4LjEiPgorPGxpbmsgcmVsPSJob21lIiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0iVmFsZ3JpbmQgRG9jdW1lbnRhdGlvbiI+Cis8bGluayByZWw9InVwIiBocmVmPSJtYW51YWwuaHRtbCIgdGl0bGU9IlZhbGdyaW5kIFVzZXIgTWFudWFsIj4KKzxsaW5rIHJlbD0icHJldiIgaHJlZj0ibWFudWFsLWNvcmUtYWR2Lmh0bWwiIHRpdGxlPSIzLqBVc2luZyBhbmQgdW5kZXJzdGFuZGluZyB0aGUgVmFsZ3JpbmQgY29yZTogQWR2YW5jZWQgVG9waWNzIj4KKzxsaW5rIHJlbD0ibmV4dCIgaHJlZj0iY2ctbWFudWFsLmh0bWwiIHRpdGxlPSI1LqBDYWNoZWdyaW5kOiBhIGNhY2hlIGFuZCBicmFuY2gtcHJlZGljdGlvbiBwcm9maWxlciI+Cis8L2hlYWQ+Cis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+Cis8ZGl2Pjx0YWJsZSBjbGFzcz0ibmF2IiB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjMiIGNlbGxwYWRkaW5nPSIzIiBib3JkZXI9IjAiIHN1bW1hcnk9Ik5hdmlnYXRpb24gaGVhZGVyIj48dHI+Cis8dGQgd2lkdGg9IjIycHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9InAiIGhyZWY9Im1hbnVhbC1jb3JlLWFkdi5odG1sIj48aW1nIHNyYz0iaW1hZ2VzL3ByZXYucG5nIiB3aWR0aD0iMTgiIGhlaWdodD0iMjEiIGJvcmRlcj0iMCIgYWx0PSJQcmV2Ij48L2E+PC90ZD4KKzx0ZCB3aWR0aD0iMjVweCIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPjxhIGFjY2Vzc2tleT0idSIgaHJlZj0ibWFudWFsLmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvdXAucG5nIiB3aWR0aD0iMjEiIGhlaWdodD0iMTgiIGJvcmRlcj0iMCIgYWx0PSJVcCI+PC9hPjwvdGQ+Cis8dGQgd2lkdGg9IjMxcHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvaG9tZS5wbmciIHdpZHRoPSIyNyIgaGVpZ2h0PSIyMCIgYm9yZGVyPSIwIiBhbHQ9IlVwIj48L2E+PC90ZD4KKzx0aCBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+VmFsZ3JpbmQgVXNlciBNYW51YWw8L3RoPgorPHRkIHdpZHRoPSIyMnB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJuIiBocmVmPSJjZy1tYW51YWwuaHRtbCI+PGltZyBzcmM9ImltYWdlcy9uZXh0LnBuZyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjIxIiBib3JkZXI9IjAiIGFsdD0iTmV4dCI+PC9hPjwvdGQ+Cis8L3RyPjwvdGFibGU+PC9kaXY+Cis8ZGl2IGNsYXNzPSJjaGFwdGVyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMSBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0ibWMtbWFudWFsIj48L2E+NC6gTWVtY2hlY2s6IGEgbWVtb3J5IGVycm9yIGRldGVjdG9yPC9oMT48L2Rpdj48L2Rpdj48L2Rpdj4KKzxkaXYgY2xhc3M9InRvYyI+Cis8cD48Yj5UYWJsZSBvZiBDb250ZW50czwvYj48L3A+Cis8ZGwgY2xhc3M9InRvYyI+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJtYy1tYW51YWwuaHRtbCNtYy1tYW51YWwub3ZlcnZpZXciPjQuMS4gT3ZlcnZpZXc8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJtYy1tYW51YWwuaHRtbCNtYy1tYW51YWwuZXJyb3Jtc2dzIj40LjIuIEV4cGxhbmF0aW9uIG9mIGVycm9yIG1lc3NhZ2VzIGZyb20gTWVtY2hlY2s8L2E+PC9zcGFuPjwvZHQ+Cis8ZGQ+PGRsPgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0ibWMtbWFudWFsLmh0bWwjbWMtbWFudWFsLmJhZHJ3Ij40LjIuMS4gSWxsZWdhbCByZWFkIC8gSWxsZWdhbCB3cml0ZSBlcnJvcnM8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJtYy1tYW51YWwuaHRtbCNtYy1tYW51YWwudW5pbml0dmFscyI+NC4yLjIuIFVzZSBvZiB1bmluaXRpYWxpc2VkIHZhbHVlczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9Im1jLW1hbnVhbC5odG1sI21jLW1hbnVhbC5iYWQtc3lzY2FsbC1hcmdzIj40LjIuMy4gVXNlIG9mIHVuaW5pdGlhbGlzZWQgb3IgdW5hZGRyZXNzYWJsZSB2YWx1ZXMgaW4gc3lzdGVtCisgICAgICAgY2FsbHM8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJtYy1tYW51YWwuaHRtbCNtYy1tYW51YWwuYmFkZnJlZXMiPjQuMi40LiBJbGxlZ2FsIGZyZWVzPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0ibWMtbWFudWFsLmh0bWwjbWMtbWFudWFsLnJ1ZGVmbiI+NC4yLjUuIFdoZW4gYSBoZWFwIGJsb2NrIGlzIGZyZWVkIHdpdGggYW4gaW5hcHByb3ByaWF0ZSBkZWFsbG9jYXRpb24KK2Z1bmN0aW9uPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0ibWMtbWFudWFsLmh0bWwjbWMtbWFudWFsLm92ZXJsYXAiPjQuMi42LiBPdmVybGFwcGluZyBzb3VyY2UgYW5kIGRlc3RpbmF0aW9uIGJsb2NrczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9Im1jLW1hbnVhbC5odG1sI21jLW1hbnVhbC5maXNoeXZhbHVlIj40LjIuNy4gRmlzaHkgYXJndW1lbnQgdmFsdWVzPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0ibWMtbWFudWFsLmh0bWwjbWMtbWFudWFsLmxlYWtzIj40LjIuOC4gTWVtb3J5IGxlYWsgZGV0ZWN0aW9uPC9hPjwvc3Bhbj48L2R0PgorPC9kbD48L2RkPgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0ibWMtbWFudWFsLmh0bWwjbWMtbWFudWFsLm9wdGlvbnMiPjQuMy4gTWVtY2hlY2sgQ29tbWFuZC1MaW5lIE9wdGlvbnM8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJtYy1tYW51YWwuaHRtbCNtYy1tYW51YWwuc3VwcGZpbGVzIj40LjQuIFdyaXRpbmcgc3VwcHJlc3Npb24gZmlsZXM8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJtYy1tYW51YWwuaHRtbCNtYy1tYW51YWwubWFjaGluZSI+NC41LiBEZXRhaWxzIG9mIE1lbWNoZWNrJ3MgY2hlY2tpbmcgbWFjaGluZXJ5PC9hPjwvc3Bhbj48L2R0PgorPGRkPjxkbD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9Im1jLW1hbnVhbC5odG1sI21jLW1hbnVhbC52YWx1ZSI+NC41LjEuIFZhbGlkLXZhbHVlIChWKSBiaXRzPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0ibWMtbWFudWFsLmh0bWwjbWMtbWFudWFsLnZhZGRyZXNzIj40LjUuMi4gVmFsaWQtYWRkcmVzcyAoQSkgYml0czwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9Im1jLW1hbnVhbC5odG1sI21jLW1hbnVhbC50b2dldGhlciI+NC41LjMuIFB1dHRpbmcgaXQgYWxsIHRvZ2V0aGVyPC9hPjwvc3Bhbj48L2R0PgorPC9kbD48L2RkPgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0ibWMtbWFudWFsLmh0bWwjbWMtbWFudWFsLm1vbml0b3ItY29tbWFuZHMiPjQuNi4gTWVtY2hlY2sgTW9uaXRvciBDb21tYW5kczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9Im1jLW1hbnVhbC5odG1sI21jLW1hbnVhbC5jbGllbnRyZXFzIj40LjcuIENsaWVudCBSZXF1ZXN0czwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9Im1jLW1hbnVhbC5odG1sI21jLW1hbnVhbC5tZW1wb29scyI+NC44LiBNZW1vcnkgUG9vbHM6IGRlc2NyaWJpbmcgYW5kIHdvcmtpbmcgd2l0aCBjdXN0b20gYWxsb2NhdG9yczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9Im1jLW1hbnVhbC5odG1sI21jLW1hbnVhbC5tcGl3cmFwIj40LjkuIERlYnVnZ2luZyBNUEkgUGFyYWxsZWwgUHJvZ3JhbXMgd2l0aCBWYWxncmluZDwvYT48L3NwYW4+PC9kdD4KKzxkZD48ZGw+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJtYy1tYW51YWwuaHRtbCNtYy1tYW51YWwubXBpd3JhcC5idWlsZCI+NC45LjEuIEJ1aWxkaW5nIGFuZCBpbnN0YWxsaW5nIHRoZSB3cmFwcGVyczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9Im1jLW1hbnVhbC5odG1sI21jLW1hbnVhbC5tcGl3cmFwLmdldHRpbmdzdGFydGVkIj40LjkuMi4gR2V0dGluZyBzdGFydGVkPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0ibWMtbWFudWFsLmh0bWwjbWMtbWFudWFsLm1waXdyYXAuY29udHJvbGxpbmciPjQuOS4zLiBDb250cm9sbGluZyB0aGUgd3JhcHBlciBsaWJyYXJ5PC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0ibWMtbWFudWFsLmh0bWwjbWMtbWFudWFsLm1waXdyYXAubGltaXRhdGlvbnMuZnVuY3Rpb25zIj40LjkuNC4gRnVuY3Rpb25zPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0ibWMtbWFudWFsLmh0bWwjbWMtbWFudWFsLm1waXdyYXAubGltaXRhdGlvbnMudHlwZXMiPjQuOS41LiBUeXBlczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9Im1jLW1hbnVhbC5odG1sI21jLW1hbnVhbC5tcGl3cmFwLndyaXRpbmd3cmFwcGVycyI+NC45LjYuIFdyaXRpbmcgbmV3IHdyYXBwZXJzPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0ibWMtbWFudWFsLmh0bWwjbWMtbWFudWFsLm1waXdyYXAud2hhdHRvZXhwZWN0Ij40LjkuNy4gV2hhdCB0byBleHBlY3Qgd2hlbiB1c2luZyB0aGUgd3JhcHBlcnM8L2E+PC9zcGFuPjwvZHQ+Cis8L2RsPjwvZGQ+Cis8L2RsPgorPC9kaXY+Cis8cD5UbyB1c2UgdGhpcyB0b29sLCB5b3UgbWF5IHNwZWNpZnkgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS10b29sPW1lbWNoZWNrPC9jb2RlPgorb24gdGhlIFZhbGdyaW5kIGNvbW1hbmQgbGluZS4gIFlvdSBkb24ndCBoYXZlIHRvLCB0aG91Z2gsIHNpbmNlIE1lbWNoZWNrCitpcyB0aGUgZGVmYXVsdCB0b29sLjwvcD4KKzxkaXYgY2xhc3M9InNlY3QxIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+Cis8YSBuYW1lPSJtYy1tYW51YWwub3ZlcnZpZXciPjwvYT40LjEuoE92ZXJ2aWV3PC9oMj48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPk1lbWNoZWNrIGlzIGEgbWVtb3J5IGVycm9yIGRldGVjdG9yLiAgSXQgY2FuIGRldGVjdCB0aGUgZm9sbG93aW5nCitwcm9ibGVtcyB0aGF0IGFyZSBjb21tb24gaW4gQyBhbmQgQysrIHByb2dyYW1zLjwvcD4KKzxkaXYgY2xhc3M9Iml0ZW1pemVkbGlzdCI+PHVsIGNsYXNzPSJpdGVtaXplZGxpc3QiIHN0eWxlPSJsaXN0LXN0eWxlLXR5cGU6IGRpc2M7ICI+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5BY2Nlc3NpbmcgbWVtb3J5IHlvdSBzaG91bGRuJ3QsIGUuZy4gb3ZlcnJ1bm5pbmcgYW5kIHVuZGVycnVubmluZworICAgIGhlYXAgYmxvY2tzLCBvdmVycnVubmluZyB0aGUgdG9wIG9mIHRoZSBzdGFjaywgYW5kIGFjY2Vzc2luZyBtZW1vcnkgYWZ0ZXIKKyAgICBpdCBoYXMgYmVlbiBmcmVlZC48L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPlVzaW5nIHVuZGVmaW5lZCB2YWx1ZXMsIGkuZS4gdmFsdWVzIHRoYXQgaGF2ZSBub3QgYmVlbiBpbml0aWFsaXNlZCwKKyAgICBvciB0aGF0IGhhdmUgYmVlbiBkZXJpdmVkIGZyb20gb3RoZXIgdW5kZWZpbmVkIHZhbHVlcy48L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPkluY29ycmVjdCBmcmVlaW5nIG9mIGhlYXAgbWVtb3J5LCBzdWNoIGFzIGRvdWJsZS1mcmVlaW5nIGhlYXAKKyAgICBibG9ja3MsIG9yIG1pc21hdGNoZWQgdXNlIG9mCisgICAgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5tYWxsb2M8L2NvZGU+Lzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+bmV3PC9jb2RlPi88Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPm5ld1tdPC9jb2RlPgorICAgIHZlcnN1cworICAgIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+ZnJlZTwvY29kZT4vPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5kZWxldGU8L2NvZGU+Lzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+ZGVsZXRlW108L2NvZGU+PC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5PdmVybGFwcGluZyA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPnNyYzwvY29kZT4gYW5kCisgICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5kc3Q8L2NvZGU+IHBvaW50ZXJzIGluCisgICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5tZW1jcHk8L2NvZGU+IGFuZCByZWxhdGVkCisgICAgZnVuY3Rpb25zLjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+UGFzc2luZyBhIGZpc2h5IChwcmVzdW1hYmx5IG5lZ2F0aXZlKSB2YWx1ZSB0byB0aGUKKyAgICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPnNpemU8L2NvZGU+IHBhcmFtZXRlciBvZiBhIG1lbW9yeQorICAgIGFsbG9jYXRpb24gZnVuY3Rpb24uPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5NZW1vcnkgbGVha3MuPC9wPjwvbGk+Cis8L3VsPjwvZGl2PgorPHA+UHJvYmxlbXMgbGlrZSB0aGVzZSBjYW4gYmUgZGlmZmljdWx0IHRvIGZpbmQgYnkgb3RoZXIgbWVhbnMsCitvZnRlbiByZW1haW5pbmcgdW5kZXRlY3RlZCBmb3IgbG9uZyBwZXJpb2RzLCB0aGVuIGNhdXNpbmcgb2NjYXNpb25hbCwKK2RpZmZpY3VsdC10by1kaWFnbm9zZSBjcmFzaGVzLjwvcD4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDEiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj4KKzxhIG5hbWU9Im1jLW1hbnVhbC5lcnJvcm1zZ3MiPjwvYT40LjIuoEV4cGxhbmF0aW9uIG9mIGVycm9yIG1lc3NhZ2VzIGZyb20gTWVtY2hlY2s8L2gyPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+TWVtY2hlY2sgaXNzdWVzIGEgcmFuZ2Ugb2YgZXJyb3IgbWVzc2FnZXMuICBUaGlzIHNlY3Rpb24gcHJlc2VudHMgYQorcXVpY2sgc3VtbWFyeSBvZiB3aGF0IGVycm9yIG1lc3NhZ2VzIG1lYW4uICBUaGUgcHJlY2lzZSBiZWhhdmlvdXIgb2YgdGhlCitlcnJvci1jaGVja2luZyBtYWNoaW5lcnkgaXMgZGVzY3JpYmVkIGluIDxhIGNsYXNzPSJ4cmVmIiBocmVmPSJtYy1tYW51YWwuaHRtbCNtYy1tYW51YWwubWFjaGluZSIgdGl0bGU9IjQuNS6gRGV0YWlscyBvZiBNZW1jaGVjaydzIGNoZWNraW5nIG1hY2hpbmVyeSI+RGV0YWlscyBvZiBNZW1jaGVjaydzIGNoZWNraW5nIG1hY2hpbmVyeTwvYT4uPC9wPgorPGRpdiBjbGFzcz0ic2VjdDIiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJtYy1tYW51YWwuYmFkcnciPjwvYT40LjIuMS6gSWxsZWdhbCByZWFkIC8gSWxsZWdhbCB3cml0ZSBlcnJvcnM8L2gzPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+Rm9yIGV4YW1wbGU6PC9wPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPgorSW52YWxpZCByZWFkIG9mIHNpemUgNAorICAgYXQgMHg0MEY2QkJDQzogKHdpdGhpbiAvdXNyL2xpYi9saWJwbmcuc28uMi4xLjAuOSkKKyAgIGJ5IDB4NDBGNkI4MDQ6ICh3aXRoaW4gL3Vzci9saWIvbGlicG5nLnNvLjIuMS4wLjkpCisgICBieSAweDQwQjA3RkY0OiByZWFkX3BuZ19pbWFnZShRSW1hZ2VJTyAqKSAoa2VybmVsL3Fwbmdpby5jcHA6MzI2KQorICAgYnkgMHg0MEFDNzUxQjogUUltYWdlSU86OnJlYWQoKSAoa2VybmVsL3FpbWFnZS5jcHA6MzYyMSkKKyBBZGRyZXNzIDB4QkZGRkYwRTAgaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIGZyZWUnZAorPC9wcmU+Cis8cD5UaGlzIGhhcHBlbnMgd2hlbiB5b3VyIHByb2dyYW0gcmVhZHMgb3Igd3JpdGVzIG1lbW9yeSBhdCBhIHBsYWNlCit3aGljaCBNZW1jaGVjayByZWNrb25zIGl0IHNob3VsZG4ndC4gIEluIHRoaXMgZXhhbXBsZSwgdGhlIHByb2dyYW0gZGlkIGEKKzQtYnl0ZSByZWFkIGF0IGFkZHJlc3MgMHhCRkZGRjBFMCwgc29tZXdoZXJlIHdpdGhpbiB0aGUgc3lzdGVtLXN1cHBsaWVkCitsaWJyYXJ5IGxpYnBuZy5zby4yLjEuMC45LCB3aGljaCB3YXMgY2FsbGVkIGZyb20gc29tZXdoZXJlIGVsc2UgaW4gdGhlCitzYW1lIGxpYnJhcnksIGNhbGxlZCBmcm9tIGxpbmUgMzI2IG9mIDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+cXBuZ2lvLmNwcDwvY29kZT4sCithbmQgc28gb24uPC9wPgorPHA+TWVtY2hlY2sgdHJpZXMgdG8gZXN0YWJsaXNoIHdoYXQgdGhlIGlsbGVnYWwgYWRkcmVzcyBtaWdodCByZWxhdGUKK3RvLCBzaW5jZSB0aGF0J3Mgb2Z0ZW4gdXNlZnVsLiAgU28sIGlmIGl0IHBvaW50cyBpbnRvIGEgYmxvY2sgb2YgbWVtb3J5Cit3aGljaCBoYXMgYWxyZWFkeSBiZWVuIGZyZWVkLCB5b3UnbGwgYmUgaW5mb3JtZWQgb2YgdGhpcywgYW5kIGFsc28gd2hlcmUKK3RoZSBibG9jayB3YXMgZnJlZWQuICBMaWtld2lzZSwgaWYgaXQgc2hvdWxkIHR1cm4gb3V0IHRvIGJlIGp1c3Qgb2ZmCit0aGUgZW5kIG9mIGEgaGVhcCBibG9jaywgYSBjb21tb24gcmVzdWx0IG9mIG9mZi1ieS1vbmUtZXJyb3JzIGluCithcnJheSBzdWJzY3JpcHRpbmcsIHlvdSdsbCBiZSBpbmZvcm1lZCBvZiB0aGlzIGZhY3QsIGFuZCBhbHNvIHdoZXJlIHRoZQorYmxvY2sgd2FzIGFsbG9jYXRlZC4gIElmIHlvdSB1c2UgdGhlIDxjb2RlIGNsYXNzPSJvcHRpb24iPjxhIGNsYXNzPSJ4cmVmIiBocmVmPSJtYW51YWwtY29yZS5odG1sI29wdC5yZWFkLXZhci1pbmZvIj4tLXJlYWQtdmFyLWluZm88L2E+PC9jb2RlPiBvcHRpb24gTWVtY2hlY2sgd2lsbCBydW4gbW9yZSBzbG93bHkKK2J1dCBtYXkgZ2l2ZSBhIG1vcmUgZGV0YWlsZWQgZGVzY3JpcHRpb24gb2YgYW55IGlsbGVnYWwgYWRkcmVzcy48L3A+Cis8cD5JbiB0aGlzIGV4YW1wbGUsIE1lbWNoZWNrIGNhbid0IGlkZW50aWZ5IHRoZSBhZGRyZXNzLiAgQWN0dWFsbHkKK3RoZSBhZGRyZXNzIGlzIG9uIHRoZSBzdGFjaywgYnV0LCBmb3Igc29tZSByZWFzb24sIHRoaXMgaXMgbm90IGEgdmFsaWQKK3N0YWNrIGFkZHJlc3MgLS0gaXQgaXMgYmVsb3cgdGhlIHN0YWNrIHBvaW50ZXIgYW5kIHRoYXQgaXNuJ3QgYWxsb3dlZC4KK0luIHRoaXMgcGFydGljdWxhciBjYXNlIGl0J3MgcHJvYmFibHkgY2F1c2VkIGJ5IEdDQyBnZW5lcmF0aW5nIGludmFsaWQKK2NvZGUsIGEga25vd24gYnVnIGluIHNvbWUgYW5jaWVudCB2ZXJzaW9ucyBvZiBHQ0MuPC9wPgorPHA+Tm90ZSB0aGF0IE1lbWNoZWNrIG9ubHkgdGVsbHMgeW91IHRoYXQgeW91ciBwcm9ncmFtIGlzIGFib3V0IHRvCithY2Nlc3MgbWVtb3J5IGF0IGFuIGlsbGVnYWwgYWRkcmVzcy4gIEl0IGNhbid0IHN0b3AgdGhlIGFjY2VzcyBmcm9tCitoYXBwZW5pbmcuICBTbywgaWYgeW91ciBwcm9ncmFtIG1ha2VzIGFuIGFjY2VzcyB3aGljaCBub3JtYWxseSB3b3VsZAorcmVzdWx0IGluIGEgc2VnbWVudGF0aW9uIGZhdWx0LCB5b3UgcHJvZ3JhbSB3aWxsIHN0aWxsIHN1ZmZlciB0aGUgc2FtZQorZmF0ZSAtLSBidXQgeW91IHdpbGwgZ2V0IGEgbWVzc2FnZSBmcm9tIE1lbWNoZWNrIGltbWVkaWF0ZWx5IHByaW9yIHRvCit0aGlzLiAgSW4gdGhpcyBwYXJ0aWN1bGFyIGV4YW1wbGUsIHJlYWRpbmcganVuayBvbiB0aGUgc3RhY2sgaXMKK25vbi1mYXRhbCwgYW5kIHRoZSBwcm9ncmFtIHN0YXlzIGFsaXZlLjwvcD4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDIiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJtYy1tYW51YWwudW5pbml0dmFscyI+PC9hPjQuMi4yLqBVc2Ugb2YgdW5pbml0aWFsaXNlZCB2YWx1ZXM8L2gzPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+Rm9yIGV4YW1wbGU6PC9wPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPgorQ29uZGl0aW9uYWwganVtcCBvciBtb3ZlIGRlcGVuZHMgb24gdW5pbml0aWFsaXNlZCB2YWx1ZShzKQorICAgYXQgMHg0MDJERkE5NDogX0lPX3ZmcHJpbnRmIChfaXRvYS5oOjQ5KQorICAgYnkgMHg0MDJFODQ3NjogX0lPX3ByaW50ZiAocHJpbnRmLmM6MzYpCisgICBieSAweDgwNDg0NzI6IG1haW4gKHRlc3RzL21hbnVlbDEuYzo4KQorPC9wcmU+Cis8cD5BbiB1bmluaXRpYWxpc2VkLXZhbHVlIHVzZSBlcnJvciBpcyByZXBvcnRlZCB3aGVuIHlvdXIgcHJvZ3JhbQordXNlcyBhIHZhbHVlIHdoaWNoIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0tIGluIG90aGVyIHdvcmRzLCBpcwordW5kZWZpbmVkLiAgSGVyZSwgdGhlIHVuZGVmaW5lZCB2YWx1ZSBpcyB1c2VkIHNvbWV3aGVyZSBpbnNpZGUgdGhlCis8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPnByaW50ZjwvY29kZT4gbWFjaGluZXJ5IG9mIHRoZSBDIGxpYnJhcnkuICBUaGlzIGVycm9yIHdhcworcmVwb3J0ZWQgd2hlbiBydW5uaW5nIHRoZSBmb2xsb3dpbmcgc21hbGwgcHJvZ3JhbTo8L3A+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CitpbnQgbWFpbigpCit7CisgIGludCB4OworICBwcmludGYgKCJ4ID0gJWRcbiIsIHgpOworfTwvcHJlPgorPHA+SXQgaXMgaW1wb3J0YW50IHRvIHVuZGVyc3RhbmQgdGhhdCB5b3VyIHByb2dyYW0gY2FuIGNvcHkgYXJvdW5kCitqdW5rICh1bmluaXRpYWxpc2VkKSBkYXRhIGFzIG11Y2ggYXMgaXQgbGlrZXMuICBNZW1jaGVjayBvYnNlcnZlcyB0aGlzCithbmQga2VlcHMgdHJhY2sgb2YgdGhlIGRhdGEsIGJ1dCBkb2VzIG5vdCBjb21wbGFpbi4gIEEgY29tcGxhaW50IGlzCitpc3N1ZWQgb25seSB3aGVuIHlvdXIgcHJvZ3JhbSBhdHRlbXB0cyB0byBtYWtlIHVzZSBvZiB1bmluaXRpYWxpc2VkCitkYXRhIGluIGEgd2F5IHRoYXQgbWlnaHQgYWZmZWN0IHlvdXIgcHJvZ3JhbSdzIGV4dGVybmFsbHktdmlzaWJsZSBiZWhhdmlvdXIuCitJbiB0aGlzIGV4YW1wbGUsIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj54PC9jb2RlPiBpcyB1bmluaXRpYWxpc2VkLiAgTWVtY2hlY2sgb2JzZXJ2ZXMKK3RoZSB2YWx1ZSBiZWluZyBwYXNzZWQgdG8gPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5fSU9fcHJpbnRmPC9jb2RlPiBhbmQgdGhlbmNlIHRvCis8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPl9JT192ZnByaW50ZjwvY29kZT4sIGJ1dCBtYWtlcyBubyBjb21tZW50LiAgSG93ZXZlciwKKzxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+X0lPX3ZmcHJpbnRmPC9jb2RlPiBoYXMgdG8gZXhhbWluZSB0aGUgdmFsdWUgb2YKKzxjb2RlIGNsYXNzPSJ2YXJuYW1lIj54PC9jb2RlPiBzbyBpdCBjYW4gdHVybiBpdCBpbnRvIHRoZSBjb3JyZXNwb25kaW5nIEFTQ0lJIHN0cmluZywKK2FuZCBpdCBpcyBhdCB0aGlzIHBvaW50IHRoYXQgTWVtY2hlY2sgY29tcGxhaW5zLjwvcD4KKzxwPlNvdXJjZXMgb2YgdW5pbml0aWFsaXNlZCBkYXRhIHRlbmQgdG8gYmU6PC9wPgorPGRpdiBjbGFzcz0iaXRlbWl6ZWRsaXN0Ij48dWwgY2xhc3M9Iml0ZW1pemVkbGlzdCIgc3R5bGU9Imxpc3Qtc3R5bGUtdHlwZTogZGlzYzsgIj4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPkxvY2FsIHZhcmlhYmxlcyBpbiBwcm9jZWR1cmVzIHdoaWNoIGhhdmUgbm90IGJlZW4gaW5pdGlhbGlzZWQsCisgICAgYXMgaW4gdGhlIGV4YW1wbGUgYWJvdmUuPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5UaGUgY29udGVudHMgb2YgaGVhcCBibG9ja3MgKGFsbG9jYXRlZCB3aXRoCisgICAgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5tYWxsb2M8L2NvZGU+LCA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPm5ldzwvY29kZT4sIG9yIGEgc2ltaWxhcgorICAgIGZ1bmN0aW9uKSBiZWZvcmUgeW91IChvciBhIGNvbnN0cnVjdG9yKSB3cml0ZSBzb21ldGhpbmcgdGhlcmUuCisgICAgPC9wPjwvbGk+Cis8L3VsPjwvZGl2PgorPHA+VG8gc2VlIGluZm9ybWF0aW9uIG9uIHRoZSBzb3VyY2VzIG9mIHVuaW5pdGlhbGlzZWQgZGF0YSBpbiB5b3VyCitwcm9ncmFtLCB1c2UgdGhlIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tdHJhY2stb3JpZ2lucz15ZXM8L2NvZGU+IG9wdGlvbi4gIFRoaXMKK21ha2VzIE1lbWNoZWNrIHJ1biBtb3JlIHNsb3dseSwgYnV0IGNhbiBtYWtlIGl0IG11Y2ggZWFzaWVyIHRvIHRyYWNrIGRvd24KK3RoZSByb290IGNhdXNlcyBvZiB1bmluaXRpYWxpc2VkIHZhbHVlIGVycm9ycy48L3A+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0ibWMtbWFudWFsLmJhZC1zeXNjYWxsLWFyZ3MiPjwvYT40LjIuMy6gVXNlIG9mIHVuaW5pdGlhbGlzZWQgb3IgdW5hZGRyZXNzYWJsZSB2YWx1ZXMgaW4gc3lzdGVtCisgICAgICAgY2FsbHM8L2gzPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+TWVtY2hlY2sgY2hlY2tzIGFsbCBwYXJhbWV0ZXJzIHRvIHN5c3RlbSBjYWxsczoKKzwvcD4KKzxkaXYgY2xhc3M9Iml0ZW1pemVkbGlzdCI+PHVsIGNsYXNzPSJpdGVtaXplZGxpc3QiIHN0eWxlPSJsaXN0LXN0eWxlLXR5cGU6IGRpc2M7ICI+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5JdCBjaGVja3MgYWxsIHRoZSBkaXJlY3QgcGFyYW1ldGVycyB0aGVtc2VsdmVzLCB3aGV0aGVyIHRoZXkgYXJlCisgICAgaW5pdGlhbGlzZWQuPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5BbHNvLCBpZiBhIHN5c3RlbSBjYWxsIG5lZWRzIHRvIHJlYWQgZnJvbSBhIGJ1ZmZlciBwcm92aWRlZCBieQorICAgIHlvdXIgcHJvZ3JhbSwgTWVtY2hlY2sgY2hlY2tzIHRoYXQgdGhlIGVudGlyZSBidWZmZXIgaXMgYWRkcmVzc2FibGUKKyAgICBhbmQgaXRzIGNvbnRlbnRzIGFyZSBpbml0aWFsaXNlZC48L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPkFsc28sIGlmIHRoZSBzeXN0ZW0gY2FsbCBuZWVkcyB0byB3cml0ZSB0byBhIHVzZXItc3VwcGxpZWQKKyAgICBidWZmZXIsIE1lbWNoZWNrIGNoZWNrcyB0aGF0IHRoZSBidWZmZXIgaXMgYWRkcmVzc2FibGUuPC9wPjwvbGk+Cis8L3VsPjwvZGl2PgorPHA+Cis8L3A+Cis8cD5BZnRlciB0aGUgc3lzdGVtIGNhbGwsIE1lbWNoZWNrIHVwZGF0ZXMgaXRzIHRyYWNrZWQgaW5mb3JtYXRpb24gdG8KK3ByZWNpc2VseSByZWZsZWN0IGFueSBjaGFuZ2VzIGluIG1lbW9yeSBzdGF0ZSBjYXVzZWQgYnkgdGhlIHN5c3RlbQorY2FsbC48L3A+Cis8cD5IZXJlJ3MgYW4gZXhhbXBsZSBvZiB0d28gc3lzdGVtIGNhbGxzIHdpdGggaW52YWxpZCBwYXJhbWV0ZXJzOjwvcD4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KKyAgI2luY2x1ZGUgJmx0O3N0ZGxpYi5oJmd0OworICAjaW5jbHVkZSAmbHQ7dW5pc3RkLmgmZ3Q7CisgIGludCBtYWluKCB2b2lkICkKKyAgeworICAgIGNoYXIqIGFyciAgPSBtYWxsb2MoMTApOworICAgIGludCogIGFycjIgPSBtYWxsb2Moc2l6ZW9mKGludCkpOworICAgIHdyaXRlKCAxIC8qIHN0ZG91dCAqLywgYXJyLCAxMCApOworICAgIGV4aXQoYXJyMlswXSk7CisgIH0KKzwvcHJlPgorPHA+WW91IGdldCB0aGVzZSBjb21wbGFpbnRzIC4uLjwvcD4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KKyAgU3lzY2FsbCBwYXJhbSB3cml0ZShidWYpIHBvaW50cyB0byB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgICAgYXQgMHgyNUE0ODcyMzogX193cml0ZV9ub2NhbmNlbCAoaW4gL2xpYi90bHMvbGliYy0yLjMuMy5zbykKKyAgICAgYnkgMHgyNTlBRkFEMzogX19saWJjX3N0YXJ0X21haW4gKGluIC9saWIvdGxzL2xpYmMtMi4zLjMuc28pCisgICAgIGJ5IDB4ODA0ODM0ODogKHdpdGhpbiAvYXV0by9ob21lcy9uam4yNS9ncmluZC9oZWFkNC9hLm91dCkKKyAgIEFkZHJlc3MgMHgyNUFCODAyOCBpcyAwIGJ5dGVzIGluc2lkZSBhIGJsb2NrIG9mIHNpemUgMTAgYWxsb2MnZAorICAgICBhdCAweDI1OTg1MkIwOiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6MTMwKQorICAgICBieSAweDgwNDgzRjE6IG1haW4gKGEuYzo1KQorCisgIFN5c2NhbGwgcGFyYW0gZXhpdChlcnJvcl9jb2RlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgICAgYXQgMHgyNUEyMUI0NDogX19HSV9fZXhpdCAoaW4gL2xpYi90bHMvbGliYy0yLjMuMy5zbykKKyAgICAgYnkgMHg4MDQ4NDI2OiBtYWluIChhLmM6OCkKKzwvcHJlPgorPHA+Li4uIGJlY2F1c2UgdGhlIHByb2dyYW0gaGFzIChhKSB3cml0dGVuIHVuaW5pdGlhbGlzZWQganVuaworZnJvbSB0aGUgaGVhcCBibG9jayB0byB0aGUgc3RhbmRhcmQgb3V0cHV0LCBhbmQgKGIpIHBhc3NlZCBhbgordW5pbml0aWFsaXNlZCB2YWx1ZSB0byA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPmV4aXQ8L2NvZGU+LiAgTm90ZSB0aGF0IHRoZSBmaXJzdAorZXJyb3IgcmVmZXJzIHRvIHRoZSBtZW1vcnkgcG9pbnRlZCB0byBieQorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5idWY8L2NvZGU+IChub3QKKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+YnVmPC9jb2RlPiBpdHNlbGYpLCBidXQgdGhlIHNlY29uZCBlcnJvcgorcmVmZXJzIGRpcmVjdGx5IHRvIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+ZXhpdDwvY29kZT4ncyBhcmd1bWVudAorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5hcnIyWzBdPC9jb2RlPi48L3A+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0ibWMtbWFudWFsLmJhZGZyZWVzIj48L2E+NC4yLjQuoElsbGVnYWwgZnJlZXM8L2gzPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+Rm9yIGV4YW1wbGU6PC9wPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPgorSW52YWxpZCBmcmVlKCkKKyAgIGF0IDB4NDAwNEZGREY6IGZyZWUgKHZnX2NsaWVudG1hbGxvYy5jOjU3NykKKyAgIGJ5IDB4ODA0ODRDNzogbWFpbiAodGVzdHMvZG91YmxlZnJlZS5jOjEwKQorIEFkZHJlc3MgMHgzODA3RjdCNCBpcyAwIGJ5dGVzIGluc2lkZSBhIGJsb2NrIG9mIHNpemUgMTc3IGZyZWUnZAorICAgYXQgMHg0MDA0RkZERjogZnJlZSAodmdfY2xpZW50bWFsbG9jLmM6NTc3KQorICAgYnkgMHg4MDQ4NEM3OiBtYWluICh0ZXN0cy9kb3VibGVmcmVlLmM6MTApCis8L3ByZT4KKzxwPk1lbWNoZWNrIGtlZXBzIHRyYWNrIG9mIHRoZSBibG9ja3MgYWxsb2NhdGVkIGJ5IHlvdXIgcHJvZ3JhbQord2l0aCA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPm1hbGxvYzwvY29kZT4vPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5uZXc8L2NvZGU+LAorc28gaXQgY2FuIGtub3cgZXhhY3RseSB3aGV0aGVyIG9yIG5vdCB0aGUgYXJndW1lbnQgdG8KKzxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+ZnJlZTwvY29kZT4vPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5kZWxldGU8L2NvZGU+IGlzCitsZWdpdGltYXRlIG9yIG5vdC4gIEhlcmUsIHRoaXMgdGVzdCBwcm9ncmFtIGhhcyBmcmVlZCB0aGUgc2FtZSBibG9jawordHdpY2UuICBBcyB3aXRoIHRoZSBpbGxlZ2FsIHJlYWQvd3JpdGUgZXJyb3JzLCBNZW1jaGVjayBhdHRlbXB0cyB0bworbWFrZSBzZW5zZSBvZiB0aGUgYWRkcmVzcyBmcmVlZC4gIElmLCBhcyBoZXJlLCB0aGUgYWRkcmVzcyBpcyBvbmUKK3doaWNoIGhhcyBwcmV2aW91c2x5IGJlZW4gZnJlZWQsIHlvdSB3aWwgYmUgdG9sZCB0aGF0IC0tIG1ha2luZworZHVwbGljYXRlIGZyZWVzIG9mIHRoZSBzYW1lIGJsb2NrIGVhc3kgdG8gc3BvdC4gIFlvdSB3aWxsIGFsc28gZ2V0IHRoaXMKK21lc3NhZ2UgaWYgeW91IHRyeSB0byBmcmVlIGEgcG9pbnRlciB0aGF0IGRvZXNuJ3QgcG9pbnQgdG8gdGhlIHN0YXJ0IG9mIGEKK2hlYXAgYmxvY2suPC9wPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MiI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9Im1jLW1hbnVhbC5ydWRlZm4iPjwvYT40LjIuNS6gV2hlbiBhIGhlYXAgYmxvY2sgaXMgZnJlZWQgd2l0aCBhbiBpbmFwcHJvcHJpYXRlIGRlYWxsb2NhdGlvbgorZnVuY3Rpb248L2gzPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+SW4gdGhlIGZvbGxvd2luZyBleGFtcGxlLCBhIGJsb2NrIGFsbG9jYXRlZCB3aXRoCis8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPm5ld1tdPC9jb2RlPiBoYXMgd3JvbmdseSBiZWVuIGRlYWxsb2NhdGVkIHdpdGgKKzxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+ZnJlZTwvY29kZT46PC9wPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPgorTWlzbWF0Y2hlZCBmcmVlKCkgLyBkZWxldGUgLyBkZWxldGUgW10KKyAgIGF0IDB4NDAwNDMyNDk6IGZyZWUgKHZnX2NsaWVudGZ1bmNzLmM6MTcxKQorICAgYnkgMHg0MTAyQkI0RTogUUdBcnJheTo6flFHQXJyYXkodm9pZCkgKHRvb2xzL3FnYXJyYXkuY3BwOjE0OSkKKyAgIGJ5IDB4NEMyNjFDNDE6IFBwdERvYzo6flBwdERvYyh2b2lkKSAoaW5jbHVkZS9xbWVtYXJyYXkuaDo2MCkKKyAgIGJ5IDB4NEMyNjFGMEU6IFBwdFhtbDo6flBwdFhtbCh2b2lkKSAocHB0eG1sLmNjOjQ0KQorIEFkZHJlc3MgMHg0QkIyOTJBOCBpcyAwIGJ5dGVzIGluc2lkZSBhIGJsb2NrIG9mIHNpemUgNjQgYWxsb2MnZAorICAgYXQgMHg0MDA0MzE4Qzogb3BlcmF0b3IgbmV3W10odW5zaWduZWQgaW50KSAodmdfY2xpZW50ZnVuY3MuYzoxNTIpCisgICBieSAweDRDMjFCQzE1OiBLTGFvbGE6OnJlYWRTQlN0cmVhbShpbnQpIGNvbnN0IChrbGFvbGEuY2M6MzE0KQorICAgYnkgMHg0QzIxQzE1NTogS0xhb2xhOjpzdHJlYW0oS0xhb2xhOjpPTEVOb2RlIGNvbnN0ICopIChrbGFvbGEuY2M6NDE2KQorICAgYnkgMHg0QzIxNzg4RjogT0xFRmlsdGVyOjpjb252ZXJ0KFFDU3RyaW5nIGNvbnN0ICZhbXA7KSAob2xlZmlsdGVyLmNjOjI3MikKKzwvcHJlPgorPHA+SW4gPGNvZGUgY2xhc3M9ImxpdGVyYWwiPkMrKzwvY29kZT4gaXQncyBpbXBvcnRhbnQgdG8gZGVhbGxvY2F0ZSBtZW1vcnkgaW4gYQord2F5IGNvbXBhdGlibGUgd2l0aCBob3cgaXQgd2FzIGFsbG9jYXRlZC4gIFRoZSBkZWFsIGlzOjwvcD4KKzxkaXYgY2xhc3M9Iml0ZW1pemVkbGlzdCI+PHVsIGNsYXNzPSJpdGVtaXplZGxpc3QiIHN0eWxlPSJsaXN0LXN0eWxlLXR5cGU6IGRpc2M7ICI+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5JZiBhbGxvY2F0ZWQgd2l0aAorICAgIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+bWFsbG9jPC9jb2RlPiwKKyAgICA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPmNhbGxvYzwvY29kZT4sCisgICAgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5yZWFsbG9jPC9jb2RlPiwKKyAgICA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPnZhbGxvYzwvY29kZT4gb3IKKyAgICA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPm1lbWFsaWduPC9jb2RlPiwgeW91IG11c3QKKyAgICBkZWFsbG9jYXRlIHdpdGggPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5mcmVlPC9jb2RlPi48L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPklmIGFsbG9jYXRlZCB3aXRoIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+bmV3PC9jb2RlPiwgeW91IG11c3QgZGVhbGxvY2F0ZQorICAgd2l0aCA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPmRlbGV0ZTwvY29kZT4uPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5JZiBhbGxvY2F0ZWQgd2l0aCA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPm5ld1tdPC9jb2RlPiwgeW91IG11c3QKKyAgICBkZWFsbG9jYXRlIHdpdGggPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5kZWxldGVbXTwvY29kZT4uPC9wPjwvbGk+Cis8L3VsPjwvZGl2PgorPHA+VGhlIHdvcnN0IHRoaW5nIGlzIHRoYXQgb24gTGludXggYXBwYXJlbnRseSBpdCBkb2Vzbid0IG1hdHRlciBpZgoreW91IGRvIG1peCB0aGVzZSB1cCwgYnV0IHRoZSBzYW1lIHByb2dyYW0gbWF5IHRoZW4gY3Jhc2ggb24gYQorZGlmZmVyZW50IHBsYXRmb3JtLCBTb2xhcmlzIGZvciBleGFtcGxlLiAgU28gaXQncyBiZXN0IHRvIGZpeCBpdAorcHJvcGVybHkuICBBY2NvcmRpbmcgdG8gdGhlIEtERSBmb2xrcyAiaXQncyBhbWF6aW5nIGhvdyBtYW55IEMrKworcHJvZ3JhbW1lcnMgZG9uJ3Qga25vdyB0aGlzIi48L3A+Cis8cD5UaGUgcmVhc29uIGJlaGluZCB0aGUgcmVxdWlyZW1lbnQgaXMgYXMgZm9sbG93cy4gIEluIHNvbWUgQysrCitpbXBsZW1lbnRhdGlvbnMsIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+ZGVsZXRlW108L2NvZGU+IG11c3QgYmUgdXNlZCBmb3IKK29iamVjdHMgYWxsb2NhdGVkIGJ5IDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+bmV3W108L2NvZGU+IGJlY2F1c2UgdGhlIGNvbXBpbGVyCitzdG9yZXMgdGhlIHNpemUgb2YgdGhlIGFycmF5IGFuZCB0aGUgcG9pbnRlci10by1tZW1iZXIgdG8gdGhlCitkZXN0cnVjdG9yIG9mIHRoZSBhcnJheSdzIGNvbnRlbnQganVzdCBiZWZvcmUgdGhlIHBvaW50ZXIgYWN0dWFsbHkKK3JldHVybmVkLiAgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5kZWxldGU8L2NvZGU+IGRvZXNuJ3QgYWNjb3VudCBmb3IgdGhpcyBhbmQgd2lsbCBnZXQKK2NvbmZ1c2VkLCBwb3NzaWJseSBjb3JydXB0aW5nIHRoZSBoZWFwLjwvcD4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDIiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJtYy1tYW51YWwub3ZlcmxhcCI+PC9hPjQuMi42LqBPdmVybGFwcGluZyBzb3VyY2UgYW5kIGRlc3RpbmF0aW9uIGJsb2NrczwvaDM+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD5UaGUgZm9sbG93aW5nIEMgbGlicmFyeSBmdW5jdGlvbnMgY29weSBzb21lIGRhdGEgZnJvbSBvbmUKK21lbW9yeSBibG9jayB0byBhbm90aGVyIChvciBzb21ldGhpbmcgc2ltaWxhcik6Cis8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPm1lbWNweTwvY29kZT4sCis8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPnN0cmNweTwvY29kZT4sCis8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPnN0cm5jcHk8L2NvZGU+LAorPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5zdHJjYXQ8L2NvZGU+LAorPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5zdHJuY2F0PC9jb2RlPi4gCitUaGUgYmxvY2tzIHBvaW50ZWQgdG8gYnkgdGhlaXIgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5zcmM8L2NvZGU+IGFuZAorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5kc3Q8L2NvZGU+IHBvaW50ZXJzIGFyZW4ndCBhbGxvd2VkIHRvIG92ZXJsYXAuCitUaGUgUE9TSVggc3RhbmRhcmRzIGhhdmUgd29yZGluZyBhbG9uZyB0aGUgbGluZXMgIklmIGNvcHlpbmcgdGFrZXMgcGxhY2UKK2JldHdlZW4gb2JqZWN0cyB0aGF0IG92ZXJsYXAsIHRoZSBiZWhhdmlvciBpcyB1bmRlZmluZWQuIiBUaGVyZWZvcmUsCitNZW1jaGVjayBjaGVja3MgZm9yIHRoaXMuCis8L3A+Cis8cD5Gb3IgZXhhbXBsZTo8L3A+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Cis9PTI3NDkyPT0gU291cmNlIGFuZCBkZXN0aW5hdGlvbiBvdmVybGFwIGluIG1lbWNweSgweGJmZmZmMjk0LCAweGJmZmZmMjgwLCAyMSkKKz09Mjc0OTI9PSAgICBhdCAweDQwMDI2Q0RDOiBtZW1jcHkgKG1jX3JlcGxhY2Vfc3RybWVtLmM6NzEpCis9PTI3NDkyPT0gICAgYnkgMHg4MDQ4NjVBOiBtYWluIChvdmVybGFwLmM6NDApCis8L3ByZT4KKzxwPllvdSBkb24ndCB3YW50IHRoZSB0d28gYmxvY2tzIHRvIG92ZXJsYXAgYmVjYXVzZSBvbmUgb2YgdGhlbSBjb3VsZAorZ2V0IHBhcnRpYWxseSBvdmVyd3JpdHRlbiBieSB0aGUgY29weWluZy48L3A+Cis8cD5Zb3UgbWlnaHQgdGhpbmsgdGhhdCBNZW1jaGVjayBpcyBiZWluZyBvdmVybHkgcGVkYW50aWMgcmVwb3J0aW5nCit0aGlzIGluIHRoZSBjYXNlIHdoZXJlIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+ZHN0PC9jb2RlPiBpcyBsZXNzIHRoYW4KKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+c3JjPC9jb2RlPi4gIEZvciBleGFtcGxlLCB0aGUgb2J2aW91cyB3YXkgdG8KK2ltcGxlbWVudCA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPm1lbWNweTwvY29kZT4gaXMgYnkgY29weWluZyBmcm9tIHRoZSBmaXJzdAorYnl0ZSB0byB0aGUgbGFzdC4gIEhvd2V2ZXIsIHRoZSBvcHRpbWlzYXRpb24gZ3VpZGVzIG9mIHNvbWUKK2FyY2hpdGVjdHVyZXMgcmVjb21tZW5kIGNvcHlpbmcgZnJvbSB0aGUgbGFzdCBieXRlIGRvd24gdG8gdGhlIGZpcnN0LgorQWxzbywgc29tZSBpbXBsZW1lbnRhdGlvbnMgb2YgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5tZW1jcHk8L2NvZGU+IHplcm8KKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+ZHN0PC9jb2RlPiBiZWZvcmUgY29weWluZywgYmVjYXVzZSB6ZXJvaW5nIHRoZQorZGVzdGluYXRpb24ncyBjYWNoZSBsaW5lKHMpIGNhbiBpbXByb3ZlIHBlcmZvcm1hbmNlLjwvcD4KKzxwPlRoZSBtb3JhbCBvZiB0aGUgc3RvcnkgaXM6IGlmIHlvdSB3YW50IHRvIHdyaXRlIHRydWx5IHBvcnRhYmxlCitjb2RlLCBkb24ndCBtYWtlIGFueSBhc3N1bXB0aW9ucyBhYm91dCB0aGUgbGFuZ3VhZ2UKK2ltcGxlbWVudGF0aW9uLjwvcD4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDIiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJtYy1tYW51YWwuZmlzaHl2YWx1ZSI+PC9hPjQuMi43LqBGaXNoeSBhcmd1bWVudCB2YWx1ZXM8L2gzPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+QWxsIG1lbW9yeSBhbGxvY2F0aW9uIGZ1bmN0aW9ucyB0YWtlIGFuIGFyZ3VtZW50IHNwZWNpZnlpbmcgdGhlCitzaXplIG9mIHRoZSBtZW1vcnkgYmxvY2sgdGhhdCBzaG91bGQgYmUgYWxsb2NhdGVkLiBDbGVhcmx5LCB0aGUgcmVxdWVzdGVkCitzaXplIHNob3VsZCBiZSBhIG5vbi1uZWdhdGl2ZSB2YWx1ZSBhbmQgaXMgdHlwaWNhbGx5IG5vdCBleGNlc3NpdmVseSBsYXJnZS4gCitGb3IgaW5zdGFuY2UsIGl0IGlzIGV4dHJlbWVseSB1bmxpa2x5IHRoYXQgdGhlIHNpemUgb2YgYW4gYWxsb2NhdGlvbgorcmVxdWVzdCBleGNlZWRzIDIqKjYzIGJ5dGVzIG9uIGEgNjQtYml0IG1hY2hpbmUuIEl0IGlzIG11Y2ggbW9yZSBsaWtlbHkgdGhhdAorc3VjaCBhIHZhbHVlIGlzIHRoZSByZXN1bHQgb2YgYW4gZXJyb25lb3VzIHNpemUgY2FsY3VsYXRpb24gYW5kIGlzIGluIGVmZmVjdAorYSBuZWdhdGl2ZSB2YWx1ZSAodGhhdCBqdXN0IGhhcHBlbnMgdG8gYXBwZWFyIGV4Y2Vzc2l2ZWx5IGxhcmdlIGJlY2F1c2UKK3RoZSBiaXQgcGF0dGVybiBpcyBpbnRlcnByZXRlZCBhcyBhbiB1bnNpZ25lZCBpbnRlZ2VyKS4KK1N1Y2ggYSB2YWx1ZSBpcyBjYWxsZWQgYSAiZmlzaHkgdmFsdWUiLgorCitUaGUgPGNvZGUgY2xhc3M9InZhcm5hbWUiPnNpemU8L2NvZGU+IGFyZ3VtZW50IG9mIHRoZSBmb2xsb3dpbmcgYWxsb2NhdGlvbiBmdW5jdGlvbnMKK2lzIGNoZWNrZWQgZm9yIGJlaW5nIGZpc2h5OgorPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5tYWxsb2M8L2NvZGU+LAorPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5jYWxsb2M8L2NvZGU+LAorPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5yZWFsbG9jPC9jb2RlPiwKKzxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+bWVtYWxpZ248L2NvZGU+LAorPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5uZXc8L2NvZGU+LAorPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5uZXcgW108L2NvZGU+LiAKKzxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+X19idWlsdGluX25ldzwvY29kZT4sCis8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPl9fYnVpbHRpbl92ZWNfbmV3PC9jb2RlPiwKK0ZvciA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPmNhbGxvYzwvY29kZT4gYm90aCBhcmd1bWVudHMgYXJlIGJlaW5nIGNoZWNrZWQuCis8L3A+Cis8cD5Gb3IgZXhhbXBsZTo8L3A+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Cis9PTMyMjMzPT0gQXJndW1lbnQgJ3NpemUnIG9mIGZ1bmN0aW9uIG1hbGxvYyBoYXMgYSBmaXNoeSAocG9zc2libHkgbmVnYXRpdmUpIHZhbHVlOiAtMworPT0zMjIzMz09ICAgIGF0IDB4NEMyQ0ZBNzogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOjI5OCkKKz09MzIyMzM9PSAgICBieSAweDQwMDU1NTogZm9vIChmaXNoeS5jOjE1KQorPT0zMjIzMz09ICAgIGJ5IDB4NDAwNTgzOiBtYWluIChmaXNoeS5jOjIzKQorPC9wcmU+Cis8cD5JbiBlYXJsaWVyIFZhbGdyaW5kIHZlcnNpb25zIHRob3NlIHZhbHVlcyB3ZXJlIGJlaW5nIHJlZmVycmVkIHRvCithcyAic2lsbHkgYXJndW1lbnRzIiBhbmQgbm8gYmFjay10cmFjZSB3YXMgaW5jbHVkZWQuCis8L3A+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0ibWMtbWFudWFsLmxlYWtzIj48L2E+NC4yLjguoE1lbW9yeSBsZWFrIGRldGVjdGlvbjwvaDM+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD5NZW1jaGVjayBrZWVwcyB0cmFjayBvZiBhbGwgaGVhcCBibG9ja3MgaXNzdWVkIGluIHJlc3BvbnNlIHRvCitjYWxscyB0bworPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5tYWxsb2M8L2NvZGU+Lzxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+bmV3PC9jb2RlPiBldCBhbC4KK1NvIHdoZW4gdGhlIHByb2dyYW0gZXhpdHMsIGl0IGtub3dzIHdoaWNoIGJsb2NrcyBoYXZlIG5vdCBiZWVuIGZyZWVkLgorPC9wPgorPHA+SWYgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1sZWFrLWNoZWNrPC9jb2RlPiBpcyBzZXQgYXBwcm9wcmlhdGVseSwgZm9yIGVhY2gKK3JlbWFpbmluZyBibG9jaywgTWVtY2hlY2sgZGV0ZXJtaW5lcyBpZiB0aGUgYmxvY2sgaXMgcmVhY2hhYmxlIGZyb20gcG9pbnRlcnMKK3dpdGhpbiB0aGUgcm9vdC1zZXQuICBUaGUgcm9vdC1zZXQgY29uc2lzdHMgb2YgKGEpIGdlbmVyYWwgcHVycG9zZSByZWdpc3RlcnMKK29mIGFsbCB0aHJlYWRzLCBhbmQgKGIpIGluaXRpYWxpc2VkLCBhbGlnbmVkLCBwb2ludGVyLXNpemVkIGRhdGEgd29yZHMgaW4KK2FjY2Vzc2libGUgY2xpZW50IG1lbW9yeSwgaW5jbHVkaW5nIHN0YWNrcy48L3A+Cis8cD5UaGVyZSBhcmUgdHdvIHdheXMgYSBibG9jayBjYW4gYmUgcmVhY2hlZC4gIFRoZSBmaXJzdCBpcyB3aXRoIGEKKyJzdGFydC1wb2ludGVyIiwgaS5lLiBhIHBvaW50ZXIgdG8gdGhlIHN0YXJ0IG9mIHRoZSBibG9jay4gIFRoZSBzZWNvbmQgaXMgd2l0aAorYW4gImludGVyaW9yLXBvaW50ZXIiLCBpLmUuIGEgcG9pbnRlciB0byB0aGUgbWlkZGxlIG9mIHRoZSBibG9jay4gIFRoZXJlIGFyZQorc2V2ZXJhbCB3YXlzIHdlIGtub3cgb2YgdGhhdCBhbiBpbnRlcmlvci1wb2ludGVyIGNhbiBvY2N1cjo8L3A+Cis8ZGl2IGNsYXNzPSJpdGVtaXplZGxpc3QiPjx1bCBjbGFzcz0iaXRlbWl6ZWRsaXN0IiBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOiBkaXNjOyAiPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+VGhlIHBvaW50ZXIgbWlnaHQgaGF2ZSBvcmlnaW5hbGx5IGJlZW4gYSBzdGFydC1wb2ludGVyIGFuZCBoYXZlIGJlZW4KKyAgICBtb3ZlZCBhbG9uZyBkZWxpYmVyYXRlbHkgKG9yIG5vdCBkZWxpYmVyYXRlbHkpIGJ5IHRoZSBwcm9ncmFtLiAgSW4KKyAgICBwYXJ0aWN1bGFyLCB0aGlzIGNhbiBoYXBwZW4gaWYgeW91ciBwcm9ncmFtIHVzZXMgdGFnZ2VkIHBvaW50ZXJzLCBpLmUuCisgICAgaWYgaXQgdXNlcyB0aGUgYm90dG9tIG9uZSwgdHdvIG9yIHRocmVlIGJpdHMgb2YgYSBwb2ludGVyLCB3aGljaCBhcmUKKyAgICBub3JtYWxseSBhbHdheXMgemVybyBkdWUgdG8gYWxpZ25tZW50LCBpbiBvcmRlciB0byBzdG9yZSBleHRyYQorICAgIGluZm9ybWF0aW9uLjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+SXQgbWlnaHQgYmUgYSByYW5kb20ganVuayB2YWx1ZSBpbiBtZW1vcnksIGVudGlyZWx5IHVucmVsYXRlZCwganVzdAorICAgIGEgY29pbmNpZGVuY2UuPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5JdCBtaWdodCBiZSBhIHBvaW50ZXIgdG8gdGhlIGlubmVyIGNoYXIgYXJyYXkgb2YgYSBDKysKKyAgICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPnN0ZDo6c3RyaW5nPC9jb2RlPi4gIEZvciBleGFtcGxlLCBzb21lCisgICAgY29tcGlsZXJzIGFkZCAzIHdvcmRzIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHN0ZDo6c3RyaW5nIHRvCisgICAgc3RvcmUgdGhlIGxlbmd0aCwgdGhlIGNhcGFjaXR5IGFuZCBhIHJlZmVyZW5jZSBjb3VudCBiZWZvcmUgdGhlCisgICAgbWVtb3J5IGNvbnRhaW5pbmcgdGhlIGFycmF5IG9mIGNoYXJhY3RlcnMuIFRoZXkgcmV0dXJuIGEgcG9pbnRlcgorICAgIGp1c3QgYWZ0ZXIgdGhlc2UgMyB3b3JkcywgcG9pbnRpbmcgYXQgdGhlIGNoYXIgYXJyYXkuPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5Tb21lIGNvZGUgbWlnaHQgYWxsb2NhdGUgYSBibG9jayBvZiBtZW1vcnksIGFuZCB1c2UgdGhlIGZpcnN0IDgKKyAgICBieXRlcyB0byBzdG9yZSAoYmxvY2sgc2l6ZSAtIDgpIGFzIGEgNjRiaXQgbnVtYmVyLgorICAgIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+c3FsaXRlM01lbU1hbGxvYzwvY29kZT4gZG9lcyB0aGlzLjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+SXQgbWlnaHQgYmUgYSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIEMrKyBvYmplY3RzICh3aGljaCBwb3NzZXNzCisgICAgZGVzdHJ1Y3RvcnMpIGFsbG9jYXRlZCB3aXRoIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+bmV3W108L2NvZGU+LiAgSW4KKyAgICB0aGlzIGNhc2UsIHNvbWUgY29tcGlsZXJzIHN0b3JlIGEgIm1hZ2ljIGNvb2tpZSIgY29udGFpbmluZyB0aGUgYXJyYXkKKyAgICBsZW5ndGggYXQgdGhlIHN0YXJ0IG9mIHRoZSBhbGxvY2F0ZWQgYmxvY2ssIGFuZCByZXR1cm4gYSBwb2ludGVyIHRvIGp1c3QKKyAgICBwYXN0IHRoYXQgbWFnaWMgY29va2llLCBpLmUuIGFuIGludGVyaW9yLXBvaW50ZXIuCisgICAgU2VlIDxhIGNsYXNzPSJ1bGluayIgaHJlZj0iaHR0cDovL3RoZW9yeS51d2lubmlwZWcuY2EvZ251L2djYy9neHhpbnRfMTQuaHRtbCIgdGFyZ2V0PSJfdG9wIj50aGlzCisgICAgcGFnZTwvYT4gZm9yIG1vcmUgaW5mb3JtYXRpb24uPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5JdCBtaWdodCBiZSBhIHBvaW50ZXIgdG8gYW4gaW5uZXIgcGFydCBvZiBhIEMrKyBvYmplY3QgdXNpbmcKKyAgICBtdWx0aXBsZSBpbmhlcml0YW5jZS4gPC9wPjwvbGk+Cis8L3VsPjwvZGl2PgorPHA+WW91IGNhbiBvcHRpb25hbGx5IGFjdGl2YXRlIGhldXJpc3RpY3MgdG8gdXNlIGR1cmluZyB0aGUgbGVhaworc2VhcmNoIHRvIGRldGVjdCB0aGUgaW50ZXJpb3IgcG9pbnRlcnMgY29ycmVzcG9uZGluZyB0bwordGhlIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+c3Rkc3RyaW5nPC9jb2RlPiwKKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+bGVuZ3RoNjQ8L2NvZGU+LAorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5uZXdhcnJheTwvY29kZT4KK2FuZCA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPm11bHRpcGxlaW5oZXJpdGFuY2U8L2NvZGU+IGNhc2VzLiBJZiB0aGUKK2hldXJpc3RpYyBkZXRlY3RzIHRoYXQgYW4gaW50ZXJpb3IgcG9pbnRlciBjb3JyZXNwb25kcyB0byBzdWNoIGEgY2FzZSwKK3RoZSBibG9jayB3aWxsIGJlIGNvbnNpZGVyZWQgYXMgcmVhY2hhYmxlIGJ5IHRoZSBpbnRlcmlvcgorcG9pbnRlci4gSW4gb3RoZXIgd29yZHMsIHRoZSBpbnRlcmlvciBwb2ludGVyIHdpbGwgYmUgdHJlYXRlZAorYXMgaWYgaXQgd2VyZSBhIHN0YXJ0IHBvaW50ZXIuPC9wPgorPHA+V2l0aCB0aGF0IGluIG1pbmQsIGNvbnNpZGVyIHRoZSBuaW5lIHBvc3NpYmxlIGNhc2VzIGRlc2NyaWJlZCBieSB0aGUKK2ZvbGxvd2luZyBmaWd1cmUuPC9wPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPgorICAgICBQb2ludGVyIGNoYWluICAgICAgICAgICAgQUFBIExlYWsgQ2FzZSAgIEJCQiBMZWFrIENhc2UKKyAgICAgLS0tLS0tLS0tLS0tLSAgICAgICAgICAgIC0tLS0tLS0tLS0tLS0gICAtLS0tLS0tLS0tLS0tCisoMSkgIFJSUiAtLS0tLS0tLS0tLS0mZ3Q7IEJCQiAgICAgICAgICAgICAgICAgICAgRFIKKygyKSAgUlJSIC0tLSZndDsgQUFBIC0tLSZndDsgQkJCICAgIERSICAgICAgICAgICAgICBJUgorKDMpICBSUlIgICAgICAgICAgICAgICBCQkIgICAgICAgICAgICAgICAgICAgIERMCisoNCkgIFJSUiAgICAgIEFBQSAtLS0mZ3Q7IEJCQiAgICBETCAgICAgICAgICAgICAgSUwKKyg1KSAgUlJSIC0tLS0tLT8tLS0tLSZndDsgQkJCICAgICAgICAgICAgICAgICAgICAoeSlEUiwgKG4pREwKKyg2KSAgUlJSIC0tLSZndDsgQUFBIC0/LSZndDsgQkJCICAgIERSICAgICAgICAgICAgICAoeSlJUiwgKG4pREwKKyg3KSAgUlJSIC0/LSZndDsgQUFBIC0tLSZndDsgQkJCICAgICh5KURSLCAobilETCAgICAoeSlJUiwgKG4pSUwKKyg4KSAgUlJSIC0/LSZndDsgQUFBIC0/LSZndDsgQkJCICAgICh5KURSLCAobilETCAgICAoeSx5KUlSLCAobix5KUlMLCAoXyxuKURMCisoOSkgIFJSUiAgICAgIEFBQSAtPy0mZ3Q7IEJCQiAgICBETCAgICAgICAgICAgICAgKHkpSUwsIChuKURMCisKK1BvaW50ZXIgY2hhaW4gbGVnZW5kOgorLSBSUlI6IGEgcm9vdCBzZXQgbm9kZSBvciBEUiBibG9jaworLSBBQUEsIEJCQjogaGVhcCBibG9ja3MKKy0gLS0tJmd0OzogYSBzdGFydC1wb2ludGVyCistIC0/LSZndDs6IGFuIGludGVyaW9yLXBvaW50ZXIKKworTGVhayBDYXNlIGxlZ2VuZDoKKy0gRFI6IERpcmVjdGx5IHJlYWNoYWJsZQorLSBJUjogSW5kaXJlY3RseSByZWFjaGFibGUKKy0gREw6IERpcmVjdGx5IGxvc3QKKy0gSUw6IEluZGlyZWN0bHkgbG9zdAorLSAoeSlYWTogaXQncyBYWSBpZiB0aGUgaW50ZXJpb3ItcG9pbnRlciBpcyBhIHJlYWwgcG9pbnRlcgorLSAobilYWTogaXQncyBYWSBpZiB0aGUgaW50ZXJpb3ItcG9pbnRlciBpcyBub3QgYSByZWFsIHBvaW50ZXIKKy0gKF8pWFk6IGl0J3MgWFkgaW4gZWl0aGVyIGNhc2UKKzwvcHJlPgorPHA+RXZlcnkgcG9zc2libGUgY2FzZSBjYW4gYmUgcmVkdWNlZCB0byBvbmUgb2YgdGhlIGFib3ZlIG5pbmUuICBNZW1jaGVjaworbWVyZ2VzIHNvbWUgb2YgdGhlc2UgY2FzZXMgaW4gaXRzIG91dHB1dCwgcmVzdWx0aW5nIGluIHRoZSBmb2xsb3dpbmcgZm91cgorbGVhayBraW5kcy48L3A+Cis8ZGl2IGNsYXNzPSJpdGVtaXplZGxpc3QiPjx1bCBjbGFzcz0iaXRlbWl6ZWRsaXN0IiBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOiBkaXNjOyAiPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+IlN0aWxsIHJlYWNoYWJsZSIuIFRoaXMgY292ZXJzIGNhc2VzIDEgYW5kIDIgKGZvciB0aGUgQkJCIGJsb2NrcykKKyAgICBhYm92ZS4gIEEgc3RhcnQtcG9pbnRlciBvciBjaGFpbiBvZiBzdGFydC1wb2ludGVycyB0byB0aGUgYmxvY2sgaXMKKyAgICBmb3VuZC4gIFNpbmNlIHRoZSBibG9jayBpcyBzdGlsbCBwb2ludGVkIGF0LCB0aGUgcHJvZ3JhbW1lciBjb3VsZCwgYXQKKyAgICBsZWFzdCBpbiBwcmluY2lwbGUsIGhhdmUgZnJlZWQgaXQgYmVmb3JlIHByb2dyYW0gZXhpdC4gICJTdGlsbCByZWFjaGFibGUiCisgICAgYmxvY2tzIGFyZSB2ZXJ5IGNvbW1vbiBhbmQgYXJndWFibHkgbm90IGEgcHJvYmxlbS4gU28sIGJ5IGRlZmF1bHQsCisgICAgTWVtY2hlY2sgd29uJ3QgcmVwb3J0IHN1Y2ggYmxvY2tzIGluZGl2aWR1YWxseS48L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPiJEZWZpbml0ZWx5IGxvc3QiLiAgVGhpcyBjb3ZlcnMgY2FzZSAzIChmb3IgdGhlIEJCQiBibG9ja3MpIGFib3ZlLgorICAgIFRoaXMgbWVhbnMgdGhhdCBubyBwb2ludGVyIHRvIHRoZSBibG9jayBjYW4gYmUgZm91bmQuICBUaGUgYmxvY2sgaXMKKyAgICBjbGFzc2lmaWVkIGFzICJsb3N0IiwgYmVjYXVzZSB0aGUgcHJvZ3JhbW1lciBjb3VsZCBub3QgcG9zc2libHkgaGF2ZQorICAgIGZyZWVkIGl0IGF0IHByb2dyYW0gZXhpdCwgc2luY2Ugbm8gcG9pbnRlciB0byBpdCBleGlzdHMuICBUaGlzIGlzIGxpa2VseQorICAgIGEgc3ltcHRvbSBvZiBoYXZpbmcgbG9zdCB0aGUgcG9pbnRlciBhdCBzb21lIGVhcmxpZXIgcG9pbnQgaW4gdGhlCisgICAgcHJvZ3JhbS4gIFN1Y2ggY2FzZXMgc2hvdWxkIGJlIGZpeGVkIGJ5IHRoZSBwcm9ncmFtbWVyLjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+IkluZGlyZWN0bHkgbG9zdCIuICBUaGlzIGNvdmVycyBjYXNlcyA0IGFuZCA5IChmb3IgdGhlIEJCQiBibG9ja3MpCisgICAgYWJvdmUuICBUaGlzIG1lYW5zIHRoYXQgdGhlIGJsb2NrIGlzIGxvc3QsIG5vdCBiZWNhdXNlIHRoZXJlIGFyZSBubworICAgIHBvaW50ZXJzIHRvIGl0LCBidXQgcmF0aGVyIGJlY2F1c2UgYWxsIHRoZSBibG9ja3MgdGhhdCBwb2ludCB0byBpdCBhcmUKKyAgICB0aGVtc2VsdmVzIGxvc3QuICBGb3IgZXhhbXBsZSwgaWYgeW91IGhhdmUgYSBiaW5hcnkgdHJlZSBhbmQgdGhlIHJvb3QKKyAgICBub2RlIGlzIGxvc3QsIGFsbCBpdHMgY2hpbGRyZW4gbm9kZXMgd2lsbCBiZSBpbmRpcmVjdGx5IGxvc3QuICBCZWNhdXNlCisgICAgdGhlIHByb2JsZW0gd2lsbCBkaXNhcHBlYXIgaWYgdGhlIGRlZmluaXRlbHkgbG9zdCBibG9jayB0aGF0IGNhdXNlZCB0aGUKKyAgICBpbmRpcmVjdCBsZWFrIGlzIGZpeGVkLCBNZW1jaGVjayB3b24ndCByZXBvcnQgc3VjaCBibG9ja3MgaW5kaXZpZHVhbGx5CisgICAgYnkgZGVmYXVsdC48L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPiJQb3NzaWJseSBsb3N0Ii4gIFRoaXMgY292ZXJzIGNhc2VzIDUtLTggKGZvciB0aGUgQkJCIGJsb2NrcykKKyAgICBhYm92ZS4gIFRoaXMgbWVhbnMgdGhhdCBhIGNoYWluIG9mIG9uZSBvciBtb3JlIHBvaW50ZXJzIHRvIHRoZSBibG9jayBoYXMKKyAgICBiZWVuIGZvdW5kLCBidXQgYXQgbGVhc3Qgb25lIG9mIHRoZSBwb2ludGVycyBpcyBhbiBpbnRlcmlvci1wb2ludGVyLgorICAgIFRoaXMgY291bGQganVzdCBiZSBhIHJhbmRvbSB2YWx1ZSBpbiBtZW1vcnkgdGhhdCBoYXBwZW5zIHRvIHBvaW50IGludG8gYQorICAgIGJsb2NrLCBhbmQgc28geW91IHNob3VsZG4ndCBjb25zaWRlciB0aGlzIG9rIHVubGVzcyB5b3Uga25vdyB5b3UgaGF2ZQorICAgIGludGVyaW9yLXBvaW50ZXJzLjwvcD48L2xpPgorPC91bD48L2Rpdj4KKzxwPihOb3RlOiBUaGlzIG1hcHBpbmcgb2YgdGhlIG5pbmUgcG9zc2libGUgY2FzZXMgb250byBmb3VyIGxlYWsga2luZHMgaXMKK25vdCBuZWNlc3NhcmlseSB0aGUgYmVzdCB3YXkgdGhhdCBsZWFrcyBjb3VsZCBiZSByZXBvcnRlZDsgIGluIHBhcnRpY3VsYXIsCitpbnRlcmlvci1wb2ludGVycyBhcmUgdHJlYXRlZCBpbmNvbnNpc3RlbnRseS4gIEl0IGlzIHBvc3NpYmxlIHRoZQorY2F0ZWdvcmlzYXRpb24gbWF5IGJlIGltcHJvdmVkIGluIHRoZSBmdXR1cmUuKTwvcD4KKzxwPkZ1cnRoZXJtb3JlLCBpZiBzdXBwcmVzc2lvbnMgZXhpc3RzIGZvciBhIGJsb2NrLCBpdCB3aWxsIGJlIHJlcG9ydGVkCithcyAic3VwcHJlc3NlZCIgbm8gbWF0dGVyIHdoYXQgd2hpY2ggb2YgdGhlIGFib3ZlIGZvdXIga2luZHMgaXQgYmVsb25ncwordG8uPC9wPgorPHA+VGhlIGZvbGxvd2luZyBpcyBhbiBleGFtcGxlIGxlYWsgc3VtbWFyeS48L3A+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CitMRUFLIFNVTU1BUlk6CisgICBkZWZpbml0ZWx5IGxvc3Q6IDQ4IGJ5dGVzIGluIDMgYmxvY2tzLgorICAgaW5kaXJlY3RseSBsb3N0OiAzMiBieXRlcyBpbiAyIGJsb2Nrcy4KKyAgICAgcG9zc2libHkgbG9zdDogOTYgYnl0ZXMgaW4gNiBibG9ja3MuCisgICBzdGlsbCByZWFjaGFibGU6IDY0IGJ5dGVzIGluIDQgYmxvY2tzLgorICAgICAgICBzdXBwcmVzc2VkOiAwIGJ5dGVzIGluIDAgYmxvY2tzLgorPC9wcmU+Cis8cD5JZiBoZXVyaXN0aWNzIGhhdmUgYmVlbiB1c2VkIHRvIGNvbnNpZGVyIHNvbWUgYmxvY2tzIGFzCityZWFjaGFibGUsIHRoZSBsZWFrIHN1bW1hcnkgZGV0YWlscyB0aGUgaGV1cmlzdGljYWxseSByZWFjaGFibGUgc3Vic2V0CitvZiAnc3RpbGwgcmVhY2hhYmxlOicgcGVyIGhldXJpc3RpYy4gSW4gdGhlIGJlbG93IGV4YW1wbGUsIG9mIHRoZSA5NQorYnl0ZXMgc3RpbGwgcmVhY2hhYmxlLCA4NyBieXRlcyAoNTYrNys4KzE2KSBoYXZlIGJlZW4gY29uc2lkZXJlZAoraGV1cmlzdGljYWxseSByZWFjaGFibGUuCis8L3A+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CitMRUFLIFNVTU1BUlk6CisgICBkZWZpbml0ZWx5IGxvc3Q6IDQgYnl0ZXMgaW4gMSBibG9ja3MKKyAgIGluZGlyZWN0bHkgbG9zdDogMCBieXRlcyBpbiAwIGJsb2NrcworICAgICBwb3NzaWJseSBsb3N0OiAwIGJ5dGVzIGluIDAgYmxvY2tzCisgICBzdGlsbCByZWFjaGFibGU6IDk1IGJ5dGVzIGluIDYgYmxvY2tzCisgICAgICAgICAgICAgICAgICAgICAgb2Ygd2hpY2ggcmVhY2hhYmxlIHZpYSBoZXVyaXN0aWM6CisgICAgICAgICAgICAgICAgICAgICAgICBzdGRzdHJpbmcgICAgICAgICAgOiA1NiBieXRlcyBpbiAyIGJsb2NrcworICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoNjQgICAgICAgICAgIDogMTYgYnl0ZXMgaW4gMSBibG9ja3MKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld2FycmF5ICAgICAgICAgICA6IDcgYnl0ZXMgaW4gMSBibG9ja3MKKyAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxlaW5oZXJpdGFuY2U6IDggYnl0ZXMgaW4gMSBibG9ja3MKKyAgICAgICAgc3VwcHJlc3NlZDogMCBieXRlcyBpbiAwIGJsb2NrcworPC9wcmU+Cis8cD5JZiA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWxlYWstY2hlY2s9ZnVsbDwvY29kZT4gaXMgc3BlY2lmaWVkLAorTWVtY2hlY2sgd2lsbCBnaXZlIGRldGFpbHMgZm9yIGVhY2ggZGVmaW5pdGVseSBsb3N0IG9yIHBvc3NpYmx5IGxvc3QgYmxvY2ssCitpbmNsdWRpbmcgd2hlcmUgaXQgd2FzIGFsbG9jYXRlZC4gIChBY3R1YWxseSwgaXQgbWVyZ2VzIHJlc3VsdHMgZm9yIGFsbAorYmxvY2tzIHRoYXQgaGF2ZSB0aGUgc2FtZSBsZWFrIGtpbmQgYW5kIHN1ZmZpY2llbnRseSBzaW1pbGFyIHN0YWNrIHRyYWNlcworaW50byBhIHNpbmdsZSAibG9zcyByZWNvcmQiLiAgVGhlCis8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWxlYWstcmVzb2x1dGlvbjwvY29kZT4gbGV0cyB5b3UgY29udHJvbCB0aGUKK21lYW5pbmcgb2YgInN1ZmZpY2llbnRseSBzaW1pbGFyIi4pICBJdCBjYW5ub3QgdGVsbCB5b3Ugd2hlbiBvciBob3cgb3Igd2h5Cit0aGUgcG9pbnRlciB0byBhIGxlYWtlZCBibG9jayB3YXMgbG9zdDsgeW91IGhhdmUgdG8gd29yayB0aGF0IG91dCBmb3IKK3lvdXJzZWxmLiAgSW4gZ2VuZXJhbCwgeW91IHNob3VsZCBhdHRlbXB0IHRvIGVuc3VyZSB5b3VyIHByb2dyYW1zIGRvIG5vdAoraGF2ZSBhbnkgZGVmaW5pdGVseSBsb3N0IG9yIHBvc3NpYmx5IGxvc3QgYmxvY2tzIGF0IGV4aXQuPC9wPgorPHA+Rm9yIGV4YW1wbGU6PC9wPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPgorOCBieXRlcyBpbiAxIGJsb2NrcyBhcmUgZGVmaW5pdGVseSBsb3N0IGluIGxvc3MgcmVjb3JkIDEgb2YgMTQKKyAgIGF0IDB4Li4uLi4uLi46IG1hbGxvYyAodmdfcmVwbGFjZV9tYWxsb2MuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBtayAobGVhay10cmVlLmM6MTEpCisgICBieSAweC4uLi4uLi4uOiBtYWluIChsZWFrLXRyZWUuYzozOSkKKworODggKDggZGlyZWN0LCA4MCBpbmRpcmVjdCkgYnl0ZXMgaW4gMSBibG9ja3MgYXJlIGRlZmluaXRlbHkgbG9zdCBpbiBsb3NzIHJlY29yZCAxMyBvZiAxNAorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1rIChsZWFrLXRyZWUuYzoxMSkKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGxlYWstdHJlZS5jOjI1KQorPC9wcmU+Cis8cD5UaGUgZmlyc3QgbWVzc2FnZSBkZXNjcmliZXMgYSBzaW1wbGUgY2FzZSBvZiBhIHNpbmdsZSA4IGJ5dGUgYmxvY2sKK3RoYXQgaGFzIGJlZW4gZGVmaW5pdGVseSBsb3N0LiAgVGhlIHNlY29uZCBjYXNlIG1lbnRpb25zIGFub3RoZXIgOCBieXRlCitibG9jayB0aGF0IGhhcyBiZWVuIGRlZmluaXRlbHkgbG9zdDsgIHRoZSBkaWZmZXJlbmNlIGlzIHRoYXQgYSBmdXJ0aGVyIDgwCitieXRlcyBpbiBvdGhlciBibG9ja3MgYXJlIGluZGlyZWN0bHkgbG9zdCBiZWNhdXNlIG9mIHRoaXMgbG9zdCBibG9jay4KK1RoZSBsb3NzIHJlY29yZHMgYXJlIG5vdCBwcmVzZW50ZWQgaW4gYW55IG5vdGFibGUgb3JkZXIsIHNvIHRoZSBsb3NzIHJlY29yZAorbnVtYmVycyBhcmVuJ3QgcGFydGljdWxhcmx5IG1lYW5pbmdmdWwuIFRoZSBsb3NzIHJlY29yZCBudW1iZXJzIGNhbiBiZSB1c2VkCitpbiB0aGUgVmFsZ3JpbmQgZ2Ric2VydmVyIHRvIGxpc3QgdGhlIGFkZHJlc3NlcyBvZiB0aGUgbGVha2VkIGJsb2NrcyBhbmQvb3IgZ2l2ZQorbW9yZSBkZXRhaWxzIGFib3V0IGhvdyBhIGJsb2NrIGlzIHN0aWxsIHJlYWNoYWJsZS48L3A+Cis8cD5UaGUgb3B0aW9uIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tc2hvdy1sZWFrLWtpbmRzPSZsdDtzZXQmZ3Q7PC9jb2RlPgorY29udHJvbHMgdGhlIHNldCBvZiBsZWFrIGtpbmRzIHRvIHNob3cKK3doZW4gPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1sZWFrLWNoZWNrPWZ1bGw8L2NvZGU+IGlzIHNwZWNpZmllZC4gPC9wPgorPHA+VGhlIDxjb2RlIGNsYXNzPSJvcHRpb24iPiZsdDtzZXQmZ3Q7PC9jb2RlPiBvZiBsZWFrIGtpbmRzIGlzIHNwZWNpZmllZAoraW4gb25lIG9mIHRoZSBmb2xsb3dpbmcgd2F5czoKKworPC9wPgorPGRpdiBjbGFzcz0iaXRlbWl6ZWRsaXN0Ij48dWwgY2xhc3M9Iml0ZW1pemVkbGlzdCIgc3R5bGU9Imxpc3Qtc3R5bGUtdHlwZTogZGlzYzsgIj4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPmEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2Ygb25lIG9yIG1vcmUgb2YKKyAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj5kZWZpbml0ZSBpbmRpcmVjdCBwb3NzaWJsZSByZWFjaGFibGU8L2NvZGU+LjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+PGNvZGUgY2xhc3M9Im9wdGlvbiI+YWxsPC9jb2RlPiB0byBzcGVjaWZ5IHRoZSBjb21wbGV0ZSBzZXQgKGFsbCBsZWFrIGtpbmRzKS48L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPjxjb2RlIGNsYXNzPSJvcHRpb24iPm5vbmU8L2NvZGU+IGZvciB0aGUgZW1wdHkgc2V0LjwvcD48L2xpPgorPC91bD48L2Rpdj4KKzxwPgorCis8L3A+Cis8cD4gVGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBsZWFrIGtpbmRzIHRvIHNob3cgaXMKKyAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1zaG93LWxlYWsta2luZHM9ZGVmaW5pdGUscG9zc2libGU8L2NvZGU+LgorPC9wPgorPHA+VG8gYWxzbyBzaG93IHRoZSByZWFjaGFibGUgYW5kIGluZGlyZWN0bHkgbG9zdCBibG9ja3MgaW4KK2FkZGl0aW9uIHRvIHRoZSBkZWZpbml0ZWx5IGFuZCBwb3NzaWJseSBsb3N0IGJsb2NrcywgeW91IGNhbgordXNlIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tc2hvdy1sZWFrLWtpbmRzPWFsbDwvY29kZT4uICBUbyBvbmx5IHNob3cgdGhlCityZWFjaGFibGUgYW5kIGluZGlyZWN0bHkgbG9zdCBibG9ja3MsIHVzZQorPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1zaG93LWxlYWsta2luZHM9aW5kaXJlY3QscmVhY2hhYmxlPC9jb2RlPi4gIFRoZSByZWFjaGFibGUKK2FuZCBpbmRpcmVjdGx5IGxvc3QgYmxvY2tzIHdpbGwgdGhlbiBiZSBwcmVzZW50ZWQgYXMgc2hvd24gaW4KK3RoZSBmb2xsb3dpbmcgdHdvIGV4YW1wbGVzLjwvcD4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KKzY0IGJ5dGVzIGluIDQgYmxvY2tzIGFyZSBzdGlsbCByZWFjaGFibGUgaW4gbG9zcyByZWNvcmQgMiBvZiA0CisgICBhdCAweC4uLi4uLi4uOiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6MTc3KQorICAgYnkgMHguLi4uLi4uLjogbWsgKGxlYWstY2FzZXMuYzo1MikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGxlYWstY2FzZXMuYzo3NCkKKworMzIgYnl0ZXMgaW4gMiBibG9ja3MgYXJlIGluZGlyZWN0bHkgbG9zdCBpbiBsb3NzIHJlY29yZCAxIG9mIDQKKyAgIGF0IDB4Li4uLi4uLi46IG1hbGxvYyAodmdfcmVwbGFjZV9tYWxsb2MuYzoxNzcpCisgICBieSAweC4uLi4uLi4uOiBtayAobGVhay1jYXNlcy5jOjUyKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAobGVhay1jYXNlcy5jOjgwKQorPC9wcmU+Cis8cD5CZWNhdXNlIHRoZXJlIGFyZSBkaWZmZXJlbnQga2luZHMgb2YgbGVha3Mgd2l0aCBkaWZmZXJlbnQKK3NldmVyaXRpZXMsIGFuIGludGVyZXN0aW5nIHF1ZXN0aW9uIGlzOiB3aGljaCBsZWFrcyBzaG91bGQgYmUKK2NvdW50ZWQgYXMgdHJ1ZSAiZXJyb3JzIiBhbmQgd2hpY2ggc2hvdWxkIG5vdD8KKzwvcD4KKzxwPiBUaGUgYW5zd2VyIHRvIHRoaXMgcXVlc3Rpb24gYWZmZWN0cyB0aGUgbnVtYmVycyBwcmludGVkIGluCit0aGUgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5FUlJPUiBTVU1NQVJZPC9jb2RlPiBsaW5lLCBhbmQgYWxzbyB0aGUKK2VmZmVjdCBvZiB0aGUgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1lcnJvci1leGl0Y29kZTwvY29kZT4gb3B0aW9uLiAgRmlyc3QsIGEgbGVhaworaXMgb25seSBjb3VudGVkIGFzIGEgdHJ1ZSAiZXJyb3IiCitpZiA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWxlYWstY2hlY2s9ZnVsbDwvY29kZT4gaXMgc3BlY2lmaWVkLiAgVGhlbiwgdGhlCitvcHRpb24gPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1lcnJvcnMtZm9yLWxlYWsta2luZHM9Jmx0O3NldCZndDs8L2NvZGU+IGNvbnRyb2xzCit0aGUgc2V0IG9mIGxlYWsga2luZHMgdG8gY29uc2lkZXIgYXMgZXJyb3JzLiAgVGhlIGRlZmF1bHQgdmFsdWUKK2lzIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tZXJyb3JzLWZvci1sZWFrLWtpbmRzPWRlZmluaXRlLHBvc3NpYmxlPC9jb2RlPgorPC9wPgorPC9kaXY+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QxIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+Cis8YSBuYW1lPSJtYy1tYW51YWwub3B0aW9ucyI+PC9hPjQuMy6gTWVtY2hlY2sgQ29tbWFuZC1MaW5lIE9wdGlvbnM8L2gyPjwvZGl2PjwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij4KKzxhIG5hbWU9Im1jLm9wdHMubGlzdCI+PC9hPjxkbCBjbGFzcz0idmFyaWFibGVsaXN0Ij4KKzxkdD4KKzxhIG5hbWU9Im9wdC5sZWFrLWNoZWNrIj48L2E+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1sZWFrLWNoZWNrPSZsdDtub3xzdW1tYXJ5fHllc3xmdWxsJmd0OyBbZGVmYXVsdDogc3VtbWFyeV0gPC9jb2RlPgorICAgIDwvc3Bhbj4KKzwvZHQ+Cis8ZGQ+PHA+V2hlbiBlbmFibGVkLCBzZWFyY2ggZm9yIG1lbW9yeSBsZWFrcyB3aGVuIHRoZSBjbGllbnQKKyAgICAgIHByb2dyYW0gZmluaXNoZXMuICBJZiBzZXQgdG8gPGNvZGUgY2xhc3M9InZhcm5hbWUiPnN1bW1hcnk8L2NvZGU+LCBpdCBzYXlzIGhvdworICAgICAgbWFueSBsZWFrcyBvY2N1cnJlZC4gIElmIHNldCB0byA8Y29kZSBjbGFzcz0idmFybmFtZSI+ZnVsbDwvY29kZT4gb3IKKyAgICAgIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj55ZXM8L2NvZGU+LCBlYWNoIGluZGl2aWR1YWwgbGVhayB3aWxsIGJlIHNob3duCisgICAgICBpbiBkZXRhaWwgYW5kL29yIGNvdW50ZWQgYXMgYW4gZXJyb3IsIGFzIHNwZWNpZmllZCBieSB0aGUgb3B0aW9ucyAKKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tc2hvdy1sZWFrLWtpbmRzPC9jb2RlPiBhbmQgCisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWVycm9ycy1mb3ItbGVhay1raW5kczwvY29kZT4uIDwvcD48L2RkPgorPGR0PgorPGEgbmFtZT0ib3B0LmxlYWstcmVzb2x1dGlvbiI+PC9hPjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tbGVhay1yZXNvbHV0aW9uPSZsdDtsb3d8bWVkfGhpZ2gmZ3Q7IFtkZWZhdWx0OiBoaWdoXSA8L2NvZGU+CisgICAgPC9zcGFuPgorPC9kdD4KKzxkZD4KKzxwPldoZW4gZG9pbmcgbGVhayBjaGVja2luZywgZGV0ZXJtaW5lcyBob3cgd2lsbGluZworICAgICAgTWVtY2hlY2sgaXMgdG8gY29uc2lkZXIgZGlmZmVyZW50IGJhY2t0cmFjZXMgdG8KKyAgICAgIGJlIHRoZSBzYW1lIGZvciB0aGUgcHVycG9zZXMgb2YgbWVyZ2luZyBtdWx0aXBsZSBsZWFrcyBpbnRvIGEgc2luZ2xlCisgICAgICBsZWFrIHJlcG9ydC4gIFdoZW4gc2V0IHRvIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5sb3c8L2NvZGU+LCBvbmx5IHRoZSBmaXJzdAorICAgICAgdHdvIGVudHJpZXMgbmVlZCBtYXRjaC4gIFdoZW4gPGNvZGUgY2xhc3M9InZhcm5hbWUiPm1lZDwvY29kZT4sIGZvdXIgZW50cmllcworICAgICAgaGF2ZSB0byBtYXRjaC4gIFdoZW4gPGNvZGUgY2xhc3M9InZhcm5hbWUiPmhpZ2g8L2NvZGU+LCBhbGwgZW50cmllcyBuZWVkIHRvCisgICAgICBtYXRjaC48L3A+Cis8cD5Gb3IgaGFyZGNvcmUgbGVhayBkZWJ1Z2dpbmcsIHlvdSBwcm9iYWJseSB3YW50IHRvIHVzZQorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1sZWFrLXJlc29sdXRpb249aGlnaDwvY29kZT4gdG9nZXRoZXIgd2l0aAorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1udW0tY2FsbGVycz00MDwvY29kZT4gb3Igc29tZSBzdWNoIGxhcmdlIG51bWJlci4KKyAgICAgIDwvcD4KKzxwPk5vdGUgdGhhdCB0aGUgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1sZWFrLXJlc29sdXRpb248L2NvZGU+IHNldHRpbmcKKyAgICAgIGRvZXMgbm90IGFmZmVjdCBNZW1jaGVjaydzIGFiaWxpdHkgdG8gZmluZAorICAgICAgbGVha3MuICBJdCBvbmx5IGNoYW5nZXMgaG93IHRoZSByZXN1bHRzIGFyZSBwcmVzZW50ZWQuPC9wPgorPC9kZD4KKzxkdD4KKzxhIG5hbWU9Im9wdC5zaG93LWxlYWsta2luZHMiPjwvYT48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXNob3ctbGVhay1raW5kcz0mbHQ7c2V0Jmd0OyBbZGVmYXVsdDogZGVmaW5pdGUscG9zc2libGVdIDwvY29kZT4KKyAgICA8L3NwYW4+Cis8L2R0PgorPGRkPgorPHA+U3BlY2lmaWVzIHRoZSBsZWFrIGtpbmRzIHRvIHNob3cgaW4gYSA8Y29kZSBjbGFzcz0idmFybmFtZSI+ZnVsbDwvY29kZT4KKyAgICAgIGxlYWsgc2VhcmNoLCBpbiBvbmUgb2YgdGhlIGZvbGxvd2luZyB3YXlzOiA8L3A+Cis8ZGl2IGNsYXNzPSJpdGVtaXplZGxpc3QiPjx1bCBjbGFzcz0iaXRlbWl6ZWRsaXN0IiBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOiBkaXNjOyAiPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+YSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBvbmUgb3IgbW9yZSBvZgorICAgICAgICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+ZGVmaW5pdGUgaW5kaXJlY3QgcG9zc2libGUgcmVhY2hhYmxlPC9jb2RlPi48L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPjxjb2RlIGNsYXNzPSJvcHRpb24iPmFsbDwvY29kZT4gdG8gc3BlY2lmeSB0aGUgY29tcGxldGUgc2V0IChhbGwgbGVhayBraW5kcykuCisgICAgICAgICAgICBJdCBpcyBlcXVpdmFsZW50IHRvCisgICAgICAgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXNob3ctbGVhay1raW5kcz1kZWZpbml0ZSxpbmRpcmVjdCxwb3NzaWJsZSxyZWFjaGFibGU8L2NvZGU+LjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+PGNvZGUgY2xhc3M9Im9wdGlvbiI+bm9uZTwvY29kZT4gZm9yIHRoZSBlbXB0eSBzZXQuPC9wPjwvbGk+Cis8L3VsPjwvZGl2PgorPC9kZD4KKzxkdD4KKzxhIG5hbWU9Im9wdC5lcnJvcnMtZm9yLWxlYWsta2luZHMiPjwvYT48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWVycm9ycy1mb3ItbGVhay1raW5kcz0mbHQ7c2V0Jmd0OyBbZGVmYXVsdDogZGVmaW5pdGUscG9zc2libGVdIDwvY29kZT4KKyAgICA8L3NwYW4+Cis8L2R0PgorPGRkPjxwPlNwZWNpZmllcyB0aGUgbGVhayBraW5kcyB0byBjb3VudCBhcyBlcnJvcnMgaW4gYQorICAgICAgICA8Y29kZSBjbGFzcz0idmFybmFtZSI+ZnVsbDwvY29kZT4gbGVhayBzZWFyY2guIFRoZQorICAgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4mbHQ7c2V0Jmd0OzwvY29kZT4gaXMgc3BlY2lmaWVkIHNpbWlsYXJseSB0bworICAgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXNob3ctbGVhay1raW5kczwvY29kZT4KKyAgICAgIDwvcD48L2RkPgorPGR0PgorPGEgbmFtZT0ib3B0LmxlYWstY2hlY2staGV1cmlzdGljcyI+PC9hPjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tbGVhay1jaGVjay1oZXVyaXN0aWNzPSZsdDtzZXQmZ3Q7IFtkZWZhdWx0OiBhbGxdIDwvY29kZT4KKyAgICA8L3NwYW4+Cis8L2R0PgorPGRkPgorPHA+U3BlY2lmaWVzIHRoZSBzZXQgb2YgbGVhayBjaGVjayBoZXVyaXN0aWNzIHRvIGJlIHVzZWQKKyAgICAgICAgZHVyaW5nIGxlYWsgc2VhcmNoZXMuICBUaGUgaGV1cmlzdGljcyBjb250cm9sIHdoaWNoIGludGVyaW9yIHBvaW50ZXJzCisgICAgICAgIHRvIGEgYmxvY2sgY2F1c2UgaXQgdG8gYmUgY29uc2lkZXJlZCBhcyByZWFjaGFibGUuCisgICAgICAgIFRoZSBoZXVyaXN0aWMgc2V0IGlzIHNwZWNpZmllZCBpbiBvbmUgb2YgdGhlIGZvbGxvd2luZyB3YXlzOjwvcD4KKzxkaXYgY2xhc3M9Iml0ZW1pemVkbGlzdCI+PHVsIGNsYXNzPSJpdGVtaXplZGxpc3QiIHN0eWxlPSJsaXN0LXN0eWxlLXR5cGU6IGRpc2M7ICI+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5hIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIG9uZSBvciBtb3JlIG9mCisgICAgICAgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj5zdGRzdHJpbmcgbGVuZ3RoNjQgbmV3YXJyYXkgbXVsdGlwbGVpbmhlcml0YW5jZTwvY29kZT4uPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD48Y29kZSBjbGFzcz0ib3B0aW9uIj5hbGw8L2NvZGU+IHRvIGFjdGl2YXRlIHRoZSBjb21wbGV0ZSBzZXQgb2YKKyAgICAgICAgICAgIGhldXJpc3RpY3MuCisgICAgICAgICAgICBJdCBpcyBlcXVpdmFsZW50IHRvCisgICAgICAgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWxlYWstY2hlY2staGV1cmlzdGljcz1zdGRzdHJpbmcsbGVuZ3RoNjQsbmV3YXJyYXksbXVsdGlwbGVpbmhlcml0YW5jZTwvY29kZT4uPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD48Y29kZSBjbGFzcz0ib3B0aW9uIj5ub25lPC9jb2RlPiBmb3IgdGhlIGVtcHR5IHNldC48L3A+PC9saT4KKzwvdWw+PC9kaXY+Cis8L2RkPgorPGR0PgorPGEgbmFtZT0ib3B0LnNob3ctcmVhY2hhYmxlIj48L2E+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1zaG93LXJlYWNoYWJsZT0mbHQ7eWVzfG5vJmd0OyA8L2NvZGU+CisgICAgLCA8L3NwYW4+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1zaG93LXBvc3NpYmx5LWxvc3Q9Jmx0O3llc3xubyZndDsgPC9jb2RlPgorICAgIDwvc3Bhbj4KKzwvZHQ+Cis8ZGQ+Cis8cD5UaGVzZSBvcHRpb25zIHByb3ZpZGUgYW4gYWx0ZXJuYXRpdmUgd2F5IHRvIHNwZWNpZnkgdGhlIGxlYWsga2luZHMgdG8gc2hvdzoKKyAgICAgIDwvcD4KKzxkaXYgY2xhc3M9Iml0ZW1pemVkbGlzdCI+PHVsIGNsYXNzPSJpdGVtaXplZGxpc3QiIHN0eWxlPSJsaXN0LXN0eWxlLXR5cGU6IGRpc2M7ICI+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD4KKyAgICAgICAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tc2hvdy1yZWFjaGFibGU9bm8gLS1zaG93LXBvc3NpYmx5LWxvc3Q9eWVzPC9jb2RlPiBpcyBlcXVpdmFsZW50IHRvCisgICAgICAgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXNob3ctbGVhay1raW5kcz1kZWZpbml0ZSxwb3NzaWJsZTwvY29kZT4uCisJICA8L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPgorICAgICAgICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1zaG93LXJlYWNoYWJsZT1ubyAtLXNob3ctcG9zc2libHktbG9zdD1ubzwvY29kZT4gaXMgZXF1aXZhbGVudCB0bworICAgICAgICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1zaG93LWxlYWsta2luZHM9ZGVmaW5pdGU8L2NvZGU+LgorCSAgPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD4KKyAgICAgICAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tc2hvdy1yZWFjaGFibGU9eWVzPC9jb2RlPiBpcyBlcXVpdmFsZW50IHRvCisgICAgICAgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXNob3ctbGVhay1raW5kcz1hbGw8L2NvZGU+LgorCSAgPC9wPjwvbGk+Cis8L3VsPjwvZGl2PgorPC9kZD4KKzxkdD4KKzxhIG5hbWU9Im9wdC51bmRlZi12YWx1ZS1lcnJvcnMiPjwvYT48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXVuZGVmLXZhbHVlLWVycm9ycz0mbHQ7eWVzfG5vJmd0OyBbZGVmYXVsdDogeWVzXSA8L2NvZGU+CisgICAgPC9zcGFuPgorPC9kdD4KKzxkZD48cD5Db250cm9scyB3aGV0aGVyIE1lbWNoZWNrIHJlcG9ydHMKKyAgICAgIHVzZXMgb2YgdW5kZWZpbmVkIHZhbHVlIGVycm9ycy4gIFNldCB0aGlzIHRvCisgICAgICA8Y29kZSBjbGFzcz0idmFybmFtZSI+bm88L2NvZGU+IGlmIHlvdSBkb24ndCB3YW50IHRvIHNlZSB1bmRlZmluZWQgdmFsdWUKKyAgICAgIGVycm9ycy4gIEl0IGFsc28gaGFzIHRoZSBzaWRlIGVmZmVjdCBvZiBzcGVlZGluZyB1cAorICAgICAgTWVtY2hlY2sgc29tZXdoYXQuCisgICAgICA8L3A+PC9kZD4KKzxkdD4KKzxhIG5hbWU9Im9wdC50cmFjay1vcmlnaW5zIj48L2E+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS10cmFjay1vcmlnaW5zPSZsdDt5ZXN8bm8mZ3Q7IFtkZWZhdWx0OiBub10gPC9jb2RlPgorICAgIDwvc3Bhbj4KKzwvZHQ+Cis8ZGQ+Cis8cD5Db250cm9scyB3aGV0aGVyIE1lbWNoZWNrIHRyYWNrcworICAgICAgICB0aGUgb3JpZ2luIG9mIHVuaW5pdGlhbGlzZWQgdmFsdWVzLiAgQnkgZGVmYXVsdCwgaXQgZG9lcyBub3QsCisgICAgICAgIHdoaWNoIG1lYW5zIHRoYXQgYWx0aG91Z2ggaXQgY2FuIHRlbGwgeW91IHRoYXQgYW4KKyAgICAgICAgdW5pbml0aWFsaXNlZCB2YWx1ZSBpcyBiZWluZyB1c2VkIGluIGEgZGFuZ2Vyb3VzIHdheSwgaXQKKyAgICAgICAgY2Fubm90IHRlbGwgeW91IHdoZXJlIHRoZSB1bmluaXRpYWxpc2VkIHZhbHVlIGNhbWUgZnJvbS4gIFRoaXMKKyAgICAgICAgb2Z0ZW4gbWFrZXMgaXQgZGlmZmljdWx0IHRvIHRyYWNrIGRvd24gdGhlIHJvb3QgcHJvYmxlbS4KKyAgICAgICAgPC9wPgorPHA+V2hlbiBzZXQKKyAgICAgICAgdG8gPGNvZGUgY2xhc3M9InZhcm5hbWUiPnllczwvY29kZT4sIE1lbWNoZWNrIGtlZXBzCisgICAgICAgIHRyYWNrIG9mIHRoZSBvcmlnaW5zIG9mIGFsbCB1bmluaXRpYWxpc2VkIHZhbHVlcy4gIFRoZW4sIHdoZW4KKyAgICAgICAgYW4gdW5pbml0aWFsaXNlZCB2YWx1ZSBlcnJvciBpcworICAgICAgICByZXBvcnRlZCwgTWVtY2hlY2sgd2lsbCB0cnkgdG8gc2hvdyB0aGUKKyAgICAgICAgb3JpZ2luIG9mIHRoZSB2YWx1ZS4gIEFuIG9yaWdpbiBjYW4gYmUgb25lIG9mIHRoZSBmb2xsb3dpbmcKKyAgICAgICAgZm91ciBwbGFjZXM6IGEgaGVhcCBibG9jaywgYSBzdGFjayBhbGxvY2F0aW9uLCBhIGNsaWVudAorICAgICAgICByZXF1ZXN0LCBvciBtaXNjZWxsYW5lb3VzIG90aGVyIHNvdXJjZXMgKGVnLCBhIGNhbGwKKyAgICAgICAgdG8gPGNvZGUgY2xhc3M9InZhcm5hbWUiPmJyazwvY29kZT4pLgorICAgICAgICA8L3A+Cis8cD5Gb3IgdW5pbml0aWFsaXNlZCB2YWx1ZXMgb3JpZ2luYXRpbmcgZnJvbSBhIGhlYXAKKyAgICAgICAgYmxvY2ssIE1lbWNoZWNrIHNob3dzIHdoZXJlIHRoZSBibG9jayB3YXMKKyAgICAgICAgYWxsb2NhdGVkLiAgRm9yIHVuaW5pdGlhbGlzZWQgdmFsdWVzIG9yaWdpbmF0aW5nIGZyb20gYSBzdGFjaworICAgICAgICBhbGxvY2F0aW9uLCBNZW1jaGVjayBjYW4gdGVsbCB5b3Ugd2hpY2gKKyAgICAgICAgZnVuY3Rpb24gYWxsb2NhdGVkIHRoZSB2YWx1ZSwgYnV0IG5vIG1vcmUgdGhhbiB0aGF0IC0tIHR5cGljYWxseQorICAgICAgICBpdCBzaG93cyB5b3UgdGhlIHNvdXJjZSBsb2NhdGlvbiBvZiB0aGUgb3BlbmluZyBicmFjZSBvZiB0aGUKKyAgICAgICAgZnVuY3Rpb24uICBTbyB5b3Ugc2hvdWxkIGNhcmVmdWxseSBjaGVjayB0aGF0IGFsbCBvZiB0aGUKKyAgICAgICAgZnVuY3Rpb24ncyBsb2NhbCB2YXJpYWJsZXMgYXJlIGluaXRpYWxpc2VkIHByb3Blcmx5LgorICAgICAgICA8L3A+Cis8cD5QZXJmb3JtYW5jZSBvdmVyaGVhZDogb3JpZ2luIHRyYWNraW5nIGlzIGV4cGVuc2l2ZS4gIEl0CisgICAgICAgIGhhbHZlcyBNZW1jaGVjaydzIHNwZWVkIGFuZCBpbmNyZWFzZXMKKyAgICAgICAgbWVtb3J5IHVzZSBieSBhIG1pbmltdW0gb2YgMTAwTUIsIGFuZCBwb3NzaWJseSBtb3JlLgorICAgICAgICBOZXZlcnRoZWxlc3MgaXQgY2FuIGRyYXN0aWNhbGx5IHJlZHVjZSB0aGUgZWZmb3J0IHJlcXVpcmVkIHRvCisgICAgICAgIGlkZW50aWZ5IHRoZSByb290IGNhdXNlIG9mIHVuaW5pdGlhbGlzZWQgdmFsdWUgZXJyb3JzLCBhbmQgc28KKyAgICAgICAgaXMgb2Z0ZW4gYSBwcm9ncmFtbWVyIHByb2R1Y3Rpdml0eSB3aW4sIGRlc3BpdGUgcnVubmluZworICAgICAgICBtb3JlIHNsb3dseS4KKyAgICAgICAgPC9wPgorPHA+QWNjdXJhY3k6IE1lbWNoZWNrIHRyYWNrcyBvcmlnaW5zCisgICAgICAgIHF1aXRlIGFjY3VyYXRlbHkuICBUbyBhdm9pZCB2ZXJ5IGxhcmdlIHNwYWNlIGFuZCB0aW1lCisgICAgICAgIG92ZXJoZWFkcywgc29tZSBhcHByb3hpbWF0aW9ucyBhcmUgbWFkZS4gIEl0IGlzIHBvc3NpYmxlLAorICAgICAgICBhbHRob3VnaCB1bmxpa2VseSwgdGhhdCBNZW1jaGVjayB3aWxsIHJlcG9ydCBhbiBpbmNvcnJlY3Qgb3JpZ2luLCBvcgorICAgICAgICBub3QgYmUgYWJsZSB0byBpZGVudGlmeSBhbnkgb3JpZ2luLgorICAgICAgICA8L3A+Cis8cD5Ob3RlIHRoYXQgdGhlIGNvbWJpbmF0aW9uCisgICAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tdHJhY2stb3JpZ2lucz15ZXM8L2NvZGU+CisgICAgICAgIGFuZCA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXVuZGVmLXZhbHVlLWVycm9ycz1ubzwvY29kZT4gaXMKKyAgICAgICAgbm9uc2Vuc2ljYWwuICBNZW1jaGVjayBjaGVja3MgZm9yIGFuZAorICAgICAgICByZWplY3RzIHRoaXMgY29tYmluYXRpb24gYXQgc3RhcnR1cC4KKyAgICAgICAgPC9wPgorPC9kZD4KKzxkdD4KKzxhIG5hbWU9Im9wdC5wYXJ0aWFsLWxvYWRzLW9rIj48L2E+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1wYXJ0aWFsLWxvYWRzLW9rPSZsdDt5ZXN8bm8mZ3Q7IFtkZWZhdWx0OiB5ZXNdIDwvY29kZT4KKyAgICA8L3NwYW4+Cis8L2R0PgorPGRkPgorPHA+Q29udHJvbHMgaG93IE1lbWNoZWNrIGhhbmRsZXMgMzItLCA2NC0sIDEyOC0gYW5kIDI1Ni1iaXQKKyAgICAgIG5hdHVyYWxseSBhbGlnbmVkIGxvYWRzIGZyb20gYWRkcmVzc2VzIGZvciB3aGljaCBzb21lIGJ5dGVzIGFyZQorICAgICAgYWRkcmVzc2FibGUgYW5kIG90aGVycyBhcmUgbm90LiAgV2hlbiA8Y29kZSBjbGFzcz0idmFybmFtZSI+eWVzPC9jb2RlPiwgc3VjaAorICAgICAgbG9hZHMgZG8gbm90IHByb2R1Y2UgYW4gYWRkcmVzcyBlcnJvci4gIEluc3RlYWQsIGxvYWRlZCBieXRlcworICAgICAgb3JpZ2luYXRpbmcgZnJvbSBpbGxlZ2FsIGFkZHJlc3NlcyBhcmUgbWFya2VkIGFzIHVuaW5pdGlhbGlzZWQsIGFuZAorICAgICAgdGhvc2UgY29ycmVzcG9uZGluZyB0byBsZWdhbCBhZGRyZXNzZXMgYXJlIGhhbmRsZWQgaW4gdGhlIG5vcm1hbAorICAgICAgd2F5LjwvcD4KKzxwPldoZW4gPGNvZGUgY2xhc3M9InZhcm5hbWUiPm5vPC9jb2RlPiwgbG9hZHMgZnJvbSBwYXJ0aWFsbHkgaW52YWxpZAorICAgICAgYWRkcmVzc2VzIGFyZSB0cmVhdGVkIHRoZSBzYW1lIGFzIGxvYWRzIGZyb20gY29tcGxldGVseSBpbnZhbGlkCisgICAgICBhZGRyZXNzZXM6IGFuIGlsbGVnYWwtYWRkcmVzcyBlcnJvciBpcyBpc3N1ZWQsIGFuZCB0aGUgcmVzdWx0aW5nCisgICAgICBieXRlcyBhcmUgbWFya2VkIGFzIGluaXRpYWxpc2VkLjwvcD4KKzxwPk5vdGUgdGhhdCBjb2RlIHRoYXQgYmVoYXZlcyBpbiB0aGlzIHdheSBpcyBpbiB2aW9sYXRpb24gb2YKKyAgICAgIHRoZSBJU08gQy9DKysgc3RhbmRhcmRzLCBhbmQgc2hvdWxkIGJlIGNvbnNpZGVyZWQgYnJva2VuLiAgSWYKKyAgICAgIGF0IGFsbCBwb3NzaWJsZSwgc3VjaCBjb2RlIHNob3VsZCBiZSBmaXhlZC48L3A+Cis8L2RkPgorPGR0PgorPGEgbmFtZT0ib3B0LmV4cGVuc2l2ZS1kZWZpbmVkbmVzcy1jaGVja3MiPjwvYT48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWV4cGVuc2l2ZS1kZWZpbmVkbmVzcy1jaGVja3M9Jmx0O3llc3xubyZndDsgW2RlZmF1bHQ6IG5vXSA8L2NvZGU+CisgICAgPC9zcGFuPgorPC9kdD4KKzxkZD48cD5Db250cm9scyB3aGV0aGVyIE1lbWNoZWNrIHNob3VsZCBlbXBsb3kgbW9yZSBwcmVjaXNlIGJ1dCBhbHNvIG1vcmUKKyAgICAgIGV4cGVuc2l2ZSAodGltZSBjb25zdW1pbmcpIGFsZ29yaXRobXMgd2hlbiBjaGVja2luZyB0aGUgZGVmaW5lZG5lc3Mgb2YgYQorICAgICAgdmFsdWUuIFRoZSBkZWZhdWx0IHNldHRpbmcgaXMgbm90IHRvIGRvIHRoYXQgYW5kIGl0IGlzIHVzdWFsbHkKKyAgICAgIHN1ZmZpY2llbnQuIEhvd2V2ZXIsIGZvciBoaWdobHkgb3B0aW1pc2VkIGNvZGUgdmFsZ3JpbmQgbWF5IHNvbWV0aW1lcworICAgICAgaW5jb3JyZWN0bHkgY29tcGxhaW4uIAorICAgICAgSW52b2tpbmcgdmFsZ3JpbmQgd2l0aCA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWV4cGVuc2l2ZS1kZWZpbmVkbmVzcy1jaGVja3M9eWVzPC9jb2RlPiAKKyAgICAgIGhlbHBzIGJ1dCBjb21lcyBhdCBhIHBlcmZvcm1hbmNlIGNvc3QuIFJ1bnRpbWUgZGVncmFkYXRpb24gb2YKKyAgICAgIDI1JSBoYXZlIGJlZW4gb2JzZXJ2ZWQgYnV0IHRoZSBleHRyYSBjb3N0IGRlcGVuZHMgYSBsb3Qgb24gdGhlCisgICAgICBhcHBsaWNhdGlvbiBhdCBoYW5kLgorICAgICAgPC9wPjwvZGQ+Cis8ZHQ+Cis8YSBuYW1lPSJvcHQua2VlcC1zdGFja3RyYWNlcyI+PC9hPjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0ta2VlcC1zdGFja3RyYWNlcz1hbGxvY3xmcmVlfGFsbG9jLWFuZC1mcmVlfGFsbG9jLXRoZW4tZnJlZXxub25lIFtkZWZhdWx0OiBhbGxvYy1hbmQtZnJlZV0gPC9jb2RlPgorICAgIDwvc3Bhbj4KKzwvZHQ+Cis8ZGQ+Cis8cD5Db250cm9scyB3aGljaCBzdGFjayB0cmFjZShzKSB0byBrZWVwIGZvciBtYWxsb2MnZCBhbmQvb3IKKyAgICAgIGZyZWUnZCBibG9ja3MuCisgICAgICA8L3A+Cis8cD5XaXRoIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5hbGxvYy10aGVuLWZyZWU8L2NvZGU+LCBhIHN0YWNrIHRyYWNlIGlzCisgICAgICByZWNvcmRlZCBhdCBhbGxvY2F0aW9uIHRpbWUsIGFuZCBpcyBhc3NvY2lhdGVkIHdpdGggdGhlIGJsb2NrLgorICAgICAgV2hlbiB0aGUgYmxvY2sgaXMgZnJlZWQsIGEgc2Vjb25kIHN0YWNrIHRyYWNlIGlzIHJlY29yZGVkLCBhbmQKKyAgICAgIHRoaXMgcmVwbGFjZXMgdGhlIGFsbG9jYXRpb24gc3RhY2sgdHJhY2UuICBBcyBhIHJlc3VsdCwgYW55ICJ1c2UKKyAgICAgIGFmdGVyIGZyZWUiIGVycm9ycyByZWxhdGluZyB0byB0aGlzIGJsb2NrIGNhbiBvbmx5IHNob3cgYSBzdGFjaworICAgICAgdHJhY2UgZm9yIHdoZXJlIHRoZSBibG9jayB3YXMgZnJlZWQuCisgICAgICA8L3A+Cis8cD5XaXRoIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5hbGxvYy1hbmQtZnJlZTwvY29kZT4sIGJvdGggYWxsb2NhdGlvbgorICAgICAgYW5kIHRoZSBkZWFsbG9jYXRpb24gc3RhY2sgdHJhY2VzIGZvciB0aGUgYmxvY2sgYXJlIHN0b3JlZC4KKyAgICAgIEhlbmNlIGEgInVzZSBhZnRlciBmcmVlIiBlcnJvciB3aWxsCisgICAgICBzaG93IGJvdGgsIHdoaWNoIG1heSBtYWtlIHRoZSBlcnJvciBlYXNpZXIgdG8gZGlhZ25vc2UuCisgICAgICBDb21wYXJlZCB0byA8Y29kZSBjbGFzcz0idmFybmFtZSI+YWxsb2MtdGhlbi1mcmVlPC9jb2RlPiwgdGhpcyBzZXR0aW5nCisgICAgICBzbGlnaHRseSBpbmNyZWFzZXMgVmFsZ3JpbmQncyBtZW1vcnkgdXNlIGFzIHRoZSBibG9jayBjb250YWlucyB0d28KKyAgICAgIHJlZmVyZW5jZXMgaW5zdGVhZCBvZiBvbmUuCisgICAgICA8L3A+Cis8cD5XaXRoIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5hbGxvYzwvY29kZT4sIG9ubHkgdGhlIGFsbG9jYXRpb24gc3RhY2sKKyAgICAgIHRyYWNlIGlzIHJlY29yZGVkIChhbmQgcmVwb3J0ZWQpLiAgV2l0aCA8Y29kZSBjbGFzcz0idmFybmFtZSI+ZnJlZTwvY29kZT4sCisgICAgICBvbmx5IHRoZSBkZWFsbG9jYXRpb24gc3RhY2sgdHJhY2UgaXMgcmVjb3JkZWQgKGFuZCByZXBvcnRlZCkuCisgICAgICBUaGVzZSB2YWx1ZXMgc29tZXdoYXQgZGVjcmVhc2UgVmFsZ3JpbmQncyBtZW1vcnkgYW5kIGNwdSB1c2FnZS4KKyAgICAgIFRoZXkgY2FuIGJlIHVzZWZ1bCBkZXBlbmRpbmcgb24gdGhlIGVycm9yIHR5cGVzIHlvdSBhcmUKKyAgICAgIHNlYXJjaGluZyBmb3IgYW5kIHRoZSBsZXZlbCBvZiBkZXRhaWwgeW91IG5lZWQgdG8gYW5hbHlzZQorICAgICAgdGhlbS4gIEZvciBleGFtcGxlLCBpZiB5b3UgYXJlIG9ubHkgaW50ZXJlc3RlZCBpbiBtZW1vcnkgbGVhaworICAgICAgZXJyb3JzLCBpdCBpcyBzdWZmaWNpZW50IHRvIHJlY29yZCB0aGUgYWxsb2NhdGlvbiBzdGFjayB0cmFjZXMuCisgICAgICA8L3A+Cis8cD5XaXRoIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5ub25lPC9jb2RlPiwgbm8gc3RhY2sgdHJhY2VzIGFyZSByZWNvcmRlZAorICAgICAgZm9yIG1hbGxvYyBhbmQgZnJlZSBvcGVyYXRpb25zLiBJZiB5b3VyIHByb2dyYW0gYWxsb2NhdGVzIGEgbG90CisgICAgICBvZiBibG9ja3MgYW5kL29yIGFsbG9jYXRlcy9mcmVlcyBmcm9tIG1hbnkgZGlmZmVyZW50IHN0YWNrCisgICAgICB0cmFjZXMsIHRoaXMgY2FuIHNpZ25pZmljYW50bHkgZGVjcmVhc2UgY3B1IGFuZC9vciBtZW1vcnkKKyAgICAgIHJlcXVpcmVkLiAgT2YgY291cnNlLCBmZXcgZGV0YWlscyB3aWxsIGJlIHJlcG9ydGVkIGZvciBlcnJvcnMKKyAgICAgIHJlbGF0ZWQgdG8gaGVhcCBibG9ja3MuCisgICAgICA8L3A+Cis8cD5Ob3RlIHRoYXQgb25jZSBhIHN0YWNrIHRyYWNlIGlzIHJlY29yZGVkLCBWYWxncmluZCBrZWVwcworICAgICAgdGhlIHN0YWNrIHRyYWNlIGluIG1lbW9yeSBldmVuIGlmIGl0IGlzIG5vdCByZWZlcmVuY2VkIGJ5IGFueQorICAgICAgYmxvY2suICBTb21lIHByb2dyYW1zIChmb3IgZXhhbXBsZSwgcmVjdXJzaXZlIGFsZ29yaXRobXMpIGNhbgorICAgICAgZ2VuZXJhdGUgYSBodWdlIG51bWJlciBvZiBzdGFjayB0cmFjZXMuIElmIFZhbGdyaW5kIHVzZXMgdG9vCisgICAgICBtdWNoIG1lbW9yeSBpbiBzdWNoIGNpcmN1bXN0YW5jZXMsIHlvdSBjYW4gcmVkdWNlIHRoZSBtZW1vcnkKKyAgICAgIHJlcXVpcmVkIHdpdGggdGhlIG9wdGlvbnMgPGNvZGUgY2xhc3M9InZhcm5hbWUiPi0ta2VlcC1zdGFja3RyYWNlczwvY29kZT4KKyAgICAgIGFuZC9vciBieSB1c2luZyBhIHNtYWxsZXIgdmFsdWUgZm9yIHRoZQorICAgICAgb3B0aW9uIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj4tLW51bS1jYWxsZXJzPC9jb2RlPi4KKyAgICAgIDwvcD4KKzwvZGQ+Cis8ZHQ+Cis8YSBuYW1lPSJvcHQuZnJlZWxpc3Qtdm9sIj48L2E+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1mcmVlbGlzdC12b2w9Jmx0O251bWJlciZndDsgW2RlZmF1bHQ6IDIwMDAwMDAwXSA8L2NvZGU+CisgICAgPC9zcGFuPgorPC9kdD4KKzxkZD4KKzxwPldoZW4gdGhlIGNsaWVudCBwcm9ncmFtIHJlbGVhc2VzIG1lbW9yeSB1c2luZworICAgICAgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5mcmVlPC9jb2RlPiAoaW4gPGNvZGUgY2xhc3M9ImxpdGVyYWwiPkM8L2NvZGU+KSBvcgorICAgICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5kZWxldGU8L2NvZGU+CisgICAgICAoPGNvZGUgY2xhc3M9ImxpdGVyYWwiPkMrKzwvY29kZT4pLCB0aGF0IG1lbW9yeSBpcyBub3QgaW1tZWRpYXRlbHkgbWFkZQorICAgICAgYXZhaWxhYmxlIGZvciByZS1hbGxvY2F0aW9uLiAgSW5zdGVhZCwgaXQgaXMgbWFya2VkIGluYWNjZXNzaWJsZQorICAgICAgYW5kIHBsYWNlZCBpbiBhIHF1ZXVlIG9mIGZyZWVkIGJsb2Nrcy4gIFRoZSBwdXJwb3NlIGlzIHRvIGRlZmVyIGFzCisgICAgICBsb25nIGFzIHBvc3NpYmxlIHRoZSBwb2ludCBhdCB3aGljaCBmcmVlZC11cCBtZW1vcnkgY29tZXMgYmFjaworICAgICAgaW50byBjaXJjdWxhdGlvbi4gIFRoaXMgaW5jcmVhc2VzIHRoZSBjaGFuY2UgdGhhdAorICAgICAgTWVtY2hlY2sgd2lsbCBiZSBhYmxlIHRvIGRldGVjdCBpbnZhbGlkCisgICAgICBhY2Nlc3NlcyB0byBibG9ja3MgZm9yIHNvbWUgc2lnbmlmaWNhbnQgcGVyaW9kIG9mIHRpbWUgYWZ0ZXIgdGhleQorICAgICAgaGF2ZSBiZWVuIGZyZWVkLjwvcD4KKzxwPlRoaXMgb3B0aW9uIHNwZWNpZmllcyB0aGUgbWF4aW11bSB0b3RhbCBzaXplLCBpbiBieXRlcywgb2YgdGhlCisgICAgICBibG9ja3MgaW4gdGhlIHF1ZXVlLiAgVGhlIGRlZmF1bHQgdmFsdWUgaXMgdHdlbnR5IG1pbGxpb24gYnl0ZXMuCisgICAgICBJbmNyZWFzaW5nIHRoaXMgaW5jcmVhc2VzIHRoZSB0b3RhbCBhbW91bnQgb2YgbWVtb3J5IHVzZWQgYnkKKyAgICAgIE1lbWNoZWNrIGJ1dCBtYXkgZGV0ZWN0IGludmFsaWQgdXNlcyBvZiBmcmVlZAorICAgICAgYmxvY2tzIHdoaWNoIHdvdWxkIG90aGVyd2lzZSBnbyB1bmRldGVjdGVkLjwvcD4KKzwvZGQ+Cis8ZHQ+Cis8YSBuYW1lPSJvcHQuZnJlZWxpc3QtYmlnLWJsb2NrcyI+PC9hPjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tZnJlZWxpc3QtYmlnLWJsb2Nrcz0mbHQ7bnVtYmVyJmd0OyBbZGVmYXVsdDogMTAwMDAwMF0gPC9jb2RlPgorICAgIDwvc3Bhbj4KKzwvZHQ+Cis8ZGQ+Cis8cD5XaGVuIG1ha2luZyBibG9ja3MgZnJvbSB0aGUgcXVldWUgb2YgZnJlZWQgYmxvY2tzIGF2YWlsYWJsZQorICAgICAgZm9yIHJlLWFsbG9jYXRpb24sIE1lbWNoZWNrIHdpbGwgaW4gcHJpb3JpdHkgcmUtY2lyY3VsYXRlIHRoZSBibG9ja3MKKyAgICAgIHdpdGggYSBzaXplIGdyZWF0ZXIgb3IgZXF1YWwgdG8gPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1mcmVlbGlzdC1iaWctYmxvY2tzPC9jb2RlPi4KKyAgICAgIFRoaXMgZW5zdXJlcyB0aGF0IGZyZWVpbmcgYmlnIGJsb2NrcyAoaW4gcGFydGljdWxhciBmcmVlaW5nIGJsb2NrcyBiaWdnZXIgdGhhbgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1mcmVlbGlzdC12b2w8L2NvZGU+KSBkb2VzIG5vdCBpbW1lZGlhdGVseSBsZWFkIHRvIGEgcmUtY2lyY3VsYXRpb24KKyAgICAgIG9mIGFsbCAob3IgYSBsb3Qgb2YpIHRoZSBzbWFsbCBibG9ja3MgaW4gdGhlIGZyZWUgbGlzdC4gSW4gb3RoZXIgd29yZHMsCisgICAgICB0aGlzIG9wdGlvbiBpbmNyZWFzZXMgdGhlIGxpa2VsaWhvb2QgdG8gZGlzY292ZXIgZGFuZ2xpbmcgcG9pbnRlcnMKKyAgICAgIGZvciB0aGUgInNtYWxsIiBibG9ja3MsIGV2ZW4gd2hlbiBiaWcgYmxvY2tzIGFyZSBmcmVlZC48L3A+Cis8cD5TZXR0aW5nIGEgdmFsdWUgb2YgMCBtZWFucyB0aGF0IGFsbCB0aGUgYmxvY2tzIGFyZSByZS1jaXJjdWxhdGVkCisgICAgICBpbiBhIEZJRk8gb3JkZXIuIDwvcD4KKzwvZGQ+Cis8ZHQ+Cis8YSBuYW1lPSJvcHQud29ya2Fyb3VuZC1nY2MyOTYtYnVncyI+PC9hPjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0td29ya2Fyb3VuZC1nY2MyOTYtYnVncz0mbHQ7eWVzfG5vJmd0OyBbZGVmYXVsdDogbm9dIDwvY29kZT4KKyAgICA8L3NwYW4+Cis8L2R0PgorPGRkPgorPHA+V2hlbiBlbmFibGVkLCBhc3N1bWUgdGhhdCByZWFkcyBhbmQgd3JpdGVzIHNvbWUgc21hbGwKKyAgICAgIGRpc3RhbmNlIGJlbG93IHRoZSBzdGFjayBwb2ludGVyIGFyZSBkdWUgdG8gYnVncyBpbiBHQ0MgMi45NiwgYW5kCisgICAgICBkb2VzIG5vdCByZXBvcnQgdGhlbS4gIFRoZSAic21hbGwgZGlzdGFuY2UiIGlzIDI1NiBieXRlcyBieQorICAgICAgZGVmYXVsdC4gIE5vdGUgdGhhdCBHQ0MgMi45NiBpcyB0aGUgZGVmYXVsdCBjb21waWxlciBvbiBzb21lIGFuY2llbnQKKyAgICAgIExpbnV4IGRpc3RyaWJ1dGlvbnMgKFJlZEhhdCA3LlgpIGFuZCBzbyB5b3UgbWF5IG5lZWQgdG8gdXNlIHRoaXMKKyAgICAgIG9wdGlvbi4gIERvIG5vdCB1c2UgaXQgaWYgeW91IGRvIG5vdCBoYXZlIHRvLCBhcyBpdCBjYW4gY2F1c2UgcmVhbAorICAgICAgZXJyb3JzIHRvIGJlIG92ZXJsb29rZWQuICBBIGJldHRlciBhbHRlcm5hdGl2ZSBpcyB0byB1c2UgYSBtb3JlCisgICAgICByZWNlbnQgR0NDIGluIHdoaWNoIHRoaXMgYnVnIGlzIGZpeGVkLjwvcD4KKzxwPllvdSBtYXkgYWxzbyBuZWVkIHRvIHVzZSB0aGlzIG9wdGlvbiB3aGVuIHdvcmtpbmcgd2l0aAorICAgICAgR0NDIDMuWCBvciA0Llggb24gMzItYml0IFBvd2VyUEMgTGludXguICBUaGlzIGlzIGJlY2F1c2UKKyAgICAgIEdDQyBnZW5lcmF0ZXMgY29kZSB3aGljaCBvY2Nhc2lvbmFsbHkgYWNjZXNzZXMgYmVsb3cgdGhlCisgICAgICBzdGFjayBwb2ludGVyLCBwYXJ0aWN1bGFybHkgZm9yIGZsb2F0aW5nLXBvaW50IHRvL2Zyb20gaW50ZWdlcgorICAgICAgY29udmVyc2lvbnMuICBUaGlzIGlzIGluIHZpb2xhdGlvbiBvZiB0aGUgMzItYml0IFBvd2VyUEMgRUxGCisgICAgICBzcGVjaWZpY2F0aW9uLCB3aGljaCBtYWtlcyBubyBwcm92aXNpb24gZm9yIGxvY2F0aW9ucyBiZWxvdyB0aGUKKyAgICAgIHN0YWNrIHBvaW50ZXIgdG8gYmUgYWNjZXNzaWJsZS48L3A+Cis8cD5UaGlzIG9wdGlvbiBpcyBkZXByZWNhdGVkIGFzIG9mIHZlcnNpb24gMy4xMiBhbmQgbWF5IGJlCisgICAgICByZW1vdmVkIGZyb20gZnV0dXJlIHZlcnNpb25zLiAgWW91IHNob3VsZCBpbnN0ZWFkIHVzZQorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1pZ25vcmUtcmFuZ2UtYmVsb3ctc3A8L2NvZGU+IHRvIHNwZWNpZnkgdGhlIGV4YWN0CisgICAgICByYW5nZSBvZiBvZmZzZXRzIGJlbG93IHRoZSBzdGFjayBwb2ludGVyIHRoYXQgc2hvdWxkIGJlIGlnbm9yZWQuCisgICAgICBBIHN1aXRhYmxlIGVxdWl2YWxlbnQKKyAgICAgIGlzIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0taWdub3JlLXJhbmdlLWJlbG93LXNwPTEwMjQtMTwvY29kZT4uCisgICAgICA8L3A+Cis8L2RkPgorPGR0PgorPGEgbmFtZT0ib3B0Lmlnbm9yZS1yYW5nZS1iZWxvdy1zcCI+PC9hPjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0taWdub3JlLXJhbmdlLWJlbG93LXNwPSZsdDtudW1iZXImZ3Q7LSZsdDtudW1iZXImZ3Q7IDwvY29kZT4KKyAgICA8L3NwYW4+Cis8L2R0PgorPGRkPjxwPlRoaXMgaXMgYSBtb3JlIGdlbmVyYWwgcmVwbGFjZW1lbnQgZm9yIHRoZSBkZXByZWNhdGVkCisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXdvcmthcm91bmQtZ2NjMjk2LWJ1Z3M8L2NvZGU+IG9wdGlvbi4gIFdoZW4KKyAgICAgICBzcGVjaWZpZWQsIGl0IGNhdXNlcyBNZW1jaGVjayBub3QgdG8gcmVwb3J0IGVycm9ycyBmb3IgYWNjZXNzZXMKKyAgICAgICBhdCB0aGUgc3BlY2lmaWVkIG9mZnNldHMgYmVsb3cgdGhlIHN0YWNrIHBvaW50ZXIuICBUaGUgdHdvCisgICAgICAgb2Zmc2V0cyBtdXN0IGJlIHBvc2l0aXZlIGRlY2ltYWwgbnVtYmVycyBhbmQgLS0gc29tZXdoYXQKKyAgICAgICBjb3VudGVyaW50dWl0aXZlbHkgLS0gdGhlIGZpcnN0IG9uZSBtdXN0IGJlIGxhcmdlciwgaW4gb3JkZXIgdG8KKyAgICAgICBpbXBseSBhIG5vbi13cmFwYXJvdW5kIGFkZHJlc3MgcmFuZ2UgdG8gaWdub3JlLiAgRm9yIGV4YW1wbGUsCisgICAgICAgdG8gaWdub3JlIDQgYnl0ZSBhY2Nlc3NlcyBhdCA4MTkyIGJ5dGVzIGJlbG93IHRoZSBzdGFjaworICAgICAgIHBvaW50ZXIsCisgICAgICAgdXNlIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0taWdub3JlLXJhbmdlLWJlbG93LXNwPTgxOTItODE4OTwvY29kZT4uICBPbmx5CisgICAgICAgb25lIHJhbmdlIG1heSBiZSBzcGVjaWZpZWQuCisgICAgICA8L3A+PC9kZD4KKzxkdD4KKzxhIG5hbWU9Im9wdC5zaG93LW1pc21hdGNoZWQtZnJlZXMiPjwvYT48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXNob3ctbWlzbWF0Y2hlZC1mcmVlcz0mbHQ7eWVzfG5vJmd0OyBbZGVmYXVsdDogeWVzXSA8L2NvZGU+CisgICAgPC9zcGFuPgorPC9kdD4KKzxkZD4KKzxwPldoZW4gZW5hYmxlZCwgTWVtY2hlY2sgY2hlY2tzIHRoYXQgaGVhcCBibG9ja3MgYXJlCisgICAgICBkZWFsbG9jYXRlZCB1c2luZyBhIGZ1bmN0aW9uIHRoYXQgbWF0Y2hlcyB0aGUgYWxsb2NhdGluZworICAgICAgZnVuY3Rpb24uICBUaGF0IGlzLCBpdCBleHBlY3RzIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5mcmVlPC9jb2RlPiB0byBiZQorICAgICAgdXNlZCB0byBkZWFsbG9jYXRlIGJsb2NrcyBhbGxvY2F0ZWQKKyAgICAgIGJ5IDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5tYWxsb2M8L2NvZGU+LCA8Y29kZSBjbGFzcz0idmFybmFtZSI+ZGVsZXRlPC9jb2RlPiBmb3IKKyAgICAgIGJsb2NrcyBhbGxvY2F0ZWQgYnkgPGNvZGUgY2xhc3M9InZhcm5hbWUiPm5ldzwvY29kZT4sCisgICAgICBhbmQgPGNvZGUgY2xhc3M9InZhcm5hbWUiPmRlbGV0ZVtdPC9jb2RlPiBmb3IgYmxvY2tzIGFsbG9jYXRlZAorICAgICAgYnkgPGNvZGUgY2xhc3M9InZhcm5hbWUiPm5ld1tdPC9jb2RlPi4gIElmIGEgbWlzbWF0Y2ggaXMgZGV0ZWN0ZWQsIGFuCisgICAgICBlcnJvciBpcyByZXBvcnRlZC4gIFRoaXMgaXMgaW4gZ2VuZXJhbCBpbXBvcnRhbnQgYmVjYXVzZSBpbiBzb21lCisgICAgICBlbnZpcm9ubWVudHMsIGZyZWVpbmcgd2l0aCBhIG5vbi1tYXRjaGluZyBmdW5jdGlvbiBjYW4gY2F1c2UKKyAgICAgIGNyYXNoZXMuPC9wPgorPHA+VGhlcmUgaXMgaG93ZXZlciBhIHNjZW5hcmlvIHdoZXJlIHN1Y2ggbWlzbWF0Y2hlcyBjYW5ub3QKKyAgICAgIGJlIGF2b2lkZWQuICBUaGF0IGlzIHdoZW4gdGhlIHVzZXIgcHJvdmlkZXMgaW1wbGVtZW50YXRpb25zIG9mCisgICAgICA8Y29kZSBjbGFzcz0idmFybmFtZSI+bmV3PC9jb2RlPi88Y29kZSBjbGFzcz0idmFybmFtZSI+bmV3W108L2NvZGU+IHRoYXQKKyAgICAgIGNhbGwgPGNvZGUgY2xhc3M9InZhcm5hbWUiPm1hbGxvYzwvY29kZT4gYW5kCisgICAgICBvZiA8Y29kZSBjbGFzcz0idmFybmFtZSI+ZGVsZXRlPC9jb2RlPi88Y29kZSBjbGFzcz0idmFybmFtZSI+ZGVsZXRlW108L2NvZGU+IHRoYXQKKyAgICAgIGNhbGwgPGNvZGUgY2xhc3M9InZhcm5hbWUiPmZyZWU8L2NvZGU+LCBhbmQgdGhlc2UgZnVuY3Rpb25zIGFyZQorICAgICAgYXN5bW1ldHJpY2FsbHkgaW5saW5lZC4gIEZvciBleGFtcGxlLCBpbWFnaW5lCisgICAgICB0aGF0IDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5kZWxldGVbXTwvY29kZT4gaXMgaW5saW5lZAorICAgICAgYnV0IDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5uZXdbXTwvY29kZT4gaXMgbm90LiAgVGhlIHJlc3VsdCBpcyB0aGF0CisgICAgICBNZW1jaGVjayAic2VlcyIgYWxsIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5kZWxldGVbXTwvY29kZT4gY2FsbHMgYXMgZGlyZWN0CisgICAgICBjYWxscyB0byA8Y29kZSBjbGFzcz0idmFybmFtZSI+ZnJlZTwvY29kZT4sIGV2ZW4gd2hlbiB0aGUgcHJvZ3JhbSBzb3VyY2UKKyAgICAgIGNvbnRhaW5zIG5vIG1pc21hdGNoZWQgY2FsbHMuPC9wPgorPHA+VGhpcyBjYXVzZXMgYSBsb3Qgb2YgY29uZnVzaW5nIGFuZCBpcnJlbGV2YW50IGVycm9yCisgICAgICByZXBvcnRzLiAgPGNvZGUgY2xhc3M9InZhcm5hbWUiPi0tc2hvdy1taXNtYXRjaGVkLWZyZWVzPW5vPC9jb2RlPiBkaXNhYmxlcworICAgICAgdGhlc2UgY2hlY2tzLiAgSXQgaXMgbm90IGdlbmVyYWxseSBhZHZpc2FibGUgdG8gZGlzYWJsZSB0aGVtLAorICAgICAgdGhvdWdoLCBiZWNhdXNlIHlvdSBtYXkgbWlzcyByZWFsIGVycm9ycyBhcyBhIHJlc3VsdC48L3A+Cis8L2RkPgorPGR0PgorPGEgbmFtZT0ib3B0Lmlnbm9yZS1yYW5nZXMiPjwvYT48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWlnbm9yZS1yYW5nZXM9MHhQUC0weFFRWywweFJSLTB4U1NdIDwvY29kZT4KKyAgICA8L3NwYW4+Cis8L2R0PgorPGRkPjxwPkFueSByYW5nZXMgbGlzdGVkIGluIHRoaXMgb3B0aW9uIChhbmQgbXVsdGlwbGUgcmFuZ2VzIGNhbiBiZQorICAgIHNwZWNpZmllZCwgc2VwYXJhdGVkIGJ5IGNvbW1hcykgd2lsbCBiZSBpZ25vcmVkIGJ5IE1lbWNoZWNrJ3MKKyAgICBhZGRyZXNzYWJpbGl0eSBjaGVja2luZy48L3A+PC9kZD4KKzxkdD4KKzxhIG5hbWU9Im9wdC5tYWxsb2MtZmlsbCI+PC9hPjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tbWFsbG9jLWZpbGw9Jmx0O2hleG51bWJlciZndDsgPC9jb2RlPgorICAgIDwvc3Bhbj4KKzwvZHQ+Cis8ZGQ+PHA+RmlsbHMgYmxvY2tzIGFsbG9jYXRlZAorICAgICAgYnkgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5tYWxsb2M8L2NvZGU+LAorICAgICAgICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5uZXc8L2NvZGU+LCBldGMsIGJ1dCBub3QKKyAgICAgIGJ5IDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+Y2FsbG9jPC9jb2RlPiwgd2l0aCB0aGUgc3BlY2lmaWVkCisgICAgICBieXRlLiAgVGhpcyBjYW4gYmUgdXNlZnVsIHdoZW4gdHJ5aW5nIHRvIHNoYWtlIG91dCBvYnNjdXJlCisgICAgICBtZW1vcnkgY29ycnVwdGlvbiBwcm9ibGVtcy4gIFRoZSBhbGxvY2F0ZWQgYXJlYSBpcyBzdGlsbAorICAgICAgcmVnYXJkZWQgYnkgTWVtY2hlY2sgYXMgdW5kZWZpbmVkIC0tIHRoaXMgb3B0aW9uIG9ubHkgYWZmZWN0cyBpdHMKKyAgICAgIGNvbnRlbnRzLiBOb3RlIHRoYXQgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1tYWxsb2MtZmlsbDwvY29kZT4gZG9lcyBub3QKKyAgICAgIGFmZmVjdCBhIGJsb2NrIG9mIG1lbW9yeSB3aGVuIGl0IGlzIHVzZWQgYXMgYXJndW1lbnQKKyAgICAgIHRvIGNsaWVudCByZXF1ZXN0cyBWQUxHUklORF9NRU1QT09MX0FMTE9DIG9yCisgICAgICBWQUxHUklORF9NQUxMT0NMSUtFX0JMT0NLLgorICAgICAgPC9wPjwvZGQ+Cis8ZHQ+Cis8YSBuYW1lPSJvcHQuZnJlZS1maWxsIj48L2E+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1mcmVlLWZpbGw9Jmx0O2hleG51bWJlciZndDsgPC9jb2RlPgorICAgIDwvc3Bhbj4KKzwvZHQ+Cis8ZGQ+PHA+RmlsbHMgYmxvY2tzIGZyZWVkCisgICAgICBieSA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmZyZWU8L2NvZGU+LAorICAgICAgICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5kZWxldGU8L2NvZGU+LCBldGMsIHdpdGggdGhlCisgICAgICBzcGVjaWZpZWQgYnl0ZSB2YWx1ZS4gIFRoaXMgY2FuIGJlIHVzZWZ1bCB3aGVuIHRyeWluZyB0byBzaGFrZSBvdXQKKyAgICAgIG9ic2N1cmUgbWVtb3J5IGNvcnJ1cHRpb24gcHJvYmxlbXMuICBUaGUgZnJlZWQgYXJlYSBpcyBzdGlsbAorICAgICAgcmVnYXJkZWQgYnkgTWVtY2hlY2sgYXMgbm90IHZhbGlkIGZvciBhY2Nlc3MgLS0gdGhpcyBvcHRpb24gb25seQorICAgICAgYWZmZWN0cyBpdHMgY29udGVudHMuIE5vdGUgdGhhdCA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWZyZWUtZmlsbDwvY29kZT4gZG9lcyBub3QKKyAgICAgIGFmZmVjdCBhIGJsb2NrIG9mIG1lbW9yeSB3aGVuIGl0IGlzIHVzZWQgYXMgYXJndW1lbnQgdG8KKyAgICAgIGNsaWVudCByZXF1ZXN0cyBWQUxHUklORF9NRU1QT09MX0ZSRUUgb3IgVkFMR1JJTkRfRlJFRUxJS0VfQkxPQ0suCisgICAgICA8L3A+PC9kZD4KKzwvZGw+Cis8L2Rpdj4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDEiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj4KKzxhIG5hbWU9Im1jLW1hbnVhbC5zdXBwZmlsZXMiPjwvYT40LjQuoFdyaXRpbmcgc3VwcHJlc3Npb24gZmlsZXM8L2gyPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+VGhlIGJhc2ljIHN1cHByZXNzaW9uIGZvcm1hdCBpcyBkZXNjcmliZWQgaW4gCis8YSBjbGFzcz0ieHJlZiIgaHJlZj0ibWFudWFsLWNvcmUuaHRtbCNtYW51YWwtY29yZS5zdXBwcmVzcyIgdGl0bGU9IjIuNS6gU3VwcHJlc3NpbmcgZXJyb3JzIj5TdXBwcmVzc2luZyBlcnJvcnM8L2E+LjwvcD4KKzxwPlRoZSBzdXBwcmVzc2lvbi10eXBlIChzZWNvbmQpIGxpbmUgc2hvdWxkIGhhdmUgdGhlIGZvcm06PC9wPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPgorTWVtY2hlY2s6c3VwcHJlc3Npb25fdHlwZTwvcHJlPgorPHA+VGhlIE1lbWNoZWNrIHN1cHByZXNzaW9uIHR5cGVzIGFyZSBhcyBmb2xsb3dzOjwvcD4KKzxkaXYgY2xhc3M9Iml0ZW1pemVkbGlzdCI+PHVsIGNsYXNzPSJpdGVtaXplZGxpc3QiIHN0eWxlPSJsaXN0LXN0eWxlLXR5cGU6IGRpc2M7ICI+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD48Y29kZSBjbGFzcz0idmFybmFtZSI+VmFsdWUxPC9jb2RlPiwgCisgICAgPGNvZGUgY2xhc3M9InZhcm5hbWUiPlZhbHVlMjwvY29kZT4sCisgICAgPGNvZGUgY2xhc3M9InZhcm5hbWUiPlZhbHVlNDwvY29kZT4sCisgICAgPGNvZGUgY2xhc3M9InZhcm5hbWUiPlZhbHVlODwvY29kZT4sCisgICAgPGNvZGUgY2xhc3M9InZhcm5hbWUiPlZhbHVlMTY8L2NvZGU+LAorICAgIG1lYW5pbmcgYW4gdW5pbml0aWFsaXNlZC12YWx1ZSBlcnJvciB3aGVuCisgICAgdXNpbmcgYSB2YWx1ZSBvZiAxLCAyLCA0LCA4IG9yIDE2IGJ5dGVzLjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+PGNvZGUgY2xhc3M9InZhcm5hbWUiPkNvbmQ8L2NvZGU+IChvciBpdHMgb2xkCisgICAgbmFtZSwgPGNvZGUgY2xhc3M9InZhcm5hbWUiPlZhbHVlMDwvY29kZT4pLCBtZWFuaW5nIHVzZQorICAgIG9mIGFuIHVuaW5pdGlhbGlzZWQgQ1BVIGNvbmRpdGlvbiBjb2RlLjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+PGNvZGUgY2xhc3M9InZhcm5hbWUiPkFkZHIxPC9jb2RlPiwKKyAgICA8Y29kZSBjbGFzcz0idmFybmFtZSI+QWRkcjI8L2NvZGU+LCAKKyAgICA8Y29kZSBjbGFzcz0idmFybmFtZSI+QWRkcjQ8L2NvZGU+LAorICAgIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5BZGRyODwvY29kZT4sCisgICAgPGNvZGUgY2xhc3M9InZhcm5hbWUiPkFkZHIxNjwvY29kZT4sIAorICAgIG1lYW5pbmcgYW4gaW52YWxpZCBhZGRyZXNzIGR1cmluZyBhCisgICAgbWVtb3J5IGFjY2VzcyBvZiAxLCAyLCA0LCA4IG9yIDE2IGJ5dGVzIHJlc3BlY3RpdmVseS48L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPjxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5KdW1wPC9jb2RlPiwgbWVhbmluZyBhbgorICAgIGp1bXAgdG8gYW4gdW5hZGRyZXNzYWJsZSBsb2NhdGlvbiBlcnJvci48L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPjxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5QYXJhbTwvY29kZT4sIG1lYW5pbmcgYW4KKyAgICBpbnZhbGlkIHN5c3RlbSBjYWxsIHBhcmFtZXRlciBlcnJvci48L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPjxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5GcmVlPC9jb2RlPiwgbWVhbmluZyBhbgorICAgIGludmFsaWQgb3IgbWlzbWF0Y2hpbmcgZnJlZS48L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPjxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5PdmVybGFwPC9jb2RlPiwgbWVhbmluZyBhCisgICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5zcmM8L2NvZGU+IC8KKyAgICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmRzdDwvY29kZT4gb3ZlcmxhcCBpbgorICAgIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+bWVtY3B5PC9jb2RlPiBvciBhIHNpbWlsYXIgZnVuY3Rpb24uPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD48Y29kZSBjbGFzcz0idmFybmFtZSI+TGVhazwvY29kZT4sIG1lYW5pbmcKKyAgICBhIG1lbW9yeSBsZWFrLjwvcD48L2xpPgorPC91bD48L2Rpdj4KKzxwPjxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+UGFyYW08L2NvZGU+IGVycm9ycyBoYXZlIGEgbWFuZGF0b3J5IGV4dHJhCitpbmZvcm1hdGlvbiBsaW5lIGF0IHRoaXMgcG9pbnQsIHdoaWNoIGlzIHRoZSBuYW1lIG9mIHRoZSBvZmZlbmRpbmcKK3N5c3RlbSBjYWxsIHBhcmFtZXRlci4gPC9wPgorPHA+PGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5MZWFrPC9jb2RlPiBlcnJvcnMgaGF2ZSBhbiBvcHRpb25hbAorZXh0cmEgaW5mb3JtYXRpb24gbGluZSwgd2l0aCB0aGUgZm9sbG93aW5nIGZvcm1hdDo8L3A+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CittYXRjaC1sZWFrLWtpbmRzOiZsdDtzZXQmZ3Q7PC9wcmU+Cis8cD53aGVyZSA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPiZsdDtzZXQmZ3Q7PC9jb2RlPiBzcGVjaWZpZXMgd2hpY2gKK2xlYWsga2luZHMgYXJlIG1hdGNoZWQgYnkgdGhpcyBzdXBwcmVzc2lvbiBlbnRyeS4gCis8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPiZsdDtzZXQmZ3Q7PC9jb2RlPiBpcyBzcGVjaWZpZWQgaW4gdGhlCitzYW1lIHdheSBhcyB3aXRoIHRoZSBvcHRpb24gPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1zaG93LWxlYWsta2luZHM8L2NvZGU+LCB0aGF0IGlzLAorb25lIG9mIHRoZSBmb2xsb3dpbmc6PC9wPgorPGRpdiBjbGFzcz0iaXRlbWl6ZWRsaXN0Ij48dWwgY2xhc3M9Iml0ZW1pemVkbGlzdCIgc3R5bGU9Imxpc3Qtc3R5bGUtdHlwZTogZGlzYzsgIj4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPmEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2Ygb25lIG9yIG1vcmUgb2YKKyAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj5kZWZpbml0ZSBpbmRpcmVjdCBwb3NzaWJsZSByZWFjaGFibGU8L2NvZGU+LgorICA8L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+Cis8Y29kZSBjbGFzcz0ib3B0aW9uIj5hbGw8L2NvZGU+IHRvIHNwZWNpZnkgdGhlIGNvbXBsZXRlIHNldCAoYWxsIGxlYWsga2luZHMpLgorICA8L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+Cis8Y29kZSBjbGFzcz0ib3B0aW9uIj5ub25lPC9jb2RlPiBmb3IgdGhlIGVtcHR5IHNldC4KKyAgPC9saT4KKzwvdWw+PC9kaXY+Cis8cD5JZiB0aGlzIG9wdGlvbmFsIGV4dHJhIGxpbmUgaXMgbm90IHByZXNlbnQsIHRoZSBzdXBwcmVzc2lvbgorZW50cnkgd2lsbCBtYXRjaCBhbGwgbGVhayBraW5kcy48L3A+Cis8cD5CZSBhd2FyZSB0aGF0IGxlYWsgc3VwcHJlc3Npb25zIHRoYXQgYXJlIGNyZWF0ZWQgdXNpbmcKKzxjb2RlIGNsYXNzPSJvcHRpb24iPi0tZ2VuLXN1cHByZXNzaW9uczwvY29kZT4gd2lsbCBjb250YWluIHRoaXMgb3B0aW9uYWwgZXh0cmEKK2xpbmUsIGFuZCB0aGVyZWZvcmUgbWF5IG1hdGNoIGZld2VyIGxlYWtzIHRoYW4geW91IGV4cGVjdC4gIFlvdSBtYXkKK3dhbnQgdG8gcmVtb3ZlIHRoZSBsaW5lIGJlZm9yZSB1c2luZyB0aGUgZ2VuZXJhdGVkCitzdXBwcmVzc2lvbnMuPC9wPgorPHA+VGhlIG90aGVyIE1lbWNoZWNrIGVycm9yIGtpbmRzIGRvIG5vdCBoYXZlIGV4dHJhIGxpbmVzLjwvcD4KKzxwPgorSWYgeW91IGdpdmUgdGhlIDxjb2RlIGNsYXNzPSJvcHRpb24iPi12PC9jb2RlPiBvcHRpb24sIFZhbGdyaW5kIHdpbGwgcHJpbnQKK3RoZSBsaXN0IG9mIHVzZWQgc3VwcHJlc3Npb25zIGF0IHRoZSBlbmQgb2YgZXhlY3V0aW9uLgorRm9yIGEgbGVhayBzdXBwcmVzc2lvbiwgdGhpcyBvdXRwdXQgZ2l2ZXMgdGhlIG51bWJlciBvZiBkaWZmZXJlbnQKK2xvc3MgcmVjb3JkcyB0aGF0IG1hdGNoIHRoZSBzdXBwcmVzc2lvbiwgYW5kIHRoZSBudW1iZXIgb2YgYnl0ZXMKK2FuZCBibG9ja3Mgc3VwcHJlc3NlZCBieSB0aGUgc3VwcHJlc3Npb24uCitJZiB0aGUgcnVuIGNvbnRhaW5zIG11bHRpcGxlIGxlYWsgY2hlY2tzLCB0aGUgbnVtYmVyIG9mIGJ5dGVzIGFuZCBibG9ja3MKK2FyZSByZXNldCB0byB6ZXJvIGJlZm9yZSBlYWNoIG5ldyBsZWFrIGNoZWNrLiBOb3RlIHRoYXQgdGhlIG51bWJlciBvZiBkaWZmZXJlbnQKK2xvc3MgcmVjb3JkcyBpcyBub3QgcmVzZXQgdG8gemVyby48L3A+Cis8cD5JbiB0aGUgZXhhbXBsZSBiZWxvdywgaW4gdGhlIGxhc3QgbGVhayBzZWFyY2gsIDcgYmxvY2tzIGFuZCA5NiBieXRlcyBoYXZlCitiZWVuIHN1cHByZXNzZWQgYnkgYSBzdXBwcmVzc2lvbiB3aXRoIHRoZSBuYW1lCis8Y29kZSBjbGFzcz0ib3B0aW9uIj5zb21lX2xlYWtfc3VwcHJlc3Npb248L2NvZGU+OjwvcD4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KKy0tMjEwNDEtLSB1c2VkX3N1cHByZXNzaW9uOiAgICAgMTAgc29tZV9vdGhlcl9sZWFrX3N1cHByZXNzaW9uIHMuc3VwcDoxNCBzdXBwcmVzc2VkOiAxMiw0MDAgYnl0ZXMgaW4gMSBibG9ja3MKKy0tMjEwNDEtLSB1c2VkX3N1cHByZXNzaW9uOiAgICAgMzkgc29tZV9sZWFrX3N1cHByZXNzaW9uIHMuc3VwcDoyIHN1cHByZXNzZWQ6IDk2IGJ5dGVzIGluIDcgYmxvY2tzCis8L3ByZT4KKzxwPkZvciA8Y29kZSBjbGFzcz0idmFybmFtZSI+VmFsdWVOPC9jb2RlPiBhbmQgPGNvZGUgY2xhc3M9InZhcm5hbWUiPkFkZHJOPC9jb2RlPgorZXJyb3JzLCB0aGUgZmlyc3QgbGluZSBvZiB0aGUgY2FsbGluZyBjb250ZXh0IGlzIGVpdGhlciB0aGUgbmFtZSBvZgordGhlIGZ1bmN0aW9uIGluIHdoaWNoIHRoZSBlcnJvciBvY2N1cnJlZCwgb3IsIGZhaWxpbmcgdGhhdCwgdGhlIGZ1bGwKK3BhdGggb2YgdGhlIDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+LnNvPC9jb2RlPiBmaWxlIG9yIGV4ZWN1dGFibGUgY29udGFpbmluZyB0aGUKK2Vycm9yIGxvY2F0aW9uLiAgRm9yIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5GcmVlPC9jb2RlPiBlcnJvcnMsIHRoZSBmaXJzdCBsaW5lIGlzCit0aGUgbmFtZSBvZiB0aGUgZnVuY3Rpb24gZG9pbmcgdGhlIGZyZWVpbmcgKGVnLAorPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5mcmVlPC9jb2RlPiwgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5fX2J1aWx0aW5fdmVjX2RlbGV0ZTwvY29kZT4sCitldGMpLiAgRm9yIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5PdmVybGFwPC9jb2RlPiBlcnJvcnMsIHRoZSBmaXJzdCBsaW5lIGlzIHRoZSBuYW1lIG9mIHRoZQorZnVuY3Rpb24gd2l0aCB0aGUgb3ZlcmxhcHBpbmcgYXJndW1lbnRzIChlZy4KKzxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+bWVtY3B5PC9jb2RlPiwgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5zdHJjcHk8L2NvZGU+LCBldGMpLjwvcD4KKzxwPlRoZSBsYXN0IHBhcnQgb2YgYW55IHN1cHByZXNzaW9uIHNwZWNpZmllcyB0aGUgcmVzdCBvZiB0aGUKK2NhbGxpbmcgY29udGV4dCB0aGF0IG5lZWRzIHRvIGJlIG1hdGNoZWQuPC9wPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MSI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPgorPGEgbmFtZT0ibWMtbWFudWFsLm1hY2hpbmUiPjwvYT40LjUuoERldGFpbHMgb2YgTWVtY2hlY2sncyBjaGVja2luZyBtYWNoaW5lcnk8L2gyPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+UmVhZCB0aGlzIHNlY3Rpb24gaWYgeW91IHdhbnQgdG8ga25vdywgaW4gZGV0YWlsLCBleGFjdGx5Cit3aGF0IGFuZCBob3cgTWVtY2hlY2sgaXMgY2hlY2tpbmcuPC9wPgorPGRpdiBjbGFzcz0ic2VjdDIiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJtYy1tYW51YWwudmFsdWUiPjwvYT40LjUuMS6gVmFsaWQtdmFsdWUgKFYpIGJpdHM8L2gzPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+SXQgaXMgc2ltcGxlc3QgdG8gdGhpbmsgb2YgTWVtY2hlY2sgaW1wbGVtZW50aW5nIGEgc3ludGhldGljIENQVQord2hpY2ggaXMgaWRlbnRpY2FsIHRvIGEgcmVhbCBDUFUsIGV4Y2VwdCBmb3Igb25lIGNydWNpYWwgZGV0YWlsLiAgRXZlcnkKK2JpdCAobGl0ZXJhbGx5KSBvZiBkYXRhIHByb2Nlc3NlZCwgc3RvcmVkIGFuZCBoYW5kbGVkIGJ5IHRoZSByZWFsIENQVQoraGFzLCBpbiB0aGUgc3ludGhldGljIENQVSwgYW4gYXNzb2NpYXRlZCAidmFsaWQtdmFsdWUiIGJpdCwgd2hpY2ggc2F5cword2hldGhlciBvciBub3QgdGhlIGFjY29tcGFueWluZyBiaXQgaGFzIGEgbGVnaXRpbWF0ZSB2YWx1ZS4gIEluIHRoZQorZGlzY3Vzc2lvbnMgd2hpY2ggZm9sbG93LCB0aGlzIGJpdCBpcyByZWZlcnJlZCB0byBhcyB0aGUgViAodmFsaWQtdmFsdWUpCitiaXQuPC9wPgorPHA+RWFjaCBieXRlIGluIHRoZSBzeXN0ZW0gdGhlcmVmb3JlIGhhcyBhIDggViBiaXRzIHdoaWNoIGZvbGxvdyBpdAord2hlcmV2ZXIgaXQgZ29lcy4gIEZvciBleGFtcGxlLCB3aGVuIHRoZSBDUFUgbG9hZHMgYSB3b3JkLXNpemUgaXRlbSAoNAorYnl0ZXMpIGZyb20gbWVtb3J5LCBpdCBhbHNvIGxvYWRzIHRoZSBjb3JyZXNwb25kaW5nIDMyIFYgYml0cyBmcm9tIGEKK2JpdG1hcCB3aGljaCBzdG9yZXMgdGhlIFYgYml0cyBmb3IgdGhlIHByb2Nlc3MnIGVudGlyZSBhZGRyZXNzIHNwYWNlLgorSWYgdGhlIENQVSBzaG91bGQgbGF0ZXIgd3JpdGUgdGhlIHdob2xlIG9yIHNvbWUgcGFydCBvZiB0aGF0IHZhbHVlIHRvCittZW1vcnkgYXQgYSBkaWZmZXJlbnQgYWRkcmVzcywgdGhlIHJlbGV2YW50IFYgYml0cyB3aWxsIGJlIHN0b3JlZCBiYWNrCitpbiB0aGUgVi1iaXQgYml0bWFwLjwvcD4KKzxwPkluIHNob3J0LCBlYWNoIGJpdCBpbiB0aGUgc3lzdGVtIGhhcyAoY29uY2VwdHVhbGx5KSBhbiBhc3NvY2lhdGVkIFYKK2JpdCwgd2hpY2ggZm9sbG93cyBpdCBhcm91bmQgZXZlcnl3aGVyZSwgZXZlbiBpbnNpZGUgdGhlIENQVS4gIFllcywgYWxsIHRoZQorQ1BVJ3MgcmVnaXN0ZXJzIChpbnRlZ2VyLCBmbG9hdGluZyBwb2ludCwgdmVjdG9yIGFuZCBjb25kaXRpb24gcmVnaXN0ZXJzKQoraGF2ZSB0aGVpciBvd24gViBiaXQgdmVjdG9ycy4gIEZvciB0aGlzIHRvIHdvcmssIE1lbWNoZWNrIHVzZXMgYSBncmVhdCBkZWFsCitvZiBjb21wcmVzc2lvbiB0byByZXByZXNlbnQgdGhlIFYgYml0cyBjb21wYWN0bHkuPC9wPgorPHA+Q29weWluZyB2YWx1ZXMgYXJvdW5kIGRvZXMgbm90IGNhdXNlIE1lbWNoZWNrIHRvIGNoZWNrIGZvciwgb3IKK3JlcG9ydCBvbiwgZXJyb3JzLiAgSG93ZXZlciwgd2hlbiBhIHZhbHVlIGlzIHVzZWQgaW4gYSB3YXkgd2hpY2ggbWlnaHQKK2NvbmNlaXZhYmx5IGFmZmVjdCB5b3VyIHByb2dyYW0ncyBleHRlcm5hbGx5LXZpc2libGUgYmVoYXZpb3VyLAordGhlIGFzc29jaWF0ZWQgViBiaXRzIGFyZSBpbW1lZGlhdGVseSBjaGVja2VkLiAgSWYgYW55IG9mIHRoZXNlIGluZGljYXRlCit0aGF0IHRoZSB2YWx1ZSBpcyB1bmRlZmluZWQgKGV2ZW4gcGFydGlhbGx5KSwgYW4gZXJyb3IgaXMgcmVwb3J0ZWQuPC9wPgorPHA+SGVyZSdzIGFuIChhZG1pdHRlZGx5IG5vbnNlbnNpY2FsKSBleGFtcGxlOjwvcD4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KK2ludCBpLCBqOworaW50IGFbMTBdLCBiWzEwXTsKK2ZvciAoIGkgPSAwOyBpICZsdDsgMTA7IGkrKyApIHsKKyAgaiA9IGFbaV07CisgIGJbaV0gPSBqOworfTwvcHJlPgorPHA+TWVtY2hlY2sgZW1pdHMgbm8gY29tcGxhaW50cyBhYm91dCB0aGlzLCBzaW5jZSBpdCBtZXJlbHkgY29waWVzCit1bmluaXRpYWxpc2VkIHZhbHVlcyBmcm9tIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5hW108L2NvZGU+IGludG8KKzxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5iW108L2NvZGU+LCBhbmQgZG9lc24ndCB1c2UgdGhlbSBpbiBhIHdheSB3aGljaCBjb3VsZAorYWZmZWN0IHRoZSBiZWhhdmlvdXIgb2YgdGhlIHByb2dyYW0uICBIb3dldmVyLCBpZgordGhlIGxvb3AgaXMgY2hhbmdlZCB0bzo8L3A+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Citmb3IgKCBpID0gMDsgaSAmbHQ7IDEwOyBpKysgKSB7CisgIGogKz0gYVtpXTsKK30KK2lmICggaiA9PSA3NyApIAorICBwcmludGYoImhlbGxvIHRoZXJlXG4iKTsKKzwvcHJlPgorPHA+dGhlbiBNZW1jaGVjayB3aWxsIGNvbXBsYWluLCBhdCB0aGUKKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+aWY8L2NvZGU+LCB0aGF0IHRoZSBjb25kaXRpb24gZGVwZW5kcyBvbgordW5pbml0aWFsaXNlZCB2YWx1ZXMuICBOb3RlIHRoYXQgaXQgPHNwYW4gY2xhc3M9ImNvbW1hbmQiPjxzdHJvbmc+ZG9lc24ndDwvc3Ryb25nPjwvc3Bhbj4gY29tcGxhaW4KK2F0IHRoZSA8Y29kZSBjbGFzcz0idmFybmFtZSI+aiArPSBhW2ldOzwvY29kZT4sIHNpbmNlIGF0IHRoYXQgcG9pbnQgdGhlCit1bmRlZmluZWRuZXNzIGlzIG5vdCAib2JzZXJ2YWJsZSIuICBJdCdzIG9ubHkgd2hlbiBhIGRlY2lzaW9uIGhhcyB0byBiZQorbWFkZSBhcyB0byB3aGV0aGVyIG9yIG5vdCB0byBkbyB0aGUgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5wcmludGY8L2NvZGU+IC0tIGFuCitvYnNlcnZhYmxlIGFjdGlvbiBvZiB5b3VyIHByb2dyYW0gLS0gdGhhdCBNZW1jaGVjayBjb21wbGFpbnMuPC9wPgorPHA+TW9zdCBsb3cgbGV2ZWwgb3BlcmF0aW9ucywgc3VjaCBhcyBhZGRzLCBjYXVzZSBNZW1jaGVjayB0byB1c2UgdGhlCitWIGJpdHMgZm9yIHRoZSBvcGVyYW5kcyB0byBjYWxjdWxhdGUgdGhlIFYgYml0cyBmb3IgdGhlIHJlc3VsdC4gIEV2ZW4gaWYKK3RoZSByZXN1bHQgaXMgcGFydGlhbGx5IG9yIHdob2xseSB1bmRlZmluZWQsIGl0IGRvZXMgbm90Citjb21wbGFpbi48L3A+Cis8cD5DaGVja3Mgb24gZGVmaW5lZG5lc3Mgb25seSBvY2N1ciBpbiB0aHJlZSBwbGFjZXM6IHdoZW4gYSB2YWx1ZSBpcwordXNlZCB0byBnZW5lcmF0ZSBhIG1lbW9yeSBhZGRyZXNzLCB3aGVuIGNvbnRyb2wgZmxvdyBkZWNpc2lvbiBuZWVkcyB0bworYmUgbWFkZSwgYW5kIHdoZW4gYSBzeXN0ZW0gY2FsbCBpcyBkZXRlY3RlZCwgTWVtY2hlY2sgY2hlY2tzIGRlZmluZWRuZXNzCitvZiBwYXJhbWV0ZXJzIGFzIHJlcXVpcmVkLjwvcD4KKzxwPklmIGEgY2hlY2sgc2hvdWxkIGRldGVjdCB1bmRlZmluZWRuZXNzLCBhbiBlcnJvciBtZXNzYWdlIGlzCitpc3N1ZWQuICBUaGUgcmVzdWx0aW5nIHZhbHVlIGlzIHN1YnNlcXVlbnRseSByZWdhcmRlZCBhcyB3ZWxsLWRlZmluZWQuCitUbyBkbyBvdGhlcndpc2Ugd291bGQgZ2l2ZSBsb25nIGNoYWlucyBvZiBlcnJvciBtZXNzYWdlcy4gIEluIG90aGVyCit3b3Jkcywgb25jZSBNZW1jaGVjayByZXBvcnRzIGFuIHVuZGVmaW5lZCB2YWx1ZSBlcnJvciwgaXQgdHJpZXMgdG8KK2F2b2lkIHJlcG9ydGluZyBmdXJ0aGVyIGVycm9ycyBkZXJpdmVkIGZyb20gdGhhdCBzYW1lIHVuZGVmaW5lZAordmFsdWUuPC9wPgorPHA+VGhpcyBzb3VuZHMgb3ZlcmNvbXBsaWNhdGVkLiAgV2h5IG5vdCBqdXN0IGNoZWNrIGFsbCByZWFkcyBmcm9tCittZW1vcnksIGFuZCBjb21wbGFpbiBpZiBhbiB1bmRlZmluZWQgdmFsdWUgaXMgbG9hZGVkIGludG8gYSBDUFUKK3JlZ2lzdGVyPyAgV2VsbCwgdGhhdCBkb2Vzbid0IHdvcmsgd2VsbCwgYmVjYXVzZSBwZXJmZWN0bHkgbGVnaXRpbWF0ZSBDCitwcm9ncmFtcyByb3V0aW5lbHkgY29weSB1bmluaXRpYWxpc2VkIHZhbHVlcyBhcm91bmQgaW4gbWVtb3J5LCBhbmQgd2UKK2Rvbid0IHdhbnQgZW5kbGVzcyBjb21wbGFpbnRzIGFib3V0IHRoYXQuICBIZXJlJ3MgdGhlIGNhbm9uaWNhbCBleGFtcGxlLgorQ29uc2lkZXIgYSBzdHJ1Y3QgbGlrZSB0aGlzOjwvcD4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KK3N0cnVjdCBTIHsgaW50IHg7IGNoYXIgYzsgfTsKK3N0cnVjdCBTIHMxLCBzMjsKK3MxLnggPSA0MjsKK3MxLmMgPSAneic7CitzMiA9IHMxOworPC9wcmU+Cis8cD5UaGUgcXVlc3Rpb24gdG8gYXNrIGlzOiBob3cgbGFyZ2UgaXMgPGNvZGUgY2xhc3M9InZhcm5hbWUiPnN0cnVjdCBTPC9jb2RlPiwKK2luIGJ5dGVzPyAgQW4gPGNvZGUgY2xhc3M9InZhcm5hbWUiPmludDwvY29kZT4gaXMgNCBieXRlcyBhbmQgYQorPGNvZGUgY2xhc3M9InZhcm5hbWUiPmNoYXI8L2NvZGU+IG9uZSBieXRlLCBzbyBwZXJoYXBzIGEgPGNvZGUgY2xhc3M9InZhcm5hbWUiPnN0cnVjdAorUzwvY29kZT4gb2NjdXBpZXMgNSBieXRlcz8gIFdyb25nLiAgQWxsIG5vbi10b3kgY29tcGlsZXJzIHdlIGtub3cKK29mIHdpbGwgcm91bmQgdGhlIHNpemUgb2YgPGNvZGUgY2xhc3M9InZhcm5hbWUiPnN0cnVjdCBTPC9jb2RlPiB1cCB0byBhIHdob2xlCitudW1iZXIgb2Ygd29yZHMsIGluIHRoaXMgY2FzZSA4IGJ5dGVzLiAgTm90IGRvaW5nIHRoaXMgZm9yY2VzIGNvbXBpbGVycwordG8gZ2VuZXJhdGUgdHJ1bHkgYXBwYWxsaW5nIGNvZGUgZm9yIGFjY2Vzc2luZyBhcnJheXMgb2YKKzxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5zdHJ1Y3QgUzwvY29kZT4ncyBvbiBzb21lIGFyY2hpdGVjdHVyZXMuPC9wPgorPHA+U28gPGNvZGUgY2xhc3M9InZhcm5hbWUiPnMxPC9jb2RlPiBvY2N1cGllcyA4IGJ5dGVzLCB5ZXQgb25seSA1IG9mIHRoZW0gd2lsbAorYmUgaW5pdGlhbGlzZWQuICBGb3IgdGhlIGFzc2lnbm1lbnQgPGNvZGUgY2xhc3M9InZhcm5hbWUiPnMyID0gczE8L2NvZGU+LCBHQ0MKK2dlbmVyYXRlcyBjb2RlIHRvIGNvcHkgYWxsIDggYnl0ZXMgd2hvbGVzYWxlIGludG8gPGNvZGUgY2xhc3M9InZhcm5hbWUiPnMyPC9jb2RlPgord2l0aG91dCByZWdhcmQgZm9yIHRoZWlyIG1lYW5pbmcuICBJZiBNZW1jaGVjayBzaW1wbHkgY2hlY2tlZCB2YWx1ZXMgYXMKK3RoZXkgY2FtZSBvdXQgb2YgbWVtb3J5LCBpdCB3b3VsZCB5ZWxwIGV2ZXJ5IHRpbWUgYSBzdHJ1Y3R1cmUgYXNzaWdubWVudAorbGlrZSB0aGlzIGhhcHBlbmVkLiAgU28gdGhlIG1vcmUgY29tcGxpY2F0ZWQgYmVoYXZpb3VyIGRlc2NyaWJlZCBhYm92ZQoraXMgbmVjZXNzYXJ5LiAgVGhpcyBhbGxvd3MgR0NDIHRvIGNvcHkKKzxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5zMTwvY29kZT4gaW50byA8Y29kZSBjbGFzcz0idmFybmFtZSI+czI8L2NvZGU+IGFueSB3YXkgaXQgbGlrZXMsIGFuZCBhCit3YXJuaW5nIHdpbGwgb25seSBiZSBlbWl0dGVkIGlmIHRoZSB1bmluaXRpYWxpc2VkIHZhbHVlcyBhcmUgbGF0ZXIKK3VzZWQuPC9wPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MiI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9Im1jLW1hbnVhbC52YWRkcmVzcyI+PC9hPjQuNS4yLqBWYWxpZC1hZGRyZXNzIChBKSBiaXRzPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPk5vdGljZSB0aGF0IHRoZSBwcmV2aW91cyBzdWJzZWN0aW9uIGRlc2NyaWJlcyBob3cgdGhlIHZhbGlkaXR5IG9mCit2YWx1ZXMgaXMgZXN0YWJsaXNoZWQgYW5kIG1haW50YWluZWQgd2l0aG91dCBoYXZpbmcgdG8gc2F5IHdoZXRoZXIgdGhlCitwcm9ncmFtIGRvZXMgb3IgZG9lcyBub3QgaGF2ZSB0aGUgcmlnaHQgdG8gYWNjZXNzIGFueSBwYXJ0aWN1bGFyIG1lbW9yeQorbG9jYXRpb24uICBXZSBub3cgY29uc2lkZXIgdGhlIGxhdHRlciBxdWVzdGlvbi48L3A+Cis8cD5BcyBkZXNjcmliZWQgYWJvdmUsIGV2ZXJ5IGJpdCBpbiBtZW1vcnkgb3IgaW4gdGhlIENQVSBoYXMgYW4KK2Fzc29jaWF0ZWQgdmFsaWQtdmFsdWUgKFYpIGJpdC4gIEluIGFkZGl0aW9uLCBhbGwgYnl0ZXMgaW4gbWVtb3J5LCBidXQKK25vdCBpbiB0aGUgQ1BVLCBoYXZlIGFuIGFzc29jaWF0ZWQgdmFsaWQtYWRkcmVzcyAoQSkgYml0LiAgVGhpcworaW5kaWNhdGVzIHdoZXRoZXIgb3Igbm90IHRoZSBwcm9ncmFtIGNhbiBsZWdpdGltYXRlbHkgcmVhZCBvciB3cml0ZSB0aGF0Citsb2NhdGlvbi4gIEl0IGRvZXMgbm90IGdpdmUgYW55IGluZGljYXRpb24gb2YgdGhlIHZhbGlkaXR5IG9mIHRoZSBkYXRhCithdCB0aGF0IGxvY2F0aW9uIC0tIHRoYXQncyB0aGUgam9iIG9mIHRoZSBWIGJpdHMgLS0gb25seSB3aGV0aGVyIG9yIG5vdAordGhlIGxvY2F0aW9uIG1heSBiZSBhY2Nlc3NlZC48L3A+Cis8cD5FdmVyeSB0aW1lIHlvdXIgcHJvZ3JhbSByZWFkcyBvciB3cml0ZXMgbWVtb3J5LCBNZW1jaGVjayBjaGVja3MKK3RoZSBBIGJpdHMgYXNzb2NpYXRlZCB3aXRoIHRoZSBhZGRyZXNzLiAgSWYgYW55IG9mIHRoZW0gaW5kaWNhdGUgYW4KK2ludmFsaWQgYWRkcmVzcywgYW4gZXJyb3IgaXMgZW1pdHRlZC4gIE5vdGUgdGhhdCB0aGUgcmVhZHMgYW5kIHdyaXRlcwordGhlbXNlbHZlcyBkbyBub3QgY2hhbmdlIHRoZSBBIGJpdHMsIG9ubHkgY29uc3VsdCB0aGVtLjwvcD4KKzxwPlNvIGhvdyBkbyB0aGUgQSBiaXRzIGdldCBzZXQvY2xlYXJlZD8gIExpa2UgdGhpczo8L3A+Cis8ZGl2IGNsYXNzPSJpdGVtaXplZGxpc3QiPjx1bCBjbGFzcz0iaXRlbWl6ZWRsaXN0IiBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOiBkaXNjOyAiPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+V2hlbiB0aGUgcHJvZ3JhbSBzdGFydHMsIGFsbCB0aGUgZ2xvYmFsIGRhdGEgYXJlYXMgYXJlCisgICAgbWFya2VkIGFzIGFjY2Vzc2libGUuPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5XaGVuIHRoZSBwcm9ncmFtIGRvZXMKKyAgICA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPm1hbGxvYzwvY29kZT4vPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5uZXc8L2NvZGU+LAorICAgIHRoZSBBIGJpdHMgZm9yIGV4YWN0bHkgdGhlIGFyZWEgYWxsb2NhdGVkLCBhbmQgbm90IGEgYnl0ZSBtb3JlLAorICAgIGFyZSBtYXJrZWQgYXMgYWNjZXNzaWJsZS4gIFVwb24gZnJlZWluZyB0aGUgYXJlYSB0aGUgQSBiaXRzIGFyZQorICAgIGNoYW5nZWQgdG8gaW5kaWNhdGUgaW5hY2Nlc3NpYmlsaXR5LjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+V2hlbiB0aGUgc3RhY2sgcG9pbnRlciByZWdpc3RlciAoPGNvZGUgY2xhc3M9ImxpdGVyYWwiPlNQPC9jb2RlPikgbW92ZXMKKyAgICB1cCBvciBkb3duLCBBIGJpdHMgYXJlIHNldC4gIFRoZSBydWxlIGlzIHRoYXQgdGhlIGFyZWEgZnJvbQorICAgIDxjb2RlIGNsYXNzPSJsaXRlcmFsIj5TUDwvY29kZT4gdXAgdG8gdGhlIGJhc2Ugb2YgdGhlIHN0YWNrIGlzIG1hcmtlZCBhcworICAgIGFjY2Vzc2libGUsIGFuZCBiZWxvdyA8Y29kZSBjbGFzcz0ibGl0ZXJhbCI+U1A8L2NvZGU+IGlzIGluYWNjZXNzaWJsZS4gIChJZgorICAgIHRoYXQgc291bmRzIGlsbG9naWNhbCwgYmVhciBpbiBtaW5kIHRoYXQgdGhlIHN0YWNrIGdyb3dzIGRvd24sIG5vdAorICAgIHVwLCBvbiBhbG1vc3QgYWxsIFVuaXggc3lzdGVtcywgaW5jbHVkaW5nIEdOVS9MaW51eC4pICBUcmFja2luZworICAgIDxjb2RlIGNsYXNzPSJsaXRlcmFsIj5TUDwvY29kZT4gbGlrZSB0aGlzIGhhcyB0aGUgdXNlZnVsIHNpZGUtZWZmZWN0IHRoYXQgdGhlCisgICAgc2VjdGlvbiBvZiBzdGFjayB1c2VkIGJ5IGEgZnVuY3Rpb24gZm9yIGxvY2FsIHZhcmlhYmxlcyBldGMgaXMKKyAgICBhdXRvbWF0aWNhbGx5IG1hcmtlZCBhY2Nlc3NpYmxlIG9uIGZ1bmN0aW9uIGVudHJ5IGFuZCBpbmFjY2Vzc2libGUKKyAgICBvbiBleGl0LjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+V2hlbiBkb2luZyBzeXN0ZW0gY2FsbHMsIEEgYml0cyBhcmUgY2hhbmdlZCBhcHByb3ByaWF0ZWx5LgorICAgIEZvciBleGFtcGxlLCA8Y29kZSBjbGFzcz0ibGl0ZXJhbCI+bW1hcDwvY29kZT4KKyAgICBtYWdpY2FsbHkgbWFrZXMgZmlsZXMgYXBwZWFyIGluIHRoZSBwcm9jZXNzJworICAgIGFkZHJlc3Mgc3BhY2UsIHNvIHRoZSBBIGJpdHMgbXVzdCBiZSB1cGRhdGVkIGlmIDxjb2RlIGNsYXNzPSJsaXRlcmFsIj5tbWFwPC9jb2RlPgorICAgIHN1Y2NlZWRzLjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+T3B0aW9uYWxseSwgeW91ciBwcm9ncmFtIGNhbiB0ZWxsIE1lbWNoZWNrIGFib3V0IHN1Y2ggY2hhbmdlcworICAgIGV4cGxpY2l0bHksIHVzaW5nIHRoZSBjbGllbnQgcmVxdWVzdCBtZWNoYW5pc20gZGVzY3JpYmVkCisgICAgYWJvdmUuPC9wPjwvbGk+Cis8L3VsPjwvZGl2PgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MiI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9Im1jLW1hbnVhbC50b2dldGhlciI+PC9hPjQuNS4zLqBQdXR0aW5nIGl0IGFsbCB0b2dldGhlcjwvaDM+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD5NZW1jaGVjaydzIGNoZWNraW5nIG1hY2hpbmVyeSBjYW4gYmUgc3VtbWFyaXNlZCBhcworZm9sbG93czo8L3A+Cis8ZGl2IGNsYXNzPSJpdGVtaXplZGxpc3QiPjx1bCBjbGFzcz0iaXRlbWl6ZWRsaXN0IiBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOiBkaXNjOyAiPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+RWFjaCBieXRlIGluIG1lbW9yeSBoYXMgOCBhc3NvY2lhdGVkIFYgKHZhbGlkLXZhbHVlKSBiaXRzLAorICAgIHNheWluZyB3aGV0aGVyIG9yIG5vdCB0aGUgYnl0ZSBoYXMgYSBkZWZpbmVkIHZhbHVlLCBhbmQgYSBzaW5nbGUgQQorICAgICh2YWxpZC1hZGRyZXNzKSBiaXQsIHNheWluZyB3aGV0aGVyIG9yIG5vdCB0aGUgcHJvZ3JhbSBjdXJyZW50bHkgaGFzCisgICAgdGhlIHJpZ2h0IHRvIHJlYWQvd3JpdGUgdGhhdCBhZGRyZXNzLiAgQXMgbWVudGlvbmVkIGFib3ZlLCBoZWF2eQorICAgIHVzZSBvZiBjb21wcmVzc2lvbiBtZWFucyB0aGUgb3ZlcmhlYWQgaXMgdHlwaWNhbGx5IGFyb3VuZCAyNSUuPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5XaGVuIG1lbW9yeSBpcyByZWFkIG9yIHdyaXR0ZW4sIHRoZSByZWxldmFudCBBIGJpdHMgYXJlCisgICAgY29uc3VsdGVkLiAgSWYgdGhleSBpbmRpY2F0ZSBhbiBpbnZhbGlkIGFkZHJlc3MsIE1lbWNoZWNrIGVtaXRzIGFuCisgICAgSW52YWxpZCByZWFkIG9yIEludmFsaWQgd3JpdGUgZXJyb3IuPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5XaGVuIG1lbW9yeSBpcyByZWFkIGludG8gdGhlIENQVSdzIHJlZ2lzdGVycywgdGhlIHJlbGV2YW50IFYKKyAgICBiaXRzIGFyZSBmZXRjaGVkIGZyb20gbWVtb3J5IGFuZCBzdG9yZWQgaW4gdGhlIHNpbXVsYXRlZCBDUFUuICBUaGV5CisgICAgYXJlIG5vdCBjb25zdWx0ZWQuPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5XaGVuIGEgcmVnaXN0ZXIgaXMgd3JpdHRlbiBvdXQgdG8gbWVtb3J5LCB0aGUgViBiaXRzIGZvciB0aGF0CisgICAgcmVnaXN0ZXIgYXJlIHdyaXR0ZW4gYmFjayB0byBtZW1vcnkgdG9vLjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+V2hlbiB2YWx1ZXMgaW4gQ1BVIHJlZ2lzdGVycyBhcmUgdXNlZCB0byBnZW5lcmF0ZSBhIG1lbW9yeQorICAgIGFkZHJlc3MsIG9yIHRvIGRldGVybWluZSB0aGUgb3V0Y29tZSBvZiBhIGNvbmRpdGlvbmFsIGJyYW5jaCwgdGhlIFYKKyAgICBiaXRzIGZvciB0aG9zZSB2YWx1ZXMgYXJlIGNoZWNrZWQsIGFuZCBhbiBlcnJvciBlbWl0dGVkIGlmIGFueSBvZgorICAgIHRoZW0gYXJlIHVuZGVmaW5lZC48L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPldoZW4gdmFsdWVzIGluIENQVSByZWdpc3RlcnMgYXJlIHVzZWQgZm9yIGFueSBvdGhlciBwdXJwb3NlLAorICAgIE1lbWNoZWNrIGNvbXB1dGVzIHRoZSBWIGJpdHMgZm9yIHRoZSByZXN1bHQsIGJ1dCBkb2VzIG5vdCBjaGVjaworICAgIHRoZW0uPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5PbmNlIHRoZSBWIGJpdHMgZm9yIGEgdmFsdWUgaW4gdGhlIENQVSBoYXZlIGJlZW4gY2hlY2tlZCwgdGhleQorICAgIGFyZSB0aGVuIHNldCB0byBpbmRpY2F0ZSB2YWxpZGl0eS4gIFRoaXMgYXZvaWRzIGxvbmcgY2hhaW5zIG9mCisgICAgZXJyb3JzLjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+Cis8cD5XaGVuIHZhbHVlcyBhcmUgbG9hZGVkIGZyb20gbWVtb3J5LCBNZW1jaGVjayBjaGVja3MgdGhlIEEgYml0cworICAgIGZvciB0aGF0IGxvY2F0aW9uIGFuZCBpc3N1ZXMgYW4gaWxsZWdhbC1hZGRyZXNzIHdhcm5pbmcgaWYgbmVlZGVkLgorICAgIEluIHRoYXQgY2FzZSwgdGhlIFYgYml0cyBsb2FkZWQgYXJlIGZvcmNlZCB0byBpbmRpY2F0ZSBWYWxpZCwKKyAgICBkZXNwaXRlIHRoZSBsb2NhdGlvbiBiZWluZyBpbnZhbGlkLjwvcD4KKzxwPlRoaXMgYXBwYXJlbnRseSBzdHJhbmdlIGNob2ljZSByZWR1Y2VzIHRoZSBhbW91bnQgb2YgY29uZnVzaW5nCisgICAgaW5mb3JtYXRpb24gcHJlc2VudGVkIHRvIHRoZSB1c2VyLiAgSXQgYXZvaWRzIHRoZSB1bnBsZWFzYW50CisgICAgcGhlbm9tZW5vbiBpbiB3aGljaCBtZW1vcnkgaXMgcmVhZCBmcm9tIGEgcGxhY2Ugd2hpY2ggaXMgYm90aAorICAgIHVuYWRkcmVzc2FibGUgYW5kIGNvbnRhaW5zIGludmFsaWQgdmFsdWVzLCBhbmQsIGFzIGEgcmVzdWx0LCB5b3UgZ2V0CisgICAgbm90IG9ubHkgYW4gaW52YWxpZC1hZGRyZXNzIChyZWFkL3dyaXRlKSBlcnJvciwgYnV0IGFsc28gYQorICAgIHBvdGVudGlhbGx5IGxhcmdlIHNldCBvZiB1bmluaXRpYWxpc2VkLXZhbHVlIGVycm9ycywgb25lIGZvciBldmVyeQorICAgIHRpbWUgdGhlIHZhbHVlIGlzIHVzZWQuPC9wPgorPHA+VGhlcmUgaXMgYSBoYXp5IGJvdW5kYXJ5IGNhc2UgdG8gZG8gd2l0aCBtdWx0aS1ieXRlIGxvYWRzIGZyb20KKyAgICBhZGRyZXNzZXMgd2hpY2ggYXJlIHBhcnRpYWxseSB2YWxpZCBhbmQgcGFydGlhbGx5IGludmFsaWQuICBTZWUKKyAgICBkZXRhaWxzIG9mIHRoZSBvcHRpb24gPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1wYXJ0aWFsLWxvYWRzLW9rPC9jb2RlPiBmb3IgZGV0YWlscy4KKyAgICA8L3A+Cis8L2xpPgorPC91bD48L2Rpdj4KKzxwPk1lbWNoZWNrIGludGVyY2VwdHMgY2FsbHMgdG8gPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5tYWxsb2M8L2NvZGU+LAorPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5jYWxsb2M8L2NvZGU+LCA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPnJlYWxsb2M8L2NvZGU+LAorPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj52YWxsb2M8L2NvZGU+LCA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPm1lbWFsaWduPC9jb2RlPiwKKzxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+ZnJlZTwvY29kZT4sIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+bmV3PC9jb2RlPiwKKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+bmV3W108L2NvZGU+LAorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5kZWxldGU8L2NvZGU+IGFuZAorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5kZWxldGVbXTwvY29kZT4uICBUaGUgYmVoYXZpb3VyIHlvdSBnZXQKK2lzOjwvcD4KKzxkaXYgY2xhc3M9Iml0ZW1pemVkbGlzdCI+PHVsIGNsYXNzPSJpdGVtaXplZGxpc3QiIHN0eWxlPSJsaXN0LXN0eWxlLXR5cGU6IGRpc2M7ICI+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD48Y29kZSBjbGFzcz0iZnVuY3Rpb24iPm1hbGxvYzwvY29kZT4vPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5uZXc8L2NvZGU+Lzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+bmV3W108L2NvZGU+OgorICAgIHRoZSByZXR1cm5lZCBtZW1vcnkgaXMgbWFya2VkIGFzIGFkZHJlc3NhYmxlIGJ1dCBub3QgaGF2aW5nIHZhbGlkCisgICAgdmFsdWVzLiAgVGhpcyBtZWFucyB5b3UgaGF2ZSB0byB3cml0ZSB0byBpdCBiZWZvcmUgeW91IGNhbiByZWFkCisgICAgaXQuPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD48Y29kZSBjbGFzcz0iZnVuY3Rpb24iPmNhbGxvYzwvY29kZT46IHJldHVybmVkIG1lbW9yeSBpcyBtYXJrZWQgYm90aAorICAgIGFkZHJlc3NhYmxlIGFuZCB2YWxpZCwgc2luY2UgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5jYWxsb2M8L2NvZGU+IGNsZWFycworICAgIHRoZSBhcmVhIHRvIHplcm8uPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD48Y29kZSBjbGFzcz0iZnVuY3Rpb24iPnJlYWxsb2M8L2NvZGU+OiBpZiB0aGUgbmV3IHNpemUgaXMgbGFyZ2VyIHRoYW4KKyAgICB0aGUgb2xkLCB0aGUgbmV3IHNlY3Rpb24gaXMgYWRkcmVzc2FibGUgYnV0IGludmFsaWQsIGFzIHdpdGgKKyAgICA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPm1hbGxvYzwvY29kZT4uICBJZiB0aGUgbmV3IHNpemUgaXMgc21hbGxlciwgdGhlCisgICAgZHJvcHBlZC1vZmYgc2VjdGlvbiBpcyBtYXJrZWQgYXMgdW5hZGRyZXNzYWJsZS4gIFlvdSBtYXkgb25seSBwYXNzIHRvCisgICAgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5yZWFsbG9jPC9jb2RlPiBhIHBvaW50ZXIgcHJldmlvdXNseSBpc3N1ZWQgdG8geW91IGJ5CisgICAgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5tYWxsb2M8L2NvZGU+Lzxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+Y2FsbG9jPC9jb2RlPi88Y29kZSBjbGFzcz0iZnVuY3Rpb24iPnJlYWxsb2M8L2NvZGU+LjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+PGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5mcmVlPC9jb2RlPi88Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmRlbGV0ZTwvY29kZT4vPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5kZWxldGVbXTwvY29kZT46CisgICAgeW91IG1heSBvbmx5IHBhc3MgdG8gdGhlc2UgZnVuY3Rpb25zIGEgcG9pbnRlciBwcmV2aW91c2x5IGlzc3VlZAorICAgIHRvIHlvdSBieSB0aGUgY29ycmVzcG9uZGluZyBhbGxvY2F0aW9uIGZ1bmN0aW9uLiAgT3RoZXJ3aXNlLAorICAgIE1lbWNoZWNrIGNvbXBsYWlucy4gIElmIHRoZSBwb2ludGVyIGlzIGluZGVlZCB2YWxpZCwgTWVtY2hlY2sKKyAgICBtYXJrcyB0aGUgZW50aXJlIGFyZWEgaXQgcG9pbnRzIGF0IGFzIHVuYWRkcmVzc2FibGUsIGFuZCBwbGFjZXMKKyAgICB0aGUgYmxvY2sgaW4gdGhlIGZyZWVkLWJsb2Nrcy1xdWV1ZS4gIFRoZSBhaW0gaXMgdG8gZGVmZXIgYXMgbG9uZworICAgIGFzIHBvc3NpYmxlIHJlYWxsb2NhdGlvbiBvZiB0aGlzIGJsb2NrLiAgVW50aWwgdGhhdCBoYXBwZW5zLCBhbGwKKyAgICBhdHRlbXB0cyB0byBhY2Nlc3MgaXQgd2lsbCBlbGljaXQgYW4gaW52YWxpZC1hZGRyZXNzIGVycm9yLCBhcyB5b3UKKyAgICB3b3VsZCBob3BlLjwvcD48L2xpPgorPC91bD48L2Rpdj4KKzwvZGl2PgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MSI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPgorPGEgbmFtZT0ibWMtbWFudWFsLm1vbml0b3ItY29tbWFuZHMiPjwvYT40LjYuoE1lbWNoZWNrIE1vbml0b3IgQ29tbWFuZHM8L2gyPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+VGhlIE1lbWNoZWNrIHRvb2wgcHJvdmlkZXMgbW9uaXRvciBjb21tYW5kcyBoYW5kbGVkIGJ5IFZhbGdyaW5kJ3MKK2J1aWx0LWluIGdkYnNlcnZlciAoc2VlIDxhIGNsYXNzPSJ4cmVmIiBocmVmPSJtYW51YWwtY29yZS1hZHYuaHRtbCNtYW51YWwtY29yZS1hZHYuZ2Ric2VydmVyLWNvbW1hbmRoYW5kbGluZyIgdGl0bGU9IjMuMi41LqBNb25pdG9yIGNvbW1hbmQgaGFuZGxpbmcgYnkgdGhlIFZhbGdyaW5kIGdkYnNlcnZlciI+TW9uaXRvciBjb21tYW5kIGhhbmRsaW5nIGJ5IHRoZSBWYWxncmluZCBnZGJzZXJ2ZXI8L2E+KS4KKzwvcD4KKzxkaXYgY2xhc3M9Iml0ZW1pemVkbGlzdCI+PHVsIGNsYXNzPSJpdGVtaXplZGxpc3QiIHN0eWxlPSJsaXN0LXN0eWxlLXR5cGU6IGRpc2M7ICI+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj4KKzxwPjxjb2RlIGNsYXNzPSJ2YXJuYW1lIj54YiAmbHQ7YWRkciZndDsgWyZsdDtsZW4mZ3Q7XTwvY29kZT4KKyAgICAgIHNob3dzIHRoZSBkZWZpbmVkbmVzcyAoVikgYml0cyBhbmQgdmFsdWVzIGZvciAmbHQ7bGVuJmd0OyAoZGVmYXVsdCAxKQorICAgICAgYnl0ZXMgc3RhcnRpbmcgYXQgJmx0O2FkZHImZ3Q7LgorICAgICAgRm9yIGVhY2ggOCBieXRlcywgdHdvIGxpbmVzIGFyZSBvdXRwdXQuCisgICAgPC9wPgorPHA+CisgICAgICBUaGUgZmlyc3QgbGluZSBzaG93cyB0aGUgdmFsaWRpdHkgYml0cyBmb3IgOCBieXRlcy4KKyAgICAgIFRoZSBkZWZpbmVkbmVzcyBvZiBlYWNoIGJ5dGUgaW4gdGhlIHJhbmdlIGlzIGdpdmVuIHVzaW5nIHR3byBoZXhhZGVjaW1hbAorICAgICAgZGlnaXRzLiAgVGhlc2UgaGV4YWRlY2ltYWwgZGlnaXRzIGVuY29kZSB0aGUgdmFsaWRpdHkgb2YgZWFjaCBiaXQgb2YgdGhlCisgICAgICBjb3JyZXNwb25kaW5nIGJ5dGUsCisgICAgICB1c2luZyAwIGlmIHRoZSBiaXQgaXMgZGVmaW5lZCBhbmQgMSBpZiB0aGUgYml0IGlzIHVuZGVmaW5lZC4KKyAgICAgIElmIGEgYnl0ZSBpcyBub3QgYWRkcmVzc2FibGUsIGl0cyB2YWxpZGl0eSBiaXRzIGFyZSByZXBsYWNlZAorICAgICAgYnkgPGNvZGUgY2xhc3M9InZhcm5hbWUiPl9fPC9jb2RlPiAoYSBkb3VibGUgdW5kZXJzY29yZSkuCisgICAgPC9wPgorPHA+CisgICAgICBUaGUgc2Vjb25kIGxpbmUgc2hvd3MgdGhlIHZhbHVlcyBvZiB0aGUgYnl0ZXMgYmVsb3cgdGhlIGNvcnJlc3BvbmRpbmcKKyAgICAgIHZhbGlkaXR5IGJpdHMuIFRoZSBmb3JtYXQgdXNlZCB0byBzaG93IHRoZSBieXRlcyBkYXRhIGlzIHNpbWlsYXIgdG8gdGhlCisgICAgICBHREIgY29tbWFuZCAneCAvJmx0O2xlbiZndDt4YiAmbHQ7YWRkciZndDsnLiBUaGUgdmFsdWUgZm9yIGEgbm9uCisgICAgICBhZGRyZXNzYWJsZSBieXRlcyBpcyBzaG93biBhcyA/PyAodHdvIHF1ZXN0aW9uIG1hcmtzKS4KKyAgICA8L3A+Cis8cD4KKyAgICAgIEluIHRoZSBmb2xsb3dpbmcgZXhhbXBsZSwgPGNvZGUgY2xhc3M9InZhcm5hbWUiPnN0cmluZzEwPC9jb2RlPiBpcyBhbiBhcnJheQorICAgICAgb2YgMTAgY2hhcmFjdGVycywgaW4gd2hpY2ggdGhlIGV2ZW4gbnVtYmVyZWQgYnl0ZXMgYXJlCisgICAgICB1bmRlZmluZWQuIEluIHRoZSBiZWxvdyBleGFtcGxlLCB0aGUgYnl0ZSBjb3JyZXNwb25kaW5nCisgICAgICB0byA8Y29kZSBjbGFzcz0idmFybmFtZSI+c3RyaW5nMTBbNV08L2NvZGU+IGlzIG5vdCBhZGRyZXNzYWJsZS4KKyAgICA8L3A+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CisoZ2RiKSBwICZhbXA7c3RyaW5nMTAKKyQ0ID0gKGNoYXIgKCopWzEwXSkgMHg4MDRhMmYwCisoZ2RiKSBtbyB4YiAweDgwNGEyZjAgMTAKKyAgICAgICAgICAgICAgICAgIGZmICAgICAgMDAgICAgICBmZiAgICAgIDAwICAgICAgZmYgICAgICBfXyAgICAgIGZmICAgICAgMDAKKzB4ODA0QTJGMDogICAgICAweDNmICAgIDB4NmUgICAgMHgzZiAgICAweDY1ICAgIDB4M2YgICAgMHg/PyAgICAgMHgzZiAgICAweDY1CisgICAgICAgICAgICAgICAgICBmZiAgICAgIDAwCisweDgwNEEyRjg6ICAgICAgMHgzZiAgICAweDAwCitBZGRyZXNzIDB4ODA0QTJGMCBsZW4gMTAgaGFzIDEgYnl0ZXMgdW5hZGRyZXNzYWJsZQorKGdkYikKKzwvcHJlPgorPHA+IFRoZSBjb21tYW5kIHhiIGNhbm5vdCBiZSB1c2VkIHdpdGggcmVnaXN0ZXJzLiBUbyBnZXQKKyAgICAgIHRoZSB2YWxpZGl0eSBiaXRzIG9mIGEgcmVnaXN0ZXIsIHlvdSBtdXN0IHN0YXJ0IFZhbGdyaW5kIHdpdGggdGhlCisgICAgICBvcHRpb24gPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS12Z2RiLXNoYWRvdy1yZWdpc3RlcnM9eWVzPC9jb2RlPi4gVGhlIHZhbGlkaXR5CisgICAgICBiaXRzIG9mIGEgcmVnaXN0ZXIgY2FuIHRoZW4gYmUgb2J0YWluZWQgYnkgcHJpbnRpbmcgdGhlICdzaGFkb3cgMScKKyAgICAgIGNvcnJlc3BvbmRpbmcgcmVnaXN0ZXIuICBJbiB0aGUgYmVsb3cgeDg2IGV4YW1wbGUsIHRoZSByZWdpc3RlcgorICAgICAgZWF4IGhhcyBhbGwgaXRzIGJpdHMgdW5kZWZpbmVkLCB3aGlsZSB0aGUgcmVnaXN0ZXIgZWJ4IGlzIGZ1bGx5CisgICAgICBkZWZpbmVkLgorICAgIDwvcD4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KKyhnZGIpIHAgL3ggJGVheHMxCiskOSA9IDB4ZmZmZmZmZmYKKyhnZGIpIHAgL3ggJGVieHMxCiskMTAgPSAweDAKKyhnZGIpIAorPC9wcmU+Cis8L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+Cis8cD48Y29kZSBjbGFzcz0idmFybmFtZSI+Z2V0X3ZiaXRzICZsdDthZGRyJmd0OyBbJmx0O2xlbiZndDtdPC9jb2RlPgorICAgIHNob3dzIHRoZSBkZWZpbmVkbmVzcyAoVikgYml0cyBmb3IgJmx0O2xlbiZndDsgKGRlZmF1bHQgMSkgYnl0ZXMKKyAgICBzdGFydGluZyBhdCAmbHQ7YWRkciZndDsgdXNpbmcgdGhlIHNhbWUgY29udmVudGlvbiBhcyB0aGUKKyAgICA8Y29kZSBjbGFzcz0idmFybmFtZSI+eGI8L2NvZGU+IGNvbW1hbmQuIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5nZXRfdmJpdHM8L2NvZGU+IG9ubHkKKyAgICBzaG93cyB0aGUgViBiaXRzIChncm91cGVkIGJ5IDQgYnl0ZXMpLiBJdCBkb2VzIG5vdCBzaG93IHRoZSB2YWx1ZXMuCisgICAgSWYgeW91IHdhbnQgdG8gYXNzb2NpYXRlIFYgYml0cyB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIGJ5dGUgdmFsdWVzLCB0aGUKKyAgICA8Y29kZSBjbGFzcz0idmFybmFtZSI+eGI8L2NvZGU+IGNvbW1hbmQgd2lsbCBiZSBlYXNpZXIgdG8gdXNlLCBpbiBwYXJ0aWN1bGFyCisgICAgb24gbGl0dGxlIGVuZGlhbiBjb21wdXRlcnMgd2hlbiBhc3NvY2lhdGluZyB1bmRlZmluZWQgcGFydHMgb2YgYW4gaW50ZWdlcgorICAgIHdpdGggdGhlaXIgViBiaXRzIHZhbHVlcy4KKyAgICA8L3A+Cis8cD4KKyAgICBUaGUgZm9sbG93aW5nIGV4YW1wbGUgc2hvd3MgdGhlIHJlc3VsdCBvZiA8Y29kZSBjbGFzcz0idmFybmFtZSI+Z2V0X3ZpYnRzPC9jb2RlPgorICAgIG9uIHRoZSA8Y29kZSBjbGFzcz0idmFybmFtZSI+c3RyaW5nMTA8L2NvZGU+IHVzZWQgaW4gdGhlICA8Y29kZSBjbGFzcz0idmFybmFtZSI+eGI8L2NvZGU+CisgICAgY29tbWFuZCBleHBsYW5hdGlvbi4KKyAgICA8L3A+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CisoZ2RiKSBtb25pdG9yIGdldF92Yml0cyAweDgwNGEyZjAgMTAKK2ZmMDBmZjAwIGZmX19mZjAwIGZmMDAKK0FkZHJlc3MgMHg4MDRBMkYwIGxlbiAxMCBoYXMgMSBieXRlcyB1bmFkZHJlc3NhYmxlCisoZ2RiKSAKKzwvcHJlPgorPC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPgorPHA+PGNvZGUgY2xhc3M9InZhcm5hbWUiPm1ha2VfbWVtb3J5CisgICAgW25vYWNjZXNzfHVuZGVmaW5lZHxkZWZpbmVkfERlZmluZWRpZmFkZHJlc3NhYmxlXSAmbHQ7YWRkciZndDsKKyAgICBbJmx0O2xlbiZndDtdPC9jb2RlPiBtYXJrcyB0aGUgcmFuZ2Ugb2YgJmx0O2xlbiZndDsgKGRlZmF1bHQgMSkKKyAgICBieXRlcyBhdCAmbHQ7YWRkciZndDsgYXMgaGF2aW5nIHRoZSBnaXZlbiBzdGF0dXMuIFBhcmFtZXRlcgorICAgIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5ub2FjY2VzczwvY29kZT4gbWFya3MgdGhlIHJhbmdlIGFzIG5vbi1hY2Nlc3NpYmxlLCBzbworICAgIE1lbWNoZWNrIHdpbGwgcmVwb3J0IGFuIGVycm9yIG9uIGFueSBhY2Nlc3MgdG8gaXQuCisgICAgPGNvZGUgY2xhc3M9InZhcm5hbWUiPnVuZGVmaW5lZDwvY29kZT4gb3IgPGNvZGUgY2xhc3M9InZhcm5hbWUiPmRlZmluZWQ8L2NvZGU+IG1hcmsKKyAgICB0aGUgYXJlYSBhcyBhY2Nlc3NpYmxlLCBidXQgTWVtY2hlY2sgcmVnYXJkcyB0aGUgYnl0ZXMgaW4gaXQKKyAgICByZXNwZWN0aXZlbHkgYXMgaGF2aW5nIHVuZGVmaW5lZCBvciBkZWZpbmVkIHZhbHVlcy4KKyAgICA8Y29kZSBjbGFzcz0idmFybmFtZSI+RGVmaW5lZGlmYWRkcmVzc2FibGU8L2NvZGU+IG1hcmtzIGFzIGRlZmluZWQsIGJ5dGVzIGluCisgICAgdGhlIHJhbmdlIHdoaWNoIGFyZSBhbHJlYWR5IGFkZHJlc3NpYmxlLCBidXQgbWFrZXMgbm8gY2hhbmdlIHRvCisgICAgdGhlIHN0YXR1cyBvZiBieXRlcyBpbiB0aGUgcmFuZ2Ugd2hpY2ggYXJlIG5vdCBhZGRyZXNzaWJsZS4gTm90ZQorICAgIHRoYXQgdGhlIGZpcnN0IGxldHRlciBvZiA8Y29kZSBjbGFzcz0idmFybmFtZSI+RGVmaW5lZGlmYWRkcmVzc2FibGU8L2NvZGU+CisgICAgaXMgYW4gdXBwZXJjYXNlIEQgdG8gYXZvaWQgY29uZnVzaW9uIHdpdGggPGNvZGUgY2xhc3M9InZhcm5hbWUiPmRlZmluZWQ8L2NvZGU+LgorICAgIDwvcD4KKzxwPgorICAgIEluIHRoZSBmb2xsb3dpbmcgZXhhbXBsZSwgdGhlIGZpcnN0IGJ5dGUgb2YgdGhlCisgICAgPGNvZGUgY2xhc3M9InZhcm5hbWUiPnN0cmluZzEwPC9jb2RlPiBpcyBtYXJrZWQgYXMgZGVmaW5lZDoKKyAgICA8L3A+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CisoZ2RiKSBtb25pdG9yIG1ha2VfbWVtb3J5IGRlZmluZWQgMHg4MDQ5ZTI4ICAxCisoZ2RiKSBtb25pdG9yIGdldF92Yml0cyAweDgwNDllMjggMTAKKzAwMDBmZjAwIGZmMDBmZjAwIGZmMDAKKyhnZGIpIAorPC9wcmU+Cis8L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+Cis8cD48Y29kZSBjbGFzcz0idmFybmFtZSI+Y2hlY2tfbWVtb3J5IFthZGRyZXNzYWJsZXxkZWZpbmVkXSAmbHQ7YWRkciZndDsKKyAgICBbJmx0O2xlbiZndDtdPC9jb2RlPiBjaGVja3MgdGhhdCB0aGUgcmFuZ2Ugb2YgJmx0O2xlbiZndDsKKyAgICAoZGVmYXVsdCAxKSBieXRlcyBhdCAmbHQ7YWRkciZndDsgaGFzIHRoZSBzcGVjaWZpZWQgYWNjZXNzaWJpbGl0eS4KKyAgICBJdCB0aGVuIG91dHB1dHMgYSBkZXNjcmlwdGlvbiBvZiAmbHQ7YWRkciZndDsuIEluIHRoZSBmb2xsb3dpbmcKKyAgICBleGFtcGxlLCBhIGRldGFpbGVkIGRlc2NyaXB0aW9uIGlzIGF2YWlsYWJsZSBiZWNhdXNlIHRoZQorICAgIG9wdGlvbiA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXJlYWQtdmFyLWluZm89eWVzPC9jb2RlPiB3YXMgZ2l2ZW4gYXQgVmFsZ3JpbmQKKyAgICBzdGFydHVwOgorICAgIDwvcD4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KKyhnZGIpIG1vbml0b3IgY2hlY2tfbWVtb3J5IGRlZmluZWQgMHg4MDQ5ZTI4ICAxCitBZGRyZXNzIDB4ODA0OUUyOCBsZW4gMSBkZWZpbmVkCis9PTE0Njk4PT0gIExvY2F0aW9uIDB4ODA0OWUyOCBpcyAwIGJ5dGVzIGluc2lkZSBzdHJpbmcxMFswXSwKKz09MTQ2OTg9PSAgZGVjbGFyZWQgYXQgcHJvZy5jOjEwLCBpbiBmcmFtZSAjMCBvZiB0aHJlYWQgMQorKGdkYikgCis8L3ByZT4KKzwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj4KKzxwPjxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5sZWFrX2NoZWNrIFtmdWxsKnxzdW1tYXJ5XQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2tpbmRzICZsdDtzZXQmZ3Q7fHJlYWNoYWJsZXxwb3NzaWJsZWxlYWsqfGRlZmluaXRlbGVha10KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoZXVyaXN0aWNzIGhldXIxLGhldXIyLC4uLl0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbmNyZWFzZWQqfGNoYW5nZWR8YW55XQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3VubGltaXRlZCp8bGltaXRlZCAmbHQ7bWF4X2xvc3NfcmVjb3Jkc19vdXRwdXQmZ3Q7XQorICAgICAgICAgIDwvY29kZT4KKyAgICBwZXJmb3JtcyBhIGxlYWsgY2hlY2suIFRoZSA8Y29kZSBjbGFzcz0idmFybmFtZSI+KjwvY29kZT4gaW4gdGhlIGFyZ3VtZW50cworICAgIGluZGljYXRlcyB0aGUgZGVmYXVsdCB2YWx1ZXMuIDwvcD4KKzxwPiBJZiB0aGUgPGNvZGUgY2xhc3M9InZhcm5hbWUiPltmdWxsKnxzdW1tYXJ5XTwvY29kZT4gYXJndW1lbnQgaXMKKyAgICA8Y29kZSBjbGFzcz0idmFybmFtZSI+c3VtbWFyeTwvY29kZT4sIG9ubHkgYSBzdW1tYXJ5IG9mIHRoZSBsZWFrIHNlYXJjaCBpcyBnaXZlbjsKKyAgICBvdGhlcndpc2UgYSBmdWxsIGxlYWsgcmVwb3J0IGlzIHByb2R1Y2VkLiAgQSBmdWxsIGxlYWsgcmVwb3J0IGdpdmVzCisgICAgZGV0YWlsZWQgaW5mb3JtYXRpb24gZm9yIGVhY2ggbGVhazogdGhlIHN0YWNrIHRyYWNlIHdoZXJlIHRoZSBsZWFrZWQgYmxvY2tzCisgICAgd2VyZSBhbGxvY2F0ZWQsIHRoZSBudW1iZXIgb2YgYmxvY2tzIGxlYWtlZCBhbmQgdGhlaXIgdG90YWwgc2l6ZS4gIFdoZW4gYQorICAgIGZ1bGwgcmVwb3J0IGlzIHJlcXVlc3RlZCwgdGhlIG5leHQgdHdvIGFyZ3VtZW50cyBmdXJ0aGVyIHNwZWNpZnkgd2hhdAorICAgIGtpbmQgb2YgbGVha3MgdG8gcmVwb3J0LiAgQSBsZWFrJ3MgZGV0YWlscyBhcmUgc2hvd24gaWYgdGhleSBtYXRjaAorICAgIGJvdGggdGhlIHNlY29uZCBhbmQgdGhpcmQgYXJndW1lbnQuIEEgZnVsbCBsZWFrIHJlcG9ydCBtaWdodAorICAgIG91dHB1dCBkZXRhaWxlZCBpbmZvcm1hdGlvbiBmb3IgbWFueSBsZWFrcy4gVGhlIG5yIG9mIGxlYWtzIGZvcgorICAgIHdoaWNoIGluZm9ybWF0aW9uIGlzIG91dHB1dCBjYW4gYmUgY29udHJvbGxlZCB1c2luZworICAgIHRoZSA8Y29kZSBjbGFzcz0idmFybmFtZSI+bGltaXRlZDwvY29kZT4gYXJndW1lbnQgZm9sbG93ZWQgYnkgdGhlIG1heGltdW0gbnIKKyAgICBvZiBsZWFrIHJlY29yZHMgdG8gb3V0cHV0LiBJZiB0aGlzIG1heGltdW0gaXMgcmVhY2hlZCwgdGhlIGxlYWsKKyAgICBzZWFyY2ggIG91dHB1dHMgdGhlIHJlY29yZHMgd2l0aCB0aGUgYmlnZ2VzdCBudW1iZXIgb2YgYnl0ZXMuCisgICAgPC9wPgorPHA+VGhlIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5raW5kczwvY29kZT4gYXJndW1lbnQgY29udHJvbHMgd2hhdCBraW5kIG9mIGJsb2NrcworICAgIGFyZSBzaG93biBmb3IgYSA8Y29kZSBjbGFzcz0idmFybmFtZSI+ZnVsbDwvY29kZT4gbGVhayBzZWFyY2guICBUaGUgc2V0IG9mIGxlYWsga2luZHMKKyAgICB0byBzaG93IGNhbiBiZSBzcGVjaWZpZWQgdXNpbmcgYSA8Y29kZSBjbGFzcz0idmFybmFtZSI+Jmx0O3NldCZndDs8L2NvZGU+IHNpbWlsYXJseQorICAgIHRvIHRoZSBjb21tYW5kIGxpbmUgb3B0aW9uIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tc2hvdy1sZWFrLWtpbmRzPC9jb2RlPi4KKyAgICBBbHRlcm5hdGl2ZWx5LCB0aGUgIHZhbHVlIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5kZWZpbml0ZWxlYWs8L2NvZGU+IAorICAgIGlzIGVxdWl2YWxlbnQgdG8gPGNvZGUgY2xhc3M9InZhcm5hbWUiPmtpbmRzIGRlZmluaXRlPC9jb2RlPiwgdGhlCisgICAgdmFsdWUgPGNvZGUgY2xhc3M9InZhcm5hbWUiPnBvc3NpYmxlbGVhazwvY29kZT4gaXMgZXF1aXZhbGVudCB0bworICAgIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5raW5kcyBkZWZpbml0ZSxwb3NzaWJsZTwvY29kZT4gOiBpdCB3aWxsIGFsc28gc2hvdworICAgIHBvc3NpYmx5IGxlYWtlZCBibG9ja3MsIC5pLmUgdGhvc2UgZm9yIHdoaWNoIG9ubHkgYW4gaW50ZXJpb3IKKyAgICBwb2ludGVyIHdhcyBmb3VuZC4gIFRoZSB2YWx1ZSA8Y29kZSBjbGFzcz0idmFybmFtZSI+cmVhY2hhYmxlPC9jb2RlPiB3aWxsCisgICAgc2hvdyBhbGwgYmxvY2sgY2F0ZWdvcmllcyAoaS5lLiBpcyBlcXVpdmFsZW50IHRvIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5raW5kcworICAgIGFsbDwvY29kZT4pLgorICAgIDwvcD4KKzxwPlRoZSA8Y29kZSBjbGFzcz0idmFybmFtZSI+aGV1cmlzdGljczwvY29kZT4gYXJndW1lbnQgY29udHJvbHMgdGhlIGhldXJpc3RpY3MKKyAgICB1c2VkIGR1cmluZyB0aGUgbGVhayBzZWFyY2guIFRoZSBzZXQgb2YgaGV1cmlzdGljcyB0byB1c2UgY2FuIGJlIHNwZWNpZmllZAorICAgIHVzaW5nIGEgPGNvZGUgY2xhc3M9InZhcm5hbWUiPiZsdDtzZXQmZ3Q7PC9jb2RlPiBzaW1pbGFybHkKKyAgICB0byB0aGUgY29tbWFuZCBsaW5lIG9wdGlvbiA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWxlYWstY2hlY2staGV1cmlzdGljczwvY29kZT4uCisgICAgVGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSA8Y29kZSBjbGFzcz0idmFybmFtZSI+aGV1cmlzdGljczwvY29kZT4gYXJndW1lbnQgaXMKKyAgICA8Y29kZSBjbGFzcz0idmFybmFtZSI+aGV1cmlzdGljcyBub25lPC9jb2RlPi4KKyAgICA8L3A+Cis8cD5UaGUgPGNvZGUgY2xhc3M9InZhcm5hbWUiPltpbmNyZWFzZWQqfGNoYW5nZWR8YW55XTwvY29kZT4gYXJndW1lbnQgY29udHJvbHMgd2hhdAorICAgIGtpbmRzIG9mIGNoYW5nZXMgYXJlIHNob3duIGZvciBhIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5mdWxsPC9jb2RlPiBsZWFrIHNlYXJjaC4gVGhlCisgICAgdmFsdWUgPGNvZGUgY2xhc3M9InZhcm5hbWUiPmluY3JlYXNlZDwvY29kZT4gc3BlY2lmaWVzIHRoYXQgb25seSBibG9jaworICAgIGFsbG9jYXRpb24gc3RhY2tzIHdpdGggYW4gaW5jcmVhc2VkIG51bWJlciBvZiBsZWFrZWQgYnl0ZXMgb3IKKyAgICBibG9ja3Mgc2luY2UgdGhlIHByZXZpb3VzIGxlYWsgY2hlY2sgc2hvdWxkIGJlIHNob3duLiAgVGhlCisgICAgdmFsdWUgPGNvZGUgY2xhc3M9InZhcm5hbWUiPmNoYW5nZWQ8L2NvZGU+IHNwZWNpZmllcyB0aGF0IGFsbG9jYXRpb24gc3RhY2tzCisgICAgd2l0aCBhbnkgY2hhbmdlIHNpbmNlIHRoZSBwcmV2aW91cyBsZWFrIGNoZWNrIHNob3VsZCBiZSBzaG93bi4KKyAgICBUaGUgdmFsdWUgPGNvZGUgY2xhc3M9InZhcm5hbWUiPmFueTwvY29kZT4gc3BlY2lmaWVzIHRoYXQgYWxsIGxlYWsgZW50cmllcworICAgIHNob3VsZCBiZSBzaG93biwgcmVnYXJkbGVzcyBvZiBhbnkgaW5jcmVhc2Ugb3IgZGVjcmVhc2UuICBXaGVuCisgICAgSWYgPGNvZGUgY2xhc3M9InZhcm5hbWUiPmluY3JlYXNlZDwvY29kZT4gb3IgPGNvZGUgY2xhc3M9InZhcm5hbWUiPmNoYW5nZWQ8L2NvZGU+IGFyZQorICAgIHNwZWNpZmllZCwgdGhlIGxlYWsgcmVwb3J0IGVudHJpZXMgd2lsbCBzaG93IHRoZSBkZWx0YSByZWxhdGl2ZSB0bworICAgIHRoZSBwcmV2aW91cyBsZWFrIHJlcG9ydC4KKyAgICA8L3A+Cis8cD5UaGUgZm9sbG93aW5nIGV4YW1wbGUgc2hvd3MgdXNhZ2Ugb2YgdGhlIAorICAgIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5sZWFrX2NoZWNrPC9jb2RlPiBtb25pdG9yIGNvbW1hbmQgb24KKyAgICB0aGUgPGNvZGUgY2xhc3M9InZhcm5hbWUiPm1lbWNoZWNrL3Rlc3RzL2xlYWstY2FzZXMuYzwvY29kZT4gcmVncmVzc2lvbgorICAgIHRlc3QuIFRoZSBmaXJzdCBjb21tYW5kIG91dHB1dHMgb25lIGVudHJ5IGhhdmluZyBhbiBpbmNyZWFzZSBpbgorICAgIHRoZSBsZWFrZWQgYnl0ZXMuICBUaGUgc2Vjb25kIGNvbW1hbmQgaXMgdGhlIHNhbWUgYXMgdGhlIGZpcnN0CisgICAgY29tbWFuZCwgYnV0IHVzZXMgdGhlIGFiYnJldmlhdGVkIGZvcm1zIGFjY2VwdGVkIGJ5IEdEQiBhbmQgdGhlCisgICAgVmFsZ3JpbmQgZ2Ric2VydmVyLiBJdCBvbmx5IG91dHB1dHMgdGhlIHN1bW1hcnkgaW5mb3JtYXRpb24sIGFzCisgICAgdGhlcmUgd2FzIG5vIGluY3JlYXNlIHNpbmNlIHRoZSBwcmV2aW91cyBsZWFrIHNlYXJjaC48L3A+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CisoZ2RiKSBtb25pdG9yIGxlYWtfY2hlY2sgZnVsbCBwb3NzaWJsZWxlYWsgaW5jcmVhc2VkCis9PTE5NTIwPT0gMTYgKCsxNikgYnl0ZXMgaW4gMSAoKzEpIGJsb2NrcyBhcmUgcG9zc2libHkgbG9zdCBpbiBsb3NzIHJlY29yZCA5IG9mIDEyCis9PTE5NTIwPT0gICAgYXQgMHg0MDA3MEI0OiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6MjYzKQorPT0xOTUyMD09ICAgIGJ5IDB4ODA0ODRENTogbWsgKGxlYWstY2FzZXMuYzo1MikKKz09MTk1MjA9PSAgICBieSAweDgwNDg1NUY6IGYgKGxlYWstY2FzZXMuYzo4MSkKKz09MTk1MjA9PSAgICBieSAweDgwNDg4RTA6IG1haW4gKGxlYWstY2FzZXMuYzoxMDcpCis9PTE5NTIwPT0gCis9PTE5NTIwPT0gTEVBSyBTVU1NQVJZOgorPT0xOTUyMD09ICAgIGRlZmluaXRlbHkgbG9zdDogMzIgKCswKSBieXRlcyBpbiAyICgrMCkgYmxvY2tzCis9PTE5NTIwPT0gICAgaW5kaXJlY3RseSBsb3N0OiAxNiAoKzApIGJ5dGVzIGluIDEgKCswKSBibG9ja3MKKz09MTk1MjA9PSAgICAgIHBvc3NpYmx5IGxvc3Q6IDMyICgrMTYpIGJ5dGVzIGluIDIgKCsxKSBibG9ja3MKKz09MTk1MjA9PSAgICBzdGlsbCByZWFjaGFibGU6IDk2ICgrMTYpIGJ5dGVzIGluIDYgKCsxKSBibG9ja3MKKz09MTk1MjA9PSAgICAgICAgIHN1cHByZXNzZWQ6IDAgKCswKSBieXRlcyBpbiAwICgrMCkgYmxvY2tzCis9PTE5NTIwPT0gUmVhY2hhYmxlIGJsb2NrcyAodGhvc2UgdG8gd2hpY2ggYSBwb2ludGVyIHdhcyBmb3VuZCkgYXJlIG5vdCBzaG93bi4KKz09MTk1MjA9PSBUbyBzZWUgdGhlbSwgYWRkICdyZWFjaGFibGUgYW55JyBhcmdzIHRvIGxlYWtfY2hlY2sKKz09MTk1MjA9PSAKKyhnZGIpIG1vIGwKKz09MTk1MjA9PSBMRUFLIFNVTU1BUlk6Cis9PTE5NTIwPT0gICAgZGVmaW5pdGVseSBsb3N0OiAzMiAoKzApIGJ5dGVzIGluIDIgKCswKSBibG9ja3MKKz09MTk1MjA9PSAgICBpbmRpcmVjdGx5IGxvc3Q6IDE2ICgrMCkgYnl0ZXMgaW4gMSAoKzApIGJsb2NrcworPT0xOTUyMD09ICAgICAgcG9zc2libHkgbG9zdDogMzIgKCswKSBieXRlcyBpbiAyICgrMCkgYmxvY2tzCis9PTE5NTIwPT0gICAgc3RpbGwgcmVhY2hhYmxlOiA5NiAoKzApIGJ5dGVzIGluIDYgKCswKSBibG9ja3MKKz09MTk1MjA9PSAgICAgICAgIHN1cHByZXNzZWQ6IDAgKCswKSBieXRlcyBpbiAwICgrMCkgYmxvY2tzCis9PTE5NTIwPT0gUmVhY2hhYmxlIGJsb2NrcyAodGhvc2UgdG8gd2hpY2ggYSBwb2ludGVyIHdhcyBmb3VuZCkgYXJlIG5vdCBzaG93bi4KKz09MTk1MjA9PSBUbyBzZWUgdGhlbSwgYWRkICdyZWFjaGFibGUgYW55JyBhcmdzIHRvIGxlYWtfY2hlY2sKKz09MTk1MjA9PSAKKyhnZGIpIAorPC9wcmU+Cis8cD5Ob3RlIHRoYXQgd2hlbiB1c2luZyBWYWxncmluZCdzIGdkYnNlcnZlciwgaXQgaXMgbm90CisgICAgbmVjZXNzYXJ5IHRvIHJlcnVuCisgICAgd2l0aCA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWxlYWstY2hlY2s9ZnVsbDwvY29kZT4KKyAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXNob3ctcmVhY2hhYmxlPXllczwvY29kZT4gdG8gc2VlIHRoZSByZWFjaGFibGUKKyAgICBibG9ja3MuIFlvdSBjYW4gb2J0YWluIHRoZSBzYW1lIGluZm9ybWF0aW9uIHdpdGhvdXQgcmVydW5uaW5nIGJ5CisgICAgdXNpbmcgdGhlIEdEQiBjb21tYW5kIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+bW9uaXRvciBsZWFrX2NoZWNrIGZ1bGwKKyAgICByZWFjaGFibGUgYW55PC9jb2RlPiAob3IsIHVzaW5nCisgICAgYWJicmV2aWF0aW9uOiA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPm1vIGwgZiByIGE8L2NvZGU+KS4KKyAgICA8L3A+Cis8L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+Cis8cD48Y29kZSBjbGFzcz0idmFybmFtZSI+YmxvY2tfbGlzdCAmbHQ7bG9zc19yZWNvcmRfbnImZ3Q7fCZsdDtsb3NzX3JlY29yZF9ucl9mcm9tJmd0Oy4uJmx0O2xvc3NfcmVjb3JkX25yX3RvJmd0OworICAgICAgICBbdW5saW1pdGVkKnxsaW1pdGVkICZsdDttYXhfYmxvY2tzJmd0O10KKyAgICAgICAgW2hldXJpc3RpY3MgaGV1cjEsaGV1cjIsLi4uXQorICAgICAgPC9jb2RlPgorICAgICAgc2hvd3MgdGhlIGxpc3Qgb2YgYmxvY2tzIGJlbG9uZ2luZyB0bworICAgICAgPGNvZGUgY2xhc3M9InZhcm5hbWUiPiZsdDtsb3NzX3JlY29yZF9uciZndDs8L2NvZGU+IChvciB0byB0aGUgbG9zcyByZWNvcmRzIHJhbmdlCisgICAgICA8Y29kZSBjbGFzcz0idmFybmFtZSI+Jmx0O2xvc3NfcmVjb3JkX25yX2Zyb20mZ3Q7Li4mbHQ7bG9zc19yZWNvcmRfbnJfdG8mZ3Q7PC9jb2RlPikuCisgICAgICBUaGUgbnIgb2YgYmxvY2tzIHRvIHByaW50IGNhbiBiZSBjb250cm9sbGVkIHVzaW5nIHRoZQorICAgICAgPGNvZGUgY2xhc3M9InZhcm5hbWUiPmxpbWl0ZWQ8L2NvZGU+IGFyZ3VtZW50IGZvbGxvd2VkIGJ5IHRoZSBtYXhpbXVtIG5yCisgICAgICBvZiBibG9ja3MgdG8gb3V0cHV0LgorICAgICAgSWYgb25lIG9yIG1vcmUgaGV1cmlzdGljcyBhcmUgZ2l2ZW4sIG9ubHkgcHJpbnRzIHRoZSBsb3NzIHJlY29yZHMKKyAgICAgIGFuZCBibG9ja3MgZm91bmQgdmlhIG9uZSBvZiB0aGUgZ2l2ZW4gPGNvZGUgY2xhc3M9InZhcm5hbWUiPmhldXIxLGhldXIyLC4uLjwvY29kZT4KKyAgICAgIGhldXJpc3RpY3MuCisgICAgPC9wPgorPHA+IEEgbGVhayBzZWFyY2ggbWVyZ2VzIHRoZSBhbGxvY2F0ZWQgYmxvY2tzIGluIGxvc3MgcmVjb3JkcyA6CisgICAgYSBsb3NzIHJlY29yZCByZS1ncm91cHMgYWxsIGJsb2NrcyBoYXZpbmcgdGhlIHNhbWUgc3RhdGUgKGZvcgorICAgIGV4YW1wbGUsIERlZmluaXRlbHkgTG9zdCkgYW5kIHRoZSBzYW1lIGFsbG9jYXRpb24gYmFja3RyYWNlLgorICAgIEVhY2ggbG9zcyByZWNvcmQgaXMgaWRlbnRpZmllZCBpbiB0aGUgbGVhayBzZWFyY2ggcmVzdWx0IAorICAgIGJ5IGEgbG9zcyByZWNvcmQgbnVtYmVyLgorICAgIFRoZSA8Y29kZSBjbGFzcz0idmFybmFtZSI+YmxvY2tfbGlzdDwvY29kZT4gY29tbWFuZCBzaG93cyB0aGUgbG9zcyByZWNvcmQgaW5mb3JtYXRpb24KKyAgICBmb2xsb3dlZCBieSB0aGUgYWRkcmVzc2VzIGFuZCBzaXplcyBvZiB0aGUgYmxvY2tzIHdoaWNoIGhhdmUgYmVlbgorICAgIG1lcmdlZCBpbiB0aGUgbG9zcyByZWNvcmQuIElmIGEgYmxvY2sgd2FzIGZvdW5kIHVzaW5nIGFuIGhldXJpc3RpYywgdGhlIGJsb2NrIHNpemUKKyAgICBpcyBmb2xsb3dlZCBieSB0aGUgaGV1cmlzdGljLgorICAgIDwvcD4KKzxwPiBJZiBhIGRpcmVjdGx5IGxvc3QgYmxvY2sgY2F1c2VzIHNvbWUgb3RoZXIgYmxvY2tzIHRvIGJlIGluZGlyZWN0bHkKKyAgICBsb3N0LCB0aGUgYmxvY2tfbGlzdCBjb21tYW5kIHdpbGwgYWxzbyBzaG93IHRoZXNlIGluZGlyZWN0bHkgbG9zdCBibG9ja3MuCisgICAgVGhlIGluZGlyZWN0bHkgbG9zdCBibG9ja3Mgd2lsbCBiZSBpbmRlbnRlZCBhY2NvcmRpbmcgdG8gdGhlIGxldmVsIG9mIGluZGlyZWN0aW9uCisgICAgYmV0d2VlbiB0aGUgZGlyZWN0bHkgbG9zdCBibG9jayBhbmQgdGhlIGluZGlyZWN0bHkgbG9zdCBibG9jayhzKS4KKyAgICBFYWNoIGluZGlyZWN0bHkgbG9zdCBibG9jayBpcyBmb2xsb3dlZCBieSB0aGUgcmVmZXJlbmNlIG9mIGl0cyBsb3NzIHJlY29yZC4KKyAgICA8L3A+Cis8cD4gVGhlIGJsb2NrX2xpc3QgY29tbWFuZCBjYW4gYmUgdXNlZCBvbiB0aGUgcmVzdWx0cyBvZiBhIGxlYWsgc2VhcmNoIGFzIGxvbmcKKyAgICBhcyBubyBibG9jayBoYXMgYmVlbiBmcmVlZCBhZnRlciB0aGlzIGxlYWsgc2VhcmNoOiBhcyBzb29uIGFzIHRoZSBwcm9ncmFtIGZyZWVzCisgICAgYSBibG9jaywgYSBuZXcgbGVhayBzZWFyY2ggaXMgbmVlZGVkIGJlZm9yZSBibG9ja19saXN0IGNhbiBiZSB1c2VkIGFnYWluLgorICAgIDwvcD4KKzxwPgorICAgIEluIHRoZSBiZWxvdyBleGFtcGxlLCB0aGUgcHJvZ3JhbSBsZWFrcyBhIHRyZWUgc3RydWN0dXJlIGJ5IGxvc2luZyB0aGUgcG9pbnRlciB0byAKKyAgICB0aGUgYmxvY2sgQSAodG9wIG9mIHRoZSB0cmVlKS4KKyAgICBTbywgdGhlIGJsb2NrIEEgaXMgZGlyZWN0bHkgbG9zdCwgY2F1c2luZyBhbiBpbmRpcmVjdAorICAgIGxvc3Mgb2YgYmxvY2tzIEIgdG8gRy4gVGhlIGZpcnN0IGJsb2NrX2xpc3QgY29tbWFuZCBzaG93cyB0aGUgbG9zcyByZWNvcmQgb2YgQQorICAgIChhIGRlZmluaXRlbHkgbG9zdCBibG9jayB3aXRoIGFkZHJlc3MgMHg0MDI4MDI4LCBzaXplIDE2KS4gVGhlIGFkZHJlc3NlcyBhbmQgc2l6ZXMKKyAgICBvZiB0aGUgaW5kaXJlY3RseSBsb3N0IGJsb2NrcyBkdWUgdG8gYmxvY2sgQSBhcmUgc2hvd24gYmVsb3cgdGhlIGJsb2NrIEEuCisgICAgVGhlIHNlY29uZCBjb21tYW5kIHNob3dzIHRoZSBkZXRhaWxzIG9mIG9uZSBvZiB0aGUgaW5kaXJlY3QgbG9zcyByZWNvcmRzIG91dHB1dAorICAgIGJ5IHRoZSBmaXJzdCBjb21tYW5kLgorICAgIDwvcD4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KKyAgICAgICAgICAgQQorICAgICAgICAgLyAgIFwKKyAgICAgICAgQiAgICAgQworICAgICAgIC8gXCAgIC8gXCAKKyAgICAgIEQgICBFIEYgICBHCis8L3ByZT4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KKyhnZGIpIGJ0CisjMCAgbWFpbiAoKSBhdCBsZWFrLXRyZWUuYzo2OQorKGdkYikgbW9uaXRvciBsZWFrX2NoZWNrIGZ1bGwgYW55Cis9PTE5NTUyPT0gMTEyICgxNiBkaXJlY3QsIDk2IGluZGlyZWN0KSBieXRlcyBpbiAxIGJsb2NrcyBhcmUgZGVmaW5pdGVseSBsb3N0IGluIGxvc3MgcmVjb3JkIDcgb2YgNworPT0xOTU1Mj09ICAgIGF0IDB4NDAwNzBCNDogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOjI2MykKKz09MTk1NTI9PSAgICBieSAweDgwNDg0RDU6IG1rIChsZWFrLXRyZWUuYzoyOCkKKz09MTk1NTI9PSAgICBieSAweDgwNDg0RkM6IGYgKGxlYWstdHJlZS5jOjQxKQorPT0xOTU1Mj09ICAgIGJ5IDB4ODA0ODg1NjogbWFpbiAobGVhay10cmVlLmM6NjMpCis9PTE5NTUyPT0gCis9PTE5NTUyPT0gTEVBSyBTVU1NQVJZOgorPT0xOTU1Mj09ICAgIGRlZmluaXRlbHkgbG9zdDogMTYgYnl0ZXMgaW4gMSBibG9ja3MKKz09MTk1NTI9PSAgICBpbmRpcmVjdGx5IGxvc3Q6IDk2IGJ5dGVzIGluIDYgYmxvY2tzCis9PTE5NTUyPT0gICAgICBwb3NzaWJseSBsb3N0OiAwIGJ5dGVzIGluIDAgYmxvY2tzCis9PTE5NTUyPT0gICAgc3RpbGwgcmVhY2hhYmxlOiAwIGJ5dGVzIGluIDAgYmxvY2tzCis9PTE5NTUyPT0gICAgICAgICBzdXBwcmVzc2VkOiAwIGJ5dGVzIGluIDAgYmxvY2tzCis9PTE5NTUyPT0gCisoZ2RiKSBtb25pdG9yIGJsb2NrX2xpc3QgNworPT0xOTU1Mj09IDExMiAoMTYgZGlyZWN0LCA5NiBpbmRpcmVjdCkgYnl0ZXMgaW4gMSBibG9ja3MgYXJlIGRlZmluaXRlbHkgbG9zdCBpbiBsb3NzIHJlY29yZCA3IG9mIDcKKz09MTk1NTI9PSAgICBhdCAweDQwMDcwQjQ6IG1hbGxvYyAodmdfcmVwbGFjZV9tYWxsb2MuYzoyNjMpCis9PTE5NTUyPT0gICAgYnkgMHg4MDQ4NEQ1OiBtayAobGVhay10cmVlLmM6MjgpCis9PTE5NTUyPT0gICAgYnkgMHg4MDQ4NEZDOiBmIChsZWFrLXRyZWUuYzo0MSkKKz09MTk1NTI9PSAgICBieSAweDgwNDg4NTY6IG1haW4gKGxlYWstdHJlZS5jOjYzKQorPT0xOTU1Mj09IDB4NDAyODAyOFsxNl0KKz09MTk1NTI9PSAgIDB4NDAyODA2OFsxNl0gaW5kaXJlY3QgbG9zcyByZWNvcmQgMQorPT0xOTU1Mj09ICAgICAgMHg0MDI4MEU4WzE2XSBpbmRpcmVjdCBsb3NzIHJlY29yZCAzCis9PTE5NTUyPT0gICAgICAweDQwMjgxMjhbMTZdIGluZGlyZWN0IGxvc3MgcmVjb3JkIDQKKz09MTk1NTI9PSAgIDB4NDAyODBBOFsxNl0gaW5kaXJlY3QgbG9zcyByZWNvcmQgMgorPT0xOTU1Mj09ICAgICAgMHg0MDI4MTY4WzE2XSBpbmRpcmVjdCBsb3NzIHJlY29yZCA1Cis9PTE5NTUyPT0gICAgICAweDQwMjgxQThbMTZdIGluZGlyZWN0IGxvc3MgcmVjb3JkIDYKKyhnZGIpIG1vIGIgMgorPT0xOTU1Mj09IDE2IGJ5dGVzIGluIDEgYmxvY2tzIGFyZSBpbmRpcmVjdGx5IGxvc3QgaW4gbG9zcyByZWNvcmQgMiBvZiA3Cis9PTE5NTUyPT0gICAgYXQgMHg0MDA3MEI0OiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6MjYzKQorPT0xOTU1Mj09ICAgIGJ5IDB4ODA0ODRENTogbWsgKGxlYWstdHJlZS5jOjI4KQorPT0xOTU1Mj09ICAgIGJ5IDB4ODA0ODUxOTogZiAobGVhay10cmVlLmM6NDMpCis9PTE5NTUyPT0gICAgYnkgMHg4MDQ4ODU2OiBtYWluIChsZWFrLXRyZWUuYzo2MykKKz09MTk1NTI9PSAweDQwMjgwQThbMTZdCis9PTE5NTUyPT0gICAweDQwMjgxNjhbMTZdIGluZGlyZWN0IGxvc3MgcmVjb3JkIDUKKz09MTk1NTI9PSAgIDB4NDAyODFBOFsxNl0gaW5kaXJlY3QgbG9zcyByZWNvcmQgNgorKGdkYikgCisKKzwvcHJlPgorPC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPgorPHA+PGNvZGUgY2xhc3M9InZhcm5hbWUiPndob19wb2ludHNfYXQgJmx0O2FkZHImZ3Q7IFsmbHQ7bGVuJmd0O108L2NvZGU+IAorICAgIHNob3dzIGFsbCB0aGUgbG9jYXRpb25zIHdoZXJlIGEgcG9pbnRlciB0byBhZGRyIGlzIGZvdW5kLgorICAgIElmIGxlbiBpcyBlcXVhbCB0byAxLCB0aGUgY29tbWFuZCBvbmx5IHNob3dzIHRoZSBsb2NhdGlvbnMgcG9pbnRpbmcKKyAgICBleGFjdGx5IGF0IGFkZHIgKGkuZS4gdGhlICJzdGFydCBwb2ludGVycyIgdG8gYWRkcikuCisgICAgSWYgbGVuIGlzICZndDsgMSwgImludGVyaW9yIHBvaW50ZXJzIiBwb2ludGluZyBhdCB0aGUgbGVuIGZpcnN0IGJ5dGVzCisgICAgd2lsbCBhbHNvIGJlIHNob3duLgorICAgIDwvcD4KKzxwPlRoZSBsb2NhdGlvbnMgc2VhcmNoZWQgZm9yIGFyZSB0aGUgc2FtZSBhcyB0aGUgbG9jYXRpb25zCisgICAgdXNlZCBpbiB0aGUgbGVhayBzZWFyY2guIFNvLCA8Y29kZSBjbGFzcz0idmFybmFtZSI+d2hvX3BvaW50c19hdDwvY29kZT4gY2FuIGEuby4KKyAgICBiZSB1c2VkIHRvIHNob3cgd2h5IHRoZSBsZWFrIHNlYXJjaCBzdGlsbCBjYW4gcmVhY2ggYSBibG9jaywgb3IgY2FuCisgICAgc2VhcmNoIGZvciBkYW5nbGluZyBwb2ludGVycyB0byBhIGZyZWVkIGJsb2NrLgorICAgIEVhY2ggbG9jYXRpb24gcG9pbnRpbmcgYXQgYWRkciAob3IgcG9pbnRpbmcgaW5zaWRlIGFkZHIgaWYgaW50ZXJpb3IgcG9pbnRlcnMKKyAgICBhcmUgYmVpbmcgc2VhcmNoZWQgZm9yKSB3aWxsIGJlIGRlc2NyaWJlZC4KKyAgICA8L3A+Cis8cD5JbiB0aGUgYmVsb3cgZXhhbXBsZSwgdGhlIHBvaW50ZXJzIHRvIHRoZSAndHJlZSBibG9jayBBJyAoc2VlIGV4YW1wbGUKKyAgICBpbiBjb21tYW5kIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5ibG9ja19saXN0PC9jb2RlPikgaXMgc2hvd24gYmVmb3JlIHRoZSB0cmVlIHdhcyBsZWFrZWQuCisgICAgVGhlIGRlc2NyaXB0aW9ucyBhcmUgZGV0YWlsZWQgYXMgdGhlIG9wdGlvbiA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXJlYWQtdmFyLWluZm89eWVzPC9jb2RlPiAKKyAgICB3YXMgZ2l2ZW4gYXQgVmFsZ3JpbmQgc3RhcnR1cC4gVGhlIHNlY29uZCBjYWxsIHNob3dzIHRoZSBwb2ludGVycyAoc3RhcnQgYW5kIGludGVyaW9yCisgICAgcG9pbnRlcnMpIHRvIGJsb2NrIEcuIFRoZSBibG9jayBHICgweDQwMjgxQTgpIGlzIHJlYWNoYWJsZSB2aWEgYmxvY2sgQyAoMHg0MDI4MGE4KQorICAgIGFuZCByZWdpc3RlciBFQ1ggb2YgdGlkIDEgKHRpZCBpcyB0aGUgVmFsZ3JpbmQgdGhyZWFkIGlkKS4KKyAgICBJdCBpcyAiaW50ZXJpb3IgcmVhY2hhYmxlIiB2aWEgdGhlIHJlZ2lzdGVyIEVCWC4KKyAgICA8L3A+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CisoZ2RiKSBtb25pdG9yIHdob19wb2ludHNfYXQgMHg0MDI4MDI4Cis9PTIwODUyPT0gU2VhcmNoaW5nIGZvciBwb2ludGVycyB0byAweDQwMjgwMjgKKz09MjA4NTI9PSAqMHg4MDQ5ZTIwIHBvaW50cyBhdCAweDQwMjgwMjgKKz09MjA4NTI9PSAgTG9jYXRpb24gMHg4MDQ5ZTIwIGlzIDAgYnl0ZXMgaW5zaWRlIGdsb2JhbCB2YXIgInQiCis9PTIwODUyPT0gIGRlY2xhcmVkIGF0IGxlYWstdHJlZS5jOjM1CisoZ2RiKSBtb25pdG9yIHdob19wb2ludHNfYXQgMHg0MDI4MUE4IDE2Cis9PTIwODUyPT0gU2VhcmNoaW5nIGZvciBwb2ludGVycyBwb2ludGluZyBpbiAxNiBieXRlcyBmcm9tIDB4NDAyODFhOAorPT0yMDg1Mj09ICoweDQwMjgwYWMgcG9pbnRzIGF0IDB4NDAyODFhOAorPT0yMDg1Mj09ICBBZGRyZXNzIDB4NDAyODBhYyBpcyA0IGJ5dGVzIGluc2lkZSBhIGJsb2NrIG9mIHNpemUgMTYgYWxsb2MnZAorPT0yMDg1Mj09ICAgIGF0IDB4NDAwNzBCNDogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOjI2MykKKz09MjA4NTI9PSAgICBieSAweDgwNDg0RDU6IG1rIChsZWFrLXRyZWUuYzoyOCkKKz09MjA4NTI9PSAgICBieSAweDgwNDg1MTk6IGYgKGxlYWstdHJlZS5jOjQzKQorPT0yMDg1Mj09ICAgIGJ5IDB4ODA0ODg1NjogbWFpbiAobGVhay10cmVlLmM6NjMpCis9PTIwODUyPT0gdGlkIDEgcmVnaXN0ZXIgRUNYIHBvaW50cyBhdCAweDQwMjgxYTgKKz09MjA4NTI9PSB0aWQgMSByZWdpc3RlciBFQlggaW50ZXJpb3IgcG9pbnRzIGF0IDIgYnl0ZXMgaW5zaWRlIDB4NDAyODFhOAorKGdkYikKKzwvcHJlPgorPHA+IFdoZW4gPGNvZGUgY2xhc3M9InZhcm5hbWUiPndob19wb2ludHNfYXQ8L2NvZGU+IGZpbmRzIGFuIGludGVyaW9yIHBvaW50ZXIsCisgIGl0IHdpbGwgcmVwb3J0IHRoZSBoZXVyaXN0aWMocykgd2l0aCB3aGljaCB0aGlzIGludGVyaW9yIHBvaW50ZXIKKyAgd2lsbCBiZSBjb25zaWRlcmVkIGFzIHJlYWNoYWJsZS4gTm90ZSB0aGF0IHRoaXMgaXMgZG9uZSBpbmRlcGVuZGVudGx5CisgIG9mIHRoZSB2YWx1ZSBvZiB0aGUgb3B0aW9uIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tbGVhay1jaGVjay1oZXVyaXN0aWNzPC9jb2RlPi4KKyAgSW4gdGhlIGJlbG93IGV4YW1wbGUsIHRoZSBsb3NzIHJlY29yZCA2IGluZGljYXRlcyBhIHBvc3NpYmx5IGxvc3QKKyAgYmxvY2suIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj53aG9fcG9pbnRzX2F0PC9jb2RlPiByZXBvcnRzIHRoYXQgdGhlcmUgaXMgYW4gaW50ZXJpb3IKKyAgcG9pbnRlciBwb2ludGluZyBpbiB0aGlzIGJsb2NrLCBhbmQgdGhhdCB0aGUgYmxvY2sgY2FuIGJlIGNvbnNpZGVyZWQKKyAgcmVhY2hhYmxlIHVzaW5nIHRoZSBoZXVyaXN0aWMKKyAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5tdWx0aXBsZWluaGVyaXRhbmNlPC9jb2RlPi4KKyAgPC9wPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPgorKGdkYikgbW9uaXRvciBibG9ja19saXN0IDYKKz09Mzc0OD09IDggYnl0ZXMgaW4gMSBibG9ja3MgYXJlIHBvc3NpYmx5IGxvc3QgaW4gbG9zcyByZWNvcmQgNiBvZiA3Cis9PTM3NDg9PSAgICBhdCAweDQwMDdENzc6IG9wZXJhdG9yIG5ldyh1bnNpZ25lZCBpbnQpICh2Z19yZXBsYWNlX21hbGxvYy5jOjMxMykKKz09Mzc0OD09ICAgIGJ5IDB4ODA0ODk1NDogbWFpbiAobGVha19jcHBfaW50ZXJpb3IuY3BwOjQzKQorPT0zNzQ4PT0gMHg0MDJBMEUwWzhdCisoZ2RiKSBtb25pdG9yIHdob19wb2ludHNfYXQgMHg0MDJBMEUwIDgKKz09Mzc0OD09IFNlYXJjaGluZyBmb3IgcG9pbnRlcnMgcG9pbnRpbmcgaW4gOCBieXRlcyBmcm9tIDB4NDAyYTBlMAorPT0zNzQ4PT0gKjB4YmU4ZWUwNzggaW50ZXJpb3IgcG9pbnRzIGF0IDQgYnl0ZXMgaW5zaWRlIDB4NDAyYTBlMAorPT0zNzQ4PT0gIEFkZHJlc3MgMHhiZThlZTA3OCBpcyBvbiB0aHJlYWQgMSdzIHN0YWNrCis9PTM3NDg9PSBibG9jayBhdCAweDQwMmEwZTAgY29uc2lkZXJlZCByZWFjaGFibGUgYnkgcHRyIDB4NDAyYTBlNCB1c2luZyBtdWx0aXBsZWluaGVyaXRhbmNlIGhldXJpc3RpYworKGdkYikgCis8L3ByZT4KKzwvbGk+Cis8L3VsPjwvZGl2PgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MSI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPgorPGEgbmFtZT0ibWMtbWFudWFsLmNsaWVudHJlcXMiPjwvYT40LjcuoENsaWVudCBSZXF1ZXN0czwvaDI+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD5UaGUgZm9sbG93aW5nIGNsaWVudCByZXF1ZXN0cyBhcmUgZGVmaW5lZCBpbgorPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5tZW1jaGVjay5oPC9jb2RlPi4KK1NlZSA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPm1lbWNoZWNrLmg8L2NvZGU+IGZvciBleGFjdCBkZXRhaWxzIG9mIHRoZWlyCithcmd1bWVudHMuPC9wPgorPGRpdiBjbGFzcz0iaXRlbWl6ZWRsaXN0Ij48dWwgY2xhc3M9Iml0ZW1pemVkbGlzdCIgc3R5bGU9Imxpc3Qtc3R5bGUtdHlwZTogZGlzYzsgIj4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPjxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5WQUxHUklORF9NQUtFX01FTV9OT0FDQ0VTUzwvY29kZT4sCisgICAgPGNvZGUgY2xhc3M9InZhcm5hbWUiPlZBTEdSSU5EX01BS0VfTUVNX1VOREVGSU5FRDwvY29kZT4gYW5kCisgICAgPGNvZGUgY2xhc3M9InZhcm5hbWUiPlZBTEdSSU5EX01BS0VfTUVNX0RFRklORUQ8L2NvZGU+LgorICAgIFRoZXNlIG1hcmsgYWRkcmVzcyByYW5nZXMgYXMgY29tcGxldGVseSBpbmFjY2Vzc2libGUsCisgICAgYWNjZXNzaWJsZSBidXQgY29udGFpbmluZyB1bmRlZmluZWQgZGF0YSwgYW5kIGFjY2Vzc2libGUgYW5kCisgICAgY29udGFpbmluZyBkZWZpbmVkIGRhdGEsIHJlc3BlY3RpdmVseS4gVGhleSByZXR1cm4gLTEsIHdoZW4KKyAgICBydW4gb24gVmFsZ3JpbmQgYW5kIDAgb3RoZXJ3aXNlLjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+PGNvZGUgY2xhc3M9InZhcm5hbWUiPlZBTEdSSU5EX01BS0VfTUVNX0RFRklORURfSUZfQUREUkVTU0FCTEU8L2NvZGU+LgorICAgIFRoaXMgaXMganVzdCBsaWtlIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5WQUxHUklORF9NQUtFX01FTV9ERUZJTkVEPC9jb2RlPiBidXQgb25seQorICAgIGFmZmVjdHMgdGhvc2UgYnl0ZXMgdGhhdCBhcmUgYWxyZWFkeSBhZGRyZXNzYWJsZS48L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPjxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5WQUxHUklORF9DSEVDS19NRU1fSVNfQUREUkVTU0FCTEU8L2NvZGU+IGFuZAorICAgIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5WQUxHUklORF9DSEVDS19NRU1fSVNfREVGSU5FRDwvY29kZT46IGNoZWNrIGltbWVkaWF0ZWx5CisgICAgd2hldGhlciBvciBub3QgdGhlIGdpdmVuIGFkZHJlc3MgcmFuZ2UgaGFzIHRoZSByZWxldmFudCBwcm9wZXJ0eSwKKyAgICBhbmQgaWYgbm90LCBwcmludCBhbiBlcnJvciBtZXNzYWdlLiAgQWxzbywgZm9yIHRoZSBjb252ZW5pZW5jZSBvZgorICAgIHRoZSBjbGllbnQsIHJldHVybnMgemVybyBpZiB0aGUgcmVsZXZhbnQgcHJvcGVydHkgaG9sZHM7IG90aGVyd2lzZSwKKyAgICB0aGUgcmV0dXJuZWQgdmFsdWUgaXMgdGhlIGFkZHJlc3Mgb2YgdGhlIGZpcnN0IGJ5dGUgZm9yIHdoaWNoIHRoZQorICAgIHByb3BlcnR5IGlzIG5vdCB0cnVlLiAgQWx3YXlzIHJldHVybnMgMCB3aGVuIG5vdCBydW4gb24KKyAgICBWYWxncmluZC48L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPjxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5WQUxHUklORF9DSEVDS19WQUxVRV9JU19ERUZJTkVEPC9jb2RlPjogYSBxdWljayBhbmQgZWFzeQorICAgIHdheSB0byBmaW5kIG91dCB3aGV0aGVyIFZhbGdyaW5kIHRoaW5rcyBhIHBhcnRpY3VsYXIgdmFsdWUKKyAgICAobHZhbHVlLCB0byBiZSBwcmVjaXNlKSBpcyBhZGRyZXNzYWJsZSBhbmQgZGVmaW5lZC4gIFByaW50cyBhbiBlcnJvcgorICAgIG1lc3NhZ2UgaWYgbm90LiAgSXQgaGFzIG5vIHJldHVybiB2YWx1ZS48L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPjxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5WQUxHUklORF9ET19MRUFLX0NIRUNLPC9jb2RlPjogZG9lcyBhIGZ1bGwgbWVtb3J5IGxlYWsKKyAgICBjaGVjayAobGlrZSA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWxlYWstY2hlY2s9ZnVsbDwvY29kZT4pIHJpZ2h0IG5vdy4KKyAgICBUaGlzIGlzIHVzZWZ1bCBmb3IgaW5jcmVtZW50YWxseSBjaGVja2luZyBmb3IgbGVha3MgYmV0d2VlbiBhcmJpdHJhcnkKKyAgICBwbGFjZXMgaW4gdGhlIHByb2dyYW0ncyBleGVjdXRpb24uICBJdCBoYXMgbm8gcmV0dXJuIHZhbHVlLjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+PGNvZGUgY2xhc3M9InZhcm5hbWUiPlZBTEdSSU5EX0RPX0FEREVEX0xFQUtfQ0hFQ0s8L2NvZGU+OiBzYW1lIGFzCisgICA8Y29kZSBjbGFzcz0idmFybmFtZSI+IFZBTEdSSU5EX0RPX0xFQUtfQ0hFQ0s8L2NvZGU+IGJ1dCBvbmx5IHNob3dzIHRoZQorICAgIGVudHJpZXMgZm9yIHdoaWNoIHRoZXJlIHdhcyBhbiBpbmNyZWFzZSBpbiBsZWFrZWQgYnl0ZXMgb3IgbGVha2VkCisgICAgbnVtYmVyIG9mIGJsb2NrcyBzaW5jZSB0aGUgcHJldmlvdXMgbGVhayBzZWFyY2guICBJdCBoYXMgbm8gcmV0dXJuCisgICAgdmFsdWUuPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD48Y29kZSBjbGFzcz0idmFybmFtZSI+VkFMR1JJTkRfRE9fQ0hBTkdFRF9MRUFLX0NIRUNLPC9jb2RlPjogc2FtZSBhcworICAgIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5WQUxHUklORF9ET19MRUFLX0NIRUNLPC9jb2RlPiBidXQgb25seSBzaG93cyB0aGUKKyAgICBlbnRyaWVzIGZvciB3aGljaCB0aGVyZSB3YXMgYW4gaW5jcmVhc2Ugb3IgZGVjcmVhc2UgaW4gbGVha2VkCisgICAgYnl0ZXMgb3IgbGVha2VkIG51bWJlciBvZiBibG9ja3Mgc2luY2UgdGhlIHByZXZpb3VzIGxlYWsgc2VhcmNoLiBJdAorICAgIGhhcyBubyByZXR1cm4gdmFsdWUuPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD48Y29kZSBjbGFzcz0idmFybmFtZSI+VkFMR1JJTkRfRE9fUVVJQ0tfTEVBS19DSEVDSzwvY29kZT46IGxpa2UKKyAgICA8Y29kZSBjbGFzcz0idmFybmFtZSI+VkFMR1JJTkRfRE9fTEVBS19DSEVDSzwvY29kZT4sIGV4Y2VwdCBpdCBwcm9kdWNlcyBvbmx5IGEgbGVhaworICAgIHN1bW1hcnkgKGxpa2UgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1sZWFrLWNoZWNrPXN1bW1hcnk8L2NvZGU+KS4KKyAgICBJdCBoYXMgbm8gcmV0dXJuIHZhbHVlLjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+PGNvZGUgY2xhc3M9InZhcm5hbWUiPlZBTEdSSU5EX0NPVU5UX0xFQUtTPC9jb2RlPjogZmlsbHMgaW4gdGhlIGZvdXIKKyAgICBhcmd1bWVudHMgd2l0aCB0aGUgbnVtYmVyIG9mIGJ5dGVzIG9mIG1lbW9yeSBmb3VuZCBieSB0aGUgcHJldmlvdXMKKyAgICBsZWFrIGNoZWNrIHRvIGJlIGxlYWtlZCAoaS5lLiB0aGUgc3VtIG9mIGRpcmVjdCBsZWFrcyBhbmQgaW5kaXJlY3QgbGVha3MpLAorICAgIGR1YmlvdXMsIHJlYWNoYWJsZSBhbmQgc3VwcHJlc3NlZC4gIFRoaXMgaXMgdXNlZnVsIGluIHRlc3QgaGFybmVzcyBjb2RlLAorICAgIGFmdGVyIGNhbGxpbmcgPGNvZGUgY2xhc3M9InZhcm5hbWUiPlZBTEdSSU5EX0RPX0xFQUtfQ0hFQ0s8L2NvZGU+IG9yCisgICAgPGNvZGUgY2xhc3M9InZhcm5hbWUiPlZBTEdSSU5EX0RPX1FVSUNLX0xFQUtfQ0hFQ0s8L2NvZGU+LjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+PGNvZGUgY2xhc3M9InZhcm5hbWUiPlZBTEdSSU5EX0NPVU5UX0xFQUtfQkxPQ0tTPC9jb2RlPjogaWRlbnRpY2FsIHRvCisgICAgPGNvZGUgY2xhc3M9InZhcm5hbWUiPlZBTEdSSU5EX0NPVU5UX0xFQUtTPC9jb2RlPiBleGNlcHQgdGhhdCBpdCByZXR1cm5zIHRoZQorICAgIG51bWJlciBvZiBibG9ja3MgcmF0aGVyIHRoYW4gdGhlIG51bWJlciBvZiBieXRlcyBpbiBlYWNoCisgICAgY2F0ZWdvcnkuPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD48Y29kZSBjbGFzcz0idmFybmFtZSI+VkFMR1JJTkRfR0VUX1ZCSVRTPC9jb2RlPiBhbmQKKyAgICA8Y29kZSBjbGFzcz0idmFybmFtZSI+VkFMR1JJTkRfU0VUX1ZCSVRTPC9jb2RlPjogYWxsb3cgeW91IHRvIGdldCBhbmQgc2V0IHRoZQorICAgIFYgKHZhbGlkaXR5KSBiaXRzIGZvciBhbiBhZGRyZXNzIHJhbmdlLiAgWW91IHNob3VsZCBwcm9iYWJseSBvbmx5CisgICAgc2V0IFYgYml0cyB0aGF0IHlvdSBoYXZlIGdvdCB3aXRoCisgICAgPGNvZGUgY2xhc3M9InZhcm5hbWUiPlZBTEdSSU5EX0dFVF9WQklUUzwvY29kZT4uICBPbmx5IGZvciB0aG9zZSB3aG8gcmVhbGx5CisgICAga25vdyB3aGF0IHRoZXkgYXJlIGRvaW5nLjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+Cis8cD48Y29kZSBjbGFzcz0idmFybmFtZSI+VkFMR1JJTkRfQ1JFQVRFX0JMT0NLPC9jb2RlPiBhbmQgCisgICAgPGNvZGUgY2xhc3M9InZhcm5hbWUiPlZBTEdSSU5EX0RJU0NBUkQ8L2NvZGU+LiAgPGNvZGUgY2xhc3M9InZhcm5hbWUiPlZBTEdSSU5EX0NSRUFURV9CTE9DSzwvY29kZT4KKyAgICB0YWtlcyBhbiBhZGRyZXNzLCBhIG51bWJlciBvZiBieXRlcyBhbmQgYSBjaGFyYWN0ZXIgc3RyaW5nLiAgVGhlCisgICAgc3BlY2lmaWVkIGFkZHJlc3MgcmFuZ2UgaXMgdGhlbiBhc3NvY2lhdGVkIHdpdGggdGhhdCBzdHJpbmcuICBXaGVuCisgICAgTWVtY2hlY2sgcmVwb3J0cyBhbiBpbnZhbGlkIGFjY2VzcyB0byBhbiBhZGRyZXNzIGluIHRoZSByYW5nZSwgaXQKKyAgICB3aWxsIGRlc2NyaWJlIGl0IGluIHRlcm1zIG9mIHRoaXMgYmxvY2sgcmF0aGVyIHRoYW4gaW4gdGVybXMgb2YKKyAgICBhbnkgb3RoZXIgYmxvY2sgaXQga25vd3MgYWJvdXQuICBOb3RlIHRoYXQgdGhlIHVzZSBvZiB0aGlzIG1hY3JvCisgICAgZG9lcyBub3QgYWN0dWFsbHkgY2hhbmdlIHRoZSBzdGF0ZSBvZiBtZW1vcnkgaW4gYW55IHdheSAtLSBpdAorICAgIG1lcmVseSBnaXZlcyBhIG5hbWUgZm9yIHRoZSByYW5nZS4KKyAgICA8L3A+Cis8cD5BdCBzb21lIHBvaW50IHlvdSBtYXkgd2FudCBNZW1jaGVjayB0byBzdG9wIHJlcG9ydGluZyBlcnJvcnMKKyAgICBpbiB0ZXJtcyBvZiB0aGUgYmxvY2sgbmFtZWQKKyAgICBieSA8Y29kZSBjbGFzcz0idmFybmFtZSI+VkFMR1JJTkRfQ1JFQVRFX0JMT0NLPC9jb2RlPi4gIFRvIG1ha2UgdGhpcworICAgIHBvc3NpYmxlLCA8Y29kZSBjbGFzcz0idmFybmFtZSI+VkFMR1JJTkRfQ1JFQVRFX0JMT0NLPC9jb2RlPiByZXR1cm5zIGEKKyAgICAiYmxvY2sgaGFuZGxlIiwgd2hpY2ggaXMgYSBDIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5pbnQ8L2NvZGU+IHZhbHVlLiAgWW91CisgICAgY2FuIHBhc3MgdGhpcyBibG9jayBoYW5kbGUgdG8gPGNvZGUgY2xhc3M9InZhcm5hbWUiPlZBTEdSSU5EX0RJU0NBUkQ8L2NvZGU+LgorICAgIEFmdGVyIGRvaW5nIHNvLCBWYWxncmluZCB3aWxsIG5vIGxvbmdlciByZWxhdGUgYWRkcmVzc2luZyBlcnJvcnMKKyAgICBpbiB0aGUgc3BlY2lmaWVkIHJhbmdlIHRvIHRoZSBibG9jay4gIFBhc3NpbmcgaW52YWxpZCBoYW5kbGVzIHRvCisgICAgPGNvZGUgY2xhc3M9InZhcm5hbWUiPlZBTEdSSU5EX0RJU0NBUkQ8L2NvZGU+IGlzIGhhcm1sZXNzLgorICAgPC9wPgorPC9saT4KKzwvdWw+PC9kaXY+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QxIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+Cis8YSBuYW1lPSJtYy1tYW51YWwubWVtcG9vbHMiPjwvYT40LjguoE1lbW9yeSBQb29sczogZGVzY3JpYmluZyBhbmQgd29ya2luZyB3aXRoIGN1c3RvbSBhbGxvY2F0b3JzPC9oMj48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPlNvbWUgcHJvZ3JhbXMgdXNlIGN1c3RvbSBtZW1vcnkgYWxsb2NhdG9ycywgb2Z0ZW4gZm9yIHBlcmZvcm1hbmNlCityZWFzb25zLiAgTGVmdCB0byBpdHNlbGYsIE1lbWNoZWNrIGlzIHVuYWJsZSB0byB1bmRlcnN0YW5kIHRoZQorYmVoYXZpb3VyIG9mIGN1c3RvbSBhbGxvY2F0aW9uIHNjaGVtZXMgYXMgd2VsbCBhcyBpdCB1bmRlcnN0YW5kcyB0aGUKK3N0YW5kYXJkIGFsbG9jYXRvcnMsIGFuZCBzbyBtYXkgbWlzcyBlcnJvcnMgYW5kIGxlYWtzIGluIHlvdXIgcHJvZ3JhbS4gIFdoYXQKK3RoaXMgc2VjdGlvbiBkZXNjcmliZXMgaXMgYSB3YXkgdG8gZ2l2ZSBNZW1jaGVjayBlbm91Z2ggb2YgYSBkZXNjcmlwdGlvbiBvZgoreW91ciBjdXN0b20gYWxsb2NhdG9yIHRoYXQgaXQgY2FuIG1ha2UgYXQgbGVhc3Qgc29tZSBzZW5zZSBvZiB3aGF0IGlzCitoYXBwZW5pbmcuPC9wPgorPHA+VGhlcmUgYXJlIG1hbnkgZGlmZmVyZW50IHNvcnRzIG9mIGN1c3RvbSBhbGxvY2F0b3IsIHNvIE1lbWNoZWNrCithdHRlbXB0cyB0byByZWFzb24gYWJvdXQgdGhlbSB1c2luZyBhIGxvb3NlLCBhYnN0cmFjdCBtb2RlbC4gIFdlCit1c2UgdGhlIGZvbGxvd2luZyB0ZXJtaW5vbG9neSB3aGVuIGRlc2NyaWJpbmcgY3VzdG9tIGFsbG9jYXRpb24KK3N5c3RlbXM6PC9wPgorPGRpdiBjbGFzcz0iaXRlbWl6ZWRsaXN0Ij48dWwgY2xhc3M9Iml0ZW1pemVkbGlzdCIgc3R5bGU9Imxpc3Qtc3R5bGUtdHlwZTogZGlzYzsgIj4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPkN1c3RvbSBhbGxvY2F0aW9uIGludm9sdmVzIGEgc2V0IG9mIGluZGVwZW5kZW50ICJtZW1vcnkgcG9vbHMiLgorICAgIDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+TWVtY2hlY2sncyBub3Rpb24gb2YgYSBhIG1lbW9yeSBwb29sIGNvbnNpc3RzIG9mIGEgc2luZ2xlICJhbmNob3IKKyAgICBhZGRyZXNzIiBhbmQgYSBzZXQgb2Ygbm9uLW92ZXJsYXBwaW5nICJjaHVua3MiIGFzc29jaWF0ZWQgd2l0aCB0aGUKKyAgICBhbmNob3IgYWRkcmVzcy48L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPlR5cGljYWxseSBhIHBvb2wncyBhbmNob3IgYWRkcmVzcyBpcyB0aGUgYWRkcmVzcyBvZiBhIAorICAgIGJvb2sta2VlcGluZyAiaGVhZGVyIiBzdHJ1Y3R1cmUuPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5UeXBpY2FsbHkgdGhlIHBvb2wncyBjaHVua3MgYXJlIGRyYXduIGZyb20gYSBjb250aWd1b3VzCisgICAgInN1cGVyYmxvY2siIGFjcXVpcmVkIHRocm91Z2ggdGhlIHN5c3RlbQorICAgIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+bWFsbG9jPC9jb2RlPiBvcgorICAgIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+bW1hcDwvY29kZT4uPC9wPjwvbGk+Cis8L3VsPjwvZGl2PgorPHA+S2VlcCBpbiBtaW5kIHRoYXQgdGhlIGxhc3QgdHdvIHBvaW50cyBhYm92ZSBzYXkgInR5cGljYWxseSI6IHRoZQorVmFsZ3JpbmQgbWVtcG9vbCBjbGllbnQgcmVxdWVzdCBBUEkgaXMgaW50ZW50aW9uYWxseSB2YWd1ZSBhYm91dCB0aGUKK2V4YWN0IHN0cnVjdHVyZSBvZiBhIG1lbXBvb2wuIFRoZXJlIGlzIG5vIHNwZWNpZmljIG1lbnRpb24gbWFkZSBvZgoraGVhZGVycyBvciBzdXBlcmJsb2Nrcy4gTmV2ZXJ0aGVsZXNzLCB0aGUgZm9sbG93aW5nIHBpY3R1cmUgbWF5IGhlbHAKK2VsdWNpZGF0ZSB0aGUgaW50ZW50aW9uIG9mIHRoZSB0ZXJtcyBpbiB0aGUgQVBJOjwvcD4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KKyAgICJwb29sIgorICAgKGFuY2hvciBhZGRyZXNzKQorICAgfAorICAgdgorICAgKy0tLS0tLS0tKy0tLSsKKyAgIHwgaGVhZGVyIHwgbyB8CisgICArLS0tLS0tLS0rLXwtKworICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgIHYgICAgICAgICAgICAgICAgICBzdXBlcmJsb2NrCisgICAgICAgICAgICAgICstLS0tLS0rLS0tKy0tLS0tLS0tLS0tLS0tKy0tLSstLS0tLS0tLS0tLS0tLS0tLS0rCisgICAgICAgICAgICAgIHwgICAgICB8cnpCfCAgYWxsb2NhdGlvbiAgfHJ6QnwgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICstLS0tLS0rLS0tKy0tLS0tLS0tLS0tLS0tKy0tLSstLS0tLS0tLS0tLS0tLS0tLS0rCisgICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAgICAgICAgICAgXgorICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgICAgImFkZHIiICAgICAiYWRkciIrInNpemUiCis8L3ByZT4KKzxwPgorTm90ZSB0aGF0IHRoZSBoZWFkZXIgYW5kIHRoZSBzdXBlcmJsb2NrIG1heSBiZSBjb250aWd1b3VzIG9yCitkaXNjb250aWd1b3VzLCBhbmQgdGhlcmUgbWF5IGJlIG11bHRpcGxlIHN1cGVyYmxvY2tzIGFzc29jaWF0ZWQgd2l0aCBhCitzaW5nbGUgaGVhZGVyOyBzdWNoIHZhcmlhdGlvbnMgYXJlIG9wYXF1ZSB0byBNZW1jaGVjay4gVGhlIEFQSQorb25seSByZXF1aXJlcyB0aGF0IHlvdXIgYWxsb2NhdGlvbiBzY2hlbWUgY2FuIHByZXNlbnQgc2Vuc2libGUgdmFsdWVzCitvZiAicG9vbCIsICJhZGRyIiBhbmQgInNpemUiLjwvcD4KKzxwPgorVHlwaWNhbGx5LCBiZWZvcmUgbWFraW5nIGNsaWVudCByZXF1ZXN0cyByZWxhdGVkIHRvIG1lbXBvb2xzLCBhIGNsaWVudAorcHJvZ3JhbSB3aWxsIGhhdmUgYWxsb2NhdGVkIHN1Y2ggYSBoZWFkZXIgYW5kIHN1cGVyYmxvY2sgZm9yIHRoZWlyCittZW1wb29sLCBhbmQgbWFya2VkIHRoZSBzdXBlcmJsb2NrIE5PQUNDRVNTIHVzaW5nIHRoZQorPGNvZGUgY2xhc3M9InZhcm5hbWUiPlZBTEdSSU5EX01BS0VfTUVNX05PQUNDRVNTPC9jb2RlPiBjbGllbnQgcmVxdWVzdC48L3A+Cis8cD4KK1doZW4gZGVhbGluZyB3aXRoIG1lbXBvb2xzLCB0aGUgZ29hbCBpcyB0byBtYWludGFpbiBhIHBhcnRpY3VsYXIKK2ludmFyaWFudCBjb25kaXRpb246IHRoYXQgTWVtY2hlY2sgYmVsaWV2ZXMgdGhlIHVuYWxsb2NhdGVkIHBvcnRpb25zCitvZiB0aGUgcG9vbCdzIHN1cGVyYmxvY2sgKGluY2x1ZGluZyByZWR6b25lcykgYXJlIE5PQUNDRVNTLiBUbworbWFpbnRhaW4gdGhpcyBpbnZhcmlhbnQsIHRoZSBjbGllbnQgcHJvZ3JhbSBtdXN0IGVuc3VyZSB0aGF0IHRoZQorc3VwZXJibG9jayBzdGFydHMgb3V0IGluIHRoYXQgc3RhdGU7IE1lbWNoZWNrIGNhbm5vdCBtYWtlIGl0IHNvLCBzaW5jZQorTWVtY2hlY2sgbmV2ZXIgZXhwbGljaXRseSBsZWFybnMgYWJvdXQgdGhlIHN1cGVyYmxvY2sgb2YgYSBwb29sLCBvbmx5Cit0aGUgYWxsb2NhdGVkIGNodW5rcyB3aXRoaW4gdGhlIHBvb2wuPC9wPgorPHA+CitPbmNlIHRoZSBoZWFkZXIgYW5kIHN1cGVyYmxvY2sgZm9yIGEgcG9vbCBhcmUgZXN0YWJsaXNoZWQgYW5kIHByb3Blcmx5CittYXJrZWQsIHRoZXJlIGFyZSBhIG51bWJlciBvZiBjbGllbnQgcmVxdWVzdHMgcHJvZ3JhbXMgY2FuIHVzZSB0bworaW5mb3JtIE1lbWNoZWNrIGFib3V0IGNoYW5nZXMgdG8gdGhlIHN0YXRlIG9mIGEgbWVtcG9vbDo8L3A+Cis8ZGl2IGNsYXNzPSJpdGVtaXplZGxpc3QiPjx1bCBjbGFzcz0iaXRlbWl6ZWRsaXN0IiBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOiBkaXNjOyAiPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+Cis8cD4KKyAgICA8Y29kZSBjbGFzcz0idmFybmFtZSI+VkFMR1JJTkRfQ1JFQVRFX01FTVBPT0wocG9vbCwgcnpCLCBpc196ZXJvZWQpPC9jb2RlPjoKKyAgICBUaGlzIHJlcXVlc3QgcmVnaXN0ZXJzIHRoZSBhZGRyZXNzIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5wb29sPC9jb2RlPiBhcyB0aGUgYW5jaG9yCisgICAgYWRkcmVzcyBmb3IgYSBtZW1vcnkgcG9vbC4gSXQgYWxzbyBwcm92aWRlcyBhIHNpemUKKyAgICA8Y29kZSBjbGFzcz0idmFybmFtZSI+cnpCPC9jb2RlPiwgc3BlY2lmeWluZyBob3cgbGFyZ2UgdGhlIHJlZHpvbmVzIHBsYWNlZCBhcm91bmQKKyAgICBjaHVua3MgYWxsb2NhdGVkIGZyb20gdGhlIHBvb2wgc2hvdWxkIGJlLiBGaW5hbGx5LCBpdCBwcm92aWRlcyBhbgorICAgIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5pc196ZXJvZWQ8L2NvZGU+IGFyZ3VtZW50IHRoYXQgc3BlY2lmaWVzIHdoZXRoZXIgdGhlIHBvb2wncworICAgIGNodW5rcyBhcmUgemVyb2VkIChtb3JlIHByZWNpc2VseTogZGVmaW5lZCkgd2hlbiBhbGxvY2F0ZWQuCisgICAgPC9wPgorPHA+CisgICAgVXBvbiBjb21wbGV0aW9uIG9mIHRoaXMgcmVxdWVzdCwgbm8gY2h1bmtzIGFyZSBhc3NvY2lhdGVkIHdpdGggdGhlCisgICAgcG9vbC4gIFRoZSByZXF1ZXN0IHNpbXBseSB0ZWxscyBNZW1jaGVjayB0aGF0IHRoZSBwb29sIGV4aXN0cywgc28gdGhhdAorICAgIHN1YnNlcXVlbnQgY2FsbHMgY2FuIHJlZmVyIHRvIGl0IGFzIGEgcG9vbC4KKyAgICA8L3A+Cis8L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+Cis8cD4KKyAgICAgIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5WQUxHUklORF9DUkVBVEVfTUVNUE9PTF9FWFQocG9vbCwgcnpCLCBpc196ZXJvZWQsIGZsYWdzKTwvY29kZT46CisgICAgICBDcmVhdGUgYSBtZW1vcnkgcG9vbCB3aXRoIHNvbWUgZmxhZ3MgKHRoYXQgY2FuCisgICAgICBiZSBPUi1lZCB0b2dldGhlcikgc3BlY2lmeWluZyBleHRlbmRlZCBiZWhhdmlvdXIuICBXaGVuIGZsYWdzIGlzCisgICAgICB6ZXJvLCB0aGUgYmVoYXZpb3VyIGlzIGlkZW50aWNhbCB0bworICAgIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5WQUxHUklORF9DUkVBVEVfTUVNUE9PTDwvY29kZT4uPC9wPgorPGRpdiBjbGFzcz0iaXRlbWl6ZWRsaXN0Ij48dWwgY2xhc3M9Iml0ZW1pemVkbGlzdCIgc3R5bGU9Imxpc3Qtc3R5bGUtdHlwZTogY2lyY2xlOyAiPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+IFRoZSBmbGFnIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5WQUxHUklORF9NRU1QT09MX01FVEFQT09MPC9jb2RlPgorICAgICAgICAgIHNwZWNpZmllcyB0aGF0IHRoZSBwaWVjZXMgb2YgbWVtb3J5IGFzc29jaWF0ZWQgd2l0aCB0aGUgcG9vbAorICAgICAgICAgIHVzaW5nIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5WQUxHUklORF9NRU1QT09MX0FMTE9DPC9jb2RlPiB3aWxsIGJlIHVzZWQKKyAgICAgICAgICBieSB0aGUgYXBwbGljYXRpb24gYXMgc3VwZXJibG9ja3MgdG8gZG9sZSBvdXQgTUFMTE9DX0xJS0UKKyAgICAgICAgICBibG9ja3MgdXNpbmcgPGNvZGUgY2xhc3M9InZhcm5hbWUiPlZBTEdSSU5EX01BTExPQ0xJS0VfQkxPQ0s8L2NvZGU+LgorICAgICAgICAgIEluIG90aGVyIHdvcmRzLCBhIG1ldGEgcG9vbCBpcyBhICIyIGxldmVscyIgcG9vbCA6IGZpcnN0CisgICAgICAgICAgbGV2ZWwgaXMgdGhlIGJsb2NrcyBkZXNjcmliZWQKKyAgICAgICAgICBieSA8Y29kZSBjbGFzcz0idmFybmFtZSI+VkFMR1JJTkRfTUVNUE9PTF9BTExPQzwvY29kZT4uICBUaGUgc2Vjb25kCisgICAgICAgICAgbGV2ZWwgYmxvY2tzIGFyZSBkZXNjcmliZWQKKyAgICAgICAgICB1c2luZyA8Y29kZSBjbGFzcz0idmFybmFtZSI+VkFMR1JJTkRfTUFMTE9DTElLRV9CTE9DSzwvY29kZT4uICBOb3RlCisgICAgICAgICAgdGhhdCB0aGUgYXNzb2NpYXRpb24gYmV0d2VlbiB0aGUgcG9vbCBhbmQgdGhlIHNlY29uZCBsZXZlbAorICAgICAgICAgIGJsb2NrcyBpcyBpbXBsaWNpdCA6IHNlY29uZCBsZXZlbCBibG9ja3Mgd2lsbCBiZSBsb2NhdGVkCisgICAgICAgICAgaW5zaWRlIGZpcnN0IGxldmVsIGJsb2Nrcy4gSXQgaXMgbmVjZXNzYXJ5IHRvIHVzZQorICAgICAgICAgIHRoZSA8Y29kZSBjbGFzcz0idmFybmFtZSI+VkFMR1JJTkRfTUVNUE9PTF9NRVRBUE9PTDwvY29kZT4gZmxhZyBmb3IKKyAgICAgICAgICBzdWNoIDIgbGV2ZWxzIHBvb2xzLCBhcyBvdGhlcndpc2UgdmFsZ3JpbmQgd2lsbCBkZXRlY3QKKyAgICAgICAgICBvdmVybGFwcGluZyBtZW1vcnkgYmxvY2tzLCBhbmQgd2lsbCBhYm9ydCBleGVjdXRpb24KKyAgICAgICAgICAoZS5nLiBkdXJpbmcgbGVhayBzZWFyY2gpLgorCTwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+CisJICA8Y29kZSBjbGFzcz0idmFybmFtZSI+VkFMR1JJTkRfTUVNUE9PTF9BVVRPX0ZSRUU8L2NvZGU+LiAgU3VjaCBhIG1ldGEKKyAgICAgICAgICBwb29sIGNhbiBhbHNvIGJlIG1hcmtlZCBhcyBhbiAnYXV0byBmcmVlJyBwb29sIHVzaW5nIHRoZQorICAgICAgICAgIGZsYWcgPGNvZGUgY2xhc3M9InZhcm5hbWUiPlZBTEdSSU5EX01FTVBPT0xfQVVUT19GUkVFPC9jb2RlPiwgd2hpY2gKKyAgICAgICAgICBtdXN0IGJlIE9SLWVkIHRvZ2V0aGVyIHdpdGgKKyAgICAgICAgICB0aGUgPGNvZGUgY2xhc3M9InZhcm5hbWUiPlZBTEdSSU5EX01FTVBPT0xfTUVUQVBPT0w8L2NvZGU+LiBGb3IgYW4KKyAgICAgICAgICAnYXV0byBmcmVlJyBwb29sLCA8Y29kZSBjbGFzcz0idmFybmFtZSI+VkFMR1JJTkRfTUVNUE9PTF9GUkVFPC9jb2RlPgorICAgICAgICAgIHdpbGwgYXV0b21hdGljYWxseSBmcmVlIHRoZSBzZWNvbmQgbGV2ZWwgYmxvY2tzIHRoYXQgYXJlCisgICAgICAgICAgY29udGFpbmVkIGluc2lkZSB0aGUgZmlyc3QgbGV2ZWwgYmxvY2sgZnJlZWQKKyAgICAgICAgICB3aXRoIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5WQUxHUklORF9NRU1QT09MX0ZSRUU8L2NvZGU+LiAgSW4gb3RoZXIKKyAgICAgICAgICB3b3JkcywgY2FsbGluZyA8Y29kZSBjbGFzcz0idmFybmFtZSI+VkFMR1JJTkRfTUVNUE9PTF9GUkVFPC9jb2RlPiB3aWxsCisgICAgICAgICAgY2F1c2UgaW1wbGljaXQgY2FsbHMKKyAgICAgICAgICB0byA8Y29kZSBjbGFzcz0idmFybmFtZSI+VkFMR1JJTkRfRlJFRUxJS0VfQkxPQ0s8L2NvZGU+IGZvciBhbGwgdGhlCisgICAgICAgICAgc2Vjb25kIGxldmVsIGJsb2NrcyBpbmNsdWRlZCBpbiB0aGUgZmlyc3QgbGV2ZWwgYmxvY2suCisgICAgICAgICAgTm90ZTogaXQgaXMgYW4gZXJyb3IgdG8gdXNlCisgICAgICAgICAgdGhlIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5WQUxHUklORF9NRU1QT09MX0FVVE9fRlJFRTwvY29kZT4gZmxhZworICAgICAgICAgIHdpdGhvdXQgdGhlCisgICAgICAgICA8Y29kZSBjbGFzcz0idmFybmFtZSI+VkFMR1JJTkRfTUVNUE9PTF9NRVRBUE9PTDwvY29kZT4gZmxhZy4KKwk8L3A+PC9saT4KKzwvdWw+PC9kaXY+Cis8L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+PGNvZGUgY2xhc3M9InZhcm5hbWUiPlZBTEdSSU5EX0RFU1RST1lfTUVNUE9PTChwb29sKTwvY29kZT46CisgICAgVGhpcyByZXF1ZXN0IHRlbGxzIE1lbWNoZWNrIHRoYXQgYSBwb29sIGlzIGJlaW5nIHRvcm4gZG93bi4gTWVtY2hlY2sKKyAgICB0aGVuIHJlbW92ZXMgYWxsIHJlY29yZHMgb2YgY2h1bmtzIGFzc29jaWF0ZWQgd2l0aCB0aGUgcG9vbCwgYXMgd2VsbAorICAgIGFzIGl0cyByZWNvcmQgb2YgdGhlIHBvb2wncyBleGlzdGVuY2UuIFdoaWxlIGRlc3Ryb3lpbmcgaXRzIHJlY29yZHMgb2YKKyAgICBhIG1lbXBvb2wsIE1lbWNoZWNrIHJlc2V0cyB0aGUgcmVkem9uZXMgb2YgYW55IGxpdmUgY2h1bmtzIGluIHRoZSBwb29sCisgICAgdG8gTk9BQ0NFU1MuCisgICAgPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD48Y29kZSBjbGFzcz0idmFybmFtZSI+VkFMR1JJTkRfTUVNUE9PTF9BTExPQyhwb29sLCBhZGRyLCBzaXplKTwvY29kZT46CisgICAgVGhpcyByZXF1ZXN0IGluZm9ybXMgTWVtY2hlY2sgdGhhdCBhIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5zaXplPC9jb2RlPi1ieXRlIGNodW5rCisgICAgaGFzIGJlZW4gYWxsb2NhdGVkIGF0IDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5hZGRyPC9jb2RlPiwgYW5kIGFzc29jaWF0ZXMgdGhlIGNodW5rIHdpdGggdGhlCisgICAgc3BlY2lmaWVkCisgICAgPGNvZGUgY2xhc3M9InZhcm5hbWUiPnBvb2w8L2NvZGU+LiBJZiB0aGUgcG9vbCB3YXMgY3JlYXRlZCB3aXRoIG5vbnplcm8KKyAgICA8Y29kZSBjbGFzcz0idmFybmFtZSI+cnpCPC9jb2RlPiByZWR6b25lcywgTWVtY2hlY2sgd2lsbCBtYXJrIHRoZQorICAgIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5yekI8L2NvZGU+IGJ5dGVzIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIGNodW5rIGFzIE5PQUNDRVNTLiBJZgorICAgIHRoZSBwb29sIHdhcyBjcmVhdGVkIHdpdGggdGhlIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5pc196ZXJvZWQ8L2NvZGU+IGFyZ3VtZW50IHNldCwKKyAgICBNZW1jaGVjayB3aWxsIG1hcmsgdGhlIGNodW5rIGFzIERFRklORUQsIG90aGVyd2lzZSBNZW1jaGVjayB3aWxsIG1hcmsKKyAgICB0aGUgY2h1bmsgYXMgVU5ERUZJTkVELgorICAgIDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+PGNvZGUgY2xhc3M9InZhcm5hbWUiPlZBTEdSSU5EX01FTVBPT0xfRlJFRShwb29sLCBhZGRyKTwvY29kZT46CisgICAgVGhpcyByZXF1ZXN0IGluZm9ybXMgTWVtY2hlY2sgdGhhdCB0aGUgY2h1bmsgYXQgPGNvZGUgY2xhc3M9InZhcm5hbWUiPmFkZHI8L2NvZGU+CisgICAgc2hvdWxkIG5vIGxvbmdlciBiZSBjb25zaWRlcmVkIGFsbG9jYXRlZC4gTWVtY2hlY2sgd2lsbCBtYXJrIHRoZSBjaHVuaworICAgIGFzc29jaWF0ZWQgd2l0aCA8Y29kZSBjbGFzcz0idmFybmFtZSI+YWRkcjwvY29kZT4gYXMgTk9BQ0NFU1MsIGFuZCBkZWxldGUgaXRzCisgICAgcmVjb3JkIG9mIHRoZSBjaHVuaydzIGV4aXN0ZW5jZS4KKyAgICA8L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPgorPHA+PGNvZGUgY2xhc3M9InZhcm5hbWUiPlZBTEdSSU5EX01FTVBPT0xfVFJJTShwb29sLCBhZGRyLCBzaXplKTwvY29kZT46CisgICAgVGhpcyByZXF1ZXN0IHRyaW1zIHRoZSBjaHVua3MgYXNzb2NpYXRlZCB3aXRoIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5wb29sPC9jb2RlPi4KKyAgICBUaGUgcmVxdWVzdCBvbmx5IG9wZXJhdGVzIG9uIGNodW5rcyBhc3NvY2lhdGVkIHdpdGgKKyAgICA8Y29kZSBjbGFzcz0idmFybmFtZSI+cG9vbDwvY29kZT4uIFRyaW1taW5nIGlzIGZvcm1hbGx5IGRlZmluZWQgYXM6PC9wPgorPGRpdiBjbGFzcz0iaXRlbWl6ZWRsaXN0Ij48dWwgY2xhc3M9Iml0ZW1pemVkbGlzdCIgc3R5bGU9Imxpc3Qtc3R5bGUtdHlwZTogY2lyY2xlOyAiPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+IEFsbCBjaHVua3MgZW50aXJlbHkgaW5zaWRlIHRoZSByYW5nZQorICAgICAgICA8Y29kZSBjbGFzcz0idmFybmFtZSI+YWRkci4uKGFkZHIrc2l6ZS0xKTwvY29kZT4gYXJlIHByZXNlcnZlZC48L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPkFsbCBjaHVua3MgZW50aXJlbHkgb3V0c2lkZSB0aGUgcmFuZ2UKKyAgICAgICAgPGNvZGUgY2xhc3M9InZhcm5hbWUiPmFkZHIuLihhZGRyK3NpemUtMSk8L2NvZGU+IGFyZSBkaXNjYXJkZWQsIGFzIHRob3VnaAorICAgICAgICA8Y29kZSBjbGFzcz0idmFybmFtZSI+VkFMR1JJTkRfTUVNUE9PTF9GUkVFPC9jb2RlPiB3YXMgY2FsbGVkIG9uIHRoZW0uIDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+QWxsIG90aGVyIGNodW5rcyBtdXN0IGludGVyc2VjdCB3aXRoIHRoZSByYW5nZSAKKyAgICAgICAgPGNvZGUgY2xhc3M9InZhcm5hbWUiPmFkZHIuLihhZGRyK3NpemUtMSk8L2NvZGU+OyBhcmVhcyBvdXRzaWRlIHRoZQorICAgICAgICBpbnRlcnNlY3Rpb24gYXJlIG1hcmtlZCBhcyBOT0FDQ0VTUywgYXMgdGhvdWdoIHRoZXkgaGFkIGJlZW4KKyAgICAgICAgaW5kZXBlbmRlbnRseSBmcmVlZCB3aXRoCisgICAgICAgIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5WQUxHUklORF9NRU1QT09MX0ZSRUU8L2NvZGU+LjwvcD48L2xpPgorPC91bD48L2Rpdj4KKzxwPlRoaXMgaXMgYSBzb21ld2hhdCByYXJlIHJlcXVlc3QsIGJ1dCBjYW4gYmUgdXNlZnVsIGluIAorICAgIGltcGxlbWVudGluZyB0aGUgdHlwZSBvZiBtYXNzLWZyZWUgb3BlcmF0aW9ucyBjb21tb24gaW4gY3VzdG9tIAorICAgIExJRk8gYWxsb2NhdG9ycy48L3A+Cis8L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+Cis8cD48Y29kZSBjbGFzcz0idmFybmFtZSI+VkFMR1JJTkRfTU9WRV9NRU1QT09MKHBvb2xBLCBwb29sQik8L2NvZGU+OiBUaGlzCisgICAgcmVxdWVzdCBpbmZvcm1zIE1lbWNoZWNrIHRoYXQgdGhlIHBvb2wgcHJldmlvdXNseSBhbmNob3JlZCBhdAorICAgIGFkZHJlc3MgPGNvZGUgY2xhc3M9InZhcm5hbWUiPnBvb2xBPC9jb2RlPiBoYXMgbW92ZWQgdG8gYW5jaG9yIGFkZHJlc3MKKyAgICA8Y29kZSBjbGFzcz0idmFybmFtZSI+cG9vbEI8L2NvZGU+LiAgVGhpcyBpcyBhIHJhcmUgcmVxdWVzdCwgdHlwaWNhbGx5IG9ubHkgbmVlZGVkCisgICAgaWYgeW91IDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+cmVhbGxvYzwvY29kZT4gdGhlIGhlYWRlciBvZiBhIG1lbXBvb2wuPC9wPgorPHA+Tm8gbWVtb3J5LXN0YXR1cyBiaXRzIGFyZSBhbHRlcmVkIGJ5IHRoaXMgcmVxdWVzdC48L3A+Cis8L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+Cis8cD4KKyAgICA8Y29kZSBjbGFzcz0idmFybmFtZSI+VkFMR1JJTkRfTUVNUE9PTF9DSEFOR0UocG9vbCwgYWRkckEsIGFkZHJCLAorICAgIHNpemUpPC9jb2RlPjogVGhpcyByZXF1ZXN0IGluZm9ybXMgTWVtY2hlY2sgdGhhdCB0aGUgY2h1bmsKKyAgICBwcmV2aW91c2x5IGFsbG9jYXRlZCBhdCBhZGRyZXNzIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5hZGRyQTwvY29kZT4gd2l0aGluCisgICAgPGNvZGUgY2xhc3M9InZhcm5hbWUiPnBvb2w8L2NvZGU+IGhhcyBiZWVuIG1vdmVkIGFuZC9vciByZXNpemVkLCBhbmQgc2hvdWxkIGJlCisgICAgY2hhbmdlZCB0byBjb3ZlciB0aGUgcmVnaW9uIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5hZGRyQi4uKGFkZHJCK3NpemUtMSk8L2NvZGU+LiBUaGlzCisgICAgaXMgYSByYXJlIHJlcXVlc3QsIHR5cGljYWxseSBvbmx5IG5lZWRlZCBpZiB5b3UKKyAgICA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPnJlYWxsb2M8L2NvZGU+IGEgc3VwZXJibG9jayBvciB3aXNoIHRvIGV4dGVuZCBhIGNodW5rCisgICAgd2l0aG91dCBjaGFuZ2luZyBpdHMgbWVtb3J5LXN0YXR1cyBiaXRzLgorICAgIDwvcD4KKzxwPk5vIG1lbW9yeS1zdGF0dXMgYml0cyBhcmUgYWx0ZXJlZCBieSB0aGlzIHJlcXVlc3QuCisgICAgPC9wPgorPC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPjxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5WQUxHUklORF9NRU1QT09MX0VYSVNUUyhwb29sKTwvY29kZT46CisgICAgVGhpcyByZXF1ZXN0IGluZm9ybXMgdGhlIGNhbGxlciB3aGV0aGVyIG9yIG5vdCBNZW1jaGVjayBpcyBjdXJyZW50bHkgCisgICAgdHJhY2tpbmcgYSBtZW1wb29sIGF0IGFuY2hvciBhZGRyZXNzIDxjb2RlIGNsYXNzPSJ2YXJuYW1lIj5wb29sPC9jb2RlPi4gSXQKKyAgICBldmFsdWF0ZXMgdG8gMSB3aGVuIHRoZXJlIGlzIGEgbWVtcG9vbCBhc3NvY2lhdGVkIHdpdGggdGhhdCBhZGRyZXNzLCAwCisgICAgb3RoZXJ3aXNlLiBUaGlzIGlzIGEgcmFyZSByZXF1ZXN0LCBvbmx5IHVzZWZ1bCBpbiBjaXJjdW1zdGFuY2VzIHdoZW4KKyAgICBjbGllbnQgY29kZSBtaWdodCBoYXZlIGxvc3QgdHJhY2sgb2YgdGhlIHNldCBvZiBhY3RpdmUgbWVtcG9vbHMuCisgICAgPC9wPjwvbGk+Cis8L3VsPjwvZGl2PgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MSI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPgorPGEgbmFtZT0ibWMtbWFudWFsLm1waXdyYXAiPjwvYT40LjkuoERlYnVnZ2luZyBNUEkgUGFyYWxsZWwgUHJvZ3JhbXMgd2l0aCBWYWxncmluZDwvaDI+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD5NZW1jaGVjayBzdXBwb3J0cyBkZWJ1Z2dpbmcgb2YgZGlzdHJpYnV0ZWQtbWVtb3J5IGFwcGxpY2F0aW9ucword2hpY2ggdXNlIHRoZSBNUEkgbWVzc2FnZSBwYXNzaW5nIHN0YW5kYXJkLiAgVGhpcyBzdXBwb3J0IGNvbnNpc3RzIG9mIGEKK2xpYnJhcnkgb2Ygd3JhcHBlciBmdW5jdGlvbnMgZm9yIHRoZQorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5QTVBJXyo8L2NvZGU+IGludGVyZmFjZS4gIFdoZW4gaW5jb3Jwb3JhdGVkCitpbnRvIHRoZSBhcHBsaWNhdGlvbidzIGFkZHJlc3Mgc3BhY2UsIGVpdGhlciBieSBkaXJlY3QgbGlua2luZyBvciBieQorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5MRF9QUkVMT0FEPC9jb2RlPiwgdGhlIHdyYXBwZXJzIGludGVyY2VwdAorY2FsbHMgdG8gPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5QTVBJX1NlbmQ8L2NvZGU+LAorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5QTVBJX1JlY3Y8L2NvZGU+LCBldGMuICBUaGV5IHRoZW4KK3VzZSBjbGllbnQgcmVxdWVzdHMgdG8gaW5mb3JtIE1lbWNoZWNrIG9mIG1lbW9yeSBzdGF0ZSBjaGFuZ2VzIGNhdXNlZAorYnkgdGhlIGZ1bmN0aW9uIGJlaW5nIHdyYXBwZWQuICBUaGlzIHJlZHVjZXMgdGhlIG51bWJlciBvZiBmYWxzZQorcG9zaXRpdmVzIHRoYXQgTWVtY2hlY2sgb3RoZXJ3aXNlIHR5cGljYWxseSByZXBvcnRzIGZvciBNUEkKK2FwcGxpY2F0aW9ucy48L3A+Cis8cD5UaGUgd3JhcHBlcnMgYWxzbyB0YWtlIHRoZSBvcHBvcnR1bml0eSB0byBjYXJlZnVsbHkgY2hlY2sKK3NpemUgYW5kIGRlZmluZWRuZXNzIG9mIGJ1ZmZlcnMgcGFzc2VkIGFzIGFyZ3VtZW50cyB0byBNUEkgZnVuY3Rpb25zLCBoZW5jZQorZGV0ZWN0aW5nIGVycm9ycyBzdWNoIGFzIHBhc3NpbmcgdW5kZWZpbmVkIGRhdGEgdG8KKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+UE1QSV9TZW5kPC9jb2RlPiwgb3IgcmVjZWl2aW5nIGRhdGEgaW50byBhCitidWZmZXIgd2hpY2ggaXMgdG9vIHNtYWxsLjwvcD4KKzxwPlVubGlrZSBtb3N0IG9mIHRoZSByZXN0IG9mIFZhbGdyaW5kLCB0aGUgd3JhcHBlciBsaWJyYXJ5IGlzIHN1YmplY3QgdG8gYQorQlNELXN0eWxlIGxpY2Vuc2UsIHNvIHlvdSBjYW4gbGluayBpdCBpbnRvIGFueSBjb2RlIGJhc2UgeW91IGxpa2UuCitTZWUgdGhlIHRvcCBvZiA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPm1waS9saWJtcGl3cmFwLmM8L2NvZGU+Citmb3IgbGljZW5zZSBkZXRhaWxzLjwvcD4KKzxkaXYgY2xhc3M9InNlY3QyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0ibWMtbWFudWFsLm1waXdyYXAuYnVpbGQiPjwvYT40LjkuMS6gQnVpbGRpbmcgYW5kIGluc3RhbGxpbmcgdGhlIHdyYXBwZXJzPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPiBUaGUgd3JhcHBlciBsaWJyYXJ5IHdpbGwgYmUgYnVpbHQgYXV0b21hdGljYWxseSBpZiBwb3NzaWJsZS4KK1ZhbGdyaW5kJ3MgY29uZmlndXJlIHNjcmlwdCB3aWxsIGxvb2sgZm9yIGEgc3VpdGFibGUKKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+bXBpY2M8L2NvZGU+IHRvIGJ1aWxkIGl0IHdpdGguICBUaGlzIG11c3QgYmUKK3RoZSBzYW1lIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+bXBpY2M8L2NvZGU+IHlvdSB1c2UgdG8gYnVpbGQgdGhlCitNUEkgYXBwbGljYXRpb24geW91IHdhbnQgdG8gZGVidWcuICBCeSBkZWZhdWx0LCBWYWxncmluZCB0cmllcworPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5tcGljYzwvY29kZT4sIGJ1dCB5b3UgY2FuIHNwZWNpZnkgYQorZGlmZmVyZW50IG9uZSBieSB1c2luZyB0aGUgY29uZmlndXJlLXRpbWUgb3B0aW9uCis8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXdpdGgtbXBpY2M8L2NvZGU+LiAgQ3VycmVudGx5IHRoZQord3JhcHBlcnMgYXJlIG9ubHkgYnVpbGRhYmxlIHdpdGgKKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+bXBpY2M8L2NvZGU+cyB3aGljaCBhcmUgYmFzZWQgb24gR05VCitHQ0Mgb3IgSW50ZWwncyBDKysgQ29tcGlsZXIuPC9wPgorPHA+Q2hlY2sgdGhhdCB0aGUgY29uZmlndXJlIHNjcmlwdCBwcmludHMgYSBsaW5lIGxpa2UgdGhpczo8L3A+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CitjaGVja2luZyBmb3IgdXNhYmxlIE1QSTItY29tcGxpYW50IG1waWNjIGFuZCBtcGkuaC4uLiB5ZXMsIG1waWNjCis8L3ByZT4KKzxwPklmIGl0IHNheXMgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij4uLi4gbm88L2NvZGU+LCB5b3VyCis8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPm1waWNjPC9jb2RlPiBoYXMgZmFpbGVkIHRvIGNvbXBpbGUgYW5kIGxpbmsKK2EgdGVzdCBNUEkyIHByb2dyYW0uPC9wPgorPHA+SWYgdGhlIGNvbmZpZ3VyZSB0ZXN0IHN1Y2NlZWRzLCBjb250aW51ZSBpbiB0aGUgdXN1YWwgd2F5IHdpdGgKKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+bWFrZTwvY29kZT4gYW5kIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+bWFrZQoraW5zdGFsbDwvY29kZT4uICBUaGUgZmluYWwgaW5zdGFsbCB0cmVlIHNob3VsZCB0aGVuIGNvbnRhaW4KKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+bGlibXBpd3JhcC0mbHQ7cGxhdGZvcm0mZ3Q7LnNvPC9jb2RlPi4KKzwvcD4KKzxwPkNvbXBpbGUgdXAgYSB0ZXN0IE1QSSBwcm9ncmFtIChlZywgTVBJIGhlbGxvLXdvcmxkKSBhbmQgdHJ5Cit0aGlzOjwvcD4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KK0xEX1BSRUxPQUQ9JHByZWZpeC9saWIvdmFsZ3JpbmQvbGlibXBpd3JhcC0mbHQ7cGxhdGZvcm0mZ3Q7LnNvICAgXAorICAgICAgICAgICBtcGlydW4gW2FyZ3NdICRwcmVmaXgvYmluL3ZhbGdyaW5kIC4vaGVsbG8KKzwvcHJlPgorPHA+WW91IHNob3VsZCBzZWUgc29tZXRoaW5nIHNpbWlsYXIgdG8gdGhlIGZvbGxvd2luZzwvcD4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KK3ZhbGdyaW5kIE1QSSB3cmFwcGVycyAzMTkwMTogQWN0aXZlIGZvciBwaWQgMzE5MDEKK3ZhbGdyaW5kIE1QSSB3cmFwcGVycyAzMTkwMTogVHJ5IE1QSVdSQVBfREVCVUc9aGVscCBmb3IgcG9zc2libGUgb3B0aW9ucworPC9wcmU+Cis8cD5yZXBlYXRlZCBmb3IgZXZlcnkgcHJvY2VzcyBpbiB0aGUgZ3JvdXAuICBJZiB5b3UgZG8gbm90IHNlZQordGhlc2UsIHRoZXJlIGlzIGFuIGJ1aWxkL2luc3RhbGxhdGlvbiBwcm9ibGVtIG9mIHNvbWUga2luZC48L3A+Cis8cD4gVGhlIE1QSSBmdW5jdGlvbnMgdG8gYmUgd3JhcHBlZCBhcmUgYXNzdW1lZCB0byBiZSBpbiBhbiBFTEYKK3NoYXJlZCBvYmplY3Qgd2l0aCBzb25hbWUgbWF0Y2hpbmcKKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+bGlibXBpLnNvKjwvY29kZT4uICBUaGlzIGlzIGtub3duIHRvIGJlCitjb3JyZWN0IGF0IGxlYXN0IGZvciBPcGVuIE1QSSBhbmQgUXVhZHJpY3MgTVBJLCBhbmQgY2FuIGVhc2lseSBiZQorY2hhbmdlZCBpZiByZXF1aXJlZC48L3A+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0ibWMtbWFudWFsLm1waXdyYXAuZ2V0dGluZ3N0YXJ0ZWQiPjwvYT40LjkuMi6gR2V0dGluZyBzdGFydGVkPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPkNvbXBpbGUgeW91ciBNUEkgYXBwbGljYXRpb24gYXMgdXN1YWwsIHRha2luZyBjYXJlIHRvIGxpbmsgaXQKK3VzaW5nIHRoZSBzYW1lIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+bXBpY2M8L2NvZGU+IHRoYXQgeW91cgorVmFsZ3JpbmQgYnVpbGQgd2FzIGNvbmZpZ3VyZWQgd2l0aC48L3A+Cis8cD4KK1VzZSB0aGUgZm9sbG93aW5nIGJhc2ljIHNjaGVtZSB0byBydW4geW91ciBhcHBsaWNhdGlvbiBvbiBWYWxncmluZCB3aXRoCit0aGUgd3JhcHBlcnMgZW5nYWdlZDo8L3A+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CitNUElXUkFQX0RFQlVHPVt3cmFwcGVyLWFyZ3NdICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgIExEX1BSRUxPQUQ9JHByZWZpeC9saWIvdmFsZ3JpbmQvbGlibXBpd3JhcC0mbHQ7cGxhdGZvcm0mZ3Q7LnNvICAgXAorICAgbXBpcnVuIFttcGlydW4tYXJnc10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAkcHJlZml4L2Jpbi92YWxncmluZCBbdmFsZ3JpbmQtYXJnc10gICAgICAgICAgICAgICAgICAgICAgIFwKKyAgIFthcHBsaWNhdGlvbl0gW2FwcC1hcmdzXQorPC9wcmU+Cis8cD5BcyBhbiBhbHRlcm5hdGl2ZSB0bworPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5MRF9QUkVMT0FEPC9jb2RlPmluZworPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5saWJtcGl3cmFwLSZsdDtwbGF0Zm9ybSZndDsuc288L2NvZGU+LCB5b3UgY2FuCitzaW1wbHkgbGluayBpdCB0byB5b3VyIGFwcGxpY2F0aW9uIGlmIGRlc2lyZWQuICBUaGlzIHNob3VsZCBub3QgZGlzdHVyYgorbmF0aXZlIGJlaGF2aW91ciBvZiB5b3VyIGFwcGxpY2F0aW9uIGluIGFueSB3YXkuPC9wPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MiI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9Im1jLW1hbnVhbC5tcGl3cmFwLmNvbnRyb2xsaW5nIj48L2E+NC45LjMuoENvbnRyb2xsaW5nIHRoZSB3cmFwcGVyIGxpYnJhcnk8L2gzPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+RW52aXJvbm1lbnQgdmFyaWFibGUKKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+TVBJV1JBUF9ERUJVRzwvY29kZT4gaXMgY29uc3VsdGVkIGF0CitzdGFydHVwLiAgVGhlIGRlZmF1bHQgYmVoYXZpb3VyIGlzIHRvIHByaW50IGEgc3RhcnRpbmcgYmFubmVyPC9wPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPgordmFsZ3JpbmQgTVBJIHdyYXBwZXJzIDE2Mzg2OiBBY3RpdmUgZm9yIHBpZCAxNjM4NgordmFsZ3JpbmQgTVBJIHdyYXBwZXJzIDE2Mzg2OiBUcnkgTVBJV1JBUF9ERUJVRz1oZWxwIGZvciBwb3NzaWJsZSBvcHRpb25zCis8L3ByZT4KKzxwPiBhbmQgdGhlbiBiZSByZWxhdGl2ZWx5IHF1aWV0LjwvcD4KKzxwPllvdSBjYW4gZ2l2ZSBhIGxpc3Qgb2YgY29tbWEtc2VwYXJhdGVkIG9wdGlvbnMgaW4KKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+TVBJV1JBUF9ERUJVRzwvY29kZT4uICBUaGVzZSBhcmU8L3A+Cis8ZGl2IGNsYXNzPSJpdGVtaXplZGxpc3QiPjx1bCBjbGFzcz0iaXRlbWl6ZWRsaXN0IiBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOiBkaXNjOyAiPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+PGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij52ZXJib3NlPC9jb2RlPjoKKyAgICBzaG93IGVudHJpZXMvZXhpdHMgb2YgYWxsIHdyYXBwZXJzLiAgQWxzbyBzaG93IGV4dHJhCisgICAgZGVidWdnaW5nIGluZm8sIHN1Y2ggYXMgdGhlIHN0YXR1cyBvZiBvdXRzdGFuZGluZyAKKyAgICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPk1QSV9SZXF1ZXN0PC9jb2RlPnMgcmVzdWx0aW5nCisgICAgZnJvbSB1bmNvbXBsZXRlZCA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPk1QSV9JcmVjdjwvY29kZT5zLjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+PGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5xdWlldDwvY29kZT46IAorICAgIG9wcG9zaXRlIG9mIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+dmVyYm9zZTwvY29kZT4sIG9ubHkgcHJpbnQgCisgICAgYW55dGhpbmcgd2hlbiB0aGUgd3JhcHBlcnMgd2FudAorICAgIHRvIHJlcG9ydCBhIGRldGVjdGVkIHByb2dyYW1taW5nIGVycm9yLCBvciBpbiBjYXNlIG9mIGNhdGFzdHJvcGhpYworICAgIGZhaWx1cmUgb2YgdGhlIHdyYXBwZXJzLjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+PGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij53YXJuPC9jb2RlPjogCisgICAgYnkgZGVmYXVsdCwgZnVuY3Rpb25zIHdoaWNoIGxhY2sgcHJvcGVyIHdyYXBwZXJzCisgICAgYXJlIG5vdCBjb21tZW50ZWQgb24sIGp1c3Qgc2lsZW50bHkKKyAgICBpZ25vcmVkLiAgVGhpcyBjYXVzZXMgYSB3YXJuaW5nIHRvIGJlIHByaW50ZWQgZm9yIGVhY2ggdW53cmFwcGVkCisgICAgZnVuY3Rpb24gdXNlZCwgdXAgdG8gYSBtYXhpbXVtIG9mIHRocmVlIHdhcm5pbmdzIHBlciBmdW5jdGlvbi48L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPjxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+c3RyaWN0PC9jb2RlPjogCisgICAgcHJpbnQgYW4gZXJyb3IgbWVzc2FnZSBhbmQgYWJvcnQgdGhlIHByb2dyYW0gaWYgCisgICAgYSBmdW5jdGlvbiBsYWNraW5nIGEgd3JhcHBlciBpcyB1c2VkLjwvcD48L2xpPgorPC91bD48L2Rpdj4KKzxwPiBJZiB5b3Ugd2FudCB0byB1c2UgVmFsZ3JpbmQncyBYTUwgb3V0cHV0IGZhY2lsaXR5CisoPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS14bWw9eWVzPC9jb2RlPiksIHlvdSBzaG91bGQgcGFzcworPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5xdWlldDwvY29kZT4gaW4KKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+TVBJV1JBUF9ERUJVRzwvY29kZT4gc28gYXMgdG8gZ2V0IHJpZCBvZiBhbnkKK2V4dHJhbmVvdXMgcHJpbnRpbmcgZnJvbSB0aGUgd3JhcHBlcnMuPC9wPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MiI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9Im1jLW1hbnVhbC5tcGl3cmFwLmxpbWl0YXRpb25zLmZ1bmN0aW9ucyI+PC9hPjQuOS40LqBGdW5jdGlvbnM8L2gzPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+QWxsIE1QSTIgZnVuY3Rpb25zIGV4Y2VwdAorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5NUElfV3RpY2s8L2NvZGU+LAorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5NUElfV3RpbWU8L2NvZGU+IGFuZAorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5NUElfUGNvbnRyb2w8L2NvZGU+IGhhdmUgd3JhcHBlcnMuICBUaGUKK2ZpcnN0IHR3byBhcmUgbm90IHdyYXBwZWQgYmVjYXVzZSB0aGV5IHJldHVybiBhIAorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5kb3VibGU8L2NvZGU+LCB3aGljaCBWYWxncmluZCdzCitmdW5jdGlvbi13cmFwIG1lY2hhbmlzbSBjYW5ub3QgaGFuZGxlIChidXQgaXQgY291bGQgZWFzaWx5IGJlCitleHRlbmRlZCB0byBkbyBzbykuICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPk1QSV9QY29udHJvbDwvY29kZT4gY2Fubm90IGJlCit3cmFwcGVkIGFzIGl0IGhhcyB2YXJpYWJsZSBhcml0eTogCis8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmludCBNUElfUGNvbnRyb2woY29uc3QgaW50IGxldmVsLCAuLi4pPC9jb2RlPjwvcD4KKzxwPk1vc3QgZnVuY3Rpb25zIGFyZSB3cmFwcGVkIHdpdGggYSBkZWZhdWx0IHdyYXBwZXIgd2hpY2ggZG9lcworbm90aGluZyBleGNlcHQgY29tcGxhaW4gb3IgYWJvcnQgaWYgaXQgaXMgY2FsbGVkLCBkZXBlbmRpbmcgb24KK3NldHRpbmdzIGluIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+TVBJV1JBUF9ERUJVRzwvY29kZT4gbGlzdGVkCithYm92ZS4gIFRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zIGhhdmUgInJlYWwiLCBkby1zb21ldGhpbmctdXNlZnVsCit3cmFwcGVyczo8L3A+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CitQTVBJX1NlbmQgUE1QSV9Cc2VuZCBQTVBJX1NzZW5kIFBNUElfUnNlbmQKKworUE1QSV9SZWN2IFBNUElfR2V0X2NvdW50CisKK1BNUElfSXNlbmQgUE1QSV9JYnNlbmQgUE1QSV9Jc3NlbmQgUE1QSV9JcnNlbmQKKworUE1QSV9JcmVjdgorUE1QSV9XYWl0IFBNUElfV2FpdGFsbAorUE1QSV9UZXN0IFBNUElfVGVzdGFsbAorCitQTVBJX0lwcm9iZSBQTVBJX1Byb2JlCisKK1BNUElfQ2FuY2VsCisKK1BNUElfU2VuZHJlY3YKKworUE1QSV9UeXBlX2NvbW1pdCBQTVBJX1R5cGVfZnJlZQorCitQTVBJX1BhY2sgUE1QSV9VbnBhY2sKKworUE1QSV9CY2FzdCBQTVBJX0dhdGhlciBQTVBJX1NjYXR0ZXIgUE1QSV9BbGx0b2FsbAorUE1QSV9SZWR1Y2UgUE1QSV9BbGxyZWR1Y2UgUE1QSV9PcF9jcmVhdGUKKworUE1QSV9Db21tX2NyZWF0ZSBQTVBJX0NvbW1fZHVwIFBNUElfQ29tbV9mcmVlIFBNUElfQ29tbV9yYW5rIFBNUElfQ29tbV9zaXplCisKK1BNUElfRXJyb3Jfc3RyaW5nCitQTVBJX0luaXQgUE1QSV9Jbml0aWFsaXplZCBQTVBJX0ZpbmFsaXplCis8L3ByZT4KKzxwPiBBIGZldyBmdW5jdGlvbnMgc3VjaCBhcworPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5QTVBJX0FkZHJlc3M8L2NvZGU+IGFyZSBsaXN0ZWQgYXMKKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+SEFTX05PX1dSQVBQRVI8L2NvZGU+LiAgVGhleSBoYXZlIG5vIHdyYXBwZXIKK2F0IGFsbCBhcyB0aGVyZSBpcyBub3RoaW5nIHdvcnRoIGNoZWNraW5nLCBhbmQgZ2l2aW5nIGEgbm8tb3Agd3JhcHBlcgord291bGQgcmVkdWNlIHBlcmZvcm1hbmNlIGZvciBubyByZWFzb24uPC9wPgorPHA+IE5vdGUgdGhhdCB0aGUgd3JhcHBlciBsaWJyYXJ5IGl0c2VsZiBjYW4gaXRzZWxmIGdlbmVyYXRlIGxhcmdlCitudW1iZXJzIG9mIGNhbGxzIHRvIHRoZSBNUEkgaW1wbGVtZW50YXRpb24sIGVzcGVjaWFsbHkgd2hlbiB3YWxraW5nCitjb21wbGV4IHR5cGVzLiAgVGhlIG1vc3QgY29tbW9uIGZ1bmN0aW9ucyBjYWxsZWQgYXJlCis8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPlBNUElfRXh0ZW50PC9jb2RlPiwKKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+UE1QSV9UeXBlX2dldF9lbnZlbG9wZTwvY29kZT4sCis8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPlBNUElfVHlwZV9nZXRfY29udGVudHM8L2NvZGU+LCBhbmQKKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+UE1QSV9UeXBlX2ZyZWU8L2NvZGU+LiAgPC9wPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MiI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9Im1jLW1hbnVhbC5tcGl3cmFwLmxpbWl0YXRpb25zLnR5cGVzIj48L2E+NC45LjUuoFR5cGVzPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPiBNUEktMS4xIHN0cnVjdHVyZWQgdHlwZXMgYXJlIHN1cHBvcnRlZCwgYW5kIHdhbGtlZCBleGFjdGx5LgorVGhlIGN1cnJlbnRseSBzdXBwb3J0ZWQgY29tYmluZXJzIGFyZQorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5NUElfQ09NQklORVJfTkFNRUQ8L2NvZGU+LAorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5NUElfQ09NQklORVJfQ09OVElHVU9VUzwvY29kZT4sCis8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPk1QSV9DT01CSU5FUl9WRUNUT1I8L2NvZGU+LAorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5NUElfQ09NQklORVJfSFZFQ1RPUjwvY29kZT4KKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+TVBJX0NPTUJJTkVSX0lOREVYRUQ8L2NvZGU+LAorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5NUElfQ09NQklORVJfSElOREVYRUQ8L2NvZGU+IGFuZAorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5NUElfQ09NQklORVJfU1RSVUNUPC9jb2RlPi4gIFRoaXMgc2hvdWxkCitjb3ZlciBhbGwgTVBJLTEuMSB0eXBlcy4gIFRoZSBtZWNoYW5pc20gKGZ1bmN0aW9uCis8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPndhbGtfdHlwZTwvY29kZT4pIHNob3VsZCBleHRlbmQgZWFzaWx5IHRvCitjb3ZlciBNUEkyIGNvbWJpbmVycy48L3A+Cis8cD5NUEkgZGVmaW5lcyBzb21lIG5hbWVkIHN0cnVjdHVyZWQgdHlwZXMKKyg8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPk1QSV9GTE9BVF9JTlQ8L2NvZGU+LAorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5NUElfRE9VQkxFX0lOVDwvY29kZT4sCis8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPk1QSV9MT05HX0lOVDwvY29kZT4sCis8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPk1QSV8ySU5UPC9jb2RlPiwKKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+TVBJX1NIT1JUX0lOVDwvY29kZT4sCis8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPk1QSV9MT05HX0RPVUJMRV9JTlQ8L2NvZGU+KSB3aGljaCBhcmUgcGFpcnMKK29mIHNvbWUgYmFzaWMgdHlwZSBhbmQgYSBDIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+aW50PC9jb2RlPi4KK1VuZm9ydHVuYXRlbHkgdGhlIE1QSSBzcGVjaWZpY2F0aW9uIG1ha2VzIGl0IGltcG9zc2libGUgdG8gbG9vayBpbnNpZGUKK3RoZXNlIHR5cGVzIGFuZCBzZWUgd2hlcmUgdGhlIGZpZWxkcyBhcmUuICBUaGVyZWZvcmUgdGhlc2Ugd3JhcHBlcnMKK2Fzc3VtZSB0aGUgdHlwZXMgYXJlIGxhaWQgb3V0IGFzIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+c3RydWN0IHsgZmxvYXQgdmFsOworaW50IGxvYzsgfTwvY29kZT4gKGZvcgorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5NUElfRkxPQVRfSU5UPC9jb2RlPiksIGV0YywgYW5kIGFjdAorYWNjb3JkaW5nbHkuICBUaGlzIGFwcGVhcnMgdG8gYmUgY29ycmVjdCBhdCBsZWFzdCBmb3IgT3BlbiBNUEkgMS4wLjIKK2FuZCBmb3IgUXVhZHJpY3MgTVBJLjwvcD4KKzxwPklmIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+c3RyaWN0PC9jb2RlPiBpcyBhbiBvcHRpb24gc3BlY2lmaWVkIAoraW4gPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5NUElXUkFQX0RFQlVHPC9jb2RlPiwgdGhlIGFwcGxpY2F0aW9uCit3aWxsIGFib3J0IGlmIGFuIHVuaGFuZGxlZCB0eXBlIGlzIGVuY291bnRlcmVkLiAgT3RoZXJ3aXNlLCB0aGUgCithcHBsaWNhdGlvbiB3aWxsIHByaW50IGEgd2FybmluZyBtZXNzYWdlIGFuZCBjb250aW51ZS48L3A+Cis8cD5Tb21lIGVmZm9ydCBpcyBtYWRlIHRvIG1hcmsvY2hlY2sgbWVtb3J5IHJhbmdlcyBjb3JyZXNwb25kaW5nIHRvCithcnJheXMgb2YgdmFsdWVzIGluIGEgc2luZ2xlIHBhc3MuICBUaGlzIGlzIGltcG9ydGFudCBmb3IgcGVyZm9ybWFuY2UKK3NpbmNlIGFza2luZyBWYWxncmluZCB0byBtYXJrL2NoZWNrIGFueSByYW5nZSwgbm8gbWF0dGVyIGhvdyBzbWFsbCwKK2NhcnJpZXMgcXVpdGUgYSBsYXJnZSBjb25zdGFudCBjb3N0LiAgVGhpcyBvcHRpbWlzYXRpb24gaXMgYXBwbGllZCB0bworYXJyYXlzIG9mIHByaW1pdGl2ZSB0eXBlcyAoPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5kb3VibGU8L2NvZGU+LAorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5mbG9hdDwvY29kZT4sCis8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmludDwvY29kZT4sCis8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmxvbmc8L2NvZGU+LCA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmxvbmcKK2xvbmc8L2NvZGU+LCA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPnNob3J0PC9jb2RlPiwKKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+Y2hhcjwvY29kZT4sIGFuZCA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmxvbmcKK2RvdWJsZTwvY29kZT4gb24gcGxhdGZvcm1zIHdoZXJlIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+c2l6ZW9mKGxvbmcKK2RvdWJsZSkgPT0gODwvY29kZT4pLiAgRm9yIGFycmF5cyBvZiBhbGwgb3RoZXIgdHlwZXMsIHRoZQord3JhcHBlcnMgaGFuZGxlIGVhY2ggZWxlbWVudCBpbmRpdmlkdWFsbHkgYW5kIHNvIHRoZXJlIGNhbiBiZSBhIHZlcnkKK2xhcmdlIHBlcmZvcm1hbmNlIGNvc3QuPC9wPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MiI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9Im1jLW1hbnVhbC5tcGl3cmFwLndyaXRpbmd3cmFwcGVycyI+PC9hPjQuOS42LqBXcml0aW5nIG5ldyB3cmFwcGVyczwvaDM+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD4KK0ZvciB0aGUgbW9zdCBwYXJ0IHRoZSB3cmFwcGVycyBhcmUgc3RyYWlnaHRmb3J3YXJkLiAgVGhlIG9ubHkKK3NpZ25pZmljYW50IGNvbXBsZXhpdHkgYXJpc2VzIHdpdGggbm9uYmxvY2tpbmcgcmVjZWl2ZXMuPC9wPgorPHA+VGhlIGlzc3VlIGlzIHRoYXQgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5NUElfSXJlY3Y8L2NvZGU+CitzdGF0ZXMgdGhlIHJlY3YgYnVmZmVyIGFuZCByZXR1cm5zIGltbWVkaWF0ZWx5LCBnaXZpbmcgYSBoYW5kbGUKKyg8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPk1QSV9SZXF1ZXN0PC9jb2RlPikgZm9yIHRoZSB0cmFuc2FjdGlvbi4KK0xhdGVyIHRoZSB1c2VyIHdpbGwgaGF2ZSB0byBwb2xsIGZvciBjb21wbGV0aW9uIHdpdGgKKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+TVBJX1dhaXQ8L2NvZGU+IGV0YywgYW5kIHdoZW4gdGhlCit0cmFuc2FjdGlvbiBjb21wbGV0ZXMgc3VjY2Vzc2Z1bGx5LCB0aGUgd3JhcHBlcnMgaGF2ZSB0byBwYWludCB0aGUKK3JlY3YgYnVmZmVyLiAgQnV0IHRoZSByZWN2IGJ1ZmZlciBkZXRhaWxzIGFyZSBub3QgcHJlc2VudGVkIHRvCis8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPk1QSV9XYWl0PC9jb2RlPiAtLSBvbmx5IHRoZSBoYW5kbGUgaXMuICBUaGUKK2xpYnJhcnkgdGhlcmVmb3JlIG1haW50YWlucyBhIHNoYWRvdyB0YWJsZSB3aGljaCBhc3NvY2lhdGVzCit1bmNvbXBsZXRlZCA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPk1QSV9SZXF1ZXN0PC9jb2RlPnMgd2l0aCB0aGUKK2NvcnJlc3BvbmRpbmcgYnVmZmVyIGFkZHJlc3MvY291bnQvdHlwZS4gIFdoZW4gYW4gb3BlcmF0aW9uIGNvbXBsZXRlcywKK3RoZSB0YWJsZSBpcyBzZWFyY2hlZCBmb3IgdGhlIGFzc29jaWF0ZWQgYWRkcmVzcy9jb3VudC90eXBlIGluZm8sIGFuZAorbWVtb3J5IGlzIG1hcmtlZCBhY2NvcmRpbmdseS48L3A+Cis8cD5BY2Nlc3MgdG8gdGhlIHRhYmxlIGlzIGd1YXJkZWQgYnkgYSAoUE9TSVggcHRocmVhZHMpIGxvY2ssIHNvIGFzCit0byBtYWtlIHRoZSBsaWJyYXJ5IHRocmVhZC1zYWZlLjwvcD4KKzxwPlRoZSB0YWJsZSBpcyBhbGxvY2F0ZWQgd2l0aAorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5tYWxsb2M8L2NvZGU+IGFuZCBuZXZlcgorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5mcmVlPC9jb2RlPmQsIHNvIGl0IHdpbGwgc2hvdyB1cCBpbiBsZWFrCitjaGVja3MuPC9wPgorPHA+V3JpdGluZyBuZXcgd3JhcHBlcnMgc2hvdWxkIGJlIGZhaXJseSBlYXN5LiAgVGhlIHNvdXJjZSBmaWxlIGlzCis8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPm1waS9saWJtcGl3cmFwLmM8L2NvZGU+LiAgSWYgcG9zc2libGUsCitmaW5kIGFuIGV4aXN0aW5nIHdyYXBwZXIgZm9yIGEgZnVuY3Rpb24gb2Ygc2ltaWxhciBiZWhhdmlvdXIgdG8gdGhlCitvbmUgeW91IHdhbnQgdG8gd3JhcCwgYW5kIHVzZSBpdCBhcyBhIHN0YXJ0aW5nIHBvaW50LiAgVGhlIHdyYXBwZXJzCithcmUgb3JnYW5pc2VkIGluIHNlY3Rpb25zIGluIHRoZSBzYW1lIG9yZGVyIGFzIHRoZSBNUEkgMS4xIHNwZWMsIHRvCithaWQgbmF2aWdhdGlvbi4gIFdoZW4gYWRkaW5nIGEgd3JhcHBlciwgcmVtZW1iZXIgdG8gY29tbWVudCBvdXQgdGhlCitkZWZpbml0aW9uIG9mIHRoZSBkZWZhdWx0IHdyYXBwZXIgaW4gdGhlIGxvbmcgbGlzdCBvZiBkZWZhdWx0cyBhdCB0aGUKK2JvdHRvbSBvZiB0aGUgZmlsZSAoZG8gbm90IHJlbW92ZSBpdCwganVzdCBjb21tZW50IGl0IG91dCkuPC9wPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MiI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9Im1jLW1hbnVhbC5tcGl3cmFwLndoYXR0b2V4cGVjdCI+PC9hPjQuOS43LqBXaGF0IHRvIGV4cGVjdCB3aGVuIHVzaW5nIHRoZSB3cmFwcGVyczwvaDM+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD5UaGUgd3JhcHBlcnMgc2hvdWxkIHJlZHVjZSBNZW1jaGVjaydzIGZhbHNlLWVycm9yIHJhdGUgb24gTVBJCithcHBsaWNhdGlvbnMuICBCZWNhdXNlIHRoZSB3cmFwcGluZyBpcyBkb25lIGF0IHRoZSBNUEkgaW50ZXJmYWNlLAordGhlcmUgd2lsbCBzdGlsbCBwb3RlbnRpYWxseSBiZSBhIGxhcmdlIG51bWJlciBvZiBlcnJvcnMgcmVwb3J0ZWQgaW4KK3RoZSBNUEkgaW1wbGVtZW50YXRpb24gYmVsb3cgdGhlIGludGVyZmFjZS4gIFRoZSBiZXN0IHlvdSBjYW4gZG8gaXMKK3RyeSB0byBzdXBwcmVzcyB0aGVtLjwvcD4KKzxwPllvdSBtYXkgYWxzbyBmaW5kIHRoYXQgdGhlIGlucHV0LXNpZGUgKGJ1ZmZlcgorbGVuZ3RoL2RlZmluZWRuZXNzKSBjaGVja3MgZmluZCBlcnJvcnMgaW4geW91ciBNUEkgdXNlLCBmb3IgZXhhbXBsZQorcGFzc2luZyB0b28gc2hvcnQgYSBidWZmZXIgdG8KKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+TVBJX1JlY3Y8L2NvZGU+LjwvcD4KKzxwPkZ1bmN0aW9ucyB3aGljaCBhcmUgbm90IHdyYXBwZWQgbWF5IGluY3JlYXNlIHRoZSBmYWxzZQorZXJyb3IgcmF0ZS4gIEEgcG9zc2libGUgYXBwcm9hY2ggaXMgdG8gcnVuIHdpdGgKKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+TVBJX0RFQlVHPC9jb2RlPiBjb250YWluaW5nCis8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPndhcm48L2NvZGU+LiAgVGhpcyB3aWxsIHNob3cgeW91IGZ1bmN0aW9ucword2hpY2ggbGFjayBwcm9wZXIgd3JhcHBlcnMgYnV0IHdoaWNoIGFyZSBuZXZlcnRoZWxlc3MgdXNlZC4gIFlvdSBjYW4KK3RoZW4gd3JpdGUgd3JhcHBlcnMgZm9yIHRoZW0uCis8L3A+Cis8cD5BIGtub3duIHNvdXJjZSBvZiBwb3RlbnRpYWwgZmFsc2UgZXJyb3JzIGFyZSB0aGUKKzxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+UE1QSV9SZWR1Y2U8L2NvZGU+IGZhbWlseSBvZiBmdW5jdGlvbnMsIHdoZW4KK3VzaW5nIGEgY3VzdG9tICh1c2VyLWRlZmluZWQpIHJlZHVjdGlvbiBmdW5jdGlvbi4gIEluIGEgcmVkdWN0aW9uCitvcGVyYXRpb24sIGVhY2ggbm9kZSBub3Rpb25hbGx5IHNlbmRzIGRhdGEgdG8gYSAiY2VudHJhbCBwb2ludCIgd2hpY2gKK3VzZXMgdGhlIHNwZWNpZmllZCByZWR1Y3Rpb24gZnVuY3Rpb24gdG8gbWVyZ2UgdGhlIGRhdGEgaXRlbXMgaW50byBhCitzaW5nbGUgaXRlbS4gIEhlbmNlLCBpbiBnZW5lcmFsLCBkYXRhIGlzIHBhc3NlZCBiZXR3ZWVuIG5vZGVzIGFuZCBmZWQKK3RvIHRoZSByZWR1Y3Rpb24gZnVuY3Rpb24sIGJ1dCB0aGUgd3JhcHBlciBsaWJyYXJ5IGNhbm5vdCBtYXJrIHRoZQordHJhbnNmZXJyZWQgZGF0YSBhcyBpbml0aWFsaXNlZCBiZWZvcmUgaXQgaXMgaGFuZGVkIHRvIHRoZSByZWR1Y3Rpb24KK2Z1bmN0aW9uLCBiZWNhdXNlIGFsbCB0aGF0IGhhcHBlbnMgImluc2lkZSIgdGhlCis8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPlBNUElfUmVkdWNlPC9jb2RlPiBjYWxsLiAgQXMgYSByZXN1bHQgeW91CittYXkgc2VlIGZhbHNlIHBvc2l0aXZlcyByZXBvcnRlZCBpbiB5b3VyIHJlZHVjdGlvbiBmdW5jdGlvbi48L3A+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+Cis8ZGl2PgorPGJyPjx0YWJsZSBjbGFzcz0ibmF2IiB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjMiIGNlbGxwYWRkaW5nPSIyIiBib3JkZXI9IjAiIHN1bW1hcnk9Ik5hdmlnYXRpb24gZm9vdGVyIj4KKzx0cj4KKzx0ZCByb3dzcGFuPSIyIiB3aWR0aD0iNDAlIiBhbGlnbj0ibGVmdCI+Cis8YSBhY2Nlc3NrZXk9InAiIGhyZWY9Im1hbnVhbC1jb3JlLWFkdi5odG1sIj4mbHQ7Jmx0O6AzLqBVc2luZyBhbmQgdW5kZXJzdGFuZGluZyB0aGUgVmFsZ3JpbmQgY29yZTogQWR2YW5jZWQgVG9waWNzPC9hPqA8L3RkPgorPHRkIHdpZHRoPSIyMCUiIGFsaWduPSJjZW50ZXIiPjxhIGFjY2Vzc2tleT0idSIgaHJlZj0ibWFudWFsLmh0bWwiPlVwPC9hPjwvdGQ+Cis8dGQgcm93c3Bhbj0iMiIgd2lkdGg9IjQwJSIgYWxpZ249InJpZ2h0Ij6gPGEgYWNjZXNza2V5PSJuIiBocmVmPSJjZy1tYW51YWwuaHRtbCI+NS6gQ2FjaGVncmluZDogYSBjYWNoZSBhbmQgYnJhbmNoLXByZWRpY3Rpb24gcHJvZmlsZXKgJmd0OyZndDs8L2E+Cis8L3RkPgorPC90cj4KKzx0cj48dGQgd2lkdGg9IjIwJSIgYWxpZ249ImNlbnRlciI+PGEgYWNjZXNza2V5PSJoIiBocmVmPSJpbmRleC5odG1sIj5Ib21lPC9hPjwvdGQ+PC90cj4KKzwvdGFibGU+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL2RvY3MvaHRtbC9tcy1tYW51YWwuaHRtbCBiL2RvY3MvaHRtbC9tcy1tYW51YWwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYmIwZTVhCi0tLSAvZGV2L251bGwKKysrIGIvZG9jcy9odG1sL21zLW1hbnVhbC5odG1sCkBAIC0wLDAgKzEsODUyIEBACis8aHRtbD4KKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSI+Cis8dGl0bGU+OS6gTWFzc2lmOiBhIGhlYXAgcHJvZmlsZXI8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0idmdfYmFzaWMuY3NzIj4KKzxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iRG9jQm9vayBYU0wgU3R5bGVzaGVldHMgVjEuNzguMSI+Cis8bGluayByZWw9ImhvbWUiIGhyZWY9ImluZGV4Lmh0bWwiIHRpdGxlPSJWYWxncmluZCBEb2N1bWVudGF0aW9uIj4KKzxsaW5rIHJlbD0idXAiIGhyZWY9Im1hbnVhbC5odG1sIiB0aXRsZT0iVmFsZ3JpbmQgVXNlciBNYW51YWwiPgorPGxpbmsgcmVsPSJwcmV2IiBocmVmPSJkcmQtbWFudWFsLmh0bWwiIHRpdGxlPSI4LqBEUkQ6IGEgdGhyZWFkIGVycm9yIGRldGVjdG9yIj4KKzxsaW5rIHJlbD0ibmV4dCIgaHJlZj0iZGgtbWFudWFsLmh0bWwiIHRpdGxlPSIxMC6gREhBVDogYSBkeW5hbWljIGhlYXAgYW5hbHlzaXMgdG9vbCI+Cis8L2hlYWQ+Cis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+Cis8ZGl2Pjx0YWJsZSBjbGFzcz0ibmF2IiB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjMiIGNlbGxwYWRkaW5nPSIzIiBib3JkZXI9IjAiIHN1bW1hcnk9Ik5hdmlnYXRpb24gaGVhZGVyIj48dHI+Cis8dGQgd2lkdGg9IjIycHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImRyZC1tYW51YWwuaHRtbCI+PGltZyBzcmM9ImltYWdlcy9wcmV2LnBuZyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjIxIiBib3JkZXI9IjAiIGFsdD0iUHJldiI+PC9hPjwvdGQ+Cis8dGQgd2lkdGg9IjI1cHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9InUiIGhyZWY9Im1hbnVhbC5odG1sIj48aW1nIHNyYz0iaW1hZ2VzL3VwLnBuZyIgd2lkdGg9IjIxIiBoZWlnaHQ9IjE4IiBib3JkZXI9IjAiIGFsdD0iVXAiPjwvYT48L3RkPgorPHRkIHdpZHRoPSIzMXB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJoIiBocmVmPSJpbmRleC5odG1sIj48aW1nIHNyYz0iaW1hZ2VzL2hvbWUucG5nIiB3aWR0aD0iMjciIGhlaWdodD0iMjAiIGJvcmRlcj0iMCIgYWx0PSJVcCI+PC9hPjwvdGQ+Cis8dGggYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPlZhbGdyaW5kIFVzZXIgTWFudWFsPC90aD4KKzx0ZCB3aWR0aD0iMjJweCIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPjxhIGFjY2Vzc2tleT0ibiIgaHJlZj0iZGgtbWFudWFsLmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvbmV4dC5wbmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIyMSIgYm9yZGVyPSIwIiBhbHQ9Ik5leHQiPjwvYT48L3RkPgorPC90cj48L3RhYmxlPjwvZGl2PgorPGRpdiBjbGFzcz0iY2hhcHRlciI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDEgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9Im1zLW1hbnVhbCI+PC9hPjkuoE1hc3NpZjogYSBoZWFwIHByb2ZpbGVyPC9oMT48L2Rpdj48L2Rpdj48L2Rpdj4KKzxkaXYgY2xhc3M9InRvYyI+Cis8cD48Yj5UYWJsZSBvZiBDb250ZW50czwvYj48L3A+Cis8ZGwgY2xhc3M9InRvYyI+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJtcy1tYW51YWwuaHRtbCNtcy1tYW51YWwub3ZlcnZpZXciPjkuMS4gT3ZlcnZpZXc8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJtcy1tYW51YWwuaHRtbCNtcy1tYW51YWwudXNpbmciPjkuMi4gVXNpbmcgTWFzc2lmIGFuZCBtc19wcmludDwvYT48L3NwYW4+PC9kdD4KKzxkZD48ZGw+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJtcy1tYW51YWwuaHRtbCNtcy1tYW51YWwuYW5leGFtcGxlIj45LjIuMS4gQW4gRXhhbXBsZSBQcm9ncmFtPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0ibXMtbWFudWFsLmh0bWwjbXMtbWFudWFsLnJ1bm5pbmctbWFzc2lmIj45LjIuMi4gUnVubmluZyBNYXNzaWY8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJtcy1tYW51YWwuaHRtbCNtcy1tYW51YWwucnVubmluZy1tc19wcmludCI+OS4yLjMuIFJ1bm5pbmcgbXNfcHJpbnQ8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJtcy1tYW51YWwuaHRtbCNtcy1tYW51YWwudGhlb3V0cHV0cHJlYW1ibGUiPjkuMi40LiBUaGUgT3V0cHV0IFByZWFtYmxlPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0ibXMtbWFudWFsLmh0bWwjbXMtbWFudWFsLnRoZW91dHB1dGdyYXBoIj45LjIuNS4gVGhlIE91dHB1dCBHcmFwaDwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9Im1zLW1hbnVhbC5odG1sI21zLW1hbnVhbC50aGVzbmFwc2hvdGRldGFpbHMiPjkuMi42LiBUaGUgU25hcHNob3QgRGV0YWlsczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9Im1zLW1hbnVhbC5odG1sI21zLW1hbnVhbC5mb3JraW5ncHJvZ3JhbXMiPjkuMi43LiBGb3JraW5nIFByb2dyYW1zPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0ibXMtbWFudWFsLmh0bWwjbXMtbWFudWFsLm5vdC1tZWFzdXJlZCI+OS4yLjguIE1lYXN1cmluZyBBbGwgTWVtb3J5IGluIGEgUHJvY2VzczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9Im1zLW1hbnVhbC5odG1sI21zLW1hbnVhbC5hY3RpbmciPjkuMi45LiBBY3Rpbmcgb24gTWFzc2lmJ3MgSW5mb3JtYXRpb248L2E+PC9zcGFuPjwvZHQ+Cis8L2RsPjwvZGQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJtcy1tYW51YWwuaHRtbCNtcy1tYW51YWwub3B0aW9ucyI+OS4zLiBNYXNzaWYgQ29tbWFuZC1saW5lIE9wdGlvbnM8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJtcy1tYW51YWwuaHRtbCNtcy1tYW51YWwubW9uaXRvci1jb21tYW5kcyI+OS40LiBNYXNzaWYgTW9uaXRvciBDb21tYW5kczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9Im1zLW1hbnVhbC5odG1sI21zLW1hbnVhbC5jbGllbnRyZXFzIj45LjUuIE1hc3NpZiBDbGllbnQgUmVxdWVzdHM8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJtcy1tYW51YWwuaHRtbCNtcy1tYW51YWwubXNfcHJpbnQtb3B0aW9ucyI+OS42LiBtc19wcmludCBDb21tYW5kLWxpbmUgT3B0aW9uczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9Im1zLW1hbnVhbC5odG1sI21zLW1hbnVhbC5maWxlZm9ybWF0Ij45LjcuIE1hc3NpZidzIE91dHB1dCBGaWxlIEZvcm1hdDwvYT48L3NwYW4+PC9kdD4KKzwvZGw+Cis8L2Rpdj4KKzxwPlRvIHVzZSB0aGlzIHRvb2wsIHlvdSBtdXN0IHNwZWNpZnkKKzxjb2RlIGNsYXNzPSJvcHRpb24iPi0tdG9vbD1tYXNzaWY8L2NvZGU+IG9uIHRoZSBWYWxncmluZAorY29tbWFuZCBsaW5lLjwvcD4KKzxkaXYgY2xhc3M9InNlY3QxIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+Cis8YSBuYW1lPSJtcy1tYW51YWwub3ZlcnZpZXciPjwvYT45LjEuoE92ZXJ2aWV3PC9oMj48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPk1hc3NpZiBpcyBhIGhlYXAgcHJvZmlsZXIuICBJdCBtZWFzdXJlcyBob3cgbXVjaCBoZWFwIG1lbW9yeSB5b3VyCitwcm9ncmFtIHVzZXMuICBUaGlzIGluY2x1ZGVzIGJvdGggdGhlIHVzZWZ1bCBzcGFjZSwgYW5kIHRoZSBleHRyYSBieXRlcworYWxsb2NhdGVkIGZvciBib29rLWtlZXBpbmcgYW5kIGFsaWdubWVudCBwdXJwb3Nlcy4gIEl0IGNhbiBhbHNvCittZWFzdXJlIHRoZSBzaXplIG9mIHlvdXIgcHJvZ3JhbSdzIHN0YWNrKHMpLCBhbHRob3VnaCBpdCBkb2VzIG5vdCBkbyBzbyBieQorZGVmYXVsdC48L3A+Cis8cD5IZWFwIHByb2ZpbGluZyBjYW4gaGVscCB5b3UgcmVkdWNlIHRoZSBhbW91bnQgb2YgbWVtb3J5IHlvdXIgcHJvZ3JhbQordXNlcy4gIE9uIG1vZGVybiBtYWNoaW5lcyB3aXRoIHZpcnR1YWwgbWVtb3J5LCB0aGlzIHByb3ZpZGVzIHRoZSBmb2xsb3dpbmcKK2JlbmVmaXRzOjwvcD4KKzxkaXYgY2xhc3M9Iml0ZW1pemVkbGlzdCI+PHVsIGNsYXNzPSJpdGVtaXplZGxpc3QiIHN0eWxlPSJsaXN0LXN0eWxlLXR5cGU6IGRpc2M7ICI+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5JdCBjYW4gc3BlZWQgdXAgeW91ciBwcm9ncmFtIC0tIGEgc21hbGxlcgorICAgIHByb2dyYW0gd2lsbCBpbnRlcmFjdCBiZXR0ZXIgd2l0aCB5b3VyIG1hY2hpbmUncyBjYWNoZXMgYW5kCisgICAgYXZvaWQgcGFnaW5nLjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+SWYgeW91ciBwcm9ncmFtIHVzZXMgbG90cyBvZiBtZW1vcnksIGl0IHdpbGwKKyAgICByZWR1Y2UgdGhlIGNoYW5jZSB0aGF0IGl0IGV4aGF1c3RzIHlvdXIgbWFjaGluZSdzIHN3YXAKKyAgICBzcGFjZS48L3A+PC9saT4KKzwvdWw+PC9kaXY+Cis8cD5BbHNvLCB0aGVyZSBhcmUgY2VydGFpbiBzcGFjZSBsZWFrcyB0aGF0IGFyZW4ndCBkZXRlY3RlZCBieQordHJhZGl0aW9uYWwgbGVhay1jaGVja2Vycywgc3VjaCBhcyBNZW1jaGVjaydzLiAgVGhhdCdzIGJlY2F1c2UKK3RoZSBtZW1vcnkgaXNuJ3QgZXZlciBhY3R1YWxseSBsb3N0IC0tIGEgcG9pbnRlciByZW1haW5zIHRvIGl0IC0tCitidXQgaXQncyBub3QgaW4gdXNlLiAgUHJvZ3JhbXMgdGhhdCBoYXZlIGxlYWtzIGxpa2UgdGhpcyBjYW4KK3VubmVjZXNzYXJpbHkgaW5jcmVhc2UgdGhlIGFtb3VudCBvZiBtZW1vcnkgdGhleSBhcmUgdXNpbmcgb3ZlcgordGltZS4gIE1hc3NpZiBjYW4gaGVscCBpZGVudGlmeSB0aGVzZSBsZWFrcy48L3A+Cis8cD5JbXBvcnRhbnRseSwgTWFzc2lmIHRlbGxzIHlvdSBub3Qgb25seSBob3cgbXVjaCBoZWFwIG1lbW9yeSB5b3VyCitwcm9ncmFtIGlzIHVzaW5nLCBpdCBhbHNvIGdpdmVzIHZlcnkgZGV0YWlsZWQgaW5mb3JtYXRpb24gdGhhdCBpbmRpY2F0ZXMKK3doaWNoIHBhcnRzIG9mIHlvdXIgcHJvZ3JhbSBhcmUgcmVzcG9uc2libGUgZm9yIGFsbG9jYXRpbmcgdGhlIGhlYXAgbWVtb3J5LgorPC9wPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MSI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPgorPGEgbmFtZT0ibXMtbWFudWFsLnVzaW5nIj48L2E+OS4yLqBVc2luZyBNYXNzaWYgYW5kIG1zX3ByaW50PC9oMj48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPkZpcnN0IG9mZiwgYXMgZm9yIHRoZSBvdGhlciBWYWxncmluZCB0b29scywgeW91IHNob3VsZCBjb21waWxlIHdpdGgKK2RlYnVnZ2luZyBpbmZvICh0aGUgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LWc8L2NvZGU+IG9wdGlvbikuICBJdCBzaG91bGRuJ3QKK21hdHRlciBtdWNoIHdoYXQgb3B0aW1pc2F0aW9uIGxldmVsIHlvdSBjb21waWxlIHlvdXIgcHJvZ3JhbSB3aXRoLCBhcyB0aGlzCitpcyB1bmxpa2VseSB0byBhZmZlY3QgdGhlIGhlYXAgbWVtb3J5IHVzYWdlLjwvcD4KKzxwPlRoZW4sIHlvdSBuZWVkIHRvIHJ1biBNYXNzaWYgaXRzZWxmIHRvIGdhdGhlciB0aGUgcHJvZmlsaW5nCitpbmZvcm1hdGlvbiwgYW5kIHRoZW4gcnVuIG1zX3ByaW50IHRvIHByZXNlbnQgaXQgaW4gYSByZWFkYWJsZSB3YXkuPC9wPgorPGRpdiBjbGFzcz0ic2VjdDIiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJtcy1tYW51YWwuYW5leGFtcGxlIj48L2E+OS4yLjEuoEFuIEV4YW1wbGUgUHJvZ3JhbTwvaDM+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD5BbiBleGFtcGxlIHdpbGwgbWFrZSB0aGluZ3MgY2xlYXIuICBDb25zaWRlciB0aGUgZm9sbG93aW5nIEMgcHJvZ3JhbQorKGFubm90YXRlZCB3aXRoIGxpbmUgbnVtYmVycykgd2hpY2ggYWxsb2NhdGVzIGEgbnVtYmVyIG9mIGRpZmZlcmVudCBibG9ja3MKK29uIHRoZSBoZWFwLjwvcD4KKzxwcmUgY2xhc3M9InNjcmVlbiI+CisgMSAgICAgICNpbmNsdWRlICZsdDtzdGRsaWIuaCZndDsKKyAyCisgMyAgICAgIHZvaWQgZyh2b2lkKQorIDQgICAgICB7CisgNSAgICAgICAgIG1hbGxvYyg0MDAwKTsKKyA2ICAgICAgfQorIDcKKyA4ICAgICAgdm9pZCBmKHZvaWQpCisgOSAgICAgIHsKKzEwICAgICAgICAgbWFsbG9jKDIwMDApOworMTEgICAgICAgICBnKCk7CisxMiAgICAgIH0KKzEzCisxNCAgICAgIGludCBtYWluKHZvaWQpCisxNSAgICAgIHsKKzE2ICAgICAgICAgaW50IGk7CisxNyAgICAgICAgIGludCogYVsxMF07CisxOAorMTkgICAgICAgICBmb3IgKGkgPSAwOyBpICZsdDsgMTA7IGkrKykgeworMjAgICAgICAgICAgICBhW2ldID0gbWFsbG9jKDEwMDApOworMjEgICAgICAgICB9CisyMgorMjMgICAgICAgICBmKCk7CisyNAorMjUgICAgICAgICBnKCk7CisyNgorMjcgICAgICAgICBmb3IgKGkgPSAwOyBpICZsdDsgMTA7IGkrKykgeworMjggICAgICAgICAgICBmcmVlKGFbaV0pOworMjkgICAgICAgICB9CiszMAorMzEgICAgICAgICByZXR1cm4gMDsKKzMyICAgICAgfQorPC9wcmU+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0ibXMtbWFudWFsLnJ1bm5pbmctbWFzc2lmIj48L2E+OS4yLjIuoFJ1bm5pbmcgTWFzc2lmPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPlRvIGdhdGhlciBoZWFwIHByb2ZpbGluZyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcHJvZ3JhbQorPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5wcm9nPC9jb2RlPiwgdHlwZTo8L3A+Cis8cHJlIGNsYXNzPSJzY3JlZW4iPgordmFsZ3JpbmQgLS10b29sPW1hc3NpZiBwcm9nCis8L3ByZT4KKzxwPlRoZSBwcm9ncmFtIHdpbGwgZXhlY3V0ZSAoc2xvd2x5KS4gIFVwb24gY29tcGxldGlvbiwgbm8gc3VtbWFyeQorc3RhdGlzdGljcyBhcmUgcHJpbnRlZCB0byBWYWxncmluZCdzIGNvbW1lbnRhcnk7ICBhbGwgb2YgTWFzc2lmJ3MgcHJvZmlsaW5nCitkYXRhIGlzIHdyaXR0ZW4gdG8gYSBmaWxlLiAgQnkgZGVmYXVsdCwgdGhpcyBmaWxlIGlzIGNhbGxlZAorPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5tYXNzaWYub3V0LiZsdDtwaWQmZ3Q7PC9jb2RlPiwgd2hlcmUKKzxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+Jmx0O3BpZCZndDs8L2NvZGU+IGlzIHRoZSBwcm9jZXNzIElELCBhbHRob3VnaCB0aGlzIGZpbGVuYW1lCitjYW4gYmUgY2hhbmdlZCB3aXRoIHRoZSA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLW1hc3NpZi1vdXQtZmlsZTwvY29kZT4gb3B0aW9uLjwvcD4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDIiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJtcy1tYW51YWwucnVubmluZy1tc19wcmludCI+PC9hPjkuMi4zLqBSdW5uaW5nIG1zX3ByaW50PC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPlRvIHNlZSB0aGUgaW5mb3JtYXRpb24gZ2F0aGVyZWQgYnkgTWFzc2lmIGluIGFuIGVhc3ktdG8tcmVhZCBmb3JtLCB1c2UKK21zX3ByaW50LiAgSWYgdGhlIG91dHB1dCBmaWxlJ3MgbmFtZSBpcworPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5tYXNzaWYub3V0LjEyMzQ1PC9jb2RlPiwgdHlwZTo8L3A+Cis8cHJlIGNsYXNzPSJzY3JlZW4iPgorbXNfcHJpbnQgbWFzc2lmLm91dC4xMjM0NTwvcHJlPgorPHA+bXNfcHJpbnQgd2lsbCBwcm9kdWNlIChhKSBhIGdyYXBoIHNob3dpbmcgdGhlIG1lbW9yeSBjb25zdW1wdGlvbiBvdmVyCit0aGUgcHJvZ3JhbSdzIGV4ZWN1dGlvbiwgYW5kIChiKSBkZXRhaWxlZCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcmVzcG9uc2libGUKK2FsbG9jYXRpb24gc2l0ZXMgYXQgdmFyaW91cyBwb2ludHMgaW4gdGhlIHByb2dyYW0sIGluY2x1ZGluZyB0aGUgcG9pbnQgb2YKK3BlYWsgbWVtb3J5IGFsbG9jYXRpb24uICBUaGUgdXNlIG9mIGEgc2VwYXJhdGUgc2NyaXB0IGZvciBwcmVzZW50aW5nIHRoZQorcmVzdWx0cyBpcyBkZWxpYmVyYXRlOiAgaXQgc2VwYXJhdGVzIHRoZSBkYXRhIGdhdGhlcmluZyBmcm9tIGl0cworcHJlc2VudGF0aW9uLCBhbmQgbWVhbnMgdGhhdCBuZXcgbWV0aG9kcyBvZiBwcmVzZW50aW5nIHRoZSBkYXRhIGNhbiBiZSBhZGRlZCBpbgordGhlIGZ1dHVyZS48L3A+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0ibXMtbWFudWFsLnRoZW91dHB1dHByZWFtYmxlIj48L2E+OS4yLjQuoFRoZSBPdXRwdXQgUHJlYW1ibGU8L2gzPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+QWZ0ZXIgcnVubmluZyB0aGlzIHByb2dyYW0gdW5kZXIgTWFzc2lmLCB0aGUgZmlyc3QgcGFydCBvZiBtc19wcmludCdzCitvdXRwdXQgY29udGFpbnMgYSBwcmVhbWJsZSB3aGljaCBqdXN0IHN0YXRlcyBob3cgdGhlIHByb2dyYW0sIE1hc3NpZiBhbmQKK21zX3ByaW50IHdlcmUgZWFjaCBpbnZva2VkOjwvcD4KKzxwcmUgY2xhc3M9InNjcmVlbiI+CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorQ29tbWFuZDogICAgICAgICAgICBleGFtcGxlCitNYXNzaWYgYXJndW1lbnRzOiAgIChub25lKQorbXNfcHJpbnQgYXJndW1lbnRzOiBtYXNzaWYub3V0LjEyNzk3CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorPC9wcmU+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0ibXMtbWFudWFsLnRoZW91dHB1dGdyYXBoIj48L2E+OS4yLjUuoFRoZSBPdXRwdXQgR3JhcGg8L2gzPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+VGhlIG5leHQgcGFydCBpcyB0aGUgZ3JhcGggdGhhdCBzaG93cyBob3cgbWVtb3J5IGNvbnN1bXB0aW9uIG9jY3VycmVkCithcyB0aGUgcHJvZ3JhbSBleGVjdXRlZDo8L3A+Cis8cHJlIGNsYXNzPSJzY3JlZW4iPgorICAgIEtCCisxOS42M14gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKKyAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIworICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCisgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKKyAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIworICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCisgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKKyAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIworICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCisgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKKyAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIworICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCisgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKKyAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIworICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCisgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKKyAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIworICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDojCisgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiMKKyAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IworICAgMCArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0mZ3Q7a2kgICAgIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTEzLjQKKworCitOdW1iZXIgb2Ygc25hcHNob3RzOiAyNQorIERldGFpbGVkIHNuYXBzaG90czogWzksIDE0IChwZWFrKSwgMjRdCis8L3ByZT4KKzxwPldoeSBpcyBtb3N0IG9mIHRoZSBncmFwaCBlbXB0eSwgd2l0aCBvbmx5IGEgY291cGxlIG9mIGJhcnMgYXQgdGhlIHZlcnkKK2VuZD8gIEJ5IGRlZmF1bHQsIE1hc3NpZiB1c2VzICJpbnN0cnVjdGlvbnMgZXhlY3V0ZWQiIGFzIHRoZSB1bml0IG9mIHRpbWUuCitGb3IgdmVyeSBzaG9ydC1ydW4gcHJvZ3JhbXMgc3VjaCBhcyB0aGUgZXhhbXBsZSwgbW9zdCBvZiB0aGUgZXhlY3V0ZWQKK2luc3RydWN0aW9ucyBpbnZvbHZlIHRoZSBsb2FkaW5nIGFuZCBkeW5hbWljIGxpbmtpbmcgb2YgdGhlIHByb2dyYW0uICBUaGUKK2V4ZWN1dGlvbiBvZiA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPm1haW48L2NvZGU+IChhbmQgdGh1cyB0aGUgaGVhcAorYWxsb2NhdGlvbnMpIG9ubHkgb2NjdXIgYXQgdGhlIHZlcnkgZW5kLiAgRm9yIGEgc2hvcnQtcnVubmluZyBwcm9ncmFtIGxpa2UKK3RoaXMsIHdlIGNhbiB1c2UgdGhlIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tdGltZS11bml0PUI8L2NvZGU+IG9wdGlvbgordG8gc3BlY2lmeSB0aGF0IHdlIHdhbnQgdGhlIHRpbWUgdW5pdCB0byBpbnN0ZWFkIGJlIHRoZSBudW1iZXIgb2YgYnl0ZXMKK2FsbG9jYXRlZC9kZWFsbG9jYXRlZCBvbiB0aGUgaGVhcCBhbmQgc3RhY2socykuPC9wPgorPHA+SWYgd2UgcmUtcnVuIHRoZSBwcm9ncmFtIHVuZGVyIE1hc3NpZiB3aXRoIHRoaXMgb3B0aW9uLCBhbmQgdGhlbgorcmUtcnVuIG1zX3ByaW50LCB3ZSBnZXQgdGhpcyBtb3JlIHVzZWZ1bCBncmFwaDo8L3A+Cis8cHJlIGNsYXNzPSJzY3JlZW4iPgorMTkuNjNeICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIyMgICAgICAgICAgICAgICAgICAgICAgCisgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgOjogICAgICAgICAgICAgICAgICAgIAorICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICA6IDo6OiAgICAgICAgICAgICAgICAgCisgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDo6Ojo6Ojo6OiMgIDogOiAgOjogICAgICAgICAgICAgICAKKyAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAgICAgICAgIyAgOiA6ICA6IDo6ICAgICAgICAgICAgIAorICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICAgICAgICAjICA6IDogIDogOiA6OjogICAgICAgICAgCisgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogICAgICAgICMgIDogOiAgOiA6IDogIDo6ICAgICAgICAKKyAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Ojo6Ojo6Ojo6OiAgICAgICAgIyAgOiA6ICA6IDogOiAgOiA6OjogICAgIAorICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogICAgICAgICA6ICAgICAgICAjICA6IDogIDogOiA6ICA6IDogIDo6ICAgCisgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICA6Ojo6OiAgICAgICAgIDogICAgICAgICMgIDogOiAgOiA6IDogIDogOiAgOiA6OiAKKyAgICAgfCAgICAgICAgICAgICAgICAgICAgIEBAQDogICA6ICAgICAgICAgOiAgICAgICAgIyAgOiA6ICA6IDogOiAgOiA6ICA6IDogQAorICAgICB8ICAgICAgICAgICAgICAgICAgIDo6QCAgOiAgIDogICAgICAgICA6ICAgICAgICAjICA6IDogIDogOiA6ICA6IDogIDogOiBACisgICAgIHwgICAgICAgICAgICAgICAgOjo6OiBAICA6ICAgOiAgICAgICAgIDogICAgICAgICMgIDogOiAgOiA6IDogIDogOiAgOiA6IEAKKyAgICAgfCAgICAgICAgICAgICAgOjo6ICA6IEAgIDogICA6ICAgICAgICAgOiAgICAgICAgIyAgOiA6ICA6IDogOiAgOiA6ICA6IDogQAorICAgICB8ICAgICAgICAgICAgOjo6IDogIDogQCAgOiAgIDogICAgICAgICA6ICAgICAgICAjICA6IDogIDogOiA6ICA6IDogIDogOiBACisgICAgIHwgICAgICAgICA6Ojo6IDogOiAgOiBAICA6ICAgOiAgICAgICAgIDogICAgICAgICMgIDogOiAgOiA6IDogIDogOiAgOiA6IEAKKyAgICAgfCAgICAgICA6OjogIDogOiA6ICA6IEAgIDogICA6ICAgICAgICAgOiAgICAgICAgIyAgOiA6ICA6IDogOiAgOiA6ICA6IDogQAorICAgICB8ICAgIDo6OjogOiAgOiA6IDogIDogQCAgOiAgIDogICAgICAgICA6ICAgICAgICAjICA6IDogIDogOiA6ICA6IDogIDogOiBACisgICAgIHwgIDo6OiAgOiA6ICA6IDogOiAgOiBAICA6ICAgOiAgICAgICAgIDogICAgICAgICMgIDogOiAgOiA6IDogIDogOiAgOiA6IEAKKyAgIDAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tJmd0O0tCICAgICAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI5LjQ4CisKK051bWJlciBvZiBzbmFwc2hvdHM6IDI1CisgRGV0YWlsZWQgc25hcHNob3RzOiBbOSwgMTQgKHBlYWspLCAyNF0KKzwvcHJlPgorPHA+VGhlIHNpemUgb2YgdGhlIGdyYXBoIGNhbiBiZSBjaGFuZ2VkIHdpdGggbXNfcHJpbnQncworPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS14PC9jb2RlPiBhbmQgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS15PC9jb2RlPiBvcHRpb25zLiAgRWFjaCB2ZXJ0aWNhbCBiYXIKK3JlcHJlc2VudHMgYSBzbmFwc2hvdCwgaS5lLiBhIG1lYXN1cmVtZW50IG9mIHRoZSBtZW1vcnkgdXNhZ2UgYXQgYSBjZXJ0YWluCitwb2ludCBpbiB0aW1lLiAgSWYgdGhlIG5leHQgc25hcHNob3QgaXMgbW9yZSB0aGFuIG9uZSBjb2x1bW4gYXdheSwgYQoraG9yaXpvbnRhbCBsaW5lIG9mIGNoYXJhY3RlcnMgaXMgZHJhd24gZnJvbSB0aGUgdG9wIG9mIHRoZSBzbmFwc2hvdCB0byBqdXN0CitiZWZvcmUgdGhlIG5leHQgc25hcHNob3QgY29sdW1uLiAgVGhlIHRleHQgYXQgdGhlIGJvdHRvbSBzaG93IHRoYXQgMjUKK3NuYXBzaG90cyB3ZXJlIHRha2VuIGZvciB0aGlzIHByb2dyYW0sIHdoaWNoIGlzIG9uZSBwZXIgaGVhcAorYWxsb2NhdGlvbi9kZWFsbG9jYXRpb24sIHBsdXMgYSBjb3VwbGUgb2YgZXh0cmFzLiAgTWFzc2lmIHN0YXJ0cyBieSB0YWtpbmcKK3NuYXBzaG90cyBmb3IgZXZlcnkgaGVhcCBhbGxvY2F0aW9uL2RlYWxsb2NhdGlvbiwgYnV0IGFzIGEgcHJvZ3JhbSBydW5zIGZvcgorbG9uZ2VyLCBpdCB0YWtlcyBzbmFwc2hvdHMgbGVzcyBmcmVxdWVudGx5LiAgSXQgYWxzbyBkaXNjYXJkcyBvbGRlcgorc25hcHNob3RzIGFzIHRoZSBwcm9ncmFtIGdvZXMgb247ICB3aGVuIGl0IHJlYWNoZXMgdGhlIG1heGltdW0gbnVtYmVyIG9mCitzbmFwc2hvdHMgKDEwMCBieSBkZWZhdWx0LCBhbHRob3VnaCBjaGFuZ2VhYmxlIHdpdGggdGhlCis8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLW1heC1zbmFwc2hvdHM8L2NvZGU+IG9wdGlvbikgaGFsZiBvZiB0aGVtIGFyZQorZGVsZXRlZC4gIFRoaXMgbWVhbnMgdGhhdCBhIHJlYXNvbmFibGUgbnVtYmVyIG9mIHNuYXBzaG90cyBhcmUgYWx3YXlzCittYWludGFpbmVkLjwvcD4KKzxwPk1vc3Qgc25hcHNob3RzIGFyZSA8c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT5ub3JtYWw8L2VtPjwvc3Bhbj4sIGFuZCBvbmx5IGJhc2ljCitpbmZvcm1hdGlvbiBpcyByZWNvcmRlZCBmb3IgdGhlbS4gIE5vcm1hbCBzbmFwc2hvdHMgYXJlIHJlcHJlc2VudGVkIGluIHRoZQorZ3JhcGggYnkgYmFycyBjb25zaXN0aW5nIG9mICc6JyBjaGFyYWN0ZXJzLjwvcD4KKzxwPlNvbWUgc25hcHNob3RzIGFyZSA8c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT5kZXRhaWxlZDwvZW0+PC9zcGFuPi4gIEluZm9ybWF0aW9uIGFib3V0Cit3aGVyZSBhbGxvY2F0aW9ucyBoYXBwZW5lZCBhcmUgcmVjb3JkZWQgZm9yIHRoZXNlIHNuYXBzaG90cywgYXMgd2Ugd2lsbCBzZWUKK3Nob3J0bHkuICBEZXRhaWxlZCBzbmFwc2hvdHMgYXJlIHJlcHJlc2VudGVkIGluIHRoZSBncmFwaCBieSBiYXJzIGNvbnNpc3RpbmcKK29mICdAJyBjaGFyYWN0ZXJzLiAgVGhlIHRleHQgYXQgdGhlIGJvdHRvbSBzaG93IHRoYXQgMyBkZXRhaWxlZAorc25hcHNob3RzIHdlcmUgdGFrZW4gZm9yIHRoaXMgcHJvZ3JhbSAoc25hcHNob3RzIDksIDE0IGFuZCAyNCkuICBCeSBkZWZhdWx0LAorZXZlcnkgMTB0aCBzbmFwc2hvdCBpcyBkZXRhaWxlZCwgYWx0aG91Z2ggdGhpcyBjYW4gYmUgY2hhbmdlZCB2aWEgdGhlCis8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWRldGFpbGVkLWZyZXE8L2NvZGU+IG9wdGlvbi48L3A+Cis8cD5GaW5hbGx5LCB0aGVyZSBpcyBhdCBtb3N0IG9uZSA8c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT5wZWFrPC9lbT48L3NwYW4+IHNuYXBzaG90LiAgVGhlCitwZWFrIHNuYXBzaG90IGlzIGEgZGV0YWlsZWQgc25hcHNob3QsIGFuZCByZWNvcmRzIHRoZSBwb2ludCB3aGVyZSBtZW1vcnkKK2NvbnN1bXB0aW9uIHdhcyBncmVhdGVzdC4gIFRoZSBwZWFrIHNuYXBzaG90IGlzIHJlcHJlc2VudGVkIGluIHRoZSBncmFwaCBieQorYSBiYXIgY29uc2lzdGluZyBvZiAnIycgY2hhcmFjdGVycy4gIFRoZSB0ZXh0IGF0IHRoZSBib3R0b20gc2hvd3MKK3RoYXQgc25hcHNob3QgMTQgd2FzIHRoZSBwZWFrLjwvcD4KKzxwPk1hc3NpZidzIGRldGVybWluYXRpb24gb2Ygd2hlbiB0aGUgcGVhayBvY2N1cnJlZCBjYW4gYmUgd3JvbmcsIGZvcgordHdvIHJlYXNvbnMuPC9wPgorPGRpdiBjbGFzcz0iaXRlbWl6ZWRsaXN0Ij48dWwgY2xhc3M9Iml0ZW1pemVkbGlzdCIgc3R5bGU9Imxpc3Qtc3R5bGUtdHlwZTogZGlzYzsgIj4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPlBlYWsgc25hcHNob3RzIGFyZSBvbmx5IGV2ZXIgdGFrZW4gYWZ0ZXIgYSBkZWFsbG9jYXRpb24KKyAgaGFwcGVucy4gIFRoaXMgYXZvaWRzIGxvdHMgb2YgdW5uZWNlc3NhcnkgcGVhayBzbmFwc2hvdCByZWNvcmRpbmdzCisgIChpbWFnaW5lIHdoYXQgaGFwcGVucyBpZiB5b3VyIHByb2dyYW0gYWxsb2NhdGVzIGEgbG90IG9mIGhlYXAgYmxvY2tzIGluCisgIHN1Y2Nlc3Npb24sIGhpdHRpbmcgYSBuZXcgcGVhayBldmVyeSB0aW1lKS4gIEJ1dCBpdCBtZWFucyB0aGF0IGlmIHlvdXIKKyAgcHJvZ3JhbSBuZXZlciBkZWFsbG9jYXRlcyBhbnkgYmxvY2tzLCBubyBwZWFrIHdpbGwgYmUgcmVjb3JkZWQuICBJdCBhbHNvCisgIG1lYW5zIHRoYXQgaWYgeW91ciBwcm9ncmFtIGRvZXMgZGVhbGxvY2F0ZSBibG9ja3MgYnV0IGxhdGVyIGFsbG9jYXRlcyB0byBhCisgIGhpZ2hlciBwZWFrIHdpdGhvdXQgc3Vic2VxdWVudGx5IGRlYWxsb2NhdGluZywgdGhlIHJlcG9ydGVkIHBlYWsgd2lsbCBiZQorICB0b28gbG93LgorICA8L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPkV2ZW4gd2l0aCB0aGlzIGJlaGF2aW91ciwgcmVjb3JkaW5nIHRoZSBwZWFrIGFjY3VyYXRlbHkKKyAgaXMgc2xvdy4gIFNvIGJ5IGRlZmF1bHQgTWFzc2lmIHJlY29yZHMgYSBwZWFrIHdob3NlIHNpemUgaXMgd2l0aGluIDElIG9mCisgIHRoZSBzaXplIG9mIHRoZSB0cnVlIHBlYWsuICBUaGlzIGluYWNjdXJhY3kgaW4gdGhlIHBlYWsgbWVhc3VyZW1lbnQgY2FuIGJlCisgIGNoYW5nZWQgd2l0aCB0aGUgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1wZWFrLWluYWNjdXJhY3k8L2NvZGU+IG9wdGlvbi48L3A+PC9saT4KKzwvdWw+PC9kaXY+Cis8cD5UaGUgZm9sbG93aW5nIGdyYXBoIGlzIGZyb20gYW4gZXhlY3V0aW9uIG9mIEtvbnF1ZXJvciwgdGhlIEtERSB3ZWIKK2Jyb3dzZXIuICBJdCBzaG93cyB3aGF0IGdyYXBocyBmb3IgbGFyZ2VyIHByb2dyYW1zIGxvb2sgbGlrZS48L3A+Cis8cHJlIGNsYXNzPSJzY3JlZW4iPgorICAgIE1CCiszLjk1Ml4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgCisgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQCM6CisgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpAQCM6CisgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAQDo6OjpAQCM6IAorICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQCA6OiA6QEAjOjoKKyAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAQEAgOjogOkBAIzo6CisgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQEA6QEBAIDo6IDpAQCM6OgorICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDo6OkAgOkBAQCA6OiA6QEAjOjoKKyAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IDpAIDpAQEAgOjogOkBAIzo6CisgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpAOiA6QCA6QEBAIDo6IDpAQCM6OiAKKyAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBAOkA6IDpAIDpAQEAgOjogOkBAIzo6OgorICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAgICAgICA6OiAgICAgICAgIDo6QEA6QDogOkAgOkBAQCA6OiA6QEAjOjo6CisgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICA6QEA6ICAgIDo6Ojo6IDo6OjpAQEA6OjpAQDpAOiA6QCA6QEBAIDo6IDpAQCM6OjoKKyAgICAgfCAgICAgICAgICAgICAgICAgICAgIDo6OjpAQDogIDo6OiA6Ojo6Ojo6IEAgIDo6OkBAOkA6IDpAIDpAQEAgOjogOkBAIzo6OgorICAgICB8ICAgICAgICAgICAgICAgICAgICBAOiA6OkBAOiAgOjo6IDo6Ojo6OjogQCAgOjo6QEA6QDogOkAgOkBAQCA6OiA6QEAjOjo6CisgICAgIHwgICAgICAgICAgICAgICAgICAgIEA6IDo6QEA6ICA6OjogOjo6Ojo6OiBAICA6OjpAQDpAOiA6QCA6QEBAIDo6IDpAQCM6OjoKKyAgICAgfCAgICAgICAgICAgICAgICAgICAgQDogOjpAQDo6Ojo6OiA6Ojo6Ojo6IEAgIDo6OkBAOkA6IDpAIDpAQEAgOjogOkBAIzo6OgorICAgICB8ICAgICAgICAgICAgICAgIDo6QEBAOiA6OkBAOjogOjo6IDo6Ojo6OjogQCAgOjo6QEA6QDogOkAgOkBAQCA6OiA6QEAjOjo6CisgICAgIHwgICAgICAgICAgICAgOjo6OjpAIEA6IDo6QEA6OiA6OjogOjo6Ojo6OiBAICA6OjpAQDpAOiA6QCA6QEBAIDo6IDpAQCM6OjoKKyAgICAgfCAgICAgICAgICAgQEA6Ojo6OkAgQDogOjpAQDo6IDo6OiA6Ojo6Ojo6IEAgIDo6OkBAOkA6IDpAIDpAQEAgOjogOkBAIzo6OgorICAgMCArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0mZ3Q7TWkKKyAgICAgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2MjYuNAorCitOdW1iZXIgb2Ygc25hcHNob3RzOiA2MworIERldGFpbGVkIHNuYXBzaG90czogWzMsIDQsIDEwLCAxMSwgMTUsIDE2LCAyOSwgMzMsIDM0LCAzNiwgMzksIDQxLAorICAgICAgICAgICAgICAgICAgICAgIDQyLCA0MywgNDQsIDQ5LCA1MCwgNTEsIDUzLCA1NSwgNTYsIDU3IChwZWFrKV0KKzwvcHJlPgorPHA+Tm90ZSB0aGF0IHRoZSBsYXJnZXIgc2l6ZSB1bml0cyBhcmUgS0IsIE1CLCBHQiwgZXRjLiAgQXMgaXMgdHlwaWNhbAorZm9yIG1lbW9yeSBtZWFzdXJlbWVudHMsIHRoZXNlIGFyZSBiYXNlZCBvbiBhIG11bHRpcGxpZXIgb2YgMTAyNCwgcmF0aGVyCit0aGFuIHRoZSBzdGFuZGFyZCBTSSBtdWx0aXBsaWVyIG9mIDEwMDAuICBTdHJpY3RseSBzcGVha2luZywgdGhleSBzaG91bGQgYmUKK3dyaXR0ZW4gS2lCLCBNaUIsIEdpQiwgZXRjLjwvcD4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDIiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJtcy1tYW51YWwudGhlc25hcHNob3RkZXRhaWxzIj48L2E+OS4yLjYuoFRoZSBTbmFwc2hvdCBEZXRhaWxzPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPlJldHVybmluZyB0byBvdXIgZXhhbXBsZSwgdGhlIGdyYXBoIGlzIGZvbGxvd2VkIGJ5IHRoZSBkZXRhaWxlZAoraW5mb3JtYXRpb24gZm9yIGVhY2ggc25hcHNob3QuICBUaGUgZmlyc3QgbmluZSBzbmFwc2hvdHMgYXJlIG5vcm1hbCwgc28gb25seQorYSBzbWFsbCBhbW91bnQgb2YgaW5mb3JtYXRpb24gaXMgcmVjb3JkZWQgZm9yIGVhY2ggb25lOjwvcD4KKzxwcmUgY2xhc3M9InNjcmVlbiI+CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICBuICAgICAgICB0aW1lKEIpICAgICAgICAgdG90YWwoQikgICB1c2VmdWwtaGVhcChCKSBleHRyYS1oZWFwKEIpICAgIHN0YWNrcyhCKQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgMCAgICAgICAgICAgICAgMCAgICAgICAgICAgICAgICAwICAgICAgICAgICAgICAgIDAgICAgICAgICAgICAgMCAgICAgICAgICAgIDAKKyAgMSAgICAgICAgICAxLDAwOCAgICAgICAgICAgIDEsMDA4ICAgICAgICAgICAgMSwwMDAgICAgICAgICAgICAgOCAgICAgICAgICAgIDAKKyAgMiAgICAgICAgICAyLDAxNiAgICAgICAgICAgIDIsMDE2ICAgICAgICAgICAgMiwwMDAgICAgICAgICAgICAxNiAgICAgICAgICAgIDAKKyAgMyAgICAgICAgICAzLDAyNCAgICAgICAgICAgIDMsMDI0ICAgICAgICAgICAgMywwMDAgICAgICAgICAgICAyNCAgICAgICAgICAgIDAKKyAgNCAgICAgICAgICA0LDAzMiAgICAgICAgICAgIDQsMDMyICAgICAgICAgICAgNCwwMDAgICAgICAgICAgICAzMiAgICAgICAgICAgIDAKKyAgNSAgICAgICAgICA1LDA0MCAgICAgICAgICAgIDUsMDQwICAgICAgICAgICAgNSwwMDAgICAgICAgICAgICA0MCAgICAgICAgICAgIDAKKyAgNiAgICAgICAgICA2LDA0OCAgICAgICAgICAgIDYsMDQ4ICAgICAgICAgICAgNiwwMDAgICAgICAgICAgICA0OCAgICAgICAgICAgIDAKKyAgNyAgICAgICAgICA3LDA1NiAgICAgICAgICAgIDcsMDU2ICAgICAgICAgICAgNywwMDAgICAgICAgICAgICA1NiAgICAgICAgICAgIDAKKyAgOCAgICAgICAgICA4LDA2NCAgICAgICAgICAgIDgsMDY0ICAgICAgICAgICAgOCwwMDAgICAgICAgICAgICA2NCAgICAgICAgICAgIDAKKzwvcHJlPgorPHA+RWFjaCBub3JtYWwgc25hcHNob3QgcmVjb3JkcyBzZXZlcmFsIHRoaW5ncy48L3A+Cis8ZGl2IGNsYXNzPSJpdGVtaXplZGxpc3QiPjx1bCBjbGFzcz0iaXRlbWl6ZWRsaXN0IiBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOiBkaXNjOyAiPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+SXRzIG51bWJlci48L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPlRoZSB0aW1lIGl0IHdhcyB0YWtlbi4gSW4gdGhpcyBjYXNlLCB0aGUgdGltZSB1bml0IGlzCisgIGJ5dGVzLCBkdWUgdG8gdGhlIHVzZSBvZgorICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXRpbWUtdW5pdD1CPC9jb2RlPi48L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPlRoZSB0b3RhbCBtZW1vcnkgY29uc3VtcHRpb24gYXQgdGhhdCBwb2ludC48L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPlRoZSBudW1iZXIgb2YgdXNlZnVsIGhlYXAgYnl0ZXMgYWxsb2NhdGVkIGF0IHRoYXQgcG9pbnQuCisgIFRoaXMgcmVmbGVjdHMgdGhlIG51bWJlciBvZiBieXRlcyBhc2tlZCBmb3IgYnkgdGhlCisgIHByb2dyYW0uPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj4KKzxwPlRoZSBudW1iZXIgb2YgZXh0cmEgaGVhcCBieXRlcyBhbGxvY2F0ZWQgYXQgdGhhdCBwb2ludC4KKyAgVGhpcyByZWZsZWN0cyB0aGUgbnVtYmVyIG9mIGJ5dGVzIGFsbG9jYXRlZCBpbiBleGNlc3Mgb2Ygd2hhdCB0aGUgcHJvZ3JhbQorICBhc2tlZCBmb3IuICBUaGVyZSBhcmUgdHdvIHNvdXJjZXMgb2YgZXh0cmEgaGVhcCBieXRlcy48L3A+Cis8cD5GaXJzdCwgZXZlcnkgaGVhcCBibG9jayBoYXMgYWRtaW5pc3RyYXRpdmUgYnl0ZXMgYXNzb2NpYXRlZCB3aXRoIGl0LgorICBUaGUgZXhhY3QgbnVtYmVyIG9mIGFkbWluaXN0cmF0aXZlIGJ5dGVzIGRlcGVuZHMgb24gdGhlIGRldGFpbHMgb2YgdGhlCisgIGFsbG9jYXRvci4gIEJ5IGRlZmF1bHQgTWFzc2lmIGFzc3VtZXMgOCBieXRlcyBwZXIgYmxvY2ssIGFzIGNhbiBiZSBzZWVuCisgIGZyb20gdGhlIGV4YW1wbGUsIGJ1dCB0aGlzIG51bWJlciBjYW4gYmUgY2hhbmdlZCB2aWEgdGhlCisgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0taGVhcC1hZG1pbjwvY29kZT4gb3B0aW9uLjwvcD4KKzxwPlNlY29uZCwgYWxsb2NhdG9ycyBvZnRlbiByb3VuZCB1cCB0aGUgbnVtYmVyIG9mIGJ5dGVzIGFza2VkIGZvciB0byBhCisgIGxhcmdlciBudW1iZXIsIHVzdWFsbHkgOCBvciAxNi4gIFRoaXMgaXMgcmVxdWlyZWQgdG8gZW5zdXJlIHRoYXQgZWxlbWVudHMKKyAgd2l0aGluIHRoZSBibG9jayBhcmUgc3VpdGFibHkgYWxpZ25lZC4gIElmIE4gYnl0ZXMgYXJlIGFza2VkIGZvciwgTWFzc2lmCisgIHJvdW5kcyBOIHVwIHRvIHRoZSBuZWFyZXN0IG11bHRpcGxlIG9mIHRoZSB2YWx1ZSBzcGVjaWZpZWQgYnkgdGhlCisgIDxjb2RlIGNsYXNzPSJvcHRpb24iPjxhIGNsYXNzPSJ4cmVmIiBocmVmPSJtYW51YWwtY29yZS5odG1sI29wdC5hbGlnbm1lbnQiPi0tYWxpZ25tZW50PC9hPjwvY29kZT4gb3B0aW9uLgorICA8L3A+Cis8L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+VGhlIHNpemUgb2YgdGhlIHN0YWNrKHMpLiAgQnkgZGVmYXVsdCwgc3RhY2sgcHJvZmlsaW5nIGlzCisgIG9mZiBhcyBpdCBzbG93cyBNYXNzaWYgZG93biBncmVhdGx5LiAgVGhlcmVmb3JlLCB0aGUgc3RhY2sgY29sdW1uIGlzIHplcm8KKyAgaW4gdGhlIGV4YW1wbGUuICBTdGFjayBwcm9maWxpbmcgY2FuIGJlIHR1cm5lZCBvbiB3aXRoIHRoZQorICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXN0YWNrcz15ZXM8L2NvZGU+IG9wdGlvbi4gIAorICAKKyAgPC9wPjwvbGk+Cis8L3VsPjwvZGl2PgorPHA+VGhlIG5leHQgc25hcHNob3QgaXMgZGV0YWlsZWQuICBBcyB3ZWxsIGFzIHRoZSBiYXNpYyBjb3VudHMsIGl0IGdpdmVzCithbiBhbGxvY2F0aW9uIHRyZWUgd2hpY2ggaW5kaWNhdGVzIGV4YWN0bHkgd2hpY2ggcGllY2VzIG9mIGNvZGUgd2VyZQorcmVzcG9uc2libGUgZm9yIGFsbG9jYXRpbmcgaGVhcCBtZW1vcnk6PC9wPgorPHByZSBjbGFzcz0ic2NyZWVuIj4KKyAgOSAgICAgICAgICA5LDA3MiAgICAgICAgICAgIDksMDcyICAgICAgICAgICAgOSwwMDAgICAgICAgICAgICA3MiAgICAgICAgICAgIDAKKzk5LjIxJSAoOSwwMDBCKSAoaGVhcCBhbGxvY2F0aW9uIGZ1bmN0aW9ucykgbWFsbG9jL25ldy9uZXdbXSwgLS1hbGxvYy1mbnMsIGV0Yy4KKy0mZ3Q7OTkuMjElICg5LDAwMEIpIDB4ODA0ODQxQTogbWFpbiAoZXhhbXBsZS5jOjIwKQorPC9wcmU+Cis8cD5UaGUgYWxsb2NhdGlvbiB0cmVlIGNhbiBiZSByZWFkIGZyb20gdGhlIHRvcCBkb3duLiAgVGhlIGZpcnN0IGxpbmUKK2luZGljYXRlcyBhbGwgaGVhcCBhbGxvY2F0aW9uIGZ1bmN0aW9ucyBzdWNoIGFzIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+bWFsbG9jPC9jb2RlPgorYW5kIEMrKyA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPm5ldzwvY29kZT4uICBBbGwgaGVhcCBhbGxvY2F0aW9ucyBnbyB0aHJvdWdoIHRoZXNlCitmdW5jdGlvbnMsIGFuZCBzbyBhbGwgOSwwMDAgdXNlZnVsIGJ5dGVzICh3aGljaCBpcyA5OS4yMSUgb2YgYWxsIGFsbG9jYXRlZAorYnl0ZXMpIGdvIHRocm91Z2ggdGhlbS4gIEJ1dCBob3cgd2VyZSA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPm1hbGxvYzwvY29kZT4gYW5kIG5ldworY2FsbGVkPyAgQXQgdGhpcyBwb2ludCwgZXZlcnkgYWxsb2NhdGlvbiBzbyBmYXIgaGFzIGJlZW4gZHVlIHRvIGxpbmUgMjAKK2luc2lkZSA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPm1haW48L2NvZGU+LCBoZW5jZSB0aGUgc2Vjb25kIGxpbmUgaW4gdGhlIHRyZWUuICBUaGUKKzxjb2RlIGNsYXNzPSJvcHRpb24iPi0mZ3Q7PC9jb2RlPiBpbmRpY2F0ZXMgdGhhdCBtYWluIChsaW5lIDIwKSBjYWxsZWQKKzxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+bWFsbG9jPC9jb2RlPi48L3A+Cis8cD5MZXQncyBzZWUgd2hhdCB0aGUgc3Vic2VxdWVudCBvdXRwdXQgc2hvd3MgaGFwcGVuZWQgbmV4dDo8L3A+Cis8cHJlIGNsYXNzPSJzY3JlZW4iPgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgbiAgICAgICAgdGltZShCKSAgICAgICAgIHRvdGFsKEIpICAgdXNlZnVsLWhlYXAoQikgZXh0cmEtaGVhcChCKSAgICBzdGFja3MoQikKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgMTAgICAgICAgICAxMCwwODAgICAgICAgICAgIDEwLDA4MCAgICAgICAgICAgMTAsMDAwICAgICAgICAgICAgODAgICAgICAgICAgICAwCisgMTEgICAgICAgICAxMiwwODggICAgICAgICAgIDEyLDA4OCAgICAgICAgICAgMTIsMDAwICAgICAgICAgICAgODggICAgICAgICAgICAwCisgMTIgICAgICAgICAxNiwwOTYgICAgICAgICAgIDE2LDA5NiAgICAgICAgICAgMTYsMDAwICAgICAgICAgICAgOTYgICAgICAgICAgICAwCisgMTMgICAgICAgICAyMCwxMDQgICAgICAgICAgIDIwLDEwNCAgICAgICAgICAgMjAsMDAwICAgICAgICAgICAxMDQgICAgICAgICAgICAwCisgMTQgICAgICAgICAyMCwxMDQgICAgICAgICAgIDIwLDEwNCAgICAgICAgICAgMjAsMDAwICAgICAgICAgICAxMDQgICAgICAgICAgICAwCis5OS40OCUgKDIwLDAwMEIpIChoZWFwIGFsbG9jYXRpb24gZnVuY3Rpb25zKSBtYWxsb2MvbmV3L25ld1tdLCAtLWFsbG9jLWZucywgZXRjLgorLSZndDs0OS43NCUgKDEwLDAwMEIpIDB4ODA0ODQxQTogbWFpbiAoZXhhbXBsZS5jOjIwKQorfCAKKy0mZ3Q7MzkuNzklICg4LDAwMEIpIDB4ODA0ODNDMjogZyAoZXhhbXBsZS5jOjUpCit8IC0mZ3Q7MTkuOTAlICg0LDAwMEIpIDB4ODA0ODNFMjogZiAoZXhhbXBsZS5jOjExKQorfCB8IC0mZ3Q7MTkuOTAlICg0LDAwMEIpIDB4ODA0ODQzMTogbWFpbiAoZXhhbXBsZS5jOjIzKQorfCB8ICAgCit8IC0mZ3Q7MTkuOTAlICg0LDAwMEIpIDB4ODA0ODQzNjogbWFpbiAoZXhhbXBsZS5jOjI1KQorfCAgIAorLSZndDswOS45NSUgKDIsMDAwQikgMHg4MDQ4M0RBOiBmIChleGFtcGxlLmM6MTApCisgIC0mZ3Q7MDkuOTUlICgyLDAwMEIpIDB4ODA0ODQzMTogbWFpbiAoZXhhbXBsZS5jOjIzKQorPC9wcmU+Cis8cD5UaGUgZmlyc3QgZm91ciBzbmFwc2hvdHMgYXJlIHNpbWlsYXIgdG8gdGhlIHByZXZpb3VzIG9uZXMuICBCdXQgdGhlbgordGhlIGdsb2JhbCBhbGxvY2F0aW9uIHBlYWsgaXMgcmVhY2hlZCwgYW5kIGEgZGV0YWlsZWQgc25hcHNob3QgKG51bWJlciAxNCkKK2lzIHRha2VuLiAgSXRzIGFsbG9jYXRpb24gdHJlZSBzaG93cyB0aGF0IDIwLDAwMEIgb2YgdXNlZnVsIGhlYXAgbWVtb3J5IGhhcworYmVlbiBhbGxvY2F0ZWQsIGFuZCB0aGUgbGluZXMgYW5kIGFycm93cyBpbmRpY2F0ZSB0aGF0IHRoaXMgaXMgZnJvbSB0aHJlZQorZGlmZmVyZW50IGNvZGUgbG9jYXRpb25zOiBsaW5lIDIwLCB3aGljaCBpcyByZXNwb25zaWJsZSBmb3IgMTAsMDAwQgorKDQ5Ljc0JSk7ICBsaW5lIDUsIHdoaWNoIGlzIHJlc3BvbnNpYmxlIGZvciA4LDAwMEIgKDM5Ljc5JSk7IGFuZCBsaW5lIDEwLAord2hpY2ggaXMgcmVzcG9uc2libGUgZm9yIDIsMDAwQiAoOS45NSUpLjwvcD4KKzxwPldlIGNhbiB0aGVuIGRyaWxsIGRvd24gZnVydGhlciBpbiB0aGUgYWxsb2NhdGlvbiB0cmVlLiAgRm9yIGV4YW1wbGUsCitvZiB0aGUgOCwwMDBCIGFza2VkIGZvciBieSBsaW5lIDUsIGhhbGYgb2YgaXQgd2FzIGR1ZSB0byBhIGNhbGwgZnJvbSBsaW5lCisxMSwgYW5kIGhhbGYgd2FzIGR1ZSB0byBhIGNhbGwgZnJvbSBsaW5lIDI1LjwvcD4KKzxwPkluIHNob3J0LCBNYXNzaWYgY29sbGF0ZXMgdGhlIHN0YWNrIHRyYWNlIG9mIGV2ZXJ5IHNpbmdsZSBhbGxvY2F0aW9uCitwb2ludCBpbiB0aGUgcHJvZ3JhbSBpbnRvIGEgc2luZ2xlIHRyZWUsIHdoaWNoIGdpdmVzIGEgY29tcGxldGUgcGljdHVyZSBhdAorYSBwYXJ0aWN1bGFyIHBvaW50IGluIHRpbWUgb2YgaG93IGFuZCB3aHkgYWxsIGhlYXAgbWVtb3J5IHdhcworYWxsb2NhdGVkLjwvcD4KKzxwPk5vdGUgdGhhdCB0aGUgdHJlZSBlbnRyaWVzIGNvcnJlc3BvbmQgbm90IHRvIGZ1bmN0aW9ucywgYnV0IHRvCitpbmRpdmlkdWFsIGNvZGUgbG9jYXRpb25zLiAgRm9yIGV4YW1wbGUsIGlmIGZ1bmN0aW9uIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+QTwvY29kZT4KK2NhbGxzIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+bWFsbG9jPC9jb2RlPiwgYW5kIGZ1bmN0aW9uIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+QjwvY29kZT4gY2FsbHMKKzxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+QTwvY29kZT4gdHdpY2UsIG9uY2Ugb24gbGluZSAxMCBhbmQgb25jZSBvbiBsaW5lIDExLCB0aGVuCit0aGUgdHdvIGNhbGxzIHdpbGwgcmVzdWx0IGluIHR3byBkaXN0aW5jdCBzdGFjayB0cmFjZXMgaW4gdGhlIHRyZWUuICBJbgorY29udHJhc3QsIGlmIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+QjwvY29kZT4gY2FsbHMgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5BPC9jb2RlPiByZXBlYXRlZGx5Citmcm9tIGxpbmUgMTUgKGUuZy4gZHVlIHRvIGEgbG9vcCksIHRoZW4gZWFjaCBvZiB0aG9zZSBjYWxscyB3aWxsIGJlCityZXByZXNlbnRlZCBieSB0aGUgc2FtZSBzdGFjayB0cmFjZSBpbiB0aGUgdHJlZS48L3A+Cis8cD5Ob3RlIGFsc28gdGhhdCBlYWNoIHRyZWUgZW50cnkgd2l0aCBjaGlsZHJlbiBpbiB0aGUgZXhhbXBsZSBzYXRpc2ZpZXMgYW4KK2ludmFyaWFudDogdGhlIGVudHJ5J3Mgc2l6ZSBpcyBlcXVhbCB0byB0aGUgc3VtIG9mIGl0cyBjaGlsZHJlbidzIHNpemVzLgorRm9yIGV4YW1wbGUsIHRoZSBmaXJzdCBlbnRyeSBoYXMgc2l6ZSAyMCwwMDBCLCBhbmQgaXRzIGNoaWxkcmVuIGhhdmUgc2l6ZXMKKzEwLDAwMEIsIDgsMDAwQiwgYW5kIDIsMDAwQi4gIEluIGdlbmVyYWwsIHRoaXMgaW52YXJpYW50IGFsbW9zdCBhbHdheXMKK2hvbGRzLiAgSG93ZXZlciwgaW4gcmFyZSBjaXJjdW1zdGFuY2VzIHN0YWNrIHRyYWNlcyBjYW4gYmUgbWFsZm9ybWVkLCBpbgord2hpY2ggY2FzZSBhIHN0YWNrIHRyYWNlIGNhbiBiZSBhIHN1Yi10cmFjZSBvZiBhbm90aGVyIHN0YWNrIHRyYWNlLiAgVGhpcworbWVhbnMgdGhhdCBzb21lIGVudHJpZXMgaW4gdGhlIHRyZWUgbWF5IG5vdCBzYXRpc2Z5IHRoZSBpbnZhcmlhbnQgLS0gdGhlCitlbnRyeSdzIHNpemUgd2lsbCBiZSBncmVhdGVyIHRoYW4gdGhlIHN1bSBvZiBpdHMgY2hpbGRyZW4ncyBzaXplcy4gIFRoaXMgaXMKK25vdCBhIGJpZyBwcm9ibGVtLCBidXQgY291bGQgbWFrZSB0aGUgcmVzdWx0cyBjb25mdXNpbmcuICBNYXNzaWYgY2FuCitzb21ldGltZXMgZGV0ZWN0IHdoZW4gdGhpcyBoYXBwZW5zOyAgaWYgaXQgZG9lcywgaXQgaXNzdWVzIGEgd2FybmluZzo8L3A+Cis8cHJlIGNsYXNzPSJzY3JlZW4iPgorV2FybmluZzogTWFsZm9ybWVkIHN0YWNrIHRyYWNlIGRldGVjdGVkLiAgSW4gTWFzc2lmJ3Mgb3V0cHV0LAorICAgICAgICAgdGhlIHNpemUgb2YgYW4gZW50cnkncyBjaGlsZCBlbnRyaWVzIG1heSBub3Qgc3VtIHVwCisgICAgICAgICB0byB0aGUgZW50cnkncyBzaXplIGFzIHRoZXkgbm9ybWFsbHkgZG8uCis8L3ByZT4KKzxwPkhvd2V2ZXIsIE1hc3NpZiBkb2VzIG5vdCBkZXRlY3QgYW5kIHdhcm4gYWJvdXQgZXZlcnkgc3VjaCBvY2N1cnJlbmNlLgorRm9ydHVuYXRlbHksIG1hbGZvcm1lZCBzdGFjayB0cmFjZXMgYXJlIHJhcmUgaW4gcHJhY3RpY2UuPC9wPgorPHA+UmV0dXJuaW5nIG5vdyB0byBtc19wcmludCdzIG91dHB1dCwgdGhlIGZpbmFsIHBhcnQgaXMgc2ltaWxhcjo8L3A+Cis8cHJlIGNsYXNzPSJzY3JlZW4iPgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgbiAgICAgICAgdGltZShCKSAgICAgICAgIHRvdGFsKEIpICAgdXNlZnVsLWhlYXAoQikgZXh0cmEtaGVhcChCKSAgICBzdGFja3MoQikKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgMTUgICAgICAgICAyMSwxMTIgICAgICAgICAgIDE5LDA5NiAgICAgICAgICAgMTksMDAwICAgICAgICAgICAgOTYgICAgICAgICAgICAwCisgMTYgICAgICAgICAyMiwxMjAgICAgICAgICAgIDE4LDA4OCAgICAgICAgICAgMTgsMDAwICAgICAgICAgICAgODggICAgICAgICAgICAwCisgMTcgICAgICAgICAyMywxMjggICAgICAgICAgIDE3LDA4MCAgICAgICAgICAgMTcsMDAwICAgICAgICAgICAgODAgICAgICAgICAgICAwCisgMTggICAgICAgICAyNCwxMzYgICAgICAgICAgIDE2LDA3MiAgICAgICAgICAgMTYsMDAwICAgICAgICAgICAgNzIgICAgICAgICAgICAwCisgMTkgICAgICAgICAyNSwxNDQgICAgICAgICAgIDE1LDA2NCAgICAgICAgICAgMTUsMDAwICAgICAgICAgICAgNjQgICAgICAgICAgICAwCisgMjAgICAgICAgICAyNiwxNTIgICAgICAgICAgIDE0LDA1NiAgICAgICAgICAgMTQsMDAwICAgICAgICAgICAgNTYgICAgICAgICAgICAwCisgMjEgICAgICAgICAyNywxNjAgICAgICAgICAgIDEzLDA0OCAgICAgICAgICAgMTMsMDAwICAgICAgICAgICAgNDggICAgICAgICAgICAwCisgMjIgICAgICAgICAyOCwxNjggICAgICAgICAgIDEyLDA0MCAgICAgICAgICAgMTIsMDAwICAgICAgICAgICAgNDAgICAgICAgICAgICAwCisgMjMgICAgICAgICAyOSwxNzYgICAgICAgICAgIDExLDAzMiAgICAgICAgICAgMTEsMDAwICAgICAgICAgICAgMzIgICAgICAgICAgICAwCisgMjQgICAgICAgICAzMCwxODQgICAgICAgICAgIDEwLDAyNCAgICAgICAgICAgMTAsMDAwICAgICAgICAgICAgMjQgICAgICAgICAgICAwCis5OS43NiUgKDEwLDAwMEIpIChoZWFwIGFsbG9jYXRpb24gZnVuY3Rpb25zKSBtYWxsb2MvbmV3L25ld1tdLCAtLWFsbG9jLWZucywgZXRjLgorLSZndDs3OS44MSUgKDgsMDAwQikgMHg4MDQ4M0MyOiBnIChleGFtcGxlLmM6NSkKK3wgLSZndDszOS45MCUgKDQsMDAwQikgMHg4MDQ4M0UyOiBmIChleGFtcGxlLmM6MTEpCit8IHwgLSZndDszOS45MCUgKDQsMDAwQikgMHg4MDQ4NDMxOiBtYWluIChleGFtcGxlLmM6MjMpCit8IHwgICAKK3wgLSZndDszOS45MCUgKDQsMDAwQikgMHg4MDQ4NDM2OiBtYWluIChleGFtcGxlLmM6MjUpCit8ICAgCistJmd0OzE5Ljk1JSAoMiwwMDBCKSAweDgwNDgzREE6IGYgKGV4YW1wbGUuYzoxMCkKK3wgLSZndDsxOS45NSUgKDIsMDAwQikgMHg4MDQ4NDMxOiBtYWluIChleGFtcGxlLmM6MjMpCit8ICAgCistJmd0OzAwLjAwJSAoMEIpIGluIDErIHBsYWNlcywgYWxsIGJlbG93IG1zX3ByaW50J3MgdGhyZXNob2xkICgwMS4wMCUpCis8L3ByZT4KKzxwPlRoZSBmaW5hbCBkZXRhaWxlZCBzbmFwc2hvdCBzaG93cyBob3cgdGhlIGhlYXAgbG9va2VkIGF0IHRlcm1pbmF0aW9uLgorVGhlIDAwLjAwJSBlbnRyeSByZXByZXNlbnRzIHRoZSBjb2RlIGxvY2F0aW9ucyBmb3Igd2hpY2ggbWVtb3J5IHdhcworYWxsb2NhdGVkIGFuZCB0aGVuIGZyZWVkIChsaW5lIDIwIGluIHRoaXMgY2FzZSwgdGhlIG1lbW9yeSBmb3Igd2hpY2ggd2FzCitmcmVlZCBvbiBsaW5lIDI4KS4gIEhvd2V2ZXIsIG5vIGNvZGUgbG9jYXRpb24gZGV0YWlscyBhcmUgZ2l2ZW4gZm9yIHRoaXMKK2VudHJ5OyAgYnkgZGVmYXVsdCwgTWFzc2lmIG9ubHkgcmVjb3JkcyB0aGUgZGV0YWlscyBmb3IgY29kZSBsb2NhdGlvbnMKK3Jlc3BvbnNpYmxlIGZvciBtb3JlIHRoYW4gMSUgb2YgdXNlZnVsIG1lbW9yeSBieXRlcywgYW5kIG1zX3ByaW50IGxpa2V3aXNlCitvbmx5IHByaW50cyB0aGUgZGV0YWlscyBmb3IgY29kZSBsb2NhdGlvbnMgcmVzcG9uc2libGUgZm9yIG1vcmUgdGhhbiAxJS4KK1RoZSBlbnRyaWVzIHRoYXQgZG8gbm90IG1lZXQgdGhpcyB0aHJlc2hvbGQgYXJlIGFnZ3JlZ2F0ZWQuICBUaGlzIGF2b2lkcworZmlsbGluZyB1cCB0aGUgb3V0cHV0IHdpdGggbGFyZ2UgbnVtYmVycyBvZiB1bmltcG9ydGFudCBlbnRyaWVzLiAgVGhlCit0aHJlc2hvbGRzIGNhbiBiZSBjaGFuZ2VkIHdpdGggdGhlCis8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXRocmVzaG9sZDwvY29kZT4gb3B0aW9uIHRoYXQgYm90aCBNYXNzaWYgYW5kCittc19wcmludCBzdXBwb3J0LjwvcD4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDIiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJtcy1tYW51YWwuZm9ya2luZ3Byb2dyYW1zIj48L2E+OS4yLjcuoEZvcmtpbmcgUHJvZ3JhbXM8L2gzPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+SWYgeW91ciBwcm9ncmFtIGZvcmtzLCB0aGUgY2hpbGQgd2lsbCBpbmhlcml0IGFsbCB0aGUgcHJvZmlsaW5nIGRhdGEgdGhhdAoraGFzIGJlZW4gZ2F0aGVyZWQgZm9yIHRoZSBwYXJlbnQuPC9wPgorPHA+SWYgdGhlIG91dHB1dCBmaWxlIGZvcm1hdCBzdHJpbmcgKGNvbnRyb2xsZWQgYnkKKzxjb2RlIGNsYXNzPSJvcHRpb24iPi0tbWFzc2lmLW91dC1maWxlPC9jb2RlPikgZG9lcyBub3QgY29udGFpbiA8Y29kZSBjbGFzcz0ib3B0aW9uIj4lcDwvY29kZT4sIHRoZW4KK3RoZSBvdXRwdXRzIGZyb20gdGhlIHBhcmVudCBhbmQgY2hpbGQgd2lsbCBiZSBpbnRlcm1pbmdsZWQgaW4gYSBzaW5nbGUgb3V0cHV0CitmaWxlLCB3aGljaCB3aWxsIGFsbW9zdCBjZXJ0YWlubHkgbWFrZSBpdCB1bnJlYWRhYmxlIGJ5IG1zX3ByaW50LjwvcD4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDIiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJtcy1tYW51YWwubm90LW1lYXN1cmVkIj48L2E+OS4yLjguoE1lYXN1cmluZyBBbGwgTWVtb3J5IGluIGEgUHJvY2VzczwvaDM+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD4KK0l0IGlzIHdvcnRoIGVtcGhhc2lzaW5nIHRoYXQgYnkgZGVmYXVsdCBNYXNzaWYgbWVhc3VyZXMgb25seSBoZWFwIG1lbW9yeSwgaS5lLgorbWVtb3J5IGFsbG9jYXRlZCB3aXRoCis8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPm1hbGxvYzwvY29kZT4sCis8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPmNhbGxvYzwvY29kZT4sCis8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPnJlYWxsb2M8L2NvZGU+LAorPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5tZW1hbGlnbjwvY29kZT4sCis8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPm5ldzwvY29kZT4sCis8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPm5ld1tdPC9jb2RlPiwKK2FuZCBhIGZldyBvdGhlciwgc2ltaWxhciBmdW5jdGlvbnMuICAoQW5kIGl0IGNhbiBvcHRpb25hbGx5IG1lYXN1cmUgc3RhY2sKK21lbW9yeSwgb2YgY291cnNlLikgIFRoaXMgbWVhbnMgaXQgZG9lcyA8c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT5ub3Q8L2VtPjwvc3Bhbj4gZGlyZWN0bHkKK21lYXN1cmUgbWVtb3J5IGFsbG9jYXRlZCB3aXRoIGxvd2VyLWxldmVsIHN5c3RlbSBjYWxscyBzdWNoIGFzCis8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPm1tYXA8L2NvZGU+LAorPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5tcmVtYXA8L2NvZGU+LCBhbmQKKzxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+YnJrPC9jb2RlPi4gIAorPC9wPgorPHA+CitIZWFwIGFsbG9jYXRpb24gZnVuY3Rpb25zIHN1Y2ggYXMgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5tYWxsb2M8L2NvZGU+IGFyZSBidWlsdCBvbgordG9wIG9mIHRoZXNlIHN5c3RlbSBjYWxscy4gIEZvciBleGFtcGxlLCB3aGVuIG5lZWRlZCwgYW4gYWxsb2NhdG9yIHdpbGwKK3R5cGljYWxseSBjYWxsIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+bW1hcDwvY29kZT4gdG8gYWxsb2NhdGUgYSBsYXJnZSBjaHVuayBvZgorbWVtb3J5LCBhbmQgdGhlbiBoYW5kIG92ZXIgcGllY2VzIG9mIHRoYXQgbWVtb3J5IGNodW5rIHRvIHRoZSBjbGllbnQgcHJvZ3JhbQoraW4gcmVzcG9uc2UgdG8gY2FsbHMgdG8gPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5tYWxsb2M8L2NvZGU+IGV0IGFsLiAgTWFzc2lmIGRpcmVjdGx5CittZWFzdXJlcyBvbmx5IHRoZXNlIGhpZ2hlci1sZXZlbCA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPm1hbGxvYzwvY29kZT4gZXQgYWwgY2FsbHMsCitub3QgdGhlIGxvd2VyLWxldmVsIHN5c3RlbSBjYWxscy4KKzwvcD4KKzxwPgorRnVydGhlcm1vcmUsIGEgY2xpZW50IHByb2dyYW0gbWF5IHVzZSB0aGVzZSBsb3dlci1sZXZlbCBzeXN0ZW0gY2FsbHMKK2RpcmVjdGx5IHRvIGFsbG9jYXRlIG1lbW9yeS4gIEJ5IGRlZmF1bHQsIE1hc3NpZiBkb2VzIG5vdCBtZWFzdXJlIHRoZXNlLiAgTm9yCitkb2VzIGl0IG1lYXN1cmUgdGhlIHNpemUgb2YgY29kZSwgZGF0YSBhbmQgQlNTIHNlZ21lbnRzLiAgVGhlcmVmb3JlLCB0aGUKK251bWJlcnMgcmVwb3J0ZWQgYnkgTWFzc2lmIG1heSBiZSBzaWduaWZpY2FudGx5IHNtYWxsZXIgdGhhbiB0aG9zZSByZXBvcnRlZCBieQordG9vbHMgc3VjaCBhcyA8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPnRvcDwvY29kZT4gdGhhdCBtZWFzdXJlIGEgcHJvZ3JhbSdzIHRvdGFsIHNpemUgaW4KK21lbW9yeS4KKzwvcD4KKzxwPgorSG93ZXZlciwgaWYgeW91IHdpc2ggdG8gbWVhc3VyZSA8c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT5hbGw8L2VtPjwvc3Bhbj4gdGhlIG1lbW9yeSB1c2VkIGJ5Cit5b3VyIHByb2dyYW0sIHlvdSBjYW4gdXNlIHRoZSA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXBhZ2VzLWFzLWhlYXA9eWVzPC9jb2RlPi4gIFdoZW4gdGhpcworb3B0aW9uIGlzIGVuYWJsZWQsIE1hc3NpZidzIG5vcm1hbCBoZWFwIGJsb2NrIHByb2ZpbGluZyBpcyByZXBsYWNlZCBieQorbG93ZXItbGV2ZWwgcGFnZSBwcm9maWxpbmcuICBFdmVyeSBwYWdlIGFsbG9jYXRlZCB2aWEKKzxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+bW1hcDwvY29kZT4gYW5kIHNpbWlsYXIgc3lzdGVtIGNhbGxzIGlzIHRyZWF0ZWQgYXMgYSBkaXN0aW5jdAorYmxvY2suICBUaGlzIG1lYW5zIHRoYXQgY29kZSwgZGF0YSBhbmQgQlNTIHNlZ21lbnRzIGFyZSBhbGwgbWVhc3VyZWQsIGFzIHRoZXkKK2FyZSBqdXN0IG1lbW9yeSBwYWdlcy4gIEV2ZW4gdGhlIHN0YWNrIGlzIG1lYXN1cmVkLCBzaW5jZSBpdCBpcyB1bHRpbWF0ZWx5CithbGxvY2F0ZWQgKGFuZCBleHRlbmRlZCB3aGVuIG5lY2Vzc2FyeSkgdmlhIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+bW1hcDwvY29kZT47ICBmb3IKK3RoaXMgcmVhc29uIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tc3RhY2tzPXllczwvY29kZT4gaXMgbm90IGFsbG93ZWQgaW4gY29uanVuY3Rpb24gd2l0aAorPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1wYWdlcy1hcy1oZWFwPXllczwvY29kZT4uCis8L3A+Cis8cD4KK0FmdGVyIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tcGFnZXMtYXMtaGVhcD15ZXM8L2NvZGU+IGlzIHVzZWQsIG1zX3ByaW50J3Mgb3V0cHV0IGlzCittb3N0bHkgdW5jaGFuZ2VkLiAgT25lIGRpZmZlcmVuY2UgaXMgdGhhdCB0aGUgc3RhcnQgb2YgZWFjaCBkZXRhaWxlZCBzbmFwc2hvdAorc2F5czoKKzwvcD4KKzxwcmUgY2xhc3M9InNjcmVlbiI+CisocGFnZSBhbGxvY2F0aW9uIHN5c2NhbGxzKSBtbWFwL21yZW1hcC9icmssIC0tYWxsb2MtZm5zLCBldGMuCis8L3ByZT4KKzxwPmluc3RlYWQgb2YgdGhlIHVzdWFsPC9wPjoKKworPHByZSBjbGFzcz0ic2NyZWVuIj4KKyhoZWFwIGFsbG9jYXRpb24gZnVuY3Rpb25zKSBtYWxsb2MvbmV3L25ld1tdLCAtLWFsbG9jLWZucywgZXRjLgorPC9wcmU+Cis8cD4KK1RoZSBzdGFjayB0cmFjZXMgaW4gdGhlIG91dHB1dCBtYXkgYmUgbW9yZSBkaWZmaWN1bHQgdG8gcmVhZCwgYW5kIGludGVycHJldGluZwordGhlbSBtYXkgcmVxdWlyZSBzb21lIGRldGFpbGVkIHVuZGVyc3RhbmRpbmcgb2YgdGhlIGxvd2VyIGxldmVscyBvZiBhIHByb2dyYW0KK2xpa2UgdGhlIG1lbW9yeSBhbGxvY2F0b3JzLiAgQnV0IGZvciBzb21lIHByb2dyYW1zIGhhdmluZyB0aGUgZnVsbCBpbmZvcm1hdGlvbgorYWJvdXQgbWVtb3J5IHVzYWdlIGNhbiBiZSB2ZXJ5IHVzZWZ1bC4KKzwvcD4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDIiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJtcy1tYW51YWwuYWN0aW5nIj48L2E+OS4yLjkuoEFjdGluZyBvbiBNYXNzaWYncyBJbmZvcm1hdGlvbjwvaDM+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD5NYXNzaWYncyBpbmZvcm1hdGlvbiBpcyBnZW5lcmFsbHkgZmFpcmx5IGVhc3kgdG8gYWN0IHVwb24uICBUaGUKK29idmlvdXMgcGxhY2UgdG8gc3RhcnQgbG9va2luZyBpcyB0aGUgcGVhayBzbmFwc2hvdC48L3A+Cis8cD5JdCBjYW4gYWxzbyBiZSB1c2VmdWwgdG8gbG9vayBhdCB0aGUgb3ZlcmFsbCBzaGFwZSBvZiB0aGUgZ3JhcGgsIHRvCitzZWUgaWYgbWVtb3J5IHVzYWdlIGNsaW1icyBhbmQgZmFsbHMgYXMgeW91IGV4cGVjdDsgIHNwaWtlcyBpbiB0aGUgZ3JhcGgKK21pZ2h0IGJlIHdvcnRoIGludmVzdGlnYXRpbmcuPC9wPgorPHA+VGhlIGRldGFpbGVkIHNuYXBzaG90cyBjYW4gZ2V0IHF1aXRlIGxhcmdlLiAgSXQgaXMgd29ydGggdmlld2luZyB0aGVtCitpbiBhIHZlcnkgd2lkZSB3aW5kb3cuICAgSXQncyBhbHNvIGEgZ29vZCBpZGVhIHRvIHZpZXcgdGhlbSB3aXRoIGEgdGV4dAorZWRpdG9yLiAgVGhhdCBtYWtlcyBpdCBlYXN5IHRvIHNjcm9sbCB1cCBhbmQgZG93biB3aGlsZSBrZWVwaW5nIHRoZSBjdXJzb3IKK2luIGEgcGFydGljdWxhciBjb2x1bW4sIHdoaWNoIG1ha2VzIGZvbGxvd2luZyB0aGUgYWxsb2NhdGlvbiBjaGFpbnMgZWFzaWVyLgorPC9wPgorPC9kaXY+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QxIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+Cis8YSBuYW1lPSJtcy1tYW51YWwub3B0aW9ucyI+PC9hPjkuMy6gTWFzc2lmIENvbW1hbmQtbGluZSBPcHRpb25zPC9oMj48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPk1hc3NpZi1zcGVjaWZpYyBjb21tYW5kLWxpbmUgb3B0aW9ucyBhcmU6PC9wPgorPGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij4KKzxhIG5hbWU9Im1zLm9wdHMubGlzdCI+PC9hPjxkbCBjbGFzcz0idmFyaWFibGVsaXN0Ij4KKzxkdD4KKzxhIG5hbWU9Im9wdC5oZWFwIj48L2E+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1oZWFwPSZsdDt5ZXN8bm8mZ3Q7IFtkZWZhdWx0OiB5ZXNdIDwvY29kZT4KKyAgICA8L3NwYW4+Cis8L2R0PgorPGRkPjxwPlNwZWNpZmllcyB3aGV0aGVyIGhlYXAgcHJvZmlsaW5nIHNob3VsZCBiZSBkb25lLjwvcD48L2RkPgorPGR0PgorPGEgbmFtZT0ib3B0LmhlYXAtYWRtaW4iPjwvYT48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWhlYXAtYWRtaW49Jmx0O3NpemUmZ3Q7IFtkZWZhdWx0OiA4XSA8L2NvZGU+CisgICAgPC9zcGFuPgorPC9kdD4KKzxkZD48cD5JZiBoZWFwIHByb2ZpbGluZyBpcyBlbmFibGVkLCBnaXZlcyB0aGUgbnVtYmVyIG9mIGFkbWluaXN0cmF0aXZlCisgICAgICBieXRlcyBwZXIgYmxvY2sgdG8gdXNlLiAgVGhpcyBzaG91bGQgYmUgYW4gZXN0aW1hdGUgb2YgdGhlIGF2ZXJhZ2UsCisgICAgICBzaW5jZSBpdCBtYXkgdmFyeS4gIEZvciBleGFtcGxlLCB0aGUgYWxsb2NhdG9yIHVzZWQgYnkKKyAgICAgIGdsaWJjIG9uIExpbnV4IHJlcXVpcmVzIHNvbWV3aGVyZSBiZXR3ZWVuIDQgdG8KKyAgICAgIDE1IGJ5dGVzIHBlciBibG9jaywgZGVwZW5kaW5nIG9uIHZhcmlvdXMgZmFjdG9ycy4gIFRoYXQgYWxsb2NhdG9yIGFsc28KKyAgICAgIHJlcXVpcmVzIGFkbWluIHNwYWNlIGZvciBmcmVlZCBibG9ja3MsIGJ1dCBNYXNzaWYgY2Fubm90CisgICAgICBhY2NvdW50IGZvciB0aGlzLjwvcD48L2RkPgorPGR0PgorPGEgbmFtZT0ib3B0LnN0YWNrcyI+PC9hPjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tc3RhY2tzPSZsdDt5ZXN8bm8mZ3Q7IFtkZWZhdWx0OiBub10gPC9jb2RlPgorICAgIDwvc3Bhbj4KKzwvZHQ+Cis8ZGQ+PHA+U3BlY2lmaWVzIHdoZXRoZXIgc3RhY2sgcHJvZmlsaW5nIHNob3VsZCBiZSBkb25lLiAgVGhpcyBvcHRpb24KKyAgICAgIHNsb3dzIE1hc3NpZiBkb3duIGdyZWF0bHksIGFuZCBzbyBpcyBvZmYgYnkgZGVmYXVsdC4gIE5vdGUgdGhhdCBNYXNzaWYKKyAgICAgIGFzc3VtZXMgdGhhdCB0aGUgbWFpbiBzdGFjayBoYXMgc2l6ZSB6ZXJvIGF0IHN0YXJ0LXVwLiAgVGhpcyBpcyBub3QKKyAgICAgIHRydWUsIGJ1dCBkb2luZyBvdGhlcndpc2UgYWNjdXJhdGVseSBpcyBkaWZmaWN1bHQuICBGdXJ0aGVybW9yZSwKKyAgICAgIHN0YXJ0aW5nIGF0IHplcm8gYmV0dGVyIGluZGljYXRlcyB0aGUgc2l6ZSBvZiB0aGUgcGFydCBvZiB0aGUgbWFpbgorICAgICAgc3RhY2sgdGhhdCBhIHVzZXIgcHJvZ3JhbSBhY3R1YWxseSBoYXMgY29udHJvbCBvdmVyLjwvcD48L2RkPgorPGR0PgorPGEgbmFtZT0ib3B0LnBhZ2VzLWFzLWhlYXAiPjwvYT48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXBhZ2VzLWFzLWhlYXA9Jmx0O3llc3xubyZndDsgW2RlZmF1bHQ6IG5vXSA8L2NvZGU+CisgICAgPC9zcGFuPgorPC9kdD4KKzxkZD48cD5UZWxscyBNYXNzaWYgdG8gcHJvZmlsZSBtZW1vcnkgYXQgdGhlIHBhZ2UgbGV2ZWwgcmF0aGVyCisgICAgICAgIHRoYW4gYXQgdGhlIG1hbGxvYydkIGJsb2NrIGxldmVsLiAgU2VlIGFib3ZlIGZvciBkZXRhaWxzLgorICAgICAgPC9wPjwvZGQ+Cis8ZHQ+Cis8YSBuYW1lPSJvcHQuZGVwdGgiPjwvYT48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWRlcHRoPSZsdDtudW1iZXImZ3Q7IFtkZWZhdWx0OiAzMF0gPC9jb2RlPgorICAgIDwvc3Bhbj4KKzwvZHQ+Cis8ZGQ+PHA+TWF4aW11bSBkZXB0aCBvZiB0aGUgYWxsb2NhdGlvbiB0cmVlcyByZWNvcmRlZCBmb3IgZGV0YWlsZWQKKyAgICAgIHNuYXBzaG90cy4gIEluY3JlYXNpbmcgaXQgd2lsbCBtYWtlIE1hc3NpZiBydW4gc29tZXdoYXQgbW9yZSBzbG93bHksCisgICAgICB1c2UgbW9yZSBtZW1vcnksIGFuZCBwcm9kdWNlIGJpZ2dlciBvdXRwdXQgZmlsZXMuPC9wPjwvZGQ+Cis8ZHQ+Cis8YSBuYW1lPSJvcHQuYWxsb2MtZm4iPjwvYT48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWFsbG9jLWZuPSZsdDtuYW1lJmd0OyA8L2NvZGU+CisgICAgPC9zcGFuPgorPC9kdD4KKzxkZD4KKzxwPkZ1bmN0aW9ucyBzcGVjaWZpZWQgd2l0aCB0aGlzIG9wdGlvbiB3aWxsIGJlIHRyZWF0ZWQgYXMgdGhvdWdoCisgICAgICB0aGV5IHdlcmUgYSBoZWFwIGFsbG9jYXRpb24gZnVuY3Rpb24gc3VjaCBhcworICAgICAgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5tYWxsb2M8L2NvZGU+LiAgVGhpcyBpcyB1c2VmdWwgZm9yIGZ1bmN0aW9ucyB0aGF0IGFyZQorICAgICAgd3JhcHBlcnMgdG8gPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5tYWxsb2M8L2NvZGU+IG9yIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+bmV3PC9jb2RlPiwKKyAgICAgIHdoaWNoIGNhbiBmaWxsIHVwIHRoZSBhbGxvY2F0aW9uIHRyZWVzIHdpdGggdW5pbnRlcmVzdGluZyBpbmZvcm1hdGlvbi4KKyAgICAgIFRoaXMgb3B0aW9uIGNhbiBiZSBzcGVjaWZpZWQgbXVsdGlwbGUgdGltZXMgb24gdGhlIGNvbW1hbmQgbGluZSwgdG8KKyAgICAgIG5hbWUgbXVsdGlwbGUgZnVuY3Rpb25zLjwvcD4KKzxwPk5vdGUgdGhhdCB0aGUgbmFtZWQgZnVuY3Rpb24gd2lsbCBvbmx5IGJlIHRyZWF0ZWQgdGhpcyB3YXkgaWYgaXQgaXMKKyAgICAgIHRoZSB0b3AgZW50cnkgaW4gYSBzdGFjayB0cmFjZSwgb3IganVzdCBiZWxvdyBhbm90aGVyIGZ1bmN0aW9uIHRyZWF0ZWQKKyAgICAgIHRoaXMgd2F5LiAgRm9yIGV4YW1wbGUsIGlmIHlvdSBoYXZlIGEgZnVuY3Rpb24KKyAgICAgIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+bWFsbG9jMTwvY29kZT4gdGhhdCB3cmFwcyA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPm1hbGxvYzwvY29kZT4sCisgICAgICBhbmQgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5tYWxsb2MyPC9jb2RlPiB0aGF0IHdyYXBzCisgICAgICA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPm1hbGxvYzE8L2NvZGU+LCBqdXN0IHNwZWNpZnlpbmcKKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tYWxsb2MtZm49bWFsbG9jMjwvY29kZT4gd2lsbCBoYXZlIG5vIGVmZmVjdC4gIFlvdSBuZWVkIHRvCisgICAgICBzcGVjaWZ5IDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tYWxsb2MtZm49bWFsbG9jMTwvY29kZT4gYXMgd2VsbC4gIFRoaXMgaXMgYSBsaXR0bGUKKyAgICAgIGluY29udmVuaWVudCwgYnV0IHRoZSByZWFzb24gaXMgdGhhdCBjaGVja2luZyBmb3IgYWxsb2NhdGlvbiBmdW5jdGlvbnMKKyAgICAgIGlzIHNsb3csIGFuZCBpdCBzYXZlcyBhIGxvdCBvZiB0aW1lIGlmIE1hc3NpZiBjYW4gc3RvcCBsb29raW5nIHRocm91Z2gKKyAgICAgIHRoZSBzdGFjayB0cmFjZSBlbnRyaWVzIGFzIHNvb24gYXMgaXQgZmluZHMgb25lIHRoYXQgZG9lc24ndCBtYXRjaAorICAgICAgcmF0aGVyIHRoYW4gaGF2aW5nIHRvIGNvbnRpbnVlIHRocm91Z2ggYWxsIHRoZSBlbnRyaWVzLjwvcD4KKzxwPk5vdGUgdGhhdCBDKysgbmFtZXMgYXJlIGRlbWFuZ2xlZC4gIE5vdGUgYWxzbyB0aGF0IG92ZXJsb2FkZWQKKyAgICAgIEMrKyBuYW1lcyBtdXN0IGJlIHdyaXR0ZW4gaW4gZnVsbC4gIFNpbmdsZSBxdW90ZXMgbWF5IGJlIG5lY2Vzc2FyeSB0bworICAgICAgcHJldmVudCB0aGUgc2hlbGwgZnJvbSBicmVha2luZyB0aGVtIHVwLiAgRm9yIGV4YW1wbGU6Cis8L3A+Cis8cHJlIGNsYXNzPSJzY3JlZW4iPgorLS1hbGxvYy1mbj0nb3BlcmF0b3IgbmV3KHVuc2lnbmVkLCBzdGQ6Om5vdGhyb3dfdCBjb25zdCZhbXA7KScKKzwvcHJlPgorPHA+CisgICAgICA8L3A+Cis8L2RkPgorPGR0PgorPGEgbmFtZT0ib3B0Lmlnbm9yZS1mbiI+PC9hPjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0taWdub3JlLWZuPSZsdDtuYW1lJmd0OyA8L2NvZGU+CisgICAgPC9zcGFuPgorPC9kdD4KKzxkZD4KKzxwPkFueSBkaXJlY3QgaGVhcCBhbGxvY2F0aW9uIChpLmUuIGEgY2FsbCB0bworICAgICAgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5tYWxsb2M8L2NvZGU+LCA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPm5ldzwvY29kZT4sIGV0Yywgb3IgYSBjYWxsCisgICAgICB0byBhIGZ1bmN0aW9uIG5hbWVkIGJ5IGFuIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tYWxsb2MtZm48L2NvZGU+CisgICAgICBvcHRpb24pIHRoYXQgb2NjdXJzIGluIGEgZnVuY3Rpb24gc3BlY2lmaWVkIGJ5IHRoaXMgb3B0aW9uIHdpbGwgYmUKKyAgICAgIGlnbm9yZWQuICBUaGlzIGlzIG1vc3RseSB1c2VmdWwgZm9yIHRlc3RpbmcgcHVycG9zZXMuICBUaGlzIG9wdGlvbiBjYW4KKyAgICAgIGJlIHNwZWNpZmllZCBtdWx0aXBsZSB0aW1lcyBvbiB0aGUgY29tbWFuZCBsaW5lLCB0byBuYW1lIG11bHRpcGxlCisgICAgICBmdW5jdGlvbnMuCisgICAgICA8L3A+Cis8cD5BbnkgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5yZWFsbG9jPC9jb2RlPiBvZiBhbiBpZ25vcmVkIGJsb2NrIHdpbGwKKyAgICAgIGFsc28gYmUgaWdub3JlZCwgZXZlbiBpZiB0aGUgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5yZWFsbG9jPC9jb2RlPiBjYWxsIGRvZXMKKyAgICAgIG5vdCBvY2N1ciBpbiBhbiBpZ25vcmVkIGZ1bmN0aW9uLiAgVGhpcyBhdm9pZHMgdGhlIHBvc3NpYmlsaXR5IG9mCisgICAgICBuZWdhdGl2ZSBoZWFwIHNpemVzIGlmIGlnbm9yZWQgYmxvY2tzIGFyZSBzaHJ1bmsgd2l0aAorICAgICAgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5yZWFsbG9jPC9jb2RlPi4KKyAgICAgIDwvcD4KKzxwPlRoZSBydWxlcyBmb3Igd3JpdGluZyBDKysgZnVuY3Rpb24gbmFtZXMgYXJlIHRoZSBzYW1lIGFzCisgICAgICBmb3IgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1hbGxvYy1mbjwvY29kZT4gYWJvdmUuCisgICAgICA8L3A+Cis8L2RkPgorPGR0PgorPGEgbmFtZT0ib3B0LnRocmVzaG9sZCI+PC9hPjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tdGhyZXNob2xkPSZsdDttLm4mZ3Q7IFtkZWZhdWx0OiAxLjBdIDwvY29kZT4KKyAgICA8L3NwYW4+Cis8L2R0PgorPGRkPjxwPlRoZSBzaWduaWZpY2FuY2UgdGhyZXNob2xkIGZvciBoZWFwIGFsbG9jYXRpb25zLCBhcyBhCisgICAgICBwZXJjZW50YWdlIG9mIHRvdGFsIG1lbW9yeSBzaXplLiAgQWxsb2NhdGlvbiB0cmVlIGVudHJpZXMgdGhhdCBhY2NvdW50CisgICAgICBmb3IgbGVzcyB0aGFuIHRoaXMgd2lsbCBiZSBhZ2dyZWdhdGVkLiAgTm90ZSB0aGF0IHRoaXMgc2hvdWxkIGJlCisgICAgICBzcGVjaWZpZWQgaW4gdGFuZGVtIHdpdGggbXNfcHJpbnQncyBvcHRpb24gb2YgdGhlIHNhbWUgbmFtZS48L3A+PC9kZD4KKzxkdD4KKzxhIG5hbWU9Im9wdC5wZWFrLWluYWNjdXJhY3kiPjwvYT48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXBlYWstaW5hY2N1cmFjeT0mbHQ7bS5uJmd0OyBbZGVmYXVsdDogMS4wXSA8L2NvZGU+CisgICAgPC9zcGFuPgorPC9kdD4KKzxkZD48cD5NYXNzaWYgZG9lcyBub3QgbmVjZXNzYXJpbHkgcmVjb3JkIHRoZSBhY3R1YWwgZ2xvYmFsIG1lbW9yeQorICAgICAgYWxsb2NhdGlvbiBwZWFrOyAgYnkgZGVmYXVsdCBpdCByZWNvcmRzIGEgcGVhayBvbmx5IHdoZW4gdGhlIGdsb2JhbAorICAgICAgbWVtb3J5IGFsbG9jYXRpb24gc2l6ZSBleGNlZWRzIHRoZSBwcmV2aW91cyBwZWFrIGJ5IGF0IGxlYXN0IDEuMCUuCisgICAgICBUaGlzIGlzIGJlY2F1c2UgdGhlcmUgY2FuIGJlIG1hbnkgbG9jYWwgYWxsb2NhdGlvbiBwZWFrcyBhbG9uZyB0aGUgd2F5LAorICAgICAgYW5kIGRvaW5nIGEgZGV0YWlsZWQgc25hcHNob3QgZm9yIGV2ZXJ5IG9uZSB3b3VsZCBiZSBleHBlbnNpdmUgYW5kCisgICAgICB3YXN0ZWZ1bCwgYXMgYWxsIGJ1dCBvbmUgb2YgdGhlbSB3aWxsIGJlIGxhdGVyIGRpc2NhcmRlZC4gIFRoaXMKKyAgICAgIGluYWNjdXJhY3kgY2FuIGJlIGNoYW5nZWQgKGV2ZW4gdG8gMC4wJSkgdmlhIHRoaXMgb3B0aW9uLCBidXQgTWFzc2lmCisgICAgICB3aWxsIHJ1biBkcmFzdGljYWxseSBzbG93ZXIgYXMgdGhlIG51bWJlciBhcHByb2FjaGVzIHplcm8uPC9wPjwvZGQ+Cis8ZHQ+Cis8YSBuYW1lPSJvcHQudGltZS11bml0Ij48L2E+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS10aW1lLXVuaXQ9Jmx0O2l8bXN8QiZndDsgW2RlZmF1bHQ6IGldIDwvY29kZT4KKyAgICA8L3NwYW4+Cis8L2R0PgorPGRkPjxwPlRoZSB0aW1lIHVuaXQgdXNlZCBmb3IgdGhlIHByb2ZpbGluZy4gIFRoZXJlIGFyZSB0aHJlZQorICAgICAgcG9zc2liaWxpdGllczogaW5zdHJ1Y3Rpb25zIGV4ZWN1dGVkIChpKSwgd2hpY2ggaXMgZ29vZCBmb3IgbW9zdAorICAgICAgY2FzZXM7IHJlYWwgKHdhbGxjbG9jaykgdGltZSAobXMsIGkuZS4gbWlsbGlzZWNvbmRzKSwgd2hpY2ggaXMKKyAgICAgIHNvbWV0aW1lcyB1c2VmdWw7IGFuZCBieXRlcyBhbGxvY2F0ZWQvZGVhbGxvY2F0ZWQgb24gdGhlIGhlYXAgYW5kL29yCisgICAgICBzdGFjayAoQiksIHdoaWNoIGlzIHVzZWZ1bCBmb3IgdmVyeSBzaG9ydC1ydW4gcHJvZ3JhbXMsIGFuZCBmb3IKKyAgICAgIHRlc3RpbmcgcHVycG9zZXMsIGJlY2F1c2UgaXQgaXMgdGhlIG1vc3QgcmVwcm9kdWNpYmxlIGFjcm9zcyBkaWZmZXJlbnQKKyAgICAgIG1hY2hpbmVzLjwvcD48L2RkPgorPGR0PgorPGEgbmFtZT0ib3B0LmRldGFpbGVkLWZyZXEiPjwvYT48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLWRldGFpbGVkLWZyZXE9Jmx0O24mZ3Q7IFtkZWZhdWx0OiAxMF0gPC9jb2RlPgorICAgIDwvc3Bhbj4KKzwvZHQ+Cis8ZGQ+PHA+RnJlcXVlbmN5IG9mIGRldGFpbGVkIHNuYXBzaG90cy4gIFdpdGgKKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tZGV0YWlsZWQtZnJlcT0xPC9jb2RlPiwgZXZlcnkgc25hcHNob3QgaXMKKyAgICAgIGRldGFpbGVkLjwvcD48L2RkPgorPGR0PgorPGEgbmFtZT0ib3B0Lm1heC1zbmFwc2hvdHMiPjwvYT48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLW1heC1zbmFwc2hvdHM9Jmx0O24mZ3Q7IFtkZWZhdWx0OiAxMDBdIDwvY29kZT4KKyAgICA8L3NwYW4+Cis8L2R0PgorPGRkPjxwPlRoZSBtYXhpbXVtIG51bWJlciBvZiBzbmFwc2hvdHMgcmVjb3JkZWQuICBJZiBzZXQgdG8gTiwgZm9yIGFsbAorICAgICAgcHJvZ3JhbXMgZXhjZXB0IHZlcnkgc2hvcnQtcnVubmluZyBvbmVzLCB0aGUgZmluYWwgbnVtYmVyIG9mIHNuYXBzaG90cworICAgICAgd2lsbCBiZSBiZXR3ZWVuIE4vMiBhbmQgTi48L3A+PC9kZD4KKzxkdD4KKzxhIG5hbWU9Im9wdC5tYXNzaWYtb3V0LWZpbGUiPjwvYT48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLW1hc3NpZi1vdXQtZmlsZT0mbHQ7ZmlsZSZndDsgW2RlZmF1bHQ6IG1hc3NpZi5vdXQuJXBdIDwvY29kZT4KKyAgICA8L3NwYW4+Cis8L2R0PgorPGRkPjxwPldyaXRlIHRoZSBwcm9maWxlIGRhdGEgdG8gPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5maWxlPC9jb2RlPgorICAgICAgcmF0aGVyIHRoYW4gdG8gdGhlIGRlZmF1bHQgb3V0cHV0IGZpbGUsCisgICAgICA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPm1hc3NpZi5vdXQuJmx0O3BpZCZndDs8L2NvZGU+LiAgVGhlCisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4lcDwvY29kZT4gYW5kIDxjb2RlIGNsYXNzPSJvcHRpb24iPiVxPC9jb2RlPiBmb3JtYXQgc3BlY2lmaWVycyBjYW4gYmUKKyAgICAgIHVzZWQgdG8gZW1iZWQgdGhlIHByb2Nlc3MgSUQgYW5kL29yIHRoZSBjb250ZW50cyBvZiBhbiBlbnZpcm9ubWVudAorICAgICAgdmFyaWFibGUgaW4gdGhlIG5hbWUsIGFzIGlzIHRoZSBjYXNlIGZvciB0aGUgY29yZSBvcHRpb24KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPjxhIGNsYXNzPSJ4cmVmIiBocmVmPSJtYW51YWwtY29yZS5odG1sI29wdC5sb2ctZmlsZSI+LS1sb2ctZmlsZTwvYT48L2NvZGU+LgorICAgICAgPC9wPjwvZGQ+Cis8L2RsPgorPC9kaXY+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QxIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+Cis8YSBuYW1lPSJtcy1tYW51YWwubW9uaXRvci1jb21tYW5kcyI+PC9hPjkuNC6gTWFzc2lmIE1vbml0b3IgQ29tbWFuZHM8L2gyPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+VGhlIE1hc3NpZiB0b29sIHByb3ZpZGVzIG1vbml0b3IgY29tbWFuZHMgaGFuZGxlZCBieSB0aGUgVmFsZ3JpbmQKK2dkYnNlcnZlciAoc2VlIDxhIGNsYXNzPSJ4cmVmIiBocmVmPSJtYW51YWwtY29yZS1hZHYuaHRtbCNtYW51YWwtY29yZS1hZHYuZ2Ric2VydmVyLWNvbW1hbmRoYW5kbGluZyIgdGl0bGU9IjMuMi41LqBNb25pdG9yIGNvbW1hbmQgaGFuZGxpbmcgYnkgdGhlIFZhbGdyaW5kIGdkYnNlcnZlciI+TW9uaXRvciBjb21tYW5kIGhhbmRsaW5nIGJ5IHRoZSBWYWxncmluZCBnZGJzZXJ2ZXI8L2E+KS4KKzwvcD4KKzxkaXYgY2xhc3M9Iml0ZW1pemVkbGlzdCI+PHVsIGNsYXNzPSJpdGVtaXplZGxpc3QiIHN0eWxlPSJsaXN0LXN0eWxlLXR5cGU6IGRpc2M7ICI+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD48Y29kZSBjbGFzcz0idmFybmFtZSI+c25hcHNob3QgWyZsdDtmaWxlbmFtZSZndDtdPC9jb2RlPiByZXF1ZXN0cworICAgIHRvIHRha2UgYSBzbmFwc2hvdCBhbmQgc2F2ZSBpdCBpbiB0aGUgZ2l2ZW4gJmx0O2ZpbGVuYW1lJmd0OworICAgIChkZWZhdWx0IG1hc3NpZi52Z2RiLm91dCkuCisgICAgPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD48Y29kZSBjbGFzcz0idmFybmFtZSI+ZGV0YWlsZWRfc25hcHNob3QgWyZsdDtmaWxlbmFtZSZndDtdPC9jb2RlPgorICAgIHJlcXVlc3RzIHRvIHRha2UgYSBkZXRhaWxlZCBzbmFwc2hvdCBhbmQgc2F2ZSBpdCBpbiB0aGUgZ2l2ZW4KKyAgICAmbHQ7ZmlsZW5hbWUmZ3Q7IChkZWZhdWx0IG1hc3NpZi52Z2RiLm91dCkuCisgICAgPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD48Y29kZSBjbGFzcz0idmFybmFtZSI+YWxsX3NuYXBzaG90cyBbJmx0O2ZpbGVuYW1lJmd0O108L2NvZGU+CisgICAgcmVxdWVzdHMgdG8gdGFrZSBhbGwgY2FwdHVyZWQgc25hcHNob3RzIHNvIGZhciBhbmQgc2F2ZSB0aGVtIGluIHRoZSBnaXZlbgorICAgICZsdDtmaWxlbmFtZSZndDsgKGRlZmF1bHQgbWFzc2lmLnZnZGIub3V0KS4KKyAgICA8L3A+PC9saT4KKzwvdWw+PC9kaXY+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QxIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+Cis8YSBuYW1lPSJtcy1tYW51YWwuY2xpZW50cmVxcyI+PC9hPjkuNS6gTWFzc2lmIENsaWVudCBSZXF1ZXN0czwvaDI+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD5NYXNzaWYgZG9lcyBub3QgaGF2ZSBhIDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+bWFzc2lmLmg8L2NvZGU+IGZpbGUsIGJ1dCBpdCBkb2VzCitpbXBsZW1lbnQgdHdvIG9mIHRoZSBjb3JlIGNsaWVudCByZXF1ZXN0czoKKzxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+VkFMR1JJTkRfTUFMTE9DTElLRV9CTE9DSzwvY29kZT4gYW5kCis8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPlZBTEdSSU5EX0ZSRUVMSUtFX0JMT0NLPC9jb2RlPjsgIHRoZXkgYXJlIGRlc2NyaWJlZCBpbiAKKzxhIGNsYXNzPSJ4cmVmIiBocmVmPSJtYW51YWwtY29yZS1hZHYuaHRtbCNtYW51YWwtY29yZS1hZHYuY2xpZW50cmVxIiB0aXRsZT0iMy4xLqBUaGUgQ2xpZW50IFJlcXVlc3QgbWVjaGFuaXNtIj5UaGUgQ2xpZW50IFJlcXVlc3QgbWVjaGFuaXNtPC9hPi4KKzwvcD4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDEiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj4KKzxhIG5hbWU9Im1zLW1hbnVhbC5tc19wcmludC1vcHRpb25zIj48L2E+OS42LqBtc19wcmludCBDb21tYW5kLWxpbmUgT3B0aW9uczwvaDI+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD5tc19wcmludCdzIG9wdGlvbnMgYXJlOjwvcD4KKzxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+Cis8YSBuYW1lPSJtc19wcmludC5vcHRzLmxpc3QiPjwvYT48ZGwgY2xhc3M9InZhcmlhYmxlbGlzdCI+Cis8ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LWggLS1oZWxwIDwvY29kZT4KKyAgICA8L3NwYW4+PC9kdD4KKzxkZD48cD5TaG93IHRoZSBoZWxwIG1lc3NhZ2UuPC9wPjwvZGQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InRlcm0iPgorICAgICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS12ZXJzaW9uIDwvY29kZT4KKyAgICA8L3NwYW4+PC9kdD4KKzxkZD48cD5TaG93IHRoZSB2ZXJzaW9uIG51bWJlci48L3A+PC9kZD4KKzxkdD48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXRocmVzaG9sZD0mbHQ7bS5uJmd0OyBbZGVmYXVsdDogMS4wXSA8L2NvZGU+CisgICAgPC9zcGFuPjwvZHQ+Cis8ZGQ+PHA+U2FtZSBhcyBNYXNzaWYncyA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXRocmVzaG9sZDwvY29kZT4gb3B0aW9uLCBidXQKKyAgICAgIGFwcGxpZWQgYWZ0ZXIgcHJvZmlsaW5nIHJhdGhlciB0aGFuIGR1cmluZy48L3A+PC9kZD4KKzxkdD48c3BhbiBjbGFzcz0idGVybSI+CisgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXg9Jmx0OzQuLjEwMDAmZ3Q7IFtkZWZhdWx0OiA3Ml08L2NvZGU+CisgICAgPC9zcGFuPjwvZHQ+Cis8ZGQ+PHA+V2lkdGggb2YgdGhlIGdyYXBoLCBpbiBjb2x1bW5zLjwvcD48L2RkPgorPGR0PjxzcGFuIGNsYXNzPSJ0ZXJtIj4KKyAgICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0teT0mbHQ7NC4uMTAwMCZndDsgW2RlZmF1bHQ6IDIwXSA8L2NvZGU+CisgICAgPC9zcGFuPjwvZHQ+Cis8ZGQ+PHA+SGVpZ2h0IG9mIHRoZSBncmFwaCwgaW4gcm93cy48L3A+PC9kZD4KKzwvZGw+Cis8L2Rpdj4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDEiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj4KKzxhIG5hbWU9Im1zLW1hbnVhbC5maWxlZm9ybWF0Ij48L2E+OS43LqBNYXNzaWYncyBPdXRwdXQgRmlsZSBGb3JtYXQ8L2gyPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+TWFzc2lmJ3MgZmlsZSBmb3JtYXQgaXMgcGxhaW4gdGV4dCAoaS5lLiBub3QgYmluYXJ5KSBhbmQgZGVsaWJlcmF0ZWx5CitlYXN5IHRvIHJlYWQgZm9yIGJvdGggaHVtYW5zIGFuZCBtYWNoaW5lcy4gIE5vbmV0aGVsZXNzLCB0aGUgZXhhY3QgZm9ybWF0CitpcyBub3QgZGVzY3JpYmVkIGhlcmUuICBUaGlzIGlzIGJlY2F1c2UgdGhlIGZvcm1hdCBpcyBjdXJyZW50bHkgdmVyeQorTWFzc2lmLXNwZWNpZmljLiAgSW4gdGhlIGZ1dHVyZSB3ZSBob3BlIHRvIG1ha2UgdGhlIGZvcm1hdCBtb3JlIGdlbmVyYWwsIGFuZAordGh1cyBzdWl0YWJsZSBmb3IgcG9zc2libGUgdXNlIHdpdGggb3RoZXIgdG9vbHMuICBPbmNlIHRoaXMgaGFzIGJlZW4gZG9uZSwKK3RoZSBmb3JtYXQgd2lsbCBiZSBkb2N1bWVudGVkIGhlcmUuPC9wPgorPC9kaXY+Cis8L2Rpdj4KKzxkaXY+Cis8YnI+PHRhYmxlIGNsYXNzPSJuYXYiIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0iMyIgY2VsbHBhZGRpbmc9IjIiIGJvcmRlcj0iMCIgc3VtbWFyeT0iTmF2aWdhdGlvbiBmb290ZXIiPgorPHRyPgorPHRkIHJvd3NwYW49IjIiIHdpZHRoPSI0MCUiIGFsaWduPSJsZWZ0Ij4KKzxhIGFjY2Vzc2tleT0icCIgaHJlZj0iZHJkLW1hbnVhbC5odG1sIj4mbHQ7Jmx0O6A4LqBEUkQ6IGEgdGhyZWFkIGVycm9yIGRldGVjdG9yPC9hPqA8L3RkPgorPHRkIHdpZHRoPSIyMCUiIGFsaWduPSJjZW50ZXIiPjxhIGFjY2Vzc2tleT0idSIgaHJlZj0ibWFudWFsLmh0bWwiPlVwPC9hPjwvdGQ+Cis8dGQgcm93c3Bhbj0iMiIgd2lkdGg9IjQwJSIgYWxpZ249InJpZ2h0Ij6gPGEgYWNjZXNza2V5PSJuIiBocmVmPSJkaC1tYW51YWwuaHRtbCI+MTAuoERIQVQ6IGEgZHluYW1pYyBoZWFwIGFuYWx5c2lzIHRvb2ygJmd0OyZndDs8L2E+Cis8L3RkPgorPC90cj4KKzx0cj48dGQgd2lkdGg9IjIwJSIgYWxpZ249ImNlbnRlciI+PGEgYWNjZXNza2V5PSJoIiBocmVmPSJpbmRleC5odG1sIj5Ib21lPC9hPjwvdGQ+PC90cj4KKzwvdGFibGU+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL2RvY3MvaHRtbC9ubC1tYW51YWwuaHRtbCBiL2RvY3MvaHRtbC9ubC1tYW51YWwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NDNhMjcyCi0tLSAvZGV2L251bGwKKysrIGIvZG9jcy9odG1sL25sLW1hbnVhbC5odG1sCkBAIC0wLDAgKzEsNTYgQEAKKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj4KKzx0aXRsZT4xNC6gTnVsZ3JpbmQ6IHRoZSBtaW5pbWFsIFZhbGdyaW5kIHRvb2w8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0idmdfYmFzaWMuY3NzIj4KKzxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iRG9jQm9vayBYU0wgU3R5bGVzaGVldHMgVjEuNzguMSI+Cis8bGluayByZWw9ImhvbWUiIGhyZWY9ImluZGV4Lmh0bWwiIHRpdGxlPSJWYWxncmluZCBEb2N1bWVudGF0aW9uIj4KKzxsaW5rIHJlbD0idXAiIGhyZWY9Im1hbnVhbC5odG1sIiB0aXRsZT0iVmFsZ3JpbmQgVXNlciBNYW51YWwiPgorPGxpbmsgcmVsPSJwcmV2IiBocmVmPSJsay1tYW51YWwuaHRtbCIgdGl0bGU9IjEzLqBMYWNrZXk6IGFuIGV4YW1wbGUgdG9vbCI+Cis8bGluayByZWw9Im5leHQiIGhyZWY9IkZBUS5odG1sIiB0aXRsZT0iVmFsZ3JpbmQgRkFRIj4KKzwvaGVhZD4KKzxib2R5IGJnY29sb3I9IndoaXRlIiB0ZXh0PSJibGFjayIgbGluaz0iIzAwMDBGRiIgdmxpbms9IiM4NDAwODQiIGFsaW5rPSIjMDAwMEZGIj4KKzxkaXY+PHRhYmxlIGNsYXNzPSJuYXYiIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0iMyIgY2VsbHBhZGRpbmc9IjMiIGJvcmRlcj0iMCIgc3VtbWFyeT0iTmF2aWdhdGlvbiBoZWFkZXIiPjx0cj4KKzx0ZCB3aWR0aD0iMjJweCIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPjxhIGFjY2Vzc2tleT0icCIgaHJlZj0ibGstbWFudWFsLmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvcHJldi5wbmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIyMSIgYm9yZGVyPSIwIiBhbHQ9IlByZXYiPjwvYT48L3RkPgorPHRkIHdpZHRoPSIyNXB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJtYW51YWwuaHRtbCI+PGltZyBzcmM9ImltYWdlcy91cC5wbmciIHdpZHRoPSIyMSIgaGVpZ2h0PSIxOCIgYm9yZGVyPSIwIiBhbHQ9IlVwIj48L2E+PC90ZD4KKzx0ZCB3aWR0aD0iMzFweCIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iaW5kZXguaHRtbCI+PGltZyBzcmM9ImltYWdlcy9ob21lLnBuZyIgd2lkdGg9IjI3IiBoZWlnaHQ9IjIwIiBib3JkZXI9IjAiIGFsdD0iVXAiPjwvYT48L3RkPgorPHRoIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj5WYWxncmluZCBVc2VyIE1hbnVhbDwvdGg+Cis8dGQgd2lkdGg9IjIycHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9Im4iIGhyZWY9IkZBUS5odG1sIj48aW1nIHNyYz0iaW1hZ2VzL25leHQucG5nIiB3aWR0aD0iMTgiIGhlaWdodD0iMjEiIGJvcmRlcj0iMCIgYWx0PSJOZXh0Ij48L2E+PC90ZD4KKzwvdHI+PC90YWJsZT48L2Rpdj4KKzxkaXYgY2xhc3M9ImNoYXB0ZXIiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgxIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJubC1tYW51YWwiPjwvYT4xNC6gTnVsZ3JpbmQ6IHRoZSBtaW5pbWFsIFZhbGdyaW5kIHRvb2w8L2gxPjwvZGl2PjwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0idG9jIj4KKzxwPjxiPlRhYmxlIG9mIENvbnRlbnRzPC9iPjwvcD4KKzxkbCBjbGFzcz0idG9jIj48ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJubC1tYW51YWwuaHRtbCNtcy1tYW51YWwub3ZlcnZpZXciPjE0LjEuIE92ZXJ2aWV3PC9hPjwvc3Bhbj48L2R0PjwvZGw+Cis8L2Rpdj4KKzxwPlRvIHVzZSB0aGlzIHRvb2wsIHlvdSBtdXN0IHNwZWNpZnkKKzxjb2RlIGNsYXNzPSJvcHRpb24iPi0tdG9vbD1ub25lPC9jb2RlPiBvbiB0aGUgVmFsZ3JpbmQKK2NvbW1hbmQgbGluZS48L3A+Cis8ZGl2IGNsYXNzPSJzZWN0MSI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPgorPGEgbmFtZT0ibXMtbWFudWFsLm92ZXJ2aWV3Ij48L2E+MTQuMS6gT3ZlcnZpZXc8L2gyPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+TnVsZ3JpbmQgaXMgdGhlIHNpbXBsZXN0IHBvc3NpYmxlIFZhbGdyaW5kIHRvb2wuICBJdCBwZXJmb3JtcyBubworaW5zdHJ1bWVudGF0aW9uIG9yIGFuYWx5c2lzIG9mIGEgcHJvZ3JhbSwganVzdCBydW5zIGl0IG5vcm1hbGx5LiAgSXQgaXMKK21haW5seSBvZiB1c2UgZm9yIFZhbGdyaW5kJ3MgZGV2ZWxvcGVycyBmb3IgZGVidWdnaW5nIGFuZCByZWdyZXNzaW9uCit0ZXN0aW5nLjwvcD4KKzxwPk5vbmV0aGVsZXNzIHlvdSBjYW4gcnVuIHByb2dyYW1zIHdpdGggTnVsZ3JpbmQuICBUaGV5IHdpbGwgcnVuCityb3VnaGx5IDUgdGltZXMgbW9yZSBzbG93bHkgdGhhbiBub3JtYWwsIGZvciBubyB1c2VmdWwgZWZmZWN0LiAgTm90ZQordGhhdCB5b3UgbmVlZCB0byB1c2UgdGhlIG9wdGlvbiA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXRvb2w9bm9uZTwvY29kZT4gdG8gcnVuCitOdWxncmluZCAoaWUuIG5vdCA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXRvb2w9bnVsZ3JpbmQ8L2NvZGU+KS48L3A+Cis8L2Rpdj4KKzwvZGl2PgorPGRpdj4KKzxicj48dGFibGUgY2xhc3M9Im5hdiIgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSIzIiBjZWxscGFkZGluZz0iMiIgYm9yZGVyPSIwIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGZvb3RlciI+Cis8dHI+Cis8dGQgcm93c3Bhbj0iMiIgd2lkdGg9IjQwJSIgYWxpZ249ImxlZnQiPgorPGEgYWNjZXNza2V5PSJwIiBocmVmPSJsay1tYW51YWwuaHRtbCI+Jmx0OyZsdDugMTMuoExhY2tleTogYW4gZXhhbXBsZSB0b29sPC9hPqA8L3RkPgorPHRkIHdpZHRoPSIyMCUiIGFsaWduPSJjZW50ZXIiPjxhIGFjY2Vzc2tleT0idSIgaHJlZj0ibWFudWFsLmh0bWwiPlVwPC9hPjwvdGQ+Cis8dGQgcm93c3Bhbj0iMiIgd2lkdGg9IjQwJSIgYWxpZ249InJpZ2h0Ij6gPGEgYWNjZXNza2V5PSJuIiBocmVmPSJGQVEuaHRtbCI+VmFsZ3JpbmQgRkFRoCZndDsmZ3Q7PC9hPgorPC90ZD4KKzwvdHI+Cis8dHI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJjZW50ZXIiPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iaW5kZXguaHRtbCI+SG9tZTwvYT48L3RkPjwvdHI+Cis8L3RhYmxlPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9kb2NzL2h0bWwvcXVpY2stc3RhcnQuaHRtbCBiL2RvY3MvaHRtbC9xdWljay1zdGFydC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAwZDdiMDcKLS0tIC9kZXYvbnVsbAorKysgYi9kb2NzL2h0bWwvcXVpY2stc3RhcnQuaHRtbApAQCAtMCwwICsxLDIwMyBAQAorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiPgorPHRpdGxlPlRoZSBWYWxncmluZCBRdWljayBTdGFydCBHdWlkZTwvdGl0bGU+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJ2Z19iYXNpYy5jc3MiPgorPG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJEb2NCb29rIFhTTCBTdHlsZXNoZWV0cyBWMS43OC4xIj4KKzxsaW5rIHJlbD0iaG9tZSIgaHJlZj0iaW5kZXguaHRtbCIgdGl0bGU9IlZhbGdyaW5kIERvY3VtZW50YXRpb24iPgorPGxpbmsgcmVsPSJ1cCIgaHJlZj0iUXVpY2tTdGFydC5odG1sIiB0aXRsZT0iVGhlIFZhbGdyaW5kIFF1aWNrIFN0YXJ0IEd1aWRlIj4KKzxsaW5rIHJlbD0icHJldiIgaHJlZj0iUXVpY2tTdGFydC5odG1sIiB0aXRsZT0iVGhlIFZhbGdyaW5kIFF1aWNrIFN0YXJ0IEd1aWRlIj4KKzxsaW5rIHJlbD0ibmV4dCIgaHJlZj0ibWFudWFsLmh0bWwiIHRpdGxlPSJWYWxncmluZCBVc2VyIE1hbnVhbCI+Cis8L2hlYWQ+Cis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+Cis8ZGl2Pjx0YWJsZSBjbGFzcz0ibmF2IiB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjMiIGNlbGxwYWRkaW5nPSIzIiBib3JkZXI9IjAiIHN1bW1hcnk9Ik5hdmlnYXRpb24gaGVhZGVyIj48dHI+Cis8dGQgd2lkdGg9IjIycHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9InAiIGhyZWY9IlF1aWNrU3RhcnQuaHRtbCI+PGltZyBzcmM9ImltYWdlcy9wcmV2LnBuZyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjIxIiBib3JkZXI9IjAiIGFsdD0iUHJldiI+PC9hPjwvdGQ+Cis8dGQgd2lkdGg9IjI1cHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9InUiIGhyZWY9IlF1aWNrU3RhcnQuaHRtbCI+PGltZyBzcmM9ImltYWdlcy91cC5wbmciIHdpZHRoPSIyMSIgaGVpZ2h0PSIxOCIgYm9yZGVyPSIwIiBhbHQ9IlVwIj48L2E+PC90ZD4KKzx0ZCB3aWR0aD0iMzFweCIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iaW5kZXguaHRtbCI+PGltZyBzcmM9ImltYWdlcy9ob21lLnBuZyIgd2lkdGg9IjI3IiBoZWlnaHQ9IjIwIiBib3JkZXI9IjAiIGFsdD0iVXAiPjwvYT48L3RkPgorPHRoIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj5UaGUgVmFsZ3JpbmQgUXVpY2sgU3RhcnQgR3VpZGU8L3RoPgorPHRkIHdpZHRoPSIyMnB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJuIiBocmVmPSJtYW51YWwuaHRtbCI+PGltZyBzcmM9ImltYWdlcy9uZXh0LnBuZyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjIxIiBib3JkZXI9IjAiIGFsdD0iTmV4dCI+PC9hPjwvdGQ+Cis8L3RyPjwvdGFibGU+PC9kaXY+Cis8ZGl2IGNsYXNzPSJhcnRpY2xlIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+Cis8ZGl2PjxkaXY+PGgxIGNsYXNzPSJ0aXRsZSI+Cis8YSBuYW1lPSJxdWljay1zdGFydCI+PC9hPlRoZSBWYWxncmluZCBRdWljayBTdGFydCBHdWlkZTwvaDE+PC9kaXY+PC9kaXY+Cis8aHI+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QxIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+Cis8YSBuYW1lPSJxdWljay1zdGFydC5pbnRybyI+PC9hPjEuoEludHJvZHVjdGlvbjwvaDI+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD5UaGUgVmFsZ3JpbmQgdG9vbCBzdWl0ZSBwcm92aWRlcyBhIG51bWJlciBvZiBkZWJ1Z2dpbmcgYW5kCitwcm9maWxpbmcgdG9vbHMgdGhhdCBoZWxwIHlvdSBtYWtlIHlvdXIgcHJvZ3JhbXMgZmFzdGVyIGFuZCBtb3JlIGNvcnJlY3QuCitUaGUgbW9zdCBwb3B1bGFyIG9mIHRoZXNlIHRvb2xzIGlzIGNhbGxlZCBNZW1jaGVjay4gIEl0IGNhbiBkZXRlY3QgbWFueQorbWVtb3J5LXJlbGF0ZWQgZXJyb3JzIHRoYXQgYXJlIGNvbW1vbiBpbiBDIGFuZCBDKysgcHJvZ3JhbXMgYW5kIHRoYXQgY2FuCitsZWFkIHRvIGNyYXNoZXMgYW5kIHVucHJlZGljdGFibGUgYmVoYXZpb3VyLjwvcD4KKzxwPlRoZSByZXN0IG9mIHRoaXMgZ3VpZGUgZ2l2ZXMgdGhlIG1pbmltdW0gaW5mb3JtYXRpb24geW91IG5lZWQgdG8gc3RhcnQKK2RldGVjdGluZyBtZW1vcnkgZXJyb3JzIGluIHlvdXIgcHJvZ3JhbSB3aXRoIE1lbWNoZWNrLiAgRm9yIGZ1bGwKK2RvY3VtZW50YXRpb24gb2YgTWVtY2hlY2sgYW5kIHRoZSBvdGhlciB0b29scywgcGxlYXNlIHJlYWQgdGhlIFVzZXIgTWFudWFsLgorPC9wPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MSI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPgorPGEgbmFtZT0icXVpY2stc3RhcnQucHJlcGFyZSI+PC9hPjIuoFByZXBhcmluZyB5b3VyIHByb2dyYW08L2gyPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+Q29tcGlsZSB5b3VyIHByb2dyYW0gd2l0aCA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tZzwvY29kZT4gdG8gaW5jbHVkZSBkZWJ1Z2dpbmcKK2luZm9ybWF0aW9uIHNvIHRoYXQgTWVtY2hlY2sncyBlcnJvciBtZXNzYWdlcyBpbmNsdWRlIGV4YWN0IGxpbmUKK251bWJlcnMuICBVc2luZyA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tTzA8L2NvZGU+IGlzIGFsc28gYSBnb29kCitpZGVhLCBpZiB5b3UgY2FuIHRvbGVyYXRlIHRoZSBzbG93ZG93bi4gIFdpdGgKKzxjb2RlIGNsYXNzPSJvcHRpb24iPi1PMTwvY29kZT4gbGluZSBudW1iZXJzIGluIGVycm9yIG1lc3NhZ2VzIGNhbgorYmUgaW5hY2N1cmF0ZSwgYWx0aG91Z2ggZ2VuZXJhbGx5IHNwZWFraW5nIHJ1bm5pbmcgTWVtY2hlY2sgb24gY29kZSBjb21waWxlZAorYXQgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LU8xPC9jb2RlPiB3b3JrcyBmYWlybHkgd2VsbCwgYW5kIHRoZSBzcGVlZCBpbXByb3ZlbWVudAorY29tcGFyZWQgdG8gcnVubmluZyA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tTzA8L2NvZGU+IGlzIHF1aXRlIHNpZ25pZmljYW50LgorVXNlIG9mCis8Y29kZSBjbGFzcz0ib3B0aW9uIj4tTzI8L2NvZGU+IGFuZCBhYm92ZSBpcyBub3QgcmVjb21tZW5kZWQgYXMKK01lbWNoZWNrIG9jY2FzaW9uYWxseSByZXBvcnRzIHVuaW5pdGlhbGlzZWQtdmFsdWUgZXJyb3JzIHdoaWNoIGRvbid0CityZWFsbHkgZXhpc3QuPC9wPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0MSI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPgorPGEgbmFtZT0icXVpY2stc3RhcnQubWNydW4iPjwvYT4zLqBSdW5uaW5nIHlvdXIgcHJvZ3JhbSB1bmRlciBNZW1jaGVjazwvaDI+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD5JZiB5b3Ugbm9ybWFsbHkgcnVuIHlvdXIgcHJvZ3JhbSBsaWtlIHRoaXM6PC9wPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiAgbXlwcm9nIGFyZzEgYXJnMgorPC9wcmU+Cis8cD5Vc2UgdGhpcyBjb21tYW5kIGxpbmU6PC9wPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPiAgdmFsZ3JpbmQgLS1sZWFrLWNoZWNrPXllcyBteXByb2cgYXJnMSBhcmcyCis8L3ByZT4KKzxwPk1lbWNoZWNrIGlzIHRoZSBkZWZhdWx0IHRvb2wuICBUaGUgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1sZWFrLWNoZWNrPC9jb2RlPgorb3B0aW9uIHR1cm5zIG9uIHRoZSBkZXRhaWxlZCBtZW1vcnkgbGVhayBkZXRlY3Rvci48L3A+Cis8cD5Zb3VyIHByb2dyYW0gd2lsbCBydW4gbXVjaCBzbG93ZXIgKGVnLiAyMCB0byAzMCB0aW1lcykgdGhhbgorbm9ybWFsLCBhbmQgdXNlIGEgbG90IG1vcmUgbWVtb3J5LiAgTWVtY2hlY2sgd2lsbCBpc3N1ZSBtZXNzYWdlcyBhYm91dAorbWVtb3J5IGVycm9ycyBhbmQgbGVha3MgdGhhdCBpdCBkZXRlY3RzLjwvcD4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDEiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj4KKzxhIG5hbWU9InF1aWNrLXN0YXJ0LmludGVycHJldCI+PC9hPjQuoEludGVycHJldGluZyBNZW1jaGVjaydzIG91dHB1dDwvaDI+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD5IZXJlJ3MgYW4gZXhhbXBsZSBDIHByb2dyYW0sIGluIGEgZmlsZSBjYWxsZWQgYS5jLCB3aXRoIGEgbWVtb3J5IGVycm9yCithbmQgYSBtZW1vcnkgbGVhay48L3A+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CisgICNpbmNsdWRlICZsdDtzdGRsaWIuaCZndDsKKworICB2b2lkIGYodm9pZCkKKyAgeworICAgICBpbnQqIHggPSBtYWxsb2MoMTAgKiBzaXplb2YoaW50KSk7CisgICAgIHhbMTBdID0gMDsgICAgICAgIC8vIHByb2JsZW0gMTogaGVhcCBibG9jayBvdmVycnVuCisgIH0gICAgICAgICAgICAgICAgICAgIC8vIHByb2JsZW0gMjogbWVtb3J5IGxlYWsgLS0geCBub3QgZnJlZWQKKworICBpbnQgbWFpbih2b2lkKQorICB7CisgICAgIGYoKTsKKyAgICAgcmV0dXJuIDA7CisgIH0KKzwvcHJlPgorPHA+TW9zdCBlcnJvciBtZXNzYWdlcyBsb29rIGxpa2UgdGhlIGZvbGxvd2luZywgd2hpY2ggZGVzY3JpYmVzCitwcm9ibGVtIDEsIHRoZSBoZWFwIGJsb2NrIG92ZXJydW46PC9wPgorPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPgorICA9PTE5MTgyPT0gSW52YWxpZCB3cml0ZSBvZiBzaXplIDQKKyAgPT0xOTE4Mj09ICAgIGF0IDB4ODA0ODM4RjogZiAoZXhhbXBsZS5jOjYpCisgID09MTkxODI9PSAgICBieSAweDgwNDgzQUI6IG1haW4gKGV4YW1wbGUuYzoxMSkKKyAgPT0xOTE4Mj09ICBBZGRyZXNzIDB4MUJBNDUwNTAgaXMgMCBieXRlcyBhZnRlciBhIGJsb2NrIG9mIHNpemUgNDAgYWxsb2MnZAorICA9PTE5MTgyPT0gICAgYXQgMHgxQjhGRjVDRDogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOjEzMCkKKyAgPT0xOTE4Mj09ICAgIGJ5IDB4ODA0ODM4NTogZiAoZXhhbXBsZS5jOjUpCisgID09MTkxODI9PSAgICBieSAweDgwNDgzQUI6IG1haW4gKGV4YW1wbGUuYzoxMSkKKzwvcHJlPgorPHA+VGhpbmdzIHRvIG5vdGljZTo8L3A+Cis8ZGl2IGNsYXNzPSJpdGVtaXplZGxpc3QiPjx1bCBjbGFzcz0iaXRlbWl6ZWRsaXN0IiBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOiBkaXNjOyAiPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+VGhlcmUgaXMgYSBsb3Qgb2YgaW5mb3JtYXRpb24gaW4gZWFjaCBlcnJvciBtZXNzYWdlOyByZWFkIGl0CisgICBjYXJlZnVsbHkuPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5UaGUgMTkxODIgaXMgdGhlIHByb2Nlc3MgSUQ7ICBpdCdzIHVzdWFsbHkgdW5pbXBvcnRhbnQuPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5UaGUgZmlyc3QgbGluZSAoIkludmFsaWQgd3JpdGUuLi4iKSB0ZWxscyB5b3Ugd2hhdCBraW5kIG9mCisgICBlcnJvciBpdCBpcy4gIEhlcmUsIHRoZSBwcm9ncmFtIHdyb3RlIHRvIHNvbWUgbWVtb3J5IGl0IHNob3VsZCBub3QKKyAgIGhhdmUgZHVlIHRvIGEgaGVhcCBibG9jayBvdmVycnVuLjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+QmVsb3cgdGhlIGZpcnN0IGxpbmUgaXMgYSBzdGFjayB0cmFjZSB0ZWxsaW5nIHlvdSB3aGVyZSB0aGUKKyAgICBwcm9ibGVtIG9jY3VycmVkLiAgU3RhY2sgdHJhY2VzIGNhbiBnZXQgcXVpdGUgbGFyZ2UsIGFuZCBiZQorICAgIGNvbmZ1c2luZywgZXNwZWNpYWxseSBpZiB5b3UgYXJlIHVzaW5nIHRoZSBDKysgU1RMLiAgUmVhZGluZyB0aGVtCisgICAgZnJvbSB0aGUgYm90dG9tIHVwIGNhbiBoZWxwLiAgSWYgdGhlIHN0YWNrIHRyYWNlIGlzIG5vdCBiaWcgZW5vdWdoLAorICAgIHVzZSB0aGUgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1udW0tY2FsbGVyczwvY29kZT4gb3B0aW9uIHRvIG1ha2UgaXQKKyAgICBiaWdnZXIuPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5UaGUgY29kZSBhZGRyZXNzZXMgKGVnLiAweDgwNDgzOEYpIGFyZSB1c3VhbGx5IHVuaW1wb3J0YW50LCBidXQKKyAgIG9jY2FzaW9uYWxseSBjcnVjaWFsIGZvciB0cmFja2luZyBkb3duIHdlaXJkZXIgYnVncy48L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPlNvbWUgZXJyb3IgbWVzc2FnZXMgaGF2ZSBhIHNlY29uZCBjb21wb25lbnQgd2hpY2ggZGVzY3JpYmVzCisgICAgdGhlIG1lbW9yeSBhZGRyZXNzIGludm9sdmVkLiAgVGhpcyBvbmUgc2hvd3MgdGhhdCB0aGUgd3JpdHRlbiBtZW1vcnkKKyAgICBpcyBqdXN0IHBhc3QgdGhlIGVuZCBvZiBhIGJsb2NrIGFsbG9jYXRlZCB3aXRoIG1hbGxvYygpIG9uIGxpbmUgNSBvZgorICAgIGV4YW1wbGUuYy48L3A+PC9saT4KKzwvdWw+PC9kaXY+Cis8cD5JdCdzIHdvcnRoIGZpeGluZyBlcnJvcnMgaW4gdGhlIG9yZGVyIHRoZXkgYXJlIHJlcG9ydGVkLCBhcworbGF0ZXIgZXJyb3JzIGNhbiBiZSBjYXVzZWQgYnkgZWFybGllciBlcnJvcnMuICBGYWlsaW5nIHRvIGRvIHRoaXMgaXMgYQorY29tbW9uIGNhdXNlIG9mIGRpZmZpY3VsdHkgd2l0aCBNZW1jaGVjay48L3A+Cis8cD5NZW1vcnkgbGVhayBtZXNzYWdlcyBsb29rIGxpa2UgdGhpczo8L3A+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CisgID09MTkxODI9PSA0MCBieXRlcyBpbiAxIGJsb2NrcyBhcmUgZGVmaW5pdGVseSBsb3N0IGluIGxvc3MgcmVjb3JkIDEgb2YgMQorICA9PTE5MTgyPT0gICAgYXQgMHgxQjhGRjVDRDogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOjEzMCkKKyAgPT0xOTE4Mj09ICAgIGJ5IDB4ODA0ODM4NTogZiAoYS5jOjUpCisgID09MTkxODI9PSAgICBieSAweDgwNDgzQUI6IG1haW4gKGEuYzoxMSkKKzwvcHJlPgorPHA+VGhlIHN0YWNrIHRyYWNlIHRlbGxzIHlvdSB3aGVyZSB0aGUgbGVha2VkIG1lbW9yeSB3YXMgYWxsb2NhdGVkLgorTWVtY2hlY2sgY2Fubm90IHRlbGwgeW91IHdoeSB0aGUgbWVtb3J5IGxlYWtlZCwgdW5mb3J0dW5hdGVseS4KKyhJZ25vcmUgdGhlICJ2Z19yZXBsYWNlX21hbGxvYy5jIiwgdGhhdCdzIGFuIGltcGxlbWVudGF0aW9uCitkZXRhaWwuKTwvcD4KKzxwPlRoZXJlIGFyZSBzZXZlcmFsIGtpbmRzIG9mIGxlYWtzOyB0aGUgdHdvIG1vc3QgaW1wb3J0YW50CitjYXRlZ29yaWVzIGFyZTo8L3A+Cis8ZGl2IGNsYXNzPSJpdGVtaXplZGxpc3QiPjx1bCBjbGFzcz0iaXRlbWl6ZWRsaXN0IiBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOiBkaXNjOyAiPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+ImRlZmluaXRlbHkgbG9zdCI6IHlvdXIgcHJvZ3JhbSBpcyBsZWFraW5nIG1lbW9yeSAtLSBmaXgKKyAgICBpdCE8L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPiJwcm9iYWJseSBsb3N0IjogeW91ciBwcm9ncmFtIGlzIGxlYWtpbmcgbWVtb3J5LCB1bmxlc3MgeW91J3JlCisgICAgZG9pbmcgZnVubnkgdGhpbmdzIHdpdGggcG9pbnRlcnMgKHN1Y2ggYXMgbW92aW5nIHRoZW0gdG8gcG9pbnQgdG8KKyAgICB0aGUgbWlkZGxlIG9mIGEgaGVhcCBibG9jaykuPC9wPjwvbGk+Cis8L3VsPjwvZGl2PgorPHA+TWVtY2hlY2sgYWxzbyByZXBvcnRzIHVzZXMgb2YgdW5pbml0aWFsaXNlZCB2YWx1ZXMsIG1vc3QgY29tbW9ubHkgd2l0aAordGhlIG1lc3NhZ2UgIkNvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQKK3ZhbHVlKHMpIi4gIEl0IGNhbiBiZSBkaWZmaWN1bHQgdG8gZGV0ZXJtaW5lIHRoZSByb290IGNhdXNlIG9mIHRoZXNlIGVycm9ycy4KK1RyeSB1c2luZyB0aGUgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS10cmFjay1vcmlnaW5zPXllczwvY29kZT4gdG8gZ2V0IGV4dHJhIGluZm9ybWF0aW9uLgorVGhpcyBtYWtlcyBNZW1jaGVjayBydW4gc2xvd2VyLCBidXQgdGhlIGV4dHJhIGluZm9ybWF0aW9uIHlvdSBnZXQgb2Z0ZW4KK3NhdmVzIGEgbG90IG9mIHRpbWUgZmlndXJpbmcgb3V0IHdoZXJlIHRoZSB1bmluaXRpYWxpc2VkIHZhbHVlcyBhcmUgY29taW5nCitmcm9tLjwvcD4KKzxwPklmIHlvdSBkb24ndCB1bmRlcnN0YW5kIGFuIGVycm9yIG1lc3NhZ2UsIHBsZWFzZSBjb25zdWx0Cis8YSBjbGFzcz0ieHJlZiIgaHJlZj0ibWMtbWFudWFsLmh0bWwjbWMtbWFudWFsLmVycm9ybXNncyIgdGl0bGU9IjQuMi6gRXhwbGFuYXRpb24gb2YgZXJyb3IgbWVzc2FnZXMgZnJvbSBNZW1jaGVjayI+RXhwbGFuYXRpb24gb2YgZXJyb3IgbWVzc2FnZXMgZnJvbSBNZW1jaGVjazwvYT4gaW4gdGhlIDxhIGNsYXNzPSJ4cmVmIiBocmVmPSJtYW51YWwuaHRtbCIgdGl0bGU9IlZhbGdyaW5kIFVzZXIgTWFudWFsIj5WYWxncmluZCBVc2VyIE1hbnVhbDwvYT4KK3doaWNoIGhhcyBleGFtcGxlcyBvZiBhbGwgdGhlIGVycm9yIG1lc3NhZ2VzIE1lbWNoZWNrIHByb2R1Y2VzLjwvcD4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDEiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj4KKzxhIG5hbWU9InF1aWNrLXN0YXJ0LmNhdmVhdHMiPjwvYT41LqBDYXZlYXRzPC9oMj48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPk1lbWNoZWNrIGlzIG5vdCBwZXJmZWN0OyAgaXQgb2NjYXNpb25hbGx5IHByb2R1Y2VzIGZhbHNlIHBvc2l0aXZlcywKK2FuZCB0aGVyZSBhcmUgbWVjaGFuaXNtcyBmb3Igc3VwcHJlc3NpbmcgdGhlc2UgKHNlZSAKKzxhIGNsYXNzPSJ4cmVmIiBocmVmPSJtYW51YWwtY29yZS5odG1sI21hbnVhbC1jb3JlLnN1cHByZXNzIiB0aXRsZT0iMi41LqBTdXBwcmVzc2luZyBlcnJvcnMiPlN1cHByZXNzaW5nIGVycm9yczwvYT4gaW4gdGhlIDxhIGNsYXNzPSJ4cmVmIiBocmVmPSJtYW51YWwuaHRtbCIgdGl0bGU9IlZhbGdyaW5kIFVzZXIgTWFudWFsIj5WYWxncmluZCBVc2VyIE1hbnVhbDwvYT4pLgorSG93ZXZlciwgaXQgaXMgdHlwaWNhbGx5IHJpZ2h0IDk5JSBvZiB0aGUgdGltZSwgc28geW91IHNob3VsZCBiZSB3YXJ5IG9mCitpZ25vcmluZyBpdHMgZXJyb3IgbWVzc2FnZXMuICBBZnRlciBhbGwsIHlvdSB3b3VsZG4ndCBpZ25vcmUgd2FybmluZworbWVzc2FnZXMgcHJvZHVjZWQgYnkgYSBjb21waWxlciwgcmlnaHQ/ICBUaGUgc3VwcHJlc3Npb24gbWVjaGFuaXNtIGlzCithbHNvIHVzZWZ1bCBpZiBNZW1jaGVjayBpcyByZXBvcnRpbmcgZXJyb3JzIGluIGxpYnJhcnkgY29kZSB0aGF0IHlvdQorY2Fubm90IGNoYW5nZS4gIFRoZSBkZWZhdWx0IHN1cHByZXNzaW9uIHNldCBoaWRlcyBhIGxvdCBvZiB0aGVzZSwgYnV0IHlvdQorbWF5IGNvbWUgYWNyb3NzIG1vcmUuPC9wPgorPHA+TWVtY2hlY2sgY2Fubm90IGRldGVjdCBldmVyeSBtZW1vcnkgZXJyb3IgeW91ciBwcm9ncmFtIGhhcy4KK0ZvciBleGFtcGxlLCBpdCBjYW4ndCBkZXRlY3Qgb3V0LW9mLXJhbmdlIHJlYWRzIG9yIHdyaXRlcyB0byBhcnJheXMKK3RoYXQgYXJlIGFsbG9jYXRlZCBzdGF0aWNhbGx5IG9yIG9uIHRoZSBzdGFjay4gIEJ1dCBpdCBzaG91bGQgZGV0ZWN0IG1hbnkKK2Vycm9ycyB0aGF0IGNvdWxkIGNyYXNoIHlvdXIgcHJvZ3JhbSAoZWcuIGNhdXNlIGEgc2VnbWVudGF0aW9uCitmYXVsdCkuPC9wPgorPHA+VHJ5IHRvIG1ha2UgeW91ciBwcm9ncmFtIHNvIGNsZWFuIHRoYXQgTWVtY2hlY2sgcmVwb3J0cyBubworZXJyb3JzLiAgT25jZSB5b3UgYWNoaWV2ZSB0aGlzIHN0YXRlLCBpdCBpcyBtdWNoIGVhc2llciB0byBzZWUgd2hlbgorY2hhbmdlcyB0byB0aGUgcHJvZ3JhbSBjYXVzZSBNZW1jaGVjayB0byByZXBvcnQgbmV3IGVycm9ycy4KK0V4cGVyaWVuY2UgZnJvbSBzZXZlcmFsIHllYXJzIG9mIE1lbWNoZWNrIHVzZSBzaG93cyB0aGF0IGl0IGlzCitwb3NzaWJsZSB0byBtYWtlIGV2ZW4gaHVnZSBwcm9ncmFtcyBydW4gTWVtY2hlY2stY2xlYW4uICBGb3IgZXhhbXBsZSwKK2xhcmdlIHBhcnRzIG9mIEtERSwgT3Blbk9mZmljZS5vcmcgYW5kIEZpcmVmb3ggYXJlIE1lbWNoZWNrLWNsZWFuLCBvciB2ZXJ5CitjbG9zZSB0byBpdC48L3A+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QxIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+Cis8YSBuYW1lPSJxdWljay1zdGFydC5pbmZvIj48L2E+Ni6gTW9yZSBpbmZvcm1hdGlvbjwvaDI+PC9kaXY+PC9kaXY+PC9kaXY+Cis8cD5QbGVhc2UgY29uc3VsdCB0aGUgPGEgY2xhc3M9InhyZWYiIGhyZWY9IkZBUS5odG1sIiB0aXRsZT0iVmFsZ3JpbmQgRkFRIj5WYWxncmluZCBGQVE8L2E+IGFuZCB0aGUgCis8YSBjbGFzcz0ieHJlZiIgaHJlZj0ibWFudWFsLmh0bWwiIHRpdGxlPSJWYWxncmluZCBVc2VyIE1hbnVhbCI+VmFsZ3JpbmQgVXNlciBNYW51YWw8L2E+LCB3aGljaCBoYXZlIG11Y2ggbW9yZSBpbmZvcm1hdGlvbi4gIE5vdGUgdGhhdAordGhlIG90aGVyIHRvb2xzIGluIHRoZSBWYWxncmluZCBkaXN0cmlidXRpb24gY2FuIGJlIGludm9rZWQgd2l0aCB0aGUKKzxjb2RlIGNsYXNzPSJvcHRpb24iPi0tdG9vbDwvY29kZT4gb3B0aW9uLjwvcD4KKzwvZGl2PgorPC9kaXY+Cis8ZGl2PgorPGJyPjx0YWJsZSBjbGFzcz0ibmF2IiB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjMiIGNlbGxwYWRkaW5nPSIyIiBib3JkZXI9IjAiIHN1bW1hcnk9Ik5hdmlnYXRpb24gZm9vdGVyIj4KKzx0cj4KKzx0ZCByb3dzcGFuPSIyIiB3aWR0aD0iNDAlIiBhbGlnbj0ibGVmdCI+Cis8YSBhY2Nlc3NrZXk9InAiIGhyZWY9IlF1aWNrU3RhcnQuaHRtbCI+Jmx0OyZsdDugVGhlIFZhbGdyaW5kIFF1aWNrIFN0YXJ0IEd1aWRlPC9hPqA8L3RkPgorPHRkIHdpZHRoPSIyMCUiIGFsaWduPSJjZW50ZXIiPjxhIGFjY2Vzc2tleT0idSIgaHJlZj0iUXVpY2tTdGFydC5odG1sIj5VcDwvYT48L3RkPgorPHRkIHJvd3NwYW49IjIiIHdpZHRoPSI0MCUiIGFsaWduPSJyaWdodCI+oDxhIGFjY2Vzc2tleT0ibiIgaHJlZj0ibWFudWFsLmh0bWwiPlZhbGdyaW5kIFVzZXIgTWFudWFsoCZndDsmZ3Q7PC9hPgorPC90ZD4KKzwvdHI+Cis8dHI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJjZW50ZXIiPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iaW5kZXguaHRtbCI+SG9tZTwvYT48L3RkPjwvdHI+Cis8L3RhYmxlPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9kb2NzL2h0bWwvc2ctbWFudWFsLmh0bWwgYi9kb2NzL2h0bWwvc2ctbWFudWFsLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWM5NmFiOQotLS0gL2Rldi9udWxsCisrKyBiL2RvY3MvaHRtbC9zZy1tYW51YWwuaHRtbApAQCAtMCwwICsxLDI2NCBAQAorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiPgorPHRpdGxlPjExLqBTR0NoZWNrOiBhbiBleHBlcmltZW50YWwgc3RhY2sgYW5kIGdsb2JhbCBhcnJheSBvdmVycnVuIGRldGVjdG9yPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9InZnX2Jhc2ljLmNzcyI+Cis8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkRvY0Jvb2sgWFNMIFN0eWxlc2hlZXRzIFYxLjc4LjEiPgorPGxpbmsgcmVsPSJob21lIiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0iVmFsZ3JpbmQgRG9jdW1lbnRhdGlvbiI+Cis8bGluayByZWw9InVwIiBocmVmPSJtYW51YWwuaHRtbCIgdGl0bGU9IlZhbGdyaW5kIFVzZXIgTWFudWFsIj4KKzxsaW5rIHJlbD0icHJldiIgaHJlZj0iZGgtbWFudWFsLmh0bWwiIHRpdGxlPSIxMC6gREhBVDogYSBkeW5hbWljIGhlYXAgYW5hbHlzaXMgdG9vbCI+Cis8bGluayByZWw9Im5leHQiIGhyZWY9ImJidi1tYW51YWwuaHRtbCIgdGl0bGU9IjEyLqBCQlY6IGFuIGV4cGVyaW1lbnRhbCBiYXNpYyBibG9jayB2ZWN0b3IgZ2VuZXJhdGlvbiB0b29sIj4KKzwvaGVhZD4KKzxib2R5IGJnY29sb3I9IndoaXRlIiB0ZXh0PSJibGFjayIgbGluaz0iIzAwMDBGRiIgdmxpbms9IiM4NDAwODQiIGFsaW5rPSIjMDAwMEZGIj4KKzxkaXY+PHRhYmxlIGNsYXNzPSJuYXYiIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0iMyIgY2VsbHBhZGRpbmc9IjMiIGJvcmRlcj0iMCIgc3VtbWFyeT0iTmF2aWdhdGlvbiBoZWFkZXIiPjx0cj4KKzx0ZCB3aWR0aD0iMjJweCIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPjxhIGFjY2Vzc2tleT0icCIgaHJlZj0iZGgtbWFudWFsLmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvcHJldi5wbmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIyMSIgYm9yZGVyPSIwIiBhbHQ9IlByZXYiPjwvYT48L3RkPgorPHRkIHdpZHRoPSIyNXB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJtYW51YWwuaHRtbCI+PGltZyBzcmM9ImltYWdlcy91cC5wbmciIHdpZHRoPSIyMSIgaGVpZ2h0PSIxOCIgYm9yZGVyPSIwIiBhbHQ9IlVwIj48L2E+PC90ZD4KKzx0ZCB3aWR0aD0iMzFweCIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iaW5kZXguaHRtbCI+PGltZyBzcmM9ImltYWdlcy9ob21lLnBuZyIgd2lkdGg9IjI3IiBoZWlnaHQ9IjIwIiBib3JkZXI9IjAiIGFsdD0iVXAiPjwvYT48L3RkPgorPHRoIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj5WYWxncmluZCBVc2VyIE1hbnVhbDwvdGg+Cis8dGQgd2lkdGg9IjIycHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImJidi1tYW51YWwuaHRtbCI+PGltZyBzcmM9ImltYWdlcy9uZXh0LnBuZyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjIxIiBib3JkZXI9IjAiIGFsdD0iTmV4dCI+PC9hPjwvdGQ+Cis8L3RyPjwvdGFibGU+PC9kaXY+Cis8ZGl2IGNsYXNzPSJjaGFwdGVyIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMSBjbGFzcz0idGl0bGUiPgorPGEgbmFtZT0ic2ctbWFudWFsIj48L2E+MTEuoFNHQ2hlY2s6IGFuIGV4cGVyaW1lbnRhbCBzdGFjayBhbmQgZ2xvYmFsIGFycmF5IG92ZXJydW4gZGV0ZWN0b3I8L2gxPjwvZGl2PjwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0idG9jIj4KKzxwPjxiPlRhYmxlIG9mIENvbnRlbnRzPC9iPjwvcD4KKzxkbCBjbGFzcz0idG9jIj4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9InNnLW1hbnVhbC5odG1sI3NnLW1hbnVhbC5vdmVydmlldyI+MTEuMS4gT3ZlcnZpZXc8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QxIj48YSBocmVmPSJzZy1tYW51YWwuaHRtbCNzZy1tYW51YWwub3B0aW9ucyI+MTEuMi4gU0dDaGVjayBDb21tYW5kLWxpbmUgT3B0aW9uczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9InNnLW1hbnVhbC5odG1sI3NnLW1hbnVhbC5ob3ctd29ya3Muc2ctY2hlY2tzIj4xMS4zLiBIb3cgU0dDaGVjayBXb3JrczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9InNnLW1hbnVhbC5odG1sI3NnLW1hbnVhbC5jbXAtdy1tZW1jaGVjayI+MTEuNC4gQ29tcGFyaXNvbiB3aXRoIE1lbWNoZWNrPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0ic2ctbWFudWFsLmh0bWwjc2ctbWFudWFsLmxpbWl0YXRpb25zIj4xMS41LiBMaW1pdGF0aW9uczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9InNnLW1hbnVhbC5odG1sI3NnLW1hbnVhbC50b2RvLXVzZXItdmlzaWJsZSI+MTEuNi4gU3RpbGwgVG8gRG86IFVzZXItdmlzaWJsZSBGdW5jdGlvbmFsaXR5PC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0ic2ctbWFudWFsLmh0bWwjc2ctbWFudWFsLnRvZG8taW1wbGVtZW50YXRpb24iPjExLjcuIFN0aWxsIFRvIERvOiBJbXBsZW1lbnRhdGlvbiBUaWR5aW5nPC9hPjwvc3Bhbj48L2R0PgorPC9kbD4KKzwvZGl2PgorPHA+VG8gdXNlIHRoaXMgdG9vbCwgeW91IG11c3Qgc3BlY2lmeQorPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS10b29sPWV4cC1zZ2NoZWNrPC9jb2RlPiBvbiB0aGUgVmFsZ3JpbmQKK2NvbW1hbmQgbGluZS48L3A+Cis8ZGl2IGNsYXNzPSJzZWN0MSI+Cis8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPgorPGEgbmFtZT0ic2ctbWFudWFsLm92ZXJ2aWV3Ij48L2E+MTEuMS6gT3ZlcnZpZXc8L2gyPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+U0dDaGVjayBpcyBhIHRvb2wgZm9yIGZpbmRpbmcgb3ZlcnJ1bnMgb2Ygc3RhY2sgYW5kIGdsb2JhbAorYXJyYXlzLiAgSXQgd29ya3MgYnkgdXNpbmcgYSBoZXVyaXN0aWMgYXBwcm9hY2ggZGVyaXZlZCBmcm9tIGFuCitvYnNlcnZhdGlvbiBhYm91dCB0aGUgbGlrZWx5IGZvcm1zIG9mIHN0YWNrIGFuZCBnbG9iYWwgYXJyYXkgYWNjZXNzZXMuCis8L3A+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QxIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+Cis8YSBuYW1lPSJzZy1tYW51YWwub3B0aW9ucyI+PC9hPjExLjIuoFNHQ2hlY2sgQ29tbWFuZC1saW5lIE9wdGlvbnM8L2gyPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+PGEgbmFtZT0ic2cub3B0cy5saXN0Ij48L2E+VGhlcmUgYXJlIG5vIFNHQ2hlY2stc3BlY2lmaWMgY29tbWFuZC1saW5lIG9wdGlvbnMgYXQgcHJlc2VudC48L3A+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QxIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+Cis8YSBuYW1lPSJzZy1tYW51YWwuaG93LXdvcmtzLnNnLWNoZWNrcyI+PC9hPjExLjMuoEhvdyBTR0NoZWNrIFdvcmtzPC9oMj48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPldoZW4gYSBzb3VyY2UgZmlsZSBpcyBjb21waWxlZAord2l0aCA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tZzwvY29kZT4sIHRoZSBjb21waWxlciBhdHRhY2hlcyBEV0FSRjMKK2RlYnVnZ2luZyBpbmZvcm1hdGlvbiB3aGljaCBkZXNjcmliZXMgdGhlIGxvY2F0aW9uIG9mIGFsbCBzdGFjayBhbmQKK2dsb2JhbCBhcnJheXMgaW4gdGhlIGZpbGUuPC9wPgorPHA+Q2hlY2tpbmcgb2YgYWNjZXNzZXMgdG8gc3VjaCBhcnJheXMgd291bGQgdGhlbiBiZSByZWxhdGl2ZWx5CitzaW1wbGUsIGlmIHRoZSBjb21waWxlciBjb3VsZCBhbHNvIHRlbGwgdXMgd2hpY2ggYXJyYXkgKGlmIGFueSkgZWFjaAorbWVtb3J5IHJlZmVyZW5jaW5nIGluc3RydWN0aW9uIHdhcyBzdXBwb3NlZCB0byBhY2Nlc3MuICBVbmZvcnR1bmF0ZWx5Cit0aGUgRFdBUkYzIGRlYnVnZ2luZyBmb3JtYXQgZG9lcyBub3QgcHJvdmlkZSBhIHdheSB0byByZXByZXNlbnQgc3VjaAoraW5mb3JtYXRpb24sIHNvIHdlIGhhdmUgdG8gcmVzb3J0IHRvIGEgaGV1cmlzdGljIHRlY2huaXF1ZSB0bworYXBwcm94aW1hdGUgaXQuICBUaGUga2V5IG9ic2VydmF0aW9uIGlzIHRoYXQKKyAgIDxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPgorICAgaWYgYSBtZW1vcnkgcmVmZXJlbmNpbmcgaW5zdHJ1Y3Rpb24gYWNjZXNzZXMgaW5zaWRlIGEgc3RhY2sgb3IKKyAgIGdsb2JhbCBhcnJheSBvbmNlLCB0aGVuIGl0IGlzIGhpZ2hseSBsaWtlbHkgdG8gYWx3YXlzIGFjY2VzcyB0aGF0CisgICBzYW1lIGFycmF5PC9lbT48L3NwYW4+LjwvcD4KKzxwPlRvIHNlZSBob3cgdGhpcyBtaWdodCBiZSB1c2VmdWwsIGNvbnNpZGVyIHRoZSBmb2xsb3dpbmcgYnVnZ3kKK2ZyYWdtZW50OjwvcD4KKzxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KKyAgIHsgaW50IGksIGFbMTBdOyAgLy8gYm90aCBhcmUgYXV0byB2YXJzCisgICAgIGZvciAoaSA9IDA7IGkgJmx0Oz0gMTA7IGkrKykKKyAgICAgICAgYVtpXSA9IDQyOworICAgfQorPC9wcmU+Cis8cD5BdCBydW4gdGltZSB3ZSB3aWxsIGtub3cgdGhlIHByZWNpc2UgYWRkcmVzcworb2YgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5hW108L2NvZGU+IG9uIHRoZSBzdGFjaywgYW5kIHNvIHdlIGNhbgorb2JzZXJ2ZSB0aGF0IHRoZSBmaXJzdCBzdG9yZSByZXN1bHRpbmcgZnJvbSA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmFbaV0gPQorNDI8L2NvZGU+IHdyaXRlcyA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmFbXTwvY29kZT4sIGFuZAord2Ugd2lsbCAoY29ycmVjdGx5KSBhc3N1bWUgdGhhdCB0aGF0IGluc3RydWN0aW9uIGlzIGludGVuZGVkIGFsd2F5cyB0bworYWNjZXNzIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+YVtdPC9jb2RlPi4gIFRoZW4sIG9uIHRoZSAxMXRoCitpdGVyYXRpb24sIGl0IGFjY2Vzc2VzIHNvbWV3aGVyZSBlbHNlLCBwb3NzaWJseSBhIGRpZmZlcmVudCBsb2NhbCwKK3Bvc3NpYmx5IGFuIHVuLWFjY291bnRlZCBmb3IgYXJlYSBvZiB0aGUgc3RhY2sgKGVnLCBzcGlsbCBzbG90KSwgc28KK1NHQ2hlY2sgcmVwb3J0cyBhbiBlcnJvci48L3A+Cis8cD5UaGVyZSBpcyBhbiBpbXBvcnRhbnQgY2F2ZWF0LjwvcD4KKzxwPkltYWdpbmUgYSBmdW5jdGlvbiBzdWNoIGFzIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+bWVtY3B5PC9jb2RlPiwgd2hpY2ggaXMgdXNlZAordG8gcmVhZCBhbmQgd3JpdGUgbWFueSBkaWZmZXJlbnQgYXJlYXMgb2YgbWVtb3J5IG92ZXIgdGhlIGxpZmV0aW1lIG9mIHRoZQorcHJvZ3JhbS4gIElmIHdlIGluc2lzdCB0aGF0IHRoZSByZWFkIGFuZCB3cml0ZSBpbnN0cnVjdGlvbnMgaW4gaXRzIG1lbW9yeQorY29weWluZyBsb29wIG9ubHkgZXZlciBhY2Nlc3Mgb25lIHBhcnRpY3VsYXIgc3RhY2sgb3IgZ2xvYmFsIHZhcmlhYmxlLCB3ZQord2lsbCBiZSBmbG9vZGVkIHdpdGggZXJyb3JzIHJlc3VsdGluZyBmcm9tIGNhbGxzIHRvCis8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPm1lbWNweTwvY29kZT4uPC9wPgorPHA+VG8gYXZvaWQgdGhpcyBwcm9ibGVtLCBTR0NoZWNrIGluc3RhbnRpYXRlcyBmcmVzaCBsaWtlbHktdGFyZ2V0CityZWNvcmRzIGZvciBlYWNoIGVudHJ5IHRvIGEgZnVuY3Rpb24sIGFuZCBkaXNjYXJkcyB0aGVtIG9uIGV4aXQuICBUaGlzCithbGxvd3MgZGV0ZWN0aW9uIG9mIGNhc2VzIHdoZXJlIChlLmcuKSA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPm1lbWNweTwvY29kZT4KK292ZXJmbG93cyBpdHMgc291cmNlIG9yIGRlc3RpbmF0aW9uIGJ1ZmZlcnMgZm9yIGFueSBzcGVjaWZpYyBjYWxsLCBidXQKK2RvZXMgbm90IGNhcnJ5IGFueSByZXN0cmljdGlvbiBmcm9tIG9uZSBjYWxsIHRvIHRoZSBuZXh0LiAgSW5kZWVkLAorbXVsdGlwbGUgdGhyZWFkcyBtYXkgbWFrZSBtdWx0aXBsZSBzaW11bHRhbmVvdXMgY2FsbHMgdG8KKyhlLmcuKSA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPm1lbWNweTwvY29kZT4gd2l0aG91dCBtdXR1YWwgaW50ZXJmZXJlbmNlLjwvcD4KKzxwPkl0IGlzIGltcG9ydGFudCB0byBub3RlIHRoYXQgdGhlIGFzc29jaWF0aW9uIGlzIGRvbmUgYmV0d2VlbgorICBhIDxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPmJpbmFyeSBpbnN0cnVjdGlvbjwvZW0+PC9zcGFuPiBhbmQgYW4gYXJyYXksIHRoZQorICA8c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT5maXJzdCB0aW1lPC9lbT48L3NwYW4+IHRoaXMgYmluYXJ5IGluc3RydWN0aW9uIGFjY2Vzc2VzIGFuCisgIGFycmF5IGR1cmluZyBhIGZ1bmN0aW9uIGNhbGwuICBXaGVuIHRoZSBzYW1lIGluc3RydWN0aW9uIGlzIGV4ZWN1dGVkCisgIGFnYWluIGR1cmluZyB0aGUgc2FtZSBmdW5jdGlvbiBjYWxsLCB0aGVuIFNHQ2hlY2sgbWlnaHQgcmVwb3J0IGEKKyAgcHJvYmxlbSwgaWYgdGhlc2UgZnVydGhlciBleGVjdXRpb25zIGFyZSBub3QgYWNjZXNzaW5nIHRoZSBzYW1lCisgIGFycmF5LiBUaGlzIHRlY2huaXF1ZSBjYXVzZXMgc2V2ZXJhbCBsaW1pdGF0aW9ucyBpbiBTR0NoZWNrLCBzZWUKKyAgPGEgY2xhc3M9InhyZWYiIGhyZWY9InNnLW1hbnVhbC5odG1sI3NnLW1hbnVhbC5saW1pdGF0aW9ucyIgdGl0bGU9IjExLjUuoExpbWl0YXRpb25zIj5MaW1pdGF0aW9uczwvYT4uCis8L3A+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InNlY3QxIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+Cis8YSBuYW1lPSJzZy1tYW51YWwuY21wLXctbWVtY2hlY2siPjwvYT4xMS40LqBDb21wYXJpc29uIHdpdGggTWVtY2hlY2s8L2gyPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+U0dDaGVjayBhbmQgTWVtY2hlY2sgYXJlIGNvbXBsZW1lbnRhcnk6IHRoZWlyIGNhcGFiaWxpdGllcyBkbworbm90IG92ZXJsYXAuICBNZW1jaGVjayBwZXJmb3JtcyBib3VuZHMgY2hlY2tzIGFuZCB1c2UtYWZ0ZXItZnJlZQorY2hlY2tzIGZvciBoZWFwIGFycmF5cy4gIEl0IGFsc28gZmluZHMgdXNlcyBvZiB1bmluaXRpYWxpc2VkIHZhbHVlcworY3JlYXRlZCBieSBoZWFwIG9yIHN0YWNrIGFsbG9jYXRpb25zLiAgQnV0IGl0IGRvZXMgbm90IHBlcmZvcm0gYm91bmRzCitjaGVja2luZyBmb3Igc3RhY2sgb3IgZ2xvYmFsIGFycmF5cy48L3A+Cis8cD5TR0NoZWNrLCBvbiB0aGUgb3RoZXIgaGFuZCwgZG9lcyBkbyBib3VuZHMgY2hlY2tpbmcgZm9yIHN0YWNrIG9yCitnbG9iYWwgYXJyYXlzLCBidXQgaXQgZG9lc24ndCBkbyBhbnl0aGluZyBlbHNlLjwvcD4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDEiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj4KKzxhIG5hbWU9InNnLW1hbnVhbC5saW1pdGF0aW9ucyI+PC9hPjExLjUuoExpbWl0YXRpb25zPC9oMj48L2Rpdj48L2Rpdj48L2Rpdj4KKzxwPlRoaXMgaXMgYW4gZXhwZXJpbWVudGFsIHRvb2wsIHdoaWNoIHJlbGllcyByYXRoZXIgdG9vIGhlYXZpbHkgb24gc29tZQorbm90LWFzLXJvYnVzdC1hcy1JLXdvdWxkLWxpa2UgYXNzdW1wdGlvbnMgb24gdGhlIGJlaGF2aW91ciBvZiBjb3JyZWN0Citwcm9ncmFtcy4gIFRoZXJlIGFyZSBhIG51bWJlciBvZiBsaW1pdGF0aW9ucyB3aGljaCB5b3Ugc2hvdWxkIGJlIGF3YXJlCitvZi48L3A+Cis8ZGl2IGNsYXNzPSJpdGVtaXplZGxpc3QiPjx1bCBjbGFzcz0iaXRlbWl6ZWRsaXN0IiBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOiBkaXNjOyAiPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+Cis8cD5GYWxzZSBuZWdhdGl2ZXMgKG1pc3NlZCBlcnJvcnMpOiBpdCBmb2xsb3dzIGZyb20gdGhlCisgICBkZXNjcmlwdGlvbiBhYm92ZSAoPGEgY2xhc3M9InhyZWYiIGhyZWY9InNnLW1hbnVhbC5odG1sI3NnLW1hbnVhbC5ob3ctd29ya3Muc2ctY2hlY2tzIiB0aXRsZT0iMTEuMy6gSG93IFNHQ2hlY2sgV29ya3MiPkhvdyBTR0NoZWNrIFdvcmtzPC9hPikKKyAgIHRoYXQgdGhlIGZpcnN0IGFjY2VzcyBieSBhIG1lbW9yeSByZWZlcmVuY2luZyBpbnN0cnVjdGlvbiB0byBhCisgICBzdGFjayBvciBnbG9iYWwgYXJyYXkgY3JlYXRlcyBhbiBhc3NvY2lhdGlvbiBiZXR3ZWVuIHRoYXQKKyAgIGluc3RydWN0aW9uIGFuZCB0aGUgYXJyYXksIHdoaWNoIGlzIGNoZWNrZWQgb24gc3Vic2VxdWVudCBhY2Nlc3NlcworICAgYnkgdGhhdCBpbnN0cnVjdGlvbiwgdW50aWwgdGhlIGNvbnRhaW5pbmcgZnVuY3Rpb24gZXhpdHMuICBIZW5jZSwKKyAgIHRoZSBmaXJzdCBhY2Nlc3MgYnkgYW4gaW5zdHJ1Y3Rpb24gdG8gYW4gYXJyYXkgKGluIGFueSBnaXZlbgorICAgZnVuY3Rpb24gaW5zdGFudGlhdGlvbikgaXMgbm90IGNoZWNrZWQgZm9yIG92ZXJydW4sIHNpbmNlIFNHQ2hlY2sKKyAgIHVzZXMgdGhhdCBhcyB0aGUgImV4YW1wbGUiIG9mIGhvdyBzdWJzZXF1ZW50IGFjY2Vzc2VzIHNob3VsZAorICAgYmVoYXZlLjwvcD4KKzxwPkl0IGFsc28gbWVhbnMgdGhhdCBlcnJvcnMgd2lsbCBub3QgYmUgZm91bmQgaW4gYW4gaW5zdHJ1Y3Rpb24KKyAgICAgZXhlY3V0ZWQgb25seSBvbmNlIChlLmcuIGJlY2F1c2UgdGhpcyBpbnN0cnVjdGlvbiBpcyBub3QgaW4gYSBsb29wLAorICAgICBvciB0aGUgbG9vcCBpcyBleGVjdXRlZCBvbmx5IG9uY2UpLjwvcD4KKzwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj4KKzxwPkZhbHNlIHBvc2l0aXZlcyAoZmFsc2UgZXJyb3JzKTogc2ltaWxhcmx5LCBhbmQgbW9yZSBzZXJpb3VzLAorICAgaXQgaXMgY2xlYXJseSBwb3NzaWJsZSB0byB3cml0ZSBsZWdpdGltYXRlIHBpZWNlcyBvZiBjb2RlIHdoaWNoCisgICBicmVhayB0aGUgYmFzaWMgYXNzdW1wdGlvbiB1cG9uIHdoaWNoIHRoZSBjaGVja2luZyBhbGdvcml0aG0KKyAgIGRlcGVuZHMuICBGb3IgZXhhbXBsZTo8L3A+Cis8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CisgIHsgaW50IGFbMTBdLCBiWzEwXSwgKnAsIGk7CisgICAgZm9yIChpID0gMDsgaSAmbHQ7IDEwOyBpKyspIHsKKyAgICAgICBwID0gLyogYXJiaXRyYXJ5IGNvbmRpdGlvbiAqLyAgPyAmYW1wO2FbaV0gIDogJmFtcDtiW2ldOworICAgICAgICpwID0gNDI7CisgICAgfQorICB9Cis8L3ByZT4KKzxwPkluIHRoaXMgY2FzZSB0aGUgc3RvcmUgc29tZXRpbWVzCisgICBhY2Nlc3NlcyA8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmFbXTwvY29kZT4gYW5kCisgICBzb21ldGltZXMgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5iW108L2NvZGU+LCBidXQgaW4gbm8gY2FzZXMgaXMKKyAgIHRoZSBhZGRyZXNzZWQgYXJyYXkgb3ZlcnJ1bi4gIE5ldmVydGhlbGVzcyB0aGUgY2hhbmdlIGluIHRhcmdldAorICAgd2lsbCBjYXVzZSBhbiBlcnJvciB0byBiZSByZXBvcnRlZC48L3A+Cis8cD5JdCBpcyBoYXJkIHRvIHNlZSBob3cgdG8gZ2V0IGFyb3VuZCB0aGlzIHByb2JsZW0uICBUaGUgb25seQorICAgbWl0aWdhdGluZyBmYWN0b3IgaXMgdGhhdCBzdWNoIGNvbnN0cnVjdGlvbnMgYXBwZWFyIHZlcnkgcmFyZSwgYXQKKyAgIGxlYXN0IGp1ZGdpbmcgZnJvbSB0aGUgcmVzdWx0cyB1c2luZyB0aGUgdG9vbCBzbyBmYXIuICBTdWNoIGEKKyAgIGNvbnN0cnVjdGlvbiBhcHBlYXJzIG9ubHkgb25jZSBpbiB0aGUgVmFsZ3JpbmQgc291cmNlcyAocnVubmluZworICAgVmFsZ3JpbmQgb24gVmFsZ3JpbmQpIGFuZCBwZXJoYXBzIHR3byBvciB0aHJlZSB0aW1lcyBmb3IgYSBzdGFydAorICAgYW5kIGV4aXQgb2YgRmlyZWZveC4gIFRoZSBiZXN0IHRoYXQgY2FuIGJlIGRvbmUgaXMgdG8gc3VwcHJlc3MgdGhlCisgICBlcnJvcnMuPC9wPgorPC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPlBlcmZvcm1hbmNlOiBTR0NoZWNrIGhhcyB0byByZWFkIGFsbCBvZgorICAgdGhlIERXQVJGMyB0eXBlIGFuZCB2YXJpYWJsZSBpbmZvcm1hdGlvbiBvbiB0aGUgZXhlY3V0YWJsZSBhbmQgaXRzCisgICBzaGFyZWQgb2JqZWN0cy4gIFRoaXMgaXMgY29tcHV0YXRpb25hbGx5IGV4cGVuc2l2ZSBhbmQgbWFrZXMKKyAgIHN0YXJ0dXAgcXVpdGUgc2xvdy4gIFlvdSBjYW4gZXhwZWN0IGRlYnVnaW5mbyByZWFkaW5nIHRpbWUgdG8gYmUgaW4KKyAgIHRoZSByZWdpb24gb2YgYSBtaW51dGUgZm9yIGFuIE9wZW5PZmZpY2Ugc2l6ZWQgYXBwbGljYXRpb24sIG9uIGEKKyAgIDIuNCBHSHogQ29yZSAyIG1hY2hpbmUuICBSZWFkaW5nIHRoaXMgaW5mb3JtYXRpb24gYWxzbyByZXF1aXJlcyBhCisgICBsb3Qgb2YgbWVtb3J5LiAgVG8gbWFrZSBpdCB2aWFibGUsIFNHQ2hlY2sgZ29lcyB0byBjb25zaWRlcmFibGUKKyAgIHRyb3VibGUgdG8gY29tcHJlc3MgdGhlIGluLW1lbW9yeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgRFdBUkYzCisgICBkYXRhLCB3aGljaCBpcyB3aHkgdGhlIHByb2Nlc3Mgb2YgcmVhZGluZyBpdCBhcHBlYXJzIHNsb3cuPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5QZXJmb3JtYW5jZTogU0dDaGVjayBydW5zIHNsb3dlciB0aGFuIE1lbWNoZWNrLiAgVGhpcyBpcworICAgcGFydGx5IGR1ZSB0byBhIGxhY2sgb2YgdHVuaW5nLCBidXQgcGFydGx5IGR1ZSB0byBhbGdvcml0aG1pYworICAgZGlmZmljdWx0aWVzLiAgVGhlCisgICBzdGFjayBhbmQgZ2xvYmFsIGNoZWNrcyBjYW4gc29tZXRpbWVzIHJlcXVpcmUgYSBudW1iZXIgb2YgcmFuZ2UKKyAgIGNoZWNrcyBwZXIgbWVtb3J5IGFjY2VzcywgYW5kIHRoZXNlIGFyZSBkaWZmaWN1bHQgdG8gc2hvcnQtY2lyY3VpdCwKKyAgIGRlc3BpdGUgY29uc2lkZXJhYmxlIGVmZm9ydHMgaGF2aW5nIGJlZW4gbWFkZS4gIEEKKyAgIHJlZGVzaWduIGFuZCByZWltcGxlbWVudGF0aW9uIGNvdWxkIHBvdGVudGlhbGx5IG1ha2UgaXQgbXVjaCBmYXN0ZXIuCisgICA8L3A+PC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPgorPHA+Q292ZXJhZ2U6IFN0YWNrIGFuZCBnbG9iYWwgY2hlY2tpbmcgaXMgZnJhZ2lsZS4gIElmIGEgc2hhcmVkCisgICBvYmplY3QgZG9lcyBub3QgaGF2ZSBkZWJ1ZyBpbmZvcm1hdGlvbiBhdHRhY2hlZCwgdGhlbiBTR0NoZWNrIHdpbGwKKyAgIG5vdCBiZSBhYmxlIHRvIGRldGVybWluZSB0aGUgYm91bmRzIG9mIGFueSBzdGFjayBvciBnbG9iYWwgYXJyYXlzCisgICBkZWZpbmVkIHdpdGhpbiB0aGF0IHNoYXJlZCBvYmplY3QsIGFuZCBzbyB3aWxsIG5vdCBiZSBhYmxlIHRvIGNoZWNrCisgICBhY2Nlc3NlcyB0byB0aGVtLiAgVGhpcyBpcyB0cnVlIGV2ZW4gd2hlbiB0aG9zZSBhcnJheXMgYXJlIGFjY2Vzc2VkCisgICBmcm9tIHNvbWUgb3RoZXIgc2hhcmVkIG9iamVjdCB3aGljaCB3YXMgY29tcGlsZWQgd2l0aCBkZWJ1ZworICAgaW5mby48L3A+Cis8cD5BdCB0aGUgbW9tZW50IFNHQ2hlY2sgYWNjZXB0cyBvYmplY3RzIGxhY2tpbmcgZGVidWdpbmZvCisgICB3aXRob3V0IGNvbW1lbnQuICBUaGlzIGlzIGRhbmdlcm91cyBhcyBpdCBjYXVzZXMgU0dDaGVjayB0bworICAgc2lsZW50bHkgc2tpcCBzdGFjayBhbmQgZ2xvYmFsIGNoZWNraW5nIGZvciBzdWNoIG9iamVjdHMuICBJdCB3b3VsZAorICAgYmUgYmV0dGVyIHRvIHByaW50IGEgd2FybmluZyBpbiBzdWNoIGNpcmN1bXN0YW5jZXMuPC9wPgorPC9saT4KKzxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPkNvdmVyYWdlOiBTR0NoZWNrIGRvZXMgbm90IGNoZWNrIHdoZXRoZXIgdGhlIGFyZWFzIHJlYWQKKyAgIG9yIHdyaXR0ZW4gYnkgc3lzdGVtIGNhbGxzIGRvIG92ZXJydW4gc3RhY2sgb3IgZ2xvYmFsIGFycmF5cy4gIFRoaXMKKyAgIHdvdWxkIGJlIGVhc3kgdG8gYWRkLjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+UGxhdGZvcm1zOiB0aGUgc3RhY2svZ2xvYmFsIGNoZWNrcyB3b24ndCB3b3JrIHByb3Blcmx5IG9uCisgICBQb3dlclBDLCBBUk0gb3IgUzM5MFggcGxhdGZvcm1zLCBvbmx5IG9uIFg4NiBhbmQgQU1ENjQgdGFyZ2V0cy4KKyAgIFRoYXQncyBiZWNhdXNlIHRoZSBzdGFjayBhbmQgZ2xvYmFsIGNoZWNraW5nIHJlcXVpcmVzIHRyYWNraW5nCisgICBmdW5jdGlvbiBjYWxscyBhbmQgZXhpdHMgcmVsaWFibHksIGFuZCB0aGVyZSdzIG5vIG9idmlvdXMgd2F5IHRvIGRvCisgICBpdCBvbiBBQklzIHRoYXQgdXNlIGEgbGluayByZWdpc3RlciBmb3IgZnVuY3Rpb24gcmV0dXJucy4KKyAgIDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+Um9idXN0bmVzczogcmVsYXRlZCB0byB0aGUgcHJldmlvdXMgcG9pbnQuICBGdW5jdGlvbgorICAgY2FsbC9leGl0IHRyYWNraW5nIGZvciBYODYgYW5kIEFNRDY0IGlzIGJlbGlldmVkIHRvIHdvcmsgcHJvcGVybHkKKyAgIGV2ZW4gaW4gdGhlIHByZXNlbmNlIG9mIGxvbmdqbXBzIHdpdGhpbiB0aGUgc2FtZSBzdGFjayAoYWx0aG91Z2gKKyAgIHRoaXMgaGFzIG5vdCBiZWVuIHRlc3RlZCkuICBIb3dldmVyLCBjb2RlIHdoaWNoIHN3aXRjaGVzIHN0YWNrcyBpcworICAgbGlrZWx5IHRvIGNhdXNlIGJyZWFrYWdlL2NoYW9zLjwvcD48L2xpPgorPC91bD48L2Rpdj4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDEiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj4KKzxhIG5hbWU9InNnLW1hbnVhbC50b2RvLXVzZXItdmlzaWJsZSI+PC9hPjExLjYuoFN0aWxsIFRvIERvOiBVc2VyLXZpc2libGUgRnVuY3Rpb25hbGl0eTwvaDI+PC9kaXY+PC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJpdGVtaXplZGxpc3QiPjx1bCBjbGFzcz0iaXRlbWl6ZWRsaXN0IiBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOiBkaXNjOyAiPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+RXh0ZW5kIHN5c3RlbSBjYWxsIGNoZWNraW5nIHRvIHdvcmsgb24gc3RhY2sgYW5kIGdsb2JhbCBhcnJheXMuPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5QcmludCBhIHdhcm5pbmcgaWYgYSBzaGFyZWQgb2JqZWN0IGRvZXMgbm90IGhhdmUgZGVidWcgaW5mbworICAgYXR0YWNoZWQsIG9yIGlmLCBmb3Igd2hhdGV2ZXIgcmVhc29uLCBkZWJ1ZyBpbmZvIGNvdWxkIG5vdCBiZQorICAgZm91bmQsIG9yIHJlYWQuPC9wPjwvbGk+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5BZGQgc29tZSBoZXVyaXN0aWMgZmlsdGVyaW5nIHRoYXQgcmVtb3ZlcyBvYnZpb3VzIGZhbHNlCisgICAgIHBvc2l0aXZlcy4gIFRoaXMgd291bGQgYmUgZWFzeSB0byBkby4gIEZvciBleGFtcGxlLCBhbiBhY2Nlc3MKKyAgICAgdHJhbnNpdGlvbiBmcm9tIGEgaGVhcCB0byBhIHN0YWNrIG9iamVjdCBhbG1vc3QgY2VydGFpbmx5IGlzbid0IGEKKyAgICAgYnVnIGFuZCBzbyBzaG91bGQgbm90IGJlIHJlcG9ydGVkIHRvIHRoZSB1c2VyLjwvcD48L2xpPgorPC91bD48L2Rpdj4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdDEiPgorPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj4KKzxhIG5hbWU9InNnLW1hbnVhbC50b2RvLWltcGxlbWVudGF0aW9uIj48L2E+MTEuNy6gU3RpbGwgVG8gRG86IEltcGxlbWVudGF0aW9uIFRpZHlpbmc8L2gyPjwvZGl2PjwvZGl2PjwvZGl2PgorPHA+SXRlbXMgbWFya2VkIENSSVRJQ0FMIGFyZSBjb25zaWRlcmVkIGltcG9ydGFudCBmb3IgY29ycmVjdG5lc3M6Citub24tZml4YWdlIG9mIHRoZW0gaXMgbGlhYmxlIHRvIGxlYWQgdG8gY3Jhc2hlcyBvciBhc3NlcnRpb24gZmFpbHVyZXMKK2luIHJlYWwgdXNlLjwvcD4KKzxkaXYgY2xhc3M9Iml0ZW1pemVkbGlzdCI+PHVsIGNsYXNzPSJpdGVtaXplZGxpc3QiIHN0eWxlPSJsaXN0LXN0eWxlLXR5cGU6IGRpc2M7ICI+Cis8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD4gc2dfbWFpbi5jOiBSZWRlc2lnbiBhbmQgcmVpbXBsZW1lbnQgdGhlIGJhc2ljIGNoZWNraW5nCisgICBhbGdvcml0aG0uICBJdCBjb3VsZCBiZSBkb25lIG11Y2ggZmFzdGVyIHRoYW4gaXQgaXMgLS0gdGhlIGN1cnJlbnQKKyAgIGltcGxlbWVudGF0aW9uIGlzbid0IHZlcnkgZ29vZC4KKyAgIDwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+IHNnX21haW4uYzogSW1wcm92ZSB0aGUgcGVyZm9ybWFuY2Ugb2YgdGhlIHN0YWNrIC8gZ2xvYmFsCisgICBjaGVja3MgYnkgZG9pbmcgc29tZSB1cC1mcm9udCBmaWx0ZXJpbmcgdG8gaWdub3JlIHJlZmVyZW5jZXMgaW4KKyAgIGFyZWFzIHdoaWNoICJvYnZpb3VzbHkiIGNhbid0IGJlIHN0YWNrIG9yIGdsb2JhbHMuICBUaGlzIHdpbGwKKyAgIHJlcXVpcmUgdXNpbmcgaW5mb3JtYXRpb24gdGhhdCBtX2FzcGFjZW1nciBrbm93cyBhYm91dCB0aGUgYWRkcmVzcworICAgc3BhY2UgbGF5b3V0LjwvcD48L2xpPgorPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+c2dfbWFpbi5jOiBmaXggY29tcHV0ZV9JSV9oYXNoIHRvIG1ha2UgaXQgYSBiaXQgbW9yZSBzZW5zaWJsZQorICAgZm9yIHBwYzMyLzY0IHRhcmdldHMgKGV4Y2VwdCB0aGF0IHNnXyBkb2Vzbid0IHdvcmsgb24gcHBjMzIvNjQKKyAgIHRhcmdldHMsIHNvIHRoaXMgaXMgYSBiaXQgYWNhZGVtaWMgYXQgdGhlIG1vbWVudCkuPC9wPjwvbGk+Cis8L3VsPjwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKzxkaXY+Cis8YnI+PHRhYmxlIGNsYXNzPSJuYXYiIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0iMyIgY2VsbHBhZGRpbmc9IjIiIGJvcmRlcj0iMCIgc3VtbWFyeT0iTmF2aWdhdGlvbiBmb290ZXIiPgorPHRyPgorPHRkIHJvd3NwYW49IjIiIHdpZHRoPSI0MCUiIGFsaWduPSJsZWZ0Ij4KKzxhIGFjY2Vzc2tleT0icCIgaHJlZj0iZGgtbWFudWFsLmh0bWwiPiZsdDsmbHQ7oDEwLqBESEFUOiBhIGR5bmFtaWMgaGVhcCBhbmFseXNpcyB0b29sPC9hPqA8L3RkPgorPHRkIHdpZHRoPSIyMCUiIGFsaWduPSJjZW50ZXIiPjxhIGFjY2Vzc2tleT0idSIgaHJlZj0ibWFudWFsLmh0bWwiPlVwPC9hPjwvdGQ+Cis8dGQgcm93c3Bhbj0iMiIgd2lkdGg9IjQwJSIgYWxpZ249InJpZ2h0Ij6gPGEgYWNjZXNza2V5PSJuIiBocmVmPSJiYnYtbWFudWFsLmh0bWwiPjEyLqBCQlY6IGFuIGV4cGVyaW1lbnRhbCBiYXNpYyBibG9jayB2ZWN0b3IgZ2VuZXJhdGlvbiB0b29soCZndDsmZ3Q7PC9hPgorPC90ZD4KKzwvdHI+Cis8dHI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJjZW50ZXIiPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iaW5kZXguaHRtbCI+SG9tZTwvYT48L3RkPjwvdHI+Cis8L3RhYmxlPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9kb2NzL2h0bWwvdGVjaC1kb2NzLmh0bWwgYi9kb2NzL2h0bWwvdGVjaC1kb2NzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjJmYzFlMAotLS0gL2Rldi9udWxsCisrKyBiL2RvY3MvaHRtbC90ZWNoLWRvY3MuaHRtbApAQCAtMCwwICsxLDk4IEBACis8aHRtbD4KKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSI+Cis8dGl0bGU+VmFsZ3JpbmQgVGVjaG5pY2FsIERvY3VtZW50YXRpb248L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0idmdfYmFzaWMuY3NzIj4KKzxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iRG9jQm9vayBYU0wgU3R5bGVzaGVldHMgVjEuNzguMSI+Cis8bGluayByZWw9ImhvbWUiIGhyZWY9ImluZGV4Lmh0bWwiIHRpdGxlPSJWYWxncmluZCBEb2N1bWVudGF0aW9uIj4KKzxsaW5rIHJlbD0idXAiIGhyZWY9ImluZGV4Lmh0bWwiIHRpdGxlPSJWYWxncmluZCBEb2N1bWVudGF0aW9uIj4KKzxsaW5rIHJlbD0icHJldiIgaHJlZj0iZmFxLmh0bWwiIHRpdGxlPSJWYWxncmluZCBGcmVxdWVudGx5IEFza2VkIFF1ZXN0aW9ucyI+Cis8bGluayByZWw9Im5leHQiIGhyZWY9ImRlc2lnbi1pbXBsLmh0bWwiIHRpdGxlPSIxLqBUaGUgRGVzaWduIGFuZCBJbXBsZW1lbnRhdGlvbiBvZiBWYWxncmluZCI+Cis8L2hlYWQ+Cis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+Cis8ZGl2Pjx0YWJsZSBjbGFzcz0ibmF2IiB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjMiIGNlbGxwYWRkaW5nPSIzIiBib3JkZXI9IjAiIHN1bW1hcnk9Ik5hdmlnYXRpb24gaGVhZGVyIj48dHI+Cis8dGQgd2lkdGg9IjIycHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9InAiIGhyZWY9ImZhcS5odG1sIj48aW1nIHNyYz0iaW1hZ2VzL3ByZXYucG5nIiB3aWR0aD0iMTgiIGhlaWdodD0iMjEiIGJvcmRlcj0iMCIgYWx0PSJQcmV2Ij48L2E+PC90ZD4KKzx0ZCB3aWR0aD0iMjVweCIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPjxhIGFjY2Vzc2tleT0idSIgaHJlZj0iaW5kZXguaHRtbCI+PGltZyBzcmM9ImltYWdlcy91cC5wbmciIHdpZHRoPSIyMSIgaGVpZ2h0PSIxOCIgYm9yZGVyPSIwIiBhbHQ9IlVwIj48L2E+PC90ZD4KKzx0ZCB3aWR0aD0iMzFweCIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iaW5kZXguaHRtbCI+PGltZyBzcmM9ImltYWdlcy9ob21lLnBuZyIgd2lkdGg9IjI3IiBoZWlnaHQ9IjIwIiBib3JkZXI9IjAiIGFsdD0iVXAiPjwvYT48L3RkPgorPHRoIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj5WYWxncmluZCBEb2N1bWVudGF0aW9uPC90aD4KKzx0ZCB3aWR0aD0iMjJweCIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPjxhIGFjY2Vzc2tleT0ibiIgaHJlZj0iZGVzaWduLWltcGwuaHRtbCI+PGltZyBzcmM9ImltYWdlcy9uZXh0LnBuZyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjIxIiBib3JkZXI9IjAiIGFsdD0iTmV4dCI+PC9hPjwvdGQ+Cis8L3RyPjwvdGFibGU+PC9kaXY+Cis8ZGl2IGNsYXNzPSJib29rIj4KKzxkaXYgY2xhc3M9InRpdGxlcGFnZSI+Cis8ZGl2PgorPGRpdj48aDEgY2xhc3M9InRpdGxlIj4KKzxhIG5hbWU9InRlY2gtZG9jcyI+PC9hPlZhbGdyaW5kIFRlY2huaWNhbCBEb2N1bWVudGF0aW9uPC9oMT48L2Rpdj4KKzxkaXY+PHAgY2xhc3M9InJlbGVhc2VpbmZvIj5SZWxlYXNlIDMuMTIuMCAyMCBPY3RvYmVyIDIwMTY8L3A+PC9kaXY+Cis8ZGl2PjxwIGNsYXNzPSJjb3B5cmlnaHQiPkNvcHlyaWdodCCpIDIwMDAtMjAxNiA8YSBjbGFzcz0idWxpbmsiIGhyZWY9Imh0dHA6Ly93d3cudmFsZ3JpbmQub3JnL2luZm8vZGV2ZWxvcGVycy5odG1sIiB0YXJnZXQ9Il90b3AiPlZhbGdyaW5kIERldmVsb3BlcnM8L2E+PC9wPjwvZGl2PgorPGRpdj48ZGl2IGNsYXNzPSJsZWdhbG5vdGljZSI+Cis8YSBuYW1lPSJpZG0xNDA2MzkxMDk2NzAzMjAiPjwvYT48cD5FbWFpbDogPGEgY2xhc3M9InVsaW5rIiBocmVmPSJtYWlsdG86dmFsZ3JpbmRAdmFsZ3JpbmQub3JnIiB0YXJnZXQ9Il90b3AiPnZhbGdyaW5kQHZhbGdyaW5kLm9yZzwvYT48L3A+Cis8L2Rpdj48L2Rpdj4KKzwvZGl2PgorPGhyPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJ0b2MiPgorPHA+PGI+VGFibGUgb2YgQ29udGVudHM8L2I+PC9wPgorPGRsIGNsYXNzPSJ0b2MiPgorPGR0PjxzcGFuIGNsYXNzPSJjaGFwdGVyIj48YSBocmVmPSJkZXNpZ24taW1wbC5odG1sIj4xLiBUaGUgRGVzaWduIGFuZCBJbXBsZW1lbnRhdGlvbiBvZiBWYWxncmluZDwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0iY2hhcHRlciI+PGEgaHJlZj0ibWFudWFsLXdyaXRpbmctdG9vbHMuaHRtbCI+Mi4gV3JpdGluZyBhIE5ldyBWYWxncmluZCBUb29sPC9hPjwvc3Bhbj48L2R0PgorPGRkPjxkbD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9Im1hbnVhbC13cml0aW5nLXRvb2xzLmh0bWwjbWFudWFsLXdyaXRpbmctdG9vbHMuaW50cm8iPjIuMS4gSW50cm9kdWN0aW9uPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0ibWFudWFsLXdyaXRpbmctdG9vbHMuaHRtbCNtYW51YWwtd3JpdGluZy10b29scy53cml0aW5nYXRvb2wiPjIuMi4gQmFzaWNzPC9hPjwvc3Bhbj48L2R0PgorPGRkPjxkbD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9Im1hbnVhbC13cml0aW5nLXRvb2xzLmh0bWwjbWFudWFsLXdyaXRpbmctdG9vbHMuaG93dG9vbHN3b3JrIj4yLjIuMS4gSG93IHRvb2xzIHdvcms8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJtYW51YWwtd3JpdGluZy10b29scy5odG1sI21hbnVhbC13cml0aW5nLXRvb2xzLmdldHRpbmdjb2RlIj4yLjIuMi4gR2V0dGluZyB0aGUgY29kZTwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9Im1hbnVhbC13cml0aW5nLXRvb2xzLmh0bWwjbWFudWFsLXdyaXRpbmctdG9vbHMuZ2V0dGluZ3N0YXJ0ZWQiPjIuMi4zLiBHZXR0aW5nIHN0YXJ0ZWQ8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJtYW51YWwtd3JpdGluZy10b29scy5odG1sI21hbnVhbC13cml0aW5nLXRvb2xzLndyaXRpbmdjb2RlIj4yLjIuNC4gV3JpdGluZyB0aGUgY29kZTwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9Im1hbnVhbC13cml0aW5nLXRvb2xzLmh0bWwjbWFudWFsLXdyaXRpbmctdG9vbHMuaW5pdCI+Mi4yLjUuIEluaXRpYWxpc2F0aW9uPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0ibWFudWFsLXdyaXRpbmctdG9vbHMuaHRtbCNtYW51YWwtd3JpdGluZy10b29scy5pbnN0ciI+Mi4yLjYuIEluc3RydW1lbnRhdGlvbjwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9Im1hbnVhbC13cml0aW5nLXRvb2xzLmh0bWwjbWFudWFsLXdyaXRpbmctdG9vbHMuZmluaSI+Mi4yLjcuIEZpbmFsaXNhdGlvbjwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9Im1hbnVhbC13cml0aW5nLXRvb2xzLmh0bWwjbWFudWFsLXdyaXRpbmctdG9vbHMub3RoZXJpbmZvIj4yLjIuOC4gT3RoZXIgSW1wb3J0YW50IEluZm9ybWF0aW9uPC9hPjwvc3Bhbj48L2R0PgorPC9kbD48L2RkPgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0ibWFudWFsLXdyaXRpbmctdG9vbHMuaHRtbCNtYW51YWwtd3JpdGluZy10b29scy5hZHZ0b3BpY3MiPjIuMy4gQWR2YW5jZWQgVG9waWNzPC9hPjwvc3Bhbj48L2R0PgorPGRkPjxkbD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9Im1hbnVhbC13cml0aW5nLXRvb2xzLmh0bWwjbWFudWFsLXdyaXRpbmctdG9vbHMuYWR2aWNlIj4yLjMuMS4gRGVidWdnaW5nIFRpcHM8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJtYW51YWwtd3JpdGluZy10b29scy5odG1sI21hbnVhbC13cml0aW5nLXRvb2xzLnN1cHByZXNzaW9ucyI+Mi4zLjIuIFN1cHByZXNzaW9uczwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9Im1hbnVhbC13cml0aW5nLXRvb2xzLmh0bWwjbWFudWFsLXdyaXRpbmctdG9vbHMuZG9jcyI+Mi4zLjMuIERvY3VtZW50YXRpb248L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJtYW51YWwtd3JpdGluZy10b29scy5odG1sI21hbnVhbC13cml0aW5nLXRvb2xzLnJlZ3Rlc3RzIj4yLjMuNC4gUmVncmVzc2lvbiBUZXN0czwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9Im1hbnVhbC13cml0aW5nLXRvb2xzLmh0bWwjbWFudWFsLXdyaXRpbmctdG9vbHMucHJvZmlsaW5nIj4yLjMuNS4gUHJvZmlsaW5nPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0ibWFudWFsLXdyaXRpbmctdG9vbHMuaHRtbCNtYW51YWwtd3JpdGluZy10b29scy5ta2hhY2tlcnkiPjIuMy42LiBPdGhlciBNYWtlZmlsZSBIYWNrZXJ5PC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0ibWFudWFsLXdyaXRpbmctdG9vbHMuaHRtbCNtYW51YWwtd3JpdGluZy10b29scy5pZmFjZXZlciI+Mi4zLjcuIFRoZSBDb3JlL3Rvb2wgSW50ZXJmYWNlPC9hPjwvc3Bhbj48L2R0PgorPC9kbD48L2RkPgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0ibWFudWFsLXdyaXRpbmctdG9vbHMuaHRtbCNtYW51YWwtd3JpdGluZy10b29scy5maW5hbHdvcmRzIj4yLjQuIEZpbmFsIFdvcmRzPC9hPjwvc3Bhbj48L2R0PgorPC9kbD48L2RkPgorPGR0PjxzcGFuIGNsYXNzPSJjaGFwdGVyIj48YSBocmVmPSJjbC1mb3JtYXQuaHRtbCI+My4gQ2FsbGdyaW5kIEZvcm1hdCBTcGVjaWZpY2F0aW9uPC9hPjwvc3Bhbj48L2R0PgorPGRkPjxkbD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9ImNsLWZvcm1hdC5odG1sI2NsLWZvcm1hdC5vdmVydmlldyI+My4xLiBPdmVydmlldzwvYT48L3NwYW4+PC9kdD4KKzxkZD48ZGw+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJjbC1mb3JtYXQuaHRtbCNjbC1mb3JtYXQub3ZlcnZpZXcuYmFzaWNzIj4zLjEuMS4gQmFzaWMgU3RydWN0dXJlPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iY2wtZm9ybWF0Lmh0bWwjY2wtZm9ybWF0Lm92ZXJ2aWV3LmV4YW1wbGUxIj4zLjEuMi4gU2ltcGxlIEV4YW1wbGU8L2E+PC9zcGFuPjwvZHQ+Cis8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJjbC1mb3JtYXQuaHRtbCNjbC1mb3JtYXQub3ZlcnZpZXcuYXNzb2NpYXRpb25zIj4zLjEuMy4gQXNzb2NpYXRpb25zPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iY2wtZm9ybWF0Lmh0bWwjY2wtZm9ybWF0Lm92ZXJ2aWV3LmV4YW1wbGUyIj4zLjEuNC4gRXh0ZW5kZWQgRXhhbXBsZTwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9ImNsLWZvcm1hdC5odG1sI2NsLWZvcm1hdC5vdmVydmlldy5jb21wcmVzc2lvbjEiPjMuMS41LiBOYW1lIENvbXByZXNzaW9uPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iY2wtZm9ybWF0Lmh0bWwjY2wtZm9ybWF0Lm92ZXJ2aWV3LmNvbXByZXNzaW9uMiI+My4xLjYuIFN1YnBvc2l0aW9uIENvbXByZXNzaW9uPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iY2wtZm9ybWF0Lmh0bWwjY2wtZm9ybWF0Lm92ZXJ2aWV3Lm1pc2MiPjMuMS43LiBNaXNjZWxsYW5lb3VzPC9hPjwvc3Bhbj48L2R0PgorPC9kbD48L2RkPgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0iY2wtZm9ybWF0Lmh0bWwjY2wtZm9ybWF0LnJlZmVyZW5jZSI+My4yLiBSZWZlcmVuY2U8L2E+PC9zcGFuPjwvZHQ+Cis8ZGQ+PGRsPgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iY2wtZm9ybWF0Lmh0bWwjY2wtZm9ybWF0LnJlZmVyZW5jZS5ncmFtbWFyIj4zLjIuMS4gR3JhbW1hcjwvYT48L3NwYW4+PC9kdD4KKzxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9ImNsLWZvcm1hdC5odG1sI2NsLWZvcm1hdC5yZWZlcmVuY2UuaGVhZGVyIj4zLjIuMi4gRGVzY3JpcHRpb24gb2YgSGVhZGVyIExpbmVzPC9hPjwvc3Bhbj48L2R0PgorPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iY2wtZm9ybWF0Lmh0bWwjY2wtZm9ybWF0LnJlZmVyZW5jZS5ib2R5Ij4zLjIuMy4gRGVzY3JpcHRpb24gb2YgQm9keSBMaW5lczwvYT48L3NwYW4+PC9kdD4KKzwvZGw+PC9kZD4KKzwvZGw+PC9kZD4KKzwvZGw+Cis8L2Rpdj4KKzwvZGl2PgorPGRpdj4KKzxicj48dGFibGUgY2xhc3M9Im5hdiIgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSIzIiBjZWxscGFkZGluZz0iMiIgYm9yZGVyPSIwIiBzdW1tYXJ5PSJOYXZpZ2F0aW9uIGZvb3RlciI+Cis8dHI+Cis8dGQgcm93c3Bhbj0iMiIgd2lkdGg9IjQwJSIgYWxpZ249ImxlZnQiPgorPGEgYWNjZXNza2V5PSJwIiBocmVmPSJmYXEuaHRtbCI+Jmx0OyZsdDugVmFsZ3JpbmQgRnJlcXVlbnRseSBBc2tlZCBRdWVzdGlvbnM8L2E+oDwvdGQ+Cis8dGQgd2lkdGg9IjIwJSIgYWxpZ249ImNlbnRlciI+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJpbmRleC5odG1sIj5VcDwvYT48L3RkPgorPHRkIHJvd3NwYW49IjIiIHdpZHRoPSI0MCUiIGFsaWduPSJyaWdodCI+oDxhIGFjY2Vzc2tleT0ibiIgaHJlZj0iZGVzaWduLWltcGwuaHRtbCI+MS6gVGhlIERlc2lnbiBhbmQgSW1wbGVtZW50YXRpb24gb2YgVmFsZ3JpbmSgJmd0OyZndDs8L2E+Cis8L3RkPgorPC90cj4KKzx0cj48dGQgd2lkdGg9IjIwJSIgYWxpZ249ImNlbnRlciI+PGEgYWNjZXNza2V5PSJoIiBocmVmPSJpbmRleC5odG1sIj5Ib21lPC9hPjwvdGQ+PC90cj4KKzwvdGFibGU+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL2RvY3MvaHRtbC92Z19iYXNpYy5jc3MgYi9kb2NzL2h0bWwvdmdfYmFzaWMuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ5MzY3ZmUKLS0tIC9kZXYvbnVsbAorKysgYi9kb2NzL2h0bWwvdmdfYmFzaWMuY3NzCkBAIC0wLDAgKzEsNjcgQEAKKy8qIGRlZmF1bHQgbGluayBjb2xvdXJzICovCithLCBhOmxpbmssIGE6dmlzaXRlZCwgYTphY3RpdmUgeyBjb2xvcjogIzc0MjQwZjsgfQorYTpob3ZlciB7IGNvbG9yOiAjODg4ODAwOyB9CisKK2JvZHkgeyAKKyBjb2xvcjogIzIwMjAyMDsgCisgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsKK30KKworYm9keSwgdGQgeworIGZvbnQtc2l6ZTogICA5MCU7CisgbGluZS1oZWlnaHQ6IDEyNSU7CisgZm9udC1mYW1pbHk6IEFyaWFsLCBHZW5ldmEsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsKK30KKworaDEsIGgyLCBoMywgaDQgeyBjb2xvcjogIzc0MjQwZjsgfQoraDMgeyBtYXJnaW4tYm90dG9tOiAwLjRlbTsgfQorCitjb2RlLCB0dCB7IGNvbG9yOiAjNzYxNTk2OyB9Citjb2RlIGEsIGNvZGUgYTpsaW5rLCBjb2RlIGE6dmlzaXRlZCwgY29kZSBhOmFjdGl2ZSwgY29kZSBhOmhvdmVyIHsKKyAgY29sb3I6ICM3NjE1OTY7CisgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKKyAgYm9yZGVyLWJvdHRvbTogICBkYXNoZWQgMXB4ICM3NjE1OTY7Cit9CisKK3ByZSB7IGNvbG9yOiAjMzM2NmNjOyB9CitwcmUucHJvZ3JhbWxpc3RpbmcgeworIGNvbG9yOiAgICAgICMwMDAwMDA7CisgcGFkZGluZzogICAgMC41ZW07CisgYmFja2dyb3VuZDogI2YyZjJmOTsKKyBib3JkZXI6ICAgICAxcHggc29saWQgIzMzNjZjYzsKK30KK3ByZS5zY3JlZW4geworIGNvbG9yOiAgICAgICMwMDAwMDA7CisgcGFkZGluZzogICAgMC41ZW07CisgYmFja2dyb3VuZDogI2VlZWVlZTsKKyBib3JkZXI6ICAgICAxcHggc29saWQgIzYyNjI2MjsKK30KKwordWwgeyBsaXN0LXN0eWxlOiB1cmwoImltYWdlcy9saS1icm93bi5wbmciKTsgfQorCisudGl0bGVwYWdlIGhyIHsKKyAgaGVpZ2h0OiAgMXB4OworICBib3JkZXI6ICAwcHg7CisgIGJhY2tncm91bmQtY29sb3I6ICM3ZjdmN2Y7Cit9CisKKy8qIGhlYWRlciAvIGZvb3RlciBuYXYgdGFibGVzICovCit0YWJsZS5uYXYgeworIGNvbG9yOiAgICAgICMwZjczNTU7CisgYm9yZGVyOiAgICAgc29saWQgMXB4ICMwZjczNTU7CisgYmFja2dyb3VuZDogI2VkZjdmNDsKKyBiYWNrZ3JvdW5kLWNvbG9yOiAjZWRmN2Y0OworIG1hcmdpbi1ib3R0b206IDAuNWVtOworfQorLyogZG9uJ3QgaGF2ZSB1bmRlcmxpbmVkIGxpbmtzIGluIGNodW5rZWQgbmF2IG1lbnVzICovCit0YWJsZS5uYXYgYSB7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfQordGFibGUubmF2IGE6aG92ZXIgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfQordGFibGUubmF2IHRkIHsgZm9udC1zaXplOiA4NSU7IH0KKworLyogeWVsbG93IGJveCBqdXN0IGZvciBtYXNzaWYgYmxvY2txdW90ZXMgKi8KK2Jsb2NrcXVvdGUgeworIHBhZGRpbmc6ICAgICAwLjVlbTsKKyBiYWNrZ3JvdW5kOiAgI2ZmZmJjOTsgCisgYm9yZGVyOiAgICAgIHNvbGlkIDFweCAjZmZkZTg0OyAKK30KKwo=