PGh0bWw+CjxoZWFkPgo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj4KPHRpdGxlPlZhbGdyaW5kIEZyZXF1ZW50bHkgQXNrZWQgUXVlc3Rpb25zPC90aXRsZT4KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0idmdfYmFzaWMuY3NzIj4KPG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJEb2NCb29rIFhTTCBTdHlsZXNoZWV0cyBWMS43OC4xIj4KPGxpbmsgcmVsPSJob21lIiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0iVmFsZ3JpbmQgRG9jdW1lbnRhdGlvbiI+CjxsaW5rIHJlbD0idXAiIGhyZWY9IkZBUS5odG1sIiB0aXRsZT0iVmFsZ3JpbmQgRkFRIj4KPGxpbmsgcmVsPSJwcmV2IiBocmVmPSJGQVEuaHRtbCIgdGl0bGU9IlZhbGdyaW5kIEZBUSI+CjxsaW5rIHJlbD0ibmV4dCIgaHJlZj0idGVjaC1kb2NzLmh0bWwiIHRpdGxlPSJWYWxncmluZCBUZWNobmljYWwgRG9jdW1lbnRhdGlvbiI+CjwvaGVhZD4KPGJvZHkgYmdjb2xvcj0id2hpdGUiIHRleHQ9ImJsYWNrIiBsaW5rPSIjMDAwMEZGIiB2bGluaz0iIzg0MDA4NCIgYWxpbms9IiMwMDAwRkYiPgo8ZGl2Pjx0YWJsZSBjbGFzcz0ibmF2IiB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjMiIGNlbGxwYWRkaW5nPSIzIiBib3JkZXI9IjAiIHN1bW1hcnk9Ik5hdmlnYXRpb24gaGVhZGVyIj48dHI+Cjx0ZCB3aWR0aD0iMjJweCIgYWxpZ249ImNlbnRlciIgdmFsaWduPSJtaWRkbGUiPjxhIGFjY2Vzc2tleT0icCIgaHJlZj0iRkFRLmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvcHJldi5wbmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIyMSIgYm9yZGVyPSIwIiBhbHQ9IlByZXYiPjwvYT48L3RkPgo8dGQgd2lkdGg9IjI1cHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9InUiIGhyZWY9IkZBUS5odG1sIj48aW1nIHNyYz0iaW1hZ2VzL3VwLnBuZyIgd2lkdGg9IjIxIiBoZWlnaHQ9IjE4IiBib3JkZXI9IjAiIGFsdD0iVXAiPjwvYT48L3RkPgo8dGQgd2lkdGg9IjMxcHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9ImgiIGhyZWY9ImluZGV4Lmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvaG9tZS5wbmciIHdpZHRoPSIyNyIgaGVpZ2h0PSIyMCIgYm9yZGVyPSIwIiBhbHQ9IlVwIj48L2E+PC90ZD4KPHRoIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj5WYWxncmluZCBGQVE8L3RoPgo8dGQgd2lkdGg9IjIycHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9Im4iIGhyZWY9InRlY2gtZG9jcy5odG1sIj48aW1nIHNyYz0iaW1hZ2VzL25leHQucG5nIiB3aWR0aD0iMTgiIGhlaWdodD0iMjEiIGJvcmRlcj0iMCIgYWx0PSJOZXh0Ij48L2E+PC90ZD4KPC90cj48L3RhYmxlPjwvZGl2Pgo8ZGl2IGNsYXNzPSJhcnRpY2xlIj4KPGRpdiBjbGFzcz0idGl0bGVwYWdlIj4KPGRpdj48ZGl2PjxoMSBjbGFzcz0idGl0bGUiPgo8YSBuYW1lPSJmYXEiPjwvYT5WYWxncmluZCBGcmVxdWVudGx5IEFza2VkIFF1ZXN0aW9uczwvaDE+PC9kaXY+PC9kaXY+Cjxocj4KPC9kaXY+CjxkaXYgY2xhc3M9InFhbmRhc2V0Ij4KPGRsPgo8ZHQ+MS4gIDxhIGhyZWY9ImZhcS5odG1sI2ZhcS5iYWNrZ3JvdW5kIj5CYWNrZ3JvdW5kPC9hPgo8L2R0Pgo8ZGQ+MS4xLiA8YSBocmVmPSJmYXEuaHRtbCNmYXEucHJvbm91bmNlIj5Ib3cgZG8geW91IHByb25vdW5jZSAiVmFsZ3JpbmQiPzwvYT4KPC9kZD4KPGRkPjEuMi4gPGEgaHJlZj0iZmFxLmh0bWwjZmFxLndoZW5jZSI+V2hlcmUgZG9lcyB0aGUgbmFtZSAiVmFsZ3JpbmQiIGNvbWUgZnJvbT88L2E+CjwvZGQ+CjwvZGw+CjxkbD4KPGR0PjIuICA8YSBocmVmPSJmYXEuaHRtbCNmYXEuaW5zdGFsbGluZyI+Q29tcGlsaW5nLCBpbnN0YWxsaW5nIGFuZCBjb25maWd1cmluZzwvYT4KPC9kdD4KPGRkPjIuMS4gPGEgaHJlZj0iZmFxLmh0bWwjZmFxLm1ha2VfZGllcyI+V2hlbiBidWlsZGluZyBWYWxncmluZCwgJ21ha2UnIGRpZXMgcGFydHdheSB3aXRoCiAgYW4gYXNzZXJ0aW9uIGZhaWx1cmUsIHNvbWV0aGluZyBsaWtlIHRoaXM6PC9hPgo8L2RkPgo8ZGQ+Mi4yLiA8YSBocmVmPSJmYXEuaHRtbCNmYXEuZ2xpYmNfZGV2ZWwiPldoZW4gYnVpbGRpbmcgVmFsZ3JpbmQsICdtYWtlJyBmYWlscyB3aXRoIHRoaXM6PC9hPgo8L2RkPgo8L2RsPgo8ZGw+CjxkdD4zLiAgPGEgaHJlZj0iZmFxLmh0bWwjZmFxLmFib3J0Ij5WYWxncmluZCBhYm9ydHMgdW5leHBlY3RlZGx5PC9hPgo8L2R0Pgo8ZGQ+My4xLiA8YSBocmVmPSJmYXEuaHRtbCNmYXEuZXhpdF9lcnJvcnMiPlByb2dyYW1zIHJ1biBPSyBvbiBWYWxncmluZCwgYnV0IGF0IGV4aXQgcHJvZHVjZSBhIGJ1bmNoIG9mCiAgICBlcnJvcnMgaW52b2x2aW5nIF9fbGliY19mcmVlcmVzIGFuZCB0aGVuIGRpZQogICAgd2l0aCBhIHNlZ21lbnRhdGlvbiBmYXVsdC48L2E+CjwvZGQ+CjxkZD4zLjIuIDxhIGhyZWY9ImZhcS5odG1sI2ZhcS5idWdkZWF0aCI+TXkgKGJ1Z2d5KSBwcm9ncmFtIGRpZXMgbGlrZSB0aGlzOjwvYT4KPC9kZD4KPGRkPjMuMy4gPGEgaHJlZj0iZmFxLmh0bWwjZmFxLm1zZ2RlYXRoIj5NeSBwcm9ncmFtIGRpZXMsIHByaW50aW5nIGEgbWVzc2FnZSBsaWtlIHRoaXMgYWxvbmcgdGhlCiAgICB3YXk6PC9hPgo8L2RkPgo8ZGQ+My40LiA8YSBocmVmPSJmYXEuaHRtbCNmYXEuamF2YSI+SSB0cmllZCBydW5uaW5nIGEgSmF2YSBwcm9ncmFtIChvciBhbm90aGVyIHByb2dyYW0gdGhhdCB1c2VzIGEKICAgIGp1c3QtaW4tdGltZSBjb21waWxlcikgdW5kZXIgVmFsZ3JpbmQgYnV0IHNvbWV0aGluZyB3ZW50IHdyb25nLgogICAgRG9lcyBWYWxncmluZCBoYW5kbGUgc3VjaCBwcm9ncmFtcz88L2E+CjwvZGQ+CjwvZGw+CjxkbD4KPGR0PjQuICA8YSBocmVmPSJmYXEuaHRtbCNmYXEudW5leHBlY3RlZCI+VmFsZ3JpbmQgYmVoYXZlcyB1bmV4cGVjdGVkbHk8L2E+CjwvZHQ+CjxkZD40LjEuIDxhIGhyZWY9ImZhcS5odG1sI2ZhcS5yZXBvcnRzIj5NeSBwcm9ncmFtIHVzZXMgdGhlIEMrKyBTVEwgYW5kIHN0cmluZyBjbGFzc2VzLiAgVmFsZ3JpbmQKICAgIHJlcG9ydHMgJ3N0aWxsIHJlYWNoYWJsZScgbWVtb3J5IGxlYWtzIGludm9sdmluZyB0aGVzZSBjbGFzc2VzIGF0CiAgICB0aGUgZXhpdCBvZiB0aGUgcHJvZ3JhbSwgYnV0IHRoZXJlIHNob3VsZCBiZSBub25lLjwvYT4KPC9kZD4KPGRkPjQuMi4gPGEgaHJlZj0iZmFxLmh0bWwjZmFxLnVuaGVscGZ1bCI+VGhlIHN0YWNrIHRyYWNlcyBnaXZlbiBieSBNZW1jaGVjayAob3IgYW5vdGhlciB0b29sKSBhcmVuJ3QKICAgIGhlbHBmdWwuICBIb3cgY2FuIEkgaW1wcm92ZSB0aGVtPzwvYT4KPC9kZD4KPGRkPjQuMy4gPGEgaHJlZj0iZmFxLmh0bWwjZmFxLmFsaWFzZXMiPlRoZSBzdGFjayB0cmFjZXMgZ2l2ZW4gYnkgTWVtY2hlY2sgKG9yIGFub3RoZXIgdG9vbCkgc2VlbSB0bwogICAgaGF2ZSB0aGUgd3JvbmcgZnVuY3Rpb24gbmFtZSBpbiB0aGVtLiAgV2hhdCdzIGhhcHBlbmluZz88L2E+CjwvZGQ+CjxkZD40LjQuIDxhIGhyZWY9ImZhcS5odG1sI2ZhcS5jcmFzaGVzIj5NeSBwcm9ncmFtIGNyYXNoZXMgbm9ybWFsbHksIGJ1dCBkb2Vzbid0IHVuZGVyIFZhbGdyaW5kLCBvciB2aWNlCiAgICB2ZXJzYS4gIFdoYXQncyBoYXBwZW5pbmc/PC9hPgo8L2RkPgo8ZGQ+NC41LiA8YSBocmVmPSJmYXEuaHRtbCNmYXEuaGlkZGVuYnVnIj4gTWVtY2hlY2sgZG9lc24ndCByZXBvcnQgYW55IGVycm9ycyBhbmQgSSBrbm93IG15IHByb2dyYW0gaGFzCiAgICBlcnJvcnMuPC9hPgo8L2RkPgo8ZGQ+NC42LiA8YSBocmVmPSJmYXEuaHRtbCNmYXEub3ZlcnJ1bnMiPldoeSBkb2Vzbid0IE1lbWNoZWNrIGZpbmQgdGhlIGFycmF5IG92ZXJydW5zIGluIHRoaXMKICAgIHByb2dyYW0/PC9hPgo8L2RkPgo8L2RsPgo8ZGw+CjxkdD41LiAgPGEgaHJlZj0iZmFxLmh0bWwjZmFxLm1pc2MiPk1pc2NlbGxhbmVvdXM8L2E+CjwvZHQ+CjxkZD41LjEuIDxhIGhyZWY9ImZhcS5odG1sI2ZhcS53cml0ZXN1cHAiPkkgdHJpZWQgd3JpdGluZyBhIHN1cHByZXNzaW9uIGJ1dCBpdCBkaWRuJ3Qgd29yay4gIENhbiB5b3UKICAgIHdyaXRlIG15IHN1cHByZXNzaW9uIGZvciBtZT88L2E+CjwvZGQ+CjxkZD41LjIuIDxhIGhyZWY9ImZhcS5odG1sI2ZhcS5kZWZsb3N0Ij5XaXRoIE1lbWNoZWNrJ3MgbWVtb3J5IGxlYWsgZGV0ZWN0b3IsIHdoYXQncyB0aGUKICAgIGRpZmZlcmVuY2UgYmV0d2VlbiAiZGVmaW5pdGVseSBsb3N0IiwgImluZGlyZWN0bHkgbG9zdCIsICJwb3NzaWJseQogICAgbG9zdCIsICJzdGlsbCByZWFjaGFibGUiLCBhbmQgInN1cHByZXNzZWQiPzwvYT4KPC9kZD4KPGRkPjUuMy4gPGEgaHJlZj0iZmFxLmh0bWwjZmFxLnVuZGVmZXJyb3JzIj5NZW1jaGVjaydzIHVuaW5pdGlhbGlzZWQgdmFsdWUgZXJyb3JzIGFyZSBoYXJkIHRvIHRyYWNrIGRvd24sCiAgICBiZWNhdXNlIHRoZXkgYXJlIG9mdGVuIHJlcG9ydGVkIHNvbWUgdGltZSBhZnRlciB0aGV5IGFyZSBjYXVzZWQuICBDb3VsZCAKICAgIE1lbWNoZWNrIHJlY29yZCBhIHRyYWlsIG9mIG9wZXJhdGlvbnMgdG8gYmV0dGVyIGxpbmsgdGhlIGNhdXNlIHRvIHRoZQogICAgZWZmZWN0PyAgT3IgbWF5YmUganVzdCBlYWdlcmx5IHJlcG9ydCBhbnkgY29waWVzIG9mIHVuaW5pdGlhbGlzZWQKICAgIG1lbW9yeSB2YWx1ZXM/PC9hPgo8L2RkPgo8ZGQ+NS40LiA8YSBocmVmPSJmYXEuaHRtbCNmYXEuYXR0YWNoIj5JcyBpdCBwb3NzaWJsZSB0byBhdHRhY2ggVmFsZ3JpbmQgdG8gYSBwcm9ncmFtIHRoYXQgaXMgYWxyZWFkeQogICAgcnVubmluZz88L2E+CjwvZGQ+CjwvZGw+CjxkbD48ZHQ+Ni4gIDxhIGhyZWY9ImZhcS5odG1sI2ZhcS5oZWxwIj5Ib3cgVG8gR2V0IEZ1cnRoZXIgQXNzaXN0YW5jZTwvYT4KPC9kdD48L2RsPgo8YnI+PHRhYmxlIHdpZHRoPSIxMDAlIiBzdW1tYXJ5PSJRIGFuZCBBIERpdiIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIyIiBib3JkZXI9IjAiPgo8dHIgY2xhc3M9InFhbmRhZGl2Ij48dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIiBjb2xzcGFuPSIyIj4KPGEgbmFtZT0iZmFxLmJhY2tncm91bmQiPjwvYT48aDMgY2xhc3M9InRpdGxlIj4KPGEgbmFtZT0iZmFxLmJhY2tncm91bmQiPjwvYT4xLiBCYWNrZ3JvdW5kPC9oMz4KPC90ZD48L3RyPgo8dHIgY2xhc3M9InRvYyIgY29sc3Bhbj0iMiI+PHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCIgY29sc3Bhbj0iMiI+MS4xLiA8YSBocmVmPSJmYXEuaHRtbCNmYXEucHJvbm91bmNlIj5Ib3cgZG8geW91IHByb25vdW5jZSAiVmFsZ3JpbmQiPzwvYT48YnI+MS4yLiA8YSBocmVmPSJmYXEuaHRtbCNmYXEud2hlbmNlIj5XaGVyZSBkb2VzIHRoZSBuYW1lICJWYWxncmluZCIgY29tZSBmcm9tPzwvYT48YnI+CjwvdGQ+PC90cj4KPHRyPjx0ZCBjb2xzcGFuPSIyIj6gPC90ZD48L3RyPgo8dHIgY2xhc3M9InF1ZXN0aW9uIj4KPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+CjxhIG5hbWU9ImZhcS5wcm9ub3VuY2UiPjwvYT48YSBuYW1lPSJxLXByb25vdW5jZSI+PC9hPjxiPjEuMS48L2I+CjwvdGQ+Cjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjxiPkhvdyBkbyB5b3UgcHJvbm91bmNlICJWYWxncmluZCI/PC9iPjwvdGQ+CjwvdHI+Cjx0ciBjbGFzcz0iYW5zd2VyIj4KPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+PGEgbmFtZT0iYS1wcm9ub3VuY2UiPjwvYT48L3RkPgo8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj4KPHA+VGhlICJWYWwiIGFzIGluIHRoZSB3b3JkICJ2YWx1ZSIuICBUaGUgImdyaW5kIiBpcyBwcm9ub3VuY2VkCiAgd2l0aCBhIHNob3J0ICdpJyAtLSBpZS4gImdyaW5uZWQiIChyaHltZXMgd2l0aCAidGlubmVkIikgcmF0aGVyIHRoYW4KICAiZ3JpbmVkIiAocmh5bWVzIHdpdGggImZpbmQiKS48L3A+CjxwPkRvbid0IGZlZWwgYmFkOiBhbG1vc3QKICBldmVyeW9uZSBnZXRzIGl0IHdyb25nIGF0IGZpcnN0LjwvcD4KPC90ZD4KPC90cj4KPHRyPjx0ZCBjb2xzcGFuPSIyIj6gPC90ZD48L3RyPgo8dHIgY2xhc3M9InF1ZXN0aW9uIj4KPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+CjxhIG5hbWU9ImZhcS53aGVuY2UiPjwvYT48YSBuYW1lPSJxLXdoZW5jZSI+PC9hPjxiPjEuMi48L2I+CjwvdGQ+Cjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjxiPldoZXJlIGRvZXMgdGhlIG5hbWUgIlZhbGdyaW5kIiBjb21lIGZyb20/PC9iPjwvdGQ+CjwvdHI+Cjx0ciBjbGFzcz0iYW5zd2VyIj4KPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+PGEgbmFtZT0iYS13aGVuY2UiPjwvYT48L3RkPgo8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj4KPHA+RnJvbSBOb3JkaWMgbXl0aG9sb2d5LiAgT3JpZ2luYWxseSAoYmVmb3JlIHJlbGVhc2UpIHRoZSBwcm9qZWN0CiAgd2FzIG5hbWVkIEhlaW1kYWxsLCBhZnRlciB0aGUgd2F0Y2htYW4gb2YgdGhlIE5vcmRpYyBnb2RzLiAgSGUgY291bGQKICAic2VlIGEgaHVuZHJlZCBtaWxlcyBieSBkYXkgb3IgbmlnaHQsIGhlYXIgdGhlIGdyYXNzIGdyb3dpbmcsIHNlZSB0aGUKICB3b29sIGdyb3dpbmcgb24gYSBzaGVlcCdzIGJhY2siLCBldGMuICBUaGlzIHdvdWxkIGhhdmUgYmVlbiBhIGdyZWF0CiAgbmFtZSwgYnV0IGl0IHdhcyBhbHJlYWR5IHRha2VuIGJ5IGEgc2VjdXJpdHkgcGFja2FnZSAiSGVpbWRhbCIuPC9wPgo8cD5LZWVwaW5nIHdpdGggdGhlIE5vcmRpYyB0aGVtZSwgVmFsZ3JpbmQgd2FzIGNob3Nlbi4gIFZhbGdyaW5kIGlzCiAgdGhlIG5hbWUgb2YgdGhlIG1haW4gZW50cmFuY2UgdG8gVmFsaGFsbGEgKHRoZSBIYWxsIG9mIHRoZSBDaG9zZW4KICBTbGFpbiBpbiBBc2dhcmQpLiAgT3ZlciB0aGlzIGVudHJhbmNlIHRoZXJlIHJlc2lkZXMgYSB3b2xmIGFuZCBvdmVyIGl0CiAgdGhlcmUgaXMgdGhlIGhlYWQgb2YgYSBib2FyIGFuZCBvbiBpdCBwZXJjaGVzIGEgaHVnZSBlYWdsZSwgd2hvc2UgZXllcwogIGNhbiBzZWUgdG8gdGhlIGZhciByZWdpb25zIG9mIHRoZSBuaW5lIHdvcmxkcy4gIE9ubHkgdGhvc2UganVkZ2VkCiAgd29ydGh5IGJ5IHRoZSBndWFyZGlhbnMgYXJlIGFsbG93ZWQgdG8gcGFzcyB0aHJvdWdoIFZhbGdyaW5kLiAgQWxsCiAgb3RoZXJzIGFyZSByZWZ1c2VkIGVudHJhbmNlLjwvcD4KPHA+SXQncyBub3Qgc2hvcnQgZm9yICJ2YWx1ZSBncmluZGVyIiwgYWx0aG91Z2ggdGhhdCdzIG5vdCBhIGJhZAogIGd1ZXNzLjwvcD4KPC90ZD4KPC90cj4KPC90YWJsZT4KPGJyPjx0YWJsZSB3aWR0aD0iMTAwJSIgc3VtbWFyeT0iUSBhbmQgQSBEaXYiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMiIgYm9yZGVyPSIwIj4KPHRyIGNsYXNzPSJxYW5kYWRpdiI+PHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCIgY29sc3Bhbj0iMiI+CjxhIG5hbWU9ImZhcS5pbnN0YWxsaW5nIj48L2E+PGgzIGNsYXNzPSJ0aXRsZSI+CjxhIG5hbWU9ImZhcS5pbnN0YWxsaW5nIj48L2E+Mi4gQ29tcGlsaW5nLCBpbnN0YWxsaW5nIGFuZCBjb25maWd1cmluZzwvaDM+CjwvdGQ+PC90cj4KPHRyIGNsYXNzPSJ0b2MiIGNvbHNwYW49IjIiPjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiIGNvbHNwYW49IjIiPjIuMS4gPGEgaHJlZj0iZmFxLmh0bWwjZmFxLm1ha2VfZGllcyI+V2hlbiBidWlsZGluZyBWYWxncmluZCwgJ21ha2UnIGRpZXMgcGFydHdheSB3aXRoCiAgYW4gYXNzZXJ0aW9uIGZhaWx1cmUsIHNvbWV0aGluZyBsaWtlIHRoaXM6PC9hPjxicj4yLjIuIDxhIGhyZWY9ImZhcS5odG1sI2ZhcS5nbGliY19kZXZlbCI+V2hlbiBidWlsZGluZyBWYWxncmluZCwgJ21ha2UnIGZhaWxzIHdpdGggdGhpczo8L2E+PGJyPgo8L3RkPjwvdHI+Cjx0cj48dGQgY29sc3Bhbj0iMiI+oDwvdGQ+PC90cj4KPHRyIGNsYXNzPSJxdWVzdGlvbiI+Cjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPgo8YSBuYW1lPSJmYXEubWFrZV9kaWVzIj48L2E+PGEgbmFtZT0icS1tYWtlX2RpZXMiPjwvYT48Yj4yLjEuPC9iPgo8L3RkPgo8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj4KPGI+V2hlbiBidWlsZGluZyBWYWxncmluZCwgJ21ha2UnIGRpZXMgcGFydHdheSB3aXRoCiAgYW4gYXNzZXJ0aW9uIGZhaWx1cmUsIHNvbWV0aGluZyBsaWtlIHRoaXM6PC9iPjxwcmUgY2xhc3M9InNjcmVlbiI+CiUgbWFrZTogZXhwYW5kLmM6NDg5OiBhbGxvY2F0ZWRfdmFyaWFibGVfYXBwZW5kOiAKICAgICAgICBBc3NlcnRpb24gJ2N1cnJlbnRfdmFyaWFibGVfc2V0X2xpc3QtJmd0O25leHQgIT0gMCcgZmFpbGVkLgo8L3ByZT4KPC90ZD4KPC90cj4KPHRyIGNsYXNzPSJhbnN3ZXIiPgo8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj48YSBuYW1lPSJhLW1ha2VfZGllcyI+PC9hPjwvdGQ+Cjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjxwPkl0J3MgcHJvYmFibHkgYSBidWcgaW4gJ21ha2UnLiAgU29tZSwgYnV0IG5vdCBhbGwsIGluc3RhbmNlcyBvZgogIHZlcnNpb24gMy43OS4xIGhhdmUgdGhpcyBidWcsIHNlZQogIDxhIGNsYXNzPSJ1bGluayIgaHJlZj0iaHR0cDovL3d3dy5tYWlsLWFyY2hpdmUuY29tL2J1Zy1tYWtlQGdudS5vcmcvbXNnMDE2NTguaHRtbCIgdGFyZ2V0PSJfdG9wIj50aGlzPC9hPi4KICBUcnkgdXBncmFkaW5nIHRvIGEgbW9yZSByZWNlbnQgdmVyc2lvbiBvZiAnbWFrZScuICBBbHRlcm5hdGl2ZWx5LCB3ZSBoYXZlCiAgaGVhcmQgdGhhdCB1bnNldHRpbmcgdGhlIENGTEFHUyBlbnZpcm9ubWVudCB2YXJpYWJsZSBhdm9pZHMgdGhlCiAgcHJvYmxlbS48L3A+PC90ZD4KPC90cj4KPHRyPjx0ZCBjb2xzcGFuPSIyIj6gPC90ZD48L3RyPgo8dHIgY2xhc3M9InF1ZXN0aW9uIj4KPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+CjxhIG5hbWU9ImZhcS5nbGliY19kZXZlbCI+PC9hPjxhIG5hbWU9ImlkbTE0MDYzOTExODIwMzUzNiI+PC9hPjxiPjIuMi48L2I+CjwvdGQ+Cjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPgo8Yj5XaGVuIGJ1aWxkaW5nIFZhbGdyaW5kLCAnbWFrZScgZmFpbHMgd2l0aCB0aGlzOjwvYj48cHJlIGNsYXNzPSJzY3JlZW4iPgovdXNyL2Jpbi9sZDogY2Fubm90IGZpbmQgLWxjCmNvbGxlY3QyOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCjwvcHJlPgo8L3RkPgo8L3RyPgo8dHIgY2xhc3M9ImFuc3dlciI+Cjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjwvdGQ+Cjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjxwPllvdSBuZWVkIHRvIGluc3RhbGwgdGhlIGdsaWJjLXN0YXRpYy1kZXZlbCBwYWNrYWdlLjwvcD48L3RkPgo8L3RyPgo8L3RhYmxlPgo8YnI+PHRhYmxlIHdpZHRoPSIxMDAlIiBzdW1tYXJ5PSJRIGFuZCBBIERpdiIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIyIiBib3JkZXI9IjAiPgo8dHIgY2xhc3M9InFhbmRhZGl2Ij48dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIiBjb2xzcGFuPSIyIj4KPGEgbmFtZT0iZmFxLmFib3J0Ij48L2E+PGgzIGNsYXNzPSJ0aXRsZSI+CjxhIG5hbWU9ImZhcS5hYm9ydCI+PC9hPjMuIFZhbGdyaW5kIGFib3J0cyB1bmV4cGVjdGVkbHk8L2gzPgo8L3RkPjwvdHI+Cjx0ciBjbGFzcz0idG9jIiBjb2xzcGFuPSIyIj48dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIiBjb2xzcGFuPSIyIj4zLjEuIDxhIGhyZWY9ImZhcS5odG1sI2ZhcS5leGl0X2Vycm9ycyI+UHJvZ3JhbXMgcnVuIE9LIG9uIFZhbGdyaW5kLCBidXQgYXQgZXhpdCBwcm9kdWNlIGEgYnVuY2ggb2YKICAgIGVycm9ycyBpbnZvbHZpbmcgX19saWJjX2ZyZWVyZXMgYW5kIHRoZW4gZGllCiAgICB3aXRoIGEgc2VnbWVudGF0aW9uIGZhdWx0LjwvYT48YnI+My4yLiA8YSBocmVmPSJmYXEuaHRtbCNmYXEuYnVnZGVhdGgiPk15IChidWdneSkgcHJvZ3JhbSBkaWVzIGxpa2UgdGhpczo8L2E+PGJyPjMuMy4gPGEgaHJlZj0iZmFxLmh0bWwjZmFxLm1zZ2RlYXRoIj5NeSBwcm9ncmFtIGRpZXMsIHByaW50aW5nIGEgbWVzc2FnZSBsaWtlIHRoaXMgYWxvbmcgdGhlCiAgICB3YXk6PC9hPjxicj4zLjQuIDxhIGhyZWY9ImZhcS5odG1sI2ZhcS5qYXZhIj5JIHRyaWVkIHJ1bm5pbmcgYSBKYXZhIHByb2dyYW0gKG9yIGFub3RoZXIgcHJvZ3JhbSB0aGF0IHVzZXMgYQogICAganVzdC1pbi10aW1lIGNvbXBpbGVyKSB1bmRlciBWYWxncmluZCBidXQgc29tZXRoaW5nIHdlbnQgd3JvbmcuCiAgICBEb2VzIFZhbGdyaW5kIGhhbmRsZSBzdWNoIHByb2dyYW1zPzwvYT48YnI+CjwvdGQ+PC90cj4KPHRyPjx0ZCBjb2xzcGFuPSIyIj6gPC90ZD48L3RyPgo8dHIgY2xhc3M9InF1ZXN0aW9uIj4KPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+CjxhIG5hbWU9ImZhcS5leGl0X2Vycm9ycyI+PC9hPjxhIG5hbWU9InEtZXhpdF9lcnJvcnMiPjwvYT48Yj4zLjEuPC9iPgo8L3RkPgo8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj48Yj5Qcm9ncmFtcyBydW4gT0sgb24gVmFsZ3JpbmQsIGJ1dCBhdCBleGl0IHByb2R1Y2UgYSBidW5jaCBvZgogICAgZXJyb3JzIGludm9sdmluZyA8Y29kZSBjbGFzcz0ibGl0ZXJhbCI+X19saWJjX2ZyZWVyZXM8L2NvZGU+IGFuZCB0aGVuIGRpZQogICAgd2l0aCBhIHNlZ21lbnRhdGlvbiBmYXVsdC48L2I+PC90ZD4KPC90cj4KPHRyIGNsYXNzPSJhbnN3ZXIiPgo8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj48YSBuYW1lPSJhLWV4aXRfZXJyb3JzIj48L2E+PC90ZD4KPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+CjxwPldoZW4gdGhlIHByb2dyYW0gZXhpdHMsIFZhbGdyaW5kIHJ1bnMgdGhlIHByb2NlZHVyZQogICAgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5fX2xpYmNfZnJlZXJlczwvY29kZT4gaW4gZ2xpYmMuICBUaGlzIGlzIGEgaG9vayBmb3IKICAgIG1lbW9yeSBkZWJ1Z2dlcnMsIHNvIHRoZXkgY2FuIGFzayBnbGliYyB0byBmcmVlIHVwIGFueSBtZW1vcnkgaXQgaGFzCiAgICB1c2VkLiAgRG9pbmcgdGhhdCBpcyBuZWVkZWQgdG8gZW5zdXJlIHRoYXQgVmFsZ3JpbmQgZG9lc24ndAogICAgaW5jb3JyZWN0bHkgcmVwb3J0IHNwYWNlIGxlYWtzIGluIGdsaWJjLjwvcD4KPHA+VGhlIHByb2JsZW0gaXMgdGhhdCBydW5uaW5nIDxjb2RlIGNsYXNzPSJsaXRlcmFsIj5fX2xpYmNfZnJlZXJlczwvY29kZT4gaW4KICAgIG9sZGVyIGdsaWJjIHZlcnNpb25zIGNhdXNlcyB0aGlzIGNyYXNoLjwvcD4KPHA+V29ya2Fyb3VuZCBmb3IgMS4xLlggYW5kIGxhdGVyIHZlcnNpb25zIG9mIFZhbGdyaW5kOiB1c2UgdGhlCiAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXJ1bi1saWJjLWZyZWVyZXM9bm88L2NvZGU+IG9wdGlvbi4gIFlvdSBtYXkgdGhlbiBnZXQgc3BhY2UKICAgIGxlYWsgcmVwb3J0cyBmb3IgZ2xpYmMgYWxsb2NhdGlvbnMgKHBsZWFzZSBkb24ndCByZXBvcnQgdGhlc2UgdG8KICAgIHRoZSBnbGliYyBwZW9wbGUsIHNpbmNlIHRoZXkgYXJlIG5vdCByZWFsIGxlYWtzKSwgYnV0IGF0IGxlYXN0IHRoZQogICAgcHJvZ3JhbSBydW5zLjwvcD4KPC90ZD4KPC90cj4KPHRyPjx0ZCBjb2xzcGFuPSIyIj6gPC90ZD48L3RyPgo8dHIgY2xhc3M9InF1ZXN0aW9uIj4KPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+CjxhIG5hbWU9ImZhcS5idWdkZWF0aCI+PC9hPjxhIG5hbWU9InEtYnVnZGVhdGgiPjwvYT48Yj4zLjIuPC9iPgo8L3RkPgo8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj4KPGI+TXkgKGJ1Z2d5KSBwcm9ncmFtIGRpZXMgbGlrZSB0aGlzOjwvYj48cHJlIGNsYXNzPSJzY3JlZW4iPnZhbGdyaW5kOiBtX21hbGxvY2ZyZWUuYzoyNDggKGdldF9ic3pCX2FzX2lzKTogQXNzZXJ0aW9uICdic3pCX2xvID09IGJzekJfaGknIGZhaWxlZC48L3ByZT4KPGI+b3IgbGlrZSB0aGlzOjwvYj48cHJlIGNsYXNzPSJzY3JlZW4iPnZhbGdyaW5kOiBtX21hbGxvY2ZyZWUuYzo0NDIgKG1rX2ludXNlX2JzekIpOiBBc3NlcnRpb24gJ2JzekIgIT0gMCcgZmFpbGVkLjwvcHJlPgo8Yj5vciBvdGhlcndpc2UgYWJvcnRzIG9yIGNyYXNoZXMgaW4gbV9tYWxsb2NmcmVlLmMuPC9iPgo8L3RkPgo8L3RyPgo8dHIgY2xhc3M9ImFuc3dlciI+Cjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjxhIG5hbWU9ImEtYnVnZGVhdGgiPjwvYT48L3RkPgo8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj48cD5JZiBNZW1jaGVjayAodGhlIG1lbW9yeSBjaGVja2VyKSBzaG93cyBhbnkgaW52YWxpZCByZWFkcywKICAgIGludmFsaWQgd3JpdGVzIG9yIGludmFsaWQgZnJlZXMgaW4geW91ciBwcm9ncmFtLCB0aGUgYWJvdmUgbWF5CiAgICBoYXBwZW4uICBSZWFzb24gaXMgdGhhdCB5b3VyIHByb2dyYW0gbWF5IHRyYXNoIFZhbGdyaW5kJ3MgbG93LWxldmVsCiAgICBtZW1vcnkgbWFuYWdlciwgd2hpY2ggdGhlbiBkaWVzIHdpdGggdGhlIGFib3ZlIGFzc2VydGlvbiwgb3IKICAgIHNvbWV0aGluZyBzaW1pbGFyLiAgVGhlIGN1cmUgaXMgdG8gZml4IHlvdXIgcHJvZ3JhbSBzbyB0aGF0IGl0CiAgICBkb2Vzbid0IGRvIGFueSBpbGxlZ2FsIG1lbW9yeSBhY2Nlc3Nlcy4gIFRoZSBhYm92ZSBmYWlsdXJlIHdpbGwKICAgIGhvcGVmdWxseSBnbyBhd2F5IGFmdGVyIHRoYXQuPC9wPjwvdGQ+CjwvdHI+Cjx0cj48dGQgY29sc3Bhbj0iMiI+oDwvdGQ+PC90cj4KPHRyIGNsYXNzPSJxdWVzdGlvbiI+Cjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPgo8YSBuYW1lPSJmYXEubXNnZGVhdGgiPjwvYT48YSBuYW1lPSJxLW1zZ2RlYXRoIj48L2E+PGI+My4zLjwvYj4KPC90ZD4KPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+CjxiPk15IHByb2dyYW0gZGllcywgcHJpbnRpbmcgYSBtZXNzYWdlIGxpa2UgdGhpcyBhbG9uZyB0aGUKICAgIHdheTo8L2I+PHByZSBjbGFzcz0ic2NyZWVuIj52ZXggeDg2LSZndDtJUjogdW5oYW5kbGVkIGluc3RydWN0aW9uIGJ5dGVzOiAweDY2IDB4RiAweDJFIDB4NTwvcHJlPgo8L3RkPgo8L3RyPgo8dHIgY2xhc3M9ImFuc3dlciI+Cjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjxhIG5hbWU9ImEtbXNnZGVhdGgiPjwvYT48L3RkPgo8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj4KPHA+T25lIHBvc3NpYmlsaXR5IGlzIHRoYXQgeW91ciBwcm9ncmFtIGhhcyBhIGJ1ZyBhbmQgZXJyb25lb3VzbHkKICAgIGp1bXBzIHRvIGEgbm9uLWNvZGUgYWRkcmVzcywgaW4gd2hpY2ggY2FzZSB5b3UnbGwgZ2V0IGEgU0lHSUxMIHNpZ25hbC4KICAgIE1lbWNoZWNrIG1heSBpc3N1ZSBhIHdhcm5pbmcganVzdCBiZWZvcmUgdGhpcyBoYXBwZW5zLCBidXQgaXQgbWlnaHQgbm90CiAgICBpZiB0aGUganVtcCBoYXBwZW5zIHRvIGxhbmQgaW4gYWRkcmVzc2FibGUgbWVtb3J5LjwvcD4KPHA+QW5vdGhlciBwb3NzaWJpbGl0eSBpcyB0aGF0IFZhbGdyaW5kIGRvZXMgbm90IGhhbmRsZSB0aGUKICAgIGluc3RydWN0aW9uLiAgSWYgeW91IGFyZSB1c2luZyBhbiBvbGRlciBWYWxncmluZCwgYSBuZXdlciB2ZXJzaW9uIG1pZ2h0CiAgICBoYW5kbGUgdGhlIGluc3RydWN0aW9uLiAgSG93ZXZlciwgYWxsIGluc3RydWN0aW9uIHNldHMgaGF2ZSBzb21lCiAgICBvYnNjdXJlLCByYXJlbHkgdXNlZCBpbnN0cnVjdGlvbnMuICBBbHNvLCBvbiBhbWQ2NCB0aGVyZSBhcmUgYW4gYWxtb3N0CiAgICBsaW1pdGxlc3MgbnVtYmVyIG9mIGNvbWJpbmF0aW9ucyBvZiByZWR1bmRhbnQgaW5zdHJ1Y3Rpb24gcHJlZml4ZXMsIG1hbnkKICAgIG9mIHRoZW0gdW5kb2N1bWVudGVkIGJ1dCBhY2NlcHRlZCBieSBDUFVzLiAgU28gVmFsZ3JpbmQgd2lsbCBzdGlsbCBoYXZlCiAgICBkZWNvZGluZyBmYWlsdXJlcyBmcm9tIHRpbWUgdG8gdGltZS4gIElmIHRoaXMgaGFwcGVucywgcGxlYXNlIGZpbGUgYSBidWcKICAgIHJlcG9ydC48L3A+CjwvdGQ+CjwvdHI+Cjx0cj48dGQgY29sc3Bhbj0iMiI+oDwvdGQ+PC90cj4KPHRyIGNsYXNzPSJxdWVzdGlvbiI+Cjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPgo8YSBuYW1lPSJmYXEuamF2YSI+PC9hPjxhIG5hbWU9InEtamF2YSI+PC9hPjxiPjMuNC48L2I+CjwvdGQ+Cjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjxiPkkgdHJpZWQgcnVubmluZyBhIEphdmEgcHJvZ3JhbSAob3IgYW5vdGhlciBwcm9ncmFtIHRoYXQgdXNlcyBhCiAgICBqdXN0LWluLXRpbWUgY29tcGlsZXIpIHVuZGVyIFZhbGdyaW5kIGJ1dCBzb21ldGhpbmcgd2VudCB3cm9uZy4KICAgIERvZXMgVmFsZ3JpbmQgaGFuZGxlIHN1Y2ggcHJvZ3JhbXM/PC9iPjwvdGQ+CjwvdHI+Cjx0ciBjbGFzcz0iYW5zd2VyIj4KPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+PGEgbmFtZT0iYS1qYXZhIj48L2E+PC90ZD4KPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+CjxwPlZhbGdyaW5kIGNhbiBoYW5kbGUgZHluYW1pY2FsbHkgZ2VuZXJhdGVkIGNvZGUsIHNvIGxvbmcgYXMKICAgIG5vbmUgb2YgdGhlIGdlbmVyYXRlZCBjb2RlIGlzIGxhdGVyIG92ZXJ3cml0dGVuIGJ5IG90aGVyIGdlbmVyYXRlZAogICAgY29kZS4gIElmIHRoaXMgaGFwcGVucywgdGhvdWdoLCB0aGluZ3Mgd2lsbCBnbyB3cm9uZyBhcyBWYWxncmluZAogICAgd2lsbCBjb250aW51ZSBydW5uaW5nIGl0cyB0cmFuc2xhdGlvbnMgb2YgdGhlIG9sZCBjb2RlICh0aGlzIGlzIHRydWUKICAgIG9uIHg4NiBhbmQgYW1kNjQsIG9uIFBvd2VyUEMgdGhlcmUgYXJlIGV4cGxpY2l0IGNhY2hlIGZsdXNoCiAgICBpbnN0cnVjdGlvbnMgd2hpY2ggVmFsZ3JpbmQgZGV0ZWN0cyBhbmQgaG9ub3VycykuCiAgICBZb3Ugc2hvdWxkIHRyeSBydW5uaW5nIHdpdGgKICAgIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tc21jLWNoZWNrPWFsbDwvY29kZT4gaW4gdGhpcyBjYXNlLiAgVmFsZ3JpbmQgd2lsbCBydW4KICAgIG11Y2ggbW9yZSBzbG93bHksIGJ1dCBzaG91bGQgZGV0ZWN0IHRoZSB1c2Ugb2YgdGhlIG91dC1vZi1kYXRlCiAgICBjb2RlLjwvcD4KPHA+QWx0ZXJuYXRpdmVseSwgaWYgeW91IGhhdmUgdGhlIHNvdXJjZSBjb2RlIHRvIHRoZSBKSVQgY29tcGlsZXIKICAgIHlvdSBjYW4gaW5zZXJ0IGNhbGxzIHRvIHRoZQogICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5WQUxHUklORF9ESVNDQVJEX1RSQU5TTEFUSU9OUzwvY29kZT4KICAgIGNsaWVudCByZXF1ZXN0IHRvIG1hcmsgb3V0LW9mLWRhdGUgY29kZSwgc2F2aW5nIHlvdSBmcm9tIHVzaW5nCiAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXNtYy1jaGVjaz1hbGw8L2NvZGU+LjwvcD4KPHA+QXBhcnQgZnJvbSB0aGlzLCBpbiB0aGVvcnkgVmFsZ3JpbmQgY2FuIHJ1biBhbnkgSmF2YSBwcm9ncmFtCiAgICBqdXN0IGZpbmUsIGV2ZW4gdGhvc2UgdGhhdCB1c2UgSk5JIGFuZCBhcmUgcGFydGlhbGx5IGltcGxlbWVudGVkIGluCiAgICBvdGhlciBsYW5ndWFnZXMgbGlrZSBDIGFuZCBDKysuICBJbiBwcmFjdGljZSwgSmF2YSBpbXBsZW1lbnRhdGlvbnMKICAgIHRlbmQgdG8gZG8gbmFzdHkgdGhpbmdzIHRoYXQgbW9zdCBwcm9ncmFtcyBkbyBub3QsIGFuZCBWYWxncmluZAogICAgc29tZXRpbWVzIGZhbGxzIG92ZXIgdGhlc2UgY29ybmVyIGNhc2VzLjwvcD4KPHA+SWYgeW91ciBKYXZhIHByb2dyYW1zIGRvIG5vdCBydW4gdW5kZXIgVmFsZ3JpbmQsIGV2ZW4gd2l0aAogICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1zbWMtY2hlY2s9YWxsPC9jb2RlPiwgcGxlYXNlIGZpbGUgYSBidWcgcmVwb3J0IGFuZAogICAgaG9wZWZ1bGx5IHdlJ2xsIGJlIGFibGUgdG8gZml4IHRoZSBwcm9ibGVtLjwvcD4KPC90ZD4KPC90cj4KPC90YWJsZT4KPGJyPjx0YWJsZSB3aWR0aD0iMTAwJSIgc3VtbWFyeT0iUSBhbmQgQSBEaXYiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMiIgYm9yZGVyPSIwIj4KPHRyIGNsYXNzPSJxYW5kYWRpdiI+PHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCIgY29sc3Bhbj0iMiI+CjxhIG5hbWU9ImZhcS51bmV4cGVjdGVkIj48L2E+PGgzIGNsYXNzPSJ0aXRsZSI+CjxhIG5hbWU9ImZhcS51bmV4cGVjdGVkIj48L2E+NC4gVmFsZ3JpbmQgYmVoYXZlcyB1bmV4cGVjdGVkbHk8L2gzPgo8L3RkPjwvdHI+Cjx0ciBjbGFzcz0idG9jIiBjb2xzcGFuPSIyIj48dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIiBjb2xzcGFuPSIyIj40LjEuIDxhIGhyZWY9ImZhcS5odG1sI2ZhcS5yZXBvcnRzIj5NeSBwcm9ncmFtIHVzZXMgdGhlIEMrKyBTVEwgYW5kIHN0cmluZyBjbGFzc2VzLiAgVmFsZ3JpbmQKICAgIHJlcG9ydHMgJ3N0aWxsIHJlYWNoYWJsZScgbWVtb3J5IGxlYWtzIGludm9sdmluZyB0aGVzZSBjbGFzc2VzIGF0CiAgICB0aGUgZXhpdCBvZiB0aGUgcHJvZ3JhbSwgYnV0IHRoZXJlIHNob3VsZCBiZSBub25lLjwvYT48YnI+NC4yLiA8YSBocmVmPSJmYXEuaHRtbCNmYXEudW5oZWxwZnVsIj5UaGUgc3RhY2sgdHJhY2VzIGdpdmVuIGJ5IE1lbWNoZWNrIChvciBhbm90aGVyIHRvb2wpIGFyZW4ndAogICAgaGVscGZ1bC4gIEhvdyBjYW4gSSBpbXByb3ZlIHRoZW0/PC9hPjxicj40LjMuIDxhIGhyZWY9ImZhcS5odG1sI2ZhcS5hbGlhc2VzIj5UaGUgc3RhY2sgdHJhY2VzIGdpdmVuIGJ5IE1lbWNoZWNrIChvciBhbm90aGVyIHRvb2wpIHNlZW0gdG8KICAgIGhhdmUgdGhlIHdyb25nIGZ1bmN0aW9uIG5hbWUgaW4gdGhlbS4gIFdoYXQncyBoYXBwZW5pbmc/PC9hPjxicj40LjQuIDxhIGhyZWY9ImZhcS5odG1sI2ZhcS5jcmFzaGVzIj5NeSBwcm9ncmFtIGNyYXNoZXMgbm9ybWFsbHksIGJ1dCBkb2Vzbid0IHVuZGVyIFZhbGdyaW5kLCBvciB2aWNlCiAgICB2ZXJzYS4gIFdoYXQncyBoYXBwZW5pbmc/PC9hPjxicj40LjUuIDxhIGhyZWY9ImZhcS5odG1sI2ZhcS5oaWRkZW5idWciPiBNZW1jaGVjayBkb2Vzbid0IHJlcG9ydCBhbnkgZXJyb3JzIGFuZCBJIGtub3cgbXkgcHJvZ3JhbSBoYXMKICAgIGVycm9ycy48L2E+PGJyPjQuNi4gPGEgaHJlZj0iZmFxLmh0bWwjZmFxLm92ZXJydW5zIj5XaHkgZG9lc24ndCBNZW1jaGVjayBmaW5kIHRoZSBhcnJheSBvdmVycnVucyBpbiB0aGlzCiAgICBwcm9ncmFtPzwvYT48YnI+CjwvdGQ+PC90cj4KPHRyPjx0ZCBjb2xzcGFuPSIyIj6gPC90ZD48L3RyPgo8dHIgY2xhc3M9InF1ZXN0aW9uIj4KPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+CjxhIG5hbWU9ImZhcS5yZXBvcnRzIj48L2E+PGEgbmFtZT0icS1yZXBvcnRzIj48L2E+PGI+NC4xLjwvYj4KPC90ZD4KPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+PGI+TXkgcHJvZ3JhbSB1c2VzIHRoZSBDKysgU1RMIGFuZCBzdHJpbmcgY2xhc3Nlcy4gIFZhbGdyaW5kCiAgICByZXBvcnRzICdzdGlsbCByZWFjaGFibGUnIG1lbW9yeSBsZWFrcyBpbnZvbHZpbmcgdGhlc2UgY2xhc3NlcyBhdAogICAgdGhlIGV4aXQgb2YgdGhlIHByb2dyYW0sIGJ1dCB0aGVyZSBzaG91bGQgYmUgbm9uZS48L2I+PC90ZD4KPC90cj4KPHRyIGNsYXNzPSJhbnN3ZXIiPgo8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj48YSBuYW1lPSJhLXJlcG9ydHMiPjwvYT48L3RkPgo8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj4KPHA+Rmlyc3Qgb2YgYWxsOiByZWxheCwgaXQncyBwcm9iYWJseSBub3QgYSBidWcsIGJ1dCBhIGZlYXR1cmUuCiAgICBNYW55IGltcGxlbWVudGF0aW9ucyBvZiB0aGUgQysrIHN0YW5kYXJkIGxpYnJhcmllcyB1c2UgdGhlaXIgb3duCiAgICBtZW1vcnkgcG9vbCBhbGxvY2F0b3JzLiAgTWVtb3J5IGZvciBxdWl0ZSBhIG51bWJlciBvZiBkZXN0cnVjdGVkCiAgICBvYmplY3RzIGlzIG5vdCBpbW1lZGlhdGVseSBmcmVlZCBhbmQgZ2l2ZW4gYmFjayB0byB0aGUgT1MsIGJ1dCBrZXB0CiAgICBpbiB0aGUgcG9vbChzKSBmb3IgbGF0ZXIgcmUtdXNlLiAgVGhlIGZhY3QgdGhhdCB0aGUgcG9vbHMgYXJlIG5vdAogICAgZnJlZWQgYXQgdGhlIGV4aXQgb2YgdGhlIHByb2dyYW0gY2F1c2UgVmFsZ3JpbmQgdG8gcmVwb3J0IHRoaXMKICAgIG1lbW9yeSBhcyBzdGlsbCByZWFjaGFibGUuICBUaGUgYmVoYXZpb3VyIG5vdCB0byBmcmVlIHBvb2xzIGF0IHRoZQogICAgZXhpdCBjb3VsZCBiZSBjYWxsZWQgYSBidWcgb2YgdGhlIGxpYnJhcnkgdGhvdWdoLjwvcD4KPHA+VXNpbmcgR0NDLCB5b3UgY2FuIGZvcmNlIHRoZSBTVEwgdG8gdXNlIG1hbGxvYyBhbmQgdG8gZnJlZQogICAgbWVtb3J5IGFzIHNvb24gYXMgcG9zc2libGUgYnkgZ2xvYmFsbHkgZGlzYWJsaW5nIG1lbW9yeSBjYWNoaW5nLgogICAgQmV3YXJlISAgRG9pbmcgc28gd2lsbCBwcm9iYWJseSBzbG93IGRvd24geW91ciBwcm9ncmFtLCBzb21ldGltZXMKICAgIGRyYXN0aWNhbGx5LjwvcD4KPGRpdiBjbGFzcz0iaXRlbWl6ZWRsaXN0Ij48dWwgY2xhc3M9Iml0ZW1pemVkbGlzdCIgc3R5bGU9Imxpc3Qtc3R5bGUtdHlwZTogZGlzYzsgIj4KPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+V2l0aCBHQ0MgMi45MSwgMi45NSwgMy4wIGFuZCAzLjEsIGNvbXBpbGUgYWxsIHNvdXJjZSB1c2luZwogICAgICAgIHRoZSBTVEwgd2l0aCA8Y29kZSBjbGFzcz0ibGl0ZXJhbCI+LURfX1VTRV9NQUxMT0M8L2NvZGU+LiBCZXdhcmUhICBUaGlzIHdhcwogICAgICAgIHJlbW92ZWQgZnJvbSBHQ0Mgc3RhcnRpbmcgd2l0aCB2ZXJzaW9uIDMuMy48L3A+PC9saT4KPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+V2l0aCBHQ0MgMy4yLjIgYW5kIGxhdGVyLCB5b3Ugc2hvdWxkIGV4cG9ydCB0aGUKICAgICAgICBlbnZpcm9ubWVudCB2YXJpYWJsZSA8Y29kZSBjbGFzcz0ibGl0ZXJhbCI+R0xJQkNQUF9GT1JDRV9ORVc8L2NvZGU+IGJlZm9yZQogICAgICAgIHJ1bm5pbmcgeW91ciBwcm9ncmFtLjwvcD48L2xpPgo8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD5XaXRoIEdDQyAzLjQgYW5kIGxhdGVyLCB0aGF0IHZhcmlhYmxlIGhhcyBjaGFuZ2VkIG5hbWUgdG8KICAgICAgICA8Y29kZSBjbGFzcz0ibGl0ZXJhbCI+R0xJQkNYWF9GT1JDRV9ORVc8L2NvZGU+LjwvcD48L2xpPgo8L3VsPjwvZGl2Pgo8cD5UaGVyZSBhcmUgb3RoZXIgd2F5cyB0byBkaXNhYmxlIG1lbW9yeSBwb29saW5nOiB1c2luZyB0aGUKICAgIDxjb2RlIGNsYXNzPSJsaXRlcmFsIj5tYWxsb2NfYWxsb2M8L2NvZGU+IHRlbXBsYXRlIHdpdGggeW91ciBvYmplY3RzIChub3QKICAgIHBvcnRhYmxlLCBidXQgc2hvdWxkIHdvcmsgZm9yIEdDQykgb3IgZXZlbiB3cml0aW5nIHlvdXIgb3duIG1lbW9yeQogICAgYWxsb2NhdG9ycy4gQnV0IGFsbCB0aGlzIGdvZXMgYmV5b25kIHRoZSBzY29wZSBvZiB0aGlzIEZBUS4gIFN0YXJ0CiAgICBieSByZWFkaW5nIAogICAgPGEgY2xhc3M9InVsaW5rIiBocmVmPSJodHRwOi8vZ2NjLmdudS5vcmcvb25saW5lZG9jcy9saWJzdGRjKysvZmFxL2luZGV4Lmh0bWwjNF80X2xlYWsiIHRhcmdldD0iX3RvcCI+CiAgICAgICAgIGh0dHA6Ly9nY2MuZ251Lm9yZy9vbmxpbmVkb2NzL2xpYnN0ZGMrKy9mYXEvaW5kZXguaHRtbCM0XzRfbGVhazwvYT4KICAgIGlmIHlvdSBhYnNvbHV0ZWx5IHdhbnQgdG8gZG8gdGhhdC4gQnV0IGJld2FyZTogCiAgICBhbGxvY2F0b3JzIGJlbG9uZyB0byB0aGUgbW9yZSBtZXNzeSBwYXJ0cyBvZiB0aGUgU1RMIGFuZAogICAgcGVvcGxlIHdlbnQgdG8gZ3JlYXQgbGVuZ3RocyB0byBtYWtlIHRoZSBTVEwgcG9ydGFibGUgYWNyb3NzCiAgICBwbGF0Zm9ybXMuIENoYW5jZXMgYXJlIGdvb2QgdGhhdCB5b3VyIHNvbHV0aW9uIHdpbGwgd29yayBvbiB5b3VyCiAgICBwbGF0Zm9ybSwgYnV0IG5vdCBvbiBvdGhlcnMuPC9wPgo8L3RkPgo8L3RyPgo8dHI+PHRkIGNvbHNwYW49IjIiPqA8L3RkPjwvdHI+Cjx0ciBjbGFzcz0icXVlc3Rpb24iPgo8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj4KPGEgbmFtZT0iZmFxLnVuaGVscGZ1bCI+PC9hPjxhIG5hbWU9InEtdW5oZWxwZnVsIj48L2E+PGI+NC4yLjwvYj4KPC90ZD4KPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+PGI+VGhlIHN0YWNrIHRyYWNlcyBnaXZlbiBieSBNZW1jaGVjayAob3IgYW5vdGhlciB0b29sKSBhcmVuJ3QKICAgIGhlbHBmdWwuICBIb3cgY2FuIEkgaW1wcm92ZSB0aGVtPzwvYj48L3RkPgo8L3RyPgo8dHIgY2xhc3M9ImFuc3dlciI+Cjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjxhIG5hbWU9ImEtdW5oZWxwZnVsIj48L2E+PC90ZD4KPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+CjxwPklmIHRoZXkncmUgbm90IGxvbmcgZW5vdWdoLCB1c2UgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1udW0tY2FsbGVyczwvY29kZT4KICAgIHRvIG1ha2UgdGhlbSBsb25nZXIuPC9wPgo8cD5JZiB0aGV5J3JlIG5vdCBkZXRhaWxlZCBlbm91Z2gsIG1ha2Ugc3VyZSB5b3UgYXJlIGNvbXBpbGluZwogICAgd2l0aCA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tZzwvY29kZT4gdG8gYWRkIGRlYnVnIGluZm9ybWF0aW9uLiAgQW5kIGRvbid0IHN0cmlwCiAgICBzeW1ib2wgdGFibGVzIChwcm9ncmFtcyBzaG91bGQgYmUgdW5zdHJpcHBlZCB1bmxlc3MgeW91IHJ1biAnc3RyaXAnCiAgICBvbiB0aGVtOyBzb21lIGxpYnJhcmllcyBzaGlwIHN0cmlwcGVkKS48L3A+CjxwPkFsc28sIGZvciBsZWFrIHJlcG9ydHMgaW52b2x2aW5nIHNoYXJlZCBvYmplY3RzLCBpZiB0aGUgc2hhcmVkCiAgICBvYmplY3QgaXMgdW5sb2FkZWQgYmVmb3JlIHRoZSBwcm9ncmFtIHRlcm1pbmF0ZXMsIFZhbGdyaW5kIHdpbGwKICAgIGRpc2NhcmQgdGhlIGRlYnVnIGluZm9ybWF0aW9uIGFuZCB0aGUgZXJyb3IgbWVzc2FnZSB3aWxsIGJlIGZ1bGwgb2YKICAgIDxjb2RlIGNsYXNzPSJsaXRlcmFsIj4/Pz88L2NvZGU+IGVudHJpZXMuICBUaGUgd29ya2Fyb3VuZCBoZXJlIGlzIHRvIGF2b2lkCiAgICBjYWxsaW5nIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+ZGxjbG9zZTwvY29kZT4gb24gdGhlc2Ugc2hhcmVkIG9iamVjdHMuPC9wPgo8cD5BbHNvLCA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tZm9taXQtZnJhbWUtcG9pbnRlcjwvY29kZT4gYW5kCiAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tZnN0YWNrLWNoZWNrPC9jb2RlPiBjYW4gbWFrZSBzdGFjayB0cmFjZXMgd29yc2UuPC9wPgo8cD5Tb21lIGV4YW1wbGUgc3ViLXRyYWNlczo8L3A+CjxkaXYgY2xhc3M9Iml0ZW1pemVkbGlzdCI+PHVsIGNsYXNzPSJpdGVtaXplZGxpc3QiIHN0eWxlPSJsaXN0LXN0eWxlLXR5cGU6IGRpc2M7ICI+CjxsaSBjbGFzcz0ibGlzdGl0ZW0iPgo8cD5XaXRoIGRlYnVnIGluZm9ybWF0aW9uIGFuZCB1bnN0cmlwcGVkIChiZXN0KTo8L3A+CjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KSW52YWxpZCB3cml0ZSBvZiBzaXplIDEKICAgYXQgMHg4MDQ4M0JGOiByZWFsbHkgKG1hbGxvYzEuYzoyMCkKICAgYnkgMHg4MDQ4MzcwOiBtYWluIChtYWxsb2MxLmM6OSkKPC9wcmU+CjwvbGk+CjxsaSBjbGFzcz0ibGlzdGl0ZW0iPgo8cD5XaXRoIG5vIGRlYnVnIGluZm9ybWF0aW9uLCB1bnN0cmlwcGVkOjwvcD4KPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPgpJbnZhbGlkIHdyaXRlIG9mIHNpemUgMQogICBhdCAweDgwNDgzQkY6IHJlYWxseSAoaW4gL2F1dG8vaG9tZXMvbmpuMjUvZ3JpbmQvaGVhZDUvYS5vdXQpCiAgIGJ5IDB4ODA0ODM3MDogbWFpbiAoaW4gL2F1dG8vaG9tZXMvbmpuMjUvZ3JpbmQvaGVhZDUvYS5vdXQpCjwvcHJlPgo8L2xpPgo8bGkgY2xhc3M9Imxpc3RpdGVtIj4KPHA+V2l0aCBubyBkZWJ1ZyBpbmZvcm1hdGlvbiwgc3RyaXBwZWQ6PC9wPgo8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CkludmFsaWQgd3JpdGUgb2Ygc2l6ZSAxCiAgIGF0IDB4ODA0ODNCRjogKHdpdGhpbiAvYXV0by9ob21lcy9uam4yNS9ncmluZC9oZWFkNS9hLm91dCkKICAgYnkgMHg4MDQ4MzcwOiAod2l0aGluIC9hdXRvL2hvbWVzL25qbjI1L2dyaW5kL2hlYWQ1L2Eub3V0KQogICBieSAweDQyMDE1NzAzOiBfX2xpYmNfc3RhcnRfbWFpbiAoaW4gL2xpYi90bHMvbGliYy0yLjMuMi5zbykKICAgYnkgMHg4MDQ4MkNDOiAod2l0aGluIC9hdXRvL2hvbWVzL25qbjI1L2dyaW5kL2hlYWQ1L2Eub3V0KQo8L3ByZT4KPC9saT4KPGxpIGNsYXNzPSJsaXN0aXRlbSI+CjxwPldpdGggZGVidWcgaW5mb3JtYXRpb24gYW5kIC1mb21pdC1mcmFtZS1wb2ludGVyOjwvcD4KPHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPgpJbnZhbGlkIHdyaXRlIG9mIHNpemUgMQogICBhdCAweDgwNDgzQzQ6IHJlYWxseSAobWFsbG9jMS5jOjIwKQogICBieSAweDQyMDE1NzAzOiBfX2xpYmNfc3RhcnRfbWFpbiAoaW4gL2xpYi90bHMvbGliYy0yLjMuMi5zbykKICAgYnkgMHg4MDQ4MkNDOiA/Pz8gKHN0YXJ0LlM6ODEpCjwvcHJlPgo8L2xpPgo8bGkgY2xhc3M9Imxpc3RpdGVtIj4KPHA+QSBsZWFrIGVycm9yIG1lc3NhZ2UgaW52b2x2aW5nIGFuIHVubG9hZGVkIHNoYXJlZCBvYmplY3Q6PC9wPgo8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Cjg0IGJ5dGVzIGluIDEgYmxvY2tzIGFyZSBwb3NzaWJseSBsb3N0IGluIGxvc3MgcmVjb3JkIDQ4OCBvZiA3MTMKICAgYXQgMHgxQjkwMzZEQTogb3BlcmF0b3IgbmV3KHVuc2lnbmVkKSAodmdfcmVwbGFjZV9tYWxsb2MuYzoxMzIpCiAgIGJ5IDB4MURCNjNFRUI6ID8/PwogICBieSAweDFEQjRCODAwOiA/Pz8KICAgYnkgMHgxRDY1RTAwNzogPz8/CiAgIGJ5IDB4ODA0OUVFNjogbWFpbiAobWFpbi5jcHA6MjQpCjwvcHJlPgo8L2xpPgo8L3VsPjwvZGl2Pgo8L3RkPgo8L3RyPgo8dHI+PHRkIGNvbHNwYW49IjIiPqA8L3RkPjwvdHI+Cjx0ciBjbGFzcz0icXVlc3Rpb24iPgo8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj4KPGEgbmFtZT0iZmFxLmFsaWFzZXMiPjwvYT48YSBuYW1lPSJxLWFsaWFzZXMiPjwvYT48Yj40LjMuPC9iPgo8L3RkPgo8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj48Yj5UaGUgc3RhY2sgdHJhY2VzIGdpdmVuIGJ5IE1lbWNoZWNrIChvciBhbm90aGVyIHRvb2wpIHNlZW0gdG8KICAgIGhhdmUgdGhlIHdyb25nIGZ1bmN0aW9uIG5hbWUgaW4gdGhlbS4gIFdoYXQncyBoYXBwZW5pbmc/PC9iPjwvdGQ+CjwvdHI+Cjx0ciBjbGFzcz0iYW5zd2VyIj4KPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+PGEgbmFtZT0iYS1hbGlhc2VzIj48L2E+PC90ZD4KPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+PHA+T2NjYXNpb25hbGx5IFZhbGdyaW5kIHN0YWNrIHRyYWNlcyBnZXQgdGhlIHdyb25nIGZ1bmN0aW9uCiAgICBuYW1lcy4gIFRoaXMgaXMgY2F1c2VkIGJ5IGdsaWJjIHVzaW5nIGFsaWFzZXMgdG8gZWZmZWN0aXZlbHkgZ2l2ZQogICAgb25lIGZ1bmN0aW9uIHR3byBuYW1lcy4gIE1vc3Qgb2YgdGhlIHRpbWUgVmFsZ3JpbmQgY2hvb3NlcyBhCiAgICBzdWl0YWJsZSBuYW1lLCBidXQgdmVyeSBvY2Nhc2lvbmFsbHkgaXQgZ2V0cyBpdCB3cm9uZy4gIEV4YW1wbGVzIHdlIGtub3cKICAgIG9mIGFyZSBwcmludGluZyA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPmJjbXA8L2NvZGU+IGluc3RlYWQgb2YKICAgIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+bWVtY21wPC9jb2RlPiwgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5pbmRleDwvY29kZT4gaW5zdGVhZCBvZgogICAgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5zdHJjaHI8L2NvZGU+LCBhbmQgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5yaW5kZXg8L2NvZGU+IGluc3RlYWQgb2YKICAgIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+c3RycmNocjwvY29kZT4uPC9wPjwvdGQ+CjwvdHI+Cjx0cj48dGQgY29sc3Bhbj0iMiI+oDwvdGQ+PC90cj4KPHRyIGNsYXNzPSJxdWVzdGlvbiI+Cjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPgo8YSBuYW1lPSJmYXEuY3Jhc2hlcyI+PC9hPjxhIG5hbWU9InEtY3Jhc2hlcyI+PC9hPjxiPjQuNC48L2I+CjwvdGQ+Cjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjxiPk15IHByb2dyYW0gY3Jhc2hlcyBub3JtYWxseSwgYnV0IGRvZXNuJ3QgdW5kZXIgVmFsZ3JpbmQsIG9yIHZpY2UKICAgIHZlcnNhLiAgV2hhdCdzIGhhcHBlbmluZz88L2I+PC90ZD4KPC90cj4KPHRyIGNsYXNzPSJhbnN3ZXIiPgo8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj48YSBuYW1lPSJhLWNyYXNoZXMiPjwvYT48L3RkPgo8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj4KPHA+V2hlbiBhIHByb2dyYW0gcnVucyB1bmRlciBWYWxncmluZCwgaXRzIGVudmlyb25tZW50IGlzIHNsaWdodGx5CiAgICBkaWZmZXJlbnQgdG8gd2hlbiBpdCBydW5zIG5hdGl2ZWx5LiAgRm9yIGV4YW1wbGUsIHRoZSBtZW1vcnkgbGF5b3V0IGlzCiAgICBkaWZmZXJlbnQsIGFuZCB0aGUgd2F5IHRoYXQgdGhyZWFkcyBhcmUgc2NoZWR1bGVkIGlzIGRpZmZlcmVudC48L3A+CjxwPk1vc3Qgb2YgdGhlIHRpbWUgdGhpcyBkb2Vzbid0IG1ha2UgYW55IGRpZmZlcmVuY2UsIGJ1dCBpdCBjYW4sCiAgICBwYXJ0aWN1bGFybHkgaWYgeW91ciBwcm9ncmFtIGlzIGJ1Z2d5LiAgRm9yIGV4YW1wbGUsIGlmIHlvdXIgcHJvZ3JhbQogICAgY3Jhc2hlcyBiZWNhdXNlIGl0IGVycm9uZW91c2x5IGFjY2Vzc2VzIG1lbW9yeSB0aGF0IGlzIHVuYWRkcmVzc2FibGUsCiAgICBpdCdzIHBvc3NpYmxlIHRoYXQgdGhpcyBtZW1vcnkgd2lsbCBub3QgYmUgdW5hZGRyZXNzYWJsZSB3aGVuIHJ1biB1bmRlcgogICAgVmFsZ3JpbmQuICBBbHRlcm5hdGl2ZWx5LCBpZiB5b3VyIHByb2dyYW0gaGFzIGRhdGEgcmFjZXMsIHRoZXNlIG1heSBub3QKICAgIG1hbmlmZXN0IHVuZGVyIFZhbGdyaW5kLjwvcD4KPHA+VGhlcmUgaXNuJ3QgYW55dGhpbmcgeW91IGNhbiBkbyB0byBjaGFuZ2UgdGhpcywgaXQncyBqdXN0IHRoZQogICAgbmF0dXJlIG9mIHRoZSB3YXkgVmFsZ3JpbmQgd29ya3MgdGhhdCBpdCBjYW5ub3QgZXhhY3RseSByZXBsaWNhdGUgYQogICAgbmF0aXZlIGV4ZWN1dGlvbiBlbnZpcm9ubWVudC4gIEluIHRoZSBjYXNlIHdoZXJlIHlvdXIgcHJvZ3JhbSBjcmFzaGVzCiAgICBkdWUgdG8gYSBtZW1vcnkgZXJyb3Igd2hlbiBydW4gbmF0aXZlbHkgYnV0IG5vdCB3aGVuIHJ1biB1bmRlciBWYWxncmluZCwKICAgIGluIG1vc3QgY2FzZXMgTWVtY2hlY2sgc2hvdWxkIGlkZW50aWZ5IHRoZSBiYWQgbWVtb3J5IG9wZXJhdGlvbi48L3A+CjwvdGQ+CjwvdHI+Cjx0cj48dGQgY29sc3Bhbj0iMiI+oDwvdGQ+PC90cj4KPHRyIGNsYXNzPSJxdWVzdGlvbiI+Cjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPgo8YSBuYW1lPSJmYXEuaGlkZGVuYnVnIj48L2E+PGEgbmFtZT0icS1oaWRkZW5idWciPjwvYT48Yj40LjUuPC9iPgo8L3RkPgo8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj48Yj4gTWVtY2hlY2sgZG9lc24ndCByZXBvcnQgYW55IGVycm9ycyBhbmQgSSBrbm93IG15IHByb2dyYW0gaGFzCiAgICBlcnJvcnMuPC9iPjwvdGQ+CjwvdHI+Cjx0ciBjbGFzcz0iYW5zd2VyIj4KPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+PGEgbmFtZT0iYS1oaWRkZW5idWciPjwvYT48L3RkPgo8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj4KPHA+VGhlcmUgYXJlIHR3byBwb3NzaWJsZSBjYXVzZXMgb2YgdGhpcy48L3A+CjxwPkZpcnN0LCBieSBkZWZhdWx0LCBWYWxncmluZCBvbmx5IHRyYWNlcyB0aGUgdG9wLWxldmVsIHByb2Nlc3MuCiAgICBTbyBpZiB5b3VyIHByb2dyYW0gc3Bhd25zIGNoaWxkcmVuLCB0aGV5IHdvbid0IGJlIHRyYWNlZCBieSBWYWxncmluZAogICAgYnkgZGVmYXVsdC4gIEFsc28sIGlmIHlvdXIgcHJvZ3JhbSBpcyBzdGFydGVkIGJ5IGEgc2hlbGwgc2NyaXB0LAogICAgUGVybCBzY3JpcHQsIG9yIHNvbWV0aGluZyBzaW1pbGFyLCBWYWxncmluZCB3aWxsIHRyYWNlIHRoZSBzaGVsbCwgb3IKICAgIHRoZSBQZXJsIGludGVycHJldGVyLCBvciBlcXVpdmFsZW50LjwvcD4KPHA+VG8gdHJhY2UgY2hpbGQgcHJvY2Vzc2VzLCB1c2UgdGhlCiAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXRyYWNlLWNoaWxkcmVuPXllczwvY29kZT4gb3B0aW9uLjwvcD4KPHA+SWYgeW91IGFyZSB0cmFjaW5nIGxhcmdlIHRyZWVzIG9mIHByb2Nlc3NlcywgaXQgY2FuIGJlIGxlc3MKICAgIGRpc3J1cHRpdmUgdG8gaGF2ZSB0aGUgb3V0cHV0IHNlbnQgb3ZlciB0aGUgbmV0d29yay4gIEdpdmUgVmFsZ3JpbmQKICAgIHRoZSBvcHRpb24gPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS1sb2ctc29ja2V0PTEyNy4wLjAuMToxMjM0NTwvY29kZT4gKGlmIHlvdSB3YW50CiAgICBsb2dnaW5nIG91dHB1dCBzZW50IHRvIHBvcnQgPGNvZGUgY2xhc3M9ImxpdGVyYWwiPjEyMzQ1PC9jb2RlPiBvbgogICAgPGNvZGUgY2xhc3M9ImxpdGVyYWwiPmxvY2FsaG9zdDwvY29kZT4pLiAgWW91IGNhbiB1c2UgdGhlIHZhbGdyaW5kLWxpc3RlbmVyCiAgICBwcm9ncmFtIHRvIGxpc3RlbiBvbiB0aGF0IHBvcnQ6PC9wPgo8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CnZhbGdyaW5kLWxpc3RlbmVyIDEyMzQ1CjwvcHJlPgo8cD5PYnZpb3VzbHkgeW91IGhhdmUgdG8gc3RhcnQgdGhlIGxpc3RlbmVyIHByb2Nlc3MgZmlyc3QuICBTZWUKICAgIHRoZSBtYW51YWwgZm9yIG1vcmUgZGV0YWlscy48L3A+CjxwPlNlY29uZCwgaWYgeW91ciBwcm9ncmFtIGlzIHN0YXRpY2FsbHkgbGlua2VkLCBtb3N0IFZhbGdyaW5kCiAgICB0b29scyB3aWxsIG9ubHkgd29yayB3ZWxsIGlmIHRoZXkgYXJlIGFibGUgdG8gcmVwbGFjZSBjZXJ0YWluCiAgICBmdW5jdGlvbnMsIHN1Y2ggYXMgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5tYWxsb2M8L2NvZGU+LCB3aXRoIHRoZWlyIG93bgogICAgdmVyc2lvbnMuICBCeSBkZWZhdWx0LCBzdGF0aWNhbGx5IGxpbmtlZCA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPm1hbGxvYwogICAgZnVuY3Rpb25zPC9jb2RlPiBhcmUgbm90IHJlcGxhY2VkLiBBIGtleSBpbmRpY2F0b3Igb2YgdGhpcyBpcwogICAgaWYgTWVtY2hlY2sgc2F5czoKPC9wPgo8cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+CkFsbCBoZWFwIGJsb2NrcyB3ZXJlIGZyZWVkIC0tIG5vIGxlYWtzIGFyZSBwb3NzaWJsZQo8L3ByZT4KPHA+CiAgICB3aGVuIHlvdSBrbm93IHlvdXIgcHJvZ3JhbSBjYWxscyA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPm1hbGxvYzwvY29kZT4uICBUaGUKICAgIHdvcmthcm91bmQgaXMgdG8gdXNlIHRoZSBvcHRpb24gCiAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXNvbmFtZS1zeW5vbnltcz1zb21hbGxvYz1OT05FPC9jb2RlPgogICAgb3IgdG8gYXZvaWQgc3RhdGljYWxseSBsaW5raW5nIHlvdXIgcHJvZ3JhbS48L3A+CjxwPlRoZXJlIHdpbGwgYWxzbyBiZSBubyByZXBsYWNlbWVudCBpZiB5b3UgdXNlIGFuIGFsdGVybmF0aXZlIAogICAgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5tYWxsb2MgbGlicmFyeTwvY29kZT4gc3VjaCBhcyB0Y21hbGxvYywgamVtYWxsb2MsCiAgICAuLi4gIEluIHN1Y2ggYSBjYXNlLCB0aGUKICAgIG9wdGlvbiA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXNvbmFtZS1zeW5vbnltcz1zb21hbGxvYz16enp6PC9jb2RlPiAod2hlcmUKICAgIHp6enogaXMgdGhlIHNvbmFtZSBvZiB0aGUgYWx0ZXJuYXRpdmUgbWFsbG9jIGxpYnJhcnkpIHdpbGwgYWxsb3cKICAgIFZhbGdyaW5kIHRvIHJlcGxhY2UgdGhlIGZ1bmN0aW9ucy48L3A+CjwvdGQ+CjwvdHI+Cjx0cj48dGQgY29sc3Bhbj0iMiI+oDwvdGQ+PC90cj4KPHRyIGNsYXNzPSJxdWVzdGlvbiI+Cjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPgo8YSBuYW1lPSJmYXEub3ZlcnJ1bnMiPjwvYT48YSBuYW1lPSJxLW92ZXJydW5zIj48L2E+PGI+NC42LjwvYj4KPC90ZD4KPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+CjxiPldoeSBkb2Vzbid0IE1lbWNoZWNrIGZpbmQgdGhlIGFycmF5IG92ZXJydW5zIGluIHRoaXMKICAgIHByb2dyYW0/PC9iPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KaW50IHN0YXRpY1s1XTsKCmludCBtYWluKHZvaWQpCnsKICBpbnQgc3RhY2tbNV07CgogIHN0YXRpY1s1XSA9IDA7CiAgc3RhY2sgWzVdID0gMDsKICAgICAgICAgIAogIHJldHVybiAwOwp9CjwvcHJlPgo8L3RkPgo8L3RyPgo8dHIgY2xhc3M9ImFuc3dlciI+Cjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjxhIG5hbWU9ImEtb3ZlcnJ1bnMiPjwvYT48L3RkPgo8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj4KPHA+VW5mb3J0dW5hdGVseSwgTWVtY2hlY2sgZG9lc24ndCBkbyBib3VuZHMgY2hlY2tpbmcgb24gZ2xvYmFsCiAgICBvciBzdGFjayBhcnJheXMuICBXZSdkIGxpa2UgdG8sIGJ1dCBpdCdzIGp1c3Qgbm90IHBvc3NpYmxlIHRvIGRvIGluCiAgICBhIHJlYXNvbmFibGUgd2F5IHRoYXQgZml0cyB3aXRoIGhvdyBNZW1jaGVjayB3b3Jrcy4gIFNvcnJ5LjwvcD4KPHA+SG93ZXZlciwgdGhlIGV4cGVyaW1lbnRhbCB0b29sIFNHY2hlY2sgY2FuIGRldGVjdCBlcnJvcnMgbGlrZQogICAgdGhpcy4gIFJ1biBWYWxncmluZCB3aXRoIHRoZSA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXRvb2w9ZXhwLXNnY2hlY2s8L2NvZGU+IG9wdGlvbgogICAgdG8gdHJ5IGl0LCBidXQgYmUgYXdhcmUgdGhhdCBpdCBpcyBub3QgYXMgcm9idXN0IGFzIE1lbWNoZWNrLjwvcD4KPC90ZD4KPC90cj4KPC90YWJsZT4KPGJyPjx0YWJsZSB3aWR0aD0iMTAwJSIgc3VtbWFyeT0iUSBhbmQgQSBEaXYiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMiIgYm9yZGVyPSIwIj4KPHRyIGNsYXNzPSJxYW5kYWRpdiI+PHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCIgY29sc3Bhbj0iMiI+CjxhIG5hbWU9ImZhcS5taXNjIj48L2E+PGgzIGNsYXNzPSJ0aXRsZSI+CjxhIG5hbWU9ImZhcS5taXNjIj48L2E+NS4gTWlzY2VsbGFuZW91czwvaDM+CjwvdGQ+PC90cj4KPHRyIGNsYXNzPSJ0b2MiIGNvbHNwYW49IjIiPjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiIGNvbHNwYW49IjIiPjUuMS4gPGEgaHJlZj0iZmFxLmh0bWwjZmFxLndyaXRlc3VwcCI+SSB0cmllZCB3cml0aW5nIGEgc3VwcHJlc3Npb24gYnV0IGl0IGRpZG4ndCB3b3JrLiAgQ2FuIHlvdQogICAgd3JpdGUgbXkgc3VwcHJlc3Npb24gZm9yIG1lPzwvYT48YnI+NS4yLiA8YSBocmVmPSJmYXEuaHRtbCNmYXEuZGVmbG9zdCI+V2l0aCBNZW1jaGVjaydzIG1lbW9yeSBsZWFrIGRldGVjdG9yLCB3aGF0J3MgdGhlCiAgICBkaWZmZXJlbmNlIGJldHdlZW4gImRlZmluaXRlbHkgbG9zdCIsICJpbmRpcmVjdGx5IGxvc3QiLCAicG9zc2libHkKICAgIGxvc3QiLCAic3RpbGwgcmVhY2hhYmxlIiwgYW5kICJzdXBwcmVzc2VkIj88L2E+PGJyPjUuMy4gPGEgaHJlZj0iZmFxLmh0bWwjZmFxLnVuZGVmZXJyb3JzIj5NZW1jaGVjaydzIHVuaW5pdGlhbGlzZWQgdmFsdWUgZXJyb3JzIGFyZSBoYXJkIHRvIHRyYWNrIGRvd24sCiAgICBiZWNhdXNlIHRoZXkgYXJlIG9mdGVuIHJlcG9ydGVkIHNvbWUgdGltZSBhZnRlciB0aGV5IGFyZSBjYXVzZWQuICBDb3VsZCAKICAgIE1lbWNoZWNrIHJlY29yZCBhIHRyYWlsIG9mIG9wZXJhdGlvbnMgdG8gYmV0dGVyIGxpbmsgdGhlIGNhdXNlIHRvIHRoZQogICAgZWZmZWN0PyAgT3IgbWF5YmUganVzdCBlYWdlcmx5IHJlcG9ydCBhbnkgY29waWVzIG9mIHVuaW5pdGlhbGlzZWQKICAgIG1lbW9yeSB2YWx1ZXM/PC9hPjxicj41LjQuIDxhIGhyZWY9ImZhcS5odG1sI2ZhcS5hdHRhY2giPklzIGl0IHBvc3NpYmxlIHRvIGF0dGFjaCBWYWxncmluZCB0byBhIHByb2dyYW0gdGhhdCBpcyBhbHJlYWR5CiAgICBydW5uaW5nPzwvYT48YnI+CjwvdGQ+PC90cj4KPHRyPjx0ZCBjb2xzcGFuPSIyIj6gPC90ZD48L3RyPgo8dHIgY2xhc3M9InF1ZXN0aW9uIj4KPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+CjxhIG5hbWU9ImZhcS53cml0ZXN1cHAiPjwvYT48YSBuYW1lPSJxLXdyaXRlc3VwcCI+PC9hPjxiPjUuMS48L2I+CjwvdGQ+Cjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjxiPkkgdHJpZWQgd3JpdGluZyBhIHN1cHByZXNzaW9uIGJ1dCBpdCBkaWRuJ3Qgd29yay4gIENhbiB5b3UKICAgIHdyaXRlIG15IHN1cHByZXNzaW9uIGZvciBtZT88L2I+PC90ZD4KPC90cj4KPHRyIGNsYXNzPSJhbnN3ZXIiPgo8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj48YSBuYW1lPSJhLXdyaXRlc3VwcCI+PC9hPjwvdGQ+Cjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPgo8cD5ZZXMhICBVc2UgdGhlIDxjb2RlIGNsYXNzPSJvcHRpb24iPi0tZ2VuLXN1cHByZXNzaW9ucz15ZXM8L2NvZGU+IGZlYXR1cmUKICAgIHRvIHNwaXQgb3V0IHN1cHByZXNzaW9ucyBhdXRvbWF0aWNhbGx5IGZvciB5b3UuICBZb3UgY2FuIHRoZW4gZWRpdAogICAgdGhlbSBpZiB5b3UgbGlrZSwgZWcuICBjb21iaW5pbmcgc2ltaWxhciBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZAogICAgc3VwcHJlc3Npb25zIHVzaW5nIHdpbGRjYXJkcyBsaWtlIDxjb2RlIGNsYXNzPSJsaXRlcmFsIj4nKic8L2NvZGU+LjwvcD4KPHA+SWYgeW91IHJlYWxseSB3YW50IHRvIHdyaXRlIHN1cHByZXNzaW9ucyBieSBoYW5kLCByZWFkIHRoZQogICAgbWFudWFsIGNhcmVmdWxseS4gIE5vdGUgcGFydGljdWxhcmx5IHRoYXQgQysrIGZ1bmN0aW9uIG5hbWVzIG11c3QgYmUKICAgIG1hbmdsZWQgKHRoYXQgaXMsIG5vdCBkZW1hbmdsZWQpLjwvcD4KPC90ZD4KPC90cj4KPHRyPjx0ZCBjb2xzcGFuPSIyIj6gPC90ZD48L3RyPgo8dHIgY2xhc3M9InF1ZXN0aW9uIj4KPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+CjxhIG5hbWU9ImZhcS5kZWZsb3N0Ij48L2E+PGEgbmFtZT0icS1kZWZsb3N0Ij48L2E+PGI+NS4yLjwvYj4KPC90ZD4KPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+PGI+V2l0aCBNZW1jaGVjaydzIG1lbW9yeSBsZWFrIGRldGVjdG9yLCB3aGF0J3MgdGhlCiAgICBkaWZmZXJlbmNlIGJldHdlZW4gImRlZmluaXRlbHkgbG9zdCIsICJpbmRpcmVjdGx5IGxvc3QiLCAicG9zc2libHkKICAgIGxvc3QiLCAic3RpbGwgcmVhY2hhYmxlIiwgYW5kICJzdXBwcmVzc2VkIj88L2I+PC90ZD4KPC90cj4KPHRyIGNsYXNzPSJhbnN3ZXIiPgo8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj48YSBuYW1lPSJhLWRlZmxvc3QiPjwvYT48L3RkPgo8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj4KPHA+VGhlIGRldGFpbHMgYXJlIGluIHRoZSBNZW1jaGVjayBzZWN0aW9uIG9mIHRoZSB1c2VyIG1hbnVhbC48L3A+CjxwPkluIHNob3J0OjwvcD4KPGRpdiBjbGFzcz0iaXRlbWl6ZWRsaXN0Ij48dWwgY2xhc3M9Iml0ZW1pemVkbGlzdCIgc3R5bGU9Imxpc3Qtc3R5bGUtdHlwZTogZGlzYzsgIj4KPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+ImRlZmluaXRlbHkgbG9zdCIgbWVhbnMgeW91ciBwcm9ncmFtIGlzIGxlYWtpbmcgbWVtb3J5IC0tCiAgICAgICAgZml4IHRob3NlIGxlYWtzITwvcD48L2xpPgo8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD4iaW5kaXJlY3RseSBsb3N0IiBtZWFucyB5b3VyIHByb2dyYW0gaXMgbGVha2luZyBtZW1vcnkgaW4KICAgICAgICBhIHBvaW50ZXItYmFzZWQgc3RydWN0dXJlLiAgKEUuZy4gaWYgdGhlIHJvb3Qgbm9kZSBvZiBhIGJpbmFyeSB0cmVlCiAgICAgICAgaXMgImRlZmluaXRlbHkgbG9zdCIsIGFsbCB0aGUgY2hpbGRyZW4gd2lsbCBiZSAiaW5kaXJlY3RseSBsb3N0Ii4pIAogICAgICAgIElmIHlvdSBmaXggdGhlICJkZWZpbml0ZWx5IGxvc3QiIGxlYWtzLCB0aGUgImluZGlyZWN0bHkgbG9zdCIgbGVha3MKICAgICAgICBzaG91bGQgZ28gYXdheS4KICAgICAgICA8L3A+PC9saT4KPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+InBvc3NpYmx5IGxvc3QiIG1lYW5zIHlvdXIgcHJvZ3JhbSBpcyBsZWFraW5nCiAgICAgICAgbWVtb3J5LCB1bmxlc3MgeW91J3JlIGRvaW5nIHVudXN1YWwgdGhpbmdzIHdpdGggcG9pbnRlcnMgdGhhdCBjb3VsZAogICAgICAgIGNhdXNlIHRoZW0gdG8gcG9pbnQgaW50byB0aGUgbWlkZGxlIG9mIGFuIGFsbG9jYXRlZCBibG9jazsgIHNlZSB0aGUKICAgICAgICB1c2VyIG1hbnVhbCBmb3Igc29tZSBwb3NzaWJsZSBjYXVzZXMuICBVc2UKICAgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXNob3ctcG9zc2libHktbG9zdD1ubzwvY29kZT4gaWYgeW91IGRvbid0IHdhbnQgdG8gc2VlCiAgICAgICAgdGhlc2UgcmVwb3J0cy48L3A+PC9saT4KPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+InN0aWxsIHJlYWNoYWJsZSIgbWVhbnMgeW91ciBwcm9ncmFtIGlzIHByb2JhYmx5IG9rIC0tIGl0CiAgICAgICAgZGlkbid0IGZyZWUgc29tZSBtZW1vcnkgaXQgY291bGQgaGF2ZS4gIFRoaXMgaXMgcXVpdGUgY29tbW9uIGFuZAogICAgICAgIG9mdGVuIHJlYXNvbmFibGUuICBEb24ndCB1c2UKICAgICAgICA8Y29kZSBjbGFzcz0ib3B0aW9uIj4tLXNob3ctcmVhY2hhYmxlPXllczwvY29kZT4gaWYgeW91IGRvbid0IHdhbnQgdG8gc2VlCiAgICAgICAgdGhlc2UgcmVwb3J0cy48L3A+PC9saT4KPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+InN1cHByZXNzZWQiIG1lYW5zIHRoYXQgYSBsZWFrIGVycm9yIGhhcyBiZWVuIHN1cHByZXNzZWQuCiAgICAgICAgVGhlcmUgYXJlIHNvbWUgc3VwcHJlc3Npb25zIGluIHRoZSBkZWZhdWx0IHN1cHByZXNzaW9uIGZpbGVzLgogICAgICAgIFlvdSBjYW4gaWdub3JlIHN1cHByZXNzZWQgZXJyb3JzLjwvcD48L2xpPgo8L3VsPjwvZGl2Pgo8L3RkPgo8L3RyPgo8dHI+PHRkIGNvbHNwYW49IjIiPqA8L3RkPjwvdHI+Cjx0ciBjbGFzcz0icXVlc3Rpb24iPgo8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj4KPGEgbmFtZT0iZmFxLnVuZGVmZXJyb3JzIj48L2E+PGEgbmFtZT0icS11bmRlZmVycm9ycyI+PC9hPjxiPjUuMy48L2I+CjwvdGQ+Cjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjxiPk1lbWNoZWNrJ3MgdW5pbml0aWFsaXNlZCB2YWx1ZSBlcnJvcnMgYXJlIGhhcmQgdG8gdHJhY2sgZG93biwKICAgIGJlY2F1c2UgdGhleSBhcmUgb2Z0ZW4gcmVwb3J0ZWQgc29tZSB0aW1lIGFmdGVyIHRoZXkgYXJlIGNhdXNlZC4gIENvdWxkIAogICAgTWVtY2hlY2sgcmVjb3JkIGEgdHJhaWwgb2Ygb3BlcmF0aW9ucyB0byBiZXR0ZXIgbGluayB0aGUgY2F1c2UgdG8gdGhlCiAgICBlZmZlY3Q/ICBPciBtYXliZSBqdXN0IGVhZ2VybHkgcmVwb3J0IGFueSBjb3BpZXMgb2YgdW5pbml0aWFsaXNlZAogICAgbWVtb3J5IHZhbHVlcz88L2I+PC90ZD4KPC90cj4KPHRyIGNsYXNzPSJhbnN3ZXIiPgo8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj48YSBuYW1lPSJhLXVuZGVmZXJyb3JzIj48L2E+PC90ZD4KPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+CjxwPlByaW9yIHRvIHZlcnNpb24gMy40LjAsIHRoZSBhbnN3ZXIgd2FzICJ3ZSBkb24ndCBrbm93IGhvdyB0byBkbyBpdAogICAgd2l0aG91dCBodWdlIHBlcmZvcm1hbmNlIHBlbmFsdGllcyIuICBBcyBvZiAzLjQuMCwgdHJ5IHVzaW5nIHRoZQogICAgPGNvZGUgY2xhc3M9Im9wdGlvbiI+LS10cmFjay1vcmlnaW5zPXllczwvY29kZT4gb3B0aW9uLiAgSXQgd2lsbCBydW4gc2xvd2VyIHRoYW4KICAgIHVzdWFsLCBidXQgd2lsbCBnaXZlIHlvdSBleHRyYSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgb3JpZ2luIG9mCiAgICB1bmluaXRpYWxpc2VkIHZhbHVlcy48L3A+CjxwPk9yIGlmIHlvdSB3YW50IHRvIGRvIGl0IHRoZSBvbGQgZmFzaGlvbmVkIHdheSwgeW91IGNhbiB1c2UgdGhlCiAgICBjbGllbnQgcmVxdWVzdAogICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5WQUxHUklORF9DSEVDS19WQUxVRV9JU19ERUZJTkVEPC9jb2RlPiB0byBoZWxwCiAgICB0cmFjayB0aGVzZSBlcnJvcnMgZG93biAtLSB3b3JrIGJhY2t3YXJkcyBmcm9tIHRoZSBwb2ludCB3aGVyZSB0aGUKICAgIHVuaW5pdGlhbGlzZWQgZXJyb3Igb2NjdXJzLCBjaGVja2luZyBzdXNwZWN0IHZhbHVlcyB1bnRpbCB5b3UgZmluZCB0aGUKICAgIGNhdXNlLiAgVGhpcyByZXF1aXJlcyBlZGl0aW5nLCBjb21waWxpbmcgYW5kIHJlLXJ1bm5pbmcgeW91ciBwcm9ncmFtCiAgICBtdWx0aXBsZSB0aW1lcywgd2hpY2ggaXMgYSBwYWluLCBidXQgc3RpbGwgZWFzaWVyIHRoYW4gZGVidWdnaW5nIHRoZQogICAgcHJvYmxlbSB3aXRob3V0IE1lbWNoZWNrJ3MgaGVscC48L3A+CjxwPkFzIGZvciBlYWdlciByZXBvcnRpbmcgb2YgY29waWVzIG9mIHVuaW5pdGlhbGlzZWQgbWVtb3J5IHZhbHVlcywKICAgIHRoaXMgaGFzIGJlZW4gc3VnZ2VzdGVkIG11bHRpcGxlIHRpbWVzLiAgVW5mb3J0dW5hdGVseSwgYWxtb3N0IGFsbAogICAgcHJvZ3JhbXMgbGVnaXRpbWF0ZWx5IGNvcHkgdW5pbml0aWFsaXNlZCBtZW1vcnkgdmFsdWVzIGFyb3VuZCAoYmVjYXVzZQogICAgY29tcGlsZXJzIHBhZCBzdHJ1Y3RzIHRvIHByZXNlcnZlIGFsaWdubWVudCkgYW5kIGVhZ2VyIGNoZWNraW5nIGxlYWRzIHRvCiAgICBodW5kcmVkcyBvZiBmYWxzZSBwb3NpdGl2ZXMuICBUaGVyZWZvcmUgTWVtY2hlY2sgZG9lcyBub3Qgc3VwcG9ydCBlYWdlcgogICAgY2hlY2tpbmcgYXQgdGhpcyB0aW1lLjwvcD4KPC90ZD4KPC90cj4KPHRyPjx0ZCBjb2xzcGFuPSIyIj6gPC90ZD48L3RyPgo8dHIgY2xhc3M9InF1ZXN0aW9uIj4KPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+CjxhIG5hbWU9ImZhcS5hdHRhY2giPjwvYT48YSBuYW1lPSJxLWF0dGFjaCI+PC9hPjxiPjUuNC48L2I+CjwvdGQ+Cjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjxiPklzIGl0IHBvc3NpYmxlIHRvIGF0dGFjaCBWYWxncmluZCB0byBhIHByb2dyYW0gdGhhdCBpcyBhbHJlYWR5CiAgICBydW5uaW5nPzwvYj48L3RkPgo8L3RyPgo8dHIgY2xhc3M9ImFuc3dlciI+Cjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjxhIG5hbWU9ImEtYXR0YWNoIj48L2E+PC90ZD4KPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+CjxwPk5vLiAgVGhlIGVudmlyb25tZW50IHRoYXQgVmFsZ3JpbmQgcHJvdmlkZXMgZm9yIHJ1bm5pbmcgcHJvZ3JhbXMKICAgIGlzIHNpZ25pZmljYW50bHkgZGlmZmVyZW50IHRvIHRoYXQgZm9yIG5vcm1hbCBwcm9ncmFtcywgZS5nLiBkdWUgdG8KICAgIGRpZmZlcmVudCBsYXlvdXQgb2YgbWVtb3J5LiAgVGhlcmVmb3JlIFZhbGdyaW5kIGhhcyB0byBoYXZlIGZ1bGwgY29udHJvbAogICAgZnJvbSB0aGUgdmVyeSBzdGFydC48L3A+CjxwPkl0IGlzIHBvc3NpYmxlIHRvIGFjaGlldmUgc29tZXRoaW5nIGxpa2UgdGhpcyBieSBydW5uaW5nIHlvdXIKICAgIHByb2dyYW0gd2l0aG91dCBhbnkgaW5zdHJ1bWVudGF0aW9uICh3aGljaCBpbnZvbHZlcyBhIHNsb3ctZG93biBvZiBhYm91dAogICAgNXgsIGxlc3MgdGhhbiB0aGF0IG9mIG1vc3QgdG9vbHMpLCBhbmQgdGhlbiBhZGRpbmcgaW5zdHJ1bWVudGF0aW9uIG9uY2UKICAgIHlvdSBnZXQgdG8gYSBwb2ludCBvZiBpbnRlcmVzdC4gIFN1cHBvcnQgZm9yIHRoaXMgbXVzdCBiZSBwcm92aWRlZCBieQogICAgdGhlIHRvb2wsIGhvd2V2ZXIsIGFuZCBDYWxsZ3JpbmQgaXMgdGhlIG9ubHkgdG9vbCB0aGF0IGN1cnJlbnRseSBoYXMKICAgIHN1Y2ggc3VwcG9ydC4gIFNlZSB0aGUgaW5zdHJ1Y3Rpb25zIG9uIHRoZQogICAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5jYWxsZ3JpbmRfY29udHJvbDwvY29kZT4gcHJvZ3JhbSBmb3IgZGV0YWlscy4KICAgIDwvcD4KPC90ZD4KPC90cj4KPC90YWJsZT4KPGJyPjx0YWJsZSB3aWR0aD0iMTAwJSIgc3VtbWFyeT0iUSBhbmQgQSBEaXYiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMiIgYm9yZGVyPSIwIj4KPHRyIGNsYXNzPSJxYW5kYWRpdiI+PHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCIgY29sc3Bhbj0iMiI+CjxhIG5hbWU9ImZhcS5oZWxwIj48L2E+PGgzIGNsYXNzPSJ0aXRsZSI+CjxhIG5hbWU9ImZhcS5oZWxwIj48L2E+Ni4gSG93IFRvIEdldCBGdXJ0aGVyIEFzc2lzdGFuY2U8L2gzPgo8L3RkPjwvdHI+Cjx0ciBjbGFzcz0idG9jIiBjb2xzcGFuPSIyIj48dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIiBjb2xzcGFuPSIyIj48L3RkPjwvdHI+Cjx0ciBjbGFzcz0iYW5zd2VyIj4KPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+PGEgbmFtZT0iYS1oZWxwIj48L2E+PC90ZD4KPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+CjxwPlJlYWQgdGhlIGFwcHJvcHJpYXRlIHNlY3Rpb24ocykgb2YgdGhlIAogIDxhIGNsYXNzPSJ1bGluayIgaHJlZj0iaHR0cDovL3d3dy52YWxncmluZC5vcmcvZG9jcy9tYW51YWwvaW5kZXguaHRtbCIgdGFyZ2V0PSJfdG9wIj5WYWxncmluZCBEb2N1bWVudGF0aW9uPC9hPi48L3A+CjxwPjxhIGNsYXNzPSJ1bGluayIgaHJlZj0iaHR0cDovL3NlYXJjaC5nbWFuZS5vcmciIHRhcmdldD0iX3RvcCI+U2VhcmNoPC9hPiB0aGUgCiAgPGEgY2xhc3M9InVsaW5rIiBocmVmPSJodHRwOi8vbmV3cy5nbWFuZS5vcmcvZ21hbmUuY29tcC5kZWJ1Z2dpbmcudmFsZ3JpbmQiIHRhcmdldD0iX3RvcCI+dmFsZ3JpbmQtdXNlcnM8L2E+IG1haWxpbmcgbGlzdCBhcmNoaXZlcywgdXNpbmcgdGhlIGdyb3VwIG5hbWUgCiAgPGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5nbWFuZS5jb21wLmRlYnVnZ2luZy52YWxncmluZDwvY29kZT4uPC9wPgo8cD5JZiB5b3UgdGhpbmsgYW4gYW5zd2VyIGluIHRoaXMgRkFRIGlzIGluY29tcGxldGUgb3IgaW5hY2N1cmF0ZSwgcGxlYXNlCiAgZS1tYWlsIDxhIGNsYXNzPSJ1bGluayIgaHJlZj0ibWFpbHRvOnZhbGdyaW5kQHZhbGdyaW5kLm9yZyIgdGFyZ2V0PSJfdG9wIj52YWxncmluZEB2YWxncmluZC5vcmc8L2E+LjwvcD4KPHA+SWYgeW91IGhhdmUgdHJpZWQgYWxsIG9mIHRoZXNlIHRoaW5ncyBhbmQgYXJlIHN0aWxsCiAgc3R1Y2ssIHlvdSBjYW4gdHJ5IG1haWxpbmcgdGhlCiAgPGEgY2xhc3M9InVsaW5rIiBocmVmPSJodHRwOi8vd3d3LnZhbGdyaW5kLm9yZy9zdXBwb3J0L21haWxpbmdfbGlzdHMuaHRtbCIgdGFyZ2V0PSJfdG9wIj52YWxncmluZC11c2VycyBtYWlsaW5nIGxpc3Q8L2E+LiAKICBOb3RlIHRoYXQgYW4gZW1haWwgaGFzIGEgYmV0dGVyIGNoYW5nZSBvZiBiZWluZyBhbnN3ZXJlZCB1c2VmdWxseSBpZiBpdCBpcwogIGNsZWFybHkgd3JpdHRlbi4gIEFsc28gcmVtZW1iZXIgdGhhdCwgZGVzcGl0ZSB0aGUgZmFjdCB0aGF0IG1vc3Qgb2YgdGhlCiAgY29tbXVuaXR5IGFyZSB2ZXJ5IGhlbHBmdWwgYW5kIHJlc3BvbnNpdmUgdG8gZW1haWxlZCBxdWVzdGlvbnMsIHlvdSBhcmUKICBwcm9iYWJseSByZXF1ZXN0aW5nIGhlbHAgZnJvbSB1bnBhaWQgdm9sdW50ZWVycywgc28geW91IGhhdmUgbm8gZ3VhcmFudGVlCiAgb2YgcmVjZWl2aW5nIGFuIGFuc3dlci48L3A+CjwvdGQ+CjwvdHI+CjwvdGFibGU+CjwvZGl2Pgo8L2Rpdj4KPGRpdj4KPGJyPjx0YWJsZSBjbGFzcz0ibmF2IiB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjMiIGNlbGxwYWRkaW5nPSIyIiBib3JkZXI9IjAiIHN1bW1hcnk9Ik5hdmlnYXRpb24gZm9vdGVyIj4KPHRyPgo8dGQgcm93c3Bhbj0iMiIgd2lkdGg9IjQwJSIgYWxpZ249ImxlZnQiPgo8YSBhY2Nlc3NrZXk9InAiIGhyZWY9IkZBUS5odG1sIj4mbHQ7Jmx0O6BWYWxncmluZCBGQVE8L2E+oDwvdGQ+Cjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0iY2VudGVyIj48YSBhY2Nlc3NrZXk9InUiIGhyZWY9IkZBUS5odG1sIj5VcDwvYT48L3RkPgo8dGQgcm93c3Bhbj0iMiIgd2lkdGg9IjQwJSIgYWxpZ249InJpZ2h0Ij6gPGEgYWNjZXNza2V5PSJuIiBocmVmPSJ0ZWNoLWRvY3MuaHRtbCI+VmFsZ3JpbmQgVGVjaG5pY2FsIERvY3VtZW50YXRpb26gJmd0OyZndDs8L2E+CjwvdGQ+CjwvdHI+Cjx0cj48dGQgd2lkdGg9IjIwJSIgYWxpZ249ImNlbnRlciI+PGEgYWNjZXNza2V5PSJoIiBocmVmPSJpbmRleC5odG1sIj5Ib21lPC9hPjwvdGQ+PC90cj4KPC90YWJsZT4KPC9kaXY+CjwvYm9keT4KPC9odG1sPgo=