PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+CjxodG1sPgoJPGhlYWQ+CiAgICAJPHRpdGxlPkNvbmZpZ3VyZSB0aGUgZ2VuZXJhdGlvbjogJmx0O2NvbmZpZyZndDsgdGFnPC90aXRsZT4KICAgIAk8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJ1c2VyZ3VpZGUuY3NzIj4KICAgCTwvaGVhZD4KCiAgIAk8Ym9keT4KICAgICAgCTxoMj5Db25maWd1cmUgdGhlIGdlbmVyYXRpb246ICZsdDtjb25maWcmZ3Q7IHRhZzwvaDI+CgoJICAJPHA+VGhlIHRhZyA8Yj48c3BhbiBjbGFzcz0iY29kZSI+Jmx0O2NvbmZpZyZndDs8L3NwYW4+PC9iPiBtdXN0IGJlIGRlZmluZWQgCgkgIAk8Yj48dT5vbmx5IG9uY2U8L3U+PC9iPiwgb24gdG9wIG9mIHRoZSB0ZW1wbGF0ZSBkb2N1bWVudCwgaW4gYSBjZWxsIGluIAoJICAJdGhlIGZpcnN0IHJvd3MsIGluIHRoZSBmaXJzdCB3b3Jrc2hlZXQsIGJlZm9yZSBhbnkgb3RoZXIgR2VuZG9jIHRhZy48L3A+CgkgIAk8cD5UaGlzIHRhZyBkZWZpbmVzIHRoZSBwYXRoIG9mIHRoZSBvdXRwdXQgZG9jdW1lbnQsIGFuZCBhIGxpc3Qgb2YgZ2xvYmFsIAoJICAJcGFyYW1ldGVycyBmb3IgdGhlIHRlbXBsYXRlLjwvcD4KICAgICAgCiAgICAgIAk8aDI+RGVmaW5lIGdlbmVyYXRpb24gb3V0cHV0PC9oMj4KCQkKCQk8cD48Yj48c3BhbiBjbGFzcz0iY29kZSI+Jmx0O291dHB1dCZndDs8L3NwYW4+PC9iPiB0YWcgaXMgb3B0aW9uYWwuIElmIG5vdCAKCQlwcmVzZW50LCB0aGUgZG9jdW1lbnQgaXMgZ2VuZXJhdGVkIGF0IHRlbXBsYXRlIGxvY2F0aW9uLCB3aXRoIHN1ZmZpeCAnX2dlbmVyYXRlZCc8L3A+CQkKCQkKCQk8cD5JZiBkZWZpbmVkLCB0aGUgc3ludGF4IGlzIHRoZSBmb2xsb3dpbmc6PC9wPgoJCQoJCTxkaXYgY2xhc3M9ImNvZGVCb3ggY2JCZyI+CQkKCQkJPHAgY2xhc3M9ImNvZGUiPgoJCQkJJmx0O2NvbmZpZyZndDs8YnIvPgkJCQoJCQkJJmVtc3A7JmVtc3A7Jmx0O291dHB1dCBwYXRoPSZsdDsmbHQ7QWJzb2x1dGUgcGF0aCBvZiB0aGUgZG9jdW1lbnQgdG8gYmUgZ2VuZXJhdGVkJmd0OyZndDsgLyZndDsJCQkKCQkJCSZlbXNwOyZlbXNwOy4uLjxici8+CQkJCgkJCQkmbHQ7L2NvbmZpZyZndDsKCQkJPC9wPgkJCgkJPC9kaXY+CgkJCgkJPHAgY2xhc3M9TXNvTm9ybWFsPjxzcGFuIGxhbmc9RU4tVVM+R2xvYmFsIHBhcmFtZXRlcnMgY2FuIGJlIHVzZWQgdG8gZGVmaW5lIGEKCQlyZWxhdGl2ZSBwYXRoLjwvc3Bhbj48L3A+CgkJCgkJPGRpdiBjbGFzcz0iY29kZUJveCBjYkJnIj4KCQkJPHA+PHU+RXhhbXBsZTwvdT46IFRoZSBnZW5lcmF0ZWQgZG9jdW1lbnQgd2lsbCBiZWxvY2F0ZWQgaW4gRDovZ2VuZXJhdGVkRmlsZS54bHN4PC9wPgkJCQoJCQk8cCBjbGFzcz0iY29kZSI+CgkJCQkmbHQ7Y29uZmlnJmd0Ozxici8+CQkJCgkJCQkmZW1zcDsmZW1zcDsmbHQ7b3V0cHV0IHBhdGg9J0Q6L2dlbmVyYXRlZEZpbGUueGxzeCcgLyZndDs8YnIvPgoJCQkJJmVtc3A7JmVtc3A7Li4uPGJyLz4JCQkKCQkJCSZsdDsvY29uZmlnJmd0OwoJCQk8L3A+CQkKCQk8L2Rpdj4KCgkJPGEgbmFtZT0iX0RlZmluZV9nbG9iYWxfcGFyYW1ldGVycyIvPjxoMj5EZWZpbmUgZ2xvYmFsIHBhcmFtZXRlcnMgZm9yIHRoZSB0ZW1wbGF0ZTwvaDI+CgkJCgkJPHAgPkdsb2JhbCBwYXJhbWV0ZXJzIGZvciB0aGUgdGVtcGxhdGUgY2FuIGJlIGRlZmluZWQsIGZvciBleGFtcGxlIHRvIGRlZmluZSBtb2RlbCBwYXRoLAoJCWZvbGRlcnMgdG8gdXNlIG9yIGFueSBvdGhlciBzdGF0aWMgdmFsdWUgdG8gYmUgdXNlZCBpbiB0ZW1wbGF0ZS48L3A+CgkJCgkJPHA+UGFyYW1ldGVycyBhcmUgZGVmaW5lZCBpbiA8Yj4mbHQ7Y29uZmlnJmd0OzwvYj4gdGFnIHdpdGggdGhlIGZvbGxvd2luZyBzeW50YXg6PC9wPgoJCQoJCTxkaXYgY2xhc3M9ImNvZGVCb3giPgkJCgkJCTxwIGNsYXNzPSJjb2RlIj4mbHQ7Y29uZmlnJmd0OyA8YnIvPgoJCQkJJmVtc3A7JmVtc3A7Li4uPGJyLz4KCQkJCSZlbXNwOyZlbXNwOyZsdDtwYXJhbSBrZXk9Jmx0OyZsdDtQYXJhbWV0ZXIxX2tleSZndDsmZ3Q7IHZhbHVlPSZsdDsmbHQ7UGFyYW1ldGVyMV92YWx1ZSZndDsmZ3Q7IC8mZ3Q7PGJyLz4KCQkJCSZlbXNwOyZlbXNwOyZsdDtwYXJhbSBrZXk9Jmx0OyZsdDtQYXJhbWV0ZXIyX2tleSZndDsmZ3Q7IHZhbHVlPSZsdDsmbHQ7UGFyYW1ldGVyMl92YWx1ZSZndDsmZ3Q7IC8mZ3Q7PGJyLz4KCQkJCSZlbXNwOyZlbXNwOyZsdDtwYXJhbSAuLi4vJmd0Ozxici8+CQkKCQkJCSZsdDsvY29uZmlnJmd0OwoJCQk8L3A+CQkKCQk8L2Rpdj4KCgkJPHA+SG93IHRvIGFjY2VzcyBwYXJhbWV0ZXJzPzwvcD4KCQk8dWw+CgkJCTxsaT48Yj4kezwvYj48aT5wYXJhbUtleTwvaT48Yj59PC9iPiBpbnNpZGUgPHNwYW4gY2xhc3M9ImNvZGUiPiZsdDtjb250ZXh0Jmd0Ozwvc3Bhbj4gCgkJCW9yIG90aGVyIDxzcGFuIGNsYXNzPSJjb2RlIj4mbHQ7cGFyYW0mZ3Q7PC9zcGFuPiAsIDwvbGk+CgkJCTxsaT4gPGI+Z0dldCg8L2I+PGk+cGFyYW1LZXk8L2k+PGI+KTwvYj4gaW5zaWRlIGEgPHNwYW4gY2xhc3M9ImNvZGUiPiZsdDtnZW5kb2MmZ3Q7PC9zcGFuPiB0YWc8L2xpPgoJCTwvdWw+CgoJCTxkaXYgY2xhc3M9ImNvZGVCb3ggY2JCZyI+CgkJCTxwPjx1PkV4YW1wbGU8L3U+OqAgY3JlYXRpb24gb2YgZ2xvYmFsIHBhcmFtZXRlcnMKCQkJZm9yIG1vZGVsIGZvbGRlciwgbW9kZWwgcGF0aCwgYW5kIHBhdGggb2YgYSBzcGVjaWZpYyBwYWNrYWdlIGluc2lkZSBtb2RlbCBhbmQKCQkJZXhhbXBsZSBvZiB1c2FnZSBpbiAmbHQ7Y29udGV4dCZndDsgdGFnLjwvcD4KCgkJCTxwIGNsYXNzPSJjb2RlIj4KCQkJCSZsdDtjb25maWcmZ3Q7PGJyLz4KCQkJCSZlbXNwOyZlbXNwOyZsdDtwYXJhbSBrZXk9JzxzcGFuIGNsYXNzPSJibHVlIj5tb2RlbF9wYXRoPC9zcGFuPicgdmFsdWU9J0Q6L01vZGVscy9Nb2RlbF92MS9NeV9tb2RlbC51bWwnLyZndDs8YnIvPgoJCQkJJmVtc3A7JmVtc3A7Jmx0O3BhcmFtIGtleT0nPHNwYW4gY2xhc3M9ImJsdWUiPlVDX3BhY2thZ2VfcGF0aDwvc3Bhbj4nIHZhbHVlPScvTXlVTUxNb2RlbC9Vc2VDYXNlcycvJmd0Ozxici8+CgkJCQkmbHQ7L2NvbmZpZyZndDs8YnIvPgoJCQkJJmx0O2NvbnRleHQgbW9kZWw9JzxzcGFuIGNsYXNzPSJibHVlIj4ke21vZGVsX3BhdGh9PC9zcGFuPicgZWxlbWVudD0nPHNwYW4gY2xhc3M9ImJsdWUiPiR7VUNfcGFja2FnZV9wYXRofTwvc3Bhbj4nLyZndDsKCQkJPC9wPgoJCTwvZGl2PgoKCQk8aDI+UHJlLWRlZmluZWQgcGFyYW1ldGVyczwvaDI+CgoJCTxwPlNvbWUgPGI+PHNwYW4gY2xhc3M9ImNvZGUiPiZsdDtwYXJhbSZndDs8L3NwYW4+PC9iPiBhcmUgcHJlLWRlZmluZWQgaW4gR2VuZG9jIGFuZCBjYW4gYmUgdXNlZCBkaXJlY3RseSBpbiB0aGUgdGVtcGxhdGUuPC9wPgoJCTx1bD4KCQkJPGxpPjxwPjxiPiR7aW5wdXR9PC9iPiBpcyB0aGUgbmFtZSBvZiB0aGUgaW5wdXQgdGVtcGxhdGUgZG9jdW1lbnQ8L3A+PC9saT4KCQk8L3VsPgoKCQk8ZGl2IGNsYXNzPSJjb2RlQm94IGNiQmciPgoJCQk8cD5FeGFtcGxlOjwvcD4JCQoJCQk8cCBjbGFzcz0iY29kZSI+CgkJCQkmbHQ7cGFyYW0ga2V5PSc8c3BhbiBjbGFzcz0iYmx1ZSI+Z2VuZXJhdGlvbl9mb2xkZXI8L3NwYW4+JyB2YWx1ZT0nRDovR2VuZXJhdGVkJy8mZ3Q7PGJyLz4KCQkJCSZsdDtvdXRwdXQgcGF0aD0nPHNwYW4gY2xhc3M9ImJsdWUiPiR7Z2VuZXJhdGlvbl9mb2xkZXJ9PC9zcGFuPi88c3BhbiBjbGFzcz0iYmx1ZSI+JHtpbnB1dH08L3NwYW4+LWdlbmVyYXRlZC5kb2N4JyAvJmd0OwoJCQk8L3A+CQkKCQk8L2Rpdj4KCgkJPHAgPklmIHRoZSBpbnB1dCBkb2N1bWVudCBpcyBuYW1lZCB0ZW1wbGF0ZTEuZG9jeCwgdGhlIHJlc3VsdCBmaWxlIGlzIG5hbWVkCgkJdGVtcGxhdGUxLWdlbmVyYXRlZC5kb2N4LiA8L3A+CgkJCgkJPHA+VGhlIGZvbGxvd2luZyB2YXJpYWJsZXMgYXJlIGFsc28gcmVhZHkgdG8gYmUgdXNlZCBieSBkZWZhdWx0OjwvcD4KCQkKCQk8dWw+CgkJCTxsaT48Yj4ke2RhdGV9PC9iPiBpcyB0aGUgZGF0ZSBvZiB0aGUgZ2VuZXJhdGlvbi4gVGhlIGZvcm1hdCBvZiB0aGUgZGF0ZSBpcyAneXl5eS1NTS1kZC1ISG1tc3MnLjwvbGk+CgkJCTxsaT48Yj4ke2lucHV0X2RpcmVjdG9yeX08L2I+IGxvY2F0aW9uIGRpcmVjdG9yeSBvZiB0aGUgdGVtcGxhdGUuPC9saT4KCQk8L3VsPgoJCTxkaXYgY2xhc3M9ImNvZGVCb3ggY2JCZyI+CgkJCTxwPkV4YW1wbGU6PC9wPgkJCgkJCTxwPjxiPjxzcGFuIGNsYXNzPSJjb2RlIj4mbHQ7b3V0cHV0CXBhdGg9JzxzcGFuIGNsYXNzPSJibHVlIj4ke2lucHV0X2RpcmVjdG9yeX0KCQkJPC9zcGFuPi88c3BhbiBjbGFzcz0iYmx1ZSI+JHtpbnB1dH08L3NwYW4+LWdlbmVyYXRlZC08c3BhbiBjbGFzcz0iYmx1ZSI+JHtkYXRlfQoJCQk8L3NwYW4+LmRvY3gnIC8mZ3Q7PC9zcGFuPjwvYj48L3A+CQkKCQkJPHA+UmVzdWx0IGZpbGUgZXhhbXBsZTogdGVtcGxhdGUtZ2VuZXJhdGVkLTIwMTQtMDgtMDItMDkzNzA3LmRvY3g8L3A+CgkJPC9kaXY+CgkJCgkJPGgyPlVzZSBvZiB2YXJpYWJsZXMgaW5zaWRlIHBhcmFtZXRlcnM8L2gyPgoJCQoJCTxwPkl0IGlzIGFsc28gcG9zc2libGUgdG8gdXNlIHZhcmlhYmxlcyBkZWZpbmVkIGluIHByb2plY3Qgb2YgdGhlIGRvY3VtZW50LjwvcD4KCQk8cD5Gcm9tIHRoZSBwcm9qZWN0IG9uIFByb2plY3QgRXhwbG9yZXIgdmlldywgcmlnaHQgY2xpY2sgCgkJJmd0OyBQcm9wZXJ0aWVzICZndDsgUmVzb3VyY2UgJmd0OyBMaW5rZWQgUmVzb3VyY2VzICZndDsgUGF0aCBWYXJpYWJsZXM8L3A+CgkJPGltZyBzcmM9ImltZy9jb25maWd1cmVfc2V0X3ZhcmlhYmxlc19kaWFsb2cucG5nIi8+CgkJPHA+UHJlZGVmaW5lZCB2YXJpYWJsZXMgb3IgdXNlciB2YXJpYWJsZXMgY2FuIGJlIHVzZWQgaW4gdGhlIHRlbXBsYXRlLiBUaGV5IGFyZSBOT1QgY2FzZS1zZW5zaXRpdmUuPC9wPgoJCTxkaXYgY2xhc3M9ImNvZGVCb3ggY2JCZyI+CgkJCTxwPjx1PkV4YW1wbGU8L3U+IDo8L3A+CgkJCTxwPjxzcGFuIGNsYXNzPSJjb2RlIj48Yj4mbHQ7b3V0cHV0IHBhdGg9JyR7cHJvamVjdF9sb2N9LyR7aW5wdXR9LWdlbmVyYXRlZC5kb2N4JyAvJmd0OzwvYj48L3NwYW4+PC9wPgkJCgkJPC9kaXY+CgoJPGgyPjQuNSBWYXJpYWJsZXMgc3RvcmVkIGluIGFub3RoZXIgZmlsZTwvaDI+CgoJPHA+QXMgeW91IG1heSBuZWVkIHRvIHB1dCBtYW55IGFkZGl0aW9uYWwgdmFyaWFibGVzIGluc2lkZSB5b3VyIHByb2plY3QsIGluIG9yZGVyIHRvIG1ha2UgdGhlIGNvbmZpZyB0YWcgCgkgICBtb3JlIHJlYWRhYmxlIGFuZCBtb3JlIHJldXNhYmxlLCB5b3UgY2FuIHB1dCB0aGUgdmFyaWFibGVzIGluIGEgZmlsZSB3aXRoIC5wcm9wZXJ0aWVzIGV4dGVuc2lvbi4gCgkgICBUbyBhY2Nlc3MgdGhlIGNvbnRlbnQgb2YgdGhpcyBmaWxlIHlvdSBzaG91bGQgYWRkIHRoZSA8c3BhbiBjbGFzcz0iY29kZSI+Jmx0O3Byb3BlcnRpZXMmZ3Q7PC9zcGFuPiAKCSAgIHRhZyBpbiB0aGUgZm9sbG93aW5nIG1hbm5lcjo8L3A+Cgk8ZGl2IGNsYXNzPSJjb2RlQm94IGNiQmciPgoJCTxwPjx1PkV4YW1wbGU8L3U+IDo8L3A+CgkJPHAgY2xhc3M9ImNvZGUiPiZsdDtwcm9wZXJ0aWVzIHBhdGg9JzxzcGFuIGNsYXNzPSJibHVlIj4ke2lucHV0X2RpcmVjdG9yeX08L3NwYW4+L3ZhcnMucHJvcGVydGllcycgLyZndDs8L3A+Cgk8L2Rpdj4KCQoJPHA+V2hlcmUgdGhlIHZhcnMucHJvcGVydGllcyBtYXkgaGF2ZSB0aGUgY29udGVudCBsaWtlIHRoaXM6PC9wPgoJPGRpdiBjbGFzcz0iY29kZUJveCBjYkJnIj4KCQk8cD48dT5FeGFtcGxlPC91PiA6PC9wPgoJCTxwIGNsYXNzPSJjb2RlIj4KCQkJb3V0cHV0X2dlbmVyYXRpb249JHt3b3Jrc3BhY2VfbG9jfS9nZW5lcmF0ZWQtJHtkYXRlfS5kb2N4PGJyLz4KCQkJaW5wdXRfbW9kZWxfcHJvcD0ke2lucHV0fS9tb2RlbC51bWw8YnIvPgoJCQlpbWFnZV90ZXN0PSR7cHJvamVjdF9sb2N9L2NvbXBhbnlfbG9nby5qcGcKCQk8cC8+Cgk8L2Rpdj4KCQoJPHA+VGhlc2UgdmFyaWFibGVzIGNhbiBiZSB1c2VkIGluIEdlbmRvYyB0YWdzIDo8L3A+Cgk8ZGl2IGNsYXNzPSJjb2RlQm94IGNiQmciPgkKCQk8cD48dT5FeGFtcGxlPC91PiA6PC9wPgoJCTxwIGNsYXNzPSJjb2RlIj4mbHQ7b3V0cHV0IHBhdGg9JzxzcGFuIGNsYXNzPSJibHVlIj4ke291dHB1dF9nZW5lcmF0aW9ufTwvc3Bhbj4nIC8mZ3Q7PC9wPgoJPC9kaXY+CgkKCTxoMj40LjYgQ29udGV4dCB3aXRoIENETyBtb2RlbHM8L2gyPgoKCTxwPllvdSBjYW4gdXNlIENETyBVUklzIGluIGNvbnRleHQgdGFnczwvcD4KCTxkaXYgY2xhc3M9ImNvZGVCb3ggY2JCZyI+CQoJCTxwPjx1PkV4YW1wbGU8L3U+IDo8L3A+CgkJPHAgY2xhc3M9ImNvZGUiPiZsdDtjb250ZXh0IG1vZGVsPSZyc3F1bztjZG8ubmV0NGoudGNwOi8vbG9jYWxob3N0OjIwMzYvcmVwb3NpdG9yeS9yZXNvdXJjZT90cmFuc2FjdGlvbmFsPXRydWUmcnNxdW87IGVsZW1lbnQ9JnJzcXVvO3swfSZyc3F1bzsvJmd0OzwvcD4KCTwvZGl2PgogICA8L2JvZHk+CjwvaHRtbD4K