PGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSI+PHRpdGxlPkRPQ0JwYXJzZXI8L3RpdGxlPjxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iRG9jQm9vayBYU0wgU3R5bGVzaGVldHMgVjEuNTguMSI+PHN0eWxlIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvdHJhbnNpdGlvbmFsIiB0eXBlPSJ0ZXh0L2NzcyI+CiAgICAgICAgLnN5bm9wc2lzLCAuY2xhc3NzeW5vcHNpcyB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNlZWVlZWU7CiAgICAgICAgICAgIGJvcmRlcjogc29saWQgMXB4ICNhYWFhYWE7CiAgICAgICAgICAgIHBhZGRpbmc6IDAuNWVtOwogICAgICAgIH0KICAgICAgICAucHJvZ3JhbWxpc3RpbmcgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZWVlZWZmOwogICAgICAgICAgICBib3JkZXI6IHNvbGlkIDFweCAjYWFhYWZmOwogICAgICAgICAgICBwYWRkaW5nOiAwLjVlbTsKICAgICAgICB9CiAgICAgICAgLnZhcmlhYmxlbGlzdCB7CiAgICAgICAgICAgIHBhZGRpbmc6IDRweDsKICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDNlbTsKICAgICAgICB9CiAgICAgICAgLm5hdmlnYXRpb24gewogICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZlZWVlOwogICAgICAgICAgICBib3JkZXI6IHNvbGlkIDFweCAjZmZhYWFhOwogICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVlbTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41ZW07CiAgICAgICAgfQogICAgICAgIC5uYXZpZ2F0aW9uIGEgewogICAgICAgICAgICBjb2xvcjogIzc3MDAwMDsKICAgICAgICB9CiAgICAgICAgLm5hdmlnYXRpb24gYTp2aXNpdGVkIHsKICAgICAgICAgICAgY29sb3I6ICM1NTAwMDA7CiAgICAgICAgfQogICAgICAgIC5uYXZpZ2F0aW9uIC50aXRsZSB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjAwJTsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+PGxpbmsgcmVsPSJob21lIiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0iR25vbWUgWE1MIExpYnJhcnkgUmVmZXJlbmNlIE1hbnVhbCI+PGxpbmsgcmVsPSJ1cCIgaHJlZj0ibGlieG1sLWxpYi5odG1sIiB0aXRsZT0iTGlieG1sIExpYnJhcnkgUmVmZXJlbmNlIj48bGluayByZWw9InByZXZpb3VzIiBocmVmPSJsaWJ4bWwtZ2xvYmFscy5odG1sIiB0aXRsZT0iZ2xvYmFscyI+PGxpbmsgcmVsPSJuZXh0IiBocmVmPSJsaWJ4bWwtcGFyc2VySW50ZXJuYWxzLmh0bWwiIHRpdGxlPSJwYXJzZXJJbnRlcm5hbHMiPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+PHRhYmxlIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvdHJhbnNpdGlvbmFsIiBjbGFzcz0ibmF2aWdhdGlvbiIgd2lkdGg9IjEwMCUiIHN1bW1hcnk9Ik5hdmlnYXRpb24gaGVhZGVyIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjIiPjx0ciB2YWxpZ249Im1pZGRsZSI+PHRkPjxhIGFjY2Vzc2tleT0icCIgaHJlZj0ibGlieG1sLWdsb2JhbHMuaHRtbCI+PGltZyBzcmM9ImxlZnQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJQcmV2Ij48L2ltZz48L2E+PC90ZD48dGQ+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJsaWJ4bWwtbGliLmh0bWwiPjxpbWcgc3JjPSJ1cC5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IlVwIj48L2ltZz48L2E+PC90ZD48dGQ+PGEgYWNjZXNza2V5PSJoIiBocmVmPSJpbmRleC5odG1sIj48aW1nIHNyYz0iaG9tZS5wbmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgYm9yZGVyPSIwIiBhbHQ9IkhvbWUiPjwvaW1nPjwvYT48L3RkPjx0aCB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+R25vbWUgWE1MIExpYnJhcnkgUmVmZXJlbmNlIE1hbnVhbDwvdGg+PHRkPjxhIGFjY2Vzc2tleT0ibiIgaHJlZj0ibGlieG1sLXBhcnNlckludGVybmFscy5odG1sIj48aW1nIHNyYz0icmlnaHQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGJvcmRlcj0iMCIgYWx0PSJOZXh0Ij48L2ltZz48L2E+PC90ZD48L3RyPjwvdGFibGU+PGRpdiBjbGFzcz0icmVmZW50cnkiIGxhbmc9ImVuIj48YSBuYW1lPSJsaWJ4bWwtRE9DQnBhcnNlciI+PC9hPjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PC9kaXY+PGRpdiBjbGFzcz0icmVmbmFtZWRpdiI+PGgyPkRPQ0JwYXJzZXI8L2gyPjxwPkRPQ0JwYXJzZXIgJiM4MjEyOyA8L3A+PC9kaXY+PGRpdiBjbGFzcz0icmVmc3lub3BzaXNkaXYiPjxoMj5TeW5vcHNpczwvaDI+PHByZSBjbGFzcz0ic3lub3BzaXMiPgoKCgp0eXBlZGVmICAgICA8YSBocmVmPSJsaWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JQYXJzZXJDdHh0Ij5kb2NiUGFyc2VyQ3R4dDwvYT47CnR5cGVkZWYgICAgIDxhIGhyZWY9ImxpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYlBhcnNlckN0eHRQdHIiPmRvY2JQYXJzZXJDdHh0UHRyPC9hPjsKdHlwZWRlZiAgICAgPGEgaHJlZj0ibGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiUGFyc2VyTm9kZUluZm8iPmRvY2JQYXJzZXJOb2RlSW5mbzwvYT47CnR5cGVkZWYgICAgIDxhIGhyZWY9ImxpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYlNBWEhhbmRsZXIiPmRvY2JTQVhIYW5kbGVyPC9hPjsKdHlwZWRlZiAgICAgPGEgaHJlZj0ibGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiU0FYSGFuZGxlclB0ciI+ZG9jYlNBWEhhbmRsZXJQdHI8L2E+Owp0eXBlZGVmICAgICA8YSBocmVmPSJsaWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JQYXJzZXJJbnB1dCI+ZG9jYlBhcnNlcklucHV0PC9hPjsKdHlwZWRlZiAgICAgPGEgaHJlZj0ibGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiUGFyc2VySW5wdXRQdHIiPmRvY2JQYXJzZXJJbnB1dFB0cjwvYT47CnR5cGVkZWYgICAgIDxhIGhyZWY9ImxpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYkRvY1B0ciI+ZG9jYkRvY1B0cjwvYT47CnR5cGVkZWYgICAgIDxhIGhyZWY9ImxpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYk5vZGVQdHIiPmRvY2JOb2RlUHRyPC9hPjsKaW50ICAgICAgICAgPGEgaHJlZj0ibGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiRW5jb2RlRW50aXRpZXMiPmRvY2JFbmNvZGVFbnRpdGllczwvYT4gICAgICAgICAgICAgICh1bnNpZ25lZCBjaGFyICpvdXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAqb3V0bGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICppbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICppbmxlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHF1b3RlQ2hhcik7CjxhIGhyZWY9ImxpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYkRvY1B0ciI+ZG9jYkRvY1B0cjwvYT4gIDxhIGhyZWY9ImxpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYlNBWFBhcnNlRG9jIj5kb2NiU0FYUGFyc2VEb2M8L2E+ICAgICAgICAgICAgICAgICAoPGEgaHJlZj0ibGlieG1sLXRyZWUuaHRtbCN4bWxDaGFyIj54bWxDaGFyPC9hPiAqY3VyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICplbmNvZGluZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0ibGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiU0FYSGFuZGxlclB0ciI+ZG9jYlNBWEhhbmRsZXJQdHI8L2E+IHNheCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqdXNlckRhdGEpOwo8YSBocmVmPSJsaWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JEb2NQdHIiPmRvY2JEb2NQdHI8L2E+ICA8YSBocmVmPSJsaWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JQYXJzZURvYyI+ZG9jYlBhcnNlRG9jPC9hPiAgICAgICAgICAgICAgICAgICAgKDxhIGhyZWY9ImxpYnhtbC10cmVlLmh0bWwjeG1sQ2hhciI+eG1sQ2hhcjwvYT4gKmN1ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZW5jb2RpbmcpOwo8YSBocmVmPSJsaWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JEb2NQdHIiPmRvY2JEb2NQdHI8L2E+ICA8YSBocmVmPSJsaWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JTQVhQYXJzZUZpbGUiPmRvY2JTQVhQYXJzZUZpbGU8L2E+ICAgICAgICAgICAgICAgIChjb25zdCBjaGFyICpmaWxlbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZW5jb2RpbmcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9ImxpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYlNBWEhhbmRsZXJQdHIiPmRvY2JTQVhIYW5kbGVyUHRyPC9hPiBzYXgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnVzZXJEYXRhKTsKPGEgaHJlZj0ibGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiRG9jUHRyIj5kb2NiRG9jUHRyPC9hPiAgPGEgaHJlZj0ibGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiUGFyc2VGaWxlIj5kb2NiUGFyc2VGaWxlPC9hPiAgICAgICAgICAgICAgICAgICAoY29uc3QgY2hhciAqZmlsZW5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVuY29kaW5nKTsKdm9pZCAgICAgICAgPGEgaHJlZj0ibGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiRnJlZVBhcnNlckN0eHQiPmRvY2JGcmVlUGFyc2VyQ3R4dDwvYT4gICAgICAgICAgICAgICg8YSBocmVmPSJsaWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JQYXJzZXJDdHh0UHRyIj5kb2NiUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCk7CjxhIGhyZWY9ImxpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYlBhcnNlckN0eHRQdHIiPmRvY2JQYXJzZXJDdHh0UHRyPC9hPiA8YSBocmVmPSJsaWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JDcmVhdGVQdXNoUGFyc2VyQ3R4dCI+ZG9jYkNyZWF0ZVB1c2hQYXJzZXJDdHh0PC9hPiAgKDxhIGhyZWY9ImxpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYlNBWEhhbmRsZXJQdHIiPmRvY2JTQVhIYW5kbGVyUHRyPC9hPiBzYXgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnVzZXJfZGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqY2h1bmssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpmaWxlbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0ibGlieG1sLWVuY29kaW5nLmh0bWwjeG1sQ2hhckVuY29kaW5nIj54bWxDaGFyRW5jb2Rpbmc8L2E+IGVuYyk7CmludCAgICAgICAgIDxhIGhyZWY9ImxpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYlBhcnNlQ2h1bmsiPmRvY2JQYXJzZUNodW5rPC9hPiAgICAgICAgICAgICAgICAgICg8YSBocmVmPSJsaWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JQYXJzZXJDdHh0UHRyIj5kb2NiUGFyc2VyQ3R4dFB0cjwvYT4gY3R4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqY2h1bmssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdGVybWluYXRlKTsKPGEgaHJlZj0ibGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiUGFyc2VyQ3R4dFB0ciI+ZG9jYlBhcnNlckN0eHRQdHI8L2E+IDxhIGhyZWY9ImxpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYkNyZWF0ZUZpbGVQYXJzZXJDdHh0Ij5kb2NiQ3JlYXRlRmlsZVBhcnNlckN0eHQ8L2E+ICAoY29uc3QgY2hhciAqZmlsZW5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVuY29kaW5nKTsKaW50ICAgICAgICAgPGEgaHJlZj0ibGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiUGFyc2VEb2N1bWVudCI+ZG9jYlBhcnNlRG9jdW1lbnQ8L2E+ICAgICAgICAgICAgICAgKDxhIGhyZWY9ImxpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYlBhcnNlckN0eHRQdHIiPmRvY2JQYXJzZXJDdHh0UHRyPC9hPiBjdHh0KTsKPC9wcmU+PC9kaXY+PGRpdiBjbGFzcz0icmVmc2VjdDEiIGxhbmc9ImVuIj48aDI+RGVzY3JpcHRpb248L2gyPjxwPgoKPC9wPjwvZGl2PjxkaXYgY2xhc3M9InJlZnNlY3QxIiBsYW5nPSJlbiI+PGgyPkRldGFpbHM8L2gyPjxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9ImRvY2JQYXJzZXJDdHh0Ij48L2E+ZG9jYlBhcnNlckN0eHQ8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj50eXBlZGVmIHhtbFBhcnNlckN0eHQgZG9jYlBhcnNlckN0eHQ7CjwvcHJlPjxwPgoKPC9wPjwvZGl2PjxociB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL3RyYW5zaXRpb25hbCI+PC9ocj48ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJkb2NiUGFyc2VyQ3R4dFB0ciI+PC9hPmRvY2JQYXJzZXJDdHh0UHRyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dHlwZWRlZiB4bWxQYXJzZXJDdHh0UHRyIGRvY2JQYXJzZXJDdHh0UHRyOwo8L3ByZT48cD4KCjwvcD48L2Rpdj48aHIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS90cmFuc2l0aW9uYWwiPjwvaHI+PGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iZG9jYlBhcnNlck5vZGVJbmZvIj48L2E+ZG9jYlBhcnNlck5vZGVJbmZvPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dHlwZWRlZiB4bWxQYXJzZXJOb2RlSW5mbyBkb2NiUGFyc2VyTm9kZUluZm87CjwvcHJlPjxwPgoKPC9wPjwvZGl2PjxociB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL3RyYW5zaXRpb25hbCI+PC9ocj48ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJkb2NiU0FYSGFuZGxlciI+PC9hPmRvY2JTQVhIYW5kbGVyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dHlwZWRlZiB4bWxTQVhIYW5kbGVyIGRvY2JTQVhIYW5kbGVyOwo8L3ByZT48cD4KCjwvcD48L2Rpdj48aHIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS90cmFuc2l0aW9uYWwiPjwvaHI+PGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iZG9jYlNBWEhhbmRsZXJQdHIiPjwvYT5kb2NiU0FYSGFuZGxlclB0cjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnR5cGVkZWYgeG1sU0FYSGFuZGxlclB0ciBkb2NiU0FYSGFuZGxlclB0cjsKPC9wcmU+PHA+Cgo8L3A+PC9kaXY+PGhyIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvdHJhbnNpdGlvbmFsIj48L2hyPjxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9ImRvY2JQYXJzZXJJbnB1dCI+PC9hPmRvY2JQYXJzZXJJbnB1dDwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnR5cGVkZWYgeG1sUGFyc2VySW5wdXQgZG9jYlBhcnNlcklucHV0Owo8L3ByZT48cD4KCjwvcD48L2Rpdj48aHIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS90cmFuc2l0aW9uYWwiPjwvaHI+PGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iZG9jYlBhcnNlcklucHV0UHRyIj48L2E+ZG9jYlBhcnNlcklucHV0UHRyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dHlwZWRlZiB4bWxQYXJzZXJJbnB1dFB0ciBkb2NiUGFyc2VySW5wdXRQdHI7CjwvcHJlPjxwPgoKPC9wPjwvZGl2PjxociB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL3RyYW5zaXRpb25hbCI+PC9ocj48ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJkb2NiRG9jUHRyIj48L2E+ZG9jYkRvY1B0cjwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPnR5cGVkZWYgeG1sRG9jUHRyIGRvY2JEb2NQdHI7CjwvcHJlPjxwPgoKPC9wPjwvZGl2PjxociB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL3RyYW5zaXRpb25hbCI+PC9ocj48ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJkb2NiTm9kZVB0ciI+PC9hPmRvY2JOb2RlUHRyPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dHlwZWRlZiB4bWxOb2RlUHRyIGRvY2JOb2RlUHRyOwo8L3ByZT48cD4KCjwvcD48L2Rpdj48aHIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS90cmFuc2l0aW9uYWwiPjwvaHI+PGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iZG9jYkVuY29kZUVudGl0aWVzIj48L2E+ZG9jYkVuY29kZUVudGl0aWVzICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50ICAgICAgICAgZG9jYkVuY29kZUVudGl0aWVzICAgICAgICAgICAgICAodW5zaWduZWQgY2hhciAqb3V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKm91dGxlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqaW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAqaW5sZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBxdW90ZUNoYXIpOzwvcHJlPjxwPgpUYWtlIGEgYmxvY2sgb2YgVVRGLTggY2hhcnMgaW4gYW5kIHRyeSB0byBjb252ZXJ0IGl0IHRvIGFuIEFTQ0lJCnBsdXMgU0dNTCBlbnRpdGllcyBibG9jayBvZiBjaGFycyBvdXQuPC9wPjxwPgoKPC9wPjxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+b3V0PC90dD48L2k+oDo8L3NwYW4+PC90ZD48dGQ+ICBhIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgYnl0ZXMgdG8gc3RvcmUgdGhlIHJlc3VsdAo8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0Pm91dGxlbjwvdHQ+PC9pPqA6PC9zcGFuPjwvdGQ+PHRkPiAgdGhlIGxlbmd0aCBvZiA8aT48dHQ+b3V0PC90dD48L2k+CjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+aW48L3R0PjwvaT6gOjwvc3Bhbj48L3RkPjx0ZD4gIGEgcG9pbnRlciB0byBhbiBhcnJheSBvZiBVVEYtOCBjaGFycwo8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmlubGVuPC90dD48L2k+oDo8L3NwYW4+PC90ZD48dGQ+ICB0aGUgbGVuZ3RoIG9mIDxpPjx0dD5pbjwvdHQ+PC9pPgo8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnF1b3RlQ2hhcjwvdHQ+PC9pPqA6PC9zcGFuPjwvdGQ+PHRkPiB0aGUgcXVvdGUgY2hhcmFjdGVyIHRvIGVzY2FwZSAoJyBvciAiKSBvciB6ZXJvLgo8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PHNwYW4gY2xhc3M9ImVtcGhhc2lzIj48ZW0+UmV0dXJuczwvZW0+PC9zcGFuPiA6PC9zcGFuPjwvdGQ+PHRkPjAgaWYgc3VjY2VzcywgLTIgaWYgdGhlIHRyYW5zY29kaW5nIGZhaWxzLCBvciAtMSBvdGhlcndpc2UKVGhlIHZhbHVlIG9mIDxpPjx0dD5pbmxlbjwvdHQ+PC9pPiBhZnRlciByZXR1cm4gaXMgdGhlIG51bWJlciBvZiBvY3RldHMgY29uc3VtZWQKICAgIGFzIHRoZSByZXR1cm4gdmFsdWUgaXMgcG9zaXRpdmUsIGVsc2UgdW5wcmVkaWN0YWJsZS4KVGhlIHZhbHVlIG9mIDxpPjx0dD5vdXRsZW48L3R0PjwvaT4gYWZ0ZXIgcmV0dXJuIGlzIHRoZSBudW1iZXIgb2Ygb2N0ZXRzIGNvbnN1bWVkLgo8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PjxociB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL3RyYW5zaXRpb25hbCI+PC9ocj48ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJkb2NiU0FYUGFyc2VEb2MiPjwvYT5kb2NiU0FYUGFyc2VEb2MgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JEb2NQdHIiPmRvY2JEb2NQdHI8L2E+ICBkb2NiU0FYUGFyc2VEb2MgICAgICAgICAgICAgICAgICg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICpjdXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVuY29kaW5nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJsaWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JTQVhIYW5kbGVyUHRyIj5kb2NiU0FYSGFuZGxlclB0cjwvYT4gc2F4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICp1c2VyRGF0YSk7PC9wcmU+PHA+CnBhcnNlIGFuIFNHTUwgaW4tbWVtb3J5IGRvY3VtZW50IGFuZCBidWlsZCBhIHRyZWUuCkl0IHVzZSB0aGUgZ2l2ZW4gU0FYIGZ1bmN0aW9uIGJsb2NrIHRvIGhhbmRsZSB0aGUgcGFyc2luZyBjYWxsYmFjay4KSWYgc2F4IGlzIE5VTEwsIGZhbGxiYWNrIHRvIHRoZSBkZWZhdWx0IERPTSB0cmVlIGJ1aWxkaW5nIHJvdXRpbmVzLjwvcD48cD4KCjwvcD48ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmN1cjwvdHQ+PC9pPqA6PC9zcGFuPjwvdGQ+PHRkPiAgYSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIHhtbENoYXIKPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmNvZGluZzwvdHQ+PC9pPqA6PC9zcGFuPjwvdGQ+PHRkPiAgYSBmcmVlIGZvcm0gQyBzdHJpbmcgZGVzY3JpYmluZyB0aGUgU0dNTCBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTAo8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNheDwvdHQ+PC9pPqA6PC9zcGFuPjwvdGQ+PHRkPiAgdGhlIFNBWCBoYW5kbGVyIGJsb2NrCjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dXNlckRhdGE8L3R0PjwvaT6gOjwvc3Bhbj48L3RkPjx0ZD4gaWYgdXNpbmcgU0FYLCB0aGlzIHBvaW50ZXIgd2lsbCBiZSBwcm92aWRlZCBvbiBjYWxsYmFja3MuIAo8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PHNwYW4gY2xhc3M9ImVtcGhhc2lzIj48ZW0+UmV0dXJuczwvZW0+PC9zcGFuPiA6PC9zcGFuPjwvdGQ+PHRkPnRoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZQo8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PjxociB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL3RyYW5zaXRpb25hbCI+PC9ocj48ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJkb2NiUGFyc2VEb2MiPjwvYT5kb2NiUGFyc2VEb2MgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JEb2NQdHIiPmRvY2JEb2NQdHI8L2E+ICBkb2NiUGFyc2VEb2MgICAgICAgICAgICAgICAgICAgICg8YSBocmVmPSJsaWJ4bWwtdHJlZS5odG1sI3htbENoYXIiPnhtbENoYXI8L2E+ICpjdXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVuY29kaW5nKTs8L3ByZT48cD4KcGFyc2UgYW4gU0dNTCBpbi1tZW1vcnkgZG9jdW1lbnQgYW5kIGJ1aWxkIGEgdHJlZS48L3A+PHA+Cgo8L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdXI8L3R0PjwvaT6gOjwvc3Bhbj48L3RkPjx0ZD4gIGEgcG9pbnRlciB0byBhbiBhcnJheSBvZiB4bWxDaGFyCjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5jb2Rpbmc8L3R0PjwvaT6gOjwvc3Bhbj48L3RkPjx0ZD4gIGEgZnJlZSBmb3JtIEMgc3RyaW5nIGRlc2NyaWJpbmcgdGhlIFNHTUwgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEwKPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPlJldHVybnM8L2VtPjwvc3Bhbj4gOjwvc3Bhbj48L3RkPjx0ZD50aGUgcmVzdWx0aW5nIGRvY3VtZW50IHRyZWUKPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj48aHIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS90cmFuc2l0aW9uYWwiPjwvaHI+PGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iZG9jYlNBWFBhcnNlRmlsZSI+PC9hPmRvY2JTQVhQYXJzZUZpbGUgKCk8L2gzPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj48YSBocmVmPSJsaWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JEb2NQdHIiPmRvY2JEb2NQdHI8L2E+ICBkb2NiU0FYUGFyc2VGaWxlICAgICAgICAgICAgICAgIChjb25zdCBjaGFyICpmaWxlbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZW5jb2RpbmcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9ImxpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYlNBWEhhbmRsZXJQdHIiPmRvY2JTQVhIYW5kbGVyUHRyPC9hPiBzYXgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnVzZXJEYXRhKTs8L3ByZT48cD4KcGFyc2UgYW4gU0dNTCBmaWxlIGFuZCBidWlsZCBhIHRyZWUuIEF1dG9tYXRpYyBzdXBwb3J0IGZvciBaTElCL0NvbXByZXNzCmNvbXByZXNzZWQgZG9jdW1lbnQgaXMgcHJvdmlkZWQgYnkgZGVmYXVsdCBpZiBmb3VuZCBhdCBjb21waWxlLXRpbWUuCkl0IHVzZSB0aGUgZ2l2ZW4gU0FYIGZ1bmN0aW9uIGJsb2NrIHRvIGhhbmRsZSB0aGUgcGFyc2luZyBjYWxsYmFjay4KSWYgc2F4IGlzIE5VTEwsIGZhbGxiYWNrIHRvIHRoZSBkZWZhdWx0IERPTSB0cmVlIGJ1aWxkaW5nIHJvdXRpbmVzLjwvcD48cD4KCjwvcD48ZGl2IGNsYXNzPSJ2YXJpYWJsZWxpc3QiPjx0YWJsZSBib3JkZXI9IjAiPjxjb2wgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj48dGJvZHk+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGVuYW1lPC90dD48L2k+oDo8L3NwYW4+PC90ZD48dGQ+ICB0aGUgZmlsZW5hbWUKPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5lbmNvZGluZzwvdHQ+PC9pPqA6PC9zcGFuPjwvdGQ+PHRkPiAgYSBmcmVlIGZvcm0gQyBzdHJpbmcgZGVzY3JpYmluZyB0aGUgU0dNTCBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTAo8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnNheDwvdHQ+PC9pPqA6PC9zcGFuPjwvdGQ+PHRkPiAgdGhlIFNBWCBoYW5kbGVyIGJsb2NrCjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dXNlckRhdGE8L3R0PjwvaT6gOjwvc3Bhbj48L3RkPjx0ZD4gaWYgdXNpbmcgU0FYLCB0aGlzIHBvaW50ZXIgd2lsbCBiZSBwcm92aWRlZCBvbiBjYWxsYmFja3MuIAo8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PHNwYW4gY2xhc3M9ImVtcGhhc2lzIj48ZW0+UmV0dXJuczwvZW0+PC9zcGFuPiA6PC9zcGFuPjwvdGQ+PHRkPnRoZSByZXN1bHRpbmcgZG9jdW1lbnQgdHJlZQo8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PjxociB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL3RyYW5zaXRpb25hbCI+PC9ocj48ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJkb2NiUGFyc2VGaWxlIj48L2E+ZG9jYlBhcnNlRmlsZSAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYkRvY1B0ciI+ZG9jYkRvY1B0cjwvYT4gIGRvY2JQYXJzZUZpbGUgICAgICAgICAgICAgICAgICAgKGNvbnN0IGNoYXIgKmZpbGVuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICplbmNvZGluZyk7PC9wcmU+PHA+CnBhcnNlIGEgRG9jYm9vayBTR01MIGZpbGUgYW5kIGJ1aWxkIGEgdHJlZS4gQXV0b21hdGljIHN1cHBvcnQgZm9yClpMSUIvQ29tcHJlc3MgY29tcHJlc3NlZCBkb2N1bWVudCBpcyBwcm92aWRlZCBieSBkZWZhdWx0IGlmIGZvdW5kCmF0IGNvbXBpbGUtdGltZS48L3A+PHA+Cgo8L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5maWxlbmFtZTwvdHQ+PC9pPqA6PC9zcGFuPjwvdGQ+PHRkPiAgdGhlIGZpbGVuYW1lCjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5jb2Rpbmc8L3R0PjwvaT6gOjwvc3Bhbj48L3RkPjx0ZD4gIGEgZnJlZSBmb3JtIEMgc3RyaW5nIGRlc2NyaWJpbmcgZG9jdW1lbnQgZW5jb2RpbmcsIG9yIE5VTEwKPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPlJldHVybnM8L2VtPjwvc3Bhbj4gOjwvc3Bhbj48L3RkPjx0ZD50aGUgcmVzdWx0aW5nIGRvY3VtZW50IHRyZWUKPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj48aHIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS90cmFuc2l0aW9uYWwiPjwvaHI+PGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iZG9jYkZyZWVQYXJzZXJDdHh0Ij48L2E+ZG9jYkZyZWVQYXJzZXJDdHh0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+dm9pZCAgICAgICAgZG9jYkZyZWVQYXJzZXJDdHh0ICAgICAgICAgICAgICAoPGEgaHJlZj0ibGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiUGFyc2VyQ3R4dFB0ciI+ZG9jYlBhcnNlckN0eHRQdHI8L2E+IGN0eHQpOzwvcHJlPjxwPgpGcmVlIGFsbCB0aGUgbWVtb3J5IHVzZWQgYnkgYSBwYXJzZXIgY29udGV4dC4gSG93ZXZlciB0aGUgcGFyc2VkCmRvY3VtZW50IGluIGN0eHQtJmd0O215RG9jIGlzIG5vdCBmcmVlZC48L3A+PHA+Cgo8L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+oDo8L3NwYW4+PC90ZD48dGQ+ICBhbiBTR01MIHBhcnNlciBjb250ZXh0CjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+PGhyIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvdHJhbnNpdGlvbmFsIj48L2hyPjxkaXYgY2xhc3M9InJlZnNlY3QyIiBsYW5nPSJlbiI+PGgzPjxhIG5hbWU9ImRvY2JDcmVhdGVQdXNoUGFyc2VyQ3R4dCI+PC9hPmRvY2JDcmVhdGVQdXNoUGFyc2VyQ3R4dCAoKTwvaDM+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPjxhIGhyZWY9ImxpYnhtbC1ET0NCcGFyc2VyLmh0bWwjZG9jYlBhcnNlckN0eHRQdHIiPmRvY2JQYXJzZXJDdHh0UHRyPC9hPiBkb2NiQ3JlYXRlUHVzaFBhcnNlckN0eHQgICg8YSBocmVmPSJsaWJ4bWwtRE9DQnBhcnNlci5odG1sI2RvY2JTQVhIYW5kbGVyUHRyIj5kb2NiU0FYSGFuZGxlclB0cjwvYT4gc2F4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICp1c2VyX2RhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmNodW5rLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZmlsZW5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9ImxpYnhtbC1lbmNvZGluZy5odG1sI3htbENoYXJFbmNvZGluZyI+eG1sQ2hhckVuY29kaW5nPC9hPiBlbmMpOzwvcHJlPjxwPgpDcmVhdGUgYSBwYXJzZXIgY29udGV4dCBmb3IgdXNpbmcgdGhlIERvY0Jvb2sgU0dNTCBwYXJzZXIgaW4gcHVzaCBtb2RlClRvIGFsbG93IGNvbnRlbnQgZW5jb2RpbmcgZGV0ZWN0aW9uLCA8aT48dHQ+c2l6ZTwvdHQ+PC9pPiBzaG91bGQgYmUgJmd0Oz0gNApUaGUgdmFsdWUgb2YgPGk+PHR0PmZpbGVuYW1lPC90dD48L2k+IGlzIHVzZWQgZm9yIGZldGNoaW5nIGV4dGVybmFsIGVudGl0aWVzCmFuZCBlcnJvci93YXJuaW5nIHJlcG9ydHMuPC9wPjxwPgoKPC9wPjxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2F4PC90dD48L2k+oDo8L3NwYW4+PC90ZD48dGQ+ICBhIFNBWCBoYW5kbGVyCjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+dXNlcl9kYXRhPC90dD48L2k+oDo8L3NwYW4+PC90ZD48dGQ+ICBUaGUgdXNlciBkYXRhIHJldHVybmVkIG9uIFNBWCBjYWxsYmFja3MKPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jaHVuazwvdHQ+PC9pPqA6PC9zcGFuPjwvdGQ+PHRkPiAgYSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIGNoYXJzCjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+c2l6ZTwvdHQ+PC9pPqA6PC9zcGFuPjwvdGQ+PHRkPiAgbnVtYmVyIG9mIGNoYXJzIGluIHRoZSBhcnJheQo8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmZpbGVuYW1lPC90dD48L2k+oDo8L3NwYW4+PC90ZD48dGQ+ICBhbiBvcHRpb25hbCBmaWxlIG5hbWUgb3IgVVJJCjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZW5jPC90dD48L2k+oDo8L3NwYW4+PC90ZD48dGQ+ICBhbiBvcHRpb25hbCBlbmNvZGluZwo8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PHNwYW4gY2xhc3M9ImVtcGhhc2lzIj48ZW0+UmV0dXJuczwvZW0+PC9zcGFuPiA6PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgcGFyc2VyIGNvbnRleHQgb3IgTlVMTAo8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PjxociB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL3RyYW5zaXRpb25hbCI+PC9ocj48ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJkb2NiUGFyc2VDaHVuayI+PC9hPmRvY2JQYXJzZUNodW5rICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50ICAgICAgICAgZG9jYlBhcnNlQ2h1bmsgICAgICAgICAgICAgICAgICAoPGEgaHJlZj0ibGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiUGFyc2VyQ3R4dFB0ciI+ZG9jYlBhcnNlckN0eHRQdHI8L2E+IGN0eHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmNodW5rLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHRlcm1pbmF0ZSk7PC9wcmU+PHA+ClBhcnNlIGEgQ2h1bmsgb2YgbWVtb3J5PC9wPjxwPgoKPC9wPjxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y3R4dDwvdHQ+PC9pPqA6PC9zcGFuPjwvdGQ+PHRkPiAgYW4gWE1MIHBhcnNlciBjb250ZXh0CjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+Y2h1bms8L3R0PjwvaT6gOjwvc3Bhbj48L3RkPjx0ZD4gIGFuIGNoYXIgYXJyYXkKPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5zaXplPC90dD48L2k+oDo8L3NwYW4+PC90ZD48dGQ+ICB0aGUgc2l6ZSBpbiBieXRlIG9mIHRoZSBjaHVuawo8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PnRlcm1pbmF0ZTwvdHQ+PC9pPqA6PC9zcGFuPjwvdGQ+PHRkPiAgbGFzdCBjaHVuayBpbmRpY2F0b3IKPC90ZD48L3RyPjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPlJldHVybnM8L2VtPjwvc3Bhbj4gOjwvc3Bhbj48L3RkPjx0ZD56ZXJvIGlmIG5vIGVycm9yLCB0aGUgeG1sUGFyc2VyRXJyb3JzIG90aGVyd2lzZS4KPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj48aHIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS90cmFuc2l0aW9uYWwiPjwvaHI+PGRpdiBjbGFzcz0icmVmc2VjdDIiIGxhbmc9ImVuIj48aDM+PGEgbmFtZT0iZG9jYkNyZWF0ZUZpbGVQYXJzZXJDdHh0Ij48L2E+ZG9jYkNyZWF0ZUZpbGVQYXJzZXJDdHh0ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+PGEgaHJlZj0ibGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiUGFyc2VyQ3R4dFB0ciI+ZG9jYlBhcnNlckN0eHRQdHI8L2E+IGRvY2JDcmVhdGVGaWxlUGFyc2VyQ3R4dCAgKGNvbnN0IGNoYXIgKmZpbGVuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICplbmNvZGluZyk7PC9wcmU+PHA+CkNyZWF0ZSBhIHBhcnNlciBjb250ZXh0IGZvciBhIGZpbGUgY29udGVudC4gCkF1dG9tYXRpYyBzdXBwb3J0IGZvciBaTElCL0NvbXByZXNzIGNvbXByZXNzZWQgZG9jdW1lbnQgaXMgcHJvdmlkZWQKYnkgZGVmYXVsdCBpZiBmb3VuZCBhdCBjb21waWxlLXRpbWUuPC9wPjxwPgoKPC9wPjxkaXYgY2xhc3M9InZhcmlhYmxlbGlzdCI+PHRhYmxlIGJvcmRlcj0iMCI+PGNvbCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjx0Ym9keT48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48aT48dHQ+ZmlsZW5hbWU8L3R0PjwvaT6gOjwvc3Bhbj48L3RkPjx0ZD4gIHRoZSBmaWxlbmFtZQo8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PGk+PHR0PmVuY29kaW5nPC90dD48L2k+oDo8L3NwYW4+PC90ZD48dGQ+ICB0aGUgU0dNTCBkb2N1bWVudCBlbmNvZGluZywgb3IgTlVMTAo8L3RkPjwvdHI+PHRyPjx0ZD48c3BhbiBjbGFzcz0idGVybSI+PHNwYW4gY2xhc3M9ImVtcGhhc2lzIj48ZW0+UmV0dXJuczwvZW0+PC9zcGFuPiA6PC9zcGFuPjwvdGQ+PHRkPnRoZSBuZXcgcGFyc2VyIGNvbnRleHQgb3IgTlVMTAo8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PjxociB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL3RyYW5zaXRpb25hbCI+PC9ocj48ZGl2IGNsYXNzPSJyZWZzZWN0MiIgbGFuZz0iZW4iPjxoMz48YSBuYW1lPSJkb2NiUGFyc2VEb2N1bWVudCI+PC9hPmRvY2JQYXJzZURvY3VtZW50ICgpPC9oMz48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+aW50ICAgICAgICAgZG9jYlBhcnNlRG9jdW1lbnQgICAgICAgICAgICAgICAoPGEgaHJlZj0ibGlieG1sLURPQ0JwYXJzZXIuaHRtbCNkb2NiUGFyc2VyQ3R4dFB0ciI+ZG9jYlBhcnNlckN0eHRQdHI8L2E+IGN0eHQpOzwvcHJlPjxwPgpwYXJzZSBhbiBTR01MIGRvY3VtZW50IChhbmQgYnVpbGQgYSB0cmVlIGlmIHVzaW5nIHRoZSBzdGFuZGFyZCBTQVgKaW50ZXJmYWNlKS48L3A+PHA+Cgo8L3A+PGRpdiBjbGFzcz0idmFyaWFibGVsaXN0Ij48dGFibGUgYm9yZGVyPSIwIj48Y29sIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+PHRib2R5Pjx0cj48dGQ+PHNwYW4gY2xhc3M9InRlcm0iPjxpPjx0dD5jdHh0PC90dD48L2k+oDo8L3NwYW4+PC90ZD48dGQ+ICBhbiBTR01MIHBhcnNlciBjb250ZXh0CjwvdGQ+PC90cj48dHI+PHRkPjxzcGFuIGNsYXNzPSJ0ZXJtIj48c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT5SZXR1cm5zPC9lbT48L3NwYW4+IDo8L3NwYW4+PC90ZD48dGQ+MCwgLTEgaW4gY2FzZSBvZiBlcnJvci4gdGhlIHBhcnNlciBjb250ZXh0IGlzIGF1Z21lbnRlZAogICAgICAgICAgICAgICBhcyBhIHJlc3VsdCBvZiB0aGUgcGFyc2luZy4KPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48dGFibGUgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS90cmFuc2l0aW9uYWwiIGNsYXNzPSJuYXZpZ2F0aW9uIiB3aWR0aD0iMTAwJSIgc3VtbWFyeT0iTmF2aWdhdGlvbiBmb290ZXIiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMCI+PHRyIHZhbGlnbj0ibWlkZGxlIj48dGQgYWxpZ249ImxlZnQiPjxhIGFjY2Vzc2tleT0icCIgaHJlZj0ibGlieG1sLWdsb2JhbHMuaHRtbCI+PGI+Jmx0OyZsdDugZ2xvYmFsczwvYj48L2E+PC90ZD48dGQgYWxpZ249InJpZ2h0Ij48YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImxpYnhtbC1wYXJzZXJJbnRlcm5hbHMuaHRtbCI+PGI+cGFyc2VySW50ZXJuYWxzoCZndDsmZ3Q7PC9iPjwvYT48L3RkPjwvdHI+PC90YWJsZT48L2JvZHk+PC9odG1sPgo=