ZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9BbmRyb2lkLm1rIGIvY29tbW9uL20yL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmQ0NWQ4NwotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMTUgQEAKK0xPQ0FMX1BBVEg6PSAkKGNhbGwgbXktZGlyKQorCisjIHRyb3ZlIHByZWJ1aWx0LiBNb2R1bGUgc3RlbSBpcyBjaG9zZW4gc28gaXQgY2FuIGJlIHVzZWQgYXMgYSBzdGF0aWMgbGlicmFyeS4KKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCisKK0xPQ0FMX01PRFVMRSA6PSB0cm92ZS1wcmVidWlsdAorTE9DQUxfTU9EVUxFX1RBR1MgOj0gb3B0aW9uYWwKK0xPQ0FMX1NSQ19GSUxFUyA6PSByZXBvc2l0b3J5L25ldC9zZi90cm92ZTRqL3Ryb3ZlNGovMS4xL3Ryb3ZlNGotMS4xLmphcgorTE9DQUxfSVNfSE9TVF9NT0RVTEUgOj0gdHJ1ZQorTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCitMT0NBTF9CVUlMVF9NT0RVTEVfU1RFTSA6PSBqYXZhbGliLmphcgorTE9DQUxfTU9EVUxFX1NVRkZJWCA6PSAkKENPTU1PTl9KQVZBX1BBQ0tBR0VfU1VGRklYKQorCitpbmNsdWRlICQoQlVJTERfUFJFQlVJTFQpCmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9hbnRsci9hbnRsci8yLjcuNy9hbnRsci0yLjcuNy5qYXIgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9hbnRsci9hbnRsci8yLjcuNy9hbnRsci0yLjcuNy5qYXIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWU1ZjE0YgotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2FudGxyL2FudGxyLzIuNy43L2FudGxyLTIuNy43LmphcgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9hbnRsci9hbnRsci8yLjcuNy9hbnRsci0yLjcuNy5qYXIuc2hhMSBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2FudGxyL2FudGxyLzIuNy43L2FudGxyLTIuNy43Lmphci5zaGExCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkyNDk0NTkKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9hbnRsci9hbnRsci8yLjcuNy9hbnRsci0yLjcuNy5qYXIuc2hhMQpAQCAtMCwwICsxIEBACis4M2NkMmNkNjc0YTIxN2FkZTk1YTRiYjgzYThhMTRmMzUxZjQ4YmQwICAvaG9tZS9tYXZlbi9yZXBvc2l0b3J5LXN0YWdpbmcvdG8taWJpYmxpby9tYXZlbjIvYW50bHIvYW50bHIvMi43LjcvYW50bHItMi43LjcuamFyCmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9hbnRsci9hbnRsci8yLjcuNy9hbnRsci0yLjcuNy5wb20gYi9jb21tb24vbTIvcmVwb3NpdG9yeS9hbnRsci9hbnRsci8yLjcuNy9hbnRsci0yLjcuNy5wb20KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzU0ZTgyZAotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2FudGxyL2FudGxyLzIuNy43L2FudGxyLTIuNy43LnBvbQpAQCAtMCwwICsxLDIyIEBACis8cHJvamVjdD4KKyAgPG1vZGVsVmVyc2lvbj40LjAuMDwvbW9kZWxWZXJzaW9uPgorICA8Z3JvdXBJZD5hbnRscjwvZ3JvdXBJZD4KKyAgPGFydGlmYWN0SWQ+YW50bHI8L2FydGlmYWN0SWQ+CisgIDxwYWNrYWdpbmc+amFyPC9wYWNrYWdpbmc+CisgIDx2ZXJzaW9uPjIuNy43PC92ZXJzaW9uPgorICA8bmFtZT5BbnRMUiBQYXJzZXIgR2VuZXJhdG9yPC9uYW1lPgorICA8ZGVzY3JpcHRpb24+CisgICAgQSBmcmFtZXdvcmsgZm9yIGNvbnN0cnVjdGluZyByZWNvZ25pemVycywgY29tcGlsZXJzLAorICAgIGFuZCB0cmFuc2xhdG9ycyBmcm9tIGdyYW1tYXRpY2FsIGRlc2NyaXB0aW9ucyBjb250YWluaW5nCisgICAgSmF2YSwgQyMsIEMrKywgb3IgUHl0aG9uIGFjdGlvbnMuCisgIDwvZGVzY3JpcHRpb24+CisgIDx1cmw+aHR0cDovL3d3dy5hbnRsci5vcmcvPC91cmw+CisgIDxsaWNlbnNlcz4KKyAgICA8bGljZW5zZT4KKyAgICAgIDxuYW1lPkJTRCBMaWNlbnNlPC9uYW1lPgorICAgICAgPHVybD5odHRwOi8vd3d3LmFudGxyLm9yZy9saWNlbnNlLmh0bWw8L3VybD4KKyAgICAgIDxkaXN0cmlidXRpb24+cmVwbzwvZGlzdHJpYnV0aW9uPgorICAgIDwvbGljZW5zZT4KKyAgPC9saWNlbnNlcz4KKyAgPGRlcGVuZGVuY2llcy8+Cis8L3Byb2plY3Q+CmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9hbnRsci9hbnRsci8yLjcuNy9hbnRsci0yLjcuNy5wb20uc2hhMSBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2FudGxyL2FudGxyLzIuNy43L2FudGxyLTIuNy43LnBvbS5zaGExCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhhYTc2MDEKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9hbnRsci9hbnRsci8yLjcuNy9hbnRsci0yLjcuNy5wb20uc2hhMQpAQCAtMCwwICsxIEBACis1MmYxNWI5OTkxMWFiOGI4YmM4NzQ0Njc1ZjVjZjE5OTRhNjI2ZmI4ICAvaG9tZS9tYXZlbi9yZXBvc2l0b3J5LXN0YWdpbmcvdG8taWJpYmxpby9tYXZlbjIvYW50bHIvYW50bHIvMi43LjcvYW50bHItMi43LjcucG9tCmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9hZGFwdGVycy8xLjEtYWxwaGEwL2FkYXB0ZXJzLTEuMS1hbHBoYTAtamF2YWRvYy5qYXIgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9hZGFwdGVycy8xLjEtYWxwaGEwL2FkYXB0ZXJzLTEuMS1hbHBoYTAtamF2YWRvYy5qYXIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzE0MmQwNgotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2FkYXB0ZXJzLzEuMS1hbHBoYTAvYWRhcHRlcnMtMS4xLWFscGhhMC1qYXZhZG9jLmphcgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9hZGFwdGVycy8xLjEtYWxwaGEwL2FkYXB0ZXJzLTEuMS1hbHBoYTAtamF2YWRvYy5qYXIubWQ1IGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvYWRhcHRlcnMvMS4xLWFscGhhMC9hZGFwdGVycy0xLjEtYWxwaGEwLWphdmFkb2MuamFyLm1kNQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40OWUyNDFjCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvYWRhcHRlcnMvMS4xLWFscGhhMC9hZGFwdGVycy0xLjEtYWxwaGEwLWphdmFkb2MuamFyLm1kNQpAQCAtMCwwICsxIEBACitmYzAyN2NjM2NkNGY4ZjMwYzNjMzAzMDE5NWQ2Njg2MgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2FkYXB0ZXJzLzEuMS1hbHBoYTAvYWRhcHRlcnMtMS4xLWFscGhhMC1qYXZhZG9jLmphci5zaGExIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvYWRhcHRlcnMvMS4xLWFscGhhMC9hZGFwdGVycy0xLjEtYWxwaGEwLWphdmFkb2MuamFyLnNoYTEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTc5YzI5MQotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2FkYXB0ZXJzLzEuMS1hbHBoYTAvYWRhcHRlcnMtMS4xLWFscGhhMC1qYXZhZG9jLmphci5zaGExCkBAIC0wLDAgKzEgQEAKKzk5YjVmYjAyYjM2YjRiODk0OTAzOTM4NTQ5N2Q3OGY3ZmIyNmU3YzkKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9hZGFwdGVycy8xLjEtYWxwaGEwL2FkYXB0ZXJzLTEuMS1hbHBoYTAtc291cmNlcy5qYXIgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9hZGFwdGVycy8xLjEtYWxwaGEwL2FkYXB0ZXJzLTEuMS1hbHBoYTAtc291cmNlcy5qYXIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDhkMjQxOAotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2FkYXB0ZXJzLzEuMS1hbHBoYTAvYWRhcHRlcnMtMS4xLWFscGhhMC1zb3VyY2VzLmphcgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9hZGFwdGVycy8xLjEtYWxwaGEwL2FkYXB0ZXJzLTEuMS1hbHBoYTAtc291cmNlcy5qYXIubWQ1IGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvYWRhcHRlcnMvMS4xLWFscGhhMC9hZGFwdGVycy0xLjEtYWxwaGEwLXNvdXJjZXMuamFyLm1kNQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43OWVjNWQ2Ci0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvYWRhcHRlcnMvMS4xLWFscGhhMC9hZGFwdGVycy0xLjEtYWxwaGEwLXNvdXJjZXMuamFyLm1kNQpAQCAtMCwwICsxIEBACitiZWQ2MTc1MTA5NmRiMjM2YzIwZGFhNGUyZWYwOTIwNwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2FkYXB0ZXJzLzEuMS1hbHBoYTAvYWRhcHRlcnMtMS4xLWFscGhhMC1zb3VyY2VzLmphci5zaGExIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvYWRhcHRlcnMvMS4xLWFscGhhMC9hZGFwdGVycy0xLjEtYWxwaGEwLXNvdXJjZXMuamFyLnNoYTEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWQ1YjdkMAotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2FkYXB0ZXJzLzEuMS1hbHBoYTAvYWRhcHRlcnMtMS4xLWFscGhhMC1zb3VyY2VzLmphci5zaGExCkBAIC0wLDAgKzEgQEAKKzM0NmUwZjIwOTM1NGRiOGUzMDQyNTMyOWQ5MzI4NWJmNTNiMmE2OGUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9hZGFwdGVycy8xLjEtYWxwaGEwL2FkYXB0ZXJzLTEuMS1hbHBoYTAuYWFyIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvYWRhcHRlcnMvMS4xLWFscGhhMC9hZGFwdGVycy0xLjEtYWxwaGEwLmFhcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNzIyYzA0Ci0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvYWRhcHRlcnMvMS4xLWFscGhhMC9hZGFwdGVycy0xLjEtYWxwaGEwLmFhcgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9hZGFwdGVycy8xLjEtYWxwaGEwL2FkYXB0ZXJzLTEuMS1hbHBoYTAuYWFyLm1kNSBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2FkYXB0ZXJzLzEuMS1hbHBoYTAvYWRhcHRlcnMtMS4xLWFscGhhMC5hYXIubWQ1Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIyMjA0NTEKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9hZGFwdGVycy8xLjEtYWxwaGEwL2FkYXB0ZXJzLTEuMS1hbHBoYTAuYWFyLm1kNQpAQCAtMCwwICsxIEBACithOTg1MjY1OTMxYzA0ZTBlNzE4NzAxYzc4NjllM2VkOApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2FkYXB0ZXJzLzEuMS1hbHBoYTAvYWRhcHRlcnMtMS4xLWFscGhhMC5hYXIuc2hhMSBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2FkYXB0ZXJzLzEuMS1hbHBoYTAvYWRhcHRlcnMtMS4xLWFscGhhMC5hYXIuc2hhMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYTFmYjA1Ci0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvYWRhcHRlcnMvMS4xLWFscGhhMC9hZGFwdGVycy0xLjEtYWxwaGEwLmFhci5zaGExCkBAIC0wLDAgKzEgQEAKKzQwYTFkMDllNGVhMjViMzFjN2ZhN2QwMGRhYjhhZTE5NTVlMTk0MTUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9hZGFwdGVycy8xLjEtYWxwaGEwL2FkYXB0ZXJzLTEuMS1hbHBoYTAucG9tIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvYWRhcHRlcnMvMS4xLWFscGhhMC9hZGFwdGVycy0xLjEtYWxwaGEwLnBvbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNTNkODkxCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvYWRhcHRlcnMvMS4xLWFscGhhMC9hZGFwdGVycy0xLjEtYWxwaGEwLnBvbQpAQCAtMCwwICsxLDI0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHByb2plY3QgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAgaHR0cDovL21hdmVuLmFwYWNoZS5vcmcveHNkL21hdmVuLTQuMC4wLnhzZCIgeG1sbnM9Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCIKKyAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIj4KKyAgPG1vZGVsVmVyc2lvbj40LjAuMDwvbW9kZWxWZXJzaW9uPgorICA8Z3JvdXBJZD5jb20uYW5kcm9pZC5kYXRhYmluZGluZzwvZ3JvdXBJZD4KKyAgPGFydGlmYWN0SWQ+YWRhcHRlcnM8L2FydGlmYWN0SWQ+CisgIDx2ZXJzaW9uPjEuMS1hbHBoYTA8L3ZlcnNpb24+CisgIDxwYWNrYWdpbmc+YWFyPC9wYWNrYWdpbmc+CisgIDxsaWNlbnNlcz4KKyAgICA8bGljZW5zZT4KKyAgICAgIDxuYW1lPlRoZSBBcGFjaGUgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAyLjA8L25hbWU+CisgICAgICA8dXJsPmh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC50eHQ8L3VybD4KKyAgICAgIDxkaXN0cmlidXRpb24+cmVwbzwvZGlzdHJpYnV0aW9uPgorICAgIDwvbGljZW5zZT4KKyAgPC9saWNlbnNlcz4KKyAgPGRlcGVuZGVuY2llcz4KKyAgICA8ZGVwZW5kZW5jeT4KKyAgICAgIDxncm91cElkPmNvbS5hbmRyb2lkLmRhdGFiaW5kaW5nPC9ncm91cElkPgorICAgICAgPGFydGlmYWN0SWQ+bGlicmFyeTwvYXJ0aWZhY3RJZD4KKyAgICAgIDx2ZXJzaW9uPjEuMC1yYzItU05BUFNIT1Q8L3ZlcnNpb24+CisgICAgICA8c2NvcGU+Y29tcGlsZTwvc2NvcGU+CisgICAgPC9kZXBlbmRlbmN5PgorICA8L2RlcGVuZGVuY2llcz4KKzwvcHJvamVjdD4KZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2FkYXB0ZXJzLzEuMS1hbHBoYTAvYWRhcHRlcnMtMS4xLWFscGhhMC5wb20ubWQ1IGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvYWRhcHRlcnMvMS4xLWFscGhhMC9hZGFwdGVycy0xLjEtYWxwaGEwLnBvbS5tZDUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGM3MzE1MQotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2FkYXB0ZXJzLzEuMS1hbHBoYTAvYWRhcHRlcnMtMS4xLWFscGhhMC5wb20ubWQ1CkBAIC0wLDAgKzEgQEAKKzI2NDMwMTdjZmFlNzM3OWIzZDNiNGI0NTM0YmIyOTdiClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvYWRhcHRlcnMvMS4xLWFscGhhMC9hZGFwdGVycy0xLjEtYWxwaGEwLnBvbS5zaGExIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvYWRhcHRlcnMvMS4xLWFscGhhMC9hZGFwdGVycy0xLjEtYWxwaGEwLnBvbS5zaGExCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUwZjQ5NjUKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9hZGFwdGVycy8xLjEtYWxwaGEwL2FkYXB0ZXJzLTEuMS1hbHBoYTAucG9tLnNoYTEKQEAgLTAsMCArMSBAQAorMzRiN2FlYzY0NzJmOTgyMWZhYmYwODk0ZDZhZGJkOTdkZWVmMDFhYwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2FkYXB0ZXJzL21hdmVuLW1ldGFkYXRhLnhtbCBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2FkYXB0ZXJzL21hdmVuLW1ldGFkYXRhLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YThmMmVlCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvYWRhcHRlcnMvbWF2ZW4tbWV0YWRhdGEueG1sCkBAIC0wLDAgKzEsMTIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8bWV0YWRhdGE+CisgIDxncm91cElkPmNvbS5hbmRyb2lkLmRhdGFiaW5kaW5nPC9ncm91cElkPgorICA8YXJ0aWZhY3RJZD5hZGFwdGVyczwvYXJ0aWZhY3RJZD4KKyAgPHZlcnNpb24+MS4xLWFscGhhMDwvdmVyc2lvbj4KKyAgPHZlcnNpb25pbmc+CisgICAgPHZlcnNpb25zPgorICAgICAgPHZlcnNpb24+MS4xLWFscGhhMDwvdmVyc2lvbj4KKyAgICA8L3ZlcnNpb25zPgorICAgIDxsYXN0VXBkYXRlZD4yMDE1MDcyMjIxMzQwODwvbGFzdFVwZGF0ZWQ+CisgIDwvdmVyc2lvbmluZz4KKzwvbWV0YWRhdGE+CmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9hZGFwdGVycy9tYXZlbi1tZXRhZGF0YS54bWwubWQ1IGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvYWRhcHRlcnMvbWF2ZW4tbWV0YWRhdGEueG1sLm1kNQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MTFjYzU3Ci0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvYWRhcHRlcnMvbWF2ZW4tbWV0YWRhdGEueG1sLm1kNQpAQCAtMCwwICsxIEBACis1NjE1M2E1YTJlZjE1NmUyZTAwYjBhZWIwZTgyNmMzZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2FkYXB0ZXJzL21hdmVuLW1ldGFkYXRhLnhtbC5zaGExIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvYWRhcHRlcnMvbWF2ZW4tbWV0YWRhdGEueG1sLnNoYTEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTY4ODZiNwotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2FkYXB0ZXJzL21hdmVuLW1ldGFkYXRhLnhtbC5zaGExCkBAIC0wLDAgKzEgQEAKK2FlZWRjMGU5MzI1MDQ5M2M2M2FmYmY0ZWMzZTk2NWY5YmJmN2VhM2EKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9iYXNlTGlicmFyeS8xLjEtYWxwaGEwL05PVElDRSBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2Jhc2VMaWJyYXJ5LzEuMS1hbHBoYTAvTk9USUNFCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ2NDU2OTUKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9iYXNlTGlicmFyeS8xLjEtYWxwaGEwL05PVElDRQpAQCAtMCwwICsxLDIwMiBAQAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcGFjaGUgTGljZW5zZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVyc2lvbiAyLjAsIEphbnVhcnkgMjAwNAorICAgICAgICAgICAgICAgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzLworCisgICBURVJNUyBBTkQgQ09ORElUSU9OUyBGT1IgVVNFLCBSRVBST0RVQ1RJT04sIEFORCBESVNUUklCVVRJT04KKworICAgMS4gRGVmaW5pdGlvbnMuCisKKyAgICAgICJMaWNlbnNlIiBzaGFsbCBtZWFuIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBmb3IgdXNlLCByZXByb2R1Y3Rpb24sCisgICAgICBhbmQgZGlzdHJpYnV0aW9uIGFzIGRlZmluZWQgYnkgU2VjdGlvbnMgMSB0aHJvdWdoIDkgb2YgdGhpcyBkb2N1bWVudC4KKworICAgICAgIkxpY2Vuc29yIiBzaGFsbCBtZWFuIHRoZSBjb3B5cmlnaHQgb3duZXIgb3IgZW50aXR5IGF1dGhvcml6ZWQgYnkKKyAgICAgIHRoZSBjb3B5cmlnaHQgb3duZXIgdGhhdCBpcyBncmFudGluZyB0aGUgTGljZW5zZS4KKworICAgICAgIkxlZ2FsIEVudGl0eSIgc2hhbGwgbWVhbiB0aGUgdW5pb24gb2YgdGhlIGFjdGluZyBlbnRpdHkgYW5kIGFsbAorICAgICAgb3RoZXIgZW50aXRpZXMgdGhhdCBjb250cm9sLCBhcmUgY29udHJvbGxlZCBieSwgb3IgYXJlIHVuZGVyIGNvbW1vbgorICAgICAgY29udHJvbCB3aXRoIHRoYXQgZW50aXR5LiBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwKKyAgICAgICJjb250cm9sIiBtZWFucyAoaSkgdGhlIHBvd2VyLCBkaXJlY3Qgb3IgaW5kaXJlY3QsIHRvIGNhdXNlIHRoZQorICAgICAgZGlyZWN0aW9uIG9yIG1hbmFnZW1lbnQgb2Ygc3VjaCBlbnRpdHksIHdoZXRoZXIgYnkgY29udHJhY3Qgb3IKKyAgICAgIG90aGVyd2lzZSwgb3IgKGlpKSBvd25lcnNoaXAgb2YgZmlmdHkgcGVyY2VudCAoNTAlKSBvciBtb3JlIG9mIHRoZQorICAgICAgb3V0c3RhbmRpbmcgc2hhcmVzLCBvciAoaWlpKSBiZW5lZmljaWFsIG93bmVyc2hpcCBvZiBzdWNoIGVudGl0eS4KKworICAgICAgIllvdSIgKG9yICJZb3VyIikgc2hhbGwgbWVhbiBhbiBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eQorICAgICAgZXhlcmNpc2luZyBwZXJtaXNzaW9ucyBncmFudGVkIGJ5IHRoaXMgTGljZW5zZS4KKworICAgICAgIlNvdXJjZSIgZm9ybSBzaGFsbCBtZWFuIHRoZSBwcmVmZXJyZWQgZm9ybSBmb3IgbWFraW5nIG1vZGlmaWNhdGlvbnMsCisgICAgICBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIHNvZnR3YXJlIHNvdXJjZSBjb2RlLCBkb2N1bWVudGF0aW9uCisgICAgICBzb3VyY2UsIGFuZCBjb25maWd1cmF0aW9uIGZpbGVzLgorCisgICAgICAiT2JqZWN0IiBmb3JtIHNoYWxsIG1lYW4gYW55IGZvcm0gcmVzdWx0aW5nIGZyb20gbWVjaGFuaWNhbAorICAgICAgdHJhbnNmb3JtYXRpb24gb3IgdHJhbnNsYXRpb24gb2YgYSBTb3VyY2UgZm9ybSwgaW5jbHVkaW5nIGJ1dAorICAgICAgbm90IGxpbWl0ZWQgdG8gY29tcGlsZWQgb2JqZWN0IGNvZGUsIGdlbmVyYXRlZCBkb2N1bWVudGF0aW9uLAorICAgICAgYW5kIGNvbnZlcnNpb25zIHRvIG90aGVyIG1lZGlhIHR5cGVzLgorCisgICAgICAiV29yayIgc2hhbGwgbWVhbiB0aGUgd29yayBvZiBhdXRob3JzaGlwLCB3aGV0aGVyIGluIFNvdXJjZSBvcgorICAgICAgT2JqZWN0IGZvcm0sIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSBMaWNlbnNlLCBhcyBpbmRpY2F0ZWQgYnkgYQorICAgICAgY29weXJpZ2h0IG5vdGljZSB0aGF0IGlzIGluY2x1ZGVkIGluIG9yIGF0dGFjaGVkIHRvIHRoZSB3b3JrCisgICAgICAoYW4gZXhhbXBsZSBpcyBwcm92aWRlZCBpbiB0aGUgQXBwZW5kaXggYmVsb3cpLgorCisgICAgICAiRGVyaXZhdGl2ZSBXb3JrcyIgc2hhbGwgbWVhbiBhbnkgd29yaywgd2hldGhlciBpbiBTb3VyY2Ugb3IgT2JqZWN0CisgICAgICBmb3JtLCB0aGF0IGlzIGJhc2VkIG9uIChvciBkZXJpdmVkIGZyb20pIHRoZSBXb3JrIGFuZCBmb3Igd2hpY2ggdGhlCisgICAgICBlZGl0b3JpYWwgcmV2aXNpb25zLCBhbm5vdGF0aW9ucywgZWxhYm9yYXRpb25zLCBvciBvdGhlciBtb2RpZmljYXRpb25zCisgICAgICByZXByZXNlbnQsIGFzIGEgd2hvbGUsIGFuIG9yaWdpbmFsIHdvcmsgb2YgYXV0aG9yc2hpcC4gRm9yIHRoZSBwdXJwb3NlcworICAgICAgb2YgdGhpcyBMaWNlbnNlLCBEZXJpdmF0aXZlIFdvcmtzIHNoYWxsIG5vdCBpbmNsdWRlIHdvcmtzIHRoYXQgcmVtYWluCisgICAgICBzZXBhcmFibGUgZnJvbSwgb3IgbWVyZWx5IGxpbmsgKG9yIGJpbmQgYnkgbmFtZSkgdG8gdGhlIGludGVyZmFjZXMgb2YsCisgICAgICB0aGUgV29yayBhbmQgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mLgorCisgICAgICAiQ29udHJpYnV0aW9uIiBzaGFsbCBtZWFuIGFueSB3b3JrIG9mIGF1dGhvcnNoaXAsIGluY2x1ZGluZworICAgICAgdGhlIG9yaWdpbmFsIHZlcnNpb24gb2YgdGhlIFdvcmsgYW5kIGFueSBtb2RpZmljYXRpb25zIG9yIGFkZGl0aW9ucworICAgICAgdG8gdGhhdCBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiwgdGhhdCBpcyBpbnRlbnRpb25hbGx5CisgICAgICBzdWJtaXR0ZWQgdG8gTGljZW5zb3IgZm9yIGluY2x1c2lvbiBpbiB0aGUgV29yayBieSB0aGUgY29weXJpZ2h0IG93bmVyCisgICAgICBvciBieSBhbiBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eSBhdXRob3JpemVkIHRvIHN1Ym1pdCBvbiBiZWhhbGYgb2YKKyAgICAgIHRoZSBjb3B5cmlnaHQgb3duZXIuIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBkZWZpbml0aW9uLCAic3VibWl0dGVkIgorICAgICAgbWVhbnMgYW55IGZvcm0gb2YgZWxlY3Ryb25pYywgdmVyYmFsLCBvciB3cml0dGVuIGNvbW11bmljYXRpb24gc2VudAorICAgICAgdG8gdGhlIExpY2Vuc29yIG9yIGl0cyByZXByZXNlbnRhdGl2ZXMsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8KKyAgICAgIGNvbW11bmljYXRpb24gb24gZWxlY3Ryb25pYyBtYWlsaW5nIGxpc3RzLCBzb3VyY2UgY29kZSBjb250cm9sIHN5c3RlbXMsCisgICAgICBhbmQgaXNzdWUgdHJhY2tpbmcgc3lzdGVtcyB0aGF0IGFyZSBtYW5hZ2VkIGJ5LCBvciBvbiBiZWhhbGYgb2YsIHRoZQorICAgICAgTGljZW5zb3IgZm9yIHRoZSBwdXJwb3NlIG9mIGRpc2N1c3NpbmcgYW5kIGltcHJvdmluZyB0aGUgV29yaywgYnV0CisgICAgICBleGNsdWRpbmcgY29tbXVuaWNhdGlvbiB0aGF0IGlzIGNvbnNwaWN1b3VzbHkgbWFya2VkIG9yIG90aGVyd2lzZQorICAgICAgZGVzaWduYXRlZCBpbiB3cml0aW5nIGJ5IHRoZSBjb3B5cmlnaHQgb3duZXIgYXMgIk5vdCBhIENvbnRyaWJ1dGlvbi4iCisKKyAgICAgICJDb250cmlidXRvciIgc2hhbGwgbWVhbiBMaWNlbnNvciBhbmQgYW55IGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5CisgICAgICBvbiBiZWhhbGYgb2Ygd2hvbSBhIENvbnRyaWJ1dGlvbiBoYXMgYmVlbiByZWNlaXZlZCBieSBMaWNlbnNvciBhbmQKKyAgICAgIHN1YnNlcXVlbnRseSBpbmNvcnBvcmF0ZWQgd2l0aGluIHRoZSBXb3JrLgorCisgICAyLiBHcmFudCBvZiBDb3B5cmlnaHQgTGljZW5zZS4gU3ViamVjdCB0byB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YKKyAgICAgIHRoaXMgTGljZW5zZSwgZWFjaCBDb250cmlidXRvciBoZXJlYnkgZ3JhbnRzIHRvIFlvdSBhIHBlcnBldHVhbCwKKyAgICAgIHdvcmxkd2lkZSwgbm9uLWV4Y2x1c2l2ZSwgbm8tY2hhcmdlLCByb3lhbHR5LWZyZWUsIGlycmV2b2NhYmxlCisgICAgICBjb3B5cmlnaHQgbGljZW5zZSB0byByZXByb2R1Y2UsIHByZXBhcmUgRGVyaXZhdGl2ZSBXb3JrcyBvZiwKKyAgICAgIHB1YmxpY2x5IGRpc3BsYXksIHB1YmxpY2x5IHBlcmZvcm0sIHN1YmxpY2Vuc2UsIGFuZCBkaXN0cmlidXRlIHRoZQorICAgICAgV29yayBhbmQgc3VjaCBEZXJpdmF0aXZlIFdvcmtzIGluIFNvdXJjZSBvciBPYmplY3QgZm9ybS4KKworICAgMy4gR3JhbnQgb2YgUGF0ZW50IExpY2Vuc2UuIFN1YmplY3QgdG8gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mCisgICAgICB0aGlzIExpY2Vuc2UsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cyB0byBZb3UgYSBwZXJwZXR1YWwsCisgICAgICB3b3JsZHdpZGUsIG5vbi1leGNsdXNpdmUsIG5vLWNoYXJnZSwgcm95YWx0eS1mcmVlLCBpcnJldm9jYWJsZQorICAgICAgKGV4Y2VwdCBhcyBzdGF0ZWQgaW4gdGhpcyBzZWN0aW9uKSBwYXRlbnQgbGljZW5zZSB0byBtYWtlLCBoYXZlIG1hZGUsCisgICAgICB1c2UsIG9mZmVyIHRvIHNlbGwsIHNlbGwsIGltcG9ydCwgYW5kIG90aGVyd2lzZSB0cmFuc2ZlciB0aGUgV29yaywKKyAgICAgIHdoZXJlIHN1Y2ggbGljZW5zZSBhcHBsaWVzIG9ubHkgdG8gdGhvc2UgcGF0ZW50IGNsYWltcyBsaWNlbnNhYmxlCisgICAgICBieSBzdWNoIENvbnRyaWJ1dG9yIHRoYXQgYXJlIG5lY2Vzc2FyaWx5IGluZnJpbmdlZCBieSB0aGVpcgorICAgICAgQ29udHJpYnV0aW9uKHMpIGFsb25lIG9yIGJ5IGNvbWJpbmF0aW9uIG9mIHRoZWlyIENvbnRyaWJ1dGlvbihzKQorICAgICAgd2l0aCB0aGUgV29yayB0byB3aGljaCBzdWNoIENvbnRyaWJ1dGlvbihzKSB3YXMgc3VibWl0dGVkLiBJZiBZb3UKKyAgICAgIGluc3RpdHV0ZSBwYXRlbnQgbGl0aWdhdGlvbiBhZ2FpbnN0IGFueSBlbnRpdHkgKGluY2x1ZGluZyBhCisgICAgICBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYSBsYXdzdWl0KSBhbGxlZ2luZyB0aGF0IHRoZSBXb3JrCisgICAgICBvciBhIENvbnRyaWJ1dGlvbiBpbmNvcnBvcmF0ZWQgd2l0aGluIHRoZSBXb3JrIGNvbnN0aXR1dGVzIGRpcmVjdAorICAgICAgb3IgY29udHJpYnV0b3J5IHBhdGVudCBpbmZyaW5nZW1lbnQsIHRoZW4gYW55IHBhdGVudCBsaWNlbnNlcworICAgICAgZ3JhbnRlZCB0byBZb3UgdW5kZXIgdGhpcyBMaWNlbnNlIGZvciB0aGF0IFdvcmsgc2hhbGwgdGVybWluYXRlCisgICAgICBhcyBvZiB0aGUgZGF0ZSBzdWNoIGxpdGlnYXRpb24gaXMgZmlsZWQuCisKKyAgIDQuIFJlZGlzdHJpYnV0aW9uLiBZb3UgbWF5IHJlcHJvZHVjZSBhbmQgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhlCisgICAgICBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiBpbiBhbnkgbWVkaXVtLCB3aXRoIG9yIHdpdGhvdXQKKyAgICAgIG1vZGlmaWNhdGlvbnMsIGFuZCBpbiBTb3VyY2Ugb3IgT2JqZWN0IGZvcm0sIHByb3ZpZGVkIHRoYXQgWW91CisgICAgICBtZWV0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKworICAgICAgKGEpIFlvdSBtdXN0IGdpdmUgYW55IG90aGVyIHJlY2lwaWVudHMgb2YgdGhlIFdvcmsgb3IKKyAgICAgICAgICBEZXJpdmF0aXZlIFdvcmtzIGEgY29weSBvZiB0aGlzIExpY2Vuc2U7IGFuZAorCisgICAgICAoYikgWW91IG11c3QgY2F1c2UgYW55IG1vZGlmaWVkIGZpbGVzIHRvIGNhcnJ5IHByb21pbmVudCBub3RpY2VzCisgICAgICAgICAgc3RhdGluZyB0aGF0IFlvdSBjaGFuZ2VkIHRoZSBmaWxlczsgYW5kCisKKyAgICAgIChjKSBZb3UgbXVzdCByZXRhaW4sIGluIHRoZSBTb3VyY2UgZm9ybSBvZiBhbnkgRGVyaXZhdGl2ZSBXb3JrcworICAgICAgICAgIHRoYXQgWW91IGRpc3RyaWJ1dGUsIGFsbCBjb3B5cmlnaHQsIHBhdGVudCwgdHJhZGVtYXJrLCBhbmQKKyAgICAgICAgICBhdHRyaWJ1dGlvbiBub3RpY2VzIGZyb20gdGhlIFNvdXJjZSBmb3JtIG9mIHRoZSBXb3JrLAorICAgICAgICAgIGV4Y2x1ZGluZyB0aG9zZSBub3RpY2VzIHRoYXQgZG8gbm90IHBlcnRhaW4gdG8gYW55IHBhcnQgb2YKKyAgICAgICAgICB0aGUgRGVyaXZhdGl2ZSBXb3JrczsgYW5kCisKKyAgICAgIChkKSBJZiB0aGUgV29yayBpbmNsdWRlcyBhICJOT1RJQ0UiIHRleHQgZmlsZSBhcyBwYXJ0IG9mIGl0cworICAgICAgICAgIGRpc3RyaWJ1dGlvbiwgdGhlbiBhbnkgRGVyaXZhdGl2ZSBXb3JrcyB0aGF0IFlvdSBkaXN0cmlidXRlIG11c3QKKyAgICAgICAgICBpbmNsdWRlIGEgcmVhZGFibGUgY29weSBvZiB0aGUgYXR0cmlidXRpb24gbm90aWNlcyBjb250YWluZWQKKyAgICAgICAgICB3aXRoaW4gc3VjaCBOT1RJQ0UgZmlsZSwgZXhjbHVkaW5nIHRob3NlIG5vdGljZXMgdGhhdCBkbyBub3QKKyAgICAgICAgICBwZXJ0YWluIHRvIGFueSBwYXJ0IG9mIHRoZSBEZXJpdmF0aXZlIFdvcmtzLCBpbiBhdCBsZWFzdCBvbmUKKyAgICAgICAgICBvZiB0aGUgZm9sbG93aW5nIHBsYWNlczogd2l0aGluIGEgTk9USUNFIHRleHQgZmlsZSBkaXN0cmlidXRlZAorICAgICAgICAgIGFzIHBhcnQgb2YgdGhlIERlcml2YXRpdmUgV29ya3M7IHdpdGhpbiB0aGUgU291cmNlIGZvcm0gb3IKKyAgICAgICAgICBkb2N1bWVudGF0aW9uLCBpZiBwcm92aWRlZCBhbG9uZyB3aXRoIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyBvciwKKyAgICAgICAgICB3aXRoaW4gYSBkaXNwbGF5IGdlbmVyYXRlZCBieSB0aGUgRGVyaXZhdGl2ZSBXb3JrcywgaWYgYW5kCisgICAgICAgICAgd2hlcmV2ZXIgc3VjaCB0aGlyZC1wYXJ0eSBub3RpY2VzIG5vcm1hbGx5IGFwcGVhci4gVGhlIGNvbnRlbnRzCisgICAgICAgICAgb2YgdGhlIE5PVElDRSBmaWxlIGFyZSBmb3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5IGFuZAorICAgICAgICAgIGRvIG5vdCBtb2RpZnkgdGhlIExpY2Vuc2UuIFlvdSBtYXkgYWRkIFlvdXIgb3duIGF0dHJpYnV0aW9uCisgICAgICAgICAgbm90aWNlcyB3aXRoaW4gRGVyaXZhdGl2ZSBXb3JrcyB0aGF0IFlvdSBkaXN0cmlidXRlLCBhbG9uZ3NpZGUKKyAgICAgICAgICBvciBhcyBhbiBhZGRlbmR1bSB0byB0aGUgTk9USUNFIHRleHQgZnJvbSB0aGUgV29yaywgcHJvdmlkZWQKKyAgICAgICAgICB0aGF0IHN1Y2ggYWRkaXRpb25hbCBhdHRyaWJ1dGlvbiBub3RpY2VzIGNhbm5vdCBiZSBjb25zdHJ1ZWQKKyAgICAgICAgICBhcyBtb2RpZnlpbmcgdGhlIExpY2Vuc2UuCisKKyAgICAgIFlvdSBtYXkgYWRkIFlvdXIgb3duIGNvcHlyaWdodCBzdGF0ZW1lbnQgdG8gWW91ciBtb2RpZmljYXRpb25zIGFuZAorICAgICAgbWF5IHByb3ZpZGUgYWRkaXRpb25hbCBvciBkaWZmZXJlbnQgbGljZW5zZSB0ZXJtcyBhbmQgY29uZGl0aW9ucworICAgICAgZm9yIHVzZSwgcmVwcm9kdWN0aW9uLCBvciBkaXN0cmlidXRpb24gb2YgWW91ciBtb2RpZmljYXRpb25zLCBvcgorICAgICAgZm9yIGFueSBzdWNoIERlcml2YXRpdmUgV29ya3MgYXMgYSB3aG9sZSwgcHJvdmlkZWQgWW91ciB1c2UsCisgICAgICByZXByb2R1Y3Rpb24sIGFuZCBkaXN0cmlidXRpb24gb2YgdGhlIFdvcmsgb3RoZXJ3aXNlIGNvbXBsaWVzIHdpdGgKKyAgICAgIHRoZSBjb25kaXRpb25zIHN0YXRlZCBpbiB0aGlzIExpY2Vuc2UuCisKKyAgIDUuIFN1Ym1pc3Npb24gb2YgQ29udHJpYnV0aW9ucy4gVW5sZXNzIFlvdSBleHBsaWNpdGx5IHN0YXRlIG90aGVyd2lzZSwKKyAgICAgIGFueSBDb250cmlidXRpb24gaW50ZW50aW9uYWxseSBzdWJtaXR0ZWQgZm9yIGluY2x1c2lvbiBpbiB0aGUgV29yaworICAgICAgYnkgWW91IHRvIHRoZSBMaWNlbnNvciBzaGFsbCBiZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YKKyAgICAgIHRoaXMgTGljZW5zZSwgd2l0aG91dCBhbnkgYWRkaXRpb25hbCB0ZXJtcyBvciBjb25kaXRpb25zLgorICAgICAgTm90d2l0aHN0YW5kaW5nIHRoZSBhYm92ZSwgbm90aGluZyBoZXJlaW4gc2hhbGwgc3VwZXJzZWRlIG9yIG1vZGlmeQorICAgICAgdGhlIHRlcm1zIG9mIGFueSBzZXBhcmF0ZSBsaWNlbnNlIGFncmVlbWVudCB5b3UgbWF5IGhhdmUgZXhlY3V0ZWQKKyAgICAgIHdpdGggTGljZW5zb3IgcmVnYXJkaW5nIHN1Y2ggQ29udHJpYnV0aW9ucy4KKworICAgNi4gVHJhZGVtYXJrcy4gVGhpcyBMaWNlbnNlIGRvZXMgbm90IGdyYW50IHBlcm1pc3Npb24gdG8gdXNlIHRoZSB0cmFkZQorICAgICAgbmFtZXMsIHRyYWRlbWFya3MsIHNlcnZpY2UgbWFya3MsIG9yIHByb2R1Y3QgbmFtZXMgb2YgdGhlIExpY2Vuc29yLAorICAgICAgZXhjZXB0IGFzIHJlcXVpcmVkIGZvciByZWFzb25hYmxlIGFuZCBjdXN0b21hcnkgdXNlIGluIGRlc2NyaWJpbmcgdGhlCisgICAgICBvcmlnaW4gb2YgdGhlIFdvcmsgYW5kIHJlcHJvZHVjaW5nIHRoZSBjb250ZW50IG9mIHRoZSBOT1RJQ0UgZmlsZS4KKworICAgNy4gRGlzY2xhaW1lciBvZiBXYXJyYW50eS4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yCisgICAgICBhZ3JlZWQgdG8gaW4gd3JpdGluZywgTGljZW5zb3IgcHJvdmlkZXMgdGhlIFdvcmsgKGFuZCBlYWNoCisgICAgICBDb250cmlidXRvciBwcm92aWRlcyBpdHMgQ29udHJpYnV0aW9ucykgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvcgorICAgICAgaW1wbGllZCwgaW5jbHVkaW5nLCB3aXRob3V0IGxpbWl0YXRpb24sIGFueSB3YXJyYW50aWVzIG9yIGNvbmRpdGlvbnMKKyAgICAgIG9mIFRJVExFLCBOT04tSU5GUklOR0VNRU5ULCBNRVJDSEFOVEFCSUxJVFksIG9yIEZJVE5FU1MgRk9SIEEKKyAgICAgIFBBUlRJQ1VMQVIgUFVSUE9TRS4gWW91IGFyZSBzb2xlbHkgcmVzcG9uc2libGUgZm9yIGRldGVybWluaW5nIHRoZQorICAgICAgYXBwcm9wcmlhdGVuZXNzIG9mIHVzaW5nIG9yIHJlZGlzdHJpYnV0aW5nIHRoZSBXb3JrIGFuZCBhc3N1bWUgYW55CisgICAgICByaXNrcyBhc3NvY2lhdGVkIHdpdGggWW91ciBleGVyY2lzZSBvZiBwZXJtaXNzaW9ucyB1bmRlciB0aGlzIExpY2Vuc2UuCisKKyAgIDguIExpbWl0YXRpb24gb2YgTGlhYmlsaXR5LiBJbiBubyBldmVudCBhbmQgdW5kZXIgbm8gbGVnYWwgdGhlb3J5LAorICAgICAgd2hldGhlciBpbiB0b3J0IChpbmNsdWRpbmcgbmVnbGlnZW5jZSksIGNvbnRyYWN0LCBvciBvdGhlcndpc2UsCisgICAgICB1bmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgKHN1Y2ggYXMgZGVsaWJlcmF0ZSBhbmQgZ3Jvc3NseQorICAgICAgbmVnbGlnZW50IGFjdHMpIG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzaGFsbCBhbnkgQ29udHJpYnV0b3IgYmUKKyAgICAgIGxpYWJsZSB0byBZb3UgZm9yIGRhbWFnZXMsIGluY2x1ZGluZyBhbnkgZGlyZWN0LCBpbmRpcmVjdCwgc3BlY2lhbCwKKyAgICAgIGluY2lkZW50YWwsIG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvZiBhbnkgY2hhcmFjdGVyIGFyaXNpbmcgYXMgYQorICAgICAgcmVzdWx0IG9mIHRoaXMgTGljZW5zZSBvciBvdXQgb2YgdGhlIHVzZSBvciBpbmFiaWxpdHkgdG8gdXNlIHRoZQorICAgICAgV29yayAoaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byBkYW1hZ2VzIGZvciBsb3NzIG9mIGdvb2R3aWxsLAorICAgICAgd29yayBzdG9wcGFnZSwgY29tcHV0ZXIgZmFpbHVyZSBvciBtYWxmdW5jdGlvbiwgb3IgYW55IGFuZCBhbGwKKyAgICAgIG90aGVyIGNvbW1lcmNpYWwgZGFtYWdlcyBvciBsb3NzZXMpLCBldmVuIGlmIHN1Y2ggQ29udHJpYnV0b3IKKyAgICAgIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHN1Y2ggZGFtYWdlcy4KKworICAgOS4gQWNjZXB0aW5nIFdhcnJhbnR5IG9yIEFkZGl0aW9uYWwgTGlhYmlsaXR5LiBXaGlsZSByZWRpc3RyaWJ1dGluZworICAgICAgdGhlIFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mLCBZb3UgbWF5IGNob29zZSB0byBvZmZlciwKKyAgICAgIGFuZCBjaGFyZ2UgYSBmZWUgZm9yLCBhY2NlcHRhbmNlIG9mIHN1cHBvcnQsIHdhcnJhbnR5LCBpbmRlbW5pdHksCisgICAgICBvciBvdGhlciBsaWFiaWxpdHkgb2JsaWdhdGlvbnMgYW5kL29yIHJpZ2h0cyBjb25zaXN0ZW50IHdpdGggdGhpcworICAgICAgTGljZW5zZS4gSG93ZXZlciwgaW4gYWNjZXB0aW5nIHN1Y2ggb2JsaWdhdGlvbnMsIFlvdSBtYXkgYWN0IG9ubHkKKyAgICAgIG9uIFlvdXIgb3duIGJlaGFsZiBhbmQgb24gWW91ciBzb2xlIHJlc3BvbnNpYmlsaXR5LCBub3Qgb24gYmVoYWxmCisgICAgICBvZiBhbnkgb3RoZXIgQ29udHJpYnV0b3IsIGFuZCBvbmx5IGlmIFlvdSBhZ3JlZSB0byBpbmRlbW5pZnksCisgICAgICBkZWZlbmQsIGFuZCBob2xkIGVhY2ggQ29udHJpYnV0b3IgaGFybWxlc3MgZm9yIGFueSBsaWFiaWxpdHkKKyAgICAgIGluY3VycmVkIGJ5LCBvciBjbGFpbXMgYXNzZXJ0ZWQgYWdhaW5zdCwgc3VjaCBDb250cmlidXRvciBieSByZWFzb24KKyAgICAgIG9mIHlvdXIgYWNjZXB0aW5nIGFueSBzdWNoIHdhcnJhbnR5IG9yIGFkZGl0aW9uYWwgbGlhYmlsaXR5LgorCisgICBFTkQgT0YgVEVSTVMgQU5EIENPTkRJVElPTlMKKworICAgQVBQRU5ESVg6IEhvdyB0byBhcHBseSB0aGUgQXBhY2hlIExpY2Vuc2UgdG8geW91ciB3b3JrLgorCisgICAgICBUbyBhcHBseSB0aGUgQXBhY2hlIExpY2Vuc2UgdG8geW91ciB3b3JrLCBhdHRhY2ggdGhlIGZvbGxvd2luZworICAgICAgYm9pbGVycGxhdGUgbm90aWNlLCB3aXRoIHRoZSBmaWVsZHMgZW5jbG9zZWQgYnkgYnJhY2tldHMgIltdIgorICAgICAgcmVwbGFjZWQgd2l0aCB5b3VyIG93biBpZGVudGlmeWluZyBpbmZvcm1hdGlvbi4gKERvbid0IGluY2x1ZGUKKyAgICAgIHRoZSBicmFja2V0cyEpICBUaGUgdGV4dCBzaG91bGQgYmUgZW5jbG9zZWQgaW4gdGhlIGFwcHJvcHJpYXRlCisgICAgICBjb21tZW50IHN5bnRheCBmb3IgdGhlIGZpbGUgZm9ybWF0LiBXZSBhbHNvIHJlY29tbWVuZCB0aGF0IGEKKyAgICAgIGZpbGUgb3IgY2xhc3MgbmFtZSBhbmQgZGVzY3JpcHRpb24gb2YgcHVycG9zZSBiZSBpbmNsdWRlZCBvbiB0aGUKKyAgICAgIHNhbWUgInByaW50ZWQgcGFnZSIgYXMgdGhlIGNvcHlyaWdodCBub3RpY2UgZm9yIGVhc2llcgorICAgICAgaWRlbnRpZmljYXRpb24gd2l0aGluIHRoaXJkLXBhcnR5IGFyY2hpdmVzLgorCisgICBDb3B5cmlnaHQgW3l5eXldIFtuYW1lIG9mIGNvcHlyaWdodCBvd25lcl0KKworICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2Jhc2VMaWJyYXJ5LzEuMS1hbHBoYTAvYmFzZUxpYnJhcnktMS4xLWFscGhhMC1qYXZhZG9jLmphciBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2Jhc2VMaWJyYXJ5LzEuMS1hbHBoYTAvYmFzZUxpYnJhcnktMS4xLWFscGhhMC1qYXZhZG9jLmphcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZDZhMzJiCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvYmFzZUxpYnJhcnkvMS4xLWFscGhhMC9iYXNlTGlicmFyeS0xLjEtYWxwaGEwLWphdmFkb2MuamFyCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2Jhc2VMaWJyYXJ5LzEuMS1hbHBoYTAvYmFzZUxpYnJhcnktMS4xLWFscGhhMC1qYXZhZG9jLmphci5tZDUgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9iYXNlTGlicmFyeS8xLjEtYWxwaGEwL2Jhc2VMaWJyYXJ5LTEuMS1hbHBoYTAtamF2YWRvYy5qYXIubWQ1Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkxZDMyOTIKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9iYXNlTGlicmFyeS8xLjEtYWxwaGEwL2Jhc2VMaWJyYXJ5LTEuMS1hbHBoYTAtamF2YWRvYy5qYXIubWQ1CkBAIC0wLDAgKzEgQEAKKzRmZmVjNjJmZDE2OWUzYWEwYjU1MTBlNDU1NjQ2MmNiClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvYmFzZUxpYnJhcnkvMS4xLWFscGhhMC9iYXNlTGlicmFyeS0xLjEtYWxwaGEwLWphdmFkb2MuamFyLnNoYTEgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9iYXNlTGlicmFyeS8xLjEtYWxwaGEwL2Jhc2VMaWJyYXJ5LTEuMS1hbHBoYTAtamF2YWRvYy5qYXIuc2hhMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kOTFlYThlCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvYmFzZUxpYnJhcnkvMS4xLWFscGhhMC9iYXNlTGlicmFyeS0xLjEtYWxwaGEwLWphdmFkb2MuamFyLnNoYTEKQEAgLTAsMCArMSBAQAorN2EyNGJlNzRhNTRmMGJhYTU0OWEzNWM4MmZiMmNjMmNmMTEwMWMwOApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2Jhc2VMaWJyYXJ5LzEuMS1hbHBoYTAvYmFzZUxpYnJhcnktMS4xLWFscGhhMC1zb3VyY2VzLmphciBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2Jhc2VMaWJyYXJ5LzEuMS1hbHBoYTAvYmFzZUxpYnJhcnktMS4xLWFscGhhMC1zb3VyY2VzLmphcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YzQ1MWFhCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvYmFzZUxpYnJhcnkvMS4xLWFscGhhMC9iYXNlTGlicmFyeS0xLjEtYWxwaGEwLXNvdXJjZXMuamFyCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2Jhc2VMaWJyYXJ5LzEuMS1hbHBoYTAvYmFzZUxpYnJhcnktMS4xLWFscGhhMC1zb3VyY2VzLmphci5tZDUgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9iYXNlTGlicmFyeS8xLjEtYWxwaGEwL2Jhc2VMaWJyYXJ5LTEuMS1hbHBoYTAtc291cmNlcy5qYXIubWQ1Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFjMGQ4MzQKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9iYXNlTGlicmFyeS8xLjEtYWxwaGEwL2Jhc2VMaWJyYXJ5LTEuMS1hbHBoYTAtc291cmNlcy5qYXIubWQ1CkBAIC0wLDAgKzEgQEAKK2E3YzI1OTY0YTg0MTY1MGQ2OTVlZTUxNjRjNmUwOTRkClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvYmFzZUxpYnJhcnkvMS4xLWFscGhhMC9iYXNlTGlicmFyeS0xLjEtYWxwaGEwLXNvdXJjZXMuamFyLnNoYTEgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9iYXNlTGlicmFyeS8xLjEtYWxwaGEwL2Jhc2VMaWJyYXJ5LTEuMS1hbHBoYTAtc291cmNlcy5qYXIuc2hhMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZGUzYmM4Ci0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvYmFzZUxpYnJhcnkvMS4xLWFscGhhMC9iYXNlTGlicmFyeS0xLjEtYWxwaGEwLXNvdXJjZXMuamFyLnNoYTEKQEAgLTAsMCArMSBAQAorMTJhNGM4OGY1MjUyNmZkMmU2ZmI0YmZkN2M4ODRlZGY0YTBlNjYzYgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2Jhc2VMaWJyYXJ5LzEuMS1hbHBoYTAvYmFzZUxpYnJhcnktMS4xLWFscGhhMC5qYXIgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9iYXNlTGlicmFyeS8xLjEtYWxwaGEwL2Jhc2VMaWJyYXJ5LTEuMS1hbHBoYTAuamFyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdiM2VjMWQKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9iYXNlTGlicmFyeS8xLjEtYWxwaGEwL2Jhc2VMaWJyYXJ5LTEuMS1hbHBoYTAuamFyCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2Jhc2VMaWJyYXJ5LzEuMS1hbHBoYTAvYmFzZUxpYnJhcnktMS4xLWFscGhhMC5qYXIubWQ1IGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvYmFzZUxpYnJhcnkvMS4xLWFscGhhMC9iYXNlTGlicmFyeS0xLjEtYWxwaGEwLmphci5tZDUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODMzNzcyZQotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2Jhc2VMaWJyYXJ5LzEuMS1hbHBoYTAvYmFzZUxpYnJhcnktMS4xLWFscGhhMC5qYXIubWQ1CkBAIC0wLDAgKzEgQEAKK2JhZmUwMzdhNDA0YzUyNDdlZjBjYzhkMGFhNTY2YjgyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvYmFzZUxpYnJhcnkvMS4xLWFscGhhMC9iYXNlTGlicmFyeS0xLjEtYWxwaGEwLmphci5zaGExIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvYmFzZUxpYnJhcnkvMS4xLWFscGhhMC9iYXNlTGlicmFyeS0xLjEtYWxwaGEwLmphci5zaGExCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ1NWM0NTgKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9iYXNlTGlicmFyeS8xLjEtYWxwaGEwL2Jhc2VMaWJyYXJ5LTEuMS1hbHBoYTAuamFyLnNoYTEKQEAgLTAsMCArMSBAQAorYTVjZTNlOGRmODQxOGY4NmM3N2NmMWJiZWY5ZDg2OGVlOWRmMWUyZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2Jhc2VMaWJyYXJ5LzEuMS1hbHBoYTAvYmFzZUxpYnJhcnktMS4xLWFscGhhMC5wb20gYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9iYXNlTGlicmFyeS8xLjEtYWxwaGEwL2Jhc2VMaWJyYXJ5LTEuMS1hbHBoYTAucG9tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA4YmQ2NWEKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9iYXNlTGlicmFyeS8xLjEtYWxwaGEwL2Jhc2VMaWJyYXJ5LTEuMS1hbHBoYTAucG9tCkBAIC0wLDAgKzEsMjMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cHJvamVjdCB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCBodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy94c2QvbWF2ZW4tNC4wLjAueHNkIiB4bWxucz0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIgorICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiPgorICA8bW9kZWxWZXJzaW9uPjQuMC4wPC9tb2RlbFZlcnNpb24+CisgIDxncm91cElkPmNvbS5hbmRyb2lkLmRhdGFiaW5kaW5nPC9ncm91cElkPgorICA8YXJ0aWZhY3RJZD5iYXNlTGlicmFyeTwvYXJ0aWZhY3RJZD4KKyAgPHZlcnNpb24+MS4xLWFscGhhMDwvdmVyc2lvbj4KKyAgPGxpY2Vuc2VzPgorICAgIDxsaWNlbnNlPgorICAgICAgPG5hbWU+VGhlIEFwYWNoZSBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDIuMDwvbmFtZT4KKyAgICAgIDx1cmw+aHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLnR4dDwvdXJsPgorICAgICAgPGRpc3RyaWJ1dGlvbj5yZXBvPC9kaXN0cmlidXRpb24+CisgICAgPC9saWNlbnNlPgorICA8L2xpY2Vuc2VzPgorICA8ZGVwZW5kZW5jaWVzPgorICAgIDxkZXBlbmRlbmN5PgorICAgICAgPGdyb3VwSWQ+anVuaXQ8L2dyb3VwSWQ+CisgICAgICA8YXJ0aWZhY3RJZD5qdW5pdDwvYXJ0aWZhY3RJZD4KKyAgICAgIDx2ZXJzaW9uPjQuMTI8L3ZlcnNpb24+CisgICAgICA8c2NvcGU+dGVzdDwvc2NvcGU+CisgICAgPC9kZXBlbmRlbmN5PgorICA8L2RlcGVuZGVuY2llcz4KKzwvcHJvamVjdD4KZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2Jhc2VMaWJyYXJ5LzEuMS1hbHBoYTAvYmFzZUxpYnJhcnktMS4xLWFscGhhMC5wb20ubWQ1IGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvYmFzZUxpYnJhcnkvMS4xLWFscGhhMC9iYXNlTGlicmFyeS0xLjEtYWxwaGEwLnBvbS5tZDUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzhjNWEwZAotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2Jhc2VMaWJyYXJ5LzEuMS1hbHBoYTAvYmFzZUxpYnJhcnktMS4xLWFscGhhMC5wb20ubWQ1CkBAIC0wLDAgKzEgQEAKKzAzYmZmYzYxZjRkYjdkYTJlNjE1NjBlNTViODcxZTUzClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvYmFzZUxpYnJhcnkvMS4xLWFscGhhMC9iYXNlTGlicmFyeS0xLjEtYWxwaGEwLnBvbS5zaGExIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvYmFzZUxpYnJhcnkvMS4xLWFscGhhMC9iYXNlTGlicmFyeS0xLjEtYWxwaGEwLnBvbS5zaGExCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjViNGE1NTkKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9iYXNlTGlicmFyeS8xLjEtYWxwaGEwL2Jhc2VMaWJyYXJ5LTEuMS1hbHBoYTAucG9tLnNoYTEKQEAgLTAsMCArMSBAQAorMmMwOWE1MTU0MmZkMzYxN2ExOTFkYTA5ZDI3M2Y1YzFiYmFhYjBlMgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2Jhc2VMaWJyYXJ5L21hdmVuLW1ldGFkYXRhLnhtbCBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2Jhc2VMaWJyYXJ5L21hdmVuLW1ldGFkYXRhLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41N2JhZTk1Ci0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvYmFzZUxpYnJhcnkvbWF2ZW4tbWV0YWRhdGEueG1sCkBAIC0wLDAgKzEsMTIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8bWV0YWRhdGE+CisgIDxncm91cElkPmNvbS5hbmRyb2lkLmRhdGFiaW5kaW5nPC9ncm91cElkPgorICA8YXJ0aWZhY3RJZD5iYXNlTGlicmFyeTwvYXJ0aWZhY3RJZD4KKyAgPHZlcnNpb24+MS4xLWFscGhhMDwvdmVyc2lvbj4KKyAgPHZlcnNpb25pbmc+CisgICAgPHZlcnNpb25zPgorICAgICAgPHZlcnNpb24+MS4xLWFscGhhMDwvdmVyc2lvbj4KKyAgICA8L3ZlcnNpb25zPgorICAgIDxsYXN0VXBkYXRlZD4yMDE1MDcyMjIxMzMzODwvbGFzdFVwZGF0ZWQ+CisgIDwvdmVyc2lvbmluZz4KKzwvbWV0YWRhdGE+CmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9iYXNlTGlicmFyeS9tYXZlbi1tZXRhZGF0YS54bWwubWQ1IGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvYmFzZUxpYnJhcnkvbWF2ZW4tbWV0YWRhdGEueG1sLm1kNQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNTBiZTU5Ci0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvYmFzZUxpYnJhcnkvbWF2ZW4tbWV0YWRhdGEueG1sLm1kNQpAQCAtMCwwICsxIEBACis4ZGMwMTI5N2M5MWU1MGU4ZmNmOTg2NWExYzA3YjJjZApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2Jhc2VMaWJyYXJ5L21hdmVuLW1ldGFkYXRhLnhtbC5zaGExIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvYmFzZUxpYnJhcnkvbWF2ZW4tbWV0YWRhdGEueG1sLnNoYTEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTQzYTBlZQotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2Jhc2VMaWJyYXJ5L21hdmVuLW1ldGFkYXRhLnhtbC5zaGExCkBAIC0wLDAgKzEgQEAKKzNlMzE5YjAzYmJiYWIzYTI1OGEyN2I4MmQyMTQ2ZWExZmRlNTA5ZDIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9jb21waWxlci8xLjEtYWxwaGEwL2NvbXBpbGVyLTEuMS1hbHBoYTAuamFyIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvY29tcGlsZXIvMS4xLWFscGhhMC9jb21waWxlci0xLjEtYWxwaGEwLmphcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMmM4MzJkCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvY29tcGlsZXIvMS4xLWFscGhhMC9jb21waWxlci0xLjEtYWxwaGEwLmphcgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9jb21waWxlci8xLjEtYWxwaGEwL2NvbXBpbGVyLTEuMS1hbHBoYTAuamFyLm1kNSBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2NvbXBpbGVyLzEuMS1hbHBoYTAvY29tcGlsZXItMS4xLWFscGhhMC5qYXIubWQ1Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc5MzAyNTAKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9jb21waWxlci8xLjEtYWxwaGEwL2NvbXBpbGVyLTEuMS1hbHBoYTAuamFyLm1kNQpAQCAtMCwwICsxIEBACisxYWM0Y2VhOWY5MGEzNjhiZDVlZjgxYTNmZmQ2Yzg1ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2NvbXBpbGVyLzEuMS1hbHBoYTAvY29tcGlsZXItMS4xLWFscGhhMC5qYXIuc2hhMSBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2NvbXBpbGVyLzEuMS1hbHBoYTAvY29tcGlsZXItMS4xLWFscGhhMC5qYXIuc2hhMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMDNmY2VkCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvY29tcGlsZXIvMS4xLWFscGhhMC9jb21waWxlci0xLjEtYWxwaGEwLmphci5zaGExCkBAIC0wLDAgKzEgQEAKK2NlYTYwOTUxNThmMDU2ZWJmNTViOTIzMGFjODY0MmFlZDBhOWM4YjgKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9jb21waWxlci8xLjEtYWxwaGEwL2NvbXBpbGVyLTEuMS1hbHBoYTAucG9tIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvY29tcGlsZXIvMS4xLWFscGhhMC9jb21waWxlci0xLjEtYWxwaGEwLnBvbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYTczYjZmCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvY29tcGlsZXIvMS4xLWFscGhhMC9jb21waWxlci0xLjEtYWxwaGEwLnBvbQpAQCAtMCwwICsxLDY1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHByb2plY3QgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAgaHR0cDovL21hdmVuLmFwYWNoZS5vcmcveHNkL21hdmVuLTQuMC4wLnhzZCIgeG1sbnM9Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCIKKyAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIj4KKyAgPG1vZGVsVmVyc2lvbj40LjAuMDwvbW9kZWxWZXJzaW9uPgorICA8Z3JvdXBJZD5jb20uYW5kcm9pZC5kYXRhYmluZGluZzwvZ3JvdXBJZD4KKyAgPGFydGlmYWN0SWQ+Y29tcGlsZXI8L2FydGlmYWN0SWQ+CisgIDx2ZXJzaW9uPjEuMS1hbHBoYTA8L3ZlcnNpb24+CisgIDxsaWNlbnNlcz4KKyAgICA8bGljZW5zZT4KKyAgICAgIDxuYW1lPlRoZSBBcGFjaGUgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAyLjA8L25hbWU+CisgICAgICA8dXJsPmh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC50eHQ8L3VybD4KKyAgICAgIDxkaXN0cmlidXRpb24+cmVwbzwvZGlzdHJpYnV0aW9uPgorICAgIDwvbGljZW5zZT4KKyAgPC9saWNlbnNlcz4KKyAgPGRlcGVuZGVuY2llcz4KKyAgICA8ZGVwZW5kZW5jeT4KKyAgICAgIDxncm91cElkPmNvbS5hbmRyb2lkLmRhdGFiaW5kaW5nPC9ncm91cElkPgorICAgICAgPGFydGlmYWN0SWQ+YmFzZUxpYnJhcnk8L2FydGlmYWN0SWQ+CisgICAgICA8dmVyc2lvbj4xLjEtYWxwaGEwPC92ZXJzaW9uPgorICAgICAgPHNjb3BlPmNvbXBpbGU8L3Njb3BlPgorICAgIDwvZGVwZW5kZW5jeT4KKyAgICA8ZGVwZW5kZW5jeT4KKyAgICAgIDxncm91cElkPm9yZy5hcGFjaGUuY29tbW9uczwvZ3JvdXBJZD4KKyAgICAgIDxhcnRpZmFjdElkPmNvbW1vbnMtbGFuZzM8L2FydGlmYWN0SWQ+CisgICAgICA8dmVyc2lvbj4zLjMuMjwvdmVyc2lvbj4KKyAgICAgIDxzY29wZT5jb21waWxlPC9zY29wZT4KKyAgICA8L2RlcGVuZGVuY3k+CisgICAgPGRlcGVuZGVuY3k+CisgICAgICA8Z3JvdXBJZD5jb20uYW5kcm9pZC5kYXRhYmluZGluZzwvZ3JvdXBJZD4KKyAgICAgIDxhcnRpZmFjdElkPmNvbXBpbGVyQ29tbW9uPC9hcnRpZmFjdElkPgorICAgICAgPHZlcnNpb24+MS4xLWFscGhhMDwvdmVyc2lvbj4KKyAgICAgIDxzY29wZT5jb21waWxlPC9zY29wZT4KKyAgICA8L2RlcGVuZGVuY3k+CisgICAgPGRlcGVuZGVuY3k+CisgICAgICA8Z3JvdXBJZD5jb21tb25zLWNvZGVjPC9ncm91cElkPgorICAgICAgPGFydGlmYWN0SWQ+Y29tbW9ucy1jb2RlYzwvYXJ0aWZhY3RJZD4KKyAgICAgIDx2ZXJzaW9uPjEuMTA8L3ZlcnNpb24+CisgICAgICA8c2NvcGU+Y29tcGlsZTwvc2NvcGU+CisgICAgPC9kZXBlbmRlbmN5PgorICAgIDxkZXBlbmRlbmN5PgorICAgICAgPGdyb3VwSWQ+b3JnLmpldGJyYWlucy5rb3RsaW48L2dyb3VwSWQ+CisgICAgICA8YXJ0aWZhY3RJZD5rb3RsaW4tc3RkbGliPC9hcnRpZmFjdElkPgorICAgICAgPHZlcnNpb24+MC4xMi42MTM8L3ZlcnNpb24+CisgICAgICA8c2NvcGU+Y29tcGlsZTwvc2NvcGU+CisgICAgPC9kZXBlbmRlbmN5PgorICAgIDxkZXBlbmRlbmN5PgorICAgICAgPGdyb3VwSWQ+anVuaXQ8L2dyb3VwSWQ+CisgICAgICA8YXJ0aWZhY3RJZD5qdW5pdDwvYXJ0aWZhY3RJZD4KKyAgICAgIDx2ZXJzaW9uPjQuMTI8L3ZlcnNpb24+CisgICAgICA8c2NvcGU+dGVzdDwvc2NvcGU+CisgICAgPC9kZXBlbmRlbmN5PgorICAgIDxkZXBlbmRlbmN5PgorICAgICAgPGdyb3VwSWQ+Y29tLnR1bm5lbHZpc2lvbmxhYnM8L2dyb3VwSWQ+CisgICAgICA8YXJ0aWZhY3RJZD5hbnRscjQ8L2FydGlmYWN0SWQ+CisgICAgICA8dmVyc2lvbj40LjU8L3ZlcnNpb24+CisgICAgICA8c2NvcGU+Y29tcGlsZTwvc2NvcGU+CisgICAgPC9kZXBlbmRlbmN5PgorICAgIDxkZXBlbmRlbmN5PgorICAgICAgPGdyb3VwSWQ+Y29tbW9ucy1pbzwvZ3JvdXBJZD4KKyAgICAgIDxhcnRpZmFjdElkPmNvbW1vbnMtaW88L2FydGlmYWN0SWQ+CisgICAgICA8dmVyc2lvbj4yLjQ8L3ZlcnNpb24+CisgICAgICA8c2NvcGU+Y29tcGlsZTwvc2NvcGU+CisgICAgPC9kZXBlbmRlbmN5PgorICA8L2RlcGVuZGVuY2llcz4KKzwvcHJvamVjdD4KZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2NvbXBpbGVyLzEuMS1hbHBoYTAvY29tcGlsZXItMS4xLWFscGhhMC5wb20ubWQ1IGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvY29tcGlsZXIvMS4xLWFscGhhMC9jb21waWxlci0xLjEtYWxwaGEwLnBvbS5tZDUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2ViZjg2YQotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2NvbXBpbGVyLzEuMS1hbHBoYTAvY29tcGlsZXItMS4xLWFscGhhMC5wb20ubWQ1CkBAIC0wLDAgKzEgQEAKKzI4MmM3NDc2ZTE1OTY0YTg4NTI1YjJmZWRmMmExZDQ4ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvY29tcGlsZXIvMS4xLWFscGhhMC9jb21waWxlci0xLjEtYWxwaGEwLnBvbS5zaGExIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvY29tcGlsZXIvMS4xLWFscGhhMC9jb21waWxlci0xLjEtYWxwaGEwLnBvbS5zaGExCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU3ZDBjNjAKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9jb21waWxlci8xLjEtYWxwaGEwL2NvbXBpbGVyLTEuMS1hbHBoYTAucG9tLnNoYTEKQEAgLTAsMCArMSBAQAorMDI2YzE2M2Q5NWU4NGVmMWI4ZjBiOGYxMDNkMjVmMjA1NjBiNzIzZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2NvbXBpbGVyL21hdmVuLW1ldGFkYXRhLnhtbCBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2NvbXBpbGVyL21hdmVuLW1ldGFkYXRhLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOTMzNzJiCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvY29tcGlsZXIvbWF2ZW4tbWV0YWRhdGEueG1sCkBAIC0wLDAgKzEsMTIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8bWV0YWRhdGE+CisgIDxncm91cElkPmNvbS5hbmRyb2lkLmRhdGFiaW5kaW5nPC9ncm91cElkPgorICA8YXJ0aWZhY3RJZD5jb21waWxlcjwvYXJ0aWZhY3RJZD4KKyAgPHZlcnNpb24+MS4xLWFscGhhMDwvdmVyc2lvbj4KKyAgPHZlcnNpb25pbmc+CisgICAgPHZlcnNpb25zPgorICAgICAgPHZlcnNpb24+MS4xLWFscGhhMDwvdmVyc2lvbj4KKyAgICA8L3ZlcnNpb25zPgorICAgIDxsYXN0VXBkYXRlZD4yMDE1MDcyMjIxMzM1MDwvbGFzdFVwZGF0ZWQ+CisgIDwvdmVyc2lvbmluZz4KKzwvbWV0YWRhdGE+CmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9jb21waWxlci9tYXZlbi1tZXRhZGF0YS54bWwubWQ1IGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvY29tcGlsZXIvbWF2ZW4tbWV0YWRhdGEueG1sLm1kNQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YzM5OGFmCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvY29tcGlsZXIvbWF2ZW4tbWV0YWRhdGEueG1sLm1kNQpAQCAtMCwwICsxIEBACithYTZiODk0ZDVmYmM0ZDdhOWJiMzIxMGM2NzJlMTY4YQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2NvbXBpbGVyL21hdmVuLW1ldGFkYXRhLnhtbC5zaGExIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvY29tcGlsZXIvbWF2ZW4tbWV0YWRhdGEueG1sLnNoYTEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzYyZmY4YgotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2NvbXBpbGVyL21hdmVuLW1ldGFkYXRhLnhtbC5zaGExCkBAIC0wLDAgKzEgQEAKKzBiMWZlNDU2MGM2ZmZhYzVjMWJkNWYzMmMwZmVhOWUzZWJjNTliYjkKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9jb21waWxlckNvbW1vbi8xLjEtYWxwaGEwL05PVElDRSBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2NvbXBpbGVyQ29tbW9uLzEuMS1hbHBoYTAvTk9USUNFCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ2NDU2OTUKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9jb21waWxlckNvbW1vbi8xLjEtYWxwaGEwL05PVElDRQpAQCAtMCwwICsxLDIwMiBAQAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcGFjaGUgTGljZW5zZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVyc2lvbiAyLjAsIEphbnVhcnkgMjAwNAorICAgICAgICAgICAgICAgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzLworCisgICBURVJNUyBBTkQgQ09ORElUSU9OUyBGT1IgVVNFLCBSRVBST0RVQ1RJT04sIEFORCBESVNUUklCVVRJT04KKworICAgMS4gRGVmaW5pdGlvbnMuCisKKyAgICAgICJMaWNlbnNlIiBzaGFsbCBtZWFuIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBmb3IgdXNlLCByZXByb2R1Y3Rpb24sCisgICAgICBhbmQgZGlzdHJpYnV0aW9uIGFzIGRlZmluZWQgYnkgU2VjdGlvbnMgMSB0aHJvdWdoIDkgb2YgdGhpcyBkb2N1bWVudC4KKworICAgICAgIkxpY2Vuc29yIiBzaGFsbCBtZWFuIHRoZSBjb3B5cmlnaHQgb3duZXIgb3IgZW50aXR5IGF1dGhvcml6ZWQgYnkKKyAgICAgIHRoZSBjb3B5cmlnaHQgb3duZXIgdGhhdCBpcyBncmFudGluZyB0aGUgTGljZW5zZS4KKworICAgICAgIkxlZ2FsIEVudGl0eSIgc2hhbGwgbWVhbiB0aGUgdW5pb24gb2YgdGhlIGFjdGluZyBlbnRpdHkgYW5kIGFsbAorICAgICAgb3RoZXIgZW50aXRpZXMgdGhhdCBjb250cm9sLCBhcmUgY29udHJvbGxlZCBieSwgb3IgYXJlIHVuZGVyIGNvbW1vbgorICAgICAgY29udHJvbCB3aXRoIHRoYXQgZW50aXR5LiBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwKKyAgICAgICJjb250cm9sIiBtZWFucyAoaSkgdGhlIHBvd2VyLCBkaXJlY3Qgb3IgaW5kaXJlY3QsIHRvIGNhdXNlIHRoZQorICAgICAgZGlyZWN0aW9uIG9yIG1hbmFnZW1lbnQgb2Ygc3VjaCBlbnRpdHksIHdoZXRoZXIgYnkgY29udHJhY3Qgb3IKKyAgICAgIG90aGVyd2lzZSwgb3IgKGlpKSBvd25lcnNoaXAgb2YgZmlmdHkgcGVyY2VudCAoNTAlKSBvciBtb3JlIG9mIHRoZQorICAgICAgb3V0c3RhbmRpbmcgc2hhcmVzLCBvciAoaWlpKSBiZW5lZmljaWFsIG93bmVyc2hpcCBvZiBzdWNoIGVudGl0eS4KKworICAgICAgIllvdSIgKG9yICJZb3VyIikgc2hhbGwgbWVhbiBhbiBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eQorICAgICAgZXhlcmNpc2luZyBwZXJtaXNzaW9ucyBncmFudGVkIGJ5IHRoaXMgTGljZW5zZS4KKworICAgICAgIlNvdXJjZSIgZm9ybSBzaGFsbCBtZWFuIHRoZSBwcmVmZXJyZWQgZm9ybSBmb3IgbWFraW5nIG1vZGlmaWNhdGlvbnMsCisgICAgICBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIHNvZnR3YXJlIHNvdXJjZSBjb2RlLCBkb2N1bWVudGF0aW9uCisgICAgICBzb3VyY2UsIGFuZCBjb25maWd1cmF0aW9uIGZpbGVzLgorCisgICAgICAiT2JqZWN0IiBmb3JtIHNoYWxsIG1lYW4gYW55IGZvcm0gcmVzdWx0aW5nIGZyb20gbWVjaGFuaWNhbAorICAgICAgdHJhbnNmb3JtYXRpb24gb3IgdHJhbnNsYXRpb24gb2YgYSBTb3VyY2UgZm9ybSwgaW5jbHVkaW5nIGJ1dAorICAgICAgbm90IGxpbWl0ZWQgdG8gY29tcGlsZWQgb2JqZWN0IGNvZGUsIGdlbmVyYXRlZCBkb2N1bWVudGF0aW9uLAorICAgICAgYW5kIGNvbnZlcnNpb25zIHRvIG90aGVyIG1lZGlhIHR5cGVzLgorCisgICAgICAiV29yayIgc2hhbGwgbWVhbiB0aGUgd29yayBvZiBhdXRob3JzaGlwLCB3aGV0aGVyIGluIFNvdXJjZSBvcgorICAgICAgT2JqZWN0IGZvcm0sIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSBMaWNlbnNlLCBhcyBpbmRpY2F0ZWQgYnkgYQorICAgICAgY29weXJpZ2h0IG5vdGljZSB0aGF0IGlzIGluY2x1ZGVkIGluIG9yIGF0dGFjaGVkIHRvIHRoZSB3b3JrCisgICAgICAoYW4gZXhhbXBsZSBpcyBwcm92aWRlZCBpbiB0aGUgQXBwZW5kaXggYmVsb3cpLgorCisgICAgICAiRGVyaXZhdGl2ZSBXb3JrcyIgc2hhbGwgbWVhbiBhbnkgd29yaywgd2hldGhlciBpbiBTb3VyY2Ugb3IgT2JqZWN0CisgICAgICBmb3JtLCB0aGF0IGlzIGJhc2VkIG9uIChvciBkZXJpdmVkIGZyb20pIHRoZSBXb3JrIGFuZCBmb3Igd2hpY2ggdGhlCisgICAgICBlZGl0b3JpYWwgcmV2aXNpb25zLCBhbm5vdGF0aW9ucywgZWxhYm9yYXRpb25zLCBvciBvdGhlciBtb2RpZmljYXRpb25zCisgICAgICByZXByZXNlbnQsIGFzIGEgd2hvbGUsIGFuIG9yaWdpbmFsIHdvcmsgb2YgYXV0aG9yc2hpcC4gRm9yIHRoZSBwdXJwb3NlcworICAgICAgb2YgdGhpcyBMaWNlbnNlLCBEZXJpdmF0aXZlIFdvcmtzIHNoYWxsIG5vdCBpbmNsdWRlIHdvcmtzIHRoYXQgcmVtYWluCisgICAgICBzZXBhcmFibGUgZnJvbSwgb3IgbWVyZWx5IGxpbmsgKG9yIGJpbmQgYnkgbmFtZSkgdG8gdGhlIGludGVyZmFjZXMgb2YsCisgICAgICB0aGUgV29yayBhbmQgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mLgorCisgICAgICAiQ29udHJpYnV0aW9uIiBzaGFsbCBtZWFuIGFueSB3b3JrIG9mIGF1dGhvcnNoaXAsIGluY2x1ZGluZworICAgICAgdGhlIG9yaWdpbmFsIHZlcnNpb24gb2YgdGhlIFdvcmsgYW5kIGFueSBtb2RpZmljYXRpb25zIG9yIGFkZGl0aW9ucworICAgICAgdG8gdGhhdCBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiwgdGhhdCBpcyBpbnRlbnRpb25hbGx5CisgICAgICBzdWJtaXR0ZWQgdG8gTGljZW5zb3IgZm9yIGluY2x1c2lvbiBpbiB0aGUgV29yayBieSB0aGUgY29weXJpZ2h0IG93bmVyCisgICAgICBvciBieSBhbiBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eSBhdXRob3JpemVkIHRvIHN1Ym1pdCBvbiBiZWhhbGYgb2YKKyAgICAgIHRoZSBjb3B5cmlnaHQgb3duZXIuIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBkZWZpbml0aW9uLCAic3VibWl0dGVkIgorICAgICAgbWVhbnMgYW55IGZvcm0gb2YgZWxlY3Ryb25pYywgdmVyYmFsLCBvciB3cml0dGVuIGNvbW11bmljYXRpb24gc2VudAorICAgICAgdG8gdGhlIExpY2Vuc29yIG9yIGl0cyByZXByZXNlbnRhdGl2ZXMsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8KKyAgICAgIGNvbW11bmljYXRpb24gb24gZWxlY3Ryb25pYyBtYWlsaW5nIGxpc3RzLCBzb3VyY2UgY29kZSBjb250cm9sIHN5c3RlbXMsCisgICAgICBhbmQgaXNzdWUgdHJhY2tpbmcgc3lzdGVtcyB0aGF0IGFyZSBtYW5hZ2VkIGJ5LCBvciBvbiBiZWhhbGYgb2YsIHRoZQorICAgICAgTGljZW5zb3IgZm9yIHRoZSBwdXJwb3NlIG9mIGRpc2N1c3NpbmcgYW5kIGltcHJvdmluZyB0aGUgV29yaywgYnV0CisgICAgICBleGNsdWRpbmcgY29tbXVuaWNhdGlvbiB0aGF0IGlzIGNvbnNwaWN1b3VzbHkgbWFya2VkIG9yIG90aGVyd2lzZQorICAgICAgZGVzaWduYXRlZCBpbiB3cml0aW5nIGJ5IHRoZSBjb3B5cmlnaHQgb3duZXIgYXMgIk5vdCBhIENvbnRyaWJ1dGlvbi4iCisKKyAgICAgICJDb250cmlidXRvciIgc2hhbGwgbWVhbiBMaWNlbnNvciBhbmQgYW55IGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5CisgICAgICBvbiBiZWhhbGYgb2Ygd2hvbSBhIENvbnRyaWJ1dGlvbiBoYXMgYmVlbiByZWNlaXZlZCBieSBMaWNlbnNvciBhbmQKKyAgICAgIHN1YnNlcXVlbnRseSBpbmNvcnBvcmF0ZWQgd2l0aGluIHRoZSBXb3JrLgorCisgICAyLiBHcmFudCBvZiBDb3B5cmlnaHQgTGljZW5zZS4gU3ViamVjdCB0byB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YKKyAgICAgIHRoaXMgTGljZW5zZSwgZWFjaCBDb250cmlidXRvciBoZXJlYnkgZ3JhbnRzIHRvIFlvdSBhIHBlcnBldHVhbCwKKyAgICAgIHdvcmxkd2lkZSwgbm9uLWV4Y2x1c2l2ZSwgbm8tY2hhcmdlLCByb3lhbHR5LWZyZWUsIGlycmV2b2NhYmxlCisgICAgICBjb3B5cmlnaHQgbGljZW5zZSB0byByZXByb2R1Y2UsIHByZXBhcmUgRGVyaXZhdGl2ZSBXb3JrcyBvZiwKKyAgICAgIHB1YmxpY2x5IGRpc3BsYXksIHB1YmxpY2x5IHBlcmZvcm0sIHN1YmxpY2Vuc2UsIGFuZCBkaXN0cmlidXRlIHRoZQorICAgICAgV29yayBhbmQgc3VjaCBEZXJpdmF0aXZlIFdvcmtzIGluIFNvdXJjZSBvciBPYmplY3QgZm9ybS4KKworICAgMy4gR3JhbnQgb2YgUGF0ZW50IExpY2Vuc2UuIFN1YmplY3QgdG8gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mCisgICAgICB0aGlzIExpY2Vuc2UsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cyB0byBZb3UgYSBwZXJwZXR1YWwsCisgICAgICB3b3JsZHdpZGUsIG5vbi1leGNsdXNpdmUsIG5vLWNoYXJnZSwgcm95YWx0eS1mcmVlLCBpcnJldm9jYWJsZQorICAgICAgKGV4Y2VwdCBhcyBzdGF0ZWQgaW4gdGhpcyBzZWN0aW9uKSBwYXRlbnQgbGljZW5zZSB0byBtYWtlLCBoYXZlIG1hZGUsCisgICAgICB1c2UsIG9mZmVyIHRvIHNlbGwsIHNlbGwsIGltcG9ydCwgYW5kIG90aGVyd2lzZSB0cmFuc2ZlciB0aGUgV29yaywKKyAgICAgIHdoZXJlIHN1Y2ggbGljZW5zZSBhcHBsaWVzIG9ubHkgdG8gdGhvc2UgcGF0ZW50IGNsYWltcyBsaWNlbnNhYmxlCisgICAgICBieSBzdWNoIENvbnRyaWJ1dG9yIHRoYXQgYXJlIG5lY2Vzc2FyaWx5IGluZnJpbmdlZCBieSB0aGVpcgorICAgICAgQ29udHJpYnV0aW9uKHMpIGFsb25lIG9yIGJ5IGNvbWJpbmF0aW9uIG9mIHRoZWlyIENvbnRyaWJ1dGlvbihzKQorICAgICAgd2l0aCB0aGUgV29yayB0byB3aGljaCBzdWNoIENvbnRyaWJ1dGlvbihzKSB3YXMgc3VibWl0dGVkLiBJZiBZb3UKKyAgICAgIGluc3RpdHV0ZSBwYXRlbnQgbGl0aWdhdGlvbiBhZ2FpbnN0IGFueSBlbnRpdHkgKGluY2x1ZGluZyBhCisgICAgICBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYSBsYXdzdWl0KSBhbGxlZ2luZyB0aGF0IHRoZSBXb3JrCisgICAgICBvciBhIENvbnRyaWJ1dGlvbiBpbmNvcnBvcmF0ZWQgd2l0aGluIHRoZSBXb3JrIGNvbnN0aXR1dGVzIGRpcmVjdAorICAgICAgb3IgY29udHJpYnV0b3J5IHBhdGVudCBpbmZyaW5nZW1lbnQsIHRoZW4gYW55IHBhdGVudCBsaWNlbnNlcworICAgICAgZ3JhbnRlZCB0byBZb3UgdW5kZXIgdGhpcyBMaWNlbnNlIGZvciB0aGF0IFdvcmsgc2hhbGwgdGVybWluYXRlCisgICAgICBhcyBvZiB0aGUgZGF0ZSBzdWNoIGxpdGlnYXRpb24gaXMgZmlsZWQuCisKKyAgIDQuIFJlZGlzdHJpYnV0aW9uLiBZb3UgbWF5IHJlcHJvZHVjZSBhbmQgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhlCisgICAgICBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiBpbiBhbnkgbWVkaXVtLCB3aXRoIG9yIHdpdGhvdXQKKyAgICAgIG1vZGlmaWNhdGlvbnMsIGFuZCBpbiBTb3VyY2Ugb3IgT2JqZWN0IGZvcm0sIHByb3ZpZGVkIHRoYXQgWW91CisgICAgICBtZWV0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKworICAgICAgKGEpIFlvdSBtdXN0IGdpdmUgYW55IG90aGVyIHJlY2lwaWVudHMgb2YgdGhlIFdvcmsgb3IKKyAgICAgICAgICBEZXJpdmF0aXZlIFdvcmtzIGEgY29weSBvZiB0aGlzIExpY2Vuc2U7IGFuZAorCisgICAgICAoYikgWW91IG11c3QgY2F1c2UgYW55IG1vZGlmaWVkIGZpbGVzIHRvIGNhcnJ5IHByb21pbmVudCBub3RpY2VzCisgICAgICAgICAgc3RhdGluZyB0aGF0IFlvdSBjaGFuZ2VkIHRoZSBmaWxlczsgYW5kCisKKyAgICAgIChjKSBZb3UgbXVzdCByZXRhaW4sIGluIHRoZSBTb3VyY2UgZm9ybSBvZiBhbnkgRGVyaXZhdGl2ZSBXb3JrcworICAgICAgICAgIHRoYXQgWW91IGRpc3RyaWJ1dGUsIGFsbCBjb3B5cmlnaHQsIHBhdGVudCwgdHJhZGVtYXJrLCBhbmQKKyAgICAgICAgICBhdHRyaWJ1dGlvbiBub3RpY2VzIGZyb20gdGhlIFNvdXJjZSBmb3JtIG9mIHRoZSBXb3JrLAorICAgICAgICAgIGV4Y2x1ZGluZyB0aG9zZSBub3RpY2VzIHRoYXQgZG8gbm90IHBlcnRhaW4gdG8gYW55IHBhcnQgb2YKKyAgICAgICAgICB0aGUgRGVyaXZhdGl2ZSBXb3JrczsgYW5kCisKKyAgICAgIChkKSBJZiB0aGUgV29yayBpbmNsdWRlcyBhICJOT1RJQ0UiIHRleHQgZmlsZSBhcyBwYXJ0IG9mIGl0cworICAgICAgICAgIGRpc3RyaWJ1dGlvbiwgdGhlbiBhbnkgRGVyaXZhdGl2ZSBXb3JrcyB0aGF0IFlvdSBkaXN0cmlidXRlIG11c3QKKyAgICAgICAgICBpbmNsdWRlIGEgcmVhZGFibGUgY29weSBvZiB0aGUgYXR0cmlidXRpb24gbm90aWNlcyBjb250YWluZWQKKyAgICAgICAgICB3aXRoaW4gc3VjaCBOT1RJQ0UgZmlsZSwgZXhjbHVkaW5nIHRob3NlIG5vdGljZXMgdGhhdCBkbyBub3QKKyAgICAgICAgICBwZXJ0YWluIHRvIGFueSBwYXJ0IG9mIHRoZSBEZXJpdmF0aXZlIFdvcmtzLCBpbiBhdCBsZWFzdCBvbmUKKyAgICAgICAgICBvZiB0aGUgZm9sbG93aW5nIHBsYWNlczogd2l0aGluIGEgTk9USUNFIHRleHQgZmlsZSBkaXN0cmlidXRlZAorICAgICAgICAgIGFzIHBhcnQgb2YgdGhlIERlcml2YXRpdmUgV29ya3M7IHdpdGhpbiB0aGUgU291cmNlIGZvcm0gb3IKKyAgICAgICAgICBkb2N1bWVudGF0aW9uLCBpZiBwcm92aWRlZCBhbG9uZyB3aXRoIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyBvciwKKyAgICAgICAgICB3aXRoaW4gYSBkaXNwbGF5IGdlbmVyYXRlZCBieSB0aGUgRGVyaXZhdGl2ZSBXb3JrcywgaWYgYW5kCisgICAgICAgICAgd2hlcmV2ZXIgc3VjaCB0aGlyZC1wYXJ0eSBub3RpY2VzIG5vcm1hbGx5IGFwcGVhci4gVGhlIGNvbnRlbnRzCisgICAgICAgICAgb2YgdGhlIE5PVElDRSBmaWxlIGFyZSBmb3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5IGFuZAorICAgICAgICAgIGRvIG5vdCBtb2RpZnkgdGhlIExpY2Vuc2UuIFlvdSBtYXkgYWRkIFlvdXIgb3duIGF0dHJpYnV0aW9uCisgICAgICAgICAgbm90aWNlcyB3aXRoaW4gRGVyaXZhdGl2ZSBXb3JrcyB0aGF0IFlvdSBkaXN0cmlidXRlLCBhbG9uZ3NpZGUKKyAgICAgICAgICBvciBhcyBhbiBhZGRlbmR1bSB0byB0aGUgTk9USUNFIHRleHQgZnJvbSB0aGUgV29yaywgcHJvdmlkZWQKKyAgICAgICAgICB0aGF0IHN1Y2ggYWRkaXRpb25hbCBhdHRyaWJ1dGlvbiBub3RpY2VzIGNhbm5vdCBiZSBjb25zdHJ1ZWQKKyAgICAgICAgICBhcyBtb2RpZnlpbmcgdGhlIExpY2Vuc2UuCisKKyAgICAgIFlvdSBtYXkgYWRkIFlvdXIgb3duIGNvcHlyaWdodCBzdGF0ZW1lbnQgdG8gWW91ciBtb2RpZmljYXRpb25zIGFuZAorICAgICAgbWF5IHByb3ZpZGUgYWRkaXRpb25hbCBvciBkaWZmZXJlbnQgbGljZW5zZSB0ZXJtcyBhbmQgY29uZGl0aW9ucworICAgICAgZm9yIHVzZSwgcmVwcm9kdWN0aW9uLCBvciBkaXN0cmlidXRpb24gb2YgWW91ciBtb2RpZmljYXRpb25zLCBvcgorICAgICAgZm9yIGFueSBzdWNoIERlcml2YXRpdmUgV29ya3MgYXMgYSB3aG9sZSwgcHJvdmlkZWQgWW91ciB1c2UsCisgICAgICByZXByb2R1Y3Rpb24sIGFuZCBkaXN0cmlidXRpb24gb2YgdGhlIFdvcmsgb3RoZXJ3aXNlIGNvbXBsaWVzIHdpdGgKKyAgICAgIHRoZSBjb25kaXRpb25zIHN0YXRlZCBpbiB0aGlzIExpY2Vuc2UuCisKKyAgIDUuIFN1Ym1pc3Npb24gb2YgQ29udHJpYnV0aW9ucy4gVW5sZXNzIFlvdSBleHBsaWNpdGx5IHN0YXRlIG90aGVyd2lzZSwKKyAgICAgIGFueSBDb250cmlidXRpb24gaW50ZW50aW9uYWxseSBzdWJtaXR0ZWQgZm9yIGluY2x1c2lvbiBpbiB0aGUgV29yaworICAgICAgYnkgWW91IHRvIHRoZSBMaWNlbnNvciBzaGFsbCBiZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YKKyAgICAgIHRoaXMgTGljZW5zZSwgd2l0aG91dCBhbnkgYWRkaXRpb25hbCB0ZXJtcyBvciBjb25kaXRpb25zLgorICAgICAgTm90d2l0aHN0YW5kaW5nIHRoZSBhYm92ZSwgbm90aGluZyBoZXJlaW4gc2hhbGwgc3VwZXJzZWRlIG9yIG1vZGlmeQorICAgICAgdGhlIHRlcm1zIG9mIGFueSBzZXBhcmF0ZSBsaWNlbnNlIGFncmVlbWVudCB5b3UgbWF5IGhhdmUgZXhlY3V0ZWQKKyAgICAgIHdpdGggTGljZW5zb3IgcmVnYXJkaW5nIHN1Y2ggQ29udHJpYnV0aW9ucy4KKworICAgNi4gVHJhZGVtYXJrcy4gVGhpcyBMaWNlbnNlIGRvZXMgbm90IGdyYW50IHBlcm1pc3Npb24gdG8gdXNlIHRoZSB0cmFkZQorICAgICAgbmFtZXMsIHRyYWRlbWFya3MsIHNlcnZpY2UgbWFya3MsIG9yIHByb2R1Y3QgbmFtZXMgb2YgdGhlIExpY2Vuc29yLAorICAgICAgZXhjZXB0IGFzIHJlcXVpcmVkIGZvciByZWFzb25hYmxlIGFuZCBjdXN0b21hcnkgdXNlIGluIGRlc2NyaWJpbmcgdGhlCisgICAgICBvcmlnaW4gb2YgdGhlIFdvcmsgYW5kIHJlcHJvZHVjaW5nIHRoZSBjb250ZW50IG9mIHRoZSBOT1RJQ0UgZmlsZS4KKworICAgNy4gRGlzY2xhaW1lciBvZiBXYXJyYW50eS4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yCisgICAgICBhZ3JlZWQgdG8gaW4gd3JpdGluZywgTGljZW5zb3IgcHJvdmlkZXMgdGhlIFdvcmsgKGFuZCBlYWNoCisgICAgICBDb250cmlidXRvciBwcm92aWRlcyBpdHMgQ29udHJpYnV0aW9ucykgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvcgorICAgICAgaW1wbGllZCwgaW5jbHVkaW5nLCB3aXRob3V0IGxpbWl0YXRpb24sIGFueSB3YXJyYW50aWVzIG9yIGNvbmRpdGlvbnMKKyAgICAgIG9mIFRJVExFLCBOT04tSU5GUklOR0VNRU5ULCBNRVJDSEFOVEFCSUxJVFksIG9yIEZJVE5FU1MgRk9SIEEKKyAgICAgIFBBUlRJQ1VMQVIgUFVSUE9TRS4gWW91IGFyZSBzb2xlbHkgcmVzcG9uc2libGUgZm9yIGRldGVybWluaW5nIHRoZQorICAgICAgYXBwcm9wcmlhdGVuZXNzIG9mIHVzaW5nIG9yIHJlZGlzdHJpYnV0aW5nIHRoZSBXb3JrIGFuZCBhc3N1bWUgYW55CisgICAgICByaXNrcyBhc3NvY2lhdGVkIHdpdGggWW91ciBleGVyY2lzZSBvZiBwZXJtaXNzaW9ucyB1bmRlciB0aGlzIExpY2Vuc2UuCisKKyAgIDguIExpbWl0YXRpb24gb2YgTGlhYmlsaXR5LiBJbiBubyBldmVudCBhbmQgdW5kZXIgbm8gbGVnYWwgdGhlb3J5LAorICAgICAgd2hldGhlciBpbiB0b3J0IChpbmNsdWRpbmcgbmVnbGlnZW5jZSksIGNvbnRyYWN0LCBvciBvdGhlcndpc2UsCisgICAgICB1bmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgKHN1Y2ggYXMgZGVsaWJlcmF0ZSBhbmQgZ3Jvc3NseQorICAgICAgbmVnbGlnZW50IGFjdHMpIG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzaGFsbCBhbnkgQ29udHJpYnV0b3IgYmUKKyAgICAgIGxpYWJsZSB0byBZb3UgZm9yIGRhbWFnZXMsIGluY2x1ZGluZyBhbnkgZGlyZWN0LCBpbmRpcmVjdCwgc3BlY2lhbCwKKyAgICAgIGluY2lkZW50YWwsIG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvZiBhbnkgY2hhcmFjdGVyIGFyaXNpbmcgYXMgYQorICAgICAgcmVzdWx0IG9mIHRoaXMgTGljZW5zZSBvciBvdXQgb2YgdGhlIHVzZSBvciBpbmFiaWxpdHkgdG8gdXNlIHRoZQorICAgICAgV29yayAoaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byBkYW1hZ2VzIGZvciBsb3NzIG9mIGdvb2R3aWxsLAorICAgICAgd29yayBzdG9wcGFnZSwgY29tcHV0ZXIgZmFpbHVyZSBvciBtYWxmdW5jdGlvbiwgb3IgYW55IGFuZCBhbGwKKyAgICAgIG90aGVyIGNvbW1lcmNpYWwgZGFtYWdlcyBvciBsb3NzZXMpLCBldmVuIGlmIHN1Y2ggQ29udHJpYnV0b3IKKyAgICAgIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHN1Y2ggZGFtYWdlcy4KKworICAgOS4gQWNjZXB0aW5nIFdhcnJhbnR5IG9yIEFkZGl0aW9uYWwgTGlhYmlsaXR5LiBXaGlsZSByZWRpc3RyaWJ1dGluZworICAgICAgdGhlIFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mLCBZb3UgbWF5IGNob29zZSB0byBvZmZlciwKKyAgICAgIGFuZCBjaGFyZ2UgYSBmZWUgZm9yLCBhY2NlcHRhbmNlIG9mIHN1cHBvcnQsIHdhcnJhbnR5LCBpbmRlbW5pdHksCisgICAgICBvciBvdGhlciBsaWFiaWxpdHkgb2JsaWdhdGlvbnMgYW5kL29yIHJpZ2h0cyBjb25zaXN0ZW50IHdpdGggdGhpcworICAgICAgTGljZW5zZS4gSG93ZXZlciwgaW4gYWNjZXB0aW5nIHN1Y2ggb2JsaWdhdGlvbnMsIFlvdSBtYXkgYWN0IG9ubHkKKyAgICAgIG9uIFlvdXIgb3duIGJlaGFsZiBhbmQgb24gWW91ciBzb2xlIHJlc3BvbnNpYmlsaXR5LCBub3Qgb24gYmVoYWxmCisgICAgICBvZiBhbnkgb3RoZXIgQ29udHJpYnV0b3IsIGFuZCBvbmx5IGlmIFlvdSBhZ3JlZSB0byBpbmRlbW5pZnksCisgICAgICBkZWZlbmQsIGFuZCBob2xkIGVhY2ggQ29udHJpYnV0b3IgaGFybWxlc3MgZm9yIGFueSBsaWFiaWxpdHkKKyAgICAgIGluY3VycmVkIGJ5LCBvciBjbGFpbXMgYXNzZXJ0ZWQgYWdhaW5zdCwgc3VjaCBDb250cmlidXRvciBieSByZWFzb24KKyAgICAgIG9mIHlvdXIgYWNjZXB0aW5nIGFueSBzdWNoIHdhcnJhbnR5IG9yIGFkZGl0aW9uYWwgbGlhYmlsaXR5LgorCisgICBFTkQgT0YgVEVSTVMgQU5EIENPTkRJVElPTlMKKworICAgQVBQRU5ESVg6IEhvdyB0byBhcHBseSB0aGUgQXBhY2hlIExpY2Vuc2UgdG8geW91ciB3b3JrLgorCisgICAgICBUbyBhcHBseSB0aGUgQXBhY2hlIExpY2Vuc2UgdG8geW91ciB3b3JrLCBhdHRhY2ggdGhlIGZvbGxvd2luZworICAgICAgYm9pbGVycGxhdGUgbm90aWNlLCB3aXRoIHRoZSBmaWVsZHMgZW5jbG9zZWQgYnkgYnJhY2tldHMgIltdIgorICAgICAgcmVwbGFjZWQgd2l0aCB5b3VyIG93biBpZGVudGlmeWluZyBpbmZvcm1hdGlvbi4gKERvbid0IGluY2x1ZGUKKyAgICAgIHRoZSBicmFja2V0cyEpICBUaGUgdGV4dCBzaG91bGQgYmUgZW5jbG9zZWQgaW4gdGhlIGFwcHJvcHJpYXRlCisgICAgICBjb21tZW50IHN5bnRheCBmb3IgdGhlIGZpbGUgZm9ybWF0LiBXZSBhbHNvIHJlY29tbWVuZCB0aGF0IGEKKyAgICAgIGZpbGUgb3IgY2xhc3MgbmFtZSBhbmQgZGVzY3JpcHRpb24gb2YgcHVycG9zZSBiZSBpbmNsdWRlZCBvbiB0aGUKKyAgICAgIHNhbWUgInByaW50ZWQgcGFnZSIgYXMgdGhlIGNvcHlyaWdodCBub3RpY2UgZm9yIGVhc2llcgorICAgICAgaWRlbnRpZmljYXRpb24gd2l0aGluIHRoaXJkLXBhcnR5IGFyY2hpdmVzLgorCisgICBDb3B5cmlnaHQgW3l5eXldIFtuYW1lIG9mIGNvcHlyaWdodCBvd25lcl0KKworICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2NvbXBpbGVyQ29tbW9uLzEuMS1hbHBoYTAvY29tcGlsZXJDb21tb24tMS4xLWFscGhhMC5qYXIgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9jb21waWxlckNvbW1vbi8xLjEtYWxwaGEwL2NvbXBpbGVyQ29tbW9uLTEuMS1hbHBoYTAuamFyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVhNmI0MzIKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9jb21waWxlckNvbW1vbi8xLjEtYWxwaGEwL2NvbXBpbGVyQ29tbW9uLTEuMS1hbHBoYTAuamFyCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2NvbXBpbGVyQ29tbW9uLzEuMS1hbHBoYTAvY29tcGlsZXJDb21tb24tMS4xLWFscGhhMC5qYXIubWQ1IGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvY29tcGlsZXJDb21tb24vMS4xLWFscGhhMC9jb21waWxlckNvbW1vbi0xLjEtYWxwaGEwLmphci5tZDUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODE0YzYwOAotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2NvbXBpbGVyQ29tbW9uLzEuMS1hbHBoYTAvY29tcGlsZXJDb21tb24tMS4xLWFscGhhMC5qYXIubWQ1CkBAIC0wLDAgKzEgQEAKKzI4YTgyMjQ5MWIyZWU4MWZiMjRlYTFkMDNkZTYyYzI4ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvY29tcGlsZXJDb21tb24vMS4xLWFscGhhMC9jb21waWxlckNvbW1vbi0xLjEtYWxwaGEwLmphci5zaGExIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvY29tcGlsZXJDb21tb24vMS4xLWFscGhhMC9jb21waWxlckNvbW1vbi0xLjEtYWxwaGEwLmphci5zaGExCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUzZDFmYTcKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9jb21waWxlckNvbW1vbi8xLjEtYWxwaGEwL2NvbXBpbGVyQ29tbW9uLTEuMS1hbHBoYTAuamFyLnNoYTEKQEAgLTAsMCArMSBAQAorNjE3MDA0ODI4YmE5ZjRhZmJhMTA2ZmIzNDdlZjQ1ZWMzOTg5ZTc1NgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2NvbXBpbGVyQ29tbW9uLzEuMS1hbHBoYTAvY29tcGlsZXJDb21tb24tMS4xLWFscGhhMC5wb20gYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9jb21waWxlckNvbW1vbi8xLjEtYWxwaGEwL2NvbXBpbGVyQ29tbW9uLTEuMS1hbHBoYTAucG9tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUxNmYwMzcKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9jb21waWxlckNvbW1vbi8xLjEtYWxwaGEwL2NvbXBpbGVyQ29tbW9uLTEuMS1hbHBoYTAucG9tCkBAIC0wLDAgKzEsNDAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cHJvamVjdCB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCBodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy94c2QvbWF2ZW4tNC4wLjAueHNkIiB4bWxucz0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIgorICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiPgorICA8bW9kZWxWZXJzaW9uPjQuMC4wPC9tb2RlbFZlcnNpb24+CisgIDxncm91cElkPmNvbS5hbmRyb2lkLmRhdGFiaW5kaW5nPC9ncm91cElkPgorICA8YXJ0aWZhY3RJZD5jb21waWxlckNvbW1vbjwvYXJ0aWZhY3RJZD4KKyAgPHZlcnNpb24+MS4xLWFscGhhMDwvdmVyc2lvbj4KKyAgPGRlcGVuZGVuY2llcz4KKyAgICA8ZGVwZW5kZW5jeT4KKyAgICAgIDxncm91cElkPmNvbS5hbmRyb2lkLmRhdGFiaW5kaW5nPC9ncm91cElkPgorICAgICAgPGFydGlmYWN0SWQ+YmFzZUxpYnJhcnk8L2FydGlmYWN0SWQ+CisgICAgICA8dmVyc2lvbj4xLjEtYWxwaGEwPC92ZXJzaW9uPgorICAgICAgPHNjb3BlPmNvbXBpbGU8L3Njb3BlPgorICAgIDwvZGVwZW5kZW5jeT4KKyAgICA8ZGVwZW5kZW5jeT4KKyAgICAgIDxncm91cElkPm9yZy5hcGFjaGUuY29tbW9uczwvZ3JvdXBJZD4KKyAgICAgIDxhcnRpZmFjdElkPmNvbW1vbnMtbGFuZzM8L2FydGlmYWN0SWQ+CisgICAgICA8dmVyc2lvbj4zLjMuMjwvdmVyc2lvbj4KKyAgICAgIDxzY29wZT5jb21waWxlPC9zY29wZT4KKyAgICA8L2RlcGVuZGVuY3k+CisgICAgPGRlcGVuZGVuY3k+CisgICAgICA8Z3JvdXBJZD5qdW5pdDwvZ3JvdXBJZD4KKyAgICAgIDxhcnRpZmFjdElkPmp1bml0PC9hcnRpZmFjdElkPgorICAgICAgPHZlcnNpb24+NC4xMjwvdmVyc2lvbj4KKyAgICAgIDxzY29wZT50ZXN0PC9zY29wZT4KKyAgICA8L2RlcGVuZGVuY3k+CisgICAgPGRlcGVuZGVuY3k+CisgICAgICA8Z3JvdXBJZD5jb20udHVubmVsdmlzaW9ubGFiczwvZ3JvdXBJZD4KKyAgICAgIDxhcnRpZmFjdElkPmFudGxyNDwvYXJ0aWZhY3RJZD4KKyAgICAgIDx2ZXJzaW9uPjQuNTwvdmVyc2lvbj4KKyAgICAgIDxzY29wZT5jb21waWxlPC9zY29wZT4KKyAgICA8L2RlcGVuZGVuY3k+CisgICAgPGRlcGVuZGVuY3k+CisgICAgICA8Z3JvdXBJZD5jb21tb25zLWlvPC9ncm91cElkPgorICAgICAgPGFydGlmYWN0SWQ+Y29tbW9ucy1pbzwvYXJ0aWZhY3RJZD4KKyAgICAgIDx2ZXJzaW9uPjIuNDwvdmVyc2lvbj4KKyAgICAgIDxzY29wZT5jb21waWxlPC9zY29wZT4KKyAgICA8L2RlcGVuZGVuY3k+CisgIDwvZGVwZW5kZW5jaWVzPgorPC9wcm9qZWN0PgpkaWZmIC0tZ2l0IGEvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvY29tcGlsZXJDb21tb24vMS4xLWFscGhhMC9jb21waWxlckNvbW1vbi0xLjEtYWxwaGEwLnBvbS5tZDUgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9jb21waWxlckNvbW1vbi8xLjEtYWxwaGEwL2NvbXBpbGVyQ29tbW9uLTEuMS1hbHBoYTAucG9tLm1kNQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZTE3OTViCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvY29tcGlsZXJDb21tb24vMS4xLWFscGhhMC9jb21waWxlckNvbW1vbi0xLjEtYWxwaGEwLnBvbS5tZDUKQEAgLTAsMCArMSBAQAorYWNjZmIwYzcyZmQwZDYyNzZjNzU3Y2NmMGM0NjNmZmQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9jb21waWxlckNvbW1vbi8xLjEtYWxwaGEwL2NvbXBpbGVyQ29tbW9uLTEuMS1hbHBoYTAucG9tLnNoYTEgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9jb21waWxlckNvbW1vbi8xLjEtYWxwaGEwL2NvbXBpbGVyQ29tbW9uLTEuMS1hbHBoYTAucG9tLnNoYTEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzliMzcyZQotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2NvbXBpbGVyQ29tbW9uLzEuMS1hbHBoYTAvY29tcGlsZXJDb21tb24tMS4xLWFscGhhMC5wb20uc2hhMQpAQCAtMCwwICsxIEBACisyYTE0YzU3N2Y4ZmM3Y2QxY2RmMzRmOWJkMGM0MWRhNTcyZjVhNzkwClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvY29tcGlsZXJDb21tb24vbWF2ZW4tbWV0YWRhdGEueG1sIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvY29tcGlsZXJDb21tb24vbWF2ZW4tbWV0YWRhdGEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU5MTg3OTIKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9jb21waWxlckNvbW1vbi9tYXZlbi1tZXRhZGF0YS54bWwKQEAgLTAsMCArMSwxMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxtZXRhZGF0YT4KKyAgPGdyb3VwSWQ+Y29tLmFuZHJvaWQuZGF0YWJpbmRpbmc8L2dyb3VwSWQ+CisgIDxhcnRpZmFjdElkPmNvbXBpbGVyQ29tbW9uPC9hcnRpZmFjdElkPgorICA8dmVyc2lvbj4xLjEtYWxwaGEwPC92ZXJzaW9uPgorICA8dmVyc2lvbmluZz4KKyAgICA8dmVyc2lvbnM+CisgICAgICA8dmVyc2lvbj4xLjEtYWxwaGEwPC92ZXJzaW9uPgorICAgIDwvdmVyc2lvbnM+CisgICAgPGxhc3RVcGRhdGVkPjIwMTUwNzIyMjEzMzUwPC9sYXN0VXBkYXRlZD4KKyAgPC92ZXJzaW9uaW5nPgorPC9tZXRhZGF0YT4KZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2NvbXBpbGVyQ29tbW9uL21hdmVuLW1ldGFkYXRhLnhtbC5tZDUgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9jb21waWxlckNvbW1vbi9tYXZlbi1tZXRhZGF0YS54bWwubWQ1Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc3OTEzOTMKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9jb21waWxlckNvbW1vbi9tYXZlbi1tZXRhZGF0YS54bWwubWQ1CkBAIC0wLDAgKzEgQEAKK2M2MjgzODFmZTJlZDBjYmZiOWNhZTVlNTkzNGUzMGNlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvY29tcGlsZXJDb21tb24vbWF2ZW4tbWV0YWRhdGEueG1sLnNoYTEgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9jb21waWxlckNvbW1vbi9tYXZlbi1tZXRhZGF0YS54bWwuc2hhMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MTVjNWY3Ci0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvY29tcGlsZXJDb21tb24vbWF2ZW4tbWV0YWRhdGEueG1sLnNoYTEKQEAgLTAsMCArMSBAQAorZmUxNTM4YTNkZTkwOGZlYTY2Nzg2M2JhMDZhZDU5MGQ1OTg5MmFhZgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2xpYnJhcnkvMS4xLWFscGhhMC9saWJyYXJ5LTEuMS1hbHBoYTAtamF2YWRvYy5qYXIgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9saWJyYXJ5LzEuMS1hbHBoYTAvbGlicmFyeS0xLjEtYWxwaGEwLWphdmFkb2MuamFyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFlYzg4MjkKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9saWJyYXJ5LzEuMS1hbHBoYTAvbGlicmFyeS0xLjEtYWxwaGEwLWphdmFkb2MuamFyCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2xpYnJhcnkvMS4xLWFscGhhMC9saWJyYXJ5LTEuMS1hbHBoYTAtamF2YWRvYy5qYXIubWQ1IGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvbGlicmFyeS8xLjEtYWxwaGEwL2xpYnJhcnktMS4xLWFscGhhMC1qYXZhZG9jLmphci5tZDUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTQyYzU1NAotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2xpYnJhcnkvMS4xLWFscGhhMC9saWJyYXJ5LTEuMS1hbHBoYTAtamF2YWRvYy5qYXIubWQ1CkBAIC0wLDAgKzEgQEAKKzdkOWNjY2FmY2UxNjRjMWI1N2IxMzY5ZTcyMGY3NGZlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvbGlicmFyeS8xLjEtYWxwaGEwL2xpYnJhcnktMS4xLWFscGhhMC1qYXZhZG9jLmphci5zaGExIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvbGlicmFyeS8xLjEtYWxwaGEwL2xpYnJhcnktMS4xLWFscGhhMC1qYXZhZG9jLmphci5zaGExCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZmZGZlODcKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9saWJyYXJ5LzEuMS1hbHBoYTAvbGlicmFyeS0xLjEtYWxwaGEwLWphdmFkb2MuamFyLnNoYTEKQEAgLTAsMCArMSBAQAorYjVlMTM1ODAxZDRkN2JmMzRkMjA2MzgzOWM0MjQ1YjA4ZGYyOTllZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2xpYnJhcnkvMS4xLWFscGhhMC9saWJyYXJ5LTEuMS1hbHBoYTAtc291cmNlcy5qYXIgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9saWJyYXJ5LzEuMS1hbHBoYTAvbGlicmFyeS0xLjEtYWxwaGEwLXNvdXJjZXMuamFyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM5OGU5ZGQKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9saWJyYXJ5LzEuMS1hbHBoYTAvbGlicmFyeS0xLjEtYWxwaGEwLXNvdXJjZXMuamFyCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2xpYnJhcnkvMS4xLWFscGhhMC9saWJyYXJ5LTEuMS1hbHBoYTAtc291cmNlcy5qYXIubWQ1IGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvbGlicmFyeS8xLjEtYWxwaGEwL2xpYnJhcnktMS4xLWFscGhhMC1zb3VyY2VzLmphci5tZDUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGJmZWRkNQotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2xpYnJhcnkvMS4xLWFscGhhMC9saWJyYXJ5LTEuMS1hbHBoYTAtc291cmNlcy5qYXIubWQ1CkBAIC0wLDAgKzEgQEAKKzhjYjI2MDE5MmQ0ZTkzNTI3ZWExOTQ0OGU5ZTUyZGQyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvbGlicmFyeS8xLjEtYWxwaGEwL2xpYnJhcnktMS4xLWFscGhhMC1zb3VyY2VzLmphci5zaGExIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvbGlicmFyeS8xLjEtYWxwaGEwL2xpYnJhcnktMS4xLWFscGhhMC1zb3VyY2VzLmphci5zaGExCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdlN2VlNDUKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9saWJyYXJ5LzEuMS1hbHBoYTAvbGlicmFyeS0xLjEtYWxwaGEwLXNvdXJjZXMuamFyLnNoYTEKQEAgLTAsMCArMSBAQAorMGY0NzhjNWJiMDEyMDdhNzcxYTJjZDY0OGRiZGNkZWQyODg0YWRlMQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2xpYnJhcnkvMS4xLWFscGhhMC9saWJyYXJ5LTEuMS1hbHBoYTAuYWFyIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvbGlicmFyeS8xLjEtYWxwaGEwL2xpYnJhcnktMS4xLWFscGhhMC5hYXIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDg2OTM0YQotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2xpYnJhcnkvMS4xLWFscGhhMC9saWJyYXJ5LTEuMS1hbHBoYTAuYWFyCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2xpYnJhcnkvMS4xLWFscGhhMC9saWJyYXJ5LTEuMS1hbHBoYTAuYWFyLm1kNSBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2xpYnJhcnkvMS4xLWFscGhhMC9saWJyYXJ5LTEuMS1hbHBoYTAuYWFyLm1kNQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YzE1ZWQzCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvbGlicmFyeS8xLjEtYWxwaGEwL2xpYnJhcnktMS4xLWFscGhhMC5hYXIubWQ1CkBAIC0wLDAgKzEgQEAKKzQ2Y2JjZGM0MGI3NTIyY2E3MjdhZTY3NWNhNjM3N2VlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvbGlicmFyeS8xLjEtYWxwaGEwL2xpYnJhcnktMS4xLWFscGhhMC5hYXIuc2hhMSBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2xpYnJhcnkvMS4xLWFscGhhMC9saWJyYXJ5LTEuMS1hbHBoYTAuYWFyLnNoYTEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjVhN2Q4MAotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2xpYnJhcnkvMS4xLWFscGhhMC9saWJyYXJ5LTEuMS1hbHBoYTAuYWFyLnNoYTEKQEAgLTAsMCArMSBAQAorMDkyZGRkZThkYzEwOWI4ZDE5N2U3ZjUzNWJlYTA3ZDNhOGY3YzMzOQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2xpYnJhcnkvMS4xLWFscGhhMC9saWJyYXJ5LTEuMS1hbHBoYTAucG9tIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvbGlicmFyeS8xLjEtYWxwaGEwL2xpYnJhcnktMS4xLWFscGhhMC5wb20KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2YxYjljOQotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9hbmRyb2lkL2RhdGFiaW5kaW5nL2xpYnJhcnkvMS4xLWFscGhhMC9saWJyYXJ5LTEuMS1hbHBoYTAucG9tCkBAIC0wLDAgKzEsMzAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cHJvamVjdCB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCBodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy94c2QvbWF2ZW4tNC4wLjAueHNkIiB4bWxucz0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIgorICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiPgorICA8bW9kZWxWZXJzaW9uPjQuMC4wPC9tb2RlbFZlcnNpb24+CisgIDxncm91cElkPmNvbS5hbmRyb2lkLmRhdGFiaW5kaW5nPC9ncm91cElkPgorICA8YXJ0aWZhY3RJZD5saWJyYXJ5PC9hcnRpZmFjdElkPgorICA8dmVyc2lvbj4xLjEtYWxwaGEwPC92ZXJzaW9uPgorICA8cGFja2FnaW5nPmFhcjwvcGFja2FnaW5nPgorICA8bGljZW5zZXM+CisgICAgPGxpY2Vuc2U+CisgICAgICA8bmFtZT5UaGUgQXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMi4wPC9uYW1lPgorICAgICAgPHVybD5odHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAudHh0PC91cmw+CisgICAgICA8ZGlzdHJpYnV0aW9uPnJlcG88L2Rpc3RyaWJ1dGlvbj4KKyAgICA8L2xpY2Vuc2U+CisgIDwvbGljZW5zZXM+CisgIDxkZXBlbmRlbmNpZXM+CisgICAgPGRlcGVuZGVuY3k+CisgICAgICA8Z3JvdXBJZD5jb20uYW5kcm9pZC5kYXRhYmluZGluZzwvZ3JvdXBJZD4KKyAgICAgIDxhcnRpZmFjdElkPmJhc2VMaWJyYXJ5PC9hcnRpZmFjdElkPgorICAgICAgPHZlcnNpb24+MS4xLWFscGhhMDwvdmVyc2lvbj4KKyAgICAgIDxzY29wZT5jb21waWxlPC9zY29wZT4KKyAgICA8L2RlcGVuZGVuY3k+CisgICAgPGRlcGVuZGVuY3k+CisgICAgICA8Z3JvdXBJZD5jb20uYW5kcm9pZC5zdXBwb3J0PC9ncm91cElkPgorICAgICAgPGFydGlmYWN0SWQ+c3VwcG9ydC12NDwvYXJ0aWZhY3RJZD4KKyAgICAgIDx2ZXJzaW9uPjIxLjAuMzwvdmVyc2lvbj4KKyAgICAgIDxzY29wZT5jb21waWxlPC9zY29wZT4KKyAgICA8L2RlcGVuZGVuY3k+CisgIDwvZGVwZW5kZW5jaWVzPgorPC9wcm9qZWN0PgpkaWZmIC0tZ2l0IGEvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvbGlicmFyeS8xLjEtYWxwaGEwL2xpYnJhcnktMS4xLWFscGhhMC5wb20ubWQ1IGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvbGlicmFyeS8xLjEtYWxwaGEwL2xpYnJhcnktMS4xLWFscGhhMC5wb20ubWQ1Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY0ODVhNTAKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9saWJyYXJ5LzEuMS1hbHBoYTAvbGlicmFyeS0xLjEtYWxwaGEwLnBvbS5tZDUKQEAgLTAsMCArMSBAQAorZmMxZTIzMjRkZGQ2NDQxOTI3ZWIzZDEzM2FiMDk2NjEKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9saWJyYXJ5LzEuMS1hbHBoYTAvbGlicmFyeS0xLjEtYWxwaGEwLnBvbS5zaGExIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvbGlicmFyeS8xLjEtYWxwaGEwL2xpYnJhcnktMS4xLWFscGhhMC5wb20uc2hhMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MmZlY2IxCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvbGlicmFyeS8xLjEtYWxwaGEwL2xpYnJhcnktMS4xLWFscGhhMC5wb20uc2hhMQpAQCAtMCwwICsxIEBACisyOWYwNGY4ODljYWNmNDY4ZTI2NzNiZDk3NTc0NzFhYzIyMmQwNzljClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvbGlicmFyeS9tYXZlbi1tZXRhZGF0YS54bWwgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9saWJyYXJ5L21hdmVuLW1ldGFkYXRhLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNDU4YjQ5Ci0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvbGlicmFyeS9tYXZlbi1tZXRhZGF0YS54bWwKQEAgLTAsMCArMSwxMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxtZXRhZGF0YT4KKyAgPGdyb3VwSWQ+Y29tLmFuZHJvaWQuZGF0YWJpbmRpbmc8L2dyb3VwSWQ+CisgIDxhcnRpZmFjdElkPmxpYnJhcnk8L2FydGlmYWN0SWQ+CisgIDx2ZXJzaW9uPjEuMS1hbHBoYTA8L3ZlcnNpb24+CisgIDx2ZXJzaW9uaW5nPgorICAgIDx2ZXJzaW9ucz4KKyAgICAgIDx2ZXJzaW9uPjEuMS1hbHBoYTA8L3ZlcnNpb24+CisgICAgPC92ZXJzaW9ucz4KKyAgICA8bGFzdFVwZGF0ZWQ+MjAxNTA3MjIyMTMzNTM8L2xhc3RVcGRhdGVkPgorICA8L3ZlcnNpb25pbmc+Cis8L21ldGFkYXRhPgpkaWZmIC0tZ2l0IGEvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvbGlicmFyeS9tYXZlbi1tZXRhZGF0YS54bWwubWQ1IGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvbGlicmFyeS9tYXZlbi1tZXRhZGF0YS54bWwubWQ1Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJmMWU4MTAKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9saWJyYXJ5L21hdmVuLW1ldGFkYXRhLnhtbC5tZDUKQEAgLTAsMCArMSBAQAorNWIxZDkyODQ0ZjYwMGEwMzEwNTFmNDZhNzY0MTFkZWMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vYW5kcm9pZC9kYXRhYmluZGluZy9saWJyYXJ5L21hdmVuLW1ldGFkYXRhLnhtbC5zaGExIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvbGlicmFyeS9tYXZlbi1tZXRhZGF0YS54bWwuc2hhMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZTQ4YzVhCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2FuZHJvaWQvZGF0YWJpbmRpbmcvbGlicmFyeS9tYXZlbi1tZXRhZGF0YS54bWwuc2hhMQpAQCAtMCwwICsxIEBACis2ZDViNTMzNDM4YzhlNGVhOGY5MDE1YWIxNjU1MGI4ZGFkOTMwYWM1ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2pmcm9nL2JpbnRyYXkvZ3JhZGxlL2dyYWRsZS1iaW50cmF5LXBsdWdpbi8xLjIvZ3JhZGxlLWJpbnRyYXktcGx1Z2luLTEuMi1zb3VyY2VzLmphciBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9qZnJvZy9iaW50cmF5L2dyYWRsZS9ncmFkbGUtYmludHJheS1wbHVnaW4vMS4yL2dyYWRsZS1iaW50cmF5LXBsdWdpbi0xLjItc291cmNlcy5qYXIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTM0MjkwOAotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9qZnJvZy9iaW50cmF5L2dyYWRsZS9ncmFkbGUtYmludHJheS1wbHVnaW4vMS4yL2dyYWRsZS1iaW50cmF5LXBsdWdpbi0xLjItc291cmNlcy5qYXIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2pmcm9nL2JpbnRyYXkvZ3JhZGxlL2dyYWRsZS1iaW50cmF5LXBsdWdpbi8xLjIvZ3JhZGxlLWJpbnRyYXktcGx1Z2luLTEuMi1zb3VyY2VzLmphci5zaGExIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2pmcm9nL2JpbnRyYXkvZ3JhZGxlL2dyYWRsZS1iaW50cmF5LXBsdWdpbi8xLjIvZ3JhZGxlLWJpbnRyYXktcGx1Z2luLTEuMi1zb3VyY2VzLmphci5zaGExCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlkYTlmMzcKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vamZyb2cvYmludHJheS9ncmFkbGUvZ3JhZGxlLWJpbnRyYXktcGx1Z2luLzEuMi9ncmFkbGUtYmludHJheS1wbHVnaW4tMS4yLXNvdXJjZXMuamFyLnNoYTEKQEAgLTAsMCArMSBAQAorODU1NjZjNGZkMmYwNzE2MzViY2E1NTg0NzI0OTU4N2YzNGUyYjEzZgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9qZnJvZy9iaW50cmF5L2dyYWRsZS9ncmFkbGUtYmludHJheS1wbHVnaW4vMS4yL2dyYWRsZS1iaW50cmF5LXBsdWdpbi0xLjIuamFyIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2pmcm9nL2JpbnRyYXkvZ3JhZGxlL2dyYWRsZS1iaW50cmF5LXBsdWdpbi8xLjIvZ3JhZGxlLWJpbnRyYXktcGx1Z2luLTEuMi5qYXIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWQzMjE5NgotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9qZnJvZy9iaW50cmF5L2dyYWRsZS9ncmFkbGUtYmludHJheS1wbHVnaW4vMS4yL2dyYWRsZS1iaW50cmF5LXBsdWdpbi0xLjIuamFyCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9qZnJvZy9iaW50cmF5L2dyYWRsZS9ncmFkbGUtYmludHJheS1wbHVnaW4vMS4yL2dyYWRsZS1iaW50cmF5LXBsdWdpbi0xLjIuamFyLnNoYTEgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vamZyb2cvYmludHJheS9ncmFkbGUvZ3JhZGxlLWJpbnRyYXktcGx1Z2luLzEuMi9ncmFkbGUtYmludHJheS1wbHVnaW4tMS4yLmphci5zaGExCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc4YWE0MWQKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vamZyb2cvYmludHJheS9ncmFkbGUvZ3JhZGxlLWJpbnRyYXktcGx1Z2luLzEuMi9ncmFkbGUtYmludHJheS1wbHVnaW4tMS4yLmphci5zaGExCkBAIC0wLDAgKzEgQEAKK2FlMTc0YjJhYTM0OGFlNzQyY2RjNjM0OTZiNjZiY2JjOGYxNWQ1ZTAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vamZyb2cvYmludHJheS9ncmFkbGUvZ3JhZGxlLWJpbnRyYXktcGx1Z2luLzEuMi9ncmFkbGUtYmludHJheS1wbHVnaW4tMS4yLnBvbSBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9qZnJvZy9iaW50cmF5L2dyYWRsZS9ncmFkbGUtYmludHJheS1wbHVnaW4vMS4yL2dyYWRsZS1iaW50cmF5LXBsdWdpbi0xLjIucG9tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI3MTU1NGMKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vamZyb2cvYmludHJheS9ncmFkbGUvZ3JhZGxlLWJpbnRyYXktcGx1Z2luLzEuMi9ncmFkbGUtYmludHJheS1wbHVnaW4tMS4yLnBvbQpAQCAtMCwwICsxLDMwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHByb2plY3QgeG1sbnM9Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCIgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAgaHR0cDovL21hdmVuLmFwYWNoZS5vcmcveHNkL21hdmVuLTQuMC4wLnhzZCIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSI+CisgIDxtb2RlbFZlcnNpb24+NC4wLjA8L21vZGVsVmVyc2lvbj4KKyAgPGdyb3VwSWQ+Y29tLmpmcm9nLmJpbnRyYXkuZ3JhZGxlPC9ncm91cElkPgorICA8YXJ0aWZhY3RJZD5ncmFkbGUtYmludHJheS1wbHVnaW48L2FydGlmYWN0SWQ+CisgIDx2ZXJzaW9uPjEuMjwvdmVyc2lvbj4KKyAgPGRlcGVuZGVuY2llcz4KKyAgICA8ZGVwZW5kZW5jeT4KKyAgICAgIDxncm91cElkPm9yZy5jb2RlaGF1cy5ncm9vdnkubW9kdWxlcy5odHRwLWJ1aWxkZXI8L2dyb3VwSWQ+CisgICAgICA8YXJ0aWZhY3RJZD5odHRwLWJ1aWxkZXI8L2FydGlmYWN0SWQ+CisgICAgICA8dmVyc2lvbj4wLjcuMjwvdmVyc2lvbj4KKyAgICAgIDxzY29wZT5ydW50aW1lPC9zY29wZT4KKyAgICA8L2RlcGVuZGVuY3k+CisgIDwvZGVwZW5kZW5jaWVzPgorICA8ZGVzY3JpcHRpb24+QSBncmFkbGUgcGx1Z2luIGZvciBwdWJsaXNoaW5nIHRvIEJpbnRyYXk8L2Rlc2NyaXB0aW9uPgorICA8bGljZW5zZXM+CisgICAgPGxpY2Vuc2U+CisgICAgICA8bmFtZT5UaGUgQXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMi4wPC9uYW1lPgorICAgICAgPHVybD5odHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAudHh0PC91cmw+CisgICAgICA8ZGlzdHJpYnV0aW9uPnJlcG88L2Rpc3RyaWJ1dGlvbj4KKyAgICA8L2xpY2Vuc2U+CisgIDwvbGljZW5zZXM+CisgIDxkZXZlbG9wZXJzPgorICAgIDxkZXZlbG9wZXI+CisgICAgICA8aWQ+eW9hdjwvaWQ+CisgICAgICA8bmFtZT5Zb2F2IExhbmRtYW48L25hbWU+CisgICAgICA8ZW1haWw+eW9hdmxAamZyb2cuY29tPC9lbWFpbD4KKyAgICA8L2RldmVsb3Blcj4KKyAgPC9kZXZlbG9wZXJzPgorPC9wcm9qZWN0PgpkaWZmIC0tZ2l0IGEvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2pmcm9nL2JpbnRyYXkvZ3JhZGxlL2dyYWRsZS1iaW50cmF5LXBsdWdpbi8xLjIvZ3JhZGxlLWJpbnRyYXktcGx1Z2luLTEuMi5wb20uc2hhMSBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9qZnJvZy9iaW50cmF5L2dyYWRsZS9ncmFkbGUtYmludHJheS1wbHVnaW4vMS4yL2dyYWRsZS1iaW50cmF5LXBsdWdpbi0xLjIucG9tLnNoYTEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2E1ODE4OQotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9qZnJvZy9iaW50cmF5L2dyYWRsZS9ncmFkbGUtYmludHJheS1wbHVnaW4vMS4yL2dyYWRsZS1iaW50cmF5LXBsdWdpbi0xLjIucG9tLnNoYTEKQEAgLTAsMCArMSBAQAorN2U2YTA0NTg3YzkxNzgxMDYyZWNkOTZkYTdjOGUzZDdhNTNkNDEwOApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9qZnJvZy9iaW50cmF5L2dyYWRsZS9ncmFkbGUtYmludHJheS1wbHVnaW4vbWF2ZW4tbWV0YWRhdGEueG1sIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2pmcm9nL2JpbnRyYXkvZ3JhZGxlL2dyYWRsZS1iaW50cmF5LXBsdWdpbi9tYXZlbi1tZXRhZGF0YS54bWwKaW5kZXggZjRhYzRkYi4uY2QwYzkwMyAxMDA2NDQKLS0tIGEvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2pmcm9nL2JpbnRyYXkvZ3JhZGxlL2dyYWRsZS1iaW50cmF5LXBsdWdpbi9tYXZlbi1tZXRhZGF0YS54bWwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL2pmcm9nL2JpbnRyYXkvZ3JhZGxlL2dyYWRsZS1iaW50cmF5LXBsdWdpbi9tYXZlbi1tZXRhZGF0YS54bWwKQEAgLTIsMTAgKzIsMTAgQEAKIDxtZXRhZGF0YT4KICAgPGdyb3VwSWQ+Y29tLmpmcm9nLmJpbnRyYXkuZ3JhZGxlPC9ncm91cElkPgogICA8YXJ0aWZhY3RJZD5ncmFkbGUtYmludHJheS1wbHVnaW48L2FydGlmYWN0SWQ+Ci0gIDx2ZXJzaW9uPjEuMDwvdmVyc2lvbj4KKyAgPHZlcnNpb24+MS4yPC92ZXJzaW9uPgogICA8dmVyc2lvbmluZz4KLSAgICA8bGF0ZXN0PjEuMDwvbGF0ZXN0PgotICAgIDxyZWxlYXNlPjEuMDwvcmVsZWFzZT4KKyAgICA8bGF0ZXN0PjEuMjwvbGF0ZXN0PgorICAgIDxyZWxlYXNlPjEuMjwvcmVsZWFzZT4KICAgICA8dmVyc2lvbnM+CiAgICAgICA8dmVyc2lvbj4wLjE8L3ZlcnNpb24+CiAgICAgICA8dmVyc2lvbj4wLjI8L3ZlcnNpb24+CkBAIC0xNSw3ICsxNSw5IEBACiAgICAgICA8dmVyc2lvbj4wLjU8L3ZlcnNpb24+CiAgICAgICA8dmVyc2lvbj4wLjY8L3ZlcnNpb24+CiAgICAgICA8dmVyc2lvbj4xLjA8L3ZlcnNpb24+CisgICAgICA8dmVyc2lvbj4xLjE8L3ZlcnNpb24+CisgICAgICA8dmVyc2lvbj4xLjI8L3ZlcnNpb24+CiAgICAgPC92ZXJzaW9ucz4KLSAgICA8bGFzdFVwZGF0ZWQ+MjAxNDEyMDExNzM1NDk8L2xhc3RVcGRhdGVkPgorICAgIDxsYXN0VXBkYXRlZD4yMDE1MDUwNTEzMzUzMTwvbGFzdFVwZGF0ZWQ+CiAgIDwvdmVyc2lvbmluZz4KIDwvbWV0YWRhdGE+CmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vc3F1YXJldXAvaGFoYS9oYWhhLzEuMy9oYWhhLTEuMy5qYXIgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vc3F1YXJldXAvaGFoYS9oYWhhLzEuMy9oYWhhLTEuMy5qYXIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmQ3ZjEyMQotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9zcXVhcmV1cC9oYWhhL2hhaGEvMS4zL2hhaGEtMS4zLmphcgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vc3F1YXJldXAvaGFoYS9oYWhhLzEuMy9oYWhhLTEuMy5qYXIubWQ1IGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL3NxdWFyZXVwL2hhaGEvaGFoYS8xLjMvaGFoYS0xLjMuamFyLm1kNQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYjU4YTFlCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL3NxdWFyZXVwL2hhaGEvaGFoYS8xLjMvaGFoYS0xLjMuamFyLm1kNQpAQCAtMCwwICsxIEBACisyZDY5MWFlMjhiMDk4ZGE3OTEwNjE2NDE2NTY5Y2FiYgpkaWZmIC0tZ2l0IGEvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL3NxdWFyZXVwL2hhaGEvaGFoYS8xLjMvaGFoYS0xLjMucG9tIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL3NxdWFyZXVwL2hhaGEvaGFoYS8xLjMvaGFoYS0xLjMucG9tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY4YTcxNzQKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vc3F1YXJldXAvaGFoYS9oYWhhLzEuMy9oYWhhLTEuMy5wb20KQEAgLTAsMCArMSwxNTMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+CisKKzxwcm9qZWN0IHhtbG5zPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL21hdmVuLXY0XzBfMC54c2QiPgorICA8bW9kZWxWZXJzaW9uPjQuMC4wPC9tb2RlbFZlcnNpb24+CisKKyAgPHBhcmVudD4KKyAgICA8Z3JvdXBJZD5vcmcuc29uYXR5cGUub3NzPC9ncm91cElkPgorICAgIDxhcnRpZmFjdElkPm9zcy1wYXJlbnQ8L2FydGlmYWN0SWQ+CisgICAgPHZlcnNpb24+NzwvdmVyc2lvbj4KKyAgPC9wYXJlbnQ+CisKKyAgPGdyb3VwSWQ+Y29tLnNxdWFyZXVwLmhhaGE8L2dyb3VwSWQ+CisgIDxhcnRpZmFjdElkPmhhaGE8L2FydGlmYWN0SWQ+CisgIDx2ZXJzaW9uPjEuMzwvdmVyc2lvbj4KKworICA8bmFtZT5IZWFkbGVzcyBBbmRyb2lkIEhlYXAgQW5hbHl6ZXI8L25hbWU+CisgIDxkZXNjcmlwdGlvbj5Qb3J0IG9mIEVjbGlwc2UgTWVtb3J5IEFuYWx5emVyIHRvIHBhcnNlIGFuZCBhbmFseXplIEFuZHJvaWQgaGVhcGR1bXBzPC9kZXNjcmlwdGlvbj4KKyAgPHVybD5odHRwczovL2dpdGh1Yi5jb20vc3F1YXJlL2hhaGE8L3VybD4KKyAgPGluY2VwdGlvblllYXI+MjAxNTwvaW5jZXB0aW9uWWVhcj4KKworICA8c2NtPgorICAgIDx1cmw+aHR0cHM6Ly9naXRodWIuY29tL3NxdWFyZS9oYWhhPC91cmw+CisgICAgPGNvbm5lY3Rpb24+c2NtOmdpdDpodHRwczovL2dpdGh1Yi5jb20vc3F1YXJlL2hhaGEuZ2l0PC9jb25uZWN0aW9uPgorICAgIDxkZXZlbG9wZXJDb25uZWN0aW9uPnNjbTpnaXQ6Z2l0QGdpdGh1Yi5jb206c3F1YXJlL2hhaGEuZ2l0PC9kZXZlbG9wZXJDb25uZWN0aW9uPgorICAgIDx0YWc+aGFoYS0xLjM8L3RhZz4KKyAgPC9zY20+CisKKyAgPG9yZ2FuaXphdGlvbj4KKyAgICA8bmFtZT5TcXVhcmUsIEluYy48L25hbWU+CisgICAgPHVybD5odHRwOi8vc3F1YXJldXAuY29tPC91cmw+CisgIDwvb3JnYW5pemF0aW9uPgorCisgPGlzc3VlTWFuYWdlbWVudD4KKyAgICA8c3lzdGVtPkdpdEh1YiBJc3N1ZXM8L3N5c3RlbT4KKyAgICA8dXJsPmh0dHA6Ly9naXRodWIuY29tL3NxdWFyZS9oYWhhL2lzc3VlczwvdXJsPgorICA8L2lzc3VlTWFuYWdlbWVudD4KKworICA8bGljZW5zZXM+CisgICAgPGxpY2Vuc2U+CisgICAgICA8bmFtZT5FY2xpcHNlIFB1YmxpYyBMaWNlbnNlIC0gdiAxLjA8L25hbWU+CisgICAgICA8dXJsPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb3JnL2RvY3VtZW50cy9lcGwtdjEwLnBocDwvdXJsPgorICAgICAgPGRpc3RyaWJ1dGlvbj5yZXBvPC9kaXN0cmlidXRpb24+CisgICAgPC9saWNlbnNlPgorICA8L2xpY2Vuc2VzPgorCisgIDxkZXZlbG9wZXJzPgorICAgIDxkZXZlbG9wZXI+CisgICAgICA8bmFtZT5QaWVycmUtWXZlcyBSaWNhdTwvbmFtZT4KKyAgICAgIDxlbWFpbD5weUBzcXVhcmV1cC5jb208L2VtYWlsPgorICAgICAgPG9yZ2FuaXphdGlvbj5TcXVhcmUsIEluYy48L29yZ2FuaXphdGlvbj4KKyAgICAgIDxvcmdhbml6YXRpb25Vcmw+aHR0cHM6Ly9zcXVhcmV1cC5jb208L29yZ2FuaXphdGlvblVybD4KKyAgICA8L2RldmVsb3Blcj4KKyAgPC9kZXZlbG9wZXJzPgorCisgIDxwcm9wZXJ0aWVzPgorICAgIDxwcm9qZWN0LmJ1aWxkLnNvdXJjZUVuY29kaW5nPlVURi04PC9wcm9qZWN0LmJ1aWxkLnNvdXJjZUVuY29kaW5nPgorICAgIDxqYXZhLnZlcnNpb24+MS42PC9qYXZhLnZlcnNpb24+CisgIDwvcHJvcGVydGllcz4KKworICA8ZGlzdHJpYnV0aW9uTWFuYWdlbWVudD4KKyAgICA8c25hcHNob3RSZXBvc2l0b3J5PgorICAgICAgPGlkPm9zc3JoPC9pZD4KKyAgICAgIDx1cmw+aHR0cHM6Ly9vc3Muc29uYXR5cGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL3NuYXBzaG90czwvdXJsPgorICAgIDwvc25hcHNob3RSZXBvc2l0b3J5PgorICA8L2Rpc3RyaWJ1dGlvbk1hbmFnZW1lbnQ+CisKKyAgPGJ1aWxkPgorICAgIDxwbHVnaW5zPgorICAgICAgPHBsdWdpbj4KKyAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPgorICAgICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1jb21waWxlci1wbHVnaW48L2FydGlmYWN0SWQ+CisgICAgICAgIDx2ZXJzaW9uPjMuMTwvdmVyc2lvbj4KKyAgICAgICAgPGNvbmZpZ3VyYXRpb24+CisgICAgICAgICAgPHNvdXJjZT4ke2phdmEudmVyc2lvbn08L3NvdXJjZT4KKyAgICAgICAgICA8dGFyZ2V0PiR7amF2YS52ZXJzaW9ufTwvdGFyZ2V0PgorICAgICAgICA8L2NvbmZpZ3VyYXRpb24+CisgICAgICA8L3BsdWdpbj4KKyAgICAgIDxwbHVnaW4+CisgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4KKyAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tcmVsZWFzZS1wbHVnaW48L2FydGlmYWN0SWQ+CisgICAgICAgIDx2ZXJzaW9uPjIuNTwvdmVyc2lvbj4KKwkgICAgPGNvbmZpZ3VyYXRpb24+CisJICAgICAgPGF1dG9WZXJzaW9uU3VibW9kdWxlcz50cnVlPC9hdXRvVmVyc2lvblN1Ym1vZHVsZXM+CisJICAgICAgPHVzZVJlbGVhc2VQcm9maWxlPmZhbHNlPC91c2VSZWxlYXNlUHJvZmlsZT4KKwkgICAgICA8cmVsZWFzZVByb2ZpbGVzPnJlbGVhc2U8L3JlbGVhc2VQcm9maWxlcz4KKwkgICAgICA8Z29hbHM+ZGVwbG95PC9nb2Fscz4KKwkgICAgPC9jb25maWd1cmF0aW9uPgorICAgICAgPC9wbHVnaW4+CisgICAgICA8cGx1Z2luPgorICAgICAgICA8Z3JvdXBJZD5vcmcuc29uYXR5cGUucGx1Z2luczwvZ3JvdXBJZD4KKyAgICAgICAgPGFydGlmYWN0SWQ+bmV4dXMtc3RhZ2luZy1tYXZlbi1wbHVnaW48L2FydGlmYWN0SWQ+CisgICAgICAgIDx2ZXJzaW9uPjEuNi4zPC92ZXJzaW9uPgorICAgICAgICA8ZXh0ZW5zaW9ucz50cnVlPC9leHRlbnNpb25zPgorICAgICAgICA8Y29uZmlndXJhdGlvbj4KKyAgICAgICAgICA8c2VydmVySWQ+b3Nzcmg8L3NlcnZlcklkPgorICAgICAgICAgIDxuZXh1c1VybD5odHRwczovL29zcy5zb25hdHlwZS5vcmcvPC9uZXh1c1VybD4KKyAgICAgICAgICA8YXV0b1JlbGVhc2VBZnRlckNsb3NlPnRydWU8L2F1dG9SZWxlYXNlQWZ0ZXJDbG9zZT4KKyAgICAgICAgPC9jb25maWd1cmF0aW9uPgorICAgICAgPC9wbHVnaW4+CisgICAgPC9wbHVnaW5zPgorICA8L2J1aWxkPgorCisgIDxwcm9maWxlcz4KKyAgICA8cHJvZmlsZT4KKyAgICAgIDxpZD5yZWxlYXNlPC9pZD4KKyAgICAgIDxidWlsZD4KKyAgICAgICAgPHBsdWdpbnM+CisgICAgICAgICAgPHBsdWdpbj4KKyAgICAgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4KKyAgICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLWphdmFkb2MtcGx1Z2luPC9hcnRpZmFjdElkPgorICAgICAgICAgICAgPHZlcnNpb24+Mi4xMC4xPC92ZXJzaW9uPgorICAgICAgICAgICAgPGV4ZWN1dGlvbnM+CisgICAgICAgICAgICAgIDxleGVjdXRpb24+CisgICAgICAgICAgICAgICAgPGlkPmF0dGFjaC1qYXZhZG9jczwvaWQ+CisgICAgICAgICAgICAgICAgPGdvYWxzPgorICAgICAgICAgICAgICAgICAgPGdvYWw+amFyPC9nb2FsPgorICAgICAgICAgICAgICAgIDwvZ29hbHM+CisgICAgICAgICAgICAgIDwvZXhlY3V0aW9uPgorICAgICAgICAgICAgPC9leGVjdXRpb25zPgorICAgICAgICAgIDwvcGx1Z2luPgorICAgICAgICAgIDxwbHVnaW4+CisgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+CisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1zb3VyY2UtcGx1Z2luPC9hcnRpZmFjdElkPgorICAgICAgICAgICAgPHZlcnNpb24+Mi4yLjE8L3ZlcnNpb24+CisgICAgICAgICAgICA8ZXhlY3V0aW9ucz4KKyAgICAgICAgICAgICAgPGV4ZWN1dGlvbj4KKyAgICAgICAgICAgICAgICA8aWQ+YXR0YWNoLXNvdXJjZXM8L2lkPgorICAgICAgICAgICAgICAgIDxnb2Fscz4KKyAgICAgICAgICAgICAgICAgIDxnb2FsPmphci1uby1mb3JrPC9nb2FsPgorICAgICAgICAgICAgICAgIDwvZ29hbHM+CisgICAgICAgICAgICAgIDwvZXhlY3V0aW9uPgorICAgICAgICAgICAgPC9leGVjdXRpb25zPgorICAgICAgICAgIDwvcGx1Z2luPgorICAgICAgICAgIDxwbHVnaW4+CisgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+CisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1ncGctcGx1Z2luPC9hcnRpZmFjdElkPgorICAgICAgICAgICAgPHZlcnNpb24+MS41PC92ZXJzaW9uPgorICAgICAgICAgICAgPGV4ZWN1dGlvbnM+CisgICAgICAgICAgICAgIDxleGVjdXRpb24+CisgICAgICAgICAgICAgICAgPGlkPnNpZ24tYXJ0aWZhY3RzPC9pZD4KKyAgICAgICAgICAgICAgICA8cGhhc2U+dmVyaWZ5PC9waGFzZT4KKyAgICAgICAgICAgICAgICA8Z29hbHM+CisgICAgICAgICAgICAgICAgICA8Z29hbD5zaWduPC9nb2FsPgorICAgICAgICAgICAgICAgIDwvZ29hbHM+CisgICAgICAgICAgICAgIDwvZXhlY3V0aW9uPgorICAgICAgICAgICAgPC9leGVjdXRpb25zPgorICAgICAgICAgIDwvcGx1Z2luPgorICAgICAgICA8L3BsdWdpbnM+CisgICAgICA8L2J1aWxkPgorICAgIDwvcHJvZmlsZT4KKyAgPC9wcm9maWxlcz4KKworPC9wcm9qZWN0PgpkaWZmIC0tZ2l0IGEvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL3NxdWFyZXVwL2hhaGEvaGFoYS8xLjMvaGFoYS0xLjMucG9tLm1kNSBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9zcXVhcmV1cC9oYWhhL2hhaGEvMS4zL2hhaGEtMS4zLnBvbS5tZDUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTUzY2JhYQotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9zcXVhcmV1cC9oYWhhL2hhaGEvMS4zL2hhaGEtMS4zLnBvbS5tZDUKQEAgLTAsMCArMSBAQAorMTM4NzcwY2U0ZjdjODI3ZTUzZTFjYTAwZTZkOGI4NjAKZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9zcXVhcmV1cC9oYWhhL2hhaGEvbWF2ZW4tbWV0YWRhdGEueG1sIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL3NxdWFyZXVwL2hhaGEvaGFoYS9tYXZlbi1tZXRhZGF0YS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjM2YzljNwotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9zcXVhcmV1cC9oYWhhL2hhaGEvbWF2ZW4tbWV0YWRhdGEueG1sCkBAIC0wLDAgKzEsMTMgQEAKKzxtZXRhZGF0YSBtb2RlbFZlcnNpb249IjEuMS4wIj4KKyAgICA8Z3JvdXBJZD5jb20uc3F1YXJldXAuaGFoYTwvZ3JvdXBJZD4KKyAgICA8YXJ0aWZhY3RJZD5oYWhhPC9hcnRpZmFjdElkPgorICAgIDx2ZXJzaW9uaW5nPgorICAgICAgICA8bGF0ZXN0PjEuMzwvbGF0ZXN0PgorICAgICAgICA8cmVsZWFzZT4xLjM8L3JlbGVhc2U+CisgICAgICAgIDx2ZXJzaW9ucz4KKyAgICAgICAgICAgIDx2ZXJzaW9uPjEuMjwvdmVyc2lvbj4KKyAgICAgICAgICAgIDx2ZXJzaW9uPjEuMzwvdmVyc2lvbj4KKyAgICAgICAgPC92ZXJzaW9ucz4KKyAgICAgICAgPGxhc3RVcGRhdGVkPjIwMTUwNjE1MTcwMzUzPC9sYXN0VXBkYXRlZD4KKyAgICA8L3ZlcnNpb25pbmc+Cis8L21ldGFkYXRhPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9zcXVhcmV1cC9oYWhhL2hhaGEvbWF2ZW4tbWV0YWRhdGEueG1sLm1kNSBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS9zcXVhcmV1cC9oYWhhL2hhaGEvbWF2ZW4tbWV0YWRhdGEueG1sLm1kNQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MmQ1NWE0Ci0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL3NxdWFyZXVwL2hhaGEvaGFoYS9tYXZlbi1tZXRhZGF0YS54bWwubWQ1CkBAIC0wLDAgKzEgQEAKKzY0YzEwMGE2ZmNmMGE4Y2EyNDAxNWQ2MmJkYmJiNWI2CmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vdHVubmVsdmlzaW9ubGFicy9hbnRscjQtYW5ub3RhdGlvbnMvNC41L05PVElDRSBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS90dW5uZWx2aXNpb25sYWJzL2FudGxyNC1hbm5vdGF0aW9ucy80LjUvTk9USUNFCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk1ZDBhMjUKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vdHVubmVsdmlzaW9ubGFicy9hbnRscjQtYW5ub3RhdGlvbnMvNC41L05PVElDRQpAQCAtMCwwICsxLDI2IEBACitbVGhlICJCU0QgbGljZW5zZSJdCitDb3B5cmlnaHQgKGMpIDIwMTUgVGVyZW5jZSBQYXJyLCBTYW0gSGFyd2VsbAorQWxsIHJpZ2h0cyByZXNlcnZlZC4KKworUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cittb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKK2FyZSBtZXQ6CisKKyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorCitUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUgorSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUworT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KK0lOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKK0lOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAorTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCitUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKK1RISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vdHVubmVsdmlzaW9ubGFicy9hbnRscjQtYW5ub3RhdGlvbnMvNC41L2FudGxyNC1hbm5vdGF0aW9ucy00LjUuamFyIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL3R1bm5lbHZpc2lvbmxhYnMvYW50bHI0LWFubm90YXRpb25zLzQuNS9hbnRscjQtYW5ub3RhdGlvbnMtNC41LmphcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MmZmYjU5Ci0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL3R1bm5lbHZpc2lvbmxhYnMvYW50bHI0LWFubm90YXRpb25zLzQuNS9hbnRscjQtYW5ub3RhdGlvbnMtNC41LmphcgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vdHVubmVsdmlzaW9ubGFicy9hbnRscjQtYW5ub3RhdGlvbnMvNC41L2FudGxyNC1hbm5vdGF0aW9ucy00LjUuamFyLnNoYTEgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vdHVubmVsdmlzaW9ubGFicy9hbnRscjQtYW5ub3RhdGlvbnMvNC41L2FudGxyNC1hbm5vdGF0aW9ucy00LjUuamFyLnNoYTEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTFmZDYzYwotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS90dW5uZWx2aXNpb25sYWJzL2FudGxyNC1hbm5vdGF0aW9ucy80LjUvYW50bHI0LWFubm90YXRpb25zLTQuNS5qYXIuc2hhMQpAQCAtMCwwICsxIEBACisyYzU5OTYxMjBhMGFjNjkwZGU1NzViZDhhYzM2MjUwZTY3MjBhNmI4ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL3R1bm5lbHZpc2lvbmxhYnMvYW50bHI0LWFubm90YXRpb25zLzQuNS9hbnRscjQtYW5ub3RhdGlvbnMtNC41LnBvbSBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS90dW5uZWx2aXNpb25sYWJzL2FudGxyNC1hbm5vdGF0aW9ucy80LjUvYW50bHI0LWFubm90YXRpb25zLTQuNS5wb20KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWUzYTY1OQotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS90dW5uZWx2aXNpb25sYWJzL2FudGxyNC1hbm5vdGF0aW9ucy80LjUvYW50bHI0LWFubm90YXRpb25zLTQuNS5wb20KQEAgLTAsMCArMSwzOCBAQAorDQorPHByb2plY3QgeG1sbnM9Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAgaHR0cDovL21hdmVuLmFwYWNoZS5vcmcveHNkL21hdmVuLTQuMC4wLnhzZCI+DQorICAgIDxtb2RlbFZlcnNpb24+NC4wLjA8L21vZGVsVmVyc2lvbj4NCisNCisgICAgPHBhcmVudD4NCisgICAgICAgIDxncm91cElkPmNvbS50dW5uZWx2aXNpb25sYWJzPC9ncm91cElkPg0KKyAgICAgICAgPGFydGlmYWN0SWQ+YW50bHI0LW1hc3RlcjwvYXJ0aWZhY3RJZD4NCisgICAgICAgIDx2ZXJzaW9uPjQuNTwvdmVyc2lvbj4NCisgICAgICAgIDxyZWxhdGl2ZVBhdGg+Li4vLi48L3JlbGF0aXZlUGF0aD4NCisgICAgPC9wYXJlbnQ+DQorDQorICAgIDxhcnRpZmFjdElkPmFudGxyNC1hbm5vdGF0aW9uczwvYXJ0aWZhY3RJZD4NCisNCisgICAgPG5hbWU+QU5UTFIgNCBSdW50aW1lIEFubm90YXRpb25zPC9uYW1lPg0KKyAgICA8ZGVzY3JpcHRpb24+QSBzZXQgb2YgYW5ub3RhdGlvbnMgdXNlZCB3aXRoaW4gdGhlIEFOVExSIDQgUnVudGltZTwvZGVzY3JpcHRpb24+DQorDQorICAgIDxidWlsZD4NCisgICAgICAgIDxzb3VyY2VEaXJlY3Rvcnk+c3JjPC9zb3VyY2VEaXJlY3Rvcnk+DQorICAgICAgICA8cmVzb3VyY2VzPg0KKyAgICAgICAgICAgIDxyZXNvdXJjZT4NCisgICAgICAgICAgICAgICAgPGRpcmVjdG9yeT5yZXNvdXJjZXM8L2RpcmVjdG9yeT4NCisgICAgICAgICAgICA8L3Jlc291cmNlPg0KKyAgICAgICAgPC9yZXNvdXJjZXM+DQorDQorICAgICAgICA8cGx1Z2lucz4NCisgICAgICAgICAgICA8cGx1Z2luPg0KKyAgICAgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+DQorICAgICAgICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLWNvbXBpbGVyLXBsdWdpbjwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgICAgICAgPGNvbmZpZ3VyYXRpb24+DQorICAgICAgICAgICAgICAgICAgICA8Y29tcGlsZXJBcmdzPg0KKyAgICAgICAgICAgICAgICAgICAgICAgIDxjb21waWxlckFyZz4tcHJvYzpub25lPC9jb21waWxlckFyZz4NCisgICAgICAgICAgICAgICAgICAgIDwvY29tcGlsZXJBcmdzPg0KKyAgICAgICAgICAgICAgICA8L2NvbmZpZ3VyYXRpb24+DQorICAgICAgICAgICAgPC9wbHVnaW4+DQorICAgICAgICA8L3BsdWdpbnM+DQorICAgIDwvYnVpbGQ+DQorDQorPC9wcm9qZWN0Pg0KZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS90dW5uZWx2aXNpb25sYWJzL2FudGxyNC1hbm5vdGF0aW9ucy80LjUvYW50bHI0LWFubm90YXRpb25zLTQuNS5wb20uc2hhMSBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS90dW5uZWx2aXNpb25sYWJzL2FudGxyNC1hbm5vdGF0aW9ucy80LjUvYW50bHI0LWFubm90YXRpb25zLTQuNS5wb20uc2hhMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMTY4OTdjCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL3R1bm5lbHZpc2lvbmxhYnMvYW50bHI0LWFubm90YXRpb25zLzQuNS9hbnRscjQtYW5ub3RhdGlvbnMtNC41LnBvbS5zaGExCkBAIC0wLDAgKzEgQEAKKzNkZmFjMzcwYjNmY2E2ZjkwODYxZjNhMTBmZDU0NDVjYTZmOGNjMWIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vdHVubmVsdmlzaW9ubGFicy9hbnRscjQtbWFzdGVyLzQuNS9fcmVtb3RlLnJlcG9zaXRvcmllcyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS90dW5uZWx2aXNpb25sYWJzL2FudGxyNC1tYXN0ZXIvNC41L19yZW1vdGUucmVwb3NpdG9yaWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU0ODI4NzYKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vdHVubmVsdmlzaW9ubGFicy9hbnRscjQtbWFzdGVyLzQuNS9fcmVtb3RlLnJlcG9zaXRvcmllcwpAQCAtMCwwICsxLDMgQEAKKyNOT1RFOiBUaGlzIGlzIGFuIEFldGhlciBpbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiBmaWxlLCBpdHMgZm9ybWF0IGNhbiBiZSBjaGFuZ2VkIHdpdGhvdXQgcHJpb3Igbm90aWNlLgorI1dlZCBKdWwgMjIgMTQ6MjI6MzIgUERUIDIwMTUKK2FudGxyNC1tYXN0ZXItNC41LnBvbT5jZW50cmFsPQpkaWZmIC0tZ2l0IGEvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL3R1bm5lbHZpc2lvbmxhYnMvYW50bHI0LW1hc3Rlci80LjUvYW50bHI0LW1hc3Rlci00LjUucG9tIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL3R1bm5lbHZpc2lvbmxhYnMvYW50bHI0LW1hc3Rlci80LjUvYW50bHI0LW1hc3Rlci00LjUucG9tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI2OTVmNDQKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vdHVubmVsdmlzaW9ubGFicy9hbnRscjQtbWFzdGVyLzQuNS9hbnRscjQtbWFzdGVyLTQuNS5wb20KQEAgLTAsMCArMSwyMTEgQEAKKzxwcm9qZWN0IHhtbG5zPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL21hdmVuLXY0XzBfMC54c2QiPg0KKw0KKyAgICA8cGFyZW50Pg0KKyAgICAgICAgPGdyb3VwSWQ+b3JnLnNvbmF0eXBlLm9zczwvZ3JvdXBJZD4NCisgICAgICAgIDxhcnRpZmFjdElkPm9zcy1wYXJlbnQ8L2FydGlmYWN0SWQ+DQorICAgICAgICA8dmVyc2lvbj45PC92ZXJzaW9uPg0KKyAgICA8L3BhcmVudD4NCisNCisgICAgPG1vZGVsVmVyc2lvbj40LjAuMDwvbW9kZWxWZXJzaW9uPg0KKyAgICA8Z3JvdXBJZD5jb20udHVubmVsdmlzaW9ubGFiczwvZ3JvdXBJZD4NCisgICAgPGFydGlmYWN0SWQ+YW50bHI0LW1hc3RlcjwvYXJ0aWZhY3RJZD4NCisgICAgPHZlcnNpb24+NC41PC92ZXJzaW9uPg0KKyAgICA8cGFja2FnaW5nPnBvbTwvcGFja2FnaW5nPg0KKw0KKyAgICA8bmFtZT5BTlRMUiA0PC9uYW1lPg0KKyAgICA8ZGVzY3JpcHRpb24+QU5UTFIgNCBNYXN0ZXIgQnVpbGQgUE9NPC9kZXNjcmlwdGlvbj4NCisgICAgPHVybD5odHRwOi8vd3d3LmFudGxyLm9yZzwvdXJsPg0KKyAgICA8aW5jZXB0aW9uWWVhcj4xOTkyPC9pbmNlcHRpb25ZZWFyPg0KKyAgICA8b3JnYW5pemF0aW9uPg0KKyAgICAgICAgPG5hbWU+QU5UTFI8L25hbWU+DQorICAgICAgICA8dXJsPmh0dHA6Ly93d3cuYW50bHIub3JnPC91cmw+DQorICAgIDwvb3JnYW5pemF0aW9uPg0KKw0KKyAgICA8bGljZW5zZXM+DQorICAgICAgICA8bGljZW5zZT4NCisgICAgICAgICAgICA8bmFtZT5UaGUgQlNEIExpY2Vuc2U8L25hbWU+DQorICAgICAgICAgICAgPHVybD5odHRwOi8vd3d3LmFudGxyLm9yZy9saWNlbnNlLmh0bWw8L3VybD4NCisgICAgICAgICAgICA8ZGlzdHJpYnV0aW9uPnJlcG88L2Rpc3RyaWJ1dGlvbj4NCisgICAgICAgIDwvbGljZW5zZT4NCisgICAgPC9saWNlbnNlcz4NCisNCisgICAgPGRldmVsb3BlcnM+DQorDQorICAgICAgICA8ZGV2ZWxvcGVyPg0KKyAgICAgICAgICAgIDxuYW1lPlRlcmVuY2UgUGFycjwvbmFtZT4NCisgICAgICAgICAgICA8dXJsPmh0dHA6Ly9hbnRsci5vcmcvd2lraS9kaXNwbGF5L35hZG1pbi9Ib21lPC91cmw+DQorICAgICAgICAgICAgPHJvbGVzPg0KKyAgICAgICAgICAgICAgICA8cm9sZT5Qcm9qZWN0IGxlYWQgLSBBTlRMUjwvcm9sZT4NCisgICAgICAgICAgICA8L3JvbGVzPg0KKyAgICAgICAgPC9kZXZlbG9wZXI+DQorDQorICAgICAgICA8ZGV2ZWxvcGVyPg0KKyAgICAgICAgICAgIDxuYW1lPlNhbSBIYXJ3ZWxsPC9uYW1lPg0KKyAgICAgICAgICAgIDx1cmw+aHR0cDovL3R1bm5lbHZpc2lvbmxhYnMuY29tPC91cmw+DQorICAgICAgICAgICAgPHJvbGVzPg0KKyAgICAgICAgICAgICAgICA8cm9sZT5EZXZlbG9wZXI8L3JvbGU+DQorICAgICAgICAgICAgPC9yb2xlcz4NCisgICAgICAgIDwvZGV2ZWxvcGVyPg0KKw0KKyAgICAgICAgPGRldmVsb3Blcj4NCisgICAgICAgICAgICA8bmFtZT5KaW0gSWRsZTwvbmFtZT4NCisgICAgICAgICAgICA8ZW1haWw+amltaUBpZGxlLndzPC9lbWFpbD4NCisgICAgICAgICAgICA8dXJsPmh0dHA6Ly93d3cubGlua2VkaW4uY29tL2luL2ppbWlkbGU8L3VybD4NCisgICAgICAgICAgICA8cm9sZXM+DQorICAgICAgICAgICAgICAgIDxyb2xlPkRldmVsb3BlciAtIE1hdmVuIFBsdWdpbjwvcm9sZT4NCisgICAgICAgICAgICA8L3JvbGVzPg0KKyAgICAgICAgPC9kZXZlbG9wZXI+DQorDQorICAgIDwvZGV2ZWxvcGVycz4NCisNCisgICAgPG1vZHVsZXM+DQorICAgICAgICA8bW9kdWxlPnJ1bnRpbWUvSmF2YTwvbW9kdWxlPg0KKyAgICAgICAgPG1vZHVsZT5ydW50aW1lL0phdmFBbm5vdGF0aW9uczwvbW9kdWxlPg0KKyAgICAgICAgPG1vZHVsZT50b29sPC9tb2R1bGU+DQorICAgICAgICA8bW9kdWxlPmFudGxyNC1tYXZlbi1wbHVnaW48L21vZHVsZT4NCisgICAgPC9tb2R1bGVzPg0KKw0KKyAgICA8cHJvcGVydGllcz4NCisgICAgICAgIDxwcm9qZWN0LmJ1aWxkLnNvdXJjZUVuY29kaW5nPlVURi04PC9wcm9qZWN0LmJ1aWxkLnNvdXJjZUVuY29kaW5nPg0KKyAgICAgICAgPHByb2plY3QucmVwb3J0aW5nLm91dHB1dEVuY29kaW5nPlVURi04PC9wcm9qZWN0LnJlcG9ydGluZy5vdXRwdXRFbmNvZGluZz4NCisgICAgICAgIDxqYXZhNS5ob21lPiR7ZW52LkpBVkE1X0hPTUV9PC9qYXZhNS5ob21lPg0KKyAgICAgICAgPGphdmE2LmhvbWU+JHtlbnYuSkFWQTZfSE9NRX08L2phdmE2LmhvbWU+DQorICAgICAgICA8Ym9vdGNsYXNzcGF0aC5qYXZhNT4ke2phdmE1LmhvbWV9L2xpYi9ydC5qYXI8L2Jvb3RjbGFzc3BhdGguamF2YTU+DQorICAgICAgICA8Ym9vdGNsYXNzcGF0aC5qYXZhNj4ke2phdmE2LmhvbWV9L2xpYi9ydC5qYXI8L2Jvb3RjbGFzc3BhdGguamF2YTY+DQorICAgICAgICA8Ym9vdGNsYXNzcGF0aC5jb21waWxlPiR7Ym9vdGNsYXNzcGF0aC5qYXZhNn08L2Jvb3RjbGFzc3BhdGguY29tcGlsZT4NCisgICAgICAgIDxib290Y2xhc3NwYXRoLnRlc3RDb21waWxlPiR7Ym9vdGNsYXNzcGF0aC5qYXZhNn08L2Jvb3RjbGFzc3BhdGgudGVzdENvbXBpbGU+DQorICAgICAgICA8YW50bHIudGVzdGlucHJvY2Vzcz50cnVlPC9hbnRsci50ZXN0aW5wcm9jZXNzPg0KKyAgICA8L3Byb3BlcnRpZXM+DQorDQorICAgIDxtYWlsaW5nTGlzdHM+DQorICAgICAgICA8bWFpbGluZ0xpc3Q+DQorICAgICAgICAgICAgPG5hbWU+YW50bHItZGlzY3Vzc2lvbjwvbmFtZT4NCisgICAgICAgICAgICA8YXJjaGl2ZT5odHRwczovL2dyb3Vwcy5nb29nbGUuY29tL2ZvcnVtLz9mcm9tZ3JvdXBzIyFmb3J1bS9hbnRsci1kaXNjdXNzaW9uPC9hcmNoaXZlPg0KKyAgICAgICAgPC9tYWlsaW5nTGlzdD4NCisgICAgPC9tYWlsaW5nTGlzdHM+DQorDQorICAgIDxpc3N1ZU1hbmFnZW1lbnQ+DQorICAgICAgICA8c3lzdGVtPkdpdEh1YiBJc3N1ZXM8L3N5c3RlbT4NCisgICAgICAgIDx1cmw+aHR0cHM6Ly9naXRodWIuY29tL2FudGxyL2FudGxyNC9pc3N1ZXM8L3VybD4NCisgICAgPC9pc3N1ZU1hbmFnZW1lbnQ+DQorDQorICAgIDxzY20+DQorICAgICAgICA8dXJsPmh0dHBzOi8vZ2l0aHViLmNvbS9hbnRsci9hbnRscjQvdHJlZS9tYXN0ZXI8L3VybD4NCisgICAgICAgIDxjb25uZWN0aW9uPnNjbTpnaXQ6Z2l0Oi8vZ2l0aHViLmNvbS9hbnRsci9hbnRscjQuZ2l0PC9jb25uZWN0aW9uPg0KKyAgICAgICAgPGRldmVsb3BlckNvbm5lY3Rpb24+c2NtOmdpdDpnaXRAZ2l0aHViLmNvbTphbnRsci9hbnRscjQuZ2l0PC9kZXZlbG9wZXJDb25uZWN0aW9uPg0KKyAgICAgIDx0YWc+NC41LW9wdDwvdGFnPg0KKyAgPC9zY20+DQorDQorICAgIDxwcm9maWxlcz4NCisgICAgICAgIDxwcm9maWxlPg0KKyAgICAgICAgICAgIDxpZD5zb25hdHlwZS1vc3MtcmVsZWFzZTwvaWQ+DQorICAgICAgICAgICAgPGJ1aWxkPg0KKyAgICAgICAgICAgICAgICA8cGx1Z2lucz4NCisgICAgICAgICAgICAgICAgICAgIDxwbHVnaW4+DQorICAgICAgICAgICAgICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPg0KKyAgICAgICAgICAgICAgICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLWNvbXBpbGVyLXBsdWdpbjwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgICAgICAgICAgICAgICA8ZXhlY3V0aW9ucz4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGV4ZWN1dGlvbj4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpZD5kZWZhdWx0LWNvbXBpbGU8L2lkPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvbmZpZ3VyYXRpb24+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvbXBpbGVyQXJncz4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFyZz4tWGxpbnQ8L2FyZz4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFyZz4tWGxpbnQ6LXNlcmlhbDwvYXJnPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXJnPi1ib290Y2xhc3NwYXRoPC9hcmc+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhcmc+JHtib290Y2xhc3NwYXRoLmNvbXBpbGV9PC9hcmc+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jb21waWxlckFyZ3M+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NvbmZpZ3VyYXRpb24+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZXhlY3V0aW9uPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZXhlY3V0aW9uPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlkPmRlZmF1bHQtdGVzdENvbXBpbGU8L2lkPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvbmZpZ3VyYXRpb24+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvbXBpbGVyQXJncz4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFyZz4tWGxpbnQ8L2FyZz4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFyZz4tWGxpbnQ6LXNlcmlhbDwvYXJnPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXJnPi1ib290Y2xhc3NwYXRoPC9hcmc+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhcmc+JHtib290Y2xhc3NwYXRoLnRlc3RDb21waWxlfTwvYXJnPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29tcGlsZXJBcmdzPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jb25maWd1cmF0aW9uPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2V4ZWN1dGlvbj4NCisgICAgICAgICAgICAgICAgICAgICAgICA8L2V4ZWN1dGlvbnM+DQorICAgICAgICAgICAgICAgICAgICA8L3BsdWdpbj4NCisgICAgICAgICAgICAgICAgPC9wbHVnaW5zPg0KKyAgICAgICAgICAgIDwvYnVpbGQ+DQorICAgICAgICA8L3Byb2ZpbGU+DQorICAgIDwvcHJvZmlsZXM+DQorDQorICAgIDxidWlsZD4NCisgICAgICAgIDxwbHVnaW5zPg0KKyAgICAgICAgICAgIDxwbHVnaW4+DQorICAgICAgICAgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4NCisgICAgICAgICAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tY29tcGlsZXItcGx1Z2luPC9hcnRpZmFjdElkPg0KKyAgICAgICAgICAgICAgICA8dmVyc2lvbj4zLjM8L3ZlcnNpb24+DQorICAgICAgICAgICAgICAgIDxjb25maWd1cmF0aW9uPg0KKyAgICAgICAgICAgICAgICAgICAgPHNob3dXYXJuaW5ncz50cnVlPC9zaG93V2FybmluZ3M+DQorICAgICAgICAgICAgICAgICAgICA8c2hvd0RlcHJlY2F0aW9uPnRydWU8L3Nob3dEZXByZWNhdGlvbj4NCisgICAgICAgICAgICAgICAgICAgIDxzb3VyY2U+MS42PC9zb3VyY2U+DQorICAgICAgICAgICAgICAgICAgICA8dGFyZ2V0PjEuNjwvdGFyZ2V0Pg0KKyAgICAgICAgICAgICAgICAgICAgPGNvbXBpbGVyQXJncz4NCisgICAgICAgICAgICAgICAgICAgICAgICA8YXJnPi1YbGludDwvYXJnPg0KKyAgICAgICAgICAgICAgICAgICAgICAgIDxhcmc+LVhsaW50Oi1zZXJpYWw8L2FyZz4NCisgICAgICAgICAgICAgICAgICAgIDwvY29tcGlsZXJBcmdzPg0KKyAgICAgICAgICAgICAgICA8L2NvbmZpZ3VyYXRpb24+DQorICAgICAgICAgICAgPC9wbHVnaW4+DQorDQorICAgICAgICAgICAgPHBsdWdpbj4NCisgICAgICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPg0KKyAgICAgICAgICAgICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1qYXItcGx1Z2luPC9hcnRpZmFjdElkPg0KKyAgICAgICAgICAgICAgICA8dmVyc2lvbj4yLjY8L3ZlcnNpb24+DQorICAgICAgICAgICAgICAgIDxjb25maWd1cmF0aW9uPg0KKyAgICAgICAgICAgICAgICAgICAgPGFyY2hpdmU+DQorICAgICAgICAgICAgICAgICAgICAgICAgPG1hbmlmZXN0Pg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWRkRGVmYXVsdEltcGxlbWVudGF0aW9uRW50cmllcz50cnVlPC9hZGREZWZhdWx0SW1wbGVtZW50YXRpb25FbnRyaWVzPg0KKyAgICAgICAgICAgICAgICAgICAgICAgIDwvbWFuaWZlc3Q+DQorICAgICAgICAgICAgICAgICAgICA8L2FyY2hpdmU+DQorICAgICAgICAgICAgICAgIDwvY29uZmlndXJhdGlvbj4NCisgICAgICAgICAgICA8L3BsdWdpbj4NCisNCisgICAgICAgICAgICA8cGx1Z2luPg0KKyAgICAgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+DQorICAgICAgICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLXN1cmVmaXJlLXBsdWdpbjwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgICAgICAgPHZlcnNpb24+Mi4xOC4xPC92ZXJzaW9uPg0KKyAgICAgICAgICAgIDwvcGx1Z2luPg0KKw0KKyAgICAgICAgICAgIDxwbHVnaW4+DQorICAgICAgICAgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4NCisgICAgICAgICAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tc291cmNlLXBsdWdpbjwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgICAgICAgPCEtLSBvdmVycmlkZSB0aGUgdmVyc2lvbiBpbmhlcml0ZWQgZnJvbSB0aGUgcGFyZW50IC0tPg0KKyAgICAgICAgICAgICAgICA8dmVyc2lvbj4yLjQ8L3ZlcnNpb24+DQorICAgICAgICAgICAgPC9wbHVnaW4+DQorDQorICAgICAgICAgICAgPHBsdWdpbj4NCisgICAgICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPg0KKyAgICAgICAgICAgICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1qYXZhZG9jLXBsdWdpbjwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgICAgICAgPCEtLSBvdmVycmlkZSB0aGUgdmVyc2lvbiBpbmhlcml0ZWQgZnJvbSB0aGUgcGFyZW50IC0tPg0KKyAgICAgICAgICAgICAgICA8dmVyc2lvbj4yLjEwLjM8L3ZlcnNpb24+DQorICAgICAgICAgICAgICAgIDxjb25maWd1cmF0aW9uPg0KKyAgICAgICAgICAgICAgICAgICAgPHF1aWV0PnRydWU8L3F1aWV0Pg0KKyAgICAgICAgICAgICAgICA8L2NvbmZpZ3VyYXRpb24+DQorICAgICAgICAgICAgPC9wbHVnaW4+DQorDQorICAgICAgICAgICAgPHBsdWdpbj4NCisgICAgICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPg0KKyAgICAgICAgICAgICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1ncGctcGx1Z2luPC9hcnRpZmFjdElkPg0KKyAgICAgICAgICAgICAgICA8IS0tIG92ZXJyaWRlIHRoZSB2ZXJzaW9uIGluaGVyaXRlZCBmcm9tIHRoZSBwYXJlbnQgLS0+DQorICAgICAgICAgICAgICAgIDx2ZXJzaW9uPjEuNjwvdmVyc2lvbj4NCisgICAgICAgICAgICA8L3BsdWdpbj4NCisNCisgICAgICAgICAgICA8cGx1Z2luPg0KKyAgICAgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+DQorICAgICAgICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLXJlbGVhc2UtcGx1Z2luPC9hcnRpZmFjdElkPg0KKyAgICAgICAgICAgICAgICA8IS0tIG92ZXJyaWRlIHRoZSB2ZXJzaW9uIGluaGVyaXRlZCBmcm9tIHRoZSBwYXJlbnQgLS0+DQorICAgICAgICAgICAgICAgIDx2ZXJzaW9uPjIuNS4yPC92ZXJzaW9uPg0KKyAgICAgICAgICAgICAgICA8Y29uZmlndXJhdGlvbj4NCisgICAgICAgICAgICAgICAgICAgIDxhcmd1bWVudHM+LVBzb25hdHlwZS1vc3MtcmVsZWFzZSAke3JlbGVhc2UuYXJndW1lbnRzfTwvYXJndW1lbnRzPg0KKyAgICAgICAgICAgICAgICAgICAgPGF1dG9WZXJzaW9uU3VibW9kdWxlcz50cnVlPC9hdXRvVmVyc2lvblN1Ym1vZHVsZXM+DQorICAgICAgICAgICAgICAgICAgICA8dGFnTmFtZUZvcm1hdD5Ae3Byb2plY3QudmVyc2lvbn0tb3B0PC90YWdOYW1lRm9ybWF0Pg0KKyAgICAgICAgICAgICAgICA8L2NvbmZpZ3VyYXRpb24+DQorICAgICAgICAgICAgPC9wbHVnaW4+DQorICAgICAgICA8L3BsdWdpbnM+DQorICAgIDwvYnVpbGQ+DQorPC9wcm9qZWN0Pg0KZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS90dW5uZWx2aXNpb25sYWJzL2FudGxyNC1tYXN0ZXIvNC41L2FudGxyNC1tYXN0ZXItNC41LnBvbS5zaGExIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL3R1bm5lbHZpc2lvbmxhYnMvYW50bHI0LW1hc3Rlci80LjUvYW50bHI0LW1hc3Rlci00LjUucG9tLnNoYTEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2I1ZTNiNwotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS90dW5uZWx2aXNpb25sYWJzL2FudGxyNC1tYXN0ZXIvNC41L2FudGxyNC1tYXN0ZXItNC41LnBvbS5zaGExCkBAIC0wLDAgKzEgQEAKKzZkYWRiOTBhZGM5YjM4NzlhNGZiOTYyNWIwODcxMWU1NzgyNTJkZmIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vdHVubmVsdmlzaW9ubGFicy9hbnRscjQtcnVudGltZS80LjUvTk9USUNFIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL3R1bm5lbHZpc2lvbmxhYnMvYW50bHI0LXJ1bnRpbWUvNC41L05PVElDRQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NWQwYTI1Ci0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL3R1bm5lbHZpc2lvbmxhYnMvYW50bHI0LXJ1bnRpbWUvNC41L05PVElDRQpAQCAtMCwwICsxLDI2IEBACitbVGhlICJCU0QgbGljZW5zZSJdCitDb3B5cmlnaHQgKGMpIDIwMTUgVGVyZW5jZSBQYXJyLCBTYW0gSGFyd2VsbAorQWxsIHJpZ2h0cyByZXNlcnZlZC4KKworUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cittb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKK2FyZSBtZXQ6CisKKyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorCitUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUgorSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUworT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KK0lOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKK0lOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAorTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCitUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKK1RISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vdHVubmVsdmlzaW9ubGFicy9hbnRscjQtcnVudGltZS80LjUvYW50bHI0LXJ1bnRpbWUtNC41LmphciBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS90dW5uZWx2aXNpb25sYWJzL2FudGxyNC1ydW50aW1lLzQuNS9hbnRscjQtcnVudGltZS00LjUuamFyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIxMTZlNmEKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vdHVubmVsdmlzaW9ubGFicy9hbnRscjQtcnVudGltZS80LjUvYW50bHI0LXJ1bnRpbWUtNC41LmphcgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vdHVubmVsdmlzaW9ubGFicy9hbnRscjQtcnVudGltZS80LjUvYW50bHI0LXJ1bnRpbWUtNC41Lmphci5zaGExIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL3R1bm5lbHZpc2lvbmxhYnMvYW50bHI0LXJ1bnRpbWUvNC41L2FudGxyNC1ydW50aW1lLTQuNS5qYXIuc2hhMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41Y2QzMmZlCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL3R1bm5lbHZpc2lvbmxhYnMvYW50bHI0LXJ1bnRpbWUvNC41L2FudGxyNC1ydW50aW1lLTQuNS5qYXIuc2hhMQpAQCAtMCwwICsxIEBACis1MDY3NDc4ODI3YTk4ZjVhYjc3ZDlmYzU3NzkwM2VkYzU3YWYzZGE0ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL3R1bm5lbHZpc2lvbmxhYnMvYW50bHI0LXJ1bnRpbWUvNC41L2FudGxyNC1ydW50aW1lLTQuNS5wb20gYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vdHVubmVsdmlzaW9ubGFicy9hbnRscjQtcnVudGltZS80LjUvYW50bHI0LXJ1bnRpbWUtNC41LnBvbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MjVkOGVlCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL3R1bm5lbHZpc2lvbmxhYnMvYW50bHI0LXJ1bnRpbWUvNC41L2FudGxyNC1ydW50aW1lLTQuNS5wb20KQEAgLTAsMCArMSwxMzcgQEAKKw0KKzxwcm9qZWN0IHhtbG5zPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL3hzZC9tYXZlbi00LjAuMC54c2QiPg0KKyAgICA8bW9kZWxWZXJzaW9uPjQuMC4wPC9tb2RlbFZlcnNpb24+DQorDQorICAgIDxwYXJlbnQ+DQorICAgICAgICA8Z3JvdXBJZD5jb20udHVubmVsdmlzaW9ubGFiczwvZ3JvdXBJZD4NCisgICAgICAgIDxhcnRpZmFjdElkPmFudGxyNC1tYXN0ZXI8L2FydGlmYWN0SWQ+DQorICAgICAgICA8dmVyc2lvbj40LjU8L3ZlcnNpb24+DQorICAgICAgICA8cmVsYXRpdmVQYXRoPi4uLy4uPC9yZWxhdGl2ZVBhdGg+DQorICAgIDwvcGFyZW50Pg0KKw0KKyAgICA8YXJ0aWZhY3RJZD5hbnRscjQtcnVudGltZTwvYXJ0aWZhY3RJZD4NCisNCisgICAgPG5hbWU+QU5UTFIgNCBSdW50aW1lPC9uYW1lPg0KKyAgICA8ZGVzY3JpcHRpb24+VGhlIEFOVExSIDQgUnVudGltZTwvZGVzY3JpcHRpb24+DQorDQorICAgIDxwcm9wZXJ0aWVzPg0KKyAgICAgICAgPCEtLSBBc3N1bWVzIGRvdCBpcyBpbiB0aGUgc3lzdGVtIHBhdGgsIG9yIHNwZWNpZmllZCBmb3IgdGhlIGJ1aWxkLiAtLT4NCisgICAgICAgIDxkb3QucGF0aD5kb3Q8L2RvdC5wYXRoPg0KKyAgICA8L3Byb3BlcnRpZXM+DQorDQorICAgIDxkZXBlbmRlbmNpZXM+DQorICAgICAgICA8ZGVwZW5kZW5jeT4NCisgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuYWJlZ28udHJlZWxheW91dDwvZ3JvdXBJZD4NCisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5vcmcuYWJlZ28udHJlZWxheW91dC5jb3JlPC9hcnRpZmFjdElkPg0KKyAgICAgICAgICAgIDx2ZXJzaW9uPjEuMC4xPC92ZXJzaW9uPg0KKyAgICAgICAgICAgIDxzY29wZT5jb21waWxlPC9zY29wZT4NCisgICAgICAgIDwvZGVwZW5kZW5jeT4NCisNCisgICAgICAgIDxkZXBlbmRlbmN5Pg0KKyAgICAgICAgICAgIDxncm91cElkPmNvbS50dW5uZWx2aXNpb25sYWJzPC9ncm91cElkPg0KKyAgICAgICAgICAgIDxhcnRpZmFjdElkPmFudGxyNC1hbm5vdGF0aW9uczwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgICA8dmVyc2lvbj4ke3Byb2plY3QudmVyc2lvbn08L3ZlcnNpb24+DQorICAgICAgICAgICAgPHNjb3BlPmNvbXBpbGU8L3Njb3BlPg0KKyAgICAgICAgPC9kZXBlbmRlbmN5Pg0KKyAgICA8L2RlcGVuZGVuY2llcz4NCisNCisgICAgPHByb2ZpbGVzPg0KKyAgICAgICAgPHByb2ZpbGU+DQorICAgICAgICAgICAgPGlkPnNvbmF0eXBlLW9zcy1yZWxlYXNlPC9pZD4NCisgICAgICAgICAgICA8YnVpbGQ+DQorICAgICAgICAgICAgICAgIDxwbHVnaW5zPg0KKyAgICAgICAgICAgICAgICAgICAgPHBsdWdpbj4NCisgICAgICAgICAgICAgICAgICAgICAgICA8Z3JvdXBJZD51cy5icnlvbjwvZ3JvdXBJZD4NCisgICAgICAgICAgICAgICAgICAgICAgICA8YXJ0aWZhY3RJZD5ncmFwaHZpei1tYXZlbi1wbHVnaW48L2FydGlmYWN0SWQ+DQorICAgICAgICAgICAgICAgICAgICAgICAgPHZlcnNpb24+MS4wPC92ZXJzaW9uPg0KKyAgICAgICAgICAgICAgICAgICAgICAgIDxleGVjdXRpb25zPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZXhlY3V0aW9uPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGdvYWxzPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnb2FsPmRvdDwvZ29hbD4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZ29hbHM+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29uZmlndXJhdGlvbj4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZG90PiR7ZG90LnBhdGh9PC9kb3Q+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlc3RkaXI+JHtwcm9qZWN0LmJ1aWxkLmRpcmVjdG9yeX0vYXBpZG9jczwvZGVzdGRpcj4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3V0cHV0PnN2Zzwvb3V0cHV0Pg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jb25maWd1cmF0aW9uPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2V4ZWN1dGlvbj4NCisgICAgICAgICAgICAgICAgICAgICAgICA8L2V4ZWN1dGlvbnM+DQorICAgICAgICAgICAgICAgICAgICA8L3BsdWdpbj4NCisNCisgICAgICAgICAgICAgICAgICAgIDxwbHVnaW4+DQorICAgICAgICAgICAgICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPg0KKyAgICAgICAgICAgICAgICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLWphdmFkb2MtcGx1Z2luPC9hcnRpZmFjdElkPg0KKyAgICAgICAgICAgICAgICAgICAgICAgIDxjb25maWd1cmF0aW9uPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5jbHVkZURlcGVuZGVuY3lTb3VyY2VzPnRydWU8L2luY2x1ZGVEZXBlbmRlbmN5U291cmNlcz4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlcGVuZGVuY3lTb3VyY2VJbmNsdWRlcz4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZXBlbmRlbmN5U291cmNlSW5jbHVkZT5vcmcuYW50bHI6KjwvZGVwZW5kZW5jeVNvdXJjZUluY2x1ZGU+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVwZW5kZW5jeVNvdXJjZUluY2x1ZGVzPg0KKyAgICAgICAgICAgICAgICAgICAgICAgIDwvY29uZmlndXJhdGlvbj4NCisgICAgICAgICAgICAgICAgICAgIDwvcGx1Z2luPg0KKw0KKyAgICAgICAgICAgICAgICAgICAgPHBsdWdpbj4NCisgICAgICAgICAgICAgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+DQorICAgICAgICAgICAgICAgICAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tc2hhZGUtcGx1Z2luPC9hcnRpZmFjdElkPg0KKyAgICAgICAgICAgICAgICAgICAgICAgIDx2ZXJzaW9uPjIuMjwvdmVyc2lvbj4NCisgICAgICAgICAgICAgICAgICAgICAgICA8aW5oZXJpdGVkPmZhbHNlPC9pbmhlcml0ZWQ+DQorICAgICAgICAgICAgICAgICAgICAgICAgPGV4ZWN1dGlvbnM+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxleGVjdXRpb24+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGhhc2U+cGFja2FnZTwvcGhhc2U+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Z29hbHM+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGdvYWw+c2hhZGU8L2dvYWw+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2dvYWxzPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvbmZpZ3VyYXRpb24+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1pbmltaXplSmFyPmZhbHNlPC9taW5pbWl6ZUphcj4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y3JlYXRlRGVwZW5kZW5jeVJlZHVjZWRQb20+ZmFsc2U8L2NyZWF0ZURlcGVuZGVuY3lSZWR1Y2VkUG9tPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzaGFkZWRBcnRpZmFjdEF0dGFjaGVkPnRydWU8L3NoYWRlZEFydGlmYWN0QXR0YWNoZWQ+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNyZWF0ZVNvdXJjZXNKYXI+dHJ1ZTwvY3JlYXRlU291cmNlc0phcj4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2hhZGVkQ2xhc3NpZmllck5hbWU+Y29tcGxldGU8L3NoYWRlZENsYXNzaWZpZXJOYW1lPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jb25maWd1cmF0aW9uPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2V4ZWN1dGlvbj4NCisgICAgICAgICAgICAgICAgICAgICAgICA8L2V4ZWN1dGlvbnM+DQorICAgICAgICAgICAgICAgICAgICA8L3BsdWdpbj4NCisgICAgICAgICAgICAgICAgPC9wbHVnaW5zPg0KKyAgICAgICAgICAgIDwvYnVpbGQ+DQorICAgICAgICA8L3Byb2ZpbGU+DQorICAgIDwvcHJvZmlsZXM+DQorDQorICAgIDxidWlsZD4NCisNCisgICAgICAgIDxzb3VyY2VEaXJlY3Rvcnk+c3JjPC9zb3VyY2VEaXJlY3Rvcnk+DQorICAgICAgICA8cmVzb3VyY2VzPg0KKyAgICAgICAgICAgIDxyZXNvdXJjZT4NCisgICAgICAgICAgICAgICAgPGRpcmVjdG9yeT5yZXNvdXJjZXM8L2RpcmVjdG9yeT4NCisgICAgICAgICAgICA8L3Jlc291cmNlPg0KKyAgICAgICAgPC9yZXNvdXJjZXM+DQorDQorICAgICAgICA8cGx1Z2lucz4NCisgICAgICAgICAgICA8cGx1Z2luPg0KKyAgICAgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+DQorICAgICAgICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLWNvbXBpbGVyLXBsdWdpbjwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgICAgICAgPGNvbmZpZ3VyYXRpb24+DQorICAgICAgICAgICAgICAgICAgICA8Y29tcGlsZXJBcmdzPg0KKyAgICAgICAgICAgICAgICAgICAgICAgIDxjb21waWxlckFyZz4tcHJvY2Vzc29yPC9jb21waWxlckFyZz4NCisgICAgICAgICAgICAgICAgICAgICAgICA8Y29tcGlsZXJBcmc+b3JnLmFudGxyLnY0LnJ1bnRpbWUubWlzYy5OdWxsVXNhZ2VQcm9jZXNzb3I8L2NvbXBpbGVyQXJnPg0KKyAgICAgICAgICAgICAgICAgICAgPC9jb21waWxlckFyZ3M+DQorICAgICAgICAgICAgICAgIDwvY29uZmlndXJhdGlvbj4NCisgICAgICAgICAgICA8L3BsdWdpbj4NCisNCisgICAgICAgICAgICA8cGx1Z2luPg0KKyAgICAgICAgICAgICAgICA8Z3JvdXBJZD5jb20udHVubmVsdmlzaW9ubGFiczwvZ3JvdXBJZD4NCisgICAgICAgICAgICAgICAgPGFydGlmYWN0SWQ+YW50bHI0LW1hdmVuLXBsdWdpbjwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgICAgICAgPHZlcnNpb24+NC40LjE8L3ZlcnNpb24+DQorICAgICAgICAgICAgICAgIDxjb25maWd1cmF0aW9uPg0KKyAgICAgICAgICAgICAgICAgICAgPHNvdXJjZURpcmVjdG9yeT5zcmM8L3NvdXJjZURpcmVjdG9yeT4NCisgICAgICAgICAgICAgICAgPC9jb25maWd1cmF0aW9uPg0KKyAgICAgICAgICAgICAgICA8ZXhlY3V0aW9ucz4NCisgICAgICAgICAgICAgICAgICAgIDxleGVjdXRpb24+DQorICAgICAgICAgICAgICAgICAgICAgICAgPGdvYWxzPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Z29hbD5hbnRscjQ8L2dvYWw+DQorICAgICAgICAgICAgICAgICAgICAgICAgPC9nb2Fscz4NCisgICAgICAgICAgICAgICAgICAgIDwvZXhlY3V0aW9uPg0KKyAgICAgICAgICAgICAgICA8L2V4ZWN1dGlvbnM+DQorICAgICAgICAgICAgPC9wbHVnaW4+DQorICAgICAgICA8L3BsdWdpbnM+DQorICAgIDwvYnVpbGQ+DQorDQorPC9wcm9qZWN0Pg0KZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS90dW5uZWx2aXNpb25sYWJzL2FudGxyNC1ydW50aW1lLzQuNS9hbnRscjQtcnVudGltZS00LjUucG9tLnNoYTEgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vdHVubmVsdmlzaW9ubGFicy9hbnRscjQtcnVudGltZS80LjUvYW50bHI0LXJ1bnRpbWUtNC41LnBvbS5zaGExCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJjNTFkZjYKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vdHVubmVsdmlzaW9ubGFicy9hbnRscjQtcnVudGltZS80LjUvYW50bHI0LXJ1bnRpbWUtNC41LnBvbS5zaGExCkBAIC0wLDAgKzEgQEAKKzRjMDFjNjJkODk5ZDhiZDUxMTJhMTgyNjI0ZmNhOWFlNjJkNDJjOGUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vdHVubmVsdmlzaW9ubGFicy9hbnRscjQvNC41L05PVElDRSBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS90dW5uZWx2aXNpb25sYWJzL2FudGxyNC80LjUvTk9USUNFCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk1ZDBhMjUKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vdHVubmVsdmlzaW9ubGFicy9hbnRscjQvNC41L05PVElDRQpAQCAtMCwwICsxLDI2IEBACitbVGhlICJCU0QgbGljZW5zZSJdCitDb3B5cmlnaHQgKGMpIDIwMTUgVGVyZW5jZSBQYXJyLCBTYW0gSGFyd2VsbAorQWxsIHJpZ2h0cyByZXNlcnZlZC4KKworUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cittb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKK2FyZSBtZXQ6CisKKyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorCitUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUgorSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUworT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KK0lOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKK0lOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAorTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCitUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKK1RISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vdHVubmVsdmlzaW9ubGFicy9hbnRscjQvNC41L2FudGxyNC00LjUuamFyIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL3R1bm5lbHZpc2lvbmxhYnMvYW50bHI0LzQuNS9hbnRscjQtNC41LmphcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZTRiZDIyCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL3R1bm5lbHZpc2lvbmxhYnMvYW50bHI0LzQuNS9hbnRscjQtNC41LmphcgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vdHVubmVsdmlzaW9ubGFicy9hbnRscjQvNC41L2FudGxyNC00LjUuamFyLnNoYTEgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb20vdHVubmVsdmlzaW9ubGFicy9hbnRscjQvNC41L2FudGxyNC00LjUuamFyLnNoYTEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzk3Zjc4MQotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS90dW5uZWx2aXNpb25sYWJzL2FudGxyNC80LjUvYW50bHI0LTQuNS5qYXIuc2hhMQpAQCAtMCwwICsxIEBACithMGU4NjBlMzE3MTQ3ODQ4ZTY5YWMxNDViYzUxOTY5MDFhOTk5M2JmClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL3R1bm5lbHZpc2lvbmxhYnMvYW50bHI0LzQuNS9hbnRscjQtNC41LnBvbSBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS90dW5uZWx2aXNpb25sYWJzL2FudGxyNC80LjUvYW50bHI0LTQuNS5wb20KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWYzMDIyZQotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS90dW5uZWx2aXNpb25sYWJzL2FudGxyNC80LjUvYW50bHI0LTQuNS5wb20KQEAgLTAsMCArMSwxNTkgQEAKKw0KKzxwcm9qZWN0IHhtbG5zPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL3hzZC9tYXZlbi00LjAuMC54c2QiPg0KKyAgICA8bW9kZWxWZXJzaW9uPjQuMC4wPC9tb2RlbFZlcnNpb24+DQorDQorICAgIDxwYXJlbnQ+DQorICAgICAgICA8Z3JvdXBJZD5jb20udHVubmVsdmlzaW9ubGFiczwvZ3JvdXBJZD4NCisgICAgICAgIDxhcnRpZmFjdElkPmFudGxyNC1tYXN0ZXI8L2FydGlmYWN0SWQ+DQorICAgICAgICA8dmVyc2lvbj40LjU8L3ZlcnNpb24+DQorICAgIDwvcGFyZW50Pg0KKw0KKyAgICA8YXJ0aWZhY3RJZD5hbnRscjQ8L2FydGlmYWN0SWQ+DQorDQorICAgIDxuYW1lPkFOVExSIDQgVG9vbDwvbmFtZT4NCisgICAgPGRlc2NyaXB0aW9uPlRoZSBBTlRMUiA0IGdyYW1tYXIgY29tcGlsZXIuPC9kZXNjcmlwdGlvbj4NCisNCisgICAgPGRlcGVuZGVuY2llcz4NCisgICAgICAgIDxkZXBlbmRlbmN5Pg0KKyAgICAgICAgICAgIDxncm91cElkPmp1bml0PC9ncm91cElkPg0KKyAgICAgICAgICAgIDxhcnRpZmFjdElkPmp1bml0PC9hcnRpZmFjdElkPg0KKyAgICAgICAgICAgIDx2ZXJzaW9uPjQuMTE8L3ZlcnNpb24+DQorICAgICAgICAgICAgPHNjb3BlPnRlc3Q8L3Njb3BlPg0KKyAgICAgICAgPC9kZXBlbmRlbmN5Pg0KKyAgICAgICAgPGRlcGVuZGVuY3k+DQorICAgICAgICAgICAgPGdyb3VwSWQ+Y29tLnR1bm5lbHZpc2lvbmxhYnM8L2dyb3VwSWQ+DQorICAgICAgICAgICAgPGFydGlmYWN0SWQ+YW50bHI0LXJ1bnRpbWU8L2FydGlmYWN0SWQ+DQorICAgICAgICAgICAgPHZlcnNpb24+JHtwcm9qZWN0LnZlcnNpb259PC92ZXJzaW9uPg0KKyAgICAgICAgICAgIDxzY29wZT5jb21waWxlPC9zY29wZT4NCisgICAgICAgIDwvZGVwZW5kZW5jeT4NCisgICAgICAgIDxkZXBlbmRlbmN5Pg0KKyAgICAgICAgICAgIDxncm91cElkPmNvbS50dW5uZWx2aXNpb25sYWJzPC9ncm91cElkPg0KKyAgICAgICAgICAgIDxhcnRpZmFjdElkPmFudGxyNC1hbm5vdGF0aW9uczwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgICA8dmVyc2lvbj4ke3Byb2plY3QudmVyc2lvbn08L3ZlcnNpb24+DQorICAgICAgICAgICAgPHNjb3BlPmNvbXBpbGU8L3Njb3BlPg0KKyAgICAgICAgPC9kZXBlbmRlbmN5Pg0KKyAgICAgICAgPGRlcGVuZGVuY3k+DQorICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLmFudGxyPC9ncm91cElkPg0KKyAgICAgICAgICAgIDxhcnRpZmFjdElkPmFudGxyLXJ1bnRpbWU8L2FydGlmYWN0SWQ+DQorICAgICAgICAgICAgPHZlcnNpb24+My41LjI8L3ZlcnNpb24+DQorICAgICAgICAgICAgPHNjb3BlPmNvbXBpbGU8L3Njb3BlPg0KKyAgICAgICAgPC9kZXBlbmRlbmN5Pg0KKyAgICAgICAgPGRlcGVuZGVuY3k+DQorICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLmFudGxyPC9ncm91cElkPg0KKyAgICAgICAgICAgIDxhcnRpZmFjdElkPlNUNDwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgICA8dmVyc2lvbj40LjAuODwvdmVyc2lvbj4NCisgICAgICAgICAgICA8c2NvcGU+Y29tcGlsZTwvc2NvcGU+DQorICAgICAgICA8L2RlcGVuZGVuY3k+DQorICAgIDwvZGVwZW5kZW5jaWVzPg0KKw0KKyAgICA8cHJvZmlsZXM+DQorICAgICAgICA8cHJvZmlsZT4NCisgICAgICAgICAgICA8aWQ+c29uYXR5cGUtb3NzLXJlbGVhc2U8L2lkPg0KKyAgICAgICAgICAgIDxidWlsZD4NCisgICAgICAgICAgICAgICAgPHBsdWdpbnM+DQorICAgICAgICAgICAgICAgICAgICA8cGx1Z2luPg0KKyAgICAgICAgICAgICAgICAgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4NCisgICAgICAgICAgICAgICAgICAgICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1qYXZhZG9jLXBsdWdpbjwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgICAgICAgICAgICAgICA8Y29uZmlndXJhdGlvbj4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGluY2x1ZGVEZXBlbmRlbmN5U291cmNlcz50cnVlPC9pbmNsdWRlRGVwZW5kZW5jeVNvdXJjZXM+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZXBlbmRlbmN5U291cmNlSW5jbHVkZXM+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVwZW5kZW5jeVNvdXJjZUluY2x1ZGU+Y29tLnR1bm5lbHZpc2lvbmxhYnM6YW50bHI0LSo8L2RlcGVuZGVuY3lTb3VyY2VJbmNsdWRlPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlcGVuZGVuY3lTb3VyY2VJbmNsdWRlcz4NCisgICAgICAgICAgICAgICAgICAgICAgICA8L2NvbmZpZ3VyYXRpb24+DQorICAgICAgICAgICAgICAgICAgICA8L3BsdWdpbj4NCisNCisgICAgICAgICAgICAgICAgICAgIDxwbHVnaW4+DQorICAgICAgICAgICAgICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPg0KKyAgICAgICAgICAgICAgICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLXNoYWRlLXBsdWdpbjwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgICAgICAgICAgICAgICA8dmVyc2lvbj4yLjI8L3ZlcnNpb24+DQorICAgICAgICAgICAgICAgICAgICAgICAgPGluaGVyaXRlZD5mYWxzZTwvaW5oZXJpdGVkPg0KKyAgICAgICAgICAgICAgICAgICAgICAgIDxleGVjdXRpb25zPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZXhlY3V0aW9uPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBoYXNlPnBhY2thZ2U8L3BoYXNlPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGdvYWxzPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnb2FsPnNoYWRlPC9nb2FsPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nb2Fscz4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjb25maWd1cmF0aW9uPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtaW5pbWl6ZUphcj50cnVlPC9taW5pbWl6ZUphcj4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y3JlYXRlRGVwZW5kZW5jeVJlZHVjZWRQb20+ZmFsc2U8L2NyZWF0ZURlcGVuZGVuY3lSZWR1Y2VkUG9tPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzaGFkZWRBcnRpZmFjdEF0dGFjaGVkPnRydWU8L3NoYWRlZEFydGlmYWN0QXR0YWNoZWQ+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNyZWF0ZVNvdXJjZXNKYXI+dHJ1ZTwvY3JlYXRlU291cmNlc0phcj4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2hhZGVkQ2xhc3NpZmllck5hbWU+Y29tcGxldGU8L3NoYWRlZENsYXNzaWZpZXJOYW1lPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWx0ZXJzPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsdGVyPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFydGlmYWN0PmNvbS50dW5uZWx2aXNpb25sYWJzOmFudGxyNC1ydW50aW1lPC9hcnRpZmFjdD4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbmNsdWRlcz4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5jbHVkZT5vcmcvYW50bHIvdjQvcnVudGltZS8qKjwvaW5jbHVkZT4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaW5jbHVkZXM+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmlsdGVyPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsdGVyPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFydGlmYWN0PmNvbS50dW5uZWx2aXNpb25sYWJzOmFudGxyNC1hbm5vdGF0aW9uczwvYXJ0aWZhY3Q+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5jbHVkZXM+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGluY2x1ZGU+b3JnL2FudGxyL3Y0L3J1bnRpbWUvKio8L2luY2x1ZGU+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2luY2x1ZGVzPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZpbHRlcj4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZpbHRlcnM+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyYW5zZm9ybWVycz4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyYW5zZm9ybWVyIGltcGxlbWVudGF0aW9uPSJvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnMuc2hhZGUucmVzb3VyY2UuTWFuaWZlc3RSZXNvdXJjZVRyYW5zZm9ybWVyIj4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYWluQ2xhc3M+b3JnLmFudGxyLnY0LlRvb2w8L21haW5DbGFzcz4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cmFuc2Zvcm1lcj4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyYW5zZm9ybWVycz4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29uZmlndXJhdGlvbj4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9leGVjdXRpb24+DQorICAgICAgICAgICAgICAgICAgICAgICAgPC9leGVjdXRpb25zPg0KKyAgICAgICAgICAgICAgICAgICAgPC9wbHVnaW4+DQorICAgICAgICAgICAgICAgIDwvcGx1Z2lucz4NCisgICAgICAgICAgICA8L2J1aWxkPg0KKyAgICAgICAgPC9wcm9maWxlPg0KKyAgICA8L3Byb2ZpbGVzPg0KKw0KKyAgICA8YnVpbGQ+DQorDQorICAgICAgICA8c291cmNlRGlyZWN0b3J5PnNyYzwvc291cmNlRGlyZWN0b3J5Pg0KKyAgICAgICAgPHJlc291cmNlcz4NCisgICAgICAgICAgICA8cmVzb3VyY2U+DQorICAgICAgICAgICAgICAgIDxkaXJlY3Rvcnk+cmVzb3VyY2VzPC9kaXJlY3Rvcnk+DQorICAgICAgICAgICAgPC9yZXNvdXJjZT4NCisgICAgICAgIDwvcmVzb3VyY2VzPg0KKw0KKyAgICAgICAgPHRlc3RTb3VyY2VEaXJlY3Rvcnk+dGVzdDwvdGVzdFNvdXJjZURpcmVjdG9yeT4NCisgICAgICAgIDx0ZXN0UmVzb3VyY2VzPg0KKyAgICAgICAgICAgIDx0ZXN0UmVzb3VyY2U+DQorICAgICAgICAgICAgICAgIDxkaXJlY3Rvcnk+dGVzdDwvZGlyZWN0b3J5Pg0KKyAgICAgICAgICAgIDwvdGVzdFJlc291cmNlPg0KKyAgICAgICAgPC90ZXN0UmVzb3VyY2VzPg0KKw0KKyAgICAgICAgPHBsdWdpbnM+DQorDQorICAgICAgICAgICA8cGx1Z2luPg0KKyAgICAgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuYW50bHI8L2dyb3VwSWQ+DQorICAgICAgICAgICAgICAgIDxhcnRpZmFjdElkPmFudGxyMy1tYXZlbi1wbHVnaW48L2FydGlmYWN0SWQ+DQorICAgICAgICAgICAgICAgIDx2ZXJzaW9uPjMuNS4yPC92ZXJzaW9uPg0KKyAgICAgICAgICAgICAgICA8Y29uZmlndXJhdGlvbj4NCisgICAgICAgICAgICAgICAgICAgIDxzb3VyY2VEaXJlY3Rvcnk+c3JjPC9zb3VyY2VEaXJlY3Rvcnk+DQorICAgICAgICAgICAgICAgICAgICA8dmVyYm9zZT50cnVlPC92ZXJib3NlPg0KKyAgICAgICAgICAgICAgICA8L2NvbmZpZ3VyYXRpb24+DQorICAgICAgICAgICAgICAgIDxleGVjdXRpb25zPg0KKyAgICAgICAgICAgICAgICAgICAgPGV4ZWN1dGlvbj4NCisgICAgICAgICAgICAgICAgICAgICAgICA8Z29hbHM+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnb2FsPmFudGxyPC9nb2FsPg0KKyAgICAgICAgICAgICAgICAgICAgICAgIDwvZ29hbHM+DQorICAgICAgICAgICAgICAgICAgICA8L2V4ZWN1dGlvbj4NCisgICAgICAgICAgICAgICAgPC9leGVjdXRpb25zPg0KKyAgICAgICAgICAgIDwvcGx1Z2luPg0KKw0KKyAgICAgICAgICAgIDxwbHVnaW4+DQorICAgICAgICAgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4NCisgICAgICAgICAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tamFyLXBsdWdpbjwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgICAgICAgPGV4ZWN1dGlvbnM+DQorICAgICAgICAgICAgICAgICAgICA8ZXhlY3V0aW9uPg0KKyAgICAgICAgICAgICAgICAgICAgICAgIDxnb2Fscz4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGdvYWw+dGVzdC1qYXI8L2dvYWw+DQorICAgICAgICAgICAgICAgICAgICAgICAgPC9nb2Fscz4NCisgICAgICAgICAgICAgICAgICAgIDwvZXhlY3V0aW9uPg0KKyAgICAgICAgICAgICAgICA8L2V4ZWN1dGlvbnM+DQorICAgICAgICAgICAgPC9wbHVnaW4+DQorICAgICAgICA8L3BsdWdpbnM+DQorICAgIDwvYnVpbGQ+DQorDQorPC9wcm9qZWN0Pg0KZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS90dW5uZWx2aXNpb25sYWJzL2FudGxyNC80LjUvYW50bHI0LTQuNS5wb20uc2hhMSBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbS90dW5uZWx2aXNpb25sYWJzL2FudGxyNC80LjUvYW50bHI0LTQuNS5wb20uc2hhMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MGQyZDdjCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tL3R1bm5lbHZpc2lvbmxhYnMvYW50bHI0LzQuNS9hbnRscjQtNC41LnBvbS5zaGExCkBAIC0wLDAgKzEgQEAKKzIzNzBmNDdmZDU3ZmJlYTM3Mzg1ZTI0MWRkNzI5MmJkY2ZiZTgzNTMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9jb21tb25zLWNvZGVjL2NvbW1vbnMtY29kZWMvMS4xMC9jb21tb25zLWNvZGVjLTEuMTAuamFyIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tbW9ucy1jb2RlYy9jb21tb25zLWNvZGVjLzEuMTAvY29tbW9ucy1jb2RlYy0xLjEwLmphcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZDc0MTdjCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tbW9ucy1jb2RlYy9jb21tb25zLWNvZGVjLzEuMTAvY29tbW9ucy1jb2RlYy0xLjEwLmphcgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9jb21tb25zLWNvZGVjL2NvbW1vbnMtY29kZWMvMS4xMC9jb21tb25zLWNvZGVjLTEuMTAuamFyLnNoYTEgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb21tb25zLWNvZGVjL2NvbW1vbnMtY29kZWMvMS4xMC9jb21tb25zLWNvZGVjLTEuMTAuamFyLnNoYTEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2ZlODY4MgotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbW1vbnMtY29kZWMvY29tbW9ucy1jb2RlYy8xLjEwL2NvbW1vbnMtY29kZWMtMS4xMC5qYXIuc2hhMQpAQCAtMCwwICsxIEBACis0Yjk1ZjQ4OTdmYTEzZjJjZDkwNGFlZTcxMWFlYWZjMGM1Mjk1Y2Q4ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tbW9ucy1jb2RlYy9jb21tb25zLWNvZGVjLzEuMTAvY29tbW9ucy1jb2RlYy0xLjEwLnBvbSBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbW1vbnMtY29kZWMvY29tbW9ucy1jb2RlYy8xLjEwL2NvbW1vbnMtY29kZWMtMS4xMC5wb20KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGRhNjQwYQotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbW1vbnMtY29kZWMvY29tbW9ucy1jb2RlYy8xLjEwL2NvbW1vbnMtY29kZWMtMS4xMC5wb20KQEAgLTAsMCArMSwzNDMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/Pg0KKzwhLS0NCitMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUNCitjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlIGRpc3RyaWJ1dGVkIHdpdGgNCit0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuDQorVGhlIEFTRiBsaWNlbnNlcyB0aGlzIGZpbGUgdG8gWW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjANCisodGhlICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aA0KK3RoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0DQorDQorICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjANCisNCitVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlDQorZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywNCitXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4NCitTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kDQorbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuDQorLS0+DQorPCEtLQ0KKyBUbyBwcm9kdWNlIHJlcG9ydHMsIHVzZSB0aGUgcmVwb3J0aW5nIHByb2ZpbGUsIGZvciBleGFtcGxlOiBtdm4gLVByZXBvcnRpbmcgY2xlYW4gc2l0ZQ0KKyBZb3UgbWF5IG5lZWQgdG8gdXNlIHRoZSAtVSBvcHRpb24gdG8gdXBkYXRlIHlvdXIgZW52aXJvbm1lbnQgaWYgeW91IGdldCBhbiBlcnJvci4gIA0KKyAtLT4NCis8cHJvamVjdCB4bWxucz0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIg0KKyAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAgaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvbWF2ZW4tdjRfMF8wLnhzZCI+DQorICA8cGFyZW50Pg0KKyAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLmNvbW1vbnM8L2dyb3VwSWQ+DQorICAgIDxhcnRpZmFjdElkPmNvbW1vbnMtcGFyZW50PC9hcnRpZmFjdElkPg0KKyAgICA8dmVyc2lvbj4zNTwvdmVyc2lvbj4NCisgIDwvcGFyZW50Pg0KKyAgPG1vZGVsVmVyc2lvbj40LjAuMDwvbW9kZWxWZXJzaW9uPg0KKyAgPGdyb3VwSWQ+Y29tbW9ucy1jb2RlYzwvZ3JvdXBJZD4NCisgIDxhcnRpZmFjdElkPmNvbW1vbnMtY29kZWM8L2FydGlmYWN0SWQ+DQorICA8IS0tIFJlbWVtYmVyIHRvIHVwZGF0ZSB0aGUgdmVyc2lvbiBpbiBkZWZhdWx0LnByb3BlcnRpZXMgYXMgd2VsbCAtLT4NCisgIDx2ZXJzaW9uPjEuMTA8L3ZlcnNpb24+DQorICA8bmFtZT5BcGFjaGUgQ29tbW9ucyBDb2RlYzwvbmFtZT4NCisgIDxpbmNlcHRpb25ZZWFyPjIwMDI8L2luY2VwdGlvblllYXI+DQorICA8ZGVzY3JpcHRpb24+DQorICAgICBUaGUgQXBhY2hlIENvbW1vbnMgQ29kZWMgcGFja2FnZSBjb250YWlucyBzaW1wbGUgZW5jb2RlciBhbmQgZGVjb2RlcnMgZm9yDQorICAgICB2YXJpb3VzIGZvcm1hdHMgc3VjaCBhcyBCYXNlNjQgYW5kIEhleGFkZWNpbWFsLiAgSW4gYWRkaXRpb24gdG8gdGhlc2UNCisgICAgIHdpZGVseSB1c2VkIGVuY29kZXJzIGFuZCBkZWNvZGVycywgdGhlIGNvZGVjIHBhY2thZ2UgYWxzbyBtYWludGFpbnMgYQ0KKyAgICAgY29sbGVjdGlvbiBvZiBwaG9uZXRpYyBlbmNvZGluZyB1dGlsaXRpZXMuDQorICA8L2Rlc2NyaXB0aW9uPg0KKyAgPHByZXJlcXVpc2l0ZXM+DQorICAgIDxtYXZlbj4zLjAuMDwvbWF2ZW4+DQorICA8L3ByZXJlcXVpc2l0ZXM+ICANCisgIDx1cmw+aHR0cDovL2NvbW1vbnMuYXBhY2hlLm9yZy9wcm9wZXIvY29tbW9ucy1jb2RlYy88L3VybD4NCisgIDxpc3N1ZU1hbmFnZW1lbnQ+DQorICAgIDxzeXN0ZW0+amlyYTwvc3lzdGVtPg0KKyAgICA8dXJsPmh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9DT0RFQzwvdXJsPg0KKyAgPC9pc3N1ZU1hbmFnZW1lbnQ+DQorICA8c2NtPg0KKyAgICA8Y29ubmVjdGlvbj5zY206c3ZuOmh0dHA6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9hc2YvY29tbW9ucy9wcm9wZXIvY29kZWMvdHJ1bms8L2Nvbm5lY3Rpb24+DQorICAgIDxkZXZlbG9wZXJDb25uZWN0aW9uPnNjbTpzdm46aHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9hc2YvY29tbW9ucy9wcm9wZXIvY29kZWMvdHJ1bms8L2RldmVsb3BlckNvbm5lY3Rpb24+DQorICAgIDx1cmw+aHR0cDovL3N2bi5hcGFjaGUub3JnL3ZpZXd2Yy9jb21tb25zL3Byb3Blci9jb2RlYy90cnVuazwvdXJsPg0KKyAgPC9zY20+DQorICA8ZGlzdHJpYnV0aW9uTWFuYWdlbWVudD4NCisgICAgPHNpdGU+DQorICAgICAgPGlkPnN0YWdpbmdTaXRlPC9pZD4NCisgICAgICA8bmFtZT5BcGFjaGUgU3RhZ2luZyBXZWJzaXRlPC9uYW1lPg0KKyAgICAgIDx1cmw+JHtjb21tb25zLmRlcGxveW1lbnQucHJvdG9jb2x9Oi8vcGVvcGxlLmFwYWNoZS5vcmcvd3d3L2NvbW1vbnMuYXBhY2hlLm9yZy8ke2NvbW1vbnMuY29tcG9uZW50aWR9LzwvdXJsPg0KKyAgICA8L3NpdGU+DQorICA8L2Rpc3RyaWJ1dGlvbk1hbmFnZW1lbnQ+DQorICA8ZGV2ZWxvcGVycz4NCisgICAgPGRldmVsb3Blcj4NCisgICAgICA8bmFtZT5IZW5yaSBZYW5kZWxsPC9uYW1lPg0KKyAgICAgIDxpZD5iYXlhcmQ8L2lkPg0KKyAgICAgIDxlbWFpbD5iYXlhcmRAYXBhY2hlLm9yZzwvZW1haWw+DQorICAgIDwvZGV2ZWxvcGVyPg0KKyAgICA8ZGV2ZWxvcGVyPg0KKyAgICAgIDxuYW1lPlRpbSBPQnJpZW48L25hbWU+DQorICAgICAgPGlkPnRvYnJpZW48L2lkPg0KKyAgICAgIDxlbWFpbD50b2JyaWVuQGFwYWNoZS5vcmc8L2VtYWlsPg0KKyAgICAgIDx0aW1lem9uZT4tNjwvdGltZXpvbmU+DQorICAgIDwvZGV2ZWxvcGVyPg0KKyAgICA8ZGV2ZWxvcGVyPg0KKyAgICAgIDxuYW1lPlNjb3R0IFNhbmRlcnM8L25hbWU+DQorICAgICAgPGlkPnNhbmRlcnM8L2lkPg0KKyAgICAgIDxlbWFpbD5zYW5kZXJzQHRvdGFsc3luYy5jb208L2VtYWlsPg0KKyAgICA8L2RldmVsb3Blcj4NCisgICAgPGRldmVsb3Blcj4NCisgICAgICA8bmFtZT5Sb2RuZXkgV2FsZGhvZmY8L25hbWU+DQorICAgICAgPGlkPnJ3YWxkaG9mZjwvaWQ+DQorICAgICAgPGVtYWlsPnJ3YWxkaG9mZkBhcGFjaGUub3JnPC9lbWFpbD4NCisgICAgPC9kZXZlbG9wZXI+DQorICAgIDxkZXZlbG9wZXI+DQorICAgICAgPG5hbWU+RGFuaWVsIFJhbGw8L25hbWU+DQorICAgICAgPGlkPmRscjwvaWQ+DQorICAgICAgPGVtYWlsPmRsckBmaW5lbWFsdGNvZGluZy5jb208L2VtYWlsPg0KKyAgICA8L2RldmVsb3Blcj4NCisgICAgPGRldmVsb3Blcj4NCisgICAgICA8bmFtZT5Kb24gUy4gU3RldmVuczwvbmFtZT4NCisgICAgICA8aWQ+am9uPC9pZD4NCisgICAgICA8ZW1haWw+am9uQGNvbGxhYi5uZXQ8L2VtYWlsPg0KKyAgICA8L2RldmVsb3Blcj4NCisgICAgPGRldmVsb3Blcj4NCisgICAgICA8bmFtZT5HYXJ5IEdyZWdvcnk8L25hbWU+DQorICAgICAgPGlkPmdncmVnb3J5PC9pZD4NCisgICAgICA8ZW1haWw+Z2dyZWdvcnlAYXBhY2hlLm9yZzwvZW1haWw+DQorICAgICAgPHVybD5odHRwOi8vd3d3LmdhcnlncmVnb3J5LmNvbTwvdXJsPg0KKyAgICAgIDx0aW1lem9uZT4tNTwvdGltZXpvbmU+DQorICAgIDwvZGV2ZWxvcGVyPg0KKyAgICA8ZGV2ZWxvcGVyPg0KKyAgICAgIDxuYW1lPkRhdmlkIEdyYWhhbTwvbmFtZT4NCisgICAgICA8aWQ+ZGdyYWhhbTwvaWQ+DQorICAgICAgPGVtYWlsPmRncmFoYW1AYXBhY2hlLm9yZzwvZW1haWw+DQorICAgIDwvZGV2ZWxvcGVyPg0KKyAgICA8ZGV2ZWxvcGVyPg0KKyAgICAgIDxuYW1lPkp1bGl1cyBEYXZpZXM8L25hbWU+DQorICAgICAgPGlkPmp1bGl1czwvaWQ+DQorICAgICAgPGVtYWlsPmp1bGl1c0BhcGFjaGUub3JnPC9lbWFpbD4NCisgICAgICA8b3JnYW5pemF0aW9uVXJsPmh0dHA6Ly9qdWxpdXNkYXZpZXMuY2EvPC9vcmdhbml6YXRpb25Vcmw+DQorICAgICAgPHRpbWV6b25lPi04PC90aW1lem9uZT4NCisgICAgPC9kZXZlbG9wZXI+DQorICAgIDxkZXZlbG9wZXI+DQorICAgICAgPG5hbWU+VGhvbWFzIE5laWRoYXJ0PC9uYW1lPg0KKyAgICAgIDxpZD50bjwvaWQ+DQorICAgICAgPGVtYWlsPnRuQGFwYWNoZS5vcmc8L2VtYWlsPg0KKyAgICA8L2RldmVsb3Blcj4NCisgIDwvZGV2ZWxvcGVycz4NCisgIDxjb250cmlidXRvcnM+DQorICAgIDxjb250cmlidXRvcj4NCisgICAgICA8bmFtZT5DaHJpc3RvcGhlciBPJ0JyaWVuPC9uYW1lPg0KKyAgICAgIDxlbWFpbD5zaWVnZUBwcmVvY2N1cGllZC5uZXQ8L2VtYWlsPg0KKyAgICAgIDxyb2xlcz4NCisgICAgICAgIDxyb2xlPmhleDwvcm9sZT4NCisgICAgICAgIDxyb2xlPm1kNTwvcm9sZT4NCisgICAgICAgIDxyb2xlPmFyY2hpdGVjdHVyZTwvcm9sZT4NCisgICAgICA8L3JvbGVzPg0KKyAgICA8L2NvbnRyaWJ1dG9yPg0KKyAgICA8Y29udHJpYnV0b3I+DQorICAgICAgPG5hbWU+TWFydGluIFJlZGluZ3RvbjwvbmFtZT4NCisgICAgICA8cm9sZXM+DQorICAgICAgICA8cm9sZT5SZXByZXNlbnRpbmcgeG1sLXJwYzwvcm9sZT4NCisgICAgICA8L3JvbGVzPg0KKyAgICA8L2NvbnRyaWJ1dG9yPg0KKyAgICA8Y29udHJpYnV0b3I+DQorICAgICAgPG5hbWU+SmVmZmVyeSBEZXZlcjwvbmFtZT4NCisgICAgICA8cm9sZXM+DQorICAgICAgICA8cm9sZT5SZXByZXNlbnRpbmcgaHR0cC1jbGllbnQ8L3JvbGU+DQorICAgICAgPC9yb2xlcz4NCisgICAgPC9jb250cmlidXRvcj4NCisgICAgPGNvbnRyaWJ1dG9yPg0KKyAgICAgIDxuYW1lPlN0ZXZlIFppbW1lcm1hbm48L25hbWU+DQorICAgICAgPGVtYWlsPnN0ZXZlLnppbW1lcm1hbm5AaGVpaS5jb208L2VtYWlsPg0KKyAgICAgIDxyb2xlcz4NCisgICAgICAgIDxyb2xlPkRvY3VtZW50YXRpb248L3JvbGU+DQorICAgICAgPC9yb2xlcz4NCisgICAgPC9jb250cmlidXRvcj4NCisgICAgPGNvbnRyaWJ1dG9yPg0KKyAgICAgIDxuYW1lPkJlbmphbWluIFdhbHN0cnVtPC9uYW1lPg0KKyAgICAgIDxlbWFpbD5iZW5Ad2Fsc3RydW0uY29tPC9lbWFpbD4NCisgICAgPC9jb250cmlidXRvcj4NCisgICAgPGNvbnRyaWJ1dG9yPg0KKyAgICAgIDxuYW1lPk9sZWcgS2FsbmljaGV2c2tpPC9uYW1lPg0KKyAgICAgIDxlbWFpbD5vbGVnQHVyYWwucnU8L2VtYWlsPg0KKyAgICAgIDxyb2xlcz4NCisgICAgICAgIDxyb2xlPlJlcHJlc2VudGluZyBodHRwLWNsaWVudDwvcm9sZT4NCisgICAgICA8L3JvbGVzPg0KKyAgICA8L2NvbnRyaWJ1dG9yPg0KKyAgICA8Y29udHJpYnV0b3I+DQorICAgICAgPG5hbWU+RGF2ZSBEcmliaW48L25hbWU+DQorICAgICAgPGVtYWlsPmFwYWNoZUBkYXZlLmRyaWJpbi5vcmc8L2VtYWlsPg0KKyAgICAgIDxyb2xlcz4NCisgICAgICAgIDxyb2xlPkRpZ2VzdFV0aWw8L3JvbGU+DQorICAgICAgPC9yb2xlcz4NCisgICAgPC9jb250cmlidXRvcj4NCisgICAgPGNvbnRyaWJ1dG9yPg0KKyAgICAgIDxuYW1lPkFsZXggS2FyYXN1bHU8L25hbWU+DQorICAgICAgPGVtYWlsPmFvazEyMyBhdCBiZWxsc291dGgubmV0PC9lbWFpbD4NCisgICAgICA8cm9sZXM+DQorICAgICAgICA8cm9sZT5TdWJtaXR0ZWQgQmluYXJ5IGNsYXNzIGFuZCB0ZXN0PC9yb2xlPg0KKyAgICAgIDwvcm9sZXM+DQorICAgIDwvY29udHJpYnV0b3I+DQorICAgIDxjb250cmlidXRvcj4NCisgICAgICA8bmFtZT5NYXR0aGV3IEluZ2VyPC9uYW1lPg0KKyAgICAgIDxlbWFpbD5tYXR0aW5nZXIgYXQgeWFob28uY29tPC9lbWFpbD4NCisgICAgICA8cm9sZXM+DQorICAgICAgICA8cm9sZT5TdWJtaXR0ZWQgRElGRkVSRU5DRSBhbGdvcml0aG0gZm9yIFNvdW5kZXggYW5kIFJlZmluZWRTb3VuZGV4PC9yb2xlPg0KKyAgICAgIDwvcm9sZXM+DQorICAgIDwvY29udHJpYnV0b3I+DQorICAgIDxjb250cmlidXRvcj4NCisgICAgICA8bmFtZT5Kb2NoZW4gV2llZG1hbm48L25hbWU+DQorICAgICAgPGVtYWlsPmpvY2hlbkBhcGFjaGUub3JnPC9lbWFpbD4NCisgICAgICA8cm9sZXM+DQorICAgICAgICA8cm9sZT5CYXNlNjQgY29kZSBbQ09ERUMtNjldPC9yb2xlPg0KKyAgICAgIDwvcm9sZXM+DQorICAgIDwvY29udHJpYnV0b3I+DQorICAgIDxjb250cmlidXRvcj4NCisgICAgICA8bmFtZT5TZWJhc3RpYW4gQmF6bGV5PC9uYW1lPg0KKyAgICAgIDxlbWFpbD5zZWJiQGFwYWNoZS5vcmc8L2VtYWlsPg0KKyAgICAgIDxyb2xlcz4NCisgICAgICAgIDxyb2xlPlN0cmVhbWluZyBCYXNlNjQ8L3JvbGU+DQorICAgICAgPC9yb2xlcz4NCisgICAgPC9jb250cmlidXRvcj4NCisgICAgPGNvbnRyaWJ1dG9yPg0KKyAgICAgIDxuYW1lPk1hdHRoZXcgUG9jb2NrPC9uYW1lPg0KKyAgICAgIDxlbWFpbD50dXJpbmdhdGVteWhhbXN0ZXJAZ21haWwuY29tPC9lbWFpbD4NCisgICAgICA8cm9sZXM+DQorICAgICAgICA8cm9sZT5CZWlkZXItTW9yc2UgcGhvbmV0aWMgbWF0Y2hpbmc8L3JvbGU+DQorICAgICAgPC9yb2xlcz4NCisgICAgPC9jb250cmlidXRvcj4NCisgICAgPGNvbnRyaWJ1dG9yPg0KKyAgICAgIDxuYW1lPkNvbG0gUmljZTwvbmFtZT4NCisgICAgICA8ZW1haWw+Y29sbV9yaWNlIGF0IGhvdG1haWwgZG90IGNvbTwvZW1haWw+DQorICAgICAgPHJvbGVzPg0KKyAgICAgICAgPHJvbGU+U3VibWl0dGVkIE1hdGNoIFJhdGluZyBBcHByb2FjaCAoTVJBKSBwaG9uZXRpYyBlbmNvZGVyIGFuZCB0ZXN0cyBbQ09ERUMtMTYxXTwvcm9sZT4NCisgICAgICA8L3JvbGVzPg0KKyAgICA8L2NvbnRyaWJ1dG9yPg0KKyAgPC9jb250cmlidXRvcnM+DQorICA8IS0tIENvZGVjIHNob3VsZCBkZXBlbmQgb24gdmVyeSBsaXR0bGUgLS0+DQorICA8ZGVwZW5kZW5jaWVzPg0KKyAgICA8ZGVwZW5kZW5jeT4NCisgICAgICA8Z3JvdXBJZD5qdW5pdDwvZ3JvdXBJZD4NCisgICAgICA8YXJ0aWZhY3RJZD5qdW5pdDwvYXJ0aWZhY3RJZD4NCisgICAgICA8dmVyc2lvbj40LjExPC92ZXJzaW9uPg0KKyAgICAgIDxzY29wZT50ZXN0PC9zY29wZT4NCisgICAgPC9kZXBlbmRlbmN5Pg0KKyAgPC9kZXBlbmRlbmNpZXM+DQorICA8cHJvcGVydGllcz4NCisgICAgPG1hdmVuLmNvbXBpbGVyLnNvdXJjZT4xLjY8L21hdmVuLmNvbXBpbGVyLnNvdXJjZT4NCisgICAgPG1hdmVuLmNvbXBpbGVyLnRhcmdldD4xLjY8L21hdmVuLmNvbXBpbGVyLnRhcmdldD4NCisgICAgPGNvbW1vbnMuY29tcG9uZW50aWQ+Y29kZWM8L2NvbW1vbnMuY29tcG9uZW50aWQ+DQorICAgIDxjb21tb25zLnJlbGVhc2UudmVyc2lvbj4xLjEwPC9jb21tb25zLnJlbGVhc2UudmVyc2lvbj4NCisgICAgPCEtLSBUaGUgUkMgdmVyc2lvbiB1c2VkIGluIHRoZSBzdGFnaW5nIHJlcG9zaXRvcnkgVVJMLiAtLT4NCisgICAgPGNvbW1vbnMucmMudmVyc2lvbj5SQzE8L2NvbW1vbnMucmMudmVyc2lvbj4NCisgICAgPGNvbW1vbnMuamlyYS5pZD5DT0RFQzwvY29tbW9ucy5qaXJhLmlkPg0KKyAgICA8Y29tbW9ucy5qaXJhLnBpZD4xMjMxMDQ2NDwvY29tbW9ucy5qaXJhLnBpZD4NCisgICAgPCEtLSBFbnN1cmUgY29waWVzIHdvcmsgT0sgKGNhbiBiZSByZW1vdmVkIGxhdGVyIHdoZW4gdGhpcyBpcyBpbiBwYXJlbnQgUE9NKSAtLT4NCisgICAgPHByb2plY3QuYnVpbGQuc291cmNlRW5jb2Rpbmc+VVRGLTg8L3Byb2plY3QuYnVpbGQuc291cmNlRW5jb2Rpbmc+DQorICAgIDxwcm9qZWN0LnJlcG9ydGluZy5vdXRwdXRFbmNvZGluZz5VVEYtODwvcHJvamVjdC5yZXBvcnRpbmcub3V0cHV0RW5jb2Rpbmc+DQorICAgIDxjb21tb25zLmVuY29kaW5nPlVURi04PC9jb21tb25zLmVuY29kaW5nPg0KKyAgICA8Y2hlY2tzdHlsZS5oZWFkZXIuZmlsZT4ke2Jhc2VkaXJ9L0xJQ0VOU0UtaGVhZGVyLnR4dDwvY2hlY2tzdHlsZS5oZWFkZXIuZmlsZT4NCisgIDwvcHJvcGVydGllcz4NCisgIDxidWlsZD4NCisgICAgPHBsdWdpbk1hbmFnZW1lbnQ+DQorICAgICAgPHBsdWdpbnM+DQorICAgICAgICA8cGx1Z2luPg0KKyAgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+DQorICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLXNjbS1wdWJsaXNoLXBsdWdpbjwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgPGNvbmZpZ3VyYXRpb24+DQorICAgICAgICAgICAgPGlnbm9yZVBhdGhzVG9EZWxldGU+DQorICAgICAgICAgICAgICA8aWdub3JlUGF0aFRvRGVsZXRlPmFyY2hpdmUqKjwvaWdub3JlUGF0aFRvRGVsZXRlPg0KKyAgICAgICAgICAgIDwvaWdub3JlUGF0aHNUb0RlbGV0ZT4NCisgICAgICAgICAgPC9jb25maWd1cmF0aW9uPg0KKyAgICAgICAgPC9wbHVnaW4+DQorICAgICAgPC9wbHVnaW5zPg0KKyAgICA8L3BsdWdpbk1hbmFnZW1lbnQ+DQorICAgIDxwbHVnaW5zPg0KKyAgICAgIDxwbHVnaW4+DQorICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+DQorICAgICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1zdXJlZmlyZS1wbHVnaW48L2FydGlmYWN0SWQ+DQorICAgICAgICA8Y29uZmlndXJhdGlvbj4NCisgICAgICAgICAgPGV4Y2x1ZGVzPg0KKyAgICAgICAgICAgIDxleGNsdWRlPioqLypBYnN0cmFjdFRlc3QuamF2YTwvZXhjbHVkZT4NCisgICAgICAgICAgICA8ZXhjbHVkZT4qKi8qUGVyZm9ybWFuY2VUZXN0LmphdmE8L2V4Y2x1ZGU+DQorICAgICAgICAgIDwvZXhjbHVkZXM+DQorICAgICAgICA8L2NvbmZpZ3VyYXRpb24+DQorICAgICAgPC9wbHVnaW4+DQorICAgICAgPHBsdWdpbj4NCisgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4NCisgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLWphci1wbHVnaW48L2FydGlmYWN0SWQ+DQorICAgICAgICA8dmVyc2lvbj4yLjQ8L3ZlcnNpb24+DQorICAgICAgICA8ZXhlY3V0aW9ucz4NCisgICAgICAgICAgPGV4ZWN1dGlvbj4NCisgICAgICAgICAgICA8Z29hbHM+DQorICAgICAgICAgICAgICA8Z29hbD50ZXN0LWphcjwvZ29hbD4NCisgICAgICAgICAgICA8L2dvYWxzPg0KKyAgICAgICAgICA8L2V4ZWN1dGlvbj4NCisgICAgICAgIDwvZXhlY3V0aW9ucz4NCisgICAgICA8L3BsdWdpbj4NCisgICAgICA8cGx1Z2luPg0KKyAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPg0KKyAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tYXNzZW1ibHktcGx1Z2luPC9hcnRpZmFjdElkPg0KKyAgICAgICAgPHZlcnNpb24+Mi41PC92ZXJzaW9uPg0KKyAgICAgICAgPGNvbmZpZ3VyYXRpb24+DQorICAgICAgICAgIDxkZXNjcmlwdG9ycz4NCisgICAgICAgICAgICA8ZGVzY3JpcHRvcj5zcmMvbWFpbi9hc3NlbWJseS9iaW4ueG1sPC9kZXNjcmlwdG9yPg0KKyAgICAgICAgICAgIDxkZXNjcmlwdG9yPnNyYy9tYWluL2Fzc2VtYmx5L3NyYy54bWw8L2Rlc2NyaXB0b3I+DQorICAgICAgICAgIDwvZGVzY3JpcHRvcnM+DQorICAgICAgICAgIDx0YXJMb25nRmlsZU1vZGU+Z251PC90YXJMb25nRmlsZU1vZGU+DQorICAgICAgICA8L2NvbmZpZ3VyYXRpb24+DQorICAgICAgPC9wbHVnaW4+DQorICAgIDwvcGx1Z2lucz4NCisgIDwvYnVpbGQ+DQorICA8cmVwb3J0aW5nPg0KKyAgICA8cGx1Z2lucz4NCisgICAgICA8cGx1Z2luPg0KKyAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPg0KKyAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tY2hlY2tzdHlsZS1wbHVnaW48L2FydGlmYWN0SWQ+DQorICAgICAgICA8IS0tIFVzZSAyLjkuMSBpbnN0ZWFkIG9mIDIuMTA7IDIuMTAgc2VlbXMgdG8gc2NhbiB0aGUgJ3RhcmdldCcgDQorICAgICAgICBkaXIgYW5kIHdhbnRzIGxpY2Vuc2UgaGVhZGVycyBpbiAucHJvcGVydGllcyB0byBiZSB0aGUgaGVhZGVyIGZvciANCisgICAgICAgIEphdmEgZmlsZXMuIC0tPg0KKyAgICAgICAgPHZlcnNpb24+Mi45LjE8L3ZlcnNpb24+DQorICAgICAgICA8Y29uZmlndXJhdGlvbj4NCisgICAgICAgICAgPGNvbmZpZ0xvY2F0aW9uPiR7YmFzZWRpcn0vY2hlY2tzdHlsZS54bWw8L2NvbmZpZ0xvY2F0aW9uPg0KKyAgICAgICAgICA8ZW5hYmxlUnVsZXNTdW1tYXJ5PmZhbHNlPC9lbmFibGVSdWxlc1N1bW1hcnk+DQorICAgICAgICAgIDxoZWFkZXJGaWxlPiR7YmFzZWRpcn0vTElDRU5TRS1oZWFkZXIudHh0PC9oZWFkZXJGaWxlPg0KKyAgICAgICAgPC9jb25maWd1cmF0aW9uPg0KKyAgICAgICAgPCEtLSBXZSBuZWVkIHRvIHNwZWNpZnkgcmVwb3J0U2V0cyBiZWNhdXNlIDIuOS4xIGNyZWF0ZXMgdHdvIHJlcG9ydHMgLS0+DQorICAgICAgICA8cmVwb3J0U2V0cz4NCisgICAgICAgICAgPHJlcG9ydFNldD4NCisgICAgICAgICAgICA8cmVwb3J0cz4NCisgICAgICAgICAgICAgIDxyZXBvcnQ+Y2hlY2tzdHlsZTwvcmVwb3J0Pg0KKyAgICAgICAgICAgIDwvcmVwb3J0cz4NCisgICAgICAgICAgPC9yZXBvcnRTZXQ+DQorICAgICAgICA8L3JlcG9ydFNldHM+DQorICAgICAgPC9wbHVnaW4+DQorICAgICAgPHBsdWdpbj4NCisgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4NCisgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLXBtZC1wbHVnaW48L2FydGlmYWN0SWQ+DQorICAgICAgICA8dmVyc2lvbj4zLjI8L3ZlcnNpb24+DQorICAgICAgICA8Y29uZmlndXJhdGlvbj4NCisgICAgICAgICAgPHRhcmdldEpkaz4ke21hdmVuLmNvbXBpbGVyLnRhcmdldH08L3RhcmdldEpkaz4NCisgICAgICAgICAgPGxpbmtYcmVmPnRydWU8L2xpbmtYcmVmPg0KKyAgICAgICAgICA8cnVsZXNldHM+DQorICAgICAgICAgICAgPHJ1bGVzZXQ+JHtiYXNlZGlyfS9wbWQueG1sPC9ydWxlc2V0Pg0KKyAgICAgICAgICA8L3J1bGVzZXRzPg0KKyAgICAgICAgPC9jb25maWd1cmF0aW9uPg0KKyAgICAgIDwvcGx1Z2luPg0KKyAgICAgIDxwbHVnaW4+DQorICAgICAgICA8Z3JvdXBJZD5vcmcuY29kZWhhdXMubW9qbzwvZ3JvdXBJZD4NCisgICAgICAgIDxhcnRpZmFjdElkPmZpbmRidWdzLW1hdmVuLXBsdWdpbjwvYXJ0aWZhY3RJZD4NCisgICAgICAgIDx2ZXJzaW9uPjIuNS41PC92ZXJzaW9uPg0KKyAgICAgIDwvcGx1Z2luPg0KKyAgICAgIDxwbHVnaW4+DQorICAgICAgICA8Z3JvdXBJZD5vcmcuY29kZWhhdXMubW9qbzwvZ3JvdXBJZD4NCisgICAgICAgIDxhcnRpZmFjdElkPnRhZ2xpc3QtbWF2ZW4tcGx1Z2luPC9hcnRpZmFjdElkPg0KKyAgICAgICAgPHZlcnNpb24+Mi40PC92ZXJzaW9uPg0KKyAgICAgICAgPGNvbmZpZ3VyYXRpb24+DQorICAgICAgICAgIDx0YWdzPg0KKyAgICAgICAgICAgIDx0YWc+VE9ETzwvdGFnPg0KKyAgICAgICAgICAgIDx0YWc+Tk9QTUQ8L3RhZz4NCisgICAgICAgICAgICA8dGFnPk5PVEU8L3RhZz4NCisgICAgICAgICAgPC90YWdzPg0KKyAgICAgICAgPC9jb25maWd1cmF0aW9uPg0KKyAgICAgIDwvcGx1Z2luPg0KKyAgICAgIDxwbHVnaW4+DQorICAgICAgICA8Z3JvdXBJZD5vcmcuY29kZWhhdXMubW9qbzwvZ3JvdXBJZD4NCisgICAgICAgIDxhcnRpZmFjdElkPmphdmFuY3NzLW1hdmVuLXBsdWdpbjwvYXJ0aWZhY3RJZD4NCisgICAgICAgIDx2ZXJzaW9uPjIuMDwvdmVyc2lvbj4NCisgICAgICA8L3BsdWdpbj4NCisgICAgPC9wbHVnaW5zPg0KKyAgPC9yZXBvcnRpbmc+DQorPC9wcm9qZWN0Pg0KZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbW1vbnMtY29kZWMvY29tbW9ucy1jb2RlYy8xLjEwL2NvbW1vbnMtY29kZWMtMS4xMC5wb20uc2hhMSBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbW1vbnMtY29kZWMvY29tbW9ucy1jb2RlYy8xLjEwL2NvbW1vbnMtY29kZWMtMS4xMC5wb20uc2hhMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40OGRlNTg4Ci0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvY29tbW9ucy1jb2RlYy9jb21tb25zLWNvZGVjLzEuMTAvY29tbW9ucy1jb2RlYy0xLjEwLnBvbS5zaGExCkBAIC0wLDAgKzEgQEAKKzQ0Yjk0Nzc0MThkMjk0MmQ0NTU1MGY3ZTdjNjZjMTYyNjIwNjJkMGUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9jb21tb25zLWlvL2NvbW1vbnMtaW8vMi40L05PVElDRSBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L2NvbW1vbnMtaW8vY29tbW9ucy1pby8yLjQvTk9USUNFCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhhYTkwNmMKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9jb21tb25zLWlvL2NvbW1vbnMtaW8vMi40L05PVElDRQpAQCAtMCwwICsxLDIwNSBAQAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcGFjaGUgTGljZW5zZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVyc2lvbiAyLjAsIEphbnVhcnkgMjAwNAorICAgICAgICAgICAgICAgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzLworCisgICBURVJNUyBBTkQgQ09ORElUSU9OUyBGT1IgVVNFLCBSRVBST0RVQ1RJT04sIEFORCBESVNUUklCVVRJT04KKworICAgMS4gRGVmaW5pdGlvbnMuCisKKyAgICAgICJMaWNlbnNlIiBzaGFsbCBtZWFuIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBmb3IgdXNlLCByZXByb2R1Y3Rpb24sCisgICAgICBhbmQgZGlzdHJpYnV0aW9uIGFzIGRlZmluZWQgYnkgU2VjdGlvbnMgMSB0aHJvdWdoIDkgb2YgdGhpcyBkb2N1bWVudC4KKworICAgICAgIkxpY2Vuc29yIiBzaGFsbCBtZWFuIHRoZSBjb3B5cmlnaHQgb3duZXIgb3IgZW50aXR5IGF1dGhvcml6ZWQgYnkKKyAgICAgIHRoZSBjb3B5cmlnaHQgb3duZXIgdGhhdCBpcyBncmFudGluZyB0aGUgTGljZW5zZS4KKworICAgICAgIkxlZ2FsIEVudGl0eSIgc2hhbGwgbWVhbiB0aGUgdW5pb24gb2YgdGhlIGFjdGluZyBlbnRpdHkgYW5kIGFsbAorICAgICAgb3RoZXIgZW50aXRpZXMgdGhhdCBjb250cm9sLCBhcmUgY29udHJvbGxlZCBieSwgb3IgYXJlIHVuZGVyIGNvbW1vbgorICAgICAgY29udHJvbCB3aXRoIHRoYXQgZW50aXR5LiBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwKKyAgICAgICJjb250cm9sIiBtZWFucyAoaSkgdGhlIHBvd2VyLCBkaXJlY3Qgb3IgaW5kaXJlY3QsIHRvIGNhdXNlIHRoZQorICAgICAgZGlyZWN0aW9uIG9yIG1hbmFnZW1lbnQgb2Ygc3VjaCBlbnRpdHksIHdoZXRoZXIgYnkgY29udHJhY3Qgb3IKKyAgICAgIG90aGVyd2lzZSwgb3IgKGlpKSBvd25lcnNoaXAgb2YgZmlmdHkgcGVyY2VudCAoNTAlKSBvciBtb3JlIG9mIHRoZQorICAgICAgb3V0c3RhbmRpbmcgc2hhcmVzLCBvciAoaWlpKSBiZW5lZmljaWFsIG93bmVyc2hpcCBvZiBzdWNoIGVudGl0eS4KKworICAgICAgIllvdSIgKG9yICJZb3VyIikgc2hhbGwgbWVhbiBhbiBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eQorICAgICAgZXhlcmNpc2luZyBwZXJtaXNzaW9ucyBncmFudGVkIGJ5IHRoaXMgTGljZW5zZS4KKworICAgICAgIlNvdXJjZSIgZm9ybSBzaGFsbCBtZWFuIHRoZSBwcmVmZXJyZWQgZm9ybSBmb3IgbWFraW5nIG1vZGlmaWNhdGlvbnMsCisgICAgICBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIHNvZnR3YXJlIHNvdXJjZSBjb2RlLCBkb2N1bWVudGF0aW9uCisgICAgICBzb3VyY2UsIGFuZCBjb25maWd1cmF0aW9uIGZpbGVzLgorCisgICAgICAiT2JqZWN0IiBmb3JtIHNoYWxsIG1lYW4gYW55IGZvcm0gcmVzdWx0aW5nIGZyb20gbWVjaGFuaWNhbAorICAgICAgdHJhbnNmb3JtYXRpb24gb3IgdHJhbnNsYXRpb24gb2YgYSBTb3VyY2UgZm9ybSwgaW5jbHVkaW5nIGJ1dAorICAgICAgbm90IGxpbWl0ZWQgdG8gY29tcGlsZWQgb2JqZWN0IGNvZGUsIGdlbmVyYXRlZCBkb2N1bWVudGF0aW9uLAorICAgICAgYW5kIGNvbnZlcnNpb25zIHRvIG90aGVyIG1lZGlhIHR5cGVzLgorCisgICAgICAiV29yayIgc2hhbGwgbWVhbiB0aGUgd29yayBvZiBhdXRob3JzaGlwLCB3aGV0aGVyIGluIFNvdXJjZSBvcgorICAgICAgT2JqZWN0IGZvcm0sIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSBMaWNlbnNlLCBhcyBpbmRpY2F0ZWQgYnkgYQorICAgICAgY29weXJpZ2h0IG5vdGljZSB0aGF0IGlzIGluY2x1ZGVkIGluIG9yIGF0dGFjaGVkIHRvIHRoZSB3b3JrCisgICAgICAoYW4gZXhhbXBsZSBpcyBwcm92aWRlZCBpbiB0aGUgQXBwZW5kaXggYmVsb3cpLgorCisgICAgICAiRGVyaXZhdGl2ZSBXb3JrcyIgc2hhbGwgbWVhbiBhbnkgd29yaywgd2hldGhlciBpbiBTb3VyY2Ugb3IgT2JqZWN0CisgICAgICBmb3JtLCB0aGF0IGlzIGJhc2VkIG9uIChvciBkZXJpdmVkIGZyb20pIHRoZSBXb3JrIGFuZCBmb3Igd2hpY2ggdGhlCisgICAgICBlZGl0b3JpYWwgcmV2aXNpb25zLCBhbm5vdGF0aW9ucywgZWxhYm9yYXRpb25zLCBvciBvdGhlciBtb2RpZmljYXRpb25zCisgICAgICByZXByZXNlbnQsIGFzIGEgd2hvbGUsIGFuIG9yaWdpbmFsIHdvcmsgb2YgYXV0aG9yc2hpcC4gRm9yIHRoZSBwdXJwb3NlcworICAgICAgb2YgdGhpcyBMaWNlbnNlLCBEZXJpdmF0aXZlIFdvcmtzIHNoYWxsIG5vdCBpbmNsdWRlIHdvcmtzIHRoYXQgcmVtYWluCisgICAgICBzZXBhcmFibGUgZnJvbSwgb3IgbWVyZWx5IGxpbmsgKG9yIGJpbmQgYnkgbmFtZSkgdG8gdGhlIGludGVyZmFjZXMgb2YsCisgICAgICB0aGUgV29yayBhbmQgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mLgorCisgICAgICAiQ29udHJpYnV0aW9uIiBzaGFsbCBtZWFuIGFueSB3b3JrIG9mIGF1dGhvcnNoaXAsIGluY2x1ZGluZworICAgICAgdGhlIG9yaWdpbmFsIHZlcnNpb24gb2YgdGhlIFdvcmsgYW5kIGFueSBtb2RpZmljYXRpb25zIG9yIGFkZGl0aW9ucworICAgICAgdG8gdGhhdCBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiwgdGhhdCBpcyBpbnRlbnRpb25hbGx5CisgICAgICBzdWJtaXR0ZWQgdG8gTGljZW5zb3IgZm9yIGluY2x1c2lvbiBpbiB0aGUgV29yayBieSB0aGUgY29weXJpZ2h0IG93bmVyCisgICAgICBvciBieSBhbiBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eSBhdXRob3JpemVkIHRvIHN1Ym1pdCBvbiBiZWhhbGYgb2YKKyAgICAgIHRoZSBjb3B5cmlnaHQgb3duZXIuIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBkZWZpbml0aW9uLCAic3VibWl0dGVkIgorICAgICAgbWVhbnMgYW55IGZvcm0gb2YgZWxlY3Ryb25pYywgdmVyYmFsLCBvciB3cml0dGVuIGNvbW11bmljYXRpb24gc2VudAorICAgICAgdG8gdGhlIExpY2Vuc29yIG9yIGl0cyByZXByZXNlbnRhdGl2ZXMsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8KKyAgICAgIGNvbW11bmljYXRpb24gb24gZWxlY3Ryb25pYyBtYWlsaW5nIGxpc3RzLCBzb3VyY2UgY29kZSBjb250cm9sIHN5c3RlbXMsCisgICAgICBhbmQgaXNzdWUgdHJhY2tpbmcgc3lzdGVtcyB0aGF0IGFyZSBtYW5hZ2VkIGJ5LCBvciBvbiBiZWhhbGYgb2YsIHRoZQorICAgICAgTGljZW5zb3IgZm9yIHRoZSBwdXJwb3NlIG9mIGRpc2N1c3NpbmcgYW5kIGltcHJvdmluZyB0aGUgV29yaywgYnV0CisgICAgICBleGNsdWRpbmcgY29tbXVuaWNhdGlvbiB0aGF0IGlzIGNvbnNwaWN1b3VzbHkgbWFya2VkIG9yIG90aGVyd2lzZQorICAgICAgZGVzaWduYXRlZCBpbiB3cml0aW5nIGJ5IHRoZSBjb3B5cmlnaHQgb3duZXIgYXMgIk5vdCBhIENvbnRyaWJ1dGlvbi4iCisKKyAgICAgICJDb250cmlidXRvciIgc2hhbGwgbWVhbiBMaWNlbnNvciBhbmQgYW55IGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5CisgICAgICBvbiBiZWhhbGYgb2Ygd2hvbSBhIENvbnRyaWJ1dGlvbiBoYXMgYmVlbiByZWNlaXZlZCBieSBMaWNlbnNvciBhbmQKKyAgICAgIHN1YnNlcXVlbnRseSBpbmNvcnBvcmF0ZWQgd2l0aGluIHRoZSBXb3JrLgorCisgICAyLiBHcmFudCBvZiBDb3B5cmlnaHQgTGljZW5zZS4gU3ViamVjdCB0byB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YKKyAgICAgIHRoaXMgTGljZW5zZSwgZWFjaCBDb250cmlidXRvciBoZXJlYnkgZ3JhbnRzIHRvIFlvdSBhIHBlcnBldHVhbCwKKyAgICAgIHdvcmxkd2lkZSwgbm9uLWV4Y2x1c2l2ZSwgbm8tY2hhcmdlLCByb3lhbHR5LWZyZWUsIGlycmV2b2NhYmxlCisgICAgICBjb3B5cmlnaHQgbGljZW5zZSB0byByZXByb2R1Y2UsIHByZXBhcmUgRGVyaXZhdGl2ZSBXb3JrcyBvZiwKKyAgICAgIHB1YmxpY2x5IGRpc3BsYXksIHB1YmxpY2x5IHBlcmZvcm0sIHN1YmxpY2Vuc2UsIGFuZCBkaXN0cmlidXRlIHRoZQorICAgICAgV29yayBhbmQgc3VjaCBEZXJpdmF0aXZlIFdvcmtzIGluIFNvdXJjZSBvciBPYmplY3QgZm9ybS4KKworICAgMy4gR3JhbnQgb2YgUGF0ZW50IExpY2Vuc2UuIFN1YmplY3QgdG8gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mCisgICAgICB0aGlzIExpY2Vuc2UsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cyB0byBZb3UgYSBwZXJwZXR1YWwsCisgICAgICB3b3JsZHdpZGUsIG5vbi1leGNsdXNpdmUsIG5vLWNoYXJnZSwgcm95YWx0eS1mcmVlLCBpcnJldm9jYWJsZQorICAgICAgKGV4Y2VwdCBhcyBzdGF0ZWQgaW4gdGhpcyBzZWN0aW9uKSBwYXRlbnQgbGljZW5zZSB0byBtYWtlLCBoYXZlIG1hZGUsCisgICAgICB1c2UsIG9mZmVyIHRvIHNlbGwsIHNlbGwsIGltcG9ydCwgYW5kIG90aGVyd2lzZSB0cmFuc2ZlciB0aGUgV29yaywKKyAgICAgIHdoZXJlIHN1Y2ggbGljZW5zZSBhcHBsaWVzIG9ubHkgdG8gdGhvc2UgcGF0ZW50IGNsYWltcyBsaWNlbnNhYmxlCisgICAgICBieSBzdWNoIENvbnRyaWJ1dG9yIHRoYXQgYXJlIG5lY2Vzc2FyaWx5IGluZnJpbmdlZCBieSB0aGVpcgorICAgICAgQ29udHJpYnV0aW9uKHMpIGFsb25lIG9yIGJ5IGNvbWJpbmF0aW9uIG9mIHRoZWlyIENvbnRyaWJ1dGlvbihzKQorICAgICAgd2l0aCB0aGUgV29yayB0byB3aGljaCBzdWNoIENvbnRyaWJ1dGlvbihzKSB3YXMgc3VibWl0dGVkLiBJZiBZb3UKKyAgICAgIGluc3RpdHV0ZSBwYXRlbnQgbGl0aWdhdGlvbiBhZ2FpbnN0IGFueSBlbnRpdHkgKGluY2x1ZGluZyBhCisgICAgICBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYSBsYXdzdWl0KSBhbGxlZ2luZyB0aGF0IHRoZSBXb3JrCisgICAgICBvciBhIENvbnRyaWJ1dGlvbiBpbmNvcnBvcmF0ZWQgd2l0aGluIHRoZSBXb3JrIGNvbnN0aXR1dGVzIGRpcmVjdAorICAgICAgb3IgY29udHJpYnV0b3J5IHBhdGVudCBpbmZyaW5nZW1lbnQsIHRoZW4gYW55IHBhdGVudCBsaWNlbnNlcworICAgICAgZ3JhbnRlZCB0byBZb3UgdW5kZXIgdGhpcyBMaWNlbnNlIGZvciB0aGF0IFdvcmsgc2hhbGwgdGVybWluYXRlCisgICAgICBhcyBvZiB0aGUgZGF0ZSBzdWNoIGxpdGlnYXRpb24gaXMgZmlsZWQuCisKKyAgIDQuIFJlZGlzdHJpYnV0aW9uLiBZb3UgbWF5IHJlcHJvZHVjZSBhbmQgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhlCisgICAgICBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiBpbiBhbnkgbWVkaXVtLCB3aXRoIG9yIHdpdGhvdXQKKyAgICAgIG1vZGlmaWNhdGlvbnMsIGFuZCBpbiBTb3VyY2Ugb3IgT2JqZWN0IGZvcm0sIHByb3ZpZGVkIHRoYXQgWW91CisgICAgICBtZWV0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKworICAgICAgKGEpIFlvdSBtdXN0IGdpdmUgYW55IG90aGVyIHJlY2lwaWVudHMgb2YgdGhlIFdvcmsgb3IKKyAgICAgICAgICBEZXJpdmF0aXZlIFdvcmtzIGEgY29weSBvZiB0aGlzIExpY2Vuc2U7IGFuZAorCisgICAgICAoYikgWW91IG11c3QgY2F1c2UgYW55IG1vZGlmaWVkIGZpbGVzIHRvIGNhcnJ5IHByb21pbmVudCBub3RpY2VzCisgICAgICAgICAgc3RhdGluZyB0aGF0IFlvdSBjaGFuZ2VkIHRoZSBmaWxlczsgYW5kCisKKyAgICAgIChjKSBZb3UgbXVzdCByZXRhaW4sIGluIHRoZSBTb3VyY2UgZm9ybSBvZiBhbnkgRGVyaXZhdGl2ZSBXb3JrcworICAgICAgICAgIHRoYXQgWW91IGRpc3RyaWJ1dGUsIGFsbCBjb3B5cmlnaHQsIHBhdGVudCwgdHJhZGVtYXJrLCBhbmQKKyAgICAgICAgICBhdHRyaWJ1dGlvbiBub3RpY2VzIGZyb20gdGhlIFNvdXJjZSBmb3JtIG9mIHRoZSBXb3JrLAorICAgICAgICAgIGV4Y2x1ZGluZyB0aG9zZSBub3RpY2VzIHRoYXQgZG8gbm90IHBlcnRhaW4gdG8gYW55IHBhcnQgb2YKKyAgICAgICAgICB0aGUgRGVyaXZhdGl2ZSBXb3JrczsgYW5kCisKKyAgICAgIChkKSBJZiB0aGUgV29yayBpbmNsdWRlcyBhICJOT1RJQ0UiIHRleHQgZmlsZSBhcyBwYXJ0IG9mIGl0cworICAgICAgICAgIGRpc3RyaWJ1dGlvbiwgdGhlbiBhbnkgRGVyaXZhdGl2ZSBXb3JrcyB0aGF0IFlvdSBkaXN0cmlidXRlIG11c3QKKyAgICAgICAgICBpbmNsdWRlIGEgcmVhZGFibGUgY29weSBvZiB0aGUgYXR0cmlidXRpb24gbm90aWNlcyBjb250YWluZWQKKyAgICAgICAgICB3aXRoaW4gc3VjaCBOT1RJQ0UgZmlsZSwgZXhjbHVkaW5nIHRob3NlIG5vdGljZXMgdGhhdCBkbyBub3QKKyAgICAgICAgICBwZXJ0YWluIHRvIGFueSBwYXJ0IG9mIHRoZSBEZXJpdmF0aXZlIFdvcmtzLCBpbiBhdCBsZWFzdCBvbmUKKyAgICAgICAgICBvZiB0aGUgZm9sbG93aW5nIHBsYWNlczogd2l0aGluIGEgTk9USUNFIHRleHQgZmlsZSBkaXN0cmlidXRlZAorICAgICAgICAgIGFzIHBhcnQgb2YgdGhlIERlcml2YXRpdmUgV29ya3M7IHdpdGhpbiB0aGUgU291cmNlIGZvcm0gb3IKKyAgICAgICAgICBkb2N1bWVudGF0aW9uLCBpZiBwcm92aWRlZCBhbG9uZyB3aXRoIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyBvciwKKyAgICAgICAgICB3aXRoaW4gYSBkaXNwbGF5IGdlbmVyYXRlZCBieSB0aGUgRGVyaXZhdGl2ZSBXb3JrcywgaWYgYW5kCisgICAgICAgICAgd2hlcmV2ZXIgc3VjaCB0aGlyZC1wYXJ0eSBub3RpY2VzIG5vcm1hbGx5IGFwcGVhci4gVGhlIGNvbnRlbnRzCisgICAgICAgICAgb2YgdGhlIE5PVElDRSBmaWxlIGFyZSBmb3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5IGFuZAorICAgICAgICAgIGRvIG5vdCBtb2RpZnkgdGhlIExpY2Vuc2UuIFlvdSBtYXkgYWRkIFlvdXIgb3duIGF0dHJpYnV0aW9uCisgICAgICAgICAgbm90aWNlcyB3aXRoaW4gRGVyaXZhdGl2ZSBXb3JrcyB0aGF0IFlvdSBkaXN0cmlidXRlLCBhbG9uZ3NpZGUKKyAgICAgICAgICBvciBhcyBhbiBhZGRlbmR1bSB0byB0aGUgTk9USUNFIHRleHQgZnJvbSB0aGUgV29yaywgcHJvdmlkZWQKKyAgICAgICAgICB0aGF0IHN1Y2ggYWRkaXRpb25hbCBhdHRyaWJ1dGlvbiBub3RpY2VzIGNhbm5vdCBiZSBjb25zdHJ1ZWQKKyAgICAgICAgICBhcyBtb2RpZnlpbmcgdGhlIExpY2Vuc2UuCisKKyAgICAgIFlvdSBtYXkgYWRkIFlvdXIgb3duIGNvcHlyaWdodCBzdGF0ZW1lbnQgdG8gWW91ciBtb2RpZmljYXRpb25zIGFuZAorICAgICAgbWF5IHByb3ZpZGUgYWRkaXRpb25hbCBvciBkaWZmZXJlbnQgbGljZW5zZSB0ZXJtcyBhbmQgY29uZGl0aW9ucworICAgICAgZm9yIHVzZSwgcmVwcm9kdWN0aW9uLCBvciBkaXN0cmlidXRpb24gb2YgWW91ciBtb2RpZmljYXRpb25zLCBvcgorICAgICAgZm9yIGFueSBzdWNoIERlcml2YXRpdmUgV29ya3MgYXMgYSB3aG9sZSwgcHJvdmlkZWQgWW91ciB1c2UsCisgICAgICByZXByb2R1Y3Rpb24sIGFuZCBkaXN0cmlidXRpb24gb2YgdGhlIFdvcmsgb3RoZXJ3aXNlIGNvbXBsaWVzIHdpdGgKKyAgICAgIHRoZSBjb25kaXRpb25zIHN0YXRlZCBpbiB0aGlzIExpY2Vuc2UuCisKKyAgIDUuIFN1Ym1pc3Npb24gb2YgQ29udHJpYnV0aW9ucy4gVW5sZXNzIFlvdSBleHBsaWNpdGx5IHN0YXRlIG90aGVyd2lzZSwKKyAgICAgIGFueSBDb250cmlidXRpb24gaW50ZW50aW9uYWxseSBzdWJtaXR0ZWQgZm9yIGluY2x1c2lvbiBpbiB0aGUgV29yaworICAgICAgYnkgWW91IHRvIHRoZSBMaWNlbnNvciBzaGFsbCBiZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YKKyAgICAgIHRoaXMgTGljZW5zZSwgd2l0aG91dCBhbnkgYWRkaXRpb25hbCB0ZXJtcyBvciBjb25kaXRpb25zLgorICAgICAgTm90d2l0aHN0YW5kaW5nIHRoZSBhYm92ZSwgbm90aGluZyBoZXJlaW4gc2hhbGwgc3VwZXJzZWRlIG9yIG1vZGlmeQorICAgICAgdGhlIHRlcm1zIG9mIGFueSBzZXBhcmF0ZSBsaWNlbnNlIGFncmVlbWVudCB5b3UgbWF5IGhhdmUgZXhlY3V0ZWQKKyAgICAgIHdpdGggTGljZW5zb3IgcmVnYXJkaW5nIHN1Y2ggQ29udHJpYnV0aW9ucy4KKworICAgNi4gVHJhZGVtYXJrcy4gVGhpcyBMaWNlbnNlIGRvZXMgbm90IGdyYW50IHBlcm1pc3Npb24gdG8gdXNlIHRoZSB0cmFkZQorICAgICAgbmFtZXMsIHRyYWRlbWFya3MsIHNlcnZpY2UgbWFya3MsIG9yIHByb2R1Y3QgbmFtZXMgb2YgdGhlIExpY2Vuc29yLAorICAgICAgZXhjZXB0IGFzIHJlcXVpcmVkIGZvciByZWFzb25hYmxlIGFuZCBjdXN0b21hcnkgdXNlIGluIGRlc2NyaWJpbmcgdGhlCisgICAgICBvcmlnaW4gb2YgdGhlIFdvcmsgYW5kIHJlcHJvZHVjaW5nIHRoZSBjb250ZW50IG9mIHRoZSBOT1RJQ0UgZmlsZS4KKworICAgNy4gRGlzY2xhaW1lciBvZiBXYXJyYW50eS4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yCisgICAgICBhZ3JlZWQgdG8gaW4gd3JpdGluZywgTGljZW5zb3IgcHJvdmlkZXMgdGhlIFdvcmsgKGFuZCBlYWNoCisgICAgICBDb250cmlidXRvciBwcm92aWRlcyBpdHMgQ29udHJpYnV0aW9ucykgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvcgorICAgICAgaW1wbGllZCwgaW5jbHVkaW5nLCB3aXRob3V0IGxpbWl0YXRpb24sIGFueSB3YXJyYW50aWVzIG9yIGNvbmRpdGlvbnMKKyAgICAgIG9mIFRJVExFLCBOT04tSU5GUklOR0VNRU5ULCBNRVJDSEFOVEFCSUxJVFksIG9yIEZJVE5FU1MgRk9SIEEKKyAgICAgIFBBUlRJQ1VMQVIgUFVSUE9TRS4gWW91IGFyZSBzb2xlbHkgcmVzcG9uc2libGUgZm9yIGRldGVybWluaW5nIHRoZQorICAgICAgYXBwcm9wcmlhdGVuZXNzIG9mIHVzaW5nIG9yIHJlZGlzdHJpYnV0aW5nIHRoZSBXb3JrIGFuZCBhc3N1bWUgYW55CisgICAgICByaXNrcyBhc3NvY2lhdGVkIHdpdGggWW91ciBleGVyY2lzZSBvZiBwZXJtaXNzaW9ucyB1bmRlciB0aGlzIExpY2Vuc2UuCisKKyAgIDguIExpbWl0YXRpb24gb2YgTGlhYmlsaXR5LiBJbiBubyBldmVudCBhbmQgdW5kZXIgbm8gbGVnYWwgdGhlb3J5LAorICAgICAgd2hldGhlciBpbiB0b3J0IChpbmNsdWRpbmcgbmVnbGlnZW5jZSksIGNvbnRyYWN0LCBvciBvdGhlcndpc2UsCisgICAgICB1bmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgKHN1Y2ggYXMgZGVsaWJlcmF0ZSBhbmQgZ3Jvc3NseQorICAgICAgbmVnbGlnZW50IGFjdHMpIG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzaGFsbCBhbnkgQ29udHJpYnV0b3IgYmUKKyAgICAgIGxpYWJsZSB0byBZb3UgZm9yIGRhbWFnZXMsIGluY2x1ZGluZyBhbnkgZGlyZWN0LCBpbmRpcmVjdCwgc3BlY2lhbCwKKyAgICAgIGluY2lkZW50YWwsIG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvZiBhbnkgY2hhcmFjdGVyIGFyaXNpbmcgYXMgYQorICAgICAgcmVzdWx0IG9mIHRoaXMgTGljZW5zZSBvciBvdXQgb2YgdGhlIHVzZSBvciBpbmFiaWxpdHkgdG8gdXNlIHRoZQorICAgICAgV29yayAoaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byBkYW1hZ2VzIGZvciBsb3NzIG9mIGdvb2R3aWxsLAorICAgICAgd29yayBzdG9wcGFnZSwgY29tcHV0ZXIgZmFpbHVyZSBvciBtYWxmdW5jdGlvbiwgb3IgYW55IGFuZCBhbGwKKyAgICAgIG90aGVyIGNvbW1lcmNpYWwgZGFtYWdlcyBvciBsb3NzZXMpLCBldmVuIGlmIHN1Y2ggQ29udHJpYnV0b3IKKyAgICAgIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHN1Y2ggZGFtYWdlcy4KKworICAgOS4gQWNjZXB0aW5nIFdhcnJhbnR5IG9yIEFkZGl0aW9uYWwgTGlhYmlsaXR5LiBXaGlsZSByZWRpc3RyaWJ1dGluZworICAgICAgdGhlIFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mLCBZb3UgbWF5IGNob29zZSB0byBvZmZlciwKKyAgICAgIGFuZCBjaGFyZ2UgYSBmZWUgZm9yLCBhY2NlcHRhbmNlIG9mIHN1cHBvcnQsIHdhcnJhbnR5LCBpbmRlbW5pdHksCisgICAgICBvciBvdGhlciBsaWFiaWxpdHkgb2JsaWdhdGlvbnMgYW5kL29yIHJpZ2h0cyBjb25zaXN0ZW50IHdpdGggdGhpcworICAgICAgTGljZW5zZS4gSG93ZXZlciwgaW4gYWNjZXB0aW5nIHN1Y2ggb2JsaWdhdGlvbnMsIFlvdSBtYXkgYWN0IG9ubHkKKyAgICAgIG9uIFlvdXIgb3duIGJlaGFsZiBhbmQgb24gWW91ciBzb2xlIHJlc3BvbnNpYmlsaXR5LCBub3Qgb24gYmVoYWxmCisgICAgICBvZiBhbnkgb3RoZXIgQ29udHJpYnV0b3IsIGFuZCBvbmx5IGlmIFlvdSBhZ3JlZSB0byBpbmRlbW5pZnksCisgICAgICBkZWZlbmQsIGFuZCBob2xkIGVhY2ggQ29udHJpYnV0b3IgaGFybWxlc3MgZm9yIGFueSBsaWFiaWxpdHkKKyAgICAgIGluY3VycmVkIGJ5LCBvciBjbGFpbXMgYXNzZXJ0ZWQgYWdhaW5zdCwgc3VjaCBDb250cmlidXRvciBieSByZWFzb24KKyAgICAgIG9mIHlvdXIgYWNjZXB0aW5nIGFueSBzdWNoIHdhcnJhbnR5IG9yIGFkZGl0aW9uYWwgbGlhYmlsaXR5LgorCisgICBFTkQgT0YgVEVSTVMgQU5EIENPTkRJVElPTlMKKworICAgQVBQRU5ESVg6IEhvdyB0byBhcHBseSB0aGUgQXBhY2hlIExpY2Vuc2UgdG8geW91ciB3b3JrLgorCisgICAgICBUbyBhcHBseSB0aGUgQXBhY2hlIExpY2Vuc2UgdG8geW91ciB3b3JrLCBhdHRhY2ggdGhlIGZvbGxvd2luZworICAgICAgYm9pbGVycGxhdGUgbm90aWNlLCB3aXRoIHRoZSBmaWVsZHMgZW5jbG9zZWQgYnkgYnJhY2tldHMgIltdIgorICAgICAgcmVwbGFjZWQgd2l0aCB5b3VyIG93biBpZGVudGlmeWluZyBpbmZvcm1hdGlvbi4gKERvbid0IGluY2x1ZGUKKyAgICAgIHRoZSBicmFja2V0cyEpICBUaGUgdGV4dCBzaG91bGQgYmUgZW5jbG9zZWQgaW4gdGhlIGFwcHJvcHJpYXRlCisgICAgICBjb21tZW50IHN5bnRheCBmb3IgdGhlIGZpbGUgZm9ybWF0LiBXZSBhbHNvIHJlY29tbWVuZCB0aGF0IGEKKyAgICAgIGZpbGUgb3IgY2xhc3MgbmFtZSBhbmQgZGVzY3JpcHRpb24gb2YgcHVycG9zZSBiZSBpbmNsdWRlZCBvbiB0aGUKKyAgICAgIHNhbWUgInByaW50ZWQgcGFnZSIgYXMgdGhlIGNvcHlyaWdodCBub3RpY2UgZm9yIGVhc2llcgorICAgICAgaWRlbnRpZmljYXRpb24gd2l0aGluIHRoaXJkLXBhcnR5IGFyY2hpdmVzLgorCisgICBDb3B5cmlnaHQgW3l5eXldIFtuYW1lIG9mIGNvcHlyaWdodCBvd25lcl0KKworICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKworCisKZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9hYmVnby90cmVlbGF5b3V0L29yZy5hYmVnby50cmVlbGF5b3V0LmNvcmUvMS4wLjEvTk9USUNFIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2FiZWdvL3RyZWVsYXlvdXQvb3JnLmFiZWdvLnRyZWVsYXlvdXQuY29yZS8xLjAuMS9OT1RJQ0UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTYyMGFmNAotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9hYmVnby90cmVlbGF5b3V0L29yZy5hYmVnby50cmVlbGF5b3V0LmNvcmUvMS4wLjEvTk9USUNFCkBAIC0wLDAgKzEsMjcgQEAKK1tUaGUgIkJTRCBsaWNlbnNlIl0KK0NvcHlyaWdodCAoYykgMjAxMSwgYWJlZ28gU29mdHdhcmUgR21iSCwgR2VybWFueSAoaHR0cDovL3d3dy5hYmVnby5vcmcpCitBbGwgcmlnaHRzIHJlc2VydmVkLgorCitSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKK21vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorCisxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbgorICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCiszLiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBhYmVnbyBTb2Z0d2FyZSBHbWJIIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgICBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzCisgICBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKworVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiCitBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCitJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRQorTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKK1NVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KK0NPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCitBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRQorUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvYWJlZ28vdHJlZWxheW91dC9vcmcuYWJlZ28udHJlZWxheW91dC5jb3JlLzEuMC4xL29yZy5hYmVnby50cmVlbGF5b3V0LmNvcmUtMS4wLjEuamFyIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2FiZWdvL3RyZWVsYXlvdXQvb3JnLmFiZWdvLnRyZWVsYXlvdXQuY29yZS8xLjAuMS9vcmcuYWJlZ28udHJlZWxheW91dC5jb3JlLTEuMC4xLmphcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMzUwYWRjCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2FiZWdvL3RyZWVsYXlvdXQvb3JnLmFiZWdvLnRyZWVsYXlvdXQuY29yZS8xLjAuMS9vcmcuYWJlZ28udHJlZWxheW91dC5jb3JlLTEuMC4xLmphcgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvYWJlZ28vdHJlZWxheW91dC9vcmcuYWJlZ28udHJlZWxheW91dC5jb3JlLzEuMC4xL29yZy5hYmVnby50cmVlbGF5b3V0LmNvcmUtMS4wLjEuamFyLnNoYTEgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvYWJlZ28vdHJlZWxheW91dC9vcmcuYWJlZ28udHJlZWxheW91dC5jb3JlLzEuMC4xL29yZy5hYmVnby50cmVlbGF5b3V0LmNvcmUtMS4wLjEuamFyLnNoYTEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTQyNWI4MgotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9hYmVnby90cmVlbGF5b3V0L29yZy5hYmVnby50cmVlbGF5b3V0LmNvcmUvMS4wLjEvb3JnLmFiZWdvLnRyZWVsYXlvdXQuY29yZS0xLjAuMS5qYXIuc2hhMQpAQCAtMCwwICsxIEBACitlMzFlNzljYmE3YTU0MTRjZjE4ZmE2OWYzZjBhMmNmOWVlOTk3YjYxClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2FiZWdvL3RyZWVsYXlvdXQvb3JnLmFiZWdvLnRyZWVsYXlvdXQuY29yZS8xLjAuMS9vcmcuYWJlZ28udHJlZWxheW91dC5jb3JlLTEuMC4xLnBvbSBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9hYmVnby90cmVlbGF5b3V0L29yZy5hYmVnby50cmVlbGF5b3V0LmNvcmUvMS4wLjEvb3JnLmFiZWdvLnRyZWVsYXlvdXQuY29yZS0xLjAuMS5wb20KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzE1MjFkOQotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9hYmVnby90cmVlbGF5b3V0L29yZy5hYmVnby50cmVlbGF5b3V0LmNvcmUvMS4wLjEvb3JnLmFiZWdvLnRyZWVsYXlvdXQuY29yZS0xLjAuMS5wb20KQEAgLTAsMCArMSw5MSBAQAorDQorPHByb2plY3QgeG1sbnM9Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCINCisgICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiDQorICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCBodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy94c2QvbWF2ZW4tNC4wLjAueHNkIj4NCisNCisgICAgPG1vZGVsVmVyc2lvbj40LjAuMDwvbW9kZWxWZXJzaW9uPg0KKw0KKyAgICA8Z3JvdXBJZD5vcmcuYWJlZ28udHJlZWxheW91dDwvZ3JvdXBJZD4NCisgICAgPGFydGlmYWN0SWQ+b3JnLmFiZWdvLnRyZWVsYXlvdXQuY29yZTwvYXJ0aWZhY3RJZD4NCisgICAgPHZlcnNpb24+MS4wLjE8L3ZlcnNpb24+DQorICAgIDxwYWNrYWdpbmc+amFyPC9wYWNrYWdpbmc+DQorDQorICAgIDxuYW1lPmFiZWdvIFRyZWVMYXlvdXQgQ29yZTwvbmFtZT4NCisgICAgPGRlc2NyaXB0aW9uPkVmZmljaWVudCBhbmQgY3VzdG9taXphYmxlIFRyZWVMYXlvdXQgQWxnb3JpdGhtIGluIEphdmEuPC9kZXNjcmlwdGlvbj4NCisgICAgPHVybD5odHRwOi8vY29kZS5nb29nbGUuY29tL3AvdHJlZWxheW91dC88L3VybD4NCisNCisgICAgPHBhcmVudD4NCisgICAgICAgIDxncm91cElkPm9yZy5zb25hdHlwZS5vc3M8L2dyb3VwSWQ+DQorICAgICAgICA8YXJ0aWZhY3RJZD5vc3MtcGFyZW50PC9hcnRpZmFjdElkPg0KKyAgICAgICAgPHZlcnNpb24+NzwvdmVyc2lvbj4NCisgICAgPC9wYXJlbnQ+DQorDQorICAgIDxsaWNlbnNlcz4NCisgICAgICAgIDxsaWNlbnNlPg0KKyAgICAgICAgICAgIDxuYW1lPkJTRCAzLUNsYXVzZSAiTmV3IiBvciAiUmV2aXNlZCIgTGljZW5zZSAoQlNELTMtQ2xhdXNlKTwvbmFtZT4NCisgICAgICAgICAgICA8dXJsPmh0dHA6Ly90cmVlbGF5b3V0Lmdvb2dsZWNvZGUuY29tL2ZpbGVzL0xJQ0VOU0UuVFhUPC91cmw+DQorICAgICAgICAgICAgPGRpc3RyaWJ1dGlvbj5yZXBvPC9kaXN0cmlidXRpb24+DQorICAgICAgICA8L2xpY2Vuc2U+DQorICAgIDwvbGljZW5zZXM+DQorDQorICAgIDxzY20+DQorICAgICAgICA8dXJsPmh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC90cmVlbGF5b3V0L3NvdXJjZS9icm93c2UvPC91cmw+DQorICAgICAgICA8Y29ubmVjdGlvbj5zY206c3ZuOmh0dHA6Ly90cmVlbGF5b3V0Lmdvb2dsZWNvZGUuY29tL3N2bi88L2Nvbm5lY3Rpb24+DQorICAgIDwvc2NtPg0KKw0KKyAgICA8ZGV2ZWxvcGVycz4NCisgICAgICAgIDxkZXZlbG9wZXI+DQorICAgICAgICAgICAgPGlkPnViPC9pZD4NCisgICAgICAgICAgICA8bmFtZT5VZG8gQm9ya293c2tpPC9uYW1lPg0KKyAgICAgICAgICAgIDxlbWFpbD51YkBhYmVnby5vcmc8L2VtYWlsPg0KKyAgICAgICAgICAgIDxvcmdhbml6YXRpb24+YWJlZ28gU29mdHdhcmUgR21iSCwgR2VybWFueTwvb3JnYW5pemF0aW9uPg0KKyAgICAgICAgICAgIDxvcmdhbml6YXRpb25Vcmw+aHR0cDovL2FiZWdvLXNvZnR3YXJlLmRlPC9vcmdhbml6YXRpb25Vcmw+DQorICAgICAgICA8L2RldmVsb3Blcj4NCisgICAgPC9kZXZlbG9wZXJzPg0KKw0KKyAgICA8b3JnYW5pemF0aW9uPg0KKyAgICAgICAgPG5hbWU+YWJlZ28gU29mdHdhcmUgR21iSCwgR2VybWFueTwvbmFtZT4NCisgICAgICAgIDx1cmw+aHR0cDovL2FiZWdvLXNvZnR3YXJlLmRlPC91cmw+DQorICAgIDwvb3JnYW5pemF0aW9uPg0KKw0KKyAgICA8cHJvcGVydGllcz4NCisgICAgICAgIDxwcm9qZWN0LmJ1aWxkLnNvdXJjZUVuY29kaW5nPlVURi04PC9wcm9qZWN0LmJ1aWxkLnNvdXJjZUVuY29kaW5nPg0KKyAgICA8L3Byb3BlcnRpZXM+DQorDQorICAgIDxidWlsZD4NCisgICAgICAgIDxwbHVnaW5zPg0KKyAgICAgICAgICAgIDxwbHVnaW4+DQorICAgICAgICAgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4NCisgICAgICAgICAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tY29tcGlsZXItcGx1Z2luPC9hcnRpZmFjdElkPg0KKyAgICAgICAgICAgICAgICA8dmVyc2lvbj4yLjMuMjwvdmVyc2lvbj4NCisgICAgICAgICAgICAgICAgPGNvbmZpZ3VyYXRpb24+DQorICAgICAgICAgICAgICAgICAgICA8c291cmNlPjEuNTwvc291cmNlPg0KKyAgICAgICAgICAgICAgICAgICAgPHRhcmdldD4xLjU8L3RhcmdldD4NCisgICAgICAgICAgICAgICAgPC9jb25maWd1cmF0aW9uPg0KKyAgICAgICAgICAgIDwvcGx1Z2luPg0KKw0KKyAgICAgICAgICAgIDxwbHVnaW4+DQorICAgICAgICAgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4NCisgICAgICAgICAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tamFyLXBsdWdpbjwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgICAgICAgPHZlcnNpb24+Mi4zLjI8L3ZlcnNpb24+DQorICAgICAgICAgICAgICAgIDxjb25maWd1cmF0aW9uPg0KKyAgICAgICAgICAgICAgICAgICAgPGFyY2hpdmU+DQorICAgICAgICAgICAgICAgICAgICAgICAgPG1hbmlmZXN0Pg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWRkRGVmYXVsdEltcGxlbWVudGF0aW9uRW50cmllcz50cnVlPC9hZGREZWZhdWx0SW1wbGVtZW50YXRpb25FbnRyaWVzPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWRkRGVmYXVsdFNwZWNpZmljYXRpb25FbnRyaWVzPnRydWU8L2FkZERlZmF1bHRTcGVjaWZpY2F0aW9uRW50cmllcz4NCisgICAgICAgICAgICAgICAgICAgICAgICA8L21hbmlmZXN0Pg0KKyAgICAgICAgICAgICAgICAgICAgPC9hcmNoaXZlPg0KKyAgICAgICAgICAgICAgICA8L2NvbmZpZ3VyYXRpb24+DQorICAgICAgICAgICAgPC9wbHVnaW4+DQorICAgICAgICA8L3BsdWdpbnM+DQorICAgIDwvYnVpbGQ+DQorDQorICAgIDxkZXBlbmRlbmNpZXM+DQorICAgICAgICA8ZGVwZW5kZW5jeT4NCisgICAgICAgICAgICA8Z3JvdXBJZD5qdW5pdDwvZ3JvdXBJZD4NCisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5qdW5pdDwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgICA8dmVyc2lvbj40LjguMjwvdmVyc2lvbj4NCisgICAgICAgICAgICA8c2NvcGU+dGVzdDwvc2NvcGU+DQorICAgICAgICA8L2RlcGVuZGVuY3k+DQorICAgIDwvZGVwZW5kZW5jaWVzPg0KKzwvcHJvamVjdD4NCmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvYWJlZ28vdHJlZWxheW91dC9vcmcuYWJlZ28udHJlZWxheW91dC5jb3JlLzEuMC4xL29yZy5hYmVnby50cmVlbGF5b3V0LmNvcmUtMS4wLjEucG9tLnNoYTEgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvYWJlZ28vdHJlZWxheW91dC9vcmcuYWJlZ28udHJlZWxheW91dC5jb3JlLzEuMC4xL29yZy5hYmVnby50cmVlbGF5b3V0LmNvcmUtMS4wLjEucG9tLnNoYTEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTgzZTJhOQotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9hYmVnby90cmVlbGF5b3V0L29yZy5hYmVnby50cmVlbGF5b3V0LmNvcmUvMS4wLjEvb3JnLmFiZWdvLnRyZWVsYXlvdXQuY29yZS0xLjAuMS5wb20uc2hhMQpAQCAtMCwwICsxIEBACitlOGRhNzJiNGUzMWM2NjEwY2E1N2ZkZTVmNzNkNWVlNGQxZDVmOTU3ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2FudGxyL1NUNC80LjAuOC9OT1RJQ0UgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvYW50bHIvU1Q0LzQuMC44L05PVElDRQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NWQwYTI1Ci0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2FudGxyL1NUNC80LjAuOC9OT1RJQ0UKQEAgLTAsMCArMSwyNiBAQAorW1RoZSAiQlNEIGxpY2Vuc2UiXQorQ29weXJpZ2h0IChjKSAyMDE1IFRlcmVuY2UgUGFyciwgU2FtIEhhcndlbGwKK0FsbCByaWdodHMgcmVzZXJ2ZWQuCisKK1JlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCithcmUgbWV0OgorCisgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKworVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKK0lNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKK09GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCitJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCitJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQKK05PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKK0RBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCitUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgpkaWZmIC0tZ2l0IGEvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2FudGxyL1NUNC80LjAuOC9TVDQtNC4wLjguamFyIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2FudGxyL1NUNC80LjAuOC9TVDQtNC4wLjguamFyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE0NDgyOGIKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvYW50bHIvU1Q0LzQuMC44L1NUNC00LjAuOC5qYXIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2FudGxyL1NUNC80LjAuOC9TVDQtNC4wLjguamFyLnNoYTEgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvYW50bHIvU1Q0LzQuMC44L1NUNC00LjAuOC5qYXIuc2hhMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOTc4ODVjCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2FudGxyL1NUNC80LjAuOC9TVDQtNC4wLjguamFyLnNoYTEKQEAgLTAsMCArMSBAQAorMGExYzU1ZTk3NGY4YTk0ZDc4ZTIzNDhmYTZmZjYzZjRmYTFmYWU2NApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9hbnRsci9TVDQvNC4wLjgvU1Q0LTQuMC44LnBvbSBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9hbnRsci9TVDQvNC4wLjgvU1Q0LTQuMC44LnBvbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NTAyMDZlCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2FudGxyL1NUNC80LjAuOC9TVDQtNC4wLjgucG9tCkBAIC0wLDAgKzEsMzQ0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KKw0KKzxwcm9qZWN0IHhtbG5zPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL21hdmVuLXY0XzBfMC54c2QiPg0KKw0KKyAgICA8cGFyZW50Pg0KKyAgICAgICAgPGdyb3VwSWQ+b3JnLnNvbmF0eXBlLm9zczwvZ3JvdXBJZD4NCisgICAgICAgIDxhcnRpZmFjdElkPm9zcy1wYXJlbnQ8L2FydGlmYWN0SWQ+DQorICAgICAgICA8dmVyc2lvbj45PC92ZXJzaW9uPg0KKyAgICA8L3BhcmVudD4NCisNCisgICAgPG1vZGVsVmVyc2lvbj40LjAuMDwvbW9kZWxWZXJzaW9uPg0KKyAgICA8Z3JvdXBJZD5vcmcuYW50bHI8L2dyb3VwSWQ+DQorICAgIDxhcnRpZmFjdElkPlNUNDwvYXJ0aWZhY3RJZD4NCisgICAgPHBhY2thZ2luZz5qYXI8L3BhY2thZ2luZz4NCisNCisgICAgPCEtLQ0KKyAgICAgICAgVGhlIHZlcnNpb24gbnVtYmVyIGRlZmluZWQgaGVyZSBpbiB0aGUgdmVyc2lvbiB0YWcgaW5kaWNhdGVzIGhvdyB0aGUNCisgICAgICAgIGphciBpcyBuYW1lZCBhbmQgcmVsZWFzZWQuIFdoZW4gaXQgZW5kcyB3aXRoIFNOQVBTSE9ULCBpdCB3aWxsIGJlIHN0b3JlZA0KKyAgICAgICAgaW4geW91ciBsb2NhbCByZXBvc2l0b3J5ICh+L20yIG9uIFVOSVgpIGFzIHN0cmluZ3RlbXBsYXRlLVguWS1TTkFQU0hPVCwgYnV0DQorICAgICAgICB3aWxsIGJlIGRlcGx5ZWQgdG8gdGhlIEFOVExSIHNuYXBzaG90IHJlcG9zaXRvcnkgYXQgYW50bHIub3JnIHdpdGggdGhlIHdvcmQNCisgICAgICAgIFNOQVBTSE9UIHJlcGxhY2VkIHdpdGggdGhlIHRoZSBkYXRhLCB0aW1lIGFuZCB1bmlxdWUgbnVtYmVyLg0KKyAgICAtLT4NCisNCisgICAgPHZlcnNpb24+NC4wLjg8L3ZlcnNpb24+DQorDQorICAgIDwhLS0NCisgICAgICAgIFRoZSBuYW1lIG9mIHRoZSBwcm9qZWN0IGFzIHNlZW4gYnkgSURFcyBhbmQgcmVsZWFzZSBkb2N1bWVudGF0aW9uIGV0Yy4NCisgICAgLS0+DQorDQorICAgIDxuYW1lPlN0cmluZ1RlbXBsYXRlIDQ8L25hbWU+DQorICAgIDxkZXNjcmlwdGlvbj5TdHJpbmdUZW1wbGF0ZSBpcyBhIGphdmEgdGVtcGxhdGUgZW5naW5lIGZvciBnZW5lcmF0aW5nIHNvdXJjZSBjb2RlLA0KK3dlYiBwYWdlcywgZW1haWxzLCBvciBhbnkgb3RoZXIgZm9ybWF0dGVkIHRleHQgb3V0cHV0Lg0KKw0KK1N0cmluZ1RlbXBsYXRlIGlzIHBhcnRpY3VsYXJseSBnb29kIGF0IG11bHRpLXRhcmdldGVkIGNvZGUgZ2VuZXJhdG9ycywNCittdWx0aXBsZSBzaXRlIHNraW5zLCBhbmQgaW50ZXJuYXRpb25hbGl6YXRpb24vbG9jYWxpemF0aW9uLiANCisNCitJdCBldm9sdmVkIG92ZXIgeWVhcnMgb2YgZWZmb3J0IGRldmVsb3Bpbmcgakd1cnUuY29tLiANCisNCitTdHJpbmdUZW1wbGF0ZSBhbHNvIGdlbmVyYXRlcyB0aGUgc3RyaW5ndGVtcGxhdGUgd2Vic2l0ZTogaHR0cDovL3d3dy5zdHJpbmd0ZW1wbGF0ZS5vcmcNCithbmQgcG93ZXJzIHRoZSBBTlRMUiB2MyBjb2RlIGdlbmVyYXRvci4gSXRzIGRpc3Rpbmd1aXNoaW5nIGNoYXJhY3RlcmlzdGljIA0KK2lzIHRoYXQgdW5saWtlIG90aGVyIGVuZ2luZXMsIGl0IHN0cmljdGx5IGVuZm9yY2VzIG1vZGVsLXZpZXcgc2VwYXJhdGlvbi4NCisNCitTdHJpY3Qgc2VwYXJhdGlvbiBtYWtlcyB3ZWJzaXRlcyBhbmQgY29kZSBnZW5lcmF0b3JzIG1vcmUgZmxleGlibGUNCithbmQgbWFpbnRhaW5hYmxlOyBpdCBhbHNvIHByb3ZpZGVzIGFuIGV4Y2VsbGVudCBkZWZlbnNlIGFnYWluc3QgbWFsaWNpb3VzDQordGVtcGxhdGUgYXV0aG9ycy4NCisNCitUaGVyZSBhcmUgY3VycmVudGx5IGFib3V0IDYwMCBTdHJpbmdUZW1wbGF0ZSBzb3VyY2UgZG93bmxvYWRzIGEgbW9udGguDQorICAgIDwvZGVzY3JpcHRpb24+DQorICAgIA0KKyAgICA8cHJvcGVydGllcz4NCisgICAgICAgIDxwcm9qZWN0LmJ1aWxkLnNvdXJjZUVuY29kaW5nPlVURi04PC9wcm9qZWN0LmJ1aWxkLnNvdXJjZUVuY29kaW5nPg0KKyAgICAgICAgPGphdmE1LmhvbWU+JHtlbnYuSkFWQTVfSE9NRX08L2phdmE1LmhvbWU+DQorICAgICAgICA8amF2YTYuaG9tZT4ke2Vudi5KQVZBNl9IT01FfTwvamF2YTYuaG9tZT4NCisgICAgICAgIDxib290Y2xhc3NwYXRoLmphdmE1PiR7amF2YTUuaG9tZX0vbGliL3J0LmphcjwvYm9vdGNsYXNzcGF0aC5qYXZhNT4NCisgICAgICAgIDxib290Y2xhc3NwYXRoLmphdmE2PiR7amF2YTYuaG9tZX0vbGliL3J0LmphcjwvYm9vdGNsYXNzcGF0aC5qYXZhNj4NCisgICAgICAgIDxib290Y2xhc3NwYXRoLmNvbXBpbGU+JHtib290Y2xhc3NwYXRoLmphdmE1fTwvYm9vdGNsYXNzcGF0aC5jb21waWxlPg0KKyAgICAgICAgPGJvb3RjbGFzc3BhdGgudGVzdENvbXBpbGU+JHtib290Y2xhc3NwYXRoLmphdmE2fTwvYm9vdGNsYXNzcGF0aC50ZXN0Q29tcGlsZT4NCisgICAgPC9wcm9wZXJ0aWVzPg0KKyAgICANCisgICAgPCEtLQ0KKyAgICAgICAgVGhlIFVSTCBvZiB0aGUgYmFzZSBwcm9qZWN0DQorICAgICAgLS0+DQorDQorICAgIDx1cmw+aHR0cDovL3d3dy5zdHJpbmd0ZW1wbGF0ZS5vcmc8L3VybD4NCisgICAgPGRldmVsb3BlcnM+DQorICAgICAgICA8ZGV2ZWxvcGVyPg0KKyAgICAgICAgICAgIDxuYW1lPlRlcmVuY2UgUGFycjwvbmFtZT4NCisgICAgICAgICAgICA8b3JnYW5pemF0aW9uPlVTRkNBPC9vcmdhbml6YXRpb24+DQorICAgICAgICAgICAgPG9yZ2FuaXphdGlvblVybD5odHRwOi8vd3d3LmNzLnVzZmNhLmVkdTwvb3JnYW5pemF0aW9uVXJsPg0KKyAgICAgICAgICAgIDxlbWFpbD5wYXJydEBhbnRsci5vcmc8L2VtYWlsPg0KKyAgICAgICAgICAgIDxyb2xlcz4NCisgICAgICAgICAgICAgICAgPHJvbGU+UHJvamVjdCBMZWFkZXI8L3JvbGU+DQorICAgICAgICAgICAgICAgIDxyb2xlPkRldmVsb3BlciAtIEphdmEgVGFyZ2V0PC9yb2xlPg0KKyAgICAgICAgICAgIDwvcm9sZXM+DQorICAgICAgICAgICAgPHRpbWV6b25lPlBTVDwvdGltZXpvbmU+DQorICAgICAgICA8L2RldmVsb3Blcj4NCisgICAgICAgIDxkZXZlbG9wZXI+DQorICAgICAgICAgICAgPG5hbWU+U2FtIEhhcndlbGw8L25hbWU+DQorICAgICAgICAgICAgPG9yZ2FuaXphdGlvbj5UdW5uZWwgVmlzaW9uIExhYm9yYXRvcmllcywgTExDPC9vcmdhbml6YXRpb24+DQorICAgICAgICAgICAgPG9yZ2FuaXphdGlvblVybD5odHRwOi8vdHVubmVsdmlzaW9ubGFicy5jb208L29yZ2FuaXphdGlvblVybD4NCisgICAgICAgICAgICA8ZW1haWw+c2FtQHR1bm5lbHZpc2lvbmxhYnMuY29tPC9lbWFpbD4NCisgICAgICAgICAgICA8cm9sZXM+DQorICAgICAgICAgICAgICAgIDxyb2xlPkRldmVsb3Blcjwvcm9sZT4NCisgICAgICAgICAgICA8L3JvbGVzPg0KKyAgICAgICAgICAgIDx0aW1lem9uZT5DU1Q8L3RpbWV6b25lPg0KKyAgICAgICAgPC9kZXZlbG9wZXI+DQorICAgICAgICA8ZGV2ZWxvcGVyPg0KKyAgICAgICAgICAgIDxuYW1lPkppbSBJZGxlPC9uYW1lPg0KKyAgICAgICAgICAgIDxvcmdhbml6YXRpb24+VGVtcG9yYWwgV2F2ZSBMTEM8L29yZ2FuaXphdGlvbj4NCisgICAgICAgICAgICA8b3JnYW5pemF0aW9uVXJsPmh0dHA6Ly93d3cudGVtcG9yYWwtd2F2ZS5jb208L29yZ2FuaXphdGlvblVybD4NCisgICAgICAgICAgICA8ZW1haWw+amltaUB0ZW1wb3JhbC13YXZlLmNvbTwvZW1haWw+DQorICAgICAgICAgICAgPHJvbGVzPg0KKyAgICAgICAgICAgICAgICA8cm9sZT5EZXZlbG9wZXIgLSBNYXZlbiBzdHVmZjwvcm9sZT4NCisgICAgICAgICAgICA8L3JvbGVzPg0KKyAgICAgICAgICAgIDx0aW1lem9uZT5QU1Q8L3RpbWV6b25lPg0KKyAgICAgICAgPC9kZXZlbG9wZXI+DQorICAgIDwvZGV2ZWxvcGVycz4NCisNCisgICAgPGxpY2Vuc2VzPg0KKyAgICAgICAgPGxpY2Vuc2U+DQorICAgICAgICAgICAgPG5hbWU+QlNEIGxpY2VuY2U8L25hbWU+DQorICAgICAgICAgICAgPHVybD5odHRwOi8vYW50bHIub3JnL2xpY2Vuc2UuaHRtbDwvdXJsPg0KKyAgICAgICAgICAgIDxkaXN0cmlidXRpb24+cmVwbzwvZGlzdHJpYnV0aW9uPg0KKyAgICAgICAgPC9saWNlbnNlPg0KKyAgICA8L2xpY2Vuc2VzPg0KKw0KKyAgICA8aXNzdWVNYW5hZ2VtZW50Pg0KKyAgICAgICAgPHN5c3RlbT5HaXRIdWIgSXNzdWVzPC9zeXN0ZW0+DQorICAgICAgICA8dXJsPmh0dHBzOi8vZ2l0aHViLmNvbS9hbnRsci9zdHJpbmd0ZW1wbGF0ZTQvaXNzdWVzPC91cmw+DQorICAgIDwvaXNzdWVNYW5hZ2VtZW50Pg0KKw0KKyAgICA8c2NtPg0KKyAgICAgICAgPHVybD5naXQ6Ly9naXRodWIuY29tL2FudGxyL3N0cmluZ3RlbXBsYXRlNC5naXQ8L3VybD4NCisgICAgICAgIDxjb25uZWN0aW9uPnNjbTpnaXQ6Z2l0Oi8vZ2l0aHViLmNvbS9hbnRsci9zdHJpbmd0ZW1wbGF0ZTQuZ2l0PC9jb25uZWN0aW9uPg0KKyAgICAgICAgPGRldmVsb3BlckNvbm5lY3Rpb24+c2NtOmdpdDpnaXRAZ2l0aHViLmNvbTphbnRsci9zdHJpbmd0ZW1wbGF0ZTQuZ2l0PC9kZXZlbG9wZXJDb25uZWN0aW9uPg0KKyAgICAgIDx0YWc+NC4wLjg8L3RhZz4NCisgIDwvc2NtPg0KKw0KKyAgICA8ZGVwZW5kZW5jaWVzPg0KKyAgICAgICAgPGRlcGVuZGVuY3k+DQorICAgICAgICAgICAgPGdyb3VwSWQ+anVuaXQ8L2dyb3VwSWQ+DQorICAgICAgICAgICAgPGFydGlmYWN0SWQ+anVuaXQ8L2FydGlmYWN0SWQ+DQorICAgICAgICAgICAgPHZlcnNpb24+NC4xMDwvdmVyc2lvbj4NCisgICAgICAgICAgICA8c2NvcGU+dGVzdDwvc2NvcGU+DQorICAgICAgICA8L2RlcGVuZGVuY3k+DQorDQorICAgICAgICA8ZGVwZW5kZW5jeT4NCisgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuYW50bHI8L2dyb3VwSWQ+DQorICAgICAgICAgICAgPGFydGlmYWN0SWQ+YW50bHItcnVudGltZTwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgICA8dmVyc2lvbj4zLjUuMjwvdmVyc2lvbj4NCisgICAgICAgICAgICA8c2NvcGU+Y29tcGlsZTwvc2NvcGU+DQorICAgICAgICA8L2RlcGVuZGVuY3k+DQorICAgICAgICAgICAgDQorICAgIDwvZGVwZW5kZW5jaWVzPg0KKw0KKyAgICA8cHJvZmlsZXM+DQorICAgICAgICA8cHJvZmlsZT4NCisgICAgICAgICAgICA8aWQ+c29uYXR5cGUtb3NzLXJlbGVhc2U8L2lkPg0KKyAgICAgICAgICAgIDxidWlsZD4NCisgICAgICAgICAgICAgICAgPHBsdWdpbnM+DQorICAgICAgICAgICAgICAgICAgICA8cGx1Z2luPg0KKyAgICAgICAgICAgICAgICAgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4NCisgICAgICAgICAgICAgICAgICAgICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1jb21waWxlci1wbHVnaW48L2FydGlmYWN0SWQ+DQorICAgICAgICAgICAgICAgICAgICAgICAgPGV4ZWN1dGlvbnM+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxleGVjdXRpb24+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aWQ+ZGVmYXVsdC1jb21waWxlPC9pZD4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjb25maWd1cmF0aW9uPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjb21waWxlckFyZ3VtZW50cz4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJvb3RjbGFzc3BhdGg+JHtib290Y2xhc3NwYXRoLmNvbXBpbGV9PC9ib290Y2xhc3NwYXRoPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29tcGlsZXJBcmd1bWVudHM+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NvbmZpZ3VyYXRpb24+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZXhlY3V0aW9uPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZXhlY3V0aW9uPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlkPmRlZmF1bHQtdGVzdENvbXBpbGU8L2lkPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvbmZpZ3VyYXRpb24+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvbXBpbGVyQXJndW1lbnRzPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Ym9vdGNsYXNzcGF0aD4ke2Jvb3RjbGFzc3BhdGgudGVzdENvbXBpbGV9PC9ib290Y2xhc3NwYXRoPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29tcGlsZXJBcmd1bWVudHM+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NvbmZpZ3VyYXRpb24+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZXhlY3V0aW9uPg0KKyAgICAgICAgICAgICAgICAgICAgICAgIDwvZXhlY3V0aW9ucz4NCisgICAgICAgICAgICAgICAgICAgIDwvcGx1Z2luPg0KKw0KKyAgICAgICAgICAgICAgICAgICAgPHBsdWdpbj4NCisgICAgICAgICAgICAgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+DQorICAgICAgICAgICAgICAgICAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tc2hhZGUtcGx1Z2luPC9hcnRpZmFjdElkPg0KKyAgICAgICAgICAgICAgICAgICAgICAgIDx2ZXJzaW9uPjIuMjwvdmVyc2lvbj4NCisgICAgICAgICAgICAgICAgICAgICAgICA8ZXhlY3V0aW9ucz4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGV4ZWN1dGlvbj4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwaGFzZT5wYWNrYWdlPC9waGFzZT4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnb2Fscz4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Z29hbD5zaGFkZTwvZ29hbD4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZ29hbHM+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29uZmlndXJhdGlvbj4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWluaW1pemVKYXI+dHJ1ZTwvbWluaW1pemVKYXI+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNyZWF0ZURlcGVuZGVuY3lSZWR1Y2VkUG9tPmZhbHNlPC9jcmVhdGVEZXBlbmRlbmN5UmVkdWNlZFBvbT4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2hhZGVkQXJ0aWZhY3RBdHRhY2hlZD50cnVlPC9zaGFkZWRBcnRpZmFjdEF0dGFjaGVkPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjcmVhdGVTb3VyY2VzSmFyPnRydWU8L2NyZWF0ZVNvdXJjZXNKYXI+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNoYWRlU291cmNlc0NvbnRlbnQ+dHJ1ZTwvc2hhZGVTb3VyY2VzQ29udGVudD4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2hhZGVkQ2xhc3NpZmllck5hbWU+Y29tcGxldGU8L3NoYWRlZENsYXNzaWZpZXJOYW1lPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWxvY2F0aW9ucz4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlbG9jYXRpb24+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0dGVybj5vcmcuYW50bHI8L3BhdHRlcm4+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2hhZGVkUGF0dGVybj5zdDRoaWRkZW4ub3JnLmFudGxyPC9zaGFkZWRQYXR0ZXJuPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3JlbG9jYXRpb24+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9yZWxvY2F0aW9ucz4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29uZmlndXJhdGlvbj4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9leGVjdXRpb24+DQorICAgICAgICAgICAgICAgICAgICAgICAgPC9leGVjdXRpb25zPg0KKyAgICAgICAgICAgICAgICAgICAgPC9wbHVnaW4+DQorICAgICAgICAgICAgICAgIDwvcGx1Z2lucz4NCisgICAgICAgICAgICA8L2J1aWxkPg0KKyAgICAgICAgPC9wcm9maWxlPg0KKyAgICA8L3Byb2ZpbGVzPg0KKw0KKyAgICA8YnVpbGQ+DQorICAgICAgICA8ZGVmYXVsdEdvYWw+aW5zdGFsbDwvZGVmYXVsdEdvYWw+DQorDQorICAgICAgICA8IS0tDQorICAgICAgICAgICAgVGhlIHJvb3Qgb2YgdGhlIHNvdXJjZSBjb2RlIGZvciBTdHJpbmdUZW1wbGF0ZQ0KKyAgICAgICAgLS0+DQorICAgICAgICA8c291cmNlRGlyZWN0b3J5PnNyYzwvc291cmNlRGlyZWN0b3J5Pg0KKw0KKyAgICAgICAgPCEtLQ0KKyAgICAgICAgICAgIFRoZSByb290IG9mIHRoZSB0ZXN0IHNvdXJjZSBjb2RlIGZvciBTdHJpbmdUZW1wbGF0ZS4NCisgICAgICAgIC0tPg0KKyAgICAgICAgPHRlc3RTb3VyY2VEaXJlY3Rvcnk+dGVzdDwvdGVzdFNvdXJjZURpcmVjdG9yeT4NCisNCisgICAgICAgIDwhLS0NCisgICAgICAgICAgICBBbGwgdGhlIHJlc291cmNlcyB0aGF0IHNob3VsZCBiZSBvbiB0aGUgY2xhc3NwYXRoLCB3aGVuIA0KKyAgICAgICAgICAgIHRoZSBqdW5pdCB0ZXN0cyBhcmUgcnVuLiBIZXJlIHdlIG5lZWQgdG8gaW5jbHVkZSB0aGUgdGVzdA0KKyAgICAgICAgICAgIHNvdXJjZSBjb2RlIGRpcmVjdG9yeSBhcyB0aGUgLnN0IGZpbGVzIGxvYWRlZCBkeW5hbWljYWxseQ0KKyAgICAgICAgICAgIGJ5IHRoZSB0ZXN0cywgYXJlIGxvY2F0ZWQgdW5kZXJuZWF0aCB0aGlzIHRyZWUuDQorICAgICAgICAtLT4NCisgICAgICAgIDx0ZXN0UmVzb3VyY2VzPg0KKyAgICAgICAgICAgIDx0ZXN0UmVzb3VyY2U+DQorICAgICAgICAgICAgICAgIDxkaXJlY3Rvcnk+dGVzdDwvZGlyZWN0b3J5Pg0KKyAgICAgICAgICAgIDwvdGVzdFJlc291cmNlPg0KKyAgICAgICAgPC90ZXN0UmVzb3VyY2VzPg0KKw0KKyAgICAgICAgPHBsdWdpbnM+DQorICAgICAgICAgICAgPHBsdWdpbj4NCisgICAgICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPg0KKyAgICAgICAgICAgICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1qYXItcGx1Z2luPC9hcnRpZmFjdElkPg0KKyAgICAgICAgICAgICAgICA8dmVyc2lvbj4yLjQ8L3ZlcnNpb24+DQorICAgICAgICAgICAgICAgIDxjb25maWd1cmF0aW9uPg0KKyAgICAgICAgICAgICAgICAgICAgPGFyY2hpdmU+DQorICAgICAgICAgICAgICAgICAgICAgICAgPG1hbmlmZXN0Pg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWRkRGVmYXVsdEltcGxlbWVudGF0aW9uRW50cmllcz50cnVlPC9hZGREZWZhdWx0SW1wbGVtZW50YXRpb25FbnRyaWVzPg0KKyAgICAgICAgICAgICAgICAgICAgICAgIDwvbWFuaWZlc3Q+DQorICAgICAgICAgICAgICAgICAgICA8L2FyY2hpdmU+DQorICAgICAgICAgICAgICAgIDwvY29uZmlndXJhdGlvbj4NCisgICAgICAgICAgICA8L3BsdWdpbj4NCisNCisgICAgICAgICAgIDxwbHVnaW4+DQorICAgICAgICAgICAgICAgIDxncm91cElkPm9yZy5hbnRscjwvZ3JvdXBJZD4NCisgICAgICAgICAgICAgICAgPGFydGlmYWN0SWQ+YW50bHIzLW1hdmVuLXBsdWdpbjwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgICAgICAgPHZlcnNpb24+My41LjI8L3ZlcnNpb24+DQorICAgICAgICAgICAgICAgIDxjb25maWd1cmF0aW9uPg0KKyAgICAgICAgICAgICAgICAgICAgPGxpYkRpcmVjdG9yeT5zcmMvb3JnL3N0cmluZ3RlbXBsYXRlL3Y0L2NvbXBpbGVyPC9saWJEaXJlY3Rvcnk+DQorICAgICAgICAgICAgICAgICAgICA8c291cmNlRGlyZWN0b3J5PnNyYzwvc291cmNlRGlyZWN0b3J5Pg0KKyAgICAgICAgICAgICAgICAgICAgPHZlcmJvc2U+dHJ1ZTwvdmVyYm9zZT4NCisgICAgICAgICAgICAgICAgPC9jb25maWd1cmF0aW9uPg0KKyAgICAgICAgICAgICAgICA8ZXhlY3V0aW9ucz4NCisgICAgICAgICAgICAgICAgICAgIDxleGVjdXRpb24+DQorICAgICAgICAgICAgICAgICAgICAgICAgPGdvYWxzPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Z29hbD5hbnRscjwvZ29hbD4NCisgICAgICAgICAgICAgICAgICAgICAgICA8L2dvYWxzPg0KKyAgICAgICAgICAgICAgICAgICAgPC9leGVjdXRpb24+DQorICAgICAgICAgICAgICAgIDwvZXhlY3V0aW9ucz4NCisgICAgICAgICAgICA8L3BsdWdpbj4NCisNCisgICAgICAgICAgICA8cGx1Z2luPg0KKyAgICAgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+DQorICAgICAgICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLWNvbXBpbGVyLXBsdWdpbjwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgICAgICAgPHZlcnNpb24+My4xPC92ZXJzaW9uPg0KKyAgICAgICAgICAgICAgICA8Y29uZmlndXJhdGlvbj4NCisgICAgICAgICAgICAgICAgICAgIDxzb3VyY2VEaXJlY3Rvcnk+c3JjPC9zb3VyY2VEaXJlY3Rvcnk+DQorICAgICAgICAgICAgICAgICAgICA8c2hvd1dhcm5pbmdzPnRydWU8L3Nob3dXYXJuaW5ncz4NCisgICAgICAgICAgICAgICAgICAgIDxzaG93RGVwcmVjYXRpb24+dHJ1ZTwvc2hvd0RlcHJlY2F0aW9uPg0KKyAgICAgICAgICAgICAgICAgICAgPGNvbXBpbGVyQXJncz4NCisgICAgICAgICAgICAgICAgICAgICAgICA8YXJnPi1YbGludDwvYXJnPg0KKyAgICAgICAgICAgICAgICAgICAgICAgIDxhcmc+LVhsaW50Oi1zZXJpYWw8L2FyZz4NCisgICAgICAgICAgICAgICAgICAgIDwvY29tcGlsZXJBcmdzPg0KKyAgICAgICAgICAgICAgICA8L2NvbmZpZ3VyYXRpb24+DQorDQorICAgICAgICAgICAgICAgIDxleGVjdXRpb25zPg0KKyAgICAgICAgICAgICAgICAgICAgPGV4ZWN1dGlvbj4NCisgICAgICAgICAgICAgICAgICAgICAgICA8aWQ+ZGVmYXVsdC1jb21waWxlPC9pZD4NCisgICAgICAgICAgICAgICAgICAgICAgICA8Y29uZmlndXJhdGlvbj4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZT4xLjU8L3NvdXJjZT4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRhcmdldD4xLjU8L3RhcmdldD4NCisgICAgICAgICAgICAgICAgICAgICAgICA8L2NvbmZpZ3VyYXRpb24+DQorICAgICAgICAgICAgICAgICAgICA8L2V4ZWN1dGlvbj4NCisgICAgICAgICAgICAgICAgICAgIDxleGVjdXRpb24+DQorICAgICAgICAgICAgICAgICAgICAgICAgPGlkPmRlZmF1bHQtdGVzdENvbXBpbGU8L2lkPg0KKyAgICAgICAgICAgICAgICAgICAgICAgIDxjb25maWd1cmF0aW9uPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c291cmNlPjEuNjwvc291cmNlPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGFyZ2V0PjEuNjwvdGFyZ2V0Pg0KKyAgICAgICAgICAgICAgICAgICAgICAgIDwvY29uZmlndXJhdGlvbj4NCisgICAgICAgICAgICAgICAgICAgIDwvZXhlY3V0aW9uPg0KKyAgICAgICAgICAgICAgICA8L2V4ZWN1dGlvbnM+DQorICAgICAgICAgICAgPC9wbHVnaW4+DQorDQorICAgICAgICAgICAgPHBsdWdpbj4NCisgICAgICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPg0KKyAgICAgICAgICAgICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1yZWxlYXNlLXBsdWdpbjwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgICAgICAgPCEtLSBvdmVycmlkZSB0aGUgdmVyc2lvbiBpbmhlcml0ZWQgZnJvbSB0aGUgcGFyZW50IC0tPg0KKyAgICAgICAgICAgICAgICA8dmVyc2lvbj4yLjU8L3ZlcnNpb24+DQorICAgICAgICAgICAgICAgIDxjb25maWd1cmF0aW9uPg0KKyAgICAgICAgICAgICAgICAgICAgPGFyZ3VtZW50cz4tUHNvbmF0eXBlLW9zcy1yZWxlYXNlICR7cmVsZWFzZS5hcmd1bWVudHN9PC9hcmd1bWVudHM+DQorICAgICAgICAgICAgICAgIDwvY29uZmlndXJhdGlvbj4NCisgICAgICAgICAgICA8L3BsdWdpbj4NCisNCisgICAgICAgICAgICA8cGx1Z2luPg0KKyAgICAgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+DQorICAgICAgICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLXN1cmVmaXJlLXBsdWdpbjwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgICAgICAgPHZlcnNpb24+Mi4xNzwvdmVyc2lvbj4NCisgICAgICAgICAgICAgICAgPGNvbmZpZ3VyYXRpb24+DQorICAgICAgICAgICAgICAgICAgICA8YWRkaXRpb25hbENsYXNzcGF0aEVsZW1lbnRzPg0KKyAgICAgICAgICAgICAgICAgICAgICAgIDxhZGRpdGlvbmFsQ2xhc3NwYXRoRWxlbWVudD4ke2Jhc2VkaXJ9L3NyYzwvYWRkaXRpb25hbENsYXNzcGF0aEVsZW1lbnQ+DQorICAgICAgICAgICAgICAgICAgICA8L2FkZGl0aW9uYWxDbGFzc3BhdGhFbGVtZW50cz4NCisgICAgICAgICAgICAgICAgPC9jb25maWd1cmF0aW9uPg0KKyAgICAgICAgICAgIDwvcGx1Z2luPg0KKw0KKyAgICAgICAgICAgIDxwbHVnaW4+DQorICAgICAgICAgICAgICAgIDxncm91cElkPm9yZy5jb2RlaGF1cy5tb2pvPC9ncm91cElkPg0KKyAgICAgICAgICAgICAgICA8YXJ0aWZhY3RJZD5maW5kYnVncy1tYXZlbi1wbHVnaW48L2FydGlmYWN0SWQ+DQorICAgICAgICAgICAgICAgIDx2ZXJzaW9uPjIuNS4zPC92ZXJzaW9uPg0KKyAgICAgICAgICAgICAgICA8Y29uZmlndXJhdGlvbj4NCisgICAgICAgICAgICAgICAgICAgIDxmaW5kYnVnc1htbE91dHB1dD50cnVlPC9maW5kYnVnc1htbE91dHB1dD4NCisgICAgICAgICAgICAgICAgICAgIDxmaW5kYnVnc1htbFdpdGhNZXNzYWdlcz50cnVlPC9maW5kYnVnc1htbFdpdGhNZXNzYWdlcz4NCisgICAgICAgICAgICAgICAgICAgIDx4bWxPdXRwdXQ+dHJ1ZTwveG1sT3V0cHV0Pg0KKyAgICAgICAgICAgICAgICA8L2NvbmZpZ3VyYXRpb24+DQorICAgICAgICAgICAgPC9wbHVnaW4+DQorDQorICAgICAgICAgICAgPHBsdWdpbj4NCisgICAgICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPg0KKyAgICAgICAgICAgICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1zb3VyY2UtcGx1Z2luPC9hcnRpZmFjdElkPg0KKyAgICAgICAgICAgICAgICA8IS0tIG92ZXJyaWRlIHRoZSB2ZXJzaW9uIGluaGVyaXRlZCBmcm9tIHRoZSBwYXJlbnQgLS0+DQorICAgICAgICAgICAgICAgIDx2ZXJzaW9uPjIuMi4xPC92ZXJzaW9uPg0KKyAgICAgICAgICAgIDwvcGx1Z2luPg0KKw0KKyAgICAgICAgICAgIDxwbHVnaW4+DQorICAgICAgICAgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4NCisgICAgICAgICAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tamF2YWRvYy1wbHVnaW48L2FydGlmYWN0SWQ+DQorICAgICAgICAgICAgICAgIDwhLS0gb3ZlcnJpZGUgdGhlIHZlcnNpb24gaW5oZXJpdGVkIGZyb20gdGhlIHBhcmVudCAtLT4NCisgICAgICAgICAgICAgICAgPHZlcnNpb24+Mi45LjE8L3ZlcnNpb24+DQorICAgICAgICAgICAgICAgIDxjb25maWd1cmF0aW9uPg0KKyAgICAgICAgICAgICAgICAgICAgPHF1aWV0PnRydWU8L3F1aWV0Pg0KKyAgICAgICAgICAgICAgICA8L2NvbmZpZ3VyYXRpb24+DQorICAgICAgICAgICAgPC9wbHVnaW4+DQorDQorICAgICAgICAgICAgPHBsdWdpbj4NCisgICAgICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPg0KKyAgICAgICAgICAgICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1ncGctcGx1Z2luPC9hcnRpZmFjdElkPg0KKyAgICAgICAgICAgICAgICA8IS0tIG92ZXJyaWRlIHRoZSB2ZXJzaW9uIGluaGVyaXRlZCBmcm9tIHRoZSBwYXJlbnQgLS0+DQorICAgICAgICAgICAgICAgIDx2ZXJzaW9uPjEuNTwvdmVyc2lvbj4NCisgICAgICAgICAgICA8L3BsdWdpbj4NCisNCisgICAgICAgIDwvcGx1Z2lucz4NCisgICAgPC9idWlsZD4NCis8L3Byb2plY3Q+DQorDQpkaWZmIC0tZ2l0IGEvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2FudGxyL1NUNC80LjAuOC9TVDQtNC4wLjgucG9tLnNoYTEgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvYW50bHIvU1Q0LzQuMC44L1NUNC00LjAuOC5wb20uc2hhMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ODc1OTFkCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2FudGxyL1NUNC80LjAuOC9TVDQtNC4wLjgucG9tLnNoYTEKQEAgLTAsMCArMSBAQAorMTE2NjYzZDMzMzg5NTI1ZTkzMmE0ZmY3YWRhZjY2ZWIwNmNhZjI3NwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9hbnRsci9hbnRsci1tYXN0ZXIvMy41LjIvX3JlbW90ZS5yZXBvc2l0b3JpZXMgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvYW50bHIvYW50bHItbWFzdGVyLzMuNS4yL19yZW1vdGUucmVwb3NpdG9yaWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3OTY2OTUKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvYW50bHIvYW50bHItbWFzdGVyLzMuNS4yL19yZW1vdGUucmVwb3NpdG9yaWVzCkBAIC0wLDAgKzEsMyBAQAorI05PVEU6IFRoaXMgaXMgYW4gQWV0aGVyIGludGVybmFsIGltcGxlbWVudGF0aW9uIGZpbGUsIGl0cyBmb3JtYXQgY2FuIGJlIGNoYW5nZWQgd2l0aG91dCBwcmlvciBub3RpY2UuCisjV2VkIEp1bCAyMiAxNDoyMjozNyBQRFQgMjAxNQorYW50bHItbWFzdGVyLTMuNS4yLnBvbT5jZW50cmFsPQpkaWZmIC0tZ2l0IGEvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2FudGxyL2FudGxyLW1hc3Rlci8zLjUuMi9hbnRsci1tYXN0ZXItMy41LjIucG9tIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2FudGxyL2FudGxyLW1hc3Rlci8zLjUuMi9hbnRsci1tYXN0ZXItMy41LjIucG9tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNiMTAwZmUKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvYW50bHIvYW50bHItbWFzdGVyLzMuNS4yL2FudGxyLW1hc3Rlci0zLjUuMi5wb20KQEAgLTAsMCArMSwzMjQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQorPHByb2plY3QgeG1sbnM9Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAgaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvbWF2ZW4tdjRfMF8wLnhzZCI+DQorDQorICAgIDxwYXJlbnQ+DQorICAgICAgICA8Z3JvdXBJZD5vcmcuc29uYXR5cGUub3NzPC9ncm91cElkPg0KKyAgICAgICAgPGFydGlmYWN0SWQ+b3NzLXBhcmVudDwvYXJ0aWZhY3RJZD4NCisgICAgICAgIDx2ZXJzaW9uPjk8L3ZlcnNpb24+DQorICAgIDwvcGFyZW50Pg0KKw0KKyAgICA8bW9kZWxWZXJzaW9uPjQuMC4wPC9tb2RlbFZlcnNpb24+DQorICAgIDxncm91cElkPm9yZy5hbnRscjwvZ3JvdXBJZD4NCisgICAgPGFydGlmYWN0SWQ+YW50bHItbWFzdGVyPC9hcnRpZmFjdElkPg0KKyAgICA8cGFja2FnaW5nPnBvbTwvcGFja2FnaW5nPg0KKyAgICA8dmVyc2lvbj4zLjUuMjwvdmVyc2lvbj4NCisgICAgPG5hbWU+QU5UTFIgMyBNYXN0ZXIgYnVpbGQgY29udHJvbCBQT008L25hbWU+DQorICAgIDxkZXNjcmlwdGlvbj5NYXN0ZXIgYnVpbGQgUE9NIGZvciBBTlRMUiAzPC9kZXNjcmlwdGlvbj4NCisgICAgPHVybD5odHRwOi8vYW50bHIub3JnPC91cmw+DQorICAgIDxpbmNlcHRpb25ZZWFyPjE5OTI8L2luY2VwdGlvblllYXI+DQorICAgIDxvcmdhbml6YXRpb24+DQorICAgICAgICA8bmFtZT5BTlRMUjwvbmFtZT4NCisgICAgICAgIDx1cmw+aHR0cDovL3d3dy5hbnRsci5vcmc8L3VybD4NCisgICAgPC9vcmdhbml6YXRpb24+DQorDQorICA8IS0tDQorICAgIFdoYXQgdmVyc2lvbiBvZiBBTlRMUiBhcmUgd2UgYnVpbGRpbmc/IFRoaXMgc2V0cyB0aGUNCisgICAgdGhlIHZlcnNpb24gbnVtYmVyIGZvciBhbGwgb3RoZXIgdGhpbmdzIHRoYXQgYXJlIGJ1aWx0DQorICAgIGFzIHBhcnQgb2YgYW4gQU5UTFIgcmVsZWFzZSwgdW5sZXNzIHRoZXkgb3ZlcnJpZGUgb3INCisgICAgaWdub3JlIGl0LiBXZSBkbyB0aGlzIHZpYSBhIHByb3Blcml0ZXMgZmlsZSBmb3IgdGhpcw0KKyAgICBwb20uDQorICAgIC0tPg0KKw0KKyAgPCEtLQ0KKyAgICAgVGhpcyBpcyB0aGUgbWFzdGVyIHBvbSBmb3IgYnVpbGRpbmcgdGhlIEFOVExSDQorICAgICB0b29sc2V0IGFuZCBydW50aW1lIChKYXZhKSBhdCB0aGUgc3BlY2lmaWMgbGV2ZWwNCisgICAgIGRlZmluZWQgYWJvdmUuIEhlbmNlIHdlIHNwZWNpZnkgaGVyZSB0aGUgbW9kdWxlcyB0aGF0DQorICAgICB0aGlzIHBvbSB3aWxsIGJ1aWxkIHdoZW4gd2UgYnVpbGQgdGhpcyBwb20NCisgICAgLS0+DQorDQorICAgIDxtb2R1bGVzPg0KKyAgICAgICAgPG1vZHVsZT5ydW50aW1lL0phdmE8L21vZHVsZT4NCisgICAgICAgIDxtb2R1bGU+dG9vbDwvbW9kdWxlPg0KKyAgICAgICAgPG1vZHVsZT5hbnRscjMtbWF2ZW4tcGx1Z2luPC9tb2R1bGU+DQorICAgICAgICA8bW9kdWxlPmd1bml0PC9tb2R1bGU+DQorICAgICAgICA8bW9kdWxlPmd1bml0LW1hdmVuLXBsdWdpbjwvbW9kdWxlPg0KKyAgICAgICAgPG1vZHVsZT5hbnRscjMtbWF2ZW4tYXJjaGV0eXBlPC9tb2R1bGU+DQorICAgICAgICA8bW9kdWxlPmFudGxyLWNvbXBsZXRlPC9tb2R1bGU+DQorICAgIDwvbW9kdWxlcz4NCisNCisgIDwhLS0NCisgICAgTWFrZSBzdXJlIHRoYXQgdGhlIGJ1aWxkIGlzIG5vdCBwbGF0Zm9ybSBkZXBlbmRlbnQgKEkuRSBzaG93IHRoYXQNCisgICAgYWxsIHRoZSBmaWxlcyBpbiB0aGUgc291cmNlIHRyZWUgYXJlIGluIFVURi04IGZvcm1hdC4NCisgICAgLS0+DQorICAgIDxwcm9wZXJ0aWVzPg0KKyAgICAgICAgPHByb2plY3QuYnVpbGQuc291cmNlRW5jb2Rpbmc+VVRGLTg8L3Byb2plY3QuYnVpbGQuc291cmNlRW5jb2Rpbmc+DQorICAgICAgICA8amF2YTUuaG9tZT4ke2Vudi5KQVZBNV9IT01FfTwvamF2YTUuaG9tZT4NCisgICAgICAgIDxqYXZhNi5ob21lPiR7ZW52LkpBVkE2X0hPTUV9PC9qYXZhNi5ob21lPg0KKyAgICAgICAgPGJvb3RjbGFzc3BhdGguamF2YTU+JHtqYXZhNS5ob21lfS9saWIvcnQuamFyPC9ib290Y2xhc3NwYXRoLmphdmE1Pg0KKyAgICAgICAgPGJvb3RjbGFzc3BhdGguamF2YTY+JHtqYXZhNi5ob21lfS9saWIvcnQuamFyPC9ib290Y2xhc3NwYXRoLmphdmE2Pg0KKyAgICAgICAgPGJvb3RjbGFzc3BhdGguY29tcGlsZT4ke2Jvb3RjbGFzc3BhdGguamF2YTV9PC9ib290Y2xhc3NwYXRoLmNvbXBpbGU+DQorICAgICAgICA8Ym9vdGNsYXNzcGF0aC50ZXN0Q29tcGlsZT4ke2Jvb3RjbGFzc3BhdGguamF2YTZ9PC9ib290Y2xhc3NwYXRoLnRlc3RDb21waWxlPg0KKyAgICA8L3Byb3BlcnRpZXM+DQorDQorICAgIDxsaWNlbnNlcz4NCisgICAgICAgIDxsaWNlbnNlPg0KKyAgICAgICAgICAgIDxuYW1lPkJTRCBsaWNlbmNlPC9uYW1lPg0KKyAgICAgICAgICAgIDx1cmw+aHR0cDovL2FudGxyLm9yZy9saWNlbnNlLmh0bWw8L3VybD4NCisgICAgICAgICAgICA8ZGlzdHJpYnV0aW9uPnJlcG88L2Rpc3RyaWJ1dGlvbj4NCisgICAgICAgIDwvbGljZW5zZT4NCisgICAgPC9saWNlbnNlcz4NCisNCisgICAgPGlzc3VlTWFuYWdlbWVudD4NCisgICAgICAgIDxzeXN0ZW0+R2l0SHViIElzc3Vlczwvc3lzdGVtPg0KKyAgICAgICAgPHVybD5odHRwczovL2dpdGh1Yi5jb20vYW50bHIvYW50bHIzL2lzc3VlczwvdXJsPg0KKyAgICA8L2lzc3VlTWFuYWdlbWVudD4NCisNCisgICAgPG1haWxpbmdMaXN0cz4NCisgICAgICAgIDxtYWlsaW5nTGlzdD4NCisgICAgICAgICAgICA8bmFtZT5hbnRsci1kaXNjdXNzaW9uPC9uYW1lPg0KKyAgICAgICAgICAgIDxhcmNoaXZlPmh0dHBzOi8vZ3JvdXBzLmdvb2dsZS5jb20vZm9ydW0vP2Zyb21ncm91cHMjIWZvcnVtL2FudGxyLWRpc2N1c3Npb248L2FyY2hpdmU+DQorICAgICAgICA8L21haWxpbmdMaXN0Pg0KKyAgICA8L21haWxpbmdMaXN0cz4NCisNCisgICAgPHNjbT4NCisgICAgICAgIDx1cmw+aHR0cHM6Ly9naXRodWIuY29tL2FudGxyL2FudGxyMy90cmVlL21hc3RlcjwvdXJsPg0KKyAgICAgICAgPGNvbm5lY3Rpb24+c2NtOmdpdDpnaXQ6Ly9naXRodWIuY29tL2FudGxyL2FudGxyMy5naXQ8L2Nvbm5lY3Rpb24+DQorICAgICAgICA8ZGV2ZWxvcGVyQ29ubmVjdGlvbj5zY206Z2l0OmdpdEBnaXRodWIuY29tOmFudGxyL2FudGxyMy5naXQ8L2RldmVsb3BlckNvbm5lY3Rpb24+DQorICAgICAgPHRhZz4zLjUuMjwvdGFnPg0KKyAgPC9zY20+DQorICA8IS0tDQorDQorICAgIFRlbGwgTWF2ZW4gd2hpY2ggb3RoZXIgYXJ0aWZhY3RzIHdlIG5lZWQgaW4gb3JkZXIgdG8NCisgICAgYnVpbGQsIHJ1biBhbmQgdGVzdCB0aGUgQU5UTFIgamFycy4NCisgICAgVGhpcyBpcyB0aGUgbWFzdGVyIHBvbSwgYW5kIHNvIGl0IG9ubHkgY29udGFpbnMgdGhvc2UNCisgICAgZGVwZW5kZW5jaWVzIHRoYXQgYXJlIGNvbW1vbiB0byBhbGwgdGhlIG1vZHVsZXMgYmVsb3cNCisgICAgb3IgYXJlIGp1c3QgaW5jbHVkZWQgZm9yIHRlc3QNCisgICAgLS0+DQorICAgIDxkZXBlbmRlbmN5TWFuYWdlbWVudD4NCisNCisgICAgICAgIDxkZXBlbmRlbmNpZXM+DQorDQorICAgICAgICAgICAgPGRlcGVuZGVuY3k+DQorICAgICAgICAgICAgICAgIDxncm91cElkPmp1bml0PC9ncm91cElkPg0KKyAgICAgICAgICAgICAgICA8YXJ0aWZhY3RJZD5qdW5pdDwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgICAgICAgPHZlcnNpb24+NC4xMDwvdmVyc2lvbj4NCisgICAgICAgICAgICAgICAgPHNjb3BlPnRlc3Q8L3Njb3BlPg0KKyAgICAgICAgICAgIDwvZGVwZW5kZW5jeT4NCisNCisgICAgICAgICAgICA8ZGVwZW5kZW5jeT4NCisgICAgICAgICAgICAgICAgPGdyb3VwSWQ+YW50bHI8L2dyb3VwSWQ+DQorICAgICAgICAgICAgICAgIDxhcnRpZmFjdElkPmFudGxyPC9hcnRpZmFjdElkPg0KKyAgICAgICAgICAgICAgICA8dmVyc2lvbj4yLjcuNzwvdmVyc2lvbj4NCisgICAgICAgICAgICAgICAgPHNjb3BlPmNvbXBpbGU8L3Njb3BlPg0KKyAgICAgICAgICAgIDwvZGVwZW5kZW5jeT4NCisNCisgICAgICAgICAgICA8ZGVwZW5kZW5jeT4NCisgICAgICAgICAgICAgIDxncm91cElkPm9yZy5hbnRscjwvZ3JvdXBJZD4NCisgICAgICAgICAgICAgIDxhcnRpZmFjdElkPnN0cmluZ3RlbXBsYXRlPC9hcnRpZmFjdElkPg0KKyAgICAgICAgICAgICAgPHZlcnNpb24+My4yLjE8L3ZlcnNpb24+DQorICAgICAgICAgICAgICA8c2NvcGU+Y29tcGlsZTwvc2NvcGU+DQorICAgICAgICAgICAgPC9kZXBlbmRlbmN5Pg0KKw0KKyAgICAgICAgICAgIDxkZXBlbmRlbmN5Pg0KKyAgICAgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuYW50bHI8L2dyb3VwSWQ+DQorICAgICAgICAgICAgICAgIDxhcnRpZmFjdElkPlNUNDwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgICAgICAgPHZlcnNpb24+NC4wLjg8L3ZlcnNpb24+DQorICAgICAgICAgICAgICAgIDxzY29wZT5jb21waWxlPC9zY29wZT4NCisgICAgICAgICAgICA8L2RlcGVuZGVuY3k+DQorDQorICAgICAgICA8L2RlcGVuZGVuY2llcz4NCisNCisgICAgPC9kZXBlbmRlbmN5TWFuYWdlbWVudD4NCisNCisgICAgPHByb2ZpbGVzPg0KKyAgICAgICAgPHByb2ZpbGU+DQorICAgICAgICAgICAgPGlkPnNvbmF0eXBlLW9zcy1yZWxlYXNlPC9pZD4NCisgICAgICAgICAgICA8bW9kdWxlcz4NCisgICAgICAgICAgICAgICAgPG1vZHVsZT5hbnRsci1jb21wbGV0ZTwvbW9kdWxlPg0KKyAgICAgICAgICAgIDwvbW9kdWxlcz4NCisgICAgICAgICAgICA8YnVpbGQ+DQorICAgICAgICAgICAgICAgIDxwbHVnaW5zPg0KKyAgICAgICAgICAgICAgICAgICAgPHBsdWdpbj4NCisgICAgICAgICAgICAgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+DQorICAgICAgICAgICAgICAgICAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tY29tcGlsZXItcGx1Z2luPC9hcnRpZmFjdElkPg0KKyAgICAgICAgICAgICAgICAgICAgICAgIDxleGVjdXRpb25zPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZXhlY3V0aW9uPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlkPmRlZmF1bHQtY29tcGlsZTwvaWQ+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29uZmlndXJhdGlvbj4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c291cmNlPjEuNTwvc291cmNlPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0YXJnZXQ+MS41PC90YXJnZXQ+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvbXBpbGVyQXJncz4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFyZz4tWGxpbnQ8L2FyZz4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFyZz4tWGxpbnQ6LXNlcmlhbDwvYXJnPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXJnPi1ib290Y2xhc3NwYXRoPC9hcmc+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhcmc+JHtib290Y2xhc3NwYXRoLmNvbXBpbGV9PC9hcmc+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jb21waWxlckFyZ3M+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NvbmZpZ3VyYXRpb24+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZXhlY3V0aW9uPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZXhlY3V0aW9uPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlkPmRlZmF1bHQtdGVzdENvbXBpbGU8L2lkPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvbmZpZ3VyYXRpb24+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZT4xLjY8L3NvdXJjZT4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGFyZ2V0PjEuNjwvdGFyZ2V0Pg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjb21waWxlckFyZ3M+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhcmc+LVhsaW50PC9hcmc+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhcmc+LVhsaW50Oi1zZXJpYWw8L2FyZz4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFyZz4tYm9vdGNsYXNzcGF0aDwvYXJnPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXJnPiR7Ym9vdGNsYXNzcGF0aC50ZXN0Q29tcGlsZX08L2FyZz4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NvbXBpbGVyQXJncz4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29uZmlndXJhdGlvbj4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9leGVjdXRpb24+DQorICAgICAgICAgICAgICAgICAgICAgICAgPC9leGVjdXRpb25zPg0KKyAgICAgICAgICAgICAgICAgICAgPC9wbHVnaW4+DQorICAgICAgICAgICAgICAgIDwvcGx1Z2lucz4NCisgICAgICAgICAgICA8L2J1aWxkPg0KKyAgICAgICAgPC9wcm9maWxlPg0KKyAgICA8L3Byb2ZpbGVzPg0KKw0KKyAgICA8YnVpbGQ+DQorDQorICAgICAgICA8ZGVmYXVsdEdvYWw+aW5zdGFsbDwvZGVmYXVsdEdvYWw+DQorDQorICAgICAgICA8IS0tDQorICAgICAgICAgICAgVGhlIGZvbGxvd2luZyBmaWx0ZXIgZGVmaW5pdGlvbiBtZWFucyB0aGF0IGJvdGggdGhlIG1hc3Rlcg0KKyAgICAgICAgICAgIHByb2plY3QgYW5kIHRoZSBzdWIgcHJvamVjdHMgd2lsbCByZWFkIGluIGEgZmlsZSBpbiB0aGUgc2FtZQ0KKyAgICAgICAgICAgIGRpcmVjdG9yeSBhcyB0aGUgcG9tLnhtbCBpcyBsb2NhdGVkIGFuZCBzZXQgYW55IHByb3BlcnRpZXMNCisgICAgICAgICAgICB0aGF0IGFyZSBkZWZpbmVkIHRoZXJlIGluIHRoZSBzdGFuZGFyZCB4PXkgZm9ybWF0LiBUaGVzZQ0KKyAgICAgICAgICAgIHByb3BlcnRpZXMgY2FuIHRoZW4gYmUgcmVmZXJlbmNlZCB2aWEgJHt4fSBpbiBhbnkgcmVzb3VyY2UNCisgICAgICAgICAgICBmaWxlIHNwZWNpZmllZCBpbiBhbnkgcG9tLiBTbywgdGhlcmUgaXMgYSBtYXN0ZXIgYW50bHIuY29uZmlnDQorICAgICAgICAgICAgZmlsZSBpbiB0aGUgc2FtZSBsb2NhdGlvbiBhcyB0aGlzIHBvbS54bWwgZmlsZSBhbmQgaGVyZSB5b3UgY2FuDQorICAgICAgICAgICAgZGVmaW5lIGFueXRoaW5nIHRoYXQgaXMgcmVsZXZhbnQgdG8gYWxsIHRoZSBtb2R1bGVzIHRoYXQgd2UNCisgICAgICAgICAgICBidWlsZCBoZXJlLiBIb3dldmVyIGVhY2ggbW9kdWxlIGFsc28gaGFzIGFuIGFudGxyLmNvbmZpZyBmaWxlDQorICAgICAgICAgICAgd2hlcmUgeW91IGNhbiBvdmVycmlkZSBwcm9wZXJ0eSB2YWx1ZXMgZnJvbSB0aGUgbWFzdGVyIGZpbGUgb3INCisgICAgICAgICAgICBkZWZpbmUgdGhpbmdzIHRoYXQgYXJlIG9ubHkgcmVsZXZhbnQgdG8gdGhhdCBtb2R1bGUuDQorICAgICAgICAgIC0tPg0KKyAgICAgICAgPGZpbHRlcnM+DQorICAgICAgICAgICAgPGZpbHRlcj5hbnRsci5jb25maWc8L2ZpbHRlcj4NCisgICAgICAgIDwvZmlsdGVycz4NCisNCisgICAgICAgIDxyZXNvdXJjZXM+DQorICAgICAgICAgICAgPHJlc291cmNlPg0KKyAgICAgICAgICAgICAgICA8ZGlyZWN0b3J5PnNyYy9tYWluL3Jlc291cmNlczwvZGlyZWN0b3J5Pg0KKyAgICAgICAgICAgICAgICA8ZmlsdGVyaW5nPnRydWU8L2ZpbHRlcmluZz4NCisgICAgICAgICAgICA8L3Jlc291cmNlPg0KKyAgICAgICAgPC9yZXNvdXJjZXM+DQorDQorICAgICAgICA8cGx1Z2lucz4NCisgICAgICAgICAgICA8cGx1Z2luPg0KKyAgICAgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+DQorICAgICAgICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLWphci1wbHVnaW48L2FydGlmYWN0SWQ+DQorICAgICAgICAgICAgICAgIDx2ZXJzaW9uPjIuNDwvdmVyc2lvbj4NCisgICAgICAgICAgICAgICAgPGNvbmZpZ3VyYXRpb24+DQorICAgICAgICAgICAgICAgICAgICA8YXJjaGl2ZT4NCisgICAgICAgICAgICAgICAgICAgICAgICA8bWFuaWZlc3Q+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhZGREZWZhdWx0SW1wbGVtZW50YXRpb25FbnRyaWVzPnRydWU8L2FkZERlZmF1bHRJbXBsZW1lbnRhdGlvbkVudHJpZXM+DQorICAgICAgICAgICAgICAgICAgICAgICAgPC9tYW5pZmVzdD4NCisgICAgICAgICAgICAgICAgICAgIDwvYXJjaGl2ZT4NCisgICAgICAgICAgICAgICAgPC9jb25maWd1cmF0aW9uPg0KKyAgICAgICAgICAgIDwvcGx1Z2luPg0KKw0KKyAgICAgICAgICAgIDxwbHVnaW4+DQorICAgICAgICAgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4NCisgICAgICAgICAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tY29tcGlsZXItcGx1Z2luPC9hcnRpZmFjdElkPg0KKyAgICAgICAgICAgICAgICA8dmVyc2lvbj4zLjE8L3ZlcnNpb24+DQorICAgICAgICAgICAgICAgIDxjb25maWd1cmF0aW9uPg0KKyAgICAgICAgICAgICAgICAgICAgPHNvdXJjZURpcmVjdG9yeT5zcmM8L3NvdXJjZURpcmVjdG9yeT4NCisgICAgICAgICAgICAgICAgICAgIDxzaG93V2FybmluZ3M+dHJ1ZTwvc2hvd1dhcm5pbmdzPg0KKyAgICAgICAgICAgICAgICAgICAgPHNob3dEZXByZWNhdGlvbj50cnVlPC9zaG93RGVwcmVjYXRpb24+DQorICAgICAgICAgICAgICAgICAgICA8Y29tcGlsZXJBcmdzPg0KKyAgICAgICAgICAgICAgICAgICAgICAgIDxhcmc+LVhsaW50PC9hcmc+DQorICAgICAgICAgICAgICAgICAgICAgICAgPGFyZz4tWGxpbnQ6LXNlcmlhbDwvYXJnPg0KKyAgICAgICAgICAgICAgICAgICAgPC9jb21waWxlckFyZ3M+DQorICAgICAgICAgICAgICAgIDwvY29uZmlndXJhdGlvbj4NCisNCisgICAgICAgICAgICAgICAgPGV4ZWN1dGlvbnM+DQorICAgICAgICAgICAgICAgICAgICA8ZXhlY3V0aW9uPg0KKyAgICAgICAgICAgICAgICAgICAgICAgIDxpZD5kZWZhdWx0LWNvbXBpbGU8L2lkPg0KKyAgICAgICAgICAgICAgICAgICAgICAgIDxjb25maWd1cmF0aW9uPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c291cmNlPjEuNTwvc291cmNlPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGFyZ2V0PjEuNTwvdGFyZ2V0Pg0KKyAgICAgICAgICAgICAgICAgICAgICAgIDwvY29uZmlndXJhdGlvbj4NCisgICAgICAgICAgICAgICAgICAgIDwvZXhlY3V0aW9uPg0KKyAgICAgICAgICAgICAgICAgICAgPGV4ZWN1dGlvbj4NCisgICAgICAgICAgICAgICAgICAgICAgICA8aWQ+ZGVmYXVsdC10ZXN0Q29tcGlsZTwvaWQ+DQorICAgICAgICAgICAgICAgICAgICAgICAgPGNvbmZpZ3VyYXRpb24+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzb3VyY2U+MS42PC9zb3VyY2U+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0YXJnZXQ+MS42PC90YXJnZXQ+DQorICAgICAgICAgICAgICAgICAgICAgICAgPC9jb25maWd1cmF0aW9uPg0KKyAgICAgICAgICAgICAgICAgICAgPC9leGVjdXRpb24+DQorICAgICAgICAgICAgICAgIDwvZXhlY3V0aW9ucz4NCisgICAgICAgICAgICA8L3BsdWdpbj4NCisNCisgICAgICAgICAgICA8cGx1Z2luPg0KKyAgICAgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+DQorICAgICAgICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLXJlbGVhc2UtcGx1Z2luPC9hcnRpZmFjdElkPg0KKyAgICAgICAgICAgICAgICA8IS0tIG92ZXJyaWRlIHRoZSB2ZXJzaW9uIGluaGVyaXRlZCBmcm9tIHRoZSBwYXJlbnQgLS0+DQorICAgICAgICAgICAgICAgIDx2ZXJzaW9uPjIuNTwvdmVyc2lvbj4NCisgICAgICAgICAgICAgICAgPGNvbmZpZ3VyYXRpb24+DQorICAgICAgICAgICAgICAgICAgICA8YXJndW1lbnRzPi1Qc29uYXR5cGUtb3NzLXJlbGVhc2UgJHtyZWxlYXNlLmFyZ3VtZW50c308L2FyZ3VtZW50cz4NCisgICAgICAgICAgICAgICAgPC9jb25maWd1cmF0aW9uPg0KKyAgICAgICAgICAgIDwvcGx1Z2luPg0KKw0KKyAgICAgICAgICAgIDxwbHVnaW4+DQorICAgICAgICAgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4NCisgICAgICAgICAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tc3VyZWZpcmUtcGx1Z2luPC9hcnRpZmFjdElkPg0KKyAgICAgICAgICAgICAgICA8IS0tIG92ZXJyaWRlIHRoZSB2ZXJzaW9uIGluaGVyaXRlZCBmcm9tIHRoZSBwYXJlbnQgLS0+DQorICAgICAgICAgICAgICAgIDx2ZXJzaW9uPjIuMTc8L3ZlcnNpb24+DQorICAgICAgICAgICAgPC9wbHVnaW4+DQorDQorICAgICAgICAgICAgPHBsdWdpbj4NCisgICAgICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLmNvZGVoYXVzLm1vam88L2dyb3VwSWQ+DQorICAgICAgICAgICAgICAgIDxhcnRpZmFjdElkPmZpbmRidWdzLW1hdmVuLXBsdWdpbjwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgICAgICAgPCEtLSBvdmVycmlkZSB0aGUgdmVyc2lvbiBpbmhlcml0ZWQgZnJvbSB0aGUgcGFyZW50IC0tPg0KKyAgICAgICAgICAgICAgICA8dmVyc2lvbj4yLjUuMzwvdmVyc2lvbj4NCisgICAgICAgICAgICAgICAgPGNvbmZpZ3VyYXRpb24+DQorICAgICAgICAgICAgICAgICAgICA8ZmluZGJ1Z3NYbWxPdXRwdXQ+dHJ1ZTwvZmluZGJ1Z3NYbWxPdXRwdXQ+DQorICAgICAgICAgICAgICAgICAgICA8eG1sT3V0cHV0PnRydWU8L3htbE91dHB1dD4NCisgICAgICAgICAgICAgICAgPC9jb25maWd1cmF0aW9uPg0KKyAgICAgICAgICAgIDwvcGx1Z2luPg0KKw0KKyAgICAgICAgICAgIDxwbHVnaW4+DQorICAgICAgICAgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4NCisgICAgICAgICAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tc291cmNlLXBsdWdpbjwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgICAgICAgPCEtLSBvdmVycmlkZSB0aGUgdmVyc2lvbiBpbmhlcml0ZWQgZnJvbSB0aGUgcGFyZW50IC0tPg0KKyAgICAgICAgICAgICAgICA8dmVyc2lvbj4yLjIuMTwvdmVyc2lvbj4NCisgICAgICAgICAgICA8L3BsdWdpbj4NCisNCisgICAgICAgICAgICA8cGx1Z2luPg0KKyAgICAgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+DQorICAgICAgICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLWphdmFkb2MtcGx1Z2luPC9hcnRpZmFjdElkPg0KKyAgICAgICAgICAgICAgICA8IS0tIG92ZXJyaWRlIHRoZSB2ZXJzaW9uIGluaGVyaXRlZCBmcm9tIHRoZSBwYXJlbnQgLS0+DQorICAgICAgICAgICAgICAgIDx2ZXJzaW9uPjIuOS4xPC92ZXJzaW9uPg0KKyAgICAgICAgICAgICAgICA8Y29uZmlndXJhdGlvbj4NCisgICAgICAgICAgICAgICAgICAgIDxxdWlldD50cnVlPC9xdWlldD4NCisgICAgICAgICAgICAgICAgPC9jb25maWd1cmF0aW9uPg0KKyAgICAgICAgICAgIDwvcGx1Z2luPg0KKw0KKyAgICAgICAgICAgIDxwbHVnaW4+DQorICAgICAgICAgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4NCisgICAgICAgICAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tZ3BnLXBsdWdpbjwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgICAgICAgPCEtLSBvdmVycmlkZSB0aGUgdmVyc2lvbiBpbmhlcml0ZWQgZnJvbSB0aGUgcGFyZW50IC0tPg0KKyAgICAgICAgICAgICAgICA8dmVyc2lvbj4xLjU8L3ZlcnNpb24+DQorICAgICAgICAgICAgPC9wbHVnaW4+DQorDQorICAgICAgICA8L3BsdWdpbnM+DQorDQorICAgIDwvYnVpbGQ+DQorDQorICAgIDxyZXBvcnRpbmc+DQorICAgICAgICA8cGx1Z2lucz4NCisgICAgICAgICAgICA8cGx1Z2luPg0KKyAgICAgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+DQorICAgICAgICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLWphdmFkb2MtcGx1Z2luPC9hcnRpZmFjdElkPg0KKyAgICAgICAgICAgICAgICA8dmVyc2lvbj4yLjkuMTwvdmVyc2lvbj4NCisgICAgICAgICAgICA8L3BsdWdpbj4NCisNCisgICAgICAgICAgICA8cGx1Z2luPg0KKyAgICAgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+DQorICAgICAgICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLWp4ci1wbHVnaW48L2FydGlmYWN0SWQ+DQorICAgICAgICAgICAgICAgIDx2ZXJzaW9uPjIuMzwvdmVyc2lvbj4NCisgICAgICAgICAgICA8L3BsdWdpbj4NCisgICAgICAgIDwvcGx1Z2lucz4NCisgICAgPC9yZXBvcnRpbmc+DQorDQorPC9wcm9qZWN0Pg0KZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9hbnRsci9hbnRsci1tYXN0ZXIvMy41LjIvYW50bHItbWFzdGVyLTMuNS4yLnBvbS5zaGExIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2FudGxyL2FudGxyLW1hc3Rlci8zLjUuMi9hbnRsci1tYXN0ZXItMy41LjIucG9tLnNoYTEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzE4MzU5MwotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9hbnRsci9hbnRsci1tYXN0ZXIvMy41LjIvYW50bHItbWFzdGVyLTMuNS4yLnBvbS5zaGExCkBAIC0wLDAgKzEgQEAKKzBlOWQxOGIzZDhjMjI4ZmY5Nzg2ZWU5NzdmNDQ4MDA4OTdmZTE1YmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvYW50bHIvYW50bHItcnVudGltZS8zLjUuMi9OT1RJQ0UgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvYW50bHIvYW50bHItcnVudGltZS8zLjUuMi9OT1RJQ0UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWI4YTFiZgotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9hbnRsci9hbnRsci1ydW50aW1lLzMuNS4yL05PVElDRQpAQCAtMCwwICsxLDI2IEBACitbVGhlICJCU0QgbGljZW5zZSJdCitDb3B5cmlnaHQgKGMpIDIwMTAgVGVyZW5jZSBQYXJyCitBbGwgcmlnaHRzIHJlc2VydmVkLgorCitSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKK21vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworYXJlIG1ldDoKKworIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisKK1RISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SCitJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCitPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgorSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULAorSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUCitOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCitEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKK1RIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyhJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9hbnRsci9hbnRsci1ydW50aW1lLzMuNS4yL2FudGxyLXJ1bnRpbWUtMy41LjIuamFyIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2FudGxyL2FudGxyLXJ1bnRpbWUvMy41LjIvYW50bHItcnVudGltZS0zLjUuMi5qYXIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDQ4ZTNlOAotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9hbnRsci9hbnRsci1ydW50aW1lLzMuNS4yL2FudGxyLXJ1bnRpbWUtMy41LjIuamFyCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9hbnRsci9hbnRsci1ydW50aW1lLzMuNS4yL2FudGxyLXJ1bnRpbWUtMy41LjIuamFyLnNoYTEgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvYW50bHIvYW50bHItcnVudGltZS8zLjUuMi9hbnRsci1ydW50aW1lLTMuNS4yLmphci5zaGExCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZkMzAxZTkKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvYW50bHIvYW50bHItcnVudGltZS8zLjUuMi9hbnRsci1ydW50aW1lLTMuNS4yLmphci5zaGExCkBAIC0wLDAgKzEgQEAKK2NkOWNkNDEzNjFjMTU1ZjNhZjBmNjUzMDA5ZGNlY2IwOGQ4YjRhZmQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvYW50bHIvYW50bHItcnVudGltZS8zLjUuMi9hbnRsci1ydW50aW1lLTMuNS4yLnBvbSBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9hbnRsci9hbnRsci1ydW50aW1lLzMuNS4yL2FudGxyLXJ1bnRpbWUtMy41LjIucG9tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVlNmY5OGEKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvYW50bHIvYW50bHItcnVudGltZS8zLjUuMi9hbnRsci1ydW50aW1lLTMuNS4yLnBvbQpAQCAtMCwwICsxLDY3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KKzxwcm9qZWN0IHhtbG5zPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL21hdmVuLXY0XzBfMC54c2QiPg0KKyAgPG1vZGVsVmVyc2lvbj40LjAuMDwvbW9kZWxWZXJzaW9uPg0KKyAgPGdyb3VwSWQ+b3JnLmFudGxyPC9ncm91cElkPg0KKyAgPGFydGlmYWN0SWQ+YW50bHItcnVudGltZTwvYXJ0aWZhY3RJZD4NCisgIDxwYWNrYWdpbmc+amFyPC9wYWNrYWdpbmc+DQorICANCisgIDwhLS0NCisNCisgICAgSW5oZXJpdCBmcm9tIHRoZSBBTlRMUiBtYXN0ZXIgcG9tLCB3aGljaCB0ZWxscyB1cyB3aGF0DQorICAgIHZlcnNpb24gd2UgYXJlIGFuZCBhbGxvd3MgdXMgdG8gaW5oZXJpdCBkZXBlbmRlbmNpZXMNCisgICAgYW5kIHNvIG9uLg0KKw0KKyAgICAtLT4NCisgIDxwYXJlbnQ+DQorICAgICAgPGdyb3VwSWQ+b3JnLmFudGxyPC9ncm91cElkPg0KKyAgICAgIDxhcnRpZmFjdElkPmFudGxyLW1hc3RlcjwvYXJ0aWZhY3RJZD4NCisgICAgICA8dmVyc2lvbj4zLjUuMjwvdmVyc2lvbj4NCisgICAgICA8cmVsYXRpdmVQYXRoPi4uLy4uPC9yZWxhdGl2ZVBhdGg+DQorICA8L3BhcmVudD4NCisgIA0KKyAgPG5hbWU+QU5UTFIgMyBSdW50aW1lPC9uYW1lPg0KKw0KKyAgPGRlc2NyaXB0aW9uPkEgZnJhbWV3b3JrIGZvciBjb25zdHJ1Y3RpbmcgcmVjb2duaXplcnMsIGNvbXBpbGVycywgYW5kIHRyYW5zbGF0b3JzIGZyb20gZ3JhbW1hdGljYWwgZGVzY3JpcHRpb25zIGNvbnRhaW5pbmcgSmF2YSwgQyMsIEMrKywgb3IgUHl0aG9uIGFjdGlvbnMuPC9kZXNjcmlwdGlvbj4NCisgIDx1cmw+aHR0cDovL3d3dy5hbnRsci5vcmc8L3VybD4NCisgICAgICA8ZGV2ZWxvcGVycz4NCisgICAgICAgIDxkZXZlbG9wZXI+DQorICAgICAgICAgICAgPG5hbWU+VGVyZW5jZSBQYXJyPC9uYW1lPg0KKyAgICAgICAgICAgIDxvcmdhbml6YXRpb24+VVNGQ0E8L29yZ2FuaXphdGlvbj4NCisgICAgICAgICAgICA8b3JnYW5pemF0aW9uVXJsPmh0dHA6Ly93d3cuY3MudXNmY2EuZWR1PC9vcmdhbml6YXRpb25Vcmw+DQorICAgICAgICAgICAgPGVtYWlsPnBhcnJ0QGFudGxyLm9yZzwvZW1haWw+DQorICAgICAgICAgICAgPHJvbGVzPg0KKyAgICAgICAgICAgICAgICA8cm9sZT5Qcm9qZWN0IExlYWRlcjwvcm9sZT4NCisgICAgICAgICAgICAgICAgPHJvbGU+RGV2ZWxvcGVyIC0gSmF2YSBUYXJnZXQ8L3JvbGU+DQorICAgICAgICAgICAgPC9yb2xlcz4NCisgICAgICAgICAgICA8dGltZXpvbmU+UFNUPC90aW1lem9uZT4NCisgICAgICAgIDwvZGV2ZWxvcGVyPg0KKyAgICAgICAgPGRldmVsb3Blcj4NCisgICAgICAgICAgICA8bmFtZT5KaW0gSWRsZTwvbmFtZT4NCisgICAgICAgICAgICA8b3JnYW5pemF0aW9uPlRlbXBvcmFsIFdhdmUgTExDPC9vcmdhbml6YXRpb24+DQorICAgICAgICAgICAgPG9yZ2FuaXphdGlvblVybD5odHRwOi8vd3d3LnRlbXBvcmFsLXdhdmUuY29tPC9vcmdhbml6YXRpb25Vcmw+DQorICAgICAgICAgICAgPGVtYWlsPmppbWlAdGVtcG9yYWwtd2F2ZS5jb208L2VtYWlsPg0KKyAgICAgICAgICAgIDxyb2xlcz4NCisgICAgICAgICAgICAgICAgPHJvbGU+RGV2ZWxvcGVyIC0gTWF2ZW4gc3R1ZmY8L3JvbGU+DQorICAgICAgICAgICAgICAgIDxyb2xlPkRldmVsb3BlciAtIEMgVGFyZ2V0PC9yb2xlPg0KKyAgICAgICAgICAgIDwvcm9sZXM+DQorICAgICAgICAgICAgPHRpbWV6b25lPlBTVDwvdGltZXpvbmU+DQorICAgICAgICA8L2RldmVsb3Blcj4NCisgICAgPC9kZXZlbG9wZXJzPg0KKw0KKyAgPGRlcGVuZGVuY2llcz4NCisgICAgDQorICAgIDxkZXBlbmRlbmN5Pg0KKyAgICAgIDxncm91cElkPm9yZy5hbnRscjwvZ3JvdXBJZD4NCisgICAgICA8YXJ0aWZhY3RJZD5zdHJpbmd0ZW1wbGF0ZTwvYXJ0aWZhY3RJZD4NCisgICAgICA8c2NvcGU+Y29tcGlsZTwvc2NvcGU+DQorICAgICAgPG9wdGlvbmFsPnRydWU8L29wdGlvbmFsPg0KKyAgICA8L2RlcGVuZGVuY3k+DQorDQorICAgIDxkZXBlbmRlbmN5Pg0KKyAgICAgIDxncm91cElkPmp1bml0PC9ncm91cElkPg0KKyAgICAgIDxhcnRpZmFjdElkPmp1bml0PC9hcnRpZmFjdElkPg0KKyAgICA8L2RlcGVuZGVuY3k+DQorDQorICA8L2RlcGVuZGVuY2llcz4NCisNCis8L3Byb2plY3Q+DQpkaWZmIC0tZ2l0IGEvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2FudGxyL2FudGxyLXJ1bnRpbWUvMy41LjIvYW50bHItcnVudGltZS0zLjUuMi5wb20uc2hhMSBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9hbnRsci9hbnRsci1ydW50aW1lLzMuNS4yL2FudGxyLXJ1bnRpbWUtMy41LjIucG9tLnNoYTEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzY2MmU0ZgotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9hbnRsci9hbnRsci1ydW50aW1lLzMuNS4yL2FudGxyLXJ1bnRpbWUtMy41LjIucG9tLnNoYTEKQEAgLTAsMCArMSBAQAorYWY4YWU1MTcyZjBjNDk5ZDkzMmQ0NjU2NzNjOTgzM2M4Nzc3YzFkZApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9hbnRsci9zdHJpbmd0ZW1wbGF0ZS8zLjIuMS9zdHJpbmd0ZW1wbGF0ZS0zLjIuMS5qYXIgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvYW50bHIvc3RyaW5ndGVtcGxhdGUvMy4yLjEvc3RyaW5ndGVtcGxhdGUtMy4yLjEuamFyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQwZTExYjcKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvYW50bHIvc3RyaW5ndGVtcGxhdGUvMy4yLjEvc3RyaW5ndGVtcGxhdGUtMy4yLjEuamFyCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9hbnRsci9zdHJpbmd0ZW1wbGF0ZS8zLjIuMS9zdHJpbmd0ZW1wbGF0ZS0zLjIuMS5qYXIuc2hhMSBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9hbnRsci9zdHJpbmd0ZW1wbGF0ZS8zLjIuMS9zdHJpbmd0ZW1wbGF0ZS0zLjIuMS5qYXIuc2hhMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYzJiZjhjCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2FudGxyL3N0cmluZ3RlbXBsYXRlLzMuMi4xL3N0cmluZ3RlbXBsYXRlLTMuMi4xLmphci5zaGExCkBAIC0wLDAgKzEgQEAKKzU5ZWM4MDgzNzIxZWFlMjE1YzZmM2NhZWU5NDRjNDEwZDJiZTM0ZGUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvYW50bHIvc3RyaW5ndGVtcGxhdGUvMy4yLjEvc3RyaW5ndGVtcGxhdGUtMy4yLjEucG9tIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2FudGxyL3N0cmluZ3RlbXBsYXRlLzMuMi4xL3N0cmluZ3RlbXBsYXRlLTMuMi4xLnBvbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZjAwNGNmCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2FudGxyL3N0cmluZ3RlbXBsYXRlLzMuMi4xL3N0cmluZ3RlbXBsYXRlLTMuMi4xLnBvbQpAQCAtMCwwICsxLDE5NyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCis8cHJvamVjdCB4bWxucz0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCBodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9tYXZlbi12NF8wXzAueHNkIj4NCisgICAgPG1vZGVsVmVyc2lvbj40LjAuMDwvbW9kZWxWZXJzaW9uPg0KKyAgICA8Z3JvdXBJZD5vcmcuYW50bHI8L2dyb3VwSWQ+DQorICAgIDxhcnRpZmFjdElkPnN0cmluZ3RlbXBsYXRlPC9hcnRpZmFjdElkPg0KKyAgICA8cGFja2FnaW5nPmphcjwvcGFja2FnaW5nPg0KKyAgICANCisgICAgPCEtLQ0KKyAgICAgICAgVGhlIHZlcnNpb24gbnVtYmVyIGRlZmluZWQgaGVyZSBpbiB0aGUgdmVyc2lvbiB0YWcgaW5kaWNhdGVzIGhvdyB0aGUNCisgICAgICAgIGphciBpcyBuYW1lZCBhbmQgcmVsZWFzZWQuIFdoZW4gaXQgZW5kcyB3aXRoIFNOQVBTSE9ULCBpdCB3aWxsIGJlIHN0b3JlZA0KKyAgICAgICAgaW4geW91ciBsb2NhbCByZXBvc2l0b3J5ICh+L20yIG9uIFVOSVgpIGFzIHN0cmluZ3RlbXBsYXRlLVguWS1TTkFQU0hPVCwgYnV0DQorICAgICAgICB3aWxsIGJlIGRlcGx5ZWQgdG8gdGhlIEFOVExSIHNuYXBzaG90IHJlcG9zaXRvcnkgYXQgYW50bHIub3JnIHdpdGggdGhlIHdvcmQNCisgICAgICAgIFNOQVBTSE9UIHJlcGxhY2VkIHdpdGggdGhlIHRoZSBkYXRhLCB0aW1lIGFuZCB1bmlxdWUgbnVtYmVyLg0KKyAgICAtLT4NCisgICAgPHZlcnNpb24+My4yLjE8L3ZlcnNpb24+DQorICAgIA0KKyAgICA8IS0tDQorICAgICAgICBUaGUgbmFtZSBvZiB0aGUgcHJvamVjdCBhcyBzZWVuIGJ5IElERXMgYW5kIHJlbGVhc2UgZG9jdW1lbnRhdGlvbiBldGMuDQorICAgIC0tPg0KKyAgICA8bmFtZT5BTlRMUiBTdHJpbmdUZW1wbGF0ZTwvbmFtZT4NCisgICAgDQorICAgIDxkZXNjcmlwdGlvbj5TdHJpbmdUZW1wbGF0ZSBpcyBhIGphdmEgdGVtcGxhdGUgZW5naW5lIGZvciBnZW5lcmF0aW5nIHNvdXJjZSBjb2RlLA0KK3dlYiBwYWdlcywgZW1haWxzLCBvciBhbnkgb3RoZXIgZm9ybWF0dGVkIHRleHQgb3V0cHV0Lg0KKw0KK1N0cmluZ1RlbXBsYXRlIGlzIHBhcnRpY3VsYXJseSBnb29kIGF0IG11bHRpLXRhcmdldGVkIGNvZGUgZ2VuZXJhdG9ycywNCittdWx0aXBsZSBzaXRlIHNraW5zLCBhbmQgaW50ZXJuYXRpb25hbGl6YXRpb24vbG9jYWxpemF0aW9uLiANCisNCitJdCBldm9sdmVkIG92ZXIgeWVhcnMgb2YgZWZmb3J0IGRldmVsb3Bpbmcgakd1cnUuY29tLiANCisNCitTdHJpbmdUZW1wbGF0ZSBhbHNvIGdlbmVyYXRlcyB0aGUgc3RyaW5ndGVtcGxhdGUgd2Vic2l0ZTogaHR0cDovL3d3dy5zdHJpbmd0ZW1wbGF0ZS5vcmcNCithbmQgcG93ZXJzIHRoZSBBTlRMUiB2MyBjb2RlIGdlbmVyYXRvci4gSXRzIGRpc3Rpbmd1aXNoaW5nIGNoYXJhY3RlcmlzdGljIA0KK2lzIHRoYXQgdW5saWtlIG90aGVyIGVuZ2luZXMsIGl0IHN0cmljdGx5IGVuZm9yY2VzIG1vZGVsLXZpZXcgc2VwYXJhdGlvbi4NCisNCitTdHJpY3Qgc2VwYXJhdGlvbiBtYWtlcyB3ZWJzaXRlcyBhbmQgY29kZSBnZW5lcmF0b3JzIG1vcmUgZmxleGlibGUNCithbmQgbWFpbnRhaW5hYmxlOyBpdCBhbHNvIHByb3ZpZGVzIGFuIGV4Y2VsbGVudCBkZWZlbnNlIGFnYWluc3QgbWFsaWNpb3VzDQordGVtcGxhdGUgYXV0aG9ycy4NCisNCitUaGVyZSBhcmUgY3VycmVudGx5IGFib3V0IDYwMCBTdHJpbmdUZW1wbGF0ZSBzb3VyY2UgZG93bmxvYWRzIGEgbW9udGguDQorICAgIDwvZGVzY3JpcHRpb24+DQorICAgIA0KKyAgICA8IS0tDQorICAgICAgICBUaGUgVVJMIG9mIHRoZSBBTlRMUiBiYXNlIHByb2plY3QNCisgICAgICAtLT4NCisgICAgPHVybD5odHRwOi8vd3d3LnN0cmluZ3RlbXBsYXRlLm9yZzwvdXJsPg0KKyAgICA8ZGV2ZWxvcGVycz4NCisgICAgICAgIDxkZXZlbG9wZXI+DQorICAgICAgICAgICAgPG5hbWU+VGVyZW5jZSBQYXJyPC9uYW1lPg0KKyAgICAgICAgICAgIDxvcmdhbml6YXRpb24+VVNGQ0E8L29yZ2FuaXphdGlvbj4NCisgICAgICAgICAgICA8b3JnYW5pemF0aW9uVXJsPmh0dHA6Ly93d3cuY3MudXNmY2EuZWR1PC9vcmdhbml6YXRpb25Vcmw+DQorICAgICAgICAgICAgPGVtYWlsPnBhcnJ0QGFudGxyLm9yZzwvZW1haWw+DQorICAgICAgICAgICAgPHJvbGVzPg0KKyAgICAgICAgICAgICAgICA8cm9sZT5Qcm9qZWN0IExlYWRlcjwvcm9sZT4NCisgICAgICAgICAgICAgICAgPHJvbGU+RGV2ZWxvcGVyIC0gSmF2YSBUYXJnZXQ8L3JvbGU+DQorICAgICAgICAgICAgPC9yb2xlcz4NCisgICAgICAgICAgICA8dGltZXpvbmU+UFNUPC90aW1lem9uZT4NCisgICAgICAgIDwvZGV2ZWxvcGVyPg0KKyAgICAgICAgPGRldmVsb3Blcj4NCisgICAgICAgICAgICA8bmFtZT5KaW0gSWRsZTwvbmFtZT4NCisgICAgICAgICAgICA8b3JnYW5pemF0aW9uPlRlbXBvcmFsIFdhdmUgTExDPC9vcmdhbml6YXRpb24+DQorICAgICAgICAgICAgPG9yZ2FuaXphdGlvblVybD5odHRwOi8vd3d3LnRlbXBvcmFsLXdhdmUuY29tPC9vcmdhbml6YXRpb25Vcmw+DQorICAgICAgICAgICAgPGVtYWlsPmppbWlAdGVtcG9yYWwtd2F2ZS5jb208L2VtYWlsPg0KKyAgICAgICAgICAgIDxyb2xlcz4NCisgICAgICAgICAgICAgICAgPHJvbGU+RGV2ZWxvcGVyIC0gTWF2ZW4gc3R1ZmY8L3JvbGU+DQorICAgICAgICAgICAgPC9yb2xlcz4NCisgICAgICAgICAgICA8dGltZXpvbmU+UFNUPC90aW1lem9uZT4NCisgICAgICAgIDwvZGV2ZWxvcGVyPg0KKyAgICA8L2RldmVsb3BlcnM+DQorICAgICAgICANCisgICAgPGxpY2Vuc2VzPg0KKyAgICAgICAgPGxpY2Vuc2U+DQorICAgICAgICAgICAgPG5hbWU+QlNEIGxpY2VuY2U8L25hbWU+DQorICAgICAgICAgICAgPHVybD5odHRwOi8vYW50bHIub3JnL2xpY2Vuc2UuaHRtbDwvdXJsPg0KKyAgICAgICAgICAgIDxkaXN0cmlidXRpb24+cmVwbzwvZGlzdHJpYnV0aW9uPg0KKyAgICAgICAgPC9saWNlbnNlPg0KKyAgICA8L2xpY2Vuc2VzPg0KKyAgICA8c2NtPg0KKyAgICAgICAgPHVybD5odHRwOi8vZmlzaGV5ZTIuY2VucXVhLmNvbS9icm93c2Uvc3RyaW5ndGVtcGxhdGU8L3VybD4NCisgICAgICAgIDxjb25uZWN0aW9uPmh0dHA6Ly9maXNoZXllMi5jZW5xdWEuY29tL2Jyb3dzZS9zdHJpbmd0ZW1wbGF0ZTwvY29ubmVjdGlvbj4NCisgICAgPC9zY20+DQorICAgIA0KKyAgPCEtLQ0KKyAgICBEZWZpbml0aW9uIG9mIHRoZSBBTlRMUiByZXBvc2l0b3JpZXMuIE5vdGUgdGhhdCB5b3UgY2FuIG9ubHkgZGVwbG95DQorICAgIHRvIHRoZSByZXBvc2l0b3JpZXMgdmlhIHNjcCwgYW5kIHNvIHRoZSBzZXJ2ZXIgbXVzdCBhbHJlYWR5IGtub3cgYWJvdXQNCisgICAgeW91ciBwdWJsaWMga2V5LiBPTmx5IEFOVExSIGRldmVsb3BlcnMgYXJlIGFsbG93ZWQgdG8gZGVwbG95IHRvIHRoZSANCisgICAgcmVsZWFzZSBhbmQgc25hcHNob3QgcmVwb3NpdG9yaWVzLCB3aGljaCBhcmUgc3luY2VkIHdpdGggdGhlIE1hdmVuIGNlbnRyYWwNCisgICAgcmVwb3NpdG9yeS4NCisgIC0tPg0KKyAgPGRpc3RyaWJ1dGlvbk1hbmFnZW1lbnQ+DQorICAgICAgPHJlcG9zaXRvcnk+DQorICAgICAgICAgIDxpZD5hbnRsci1yZXBvPC9pZD4NCisgICAgICAgICAgPG5hbWU+QU5UTFIgVGVzdGluZyByZXBvc2l0b3J5PC9uYW1lPg0KKyAgICAgICAgICA8dXJsPnNjcGV4ZTovL2FudGxyLm9yZy9ob21lL21hdmVuc3luYy9hbnRsci1yZXBvPC91cmw+DQorICAgICAgPC9yZXBvc2l0b3J5Pg0KKyAgICAgIA0KKyAgICAgIDxzbmFwc2hvdFJlcG9zaXRvcnk+DQorICAgICAgICAgICAgPGlkPmFudGxyLXNuYXBzaG90PC9pZD4NCisgICAgICAgICAgICA8bmFtZT5BTlRMUiBUZXN0aW5nIFNuYXBzaG90IFJlcG9zaXRvcnk8L25hbWU+DQorICAgICAgICAgICAgPHVybD5zY3BleGU6Ly9hbnRsci5vcmcvaG9tZS9tYXZlbnN5bmMvYW50bHItc25hcHNob3Q8L3VybD4NCisgICAgICA8L3NuYXBzaG90UmVwb3NpdG9yeT4NCisgIDwvZGlzdHJpYnV0aW9uTWFuYWdlbWVudD4NCisgIA0KKyAgICA8ZGVwZW5kZW5jaWVzPg0KKyAgICAgICAgPGRlcGVuZGVuY3k+DQorICAgICAgICAgICAgPGdyb3VwSWQ+anVuaXQ8L2dyb3VwSWQ+DQorICAgICAgICAgICAgPGFydGlmYWN0SWQ+anVuaXQ8L2FydGlmYWN0SWQ+DQorICAgICAgICAgICAgPHZlcnNpb24+NC41PC92ZXJzaW9uPg0KKyAgICAgICAgICAgIDxzY29wZT50ZXN0PC9zY29wZT4NCisgICAgICAgIDwvZGVwZW5kZW5jeT4NCisgICAgICAgIDxkZXBlbmRlbmN5Pg0KKyAgICAgICAgICAgIDxncm91cElkPmFudGxyPC9ncm91cElkPg0KKyAgICAgICAgICAgIDxhcnRpZmFjdElkPmFudGxyPC9hcnRpZmFjdElkPg0KKyAgICAgICAgICAgIDx2ZXJzaW9uPjIuNy43PC92ZXJzaW9uPg0KKyAgICAgICAgICAgIDxzY29wZT5jb21waWxlPC9zY29wZT4NCisgICAgICAgIDwvZGVwZW5kZW5jeT4NCisgICAgPC9kZXBlbmRlbmNpZXM+DQorDQorICAgIDxidWlsZD4NCisNCisgICAgICAgIDxkZWZhdWx0R29hbD5pbnN0YWxsPC9kZWZhdWx0R29hbD4NCisNCisgICAgICAgIDxleHRlbnNpb25zPg0KKyAgICAgICAgICAgIDxleHRlbnNpb24+DQorICAgICAgICAgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ud2Fnb248L2dyb3VwSWQ+DQorICAgICAgICAgICAgICAgIDxhcnRpZmFjdElkPndhZ29uLXNzaC1leHRlcm5hbDwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgICAgICAgPHZlcnNpb24+MS4wLWJldGEtMjwvdmVyc2lvbj4NCisgICAgICAgICAgICA8L2V4dGVuc2lvbj4NCisgICAgICAgIDwvZXh0ZW5zaW9ucz4NCisgICAgICANCisgICAgICAgIA0KKyAgICAgICAgPCEtLQ0KKyAgICAgICAgICAgIFRoZSByb290IG9mIHRoZSBzb3VyY2UgY29kZSBmb3IgU3RyaW5nVGVtcGxhdGUNCisgICAgICAgIC0tPg0KKyAgICAgICAgPHNvdXJjZURpcmVjdG9yeT5zcmM8L3NvdXJjZURpcmVjdG9yeT4NCisgICAgICAgIA0KKyAgICAgICAgPCEtLQ0KKyAgICAgICAgICAgIFRoZSByb290IG9mIHRoZSB0ZXN0IHNvdXJjZSBjb2RlIGZvciBTdHJpbmdUZW1wbGF0ZS4NCisgICAgICAgIC0tPg0KKyAgICAgICAgPHRlc3RTb3VyY2VEaXJlY3Rvcnk+dGVzdDwvdGVzdFNvdXJjZURpcmVjdG9yeT4NCisgICAgICAgIA0KKyAgICAgICAgPCEtLQ0KKyAgICAgICAgICAgIEFsbCB0aGUgcmVzb3VyY2VzIHRoYXQgc2hvdWxkIGJlIG9uIHRoZSBjbGFzc3BhdGgsIHdoZW4gDQorICAgICAgICAgICAgdGhlIGp1bml0IHRlc3RzIGFyZSBydW4uIEhlcmUgd2UgbmVlZCB0byBpbmNsdWRlIHRoZSB0ZXN0DQorICAgICAgICAgICAgc291cmNlIGNvZGUgZGlyZWN0b3J5IGFzIHRoZSAuc3QgZmlsZXMgbG9hZGVkIGR5bmFtaWNhbGx5DQorICAgICAgICAgICAgYnkgdGhlIHRlc3RzLCBhcmUgbG9jYXRlZCB1bmRlcm5lYXRoIHRoaXMgdHJlZS4NCisgICAgICAgIC0tPg0KKyAgICAgICAgPHRlc3RSZXNvdXJjZXM+DQorICAgICAgICAgICAgPHRlc3RSZXNvdXJjZT4NCisgICAgICAgICAgICAgICAgPGRpcmVjdG9yeT50ZXN0PC9kaXJlY3Rvcnk+DQorICAgICAgICAgICAgPC90ZXN0UmVzb3VyY2U+DQorICAgICAgICA8L3Rlc3RSZXNvdXJjZXM+DQorICAgICAgICANCisgICAgICAgIDxwbHVnaW5zPg0KKyAgICAgICAgICAgIDxwbHVnaW4+DQorICAgICAgICAgICAgICAgIDxncm91cElkPm9yZy5jb2RlaGF1cy5tb2pvPC9ncm91cElkPg0KKyAgICAgICAgICAgICAgICA8YXJ0aWZhY3RJZD5hbnRsci1tYXZlbi1wbHVnaW48L2FydGlmYWN0SWQ+DQorICAgICAgICAgICAgICAgIDxjb25maWd1cmF0aW9uPg0KKyAgICAgICAgICAgICAgICAgICAgPHNvdXJjZURpcmVjdG9yeT5zcmMvb3JnL2FudGxyL3N0cmluZ3RlbXBsYXRlL2xhbmd1YWdlPC9zb3VyY2VEaXJlY3Rvcnk+DQorICAgICAgICAgICAgICAgICAgICA8Z3JhbW1hcnM+dGVtcGxhdGUuZywgYW5nbGUuYnJhY2tldC50ZW1wbGF0ZS5nLCBhY3Rpb24uZywgZXZhbC5nLCBncm91cC5nLCBpbnRlcmZhY2UuZzwvZ3JhbW1hcnM+DQorICAgICAgICAgICAgICAgIDwvY29uZmlndXJhdGlvbj4NCisgICAgICAgICAgICAgICAgPGV4ZWN1dGlvbnM+DQorICAgICAgICAgICAgICAgICAgICA8ZXhlY3V0aW9uPg0KKyAgICAgICAgICAgICAgICAgICAgICAgIDxnb2Fscz4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGdvYWw+Z2VuZXJhdGU8L2dvYWw+DQorICAgICAgICAgICAgICAgICAgICAgICAgPC9nb2Fscz4NCisgICAgICAgICAgICAgICAgICAgIDwvZXhlY3V0aW9uPg0KKyAgICAgICAgICAgICAgICA8L2V4ZWN1dGlvbnM+DQorICAgICAgICAgICAgPC9wbHVnaW4+DQorICAgICAgICAgICAgPHBsdWdpbj4NCisgICAgICAgICAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tY29tcGlsZXItcGx1Z2luPC9hcnRpZmFjdElkPg0KKyAgICAgICAgICAgICAgICA8Y29uZmlndXJhdGlvbj4NCisgICAgICAgICAgICAgICAgICAgIDxzb3VyY2U+MS40PC9zb3VyY2U+DQorICAgICAgICAgICAgICAgICAgICA8dGFyZ2V0PmpzcjE0PC90YXJnZXQ+DQorICAgICAgICAgICAgICAgICAgICA8c291cmNlRGlyZWN0b3J5PnNyYzwvc291cmNlRGlyZWN0b3J5Pg0KKyAgICAgICAgICAgICAgICA8L2NvbmZpZ3VyYXRpb24+DQorICAgICAgICAgICAgPC9wbHVnaW4+DQorICAgICAgICAgICAgPHBsdWdpbj4NCisgICAgICAgICAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tc3VyZWZpcmUtcGx1Z2luPC9hcnRpZmFjdElkPg0KKyAgICAgICAgICAgICAgICA8Y29uZmlndXJhdGlvbj4NCisgICAgICAgICAgICAgICAgICAgIDxhZGRpdGlvbmFsQ2xhc3NwYXRoRWxlbWVudHM+DQorICAgICAgICAgICAgICAgICAgICAgICAgPGFkZGl0aW9uYWxDbGFzc3BhdGhFbGVtZW50PiR7YmFzZWRpcn0vc3JjPC9hZGRpdGlvbmFsQ2xhc3NwYXRoRWxlbWVudD4NCisgICAgICAgICAgICAgICAgICAgIDwvYWRkaXRpb25hbENsYXNzcGF0aEVsZW1lbnRzPg0KKyAgICAgICAgICAgICAgICA8L2NvbmZpZ3VyYXRpb24+DQorICAgICAgICAgICAgPC9wbHVnaW4+DQorDQorICAgICAgICAgICAgPHBsdWdpbj4NCisgICAgICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLmNvZGVoYXVzLm1vam88L2dyb3VwSWQ+DQorICAgICAgICAgICAgICAgIDxhcnRpZmFjdElkPmZpbmRidWdzLW1hdmVuLXBsdWdpbjwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgICAgICAgPGNvbmZpZ3VyYXRpb24+DQorICAgICAgICAgICAgICAgICAgICA8ZmluZGJ1Z3NYbWxPdXRwdXQ+dHJ1ZTwvZmluZGJ1Z3NYbWxPdXRwdXQ+DQorICAgICAgICAgICAgICAgICAgICA8ZmluZGJ1Z3NYbWxXaXRoTWVzc2FnZXM+dHJ1ZTwvZmluZGJ1Z3NYbWxXaXRoTWVzc2FnZXM+DQorICAgICAgICAgICAgICAgICAgICA8eG1sT3V0cHV0PnRydWU8L3htbE91dHB1dD4NCisgICAgICAgICAgICAgICAgPC9jb25maWd1cmF0aW9uPg0KKyAgICAgICAgICAgIDwvcGx1Z2luPg0KKw0KKyAgICAgICAgPC9wbHVnaW5zPg0KKyAgICA8L2J1aWxkPg0KKzwvcHJvamVjdD4NCmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvYW50bHIvc3RyaW5ndGVtcGxhdGUvMy4yLjEvc3RyaW5ndGVtcGxhdGUtMy4yLjEucG9tLnNoYTEgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvYW50bHIvc3RyaW5ndGVtcGxhdGUvMy4yLjEvc3RyaW5ndGVtcGxhdGUtMy4yLjEucG9tLnNoYTEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTlkNTg5MAotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9hbnRsci9zdHJpbmd0ZW1wbGF0ZS8zLjIuMS9zdHJpbmd0ZW1wbGF0ZS0zLjIuMS5wb20uc2hhMQpAQCAtMCwwICsxIEBACis4ODU2MjM0NGJkYjA2ZDAxYThmNDEwYWE2MjQ1MzhlMzQ1MDg2NTk1ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2FwYWNoZS9hcGFjaGUvMTUvX3JlbW90ZS5yZXBvc2l0b3JpZXMgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvYXBhY2hlL2FwYWNoZS8xNS9fcmVtb3RlLnJlcG9zaXRvcmllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41OWFjOWNjCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2FwYWNoZS9hcGFjaGUvMTUvX3JlbW90ZS5yZXBvc2l0b3JpZXMKQEAgLTAsMCArMSwzIEBACisjTk9URTogVGhpcyBpcyBhbiBBZXRoZXIgaW50ZXJuYWwgaW1wbGVtZW50YXRpb24gZmlsZSwgaXRzIGZvcm1hdCBjYW4gYmUgY2hhbmdlZCB3aXRob3V0IHByaW9yIG5vdGljZS4KKyNXZWQgSnVsIDIyIDE0OjIyOjMwIFBEVCAyMDE1CithcGFjaGUtMTUucG9tPmNlbnRyYWw9CmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvYXBhY2hlL2FwYWNoZS8xNS9hcGFjaGUtMTUucG9tIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2FwYWNoZS9hcGFjaGUvMTUvYXBhY2hlLTE1LnBvbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZTQ3MWJmCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2FwYWNoZS9hcGFjaGUvMTUvYXBhY2hlLTE1LnBvbQpAQCAtMCwwICsxLDQxMSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKworPCEtLQorTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZQorb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCitkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZQordG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQord2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCitVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCitzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCitLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKK3NwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKK3VuZGVyIHRoZSBMaWNlbnNlLgorLS0+CisKKzxwcm9qZWN0IHhtbG5zPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL3hzZC9tYXZlbi00LjAuMC54c2QiPgorICA8bW9kZWxWZXJzaW9uPjQuMC4wPC9tb2RlbFZlcnNpb24+CisKKyAgPCEtLSBmb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIHRoZSBkb2N1bWVudGF0aW9uIG9mIHRoaXMgUE9NOiBodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9wb20vYXNmLyAtLT4KKyAgPGdyb3VwSWQ+b3JnLmFwYWNoZTwvZ3JvdXBJZD4KKyAgPGFydGlmYWN0SWQ+YXBhY2hlPC9hcnRpZmFjdElkPgorICA8dmVyc2lvbj4xNTwvdmVyc2lvbj4KKyAgPHBhY2thZ2luZz5wb208L3BhY2thZ2luZz4KKworICA8bmFtZT5UaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb248L25hbWU+CisgIDxkZXNjcmlwdGlvbj4KKyAgICBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gcHJvdmlkZXMgc3VwcG9ydCBmb3IgdGhlIEFwYWNoZSBjb21tdW5pdHkgb2Ygb3Blbi1zb3VyY2Ugc29mdHdhcmUgcHJvamVjdHMuCisgICAgVGhlIEFwYWNoZSBwcm9qZWN0cyBhcmUgY2hhcmFjdGVyaXplZCBieSBhIGNvbGxhYm9yYXRpdmUsIGNvbnNlbnN1cyBiYXNlZCBkZXZlbG9wbWVudCBwcm9jZXNzLCBhbiBvcGVuIGFuZAorICAgIHByYWdtYXRpYyBzb2Z0d2FyZSBsaWNlbnNlLCBhbmQgYSBkZXNpcmUgdG8gY3JlYXRlIGhpZ2ggcXVhbGl0eSBzb2Z0d2FyZSB0aGF0IGxlYWRzIHRoZSB3YXkgaW4gaXRzIGZpZWxkLgorICAgIFdlIGNvbnNpZGVyIG91cnNlbHZlcyBub3Qgc2ltcGx5IGEgZ3JvdXAgb2YgcHJvamVjdHMgc2hhcmluZyBhIHNlcnZlciwgYnV0IHJhdGhlciBhIGNvbW11bml0eSBvZiBkZXZlbG9wZXJzCisgICAgYW5kIHVzZXJzLgorICA8L2Rlc2NyaXB0aW9uPgorICA8dXJsPmh0dHA6Ly93d3cuYXBhY2hlLm9yZy88L3VybD4KKyAgPG9yZ2FuaXphdGlvbj4KKyAgICA8bmFtZT5UaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb248L25hbWU+CisgICAgPHVybD5odHRwOi8vd3d3LmFwYWNoZS5vcmcvPC91cmw+CisgIDwvb3JnYW5pemF0aW9uPgorICA8bGljZW5zZXM+CisgICAgPGxpY2Vuc2U+CisgICAgICA8bmFtZT5BcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjA8L25hbWU+CisgICAgICA8dXJsPmh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC50eHQ8L3VybD4KKyAgICAgIDxkaXN0cmlidXRpb24+cmVwbzwvZGlzdHJpYnV0aW9uPgorICAgIDwvbGljZW5zZT4KKyAgPC9saWNlbnNlcz4KKworICA8bWFpbGluZ0xpc3RzPgorICAgIDxtYWlsaW5nTGlzdD4KKyAgICAgIDxuYW1lPkFwYWNoZSBBbm5vdW5jZSBMaXN0PC9uYW1lPgorICAgICAgPHN1YnNjcmliZT5hbm5vdW5jZS1zdWJzY3JpYmVAYXBhY2hlLm9yZzwvc3Vic2NyaWJlPgorICAgICAgPHVuc3Vic2NyaWJlPmFubm91bmNlLXVuc3Vic2NyaWJlQGFwYWNoZS5vcmc8L3Vuc3Vic2NyaWJlPgorICAgICAgPHBvc3Q+YW5ub3VuY2VAYXBhY2hlLm9yZzwvcG9zdD4KKyAgICAgIDxhcmNoaXZlPmh0dHA6Ly9tYWlsLWFyY2hpdmVzLmFwYWNoZS5vcmcvbW9kX21ib3gvd3d3LWFubm91bmNlLzwvYXJjaGl2ZT4KKyAgICA8L21haWxpbmdMaXN0PgorICA8L21haWxpbmdMaXN0cz4KKworICA8cHJlcmVxdWlzaXRlcz48IS0tIGp1c3QgZm9yIGluZm9ybWF0aW9uOiBub3QgaW5oZXJpdGVkIGluIGNoaWxkIHBvbXMgLS0+CisgICAgPG1hdmVuPjIuMi4xPC9tYXZlbj48IS0tIHByZXJlcXVpc2l0ZSBvZiBzb21lIHBsdWdpbnMgLS0+CisgIDwvcHJlcmVxdWlzaXRlcz4KKworICA8c2NtPgorICAgIDxjb25uZWN0aW9uPnNjbTpzdm46aHR0cDovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2FzZi9tYXZlbi9wb20vdGFncy9hcGFjaGUtMTU8L2Nvbm5lY3Rpb24+CisgICAgPGRldmVsb3BlckNvbm5lY3Rpb24+c2NtOnN2bjpodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2FzZi9tYXZlbi9wb20vdGFncy9hcGFjaGUtMTU8L2RldmVsb3BlckNvbm5lY3Rpb24+CisgICAgPHVybD5odHRwOi8vc3ZuLmFwYWNoZS5vcmcvdmlld3ZjL21hdmVuL3BvbS90YWdzL2FwYWNoZS0xNTwvdXJsPgorICA8L3NjbT4KKworICA8ZGlzdHJpYnV0aW9uTWFuYWdlbWVudD4KKyAgICA8cmVwb3NpdG9yeT4KKyAgICAgIDxpZD5hcGFjaGUucmVsZWFzZXMuaHR0cHM8L2lkPgorICAgICAgPG5hbWU+QXBhY2hlIFJlbGVhc2UgRGlzdHJpYnV0aW9uIFJlcG9zaXRvcnk8L25hbWU+CisgICAgICA8dXJsPmh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NlcnZpY2UvbG9jYWwvc3RhZ2luZy9kZXBsb3kvbWF2ZW4yPC91cmw+CisgICAgPC9yZXBvc2l0b3J5PgorICAgIDxzbmFwc2hvdFJlcG9zaXRvcnk+CisgICAgICA8aWQ+YXBhY2hlLnNuYXBzaG90cy5odHRwczwvaWQ+CisgICAgICA8bmFtZT4ke2Rpc3RNZ210U25hcHNob3RzTmFtZX08L25hbWU+CisgICAgICA8dXJsPiR7ZGlzdE1nbXRTbmFwc2hvdHNVcmx9PC91cmw+CisgICAgPC9zbmFwc2hvdFJlcG9zaXRvcnk+CisgIDwvZGlzdHJpYnV0aW9uTWFuYWdlbWVudD4KKworICA8cHJvcGVydGllcz4KKyAgICA8ZGlzdE1nbXRTbmFwc2hvdHNOYW1lPkFwYWNoZSBEZXZlbG9wbWVudCBTbmFwc2hvdCBSZXBvc2l0b3J5PC9kaXN0TWdtdFNuYXBzaG90c05hbWU+CisgICAgPGRpc3RNZ210U25hcHNob3RzVXJsPmh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL3NuYXBzaG90czwvZGlzdE1nbXRTbmFwc2hvdHNVcmw+CisgICAgPG9yZ2FuaXphdGlvbi5sb2dvPmh0dHA6Ly93d3cuYXBhY2hlLm9yZy9pbWFnZXMvYXNmX2xvZ29fd2lkZS5naWY8L29yZ2FuaXphdGlvbi5sb2dvPgorICAgIDxwcm9qZWN0LmJ1aWxkLnNvdXJjZUVuY29kaW5nPlVURi04PC9wcm9qZWN0LmJ1aWxkLnNvdXJjZUVuY29kaW5nPgorICAgIDxwcm9qZWN0LnJlcG9ydGluZy5vdXRwdXRFbmNvZGluZz5VVEYtODwvcHJvamVjdC5yZXBvcnRpbmcub3V0cHV0RW5jb2Rpbmc+CisgICAgPHNvdXJjZVJlbGVhc2VBc3NlbWJseURlc2NyaXB0b3I+c291cmNlLXJlbGVhc2U8L3NvdXJjZVJlbGVhc2VBc3NlbWJseURlc2NyaXB0b3I+CisgICAgPGdwZy51c2VhZ2VudD50cnVlPC9ncGcudXNlYWdlbnQ+CisgICAgPGFyZ3VtZW50cyAvPgorICAgIDwhLS0gU3BlY2lmeSB0aGUgZGVmYXVsdCBjb21waWxlciBzb3VyY2UvdGFyZ2V0IGFzIDEuNCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgLS0+CisgICAgPG1hdmVuLmNvbXBpbGVyLnNvdXJjZT4xLjQ8L21hdmVuLmNvbXBpbGVyLnNvdXJjZT4KKyAgICA8bWF2ZW4uY29tcGlsZXIudGFyZ2V0PjEuNDwvbWF2ZW4uY29tcGlsZXIudGFyZ2V0PiAgICAKKyAgPC9wcm9wZXJ0aWVzPgorCisgIDxyZXBvc2l0b3JpZXM+CisgICAgPHJlcG9zaXRvcnk+CisgICAgICA8aWQ+YXBhY2hlLnNuYXBzaG90czwvaWQ+CisgICAgICA8bmFtZT5BcGFjaGUgU25hcHNob3QgUmVwb3NpdG9yeTwvbmFtZT4KKyAgICAgIDx1cmw+aHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHM8L3VybD4KKyAgICAgIDxyZWxlYXNlcz4KKyAgICAgICAgPGVuYWJsZWQ+ZmFsc2U8L2VuYWJsZWQ+CisgICAgICA8L3JlbGVhc2VzPgorICAgIDwvcmVwb3NpdG9yeT4KKyAgPC9yZXBvc2l0b3JpZXM+CisKKyAgPGJ1aWxkPgorICAgIDxwbHVnaW5NYW5hZ2VtZW50PgorICAgICAgPHBsdWdpbnM+CisgICAgICAgIDwhLS0gc2V0IHZlcnNpb25zIG9mIGNvbW1vbiBwbHVnaW5zIGZvciByZXByb2R1Y2liaWxpdHksIG9yZGVyZWQgYWxwaGFiZXRpY2FsbHkgLS0+CisgICAgICAgIDxwbHVnaW4+CisgICAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPgorICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLWFudHJ1bi1wbHVnaW48L2FydGlmYWN0SWQ+CisgICAgICAgICAgPHZlcnNpb24+MS43PC92ZXJzaW9uPgorICAgICAgICA8L3BsdWdpbj4KKyAgICAgICAgPHBsdWdpbj4KKyAgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+CisgICAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tYXNzZW1ibHktcGx1Z2luPC9hcnRpZmFjdElkPgorICAgICAgICAgIDx2ZXJzaW9uPjIuNC4xPC92ZXJzaW9uPgorICAgICAgICA8L3BsdWdpbj4KKyAgICAgICAgPHBsdWdpbj4KKyAgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+CisgICAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tY2xlYW4tcGx1Z2luPC9hcnRpZmFjdElkPgorICAgICAgICAgIDx2ZXJzaW9uPjIuNTwvdmVyc2lvbj4KKyAgICAgICAgPC9wbHVnaW4+CisgICAgICAgIDxwbHVnaW4+CisgICAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPgorICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLWNvbXBpbGVyLXBsdWdpbjwvYXJ0aWZhY3RJZD4KKyAgICAgICAgICA8dmVyc2lvbj4zLjE8L3ZlcnNpb24+CisgICAgICAgIDwvcGx1Z2luPgorICAgICAgICA8cGx1Z2luPgorICAgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4KKyAgICAgICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1kZXBlbmRlbmN5LXBsdWdpbjwvYXJ0aWZhY3RJZD4KKyAgICAgICAgICA8dmVyc2lvbj4yLjg8L3ZlcnNpb24+CisgICAgICAgIDwvcGx1Z2luPgorICAgICAgICA8cGx1Z2luPgorICAgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4KKyAgICAgICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1kZXBsb3ktcGx1Z2luPC9hcnRpZmFjdElkPgorICAgICAgICAgIDx2ZXJzaW9uPjIuOC4yPC92ZXJzaW9uPgorICAgICAgICA8L3BsdWdpbj4KKyAgICAgICAgPHBsdWdpbj4KKyAgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+CisgICAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tZG9jY2stcGx1Z2luPC9hcnRpZmFjdElkPgorICAgICAgICAgIDx2ZXJzaW9uPjEuMDwvdmVyc2lvbj4KKyAgICAgICAgPC9wbHVnaW4+CisgICAgICAgIDxwbHVnaW4+CisgICAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPgorICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLWVuZm9yY2VyLXBsdWdpbjwvYXJ0aWZhY3RJZD4KKyAgICAgICAgICA8dmVyc2lvbj4xLjMuMTwvdmVyc2lvbj4KKyAgICAgICAgPC9wbHVnaW4+CisgICAgICAgIDxwbHVnaW4+CisgICAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPgorICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLWZhaWxzYWZlLXBsdWdpbjwvYXJ0aWZhY3RJZD4KKyAgICAgICAgICA8dmVyc2lvbj4yLjE3PC92ZXJzaW9uPgorICAgICAgICA8L3BsdWdpbj4KKyAgICAgICAgPHBsdWdpbj4KKyAgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+CisgICAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tZ3BnLXBsdWdpbjwvYXJ0aWZhY3RJZD4KKyAgICAgICAgICA8dmVyc2lvbj4xLjU8L3ZlcnNpb24+CisgICAgICAgIDwvcGx1Z2luPgorICAgICAgICA8cGx1Z2luPgorICAgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4KKyAgICAgICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1pbnN0YWxsLXBsdWdpbjwvYXJ0aWZhY3RJZD4KKyAgICAgICAgICA8dmVyc2lvbj4yLjUuMjwvdmVyc2lvbj4KKyAgICAgICAgPC9wbHVnaW4+CisgICAgICAgIDxwbHVnaW4+CisgICAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPgorICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLWludm9rZXItcGx1Z2luPC9hcnRpZmFjdElkPgorICAgICAgICAgIDx2ZXJzaW9uPjEuOTwvdmVyc2lvbj4KKyAgICAgICAgPC9wbHVnaW4+CisgICAgICAgIDxwbHVnaW4+CisgICAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPgorICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLWphci1wbHVnaW48L2FydGlmYWN0SWQ+CisgICAgICAgICAgPHZlcnNpb24+Mi41PC92ZXJzaW9uPgorICAgICAgICAgIDxjb25maWd1cmF0aW9uPgorICAgICAgICAgICAgPGFyY2hpdmU+CisgICAgICAgICAgICAgIDxtYW5pZmVzdD4KKyAgICAgICAgICAgICAgICA8YWRkRGVmYXVsdFNwZWNpZmljYXRpb25FbnRyaWVzPnRydWU8L2FkZERlZmF1bHRTcGVjaWZpY2F0aW9uRW50cmllcz4KKyAgICAgICAgICAgICAgICA8YWRkRGVmYXVsdEltcGxlbWVudGF0aW9uRW50cmllcz50cnVlPC9hZGREZWZhdWx0SW1wbGVtZW50YXRpb25FbnRyaWVzPgorICAgICAgICAgICAgICA8L21hbmlmZXN0PgorICAgICAgICAgICAgPC9hcmNoaXZlPgorICAgICAgICAgIDwvY29uZmlndXJhdGlvbj4KKyAgICAgICAgPC9wbHVnaW4+CisgICAgICAgIDxwbHVnaW4+CisgICAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPgorICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLWphdmFkb2MtcGx1Z2luPC9hcnRpZmFjdElkPgorICAgICAgICAgIDx2ZXJzaW9uPjIuOS4xPC92ZXJzaW9uPgorICAgICAgICA8L3BsdWdpbj4KKyAgICAgICAgPHBsdWdpbj4KKyAgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+CisgICAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tcGx1Z2luLXBsdWdpbjwvYXJ0aWZhY3RJZD4KKyAgICAgICAgICA8dmVyc2lvbj4zLjM8L3ZlcnNpb24+CisgICAgICAgIDwvcGx1Z2luPgorICAgICAgICA8IS0tIFNUQVJUIFNOSVBQRVQ6IHJlbGVhc2UtcGx1Z2luLWNvbmZpZ3VyYXRpb24gLS0+CisgICAgICAgIDxwbHVnaW4+CisgICAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPgorICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLXJlbGVhc2UtcGx1Z2luPC9hcnRpZmFjdElkPgorICAgICAgICAgIDx2ZXJzaW9uPjIuNS4xPC92ZXJzaW9uPgorICAgICAgICAgIDxjb25maWd1cmF0aW9uPgorICAgICAgICAgICAgPHVzZVJlbGVhc2VQcm9maWxlPmZhbHNlPC91c2VSZWxlYXNlUHJvZmlsZT4KKyAgICAgICAgICAgIDxnb2Fscz5kZXBsb3k8L2dvYWxzPgorICAgICAgICAgICAgPGFyZ3VtZW50cz4tUGFwYWNoZS1yZWxlYXNlICR7YXJndW1lbnRzfTwvYXJndW1lbnRzPgorICAgICAgICAgICAgPHdhaXRCZWZvcmVUYWdnaW5nPjEwPC93YWl0QmVmb3JlVGFnZ2luZz4KKyAgICAgICAgICA8L2NvbmZpZ3VyYXRpb24+CisgICAgICAgIDwvcGx1Z2luPgorICAgICAgICA8IS0tIEVORCBTTklQUEVUOiByZWxlYXNlLXBsdWdpbi1jb25maWd1cmF0aW9uIC0tPgorICAgICAgICA8cGx1Z2luPgorICAgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4KKyAgICAgICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1yZW1vdGUtcmVzb3VyY2VzLXBsdWdpbjwvYXJ0aWZhY3RJZD4KKyAgICAgICAgICA8dmVyc2lvbj4xLjU8L3ZlcnNpb24+CisgICAgICAgIDwvcGx1Z2luPgorICAgICAgICA8cGx1Z2luPgorICAgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4KKyAgICAgICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1yZXNvdXJjZXMtcGx1Z2luPC9hcnRpZmFjdElkPgorICAgICAgICAgIDx2ZXJzaW9uPjIuNjwvdmVyc2lvbj4KKyAgICAgICAgPC9wbHVnaW4+CisgICAgICAgIDxwbHVnaW4+CisgICAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPgorICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLXNjbS1wbHVnaW48L2FydGlmYWN0SWQ+CisgICAgICAgICAgPHZlcnNpb24+MS45LjI8L3ZlcnNpb24+CisgICAgICAgIDwvcGx1Z2luPgorICAgICAgICA8cGx1Z2luPgorICAgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4KKyAgICAgICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1zY20tcHVibGlzaC1wbHVnaW48L2FydGlmYWN0SWQ+CisgICAgICAgICAgPHZlcnNpb24+MS4wLWJldGEtMjwvdmVyc2lvbj48IS0tIGxhc3QgdmVyc2lvbiBjb21wYXRpYmxlIHdpdGggTWF2ZW4gMjogbGF0ZXN0IGlzIGNvbmZpZ3VyZWQgaW4gcHJvZmlsZSAtLT4KKyAgICAgICAgPC9wbHVnaW4+CisgICAgICAgIDxwbHVnaW4+CisgICAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPgorICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLXNpdGUtcGx1Z2luPC9hcnRpZmFjdElkPgorICAgICAgICAgIDx2ZXJzaW9uPjMuNDwvdmVyc2lvbj4KKyAgICAgICAgICA8ZGVwZW5kZW5jaWVzPjwhLS0gVE9ETyByZW1vdmUgd2hlbiB1cGdyYWRpbmcgbS1zaXRlLXAgdG8gMy40LjE6IHNlZSBNU0lURS03MjQgLS0+CisgICAgICAgICAgICA8ZGVwZW5kZW5jeT4KKyAgICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbjwvZ3JvdXBJZD4KKyAgICAgICAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tYXJjaGl2ZXI8L2FydGlmYWN0SWQ+CisgICAgICAgICAgICAgIDx2ZXJzaW9uPjIuNTwvdmVyc2lvbj4KKyAgICAgICAgICAgIDwvZGVwZW5kZW5jeT4KKyAgICAgICAgICAgIDxkZXBlbmRlbmN5PgorICAgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuY29kZWhhdXMucGxleHVzPC9ncm91cElkPgorICAgICAgICAgICAgICA8YXJ0aWZhY3RJZD5wbGV4dXMtYXJjaGl2ZXI8L2FydGlmYWN0SWQ+CisgICAgICAgICAgICAgIDx2ZXJzaW9uPjIuNC40PC92ZXJzaW9uPgorICAgICAgICAgICAgPC9kZXBlbmRlbmN5PgorICAgICAgICAgIDwvZGVwZW5kZW5jaWVzPgorICAgICAgICA8L3BsdWdpbj4KKyAgICAgICAgPHBsdWdpbj4KKyAgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+CisgICAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tc291cmNlLXBsdWdpbjwvYXJ0aWZhY3RJZD4KKyAgICAgICAgICA8dmVyc2lvbj4yLjM8L3ZlcnNpb24+CisgICAgICAgIDwvcGx1Z2luPgorICAgICAgICA8cGx1Z2luPgorICAgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4KKyAgICAgICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1zdXJlZmlyZS1wbHVnaW48L2FydGlmYWN0SWQ+CisgICAgICAgICAgPHZlcnNpb24+Mi4xNzwvdmVyc2lvbj48IS0tIGtlZXAgbWF2ZW4tZmFpbHNhZmUtcGx1Z2luIGluIHN5bmMgLS0+CisgICAgICAgIDwvcGx1Z2luPgorICAgICAgICA8cGx1Z2luPgorICAgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUucmF0PC9ncm91cElkPgorICAgICAgICAgIDxhcnRpZmFjdElkPmFwYWNoZS1yYXQtcGx1Z2luPC9hcnRpZmFjdElkPgorICAgICAgICAgIDx2ZXJzaW9uPjAuMTE8L3ZlcnNpb24+CisgICAgICAgIDwvcGx1Z2luPgorICAgICAgICA8cGx1Z2luPgorICAgICAgICAgIDxncm91cElkPm9yZy5jb2RlaGF1cy5tb2pvPC9ncm91cElkPgorICAgICAgICAgIDxhcnRpZmFjdElkPmNsaXJyLW1hdmVuLXBsdWdpbjwvYXJ0aWZhY3RJZD4KKyAgICAgICAgICA8dmVyc2lvbj4yLjYuMTwvdmVyc2lvbj4KKyAgICAgICAgPC9wbHVnaW4+CisgICAgICA8L3BsdWdpbnM+CisgICAgPC9wbHVnaW5NYW5hZ2VtZW50PgorICAgIDxwbHVnaW5zPgorICAgICAgPCEtLSBXZSB3YW50IHRvIHBhY2thZ2UgdXAgbGljZW5zZSByZXNvdXJjZXMgaW4gdGhlIEpBUnMgcHJvZHVjZWQgLS0+CisgICAgICA8cGx1Z2luPgorICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+CisgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLXJlbW90ZS1yZXNvdXJjZXMtcGx1Z2luPC9hcnRpZmFjdElkPgorICAgICAgICA8ZXhlY3V0aW9ucz4KKyAgICAgICAgICA8ZXhlY3V0aW9uPgorICAgICAgICAgICAgPGdvYWxzPgorICAgICAgICAgICAgICA8Z29hbD5wcm9jZXNzPC9nb2FsPgorICAgICAgICAgICAgPC9nb2Fscz4KKyAgICAgICAgICAgIDxjb25maWd1cmF0aW9uPgorICAgICAgICAgICAgICA8cmVzb3VyY2VCdW5kbGVzPgorICAgICAgICAgICAgICAgIDxyZXNvdXJjZUJ1bmRsZT5vcmcuYXBhY2hlOmFwYWNoZS1qYXItcmVzb3VyY2UtYnVuZGxlOjEuNDwvcmVzb3VyY2VCdW5kbGU+CisgICAgICAgICAgICAgIDwvcmVzb3VyY2VCdW5kbGVzPgorICAgICAgICAgICAgPC9jb25maWd1cmF0aW9uPgorICAgICAgICAgIDwvZXhlY3V0aW9uPgorICAgICAgICA8L2V4ZWN1dGlvbnM+CisgICAgICA8L3BsdWdpbj4KKyAgICA8L3BsdWdpbnM+CisgIDwvYnVpbGQ+CisKKyAgPHByb2ZpbGVzPgorICAgIDwhLS0gU1RBUlQgU05JUFBFVDogcmVsZWFzZS1wcm9maWxlIC0tPgorICAgIDxwcm9maWxlPgorICAgICAgPGlkPmFwYWNoZS1yZWxlYXNlPC9pZD4KKyAgICAgIDxidWlsZD4KKyAgICAgICAgPHBsdWdpbnM+CisgICAgICAgICAgPCEtLSBDcmVhdGUgYSBzb3VyY2UtcmVsZWFzZSBhcnRpZmFjdCB0aGF0IGNvbnRhaW5zIHRoZSBmdWxseSBidWlsZGFibGUgCisgICAgICAgICAgICAgICBwcm9qZWN0IGRpcmVjdG9yeSBzb3VyY2Ugc3RydWN0dXJlLiBUaGlzIGlzIHRoZSBhcnRpZmFjdCB3aGljaCBpcyAKKyAgICAgICAgICAgICAgIHRoZSBvZmZpY2lhbCBzdWJqZWN0IG9mIGFueSByZWxlYXNlIHZvdGUuIC0tPgorICAgICAgICAgIDxwbHVnaW4+CisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1hc3NlbWJseS1wbHVnaW48L2FydGlmYWN0SWQ+CisgICAgICAgICAgICA8ZGVwZW5kZW5jaWVzPgorICAgICAgICAgICAgICA8ZGVwZW5kZW5jeT4KKyAgICAgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLmFwYWNoZS5yZXNvdXJjZXM8L2dyb3VwSWQ+CisgICAgICAgICAgICAgICAgPGFydGlmYWN0SWQ+YXBhY2hlLXNvdXJjZS1yZWxlYXNlLWFzc2VtYmx5LWRlc2NyaXB0b3I8L2FydGlmYWN0SWQ+CisgICAgICAgICAgICAgICAgPHZlcnNpb24+MS4wLjQ8L3ZlcnNpb24+CisgICAgICAgICAgICAgIDwvZGVwZW5kZW5jeT4KKyAgICAgICAgICAgIDwvZGVwZW5kZW5jaWVzPgorICAgICAgICAgICAgPGV4ZWN1dGlvbnM+CisgICAgICAgICAgICAgIDxleGVjdXRpb24+CisgICAgICAgICAgICAgICAgPGlkPnNvdXJjZS1yZWxlYXNlLWFzc2VtYmx5PC9pZD4KKyAgICAgICAgICAgICAgICA8cGhhc2U+cGFja2FnZTwvcGhhc2U+CisgICAgICAgICAgICAgICAgPGdvYWxzPgorICAgICAgICAgICAgICAgICAgPGdvYWw+c2luZ2xlPC9nb2FsPgorICAgICAgICAgICAgICAgIDwvZ29hbHM+CisgICAgICAgICAgICAgICAgPGNvbmZpZ3VyYXRpb24+CisgICAgICAgICAgICAgICAgICA8cnVuT25seUF0RXhlY3V0aW9uUm9vdD50cnVlPC9ydW5Pbmx5QXRFeGVjdXRpb25Sb290PgorICAgICAgICAgICAgICAgICAgPGRlc2NyaXB0b3JSZWZzPgorICAgICAgICAgICAgICAgICAgICA8ZGVzY3JpcHRvclJlZj4ke3NvdXJjZVJlbGVhc2VBc3NlbWJseURlc2NyaXB0b3J9PC9kZXNjcmlwdG9yUmVmPgorICAgICAgICAgICAgICAgICAgPC9kZXNjcmlwdG9yUmVmcz4KKyAgICAgICAgICAgICAgICAgIDx0YXJMb25nRmlsZU1vZGU+Z251PC90YXJMb25nRmlsZU1vZGU+CisgICAgICAgICAgICAgICAgPC9jb25maWd1cmF0aW9uPgorICAgICAgICAgICAgICA8L2V4ZWN1dGlvbj4KKyAgICAgICAgICAgIDwvZXhlY3V0aW9ucz4KKyAgICAgICAgICA8L3BsdWdpbj4KKyAgICAgICAgICA8IS0tIFdlIHdhbnQgdG8gZGVwbG95IHRoZSBhcnRpZmFjdCB0byBhIHN0YWdpbmcgbG9jYXRpb24gZm9yIHBlcnVzYWwgLS0+CisgICAgICAgICAgPHBsdWdpbj4KKyAgICAgICAgICAgIDxpbmhlcml0ZWQ+dHJ1ZTwvaW5oZXJpdGVkPgorICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPgorICAgICAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tZGVwbG95LXBsdWdpbjwvYXJ0aWZhY3RJZD4KKyAgICAgICAgICAgIDxjb25maWd1cmF0aW9uPgorICAgICAgICAgICAgICA8dXBkYXRlUmVsZWFzZUluZm8+dHJ1ZTwvdXBkYXRlUmVsZWFzZUluZm8+CisgICAgICAgICAgICA8L2NvbmZpZ3VyYXRpb24+CisgICAgICAgICAgPC9wbHVnaW4+CisgICAgICAgICAgPHBsdWdpbj4KKyAgICAgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4KKyAgICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLXNvdXJjZS1wbHVnaW48L2FydGlmYWN0SWQ+CisgICAgICAgICAgICA8ZXhlY3V0aW9ucz4KKyAgICAgICAgICAgICAgPGV4ZWN1dGlvbj4KKyAgICAgICAgICAgICAgICA8aWQ+YXR0YWNoLXNvdXJjZXM8L2lkPgorICAgICAgICAgICAgICAgIDxnb2Fscz4KKyAgICAgICAgICAgICAgICAgIDxnb2FsPmphcjwvZ29hbD4KKyAgICAgICAgICAgICAgICA8L2dvYWxzPgorICAgICAgICAgICAgICA8L2V4ZWN1dGlvbj4KKyAgICAgICAgICAgIDwvZXhlY3V0aW9ucz4KKyAgICAgICAgICA8L3BsdWdpbj4KKyAgICAgICAgICA8cGx1Z2luPgorICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPgorICAgICAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tamF2YWRvYy1wbHVnaW48L2FydGlmYWN0SWQ+CisgICAgICAgICAgICA8ZXhlY3V0aW9ucz4KKyAgICAgICAgICAgICAgPGV4ZWN1dGlvbj4KKyAgICAgICAgICAgICAgICA8aWQ+YXR0YWNoLWphdmFkb2NzPC9pZD4KKyAgICAgICAgICAgICAgICA8Z29hbHM+CisgICAgICAgICAgICAgICAgICA8Z29hbD5qYXI8L2dvYWw+CisgICAgICAgICAgICAgICAgPC9nb2Fscz4KKyAgICAgICAgICAgICAgPC9leGVjdXRpb24+CisgICAgICAgICAgICA8L2V4ZWN1dGlvbnM+CisgICAgICAgICAgPC9wbHVnaW4+CisgICAgICAgICAgPCEtLSBXZSB3YW50IHRvIHNpZ24gdGhlIGFydGlmYWN0LCB0aGUgUE9NLCBhbmQgYWxsIGF0dGFjaGVkIGFydGlmYWN0cyAtLT4KKyAgICAgICAgICA8cGx1Z2luPgorICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPgorICAgICAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tZ3BnLXBsdWdpbjwvYXJ0aWZhY3RJZD4KKyAgICAgICAgICAgIDxleGVjdXRpb25zPgorICAgICAgICAgICAgICA8ZXhlY3V0aW9uPgorICAgICAgICAgICAgICAgIDxnb2Fscz4KKyAgICAgICAgICAgICAgICAgIDxnb2FsPnNpZ248L2dvYWw+CisgICAgICAgICAgICAgICAgPC9nb2Fscz4KKyAgICAgICAgICAgICAgPC9leGVjdXRpb24+CisgICAgICAgICAgICA8L2V4ZWN1dGlvbnM+CisgICAgICAgICAgPC9wbHVnaW4+CisgICAgICAgIDwvcGx1Z2lucz4KKyAgICAgIDwvYnVpbGQ+CisgICAgPC9wcm9maWxlPgorICAgIDwhLS0gRU5EIFNOSVBQRVQ6IHJlbGVhc2UtcHJvZmlsZSAtLT4KKworICAgIDxwcm9maWxlPgorICAgICAgPGlkPm1hdmVuLTM8L2lkPgorICAgICAgPGFjdGl2YXRpb24+CisgICAgICAgIDxmaWxlPgorICAgICAgICAgIDwhLS0gIFRoaXMgZW1wbG95cyB0aGF0IHRoZSBiYXNlZGlyIGV4cHJlc3Npb24gaXMgb25seSByZWNvZ25pemVkIGJ5IE1hdmVuIDMueCAoc2VlIE1ORy0yMzYzKSAtLT4KKyAgICAgICAgICA8ZXhpc3RzPiR7YmFzZWRpcn08L2V4aXN0cz4KKyAgICAgICAgPC9maWxlPgorICAgICAgPC9hY3RpdmF0aW9uPgorICAgICAgPGJ1aWxkPgorICAgICAgICA8cGx1Z2luTWFuYWdlbWVudD4KKyAgICAgICAgICA8cGx1Z2lucz4KKyAgICAgICAgICAgIDxwbHVnaW4+CisgICAgICAgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4KKyAgICAgICAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tc2NtLXB1Ymxpc2gtcGx1Z2luPC9hcnRpZmFjdElkPgorICAgICAgICAgICAgICA8dmVyc2lvbj4xLjE8L3ZlcnNpb24+CisgICAgICAgICAgICA8L3BsdWdpbj4KKyAgICAgICAgICA8L3BsdWdpbnM+CisgICAgICAgIDwvcGx1Z2luTWFuYWdlbWVudD4KKyAgICAgICAgPHBsdWdpbnM+CisgICAgICAgICAgPHBsdWdpbj4KKyAgICAgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4KKyAgICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLXNpdGUtcGx1Z2luPC9hcnRpZmFjdElkPgorICAgICAgICAgICAgPGV4ZWN1dGlvbnM+CisgICAgICAgICAgICAgIDxleGVjdXRpb24+CisgICAgICAgICAgICAgICAgPGlkPmF0dGFjaC1kZXNjcmlwdG9yPC9pZD4KKyAgICAgICAgICAgICAgICA8Z29hbHM+CisgICAgICAgICAgICAgICAgICA8Z29hbD5hdHRhY2gtZGVzY3JpcHRvcjwvZ29hbD4KKyAgICAgICAgICAgICAgICA8L2dvYWxzPgorICAgICAgICAgICAgICA8L2V4ZWN1dGlvbj4KKyAgICAgICAgICAgIDwvZXhlY3V0aW9ucz4KKyAgICAgICAgICA8L3BsdWdpbj4KKyAgICAgICAgPC9wbHVnaW5zPgorICAgICAgPC9idWlsZD4KKyAgICA8L3Byb2ZpbGU+ICAgIAorICA8L3Byb2ZpbGVzPgorPC9wcm9qZWN0PgorCmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvYXBhY2hlL2FwYWNoZS8xNS9hcGFjaGUtMTUucG9tLnNoYTEgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvYXBhY2hlL2FwYWNoZS8xNS9hcGFjaGUtMTUucG9tLnNoYTEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzVhYzg4ZAotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9hcGFjaGUvYXBhY2hlLzE1L2FwYWNoZS0xNS5wb20uc2hhMQpAQCAtMCwwICsxIEBACis5NWM3MDM3NDgxNzE5NGNhYmZlZWM0MTBmZTcwYzNhNmI4MzJiYWZlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2FwYWNoZS9jb21tb25zL2NvbW1vbnMtbGFuZzMvMy4zLjIvTk9USUNFIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2FwYWNoZS9jb21tb25zL2NvbW1vbnMtbGFuZzMvMy4zLjIvTk9USUNFCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ2NDU2OTUKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvYXBhY2hlL2NvbW1vbnMvY29tbW9ucy1sYW5nMy8zLjMuMi9OT1RJQ0UKQEAgLTAsMCArMSwyMDIgQEAKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXBhY2hlIExpY2Vuc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb24gMi4wLCBKYW51YXJ5IDIwMDQKKyAgICAgICAgICAgICAgICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy8KKworICAgVEVSTVMgQU5EIENPTkRJVElPTlMgRk9SIFVTRSwgUkVQUk9EVUNUSU9OLCBBTkQgRElTVFJJQlVUSU9OCisKKyAgIDEuIERlZmluaXRpb25zLgorCisgICAgICAiTGljZW5zZSIgc2hhbGwgbWVhbiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZm9yIHVzZSwgcmVwcm9kdWN0aW9uLAorICAgICAgYW5kIGRpc3RyaWJ1dGlvbiBhcyBkZWZpbmVkIGJ5IFNlY3Rpb25zIDEgdGhyb3VnaCA5IG9mIHRoaXMgZG9jdW1lbnQuCisKKyAgICAgICJMaWNlbnNvciIgc2hhbGwgbWVhbiB0aGUgY29weXJpZ2h0IG93bmVyIG9yIGVudGl0eSBhdXRob3JpemVkIGJ5CisgICAgICB0aGUgY29weXJpZ2h0IG93bmVyIHRoYXQgaXMgZ3JhbnRpbmcgdGhlIExpY2Vuc2UuCisKKyAgICAgICJMZWdhbCBFbnRpdHkiIHNoYWxsIG1lYW4gdGhlIHVuaW9uIG9mIHRoZSBhY3RpbmcgZW50aXR5IGFuZCBhbGwKKyAgICAgIG90aGVyIGVudGl0aWVzIHRoYXQgY29udHJvbCwgYXJlIGNvbnRyb2xsZWQgYnksIG9yIGFyZSB1bmRlciBjb21tb24KKyAgICAgIGNvbnRyb2wgd2l0aCB0aGF0IGVudGl0eS4gRm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIGRlZmluaXRpb24sCisgICAgICAiY29udHJvbCIgbWVhbnMgKGkpIHRoZSBwb3dlciwgZGlyZWN0IG9yIGluZGlyZWN0LCB0byBjYXVzZSB0aGUKKyAgICAgIGRpcmVjdGlvbiBvciBtYW5hZ2VtZW50IG9mIHN1Y2ggZW50aXR5LCB3aGV0aGVyIGJ5IGNvbnRyYWN0IG9yCisgICAgICBvdGhlcndpc2UsIG9yIChpaSkgb3duZXJzaGlwIG9mIGZpZnR5IHBlcmNlbnQgKDUwJSkgb3IgbW9yZSBvZiB0aGUKKyAgICAgIG91dHN0YW5kaW5nIHNoYXJlcywgb3IgKGlpaSkgYmVuZWZpY2lhbCBvd25lcnNoaXAgb2Ygc3VjaCBlbnRpdHkuCisKKyAgICAgICJZb3UiIChvciAiWW91ciIpIHNoYWxsIG1lYW4gYW4gaW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkKKyAgICAgIGV4ZXJjaXNpbmcgcGVybWlzc2lvbnMgZ3JhbnRlZCBieSB0aGlzIExpY2Vuc2UuCisKKyAgICAgICJTb3VyY2UiIGZvcm0gc2hhbGwgbWVhbiB0aGUgcHJlZmVycmVkIGZvcm0gZm9yIG1ha2luZyBtb2RpZmljYXRpb25zLAorICAgICAgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byBzb2Z0d2FyZSBzb3VyY2UgY29kZSwgZG9jdW1lbnRhdGlvbgorICAgICAgc291cmNlLCBhbmQgY29uZmlndXJhdGlvbiBmaWxlcy4KKworICAgICAgIk9iamVjdCIgZm9ybSBzaGFsbCBtZWFuIGFueSBmb3JtIHJlc3VsdGluZyBmcm9tIG1lY2hhbmljYWwKKyAgICAgIHRyYW5zZm9ybWF0aW9uIG9yIHRyYW5zbGF0aW9uIG9mIGEgU291cmNlIGZvcm0sIGluY2x1ZGluZyBidXQKKyAgICAgIG5vdCBsaW1pdGVkIHRvIGNvbXBpbGVkIG9iamVjdCBjb2RlLCBnZW5lcmF0ZWQgZG9jdW1lbnRhdGlvbiwKKyAgICAgIGFuZCBjb252ZXJzaW9ucyB0byBvdGhlciBtZWRpYSB0eXBlcy4KKworICAgICAgIldvcmsiIHNoYWxsIG1lYW4gdGhlIHdvcmsgb2YgYXV0aG9yc2hpcCwgd2hldGhlciBpbiBTb3VyY2Ugb3IKKyAgICAgIE9iamVjdCBmb3JtLCBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgTGljZW5zZSwgYXMgaW5kaWNhdGVkIGJ5IGEKKyAgICAgIGNvcHlyaWdodCBub3RpY2UgdGhhdCBpcyBpbmNsdWRlZCBpbiBvciBhdHRhY2hlZCB0byB0aGUgd29yaworICAgICAgKGFuIGV4YW1wbGUgaXMgcHJvdmlkZWQgaW4gdGhlIEFwcGVuZGl4IGJlbG93KS4KKworICAgICAgIkRlcml2YXRpdmUgV29ya3MiIHNoYWxsIG1lYW4gYW55IHdvcmssIHdoZXRoZXIgaW4gU291cmNlIG9yIE9iamVjdAorICAgICAgZm9ybSwgdGhhdCBpcyBiYXNlZCBvbiAob3IgZGVyaXZlZCBmcm9tKSB0aGUgV29yayBhbmQgZm9yIHdoaWNoIHRoZQorICAgICAgZWRpdG9yaWFsIHJldmlzaW9ucywgYW5ub3RhdGlvbnMsIGVsYWJvcmF0aW9ucywgb3Igb3RoZXIgbW9kaWZpY2F0aW9ucworICAgICAgcmVwcmVzZW50LCBhcyBhIHdob2xlLCBhbiBvcmlnaW5hbCB3b3JrIG9mIGF1dGhvcnNoaXAuIEZvciB0aGUgcHVycG9zZXMKKyAgICAgIG9mIHRoaXMgTGljZW5zZSwgRGVyaXZhdGl2ZSBXb3JrcyBzaGFsbCBub3QgaW5jbHVkZSB3b3JrcyB0aGF0IHJlbWFpbgorICAgICAgc2VwYXJhYmxlIGZyb20sIG9yIG1lcmVseSBsaW5rIChvciBiaW5kIGJ5IG5hbWUpIHRvIHRoZSBpbnRlcmZhY2VzIG9mLAorICAgICAgdGhlIFdvcmsgYW5kIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZi4KKworICAgICAgIkNvbnRyaWJ1dGlvbiIgc2hhbGwgbWVhbiBhbnkgd29yayBvZiBhdXRob3JzaGlwLCBpbmNsdWRpbmcKKyAgICAgIHRoZSBvcmlnaW5hbCB2ZXJzaW9uIG9mIHRoZSBXb3JrIGFuZCBhbnkgbW9kaWZpY2F0aW9ucyBvciBhZGRpdGlvbnMKKyAgICAgIHRvIHRoYXQgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YsIHRoYXQgaXMgaW50ZW50aW9uYWxseQorICAgICAgc3VibWl0dGVkIHRvIExpY2Vuc29yIGZvciBpbmNsdXNpb24gaW4gdGhlIFdvcmsgYnkgdGhlIGNvcHlyaWdodCBvd25lcgorICAgICAgb3IgYnkgYW4gaW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkgYXV0aG9yaXplZCB0byBzdWJtaXQgb24gYmVoYWxmIG9mCisgICAgICB0aGUgY29weXJpZ2h0IG93bmVyLiBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwgInN1Ym1pdHRlZCIKKyAgICAgIG1lYW5zIGFueSBmb3JtIG9mIGVsZWN0cm9uaWMsIHZlcmJhbCwgb3Igd3JpdHRlbiBjb21tdW5pY2F0aW9uIHNlbnQKKyAgICAgIHRvIHRoZSBMaWNlbnNvciBvciBpdHMgcmVwcmVzZW50YXRpdmVzLCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvCisgICAgICBjb21tdW5pY2F0aW9uIG9uIGVsZWN0cm9uaWMgbWFpbGluZyBsaXN0cywgc291cmNlIGNvZGUgY29udHJvbCBzeXN0ZW1zLAorICAgICAgYW5kIGlzc3VlIHRyYWNraW5nIHN5c3RlbXMgdGhhdCBhcmUgbWFuYWdlZCBieSwgb3Igb24gYmVoYWxmIG9mLCB0aGUKKyAgICAgIExpY2Vuc29yIGZvciB0aGUgcHVycG9zZSBvZiBkaXNjdXNzaW5nIGFuZCBpbXByb3ZpbmcgdGhlIFdvcmssIGJ1dAorICAgICAgZXhjbHVkaW5nIGNvbW11bmljYXRpb24gdGhhdCBpcyBjb25zcGljdW91c2x5IG1hcmtlZCBvciBvdGhlcndpc2UKKyAgICAgIGRlc2lnbmF0ZWQgaW4gd3JpdGluZyBieSB0aGUgY29weXJpZ2h0IG93bmVyIGFzICJOb3QgYSBDb250cmlidXRpb24uIgorCisgICAgICAiQ29udHJpYnV0b3IiIHNoYWxsIG1lYW4gTGljZW5zb3IgYW5kIGFueSBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eQorICAgICAgb24gYmVoYWxmIG9mIHdob20gYSBDb250cmlidXRpb24gaGFzIGJlZW4gcmVjZWl2ZWQgYnkgTGljZW5zb3IgYW5kCisgICAgICBzdWJzZXF1ZW50bHkgaW5jb3Jwb3JhdGVkIHdpdGhpbiB0aGUgV29yay4KKworICAgMi4gR3JhbnQgb2YgQ29weXJpZ2h0IExpY2Vuc2UuIFN1YmplY3QgdG8gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mCisgICAgICB0aGlzIExpY2Vuc2UsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cyB0byBZb3UgYSBwZXJwZXR1YWwsCisgICAgICB3b3JsZHdpZGUsIG5vbi1leGNsdXNpdmUsIG5vLWNoYXJnZSwgcm95YWx0eS1mcmVlLCBpcnJldm9jYWJsZQorICAgICAgY29weXJpZ2h0IGxpY2Vuc2UgdG8gcmVwcm9kdWNlLCBwcmVwYXJlIERlcml2YXRpdmUgV29ya3Mgb2YsCisgICAgICBwdWJsaWNseSBkaXNwbGF5LCBwdWJsaWNseSBwZXJmb3JtLCBzdWJsaWNlbnNlLCBhbmQgZGlzdHJpYnV0ZSB0aGUKKyAgICAgIFdvcmsgYW5kIHN1Y2ggRGVyaXZhdGl2ZSBXb3JrcyBpbiBTb3VyY2Ugb3IgT2JqZWN0IGZvcm0uCisKKyAgIDMuIEdyYW50IG9mIFBhdGVudCBMaWNlbnNlLiBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgorICAgICAgdGhpcyBMaWNlbnNlLCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieSBncmFudHMgdG8gWW91IGEgcGVycGV0dWFsLAorICAgICAgd29ybGR3aWRlLCBub24tZXhjbHVzaXZlLCBuby1jaGFyZ2UsIHJveWFsdHktZnJlZSwgaXJyZXZvY2FibGUKKyAgICAgIChleGNlcHQgYXMgc3RhdGVkIGluIHRoaXMgc2VjdGlvbikgcGF0ZW50IGxpY2Vuc2UgdG8gbWFrZSwgaGF2ZSBtYWRlLAorICAgICAgdXNlLCBvZmZlciB0byBzZWxsLCBzZWxsLCBpbXBvcnQsIGFuZCBvdGhlcndpc2UgdHJhbnNmZXIgdGhlIFdvcmssCisgICAgICB3aGVyZSBzdWNoIGxpY2Vuc2UgYXBwbGllcyBvbmx5IHRvIHRob3NlIHBhdGVudCBjbGFpbXMgbGljZW5zYWJsZQorICAgICAgYnkgc3VjaCBDb250cmlidXRvciB0aGF0IGFyZSBuZWNlc3NhcmlseSBpbmZyaW5nZWQgYnkgdGhlaXIKKyAgICAgIENvbnRyaWJ1dGlvbihzKSBhbG9uZSBvciBieSBjb21iaW5hdGlvbiBvZiB0aGVpciBDb250cmlidXRpb24ocykKKyAgICAgIHdpdGggdGhlIFdvcmsgdG8gd2hpY2ggc3VjaCBDb250cmlidXRpb24ocykgd2FzIHN1Ym1pdHRlZC4gSWYgWW91CisgICAgICBpbnN0aXR1dGUgcGF0ZW50IGxpdGlnYXRpb24gYWdhaW5zdCBhbnkgZW50aXR5IChpbmNsdWRpbmcgYQorICAgICAgY3Jvc3MtY2xhaW0gb3IgY291bnRlcmNsYWltIGluIGEgbGF3c3VpdCkgYWxsZWdpbmcgdGhhdCB0aGUgV29yaworICAgICAgb3IgYSBDb250cmlidXRpb24gaW5jb3Jwb3JhdGVkIHdpdGhpbiB0aGUgV29yayBjb25zdGl0dXRlcyBkaXJlY3QKKyAgICAgIG9yIGNvbnRyaWJ1dG9yeSBwYXRlbnQgaW5mcmluZ2VtZW50LCB0aGVuIGFueSBwYXRlbnQgbGljZW5zZXMKKyAgICAgIGdyYW50ZWQgdG8gWW91IHVuZGVyIHRoaXMgTGljZW5zZSBmb3IgdGhhdCBXb3JrIHNoYWxsIHRlcm1pbmF0ZQorICAgICAgYXMgb2YgdGhlIGRhdGUgc3VjaCBsaXRpZ2F0aW9uIGlzIGZpbGVkLgorCisgICA0LiBSZWRpc3RyaWJ1dGlvbi4gWW91IG1heSByZXByb2R1Y2UgYW5kIGRpc3RyaWJ1dGUgY29waWVzIG9mIHRoZQorICAgICAgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YgaW4gYW55IG1lZGl1bSwgd2l0aCBvciB3aXRob3V0CisgICAgICBtb2RpZmljYXRpb25zLCBhbmQgaW4gU291cmNlIG9yIE9iamVjdCBmb3JtLCBwcm92aWRlZCB0aGF0IFlvdQorICAgICAgbWVldCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisKKyAgICAgIChhKSBZb3UgbXVzdCBnaXZlIGFueSBvdGhlciByZWNpcGllbnRzIG9mIHRoZSBXb3JrIG9yCisgICAgICAgICAgRGVyaXZhdGl2ZSBXb3JrcyBhIGNvcHkgb2YgdGhpcyBMaWNlbnNlOyBhbmQKKworICAgICAgKGIpIFlvdSBtdXN0IGNhdXNlIGFueSBtb2RpZmllZCBmaWxlcyB0byBjYXJyeSBwcm9taW5lbnQgbm90aWNlcworICAgICAgICAgIHN0YXRpbmcgdGhhdCBZb3UgY2hhbmdlZCB0aGUgZmlsZXM7IGFuZAorCisgICAgICAoYykgWW91IG11c3QgcmV0YWluLCBpbiB0aGUgU291cmNlIGZvcm0gb2YgYW55IERlcml2YXRpdmUgV29ya3MKKyAgICAgICAgICB0aGF0IFlvdSBkaXN0cmlidXRlLCBhbGwgY29weXJpZ2h0LCBwYXRlbnQsIHRyYWRlbWFyaywgYW5kCisgICAgICAgICAgYXR0cmlidXRpb24gbm90aWNlcyBmcm9tIHRoZSBTb3VyY2UgZm9ybSBvZiB0aGUgV29yaywKKyAgICAgICAgICBleGNsdWRpbmcgdGhvc2Ugbm90aWNlcyB0aGF0IGRvIG5vdCBwZXJ0YWluIHRvIGFueSBwYXJ0IG9mCisgICAgICAgICAgdGhlIERlcml2YXRpdmUgV29ya3M7IGFuZAorCisgICAgICAoZCkgSWYgdGhlIFdvcmsgaW5jbHVkZXMgYSAiTk9USUNFIiB0ZXh0IGZpbGUgYXMgcGFydCBvZiBpdHMKKyAgICAgICAgICBkaXN0cmlidXRpb24sIHRoZW4gYW55IERlcml2YXRpdmUgV29ya3MgdGhhdCBZb3UgZGlzdHJpYnV0ZSBtdXN0CisgICAgICAgICAgaW5jbHVkZSBhIHJlYWRhYmxlIGNvcHkgb2YgdGhlIGF0dHJpYnV0aW9uIG5vdGljZXMgY29udGFpbmVkCisgICAgICAgICAgd2l0aGluIHN1Y2ggTk9USUNFIGZpbGUsIGV4Y2x1ZGluZyB0aG9zZSBub3RpY2VzIHRoYXQgZG8gbm90CisgICAgICAgICAgcGVydGFpbiB0byBhbnkgcGFydCBvZiB0aGUgRGVyaXZhdGl2ZSBXb3JrcywgaW4gYXQgbGVhc3Qgb25lCisgICAgICAgICAgb2YgdGhlIGZvbGxvd2luZyBwbGFjZXM6IHdpdGhpbiBhIE5PVElDRSB0ZXh0IGZpbGUgZGlzdHJpYnV0ZWQKKyAgICAgICAgICBhcyBwYXJ0IG9mIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyB3aXRoaW4gdGhlIFNvdXJjZSBmb3JtIG9yCisgICAgICAgICAgZG9jdW1lbnRhdGlvbiwgaWYgcHJvdmlkZWQgYWxvbmcgd2l0aCB0aGUgRGVyaXZhdGl2ZSBXb3Jrczsgb3IsCisgICAgICAgICAgd2l0aGluIGEgZGlzcGxheSBnZW5lcmF0ZWQgYnkgdGhlIERlcml2YXRpdmUgV29ya3MsIGlmIGFuZAorICAgICAgICAgIHdoZXJldmVyIHN1Y2ggdGhpcmQtcGFydHkgbm90aWNlcyBub3JtYWxseSBhcHBlYXIuIFRoZSBjb250ZW50cworICAgICAgICAgIG9mIHRoZSBOT1RJQ0UgZmlsZSBhcmUgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgb25seSBhbmQKKyAgICAgICAgICBkbyBub3QgbW9kaWZ5IHRoZSBMaWNlbnNlLiBZb3UgbWF5IGFkZCBZb3VyIG93biBhdHRyaWJ1dGlvbgorICAgICAgICAgIG5vdGljZXMgd2l0aGluIERlcml2YXRpdmUgV29ya3MgdGhhdCBZb3UgZGlzdHJpYnV0ZSwgYWxvbmdzaWRlCisgICAgICAgICAgb3IgYXMgYW4gYWRkZW5kdW0gdG8gdGhlIE5PVElDRSB0ZXh0IGZyb20gdGhlIFdvcmssIHByb3ZpZGVkCisgICAgICAgICAgdGhhdCBzdWNoIGFkZGl0aW9uYWwgYXR0cmlidXRpb24gbm90aWNlcyBjYW5ub3QgYmUgY29uc3RydWVkCisgICAgICAgICAgYXMgbW9kaWZ5aW5nIHRoZSBMaWNlbnNlLgorCisgICAgICBZb3UgbWF5IGFkZCBZb3VyIG93biBjb3B5cmlnaHQgc3RhdGVtZW50IHRvIFlvdXIgbW9kaWZpY2F0aW9ucyBhbmQKKyAgICAgIG1heSBwcm92aWRlIGFkZGl0aW9uYWwgb3IgZGlmZmVyZW50IGxpY2Vuc2UgdGVybXMgYW5kIGNvbmRpdGlvbnMKKyAgICAgIGZvciB1c2UsIHJlcHJvZHVjdGlvbiwgb3IgZGlzdHJpYnV0aW9uIG9mIFlvdXIgbW9kaWZpY2F0aW9ucywgb3IKKyAgICAgIGZvciBhbnkgc3VjaCBEZXJpdmF0aXZlIFdvcmtzIGFzIGEgd2hvbGUsIHByb3ZpZGVkIFlvdXIgdXNlLAorICAgICAgcmVwcm9kdWN0aW9uLCBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoZSBXb3JrIG90aGVyd2lzZSBjb21wbGllcyB3aXRoCisgICAgICB0aGUgY29uZGl0aW9ucyBzdGF0ZWQgaW4gdGhpcyBMaWNlbnNlLgorCisgICA1LiBTdWJtaXNzaW9uIG9mIENvbnRyaWJ1dGlvbnMuIFVubGVzcyBZb3UgZXhwbGljaXRseSBzdGF0ZSBvdGhlcndpc2UsCisgICAgICBhbnkgQ29udHJpYnV0aW9uIGludGVudGlvbmFsbHkgc3VibWl0dGVkIGZvciBpbmNsdXNpb24gaW4gdGhlIFdvcmsKKyAgICAgIGJ5IFlvdSB0byB0aGUgTGljZW5zb3Igc2hhbGwgYmUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mCisgICAgICB0aGlzIExpY2Vuc2UsIHdpdGhvdXQgYW55IGFkZGl0aW9uYWwgdGVybXMgb3IgY29uZGl0aW9ucy4KKyAgICAgIE5vdHdpdGhzdGFuZGluZyB0aGUgYWJvdmUsIG5vdGhpbmcgaGVyZWluIHNoYWxsIHN1cGVyc2VkZSBvciBtb2RpZnkKKyAgICAgIHRoZSB0ZXJtcyBvZiBhbnkgc2VwYXJhdGUgbGljZW5zZSBhZ3JlZW1lbnQgeW91IG1heSBoYXZlIGV4ZWN1dGVkCisgICAgICB3aXRoIExpY2Vuc29yIHJlZ2FyZGluZyBzdWNoIENvbnRyaWJ1dGlvbnMuCisKKyAgIDYuIFRyYWRlbWFya3MuIFRoaXMgTGljZW5zZSBkb2VzIG5vdCBncmFudCBwZXJtaXNzaW9uIHRvIHVzZSB0aGUgdHJhZGUKKyAgICAgIG5hbWVzLCB0cmFkZW1hcmtzLCBzZXJ2aWNlIG1hcmtzLCBvciBwcm9kdWN0IG5hbWVzIG9mIHRoZSBMaWNlbnNvciwKKyAgICAgIGV4Y2VwdCBhcyByZXF1aXJlZCBmb3IgcmVhc29uYWJsZSBhbmQgY3VzdG9tYXJ5IHVzZSBpbiBkZXNjcmliaW5nIHRoZQorICAgICAgb3JpZ2luIG9mIHRoZSBXb3JrIGFuZCByZXByb2R1Y2luZyB0aGUgY29udGVudCBvZiB0aGUgTk9USUNFIGZpbGUuCisKKyAgIDcuIERpc2NsYWltZXIgb2YgV2FycmFudHkuIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvcgorICAgICAgYWdyZWVkIHRvIGluIHdyaXRpbmcsIExpY2Vuc29yIHByb3ZpZGVzIHRoZSBXb3JrIChhbmQgZWFjaAorICAgICAgQ29udHJpYnV0b3IgcHJvdmlkZXMgaXRzIENvbnRyaWJ1dGlvbnMpIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IKKyAgICAgIGltcGxpZWQsIGluY2x1ZGluZywgd2l0aG91dCBsaW1pdGF0aW9uLCBhbnkgd2FycmFudGllcyBvciBjb25kaXRpb25zCisgICAgICBvZiBUSVRMRSwgTk9OLUlORlJJTkdFTUVOVCwgTUVSQ0hBTlRBQklMSVRZLCBvciBGSVRORVNTIEZPUiBBCisgICAgICBQQVJUSUNVTEFSIFBVUlBPU0UuIFlvdSBhcmUgc29sZWx5IHJlc3BvbnNpYmxlIGZvciBkZXRlcm1pbmluZyB0aGUKKyAgICAgIGFwcHJvcHJpYXRlbmVzcyBvZiB1c2luZyBvciByZWRpc3RyaWJ1dGluZyB0aGUgV29yayBhbmQgYXNzdW1lIGFueQorICAgICAgcmlza3MgYXNzb2NpYXRlZCB3aXRoIFlvdXIgZXhlcmNpc2Ugb2YgcGVybWlzc2lvbnMgdW5kZXIgdGhpcyBMaWNlbnNlLgorCisgICA4LiBMaW1pdGF0aW9uIG9mIExpYWJpbGl0eS4gSW4gbm8gZXZlbnQgYW5kIHVuZGVyIG5vIGxlZ2FsIHRoZW9yeSwKKyAgICAgIHdoZXRoZXIgaW4gdG9ydCAoaW5jbHVkaW5nIG5lZ2xpZ2VuY2UpLCBjb250cmFjdCwgb3Igb3RoZXJ3aXNlLAorICAgICAgdW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IChzdWNoIGFzIGRlbGliZXJhdGUgYW5kIGdyb3NzbHkKKyAgICAgIG5lZ2xpZ2VudCBhY3RzKSBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc2hhbGwgYW55IENvbnRyaWJ1dG9yIGJlCisgICAgICBsaWFibGUgdG8gWW91IGZvciBkYW1hZ2VzLCBpbmNsdWRpbmcgYW55IGRpcmVjdCwgaW5kaXJlY3QsIHNwZWNpYWwsCisgICAgICBpbmNpZGVudGFsLCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb2YgYW55IGNoYXJhY3RlciBhcmlzaW5nIGFzIGEKKyAgICAgIHJlc3VsdCBvZiB0aGlzIExpY2Vuc2Ugb3Igb3V0IG9mIHRoZSB1c2Ugb3IgaW5hYmlsaXR5IHRvIHVzZSB0aGUKKyAgICAgIFdvcmsgKGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gZGFtYWdlcyBmb3IgbG9zcyBvZiBnb29kd2lsbCwKKyAgICAgIHdvcmsgc3RvcHBhZ2UsIGNvbXB1dGVyIGZhaWx1cmUgb3IgbWFsZnVuY3Rpb24sIG9yIGFueSBhbmQgYWxsCisgICAgICBvdGhlciBjb21tZXJjaWFsIGRhbWFnZXMgb3IgbG9zc2VzKSwgZXZlbiBpZiBzdWNoIENvbnRyaWJ1dG9yCisgICAgICBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiBzdWNoIGRhbWFnZXMuCisKKyAgIDkuIEFjY2VwdGluZyBXYXJyYW50eSBvciBBZGRpdGlvbmFsIExpYWJpbGl0eS4gV2hpbGUgcmVkaXN0cmlidXRpbmcKKyAgICAgIHRoZSBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiwgWW91IG1heSBjaG9vc2UgdG8gb2ZmZXIsCisgICAgICBhbmQgY2hhcmdlIGEgZmVlIGZvciwgYWNjZXB0YW5jZSBvZiBzdXBwb3J0LCB3YXJyYW50eSwgaW5kZW1uaXR5LAorICAgICAgb3Igb3RoZXIgbGlhYmlsaXR5IG9ibGlnYXRpb25zIGFuZC9vciByaWdodHMgY29uc2lzdGVudCB3aXRoIHRoaXMKKyAgICAgIExpY2Vuc2UuIEhvd2V2ZXIsIGluIGFjY2VwdGluZyBzdWNoIG9ibGlnYXRpb25zLCBZb3UgbWF5IGFjdCBvbmx5CisgICAgICBvbiBZb3VyIG93biBiZWhhbGYgYW5kIG9uIFlvdXIgc29sZSByZXNwb25zaWJpbGl0eSwgbm90IG9uIGJlaGFsZgorICAgICAgb2YgYW55IG90aGVyIENvbnRyaWJ1dG9yLCBhbmQgb25seSBpZiBZb3UgYWdyZWUgdG8gaW5kZW1uaWZ5LAorICAgICAgZGVmZW5kLCBhbmQgaG9sZCBlYWNoIENvbnRyaWJ1dG9yIGhhcm1sZXNzIGZvciBhbnkgbGlhYmlsaXR5CisgICAgICBpbmN1cnJlZCBieSwgb3IgY2xhaW1zIGFzc2VydGVkIGFnYWluc3QsIHN1Y2ggQ29udHJpYnV0b3IgYnkgcmVhc29uCisgICAgICBvZiB5b3VyIGFjY2VwdGluZyBhbnkgc3VjaCB3YXJyYW50eSBvciBhZGRpdGlvbmFsIGxpYWJpbGl0eS4KKworICAgRU5EIE9GIFRFUk1TIEFORCBDT05ESVRJT05TCisKKyAgIEFQUEVORElYOiBIb3cgdG8gYXBwbHkgdGhlIEFwYWNoZSBMaWNlbnNlIHRvIHlvdXIgd29yay4KKworICAgICAgVG8gYXBwbHkgdGhlIEFwYWNoZSBMaWNlbnNlIHRvIHlvdXIgd29yaywgYXR0YWNoIHRoZSBmb2xsb3dpbmcKKyAgICAgIGJvaWxlcnBsYXRlIG5vdGljZSwgd2l0aCB0aGUgZmllbGRzIGVuY2xvc2VkIGJ5IGJyYWNrZXRzICJbXSIKKyAgICAgIHJlcGxhY2VkIHdpdGggeW91ciBvd24gaWRlbnRpZnlpbmcgaW5mb3JtYXRpb24uIChEb24ndCBpbmNsdWRlCisgICAgICB0aGUgYnJhY2tldHMhKSAgVGhlIHRleHQgc2hvdWxkIGJlIGVuY2xvc2VkIGluIHRoZSBhcHByb3ByaWF0ZQorICAgICAgY29tbWVudCBzeW50YXggZm9yIHRoZSBmaWxlIGZvcm1hdC4gV2UgYWxzbyByZWNvbW1lbmQgdGhhdCBhCisgICAgICBmaWxlIG9yIGNsYXNzIG5hbWUgYW5kIGRlc2NyaXB0aW9uIG9mIHB1cnBvc2UgYmUgaW5jbHVkZWQgb24gdGhlCisgICAgICBzYW1lICJwcmludGVkIHBhZ2UiIGFzIHRoZSBjb3B5cmlnaHQgbm90aWNlIGZvciBlYXNpZXIKKyAgICAgIGlkZW50aWZpY2F0aW9uIHdpdGhpbiB0aGlyZC1wYXJ0eSBhcmNoaXZlcy4KKworICAgQ29weXJpZ2h0IFt5eXl5XSBbbmFtZSBvZiBjb3B5cmlnaHQgb3duZXJdCisKKyAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvYXBhY2hlL2NvbW1vbnMvY29tbW9ucy1sYW5nMy8zLjMuMi9jb21tb25zLWxhbmczLTMuMy4yLmphciBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9hcGFjaGUvY29tbW9ucy9jb21tb25zLWxhbmczLzMuMy4yL2NvbW1vbnMtbGFuZzMtMy4zLjIuamFyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJjZTA4YWUKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvYXBhY2hlL2NvbW1vbnMvY29tbW9ucy1sYW5nMy8zLjMuMi9jb21tb25zLWxhbmczLTMuMy4yLmphcgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvYXBhY2hlL2NvbW1vbnMvY29tbW9ucy1sYW5nMy8zLjMuMi9jb21tb25zLWxhbmczLTMuMy4yLmphci5zaGExIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2FwYWNoZS9jb21tb25zL2NvbW1vbnMtbGFuZzMvMy4zLjIvY29tbW9ucy1sYW5nMy0zLjMuMi5qYXIuc2hhMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNTRjYmY1Ci0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2FwYWNoZS9jb21tb25zL2NvbW1vbnMtbGFuZzMvMy4zLjIvY29tbW9ucy1sYW5nMy0zLjMuMi5qYXIuc2hhMQpAQCAtMCwwICsxIEBACis5MGEzODIyYzM4ZWM4Yzk5NmU4NGMxNmEzNDc3ZWY2MzJjYmM4N2EzClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2FwYWNoZS9jb21tb25zL2NvbW1vbnMtbGFuZzMvMy4zLjIvY29tbW9ucy1sYW5nMy0zLjMuMi5wb20gYi9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvYXBhY2hlL2NvbW1vbnMvY29tbW9ucy1sYW5nMy8zLjMuMi9jb21tb25zLWxhbmczLTMuMy4yLnBvbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMmNjZjE5Ci0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2FwYWNoZS9jb21tb25zL2NvbW1vbnMtbGFuZzMvMy4zLjIvY29tbW9ucy1sYW5nMy0zLjMuMi5wb20KQEAgLTAsMCArMSw3MTUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tCisgTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCisgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZSBkaXN0cmlidXRlZCB3aXRoCisgdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLgorIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlIHRvIFlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wCisgKHRoZSAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGgKKyB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKy0tPgorPHByb2plY3QKKyAgeG1sbnM9Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCIKKyAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKKyAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAgaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvbWF2ZW4tdjRfMF8wLnhzZCI+CisgIDxwYXJlbnQ+CisgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5jb21tb25zPC9ncm91cElkPgorICAgIDxhcnRpZmFjdElkPmNvbW1vbnMtcGFyZW50PC9hcnRpZmFjdElkPgorICAgIDx2ZXJzaW9uPjMzPC92ZXJzaW9uPgorICA8L3BhcmVudD4KKyAgPG1vZGVsVmVyc2lvbj40LjAuMDwvbW9kZWxWZXJzaW9uPgorICA8Z3JvdXBJZD5vcmcuYXBhY2hlLmNvbW1vbnM8L2dyb3VwSWQ+CisgIDxhcnRpZmFjdElkPmNvbW1vbnMtbGFuZzM8L2FydGlmYWN0SWQ+CisgIDx2ZXJzaW9uPjMuMy4yPC92ZXJzaW9uPgorICA8bmFtZT5BcGFjaGUgQ29tbW9ucyBMYW5nPC9uYW1lPgorCisgIDxpbmNlcHRpb25ZZWFyPjIwMDE8L2luY2VwdGlvblllYXI+CisgIDxkZXNjcmlwdGlvbj4KKyAgQXBhY2hlIENvbW1vbnMgTGFuZywgYSBwYWNrYWdlIG9mIEphdmEgdXRpbGl0eSBjbGFzc2VzIGZvciB0aGUKKyAgY2xhc3NlcyB0aGF0IGFyZSBpbiBqYXZhLmxhbmcncyBoaWVyYXJjaHksIG9yIGFyZSBjb25zaWRlcmVkIHRvIGJlIHNvCisgIHN0YW5kYXJkIGFzIHRvIGp1c3RpZnkgZXhpc3RlbmNlIGluIGphdmEubGFuZy4KKzwvZGVzY3JpcHRpb24+CisKKyAgPHVybD5odHRwOi8vY29tbW9ucy5hcGFjaGUub3JnL3Byb3Blci9jb21tb25zLWxhbmcvPC91cmw+CisKKyAgPGlzc3VlTWFuYWdlbWVudD4KKyAgICA8c3lzdGVtPmppcmE8L3N5c3RlbT4KKyAgICA8dXJsPmh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9MQU5HPC91cmw+CisgIDwvaXNzdWVNYW5hZ2VtZW50PgorCisgIDxzY20+CisgICAgPGNvbm5lY3Rpb24+c2NtOnN2bjpodHRwOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvYXNmL2NvbW1vbnMvcHJvcGVyL2xhbmcvdHJ1bms8L2Nvbm5lY3Rpb24+CisgICAgPGRldmVsb3BlckNvbm5lY3Rpb24+c2NtOnN2bjpodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2FzZi9jb21tb25zL3Byb3Blci9sYW5nL3RydW5rPC9kZXZlbG9wZXJDb25uZWN0aW9uPgorICAgIDx1cmw+aHR0cDovL3N2bi5hcGFjaGUub3JnL3ZpZXd2Yy9jb21tb25zL3Byb3Blci9sYW5nL3RydW5rPC91cmw+CisgIDwvc2NtPgorCisgIDxkZXZlbG9wZXJzPgorICAgIDxkZXZlbG9wZXI+CisgICAgICA8bmFtZT5EYW5pZWwgUmFsbDwvbmFtZT4KKyAgICAgIDxpZD5kbHI8L2lkPgorICAgICAgPGVtYWlsPmRsckBmaW5lbWFsdGNvZGluZy5jb208L2VtYWlsPgorICAgICAgPG9yZ2FuaXphdGlvbj5Db2xsYWJOZXQsIEluYy48L29yZ2FuaXphdGlvbj4KKyAgICAgIDxyb2xlcz4KKyAgICAgICAgPHJvbGU+SmF2YSBEZXZlbG9wZXI8L3JvbGU+CisgICAgICA8L3JvbGVzPgorICAgIDwvZGV2ZWxvcGVyPgorICAgIDxkZXZlbG9wZXI+CisgICAgICA8bmFtZT5TdGVwaGVuIENvbGVib3VybmU8L25hbWU+CisgICAgICA8aWQ+c2NvbGVib3VybmU8L2lkPgorICAgICAgPGVtYWlsPnNjb2xlYm91cm5lQGpvZGEub3JnPC9lbWFpbD4KKyAgICAgIDxvcmdhbml6YXRpb24+U0lUQSBBVFMgTHRkPC9vcmdhbml6YXRpb24+CisgICAgICA8dGltZXpvbmU+MDwvdGltZXpvbmU+CisgICAgICA8cm9sZXM+CisgICAgICAgIDxyb2xlPkphdmEgRGV2ZWxvcGVyPC9yb2xlPgorICAgICAgPC9yb2xlcz4KKyAgICA8L2RldmVsb3Blcj4KKyAgICA8ZGV2ZWxvcGVyPgorICAgICAgPG5hbWU+SGVucmkgWWFuZGVsbDwvbmFtZT4KKyAgICAgIDxpZD5iYXlhcmQ8L2lkPgorICAgICAgPGVtYWlsPmJheWFyZEBhcGFjaGUub3JnPC9lbWFpbD4KKyAgICAgIDxvcmdhbml6YXRpb24gLz4KKyAgICAgIDxyb2xlcz4KKyAgICAgICAgPHJvbGU+SmF2YSBEZXZlbG9wZXI8L3JvbGU+CisgICAgICA8L3JvbGVzPgorICAgIDwvZGV2ZWxvcGVyPgorICAgIDxkZXZlbG9wZXI+CisgICAgICA8bmFtZT5TdGV2ZW4gQ2Fzd2VsbDwvbmFtZT4KKyAgICAgIDxpZD5zY2Fzd2VsbDwvaWQ+CisgICAgICA8ZW1haWw+c3RldmVuY2Fzd2VsbEBhcGFjaGUub3JnPC9lbWFpbD4KKyAgICAgIDxvcmdhbml6YXRpb24gLz4KKyAgICAgIDxyb2xlcz4KKyAgICAgICAgPHJvbGU+SmF2YSBEZXZlbG9wZXI8L3JvbGU+CisgICAgICA8L3JvbGVzPgorICAgICAgPHRpbWV6b25lPi01PC90aW1lem9uZT4KKyAgICA8L2RldmVsb3Blcj4KKyAgICA8ZGV2ZWxvcGVyPgorICAgICAgPG5hbWU+Um9iZXJ0IEJ1cnJlbGwgRG9ua2luPC9uYW1lPgorICAgICAgPGlkPnJkb25raW48L2lkPgorICAgICAgPGVtYWlsPnJkb25raW5AYXBhY2hlLm9yZzwvZW1haWw+CisgICAgICA8b3JnYW5pemF0aW9uIC8+CisgICAgICA8cm9sZXM+CisgICAgICAgIDxyb2xlPkphdmEgRGV2ZWxvcGVyPC9yb2xlPgorICAgICAgPC9yb2xlcz4KKyAgICA8L2RldmVsb3Blcj4KKyAgICA8ZGV2ZWxvcGVyPgorICAgICAgPG5hbWU+R2FyeSBELiBHcmVnb3J5PC9uYW1lPgorICAgICAgPGlkPmdncmVnb3J5PC9pZD4KKyAgICAgIDxlbWFpbD5nZ3JlZ29yeUBhcGFjaGUub3JnPC9lbWFpbD4KKyAgICAgIDx0aW1lem9uZT4tNTwvdGltZXpvbmU+CisgICAgICA8cm9sZXM+CisgICAgICAgIDxyb2xlPkphdmEgRGV2ZWxvcGVyPC9yb2xlPgorICAgICAgPC9yb2xlcz4KKyAgICA8L2RldmVsb3Blcj4KKyAgICA8ZGV2ZWxvcGVyPgorICAgICAgPG5hbWU+RnJlZHJpayBXZXN0ZXJtYXJjazwvbmFtZT4KKyAgICAgIDxpZD5mcmVkcmlrPC9pZD4KKyAgICAgIDxlbWFpbCAvPgorICAgICAgPG9yZ2FuaXphdGlvbiAvPgorICAgICAgPHJvbGVzPgorICAgICAgICA8cm9sZT5KYXZhIERldmVsb3Blcjwvcm9sZT4KKyAgICAgIDwvcm9sZXM+CisgICAgPC9kZXZlbG9wZXI+CisgICAgPGRldmVsb3Blcj4KKyAgICAgIDxuYW1lPkphbWVzIENhcm1hbjwvbmFtZT4KKyAgICAgIDxpZD5qY2FybWFuPC9pZD4KKyAgICAgIDxlbWFpbD5qY2FybWFuQGFwYWNoZS5vcmc8L2VtYWlsPgorICAgICAgPG9yZ2FuaXphdGlvbj5DYXJtYW4gQ29uc3VsdGluZywgSW5jLjwvb3JnYW5pemF0aW9uPgorICAgICAgPHJvbGVzPgorICAgICAgICA8cm9sZT5KYXZhIERldmVsb3Blcjwvcm9sZT4KKyAgICAgIDwvcm9sZXM+CisgICAgPC9kZXZlbG9wZXI+CisgICAgPGRldmVsb3Blcj4KKyAgICAgIDxuYW1lPk5pYWxsIFBlbWJlcnRvbjwvbmFtZT4KKyAgICAgIDxpZD5uaWFsbHA8L2lkPgorICAgICAgPHJvbGVzPgorICAgICAgICA8cm9sZT5KYXZhIERldmVsb3Blcjwvcm9sZT4KKyAgICAgIDwvcm9sZXM+CisgICAgPC9kZXZlbG9wZXI+CisgICAgPGRldmVsb3Blcj4KKyAgICAgIDxuYW1lPk1hdHQgQmVuc29uPC9uYW1lPgorICAgICAgPGlkPm1iZW5zb248L2lkPgorICAgICAgPHJvbGVzPgorICAgICAgICA8cm9sZT5KYXZhIERldmVsb3Blcjwvcm9sZT4KKyAgICAgIDwvcm9sZXM+CisgICAgPC9kZXZlbG9wZXI+CisgICAgPGRldmVsb3Blcj4KKyAgICAgIDxuYW1lPkpvZXJnIFNjaGFpYmxlPC9uYW1lPgorICAgICAgPGlkPmpvZWhuaTwvaWQ+CisgICAgICA8ZW1haWw+am9lcmcuc2NoYWlibGVAZ214LmRlPC9lbWFpbD4KKyAgICAgIDxyb2xlcz4KKyAgICAgICAgPHJvbGU+SmF2YSBEZXZlbG9wZXI8L3JvbGU+CisgICAgICA8L3JvbGVzPgorICAgICAgPHRpbWV6b25lPisxPC90aW1lem9uZT4KKyAgICA8L2RldmVsb3Blcj4KKyAgICA8ZGV2ZWxvcGVyPgorICAgICAgPG5hbWU+T2xpdmVyIEhlZ2VyPC9uYW1lPgorICAgICAgPGlkPm9oZWdlcjwvaWQ+CisgICAgICA8ZW1haWw+b2hlZ2VyQGFwYWNoZS5vcmc8L2VtYWlsPgorICAgICAgPHRpbWV6b25lPisxPC90aW1lem9uZT4KKyAgICAgIDxyb2xlcz4KKyAgICAgICAgPHJvbGU+SmF2YSBEZXZlbG9wZXI8L3JvbGU+CisgICAgICA8L3JvbGVzPgorICAgIDwvZGV2ZWxvcGVyPgorICAgIDxkZXZlbG9wZXI+CisgICAgICA8bmFtZT5QYXVsIEJlbmVkaWN0PC9uYW1lPgorICAgICAgPGlkPnBiZW5lZGljdDwvaWQ+CisgICAgICA8ZW1haWw+cGJlbmVkaWN0QGFwYWNoZS5vcmc8L2VtYWlsPgorICAgICAgPHJvbGVzPgorICAgICAgICA8cm9sZT5KYXZhIERldmVsb3Blcjwvcm9sZT4KKyAgICAgIDwvcm9sZXM+CisgICAgPC9kZXZlbG9wZXI+CisgICAgPGRldmVsb3Blcj4KKyAgICAgIDxuYW1lPkJlbmVkaWt0IFJpdHRlcjwvbmFtZT4KKyAgICAgIDxpZD5icml0dGVyPC9pZD4KKyAgICAgIDxlbWFpbD5icml0dGVyQGFwYWNoZS5vcmc8L2VtYWlsPgorICAgICAgPHJvbGVzPgorICAgICAgICA8cm9sZT5KYXZhIERldmVsb3Blcjwvcm9sZT4KKyAgICAgIDwvcm9sZXM+CisgICAgPC9kZXZlbG9wZXI+CisgICAgPGRldmVsb3Blcj4KKyAgICAgIDxuYW1lPkR1bmNhbiBKb25lczwvbmFtZT4KKyAgICAgIDxpZD5kam9uZXM8L2lkPgorICAgICAgPGVtYWlsPmRqb25lc0BhcGFjaGUub3JnPC9lbWFpbD4KKyAgICAgIDx0aW1lem9uZT4wPC90aW1lem9uZT4KKyAgICAgIDxyb2xlcz4KKyAgICAgICAgPHJvbGU+SmF2YSBEZXZlbG9wZXI8L3JvbGU+CisgICAgICA8L3JvbGVzPgorICAgIDwvZGV2ZWxvcGVyPgorICA8L2RldmVsb3BlcnM+CisgIDxjb250cmlidXRvcnM+CisgICAgPGNvbnRyaWJ1dG9yPgorICAgICAgPG5hbWU+Qy4gU2NvdHQgQW5hbmlhbjwvbmFtZT4KKyAgICA8L2NvbnRyaWJ1dG9yPgorICAgIDxjb250cmlidXRvcj4KKyAgICAgIDxuYW1lPkNocmlzIEF1ZGxleTwvbmFtZT4KKyAgICA8L2NvbnRyaWJ1dG9yPgorICAgIDxjb250cmlidXRvcj4KKyAgICAgIDxuYW1lPlN0ZXBoYW5lIEJhaWxsaWV6PC9uYW1lPgorICAgIDwvY29udHJpYnV0b3I+CisgICAgPGNvbnRyaWJ1dG9yPgorICAgICAgPG5hbWU+TWljaGFlbCBCZWNrZTwvbmFtZT4KKyAgICA8L2NvbnRyaWJ1dG9yPgorICAgIDxjb250cmlidXRvcj4KKyAgICAgIDxuYW1lPkJlbmphbWluIEJlbnRtYW5uPC9uYW1lPgorICAgIDwvY29udHJpYnV0b3I+CisgICAgPGNvbnRyaWJ1dG9yPgorICAgICAgPG5hbWU+T2xhIEJlcmc8L25hbWU+CisgICAgPC9jb250cmlidXRvcj4KKyAgICA8Y29udHJpYnV0b3I+CisgICAgICA8bmFtZT5OYXRoYW4gQmV5ZXI8L25hbWU+CisgICAgPC9jb250cmlidXRvcj4KKyAgICA8Y29udHJpYnV0b3I+CisgICAgICA8bmFtZT5TdGVmYW4gQm9kZXdpZzwvbmFtZT4KKyAgICA8L2NvbnRyaWJ1dG9yPgorICAgIDxjb250cmlidXRvcj4KKyAgICAgIDxuYW1lPkphbmVrIEJvZ3Vja2k8L25hbWU+CisgICAgPC9jb250cmlidXRvcj4KKyAgICA8Y29udHJpYnV0b3I+CisgICAgICA8bmFtZT5NaWtlIEJvd2xlcjwvbmFtZT4KKyAgICA8L2NvbnRyaWJ1dG9yPgorICAgIDxjb250cmlidXRvcj4KKyAgICAgIDxuYW1lPlNlYW4gQnJvd248L25hbWU+CisgICAgPC9jb250cmlidXRvcj4KKyAgICA8Y29udHJpYnV0b3I+CisgICAgICA8bmFtZT5BbGV4YW5kZXIgRGF5IENoYWZmZWU8L25hbWU+CisgICAgPC9jb250cmlidXRvcj4KKyAgICA8Y29udHJpYnV0b3I+CisgICAgICA8bmFtZT5BbCBDaG91PC9uYW1lPgorICAgIDwvY29udHJpYnV0b3I+CisgICAgPGNvbnRyaWJ1dG9yPgorICAgICAgPG5hbWU+R3JlZyBDb2xhZG9uYXRvPC9uYW1lPgorICAgIDwvY29udHJpYnV0b3I+CisgICAgPGNvbnRyaWJ1dG9yPgorICAgICAgPG5hbWU+TWFhcnRlbiBDb2VuZTwvbmFtZT4KKyAgICA8L2NvbnRyaWJ1dG9yPgorICAgIDxjb250cmlidXRvcj4KKyAgICAgIDxuYW1lPkp1c3RpbiBDb3VjaDwvbmFtZT4KKyAgICA8L2NvbnRyaWJ1dG9yPgorICAgIDxjb250cmlidXRvcj4KKyAgICAgIDxuYW1lPk1pY2hhZWwgRGF2ZXk8L25hbWU+CisgICAgPC9jb250cmlidXRvcj4KKyAgICA8Y29udHJpYnV0b3I+CisgICAgICA8bmFtZT5Ob3JtIERlYW5lPC9uYW1lPgorICAgIDwvY29udHJpYnV0b3I+CisgICAgPGNvbnRyaWJ1dG9yPgorICAgICAgPG5hbWU+TW9yZ2FuIERlbGFncmFuZ2U8L25hbWU+CisgICAgPC9jb250cmlidXRvcj4KKyAgICA8Y29udHJpYnV0b3I+CisgICAgICA8bmFtZT5SaW5nbyBEZSBTbWV0PC9uYW1lPgorICAgIDwvY29udHJpYnV0b3I+CisgICAgPGNvbnRyaWJ1dG9yPgorICAgICAgPG5hbWU+UnVzc2VsIERpdHRtYXI8L25hbWU+CisgICAgPC9jb250cmlidXRvcj4KKyAgICA8Y29udHJpYnV0b3I+CisgICAgICA8bmFtZT5TdGV2ZSBEb3duZXk8L25hbWU+CisgICAgPC9jb250cmlidXRvcj4KKyAgICA8Y29udHJpYnV0b3I+CisgICAgICA8bmFtZT5NYXR0aGlhcyBFaWNoZWw8L25hbWU+CisgICAgPC9jb250cmlidXRvcj4KKyAgICA8Y29udHJpYnV0b3I+CisgICAgICA8bmFtZT5DaHJpc3RvcGhlciBFbGtpbnM8L25hbWU+CisgICAgPC9jb250cmlidXRvcj4KKyAgICA8Y29udHJpYnV0b3I+CisgICAgICA8bmFtZT5DaHJpcyBGZWxkaGFja2VyPC9uYW1lPgorICAgIDwvY29udHJpYnV0b3I+CisgICAgPGNvbnRyaWJ1dG9yPgorICAgICAgPG5hbWU+Um9sYW5kIEZvZXJ0aGVyPC9uYW1lPgorICAgIDwvY29udHJpYnV0b3I+CisgICAgPGNvbnRyaWJ1dG9yPgorICAgICAgPG5hbWU+UGV0ZSBHaWVzZXI8L25hbWU+CisgICAgPC9jb250cmlidXRvcj4KKyAgICA8Y29udHJpYnV0b3I+CisgICAgICA8bmFtZT5KYXNvbiBHcml0bWFuPC9uYW1lPgorICAgIDwvY29udHJpYnV0b3I+CisgICAgPGNvbnRyaWJ1dG9yPgorICAgICAgPG5hbWU+TWF0dGhldyBIYXd0aG9ybmU8L25hbWU+CisgICAgPC9jb250cmlidXRvcj4KKyAgICA8Y29udHJpYnV0b3I+CisgICAgICA8bmFtZT5NaWNoYWVsIEhldWVyPC9uYW1lPgorICAgIDwvY29udHJpYnV0b3I+CisgICAgPGNvbnRyaWJ1dG9yPgorICAgICAgPG5hbWU+Q2hhcyBIb250b248L25hbWU+CisgICAgPC9jb250cmlidXRvcj4KKyAgICA8Y29udHJpYnV0b3I+CisgICAgICA8bmFtZT5DaHJpcyBIeXplcjwvbmFtZT4KKyAgICA8L2NvbnRyaWJ1dG9yPgorICAgIDxjb250cmlidXRvcj4KKyAgICAgIDxuYW1lPlBhdWwgSmFjazwvbmFtZT4KKyAgICA8L2NvbnRyaWJ1dG9yPgorICAgIDxjb250cmlidXRvcj4KKyAgICAgIDxuYW1lPk1hcmMgSm9obnNvbjwvbmFtZT4KKyAgICA8L2NvbnRyaWJ1dG9yPgorICAgIDxjb250cmlidXRvcj4KKyAgICAgIDxuYW1lPlNoYXVuIEthbGxleTwvbmFtZT4KKyAgICA8L2NvbnRyaWJ1dG9yPgorICAgIDxjb250cmlidXRvcj4KKyAgICAgIDxuYW1lPlRldHN1eWEgS2FuZXVjaGk8L25hbWU+CisgICAgPC9jb250cmlidXRvcj4KKyAgICA8Y29udHJpYnV0b3I+CisgICAgICA8bmFtZT5OaXNzaW0gS2FycGVuc3RlaW48L25hbWU+CisgICAgPC9jb250cmlidXRvcj4KKyAgICA8Y29udHJpYnV0b3I+CisgICAgICA8bmFtZT5FZCBLb3J0aG9mPC9uYW1lPgorICAgIDwvY29udHJpYnV0b3I+CisgICAgPGNvbnRyaWJ1dG9yPgorICAgICAgPG5hbWU+SG9sZ2VyIEtyYXV0aDwvbmFtZT4KKyAgICA8L2NvbnRyaWJ1dG9yPgorICAgIDxjb250cmlidXRvcj4KKyAgICAgIDxuYW1lPlJhZmFsIEtydXBpbnNraTwvbmFtZT4KKyAgICA8L2NvbnRyaWJ1dG9yPgorICAgIDxjb250cmlidXRvcj4KKyAgICAgIDxuYW1lPlJhZmFsIEtyemV3c2tpPC9uYW1lPgorICAgIDwvY29udHJpYnV0b3I+CisgICAgPGNvbnRyaWJ1dG9yPgorICAgICAgPG5hbWU+RGF2aWQgTGVwcGlrPC9uYW1lPgorICAgIDwvY29udHJpYnV0b3I+CisgICAgPGNvbnRyaWJ1dG9yPgorICAgICAgPG5hbWU+RWxpIExpbmRzZXk8L25hbWU+CisgICAgPC9jb250cmlidXRvcj4KKyAgICA8Y29udHJpYnV0b3I+CisgICAgICA8bmFtZT5TdmVuIEx1ZHdpZzwvbmFtZT4KKyAgICA8L2NvbnRyaWJ1dG9yPgorICAgIDxjb250cmlidXRvcj4KKyAgICAgIDxuYW1lPkNyYWlnIFIuIE1jQ2xhbmFoYW48L25hbWU+CisgICAgPC9jb250cmlidXRvcj4KKyAgICA8Y29udHJpYnV0b3I+CisgICAgICA8bmFtZT5SYW5kIE1jTmVlbHk8L25hbWU+CisgICAgPC9jb250cmlidXRvcj4KKyAgICA8Y29udHJpYnV0b3I+CisgICAgICA8bmFtZT5IZW5kcmlrIE1hcnluczwvbmFtZT4KKyAgICA8L2NvbnRyaWJ1dG9yPgorICAgIDxjb250cmlidXRvcj4KKyAgICAgIDxuYW1lPkRhdmUgTWVpa2xlPC9uYW1lPgorICAgIDwvY29udHJpYnV0b3I+CisgICAgPGNvbnRyaWJ1dG9yPgorICAgICAgPG5hbWU+Tmlrb2xheSBNZXRjaGV2PC9uYW1lPgorICAgIDwvY29udHJpYnV0b3I+CisgICAgPGNvbnRyaWJ1dG9yPgorICAgICAgPG5hbWU+S2FzcGVyIE5pZWxzZW48L25hbWU+CisgICAgPC9jb250cmlidXRvcj4KKyAgICA8Y29udHJpYnV0b3I+CisgICAgICA8bmFtZT5UaW0gTydCcmllbjwvbmFtZT4KKyAgICA8L2NvbnRyaWJ1dG9yPgorICAgIDxjb250cmlidXRvcj4KKyAgICAgIDxuYW1lPkJyaWFuIFMgTydOZWlsbDwvbmFtZT4KKyAgICA8L2NvbnRyaWJ1dG9yPgorICAgIDxjb250cmlidXRvcj4KKyAgICAgIDxuYW1lPkFuZHJldyBDLiBPbGl2ZXI8L25hbWU+CisgICAgPC9jb250cmlidXRvcj4KKyAgICA8Y29udHJpYnV0b3I+CisgICAgICA8bmFtZT5BbGJhbiBQZWlnbmllcjwvbmFtZT4KKyAgICA8L2NvbnRyaWJ1dG9yPgorICAgIDxjb250cmlidXRvcj4KKyAgICAgIDxuYW1lPk1vcml0eiBQZXRlcnNlbjwvbmFtZT4KKyAgICA8L2NvbnRyaWJ1dG9yPgorICAgIDxjb250cmlidXRvcj4KKyAgICAgIDxuYW1lPkRtaXRyaSBQbG90bmlrb3Y8L25hbWU+CisgICAgPC9jb250cmlidXRvcj4KKyAgICA8Y29udHJpYnV0b3I+CisgICAgICA8bmFtZT5OZWVtZSBQcmFrczwvbmFtZT4KKyAgICA8L2NvbnRyaWJ1dG9yPgorICAgIDxjb250cmlidXRvcj4KKyAgICAgIDxuYW1lPkVyaWMgUHVnaDwvbmFtZT4KKyAgICA8L2NvbnRyaWJ1dG9yPgorICAgIDxjb250cmlidXRvcj4KKyAgICAgIDxuYW1lPlN0ZXBoZW4gUHV0bWFuPC9uYW1lPgorICAgIDwvY29udHJpYnV0b3I+CisgICAgPGNvbnRyaWJ1dG9yPgorICAgICAgPG5hbWU+VHJhdmlzIFJlZWRlcjwvbmFtZT4KKyAgICA8L2NvbnRyaWJ1dG9yPgorICAgIDxjb250cmlidXRvcj4KKyAgICAgIDxuYW1lPkFudG9ueSBSaWxleTwvbmFtZT4KKyAgICA8L2NvbnRyaWJ1dG9yPgorICAgIDxjb250cmlidXRvcj4KKyAgICAgIDxuYW1lPlZhbGVudGluIFJvY2hlcjwvbmFtZT4KKyAgICA8L2NvbnRyaWJ1dG9yPgorICAgIDxjb250cmlidXRvcj4KKyAgICAgIDxuYW1lPlNjb3R0IFNhbmRlcnM8L25hbWU+CisgICAgPC9jb250cmlidXRvcj4KKyAgICA8Y29udHJpYnV0b3I+CisgICAgICA8bmFtZT5SYWxwaCBTY2hhZXI8L25hbWU+CisgICAgPC9jb250cmlidXRvcj4KKyAgICA8Y29udHJpYnV0b3I+CisgICAgICA8bmFtZT5IZW5uaW5nIFAuIFNjaG1pZWRlaGF1c2VuPC9uYW1lPgorICAgIDwvY29udHJpYnV0b3I+CisgICAgPGNvbnRyaWJ1dG9yPgorICAgICAgPG5hbWU+U2VhbiBTY2hvZmllbGQ8L25hbWU+CisgICAgPC9jb250cmlidXRvcj4KKyAgICA8Y29udHJpYnV0b3I+CisgICAgICA8bmFtZT5Sb2JlcnQgU2Nob2x0ZTwvbmFtZT4KKyAgICA8L2NvbnRyaWJ1dG9yPgorICAgIDxjb250cmlidXRvcj4KKyAgICAgIDxuYW1lPlJldWJlbiBTaXZhbjwvbmFtZT4KKyAgICA8L2NvbnRyaWJ1dG9yPgorICAgIDxjb250cmlidXRvcj4KKyAgICAgIDxuYW1lPlZpbGxlIFNreXR0YTwvbmFtZT4KKyAgICA8L2NvbnRyaWJ1dG9yPgorICAgIDxjb250cmlidXRvcj4KKyAgICAgIDxuYW1lPkRhdmlkIE0uIFNsZWRnZTwvbmFtZT4KKyAgICA8L2NvbnRyaWJ1dG9yPgorICAgIDxjb250cmlidXRvcj4KKyAgICAgIDxuYW1lPk1pY2hhZWwgQS4gU21pdGg8L25hbWU+CisgICAgPC9jb250cmlidXRvcj4KKyAgICA8Y29udHJpYnV0b3I+CisgICAgICA8bmFtZT5KYW4gU29yZW5zZW48L25hbWU+CisgICAgPC9jb250cmlidXRvcj4KKyAgICA8Y29udHJpYnV0b3I+CisgICAgICA8bmFtZT5HbGVuIFN0YW1wb3VsdHppczwvbmFtZT4KKyAgICA8L2NvbnRyaWJ1dG9yPgorICAgIDxjb250cmlidXRvcj4KKyAgICAgIDxuYW1lPlNjb3R0IFN0YW5jaGZpZWxkPC9uYW1lPgorICAgIDwvY29udHJpYnV0b3I+CisgICAgPGNvbnRyaWJ1dG9yPgorICAgICAgPG5hbWU+Sm9uIFMuIFN0ZXZlbnM8L25hbWU+CisgICAgPC9jb250cmlidXRvcj4KKyAgICA8Y29udHJpYnV0b3I+CisgICAgICA8bmFtZT5TZWFuIEMuIFN1bGxpdmFuPC9uYW1lPgorICAgIDwvY29udHJpYnV0b3I+CisgICAgPGNvbnRyaWJ1dG9yPgorICAgICAgPG5hbWU+QXNod2luIFN1cmVzaDwvbmFtZT4KKyAgICA8L2NvbnRyaWJ1dG9yPgorICAgIDxjb250cmlidXRvcj4KKyAgICAgIDxuYW1lPkhlbGdlIFRlc2dhYXJkPC9uYW1lPgorICAgIDwvY29udHJpYnV0b3I+CisgICAgPGNvbnRyaWJ1dG9yPgorICAgICAgPG5hbWU+QXJ1biBNYW1tZW4gVGhvbWFzPC9uYW1lPgorICAgIDwvY29udHJpYnV0b3I+CisgICAgPGNvbnRyaWJ1dG9yPgorICAgICAgPG5hbWU+TWFzYXRvIFRlenVrYTwvbmFtZT4KKyAgICA8L2NvbnRyaWJ1dG9yPgorICAgIDxjb250cmlidXRvcj4KKyAgICAgIDxuYW1lPkRhbmllbCBUcmViYmllbjwvbmFtZT4KKyAgICA8L2NvbnRyaWJ1dG9yPgorICAgIDxjb250cmlidXRvcj4KKyAgICAgIDxuYW1lPkplZmYgVmFyc3plZ2k8L25hbWU+CisgICAgPC9jb250cmlidXRvcj4KKyAgICA8Y29udHJpYnV0b3I+CisgICAgICA8bmFtZT5DaHJpcyBXZWJiPC9uYW1lPgorICAgIDwvY29udHJpYnV0b3I+CisgICAgPGNvbnRyaWJ1dG9yPgorICAgICAgPG5hbWU+TWFyaW8gV2ludGVyZXI8L25hbWU+CisgICAgPC9jb250cmlidXRvcj4KKyAgICA8Y29udHJpYnV0b3I+CisgICAgICA8bmFtZT5TdGVwYW4gS29sdHNvdjwvbmFtZT4KKyAgICA8L2NvbnRyaWJ1dG9yPgorICAgIDxjb250cmlidXRvcj4KKyAgICAgIDxuYW1lPkhvbGdlciBIb2Zmc3RhdHRlPC9uYW1lPgorICAgIDwvY29udHJpYnV0b3I+CisgICAgPGNvbnRyaWJ1dG9yPgorICAgICAgPG5hbWU+RGVyZWsgQy4gQXNobW9yZTwvbmFtZT4KKyAgICA8L2NvbnRyaWJ1dG9yPgorICAgIDxjb250cmlidXRvcj4KKyAgICAgIDxuYW1lPlNlYmFzdGllbiBSaW91PC9uYW1lPgorICAgIDwvY29udHJpYnV0b3I+CisgICAgPGNvbnRyaWJ1dG9yPgorICAgICAgPG5hbWU+QWxsb24gTXVyZWluaWs8L25hbWU+CisgICAgPC9jb250cmlidXRvcj4KKyAgICA8Y29udHJpYnV0b3I+CisgICAgICA8bmFtZT5BZGFtIEhvb3BlcjwvbmFtZT4KKyAgICA8L2NvbnRyaWJ1dG9yPgorICAgIDxjb250cmlidXRvcj4KKyAgICAgIDxuYW1lPkNocmlzIEthcmNoZXI8L25hbWU+CisgICAgPC9jb250cmlidXRvcj4KKyAgPC9jb250cmlidXRvcnM+CisKKyAgPCEtLSBMYW5nIHNob3VsZCBkZXBlbmQgb24gdmVyeSBsaXR0bGUgLS0+CisgIDxkZXBlbmRlbmNpZXM+CisgICAgPGRlcGVuZGVuY3k+CisgICAgICA8Z3JvdXBJZD5qdW5pdDwvZ3JvdXBJZD4KKyAgICAgIDxhcnRpZmFjdElkPmp1bml0PC9hcnRpZmFjdElkPgorICAgICAgPHZlcnNpb24+NC4xMTwvdmVyc2lvbj4KKyAgICAgIDxzY29wZT50ZXN0PC9zY29wZT4KKyAgICA8L2RlcGVuZGVuY3k+CisKKyAgICA8ZGVwZW5kZW5jeT4KKyAgICAgIDxncm91cElkPmNvbW1vbnMtaW88L2dyb3VwSWQ+CisgICAgICA8YXJ0aWZhY3RJZD5jb21tb25zLWlvPC9hcnRpZmFjdElkPgorICAgICAgPHZlcnNpb24+Mi40PC92ZXJzaW9uPgorICAgICAgPHNjb3BlPnRlc3Q8L3Njb3BlPgorICAgIDwvZGVwZW5kZW5jeT4KKworICAgIDxkZXBlbmRlbmN5PgorICAgICAgPGdyb3VwSWQ+b3JnLmVhc3ltb2NrPC9ncm91cElkPgorICAgICAgPGFydGlmYWN0SWQ+ZWFzeW1vY2s8L2FydGlmYWN0SWQ+CisgICAgICA8dmVyc2lvbj4zLjI8L3ZlcnNpb24+CisgICAgICA8c2NvcGU+dGVzdDwvc2NvcGU+CisgICAgPC9kZXBlbmRlbmN5PgorICA8L2RlcGVuZGVuY2llcz4KKworICA8ZGlzdHJpYnV0aW9uTWFuYWdlbWVudD4KKyAgICA8c2l0ZT4KKyAgICAgIDxpZD5hcGFjaGUud2Vic2l0ZTwvaWQ+CisgICAgICA8bmFtZT5BcGFjaGUgQ29tbW9ucyBTaXRlPC9uYW1lPgorICAgICAgPHVybD5zY206c3ZuOmh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvaW5mcmEvd2Vic2l0ZXMvcHJvZHVjdGlvbi9jb21tb25zL2NvbnRlbnQvcHJvcGVyL2NvbW1vbnMtbGFuZy88L3VybD4KKyAgICA8L3NpdGU+CisgIDwvZGlzdHJpYnV0aW9uTWFuYWdlbWVudD4KKworICA8cHJvcGVydGllcz4KKyAgICA8cHJvamVjdC5idWlsZC5zb3VyY2VFbmNvZGluZz5JU08tODg1OS0xPC9wcm9qZWN0LmJ1aWxkLnNvdXJjZUVuY29kaW5nPgorICAgIDxwcm9qZWN0LnJlcG9ydGluZy5vdXRwdXRFbmNvZGluZz5VVEYtODwvcHJvamVjdC5yZXBvcnRpbmcub3V0cHV0RW5jb2Rpbmc+CisgICAgPG1hdmVuLmNvbXBpbGVyLnNvdXJjZT4xLjY8L21hdmVuLmNvbXBpbGVyLnNvdXJjZT4KKyAgICA8bWF2ZW4uY29tcGlsZXIudGFyZ2V0PjEuNjwvbWF2ZW4uY29tcGlsZXIudGFyZ2V0PgorICAgIDwhLS0KKyAgICAgICBUaGlzIGlzIGFsc28gIHVzZWQgdG8gZ2VuZXJhdGUgZG93bmxvYWRfeHh4IGZpbGUgbmFtZS4KKyAgICAgICBUbyBvdmVycmlkZSB0aGlzIHdoZW4gZ2VuZXJhdGluZyB0aGUgZG93bmxvYWQgcGFnZToKKworICAgICAgIG12biBjb21tb25zOmRvd25sb2FkLXBhZ2UgLURjb21tb25zLmNvbXBvbmVudGlkPWxhbmcKKworICAgICAgIFRoZSBhYm92ZSBzZWVtcyB0byBjaGFuZ2UgdGhlIGRvd25sb2FkIHBhZ2UgbmFtZSBidXQgbm90IGFueSBvdGhlcgorICAgICAgIHByb3BlcnRpZXMgdGhhdCBkZXBlbmQgb24gdGhlIGNvbXBvbmVudGlkLgorICAgIC0tPgorICAgIDxjb21tb25zLmNvbXBvbmVudGlkPmxhbmczPC9jb21tb25zLmNvbXBvbmVudGlkPgorICAgIDwhLS0gQ3VycmVudCAzLnggcmVsZWFzZSBzZXJpZXMgLS0+CisgICAgPGNvbW1vbnMucmVsZWFzZS52ZXJzaW9uPjMuMy4yPC9jb21tb25zLnJlbGVhc2UudmVyc2lvbj4KKyAgICA8Y29tbW9ucy5yZWxlYXNlLmRlc2M+KEphdmEgNi4wKyk8L2NvbW1vbnMucmVsZWFzZS5kZXNjPgorICAgIDwhLS0gUHJldmlvdXMgMi54IHJlbGVhc2Ugc2VyaWVzIC0tPgorICAgIDxjb21tb25zLnJlbGVhc2UuMi52ZXJzaW9uPjIuNjwvY29tbW9ucy5yZWxlYXNlLjIudmVyc2lvbj4KKyAgICA8Y29tbW9ucy5yZWxlYXNlLjIuZGVzYz4oUmVxdWlyZXMgSmF2YSAxLjIgb3IgbGF0ZXIpPC9jb21tb25zLnJlbGVhc2UuMi5kZXNjPgorICAgIDwhLS0gT3ZlcnJpZGUgZ2VuZXJhdGVkIG5hbWUgLS0+CisgICAgPGNvbW1vbnMucmVsZWFzZS4yLm5hbWU+Y29tbW9ucy1sYW5nLSR7Y29tbW9ucy5yZWxlYXNlLjIudmVyc2lvbn08L2NvbW1vbnMucmVsZWFzZS4yLm5hbWU+CisgICAgPGNvbW1vbnMuamlyYS5pZD5MQU5HPC9jb21tb25zLmppcmEuaWQ+CisgICAgPGNvbW1vbnMuamlyYS5waWQ+MTIzMTA0ODE8L2NvbW1vbnMuamlyYS5waWQ+CisKKyAgICA8Y29tbW9ucy5zaXRlLnBhdGg+bGFuZzwvY29tbW9ucy5zaXRlLnBhdGg+CisgICAgPGNvbW1vbnMuc2NtUHViVXJsPmh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvaW5mcmEvd2Vic2l0ZXMvcHJvZHVjdGlvbi9jb21tb25zL2NvbnRlbnQvcHJvcGVyL2NvbW1vbnMtbGFuZzwvY29tbW9ucy5zY21QdWJVcmw+CisgICAgPGNvbW1vbnMuc2NtUHViQ2hlY2tvdXREaXJlY3Rvcnk+c2l0ZS1jb250ZW50PC9jb21tb25zLnNjbVB1YkNoZWNrb3V0RGlyZWN0b3J5PgorICA8L3Byb3BlcnRpZXM+CisKKworICA8YnVpbGQ+CisgICAgPHBsdWdpbnM+CisgICAgICA8cGx1Z2luPgorICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+CisgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLXN1cmVmaXJlLXBsdWdpbjwvYXJ0aWZhY3RJZD4KKyAgICAgICAgPGV4ZWN1dGlvbnM+CisgICAgICAgICAgPGV4ZWN1dGlvbj4KKyAgICAgICAgICAgIDxpZD5wbGFpbjwvaWQ+CisgICAgICAgICAgICA8Y29uZmlndXJhdGlvbj4KKyAgICAgICAgICAgICAgPGluY2x1ZGVzPgorICAgICAgICAgICAgICAgIDxpbmNsdWRlPioqLypUZXN0LmphdmE8L2luY2x1ZGU+CisgICAgICAgICAgICAgIDwvaW5jbHVkZXM+CisgICAgICAgICAgICAgIDxydW5PcmRlcj5yYW5kb208L3J1bk9yZGVyPgorICAgICAgICAgICAgPC9jb25maWd1cmF0aW9uPgorICAgICAgICAgIDwvZXhlY3V0aW9uPgorICAgICAgICAgIDwhLS0gPGV4ZWN1dGlvbj4gPGlkPnNlY3VyaXR5LW1hbmFnZXItdGVzdDwvaWQ+IDxwaGFzZT5pbnRlZ3JhdGlvbi10ZXN0PC9waGFzZT4gPGdvYWxzPiA8Z29hbD50ZXN0PC9nb2FsPiA8L2dvYWxzPiA8Y29uZmlndXJhdGlvbj4KKyAgICAgICAgICAgIDxpbmNsdWRlcz4gPGluY2x1ZGU+KiovKlRlc3QuamF2YTwvaW5jbHVkZT4gPC9pbmNsdWRlcz4gPGFyZ0xpbmU+LURqYXZhLnNlY3VyaXR5Lm1hbmFnZXIgLURqYXZhLnNlY3VyaXR5LnBvbGljeT0ke2Jhc2VkaXJ9L3NyYy90ZXN0L3Jlc291cmNlcy9qYXZhLnBvbGljeTwvYXJnTGluZT4KKyAgICAgICAgICAgIDwvY29uZmlndXJhdGlvbj4gPC9leGVjdXRpb24+IC0tPgorICAgICAgICA8L2V4ZWN1dGlvbnM+CisgICAgICA8L3BsdWdpbj4KKyAgICAgIDxwbHVnaW4+CisgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLWFzc2VtYmx5LXBsdWdpbjwvYXJ0aWZhY3RJZD4KKyAgICAgICAgPGNvbmZpZ3VyYXRpb24+CisgICAgICAgICAgPGRlc2NyaXB0b3JzPgorICAgICAgICAgICAgPGRlc2NyaXB0b3I+c3JjL2Fzc2VtYmx5L2Jpbi54bWw8L2Rlc2NyaXB0b3I+CisgICAgICAgICAgICA8ZGVzY3JpcHRvcj5zcmMvYXNzZW1ibHkvc3JjLnhtbDwvZGVzY3JpcHRvcj4KKyAgICAgICAgICA8L2Rlc2NyaXB0b3JzPgorICAgICAgICAgIDx0YXJMb25nRmlsZU1vZGU+Z251PC90YXJMb25nRmlsZU1vZGU+CisgICAgICAgIDwvY29uZmlndXJhdGlvbj4KKyAgICAgIDwvcGx1Z2luPgorICAgICAgPHBsdWdpbj4KKyAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPgorICAgICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1qYXItcGx1Z2luPC9hcnRpZmFjdElkPgorICAgICAgICA8ZXhlY3V0aW9ucz4KKyAgICAgICAgICA8ZXhlY3V0aW9uPgorICAgICAgICAgICAgPGdvYWxzPgorICAgICAgICAgICAgICA8Z29hbD50ZXN0LWphcjwvZ29hbD4KKyAgICAgICAgICAgIDwvZ29hbHM+CisgICAgICAgICAgPC9leGVjdXRpb24+CisgICAgICAgIDwvZXhlY3V0aW9ucz4KKyAgICAgIDwvcGx1Z2luPgorICAgICAgPHBsdWdpbj4KKyAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPgorICAgICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1zY20tcHVibGlzaC1wbHVnaW48L2FydGlmYWN0SWQ+CisgICAgICAgIDxjb25maWd1cmF0aW9uPgorICAgICAgICAgIDxpZ25vcmVQYXRoc1RvRGVsZXRlPgorICAgICAgICAgICAgPGlnbm9yZVBhdGhUb0RlbGV0ZT5qYXZhZG9jczwvaWdub3JlUGF0aFRvRGVsZXRlPgorICAgICAgICAgIDwvaWdub3JlUGF0aHNUb0RlbGV0ZT4KKyAgICAgICAgPC9jb25maWd1cmF0aW9uPgorICAgICAgPC9wbHVnaW4+CisgICAgPC9wbHVnaW5zPgorCisgIDwvYnVpbGQ+CisKKyAgPHJlcG9ydGluZz4KKyAgICA8cGx1Z2lucz4KKyAgICAgIDxwbHVnaW4+CisgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLWNoZWNrc3R5bGUtcGx1Z2luPC9hcnRpZmFjdElkPgorICAgICAgICA8dmVyc2lvbj4yLjkuMTwvdmVyc2lvbj4KKyAgICAgICAgPGNvbmZpZ3VyYXRpb24+CisgICAgICAgICAgPGNvbmZpZ0xvY2F0aW9uPiR7YmFzZWRpcn0vY2hlY2tzdHlsZS54bWw8L2NvbmZpZ0xvY2F0aW9uPgorICAgICAgICAgIDxlbmFibGVSdWxlc1N1bW1hcnk+ZmFsc2U8L2VuYWJsZVJ1bGVzU3VtbWFyeT4KKyAgICAgICAgPC9jb25maWd1cmF0aW9uPgorICAgICAgICA8cmVwb3J0U2V0cz4KKyAgICAgICAgICA8cmVwb3J0U2V0PgorICAgICAgICAgICAgPHJlcG9ydHM+CisgICAgICAgICAgICAgIDxyZXBvcnQ+Y2hlY2tzdHlsZTwvcmVwb3J0PgorICAgICAgICAgICAgPC9yZXBvcnRzPgorICAgICAgICAgIDwvcmVwb3J0U2V0PgorICAgICAgICA8L3JlcG9ydFNldHM+CisgICAgICA8L3BsdWdpbj4KKyAgICAgIDwhLS0gUmVxdWlyZXMgc2V0dGluZyAnZXhwb3J0IE1BVkVOX09QVFM9Ii1YbXg1MTJtIiAnIC0tPgorICAgICAgPHBsdWdpbj4KKyAgICAgICAgPGdyb3VwSWQ+b3JnLmNvZGVoYXVzLm1vam88L2dyb3VwSWQ+CisgICAgICAgIDxhcnRpZmFjdElkPmZpbmRidWdzLW1hdmVuLXBsdWdpbjwvYXJ0aWZhY3RJZD4KKyAgICAgICAgPHZlcnNpb24+Mi41LjI8L3ZlcnNpb24+CisgICAgICAgIDxjb25maWd1cmF0aW9uPgorICAgICAgICAgIDx0aHJlc2hvbGQ+Tm9ybWFsPC90aHJlc2hvbGQ+CisgICAgICAgICAgPGVmZm9ydD5EZWZhdWx0PC9lZmZvcnQ+CisgICAgICAgICAgPGV4Y2x1ZGVGaWx0ZXJGaWxlPiR7YmFzZWRpcn0vZmluZGJ1Z3MtZXhjbHVkZS1maWx0ZXIueG1sPC9leGNsdWRlRmlsdGVyRmlsZT4KKyAgICAgICAgPC9jb25maWd1cmF0aW9uPgorICAgICAgPC9wbHVnaW4+CisgICAgICA8cGx1Z2luPgorICAgICAgICA8Z3JvdXBJZD5vcmcuY29kZWhhdXMubW9qbzwvZ3JvdXBJZD4KKyAgICAgICAgPGFydGlmYWN0SWQ+Y29iZXJ0dXJhLW1hdmVuLXBsdWdpbjwvYXJ0aWZhY3RJZD4KKyAgICAgICAgPHZlcnNpb24+Mi41LjE8L3ZlcnNpb24+CisgICAgICA8L3BsdWdpbj4KKyAgICAgIDxwbHVnaW4+CisgICAgICAgIDxncm91cElkPm9yZy5jb2RlaGF1cy5tb2pvPC9ncm91cElkPgorICAgICAgICA8YXJ0aWZhY3RJZD5jbGlyci1tYXZlbi1wbHVnaW48L2FydGlmYWN0SWQ+CisgICAgICAgIDx2ZXJzaW9uPjIuNDwvdmVyc2lvbj4KKyAgICAgICAgPGNvbmZpZ3VyYXRpb24+CisgICAgICAgICAgPG1pblNldmVyaXR5PmluZm88L21pblNldmVyaXR5PgorICAgICAgICA8L2NvbmZpZ3VyYXRpb24+CisgICAgICA8L3BsdWdpbj4KKyAgICAgIDxwbHVnaW4+CisgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLXBtZC1wbHVnaW48L2FydGlmYWN0SWQ+CisgICAgICAgIDx2ZXJzaW9uPjMuMC4xPC92ZXJzaW9uPgorICAgICAgICA8Y29uZmlndXJhdGlvbj4KKyAgICAgICAgICA8dGFyZ2V0SmRrPiR7bWF2ZW4uY29tcGlsZS50YXJnZXR9PC90YXJnZXRKZGs+CisgICAgICAgIDwvY29uZmlndXJhdGlvbj4KKyAgICAgICAgPHJlcG9ydFNldHM+CisgICAgICAgICAgPHJlcG9ydFNldD4KKyAgICAgICAgICAgIDxyZXBvcnRzPgorICAgICAgICAgICAgICA8cmVwb3J0PnBtZDwvcmVwb3J0PgorICAgICAgICAgICAgICA8cmVwb3J0PmNwZDwvcmVwb3J0PgorICAgICAgICAgICAgPC9yZXBvcnRzPgorICAgICAgICAgIDwvcmVwb3J0U2V0PgorICAgICAgICA8L3JlcG9ydFNldHM+CisgICAgICA8L3BsdWdpbj4KKyAgICAgIDxwbHVnaW4+CisgICAgICAgIDxncm91cElkPm9yZy5jb2RlaGF1cy5tb2pvPC9ncm91cElkPgorICAgICAgICA8YXJ0aWZhY3RJZD50YWdsaXN0LW1hdmVuLXBsdWdpbjwvYXJ0aWZhY3RJZD4KKyAgICAgICAgPHZlcnNpb24+Mi40PC92ZXJzaW9uPgorICAgICAgICA8Y29uZmlndXJhdGlvbj4KKyAgICAgICAgICA8dGFncz4KKyAgICAgICAgICAgIDx0YWc+VE9ETzwvdGFnPgorICAgICAgICAgICAgPHRhZz5OT1BNRDwvdGFnPgorICAgICAgICAgICAgPHRhZz5OT1RFPC90YWc+CisgICAgICAgICAgPC90YWdzPgorICAgICAgICA8L2NvbmZpZ3VyYXRpb24+CisgICAgICA8L3BsdWdpbj4KKyAgICAgIDxwbHVnaW4+CisgICAgICAgIDxncm91cElkPm9yZy5jb2RlaGF1cy5tb2pvPC9ncm91cElkPgorICAgICAgICA8YXJ0aWZhY3RJZD5qYXZhbmNzcy1tYXZlbi1wbHVnaW48L2FydGlmYWN0SWQ+CisgICAgICAgIDx2ZXJzaW9uPjIuMDwvdmVyc2lvbj4KKyAgICAgIDwvcGx1Z2luPgorICAgICAgPHBsdWdpbj4KKyAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5yYXQ8L2dyb3VwSWQ+CisgICAgICAgIDxhcnRpZmFjdElkPmFwYWNoZS1yYXQtcGx1Z2luPC9hcnRpZmFjdElkPgorICAgICAgICA8Y29uZmlndXJhdGlvbj4KKyAgICAgICAgICA8ZXhjbHVkZXM+CisgICAgICAgICAgICA8ZXhjbHVkZT5zaXRlLWNvbnRlbnQvKio8L2V4Y2x1ZGU+CisgICAgICAgICAgICA8ZXhjbHVkZT5zcmMvc2l0ZS9yZXNvdXJjZXMvZG93bmxvYWRfbGFuZy5jZ2k8L2V4Y2x1ZGU+CisgICAgICAgICAgICA8ZXhjbHVkZT5zcmMvc2l0ZS9yZXNvdXJjZXMvcmVsZWFzZS1ub3Rlcy9SRUxFQVNFLU5PVEVTLSoudHh0PC9leGNsdWRlPgorICAgICAgICAgICAgPGV4Y2x1ZGU+c3JjL3Rlc3QvcmVzb3VyY2VzL2xhbmctNzA4LWlucHV0LnR4dDwvZXhjbHVkZT4KKyAgICAgICAgICA8L2V4Y2x1ZGVzPgorICAgICAgICA8L2NvbmZpZ3VyYXRpb24+CisgICAgICA8L3BsdWdpbj4KKyAgICA8L3BsdWdpbnM+CisgIDwvcmVwb3J0aW5nPgorCisgIDxwcm9maWxlcz4KKyAgICA8cHJvZmlsZT4KKyAgICAgIDxpZD5zZXR1cC1jaGVja291dDwvaWQ+CisgICAgICA8YWN0aXZhdGlvbj4KKyAgICAgICAgPGZpbGU+CisgICAgICAgICAgPG1pc3Npbmc+c2l0ZS1jb250ZW50PC9taXNzaW5nPgorICAgICAgICA8L2ZpbGU+CisgICAgICA8L2FjdGl2YXRpb24+CisgICAgICA8YnVpbGQ+CisgICAgICAgIDxwbHVnaW5zPgorICAgICAgICAgIDxwbHVnaW4+CisgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+CisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1hbnRydW4tcGx1Z2luPC9hcnRpZmFjdElkPgorICAgICAgICAgICAgPHZlcnNpb24+MS43PC92ZXJzaW9uPgorICAgICAgICAgICAgPGV4ZWN1dGlvbnM+CisgICAgICAgICAgICAgIDxleGVjdXRpb24+CisgICAgICAgICAgICAgICAgPGlkPnByZXBhcmUtY2hlY2tvdXQ8L2lkPgorICAgICAgICAgICAgICAgIDxwaGFzZT5wcmUtc2l0ZTwvcGhhc2U+CisgICAgICAgICAgICAgICAgPGdvYWxzPgorICAgICAgICAgICAgICAgICAgPGdvYWw+cnVuPC9nb2FsPgorICAgICAgICAgICAgICAgIDwvZ29hbHM+CisgICAgICAgICAgICAgICAgPGNvbmZpZ3VyYXRpb24+CisgICAgICAgICAgICAgICAgICA8dGFza3M+CisgICAgICAgICAgICAgICAgICAgIDxleGVjIGV4ZWN1dGFibGU9InN2biI+CisgICAgICAgICAgICAgICAgICAgICAgPGFyZyBsaW5lPSJjaGVja291dCAtLWRlcHRoIGltbWVkaWF0ZXMgJHtjb21tb25zLnNjbVB1YlVybH0gJHtjb21tb25zLnNjbVB1YkNoZWNrb3V0RGlyZWN0b3J5fSIgLz4KKyAgICAgICAgICAgICAgICAgICAgPC9leGVjPgorCisgICAgICAgICAgICAgICAgICAgIDxleGVjIGV4ZWN1dGFibGU9InN2biI+CisgICAgICAgICAgICAgICAgICAgICAgPGFyZyBsaW5lPSJ1cGRhdGUgLS1zZXQtZGVwdGggZXhjbHVkZSAke2NvbW1vbnMuc2NtUHViQ2hlY2tvdXREaXJlY3Rvcnl9L2phdmFkb2NzIiAvPgorICAgICAgICAgICAgICAgICAgICA8L2V4ZWM+CisKKyAgICAgICAgICAgICAgICAgICAgPHBhdGhjb252ZXJ0IHBhdGhzZXA9IiAiIHByb3BlcnR5PSJkaXJzIj4KKyAgICAgICAgICAgICAgICAgICAgICA8ZGlyc2V0IGRpcj0iJHtjb21tb25zLnNjbVB1YkNoZWNrb3V0RGlyZWN0b3J5fSIgaW5jbHVkZXM9IioiIC8+CisgICAgICAgICAgICAgICAgICAgIDwvcGF0aGNvbnZlcnQ+CisgICAgICAgICAgICAgICAgICAgIDxleGVjIGV4ZWN1dGFibGU9InN2biI+CisgICAgICAgICAgICAgICAgICAgICAgPGFyZyBsaW5lPSJ1cGRhdGUgLS1zZXQtZGVwdGggaW5maW5pdHkgJHtkaXJzfSIgLz4KKyAgICAgICAgICAgICAgICAgICAgPC9leGVjPgorICAgICAgICAgICAgICAgICAgPC90YXNrcz4KKyAgICAgICAgICAgICAgICA8L2NvbmZpZ3VyYXRpb24+CisgICAgICAgICAgICAgIDwvZXhlY3V0aW9uPgorICAgICAgICAgICAgPC9leGVjdXRpb25zPgorICAgICAgICAgIDwvcGx1Z2luPgorICAgICAgICA8L3BsdWdpbnM+CisgICAgICA8L2J1aWxkPgorICAgIDwvcHJvZmlsZT4KKyAgPC9wcm9maWxlcz4KKworPC9wcm9qZWN0PgpkaWZmIC0tZ2l0IGEvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2FwYWNoZS9jb21tb25zL2NvbW1vbnMtbGFuZzMvMy4zLjIvY29tbW9ucy1sYW5nMy0zLjMuMi5wb20uc2hhMSBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9hcGFjaGUvY29tbW9ucy9jb21tb25zLWxhbmczLzMuMy4yL2NvbW1vbnMtbGFuZzMtMy4zLjIucG9tLnNoYTEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGZhMjE3YQotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9hcGFjaGUvY29tbW9ucy9jb21tb25zLWxhbmczLzMuMy4yL2NvbW1vbnMtbGFuZzMtMy4zLjIucG9tLnNoYTEKQEAgLTAsMCArMSBAQAorOTMyZWQ4MjI2ZjM3MWIyMDRkMDRhOGM0ZDNkNWZlMGYyYjI2MzM5ZgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9hcGFjaGUvY29tbW9ucy9jb21tb25zLXBhcmVudC8zNS9fcmVtb3RlLnJlcG9zaXRvcmllcyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9hcGFjaGUvY29tbW9ucy9jb21tb25zLXBhcmVudC8zNS9fcmVtb3RlLnJlcG9zaXRvcmllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYTY4OThmCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2FwYWNoZS9jb21tb25zL2NvbW1vbnMtcGFyZW50LzM1L19yZW1vdGUucmVwb3NpdG9yaWVzCkBAIC0wLDAgKzEsMyBAQAorI05PVEU6IFRoaXMgaXMgYW4gQWV0aGVyIGludGVybmFsIGltcGxlbWVudGF0aW9uIGZpbGUsIGl0cyBmb3JtYXQgY2FuIGJlIGNoYW5nZWQgd2l0aG91dCBwcmlvciBub3RpY2UuCisjV2VkIEp1bCAyMiAxNDoyMjozMCBQRFQgMjAxNQorY29tbW9ucy1wYXJlbnQtMzUucG9tPmNlbnRyYWw9CmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvYXBhY2hlL2NvbW1vbnMvY29tbW9ucy1wYXJlbnQvMzUvY29tbW9ucy1wYXJlbnQtMzUucG9tIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2FwYWNoZS9jb21tb25zL2NvbW1vbnMtcGFyZW50LzM1L2NvbW1vbnMtcGFyZW50LTM1LnBvbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iODQwNTA2Ci0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2FwYWNoZS9jb21tb25zL2NvbW1vbnMtcGFyZW50LzM1L2NvbW1vbnMtcGFyZW50LTM1LnBvbQpAQCAtMCwwICsxLDE0MzcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4NCis8IS0tDQorDQorICAgTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlDQorICAgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZSBkaXN0cmlidXRlZCB3aXRoDQorICAgdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLg0KKyAgIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlIHRvIFlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wDQorICAgKHRoZSAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGgNCisgICB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdA0KKw0KKyAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjANCisNCisgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlDQorICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywNCisgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4NCisgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kDQorICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuDQorDQorLS0+DQorPHByb2plY3QgeG1sbnM9Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAgaHR0cDovL21hdmVuLmFwYWNoZS5vcmcveHNkL21hdmVuLTQuMC4wLnhzZCI+DQorICA8bW9kZWxWZXJzaW9uPjQuMC4wPC9tb2RlbFZlcnNpb24+DQorICA8cGFyZW50Pg0KKyAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlPC9ncm91cElkPg0KKyAgICA8YXJ0aWZhY3RJZD5hcGFjaGU8L2FydGlmYWN0SWQ+DQorICAgIDx2ZXJzaW9uPjE1PC92ZXJzaW9uPg0KKyAgPC9wYXJlbnQ+DQorICA8Z3JvdXBJZD5vcmcuYXBhY2hlLmNvbW1vbnM8L2dyb3VwSWQ+DQorICA8YXJ0aWZhY3RJZD5jb21tb25zLXBhcmVudDwvYXJ0aWZhY3RJZD4NCisgIDxwYWNrYWdpbmc+cG9tPC9wYWNrYWdpbmc+DQorICA8dmVyc2lvbj4zNTwvdmVyc2lvbj4NCisgIDxuYW1lPkFwYWNoZSBDb21tb25zIFBhcmVudDwvbmFtZT4NCisgIDx1cmw+aHR0cDovL2NvbW1vbnMuYXBhY2hlLm9yZy88L3VybD4NCisgIDxkZXNjcmlwdGlvbj5UaGUgQXBhY2hlIENvbW1vbnMgUGFyZW50IFBPTSBwcm92aWRlcyBjb21tb24gc2V0dGluZ3MgZm9yIGFsbCBBcGFjaGUgQ29tbW9ucyBjb21wb25lbnRzLjwvZGVzY3JpcHRpb24+DQorDQorPCEtLQ0KK1ZlcnNpb24gMzU6DQorDQorLSBTdXBwcmVzcyB0ZXN0IEphdmFkb2NzDQorLSBVcGRhdGUgSmFDb0NvIC0+IDAuNy4yLjIwMTQwOTEyMTY0NA0KKy0gVXBkYXRlIG1hdmVuLWNvbXBpbGVyLXBsdWdpbiB0byAzLjEgLT4gMy4yDQorLSBVcGRhdGUgbWF2ZW4tc291cmNlLXBsdWdpbiB0byAyLjIuMSAtPiAyLjQNCistIFVwZGF0ZSBtYXZlbi1zaXRlLXBsdWdpbiAzLjMgLT4gMy40DQorLSBVcGRhdGUgbWF2ZW4tZ3BnLXBsdWdpbiAxLjQgLT4gMS41DQorLSBVcGRhdGUgbWF2ZW4tamFyLXBsdWdpbiAyLjQgLT4gMi41DQorLSBVcGRhdGUgbWF2ZW4tcmVsZWFzZS1wbHVnaW4gMi40LjIgLT4gMi41LjENCistIFVwZGF0ZSBtYXZlbi1idW5kbGUtcGx1Z2luIDIuNC4wIC0+IDIuNS4zDQorLSBVcGRhdGUgYnVpbGRudW1iZXItbWF2ZW4tcGx1Z2luIDEuMiAtPiAxLjMNCistIFVwZGF0ZSB3YWdvbi1zc2ggMi4zIC0+IDIuNg0KKy0gVXBkYXRlIG1hdmVuLXNjbS1wdWJsaXNoLXBsdWdpbiAxLjAgLT4gMS4xDQorLSBVcGRhdGUgamRlcGVuZC1tYXZlbi1wbHVnaW4gMi4wLWJldGEtMiAtPiAyLjANCistIFVwZGF0ZSBhcGFjaGUtcmF0LXBsdWdpbiAwLjEwIC0+IDAuMTENCistIFVwZGF0ZSBtYXZlbi1jbGVhbi1wbHVnaW4gMi41IC0+IDIuNi4NCistIFVwZGF0ZSBtYXZlbi1jaGFuZ2VzLXBsdWdpbiAyLjkgLT4gMi4xMQ0KKy0gVXBkYXRlIG1hdmVuLWRlcGxveS1wbHVnaW4gMi44LjEgLT4gMi44LjINCistIFVwZGF0ZSBtYXZlbi1pbnN0YWxsLXBsdWdpbiAyLjUuMSAtPiAyLjUuMg0KKy0gVXBkYXRlIG1hdmVuLWphdmFkaWMtcGx1Z2luIDIuOS4xIC0+IDIuMTAuMQ0KKy0gVXBkYXRlIGFwYWNoZSAxMyAtPiAxNQ0KKy0gQWRkIHByb3BlcnR5IGNvbW1vbnMuZmluZGJ1Z3MudmVyc2lvbi4NCisNCisgLS0+DQorDQorICA8IS0tIE1hdmVuIHZlcnNpb25zIHBsdWdpbiByZXBvcnRzIGFuIGVycm9yIGlmIHRoaXMgaXMgb21pdHRlZCAtLT4NCisgIDxwcmVyZXF1aXNpdGVzPg0KKyAgICA8bWF2ZW4+My4wPC9tYXZlbj4NCisgIDwvcHJlcmVxdWlzaXRlcz4NCisNCisgIDxjaU1hbmFnZW1lbnQ+DQorICAgIDxzeXN0ZW0+Y29udGludXVtPC9zeXN0ZW0+DQorICAgIDx1cmw+aHR0cHM6Ly9jb250aW51dW0tY2kuYXBhY2hlLm9yZy88L3VybD4NCisgIDwvY2lNYW5hZ2VtZW50Pg0KKw0KKyAgPCEtLQ0KKyAgICBTdGFydGluZyB3aXRoIHZlcnNpb24gMjIsIHRoZSBSQVQgcGx1Z2luIGhhcyBjaGFuZ2VkIE1hdmVuIGdyb3VwIGFuZCBpZCwgc28gYW55IGV4aXN0aW5nIGNvbmZpZ3VyYXRpb24NCisgICAgbmVlZHMgdG8gYmUgdXBkYXRlZC4NCisgICAgVG8gZml4IGNvbXBvbmVudCBQT01zLCBwbGVhc2UgY2hhbmdlIGFueSBvY2N1cnJlbmNlcyBvZjoNCisgICAgICAgIDxncm91cElkPm9yZy5jb2RlaGF1cy5tb2pvPC9ncm91cElkPg0KKyAgICAgICAgPGFydGlmYWN0SWQ+cmF0LW1hdmVuLXBsdWdpbjwvYXJ0aWZhY3RJZD4NCisgICAgdG8gdGhlIG5ldyB2YWx1ZXM6DQorICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLnJhdDwvZ3JvdXBJZD4NCisgICAgICAgIDxhcnRpZmFjdElkPmFwYWNoZS1yYXQtcGx1Z2luPC9hcnRpZmFjdElkPg0KKw0KKyAgICBTaXRlIGRlcGxveW1lbnQNCisgICAgPT09PT09PT09PT09PT09DQorICAgIENhbm5vdCBkZWZpbmUgdGhpcyBoZXJlIGF0IHByZXNlbnQsIHNlZSBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL0NPTU1PTlNTSVRFLTI2Lg0KKw0KKyAgICBUaGUgZm9sbG93aW5nIHNob3VsZCBiZSBhZGRlZCB0byB0aGUgY29tcG9uZW50IFBPTToNCisNCisgICAgPGRpc3RyaWJ1dGlvbk1hbmFnZW1lbnQ+DQorICAgICAgPHNpdGU+DQorICAgICAgICA8aWQ+Y29tbW9ucy5zaXRlPC9pZD4NCisgICAgICAgIDxuYW1lPkFwYWNoZSBDb21tb25zIFNpdGUgU1ZOPC9uYW1lPg0KKyAgICAgICAgPHVybD5zY206c3ZuOiR7Y29tbW9ucy5zY21QdWJVcmx9PC91cmw+DQorICAgICAgPC9zaXRlPg0KKyAgICA8L2Rpc3RyaWJ1dGlvbk1hbmFnZW1lbnQ+DQorDQorICAgIEFsdGVybmF0aXZlbHkgeW91IGNhbiBtYXAgdGhlIGNvbXBvbmVudCdzIGV4aXN0aW5nIHNpdGUgaWQgdG8gdGhlDQorICAgIGNvbW1vbnMuc2NtUHViU2VydmVyIHByb3BlcnR5Lg0KKw0KKyAgICBDb3ZlcmFnZSB0b29sIHNlbGVjdGlvbg0KKyAgICA9PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgICBTdGFydGluZyB3aXRoIHJlbGVhc2UgMzAsIHRoZXJlIGFyZSBvcHRpb25hbCBwcm9maWxlcyBmb3IgYm90aCBDb2JlcnR1cmEgYW5kIEphQ29Dby4NCisgICAgVGhlc2UgY2FuIGJlIGVuYWJsZWQgaW5kZXBlbmRlbnRseSBvbiB0aGUgY29tbWFuZC1saW5lOg0KKw0KKyAgICBtdm4gc2l0ZSAtUGNvYmVydHVyYSAtUGphY29jbw0KKw0KKyAgICBPciB0aGUgY29tcG9uZW50IGNhbiBkZWZpbmUgYSBkZWZhdWx0IGNvdmVyYWdlIHRvb2wgYnkgY3JlYXRpbmcgZWl0aGVyIChvciBib3RoKSBvZiB0aGUgZm9sbG93aW5nIGZpbGVzOg0KKw0KKyAgICBzcmMvc2l0ZS9yZXNvdXJjZXMvcHJvZmlsZS5jb2JlcnR1cmENCisgICAgc3JjL3NpdGUvcmVzb3VyY2VzL3Byb2ZpbGUuamFjb2NvDQorDQorICAgIFRoZXNlIGNhbiBsYXRlciBiZSBvdmVycmlkZGVuIGJ5IGNhbmNlbGxpbmcgdGhlIHByb2ZpbGU6DQorDQorICAgIG12biBzaXRlIC1QIWphY29jbw0KKw0KKyAgLS0+DQorDQorICA8IS0tDQorICAgIFRoaXMgc2VjdGlvbiAqbXVzdCogYmUgb3ZlcndyaXR0ZW4gYnkgc3VicHJvamVjdHMuIEl0IGlzIG9ubHkgdG8gYWxsb3cNCisgICAgYSByZWxlYXNlIG9mIHRoZSBjb21tb25zLXBhcmVudCBQT00uDQorICAtLT4NCisgIDxzY20+DQorICAgIDxjb25uZWN0aW9uPnNjbTpzdm46aHR0cDovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2FzZi9jb21tb25zL3Byb3Blci9jb21tb25zLXBhcmVudC90cnVuazwvY29ubmVjdGlvbj4NCisgICAgPGRldmVsb3BlckNvbm5lY3Rpb24+c2NtOnN2bjpodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2FzZi9jb21tb25zL3Byb3Blci9jb21tb25zLXBhcmVudC90cnVuazwvZGV2ZWxvcGVyQ29ubmVjdGlvbj4NCisgICAgPHVybD5odHRwOi8vc3ZuLmFwYWNoZS5vcmcvdmlld3ZjL2NvbW1vbnMvcHJvcGVyL2NvbW1vbnMtcGFyZW50L3RydW5rPC91cmw+DQorICA8L3NjbT4NCisNCisgIDxtYWlsaW5nTGlzdHM+DQorICAgIDwhLS0gTi5CLiBjb21tb25zLXNpdGUgbm93IHVzZXMgdGhlIEFwYWNoZSBQT00gc28gaGFzIGl0cyBvd24gY29weSBvZiB0aGUgbWFpbGluZyBsaXN0IGRlZmluaXRpb25zIC0tPg0KKyAgICA8IS0tDQorICAgICAgICBDb21wb25lbnRzIHNob3VsZCBub3JtYWxseSBvdmVycmlkZSB0aGUgZGVmYXVsdCBtYWlsaW5nIGxpc3QgcmVwb3J0IGJ5IHVzaW5nIHRoZSBjb21uYW5kDQorICAgICAgICBtdm4gY29tbW9uczptYWlsLXBhZ2UNCisgICAgICAgIFRoaXMgZ2VuZXJhdGVzIHRoZSBmaWxlIHNyYy9zaXRlL3hkb2MvbWFpbC1saXN0cy54bWwgd2hpY2ggd2hlbiBwcm9jZXNzZWQgd2lsbCByZXBsYWNlIHRoZSBQSVIgdmVyc2lvbi4NCisgICAgIC0tPg0KKyAgICA8IS0tIENoYW5nZXMgdG8gdGhpcyBsaXN0IHNob3VsZCBiZSBzeW5jaHJvbmlzZWQgd2l0aCB0aGUgY29tbW9ucyBidWlsZCBwbHVnaW4gLS0+DQorICAgIDxtYWlsaW5nTGlzdD4NCisgICAgICA8bmFtZT5Db21tb25zIFVzZXIgTGlzdDwvbmFtZT4NCisgICAgICA8c3Vic2NyaWJlPnVzZXItc3Vic2NyaWJlQGNvbW1vbnMuYXBhY2hlLm9yZzwvc3Vic2NyaWJlPg0KKyAgICAgIDx1bnN1YnNjcmliZT51c2VyLXVuc3Vic2NyaWJlQGNvbW1vbnMuYXBhY2hlLm9yZzwvdW5zdWJzY3JpYmU+DQorICAgICAgPHBvc3Q+dXNlckBjb21tb25zLmFwYWNoZS5vcmc8L3Bvc3Q+DQorICAgICAgPGFyY2hpdmU+aHR0cDovL21haWwtYXJjaGl2ZXMuYXBhY2hlLm9yZy9tb2RfbWJveC9jb21tb25zLXVzZXIvPC9hcmNoaXZlPg0KKyAgICAgIDxvdGhlckFyY2hpdmVzPg0KKyAgICAgICAgPG90aGVyQXJjaGl2ZT5odHRwOi8vbWFya21haWwub3JnL2xpc3Qvb3JnLmFwYWNoZS5jb21tb25zLnVzZXJzLzwvb3RoZXJBcmNoaXZlPg0KKyAgICAgICAgPG90aGVyQXJjaGl2ZT5odHRwOi8vb2xkLm5hYmJsZS5jb20vQ29tbW9ucy0tLVVzZXItZjMxOS5odG1sPC9vdGhlckFyY2hpdmU+DQorICAgICAgICA8b3RoZXJBcmNoaXZlPmh0dHA6Ly93d3cubWFpbC1hcmNoaXZlLmNvbS91c2VyQGNvbW1vbnMuYXBhY2hlLm9yZy88L290aGVyQXJjaGl2ZT4NCisgICAgICAgIDxvdGhlckFyY2hpdmU+aHR0cDovL25ld3MuZ21hbmUub3JnL2dtYW5lLmNvbXAuamFrYXJ0YS5jb21tb25zLnVzZXI8L290aGVyQXJjaGl2ZT4NCisgICAgICA8L290aGVyQXJjaGl2ZXM+DQorICAgIDwvbWFpbGluZ0xpc3Q+DQorICAgIDxtYWlsaW5nTGlzdD4NCisgICAgICA8bmFtZT5Db21tb25zIERldiBMaXN0PC9uYW1lPg0KKyAgICAgIDxzdWJzY3JpYmU+ZGV2LXN1YnNjcmliZUBjb21tb25zLmFwYWNoZS5vcmc8L3N1YnNjcmliZT4NCisgICAgICA8dW5zdWJzY3JpYmU+ZGV2LXVuc3Vic2NyaWJlQGNvbW1vbnMuYXBhY2hlLm9yZzwvdW5zdWJzY3JpYmU+DQorICAgICAgPHBvc3Q+ZGV2QGNvbW1vbnMuYXBhY2hlLm9yZzwvcG9zdD4NCisgICAgICA8YXJjaGl2ZT5odHRwOi8vbWFpbC1hcmNoaXZlcy5hcGFjaGUub3JnL21vZF9tYm94L2NvbW1vbnMtZGV2LzwvYXJjaGl2ZT4NCisgICAgICA8b3RoZXJBcmNoaXZlcz4NCisgICAgICAgIDxvdGhlckFyY2hpdmU+aHR0cDovL21hcmttYWlsLm9yZy9saXN0L29yZy5hcGFjaGUuY29tbW9ucy5kZXYvPC9vdGhlckFyY2hpdmU+DQorICAgICAgICA8b3RoZXJBcmNoaXZlPmh0dHA6Ly9vbGQubmFiYmxlLmNvbS9Db21tb25zLS0tRGV2LWYzMTcuaHRtbDwvb3RoZXJBcmNoaXZlPg0KKyAgICAgICAgPG90aGVyQXJjaGl2ZT5odHRwOi8vd3d3Lm1haWwtYXJjaGl2ZS5jb20vZGV2QGNvbW1vbnMuYXBhY2hlLm9yZy88L290aGVyQXJjaGl2ZT4NCisgICAgICAgIDxvdGhlckFyY2hpdmU+aHR0cDovL25ld3MuZ21hbmUub3JnL2dtYW5lLmNvbXAuamFrYXJ0YS5jb21tb25zLmRldmVsPC9vdGhlckFyY2hpdmU+DQorICAgICAgPC9vdGhlckFyY2hpdmVzPg0KKyAgICA8L21haWxpbmdMaXN0Pg0KKyAgICA8bWFpbGluZ0xpc3Q+DQorICAgICAgPG5hbWU+Q29tbW9ucyBJc3N1ZXMgTGlzdDwvbmFtZT4NCisgICAgICA8c3Vic2NyaWJlPmlzc3Vlcy1zdWJzY3JpYmVAY29tbW9ucy5hcGFjaGUub3JnPC9zdWJzY3JpYmU+DQorICAgICAgPHVuc3Vic2NyaWJlPmlzc3Vlcy11bnN1YnNjcmliZUBjb21tb25zLmFwYWNoZS5vcmc8L3Vuc3Vic2NyaWJlPg0KKyAgICAgIDxhcmNoaXZlPmh0dHA6Ly9tYWlsLWFyY2hpdmVzLmFwYWNoZS5vcmcvbW9kX21ib3gvY29tbW9ucy1pc3N1ZXMvPC9hcmNoaXZlPg0KKyAgICAgIDxvdGhlckFyY2hpdmVzPg0KKyAgICAgICAgPG90aGVyQXJjaGl2ZT5odHRwOi8vbWFya21haWwub3JnL2xpc3Qvb3JnLmFwYWNoZS5jb21tb25zLmlzc3Vlcy88L290aGVyQXJjaGl2ZT4NCisgICAgICAgIDxvdGhlckFyY2hpdmU+aHR0cDovL29sZC5uYWJibGUuY29tL0NvbW1vbnMtLS1Jc3N1ZXMtZjI1NDk5Lmh0bWw8L290aGVyQXJjaGl2ZT4NCisgICAgICAgIDxvdGhlckFyY2hpdmU+aHR0cDovL3d3dy5tYWlsLWFyY2hpdmUuY29tL2lzc3Vlc0Bjb21tb25zLmFwYWNoZS5vcmcvPC9vdGhlckFyY2hpdmU+DQorICAgICAgPC9vdGhlckFyY2hpdmVzPg0KKyAgICA8L21haWxpbmdMaXN0Pg0KKyAgICA8bWFpbGluZ0xpc3Q+DQorICAgICAgPG5hbWU+Q29tbW9ucyBDb21taXRzIExpc3Q8L25hbWU+DQorICAgICAgPHN1YnNjcmliZT5jb21taXRzLXN1YnNjcmliZUBjb21tb25zLmFwYWNoZS5vcmc8L3N1YnNjcmliZT4NCisgICAgICA8dW5zdWJzY3JpYmU+Y29tbWl0cy11bnN1YnNjcmliZUBjb21tb25zLmFwYWNoZS5vcmc8L3Vuc3Vic2NyaWJlPg0KKyAgICAgIDxhcmNoaXZlPmh0dHA6Ly9tYWlsLWFyY2hpdmVzLmFwYWNoZS5vcmcvbW9kX21ib3gvY29tbW9ucy1jb21taXRzLzwvYXJjaGl2ZT4NCisgICAgICA8b3RoZXJBcmNoaXZlcz4NCisgICAgICAgIDxvdGhlckFyY2hpdmU+aHR0cDovL21hcmttYWlsLm9yZy9saXN0L29yZy5hcGFjaGUuY29tbW9ucy5jb21taXRzLzwvb3RoZXJBcmNoaXZlPg0KKyAgICAgICAgPG90aGVyQXJjaGl2ZT5odHRwOi8vd3d3Lm1haWwtYXJjaGl2ZS5jb20vY29tbWl0c0Bjb21tb25zLmFwYWNoZS5vcmcvPC9vdGhlckFyY2hpdmU+DQorICAgICAgPC9vdGhlckFyY2hpdmVzPg0KKyAgICA8L21haWxpbmdMaXN0Pg0KKyAgICA8bWFpbGluZ0xpc3Q+DQorICAgICAgPG5hbWU+QXBhY2hlIEFubm91bmNlIExpc3Q8L25hbWU+DQorICAgICAgPHN1YnNjcmliZT5hbm5vdW5jZS1zdWJzY3JpYmVAYXBhY2hlLm9yZzwvc3Vic2NyaWJlPg0KKyAgICAgIDx1bnN1YnNjcmliZT5hbm5vdW5jZS11bnN1YnNjcmliZUBhcGFjaGUub3JnPC91bnN1YnNjcmliZT4NCisgICAgICA8YXJjaGl2ZT5odHRwOi8vbWFpbC1hcmNoaXZlcy5hcGFjaGUub3JnL21vZF9tYm94L3d3dy1hbm5vdW5jZS88L2FyY2hpdmU+DQorICAgICAgPG90aGVyQXJjaGl2ZXM+DQorICAgICAgICA8b3RoZXJBcmNoaXZlPmh0dHA6Ly9tYXJrbWFpbC5vcmcvbGlzdC9vcmcuYXBhY2hlLmFubm91bmNlLzwvb3RoZXJBcmNoaXZlPg0KKyAgICAgICAgPG90aGVyQXJjaGl2ZT5odHRwOi8vb2xkLm5hYmJsZS5jb20vQXBhY2hlLU5ld3MtYW5kLUFubm91bmNlLWYxMDkuaHRtbDwvb3RoZXJBcmNoaXZlPg0KKyAgICAgICAgPG90aGVyQXJjaGl2ZT5odHRwOi8vd3d3Lm1haWwtYXJjaGl2ZS5jb20vYW5ub3VuY2VAYXBhY2hlLm9yZy88L290aGVyQXJjaGl2ZT4NCisgICAgICAgIDxvdGhlckFyY2hpdmU+aHR0cDovL25ld3MuZ21hbmUub3JnL2dtYW5lLmNvbXAuYXBhY2hlLmFubm91bmNlPC9vdGhlckFyY2hpdmU+DQorICAgICAgPC9vdGhlckFyY2hpdmVzPg0KKyAgICA8L21haWxpbmdMaXN0Pg0KKyAgPC9tYWlsaW5nTGlzdHM+DQorICA8YnVpbGQ+DQorICAgIDwhLS0gVE9ETyBmaW5kIGEgYmV0dGVyIHdheSB0byBhZGQgTiZMIGZpbGVzIHRvIGphcnMgYW5kIHRlc3QgamFycw0KKyAgICAgICAgIFNlZSBhbHNvIG1hdmVuLXJlbW90ZS1yZXNvdXJjZXMtcGx1Z2luIGNvbmZpZ3VyYXRpb24gYmVsb3cuDQorICAgIC0tPg0KKyAgICA8cmVzb3VyY2VzPg0KKyAgICAgIDwhLS0gVGhpcyBpcyB0aGUgZGVmYXVsdCBzZXR0aW5nIGZyb20gdGhlIHN1cGVyLXBvbSAtLT4NCisgICAgICA8cmVzb3VyY2U+DQorICAgICAgICA8ZGlyZWN0b3J5PnNyYy9tYWluL3Jlc291cmNlczwvZGlyZWN0b3J5Pg0KKyAgICAgIDwvcmVzb3VyY2U+DQorICAgICAgPCEtLSBoYWNrIHRvIGVuc3VyZSB0aGUgTiZMIGFwcGVhciBpbiBqYXJzIC0tPg0KKyAgICAgIDxyZXNvdXJjZT4NCisgICAgICAgIDxkaXJlY3Rvcnk+JHtiYXNlZGlyfTwvZGlyZWN0b3J5Pg0KKyAgICAgICAgPHRhcmdldFBhdGg+TUVUQS1JTkY8L3RhcmdldFBhdGg+DQorICAgICAgICA8aW5jbHVkZXM+DQorICAgICAgICAgIDxpbmNsdWRlPk5PVElDRS50eHQ8L2luY2x1ZGU+DQorICAgICAgICAgIDxpbmNsdWRlPkxJQ0VOU0UudHh0PC9pbmNsdWRlPg0KKyAgICAgICAgPC9pbmNsdWRlcz4NCisgICAgICA8L3Jlc291cmNlPg0KKyAgICA8L3Jlc291cmNlcz4NCisgICAgPCEtLSBlbnN1cmUgdGVzdCBqYXJzIGFsc28gZ2V0IE5PVElDRSAmIExJQ0VOU0UgZmlsZXMgLS0+DQorICAgIDx0ZXN0UmVzb3VyY2VzPg0KKyAgICAgIDwhLS0gVGhpcyBpcyB0aGUgZGVmYXVsdCBzZXR0aW5nIGZyb20gdGhlIHN1cGVyLXBvbSAtLT4NCisgICAgICA8dGVzdFJlc291cmNlPg0KKyAgICAgICAgPGRpcmVjdG9yeT5zcmMvdGVzdC9yZXNvdXJjZXM8L2RpcmVjdG9yeT4NCisgICAgICA8L3Rlc3RSZXNvdXJjZT4NCisgICAgICA8IS0tIGhhY2sgdG8gZW5zdXJlIHRoZSBOJkwgYXBwZWFyIGluIGphcnMgLS0+DQorICAgICAgPHRlc3RSZXNvdXJjZT4NCisgICAgICAgIDxkaXJlY3Rvcnk+JHtiYXNlZGlyfTwvZGlyZWN0b3J5Pg0KKyAgICAgICAgPHRhcmdldFBhdGg+TUVUQS1JTkY8L3RhcmdldFBhdGg+DQorICAgICAgICA8aW5jbHVkZXM+DQorICAgICAgICAgIDxpbmNsdWRlPk5PVElDRS50eHQ8L2luY2x1ZGU+DQorICAgICAgICAgIDxpbmNsdWRlPkxJQ0VOU0UudHh0PC9pbmNsdWRlPg0KKyAgICAgICAgPC9pbmNsdWRlcz4NCisgICAgICA8L3Rlc3RSZXNvdXJjZT4NCisgICAgPC90ZXN0UmVzb3VyY2VzPg0KKyAgICA8cGx1Z2luTWFuYWdlbWVudD4NCisgICAgICA8cGx1Z2lucz4NCisgICAgICAgIDwhLS0gb3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zLCBhbHBoYSBvcmRlciBieSBhcnRpZmFjdCBpZCAtLT4NCisgICAgICAgIDxwbHVnaW4+DQorICAgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4NCisgICAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tYW50cnVuLXBsdWdpbjwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgPHZlcnNpb24+MS43PC92ZXJzaW9uPg0KKyAgICAgICAgPC9wbHVnaW4+DQorICAgICAgICA8cGx1Z2luPg0KKyAgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+DQorICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLWFzc2VtYmx5LXBsdWdpbjwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgPHZlcnNpb24+Mi40LjE8L3ZlcnNpb24+DQorICAgICAgICA8L3BsdWdpbj4NCisgICAgICAgIDxwbHVnaW4+DQorICAgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4NCisgICAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tY2xlYW4tcGx1Z2luPC9hcnRpZmFjdElkPg0KKyAgICAgICAgICA8dmVyc2lvbj4yLjY8L3ZlcnNpb24+DQorICAgICAgICA8L3BsdWdpbj4NCisgICAgICAgIDxwbHVnaW4+DQorICAgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4NCisgICAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tY29tcGlsZXItcGx1Z2luPC9hcnRpZmFjdElkPg0KKyAgICAgICAgICA8dmVyc2lvbj4ke2NvbW1vbnMuY29tcGlsZXIudmVyc2lvbn08L3ZlcnNpb24+DQorICAgICAgICAgIDxjb25maWd1cmF0aW9uPg0KKyAgICAgICAgICAgIDxzb3VyY2U+JHttYXZlbi5jb21waWxlci5zb3VyY2V9PC9zb3VyY2U+DQorICAgICAgICAgICAgPHRhcmdldD4ke21hdmVuLmNvbXBpbGVyLnRhcmdldH08L3RhcmdldD4NCisgICAgICAgICAgICA8ZW5jb2Rpbmc+JHtjb21tb25zLmVuY29kaW5nfTwvZW5jb2Rpbmc+DQorICAgICAgICAgICAgPGZvcms+JHtjb21tb25zLmNvbXBpbGVyLmZvcmt9PC9mb3JrPg0KKyAgICAgICAgICAgIDxjb21waWxlclZlcnNpb24+JHtjb21tb25zLmNvbXBpbGVyLmNvbXBpbGVyVmVyc2lvbn08L2NvbXBpbGVyVmVyc2lvbj4NCisgICAgICAgICAgICA8ZXhlY3V0YWJsZT4ke2NvbW1vbnMuY29tcGlsZXIuamF2YWN9PC9leGVjdXRhYmxlPg0KKyAgICAgICAgICA8L2NvbmZpZ3VyYXRpb24+DQorICAgICAgICA8L3BsdWdpbj4NCisgICAgICAgIDxwbHVnaW4+DQorICAgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4NCisgICAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tZGVwbG95LXBsdWdpbjwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgPHZlcnNpb24+Mi44LjI8L3ZlcnNpb24+DQorICAgICAgICA8L3BsdWdpbj4NCisgICAgICAgIDwhLS0gQXBhY2hlIHBhcmVudCBpbmNsdWRlcyBkb2NjayAtLT4NCisgICAgICAgIDxwbHVnaW4+DQorICAgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4NCisgICAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tZ3BnLXBsdWdpbjwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgPHZlcnNpb24+MS41PC92ZXJzaW9uPg0KKyAgICAgICAgPC9wbHVnaW4+DQorICAgICAgICA8cGx1Z2luPg0KKyAgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+DQorICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLWluc3RhbGwtcGx1Z2luPC9hcnRpZmFjdElkPg0KKyAgICAgICAgICA8dmVyc2lvbj4yLjUuMjwvdmVyc2lvbj4NCisgICAgICAgIDwvcGx1Z2luPg0KKyAgICAgICAgPCEtLSBBcGFjaGUgcGFyZW50OiBpbnZva2VyIC0tPg0KKyAgICAgICAgPHBsdWdpbj4NCisgICAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPg0KKyAgICAgICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1qYXItcGx1Z2luPC9hcnRpZmFjdElkPg0KKyAgICAgICAgICA8dmVyc2lvbj4yLjU8L3ZlcnNpb24+DQorICAgICAgICA8L3BsdWdpbj4NCisgICAgICAgIDxwbHVnaW4+DQorICAgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4NCisgICAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tamF2YWRvYy1wbHVnaW48L2FydGlmYWN0SWQ+DQorICAgICAgICAgIDx2ZXJzaW9uPiR7Y29tbW9ucy5qYXZhZG9jLnZlcnNpb259PC92ZXJzaW9uPg0KKyAgICAgICAgICA8Y29uZmlndXJhdGlvbj4NCisgICAgICAgICAgICA8IS0tIGtlZXAgb25seSBlcnJvcnMgYW5kIHdhcm5pbmdzIC0tPg0KKyAgICAgICAgICAgIDxxdWlldD50cnVlPC9xdWlldD4NCisgICAgICAgICAgICA8ZW5jb2Rpbmc+JHtjb21tb25zLmVuY29kaW5nfTwvZW5jb2Rpbmc+DQorICAgICAgICAgICAgPGRvY0VuY29kaW5nPiR7Y29tbW9ucy5kb2NFbmNvZGluZ308L2RvY0VuY29kaW5nPg0KKyAgICAgICAgICAgIDxub3RpbWVzdGFtcD50cnVlPC9ub3RpbWVzdGFtcD4NCisgICAgICAgICAgICA8bGlua3M+DQorICAgICAgICAgICAgICA8bGluaz4ke2NvbW1vbnMuamF2YWRvYy5qYXZhLmxpbmt9PC9saW5rPg0KKyAgICAgICAgICAgICAgPGxpbms+JHtjb21tb25zLmphdmFkb2MuamF2YWVlLmxpbmt9PC9saW5rPg0KKyAgICAgICAgICAgIDwvbGlua3M+DQorICAgICAgICAgICAgPGFyY2hpdmU+DQorICAgICAgICAgICAgICA8bWFuaWZlc3Q+DQorICAgICAgICAgICAgICAgIDxhZGREZWZhdWx0SW1wbGVtZW50YXRpb25FbnRyaWVzPnRydWU8L2FkZERlZmF1bHRJbXBsZW1lbnRhdGlvbkVudHJpZXM+DQorICAgICAgICAgICAgICAgIDxhZGREZWZhdWx0U3BlY2lmaWNhdGlvbkVudHJpZXM+dHJ1ZTwvYWRkRGVmYXVsdFNwZWNpZmljYXRpb25FbnRyaWVzPg0KKyAgICAgICAgICAgICAgPC9tYW5pZmVzdD4NCisgICAgICAgICAgICA8L2FyY2hpdmU+DQorICAgICAgICAgIDwvY29uZmlndXJhdGlvbj4NCisgICAgICAgIDwvcGx1Z2luPg0KKyAgICAgICAgPHBsdWdpbj4NCisgICAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPg0KKyAgICAgICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1yZWxlYXNlLXBsdWdpbjwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgPHZlcnNpb24+Mi41LjE8L3ZlcnNpb24+DQorICAgICAgICA8L3BsdWdpbj4NCisgICAgICAgIDxwbHVnaW4+DQorICAgICAgICAgIDwhLS0gVE9ETyBzZWUgYWJvdmUgLSBmaW5kIGJldHRlciB3YXkgdG8gYWRkIE4mTCBmaWxlcyB0byBqYXJzIGFuZCB0ZXN0IGphcnMgLS0+DQorICAgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4NCisgICAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tcmVtb3RlLXJlc291cmNlcy1wbHVnaW48L2FydGlmYWN0SWQ+DQorICAgICAgICAgIDwhLS0gb3ZlcnJpZGUgb2xkIHZlcnNpb24gZnJvbSBBcGFjaGUgcG9tIDEzIC0tPg0KKyAgICAgICAgICA8dmVyc2lvbj4xLjU8L3ZlcnNpb24+DQorICAgICAgICAgIDxjb25maWd1cmF0aW9uPg0KKyAgICAgICAgICAgIDwhLS0NCisgICAgICAgICAgICAgICAgQXBhY2hlIHBhcmVudCBQT00gYXV0b21hdGljYWxseSBhZGRzICJMSUNFTlNFIiBhbmQgIk5PVElDRSIgZmlsZXMNCisgICAgICAgICAgICAgICAgdG8gamFycyAtIGR1cGxpY2F0aW5nIHRoZSAiTElDRU5TRS50eHQiIGFuZCAiTk9USUNFLnR4dCINCisgICAgICAgICAgICAgICAgZmlsZXMgdGhhdCBjb21wb25lbnRzIGFscmVhZHkgaGF2ZS4NCisgICAgICAgICAgICAgLS0+DQorICAgICAgICAgICAgPHNraXA+dHJ1ZTwvc2tpcD4NCisgICAgICAgICAgPC9jb25maWd1cmF0aW9uPg0KKyAgICAgICAgPC9wbHVnaW4+DQorICAgICAgICA8cGx1Z2luPg0KKyAgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+DQorICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLXJlc291cmNlcy1wbHVnaW48L2FydGlmYWN0SWQ+DQorICAgICAgICAgIDx2ZXJzaW9uPjIuNzwvdmVyc2lvbj4NCisgICAgICAgIDwvcGx1Z2luPg0KKyAgICAgICAgPCEtLSBBcGFjaGUgcGFyZW50OiBzY20gLS0+DQorICAgICAgICA8cGx1Z2luPg0KKyAgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+DQorICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLXNpdGUtcGx1Z2luPC9hcnRpZmFjdElkPg0KKyAgICAgICAgICA8dmVyc2lvbj4ke2NvbW1vbnMuc2l0ZS1wbHVnaW4udmVyc2lvbn08L3ZlcnNpb24+DQorICAgICAgICAgIDxjb25maWd1cmF0aW9uPg0KKyAgICAgICAgICAgIDwhLS0gZG9uJ3QgZGVwbG95IHNpdGUgd2l0aCBtYXZlbi1zaXRlLXBsdWdpbiAtLT4NCisgICAgICAgICAgICA8c2tpcERlcGxveT50cnVlPC9za2lwRGVwbG95Pg0KKyAgICAgICAgICA8L2NvbmZpZ3VyYXRpb24+DQorICAgICAgICA8L3BsdWdpbj4NCisgICAgICAgIDxwbHVnaW4+DQorICAgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4NCisgICAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tc291cmNlLXBsdWdpbjwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgPHZlcnNpb24+Mi40PC92ZXJzaW9uPg0KKyAgICAgICAgICA8Y29uZmlndXJhdGlvbj4NCisgICAgICAgICAgICA8YXJjaGl2ZT4NCisgICAgICAgICAgICAgIDxtYW5pZmVzdD4NCisgICAgICAgICAgICAgICAgPGFkZERlZmF1bHRJbXBsZW1lbnRhdGlvbkVudHJpZXM+dHJ1ZTwvYWRkRGVmYXVsdEltcGxlbWVudGF0aW9uRW50cmllcz4NCisgICAgICAgICAgICAgICAgPGFkZERlZmF1bHRTcGVjaWZpY2F0aW9uRW50cmllcz50cnVlPC9hZGREZWZhdWx0U3BlY2lmaWNhdGlvbkVudHJpZXM+DQorICAgICAgICAgICAgICA8L21hbmlmZXN0Pg0KKyAgICAgICAgICAgIDwvYXJjaGl2ZT4NCisgICAgICAgICAgPC9jb25maWd1cmF0aW9uPg0KKyAgICAgICAgPC9wbHVnaW4+DQorICAgICAgICA8cGx1Z2luPg0KKyAgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+DQorICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLXN1cmVmaXJlLXBsdWdpbjwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgPHZlcnNpb24+JHtjb21tb25zLnN1cmVmaXJlLnZlcnNpb259PC92ZXJzaW9uPg0KKyAgICAgICAgPC9wbHVnaW4+DQorICAgICAgICA8IS0tIE90aGVyIHBsdWdpbnMsIGFscGhhIG9yZGVyIGJ5IGdyb3VwSWQgYW5kIGFydGlmYWN0SWQgLS0+DQorICAgICAgICA8cGx1Z2luPg0KKyAgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLmNvbW1vbnM8L2dyb3VwSWQ+DQorICAgICAgICAgIDxhcnRpZmFjdElkPmNvbW1vbnMtYnVpbGQtcGx1Z2luPC9hcnRpZmFjdElkPg0KKyAgICAgICAgICA8dmVyc2lvbj4xLjQ8L3ZlcnNpb24+DQorICAgICAgICAgIDxjb25maWd1cmF0aW9uPg0KKyAgICAgICAgICAgIDxjb21tb25zLnJlbGVhc2UubmFtZT4ke2NvbW1vbnMucmVsZWFzZS5uYW1lfTwvY29tbW9ucy5yZWxlYXNlLm5hbWU+DQorICAgICAgICAgIDwvY29uZmlndXJhdGlvbj4NCisgICAgICAgIDwvcGx1Z2luPg0KKyAgICAgICAgPHBsdWdpbj4NCisgICAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5mZWxpeDwvZ3JvdXBJZD4NCisgICAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tYnVuZGxlLXBsdWdpbjwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgPHZlcnNpb24+Mi41LjM8L3ZlcnNpb24+DQorICAgICAgICAgIDxpbmhlcml0ZWQ+dHJ1ZTwvaW5oZXJpdGVkPg0KKyAgICAgICAgPC9wbHVnaW4+DQorICAgICAgICA8cGx1Z2luPg0KKyAgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLnJhdDwvZ3JvdXBJZD4NCisgICAgICAgICAgPGFydGlmYWN0SWQ+YXBhY2hlLXJhdC1wbHVnaW48L2FydGlmYWN0SWQ+DQorICAgICAgICAgIDx2ZXJzaW9uPiR7Y29tbW9ucy5yYXQudmVyc2lvbn08L3ZlcnNpb24+DQorICAgICAgICA8L3BsdWdpbj4NCisgICAgICAgIDxwbHVnaW4+DQorICAgICAgICAgIDxncm91cElkPm9yZy5jb2RlaGF1cy5tb2pvPC9ncm91cElkPg0KKyAgICAgICAgICA8YXJ0aWZhY3RJZD5idWlsZG51bWJlci1tYXZlbi1wbHVnaW48L2FydGlmYWN0SWQ+DQorICAgICAgICAgIDx2ZXJzaW9uPjEuMzwvdmVyc2lvbj4NCisgICAgICAgIDwvcGx1Z2luPg0KKyAgICAgICAgPHBsdWdpbj4NCisgICAgICAgICAgPGdyb3VwSWQ+b3JnLmNvZGVoYXVzLm1vam88L2dyb3VwSWQ+DQorICAgICAgICAgIDxhcnRpZmFjdElkPmNsaXJyLW1hdmVuLXBsdWdpbjwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgPHZlcnNpb24+JHtjb21tb25zLmNsaXJyLnZlcnNpb259PC92ZXJzaW9uPg0KKyAgICAgICAgICA8Y29uZmlndXJhdGlvbj4NCisgICAgICAgICAgICA8bWluU2V2ZXJpdHk+JHttaW5TZXZlcml0eX08L21pblNldmVyaXR5Pg0KKyAgICAgICAgICA8L2NvbmZpZ3VyYXRpb24+DQorICAgICAgICA8L3BsdWdpbj4NCisgICAgICAgIDwhLS0gQXBhY2hlIHBhcmVudDogcGxleHVzICYgbW9kZWxsbyAtLT4NCisgICAgICA8L3BsdWdpbnM+DQorICAgIDwvcGx1Z2luTWFuYWdlbWVudD4NCisgICAgPHBsdWdpbnM+DQorICAgICAgPCEtLSBvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnMsIGFscGhhIG9yZGVyIGJ5IGFydGlmYWN0IGlkIC0tPg0KKyAgICAgIDxwbHVnaW4+DQorICAgICAgICAgIDwhLS0gUGFyZW50IFBPTSBpcyByZWxlYXNlZCwgc28gbmVlZHMgc291cmNlIGFyY2hpdmUgZm9yIEFTRiBtaXJyb3JzIC0tPg0KKyAgICAgICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1hc3NlbWJseS1wbHVnaW48L2FydGlmYWN0SWQ+DQorICAgICAgICAgIDxjb25maWd1cmF0aW9uPg0KKyAgICAgICAgICAgICAgPGRlc2NyaXB0b3JzPg0KKyAgICAgICAgICAgICAgICAgIDxkZXNjcmlwdG9yPnNyYy9tYWluL2Fzc2VtYmx5L3NyYy54bWw8L2Rlc2NyaXB0b3I+DQorICAgICAgICAgICAgICA8L2Rlc2NyaXB0b3JzPg0KKyAgICAgICAgICAgICAgPHRhckxvbmdGaWxlTW9kZT5nbnU8L3RhckxvbmdGaWxlTW9kZT4NCisgICAgICAgICAgPC9jb25maWd1cmF0aW9uPg0KKyAgICAgIDwvcGx1Z2luPg0KKyAgICAgIDxwbHVnaW4+DQorICAgICAgICA8IS0tDQorICAgICAgICAgIC0gQ29weSBMSUNFTlNFLnR4dCBhbmQgTk9USUNFLnR4dCBzbyB0aGF0IHRoZXkgYXJlIGluY2x1ZGVkDQorICAgICAgICAgIC0gaW4gdGhlIC1qYXZhZG9jIGphciBmaWxlIGZvciB0aGUgY29tcG9uZW50Lg0KKyAgICAgICAgICAtLT4NCisgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4NCisgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLWFudHJ1bi1wbHVnaW48L2FydGlmYWN0SWQ+DQorICAgICAgICA8ZXhlY3V0aW9ucz4NCisgICAgICAgICAgPGV4ZWN1dGlvbj4NCisgICAgICAgICAgICA8aWQ+amF2YWRvYy5yZXNvdXJjZXM8L2lkPg0KKyAgICAgICAgICAgIDxwaGFzZT5nZW5lcmF0ZS1zb3VyY2VzPC9waGFzZT4NCisgICAgICAgICAgICA8Z29hbHM+DQorICAgICAgICAgICAgICA8Z29hbD5ydW48L2dvYWw+DQorICAgICAgICAgICAgPC9nb2Fscz4NCisgICAgICAgICAgICA8Y29uZmlndXJhdGlvbj4NCisgICAgICAgICAgICAgIDx0YXJnZXQ+DQorICAgICAgICAgICAgICAgIDxjb3B5IHRvZGlyPSIke3Byb2plY3QuYnVpbGQuZGlyZWN0b3J5fS9hcGlkb2NzL01FVEEtSU5GIj4NCisgICAgICAgICAgICAgICAgICA8ZmlsZXNldCBkaXI9IiR7YmFzZWRpcn0iPg0KKyAgICAgICAgICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iTElDRU5TRS50eHQiIC8+DQorICAgICAgICAgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSJOT1RJQ0UudHh0IiAvPg0KKyAgICAgICAgICAgICAgICAgIDwvZmlsZXNldD4NCisgICAgICAgICAgICAgICAgPC9jb3B5Pg0KKyAgICAgICAgICAgICAgPC90YXJnZXQ+DQorICAgICAgICAgICAgPC9jb25maWd1cmF0aW9uPg0KKyAgICAgICAgICA8L2V4ZWN1dGlvbj4NCisgICAgICAgIDwvZXhlY3V0aW9ucz4NCisgICAgICA8L3BsdWdpbj4NCisgICAgICA8cGx1Z2luPg0KKyAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPg0KKyAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tY29tcGlsZXItcGx1Z2luPC9hcnRpZmFjdElkPg0KKyAgICAgIDwvcGx1Z2luPg0KKyAgICAgIDwhLS0gVW5mb3J0dW5hdGVseSB0aGUgbXVjaCBzaW1wbGVyDQorICAgICAgICAgICA8cHJlcmVxdWlzaXRlcz48bWF2ZW4+My4wPC9tYXZlbj48L3ByZXJlcXVpc2l0ZXM+DQorICAgICAgICAgICBpcyBub3QgaW5oZXJpdGVkIHNvIHdlIGhhdmUgdG8gdXNlIHRoZSBlbmZvcmNlciBwbHVnaW4NCisgICAgICAtLT4NCisgICAgICA8cGx1Z2luPg0KKyAgICAgICAgPGluaGVyaXRlZD50cnVlPC9pbmhlcml0ZWQ+DQorICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+DQorICAgICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1lbmZvcmNlci1wbHVnaW48L2FydGlmYWN0SWQ+DQorICAgICAgICA8dmVyc2lvbj4xLjMuMTwvdmVyc2lvbj4NCisgICAgICAgIDxleGVjdXRpb25zPg0KKyAgICAgICAgICA8ZXhlY3V0aW9uPg0KKyAgICAgICAgICAgIDxpZD5lbmZvcmNlLW1hdmVuLTM8L2lkPg0KKyAgICAgICAgICAgIDxnb2Fscz4NCisgICAgICAgICAgICAgIDxnb2FsPmVuZm9yY2U8L2dvYWw+DQorICAgICAgICAgICAgPC9nb2Fscz4NCisgICAgICAgICAgICA8Y29uZmlndXJhdGlvbj4NCisgICAgICAgICAgICAgIDxydWxlcz4NCisgICAgICAgICAgICAgICAgPHJlcXVpcmVNYXZlblZlcnNpb24+DQorICAgICAgICAgICAgICAgICAgPHZlcnNpb24+My4wLjA8L3ZlcnNpb24+DQorICAgICAgICAgICAgICAgIDwvcmVxdWlyZU1hdmVuVmVyc2lvbj4NCisgICAgICAgICAgICAgIDwvcnVsZXM+DQorICAgICAgICAgICAgICA8ZmFpbD50cnVlPC9mYWlsPg0KKyAgICAgICAgICAgIDwvY29uZmlndXJhdGlvbj4NCisgICAgICAgICAgPC9leGVjdXRpb24+DQorICAgICAgICA8L2V4ZWN1dGlvbnM+DQorICAgICAgPC9wbHVnaW4+DQorICAgICAgPHBsdWdpbj4NCisgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4NCisgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLWphci1wbHVnaW48L2FydGlmYWN0SWQ+DQorICAgICAgICA8Y29uZmlndXJhdGlvbj4NCisgICAgICAgICAgPGFyY2hpdmU+DQorICAgICAgICAgICAgPG1hbmlmZXN0RmlsZT4ke2NvbW1vbnMubWFuaWZlc3RmaWxlfTwvbWFuaWZlc3RGaWxlPg0KKyAgICAgICAgICAgIDxtYW5pZmVzdEVudHJpZXM+DQorICAgICAgICAgICAgICA8U3BlY2lmaWNhdGlvbi1UaXRsZT4ke3Byb2plY3QubmFtZX08L1NwZWNpZmljYXRpb24tVGl0bGU+DQorICAgICAgICAgICAgICA8U3BlY2lmaWNhdGlvbi1WZXJzaW9uPiR7cHJvamVjdC52ZXJzaW9ufTwvU3BlY2lmaWNhdGlvbi1WZXJzaW9uPg0KKyAgICAgICAgICAgICAgPFNwZWNpZmljYXRpb24tVmVuZG9yPiR7cHJvamVjdC5vcmdhbml6YXRpb24ubmFtZX08L1NwZWNpZmljYXRpb24tVmVuZG9yPg0KKyAgICAgICAgICAgICAgPEltcGxlbWVudGF0aW9uLVRpdGxlPiR7cHJvamVjdC5uYW1lfTwvSW1wbGVtZW50YXRpb24tVGl0bGU+DQorICAgICAgICAgICAgICA8SW1wbGVtZW50YXRpb24tVmVyc2lvbj4ke3Byb2plY3QudmVyc2lvbn08L0ltcGxlbWVudGF0aW9uLVZlcnNpb24+DQorICAgICAgICAgICAgICA8SW1wbGVtZW50YXRpb24tVmVuZG9yPiR7cHJvamVjdC5vcmdhbml6YXRpb24ubmFtZX08L0ltcGxlbWVudGF0aW9uLVZlbmRvcj4NCisgICAgICAgICAgICAgIDxJbXBsZW1lbnRhdGlvbi1WZW5kb3ItSWQ+b3JnLmFwYWNoZTwvSW1wbGVtZW50YXRpb24tVmVuZG9yLUlkPg0KKyAgICAgICAgICAgICAgPEltcGxlbWVudGF0aW9uLUJ1aWxkPiR7aW1wbGVtZW50YXRpb24uYnVpbGR9PC9JbXBsZW1lbnRhdGlvbi1CdWlsZD4NCisgICAgICAgICAgICAgIDxYLUNvbXBpbGUtU291cmNlLUpESz4ke21hdmVuLmNvbXBpbGVyLnNvdXJjZX08L1gtQ29tcGlsZS1Tb3VyY2UtSkRLPg0KKyAgICAgICAgICAgICAgPFgtQ29tcGlsZS1UYXJnZXQtSkRLPiR7bWF2ZW4uY29tcGlsZXIudGFyZ2V0fTwvWC1Db21waWxlLVRhcmdldC1KREs+DQorICAgICAgICAgICAgPC9tYW5pZmVzdEVudHJpZXM+DQorICAgICAgICAgIDwvYXJjaGl2ZT4NCisgICAgICAgIDwvY29uZmlndXJhdGlvbj4NCisgICAgICA8L3BsdWdpbj4NCisgICAgICA8cGx1Z2luPg0KKyAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPg0KKyAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tc3VyZWZpcmUtcGx1Z2luPC9hcnRpZmFjdElkPg0KKyAgICAgICAgPGNvbmZpZ3VyYXRpb24+DQorICAgICAgICAgIDxqdm0+JHtjb21tb25zLnN1cmVmaXJlLmphdmF9PC9qdm0+DQorICAgICAgICA8L2NvbmZpZ3VyYXRpb24+DQorICAgICAgPC9wbHVnaW4+DQorICAgICAgPCEtLSBPdGhlciBwbHVnaW5zLCBhbHBoYSBvcmRlciBieSBncm91cElkIGFuZCBhcnRpZmFjdElkIC0tPg0KKyAgICAgIDxwbHVnaW4+DQorICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLmNvbW1vbnM8L2dyb3VwSWQ+DQorICAgICAgICA8YXJ0aWZhY3RJZD5jb21tb25zLWJ1aWxkLXBsdWdpbjwvYXJ0aWZhY3RJZD4NCisgICAgICA8L3BsdWdpbj4NCisgICAgICA8cGx1Z2luPg0KKyAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5mZWxpeDwvZ3JvdXBJZD4NCisgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLWJ1bmRsZS1wbHVnaW48L2FydGlmYWN0SWQ+DQorICAgICAgICA8Y29uZmlndXJhdGlvbj4NCisgICAgICAgICAgPCEtLQ0KKyAgICAgICAgICAgIGR1bW15IGVudHJ5IHRvIHN0b3AgYnVuZGxlIHBsdWdpbiBmcm9tIHBpY2tpbmcgdXAgamFyIGNvbmZpZyBhbmQgcmVwb3J0aW5nDQorICAgICAgICAgICAgV0FSTklORzogRHVwbGljYXRlIG5hbWUgaW4gTWFuaWZlc3QNCisgICAgICAgICAgICBTZWUgaHR0cDovL21hcmttYWlsLm9yZy9tZXNzYWdlL21wa2wyNHdrM2pyamhoamcNCisgICAgICAgICAgLS0+DQorICAgICAgICAgIDxhcmNoaXZlPg0KKyAgICAgICAgICAgIDxmb3JjZWQ+dHJ1ZTwvZm9yY2VkPg0KKyAgICAgICAgICA8L2FyY2hpdmU+DQorICAgICAgICAgIDxleGNsdWRlRGVwZW5kZW5jaWVzPnRydWU8L2V4Y2x1ZGVEZXBlbmRlbmNpZXM+DQorICAgICAgICAgIDxtYW5pZmVzdExvY2F0aW9uPiR7cHJvamVjdC5idWlsZC5kaXJlY3Rvcnl9L29zZ2k8L21hbmlmZXN0TG9jYXRpb24+DQorICAgICAgICAgIDxpbnN0cnVjdGlvbnM+DQorICAgICAgICAgICAgPCEtLSBzdG9wcyB0aGUgInVzZXMiIGNsYXVzZXMgYmVpbmcgYWRkZWQgdG8gIkV4cG9ydC1QYWNrYWdlIiBtYW5pZmVzdCBlbnRyeSAtLT4NCisgICAgICAgICAgICA8X25vdXNlcz50cnVlPC9fbm91c2VzPg0KKyAgICAgICAgICAgIDwhLS0gU3RvcCB0aGUgSkFWQV8xX25fSE9NRSB2YXJpYWJsZXMgZnJvbSBiZWluZyB0cmVhdGVkIGFzIGhlYWRlcnMgYnkgQm5kIC0tPg0KKyAgICAgICAgICAgIDxfcmVtb3ZlaGVhZGVycz5KQVZBXzFfM19IT01FLEpBVkFfMV80X0hPTUUsSkFWQV8xXzVfSE9NRSxKQVZBXzFfNl9IT01FLEpBVkFfMV83X0hPTUUsSkFWQV8xXzhfSE9NRTwvX3JlbW92ZWhlYWRlcnM+DQorICAgICAgICAgICAgPEJ1bmRsZS1TeW1ib2xpY05hbWU+JHtjb21tb25zLm9zZ2kuc3ltYm9saWNOYW1lfTwvQnVuZGxlLVN5bWJvbGljTmFtZT4NCisgICAgICAgICAgICA8RXhwb3J0LVBhY2thZ2U+JHtjb21tb25zLm9zZ2kuZXhwb3J0fTwvRXhwb3J0LVBhY2thZ2U+DQorICAgICAgICAgICAgPFByaXZhdGUtUGFja2FnZT4ke2NvbW1vbnMub3NnaS5wcml2YXRlfTwvUHJpdmF0ZS1QYWNrYWdlPg0KKyAgICAgICAgICAgIDxJbXBvcnQtUGFja2FnZT4ke2NvbW1vbnMub3NnaS5pbXBvcnR9PC9JbXBvcnQtUGFja2FnZT4NCisgICAgICAgICAgICA8RHluYW1pY0ltcG9ydC1QYWNrYWdlPiR7Y29tbW9ucy5vc2dpLmR5bmFtaWNJbXBvcnR9PC9EeW5hbWljSW1wb3J0LVBhY2thZ2U+DQorICAgICAgICAgICAgPEJ1bmRsZS1Eb2NVUkw+JHtwcm9qZWN0LnVybH08L0J1bmRsZS1Eb2NVUkw+DQorICAgICAgICAgIDwvaW5zdHJ1Y3Rpb25zPg0KKyAgICAgICAgPC9jb25maWd1cmF0aW9uPg0KKyAgICAgICAgPGV4ZWN1dGlvbnM+DQorICAgICAgICAgIDxleGVjdXRpb24+DQorICAgICAgICAgICAgPGlkPmJ1bmRsZS1tYW5pZmVzdDwvaWQ+DQorICAgICAgICAgICAgPHBoYXNlPnByb2Nlc3MtY2xhc3NlczwvcGhhc2U+DQorICAgICAgICAgICAgPGdvYWxzPg0KKyAgICAgICAgICAgICAgPGdvYWw+bWFuaWZlc3Q8L2dvYWw+DQorICAgICAgICAgICAgPC9nb2Fscz4NCisgICAgICAgICAgPC9leGVjdXRpb24+DQorICAgICAgICA8L2V4ZWN1dGlvbnM+DQorICAgICAgPC9wbHVnaW4+DQorICAgICAgPCEtLSBOZWVkZWQgZm9yIGNvbW1hbmQtbGluZSBhY2Nlc3MsIGUuZyBtdm4gYXBhY2hlLXJhdDpyYXQgYW5kIG12biBhcGFjaGUtcmF0OmNoZWNrIC0tPg0KKyAgICAgIDxwbHVnaW4+DQorICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLnJhdDwvZ3JvdXBJZD4NCisgICAgICAgIDxhcnRpZmFjdElkPmFwYWNoZS1yYXQtcGx1Z2luPC9hcnRpZmFjdElkPg0KKyAgICAgICAgPHZlcnNpb24+JHtjb21tb25zLnJhdC52ZXJzaW9ufTwvdmVyc2lvbj4NCisgICAgICAgIDwhLS0gU2hvdWxkIGFncmVlIHdpdGggY29uZmlnIGluIHJlcG9ydGluZyBzZWN0aW9uIC0tPg0KKyAgICAgICAgPGNvbmZpZ3VyYXRpb24+DQorICAgICAgICAgIDwhLS0NCisgICAgICAgICAgICAgICBJZiB5b3Ugd2lzaCB0byBvdmVycmlkZSB0aGlzIGxpc3QgaW4gdGhlIGNvbXBvbmVudCAoY2hpbGQpIHBvbSwgZW5zdXJlIHlvdSB1c2UNCisgICAgICAgICAgICAgICAgICAgPGV4Y2x1ZGVzIGNvbWJpbmUuY2hpbGRyZW49Im1lcmdlIj4NCisgICAgICAgICAgICAgICBzbyB0aGF0IHRoZSBjaGlsZCBwb20gZW50cmllcyByZXBsYWNlIHRoZSBwYXJlbnQgZW50cmllcw0KKyAgICAgICAgICAgLS0+DQorICAgICAgICAgIDxleGNsdWRlcyBjb21iaW5lLmNoaWxkcmVuPSJhcHBlbmQiPg0KKyAgICAgICAgICAgIDxleGNsdWRlPnNpdGUtY29udGVudC8qKjwvZXhjbHVkZT4NCisgICAgICAgICAgICA8ZXhjbHVkZT4uY2hlY2tzdHlsZTwvZXhjbHVkZT4NCisgICAgICAgICAgICA8ZXhjbHVkZT4uZmJwcmVmczwvZXhjbHVkZT4NCisgICAgICAgICAgICA8ZXhjbHVkZT4ucG1kPC9leGNsdWRlPg0KKyAgICAgICAgICAgIDxleGNsdWRlPnNyYy9zaXRlL3Jlc291cmNlcy9kb3dubG9hZF8qLmNnaTwvZXhjbHVkZT4NCisgICAgICAgICAgICA8ZXhjbHVkZT5zcmMvc2l0ZS9yZXNvdXJjZXMvcHJvZmlsZS4qPC9leGNsdWRlPg0KKyAgICAgICAgICA8L2V4Y2x1ZGVzPg0KKyAgICAgICAgPC9jb25maWd1cmF0aW9uPg0KKyAgICAgIDwvcGx1Z2luPg0KKw0KKyAgICAgIDxwbHVnaW4+DQorICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+DQorICAgICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1zY20tcHVibGlzaC1wbHVnaW48L2FydGlmYWN0SWQ+DQorICAgICAgICA8dmVyc2lvbj4ke2NvbW1vbnMuc2NtLXB1Ymxpc2gudmVyc2lvbn08L3ZlcnNpb24+DQorICAgICAgICA8Y29uZmlndXJhdGlvbj4NCisgICAgICAgICAgPGNvbnRlbnQ+JHtwcm9qZWN0LnJlcG9ydGluZy5vdXRwdXREaXJlY3Rvcnl9PC9jb250ZW50Pg0KKyAgICAgICAgICA8cHViU2NtVXJsPnNjbTpzdm46JHtjb21tb25zLnNjbVB1YlVybH08L3B1YlNjbVVybD4NCisgICAgICAgICAgPGNoZWNrb3V0RGlyZWN0b3J5PiR7Y29tbW9ucy5zY21QdWJDaGVja291dERpcmVjdG9yeX08L2NoZWNrb3V0RGlyZWN0b3J5Pg0KKyAgICAgICAgICA8c2VydmVySWQ+JHtjb21tb25zLnNjbVB1YlNlcnZlcn08L3NlcnZlcklkPg0KKyAgICAgICAgICA8dHJ5VXBkYXRlPnRydWU8L3RyeVVwZGF0ZT4NCisgICAgICAgIDwvY29uZmlndXJhdGlvbj4NCisgICAgICAgIDxleGVjdXRpb25zPg0KKyAgICAgICAgICA8ZXhlY3V0aW9uPg0KKyAgICAgICAgICAgIDxpZD5zY20tcHVibGlzaDwvaWQ+DQorICAgICAgICAgICAgPHBoYXNlPnNpdGUtZGVwbG95PC9waGFzZT48IS0tIGRlcGxveSBzaXRlIHdpdGggbWF2ZW4tc2NtLXB1Ymxpc2gtcGx1Z2luIC0tPg0KKyAgICAgICAgICAgIDxnb2Fscz4NCisgICAgICAgICAgICAgIDxnb2FsPnB1Ymxpc2gtc2NtPC9nb2FsPg0KKyAgICAgICAgICAgIDwvZ29hbHM+DQorICAgICAgICAgIDwvZXhlY3V0aW9uPg0KKyAgICAgICAgPC9leGVjdXRpb25zPg0KKyAgICAgIDwvcGx1Z2luPg0KKw0KKyAgICA8L3BsdWdpbnM+DQorICA8L2J1aWxkPg0KKw0KKyAgPHJlcG9ydGluZz4NCisgICAgPCEtLSBOLkIuIHBsdWdpbnMgZGVmaW5lZCBoZXJlIGluIHRoZSA8cmVwb3J0aW5nPiBzZWN0aW9uIGlnbm9yZSB3aGF0J3MgZGVmaW5lZCBpbiA8cGx1Z2luTWFuYWdlbWVudD4NCisgICAgICAgICBpbiB0aGUgPGJ1aWxkPiBzZWN0aW9uIGFib3ZlLCBzbyB3ZSBoYXZlIHRvIGRlZmluZSB0aGUgdmVyc2lvbnMgaGVyZS4gLS0+DQorICAgIDxwbHVnaW5zPg0KKyAgICAgIDwhLS0gb3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zLCBhbHBoYSBvcmRlciBieSBhcnRpZmFjdCBpZCAtLT4NCisgICAgICA8cGx1Z2luPg0KKyAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPg0KKyAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tY2hhbmdlcy1wbHVnaW48L2FydGlmYWN0SWQ+DQorICAgICAgICA8dmVyc2lvbj4ke2NvbW1vbnMuY2hhbmdlcy52ZXJzaW9ufTwvdmVyc2lvbj4NCisgICAgICAgIDxjb25maWd1cmF0aW9uPg0KKyAgICAgICAgICA8eG1sUGF0aD4ke2Jhc2VkaXJ9L3NyYy9jaGFuZ2VzL2NoYW5nZXMueG1sPC94bWxQYXRoPg0KKyAgICAgICAgICA8Y29sdW1uTmFtZXM+Rml4IFZlcnNpb24sS2V5LENvbXBvbmVudCxTdW1tYXJ5LFR5cGUsUmVzb2x1dGlvbixTdGF0dXM8L2NvbHVtbk5hbWVzPg0KKyAgICAgICAgICA8IS0tIFNvcnQgY29scyBpbiBuYXR1cmFsIG9yZGVyIHdoZW4gdXNpbmcgSlFMIGZvciBKSVJBIDUuMSAtLT4NCisgICAgICAgICAgPHNvcnRDb2x1bW5OYW1lcz5GaXggVmVyc2lvbiBERVNDLFR5cGUsS2V5IERFU0M8L3NvcnRDb2x1bW5OYW1lcz4NCisgICAgICAgICAgPHJlc29sdXRpb25JZHM+Rml4ZWQ8L3Jlc29sdXRpb25JZHM+DQorICAgICAgICAgIDxzdGF0dXNJZHM+UmVzb2x2ZWQsQ2xvc2VkPC9zdGF0dXNJZHM+DQorICAgICAgICAgIDwhLS0gRG9uJ3QgaW5jbHVkZSBzdWItdGFzayAtLT4NCisgICAgICAgICAgPHR5cGVJZHM+QnVnLE5ldyBGZWF0dXJlLFRhc2ssSW1wcm92ZW1lbnQsV2lzaCxUZXN0PC90eXBlSWRzPg0KKyAgICAgICAgICA8IS0tIEZvciBKSVJBID49IDUuMSAtLT4NCisgICAgICAgICAgPHVzZUpxbD50cnVlPC91c2VKcWw+DQorICAgICAgICA8L2NvbmZpZ3VyYXRpb24+DQorICAgICAgICA8cmVwb3J0U2V0cz4NCisgICAgICAgICAgPHJlcG9ydFNldD4NCisgICAgICAgICAgICA8cmVwb3J0cz4NCisgICAgICAgICAgICAgIDxyZXBvcnQ+Y2hhbmdlcy1yZXBvcnQ8L3JlcG9ydD4NCisgICAgICAgICAgICAgIDxyZXBvcnQ+amlyYS1yZXBvcnQ8L3JlcG9ydD4NCisgICAgICAgICAgICA8L3JlcG9ydHM+DQorICAgICAgICAgIDwvcmVwb3J0U2V0Pg0KKyAgICAgICAgPC9yZXBvcnRTZXRzPg0KKyAgICAgIDwvcGx1Z2luPg0KKyAgICAgIDxwbHVnaW4+DQorICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+DQorICAgICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1qYXZhZG9jLXBsdWdpbjwvYXJ0aWZhY3RJZD4NCisgICAgICAgIDx2ZXJzaW9uPiR7Y29tbW9ucy5qYXZhZG9jLnZlcnNpb259PC92ZXJzaW9uPg0KKyAgICAgICAgPGNvbmZpZ3VyYXRpb24+DQorICAgICAgICAgIDwhLS0ga2VlcCBvbmx5IGVycm9ycyBhbmQgd2FybmluZ3MgLS0+DQorICAgICAgICAgIDxxdWlldD50cnVlPC9xdWlldD4NCisgICAgICAgICAgPHNvdXJjZT4ke21hdmVuLmNvbXBpbGVyLnNvdXJjZX08L3NvdXJjZT4NCisgICAgICAgICAgPGVuY29kaW5nPiR7Y29tbW9ucy5lbmNvZGluZ308L2VuY29kaW5nPg0KKyAgICAgICAgICA8ZG9jZW5jb2Rpbmc+JHtjb21tb25zLmRvY0VuY29kaW5nfTwvZG9jZW5jb2Rpbmc+DQorICAgICAgICAgIDxub3RpbWVzdGFtcD50cnVlPC9ub3RpbWVzdGFtcD4NCisgICAgICAgICAgPGxpbmtzb3VyY2U+dHJ1ZTwvbGlua3NvdXJjZT4NCisgICAgICAgICAgPCEtLSBwcmV2ZW50IHN2bnB1YiB0byBiZSB0b28gbXVjaCBub2lzeSAtLT4NCisgICAgICAgICAgPG5vdGltZXN0YW1wPnRydWU8L25vdGltZXN0YW1wPg0KKyAgICAgICAgICA8bGlua3M+DQorICAgICAgICAgICAgPGxpbms+JHtjb21tb25zLmphdmFkb2MuamF2YS5saW5rfTwvbGluaz4NCisgICAgICAgICAgICA8bGluaz4ke2NvbW1vbnMuamF2YWRvYy5qYXZhZWUubGlua308L2xpbms+DQorICAgICAgICAgIDwvbGlua3M+DQorICAgICAgICA8L2NvbmZpZ3VyYXRpb24+DQorICAgICAgICA8IS0tIFN1cHByZXNzIHRlc3QgSmF2YWRvY3MgLS0+DQorICAgICAgICA8cmVwb3J0U2V0cz4NCisgICAgICAgICAgPHJlcG9ydFNldD4NCisgICAgICAgICAgICA8aWQ+ZGVmYXVsdDwvaWQ+DQorICAgICAgICAgICAgPHJlcG9ydHM+DQorICAgICAgICAgICAgICA8cmVwb3J0PmphdmFkb2M8L3JlcG9ydD4NCisgICAgICAgICAgICA8L3JlcG9ydHM+DQorICAgICAgICAgIDwvcmVwb3J0U2V0Pg0KKyAgICAgICAgPC9yZXBvcnRTZXRzPg0KKyAgICAgIDwvcGx1Z2luPg0KKyAgICAgIDxwbHVnaW4+DQorICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+DQorICAgICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1qeHItcGx1Z2luPC9hcnRpZmFjdElkPg0KKyAgICAgICAgPHZlcnNpb24+JHtjb21tb25zLmp4ci52ZXJzaW9ufTwvdmVyc2lvbj4NCisgICAgICA8L3BsdWdpbj4NCisgICAgICA8cGx1Z2luPg0KKyAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPg0KKyAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tcHJvamVjdC1pbmZvLXJlcG9ydHMtcGx1Z2luPC9hcnRpZmFjdElkPg0KKyAgICAgICAgPHZlcnNpb24+JHtjb21tb25zLnByb2plY3QtaW5mby52ZXJzaW9ufTwvdmVyc2lvbj4NCisgICAgICAgIDwhLS0NCisgICAgICAgICAgICBVbmZvcnR1bmF0ZWx5IGl0IGRvZXMgbm90IGFwcGVhciB0byBiZSBwb3NzaWJsZSB0byBvdmVycmlkZQ0KKyAgICAgICAgICAgIHJlcG9ydHMgY29uZmlndXJlZCBpbiBhIHBhcmVudCBQT00uDQorICAgICAgICAgICAgU2VlIGh0dHBzOi8vamlyYS5jb2RlaGF1cy5vcmcvYnJvd3NlL01QSVItMjQxDQorICAgICAgICAgICAgYW5kIGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTVBPTS0zMg0KKyAgICAgICAgICAgIFNvIHdlIGRlZmluZSBoZXJlIGFsbCB0aG9zZSByZXBvcnRzIHRoYXQgYXJlIHN1aXRhYmxlIGZvcg0KKyAgICAgICAgICAgIGFsbCBjb21wb25lbnRzLg0KKyAgICAgICAgICAgIENvbXBvbmVudHMgY2FuIGFkZCBleHRyYSByZXBvcnRzIGlmIHRoZXkgd2lzaCwgYnV0IGNhbm5vdCBkaXNhYmxlIGFueS4NCisgICAgICAgIC0tPg0KKyAgICAgICAgPHJlcG9ydFNldHM+DQorICAgICAgICAgIDxyZXBvcnRTZXQ+DQorICAgICAgICAgICAgPHJlcG9ydHM+DQorICAgICAgICAgICAgICA8cmVwb3J0PmluZGV4PC9yZXBvcnQ+DQorICAgICAgICAgICAgICA8cmVwb3J0PnN1bW1hcnk8L3JlcG9ydD4NCisgICAgICAgICAgICAgIDxyZXBvcnQ+bW9kdWxlczwvcmVwb3J0Pg0KKzwhLS0gICAgICAgICAgPHJlcG9ydD5saWNlbnNlPC9yZXBvcnQ+ICAgICAgICAgICAgICAgc2l0ZSBtdXN0IGxpbmsgdG8gQVNGIHBhZ2UgaW5zdGVhZCAgLS0+DQorICAgICAgICAgICAgICA8cmVwb3J0PnByb2plY3QtdGVhbTwvcmVwb3J0Pg0KKyAgICAgICAgICAgICAgPHJlcG9ydD5zY208L3JlcG9ydD4NCisgICAgICAgICAgICAgIDxyZXBvcnQ+aXNzdWUtdHJhY2tpbmc8L3JlcG9ydD4NCisgICAgICAgICAgICAgIDxyZXBvcnQ+bWFpbGluZy1saXN0PC9yZXBvcnQ+DQorICAgICAgICAgICAgICA8cmVwb3J0PmRlcGVuZGVuY3ktaW5mbzwvcmVwb3J0Pg0KKyAgICAgICAgICAgICAgPHJlcG9ydD5kZXBlbmRlbmN5LW1hbmFnZW1lbnQ8L3JlcG9ydD4NCisgICAgICAgICAgICAgIDxyZXBvcnQ+ZGVwZW5kZW5jaWVzPC9yZXBvcnQ+DQorICAgICAgICAgICAgICA8cmVwb3J0PmRlcGVuZGVuY3ktY29udmVyZ2VuY2U8L3JlcG9ydD4NCisgICAgICAgICAgICAgIDxyZXBvcnQ+Y2ltPC9yZXBvcnQ+DQorPCEtLSAgICAgICAgICA8cmVwb3J0PnBsdWdpbi1tYW5hZ2VtZW50PC9yZXBvcnQ+ICAgICAgbm90IHZlcnkgdXNlZnVsIGZvciBlbmQgdXNlcnMgLS0+DQorPCEtLSAgICAgICAgICA8cmVwb3J0PnBsdWdpbnM8L3JlcG9ydD4gICAgICAgICAgICAgICAgbm90IHZlcnkgdXNlZnVsIGZvciBlbmQgdXNlcnMgLS0+DQorICAgICAgICAgICAgICA8cmVwb3J0PmRpc3RyaWJ1dGlvbi1tYW5hZ2VtZW50PC9yZXBvcnQ+DQorICAgICAgICAgICAgPC9yZXBvcnRzPg0KKyAgICAgICAgICA8L3JlcG9ydFNldD4NCisgICAgICAgIDwvcmVwb3J0U2V0cz4NCisgICAgICA8L3BsdWdpbj4NCisgICAgICA8cGx1Z2luPg0KKyAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPg0KKyAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tc2l0ZS1wbHVnaW48L2FydGlmYWN0SWQ+DQorICAgICAgICA8dmVyc2lvbj4ke2NvbW1vbnMuc2l0ZS1wbHVnaW4udmVyc2lvbn08L3ZlcnNpb24+DQorICAgICAgICA8Y29uZmlndXJhdGlvbj4NCisgICAgICAgICAgPCEtLSBFeGNsdWRlIHRoZSBuYXZpZ2F0aW9uIGZpbGUgZm9yIE1hdmVuIDEgc2l0ZXMNCisgICAgICAgICAgICAgICBhbmQgdGhlIGNoYW5nZXMgZmlsZSB1c2VkIGJ5IHRoZSBjaGFuZ2VzLXBsdWdpbiwNCisgICAgICAgICAgICAgICBhcyB0aGV5IGludGVyZmVyZSB3aXRoIHRoZSBzaXRlIGdlbmVyYXRpb24uIC0tPg0KKyAgICAgICAgICA8bW9kdWxlRXhjbHVkZXM+DQorICAgICAgICAgICAgPHhkb2M+bmF2aWdhdGlvbi54bWwsY2hhbmdlcy54bWw8L3hkb2M+DQorICAgICAgICAgIDwvbW9kdWxlRXhjbHVkZXM+DQorICAgICAgICA8L2NvbmZpZ3VyYXRpb24+DQorICAgICAgPC9wbHVnaW4+DQorICAgICAgPHBsdWdpbj4NCisgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4NCisgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLXN1cmVmaXJlLXJlcG9ydC1wbHVnaW48L2FydGlmYWN0SWQ+DQorICAgICAgICA8dmVyc2lvbj4ke2NvbW1vbnMuc3VyZWZpcmUudmVyc2lvbn08L3ZlcnNpb24+DQorICAgICAgICA8Y29uZmlndXJhdGlvbj4NCisgICAgICAgICAgPGFnZ3JlZ2F0ZT4ke2NvbW1vbnMuc3VyZWZpcmUtcmVwb3J0LmFnZ3JlZ2F0ZX08L2FnZ3JlZ2F0ZT4NCisgICAgICAgIDwvY29uZmlndXJhdGlvbj4NCisgICAgICA8L3BsdWdpbj4NCisgICAgICA8IS0tIE90aGVyIHBsdWdpbnMsIGFscGhhIG9yZGVyIGJ5IGdyb3VwSWQgYW5kIGFydGlmYWN0SWQgLS0+DQorICAgICAgPHBsdWdpbj4NCisgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUucmF0PC9ncm91cElkPg0KKyAgICAgICAgPGFydGlmYWN0SWQ+YXBhY2hlLXJhdC1wbHVnaW48L2FydGlmYWN0SWQ+DQorICAgICAgICA8dmVyc2lvbj4ke2NvbW1vbnMucmF0LnZlcnNpb259PC92ZXJzaW9uPg0KKyAgICAgICAgPCEtLSBTaG91bGQgYWdyZWUgd2l0aCBjb25maWcgaW4gYnVpbGQgc2VjdGlvbiAtLT4NCisgICAgICAgIDxjb25maWd1cmF0aW9uPg0KKyAgICAgICAgICA8IS0tDQorICAgICAgICAgICAgICAgSWYgeW91IHdpc2ggdG8gb3ZlcnJpZGUgdGhpcyBsaXN0IGluIHRoZSBjb21wb25lbnQgKGNoaWxkKSBwb20sIGVuc3VyZSB5b3UgdXNlDQorICAgICAgICAgICAgICAgICAgIDxleGNsdWRlcyBjb21iaW5lLmNoaWxkcmVuPSJtZXJnZSI+DQorICAgICAgICAgICAgICAgc28gdGhhdCB0aGUgY2hpbGQgcG9tIGVudHJpZXMgcmVwbGFjZSB0aGUgcGFyZW50IGVudHJpZXMNCisgICAgICAgICAgIC0tPg0KKyAgICAgICAgICA8ZXhjbHVkZXMgY29tYmluZS5jaGlsZHJlbj0iYXBwZW5kIj4NCisgICAgICAgICAgICA8ZXhjbHVkZT5zaXRlLWNvbnRlbnQvKio8L2V4Y2x1ZGU+DQorICAgICAgICAgICAgPGV4Y2x1ZGU+LnBtZDwvZXhjbHVkZT4NCisgICAgICAgICAgICA8ZXhjbHVkZT5zcmMvc2l0ZS9yZXNvdXJjZXMvZG93bmxvYWRfKi5jZ2k8L2V4Y2x1ZGU+DQorICAgICAgICAgICAgPGV4Y2x1ZGU+c3JjL3NpdGUvcmVzb3VyY2VzL3Byb2ZpbGUuKjwvZXhjbHVkZT4NCisgICAgICAgICAgPC9leGNsdWRlcz4NCisgICAgICAgIDwvY29uZmlndXJhdGlvbj4NCisgICAgICA8L3BsdWdpbj4NCisgICAgICA8cGx1Z2luPg0KKyAgICAgICAgICA8Z3JvdXBJZD5vcmcuY29kZWhhdXMubW9qbzwvZ3JvdXBJZD4NCisgICAgICAgICAgPGFydGlmYWN0SWQ+Y2xpcnItbWF2ZW4tcGx1Z2luPC9hcnRpZmFjdElkPg0KKyAgICAgICAgICA8dmVyc2lvbj4ke2NvbW1vbnMuY2xpcnIudmVyc2lvbn08L3ZlcnNpb24+DQorICAgICAgICAgIDxjb25maWd1cmF0aW9uPg0KKyAgICAgICAgICAgICAgPG1pblNldmVyaXR5PiR7bWluU2V2ZXJpdHl9PC9taW5TZXZlcml0eT4NCisgICAgICAgICAgPC9jb25maWd1cmF0aW9uPg0KKyAgICAgIDwvcGx1Z2luPg0KKyAgICAgIDxwbHVnaW4+DQorICAgICAgICA8Z3JvdXBJZD5vcmcuY29kZWhhdXMubW9qbzwvZ3JvdXBJZD4NCisgICAgICAgIDxhcnRpZmFjdElkPmpkZXBlbmQtbWF2ZW4tcGx1Z2luPC9hcnRpZmFjdElkPg0KKyAgICAgICAgPHZlcnNpb24+JHtjb21tb25zLmpkZXBlbmQudmVyc2lvbn08L3ZlcnNpb24+DQorICAgICAgPC9wbHVnaW4+DQorICAgIDwvcGx1Z2lucz4NCisgIDwvcmVwb3J0aW5nPg0KKw0KKyAgPHByb2ZpbGVzPg0KKw0KKyAgICA8cHJvZmlsZT4NCisgICAgICA8aWQ+amFjb2NvPC9pZD4NCisgICAgICA8YWN0aXZhdGlvbj4NCisgICAgICAgIDwhLS0NCisgICAgICAgICAgICBOLkIuIGluIHNwaXRlIG9mIHdoYXQgdGhlIE1hdmVuIGRvY3MgbWF5IHNheSwNCisgICAgICAgICAgICBhY3RpdmF0aW9uIGNvbmRpdGlvbnMgYXJlIE9SZWQgdG9nZXRoZXIsIHNlZToNCisgICAgICAgICAgICBodHRwOi8vamlyYS5jb2RlaGF1cy5vcmcvYnJvd3NlL01ORy00NTY1DQorICAgICAgICAgICAgRmFpcmx5IHVzZWxlc3MsIGJ1dCB0aGF0J3Mgd2hhdCB3YXMgZG9uZSBpbg0KKyAgICAgICAgICAgIGh0dHA6Ly9qaXJhLmNvZGVoYXVzLm9yZy9icm93c2UvTU5HLTMxMDYNCisNCisgICAgICAgICAgICBTbyB3ZSBjYW5ub3QgYWxzbyBjaGVjayBmb3IgSmF2YSAxLjUrDQorICAgICAgICAgICAgVGhpcyBzaG91bGQgbm90IGJlIGEgcHJvYmxlbSBub3cgYXMgdGhlIHByb2ZpbGUgaXMgb3B0aW9uYWwuDQorICAgICAgICAgICAgQ29tcG9uZW50cyB0aGF0IHN0aWxsIHRhcmdldCBKYXZhIDEuNCBvciBlYXJsaWVyDQorICAgICAgICAgICAganVzdCBuZWVkIHRvIGVuc3VyZSB0aGV5IGRvbid0IHVzZSBKYUNvQ28gYnkgZGVmYXVsdC4NCisgICAgICAgIC0tPg0KKyAgICAgICAgPGZpbGU+DQorICAgICAgICAgIDxleGlzdHM+c3JjL3NpdGUvcmVzb3VyY2VzL3Byb2ZpbGUuamFjb2NvPC9leGlzdHM+DQorICAgICAgICA8L2ZpbGU+DQorICAgICAgPC9hY3RpdmF0aW9uPg0KKyAgICAgIDxidWlsZD4NCisgICAgICAgIDxwbHVnaW5zPg0KKyAgICAgICAgICA8cGx1Z2luPg0KKyAgICAgICAgICA8Z3JvdXBJZD5vcmcuamFjb2NvPC9ncm91cElkPg0KKyAgICAgICAgICA8YXJ0aWZhY3RJZD5qYWNvY28tbWF2ZW4tcGx1Z2luPC9hcnRpZmFjdElkPg0KKyAgICAgICAgICA8dmVyc2lvbj4ke2NvbW1vbnMuamFjb2NvLnZlcnNpb259PC92ZXJzaW9uPg0KKyAgICAgICAgICA8IS0tIE5vdGUgdGhhdCBzaW5jZSBKYUNvQ28gcmVsaWVzIG9uIGFuIGFnZW50IHRvIHBlcmZvcm0gdGVzdHMsDQorICAgICAgICAgICAgICAgaXQgY2hhbmdlcyB0aGUgc3VyZWZpcmUgYXJndW1lbnRzIGxpbmUuIElmIGEgY29tcG9uZW50IGFsc28NCisgICAgICAgICAgICAgICBuZWVkcyB0byBjaGFuZ2UgdGhlIGFyZ3VtZW50IGxpbmUgb2YgbWF2ZW4tc3VyZWZpcmUtcGx1Z2luLA0KKyAgICAgICAgICAgICAgIHRoZW4gaXQgbXVzdCBhZGQgJHthcmdMaW5lfSBwcm9wZXJ0eSAod2hpY2ggaXMgc2V0IGJ5IEphQ29DbykNCisgICAgICAgICAgICAgICBpbiB0aGUgYXJnTGluZSBjb25maWd1cmF0aW9uIGVsZW1lbnQgb2YgbWF2ZW4tc3VyZWZpcmUtcGx1Z2luDQorICAgICAgICAgICAgICAgdG8gcHJlc2VydmUgSmFDb0NvIHNldHRpbmdzLiAtLT4NCisgICAgICAgICAgPGV4ZWN1dGlvbnM+DQorICAgICAgICAgICAgPGV4ZWN1dGlvbj4NCisgICAgICAgICAgICAgIDxpZD5wcmVwYXJlLWFnZW50PC9pZD4NCisgICAgICAgICAgICAgIDxwaGFzZT5wcm9jZXNzLXRlc3QtY2xhc3NlczwvcGhhc2U+DQorICAgICAgICAgICAgICA8Z29hbHM+DQorICAgICAgICAgICAgICAgIDxnb2FsPnByZXBhcmUtYWdlbnQ8L2dvYWw+DQorICAgICAgICAgICAgICA8L2dvYWxzPg0KKyAgICAgICAgICAgIDwvZXhlY3V0aW9uPg0KKyAgICAgICAgICAgIDxleGVjdXRpb24+DQorICAgICAgICAgICAgICA8aWQ+cmVwb3J0PC9pZD4NCisgICAgICAgICAgICAgIDxwaGFzZT5zaXRlPC9waGFzZT4NCisgICAgICAgICAgICAgIDxnb2Fscz4NCisgICAgICAgICAgICAgICAgPGdvYWw+cmVwb3J0PC9nb2FsPg0KKyAgICAgICAgICAgICAgPC9nb2Fscz4NCisgICAgICAgICAgICA8L2V4ZWN1dGlvbj4NCisgICAgICAgICAgICA8ZXhlY3V0aW9uPg0KKyAgICAgICAgICAgICAgPGlkPmNoZWNrPC9pZD4NCisgICAgICAgICAgICAgIDxnb2Fscz4NCisgICAgICAgICAgICAgICAgPGdvYWw+Y2hlY2s8L2dvYWw+DQorICAgICAgICAgICAgICA8L2dvYWxzPg0KKyAgICAgICAgICAgICAgPGNvbmZpZ3VyYXRpb24+DQorICAgICAgICAgICAgICAgIDxydWxlcz4NCisgICAgICAgICAgICAgICAgICA8cnVsZT4NCisgICAgICAgICAgICAgICAgICAgIDxlbGVtZW50PkJVTkRMRTwvZWxlbWVudD4NCisgICAgICAgICAgICAgICAgICAgIDxsaW1pdHM+DQorICAgICAgICAgICAgICAgICAgICAgIDxsaW1pdD4NCisgICAgICAgICAgICAgICAgICAgICAgICA8Y291bnRlcj5DTEFTUzwvY291bnRlcj4NCisgICAgICAgICAgICAgICAgICAgICAgICA8dmFsdWU+Q09WRVJFRFJBVElPPC92YWx1ZT4NCisgICAgICAgICAgICAgICAgICAgICAgICA8bWluaW11bT4ke2NvbW1vbnMuamFjb2NvLmNsYXNzUmF0aW99PC9taW5pbXVtPg0KKyAgICAgICAgICAgICAgICAgICAgICA8L2xpbWl0Pg0KKyAgICAgICAgICAgICAgICAgICAgICA8bGltaXQ+DQorICAgICAgICAgICAgICAgICAgICAgICAgPGNvdW50ZXI+SU5TVFJVQ1RJT048L2NvdW50ZXI+DQorICAgICAgICAgICAgICAgICAgICAgICAgPHZhbHVlPkNPVkVSRURSQVRJTzwvdmFsdWU+DQorICAgICAgICAgICAgICAgICAgICAgICAgPG1pbmltdW0+JHtjb21tb25zLmphY29jby5pbnN0cnVjdGlvblJhdGlvfTwvbWluaW11bT4NCisgICAgICAgICAgICAgICAgICAgICAgPC9saW1pdD4NCisgICAgICAgICAgICAgICAgICAgICAgPGxpbWl0Pg0KKyAgICAgICAgICAgICAgICAgICAgICAgIDxjb3VudGVyPk1FVEhPRDwvY291bnRlcj4NCisgICAgICAgICAgICAgICAgICAgICAgICA8dmFsdWU+Q09WRVJFRFJBVElPPC92YWx1ZT4NCisgICAgICAgICAgICAgICAgICAgICAgICA8bWluaW11bT4ke2NvbW1vbnMuamFjb2NvLm1ldGhvZFJhdGlvfTwvbWluaW11bT4NCisgICAgICAgICAgICAgICAgICAgICAgPC9saW1pdD4NCisgICAgICAgICAgICAgICAgICAgICAgPGxpbWl0Pg0KKyAgICAgICAgICAgICAgICAgICAgICAgIDxjb3VudGVyPkJSQU5DSDwvY291bnRlcj4NCisgICAgICAgICAgICAgICAgICAgICAgICA8dmFsdWU+Q09WRVJFRFJBVElPPC92YWx1ZT4NCisgICAgICAgICAgICAgICAgICAgICAgICA8bWluaW11bT4ke2NvbW1vbnMuamFjb2NvLmJyYW5jaFJhdGlvfTwvbWluaW11bT4NCisgICAgICAgICAgICAgICAgICAgICAgPC9saW1pdD4NCisgICAgICAgICAgICAgICAgICAgICAgPGxpbWl0Pg0KKyAgICAgICAgICAgICAgICAgICAgICAgIDxjb3VudGVyPkxJTkU8L2NvdW50ZXI+DQorICAgICAgICAgICAgICAgICAgICAgICAgPHZhbHVlPkNPVkVSRURSQVRJTzwvdmFsdWU+DQorICAgICAgICAgICAgICAgICAgICAgICAgPG1pbmltdW0+JHtjb21tb25zLmphY29jby5saW5lUmF0aW99PC9taW5pbXVtPg0KKyAgICAgICAgICAgICAgICAgICAgICA8L2xpbWl0Pg0KKyAgICAgICAgICAgICAgICAgICAgICA8bGltaXQ+DQorICAgICAgICAgICAgICAgICAgICAgICAgPGNvdW50ZXI+Q09NUExFWElUWTwvY291bnRlcj4NCisgICAgICAgICAgICAgICAgICAgICAgICA8dmFsdWU+Q09WRVJFRFJBVElPPC92YWx1ZT4NCisgICAgICAgICAgICAgICAgICAgICAgICA8bWluaW11bT4ke2NvbW1vbnMuamFjb2NvLmNvbXBsZXhpdHlSYXRpb308L21pbmltdW0+DQorICAgICAgICAgICAgICAgICAgICAgIDwvbGltaXQ+DQorICAgICAgICAgICAgICAgICAgICA8L2xpbWl0cz4NCisgICAgICAgICAgICAgICAgICA8L3J1bGU+DQorICAgICAgICAgICAgICAgIDwvcnVsZXM+DQorICAgICAgICAgICAgICAgIDxoYWx0T25GYWlsdXJlPiR7Y29tbW9ucy5qYWNvY28uaGFsdE9uRmFpbHVyZX08L2hhbHRPbkZhaWx1cmU+DQorICAgICAgICAgICAgICA8L2NvbmZpZ3VyYXRpb24+DQorICAgICAgICAgICAgPC9leGVjdXRpb24+DQorICAgICAgICAgIDwvZXhlY3V0aW9ucz4NCisgICAgICAgICAgPC9wbHVnaW4+DQorICAgICAgICA8L3BsdWdpbnM+DQorICAgICAgPC9idWlsZD4NCisgICAgICA8cmVwb3J0aW5nPg0KKyAgICAgICAgPHBsdWdpbnM+DQorICAgICAgICAgIDxwbHVnaW4+DQorICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLmphY29jbzwvZ3JvdXBJZD4NCisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5qYWNvY28tbWF2ZW4tcGx1Z2luPC9hcnRpZmFjdElkPg0KKyAgICAgICAgICAgIDx2ZXJzaW9uPiR7Y29tbW9ucy5qYWNvY28udmVyc2lvbn08L3ZlcnNpb24+DQorICAgICAgICAgIDwvcGx1Z2luPg0KKyAgICAgICAgPC9wbHVnaW5zPg0KKyAgICAgIDwvcmVwb3J0aW5nPg0KKyAgICA8L3Byb2ZpbGU+DQorDQorICAgIDxwcm9maWxlPg0KKyAgICAgIDxpZD5jb2JlcnR1cmE8L2lkPg0KKyAgICAgIDxhY3RpdmF0aW9uPg0KKyAgICAgICAgPGZpbGU+DQorICAgICAgICAgIDxleGlzdHM+c3JjL3NpdGUvcmVzb3VyY2VzL3Byb2ZpbGUuY29iZXJ0dXJhPC9leGlzdHM+DQorICAgICAgICA8L2ZpbGU+DQorICAgICAgPC9hY3RpdmF0aW9uPg0KKyAgICAgIDxyZXBvcnRpbmc+DQorICAgICAgICA8cGx1Z2lucz4NCisgICAgICAgICAgPHBsdWdpbj4NCisgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuY29kZWhhdXMubW9qbzwvZ3JvdXBJZD4NCisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5jb2JlcnR1cmEtbWF2ZW4tcGx1Z2luPC9hcnRpZmFjdElkPg0KKyAgICAgICAgICAgIDx2ZXJzaW9uPiR7Y29tbW9ucy5jb2JlcnR1cmEudmVyc2lvbn08L3ZlcnNpb24+DQorICAgICAgICAgIDwvcGx1Z2luPg0KKyAgICAgICAgPC9wbHVnaW5zPg0KKyAgICAgIDwvcmVwb3J0aW5nPg0KKyAgICA8L3Byb2ZpbGU+DQorDQorICAgIDwhLS0NCisgICAgICAgICBQcm9maWxlIGZvciBDb21tb25zIHJlbGVhc2VzIHZpYSBOZXh1cy4NCisgICAgICAgICBBc3NlbWJsZXMgYXJ0aWZhY3RzLCBjcmVhdGVzIHNvdXJjZSBhbmQgamF2YWRvYyBqYXJzLCBzaWducyB0aGVtIGFuZCBhZGRzIGhhc2hlcy4NCisgICAgLS0+DQorICAgIDxwcm9maWxlPg0KKyAgICAgIDxpZD5yZWxlYXNlPC9pZD4NCisgICAgICA8YnVpbGQ+DQorICAgICAgICA8cGx1Z2lucz4NCisgICAgICAgICAgPCEtLSBXZSB3YW50IHRvIHNpZ24gdGhlIGFydGlmYWN0LCB0aGUgUE9NLCBhbmQgYWxsIGF0dGFjaGVkIGFydGlmYWN0cyAtLT4NCisgICAgICAgICAgPHBsdWdpbj4NCisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1ncGctcGx1Z2luPC9hcnRpZmFjdElkPg0KKyAgICAgICAgICAgIDxjb25maWd1cmF0aW9uPg0KKyAgICAgICAgICAgICAgPHBhc3NwaHJhc2U+JHtncGcucGFzc3BocmFzZX08L3Bhc3NwaHJhc2U+DQorICAgICAgICAgICAgPC9jb25maWd1cmF0aW9uPg0KKyAgICAgICAgICAgIDxleGVjdXRpb25zPg0KKyAgICAgICAgICAgICAgPGV4ZWN1dGlvbj4NCisgICAgICAgICAgICAgICAgPGlkPnNpZ24tYXJ0aWZhY3RzPC9pZD4NCisgICAgICAgICAgICAgICAgPHBoYXNlPnZlcmlmeTwvcGhhc2U+DQorICAgICAgICAgICAgICAgIDxnb2Fscz4NCisgICAgICAgICAgICAgICAgICA8Z29hbD5zaWduPC9nb2FsPg0KKyAgICAgICAgICAgICAgICA8L2dvYWxzPg0KKyAgICAgICAgICAgICAgPC9leGVjdXRpb24+DQorICAgICAgICAgICAgPC9leGVjdXRpb25zPg0KKyAgICAgICAgICA8L3BsdWdpbj4NCisgICAgICAgICAgPHBsdWdpbj4NCisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1pbnN0YWxsLXBsdWdpbjwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgICA8Y29uZmlndXJhdGlvbj4NCisgICAgICAgICAgICAgIDxjcmVhdGVDaGVja3N1bT50cnVlPC9jcmVhdGVDaGVja3N1bT4NCisgICAgICAgICAgICA8L2NvbmZpZ3VyYXRpb24+DQorICAgICAgICAgIDwvcGx1Z2luPg0KKyAgICAgICAgICA8cGx1Z2luPg0KKyAgICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLXNvdXJjZS1wbHVnaW48L2FydGlmYWN0SWQ+DQorICAgICAgICAgICAgPGV4ZWN1dGlvbnM+DQorICAgICAgICAgICAgICA8ZXhlY3V0aW9uPg0KKyAgICAgICAgICAgICAgICA8aWQ+Y3JlYXRlLXNvdXJjZS1qYXI8L2lkPg0KKyAgICAgICAgICAgICAgICA8Z29hbHM+DQorICAgICAgICAgICAgICAgICAgPGdvYWw+amFyPC9nb2FsPg0KKyAgICAgICAgICAgICAgICAgIDxnb2FsPnRlc3QtamFyPC9nb2FsPg0KKyAgICAgICAgICAgICAgICA8L2dvYWxzPg0KKyAgICAgICAgICAgICAgPC9leGVjdXRpb24+DQorICAgICAgICAgICAgPC9leGVjdXRpb25zPg0KKyAgICAgICAgICA8L3BsdWdpbj4NCisgICAgICAgICAgPHBsdWdpbj4NCisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1qYXItcGx1Z2luPC9hcnRpZmFjdElkPg0KKyAgICAgICAgICAgIDxleGVjdXRpb25zPg0KKyAgICAgICAgICAgICAgPGV4ZWN1dGlvbj4NCisgICAgICAgICAgICAgICAgPGdvYWxzPg0KKyAgICAgICAgICAgICAgICAgIDxnb2FsPnRlc3QtamFyPC9nb2FsPg0KKyAgICAgICAgICAgICAgICA8L2dvYWxzPg0KKyAgICAgICAgICAgICAgICA8Y29uZmlndXJhdGlvbj4NCisgICAgICAgICAgICAgICAgIDwhLS0gQXZvaWRzIGFuIGVycm9yIHdoZW4gcmVsZWFzaW5nIHRoZSBwYXJlbnQgcG9tIC0tPg0KKyAgICAgICAgICAgICAgICAgPHNraXBJZkVtcHR5PnRydWU8L3NraXBJZkVtcHR5Pg0KKyAgICAgICAgICAgICAgICA8L2NvbmZpZ3VyYXRpb24+DQorICAgICAgICAgICAgICA8L2V4ZWN1dGlvbj4NCisgICAgICAgICAgICA8L2V4ZWN1dGlvbnM+DQorICAgICAgICAgIDwvcGx1Z2luPg0KKyAgICAgICAgICA8cGx1Z2luPg0KKyAgICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLXJlbGVhc2UtcGx1Z2luPC9hcnRpZmFjdElkPg0KKyAgICAgICAgICAgIDxjb25maWd1cmF0aW9uPg0KKyAgICAgICAgICAgICAgPCEtLSBQYXNzIHRoZXNlIGFyZ3VtZW50cyB0byB0aGUgZGVwbG95IHBsdWdpbi4gLS0+DQorICAgICAgICAgICAgICA8YXJndW1lbnRzPi1QcmVsZWFzZTwvYXJndW1lbnRzPg0KKyAgICAgICAgICAgIDwvY29uZmlndXJhdGlvbj4NCisgICAgICAgICAgPC9wbHVnaW4+DQorICAgICAgICAgIDxwbHVnaW4+DQorICAgICAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tamF2YWRvYy1wbHVnaW48L2FydGlmYWN0SWQ+DQorICAgICAgICAgICAgPGV4ZWN1dGlvbnM+DQorICAgICAgICAgICAgICA8ZXhlY3V0aW9uPg0KKyAgICAgICAgICAgICAgICA8aWQ+Y3JlYXRlLWphdmFkb2MtamFyPC9pZD4NCisgICAgICAgICAgICAgICAgPGdvYWxzPg0KKyAgICAgICAgICAgICAgICAgIDxnb2FsPmphdmFkb2M8L2dvYWw+DQorICAgICAgICAgICAgICAgICAgPGdvYWw+amFyPC9nb2FsPg0KKyAgICAgICAgICAgICAgICA8L2dvYWxzPg0KKyAgICAgICAgICAgICAgICA8cGhhc2U+cGFja2FnZTwvcGhhc2U+DQorICAgICAgICAgICAgICA8L2V4ZWN1dGlvbj4NCisgICAgICAgICAgICA8L2V4ZWN1dGlvbnM+DQorICAgICAgICAgICAgPGNvbmZpZ3VyYXRpb24+DQorICAgICAgICAgICAgICA8c291cmNlPiR7bWF2ZW4uY29tcGlsZXIuc291cmNlfTwvc291cmNlPg0KKyAgICAgICAgICAgIDwvY29uZmlndXJhdGlvbj4NCisgICAgICAgICAgPC9wbHVnaW4+DQorICAgICAgICAgIDxwbHVnaW4+DQorICAgICAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tYXNzZW1ibHktcGx1Z2luPC9hcnRpZmFjdElkPg0KKyAgICAgICAgICAgIDxpbmhlcml0ZWQ+dHJ1ZTwvaW5oZXJpdGVkPg0KKyAgICAgICAgICAgIDxleGVjdXRpb25zPg0KKyAgICAgICAgICAgICAgPGV4ZWN1dGlvbj4NCisgICAgICAgICAgICAgICAgPGdvYWxzPg0KKyAgICAgICAgICAgICAgICAgIDxnb2FsPnNpbmdsZTwvZ29hbD4NCisgICAgICAgICAgICAgICAgPC9nb2Fscz4NCisgICAgICAgICAgICAgICAgPHBoYXNlPnBhY2thZ2U8L3BoYXNlPg0KKyAgICAgICAgICAgICAgPC9leGVjdXRpb24+DQorICAgICAgICAgICAgPC9leGVjdXRpb25zPg0KKyAgICAgICAgICA8L3BsdWdpbj4NCisgICAgICAgIDwvcGx1Z2lucz4NCisgICAgICA8L2J1aWxkPg0KKyAgICA8L3Byb2ZpbGU+DQorDQorICAgICA8IS0tDQorICAgICAgIHByb2ZpbGUgdG8gdXBkYXRlIHRoZSBBcGFjaGUgcGFyZW50IHBvbSBwcm9maWxlIG9mIHRoZSBzYW1lIG5hbWUNCisgICAgICAgdG8gYmV0dGVyIHN1aXQgdGhlIHJlcXVpcmVtZW50cyBvZiBBcGFjaGUgQ29tbW9ucy4NCisgICAgICAgW1JlcXVpcmVzIGZ1cnRoZXIgd29ya10NCisgICAgIC0tPg0KKyAgICA8cHJvZmlsZT4NCisgICAgICA8aWQ+YXBhY2hlLXJlbGVhc2U8L2lkPg0KKyAgICAgIDxidWlsZD4NCisgICAgICAgIDxwbHVnaW5zPg0KKyAgICAgICAgICA8cGx1Z2luPg0KKyAgICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLXJlbGVhc2UtcGx1Z2luPC9hcnRpZmFjdElkPg0KKyAgICAgICAgICAgIDxjb25maWd1cmF0aW9uPg0KKyAgICAgICAgICAgICAgICA8cmVsZWFzZVByb2ZpbGVzPmFwYWNoZS1yZWxlYXNlPC9yZWxlYXNlUHJvZmlsZXM+DQorICAgICAgICAgICAgPC9jb25maWd1cmF0aW9uPg0KKyAgICAgICAgICA8L3BsdWdpbj4NCisgICAgICAgICAgPHBsdWdpbj4NCisgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+DQorICAgICAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tc291cmNlLXBsdWdpbjwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgICA8ZXhlY3V0aW9ucz4NCisgICAgICAgICAgICAgIDxleGVjdXRpb24+DQorICAgICAgICAgICAgICAgIDxpZD5hdHRhY2gtdGVzdC1zb3VyY2VzPC9pZD4NCisgICAgICAgICAgICAgICAgPGdvYWxzPg0KKyAgICAgICAgICAgICAgICAgIDxnb2FsPnRlc3QtamFyPC9nb2FsPg0KKyAgICAgICAgICAgICAgICA8L2dvYWxzPg0KKyAgICAgICAgICAgICAgPC9leGVjdXRpb24+DQorICAgICAgICAgICAgPC9leGVjdXRpb25zPg0KKyAgICAgICAgICA8L3BsdWdpbj4NCisgICAgICAgICAgPHBsdWdpbj4NCisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1pbnN0YWxsLXBsdWdpbjwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgICA8Y29uZmlndXJhdGlvbj4NCisgICAgICAgICAgICAgIDxjcmVhdGVDaGVja3N1bT50cnVlPC9jcmVhdGVDaGVja3N1bT4NCisgICAgICAgICAgICA8L2NvbmZpZ3VyYXRpb24+DQorICAgICAgICAgIDwvcGx1Z2luPg0KKyAgICAgICAgICA8cGx1Z2luPg0KKyAgICAgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4NCisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1qYXItcGx1Z2luPC9hcnRpZmFjdElkPg0KKyAgICAgICAgICAgIDxleGVjdXRpb25zPg0KKyAgICAgICAgICAgICAgPGV4ZWN1dGlvbj4NCisgICAgICAgICAgICAgICAgPGdvYWxzPg0KKyAgICAgICAgICAgICAgICAgIDxnb2FsPnRlc3QtamFyPC9nb2FsPg0KKyAgICAgICAgICAgICAgICA8L2dvYWxzPg0KKyAgICAgICAgICAgICAgPC9leGVjdXRpb24+DQorICAgICAgICAgICAgPC9leGVjdXRpb25zPg0KKyAgICAgICAgICA8L3BsdWdpbj4NCisgICAgICAgIDwvcGx1Z2lucz4NCisgICAgICA8L2J1aWxkPg0KKyAgICA8L3Byb2ZpbGU+DQorDQorICAgIDwhLS0NCisgICAgICAgUHJvZmlsZSBmb3IgcnVubmluZyB0aGUgYnVpbGQgdXNpbmcgSkRLIDEuMw0KKyAgICAgICAoSkFWQV8xXzNfSE9NRSBuZWVkcyB0byBiZSBkZWZpbmVkLCBlLmcuIGluIHNldHRpbmdzLnhtbCBvciBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZSkNCisgICAgICAtLT4NCisgICAgPHByb2ZpbGU+DQorICAgICAgPGlkPmphdmEtMS4zPC9pZD4NCisgICAgICA8cHJvcGVydGllcz4NCisgICAgICAgIDxjb21tb25zLmNvbXBpbGVyLmZvcms+dHJ1ZTwvY29tbW9ucy5jb21waWxlci5mb3JrPg0KKyAgICAgICAgPGNvbW1vbnMuY29tcGlsZXIuY29tcGlsZXJWZXJzaW9uPjEuMzwvY29tbW9ucy5jb21waWxlci5jb21waWxlclZlcnNpb24+DQorICAgICAgICA8Y29tbW9ucy5jb21waWxlci5qYXZhYz4ke0pBVkFfMV8zX0hPTUV9L2Jpbi9qYXZhYzwvY29tbW9ucy5jb21waWxlci5qYXZhYz4NCisgICAgICAgIDxjb21tb25zLnN1cmVmaXJlLmphdmE+JHtKQVZBXzFfM19IT01FfS9iaW4vamF2YTwvY29tbW9ucy5zdXJlZmlyZS5qYXZhPg0KKyAgICAgIDwvcHJvcGVydGllcz4NCisgICAgPC9wcm9maWxlPg0KKw0KKyAgICA8IS0tDQorICAgICAgIFByb2ZpbGUgZm9yIHJ1bm5pbmcgdGhlIGJ1aWxkIHVzaW5nIEpESyAxLjQNCisgICAgICAgKEpBVkFfMV80X0hPTUUgbmVlZHMgdG8gYmUgZGVmaW5lZCwgZS5nLiBpbiBzZXR0aW5ncy54bWwgb3IgYW4gZW52aXJvbm1lbnQgdmFyaWFibGUpDQorICAgICAgLS0+DQorICAgIDxwcm9maWxlPg0KKyAgICAgIDxpZD5qYXZhLTEuNDwvaWQ+DQorICAgICAgPHByb3BlcnRpZXM+DQorICAgICAgICA8Y29tbW9ucy5jb21waWxlci5mb3JrPnRydWU8L2NvbW1vbnMuY29tcGlsZXIuZm9yaz4NCisgICAgICAgIDxjb21tb25zLmNvbXBpbGVyLmNvbXBpbGVyVmVyc2lvbj4xLjQ8L2NvbW1vbnMuY29tcGlsZXIuY29tcGlsZXJWZXJzaW9uPg0KKyAgICAgICAgPGNvbW1vbnMuY29tcGlsZXIuamF2YWM+JHtKQVZBXzFfNF9IT01FfS9iaW4vamF2YWM8L2NvbW1vbnMuY29tcGlsZXIuamF2YWM+DQorICAgICAgICA8Y29tbW9ucy5zdXJlZmlyZS5qYXZhPiR7SkFWQV8xXzRfSE9NRX0vYmluL2phdmE8L2NvbW1vbnMuc3VyZWZpcmUuamF2YT4NCisgICAgICA8L3Byb3BlcnRpZXM+DQorICAgIDwvcHJvZmlsZT4NCisNCisgICAgPCEtLQ0KKyAgICAgICBQcm9maWxlIGZvciBydW5uaW5nIHRoZSBidWlsZCB1c2luZyBKREsgMS41DQorICAgICAgIChKQVZBXzFfNV9IT01FIG5lZWRzIHRvIGJlIGRlZmluZWQsIGUuZy4gaW4gc2V0dGluZ3MueG1sIG9yIGFuIGVudmlyb25tZW50IHZhcmlhYmxlKQ0KKyAgICAgIC0tPg0KKyAgICA8cHJvZmlsZT4NCisgICAgICA8aWQ+amF2YS0xLjU8L2lkPg0KKyAgICAgIDxwcm9wZXJ0aWVzPg0KKyAgICAgICAgPGNvbW1vbnMuY29tcGlsZXIuZm9yaz50cnVlPC9jb21tb25zLmNvbXBpbGVyLmZvcms+DQorICAgICAgICA8Y29tbW9ucy5jb21waWxlci5jb21waWxlclZlcnNpb24+MS41PC9jb21tb25zLmNvbXBpbGVyLmNvbXBpbGVyVmVyc2lvbj4NCisgICAgICAgIDxjb21tb25zLmNvbXBpbGVyLmphdmFjPiR7SkFWQV8xXzVfSE9NRX0vYmluL2phdmFjPC9jb21tb25zLmNvbXBpbGVyLmphdmFjPg0KKyAgICAgICAgPGNvbW1vbnMuc3VyZWZpcmUuamF2YT4ke0pBVkFfMV81X0hPTUV9L2Jpbi9qYXZhPC9jb21tb25zLnN1cmVmaXJlLmphdmE+DQorICAgICAgPC9wcm9wZXJ0aWVzPg0KKyAgICA8L3Byb2ZpbGU+DQorDQorICAgIDwhLS0NCisgICAgICAgUHJvZmlsZSBmb3IgcnVubmluZyB0aGUgYnVpbGQgdXNpbmcgSkRLIDEuNg0KKyAgICAgICAoSkFWQV8xXzZfSE9NRSBuZWVkcyB0byBiZSBkZWZpbmVkLCBlLmcuIGluIHNldHRpbmdzLnhtbCBvciBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZSkNCisgICAgICAtLT4NCisgICAgPHByb2ZpbGU+DQorICAgICAgPGlkPmphdmEtMS42PC9pZD4NCisgICAgICA8cHJvcGVydGllcz4NCisgICAgICAgIDxjb21tb25zLmNvbXBpbGVyLmZvcms+dHJ1ZTwvY29tbW9ucy5jb21waWxlci5mb3JrPg0KKyAgICAgICAgPGNvbW1vbnMuY29tcGlsZXIuY29tcGlsZXJWZXJzaW9uPjEuNjwvY29tbW9ucy5jb21waWxlci5jb21waWxlclZlcnNpb24+DQorICAgICAgICA8Y29tbW9ucy5jb21waWxlci5qYXZhYz4ke0pBVkFfMV82X0hPTUV9L2Jpbi9qYXZhYzwvY29tbW9ucy5jb21waWxlci5qYXZhYz4NCisgICAgICAgIDxjb21tb25zLnN1cmVmaXJlLmphdmE+JHtKQVZBXzFfNl9IT01FfS9iaW4vamF2YTwvY29tbW9ucy5zdXJlZmlyZS5qYXZhPg0KKyAgICAgIDwvcHJvcGVydGllcz4NCisgICAgPC9wcm9maWxlPg0KKw0KKyAgICA8IS0tDQorICAgICAgIFByb2ZpbGUgZm9yIHJ1bm5pbmcgdGhlIGJ1aWxkIHVzaW5nIEpESyAxLjcNCisgICAgICAgKEpBVkFfMV83X0hPTUUgbmVlZHMgdG8gYmUgZGVmaW5lZCwgZS5nLiBpbiBzZXR0aW5ncy54bWwgb3IgYW4gZW52aXJvbm1lbnQgdmFyaWFibGUpDQorICAgICAgLS0+DQorICAgIDxwcm9maWxlPg0KKyAgICAgIDxpZD5qYXZhLTEuNzwvaWQ+DQorICAgICAgPHByb3BlcnRpZXM+DQorICAgICAgICA8Y29tbW9ucy5jb21waWxlci5mb3JrPnRydWU8L2NvbW1vbnMuY29tcGlsZXIuZm9yaz4NCisgICAgICAgIDxjb21tb25zLmNvbXBpbGVyLmNvbXBpbGVyVmVyc2lvbj4xLjc8L2NvbW1vbnMuY29tcGlsZXIuY29tcGlsZXJWZXJzaW9uPg0KKyAgICAgICAgPGNvbW1vbnMuY29tcGlsZXIuamF2YWM+JHtKQVZBXzFfN19IT01FfS9iaW4vamF2YWM8L2NvbW1vbnMuY29tcGlsZXIuamF2YWM+DQorICAgICAgICA8Y29tbW9ucy5zdXJlZmlyZS5qYXZhPiR7SkFWQV8xXzdfSE9NRX0vYmluL2phdmE8L2NvbW1vbnMuc3VyZWZpcmUuamF2YT4NCisgICAgICA8L3Byb3BlcnRpZXM+DQorICAgIDwvcHJvZmlsZT4NCisNCisgICAgPCEtLQ0KKyAgICAgICBQcm9maWxlIGZvciBydW5uaW5nIHRoZSBidWlsZCB1c2luZyBKREsgMS44DQorICAgICAgIChKQVZBXzFfOF9IT01FIG5lZWRzIHRvIGJlIGRlZmluZWQsIGUuZy4gaW4gc2V0dGluZ3MueG1sIG9yIGFuIGVudmlyb25tZW50IHZhcmlhYmxlKQ0KKyAgICAgIC0tPg0KKyAgICA8cHJvZmlsZT4NCisgICAgICA8aWQ+amF2YS0xLjg8L2lkPg0KKyAgICAgIDxwcm9wZXJ0aWVzPg0KKyAgICAgICAgPGNvbW1vbnMuY29tcGlsZXIuZm9yaz50cnVlPC9jb21tb25zLmNvbXBpbGVyLmZvcms+DQorICAgICAgICA8Y29tbW9ucy5jb21waWxlci5jb21waWxlclZlcnNpb24+MS44PC9jb21tb25zLmNvbXBpbGVyLmNvbXBpbGVyVmVyc2lvbj4NCisgICAgICAgIDxjb21tb25zLmNvbXBpbGVyLmphdmFjPiR7SkFWQV8xXzhfSE9NRX0vYmluL2phdmFjPC9jb21tb25zLmNvbXBpbGVyLmphdmFjPg0KKyAgICAgICAgPGNvbW1vbnMuc3VyZWZpcmUuamF2YT4ke0pBVkFfMV84X0hPTUV9L2Jpbi9qYXZhPC9jb21tb25zLnN1cmVmaXJlLmphdmE+DQorICAgICAgPC9wcm9wZXJ0aWVzPg0KKyAgICA8L3Byb2ZpbGU+DQorDQorICAgIDwhLS0NCisgICAgICAgUHJvZmlsZSBmb3IgcnVubmluZyB0aGUgYnVpbGQgdXNpbmcgSkRLIDEuOQ0KKyAgICAgICAoSkFWQV8xXzlfSE9NRSBuZWVkcyB0byBiZSBkZWZpbmVkLCBlLmcuIGluIHNldHRpbmdzLnhtbCBvciBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZSkNCisgICAgICAtLT4NCisgICAgPHByb2ZpbGU+DQorICAgICAgPGlkPmphdmEtMS45PC9pZD4NCisgICAgICA8cHJvcGVydGllcz4NCisgICAgICAgIDxjb21tb25zLmNvbXBpbGVyLmZvcms+dHJ1ZTwvY29tbW9ucy5jb21waWxlci5mb3JrPg0KKyAgICAgICAgPGNvbW1vbnMuY29tcGlsZXIuY29tcGlsZXJWZXJzaW9uPjEuOTwvY29tbW9ucy5jb21waWxlci5jb21waWxlclZlcnNpb24+DQorICAgICAgICA8Y29tbW9ucy5jb21waWxlci5qYXZhYz4ke0pBVkFfMV85X0hPTUV9L2Jpbi9qYXZhYzwvY29tbW9ucy5jb21waWxlci5qYXZhYz4NCisgICAgICAgIDxjb21tb25zLnN1cmVmaXJlLmphdmE+JHtKQVZBXzFfOV9IT01FfS9iaW4vamF2YTwvY29tbW9ucy5zdXJlZmlyZS5qYXZhPg0KKyAgICAgIDwvcHJvcGVydGllcz4NCisgICAgPC9wcm9maWxlPg0KKw0KKyAgICA8IS0tIE4uQi4gd2hlbiBhZGRpbmcgbmV3IGphdmEgcHJvZmlsZXMsIGJlIHN1cmUgdG8gdXBkYXRlDQorICAgICAgICAgdGhlIF9yZW1vdmVoZWFkZXJzIGxpc3QgaW4gdGhlIG1hdmVuX2J1bmRsZV9wbHVnaW4gY29uZmlndXJhdGlvbiAtLT4NCisNCisgICAgPCEtLQ0KKyAgICAgfCBQcm9maWxlIHRvIGFsbG93IHRlc3Rpbmcgb2YgZGVwbG95IHBoYXNlDQorICAgICB8IGUuZy4NCisgICAgIHwgbXZuIGRlcGxveSAtUHRlc3QtZGVwbG95IC1QcmVsZWFzZSAtRGdwZy5za2lwDQorICAgICAtLT4NCisgICAgPHByb2ZpbGU+DQorICAgICAgPGlkPnRlc3QtZGVwbG95PC9pZD4NCisgICAgICA8cHJvcGVydGllcz4NCisgICAgICAgIDxhbHREZXBsb3ltZW50UmVwb3NpdG9yeT5pZDo6ZGVmYXVsdDo6ZmlsZTp0YXJnZXQvZGVwbG95PC9hbHREZXBsb3ltZW50UmVwb3NpdG9yeT4NCisgICAgICA8L3Byb3BlcnRpZXM+DQorICAgIDwvcHJvZmlsZT4NCisNCisgICAgPCEtLQ0KKyAgICAgIFByb2ZpbGUgdG8gYnVpbGQgYWxsIENvbW1vbnMgInByb3BlciIgY29tcG9uZW50cy4NCisNCisgICAgICBUaGUgdHJ1bmtzIG9mIGFsbCAicHJvcGVyIiBjb21wb25lbnRzIGNhbiBiZSBjaGVja2VkIG91dCB1c2luZzoNCisgICAgICAgICAgaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9hc2YvY29tbW9ucy90cnVua3MtcHJvcGVyLw0KKw0KKyAgICAgIFRoaXMgcHJvZmlsZSBpcyBhIGNvbnZlbmllbmNlIHdoaWNoIGNhbiBiZSB1c2VkLCBmb3IgZXhhbXBsZSwgdG8gYnVpbGQgYWxsIHRoZSBjb21wb25lbnQgc2l0ZXM6DQorICAgICAgICAgIG12biAtUHRydW5rcy1wcm9wZXIgc2l0ZQ0KKw0KKyAgICAgIG9yLCB0byBjbGVhbiB1cDoNCisgICAgICAgICAgbXZuIC1QdHJ1bmtzLXByb3BlciBjbGVhbg0KKw0KKyAgICAgIHNlZSBodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvQ09NTU9OU1NJVEUtMzANCisgICAgICAtLT4NCisgICAgPHByb2ZpbGU+DQorICAgICAgPGlkPnRydW5rcy1wcm9wZXI8L2lkPg0KKyAgICAgIDxtb2R1bGVzPg0KKyAgICAgICAgPCEtLSBub3QgeWV0IHVzaW5nIG12biBtb2R1bGU+Li4vYXR0cmlidXRlczwvbW9kdWxlLS0+DQorICAgICAgICA8bW9kdWxlPi4uL2JjZWw8L21vZHVsZT4NCisgICAgICAgIDxtb2R1bGU+Li4vYmVhbnV0aWxzPC9tb2R1bGU+DQorICAgICAgICA8bW9kdWxlPi4uL2JldHdpeHQ8L21vZHVsZT4NCisgICAgICAgIDxtb2R1bGU+Li4vY2hhaW48L21vZHVsZT4NCisgICAgICAgIDxtb2R1bGU+Li4vY2xpPC9tb2R1bGU+DQorICAgICAgICA8bW9kdWxlPi4uL2NvZGVjPC9tb2R1bGU+DQorICAgICAgICA8bW9kdWxlPi4uL2NvbGxlY3Rpb25zPC9tb2R1bGU+DQorICAgICAgICA8bW9kdWxlPi4uL2NvbXByZXNzPC9tb2R1bGU+DQorICAgICAgICA8bW9kdWxlPi4uL2NvbmZpZ3VyYXRpb248L21vZHVsZT4NCisgICAgICAgIDxtb2R1bGU+Li4vZGFlbW9uPC9tb2R1bGU+DQorICAgICAgICA8bW9kdWxlPi4uL2RiY3A8L21vZHVsZT4NCisgICAgICAgIDxtb2R1bGU+Li4vZGJ1dGlsczwvbW9kdWxlPg0KKyAgICAgICAgPG1vZHVsZT4uLi9kaWdlc3RlcjwvbW9kdWxlPg0KKyAgICAgICAgPG1vZHVsZT4uLi9kaXNjb3Zlcnk8L21vZHVsZT4NCisgICAgICAgIDxtb2R1bGU+Li4vZWw8L21vZHVsZT4NCisgICAgICAgIDxtb2R1bGU+Li4vZW1haWw8L21vZHVsZT4NCisgICAgICAgIDxtb2R1bGU+Li4vZXhlYzwvbW9kdWxlPg0KKyAgICAgICAgPG1vZHVsZT4uLi9maWxldXBsb2FkPC9tb2R1bGU+DQorICAgICAgICA8bW9kdWxlPi4uL2Z1bmN0b3I8L21vZHVsZT4NCisgICAgICAgIDxtb2R1bGU+Li4vaW1hZ2luZzwvbW9kdWxlPg0KKyAgICAgICAgPG1vZHVsZT4uLi9pbzwvbW9kdWxlPg0KKyAgICAgICAgPG1vZHVsZT4uLi9qY2k8L21vZHVsZT4NCisgICAgICAgIDxtb2R1bGU+Li4vamNzPC9tb2R1bGU+DQorICAgICAgICA8IS0tIG5vdCB5ZXQgdXNpbmcgbXZuIG1vZHVsZT4uLi9qZWxseTwvbW9kdWxlLS0+DQorICAgICAgICA8bW9kdWxlPi4uL2pleGw8L21vZHVsZT4NCisgICAgICAgIDxtb2R1bGU+Li4vanhwYXRoPC9tb2R1bGU+DQorICAgICAgICA8bW9kdWxlPi4uL2xhbmc8L21vZHVsZT4NCisgICAgICAgIDxtb2R1bGU+Li4vbGF1bmNoZXI8L21vZHVsZT4NCisgICAgICAgIDxtb2R1bGU+Li4vbG9nZ2luZzwvbW9kdWxlPg0KKyAgICAgICAgPG1vZHVsZT4uLi9tYXRoPC9tb2R1bGU+DQorICAgICAgICA8bW9kdWxlPi4uL21vZGVsZXI8L21vZHVsZT4NCisgICAgICAgIDxtb2R1bGU+Li4vbmV0PC9tb2R1bGU+DQorICAgICAgICA8bW9kdWxlPi4uL29nbmw8L21vZHVsZT4NCisgICAgICAgIDxtb2R1bGU+Li4vcG9vbDwvbW9kdWxlPg0KKyAgICAgICAgPG1vZHVsZT4uLi9wcmltaXRpdmVzPC9tb2R1bGU+DQorICAgICAgICA8bW9kdWxlPi4uL3Byb3h5PC9tb2R1bGU+DQorICAgICAgICA8bW9kdWxlPi4uL3NjeG1sPC9tb2R1bGU+DQorICAgICAgICA8IS0tIG5vdCB5ZXQgdXNpbmcgbXZuIG1vZHVsZT4uLi90cmFuc2FjdGlvbjwvbW9kdWxlLS0+DQorICAgICAgICA8bW9kdWxlPi4uL3ZhbGlkYXRvcjwvbW9kdWxlPg0KKyAgICAgICAgPG1vZHVsZT4uLi92ZnM8L21vZHVsZT4NCisgICAgICA8L21vZHVsZXM+DQorICAgIDwvcHJvZmlsZT4NCisNCisgICAgPCEtLQ0KKyAgICAgICAgQ29uZmlndXJlIHNpdGUgcGx1Z2luIHRvIHN1cHBvcnQgYm90aCBNYXZlbjIgYW5kIE1hdmVuMywgc2VlOg0KKyAgICAgICAgaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvcGx1Z2lucy9tYXZlbi1zaXRlLXBsdWdpbi9tYXZlbi0zLmh0bWwjVXNpbmdfdGhlX3NhbWVfdmVyc2lvbl9vZl9tYXZlbi1zaXRlLXBsdWdpbl9mb3JfYm90aF9NYXZlbl8yX2FuZF9NYXZlbl8zDQorICAgIC0tPg0KKyAgICA8cHJvZmlsZT4NCisgICAgICA8aWQ+bWF2ZW4tMzwvaWQ+DQorICAgICAgPGFjdGl2YXRpb24+DQorICAgICAgICA8ZmlsZT4NCisgICAgICAgICAgPCEtLSAgVGhlIGJhc2VkaXIgZXhwcmVzc2lvbiBpcyBvbmx5IHJlY29nbml6ZWQgYnkgTWF2ZW4gMy54IChzZWUgTU5HLTIzNjMpIC0tPg0KKyAgICAgICAgICA8ZXhpc3RzPiR7YmFzZWRpcn08L2V4aXN0cz4NCisgICAgICAgIDwvZmlsZT4NCisgICAgICA8L2FjdGl2YXRpb24+DQorICAgICAgPGJ1aWxkPg0KKyAgICAgICAgPHBsdWdpbnM+DQorICAgICAgICAgIDxwbHVnaW4+DQorICAgICAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tc2l0ZS1wbHVnaW48L2FydGlmYWN0SWQ+DQorICAgICAgICAgICAgPGRlcGVuZGVuY2llcz4NCisgICAgICAgICAgICAgIDxkZXBlbmRlbmN5Pg0KKyAgICAgICAgICAgICAgICAgIDwhLS0gYWRkIHN1cHBvcnQgZm9yIHNzaC9zY3AgLS0+DQorICAgICAgICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi53YWdvbjwvZ3JvdXBJZD4NCisgICAgICAgICAgICAgICAgICA8YXJ0aWZhY3RJZD53YWdvbi1zc2g8L2FydGlmYWN0SWQ+DQorICAgICAgICAgICAgICAgICAgPHZlcnNpb24+JHtjb21tb25zLndhZ29uLXNzaC52ZXJzaW9ufTwvdmVyc2lvbj4NCisgICAgICAgICAgICAgICAgPC9kZXBlbmRlbmN5Pg0KKyAgICAgICAgICAgICAgPC9kZXBlbmRlbmNpZXM+DQorICAgICAgICAgICAgPGV4ZWN1dGlvbnM+DQorICAgICAgICAgICAgICA8ZXhlY3V0aW9uPg0KKyAgICAgICAgICAgICAgICA8aWQ+YXR0YWNoLWRlc2NyaXB0b3I8L2lkPg0KKyAgICAgICAgICAgICAgICA8Z29hbHM+DQorICAgICAgICAgICAgICAgICAgPGdvYWw+YXR0YWNoLWRlc2NyaXB0b3I8L2dvYWw+DQorICAgICAgICAgICAgICAgIDwvZ29hbHM+DQorICAgICAgICAgICAgICA8L2V4ZWN1dGlvbj4NCisgICAgICAgICAgICA8L2V4ZWN1dGlvbnM+DQorICAgICAgICAgIDwvcGx1Z2luPg0KKyAgICAgICAgPC9wbHVnaW5zPg0KKyAgICAgIDwvYnVpbGQ+DQorICAgIDwvcHJvZmlsZT4NCisNCisgICAgPHByb2ZpbGU+DQorICAgICAgPCEtLQ0KKyAgICAgICAgICBHZW5lcmF0ZSByZWxlYXNlIG5vdGVzIGluIHRvcC1sZXZlbCBkaXJlY3RvcnkgZnJvbSBzcmMvY2hhbmdlcy9jaGFuZ2VzLnhtbA0KKyAgICAgICAgICBVc2FnZToNCisgICAgICAgICAgbXZuIGNoYW5nZXM6YW5ub3VuY2VtZW50LWdlbmVyYXRlIC1QcmVsZWFzZS1ub3RlcyBbLURjaGFuZ2VzLnZlcnNpb249bm5uXQ0KKw0KKyAgICAgICAgICBEZWZpbmluZyBjaGFuZ2VzLnZlcnNpb24gYWxsb3dzIG9uZSB0byBjcmVhdGUgdGhlIFJOIHdpdGhvdXQgZmlyc3QgcmVtb3ZpbmcgdGhlIFNOQVBTSE9UIHN1ZmZpeC4NCisNCisgICAgICAgICAgUmVxdWlyZXMgZmlsZSBzcmMvY2hhbmdlcy9yZWxlYXNlLW5vdGVzLnZtLg0KKyAgICAgICAgICBBIHNhbXBsZSB0ZW1wbGF0ZSBpcyBhdmFpbGFibGUgZnJvbToNCisgICAgICAgICAgaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9hc2YvY29tbW9ucy9wcm9wZXIvY29tbW9ucy1wYXJlbnQvdHJ1bmsvc3JjL2NoYW5nZXMvcmVsZWFzZS1ub3Rlcy52bQ0KKyAgICAgICAtLT4NCisgICAgICA8aWQ+cmVsZWFzZS1ub3RlczwvaWQ+DQorICAgICAgPGJ1aWxkPg0KKyAgICAgICAgPHBsdWdpbnM+DQorICAgICAgICAgICA8cGx1Z2luPg0KKyAgICAgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4NCisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1jaGFuZ2VzLXBsdWdpbjwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgICA8dmVyc2lvbj4ke2NvbW1vbnMuY2hhbmdlcy52ZXJzaW9ufTwvdmVyc2lvbj4NCisgICAgICAgICAgICA8Y29uZmlndXJhdGlvbj4NCisgICAgICAgICAgICAgIDx0ZW1wbGF0ZT5yZWxlYXNlLW5vdGVzLnZtPC90ZW1wbGF0ZT4NCisgICAgICAgICAgICAgIDx0ZW1wbGF0ZURpcmVjdG9yeT5zcmMvY2hhbmdlczwvdGVtcGxhdGVEaXJlY3Rvcnk+DQorICAgICAgICAgICAgICA8cnVuT25seUF0RXhlY3V0aW9uUm9vdD50cnVlPC9ydW5Pbmx5QXRFeGVjdXRpb25Sb290Pg0KKyAgICAgICAgICAgICAgPG91dHB1dERpcmVjdG9yeT4uPC9vdXRwdXREaXJlY3Rvcnk+DQorICAgICAgICAgICAgICA8YW5ub3VuY2VtZW50RmlsZT5SRUxFQVNFLU5PVEVTLnR4dDwvYW5ub3VuY2VtZW50RmlsZT4NCisgICAgICAgICAgICAgIDxhbm5vdW5jZVBhcmFtZXRlcnM+DQorICAgICAgICAgICAgICAgIDxyZWxlYXNlVmVyc2lvbj4ke2NvbW1vbnMucmVsZWFzZS52ZXJzaW9ufTwvcmVsZWFzZVZlcnNpb24+DQorICAgICAgICAgICAgICA8L2Fubm91bmNlUGFyYW1ldGVycz4NCisgICAgICAgICAgICA8L2NvbmZpZ3VyYXRpb24+DQorICAgICAgICAgICAgPGV4ZWN1dGlvbnM+DQorICAgICAgICAgICAgICA8ZXhlY3V0aW9uPg0KKyAgICAgICAgICAgICAgICA8aWQ+Y3JlYXRlLXJlbGVhc2Utbm90ZXM8L2lkPg0KKyAgICAgICAgICAgICAgICA8cGhhc2U+Z2VuZXJhdGUtcmVzb3VyY2VzPC9waGFzZT4NCisgICAgICAgICAgICAgICAgPGdvYWxzPg0KKyAgICAgICAgICAgICAgICAgIDxnb2FsPmFubm91bmNlbWVudC1nZW5lcmF0ZTwvZ29hbD4NCisgICAgICAgICAgICAgICAgPC9nb2Fscz4NCisgICAgICAgICAgICAgIDwvZXhlY3V0aW9uPg0KKyAgICAgICAgICAgIDwvZXhlY3V0aW9ucz4NCisgICAgICAgICAgPC9wbHVnaW4+DQorICAgICAgICA8L3BsdWdpbnM+DQorICAgICAgPC9idWlsZD4NCisgICAgPC9wcm9maWxlPg0KKw0KKyAgICA8IS0tDQorICAgICAgICBBdXRvbWF0aWNhbGx5IHJ1biB0aGUgYnVpbGRudW1iZXIgcGx1Z2luIHVubGVzcyB0aGUgYnVpbGROdW1iZXIuc2tpcCBwcm9wZXJ0eSBpcyBkZWZpbmVkIGFzIHRydWUNCisgICAgLS0+DQorICAgIDxwcm9maWxlPg0KKyAgICAgPGlkPnN2bi1idWlsZG51bWJlcjwvaWQ+DQorICAgICA8YWN0aXZhdGlvbj4NCisgICAgICAgPHByb3BlcnR5PjxuYW1lPiFidWlsZE51bWJlci5za2lwPC9uYW1lPjx2YWx1ZT4hdHJ1ZTwvdmFsdWU+PC9wcm9wZXJ0eT4NCisgICAgIDwvYWN0aXZhdGlvbj4NCisgICAgIDxidWlsZD4NCisgICAgICAgPHBsdWdpbnM+DQorICAgICAgICAgPHBsdWdpbj4NCisgICAgICAgICAgIDxncm91cElkPm9yZy5jb2RlaGF1cy5tb2pvPC9ncm91cElkPg0KKyAgICAgICAgICAgPGFydGlmYWN0SWQ+YnVpbGRudW1iZXItbWF2ZW4tcGx1Z2luPC9hcnRpZmFjdElkPg0KKyAgICAgICAgICAgPGV4ZWN1dGlvbnM+DQorICAgICAgICAgICAgIDxleGVjdXRpb24+DQorICAgICAgICAgICAgICAgPHBoYXNlPmdlbmVyYXRlLXJlc291cmNlczwvcGhhc2U+DQorICAgICAgICAgICAgICAgPGdvYWxzPg0KKyAgICAgICAgICAgICAgICAgPGdvYWw+Y3JlYXRlPC9nb2FsPg0KKyAgICAgICAgICAgICAgIDwvZ29hbHM+DQorICAgICAgICAgICAgIDwvZXhlY3V0aW9uPg0KKyAgICAgICAgICAgPC9leGVjdXRpb25zPg0KKyAgICAgICAgICAgPGNvbmZpZ3VyYXRpb24+DQorICAgICAgICAgICAgIDwhLS0gVXNlIGNvbW1pdHRlZCByZXZpc2lvbiBzbyBpdCBkb2VzIG5vdCBjaGFuZ2UgZXZlcnkgdGltZSBzdm4gdXBkYXRlIGlzIHJ1biAtLT4NCisgICAgICAgICAgICAgPHVzZUxhc3RDb21taXR0ZWRSZXZpc2lvbj50cnVlPC91c2VMYXN0Q29tbWl0dGVkUmV2aXNpb24+DQorICAgICAgICAgICAgIDwhLS0gZGVmYXVsdCByZXZpc2lvbiBudW1iZXIgaWYgdW5hdmFpbGFibGUgLS0+DQorICAgICAgICAgICAgIDxyZXZpc2lvbk9uU2NtRmFpbHVyZT4/Pz8/Pz88L3JldmlzaW9uT25TY21GYWlsdXJlPg0KKyAgICAgICAgICAgICA8ZG9DaGVjaz5mYWxzZTwvZG9DaGVjaz4NCisgICAgICAgICAgICAgPGRvVXBkYXRlPmZhbHNlPC9kb1VwZGF0ZT4NCisgICAgICAgICAgIDwvY29uZmlndXJhdGlvbj4NCisgICAgICAgICA8L3BsdWdpbj4NCisgICAgICAgPC9wbHVnaW5zPg0KKyAgICAgPC9idWlsZD4NCisgICA8L3Byb2ZpbGU+DQorICAgPCEtLSBvcHRpb25hbCBwcm9maWxlIHRvIHVzZSBqYXZhc3ZuIGluc3RlYWQgb2YgdGhlIFNWTiBDTEkgZm9yIHRoZSBidWlsZE51bWJlciBwbHVnaW4gLS0+DQorICAgPHByb2ZpbGU+DQorICAgICA8aWQ+amF2YXN2bjwvaWQ+DQorICAgICA8YnVpbGQ+DQorICAgICAgIDxwbHVnaW5zPg0KKyAgICAgICAgIDxwbHVnaW4+DQorICAgICAgICAgICA8Z3JvdXBJZD5vcmcuY29kZWhhdXMubW9qbzwvZ3JvdXBJZD4NCisgICAgICAgICAgIDxhcnRpZmFjdElkPmJ1aWxkbnVtYmVyLW1hdmVuLXBsdWdpbjwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgIDxjb25maWd1cmF0aW9uPg0KKyAgICAgICAgICAgICA8cHJvdmlkZXJJbXBsZW1lbnRhdGlvbnM+DQorICAgICAgICAgICAgICAgPHN2bj5qYXZhc3ZuPC9zdm4+DQorICAgICAgICAgICAgIDwvcHJvdmlkZXJJbXBsZW1lbnRhdGlvbnM+DQorICAgICAgICAgICA8L2NvbmZpZ3VyYXRpb24+DQorICAgICAgICAgPC9wbHVnaW4+DQorICAgICAgIDwvcGx1Z2lucz4NCisgICAgIDwvYnVpbGQ+DQorICAgPC9wcm9maWxlPg0KKyAgICA8cHJvZmlsZT4NCisgICAgICA8aWQ+amRrNy1maW5kYnVnczwvaWQ+DQorICAgICAgPGFjdGl2YXRpb24+DQorICAgICAgICA8amRrPlsxLjcsKTwvamRrPg0KKyAgICAgIDwvYWN0aXZhdGlvbj4NCisgICAgICA8cHJvcGVydGllcz4NCisgICAgICAgIDxjb21tb25zLmZpbmRidWdzLnZlcnNpb24+My4wLjA8L2NvbW1vbnMuZmluZGJ1Z3MudmVyc2lvbj4NCisgICAgICA8L3Byb3BlcnRpZXM+DQorICAgIDwvcHJvZmlsZT4NCisNCisgIDwvcHJvZmlsZXM+DQorDQorICA8cHJvcGVydGllcz4NCisgICAgPCEtLSBjb25maWd1cmF0aW9uIGJpdHMgZm9yIGN1dHRpbmcgYSByZWxlYXNlIGNhbmRpZGF0ZSwgbXVzdCBiZSBvdmVycmlkZGVuIGJ5IGNvbXBvbmVudHMgLS0+DQorICAgIDxjb21tb25zLnJlbGVhc2UudmVyc2lvbj4ke3Byb2plY3QudmVyc2lvbn08L2NvbW1vbnMucmVsZWFzZS52ZXJzaW9uPg0KKyAgICA8Y29tbW9ucy5yYy52ZXJzaW9uPlJDMTwvY29tbW9ucy5yYy52ZXJzaW9uPg0KKyAgICA8Y29tbW9ucy5qaXJhLmlkPkNPTU1PTlNTSVRFPC9jb21tb25zLmppcmEuaWQ+DQorDQorICAgIDwhLS0gRGVmYXVsdCBjb25maWd1cmF0aW9uIGZvciBjb21waWxlciBzb3VyY2UgYW5kIHRhcmdldCBKVk0gLS0+DQorICAgIDwhLS0gRG8gTk9UIGNoYW5nZSB0aGlzOyBpdCBtdXN0IHJlbWFpbiBhcyAxLjMgLS0+DQorICAgIDxtYXZlbi5jb21waWxlci5zb3VyY2U+MS4zPC9tYXZlbi5jb21waWxlci5zb3VyY2U+DQorICAgIDxtYXZlbi5jb21waWxlci50YXJnZXQ+MS4zPC9tYXZlbi5jb21waWxlci50YXJnZXQ+DQorDQorICAgIDwhLS0gY29tcGlsZXIgYW5kIHN1cmVmaXJlIHBsdWdpbiBzZXR0aW5ncyBmb3IgImphdmEiIHByb2ZpbGVzIC0tPg0KKyAgICA8Y29tbW9ucy5jb21waWxlci5mb3JrPmZhbHNlPC9jb21tb25zLmNvbXBpbGVyLmZvcms+DQorICAgIDxjb21tb25zLmNvbXBpbGVyLmNvbXBpbGVyVmVyc2lvbiAvPg0KKyAgICA8Y29tbW9ucy5jb21waWxlci5qYXZhYyAvPg0KKyAgICA8Y29tbW9ucy5zdXJlZmlyZS5qYXZhIC8+DQorDQorICAgIDwhLS0gcGx1Z2luIHZlcnNpb25zIChhbGxvd3Mgc2FtZSB2YWx1ZSBpbiByZXBvcnRpbmcgYW5kIGJ1aWxkIHNlY3Rpb25zKSAtLT4NCisgICAgPGNvbW1vbnMuc3VyZWZpcmUudmVyc2lvbj4yLjE3PC9jb21tb25zLnN1cmVmaXJlLnZlcnNpb24+DQorICAgIDxjb21tb25zLnN1cmVmaXJlLXJlcG9ydC52ZXJzaW9uPjIuMTc8L2NvbW1vbnMuc3VyZWZpcmUtcmVwb3J0LnZlcnNpb24+DQorICAgIDwhLS0gMi45LjEgaW5jbHVkZXMgZml4IGZvciBKYXZhZG9jIHZ1bG5lcmFiaWxpdHkgKENWRS0yMDEzLTE1NzEsIFZVIzIyNTY1NykgTUpBVkFET0MtMzcwIC0tPg0KKyAgICA8Y29tbW9ucy5qYXZhZG9jLnZlcnNpb24+Mi4xMC4xPC9jb21tb25zLmphdmFkb2MudmVyc2lvbj4NCisgICAgPGNvbW1vbnMucmF0LnZlcnNpb24+MC4xMTwvY29tbW9ucy5yYXQudmVyc2lvbj4NCisgICAgPGNvbW1vbnMuY2hhbmdlcy52ZXJzaW9uPjIuMTE8L2NvbW1vbnMuY2hhbmdlcy52ZXJzaW9uPg0KKyAgICA8Y29tbW9ucy5jbGlyci52ZXJzaW9uPjIuNi4xPC9jb21tb25zLmNsaXJyLnZlcnNpb24+DQorICAgIDxjb21tb25zLmp4ci52ZXJzaW9uPjIuNDwvY29tbW9ucy5qeHIudmVyc2lvbj4NCisgICAgPGNvbW1vbnMucHJvamVjdC1pbmZvLnZlcnNpb24+Mi43PC9jb21tb25zLnByb2plY3QtaW5mby52ZXJzaW9uPg0KKyAgICA8Y29tbW9ucy53YWdvbi1zc2gudmVyc2lvbj4yLjY8L2NvbW1vbnMud2Fnb24tc3NoLnZlcnNpb24+DQorICAgIDxjb21tb25zLnNpdGUtcGx1Z2luLnZlcnNpb24+My40PC9jb21tb25zLnNpdGUtcGx1Z2luLnZlcnNpb24+DQorICAgIDxjb21tb25zLmphY29jby52ZXJzaW9uPjAuNy4yLjIwMTQwOTEyMTY0NDwvY29tbW9ucy5qYWNvY28udmVyc2lvbj4NCisgICAgPGNvbW1vbnMuY29iZXJ0dXJhLnZlcnNpb24+Mi42PC9jb21tb25zLmNvYmVydHVyYS52ZXJzaW9uPg0KKyAgICA8Y29tbW9ucy5qZGVwZW5kLnZlcnNpb24+Mi4wPC9jb21tb25zLmpkZXBlbmQudmVyc2lvbj4NCisgICAgPGNvbW1vbnMuY29tcGlsZXIudmVyc2lvbj4zLjI8L2NvbW1vbnMuY29tcGlsZXIudmVyc2lvbj4NCisgICAgPGNvbW1vbnMuc2NtLXB1Ymxpc2gudmVyc2lvbj4xLjE8L2NvbW1vbnMuc2NtLXB1Ymxpc2gudmVyc2lvbj4NCisgICAgPGNvbW1vbnMuZmluZGJ1Z3MudmVyc2lvbj4yLjUuNTwvY29tbW9ucy5maW5kYnVncy52ZXJzaW9uPg0KKw0KKyAgICA8IS0tIERlZmF1bHQgdmFsdWVzIGZvciB0aGUgZG93bmxvYWQtcGFnZSBnZW5lcmF0aW9uIGJ5IGNvbW1vbnMtYnVpbGQtcGx1Z2luIC0tPg0KKyAgICA8Y29tbW9ucy5yZWxlYXNlLm5hbWU+JHtwcm9qZWN0LmFydGlmYWN0SWR9LSR7Y29tbW9ucy5yZWxlYXNlLnZlcnNpb259PC9jb21tb25zLnJlbGVhc2UubmFtZT4NCisgICAgPGNvbW1vbnMucmVsZWFzZS5kZXNjIC8+DQorICAgIDxjb21tb25zLmJpbmFyeS5zdWZmaXg+LWJpbjwvY29tbW9ucy5iaW5hcnkuc3VmZml4Pg0KKyAgICA8Y29tbW9ucy5yZWxlYXNlLjIubmFtZT4ke3Byb2plY3QuYXJ0aWZhY3RJZH0tJHtjb21tb25zLnJlbGVhc2UuMi52ZXJzaW9ufTwvY29tbW9ucy5yZWxlYXNlLjIubmFtZT4NCisgICAgPGNvbW1vbnMucmVsZWFzZS4yLmRlc2MgLz4NCisgICAgPGNvbW1vbnMucmVsZWFzZS4yLmJpbmFyeS5zdWZmaXg+LWJpbjwvY29tbW9ucy5yZWxlYXNlLjIuYmluYXJ5LnN1ZmZpeD4NCisgICAgPGNvbW1vbnMucmVsZWFzZS4zLm5hbWU+JHtwcm9qZWN0LmFydGlmYWN0SWR9LSR7Y29tbW9ucy5yZWxlYXNlLjMudmVyc2lvbn08L2NvbW1vbnMucmVsZWFzZS4zLm5hbWU+DQorICAgIDxjb21tb25zLnJlbGVhc2UuMy5kZXNjIC8+DQorICAgIDxjb21tb25zLnJlbGVhc2UuMy5iaW5hcnkuc3VmZml4Pi1iaW48L2NvbW1vbnMucmVsZWFzZS4zLmJpbmFyeS5zdWZmaXg+DQorDQorICAgIDwhLS0gRGVmYXVsdCB2YWx1ZXMgZm9yIHRoZSBqYWNvY28tbWF2ZW4tcGx1Z2luIHJlcG9ydHMgLS0+DQorICAgIDxjb21tb25zLmphY29jby5jbGFzc1JhdGlvPjEuMDA8L2NvbW1vbnMuamFjb2NvLmNsYXNzUmF0aW8+DQorICAgIDxjb21tb25zLmphY29jby5pbnN0cnVjdGlvblJhdGlvPjAuOTA8L2NvbW1vbnMuamFjb2NvLmluc3RydWN0aW9uUmF0aW8+DQorICAgIDxjb21tb25zLmphY29jby5tZXRob2RSYXRpbz4wLjk1PC9jb21tb25zLmphY29jby5tZXRob2RSYXRpbz4NCisgICAgPGNvbW1vbnMuamFjb2NvLmJyYW5jaFJhdGlvPjAuODU8L2NvbW1vbnMuamFjb2NvLmJyYW5jaFJhdGlvPg0KKyAgICA8Y29tbW9ucy5qYWNvY28uY29tcGxleGl0eVJhdGlvPjAuODU8L2NvbW1vbnMuamFjb2NvLmNvbXBsZXhpdHlSYXRpbz4NCisgICAgPGNvbW1vbnMuamFjb2NvLmxpbmVSYXRpbz4wLjkwPC9jb21tb25zLmphY29jby5saW5lUmF0aW8+DQorICAgIDxjb21tb25zLmphY29jby5oYWx0T25GYWlsdXJlPmZhbHNlPC9jb21tb25zLmphY29jby5oYWx0T25GYWlsdXJlPg0KKw0KKyAgICA8IS0tIENvbW1vbnMgQ29tcG9uZW50IElkIC0tPg0KKyAgICA8Y29tbW9ucy5jb21wb25lbnRpZD4ke3Byb2plY3QuYXJ0aWZhY3RJZH08L2NvbW1vbnMuY29tcG9uZW50aWQ+DQorDQorICAgIDwhLS0gQ29uZmlndXJhdGlvbiBwcm9wZXJ0aWVzIGZvciB0aGUgT1NHaSBtYXZlbi1idW5kbGUtcGx1Z2luIC0tPg0KKyAgICA8Y29tbW9ucy5vc2dpLnN5bWJvbGljTmFtZT5vcmcuYXBhY2hlLmNvbW1vbnMuJHtjb21tb25zLmNvbXBvbmVudGlkfTwvY29tbW9ucy5vc2dpLnN5bWJvbGljTmFtZT4NCisgICAgPGNvbW1vbnMub3NnaS5leHBvcnQ+b3JnLmFwYWNoZS5jb21tb25zLio7dmVyc2lvbj0ke3Byb2plY3QudmVyc2lvbn07LW5vaW1wb3J0Oj10cnVlPC9jb21tb25zLm9zZ2kuZXhwb3J0Pg0KKyAgICA8Y29tbW9ucy5vc2dpLmltcG9ydD4qPC9jb21tb25zLm9zZ2kuaW1wb3J0Pg0KKyAgICA8Y29tbW9ucy5vc2dpLmR5bmFtaWNJbXBvcnQgLz4NCisgICAgPGNvbW1vbnMub3NnaS5wcml2YXRlIC8+DQorDQorICAgIDwhLS0gbG9jYXRpb24gb2YgYW55IG1hbmlmZXN0IGZpbGUgdXNlZCBieSBtYXZlbi1qYXItcGx1Z2luIC0tPg0KKyAgICA8Y29tbW9ucy5tYW5pZmVzdGZpbGU+JHtwcm9qZWN0LmJ1aWxkLmRpcmVjdG9yeX0vb3NnaS9NQU5JRkVTVC5NRjwvY29tbW9ucy5tYW5pZmVzdGZpbGU+DQorDQorICAgIDwhLS0NCisgICAgICBNYWtlIHRoZSBkZXBsb3ltZW50IHByb3RvY29sIHBsdWdnYWJsZS4gVGhpcyBhbGxvd3MgdG8gc3dpdGNoIHRvDQorICAgICAgb3RoZXIgcHJvdG9jb2xzIGxpa2Ugc2NwZXhlLCB3aGljaCBzb21lIHVzZXJzIHByZWZlciBvdmVyIHNjcC4NCisgICAgLS0+DQorICAgIDxjb21tb25zLmRlcGxveW1lbnQucHJvdG9jb2w+c2NwPC9jb21tb25zLmRlcGxveW1lbnQucHJvdG9jb2w+DQorDQorICAgIDwhLS0NCisgICAgICBFbmNvZGluZyBvZiBKYXZhIHNvdXJjZSBmaWxlczogTWFrZSBzdXJlLCB0aGF0IHRoZSBjb21waWxlciBhbmQNCisgICAgICB0aGUgamF2YWRvYyBnZW5lcmF0b3IgdXNlIHRoZSByaWdodCBlbmNvZGluZy4gU3VicHJvamVjdHMgbWF5DQorICAgICAgb3ZlcndyaXRlIHRoaXMsIGlmIHRoZXkgYXJlIHVzaW5nIGFub3RoZXIgZW5jb2RpbmcuDQorICAgIC0tPg0KKyAgICA8Y29tbW9ucy5lbmNvZGluZz5pc28tODg1OS0xPC9jb21tb25zLmVuY29kaW5nPg0KKyAgICA8Y29tbW9ucy5kb2NFbmNvZGluZz4ke2NvbW1vbnMuZW5jb2Rpbmd9PC9jb21tb25zLmRvY0VuY29kaW5nPg0KKyAgICA8IS0tIERlZmluZSBlbmNvZGluZyBmb3IgZmlsdGVyaW5nIC0tPg0KKyAgICA8cHJvamVjdC5idWlsZC5zb3VyY2VFbmNvZGluZz4ke2NvbW1vbnMuZW5jb2Rpbmd9PC9wcm9qZWN0LmJ1aWxkLnNvdXJjZUVuY29kaW5nPg0KKyAgICA8cHJvamVjdC5yZXBvcnRpbmcub3V0cHV0RW5jb2Rpbmc+JHtjb21tb25zLmVuY29kaW5nfTwvcHJvamVjdC5yZXBvcnRpbmcub3V0cHV0RW5jb2Rpbmc+DQorDQorICAgIDwhLS0gSmF2YWRvYyBsaW5rIHRvIEphdmEgQVBJLiAgRGVmYXVsdCBpcyBKYXZhIDEuNzsgY29tcG9uZW50cyBjYW4gb3ZlcnJpZGUgdG8gb3RoZXIgdmVyc2lvbnMgLS0+DQorICAgIDxjb21tb25zLmphdmFkb2MuamF2YS5saW5rPmh0dHA6Ly9kb2NzLm9yYWNsZS5jb20vamF2YXNlLzcvZG9jcy9hcGkvPC9jb21tb25zLmphdmFkb2MuamF2YS5saW5rPg0KKyAgICA8Y29tbW9ucy5qYXZhZG9jLmphdmFlZS5saW5rPmh0dHA6Ly9kb2NzLm9yYWNsZS5jb20vamF2YWVlLzYvYXBpLzwvY29tbW9ucy5qYXZhZG9jLmphdmFlZS5saW5rPg0KKw0KKyAgICA8IS0tIGJ1aWxkIG1ldGEgaW5mIC0tPg0KKyAgICA8bWF2ZW4uYnVpbGQudGltZXN0YW1wLmZvcm1hdD55eXl5LU1NLWRkIEhIOm1tOnNzWjwvbWF2ZW4uYnVpbGQudGltZXN0YW1wLmZvcm1hdD4NCisgICAgPGltcGxlbWVudGF0aW9uLmJ1aWxkPiR7c2NtQnJhbmNofUByJHtidWlsZE51bWJlcn07ICR7bWF2ZW4uYnVpbGQudGltZXN0YW1wfTwvaW1wbGVtZW50YXRpb24uYnVpbGQ+DQorDQorICAgIDwhLS0gQWxsb3cgQ2xpcnIgc2V2ZXJpdHkgdG8gYmUgb3ZlcnJpZGVuIGJ5IHRoZSBjb21tYW5kLWxpbmUgb3B0aW9uIC1EbWluU2V2ZXJpdHk9bGV2ZWwgLS0+DQorICAgIDxtaW5TZXZlcml0eT5pbmZvPC9taW5TZXZlcml0eT4NCisNCisgICAgPCEtLSBBbGxvdyBzdXJlZmlyZS1yZXBvcnQgYWdncmVnYXRpb24gdG8gYmUgZWFzaWx5IGNvbmZpZ3VyZWQgZm9yIG11bHRpLW1vZHVsZSBwcm9qZWN0cyAtLT4NCisgICAgPGNvbW1vbnMuc3VyZWZpcmUtcmVwb3J0LmFnZ3JlZ2F0ZT5mYWxzZTwvY29tbW9ucy5zdXJlZmlyZS1yZXBvcnQuYWdncmVnYXRlPg0KKw0KKyAgICA8IS0tIHNjbSBwdWJsaXNoIHBsdWdpbiBjb25maWd1cmF0aW9uIC0tPg0KKyAgICA8Y29tbW9ucy5zaXRlLmNhY2hlPiR7dXNlci5ob21lfS9jb21tb25zLXNpdGVzPC9jb21tb25zLnNpdGUuY2FjaGU+DQorICAgIDwhLS0gdmFsdWUgbW9kdWxlcyBjYW4gb3ZlcnJpZGUgaXQgLS0+DQorICAgIDxjb21tb25zLnNpdGUucGF0aD4ke3Byb2plY3QuYXJ0aWZhY3RJZH08L2NvbW1vbnMuc2l0ZS5wYXRoPg0KKw0KKyAgICA8Y29tbW9ucy5zY21QdWJVcmw+aHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9pbmZyYS93ZWJzaXRlcy9wcm9kdWN0aW9uL2NvbW1vbnMvY29udGVudC9wcm9wZXIvJHtwcm9qZWN0LmFydGlmYWN0SWR9PC9jb21tb25zLnNjbVB1YlVybD4NCisgICAgPGNvbW1vbnMuc2NtUHViQ2hlY2tvdXREaXJlY3Rvcnk+JHtjb21tb25zLnNpdGUuY2FjaGV9LyR7Y29tbW9ucy5zaXRlLnBhdGh9PC9jb21tb25zLnNjbVB1YkNoZWNrb3V0RGlyZWN0b3J5Pg0KKyAgICA8Y29tbW9ucy5zY21QdWJTZXJ2ZXI+Y29tbW9ucy5zaXRlPC9jb21tb25zLnNjbVB1YlNlcnZlcj4NCisNCisgICAgPHNvbmFyLmhvc3QudXJsPmh0dHBzOi8vYW5hbHlzaXMuYXBhY2hlLm9yZy88L3NvbmFyLmhvc3QudXJsPg0KKw0KKyAgPC9wcm9wZXJ0aWVzPg0KKw0KKzwvcHJvamVjdD4NCmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvYXBhY2hlL2NvbW1vbnMvY29tbW9ucy1wYXJlbnQvMzUvY29tbW9ucy1wYXJlbnQtMzUucG9tLnNoYTEgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvYXBhY2hlL2NvbW1vbnMvY29tbW9ucy1wYXJlbnQvMzUvY29tbW9ucy1wYXJlbnQtMzUucG9tLnNoYTEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDZlMWQxMQotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9hcGFjaGUvY29tbW9ucy9jb21tb25zLXBhcmVudC8zNS9jb21tb25zLXBhcmVudC0zNS5wb20uc2hhMQpAQCAtMCwwICsxIEBACitkODhjMjRlYmIzODVlNTQwNGYzNDU3M2YyNDM2MmIxNzQzNGUzZjMzClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2VjbGlwc2UvamR0L2NvcmUvY29tcGlsZXIvZWNqLzQuNC4yL05PVElDRSBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9lY2xpcHNlL2pkdC9jb3JlL2NvbXBpbGVyL2Vjai80LjQuMi9OT1RJQ0UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGQzNDdhYgotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9lY2xpcHNlL2pkdC9jb3JlL2NvbXBpbGVyL2Vjai80LjQuMi9OT1RJQ0UKQEAgLTAsMCArMSwyMjQgQEAKKworICAgIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgLSB2IDEuMAorCitUSEUgQUNDT01QQU5ZSU5HIFBST0dSQU0gSVMgUFJPVklERUQgVU5ERVIgVEhFIFRFUk1TIE9GIFRISVMgRUNMSVBTRQorUFVCTElDIExJQ0VOU0UgKCJBR1JFRU1FTlQiKS4gQU5ZIFVTRSwgUkVQUk9EVUNUSU9OIE9SIERJU1RSSUJVVElPTiBPRgorVEhFIFBST0dSQU0gQ09OU1RJVFVURVMgUkVDSVBJRU5UJ1MgQUNDRVBUQU5DRSBPRiBUSElTIEFHUkVFTUVOVC4KKworKjEuIERFRklOSVRJT05TKgorCisiQ29udHJpYnV0aW9uIiBtZWFuczoKKworYSkgaW4gdGhlIGNhc2Ugb2YgdGhlIGluaXRpYWwgQ29udHJpYnV0b3IsIHRoZSBpbml0aWFsIGNvZGUgYW5kCitkb2N1bWVudGF0aW9uIGRpc3RyaWJ1dGVkIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBhbmQKKworYikgaW4gdGhlIGNhc2Ugb2YgZWFjaCBzdWJzZXF1ZW50IENvbnRyaWJ1dG9yOgorCitpKSBjaGFuZ2VzIHRvIHRoZSBQcm9ncmFtLCBhbmQKKworaWkpIGFkZGl0aW9ucyB0byB0aGUgUHJvZ3JhbTsKKword2hlcmUgc3VjaCBjaGFuZ2VzIGFuZC9vciBhZGRpdGlvbnMgdG8gdGhlIFByb2dyYW0gb3JpZ2luYXRlIGZyb20gYW5kCithcmUgZGlzdHJpYnV0ZWQgYnkgdGhhdCBwYXJ0aWN1bGFyIENvbnRyaWJ1dG9yLiBBIENvbnRyaWJ1dGlvbgorJ29yaWdpbmF0ZXMnIGZyb20gYSBDb250cmlidXRvciBpZiBpdCB3YXMgYWRkZWQgdG8gdGhlIFByb2dyYW0gYnkgc3VjaAorQ29udHJpYnV0b3IgaXRzZWxmIG9yIGFueW9uZSBhY3Rpbmcgb24gc3VjaCBDb250cmlidXRvcidzIGJlaGFsZi4KK0NvbnRyaWJ1dGlvbnMgZG8gbm90IGluY2x1ZGUgYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtIHdoaWNoOiAoaSkgYXJlCitzZXBhcmF0ZSBtb2R1bGVzIG9mIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIFByb2dyYW0KK3VuZGVyIHRoZWlyIG93biBsaWNlbnNlIGFncmVlbWVudCwgYW5kIChpaSkgYXJlIG5vdCBkZXJpdmF0aXZlIHdvcmtzIG9mCit0aGUgUHJvZ3JhbS4KKworIkNvbnRyaWJ1dG9yIiBtZWFucyBhbnkgcGVyc29uIG9yIGVudGl0eSB0aGF0IGRpc3RyaWJ1dGVzIHRoZSBQcm9ncmFtLgorCisiTGljZW5zZWQgUGF0ZW50cyIgbWVhbiBwYXRlbnQgY2xhaW1zIGxpY2Vuc2FibGUgYnkgYSBDb250cmlidXRvciB3aGljaAorYXJlIG5lY2Vzc2FyaWx5IGluZnJpbmdlZCBieSB0aGUgdXNlIG9yIHNhbGUgb2YgaXRzIENvbnRyaWJ1dGlvbiBhbG9uZQorb3Igd2hlbiBjb21iaW5lZCB3aXRoIHRoZSBQcm9ncmFtLgorCisiUHJvZ3JhbSIgbWVhbnMgdGhlIENvbnRyaWJ1dGlvbnMgZGlzdHJpYnV0ZWQgaW4gYWNjb3JkYW5jZSB3aXRoIHRoaXMKK0FncmVlbWVudC4KKworIlJlY2lwaWVudCIgbWVhbnMgYW55b25lIHdobyByZWNlaXZlcyB0aGUgUHJvZ3JhbSB1bmRlciB0aGlzIEFncmVlbWVudCwKK2luY2x1ZGluZyBhbGwgQ29udHJpYnV0b3JzLgorCisqMi4gR1JBTlQgT0YgUklHSFRTKgorCithKSBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgZWFjaCBDb250cmlidXRvciBoZXJlYnkKK2dyYW50cyBSZWNpcGllbnQgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsIHJveWFsdHktZnJlZSBjb3B5cmlnaHQKK2xpY2Vuc2UgdG8gcmVwcm9kdWNlLCBwcmVwYXJlIGRlcml2YXRpdmUgd29ya3Mgb2YsIHB1YmxpY2x5IGRpc3BsYXksCitwdWJsaWNseSBwZXJmb3JtLCBkaXN0cmlidXRlIGFuZCBzdWJsaWNlbnNlIHRoZSBDb250cmlidXRpb24gb2Ygc3VjaAorQ29udHJpYnV0b3IsIGlmIGFueSwgYW5kIHN1Y2ggZGVyaXZhdGl2ZSB3b3JrcywgaW4gc291cmNlIGNvZGUgYW5kCitvYmplY3QgY29kZSBmb3JtLgorCitiKSBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgZWFjaCBDb250cmlidXRvciBoZXJlYnkKK2dyYW50cyBSZWNpcGllbnQgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsIHJveWFsdHktZnJlZSBwYXRlbnQgbGljZW5zZQordW5kZXIgTGljZW5zZWQgUGF0ZW50cyB0byBtYWtlLCB1c2UsIHNlbGwsIG9mZmVyIHRvIHNlbGwsIGltcG9ydCBhbmQKK290aGVyd2lzZSB0cmFuc2ZlciB0aGUgQ29udHJpYnV0aW9uIG9mIHN1Y2ggQ29udHJpYnV0b3IsIGlmIGFueSwgaW4KK3NvdXJjZSBjb2RlIGFuZCBvYmplY3QgY29kZSBmb3JtLiBUaGlzIHBhdGVudCBsaWNlbnNlIHNoYWxsIGFwcGx5IHRvIHRoZQorY29tYmluYXRpb24gb2YgdGhlIENvbnRyaWJ1dGlvbiBhbmQgdGhlIFByb2dyYW0gaWYsIGF0IHRoZSB0aW1lIHRoZQorQ29udHJpYnV0aW9uIGlzIGFkZGVkIGJ5IHRoZSBDb250cmlidXRvciwgc3VjaCBhZGRpdGlvbiBvZiB0aGUKK0NvbnRyaWJ1dGlvbiBjYXVzZXMgc3VjaCBjb21iaW5hdGlvbiB0byBiZSBjb3ZlcmVkIGJ5IHRoZSBMaWNlbnNlZAorUGF0ZW50cy4gVGhlIHBhdGVudCBsaWNlbnNlIHNoYWxsIG5vdCBhcHBseSB0byBhbnkgb3RoZXIgY29tYmluYXRpb25zCit3aGljaCBpbmNsdWRlIHRoZSBDb250cmlidXRpb24uIE5vIGhhcmR3YXJlIHBlciBzZSBpcyBsaWNlbnNlZCBoZXJldW5kZXIuCisKK2MpIFJlY2lwaWVudCB1bmRlcnN0YW5kcyB0aGF0IGFsdGhvdWdoIGVhY2ggQ29udHJpYnV0b3IgZ3JhbnRzIHRoZQorbGljZW5zZXMgdG8gaXRzIENvbnRyaWJ1dGlvbnMgc2V0IGZvcnRoIGhlcmVpbiwgbm8gYXNzdXJhbmNlcyBhcmUKK3Byb3ZpZGVkIGJ5IGFueSBDb250cmlidXRvciB0aGF0IHRoZSBQcm9ncmFtIGRvZXMgbm90IGluZnJpbmdlIHRoZQorcGF0ZW50IG9yIG90aGVyIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgb2YgYW55IG90aGVyIGVudGl0eS4gRWFjaAorQ29udHJpYnV0b3IgZGlzY2xhaW1zIGFueSBsaWFiaWxpdHkgdG8gUmVjaXBpZW50IGZvciBjbGFpbXMgYnJvdWdodCBieQorYW55IG90aGVyIGVudGl0eSBiYXNlZCBvbiBpbmZyaW5nZW1lbnQgb2YgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cworb3Igb3RoZXJ3aXNlLiBBcyBhIGNvbmRpdGlvbiB0byBleGVyY2lzaW5nIHRoZSByaWdodHMgYW5kIGxpY2Vuc2VzCitncmFudGVkIGhlcmV1bmRlciwgZWFjaCBSZWNpcGllbnQgaGVyZWJ5IGFzc3VtZXMgc29sZSByZXNwb25zaWJpbGl0eSB0bworc2VjdXJlIGFueSBvdGhlciBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIG5lZWRlZCwgaWYgYW55LiBGb3IKK2V4YW1wbGUsIGlmIGEgdGhpcmQgcGFydHkgcGF0ZW50IGxpY2Vuc2UgaXMgcmVxdWlyZWQgdG8gYWxsb3cgUmVjaXBpZW50Cit0byBkaXN0cmlidXRlIHRoZSBQcm9ncmFtLCBpdCBpcyBSZWNpcGllbnQncyByZXNwb25zaWJpbGl0eSB0byBhY3F1aXJlCit0aGF0IGxpY2Vuc2UgYmVmb3JlIGRpc3RyaWJ1dGluZyB0aGUgUHJvZ3JhbS4KKworZCkgRWFjaCBDb250cmlidXRvciByZXByZXNlbnRzIHRoYXQgdG8gaXRzIGtub3dsZWRnZSBpdCBoYXMgc3VmZmljaWVudAorY29weXJpZ2h0IHJpZ2h0cyBpbiBpdHMgQ29udHJpYnV0aW9uLCBpZiBhbnksIHRvIGdyYW50IHRoZSBjb3B5cmlnaHQKK2xpY2Vuc2Ugc2V0IGZvcnRoIGluIHRoaXMgQWdyZWVtZW50LgorCisqMy4gUkVRVUlSRU1FTlRTKgorCitBIENvbnRyaWJ1dG9yIG1heSBjaG9vc2UgdG8gZGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSBpbiBvYmplY3QgY29kZSBmb3JtCit1bmRlciBpdHMgb3duIGxpY2Vuc2UgYWdyZWVtZW50LCBwcm92aWRlZCB0aGF0OgorCithKSBpdCBjb21wbGllcyB3aXRoIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGlzIEFncmVlbWVudDsgYW5kCisKK2IpIGl0cyBsaWNlbnNlIGFncmVlbWVudDoKKworaSkgZWZmZWN0aXZlbHkgZGlzY2xhaW1zIG9uIGJlaGFsZiBvZiBhbGwgQ29udHJpYnV0b3JzIGFsbCB3YXJyYW50aWVzCithbmQgY29uZGl0aW9ucywgZXhwcmVzcyBhbmQgaW1wbGllZCwgaW5jbHVkaW5nIHdhcnJhbnRpZXMgb3IgY29uZGl0aW9ucworb2YgdGl0bGUgYW5kIG5vbi1pbmZyaW5nZW1lbnQsIGFuZCBpbXBsaWVkIHdhcnJhbnRpZXMgb3IgY29uZGl0aW9ucyBvZgorbWVyY2hhbnRhYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZTsKKworaWkpIGVmZmVjdGl2ZWx5IGV4Y2x1ZGVzIG9uIGJlaGFsZiBvZiBhbGwgQ29udHJpYnV0b3JzIGFsbCBsaWFiaWxpdHkgZm9yCitkYW1hZ2VzLCBpbmNsdWRpbmcgZGlyZWN0LCBpbmRpcmVjdCwgc3BlY2lhbCwgaW5jaWRlbnRhbCBhbmQKK2NvbnNlcXVlbnRpYWwgZGFtYWdlcywgc3VjaCBhcyBsb3N0IHByb2ZpdHM7CisKK2lpaSkgc3RhdGVzIHRoYXQgYW55IHByb3Zpc2lvbnMgd2hpY2ggZGlmZmVyIGZyb20gdGhpcyBBZ3JlZW1lbnQgYXJlCitvZmZlcmVkIGJ5IHRoYXQgQ29udHJpYnV0b3IgYWxvbmUgYW5kIG5vdCBieSBhbnkgb3RoZXIgcGFydHk7IGFuZAorCitpdikgc3RhdGVzIHRoYXQgc291cmNlIGNvZGUgZm9yIHRoZSBQcm9ncmFtIGlzIGF2YWlsYWJsZSBmcm9tIHN1Y2gKK0NvbnRyaWJ1dG9yLCBhbmQgaW5mb3JtcyBsaWNlbnNlZXMgaG93IHRvIG9idGFpbiBpdCBpbiBhIHJlYXNvbmFibGUKK21hbm5lciBvbiBvciB0aHJvdWdoIGEgbWVkaXVtIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGV4Y2hhbmdlLgorCitXaGVuIHRoZSBQcm9ncmFtIGlzIG1hZGUgYXZhaWxhYmxlIGluIHNvdXJjZSBjb2RlIGZvcm06CisKK2EpIGl0IG11c3QgYmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhpcyBBZ3JlZW1lbnQ7IGFuZAorCitiKSBhIGNvcHkgb2YgdGhpcyBBZ3JlZW1lbnQgbXVzdCBiZSBpbmNsdWRlZCB3aXRoIGVhY2ggY29weSBvZiB0aGUgUHJvZ3JhbS4KKworQ29udHJpYnV0b3JzIG1heSBub3QgcmVtb3ZlIG9yIGFsdGVyIGFueSBjb3B5cmlnaHQgbm90aWNlcyBjb250YWluZWQKK3dpdGhpbiB0aGUgUHJvZ3JhbS4KKworRWFjaCBDb250cmlidXRvciBtdXN0IGlkZW50aWZ5IGl0c2VsZiBhcyB0aGUgb3JpZ2luYXRvciBvZiBpdHMKK0NvbnRyaWJ1dGlvbiwgaWYgYW55LCBpbiBhIG1hbm5lciB0aGF0IHJlYXNvbmFibHkgYWxsb3dzIHN1YnNlcXVlbnQKK1JlY2lwaWVudHMgdG8gaWRlbnRpZnkgdGhlIG9yaWdpbmF0b3Igb2YgdGhlIENvbnRyaWJ1dGlvbi4KKworKjQuIENPTU1FUkNJQUwgRElTVFJJQlVUSU9OKgorCitDb21tZXJjaWFsIGRpc3RyaWJ1dG9ycyBvZiBzb2Z0d2FyZSBtYXkgYWNjZXB0IGNlcnRhaW4gcmVzcG9uc2liaWxpdGllcword2l0aCByZXNwZWN0IHRvIGVuZCB1c2VycywgYnVzaW5lc3MgcGFydG5lcnMgYW5kIHRoZSBsaWtlLiBXaGlsZSB0aGlzCitsaWNlbnNlIGlzIGludGVuZGVkIHRvIGZhY2lsaXRhdGUgdGhlIGNvbW1lcmNpYWwgdXNlIG9mIHRoZSBQcm9ncmFtLCB0aGUKK0NvbnRyaWJ1dG9yIHdobyBpbmNsdWRlcyB0aGUgUHJvZ3JhbSBpbiBhIGNvbW1lcmNpYWwgcHJvZHVjdCBvZmZlcmluZworc2hvdWxkIGRvIHNvIGluIGEgbWFubmVyIHdoaWNoIGRvZXMgbm90IGNyZWF0ZSBwb3RlbnRpYWwgbGlhYmlsaXR5IGZvcgorb3RoZXIgQ29udHJpYnV0b3JzLiBUaGVyZWZvcmUsIGlmIGEgQ29udHJpYnV0b3IgaW5jbHVkZXMgdGhlIFByb2dyYW0gaW4KK2EgY29tbWVyY2lhbCBwcm9kdWN0IG9mZmVyaW5nLCBzdWNoIENvbnRyaWJ1dG9yICgiQ29tbWVyY2lhbAorQ29udHJpYnV0b3IiKSBoZXJlYnkgYWdyZWVzIHRvIGRlZmVuZCBhbmQgaW5kZW1uaWZ5IGV2ZXJ5IG90aGVyCitDb250cmlidXRvciAoIkluZGVtbmlmaWVkIENvbnRyaWJ1dG9yIikgYWdhaW5zdCBhbnkgbG9zc2VzLCBkYW1hZ2VzIGFuZAorY29zdHMgKGNvbGxlY3RpdmVseSAiTG9zc2VzIikgYXJpc2luZyBmcm9tIGNsYWltcywgbGF3c3VpdHMgYW5kIG90aGVyCitsZWdhbCBhY3Rpb25zIGJyb3VnaHQgYnkgYSB0aGlyZCBwYXJ0eSBhZ2FpbnN0IHRoZSBJbmRlbW5pZmllZAorQ29udHJpYnV0b3IgdG8gdGhlIGV4dGVudCBjYXVzZWQgYnkgdGhlIGFjdHMgb3Igb21pc3Npb25zIG9mIHN1Y2gKK0NvbW1lcmNpYWwgQ29udHJpYnV0b3IgaW4gY29ubmVjdGlvbiB3aXRoIGl0cyBkaXN0cmlidXRpb24gb2YgdGhlCitQcm9ncmFtIGluIGEgY29tbWVyY2lhbCBwcm9kdWN0IG9mZmVyaW5nLiBUaGUgb2JsaWdhdGlvbnMgaW4gdGhpcworc2VjdGlvbiBkbyBub3QgYXBwbHkgdG8gYW55IGNsYWltcyBvciBMb3NzZXMgcmVsYXRpbmcgdG8gYW55IGFjdHVhbCBvcgorYWxsZWdlZCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgaW5mcmluZ2VtZW50LiBJbiBvcmRlciB0byBxdWFsaWZ5LCBhbgorSW5kZW1uaWZpZWQgQ29udHJpYnV0b3IgbXVzdDogYSkgcHJvbXB0bHkgbm90aWZ5IHRoZSBDb21tZXJjaWFsCitDb250cmlidXRvciBpbiB3cml0aW5nIG9mIHN1Y2ggY2xhaW0sIGFuZCBiKSBhbGxvdyB0aGUgQ29tbWVyY2lhbAorQ29udHJpYnV0b3IgdG8gY29udHJvbCwgYW5kIGNvb3BlcmF0ZSB3aXRoIHRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yCitpbiwgdGhlIGRlZmVuc2UgYW5kIGFueSByZWxhdGVkIHNldHRsZW1lbnQgbmVnb3RpYXRpb25zLiBUaGUgSW5kZW1uaWZpZWQKK0NvbnRyaWJ1dG9yIG1heSBwYXJ0aWNpcGF0ZSBpbiBhbnkgc3VjaCBjbGFpbSBhdCBpdHMgb3duIGV4cGVuc2UuCisKK0ZvciBleGFtcGxlLCBhIENvbnRyaWJ1dG9yIG1pZ2h0IGluY2x1ZGUgdGhlIFByb2dyYW0gaW4gYSBjb21tZXJjaWFsCitwcm9kdWN0IG9mZmVyaW5nLCBQcm9kdWN0IFguIFRoYXQgQ29udHJpYnV0b3IgaXMgdGhlbiBhIENvbW1lcmNpYWwKK0NvbnRyaWJ1dG9yLiBJZiB0aGF0IENvbW1lcmNpYWwgQ29udHJpYnV0b3IgdGhlbiBtYWtlcyBwZXJmb3JtYW5jZQorY2xhaW1zLCBvciBvZmZlcnMgd2FycmFudGllcyByZWxhdGVkIHRvIFByb2R1Y3QgWCwgdGhvc2UgcGVyZm9ybWFuY2UKK2NsYWltcyBhbmQgd2FycmFudGllcyBhcmUgc3VjaCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yJ3MgcmVzcG9uc2liaWxpdHkKK2Fsb25lLiBVbmRlciB0aGlzIHNlY3Rpb24sIHRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIHdvdWxkIGhhdmUgdG8KK2RlZmVuZCBjbGFpbXMgYWdhaW5zdCB0aGUgb3RoZXIgQ29udHJpYnV0b3JzIHJlbGF0ZWQgdG8gdGhvc2UKK3BlcmZvcm1hbmNlIGNsYWltcyBhbmQgd2FycmFudGllcywgYW5kIGlmIGEgY291cnQgcmVxdWlyZXMgYW55IG90aGVyCitDb250cmlidXRvciB0byBwYXkgYW55IGRhbWFnZXMgYXMgYSByZXN1bHQsIHRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yCittdXN0IHBheSB0aG9zZSBkYW1hZ2VzLgorCisqNS4gTk8gV0FSUkFOVFkqCisKK0VYQ0VQVCBBUyBFWFBSRVNTTFkgU0VUIEZPUlRIIElOIFRISVMgQUdSRUVNRU5ULCBUSEUgUFJPR1JBTSBJUyBQUk9WSURFRAorT04gQU4gIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsCitFSVRIRVIgRVhQUkVTUyBPUiBJTVBMSUVEIElOQ0xVRElORywgV0lUSE9VVCBMSU1JVEFUSU9OLCBBTlkgV0FSUkFOVElFUworT1IgQ09ORElUSU9OUyBPRiBUSVRMRSwgTk9OLUlORlJJTkdFTUVOVCwgTUVSQ0hBTlRBQklMSVRZIE9SIEZJVE5FU1MgRk9SCitBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gRWFjaCBSZWNpcGllbnQgaXMgc29sZWx5IHJlc3BvbnNpYmxlIGZvcgorZGV0ZXJtaW5pbmcgdGhlIGFwcHJvcHJpYXRlbmVzcyBvZiB1c2luZyBhbmQgZGlzdHJpYnV0aW5nIHRoZSBQcm9ncmFtCithbmQgYXNzdW1lcyBhbGwgcmlza3MgYXNzb2NpYXRlZCB3aXRoIGl0cyBleGVyY2lzZSBvZiByaWdodHMgdW5kZXIgdGhpcworQWdyZWVtZW50ICwgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byB0aGUgcmlza3MgYW5kIGNvc3RzIG9mIHByb2dyYW0KK2Vycm9ycywgY29tcGxpYW5jZSB3aXRoIGFwcGxpY2FibGUgbGF3cywgZGFtYWdlIHRvIG9yIGxvc3Mgb2YgZGF0YSwKK3Byb2dyYW1zIG9yIGVxdWlwbWVudCwgYW5kIHVuYXZhaWxhYmlsaXR5IG9yIGludGVycnVwdGlvbiBvZiBvcGVyYXRpb25zLgorCisqNi4gRElTQ0xBSU1FUiBPRiBMSUFCSUxJVFkqCisKK0VYQ0VQVCBBUyBFWFBSRVNTTFkgU0VUIEZPUlRIIElOIFRISVMgQUdSRUVNRU5ULCBORUlUSEVSIFJFQ0lQSUVOVCBOT1IKK0FOWSBDT05UUklCVVRPUlMgU0hBTEwgSEFWRSBBTlkgTElBQklMSVRZIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKK0lOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcKK1dJVEhPVVQgTElNSVRBVElPTiBMT1NUIFBST0ZJVFMpLCBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRgorTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcKK05FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT1IKK0RJU1RSSUJVVElPTiBPRiBUSEUgUFJPR1JBTSBPUiBUSEUgRVhFUkNJU0UgT0YgQU5ZIFJJR0hUUyBHUkFOVEVECitIRVJFVU5ERVIsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0VTLgorCisqNy4gR0VORVJBTCoKKworSWYgYW55IHByb3Zpc2lvbiBvZiB0aGlzIEFncmVlbWVudCBpcyBpbnZhbGlkIG9yIHVuZW5mb3JjZWFibGUgdW5kZXIKK2FwcGxpY2FibGUgbGF3LCBpdCBzaGFsbCBub3QgYWZmZWN0IHRoZSB2YWxpZGl0eSBvciBlbmZvcmNlYWJpbGl0eSBvZgordGhlIHJlbWFpbmRlciBvZiB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGFuZCB3aXRob3V0IGZ1cnRoZXIgYWN0aW9uCitieSB0aGUgcGFydGllcyBoZXJldG8sIHN1Y2ggcHJvdmlzaW9uIHNoYWxsIGJlIHJlZm9ybWVkIHRvIHRoZSBtaW5pbXVtCitleHRlbnQgbmVjZXNzYXJ5IHRvIG1ha2Ugc3VjaCBwcm92aXNpb24gdmFsaWQgYW5kIGVuZm9yY2VhYmxlLgorCitJZiBSZWNpcGllbnQgaW5zdGl0dXRlcyBwYXRlbnQgbGl0aWdhdGlvbiBhZ2FpbnN0IGFueSBlbnRpdHkgKGluY2x1ZGluZworYSBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYSBsYXdzdWl0KSBhbGxlZ2luZyB0aGF0IHRoZSBQcm9ncmFtCitpdHNlbGYgKGV4Y2x1ZGluZyBjb21iaW5hdGlvbnMgb2YgdGhlIFByb2dyYW0gd2l0aCBvdGhlciBzb2Z0d2FyZSBvcgoraGFyZHdhcmUpIGluZnJpbmdlcyBzdWNoIFJlY2lwaWVudCdzIHBhdGVudChzKSwgdGhlbiBzdWNoIFJlY2lwaWVudCdzCityaWdodHMgZ3JhbnRlZCB1bmRlciBTZWN0aW9uIDIoYikgc2hhbGwgdGVybWluYXRlIGFzIG9mIHRoZSBkYXRlIHN1Y2gKK2xpdGlnYXRpb24gaXMgZmlsZWQuCisKK0FsbCBSZWNpcGllbnQncyByaWdodHMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgc2hhbGwgdGVybWluYXRlIGlmIGl0IGZhaWxzCit0byBjb21wbHkgd2l0aCBhbnkgb2YgdGhlIG1hdGVyaWFsIHRlcm1zIG9yIGNvbmRpdGlvbnMgb2YgdGhpcyBBZ3JlZW1lbnQKK2FuZCBkb2VzIG5vdCBjdXJlIHN1Y2ggZmFpbHVyZSBpbiBhIHJlYXNvbmFibGUgcGVyaW9kIG9mIHRpbWUgYWZ0ZXIKK2JlY29taW5nIGF3YXJlIG9mIHN1Y2ggbm9uY29tcGxpYW5jZS4gSWYgYWxsIFJlY2lwaWVudCdzIHJpZ2h0cyB1bmRlcgordGhpcyBBZ3JlZW1lbnQgdGVybWluYXRlLCBSZWNpcGllbnQgYWdyZWVzIHRvIGNlYXNlIHVzZSBhbmQgZGlzdHJpYnV0aW9uCitvZiB0aGUgUHJvZ3JhbSBhcyBzb29uIGFzIHJlYXNvbmFibHkgcHJhY3RpY2FibGUuIEhvd2V2ZXIsIFJlY2lwaWVudCdzCitvYmxpZ2F0aW9ucyB1bmRlciB0aGlzIEFncmVlbWVudCBhbmQgYW55IGxpY2Vuc2VzIGdyYW50ZWQgYnkgUmVjaXBpZW50CityZWxhdGluZyB0byB0aGUgUHJvZ3JhbSBzaGFsbCBjb250aW51ZSBhbmQgc3Vydml2ZS4KKworRXZlcnlvbmUgaXMgcGVybWl0dGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgY29waWVzIG9mIHRoaXMgQWdyZWVtZW50LAorYnV0IGluIG9yZGVyIHRvIGF2b2lkIGluY29uc2lzdGVuY3kgdGhlIEFncmVlbWVudCBpcyBjb3B5cmlnaHRlZCBhbmQgbWF5Citvbmx5IGJlIG1vZGlmaWVkIGluIHRoZSBmb2xsb3dpbmcgbWFubmVyLiBUaGUgQWdyZWVtZW50IFN0ZXdhcmQgcmVzZXJ2ZXMKK3RoZSByaWdodCB0byBwdWJsaXNoIG5ldyB2ZXJzaW9ucyAoaW5jbHVkaW5nIHJldmlzaW9ucykgb2YgdGhpcworQWdyZWVtZW50IGZyb20gdGltZSB0byB0aW1lLiBObyBvbmUgb3RoZXIgdGhhbiB0aGUgQWdyZWVtZW50IFN0ZXdhcmQgaGFzCit0aGUgcmlnaHQgdG8gbW9kaWZ5IHRoaXMgQWdyZWVtZW50LiBUaGUgRWNsaXBzZSBGb3VuZGF0aW9uIGlzIHRoZQoraW5pdGlhbCBBZ3JlZW1lbnQgU3Rld2FyZC4gVGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYXkgYXNzaWduIHRoZQorcmVzcG9uc2liaWxpdHkgdG8gc2VydmUgYXMgdGhlIEFncmVlbWVudCBTdGV3YXJkIHRvIGEgc3VpdGFibGUgc2VwYXJhdGUKK2VudGl0eS4gRWFjaCBuZXcgdmVyc2lvbiBvZiB0aGUgQWdyZWVtZW50IHdpbGwgYmUgZ2l2ZW4gYSBkaXN0aW5ndWlzaGluZwordmVyc2lvbiBudW1iZXIuIFRoZSBQcm9ncmFtIChpbmNsdWRpbmcgQ29udHJpYnV0aW9ucykgbWF5IGFsd2F5cyBiZQorZGlzdHJpYnV0ZWQgc3ViamVjdCB0byB0aGUgdmVyc2lvbiBvZiB0aGUgQWdyZWVtZW50IHVuZGVyIHdoaWNoIGl0IHdhcworcmVjZWl2ZWQuIEluIGFkZGl0aW9uLCBhZnRlciBhIG5ldyB2ZXJzaW9uIG9mIHRoZSBBZ3JlZW1lbnQgaXMKK3B1Ymxpc2hlZCwgQ29udHJpYnV0b3IgbWF5IGVsZWN0IHRvIGRpc3RyaWJ1dGUgdGhlIFByb2dyYW0gKGluY2x1ZGluZworaXRzIENvbnRyaWJ1dGlvbnMpIHVuZGVyIHRoZSBuZXcgdmVyc2lvbi4gRXhjZXB0IGFzIGV4cHJlc3NseSBzdGF0ZWQgaW4KK1NlY3Rpb25zIDIoYSkgYW5kIDIoYikgYWJvdmUsIFJlY2lwaWVudCByZWNlaXZlcyBubyByaWdodHMgb3IgbGljZW5zZXMKK3RvIHRoZSBpbnRlbGxlY3R1YWwgcHJvcGVydHkgb2YgYW55IENvbnRyaWJ1dG9yIHVuZGVyIHRoaXMgQWdyZWVtZW50LAord2hldGhlciBleHByZXNzbHksIGJ5IGltcGxpY2F0aW9uLCBlc3RvcHBlbCBvciBvdGhlcndpc2UuIEFsbCByaWdodHMgaW4KK3RoZSBQcm9ncmFtIG5vdCBleHByZXNzbHkgZ3JhbnRlZCB1bmRlciB0aGlzIEFncmVlbWVudCBhcmUgcmVzZXJ2ZWQuCisKK1RoaXMgQWdyZWVtZW50IGlzIGdvdmVybmVkIGJ5IHRoZSBsYXdzIG9mIHRoZSBTdGF0ZSBvZiBOZXcgWW9yayBhbmQgdGhlCitpbnRlbGxlY3R1YWwgcHJvcGVydHkgbGF3cyBvZiB0aGUgVW5pdGVkIFN0YXRlcyBvZiBBbWVyaWNhLiBObyBwYXJ0eSB0bwordGhpcyBBZ3JlZW1lbnQgd2lsbCBicmluZyBhIGxlZ2FsIGFjdGlvbiB1bmRlciB0aGlzIEFncmVlbWVudCBtb3JlIHRoYW4KK29uZSB5ZWFyIGFmdGVyIHRoZSBjYXVzZSBvZiBhY3Rpb24gYXJvc2UuIEVhY2ggcGFydHkgd2FpdmVzIGl0cyByaWdodHMKK3RvIGEganVyeSB0cmlhbCBpbiBhbnkgcmVzdWx0aW5nIGxpdGlnYXRpb24uCisKZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9lY2xpcHNlL2pkdC9jb3JlL2NvbXBpbGVyL2Vjai80LjQuMi9lY2otNC40LjItc291cmNlcy5qYXIgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvZWNsaXBzZS9qZHQvY29yZS9jb21waWxlci9lY2ovNC40LjIvZWNqLTQuNC4yLXNvdXJjZXMuamFyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ1ZDgwYWYKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvZWNsaXBzZS9qZHQvY29yZS9jb21waWxlci9lY2ovNC40LjIvZWNqLTQuNC4yLXNvdXJjZXMuamFyCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9lY2xpcHNlL2pkdC9jb3JlL2NvbXBpbGVyL2Vjai80LjQuMi9lY2otNC40LjItc291cmNlcy5qYXIubWQ1IGIvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2VjbGlwc2UvamR0L2NvcmUvY29tcGlsZXIvZWNqLzQuNC4yL2Vjai00LjQuMi1zb3VyY2VzLmphci5tZDUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjc5YzJkMgotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9lY2xpcHNlL2pkdC9jb3JlL2NvbXBpbGVyL2Vjai80LjQuMi9lY2otNC40LjItc291cmNlcy5qYXIubWQ1CkBAIC0wLDAgKzEgQEAKKzIxMjQ0NTAxMjU0MDM2M2U4YjRhNzAyYzU5ZWM5YTQzClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2VjbGlwc2UvamR0L2NvcmUvY29tcGlsZXIvZWNqLzQuNC4yL2Vjai00LjQuMi1zb3VyY2VzLmphci5zaGExIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2VjbGlwc2UvamR0L2NvcmUvY29tcGlsZXIvZWNqLzQuNC4yL2Vjai00LjQuMi1zb3VyY2VzLmphci5zaGExCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFkMjRlZmYKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvZWNsaXBzZS9qZHQvY29yZS9jb21waWxlci9lY2ovNC40LjIvZWNqLTQuNC4yLXNvdXJjZXMuamFyLnNoYTEKQEAgLTAsMCArMSBAQAorOTAzZThjMmNiNTIxY2M5MTYzNmVjY2FlNjZiODU5NDQzNTUxNmZmNQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9lY2xpcHNlL2pkdC9jb3JlL2NvbXBpbGVyL2Vjai80LjQuMi9lY2otNC40LjIuamFyIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2VjbGlwc2UvamR0L2NvcmUvY29tcGlsZXIvZWNqLzQuNC4yL2Vjai00LjQuMi5qYXIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDk0MTFiMwotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9lY2xpcHNlL2pkdC9jb3JlL2NvbXBpbGVyL2Vjai80LjQuMi9lY2otNC40LjIuamFyCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9lY2xpcHNlL2pkdC9jb3JlL2NvbXBpbGVyL2Vjai80LjQuMi9lY2otNC40LjIuamFyLm1kNSBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9lY2xpcHNlL2pkdC9jb3JlL2NvbXBpbGVyL2Vjai80LjQuMi9lY2otNC40LjIuamFyLm1kNQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45Y2RiOTA0Ci0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2VjbGlwc2UvamR0L2NvcmUvY29tcGlsZXIvZWNqLzQuNC4yL2Vjai00LjQuMi5qYXIubWQ1CkBAIC0wLDAgKzEgQEAKK2VlOTdhYjM4ZjM5MDU0NzgzOWI5NTBiYjUxYmY1Y2I1ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2VjbGlwc2UvamR0L2NvcmUvY29tcGlsZXIvZWNqLzQuNC4yL2Vjai00LjQuMi5qYXIuc2hhMSBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9lY2xpcHNlL2pkdC9jb3JlL2NvbXBpbGVyL2Vjai80LjQuMi9lY2otNC40LjIuamFyLnNoYTEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGMzM2VlZQotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9lY2xpcHNlL2pkdC9jb3JlL2NvbXBpbGVyL2Vjai80LjQuMi9lY2otNC40LjIuamFyLnNoYTEKQEAgLTAsMCArMSBAQAorNzFkNjdmNWJhYjk0NjVlYzg0NDU5NmVmODQ0ZjQwOTAyYWUyNTM5MgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9lY2xpcHNlL2pkdC9jb3JlL2NvbXBpbGVyL2Vjai80LjQuMi9lY2otNC40LjIucG9tIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2VjbGlwc2UvamR0L2NvcmUvY29tcGlsZXIvZWNqLzQuNC4yL2Vjai00LjQuMi5wb20KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzc4MmI2ZgotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9lY2xpcHNlL2pkdC9jb3JlL2NvbXBpbGVyL2Vjai80LjQuMi9lY2otNC40LjIucG9tCkBAIC0wLDAgKzEsNjIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cHJvamVjdCB4bWxucz0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCBodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9tYXZlbi12NF8wXzAueHNkIj4KKwk8IS0tIAorICAgICAgICAgICBPcmlnaW5hbGx5IGRvd25sb2FkZWQgaGVyZToKKyAgICAgICAgICAgaHR0cDovL2Rvd25sb2FkLmVjbGlwc2Uub3JnL2VjbGlwc2UvZG93bmxvYWRzL2Ryb3BzNC9SLTQuNC0yMDE0MDYwNjEyMTUvI0pEVENPUkUgCisJLS0+CisJPG1vZGVsVmVyc2lvbj40LjAuMDwvbW9kZWxWZXJzaW9uPgorCTxncm91cElkPm9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyPC9ncm91cElkPgorCTxhcnRpZmFjdElkPmVjajwvYXJ0aWZhY3RJZD4KKwk8dmVyc2lvbj40LjQuMjwvdmVyc2lvbj4KKwk8cGFja2FnaW5nPmphcjwvcGFja2FnaW5nPgorCTxuYW1lPkVjbGlwc2UgRUNKPC9uYW1lPgorCTxkZXNjcmlwdGlvbj5FY2xpcHNlIEpEVCBDb3JlIEJhdGNoIENvbXBpbGVyPC9kZXNjcmlwdGlvbj4KKwk8dXJsPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvamR0LzwvdXJsPgorCTxwcm9wZXJ0aWVzPgorCQk8cHJvamVjdC5idWlsZC5zb3VyY2VFbmNvZGluZz5VVEYtODwvcHJvamVjdC5idWlsZC5zb3VyY2VFbmNvZGluZz4KKwkJPHByb2plY3QucmVwb3J0aW5nLm91dHB1dEVuY29kaW5nPlVURi04PC9wcm9qZWN0LnJlcG9ydGluZy5vdXRwdXRFbmNvZGluZz4KKwk8L3Byb3BlcnRpZXM+CisJPGxpY2Vuc2VzPgorCQk8bGljZW5zZT4KKwkJCTxuYW1lPkVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMDwvbmFtZT4KKwkJCTx1cmw+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vcmcvZG9jdW1lbnRzL2VwbC12MTAucGhwPC91cmw+CisJCQk8ZGlzdHJpYnV0aW9uPnJlcG88L2Rpc3RyaWJ1dGlvbj4KKwkJPC9saWNlbnNlPgorCTwvbGljZW5zZXM+CisJPHNjbT4KKwkJPHVybD5odHRwOi8vZGV2LmVjbGlwc2Uub3JnL3ZpZXdjdnMvaW5kZXguY2dpL29yZy5lY2xpcHNlLmpkdC5jb3JlLzwvdXJsPgorCQk8Y29ubmVjdGlvbj46cHNlcnZlcjphbm9ueW1vdXNAZGV2LmVjbGlwc2Uub3JnOi9jdnNyb290L2VjbGlwc2U8L2Nvbm5lY3Rpb24+CisJPC9zY20+CisJPGRldmVsb3BlcnM+CisJCTwhLS0gSSBkaWRuJ3QgZGV2ZWxvcCBFQ0osIGJ1dCB0aGUgQ2VudHJhbCBTeW5jIFJlcXVpcmVtZW50cyBtYW5kYXRlIGEgZGV2ZWxvcGVyIGluIHRoZSBQT006CisJCQlodHRwczovL2RvY3Muc29uYXR5cGUub3JnL2Rpc3BsYXkvUmVwb3NpdG9yeS9DZW50cmFsK1N5bmMrUmVxdWlyZW1lbnRzCisJCS0tPgorCQk8ZGV2ZWxvcGVyPgorCQkJPG5hbWU+UmFscGggU2NoYWVyPC9uYW1lPgorCQkJPGVtYWlsPnJhbHBoc2NoYWVyQGdtYWlsLmNvbTwvZW1haWw+CisJCTwvZGV2ZWxvcGVyPgorCTwvZGV2ZWxvcGVycz4KKwkKKwk8ZGVwZW5kZW5jaWVzPgorCQk8ZGVwZW5kZW5jeT4KKwkJCTxncm91cElkPm9yZy5hcGFjaGUuYW50PC9ncm91cElkPgorCQkJPGFydGlmYWN0SWQ+YW50PC9hcnRpZmFjdElkPgorCQkJPHZlcnNpb24+MS45LjQ8L3ZlcnNpb24+CisJCQk8b3B0aW9uYWw+dHJ1ZTwvb3B0aW9uYWw+CisJCTwvZGVwZW5kZW5jeT4KKwk8L2RlcGVuZGVuY2llcz4JCisJCisJPGJ1aWxkPgorICAgICAgPHBsdWdpbnM+CisgICAgICAgIDxwbHVnaW4+CisgICAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPgorICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLWphdmFkb2MtcGx1Z2luPC9hcnRpZmFjdElkPgorCQkgIDx2ZXJzaW9uPjIuMTAuMTwvdmVyc2lvbj4KKyAgICAgICAgICA8Y29uZmlndXJhdGlvbj4KKyAgICAgICAgICAgIDxhZGRpdGlvbmFscGFyYW0+LVhkb2NsaW50Om5vbmU8L2FkZGl0aW9uYWxwYXJhbT4KKyAgICAgICAgICA8L2NvbmZpZ3VyYXRpb24+CisgICAgICAgIDwvcGx1Z2luPgorICAgICAgPC9wbHVnaW5zPgkKKwk8L2J1aWxkPgorCQorPC9wcm9qZWN0PgpkaWZmIC0tZ2l0IGEvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2VjbGlwc2UvamR0L2NvcmUvY29tcGlsZXIvZWNqLzQuNC4yL2Vjai00LjQuMi5wb20ubWQ1IGIvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2VjbGlwc2UvamR0L2NvcmUvY29tcGlsZXIvZWNqLzQuNC4yL2Vjai00LjQuMi5wb20ubWQ1Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMwMTFmNjcKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvZWNsaXBzZS9qZHQvY29yZS9jb21waWxlci9lY2ovNC40LjIvZWNqLTQuNC4yLnBvbS5tZDUKQEAgLTAsMCArMSBAQAorYmZhOWZlMDJmMTEyM2Q3ZWMxZmUwMjBlODkyMWQ4N2EKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvZWNsaXBzZS9qZHQvY29yZS9jb21waWxlci9lY2ovNC40LjIvZWNqLTQuNC4yLnBvbS5zaGExIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2VjbGlwc2UvamR0L2NvcmUvY29tcGlsZXIvZWNqLzQuNC4yL2Vjai00LjQuMi5wb20uc2hhMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNWQ1ZjdlCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2VjbGlwc2UvamR0L2NvcmUvY29tcGlsZXIvZWNqLzQuNC4yL2Vjai00LjQuMi5wb20uc2hhMQpAQCAtMCwwICsxIEBACitiMGJiZjEwNGJkMjAzMGFlOThhMmVjOTlmZjQ5NDBjZmQwMTA2NDIzClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2VjbGlwc2UvamR0L2NvcmUvY29tcGlsZXIvZWNqL21hdmVuLW1ldGFkYXRhLnhtbCBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9lY2xpcHNlL2pkdC9jb3JlL2NvbXBpbGVyL2Vjai9tYXZlbi1tZXRhZGF0YS54bWwKaW5kZXggYzJjZDE2Yi4uMWQzYjlkZSAxMDA2NDQKLS0tIGEvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2VjbGlwc2UvamR0L2NvcmUvY29tcGlsZXIvZWNqL21hdmVuLW1ldGFkYXRhLnhtbAorKysgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvZWNsaXBzZS9qZHQvY29yZS9jb21waWxlci9lY2ovbWF2ZW4tbWV0YWRhdGEueG1sCkBAIC0yLDEyICsyLDE1IEBACiA8bWV0YWRhdGE+CiAgIDxncm91cElkPm9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyPC9ncm91cElkPgogICA8YXJ0aWZhY3RJZD5lY2o8L2FydGlmYWN0SWQ+CisgIDx2ZXJzaW9uPjQuNC4yPC92ZXJzaW9uPgogICA8dmVyc2lvbmluZz4KLSAgICA8bGF0ZXN0PjQuNDwvbGF0ZXN0PgotICAgIDxyZWxlYXNlPjQuNDwvcmVsZWFzZT4KKyAgICA8bGF0ZXN0PjQuNC4yPC9sYXRlc3Q+CisgICAgPHJlbGVhc2U+NC40LjI8L3JlbGVhc2U+CiAgICAgPHZlcnNpb25zPgogICAgICAgPHZlcnNpb24+UDIwMTQwMzE3LTE2MDA8L3ZlcnNpb24+CiAgICAgICA8dmVyc2lvbj4zLjMuMTwvdmVyc2lvbj4KKyAgICAgIDx2ZXJzaW9uPjMuNS4wPC92ZXJzaW9uPgorICAgICAgPHZlcnNpb24+My41LjE8L3ZlcnNpb24+CiAgICAgICA8dmVyc2lvbj4zLjc8L3ZlcnNpb24+CiAgICAgICA8dmVyc2lvbj4zLjcuMTwvdmVyc2lvbj4KICAgICAgIDx2ZXJzaW9uPjMuNy4yPC92ZXJzaW9uPgpAQCAtMTUsNyArMTgsOSBAQAogICAgICAgPHZlcnNpb24+NC4yLjI8L3ZlcnNpb24+CiAgICAgICA8dmVyc2lvbj40LjMuMTwvdmVyc2lvbj4KICAgICAgIDx2ZXJzaW9uPjQuNDwvdmVyc2lvbj4KKyAgICAgIDx2ZXJzaW9uPjQuNC4xPC92ZXJzaW9uPgorICAgICAgPHZlcnNpb24+NC40LjI8L3ZlcnNpb24+CiAgICAgPC92ZXJzaW9ucz4KLSAgICA8bGFzdFVwZGF0ZWQ+MjAxNDA2MjcxNjE2NTc8L2xhc3RVcGRhdGVkPgorICAgIDxsYXN0VXBkYXRlZD4yMDE1MDMwNzEzMjMzNTwvbGFzdFVwZGF0ZWQ+CiAgIDwvdmVyc2lvbmluZz4KIDwvbWV0YWRhdGE+CmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvamV0YnJhaW5zL2tvdGxpbi9rb3RsaW4tYW5ub3RhdGlvbi1wcm9jZXNzaW5nLzAuMTIuNjEzL2tvdGxpbi1hbm5vdGF0aW9uLXByb2Nlc3NpbmctMC4xMi42MTMuamFyIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2pldGJyYWlucy9rb3RsaW4va290bGluLWFubm90YXRpb24tcHJvY2Vzc2luZy8wLjEyLjYxMy9rb3RsaW4tYW5ub3RhdGlvbi1wcm9jZXNzaW5nLTAuMTIuNjEzLmphcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZGE0ZDc2Ci0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2pldGJyYWlucy9rb3RsaW4va290bGluLWFubm90YXRpb24tcHJvY2Vzc2luZy8wLjEyLjYxMy9rb3RsaW4tYW5ub3RhdGlvbi1wcm9jZXNzaW5nLTAuMTIuNjEzLmphcgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvamV0YnJhaW5zL2tvdGxpbi9rb3RsaW4tYW5ub3RhdGlvbi1wcm9jZXNzaW5nLzAuMTIuNjEzL2tvdGxpbi1hbm5vdGF0aW9uLXByb2Nlc3NpbmctMC4xMi42MTMuamFyLnNoYTEgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvamV0YnJhaW5zL2tvdGxpbi9rb3RsaW4tYW5ub3RhdGlvbi1wcm9jZXNzaW5nLzAuMTIuNjEzL2tvdGxpbi1hbm5vdGF0aW9uLXByb2Nlc3NpbmctMC4xMi42MTMuamFyLnNoYTEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjJhM2IxOAotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9qZXRicmFpbnMva290bGluL2tvdGxpbi1hbm5vdGF0aW9uLXByb2Nlc3NpbmcvMC4xMi42MTMva290bGluLWFubm90YXRpb24tcHJvY2Vzc2luZy0wLjEyLjYxMy5qYXIuc2hhMQpAQCAtMCwwICsxIEBACithMWM1N2RiZjZiMWU4YzdkNzZkYTk2Nzc4MWFiYWYwNDFkZjU0NGRjClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2pldGJyYWlucy9rb3RsaW4va290bGluLWFubm90YXRpb24tcHJvY2Vzc2luZy8wLjEyLjYxMy9rb3RsaW4tYW5ub3RhdGlvbi1wcm9jZXNzaW5nLTAuMTIuNjEzLnBvbSBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9qZXRicmFpbnMva290bGluL2tvdGxpbi1hbm5vdGF0aW9uLXByb2Nlc3NpbmcvMC4xMi42MTMva290bGluLWFubm90YXRpb24tcHJvY2Vzc2luZy0wLjEyLjYxMy5wb20KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTQ4NGM1OAotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9qZXRicmFpbnMva290bGluL2tvdGxpbi1hbm5vdGF0aW9uLXByb2Nlc3NpbmcvMC4xMi42MTMva290bGluLWFubm90YXRpb24tcHJvY2Vzc2luZy0wLjEyLjYxMy5wb20KQEAgLTAsMCArMSw5MyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxwcm9qZWN0CisgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAgaHR0cDovL21hdmVuLmFwYWNoZS5vcmcveHNkL21hdmVuLTQuMC4wLnhzZCIKKyAgICB4bWxucz0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIj4KKworICAgIDxtb2RlbFZlcnNpb24+NC4wLjA8L21vZGVsVmVyc2lvbj4KKyAgICA8cHJvcGVydGllcz4KKyAgICAgICAgPG1hdmVuLnZlcnNpb24+My4wLjQ8L21hdmVuLnZlcnNpb24+CisgICAgPC9wcm9wZXJ0aWVzPgorCisgICAgPHBhcmVudD4KKyAgICAgICAgPGdyb3VwSWQ+b3JnLmpldGJyYWlucy5rb3RsaW48L2dyb3VwSWQ+CisgICAgICAgIDxhcnRpZmFjdElkPmtvdGxpbi1wcm9qZWN0PC9hcnRpZmFjdElkPgorICAgICAgICA8dmVyc2lvbj4wLjEyLjYxMzwvdmVyc2lvbj4KKyAgICAgICAgPHJlbGF0aXZlUGF0aD4uLi8uLi9wb20ueG1sPC9yZWxhdGl2ZVBhdGg+CisgICAgPC9wYXJlbnQ+CisKKyAgICA8YXJ0aWZhY3RJZD5rb3RsaW4tYW5ub3RhdGlvbi1wcm9jZXNzaW5nPC9hcnRpZmFjdElkPgorICAgIDxwYWNrYWdpbmc+amFyPC9wYWNrYWdpbmc+CisKKyAgICA8ZGVzY3JpcHRpb24+QW5ub3RhdGlvbiBQcm9jZXNzb3Igd3JhcHBlciBmb3IgS290bGluPC9kZXNjcmlwdGlvbj4KKworICAgIDxyZXBvc2l0b3JpZXM+CisgICAgICAgIDxyZXBvc2l0b3J5PgorICAgICAgICAgICAgPGlkPmpldGJyYWlucy11dGlsczwvaWQ+CisgICAgICAgICAgICA8dXJsPmh0dHA6Ly9yZXBvc2l0b3J5LmpldGJyYWlucy5jb20vdXRpbHM8L3VybD4KKyAgICAgICAgPC9yZXBvc2l0b3J5PgorICAgIDwvcmVwb3NpdG9yaWVzPgorCisgICAgPGRlcGVuZGVuY2llcz4KKyAgICAgICAgPGRlcGVuZGVuY3k+CisgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuamV0YnJhaW5zLmtvdGxpbjwvZ3JvdXBJZD4KKyAgICAgICAgICAgIDxhcnRpZmFjdElkPmtvdGxpbi1zdGRsaWI8L2FydGlmYWN0SWQ+CisgICAgICAgICAgICA8dmVyc2lvbj4ke3Byb2plY3QudmVyc2lvbn08L3ZlcnNpb24+CisgICAgICAgIDwvZGVwZW5kZW5jeT4KKyAgICAgICAgPGRlcGVuZGVuY3k+CisgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuamV0YnJhaW5zLmtvdGxpbjwvZ3JvdXBJZD4KKyAgICAgICAgICAgIDxhcnRpZmFjdElkPmdyYWRsZS1hcGk8L2FydGlmYWN0SWQ+CisgICAgICAgICAgICA8dmVyc2lvbj4xLjY8L3ZlcnNpb24+CisgICAgICAgICAgICA8c2NvcGU+cHJvdmlkZWQ8L3Njb3BlPgorICAgICAgICA8L2RlcGVuZGVuY3k+CisgICAgICAgIDxkZXBlbmRlbmN5PgorICAgICAgICAgICAgPGdyb3VwSWQ+Y29tLmFuZHJvaWQudG9vbHMuYnVpbGQ8L2dyb3VwSWQ+CisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5ncmFkbGU8L2FydGlmYWN0SWQ+CisgICAgICAgICAgICA8dmVyc2lvbj4xLjEuMDwvdmVyc2lvbj4KKyAgICAgICAgICAgIDxzY29wZT5wcm92aWRlZDwvc2NvcGU+CisgICAgICAgIDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY2llcz4KKworICAgIDxidWlsZD4KKyAgICAgICAgPHNvdXJjZURpcmVjdG9yeT4ke3Byb2plY3QuYmFzZWRpcn0vc3JjL21haW4va290bGluPC9zb3VyY2VEaXJlY3Rvcnk+CisgICAgICAgIDx0ZXN0U291cmNlRGlyZWN0b3J5PiR7cHJvamVjdC5iYXNlZGlyfS9zcmMvdGVzdC9rb3RsaW48L3Rlc3RTb3VyY2VEaXJlY3Rvcnk+CisKKyAgICAgICAgPHBsdWdpbnM+CisgICAgICAgICAgICA8cGx1Z2luPgorICAgICAgICAgICAgICAgIDxhcnRpZmFjdElkPmtvdGxpbi1tYXZlbi1wbHVnaW48L2FydGlmYWN0SWQ+CisgICAgICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLmpldGJyYWlucy5rb3RsaW48L2dyb3VwSWQ+CisgICAgICAgICAgICAgICAgPHZlcnNpb24+JHtwcm9qZWN0LnZlcnNpb259PC92ZXJzaW9uPgorICAgICAgICAgICAgICAgIDxjb25maWd1cmF0aW9uPgorICAgICAgICAgICAgICAgICAgICA8YW5ub3RhdGlvblBhdGhzPgorICAgICAgICAgICAgICAgICAgICAgICAgPGFubm90YXRpb25QYXRoPiR7YmFzZWRpcn0va290bGluQW5ub3RhdGlvbjwvYW5ub3RhdGlvblBhdGg+CisgICAgICAgICAgICAgICAgICAgIDwvYW5ub3RhdGlvblBhdGhzPgorICAgICAgICAgICAgICAgIDwvY29uZmlndXJhdGlvbj4KKworICAgICAgICAgICAgICAgIDxleGVjdXRpb25zPgorICAgICAgICAgICAgICAgICAgICA8ZXhlY3V0aW9uPgorICAgICAgICAgICAgICAgICAgICAgICAgPGlkPmNvbXBpbGU8L2lkPgorICAgICAgICAgICAgICAgICAgICAgICAgPHBoYXNlPmNvbXBpbGU8L3BoYXNlPgorICAgICAgICAgICAgICAgICAgICAgICAgPGdvYWxzPiA8Z29hbD5jb21waWxlPC9nb2FsPiA8L2dvYWxzPgorICAgICAgICAgICAgICAgICAgICA8L2V4ZWN1dGlvbj4KKworICAgICAgICAgICAgICAgICAgICA8ZXhlY3V0aW9uPgorICAgICAgICAgICAgICAgICAgICAgICAgPGlkPnRlc3QtY29tcGlsZTwvaWQ+CisgICAgICAgICAgICAgICAgICAgICAgICA8cGhhc2U+dGVzdC1jb21waWxlPC9waGFzZT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxnb2Fscz4gPGdvYWw+dGVzdC1jb21waWxlPC9nb2FsPiA8L2dvYWxzPgorICAgICAgICAgICAgICAgICAgICA8L2V4ZWN1dGlvbj4KKyAgICAgICAgICAgICAgICA8L2V4ZWN1dGlvbnM+CisgICAgICAgICAgICA8L3BsdWdpbj4KKyAgICAgICAgICAgIDxwbHVnaW4+CisgICAgICAgICAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tZmFpbHNhZmUtcGx1Z2luPC9hcnRpZmFjdElkPgorICAgICAgICAgICAgICAgIDx2ZXJzaW9uPjIuNjwvdmVyc2lvbj4KKyAgICAgICAgICAgICAgICA8ZXhlY3V0aW9ucz4KKyAgICAgICAgICAgICAgICAgICAgPGV4ZWN1dGlvbj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxnb2Fscz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Z29hbD5pbnRlZ3JhdGlvbi10ZXN0PC9nb2FsPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnb2FsPnZlcmlmeTwvZ29hbD4KKyAgICAgICAgICAgICAgICAgICAgICAgIDwvZ29hbHM+CisgICAgICAgICAgICAgICAgICAgIDwvZXhlY3V0aW9uPgorICAgICAgICAgICAgICAgIDwvZXhlY3V0aW9ucz4KKyAgICAgICAgICAgIDwvcGx1Z2luPgorICAgICAgICA8L3BsdWdpbnM+CisgICAgPC9idWlsZD4KKzwvcHJvamVjdD4KZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9qZXRicmFpbnMva290bGluL2tvdGxpbi1hbm5vdGF0aW9uLXByb2Nlc3NpbmcvMC4xMi42MTMva290bGluLWFubm90YXRpb24tcHJvY2Vzc2luZy0wLjEyLjYxMy5wb20uc2hhMSBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9qZXRicmFpbnMva290bGluL2tvdGxpbi1hbm5vdGF0aW9uLXByb2Nlc3NpbmcvMC4xMi42MTMva290bGluLWFubm90YXRpb24tcHJvY2Vzc2luZy0wLjEyLjYxMy5wb20uc2hhMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNjY1NDUwCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2pldGJyYWlucy9rb3RsaW4va290bGluLWFubm90YXRpb24tcHJvY2Vzc2luZy8wLjEyLjYxMy9rb3RsaW4tYW5ub3RhdGlvbi1wcm9jZXNzaW5nLTAuMTIuNjEzLnBvbS5zaGExCkBAIC0wLDAgKzEgQEAKKzM5NzA2MmZlYjlkZDAzYWJmMGNkMGNmMjIzYTNmOWM4ZTdjNjIxY2MKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvamV0YnJhaW5zL2tvdGxpbi9rb3RsaW4tZ3JhZGxlLXBsdWdpbi1hcGkvMC4xMi42MTMva290bGluLWdyYWRsZS1wbHVnaW4tYXBpLTAuMTIuNjEzLmphciBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9qZXRicmFpbnMva290bGluL2tvdGxpbi1ncmFkbGUtcGx1Z2luLWFwaS8wLjEyLjYxMy9rb3RsaW4tZ3JhZGxlLXBsdWdpbi1hcGktMC4xMi42MTMuamFyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk3YmUzMDIKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvamV0YnJhaW5zL2tvdGxpbi9rb3RsaW4tZ3JhZGxlLXBsdWdpbi1hcGkvMC4xMi42MTMva290bGluLWdyYWRsZS1wbHVnaW4tYXBpLTAuMTIuNjEzLmphcgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvamV0YnJhaW5zL2tvdGxpbi9rb3RsaW4tZ3JhZGxlLXBsdWdpbi1hcGkvMC4xMi42MTMva290bGluLWdyYWRsZS1wbHVnaW4tYXBpLTAuMTIuNjEzLmphci5zaGExIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2pldGJyYWlucy9rb3RsaW4va290bGluLWdyYWRsZS1wbHVnaW4tYXBpLzAuMTIuNjEzL2tvdGxpbi1ncmFkbGUtcGx1Z2luLWFwaS0wLjEyLjYxMy5qYXIuc2hhMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iOWJmZGY0Ci0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2pldGJyYWlucy9rb3RsaW4va290bGluLWdyYWRsZS1wbHVnaW4tYXBpLzAuMTIuNjEzL2tvdGxpbi1ncmFkbGUtcGx1Z2luLWFwaS0wLjEyLjYxMy5qYXIuc2hhMQpAQCAtMCwwICsxIEBACis2ZWRiZWQ5M2VjMzhjNjMyZThhNTk4ZmVmMzE3MzkzZjU3MjUyYTAzClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2pldGJyYWlucy9rb3RsaW4va290bGluLWdyYWRsZS1wbHVnaW4tYXBpLzAuMTIuNjEzL2tvdGxpbi1ncmFkbGUtcGx1Z2luLWFwaS0wLjEyLjYxMy5wb20gYi9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvamV0YnJhaW5zL2tvdGxpbi9rb3RsaW4tZ3JhZGxlLXBsdWdpbi1hcGkvMC4xMi42MTMva290bGluLWdyYWRsZS1wbHVnaW4tYXBpLTAuMTIuNjEzLnBvbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MGFmNDI3Ci0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2pldGJyYWlucy9rb3RsaW4va290bGluLWdyYWRsZS1wbHVnaW4tYXBpLzAuMTIuNjEzL2tvdGxpbi1ncmFkbGUtcGx1Z2luLWFwaS0wLjEyLjYxMy5wb20KQEAgLTAsMCArMSw4MSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxwcm9qZWN0CisgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAgaHR0cDovL21hdmVuLmFwYWNoZS5vcmcveHNkL21hdmVuLTQuMC4wLnhzZCIKKyAgICB4bWxucz0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIj4KKworICAgIDxtb2RlbFZlcnNpb24+NC4wLjA8L21vZGVsVmVyc2lvbj4KKyAgICA8cHJvcGVydGllcz4KKyAgICAgICAgPG1hdmVuLXBsdWdpbi1hbm5vLnZlcnNpb24+MS40LjE8L21hdmVuLXBsdWdpbi1hbm5vLnZlcnNpb24+CisgICAgICAgIDxtYXZlbi52ZXJzaW9uPjMuMC40PC9tYXZlbi52ZXJzaW9uPgorICAgIDwvcHJvcGVydGllcz4KKworICAgIDxwYXJlbnQ+CisgICAgICAgIDxncm91cElkPm9yZy5qZXRicmFpbnMua290bGluPC9ncm91cElkPgorICAgICAgICA8YXJ0aWZhY3RJZD5rb3RsaW4tcHJvamVjdDwvYXJ0aWZhY3RJZD4KKyAgICAgICAgPHZlcnNpb24+MC4xMi42MTM8L3ZlcnNpb24+CisgICAgICAgIDxyZWxhdGl2ZVBhdGg+Li4vLi4vcG9tLnhtbDwvcmVsYXRpdmVQYXRoPgorICAgIDwvcGFyZW50PgorCisgICAgPGFydGlmYWN0SWQ+a290bGluLWdyYWRsZS1wbHVnaW4tYXBpPC9hcnRpZmFjdElkPgorICAgIDxwYWNrYWdpbmc+amFyPC9wYWNrYWdpbmc+CisKKyAgICA8ZGVzY3JpcHRpb24+R3JhZGxlIHBsdWdpbiBBUEkgZm9yIEtvdGxpbjwvZGVzY3JpcHRpb24+CisKKyAgICA8cmVwb3NpdG9yaWVzPgorICAgICAgICA8cmVwb3NpdG9yeT4KKyAgICAgICAgICAgIDxpZD5qZXRicmFpbnMtdXRpbHM8L2lkPgorICAgICAgICAgICAgPHVybD5odHRwOi8vcmVwb3NpdG9yeS5qZXRicmFpbnMuY29tL3V0aWxzPC91cmw+CisgICAgICAgIDwvcmVwb3NpdG9yeT4KKyAgICA8L3JlcG9zaXRvcmllcz4KKworICAgIDxkZXBlbmRlbmNpZXM+CisgICAgICAgIDxkZXBlbmRlbmN5PgorICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLmpldGJyYWlucy5rb3RsaW48L2dyb3VwSWQ+CisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5rb3RsaW4tc3RkbGliPC9hcnRpZmFjdElkPgorICAgICAgICAgICAgPHZlcnNpb24+JHtwcm9qZWN0LnZlcnNpb259PC92ZXJzaW9uPgorICAgICAgICA8L2RlcGVuZGVuY3k+CisgICAgICAgIDxkZXBlbmRlbmN5PgorICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLmpldGJyYWlucy5rb3RsaW48L2dyb3VwSWQ+CisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5ncmFkbGUtYXBpPC9hcnRpZmFjdElkPgorICAgICAgICAgICAgPHZlcnNpb24+MS42PC92ZXJzaW9uPgorICAgICAgICAgICAgPHNjb3BlPnByb3ZpZGVkPC9zY29wZT4KKyAgICAgICAgPC9kZXBlbmRlbmN5PgorICAgICAgICA8ZGVwZW5kZW5jeT4KKyAgICAgICAgICAgIDxncm91cElkPmNvbS5hbmRyb2lkLnRvb2xzLmJ1aWxkPC9ncm91cElkPgorICAgICAgICAgICAgPGFydGlmYWN0SWQ+Z3JhZGxlPC9hcnRpZmFjdElkPgorICAgICAgICAgICAgPHZlcnNpb24+MC40LjI8L3ZlcnNpb24+CisgICAgICAgICAgICA8c2NvcGU+cHJvdmlkZWQ8L3Njb3BlPgorICAgICAgICA8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmNpZXM+CisKKyAgICA8YnVpbGQ+CisgICAgICAgIDxzb3VyY2VEaXJlY3Rvcnk+JHtwcm9qZWN0LmJhc2VkaXJ9L3NyYy9tYWluL2tvdGxpbjwvc291cmNlRGlyZWN0b3J5PgorCisgICAgICAgIDxwbHVnaW5zPgorICAgICAgICAgICAgPHBsdWdpbj4KKyAgICAgICAgICAgICAgICA8YXJ0aWZhY3RJZD5rb3RsaW4tbWF2ZW4tcGx1Z2luPC9hcnRpZmFjdElkPgorICAgICAgICAgICAgICAgIDxncm91cElkPm9yZy5qZXRicmFpbnMua290bGluPC9ncm91cElkPgorICAgICAgICAgICAgICAgIDx2ZXJzaW9uPiR7cHJvamVjdC52ZXJzaW9ufTwvdmVyc2lvbj4KKyAgICAgICAgICAgICAgICA8Y29uZmlndXJhdGlvbj4KKyAgICAgICAgICAgICAgICAgICAgPGFubm90YXRpb25QYXRocz4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxhbm5vdGF0aW9uUGF0aD4ke2Jhc2VkaXJ9L2tvdGxpbkFubm90YXRpb248L2Fubm90YXRpb25QYXRoPgorICAgICAgICAgICAgICAgICAgICA8L2Fubm90YXRpb25QYXRocz4KKyAgICAgICAgICAgICAgICA8L2NvbmZpZ3VyYXRpb24+CisKKyAgICAgICAgICAgICAgICA8ZXhlY3V0aW9ucz4KKyAgICAgICAgICAgICAgICAgICAgPGV4ZWN1dGlvbj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxpZD5jb21waWxlPC9pZD4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxwaGFzZT5jb21waWxlPC9waGFzZT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxnb2Fscz4gPGdvYWw+Y29tcGlsZTwvZ29hbD4gPC9nb2Fscz4KKyAgICAgICAgICAgICAgICAgICAgPC9leGVjdXRpb24+CisKKyAgICAgICAgICAgICAgICAgICAgPGV4ZWN1dGlvbj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxpZD50ZXN0LWNvbXBpbGU8L2lkPgorICAgICAgICAgICAgICAgICAgICAgICAgPHBoYXNlPnRlc3QtY29tcGlsZTwvcGhhc2U+CisgICAgICAgICAgICAgICAgICAgICAgICA8Z29hbHM+IDxnb2FsPnRlc3QtY29tcGlsZTwvZ29hbD4gPC9nb2Fscz4KKyAgICAgICAgICAgICAgICAgICAgPC9leGVjdXRpb24+CisgICAgICAgICAgICAgICAgPC9leGVjdXRpb25zPgorICAgICAgICAgICAgPC9wbHVnaW4+CisgICAgICAgIDwvcGx1Z2lucz4KKyAgICA8L2J1aWxkPgorPC9wcm9qZWN0PgpkaWZmIC0tZ2l0IGEvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2pldGJyYWlucy9rb3RsaW4va290bGluLWdyYWRsZS1wbHVnaW4tYXBpLzAuMTIuNjEzL2tvdGxpbi1ncmFkbGUtcGx1Z2luLWFwaS0wLjEyLjYxMy5wb20uc2hhMSBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9qZXRicmFpbnMva290bGluL2tvdGxpbi1ncmFkbGUtcGx1Z2luLWFwaS8wLjEyLjYxMy9rb3RsaW4tZ3JhZGxlLXBsdWdpbi1hcGktMC4xMi42MTMucG9tLnNoYTEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWU0MGFkMwotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9qZXRicmFpbnMva290bGluL2tvdGxpbi1ncmFkbGUtcGx1Z2luLWFwaS8wLjEyLjYxMy9rb3RsaW4tZ3JhZGxlLXBsdWdpbi1hcGktMC4xMi42MTMucG9tLnNoYTEKQEAgLTAsMCArMSBAQAorNjU5MjgwYWZlNzU3NDJiNDE3NzQ3ZGRhZTVlZDFiNTgxMGU3NDJlNQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9qZXRicmFpbnMva290bGluL2tvdGxpbi1ncmFkbGUtcGx1Z2luLzAuMTIuNjEzL2tvdGxpbi1ncmFkbGUtcGx1Z2luLTAuMTIuNjEzLmphciBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9qZXRicmFpbnMva290bGluL2tvdGxpbi1ncmFkbGUtcGx1Z2luLzAuMTIuNjEzL2tvdGxpbi1ncmFkbGUtcGx1Z2luLTAuMTIuNjEzLmphcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYzNjODUwCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2pldGJyYWlucy9rb3RsaW4va290bGluLWdyYWRsZS1wbHVnaW4vMC4xMi42MTMva290bGluLWdyYWRsZS1wbHVnaW4tMC4xMi42MTMuamFyCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9qZXRicmFpbnMva290bGluL2tvdGxpbi1ncmFkbGUtcGx1Z2luLzAuMTIuNjEzL2tvdGxpbi1ncmFkbGUtcGx1Z2luLTAuMTIuNjEzLmphci5zaGExIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2pldGJyYWlucy9rb3RsaW4va290bGluLWdyYWRsZS1wbHVnaW4vMC4xMi42MTMva290bGluLWdyYWRsZS1wbHVnaW4tMC4xMi42MTMuamFyLnNoYTEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzcyYTIwMAotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9qZXRicmFpbnMva290bGluL2tvdGxpbi1ncmFkbGUtcGx1Z2luLzAuMTIuNjEzL2tvdGxpbi1ncmFkbGUtcGx1Z2luLTAuMTIuNjEzLmphci5zaGExCkBAIC0wLDAgKzEgQEAKK2VjYTFkZDBkYTU5YWUxOThhMDQ0ZmFmM2M5MjliN2JlNmUxZGJjY2UKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvamV0YnJhaW5zL2tvdGxpbi9rb3RsaW4tZ3JhZGxlLXBsdWdpbi8wLjEyLjYxMy9rb3RsaW4tZ3JhZGxlLXBsdWdpbi0wLjEyLjYxMy5wb20gYi9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvamV0YnJhaW5zL2tvdGxpbi9rb3RsaW4tZ3JhZGxlLXBsdWdpbi8wLjEyLjYxMy9rb3RsaW4tZ3JhZGxlLXBsdWdpbi0wLjEyLjYxMy5wb20KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZThiYzdkYQotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9qZXRicmFpbnMva290bGluL2tvdGxpbi1ncmFkbGUtcGx1Z2luLzAuMTIuNjEzL2tvdGxpbi1ncmFkbGUtcGx1Z2luLTAuMTIuNjEzLnBvbQpAQCAtMCwwICsxLDE3OCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxwcm9qZWN0CisgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL3hzZC9tYXZlbi00LjAuMC54c2QiCisgICAgICAgIHhtbG5zPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiPgorCisKKyAgICA8bW9kZWxWZXJzaW9uPjQuMC4wPC9tb2RlbFZlcnNpb24+CisgICAgPHByb3BlcnRpZXM+CisgICAgICAgIDxtYXZlbi52ZXJzaW9uPjMuMC40PC9tYXZlbi52ZXJzaW9uPgorICAgIDwvcHJvcGVydGllcz4KKworICAgIDxwYXJlbnQ+CisgICAgICAgIDxncm91cElkPm9yZy5qZXRicmFpbnMua290bGluPC9ncm91cElkPgorICAgICAgICA8YXJ0aWZhY3RJZD5rb3RsaW4tcHJvamVjdDwvYXJ0aWZhY3RJZD4KKyAgICAgICAgPHZlcnNpb24+MC4xMi42MTM8L3ZlcnNpb24+CisgICAgICAgIDxyZWxhdGl2ZVBhdGg+Li4vLi4vcG9tLnhtbDwvcmVsYXRpdmVQYXRoPgorICAgIDwvcGFyZW50PgorCisgICAgPGFydGlmYWN0SWQ+a290bGluLWdyYWRsZS1wbHVnaW48L2FydGlmYWN0SWQ+CisgICAgPHBhY2thZ2luZz5qYXI8L3BhY2thZ2luZz4KKworICAgIDxkZXBlbmRlbmNpZXM+CisgICAgICAgIDxkZXBlbmRlbmN5PgorICAgICAgICAgIDxncm91cElkPm9yZy5qZXRicmFpbnMua290bGluPC9ncm91cElkPgorICAgICAgICAgIDxhcnRpZmFjdElkPmtvdGxpbi1zdGRsaWI8L2FydGlmYWN0SWQ+CisgICAgICAgICAgPHZlcnNpb24+JHtwcm9qZWN0LnZlcnNpb259PC92ZXJzaW9uPgorICAgICAgICA8L2RlcGVuZGVuY3k+CisgICAgICAgIDxkZXBlbmRlbmN5PgorICAgICAgICAgICAgPGdyb3VwSWQ+Y29tLmFuZHJvaWQudG9vbHMuYnVpbGQ8L2dyb3VwSWQ+CisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5ncmFkbGU8L2FydGlmYWN0SWQ+CisgICAgICAgICAgICA8dmVyc2lvbj4xLjEuMDwvdmVyc2lvbj4KKyAgICAgICAgICAgIDxzY29wZT5wcm92aWRlZDwvc2NvcGU+CisgICAgICAgIDwvZGVwZW5kZW5jeT4KKyAgICAgICAgPGRlcGVuZGVuY3k+CisgICAgICAgICAgPGdyb3VwSWQ+b3JnLmpldGJyYWlucy5rb3RsaW48L2dyb3VwSWQ+CisgICAgICAgICAgPGFydGlmYWN0SWQ+Z3JhZGxlLWFwaTwvYXJ0aWZhY3RJZD4KKyAgICAgICAgICA8dmVyc2lvbj4yLjI8L3ZlcnNpb24+CisgICAgICAgICAgPHNjb3BlPnByb3ZpZGVkPC9zY29wZT4KKyAgICAgICAgPC9kZXBlbmRlbmN5PgorICAgICAgICA8ZGVwZW5kZW5jeT4KKyAgICAgICAgICAgIDxncm91cElkPm9yZy5qZXRicmFpbnMua290bGluPC9ncm91cElkPgorICAgICAgICAgICAgPGFydGlmYWN0SWQ+a2RvYzwvYXJ0aWZhY3RJZD4KKyAgICAgICAgICAgIDx2ZXJzaW9uPiR7cHJvamVjdC52ZXJzaW9ufTwvdmVyc2lvbj4KKyAgICAgICAgICAgIDxzY29wZT50ZXN0PC9zY29wZT4KKyAgICAgICAgPC9kZXBlbmRlbmN5PgorICAgICAgICA8ZGVwZW5kZW5jeT4KKyAgICAgICAgICAgIDxncm91cElkPm9yZy5qZXRicmFpbnMua290bGluPC9ncm91cElkPgorICAgICAgICAgICAgPGFydGlmYWN0SWQ+a290bGluLWdyYWRsZS1wbHVnaW4tY29yZTwvYXJ0aWZhY3RJZD4KKyAgICAgICAgICAgIDx2ZXJzaW9uPiR7cHJvamVjdC52ZXJzaW9ufTwvdmVyc2lvbj4KKyAgICAgICAgICAgIDxzY29wZT50ZXN0PC9zY29wZT4KKyAgICAgICAgPC9kZXBlbmRlbmN5PgorICAgICAgICA8ZGVwZW5kZW5jeT4KKyAgICAgICAgICAgIDxncm91cElkPm9yZy5qZXRicmFpbnMua290bGluPC9ncm91cElkPgorICAgICAgICAgICAgPGFydGlmYWN0SWQ+a290bGluLWdyYWRsZS1wbHVnaW4tYXBpPC9hcnRpZmFjdElkPgorICAgICAgICAgICAgPHZlcnNpb24+JHtwcm9qZWN0LnZlcnNpb259PC92ZXJzaW9uPgorICAgICAgICA8L2RlcGVuZGVuY3k+CisgICAgICAgIDxkZXBlbmRlbmN5PgorICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLmpldGJyYWlucy5rb3RsaW48L2dyb3VwSWQ+CisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5rb3RsaW4tZ3JhZGxlLXN1YnBsdWdpbi1leGFtcGxlPC9hcnRpZmFjdElkPgorICAgICAgICAgICAgPHZlcnNpb24+JHtwcm9qZWN0LnZlcnNpb259PC92ZXJzaW9uPgorICAgICAgICAgICAgPHNjb3BlPnRlc3Q8L3Njb3BlPgorICAgICAgICA8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmNpZXM+CisKKworICAgIDxidWlsZD4KKyAgICAgICAgPHNvdXJjZURpcmVjdG9yeT4ke3Byb2plY3QuYmFzZWRpcn0vc3JjL21haW4va290bGluPC9zb3VyY2VEaXJlY3Rvcnk+CisgICAgICAgIDx0ZXN0U291cmNlRGlyZWN0b3J5PiR7cHJvamVjdC5iYXNlZGlyfS9zcmMvdGVzdC9rb3RsaW48L3Rlc3RTb3VyY2VEaXJlY3Rvcnk+CisKKyAgICAgICAgPHJlc291cmNlcz4KKyAgICAgICAgICAgIDxyZXNvdXJjZT4KKyAgICAgICAgICAgICAgICA8ZGlyZWN0b3J5PiR7cHJvamVjdC5iYXNlZGlyfS9zcmMvbWFpbi9yZXNvdXJjZXM8L2RpcmVjdG9yeT4KKyAgICAgICAgICAgICAgPGZpbHRlcmluZz50cnVlPC9maWx0ZXJpbmc+CisgICAgICAgICAgICA8L3Jlc291cmNlPgorICAgICAgICA8L3Jlc291cmNlcz4KKworICAgICAgICA8cGx1Z2lucz4KKyAgICAgICAgICAgIDxwbHVnaW4+CisgICAgICAgICAgICAgICAgPGFydGlmYWN0SWQ+a290bGluLW1hdmVuLXBsdWdpbjwvYXJ0aWZhY3RJZD4KKyAgICAgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuamV0YnJhaW5zLmtvdGxpbjwvZ3JvdXBJZD4KKyAgICAgICAgICAgICAgICA8dmVyc2lvbj4ke3Byb2plY3QudmVyc2lvbn08L3ZlcnNpb24+CisgICAgICAgICAgICAgICAgPGNvbmZpZ3VyYXRpb24+CisgICAgICAgICAgICAgICAgICAgIDxhbm5vdGF0aW9uUGF0aHM+CisgICAgICAgICAgICAgICAgICAgICAgICA8YW5ub3RhdGlvblBhdGg+JHtiYXNlZGlyfS9rb3RsaW5Bbm5vdGF0aW9uPC9hbm5vdGF0aW9uUGF0aD4KKyAgICAgICAgICAgICAgICAgICAgPC9hbm5vdGF0aW9uUGF0aHM+CisgICAgICAgICAgICAgICAgPC9jb25maWd1cmF0aW9uPgorCisgICAgICAgICAgICAgICAgPGV4ZWN1dGlvbnM+CisgICAgICAgICAgICAgICAgICAgIDxleGVjdXRpb24+CisgICAgICAgICAgICAgICAgICAgICAgICA8aWQ+Y29tcGlsZTwvaWQ+CisgICAgICAgICAgICAgICAgICAgICAgICA8cGhhc2U+Y29tcGlsZTwvcGhhc2U+CisgICAgICAgICAgICAgICAgICAgICAgICA8Z29hbHM+IDxnb2FsPmNvbXBpbGU8L2dvYWw+IDwvZ29hbHM+CisgICAgICAgICAgICAgICAgICAgICAgICA8Y29uZmlndXJhdGlvbj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c291cmNlRGlycz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZURpcj4ke3Byb2plY3QuYmFzZWRpcn0vc3JjL21haW4va290bGluPC9zb3VyY2VEaXI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zb3VyY2VEaXJzPgorICAgICAgICAgICAgICAgICAgICAgICAgPC9jb25maWd1cmF0aW9uPgorICAgICAgICAgICAgICAgICAgICA8L2V4ZWN1dGlvbj4KKworICAgICAgICAgICAgICAgICAgICA8ZXhlY3V0aW9uPgorICAgICAgICAgICAgICAgICAgICAgICAgPGlkPnRlc3QtY29tcGlsZTwvaWQ+CisgICAgICAgICAgICAgICAgICAgICAgICA8cGhhc2U+dGVzdC1jb21waWxlPC9waGFzZT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxnb2Fscz4gPGdvYWw+dGVzdC1jb21waWxlPC9nb2FsPiA8L2dvYWxzPgorICAgICAgICAgICAgICAgICAgICA8L2V4ZWN1dGlvbj4KKyAgICAgICAgICAgICAgICA8L2V4ZWN1dGlvbnM+CisgICAgICAgICAgICA8L3BsdWdpbj4KKyAgICAgICAgICAgIDxwbHVnaW4+CisgICAgICAgICAgICAgICAgPCEtLSBJbnZva2VyIHBsdWdpbiBtYWludGFpbnMgbG9jYWwgbWF2ZW4gcmVwb3NpdG9yeSBpbiBsb2NhbC1yZXBvIGZvciBncmFkbGUgaW50ZWdyYXRpb24gdGVzdHMgLS0+CisgICAgICAgICAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4taW52b2tlci1wbHVnaW48L2FydGlmYWN0SWQ+CisgICAgICAgICAgICAgICAgPHZlcnNpb24+MS44PC92ZXJzaW9uPgorICAgICAgICAgICAgICAgIDxjb25maWd1cmF0aW9uPgorICAgICAgICAgICAgICAgICAgICA8Y2xvbmVQcm9qZWN0c1RvPiR7cHJvamVjdC5idWlsZC5kaXJlY3Rvcnl9L2l0PC9jbG9uZVByb2plY3RzVG8+CisgICAgICAgICAgICAgICAgICAgIDxsb2NhbFJlcG9zaXRvcnlQYXRoPmxvY2FsLXJlcG88L2xvY2FsUmVwb3NpdG9yeVBhdGg+CisgICAgICAgICAgICAgICAgICAgIDxwb3N0QnVpbGRIb29rU2NyaXB0PnZlcmlmeTwvcG9zdEJ1aWxkSG9va1NjcmlwdD4gPCEtLSBubyBleHRlbnNpb24gcmVxdWlyZWQgLS0+CisgICAgICAgICAgICAgICAgICAgIDxleHRyYUFydGlmYWN0cz4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxleHRyYUFydGlmYWN0Pm9yZy5qZXRicmFpbnMua290bGluOmtvdGxpbi1ncmFkbGUtcGx1Z2luLWNvcmU6JHtwcm9qZWN0LnZlcnNpb259PC9leHRyYUFydGlmYWN0PgorICAgICAgICAgICAgICAgICAgICAgICAgPGV4dHJhQXJ0aWZhY3Q+b3JnLmpldGJyYWlucy5rb3RsaW46a290bGluLWpkay1hbm5vdGF0aW9uczoke3Byb2plY3QudmVyc2lvbn08L2V4dHJhQXJ0aWZhY3Q+CisgICAgICAgICAgICAgICAgICAgICAgICA8ZXh0cmFBcnRpZmFjdD5vcmcuamV0YnJhaW5zLmtvdGxpbjprb3RsaW4tanMtbGlicmFyeToke3Byb2plY3QudmVyc2lvbn08L2V4dHJhQXJ0aWZhY3Q+CisgICAgICAgICAgICAgICAgICAgICAgICA8ZXh0cmFBcnRpZmFjdD5vcmcuamV0YnJhaW5zLmtvdGxpbjprb3RsaW4tYW5kcm9pZC1zZGstYW5ub3RhdGlvbnM6JHtwcm9qZWN0LnZlcnNpb259PC9leHRyYUFydGlmYWN0PgorICAgICAgICAgICAgICAgICAgICA8L2V4dHJhQXJ0aWZhY3RzPgorICAgICAgICAgICAgICAgIDwvY29uZmlndXJhdGlvbj4KKyAgICAgICAgICAgICAgICA8ZXhlY3V0aW9ucz4KKyAgICAgICAgICAgICAgICAgICAgPGV4ZWN1dGlvbj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxpZD5jcmVhdGVfbG9jYWw8L2lkPgorICAgICAgICAgICAgICAgICAgICAgICAgPHBoYXNlPnByZS1pbnRlZ3JhdGlvbi10ZXN0PC9waGFzZT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxnb2Fscz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Z29hbD5pbnN0YWxsPC9nb2FsPgorICAgICAgICAgICAgICAgICAgICAgICAgPC9nb2Fscz4KKyAgICAgICAgICAgICAgICAgICAgPC9leGVjdXRpb24+CisgICAgICAgICAgICAgICAgPC9leGVjdXRpb25zPgorICAgICAgICAgICAgPC9wbHVnaW4+CisgICAgICAgICAgICA8cGx1Z2luPgorICAgICAgICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLWZhaWxzYWZlLXBsdWdpbjwvYXJ0aWZhY3RJZD4KKyAgICAgICAgICAgICAgICA8dmVyc2lvbj4yLjY8L3ZlcnNpb24+CisgICAgICAgICAgICAgICAgPGV4ZWN1dGlvbnM+CisgICAgICAgICAgICAgICAgICAgIDxleGVjdXRpb24+CisgICAgICAgICAgICAgICAgICAgICAgICA8Z29hbHM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGdvYWw+aW50ZWdyYXRpb24tdGVzdDwvZ29hbD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Z29hbD52ZXJpZnk8L2dvYWw+CisgICAgICAgICAgICAgICAgICAgICAgICA8L2dvYWxzPgorICAgICAgICAgICAgICAgICAgICA8L2V4ZWN1dGlvbj4KKyAgICAgICAgICAgICAgICA8L2V4ZWN1dGlvbnM+CisgICAgICAgICAgICA8L3BsdWdpbj4KKyAgICAgICAgICAgIDxwbHVnaW4+CisgICAgICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLmNvZGVoYXVzLmdtYXZlbjwvZ3JvdXBJZD4KKyAgICAgICAgICAgICAgICA8YXJ0aWZhY3RJZD5nbWF2ZW4tcGx1Z2luPC9hcnRpZmFjdElkPgorICAgICAgICAgICAgICAgIDx2ZXJzaW9uPjEuNTwvdmVyc2lvbj4KKyAgICAgICAgICAgICAgICA8Y29uZmlndXJhdGlvbj4KKyAgICAgICAgICAgICAgICAgICAgPHByb3ZpZGVyU2VsZWN0aW9uPjIuMDwvcHJvdmlkZXJTZWxlY3Rpb24+CisgICAgICAgICAgICAgICAgICAgIDxzb3VyY2UvPgorICAgICAgICAgICAgICAgIDwvY29uZmlndXJhdGlvbj4KKyAgICAgICAgICAgICAgICA8ZXhlY3V0aW9ucz4KKyAgICAgICAgICAgICAgICAgICAgPGV4ZWN1dGlvbj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxwaGFzZT5wcm9jZXNzLXNvdXJjZXM8L3BoYXNlPgorICAgICAgICAgICAgICAgICAgICAgICAgPGdvYWxzPiA8Z29hbD5jb21waWxlPC9nb2FsPjwvZ29hbHM+CisgICAgICAgICAgICAgICAgICAgICAgICA8Y29uZmlndXJhdGlvbj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c291cmNlcz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGVzZXQ+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGlyZWN0b3J5PiR7cHJvamVjdC5iYXNlZGlyfS9zcmMvbWFpbi9rb3RsaW48L2RpcmVjdG9yeT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbmNsdWRlcz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5jbHVkZT4qKi8qLmdyb292eTwvaW5jbHVkZT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaW5jbHVkZXM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmlsZXNldD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NvdXJjZXM+CisgICAgICAgICAgICAgICAgICAgICAgICA8L2NvbmZpZ3VyYXRpb24+CisgICAgICAgICAgICAgICAgICAgIDwvZXhlY3V0aW9uPgorICAgICAgICAgICAgICAgIDwvZXhlY3V0aW9ucz4KKyAgICAgICAgICAgIDwvcGx1Z2luPgorICAgICAgICA8L3BsdWdpbnM+CisgICAgPC9idWlsZD4KKworICAgIDxyZXBvc2l0b3JpZXM+CisgICAgICAgIDxyZXBvc2l0b3J5PgorICAgICAgICAgICAgPGlkPmpldGJyYWlucy11dGlsczwvaWQ+CisgICAgICAgICAgICA8dXJsPmh0dHA6Ly9yZXBvc2l0b3J5LmpldGJyYWlucy5jb20vdXRpbHM8L3VybD4KKyAgICAgICAgPC9yZXBvc2l0b3J5PgorICAgIDwvcmVwb3NpdG9yaWVzPgorPC9wcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9qZXRicmFpbnMva290bGluL2tvdGxpbi1ncmFkbGUtcGx1Z2luLzAuMTIuNjEzL2tvdGxpbi1ncmFkbGUtcGx1Z2luLTAuMTIuNjEzLnBvbS5zaGExIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2pldGJyYWlucy9rb3RsaW4va290bGluLWdyYWRsZS1wbHVnaW4vMC4xMi42MTMva290bGluLWdyYWRsZS1wbHVnaW4tMC4xMi42MTMucG9tLnNoYTEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDhiM2I2MgotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9qZXRicmFpbnMva290bGluL2tvdGxpbi1ncmFkbGUtcGx1Z2luLzAuMTIuNjEzL2tvdGxpbi1ncmFkbGUtcGx1Z2luLTAuMTIuNjEzLnBvbS5zaGExCkBAIC0wLDAgKzEgQEAKKzdjYTNhOTliN2UzYmEwODE1NDc5MDVlYmYyM2IyMTQ2OWU0ODAxZWQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvamV0YnJhaW5zL2tvdGxpbi9rb3RsaW4tcHJvamVjdC8wLjEyLjYxMy9fcmVtb3RlLnJlcG9zaXRvcmllcyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9qZXRicmFpbnMva290bGluL2tvdGxpbi1wcm9qZWN0LzAuMTIuNjEzL19yZW1vdGUucmVwb3NpdG9yaWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE1ZGEyNTUKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvamV0YnJhaW5zL2tvdGxpbi9rb3RsaW4tcHJvamVjdC8wLjEyLjYxMy9fcmVtb3RlLnJlcG9zaXRvcmllcwpAQCAtMCwwICsxLDMgQEAKKyNOT1RFOiBUaGlzIGlzIGFuIEFldGhlciBpbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiBmaWxlLCBpdHMgZm9ybWF0IGNhbiBiZSBjaGFuZ2VkIHdpdGhvdXQgcHJpb3Igbm90aWNlLgorI1dlZCBKdWwgMjIgMTQ6MjI6MzEgUERUIDIwMTUKK2tvdGxpbi1wcm9qZWN0LTAuMTIuNjEzLnBvbT5jZW50cmFsPQpkaWZmIC0tZ2l0IGEvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2pldGJyYWlucy9rb3RsaW4va290bGluLXByb2plY3QvMC4xMi42MTMva290bGluLXByb2plY3QtMC4xMi42MTMucG9tIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2pldGJyYWlucy9rb3RsaW4va290bGluLXByb2plY3QvMC4xMi42MTMva290bGluLXByb2plY3QtMC4xMi42MTMucG9tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZiODVmMjAKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvamV0YnJhaW5zL2tvdGxpbi9rb3RsaW4tcHJvamVjdC8wLjEyLjYxMy9rb3RsaW4tcHJvamVjdC0wLjEyLjYxMy5wb20KQEAgLTAsMCArMSwyNjIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cHJvamVjdAorICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCBodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy94c2QvbWF2ZW4tNC4wLjAueHNkIgorICAgICAgICB4bWxucz0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIj4KKworICAgIDxtb2RlbFZlcnNpb24+NC4wLjA8L21vZGVsVmVyc2lvbj4KKworICAgIDxncm91cElkPm9yZy5qZXRicmFpbnMua290bGluPC9ncm91cElkPgorICAgIDxhcnRpZmFjdElkPmtvdGxpbi1wcm9qZWN0PC9hcnRpZmFjdElkPgorICAgIDx2ZXJzaW9uPjAuMTIuNjEzPC92ZXJzaW9uPgorICAgIDxwYWNrYWdpbmc+cG9tPC9wYWNrYWdpbmc+CisKKyAgICA8bmFtZT5Lb3RsaW48L25hbWU+CisgICAgPGRlc2NyaXB0aW9uPktvdGxpbiBpcyBhIHN0YXRpY2FsbHkgdHlwZWQgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgdGhhdCBjb21waWxlcyB0byBKVk0gYnl0ZSBjb2RlcyBhbmQgSmF2YVNjcmlwdDwvZGVzY3JpcHRpb24+CisgICAgPHVybD5odHRwOi8va290bGlubGFuZy5vcmcvPC91cmw+CisKKyAgICA8bGljZW5zZXM+CisgICAgICAgIDxsaWNlbnNlPgorICAgICAgICAgICAgPG5hbWU+VGhlIEFwYWNoZSBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDIuMDwvbmFtZT4KKyAgICAgICAgICAgIDx1cmw+aHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLnR4dDwvdXJsPgorICAgICAgICAgICAgPGRpc3RyaWJ1dGlvbj5yZXBvPC9kaXN0cmlidXRpb24+CisgICAgICAgICAgICA8Y29tbWVudHM+QSBidXNpbmVzcy1mcmllbmRseSBPU1MgbGljZW5zZTwvY29tbWVudHM+CisgICAgICAgIDwvbGljZW5zZT4KKyAgICA8L2xpY2Vuc2VzPgorCisgICAgPHNjbT4KKyAgICAgICAgPHVybD5odHRwczovL2dpdGh1Yi5jb20vSmV0QnJhaW5zL2tvdGxpbjwvdXJsPgorICAgICAgICA8Y29ubmVjdGlvbj5zY206Z2l0Omh0dHBzOi8vZ2l0aHViLmNvbS9KZXRCcmFpbnMva290bGluLmdpdDwvY29ubmVjdGlvbj4KKyAgICAgICAgPGRldmVsb3BlckNvbm5lY3Rpb24+c2NtOmdpdDpodHRwczovL2dpdGh1Yi5jb20vSmV0QnJhaW5zL2tvdGxpbi5naXQ8L2RldmVsb3BlckNvbm5lY3Rpb24+CisgICAgPC9zY20+CisKKyAgICA8ZGV2ZWxvcGVycz4KKyAgICAgICAgPGRldmVsb3Blcj4KKyAgICAgICAgICAgIDxpZD5KZXRCcmFpbnM8L2lkPgorICAgICAgICAgICAgPG5hbWU+SmV0QnJhaW5zIFRlYW08L25hbWU+CisgICAgICAgICAgICA8b3JnYW5pemF0aW9uPkpldEJyYWluczwvb3JnYW5pemF0aW9uPgorICAgICAgICAgICAgPG9yZ2FuaXphdGlvblVybD5odHRwOi8vd3d3LmpldGJyYWlucy5jb208L29yZ2FuaXphdGlvblVybD4KKyAgICAgICAgPC9kZXZlbG9wZXI+CisgICAgPC9kZXZlbG9wZXJzPgorCisgICAgPHByb3BlcnRpZXM+CisgICAgICAgIDxwcm9qZWN0LmJ1aWxkLnNvdXJjZUVuY29kaW5nPlVURi04PC9wcm9qZWN0LmJ1aWxkLnNvdXJjZUVuY29kaW5nPgorICAgICAgICA8cHJvamVjdC1yb290Pi4uLy4uLy4uPC9wcm9qZWN0LXJvb3Q+CisKKyAgICAgICAgPGp1bml0LXZlcnNpb24+NC4xMTwvanVuaXQtdmVyc2lvbj4KKyAgICAgICAgPHBlZ2Rvd24udmVyc2lvbj4xLjEuMDwvcGVnZG93bi52ZXJzaW9uPgorICAgICAgICA8c3VyZWZpcmUtdmVyc2lvbj4yLjE2PC9zdXJlZmlyZS12ZXJzaW9uPgorICAgICAgICA8ZXhlYy1tYXZlbi1wbHVnaW4udmVyc2lvbj4xLjIuMTwvZXhlYy1tYXZlbi1wbHVnaW4udmVyc2lvbj4KKyAgICAgICAgPHNlbGVuaXVtLnZlcnNpb24+Mi4zNy4xPC9zZWxlbml1bS52ZXJzaW9uPgorCisgICAgICAgIDxrb3RsaW4tZGlzdD4ke3Byb2plY3Qtcm9vdH0vZGlzdDwva290bGluLWRpc3Q+CisgICAgICAgIDxrb3RsaW4tc2RrPiR7a290bGluLWRpc3R9L2tvdGxpbmM8L2tvdGxpbi1zZGs+CisKKyAgICAgICAgPG1hdmVuLmNvbXBpbGVyLnNvdXJjZT4xLjY8L21hdmVuLmNvbXBpbGVyLnNvdXJjZT4KKyAgICAgICAgPG1hdmVuLmNvbXBpbGVyLnRhcmdldD4xLjY8L21hdmVuLmNvbXBpbGVyLnRhcmdldD4KKyAgICA8L3Byb3BlcnRpZXM+CisKKyAgICA8cHJlcmVxdWlzaXRlcz4KKyAgICAgICAgPG1hdmVuPjMuMC4yPC9tYXZlbj4KKyAgICA8L3ByZXJlcXVpc2l0ZXM+CisKKyAgICA8ZGlzdHJpYnV0aW9uTWFuYWdlbWVudD4KKyAgICAgICAgPHJlcG9zaXRvcnk+CisgICAgICAgICAgICA8aWQ+c29uYXR5cGUtbmV4dXMtc25hcHNob3RzPC9pZD4KKyAgICAgICAgICAgIDx1cmw+aHR0cDovL29zcy5zb25hdHlwZS5vcmcvc2VydmljZS9sb2NhbC9zdGFnaW5nL2RlcGxveS9tYXZlbjIvPC91cmw+CisgICAgICAgIDwvcmVwb3NpdG9yeT4KKyAgICAgICAgPHNuYXBzaG90UmVwb3NpdG9yeT4KKyAgICAgICAgICAgIDxpZD5zb25hdHlwZS1uZXh1cy1zdGFnaW5nPC9pZD4KKyAgICAgICAgICAgIDx1cmw+aHR0cHM6Ly9vc3Muc29uYXR5cGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL3NuYXBzaG90cy88L3VybD4KKyAgICAgICAgPC9zbmFwc2hvdFJlcG9zaXRvcnk+CisgICAgPC9kaXN0cmlidXRpb25NYW5hZ2VtZW50PgorCisgICAgPG1vZHVsZXM+CisgICAgICAgIDxtb2R1bGU+dG9vbHMva290bGluLWNvbXBpbGVyPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGU+dG9vbHMva290bGluLWpkay1hbm5vdGF0aW9uczwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlPnRvb2xzL2tvdGxpbi1hbmRyb2lkLXNkay1hbm5vdGF0aW9uczwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlPnRvb2xzL2tvdGxpbi1tYXZlbi1wbHVnaW48L21vZHVsZT4KKworICAgICAgICA8bW9kdWxlPnRvb2xzL3J1bnRpbWU8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZT5zdGRsaWI8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZT5zdGRsaWIvdmFsaWRhdG9yPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGU+dG9vbHMva290bGluLXJlZmxlY3Q8L21vZHVsZT4KKworICAgICAgICA8IS0tTkIhIGtvdGxpbi1qcy1saWJyYXJ5IHNob3VsZCBiZSBidWlsdCBiZWZvcmUga290bGluLWdyYWRsZS1wbHVnaW4tLT4KKyAgICAgICAgPCEtLWJlY2F1c2UgaXQgaXMgdXNlZCBpbiB0ZXN0cyBidXQgY2Fubm90IGJlIGFkZGVkIGFzIHRlc3QtZGVwZW5kZW5jeS0tPgorICAgICAgICA8IS0tKGtvdGxpbi1ncmFkbGUtcGx1Z2luIG1vZHVsZSB3aWxsIGJlIHJlY29nbml6ZWQgYXMga290bGluLWpzIG1vZHVsZSktLT4KKyAgICAgICAgPG1vZHVsZT50b29scy9rb3RsaW4tanMtbGlicmFyeTwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlPnRvb2xzL2tvdGxpbi1hbm5vdGF0aW9uLXByb2Nlc3Npbmc8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZT50b29scy9rb3RsaW4tZ3JhZGxlLXBsdWdpbjwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlPnRvb2xzL2tvdGxpbi1ncmFkbGUtcGx1Z2luLWNvcmU8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZT50b29scy9rb3RsaW4tZ3JhZGxlLXBsdWdpbi1hcGk8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZT50b29scy9rb3RsaW4tYW5kcm9pZC1leHRlbnNpb25zPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGU+dG9vbHMva290bGluLW1hdmVuLXBsdWdpbi10ZXN0PC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGU+dG9vbHMva290bGluLWpzLXRlc3RzPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGU+dG9vbHMva290bGluLWpzLXRlc3RzLWp1bml0PC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGU+dG9vbHMva2RvYzwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlPnRvb2xzL2tkb2MtbWF2ZW4tcGx1Z2luPC9tb2R1bGU+CisKKyAgICAgICAgPG1vZHVsZT5rdW5pdDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlPmtvdGxpbi1qZGJjPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGU+a290bGluLXN3aW5nPC9tb2R1bGU+CisKKyAgICAgICAgPG1vZHVsZT5leGFtcGxlcy9rb3RsaW4tamF2YS1leGFtcGxlPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGU+ZXhhbXBsZXMvanMtZXhhbXBsZTwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlPmV4YW1wbGVzL2tvdGxpbi1qcy1saWJyYXJ5LWV4YW1wbGU8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZT5leGFtcGxlcy9icm93c2VyLWV4YW1wbGU8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZT5leGFtcGxlcy9icm93c2VyLWV4YW1wbGUtd2l0aC1saWJyYXJ5PC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGU+ZXhhbXBsZXMva290bGluLWdyYWRsZS1zdWJwbHVnaW4tZXhhbXBsZTwvbW9kdWxlPgorICAgIDwvbW9kdWxlcz4KKworICAgIDxkZXBlbmRlbmNpZXM+CisgICAgICAgIDxkZXBlbmRlbmN5PgorICAgICAgICAgICAgPGdyb3VwSWQ+anVuaXQ8L2dyb3VwSWQ+CisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5qdW5pdDwvYXJ0aWZhY3RJZD4KKyAgICAgICAgICAgIDx2ZXJzaW9uPiR7anVuaXQtdmVyc2lvbn08L3ZlcnNpb24+CisgICAgICAgICAgICA8c2NvcGU+dGVzdDwvc2NvcGU+CisgICAgICAgIDwvZGVwZW5kZW5jeT4KKyAgICA8L2RlcGVuZGVuY2llcz4KKworICAgIDxidWlsZD4KKyAgICAgICAgPHBsdWdpbk1hbmFnZW1lbnQ+CisgICAgICAgICAgICA8cGx1Z2lucz4KKyAgICAgICAgICAgICAgICA8cGx1Z2luPgorICAgICAgICAgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+CisgICAgICAgICAgICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLWNvbXBpbGVyLXBsdWdpbjwvYXJ0aWZhY3RJZD4KKyAgICAgICAgICAgICAgICAgICAgPHZlcnNpb24+Mi4zLjI8L3ZlcnNpb24+CisgICAgICAgICAgICAgICAgICAgIDxjb25maWd1cmF0aW9uPgorICAgICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZT4ke21hdmVuLmNvbXBpbGVyLnNvdXJjZX08L3NvdXJjZT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDx0YXJnZXQ+JHttYXZlbi5jb21waWxlci50YXJnZXR9PC90YXJnZXQ+CisgICAgICAgICAgICAgICAgICAgIDwvY29uZmlndXJhdGlvbj4KKyAgICAgICAgICAgICAgICA8L3BsdWdpbj4KKyAgICAgICAgICAgICAgICA8cGx1Z2luPgorICAgICAgICAgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+CisgICAgICAgICAgICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLXNvdXJjZS1wbHVnaW48L2FydGlmYWN0SWQ+CisgICAgICAgICAgICAgICAgICAgIDx2ZXJzaW9uPjIuMS4yPC92ZXJzaW9uPgorICAgICAgICAgICAgICAgIDwvcGx1Z2luPgorICAgICAgICAgICAgICAgIDxwbHVnaW4+CisgICAgICAgICAgICAgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4KKyAgICAgICAgICAgICAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tamF2YWRvYy1wbHVnaW48L2FydGlmYWN0SWQ+CisgICAgICAgICAgICAgICAgICAgIDx2ZXJzaW9uPjIuOTwvdmVyc2lvbj4KKyAgICAgICAgICAgICAgICA8L3BsdWdpbj4KKyAgICAgICAgICAgICAgICA8cGx1Z2luPgorICAgICAgICAgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+CisgICAgICAgICAgICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLWRlcGxveS1wbHVnaW48L2FydGlmYWN0SWQ+CisgICAgICAgICAgICAgICAgICAgIDx2ZXJzaW9uPjIuNzwvdmVyc2lvbj4KKyAgICAgICAgICAgICAgICA8L3BsdWdpbj4KKyAgICAgICAgICAgICAgICA8cGx1Z2luPgorICAgICAgICAgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuY29kZWhhdXMubW9qbzwvZ3JvdXBJZD4KKyAgICAgICAgICAgICAgICAgICAgPGFydGlmYWN0SWQ+YnVpbGQtaGVscGVyLW1hdmVuLXBsdWdpbjwvYXJ0aWZhY3RJZD4KKyAgICAgICAgICAgICAgICAgICAgPHZlcnNpb24+MS43PC92ZXJzaW9uPgorICAgICAgICAgICAgICAgIDwvcGx1Z2luPgorICAgICAgICAgICAgPC9wbHVnaW5zPgorICAgICAgICA8L3BsdWdpbk1hbmFnZW1lbnQ+CisKKyAgICAgICAgPHBsdWdpbnM+CisgICAgICAgICAgICA8cGx1Z2luPgorICAgICAgICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLXN1cmVmaXJlLXBsdWdpbjwvYXJ0aWZhY3RJZD4KKyAgICAgICAgICAgICAgICA8dmVyc2lvbj4ke3N1cmVmaXJlLXZlcnNpb259PC92ZXJzaW9uPgorICAgICAgICAgICAgICAgIDxjb25maWd1cmF0aW9uPgorICAgICAgICAgICAgICAgICAgICA8Zm9ya01vZGU+b25jZTwvZm9ya01vZGU+CisgICAgICAgICAgICAgICAgICAgIDx1c2VTeXN0ZW1DbGFzc0xvYWRlcj5mYWxzZTwvdXNlU3lzdGVtQ2xhc3NMb2FkZXI+CisgICAgICAgICAgICAgICAgICAgIDx1c2VNYW5pZmVzdE9ubHlKYXI+ZmFsc2U8L3VzZU1hbmlmZXN0T25seUphcj4KKyAgICAgICAgICAgICAgICAgICAgPGZhaWxJZk5vVGVzdHM+ZmFsc2U8L2ZhaWxJZk5vVGVzdHM+CisgICAgICAgICAgICAgICAgICAgIDxpbmNsdWRlcz4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxpbmNsdWRlPioqLypUZXN0Lio8L2luY2x1ZGU+CisgICAgICAgICAgICAgICAgICAgIDwvaW5jbHVkZXM+CisgICAgICAgICAgICAgICAgICAgIDxleGNsdWRlcz4KKyAgICAgICAgICAgICAgICAgICAgPC9leGNsdWRlcz4KKyAgICAgICAgICAgICAgICAgICAgPHN5c3RlbVByb3BlcnRpZXM+CisgICAgICAgICAgICAgICAgICAgICAgICA8cHJvamVjdC52ZXJzaW9uPiR7cHJvamVjdC52ZXJzaW9ufTwvcHJvamVjdC52ZXJzaW9uPgorICAgICAgICAgICAgICAgICAgICA8L3N5c3RlbVByb3BlcnRpZXM+CisgICAgICAgICAgICAgICAgPC9jb25maWd1cmF0aW9uPgorICAgICAgICAgICAgPC9wbHVnaW4+CisKKyAgICAgICAgICAgIDxwbHVnaW4+CisgICAgICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPgorICAgICAgICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLXNvdXJjZS1wbHVnaW48L2FydGlmYWN0SWQ+CisgICAgICAgICAgICAgICAgPGNvbmZpZ3VyYXRpb24+CisgICAgICAgICAgICAgICAgPC9jb25maWd1cmF0aW9uPgorICAgICAgICAgICAgICAgIDxleGVjdXRpb25zPgorICAgICAgICAgICAgICAgICAgICA8ZXhlY3V0aW9uPgorICAgICAgICAgICAgICAgICAgICAgICAgPHBoYXNlPnBhY2thZ2U8L3BoYXNlPgorICAgICAgICAgICAgICAgICAgICAgICAgPGlkPmF0dGFjaC1zb3VyY2VzPC9pZD4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxnb2Fscz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Z29hbD5qYXItbm8tZm9yazwvZ29hbD4KKyAgICAgICAgICAgICAgICAgICAgICAgIDwvZ29hbHM+CisgICAgICAgICAgICAgICAgICAgIDwvZXhlY3V0aW9uPgorICAgICAgICAgICAgICAgIDwvZXhlY3V0aW9ucz4KKyAgICAgICAgICAgIDwvcGx1Z2luPgorCisgICAgICAgICAgICA8cGx1Z2luPgorICAgICAgICAgICAgICAgIDxncm91cElkPm9yZy5jb2RlaGF1cy5tb2pvPC9ncm91cElkPgorICAgICAgICAgICAgICAgIDxhcnRpZmFjdElkPmJ1aWxkLWhlbHBlci1tYXZlbi1wbHVnaW48L2FydGlmYWN0SWQ+CisgICAgICAgICAgICAgICAgPGV4ZWN1dGlvbnM+CisgICAgICAgICAgICAgICAgICAgIDxleGVjdXRpb24+CisgICAgICAgICAgICAgICAgICAgICAgICA8aWQ+YXR0YWNoLWVtcHR5LWphdmFkb2M8L2lkPgorICAgICAgICAgICAgICAgICAgICAgICAgPHBoYXNlPnByZXBhcmUtcGFja2FnZTwvcGhhc2U+CisgICAgICAgICAgICAgICAgICAgICAgICA8Z29hbHM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGdvYWw+YXR0YWNoLWFydGlmYWN0PC9nb2FsPgorICAgICAgICAgICAgICAgICAgICAgICAgPC9nb2Fscz4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxjb25maWd1cmF0aW9uPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhcnRpZmFjdHM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhcnRpZmFjdD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlPiR7aGlnaGVzdC1iYXNlZGlyfS9saWIvZW1wdHktamF2YWRvYy5qYXI8L2ZpbGU+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHlwZT5qYXI8L3R5cGU+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xhc3NpZmllcj5qYXZhZG9jPC9jbGFzc2lmaWVyPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2FydGlmYWN0PgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXJ0aWZhY3RzPgorICAgICAgICAgICAgICAgICAgICAgICAgPC9jb25maWd1cmF0aW9uPgorICAgICAgICAgICAgICAgICAgICA8L2V4ZWN1dGlvbj4KKyAgICAgICAgICAgICAgICA8L2V4ZWN1dGlvbnM+CisgICAgICAgICAgICA8L3BsdWdpbj4KKworICAgICAgICAgICAgPHBsdWdpbj4KKyAgICAgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuY29tbW9uamF2YS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPgorICAgICAgICAgICAgICAgIDxhcnRpZmFjdElkPmRpcmVjdG9yeS1tYXZlbi1wbHVnaW48L2FydGlmYWN0SWQ+CisgICAgICAgICAgICAgICAgPHZlcnNpb24+MC4xPC92ZXJzaW9uPgorICAgICAgICAgICAgICAgIDxleGVjdXRpb25zPgorICAgICAgICAgICAgICAgICAgICA8ZXhlY3V0aW9uPgorICAgICAgICAgICAgICAgICAgICAgICAgPGlkPmRpcmVjdG9yaWVzPC9pZD4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxnb2Fscz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Z29hbD5oaWdoZXN0LWJhc2VkaXI8L2dvYWw+CisgICAgICAgICAgICAgICAgICAgICAgICA8L2dvYWxzPgorICAgICAgICAgICAgICAgICAgICAgICAgPHBoYXNlPmluaXRpYWxpemU8L3BoYXNlPgorICAgICAgICAgICAgICAgICAgICAgICAgPGNvbmZpZ3VyYXRpb24+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHByb3BlcnR5PmhpZ2hlc3QtYmFzZWRpcjwvcHJvcGVydHk+CisgICAgICAgICAgICAgICAgICAgICAgICA8L2NvbmZpZ3VyYXRpb24+CisgICAgICAgICAgICAgICAgICAgIDwvZXhlY3V0aW9uPgorICAgICAgICAgICAgICAgIDwvZXhlY3V0aW9ucz4KKyAgICAgICAgICAgIDwvcGx1Z2luPgorCisgICAgICAgIDwvcGx1Z2lucz4KKyAgICA8L2J1aWxkPgorCisgICAgPHByb2ZpbGVzPgorICAgICAgICA8cHJvZmlsZT4KKyAgICAgICAgICAgIDxpZD5zaWduLWFydGlmYWN0czwvaWQ+CisgICAgICAgICAgICA8YnVpbGQ+CisgICAgICAgICAgICAgICAgPHBsdWdpbnM+CisgICAgICAgICAgICAgICAgICAgIDxwbHVnaW4+CisgICAgICAgICAgICAgICAgICAgICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1ncGctcGx1Z2luPC9hcnRpZmFjdElkPgorICAgICAgICAgICAgICAgICAgICAgICAgPHZlcnNpb24+MS40PC92ZXJzaW9uPgorICAgICAgICAgICAgICAgICAgICAgICAgPGNvbmZpZ3VyYXRpb24+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhc3NwaHJhc2U+JHtrb3RsaW4ua2V5LnBhc3NwaHJhc2V9PC9wYXNzcGhyYXNlPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxrZXluYW1lPiR7a290bGluLmtleS5uYW1lfTwva2V5bmFtZT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aG9tZWRpcj4ke2hpZ2hlc3QtYmFzZWRpcn0vLmdudXBnPC9ob21lZGlyPgorICAgICAgICAgICAgICAgICAgICAgICAgPC9jb25maWd1cmF0aW9uPgorICAgICAgICAgICAgICAgICAgICAgICAgPGV4ZWN1dGlvbnM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGV4ZWN1dGlvbj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlkPnNpZ24tYXJ0aWZhY3RzPC9pZD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBoYXNlPnZlcmlmeTwvcGhhc2U+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnb2Fscz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnb2FsPnNpZ248L2dvYWw+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZ29hbHM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9leGVjdXRpb24+CisgICAgICAgICAgICAgICAgICAgICAgICA8L2V4ZWN1dGlvbnM+CisgICAgICAgICAgICAgICAgICAgIDwvcGx1Z2luPgorICAgICAgICAgICAgICAgIDwvcGx1Z2lucz4KKyAgICAgICAgICAgIDwvYnVpbGQ+CisgICAgICAgIDwvcHJvZmlsZT4KKyAgICA8L3Byb2ZpbGVzPgorPC9wcm9qZWN0PgpkaWZmIC0tZ2l0IGEvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2pldGJyYWlucy9rb3RsaW4va290bGluLXByb2plY3QvMC4xMi42MTMva290bGluLXByb2plY3QtMC4xMi42MTMucG9tLnNoYTEgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvamV0YnJhaW5zL2tvdGxpbi9rb3RsaW4tcHJvamVjdC8wLjEyLjYxMy9rb3RsaW4tcHJvamVjdC0wLjEyLjYxMy5wb20uc2hhMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMzZjOWNmCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2pldGJyYWlucy9rb3RsaW4va290bGluLXByb2plY3QvMC4xMi42MTMva290bGluLXByb2plY3QtMC4xMi42MTMucG9tLnNoYTEKQEAgLTAsMCArMSBAQAorMDczZTc1NWZlNDY3NWZmYzU1NTM4MGI5MzBiYTVmMDkzYmMyYTc5NwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9qZXRicmFpbnMva290bGluL2tvdGxpbi1ydW50aW1lLzAuMTIuNjEzL2tvdGxpbi1ydW50aW1lLTAuMTIuNjEzLmphciBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9qZXRicmFpbnMva290bGluL2tvdGxpbi1ydW50aW1lLzAuMTIuNjEzL2tvdGxpbi1ydW50aW1lLTAuMTIuNjEzLmphcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NDMxMWQ3Ci0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2pldGJyYWlucy9rb3RsaW4va290bGluLXJ1bnRpbWUvMC4xMi42MTMva290bGluLXJ1bnRpbWUtMC4xMi42MTMuamFyCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9qZXRicmFpbnMva290bGluL2tvdGxpbi1ydW50aW1lLzAuMTIuNjEzL2tvdGxpbi1ydW50aW1lLTAuMTIuNjEzLmphci5zaGExIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2pldGJyYWlucy9rb3RsaW4va290bGluLXJ1bnRpbWUvMC4xMi42MTMva290bGluLXJ1bnRpbWUtMC4xMi42MTMuamFyLnNoYTEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWNiYTYzMAotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9qZXRicmFpbnMva290bGluL2tvdGxpbi1ydW50aW1lLzAuMTIuNjEzL2tvdGxpbi1ydW50aW1lLTAuMTIuNjEzLmphci5zaGExCkBAIC0wLDAgKzEgQEAKKzcxY2E3NzZiZDE0NzI0MjhhYWM2N2RkOGI0MTgxM2M4NjFmZGE4NDQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvamV0YnJhaW5zL2tvdGxpbi9rb3RsaW4tcnVudGltZS8wLjEyLjYxMy9rb3RsaW4tcnVudGltZS0wLjEyLjYxMy5wb20gYi9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvamV0YnJhaW5zL2tvdGxpbi9rb3RsaW4tcnVudGltZS8wLjEyLjYxMy9rb3RsaW4tcnVudGltZS0wLjEyLjYxMy5wb20KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTM5MTdlYwotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9qZXRicmFpbnMva290bGluL2tvdGxpbi1ydW50aW1lLzAuMTIuNjEzL2tvdGxpbi1ydW50aW1lLTAuMTIuNjEzLnBvbQpAQCAtMCwwICsxLDEwOSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxwcm9qZWN0CisgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL3hzZC9tYXZlbi00LjAuMC54c2QiCisgICAgICAgIHhtbG5zPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiPgorCisgICAgPG1vZGVsVmVyc2lvbj40LjAuMDwvbW9kZWxWZXJzaW9uPgorCisgICAgPHBhcmVudD4KKyAgICAgICAgPGdyb3VwSWQ+b3JnLmpldGJyYWlucy5rb3RsaW48L2dyb3VwSWQ+CisgICAgICAgIDxhcnRpZmFjdElkPmtvdGxpbi1wcm9qZWN0PC9hcnRpZmFjdElkPgorICAgICAgICA8dmVyc2lvbj4wLjEyLjYxMzwvdmVyc2lvbj4KKyAgICAgICAgPHJlbGF0aXZlUGF0aD4uLi8uLi9wb20ueG1sPC9yZWxhdGl2ZVBhdGg+CisgICAgPC9wYXJlbnQ+CisKKyAgICA8YXJ0aWZhY3RJZD5rb3RsaW4tcnVudGltZTwvYXJ0aWZhY3RJZD4KKyAgICA8cGFja2FnaW5nPmphcjwvcGFja2FnaW5nPgorCisgICAgPGJ1aWxkPgorICAgICAgICA8c291cmNlRGlyZWN0b3J5PnRhcmdldC9jb3BpZWQtc291cmNlczwvc291cmNlRGlyZWN0b3J5PgorCisgICAgICAgIDxyZXNvdXJjZXM+CisgICAgICAgICAgICA8cmVzb3VyY2U+CisgICAgICAgICAgICAgICAgPGRpcmVjdG9yeT4ke2Jhc2VkaXJ9Ly4uLy4uLy4uL2Rpc3QvYnVpbHRpbnM8L2RpcmVjdG9yeT4KKyAgICAgICAgICAgICAgICA8aW5jbHVkZXM+CisgICAgICAgICAgICAgICAgICAgIDxpbmNsdWRlPioqLyoua290bGluXyo8L2luY2x1ZGU+CisgICAgICAgICAgICAgICAgPC9pbmNsdWRlcz4KKyAgICAgICAgICAgICAgICA8ZXhjbHVkZXM+CisgICAgICAgICAgICAgICAgICAgIDxleGNsdWRlPmtvdGxpbi9pbnRlcm5hbC8qKi8qPC9leGNsdWRlPgorICAgICAgICAgICAgICAgIDwvZXhjbHVkZXM+CisgICAgICAgICAgICA8L3Jlc291cmNlPgorICAgICAgICA8L3Jlc291cmNlcz4KKworICAgICAgICA8cGx1Z2lucz4KKyAgICAgICAgICAgIDxwbHVnaW4+CisgICAgICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPgorICAgICAgICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLWFudHJ1bi1wbHVnaW48L2FydGlmYWN0SWQ+CisgICAgICAgICAgICAgICAgPHZlcnNpb24+MS43PC92ZXJzaW9uPgorCisgICAgICAgICAgICAgICAgPGV4ZWN1dGlvbnM+CisgICAgICAgICAgICAgICAgICAgIDxleGVjdXRpb24+CisgICAgICAgICAgICAgICAgICAgICAgICA8aWQ+Y29weS1zb3VyY2VzPC9pZD4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxwaGFzZT5wcm9jZXNzLXNvdXJjZXM8L3BoYXNlPgorICAgICAgICAgICAgICAgICAgICAgICAgPGNvbmZpZ3VyYXRpb24+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRhcmdldD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlbGV0ZSBkaXI9IiR7YmFzZWRpcn0vdGFyZ2V0L2NvcGllZC1zb3VyY2VzIiBmYWlsb25lcnJvcj0iZmFsc2UiLz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvcHkgdG9kaXI9IiR7YmFzZWRpcn0vdGFyZ2V0L2NvcGllZC1zb3VyY2VzIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWxlc2V0IGRpcj0iJHtiYXNlZGlyfS8uLi8uLi8uLi9jb3JlL2J1aWx0aW5zL3NyYyIvPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbGVzZXQgZGlyPSIke2Jhc2VkaXJ9Ly4uLy4uLy4uL2NvcmUvcnVudGltZS5qdm0vc3JjIi8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsZXNldCBkaXI9IiR7YmFzZWRpcn0vLi4vLi4vLi4vY29yZS9mdW5jdGlvbnMubWlncmF0aW9uL3NyYyIvPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NvcHk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YXJnZXQ+CisgICAgICAgICAgICAgICAgICAgICAgICA8L2NvbmZpZ3VyYXRpb24+CisgICAgICAgICAgICAgICAgICAgICAgICA8Z29hbHM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGdvYWw+cnVuPC9nb2FsPgorICAgICAgICAgICAgICAgICAgICAgICAgPC9nb2Fscz4KKyAgICAgICAgICAgICAgICAgICAgPC9leGVjdXRpb24+CisgICAgICAgICAgICAgICAgPC9leGVjdXRpb25zPgorICAgICAgICAgICAgPC9wbHVnaW4+CisKKyAgICAgICAgICAgIDxwbHVnaW4+CisgICAgICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPgorICAgICAgICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLWphdmFkb2MtcGx1Z2luPC9hcnRpZmFjdElkPgorICAgICAgICAgICAgICAgIDxleGVjdXRpb25zPgorICAgICAgICAgICAgICAgICAgICA8ZXhlY3V0aW9uPgorICAgICAgICAgICAgICAgICAgICAgICAgPGlkPmF0dGFjaC1qYXZhZG9jczwvaWQ+CisgICAgICAgICAgICAgICAgICAgICAgICA8cGhhc2U+cGFja2FnZTwvcGhhc2U+CisgICAgICAgICAgICAgICAgICAgICAgICA8Z29hbHM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGdvYWw+amFyPC9nb2FsPgorICAgICAgICAgICAgICAgICAgICAgICAgPC9nb2Fscz4KKyAgICAgICAgICAgICAgICAgICAgPC9leGVjdXRpb24+CisgICAgICAgICAgICAgICAgPC9leGVjdXRpb25zPgorICAgICAgICAgICAgPC9wbHVnaW4+CisKKyAgICAgICAgICAgIDxwbHVnaW4+CisgICAgICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLmNvZGVoYXVzLm1vam88L2dyb3VwSWQ+CisgICAgICAgICAgICAgICAgPGFydGlmYWN0SWQ+YnVpbGQtaGVscGVyLW1hdmVuLXBsdWdpbjwvYXJ0aWZhY3RJZD4KKyAgICAgICAgICAgICAgICA8dmVyc2lvbj4xLjc8L3ZlcnNpb24+CisgICAgICAgICAgICAgICAgPGV4ZWN1dGlvbnM+CisgICAgICAgICAgICAgICAgICAgIDxleGVjdXRpb24+CisgICAgICAgICAgICAgICAgICAgICAgICA8aWQ+YXR0YWNoLWVtcHR5LWphdmFkb2M8L2lkPgorICAgICAgICAgICAgICAgICAgICAgICAgPHBoYXNlPnByZXBhcmUtcGFja2FnZTwvcGhhc2U+CisgICAgICAgICAgICAgICAgICAgICAgICA8Z29hbHM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGdvYWw+YXR0YWNoLWFydGlmYWN0PC9nb2FsPgorICAgICAgICAgICAgICAgICAgICAgICAgPC9nb2Fscz4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxjb25maWd1cmF0aW9uPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxza2lwQXR0YWNoPnRydWU8L3NraXBBdHRhY2g+CisgICAgICAgICAgICAgICAgICAgICAgICA8L2NvbmZpZ3VyYXRpb24+CisgICAgICAgICAgICAgICAgICAgIDwvZXhlY3V0aW9uPgorICAgICAgICAgICAgICAgIDwvZXhlY3V0aW9ucz4KKyAgICAgICAgICAgIDwvcGx1Z2luPgorCisgICAgICAgICAgICA8cGx1Z2luPgorICAgICAgICAgICAgICAgIDxncm91cElkPm9yZy5qZXRicmFpbnMua290bGluPC9ncm91cElkPgorICAgICAgICAgICAgICAgIDxhcnRpZmFjdElkPmtvdGxpbi1tYXZlbi1wbHVnaW48L2FydGlmYWN0SWQ+CisgICAgICAgICAgICAgICAgPHZlcnNpb24+JHtwcm9qZWN0LnZlcnNpb259PC92ZXJzaW9uPgorCisgICAgICAgICAgICAgICAgPGV4ZWN1dGlvbnM+CisgICAgICAgICAgICAgICAgICAgIDxleGVjdXRpb24+CisgICAgICAgICAgICAgICAgICAgICAgICA8aWQ+Y29tcGlsZTwvaWQ+CisgICAgICAgICAgICAgICAgICAgICAgICA8cGhhc2U+cHJvY2Vzcy1zb3VyY2VzPC9waGFzZT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxnb2Fscz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Z29hbD5jb21waWxlPC9nb2FsPgorICAgICAgICAgICAgICAgICAgICAgICAgPC9nb2Fscz4KKyAgICAgICAgICAgICAgICAgICAgPC9leGVjdXRpb24+CisgICAgICAgICAgICAgICAgPC9leGVjdXRpb25zPgorICAgICAgICAgICAgPC9wbHVnaW4+CisgICAgICAgIDwvcGx1Z2lucz4KKyAgICA8L2J1aWxkPgorPC9wcm9qZWN0PgpkaWZmIC0tZ2l0IGEvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2pldGJyYWlucy9rb3RsaW4va290bGluLXJ1bnRpbWUvMC4xMi42MTMva290bGluLXJ1bnRpbWUtMC4xMi42MTMucG9tLnNoYTEgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvamV0YnJhaW5zL2tvdGxpbi9rb3RsaW4tcnVudGltZS8wLjEyLjYxMy9rb3RsaW4tcnVudGltZS0wLjEyLjYxMy5wb20uc2hhMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNWIyOWExCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2pldGJyYWlucy9rb3RsaW4va290bGluLXJ1bnRpbWUvMC4xMi42MTMva290bGluLXJ1bnRpbWUtMC4xMi42MTMucG9tLnNoYTEKQEAgLTAsMCArMSBAQAorNTdlNDI4Njk3ZWIyZWFkZTgwMjJjYjI0NzhjMGNhM2RhNWQ2MDIyNwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9qZXRicmFpbnMva290bGluL2tvdGxpbi1zdGRsaWIvMC4xMi42MTMva290bGluLXN0ZGxpYi0wLjEyLjYxMy5qYXIgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvamV0YnJhaW5zL2tvdGxpbi9rb3RsaW4tc3RkbGliLzAuMTIuNjEzL2tvdGxpbi1zdGRsaWItMC4xMi42MTMuamFyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA4MzgyN2EKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvamV0YnJhaW5zL2tvdGxpbi9rb3RsaW4tc3RkbGliLzAuMTIuNjEzL2tvdGxpbi1zdGRsaWItMC4xMi42MTMuamFyCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9qZXRicmFpbnMva290bGluL2tvdGxpbi1zdGRsaWIvMC4xMi42MTMva290bGluLXN0ZGxpYi0wLjEyLjYxMy5qYXIuc2hhMSBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L29yZy9qZXRicmFpbnMva290bGluL2tvdGxpbi1zdGRsaWIvMC4xMi42MTMva290bGluLXN0ZGxpYi0wLjEyLjYxMy5qYXIuc2hhMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYTg1ZGZjCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2pldGJyYWlucy9rb3RsaW4va290bGluLXN0ZGxpYi8wLjEyLjYxMy9rb3RsaW4tc3RkbGliLTAuMTIuNjEzLmphci5zaGExCkBAIC0wLDAgKzEgQEAKKzJlNDU4OGZiYjAwNzQ0YjE2Nzk4NzcyNjI2MTM4N2QxYjk0NDcyZjUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvamV0YnJhaW5zL2tvdGxpbi9rb3RsaW4tc3RkbGliLzAuMTIuNjEzL2tvdGxpbi1zdGRsaWItMC4xMi42MTMucG9tIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2pldGJyYWlucy9rb3RsaW4va290bGluLXN0ZGxpYi8wLjEyLjYxMy9rb3RsaW4tc3RkbGliLTAuMTIuNjEzLnBvbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNjhiYzc2Ci0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2pldGJyYWlucy9rb3RsaW4va290bGluLXN0ZGxpYi8wLjEyLjYxMy9rb3RsaW4tc3RkbGliLTAuMTIuNjEzLnBvbQpAQCAtMCwwICsxLDU0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHByb2plY3QKKyAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAgaHR0cDovL21hdmVuLmFwYWNoZS5vcmcveHNkL21hdmVuLTQuMC4wLnhzZCIKKyAgICAgICAgeG1sbnM9Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSI+CisKKyAgICA8bW9kZWxWZXJzaW9uPjQuMC4wPC9tb2RlbFZlcnNpb24+CisKKyAgICA8cGFyZW50PgorICAgICAgICA8Z3JvdXBJZD5vcmcuamV0YnJhaW5zLmtvdGxpbjwvZ3JvdXBJZD4KKyAgICAgICAgPGFydGlmYWN0SWQ+a290bGluLXByb2plY3Q8L2FydGlmYWN0SWQ+CisgICAgICAgIDx2ZXJzaW9uPjAuMTIuNjEzPC92ZXJzaW9uPgorICAgIDwvcGFyZW50PgorCisgICAgPGFydGlmYWN0SWQ+a290bGluLXN0ZGxpYjwvYXJ0aWZhY3RJZD4KKworICAgIDxkZXBlbmRlbmNpZXM+CisgICAgICAgIDxkZXBlbmRlbmN5PgorICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLmpldGJyYWlucy5rb3RsaW48L2dyb3VwSWQ+CisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5rb3RsaW4tcnVudGltZTwvYXJ0aWZhY3RJZD4KKyAgICAgICAgICAgIDx2ZXJzaW9uPiR7cHJvamVjdC52ZXJzaW9ufTwvdmVyc2lvbj4KKyAgICAgICAgPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jaWVzPgorCisgICAgPGJ1aWxkPgorICAgICAgICA8c291cmNlRGlyZWN0b3J5PnNyYzwvc291cmNlRGlyZWN0b3J5PgorICAgICAgICA8dGVzdFNvdXJjZURpcmVjdG9yeT50ZXN0PC90ZXN0U291cmNlRGlyZWN0b3J5PgorCisgICAgICAgIDxwbHVnaW5zPgorICAgICAgICAgICAgIDxwbHVnaW4+CisgICAgICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLmpldGJyYWlucy5rb3RsaW48L2dyb3VwSWQ+CisgICAgICAgICAgICAgICAgPGFydGlmYWN0SWQ+a290bGluLW1hdmVuLXBsdWdpbjwvYXJ0aWZhY3RJZD4KKyAgICAgICAgICAgICAgICA8dmVyc2lvbj4ke3Byb2plY3QudmVyc2lvbn08L3ZlcnNpb24+CisKKyAgICAgICAgICAgICAgICA8ZXhlY3V0aW9ucz4KKyAgICAgICAgICAgICAgICAgICAgPGV4ZWN1dGlvbj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxpZD5jb21waWxlPC9pZD4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxwaGFzZT5jb21waWxlPC9waGFzZT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxnb2Fscz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Z29hbD5jb21waWxlPC9nb2FsPgorICAgICAgICAgICAgICAgICAgICAgICAgPC9nb2Fscz4KKyAgICAgICAgICAgICAgICAgICAgPC9leGVjdXRpb24+CisKKyAgICAgICAgICAgICAgICAgICAgPGV4ZWN1dGlvbj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxpZD50ZXN0LWNvbXBpbGU8L2lkPgorICAgICAgICAgICAgICAgICAgICAgICAgPHBoYXNlPnRlc3QtY29tcGlsZTwvcGhhc2U+CisgICAgICAgICAgICAgICAgICAgICAgICA8Z29hbHM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGdvYWw+dGVzdC1jb21waWxlPC9nb2FsPgorICAgICAgICAgICAgICAgICAgICAgICAgPC9nb2Fscz4KKyAgICAgICAgICAgICAgICAgICAgPC9leGVjdXRpb24+CisgICAgICAgICAgICAgICAgPC9leGVjdXRpb25zPgorICAgICAgICAgICAgPC9wbHVnaW4+CisgICAgICAgIDwvcGx1Z2lucz4KKyAgICA8L2J1aWxkPgorPC9wcm9qZWN0PgpkaWZmIC0tZ2l0IGEvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2pldGJyYWlucy9rb3RsaW4va290bGluLXN0ZGxpYi8wLjEyLjYxMy9rb3RsaW4tc3RkbGliLTAuMTIuNjEzLnBvbS5zaGExIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvb3JnL2pldGJyYWlucy9rb3RsaW4va290bGluLXN0ZGxpYi8wLjEyLjYxMy9rb3RsaW4tc3RkbGliLTAuMTIuNjEzLnBvbS5zaGExCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY0ZWE0ODMKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vbTIvcmVwb3NpdG9yeS9vcmcvamV0YnJhaW5zL2tvdGxpbi9rb3RsaW4tc3RkbGliLzAuMTIuNjEzL2tvdGxpbi1zdGRsaWItMC4xMi42MTMucG9tLnNoYTEKQEAgLTAsMCArMSBAQAorNjUxNzg4ZDgxMWVmNzlkZGNlNzQ3NWJkZmJmZDQ4NWZiYzE5NGYxMQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NvbW1vbi9tMi9yZXBvc2l0b3J5L3RpZ2h0dm5jL05PVElDRSBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L3RpZ2h0dm5jL05PVElDRQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMmNlZjMxCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL20yL3JlcG9zaXRvcnkvdGlnaHR2bmMvTk9USUNFCkBAIC0wLDAgKzEsMzggQEAKKyoqKg0KK1RoaXMgamFyIGlzIGRpc3RyaWJ1dGVkIHdpdGggQW5kcm9pZCBTdHVkaW8gYXMgcGFydCBvZiBhIHNwZWNpYWwgYWdyZWVtZW50IHdpdGggR2xhdlNvZnQuIA0KK1RoZSBrZXkgdGVybXMgb2YgdGhlIGFncmVlbWVudCBhcmUgYmVsb3cuDQorKioqDQorDQorDQorMS4gRGVmaW5pdGlvbnMNCisNCisxLjEuICJTb3VyY2UgQ29kZSIgbWVhbnMgY29tcHV0ZXIgcHJvZ3JhbW1pbmcgY29kZSBpbiB0aGUgaHVtYW4gcmVhZGFibGUgZm9ybSBjb25zdGl0dXRpbmcNCit0aGUgU29mdHdhcmUgYW5kIHN1aXRhYmxlIGZvciBtYWtpbmcgbW9kaWZpY2F0aW9ucyB0byBpdC4NCisNCisxLjIuICJEZXJpdmF0aXZlIFdvcmtzIiBtZWFucyBhbnkgYW5kIGFsbCBzb2Z0d2FyZSBwcm9ncmFtcyB3aGljaCBhcmUgZGV2ZWxvcGVkIGJ5IExpY2Vuc2VlIGFuZA0KK3doaWNoIGFyZSB1c2luZywgaW5jb3Jwb3JhdGluZywgb3IgZGVyaXZlZCBmcm9tIHRoZSBTb2Z0d2FyZS4NCisNCisNCiszLiBMaWNlbnNlIEdyYW50DQorDQorMy4xLiBHbGF2U29mdCBncmFudHMgTGljZW5zZWUgYSBwZXJwZXR1YWwsIG5vbi1leGNsdXNpdmUsIG5vbi10cmFuc2ZlcmFibGUgKGV4Y2VwdCBhcyBwcm92aWRlZA0KK2JlbG93KSB3b3JsZC13aWRlIGxpY2Vuc2UgdG8gaW5zdGFsbCBhbmQgdXNlIFNvZnR3YXJlIGZvciBjcmVhdGluZyBEZXJpdmF0aXZlIFdvcmtzIGJhc2VkIG9uIHRoZQ0KK1NvdXJjZSBDb2RlIG9yIGludGVncmF0ZWQgd2l0aCB0aGUgU29mdHdhcmUgaW4gYW55IG90aGVyIHdheS4gVGhlIGxpY2Vuc2UgY29zdHMgNCwwMDAgVS5TLiBkb2xsYXJzLg0KKw0KKzMuMi4gR2xhdlNvZnQgZ3JhbnRzIExpY2Vuc2VlIGFuZCBpdHMgYWZmaWxpYXRlcywgcmVzZWxsZXJzIGFuZCBkaXN0cmlidXRvcnMgdGhlIHJpZ2h0IHRvIGRpc3RyaWJ1dGUgKHZpYQ0KK3N1YmxpY2Vuc2UpLCBzZWxsICh2aWEgc3VibGljZW5zZSkgb3Igb3RoZXJ3aXNlIHRyYW5zZmVyICh2aWEgc3VibGljZW5zZSkgU29mdHdhcmUgaW4gYmluYXJ5IG9iamVjdA0KK2NvZGUgZm9ybWF0IChpbmNsdWRpbmcgZXhlY3V0YWJsZSBmaWxlcyBhbmQgRExMIGxpYnJhcmllcykgc29sZWx5IGFzIGluY29ycG9yYXRlZCBpbnRvIGEgRGVyaXZhdGl2ZQ0KK1dvcmssIGZyZWUgb2Ygcm95YWx0aWVzIHRvIEdsYXZTb2Z0Lg0KKw0KKzMuMy4gTm8gcGFydCBvZiB0aGUgU291cmNlIENvZGUgbWF5IGJlIGRpc3RyaWJ1dGVkLCBleGNlcHQgZm9yIGxpbWl0ZWQgZGlzdHJpYnV0aW9uIHRvIExpY2Vuc2VlJ3MNCitlbXBsb3llZXMgb3IgY29udHJhY3RvcnMgd29ya2luZyBvbiBjcmVhdGluZyBEZXJpdmF0aXZlIFdvcmtzIGZvciBMaWNlbnNlZS4gTGljZW5zZWUgc2hvdWxkDQorcHJvdGVjdCB0aGUgU291cmNlIENvZGUgZnJvbSB1bmF1dGhvcml6ZWQgZGlzdHJpYnV0aW9uIGJ5IGFycmFuZ2luZyBhcHByb3ByaWF0ZSBub24tZGlzY2xvc3VyZQ0KK2FncmVlbWVudHMsIGJ5IHNlY3VyaW5nIGFsbCBpbnRlcm5hbGx5IHVzZWQgY29waWVzIG9mIHRoZSBTb3VyY2UgQ29kZSwgYW5kIGluIG90aGVyIHJlYXNvbmFibGUNCit3YXlzLg0KKw0KKzMuNC4gTGljZW5zZWUgbXVzdCBwcmVzZXJ2ZSBjb3B5cmlnaHQgbm90aWNlcyBpbiBhbGwgZmlsZXMgb2YgdGhlIFNvdXJjZSBDb2RlLg0KKw0KKzMuNS4gTGljZW5zZWUgc2hhbGwgbm90IGluY2x1ZGUgIlRpZ2h0Vk5DIiwgIkdsYXZTb2Z0IiBvciBzaW1pbGFyIHBocmFzZXMgaW4gdGl0bGVzIG9mIExpY2Vuc2VlJ3MNCitwcm9kdWN0cyBvciBzZXJ2aWNlcy4NCisNCiszLjYuIEFsbCByaWdodHMgbm90IGV4cHJlc3NseSBncmFudGVkIGluIHRoaXMgQWdyZWVtZW50IGFyZSByZXNlcnZlZCBieSBHbGF2U29mdC4NCmRpZmYgLS1naXQgYS9jb21tb24vbTIvcmVwb3NpdG9yeS90aWdodHZuYy90aWdodHZuYy5qYXIgYi9jb21tb24vbTIvcmVwb3NpdG9yeS90aWdodHZuYy90aWdodHZuYy5qYXIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWRiNDViYwotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9tMi9yZXBvc2l0b3J5L3RpZ2h0dm5jL3RpZ2h0dm5jLmphcgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9hbm5vdGF0aW9ucy8yNC4zLjAvYW5ub3RhdGlvbnMtMjQuMy4wLXNvdXJjZXMuamFyIGIvY29tbW9uL29mZmxpbmUtbTIvY29tL2FuZHJvaWQvdG9vbHMvYW5ub3RhdGlvbnMvMjQuMy4wL2Fubm90YXRpb25zLTI0LjMuMC1zb3VyY2VzLmphcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NjcwZmY4Ci0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL29mZmxpbmUtbTIvY29tL2FuZHJvaWQvdG9vbHMvYW5ub3RhdGlvbnMvMjQuMy4wL2Fubm90YXRpb25zLTI0LjMuMC1zb3VyY2VzLmphcgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9hbm5vdGF0aW9ucy8yNC4zLjAvYW5ub3RhdGlvbnMtMjQuMy4wLmphciBiL2NvbW1vbi9vZmZsaW5lLW0yL2NvbS9hbmRyb2lkL3Rvb2xzL2Fubm90YXRpb25zLzI0LjMuMC9hbm5vdGF0aW9ucy0yNC4zLjAuamFyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUxOGQ5MmYKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9hbm5vdGF0aW9ucy8yNC4zLjAvYW5ub3RhdGlvbnMtMjQuMy4wLmphcgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9hbm5vdGF0aW9ucy8yNC4zLjAvYW5ub3RhdGlvbnMtMjQuMy4wLnBvbSBiL2NvbW1vbi9vZmZsaW5lLW0yL2NvbS9hbmRyb2lkL3Rvb2xzL2Fubm90YXRpb25zLzI0LjMuMC9hbm5vdGF0aW9ucy0yNC4zLjAucG9tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZlYWY5NDgKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9hbm5vdGF0aW9ucy8yNC4zLjAvYW5ub3RhdGlvbnMtMjQuMy4wLnBvbQpAQCAtMCwwICsxLDI4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHByb2plY3QgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAgaHR0cDovL21hdmVuLmFwYWNoZS5vcmcveHNkL21hdmVuLTQuMC4wLnhzZCIgeG1sbnM9Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCIKKyAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIj4KKyAgPG1vZGVsVmVyc2lvbj40LjAuMDwvbW9kZWxWZXJzaW9uPgorICA8Z3JvdXBJZD5jb20uYW5kcm9pZC50b29sczwvZ3JvdXBJZD4KKyAgPGFydGlmYWN0SWQ+YW5ub3RhdGlvbnM8L2FydGlmYWN0SWQ+CisgIDx2ZXJzaW9uPjI0LjMuMDwvdmVyc2lvbj4KKyAgPG5hbWU+QW5kcm9pZCBUb29scyBBbm5vdGF0aW9ucyBsaWJyYXJ5PC9uYW1lPgorICA8ZGVzY3JpcHRpb24+YW5ub3RhdGlvbnMgdXNlZCB0aHJvdWdob3V0IHRoZSBBbmRyb2lkIHRvb2xzIGxpYnJhcmllcy48L2Rlc2NyaXB0aW9uPgorICA8dXJsPmh0dHA6Ly90b29scy5hbmRyb2lkLmNvbTwvdXJsPgorICA8aW5jZXB0aW9uWWVhcj4yMDA3PC9pbmNlcHRpb25ZZWFyPgorICA8bGljZW5zZXM+CisgICAgPGxpY2Vuc2U+CisgICAgICA8bmFtZT5UaGUgQXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMi4wPC9uYW1lPgorICAgICAgPHVybD5odHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAudHh0PC91cmw+CisgICAgICA8ZGlzdHJpYnV0aW9uPnJlcG88L2Rpc3RyaWJ1dGlvbj4KKyAgICA8L2xpY2Vuc2U+CisgIDwvbGljZW5zZXM+CisgIDxkZXZlbG9wZXJzPgorICAgIDxkZXZlbG9wZXI+CisgICAgICA8bmFtZT5UaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0PC9uYW1lPgorICAgIDwvZGV2ZWxvcGVyPgorICA8L2RldmVsb3BlcnM+CisgIDxzY20+CisgICAgPGNvbm5lY3Rpb24+Z2l0Oi8vYW5kcm9pZC5nb29nbGVzb3VyY2UuY29tL3BsYXRmb3JtL3Rvb2xzL2Jhc2UuZ2l0PC9jb25uZWN0aW9uPgorICAgIDx1cmw+aHR0cHM6Ly9hbmRyb2lkLmdvb2dsZXNvdXJjZS5jb20vcGxhdGZvcm0vdG9vbHMvYmFzZTwvdXJsPgorICA8L3NjbT4KKzwvcHJvamVjdD4KZGlmZiAtLWdpdCBhL2NvbW1vbi9vZmZsaW5lLW0yL2NvbS9hbmRyb2lkL3Rvb2xzL2J1aWxkL2J1aWxkZXItbW9kZWwvMS4zLjAvYnVpbGRlci1tb2RlbC0xLjMuMC1zb3VyY2VzLmphciBiL2NvbW1vbi9vZmZsaW5lLW0yL2NvbS9hbmRyb2lkL3Rvb2xzL2J1aWxkL2J1aWxkZXItbW9kZWwvMS4zLjAvYnVpbGRlci1tb2RlbC0xLjMuMC1zb3VyY2VzLmphcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMWJkYzI5Ci0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL29mZmxpbmUtbTIvY29tL2FuZHJvaWQvdG9vbHMvYnVpbGQvYnVpbGRlci1tb2RlbC8xLjMuMC9idWlsZGVyLW1vZGVsLTEuMy4wLXNvdXJjZXMuamFyCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2NvbW1vbi9vZmZsaW5lLW0yL2NvbS9hbmRyb2lkL3Rvb2xzL2J1aWxkL2J1aWxkZXItbW9kZWwvMS4zLjAvYnVpbGRlci1tb2RlbC0xLjMuMC5qYXIgYi9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9idWlsZC9idWlsZGVyLW1vZGVsLzEuMy4wL2J1aWxkZXItbW9kZWwtMS4zLjAuamFyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc3MGIxYjAKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9idWlsZC9idWlsZGVyLW1vZGVsLzEuMy4wL2J1aWxkZXItbW9kZWwtMS4zLjAuamFyCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2NvbW1vbi9vZmZsaW5lLW0yL2NvbS9hbmRyb2lkL3Rvb2xzL2J1aWxkL2J1aWxkZXItbW9kZWwvMS4zLjAvYnVpbGRlci1tb2RlbC0xLjMuMC5wb20gYi9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9idWlsZC9idWlsZGVyLW1vZGVsLzEuMy4wL2J1aWxkZXItbW9kZWwtMS4zLjAucG9tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMyZDg5NjEKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9idWlsZC9idWlsZGVyLW1vZGVsLzEuMy4wL2J1aWxkZXItbW9kZWwtMS4zLjAucG9tCkBAIC0wLDAgKzEsMzYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cHJvamVjdCB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCBodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy94c2QvbWF2ZW4tNC4wLjAueHNkIiB4bWxucz0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIgorICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiPgorICA8bW9kZWxWZXJzaW9uPjQuMC4wPC9tb2RlbFZlcnNpb24+CisgIDxncm91cElkPmNvbS5hbmRyb2lkLnRvb2xzLmJ1aWxkPC9ncm91cElkPgorICA8YXJ0aWZhY3RJZD5idWlsZGVyLW1vZGVsPC9hcnRpZmFjdElkPgorICA8dmVyc2lvbj4xLjMuMDwvdmVyc2lvbj4KKyAgPG5hbWU+QW5kcm9pZCBCdWlsZGVyIE1vZGVsIGxpYnJhcnk8L25hbWU+CisgIDxkZXNjcmlwdGlvbj5Nb2RlbCBmb3IgdGhlIEJ1aWxkZXIgbGlicmFyeS48L2Rlc2NyaXB0aW9uPgorICA8dXJsPmh0dHA6Ly90b29scy5hbmRyb2lkLmNvbTwvdXJsPgorICA8aW5jZXB0aW9uWWVhcj4yMDA3PC9pbmNlcHRpb25ZZWFyPgorICA8bGljZW5zZXM+CisgICAgPGxpY2Vuc2U+CisgICAgICA8bmFtZT5UaGUgQXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMi4wPC9uYW1lPgorICAgICAgPHVybD5odHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAudHh0PC91cmw+CisgICAgICA8ZGlzdHJpYnV0aW9uPnJlcG88L2Rpc3RyaWJ1dGlvbj4KKyAgICA8L2xpY2Vuc2U+CisgIDwvbGljZW5zZXM+CisgIDxkZXZlbG9wZXJzPgorICAgIDxkZXZlbG9wZXI+CisgICAgICA8bmFtZT5UaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0PC9uYW1lPgorICAgIDwvZGV2ZWxvcGVyPgorICA8L2RldmVsb3BlcnM+CisgIDxzY20+CisgICAgPGNvbm5lY3Rpb24+Z2l0Oi8vYW5kcm9pZC5nb29nbGVzb3VyY2UuY29tL3BsYXRmb3JtL3Rvb2xzL2Jhc2UuZ2l0PC9jb25uZWN0aW9uPgorICAgIDx1cmw+aHR0cHM6Ly9hbmRyb2lkLmdvb2dsZXNvdXJjZS5jb20vcGxhdGZvcm0vdG9vbHMvYmFzZTwvdXJsPgorICA8L3NjbT4KKyAgPGRlcGVuZGVuY2llcz4KKyAgICA8ZGVwZW5kZW5jeT4KKyAgICAgIDxncm91cElkPmNvbS5hbmRyb2lkLnRvb2xzPC9ncm91cElkPgorICAgICAgPGFydGlmYWN0SWQ+YW5ub3RhdGlvbnM8L2FydGlmYWN0SWQ+CisgICAgICA8dmVyc2lvbj4yNC4zLjA8L3ZlcnNpb24+CisgICAgICA8c2NvcGU+Y29tcGlsZTwvc2NvcGU+CisgICAgPC9kZXBlbmRlbmN5PgorICA8L2RlcGVuZGVuY2llcz4KKzwvcHJvamVjdD4KZGlmZiAtLWdpdCBhL2NvbW1vbi9vZmZsaW5lLW0yL2NvbS9hbmRyb2lkL3Rvb2xzL2J1aWxkL2J1aWxkZXItdGVzdC1hcGkvMS4zLjAvYnVpbGRlci10ZXN0LWFwaS0xLjMuMC1zb3VyY2VzLmphciBiL2NvbW1vbi9vZmZsaW5lLW0yL2NvbS9hbmRyb2lkL3Rvb2xzL2J1aWxkL2J1aWxkZXItdGVzdC1hcGkvMS4zLjAvYnVpbGRlci10ZXN0LWFwaS0xLjMuMC1zb3VyY2VzLmphcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYTAyM2QyCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL29mZmxpbmUtbTIvY29tL2FuZHJvaWQvdG9vbHMvYnVpbGQvYnVpbGRlci10ZXN0LWFwaS8xLjMuMC9idWlsZGVyLXRlc3QtYXBpLTEuMy4wLXNvdXJjZXMuamFyCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2NvbW1vbi9vZmZsaW5lLW0yL2NvbS9hbmRyb2lkL3Rvb2xzL2J1aWxkL2J1aWxkZXItdGVzdC1hcGkvMS4zLjAvYnVpbGRlci10ZXN0LWFwaS0xLjMuMC5qYXIgYi9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9idWlsZC9idWlsZGVyLXRlc3QtYXBpLzEuMy4wL2J1aWxkZXItdGVzdC1hcGktMS4zLjAuamFyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMyMmRmNWEKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9idWlsZC9idWlsZGVyLXRlc3QtYXBpLzEuMy4wL2J1aWxkZXItdGVzdC1hcGktMS4zLjAuamFyCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2NvbW1vbi9vZmZsaW5lLW0yL2NvbS9hbmRyb2lkL3Rvb2xzL2J1aWxkL2J1aWxkZXItdGVzdC1hcGkvMS4zLjAvYnVpbGRlci10ZXN0LWFwaS0xLjMuMC5wb20gYi9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9idWlsZC9idWlsZGVyLXRlc3QtYXBpLzEuMy4wL2J1aWxkZXItdGVzdC1hcGktMS4zLjAucG9tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU1ZDQ5NzcKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9idWlsZC9idWlsZGVyLXRlc3QtYXBpLzEuMy4wL2J1aWxkZXItdGVzdC1hcGktMS4zLjAucG9tCkBAIC0wLDAgKzEsNDIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cHJvamVjdCB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCBodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy94c2QvbWF2ZW4tNC4wLjAueHNkIiB4bWxucz0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIgorICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiPgorICA8bW9kZWxWZXJzaW9uPjQuMC4wPC9tb2RlbFZlcnNpb24+CisgIDxncm91cElkPmNvbS5hbmRyb2lkLnRvb2xzLmJ1aWxkPC9ncm91cElkPgorICA8YXJ0aWZhY3RJZD5idWlsZGVyLXRlc3QtYXBpPC9hcnRpZmFjdElkPgorICA8dmVyc2lvbj4xLjMuMDwvdmVyc2lvbj4KKyAgPG5hbWU+QW5kcm9pZCBCdWlsZGVyIFRlc3QgQVBJIGxpYnJhcnk8L25hbWU+CisgIDxkZXNjcmlwdGlvbj5BUEkgZm9yIHRoZSBUZXN0IGV4dGVuc2lvbiBwb2ludCBpbiB0aGUgQnVpbGRlciBsaWJyYXJ5LjwvZGVzY3JpcHRpb24+CisgIDx1cmw+aHR0cDovL3Rvb2xzLmFuZHJvaWQuY29tPC91cmw+CisgIDxpbmNlcHRpb25ZZWFyPjIwMDc8L2luY2VwdGlvblllYXI+CisgIDxsaWNlbnNlcz4KKyAgICA8bGljZW5zZT4KKyAgICAgIDxuYW1lPlRoZSBBcGFjaGUgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAyLjA8L25hbWU+CisgICAgICA8dXJsPmh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC50eHQ8L3VybD4KKyAgICAgIDxkaXN0cmlidXRpb24+cmVwbzwvZGlzdHJpYnV0aW9uPgorICAgIDwvbGljZW5zZT4KKyAgPC9saWNlbnNlcz4KKyAgPGRldmVsb3BlcnM+CisgICAgPGRldmVsb3Blcj4KKyAgICAgIDxuYW1lPlRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3Q8L25hbWU+CisgICAgPC9kZXZlbG9wZXI+CisgIDwvZGV2ZWxvcGVycz4KKyAgPHNjbT4KKyAgICA8Y29ubmVjdGlvbj5naXQ6Ly9hbmRyb2lkLmdvb2dsZXNvdXJjZS5jb20vcGxhdGZvcm0vdG9vbHMvYmFzZS5naXQ8L2Nvbm5lY3Rpb24+CisgICAgPHVybD5odHRwczovL2FuZHJvaWQuZ29vZ2xlc291cmNlLmNvbS9wbGF0Zm9ybS90b29scy9iYXNlPC91cmw+CisgIDwvc2NtPgorICA8ZGVwZW5kZW5jaWVzPgorICAgIDxkZXBlbmRlbmN5PgorICAgICAgPGdyb3VwSWQ+Y29tLmFuZHJvaWQudG9vbHMuZGRtczwvZ3JvdXBJZD4KKyAgICAgIDxhcnRpZmFjdElkPmRkbWxpYjwvYXJ0aWZhY3RJZD4KKyAgICAgIDx2ZXJzaW9uPjI0LjMuMDwvdmVyc2lvbj4KKyAgICAgIDxzY29wZT5jb21waWxlPC9zY29wZT4KKyAgICA8L2RlcGVuZGVuY3k+CisgICAgPGRlcGVuZGVuY3k+CisgICAgICA8Z3JvdXBJZD5qdW5pdDwvZ3JvdXBJZD4KKyAgICAgIDxhcnRpZmFjdElkPmp1bml0PC9hcnRpZmFjdElkPgorICAgICAgPHZlcnNpb24+NC4xMjwvdmVyc2lvbj4KKyAgICAgIDxzY29wZT50ZXN0PC9zY29wZT4KKyAgICA8L2RlcGVuZGVuY3k+CisgIDwvZGVwZW5kZW5jaWVzPgorPC9wcm9qZWN0PgpkaWZmIC0tZ2l0IGEvY29tbW9uL29mZmxpbmUtbTIvY29tL2FuZHJvaWQvdG9vbHMvYnVpbGQvYnVpbGRlci8xLjMuMC9idWlsZGVyLTEuMy4wLXNvdXJjZXMuamFyIGIvY29tbW9uL29mZmxpbmUtbTIvY29tL2FuZHJvaWQvdG9vbHMvYnVpbGQvYnVpbGRlci8xLjMuMC9idWlsZGVyLTEuMy4wLXNvdXJjZXMuamFyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNiMTlkZTcKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9idWlsZC9idWlsZGVyLzEuMy4wL2J1aWxkZXItMS4zLjAtc291cmNlcy5qYXIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvY29tbW9uL29mZmxpbmUtbTIvY29tL2FuZHJvaWQvdG9vbHMvYnVpbGQvYnVpbGRlci8xLjMuMC9idWlsZGVyLTEuMy4wLmphciBiL2NvbW1vbi9vZmZsaW5lLW0yL2NvbS9hbmRyb2lkL3Rvb2xzL2J1aWxkL2J1aWxkZXIvMS4zLjAvYnVpbGRlci0xLjMuMC5qYXIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTQ0ZDVmZgotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9vZmZsaW5lLW0yL2NvbS9hbmRyb2lkL3Rvb2xzL2J1aWxkL2J1aWxkZXIvMS4zLjAvYnVpbGRlci0xLjMuMC5qYXIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvY29tbW9uL29mZmxpbmUtbTIvY29tL2FuZHJvaWQvdG9vbHMvYnVpbGQvYnVpbGRlci8xLjMuMC9idWlsZGVyLTEuMy4wLnBvbSBiL2NvbW1vbi9vZmZsaW5lLW0yL2NvbS9hbmRyb2lkL3Rvb2xzL2J1aWxkL2J1aWxkZXIvMS4zLjAvYnVpbGRlci0xLjMuMC5wb20KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWVhNzlmYgotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9vZmZsaW5lLW0yL2NvbS9hbmRyb2lkL3Rvb2xzL2J1aWxkL2J1aWxkZXIvMS4zLjAvYnVpbGRlci0xLjMuMC5wb20KQEAgLTAsMCArMSwxMzIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cHJvamVjdCB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCBodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy94c2QvbWF2ZW4tNC4wLjAueHNkIiB4bWxucz0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIgorICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiPgorICA8bW9kZWxWZXJzaW9uPjQuMC4wPC9tb2RlbFZlcnNpb24+CisgIDxncm91cElkPmNvbS5hbmRyb2lkLnRvb2xzLmJ1aWxkPC9ncm91cElkPgorICA8YXJ0aWZhY3RJZD5idWlsZGVyPC9hcnRpZmFjdElkPgorICA8dmVyc2lvbj4xLjMuMDwvdmVyc2lvbj4KKyAgPG5hbWU+QW5kcm9pZCBCdWlsZGVyIGxpYnJhcnk8L25hbWU+CisgIDxkZXNjcmlwdGlvbj5MaWJyYXJ5IHRvIGJ1aWxkIEFuZHJvaWQgYXBwbGljYXRpb25zLjwvZGVzY3JpcHRpb24+CisgIDx1cmw+aHR0cDovL3Rvb2xzLmFuZHJvaWQuY29tPC91cmw+CisgIDxpbmNlcHRpb25ZZWFyPjIwMDc8L2luY2VwdGlvblllYXI+CisgIDxsaWNlbnNlcz4KKyAgICA8bGljZW5zZT4KKyAgICAgIDxuYW1lPlRoZSBBcGFjaGUgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAyLjA8L25hbWU+CisgICAgICA8dXJsPmh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC50eHQ8L3VybD4KKyAgICAgIDxkaXN0cmlidXRpb24+cmVwbzwvZGlzdHJpYnV0aW9uPgorICAgIDwvbGljZW5zZT4KKyAgPC9saWNlbnNlcz4KKyAgPGRldmVsb3BlcnM+CisgICAgPGRldmVsb3Blcj4KKyAgICAgIDxuYW1lPlRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3Q8L25hbWU+CisgICAgPC9kZXZlbG9wZXI+CisgIDwvZGV2ZWxvcGVycz4KKyAgPHNjbT4KKyAgICA8Y29ubmVjdGlvbj5naXQ6Ly9hbmRyb2lkLmdvb2dsZXNvdXJjZS5jb20vcGxhdGZvcm0vdG9vbHMvYmFzZS5naXQ8L2Nvbm5lY3Rpb24+CisgICAgPHVybD5odHRwczovL2FuZHJvaWQuZ29vZ2xlc291cmNlLmNvbS9wbGF0Zm9ybS90b29scy9iYXNlPC91cmw+CisgIDwvc2NtPgorICA8ZGVwZW5kZW5jaWVzPgorICAgIDxkZXBlbmRlbmN5PgorICAgICAgPGdyb3VwSWQ+Y29tLmFuZHJvaWQudG9vbHM8L2dyb3VwSWQ+CisgICAgICA8YXJ0aWZhY3RJZD5zZGstY29tbW9uPC9hcnRpZmFjdElkPgorICAgICAgPHZlcnNpb24+MjQuMy4wPC92ZXJzaW9uPgorICAgICAgPHNjb3BlPmNvbXBpbGU8L3Njb3BlPgorICAgIDwvZGVwZW5kZW5jeT4KKyAgICA8ZGVwZW5kZW5jeT4KKyAgICAgIDxncm91cElkPmNvbS5hbmRyb2lkLnRvb2xzPC9ncm91cElkPgorICAgICAgPGFydGlmYWN0SWQ+Y29tbW9uPC9hcnRpZmFjdElkPgorICAgICAgPHZlcnNpb24+MjQuMy4wPC92ZXJzaW9uPgorICAgICAgPHNjb3BlPmNvbXBpbGU8L3Njb3BlPgorICAgIDwvZGVwZW5kZW5jeT4KKyAgICA8ZGVwZW5kZW5jeT4KKyAgICAgIDxncm91cElkPm9yZy5tb2NraXRvPC9ncm91cElkPgorICAgICAgPGFydGlmYWN0SWQ+bW9ja2l0by1hbGw8L2FydGlmYWN0SWQ+CisgICAgICA8dmVyc2lvbj4xLjkuNTwvdmVyc2lvbj4KKyAgICAgIDxzY29wZT50ZXN0PC9zY29wZT4KKyAgICA8L2RlcGVuZGVuY3k+CisgICAgPGRlcGVuZGVuY3k+CisgICAgICA8Z3JvdXBJZD5jb20uYW5kcm9pZC50b29sczwvZ3JvdXBJZD4KKyAgICAgIDxhcnRpZmFjdElkPnRlc3R1dGlsczwvYXJ0aWZhY3RJZD4KKyAgICAgIDx2ZXJzaW9uPjI0LjMuMDwvdmVyc2lvbj4KKyAgICAgIDxzY29wZT50ZXN0PC9zY29wZT4KKyAgICA8L2RlcGVuZGVuY3k+CisgICAgPGRlcGVuZGVuY3k+CisgICAgICA8Z3JvdXBJZD5vcmcuYm91bmN5Y2FzdGxlPC9ncm91cElkPgorICAgICAgPGFydGlmYWN0SWQ+YmNwcm92LWpkazE1b248L2FydGlmYWN0SWQ+CisgICAgICA8dmVyc2lvbj4xLjQ4PC92ZXJzaW9uPgorICAgICAgPHNjb3BlPmNvbXBpbGU8L3Njb3BlPgorICAgIDwvZGVwZW5kZW5jeT4KKyAgICA8ZGVwZW5kZW5jeT4KKyAgICAgIDxncm91cElkPmNvbS5hbmRyb2lkLnRvb2xzLmJ1aWxkPC9ncm91cElkPgorICAgICAgPGFydGlmYWN0SWQ+YnVpbGRlci1tb2RlbDwvYXJ0aWZhY3RJZD4KKyAgICAgIDx2ZXJzaW9uPjEuMy4wPC92ZXJzaW9uPgorICAgICAgPHNjb3BlPmNvbXBpbGU8L3Njb3BlPgorICAgIDwvZGVwZW5kZW5jeT4KKyAgICA8ZGVwZW5kZW5jeT4KKyAgICAgIDxncm91cElkPm9yZy5vdzIuYXNtPC9ncm91cElkPgorICAgICAgPGFydGlmYWN0SWQ+YXNtLXRyZWU8L2FydGlmYWN0SWQ+CisgICAgICA8dmVyc2lvbj41LjAuMzwvdmVyc2lvbj4KKyAgICAgIDxzY29wZT5jb21waWxlPC9zY29wZT4KKyAgICA8L2RlcGVuZGVuY3k+CisgICAgPGRlcGVuZGVuY3k+CisgICAgICA8Z3JvdXBJZD5jb20uc3F1YXJldXA8L2dyb3VwSWQ+CisgICAgICA8YXJ0aWZhY3RJZD5qYXZhd3JpdGVyPC9hcnRpZmFjdElkPgorICAgICAgPHZlcnNpb24+Mi41LjA8L3ZlcnNpb24+CisgICAgICA8c2NvcGU+Y29tcGlsZTwvc2NvcGU+CisgICAgPC9kZXBlbmRlbmN5PgorICAgIDxkZXBlbmRlbmN5PgorICAgICAgPGdyb3VwSWQ+Y29tLmFuZHJvaWQudG9vbHMuamlsbDwvZ3JvdXBJZD4KKyAgICAgIDxhcnRpZmFjdElkPmppbGwtYXBpPC9hcnRpZmFjdElkPgorICAgICAgPHZlcnNpb24+MC45LjA8L3ZlcnNpb24+CisgICAgICA8c2NvcGU+Y29tcGlsZTwvc2NvcGU+CisgICAgPC9kZXBlbmRlbmN5PgorICAgIDxkZXBlbmRlbmN5PgorICAgICAgPGdyb3VwSWQ+Y29tLmFuZHJvaWQudG9vbHMuZGRtczwvZ3JvdXBJZD4KKyAgICAgIDxhcnRpZmFjdElkPmRkbWxpYjwvYXJ0aWZhY3RJZD4KKyAgICAgIDx2ZXJzaW9uPjI0LjMuMDwvdmVyc2lvbj4KKyAgICAgIDxzY29wZT5jb21waWxlPC9zY29wZT4KKyAgICA8L2RlcGVuZGVuY3k+CisgICAgPGRlcGVuZGVuY3k+CisgICAgICA8Z3JvdXBJZD5qdW5pdDwvZ3JvdXBJZD4KKyAgICAgIDxhcnRpZmFjdElkPmp1bml0PC9hcnRpZmFjdElkPgorICAgICAgPHZlcnNpb24+NC4xMjwvdmVyc2lvbj4KKyAgICAgIDxzY29wZT50ZXN0PC9zY29wZT4KKyAgICA8L2RlcGVuZGVuY3k+CisgICAgPGRlcGVuZGVuY3k+CisgICAgICA8Z3JvdXBJZD5jb20uYW5kcm9pZC50b29sczwvZ3JvdXBJZD4KKyAgICAgIDxhcnRpZmFjdElkPnNka2xpYjwvYXJ0aWZhY3RJZD4KKyAgICAgIDx2ZXJzaW9uPjI0LjMuMDwvdmVyc2lvbj4KKyAgICAgIDxzY29wZT5jb21waWxlPC9zY29wZT4KKyAgICA8L2RlcGVuZGVuY3k+CisgICAgPGRlcGVuZGVuY3k+CisgICAgICA8Z3JvdXBJZD5jb20uYW5kcm9pZC50b29scy5idWlsZDwvZ3JvdXBJZD4KKyAgICAgIDxhcnRpZmFjdElkPm1hbmlmZXN0LW1lcmdlcjwvYXJ0aWZhY3RJZD4KKyAgICAgIDx2ZXJzaW9uPjI0LjMuMDwvdmVyc2lvbj4KKyAgICAgIDxzY29wZT5jb21waWxlPC9zY29wZT4KKyAgICA8L2RlcGVuZGVuY3k+CisgICAgPGRlcGVuZGVuY3k+CisgICAgICA8Z3JvdXBJZD5jb20uYW5kcm9pZC50b29scy5qYWNrPC9ncm91cElkPgorICAgICAgPGFydGlmYWN0SWQ+amFjay1hcGk8L2FydGlmYWN0SWQ+CisgICAgICA8dmVyc2lvbj4wLjkuMDwvdmVyc2lvbj4KKyAgICAgIDxzY29wZT5jb21waWxlPC9zY29wZT4KKyAgICA8L2RlcGVuZGVuY3k+CisgICAgPGRlcGVuZGVuY3k+CisgICAgICA8Z3JvdXBJZD5vcmcub3cyLmFzbTwvZ3JvdXBJZD4KKyAgICAgIDxhcnRpZmFjdElkPmFzbTwvYXJ0aWZhY3RJZD4KKyAgICAgIDx2ZXJzaW9uPjUuMC4zPC92ZXJzaW9uPgorICAgICAgPHNjb3BlPmNvbXBpbGU8L3Njb3BlPgorICAgIDwvZGVwZW5kZW5jeT4KKyAgICA8ZGVwZW5kZW5jeT4KKyAgICAgIDxncm91cElkPm9yZy5ib3VuY3ljYXN0bGU8L2dyb3VwSWQ+CisgICAgICA8YXJ0aWZhY3RJZD5iY3BraXgtamRrMTVvbjwvYXJ0aWZhY3RJZD4KKyAgICAgIDx2ZXJzaW9uPjEuNDg8L3ZlcnNpb24+CisgICAgICA8c2NvcGU+Y29tcGlsZTwvc2NvcGU+CisgICAgPC9kZXBlbmRlbmN5PgorICAgIDxkZXBlbmRlbmN5PgorICAgICAgPGdyb3VwSWQ+Y29tLmFuZHJvaWQudG9vbHMuYnVpbGQ8L2dyb3VwSWQ+CisgICAgICA8YXJ0aWZhY3RJZD5idWlsZGVyLXRlc3QtYXBpPC9hcnRpZmFjdElkPgorICAgICAgPHZlcnNpb24+MS4zLjA8L3ZlcnNpb24+CisgICAgICA8c2NvcGU+Y29tcGlsZTwvc2NvcGU+CisgICAgPC9kZXBlbmRlbmN5PgorICA8L2RlcGVuZGVuY2llcz4KKzwvcHJvamVjdD4KZGlmZiAtLWdpdCBhL2NvbW1vbi9vZmZsaW5lLW0yL2NvbS9hbmRyb2lkL3Rvb2xzL2J1aWxkL2dyYWRsZS1jb3JlLzEuMy4wL2dyYWRsZS1jb3JlLTEuMy4wLXNvdXJjZXMuamFyIGIvY29tbW9uL29mZmxpbmUtbTIvY29tL2FuZHJvaWQvdG9vbHMvYnVpbGQvZ3JhZGxlLWNvcmUvMS4zLjAvZ3JhZGxlLWNvcmUtMS4zLjAtc291cmNlcy5qYXIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDA0NDMzYQotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9vZmZsaW5lLW0yL2NvbS9hbmRyb2lkL3Rvb2xzL2J1aWxkL2dyYWRsZS1jb3JlLzEuMy4wL2dyYWRsZS1jb3JlLTEuMy4wLXNvdXJjZXMuamFyCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2NvbW1vbi9vZmZsaW5lLW0yL2NvbS9hbmRyb2lkL3Rvb2xzL2J1aWxkL2dyYWRsZS1jb3JlLzEuMy4wL2dyYWRsZS1jb3JlLTEuMy4wLmphciBiL2NvbW1vbi9vZmZsaW5lLW0yL2NvbS9hbmRyb2lkL3Rvb2xzL2J1aWxkL2dyYWRsZS1jb3JlLzEuMy4wL2dyYWRsZS1jb3JlLTEuMy4wLmphcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZGFhOTk0Ci0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL29mZmxpbmUtbTIvY29tL2FuZHJvaWQvdG9vbHMvYnVpbGQvZ3JhZGxlLWNvcmUvMS4zLjAvZ3JhZGxlLWNvcmUtMS4zLjAuamFyCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2NvbW1vbi9vZmZsaW5lLW0yL2NvbS9hbmRyb2lkL3Rvb2xzL2J1aWxkL2dyYWRsZS1jb3JlLzEuMy4wL2dyYWRsZS1jb3JlLTEuMy4wLnBvbSBiL2NvbW1vbi9vZmZsaW5lLW0yL2NvbS9hbmRyb2lkL3Rvb2xzL2J1aWxkL2dyYWRsZS1jb3JlLzEuMy4wL2dyYWRsZS1jb3JlLTEuMy4wLnBvbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MTM0OGMwCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL29mZmxpbmUtbTIvY29tL2FuZHJvaWQvdG9vbHMvYnVpbGQvZ3JhZGxlLWNvcmUvMS4zLjAvZ3JhZGxlLWNvcmUtMS4zLjAucG9tCkBAIC0wLDAgKzEsNzIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cHJvamVjdCB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCBodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy94c2QvbWF2ZW4tNC4wLjAueHNkIiB4bWxucz0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIgorICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiPgorICA8bW9kZWxWZXJzaW9uPjQuMC4wPC9tb2RlbFZlcnNpb24+CisgIDxncm91cElkPmNvbS5hbmRyb2lkLnRvb2xzLmJ1aWxkPC9ncm91cElkPgorICA8YXJ0aWZhY3RJZD5ncmFkbGUtY29yZTwvYXJ0aWZhY3RJZD4KKyAgPHZlcnNpb24+MS4zLjA8L3ZlcnNpb24+CisgIDxuYW1lPkNvcmUgTGlicmFyeSBmb3IgQW5kcm9pZCBHcmFkbGUgUGx1Zy1pbjwvbmFtZT4KKyAgPGRlc2NyaXB0aW9uPkNvcmUgbGlicmFyeSB0byBidWlsZCBBbmRyb2lkIEdyYWRsZSBwbHVnaW4uPC9kZXNjcmlwdGlvbj4KKyAgPHVybD5odHRwOi8vdG9vbHMuYW5kcm9pZC5jb208L3VybD4KKyAgPGluY2VwdGlvblllYXI+MjAwNzwvaW5jZXB0aW9uWWVhcj4KKyAgPGxpY2Vuc2VzPgorICAgIDxsaWNlbnNlPgorICAgICAgPG5hbWU+VGhlIEFwYWNoZSBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDIuMDwvbmFtZT4KKyAgICAgIDx1cmw+aHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLnR4dDwvdXJsPgorICAgICAgPGRpc3RyaWJ1dGlvbj5yZXBvPC9kaXN0cmlidXRpb24+CisgICAgPC9saWNlbnNlPgorICA8L2xpY2Vuc2VzPgorICA8ZGV2ZWxvcGVycz4KKyAgICA8ZGV2ZWxvcGVyPgorICAgICAgPG5hbWU+VGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdDwvbmFtZT4KKyAgICA8L2RldmVsb3Blcj4KKyAgPC9kZXZlbG9wZXJzPgorICA8c2NtPgorICAgIDxjb25uZWN0aW9uPmdpdDovL2FuZHJvaWQuZ29vZ2xlc291cmNlLmNvbS9wbGF0Zm9ybS90b29scy9iYXNlLmdpdDwvY29ubmVjdGlvbj4KKyAgICA8dXJsPmh0dHBzOi8vYW5kcm9pZC5nb29nbGVzb3VyY2UuY29tL3BsYXRmb3JtL3Rvb2xzL2Jhc2U8L3VybD4KKyAgPC9zY20+CisgIDxkZXBlbmRlbmNpZXM+CisgICAgPGRlcGVuZGVuY3k+CisgICAgICA8Z3JvdXBJZD5jb20uYW5kcm9pZC50b29scy5idWlsZDwvZ3JvdXBJZD4KKyAgICAgIDxhcnRpZmFjdElkPmJ1aWxkZXI8L2FydGlmYWN0SWQ+CisgICAgICA8dmVyc2lvbj4xLjMuMDwvdmVyc2lvbj4KKyAgICAgIDxzY29wZT5jb21waWxlPC9zY29wZT4KKyAgICA8L2RlcGVuZGVuY3k+CisgICAgPGRlcGVuZGVuY3k+CisgICAgICA8Z3JvdXBJZD50b29scy5iYXNlPC9ncm91cElkPgorICAgICAgPGFydGlmYWN0SWQ+cHJvamVjdC10ZXN0LWxpYjwvYXJ0aWZhY3RJZD4KKyAgICAgIDx2ZXJzaW9uPnVuc3BlY2lmaWVkPC92ZXJzaW9uPgorICAgICAgPHNjb3BlPnRlc3Q8L3Njb3BlPgorICAgIDwvZGVwZW5kZW5jeT4KKyAgICA8ZGVwZW5kZW5jeT4KKyAgICAgIDxncm91cElkPmNvbS5hbmRyb2lkLnRvb2xzLmxpbnQ8L2dyb3VwSWQ+CisgICAgICA8YXJ0aWZhY3RJZD5saW50PC9hcnRpZmFjdElkPgorICAgICAgPHZlcnNpb24+MjQuMy4wPC92ZXJzaW9uPgorICAgICAgPHNjb3BlPmNvbXBpbGU8L3Njb3BlPgorICAgIDwvZGVwZW5kZW5jeT4KKyAgICA8ZGVwZW5kZW5jeT4KKyAgICAgIDxncm91cElkPm9yZy5tb2NraXRvPC9ncm91cElkPgorICAgICAgPGFydGlmYWN0SWQ+bW9ja2l0by1hbGw8L2FydGlmYWN0SWQ+CisgICAgICA8dmVyc2lvbj4xLjkuNTwvdmVyc2lvbj4KKyAgICAgIDxzY29wZT50ZXN0PC9zY29wZT4KKyAgICA8L2RlcGVuZGVuY3k+CisgICAgPGRlcGVuZGVuY3k+CisgICAgICA8Z3JvdXBJZD5jb20uYW5kcm9pZC50b29sczwvZ3JvdXBJZD4KKyAgICAgIDxhcnRpZmFjdElkPnRlc3R1dGlsczwvYXJ0aWZhY3RJZD4KKyAgICAgIDx2ZXJzaW9uPjI0LjMuMDwvdmVyc2lvbj4KKyAgICAgIDxzY29wZT50ZXN0PC9zY29wZT4KKyAgICA8L2RlcGVuZGVuY3k+CisgICAgPGRlcGVuZGVuY3k+CisgICAgICA8Z3JvdXBJZD5qdW5pdDwvZ3JvdXBJZD4KKyAgICAgIDxhcnRpZmFjdElkPmp1bml0PC9hcnRpZmFjdElkPgorICAgICAgPHZlcnNpb24+NC4xMjwvdmVyc2lvbj4KKyAgICAgIDxzY29wZT50ZXN0PC9zY29wZT4KKyAgICA8L2RlcGVuZGVuY3k+CisgICAgPGRlcGVuZGVuY3k+CisgICAgICA8Z3JvdXBJZD5uZXQuc2YucHJvZ3VhcmQ8L2dyb3VwSWQ+CisgICAgICA8YXJ0aWZhY3RJZD5wcm9ndWFyZC1ncmFkbGU8L2FydGlmYWN0SWQ+CisgICAgICA8dmVyc2lvbj41LjIuMTwvdmVyc2lvbj4KKyAgICAgIDxzY29wZT5jb21waWxlPC9zY29wZT4KKyAgICA8L2RlcGVuZGVuY3k+CisgIDwvZGVwZW5kZW5jaWVzPgorPC9wcm9qZWN0PgpkaWZmIC0tZ2l0IGEvY29tbW9uL29mZmxpbmUtbTIvY29tL2FuZHJvaWQvdG9vbHMvYnVpbGQvZ3JhZGxlLzEuMy4wL2dyYWRsZS0xLjMuMC1zb3VyY2VzLmphciBiL2NvbW1vbi9vZmZsaW5lLW0yL2NvbS9hbmRyb2lkL3Rvb2xzL2J1aWxkL2dyYWRsZS8xLjMuMC9ncmFkbGUtMS4zLjAtc291cmNlcy5qYXIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmMxOWRlMgotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9vZmZsaW5lLW0yL2NvbS9hbmRyb2lkL3Rvb2xzL2J1aWxkL2dyYWRsZS8xLjMuMC9ncmFkbGUtMS4zLjAtc291cmNlcy5qYXIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvY29tbW9uL29mZmxpbmUtbTIvY29tL2FuZHJvaWQvdG9vbHMvYnVpbGQvZ3JhZGxlLzEuMy4wL2dyYWRsZS0xLjMuMC5qYXIgYi9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9idWlsZC9ncmFkbGUvMS4zLjAvZ3JhZGxlLTEuMy4wLmphcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YjBmZmU5Ci0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL29mZmxpbmUtbTIvY29tL2FuZHJvaWQvdG9vbHMvYnVpbGQvZ3JhZGxlLzEuMy4wL2dyYWRsZS0xLjMuMC5qYXIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvY29tbW9uL29mZmxpbmUtbTIvY29tL2FuZHJvaWQvdG9vbHMvYnVpbGQvZ3JhZGxlLzEuMy4wL2dyYWRsZS0xLjMuMC5wb20gYi9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9idWlsZC9ncmFkbGUvMS4zLjAvZ3JhZGxlLTEuMy4wLnBvbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zN2VhOWI4Ci0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL29mZmxpbmUtbTIvY29tL2FuZHJvaWQvdG9vbHMvYnVpbGQvZ3JhZGxlLzEuMy4wL2dyYWRsZS0xLjMuMC5wb20KQEAgLTAsMCArMSw0OCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxwcm9qZWN0IHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL3hzZC9tYXZlbi00LjAuMC54c2QiIHhtbG5zPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAiCisgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSI+CisgIDxtb2RlbFZlcnNpb24+NC4wLjA8L21vZGVsVmVyc2lvbj4KKyAgPGdyb3VwSWQ+Y29tLmFuZHJvaWQudG9vbHMuYnVpbGQ8L2dyb3VwSWQ+CisgIDxhcnRpZmFjdElkPmdyYWRsZTwvYXJ0aWZhY3RJZD4KKyAgPHZlcnNpb24+MS4zLjA8L3ZlcnNpb24+CisgIDxuYW1lPkdyYWRsZSBQbHVnLWluIGZvciBBbmRyb2lkPC9uYW1lPgorICA8ZGVzY3JpcHRpb24+R3JhZGxlIHBsdWctaW4gdG8gYnVpbGQgQW5kcm9pZCBhcHBsaWNhdGlvbnMuPC9kZXNjcmlwdGlvbj4KKyAgPHVybD5odHRwOi8vdG9vbHMuYW5kcm9pZC5jb208L3VybD4KKyAgPGluY2VwdGlvblllYXI+MjAwNzwvaW5jZXB0aW9uWWVhcj4KKyAgPGxpY2Vuc2VzPgorICAgIDxsaWNlbnNlPgorICAgICAgPG5hbWU+VGhlIEFwYWNoZSBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDIuMDwvbmFtZT4KKyAgICAgIDx1cmw+aHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLnR4dDwvdXJsPgorICAgICAgPGRpc3RyaWJ1dGlvbj5yZXBvPC9kaXN0cmlidXRpb24+CisgICAgPC9saWNlbnNlPgorICA8L2xpY2Vuc2VzPgorICA8ZGV2ZWxvcGVycz4KKyAgICA8ZGV2ZWxvcGVyPgorICAgICAgPG5hbWU+VGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdDwvbmFtZT4KKyAgICA8L2RldmVsb3Blcj4KKyAgPC9kZXZlbG9wZXJzPgorICA8c2NtPgorICAgIDxjb25uZWN0aW9uPmdpdDovL2FuZHJvaWQuZ29vZ2xlc291cmNlLmNvbS9wbGF0Zm9ybS90b29scy9iYXNlLmdpdDwvY29ubmVjdGlvbj4KKyAgICA8dXJsPmh0dHBzOi8vYW5kcm9pZC5nb29nbGVzb3VyY2UuY29tL3BsYXRmb3JtL3Rvb2xzL2Jhc2U8L3VybD4KKyAgPC9zY20+CisgIDxkZXBlbmRlbmNpZXM+CisgICAgPGRlcGVuZGVuY3k+CisgICAgICA8Z3JvdXBJZD50b29scy5iYXNlPC9ncm91cElkPgorICAgICAgPGFydGlmYWN0SWQ+cHJvamVjdC10ZXN0LWxpYjwvYXJ0aWZhY3RJZD4KKyAgICAgIDx2ZXJzaW9uPnVuc3BlY2lmaWVkPC92ZXJzaW9uPgorICAgICAgPHNjb3BlPnRlc3Q8L3Njb3BlPgorICAgIDwvZGVwZW5kZW5jeT4KKyAgICA8ZGVwZW5kZW5jeT4KKyAgICAgIDxncm91cElkPmp1bml0PC9ncm91cElkPgorICAgICAgPGFydGlmYWN0SWQ+anVuaXQ8L2FydGlmYWN0SWQ+CisgICAgICA8dmVyc2lvbj40LjEyPC92ZXJzaW9uPgorICAgICAgPHNjb3BlPnRlc3Q8L3Njb3BlPgorICAgIDwvZGVwZW5kZW5jeT4KKyAgICA8ZGVwZW5kZW5jeT4KKyAgICAgIDxncm91cElkPmNvbS5hbmRyb2lkLnRvb2xzLmJ1aWxkPC9ncm91cElkPgorICAgICAgPGFydGlmYWN0SWQ+Z3JhZGxlLWNvcmU8L2FydGlmYWN0SWQ+CisgICAgICA8dmVyc2lvbj4xLjMuMDwvdmVyc2lvbj4KKyAgICAgIDxzY29wZT5jb21waWxlPC9zY29wZT4KKyAgICA8L2RlcGVuZGVuY3k+CisgIDwvZGVwZW5kZW5jaWVzPgorPC9wcm9qZWN0PgpkaWZmIC0tZ2l0IGEvY29tbW9uL29mZmxpbmUtbTIvY29tL2FuZHJvaWQvdG9vbHMvYnVpbGQvbWFuaWZlc3QtbWVyZ2VyLzI0LjMuMC9tYW5pZmVzdC1tZXJnZXItMjQuMy4wLXNvdXJjZXMuamFyIGIvY29tbW9uL29mZmxpbmUtbTIvY29tL2FuZHJvaWQvdG9vbHMvYnVpbGQvbWFuaWZlc3QtbWVyZ2VyLzI0LjMuMC9tYW5pZmVzdC1tZXJnZXItMjQuMy4wLXNvdXJjZXMuamFyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMwMzQwZjYKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9idWlsZC9tYW5pZmVzdC1tZXJnZXIvMjQuMy4wL21hbmlmZXN0LW1lcmdlci0yNC4zLjAtc291cmNlcy5qYXIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvY29tbW9uL29mZmxpbmUtbTIvY29tL2FuZHJvaWQvdG9vbHMvYnVpbGQvbWFuaWZlc3QtbWVyZ2VyLzI0LjMuMC9tYW5pZmVzdC1tZXJnZXItMjQuMy4wLmphciBiL2NvbW1vbi9vZmZsaW5lLW0yL2NvbS9hbmRyb2lkL3Rvb2xzL2J1aWxkL21hbmlmZXN0LW1lcmdlci8yNC4zLjAvbWFuaWZlc3QtbWVyZ2VyLTI0LjMuMC5qYXIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWQyNjhmMQotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9vZmZsaW5lLW0yL2NvbS9hbmRyb2lkL3Rvb2xzL2J1aWxkL21hbmlmZXN0LW1lcmdlci8yNC4zLjAvbWFuaWZlc3QtbWVyZ2VyLTI0LjMuMC5qYXIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvY29tbW9uL29mZmxpbmUtbTIvY29tL2FuZHJvaWQvdG9vbHMvYnVpbGQvbWFuaWZlc3QtbWVyZ2VyLzI0LjMuMC9tYW5pZmVzdC1tZXJnZXItMjQuMy4wLnBvbSBiL2NvbW1vbi9vZmZsaW5lLW0yL2NvbS9hbmRyb2lkL3Rvb2xzL2J1aWxkL21hbmlmZXN0LW1lcmdlci8yNC4zLjAvbWFuaWZlc3QtbWVyZ2VyLTI0LjMuMC5wb20KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTI3MDFjYgotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9vZmZsaW5lLW0yL2NvbS9hbmRyb2lkL3Rvb2xzL2J1aWxkL21hbmlmZXN0LW1lcmdlci8yNC4zLjAvbWFuaWZlc3QtbWVyZ2VyLTI0LjMuMC5wb20KQEAgLTAsMCArMSw3MiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxwcm9qZWN0IHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL3hzZC9tYXZlbi00LjAuMC54c2QiIHhtbG5zPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAiCisgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSI+CisgIDxtb2RlbFZlcnNpb24+NC4wLjA8L21vZGVsVmVyc2lvbj4KKyAgPGdyb3VwSWQ+Y29tLmFuZHJvaWQudG9vbHMuYnVpbGQ8L2dyb3VwSWQ+CisgIDxhcnRpZmFjdElkPm1hbmlmZXN0LW1lcmdlcjwvYXJ0aWZhY3RJZD4KKyAgPHZlcnNpb24+MjQuMy4wPC92ZXJzaW9uPgorICA8bmFtZT5BbmRyb2lkIFRvb2xzIE1hbmlmZXN0IE1lcmdlciBsaWJyYXJ5PC9uYW1lPgorICA8ZGVzY3JpcHRpb24+QSBMaWJyYXJ5IHRvIG1lcmdlIEFuZHJvaWQgbWFuaWZlc3RzLjwvZGVzY3JpcHRpb24+CisgIDx1cmw+aHR0cDovL3Rvb2xzLmFuZHJvaWQuY29tPC91cmw+CisgIDxpbmNlcHRpb25ZZWFyPjIwMDc8L2luY2VwdGlvblllYXI+CisgIDxsaWNlbnNlcz4KKyAgICA8bGljZW5zZT4KKyAgICAgIDxuYW1lPlRoZSBBcGFjaGUgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAyLjA8L25hbWU+CisgICAgICA8dXJsPmh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC50eHQ8L3VybD4KKyAgICAgIDxkaXN0cmlidXRpb24+cmVwbzwvZGlzdHJpYnV0aW9uPgorICAgIDwvbGljZW5zZT4KKyAgPC9saWNlbnNlcz4KKyAgPGRldmVsb3BlcnM+CisgICAgPGRldmVsb3Blcj4KKyAgICAgIDxuYW1lPlRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3Q8L25hbWU+CisgICAgPC9kZXZlbG9wZXI+CisgIDwvZGV2ZWxvcGVycz4KKyAgPHNjbT4KKyAgICA8Y29ubmVjdGlvbj5naXQ6Ly9hbmRyb2lkLmdvb2dsZXNvdXJjZS5jb20vcGxhdGZvcm0vdG9vbHMvYmFzZS5naXQ8L2Nvbm5lY3Rpb24+CisgICAgPHVybD5odHRwczovL2FuZHJvaWQuZ29vZ2xlc291cmNlLmNvbS9wbGF0Zm9ybS90b29scy9iYXNlPC91cmw+CisgIDwvc2NtPgorICA8ZGVwZW5kZW5jaWVzPgorICAgIDxkZXBlbmRlbmN5PgorICAgICAgPGdyb3VwSWQ+Y29tLmFuZHJvaWQudG9vbHM8L2dyb3VwSWQ+CisgICAgICA8YXJ0aWZhY3RJZD5zZGstY29tbW9uPC9hcnRpZmFjdElkPgorICAgICAgPHZlcnNpb24+MjQuMy4wPC92ZXJzaW9uPgorICAgICAgPHNjb3BlPmNvbXBpbGU8L3Njb3BlPgorICAgIDwvZGVwZW5kZW5jeT4KKyAgICA8ZGVwZW5kZW5jeT4KKyAgICAgIDxncm91cElkPmNvbS5hbmRyb2lkLnRvb2xzPC9ncm91cElkPgorICAgICAgPGFydGlmYWN0SWQ+Y29tbW9uPC9hcnRpZmFjdElkPgorICAgICAgPHZlcnNpb24+MjQuMy4wPC92ZXJzaW9uPgorICAgICAgPHNjb3BlPmNvbXBpbGU8L3Njb3BlPgorICAgIDwvZGVwZW5kZW5jeT4KKyAgICA8ZGVwZW5kZW5jeT4KKyAgICAgIDxncm91cElkPm5ldC5zZi5reG1sPC9ncm91cElkPgorICAgICAgPGFydGlmYWN0SWQ+a3htbDI8L2FydGlmYWN0SWQ+CisgICAgICA8dmVyc2lvbj4yLjMuMDwvdmVyc2lvbj4KKyAgICAgIDxzY29wZT5jb21waWxlPC9zY29wZT4KKyAgICA8L2RlcGVuZGVuY3k+CisgICAgPGRlcGVuZGVuY3k+CisgICAgICA8Z3JvdXBJZD5vcmcubW9ja2l0bzwvZ3JvdXBJZD4KKyAgICAgIDxhcnRpZmFjdElkPm1vY2tpdG8tYWxsPC9hcnRpZmFjdElkPgorICAgICAgPHZlcnNpb24+MS45LjU8L3ZlcnNpb24+CisgICAgICA8c2NvcGU+dGVzdDwvc2NvcGU+CisgICAgPC9kZXBlbmRlbmN5PgorICAgIDxkZXBlbmRlbmN5PgorICAgICAgPGdyb3VwSWQ+Y29tLmFuZHJvaWQudG9vbHM8L2dyb3VwSWQ+CisgICAgICA8YXJ0aWZhY3RJZD5zZGtsaWI8L2FydGlmYWN0SWQ+CisgICAgICA8dmVyc2lvbj4yNC4zLjA8L3ZlcnNpb24+CisgICAgICA8c2NvcGU+Y29tcGlsZTwvc2NvcGU+CisgICAgPC9kZXBlbmRlbmN5PgorICAgIDxkZXBlbmRlbmN5PgorICAgICAgPGdyb3VwSWQ+anVuaXQ8L2dyb3VwSWQ+CisgICAgICA8YXJ0aWZhY3RJZD5qdW5pdDwvYXJ0aWZhY3RJZD4KKyAgICAgIDx2ZXJzaW9uPjQuMTI8L3ZlcnNpb24+CisgICAgICA8c2NvcGU+dGVzdDwvc2NvcGU+CisgICAgPC9kZXBlbmRlbmN5PgorICAgIDxkZXBlbmRlbmN5PgorICAgICAgPGdyb3VwSWQ+Y29tLmdvb2dsZS5jb2RlLmdzb248L2dyb3VwSWQ+CisgICAgICA8YXJ0aWZhY3RJZD5nc29uPC9hcnRpZmFjdElkPgorICAgICAgPHZlcnNpb24+Mi4yLjQ8L3ZlcnNpb24+CisgICAgICA8c2NvcGU+Y29tcGlsZTwvc2NvcGU+CisgICAgPC9kZXBlbmRlbmN5PgorICA8L2RlcGVuZGVuY2llcz4KKzwvcHJvamVjdD4KZGlmZiAtLWdpdCBhL2NvbW1vbi9vZmZsaW5lLW0yL2NvbS9hbmRyb2lkL3Rvb2xzL2NvbW1vbi8yNC4zLjAvY29tbW9uLTI0LjMuMC1zb3VyY2VzLmphciBiL2NvbW1vbi9vZmZsaW5lLW0yL2NvbS9hbmRyb2lkL3Rvb2xzL2NvbW1vbi8yNC4zLjAvY29tbW9uLTI0LjMuMC1zb3VyY2VzLmphcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YjQ0NWJlCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL29mZmxpbmUtbTIvY29tL2FuZHJvaWQvdG9vbHMvY29tbW9uLzI0LjMuMC9jb21tb24tMjQuMy4wLXNvdXJjZXMuamFyCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2NvbW1vbi9vZmZsaW5lLW0yL2NvbS9hbmRyb2lkL3Rvb2xzL2NvbW1vbi8yNC4zLjAvY29tbW9uLTI0LjMuMC5qYXIgYi9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9jb21tb24vMjQuMy4wL2NvbW1vbi0yNC4zLjAuamFyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYyNTAyYjAKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9jb21tb24vMjQuMy4wL2NvbW1vbi0yNC4zLjAuamFyCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2NvbW1vbi9vZmZsaW5lLW0yL2NvbS9hbmRyb2lkL3Rvb2xzL2NvbW1vbi8yNC4zLjAvY29tbW9uLTI0LjMuMC5wb20gYi9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9jb21tb24vMjQuMy4wL2NvbW1vbi0yNC4zLjAucG9tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQzZWUyNTEKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9jb21tb24vMjQuMy4wL2NvbW1vbi0yNC4zLjAucG9tCkBAIC0wLDAgKzEsNDggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cHJvamVjdCB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCBodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy94c2QvbWF2ZW4tNC4wLjAueHNkIiB4bWxucz0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIgorICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiPgorICA8bW9kZWxWZXJzaW9uPjQuMC4wPC9tb2RlbFZlcnNpb24+CisgIDxncm91cElkPmNvbS5hbmRyb2lkLnRvb2xzPC9ncm91cElkPgorICA8YXJ0aWZhY3RJZD5jb21tb248L2FydGlmYWN0SWQ+CisgIDx2ZXJzaW9uPjI0LjMuMDwvdmVyc2lvbj4KKyAgPG5hbWU+QW5kcm9pZCBUb29scyBjb21tb24gbGlicmFyeTwvbmFtZT4KKyAgPGRlc2NyaXB0aW9uPmNvbW1vbiBsaWJyYXJ5IHVzZWQgYnkgb3RoZXIgQW5kcm9pZCB0b29scyBsaWJyYXJpZXMuPC9kZXNjcmlwdGlvbj4KKyAgPHVybD5odHRwOi8vdG9vbHMuYW5kcm9pZC5jb208L3VybD4KKyAgPGluY2VwdGlvblllYXI+MjAwNzwvaW5jZXB0aW9uWWVhcj4KKyAgPGxpY2Vuc2VzPgorICAgIDxsaWNlbnNlPgorICAgICAgPG5hbWU+VGhlIEFwYWNoZSBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDIuMDwvbmFtZT4KKyAgICAgIDx1cmw+aHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLnR4dDwvdXJsPgorICAgICAgPGRpc3RyaWJ1dGlvbj5yZXBvPC9kaXN0cmlidXRpb24+CisgICAgPC9saWNlbnNlPgorICA8L2xpY2Vuc2VzPgorICA8ZGV2ZWxvcGVycz4KKyAgICA8ZGV2ZWxvcGVyPgorICAgICAgPG5hbWU+VGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdDwvbmFtZT4KKyAgICA8L2RldmVsb3Blcj4KKyAgPC9kZXZlbG9wZXJzPgorICA8c2NtPgorICAgIDxjb25uZWN0aW9uPmdpdDovL2FuZHJvaWQuZ29vZ2xlc291cmNlLmNvbS9wbGF0Zm9ybS90b29scy9iYXNlLmdpdDwvY29ubmVjdGlvbj4KKyAgICA8dXJsPmh0dHBzOi8vYW5kcm9pZC5nb29nbGVzb3VyY2UuY29tL3BsYXRmb3JtL3Rvb2xzL2Jhc2U8L3VybD4KKyAgPC9zY20+CisgIDxkZXBlbmRlbmNpZXM+CisgICAgPGRlcGVuZGVuY3k+CisgICAgICA8Z3JvdXBJZD5jb20uZ29vZ2xlLmd1YXZhPC9ncm91cElkPgorICAgICAgPGFydGlmYWN0SWQ+Z3VhdmE8L2FydGlmYWN0SWQ+CisgICAgICA8dmVyc2lvbj4xNy4wPC92ZXJzaW9uPgorICAgICAgPHNjb3BlPmNvbXBpbGU8L3Njb3BlPgorICAgIDwvZGVwZW5kZW5jeT4KKyAgICA8ZGVwZW5kZW5jeT4KKyAgICAgIDxncm91cElkPmNvbS5hbmRyb2lkLnRvb2xzPC9ncm91cElkPgorICAgICAgPGFydGlmYWN0SWQ+YW5ub3RhdGlvbnM8L2FydGlmYWN0SWQ+CisgICAgICA8dmVyc2lvbj4yNC4zLjA8L3ZlcnNpb24+CisgICAgICA8c2NvcGU+Y29tcGlsZTwvc2NvcGU+CisgICAgPC9kZXBlbmRlbmN5PgorICAgIDxkZXBlbmRlbmN5PgorICAgICAgPGdyb3VwSWQ+anVuaXQ8L2dyb3VwSWQ+CisgICAgICA8YXJ0aWZhY3RJZD5qdW5pdDwvYXJ0aWZhY3RJZD4KKyAgICAgIDx2ZXJzaW9uPjQuMTI8L3ZlcnNpb24+CisgICAgICA8c2NvcGU+dGVzdDwvc2NvcGU+CisgICAgPC9kZXBlbmRlbmN5PgorICA8L2RlcGVuZGVuY2llcz4KKzwvcHJvamVjdD4KZGlmZiAtLWdpdCBhL2NvbW1vbi9vZmZsaW5lLW0yL2NvbS9hbmRyb2lkL3Rvb2xzL2RkbXMvZGRtbGliLzI0LjMuMC9kZG1saWItMjQuMy4wLXNvdXJjZXMuamFyIGIvY29tbW9uL29mZmxpbmUtbTIvY29tL2FuZHJvaWQvdG9vbHMvZGRtcy9kZG1saWIvMjQuMy4wL2RkbWxpYi0yNC4zLjAtc291cmNlcy5qYXIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmE3NTZjMQotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9vZmZsaW5lLW0yL2NvbS9hbmRyb2lkL3Rvb2xzL2RkbXMvZGRtbGliLzI0LjMuMC9kZG1saWItMjQuMy4wLXNvdXJjZXMuamFyCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2NvbW1vbi9vZmZsaW5lLW0yL2NvbS9hbmRyb2lkL3Rvb2xzL2RkbXMvZGRtbGliLzI0LjMuMC9kZG1saWItMjQuMy4wLmphciBiL2NvbW1vbi9vZmZsaW5lLW0yL2NvbS9hbmRyb2lkL3Rvb2xzL2RkbXMvZGRtbGliLzI0LjMuMC9kZG1saWItMjQuMy4wLmphcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MWQzZTU3Ci0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL29mZmxpbmUtbTIvY29tL2FuZHJvaWQvdG9vbHMvZGRtcy9kZG1saWIvMjQuMy4wL2RkbWxpYi0yNC4zLjAuamFyCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2NvbW1vbi9vZmZsaW5lLW0yL2NvbS9hbmRyb2lkL3Rvb2xzL2RkbXMvZGRtbGliLzI0LjMuMC9kZG1saWItMjQuMy4wLnBvbSBiL2NvbW1vbi9vZmZsaW5lLW0yL2NvbS9hbmRyb2lkL3Rvb2xzL2RkbXMvZGRtbGliLzI0LjMuMC9kZG1saWItMjQuMy4wLnBvbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNDU5ZjkyCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL29mZmxpbmUtbTIvY29tL2FuZHJvaWQvdG9vbHMvZGRtcy9kZG1saWIvMjQuMy4wL2RkbWxpYi0yNC4zLjAucG9tCkBAIC0wLDAgKzEsNTQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cHJvamVjdCB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCBodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy94c2QvbWF2ZW4tNC4wLjAueHNkIiB4bWxucz0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIgorICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiPgorICA8bW9kZWxWZXJzaW9uPjQuMC4wPC9tb2RlbFZlcnNpb24+CisgIDxncm91cElkPmNvbS5hbmRyb2lkLnRvb2xzLmRkbXM8L2dyb3VwSWQ+CisgIDxhcnRpZmFjdElkPmRkbWxpYjwvYXJ0aWZhY3RJZD4KKyAgPHZlcnNpb24+MjQuMy4wPC92ZXJzaW9uPgorICA8bmFtZT5BbmRyb2lkIFRvb2xzIGRkbWxpYjwvbmFtZT4KKyAgPGRlc2NyaXB0aW9uPkxpYnJhcnkgcHJvdmlkaW5nIEFQSXMgdG8gdGFsayB0byBBbmRyb2lkIGRldmljZXM8L2Rlc2NyaXB0aW9uPgorICA8dXJsPmh0dHA6Ly90b29scy5hbmRyb2lkLmNvbTwvdXJsPgorICA8aW5jZXB0aW9uWWVhcj4yMDA3PC9pbmNlcHRpb25ZZWFyPgorICA8bGljZW5zZXM+CisgICAgPGxpY2Vuc2U+CisgICAgICA8bmFtZT5UaGUgQXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMi4wPC9uYW1lPgorICAgICAgPHVybD5odHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAudHh0PC91cmw+CisgICAgICA8ZGlzdHJpYnV0aW9uPnJlcG88L2Rpc3RyaWJ1dGlvbj4KKyAgICA8L2xpY2Vuc2U+CisgIDwvbGljZW5zZXM+CisgIDxkZXZlbG9wZXJzPgorICAgIDxkZXZlbG9wZXI+CisgICAgICA8bmFtZT5UaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0PC9uYW1lPgorICAgIDwvZGV2ZWxvcGVyPgorICA8L2RldmVsb3BlcnM+CisgIDxzY20+CisgICAgPGNvbm5lY3Rpb24+Z2l0Oi8vYW5kcm9pZC5nb29nbGVzb3VyY2UuY29tL3BsYXRmb3JtL3Rvb2xzL2Jhc2UuZ2l0PC9jb25uZWN0aW9uPgorICAgIDx1cmw+aHR0cHM6Ly9hbmRyb2lkLmdvb2dsZXNvdXJjZS5jb20vcGxhdGZvcm0vdG9vbHMvYmFzZTwvdXJsPgorICA8L3NjbT4KKyAgPGRlcGVuZGVuY2llcz4KKyAgICA8ZGVwZW5kZW5jeT4KKyAgICAgIDxncm91cElkPmNvbS5hbmRyb2lkLnRvb2xzPC9ncm91cElkPgorICAgICAgPGFydGlmYWN0SWQ+Y29tbW9uPC9hcnRpZmFjdElkPgorICAgICAgPHZlcnNpb24+MjQuMy4wPC92ZXJzaW9uPgorICAgICAgPHNjb3BlPmNvbXBpbGU8L3Njb3BlPgorICAgIDwvZGVwZW5kZW5jeT4KKyAgICA8ZGVwZW5kZW5jeT4KKyAgICAgIDxncm91cElkPm5ldC5zZi5reG1sPC9ncm91cElkPgorICAgICAgPGFydGlmYWN0SWQ+a3htbDI8L2FydGlmYWN0SWQ+CisgICAgICA8dmVyc2lvbj4yLjMuMDwvdmVyc2lvbj4KKyAgICAgIDxzY29wZT5jb21waWxlPC9zY29wZT4KKyAgICA8L2RlcGVuZGVuY3k+CisgICAgPGRlcGVuZGVuY3k+CisgICAgICA8Z3JvdXBJZD5qdW5pdDwvZ3JvdXBJZD4KKyAgICAgIDxhcnRpZmFjdElkPmp1bml0PC9hcnRpZmFjdElkPgorICAgICAgPHZlcnNpb24+NC4xMjwvdmVyc2lvbj4KKyAgICAgIDxzY29wZT50ZXN0PC9zY29wZT4KKyAgICA8L2RlcGVuZGVuY3k+CisgICAgPGRlcGVuZGVuY3k+CisgICAgICA8Z3JvdXBJZD5vcmcuZWFzeW1vY2s8L2dyb3VwSWQ+CisgICAgICA8YXJ0aWZhY3RJZD5lYXN5bW9jazwvYXJ0aWZhY3RJZD4KKyAgICAgIDx2ZXJzaW9uPjMuMTwvdmVyc2lvbj4KKyAgICAgIDxzY29wZT50ZXN0PC9zY29wZT4KKyAgICA8L2RlcGVuZGVuY3k+CisgIDwvZGVwZW5kZW5jaWVzPgorPC9wcm9qZWN0PgpkaWZmIC0tZ2l0IGEvY29tbW9uL29mZmxpbmUtbTIvY29tL2FuZHJvaWQvdG9vbHMvZHZsaWIvMjQuMy4wL2R2bGliLTI0LjMuMC1zb3VyY2VzLmphciBiL2NvbW1vbi9vZmZsaW5lLW0yL2NvbS9hbmRyb2lkL3Rvb2xzL2R2bGliLzI0LjMuMC9kdmxpYi0yNC4zLjAtc291cmNlcy5qYXIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTBlNzhmMgotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9vZmZsaW5lLW0yL2NvbS9hbmRyb2lkL3Rvb2xzL2R2bGliLzI0LjMuMC9kdmxpYi0yNC4zLjAtc291cmNlcy5qYXIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvY29tbW9uL29mZmxpbmUtbTIvY29tL2FuZHJvaWQvdG9vbHMvZHZsaWIvMjQuMy4wL2R2bGliLTI0LjMuMC5qYXIgYi9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9kdmxpYi8yNC4zLjAvZHZsaWItMjQuMy4wLmphcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wM2E1NWE1Ci0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL29mZmxpbmUtbTIvY29tL2FuZHJvaWQvdG9vbHMvZHZsaWIvMjQuMy4wL2R2bGliLTI0LjMuMC5qYXIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvY29tbW9uL29mZmxpbmUtbTIvY29tL2FuZHJvaWQvdG9vbHMvZHZsaWIvMjQuMy4wL2R2bGliLTI0LjMuMC5wb20gYi9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9kdmxpYi8yNC4zLjAvZHZsaWItMjQuMy4wLnBvbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40N2Y4MjJkCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL29mZmxpbmUtbTIvY29tL2FuZHJvaWQvdG9vbHMvZHZsaWIvMjQuMy4wL2R2bGliLTI0LjMuMC5wb20KQEAgLTAsMCArMSw0MiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxwcm9qZWN0IHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL3hzZC9tYXZlbi00LjAuMC54c2QiIHhtbG5zPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAiCisgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSI+CisgIDxtb2RlbFZlcnNpb24+NC4wLjA8L21vZGVsVmVyc2lvbj4KKyAgPGdyb3VwSWQ+Y29tLmFuZHJvaWQudG9vbHM8L2dyb3VwSWQ+CisgIDxhcnRpZmFjdElkPmR2bGliPC9hcnRpZmFjdElkPgorICA8dmVyc2lvbj4yNC4zLjA8L3ZlcnNpb24+CisgIDxuYW1lPkFuZHJvaWQgVG9vbHMgZHZsaWI8L25hbWU+CisgIDxkZXNjcmlwdGlvbj5BIExpYnJhcnkgdG8gbWFuYWdlIHRoZSBBbmRyb2lkIGRldmljZSBkYXRhYmFzZSBYTUwgZmlsZXMuPC9kZXNjcmlwdGlvbj4KKyAgPHVybD5odHRwOi8vdG9vbHMuYW5kcm9pZC5jb208L3VybD4KKyAgPGluY2VwdGlvblllYXI+MjAwNzwvaW5jZXB0aW9uWWVhcj4KKyAgPGxpY2Vuc2VzPgorICAgIDxsaWNlbnNlPgorICAgICAgPG5hbWU+VGhlIEFwYWNoZSBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDIuMDwvbmFtZT4KKyAgICAgIDx1cmw+aHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLnR4dDwvdXJsPgorICAgICAgPGRpc3RyaWJ1dGlvbj5yZXBvPC9kaXN0cmlidXRpb24+CisgICAgPC9saWNlbnNlPgorICA8L2xpY2Vuc2VzPgorICA8ZGV2ZWxvcGVycz4KKyAgICA8ZGV2ZWxvcGVyPgorICAgICAgPG5hbWU+VGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdDwvbmFtZT4KKyAgICA8L2RldmVsb3Blcj4KKyAgPC9kZXZlbG9wZXJzPgorICA8c2NtPgorICAgIDxjb25uZWN0aW9uPmdpdDovL2FuZHJvaWQuZ29vZ2xlc291cmNlLmNvbS9wbGF0Zm9ybS90b29scy9iYXNlLmdpdDwvY29ubmVjdGlvbj4KKyAgICA8dXJsPmh0dHBzOi8vYW5kcm9pZC5nb29nbGVzb3VyY2UuY29tL3BsYXRmb3JtL3Rvb2xzL2Jhc2U8L3VybD4KKyAgPC9zY20+CisgIDxkZXBlbmRlbmNpZXM+CisgICAgPGRlcGVuZGVuY3k+CisgICAgICA8Z3JvdXBJZD5jb20uYW5kcm9pZC50b29sczwvZ3JvdXBJZD4KKyAgICAgIDxhcnRpZmFjdElkPmNvbW1vbjwvYXJ0aWZhY3RJZD4KKyAgICAgIDx2ZXJzaW9uPjI0LjMuMDwvdmVyc2lvbj4KKyAgICAgIDxzY29wZT5jb21waWxlPC9zY29wZT4KKyAgICA8L2RlcGVuZGVuY3k+CisgICAgPGRlcGVuZGVuY3k+CisgICAgICA8Z3JvdXBJZD5qdW5pdDwvZ3JvdXBJZD4KKyAgICAgIDxhcnRpZmFjdElkPmp1bml0PC9hcnRpZmFjdElkPgorICAgICAgPHZlcnNpb24+NC4xMjwvdmVyc2lvbj4KKyAgICAgIDxzY29wZT50ZXN0PC9zY29wZT4KKyAgICA8L2RlcGVuZGVuY3k+CisgIDwvZGVwZW5kZW5jaWVzPgorPC9wcm9qZWN0PgpkaWZmIC0tZ2l0IGEvY29tbW9uL29mZmxpbmUtbTIvY29tL2FuZHJvaWQvdG9vbHMvamFjay9qYWNrLWFwaS8wLjkuMC9OT1RJQ0UgYi9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9qYWNrL2phY2stYXBpLzAuOS4wL05PVElDRQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNjQ1Njk1Ci0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL29mZmxpbmUtbTIvY29tL2FuZHJvaWQvdG9vbHMvamFjay9qYWNrLWFwaS8wLjkuMC9OT1RJQ0UKQEAgLTAsMCArMSwyMDIgQEAKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXBhY2hlIExpY2Vuc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb24gMi4wLCBKYW51YXJ5IDIwMDQKKyAgICAgICAgICAgICAgICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy8KKworICAgVEVSTVMgQU5EIENPTkRJVElPTlMgRk9SIFVTRSwgUkVQUk9EVUNUSU9OLCBBTkQgRElTVFJJQlVUSU9OCisKKyAgIDEuIERlZmluaXRpb25zLgorCisgICAgICAiTGljZW5zZSIgc2hhbGwgbWVhbiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZm9yIHVzZSwgcmVwcm9kdWN0aW9uLAorICAgICAgYW5kIGRpc3RyaWJ1dGlvbiBhcyBkZWZpbmVkIGJ5IFNlY3Rpb25zIDEgdGhyb3VnaCA5IG9mIHRoaXMgZG9jdW1lbnQuCisKKyAgICAgICJMaWNlbnNvciIgc2hhbGwgbWVhbiB0aGUgY29weXJpZ2h0IG93bmVyIG9yIGVudGl0eSBhdXRob3JpemVkIGJ5CisgICAgICB0aGUgY29weXJpZ2h0IG93bmVyIHRoYXQgaXMgZ3JhbnRpbmcgdGhlIExpY2Vuc2UuCisKKyAgICAgICJMZWdhbCBFbnRpdHkiIHNoYWxsIG1lYW4gdGhlIHVuaW9uIG9mIHRoZSBhY3RpbmcgZW50aXR5IGFuZCBhbGwKKyAgICAgIG90aGVyIGVudGl0aWVzIHRoYXQgY29udHJvbCwgYXJlIGNvbnRyb2xsZWQgYnksIG9yIGFyZSB1bmRlciBjb21tb24KKyAgICAgIGNvbnRyb2wgd2l0aCB0aGF0IGVudGl0eS4gRm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIGRlZmluaXRpb24sCisgICAgICAiY29udHJvbCIgbWVhbnMgKGkpIHRoZSBwb3dlciwgZGlyZWN0IG9yIGluZGlyZWN0LCB0byBjYXVzZSB0aGUKKyAgICAgIGRpcmVjdGlvbiBvciBtYW5hZ2VtZW50IG9mIHN1Y2ggZW50aXR5LCB3aGV0aGVyIGJ5IGNvbnRyYWN0IG9yCisgICAgICBvdGhlcndpc2UsIG9yIChpaSkgb3duZXJzaGlwIG9mIGZpZnR5IHBlcmNlbnQgKDUwJSkgb3IgbW9yZSBvZiB0aGUKKyAgICAgIG91dHN0YW5kaW5nIHNoYXJlcywgb3IgKGlpaSkgYmVuZWZpY2lhbCBvd25lcnNoaXAgb2Ygc3VjaCBlbnRpdHkuCisKKyAgICAgICJZb3UiIChvciAiWW91ciIpIHNoYWxsIG1lYW4gYW4gaW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkKKyAgICAgIGV4ZXJjaXNpbmcgcGVybWlzc2lvbnMgZ3JhbnRlZCBieSB0aGlzIExpY2Vuc2UuCisKKyAgICAgICJTb3VyY2UiIGZvcm0gc2hhbGwgbWVhbiB0aGUgcHJlZmVycmVkIGZvcm0gZm9yIG1ha2luZyBtb2RpZmljYXRpb25zLAorICAgICAgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byBzb2Z0d2FyZSBzb3VyY2UgY29kZSwgZG9jdW1lbnRhdGlvbgorICAgICAgc291cmNlLCBhbmQgY29uZmlndXJhdGlvbiBmaWxlcy4KKworICAgICAgIk9iamVjdCIgZm9ybSBzaGFsbCBtZWFuIGFueSBmb3JtIHJlc3VsdGluZyBmcm9tIG1lY2hhbmljYWwKKyAgICAgIHRyYW5zZm9ybWF0aW9uIG9yIHRyYW5zbGF0aW9uIG9mIGEgU291cmNlIGZvcm0sIGluY2x1ZGluZyBidXQKKyAgICAgIG5vdCBsaW1pdGVkIHRvIGNvbXBpbGVkIG9iamVjdCBjb2RlLCBnZW5lcmF0ZWQgZG9jdW1lbnRhdGlvbiwKKyAgICAgIGFuZCBjb252ZXJzaW9ucyB0byBvdGhlciBtZWRpYSB0eXBlcy4KKworICAgICAgIldvcmsiIHNoYWxsIG1lYW4gdGhlIHdvcmsgb2YgYXV0aG9yc2hpcCwgd2hldGhlciBpbiBTb3VyY2Ugb3IKKyAgICAgIE9iamVjdCBmb3JtLCBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgTGljZW5zZSwgYXMgaW5kaWNhdGVkIGJ5IGEKKyAgICAgIGNvcHlyaWdodCBub3RpY2UgdGhhdCBpcyBpbmNsdWRlZCBpbiBvciBhdHRhY2hlZCB0byB0aGUgd29yaworICAgICAgKGFuIGV4YW1wbGUgaXMgcHJvdmlkZWQgaW4gdGhlIEFwcGVuZGl4IGJlbG93KS4KKworICAgICAgIkRlcml2YXRpdmUgV29ya3MiIHNoYWxsIG1lYW4gYW55IHdvcmssIHdoZXRoZXIgaW4gU291cmNlIG9yIE9iamVjdAorICAgICAgZm9ybSwgdGhhdCBpcyBiYXNlZCBvbiAob3IgZGVyaXZlZCBmcm9tKSB0aGUgV29yayBhbmQgZm9yIHdoaWNoIHRoZQorICAgICAgZWRpdG9yaWFsIHJldmlzaW9ucywgYW5ub3RhdGlvbnMsIGVsYWJvcmF0aW9ucywgb3Igb3RoZXIgbW9kaWZpY2F0aW9ucworICAgICAgcmVwcmVzZW50LCBhcyBhIHdob2xlLCBhbiBvcmlnaW5hbCB3b3JrIG9mIGF1dGhvcnNoaXAuIEZvciB0aGUgcHVycG9zZXMKKyAgICAgIG9mIHRoaXMgTGljZW5zZSwgRGVyaXZhdGl2ZSBXb3JrcyBzaGFsbCBub3QgaW5jbHVkZSB3b3JrcyB0aGF0IHJlbWFpbgorICAgICAgc2VwYXJhYmxlIGZyb20sIG9yIG1lcmVseSBsaW5rIChvciBiaW5kIGJ5IG5hbWUpIHRvIHRoZSBpbnRlcmZhY2VzIG9mLAorICAgICAgdGhlIFdvcmsgYW5kIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZi4KKworICAgICAgIkNvbnRyaWJ1dGlvbiIgc2hhbGwgbWVhbiBhbnkgd29yayBvZiBhdXRob3JzaGlwLCBpbmNsdWRpbmcKKyAgICAgIHRoZSBvcmlnaW5hbCB2ZXJzaW9uIG9mIHRoZSBXb3JrIGFuZCBhbnkgbW9kaWZpY2F0aW9ucyBvciBhZGRpdGlvbnMKKyAgICAgIHRvIHRoYXQgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YsIHRoYXQgaXMgaW50ZW50aW9uYWxseQorICAgICAgc3VibWl0dGVkIHRvIExpY2Vuc29yIGZvciBpbmNsdXNpb24gaW4gdGhlIFdvcmsgYnkgdGhlIGNvcHlyaWdodCBvd25lcgorICAgICAgb3IgYnkgYW4gaW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkgYXV0aG9yaXplZCB0byBzdWJtaXQgb24gYmVoYWxmIG9mCisgICAgICB0aGUgY29weXJpZ2h0IG93bmVyLiBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwgInN1Ym1pdHRlZCIKKyAgICAgIG1lYW5zIGFueSBmb3JtIG9mIGVsZWN0cm9uaWMsIHZlcmJhbCwgb3Igd3JpdHRlbiBjb21tdW5pY2F0aW9uIHNlbnQKKyAgICAgIHRvIHRoZSBMaWNlbnNvciBvciBpdHMgcmVwcmVzZW50YXRpdmVzLCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvCisgICAgICBjb21tdW5pY2F0aW9uIG9uIGVsZWN0cm9uaWMgbWFpbGluZyBsaXN0cywgc291cmNlIGNvZGUgY29udHJvbCBzeXN0ZW1zLAorICAgICAgYW5kIGlzc3VlIHRyYWNraW5nIHN5c3RlbXMgdGhhdCBhcmUgbWFuYWdlZCBieSwgb3Igb24gYmVoYWxmIG9mLCB0aGUKKyAgICAgIExpY2Vuc29yIGZvciB0aGUgcHVycG9zZSBvZiBkaXNjdXNzaW5nIGFuZCBpbXByb3ZpbmcgdGhlIFdvcmssIGJ1dAorICAgICAgZXhjbHVkaW5nIGNvbW11bmljYXRpb24gdGhhdCBpcyBjb25zcGljdW91c2x5IG1hcmtlZCBvciBvdGhlcndpc2UKKyAgICAgIGRlc2lnbmF0ZWQgaW4gd3JpdGluZyBieSB0aGUgY29weXJpZ2h0IG93bmVyIGFzICJOb3QgYSBDb250cmlidXRpb24uIgorCisgICAgICAiQ29udHJpYnV0b3IiIHNoYWxsIG1lYW4gTGljZW5zb3IgYW5kIGFueSBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eQorICAgICAgb24gYmVoYWxmIG9mIHdob20gYSBDb250cmlidXRpb24gaGFzIGJlZW4gcmVjZWl2ZWQgYnkgTGljZW5zb3IgYW5kCisgICAgICBzdWJzZXF1ZW50bHkgaW5jb3Jwb3JhdGVkIHdpdGhpbiB0aGUgV29yay4KKworICAgMi4gR3JhbnQgb2YgQ29weXJpZ2h0IExpY2Vuc2UuIFN1YmplY3QgdG8gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mCisgICAgICB0aGlzIExpY2Vuc2UsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cyB0byBZb3UgYSBwZXJwZXR1YWwsCisgICAgICB3b3JsZHdpZGUsIG5vbi1leGNsdXNpdmUsIG5vLWNoYXJnZSwgcm95YWx0eS1mcmVlLCBpcnJldm9jYWJsZQorICAgICAgY29weXJpZ2h0IGxpY2Vuc2UgdG8gcmVwcm9kdWNlLCBwcmVwYXJlIERlcml2YXRpdmUgV29ya3Mgb2YsCisgICAgICBwdWJsaWNseSBkaXNwbGF5LCBwdWJsaWNseSBwZXJmb3JtLCBzdWJsaWNlbnNlLCBhbmQgZGlzdHJpYnV0ZSB0aGUKKyAgICAgIFdvcmsgYW5kIHN1Y2ggRGVyaXZhdGl2ZSBXb3JrcyBpbiBTb3VyY2Ugb3IgT2JqZWN0IGZvcm0uCisKKyAgIDMuIEdyYW50IG9mIFBhdGVudCBMaWNlbnNlLiBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgorICAgICAgdGhpcyBMaWNlbnNlLCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieSBncmFudHMgdG8gWW91IGEgcGVycGV0dWFsLAorICAgICAgd29ybGR3aWRlLCBub24tZXhjbHVzaXZlLCBuby1jaGFyZ2UsIHJveWFsdHktZnJlZSwgaXJyZXZvY2FibGUKKyAgICAgIChleGNlcHQgYXMgc3RhdGVkIGluIHRoaXMgc2VjdGlvbikgcGF0ZW50IGxpY2Vuc2UgdG8gbWFrZSwgaGF2ZSBtYWRlLAorICAgICAgdXNlLCBvZmZlciB0byBzZWxsLCBzZWxsLCBpbXBvcnQsIGFuZCBvdGhlcndpc2UgdHJhbnNmZXIgdGhlIFdvcmssCisgICAgICB3aGVyZSBzdWNoIGxpY2Vuc2UgYXBwbGllcyBvbmx5IHRvIHRob3NlIHBhdGVudCBjbGFpbXMgbGljZW5zYWJsZQorICAgICAgYnkgc3VjaCBDb250cmlidXRvciB0aGF0IGFyZSBuZWNlc3NhcmlseSBpbmZyaW5nZWQgYnkgdGhlaXIKKyAgICAgIENvbnRyaWJ1dGlvbihzKSBhbG9uZSBvciBieSBjb21iaW5hdGlvbiBvZiB0aGVpciBDb250cmlidXRpb24ocykKKyAgICAgIHdpdGggdGhlIFdvcmsgdG8gd2hpY2ggc3VjaCBDb250cmlidXRpb24ocykgd2FzIHN1Ym1pdHRlZC4gSWYgWW91CisgICAgICBpbnN0aXR1dGUgcGF0ZW50IGxpdGlnYXRpb24gYWdhaW5zdCBhbnkgZW50aXR5IChpbmNsdWRpbmcgYQorICAgICAgY3Jvc3MtY2xhaW0gb3IgY291bnRlcmNsYWltIGluIGEgbGF3c3VpdCkgYWxsZWdpbmcgdGhhdCB0aGUgV29yaworICAgICAgb3IgYSBDb250cmlidXRpb24gaW5jb3Jwb3JhdGVkIHdpdGhpbiB0aGUgV29yayBjb25zdGl0dXRlcyBkaXJlY3QKKyAgICAgIG9yIGNvbnRyaWJ1dG9yeSBwYXRlbnQgaW5mcmluZ2VtZW50LCB0aGVuIGFueSBwYXRlbnQgbGljZW5zZXMKKyAgICAgIGdyYW50ZWQgdG8gWW91IHVuZGVyIHRoaXMgTGljZW5zZSBmb3IgdGhhdCBXb3JrIHNoYWxsIHRlcm1pbmF0ZQorICAgICAgYXMgb2YgdGhlIGRhdGUgc3VjaCBsaXRpZ2F0aW9uIGlzIGZpbGVkLgorCisgICA0LiBSZWRpc3RyaWJ1dGlvbi4gWW91IG1heSByZXByb2R1Y2UgYW5kIGRpc3RyaWJ1dGUgY29waWVzIG9mIHRoZQorICAgICAgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YgaW4gYW55IG1lZGl1bSwgd2l0aCBvciB3aXRob3V0CisgICAgICBtb2RpZmljYXRpb25zLCBhbmQgaW4gU291cmNlIG9yIE9iamVjdCBmb3JtLCBwcm92aWRlZCB0aGF0IFlvdQorICAgICAgbWVldCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisKKyAgICAgIChhKSBZb3UgbXVzdCBnaXZlIGFueSBvdGhlciByZWNpcGllbnRzIG9mIHRoZSBXb3JrIG9yCisgICAgICAgICAgRGVyaXZhdGl2ZSBXb3JrcyBhIGNvcHkgb2YgdGhpcyBMaWNlbnNlOyBhbmQKKworICAgICAgKGIpIFlvdSBtdXN0IGNhdXNlIGFueSBtb2RpZmllZCBmaWxlcyB0byBjYXJyeSBwcm9taW5lbnQgbm90aWNlcworICAgICAgICAgIHN0YXRpbmcgdGhhdCBZb3UgY2hhbmdlZCB0aGUgZmlsZXM7IGFuZAorCisgICAgICAoYykgWW91IG11c3QgcmV0YWluLCBpbiB0aGUgU291cmNlIGZvcm0gb2YgYW55IERlcml2YXRpdmUgV29ya3MKKyAgICAgICAgICB0aGF0IFlvdSBkaXN0cmlidXRlLCBhbGwgY29weXJpZ2h0LCBwYXRlbnQsIHRyYWRlbWFyaywgYW5kCisgICAgICAgICAgYXR0cmlidXRpb24gbm90aWNlcyBmcm9tIHRoZSBTb3VyY2UgZm9ybSBvZiB0aGUgV29yaywKKyAgICAgICAgICBleGNsdWRpbmcgdGhvc2Ugbm90aWNlcyB0aGF0IGRvIG5vdCBwZXJ0YWluIHRvIGFueSBwYXJ0IG9mCisgICAgICAgICAgdGhlIERlcml2YXRpdmUgV29ya3M7IGFuZAorCisgICAgICAoZCkgSWYgdGhlIFdvcmsgaW5jbHVkZXMgYSAiTk9USUNFIiB0ZXh0IGZpbGUgYXMgcGFydCBvZiBpdHMKKyAgICAgICAgICBkaXN0cmlidXRpb24sIHRoZW4gYW55IERlcml2YXRpdmUgV29ya3MgdGhhdCBZb3UgZGlzdHJpYnV0ZSBtdXN0CisgICAgICAgICAgaW5jbHVkZSBhIHJlYWRhYmxlIGNvcHkgb2YgdGhlIGF0dHJpYnV0aW9uIG5vdGljZXMgY29udGFpbmVkCisgICAgICAgICAgd2l0aGluIHN1Y2ggTk9USUNFIGZpbGUsIGV4Y2x1ZGluZyB0aG9zZSBub3RpY2VzIHRoYXQgZG8gbm90CisgICAgICAgICAgcGVydGFpbiB0byBhbnkgcGFydCBvZiB0aGUgRGVyaXZhdGl2ZSBXb3JrcywgaW4gYXQgbGVhc3Qgb25lCisgICAgICAgICAgb2YgdGhlIGZvbGxvd2luZyBwbGFjZXM6IHdpdGhpbiBhIE5PVElDRSB0ZXh0IGZpbGUgZGlzdHJpYnV0ZWQKKyAgICAgICAgICBhcyBwYXJ0IG9mIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyB3aXRoaW4gdGhlIFNvdXJjZSBmb3JtIG9yCisgICAgICAgICAgZG9jdW1lbnRhdGlvbiwgaWYgcHJvdmlkZWQgYWxvbmcgd2l0aCB0aGUgRGVyaXZhdGl2ZSBXb3Jrczsgb3IsCisgICAgICAgICAgd2l0aGluIGEgZGlzcGxheSBnZW5lcmF0ZWQgYnkgdGhlIERlcml2YXRpdmUgV29ya3MsIGlmIGFuZAorICAgICAgICAgIHdoZXJldmVyIHN1Y2ggdGhpcmQtcGFydHkgbm90aWNlcyBub3JtYWxseSBhcHBlYXIuIFRoZSBjb250ZW50cworICAgICAgICAgIG9mIHRoZSBOT1RJQ0UgZmlsZSBhcmUgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgb25seSBhbmQKKyAgICAgICAgICBkbyBub3QgbW9kaWZ5IHRoZSBMaWNlbnNlLiBZb3UgbWF5IGFkZCBZb3VyIG93biBhdHRyaWJ1dGlvbgorICAgICAgICAgIG5vdGljZXMgd2l0aGluIERlcml2YXRpdmUgV29ya3MgdGhhdCBZb3UgZGlzdHJpYnV0ZSwgYWxvbmdzaWRlCisgICAgICAgICAgb3IgYXMgYW4gYWRkZW5kdW0gdG8gdGhlIE5PVElDRSB0ZXh0IGZyb20gdGhlIFdvcmssIHByb3ZpZGVkCisgICAgICAgICAgdGhhdCBzdWNoIGFkZGl0aW9uYWwgYXR0cmlidXRpb24gbm90aWNlcyBjYW5ub3QgYmUgY29uc3RydWVkCisgICAgICAgICAgYXMgbW9kaWZ5aW5nIHRoZSBMaWNlbnNlLgorCisgICAgICBZb3UgbWF5IGFkZCBZb3VyIG93biBjb3B5cmlnaHQgc3RhdGVtZW50IHRvIFlvdXIgbW9kaWZpY2F0aW9ucyBhbmQKKyAgICAgIG1heSBwcm92aWRlIGFkZGl0aW9uYWwgb3IgZGlmZmVyZW50IGxpY2Vuc2UgdGVybXMgYW5kIGNvbmRpdGlvbnMKKyAgICAgIGZvciB1c2UsIHJlcHJvZHVjdGlvbiwgb3IgZGlzdHJpYnV0aW9uIG9mIFlvdXIgbW9kaWZpY2F0aW9ucywgb3IKKyAgICAgIGZvciBhbnkgc3VjaCBEZXJpdmF0aXZlIFdvcmtzIGFzIGEgd2hvbGUsIHByb3ZpZGVkIFlvdXIgdXNlLAorICAgICAgcmVwcm9kdWN0aW9uLCBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoZSBXb3JrIG90aGVyd2lzZSBjb21wbGllcyB3aXRoCisgICAgICB0aGUgY29uZGl0aW9ucyBzdGF0ZWQgaW4gdGhpcyBMaWNlbnNlLgorCisgICA1LiBTdWJtaXNzaW9uIG9mIENvbnRyaWJ1dGlvbnMuIFVubGVzcyBZb3UgZXhwbGljaXRseSBzdGF0ZSBvdGhlcndpc2UsCisgICAgICBhbnkgQ29udHJpYnV0aW9uIGludGVudGlvbmFsbHkgc3VibWl0dGVkIGZvciBpbmNsdXNpb24gaW4gdGhlIFdvcmsKKyAgICAgIGJ5IFlvdSB0byB0aGUgTGljZW5zb3Igc2hhbGwgYmUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mCisgICAgICB0aGlzIExpY2Vuc2UsIHdpdGhvdXQgYW55IGFkZGl0aW9uYWwgdGVybXMgb3IgY29uZGl0aW9ucy4KKyAgICAgIE5vdHdpdGhzdGFuZGluZyB0aGUgYWJvdmUsIG5vdGhpbmcgaGVyZWluIHNoYWxsIHN1cGVyc2VkZSBvciBtb2RpZnkKKyAgICAgIHRoZSB0ZXJtcyBvZiBhbnkgc2VwYXJhdGUgbGljZW5zZSBhZ3JlZW1lbnQgeW91IG1heSBoYXZlIGV4ZWN1dGVkCisgICAgICB3aXRoIExpY2Vuc29yIHJlZ2FyZGluZyBzdWNoIENvbnRyaWJ1dGlvbnMuCisKKyAgIDYuIFRyYWRlbWFya3MuIFRoaXMgTGljZW5zZSBkb2VzIG5vdCBncmFudCBwZXJtaXNzaW9uIHRvIHVzZSB0aGUgdHJhZGUKKyAgICAgIG5hbWVzLCB0cmFkZW1hcmtzLCBzZXJ2aWNlIG1hcmtzLCBvciBwcm9kdWN0IG5hbWVzIG9mIHRoZSBMaWNlbnNvciwKKyAgICAgIGV4Y2VwdCBhcyByZXF1aXJlZCBmb3IgcmVhc29uYWJsZSBhbmQgY3VzdG9tYXJ5IHVzZSBpbiBkZXNjcmliaW5nIHRoZQorICAgICAgb3JpZ2luIG9mIHRoZSBXb3JrIGFuZCByZXByb2R1Y2luZyB0aGUgY29udGVudCBvZiB0aGUgTk9USUNFIGZpbGUuCisKKyAgIDcuIERpc2NsYWltZXIgb2YgV2FycmFudHkuIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvcgorICAgICAgYWdyZWVkIHRvIGluIHdyaXRpbmcsIExpY2Vuc29yIHByb3ZpZGVzIHRoZSBXb3JrIChhbmQgZWFjaAorICAgICAgQ29udHJpYnV0b3IgcHJvdmlkZXMgaXRzIENvbnRyaWJ1dGlvbnMpIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IKKyAgICAgIGltcGxpZWQsIGluY2x1ZGluZywgd2l0aG91dCBsaW1pdGF0aW9uLCBhbnkgd2FycmFudGllcyBvciBjb25kaXRpb25zCisgICAgICBvZiBUSVRMRSwgTk9OLUlORlJJTkdFTUVOVCwgTUVSQ0hBTlRBQklMSVRZLCBvciBGSVRORVNTIEZPUiBBCisgICAgICBQQVJUSUNVTEFSIFBVUlBPU0UuIFlvdSBhcmUgc29sZWx5IHJlc3BvbnNpYmxlIGZvciBkZXRlcm1pbmluZyB0aGUKKyAgICAgIGFwcHJvcHJpYXRlbmVzcyBvZiB1c2luZyBvciByZWRpc3RyaWJ1dGluZyB0aGUgV29yayBhbmQgYXNzdW1lIGFueQorICAgICAgcmlza3MgYXNzb2NpYXRlZCB3aXRoIFlvdXIgZXhlcmNpc2Ugb2YgcGVybWlzc2lvbnMgdW5kZXIgdGhpcyBMaWNlbnNlLgorCisgICA4LiBMaW1pdGF0aW9uIG9mIExpYWJpbGl0eS4gSW4gbm8gZXZlbnQgYW5kIHVuZGVyIG5vIGxlZ2FsIHRoZW9yeSwKKyAgICAgIHdoZXRoZXIgaW4gdG9ydCAoaW5jbHVkaW5nIG5lZ2xpZ2VuY2UpLCBjb250cmFjdCwgb3Igb3RoZXJ3aXNlLAorICAgICAgdW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IChzdWNoIGFzIGRlbGliZXJhdGUgYW5kIGdyb3NzbHkKKyAgICAgIG5lZ2xpZ2VudCBhY3RzKSBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc2hhbGwgYW55IENvbnRyaWJ1dG9yIGJlCisgICAgICBsaWFibGUgdG8gWW91IGZvciBkYW1hZ2VzLCBpbmNsdWRpbmcgYW55IGRpcmVjdCwgaW5kaXJlY3QsIHNwZWNpYWwsCisgICAgICBpbmNpZGVudGFsLCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb2YgYW55IGNoYXJhY3RlciBhcmlzaW5nIGFzIGEKKyAgICAgIHJlc3VsdCBvZiB0aGlzIExpY2Vuc2Ugb3Igb3V0IG9mIHRoZSB1c2Ugb3IgaW5hYmlsaXR5IHRvIHVzZSB0aGUKKyAgICAgIFdvcmsgKGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gZGFtYWdlcyBmb3IgbG9zcyBvZiBnb29kd2lsbCwKKyAgICAgIHdvcmsgc3RvcHBhZ2UsIGNvbXB1dGVyIGZhaWx1cmUgb3IgbWFsZnVuY3Rpb24sIG9yIGFueSBhbmQgYWxsCisgICAgICBvdGhlciBjb21tZXJjaWFsIGRhbWFnZXMgb3IgbG9zc2VzKSwgZXZlbiBpZiBzdWNoIENvbnRyaWJ1dG9yCisgICAgICBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiBzdWNoIGRhbWFnZXMuCisKKyAgIDkuIEFjY2VwdGluZyBXYXJyYW50eSBvciBBZGRpdGlvbmFsIExpYWJpbGl0eS4gV2hpbGUgcmVkaXN0cmlidXRpbmcKKyAgICAgIHRoZSBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiwgWW91IG1heSBjaG9vc2UgdG8gb2ZmZXIsCisgICAgICBhbmQgY2hhcmdlIGEgZmVlIGZvciwgYWNjZXB0YW5jZSBvZiBzdXBwb3J0LCB3YXJyYW50eSwgaW5kZW1uaXR5LAorICAgICAgb3Igb3RoZXIgbGlhYmlsaXR5IG9ibGlnYXRpb25zIGFuZC9vciByaWdodHMgY29uc2lzdGVudCB3aXRoIHRoaXMKKyAgICAgIExpY2Vuc2UuIEhvd2V2ZXIsIGluIGFjY2VwdGluZyBzdWNoIG9ibGlnYXRpb25zLCBZb3UgbWF5IGFjdCBvbmx5CisgICAgICBvbiBZb3VyIG93biBiZWhhbGYgYW5kIG9uIFlvdXIgc29sZSByZXNwb25zaWJpbGl0eSwgbm90IG9uIGJlaGFsZgorICAgICAgb2YgYW55IG90aGVyIENvbnRyaWJ1dG9yLCBhbmQgb25seSBpZiBZb3UgYWdyZWUgdG8gaW5kZW1uaWZ5LAorICAgICAgZGVmZW5kLCBhbmQgaG9sZCBlYWNoIENvbnRyaWJ1dG9yIGhhcm1sZXNzIGZvciBhbnkgbGlhYmlsaXR5CisgICAgICBpbmN1cnJlZCBieSwgb3IgY2xhaW1zIGFzc2VydGVkIGFnYWluc3QsIHN1Y2ggQ29udHJpYnV0b3IgYnkgcmVhc29uCisgICAgICBvZiB5b3VyIGFjY2VwdGluZyBhbnkgc3VjaCB3YXJyYW50eSBvciBhZGRpdGlvbmFsIGxpYWJpbGl0eS4KKworICAgRU5EIE9GIFRFUk1TIEFORCBDT05ESVRJT05TCisKKyAgIEFQUEVORElYOiBIb3cgdG8gYXBwbHkgdGhlIEFwYWNoZSBMaWNlbnNlIHRvIHlvdXIgd29yay4KKworICAgICAgVG8gYXBwbHkgdGhlIEFwYWNoZSBMaWNlbnNlIHRvIHlvdXIgd29yaywgYXR0YWNoIHRoZSBmb2xsb3dpbmcKKyAgICAgIGJvaWxlcnBsYXRlIG5vdGljZSwgd2l0aCB0aGUgZmllbGRzIGVuY2xvc2VkIGJ5IGJyYWNrZXRzICJbXSIKKyAgICAgIHJlcGxhY2VkIHdpdGggeW91ciBvd24gaWRlbnRpZnlpbmcgaW5mb3JtYXRpb24uIChEb24ndCBpbmNsdWRlCisgICAgICB0aGUgYnJhY2tldHMhKSAgVGhlIHRleHQgc2hvdWxkIGJlIGVuY2xvc2VkIGluIHRoZSBhcHByb3ByaWF0ZQorICAgICAgY29tbWVudCBzeW50YXggZm9yIHRoZSBmaWxlIGZvcm1hdC4gV2UgYWxzbyByZWNvbW1lbmQgdGhhdCBhCisgICAgICBmaWxlIG9yIGNsYXNzIG5hbWUgYW5kIGRlc2NyaXB0aW9uIG9mIHB1cnBvc2UgYmUgaW5jbHVkZWQgb24gdGhlCisgICAgICBzYW1lICJwcmludGVkIHBhZ2UiIGFzIHRoZSBjb3B5cmlnaHQgbm90aWNlIGZvciBlYXNpZXIKKyAgICAgIGlkZW50aWZpY2F0aW9uIHdpdGhpbiB0aGlyZC1wYXJ0eSBhcmNoaXZlcy4KKworICAgQ29weXJpZ2h0IFt5eXl5XSBbbmFtZSBvZiBjb3B5cmlnaHQgb3duZXJdCisKKyAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCmRpZmYgLS1naXQgYS9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9qYWNrL2phY2stYXBpLzAuOS4wL2phY2stYXBpLTAuOS4wLXNvdXJjZXMuamFyIGIvY29tbW9uL29mZmxpbmUtbTIvY29tL2FuZHJvaWQvdG9vbHMvamFjay9qYWNrLWFwaS8wLjkuMC9qYWNrLWFwaS0wLjkuMC1zb3VyY2VzLmphcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MWY4MzZhCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL29mZmxpbmUtbTIvY29tL2FuZHJvaWQvdG9vbHMvamFjay9qYWNrLWFwaS8wLjkuMC9qYWNrLWFwaS0wLjkuMC1zb3VyY2VzLmphcgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9qYWNrL2phY2stYXBpLzAuOS4wL2phY2stYXBpLTAuOS4wLmphciBiL2NvbW1vbi9vZmZsaW5lLW0yL2NvbS9hbmRyb2lkL3Rvb2xzL2phY2svamFjay1hcGkvMC45LjAvamFjay1hcGktMC45LjAuamFyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA3MDVjNWUKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9qYWNrL2phY2stYXBpLzAuOS4wL2phY2stYXBpLTAuOS4wLmphcgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9qYWNrL2phY2stYXBpLzAuOS4wL2phY2stYXBpLTAuOS4wLnBvbSBiL2NvbW1vbi9vZmZsaW5lLW0yL2NvbS9hbmRyb2lkL3Rvb2xzL2phY2svamFjay1hcGkvMC45LjAvamFjay1hcGktMC45LjAucG9tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgyY2NhMWQKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9qYWNrL2phY2stYXBpLzAuOS4wL2phY2stYXBpLTAuOS4wLnBvbQpAQCAtMCwwICsxLDIxIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHByb2plY3QgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAgaHR0cDovL21hdmVuLmFwYWNoZS5vcmcveHNkL21hdmVuLTQuMC4wLnhzZCIgeG1sbnM9Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCIKKyAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIj4KKyAgPG1vZGVsVmVyc2lvbj40LjAuMDwvbW9kZWxWZXJzaW9uPgorICA8Z3JvdXBJZD5jb20uYW5kcm9pZC50b29scy5qYWNrPC9ncm91cElkPgorICA8YXJ0aWZhY3RJZD5qYWNrLWFwaTwvYXJ0aWZhY3RJZD4KKyAgPHZlcnNpb24+MC45LjA8L3ZlcnNpb24+CisgIDxkZXNjcmlwdGlvbj5JbnZvY2F0aW9uIEFQSSBmb3IgdGhlIEphY2sgYW5kIEppbGwgdG9vbHMuPC9kZXNjcmlwdGlvbj4KKyAgPGxpY2Vuc2VzPgorICAgICA8bGljZW5zZT4KKyAgICAgICAgIDxuYW1lPlRoZSBBcGFjaGUgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAyLjA8L25hbWU+CisgICAgICAgICA8dXJsPmh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC50eHQ8L3VybD4KKyAgICAgICAgIDxkaXN0cmlidXRpb24+cmVwbzwvZGlzdHJpYnV0aW9uPgorICAgICA8L2xpY2Vuc2U+CisgIDwvbGljZW5zZXM+CisgIDxkZXZlbG9wZXJzPgorICAgICA8ZGV2ZWxvcGVyPgorICAgICAgICAgPG5hbWU+VGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdDwvbmFtZT4KKyAgICAgPC9kZXZlbG9wZXI+CisgIDwvZGV2ZWxvcGVycz4KKzwvcHJvamVjdD4KZGlmZiAtLWdpdCBhL2NvbW1vbi9vZmZsaW5lLW0yL2NvbS9hbmRyb2lkL3Rvb2xzL2ppbGwvamlsbC1hcGkvMC45LjAvTk9USUNFIGIvY29tbW9uL29mZmxpbmUtbTIvY29tL2FuZHJvaWQvdG9vbHMvamlsbC9qaWxsLWFwaS8wLjkuMC9OT1RJQ0UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDY0NTY5NQotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9vZmZsaW5lLW0yL2NvbS9hbmRyb2lkL3Rvb2xzL2ppbGwvamlsbC1hcGkvMC45LjAvTk9USUNFCkBAIC0wLDAgKzEsMjAyIEBACisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFwYWNoZSBMaWNlbnNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICBWZXJzaW9uIDIuMCwgSmFudWFyeSAyMDA0CisgICAgICAgICAgICAgICAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvCisKKyAgIFRFUk1TIEFORCBDT05ESVRJT05TIEZPUiBVU0UsIFJFUFJPRFVDVElPTiwgQU5EIERJU1RSSUJVVElPTgorCisgICAxLiBEZWZpbml0aW9ucy4KKworICAgICAgIkxpY2Vuc2UiIHNoYWxsIG1lYW4gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciB1c2UsIHJlcHJvZHVjdGlvbiwKKyAgICAgIGFuZCBkaXN0cmlidXRpb24gYXMgZGVmaW5lZCBieSBTZWN0aW9ucyAxIHRocm91Z2ggOSBvZiB0aGlzIGRvY3VtZW50LgorCisgICAgICAiTGljZW5zb3IiIHNoYWxsIG1lYW4gdGhlIGNvcHlyaWdodCBvd25lciBvciBlbnRpdHkgYXV0aG9yaXplZCBieQorICAgICAgdGhlIGNvcHlyaWdodCBvd25lciB0aGF0IGlzIGdyYW50aW5nIHRoZSBMaWNlbnNlLgorCisgICAgICAiTGVnYWwgRW50aXR5IiBzaGFsbCBtZWFuIHRoZSB1bmlvbiBvZiB0aGUgYWN0aW5nIGVudGl0eSBhbmQgYWxsCisgICAgICBvdGhlciBlbnRpdGllcyB0aGF0IGNvbnRyb2wsIGFyZSBjb250cm9sbGVkIGJ5LCBvciBhcmUgdW5kZXIgY29tbW9uCisgICAgICBjb250cm9sIHdpdGggdGhhdCBlbnRpdHkuIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBkZWZpbml0aW9uLAorICAgICAgImNvbnRyb2wiIG1lYW5zIChpKSB0aGUgcG93ZXIsIGRpcmVjdCBvciBpbmRpcmVjdCwgdG8gY2F1c2UgdGhlCisgICAgICBkaXJlY3Rpb24gb3IgbWFuYWdlbWVudCBvZiBzdWNoIGVudGl0eSwgd2hldGhlciBieSBjb250cmFjdCBvcgorICAgICAgb3RoZXJ3aXNlLCBvciAoaWkpIG93bmVyc2hpcCBvZiBmaWZ0eSBwZXJjZW50ICg1MCUpIG9yIG1vcmUgb2YgdGhlCisgICAgICBvdXRzdGFuZGluZyBzaGFyZXMsIG9yIChpaWkpIGJlbmVmaWNpYWwgb3duZXJzaGlwIG9mIHN1Y2ggZW50aXR5LgorCisgICAgICAiWW91IiAob3IgIllvdXIiKSBzaGFsbCBtZWFuIGFuIGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5CisgICAgICBleGVyY2lzaW5nIHBlcm1pc3Npb25zIGdyYW50ZWQgYnkgdGhpcyBMaWNlbnNlLgorCisgICAgICAiU291cmNlIiBmb3JtIHNoYWxsIG1lYW4gdGhlIHByZWZlcnJlZCBmb3JtIGZvciBtYWtpbmcgbW9kaWZpY2F0aW9ucywKKyAgICAgIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gc29mdHdhcmUgc291cmNlIGNvZGUsIGRvY3VtZW50YXRpb24KKyAgICAgIHNvdXJjZSwgYW5kIGNvbmZpZ3VyYXRpb24gZmlsZXMuCisKKyAgICAgICJPYmplY3QiIGZvcm0gc2hhbGwgbWVhbiBhbnkgZm9ybSByZXN1bHRpbmcgZnJvbSBtZWNoYW5pY2FsCisgICAgICB0cmFuc2Zvcm1hdGlvbiBvciB0cmFuc2xhdGlvbiBvZiBhIFNvdXJjZSBmb3JtLCBpbmNsdWRpbmcgYnV0CisgICAgICBub3QgbGltaXRlZCB0byBjb21waWxlZCBvYmplY3QgY29kZSwgZ2VuZXJhdGVkIGRvY3VtZW50YXRpb24sCisgICAgICBhbmQgY29udmVyc2lvbnMgdG8gb3RoZXIgbWVkaWEgdHlwZXMuCisKKyAgICAgICJXb3JrIiBzaGFsbCBtZWFuIHRoZSB3b3JrIG9mIGF1dGhvcnNoaXAsIHdoZXRoZXIgaW4gU291cmNlIG9yCisgICAgICBPYmplY3QgZm9ybSwgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIExpY2Vuc2UsIGFzIGluZGljYXRlZCBieSBhCisgICAgICBjb3B5cmlnaHQgbm90aWNlIHRoYXQgaXMgaW5jbHVkZWQgaW4gb3IgYXR0YWNoZWQgdG8gdGhlIHdvcmsKKyAgICAgIChhbiBleGFtcGxlIGlzIHByb3ZpZGVkIGluIHRoZSBBcHBlbmRpeCBiZWxvdykuCisKKyAgICAgICJEZXJpdmF0aXZlIFdvcmtzIiBzaGFsbCBtZWFuIGFueSB3b3JrLCB3aGV0aGVyIGluIFNvdXJjZSBvciBPYmplY3QKKyAgICAgIGZvcm0sIHRoYXQgaXMgYmFzZWQgb24gKG9yIGRlcml2ZWQgZnJvbSkgdGhlIFdvcmsgYW5kIGZvciB3aGljaCB0aGUKKyAgICAgIGVkaXRvcmlhbCByZXZpc2lvbnMsIGFubm90YXRpb25zLCBlbGFib3JhdGlvbnMsIG9yIG90aGVyIG1vZGlmaWNhdGlvbnMKKyAgICAgIHJlcHJlc2VudCwgYXMgYSB3aG9sZSwgYW4gb3JpZ2luYWwgd29yayBvZiBhdXRob3JzaGlwLiBGb3IgdGhlIHB1cnBvc2VzCisgICAgICBvZiB0aGlzIExpY2Vuc2UsIERlcml2YXRpdmUgV29ya3Mgc2hhbGwgbm90IGluY2x1ZGUgd29ya3MgdGhhdCByZW1haW4KKyAgICAgIHNlcGFyYWJsZSBmcm9tLCBvciBtZXJlbHkgbGluayAob3IgYmluZCBieSBuYW1lKSB0byB0aGUgaW50ZXJmYWNlcyBvZiwKKyAgICAgIHRoZSBXb3JrIGFuZCBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YuCisKKyAgICAgICJDb250cmlidXRpb24iIHNoYWxsIG1lYW4gYW55IHdvcmsgb2YgYXV0aG9yc2hpcCwgaW5jbHVkaW5nCisgICAgICB0aGUgb3JpZ2luYWwgdmVyc2lvbiBvZiB0aGUgV29yayBhbmQgYW55IG1vZGlmaWNhdGlvbnMgb3IgYWRkaXRpb25zCisgICAgICB0byB0aGF0IFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mLCB0aGF0IGlzIGludGVudGlvbmFsbHkKKyAgICAgIHN1Ym1pdHRlZCB0byBMaWNlbnNvciBmb3IgaW5jbHVzaW9uIGluIHRoZSBXb3JrIGJ5IHRoZSBjb3B5cmlnaHQgb3duZXIKKyAgICAgIG9yIGJ5IGFuIGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5IGF1dGhvcml6ZWQgdG8gc3VibWl0IG9uIGJlaGFsZiBvZgorICAgICAgdGhlIGNvcHlyaWdodCBvd25lci4gRm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIGRlZmluaXRpb24sICJzdWJtaXR0ZWQiCisgICAgICBtZWFucyBhbnkgZm9ybSBvZiBlbGVjdHJvbmljLCB2ZXJiYWwsIG9yIHdyaXR0ZW4gY29tbXVuaWNhdGlvbiBzZW50CisgICAgICB0byB0aGUgTGljZW5zb3Igb3IgaXRzIHJlcHJlc2VudGF0aXZlcywgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0bworICAgICAgY29tbXVuaWNhdGlvbiBvbiBlbGVjdHJvbmljIG1haWxpbmcgbGlzdHMsIHNvdXJjZSBjb2RlIGNvbnRyb2wgc3lzdGVtcywKKyAgICAgIGFuZCBpc3N1ZSB0cmFja2luZyBzeXN0ZW1zIHRoYXQgYXJlIG1hbmFnZWQgYnksIG9yIG9uIGJlaGFsZiBvZiwgdGhlCisgICAgICBMaWNlbnNvciBmb3IgdGhlIHB1cnBvc2Ugb2YgZGlzY3Vzc2luZyBhbmQgaW1wcm92aW5nIHRoZSBXb3JrLCBidXQKKyAgICAgIGV4Y2x1ZGluZyBjb21tdW5pY2F0aW9uIHRoYXQgaXMgY29uc3BpY3VvdXNseSBtYXJrZWQgb3Igb3RoZXJ3aXNlCisgICAgICBkZXNpZ25hdGVkIGluIHdyaXRpbmcgYnkgdGhlIGNvcHlyaWdodCBvd25lciBhcyAiTm90IGEgQ29udHJpYnV0aW9uLiIKKworICAgICAgIkNvbnRyaWJ1dG9yIiBzaGFsbCBtZWFuIExpY2Vuc29yIGFuZCBhbnkgaW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkKKyAgICAgIG9uIGJlaGFsZiBvZiB3aG9tIGEgQ29udHJpYnV0aW9uIGhhcyBiZWVuIHJlY2VpdmVkIGJ5IExpY2Vuc29yIGFuZAorICAgICAgc3Vic2VxdWVudGx5IGluY29ycG9yYXRlZCB3aXRoaW4gdGhlIFdvcmsuCisKKyAgIDIuIEdyYW50IG9mIENvcHlyaWdodCBMaWNlbnNlLiBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgorICAgICAgdGhpcyBMaWNlbnNlLCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieSBncmFudHMgdG8gWW91IGEgcGVycGV0dWFsLAorICAgICAgd29ybGR3aWRlLCBub24tZXhjbHVzaXZlLCBuby1jaGFyZ2UsIHJveWFsdHktZnJlZSwgaXJyZXZvY2FibGUKKyAgICAgIGNvcHlyaWdodCBsaWNlbnNlIHRvIHJlcHJvZHVjZSwgcHJlcGFyZSBEZXJpdmF0aXZlIFdvcmtzIG9mLAorICAgICAgcHVibGljbHkgZGlzcGxheSwgcHVibGljbHkgcGVyZm9ybSwgc3VibGljZW5zZSwgYW5kIGRpc3RyaWJ1dGUgdGhlCisgICAgICBXb3JrIGFuZCBzdWNoIERlcml2YXRpdmUgV29ya3MgaW4gU291cmNlIG9yIE9iamVjdCBmb3JtLgorCisgICAzLiBHcmFudCBvZiBQYXRlbnQgTGljZW5zZS4gU3ViamVjdCB0byB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YKKyAgICAgIHRoaXMgTGljZW5zZSwgZWFjaCBDb250cmlidXRvciBoZXJlYnkgZ3JhbnRzIHRvIFlvdSBhIHBlcnBldHVhbCwKKyAgICAgIHdvcmxkd2lkZSwgbm9uLWV4Y2x1c2l2ZSwgbm8tY2hhcmdlLCByb3lhbHR5LWZyZWUsIGlycmV2b2NhYmxlCisgICAgICAoZXhjZXB0IGFzIHN0YXRlZCBpbiB0aGlzIHNlY3Rpb24pIHBhdGVudCBsaWNlbnNlIHRvIG1ha2UsIGhhdmUgbWFkZSwKKyAgICAgIHVzZSwgb2ZmZXIgdG8gc2VsbCwgc2VsbCwgaW1wb3J0LCBhbmQgb3RoZXJ3aXNlIHRyYW5zZmVyIHRoZSBXb3JrLAorICAgICAgd2hlcmUgc3VjaCBsaWNlbnNlIGFwcGxpZXMgb25seSB0byB0aG9zZSBwYXRlbnQgY2xhaW1zIGxpY2Vuc2FibGUKKyAgICAgIGJ5IHN1Y2ggQ29udHJpYnV0b3IgdGhhdCBhcmUgbmVjZXNzYXJpbHkgaW5mcmluZ2VkIGJ5IHRoZWlyCisgICAgICBDb250cmlidXRpb24ocykgYWxvbmUgb3IgYnkgY29tYmluYXRpb24gb2YgdGhlaXIgQ29udHJpYnV0aW9uKHMpCisgICAgICB3aXRoIHRoZSBXb3JrIHRvIHdoaWNoIHN1Y2ggQ29udHJpYnV0aW9uKHMpIHdhcyBzdWJtaXR0ZWQuIElmIFlvdQorICAgICAgaW5zdGl0dXRlIHBhdGVudCBsaXRpZ2F0aW9uIGFnYWluc3QgYW55IGVudGl0eSAoaW5jbHVkaW5nIGEKKyAgICAgIGNyb3NzLWNsYWltIG9yIGNvdW50ZXJjbGFpbSBpbiBhIGxhd3N1aXQpIGFsbGVnaW5nIHRoYXQgdGhlIFdvcmsKKyAgICAgIG9yIGEgQ29udHJpYnV0aW9uIGluY29ycG9yYXRlZCB3aXRoaW4gdGhlIFdvcmsgY29uc3RpdHV0ZXMgZGlyZWN0CisgICAgICBvciBjb250cmlidXRvcnkgcGF0ZW50IGluZnJpbmdlbWVudCwgdGhlbiBhbnkgcGF0ZW50IGxpY2Vuc2VzCisgICAgICBncmFudGVkIHRvIFlvdSB1bmRlciB0aGlzIExpY2Vuc2UgZm9yIHRoYXQgV29yayBzaGFsbCB0ZXJtaW5hdGUKKyAgICAgIGFzIG9mIHRoZSBkYXRlIHN1Y2ggbGl0aWdhdGlvbiBpcyBmaWxlZC4KKworICAgNC4gUmVkaXN0cmlidXRpb24uIFlvdSBtYXkgcmVwcm9kdWNlIGFuZCBkaXN0cmlidXRlIGNvcGllcyBvZiB0aGUKKyAgICAgIFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mIGluIGFueSBtZWRpdW0sIHdpdGggb3Igd2l0aG91dAorICAgICAgbW9kaWZpY2F0aW9ucywgYW5kIGluIFNvdXJjZSBvciBPYmplY3QgZm9ybSwgcHJvdmlkZWQgdGhhdCBZb3UKKyAgICAgIG1lZXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorCisgICAgICAoYSkgWW91IG11c3QgZ2l2ZSBhbnkgb3RoZXIgcmVjaXBpZW50cyBvZiB0aGUgV29yayBvcgorICAgICAgICAgIERlcml2YXRpdmUgV29ya3MgYSBjb3B5IG9mIHRoaXMgTGljZW5zZTsgYW5kCisKKyAgICAgIChiKSBZb3UgbXVzdCBjYXVzZSBhbnkgbW9kaWZpZWQgZmlsZXMgdG8gY2FycnkgcHJvbWluZW50IG5vdGljZXMKKyAgICAgICAgICBzdGF0aW5nIHRoYXQgWW91IGNoYW5nZWQgdGhlIGZpbGVzOyBhbmQKKworICAgICAgKGMpIFlvdSBtdXN0IHJldGFpbiwgaW4gdGhlIFNvdXJjZSBmb3JtIG9mIGFueSBEZXJpdmF0aXZlIFdvcmtzCisgICAgICAgICAgdGhhdCBZb3UgZGlzdHJpYnV0ZSwgYWxsIGNvcHlyaWdodCwgcGF0ZW50LCB0cmFkZW1hcmssIGFuZAorICAgICAgICAgIGF0dHJpYnV0aW9uIG5vdGljZXMgZnJvbSB0aGUgU291cmNlIGZvcm0gb2YgdGhlIFdvcmssCisgICAgICAgICAgZXhjbHVkaW5nIHRob3NlIG5vdGljZXMgdGhhdCBkbyBub3QgcGVydGFpbiB0byBhbnkgcGFydCBvZgorICAgICAgICAgIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyBhbmQKKworICAgICAgKGQpIElmIHRoZSBXb3JrIGluY2x1ZGVzIGEgIk5PVElDRSIgdGV4dCBmaWxlIGFzIHBhcnQgb2YgaXRzCisgICAgICAgICAgZGlzdHJpYnV0aW9uLCB0aGVuIGFueSBEZXJpdmF0aXZlIFdvcmtzIHRoYXQgWW91IGRpc3RyaWJ1dGUgbXVzdAorICAgICAgICAgIGluY2x1ZGUgYSByZWFkYWJsZSBjb3B5IG9mIHRoZSBhdHRyaWJ1dGlvbiBub3RpY2VzIGNvbnRhaW5lZAorICAgICAgICAgIHdpdGhpbiBzdWNoIE5PVElDRSBmaWxlLCBleGNsdWRpbmcgdGhvc2Ugbm90aWNlcyB0aGF0IGRvIG5vdAorICAgICAgICAgIHBlcnRhaW4gdG8gYW55IHBhcnQgb2YgdGhlIERlcml2YXRpdmUgV29ya3MsIGluIGF0IGxlYXN0IG9uZQorICAgICAgICAgIG9mIHRoZSBmb2xsb3dpbmcgcGxhY2VzOiB3aXRoaW4gYSBOT1RJQ0UgdGV4dCBmaWxlIGRpc3RyaWJ1dGVkCisgICAgICAgICAgYXMgcGFydCBvZiB0aGUgRGVyaXZhdGl2ZSBXb3Jrczsgd2l0aGluIHRoZSBTb3VyY2UgZm9ybSBvcgorICAgICAgICAgIGRvY3VtZW50YXRpb24sIGlmIHByb3ZpZGVkIGFsb25nIHdpdGggdGhlIERlcml2YXRpdmUgV29ya3M7IG9yLAorICAgICAgICAgIHdpdGhpbiBhIGRpc3BsYXkgZ2VuZXJhdGVkIGJ5IHRoZSBEZXJpdmF0aXZlIFdvcmtzLCBpZiBhbmQKKyAgICAgICAgICB3aGVyZXZlciBzdWNoIHRoaXJkLXBhcnR5IG5vdGljZXMgbm9ybWFsbHkgYXBwZWFyLiBUaGUgY29udGVudHMKKyAgICAgICAgICBvZiB0aGUgTk9USUNFIGZpbGUgYXJlIGZvciBpbmZvcm1hdGlvbmFsIHB1cnBvc2VzIG9ubHkgYW5kCisgICAgICAgICAgZG8gbm90IG1vZGlmeSB0aGUgTGljZW5zZS4gWW91IG1heSBhZGQgWW91ciBvd24gYXR0cmlidXRpb24KKyAgICAgICAgICBub3RpY2VzIHdpdGhpbiBEZXJpdmF0aXZlIFdvcmtzIHRoYXQgWW91IGRpc3RyaWJ1dGUsIGFsb25nc2lkZQorICAgICAgICAgIG9yIGFzIGFuIGFkZGVuZHVtIHRvIHRoZSBOT1RJQ0UgdGV4dCBmcm9tIHRoZSBXb3JrLCBwcm92aWRlZAorICAgICAgICAgIHRoYXQgc3VjaCBhZGRpdGlvbmFsIGF0dHJpYnV0aW9uIG5vdGljZXMgY2Fubm90IGJlIGNvbnN0cnVlZAorICAgICAgICAgIGFzIG1vZGlmeWluZyB0aGUgTGljZW5zZS4KKworICAgICAgWW91IG1heSBhZGQgWW91ciBvd24gY29weXJpZ2h0IHN0YXRlbWVudCB0byBZb3VyIG1vZGlmaWNhdGlvbnMgYW5kCisgICAgICBtYXkgcHJvdmlkZSBhZGRpdGlvbmFsIG9yIGRpZmZlcmVudCBsaWNlbnNlIHRlcm1zIGFuZCBjb25kaXRpb25zCisgICAgICBmb3IgdXNlLCByZXByb2R1Y3Rpb24sIG9yIGRpc3RyaWJ1dGlvbiBvZiBZb3VyIG1vZGlmaWNhdGlvbnMsIG9yCisgICAgICBmb3IgYW55IHN1Y2ggRGVyaXZhdGl2ZSBXb3JrcyBhcyBhIHdob2xlLCBwcm92aWRlZCBZb3VyIHVzZSwKKyAgICAgIHJlcHJvZHVjdGlvbiwgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGUgV29yayBvdGhlcndpc2UgY29tcGxpZXMgd2l0aAorICAgICAgdGhlIGNvbmRpdGlvbnMgc3RhdGVkIGluIHRoaXMgTGljZW5zZS4KKworICAgNS4gU3VibWlzc2lvbiBvZiBDb250cmlidXRpb25zLiBVbmxlc3MgWW91IGV4cGxpY2l0bHkgc3RhdGUgb3RoZXJ3aXNlLAorICAgICAgYW55IENvbnRyaWJ1dGlvbiBpbnRlbnRpb25hbGx5IHN1Ym1pdHRlZCBmb3IgaW5jbHVzaW9uIGluIHRoZSBXb3JrCisgICAgICBieSBZb3UgdG8gdGhlIExpY2Vuc29yIHNoYWxsIGJlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgorICAgICAgdGhpcyBMaWNlbnNlLCB3aXRob3V0IGFueSBhZGRpdGlvbmFsIHRlcm1zIG9yIGNvbmRpdGlvbnMuCisgICAgICBOb3R3aXRoc3RhbmRpbmcgdGhlIGFib3ZlLCBub3RoaW5nIGhlcmVpbiBzaGFsbCBzdXBlcnNlZGUgb3IgbW9kaWZ5CisgICAgICB0aGUgdGVybXMgb2YgYW55IHNlcGFyYXRlIGxpY2Vuc2UgYWdyZWVtZW50IHlvdSBtYXkgaGF2ZSBleGVjdXRlZAorICAgICAgd2l0aCBMaWNlbnNvciByZWdhcmRpbmcgc3VjaCBDb250cmlidXRpb25zLgorCisgICA2LiBUcmFkZW1hcmtzLiBUaGlzIExpY2Vuc2UgZG9lcyBub3QgZ3JhbnQgcGVybWlzc2lvbiB0byB1c2UgdGhlIHRyYWRlCisgICAgICBuYW1lcywgdHJhZGVtYXJrcywgc2VydmljZSBtYXJrcywgb3IgcHJvZHVjdCBuYW1lcyBvZiB0aGUgTGljZW5zb3IsCisgICAgICBleGNlcHQgYXMgcmVxdWlyZWQgZm9yIHJlYXNvbmFibGUgYW5kIGN1c3RvbWFyeSB1c2UgaW4gZGVzY3JpYmluZyB0aGUKKyAgICAgIG9yaWdpbiBvZiB0aGUgV29yayBhbmQgcmVwcm9kdWNpbmcgdGhlIGNvbnRlbnQgb2YgdGhlIE5PVElDRSBmaWxlLgorCisgICA3LiBEaXNjbGFpbWVyIG9mIFdhcnJhbnR5LiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IKKyAgICAgIGFncmVlZCB0byBpbiB3cml0aW5nLCBMaWNlbnNvciBwcm92aWRlcyB0aGUgV29yayAoYW5kIGVhY2gKKyAgICAgIENvbnRyaWJ1dG9yIHByb3ZpZGVzIGl0cyBDb250cmlidXRpb25zKSBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yCisgICAgICBpbXBsaWVkLCBpbmNsdWRpbmcsIHdpdGhvdXQgbGltaXRhdGlvbiwgYW55IHdhcnJhbnRpZXMgb3IgY29uZGl0aW9ucworICAgICAgb2YgVElUTEUsIE5PTi1JTkZSSU5HRU1FTlQsIE1FUkNIQU5UQUJJTElUWSwgb3IgRklUTkVTUyBGT1IgQQorICAgICAgUEFSVElDVUxBUiBQVVJQT1NFLiBZb3UgYXJlIHNvbGVseSByZXNwb25zaWJsZSBmb3IgZGV0ZXJtaW5pbmcgdGhlCisgICAgICBhcHByb3ByaWF0ZW5lc3Mgb2YgdXNpbmcgb3IgcmVkaXN0cmlidXRpbmcgdGhlIFdvcmsgYW5kIGFzc3VtZSBhbnkKKyAgICAgIHJpc2tzIGFzc29jaWF0ZWQgd2l0aCBZb3VyIGV4ZXJjaXNlIG9mIHBlcm1pc3Npb25zIHVuZGVyIHRoaXMgTGljZW5zZS4KKworICAgOC4gTGltaXRhdGlvbiBvZiBMaWFiaWxpdHkuIEluIG5vIGV2ZW50IGFuZCB1bmRlciBubyBsZWdhbCB0aGVvcnksCisgICAgICB3aGV0aGVyIGluIHRvcnQgKGluY2x1ZGluZyBuZWdsaWdlbmNlKSwgY29udHJhY3QsIG9yIG90aGVyd2lzZSwKKyAgICAgIHVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyAoc3VjaCBhcyBkZWxpYmVyYXRlIGFuZCBncm9zc2x5CisgICAgICBuZWdsaWdlbnQgYWN0cykgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNoYWxsIGFueSBDb250cmlidXRvciBiZQorICAgICAgbGlhYmxlIHRvIFlvdSBmb3IgZGFtYWdlcywgaW5jbHVkaW5nIGFueSBkaXJlY3QsIGluZGlyZWN0LCBzcGVjaWFsLAorICAgICAgaW5jaWRlbnRhbCwgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9mIGFueSBjaGFyYWN0ZXIgYXJpc2luZyBhcyBhCisgICAgICByZXN1bHQgb2YgdGhpcyBMaWNlbnNlIG9yIG91dCBvZiB0aGUgdXNlIG9yIGluYWJpbGl0eSB0byB1c2UgdGhlCisgICAgICBXb3JrIChpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIGRhbWFnZXMgZm9yIGxvc3Mgb2YgZ29vZHdpbGwsCisgICAgICB3b3JrIHN0b3BwYWdlLCBjb21wdXRlciBmYWlsdXJlIG9yIG1hbGZ1bmN0aW9uLCBvciBhbnkgYW5kIGFsbAorICAgICAgb3RoZXIgY29tbWVyY2lhbCBkYW1hZ2VzIG9yIGxvc3NlcyksIGV2ZW4gaWYgc3VjaCBDb250cmlidXRvcgorICAgICAgaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2Ygc3VjaCBkYW1hZ2VzLgorCisgICA5LiBBY2NlcHRpbmcgV2FycmFudHkgb3IgQWRkaXRpb25hbCBMaWFiaWxpdHkuIFdoaWxlIHJlZGlzdHJpYnV0aW5nCisgICAgICB0aGUgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YsIFlvdSBtYXkgY2hvb3NlIHRvIG9mZmVyLAorICAgICAgYW5kIGNoYXJnZSBhIGZlZSBmb3IsIGFjY2VwdGFuY2Ugb2Ygc3VwcG9ydCwgd2FycmFudHksIGluZGVtbml0eSwKKyAgICAgIG9yIG90aGVyIGxpYWJpbGl0eSBvYmxpZ2F0aW9ucyBhbmQvb3IgcmlnaHRzIGNvbnNpc3RlbnQgd2l0aCB0aGlzCisgICAgICBMaWNlbnNlLiBIb3dldmVyLCBpbiBhY2NlcHRpbmcgc3VjaCBvYmxpZ2F0aW9ucywgWW91IG1heSBhY3Qgb25seQorICAgICAgb24gWW91ciBvd24gYmVoYWxmIGFuZCBvbiBZb3VyIHNvbGUgcmVzcG9uc2liaWxpdHksIG5vdCBvbiBiZWhhbGYKKyAgICAgIG9mIGFueSBvdGhlciBDb250cmlidXRvciwgYW5kIG9ubHkgaWYgWW91IGFncmVlIHRvIGluZGVtbmlmeSwKKyAgICAgIGRlZmVuZCwgYW5kIGhvbGQgZWFjaCBDb250cmlidXRvciBoYXJtbGVzcyBmb3IgYW55IGxpYWJpbGl0eQorICAgICAgaW5jdXJyZWQgYnksIG9yIGNsYWltcyBhc3NlcnRlZCBhZ2FpbnN0LCBzdWNoIENvbnRyaWJ1dG9yIGJ5IHJlYXNvbgorICAgICAgb2YgeW91ciBhY2NlcHRpbmcgYW55IHN1Y2ggd2FycmFudHkgb3IgYWRkaXRpb25hbCBsaWFiaWxpdHkuCisKKyAgIEVORCBPRiBURVJNUyBBTkQgQ09ORElUSU9OUworCisgICBBUFBFTkRJWDogSG93IHRvIGFwcGx5IHRoZSBBcGFjaGUgTGljZW5zZSB0byB5b3VyIHdvcmsuCisKKyAgICAgIFRvIGFwcGx5IHRoZSBBcGFjaGUgTGljZW5zZSB0byB5b3VyIHdvcmssIGF0dGFjaCB0aGUgZm9sbG93aW5nCisgICAgICBib2lsZXJwbGF0ZSBub3RpY2UsIHdpdGggdGhlIGZpZWxkcyBlbmNsb3NlZCBieSBicmFja2V0cyAiW10iCisgICAgICByZXBsYWNlZCB3aXRoIHlvdXIgb3duIGlkZW50aWZ5aW5nIGluZm9ybWF0aW9uLiAoRG9uJ3QgaW5jbHVkZQorICAgICAgdGhlIGJyYWNrZXRzISkgIFRoZSB0ZXh0IHNob3VsZCBiZSBlbmNsb3NlZCBpbiB0aGUgYXBwcm9wcmlhdGUKKyAgICAgIGNvbW1lbnQgc3ludGF4IGZvciB0aGUgZmlsZSBmb3JtYXQuIFdlIGFsc28gcmVjb21tZW5kIHRoYXQgYQorICAgICAgZmlsZSBvciBjbGFzcyBuYW1lIGFuZCBkZXNjcmlwdGlvbiBvZiBwdXJwb3NlIGJlIGluY2x1ZGVkIG9uIHRoZQorICAgICAgc2FtZSAicHJpbnRlZCBwYWdlIiBhcyB0aGUgY29weXJpZ2h0IG5vdGljZSBmb3IgZWFzaWVyCisgICAgICBpZGVudGlmaWNhdGlvbiB3aXRoaW4gdGhpcmQtcGFydHkgYXJjaGl2ZXMuCisKKyAgIENvcHlyaWdodCBbeXl5eV0gW25hbWUgb2YgY29weXJpZ2h0IG93bmVyXQorCisgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgpkaWZmIC0tZ2l0IGEvY29tbW9uL29mZmxpbmUtbTIvY29tL2FuZHJvaWQvdG9vbHMvamlsbC9qaWxsLWFwaS8wLjkuMC9qaWxsLWFwaS0wLjkuMC1zb3VyY2VzLmphciBiL2NvbW1vbi9vZmZsaW5lLW0yL2NvbS9hbmRyb2lkL3Rvb2xzL2ppbGwvamlsbC1hcGkvMC45LjAvamlsbC1hcGktMC45LjAtc291cmNlcy5qYXIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTljNWU4NwotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9vZmZsaW5lLW0yL2NvbS9hbmRyb2lkL3Rvb2xzL2ppbGwvamlsbC1hcGkvMC45LjAvamlsbC1hcGktMC45LjAtc291cmNlcy5qYXIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvY29tbW9uL29mZmxpbmUtbTIvY29tL2FuZHJvaWQvdG9vbHMvamlsbC9qaWxsLWFwaS8wLjkuMC9qaWxsLWFwaS0wLjkuMC5qYXIgYi9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9qaWxsL2ppbGwtYXBpLzAuOS4wL2ppbGwtYXBpLTAuOS4wLmphcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMmI4YzQ4Ci0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL29mZmxpbmUtbTIvY29tL2FuZHJvaWQvdG9vbHMvamlsbC9qaWxsLWFwaS8wLjkuMC9qaWxsLWFwaS0wLjkuMC5qYXIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvY29tbW9uL29mZmxpbmUtbTIvY29tL2FuZHJvaWQvdG9vbHMvamlsbC9qaWxsLWFwaS8wLjkuMC9qaWxsLWFwaS0wLjkuMC5wb20gYi9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9qaWxsL2ppbGwtYXBpLzAuOS4wL2ppbGwtYXBpLTAuOS4wLnBvbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZGEyNjNjCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL29mZmxpbmUtbTIvY29tL2FuZHJvaWQvdG9vbHMvamlsbC9qaWxsLWFwaS8wLjkuMC9qaWxsLWFwaS0wLjkuMC5wb20KQEAgLTAsMCArMSwyMSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxwcm9qZWN0IHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL3hzZC9tYXZlbi00LjAuMC54c2QiIHhtbG5zPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAiCisgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSI+CisgIDxtb2RlbFZlcnNpb24+NC4wLjA8L21vZGVsVmVyc2lvbj4KKyAgPGdyb3VwSWQ+Y29tLmFuZHJvaWQudG9vbHMuamlsbDwvZ3JvdXBJZD4KKyAgPGFydGlmYWN0SWQ+amlsbC1hcGk8L2FydGlmYWN0SWQ+CisgIDx2ZXJzaW9uPjAuOS4wPC92ZXJzaW9uPgorICA8ZGVzY3JpcHRpb24+SW52b2NhdGlvbiBBUEkgZm9yIHRoZSBKaWxsIHRvb2xzLjwvZGVzY3JpcHRpb24+CisgIDxsaWNlbnNlcz4KKyAgICAgPGxpY2Vuc2U+CisgICAgICAgICA8bmFtZT5UaGUgQXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMi4wPC9uYW1lPgorICAgICAgICAgPHVybD5odHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAudHh0PC91cmw+CisgICAgICAgICA8ZGlzdHJpYnV0aW9uPnJlcG88L2Rpc3RyaWJ1dGlvbj4KKyAgICAgPC9saWNlbnNlPgorICA8L2xpY2Vuc2VzPgorICA8ZGV2ZWxvcGVycz4KKyAgICAgPGRldmVsb3Blcj4KKyAgICAgICAgIDxuYW1lPlRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3Q8L25hbWU+CisgICAgIDwvZGV2ZWxvcGVyPgorICA8L2RldmVsb3BlcnM+Cis8L3Byb2plY3Q+CmRpZmYgLS1naXQgYS9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9sYXlvdXRsaWIvbGF5b3V0bGliLWFwaS8yNC4zLjAvbGF5b3V0bGliLWFwaS0yNC4zLjAtc291cmNlcy5qYXIgYi9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9sYXlvdXRsaWIvbGF5b3V0bGliLWFwaS8yNC4zLjAvbGF5b3V0bGliLWFwaS0yNC4zLjAtc291cmNlcy5qYXIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTcwMjIzNAotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9vZmZsaW5lLW0yL2NvbS9hbmRyb2lkL3Rvb2xzL2xheW91dGxpYi9sYXlvdXRsaWItYXBpLzI0LjMuMC9sYXlvdXRsaWItYXBpLTI0LjMuMC1zb3VyY2VzLmphcgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9sYXlvdXRsaWIvbGF5b3V0bGliLWFwaS8yNC4zLjAvbGF5b3V0bGliLWFwaS0yNC4zLjAuamFyIGIvY29tbW9uL29mZmxpbmUtbTIvY29tL2FuZHJvaWQvdG9vbHMvbGF5b3V0bGliL2xheW91dGxpYi1hcGkvMjQuMy4wL2xheW91dGxpYi1hcGktMjQuMy4wLmphcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYTAyODVkCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL29mZmxpbmUtbTIvY29tL2FuZHJvaWQvdG9vbHMvbGF5b3V0bGliL2xheW91dGxpYi1hcGkvMjQuMy4wL2xheW91dGxpYi1hcGktMjQuMy4wLmphcgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9sYXlvdXRsaWIvbGF5b3V0bGliLWFwaS8yNC4zLjAvbGF5b3V0bGliLWFwaS0yNC4zLjAucG9tIGIvY29tbW9uL29mZmxpbmUtbTIvY29tL2FuZHJvaWQvdG9vbHMvbGF5b3V0bGliL2xheW91dGxpYi1hcGkvMjQuMy4wL2xheW91dGxpYi1hcGktMjQuMy4wLnBvbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NDFmODJmCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL29mZmxpbmUtbTIvY29tL2FuZHJvaWQvdG9vbHMvbGF5b3V0bGliL2xheW91dGxpYi1hcGkvMjQuMy4wL2xheW91dGxpYi1hcGktMjQuMy4wLnBvbQpAQCAtMCwwICsxLDYwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHByb2plY3QgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAgaHR0cDovL21hdmVuLmFwYWNoZS5vcmcveHNkL21hdmVuLTQuMC4wLnhzZCIgeG1sbnM9Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCIKKyAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIj4KKyAgPG1vZGVsVmVyc2lvbj40LjAuMDwvbW9kZWxWZXJzaW9uPgorICA8Z3JvdXBJZD5jb20uYW5kcm9pZC50b29scy5sYXlvdXRsaWI8L2dyb3VwSWQ+CisgIDxhcnRpZmFjdElkPmxheW91dGxpYi1hcGk8L2FydGlmYWN0SWQ+CisgIDx2ZXJzaW9uPjI0LjMuMDwvdmVyc2lvbj4KKyAgPG5hbWU+QW5kcm9pZCBUb29scyBsYXlvdXRsaWItYXBpPC9uYW1lPgorICA8ZGVzY3JpcHRpb24+TGlicmFyeSB0byB1c2UgdGhlIHJlbmRlcmluZyBsaWJyYXJ5IGZvciBBbmRyb2lkIGxheW91dHM6IGxheW91dGxpYjwvZGVzY3JpcHRpb24+CisgIDx1cmw+aHR0cDovL3Rvb2xzLmFuZHJvaWQuY29tPC91cmw+CisgIDxpbmNlcHRpb25ZZWFyPjIwMDc8L2luY2VwdGlvblllYXI+CisgIDxsaWNlbnNlcz4KKyAgICA8bGljZW5zZT4KKyAgICAgIDxuYW1lPlRoZSBBcGFjaGUgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAyLjA8L25hbWU+CisgICAgICA8dXJsPmh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC50eHQ8L3VybD4KKyAgICAgIDxkaXN0cmlidXRpb24+cmVwbzwvZGlzdHJpYnV0aW9uPgorICAgIDwvbGljZW5zZT4KKyAgPC9saWNlbnNlcz4KKyAgPGRldmVsb3BlcnM+CisgICAgPGRldmVsb3Blcj4KKyAgICAgIDxuYW1lPlRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3Q8L25hbWU+CisgICAgPC9kZXZlbG9wZXI+CisgIDwvZGV2ZWxvcGVycz4KKyAgPHNjbT4KKyAgICA8Y29ubmVjdGlvbj5naXQ6Ly9hbmRyb2lkLmdvb2dsZXNvdXJjZS5jb20vcGxhdGZvcm0vdG9vbHMvYmFzZS5naXQ8L2Nvbm5lY3Rpb24+CisgICAgPHVybD5odHRwczovL2FuZHJvaWQuZ29vZ2xlc291cmNlLmNvbS9wbGF0Zm9ybS90b29scy9iYXNlPC91cmw+CisgIDwvc2NtPgorICA8ZGVwZW5kZW5jaWVzPgorICAgIDxkZXBlbmRlbmN5PgorICAgICAgPGdyb3VwSWQ+Y29tLmFuZHJvaWQudG9vbHM8L2dyb3VwSWQ+CisgICAgICA8YXJ0aWZhY3RJZD5jb21tb248L2FydGlmYWN0SWQ+CisgICAgICA8dmVyc2lvbj4yNC4zLjA8L3ZlcnNpb24+CisgICAgICA8c2NvcGU+Y29tcGlsZTwvc2NvcGU+CisgICAgPC9kZXBlbmRlbmN5PgorICAgIDxkZXBlbmRlbmN5PgorICAgICAgPGdyb3VwSWQ+bmV0LnNmLmt4bWw8L2dyb3VwSWQ+CisgICAgICA8YXJ0aWZhY3RJZD5reG1sMjwvYXJ0aWZhY3RJZD4KKyAgICAgIDx2ZXJzaW9uPjIuMy4wPC92ZXJzaW9uPgorICAgICAgPHNjb3BlPmNvbXBpbGU8L3Njb3BlPgorICAgIDwvZGVwZW5kZW5jeT4KKyAgICA8ZGVwZW5kZW5jeT4KKyAgICAgIDxncm91cElkPmNvbS5hbmRyb2lkLnRvb2xzPC9ncm91cElkPgorICAgICAgPGFydGlmYWN0SWQ+YW5ub3RhdGlvbnM8L2FydGlmYWN0SWQ+CisgICAgICA8dmVyc2lvbj4yNC4zLjA8L3ZlcnNpb24+CisgICAgICA8c2NvcGU+Y29tcGlsZTwvc2NvcGU+CisgICAgPC9kZXBlbmRlbmN5PgorICAgIDxkZXBlbmRlbmN5PgorICAgICAgPGdyb3VwSWQ+anVuaXQ8L2dyb3VwSWQ+CisgICAgICA8YXJ0aWZhY3RJZD5qdW5pdDwvYXJ0aWZhY3RJZD4KKyAgICAgIDx2ZXJzaW9uPjQuMTI8L3ZlcnNpb24+CisgICAgICA8c2NvcGU+dGVzdDwvc2NvcGU+CisgICAgPC9kZXBlbmRlbmN5PgorICAgIDxkZXBlbmRlbmN5PgorICAgICAgPGdyb3VwSWQ+Y29tLmludGVsbGlqPC9ncm91cElkPgorICAgICAgPGFydGlmYWN0SWQ+YW5ub3RhdGlvbnM8L2FydGlmYWN0SWQ+CisgICAgICA8dmVyc2lvbj4xMi4wPC92ZXJzaW9uPgorICAgICAgPHNjb3BlPmNvbXBpbGU8L3Njb3BlPgorICAgIDwvZGVwZW5kZW5jeT4KKyAgPC9kZXBlbmRlbmNpZXM+Cis8L3Byb2plY3Q+CmRpZmYgLS1naXQgYS9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9saW50L2xpbnQtYXBpLzI0LjMuMC9saW50LWFwaS0yNC4zLjAtc291cmNlcy5qYXIgYi9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9saW50L2xpbnQtYXBpLzI0LjMuMC9saW50LWFwaS0yNC4zLjAtc291cmNlcy5qYXIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTA3YzFiNAotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9vZmZsaW5lLW0yL2NvbS9hbmRyb2lkL3Rvb2xzL2xpbnQvbGludC1hcGkvMjQuMy4wL2xpbnQtYXBpLTI0LjMuMC1zb3VyY2VzLmphcgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9saW50L2xpbnQtYXBpLzI0LjMuMC9saW50LWFwaS0yNC4zLjAuamFyIGIvY29tbW9uL29mZmxpbmUtbTIvY29tL2FuZHJvaWQvdG9vbHMvbGludC9saW50LWFwaS8yNC4zLjAvbGludC1hcGktMjQuMy4wLmphcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNTM3NzdkCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL29mZmxpbmUtbTIvY29tL2FuZHJvaWQvdG9vbHMvbGludC9saW50LWFwaS8yNC4zLjAvbGludC1hcGktMjQuMy4wLmphcgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9saW50L2xpbnQtYXBpLzI0LjMuMC9saW50LWFwaS0yNC4zLjAucG9tIGIvY29tbW9uL29mZmxpbmUtbTIvY29tL2FuZHJvaWQvdG9vbHMvbGludC9saW50LWFwaS8yNC4zLjAvbGludC1hcGktMjQuMy4wLnBvbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZGVlNjhmCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL29mZmxpbmUtbTIvY29tL2FuZHJvaWQvdG9vbHMvbGludC9saW50LWFwaS8yNC4zLjAvbGludC1hcGktMjQuMy4wLnBvbQpAQCAtMCwwICsxLDYwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHByb2plY3QgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAgaHR0cDovL21hdmVuLmFwYWNoZS5vcmcveHNkL21hdmVuLTQuMC4wLnhzZCIgeG1sbnM9Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCIKKyAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIj4KKyAgPG1vZGVsVmVyc2lvbj40LjAuMDwvbW9kZWxWZXJzaW9uPgorICA8Z3JvdXBJZD5jb20uYW5kcm9pZC50b29scy5saW50PC9ncm91cElkPgorICA8YXJ0aWZhY3RJZD5saW50LWFwaTwvYXJ0aWZhY3RJZD4KKyAgPHZlcnNpb24+MjQuMy4wPC92ZXJzaW9uPgorICA8bmFtZT5BbmRyb2lkIFRvb2xzIExpbnQgQVBJPC9uYW1lPgorICA8ZGVzY3JpcHRpb24+QVBJIHRvIGJ1aWxkIGxpbnQgY2hlY2tzPC9kZXNjcmlwdGlvbj4KKyAgPHVybD5odHRwOi8vdG9vbHMuYW5kcm9pZC5jb208L3VybD4KKyAgPGluY2VwdGlvblllYXI+MjAwNzwvaW5jZXB0aW9uWWVhcj4KKyAgPGxpY2Vuc2VzPgorICAgIDxsaWNlbnNlPgorICAgICAgPG5hbWU+VGhlIEFwYWNoZSBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDIuMDwvbmFtZT4KKyAgICAgIDx1cmw+aHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLnR4dDwvdXJsPgorICAgICAgPGRpc3RyaWJ1dGlvbj5yZXBvPC9kaXN0cmlidXRpb24+CisgICAgPC9saWNlbnNlPgorICA8L2xpY2Vuc2VzPgorICA8ZGV2ZWxvcGVycz4KKyAgICA8ZGV2ZWxvcGVyPgorICAgICAgPG5hbWU+VGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdDwvbmFtZT4KKyAgICA8L2RldmVsb3Blcj4KKyAgPC9kZXZlbG9wZXJzPgorICA8c2NtPgorICAgIDxjb25uZWN0aW9uPmdpdDovL2FuZHJvaWQuZ29vZ2xlc291cmNlLmNvbS9wbGF0Zm9ybS90b29scy9iYXNlLmdpdDwvY29ubmVjdGlvbj4KKyAgICA8dXJsPmh0dHBzOi8vYW5kcm9pZC5nb29nbGVzb3VyY2UuY29tL3BsYXRmb3JtL3Rvb2xzL2Jhc2U8L3VybD4KKyAgPC9zY20+CisgIDxkZXBlbmRlbmNpZXM+CisgICAgPGRlcGVuZGVuY3k+CisgICAgICA8Z3JvdXBJZD5jb20uYW5kcm9pZC50b29sczwvZ3JvdXBJZD4KKyAgICAgIDxhcnRpZmFjdElkPnNkay1jb21tb248L2FydGlmYWN0SWQ+CisgICAgICA8dmVyc2lvbj4yNC4zLjA8L3ZlcnNpb24+CisgICAgICA8c2NvcGU+Y29tcGlsZTwvc2NvcGU+CisgICAgPC9kZXBlbmRlbmN5PgorICAgIDxkZXBlbmRlbmN5PgorICAgICAgPGdyb3VwSWQ+Y29tLmFuZHJvaWQudG9vbHMuYnVpbGQ8L2dyb3VwSWQ+CisgICAgICA8YXJ0aWZhY3RJZD5idWlsZGVyLW1vZGVsPC9hcnRpZmFjdElkPgorICAgICAgPHZlcnNpb24+MS4zLjA8L3ZlcnNpb24+CisgICAgICA8c2NvcGU+Y29tcGlsZTwvc2NvcGU+CisgICAgPC9kZXBlbmRlbmN5PgorICAgIDxkZXBlbmRlbmN5PgorICAgICAgPGdyb3VwSWQ+b3JnLm93Mi5hc208L2dyb3VwSWQ+CisgICAgICA8YXJ0aWZhY3RJZD5hc208L2FydGlmYWN0SWQ+CisgICAgICA8dmVyc2lvbj41LjAuMzwvdmVyc2lvbj4KKyAgICAgIDxzY29wZT5jb21waWxlPC9zY29wZT4KKyAgICA8L2RlcGVuZGVuY3k+CisgICAgPGRlcGVuZGVuY3k+CisgICAgICA8Z3JvdXBJZD5vcmcub3cyLmFzbTwvZ3JvdXBJZD4KKyAgICAgIDxhcnRpZmFjdElkPmFzbS10cmVlPC9hcnRpZmFjdElkPgorICAgICAgPHZlcnNpb24+NS4wLjM8L3ZlcnNpb24+CisgICAgICA8c2NvcGU+Y29tcGlsZTwvc2NvcGU+CisgICAgPC9kZXBlbmRlbmN5PgorICAgIDxkZXBlbmRlbmN5PgorICAgICAgPGdyb3VwSWQ+Y29tLmFuZHJvaWQudG9vbHMuZXh0ZXJuYWwubG9tYm9rPC9ncm91cElkPgorICAgICAgPGFydGlmYWN0SWQ+bG9tYm9rLWFzdDwvYXJ0aWZhY3RJZD4KKyAgICAgIDx2ZXJzaW9uPjAuMi4zPC92ZXJzaW9uPgorICAgICAgPHNjb3BlPmNvbXBpbGU8L3Njb3BlPgorICAgIDwvZGVwZW5kZW5jeT4KKyAgPC9kZXBlbmRlbmNpZXM+Cis8L3Byb2plY3Q+CmRpZmYgLS1naXQgYS9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9saW50L2xpbnQtY2hlY2tzLzI0LjMuMC9saW50LWNoZWNrcy0yNC4zLjAtc291cmNlcy5qYXIgYi9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9saW50L2xpbnQtY2hlY2tzLzI0LjMuMC9saW50LWNoZWNrcy0yNC4zLjAtc291cmNlcy5qYXIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTQ0MzkxOAotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9vZmZsaW5lLW0yL2NvbS9hbmRyb2lkL3Rvb2xzL2xpbnQvbGludC1jaGVja3MvMjQuMy4wL2xpbnQtY2hlY2tzLTI0LjMuMC1zb3VyY2VzLmphcgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9saW50L2xpbnQtY2hlY2tzLzI0LjMuMC9saW50LWNoZWNrcy0yNC4zLjAuamFyIGIvY29tbW9uL29mZmxpbmUtbTIvY29tL2FuZHJvaWQvdG9vbHMvbGludC9saW50LWNoZWNrcy8yNC4zLjAvbGludC1jaGVja3MtMjQuMy4wLmphcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMGY4M2FhCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL29mZmxpbmUtbTIvY29tL2FuZHJvaWQvdG9vbHMvbGludC9saW50LWNoZWNrcy8yNC4zLjAvbGludC1jaGVja3MtMjQuMy4wLmphcgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9saW50L2xpbnQtY2hlY2tzLzI0LjMuMC9saW50LWNoZWNrcy0yNC4zLjAucG9tIGIvY29tbW9uL29mZmxpbmUtbTIvY29tL2FuZHJvaWQvdG9vbHMvbGludC9saW50LWNoZWNrcy8yNC4zLjAvbGludC1jaGVja3MtMjQuMy4wLnBvbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YjczOWQ4Ci0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL29mZmxpbmUtbTIvY29tL2FuZHJvaWQvdG9vbHMvbGludC9saW50LWNoZWNrcy8yNC4zLjAvbGludC1jaGVja3MtMjQuMy4wLnBvbQpAQCAtMCwwICsxLDQyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHByb2plY3QgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAgaHR0cDovL21hdmVuLmFwYWNoZS5vcmcveHNkL21hdmVuLTQuMC4wLnhzZCIgeG1sbnM9Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCIKKyAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIj4KKyAgPG1vZGVsVmVyc2lvbj40LjAuMDwvbW9kZWxWZXJzaW9uPgorICA8Z3JvdXBJZD5jb20uYW5kcm9pZC50b29scy5saW50PC9ncm91cElkPgorICA8YXJ0aWZhY3RJZD5saW50LWNoZWNrczwvYXJ0aWZhY3RJZD4KKyAgPHZlcnNpb24+MjQuMy4wPC92ZXJzaW9uPgorICA8bmFtZT5BbmRyb2lkIExpbnQgQ2hlY2tzPC9uYW1lPgorICA8ZGVzY3JpcHRpb24+Q2hlY2tzIGZvciBBbmRyb2lkIExpbnQ8L2Rlc2NyaXB0aW9uPgorICA8dXJsPmh0dHA6Ly90b29scy5hbmRyb2lkLmNvbTwvdXJsPgorICA8aW5jZXB0aW9uWWVhcj4yMDA3PC9pbmNlcHRpb25ZZWFyPgorICA8bGljZW5zZXM+CisgICAgPGxpY2Vuc2U+CisgICAgICA8bmFtZT5UaGUgQXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMi4wPC9uYW1lPgorICAgICAgPHVybD5odHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAudHh0PC91cmw+CisgICAgICA8ZGlzdHJpYnV0aW9uPnJlcG88L2Rpc3RyaWJ1dGlvbj4KKyAgICA8L2xpY2Vuc2U+CisgIDwvbGljZW5zZXM+CisgIDxkZXZlbG9wZXJzPgorICAgIDxkZXZlbG9wZXI+CisgICAgICA8bmFtZT5UaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0PC9uYW1lPgorICAgIDwvZGV2ZWxvcGVyPgorICA8L2RldmVsb3BlcnM+CisgIDxzY20+CisgICAgPGNvbm5lY3Rpb24+Z2l0Oi8vYW5kcm9pZC5nb29nbGVzb3VyY2UuY29tL3BsYXRmb3JtL3Rvb2xzL2Jhc2UuZ2l0PC9jb25uZWN0aW9uPgorICAgIDx1cmw+aHR0cHM6Ly9hbmRyb2lkLmdvb2dsZXNvdXJjZS5jb20vcGxhdGZvcm0vdG9vbHMvYmFzZTwvdXJsPgorICA8L3NjbT4KKyAgPGRlcGVuZGVuY2llcz4KKyAgICA8ZGVwZW5kZW5jeT4KKyAgICAgIDxncm91cElkPm9yZy5vdzIuYXNtPC9ncm91cElkPgorICAgICAgPGFydGlmYWN0SWQ+YXNtLWFuYWx5c2lzPC9hcnRpZmFjdElkPgorICAgICAgPHZlcnNpb24+NS4wLjM8L3ZlcnNpb24+CisgICAgICA8c2NvcGU+Y29tcGlsZTwvc2NvcGU+CisgICAgPC9kZXBlbmRlbmN5PgorICAgIDxkZXBlbmRlbmN5PgorICAgICAgPGdyb3VwSWQ+Y29tLmFuZHJvaWQudG9vbHMubGludDwvZ3JvdXBJZD4KKyAgICAgIDxhcnRpZmFjdElkPmxpbnQtYXBpPC9hcnRpZmFjdElkPgorICAgICAgPHZlcnNpb24+MjQuMy4wPC92ZXJzaW9uPgorICAgICAgPHNjb3BlPmNvbXBpbGU8L3Njb3BlPgorICAgIDwvZGVwZW5kZW5jeT4KKyAgPC9kZXBlbmRlbmNpZXM+Cis8L3Byb2plY3Q+CmRpZmYgLS1naXQgYS9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9saW50L2xpbnQvMjQuMy4wL2xpbnQtMjQuMy4wLXNvdXJjZXMuamFyIGIvY29tbW9uL29mZmxpbmUtbTIvY29tL2FuZHJvaWQvdG9vbHMvbGludC9saW50LzI0LjMuMC9saW50LTI0LjMuMC1zb3VyY2VzLmphcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZGNhMjZlCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL29mZmxpbmUtbTIvY29tL2FuZHJvaWQvdG9vbHMvbGludC9saW50LzI0LjMuMC9saW50LTI0LjMuMC1zb3VyY2VzLmphcgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9saW50L2xpbnQvMjQuMy4wL2xpbnQtMjQuMy4wLmphciBiL2NvbW1vbi9vZmZsaW5lLW0yL2NvbS9hbmRyb2lkL3Rvb2xzL2xpbnQvbGludC8yNC4zLjAvbGludC0yNC4zLjAuamFyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEzODcxZTQKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9saW50L2xpbnQvMjQuMy4wL2xpbnQtMjQuMy4wLmphcgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9saW50L2xpbnQvMjQuMy4wL2xpbnQtMjQuMy4wLnBvbSBiL2NvbW1vbi9vZmZsaW5lLW0yL2NvbS9hbmRyb2lkL3Rvb2xzL2xpbnQvbGludC8yNC4zLjAvbGludC0yNC4zLjAucG9tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ0MDk2ZGIKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9saW50L2xpbnQvMjQuMy4wL2xpbnQtMjQuMy4wLnBvbQpAQCAtMCwwICsxLDYwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHByb2plY3QgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAgaHR0cDovL21hdmVuLmFwYWNoZS5vcmcveHNkL21hdmVuLTQuMC4wLnhzZCIgeG1sbnM9Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCIKKyAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIj4KKyAgPG1vZGVsVmVyc2lvbj40LjAuMDwvbW9kZWxWZXJzaW9uPgorICA8Z3JvdXBJZD5jb20uYW5kcm9pZC50b29scy5saW50PC9ncm91cElkPgorICA8YXJ0aWZhY3RJZD5saW50PC9hcnRpZmFjdElkPgorICA8dmVyc2lvbj4yNC4zLjA8L3ZlcnNpb24+CisgIDxuYW1lPkFuZHJvaWQgTGludCBUb29sPC9uYW1lPgorICA8ZGVzY3JpcHRpb24+TGludCB0b29scy4gQm90aCBhIENvbW1hbmQgbGluZSB0b29sIGFuZCBhIGxpYnJhcnkgdG8gYWRkIGxpbnQgZmVhdHVyZXMgdG8gb3RoZXIgdG9vbHM8L2Rlc2NyaXB0aW9uPgorICA8dXJsPmh0dHA6Ly90b29scy5hbmRyb2lkLmNvbTwvdXJsPgorICA8aW5jZXB0aW9uWWVhcj4yMDA3PC9pbmNlcHRpb25ZZWFyPgorICA8bGljZW5zZXM+CisgICAgPGxpY2Vuc2U+CisgICAgICA8bmFtZT5UaGUgQXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMi4wPC9uYW1lPgorICAgICAgPHVybD5odHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAudHh0PC91cmw+CisgICAgICA8ZGlzdHJpYnV0aW9uPnJlcG88L2Rpc3RyaWJ1dGlvbj4KKyAgICA8L2xpY2Vuc2U+CisgIDwvbGljZW5zZXM+CisgIDxkZXZlbG9wZXJzPgorICAgIDxkZXZlbG9wZXI+CisgICAgICA8bmFtZT5UaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0PC9uYW1lPgorICAgIDwvZGV2ZWxvcGVyPgorICA8L2RldmVsb3BlcnM+CisgIDxzY20+CisgICAgPGNvbm5lY3Rpb24+Z2l0Oi8vYW5kcm9pZC5nb29nbGVzb3VyY2UuY29tL3BsYXRmb3JtL3Rvb2xzL2Jhc2UuZ2l0PC9jb25uZWN0aW9uPgorICAgIDx1cmw+aHR0cHM6Ly9hbmRyb2lkLmdvb2dsZXNvdXJjZS5jb20vcGxhdGZvcm0vdG9vbHMvYmFzZTwvdXJsPgorICA8L3NjbT4KKyAgPGRlcGVuZGVuY2llcz4KKyAgICA8ZGVwZW5kZW5jeT4KKyAgICAgIDxncm91cElkPm9yZy5jb2RlaGF1cy5ncm9vdnk8L2dyb3VwSWQ+CisgICAgICA8YXJ0aWZhY3RJZD5ncm9vdnktYWxsPC9hcnRpZmFjdElkPgorICAgICAgPHZlcnNpb24+Mi4yLjE8L3ZlcnNpb24+CisgICAgICA8c2NvcGU+dGVzdDwvc2NvcGU+CisgICAgPC9kZXBlbmRlbmN5PgorICAgIDxkZXBlbmRlbmN5PgorICAgICAgPGdyb3VwSWQ+b3JnLm1vY2tpdG88L2dyb3VwSWQ+CisgICAgICA8YXJ0aWZhY3RJZD5tb2NraXRvLWFsbDwvYXJ0aWZhY3RJZD4KKyAgICAgIDx2ZXJzaW9uPjEuOS41PC92ZXJzaW9uPgorICAgICAgPHNjb3BlPnRlc3Q8L3Njb3BlPgorICAgIDwvZGVwZW5kZW5jeT4KKyAgICA8ZGVwZW5kZW5jeT4KKyAgICAgIDxncm91cElkPmNvbS5hbmRyb2lkLnRvb2xzLmxpbnQ8L2dyb3VwSWQ+CisgICAgICA8YXJ0aWZhY3RJZD5saW50LWNoZWNrczwvYXJ0aWZhY3RJZD4KKyAgICAgIDx2ZXJzaW9uPjI0LjMuMDwvdmVyc2lvbj4KKyAgICAgIDxzY29wZT5jb21waWxlPC9zY29wZT4KKyAgICA8L2RlcGVuZGVuY3k+CisgICAgPGRlcGVuZGVuY3k+CisgICAgICA8Z3JvdXBJZD5vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlcjwvZ3JvdXBJZD4KKyAgICAgIDxhcnRpZmFjdElkPmVjajwvYXJ0aWZhY3RJZD4KKyAgICAgIDx2ZXJzaW9uPjQuNC4yPC92ZXJzaW9uPgorICAgICAgPHNjb3BlPmNvbXBpbGU8L3Njb3BlPgorICAgIDwvZGVwZW5kZW5jeT4KKyAgICA8ZGVwZW5kZW5jeT4KKyAgICAgIDxncm91cElkPmNvbS5hbmRyb2lkLnRvb2xzLmxpbnQ8L2dyb3VwSWQ+CisgICAgICA8YXJ0aWZhY3RJZD5saW50LXRlc3RzPC9hcnRpZmFjdElkPgorICAgICAgPHZlcnNpb24+MjQuMy4wPC92ZXJzaW9uPgorICAgICAgPHNjb3BlPnRlc3Q8L3Njb3BlPgorICAgIDwvZGVwZW5kZW5jeT4KKyAgPC9kZXBlbmRlbmNpZXM+Cis8L3Byb2plY3Q+CmRpZmYgLS1naXQgYS9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9zZGstY29tbW9uLzI0LjMuMC9zZGstY29tbW9uLTI0LjMuMC1zb3VyY2VzLmphciBiL2NvbW1vbi9vZmZsaW5lLW0yL2NvbS9hbmRyb2lkL3Rvb2xzL3Nkay1jb21tb24vMjQuMy4wL3Nkay1jb21tb24tMjQuMy4wLXNvdXJjZXMuamFyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE4ZjQ5NGQKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9zZGstY29tbW9uLzI0LjMuMC9zZGstY29tbW9uLTI0LjMuMC1zb3VyY2VzLmphcgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9zZGstY29tbW9uLzI0LjMuMC9zZGstY29tbW9uLTI0LjMuMC5qYXIgYi9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9zZGstY29tbW9uLzI0LjMuMC9zZGstY29tbW9uLTI0LjMuMC5qYXIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjc4Y2VjOQotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9vZmZsaW5lLW0yL2NvbS9hbmRyb2lkL3Rvb2xzL3Nkay1jb21tb24vMjQuMy4wL3Nkay1jb21tb24tMjQuMy4wLmphcgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9zZGstY29tbW9uLzI0LjMuMC9zZGstY29tbW9uLTI0LjMuMC5wb20gYi9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9zZGstY29tbW9uLzI0LjMuMC9zZGstY29tbW9uLTI0LjMuMC5wb20KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzNkY2UwMAotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9vZmZsaW5lLW0yL2NvbS9hbmRyb2lkL3Rvb2xzL3Nkay1jb21tb24vMjQuMy4wL3Nkay1jb21tb24tMjQuMy4wLnBvbQpAQCAtMCwwICsxLDcyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHByb2plY3QgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAgaHR0cDovL21hdmVuLmFwYWNoZS5vcmcveHNkL21hdmVuLTQuMC4wLnhzZCIgeG1sbnM9Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCIKKyAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIj4KKyAgPG1vZGVsVmVyc2lvbj40LjAuMDwvbW9kZWxWZXJzaW9uPgorICA8Z3JvdXBJZD5jb20uYW5kcm9pZC50b29sczwvZ3JvdXBJZD4KKyAgPGFydGlmYWN0SWQ+c2RrLWNvbW1vbjwvYXJ0aWZhY3RJZD4KKyAgPHZlcnNpb24+MjQuMy4wPC92ZXJzaW9uPgorICA8bmFtZT5BbmRyb2lkIFRvb2xzIHNkay1jb21tb24gbGlicmFyeTwvbmFtZT4KKyAgPGRlc2NyaXB0aW9uPnNkay1jb21tb24gbGlicmFyeSB1c2VkIGJ5IG90aGVyIEFuZHJvaWQgdG9vbHMgbGlicmFyaWVzLjwvZGVzY3JpcHRpb24+CisgIDx1cmw+aHR0cDovL3Rvb2xzLmFuZHJvaWQuY29tPC91cmw+CisgIDxpbmNlcHRpb25ZZWFyPjIwMDc8L2luY2VwdGlvblllYXI+CisgIDxsaWNlbnNlcz4KKyAgICA8bGljZW5zZT4KKyAgICAgIDxuYW1lPlRoZSBBcGFjaGUgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAyLjA8L25hbWU+CisgICAgICA8dXJsPmh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC50eHQ8L3VybD4KKyAgICAgIDxkaXN0cmlidXRpb24+cmVwbzwvZGlzdHJpYnV0aW9uPgorICAgIDwvbGljZW5zZT4KKyAgPC9saWNlbnNlcz4KKyAgPGRldmVsb3BlcnM+CisgICAgPGRldmVsb3Blcj4KKyAgICAgIDxuYW1lPlRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3Q8L25hbWU+CisgICAgPC9kZXZlbG9wZXI+CisgIDwvZGV2ZWxvcGVycz4KKyAgPHNjbT4KKyAgICA8Y29ubmVjdGlvbj5naXQ6Ly9hbmRyb2lkLmdvb2dsZXNvdXJjZS5jb20vcGxhdGZvcm0vdG9vbHMvYmFzZS5naXQ8L2Nvbm5lY3Rpb24+CisgICAgPHVybD5odHRwczovL2FuZHJvaWQuZ29vZ2xlc291cmNlLmNvbS9wbGF0Zm9ybS90b29scy9iYXNlPC91cmw+CisgIDwvc2NtPgorICA8ZGVwZW5kZW5jaWVzPgorICAgIDxkZXBlbmRlbmN5PgorICAgICAgPGdyb3VwSWQ+b3JnLm1vY2tpdG88L2dyb3VwSWQ+CisgICAgICA8YXJ0aWZhY3RJZD5tb2NraXRvLWFsbDwvYXJ0aWZhY3RJZD4KKyAgICAgIDx2ZXJzaW9uPjEuOS41PC92ZXJzaW9uPgorICAgICAgPHNjb3BlPnRlc3Q8L3Njb3BlPgorICAgIDwvZGVwZW5kZW5jeT4KKyAgICA8ZGVwZW5kZW5jeT4KKyAgICAgIDxncm91cElkPmNvbS5hbmRyb2lkLnRvb2xzPC9ncm91cElkPgorICAgICAgPGFydGlmYWN0SWQ+dGVzdHV0aWxzPC9hcnRpZmFjdElkPgorICAgICAgPHZlcnNpb24+MjQuMy4wPC92ZXJzaW9uPgorICAgICAgPHNjb3BlPnRlc3Q8L3Njb3BlPgorICAgIDwvZGVwZW5kZW5jeT4KKyAgICA8ZGVwZW5kZW5jeT4KKyAgICAgIDxncm91cElkPmNvbS5hbmRyb2lkLnRvb2xzPC9ncm91cElkPgorICAgICAgPGFydGlmYWN0SWQ+c2RrbGliPC9hcnRpZmFjdElkPgorICAgICAgPHZlcnNpb24+MjQuMy4wPC92ZXJzaW9uPgorICAgICAgPHNjb3BlPmNvbXBpbGU8L3Njb3BlPgorICAgIDwvZGVwZW5kZW5jeT4KKyAgICA8ZGVwZW5kZW5jeT4KKyAgICAgIDxncm91cElkPmNvbS5hbmRyb2lkLnRvb2xzLmJ1aWxkPC9ncm91cElkPgorICAgICAgPGFydGlmYWN0SWQ+YnVpbGRlci1tb2RlbDwvYXJ0aWZhY3RJZD4KKyAgICAgIDx2ZXJzaW9uPjEuMy4wPC92ZXJzaW9uPgorICAgICAgPHNjb3BlPmNvbXBpbGU8L3Njb3BlPgorICAgIDwvZGVwZW5kZW5jeT4KKyAgICA8ZGVwZW5kZW5jeT4KKyAgICAgIDxncm91cElkPmp1bml0PC9ncm91cElkPgorICAgICAgPGFydGlmYWN0SWQ+anVuaXQ8L2FydGlmYWN0SWQ+CisgICAgICA8dmVyc2lvbj40LjEyPC92ZXJzaW9uPgorICAgICAgPHNjb3BlPnRlc3Q8L3Njb3BlPgorICAgIDwvZGVwZW5kZW5jeT4KKyAgICA8ZGVwZW5kZW5jeT4KKyAgICAgIDxncm91cElkPm9yZy5lYXN5bW9jazwvZ3JvdXBJZD4KKyAgICAgIDxhcnRpZmFjdElkPmVhc3ltb2NrPC9hcnRpZmFjdElkPgorICAgICAgPHZlcnNpb24+My4zPC92ZXJzaW9uPgorICAgICAgPHNjb3BlPnRlc3Q8L3Njb3BlPgorICAgIDwvZGVwZW5kZW5jeT4KKyAgICA8ZGVwZW5kZW5jeT4KKyAgICAgIDxncm91cElkPmNvbS5hbmRyb2lkLnRvb2xzLmJ1aWxkPC9ncm91cElkPgorICAgICAgPGFydGlmYWN0SWQ+YnVpbGRlci10ZXN0LWFwaTwvYXJ0aWZhY3RJZD4KKyAgICAgIDx2ZXJzaW9uPjEuMy4wPC92ZXJzaW9uPgorICAgICAgPHNjb3BlPmNvbXBpbGU8L3Njb3BlPgorICAgIDwvZGVwZW5kZW5jeT4KKyAgPC9kZXBlbmRlbmNpZXM+Cis8L3Byb2plY3Q+CmRpZmYgLS1naXQgYS9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9zZGtsaWIvMjQuMy4wL3Nka2xpYi0yNC4zLjAtc291cmNlcy5qYXIgYi9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9zZGtsaWIvMjQuMy4wL3Nka2xpYi0yNC4zLjAtc291cmNlcy5qYXIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjk4YWUwNwotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9vZmZsaW5lLW0yL2NvbS9hbmRyb2lkL3Rvb2xzL3Nka2xpYi8yNC4zLjAvc2RrbGliLTI0LjMuMC1zb3VyY2VzLmphcgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9zZGtsaWIvMjQuMy4wL3Nka2xpYi0yNC4zLjAuamFyIGIvY29tbW9uL29mZmxpbmUtbTIvY29tL2FuZHJvaWQvdG9vbHMvc2RrbGliLzI0LjMuMC9zZGtsaWItMjQuMy4wLmphcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMzQwNWUzCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL29mZmxpbmUtbTIvY29tL2FuZHJvaWQvdG9vbHMvc2RrbGliLzI0LjMuMC9zZGtsaWItMjQuMy4wLmphcgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9jb21tb24vb2ZmbGluZS1tMi9jb20vYW5kcm9pZC90b29scy9zZGtsaWIvMjQuMy4wL3Nka2xpYi0yNC4zLjAucG9tIGIvY29tbW9uL29mZmxpbmUtbTIvY29tL2FuZHJvaWQvdG9vbHMvc2RrbGliLzI0LjMuMC9zZGtsaWItMjQuMy4wLnBvbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40M2NmN2VkCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL29mZmxpbmUtbTIvY29tL2FuZHJvaWQvdG9vbHMvc2RrbGliLzI0LjMuMC9zZGtsaWItMjQuMy4wLnBvbQpAQCAtMCwwICsxLDcyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHByb2plY3QgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAgaHR0cDovL21hdmVuLmFwYWNoZS5vcmcveHNkL21hdmVuLTQuMC4wLnhzZCIgeG1sbnM9Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCIKKyAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIj4KKyAgPG1vZGVsVmVyc2lvbj40LjAuMDwvbW9kZWxWZXJzaW9uPgorICA8Z3JvdXBJZD5jb20uYW5kcm9pZC50b29sczwvZ3JvdXBJZD4KKyAgPGFydGlmYWN0SWQ+c2RrbGliPC9hcnRpZmFjdElkPgorICA8dmVyc2lvbj4yNC4zLjA8L3ZlcnNpb24+CisgIDxuYW1lPkFuZHJvaWQgVG9vbHMgc2RrbGliPC9uYW1lPgorICA8ZGVzY3JpcHRpb24+QSBsaWJyYXJ5IHRvIHBhcnNlIGFuZCBkb3dubG9hZCB0aGUgQW5kcm9pZCBTREsuPC9kZXNjcmlwdGlvbj4KKyAgPHVybD5odHRwOi8vdG9vbHMuYW5kcm9pZC5jb208L3VybD4KKyAgPGluY2VwdGlvblllYXI+MjAwNzwvaW5jZXB0aW9uWWVhcj4KKyAgPGxpY2Vuc2VzPgorICAgIDxsaWNlbnNlPgorICAgICAgPG5hbWU+VGhlIEFwYWNoZSBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDIuMDwvbmFtZT4KKyAgICAgIDx1cmw+aHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLnR4dDwvdXJsPgorICAgICAgPGRpc3RyaWJ1dGlvbj5yZXBvPC9kaXN0cmlidXRpb24+CisgICAgPC9saWNlbnNlPgorICA8L2xpY2Vuc2VzPgorICA8ZGV2ZWxvcGVycz4KKyAgICA8ZGV2ZWxvcGVyPgorICAgICAgPG5hbWU+VGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdDwvbmFtZT4KKyAgICA8L2RldmVsb3Blcj4KKyAgPC9kZXZlbG9wZXJzPgorICA8c2NtPgorICAgIDxjb25uZWN0aW9uPmdpdDovL2FuZHJvaWQuZ29vZ2xlc291cmNlLmNvbS9wbGF0Zm9ybS90b29scy9iYXNlLmdpdDwvY29ubmVjdGlvbj4KKyAgICA8dXJsPmh0dHBzOi8vYW5kcm9pZC5nb29nbGVzb3VyY2UuY29tL3BsYXRmb3JtL3Rvb2xzL2Jhc2U8L3VybD4KKyAgPC9zY20+CisgIDxkZXBlbmRlbmNpZXM+CisgICAgPGRlcGVuZGVuY3k+CisgICAgICA8Z3JvdXBJZD5jb20uYW5kcm9pZC50b29sczwvZ3JvdXBJZD4KKyAgICAgIDxhcnRpZmFjdElkPmR2bGliPC9hcnRpZmFjdElkPgorICAgICAgPHZlcnNpb24+MjQuMy4wPC92ZXJzaW9uPgorICAgICAgPHNjb3BlPmNvbXBpbGU8L3Njb3BlPgorICAgIDwvZGVwZW5kZW5jeT4KKyAgICA8ZGVwZW5kZW5jeT4KKyAgICAgIDxncm91cElkPm9yZy5hcGFjaGUuaHR0cGNvbXBvbmVudHM8L2dyb3VwSWQ+CisgICAgICA8YXJ0aWZhY3RJZD5odHRwY2xpZW50PC9hcnRpZmFjdElkPgorICAgICAgPHZlcnNpb24+NC4xLjE8L3ZlcnNpb24+CisgICAgICA8c2NvcGU+Y29tcGlsZTwvc2NvcGU+CisgICAgPC9kZXBlbmRlbmN5PgorICAgIDxkZXBlbmRlbmN5PgorICAgICAgPGdyb3VwSWQ+Y29tLmFuZHJvaWQudG9vbHMubGF5b3V0bGliPC9ncm91cElkPgorICAgICAgPGFydGlmYWN0SWQ+bGF5b3V0bGliLWFwaTwvYXJ0aWZhY3RJZD4KKyAgICAgIDx2ZXJzaW9uPjI0LjMuMDwvdmVyc2lvbj4KKyAgICAgIDxzY29wZT5jb21waWxlPC9zY29wZT4KKyAgICA8L2RlcGVuZGVuY3k+CisgICAgPGRlcGVuZGVuY3k+CisgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLmh0dHBjb21wb25lbnRzPC9ncm91cElkPgorICAgICAgPGFydGlmYWN0SWQ+aHR0cG1pbWU8L2FydGlmYWN0SWQ+CisgICAgICA8dmVyc2lvbj40LjE8L3ZlcnNpb24+CisgICAgICA8c2NvcGU+Y29tcGlsZTwvc2NvcGU+CisgICAgPC9kZXBlbmRlbmN5PgorICAgIDxkZXBlbmRlbmN5PgorICAgICAgPGdyb3VwSWQ+anVuaXQ8L2dyb3VwSWQ+CisgICAgICA8YXJ0aWZhY3RJZD5qdW5pdDwvYXJ0aWZhY3RJZD4KKyAgICAgIDx2ZXJzaW9uPjQuMTI8L3ZlcnNpb24+CisgICAgICA8c2NvcGU+dGVzdDwvc2NvcGU+CisgICAgPC9kZXBlbmRlbmN5PgorICAgIDxkZXBlbmRlbmN5PgorICAgICAgPGdyb3VwSWQ+Y29tLmdvb2dsZS5jb2RlLmdzb248L2dyb3VwSWQ+CisgICAgICA8YXJ0aWZhY3RJZD5nc29uPC9hcnRpZmFjdElkPgorICAgICAgPHZlcnNpb24+Mi4yLjQ8L3ZlcnNpb24+CisgICAgICA8c2NvcGU+Y29tcGlsZTwvc2NvcGU+CisgICAgPC9kZXBlbmRlbmN5PgorICAgIDxkZXBlbmRlbmN5PgorICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5jb21tb25zPC9ncm91cElkPgorICAgICAgPGFydGlmYWN0SWQ+Y29tbW9ucy1jb21wcmVzczwvYXJ0aWZhY3RJZD4KKyAgICAgIDx2ZXJzaW9uPjEuOC4xPC92ZXJzaW9uPgorICAgICAgPHNjb3BlPmNvbXBpbGU8L3Njb3BlPgorICAgIDwvZGVwZW5kZW5jeT4KKyAgPC9kZXBlbmRlbmNpZXM+Cis8L3Byb2plY3Q+CmRpZmYgLS1naXQgYS9jb21tb24vb2ZmbGluZS1tMi9jb20vaW50ZWxsaWovYW5ub3RhdGlvbnMvMTIuMC9OT1RJQ0UgYi9jb21tb24vb2ZmbGluZS1tMi9jb20vaW50ZWxsaWovYW5ub3RhdGlvbnMvMTIuMC9OT1RJQ0UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2RmNmZmOAotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9vZmZsaW5lLW0yL2NvbS9pbnRlbGxpai9hbm5vdGF0aW9ucy8xMi4wL05PVElDRQpAQCAtMCwwICsxLDI3MiBAQAorLyoKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXBhY2hlIExpY2Vuc2UKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVyc2lvbiAyLjAsIEphbnVhcnkgMjAwNAorICogICAgICAgICAgICAgICAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvCisgKgorICogICBURVJNUyBBTkQgQ09ORElUSU9OUyBGT1IgVVNFLCBSRVBST0RVQ1RJT04sIEFORCBESVNUUklCVVRJT04KKyAqCisgKiAgIDEuIERlZmluaXRpb25zLgorICoKKyAqICAgICAgIkxpY2Vuc2UiIHNoYWxsIG1lYW4gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciB1c2UsIHJlcHJvZHVjdGlvbiwKKyAqICAgICAgYW5kIGRpc3RyaWJ1dGlvbiBhcyBkZWZpbmVkIGJ5IFNlY3Rpb25zIDEgdGhyb3VnaCA5IG9mIHRoaXMgZG9jdW1lbnQuCisgKgorICogICAgICAiTGljZW5zb3IiIHNoYWxsIG1lYW4gdGhlIGNvcHlyaWdodCBvd25lciBvciBlbnRpdHkgYXV0aG9yaXplZCBieQorICogICAgICB0aGUgY29weXJpZ2h0IG93bmVyIHRoYXQgaXMgZ3JhbnRpbmcgdGhlIExpY2Vuc2UuCisgKgorICogICAgICAiTGVnYWwgRW50aXR5IiBzaGFsbCBtZWFuIHRoZSB1bmlvbiBvZiB0aGUgYWN0aW5nIGVudGl0eSBhbmQgYWxsCisgKiAgICAgIG90aGVyIGVudGl0aWVzIHRoYXQgY29udHJvbCwgYXJlIGNvbnRyb2xsZWQgYnksIG9yIGFyZSB1bmRlciBjb21tb24KKyAqICAgICAgY29udHJvbCB3aXRoIHRoYXQgZW50aXR5LiBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwKKyAqICAgICAgImNvbnRyb2wiIG1lYW5zIChpKSB0aGUgcG93ZXIsIGRpcmVjdCBvciBpbmRpcmVjdCwgdG8gY2F1c2UgdGhlCisgKiAgICAgIGRpcmVjdGlvbiBvciBtYW5hZ2VtZW50IG9mIHN1Y2ggZW50aXR5LCB3aGV0aGVyIGJ5IGNvbnRyYWN0IG9yCisgKiAgICAgIG90aGVyd2lzZSwgb3IgKGlpKSBvd25lcnNoaXAgb2YgZmlmdHkgcGVyY2VudCAoNTAlKSBvciBtb3JlIG9mIHRoZQorICogICAgICBvdXRzdGFuZGluZyBzaGFyZXMsIG9yIChpaWkpIGJlbmVmaWNpYWwgb3duZXJzaGlwIG9mIHN1Y2ggZW50aXR5LgorICoKKyAqICAgICAgIllvdSIgKG9yICJZb3VyIikgc2hhbGwgbWVhbiBhbiBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eQorICogICAgICBleGVyY2lzaW5nIHBlcm1pc3Npb25zIGdyYW50ZWQgYnkgdGhpcyBMaWNlbnNlLgorICoKKyAqICAgICAgIlNvdXJjZSIgZm9ybSBzaGFsbCBtZWFuIHRoZSBwcmVmZXJyZWQgZm9ybSBmb3IgbWFraW5nIG1vZGlmaWNhdGlvbnMsCisgKiAgICAgIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gc29mdHdhcmUgc291cmNlIGNvZGUsIGRvY3VtZW50YXRpb24KKyAqICAgICAgc291cmNlLCBhbmQgY29uZmlndXJhdGlvbiBmaWxlcy4KKyAqCisgKiAgICAgICJPYmplY3QiIGZvcm0gc2hhbGwgbWVhbiBhbnkgZm9ybSByZXN1bHRpbmcgZnJvbSBtZWNoYW5pY2FsCisgKiAgICAgIHRyYW5zZm9ybWF0aW9uIG9yIHRyYW5zbGF0aW9uIG9mIGEgU291cmNlIGZvcm0sIGluY2x1ZGluZyBidXQKKyAqICAgICAgbm90IGxpbWl0ZWQgdG8gY29tcGlsZWQgb2JqZWN0IGNvZGUsIGdlbmVyYXRlZCBkb2N1bWVudGF0aW9uLAorICogICAgICBhbmQgY29udmVyc2lvbnMgdG8gb3RoZXIgbWVkaWEgdHlwZXMuCisgKgorICogICAgICAiV29yayIgc2hhbGwgbWVhbiB0aGUgd29yayBvZiBhdXRob3JzaGlwLCB3aGV0aGVyIGluIFNvdXJjZSBvcgorICogICAgICBPYmplY3QgZm9ybSwgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIExpY2Vuc2UsIGFzIGluZGljYXRlZCBieSBhCisgKiAgICAgIGNvcHlyaWdodCBub3RpY2UgdGhhdCBpcyBpbmNsdWRlZCBpbiBvciBhdHRhY2hlZCB0byB0aGUgd29yaworICogICAgICAoYW4gZXhhbXBsZSBpcyBwcm92aWRlZCBpbiB0aGUgQXBwZW5kaXggYmVsb3cpLgorICoKKyAqICAgICAgIkRlcml2YXRpdmUgV29ya3MiIHNoYWxsIG1lYW4gYW55IHdvcmssIHdoZXRoZXIgaW4gU291cmNlIG9yIE9iamVjdAorICogICAgICBmb3JtLCB0aGF0IGlzIGJhc2VkIG9uIChvciBkZXJpdmVkIGZyb20pIHRoZSBXb3JrIGFuZCBmb3Igd2hpY2ggdGhlCisgKiAgICAgIGVkaXRvcmlhbCByZXZpc2lvbnMsIGFubm90YXRpb25zLCBlbGFib3JhdGlvbnMsIG9yIG90aGVyIG1vZGlmaWNhdGlvbnMKKyAqICAgICAgcmVwcmVzZW50LCBhcyBhIHdob2xlLCBhbiBvcmlnaW5hbCB3b3JrIG9mIGF1dGhvcnNoaXAuIEZvciB0aGUgcHVycG9zZXMKKyAqICAgICAgb2YgdGhpcyBMaWNlbnNlLCBEZXJpdmF0aXZlIFdvcmtzIHNoYWxsIG5vdCBpbmNsdWRlIHdvcmtzIHRoYXQgcmVtYWluCisgKiAgICAgIHNlcGFyYWJsZSBmcm9tLCBvciBtZXJlbHkgbGluayAob3IgYmluZCBieSBuYW1lKSB0byB0aGUgaW50ZXJmYWNlcyBvZiwKKyAqICAgICAgdGhlIFdvcmsgYW5kIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZi4KKyAqCisgKiAgICAgICJDb250cmlidXRpb24iIHNoYWxsIG1lYW4gYW55IHdvcmsgb2YgYXV0aG9yc2hpcCwgaW5jbHVkaW5nCisgKiAgICAgIHRoZSBvcmlnaW5hbCB2ZXJzaW9uIG9mIHRoZSBXb3JrIGFuZCBhbnkgbW9kaWZpY2F0aW9ucyBvciBhZGRpdGlvbnMKKyAqICAgICAgdG8gdGhhdCBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiwgdGhhdCBpcyBpbnRlbnRpb25hbGx5CisgKiAgICAgIHN1Ym1pdHRlZCB0byBMaWNlbnNvciBmb3IgaW5jbHVzaW9uIGluIHRoZSBXb3JrIGJ5IHRoZSBjb3B5cmlnaHQgb3duZXIKKyAqICAgICAgb3IgYnkgYW4gaW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkgYXV0aG9yaXplZCB0byBzdWJtaXQgb24gYmVoYWxmIG9mCisgKiAgICAgIHRoZSBjb3B5cmlnaHQgb3duZXIuIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBkZWZpbml0aW9uLCAic3VibWl0dGVkIgorICogICAgICBtZWFucyBhbnkgZm9ybSBvZiBlbGVjdHJvbmljLCB2ZXJiYWwsIG9yIHdyaXR0ZW4gY29tbXVuaWNhdGlvbiBzZW50CisgKiAgICAgIHRvIHRoZSBMaWNlbnNvciBvciBpdHMgcmVwcmVzZW50YXRpdmVzLCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvCisgKiAgICAgIGNvbW11bmljYXRpb24gb24gZWxlY3Ryb25pYyBtYWlsaW5nIGxpc3RzLCBzb3VyY2UgY29kZSBjb250cm9sIHN5c3RlbXMsCisgKiAgICAgIGFuZCBpc3N1ZSB0cmFja2luZyBzeXN0ZW1zIHRoYXQgYXJlIG1hbmFnZWQgYnksIG9yIG9uIGJlaGFsZiBvZiwgdGhlCisgKiAgICAgIExpY2Vuc29yIGZvciB0aGUgcHVycG9zZSBvZiBkaXNjdXNzaW5nIGFuZCBpbXByb3ZpbmcgdGhlIFdvcmssIGJ1dAorICogICAgICBleGNsdWRpbmcgY29tbXVuaWNhdGlvbiB0aGF0IGlzIGNvbnNwaWN1b3VzbHkgbWFya2VkIG9yIG90aGVyd2lzZQorICogICAgICBkZXNpZ25hdGVkIGluIHdyaXRpbmcgYnkgdGhlIGNvcHlyaWdodCBvd25lciBhcyAiTm90IGEgQ29udHJpYnV0aW9uLiIKKyAqCisgKiAgICAgICJDb250cmlidXRvciIgc2hhbGwgbWVhbiBMaWNlbnNvciBhbmQgYW55IGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5CisgKiAgICAgIG9uIGJlaGFsZiBvZiB3aG9tIGEgQ29udHJpYnV0aW9uIGhhcyBiZWVuIHJlY2VpdmVkIGJ5IExpY2Vuc29yIGFuZAorICogICAgICBzdWJzZXF1ZW50bHkgaW5jb3Jwb3JhdGVkIHdpdGhpbiB0aGUgV29yay4KKyAqCisgKiAgIDIuIEdyYW50IG9mIENvcHlyaWdodCBMaWNlbnNlLiBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgorICogICAgICB0aGlzIExpY2Vuc2UsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cyB0byBZb3UgYSBwZXJwZXR1YWwsCisgKiAgICAgIHdvcmxkd2lkZSwgbm9uLWV4Y2x1c2l2ZSwgbm8tY2hhcmdlLCByb3lhbHR5LWZyZWUsIGlycmV2b2NhYmxlCisgKiAgICAgIGNvcHlyaWdodCBsaWNlbnNlIHRvIHJlcHJvZHVjZSwgcHJlcGFyZSBEZXJpdmF0aXZlIFdvcmtzIG9mLAorICogICAgICBwdWJsaWNseSBkaXNwbGF5LCBwdWJsaWNseSBwZXJmb3JtLCBzdWJsaWNlbnNlLCBhbmQgZGlzdHJpYnV0ZSB0aGUKKyAqICAgICAgV29yayBhbmQgc3VjaCBEZXJpdmF0aXZlIFdvcmtzIGluIFNvdXJjZSBvciBPYmplY3QgZm9ybS4KKyAqCisgKiAgIDMuIEdyYW50IG9mIFBhdGVudCBMaWNlbnNlLiBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgorICogICAgICB0aGlzIExpY2Vuc2UsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cyB0byBZb3UgYSBwZXJwZXR1YWwsCisgKiAgICAgIHdvcmxkd2lkZSwgbm9uLWV4Y2x1c2l2ZSwgbm8tY2hhcmdlLCByb3lhbHR5LWZyZWUsIGlycmV2b2NhYmxlCisgKiAgICAgIChleGNlcHQgYXMgc3RhdGVkIGluIHRoaXMgc2VjdGlvbikgcGF0ZW50IGxpY2Vuc2UgdG8gbWFrZSwgaGF2ZSBtYWRlLAorICogICAgICB1c2UsIG9mZmVyIHRvIHNlbGwsIHNlbGwsIGltcG9ydCwgYW5kIG90aGVyd2lzZSB0cmFuc2ZlciB0aGUgV29yaywKKyAqICAgICAgd2hlcmUgc3VjaCBsaWNlbnNlIGFwcGxpZXMgb25seSB0byB0aG9zZSBwYXRlbnQgY2xhaW1zIGxpY2Vuc2FibGUKKyAqICAgICAgYnkgc3VjaCBDb250cmlidXRvciB0aGF0IGFyZSBuZWNlc3NhcmlseSBpbmZyaW5nZWQgYnkgdGhlaXIKKyAqICAgICAgQ29udHJpYnV0aW9uKHMpIGFsb25lIG9yIGJ5IGNvbWJpbmF0aW9uIG9mIHRoZWlyIENvbnRyaWJ1dGlvbihzKQorICogICAgICB3aXRoIHRoZSBXb3JrIHRvIHdoaWNoIHN1Y2ggQ29udHJpYnV0aW9uKHMpIHdhcyBzdWJtaXR0ZWQuIElmIFlvdQorICogICAgICBpbnN0aXR1dGUgcGF0ZW50IGxpdGlnYXRpb24gYWdhaW5zdCBhbnkgZW50aXR5IChpbmNsdWRpbmcgYQorICogICAgICBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYSBsYXdzdWl0KSBhbGxlZ2luZyB0aGF0IHRoZSBXb3JrCisgKiAgICAgIG9yIGEgQ29udHJpYnV0aW9uIGluY29ycG9yYXRlZCB3aXRoaW4gdGhlIFdvcmsgY29uc3RpdHV0ZXMgZGlyZWN0CisgKiAgICAgIG9yIGNvbnRyaWJ1dG9yeSBwYXRlbnQgaW5mcmluZ2VtZW50LCB0aGVuIGFueSBwYXRlbnQgbGljZW5zZXMKKyAqICAgICAgZ3JhbnRlZCB0byBZb3UgdW5kZXIgdGhpcyBMaWNlbnNlIGZvciB0aGF0IFdvcmsgc2hhbGwgdGVybWluYXRlCisgKiAgICAgIGFzIG9mIHRoZSBkYXRlIHN1Y2ggbGl0aWdhdGlvbiBpcyBmaWxlZC4KKyAqCisgKiAgIDQuIFJlZGlzdHJpYnV0aW9uLiBZb3UgbWF5IHJlcHJvZHVjZSBhbmQgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhlCisgKiAgICAgIFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mIGluIGFueSBtZWRpdW0sIHdpdGggb3Igd2l0aG91dAorICogICAgICBtb2RpZmljYXRpb25zLCBhbmQgaW4gU291cmNlIG9yIE9iamVjdCBmb3JtLCBwcm92aWRlZCB0aGF0IFlvdQorICogICAgICBtZWV0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiAgICAgIChhKSBZb3UgbXVzdCBnaXZlIGFueSBvdGhlciByZWNpcGllbnRzIG9mIHRoZSBXb3JrIG9yCisgKiAgICAgICAgICBEZXJpdmF0aXZlIFdvcmtzIGEgY29weSBvZiB0aGlzIExpY2Vuc2U7IGFuZAorICoKKyAqICAgICAgKGIpIFlvdSBtdXN0IGNhdXNlIGFueSBtb2RpZmllZCBmaWxlcyB0byBjYXJyeSBwcm9taW5lbnQgbm90aWNlcworICogICAgICAgICAgc3RhdGluZyB0aGF0IFlvdSBjaGFuZ2VkIHRoZSBmaWxlczsgYW5kCisgKgorICogICAgICAoYykgWW91IG11c3QgcmV0YWluLCBpbiB0aGUgU291cmNlIGZvcm0gb2YgYW55IERlcml2YXRpdmUgV29ya3MKKyAqICAgICAgICAgIHRoYXQgWW91IGRpc3RyaWJ1dGUsIGFsbCBjb3B5cmlnaHQsIHBhdGVudCwgdHJhZGVtYXJrLCBhbmQKKyAqICAgICAgICAgIGF0dHJpYnV0aW9uIG5vdGljZXMgZnJvbSB0aGUgU291cmNlIGZvcm0gb2YgdGhlIFdvcmssCisgKiAgICAgICAgICBleGNsdWRpbmcgdGhvc2Ugbm90aWNlcyB0aGF0IGRvIG5vdCBwZXJ0YWluIHRvIGFueSBwYXJ0IG9mCisgKiAgICAgICAgICB0aGUgRGVyaXZhdGl2ZSBXb3JrczsgYW5kCisgKgorICogICAgICAoZCkgSWYgdGhlIFdvcmsgaW5jbHVkZXMgYSAiTk9USUNFIiB0ZXh0IGZpbGUgYXMgcGFydCBvZiBpdHMKKyAqICAgICAgICAgIGRpc3RyaWJ1dGlvbiwgdGhlbiBhbnkgRGVyaXZhdGl2ZSBXb3JrcyB0aGF0IFlvdSBkaXN0cmlidXRlIG11c3QKKyAqICAgICAgICAgIGluY2x1ZGUgYSByZWFkYWJsZSBjb3B5IG9mIHRoZSBhdHRyaWJ1dGlvbiBub3RpY2VzIGNvbnRhaW5lZAorICogICAgICAgICAgd2l0aGluIHN1Y2ggTk9USUNFIGZpbGUsIGV4Y2x1ZGluZyB0aG9zZSBub3RpY2VzIHRoYXQgZG8gbm90CisgKiAgICAgICAgICBwZXJ0YWluIHRvIGFueSBwYXJ0IG9mIHRoZSBEZXJpdmF0aXZlIFdvcmtzLCBpbiBhdCBsZWFzdCBvbmUKKyAqICAgICAgICAgIG9mIHRoZSBmb2xsb3dpbmcgcGxhY2VzOiB3aXRoaW4gYSBOT1RJQ0UgdGV4dCBmaWxlIGRpc3RyaWJ1dGVkCisgKiAgICAgICAgICBhcyBwYXJ0IG9mIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyB3aXRoaW4gdGhlIFNvdXJjZSBmb3JtIG9yCisgKiAgICAgICAgICBkb2N1bWVudGF0aW9uLCBpZiBwcm92aWRlZCBhbG9uZyB3aXRoIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyBvciwKKyAqICAgICAgICAgIHdpdGhpbiBhIGRpc3BsYXkgZ2VuZXJhdGVkIGJ5IHRoZSBEZXJpdmF0aXZlIFdvcmtzLCBpZiBhbmQKKyAqICAgICAgICAgIHdoZXJldmVyIHN1Y2ggdGhpcmQtcGFydHkgbm90aWNlcyBub3JtYWxseSBhcHBlYXIuIFRoZSBjb250ZW50cworICogICAgICAgICAgb2YgdGhlIE5PVElDRSBmaWxlIGFyZSBmb3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5IGFuZAorICogICAgICAgICAgZG8gbm90IG1vZGlmeSB0aGUgTGljZW5zZS4gWW91IG1heSBhZGQgWW91ciBvd24gYXR0cmlidXRpb24KKyAqICAgICAgICAgIG5vdGljZXMgd2l0aGluIERlcml2YXRpdmUgV29ya3MgdGhhdCBZb3UgZGlzdHJpYnV0ZSwgYWxvbmdzaWRlCisgKiAgICAgICAgICBvciBhcyBhbiBhZGRlbmR1bSB0byB0aGUgTk9USUNFIHRleHQgZnJvbSB0aGUgV29yaywgcHJvdmlkZWQKKyAqICAgICAgICAgIHRoYXQgc3VjaCBhZGRpdGlvbmFsIGF0dHJpYnV0aW9uIG5vdGljZXMgY2Fubm90IGJlIGNvbnN0cnVlZAorICogICAgICAgICAgYXMgbW9kaWZ5aW5nIHRoZSBMaWNlbnNlLgorICoKKyAqICAgICAgWW91IG1heSBhZGQgWW91ciBvd24gY29weXJpZ2h0IHN0YXRlbWVudCB0byBZb3VyIG1vZGlmaWNhdGlvbnMgYW5kCisgKiAgICAgIG1heSBwcm92aWRlIGFkZGl0aW9uYWwgb3IgZGlmZmVyZW50IGxpY2Vuc2UgdGVybXMgYW5kIGNvbmRpdGlvbnMKKyAqICAgICAgZm9yIHVzZSwgcmVwcm9kdWN0aW9uLCBvciBkaXN0cmlidXRpb24gb2YgWW91ciBtb2RpZmljYXRpb25zLCBvcgorICogICAgICBmb3IgYW55IHN1Y2ggRGVyaXZhdGl2ZSBXb3JrcyBhcyBhIHdob2xlLCBwcm92aWRlZCBZb3VyIHVzZSwKKyAqICAgICAgcmVwcm9kdWN0aW9uLCBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoZSBXb3JrIG90aGVyd2lzZSBjb21wbGllcyB3aXRoCisgKiAgICAgIHRoZSBjb25kaXRpb25zIHN0YXRlZCBpbiB0aGlzIExpY2Vuc2UuCisgKgorICogICA1LiBTdWJtaXNzaW9uIG9mIENvbnRyaWJ1dGlvbnMuIFVubGVzcyBZb3UgZXhwbGljaXRseSBzdGF0ZSBvdGhlcndpc2UsCisgKiAgICAgIGFueSBDb250cmlidXRpb24gaW50ZW50aW9uYWxseSBzdWJtaXR0ZWQgZm9yIGluY2x1c2lvbiBpbiB0aGUgV29yaworICogICAgICBieSBZb3UgdG8gdGhlIExpY2Vuc29yIHNoYWxsIGJlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgorICogICAgICB0aGlzIExpY2Vuc2UsIHdpdGhvdXQgYW55IGFkZGl0aW9uYWwgdGVybXMgb3IgY29uZGl0aW9ucy4KKyAqICAgICAgTm90d2l0aHN0YW5kaW5nIHRoZSBhYm92ZSwgbm90aGluZyBoZXJlaW4gc2hhbGwgc3VwZXJzZWRlIG9yIG1vZGlmeQorICogICAgICB0aGUgdGVybXMgb2YgYW55IHNlcGFyYXRlIGxpY2Vuc2UgYWdyZWVtZW50IHlvdSBtYXkgaGF2ZSBleGVjdXRlZAorICogICAgICB3aXRoIExpY2Vuc29yIHJlZ2FyZGluZyBzdWNoIENvbnRyaWJ1dGlvbnMuCisgKgorICogICA2LiBUcmFkZW1hcmtzLiBUaGlzIExpY2Vuc2UgZG9lcyBub3QgZ3JhbnQgcGVybWlzc2lvbiB0byB1c2UgdGhlIHRyYWRlCisgKiAgICAgIG5hbWVzLCB0cmFkZW1hcmtzLCBzZXJ2aWNlIG1hcmtzLCBvciBwcm9kdWN0IG5hbWVzIG9mIHRoZSBMaWNlbnNvciwKKyAqICAgICAgZXhjZXB0IGFzIHJlcXVpcmVkIGZvciByZWFzb25hYmxlIGFuZCBjdXN0b21hcnkgdXNlIGluIGRlc2NyaWJpbmcgdGhlCisgKiAgICAgIG9yaWdpbiBvZiB0aGUgV29yayBhbmQgcmVwcm9kdWNpbmcgdGhlIGNvbnRlbnQgb2YgdGhlIE5PVElDRSBmaWxlLgorICoKKyAqICAgNy4gRGlzY2xhaW1lciBvZiBXYXJyYW50eS4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yCisgKiAgICAgIGFncmVlZCB0byBpbiB3cml0aW5nLCBMaWNlbnNvciBwcm92aWRlcyB0aGUgV29yayAoYW5kIGVhY2gKKyAqICAgICAgQ29udHJpYnV0b3IgcHJvdmlkZXMgaXRzIENvbnRyaWJ1dGlvbnMpIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiAgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvcgorICogICAgICBpbXBsaWVkLCBpbmNsdWRpbmcsIHdpdGhvdXQgbGltaXRhdGlvbiwgYW55IHdhcnJhbnRpZXMgb3IgY29uZGl0aW9ucworICogICAgICBvZiBUSVRMRSwgTk9OLUlORlJJTkdFTUVOVCwgTUVSQ0hBTlRBQklMSVRZLCBvciBGSVRORVNTIEZPUiBBCisgKiAgICAgIFBBUlRJQ1VMQVIgUFVSUE9TRS4gWW91IGFyZSBzb2xlbHkgcmVzcG9uc2libGUgZm9yIGRldGVybWluaW5nIHRoZQorICogICAgICBhcHByb3ByaWF0ZW5lc3Mgb2YgdXNpbmcgb3IgcmVkaXN0cmlidXRpbmcgdGhlIFdvcmsgYW5kIGFzc3VtZSBhbnkKKyAqICAgICAgcmlza3MgYXNzb2NpYXRlZCB3aXRoIFlvdXIgZXhlcmNpc2Ugb2YgcGVybWlzc2lvbnMgdW5kZXIgdGhpcyBMaWNlbnNlLgorICoKKyAqICAgOC4gTGltaXRhdGlvbiBvZiBMaWFiaWxpdHkuIEluIG5vIGV2ZW50IGFuZCB1bmRlciBubyBsZWdhbCB0aGVvcnksCisgKiAgICAgIHdoZXRoZXIgaW4gdG9ydCAoaW5jbHVkaW5nIG5lZ2xpZ2VuY2UpLCBjb250cmFjdCwgb3Igb3RoZXJ3aXNlLAorICogICAgICB1bmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgKHN1Y2ggYXMgZGVsaWJlcmF0ZSBhbmQgZ3Jvc3NseQorICogICAgICBuZWdsaWdlbnQgYWN0cykgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNoYWxsIGFueSBDb250cmlidXRvciBiZQorICogICAgICBsaWFibGUgdG8gWW91IGZvciBkYW1hZ2VzLCBpbmNsdWRpbmcgYW55IGRpcmVjdCwgaW5kaXJlY3QsIHNwZWNpYWwsCisgKiAgICAgIGluY2lkZW50YWwsIG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvZiBhbnkgY2hhcmFjdGVyIGFyaXNpbmcgYXMgYQorICogICAgICByZXN1bHQgb2YgdGhpcyBMaWNlbnNlIG9yIG91dCBvZiB0aGUgdXNlIG9yIGluYWJpbGl0eSB0byB1c2UgdGhlCisgKiAgICAgIFdvcmsgKGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gZGFtYWdlcyBmb3IgbG9zcyBvZiBnb29kd2lsbCwKKyAqICAgICAgd29yayBzdG9wcGFnZSwgY29tcHV0ZXIgZmFpbHVyZSBvciBtYWxmdW5jdGlvbiwgb3IgYW55IGFuZCBhbGwKKyAqICAgICAgb3RoZXIgY29tbWVyY2lhbCBkYW1hZ2VzIG9yIGxvc3NlcyksIGV2ZW4gaWYgc3VjaCBDb250cmlidXRvcgorICogICAgICBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiBzdWNoIGRhbWFnZXMuCisgKgorICogICA5LiBBY2NlcHRpbmcgV2FycmFudHkgb3IgQWRkaXRpb25hbCBMaWFiaWxpdHkuIFdoaWxlIHJlZGlzdHJpYnV0aW5nCisgKiAgICAgIHRoZSBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiwgWW91IG1heSBjaG9vc2UgdG8gb2ZmZXIsCisgKiAgICAgIGFuZCBjaGFyZ2UgYSBmZWUgZm9yLCBhY2NlcHRhbmNlIG9mIHN1cHBvcnQsIHdhcnJhbnR5LCBpbmRlbW5pdHksCisgKiAgICAgIG9yIG90aGVyIGxpYWJpbGl0eSBvYmxpZ2F0aW9ucyBhbmQvb3IgcmlnaHRzIGNvbnNpc3RlbnQgd2l0aCB0aGlzCisgKiAgICAgIExpY2Vuc2UuIEhvd2V2ZXIsIGluIGFjY2VwdGluZyBzdWNoIG9ibGlnYXRpb25zLCBZb3UgbWF5IGFjdCBvbmx5CisgKiAgICAgIG9uIFlvdXIgb3duIGJlaGFsZiBhbmQgb24gWW91ciBzb2xlIHJlc3BvbnNpYmlsaXR5LCBub3Qgb24gYmVoYWxmCisgKiAgICAgIG9mIGFueSBvdGhlciBDb250cmlidXRvciwgYW5kIG9ubHkgaWYgWW91IGFncmVlIHRvIGluZGVtbmlmeSwKKyAqICAgICAgZGVmZW5kLCBhbmQgaG9sZCBlYWNoIENvbnRyaWJ1dG9yIGhhcm1sZXNzIGZvciBhbnkgbGlhYmlsaXR5CisgKiAgICAgIGluY3VycmVkIGJ5LCBvciBjbGFpbXMgYXNzZXJ0ZWQgYWdhaW5zdCwgc3VjaCBDb250cmlidXRvciBieSByZWFzb24KKyAqICAgICAgb2YgeW91ciBhY2NlcHRpbmcgYW55IHN1Y2ggd2FycmFudHkgb3IgYWRkaXRpb25hbCBsaWFiaWxpdHkuCisgKgorICogICBFTkQgT0YgVEVSTVMgQU5EIENPTkRJVElPTlMKKyAqCisgKiAgIEFQUEVORElYOiBIb3cgdG8gYXBwbHkgdGhlIEFwYWNoZSBMaWNlbnNlIHRvIHlvdXIgd29yay4KKyAqCisgKiAgICAgIFRvIGFwcGx5IHRoZSBBcGFjaGUgTGljZW5zZSB0byB5b3VyIHdvcmssIGF0dGFjaCB0aGUgZm9sbG93aW5nCisgKiAgICAgIGJvaWxlcnBsYXRlIG5vdGljZSwgd2l0aCB0aGUgZmllbGRzIGVuY2xvc2VkIGJ5IGJyYWNrZXRzICJbXSIKKyAqICAgICAgcmVwbGFjZWQgd2l0aCB5b3VyIG93biBpZGVudGlmeWluZyBpbmZvcm1hdGlvbi4gKERvbid0IGluY2x1ZGUKKyAqICAgICAgdGhlIGJyYWNrZXRzISkgIFRoZSB0ZXh0IHNob3VsZCBiZSBlbmNsb3NlZCBpbiB0aGUgYXBwcm9wcmlhdGUKKyAqICAgICAgY29tbWVudCBzeW50YXggZm9yIHRoZSBmaWxlIGZvcm1hdC4gV2UgYWxzbyByZWNvbW1lbmQgdGhhdCBhCisgKiAgICAgIGZpbGUgb3IgY2xhc3MgbmFtZSBhbmQgZGVzY3JpcHRpb24gb2YgcHVycG9zZSBiZSBpbmNsdWRlZCBvbiB0aGUKKyAqICAgICAgc2FtZSAicHJpbnRlZCBwYWdlIiBhcyB0aGUgY29weXJpZ2h0IG5vdGljZSBmb3IgZWFzaWVyCisgKiAgICAgIGlkZW50aWZpY2F0aW9uIHdpdGhpbiB0aGlyZC1wYXJ0eSBhcmNoaXZlcy4KKyAqCisgKiAgIENvcHlyaWdodCBbeXl5eV0gW25hbWUgb2YgY29weXJpZ2h0IG93bmVyXQorICoKKyAqICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK1czQ64gU09GVFdBUkUgTk9USUNFIEFORCBMSUNFTlNFCitodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCisKK1RoaXMgd29yayAoYW5kIGluY2x1ZGVkIHNvZnR3YXJlLCBkb2N1bWVudGF0aW9uIHN1Y2ggYXMgUkVBRE1Fcywgb3Igb3RoZXIKK3JlbGF0ZWQgaXRlbXMpIGlzIGJlaW5nIHByb3ZpZGVkIGJ5IHRoZSBjb3B5cmlnaHQgaG9sZGVycyB1bmRlciB0aGUgZm9sbG93aW5nCitsaWNlbnNlLiBCeSBvYnRhaW5pbmcsIHVzaW5nIGFuZC9vciBjb3B5aW5nIHRoaXMgd29yaywgeW91ICh0aGUgbGljZW5zZWUpIGFncmVlCit0aGF0IHlvdSBoYXZlIHJlYWQsIHVuZGVyc3Rvb2QsIGFuZCB3aWxsIGNvbXBseSB3aXRoIHRoZSBmb2xsb3dpbmcgdGVybXMgYW5kCitjb25kaXRpb25zLgorCitQZXJtaXNzaW9uIHRvIGNvcHksIG1vZGlmeSwgYW5kIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBhbmQgaXRzIGRvY3VtZW50YXRpb24sCit3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLCBmb3IgYW55IHB1cnBvc2UgYW5kIHdpdGhvdXQgZmVlIG9yIHJveWFsdHkgaXMKK2hlcmVieSBncmFudGVkLCBwcm92aWRlZCB0aGF0IHlvdSBpbmNsdWRlIHRoZSBmb2xsb3dpbmcgb24gQUxMIGNvcGllcyBvZiB0aGUKK3NvZnR3YXJlIGFuZCBkb2N1bWVudGF0aW9uIG9yIHBvcnRpb25zIHRoZXJlb2YsIGluY2x1ZGluZyBtb2RpZmljYXRpb25zOgorCisgIDEuIFRoZSBmdWxsIHRleHQgb2YgdGhpcyBOT1RJQ0UgaW4gYSBsb2NhdGlvbiB2aWV3YWJsZSB0byB1c2VycyBvZiB0aGUKKyAgICAgcmVkaXN0cmlidXRlZCBvciBkZXJpdmF0aXZlIHdvcmsuIAorICAyLiBBbnkgcHJlLWV4aXN0aW5nIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBkaXNjbGFpbWVycywgbm90aWNlcywgb3IgdGVybXMKKyAgICAgYW5kIGNvbmRpdGlvbnMuIElmIG5vbmUgZXhpc3QsIHRoZSBXM0MgU29mdHdhcmUgU2hvcnQgTm90aWNlIHNob3VsZCBiZQorICAgICBpbmNsdWRlZCAoaHlwZXJ0ZXh0IGlzIHByZWZlcnJlZCwgdGV4dCBpcyBwZXJtaXR0ZWQpIHdpdGhpbiB0aGUgYm9keQorICAgICBvZiBhbnkgcmVkaXN0cmlidXRlZCBvciBkZXJpdmF0aXZlIGNvZGUuCisgIDMuIE5vdGljZSBvZiBhbnkgY2hhbmdlcyBvciBtb2RpZmljYXRpb25zIHRvIHRoZSBmaWxlcywgaW5jbHVkaW5nIHRoZSBkYXRlCisgICAgIGNoYW5nZXMgd2VyZSBtYWRlLiAoV2UgcmVjb21tZW5kIHlvdSBwcm92aWRlIFVSSXMgdG8gdGhlIGxvY2F0aW9uIGZyb20KKyAgICAgd2hpY2ggdGhlIGNvZGUgaXMgZGVyaXZlZC4pCisgICAgIAorVEhJUyBTT0ZUV0FSRSBBTkQgRE9DVU1FTlRBVElPTiBJUyBQUk9WSURFRCAiQVMgSVMsIiBBTkQgQ09QWVJJR0hUIEhPTERFUlMgTUFLRQorTk8gUkVQUkVTRU5UQVRJT05TIE9SIFdBUlJBTlRJRVMsIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRAorVE8sIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIE9SIEZJVE5FU1MgRk9SIEFOWSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgVEhBVAorVEhFIFVTRSBPRiBUSEUgU09GVFdBUkUgT1IgRE9DVU1FTlRBVElPTiBXSUxMIE5PVCBJTkZSSU5HRSBBTlkgVEhJUkQgUEFSVFkKK1BBVEVOVFMsIENPUFlSSUdIVFMsIFRSQURFTUFSS1MgT1IgT1RIRVIgUklHSFRTLgorCitDT1BZUklHSFQgSE9MREVSUyBXSUxMIE5PVCBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBTUEVDSUFMIE9SCitDT05TRVFVRU5USUFMIERBTUFHRVMgQVJJU0lORyBPVVQgT0YgQU5ZIFVTRSBPRiBUSEUgU09GVFdBUkUgT1IgRE9DVU1FTlRBVElPTi4KKworVGhlIG5hbWUgYW5kIHRyYWRlbWFya3Mgb2YgY29weXJpZ2h0IGhvbGRlcnMgbWF5IE5PVCBiZSB1c2VkIGluIGFkdmVydGlzaW5nIG9yCitwdWJsaWNpdHkgcGVydGFpbmluZyB0byB0aGUgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYywgd3JpdHRlbiBwcmlvciBwZXJtaXNzaW9uLgorVGl0bGUgdG8gY29weXJpZ2h0IGluIHRoaXMgc29mdHdhcmUgYW5kIGFueSBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gd2lsbCBhdAorYWxsIHRpbWVzIHJlbWFpbiB3aXRoIGNvcHlyaWdodCBob2xkZXJzLgorCitfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KKworVGhpcyBmb3JtdWxhdGlvbiBvZiBXM0MncyBub3RpY2UgYW5kIGxpY2Vuc2UgYmVjYW1lIGFjdGl2ZSBvbiBEZWNlbWJlciAzMSAyMDAyLgorVGhpcyB2ZXJzaW9uIHJlbW92ZXMgdGhlIGNvcHlyaWdodCBvd25lcnNoaXAgbm90aWNlIHN1Y2ggdGhhdCB0aGlzIGxpY2Vuc2UgY2FuCitiZSB1c2VkIHdpdGggbWF0ZXJpYWxzIG90aGVyIHRoYW4gdGhvc2Ugb3duZWQgYnkgdGhlIFczQywgcmVmbGVjdHMgdGhhdCBFUkNJTQoraXMgbm93IGEgaG9zdCBvZiB0aGUgVzNDLCBpbmNsdWRlcyByZWZlcmVuY2VzIHRvIHRoaXMgc3BlY2lmaWMgZGF0ZWQgdmVyc2lvbiBvZgordGhlIGxpY2Vuc2UsIGFuZCByZW1vdmVzIHRoZSBhbWJpZ3VvdXMgZ3JhbnQgb2YgInVzZSIuIE90aGVyd2lzZSwgdGhpcyB2ZXJzaW9uCitpcyB0aGUgc2FtZSBhcyB0aGUgcHJldmlvdXMgdmVyc2lvbiBhbmQgaXMgd3JpdHRlbiBzbyBhcyB0byBwcmVzZXJ2ZSB0aGUgRnJlZQorU29mdHdhcmUgRm91bmRhdGlvbidzIGFzc2Vzc21lbnQgb2YgR1BMIGNvbXBhdGliaWxpdHkgYW5kIE9TSSdzIGNlcnRpZmljYXRpb24KK3VuZGVyIHRoZSBPcGVuIFNvdXJjZSBEZWZpbml0aW9uLiBQbGVhc2Ugc2VlIG91ciBDb3B5cmlnaHQgRkFRIGZvciBjb21tb24KK3F1ZXN0aW9ucyBhYm91dCB1c2luZyBtYXRlcmlhbHMgZnJvbSBvdXIgc2l0ZSwgaW5jbHVkaW5nIHNwZWNpZmljIHRlcm1zIGFuZAorY29uZGl0aW9ucyBmb3IgcGFja2FnZXMgbGlrZSBsaWJ3d3csIEFtYXlhLCBhbmQgSmlnc2F3LiBPdGhlciBxdWVzdGlvbnMgYWJvdXQKK3RoaXMgbm90aWNlIGNhbiBiZSBkaXJlY3RlZCB0byBzaXRlLXBvbGljeUB3My5vcmcuCisgCitKb3NlcGggUmVhZ2xlIDxzaXRlLXBvbGljeUB3My5vcmc+IAorCitUaGlzIGxpY2Vuc2UgY2FtZSBmcm9tOiBodHRwOi8vd3d3Lm1lZ2dpbnNvbi5jb20vU0FYL2NvcHlpbmcuaHRtbAorICBIb3dldmVyIHBsZWFzZSBub3RlIGZ1dHVyZSB2ZXJzaW9ucyBvZiBTQVggbWF5IGJlIGNvdmVyZWQgCisgIHVuZGVyIGh0dHA6Ly9zYXhwcm9qZWN0Lm9yZy8/c2VsZWN0ZWQ9cGQKKworU0FYMiBpcyBGcmVlIQorCitJIGhlcmVieSBhYmFuZG9uIGFueSBwcm9wZXJ0eSByaWdodHMgdG8gU0FYIDIuMCAodGhlIFNpbXBsZSBBUEkgZm9yCitYTUwpLCBhbmQgcmVsZWFzZSBhbGwgb2YgdGhlIFNBWCAyLjAgc291cmNlIGNvZGUsIGNvbXBpbGVkIGNvZGUsIGFuZAorZG9jdW1lbnRhdGlvbiBjb250YWluZWQgaW4gdGhpcyBkaXN0cmlidXRpb24gaW50byB0aGUgUHVibGljIERvbWFpbi4KK1NBWCBjb21lcyB3aXRoIE5PIFdBUlJBTlRZIG9yIGd1YXJhbnRlZSBvZiBmaXRuZXNzIGZvciBhbnkKK3B1cnBvc2UuCisKK0RhdmlkIE1lZ2dpbnNvbiwgZGF2aWRAbWVnZ2luc29uLmNvbQorMjAwMC0wNS0wNQpkaWZmIC0tZ2l0IGEvY29tbW9uL29mZmxpbmUtbTIvY29tL2ludGVsbGlqL2Fubm90YXRpb25zLzEyLjAvYW5ub3RhdGlvbnMtMTIuMC1zb3VyY2VzLmphciBiL2NvbW1vbi9vZmZsaW5lLW0yL2NvbS9pbnRlbGxpai9hbm5vdGF0aW9ucy8xMi4wL2Fubm90YXRpb25zLTEyLjAtc291cmNlcy5qYXIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDFjNTI2NQotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9vZmZsaW5lLW0yL2NvbS9pbnRlbGxpai9hbm5vdGF0aW9ucy8xMi4wL2Fubm90YXRpb25zLTEyLjAtc291cmNlcy5qYXIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvY29tbW9uL29mZmxpbmUtbTIvY29tL2ludGVsbGlqL2Fubm90YXRpb25zLzEyLjAvYW5ub3RhdGlvbnMtMTIuMC5qYXIgYi9jb21tb24vb2ZmbGluZS1tMi9jb20vaW50ZWxsaWovYW5ub3RhdGlvbnMvMTIuMC9hbm5vdGF0aW9ucy0xMi4wLmphcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZjhiMzYyCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL29mZmxpbmUtbTIvY29tL2ludGVsbGlqL2Fubm90YXRpb25zLzEyLjAvYW5ub3RhdGlvbnMtMTIuMC5qYXIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvY29tbW9uL29mZmxpbmUtbTIvY29tL2ludGVsbGlqL2Fubm90YXRpb25zLzEyLjAvYW5ub3RhdGlvbnMtMTIuMC5wb20gYi9jb21tb24vb2ZmbGluZS1tMi9jb20vaW50ZWxsaWovYW5ub3RhdGlvbnMvMTIuMC9hbm5vdGF0aW9ucy0xMi4wLnBvbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMThlYmZhCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL29mZmxpbmUtbTIvY29tL2ludGVsbGlqL2Fubm90YXRpb25zLzEyLjAvYW5ub3RhdGlvbnMtMTIuMC5wb20KQEAgLTAsMCArMSw1MiBAQAorPHByb2plY3QgeG1sbnM9Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCIKKyAgICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCisgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCBodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9tYXZlbi12NF8wXzAueHNkIj4KKyAgPG1vZGVsVmVyc2lvbj40LjAuMDwvbW9kZWxWZXJzaW9uPgorICA8Z3JvdXBJZD5jb20uaW50ZWxsaWo8L2dyb3VwSWQ+CisgIDxhcnRpZmFjdElkPmFubm90YXRpb25zPC9hcnRpZmFjdElkPgorICA8dmVyc2lvbj4xMi4wPC92ZXJzaW9uPgorICA8cGFja2FnaW5nPmphcjwvcGFja2FnaW5nPgorICA8bmFtZT5JbnRlbGxpSiBJREVBIEFubm90YXRpb25zPC9uYW1lPgorICA8dXJsPmh0dHA6Ly93d3cuamV0YnJhaW5zLm9yZzwvdXJsPgorICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgQSBzZXQgb2YgYW5ub3RhdGlvbnMgdXNlZCBmb3IgY29kZSBpbnNwZWN0aW9uIHN1cHBvcnQgYW5kIGNvZGUgZG9jdW1lbnRhdGlvbi4KKyAgICA8L2Rlc2NyaXB0aW9uPgorICA8bGljZW5zZXM+CisgICAgPGxpY2Vuc2U+CisgICAgICA8bmFtZT5BcGFjaGUgTGljZW5zZSAyPC9uYW1lPgorICAgICAgPHVybD5odHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAudHh0PC91cmw+CisgICAgICA8ZGlzdHJpYnV0aW9uPnJlcG88L2Rpc3RyaWJ1dGlvbj4KKyAgICA8L2xpY2Vuc2U+CisgIDwvbGljZW5zZXM+CisKKyAgPGRldmVsb3BlcnM+CisgICAgPGRldmVsb3Blcj4KKyAgICAgIDxuYW1lPkpldGJyYWlucyBkZXZlbG9wcGVyczwvbmFtZT4KKyAgICAgIDxlbWFpbD5zdXBwb3J0QGpldGJyYWlucy5jb208L2VtYWlsPgorICAgICAgPG9yZ2FuaXphdGlvbj5KZXRicmFpbnM8L29yZ2FuaXphdGlvbj4KKyAgICAgIDxvcmdhbml6YXRpb25Vcmw+aHR0cDovL3d3dy5qZXRicmFpbnMuY29tPC9vcmdhbml6YXRpb25Vcmw+CisgICAgICA8dGltZXpvbmU+KzE8L3RpbWV6b25lPgorICAgIDwvZGV2ZWxvcGVyPgorICA8L2RldmVsb3BlcnM+CisKKyAgPHNjbT4KKyAgICAgIDx1cmw+aHR0cHM6Ly9naXRodWIuY29tL0pldEJyYWlucy9pbnRlbGxpai1jb21tdW5pdHk8L3VybD4KKyAgICAgIDxjb25uZWN0aW9uPnNzaDovL2dpdEBnaXRodWIuY29tOkpldEJyYWlucy9pbnRlbGxpai1jb21tdW5pdHkuZ2l0PC9jb25uZWN0aW9uPgorICA8L3NjbT4KKworCisgIDxkZXBlbmRlbmNpZXMvPgorCisgIDxidWlsZD4KKyAgICA8cGx1Z2lucz4KKyAgICAgIDxwbHVnaW4+CisgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4KKyAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tY29tcGlsZXItcGx1Z2luPC9hcnRpZmFjdElkPgorICAgICAgICA8Y29uZmlndXJhdGlvbj4KKyAgICAgICAgICA8c291cmNlPjEuNTwvc291cmNlPgorICAgICAgICAgIDx0YXJnZXQ+MS41PC90YXJnZXQ+CisgICAgICAgIDwvY29uZmlndXJhdGlvbj4KKyAgICAgIDwvcGx1Z2luPgorICAgIDwvcGx1Z2lucz4KKyAgPC9idWlsZD4KKzwvcHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jb21tb24vb2ZmbGluZS1tMi9uZXQvc2YvcHJvZ3VhcmQvcHJvZ3VhcmQtYmFzZS81LjIuMS9OT1RJQ0UgYi9jb21tb24vb2ZmbGluZS1tMi9uZXQvc2YvcHJvZ3VhcmQvcHJvZ3VhcmQtYmFzZS81LjIuMS9OT1RJQ0UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDE1OTE2OQotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9vZmZsaW5lLW0yL25ldC9zZi9wcm9ndWFyZC9wcm9ndWFyZC1iYXNlLzUuMi4xL05PVElDRQpAQCAtMCwwICsxLDMzOSBAQAorICAgICAgICAgICAgICAgICAgICBHTlUgR0VORVJBTCBQVUJMSUMgTElDRU5TRQorICAgICAgICAgICAgICAgICAgICAgICBWZXJzaW9uIDIsIEp1bmUgMTk5MQorCisgQ29weXJpZ2h0IChDKSAxOTg5LCAxOTkxIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwKKyA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBCisgRXZlcnlvbmUgaXMgcGVybWl0dGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0aW0gY29waWVzCisgb2YgdGhpcyBsaWNlbnNlIGRvY3VtZW50LCBidXQgY2hhbmdpbmcgaXQgaXMgbm90IGFsbG93ZWQuCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcmVhbWJsZQorCisgIFRoZSBsaWNlbnNlcyBmb3IgbW9zdCBzb2Z0d2FyZSBhcmUgZGVzaWduZWQgdG8gdGFrZSBhd2F5IHlvdXIKK2ZyZWVkb20gdG8gc2hhcmUgYW5kIGNoYW5nZSBpdC4gIEJ5IGNvbnRyYXN0LCB0aGUgR05VIEdlbmVyYWwgUHVibGljCitMaWNlbnNlIGlzIGludGVuZGVkIHRvIGd1YXJhbnRlZSB5b3VyIGZyZWVkb20gdG8gc2hhcmUgYW5kIGNoYW5nZSBmcmVlCitzb2Z0d2FyZS0tdG8gbWFrZSBzdXJlIHRoZSBzb2Z0d2FyZSBpcyBmcmVlIGZvciBhbGwgaXRzIHVzZXJzLiAgVGhpcworR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcHBsaWVzIHRvIG1vc3Qgb2YgdGhlIEZyZWUgU29mdHdhcmUKK0ZvdW5kYXRpb24ncyBzb2Z0d2FyZSBhbmQgdG8gYW55IG90aGVyIHByb2dyYW0gd2hvc2UgYXV0aG9ycyBjb21taXQgdG8KK3VzaW5nIGl0LiAgKFNvbWUgb3RoZXIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIHNvZnR3YXJlIGlzIGNvdmVyZWQgYnkKK3RoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaW5zdGVhZC4pICBZb3UgY2FuIGFwcGx5IGl0IHRvCit5b3VyIHByb2dyYW1zLCB0b28uCisKKyAgV2hlbiB3ZSBzcGVhayBvZiBmcmVlIHNvZnR3YXJlLCB3ZSBhcmUgcmVmZXJyaW5nIHRvIGZyZWVkb20sIG5vdAorcHJpY2UuICBPdXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZXMgYXJlIGRlc2lnbmVkIHRvIG1ha2Ugc3VyZSB0aGF0IHlvdQoraGF2ZSB0aGUgZnJlZWRvbSB0byBkaXN0cmlidXRlIGNvcGllcyBvZiBmcmVlIHNvZnR3YXJlIChhbmQgY2hhcmdlIGZvcgordGhpcyBzZXJ2aWNlIGlmIHlvdSB3aXNoKSwgdGhhdCB5b3UgcmVjZWl2ZSBzb3VyY2UgY29kZSBvciBjYW4gZ2V0IGl0CitpZiB5b3Ugd2FudCBpdCwgdGhhdCB5b3UgY2FuIGNoYW5nZSB0aGUgc29mdHdhcmUgb3IgdXNlIHBpZWNlcyBvZiBpdAoraW4gbmV3IGZyZWUgcHJvZ3JhbXM7IGFuZCB0aGF0IHlvdSBrbm93IHlvdSBjYW4gZG8gdGhlc2UgdGhpbmdzLgorCisgIFRvIHByb3RlY3QgeW91ciByaWdodHMsIHdlIG5lZWQgdG8gbWFrZSByZXN0cmljdGlvbnMgdGhhdCBmb3JiaWQKK2FueW9uZSB0byBkZW55IHlvdSB0aGVzZSByaWdodHMgb3IgdG8gYXNrIHlvdSB0byBzdXJyZW5kZXIgdGhlIHJpZ2h0cy4KK1RoZXNlIHJlc3RyaWN0aW9ucyB0cmFuc2xhdGUgdG8gY2VydGFpbiByZXNwb25zaWJpbGl0aWVzIGZvciB5b3UgaWYgeW91CitkaXN0cmlidXRlIGNvcGllcyBvZiB0aGUgc29mdHdhcmUsIG9yIGlmIHlvdSBtb2RpZnkgaXQuCisKKyAgRm9yIGV4YW1wbGUsIGlmIHlvdSBkaXN0cmlidXRlIGNvcGllcyBvZiBzdWNoIGEgcHJvZ3JhbSwgd2hldGhlcgorZ3JhdGlzIG9yIGZvciBhIGZlZSwgeW91IG11c3QgZ2l2ZSB0aGUgcmVjaXBpZW50cyBhbGwgdGhlIHJpZ2h0cyB0aGF0Cit5b3UgaGF2ZS4gIFlvdSBtdXN0IG1ha2Ugc3VyZSB0aGF0IHRoZXksIHRvbywgcmVjZWl2ZSBvciBjYW4gZ2V0IHRoZQorc291cmNlIGNvZGUuICBBbmQgeW91IG11c3Qgc2hvdyB0aGVtIHRoZXNlIHRlcm1zIHNvIHRoZXkga25vdyB0aGVpcgorcmlnaHRzLgorCisgIFdlIHByb3RlY3QgeW91ciByaWdodHMgd2l0aCB0d28gc3RlcHM6ICgxKSBjb3B5cmlnaHQgdGhlIHNvZnR3YXJlLCBhbmQKKygyKSBvZmZlciB5b3UgdGhpcyBsaWNlbnNlIHdoaWNoIGdpdmVzIHlvdSBsZWdhbCBwZXJtaXNzaW9uIHRvIGNvcHksCitkaXN0cmlidXRlIGFuZC9vciBtb2RpZnkgdGhlIHNvZnR3YXJlLgorCisgIEFsc28sIGZvciBlYWNoIGF1dGhvcidzIHByb3RlY3Rpb24gYW5kIG91cnMsIHdlIHdhbnQgdG8gbWFrZSBjZXJ0YWluCit0aGF0IGV2ZXJ5b25lIHVuZGVyc3RhbmRzIHRoYXQgdGhlcmUgaXMgbm8gd2FycmFudHkgZm9yIHRoaXMgZnJlZQorc29mdHdhcmUuICBJZiB0aGUgc29mdHdhcmUgaXMgbW9kaWZpZWQgYnkgc29tZW9uZSBlbHNlIGFuZCBwYXNzZWQgb24sIHdlCit3YW50IGl0cyByZWNpcGllbnRzIHRvIGtub3cgdGhhdCB3aGF0IHRoZXkgaGF2ZSBpcyBub3QgdGhlIG9yaWdpbmFsLCBzbwordGhhdCBhbnkgcHJvYmxlbXMgaW50cm9kdWNlZCBieSBvdGhlcnMgd2lsbCBub3QgcmVmbGVjdCBvbiB0aGUgb3JpZ2luYWwKK2F1dGhvcnMnIHJlcHV0YXRpb25zLgorCisgIEZpbmFsbHksIGFueSBmcmVlIHByb2dyYW0gaXMgdGhyZWF0ZW5lZCBjb25zdGFudGx5IGJ5IHNvZnR3YXJlCitwYXRlbnRzLiAgV2Ugd2lzaCB0byBhdm9pZCB0aGUgZGFuZ2VyIHRoYXQgcmVkaXN0cmlidXRvcnMgb2YgYSBmcmVlCitwcm9ncmFtIHdpbGwgaW5kaXZpZHVhbGx5IG9idGFpbiBwYXRlbnQgbGljZW5zZXMsIGluIGVmZmVjdCBtYWtpbmcgdGhlCitwcm9ncmFtIHByb3ByaWV0YXJ5LiAgVG8gcHJldmVudCB0aGlzLCB3ZSBoYXZlIG1hZGUgaXQgY2xlYXIgdGhhdCBhbnkKK3BhdGVudCBtdXN0IGJlIGxpY2Vuc2VkIGZvciBldmVyeW9uZSdzIGZyZWUgdXNlIG9yIG5vdCBsaWNlbnNlZCBhdCBhbGwuCisKKyAgVGhlIHByZWNpc2UgdGVybXMgYW5kIGNvbmRpdGlvbnMgZm9yIGNvcHlpbmcsIGRpc3RyaWJ1dGlvbiBhbmQKK21vZGlmaWNhdGlvbiBmb2xsb3cuCisKKyAgICAgICAgICAgICAgICAgICAgR05VIEdFTkVSQUwgUFVCTElDIExJQ0VOU0UKKyAgIFRFUk1TIEFORCBDT05ESVRJT05TIEZPUiBDT1BZSU5HLCBESVNUUklCVVRJT04gQU5EIE1PRElGSUNBVElPTgorCisgIDAuIFRoaXMgTGljZW5zZSBhcHBsaWVzIHRvIGFueSBwcm9ncmFtIG9yIG90aGVyIHdvcmsgd2hpY2ggY29udGFpbnMKK2Egbm90aWNlIHBsYWNlZCBieSB0aGUgY29weXJpZ2h0IGhvbGRlciBzYXlpbmcgaXQgbWF5IGJlIGRpc3RyaWJ1dGVkCit1bmRlciB0aGUgdGVybXMgb2YgdGhpcyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLiAgVGhlICJQcm9ncmFtIiwgYmVsb3csCityZWZlcnMgdG8gYW55IHN1Y2ggcHJvZ3JhbSBvciB3b3JrLCBhbmQgYSAid29yayBiYXNlZCBvbiB0aGUgUHJvZ3JhbSIKK21lYW5zIGVpdGhlciB0aGUgUHJvZ3JhbSBvciBhbnkgZGVyaXZhdGl2ZSB3b3JrIHVuZGVyIGNvcHlyaWdodCBsYXc6Cit0aGF0IGlzIHRvIHNheSwgYSB3b3JrIGNvbnRhaW5pbmcgdGhlIFByb2dyYW0gb3IgYSBwb3J0aW9uIG9mIGl0LAorZWl0aGVyIHZlcmJhdGltIG9yIHdpdGggbW9kaWZpY2F0aW9ucyBhbmQvb3IgdHJhbnNsYXRlZCBpbnRvIGFub3RoZXIKK2xhbmd1YWdlLiAgKEhlcmVpbmFmdGVyLCB0cmFuc2xhdGlvbiBpcyBpbmNsdWRlZCB3aXRob3V0IGxpbWl0YXRpb24gaW4KK3RoZSB0ZXJtICJtb2RpZmljYXRpb24iLikgIEVhY2ggbGljZW5zZWUgaXMgYWRkcmVzc2VkIGFzICJ5b3UiLgorCitBY3Rpdml0aWVzIG90aGVyIHRoYW4gY29weWluZywgZGlzdHJpYnV0aW9uIGFuZCBtb2RpZmljYXRpb24gYXJlIG5vdAorY292ZXJlZCBieSB0aGlzIExpY2Vuc2U7IHRoZXkgYXJlIG91dHNpZGUgaXRzIHNjb3BlLiAgVGhlIGFjdCBvZgorcnVubmluZyB0aGUgUHJvZ3JhbSBpcyBub3QgcmVzdHJpY3RlZCwgYW5kIHRoZSBvdXRwdXQgZnJvbSB0aGUgUHJvZ3JhbQoraXMgY292ZXJlZCBvbmx5IGlmIGl0cyBjb250ZW50cyBjb25zdGl0dXRlIGEgd29yayBiYXNlZCBvbiB0aGUKK1Byb2dyYW0gKGluZGVwZW5kZW50IG9mIGhhdmluZyBiZWVuIG1hZGUgYnkgcnVubmluZyB0aGUgUHJvZ3JhbSkuCitXaGV0aGVyIHRoYXQgaXMgdHJ1ZSBkZXBlbmRzIG9uIHdoYXQgdGhlIFByb2dyYW0gZG9lcy4KKworICAxLiBZb3UgbWF5IGNvcHkgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0aW0gY29waWVzIG9mIHRoZSBQcm9ncmFtJ3MKK3NvdXJjZSBjb2RlIGFzIHlvdSByZWNlaXZlIGl0LCBpbiBhbnkgbWVkaXVtLCBwcm92aWRlZCB0aGF0IHlvdQorY29uc3BpY3VvdXNseSBhbmQgYXBwcm9wcmlhdGVseSBwdWJsaXNoIG9uIGVhY2ggY29weSBhbiBhcHByb3ByaWF0ZQorY29weXJpZ2h0IG5vdGljZSBhbmQgZGlzY2xhaW1lciBvZiB3YXJyYW50eTsga2VlcCBpbnRhY3QgYWxsIHRoZQorbm90aWNlcyB0aGF0IHJlZmVyIHRvIHRoaXMgTGljZW5zZSBhbmQgdG8gdGhlIGFic2VuY2Ugb2YgYW55IHdhcnJhbnR5OworYW5kIGdpdmUgYW55IG90aGVyIHJlY2lwaWVudHMgb2YgdGhlIFByb2dyYW0gYSBjb3B5IG9mIHRoaXMgTGljZW5zZQorYWxvbmcgd2l0aCB0aGUgUHJvZ3JhbS4KKworWW91IG1heSBjaGFyZ2UgYSBmZWUgZm9yIHRoZSBwaHlzaWNhbCBhY3Qgb2YgdHJhbnNmZXJyaW5nIGEgY29weSwgYW5kCit5b3UgbWF5IGF0IHlvdXIgb3B0aW9uIG9mZmVyIHdhcnJhbnR5IHByb3RlY3Rpb24gaW4gZXhjaGFuZ2UgZm9yIGEgZmVlLgorCisgIDIuIFlvdSBtYXkgbW9kaWZ5IHlvdXIgY29weSBvciBjb3BpZXMgb2YgdGhlIFByb2dyYW0gb3IgYW55IHBvcnRpb24KK29mIGl0LCB0aHVzIGZvcm1pbmcgYSB3b3JrIGJhc2VkIG9uIHRoZSBQcm9ncmFtLCBhbmQgY29weSBhbmQKK2Rpc3RyaWJ1dGUgc3VjaCBtb2RpZmljYXRpb25zIG9yIHdvcmsgdW5kZXIgdGhlIHRlcm1zIG9mIFNlY3Rpb24gMQorYWJvdmUsIHByb3ZpZGVkIHRoYXQgeW91IGFsc28gbWVldCBhbGwgb2YgdGhlc2UgY29uZGl0aW9uczoKKworICAgIGEpIFlvdSBtdXN0IGNhdXNlIHRoZSBtb2RpZmllZCBmaWxlcyB0byBjYXJyeSBwcm9taW5lbnQgbm90aWNlcworICAgIHN0YXRpbmcgdGhhdCB5b3UgY2hhbmdlZCB0aGUgZmlsZXMgYW5kIHRoZSBkYXRlIG9mIGFueSBjaGFuZ2UuCisKKyAgICBiKSBZb3UgbXVzdCBjYXVzZSBhbnkgd29yayB0aGF0IHlvdSBkaXN0cmlidXRlIG9yIHB1Ymxpc2gsIHRoYXQgaW4KKyAgICB3aG9sZSBvciBpbiBwYXJ0IGNvbnRhaW5zIG9yIGlzIGRlcml2ZWQgZnJvbSB0aGUgUHJvZ3JhbSBvciBhbnkKKyAgICBwYXJ0IHRoZXJlb2YsIHRvIGJlIGxpY2Vuc2VkIGFzIGEgd2hvbGUgYXQgbm8gY2hhcmdlIHRvIGFsbCB0aGlyZAorICAgIHBhcnRpZXMgdW5kZXIgdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZS4KKworICAgIGMpIElmIHRoZSBtb2RpZmllZCBwcm9ncmFtIG5vcm1hbGx5IHJlYWRzIGNvbW1hbmRzIGludGVyYWN0aXZlbHkKKyAgICB3aGVuIHJ1biwgeW91IG11c3QgY2F1c2UgaXQsIHdoZW4gc3RhcnRlZCBydW5uaW5nIGZvciBzdWNoCisgICAgaW50ZXJhY3RpdmUgdXNlIGluIHRoZSBtb3N0IG9yZGluYXJ5IHdheSwgdG8gcHJpbnQgb3IgZGlzcGxheSBhbgorICAgIGFubm91bmNlbWVudCBpbmNsdWRpbmcgYW4gYXBwcm9wcmlhdGUgY29weXJpZ2h0IG5vdGljZSBhbmQgYQorICAgIG5vdGljZSB0aGF0IHRoZXJlIGlzIG5vIHdhcnJhbnR5IChvciBlbHNlLCBzYXlpbmcgdGhhdCB5b3UgcHJvdmlkZQorICAgIGEgd2FycmFudHkpIGFuZCB0aGF0IHVzZXJzIG1heSByZWRpc3RyaWJ1dGUgdGhlIHByb2dyYW0gdW5kZXIKKyAgICB0aGVzZSBjb25kaXRpb25zLCBhbmQgdGVsbGluZyB0aGUgdXNlciBob3cgdG8gdmlldyBhIGNvcHkgb2YgdGhpcworICAgIExpY2Vuc2UuICAoRXhjZXB0aW9uOiBpZiB0aGUgUHJvZ3JhbSBpdHNlbGYgaXMgaW50ZXJhY3RpdmUgYnV0CisgICAgZG9lcyBub3Qgbm9ybWFsbHkgcHJpbnQgc3VjaCBhbiBhbm5vdW5jZW1lbnQsIHlvdXIgd29yayBiYXNlZCBvbgorICAgIHRoZSBQcm9ncmFtIGlzIG5vdCByZXF1aXJlZCB0byBwcmludCBhbiBhbm5vdW5jZW1lbnQuKQorCitUaGVzZSByZXF1aXJlbWVudHMgYXBwbHkgdG8gdGhlIG1vZGlmaWVkIHdvcmsgYXMgYSB3aG9sZS4gIElmCitpZGVudGlmaWFibGUgc2VjdGlvbnMgb2YgdGhhdCB3b3JrIGFyZSBub3QgZGVyaXZlZCBmcm9tIHRoZSBQcm9ncmFtLAorYW5kIGNhbiBiZSByZWFzb25hYmx5IGNvbnNpZGVyZWQgaW5kZXBlbmRlbnQgYW5kIHNlcGFyYXRlIHdvcmtzIGluCit0aGVtc2VsdmVzLCB0aGVuIHRoaXMgTGljZW5zZSwgYW5kIGl0cyB0ZXJtcywgZG8gbm90IGFwcGx5IHRvIHRob3NlCitzZWN0aW9ucyB3aGVuIHlvdSBkaXN0cmlidXRlIHRoZW0gYXMgc2VwYXJhdGUgd29ya3MuICBCdXQgd2hlbiB5b3UKK2Rpc3RyaWJ1dGUgdGhlIHNhbWUgc2VjdGlvbnMgYXMgcGFydCBvZiBhIHdob2xlIHdoaWNoIGlzIGEgd29yayBiYXNlZAorb24gdGhlIFByb2dyYW0sIHRoZSBkaXN0cmlidXRpb24gb2YgdGhlIHdob2xlIG11c3QgYmUgb24gdGhlIHRlcm1zIG9mCit0aGlzIExpY2Vuc2UsIHdob3NlIHBlcm1pc3Npb25zIGZvciBvdGhlciBsaWNlbnNlZXMgZXh0ZW5kIHRvIHRoZQorZW50aXJlIHdob2xlLCBhbmQgdGh1cyB0byBlYWNoIGFuZCBldmVyeSBwYXJ0IHJlZ2FyZGxlc3Mgb2Ygd2hvIHdyb3RlIGl0LgorCitUaHVzLCBpdCBpcyBub3QgdGhlIGludGVudCBvZiB0aGlzIHNlY3Rpb24gdG8gY2xhaW0gcmlnaHRzIG9yIGNvbnRlc3QKK3lvdXIgcmlnaHRzIHRvIHdvcmsgd3JpdHRlbiBlbnRpcmVseSBieSB5b3U7IHJhdGhlciwgdGhlIGludGVudCBpcyB0bworZXhlcmNpc2UgdGhlIHJpZ2h0IHRvIGNvbnRyb2wgdGhlIGRpc3RyaWJ1dGlvbiBvZiBkZXJpdmF0aXZlIG9yCitjb2xsZWN0aXZlIHdvcmtzIGJhc2VkIG9uIHRoZSBQcm9ncmFtLgorCitJbiBhZGRpdGlvbiwgbWVyZSBhZ2dyZWdhdGlvbiBvZiBhbm90aGVyIHdvcmsgbm90IGJhc2VkIG9uIHRoZSBQcm9ncmFtCit3aXRoIHRoZSBQcm9ncmFtIChvciB3aXRoIGEgd29yayBiYXNlZCBvbiB0aGUgUHJvZ3JhbSkgb24gYSB2b2x1bWUgb2YKK2Egc3RvcmFnZSBvciBkaXN0cmlidXRpb24gbWVkaXVtIGRvZXMgbm90IGJyaW5nIHRoZSBvdGhlciB3b3JrIHVuZGVyCit0aGUgc2NvcGUgb2YgdGhpcyBMaWNlbnNlLgorCisgIDMuIFlvdSBtYXkgY29weSBhbmQgZGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSAob3IgYSB3b3JrIGJhc2VkIG9uIGl0LAordW5kZXIgU2VjdGlvbiAyKSBpbiBvYmplY3QgY29kZSBvciBleGVjdXRhYmxlIGZvcm0gdW5kZXIgdGhlIHRlcm1zIG9mCitTZWN0aW9ucyAxIGFuZCAyIGFib3ZlIHByb3ZpZGVkIHRoYXQgeW91IGFsc28gZG8gb25lIG9mIHRoZSBmb2xsb3dpbmc6CisKKyAgICBhKSBBY2NvbXBhbnkgaXQgd2l0aCB0aGUgY29tcGxldGUgY29ycmVzcG9uZGluZyBtYWNoaW5lLXJlYWRhYmxlCisgICAgc291cmNlIGNvZGUsIHdoaWNoIG11c3QgYmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIFNlY3Rpb25zCisgICAgMSBhbmQgMiBhYm92ZSBvbiBhIG1lZGl1bSBjdXN0b21hcmlseSB1c2VkIGZvciBzb2Z0d2FyZSBpbnRlcmNoYW5nZTsgb3IsCisKKyAgICBiKSBBY2NvbXBhbnkgaXQgd2l0aCBhIHdyaXR0ZW4gb2ZmZXIsIHZhbGlkIGZvciBhdCBsZWFzdCB0aHJlZQorICAgIHllYXJzLCB0byBnaXZlIGFueSB0aGlyZCBwYXJ0eSwgZm9yIGEgY2hhcmdlIG5vIG1vcmUgdGhhbiB5b3VyCisgICAgY29zdCBvZiBwaHlzaWNhbGx5IHBlcmZvcm1pbmcgc291cmNlIGRpc3RyaWJ1dGlvbiwgYSBjb21wbGV0ZQorICAgIG1hY2hpbmUtcmVhZGFibGUgY29weSBvZiB0aGUgY29ycmVzcG9uZGluZyBzb3VyY2UgY29kZSwgdG8gYmUKKyAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgU2VjdGlvbnMgMSBhbmQgMiBhYm92ZSBvbiBhIG1lZGl1bQorICAgIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlOyBvciwKKworICAgIGMpIEFjY29tcGFueSBpdCB3aXRoIHRoZSBpbmZvcm1hdGlvbiB5b3UgcmVjZWl2ZWQgYXMgdG8gdGhlIG9mZmVyCisgICAgdG8gZGlzdHJpYnV0ZSBjb3JyZXNwb25kaW5nIHNvdXJjZSBjb2RlLiAgKFRoaXMgYWx0ZXJuYXRpdmUgaXMKKyAgICBhbGxvd2VkIG9ubHkgZm9yIG5vbmNvbW1lcmNpYWwgZGlzdHJpYnV0aW9uIGFuZCBvbmx5IGlmIHlvdQorICAgIHJlY2VpdmVkIHRoZSBwcm9ncmFtIGluIG9iamVjdCBjb2RlIG9yIGV4ZWN1dGFibGUgZm9ybSB3aXRoIHN1Y2gKKyAgICBhbiBvZmZlciwgaW4gYWNjb3JkIHdpdGggU3Vic2VjdGlvbiBiIGFib3ZlLikKKworVGhlIHNvdXJjZSBjb2RlIGZvciBhIHdvcmsgbWVhbnMgdGhlIHByZWZlcnJlZCBmb3JtIG9mIHRoZSB3b3JrIGZvcgorbWFraW5nIG1vZGlmaWNhdGlvbnMgdG8gaXQuICBGb3IgYW4gZXhlY3V0YWJsZSB3b3JrLCBjb21wbGV0ZSBzb3VyY2UKK2NvZGUgbWVhbnMgYWxsIHRoZSBzb3VyY2UgY29kZSBmb3IgYWxsIG1vZHVsZXMgaXQgY29udGFpbnMsIHBsdXMgYW55Cithc3NvY2lhdGVkIGludGVyZmFjZSBkZWZpbml0aW9uIGZpbGVzLCBwbHVzIHRoZSBzY3JpcHRzIHVzZWQgdG8KK2NvbnRyb2wgY29tcGlsYXRpb24gYW5kIGluc3RhbGxhdGlvbiBvZiB0aGUgZXhlY3V0YWJsZS4gIEhvd2V2ZXIsIGFzIGEKK3NwZWNpYWwgZXhjZXB0aW9uLCB0aGUgc291cmNlIGNvZGUgZGlzdHJpYnV0ZWQgbmVlZCBub3QgaW5jbHVkZQorYW55dGhpbmcgdGhhdCBpcyBub3JtYWxseSBkaXN0cmlidXRlZCAoaW4gZWl0aGVyIHNvdXJjZSBvciBiaW5hcnkKK2Zvcm0pIHdpdGggdGhlIG1ham9yIGNvbXBvbmVudHMgKGNvbXBpbGVyLCBrZXJuZWwsIGFuZCBzbyBvbikgb2YgdGhlCitvcGVyYXRpbmcgc3lzdGVtIG9uIHdoaWNoIHRoZSBleGVjdXRhYmxlIHJ1bnMsIHVubGVzcyB0aGF0IGNvbXBvbmVudAoraXRzZWxmIGFjY29tcGFuaWVzIHRoZSBleGVjdXRhYmxlLgorCitJZiBkaXN0cmlidXRpb24gb2YgZXhlY3V0YWJsZSBvciBvYmplY3QgY29kZSBpcyBtYWRlIGJ5IG9mZmVyaW5nCithY2Nlc3MgdG8gY29weSBmcm9tIGEgZGVzaWduYXRlZCBwbGFjZSwgdGhlbiBvZmZlcmluZyBlcXVpdmFsZW50CithY2Nlc3MgdG8gY29weSB0aGUgc291cmNlIGNvZGUgZnJvbSB0aGUgc2FtZSBwbGFjZSBjb3VudHMgYXMKK2Rpc3RyaWJ1dGlvbiBvZiB0aGUgc291cmNlIGNvZGUsIGV2ZW4gdGhvdWdoIHRoaXJkIHBhcnRpZXMgYXJlIG5vdAorY29tcGVsbGVkIHRvIGNvcHkgdGhlIHNvdXJjZSBhbG9uZyB3aXRoIHRoZSBvYmplY3QgY29kZS4KKworICA0LiBZb3UgbWF5IG5vdCBjb3B5LCBtb2RpZnksIHN1YmxpY2Vuc2UsIG9yIGRpc3RyaWJ1dGUgdGhlIFByb2dyYW0KK2V4Y2VwdCBhcyBleHByZXNzbHkgcHJvdmlkZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgQW55IGF0dGVtcHQKK290aGVyd2lzZSB0byBjb3B5LCBtb2RpZnksIHN1YmxpY2Vuc2Ugb3IgZGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSBpcwordm9pZCwgYW5kIHdpbGwgYXV0b21hdGljYWxseSB0ZXJtaW5hdGUgeW91ciByaWdodHMgdW5kZXIgdGhpcyBMaWNlbnNlLgorSG93ZXZlciwgcGFydGllcyB3aG8gaGF2ZSByZWNlaXZlZCBjb3BpZXMsIG9yIHJpZ2h0cywgZnJvbSB5b3UgdW5kZXIKK3RoaXMgTGljZW5zZSB3aWxsIG5vdCBoYXZlIHRoZWlyIGxpY2Vuc2VzIHRlcm1pbmF0ZWQgc28gbG9uZyBhcyBzdWNoCitwYXJ0aWVzIHJlbWFpbiBpbiBmdWxsIGNvbXBsaWFuY2UuCisKKyAgNS4gWW91IGFyZSBub3QgcmVxdWlyZWQgdG8gYWNjZXB0IHRoaXMgTGljZW5zZSwgc2luY2UgeW91IGhhdmUgbm90CitzaWduZWQgaXQuICBIb3dldmVyLCBub3RoaW5nIGVsc2UgZ3JhbnRzIHlvdSBwZXJtaXNzaW9uIHRvIG1vZGlmeSBvcgorZGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSBvciBpdHMgZGVyaXZhdGl2ZSB3b3Jrcy4gIFRoZXNlIGFjdGlvbnMgYXJlCitwcm9oaWJpdGVkIGJ5IGxhdyBpZiB5b3UgZG8gbm90IGFjY2VwdCB0aGlzIExpY2Vuc2UuICBUaGVyZWZvcmUsIGJ5Cittb2RpZnlpbmcgb3IgZGlzdHJpYnV0aW5nIHRoZSBQcm9ncmFtIChvciBhbnkgd29yayBiYXNlZCBvbiB0aGUKK1Byb2dyYW0pLCB5b3UgaW5kaWNhdGUgeW91ciBhY2NlcHRhbmNlIG9mIHRoaXMgTGljZW5zZSB0byBkbyBzbywgYW5kCithbGwgaXRzIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciBjb3B5aW5nLCBkaXN0cmlidXRpbmcgb3IgbW9kaWZ5aW5nCit0aGUgUHJvZ3JhbSBvciB3b3JrcyBiYXNlZCBvbiBpdC4KKworICA2LiBFYWNoIHRpbWUgeW91IHJlZGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSAob3IgYW55IHdvcmsgYmFzZWQgb24gdGhlCitQcm9ncmFtKSwgdGhlIHJlY2lwaWVudCBhdXRvbWF0aWNhbGx5IHJlY2VpdmVzIGEgbGljZW5zZSBmcm9tIHRoZQorb3JpZ2luYWwgbGljZW5zb3IgdG8gY29weSwgZGlzdHJpYnV0ZSBvciBtb2RpZnkgdGhlIFByb2dyYW0gc3ViamVjdCB0bwordGhlc2UgdGVybXMgYW5kIGNvbmRpdGlvbnMuICBZb3UgbWF5IG5vdCBpbXBvc2UgYW55IGZ1cnRoZXIKK3Jlc3RyaWN0aW9ucyBvbiB0aGUgcmVjaXBpZW50cycgZXhlcmNpc2Ugb2YgdGhlIHJpZ2h0cyBncmFudGVkIGhlcmVpbi4KK1lvdSBhcmUgbm90IHJlc3BvbnNpYmxlIGZvciBlbmZvcmNpbmcgY29tcGxpYW5jZSBieSB0aGlyZCBwYXJ0aWVzIHRvCit0aGlzIExpY2Vuc2UuCisKKyAgNy4gSWYsIGFzIGEgY29uc2VxdWVuY2Ugb2YgYSBjb3VydCBqdWRnbWVudCBvciBhbGxlZ2F0aW9uIG9mIHBhdGVudAoraW5mcmluZ2VtZW50IG9yIGZvciBhbnkgb3RoZXIgcmVhc29uIChub3QgbGltaXRlZCB0byBwYXRlbnQgaXNzdWVzKSwKK2NvbmRpdGlvbnMgYXJlIGltcG9zZWQgb24geW91ICh3aGV0aGVyIGJ5IGNvdXJ0IG9yZGVyLCBhZ3JlZW1lbnQgb3IKK290aGVyd2lzZSkgdGhhdCBjb250cmFkaWN0IHRoZSBjb25kaXRpb25zIG9mIHRoaXMgTGljZW5zZSwgdGhleSBkbyBub3QKK2V4Y3VzZSB5b3UgZnJvbSB0aGUgY29uZGl0aW9ucyBvZiB0aGlzIExpY2Vuc2UuICBJZiB5b3UgY2Fubm90CitkaXN0cmlidXRlIHNvIGFzIHRvIHNhdGlzZnkgc2ltdWx0YW5lb3VzbHkgeW91ciBvYmxpZ2F0aW9ucyB1bmRlciB0aGlzCitMaWNlbnNlIGFuZCBhbnkgb3RoZXIgcGVydGluZW50IG9ibGlnYXRpb25zLCB0aGVuIGFzIGEgY29uc2VxdWVuY2UgeW91CittYXkgbm90IGRpc3RyaWJ1dGUgdGhlIFByb2dyYW0gYXQgYWxsLiAgRm9yIGV4YW1wbGUsIGlmIGEgcGF0ZW50CitsaWNlbnNlIHdvdWxkIG5vdCBwZXJtaXQgcm95YWx0eS1mcmVlIHJlZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtIGJ5CithbGwgdGhvc2Ugd2hvIHJlY2VpdmUgY29waWVzIGRpcmVjdGx5IG9yIGluZGlyZWN0bHkgdGhyb3VnaCB5b3UsIHRoZW4KK3RoZSBvbmx5IHdheSB5b3UgY291bGQgc2F0aXNmeSBib3RoIGl0IGFuZCB0aGlzIExpY2Vuc2Ugd291bGQgYmUgdG8KK3JlZnJhaW4gZW50aXJlbHkgZnJvbSBkaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0uCisKK0lmIGFueSBwb3J0aW9uIG9mIHRoaXMgc2VjdGlvbiBpcyBoZWxkIGludmFsaWQgb3IgdW5lbmZvcmNlYWJsZSB1bmRlcgorYW55IHBhcnRpY3VsYXIgY2lyY3Vtc3RhbmNlLCB0aGUgYmFsYW5jZSBvZiB0aGUgc2VjdGlvbiBpcyBpbnRlbmRlZCB0bworYXBwbHkgYW5kIHRoZSBzZWN0aW9uIGFzIGEgd2hvbGUgaXMgaW50ZW5kZWQgdG8gYXBwbHkgaW4gb3RoZXIKK2NpcmN1bXN0YW5jZXMuCisKK0l0IGlzIG5vdCB0aGUgcHVycG9zZSBvZiB0aGlzIHNlY3Rpb24gdG8gaW5kdWNlIHlvdSB0byBpbmZyaW5nZSBhbnkKK3BhdGVudHMgb3Igb3RoZXIgcHJvcGVydHkgcmlnaHQgY2xhaW1zIG9yIHRvIGNvbnRlc3QgdmFsaWRpdHkgb2YgYW55CitzdWNoIGNsYWltczsgdGhpcyBzZWN0aW9uIGhhcyB0aGUgc29sZSBwdXJwb3NlIG9mIHByb3RlY3RpbmcgdGhlCitpbnRlZ3JpdHkgb2YgdGhlIGZyZWUgc29mdHdhcmUgZGlzdHJpYnV0aW9uIHN5c3RlbSwgd2hpY2ggaXMKK2ltcGxlbWVudGVkIGJ5IHB1YmxpYyBsaWNlbnNlIHByYWN0aWNlcy4gIE1hbnkgcGVvcGxlIGhhdmUgbWFkZQorZ2VuZXJvdXMgY29udHJpYnV0aW9ucyB0byB0aGUgd2lkZSByYW5nZSBvZiBzb2Z0d2FyZSBkaXN0cmlidXRlZAordGhyb3VnaCB0aGF0IHN5c3RlbSBpbiByZWxpYW5jZSBvbiBjb25zaXN0ZW50IGFwcGxpY2F0aW9uIG9mIHRoYXQKK3N5c3RlbTsgaXQgaXMgdXAgdG8gdGhlIGF1dGhvci9kb25vciB0byBkZWNpZGUgaWYgaGUgb3Igc2hlIGlzIHdpbGxpbmcKK3RvIGRpc3RyaWJ1dGUgc29mdHdhcmUgdGhyb3VnaCBhbnkgb3RoZXIgc3lzdGVtIGFuZCBhIGxpY2Vuc2VlIGNhbm5vdAoraW1wb3NlIHRoYXQgY2hvaWNlLgorCitUaGlzIHNlY3Rpb24gaXMgaW50ZW5kZWQgdG8gbWFrZSB0aG9yb3VnaGx5IGNsZWFyIHdoYXQgaXMgYmVsaWV2ZWQgdG8KK2JlIGEgY29uc2VxdWVuY2Ugb2YgdGhlIHJlc3Qgb2YgdGhpcyBMaWNlbnNlLgorCisgIDguIElmIHRoZSBkaXN0cmlidXRpb24gYW5kL29yIHVzZSBvZiB0aGUgUHJvZ3JhbSBpcyByZXN0cmljdGVkIGluCitjZXJ0YWluIGNvdW50cmllcyBlaXRoZXIgYnkgcGF0ZW50cyBvciBieSBjb3B5cmlnaHRlZCBpbnRlcmZhY2VzLCB0aGUKK29yaWdpbmFsIGNvcHlyaWdodCBob2xkZXIgd2hvIHBsYWNlcyB0aGUgUHJvZ3JhbSB1bmRlciB0aGlzIExpY2Vuc2UKK21heSBhZGQgYW4gZXhwbGljaXQgZ2VvZ3JhcGhpY2FsIGRpc3RyaWJ1dGlvbiBsaW1pdGF0aW9uIGV4Y2x1ZGluZwordGhvc2UgY291bnRyaWVzLCBzbyB0aGF0IGRpc3RyaWJ1dGlvbiBpcyBwZXJtaXR0ZWQgb25seSBpbiBvciBhbW9uZworY291bnRyaWVzIG5vdCB0aHVzIGV4Y2x1ZGVkLiAgSW4gc3VjaCBjYXNlLCB0aGlzIExpY2Vuc2UgaW5jb3Jwb3JhdGVzCit0aGUgbGltaXRhdGlvbiBhcyBpZiB3cml0dGVuIGluIHRoZSBib2R5IG9mIHRoaXMgTGljZW5zZS4KKworICA5LiBUaGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIG1heSBwdWJsaXNoIHJldmlzZWQgYW5kL29yIG5ldyB2ZXJzaW9ucworb2YgdGhlIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZnJvbSB0aW1lIHRvIHRpbWUuICBTdWNoIG5ldyB2ZXJzaW9ucyB3aWxsCitiZSBzaW1pbGFyIGluIHNwaXJpdCB0byB0aGUgcHJlc2VudCB2ZXJzaW9uLCBidXQgbWF5IGRpZmZlciBpbiBkZXRhaWwgdG8KK2FkZHJlc3MgbmV3IHByb2JsZW1zIG9yIGNvbmNlcm5zLgorCitFYWNoIHZlcnNpb24gaXMgZ2l2ZW4gYSBkaXN0aW5ndWlzaGluZyB2ZXJzaW9uIG51bWJlci4gIElmIHRoZSBQcm9ncmFtCitzcGVjaWZpZXMgYSB2ZXJzaW9uIG51bWJlciBvZiB0aGlzIExpY2Vuc2Ugd2hpY2ggYXBwbGllcyB0byBpdCBhbmQgImFueQorbGF0ZXIgdmVyc2lvbiIsIHlvdSBoYXZlIHRoZSBvcHRpb24gb2YgZm9sbG93aW5nIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucworZWl0aGVyIG9mIHRoYXQgdmVyc2lvbiBvciBvZiBhbnkgbGF0ZXIgdmVyc2lvbiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUKK1NvZnR3YXJlIEZvdW5kYXRpb24uICBJZiB0aGUgUHJvZ3JhbSBkb2VzIG5vdCBzcGVjaWZ5IGEgdmVyc2lvbiBudW1iZXIgb2YKK3RoaXMgTGljZW5zZSwgeW91IG1heSBjaG9vc2UgYW55IHZlcnNpb24gZXZlciBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKK0ZvdW5kYXRpb24uCisKKyAgMTAuIElmIHlvdSB3aXNoIHRvIGluY29ycG9yYXRlIHBhcnRzIG9mIHRoZSBQcm9ncmFtIGludG8gb3RoZXIgZnJlZQorcHJvZ3JhbXMgd2hvc2UgZGlzdHJpYnV0aW9uIGNvbmRpdGlvbnMgYXJlIGRpZmZlcmVudCwgd3JpdGUgdG8gdGhlIGF1dGhvcgordG8gYXNrIGZvciBwZXJtaXNzaW9uLiAgRm9yIHNvZnR3YXJlIHdoaWNoIGlzIGNvcHlyaWdodGVkIGJ5IHRoZSBGcmVlCitTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyB3ZSBzb21ldGltZXMKK21ha2UgZXhjZXB0aW9ucyBmb3IgdGhpcy4gIE91ciBkZWNpc2lvbiB3aWxsIGJlIGd1aWRlZCBieSB0aGUgdHdvIGdvYWxzCitvZiBwcmVzZXJ2aW5nIHRoZSBmcmVlIHN0YXR1cyBvZiBhbGwgZGVyaXZhdGl2ZXMgb2Ygb3VyIGZyZWUgc29mdHdhcmUgYW5kCitvZiBwcm9tb3RpbmcgdGhlIHNoYXJpbmcgYW5kIHJldXNlIG9mIHNvZnR3YXJlIGdlbmVyYWxseS4KKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5PIFdBUlJBTlRZCisKKyAgMTEuIEJFQ0FVU0UgVEhFIFBST0dSQU0gSVMgTElDRU5TRUQgRlJFRSBPRiBDSEFSR0UsIFRIRVJFIElTIE5PIFdBUlJBTlRZCitGT1IgVEhFIFBST0dSQU0sIFRPIFRIRSBFWFRFTlQgUEVSTUlUVEVEIEJZIEFQUExJQ0FCTEUgTEFXLiAgRVhDRVBUIFdIRU4KK09USEVSV0lTRSBTVEFURUQgSU4gV1JJVElORyBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EL09SIE9USEVSIFBBUlRJRVMKK1BST1ZJREUgVEhFIFBST0dSQU0gIkFTIElTIiBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFSVRIRVIgRVhQUkVTU0VECitPUiBJTVBMSUVELCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFRIRSBFTlRJUkUgUklTSyBBUworVE8gVEhFIFFVQUxJVFkgQU5EIFBFUkZPUk1BTkNFIE9GIFRIRSBQUk9HUkFNIElTIFdJVEggWU9VLiAgU0hPVUxEIFRIRQorUFJPR1JBTSBQUk9WRSBERUZFQ1RJVkUsIFlPVSBBU1NVTUUgVEhFIENPU1QgT0YgQUxMIE5FQ0VTU0FSWSBTRVJWSUNJTkcsCitSRVBBSVIgT1IgQ09SUkVDVElPTi4KKworICAxMi4gSU4gTk8gRVZFTlQgVU5MRVNTIFJFUVVJUkVEIEJZIEFQUExJQ0FCTEUgTEFXIE9SIEFHUkVFRCBUTyBJTiBXUklUSU5HCitXSUxMIEFOWSBDT1BZUklHSFQgSE9MREVSLCBPUiBBTlkgT1RIRVIgUEFSVFkgV0hPIE1BWSBNT0RJRlkgQU5EL09SCitSRURJU1RSSUJVVEUgVEhFIFBST0dSQU0gQVMgUEVSTUlUVEVEIEFCT1ZFLCBCRSBMSUFCTEUgVE8gWU9VIEZPUiBEQU1BR0VTLAorSU5DTFVESU5HIEFOWSBHRU5FUkFMLCBTUEVDSUFMLCBJTkNJREVOVEFMIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBBUklTSU5HCitPVVQgT0YgVEhFIFVTRSBPUiBJTkFCSUxJVFkgVE8gVVNFIFRIRSBQUk9HUkFNIChJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVECitUTyBMT1NTIE9GIERBVEEgT1IgREFUQSBCRUlORyBSRU5ERVJFRCBJTkFDQ1VSQVRFIE9SIExPU1NFUyBTVVNUQUlORUQgQlkKK1lPVSBPUiBUSElSRCBQQVJUSUVTIE9SIEEgRkFJTFVSRSBPRiBUSEUgUFJPR1JBTSBUTyBPUEVSQVRFIFdJVEggQU5ZIE9USEVSCitQUk9HUkFNUyksIEVWRU4gSUYgU1VDSCBIT0xERVIgT1IgT1RIRVIgUEFSVFkgSEFTIEJFRU4gQURWSVNFRCBPRiBUSEUKK1BPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFUy4KKworICAgICAgICAgICAgICAgICAgICAgRU5EIE9GIFRFUk1TIEFORCBDT05ESVRJT05TCisKKyAgICAgICAgICAgIEhvdyB0byBBcHBseSBUaGVzZSBUZXJtcyB0byBZb3VyIE5ldyBQcm9ncmFtcworCisgIElmIHlvdSBkZXZlbG9wIGEgbmV3IHByb2dyYW0sIGFuZCB5b3Ugd2FudCBpdCB0byBiZSBvZiB0aGUgZ3JlYXRlc3QKK3Bvc3NpYmxlIHVzZSB0byB0aGUgcHVibGljLCB0aGUgYmVzdCB3YXkgdG8gYWNoaWV2ZSB0aGlzIGlzIHRvIG1ha2UgaXQKK2ZyZWUgc29mdHdhcmUgd2hpY2ggZXZlcnlvbmUgY2FuIHJlZGlzdHJpYnV0ZSBhbmQgY2hhbmdlIHVuZGVyIHRoZXNlIHRlcm1zLgorCisgIFRvIGRvIHNvLCBhdHRhY2ggdGhlIGZvbGxvd2luZyBub3RpY2VzIHRvIHRoZSBwcm9ncmFtLiAgSXQgaXMgc2FmZXN0Cit0byBhdHRhY2ggdGhlbSB0byB0aGUgc3RhcnQgb2YgZWFjaCBzb3VyY2UgZmlsZSB0byBtb3N0IGVmZmVjdGl2ZWx5Citjb252ZXkgdGhlIGV4Y2x1c2lvbiBvZiB3YXJyYW50eTsgYW5kIGVhY2ggZmlsZSBzaG91bGQgaGF2ZSBhdCBsZWFzdAordGhlICJjb3B5cmlnaHQiIGxpbmUgYW5kIGEgcG9pbnRlciB0byB3aGVyZSB0aGUgZnVsbCBub3RpY2UgaXMgZm91bmQuCisKKyAgICA8b25lIGxpbmUgdG8gZ2l2ZSB0aGUgcHJvZ3JhbSdzIG5hbWUgYW5kIGEgYnJpZWYgaWRlYSBvZiB3aGF0IGl0IGRvZXMuPgorICAgIENvcHlyaWdodCAoQykgPHllYXI+ICA8bmFtZSBvZiBhdXRob3I+CisKKyAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFsb25nCisgICAgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwKKyAgICA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBLgorCitBbHNvIGFkZCBpbmZvcm1hdGlvbiBvbiBob3cgdG8gY29udGFjdCB5b3UgYnkgZWxlY3Ryb25pYyBhbmQgcGFwZXIgbWFpbC4KKworSWYgdGhlIHByb2dyYW0gaXMgaW50ZXJhY3RpdmUsIG1ha2UgaXQgb3V0cHV0IGEgc2hvcnQgbm90aWNlIGxpa2UgdGhpcword2hlbiBpdCBzdGFydHMgaW4gYW4gaW50ZXJhY3RpdmUgbW9kZToKKworICAgIEdub21vdmlzaW9uIHZlcnNpb24gNjksIENvcHlyaWdodCAoQykgeWVhciBuYW1lIG9mIGF1dGhvcgorICAgIEdub21vdmlzaW9uIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWTsgZm9yIGRldGFpbHMgdHlwZSBgc2hvdyB3Jy4KKyAgICBUaGlzIGlzIGZyZWUgc29mdHdhcmUsIGFuZCB5b3UgYXJlIHdlbGNvbWUgdG8gcmVkaXN0cmlidXRlIGl0CisgICAgdW5kZXIgY2VydGFpbiBjb25kaXRpb25zOyB0eXBlIGBzaG93IGMnIGZvciBkZXRhaWxzLgorCitUaGUgaHlwb3RoZXRpY2FsIGNvbW1hbmRzIGBzaG93IHcnIGFuZCBgc2hvdyBjJyBzaG91bGQgc2hvdyB0aGUgYXBwcm9wcmlhdGUKK3BhcnRzIG9mIHRoZSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLiAgT2YgY291cnNlLCB0aGUgY29tbWFuZHMgeW91IHVzZSBtYXkKK2JlIGNhbGxlZCBzb21ldGhpbmcgb3RoZXIgdGhhbiBgc2hvdyB3JyBhbmQgYHNob3cgYyc7IHRoZXkgY291bGQgZXZlbiBiZQorbW91c2UtY2xpY2tzIG9yIG1lbnUgaXRlbXMtLXdoYXRldmVyIHN1aXRzIHlvdXIgcHJvZ3JhbS4KKworWW91IHNob3VsZCBhbHNvIGdldCB5b3VyIGVtcGxveWVyIChpZiB5b3Ugd29yayBhcyBhIHByb2dyYW1tZXIpIG9yIHlvdXIKK3NjaG9vbCwgaWYgYW55LCB0byBzaWduIGEgImNvcHlyaWdodCBkaXNjbGFpbWVyIiBmb3IgdGhlIHByb2dyYW0sIGlmCituZWNlc3NhcnkuICBIZXJlIGlzIGEgc2FtcGxlOyBhbHRlciB0aGUgbmFtZXM6CisKKyAgWW95b2R5bmUsIEluYy4sIGhlcmVieSBkaXNjbGFpbXMgYWxsIGNvcHlyaWdodCBpbnRlcmVzdCBpbiB0aGUgcHJvZ3JhbQorICBgR25vbW92aXNpb24nICh3aGljaCBtYWtlcyBwYXNzZXMgYXQgY29tcGlsZXJzKSB3cml0dGVuIGJ5IEphbWVzIEhhY2tlci4KKworICA8c2lnbmF0dXJlIG9mIFR5IENvb24+LCAxIEFwcmlsIDE5ODkKKyAgVHkgQ29vbiwgUHJlc2lkZW50IG9mIFZpY2UKKworVGhpcyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGRvZXMgbm90IHBlcm1pdCBpbmNvcnBvcmF0aW5nIHlvdXIgcHJvZ3JhbSBpbnRvCitwcm9wcmlldGFyeSBwcm9ncmFtcy4gIElmIHlvdXIgcHJvZ3JhbSBpcyBhIHN1YnJvdXRpbmUgbGlicmFyeSwgeW91IG1heQorY29uc2lkZXIgaXQgbW9yZSB1c2VmdWwgdG8gcGVybWl0IGxpbmtpbmcgcHJvcHJpZXRhcnkgYXBwbGljYXRpb25zIHdpdGggdGhlCitsaWJyYXJ5LiAgSWYgdGhpcyBpcyB3aGF0IHlvdSB3YW50IHRvIGRvLCB1c2UgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbAorUHVibGljIExpY2Vuc2UgaW5zdGVhZCBvZiB0aGlzIExpY2Vuc2UuCmRpZmYgLS1naXQgYS9jb21tb24vb2ZmbGluZS1tMi9uZXQvc2YvcHJvZ3VhcmQvcHJvZ3VhcmQtYmFzZS81LjIuMS9wcm9ndWFyZC1iYXNlLTUuMi4xLXNvdXJjZXMuamFyIGIvY29tbW9uL29mZmxpbmUtbTIvbmV0L3NmL3Byb2d1YXJkL3Byb2d1YXJkLWJhc2UvNS4yLjEvcHJvZ3VhcmQtYmFzZS01LjIuMS1zb3VyY2VzLmphcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40OWU3NzJkCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL29mZmxpbmUtbTIvbmV0L3NmL3Byb2d1YXJkL3Byb2d1YXJkLWJhc2UvNS4yLjEvcHJvZ3VhcmQtYmFzZS01LjIuMS1zb3VyY2VzLmphcgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9jb21tb24vb2ZmbGluZS1tMi9uZXQvc2YvcHJvZ3VhcmQvcHJvZ3VhcmQtYmFzZS81LjIuMS9wcm9ndWFyZC1iYXNlLTUuMi4xLmphciBiL2NvbW1vbi9vZmZsaW5lLW0yL25ldC9zZi9wcm9ndWFyZC9wcm9ndWFyZC1iYXNlLzUuMi4xL3Byb2d1YXJkLWJhc2UtNS4yLjEuamFyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJkOGQ1NjUKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vb2ZmbGluZS1tMi9uZXQvc2YvcHJvZ3VhcmQvcHJvZ3VhcmQtYmFzZS81LjIuMS9wcm9ndWFyZC1iYXNlLTUuMi4xLmphcgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9jb21tb24vb2ZmbGluZS1tMi9uZXQvc2YvcHJvZ3VhcmQvcHJvZ3VhcmQtYmFzZS81LjIuMS9wcm9ndWFyZC1iYXNlLTUuMi4xLnBvbSBiL2NvbW1vbi9vZmZsaW5lLW0yL25ldC9zZi9wcm9ndWFyZC9wcm9ndWFyZC1iYXNlLzUuMi4xL3Byb2d1YXJkLWJhc2UtNS4yLjEucG9tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE3YTZiNmIKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vb2ZmbGluZS1tMi9uZXQvc2YvcHJvZ3VhcmQvcHJvZ3VhcmQtYmFzZS81LjIuMS9wcm9ndWFyZC1iYXNlLTUuMi4xLnBvbQpAQCAtMCwwICsxLDY5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHByb2plY3QKKyAgICB4bWxucz0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIgorICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCisgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAgaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvbWF2ZW4tdjRfMF8wLnhzZCI+CisgICAgPG1vZGVsVmVyc2lvbj40LjAuMDwvbW9kZWxWZXJzaW9uPgorICAgIDxwYXJlbnQ+CisgICAgICAgIDxncm91cElkPm5ldC5zZi5wcm9ndWFyZDwvZ3JvdXBJZD4KKyAgICAgICAgPGFydGlmYWN0SWQ+cHJvZ3VhcmQtcGFyZW50PC9hcnRpZmFjdElkPgorICAgICAgICA8dmVyc2lvbj41LjIuMTwvdmVyc2lvbj4KKyAgICAgICAgPHJlbGF0aXZlUGF0aD4uLi9wb20ueG1sPC9yZWxhdGl2ZVBhdGg+CisgICAgPC9wYXJlbnQ+CisgICAgPGFydGlmYWN0SWQ+cHJvZ3VhcmQtYmFzZTwvYXJ0aWZhY3RJZD4KKyAgICA8bmFtZT5bJHtwcm9qZWN0Lmdyb3VwSWR9XSAke3Byb2plY3QuYXJ0aWZhY3RJZH08L25hbWU+CisKKyAgICA8YnVpbGQ+CisgICAgICAgIDxzb3VyY2VEaXJlY3Rvcnk+Li4vLi4vLi4vc3JjPC9zb3VyY2VEaXJlY3Rvcnk+CisgICAgICAgIDxwbHVnaW5zPgorICAgICAgICAgICAgPHBsdWdpbj4KKyAgICAgICAgICAgICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1zb3VyY2UtcGx1Z2luPC9hcnRpZmFjdElkPgorICAgICAgICAgICAgICAgIDxjb25maWd1cmF0aW9uPgorICAgICAgICAgICAgICAgICAgICA8ZXhjbHVkZXM+CisgICAgICAgICAgICAgICAgICAgICAgICA8ZXhjbHVkZT5wcm9ndWFyZC9ndWkvKio8L2V4Y2x1ZGU+CisgICAgICAgICAgICAgICAgICAgICAgICA8ZXhjbHVkZT5wcm9ndWFyZC9hbnQvKio8L2V4Y2x1ZGU+CisgICAgICAgICAgICAgICAgICAgICAgICA8ZXhjbHVkZT5wcm9ndWFyZC9ncmFkbGUvKio8L2V4Y2x1ZGU+CisgICAgICAgICAgICAgICAgICAgICAgICA8ZXhjbHVkZT5wcm9ndWFyZC93dGsvKio8L2V4Y2x1ZGU+CisgICAgICAgICAgICAgICAgICAgICAgICA8ZXhjbHVkZT5wcm9ndWFyZC9yZXRyYWNlLyoqPC9leGNsdWRlPgorICAgICAgICAgICAgICAgICAgICA8L2V4Y2x1ZGVzPgorICAgICAgICAgICAgICAgIDwvY29uZmlndXJhdGlvbj4KKyAgICAgICAgICAgIDwvcGx1Z2luPgorICAgICAgICAgICAgPHBsdWdpbj4KKyAgICAgICAgICAgICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1jb21waWxlci1wbHVnaW48L2FydGlmYWN0SWQ+CisgICAgICAgICAgICAgICAgPGNvbmZpZ3VyYXRpb24+CisgICAgICAgICAgICAgICAgICAgIDxleGNsdWRlcz4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxleGNsdWRlPnByb2d1YXJkL2d1aS8qKjwvZXhjbHVkZT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxleGNsdWRlPnByb2d1YXJkL2FudC8qKjwvZXhjbHVkZT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxleGNsdWRlPnByb2d1YXJkL2dyYWRsZS8qKjwvZXhjbHVkZT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxleGNsdWRlPnByb2d1YXJkL3d0ay8qKjwvZXhjbHVkZT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxleGNsdWRlPnByb2d1YXJkL3JldHJhY2UvKio8L2V4Y2x1ZGU+CisgICAgICAgICAgICAgICAgICAgIDwvZXhjbHVkZXM+CisgICAgICAgICAgICAgICAgPC9jb25maWd1cmF0aW9uPgorICAgICAgICAgICAgPC9wbHVnaW4+CisgICAgICAgICAgICA8cGx1Z2luPgorICAgICAgICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLWphdmFkb2MtcGx1Z2luPC9hcnRpZmFjdElkPgorICAgICAgICAgICAgICAgIDxjb25maWd1cmF0aW9uPgorICAgICAgICAgICAgICAgICAgICA8ZXhjbHVkZVBhY2thZ2VOYW1lcz5wcm9ndWFyZC5ndWk6cHJvZ3VhcmQuYW50OnByb2d1YXJkLmdyYWRsZTpwcm9ndWFyZC53dGs6cHJvZ3VhcmQucmV0cmFjZTwvZXhjbHVkZVBhY2thZ2VOYW1lcz4KKyAgICAgICAgICAgICAgICAgICAgPCEtLSBzb3VyY2VGaWxlRXhjbHVkZXMgZG9lc24ndCBzZWVtIHRvIHdvcmssIHNvIHdlJ3JlIHVzaW5nIGV4Y2x1ZGVQYWNrYWdlTmFtZXMgLS0+CisgICAgICAgICAgICAgICAgICAgIDxzb3VyY2VGaWxlRXhjbHVkZXM+CisgICAgICAgICAgICAgICAgICAgICAgICA8c291cmNlRmlsZUV4Y2x1ZGU+cHJvZ3VhcmQvZ3VpLyoqPC9zb3VyY2VGaWxlRXhjbHVkZT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxzb3VyY2VGaWxlRXhjbHVkZT5wcm9ndWFyZC9hbnQvKio8L3NvdXJjZUZpbGVFeGNsdWRlPgorICAgICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZUZpbGVFeGNsdWRlPnByb2d1YXJkL2dyYWRsZS8qKjwvc291cmNlRmlsZUV4Y2x1ZGU+CisgICAgICAgICAgICAgICAgICAgICAgICA8c291cmNlRmlsZUV4Y2x1ZGU+cHJvZ3VhcmQvd3RrLyoqPC9zb3VyY2VGaWxlRXhjbHVkZT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxzb3VyY2VGaWxlRXhjbHVkZT5wcm9ndWFyZC9yZXRyYWNlLyoqPC9zb3VyY2VGaWxlRXhjbHVkZT4KKyAgICAgICAgICAgICAgICAgICAgPC9zb3VyY2VGaWxlRXhjbHVkZXM+CisgICAgICAgICAgICAgICAgPC9jb25maWd1cmF0aW9uPgorICAgICAgICAgICAgPC9wbHVnaW4+CisgICAgICAgICAgICA8cGx1Z2luPgorICAgICAgICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLWphci1wbHVnaW48L2FydGlmYWN0SWQ+CisgICAgICAgICAgICAgICAgPGNvbmZpZ3VyYXRpb24+CisgICAgICAgICAgICAgICAgICAgIDxhcmNoaXZlPgorICAgICAgICAgICAgICAgICAgICAgICAgPG1hbmlmZXN0PgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYWluQ2xhc3M+cHJvZ3VhcmQuUHJvR3VhcmQ8L21haW5DbGFzcz4KKyAgICAgICAgICAgICAgICAgICAgICAgIDwvbWFuaWZlc3Q+CisgICAgICAgICAgICAgICAgICAgIDwvYXJjaGl2ZT4KKyAgICAgICAgICAgICAgICA8L2NvbmZpZ3VyYXRpb24+CisgICAgICAgICAgICA8L3BsdWdpbj4KKyAgICAgICAgPC9wbHVnaW5zPgorICAgIDwvYnVpbGQ+Cis8L3Byb2plY3Q+CmRpZmYgLS1naXQgYS9jb21tb24vb2ZmbGluZS1tMi9uZXQvc2YvcHJvZ3VhcmQvcHJvZ3VhcmQtZ3JhZGxlLzUuMi4xL05PVElDRSBiL2NvbW1vbi9vZmZsaW5lLW0yL25ldC9zZi9wcm9ndWFyZC9wcm9ndWFyZC1ncmFkbGUvNS4yLjEvTk9USUNFCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQxNTkxNjkKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vb2ZmbGluZS1tMi9uZXQvc2YvcHJvZ3VhcmQvcHJvZ3VhcmQtZ3JhZGxlLzUuMi4xL05PVElDRQpAQCAtMCwwICsxLDMzOSBAQAorICAgICAgICAgICAgICAgICAgICBHTlUgR0VORVJBTCBQVUJMSUMgTElDRU5TRQorICAgICAgICAgICAgICAgICAgICAgICBWZXJzaW9uIDIsIEp1bmUgMTk5MQorCisgQ29weXJpZ2h0IChDKSAxOTg5LCAxOTkxIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwKKyA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBCisgRXZlcnlvbmUgaXMgcGVybWl0dGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0aW0gY29waWVzCisgb2YgdGhpcyBsaWNlbnNlIGRvY3VtZW50LCBidXQgY2hhbmdpbmcgaXQgaXMgbm90IGFsbG93ZWQuCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcmVhbWJsZQorCisgIFRoZSBsaWNlbnNlcyBmb3IgbW9zdCBzb2Z0d2FyZSBhcmUgZGVzaWduZWQgdG8gdGFrZSBhd2F5IHlvdXIKK2ZyZWVkb20gdG8gc2hhcmUgYW5kIGNoYW5nZSBpdC4gIEJ5IGNvbnRyYXN0LCB0aGUgR05VIEdlbmVyYWwgUHVibGljCitMaWNlbnNlIGlzIGludGVuZGVkIHRvIGd1YXJhbnRlZSB5b3VyIGZyZWVkb20gdG8gc2hhcmUgYW5kIGNoYW5nZSBmcmVlCitzb2Z0d2FyZS0tdG8gbWFrZSBzdXJlIHRoZSBzb2Z0d2FyZSBpcyBmcmVlIGZvciBhbGwgaXRzIHVzZXJzLiAgVGhpcworR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcHBsaWVzIHRvIG1vc3Qgb2YgdGhlIEZyZWUgU29mdHdhcmUKK0ZvdW5kYXRpb24ncyBzb2Z0d2FyZSBhbmQgdG8gYW55IG90aGVyIHByb2dyYW0gd2hvc2UgYXV0aG9ycyBjb21taXQgdG8KK3VzaW5nIGl0LiAgKFNvbWUgb3RoZXIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIHNvZnR3YXJlIGlzIGNvdmVyZWQgYnkKK3RoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaW5zdGVhZC4pICBZb3UgY2FuIGFwcGx5IGl0IHRvCit5b3VyIHByb2dyYW1zLCB0b28uCisKKyAgV2hlbiB3ZSBzcGVhayBvZiBmcmVlIHNvZnR3YXJlLCB3ZSBhcmUgcmVmZXJyaW5nIHRvIGZyZWVkb20sIG5vdAorcHJpY2UuICBPdXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZXMgYXJlIGRlc2lnbmVkIHRvIG1ha2Ugc3VyZSB0aGF0IHlvdQoraGF2ZSB0aGUgZnJlZWRvbSB0byBkaXN0cmlidXRlIGNvcGllcyBvZiBmcmVlIHNvZnR3YXJlIChhbmQgY2hhcmdlIGZvcgordGhpcyBzZXJ2aWNlIGlmIHlvdSB3aXNoKSwgdGhhdCB5b3UgcmVjZWl2ZSBzb3VyY2UgY29kZSBvciBjYW4gZ2V0IGl0CitpZiB5b3Ugd2FudCBpdCwgdGhhdCB5b3UgY2FuIGNoYW5nZSB0aGUgc29mdHdhcmUgb3IgdXNlIHBpZWNlcyBvZiBpdAoraW4gbmV3IGZyZWUgcHJvZ3JhbXM7IGFuZCB0aGF0IHlvdSBrbm93IHlvdSBjYW4gZG8gdGhlc2UgdGhpbmdzLgorCisgIFRvIHByb3RlY3QgeW91ciByaWdodHMsIHdlIG5lZWQgdG8gbWFrZSByZXN0cmljdGlvbnMgdGhhdCBmb3JiaWQKK2FueW9uZSB0byBkZW55IHlvdSB0aGVzZSByaWdodHMgb3IgdG8gYXNrIHlvdSB0byBzdXJyZW5kZXIgdGhlIHJpZ2h0cy4KK1RoZXNlIHJlc3RyaWN0aW9ucyB0cmFuc2xhdGUgdG8gY2VydGFpbiByZXNwb25zaWJpbGl0aWVzIGZvciB5b3UgaWYgeW91CitkaXN0cmlidXRlIGNvcGllcyBvZiB0aGUgc29mdHdhcmUsIG9yIGlmIHlvdSBtb2RpZnkgaXQuCisKKyAgRm9yIGV4YW1wbGUsIGlmIHlvdSBkaXN0cmlidXRlIGNvcGllcyBvZiBzdWNoIGEgcHJvZ3JhbSwgd2hldGhlcgorZ3JhdGlzIG9yIGZvciBhIGZlZSwgeW91IG11c3QgZ2l2ZSB0aGUgcmVjaXBpZW50cyBhbGwgdGhlIHJpZ2h0cyB0aGF0Cit5b3UgaGF2ZS4gIFlvdSBtdXN0IG1ha2Ugc3VyZSB0aGF0IHRoZXksIHRvbywgcmVjZWl2ZSBvciBjYW4gZ2V0IHRoZQorc291cmNlIGNvZGUuICBBbmQgeW91IG11c3Qgc2hvdyB0aGVtIHRoZXNlIHRlcm1zIHNvIHRoZXkga25vdyB0aGVpcgorcmlnaHRzLgorCisgIFdlIHByb3RlY3QgeW91ciByaWdodHMgd2l0aCB0d28gc3RlcHM6ICgxKSBjb3B5cmlnaHQgdGhlIHNvZnR3YXJlLCBhbmQKKygyKSBvZmZlciB5b3UgdGhpcyBsaWNlbnNlIHdoaWNoIGdpdmVzIHlvdSBsZWdhbCBwZXJtaXNzaW9uIHRvIGNvcHksCitkaXN0cmlidXRlIGFuZC9vciBtb2RpZnkgdGhlIHNvZnR3YXJlLgorCisgIEFsc28sIGZvciBlYWNoIGF1dGhvcidzIHByb3RlY3Rpb24gYW5kIG91cnMsIHdlIHdhbnQgdG8gbWFrZSBjZXJ0YWluCit0aGF0IGV2ZXJ5b25lIHVuZGVyc3RhbmRzIHRoYXQgdGhlcmUgaXMgbm8gd2FycmFudHkgZm9yIHRoaXMgZnJlZQorc29mdHdhcmUuICBJZiB0aGUgc29mdHdhcmUgaXMgbW9kaWZpZWQgYnkgc29tZW9uZSBlbHNlIGFuZCBwYXNzZWQgb24sIHdlCit3YW50IGl0cyByZWNpcGllbnRzIHRvIGtub3cgdGhhdCB3aGF0IHRoZXkgaGF2ZSBpcyBub3QgdGhlIG9yaWdpbmFsLCBzbwordGhhdCBhbnkgcHJvYmxlbXMgaW50cm9kdWNlZCBieSBvdGhlcnMgd2lsbCBub3QgcmVmbGVjdCBvbiB0aGUgb3JpZ2luYWwKK2F1dGhvcnMnIHJlcHV0YXRpb25zLgorCisgIEZpbmFsbHksIGFueSBmcmVlIHByb2dyYW0gaXMgdGhyZWF0ZW5lZCBjb25zdGFudGx5IGJ5IHNvZnR3YXJlCitwYXRlbnRzLiAgV2Ugd2lzaCB0byBhdm9pZCB0aGUgZGFuZ2VyIHRoYXQgcmVkaXN0cmlidXRvcnMgb2YgYSBmcmVlCitwcm9ncmFtIHdpbGwgaW5kaXZpZHVhbGx5IG9idGFpbiBwYXRlbnQgbGljZW5zZXMsIGluIGVmZmVjdCBtYWtpbmcgdGhlCitwcm9ncmFtIHByb3ByaWV0YXJ5LiAgVG8gcHJldmVudCB0aGlzLCB3ZSBoYXZlIG1hZGUgaXQgY2xlYXIgdGhhdCBhbnkKK3BhdGVudCBtdXN0IGJlIGxpY2Vuc2VkIGZvciBldmVyeW9uZSdzIGZyZWUgdXNlIG9yIG5vdCBsaWNlbnNlZCBhdCBhbGwuCisKKyAgVGhlIHByZWNpc2UgdGVybXMgYW5kIGNvbmRpdGlvbnMgZm9yIGNvcHlpbmcsIGRpc3RyaWJ1dGlvbiBhbmQKK21vZGlmaWNhdGlvbiBmb2xsb3cuCisKKyAgICAgICAgICAgICAgICAgICAgR05VIEdFTkVSQUwgUFVCTElDIExJQ0VOU0UKKyAgIFRFUk1TIEFORCBDT05ESVRJT05TIEZPUiBDT1BZSU5HLCBESVNUUklCVVRJT04gQU5EIE1PRElGSUNBVElPTgorCisgIDAuIFRoaXMgTGljZW5zZSBhcHBsaWVzIHRvIGFueSBwcm9ncmFtIG9yIG90aGVyIHdvcmsgd2hpY2ggY29udGFpbnMKK2Egbm90aWNlIHBsYWNlZCBieSB0aGUgY29weXJpZ2h0IGhvbGRlciBzYXlpbmcgaXQgbWF5IGJlIGRpc3RyaWJ1dGVkCit1bmRlciB0aGUgdGVybXMgb2YgdGhpcyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLiAgVGhlICJQcm9ncmFtIiwgYmVsb3csCityZWZlcnMgdG8gYW55IHN1Y2ggcHJvZ3JhbSBvciB3b3JrLCBhbmQgYSAid29yayBiYXNlZCBvbiB0aGUgUHJvZ3JhbSIKK21lYW5zIGVpdGhlciB0aGUgUHJvZ3JhbSBvciBhbnkgZGVyaXZhdGl2ZSB3b3JrIHVuZGVyIGNvcHlyaWdodCBsYXc6Cit0aGF0IGlzIHRvIHNheSwgYSB3b3JrIGNvbnRhaW5pbmcgdGhlIFByb2dyYW0gb3IgYSBwb3J0aW9uIG9mIGl0LAorZWl0aGVyIHZlcmJhdGltIG9yIHdpdGggbW9kaWZpY2F0aW9ucyBhbmQvb3IgdHJhbnNsYXRlZCBpbnRvIGFub3RoZXIKK2xhbmd1YWdlLiAgKEhlcmVpbmFmdGVyLCB0cmFuc2xhdGlvbiBpcyBpbmNsdWRlZCB3aXRob3V0IGxpbWl0YXRpb24gaW4KK3RoZSB0ZXJtICJtb2RpZmljYXRpb24iLikgIEVhY2ggbGljZW5zZWUgaXMgYWRkcmVzc2VkIGFzICJ5b3UiLgorCitBY3Rpdml0aWVzIG90aGVyIHRoYW4gY29weWluZywgZGlzdHJpYnV0aW9uIGFuZCBtb2RpZmljYXRpb24gYXJlIG5vdAorY292ZXJlZCBieSB0aGlzIExpY2Vuc2U7IHRoZXkgYXJlIG91dHNpZGUgaXRzIHNjb3BlLiAgVGhlIGFjdCBvZgorcnVubmluZyB0aGUgUHJvZ3JhbSBpcyBub3QgcmVzdHJpY3RlZCwgYW5kIHRoZSBvdXRwdXQgZnJvbSB0aGUgUHJvZ3JhbQoraXMgY292ZXJlZCBvbmx5IGlmIGl0cyBjb250ZW50cyBjb25zdGl0dXRlIGEgd29yayBiYXNlZCBvbiB0aGUKK1Byb2dyYW0gKGluZGVwZW5kZW50IG9mIGhhdmluZyBiZWVuIG1hZGUgYnkgcnVubmluZyB0aGUgUHJvZ3JhbSkuCitXaGV0aGVyIHRoYXQgaXMgdHJ1ZSBkZXBlbmRzIG9uIHdoYXQgdGhlIFByb2dyYW0gZG9lcy4KKworICAxLiBZb3UgbWF5IGNvcHkgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0aW0gY29waWVzIG9mIHRoZSBQcm9ncmFtJ3MKK3NvdXJjZSBjb2RlIGFzIHlvdSByZWNlaXZlIGl0LCBpbiBhbnkgbWVkaXVtLCBwcm92aWRlZCB0aGF0IHlvdQorY29uc3BpY3VvdXNseSBhbmQgYXBwcm9wcmlhdGVseSBwdWJsaXNoIG9uIGVhY2ggY29weSBhbiBhcHByb3ByaWF0ZQorY29weXJpZ2h0IG5vdGljZSBhbmQgZGlzY2xhaW1lciBvZiB3YXJyYW50eTsga2VlcCBpbnRhY3QgYWxsIHRoZQorbm90aWNlcyB0aGF0IHJlZmVyIHRvIHRoaXMgTGljZW5zZSBhbmQgdG8gdGhlIGFic2VuY2Ugb2YgYW55IHdhcnJhbnR5OworYW5kIGdpdmUgYW55IG90aGVyIHJlY2lwaWVudHMgb2YgdGhlIFByb2dyYW0gYSBjb3B5IG9mIHRoaXMgTGljZW5zZQorYWxvbmcgd2l0aCB0aGUgUHJvZ3JhbS4KKworWW91IG1heSBjaGFyZ2UgYSBmZWUgZm9yIHRoZSBwaHlzaWNhbCBhY3Qgb2YgdHJhbnNmZXJyaW5nIGEgY29weSwgYW5kCit5b3UgbWF5IGF0IHlvdXIgb3B0aW9uIG9mZmVyIHdhcnJhbnR5IHByb3RlY3Rpb24gaW4gZXhjaGFuZ2UgZm9yIGEgZmVlLgorCisgIDIuIFlvdSBtYXkgbW9kaWZ5IHlvdXIgY29weSBvciBjb3BpZXMgb2YgdGhlIFByb2dyYW0gb3IgYW55IHBvcnRpb24KK29mIGl0LCB0aHVzIGZvcm1pbmcgYSB3b3JrIGJhc2VkIG9uIHRoZSBQcm9ncmFtLCBhbmQgY29weSBhbmQKK2Rpc3RyaWJ1dGUgc3VjaCBtb2RpZmljYXRpb25zIG9yIHdvcmsgdW5kZXIgdGhlIHRlcm1zIG9mIFNlY3Rpb24gMQorYWJvdmUsIHByb3ZpZGVkIHRoYXQgeW91IGFsc28gbWVldCBhbGwgb2YgdGhlc2UgY29uZGl0aW9uczoKKworICAgIGEpIFlvdSBtdXN0IGNhdXNlIHRoZSBtb2RpZmllZCBmaWxlcyB0byBjYXJyeSBwcm9taW5lbnQgbm90aWNlcworICAgIHN0YXRpbmcgdGhhdCB5b3UgY2hhbmdlZCB0aGUgZmlsZXMgYW5kIHRoZSBkYXRlIG9mIGFueSBjaGFuZ2UuCisKKyAgICBiKSBZb3UgbXVzdCBjYXVzZSBhbnkgd29yayB0aGF0IHlvdSBkaXN0cmlidXRlIG9yIHB1Ymxpc2gsIHRoYXQgaW4KKyAgICB3aG9sZSBvciBpbiBwYXJ0IGNvbnRhaW5zIG9yIGlzIGRlcml2ZWQgZnJvbSB0aGUgUHJvZ3JhbSBvciBhbnkKKyAgICBwYXJ0IHRoZXJlb2YsIHRvIGJlIGxpY2Vuc2VkIGFzIGEgd2hvbGUgYXQgbm8gY2hhcmdlIHRvIGFsbCB0aGlyZAorICAgIHBhcnRpZXMgdW5kZXIgdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZS4KKworICAgIGMpIElmIHRoZSBtb2RpZmllZCBwcm9ncmFtIG5vcm1hbGx5IHJlYWRzIGNvbW1hbmRzIGludGVyYWN0aXZlbHkKKyAgICB3aGVuIHJ1biwgeW91IG11c3QgY2F1c2UgaXQsIHdoZW4gc3RhcnRlZCBydW5uaW5nIGZvciBzdWNoCisgICAgaW50ZXJhY3RpdmUgdXNlIGluIHRoZSBtb3N0IG9yZGluYXJ5IHdheSwgdG8gcHJpbnQgb3IgZGlzcGxheSBhbgorICAgIGFubm91bmNlbWVudCBpbmNsdWRpbmcgYW4gYXBwcm9wcmlhdGUgY29weXJpZ2h0IG5vdGljZSBhbmQgYQorICAgIG5vdGljZSB0aGF0IHRoZXJlIGlzIG5vIHdhcnJhbnR5IChvciBlbHNlLCBzYXlpbmcgdGhhdCB5b3UgcHJvdmlkZQorICAgIGEgd2FycmFudHkpIGFuZCB0aGF0IHVzZXJzIG1heSByZWRpc3RyaWJ1dGUgdGhlIHByb2dyYW0gdW5kZXIKKyAgICB0aGVzZSBjb25kaXRpb25zLCBhbmQgdGVsbGluZyB0aGUgdXNlciBob3cgdG8gdmlldyBhIGNvcHkgb2YgdGhpcworICAgIExpY2Vuc2UuICAoRXhjZXB0aW9uOiBpZiB0aGUgUHJvZ3JhbSBpdHNlbGYgaXMgaW50ZXJhY3RpdmUgYnV0CisgICAgZG9lcyBub3Qgbm9ybWFsbHkgcHJpbnQgc3VjaCBhbiBhbm5vdW5jZW1lbnQsIHlvdXIgd29yayBiYXNlZCBvbgorICAgIHRoZSBQcm9ncmFtIGlzIG5vdCByZXF1aXJlZCB0byBwcmludCBhbiBhbm5vdW5jZW1lbnQuKQorCitUaGVzZSByZXF1aXJlbWVudHMgYXBwbHkgdG8gdGhlIG1vZGlmaWVkIHdvcmsgYXMgYSB3aG9sZS4gIElmCitpZGVudGlmaWFibGUgc2VjdGlvbnMgb2YgdGhhdCB3b3JrIGFyZSBub3QgZGVyaXZlZCBmcm9tIHRoZSBQcm9ncmFtLAorYW5kIGNhbiBiZSByZWFzb25hYmx5IGNvbnNpZGVyZWQgaW5kZXBlbmRlbnQgYW5kIHNlcGFyYXRlIHdvcmtzIGluCit0aGVtc2VsdmVzLCB0aGVuIHRoaXMgTGljZW5zZSwgYW5kIGl0cyB0ZXJtcywgZG8gbm90IGFwcGx5IHRvIHRob3NlCitzZWN0aW9ucyB3aGVuIHlvdSBkaXN0cmlidXRlIHRoZW0gYXMgc2VwYXJhdGUgd29ya3MuICBCdXQgd2hlbiB5b3UKK2Rpc3RyaWJ1dGUgdGhlIHNhbWUgc2VjdGlvbnMgYXMgcGFydCBvZiBhIHdob2xlIHdoaWNoIGlzIGEgd29yayBiYXNlZAorb24gdGhlIFByb2dyYW0sIHRoZSBkaXN0cmlidXRpb24gb2YgdGhlIHdob2xlIG11c3QgYmUgb24gdGhlIHRlcm1zIG9mCit0aGlzIExpY2Vuc2UsIHdob3NlIHBlcm1pc3Npb25zIGZvciBvdGhlciBsaWNlbnNlZXMgZXh0ZW5kIHRvIHRoZQorZW50aXJlIHdob2xlLCBhbmQgdGh1cyB0byBlYWNoIGFuZCBldmVyeSBwYXJ0IHJlZ2FyZGxlc3Mgb2Ygd2hvIHdyb3RlIGl0LgorCitUaHVzLCBpdCBpcyBub3QgdGhlIGludGVudCBvZiB0aGlzIHNlY3Rpb24gdG8gY2xhaW0gcmlnaHRzIG9yIGNvbnRlc3QKK3lvdXIgcmlnaHRzIHRvIHdvcmsgd3JpdHRlbiBlbnRpcmVseSBieSB5b3U7IHJhdGhlciwgdGhlIGludGVudCBpcyB0bworZXhlcmNpc2UgdGhlIHJpZ2h0IHRvIGNvbnRyb2wgdGhlIGRpc3RyaWJ1dGlvbiBvZiBkZXJpdmF0aXZlIG9yCitjb2xsZWN0aXZlIHdvcmtzIGJhc2VkIG9uIHRoZSBQcm9ncmFtLgorCitJbiBhZGRpdGlvbiwgbWVyZSBhZ2dyZWdhdGlvbiBvZiBhbm90aGVyIHdvcmsgbm90IGJhc2VkIG9uIHRoZSBQcm9ncmFtCit3aXRoIHRoZSBQcm9ncmFtIChvciB3aXRoIGEgd29yayBiYXNlZCBvbiB0aGUgUHJvZ3JhbSkgb24gYSB2b2x1bWUgb2YKK2Egc3RvcmFnZSBvciBkaXN0cmlidXRpb24gbWVkaXVtIGRvZXMgbm90IGJyaW5nIHRoZSBvdGhlciB3b3JrIHVuZGVyCit0aGUgc2NvcGUgb2YgdGhpcyBMaWNlbnNlLgorCisgIDMuIFlvdSBtYXkgY29weSBhbmQgZGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSAob3IgYSB3b3JrIGJhc2VkIG9uIGl0LAordW5kZXIgU2VjdGlvbiAyKSBpbiBvYmplY3QgY29kZSBvciBleGVjdXRhYmxlIGZvcm0gdW5kZXIgdGhlIHRlcm1zIG9mCitTZWN0aW9ucyAxIGFuZCAyIGFib3ZlIHByb3ZpZGVkIHRoYXQgeW91IGFsc28gZG8gb25lIG9mIHRoZSBmb2xsb3dpbmc6CisKKyAgICBhKSBBY2NvbXBhbnkgaXQgd2l0aCB0aGUgY29tcGxldGUgY29ycmVzcG9uZGluZyBtYWNoaW5lLXJlYWRhYmxlCisgICAgc291cmNlIGNvZGUsIHdoaWNoIG11c3QgYmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIFNlY3Rpb25zCisgICAgMSBhbmQgMiBhYm92ZSBvbiBhIG1lZGl1bSBjdXN0b21hcmlseSB1c2VkIGZvciBzb2Z0d2FyZSBpbnRlcmNoYW5nZTsgb3IsCisKKyAgICBiKSBBY2NvbXBhbnkgaXQgd2l0aCBhIHdyaXR0ZW4gb2ZmZXIsIHZhbGlkIGZvciBhdCBsZWFzdCB0aHJlZQorICAgIHllYXJzLCB0byBnaXZlIGFueSB0aGlyZCBwYXJ0eSwgZm9yIGEgY2hhcmdlIG5vIG1vcmUgdGhhbiB5b3VyCisgICAgY29zdCBvZiBwaHlzaWNhbGx5IHBlcmZvcm1pbmcgc291cmNlIGRpc3RyaWJ1dGlvbiwgYSBjb21wbGV0ZQorICAgIG1hY2hpbmUtcmVhZGFibGUgY29weSBvZiB0aGUgY29ycmVzcG9uZGluZyBzb3VyY2UgY29kZSwgdG8gYmUKKyAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgU2VjdGlvbnMgMSBhbmQgMiBhYm92ZSBvbiBhIG1lZGl1bQorICAgIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlOyBvciwKKworICAgIGMpIEFjY29tcGFueSBpdCB3aXRoIHRoZSBpbmZvcm1hdGlvbiB5b3UgcmVjZWl2ZWQgYXMgdG8gdGhlIG9mZmVyCisgICAgdG8gZGlzdHJpYnV0ZSBjb3JyZXNwb25kaW5nIHNvdXJjZSBjb2RlLiAgKFRoaXMgYWx0ZXJuYXRpdmUgaXMKKyAgICBhbGxvd2VkIG9ubHkgZm9yIG5vbmNvbW1lcmNpYWwgZGlzdHJpYnV0aW9uIGFuZCBvbmx5IGlmIHlvdQorICAgIHJlY2VpdmVkIHRoZSBwcm9ncmFtIGluIG9iamVjdCBjb2RlIG9yIGV4ZWN1dGFibGUgZm9ybSB3aXRoIHN1Y2gKKyAgICBhbiBvZmZlciwgaW4gYWNjb3JkIHdpdGggU3Vic2VjdGlvbiBiIGFib3ZlLikKKworVGhlIHNvdXJjZSBjb2RlIGZvciBhIHdvcmsgbWVhbnMgdGhlIHByZWZlcnJlZCBmb3JtIG9mIHRoZSB3b3JrIGZvcgorbWFraW5nIG1vZGlmaWNhdGlvbnMgdG8gaXQuICBGb3IgYW4gZXhlY3V0YWJsZSB3b3JrLCBjb21wbGV0ZSBzb3VyY2UKK2NvZGUgbWVhbnMgYWxsIHRoZSBzb3VyY2UgY29kZSBmb3IgYWxsIG1vZHVsZXMgaXQgY29udGFpbnMsIHBsdXMgYW55Cithc3NvY2lhdGVkIGludGVyZmFjZSBkZWZpbml0aW9uIGZpbGVzLCBwbHVzIHRoZSBzY3JpcHRzIHVzZWQgdG8KK2NvbnRyb2wgY29tcGlsYXRpb24gYW5kIGluc3RhbGxhdGlvbiBvZiB0aGUgZXhlY3V0YWJsZS4gIEhvd2V2ZXIsIGFzIGEKK3NwZWNpYWwgZXhjZXB0aW9uLCB0aGUgc291cmNlIGNvZGUgZGlzdHJpYnV0ZWQgbmVlZCBub3QgaW5jbHVkZQorYW55dGhpbmcgdGhhdCBpcyBub3JtYWxseSBkaXN0cmlidXRlZCAoaW4gZWl0aGVyIHNvdXJjZSBvciBiaW5hcnkKK2Zvcm0pIHdpdGggdGhlIG1ham9yIGNvbXBvbmVudHMgKGNvbXBpbGVyLCBrZXJuZWwsIGFuZCBzbyBvbikgb2YgdGhlCitvcGVyYXRpbmcgc3lzdGVtIG9uIHdoaWNoIHRoZSBleGVjdXRhYmxlIHJ1bnMsIHVubGVzcyB0aGF0IGNvbXBvbmVudAoraXRzZWxmIGFjY29tcGFuaWVzIHRoZSBleGVjdXRhYmxlLgorCitJZiBkaXN0cmlidXRpb24gb2YgZXhlY3V0YWJsZSBvciBvYmplY3QgY29kZSBpcyBtYWRlIGJ5IG9mZmVyaW5nCithY2Nlc3MgdG8gY29weSBmcm9tIGEgZGVzaWduYXRlZCBwbGFjZSwgdGhlbiBvZmZlcmluZyBlcXVpdmFsZW50CithY2Nlc3MgdG8gY29weSB0aGUgc291cmNlIGNvZGUgZnJvbSB0aGUgc2FtZSBwbGFjZSBjb3VudHMgYXMKK2Rpc3RyaWJ1dGlvbiBvZiB0aGUgc291cmNlIGNvZGUsIGV2ZW4gdGhvdWdoIHRoaXJkIHBhcnRpZXMgYXJlIG5vdAorY29tcGVsbGVkIHRvIGNvcHkgdGhlIHNvdXJjZSBhbG9uZyB3aXRoIHRoZSBvYmplY3QgY29kZS4KKworICA0LiBZb3UgbWF5IG5vdCBjb3B5LCBtb2RpZnksIHN1YmxpY2Vuc2UsIG9yIGRpc3RyaWJ1dGUgdGhlIFByb2dyYW0KK2V4Y2VwdCBhcyBleHByZXNzbHkgcHJvdmlkZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgQW55IGF0dGVtcHQKK290aGVyd2lzZSB0byBjb3B5LCBtb2RpZnksIHN1YmxpY2Vuc2Ugb3IgZGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSBpcwordm9pZCwgYW5kIHdpbGwgYXV0b21hdGljYWxseSB0ZXJtaW5hdGUgeW91ciByaWdodHMgdW5kZXIgdGhpcyBMaWNlbnNlLgorSG93ZXZlciwgcGFydGllcyB3aG8gaGF2ZSByZWNlaXZlZCBjb3BpZXMsIG9yIHJpZ2h0cywgZnJvbSB5b3UgdW5kZXIKK3RoaXMgTGljZW5zZSB3aWxsIG5vdCBoYXZlIHRoZWlyIGxpY2Vuc2VzIHRlcm1pbmF0ZWQgc28gbG9uZyBhcyBzdWNoCitwYXJ0aWVzIHJlbWFpbiBpbiBmdWxsIGNvbXBsaWFuY2UuCisKKyAgNS4gWW91IGFyZSBub3QgcmVxdWlyZWQgdG8gYWNjZXB0IHRoaXMgTGljZW5zZSwgc2luY2UgeW91IGhhdmUgbm90CitzaWduZWQgaXQuICBIb3dldmVyLCBub3RoaW5nIGVsc2UgZ3JhbnRzIHlvdSBwZXJtaXNzaW9uIHRvIG1vZGlmeSBvcgorZGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSBvciBpdHMgZGVyaXZhdGl2ZSB3b3Jrcy4gIFRoZXNlIGFjdGlvbnMgYXJlCitwcm9oaWJpdGVkIGJ5IGxhdyBpZiB5b3UgZG8gbm90IGFjY2VwdCB0aGlzIExpY2Vuc2UuICBUaGVyZWZvcmUsIGJ5Cittb2RpZnlpbmcgb3IgZGlzdHJpYnV0aW5nIHRoZSBQcm9ncmFtIChvciBhbnkgd29yayBiYXNlZCBvbiB0aGUKK1Byb2dyYW0pLCB5b3UgaW5kaWNhdGUgeW91ciBhY2NlcHRhbmNlIG9mIHRoaXMgTGljZW5zZSB0byBkbyBzbywgYW5kCithbGwgaXRzIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciBjb3B5aW5nLCBkaXN0cmlidXRpbmcgb3IgbW9kaWZ5aW5nCit0aGUgUHJvZ3JhbSBvciB3b3JrcyBiYXNlZCBvbiBpdC4KKworICA2LiBFYWNoIHRpbWUgeW91IHJlZGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSAob3IgYW55IHdvcmsgYmFzZWQgb24gdGhlCitQcm9ncmFtKSwgdGhlIHJlY2lwaWVudCBhdXRvbWF0aWNhbGx5IHJlY2VpdmVzIGEgbGljZW5zZSBmcm9tIHRoZQorb3JpZ2luYWwgbGljZW5zb3IgdG8gY29weSwgZGlzdHJpYnV0ZSBvciBtb2RpZnkgdGhlIFByb2dyYW0gc3ViamVjdCB0bwordGhlc2UgdGVybXMgYW5kIGNvbmRpdGlvbnMuICBZb3UgbWF5IG5vdCBpbXBvc2UgYW55IGZ1cnRoZXIKK3Jlc3RyaWN0aW9ucyBvbiB0aGUgcmVjaXBpZW50cycgZXhlcmNpc2Ugb2YgdGhlIHJpZ2h0cyBncmFudGVkIGhlcmVpbi4KK1lvdSBhcmUgbm90IHJlc3BvbnNpYmxlIGZvciBlbmZvcmNpbmcgY29tcGxpYW5jZSBieSB0aGlyZCBwYXJ0aWVzIHRvCit0aGlzIExpY2Vuc2UuCisKKyAgNy4gSWYsIGFzIGEgY29uc2VxdWVuY2Ugb2YgYSBjb3VydCBqdWRnbWVudCBvciBhbGxlZ2F0aW9uIG9mIHBhdGVudAoraW5mcmluZ2VtZW50IG9yIGZvciBhbnkgb3RoZXIgcmVhc29uIChub3QgbGltaXRlZCB0byBwYXRlbnQgaXNzdWVzKSwKK2NvbmRpdGlvbnMgYXJlIGltcG9zZWQgb24geW91ICh3aGV0aGVyIGJ5IGNvdXJ0IG9yZGVyLCBhZ3JlZW1lbnQgb3IKK290aGVyd2lzZSkgdGhhdCBjb250cmFkaWN0IHRoZSBjb25kaXRpb25zIG9mIHRoaXMgTGljZW5zZSwgdGhleSBkbyBub3QKK2V4Y3VzZSB5b3UgZnJvbSB0aGUgY29uZGl0aW9ucyBvZiB0aGlzIExpY2Vuc2UuICBJZiB5b3UgY2Fubm90CitkaXN0cmlidXRlIHNvIGFzIHRvIHNhdGlzZnkgc2ltdWx0YW5lb3VzbHkgeW91ciBvYmxpZ2F0aW9ucyB1bmRlciB0aGlzCitMaWNlbnNlIGFuZCBhbnkgb3RoZXIgcGVydGluZW50IG9ibGlnYXRpb25zLCB0aGVuIGFzIGEgY29uc2VxdWVuY2UgeW91CittYXkgbm90IGRpc3RyaWJ1dGUgdGhlIFByb2dyYW0gYXQgYWxsLiAgRm9yIGV4YW1wbGUsIGlmIGEgcGF0ZW50CitsaWNlbnNlIHdvdWxkIG5vdCBwZXJtaXQgcm95YWx0eS1mcmVlIHJlZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtIGJ5CithbGwgdGhvc2Ugd2hvIHJlY2VpdmUgY29waWVzIGRpcmVjdGx5IG9yIGluZGlyZWN0bHkgdGhyb3VnaCB5b3UsIHRoZW4KK3RoZSBvbmx5IHdheSB5b3UgY291bGQgc2F0aXNmeSBib3RoIGl0IGFuZCB0aGlzIExpY2Vuc2Ugd291bGQgYmUgdG8KK3JlZnJhaW4gZW50aXJlbHkgZnJvbSBkaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0uCisKK0lmIGFueSBwb3J0aW9uIG9mIHRoaXMgc2VjdGlvbiBpcyBoZWxkIGludmFsaWQgb3IgdW5lbmZvcmNlYWJsZSB1bmRlcgorYW55IHBhcnRpY3VsYXIgY2lyY3Vtc3RhbmNlLCB0aGUgYmFsYW5jZSBvZiB0aGUgc2VjdGlvbiBpcyBpbnRlbmRlZCB0bworYXBwbHkgYW5kIHRoZSBzZWN0aW9uIGFzIGEgd2hvbGUgaXMgaW50ZW5kZWQgdG8gYXBwbHkgaW4gb3RoZXIKK2NpcmN1bXN0YW5jZXMuCisKK0l0IGlzIG5vdCB0aGUgcHVycG9zZSBvZiB0aGlzIHNlY3Rpb24gdG8gaW5kdWNlIHlvdSB0byBpbmZyaW5nZSBhbnkKK3BhdGVudHMgb3Igb3RoZXIgcHJvcGVydHkgcmlnaHQgY2xhaW1zIG9yIHRvIGNvbnRlc3QgdmFsaWRpdHkgb2YgYW55CitzdWNoIGNsYWltczsgdGhpcyBzZWN0aW9uIGhhcyB0aGUgc29sZSBwdXJwb3NlIG9mIHByb3RlY3RpbmcgdGhlCitpbnRlZ3JpdHkgb2YgdGhlIGZyZWUgc29mdHdhcmUgZGlzdHJpYnV0aW9uIHN5c3RlbSwgd2hpY2ggaXMKK2ltcGxlbWVudGVkIGJ5IHB1YmxpYyBsaWNlbnNlIHByYWN0aWNlcy4gIE1hbnkgcGVvcGxlIGhhdmUgbWFkZQorZ2VuZXJvdXMgY29udHJpYnV0aW9ucyB0byB0aGUgd2lkZSByYW5nZSBvZiBzb2Z0d2FyZSBkaXN0cmlidXRlZAordGhyb3VnaCB0aGF0IHN5c3RlbSBpbiByZWxpYW5jZSBvbiBjb25zaXN0ZW50IGFwcGxpY2F0aW9uIG9mIHRoYXQKK3N5c3RlbTsgaXQgaXMgdXAgdG8gdGhlIGF1dGhvci9kb25vciB0byBkZWNpZGUgaWYgaGUgb3Igc2hlIGlzIHdpbGxpbmcKK3RvIGRpc3RyaWJ1dGUgc29mdHdhcmUgdGhyb3VnaCBhbnkgb3RoZXIgc3lzdGVtIGFuZCBhIGxpY2Vuc2VlIGNhbm5vdAoraW1wb3NlIHRoYXQgY2hvaWNlLgorCitUaGlzIHNlY3Rpb24gaXMgaW50ZW5kZWQgdG8gbWFrZSB0aG9yb3VnaGx5IGNsZWFyIHdoYXQgaXMgYmVsaWV2ZWQgdG8KK2JlIGEgY29uc2VxdWVuY2Ugb2YgdGhlIHJlc3Qgb2YgdGhpcyBMaWNlbnNlLgorCisgIDguIElmIHRoZSBkaXN0cmlidXRpb24gYW5kL29yIHVzZSBvZiB0aGUgUHJvZ3JhbSBpcyByZXN0cmljdGVkIGluCitjZXJ0YWluIGNvdW50cmllcyBlaXRoZXIgYnkgcGF0ZW50cyBvciBieSBjb3B5cmlnaHRlZCBpbnRlcmZhY2VzLCB0aGUKK29yaWdpbmFsIGNvcHlyaWdodCBob2xkZXIgd2hvIHBsYWNlcyB0aGUgUHJvZ3JhbSB1bmRlciB0aGlzIExpY2Vuc2UKK21heSBhZGQgYW4gZXhwbGljaXQgZ2VvZ3JhcGhpY2FsIGRpc3RyaWJ1dGlvbiBsaW1pdGF0aW9uIGV4Y2x1ZGluZwordGhvc2UgY291bnRyaWVzLCBzbyB0aGF0IGRpc3RyaWJ1dGlvbiBpcyBwZXJtaXR0ZWQgb25seSBpbiBvciBhbW9uZworY291bnRyaWVzIG5vdCB0aHVzIGV4Y2x1ZGVkLiAgSW4gc3VjaCBjYXNlLCB0aGlzIExpY2Vuc2UgaW5jb3Jwb3JhdGVzCit0aGUgbGltaXRhdGlvbiBhcyBpZiB3cml0dGVuIGluIHRoZSBib2R5IG9mIHRoaXMgTGljZW5zZS4KKworICA5LiBUaGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIG1heSBwdWJsaXNoIHJldmlzZWQgYW5kL29yIG5ldyB2ZXJzaW9ucworb2YgdGhlIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZnJvbSB0aW1lIHRvIHRpbWUuICBTdWNoIG5ldyB2ZXJzaW9ucyB3aWxsCitiZSBzaW1pbGFyIGluIHNwaXJpdCB0byB0aGUgcHJlc2VudCB2ZXJzaW9uLCBidXQgbWF5IGRpZmZlciBpbiBkZXRhaWwgdG8KK2FkZHJlc3MgbmV3IHByb2JsZW1zIG9yIGNvbmNlcm5zLgorCitFYWNoIHZlcnNpb24gaXMgZ2l2ZW4gYSBkaXN0aW5ndWlzaGluZyB2ZXJzaW9uIG51bWJlci4gIElmIHRoZSBQcm9ncmFtCitzcGVjaWZpZXMgYSB2ZXJzaW9uIG51bWJlciBvZiB0aGlzIExpY2Vuc2Ugd2hpY2ggYXBwbGllcyB0byBpdCBhbmQgImFueQorbGF0ZXIgdmVyc2lvbiIsIHlvdSBoYXZlIHRoZSBvcHRpb24gb2YgZm9sbG93aW5nIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucworZWl0aGVyIG9mIHRoYXQgdmVyc2lvbiBvciBvZiBhbnkgbGF0ZXIgdmVyc2lvbiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUKK1NvZnR3YXJlIEZvdW5kYXRpb24uICBJZiB0aGUgUHJvZ3JhbSBkb2VzIG5vdCBzcGVjaWZ5IGEgdmVyc2lvbiBudW1iZXIgb2YKK3RoaXMgTGljZW5zZSwgeW91IG1heSBjaG9vc2UgYW55IHZlcnNpb24gZXZlciBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKK0ZvdW5kYXRpb24uCisKKyAgMTAuIElmIHlvdSB3aXNoIHRvIGluY29ycG9yYXRlIHBhcnRzIG9mIHRoZSBQcm9ncmFtIGludG8gb3RoZXIgZnJlZQorcHJvZ3JhbXMgd2hvc2UgZGlzdHJpYnV0aW9uIGNvbmRpdGlvbnMgYXJlIGRpZmZlcmVudCwgd3JpdGUgdG8gdGhlIGF1dGhvcgordG8gYXNrIGZvciBwZXJtaXNzaW9uLiAgRm9yIHNvZnR3YXJlIHdoaWNoIGlzIGNvcHlyaWdodGVkIGJ5IHRoZSBGcmVlCitTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyB3ZSBzb21ldGltZXMKK21ha2UgZXhjZXB0aW9ucyBmb3IgdGhpcy4gIE91ciBkZWNpc2lvbiB3aWxsIGJlIGd1aWRlZCBieSB0aGUgdHdvIGdvYWxzCitvZiBwcmVzZXJ2aW5nIHRoZSBmcmVlIHN0YXR1cyBvZiBhbGwgZGVyaXZhdGl2ZXMgb2Ygb3VyIGZyZWUgc29mdHdhcmUgYW5kCitvZiBwcm9tb3RpbmcgdGhlIHNoYXJpbmcgYW5kIHJldXNlIG9mIHNvZnR3YXJlIGdlbmVyYWxseS4KKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5PIFdBUlJBTlRZCisKKyAgMTEuIEJFQ0FVU0UgVEhFIFBST0dSQU0gSVMgTElDRU5TRUQgRlJFRSBPRiBDSEFSR0UsIFRIRVJFIElTIE5PIFdBUlJBTlRZCitGT1IgVEhFIFBST0dSQU0sIFRPIFRIRSBFWFRFTlQgUEVSTUlUVEVEIEJZIEFQUExJQ0FCTEUgTEFXLiAgRVhDRVBUIFdIRU4KK09USEVSV0lTRSBTVEFURUQgSU4gV1JJVElORyBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EL09SIE9USEVSIFBBUlRJRVMKK1BST1ZJREUgVEhFIFBST0dSQU0gIkFTIElTIiBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFSVRIRVIgRVhQUkVTU0VECitPUiBJTVBMSUVELCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFRIRSBFTlRJUkUgUklTSyBBUworVE8gVEhFIFFVQUxJVFkgQU5EIFBFUkZPUk1BTkNFIE9GIFRIRSBQUk9HUkFNIElTIFdJVEggWU9VLiAgU0hPVUxEIFRIRQorUFJPR1JBTSBQUk9WRSBERUZFQ1RJVkUsIFlPVSBBU1NVTUUgVEhFIENPU1QgT0YgQUxMIE5FQ0VTU0FSWSBTRVJWSUNJTkcsCitSRVBBSVIgT1IgQ09SUkVDVElPTi4KKworICAxMi4gSU4gTk8gRVZFTlQgVU5MRVNTIFJFUVVJUkVEIEJZIEFQUExJQ0FCTEUgTEFXIE9SIEFHUkVFRCBUTyBJTiBXUklUSU5HCitXSUxMIEFOWSBDT1BZUklHSFQgSE9MREVSLCBPUiBBTlkgT1RIRVIgUEFSVFkgV0hPIE1BWSBNT0RJRlkgQU5EL09SCitSRURJU1RSSUJVVEUgVEhFIFBST0dSQU0gQVMgUEVSTUlUVEVEIEFCT1ZFLCBCRSBMSUFCTEUgVE8gWU9VIEZPUiBEQU1BR0VTLAorSU5DTFVESU5HIEFOWSBHRU5FUkFMLCBTUEVDSUFMLCBJTkNJREVOVEFMIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBBUklTSU5HCitPVVQgT0YgVEhFIFVTRSBPUiBJTkFCSUxJVFkgVE8gVVNFIFRIRSBQUk9HUkFNIChJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVECitUTyBMT1NTIE9GIERBVEEgT1IgREFUQSBCRUlORyBSRU5ERVJFRCBJTkFDQ1VSQVRFIE9SIExPU1NFUyBTVVNUQUlORUQgQlkKK1lPVSBPUiBUSElSRCBQQVJUSUVTIE9SIEEgRkFJTFVSRSBPRiBUSEUgUFJPR1JBTSBUTyBPUEVSQVRFIFdJVEggQU5ZIE9USEVSCitQUk9HUkFNUyksIEVWRU4gSUYgU1VDSCBIT0xERVIgT1IgT1RIRVIgUEFSVFkgSEFTIEJFRU4gQURWSVNFRCBPRiBUSEUKK1BPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFUy4KKworICAgICAgICAgICAgICAgICAgICAgRU5EIE9GIFRFUk1TIEFORCBDT05ESVRJT05TCisKKyAgICAgICAgICAgIEhvdyB0byBBcHBseSBUaGVzZSBUZXJtcyB0byBZb3VyIE5ldyBQcm9ncmFtcworCisgIElmIHlvdSBkZXZlbG9wIGEgbmV3IHByb2dyYW0sIGFuZCB5b3Ugd2FudCBpdCB0byBiZSBvZiB0aGUgZ3JlYXRlc3QKK3Bvc3NpYmxlIHVzZSB0byB0aGUgcHVibGljLCB0aGUgYmVzdCB3YXkgdG8gYWNoaWV2ZSB0aGlzIGlzIHRvIG1ha2UgaXQKK2ZyZWUgc29mdHdhcmUgd2hpY2ggZXZlcnlvbmUgY2FuIHJlZGlzdHJpYnV0ZSBhbmQgY2hhbmdlIHVuZGVyIHRoZXNlIHRlcm1zLgorCisgIFRvIGRvIHNvLCBhdHRhY2ggdGhlIGZvbGxvd2luZyBub3RpY2VzIHRvIHRoZSBwcm9ncmFtLiAgSXQgaXMgc2FmZXN0Cit0byBhdHRhY2ggdGhlbSB0byB0aGUgc3RhcnQgb2YgZWFjaCBzb3VyY2UgZmlsZSB0byBtb3N0IGVmZmVjdGl2ZWx5Citjb252ZXkgdGhlIGV4Y2x1c2lvbiBvZiB3YXJyYW50eTsgYW5kIGVhY2ggZmlsZSBzaG91bGQgaGF2ZSBhdCBsZWFzdAordGhlICJjb3B5cmlnaHQiIGxpbmUgYW5kIGEgcG9pbnRlciB0byB3aGVyZSB0aGUgZnVsbCBub3RpY2UgaXMgZm91bmQuCisKKyAgICA8b25lIGxpbmUgdG8gZ2l2ZSB0aGUgcHJvZ3JhbSdzIG5hbWUgYW5kIGEgYnJpZWYgaWRlYSBvZiB3aGF0IGl0IGRvZXMuPgorICAgIENvcHlyaWdodCAoQykgPHllYXI+ICA8bmFtZSBvZiBhdXRob3I+CisKKyAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFsb25nCisgICAgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwKKyAgICA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBLgorCitBbHNvIGFkZCBpbmZvcm1hdGlvbiBvbiBob3cgdG8gY29udGFjdCB5b3UgYnkgZWxlY3Ryb25pYyBhbmQgcGFwZXIgbWFpbC4KKworSWYgdGhlIHByb2dyYW0gaXMgaW50ZXJhY3RpdmUsIG1ha2UgaXQgb3V0cHV0IGEgc2hvcnQgbm90aWNlIGxpa2UgdGhpcword2hlbiBpdCBzdGFydHMgaW4gYW4gaW50ZXJhY3RpdmUgbW9kZToKKworICAgIEdub21vdmlzaW9uIHZlcnNpb24gNjksIENvcHlyaWdodCAoQykgeWVhciBuYW1lIG9mIGF1dGhvcgorICAgIEdub21vdmlzaW9uIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWTsgZm9yIGRldGFpbHMgdHlwZSBgc2hvdyB3Jy4KKyAgICBUaGlzIGlzIGZyZWUgc29mdHdhcmUsIGFuZCB5b3UgYXJlIHdlbGNvbWUgdG8gcmVkaXN0cmlidXRlIGl0CisgICAgdW5kZXIgY2VydGFpbiBjb25kaXRpb25zOyB0eXBlIGBzaG93IGMnIGZvciBkZXRhaWxzLgorCitUaGUgaHlwb3RoZXRpY2FsIGNvbW1hbmRzIGBzaG93IHcnIGFuZCBgc2hvdyBjJyBzaG91bGQgc2hvdyB0aGUgYXBwcm9wcmlhdGUKK3BhcnRzIG9mIHRoZSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLiAgT2YgY291cnNlLCB0aGUgY29tbWFuZHMgeW91IHVzZSBtYXkKK2JlIGNhbGxlZCBzb21ldGhpbmcgb3RoZXIgdGhhbiBgc2hvdyB3JyBhbmQgYHNob3cgYyc7IHRoZXkgY291bGQgZXZlbiBiZQorbW91c2UtY2xpY2tzIG9yIG1lbnUgaXRlbXMtLXdoYXRldmVyIHN1aXRzIHlvdXIgcHJvZ3JhbS4KKworWW91IHNob3VsZCBhbHNvIGdldCB5b3VyIGVtcGxveWVyIChpZiB5b3Ugd29yayBhcyBhIHByb2dyYW1tZXIpIG9yIHlvdXIKK3NjaG9vbCwgaWYgYW55LCB0byBzaWduIGEgImNvcHlyaWdodCBkaXNjbGFpbWVyIiBmb3IgdGhlIHByb2dyYW0sIGlmCituZWNlc3NhcnkuICBIZXJlIGlzIGEgc2FtcGxlOyBhbHRlciB0aGUgbmFtZXM6CisKKyAgWW95b2R5bmUsIEluYy4sIGhlcmVieSBkaXNjbGFpbXMgYWxsIGNvcHlyaWdodCBpbnRlcmVzdCBpbiB0aGUgcHJvZ3JhbQorICBgR25vbW92aXNpb24nICh3aGljaCBtYWtlcyBwYXNzZXMgYXQgY29tcGlsZXJzKSB3cml0dGVuIGJ5IEphbWVzIEhhY2tlci4KKworICA8c2lnbmF0dXJlIG9mIFR5IENvb24+LCAxIEFwcmlsIDE5ODkKKyAgVHkgQ29vbiwgUHJlc2lkZW50IG9mIFZpY2UKKworVGhpcyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGRvZXMgbm90IHBlcm1pdCBpbmNvcnBvcmF0aW5nIHlvdXIgcHJvZ3JhbSBpbnRvCitwcm9wcmlldGFyeSBwcm9ncmFtcy4gIElmIHlvdXIgcHJvZ3JhbSBpcyBhIHN1YnJvdXRpbmUgbGlicmFyeSwgeW91IG1heQorY29uc2lkZXIgaXQgbW9yZSB1c2VmdWwgdG8gcGVybWl0IGxpbmtpbmcgcHJvcHJpZXRhcnkgYXBwbGljYXRpb25zIHdpdGggdGhlCitsaWJyYXJ5LiAgSWYgdGhpcyBpcyB3aGF0IHlvdSB3YW50IHRvIGRvLCB1c2UgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbAorUHVibGljIExpY2Vuc2UgaW5zdGVhZCBvZiB0aGlzIExpY2Vuc2UuCmRpZmYgLS1naXQgYS9jb21tb24vb2ZmbGluZS1tMi9uZXQvc2YvcHJvZ3VhcmQvcHJvZ3VhcmQtZ3JhZGxlLzUuMi4xL3Byb2d1YXJkLWdyYWRsZS01LjIuMS1zb3VyY2VzLmphciBiL2NvbW1vbi9vZmZsaW5lLW0yL25ldC9zZi9wcm9ndWFyZC9wcm9ndWFyZC1ncmFkbGUvNS4yLjEvcHJvZ3VhcmQtZ3JhZGxlLTUuMi4xLXNvdXJjZXMuamFyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU1OGQ2OWUKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vb2ZmbGluZS1tMi9uZXQvc2YvcHJvZ3VhcmQvcHJvZ3VhcmQtZ3JhZGxlLzUuMi4xL3Byb2d1YXJkLWdyYWRsZS01LjIuMS1zb3VyY2VzLmphcgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9jb21tb24vb2ZmbGluZS1tMi9uZXQvc2YvcHJvZ3VhcmQvcHJvZ3VhcmQtZ3JhZGxlLzUuMi4xL3Byb2d1YXJkLWdyYWRsZS01LjIuMS5qYXIgYi9jb21tb24vb2ZmbGluZS1tMi9uZXQvc2YvcHJvZ3VhcmQvcHJvZ3VhcmQtZ3JhZGxlLzUuMi4xL3Byb2d1YXJkLWdyYWRsZS01LjIuMS5qYXIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzdkODdhZAotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9vZmZsaW5lLW0yL25ldC9zZi9wcm9ndWFyZC9wcm9ndWFyZC1ncmFkbGUvNS4yLjEvcHJvZ3VhcmQtZ3JhZGxlLTUuMi4xLmphcgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9jb21tb24vb2ZmbGluZS1tMi9uZXQvc2YvcHJvZ3VhcmQvcHJvZ3VhcmQtZ3JhZGxlLzUuMi4xL3Byb2d1YXJkLWdyYWRsZS01LjIuMS5wb20gYi9jb21tb24vb2ZmbGluZS1tMi9uZXQvc2YvcHJvZ3VhcmQvcHJvZ3VhcmQtZ3JhZGxlLzUuMi4xL3Byb2d1YXJkLWdyYWRsZS01LjIuMS5wb20KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjM3OTE1MgotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9vZmZsaW5lLW0yL25ldC9zZi9wcm9ndWFyZC9wcm9ndWFyZC1ncmFkbGUvNS4yLjEvcHJvZ3VhcmQtZ3JhZGxlLTUuMi4xLnBvbQpAQCAtMCwwICsxLDkxIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHByb2plY3QKKyAgICB4bWxucz0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIgorICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCisgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAgaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvbWF2ZW4tdjRfMF8wLnhzZCI+CisgICAgPG1vZGVsVmVyc2lvbj40LjAuMDwvbW9kZWxWZXJzaW9uPgorICAgIDxwYXJlbnQ+CisgICAgICAgIDxncm91cElkPm5ldC5zZi5wcm9ndWFyZDwvZ3JvdXBJZD4KKyAgICAgICAgPGFydGlmYWN0SWQ+cHJvZ3VhcmQtcGFyZW50PC9hcnRpZmFjdElkPgorICAgICAgICA8dmVyc2lvbj41LjIuMTwvdmVyc2lvbj4KKyAgICAgICAgPHJlbGF0aXZlUGF0aD4uLi9wb20ueG1sPC9yZWxhdGl2ZVBhdGg+CisgICAgPC9wYXJlbnQ+CisgICAgPGFydGlmYWN0SWQ+cHJvZ3VhcmQtZ3JhZGxlPC9hcnRpZmFjdElkPgorICAgIDxuYW1lPlske3Byb2plY3QuZ3JvdXBJZH1dICR7cHJvamVjdC5hcnRpZmFjdElkfTwvbmFtZT4KKworICAgIDxidWlsZD4KKyAgICAgICAgPHNvdXJjZURpcmVjdG9yeT4uLi8uLi8uLi9zcmM8L3NvdXJjZURpcmVjdG9yeT4KKyAgICAgICAgPHBsdWdpbnM+CisgICAgICAgICAgICA8cGx1Z2luPgorICAgICAgICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLXNvdXJjZS1wbHVnaW48L2FydGlmYWN0SWQ+CisgICAgICAgICAgICAgICAgPGNvbmZpZ3VyYXRpb24+CisgICAgICAgICAgICAgICAgICAgIDxpbmNsdWRlcz4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxpbmNsdWRlPnByb2d1YXJkL2dyYWRsZS8qKjwvaW5jbHVkZT4KKyAgICAgICAgICAgICAgICAgICAgPC9pbmNsdWRlcz4KKyAgICAgICAgICAgICAgICA8L2NvbmZpZ3VyYXRpb24+CisgICAgICAgICAgICA8L3BsdWdpbj4gICAKKyAgICAgICAgICAgIDxwbHVnaW4+CisgICAgICAgICAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tY29tcGlsZXItcGx1Z2luPC9hcnRpZmFjdElkPgorICAgICAgICAgICAgICAgIDxjb25maWd1cmF0aW9uPgorICAgICAgICAgICAgICAgICAgICA8aW5jbHVkZXM+CisgICAgICAgICAgICAgICAgICAgICAgICA8aW5jbHVkZT5wcm9ndWFyZC9ncmFkbGUvKio8L2luY2x1ZGU+CisgICAgICAgICAgICAgICAgICAgIDwvaW5jbHVkZXM+CisgICAgICAgICAgICAgICAgPC9jb25maWd1cmF0aW9uPgorICAgICAgICAgICAgPC9wbHVnaW4+CisgICAgICAgICAgICA8cGx1Z2luPgorICAgICAgICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLWphci1wbHVnaW48L2FydGlmYWN0SWQ+CisgICAgICAgICAgICAgICAgPGNvbmZpZ3VyYXRpb24+CisgICAgICAgICAgICAgICAgICAgIDxhcmNoaXZlPgorICAgICAgICAgICAgICAgICAgICAgICAgPG1hbmlmZXN0PgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhZGRDbGFzc3BhdGg+dHJ1ZTwvYWRkQ2xhc3NwYXRoPgorICAgICAgICAgICAgICAgICAgICAgICAgPC9tYW5pZmVzdD4KKyAgICAgICAgICAgICAgICAgICAgPC9hcmNoaXZlPgorICAgICAgICAgICAgICAgIDwvY29uZmlndXJhdGlvbj4KKyAgICAgICAgICAgIDwvcGx1Z2luPgorICAgICAgICAgICAgPHBsdWdpbj4KKyAgICAgICAgICAgICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1qYXZhZG9jLXBsdWdpbjwvYXJ0aWZhY3RJZD4KKyAgICAgICAgICAgICAgICA8Y29uZmlndXJhdGlvbj4KKyAgICAgICAgICAgICAgICAgICAgPHN1YnBhY2thZ2VzPnByb2d1YXJkLmdyYWRsZTwvc3VicGFja2FnZXM+CisgICAgICAgICAgICAgICAgPC9jb25maWd1cmF0aW9uPgorICAgICAgICAgICAgPC9wbHVnaW4+CisgICAgICAgIDwvcGx1Z2lucz4KKyAgICA8L2J1aWxkPgorCisgICAgPGRlcGVuZGVuY2llcz4KKyAgICAgICAgPGRlcGVuZGVuY3k+CisgICAgICAgICAgICA8Z3JvdXBJZD4ke3Byb2plY3QuZ3JvdXBJZH08L2dyb3VwSWQ+CisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5wcm9ndWFyZC1iYXNlPC9hcnRpZmFjdElkPgorICAgICAgICAgICAgPHZlcnNpb24+JHtwcm9qZWN0LnZlcnNpb259PC92ZXJzaW9uPgorICAgICAgICA8L2RlcGVuZGVuY3k+CisgICAgICAgIDxkZXBlbmRlbmN5PgorICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLmdyYWRsZTwvZ3JvdXBJZD4KKyAgICAgICAgICAgIDxhcnRpZmFjdElkPmdyYWRsZS1jb3JlPC9hcnRpZmFjdElkPgorICAgICAgICAgICAgPHZlcnNpb24+Mi4yLjE8L3ZlcnNpb24+CisgICAgICAgICAgICA8c2NvcGU+cHJvdmlkZWQ8L3Njb3BlPgorICAgICAgICA8L2RlcGVuZGVuY3k+CisgICAgICAgIDxkZXBlbmRlbmN5PgorICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLmdyYWRsZTwvZ3JvdXBJZD4KKyAgICAgICAgICAgIDxhcnRpZmFjdElkPmdyYWRsZS1iYXNlLXNlcnZpY2VzPC9hcnRpZmFjdElkPgorICAgICAgICAgICAgPHZlcnNpb24+Mi4yLjE8L3ZlcnNpb24+CisgICAgICAgICAgICA8c2NvcGU+cHJvdmlkZWQ8L3Njb3BlPgorICAgICAgICA8L2RlcGVuZGVuY3k+CisgICAgICAgIDxkZXBlbmRlbmN5PgorICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLmdyYWRsZTwvZ3JvdXBJZD4KKyAgICAgICAgICAgIDxhcnRpZmFjdElkPmdyYWRsZS1iYXNlLXNlcnZpY2VzLWdyb292eTwvYXJ0aWZhY3RJZD4KKyAgICAgICAgICAgIDx2ZXJzaW9uPjIuMi4xPC92ZXJzaW9uPgorICAgICAgICAgICAgPHNjb3BlPnByb3ZpZGVkPC9zY29wZT4KKyAgICAgICAgPC9kZXBlbmRlbmN5PgorICAgICAgICA8ZGVwZW5kZW5jeT4KKyAgICAgICAgICAgIDxncm91cElkPm9yZy5jb2RlaGF1cy5ncm9vdnk8L2dyb3VwSWQ+CisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5ncm9vdnktYWxsPC9hcnRpZmFjdElkPgorICAgICAgICAgICAgPHZlcnNpb24+Mi4zLjY8L3ZlcnNpb24+CisgICAgICAgICAgICA8c2NvcGU+cHJvdmlkZWQ8L3Njb3BlPgorICAgICAgICA8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmNpZXM+CisgICAgPHJlcG9zaXRvcmllcz4KKyAgICAgICAgPHJlcG9zaXRvcnk+CisgICAgICAgICAgICA8aWQ+Z3JhZGxlPC9pZD4KKyAgICAgICAgICAgIDx1cmw+aHR0cDovL3JlcG8uZ3JhZGxlLm9yZy9ncmFkbGUvbGlicy1yZWxlYXNlcy1sb2NhbC88L3VybD4KKyAgICAgICAgPC9yZXBvc2l0b3J5PgorICAgIDwvcmVwb3NpdG9yaWVzPgorPC9wcm9qZWN0PgpkaWZmIC0tZ2l0IGEvY29tbW9uL29mZmxpbmUtbTIvbmV0L3NmL3Byb2d1YXJkL3Byb2d1YXJkLXBhcmVudC81LjIuMS9wcm9ndWFyZC1wYXJlbnQtNS4yLjEucG9tIGIvY29tbW9uL29mZmxpbmUtbTIvbmV0L3NmL3Byb2d1YXJkL3Byb2d1YXJkLXBhcmVudC81LjIuMS9wcm9ndWFyZC1wYXJlbnQtNS4yLjEucG9tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEwZmI0ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vb2ZmbGluZS1tMi9uZXQvc2YvcHJvZ3VhcmQvcHJvZ3VhcmQtcGFyZW50LzUuMi4xL3Byb2d1YXJkLXBhcmVudC01LjIuMS5wb20KQEAgLTAsMCArMSwxNjIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cHJvamVjdAorICAgIHhtbG5zPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAiCisgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKKyAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCBodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9tYXZlbi12NF8wXzAueHNkIj4KKyAgICA8bW9kZWxWZXJzaW9uPjQuMC4wPC9tb2RlbFZlcnNpb24+CisKKyAgICA8Z3JvdXBJZD5uZXQuc2YucHJvZ3VhcmQ8L2dyb3VwSWQ+CisgICAgPGFydGlmYWN0SWQ+cHJvZ3VhcmQtcGFyZW50PC9hcnRpZmFjdElkPgorICAgIDx2ZXJzaW9uPjUuMi4xPC92ZXJzaW9uPgorICAgIDxwYWNrYWdpbmc+cG9tPC9wYWNrYWdpbmc+CisgICAgPG5hbWU+WyR7cHJvamVjdC5ncm91cElkfV0gJHtwcm9qZWN0LmFydGlmYWN0SWR9PC9uYW1lPgorICAgIDxkZXNjcmlwdGlvbj5Qcm9HdWFyZCBpcyBhIGZyZWUgSmF2YSBjbGFzcyBmaWxlIHNocmlua2VyLCBvcHRpbWl6ZXIsIG9iZnVzY2F0b3IsIGFuZCBwcmV2ZXJpZmllci48L2Rlc2NyaXB0aW9uPgorICAgIDx1cmw+aHR0cDovL3Byb2d1YXJkLnNvdXJjZWZvcmdlLm5ldC88L3VybD4KKworICAgIDxwcmVyZXF1aXNpdGVzPgorICAgICAgICA8bWF2ZW4+MzwvbWF2ZW4+CisgICAgPC9wcmVyZXF1aXNpdGVzPgorCisgICAgPGRldmVsb3BlcnM+CisgICAgICAgIDxkZXZlbG9wZXI+CisgICAgICAgICAgICA8aWQ+bGFmb3J0dW5lPC9pZD4KKyAgICAgICAgICAgIDxuYW1lPkVyaWMgTGFmb3J0dW5lPC9uYW1lPgorICAgICAgICAgICAgPHVybD5odHRwOi8vd3d3LmxhZm9ydHVuZS5ldS88L3VybD4KKyAgICAgICAgICAgIDxvcmdhbml6YXRpb24+R3VhcmRTcXVhcmU8L29yZ2FuaXphdGlvbj4KKyAgICAgICAgICAgIDxvcmdhbml6YXRpb25Vcmw+aHR0cDovL3d3dy5ndWFyZHNxdWFyZS5jb20vPC9vcmdhbml6YXRpb25Vcmw+CisgICAgICAgICAgICA8cm9sZXM+CisgICAgICAgICAgICAgICAgPHJvbGU+UHJvamVjdCBBZG1pbmlzdHJhdG9yPC9yb2xlPgorICAgICAgICAgICAgICAgIDxyb2xlPkRldmVsb3Blcjwvcm9sZT4KKyAgICAgICAgICAgIDwvcm9sZXM+CisgICAgICAgIDwvZGV2ZWxvcGVyPgorICAgIDwvZGV2ZWxvcGVycz4KKworICAgIDxsaWNlbnNlcz4KKyAgICAgICAgPGxpY2Vuc2U+CisgICAgICAgICAgICA8bmFtZT5HTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgVmVyc2lvbiAyPC9uYW1lPgorICAgICAgICAgICAgPHVybD5odHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTIuMC50eHQ8L3VybD4KKyAgICAgICAgICAgIDxkaXN0cmlidXRpb24+cmVwbzwvZGlzdHJpYnV0aW9uPgorICAgICAgICA8L2xpY2Vuc2U+CisgICAgPC9saWNlbnNlcz4KKworICAgIDxpc3N1ZU1hbmFnZW1lbnQ+CisgICAgICAgIDxzeXN0ZW0+U291cmNlRm9yZ2UubmV0IFRyYWNrZXI8L3N5c3RlbT4KKyAgICAgICAgPHVybD5odHRwOi8vc291cmNlZm9yZ2UubmV0L3AvcHJvZ3VhcmQvYnVncy88L3VybD4KKyAgICA8L2lzc3VlTWFuYWdlbWVudD4KKworICAgIDxzY20+CisgICAgICAgIDx1cmw+aHR0cDovL2hnLmNvZGUuc2YubmV0L3AvcHJvZ3VhcmQvY29kZTwvdXJsPgorICAgICAgICA8Y29ubmVjdGlvbj5zY206aGc6aHR0cDovL2hnLmNvZGUuc2YubmV0L3AvcHJvZ3VhcmQvY29kZTwvY29ubmVjdGlvbj4KKyAgICA8L3NjbT4KKworICAgIDxwcm9wZXJ0aWVzPgorICAgICAgICA8cHJvamVjdC5idWlsZC5zb3VyY2VFbmNvZGluZz5VVEYtODwvcHJvamVjdC5idWlsZC5zb3VyY2VFbmNvZGluZz4KKyAgICA8L3Byb3BlcnRpZXM+CisKKyAgICA8YnVpbGQ+CisgICAgICAgIDxwbHVnaW5NYW5hZ2VtZW50PgorICAgICAgICAgICAgPHBsdWdpbnM+CisgICAgICAgICAgICAgICAgPHBsdWdpbj4KKyAgICAgICAgICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPgorICAgICAgICAgICAgICAgICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1qYXItcGx1Z2luPC9hcnRpZmFjdElkPgorICAgICAgICAgICAgICAgICAgICA8dmVyc2lvbj4yLjQ8L3ZlcnNpb24+CisgICAgICAgICAgICAgICAgPC9wbHVnaW4+CisgICAgICAgICAgICA8L3BsdWdpbnM+CisgICAgICAgIDwvcGx1Z2luTWFuYWdlbWVudD4KKworICAgICAgICA8cGx1Z2lucz4KKyAgICAgICAgICAgIDxwbHVnaW4+CisgICAgICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPgorICAgICAgICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLWNvbXBpbGVyLXBsdWdpbjwvYXJ0aWZhY3RJZD4KKyAgICAgICAgICAgICAgICA8dmVyc2lvbj4yLjMuMjwvdmVyc2lvbj4KKyAgICAgICAgICAgICAgICA8Y29uZmlndXJhdGlvbj4KKyAgICAgICAgICAgICAgICAgICAgPHNvdXJjZT4xLjU8L3NvdXJjZT4KKyAgICAgICAgICAgICAgICAgICAgPHRhcmdldD4xLjU8L3RhcmdldD4KKyAgICAgICAgICAgICAgICA8L2NvbmZpZ3VyYXRpb24+CisgICAgICAgICAgICA8L3BsdWdpbj4KKyAgICAgICAgICAgIDxwbHVnaW4+CisgICAgICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPgorICAgICAgICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLWphdmFkb2MtcGx1Z2luPC9hcnRpZmFjdElkPgorICAgICAgICAgICAgICAgIDx2ZXJzaW9uPjIuOC4xPC92ZXJzaW9uPgorICAgICAgICAgICAgICAgIDxjb25maWd1cmF0aW9uPgorICAgICAgICAgICAgICAgICAgICA8bGlua3M+CisgICAgICAgICAgICAgICAgICAgICAgICA8bGluaz5odHRwOi8vZG93bmxvYWQub3JhY2xlLmNvbS9qYXZhc2UvMS41LjAvZG9jcy9hcGkvPC9saW5rPgorICAgICAgICAgICAgICAgICAgICA8L2xpbmtzPgorICAgICAgICAgICAgICAgICAgICA8cXVpZXQ+dHJ1ZTwvcXVpZXQ+CisgICAgICAgICAgICAgICAgPC9jb25maWd1cmF0aW9uPgorICAgICAgICAgICAgICAgIDxleGVjdXRpb25zPgorICAgICAgICAgICAgICAgICAgICA8ZXhlY3V0aW9uPgorICAgICAgICAgICAgICAgICAgICAgICAgPGlkPmF0dGFjaC1qYXZhZG9jPC9pZD4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxwaGFzZT5wYWNrYWdlPC9waGFzZT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxnb2Fscz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Z29hbD5qYXI8L2dvYWw+CisgICAgICAgICAgICAgICAgICAgICAgICA8L2dvYWxzPgorICAgICAgICAgICAgICAgICAgICA8L2V4ZWN1dGlvbj4KKyAgICAgICAgICAgICAgICA8L2V4ZWN1dGlvbnM+CisgICAgICAgICAgICA8L3BsdWdpbj4KKyAgICAgICAgICAgIDxwbHVnaW4+CisgICAgICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPgorICAgICAgICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLXNvdXJjZS1wbHVnaW48L2FydGlmYWN0SWQ+CisgICAgICAgICAgICAgICAgPHZlcnNpb24+Mi4xLjI8L3ZlcnNpb24+CisgICAgICAgICAgICAgICAgPGV4ZWN1dGlvbnM+CisgICAgICAgICAgICAgICAgICAgIDxleGVjdXRpb24+CisgICAgICAgICAgICAgICAgICAgICAgICA8aWQ+YXR0YWNoLXNvdXJjZXM8L2lkPgorICAgICAgICAgICAgICAgICAgICAgICAgPHBoYXNlPnBhY2thZ2U8L3BoYXNlPgorICAgICAgICAgICAgICAgICAgICAgICAgPGdvYWxzPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnb2FsPmphcjwvZ29hbD4KKyAgICAgICAgICAgICAgICAgICAgICAgIDwvZ29hbHM+CisgICAgICAgICAgICAgICAgICAgIDwvZXhlY3V0aW9uPgorICAgICAgICAgICAgICAgIDwvZXhlY3V0aW9ucz4KKyAgICAgICAgICAgIDwvcGx1Z2luPgorCisgICAgICAgICAgICA8cGx1Z2luPgorICAgICAgICAgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4KKyAgICAgICAgICAgICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1ncGctcGx1Z2luPC9hcnRpZmFjdElkPgorICAgICAgICAgICAgICAgIDx2ZXJzaW9uPjEuMTwvdmVyc2lvbj4KKyAgICAgICAgICAgICAgICA8ZXhlY3V0aW9ucz4KKyAgICAgICAgICAgICAgICAgICAgPGV4ZWN1dGlvbj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxpZD5zaWduLWFydGlmYWN0czwvaWQ+CisgICAgICAgICAgICAgICAgICAgICAgICA8cGhhc2U+dmVyaWZ5PC9waGFzZT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxnb2Fscz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Z29hbD5zaWduPC9nb2FsPgorICAgICAgICAgICAgICAgICAgICAgICAgPC9nb2Fscz4KKyAgICAgICAgICAgICAgICAgICAgPC9leGVjdXRpb24+CisgICAgICAgICAgICAgICAgPC9leGVjdXRpb25zPgorICAgICAgICAgICAgPC9wbHVnaW4+CisgICAgICAgIDwvcGx1Z2lucz4KKyAgICA8L2J1aWxkPgorCisgICAgPGRpc3RyaWJ1dGlvbk1hbmFnZW1lbnQ+CisgICAgICAgIDxyZXBvc2l0b3J5PgorICAgICAgICAgICAgPGlkPnNvbmF0eXBlLW5leHVzLXN0YWdpbmc8L2lkPgorICAgICAgICAgICAgPG5hbWU+TmV4dXMgUmVsZWFzZSBSZXBvc2l0b3J5PC9uYW1lPgorICAgICAgICAgICAgPHVybD5odHRwczovL29zcy5zb25hdHlwZS5vcmcvc2VydmljZS9sb2NhbC9zdGFnaW5nL2RlcGxveS9tYXZlbjI8L3VybD4KKyAgICAgICAgPC9yZXBvc2l0b3J5PgorICAgIDwvZGlzdHJpYnV0aW9uTWFuYWdlbWVudD4KKworICAgIDwhLS0gVG8ga2VlcCBvdXIgcHJvamVjdCBsYXlvdXQgc2ltcGxlLCB3ZSdyZSBub3QgZm9sbG93aW5nIHRoZQorICAgICAgICAgJ29uZSBNYXZlbiB3YXknLiBOb3cgTWF2ZW4gaXMgaW5mbGljdGluZyBldmVuIG1vcmUgcmVkdW5kYW50CisgICAgICAgICByZWR1bmRhbmN5IG9uIHVzLiBXZSdyZSBzdHViYm9ybiB0aG91Z2guIC0tPgorCisgICAgPG1vZHVsZXM+CisgICAgICAgIDxtb2R1bGU+YmFzZTwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlPmd1aTwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlPmFudDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlPmdyYWRsZTwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlPnJldHJhY2U8L21vZHVsZT4KKyAgICA8L21vZHVsZXM+CisKKyAgICA8cHJvZmlsZXM+CisgICAgICAgIDxwcm9maWxlPgorICAgICAgICAgICAgPGlkPl9fd3RrX3BsdWdpbl9idWlsZF9fPC9pZD4KKyAgICAgICAgICAgIDxhY3RpdmF0aW9uPgorICAgICAgICAgICAgICAgIDxmaWxlPgorICAgICAgICAgICAgICAgICAgICA8ZXhpc3RzPiR7d3RrLmhvbWV9L3d0a2xpYi9rZW52LnppcDwvZXhpc3RzPgorICAgICAgICAgICAgICAgIDwvZmlsZT4KKyAgICAgICAgICAgIDwvYWN0aXZhdGlvbj4KKyAgICAgICAgICAgIDxtb2R1bGVzPgorICAgICAgICAgICAgICAgIDxtb2R1bGU+d3RrPC9tb2R1bGU+CisgICAgICAgICAgICA8L21vZHVsZXM+CisgICAgICAgIDwvcHJvZmlsZT4KKyAgICA8L3Byb2ZpbGVzPgorPC9wcm9qZWN0PgpkaWZmIC0tZ2l0IGEvY29tbW9uL29mZmxpbmUtbTIvb3JnL2VjbGlwc2UvamR0L2NvcmUvY29tcGlsZXIvZWNqLzQuNC4yL05PVElDRSBiL2NvbW1vbi9vZmZsaW5lLW0yL29yZy9lY2xpcHNlL2pkdC9jb3JlL2NvbXBpbGVyL2Vjai80LjQuMi9OT1RJQ0UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGQzNDdhYgotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9vZmZsaW5lLW0yL29yZy9lY2xpcHNlL2pkdC9jb3JlL2NvbXBpbGVyL2Vjai80LjQuMi9OT1RJQ0UKQEAgLTAsMCArMSwyMjQgQEAKKworICAgIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgLSB2IDEuMAorCitUSEUgQUNDT01QQU5ZSU5HIFBST0dSQU0gSVMgUFJPVklERUQgVU5ERVIgVEhFIFRFUk1TIE9GIFRISVMgRUNMSVBTRQorUFVCTElDIExJQ0VOU0UgKCJBR1JFRU1FTlQiKS4gQU5ZIFVTRSwgUkVQUk9EVUNUSU9OIE9SIERJU1RSSUJVVElPTiBPRgorVEhFIFBST0dSQU0gQ09OU1RJVFVURVMgUkVDSVBJRU5UJ1MgQUNDRVBUQU5DRSBPRiBUSElTIEFHUkVFTUVOVC4KKworKjEuIERFRklOSVRJT05TKgorCisiQ29udHJpYnV0aW9uIiBtZWFuczoKKworYSkgaW4gdGhlIGNhc2Ugb2YgdGhlIGluaXRpYWwgQ29udHJpYnV0b3IsIHRoZSBpbml0aWFsIGNvZGUgYW5kCitkb2N1bWVudGF0aW9uIGRpc3RyaWJ1dGVkIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBhbmQKKworYikgaW4gdGhlIGNhc2Ugb2YgZWFjaCBzdWJzZXF1ZW50IENvbnRyaWJ1dG9yOgorCitpKSBjaGFuZ2VzIHRvIHRoZSBQcm9ncmFtLCBhbmQKKworaWkpIGFkZGl0aW9ucyB0byB0aGUgUHJvZ3JhbTsKKword2hlcmUgc3VjaCBjaGFuZ2VzIGFuZC9vciBhZGRpdGlvbnMgdG8gdGhlIFByb2dyYW0gb3JpZ2luYXRlIGZyb20gYW5kCithcmUgZGlzdHJpYnV0ZWQgYnkgdGhhdCBwYXJ0aWN1bGFyIENvbnRyaWJ1dG9yLiBBIENvbnRyaWJ1dGlvbgorJ29yaWdpbmF0ZXMnIGZyb20gYSBDb250cmlidXRvciBpZiBpdCB3YXMgYWRkZWQgdG8gdGhlIFByb2dyYW0gYnkgc3VjaAorQ29udHJpYnV0b3IgaXRzZWxmIG9yIGFueW9uZSBhY3Rpbmcgb24gc3VjaCBDb250cmlidXRvcidzIGJlaGFsZi4KK0NvbnRyaWJ1dGlvbnMgZG8gbm90IGluY2x1ZGUgYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtIHdoaWNoOiAoaSkgYXJlCitzZXBhcmF0ZSBtb2R1bGVzIG9mIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIFByb2dyYW0KK3VuZGVyIHRoZWlyIG93biBsaWNlbnNlIGFncmVlbWVudCwgYW5kIChpaSkgYXJlIG5vdCBkZXJpdmF0aXZlIHdvcmtzIG9mCit0aGUgUHJvZ3JhbS4KKworIkNvbnRyaWJ1dG9yIiBtZWFucyBhbnkgcGVyc29uIG9yIGVudGl0eSB0aGF0IGRpc3RyaWJ1dGVzIHRoZSBQcm9ncmFtLgorCisiTGljZW5zZWQgUGF0ZW50cyIgbWVhbiBwYXRlbnQgY2xhaW1zIGxpY2Vuc2FibGUgYnkgYSBDb250cmlidXRvciB3aGljaAorYXJlIG5lY2Vzc2FyaWx5IGluZnJpbmdlZCBieSB0aGUgdXNlIG9yIHNhbGUgb2YgaXRzIENvbnRyaWJ1dGlvbiBhbG9uZQorb3Igd2hlbiBjb21iaW5lZCB3aXRoIHRoZSBQcm9ncmFtLgorCisiUHJvZ3JhbSIgbWVhbnMgdGhlIENvbnRyaWJ1dGlvbnMgZGlzdHJpYnV0ZWQgaW4gYWNjb3JkYW5jZSB3aXRoIHRoaXMKK0FncmVlbWVudC4KKworIlJlY2lwaWVudCIgbWVhbnMgYW55b25lIHdobyByZWNlaXZlcyB0aGUgUHJvZ3JhbSB1bmRlciB0aGlzIEFncmVlbWVudCwKK2luY2x1ZGluZyBhbGwgQ29udHJpYnV0b3JzLgorCisqMi4gR1JBTlQgT0YgUklHSFRTKgorCithKSBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgZWFjaCBDb250cmlidXRvciBoZXJlYnkKK2dyYW50cyBSZWNpcGllbnQgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsIHJveWFsdHktZnJlZSBjb3B5cmlnaHQKK2xpY2Vuc2UgdG8gcmVwcm9kdWNlLCBwcmVwYXJlIGRlcml2YXRpdmUgd29ya3Mgb2YsIHB1YmxpY2x5IGRpc3BsYXksCitwdWJsaWNseSBwZXJmb3JtLCBkaXN0cmlidXRlIGFuZCBzdWJsaWNlbnNlIHRoZSBDb250cmlidXRpb24gb2Ygc3VjaAorQ29udHJpYnV0b3IsIGlmIGFueSwgYW5kIHN1Y2ggZGVyaXZhdGl2ZSB3b3JrcywgaW4gc291cmNlIGNvZGUgYW5kCitvYmplY3QgY29kZSBmb3JtLgorCitiKSBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgZWFjaCBDb250cmlidXRvciBoZXJlYnkKK2dyYW50cyBSZWNpcGllbnQgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsIHJveWFsdHktZnJlZSBwYXRlbnQgbGljZW5zZQordW5kZXIgTGljZW5zZWQgUGF0ZW50cyB0byBtYWtlLCB1c2UsIHNlbGwsIG9mZmVyIHRvIHNlbGwsIGltcG9ydCBhbmQKK290aGVyd2lzZSB0cmFuc2ZlciB0aGUgQ29udHJpYnV0aW9uIG9mIHN1Y2ggQ29udHJpYnV0b3IsIGlmIGFueSwgaW4KK3NvdXJjZSBjb2RlIGFuZCBvYmplY3QgY29kZSBmb3JtLiBUaGlzIHBhdGVudCBsaWNlbnNlIHNoYWxsIGFwcGx5IHRvIHRoZQorY29tYmluYXRpb24gb2YgdGhlIENvbnRyaWJ1dGlvbiBhbmQgdGhlIFByb2dyYW0gaWYsIGF0IHRoZSB0aW1lIHRoZQorQ29udHJpYnV0aW9uIGlzIGFkZGVkIGJ5IHRoZSBDb250cmlidXRvciwgc3VjaCBhZGRpdGlvbiBvZiB0aGUKK0NvbnRyaWJ1dGlvbiBjYXVzZXMgc3VjaCBjb21iaW5hdGlvbiB0byBiZSBjb3ZlcmVkIGJ5IHRoZSBMaWNlbnNlZAorUGF0ZW50cy4gVGhlIHBhdGVudCBsaWNlbnNlIHNoYWxsIG5vdCBhcHBseSB0byBhbnkgb3RoZXIgY29tYmluYXRpb25zCit3aGljaCBpbmNsdWRlIHRoZSBDb250cmlidXRpb24uIE5vIGhhcmR3YXJlIHBlciBzZSBpcyBsaWNlbnNlZCBoZXJldW5kZXIuCisKK2MpIFJlY2lwaWVudCB1bmRlcnN0YW5kcyB0aGF0IGFsdGhvdWdoIGVhY2ggQ29udHJpYnV0b3IgZ3JhbnRzIHRoZQorbGljZW5zZXMgdG8gaXRzIENvbnRyaWJ1dGlvbnMgc2V0IGZvcnRoIGhlcmVpbiwgbm8gYXNzdXJhbmNlcyBhcmUKK3Byb3ZpZGVkIGJ5IGFueSBDb250cmlidXRvciB0aGF0IHRoZSBQcm9ncmFtIGRvZXMgbm90IGluZnJpbmdlIHRoZQorcGF0ZW50IG9yIG90aGVyIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgb2YgYW55IG90aGVyIGVudGl0eS4gRWFjaAorQ29udHJpYnV0b3IgZGlzY2xhaW1zIGFueSBsaWFiaWxpdHkgdG8gUmVjaXBpZW50IGZvciBjbGFpbXMgYnJvdWdodCBieQorYW55IG90aGVyIGVudGl0eSBiYXNlZCBvbiBpbmZyaW5nZW1lbnQgb2YgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cworb3Igb3RoZXJ3aXNlLiBBcyBhIGNvbmRpdGlvbiB0byBleGVyY2lzaW5nIHRoZSByaWdodHMgYW5kIGxpY2Vuc2VzCitncmFudGVkIGhlcmV1bmRlciwgZWFjaCBSZWNpcGllbnQgaGVyZWJ5IGFzc3VtZXMgc29sZSByZXNwb25zaWJpbGl0eSB0bworc2VjdXJlIGFueSBvdGhlciBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIG5lZWRlZCwgaWYgYW55LiBGb3IKK2V4YW1wbGUsIGlmIGEgdGhpcmQgcGFydHkgcGF0ZW50IGxpY2Vuc2UgaXMgcmVxdWlyZWQgdG8gYWxsb3cgUmVjaXBpZW50Cit0byBkaXN0cmlidXRlIHRoZSBQcm9ncmFtLCBpdCBpcyBSZWNpcGllbnQncyByZXNwb25zaWJpbGl0eSB0byBhY3F1aXJlCit0aGF0IGxpY2Vuc2UgYmVmb3JlIGRpc3RyaWJ1dGluZyB0aGUgUHJvZ3JhbS4KKworZCkgRWFjaCBDb250cmlidXRvciByZXByZXNlbnRzIHRoYXQgdG8gaXRzIGtub3dsZWRnZSBpdCBoYXMgc3VmZmljaWVudAorY29weXJpZ2h0IHJpZ2h0cyBpbiBpdHMgQ29udHJpYnV0aW9uLCBpZiBhbnksIHRvIGdyYW50IHRoZSBjb3B5cmlnaHQKK2xpY2Vuc2Ugc2V0IGZvcnRoIGluIHRoaXMgQWdyZWVtZW50LgorCisqMy4gUkVRVUlSRU1FTlRTKgorCitBIENvbnRyaWJ1dG9yIG1heSBjaG9vc2UgdG8gZGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSBpbiBvYmplY3QgY29kZSBmb3JtCit1bmRlciBpdHMgb3duIGxpY2Vuc2UgYWdyZWVtZW50LCBwcm92aWRlZCB0aGF0OgorCithKSBpdCBjb21wbGllcyB3aXRoIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGlzIEFncmVlbWVudDsgYW5kCisKK2IpIGl0cyBsaWNlbnNlIGFncmVlbWVudDoKKworaSkgZWZmZWN0aXZlbHkgZGlzY2xhaW1zIG9uIGJlaGFsZiBvZiBhbGwgQ29udHJpYnV0b3JzIGFsbCB3YXJyYW50aWVzCithbmQgY29uZGl0aW9ucywgZXhwcmVzcyBhbmQgaW1wbGllZCwgaW5jbHVkaW5nIHdhcnJhbnRpZXMgb3IgY29uZGl0aW9ucworb2YgdGl0bGUgYW5kIG5vbi1pbmZyaW5nZW1lbnQsIGFuZCBpbXBsaWVkIHdhcnJhbnRpZXMgb3IgY29uZGl0aW9ucyBvZgorbWVyY2hhbnRhYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZTsKKworaWkpIGVmZmVjdGl2ZWx5IGV4Y2x1ZGVzIG9uIGJlaGFsZiBvZiBhbGwgQ29udHJpYnV0b3JzIGFsbCBsaWFiaWxpdHkgZm9yCitkYW1hZ2VzLCBpbmNsdWRpbmcgZGlyZWN0LCBpbmRpcmVjdCwgc3BlY2lhbCwgaW5jaWRlbnRhbCBhbmQKK2NvbnNlcXVlbnRpYWwgZGFtYWdlcywgc3VjaCBhcyBsb3N0IHByb2ZpdHM7CisKK2lpaSkgc3RhdGVzIHRoYXQgYW55IHByb3Zpc2lvbnMgd2hpY2ggZGlmZmVyIGZyb20gdGhpcyBBZ3JlZW1lbnQgYXJlCitvZmZlcmVkIGJ5IHRoYXQgQ29udHJpYnV0b3IgYWxvbmUgYW5kIG5vdCBieSBhbnkgb3RoZXIgcGFydHk7IGFuZAorCitpdikgc3RhdGVzIHRoYXQgc291cmNlIGNvZGUgZm9yIHRoZSBQcm9ncmFtIGlzIGF2YWlsYWJsZSBmcm9tIHN1Y2gKK0NvbnRyaWJ1dG9yLCBhbmQgaW5mb3JtcyBsaWNlbnNlZXMgaG93IHRvIG9idGFpbiBpdCBpbiBhIHJlYXNvbmFibGUKK21hbm5lciBvbiBvciB0aHJvdWdoIGEgbWVkaXVtIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGV4Y2hhbmdlLgorCitXaGVuIHRoZSBQcm9ncmFtIGlzIG1hZGUgYXZhaWxhYmxlIGluIHNvdXJjZSBjb2RlIGZvcm06CisKK2EpIGl0IG11c3QgYmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhpcyBBZ3JlZW1lbnQ7IGFuZAorCitiKSBhIGNvcHkgb2YgdGhpcyBBZ3JlZW1lbnQgbXVzdCBiZSBpbmNsdWRlZCB3aXRoIGVhY2ggY29weSBvZiB0aGUgUHJvZ3JhbS4KKworQ29udHJpYnV0b3JzIG1heSBub3QgcmVtb3ZlIG9yIGFsdGVyIGFueSBjb3B5cmlnaHQgbm90aWNlcyBjb250YWluZWQKK3dpdGhpbiB0aGUgUHJvZ3JhbS4KKworRWFjaCBDb250cmlidXRvciBtdXN0IGlkZW50aWZ5IGl0c2VsZiBhcyB0aGUgb3JpZ2luYXRvciBvZiBpdHMKK0NvbnRyaWJ1dGlvbiwgaWYgYW55LCBpbiBhIG1hbm5lciB0aGF0IHJlYXNvbmFibHkgYWxsb3dzIHN1YnNlcXVlbnQKK1JlY2lwaWVudHMgdG8gaWRlbnRpZnkgdGhlIG9yaWdpbmF0b3Igb2YgdGhlIENvbnRyaWJ1dGlvbi4KKworKjQuIENPTU1FUkNJQUwgRElTVFJJQlVUSU9OKgorCitDb21tZXJjaWFsIGRpc3RyaWJ1dG9ycyBvZiBzb2Z0d2FyZSBtYXkgYWNjZXB0IGNlcnRhaW4gcmVzcG9uc2liaWxpdGllcword2l0aCByZXNwZWN0IHRvIGVuZCB1c2VycywgYnVzaW5lc3MgcGFydG5lcnMgYW5kIHRoZSBsaWtlLiBXaGlsZSB0aGlzCitsaWNlbnNlIGlzIGludGVuZGVkIHRvIGZhY2lsaXRhdGUgdGhlIGNvbW1lcmNpYWwgdXNlIG9mIHRoZSBQcm9ncmFtLCB0aGUKK0NvbnRyaWJ1dG9yIHdobyBpbmNsdWRlcyB0aGUgUHJvZ3JhbSBpbiBhIGNvbW1lcmNpYWwgcHJvZHVjdCBvZmZlcmluZworc2hvdWxkIGRvIHNvIGluIGEgbWFubmVyIHdoaWNoIGRvZXMgbm90IGNyZWF0ZSBwb3RlbnRpYWwgbGlhYmlsaXR5IGZvcgorb3RoZXIgQ29udHJpYnV0b3JzLiBUaGVyZWZvcmUsIGlmIGEgQ29udHJpYnV0b3IgaW5jbHVkZXMgdGhlIFByb2dyYW0gaW4KK2EgY29tbWVyY2lhbCBwcm9kdWN0IG9mZmVyaW5nLCBzdWNoIENvbnRyaWJ1dG9yICgiQ29tbWVyY2lhbAorQ29udHJpYnV0b3IiKSBoZXJlYnkgYWdyZWVzIHRvIGRlZmVuZCBhbmQgaW5kZW1uaWZ5IGV2ZXJ5IG90aGVyCitDb250cmlidXRvciAoIkluZGVtbmlmaWVkIENvbnRyaWJ1dG9yIikgYWdhaW5zdCBhbnkgbG9zc2VzLCBkYW1hZ2VzIGFuZAorY29zdHMgKGNvbGxlY3RpdmVseSAiTG9zc2VzIikgYXJpc2luZyBmcm9tIGNsYWltcywgbGF3c3VpdHMgYW5kIG90aGVyCitsZWdhbCBhY3Rpb25zIGJyb3VnaHQgYnkgYSB0aGlyZCBwYXJ0eSBhZ2FpbnN0IHRoZSBJbmRlbW5pZmllZAorQ29udHJpYnV0b3IgdG8gdGhlIGV4dGVudCBjYXVzZWQgYnkgdGhlIGFjdHMgb3Igb21pc3Npb25zIG9mIHN1Y2gKK0NvbW1lcmNpYWwgQ29udHJpYnV0b3IgaW4gY29ubmVjdGlvbiB3aXRoIGl0cyBkaXN0cmlidXRpb24gb2YgdGhlCitQcm9ncmFtIGluIGEgY29tbWVyY2lhbCBwcm9kdWN0IG9mZmVyaW5nLiBUaGUgb2JsaWdhdGlvbnMgaW4gdGhpcworc2VjdGlvbiBkbyBub3QgYXBwbHkgdG8gYW55IGNsYWltcyBvciBMb3NzZXMgcmVsYXRpbmcgdG8gYW55IGFjdHVhbCBvcgorYWxsZWdlZCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgaW5mcmluZ2VtZW50LiBJbiBvcmRlciB0byBxdWFsaWZ5LCBhbgorSW5kZW1uaWZpZWQgQ29udHJpYnV0b3IgbXVzdDogYSkgcHJvbXB0bHkgbm90aWZ5IHRoZSBDb21tZXJjaWFsCitDb250cmlidXRvciBpbiB3cml0aW5nIG9mIHN1Y2ggY2xhaW0sIGFuZCBiKSBhbGxvdyB0aGUgQ29tbWVyY2lhbAorQ29udHJpYnV0b3IgdG8gY29udHJvbCwgYW5kIGNvb3BlcmF0ZSB3aXRoIHRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yCitpbiwgdGhlIGRlZmVuc2UgYW5kIGFueSByZWxhdGVkIHNldHRsZW1lbnQgbmVnb3RpYXRpb25zLiBUaGUgSW5kZW1uaWZpZWQKK0NvbnRyaWJ1dG9yIG1heSBwYXJ0aWNpcGF0ZSBpbiBhbnkgc3VjaCBjbGFpbSBhdCBpdHMgb3duIGV4cGVuc2UuCisKK0ZvciBleGFtcGxlLCBhIENvbnRyaWJ1dG9yIG1pZ2h0IGluY2x1ZGUgdGhlIFByb2dyYW0gaW4gYSBjb21tZXJjaWFsCitwcm9kdWN0IG9mZmVyaW5nLCBQcm9kdWN0IFguIFRoYXQgQ29udHJpYnV0b3IgaXMgdGhlbiBhIENvbW1lcmNpYWwKK0NvbnRyaWJ1dG9yLiBJZiB0aGF0IENvbW1lcmNpYWwgQ29udHJpYnV0b3IgdGhlbiBtYWtlcyBwZXJmb3JtYW5jZQorY2xhaW1zLCBvciBvZmZlcnMgd2FycmFudGllcyByZWxhdGVkIHRvIFByb2R1Y3QgWCwgdGhvc2UgcGVyZm9ybWFuY2UKK2NsYWltcyBhbmQgd2FycmFudGllcyBhcmUgc3VjaCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yJ3MgcmVzcG9uc2liaWxpdHkKK2Fsb25lLiBVbmRlciB0aGlzIHNlY3Rpb24sIHRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIHdvdWxkIGhhdmUgdG8KK2RlZmVuZCBjbGFpbXMgYWdhaW5zdCB0aGUgb3RoZXIgQ29udHJpYnV0b3JzIHJlbGF0ZWQgdG8gdGhvc2UKK3BlcmZvcm1hbmNlIGNsYWltcyBhbmQgd2FycmFudGllcywgYW5kIGlmIGEgY291cnQgcmVxdWlyZXMgYW55IG90aGVyCitDb250cmlidXRvciB0byBwYXkgYW55IGRhbWFnZXMgYXMgYSByZXN1bHQsIHRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yCittdXN0IHBheSB0aG9zZSBkYW1hZ2VzLgorCisqNS4gTk8gV0FSUkFOVFkqCisKK0VYQ0VQVCBBUyBFWFBSRVNTTFkgU0VUIEZPUlRIIElOIFRISVMgQUdSRUVNRU5ULCBUSEUgUFJPR1JBTSBJUyBQUk9WSURFRAorT04gQU4gIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsCitFSVRIRVIgRVhQUkVTUyBPUiBJTVBMSUVEIElOQ0xVRElORywgV0lUSE9VVCBMSU1JVEFUSU9OLCBBTlkgV0FSUkFOVElFUworT1IgQ09ORElUSU9OUyBPRiBUSVRMRSwgTk9OLUlORlJJTkdFTUVOVCwgTUVSQ0hBTlRBQklMSVRZIE9SIEZJVE5FU1MgRk9SCitBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gRWFjaCBSZWNpcGllbnQgaXMgc29sZWx5IHJlc3BvbnNpYmxlIGZvcgorZGV0ZXJtaW5pbmcgdGhlIGFwcHJvcHJpYXRlbmVzcyBvZiB1c2luZyBhbmQgZGlzdHJpYnV0aW5nIHRoZSBQcm9ncmFtCithbmQgYXNzdW1lcyBhbGwgcmlza3MgYXNzb2NpYXRlZCB3aXRoIGl0cyBleGVyY2lzZSBvZiByaWdodHMgdW5kZXIgdGhpcworQWdyZWVtZW50ICwgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byB0aGUgcmlza3MgYW5kIGNvc3RzIG9mIHByb2dyYW0KK2Vycm9ycywgY29tcGxpYW5jZSB3aXRoIGFwcGxpY2FibGUgbGF3cywgZGFtYWdlIHRvIG9yIGxvc3Mgb2YgZGF0YSwKK3Byb2dyYW1zIG9yIGVxdWlwbWVudCwgYW5kIHVuYXZhaWxhYmlsaXR5IG9yIGludGVycnVwdGlvbiBvZiBvcGVyYXRpb25zLgorCisqNi4gRElTQ0xBSU1FUiBPRiBMSUFCSUxJVFkqCisKK0VYQ0VQVCBBUyBFWFBSRVNTTFkgU0VUIEZPUlRIIElOIFRISVMgQUdSRUVNRU5ULCBORUlUSEVSIFJFQ0lQSUVOVCBOT1IKK0FOWSBDT05UUklCVVRPUlMgU0hBTEwgSEFWRSBBTlkgTElBQklMSVRZIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKK0lOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcKK1dJVEhPVVQgTElNSVRBVElPTiBMT1NUIFBST0ZJVFMpLCBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRgorTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcKK05FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT1IKK0RJU1RSSUJVVElPTiBPRiBUSEUgUFJPR1JBTSBPUiBUSEUgRVhFUkNJU0UgT0YgQU5ZIFJJR0hUUyBHUkFOVEVECitIRVJFVU5ERVIsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0VTLgorCisqNy4gR0VORVJBTCoKKworSWYgYW55IHByb3Zpc2lvbiBvZiB0aGlzIEFncmVlbWVudCBpcyBpbnZhbGlkIG9yIHVuZW5mb3JjZWFibGUgdW5kZXIKK2FwcGxpY2FibGUgbGF3LCBpdCBzaGFsbCBub3QgYWZmZWN0IHRoZSB2YWxpZGl0eSBvciBlbmZvcmNlYWJpbGl0eSBvZgordGhlIHJlbWFpbmRlciBvZiB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGFuZCB3aXRob3V0IGZ1cnRoZXIgYWN0aW9uCitieSB0aGUgcGFydGllcyBoZXJldG8sIHN1Y2ggcHJvdmlzaW9uIHNoYWxsIGJlIHJlZm9ybWVkIHRvIHRoZSBtaW5pbXVtCitleHRlbnQgbmVjZXNzYXJ5IHRvIG1ha2Ugc3VjaCBwcm92aXNpb24gdmFsaWQgYW5kIGVuZm9yY2VhYmxlLgorCitJZiBSZWNpcGllbnQgaW5zdGl0dXRlcyBwYXRlbnQgbGl0aWdhdGlvbiBhZ2FpbnN0IGFueSBlbnRpdHkgKGluY2x1ZGluZworYSBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYSBsYXdzdWl0KSBhbGxlZ2luZyB0aGF0IHRoZSBQcm9ncmFtCitpdHNlbGYgKGV4Y2x1ZGluZyBjb21iaW5hdGlvbnMgb2YgdGhlIFByb2dyYW0gd2l0aCBvdGhlciBzb2Z0d2FyZSBvcgoraGFyZHdhcmUpIGluZnJpbmdlcyBzdWNoIFJlY2lwaWVudCdzIHBhdGVudChzKSwgdGhlbiBzdWNoIFJlY2lwaWVudCdzCityaWdodHMgZ3JhbnRlZCB1bmRlciBTZWN0aW9uIDIoYikgc2hhbGwgdGVybWluYXRlIGFzIG9mIHRoZSBkYXRlIHN1Y2gKK2xpdGlnYXRpb24gaXMgZmlsZWQuCisKK0FsbCBSZWNpcGllbnQncyByaWdodHMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgc2hhbGwgdGVybWluYXRlIGlmIGl0IGZhaWxzCit0byBjb21wbHkgd2l0aCBhbnkgb2YgdGhlIG1hdGVyaWFsIHRlcm1zIG9yIGNvbmRpdGlvbnMgb2YgdGhpcyBBZ3JlZW1lbnQKK2FuZCBkb2VzIG5vdCBjdXJlIHN1Y2ggZmFpbHVyZSBpbiBhIHJlYXNvbmFibGUgcGVyaW9kIG9mIHRpbWUgYWZ0ZXIKK2JlY29taW5nIGF3YXJlIG9mIHN1Y2ggbm9uY29tcGxpYW5jZS4gSWYgYWxsIFJlY2lwaWVudCdzIHJpZ2h0cyB1bmRlcgordGhpcyBBZ3JlZW1lbnQgdGVybWluYXRlLCBSZWNpcGllbnQgYWdyZWVzIHRvIGNlYXNlIHVzZSBhbmQgZGlzdHJpYnV0aW9uCitvZiB0aGUgUHJvZ3JhbSBhcyBzb29uIGFzIHJlYXNvbmFibHkgcHJhY3RpY2FibGUuIEhvd2V2ZXIsIFJlY2lwaWVudCdzCitvYmxpZ2F0aW9ucyB1bmRlciB0aGlzIEFncmVlbWVudCBhbmQgYW55IGxpY2Vuc2VzIGdyYW50ZWQgYnkgUmVjaXBpZW50CityZWxhdGluZyB0byB0aGUgUHJvZ3JhbSBzaGFsbCBjb250aW51ZSBhbmQgc3Vydml2ZS4KKworRXZlcnlvbmUgaXMgcGVybWl0dGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgY29waWVzIG9mIHRoaXMgQWdyZWVtZW50LAorYnV0IGluIG9yZGVyIHRvIGF2b2lkIGluY29uc2lzdGVuY3kgdGhlIEFncmVlbWVudCBpcyBjb3B5cmlnaHRlZCBhbmQgbWF5Citvbmx5IGJlIG1vZGlmaWVkIGluIHRoZSBmb2xsb3dpbmcgbWFubmVyLiBUaGUgQWdyZWVtZW50IFN0ZXdhcmQgcmVzZXJ2ZXMKK3RoZSByaWdodCB0byBwdWJsaXNoIG5ldyB2ZXJzaW9ucyAoaW5jbHVkaW5nIHJldmlzaW9ucykgb2YgdGhpcworQWdyZWVtZW50IGZyb20gdGltZSB0byB0aW1lLiBObyBvbmUgb3RoZXIgdGhhbiB0aGUgQWdyZWVtZW50IFN0ZXdhcmQgaGFzCit0aGUgcmlnaHQgdG8gbW9kaWZ5IHRoaXMgQWdyZWVtZW50LiBUaGUgRWNsaXBzZSBGb3VuZGF0aW9uIGlzIHRoZQoraW5pdGlhbCBBZ3JlZW1lbnQgU3Rld2FyZC4gVGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYXkgYXNzaWduIHRoZQorcmVzcG9uc2liaWxpdHkgdG8gc2VydmUgYXMgdGhlIEFncmVlbWVudCBTdGV3YXJkIHRvIGEgc3VpdGFibGUgc2VwYXJhdGUKK2VudGl0eS4gRWFjaCBuZXcgdmVyc2lvbiBvZiB0aGUgQWdyZWVtZW50IHdpbGwgYmUgZ2l2ZW4gYSBkaXN0aW5ndWlzaGluZwordmVyc2lvbiBudW1iZXIuIFRoZSBQcm9ncmFtIChpbmNsdWRpbmcgQ29udHJpYnV0aW9ucykgbWF5IGFsd2F5cyBiZQorZGlzdHJpYnV0ZWQgc3ViamVjdCB0byB0aGUgdmVyc2lvbiBvZiB0aGUgQWdyZWVtZW50IHVuZGVyIHdoaWNoIGl0IHdhcworcmVjZWl2ZWQuIEluIGFkZGl0aW9uLCBhZnRlciBhIG5ldyB2ZXJzaW9uIG9mIHRoZSBBZ3JlZW1lbnQgaXMKK3B1Ymxpc2hlZCwgQ29udHJpYnV0b3IgbWF5IGVsZWN0IHRvIGRpc3RyaWJ1dGUgdGhlIFByb2dyYW0gKGluY2x1ZGluZworaXRzIENvbnRyaWJ1dGlvbnMpIHVuZGVyIHRoZSBuZXcgdmVyc2lvbi4gRXhjZXB0IGFzIGV4cHJlc3NseSBzdGF0ZWQgaW4KK1NlY3Rpb25zIDIoYSkgYW5kIDIoYikgYWJvdmUsIFJlY2lwaWVudCByZWNlaXZlcyBubyByaWdodHMgb3IgbGljZW5zZXMKK3RvIHRoZSBpbnRlbGxlY3R1YWwgcHJvcGVydHkgb2YgYW55IENvbnRyaWJ1dG9yIHVuZGVyIHRoaXMgQWdyZWVtZW50LAord2hldGhlciBleHByZXNzbHksIGJ5IGltcGxpY2F0aW9uLCBlc3RvcHBlbCBvciBvdGhlcndpc2UuIEFsbCByaWdodHMgaW4KK3RoZSBQcm9ncmFtIG5vdCBleHByZXNzbHkgZ3JhbnRlZCB1bmRlciB0aGlzIEFncmVlbWVudCBhcmUgcmVzZXJ2ZWQuCisKK1RoaXMgQWdyZWVtZW50IGlzIGdvdmVybmVkIGJ5IHRoZSBsYXdzIG9mIHRoZSBTdGF0ZSBvZiBOZXcgWW9yayBhbmQgdGhlCitpbnRlbGxlY3R1YWwgcHJvcGVydHkgbGF3cyBvZiB0aGUgVW5pdGVkIFN0YXRlcyBvZiBBbWVyaWNhLiBObyBwYXJ0eSB0bwordGhpcyBBZ3JlZW1lbnQgd2lsbCBicmluZyBhIGxlZ2FsIGFjdGlvbiB1bmRlciB0aGlzIEFncmVlbWVudCBtb3JlIHRoYW4KK29uZSB5ZWFyIGFmdGVyIHRoZSBjYXVzZSBvZiBhY3Rpb24gYXJvc2UuIEVhY2ggcGFydHkgd2FpdmVzIGl0cyByaWdodHMKK3RvIGEganVyeSB0cmlhbCBpbiBhbnkgcmVzdWx0aW5nIGxpdGlnYXRpb24uCisKZGlmZiAtLWdpdCBhL2NvbW1vbi9vZmZsaW5lLW0yL29yZy9lY2xpcHNlL2pkdC9jb3JlL2NvbXBpbGVyL2Vjai80LjQuMi9lY2otNC40LjItc291cmNlcy5qYXIgYi9jb21tb24vb2ZmbGluZS1tMi9vcmcvZWNsaXBzZS9qZHQvY29yZS9jb21waWxlci9lY2ovNC40LjIvZWNqLTQuNC4yLXNvdXJjZXMuamFyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ1ZDgwYWYKLS0tIC9kZXYvbnVsbAorKysgYi9jb21tb24vb2ZmbGluZS1tMi9vcmcvZWNsaXBzZS9qZHQvY29yZS9jb21waWxlci9lY2ovNC40LjIvZWNqLTQuNC4yLXNvdXJjZXMuamFyCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2NvbW1vbi9vZmZsaW5lLW0yL29yZy9lY2xpcHNlL2pkdC9jb3JlL2NvbXBpbGVyL2Vjai80LjQuMi9lY2otNC40LjIuamFyIGIvY29tbW9uL29mZmxpbmUtbTIvb3JnL2VjbGlwc2UvamR0L2NvcmUvY29tcGlsZXIvZWNqLzQuNC4yL2Vjai00LjQuMi5qYXIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDk0MTFiMwotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9vZmZsaW5lLW0yL29yZy9lY2xpcHNlL2pkdC9jb3JlL2NvbXBpbGVyL2Vjai80LjQuMi9lY2otNC40LjIuamFyCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2NvbW1vbi9vZmZsaW5lLW0yL29yZy9lY2xpcHNlL2pkdC9jb3JlL2NvbXBpbGVyL2Vjai80LjQuMi9lY2otNC40LjIucG9tIGIvY29tbW9uL29mZmxpbmUtbTIvb3JnL2VjbGlwc2UvamR0L2NvcmUvY29tcGlsZXIvZWNqLzQuNC4yL2Vjai00LjQuMi5wb20KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzc4MmI2ZgotLS0gL2Rldi9udWxsCisrKyBiL2NvbW1vbi9vZmZsaW5lLW0yL29yZy9lY2xpcHNlL2pkdC9jb3JlL2NvbXBpbGVyL2Vjai80LjQuMi9lY2otNC40LjIucG9tCkBAIC0wLDAgKzEsNjIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cHJvamVjdCB4bWxucz0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCBodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9tYXZlbi12NF8wXzAueHNkIj4KKwk8IS0tIAorICAgICAgICAgICBPcmlnaW5hbGx5IGRvd25sb2FkZWQgaGVyZToKKyAgICAgICAgICAgaHR0cDovL2Rvd25sb2FkLmVjbGlwc2Uub3JnL2VjbGlwc2UvZG93bmxvYWRzL2Ryb3BzNC9SLTQuNC0yMDE0MDYwNjEyMTUvI0pEVENPUkUgCisJLS0+CisJPG1vZGVsVmVyc2lvbj40LjAuMDwvbW9kZWxWZXJzaW9uPgorCTxncm91cElkPm9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyPC9ncm91cElkPgorCTxhcnRpZmFjdElkPmVjajwvYXJ0aWZhY3RJZD4KKwk8dmVyc2lvbj40LjQuMjwvdmVyc2lvbj4KKwk8cGFja2FnaW5nPmphcjwvcGFja2FnaW5nPgorCTxuYW1lPkVjbGlwc2UgRUNKPC9uYW1lPgorCTxkZXNjcmlwdGlvbj5FY2xpcHNlIEpEVCBDb3JlIEJhdGNoIENvbXBpbGVyPC9kZXNjcmlwdGlvbj4KKwk8dXJsPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvamR0LzwvdXJsPgorCTxwcm9wZXJ0aWVzPgorCQk8cHJvamVjdC5idWlsZC5zb3VyY2VFbmNvZGluZz5VVEYtODwvcHJvamVjdC5idWlsZC5zb3VyY2VFbmNvZGluZz4KKwkJPHByb2plY3QucmVwb3J0aW5nLm91dHB1dEVuY29kaW5nPlVURi04PC9wcm9qZWN0LnJlcG9ydGluZy5vdXRwdXRFbmNvZGluZz4KKwk8L3Byb3BlcnRpZXM+CisJPGxpY2Vuc2VzPgorCQk8bGljZW5zZT4KKwkJCTxuYW1lPkVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMDwvbmFtZT4KKwkJCTx1cmw+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vcmcvZG9jdW1lbnRzL2VwbC12MTAucGhwPC91cmw+CisJCQk8ZGlzdHJpYnV0aW9uPnJlcG88L2Rpc3RyaWJ1dGlvbj4KKwkJPC9saWNlbnNlPgorCTwvbGljZW5zZXM+CisJPHNjbT4KKwkJPHVybD5odHRwOi8vZGV2LmVjbGlwc2Uub3JnL3ZpZXdjdnMvaW5kZXguY2dpL29yZy5lY2xpcHNlLmpkdC5jb3JlLzwvdXJsPgorCQk8Y29ubmVjdGlvbj46cHNlcnZlcjphbm9ueW1vdXNAZGV2LmVjbGlwc2Uub3JnOi9jdnNyb290L2VjbGlwc2U8L2Nvbm5lY3Rpb24+CisJPC9zY20+CisJPGRldmVsb3BlcnM+CisJCTwhLS0gSSBkaWRuJ3QgZGV2ZWxvcCBFQ0osIGJ1dCB0aGUgQ2VudHJhbCBTeW5jIFJlcXVpcmVtZW50cyBtYW5kYXRlIGEgZGV2ZWxvcGVyIGluIHRoZSBQT006CisJCQlodHRwczovL2RvY3Muc29uYXR5cGUub3JnL2Rpc3BsYXkvUmVwb3NpdG9yeS9DZW50cmFsK1N5bmMrUmVxdWlyZW1lbnRzCisJCS0tPgorCQk8ZGV2ZWxvcGVyPgorCQkJPG5hbWU+UmFscGggU2NoYWVyPC9uYW1lPgorCQkJPGVtYWlsPnJhbHBoc2NoYWVyQGdtYWlsLmNvbTwvZW1haWw+CisJCTwvZGV2ZWxvcGVyPgorCTwvZGV2ZWxvcGVycz4KKwkKKwk8ZGVwZW5kZW5jaWVzPgorCQk8ZGVwZW5kZW5jeT4KKwkJCTxncm91cElkPm9yZy5hcGFjaGUuYW50PC9ncm91cElkPgorCQkJPGFydGlmYWN0SWQ+YW50PC9hcnRpZmFjdElkPgorCQkJPHZlcnNpb24+MS45LjQ8L3ZlcnNpb24+CisJCQk8b3B0aW9uYWw+dHJ1ZTwvb3B0aW9uYWw+CisJCTwvZGVwZW5kZW5jeT4KKwk8L2RlcGVuZGVuY2llcz4JCisJCisJPGJ1aWxkPgorICAgICAgPHBsdWdpbnM+CisgICAgICAgIDxwbHVnaW4+CisgICAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPgorICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLWphdmFkb2MtcGx1Z2luPC9hcnRpZmFjdElkPgorCQkgIDx2ZXJzaW9uPjIuMTAuMTwvdmVyc2lvbj4KKyAgICAgICAgICA8Y29uZmlndXJhdGlvbj4KKyAgICAgICAgICAgIDxhZGRpdGlvbmFscGFyYW0+LVhkb2NsaW50Om5vbmU8L2FkZGl0aW9uYWxwYXJhbT4KKyAgICAgICAgICA8L2NvbmZpZ3VyYXRpb24+CisgICAgICAgIDwvcGx1Z2luPgorICAgICAgPC9wbHVnaW5zPgkKKwk8L2J1aWxkPgorCQorPC9wcm9qZWN0Pgo=