PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIKImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+CjwhLS0gCiAgICBDb3B5cmlnaHQgKGMpIDIwMDUsIDIwMDYgSUJNIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuCiAgICBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCiAgICBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKICAgIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0CiAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAogICAgQ29udHJpYnV0b3JzOgogICAgSUJNIENvcnBvcmF0aW9uIC0gaW5pdGlhbCBpbXBsZW1lbnRhdGlvbgotLT4KCjxodG1sPgo8aGVhZD4KPHRpdGxlPlVudGl0bGVkIERvY3VtZW50PC90aXRsZT4KPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9aXNvLTg4NTktMSI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CjwhLS0KLnN0eWxlMSB7Zm9udC1mYW1pbHk6ICJDb3VyaWVyIE5ldyIsIENvdXJpZXIsIG1vbm99Ci0tPgo8L3N0eWxlPgo8L2hlYWQ+Cgo8Ym9keT4KPGgyPjxhPjwvYT48YT5FeGVyY2lzZSAyOiBDcmVhdGUgV29yayBQcm9kdWN0PC9hPnMgPC9oMj4KPHA+VGhlIHB1cnBvc2Ugb2YgdGhpcyBleGVyY2lzZSBpcyB0byBjcmVhdGUgbmV3IG1ldGhvZCBjb250ZW50LiBTcGVjaWZpY2FsbHksIDxzdHJvbmc+V29yayBQcm9kdWN0cyA8L3N0cm9uZz5vZiB0eXBlIDxzdHJvbmc+IEFydGlmYWN0IDwvc3Ryb25nPi4gWW91IGNhbiBjcmVhdGUgYW55IGNvbnRlbnQgYnV0IHNvbWUgZXhhbXBsZXMgYXJlIHByb3ZpZGVkIGlmIHlvdSB3YW50IHRvIHVzZSB0aGVtLiBUaGVzZSBleGFtcGxlcyBhcmUgcmVmZXJyZWQgdG8gaW4gb3RoZXIgdHV0b3JpYWxzLiA8L3A+CjxwPk1ldGhvZCBhbmQgUHJvY2VzcyBlbGVtZW50cyBoYXZlIHR3byBuYW1lcyBpbiBFUEYgQ29tcG9zZXI6IE5hbWUgYW5kIFByZXNlbnRhdGlvbiBOYW1lLiA8L3A+CjxwPlRoZSBOYW1lIGZpZWxkIGlzIHVzZWQgYXMgdGhlIGZpbGUgbmFtZSBmb3IgdGhlIGl0ZW0uIEluIFJVUCwgd2UgYXJlIGNhcmVmdWwgaG93IHdlIG5hbWUgdGhlIGZpbGVzIGFuZCB1c2UgY29udmVudGlvbnMgc3VjaCBhcyBsb3dlciBjYXNlLCBubyBzcGFjZXMsIGFuZCBubyBzcGVjaWFsIGNoYXJhY3RlcnMuIFdlIGRvIHRoaXMgc28gdGhhdCB0aGUgbmFtZSBpcyBhIHZhbGlkIGZpbGUgbmFtZSBvbiBhbGwgb3BlcmF0aW5nIHN5c3RlbXMgYW5kIGZvciBpbnRlZ3JhdGlvbiB3aXRoIHNvdXJjZSBjb250cm9sIHNvZnR3YXJlIGluIHRoZSBmdXR1cmUuIFRoZSBOYW1lIGlzIHNob3duIGluIHRoZSBMaWJyYXJ5IFZpZXcuIDwvcD4KPHA+VGhlIFByZXNlbnRhdGlvbiBOYW1lIGlzIHRoZSBuYW1lIHRoYXQgaXMgc2hvd24gb24gcHVibGlzaGVkIHBhZ2VzIGFuZCBpdCBpcyBhbHNvIHNob3duIGluIHRoZSBDb25maWd1cmF0aW9uIFZpZXcuIFRoaXMgbmFtZSBjYW4gY29udGFpbiBhbnkgY2hhcmFjdGVycywgYnV0IGJ5IGNvbnZlbnRpb24gaW4gUlVQLCB3ZSB1c2UgdGhlIHNhbWUgdGV4dCBhcyB0aGUgTmFtZSwganVzdCBwcmV0dGllci4gPC9wPgo8cD5JbiB0aGUgTGlicmFyeSB2aWV3IHlvdSBjYW4gY2hvb3NlIHRvIGRpc3BsYXkgTmFtZXMgb3IgUHJlc2VudGF0aW9uIE5hbWVzLiBZb3UgY2FuIHN3aXRjaCB0aGUgbmFtZSBkaXNwbGF5IHVzaW5nIHRoZSCRU2hvdyBQcmVzZW50YXRpb24gTmFtZXMnIGJ1dHRvbiBpbiB0aGUgTGlicmFyeSB2aWV3IHRvb2xiYXIuIDwvcD4KPHA+SW4gZ2VuZXJhbCwgeW91IGNyZWF0ZSBuZXcgZWxlbWVudHMgYnkgcmlnaHQtY2xpY2tpbmcgdGhlIGZvbGRlciB0aGF0IHdpbGwgY29udGFpbiB0aGUgbmV3IGVsZW1lbnQuIEZvciBleGFtcGxlLCB0byBjcmVhdGUgYSBuZXcgcm9sZSBpbiBhIGNvbnRlbnQgcGFja2FnZSwgcmlnaHQtY2xpY2sgdGhlIDxzdHJvbmc+Um9sZXMgPC9zdHJvbmc+IGZvbGRlciwgaGlnaGxpZ2h0IDxzdHJvbmc+TmV3IDwvc3Ryb25nPiBhbmQgdGhlbiBjbGljayA8c3Ryb25nPlJvbGU8L3N0cm9uZz4uIDwvcD4KPG9sPgogIDxsaT4KICAgIDxwPk1ha2Ugc3VyZSB5b3UgYXJlIGluIHRoZSA8c3Ryb25nPkF1dGhvcmluZyA8L3N0cm9uZz4gcGVyc3BlY3RpdmUuIDwvcD4KICA8L2xpPgogIDxsaT4KICAgIDxwPiBXaXRoaW4gPHNwYW4gY2xhc3M9InN0eWxlMSI+TXkgQ29udGVudCBQYWNrYWdlPC9zcGFuPiByaWdodC1jbGljayBvbiB0aGUgPHN0cm9uZz5Xb3JrIFByb2R1Y3RzPC9zdHJvbmc+IGZvbGRlci4gPC9wPgogIDwvbGk+CiAgPGxpPgogICAgPHA+IEhpZ2hsaWdodCA8c3Ryb25nPk5ldzwvc3Ryb25nPiBhbmQgdGhlbiBjbGljayA8c3Ryb25nPkFydGlmYWN0PC9zdHJvbmc+LiBUaGUgYXJ0aWZhY3QgZWRpdG9yIGlzIGRpc3BsYXllZC4gPC9wPgogIDwvbGk+CiAgPGxpPgogICAgPHA+IEluIHRoZSBOYW1lIGZpZWxkLCB0eXBlIHRoZSBuZXcgQXJ0aWZhY3QgbmFtZS4gSW4gdGhpcyBpbnN0YW5jZSwgd2UnbGwgY2FsbCBpdCA8c3Ryb25nPm15X3J1cF9uYXZtYXA8L3N0cm9uZz4uIDwvcD4KICA8L2xpPgogIDxsaT4gSW4gdGhlIDxzdHJvbmc+UHJlc2VudGF0aW9uIE5hbWU8L3N0cm9uZz4gZmllbGQsIHR5cGU6IDwvbGk+CiAgPGJsb2NrcXVvdGU+CiAgICA8cD5NeSBSVVAgTmF2aWdhdGlvbiBNYXA8L3A+CiAgPC9ibG9ja3F1b3RlPgogIDxsaT5JbiB0aGUgPHN0cm9uZz5CcmllZiBEZXNjcmlwdGlvbjwvc3Ryb25nPiBmaWVsZCwgdHlwZToKICAgIDxibG9ja3F1b3RlPgogICAgICA8cD5UaGUgTmF2aWdhdGlvbiBNYXAgZXhwcmVzc2VzIHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIHVzZXItaW50ZXJmYWNlIGVsZW1lbnRzIGluIHRoZSBzeXN0ZW0sIGFsb25nIHdpdGggdGhlaXIgcG90ZW50aWFsIG5hdmlnYXRpb24gcGF0aHdheXMuPC9wPgogICAgPC9ibG9ja3F1b3RlPgogIDwvbGk+CiAgPGxpPiBJbiB0aGUgPHN0cm9uZz5QdXJwb3NlPC9zdHJvbmc+IGZpZWxkIHR5cGU6IAogICAgPGJsb2NrcXVvdGU+CiAgICAgIDxwPlRoZXJlIGlzIG9uZSBOYXZpZ2F0aW9uIE1hcCBwZXIgc3lzdGVtLiBUaGUgcHVycG9zZSBvZiB0aGUgTmF2aWdhdGlvbiBNYXAgaXMgdG8gZXhwcmVzcyB0aGUgcHJpbmNpcGFsIHVzZXIgaW50ZXJmYWNlIHBhdGhzIHRocm91Z2ggdGhlIHN5c3RlbS4gVGhlc2UgYXJlIHRoZSBtYWluIHBhdGh3YXlzIHRocm91Z2ggdGhlIHNjcmVlbnMgb2YgdGhlIHN5c3RlbSBhbmQgbm90IG5lY2Vzc2FyaWx5IGFsbCBvZiB0aGUgcG9zc2libGUgcGF0aHMuIEl0IGNhbiBiZSB0aG91Z2h0IG9mIGFzIGEgcm9hZCBtYXAgb2YgdGhlIHN5c3RlbSdzIHVzZXIgaW50ZXJmYWNlLiBUaGUgTmF2aWdhdGlvbiBNYXAgbWFrZXMgaXQgZWFzeSB0byBzZWUgaG93IG1hbnkgJnF1b3Q7Y2xpY2tzJnF1b3Q7IGl0IHdpbGwgdGFrZSBhIHVzZXIgdG8gZ2V0IHRvIGEgc3BlY2lmaWMgc2NyZWVuLiA8L3A+CiAgICA8L2Jsb2NrcXVvdGU+CiAgPC9saT4KICA8bGk+CiAgICA8cD5DbGljayB0aGUgcHJldmlldyB0YWIgdG8gdmlldyB0aGUgbmV3IEFydGlmYWN0LiA8L3A+CiAgPC9saT4KICA8bGk+CiAgICA8cD4gU2F2ZSB0aGUgQXJ0aWZhY3QuIDwvcD4KICA8L2xpPgogIDxsaT4gUmVwZWF0IHN0ZXBzIDIgdGhyb3VnaCA5IHVzaW5nIHRoZSBmb2xsb3dpbmcgaW5mb3JtYXRpb246IAogICAgPGJsb2NrcXVvdGU+CiAgICAgIDxwPiYjMTQ5OyZuYnNwOyA8c3Ryb25nPkFydGlmYWN0IE5hbWU8L3N0cm9uZz46IG15X3J1cF91c2VyX2ludGVyZmFjZV9wcm90b3R5cGUgPC9wPgogICAgICA8cD4mIzE0OTsmbmJzcDsgPHN0cm9uZz5QcmVzZW50YXRpb24gTmFtZTwvc3Ryb25nPjogTXkgUlVQIFVJIFByb3RvdHlwZSA8L3A+CiAgICAgIDxwPiYjMTQ5OyZuYnNwOyA8c3Ryb25nPkJyaWVmIERlc2NyaXB0aW9uPC9zdHJvbmc+OiBBIHVzZXItaW50ZXJmYWNlIHByb3RvdHlwZSBpcyBhbiBleGFtcGxlIG9mIHRoZSB1c2VyIGludGVyZmFjZSB0aGF0IGlzIGJ1aWx0IGluIG9yZGVyIHRvIGV4cGxvcmUgYW5kL29yIHZhbGlkYXRlIHRoZSB1c2VyLWludGVyZmFjZSBkZXNpZ24uIDwvcD4KICAgICAgPHA+JiMxNDk7Jm5ic3A7IDxzdHJvbmc+UHVycG9zZTogPC9zdHJvbmc+IFRoZSBmb2xsb3dpbmcgcm9sZXMgdXNlIHRoZSB1c2VyLWludGVyZmFjZSBwcm90b3R5cGU6IDwvcD4KICAgICAgPGJsb2NrcXVvdGU+CiAgICAgICAgPHA+LSA8c3Ryb25nPnVzZXItaW50ZXJmYWNlIGRlc2lnbmVyczwvc3Ryb25nPiAsIHRvIGV4cGxvcmUgYW5kL29yIHZhbGlkYXRlIHRoZSB1c2VyLWludGVyZmFjZSBkZXNpZ24gYmVmb3JlIHRvbyBtdWNoIGlzIGludmVzdGVkIGluIGl0IDwvcD4KICAgICAgICA8cD4tIDxzdHJvbmc+cmVxdWlyZW1lbnRzIHNwZWNpZmllcnMgPC9zdHJvbmc+LCB0byB1bmRlcnN0YW5kIHRoZSB1c2VyIGludGVyZmFjZSBmb3IgYSBVc2UgQ2FzZSA8L3A+CiAgICAgICAgPHA+PHN0cm9uZz4tIHN5c3RlbSBhbmFseXN0cyA8L3N0cm9uZz4sIHRvIHVuZGVyc3RhbmQgaG93IHRoZSB1c2VyIGludGVyZmFjZSBpbXBhY3RzIHRoZSBhbmFseXNpcyBvZiB0aGUgc3lzdGVtIDwvcD4KICAgICAgICA8cD4tIDxzdHJvbmc+ZGVzaWduZXJzIDwvc3Ryb25nPiwgdG8gdW5kZXJzdGFuZCBob3cgdGhlIHVzZXIgaW50ZXJmYWNlIGltcGFjdHMgYW5kIHdoYXQgaXQgcmVxdWlyZXMgZnJvbSB0aGUgJnF1b3Q7aW5zaWRlJnF1b3Q7IG9mIHRoZSBzeXN0ZW0gPC9wPgogICAgICAgIDxwPiAtIDxzdHJvbmc+bWFuYWdlcnMgPC9zdHJvbmc+LCB0byBwbGFuIGRldmVsb3BtZW50IGFuZCB0ZXN0aW5nIGFjdGl2aXRpZXMgPC9wPgogICAgICA8L2Jsb2NrcXVvdGU+CiAgICA8L2Jsb2NrcXVvdGU+CiAgPC9saT4KPC9vbD4KPGgyPiZuYnNwOzwvaDI+CjxoMT4mbmJzcDs8L2gxPgo8L2JvZHk+CjwvaHRtbD4K