PGh0bWw+CjxoZWFkPgo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj4KPHRpdGxlPjMuoENhbGxncmluZCBGb3JtYXQgU3BlY2lmaWNhdGlvbjwvdGl0bGU+CjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9InZnX2Jhc2ljLmNzcyI+CjxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iRG9jQm9vayBYU0wgU3R5bGVzaGVldHMgVjEuNzkuMSI+CjxsaW5rIHJlbD0iaG9tZSIgaHJlZj0iaW5kZXguaHRtbCIgdGl0bGU9IlZhbGdyaW5kIERvY3VtZW50YXRpb24iPgo8bGluayByZWw9InVwIiBocmVmPSJ0ZWNoLWRvY3MuaHRtbCIgdGl0bGU9IlZhbGdyaW5kIFRlY2huaWNhbCBEb2N1bWVudGF0aW9uIj4KPGxpbmsgcmVsPSJwcmV2IiBocmVmPSJtYW51YWwtd3JpdGluZy10b29scy5odG1sIiB0aXRsZT0iMi6gV3JpdGluZyBhIE5ldyBWYWxncmluZCBUb29sIj4KPGxpbmsgcmVsPSJuZXh0IiBocmVmPSJkaXN0Lmh0bWwiIHRpdGxlPSJWYWxncmluZCBEaXN0cmlidXRpb24gRG9jdW1lbnRzIj4KPC9oZWFkPgo8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+CjxkaXY+PHRhYmxlIGNsYXNzPSJuYXYiIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0iMyIgY2VsbHBhZGRpbmc9IjMiIGJvcmRlcj0iMCIgc3VtbWFyeT0iTmF2aWdhdGlvbiBoZWFkZXIiPjx0cj4KPHRkIHdpZHRoPSIyMnB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJwIiBocmVmPSJtYW51YWwtd3JpdGluZy10b29scy5odG1sIj48aW1nIHNyYz0iaW1hZ2VzL3ByZXYucG5nIiB3aWR0aD0iMTgiIGhlaWdodD0iMjEiIGJvcmRlcj0iMCIgYWx0PSJQcmV2Ij48L2E+PC90ZD4KPHRkIHdpZHRoPSIyNXB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJ0ZWNoLWRvY3MuaHRtbCI+PGltZyBzcmM9ImltYWdlcy91cC5wbmciIHdpZHRoPSIyMSIgaGVpZ2h0PSIxOCIgYm9yZGVyPSIwIiBhbHQ9IlVwIj48L2E+PC90ZD4KPHRkIHdpZHRoPSIzMXB4IiBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+PGEgYWNjZXNza2V5PSJoIiBocmVmPSJpbmRleC5odG1sIj48aW1nIHNyYz0iaW1hZ2VzL2hvbWUucG5nIiB3aWR0aD0iMjciIGhlaWdodD0iMjAiIGJvcmRlcj0iMCIgYWx0PSJVcCI+PC9hPjwvdGQ+Cjx0aCBhbGlnbj0iY2VudGVyIiB2YWxpZ249Im1pZGRsZSI+VmFsZ3JpbmQgVGVjaG5pY2FsIERvY3VtZW50YXRpb248L3RoPgo8dGQgd2lkdGg9IjIycHgiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0ibWlkZGxlIj48YSBhY2Nlc3NrZXk9Im4iIGhyZWY9ImRpc3QuaHRtbCI+PGltZyBzcmM9ImltYWdlcy9uZXh0LnBuZyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjIxIiBib3JkZXI9IjAiIGFsdD0iTmV4dCI+PC9hPjwvdGQ+CjwvdHI+PC90YWJsZT48L2Rpdj4KPGRpdiBjbGFzcz0iY2hhcHRlciI+CjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMSBjbGFzcz0idGl0bGUiPgo8YSBuYW1lPSJjbC1mb3JtYXQiPjwvYT4zLqBDYWxsZ3JpbmQgRm9ybWF0IFNwZWNpZmljYXRpb248L2gxPjwvZGl2PjwvZGl2PjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0b2MiPgo8cD48Yj5UYWJsZSBvZiBDb250ZW50czwvYj48L3A+CjxkbCBjbGFzcz0idG9jIj4KPGR0PjxzcGFuIGNsYXNzPSJzZWN0MSI+PGEgaHJlZj0iY2wtZm9ybWF0Lmh0bWwjY2wtZm9ybWF0Lm92ZXJ2aWV3Ij4zLjEuIE92ZXJ2aWV3PC9hPjwvc3Bhbj48L2R0Pgo8ZGQ+PGRsPgo8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJjbC1mb3JtYXQuaHRtbCNjbC1mb3JtYXQub3ZlcnZpZXcuYmFzaWNzIj4zLjEuMS4gQmFzaWMgU3RydWN0dXJlPC9hPjwvc3Bhbj48L2R0Pgo8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJjbC1mb3JtYXQuaHRtbCNjbC1mb3JtYXQub3ZlcnZpZXcuZXhhbXBsZTEiPjMuMS4yLiBTaW1wbGUgRXhhbXBsZTwvYT48L3NwYW4+PC9kdD4KPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iY2wtZm9ybWF0Lmh0bWwjY2wtZm9ybWF0Lm92ZXJ2aWV3LmFzc29jaWF0aW9ucyI+My4xLjMuIEFzc29jaWF0aW9uczwvYT48L3NwYW4+PC9kdD4KPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iY2wtZm9ybWF0Lmh0bWwjY2wtZm9ybWF0Lm92ZXJ2aWV3LmV4YW1wbGUyIj4zLjEuNC4gRXh0ZW5kZWQgRXhhbXBsZTwvYT48L3NwYW4+PC9kdD4KPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iY2wtZm9ybWF0Lmh0bWwjY2wtZm9ybWF0Lm92ZXJ2aWV3LmNvbXByZXNzaW9uMSI+My4xLjUuIE5hbWUgQ29tcHJlc3Npb248L2E+PC9zcGFuPjwvZHQ+CjxkdD48c3BhbiBjbGFzcz0ic2VjdDIiPjxhIGhyZWY9ImNsLWZvcm1hdC5odG1sI2NsLWZvcm1hdC5vdmVydmlldy5jb21wcmVzc2lvbjIiPjMuMS42LiBTdWJwb3NpdGlvbiBDb21wcmVzc2lvbjwvYT48L3NwYW4+PC9kdD4KPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iY2wtZm9ybWF0Lmh0bWwjY2wtZm9ybWF0Lm92ZXJ2aWV3Lm1pc2MiPjMuMS43LiBNaXNjZWxsYW5lb3VzPC9hPjwvc3Bhbj48L2R0Pgo8L2RsPjwvZGQ+CjxkdD48c3BhbiBjbGFzcz0ic2VjdDEiPjxhIGhyZWY9ImNsLWZvcm1hdC5odG1sI2NsLWZvcm1hdC5yZWZlcmVuY2UiPjMuMi4gUmVmZXJlbmNlPC9hPjwvc3Bhbj48L2R0Pgo8ZGQ+PGRsPgo8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJjbC1mb3JtYXQuaHRtbCNjbC1mb3JtYXQucmVmZXJlbmNlLmdyYW1tYXIiPjMuMi4xLiBHcmFtbWFyPC9hPjwvc3Bhbj48L2R0Pgo8ZHQ+PHNwYW4gY2xhc3M9InNlY3QyIj48YSBocmVmPSJjbC1mb3JtYXQuaHRtbCNjbC1mb3JtYXQucmVmZXJlbmNlLmhlYWRlciI+My4yLjIuIERlc2NyaXB0aW9uIG9mIEhlYWRlciBMaW5lczwvYT48L3NwYW4+PC9kdD4KPGR0PjxzcGFuIGNsYXNzPSJzZWN0MiI+PGEgaHJlZj0iY2wtZm9ybWF0Lmh0bWwjY2wtZm9ybWF0LnJlZmVyZW5jZS5ib2R5Ij4zLjIuMy4gRGVzY3JpcHRpb24gb2YgQm9keSBMaW5lczwvYT48L3NwYW4+PC9kdD4KPC9kbD48L2RkPgo8L2RsPgo8L2Rpdj4KPHA+VGhpcyBjaGFwdGVyIGRlc2NyaWJlcyB0aGUgQ2FsbGdyaW5kIEZvcm1hdCwgVmVyc2lvbiAxLjwvcD4KPHA+VGhlIGZvcm1hdCBkZXNjcmlwdGlvbiBpcyBtZWFudCBmb3IgdGhlIHVzZXIgdG8gYmUgYWJsZSB0byB1bmRlcnN0YW5kIHRoZQpmaWxlIGNvbnRlbnRzOyBidXQgbW9yZSBpbXBvcnRhbnQsIGl0IGlzIGdpdmVuIGZvciBhdXRob3JzIG9mIG1lYXN1cmVtZW50IG9yCnZpc3VhbGl6YXRpb24gdG9vbHMgdG8gYmUgYWJsZSB0byB3cml0ZSBhbmQgcmVhZCB0aGlzIGZvcm1hdC48L3A+CjxkaXYgY2xhc3M9InNlY3QxIj4KPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj4KPGEgbmFtZT0iY2wtZm9ybWF0Lm92ZXJ2aWV3Ij48L2E+My4xLqBPdmVydmlldzwvaDI+PC9kaXY+PC9kaXY+PC9kaXY+CjxwPlRoZSBwcm9maWxlIGRhdGEgZm9ybWF0IGlzIEFTQ0lJIGJhc2VkLgpJdCBpcyB3cml0dGVuIGJ5IENhbGxncmluZCwgYW5kIGl0IGlzIHVwd2FyZHMgY29tcGF0aWJsZQp0byB0aGUgZm9ybWF0IHVzZWQgYnkgQ2FjaGVncmluZCAoaWUuIENhY2hlZ3JpbmQgdXNlcyBhIHN1YnNldCkuIEl0IGNhbgpiZSByZWFkIGJ5IGNhbGxncmluZF9hbm5vdGF0ZSBhbmQgS0NhY2hlZ3JpbmQuPC9wPgo8cD5UaGlzIGNoYXB0ZXIgZ2l2ZXMgb24gb3ZlcnZpZXcgb2YgZm9ybWF0IGZlYXR1cmVzIGFuZCBleGFtcGxlcy4KRm9yIGRldGFpbGVkIHN5bnRheCwgbG9vayBhdCB0aGUgZm9ybWF0IHJlZmVyZW5jZS48L3A+CjxkaXYgY2xhc3M9InNlY3QyIj4KPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+CjxhIG5hbWU9ImNsLWZvcm1hdC5vdmVydmlldy5iYXNpY3MiPjwvYT4zLjEuMS6gQmFzaWMgU3RydWN0dXJlPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KPHA+VG8gdW5pcXVlbHkgc3BlY2lmeSB0aGF0IGEgZmlsZSBpcyBhIGNhbGxncmluZCBwcm9maWxlLCBpdApzaG91bGQgYWRkICIjIGNhbGxncmluZCBmb3JtYXQiIGFzIGZpcnN0IGxpbmUuIFRoaXMgaXMgb3B0aW9uYWwgYnV0CnJlY29tbWVuZGVkIGZvciBlYXN5IGZvcm1hdCBkZXRlY3Rpb24uPC9wPgo8cD5FYWNoIGZpbGUgaGFzIGEgaGVhZGVyIHBhcnQgb2YgYW4gYXJiaXRyYXJ5IG51bWJlciBvZiBsaW5lcyBvZiB0aGUKZm9ybWF0ICJrZXk6IHZhbHVlIi4gQWZ0ZXIgdGhlIGhlYWRlciwgbGluZXMgc3BlY2lmeWluZyBwcm9maWxlIGNvc3RzCmZvbGxvdy4gRXZlcnl3aGVyZSwgY29tbWVudHMgb24gb3duIGxpbmVzIHN0YXJ0aW5nIHdpdGggJyMnIGFyZSBhbGxvd2VkLgpUaGUgaGVhZGVyIGxpbmVzIHdpdGgga2V5cyAicG9zaXRpb25zIiBhbmQgImV2ZW50cyIgZGVmaW5lCnRoZSBtZWFuaW5nIG9mIGNvc3QgbGluZXMgaW4gdGhlIHNlY29uZCBwYXJ0IG9mIHRoZSBmaWxlOiB0aGUgdmFsdWUgb2YKInBvc2l0aW9ucyIgaXMgYSBsaXN0IG9mIHN1YnBvc2l0aW9ucywgYW5kIHRoZSB2YWx1ZSBvZiAiZXZlbnRzIiBpcyBhIGxpc3QKb2YgZXZlbnQgdHlwZSBuYW1lcy4gQ29zdCBsaW5lcyBjb25zaXN0IG9mIHN1YnBvc2l0aW9ucyBmb2xsb3dlZCBieSA2NC1iaXQKY291bnRlcnMgZm9yIHRoZSBldmVudHMsIGluIHRoZSBvcmRlciBzcGVjaWZpZWQgYnkgdGhlICJwb3NpdGlvbnMiIGFuZCAiZXZlbnRzIgpoZWFkZXIgbGluZS48L3A+CjxwPlRoZSAiZXZlbnRzIiBoZWFkZXIgbGluZSBpcyBhbHdheXMgcmVxdWlyZWQgaW4gY29udHJhc3QgdG8gdGhlIG9wdGlvbmFsCmxpbmUgZm9yICJwb3NpdGlvbnMiLCB3aGljaCBkZWZhdWx0cyB0byAibGluZSIsIGkuZS4gYSBsaW5lIG51bWJlciBvZiBzb21lCnNvdXJjZSBmaWxlLiBJbiBhZGRpdGlvbiwgdGhlIHNlY29uZCBwYXJ0IG9mIHRoZSBmaWxlIGNvbnRhaW5zIHBvc2l0aW9uCnNwZWNpZmljYXRpb25zIG9mIHRoZSBmb3JtICJzcGVjPW5hbWUiLiAic3BlYyIgY2FuIGJlIGUuZy4gImZuIiBmb3IgYQpmdW5jdGlvbiBuYW1lIG9yICJmbCIgZm9yIGEgZmlsZSBuYW1lLiBDb3N0IGxpbmVzIGFyZSBhbHdheXMgcmVsYXRlZCB0bwp0aGUgZnVuY3Rpb24vZmlsZSBzcGVjaWZpY2F0aW9ucyBnaXZlbiBkaXJlY3RseSBiZWZvcmUuPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdDIiPgo8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KPGEgbmFtZT0iY2wtZm9ybWF0Lm92ZXJ2aWV3LmV4YW1wbGUxIj48L2E+My4xLjIuoFNpbXBsZSBFeGFtcGxlPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KPHA+VGhlIGV2ZW50IG5hbWVzIGluIHRoZSBmb2xsb3dpbmcgZXhhbXBsZSBhcmUgcXVpdGUgYXJiaXRyYXJ5LCBhbmQgYXJlIG5vdApyZWxhdGVkIHRvIGV2ZW50IG5hbWVzIHVzZWQgYnkgQ2FsbGdyaW5kLiBFc3BlY2lhbGx5LCBjeWNsZSBjb3VudHMgbWF0Y2hpbmcKcmVhbCBwcm9jZXNzb3JzIHByb2JhYmx5IHdpbGwgbmV2ZXIgYmUgZ2VuZXJhdGVkIGJ5IGFueSBWYWxncmluZCB0b29scywgYXMgdGhlc2UKYXJlIGJvdW5kIHRvIHNpbXVsYXRpb25zIG9mIHNpbXBsZSBtYWNoaW5lIG1vZGVscyBmb3IgYWNjZXB0YWJsZSBzbG93ZG93bi4KSG93ZXZlciwgYW55IHByb2ZpbGluZyB0b29sIGNvdWxkIHVzZSB0aGUgZm9ybWF0IGRlc2NyaWJlZCBpbiB0aGlzIGNoYXB0ZXIuPC9wPgo8cD4KPC9wPgo8cHJlIGNsYXNzPSJzY3JlZW4iPiMgY2FsbGdyaW5kIGZvcm1hdApldmVudHM6IEN5Y2xlcyBJbnN0cnVjdGlvbnMgRmxvcHMKZmw9ZmlsZS5mCmZuPW1haW4KMTUgOTAgMTQgMgoxNiAyMCAxMjwvcHJlPgo8cD5UaGUgYWJvdmUgZXhhbXBsZSBnaXZlcyBwcm9maWxlIGluZm9ybWF0aW9uIGZvciBldmVudCB0eXBlcyAiQ3ljbGVzIiwKIkluc3RydWN0aW9ucyIsIGFuZCAiRmxvcHMiLiBUaHVzLCBjb3N0IGxpbmVzIGdpdmUgdGhlIG51bWJlciBvZiBDUFUgY3ljbGVzCnBhc3NlZCBieSwgbnVtYmVyIG9mIGV4ZWN1dGVkIGluc3RydWN0aW9ucywgYW5kIG51bWJlciBvZiBmbG9hdGluZyBwb2ludApvcGVyYXRpb25zIGV4ZWN1dGVkIHdoaWxlIHJ1bm5pbmcgY29kZSBjb3JyZXNwb25kaW5nIHRvIHNvbWUgc291cmNlCnBvc2l0aW9uLiBBcyB0aGVyZSBpcyBubyBsaW5lIHNwZWNpZnlpbmcgdGhlIHZhbHVlIG9mICJwb3NpdGlvbnMiLCBpdCBkZWZhdWx0cwp0byAibGluZSIsIHdoaWNoIG1lYW5zIHRoYXQgdGhlIGZpcnN0IG51bWJlciBvZiBhIGNvc3QgbGluZSBpcyBhbHdheXMgYSBsaW5lCm51bWJlci48L3A+CjxwPlRodXMsIHRoZSBmaXJzdCBjb3N0IGxpbmUgc3BlY2lmaWVzIHRoYXQgaW4gbGluZSAxNSBvZiBzb3VyY2UgZmlsZQo8Y29kZSBjbGFzcz0iZmlsZW5hbWUiPmZpbGUuZjwvY29kZT4gdGhlcmUgaXMgY29kZSBiZWxvbmdpbmcgdG8gZnVuY3Rpb24KPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5tYWluPC9jb2RlPi4gV2hpbGUgcnVubmluZywgOTAgQ1BVIGN5Y2xlcyBwYXNzZWQgYnksIGFuZCAyIG9mCnRoZSAxNCBpbnN0cnVjdGlvbnMgZXhlY3V0ZWQgd2VyZSBmbG9hdGluZyBwb2ludCBvcGVyYXRpb25zLiBTaW1pbGFybHksIHRoZQpuZXh0IGxpbmUgc3BlY2lmaWVzIHRoYXQgdGhlcmUgd2VyZSAxMiBpbnN0cnVjdGlvbnMgZXhlY3V0ZWQgaW4gdGhlIGNvbnRleHQKb2YgZnVuY3Rpb24gPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5tYWluPC9jb2RlPiB3aGljaCBjYW4gYmUgcmVsYXRlZCB0byBsaW5lIDE2IGluCmZpbGUgPGNvZGUgY2xhc3M9ImZpbGVuYW1lIj5maWxlLmY8L2NvZGU+LCB0YWtpbmcgMjAgQ1BVIGN5Y2xlcy4gSWYgYSBjb3N0IGxpbmUKc3BlY2lmaWVzIGxlc3MgZXZlbnQgY291bnRzIHRoYW4gZ2l2ZW4gaW4gdGhlICJldmVudHMiIGxpbmUsIHRoZSByZXN0IGlzCmFzc3VtZWQgdG8gYmUgemVyby4gIEkuZS4gdGhlcmUgd2FzIG5vIGZsb2F0aW5nIHBvaW50IGluc3RydWN0aW9uIGV4ZWN1dGVkCnJlbGF0aW5nIHRvIGxpbmUgMTYuPC9wPgo8cD5Ob3RlIHRoYXQgcmVndWxhciBjb3N0IGxpbmVzIGFsd2F5cyBnaXZlIHNlbGYgKGFsc28gY2FsbGVkIGV4Y2x1c2l2ZSkKY29zdCBvZiBjb2RlIGF0IGEgZ2l2ZW4gcG9zaXRpb24uIElmIHlvdSBzcGVjaWZ5IG11bHRpcGxlIGNvc3QgbGluZXMgZm9yIHRoZQpzYW1lIHBvc2l0aW9uLCB0aGVzZSB3aWxsIGJlIHN1bW1lZCB1cC4gT24gdGhlIG90aGVyIGhhbmQsIGluIHRoZSBleGFtcGxlIGFib3ZlCnRoZXJlIGlzIG5vIHNwZWNpZmljYXRpb24gb2YgaG93IG1hbnkgdGltZXMgZnVuY3Rpb24KPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5tYWluPC9jb2RlPiBhY3R1YWxseSB3YXMKY2FsbGVkOiBwcm9maWxlIGRhdGEgb25seSBjb250YWlucyBzdW1zLjwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InNlY3QyIj4KPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+CjxhIG5hbWU9ImNsLWZvcm1hdC5vdmVydmlldy5hc3NvY2lhdGlvbnMiPjwvYT4zLjEuMy6gQXNzb2NpYXRpb25zPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KPHA+VGhlIG1vc3QgaW1wb3J0YW50IGV4dGVuc2lvbiB0byB0aGUgb3JpZ2luYWwgZm9ybWF0IG9mIENhY2hlZ3JpbmQgaXMgdGhlCmFiaWxpdHkgdG8gc3BlY2lmeSBjYWxsIHJlbGF0aW9uc2hpcCBhbW9uZyBmdW5jdGlvbnMuIE1vcmUgZ2VuZXJhbGx5LCB5b3UKc3BlY2lmeSBhc3NvY2lhdGlvbnMgYW1vbmcgcG9zaXRpb25zLiBGb3IgdGhpcywgdGhlIHNlY29uZCBwYXJ0IG9mIHRoZQpmaWxlIGFsc28gY2FuIGNvbnRhaW4gYXNzb2NpYXRpb24gc3BlY2lmaWNhdGlvbnMuIFRoZXNlIGxvb2sgc2ltaWxhciB0bwpwb3NpdGlvbiBzcGVjaWZpY2F0aW9ucywgYnV0IGNvbnNpc3Qgb2YgdHdvIGxpbmVzLiBGb3IgY2FsbHMsIHRoZSBmb3JtYXQKbG9va3MgbGlrZQo8L3A+CjxwcmUgY2xhc3M9InNjcmVlbiI+CiBjYWxscz0oQ2FsbCBDb3VudCkgKFRhcmdldCBwb3NpdGlvbikKIChTb3VyY2UgcG9zaXRpb24pIChJbmNsdXNpdmUgY29zdCBvZiBjYWxsKQo8L3ByZT4KPHA+VGhlIGRlc3RpbmF0aW9uIG9ubHkgc3BlY2lmaWVzIHN1YnBvc2l0aW9ucyBsaWtlIGxpbmUgbnVtYmVyLiBUaGVyZWZvcmUsCnRvIGJlIGFibGUgdG8gc3BlY2lmeSBhIGNhbGwgdG8gYW5vdGhlciBmdW5jdGlvbiBpbiBhbm90aGVyIHNvdXJjZSBmaWxlLCB5b3UKaGF2ZSB0byBwcmVjZWRlIHRoZSBhYm92ZSBsaW5lcyB3aXRoIGEgImNmbj0iIHNwZWNpZmljYXRpb24gZm9yIHRoZSBuYW1lIG9mIHRoZQpjYWxsZWQgZnVuY3Rpb24sIGFuZCBvcHRpb25hbGx5IGEgImNmaT0iIHNwZWNpZmljYXRpb24gaWYgdGhlIGZ1bmN0aW9uIGlzIGluCmFub3RoZXIgc291cmNlIGZpbGUgKCJjZmw9IiBpcyBhbiBhbHRlcm5hdGl2ZSBzcGVjaWZpY2F0aW9uIGZvciAiY2ZpPSIgYmVjYXVzZQpvZiBoaXN0b3JpY2FsIHJlYXNvbnMsIGFuZCBib3RoIHNob3VsZCBiZSBzdXBwb3J0ZWQgYnkgZm9ybWF0IHJlYWRlcnMpLgpUaGUgc2Vjb25kIGxpbmUgbG9va3MgbGlrZSBhIHJlZ3VsYXIgY29zdCBsaW5lIHdpdGggdGhlIGRpZmZlcmVuY2UKdGhhdCBpbmNsdXNpdmUgY29zdCBzcGVudCBpbnNpZGUgb2YgdGhlIGZ1bmN0aW9uIGNhbGwgaGFzIHRvIGJlIHNwZWNpZmllZC48L3A+CjxwPk90aGVyIGFzc29jaWF0aW9ucyBhcmUgZm9yIGV4YW1wbGUgKGNvbmRpdGlvbmFsKSBqdW1wcy4gU2VlIHRoZQpyZWZlcmVuY2UgYmVsb3cgZm9yIGRldGFpbHMuPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdDIiPgo8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj4KPGEgbmFtZT0iY2wtZm9ybWF0Lm92ZXJ2aWV3LmV4YW1wbGUyIj48L2E+My4xLjQuoEV4dGVuZGVkIEV4YW1wbGU8L2gzPjwvZGl2PjwvZGl2PjwvZGl2Pgo8cD5UaGUgZm9sbG93aW5nIGV4YW1wbGUgc2hvd3MgMyBmdW5jdGlvbnMsIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+bWFpbjwvY29kZT4sCjxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+ZnVuYzE8L2NvZGU+LCBhbmQgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5mdW5jMjwvY29kZT4uIEZ1bmN0aW9uCjxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+bWFpbjwvY29kZT4gY2FsbHMgPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5mdW5jMTwvY29kZT4gb25jZSBhbmQKPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5mdW5jMjwvY29kZT4gMyB0aW1lcy4gPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5mdW5jMTwvY29kZT4gY2FsbHMKPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5mdW5jMjwvY29kZT4gMiB0aW1lcy4KCjwvcD4KPHByZSBjbGFzcz0ic2NyZWVuIj4jIGNhbGxncmluZCBmb3JtYXQKZXZlbnRzOiBJbnN0cnVjdGlvbnMKCmZsPWZpbGUxLmMKZm49bWFpbgoxNiAyMApjZm49ZnVuYzEKY2FsbHM9MSA1MAoxNiA0MDAKY2ZpPWZpbGUyLmMKY2ZuPWZ1bmMyCmNhbGxzPTMgMjAKMTYgNDAwCgpmbj1mdW5jMQo1MSAxMDAKY2ZpPWZpbGUyLmMKY2ZuPWZ1bmMyCmNhbGxzPTIgMjAKNTEgMzAwCgpmbD1maWxlMi5jCmZuPWZ1bmMyCjIwIDcwMDwvcHJlPgo8cD5PbmUgY2FuIHNlZSB0aGF0IGluIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+bWFpbjwvY29kZT4gb25seSBjb2RlIGZyb20gbGluZSAxNgppcyBleGVjdXRlZCB3aGVyZSBhbHNvIHRoZSBvdGhlciBmdW5jdGlvbnMgYXJlIGNhbGxlZC4gSW5jbHVzaXZlIGNvc3Qgb2YKPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5tYWluPC9jb2RlPiBpcyA4MjAsIHdoaWNoIGlzIHRoZSBzdW0gb2Ygc2VsZiBjb3N0IDIwIGFuZCBjb3N0cwpzcGVudCBpbiB0aGUgY2FsbHM6IDQwMCBmb3IgdGhlIHNpbmdsZSBjYWxsIHRvIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+ZnVuYzE8L2NvZGU+CmFuZCA0MDAgYXMgc3VtIGZvciB0aGUgdGhyZWUgY2FsbHMgdG8gPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5mdW5jMjwvY29kZT4uPC9wPgo8cD5GdW5jdGlvbiA8Y29kZSBjbGFzcz0iZnVuY3Rpb24iPmZ1bmMxPC9jb2RlPiBpcyBsb2NhdGVkIGluCjxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+ZmlsZTEuYzwvY29kZT4sIHRoZSBzYW1lIGFzIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+bWFpbjwvY29kZT4uClRoZXJlZm9yZSwgYSAiY2ZpPSIgc3BlY2lmaWNhdGlvbiBmb3IgdGhlIGNhbGwgdG8gPGNvZGUgY2xhc3M9ImZ1bmN0aW9uIj5mdW5jMTwvY29kZT4KaXMgbm90IG5lZWRlZC4gVGhlIGZ1bmN0aW9uIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+ZnVuYzE8L2NvZGU+IG9ubHkgY29uc2lzdHMgb2YgY29kZQphdCBsaW5lIDUxIG9mIDxjb2RlIGNsYXNzPSJmaWxlbmFtZSI+ZmlsZTEuYzwvY29kZT4sIHdoZXJlIDxjb2RlIGNsYXNzPSJmdW5jdGlvbiI+ZnVuYzI8L2NvZGU+CmlzIGNhbGxlZC48L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0MiI+CjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPgo8YSBuYW1lPSJjbC1mb3JtYXQub3ZlcnZpZXcuY29tcHJlc3Npb24xIj48L2E+My4xLjUuoE5hbWUgQ29tcHJlc3Npb248L2gzPjwvZGl2PjwvZGl2PjwvZGl2Pgo8cD5XaXRoIHRoZSBpbnRyb2R1Y3Rpb24gb2YgYXNzb2NpYXRpb24gc3BlY2lmaWNhdGlvbnMgbGlrZSBjYWxscyBpdCBpcwpuZWVkZWQgdG8gc3BlY2lmeSB0aGUgc2FtZSBmdW5jdGlvbiBvciBzYW1lIGZpbGUgbmFtZSBtdWx0aXBsZSB0aW1lcy4gQXMKYWJzb2x1dGUgZmlsZW5hbWVzIG9yIHN5bWJvbCBuYW1lcyBpbiBDKysgY2FuIGJlIHF1aXRlIGxvbmcsIGl0IGlzIGFkdmFudGFnZW91cwp0byBiZSBhYmxlIHRvIHNwZWNpZnkgaW50ZWdlciBJRHMgZm9yIHBvc2l0aW9uIHNwZWNpZmljYXRpb25zLgpIZXJlLCB0aGUgdGVybSAicG9zaXRpb24iIGNvcnJlc3BvbmRzIHRvIGEgZmlsZSBuYW1lIChzb3VyY2Ugb3Igb2JqZWN0IGZpbGUpCm9yIGZ1bmN0aW9uIG5hbWUuPC9wPgo8cD5UbyBzdXBwb3J0IG5hbWUgY29tcHJlc3Npb24sIGEgcG9zaXRpb24gc3BlY2lmaWNhdGlvbiBjYW4gYmUgbm90IG9ubHkgb2YKdGhlIGZvcm1hdCAic3BlYz1uYW1lIiwgYnV0IGFsc28gInNwZWM9KElEKSBuYW1lIiB0byBzcGVjaWZ5IGEgbWFwcGluZyBvZiBhbgppbnRlZ2VyIElEIHRvIGEgbmFtZSwgYW5kICJzcGVjPShJRCkiIHRvIHJlZmVyZW5jZSBhIHByZXZpb3VzbHkgZGVmaW5lZCBJRAptYXBwaW5nLiBUaGVyZSBpcyBhIHNlcGFyYXRlIElEIG1hcHBpbmcgZm9yIGVhY2ggcG9zaXRpb24gc3BlY2lmaWNhdGlvbiwKaS5lLiB5b3UgY2FuIHVzZSBJRCAxIGZvciBib3RoIGEgZmlsZSBuYW1lIGFuZCBhIHN5bWJvbCBuYW1lLjwvcD4KPHA+V2l0aCBzdHJpbmcgY29tcHJlc3Npb24sIHRoZSBleGFtcGxlIGZyb20gYWJvdmUgbG9va3MgbGlrZSB0aGlzOgo8L3A+CjxwcmUgY2xhc3M9InNjcmVlbiI+IyBjYWxsZ3JpbmQgZm9ybWF0CmV2ZW50czogSW5zdHJ1Y3Rpb25zCgpmbD0oMSkgZmlsZTEuYwpmbj0oMSkgbWFpbgoxNiAyMApjZm49KDIpIGZ1bmMxCmNhbGxzPTEgNTAKMTYgNDAwCmNmaT0oMikgZmlsZTIuYwpjZm49KDMpIGZ1bmMyCmNhbGxzPTMgMjAKMTYgNDAwCgpmbj0oMikKNTEgMTAwCmNmaT0oMikKY2ZuPSgzKQpjYWxscz0yIDIwCjUxIDMwMAoKZmw9KDIpCmZuPSgzKQoyMCA3MDA8L3ByZT4KPHA+QXMgcG9zaXRpb24gc3BlY2lmaWNhdGlvbnMgY2Fycnkgbm8gaW5mb3JtYXRpb24gdGhlbXNlbHZlcywgYnV0IG9ubHkgY2hhbmdlCnRoZSBtZWFuaW5nIG9mIHN1YnNlcXVlbnQgY29zdCBsaW5lcyBvciBhc3NvY2lhdGlvbnMsIHRoZXkgY2FuIGFwcGVhcgpldmVyeXdoZXJlIGluIHRoZSBmaWxlIHdpdGhvdXQgYW55IG5lZ2F0aXZlIGNvbnNlcXVlbmNlLiBFc3BlY2lhbGx5LCB5b3UgY2FuCmRlZmluZSBuYW1lIGNvbXByZXNzaW9uIG1hcHBpbmdzIGRpcmVjdGx5IGFmdGVyIHRoZSBoZWFkZXIsIGFuZCBiZWZvcmUgYW55IGNvc3QKbGluZXMuIFRodXMsIHRoZSBhYm92ZSBleGFtcGxlIGNhbiBhbHNvIGJlIHdyaXR0ZW4gYXMKPC9wPgo8cHJlIGNsYXNzPSJzY3JlZW4iPiMgY2FsbGdyaW5kIGZvcm1hdApldmVudHM6IEluc3RydWN0aW9ucwoKIyBkZWZpbmUgZmlsZSBJRCBtYXBwaW5nCmZsPSgxKSBmaWxlMS5jCmZsPSgyKSBmaWxlMi5jCiMgZGVmaW5lIGZ1bmN0aW9uIElEIG1hcHBpbmcKZm49KDEpIG1haW4KZm49KDIpIGZ1bmMxCmZuPSgzKSBmdW5jMgoKZmw9KDEpCmZuPSgxKQoxNiAyMAouLi48L3ByZT4KPC9kaXY+CjxkaXYgY2xhc3M9InNlY3QyIj4KPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+CjxhIG5hbWU9ImNsLWZvcm1hdC5vdmVydmlldy5jb21wcmVzc2lvbjIiPjwvYT4zLjEuNi6gU3VicG9zaXRpb24gQ29tcHJlc3Npb248L2gzPjwvZGl2PjwvZGl2PjwvZGl2Pgo8cD5JZiBhIENhbGxncmluZCBkYXRhIGZpbGUgc2hvdWxkIGhvbGQgY29zdHMgZm9yIGVhY2ggYXNzZW1ibGVyIGluc3RydWN0aW9uCm9mIGEgcHJvZ3JhbSwgeW91IHNwZWNpZnkgc3VicG9zaXRpb24gImluc3RyIiBpbiB0aGUgInBvc2l0aW9uczoiIGhlYWRlciBsaW5lLAphbmQgZWFjaCBjb3N0IGxpbmUgaGFzIHRvIGluY2x1ZGUgdGhlIGFkZHJlc3Mgb2Ygc29tZSBpbnN0cnVjdGlvbi4gQWRkcmVzc2VzCmFyZSBhbGxvd2VkIHRvIGhhdmUgYSBzaXplIG9mIDY0IGJpdHMgdG8gc3VwcG9ydCA2NC1iaXQgYXJjaGl0ZWN0dXJlcy4gVGh1cywKcmVwZWF0aW5nIHNpbWlsYXIsIGxvbmcgYWRkcmVzc2VzIGZvciBhbG1vc3QgZXZlcnkgbGluZSBpbiB0aGUgZGF0YSBmaWxlIGNhbgplbmxhcmdlIHRoZSBmaWxlIHNpemUgcXVpdGUgc2lnbmlmaWNhbnRseSwgYW5kCm1vdGl2YXRlcyBmb3Igc3VicG9zaXRpb24gY29tcHJlc3Npb246IGluc3RlYWQgb2YgZXZlcnkgY29zdCBsaW5lIHN0YXJ0aW5nIHdpdGgKYSAxNiBjaGFyYWN0ZXIgbG9uZyBhZGRyZXNzLCBvbmUgaXMgYWxsb3dlZCB0byBzcGVjaWZ5IHJlbGF0aXZlIGFkZHJlc3Nlcy4KVGhpcyByZWxhdGl2ZSBzcGVjaWZpY2F0aW9uIGlzIG5vdCBvbmx5IGFsbG93ZWQgZm9yIGluc3RydWN0aW9uIGFkZHJlc3NlcywgYnV0CmFsc28gZm9yIGxpbmUgbnVtYmVyczsgYm90aCBhZGRyZXNzZXMgYW5kIGxpbmUgbnVtYmVycyBhcmUgY2FsbGVkICJzdWJwb3NpdGlvbnMiLjwvcD4KPHA+QSByZWxhdGl2ZSBzdWJwb3NpdGlvbiBhbHdheXMgaXMgYmFzZWQgb24gdGhlIGNvcnJlc3BvbmRpbmcgc3VicG9zaXRpb24Kb2YgdGhlIGxhc3QgY29zdCBsaW5lLCBhbmQgc3RhcnRzIHdpdGggYSAiKyIgdG8gc3BlY2lmeSBhIHBvc2l0aXZlIGRpZmZlcmVuY2UsCmEgIi0iIHRvIHNwZWNpZnkgYSBuZWdhdGl2ZSBkaWZmZXJlbmNlLCBvciBjb25zaXN0cyBvZiAiKiIgdG8gc3BlY2lmeSB0aGUgc2FtZQpzdWJwb3NpdGlvbi4gQmVjYXVzZSBhYnNvbHV0ZSBzdWJwb3NpdGlvbnMgYWx3YXlzIGFyZSBwb3NpdGl2ZSAoaWUuIG5ldmVyCnByZWZpeGVkIGJ5ICItIiksIGFueSByZWxhdGl2ZSBzcGVjaWZpY2F0aW9uIGlzIG5vbi1hbWJpZ3VvdXM7IGFkZGl0aW9uYWxseSwKYWJzb2x1dGUgYW5kIHJlbGF0aXZlIHN1YnBvc2l0aW9uIHNwZWNpZmljYXRpb25zIGNhbiBiZSBtaXhlZCBmcmVlbHkuCkFzc3VtZSB0aGUgZm9sbG93aW5nIGV4YW1wbGUgKHN1YnBvc2l0aW9ucyBjYW4gYWx3YXlzIGJlIHNwZWNpZmllZAphcyBoZXhhZGVjaW1hbCBudW1iZXJzLCBiZWdpbm5pbmcgd2l0aCAiMHgiKToKPC9wPgo8cHJlIGNsYXNzPSJzY3JlZW4iPiMgY2FsbGdyaW5kIGZvcm1hdApwb3NpdGlvbnM6IGluc3RyIGxpbmUKZXZlbnRzOiB0aWNrcwoKZm49ZnVuYwoweDgwMDAxMjM0IDkwIDEKMHg4MDAwMTIzNyA5MCA1CjB4ODAwMDEyMzggOTEgNjwvcHJlPgo8cD5XaXRoIHN1YnBvc2l0aW9uIGNvbXByZXNzaW9uLCB0aGlzIGxvb2tzIGxpa2UKPC9wPgo8cHJlIGNsYXNzPSJzY3JlZW4iPiMgY2FsbGdyaW5kIGZvcm1hdApwb3NpdGlvbnM6IGluc3RyIGxpbmUKZXZlbnRzOiB0aWNrcwoKZm49ZnVuYwoweDgwMDAxMjM0IDkwIDEKKzMgKiA1CisxICsxIDY8L3ByZT4KPHA+UmVtYXJrOiBGb3IgYXNzZW1ibGVyIGFubm90YXRpb24gdG8gd29yaywgaW5zdHJ1Y3Rpb24gYWRkcmVzc2VzIGhhdmUgdG8KYmUgY29ycmVjdGVkIHRvIGNvcnJlc3BvbmQgdG8gYWRkcmVzc2VzIGZvdW5kIGluIHRoZSBvcmlnaW5hbCBiaW5hcnkuIEkuZS4gZm9yCnJlbG9jYXRhYmxlIHNoYXJlZCBvYmplY3RzLCBvZnRlbiBhIGxvYWQgb2Zmc2V0IGhhcyB0byBiZSBzdWJ0cmFjdGVkLjwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InNlY3QyIj4KPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+CjxhIG5hbWU9ImNsLWZvcm1hdC5vdmVydmlldy5taXNjIj48L2E+My4xLjcuoE1pc2NlbGxhbmVvdXM8L2gzPjwvZGl2PjwvZGl2PjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0MyI+CjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoNCBjbGFzcz0idGl0bGUiPgo8YSBuYW1lPSJjbC1mb3JtYXQub3ZlcnZpZXcubWlzYy5zdW1tYXJ5Ij48L2E+My4xLjcuMS6gQ29zdCBTdW1tYXJ5IEluZm9ybWF0aW9uPC9oND48L2Rpdj48L2Rpdj48L2Rpdj4KPHA+Rm9yIHRoZSB2aXN1YWxpemF0aW9uIHRvIGJlIGFibGUgdG8gc2hvdyBjb3N0IHBlcmNlbnRhZ2UsIGEgc3VtIG9mIHRoZQpjb3N0IG9mIHRoZSBmdWxsIHJ1biBoYXMgdG8gYmUga25vd24uIFVzdWFsbHksIGl0IGlzIGFzc3VtZWQgdGhhdCB0aGlzIGlzIHRoZQpzdW0gb2YgYWxsIGNvc3QgbGluZXMgaW4gYSBmaWxlLiBCdXQgc29tZXRpbWVzLCB0aGlzIGlzIG5vdCBjb3JyZWN0LiBUaHVzLCB5b3UKY2FuIHNwZWNpZnkgYSAic3VtbWFyeToiIGxpbmUgaW4gdGhlIGhlYWRlciBnaXZpbmcgdGhlIGZ1bGwgY29zdCBmb3IgdGhlCnByb2ZpbGUgcnVuLiBBbiBpbXBvcnQgZmlsdGVyIG1heSB1c2UgdGhpcyB0byBzaG93IGEgcHJvZ3Jlc3MgYmFyCndoaWxlIGxvYWRpbmcgYSBsYXJnZSBkYXRhIGZpbGUuPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdDMiPgo8ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDQgY2xhc3M9InRpdGxlIj4KPGEgbmFtZT0iY2wtZm9ybWF0Lm92ZXJ2aWV3Lm1pc2MuZXZlbnRzIj48L2E+My4xLjcuMi6gTG9uZyBOYW1lcyBmb3IgRXZlbnQgVHlwZXMgYW5kIGluaGVyaXRlZCBUeXBlczwvaDQ+PC9kaXY+PC9kaXY+PC9kaXY+CjxwPkV2ZW50IHR5cGVzIGZvciBjb3N0IGxpbmVzIGFyZSBzcGVjaWZpZWQgaW4gdGhlICJldmVudHM6IiBsaW5lIHdpdGggYW4KYWJicmV2aWF0ZWQgbmFtZS4gRm9yIHZpc3VhbGl6YXRpb24sIGl0IG1ha2VzIHNlbnNlIHRvIGJlIGFibGUgdG8gc3BlY2lmeSBzb21lCmxvbmdlciwgbW9yZSBkZXNjcmlwdGl2ZSBuYW1lLiBGb3IgYW4gZXZlbnQgdHlwZSAiSXIiIHdoaWNoIG1lYW5zICJJbnN0cnVjdGlvbgpGZXRjaGVzIiwgdGhpcyBjYW4gYmUgc3BlY2lmaWVkIHRoZSBoZWFkZXIgbGluZQo8L3A+CjxwcmUgY2xhc3M9InNjcmVlbiI+ZXZlbnQ6IElyIDogSW5zdHJ1Y3Rpb24gRmV0Y2hlcwpldmVudHM6IElyIERyPC9wcmU+CjxwPkluIHRoaXMgZXhhbXBsZSwgIkRyIiBpdHNlbGYgaGFzIG5vIGxvbmcgbmFtZSBhc3NvY2lhdGVkLiBUaGUgb3JkZXIgb2YKImV2ZW50OiIgbGluZXMgYW5kIHRoZSAiZXZlbnRzOiIgbGluZSBpcyBvZiBubyBpbXBvcnRhbmNlLiBBZGRpdGlvbmFsbHksCmluaGVyaXRlZCBldmVudCB0eXBlcyBjYW4gYmUgaW50cm9kdWNlZCBmb3Igd2hpY2ggbm8gcmF3IGRhdGEgaXMgYXZhaWxhYmxlLCBidXQKd2hpY2ggYXJlIGNhbGN1bGF0ZWQgZnJvbSBnaXZlbiB0eXBlcy4gU3VwcG9zZSB0aGUgbGFzdCBleGFtcGxlLCB5b3UgY291bGQgYWRkCjwvcD4KPHByZSBjbGFzcz0ic2NyZWVuIj5ldmVudDogU3VtID0gSXIgKyBEcjwvcHJlPgo8cD4KdG8gc3BlY2lmeSBhbiBhZGRpdGlvbmFsIGV2ZW50IHR5cGUgIlN1bSIsIHdoaWNoIGlzIGNhbGN1bGF0ZWQgYnkgYWRkaW5nIGNvc3RzCmZvciAiSXIgYW5kICJEciIuPC9wPgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0MSI+CjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+CjxhIG5hbWU9ImNsLWZvcm1hdC5yZWZlcmVuY2UiPjwvYT4zLjIuoFJlZmVyZW5jZTwvaDI+PC9kaXY+PC9kaXY+PC9kaXY+CjxkaXYgY2xhc3M9InNlY3QyIj4KPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+CjxhIG5hbWU9ImNsLWZvcm1hdC5yZWZlcmVuY2UuZ3JhbW1hciI+PC9hPjMuMi4xLqBHcmFtbWFyPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KPHA+CjwvcD4KPHByZSBjbGFzcz0ic2NyZWVuIj5Qcm9maWxlRGF0YUZpbGUgOj0gRm9ybWF0U3BlYz8gRm9ybWF0VmVyc2lvbj8gQ3JlYXRvcj8gUGFydERhdGEqPC9wcmU+CjxwPgo8L3A+CjxwcmUgY2xhc3M9InNjcmVlbiI+Rm9ybWF0U3BlYyA6PSAiIyBjYWxsZ3JpbmQgZm9ybWF0XG4iPC9wcmU+CjxwPgo8L3A+CjxwcmUgY2xhc3M9InNjcmVlbiI+Rm9ybWF0VmVyc2lvbiA6PSAidmVyc2lvbjogMVxuIjwvcHJlPgo8cD4KPC9wPgo8cHJlIGNsYXNzPSJzY3JlZW4iPkNyZWF0b3IgOj0gImNyZWF0b3I6IiBOb05ld0xpbmVDaGFyKiAiXG4iPC9wcmU+CjxwPgo8L3A+CjxwcmUgY2xhc3M9InNjcmVlbiI+UGFydERhdGEgOj0gKEhlYWRlckxpbmUgIlxuIikrIChCb2R5TGluZSAiXG4iKSs8L3ByZT4KPHA+CjwvcD4KPHByZSBjbGFzcz0ic2NyZWVuIj5IZWFkZXJMaW5lIDo9IChlbXB0eSBsaW5lKQogIHwgKCcjJyBOb05ld0xpbmVDaGFyKikKICB8IFBhcnREZXRhaWwKICB8IERlc2NyaXB0aW9uCiAgfCBFdmVudFNwZWNpZmljYXRpb24KICB8IENvc3RMaW5lRGVmPC9wcmU+CjxwPgo8L3A+CjxwcmUgY2xhc3M9InNjcmVlbiI+UGFydERldGFpbCA6PSBUYXJnZXRDb21tYW5kIHwgVGFyZ2V0SUQ8L3ByZT4KPHA+CjwvcD4KPHByZSBjbGFzcz0ic2NyZWVuIj5UYXJnZXRDb21tYW5kIDo9ICJjbWQ6IiBTcGFjZSogTm9OZXdMaW5lQ2hhcio8L3ByZT4KPHA+CjwvcD4KPHByZSBjbGFzcz0ic2NyZWVuIj5UYXJnZXRJRCA6PSAoInBpZCJ8InRocmVhZCJ8InBhcnQiKSAiOiIgU3BhY2UqIE51bWJlcjwvcHJlPgo8cD4KPC9wPgo8cHJlIGNsYXNzPSJzY3JlZW4iPkRlc2NyaXB0aW9uIDo9ICJkZXNjOiIgU3BhY2UqIE5hbWUgU3BhY2UqICI6IiBOb05ld0xpbmVDaGFyKjwvcHJlPgo8cD4KPC9wPgo8cHJlIGNsYXNzPSJzY3JlZW4iPkV2ZW50U3BlY2lmaWNhdGlvbiA6PSAiZXZlbnQ6IiBTcGFjZSogTmFtZSBJbmhlcml0ZWREZWY/IExvbmdOYW1lRGVmPzwvcHJlPgo8cD4KPC9wPgo8cHJlIGNsYXNzPSJzY3JlZW4iPkluaGVyaXRlZERlZiA6PSAiPSIgSW5oZXJpdGVkRXhwcjwvcHJlPgo8cD4KPC9wPgo8cHJlIGNsYXNzPSJzY3JlZW4iPkluaGVyaXRlZEV4cHIgOj0gTmFtZQogIHwgTnVtYmVyIFNwYWNlKiAoIioiIFNwYWNlKik/IE5hbWUKICB8IEluaGVyaXRlZEV4cHIgU3BhY2UqICIrIiBTcGFjZSogSW5oZXJpdGVkRXhwcjwvcHJlPgo8cD4KPC9wPgo8cHJlIGNsYXNzPSJzY3JlZW4iPkxvbmdOYW1lRGVmIDo9ICI6IiBOb05ld0xpbmVDaGFyKjwvcHJlPgo8cD4KPC9wPgo8cHJlIGNsYXNzPSJzY3JlZW4iPkNvc3RMaW5lRGVmIDo9ICJldmVudHM6IiBTcGFjZSogTmFtZSAoU3BhY2UrIE5hbWUpKgogIHwgInBvc2l0aW9uczoiICJpbnN0ciI/IChTcGFjZSsgImxpbmUiKT88L3ByZT4KPHA+CjwvcD4KPHByZSBjbGFzcz0ic2NyZWVuIj5Cb2R5TGluZSA6PSAoZW1wdHkgbGluZSkKICB8ICgnIycgTm9OZXdMaW5lQ2hhciopCiAgfCBDb3N0TGluZQogIHwgUG9zaXRpb25TcGVjCiAgfCBDYWxsU3BlYwogIHwgVW5jb25kSnVtcFNwZWMKICB8IENvbmRKdW1wU3BlYzwvcHJlPgo8cD4KPC9wPgo8cHJlIGNsYXNzPSJzY3JlZW4iPkNvc3RMaW5lIDo9IFN1YlBvc2l0aW9uTGlzdCBDb3N0cz88L3ByZT4KPHA+CjwvcD4KPHByZSBjbGFzcz0ic2NyZWVuIj5TdWJQb3NpdGlvbkxpc3QgOj0gKFN1YlBvc2l0aW9uKyBTcGFjZSspKzwvcHJlPgo8cD4KPC9wPgo8cHJlIGNsYXNzPSJzY3JlZW4iPlN1YlBvc2l0aW9uIDo9IE51bWJlciB8ICIrIiBOdW1iZXIgfCAiLSIgTnVtYmVyIHwgIioiPC9wcmU+CjxwPgo8L3A+CjxwcmUgY2xhc3M9InNjcmVlbiI+Q29zdHMgOj0gKE51bWJlciBTcGFjZSspKzwvcHJlPgo8cD4KPC9wPgo8cHJlIGNsYXNzPSJzY3JlZW4iPlBvc2l0aW9uU3BlYyA6PSBQb3NpdGlvbiAiPSIgU3BhY2UqIFBvc2l0aW9uTmFtZTwvcHJlPgo8cD4KPC9wPgo8cHJlIGNsYXNzPSJzY3JlZW4iPlBvc2l0aW9uIDo9IENvc3RQb3NpdGlvbiB8IENhbGxlZFBvc2l0aW9uPC9wcmU+CjxwPgo8L3A+CjxwcmUgY2xhc3M9InNjcmVlbiI+Q29zdFBvc2l0aW9uIDo9ICJvYiIgfCAiZmwiIHwgImZpIiB8ICJmZSIgfCAiZm4iPC9wcmU+CjxwPgo8L3A+CjxwcmUgY2xhc3M9InNjcmVlbiI+Q2FsbGVkUG9zaXRpb24gOj0gIiAiY29iIiB8ICJjZmkiIHwgImNmbCIgfCAiY2ZuIjwvcHJlPgo8cD4KPC9wPgo8cHJlIGNsYXNzPSJzY3JlZW4iPlBvc2l0aW9uTmFtZSA6PSAoICIoIiBOdW1iZXIgIikiICk/IChTcGFjZSogTm9OZXdMaW5lQ2hhciogKT88L3ByZT4KPHA+CjwvcD4KPHByZSBjbGFzcz0ic2NyZWVuIj5DYWxsU3BlYyA6PSBDYWxsTGluZSAiXG4iIENvc3RMaW5lPC9wcmU+CjxwPgo8L3A+CjxwcmUgY2xhc3M9InNjcmVlbiI+Q2FsbExpbmUgOj0gImNhbGxzPSIgU3BhY2UqIE51bWJlciBTcGFjZSsgU3ViUG9zaXRpb25MaXN0PC9wcmU+CjxwPgo8L3A+CjxwcmUgY2xhc3M9InNjcmVlbiI+VW5jb25kSnVtcFNwZWMgOj0gImp1bXA9IiBTcGFjZSogTnVtYmVyIFNwYWNlKyBTdWJQb3NpdGlvbkxpc3Q8L3ByZT4KPHA+CjwvcD4KPHByZSBjbGFzcz0ic2NyZWVuIj5Db25kSnVtcFNwZWMgOj0gImpjbmQ9IiBTcGFjZSogTnVtYmVyIFNwYWNlKyBOdW1iZXIgU3BhY2UrIFN1YlBvc2l0aW9uTGlzdDwvcHJlPgo8cD4KPC9wPgo8cHJlIGNsYXNzPSJzY3JlZW4iPlNwYWNlIDo9ICIgIiB8ICJcdCI8L3ByZT4KPHA+CjwvcD4KPHByZSBjbGFzcz0ic2NyZWVuIj5OdW1iZXIgOj0gSGV4TnVtYmVyIHwgKERpZ2l0KSs8L3ByZT4KPHA+CjwvcD4KPHByZSBjbGFzcz0ic2NyZWVuIj5EaWdpdCA6PSAiMCIgfCAuLi4gfCAiOSI8L3ByZT4KPHA+CjwvcD4KPHByZSBjbGFzcz0ic2NyZWVuIj5IZXhOdW1iZXIgOj0gIjB4IiAoRGlnaXQgfCBIZXhDaGFyKSs8L3ByZT4KPHA+CjwvcD4KPHByZSBjbGFzcz0ic2NyZWVuIj5IZXhDaGFyIDo9ICJhIiB8IC4uLiB8ICJmIiB8ICJBIiB8IC4uLiB8ICJGIjwvcHJlPgo8cD4KPC9wPgo8cHJlIGNsYXNzPSJzY3JlZW4iPk5hbWUgPSBBbHBoYSAoRGlnaXQgfCBBbHBoYSkqPC9wcmU+CjxwPgo8L3A+CjxwcmUgY2xhc3M9InNjcmVlbiI+QWxwaGEgPSAiYSIgfCAuLi4gfCAieiIgfCAiQSIgfCAuLi4gfCAiWiI8L3ByZT4KPHA+CjwvcD4KPHByZSBjbGFzcz0ic2NyZWVuIj5Ob05ld0xpbmVDaGFyIDo9IGFsbCBjaGFyYWN0ZXJzIHdpdGhvdXQgIlxuIjwvcHJlPgo8cD4KPC9wPgo8cD5BIHByb2ZpbGUgZGF0YSBmaWxlICgiUHJvZmlsZURhdGFGaWxlIikgc3RhcnRzIHdpdGggYmFzaWMgaW5mb3JtYXRpb24KICBzdWNoIGFzIGEgZm9ybWF0IG1hcmtlciwgdGhlIHZlcnNpb24gYW5kIGNyZWF0b3IgaW5mb3JtYXRpb24sIGFuZCB0aGVuIGhhcyBhIGxpc3Qgb2YgcGFydHMsIHdoZXJlCiAgZWFjaCBwYXJ0IGhhcyBpdHMgb3duIGhlYWRlciBhbmQgYm9keS4gUGFydHMgdHlwaWNhbGx5IGFyZSBkaWZmZXJlbnQgdGhyZWFkcwogIGFuZC9vciB0aW1lIHNwYW5zL3BoYXNlcyB3aXRoaW4gYSBwcm9maWxlZCBhcHBsaWNhdGlvbiBydW4uPC9wPgo8cD5Ob3RlIHRoYXQgY2FsbGdyaW5kX2Fubm90YXRlIGN1cnJlbnRseSBvbmx5IHN1cHBvcnRzIHByb2ZpbGUgZGF0YSBmaWxlcyB3aXRoCiAgb25lIHBhcnQuIENhbGxncmluZCBtYXkgcHJvZHVjZSBtdWx0aXBsZSBwYXJ0cyBmb3Igb25lIHByb2ZpbGUgcnVuLCBidXQgZGVmYXVsdHMKICB0byBvbmUgb3V0cHV0IGZpbGUgZm9yIGVhY2ggcGFydC48L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0MiI+CjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPgo8YSBuYW1lPSJjbC1mb3JtYXQucmVmZXJlbmNlLmhlYWRlciI+PC9hPjMuMi4yLqBEZXNjcmlwdGlvbiBvZiBIZWFkZXIgTGluZXM8L2gzPjwvZGl2PjwvZGl2PjwvZGl2Pgo8cD5CYXNpYyBpbmZvcm1hdGlvbiBpbiB0aGUgZmlyc3QgbGluZXMgb2YgYSBwcm9maWxlIGRhdGEgZmlsZTo8L3A+CjxkaXYgY2xhc3M9Iml0ZW1pemVkbGlzdCI+PHVsIGNsYXNzPSJpdGVtaXplZGxpc3QiIHN0eWxlPSJsaXN0LXN0eWxlLXR5cGU6IGRpc2M7ICI+CjxsaSBjbGFzcz0ibGlzdGl0ZW0iPgo8cD48Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPiMgY2FsbGdyaW5kIGZvcm1hdDwvY29kZT4gW0NhbGxncmluZF08L3A+CjxwPlRoaXMgbGluZSBzcGVjaWZpZXMgdGhhdCB0aGUgZmlsZSBpcyBhIGNhbGxncmluZCBwcm9maWxlLAogICAgICBhbmQgaXQgaGFzIHRvIGJlIHRoZSBmaXJzdCBsaW5lLiBJdCB3YXMgYWRkZWQgbGF0ZSB0byB0aGUKICAgICAgZm9ybWF0ICh3aXRoIFZhbGdyaW5kIDMuMTMpIGFuZCBpcyBvcHRpb25hbCwgYXMgYWxsIHJlYWRlcnMgYWxzbwogICAgICBzaG91bGQgd29yayB3aXRoIG9sZGVyIGNhbGxncmluZCBwcm9maWxlcyBub3QgaW5jbHVkaW5nIHRoaXMgbGluZS4KICAgICAgSG93ZXZlciwgZ2VuZXJhdGlvbiBvZiB0aGlzIGxpbmUgaXMgcmVjb21tZW5kZWQgdG8gYWxsb3cgZGVza3RvcAogICAgICBlbnZpcm9ubWVudHMgYW5kIGZpbGUgbWFuYWdlcnMgdG8gdW5pcXVlbHkgZGV0ZWN0IHRoZSBmb3JtYXQuPC9wPgo8L2xpPgo8bGkgY2xhc3M9Imxpc3RpdGVtIj4KPHA+PGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij52ZXJzaW9uOiBudW1iZXI8L2NvZGU+IFtDYWxsZ3JpbmRdPC9wPgo8cD5UaGlzIGlzIHVzZWQgdG8gZGlzdGluZ3Vpc2ggZnV0dXJlIHByb2ZpbGUgZGF0YSBmb3JtYXRzLiAgQSAKICAgIG1ham9yIHZlcnNpb24gb2YgMCBvciAxIGlzIHN1cHBvc2VkIHRvIGJlIHVwd2FyZHMgY29tcGF0aWJsZSB3aXRoIAogICAgQ2FjaGVncmluZCdzIGZvcm1hdC4gIEl0IGlzIG9wdGlvbmFsOyBpZiBub3QgYXBwZWFyaW5nLCB2ZXJzaW9uIDEgCiAgICBpcyBhc3N1bWVkLiAgT3RoZXJ3aXNlLCBpdCBoYXMgdG8gZm9sbG93IGRpcmVjdGx5IGFmdGVyIHRoZSBmb3JtYXQKICAgIHNwZWNpZmljYXRpb24gKGkuZS4gYmUgdGhlIGZpcnN0IGxpbmUgaWYgdGhlIG9wdGlvbmFsIGZvcm1hdAogICAgc3BlY2lmaWNhdGlvbiBpcyBza2lwcGVkKS48L3A+CjwvbGk+CjxsaSBjbGFzcz0ibGlzdGl0ZW0iPgo8cD48Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmNyZWF0b3I6IHN0cmluZzwvY29kZT4gW0NhbGxncmluZF08L3A+CjxwPlRoaXMgaXMgYW4gYXJiaXRyYXJ5IHN0cmluZyB0byBkZW5vdGUgdGhlIGNyZWF0b3Igb2YgdGhpcyBmaWxlLgogICAgICBPcHRpb25hbC48L3A+CjwvbGk+CjwvdWw+PC9kaXY+CjxwPlRoZSBoZWFkZXIgZm9yIGVhY2ggcGFydCBoYXMgYW4gYXJiaXRyYXJ5IG51bWJlciBvZiBsaW5lcyBvZiB0aGUgZm9ybWF0IAoia2V5OiB2YWx1ZSIuIFBvc3NpYmxlIDxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPmtleTwvZW0+PC9zcGFuPiB2YWx1ZXMgZm9yIHRoZSBoZWFkZXIgYXJlOjwvcD4KPGRpdiBjbGFzcz0iaXRlbWl6ZWRsaXN0Ij48dWwgY2xhc3M9Iml0ZW1pemVkbGlzdCIgc3R5bGU9Imxpc3Qtc3R5bGUtdHlwZTogZGlzYzsgIj4KPGxpIGNsYXNzPSJsaXN0aXRlbSI+CjxwPjxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+cGlkOiBwcm9jZXNzIGlkPC9jb2RlPiBbQ2FsbGdyaW5kXTwvcD4KPHA+T3B0aW9uYWwuIFRoaXMgc3BlY2lmaWVzIHRoZSBwcm9jZXNzIElEIG9mIHRoZSBzdXBlcnZpc2VkIGFwcGxpY2F0aW9uIAogICAgZm9yIHdoaWNoIHRoaXMgcHJvZmlsZSB3YXMgZ2VuZXJhdGVkLjwvcD4KPC9saT4KPGxpIGNsYXNzPSJsaXN0aXRlbSI+CjxwPjxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+Y21kOiBwcm9ncmFtIG5hbWUgKyBhcmdzPC9jb2RlPiBbQ2FjaGVncmluZF08L3A+CjxwPk9wdGlvbmFsLiBUaGlzIHNwZWNpZmllcyB0aGUgZnVsbCBjb21tYW5kIGxpbmUgb2YgdGhlIHN1cGVydmlzZWQKICAgIGFwcGxpY2F0aW9uIGZvciB3aGljaCB0aGlzIHByb2ZpbGUgd2FzIGdlbmVyYXRlZC48L3A+CjwvbGk+CjxsaSBjbGFzcz0ibGlzdGl0ZW0iPgo8cD48Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPnBhcnQ6IG51bWJlcjwvY29kZT4gW0NhbGxncmluZF08L3A+CjxwPk9wdGlvbmFsLiBUaGlzIHNwZWNpZmllcyBhIHNlcXVlbnRpYWxseSBpbmNyZW1lbnRlZCBudW1iZXIgZm9yIGVhY2ggZHVtcCAKICAgIGdlbmVyYXRlZCwgc3RhcnRpbmcgYXQgMS48L3A+CjwvbGk+CjxsaSBjbGFzcz0ibGlzdGl0ZW0iPgo8cD48Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmRlc2M6IHR5cGU6IHZhbHVlPC9jb2RlPiBbQ2FjaGVncmluZF08L3A+CjxwPlRoaXMgc3BlY2lmaWVzIHZhcmlvdXMgaW5mb3JtYXRpb24gZm9yIHRoaXMgZHVtcC4gIEZvciBzb21lIAogICAgdHlwZXMsIHRoZSBzZW1hbnRpYyBpcyBkZWZpbmVkLCBidXQgYW55IGRlc2NyaXB0aW9uIHR5cGUgaXMgYWxsb3dlZC4gCiAgICBVbmtub3duIHR5cGVzIHNob3VsZCBiZSBpZ25vcmVkLjwvcD4KPHA+VGhlcmUgYXJlIHRoZSB0eXBlcyAiSTEgY2FjaGUiLCAiRDEgY2FjaGUiLCAiTEwgY2FjaGUiLCB3aGljaCAKICAgIHNwZWNpZnkgcGFyYW1ldGVycyB1c2VkIGZvciB0aGUgY2FjaGUgc2ltdWxhdG9yLiAgVGhlc2UgYXJlIHRoZSBvbmx5CiAgICB0eXBlcyBvcmlnaW5hbGx5IHVzZWQgYnkgQ2FjaGVncmluZC4gIEFkZGl0aW9uYWxseSwgQ2FsbGdyaW5kIHVzZXMgCiAgICB0aGUgZm9sbG93aW5nIHR5cGVzOiAgIlRpbWVyYW5nZSIgZ2l2ZXMgYSByb3VnaCByYW5nZSBvZiB0aGUgYmFzaWMKICAgIGJsb2NrIGNvdW50ZXIsIGZvciB3aGljaCB0aGUgY29zdCBvZiB0aGlzIGR1bXAgd2FzIGNvbGxlY3RlZC4gCiAgICBUeXBlICJUcmlnZ2VyIiBzdGF0ZXMgdGhlIHJlYXNvbiBvZiB3aHkgdGhpcyB0cmFjZSB3YXMgZ2VuZXJhdGVkLgogICAgRS5nLiBwcm9ncmFtIHRlcm1pbmF0aW9uIG9yIGZvcmNlZCBpbnRlcmFjdGl2ZSBkdW1wLjwvcD4KPC9saT4KPGxpIGNsYXNzPSJsaXN0aXRlbSI+CjxwPjxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+cG9zaXRpb25zOiBbaW5zdHJdIFtsaW5lXTwvY29kZT4gW0NhbGxncmluZF08L3A+CjxwPkZvciBjb3N0IGxpbmVzLCB0aGlzIGRlZmluZXMgdGhlIHNlbWFudGljIG9mIHRoZSBmaXJzdCBudW1iZXJzLiAKICAgIEFueSBjb21iaW5hdGlvbiBvZiAiaW5zdHIiLCAiYmIiIGFuZCAibGluZSIgaXMgYWxsb3dlZCwgYnV0IGhhcyB0byBiZSAKICAgIGluIHRoaXMgb3JkZXIgd2hpY2ggY29ycmVzcG9uZHMgdG8gcG9zaXRpb24gbnVtYmVycyBhdCB0aGUgc3RhcnQgb2YgCiAgICB0aGUgY29zdCBsaW5lcyBsYXRlciBpbiB0aGUgZmlsZS48L3A+CjxwPklmICJpbnN0ciIgaXMgc3BlY2lmaWVkLCB0aGUgcG9zaXRpb24gaXMgdGhlIGFkZHJlc3Mgb2YgYW4gCiAgICBpbnN0cnVjdGlvbiB3aG9zZSBleGVjdXRpb24gcmFpc2VkIHRoZSBldmVudHMgZ2l2ZW4gbGF0ZXIgb24gdGhlIAogICAgbGluZS4gIFRoaXMgYWRkcmVzcyBpcyByZWxhdGl2ZSB0byB0aGUgb2Zmc2V0IG9mIHRoZSBiaW5hcnkvc2hhcmVkIAogICAgbGlicmFyeSBmaWxlIHRvIG5vdCBoYXZlIHRvIHNwZWNpZnkgcmVsb2NhdGlvbiBpbmZvLiAgRm9yICJsaW5lIiwgCiAgICB0aGUgcG9zaXRpb24gaXMgdGhlIGxpbmUgbnVtYmVyIG9mIGEgc291cmNlIGZpbGUsIHdoaWNoIGlzIAogICAgcmVzcG9uc2libGUgZm9yIHRoZSBldmVudHMgcmFpc2VkLiBOb3RlIHRoYXQgdGhlIG1hcHBpbmcgb2YgImluc3RyIgogICAgYW5kICJsaW5lIiBwb3NpdGlvbnMgYXJlIGdpdmVuIGJ5IHRoZSBkZWJ1Z2dpbmcgbGluZSBpbmZvcm1hdGlvbgogICAgcHJvZHVjZWQgYnkgdGhlIGNvbXBpbGVyLjwvcD4KPHA+VGhpcyBoZWFkZXIgbGluZSBpcyBvcHRpb25hbCwgZGVmYXVsdGluZyB0byAicG9zaXRpb25zOgogICAgbGluZSIgaWYgbm90IHNwZWNpZmllZC48L3A+CjwvbGk+CjxsaSBjbGFzcz0ibGlzdGl0ZW0iPgo8cD48Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmV2ZW50czogZXZlbnQgdHlwZSBhYmJyZXZpYXRpb25zPC9jb2RlPiBbQ2FjaGVncmluZF08L3A+CjxwPkEgbGlzdCBvZiBzaG9ydCBuYW1lcyBvZiB0aGUgZXZlbnQgdHlwZXMgbG9nZ2VkIGluIGNvc3QKICAgICAgbGluZXMgaW4gdGhpcyBwYXJ0IG9mIHRoZSBwcm9maWxlIGRhdGEgZmlsZS4gQXJiaXRyYXJ5IHNob3J0CiAgICAgIG5hbWVzIGFyZSBhbGxvd2VkLiAgVGhlIG9yZGVyIGdpdmVuIHNwZWNpZmllcyB0aGUgcmVxdWlyZWQgb3JkZXIKICAgICAgaW4gY29zdCBsaW5lcy4gVGh1cywgdGhlIGZpcnN0IGV2ZW50IHR5cGUgaXMgdGhlIHNlY29uZCBvciB0aGlyZAogICAgICBudW1iZXIgaW4gYSBjb3N0IGxpbmUsIGRlcGVuZGluZyBvbiB0aGUgdmFsdWUgb2YgInBvc2l0aW9ucyIuCiAgICAgIFJlcXVpcmVkIHRvIGFwcGVhciBmb3IgZWFjaCBoZWFkZXIgcGFydCBleGFjdGx5IG9uY2UuPC9wPgo8L2xpPgo8bGkgY2xhc3M9Imxpc3RpdGVtIj4KPHA+PGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5zdW1tYXJ5OiBjb3N0czwvY29kZT4gW0NhbGxncmluZF08L3A+CjxwPk9wdGlvbmFsLiBUaGlzIGhlYWRlciBsaW5lIHNwZWNpZmllcyBhIHN1bW1hcnkgY29zdCwgd2hpY2ggc2hvdWxkIGJlCiAgICBlcXVhbCBvciBsYXJnZXIgdGhhbiBhIHRvdGFsIG92ZXIgYWxsIHNlbGYgY29zdHMuIEl0IG1heSBiZSBsYXJnZXIgYXMKICAgIHRoZSBjb3N0IGxpbmVzIG1heSBub3QgcmVwcmVzZW50IGFsbCBjb3N0IG9mIHRoZSBwcm9ncmFtIHJ1bi48L3A+CjwvbGk+CjxsaSBjbGFzcz0ibGlzdGl0ZW0iPgo8cD48Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPnRvdGFsczogY29zdHM8L2NvZGU+IFtDYWNoZWdyaW5kXTwvcD4KPHA+T3B0aW9uYWwuIFNob3VsZCBhcHBlYXIgYXQgdGhlIGVuZCBvZiB0aGUgZmlsZSAoYWx0aG91Z2gKICAgIGxvb2tpbmcgbGlrZSBhIGhlYWRlciBsaW5lKS4gTXVzdCBnaXZlIHRoZSB0b3RhbCBvZiBhbGwgY29zdCBsaW5lcywKICAgIHRvIGFsbG93IGZvciBhIGNvbnNpc3RlbmN5IGNoZWNrLjwvcD4KPC9saT4KPC91bD48L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InNlY3QyIj4KPGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+CjxhIG5hbWU9ImNsLWZvcm1hdC5yZWZlcmVuY2UuYm9keSI+PC9hPjMuMi4zLqBEZXNjcmlwdGlvbiBvZiBCb2R5IExpbmVzPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj4KPHA+VGhlIHJlZ3VsYXIgYm9keSBsaW5lIGlzIGEgY29zdCBsaW5lIGNvbnNpc3Rpbmcgb2Ygb25lIG9yIHR3bwpwb3NpdGlvbiBudW1iZXJzIChkZXBlbmRpbmcgb24gInBvc2l0aW9uczoiIGhlYWRlciBsaW5lLCBzZWUgYWJvdmUpCmFuZCBhbiBhcnJheSBvZiBjb3N0IG51bWJlcnMuIEEgcG9zaXRpb24gbnVtYmVyIGVpdGhlciBpcyBhCmxpbmUgbnVtYmVycyBpbnRvIGEgc291cmNlIGZpbGUgb3IgYW4gaW5zdHJ1Y3Rpb24gYWRkcmVzcyB3aXRoaW4gYmluYXJ5CmNvZGUsIHdpdGggc291cmNlL2JpbmFyeSBmaWxlIG5hbWVzIHNwZWNpZmllZCBhcyBwb3NpdGlvbiBuYW1lcyAoc2VlCmJlbG93KS4gVGhlIGNvc3QgbnVtYmVycyBnZXQgbWFwcGVkIHRvIGV2ZW50IHR5cGVzIGluIHRoZSBzYW1lIG9yZGVyCmFzIHNwZWNpZmllZCBpbiB0aGUgImV2ZW50czoiIGhlYWRlciBsaW5lLiBJZiBsZXNzIG51bWJlcnMgdGhhbiBldmVudAp0eXBlcyBhcmUgZ2l2ZW4sIHRoZSBjb3N0cyBkZWZhdWx0IHRvIHplcm8gZm9yIHRoZSByZW1haW5pbmcgZXZlbnQKdHlwZXMuPC9wPgo8cD5GdXJ0aGVyLCB0aGVyZSBleGlzdCBsaW5lcwo8Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPnNwZWM9cG9zaXRpb24gbmFtZTwvY29kZT4uICBBIHBvc2l0aW9uIG5hbWUKaXMgYW4gYXJiaXRyYXJ5IHN0cmluZy4gSWYgaXQgc3RhcnRzIHdpdGggIigiIGFuZCBhCmRpZ2l0LCBpdCdzIGEgc3RyaW5nIGluIGNvbXByZXNzZWQgZm9ybWF0LiAgT3RoZXJ3aXNlIGl0J3MgdGhlIHJlYWwKcG9zaXRpb24gc3RyaW5nLiAgVGhpcyBhbGxvd3MgZm9yIGZpbGUgYW5kIHN5bWJvbCBuYW1lcyBhcyBwb3NpdGlvbgpzdHJpbmdzLCBhcyB0aGVzZSBuZXZlciBzdGFydCB3aXRoICIoIiArIDxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPmRpZ2l0PC9lbT48L3NwYW4+LgpUaGUgY29tcHJlc3NlZCBmb3JtYXQgaXMgZWl0aGVyICIoIiA8c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT5udW1iZXI8L2VtPjwvc3Bhbj4gIikiCjxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPnNwYWNlPC9lbT48L3NwYW4+IDxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPnBvc2l0aW9uPC9lbT48L3NwYW4+IG9yIG9ubHkgCiIoIiA8c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT5udW1iZXI8L2VtPjwvc3Bhbj4gIikiLiAgVGhlIGZpcnN0IHJlbGF0ZXMKPHNwYW4gY2xhc3M9ImVtcGhhc2lzIj48ZW0+cG9zaXRpb248L2VtPjwvc3Bhbj4gdG8gPHNwYW4gY2xhc3M9ImVtcGhhc2lzIj48ZW0+bnVtYmVyPC9lbT48L3NwYW4+IGluIHRoZQpjb250ZXh0IG9mIHRoZSBnaXZlbiBmb3JtYXQgc3BlY2lmaWNhdGlvbiBmcm9tIHRoaXMgbGluZSB0byB0aGUgZW5kIG9mCnRoZSBmaWxlOyBpdCBtYWtlcyB0aGUgKDxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPm51bWJlcjwvZW0+PC9zcGFuPikgYW4gYWxpYXMgZm9yCjxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPnBvc2l0aW9uPC9lbT48L3NwYW4+LiAgQ29tcHJlc3NlZCBmb3JtYXQgaXMgYWx3YXlzCm9wdGlvbmFsLjwvcD4KPHA+UG9zaXRpb24gc3BlY2lmaWNhdGlvbnMgYWxsb3dlZDo8L3A+CjxkaXYgY2xhc3M9Iml0ZW1pemVkbGlzdCI+PHVsIGNsYXNzPSJpdGVtaXplZGxpc3QiIHN0eWxlPSJsaXN0LXN0eWxlLXR5cGU6IGRpc2M7ICI+CjxsaSBjbGFzcz0ibGlzdGl0ZW0iPgo8cD48Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPm9iPTwvY29kZT4gW0NhbGxncmluZF08L3A+CjxwPlRoZSBFTEYgb2JqZWN0IHdoZXJlIHRoZSBjb3N0IG9mIG5leHQgY29zdCBsaW5lcyBoYXBwZW5zLjwvcD4KPC9saT4KPGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+PGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5mbD08L2NvZGU+IFtDYWNoZWdyaW5kXTwvcD48L2xpPgo8bGkgY2xhc3M9Imxpc3RpdGVtIj48cD48Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmZpPTwvY29kZT4gW0NhY2hlZ3JpbmRdPC9wPjwvbGk+CjxsaSBjbGFzcz0ibGlzdGl0ZW0iPgo8cD48Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmZlPTwvY29kZT4gW0NhY2hlZ3JpbmRdPC9wPgo8cD5UaGUgc291cmNlIGZpbGUgaW5jbHVkaW5nIHRoZSBjb2RlIHdoaWNoIGlzIHJlc3BvbnNpYmxlIGZvcgogICAgdGhlIGNvc3Qgb2YgbmV4dCBjb3N0IGxpbmVzLiAiZmk9Ii8iZmU9IiBpcyB1c2VkIHdoZW4gdGhlIHNvdXJjZQogICAgZmlsZSBjaGFuZ2VzIGluc2lkZSBvZiBhIGZ1bmN0aW9uLCBpLmUuIGZvciBpbmxpbmVkIGNvZGUuPC9wPgo8L2xpPgo8bGkgY2xhc3M9Imxpc3RpdGVtIj4KPHA+PGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5mbj08L2NvZGU+IFtDYWNoZWdyaW5kXTwvcD4KPHA+VGhlIG5hbWUgb2YgdGhlIGZ1bmN0aW9uIHdoZXJlIHRoZSBjb3N0IG9mIG5leHQgY29zdCBsaW5lcyAKICAgIGhhcHBlbnMuPC9wPgo8L2xpPgo8bGkgY2xhc3M9Imxpc3RpdGVtIj4KPHA+PGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5jb2I9PC9jb2RlPiBbQ2FsbGdyaW5kXTwvcD4KPHA+VGhlIEVMRiBvYmplY3Qgb2YgdGhlIHRhcmdldCBvZiB0aGUgbmV4dCBjYWxsIGNvc3QgbGluZXMuPC9wPgo8L2xpPgo8bGkgY2xhc3M9Imxpc3RpdGVtIj4KPHA+PGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5jZmk9PC9jb2RlPiBbQ2FsbGdyaW5kXTwvcD4KPHA+VGhlIHNvdXJjZSBmaWxlIGluY2x1ZGluZyB0aGUgY29kZSBvZiB0aGUgdGFyZ2V0IG9mIHRoZQogICAgbmV4dCBjYWxsIGNvc3QgbGluZXMuPC9wPgo8L2xpPgo8bGkgY2xhc3M9Imxpc3RpdGVtIj4KPHA+PGNvZGUgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5jZmw9PC9jb2RlPiBbQ2FsbGdyaW5kXTwvcD4KPHA+QWx0ZXJuYXRpdmUgc3BlbGxpbmcgZm9yIDxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+Y2ZpPTwvY29kZT4KICAgIHNwZWNpZmljYXRpb24gKGJlY2F1c2Ugb2YgaGlzdG9yaWNhbCByZWFzb25zKS48L3A+CjwvbGk+CjxsaSBjbGFzcz0ibGlzdGl0ZW0iPgo8cD48Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmNmbj08L2NvZGU+IFtDYWxsZ3JpbmRdPC9wPgo8cD5UaGUgbmFtZSBvZiB0aGUgdGFyZ2V0IGZ1bmN0aW9uIG9mIHRoZSBuZXh0IGNhbGwgY29zdCAKICAgIGxpbmVzLjwvcD4KPC9saT4KPC91bD48L2Rpdj4KPHA+VGhlIGxhc3QgdHlwZSBvZiBib2R5IGxpbmUgcHJvdmlkZXMgc3BlY2lmaWMgY29zdHMgbm90IGp1c3QKcmVsYXRlZCB0byBvbmUgcG9zaXRpb24gYXMgcmVndWxhciBjb3N0IGxpbmVzLiBJdCBzdGFydHMgd2l0aCBzcGVjaWZpYwpzdHJpbmdzIHNpbWlsYXIgdG8gcG9zaXRpb24gbmFtZSBzcGVjaWZpY2F0aW9ucy48L3A+CjxkaXYgY2xhc3M9Iml0ZW1pemVkbGlzdCI+PHVsIGNsYXNzPSJpdGVtaXplZGxpc3QiIHN0eWxlPSJsaXN0LXN0eWxlLXR5cGU6IGRpc2M7ICI+CjxsaSBjbGFzcz0ibGlzdGl0ZW0iPgo8cD48Y29kZSBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPmNhbGxzPWNvdW50IHRhcmdldC1wb3NpdGlvbjwvY29kZT4gW0NhbGxncmluZF08L3A+CjxwPkNhbGwgZXhlY3V0ZWQgImNvdW50IiB0aW1lcyB0byAidGFyZ2V0LXBvc2l0aW9uIi4KICAgIEFmdGVyIGEgImNhbGxzPSIgbGluZSB0aGVyZSBNVVNUIGJlIGEgY29zdCBsaW5lLiBUaGlzIHByb3ZpZGVzIHRoZSBzb3VyY2UgcG9zaXRpb24KICAgIG9mIHRoZSBjYWxsIGFuZCB0aGUgY29zdCBzcGVudCBpbiB0aGUgY2FsbGVkIGZ1bmN0aW9uIGluIHRvdGFsLjwvcD4KPC9saT4KPGxpIGNsYXNzPSJsaXN0aXRlbSI+CjxwPjxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+anVtcD1jb3VudCB0YXJnZXQtcG9zaXRpb248L2NvZGU+IFtDYWxsZ3JpbmRdPC9wPgo8cD5VbmNvbmRpdGlvbmFsIGp1bXAsIGV4ZWN1dGVkICJjb3VudCIgdGltZXMsIHRvICJ0YXJnZXQtcG9zaXRpb24iLjwvcD4KPC9saT4KPGxpIGNsYXNzPSJsaXN0aXRlbSI+CjxwPjxjb2RlIGNsYXNzPSJjb21wdXRlcm91dHB1dCI+amNuZD1leGUtY291bnQganVtcC1jb3VudCB0YXJnZXQtcG9zaXRpb248L2NvZGU+IFtDYWxsZ3JpbmRdPC9wPgo8cD5Db25kaXRpb25hbCBqdW1wLCBleGVjdXRlZCAiZXhlLWNvdW50IiB0aW1lcyB3aXRoICJqdW1wLWNvdW50IiBqdW1wcwogICAgaGFwcGVuaW5nIChyZXN0IGlzIGZhbGwtdGhyb3VnaCkgdG8gInRhcmdldC1wb3NpdGlvbiIuPC9wPgo8L2xpPgo8L3VsPjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8ZGl2Pgo8YnI+PHRhYmxlIGNsYXNzPSJuYXYiIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0iMyIgY2VsbHBhZGRpbmc9IjIiIGJvcmRlcj0iMCIgc3VtbWFyeT0iTmF2aWdhdGlvbiBmb290ZXIiPgo8dHI+Cjx0ZCByb3dzcGFuPSIyIiB3aWR0aD0iNDAlIiBhbGlnbj0ibGVmdCI+CjxhIGFjY2Vzc2tleT0icCIgaHJlZj0ibWFudWFsLXdyaXRpbmctdG9vbHMuaHRtbCI+Jmx0OyZsdDugMi6gV3JpdGluZyBhIE5ldyBWYWxncmluZCBUb29sPC9hPqA8L3RkPgo8dGQgd2lkdGg9IjIwJSIgYWxpZ249ImNlbnRlciI+PGEgYWNjZXNza2V5PSJ1IiBocmVmPSJ0ZWNoLWRvY3MuaHRtbCI+VXA8L2E+PC90ZD4KPHRkIHJvd3NwYW49IjIiIHdpZHRoPSI0MCUiIGFsaWduPSJyaWdodCI+oDxhIGFjY2Vzc2tleT0ibiIgaHJlZj0iZGlzdC5odG1sIj5WYWxncmluZCBEaXN0cmlidXRpb24gRG9jdW1lbnRzoCZndDsmZ3Q7PC9hPgo8L3RkPgo8L3RyPgo8dHI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJjZW50ZXIiPjxhIGFjY2Vzc2tleT0iaCIgaHJlZj0iaW5kZXguaHRtbCI+SG9tZTwvYT48L3RkPjwvdHI+CjwvdGFibGU+CjwvZGl2Pgo8L2JvZHk+CjwvaHRtbD4K