ZGlmZiAtLWdpdCBhL0FOTk9VTkNFIGIvQU5OT1VOQ0UKaW5kZXggNWNiNzE2MC4uNmIyZmFmMiAxMDA2NDQKLS0tIGEvQU5OT1VOQ0UKKysrIGIvQU5OT1VOQ0UKQEAgLTEsMTQgKzEsMTIgQEAKLVRoaXMgaXMgcmVsZWFzZSAyMDA0MDUwNSBvZiBXaW5lLCBhIGZyZWUgaW1wbGVtZW50YXRpb24gb2YgV2luZG93cyBvbgorVGhpcyBpcyByZWxlYXNlIDIwMDQwNjE1IG9mIFdpbmUsIGEgZnJlZSBpbXBsZW1lbnRhdGlvbiBvZiBXaW5kb3dzIG9uCiBVbml4LiAgVGhpcyBpcyBzdGlsbCBhIGRldmVsb3BlcnMgb25seSByZWxlYXNlLiAgVGhlcmUgYXJlIG1hbnkgYnVncwogYW5kIHVuaW1wbGVtZW50ZWQgZmVhdHVyZXMuICBNb3N0IGFwcGxpY2F0aW9ucyBzdGlsbCBkbyBub3Qgd29yawogY29ycmVjdGx5LgogCi1XSEFUJ1MgTkVXIHdpdGggV2luZS0yMDA0MDUwNTogKHNlZSBDaGFuZ2VMb2cgZm9yIGRldGFpbHMpCi0gICAgICAgIC0gTWFueSBtb3JlIGZpbGVzeXN0ZW0gaW1wcm92ZW1lbnRzLCBpbmNsdWRpbmcgYXV0b2RldGVjdGlvbgotICAgICAgICAgIG9mIGRyaXZlIHR5cGVzIGFuZCBkZXZpY2VzLCBhbmQgc3VwcG9ydCBmb3IgZWRpdGluZyB0aGUgZHJpdmUKLSAgICAgICAgICBjb25maWd1cmF0aW9uIHdpdGggd2luZWNmZy4KLSAgICAgICAgLSBNYW55IERpcmVjdDNEIGltcHJvdmVtZW50cy4KLSAgICAgICAgLSBTZXZlcmFsIGZpeGVzIHRvIHRoZSB2YXJpb3VzIHNvdW5kIGRyaXZlcnMuCitXSEFUJ1MgTkVXIHdpdGggV2luZS0yMDA0MDYxNTogKHNlZSBDaGFuZ2VMb2cgZm9yIGRldGFpbHMpCisgICAgICAgIC0gTWFqb3Igd2luZWRiZyByZXdyaXRlIHVzaW5nIHRoZSBkYmdoZWxwIGRsbC4KKyAgICAgICAgLSBOZXcgV2luZSBwcmVsb2FkZXIgdG8gcmVzZXJ2ZSBtZW1vcnkgYXJlYXMgYXQgc3RhcnR1cC4KKyAgICAgICAgLSBNYW55IGltcHJvdmVtZW50cyB0byB0aGUgYXVkaW8gc3VwcG9ydC4KICAgICAgICAgLSBMb3RzIG9mIGJ1ZyBmaXhlcy4KIAogU2VlIHRoZSBSRUFETUUgZmlsZSBpbiB0aGUgZGlzdHJpYnV0aW9uIGZvciBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zLgpAQCAtMTcsOCArMTUsOCBAQAogdGhlIHJlbGVhc2UgaXMgYXZhaWxhYmxlIGF0IHRoZSBmdHAgc2l0ZXMuICBUaGUgc291cmNlcyB3aWxsIGJlIGF2YWlsYWJsZQogZnJvbSB0aGUgZm9sbG93aW5nIGxvY2F0aW9uczoKIAotICBodHRwOi8vd3d3LmliaWJsaW8ub3JnL3B1Yi9MaW51eC9BTFBIQS93aW5lL2RldmVsb3BtZW50L1dpbmUtMjAwNDA1MDUudGFyLmd6Ci0gIGh0dHA6Ly9wcmRvd25sb2Fkcy5zb3VyY2Vmb3JnZS5uZXQvd2luZS9XaW5lLTIwMDQwNTA1LnRhci5negorICBodHRwOi8vd3d3LmliaWJsaW8ub3JnL3B1Yi9MaW51eC9BTFBIQS93aW5lL2RldmVsb3BtZW50L1dpbmUtMjAwNDA2MTUudGFyLmd6CisgIGh0dHA6Ly9wcmRvd25sb2Fkcy5zb3VyY2Vmb3JnZS5uZXQvd2luZS9XaW5lLTIwMDQwNjE1LnRhci5negogCiBJdCBzaG91bGQgYWxzbyBiZSBhdmFpbGFibGUgZnJvbSBhbnkgb3RoZXIgc2l0ZSB0aGF0IG1pcnJvcnMgaWJpYmxpby5vcmcuCiBUaGVzZSBsb2NhdGlvbnMgYWxzbyBob2xkIHByZS1idWlsdCBkb2N1bWVudGF0aW9uIHBhY2thZ2VzIGluIHZhcmlvdXMKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBlOGZkMzRiLi40YWUyMmVmIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDQgKzEsMTU3NiBAQAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMjAwNC0wNi0xNSAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogQVVUSE9SUzogVXBkYXRlZCBhdXRob3JzIGxpc3QuCisKKwkqIHByb2dyYW1zL3dpbmV0ZXN0Ly5jdnNpZ25vcmUsIHByb2dyYW1zL3dpbmV0ZXN0L01ha2VmaWxlLmluLAorCSAgcHJvZ3JhbXMvd2luZXRlc3QvUkVBRE1FLCBwcm9ncmFtcy93aW5ldGVzdC9kaXN0LnJjLAorCSAgcHJvZ3JhbXMvd2luZXRlc3QvZ3VpLmMsIHByb2dyYW1zL3dpbmV0ZXN0L2d1aS5yYywKKwkgIHByb2dyYW1zL3dpbmV0ZXN0L2d1aXJlcy5oLCBwcm9ncmFtcy93aW5ldGVzdC9tYWluLmMsCisJICBwcm9ncmFtcy93aW5ldGVzdC9tYWtldGVzdCwgcHJvZ3JhbXMvd2luZXRlc3QvcmVzb3VyY2UuaCwKKwkgIHByb2dyYW1zL3dpbmV0ZXN0L3NlbmQuYywgcHJvZ3JhbXMvd2luZXRlc3QvdXRpbC5jLAorCSAgcHJvZ3JhbXMvd2luZXRlc3Qvd2luZXRlc3QuaCwgcHJvZ3JhbXMvd2luZXRlc3Qvd2luZXRlc3QucmM6CisJRmVyZW5jIFdhZ25lciA8d2ZlcmlAYWZhdmFudC5lbHRlLmh1PgorCS0gUmVzb3VyY2Ugc2NyaXB0IHJlc3RydWN0dXJpbmcuCisJLSBCdWlsZCBpbmZvIGV0IGFsLiBpcyBnaXZlbiBieSBmaWxlcyBpbnN0ZWFkIG9mIGVudi4gdmFycy4KKwktIFN0b3JlIHRoYXQgaW5mb3JtYXRpb24gaW4gcmVzb3VyY2VzLgorCS0gTWFrZSB0aGUgbWFpbiB3aW5kb3dzIG5vdCByZXNpemVhYmxlLgorCS0gSW5zaXN0IG9uIGNyZWF0aW5nIGEgZnJlc2ggbG9nIGZpbGUuCisJLSBJbnRyb2R1Y2UgdGhlIG1ha2UgZGlzdCB0YXJnZXQuCisKKwkqIGxpYnMvd2luZS9jb25maWcuYywgbG9hZGVyL3ByZWxvYWRlci5jOgorCUFkZCB0aGUgcHJlbG9hZGVyIGl0c2VsZiBhcyBhcmd2WzBdIGFuZCByZW1vdmUgaXQgYWdhaW4gYmVmb3JlIHJ1bm5pbmcKKwl0aGUgcmVhbCBsb2FkZXIsIHRoaXMgd2F5IHRoZSBwcyBvdXRwdXQgbWFrZXMgbW9yZSBzZW5zZS4KKworCSogZGxscy9kbWxvYWRlci9sb2FkZXIuYywgZGxscy9rZXJuZWwvdGVzdHMvbG9jYWxlLmMsCisJICBkbGxzL21zaS9zdHJpbmcuYywgbG9hZGVyL21haW4uaDoKKwlGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAZnJlZS5mcj4KKwlBc3NvcnRlZCBzcGVsbGluZyBhbmQgY2FzZSBmaXhlcy4KKworCSogZGxscy93aW5tbS93aW5lb3NzL2F1ZGlvLmM6IEZyYW5jb2lzIEdvdWdldCA8ZmdvdWdldEBjb2Rld2VhdmVycy5jb20+CisJRml4IHRoZSBjaGVjayBmb3IgU05EQ1RMX0RTUF9HRVRDQVBTIHNvIHRoYXQgaXQgaXMgY29tcGxpYW50IHdpdGggdGhlCisJT1NTIHNwZWNpZmljYXRpb24uCisJT25seSB0ZXN0IHRoZSBkaWZmZXJlbnQgZm9ybWF0cyBpZiB0cmFjaW5nIGlzIG9uLgorCisJKiBkbGxzL3dpbnNwb29sL3Rlc3RzL2luZm8uYzoKKwlTdGVmYW4gTGVpY2h0ZXIgPFN0ZWZhbi5MZWljaHRlckBjYW1MaW5lLmNvbT4KKwlGaXggdGhlIHRlc3RzIG9mIEdldERlZmF1bHRQcmludGVyQSBvbiB3aW4yayBpZiBubyBkZWZhdWx0IHByaW50ZXIgaXMKKwljb25maWd1cmVkLgorCisJKiBkbGxzL3dpbm1tL3dpbmVhcnRzL2F1ZGlvLmM6CisJRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGNvZGV3ZWF2ZXJzLmNvbT4KKwlDaGFuZ2UgdGhlIEFSVFNfSW5pdCgpIGVycm9yIG1lc3NhZ2UgZnJvbSBhbiBFUlIoKSB0byBhIFdBUk4oKSBzaW5jZQorCWl0IGNhbiBoYXBwZW4gaW4gcGVyZmVjdGx5IG5vcm1hbCBjb25kaXRpb25zLgorCisJKiBpbmNsdWRlL2RwYWRkci5oLCBpbmNsdWRlL3V4dGhlbWUuaDoKKwlGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAZnJlZS5mcj4KKwlEb24ndCB1c2UgVW5pY29kZSBzdHJpbmcgbGl0ZXJhbHMgdW5sZXNzIHdlIHNwZWNpZmljYWxseSBrbm93IHRoZXkgZG8KKwl3aGF0IHdlIHdhbnQgdG8uCisKKwkqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkbGxzL3BzYXBpL01ha2VmaWxlLmluLAorCSAgZGxscy9wc2FwaS9wc2FwaV9tYWluLmMsIGRsbHMvcHNhcGkvdGVzdHMvLmN2c2lnbm9yZSwKKwkgIGRsbHMvcHNhcGkvdGVzdHMvTWFrZWZpbGUuaW4sIGRsbHMvcHNhcGkvdGVzdHMvbW9kdWxlLmM6CisJU3RlZmFuIExlaWNodGVyIDxTdGVmYW4uTGVpY2h0ZXJAY2FtTGluZS5jb20+CisJTW92ZWQgaW1wbGVtZW50YXRpb24gb2YgR2V0TW9kdWxlQmFzZU5hbWUgZnJvbSBhc2NpaSB0byB1bmljb2RlLCBhZGRlZAorCXNvbWUgdGVzdHMgZm9yIEdldE1vZHVsZUJhc2VOYW1lQS4KKworCSogZGxscy9zaGVsbDMyL3NoZWxsLmMsIGRsbHMvc2hlbGwzMi9zaGVsbDMyX21haW4uaCwKKwkgIGRsbHMvc2hlbGwzMi9zaGxleGVjLmM6CisJRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGNvZGV3ZWF2ZXJzLmNvbT4KKwlTSEVMTF9FeGVjdXRlVygpIHBhc3NlcyBhIFVuaWNvZGUgZW52aXJvbm1lbnQgdG8gQ3JlYXRlUHJvY2Vzc1coKSBzbworCWl0IG11c3Qgc3BlY2lmeSB0aGUgQ1JFQVRFX1VOSUNPREVfRU5WSVJPTk1FTlQgZmxhZy4gQWxzbyB0aGUKKwlTSEVMTF9FeGVjdXRlVzMyKCkgZnVuY3Rpb25zIHdpbGwgYWx3YXlzIGJlIGNhbGxlZCB3aXRoIGEgVW5pY29kZQorCWVudmlyb25tZW50IHNvIGFkanVzdCB0aGVpciBwcm90b3R5cGUgYWNjb3JkaW5nbHkuCisKKwkqIGRsbHMvdXNlci90ZXN0cy93aW4uYzogRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlBZGQgYSB0ZXN0IGZvciBjbGllbnQvbm9uY2xpZW50IHdpbmRvdyBkaW1lbnNpb25zIGNhbGN1bGF0aW9uLgorCisJKiBkb2N1bWVudGF0aW9uL2FyY2hpdGVjdHVyZS5zZ21sLCBkb2N1bWVudGF0aW9uL3RocmVhZGluZy5zZ21sLAorCSAgZG9jdW1lbnRhdGlvbi93aW5lLWRldmVsLnNnbWw6CisJTWlrZSBIZWFybiA8bWhAY29kZXdlYXZlcnMuY29tPgorCUFkZCBkb2N1bWVudGF0aW9uIG9uIHRoZSBXaW5lIGluaXRpYWxpemF0aW9uIHByb2Nlc3MuCisKKwkqIGRsbHMvdXNlci91c2VyX21haW4uYywgZGxscy94MTFkcnYvc2Nyb2xsLmMsIGRsbHMveDExZHJ2L3gxMWRydi5zcGVjLAorCSAgaW5jbHVkZS91c2VyLmgsIHdpbmRvd3Mvc2Nyb2xsLmM6CisJVWxyaWNoIEN6ZWthbGxhIDx1bHJpY2hAY29kZXdlYXZlcnMuY29tPgorCVNjcm9sbERDIHNob3VsZCB0YWtlIGludG8gYWNjb3VudCBvdmVybGFwcGVkIHdpbmRvd3MuIFdpdGggdGhpcyBjaGFuZ2UKKwlTY3JvbGxXaW5kb3dFeCBjYW4gYmUgbW92ZWQgb3V0IG9mIFgxMWRydi4KKworCSogZGxscy9zaGVsbDMyL3NobGV4ZWMuYzogRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlGaXggd2FybmluZ3MgaW50cm9kdWNlZCBieSBteSBsYXN0IHBhdGNoLgorCisJKiBkbGxzL2tlcm5lbC9sb2NhbGUuYzogRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwktIEZpeCBlcnJvbmVvdXMgdXNlIG9mIExPQ0FMRV9TREFURSBpbiB0aGUgcGxhY2Ugb2YgTE9DQUxFX1NTSE9SVERBVEUuCisJLSBGaXggaW5jb3JyZWN0IGFzc3VtcHRpb25zIGFib3V0IGZvcm1hdCBzdHJpbmdzIHdoZW4gcGFyc2luZyBkYXRlCisJICBmb3JtYXRzIGFuZCBzZXR0aW5nIExPQ0FMRV9JREFURSBhbmQgTE9DQUxFX0lMREFURSB2YWx1ZXMuCisKKwkqIHByb2dyYW1zL3JlZ2VkaXQvRGUucmMsIHByb2dyYW1zL3JlZ2VkaXQvcnNyYy5yYzoKKwlNaWNoYWVsIEZyaXRzY2hlciA8bWljaGFlbEBmcml0c2NoZXIubmV0PgorCUFkZGVkIGEgR2VybWFuIHRyYW5zbGF0aW9uIG9mIFJlZ2VkaXQuCisKKwkqIGRsbHMveDExZHJ2L3hyZW5kZXIuYzogSHV3IERhdmllcyA8aHV3QGNvZGV3ZWF2ZXJzLmNvbT4KKwlEb24ndCBhbGxvY2F0ZSBhIGdseXBoc2V0IHVudGlsIHdlIGFjdHVhbGx5IG5lZWQgaXQuCisKKwkqIGRsbHMva2VybmVsL2ZpbGUuYzoKKwlBZGRlZCBtYWdpYyBudW1iZXIgaW4gdGhlIEZpbmRGaXJzdEZpbGUgc3RydWN0dXJlIHRvIGFsbG93IG1vcmUgcm9idXN0CisJZGV0ZWN0aW9uIG9mIGJhZCBoYW5kbGVzICh3aXRoIGhlbHAgZnJvbSBBcmljIFN0ZXdhcnQpLgorCisJKiBkbGxzL2tlcm5lbC9rZXJuZWwzMi5zcGVjLCBkbGxzL2tlcm5lbC9rZXJuZWxfbWFpbi5jLAorCSAgZGxscy9rZXJuZWwvc3luYy5jLCBkbGxzL250ZGxsL2NyaXRzZWN0aW9uLmMsIGRsbHMvbnRkbGwvbnRkbGwuc3BlYywKKwkgIGRsbHMvbnRkbGwvdGhyZWFkLmMsIGluY2x1ZGUvd2ludGVybmwuaDoKKwlTdG9yZSB0aGUgbnVtYmVyIG9mIHByb2Nlc3NvcnMgaW4gdGhlIFBFQiBzdHJ1Y3R1cmUuCisJTW9yZSBjb3JyZWN0IHN1cHBvcnQgZm9yIHNldHRpbmcgY3JpdGljYWwgc2VjdGlvbiBzcGluIGNvdW50cyAoYmFzZWQKKwlvbiBhIHBhdGNoIGJ5IFJvYmVydCBTaGVhcm1hbikuCisKKwkqIGRsbHMvbnRkbGwvaGVhcC5jLCBkbGxzL250ZGxsL2xvYWRlci5jLCBkbGxzL250ZGxsL2xvYWRvcmRlci5jLAorCSAgZGxscy9udGRsbC9udGRsbF9taXNjLmgsIGRsbHMvbnRkbGwvcmVsYXkuYywgZGxscy9udGRsbC9yZXNvdXJjZS5jLAorCSAgZGxscy9udGRsbC9ydGwuYywgZGxscy9udGRsbC9ydGxiaXRtYXAuYywgZGxscy9udGRsbC92aXJ0dWFsLmM6CisJRXJpYyBQb3VlY2ggPHBvdWVjaC1lcmljQHdhbmFkb28uZnI+CisJQ29uc3QgY29ycmVjdG5lc3MuCisKKwkqIGRsbHMvbnRkbGwvY2Ryb20uYzoKKwlVd2UgQm9ubmVzIDxib25AZWxla3Ryb24uaWtwLnBoeXNpay50dS1kYXJtc3RhZHQuZGU+CisJU3VwcG9ydCBmb3IgcmVhZGluZyBlbmNyeXB0ZWQgRFZEcy4KKworCSogZGxscy9zaGVsbDMyL3NobGV4ZWMuYzogRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlSZXN0b3JlIGRlZmF1bHQgIm9wZW4iIGZ1bmN0aW9uYWxpdHkgb2YgU2hlbGxFeGVjdXRlLgorCisyMDA0LTA2LTE0ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL2tlcm5lbC9maWxlLmMsIGluY2x1ZGUvd2luYmFzZS5oOgorCVJld3JvdGUgU2V0RmlsZVBvaW50ZXIgdG8gdXNlIFNldEZpbGVQb2ludGVyRXguCisKKwkqIGRsbHMvdXNlci9kZGUvc2VydmVyLmM6IEh1dyBEYXZpZXMgPGh1d0Bjb2Rld2VhdmVycy5jb20+CisJRml4ICdwb2ludGVycyBhcmUgbm90IHBlcm1pdHRlZCBhcyBjYXNlIHZhbHVlcycgY29tcGlsZSBlcnJvci4KKworCSogcHJvZ3JhbXMvcmVnZWRpdC90cmVldmlldy5jOgorCVJvYmVydCBTaGVhcm1hbiA8Ui5KLlNoZWFybWFuQHdhcndpY2suYWMudWs+CisJLSBVc2UgaG91cmdsYXNzIGN1cnNvciBmb3IgYmV0dGVyIGZlZWRiYWNrIHdoZW4gZXhwYW5kaW5nIG5vZGVzLgorCS0gVHVybiBvZmYgcmVkcmF3aW5nIHdoZW4gZXhwYW5kaW5nIHRvIG1ha2UgaXQgZmFzdGVyLgorCisJKiBhY2xvY2FsLm00LCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYzoKKwlQaWVycmUgZCdIZXJiZW1vbnQgPHN0ZWdlZmluQGZyZWUuZnI+CisJLSBzdHJpcCBzdXBwb3J0IGZvciBkYXJ3aW4KKwktIFdJTkVfR0VUX1NPTkFNRSBzdXBwb3J0IGZvciBkYXJ3aW4KKworCSogZGxscy9zaGVsbDMyL3NobGV4ZWMuYzogRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlJZ25vcmUgRGRlQ2xpZW50VHJhbnNhY3Rpb24gZXJyb3IgaW4gU2hlbGxFeGVjdXRlLgorCisJKiBkbGxzL3gxMWRydi93aW5wb3MuYzogRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlEbyBub3RoaW5nIGluIFNob3dXaW5kb3coU1dfU0hPVykgaWYgYSB3aW5kb3cgaXMgYWxyZWFkeSB2aXNpYmxlLgorCisJKiBkbGxzL2RiZ2hlbHAvZGJnaGVscC5zcGVjLCBkbGxzL2RiZ2hlbHAvbXNjLmMsIGRsbHMvZGJnaGVscC9wYXRoLmMsCisJICBkbGxzL2RiZ2hlbHAvcGVfbW9kdWxlLmMsIGRsbHMvZGJnaGVscC90eXBlLmMsIGluY2x1ZGUvZGJnaGVscC5oOgorCUVyaWMgUG91ZWNoIDxwb3VlY2gtZXJpY0B3YW5hZG9vLmZyPgorCS0gaW1wbGVtZW50ZWQgRW51bURpclRyZWUsIFNlYXJjaFRyZWVGb3JGaWxlLCBTeW1GaW5kRmlsZUluUGF0aCwKKwkgIFN5bU1hdGNoRmlsZU5hbWUKKwktIG1hZGUgdXNlIG9mIFN5bUZpbmRGaWxlSW5QYXRoIHRvIGxvb2t1cCAuZGJnIGFuZCAucGRiIGZpbGVzCisJLSBmaXhlZCBhIGNyYXNoIGluIENvZGVWaWV3IGVudW0gaGFuZGxpbmcKKworCSogZGxscy9vbGUzMi9tYXJzaGFsLmMsIGRsbHMvb2xlMzIvb2xlcHJveHkuYywKKwkgIGRsbHMvb2xlYXV0MzIvdG1hcnNoYWwuYywgZGxscy9ycGNydDQvY3Byb3h5LmM6CisJUm9iZXJ0IFNoZWFybWFuIDxSLkouU2hlYXJtYW5Ad2Fyd2ljay5hYy51az4KKwktIEZpeCByZWYgY291bnQgb24gc3RhbmRhcmQgcHJveHkgY3JlYXRpb24uCisJLSBSZWxlYXNlIGNoYW5uZWwgYnVmZmVyIGluIFN0ZE1hcnNoYWxfVW5tYXJzaGFsSW50ZXJmYWNlLCBzaW5jZSB3ZSBubworCSAgbG9uZ2VyIHVzZSBpdCBhbmQgdGhlIHByb3h5IHNob3VsZCBoYXZlIHRha2VuIGEgcmVmZXJlbmNlIG9uIGl0LgorCS0gQWRkIGEgZmV3IGNvbW1lbnRzLgorCisJKiBkbGxzL3dpbmluZXQvaHR0cC5jOiBNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJUGFzcyBwb2ludGVycyBhcm91bmQgaW50ZXJuYWxseSBpbnN0ZWFkIG9mIGhhbmRsZXMuCisKKwkqIGRsbHMvbXN2Y3J0ZC9kZWJ1Zy5jLCBkbGxzL21zdmNydGQvbXN2Y3J0ZC5zcGVjOgorCUxpb25lbCBVbG1lciA8bGlvbmVsLnVsbWVyQGZyZWUuZnI+CisJQWRkZWQgc3R1YiBmb3IgX0NydENoZWNrTWVtb3J5LgorCisJKiBkbGxzL2tlcm5lbC9maWxlLmMsIGRsbHMva2VybmVsL2tlcm5lbDMyLnNwZWM6CisJTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCUltcGxlbWVudGVkIFNldEZpbGVQb2ludGVyRXguCisKKwkqIGNvbnRyb2xzL3Njcm9sbC5jLCB3aW5kb3dzL3dpbnByb2MuYzoKKwlEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCUFkZGVkIDMyLT4xNiBtYXBwaW5nIGZvciBTQk1fR0VUUkFOR0UvU0JNX1NFVFJBTkdFIG1lc3NhZ2VzLgorCUFkZGVkIHN1cHBvcnQgZm9yIFNCTV9HRVRSQU5HRTE2IG1lc3NhZ2UgaW4gdGhlIHNjcm9sbGJhciB3aW5kb3cKKwlwcm9jLgorCisJKiBkbGxzL3dpbm1tL3dhdmVtYXAvd2F2ZW1hcC5jOiBSb2JlcnQgUmVpZiA8cmVpZkBlYXJ0aGxpbmsubmV0PgorCUFkZGVkIHRyYWNpbmcgdG8gYWxsIGZ1bmN0aW9ucy4KKwlBZGRlZCBlcnJvciBleHBsYW5hdGlvbnMuCisJQ2hhbmdlZCBkZWJ1ZyBjaGFubmVsIGZyb20gbXNhY20gdG8gd2F2ZW1hcCBzbyBub3QgY29uZnVzZWQgd2l0aAorCW1zYWNtLgorCisJKiBkbGxzL3dpbm1tL3Rlc3RzL2NhcHR1cmUuYywgZGxscy93aW5tbS90ZXN0cy93YXZlLmM6CisJUm9iZXJ0IFJlaWYgPHJlaWZAZWFydGhsaW5rLm5ldD4KKwlSZW1vdmVkIDExIGJpdCBzYW1wbGUgc2l6ZSBjYXB0dXJlIHRlc3QgYmVjYXVzZSBhdCBsZWFzdCAyCisJbWFudWZhY3R1cmVycyBzb3VuZCBjYXJkcyBvbiB0d28gZGlmZmVyZW50IE9TcyBzZWVtIHRvIHN1cHBvcnQgdGhpcy4KKwlBZGRlZCBzb21lIGludmFsaWQgcGFyYW1ldGVyIGNoZWNrcyB0byB3YXZlW0luLE91dF1HZXREZXZDYXBzLgorCU9uZSB0ZXN0IGlzIGNvbW1lbnRlZCBvdXQgYmVjYXVzZSB3aW5lIGRvZXNuJ3QgaGFuZGxlIGl0IHByb3Blcmx5LgorCU1pbm9yIGluZm8gcHJpbnRpbmcgY2xlYW51cC4KKworCSogZGxscy9zaGVsbDMyL3NobGV4ZWMuYzogRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlBZGQgc3VwcG9ydCBmb3IgcXVvdGluZyAiZmlsZTovLyUxIiBsaWtlIGZvcm1hdCBzdHJpbmdzLgorCisJKiBpbmNsdWRlL3dpbmUvbGlicmFyeS5oLCBsaWJzL3dpbmUvbG9hZGVyLmMsIGxvYWRlci9tYWluLmM6CisJWWV0IGFub3RoZXIgZml4IGZvciB0aGUgTWFjT1MgWCBlbnZpcm9uIGJyYWluIGRhbWFnZS4KKworCSogZGxscy9rZXJuZWwvY29uc29sZS5jLCBkbGxzL2tlcm5lbC9kb3NtZW0uYywKKwkgIGRsbHMva2VybmVsL2Zvcm1hdF9tc2cuYywgZGxscy9rZXJuZWwvaGVhcC5jLCBkbGxzL2tlcm5lbC9pbnN0ci5jLAorCSAgZGxscy9rZXJuZWwvbG9jYWxlLmMsIGRsbHMva2VybmVsL3Byb2ZpbGUuYywgZGxscy9rZXJuZWwvc2VsZWN0b3IuYywKKwkgIGRsbHMva2VybmVsL3RocmVhZC5jLCBtaXNjL3JlZ2lzdHJ5LmM6CisJRXJpYyBQb3VlY2ggPHBvdWVjaC1lcmljQHdhbmFkb28uZnI+CisJQ29uc3QgY29ycmVjdG5lc3MsIHBvaW50ZXIgY2FzdCBjb3JyZWN0bmVzcywgcmVtb3ZlZCBleHRyYW5lb3VzICc7Jy4KKworCSogZGxscy9rZXJuZWwvcHJvY2Vzcy5jLCBkbGxzL250ZGxsL3Byb2Nlc3MuYywKKwkgIGluY2x1ZGUvd2luZS9zZXJ2ZXJfcHJvdG9jb2wuaCwgc2VydmVyL3Byb2Nlc3MuYywKKwkgIHNlcnZlci9wcm90b2NvbC5kZWYsIHNlcnZlci90cmFjZS5jOgorCUVyaWMgUG91ZWNoIDxwb3VlY2gtZXJpY0B3YW5hZG9vLmZyPgorCS0gQWRkZWQgUHJvY2Vzc0Jhc2ljSW5mb3JtYXRpb24gY2xhc3MgdG8gbnRkbGwuTnRRdWVyeUluZm9ybWF0aW9uUHJvY2Vzcy4KKwktIE1ha2UgdXNlIG9mIGl0IGluIGtlcm5lbDMyLgorCisJKiBpbmNsdWRlL3dpbmUvcG9ydC5oOiBQaWVycmUgZCdIZXJiZW1vbnQgPHN0ZWdlZmluQGZyZWUuZnI+CisJRG9uJ3QgdXNlIC5wcmV2aW91cyBpbnN0cnVjdGlvbiBvbiBEYXJ3aW4uCisKKwkqIGRsbHMva2VybmVsL3N5bmMuYzogUm9iZXJ0IFNoZWFybWFuIDxSLkouU2hlYXJtYW5Ad2Fyd2ljay5hYy51az4KKwlVc2UgdGhlIHNhbWUgcGF0aCB0cmFuc2Zvcm1hdGlvbiBmb3IgV2FpdE5hbWVkUGlwZSBhbmQKKwlDcmVhdGVOYW1lZFBpcGUuCisKKwkqIGRsbHMvd2lubW0vd2luZWFsc2EvYXVkaW8uYzogUm9iZXJ0IFJlaWYgPHJlaWZAZWFydGhsaW5rLm5ldD4KKwlSZXNldCBwbGF5ZWQgdmFyaWFibGVzIG9uIG9wZW4uCisKKwkqIGRsbHMva2VybmVsL2FjdGN0eC5jOiBSZWluIEtsYXplcyA8cmtsYXplc0B4czRhbGwubmw+CisJU2V0IGxhc3QgZXJyb3IgdmFsdWUgdG8gRVJST1JfQ0FMTF9OT1RfSU1QTEVNRU5URUQgaW4gUXVlcnlBY3RDdHhXKCkKKwl0byBtYWtlIFBob3Rvc2hvcCA3LjAgd29yayBhZ2Fpbi4KKworCSogZG9jdW1lbnRhdGlvbi9pbXBsZW1lbnRhdGlvbi5zZ21sOiBPZmlyIFBldHJ1c2thIDxoYXRreUB1c2Vycy5zZi5uZXQ+CisJUmVwbGFjZSAtZGVidWdtc2cgYnkgV0lORURFQlVHLgorCisJKiBkbGxzL3gxMWRydi94MTFkcnZfbWFpbi5jOiBNaWtlIEhlYXJuIDxtaWtlQG5hdmkuY3g+CisJTWFrZSBVc2VYcmFuZHIgZGVmYXVsdCB0byB0cnVlIGluIHRoZSBubyBjb25maWcgZmlsZSBjYXNlLgorCisJKiBkbGxzL3VzZXIvZGRlL2NsaWVudC5jOiBEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCVNldCBsYXN0IERERSBlcnJvciBpbiBYVFlQX0VYRUNVVEUgaGFuZGxlciBhY2NvcmRpbmcgdG8gdGhlIHZhbHVlCisJcmV0dXJuZWQgYnkgYW4gYXBwbGljYXRpb24uCisKKwkqIGluY2x1ZGUvZGRlbWwuaDogRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlGaXggQ0JSX0JMT0NLIGRlZmluaXRpb24uCisKKwkqIGRsbHMvZDNkOC9kZXZpY2UuYywgZGxscy9kM2Q4L3V0aWxzLmMsIGRsbHMvZDNkOC92ZXJzaW9uLnJjOgorCVJhcGhhZWwgSnVucXVlaXJhIDxmZW5peEBjbHViLWludGVybmV0LmZyPgorCS0gZml4IHZlcnNpb24gc3RyaW5nCisJLSBzb21lIGZpeGVzIHRvIEFUSSBzcGVjaWZpYyBwYXRocyBvZiBzZXRfdGV4X29wIChDaHJpc3RpYW4gbmVlZHMgdG8KKwkgIGNvbXBsZXRlIGl0KQorCS0gZml4IHVzZSBvZiBHTF9TVVBQT1JUKE5WX1RFWEdFTl9SRUZMRUNUSU9OKS4gSSBoYXZlIHVzZWQgdGhlIHdyb25nCisJICBkZWZpbmUsIEknbGwgZ2V0IGEgYnJvd24gcGFwZXIgYmFnIDooCisKKwkqIGRsbHMvaWNjdmlkL2ljY3ZpZC5jOiBSb2JlcnQgU2hlYXJtYW4gPFIuSi5TaGVhcm1hbkB3YXJ3aWNrLmFjLnVrPgorCVN1cHBvcnQgMTUtIGFuZCAxNi1iaXQgY29sb3VyIG91dHB1dC4KKworCSogZGxscy9zaGVsbDMyL3NoZWxsMzIuc3BlYywgZGxscy9zaGVsbDMyL3NobGZpbGVvcC5jOgorCVVscmljaCBDemVrYWxsYSA8dWxyaWNoQGNvZGV3ZWF2ZXJzLmNvbT4KKwlJbXBsZW1lbnRlZCBSZWFsRHJpdmVUeXBlLgorCisJKiBkbGxzL3dpbmluZXQvdXRpbGl0eS5jOiBNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJRml4ZWQgQVNDSUkgcmVkaXJlY3QgY2FsbGJhY2tzLgorCisJKiBjb250cm9scy9zY3JvbGwuYzogRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlNYWtlIFNldFNjcm9sbFJhbmdlIGJlaGF2ZSBsaWtlIEdldFNjcm9sbFJhbmdlIGRvZXMsIGkuZS4gc2VuZAorCW1lc3NhZ2VzIHRvIHRoZSBjb250cm9sIGZvciBTQl9DVEwgY2FzZS4KKworCSogZGxscy93aW5tbS9wbGF5c291bmQuYzogTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCUZpeCBQbGF5U291bmQuCisKKwkqIGRsbHMvZGV2ZW51bS9tZWRpYWNhdGVudW0uYzoKKwlSb2JlcnQgU2hlYXJtYW4gPFIuSi5TaGVhcm1hbkB3YXJ3aWNrLmFjLnVrPgorCUF2b2lkIGNyYXNoIGJ5IHBhc3NpbmcgcG9pbnRlciB0byBSZWdTZXRWYWx1ZUV4LgorCisJKiBkbGxzL3dpbnNwb29sL3Rlc3RzL2luZm8uYzoKKwlTdGVmYW4gTGVpY2h0ZXIgPFN0ZWZhbi5MZWljaHRlckBjYW1MaW5lLmNvbT4KKwlMb2cgdGhlIGxhc3QgZXJyb3IgdG9vIGlmIHRoZSB0ZXN0cyBmYWlsIHdpdGhvdXQgZGVmYXVsdCBwcmludGVyLgorCisJKiBpbmNsdWRlL01ha2VmaWxlLmluLCBpbmNsdWRlL2FjbGFwaS5oOgorCU1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlBZGQgdGhlIGFjbGFwaS5oIGhlYWRlciBmaWxlLgorCisJKiBkbGxzL3dpbm1tL3dpbm1tLmM6IFJvYmVydCBSZWlmIDxyZWlmQGVhcnRobGluay5uZXQ+CisJRG9uJ3QgdHJ5IHRvIG1hcCB0aGUgbWFwcGVyIGRldmljZS4KKworMjAwNC0wNi0wNCAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9kZHJhdy9kM2RkZXZpY2UvbWVzYS5jLCBkbGxzL2RkcmF3L2RzdXJmYWNlL21haW4uYzoKKwlMaW9uZWwgVWxtZXIgPGxpb25lbC51bG1lckBmcmVlLmZyPgorCU1vdmUgdGhlIEZQUyBjb21wdXRhdGlvbiBmcm9tIHRoZSBEM0QgY29kZSB0byB0aGUgY29tbW9uIGNvZGUuCisKKwkqIGRsbHMvZDNkeG9mL2QzZHhvZi5jLCBkbGxzL2QzZHhvZi9kM2R4b2ZfcHJpdmF0ZS5oLAorCSAgZGxscy9kM2R4b2YvbWFpbi5jOgorCUNocmlzdGlhbiBDb3N0YSA8dGl0YW4uY29zdGFAd2FuYWRvby5mcj4KKwlSZW1vdmVkIGNvbXBpbGF0aW9uIHdhcm5pbmdzICsgc29tZSBmaXhlcy4KKworCSogZGxscy91c2VyL3Rlc3RzL3N5c3BhcmFtcy5jOiBEaW1pdHJpZSBPLiBQYXVuIDxkcGF1bkByb2dlcnMuY29tPgorCVdpbiAyMDAwLCBYUCwgZXRjLiBmYWlsIHRoZSBzeXNwYXJhbXMgdGVzdHMgd2hlbiBydW4KKwlub24taW50ZXJhY3RpdmVseSwgc28gYXZvaWQgcnVubmluZyB0aGUgdGVzdHMgaW4gdGhhdCBjYXNlLgorCisJKiBkbGxzL2NvbWN0bDMyL3RhYi5jOiBKb24gR3JpZmZpdGhzIDxqb25fcF9ncmlmZml0aHNAeWFob28uY29tPgorCUltcGxlbWVudGVkIFRDTV9TRVRJVEVNRVhUUkEuCisKKwkqIGRsbHMvZGlucHV0L2RpbnB1dF9tYWluLmMsIGRsbHMvZGlucHV0L2RpbnB1dF9wcml2YXRlLmgsCisJICBkbGxzL2RpbnB1dC9qb3lzdGlja19saW51eC5jLCBkbGxzL2RpbnB1dC9qb3lzdGlja19saW51eGlucHV0LmMsCisJICBkbGxzL2RpbnB1dC9rZXlib2FyZC5jLCBkbGxzL2RpbnB1dC9tb3VzZS5jOgorCUxpb25lbCBVbG1lciA8bGlvbmVsLnVsbWVyQGZyZWUuZnI+CisJLSBzb21lIG5ldyBsb2dnaW5nIG9uIGRldmljZSBlbnVtZXJhdGlvbgorCS0gZml4IHZlcnNpb24gc2V0dGluZyBpbiBEaXJlY3RJbnB1dENyZWF0ZShBL1cpIGZ1bmN0aW9ucworCisJKiBkbGxzL2tlcm5lbC9wcm9jZXNzLmM6IFJlaW4gS2xhemVzIDxya2xhemVzQHhzNGFsbC5ubD4KKwlGaXggYSBjcmFzaCB3aGVuIGxhdW5jaGluZyBVbml4IGV4ZWN1dGFibGVzLgorCisJKiB3aW5kb3dzL3NweS5jOiBEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCVByaW50IG1lYW5pbmdmdWwgbWVzc2FnZSB2YWx1ZXMgaW5zdGVhZCBvZiB2YWd1ZSBuYW1lcyBmb3IgdW5rbm93bgorCW1lc3NhZ2VzLgorCisJKiBkbGxzL3dpbnNwb29sL3Rlc3RzL2luZm8uYzogRGltaXRyaWUgTy4gUGF1biA8ZHBhdW5Acm9nZXJzLmNvbT4KKwlTb21lIG9mIG91ciB0ZXN0ZXJzIGRvbid0IGhhdmUgYSBkZWZhdWx0IHByaW50ZXIsIHNpbXBseSBza2lwIHRoZQorCXdpbnNwb29sIHRlc3RzIGlmIHRoYXQncyB0aGUgY2FzZS4KKworCSogZGxscy9rZXJuZWwvdGVzdHMvZGlyZWN0b3J5LmM6IERpbWl0cmllIE8uIFBhdW4gPGRwYXVuQHJvZ2Vycy5jb20+CisJSW4gV2luOXgsIHtDcmVhdGUsUmVtb3ZlfURpcmVjdG9yeSByZXR1cm5zIEVSUk9SX1BBVEhfTk9UX0ZPVU5EIHdoZW4KKwlnaXZlbiBkaXJlY3RvcmllcyBjb250YWluaW5nICcqJyBvciAnPycuCisKKwkqIGRsbHMva2VybmVsL3Rlc3RzL2FsbG9jLmM6IERpbWl0cmllIE8uIFBhdW4gPGRwYXVuQHJvZ2Vycy5jb20+CisJV2luOXggZG9lcyBub3QgY29udmVydCBGSVhFRCB0byBNT1ZFQUJMRS4gSXQgYWxzbyBkaXNjYXJkcyBsb2NrZWQKKwltZW1vcnkuCisKKwkqIGRsbHMvY29tY3RsMzIvbGlzdHZpZXcuYzogRGltaXRyaWUgTy4gUGF1biA8ZHBhdW5Acm9nZXJzLmNvbT4KKwlDbGVhciB0aGUgc3RhdGUgaW1hZ2UgYml0cyBvbmx5IGlmIExWU19FWF9DSEVDS0JPWEVTIGlzIHNldC4KKwlGaXggb2J2aW91cyBsb2dpY2FsIGVycm9yIGluIGZvY3VzIGhhbmRsaW5nLgorCUluZGVudGF0aW9uIGFuZCBmb3JtYXR0aW5nIGZpeGVzLgorCShiYXNlZCBvbiBhIHBhdGNoIGJ5IEtyaXNobmEgTXVydGh5KS4KKworCSogZGxscy93aW5tbS90ZXN0cy9jYXB0dXJlLmMsIGRsbHMvd2lubW0vdGVzdHMvd2F2ZS5jLAorCSAgZGxscy93aW5tbS90ZXN0cy93aW5tbV90ZXN0Lmg6CisJUm9iZXJ0IFJlaWYgPHJlaWZAZWFydGhsaW5rLm5ldD4KKwlUcmVhdCBXQVZFX01BUFBFUiBhcyBhIHJlYWwgZGV2aWNlIGFuZCBwZXJmb3JtcyBhbGwgdGVzdHMgb24gaXQuCisJQWRkZWQgMTYwMDBIeiBiZWNhdXNlIHdpbjl4IGhhcmR3YXJlIHNwZWMgcmVxdWlyZXMgaXQuCisKKwkqIGRsbHMvd2lubW0vd2F2ZW1hcC93YXZlbWFwLmM6IFJvYmVydCBSZWlmIDxyZWlmQGVhcnRobGluay5uZXQ+CisJSGFuZGxlIGNhc2Ugd2hlcmUgcGFydGlhbCBzdHJ1Y3R1cmUgdXBkYXRlIHJlcXVlc3RlZC4KKwlNaW5vciB3aGl0ZSBzcGFjZSBjbGVhbnVwLgorCisJKiBsaWJzL3dpbmUvbW1hcC5jOiBBdm9pZCB6ZXJvIHNpemUgYWxsb2NhdGlvbnMuCisKKwkqIGRvY3VtZW50YXRpb24vZGVidWdnZXIuc2dtbCwgZG9jdW1lbnRhdGlvbi9kZWJ1Z2dpbmcuc2dtbCwKKwkgIHByb2dyYW1zL3dpbmVkYmcvTWFrZWZpbGUuaW4sIHByb2dyYW1zL3dpbmVkYmcvYmVfY3B1LmgsCisJICBwcm9ncmFtcy93aW5lZGJnL2JlX2kzODYuYywgcHJvZ3JhbXMvd2luZWRiZy9iZV9wcGMuYywKKwkgIHByb2dyYW1zL3dpbmVkYmcvYnJlYWsuYywgcHJvZ3JhbXMvd2luZWRiZy9kYl9kaXNhc20uYywKKwkgIHByb2dyYW1zL3dpbmVkYmcvZGJnLnksIHByb2dyYW1zL3dpbmVkYmcvZGVidWcubCwKKwkgIHByb2dyYW1zL3dpbmVkYmcvZGVidWdnZXIuaCwgcHJvZ3JhbXMvd2luZWRiZy9kaXNwbGF5LmMsCisJICBwcm9ncmFtcy93aW5lZGJnL2VsZi5jLCBwcm9ncmFtcy93aW5lZGJnL2V4cHIuYywKKwkgIHByb2dyYW1zL3dpbmVkYmcvZXh0X2RlYnVnZ2VyLmMsIHByb2dyYW1zL3dpbmVkYmcvZ2RicHJveHkuYywKKwkgIHByb2dyYW1zL3dpbmVkYmcvaGFzaC5jLCBwcm9ncmFtcy93aW5lZGJnL2luZm8uYywKKwkgIHByb2dyYW1zL3dpbmVkYmcvaW50dmFyLmgsIHByb2dyYW1zL3dpbmVkYmcvbWVtb3J5LmMsCisJICBwcm9ncmFtcy93aW5lZGJnL21vZHVsZS5jLCBwcm9ncmFtcy93aW5lZGJnL21zYy5jLAorCSAgcHJvZ3JhbXMvd2luZWRiZy9wZS5jLCBwcm9ncmFtcy93aW5lZGJnL3JlZ2lzdGVycy5jLAorCSAgcHJvZ3JhbXMvd2luZWRiZy9zb3VyY2UuYywgcHJvZ3JhbXMvd2luZWRiZy9zdGFicy5jLAorCSAgcHJvZ3JhbXMvd2luZWRiZy9zdGFjay5jLCBwcm9ncmFtcy93aW5lZGJnL3N5bWJvbC5jLAorCSAgcHJvZ3JhbXMvd2luZWRiZy90eXBlcy5jLCBwcm9ncmFtcy93aW5lZGJnL3dpbmVkYmcuYywKKwkgIHByb2dyYW1zL3dpbmVkYmcvd2luZWRiZy5tYW46CisJRXJpYyBQb3VlY2ggPHBvdWVjaC1lcmljQHdhbmFkb28uZnI+CisJLSBhbGwgc3ltYm9sIGluZm9ybWF0aW9uIHN0b3JhZ2UgaXMgbm93IG1vZHVsZSByZWxhdGl2ZSwgc28gd2UgY2FuCisJICB1bmxvYWQgYSBtb2R1bGUgKGFuZCBpdCdzIGRlYnVnZ2luZyBpbmZvcm1hdGlvbiksIGFuZCBhIHByb2Nlc3MKKwkgIHdpdGhvdXQgcGFpbgorCS0gcG9ydGFiaWJsaXR5IHRvIGFub3RoZXIgQ1BVIHNob3VsZCBiZSBlYXNpZXIgbm93IChDUFUgZGVwZW5kZW50IGJhY2tlbmQpCisJLSBzcGVlZCB1cCBtZW1vcnkgYWxsb2NhdGlvbgorCS0gc3RhYnMgcmVsYXRlZCBmaXhlczoKKwkgICAgICArIG5vdyBjb3JyZWN0bHkgaGFuZGxpbmcgc3ltYm9sJ3Mgc2l6ZQorCSAgICAgICsgYmxvY2tzIHt9IGluIGZ1bmN0aW9ucyBhcmUgbm93IGNvcnJlY3RseSByZWNvZ25pemVkIGFuZCBzdG9yZWQKKwkgICAgICAgIChhbHNvIGFwcGxpZXMgdG8gbG9jYWwgdmFyaWFibGVzIHNjb3BpbmcpCisJICAgICAgKyBiZXR0ZXIgYmFzaWMgdHlwZXMgbWFuYWdlbWVudCAobGVzcyB3aWxkIGd1ZXNzZXMgaW4gdGhlIGNvZGUpCisJICAgICAgKyBmdWxsIHN1cHBvcnQgb2YgaW5saW5lIGZ1bmN0aW9ucyAoc291cmNlIHN0ZXBwaW5nIG5vdyBzaG93cyB0aGUKKwkgICAgICAgIGNvZGUgaW4gLmggZmlsZXMgZm9yIGV4YW1wbGUpCisJLSByZW1vdmFsIG9mIGV4dGVybmFsIGRlYnVnZ2VyIChhdHRhY2hpbmcgd2l0aCBnZGIgaXMganVzdCBmaW5lIHRvCisJICBkZWJ1ZyB3aW5lZGJnKQorCS0gZml4ZWQgYSBjb3VwbGUgb2YgaXNzdWVzIGZvciBzeW1ib2wgYWRkcmVzcyBoYW5kbGluZyAoYWRkcmVzcworCSAgbG9va3VwLCBpbmNvcnJlY3QgdHlwZSBiaW5kaW5nKQorCS0gd2luZWRiZyBub3cgaGFzIGEgbWFuIHBhZ2UKKworMjAwNC0wNi0wMyAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogbG9hZGVyL3ByZWxvYWRlci5jOgorCU1ha2UgaXQgcG9zc2libGUgdG8gYWRkIGF1eGlsaWFyeSB2YWx1ZXMgdG8gdGhlIGV4aXN0aW5nIGFycmF5OyB0aGlzCisJaXMgcmVxdWlyZWQgZm9yIG9sZGVyIGtlcm5lbHMuCisKKwkqIGRsbHMvdXNlci90ZXN0cy9tc2cuYywgZGxscy94MTFkcnYvd2lucG9zLmM6CisJTWlrZSBIZWFybiA8bWhAY29kZXdlYXZlcnMuY29tPgorCUlnbm9yZSBhdHRlbXB0cyB0byBoaWRlIGFuIGFscmVhZHkgaW52aXNpYmxlIHdpbmRvdy4gQWRkIGEgdGVzdCBjYXNlCisJZm9yIHRoaXMgYmVoYXZpb3VyLCBwYXNzZXMgb24gV2luZSBhbmQgV2luZG93cyAyMDAwLgorCisJKiBkbGxzL3dpbmVkb3MvaW50MjEuYzogUmVpbiBLbGF6ZXMgPHJrbGF6ZXNAeHM0YWxsLm5sPgorCUluIElOVDIxX0dldEZyZWVEaXNrU3BhY2UgYWRqdXN0IHRoZSBzZWN0b3JzLXBlci1jbHVzdGVyIHZhbHVlIHRvIG1ha2UKKwl0aGUgdG90YWwgbnVtYmVyIG9mIGNsdXN0ZXJzIGZpdCBpbiBhIDE2IGJpdCByZWdpc3Rlci4KKworCSogaW5jbHVkZS93aW51c2VyLmg6IEFuZHJlYXMgTW9ociA8YW5kaUByaGx4MDEuZmh0LWVzc2xpbmdlbi5kZT4KKwlBZGRpdGlvbmFsIEtMRl94eHggZGVmaW5lcy4KKworCSogZGxscy9tc3ZpZGVvL2RyYXdkaWIuYywgZGxscy9tc3ZpZGVvL21zdmZ3MzIuc3BlYzoKKwlIYW5zIExlaWRla2tlciA8aGFuc0BpdC52dS5ubD4KKwlTdHViIGZvciBEcmF3RGliUHJvZmlsZURpc3BsYXkuCisKKwkqIGRsbHMva2VybmVsL3Rlc3RzL2xvY2FsZS5jOiBSb2JlcnQgUmVpZiA8cmVpZkBlYXJ0aGxpbmsubmV0PgorCUkgZ290IHRoZSB0ZXN0IGZvciBmYWlsdXJlIG9uIE5UIHdyb25nIGluIG15IGxhc3QgcGF0Y2guIFRoZSBmdW5jdGlvbgorCXJldHVybnMgMCBvbiBlcnJvciBhbmQgc2V0cyBsYXN0IGVycm9yIHRvIEVSUk9SX0lOVkFMSURfRkxBR1MuCisKKwkqIGRsbHMvcnNhYmFzZS9tYWluLmM6IFJhcGhhZWwgSnVucXVlaXJhIDxmZW5peEBjbHViLWludGVybmV0LmZyPgorCUNyZWF0ZWQgbW9yZSBuZWVkZWQgcmVnaXN0cnkga2V5IGluIERsbFJlZ2lzdGVyU2VydmVyLgorCisJKiBsaWJzL3dpbmUvbW1hcC5jOgorCUNoZWNrIGZvciBleGlzdGluZyByZXNlcnZlZCBhcmVhcyBpbiBtbWFwX2luaXQgdG8gYXZvaWQgZG9pbmcKKwlkdXBsaWNhdGUgd29yay4KKworCSogZGxscy9udGRsbC9udGRsbC5zcGVjOiBSYXBoYWVsIEp1bnF1ZWlyYSA8ZmVuaXhAY2x1Yi1pbnRlcm5ldC5mcj4KKwlBZGRlZCBfdnNud3ByaW50ZiAobmVlZGVkIGJ5IHNvbWUgbmF0aXZlIFhQIGRsbHMpLgorCisJKiBkbGxzL2tlcm5lbC9tb2R1bGUuYywgZGxscy9rZXJuZWwvcHJvY2Vzcy5jLCBpbmNsdWRlL21vZHVsZS5oOgorCVNldCB0aGUgV0lORVBSRUxPQURSRVNFUlZFIHZhcmlhYmxlIHdoZW4gc3RhcnRpbmcgYSBuZXcgcHJvY2Vzcy4KKworCSogaW5jbHVkZS93aW5lL3BvcnQuaDogSGFucyBMZWlkZWtrZXIgPGhhbnNAaXQudnUubmw+CisJTWluR1cgcG9ydGFiaWxpdHkgZml4LgorCisJKiBkbGxzL3VzZXIvdGVzdHMvbXNnLmMsIGRsbHMvdXNlci90ZXN0cy93aW4uYywgd2luZG93cy93aW4uYzoKKwlVbHJpY2ggQ3pla2FsbGEgPHVscmljaEBjb2Rld2VhdmVycy5jb20+CisJRW5hYmxlV2luZG93IHNob3VsZCBub3QgcmVtb3ZlIHRoZSBmb2N1cyBvZiBjaGlsZCB3aW5kb3dzLgorCisJKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGxscy9NYWtlZmlsZS5pbiwgZGxscy9kM2R4b2YvLmN2c2lnbm9yZSwKKwkgIGRsbHMvZDNkeG9mL01ha2VmaWxlLmluLCBkbGxzL2QzZHhvZi9kM2R4b2YuYywKKwkgIGRsbHMvZDNkeG9mL2QzZHhvZi5zcGVjLCBkbGxzL2QzZHhvZi9kM2R4b2ZfcHJpdmF0ZS5oLAorCSAgZGxscy9kM2R4b2YvbWFpbi5jLCBkbGxzL2QzZHhvZi9yZWdzdnIuYywgZGxscy9kM2R4b2YvdmVyc2lvbi5yYywKKwkgIGRsbHMvZHhndWlkL2R4Z3VpZC5jLCBkb2N1bWVudGF0aW9uL3NhbXBsZXMvY29uZmlnLAorCSAgaW5jbHVkZS9NYWtlZmlsZS5pbiwgaW5jbHVkZS9keGZpbGUuaCwgdG9vbHMvd2luZS5pbmY6CisJQ2hyaXN0aWFuIENvc3RhIDx0aXRhbi5jb3N0YUB3YW5hZG9vLmZyPgorCUFkZGVkIGQzZHhvZiBkbGwsIHBhcnQgb2YgRGlyZWN0M0QuCisKKzIwMDQtMDYtMDIgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGxvYWRlci9wcmVsb2FkZXIuYzoKKwlBZGRlZCBzdXBwb3J0IGZvciBzcGVjaWZ5aW5nIHRoZSBQRSBleGUgYWRkcmVzcyByYW5nZSB0aHJvdWdoIHRoZQorCVdJTkVQUkVMT0FEUkVTRVJWRSBlbnZpcm9ubWVudCB2YXJpYWJsZS4KKworCSogY29uZmlndXJlLCBjb25maWd1cmUuYWM6IEFkZGVkIGNoZWNrIGZvciBzdGF0aWMgbGliYy4KKworCSogZGxscy9jb21jdGwzMi90b29sYmFyLmM6IFVscmljaCBDemVrYWxsYSA8dWxyaWNoQGNvZGV3ZWF2ZXJzLmNvbT4KKwlIYW5kbGUgY2FzZSB3aGVuIGl0ZW0gdGV4dCBpcyBlbXB0eS4KKwlBY2NvcmRpbmcgdG8gTVNETiwgbGVuZ3RoIHNob3VsZCBiZSByZXR1cm5lZCB3aGVuIGxQYXJhbSBpcyBOVUxMLgorCisJKiBkbGxzL3NoZWxsMzIvY2hhbmdlbm90aWZ5LmM6IFVscmljaCBDemVrYWxsYSA8dWxyaWNoQGNvZGV3ZWF2ZXJzLmNvbT4KKwlXaGVuIHdlIHNlbmQgb3V0IGEgbm90aWZpY2F0aW9uIHRvIGEgcmVnaXN0ZXJlZCB3aW5kb3cgd2l0aAorCVNIQ05SRl9OZXdEZWxpdmVyeSwgd2Ugc2hvdWxkIHNlbmQgYSBMUE5PVElGSUNBVElPTkxJU1QgYW5kIHRoZQorCXByb2Nlc3MgaWQgb2YgdGhlIGNhbGxlci4KKworCSogZGxscy9jb21tZGxnL2ZpbGVkbGcxNi5jOiBSZWluIEtsYXplcyA8cmtsYXplc0B4czRhbGwubmw+CisJSW4gRklMRURMR19TY2FuRGlyIGRvIG5vdCB0cnkgdG8gc2V0IHRoZSBjdXJyZW50IGRpcmVjdG9yeSB0byBhIHBhdGgKKwl0aGF0IGlzIGVtcHR5LgorCisJKiBkbGxzL3dpbnNvY2svc29ja2V0LmMsIGRsbHMvd2luc29jay93czJfMzIuc3BlYzoKKwlIYW5zIExlaWRla2tlciA8aGFuc0BpdC52dS5ubD4KKwlTdHViIGZvciBXU0NVbkluc3RhbGxOYW1lU3BhY2UuCisKKwkqIGRsbHMva2VybmVsL2tlcm5lbDMyLnNwZWMsIGRsbHMva2VybmVsL3BhdGguYzoKKwlSYXBoYWVsIEp1bnF1ZWlyYSA8ZmVuaXhAY2x1Yi1pbnRlcm5ldC5mcj4KKwlTZW1pIHN0dWJzIGZvciBHZXRTeXN0ZW1Xb3c2NERpcmVjdG9yeVtBV10uCisKKwkqIGRsbHMvZGlucHV0L2RldmljZS5jLCBkbGxzL2RpbnB1dC9kZXZpY2VfcHJpdmF0ZS5oLAorCSAgZGxscy9kaW5wdXQvam95c3RpY2tfbGludXguYywgZGxscy9kaW5wdXQvam95c3RpY2tfbGludXhpbnB1dC5jLAorCSAgZGxscy9kaW5wdXQvbW91c2UuYzoKKwlMaW9uZWwgVWxtZXIgPGxpb25lbC51bG1lckBmcmVlLmZyPgorCS0gc29tZSBUUkFDRWluZyBpbXByb3ZlbWVudHMKKwktIGZpeCBtb3VzZSBBY3F1aXJlIHdoaWNoIHN3aXRjaGVkIHJpZ2h0IGFuZCBtaWRkbGUgYnV0dG9ucworCS0gcmVzZXQgdGhlIG1vdXNlIGN1cnNvciBhdCBpdHMgb3JpZ2luYWwgbG9jYXRpb24gb24gVW5hY3F1aXJpbmcgdGhlCisJICBkZXZpY2UKKworCSogZGxscy9rZXJuZWwvdGVzdHMvcGF0aC5jOiBEaW1pdHJpZSBPLiBQYXVuIDxkcGF1bkByb2dlcnMuY29tPgorCURvIG5vdCBmaXggdGhlIGRyaXZlIGxldHRlciB0byAnQycsIGl0IGZhaWxzIG9uIG90aGVyIHBlb3BsZSdzIGJveGVzLgorCisJKiBkbGxzL3JzYWJhc2UvbWFpbi5jOiBSb2JlcnQgU2hlYXJtYW4gPFIuSi5TaGVhcm1hbkB3YXJ3aWNrLmFjLnVrPgorCUNyZWF0ZWQgbmVlZGVkIHJlZ2lzdHJ5IGtleSBpbiBEbGxSZWdpc3RlclNlcnZlci4KKworCSogZGxscy9jb21jdGwzMi90b29sYmFyLmM6IFJvYmVydCBTaGVhcm1hbiA8Ui5KLlNoZWFybWFuQHdhcndpY2suYWMudWs+CisJRG9uJ3QgZHJhdyB3aG9sZSBidXR0b24gcHJlc3NlZCB3aGVuIHNlcGFyYXRlIGRyb3Bkb3duIHByZXNzZWQsIGp1c3QKKwl0aGUgc2VwYXJhdGUgZHJvcGRvd24gaXRzZWxmLgorCisJKiBkbGxzL2QzZDgvdXRpbHMuYzogUmFwaGFlbCBKdW5xdWVpcmEgPGZlbml4QGNsdWItaW50ZXJuZXQuZnI+CisJQ29tcGlsZSBmaXguCisKKwkqIGRsbHMvbXN2Y3J0L21zdmNydC5zcGVjLCBkbGxzL21zdmNydC93Y3MuYzoKKwlNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJQ29weSB0aGUgdnNucHJpbnRmVyBpbXBsZW1lbnRhdGlvbiBmcm9tIGxpYnVuaWNvZGUuc28gdG8gbXN2Y3J0IGFuZAorCWFkZCBhIGhhbmRsZXIgZm9yIHRoZSAlUyBmbGFnLiAgVGhhdCByZXF1aXJlcyBhIGNvbnZlcnNpb24gdG8gdW5pY29kZQorCWFuZCBrbm93bGVkZ2Ugb2YgdGhlIGN1cnJlbnQgQVNDSUkgY29kZSBwYWdlLgorCisJKiBkb2N1bWVudGF0aW9uL2FkZHJlc3Mtc3BhY2Uuc2dtbCwgZG9jdW1lbnRhdGlvbi9hcmNoaXRlY3R1cmUuc2dtbCwKKwkgIGRvY3VtZW50YXRpb24vY29uZmlndXJpbmcuc2dtbDoKKwlFcmljIFBvdWVjaCA8cG91ZWNoLWVyaWNAd2FuYWRvby5mcj4KKwlVcGRhdGVkIHRoZSBkb2N1bWVudGF0aW9uIG9uIFdpbmUgYXJjaGl0ZWN0dXJlICYgZnVuZGFtZW50YWxzLgorCisJKiBkbGxzL3NldHVwYXBpL3NldHVwY2FiLmM6CisJU3RlZmFuIExlaWNodGVyIDxTdGVmYW4uTGVpY2h0ZXJAY2FtTGluZS5jb20+CisJUmVwbGFjZWQgdGhlIGNhbGwgdG8gR2V0RnVsbFBhdGhOYW1lQSBieSBhIGNhbGwgdG8gR2V0RnVsbFBhdGhOYW1lVyB0bworCWdldCByaWQgb2YgdGhlIFctPkEgY3Jvc3MgY2FsbHMuCisKKzIwMDQtMDYtMDEgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGRsbHMvd2lubW0vd2luZWFsc2EvYXVkaW8uYywgZGxscy93aW5tbS93aW5lYXJ0cy9hdWRpby5jLAorCSAgZGxscy93aW5tbS93aW5lYXVkaW9pby9hdWRpby5jLCBkbGxzL3dpbm1tL3dpbmVqYWNrL2F1ZGlvLmMsCisJICBkbGxzL3dpbm1tL3dpbmVuYXMvYXVkaW8uYywgZGxscy93aW5tbS93aW5lb3NzL2F1ZGlvLmM6CisJUm9iZXJ0IFJlaWYgPHJlaWZAZWFydGhsaW5rLm5ldD4KKwlGaXggY2FsY3VsYXRpb24gb2YgU01QVEUgdGltZSAocm91bmQgdXAgdG8gZnVsbCBmcmFtZSkuCisJTW9yZSBhY2N1cmF0ZSBtcyBjYWxjdWxhdGlvbi4KKworCSogZGxscy93aW5tbS90ZXN0cy93YXZlLmM6IFJvYmVydCBSZWlmIDxyZWlmQGVhcnRobGluay5uZXQ+CisJQWRkZWQgYSB0ZXN0IHRvIGNoZWNrIHBsYXliYWNrIHBvc2l0aW9uIGFmdGVyIGRvbmUgcGxheWluZy4KKworCSogZGxscy9zaGx3YXBpL29yZGluYWwuYywgZGxscy9zaGx3YXBpL3NobHdhcGkuc3BlYzoKKwlSYXBoYWVsIEp1bnF1ZWlyYSA8ZmVuaXhAY2x1Yi1pbnRlcm5ldC5mcj4KKwlTdHViIGZvciBTSEZsdXNoU0ZDYWNoZVdyYXAuCisKKwkqIGRsbHMvd2luaW5ldC9kaWFsb2dzLmMsIGRsbHMvd2luaW5ldC9odHRwLmMsIGRsbHMvd2luaW5ldC9pbnRlcm5ldC5jOgorCU1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlGaXggcHJveHkgc3VwcG9ydCwgcmVtb3ZlIHR5cGVjYXN0cy4KKworCSogZGxscy93aW5tbS93YXZlbWFwL3dhdmVtYXAuYzogUm9iZXJ0IFJlaWYgPHJlaWZAZWFydGhsaW5rLm5ldD4KKwlSZXR1cm5zIHByb3BlciBlcnJvciBjb2RlIHdoZW4gdHJ5aW5nIHRvIGdldCBjYXBzIHdoZW4gbm8gZGV2aWNlcworCXByZXNlbnQuCisKKwkqIGxvYWRlci9wcmVsb2FkZXIuYzogQSBmZXcgc21hbGwgZml4ZXMuCisKKwkqIGRsbHMvdXNlci90ZXN0cy93aW4uYzogRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlUZXN0IHdoZXRoZXIgd2UgY2FuIGRlc3Ryb3kgYSBtZW51IGFzc2lnbmVkIHRvIGEgd2luZG93LgorCisJKiBpbmNsdWRlL3dpbmRlZi5oLCBpbmNsdWRlL3d0eXBlcy5oLCBpbmNsdWRlL3d0eXBlcy5pZGw6CisJSm9uIEdyaWZmaXRocyA8am9uX3BfZ3JpZmZpdGhzQHlhaG9vLmNvbT4KKwlBZGRlZCBQUE9JTlRMLCBhIHBvaW50ZXIgdG8gYSBQT0lOVEwgc3RydWN0LgorCisJKiBkbGxzL3NobHdhcGkvTWFrZWZpbGUuaW46IEhhbnMgTGVpZGVra2VyIDxoYW5zQGl0LnZ1Lm5sPgorCUxpbmsgdG8gbnRkbGwuCisKKwkqIGRsbHMva2VybmVsL2V4Y2VwdC5jOiBNaWtlIEhlYXJuIDxtaEBjb2Rld2VhdmVycy5jb20+CisJVXNlIFRSQUNFIHJhdGhlciB0aGFuIEZJWE1FIGZvciBjaGVja19yZXNvdXJjZV93cml0ZS4KKworCSogZGxscy9oaGN0cmwub2N4L01ha2VmaWxlLmluLCBkbGxzL2hoY3RybC5vY3gvaGhjdHJsLmM6CisJTWlrZSBIZWFybiA8bWhAY29kZXdlYXZlcnMuY29tPgorCURpc3BsYXkgbW9yZSBpbmZvcm1hdGl2ZSBtZXNzYWdlIHdoZW4gSHRtbEhlbHAgc3R1YiBpcyBpbnZva2VkLCBhZGQKKwlBL1cgY29udmVyc2lvbiBjb2RlLCByZW1vdmUgdXNlbGVzcyAoYW5kIHdyb25nKSBodW5nYXJpYW4gbm90YXRpb24KKwlmcm9tIGZ1bmN0aW9uIHByb3RvdHlwZXMuCisKKwkqIGRsbHMvZG1pbWUvc2VnbWVudC5jOiBSYXBoYWVsIEp1bnF1ZWlyYSA8ZmVuaXhAY2x1Yi1pbnRlcm5ldC5mcj4KKwlDb3JyZWN0IHR5cG8gaW4gTG9hZFdhdmUgKHdhdmUgaXMgYW4gRE1PYmplY3Qgbm90IGEgRE1UcmFjaykuCisKKwkqIHRvb2xzL3dyYy9uZXdzdHJ1Yy5jOiBKb24gR3JpZmZpdGhzIDxqb25fcF9ncmlmZml0aHNAeWFob28uY29tPgorCUFsc28gaGFuZGxlIE9TMiB2MS54IChBS0Egd2luZG93cyAyLjApIGJpdG1hcHMuCisKKwkqIG9iamVjdHMvZ2Rpb2JqLmM6IEpvbiBHcmlmZml0aHMgPGpvbl9wX2dyaWZmaXRoc0B5YWhvby5jb20+CisJU2V0TWl0ZXJMaW1pdDogUmV0dXJuIHN1Y2Nlc3M6IHNvbWUgY2FsbGVycyBjaGVjayB0aGlzLgorCisJKiBkbGxzL3dpbmluZXQvZnRwLmMsIGRsbHMvd2luaW5ldC9pbnRlcm5ldC5jOgorCUxpb25lbCBVbG1lciA8bGlvbmVsLnVsbWVyQGZyZWUuZnI+CisJRml4IHRoZSBjYXNlIHdoZXJlIGxwc3pTZWFyY2hGaWxlIGlzIE5VTEwgaW4gRnRwRmluZEZpcnN0RmlsZS4KKworCSogaW5jbHVkZS9leGRpc3AuaCwgaW5jbHVkZS9leGRpc3AuaWRsOgorCU1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlBZGRlZCBkZWZpbml0aW9ucyBmb3IgdGhlIElTaGVsbFdpbmRvd3MgaW50ZXJmYWNlLgorCisJKiBpbmNsdWRlL3NobGRpc3AuaCwgaW5jbHVkZS9zaGxkaXNwLmlkbDoKKwlNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJQWRkZWQgZGVmaW5pdGlvbnMgZm9yIHRoZSBJRm9sZGVyVmlld09DIGludGVyZmFjZS4KKworCSogZGxscy93aW5tbS93YXZlbWFwL3dhdmVtYXAuYzogUm9iZXJ0IFJlaWYgPHJlaWZAZWFydGhsaW5rLm5ldD4KKwlGaXhlZCBhIGJ1ZyB3aGVyZSB3cm9uZyBhIHJldHVybiB2YWx1ZSB3YXMgcmV0dXJuZWQgd2hlbiBtYXBwaW5nIGlzCisJbm90IHBvc3NpYmxlLgorCisJKiBkbGxzL21zYWNtL2RyaXZlci5jOiBSb2JlcnQgUmVpZiA8cmVpZkBlYXJ0aGxpbmsubmV0PgorCUFkZGVkIHRyYWNlIGFuZCBkZWJ1ZyBwcmludGluZyBpbmZvLgorCisJKiBkbGxzL3dpbm1tL2xvbHZsZHJ2LmMsIGRsbHMvd2lubW0vd2luZW1tLmgsIGRsbHMvd2lubW0vd2lubW0uYzoKKwlSb2JlcnQgUmVpZiA8cmVpZkBlYXJ0aGxpbmsubmV0PgorCUFkZGVkIHNvbWUgdHJhY2UgYW5kIGRlYnVnIHByaW50aW5nLgorCisJKiBkbGxzL3dpbm1tL3Rlc3RzL2NhcHR1cmUuYywgZGxscy93aW5tbS90ZXN0cy93YXZlLmM6CisJUm9iZXJ0IFJlaWYgPHJlaWZAZWFydGhsaW5rLm5ldD4KKwlBZGRlZCBhbm90aGVyIHBvc3NpYmxlIHdpbmRvd3MgZmFpbHVyZSBtb2RlLgorCisJKiBkbGxzL3VzZXIvdGVzdHMvbXNnLmM6IERtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJQWRkIGRpYWxvZyBjbGFzcyBuYW1lIHRvIHRoZSBsaXN0IG9mIGNsYXNzZXMgaGFuZGxlZCBieSBob29rLCBhZGQgaG9vaworCW1lc3NhZ2VzIHRvIHRoZSBtb2RhbCBkaWFsb2cgbWVzc2FnZSB0ZXN0LgorCisyMDA0LTA1LTMwICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL2tlcm5lbC90ZXN0cy9sb2NhbGUuYzogUm9iZXJ0IFJlaWYgPHJlaWZAZWFydGhsaW5rLm5ldD4KKwlOVCA0LjAgZG9lc24ndCBzdXBwb3J0IE1BUF9FWFBBTkRfTElHQVRVUkVTIHNvIHNraXAgdGVzdCBpZiBpdCByZXR1cm5zCisJRVJST1JfSU5WQUxJRF9GTEFHUy4KKworCSogZGxscy9udGRsbC9zZXJ2ZXIuYzoKKwlVc2Ugd2luZV9leGVjX3dpbmVfYmluYXJ5IGluIGFsbCBjYXNlcyB0byBzdGFydCB0aGUgc2VydmVyLgorCisJKiBsaWJzL3dpbmUvY29uZmlnLmM6IENocmlzdGlhbiBDb3N0YSA8dGl0YW4uY29zdGFAd2FuYWRvby5mcj4KKwlGaXhlZCBwcmVsb2FkZXJfZXhlYy4KKworCSogdG9vbHMvd3JjL3dyYy5tYW46IERpbWl0cmllIE8uIFBhdW4gPGRwYXVuQHJvZ2Vycy5jb20+CisJRG9jdW1lbnQgdGhlIC0tdmVyYm9zZSBzd2l0Y2guCisKKzIwMDQtMDUtMjkgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGluY2x1ZGUvd2luZS9saWJyYXJ5LmgsIGluY2x1ZGUvd2luZS9wb3J0LmgsIGxpYnMvd2luZS9sb2FkZXIuYywKKwkgIGxvYWRlci9tYWluLmM6CisJUGFzcyB0aGUgZW52aXJvbiB2YXJpYWJsZSBmcm9tIG1haW4gdG8gdHJ5IHRvIGF2b2lkIERhcndpbidzCisJX05TR2V0RW52aXJvbigpIHVnbGluZXNzLgorCisJKiBkbGxzL29sZTMyL21hcnNoYWwuYzogUm9iZXJ0IFNoZWFybWFuIDxSLkouU2hlYXJtYW5Ad2Fyd2ljay5hYy51az4KKwlGaXhlZCBDb01hcnNoYWxJbnRlclRocmVhZEludGVyZmFjZUluU3RyZWFtIGFuZAorCUNvR2V0SW50ZXJmYWNlQW5kUmVsZWFzZVN0cmVhbS4KKworCSogZGxscy9vbGVhdXQzMi90eXBlbGliLmM6IEl2YW4gTGVvIFB1b3RpIDxwdW90aUBpbndpbmQuaXQ+CisJUmVtb3ZlZCBkY29tIGxpbmsuCisKKwkqIGNvbnRyb2xzL2VkaXQuYzogS3Jpc2huYSBNdXJ0aHkgPEtyaXNobmEuTXVydGh5QGd1cHRhd29ybGR3aWRlLmNvbT4KKwlFRElUX0VNX1JlcGxhY2VTZWwgc2hvdWxkIHNpbXBseSB0cnVuY2F0ZSBjaGFyYWN0ZXJzIHRoYXQgZXhjZWVkIHRoZQorCWxpbWl0LgorCisyMDA0LTA1LTI4ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGxscy9rZXJuZWwvcHJvY2Vzcy5jLCBkbGxzL250ZGxsL3NlcnZlci5jLAorCSAgaW5jbHVkZS93aW5lL2xpYnJhcnkuaCwgbGlicy93aW5lL2NvbmZpZy5jLCBsb2FkZXIvLmN2c2lnbm9yZSwKKwkgIGxvYWRlci9NYWtlZmlsZS5pbiwgbG9hZGVyL2dsaWJjLmMsIGxvYWRlci9tYWluLmMsIGxvYWRlci9tYWluLmgsCisJICBsb2FkZXIvcHJlbG9hZGVyLmM6CisJSW5pdGlhbCB2ZXJzaW9uIG9mIHRoZSBXaW5lIHByZWxvYWRlciwgdXNlZCB0byByZXNlcnZlIG1lbW9yeQorCWFyZWFzIGF0IHN0YXJ0dXAuIEJhc2VkIG9uIHRoZSB3b3JrIG9mIE1pa2UgTWNDb3JtYWNrLgorCisJKiBzZXJ2ZXIvdXNlci5jLCB3aW5kb3dzL3dpbi5jOgorCU9ubHkgYWxsb2NhdGUgZXZlbi1udW1iZXJlZCB3aW5kb3cgaGFuZGxlcywgTVMgUHJvamVjdCBkZXBlbmRzIG9uIHRoYXQKKwkoZm91bmQgYnkgRG1pdHJ5IFRpbW9zaGtvdikuCisKKwkqIGluY2x1ZGUvd2luZS9wb3J0Lmg6CisJTWFrZSBzdXJlIF9fQVNNX0dMT0JBTF9GVU5DIGdlbmVyYXRlcyBjb2RlIGluIHRoZSB0ZXh0IHNlZ21lbnQuCisKKwkqIGRsbHMva2VybmVsL25lX3NlZ21lbnQuYzogTWlrZSBIZWFybiA8bWhAY29kZXdlYXZlcnMuY29tPgorCVByaW50IG1vZHVsZSBuYW1lIHdoZW4gY2FsbGluZyBMaWJNYWluLgorCisJKiBkbGxzL3NoZWxsMzIvc2hlbGxwYXRoLmM6IEFyaWMgU3Rld2FydCA8YXJpY0Bjb2Rld2VhdmVycy5jb20+CisJTWFrZSBzdXJlIHRoYXQgdGhlIHNpemUgb2YgdGhlIGJ1ZmZlciBwYXNzZWQgdG8gUmVnU2V0VmFsdWVFeFcgaXMgaW4KKwlieXRlcyBub3QgV0NIQVJzLgorCisJKiB3aW5kb3dzL3NweS5jOiBEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCUFkZCBzb21lIG5ldyBtZXNzYWdlIG5hbWVzIHRvIHRoZSBtZXNzYWdlIHNweS4KKworCSogZGxscy91c2VyL3Rlc3RzL2NsYXNzLmMsIHdpbmRvd3MvY2xhc3MuYzoKKwlEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCUFkZCBhIHRlc3QgZm9yIGFjY2Vzc2luZyBjbGFzc2VzIGZyb20gYW5vdGhlciB0aHJlYWQuCisJRml4IFVucmVnaXN0ZXJDbGFzcyBiZWhhdmlvdXIgd2l0aCBOVUxMIGhJbnN0YW5jZS4KKworCSogZG9jdW1lbnRhdGlvbi9NYWtlZmlsZS5pbiwgZG9jdW1lbnRhdGlvbi9hZGRyZXNzLXNwYWNlLnNnbWwsCisJICBkb2N1bWVudGF0aW9uL3dpbmUtZGV2ZWwuc2dtbDoKKwlNaWtlIEhlYXJuIDxtaEBjb2Rld2VhdmVycy5jb20+CisJQWRkZWQgZG9jdW1lbnRhdGlvbiBvbiB0aGUgYWRkcmVzcyBzcGFjZSBsYXlvdXQgaW4gV2luZS4KKworCSogdG9vbHMvd2luZS5pbmY6CisJVXNlIHByb3BlciBkaXJpZHMgaW5zdGVhZCBvZiBoYXJkY29kaW5nIGM6XFByb2dyYW0gRmlsZXMuCisKKwkqIGRsbHMvbnRkbGwvdmlydHVhbC5jLCBsaWJzL3dpbmUvbW1hcC5jOgorCURvbid0IHJlbHkgb24gdGhlIHJlc2VydmVkIGFyZWEgbGlzdCBiZWluZyBlbXB0eSBpbiByZXNlcnZlX2FyZWEsCisJc2luY2UgdGhlIHByZWxvYWRlciB3aWxsIG5lZWQgdG8gYWRkIHRoaW5ncyB0byB0aGUgbGlzdCBiZWZvcmUKKwlzdGFydHVwLgorCisJKiBkbGxzL2tlcm5lbC9kb3NtZW0uYzoKKwlFbnN1cmUgdGhhdCB3ZSBjYW4gaW5pdGlhbGl6ZSB0aGUgRE9TIG1lbW9yeSBhcmVhIGNvcnJlY3RseSBldmVuIGlmIGl0CisJaGFzIGJlZW4gcHJlLXJlc2VydmVkIGFscmVhZHkuCisKKwkqIGRsbHMvc2V0dXBhcGkvTWFrZWZpbGUuaW4sIGRsbHMvc2V0dXBhcGkvZGlyaWQuYzoKKwlBZGRlZCBzdXBwb3J0IGZvciBkaXJpZHMgdGhhdCBtYXAgdG8gYSBDU0lETCB2YWx1ZSAoYmFzZWQgb24gYSBwYXRjaAorCWJ5IE1pa2UgTWNDb3JtYWNrKS4KKworCSogZGxscy94MTFkcnYvaW5pdC5jOiBNaWtlIEhlYXJuIDxtaWtlQG5hdmkuY3g+CisJRGVmYXVsdCB0byA5NmRwaSB3aGVuIG5vdCBzcGVjaWZpZWQgaW4gdGhlIGNvbmZpZyBmaWxlLgorCisJKiBkbGxzL2QzZDgvZDNkY29yZV9nbC5oLCBkbGxzL2QzZDgvdXRpbHMuYzoKKwlDaHJpc3RpYW4gQ29zdGEgPHRpdGFuLmNvc3RhQHdhbmFkb28uZnI+CisJSW1wbGVtZW50ZWQgc29tZSB0ZXh0dXJlIG9wZXJhdGlvbnMgdXNpbmcgQVRJX3RleHR1cmVfZW52X2NvbWJpbmUzLgorCUZpeGVkIEQzRFRPUF9MRVJQLgorCUZpeGVkIHNvbWUgY2hlY2tHTGNhbGwgZXJyb3IgbWVzc2FnZXMuCisKKzIwMDQtMDUtMjcgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGRsbHMvd2lubW0vd2lubW0uYzoKKwlVd2UgQm9ubmVzIDxib25AZWxla3Ryb24uaWtwLnBoeXNpay50dS1kYXJtc3RhZHQuZGU+CisJRml4ZWQgbWlzc2luZyBpbnZlcnNpb24gaW4gYml0IG1hbmlwdWxhdGlvbi4KKworCSogZGxscy93aW5tbS9sb2x2bGRydi5jLCBkbGxzL3dpbm1tL3dpbm1tLmM6CisJUm9iZXJ0IFJlaWYgPHJlaWZAZWFydGhsaW5rLm5ldD4KKwlGaXhlZCBhIHByb2JsZW0gd2VyZSBhIHRyYWNlIGFjY2Vzc2VzIGEgZGF0YSBtZW1iZXIgdGhhdCBtYXkgYmUKKwlvdXRzaWRlIG9mIHRoZSBhY3R1YWwgZGF0YSBzdHJ1Y3R1cmUgcGFzc2VkIGluLgorCUFkZGVkIHNvbWUgbW9yZSBkZWJ1ZyB0cmFjZXMuCisKKwkqIGRsbHMvc2hlbGwzMi9icnNmb2xkZXIuYzoKKwlVd2UgQm9ubmVzIDxib25AZWxla3Ryb24uaWtwLnBoeXNpay50dS1kYXJtc3RhZHQuZGU+CisJQXNzdW1lIE1BWF9QQVRIIGxlbmd0aCBmb3IgcHN6RGlzcGxheU5hbWUuCisKKwkqIGRsbHMvbXN2Y3J0L2ZpbGUuYzoKKwlVd2UgQm9ubmVzIDxib25AZWxla3Ryb24uaWtwLnBoeXNpay50dS1kYXJtc3RhZHQuZGU+CisJRml4ZWQgdHlwby4KKworCSogaW5jbHVkZS9jb21tZGxnLmg6IEpvbiBHcmlmZml0aHMgPGpvbl9wX2dyaWZmaXRoc0B5YWhvby5jb20+CisJR2l2ZSBhIHN0cnVjdCB0YWcgdG8gT1BFTklMRU5BTUVBL1cgdG8gYWxsb3cgZm9yd2FyZCBkZWNsYXJhdGlvbnMuCisKKwkqIGRsbHMva2VybmVsL3Nub29wMTYuYzogUmVpbiBLbGF6ZXMgPHJrbGF6ZXNAeHM0YWxsLm5sPgorCUZpeCB0aGUgbWlzc2luZyB0cmVhZCBJRCBvZiBzb21lIHNub29wIHJldHVybiB0cmFjZXMuCisKKwkqIGRsbHMvd2lubW0vdGVzdHMvY2FwdHVyZS5jLCBkbGxzL3dpbm1tL3Rlc3RzL3dhdmUuYywKKwkgIGRsbHMvd2lubW0vdGVzdHMvd2lubW1fdGVzdC5oOgorCVJvYmVydCBSZWlmIDxyZWlmQGVhcnRobGluay5uZXQ+CisJQWRkZWQgV0FWRV9NQVBQRUQgZmxhZyB0ZXN0LgorCUFkZGVkIDgwMDAgSHogdGVzdCBhcyBhIHR5cGljYWxseSBzdXBwb3J0ZWQgZm9ybWF0LgorCUFkZGVkIDEyMDAwIEh6IHRlc3QgYXMgYSB0eXBpY2FsbHkgdW5zdXBwb3J0ZWQgZm9ybWF0LgorCVRlc3QgZXJyb3IgcmVwb3J0aW5nIGJldHRlciBieSB0ZXN0aW5nIHVuc3VwcG9ydGVkIGZvcm1hdHMuCisJVGVzdCB1c2luZyBQQ01XQVZFRk9STUFUIGluIHBsYWNlIG9mIFdBVkVGT1JNQVRFWC4KKworCSogZGxscy9hdmlmaWwzMi9hdmlmaWxlX0l0LnJjLCBkbGxzL2NvbWN0bDMyL2NvbWN0bF9JdC5yYywKKwkgIGRsbHMvY29tbWRsZy9jZGxnX0l0LnJjLCBkbGxzL2QzZHJtL2QzZHJtX21haW4uYywKKwkgIGRsbHMvZDNkcm0vdmVyc2lvbi5yYywgZGxscy9tc2FjbS9tc2FjbV9JdC5yYywKKwkgIGRsbHMvbXNybGUzMi9tc3JsZV9JdC5yYywgZGxscy9vbGVkbGcvb2xlZGxnX0l0LnJjLAorCSAgZGxscy9xY2FwL3ZlcnNpb24ucmMsIGRsbHMvc2VyaWFsdWkvSXQucmMsIGRsbHMvc2V0dXBhcGkvSXQucmMsCisJICBkbGxzL3NoZWxsMzIvc2hlbGwzMl9JdC5yYywgZGxscy91c2VyL3Jlc291cmNlcy91c2VyMzJfSXQucmMsCisJICBkbGxzL3dpbmVwcy93cHNfSXQucmMsIGRsbHMvd2luaW5ldC93aW5pbmV0X0l0LnJjLAorCSAgZGxscy93aW5tbS93aW5tbV9JdC5yYywgZG9jdW1lbnRhdGlvbi9SRUFETUUuaXQsCisJICBkb2N1bWVudGF0aW9uL2NvbmZpZ3VyaW5nLnNnbWwsIGluY2x1ZGUvd2luZS93aW5lX2NvbW1vbl92ZXIucmMsCisJICBwcm9ncmFtcy9jbG9jay9JdC5yYywgcHJvZ3JhbXMvY21kbGd0c3QvSXQucmMsCisJICBwcm9ncmFtcy9ub3RlcGFkL0l0LnJjLCBwcm9ncmFtcy9wcm9nbWFuL0l0LnJjLAorCSAgcHJvZ3JhbXMvcmVnZWRpdC9JdC5yYywgcHJvZ3JhbXMvcmVnZWRpdC9yZXNvdXJjZS5yYywKKwkgIHByb2dyYW1zL3N0YXJ0L0l0LnJjLCBwcm9ncmFtcy91bmluc3RhbGxlci9yc3JjLnJjLAorCSAgcHJvZ3JhbXMvdmlldy9JdC5yYywgcHJvZ3JhbXMvd2luZWZpbGUvSXQucmMsCisJICBwcm9ncmFtcy93aW5lbWluZS9JdC5yYywgdG9vbHMvYnVnX3JlcG9ydC5wbDoKKwlJdmFuIExlbyBQdW90aSA8cHVvdGlAaW53aW5kLml0PgorCUNoYW5nZWQgbXkgbmFtZSwgc28gdXBkYXRlIGNvcHlyaWdodCBpbmZvLgorCisJKiBkbGxzL3gxMWRydi94cmVuZGVyLmM6IFRyb3kgUm9sbG8gPHdpbmVAdHJveS5yb2xsby5uYW1lPgorCU1ha2UgdW5kZXJsaW5pbmcgb2YgZm9udHMgZHJhd24gYXQgYW4gYW5nbGUgZm9sbG93IHRoZSB0ZXh0LgorCisJKiBvYmplY3RzL2RpYi5jOiBBbGV4IFZpbGxhY+1zIExhc3NvIDxhX3ZpbGxhY2lzQHBhbG9zYW50by5jb20+CisJUmV0dXJuIGxpbmUgY291bnQgd2hlbiB0aGUgYml0cyBwYXJhbWV0ZXIgaXMgTlVMTC4KKworCSogZGxscy9kM2Q4L2QzZDguc3BlYywgZGxscy9kM2Q4L2QzZGNvcmVfZ2wuaCwgZGxscy9kM2Q4L2RpcmVjdHguYywKKwkgIGRsbHMvZDNkOC9zaGFkZXIuYywgZGxscy9kM2Q4L3V0aWxzLmMsCisJICBkbGxzL2QzZDgvdnNoYWRlcmRlY2xhcmF0aW9uLmM6CisJUmFwaGFlbCBKdW5xdWVpcmEgPGZlbml4QGNsdWItaW50ZXJuZXQuZnI+CisJLSB0aGUgaGFyZHdhcmUgR0wgdmVuZG9ycyAoTlZpZGlhIGFuZCBBVEkpIGNhbiBzdXBwb3J0IG1vcmUgdGhhbiA5NQorCWNvbnN0YW50cyAodGhlIE1lc2EgYnVnKSBhbmQgVlJhbGx5IHVzZSB0aGUgMC4uOTUgaW5kZXhlcyBzbyBmaXggaXQKKwktIGZpeCBub3JtYWxpemUgZm9yIHNvbWUgSFcgVmVydGV4U2hhZGVyIGlucHV0cworCS0gdHJ5aW5nIHRvIGZpeCB0aGUgY29tYmluYXRpb24gb2YgTlZfdGV4dHVyZV9jb21iaW5lXzQgd2l0aAorCXRleHR1cmVfY29tYmluZV9FWFQgKGltcGwgb2YgRDNEVE9QX0RJU0FCTEUsIEQzRFRPUF9NT0RVTEFURSBmb3IKKwlOVl90ZXh0dXJlX2NvbWJpbmVfNCkKKwktIGlmIHNoYWRlcnMgZGlzYWJsZWQgZGVjbGFyZSB0byBzdXBwb3J0IDAgZm9yIE1heFZlcnRleFNoYWRlckNvbnN0LgorCisJKiBkbGxzL3VzZXIvdGVzdHMvZGlhbG9nLmM6IEtldmluIEtvbHR6YXUgPGtldmluQHBsb3Aub3JnPgorCVJlbW92ZSBwYXJ0IG9mIHRlc3QgdGhhdCBjcmFzaGVzIHdpbjk1LgorCisJKiBkbGxzL29sZWF1dDMyL29sZWF1dC5jLCBkbGxzL29sZWF1dDMyL29sZWF1dDMyLnNwZWM6CisJQWxleCBWaWxsYWPtcyBMYXNzbyA8YV92aWxsYWNpc0BwYWxvc2FudG8uY29tPgorCUFkZGVkIHN0dWIgZm9yIEdldFJlY29yZEluZm9Gcm9tR3VpZHMuCisKKwkqIGxpYnMvd2luZS9tbWFwLmM6IEtldmluIEtvbHR6YXUgPGtldmluQHBsb3Aub3JnPgorCUZpeGVkIGxhc3QgbW1hcCBpc3N1ZSB3aXRoIG1pbmd3IHdpbmRvd3MgYnVpbGQuCisKKwkqIGRsbHMvZG1pbWUvc2VnbWVudC5jOiBSYXBoYWVsIEp1bnF1ZWlyYSA8ZmVuaXhAY2x1Yi1pbnRlcm5ldC5mcj4KKwlTdXBwb3J0IGxvYWRpbmcgb2YgV2F2ZSBzZWdtZW50cyBvbiBJRGlyZWN0TXVzaWNTZWdtZW50OC4KKworCSogZGxscy9kaW5wdXQvam95c3RpY2tfbGludXguYywgZGxscy9kaW5wdXQvam95c3RpY2tfbGludXhpbnB1dC5jOgorCUNocmlzdGlhbiBDb3N0YSA8dGl0YW4uY29zdGFAd2FuYWRvby5mcj4KKwlGaXhlZCBqb3lzdGljayBkZXZpY2UgdHlwZSBmb3IgZGlucHV0OC4KKworCSogZGxscy9zaGVsbDMyL2NvbnRyb2wuYzogU3RlZmFuIExlaWNodGVyIDxTdGVmYW4uTGVpY2h0ZXJAY2FtTGluZS5jb20+CisJTW92ZWQgc3R1YiBvZiBDb250cm9sX0ZpbGxDYWNoZV9SdW5ETEwgZnJvbSBhc2NpaSB0byB1bmljb2RlLgorCisJKiBkbGxzL2RtaW1lL3BlcmZvcm1hbmNlLmM6IFJhcGhhZWwgSnVucXVlaXJhIDxmZW5peEBjbHViLWludGVybmV0LmZyPgorCS0gZG9uJ3QgdXNlIGEgc3R1cGlkICJ3aGlsZSAoMSk7IiB0aHJlYWQgd2hlbiBETVBlcmZvcm1hbmNlIE1TRyBRdWV1ZSBlbXB0eQorCS0gdHJ5IHRvIHVzZSBsYXRlbmN5IGFuZCBNU0cgc3luY2hybyBmb3IgdGltZW91dCAoYnV0IGFzIGknbSBub3QgYQorCSAgc291bmQgZXhwZXJ0IGRvbid0IGV4cGVjdCB0b28gbXVjaCkKKworMjAwNC0wNS0yNSAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogbGlicy93aW5lL21tYXAuYzogUG9ydGFiaWxpdHkgZml4LgorCisJKiBpbmNsdWRlL3dpbmUvcG9ydC5oLCBsaWJzL3dpbmUvY29uZmlnLmMsIGxpYnMvd2luZS9sb2FkZXIuYzoKKwlNb3ZlZCBlbnZpcm9uIGRlZmluaXRpb24gdG8gcG9ydC5oLgorCisJKiBjb250cm9scy9lZGl0LmM6IFVscmljaCBDemVrYWxsYSA8dWxyaWNoQGNvZGV3ZWF2ZXJzLmNvbT4KKwlGaXggdXBkYXRlIHJlZ2lvbiBjYWxjdWxhdGlvbiBmb3IgdGhlIGNhc2Ugd2hlcmUgYSB3b3JkIHdyYXBzIHVwIHRvCisJdGhlIHByZXZpb3VzIGxpbmUuCisKKwkqIGluY2x1ZGUvY29tbWN0cmwuaDogSm9uIEdyaWZmaXRocyA8am9uX3BfZ3JpZmZpdGhzQHlhaG9vLmNvbT4KKwlBZGQgYSBjb3VwbGUgb2YgbWlzc2luZyBsaXN0dmlldyBtYWNyb3MuCisKKwkqIHdpbmRvd3MvbWRpLmM6IERtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJRG8gbm90IGFjdGl2YXRlIGFuIE1ESSBjaGlsZCBpZiB0aGUgY2hpbGQgaXMgaW52aXNpYmxlLgorCisJKiB0b29scy93aW5lZ2NjL3dpbmVnY2MuYzogSm9uIEdyaWZmaXRocyA8am9uX3BfZ3JpZmZpdGhzQHlhaG9vLmNvbT4KKwlBbHdheXMgdXNlICQoQ0MpIGZvciBidWlsZGluZyB0aGUgZ2VuZXJhdGVkIC5zcGVjLmMgZmlsZS4KKworCSogZGxscy9rZXJuZWwvaGVhcC5jOgorCUFsbG9jYXRlIHRoZSBzaGFyZWQgaGVhcCBpbnNpZGUgdGhlIFdpbjl4IHNoYXJlZCBtZW1vcnkgYXJlYS4KKworCSogZGxscy9rZXJuZWwva2VybmVsX21haW4uYzoKKwlPbmx5IGNyZWF0ZSB0aGUgc2hhcmVkIGhlYXAgd2hlbiBXaW5kb3dzIHZlcnNpb24gaXMgV2luOXguCisKKwkqIGxpYnMvd2luZS9jb25maWcuYywgbGlicy93aW5lL2xvYWRlci5jOgorCUVtbWFudWVsIE1haWxsYXJkIDxlLnJzekBsaWJlcnR5c3VyZi5mcj4KKwlBZGRlZCBlbnZpcm9uIHN1cHBvcnQgZm9yIERhcndpbi4KKworCSogY29udHJvbHMvc3RhdGljLmM6IE9sZWcgUHJva2hvcm92IDx4b2xlZ3Byb0ByYmNtYWlsLnJ1PgorCVJlbW92ZWQgRFRfTk9DTElQIGZvcm1hdCBmbGFnLgorCisJKiBjb250cm9scy9zdGF0aWMuYzogUmVpbiBLbGF6ZXMgPHJrbGF6ZXNAeHM0YWxsLm5sPgorCVdoZW4gcmVwYWludGluZyBhIHN0YXRpYyBjb250cm9sLCB3aXRoIFNTX0JJVE1BUCBzdHlsZSwgZG8gbm90IGVyYXNlCisJdGhlIGJhY2tncm91bmQuIEtlZXAgc2VuZGluZyB0aGUgV01fQ1RMQ09MT1JTVEFUSUMgbm90aWZpY2F0aW9uIGFzCisJV2luZG93cyBkb2VzLgorCisJKiBsaWJzL3dpbmUvcG9ydC5jOgorCUVtbWFudWVsIE1haWxsYXJkIDxtYWlsbGFyZC5lbW1hbnVlbEBsaWJlcnR5c3VyZi5mcj4KKwlBZGp1c3Qgc3RhY2sgcG9pbnRlciBpbiB3aW5lX3N3aXRjaF90b19zdGFjayB0byBwcmV2ZW50IHNlZ21lbnRhdGlvbgorCWZhdWx0IG9uIGRhcndpbi9wcGMuCisKKwkqIGRsbHMvd2luaW5ldC9mdHAuYywgZGxscy93aW5pbmV0L2ludGVybmV0LmMsIGRsbHMvd2luaW5ldC9pbnRlcm5ldC5oLAorCSAgZGxscy93aW5pbmV0L3V0aWxpdHkuYywgZGxscy93aW5pbmV0L3dpbmluZXQuc3BlYzoKKwlLZXZpbiBLb2x0emF1IDxrZXZpbkBwbG9wLm9yZz4KKwlNb3ZlIGFsbCBGVFAgZnVuY3Rpb25zIHRvIHVuaWNvZGUuCisJSW1wcm92ZSBGVFAgTElTVCBwYXJzaW5nLgorCisJKiBkbGxzL2tlcm5lbC9wcm9jZXNzLmMsIGRsbHMvbnRkbGwvdmlydHVhbC5jLCBpbmNsdWRlL3dpbmUvbGlicmFyeS5oLAorCSAgbGlicy93aW5lL01ha2VmaWxlLmluLCBsaWJzL3dpbmUvbG9hZGVyLmMsIGxpYnMvd2luZS9tbWFwLmMsCisJICBsaWJzL3dpbmUvcG9ydC5jLCBsaWJzL3dpbmUvd2luZS5kZWYsIGxpYnMvd2luZS93aW5lLm1hcCwKKwkgIGxvYWRlci9tYWluLmM6CisJQWRkZWQgc3VwcG9ydCBmb3IgbWFuYWdpbmcgcmVzZXJ2ZWQgbWVtb3J5IGFyZWFzIGluIGxpYndpbmUgYW5kIG50ZGxsLgorCVRyeSB0byByZXNlcnZlIGV2ZXJ5dGhpbmcgYWJvdmUgMHg4MDAwMDAwMCBvbiBzdGFydHVwLgorCisJKiBkbGxzL3NobHdhcGkvc3RvcHdhdGNoLmM6CisJU3RlZmFuIExlaWNodGVyIDxTdGVmYW4uTGVpY2h0ZXJAY2FtTGluZS5jb20+CisJTW92ZWQgc3R1YiBvZiBTdG9wV2F0Y2ggZnJvbSBhc2NpaSB0byB1bmljb2RlLgorCisJKiBkbGxzL2FkdmFwaTMyL2FkdmFwaTMyLnNwZWMsIGRsbHMvYWR2YXBpMzIvc2VjdXJpdHkuYzoKKwlXaWxsaWFtIExhaHRpIDxjb21wdXRlcm1hbjQxM0BlenJzLmNvbT4KKwlJbXBsZW1lbnRlZCBBcmVBbnlBY2Nlc3Nlc0dyYW50ZWQuCisKKwkqIGRsbHMva2VybmVsL3Rlc3RzL2ZpbGUuYzogRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlBdm9pZCBhIGZhaWx1cmUgdW5kZXIgV2luOXguCisKKzIwMDQtMDUtMjQgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGRsbHMvZGJnaGVscC9lbGZfbW9kdWxlLmM6IERtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJRml4IGVsZl9yZWFkX3dpbmVfbG9hZGVyX2RiZ19pbmZvKCkgZm9yIHRoZSAhX19FTEZfXyBjYXNlLgorCisJKiBkbGxzL3VzZXIvdGVzdHMvbXNnLmM6IERtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJQWRkIG1lc3NhZ2UgdGVzdCBmb3IgRHJhd01lbnVCYXIuCisKKwkqIGRsbHMvdXNlci90ZXN0cy93aW4uYzogRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlBZGQgYSB0ZXN0IGZvciBmb2N1cyBjaGFuZ2Ugb24gU2hvd1dpbmRvdyhjaGlsZCwgU1dfSElERSkuCisKKwkqIGRsbHMvZGJnaGVscC9kYmdoZWxwLmMsIGRsbHMvZGJnaGVscC9lbGZfbW9kdWxlLmMsCisJICBkbGxzL2RiZ2hlbHAvbW9kdWxlLmMsIGRsbHMvZGJnaGVscC9tc2MuYywgZGxscy9kYmdoZWxwL3BlX21vZHVsZS5jLAorCSAgZGxscy9kYmdoZWxwL3N5bWJvbC5jLCBkbGxzL2RiZ2hlbHAvdHlwZS5jOgorCUVyaWMgUG91ZWNoIDxwb3VlY2gtZXJpY0B3YW5hZG9vLmZyPgorCS0gc29tZSBtb3JlIGZpeGVzIHRvIGVsZiBtb2R1bGUncyBzeW1ib2wgdGFibGUgaGFuZGxpbmcgKGluY2x1ZGluZworCSAgc3RhdGljL2dsb2JhbCBkaWZmIGZvciB2YXJpYWJsZXMpCisJLSBub3cgcmUtc3luY2hyb25pemluZyBFTEYgbGlzdCBpbiBhbGwgY2FzZXMgKG5vIGxvbmdlciBkZXBlbmRpbmcgb24KKwkgIFJUX0NPTlNJU1RFTlQgc3RhdGUpCisJLSBub3cgc2hvdWxkIGJlIGFibGUgdG8gZGlmZmVyZW50aWF0ZSBwcm9wZXJseSBhIG5hdGl2ZSBmcm9tIGEgYnVpbHRpbgorCSAgbW9kdWxlCisJLSBpbiBzeW1ib2wgbG9va3VwLCBub3cgdXNpbmcgc2l6ZSBvZiBzeW1ib2wgKGlmIGtub3duKQorCS0gU3ltR2V0VHlwZUluZm8gbm93IGNoZWNrcyBhbmQgdXNlcyBCYXNlQWRkcmVzcworCS0gaW4gTVNDLUNWLCByZWFsbHkgZ2VuZXJhdGUgdGh1bmsgb2JqZWN0cworCisJKiBkbGxzL250ZGxsL2RpcmVjdG9yeS5jOiBEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCUN5Z3dpbidzIG1udGVudC5oIHJlcXVpcmVzIHN0ZGlvLmggdG8gYmUgaW5jbHVkZWQgZmlyc3QuCisKKwkqIGRsbHMva2VybmVsL3Rlc3RzL3BpcGUuYzogRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlFeHBsaWNpdGx5IHNwZWNpZnkgbmFtZSBvZiB0aGUgcGlwZSBpbiB0aGUgcGlwZSB0ZXN0LgorCisJKiBkbGxzL2tlcm5lbC90b29saGVscC5jOiBFcmljIFBvdWVjaCA8cG91ZWNoLWVyaWNAd2FuYWRvby5mcj4KKwlTb21lIGZpeGVzIHRvIG1vZHVsZSBicm93c2luZy4KKworMjAwNC0wNS0yMiAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogc2VydmVyL2ZkLmM6CisJTWFrZSBzdXJlIHdlIGRvbid0IHRydW5jYXRlIHRoZSBmaWxlIG9uIG9wZW4gYmVmb3JlIHdlIGhhdmUgY2hlY2tlZAorCXRoZSBzaGFyaW5nIG1vZGVzICh0aGFua3MgdG8gRG1pdHJ5IFRpbW9zaGtvdiBmb3IgdGhlIHRlc3QgY2FzZSkuCisKKwkqIGRsbHMva2VybmVsL3Rlc3RzL2ZpbGUuYzogRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlBZGQgYSB0ZXN0IGZvciBvcGVuaW5nIGFuIGFscmVhZHkgb3BlbmVkIGZpbGUgZm9yIHdyaXRpbmcgaW4gYSBub3QKKwljb21wYXRpYmxlIHNoYXJpbmcgbW9kZS4KKworCSogZGxscy9rZXJuZWwvZmlsZS5jOiBDaHJpc3RpYW4gQ29zdGEgPHRpdGFuLmNvc3RhQHdhbmFkb28uZnI+CisJQWRkZWQgc29tZSB0cmFjZXMgdG8ga2VybmVsIGZpbGUgZnVuY3Rpb25zLgorCisyMDA0LTA1LTIxICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL2tlcm5lbC90ZXN0cy92aXJ0dWFsLmMsIGRsbHMva2VybmVsL3ZpcnR1YWwuYywKKwkgIGRsbHMvbnRkbGwvdmlydHVhbC5jLCBpbmNsdWRlL3dpbmUvbGlzdC5oOgorCUNvbnZlcnRlZCB0aGUgbWVtb3J5IHZpZXdzIGxpc3QgdG8gdXNlIHRoZSBzdGFuZGFyZCBmdW5jdGlvbnMgZnJvbQorCXdpbmUvbGlzdC5oLgorCVJlc3RydWN0dXJlZCBzb21lIGZ1bmN0aW9ucyB0byBhbHdheXMgcmV0dXJuIHByb3BlciBOVCBzdGF0dXMgY29kZXMuCisJQSBjb3VwbGUgb2Ygb3B0aW1pemF0aW9ucy4KKwlBZGRlZCBhIGZldyB0ZXN0cyBmb3IgZmlsZSBtYXBwaW5ncy4KKworCSogZGxscy9kcGxheS8uY3ZzaWdub3JlLCBkbGxzL2RwbGF5L01ha2VmaWxlLmluLCBkbGxzL2RwbGF5L3ZlcnNpb24ucmMsCisJICBkbGxzL3FjYXAvcWNhcF9tYWluLmMsIGRvY3VtZW50YXRpb24vc2FtcGxlcy9jb25maWc6CisJVG9tIFdpY2tsaW5lIDx0d2lja2xpbmVAc2l0ZXN0YXIubmV0PgorCS0gYWRkIHZlcnNpb24gaW5mbyB0byBkcGxheS5kbGwKKwktIGFkZCBsaWNlbmNlIGluZm8gdG8gcWNhcAorCS0gYWRkIGQzZHJtIGFuZCBkcG5ocGFzdCB0byBkbGwgb3ZlcnJpZGVzCisKKwkqIGRsbHMvd2lubW0vdGVzdHMvY2FwdHVyZS5jLCBkbGxzL3dpbm1tL3Rlc3RzL3dhdmUuYywKKwkgIGRsbHMvd2lubW0vdGVzdHMvd2lubW1fdGVzdC5oOgorCVJvYmVydCBSZWlmIDxyZWlmQGVhcnRobGluay5uZXQ+CisJRml4ZWQgYSBidWcgSSBpbnRyb2R1Y2VkIGluIHdhdmVJbkdldERldkNhcHNBKFdBVkVfTUFQUEVSKSB0ZXN0LgorCU1vdmVkIGZvcm1hdCBzdHJ1Y3R1cmUgYXJyYXkgdG8gaGVhZGVyIGZpbGUgYW5kIHJlc3RvcmVkCisJTkJfV0lOX0ZPUk1BVFMgbWFjcm8gdG8gY2FsY3VsYXRlIGFycmF5IHNpemUuCisJQWRkZWQgbW9yZSBlcnJvciByZXN1bHRzIGFuZCB1c2VkIG1hY3JvIGFzIHN1Z2dlc3RlZCBieSBBbmRyZWFzIE1vaHIuCisJQ2xlYW5lZCB1cCBlcnJvciByZXN1bHQgcHJpbnRpbmcgdG8gYmUgbW9yZSBjb25zaXN0ZW50LgorCisJKiBkbGxzL2QzZDgvZDNkY29yZV9nbC5oLCBkbGxzL2QzZDgvZGlyZWN0eC5jOgorCUNocmlzdGlhbiBDb3N0YSA8dGl0YW4uY29zdGFAd2FuYWRvby5mcj4KKwlBZGRlZCByZXRyaWV2YWwgb2YgQVRJIGluZm8uCisKKwkqIGRsbHMvZDNkOC9zdXJmYWNlLmMsIGRsbHMvb2xlMzIvY29tcG9iai5jLCBkbGxzL29sZTMyL2RhdGFjYWNoZS5jLAorCSAgZGxscy9vbGUzMi9kZWZhdWx0aGFuZGxlci5jLCBkbGxzL29sZTMyL2ZpbGVtb25pa2VyLmMsCisJICBkbGxzL29sZTMyL2lmcy5jLCBkbGxzL29sZTMyL2l0ZW1tb25pa2VyLmMsIGRsbHMvb2xlMzIvbWFyc2hhbC5jLAorCSAgZGxscy9vbGUzMi9tb25pa2VyLmMsIGRsbHMvb2xlMzIvb2xlMi5jLCBkbGxzL29sZTMyL29sZTJpbXBsLmMsCisJICBkbGxzL29sZTMyL29sZXByb3h5LmMsIGRsbHMvb2xlMzIvc3RvcmFnZTMyLmM6CisJTWFyY3VzIE1laXNzbmVyIDxtYXJjdXNAamV0LmZyYW5rZW4uZGU+CisJUmV2ZXJ0IGJyb2tlbiBzdHJpY3QgYWxpYXNpbmcgZml4LgorCisJKiBvYmplY3RzL2ZvbnQuYzogUmVpbiBLbGF6ZXMgPHJrbGF6ZXNAeHM0YWxsLm5sPgorCUxldCBHZXRGb250TGFuZ3VhZ2VJbmZvKCkgcmV0dXJuIHRoZSBHQ1BfUkVPUkRFUiBmbGFnIG9ubHkgaW4gY2FzZSB0aGUKKwlEQyBhbGlnbm1lbnQgaXMgcmlnaHQtdG8tbGVmdC4KKworCSogZGxscy91c2VyL3Rlc3RzL2NsYXNzLmM6IERtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJQWRkIGEgdGVzdCBmb3Igd2luZG93J3MgaGluc3RhbmNlLgorCisyMDA0LTA1LTIwICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL3dpbm1tL3Rlc3RzLy5jdnNpZ25vcmUsIGRsbHMvd2lubW0vdGVzdHMvTWFrZWZpbGUuaW4sCisJICBkbGxzL3dpbm1tL3Rlc3RzL2NhcHR1cmUuYywgZGxscy93aW5tbS90ZXN0cy93YXZlLmMsCisJICBkbGxzL3dpbm1tL3Rlc3RzL3dpbm1tX3Rlc3QuaDoKKwlGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAY29kZXdlYXZlcnMuY29tPgorCVNwbGl0IG9mZiB0aGUgd2lubW0gY2FwdHVyZSB0ZXN0LgorCisJKiBkbGxzL2tlcm5lbC90ZXN0cy9tb2R1bGUuYzogRG9uJ3QgdXNlIHRoZSBXaW5lIGRlYnVnIGZ1bmN0aW9ucy4KKwlGaXhlZCB3cm9uZyBBL1cgbGVuZ3RoIGNoZWNrcy4KKworCSogZGxscy91c2VyL3Rlc3RzL21zZy5jOiBEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCS0gTWFrZSBuZXcgdGVzdHMgcGFzcyBvbiB3aW4yayBTUDQgYW5kIHdpbjk1IE9TUjIuCisJLSBBZGQgbG9nZ2luZyBvZiBzb21lIHVzZWZ1bCBtZXNzYWdlcyBpbiB0aGUgcGFyZW50IHdpbmRvdy4KKwktIEFkZCBsb2dnaW5nIG9mIHdwYXJhbSBmb3IgV01fSU1FX1NFVENPTlRFWFQuCisKKwkqIGRsbHMvd2lubW0vdGVzdHMvd2F2ZS5jOiBGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAY29kZXdlYXZlcnMuY29tPgorCUFkZCBhIDUgc2Vjb25kIHRlc3QgdG9uZSB0byBoZWxwIGRlYnVnIGlzc3VlcyB3aXRoIHRoZSB0b25lIGR1cmF0aW9uCisJYW5kIGhlbHAgZGV0ZWN0IHN0dXR0ZXIgaXNzdWVzLgorCUFkZCBleHBsYW5hdGlvbnMgZGVzY3JpYmluZyB0aGUgaW50ZXJhY3RpdmUgdGVzdC4KKworCSogZGxscy93aW5tbS93aW5lb3NzL2F1ZGlvLmM6IEZyYW5jb2lzIEdvdWdldCA8ZmdvdWdldEBjb2Rld2VhdmVycy5jb20+CisJVXNlIHRyaWdnZXJzIHRvIGRpc2FibGUgdGhlIHNvdW5kIGlucHV0L291dHB1dCBzaWRlIHdlIGRvbid0IGNhcmUKKwlhYm91dCB3aGVuIGluIHBzZXVkbyBmdWxsZHVwbGV4IG1vZGUuCisKKwkqIGRsbHMvZG1pbWUvZG1pbWVfcHJpdmF0ZS5oLCBkbGxzL2RtaW1lL2dyYXBoLmM6CisJUmFwaGFlbCBKdW5xdWVpcmEgPGZlbml4QGNsdWItaW50ZXJuZXQuZnI+CisJQmV0dGVyIGhhbmRsaW5nIG9mIFVzZXIgSURpcmVjdE11c2ljVG9vbHMuCisKKzIwMDQtMDUtMTkgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGRsbHMvZDNkOC9kM2Q4X3ByaXZhdGUuaCwgZGxscy9kM2Q4L2RldmljZS5jLCBkbGxzL2QzZDgvZGlyZWN0eC5jLAorCSAgZGxscy9kM2Q4L3N0YXRlYmxvY2suYywgZGxscy9kM2Q4L3N1cmZhY2UuYywgZGxscy9kM2Q4L3V0aWxzLmM6CisJUmFwaGFlbCBKdW5xdWVpcmEgPGZlbml4QGNsdWItaW50ZXJuZXQuZnI+CisJLSBmaXJzdCBkcmFmdCBvZiBEM0RDTElQU1RBVFVTOCBoYW5kbGluZyAobm90IHJlYWxseSB1c2VkIGZvciBub3cpCisJLSBhZGQgYSBuZXcgREVCVUdfU0lOR0xFX01PREUgI2RlZmluZSAoZm9yIGRlYnVnIGNhcHMgbmVlZHMpCisJLSBiZXR0ZXIgdHJhY2VzIGZvciBzdXJmYWNlIGR1bXBpbmcKKwktIG11Y2ggYmV0dGVyIFRleHR1cmUgc3VwcG9ydCBvbiBVdGlsaXRpZXMgZnVuY3Rpb25zIGFuZCBvbgorCSAgQ2hlY2tEZXZpY2VUeXBlCisJLSBEM0RSU19aVklTSUJMRSBhcyB1bnN1cHBvcnRlZCAoYXMgc2VlbiBpbiBtc2RuKQorCisJKiBkbGxzL2RtaW1lL2F1ZGlvcGF0aC5jLCBkbGxzL2RtaW1lL2RtaW1lX3ByaXZhdGUuaCwKKwkgIGRsbHMvZG1pbWUvc2VndHJpZ2dlcnRyYWNrLmMsIGRsbHMvZG1pbWUvdGVtcG90cmFjay5jOgorCVJhcGhhZWwgSnVucXVlaXJhIDxmZW5peEBjbHViLWludGVybmV0LmZyPgorCS0gQmV0dGVyIGxvYWRpbmcgb2YgSURpcmVjdE11c2ljU2VnVHJpZ2dlclRyYWNrIChpbnRlcm5hbCBsaXN0IG9mCisJICBzdWJ0cmFja3MpCisJLSBCZXR0ZXIgc3R1YnMgZm9yIElEaXJlY3RNdXNpY1RlbXBvVHJhY2s6OkluaXRQbGF5IGFuZAorCSAgSURpcmVjdE11c2ljVGVtcG9UcmFjazo6RW5kUGxheSAoSW5pdFBsYXkgc2hvdWxkIHJldHVybiBhIHZhbGlkCisJICBtZW1vcnkgcG9pbnRlciBzbyBhbGxvY2F0ZSBpdCkuIFNob3VsZCBiZSBleHRlbmRlZCBmb3IgYWxsCisJICBJRGlyZWN0TXVzaWNUcmFjayBvYmplY3RzLgorCisJKiBkbGxzL2RldmVudW0vZGV2ZW51bV9tYWluLmMsIGRsbHMvZHNvdW5kL2Rzb3VuZF9tYWluLmMsCisJICBkbGxzL2tlcm5lbC9jb25zb2xlLmMsIGRsbHMva2VybmVsL21vZHVsZS5jLCBkbGxzL2tlcm5lbC9uZV9tb2R1bGUuYywKKwkgIGRsbHMva2VybmVsL3Rlc3RzLy5jdnNpZ25vcmUsIGRsbHMva2VybmVsL3Rlc3RzL01ha2VmaWxlLmluLAorCSAgZGxscy9rZXJuZWwvdGVzdHMvbW9kdWxlLmMsIGRsbHMva2VybmVsL3ZlcnNpb24uYywKKwkgIGRsbHMvbXN2Y3J0L2RhdGEuYywgZGxscy9wc2FwaS9wc2FwaV9tYWluLmMsIGRsbHMvcnBjcnQ0L2Nwc2YuYywKKwkgIGRsbHMvc2hlbGwzMi9pY29uY2FjaGUuYywgZGxscy9zaGVsbDMyL3NoZWxsMzJfbWFpbi5jLAorCSAgZGxscy9zaGx3YXBpL29yZGluYWwuYywgZGxscy9zaGx3YXBpL3VybC5jLCBkbGxzL3VzZXIvaG9vay5jLAorCSAgZGxscy92ZXJzaW9uL2luZm8uYywgZGxscy93aW5tbS9wbGF5c291bmQuYywKKwkgIGRsbHMveDExZHJ2L3gxMWRydl9tYWluLmMsCisJICBwcm9ncmFtcy93aW5lbWVudWJ1aWxkZXIvd2luZW1lbnVidWlsZGVyLmM6CisJRXJpYyBQb3VlY2ggPHBvdWVjaC1lcmljQHdhbmFkb28uZnI+CisJR2V0TW9kdWxlRmlsZU5hbWVbQVddIGRvZXNuJ3QgdGVybWluYXRlIHRoZSBzdHJpbmcgaWYgdGhlIGJ1ZmZlciBpcworCXRvbyBzbWFsbC4KKworMjAwNC0wNS0xOCAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9kYmdoZWxwL2RiZ2hlbHAuYywgZGxscy9kYmdoZWxwL2RiZ2hlbHBfcHJpdmF0ZS5oLAorCSAgZGxscy9kYmdoZWxwL2VsZl9tb2R1bGUuYywgZGxscy9kYmdoZWxwL21vZHVsZS5jLCBkbGxzL2RiZ2hlbHAvbXNjLmMsCisJICBkbGxzL2RiZ2hlbHAvcGVfbW9kdWxlLmMsIGRsbHMvZGJnaGVscC9zdGFicy5jLAorCSAgZGxscy9kYmdoZWxwL3N0b3JhZ2UuYywgZGxscy9kYmdoZWxwL3N5bWJvbC5jLCBkbGxzL2RiZ2hlbHAvdHlwZS5jLAorCSAgaW5jbHVkZS9jdmNvbnN0LmgsIGluY2x1ZGUvZGJnaGVscC5oOgorCUVyaWMgUG91ZWNoIDxwb3VlY2gtZXJpY0B3YW5hZG9vLmZyPgorCS0gcmVtb3ZlZCBmaWxlIGV4dGVuc2lvbiBmcm9tIG1vZHVsZSAoYW5kIHN1ZmZpeGVkIEVMRiBtb2R1bGVzIHdpdGgKKwkgIDxlbGY+KQorCS0gYWRkZWQgZ2VuZXJpYyB0aHVuayBzdXBwb3J0IGZvciBidWlsdGluIG1vZHVsZXMgKHdpdGggdGhlIGhlbHAgb2YKKwkgIHdpbmVidWlsZCdzIG5ldyBtYXJrZXJzIGZvciB0aHVua3MpCisJLSBmb3IgRUxGIG1vZHVsZXMsIG5vIGxvbmdlciBnZW5lcmF0aW5nIFN5bVRhZ1B1YmxpY1N5bWJvbHMgb2JqZWN0cworCSAgZnJvbSBFTEYgcHVibGljIHN5bWJvbCB0YWJsZQorCS0gYmVjYXVzZSBvZiBsYXN0IHBvaW50LCByZXdyb3RlIHN0YWJzIHN5bWJvbHMnIGFkZHJlc3MgYW5kIHNpemUKKwkgIG1hbmFnZW1lbnQgYnkgcGFyc2luZyBkaXJlY3RseSB0aGUgc3ltdGFiIGluc3RlYWQgb2YgdXNpbmcKKwkgIFN5bVRhZ1B1YmxpY1N5bWJvbHMgb2JqZWN0cworCS0gY2xlYW5lZCB1cCBTeW1UYWdQdWJsaWNTeW1ib2xzIG9iamVjdCBuYW1lcyBmb3IgbmF0aXZlIG1vZHVsZXMKKwktIGZpeGVkIG9mZiBieSBvbmUgZXJyb3JzIGluIGFycmF5IG1hbmFnZW1lbnQKKwktIFN5bUxvYWRNb2R1bGUoaFByb2MsMCwwLDAsMCkgKHdpbmUgZXh0ZW5zaW9uKSB3aWxsIGZvcmNlIHRoZQorCSAgcmVzeW5jaHJvbml6YXRpb24gb2YgaW50ZXJuYWwgRUxGIG1vZHVsZXMgbGlzdCkKKwktIG5ldyBvcHRpb24gKDB4NDAwMDAwMDApIGZvciBTeW17R2V0fFNldH1PcHRpb24gdG8gcmVwb3J0IEVMRiBtb2R1bGVzCisJICBpbiBTeW1FbnVtTW9kdWxlcyAoYXMgd2VsbCBhcyBsb2FkZXIgd2l0aCA8d2luZS1sb2FkZXI+KQorCS0gc29tZSBtaW5vciBpbnRlcm5hbCBjbGVhbi11cHMKKwktIGVuaGFuY2VkIGNvbnN0IGNvcnJlY3RuZXNzCisKKwkqIHRvb2xzL3dpbmVidWlsZC9pbXBvcnQuYywgdG9vbHMvd2luZWJ1aWxkL3BhcnNlci5jLAorCSAgdG9vbHMvd2luZWJ1aWxkL3JlbGF5LmMsIHRvb2xzL3dpbmVidWlsZC9yZXMzMi5jLAorCSAgdG9vbHMvd2luZWJ1aWxkL3NwZWMxNi5jOgorCUVyaWMgUG91ZWNoIDxwb3VlY2gtZXJpY0B3YW5hZG9vLmZyPgorCS0gYWRkZWQgc2l6ZSBpbmZvcm1hdGlvbiBhYm91dCBtb3N0IG9mIHRoZSBnZW5lcmF0ZWQgdGh1bmtzIChpbXBvcnQsCisJICAxNi8zMiByZWxheS4uLikKKwktIG1hcmtlZCB0aGUgd2luZSB0aHVua3MgYnkgaW5zZXJ0aW5nIHNwZWNpZmljIHN5bWJvbHMgKHRvIGJlIG1hbmFnZWQKKwkgIGJ5IHdpbmUncyBkYmdoZWxwKQorCS0gcmVtb3ZlZCB0aGUgc3RhYnMgZ2VuZXJhdGlvbjoKKwkgICsgbW9zdGx5IHVzZWQgYnkgd2luZWRiZywgYW5kIHRoZSBwcmV2aW91cyBpdGVtIHdpbGwgcmVwbGFjZSBpdCBmb3IKKwkgICAgZGJnaGVscAorCSAgKyBzdGlsbCBicm9rZW4gZm9yIGdkYiBhbnl3YXkKKwktIGVuaGFuY2VkIGNvbnN0IGNvcnJlY3RuZXNzCisKKwkqIHdpbmRvd3MvZGlhbG9nLmM6CisJQWN0aXZhdGUgYW5vdGhlciB3aW5kb3cgd2hlbiB0aGUgZGlhbG9nIGdldHMgaGlkZGVuIGluIEVuZERpYWxvZy4KKworCSogZGxscy91c2VyL3Rlc3RzL21zZy5jLCBkbGxzL3VzZXIvdGVzdHMvcmVzb3VyY2UucmM6CisJQWRkZWQgc29tZSBvcHRpb25hbCBtZXNzYWdlcyB0byBtYWtlIGFsbCB0ZXN0cyBzdWNjZWVkIG9uIFhQLgorCUFkZGVkIHRlc3RzIGZvciBFbmREaWFsb2cgYW5kIGEgc2ltcGxlIG1vZGFsIGRpYWxvZy4KKworCSogZGxscy9nZGkvcGFpbnRpbmcuYywgZGxscy9rZXJuZWwvcmVnaXN0cnkxNi5jLCBkbGxzL2tlcm5lbC9zeW5jLmMsCisJICBpbmNsdWRlL3dpbmJhc2UuaCwgaW5jbHVkZS93aW5jb24uaCwgaW5jbHVkZS93aW5nZGkuaDoKKwlFcmljIFBvdWVjaCA8cG91ZWNoLWVyaWNAd2FuYWRvby5mcj4KKwlBZGRlZCBzb21lIG1pc3NpbmcgcHJvdG90eXBlcy4KKworCSogZGxscy93aW5lcHMvY2xpcHBpbmcuYzogSHV3IERhdmllcyA8aHV3QGNvZGV3ZWF2ZXJzLmNvbT4KKwlXaGVuIGJ1aWxkaW5nIFBvc3RTY3JpcHQgcGF0aHMgd2l0aCB0aGUgKl9QQVRIIGVzY2FwZXMsIGRvbid0IGNsaXAgdGhlCisJcGF0aCBidWlsZGluZyBwcmltaXRpdmVzLiAgVGhlIGNsaXBwaW5nIGNvbWVzIGludG8gcGxheSB3aGVuIHdlCisJYWN0dWFsbHkgZHJhdyBzb21ldGhpbmcuCisKKwkqIGRsbHMvbXNpLy5jdnNpZ25vcmUsIGRsbHMvbXNpL01ha2VmaWxlLmluLCBkbGxzL21zaS92ZXJzaW9uLnJjOgorCUNocmlzdGlhbiBDb3N0YSA8dGl0YW4uY29zdGFAd2FuYWRvby5mcj4KKwlBZGRlZCB2ZXJzaW9uIGluZm8gdG8gTVNJIGRsbC4KKworCSogY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRsbHMvbXN2Y3J0ZC9NYWtlZmlsZS5pbiwKKwkgIGRsbHMvbXN2Y3J0ZC9kZWJ1Zy5jLCBkbGxzL21zdmNydGQvbXN2Y3J0ZC5zcGVjLAorCSAgZGxscy9tc3ZjcnRkL3Rlc3RzLy5jdnNpZ25vcmUsIGRsbHMvbXN2Y3J0ZC90ZXN0cy9NYWtlZmlsZS5pbiwKKwkgIGRsbHMvbXN2Y3J0ZC90ZXN0cy9kZWJ1Zy5jOgorCVBhdHJpayBTdHJpZHZhbGwgPHBzQGxlaXNzbmVyLnNlPgorCUltcGxlbWVudGVkIHRoZSBkZWJ1ZyB2ZXJzaW9uIG9mIG9wZXJhdG9yIG5ldyAoQysrKS4KKworCSogREVWRUxPUEVSUy1ISU5UUywgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRsbHMvTWFrZWZpbGUuaW4sCisJICBkbGxzL2QzZHJtLy5jdnNpZ25vcmUsIGRsbHMvZDNkcm0vTWFrZWZpbGUuaW4sIGRsbHMvZDNkcm0vZDNkcm0uc3BlYywKKwkgIGRsbHMvZDNkcm0vZDNkcm1fbWFpbi5jLCBkbGxzL2QzZHJtL3ZlcnNpb24ucmM6CisJSXZhbiBMZW8gTXVycmF5LVNtaXRoIDxwdW90aUBpbndpbmQuaXQ+CisJQWRkZWQgZW1wdHkgKHN0dWJzIGluIHNwZWMgb25seSkgZDNkcm0uCisKKwkqIHdpbmRvd3Mvd2luLmM6IERtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJT25seSBjaGlsZCB3aW5kb3dzIHJlY2VpdmUgV01fU0hPV1dJTkRPVyBpbiBEZXN0cm95V2luZG93KCkgdW5kZXIKKwlXaW5kb3dzLgorCisJKiBkbGxzL3VzZXIvdGVzdHMvd2luLmM6IEFkZGVkIGEgY291cGxlIG9mIHRlc3RzIGZvciBTZXRBY3RpdmVXaW5kb3cuCisKKwkqIGRsbHMvZDNkOC9kaXJlY3R4LmMsIGRsbHMvZDNkOC9zaGFkZXIuYzoKKwlDaHJpc3RpYW4gQ29zdGEgPHRpdGFuLmNvc3RhQHdhbmFkb28uZnI+CisJRW5hYmxlZCBwaXhlbCBzaGFkZXJzIDEuNC4KKwlGaXhlZCBoYW5kbGluZyBvZiBtYWNyb3MgYXQgdGhlIGVuZCBvZiB2ZXJ0ZXggc2hhZGVycy4KKwlIYW5kbGVkIE5PUCBhbmQgUEhBU0UgaW5zdHJ1Y3Rpb25zLgorCUZpeGVkIHZlcnNpb25zIG9mIHNldmVyYWwgaW5zdHJ1Y3Rpb25zLgorCUltcHJvdmVkIHBpeGVsIHNoYWRlciBkdW1wIHRyYWNlcy4KKwlGaXhlZCB3cml0ZSBtYXNrLgorCUZpeGVkIFgyIGFuZCAtWDIgc291cmNlIG1vZGlmaWVycyBhbmQgaW1wbGVtZW50cyBEWiBhbmQgRFcgb25lcy4KKwlJbXBsZW1lbnRlZCB0ZXhjcmQsIHRleGxkLCB0ZXhtM3gzcGFkLCB0ZXhtM3gzdGV4LCB0ZXhtM3gzc3BlYyBhbmQKKwl0ZXhtM3gzdnNwZWMgaW5zdHJ1Y3Rpb25zIChhbmQgcGFydGlhbGx5IHRleGJlbSkuCisJQWRkZWQgY25kLCBjbXAgYW5kIGxycCBpbnN0cnVjdGlvbnMuCisJUmV3cml0ZSBvZiB0aGUgImF1dG9wYXJhbSIgY29kZSBzbyB3ZSBjYW4gYWRkIG1vcmUgY29tcGxpY2F0ZWQKKwlpbnN0cnVjdGlvbnMgKG9ubHkgY25kIGFuZCBjbXAgYXMgd2VsbCBhcyBzaW1wbGUgaW5zdHJ1Y3Rpb25zIHVzZSB0aGF0CisJY29kZSBhdCB0aGUgbW9tZW50KS4KKworCSogZGxscy9jb21jdGwzMi90b29sYmFyLmM6IFJvYmVydCBTaGVhcm1hbiA8Ui5KLlNoZWFybWFuQHdhcndpY2suYWMudWs+CisJLSBUQk5fRFJBR09VVCBhbmQgTk1fUkRCTENMSyBub3RpZmljYXRpb25zLgorCS0gUmVtb3ZlIHVubmVlZGVkIG1lbWJlciBvZiBwcml2YXRlIHRvb2xiYXIgc3RydWN0LgorCisyMDA0LTA1LTE3ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL250ZGxsL2RpcmVjdG9yeS5jOgorCUFkZGVkIHN1cHBvcnQgZm9yIG1hcHBpbmcgVU5DIGZpbGVuYW1lcyB0byB0aGUgZG9zZGV2aWNlcyBkaXJlY3RvcnkuCisKKwkqIGRsbHMvZGJnaGVscC9zeW1ib2wuYywgZGxscy9kc291bmQvY2FwdHVyZS5jLAorCSAgZGxscy9keGRpYWduL2R4ZGlhZ19tYWluLmMsIGRsbHMvZHhkaWFnbi9yZWdzdnIuYywKKwkgIGRsbHMva2VybmVsL3dvd3RodW5rLmMsIGRsbHMvbXByL21wcl9tYWluLmMsIGRsbHMvbXNpL21zaS5jLAorCSAgZGxscy9tc3ZjcnQvZGlyLmMsIGRsbHMvbXN2Y3J0L21pc2MuYywgZGxscy9udGRsbC90aHJlYWQuYywKKwkgIGRsbHMvb2xlMzIvc3RvcmFnZTMyLmMsIGRsbHMvcnBjcnQ0L3JwY19iaW5kaW5nLmMsCisJICBkbGxzL3NlY3VyMzIvc2VjdXIzMi5jLCBkbGxzL3NlY3VyMzIvd3JhcHBlci5jLAorCSAgZGxscy9zZXR1cGFwaS9kZXZpbnN0MTYuYywgZGxscy9zZXR1cGFwaS9zZXR1cHgxNi5oLAorCSAgZGxscy9zaGVsbDMyL3NoZWxsb3JkLmMsIGRsbHMvdXh0aGVtZS91eHRoZW1lLnNwZWMsCisJICBkbGxzL3dpbmluZXQvd2luaW5ldC5zcGVjLCBkbGxzL3gxMWRydi94MTFkcnYuc3BlYzoKKwlQYXRyaWsgU3RyaWR2YWxsIDxwc0BsZWlzc25lci5zZT4KKwlGaXhlZCBzb21lIGlzc3VlcyBmb3VuZCBieSB3aW5hcGlfY2hlY2suCisKKwkqIGRsbHMvY29tY3RsMzIvY29tY3RsMzIuc3BlYywgZGxscy9jb21jdGwzMi9zdHJpbmcuYzoKKwlQYXRyaWsgU3RyaWR2YWxsIDxwc0BsZWlzc25lci5zZT4KKwlTdHJTcG5XIGRvZXNuJ3QgZXhpc3QgaW4gY29tY3RsMzIuZGxsIGJ1dCBTdHJDU3BuVyBkb2VzLgorCisJKiBkbGxzL3VybG1vbi91bW9uLmMsIGluY2x1ZGUvdXJsbW9uLmgsIGluY2x1ZGUvdXJsbW9uLmlkbDoKKwlQYXRyaWsgU3RyaWR2YWxsIDxwc0BsZWlzc25lci5zZT4KKwlBZGRlZCB0aGUgSUludGVybmV0U2Vzc2lvbiBpbnRlcmZhY2UuCisKKwkqIHRvb2xzL3dpbmFwaS93aW4xNi5hcGksIHRvb2xzL3dpbmFwaS93aW4zMi5hcGksCisJICB0b29scy93aW5hcGlfY2hlY2svd2luYXBpX2xvY2FsLnBtLAorCSAgdG9vbHMvd2luYXBpX2NoZWNrL3dpbmFwaV9wYXJzZXIucG06CisJUGF0cmlrIFN0cmlkdmFsbCA8cHNAbGVpc3NuZXIuc2U+CisJLSBBUEkgZmlsZXMgdXBkYXRlLgorCS0gTWlub3IgYnVnIGZpeGVzLgorCisJKiBkbGxzL21zdmNydC9zY2FuZi5oOiBSYXBoYWVsIEp1bnF1ZWlyYSA8ZmVuaXhAY2x1Yi1pbnRlcm5ldC5mcj4KKwlGaXggc2NhbmYgaGFuZGxpbmcgb2YgZmxvYXQgbnVtYmVycyAoYmVnaW5uaW5nIHdpdGggYSBkb3QpLgorCisJKiBjb250cm9scy9jb21iby5jOiBUaG9tYXMgV2VpZGVubXVlbGxlciA8dzNzZWVrQHJlYWN0b3MuY29tPgorCUNvbWJvYm94IHBvcHVwcyBzaG91bGQgYmUgYWx3YXlzLW9uLXRvcC4KKworCSogZGxscy9kM2Q4L2RyYXdwcmltLmM6IENocmlzdGlhbiBDb3N0YSA8dGl0YW4uY29zdGFAd2FuYWRvby5mcj4KKwlIYW5kbGUgWFlaUkhXIHZlcnRleCBtb2RlIGNvcnJlY3RseSBpbiBzbG93IHBhdGguCisKKwkqIGRsbHMvZG1pbWUvZG1pbWVfcHJpdmF0ZS5oLCBkbGxzL2RtaW1lL3NlZ21lbnQuYywKKwkgIGRsbHMvZG1pbWUvdGVtcG90cmFjay5jOgorCVJhcGhhZWwgSnVucXVlaXJhIDxmZW5peEBjbHViLWludGVybmV0LmZyPgorCS0gRmlyc3QgZHJhZnRzIGZvciBJRGlyZWN0TXVzaWNTZWdtZW50OjpHZXRQYXJhbSBhbmQKKwkgIElEaXJlY3RNdXNpY1RlbXBvVHJhY2s6OkdldFBhcmFtIChuZWVkIG1vZGlmIG9uIExvYWQpLgorCS0gUmV0dXJuIHZhbHVlIGZpeGVzIGZvciBHZXRDbGFzc0lEIG9mIFRlbXBvVHJhY2sgYW5kIFNlZ21lbnQuCisKKwkqIGRsbHMvY29tY3RsMzIvY29tY3RsMzIuaCwgZGxscy9jb21jdGwzMi9jb21tY3RybC5jOgorCUZpbGlwIE5hdmFyYSA8eG5hdmFyYUB2b2xueS5jej4KKwktIExldCB0aGUgc3ViY2xhc3Npbmcgc3RhY2sgZ3JvdyB0aGUgb3Bwb3NpdGUgd2F5IHRvIG1ha2UgdGhlIGNvZGUKKwkgIG1vcmUgdHJhbnNwYXJlbnQuCisJLSBSZW1vdmUgU3ViY2xhc3NXbmRQcm9jIGFuZCBtb3ZlIGl0cyBsb2dpYyB0byBEZWZTdWJjbGFzc1Byb2MuCisKKwkqIGRsbHMvYWR2YXBpMzIvY3J5cHQuYzogSnVhbiBMYW5nIDxqdWFuX2xhbmdAeWFob28uY29tPgorCS0gSWYgYSBjcnlwdG8gcHJvdmlkZXIgZG9lcyBub3QgaGF2ZSBhIFNpZ25hdHVyZSBpbiB0aGUgcmVnaXN0cnksCisJICBjaGVjayBmb3IgdGhlIHByZXNlbmNlIG9mIHRoZSBTaWdJbkZpbGUgdmFsdWUgYmVmb3JlIGZhaWxpbmcuCisJLSBHZXQgcmlkIG9mIGEgY291cGxlIHJlZHVuZGFudCBhc3NpZ25tZW50cy4KKworMjAwNC0wNS0xNCAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogREVWRUxPUEVSUy1ISU5UUywgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRsbHMva2VybmVsL01ha2VmaWxlLmluLAorCSAgZGxscy9udGRsbC9maWxlLmMsIGluY2x1ZGUvd2luZS9zZXJ2ZXJfcHJvdG9jb2wuaCwKKwkgIHNlcnZlci9NYWtlZmlsZS5pbiwgc2VydmVyL3Byb3RvY29sLmRlZiwgc2VydmVyL3JlcXVlc3QuaCwKKwkgIHNlcnZlci9zbWIuYywgc2VydmVyL3RyYWNlLmM6CisJUmVtb3ZlZCB0aGUgbm8gbG9uZ2VyIHVzZWQgU01CIGZpbGUgSS9PIHN1cHBvcnQsIHdlIGNhbid0IGRvIHJlbGlhYmxlCisJZmlsZSBJL08gaW4gdXNlciBzcGFjZSBhbnl3YXkuCisKKwkqIGRsbHMvbnRkbGwvcGF0aC5jLCBkbGxzL250ZGxsL3Rlc3RzL3BhdGguYzoKKwlCZXR0ZXIgZml4IGZvciByZW1vdmluZyB0cmFpbGluZyBzcGFjZXMgaW4gUnRsR2V0RnVsbFBhdGhOYW1lX1UuCisJTmVlZCB0byByZW1vdmUgdHJhaWxpbmcgZG90cyB0b28gKHJlcG9ydGVkIGJ5IEtlbiBCZWxsZWF1KS4KKworCSogZGxscy9rZXJuZWwvTWFrZWZpbGUuaW4sIGRsbHMva2VybmVsL2tlcm5lbF9wcml2YXRlLmgsCisJICBkbGxzL2tlcm5lbC9wcm9jZXNzLmMsIG1pc2MvcmVnaXN0cnkuYzoKKwlVc2UgZW52aXJvbm1lbnQgdmFyaWFibGVzIGluc3RlYWQgb2YgY29uZmlnIGZpbGUgZW50cmllcyB0byBzcGVjaWZ5CisJcGF0aCwgcHJvZmlsZSwgdGVtcCwgd2luZG93cyBhbmQgc3lzdGVtIGRpcmVjdG9yaWVzLgorCUNvbnZlcnQgZXhpc3RpbmcgY29uZmlnIGZpbGUgZW50cmllcyB0byByZWdpc3RyeSB2YWx1ZXMgdW5kZXIKKwlIS0NVXEVudmlyb25tZW50LgorCisJKiB0b29scy93aW5lLmluZjogQWRkZWQgRW52aXJvbm1lbnQgc2VjdGlvbi4KKwlGaXhlZCBwYXRoIG9mIHNoZWxsIGZvbGRlcnMga2V5IGluIEhLRVlfVVNFUlMuCisKKwkqIGRsbHMvYW1zdHJlYW0vdmVyc2lvbi5yYywgZGxscy9kM2Q4L3ZlcnNpb24ucmMsIGRsbHMvZDNkOS92ZXJzaW9uLnJjLAorCSAgZGxscy9kM2RpbS92ZXJzaW9uLnJjLCBkbGxzL2RkcmF3L3ZlcnNpb24ucmMsCisJICBkbGxzL2RldmVudW0vZGV2ZW51bS5yYywgZGxscy9kaW5wdXQvdmVyc2lvbi5yYywKKwkgIGRsbHMvZGlucHV0OC92ZXJzaW9uLnJjLCBkbGxzL2RtYmFuZC92ZXJzaW9uLnJjLAorCSAgZGxscy9kbWNvbXBvcy92ZXJzaW9uLnJjLCBkbGxzL2RtaW1lL3ZlcnNpb24ucmMsCisJICBkbGxzL2RtbG9hZGVyL3ZlcnNpb24ucmMsIGRsbHMvZG1zY3JpcHQvdmVyc2lvbi5yYywKKwkgIGRsbHMvZG1zdHlsZS92ZXJzaW9uLnJjLCBkbGxzL2Rtc3ludGgvdmVyc2lvbi5yYywKKwkgIGRsbHMvZG11c2ljL3ZlcnNpb24ucmMsIGRsbHMvZG11c2ljMzIvdmVyc2lvbi5yYywKKwkgIGRsbHMvZHBsYXl4L3ZlcnNpb24ucmMsIGRsbHMvZHBuZXQvdmVyc2lvbi5yYywKKwkgIGRsbHMvZHBuaHBhc3QvdmVyc2lvbi5yYywgZGxscy9kc291bmQvdmVyc2lvbi5yYywKKwkgIGRsbHMvZHN3YXZlL3ZlcnNpb24ucmMsIGRsbHMvZHhkaWFnbi92ZXJzaW9uLnJjLCBkbGxzL21zZG1vL3JzcmMucmMsCisJICBkbGxzL3FjYXAvLmN2c2lnbm9yZSwgZGxscy9xY2FwL01ha2VmaWxlLmluLCBkbGxzL3FjYXAvdmVyc2lvbi5yYywKKwkgIGRsbHMvcXVhcnR6L3ZlcnNpb24ucmM6CisJSXZhbiBMZW8gTXVycmF5LVNtaXRoIDxwdW90aUBpbndpbmQuaXQ+CisJVXBkYXRlZCB0aGUgdmVyc2lvbiBpbmZvIG9mIGFsbCBEaXJlY3RYIGRsbHMgdG8gdGhlIHZlcnNpb24gbnVtYmVycyBvZgorCURpcmVjdFggOS4wYiBmb3IgV2luZG93cyAyMDAwL1hQLgorCisJKiBkbGxzL2RtaW1lL2RtaW1lX3ByaXZhdGUuaCwgZGxscy9kbWltZS9zZWdtZW50LmMsCisJICBkbGxzL2Rtc3R5bGUvZG1zdHlsZV9wcml2YXRlLmgsIGRsbHMvZG1zdHlsZS9zdHlsZS5jOgorCVJhcGhhZWwgSnVucXVlaXJhIDxmZW5peEBjbHViLWludGVybmV0LmZyPgorCS0gUGFyc2UgRE1TdHlsZSBtb3RpZnMgKGllIHBhdHRlcm5zKSBhbmQgYmFuZHMgKGZpbGwgbGlzdHMpLgorCS0gSW1wbGVtZW50ICBJRGlyZWN0TXVzaWNTZWdtZW50ODo6SW5zZXJ0VHJhY2sgYW5kCisJICBJRGlyZWN0TXVzaWNTZWdtZW50ODo6UmVtb3ZlVHJhY2sgKG5vdyBFbnVtVHJhY2sgR2V0UGFyYW0sIGFuZAorCSAgR2V0VHJhY2sgc2hvdWxkIGJlIGVhc3kgdG8gZG8pLgorCisJKiBkb2N1bWVudGF0aW9uL2ZhcS5zZ21sOiBUb20gV2lja2xpbmUgPHR3aWNrbGluZUBzaXRlc3Rhci5uZXQ+CisJU29tZSB1cGRhdGVzIHRvIHRoZSBmYXEuCisKKwkqIGRsbHMva2VybmVsL3Byb2Nlc3MuYzoKKwlTZXQgZW52aXJvbm1lbnQgdmFyaWFibGVzIGZyb20gdGhlIEhLQ1VcRW52aXJvbm1lbnQga2V5IHRvby4KKwlNb3ZlZCBjdXJyZW50IGRpcmVjdG9yeSBpbml0aWFsaXNhdGlvbiB0byBwcm9jZXNzLmMuCisJTWFrZSBzdXJlIHRvIGFsd2F5cyBwYXNzIHRoZSBjb3JyZWN0IGN1cnJlbnQgZGlyZWN0b3J5IGluIHRoZSBwcm9jZXNzCisJcGFyYW1ldGVycyBmb3IgY2hpbGQgcHJvY2Vzc2VzLgorCisJKiBkbGxzL2RtYmFuZC9NYWtlZmlsZS5pbiwgZGxscy9kbWJhbmQvYmFuZC5jLCBkbGxzL2RtYmFuZC9iYW5kdHJhY2suYywKKwkgIGRsbHMvZG1iYW5kL2RtYmFuZF9tYWluLmMsIGRsbHMvZG1iYW5kL2RtYmFuZF9wcml2YXRlLmgsCisJICBkbGxzL2RtYmFuZC9kbXV0aWxzLmMsIGRsbHMvZG1iYW5kL2RtdXRpbHMuaCwgZGxscy9kbWltZS9NYWtlZmlsZS5pbiwKKwkgIGRsbHMvZG1pbWUvZG1pbWVfbWFpbi5jLCBkbGxzL2RtaW1lL2RtaW1lX3ByaXZhdGUuaCwKKwkgIGRsbHMvZG1pbWUvZG11dGlscy5jLCBkbGxzL2RtaW1lL2RtdXRpbHMuaCwgZGxscy9kbWltZS9zZWdtZW50LmMsCisJICBkbGxzL2RtaW1lL3NlZ3RyaWdnZXJ0cmFjay5jLCBkbGxzL2Rtc3R5bGUvTWFrZWZpbGUuaW4sCisJICBkbGxzL2Rtc3R5bGUvZG1zdHlsZV9tYWluLmMsIGRsbHMvZG1zdHlsZS9kbXN0eWxlX3ByaXZhdGUuaCwKKwkgIGRsbHMvZG1zdHlsZS9kbXV0aWxzLmMsIGRsbHMvZG1zdHlsZS9kbXV0aWxzLmgsIGRsbHMvZG1zdHlsZS9zdHlsZS5jOgorCVJhcGhhZWwgSnVucXVlaXJhIDxmZW5peEBjbHViLWludGVybmV0LmZyPgorCS0gQWRkIHRoZSBzYW1lIG5ldyBmaWxlcyAoZG11dGlscy5jL2RtdXRpbHMuaCkgaW50byBkbWltZSxkbWJhbmQgYW5kCisJICBkbXN0eWxlIGRpcmVjdG9yeSB0aGF0IHNoYXJlIHRoZSBkZWJ1ZyBhbmQgaGVscGVyIGZ1bmN0aW9ucyBmb3IgZG11c2ljCisJICBkbGxzIChhcyBSb2sncyBpZGVhIGZvciBkbWxvYWRlcikuCisJLSBVc2UgbmV3IGhlbHBlcnMgZnVuY3Rpb25zIHRvIGxvYWQgUmVmZXJlbmNlcyBvbgorCSAgSURpcmVjdE11c2ljU2VnVHJpZ2dlclRyYWNrIGxvYWRpbmcgKGN1cnJlbnRseSB0aGV5IGxlYWspLgorCS0gSURpcmVjdE11c2ljU3R5bGUgKGFsbW9zdCBwYXJ0aWFsKSBsb2FkaW5nLgorCS0gTWlub3IgZml4ZXMuCisKKwkqIGRsbHMva2VybmVsL3Rlc3RzL3BhdGguYzoKKwlGaXhlZCBzb21lIG9mIHRoZSBHZXRTaG9ydFBhdGhOYW1lIHRlc3RzIHRvIHVzZSB0aGUgc2hvcnQgdmVyc2lvbiBvZgorCXRoZSBjdXJyZW50IGRpcmVjdG9yeSB3aGVyZSBuZWVkZWQuCisKKwkqIGRsbHMvd2lubW0vdGVzdHMvd2F2ZS5jOiBSb2JlcnQgUmVpZiA8cmVpZkBlYXJ0aGxpbmsubmV0PgorCVByaW50IGh1bWFuLXJlYWRhYmxlIGNhcGFiaWxpdGllcyBmbGFnLgorCisJKiBzZXJ2ZXIvcmVnaXN0cnkuYzoKKwlNYWtlIHN1cmUgdG8gc2F2ZSB0aGUgcmVnaXN0cnkgZmlsZXMgZXZlbiBpZiB3ZSBmYWlsZWQgdG8gbG9hZCB0aGVtLgorCisJKiBkbGxzL3dpbm1tL3dpbmVhcnRzL2F1ZGlvLmM6IFJvYmVydCBSZWlmIDxyZWlmQGVhcnRobGluay5uZXQ+CisJU2FtcGxlIHJhdGUgc2FuaXR5IGNoZWNrLgorCUZpeCBTTVBURSB0aW1lLgorCisJKiB0b29scy93aW5laW5zdGFsbCwgdG9vbHMvd2luZXByZWZpeGNyZWF0ZS5pbjoKKwlNYWtlIHdpbmVpbnN0YWxsIHVzZSB3aW5lcHJlZml4Y3JlYXRlIGluc3RlYWQgb2YgZHVwbGljYXRpbmcgdGhlCisJZnVuY3Rpb25hbGl0eS4KKworMjAwNC0wNS0xMyAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9rZXJuZWwvY2hhbmdlLmMsIGRsbHMva2VybmVsL2ZpbGUuYywKKwkgIGRsbHMva2VybmVsL2tlcm5lbF9wcml2YXRlLmgsIGRsbHMva2VybmVsL21vZHVsZS5jLAorCSAgZGxscy9rZXJuZWwvcGF0aC5jLCBkbGxzL2tlcm5lbC9wcm9jZXNzLmMsIGRsbHMva2VybmVsL3ZvbHVtZS5jOgorCUFkZGVkIHByb3BlciBzdXBwb3J0IGZvciBzd2l0Y2hpbmcgZmlsZSBBUElzIGJldHdlZW4gQU5TSSBhbmQgT0VNCisJY29kZXBhZ2VzLiBPcHRpbWl6ZWQgc29tZSBvZiB0aGUgQS0+VyBjb252ZXJzaW9ucyBieSB1c2luZyB0aGUKKwlwZXItdGhyZWFkIFVuaWNvZGUgc3RyaW5nIGJ1ZmZlci4KKworCSogZGxscy93aW5tbS90ZXN0cy93YXZlLmM6IFJvYmVydCBSZWlmIDxyZWlmQGVhcnRobGluay5uZXQ+CisJd2F2ZU91dEdldERldkNhcHNBIGNhbiBmYWlsIHdpdGggTU1TWVNFUlJfQkFEREVWSUNFSUQgb3IKKwlNTVNZU0VSUl9OT0RSSVZFUiB3aGVuIG5vIGRyaXZlcnMgcHJlc2VudC4KKwlBZGQgYmV0dGVyIGVycm9yIG1lc3NhZ2VzLgorCisJKiBkbGxzL2RpbnB1dDgvdmVyc2lvbi5yYzogSXZhbiBMZW8gTXVycmF5LVNtaXRoIDxwdW90aUBpbndpbmQuaXQ+CisJVXBkYXRlIHRvIHZlcnNpb24gOS4KKworCSogb2JqZWN0cy9lbmhtZXRhZmlsZS5jOiBEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCUFjY2VwdCBFTVJfRVhUVEVYVE9VVCByZWNvcmRzIHdpdGggZW1ydGV4dC5vZmZEeCBzZXQgdG8gMC4KKworCSogREVWRUxPUEVSUy1ISU5UUzogVG9tIFdpY2tsaW5lIDx0d2lja2xpbmVAc2l0ZXN0YXIubmV0PgorCUFkZCBuZXcgZGxscyBhbmQgZml4IGFscGhhYmV0aWNhbCBsb2NhdGlvbiBvZiBhIGNvdXBsZSBkbGxzLgorCisJKiBkbGxzL250ZGxsL3BhdGguYywgZGxscy9udGRsbC90ZXN0cy9wYXRoLmM6CisJUmVtb3ZlIHRyYWlsaW5nIHNwYWNlcyBmcm9tIHRoZSBmaWxlbmFtZSBpbiBSdGxHZXRGdWxsUGF0aE5hbWVfVS4KKworCSogZGxscy9kbWJhbmQvYmFuZC5jLCBkbGxzL2RtYmFuZC9iYW5kdHJhY2suYywKKwkgIGRsbHMvZG1iYW5kL2RtYmFuZF9tYWluLmMsIGRsbHMvZG1iYW5kL2RtYmFuZF9wcml2YXRlLmgsCisJICBkbGxzL2RtaW1lL3NlZ21lbnQuYywgZGxscy9kbWltZS9zZWd0cmlnZ2VydHJhY2suYywKKwkgIGRsbHMvZG1zdHlsZS9jaG9yZHRyYWNrLmM6CisJUmFwaGFlbCBKdW5xdWVpcmEgPGZlbml4QGNsdWItaW50ZXJuZXQuZnI+CisJLSBGZXdlciBGSVhNRXMuCisJLSBCZXR0ZXIgdHJhY2VzLgorCS0gSURpcmVjdE11c2ljQmFuZCBsb2FkaW5nIGZpeGVzOgorCSAgLSBsb2FkIGNvcnJlY3RseSBpbnN0cnVtZW50cyAoYW5kIFJlZmVyZW5jZXMKKwkgIC0gbG9hZCBJRGlyZWN0TXVzaWNDb2xsZWN0aW9uIG9iamVjdCAodXNpbmcgRE1Mb2FkZXIpCisJICAtIGluc2VydCB0aGUgdHdvIG9uIHRoZSBsaXN0CisJLSBJRGlyZWN0TXVzaWNCYW5kVHJhY2sgbG9hZGluZyBmaXhlcyAoZmlsbCBPQkpFQ1RERVNDIGFuZCBwYXJzZSBVTkZPCisJICBpbmZvcykuCisKKwkqIGRvY3VtZW50YXRpb24vZmFxLnNnbWw6IFRvbSBXaWNrbGluZSA8dHdpY2tsaW5lQHNpdGVzdGFyLm5ldD4KKwlTb21lIHVwZGF0ZXMgdG8gdGhlIGZhcS4KKworCSogcHJvZ3JhbXMvd2luZWNmZy9kcml2ZS5jOiBDaHJpcyBNb3JnYW4gPGNtb3JnYW5AYWx1bS53cGkuZWR1PgorCUZyZWUgdXAgdGhlIG9yaWdpbmFsIGJ1ZmZlciBwb2ludGVyIGluc3RlYWQgb2YgdGhlIG9uZSB3ZSBhZHZhbmNlZC4KKwlPbmx5IGNhbGwgZ2V0RHJpdmUoKSBvbmNlIGluc2lkZSBvZiBhZGREcml2ZSgpLgorCisJKiBkbGxzL3dpbmluZXQvZnRwLmMsIGRsbHMvd2luaW5ldC9odHRwLmMsIGRsbHMvd2luaW5ldC9pbnRlcm5ldC5jLAorCSAgZGxscy93aW5pbmV0L2ludGVybmV0Lmg6CisJS2V2aW4gS29sdHphdSA8a2V2aW5AcGxvcC5vcmc+CisJUHJldmVudCBtZW1vcnkgbGVhayBhbmQgc3VwZXJmbHVvdXMgc3RhdHVzIG5vdGlmaWNhdGlvbnMuCisKKwkqIGRsbHMvbXN2Y3J0L2ZpbGUuYzogRml4ZWQgY29weS9wYXN0ZSBidWcgaW4gcHJldmlvdXMgY2hhbmdlLgorCisJKiBkbGxzL2RtbG9hZGVyL01ha2VmaWxlLmluLCBkbGxzL2RtbG9hZGVyL2NsYXNzZmFjdG9yeS5jLAorCSAgZGxscy9kbWxvYWRlci9jb250YWluZXIuYywgZGxscy9kbWxvYWRlci9kZWJ1Zy5jLAorCSAgZGxscy9kbWxvYWRlci9kZWJ1Zy5oLCBkbGxzL2RtbG9hZGVyL2RtbG9hZGVyX21haW4uYywKKwkgIGRsbHMvZG1sb2FkZXIvZG1sb2FkZXJfcHJpdmF0ZS5oLCBkbGxzL2RtbG9hZGVyL2xvYWRlci5jLAorCSAgZGxscy9kbWxvYWRlci9sb2FkZXJzdHJlYW0uYzoKKwlSb2sgTWFuZGVsamMgPHJvay5tYW5kZWxqY0BnaW1iLm9yZz4KKwlkbWxvYWRlcjogY29tcGxldGUgcmV3cml0ZSBhbmQgZnVsbCBpbXBsZW1lbnRhdGlvbi4KKworMjAwNC0wNS0xMiAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9kbWJhbmQvYmFuZC5jOiBSYXBoYWVsIEp1bnF1ZWlyYSA8ZmVuaXhAY2x1Yi1pbnRlcm5ldC5mcj4KKwlJRGlyZWN0TXVzaWNCYW5kIGxvYWRpbmcuCisKKwkqIGRsbHMvYWR2YXBpMzIvY3J5cHQuYzogTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCVBhc3MgY3J5cHQgcHJvdmlkZXIgYW5kIHR5cGUgdG8gQ1BBY3F1aXJlQ29udGV4dC4KKworCSogZGxscy9tc3ZjcnQvbWF0aC5jLCBkbGxzL21zdmNydC9tc3ZjcnQuc3BlYywKKwkgIGRsbHMvbXN2Y3J0MjAvbXN2Y3J0MjAuc3BlYywgZGxscy9tc3ZjcnQ0MC9tc3ZjcnQ0MC5zcGVjLAorCSAgZGxscy9tc3ZjcnRkL21zdmNydGQuc3BlYzoKKwlGaXhlZCB0aGUgcHJvdG90eXBlcyBvZiB0aGUgX2Fkal9mZGl2XyogZnVuY3Rpb25zLgorCisJKiBkbGxzL2RtYmFuZC9iYW5kdHJhY2suYywgZGxscy9kbWJhbmQvZG1iYW5kX3ByaXZhdGUuaCwKKwkgIGRsbHMvZG1pbWUvc2VnbWVudC5jLCBkbGxzL2RtaW1lL3NlZ3RyaWdnZXJ0cmFjay5jLAorCSAgZGxscy9kbWltZS90ZW1wb3RyYWNrLmMsIGRsbHMvZG1zdHlsZS9jaG9yZHRyYWNrLmMsCisJICBkbGxzL2Rtc3R5bGUvc3R5bGV0cmFjay5jOgorCVJhcGhhZWwgSnVucXVlaXJhIDxmZW5peEBjbHViLWludGVybmV0LmZyPgorCS0gU2VnbWVudCBsb2FkaW5nIGZpeCAoY29ycmVjdCBGT1VSQ0NfUklGRiB0cmFja3MgaGFuZGxpbmcpLgorCS0gSURpcmVjdE11c2ljU3R5bGVUcmFjayBsb2FkaW5nIChuZWVkIERNIFJlZmVyZW5jZXMpLgorCS0gSURpcmVjdE11c2ljQmFuZFRyYWNrIGxvYWRpbmcgKG5lZWQgSURpcmVjdE11c2ljQmFuZCBsb2FkaW5nKS4KKworCSogZGxscy9kaW5wdXQ4Ly5jdnNpZ25vcmUsIGRsbHMvZGlucHV0OC9NYWtlZmlsZS5pbiwKKwkgIGRsbHMvZGlucHV0OC92ZXJzaW9uLnJjOgorCVRvbSBXaWNrbGluZSA8dHdpY2tsaW5lQHNpdGVzdGFyLm5ldD4KKwlBZGRlZCB2ZXJzaW9uIGluZm8uCisKKwkqIGRsbHMvd2luZXBzL2VzY2FwZS5jOiBIdXcgRGF2aWVzIDxodXdAY29kZXdlYXZlcnMuY29tPgorCVRoZSBQb3N0U2NyaXB0IGNsaXAgb3BlcmF0b3IgZG9lc24ndCBjbGVhciB0aGUgY3VycmVudCBwYXRoLCBzbyBhZnRlcgorCXRoZSBDTElQX1RPX1BBVEggZXNjYXBlIHdlIHdhbnQgdG8gY2xlYXIgaXQgb3Vyc2VsdmVzLgorCisJKiBkbGxzL2NvbWN0bDMyL3Rvb2xiYXIuYzoKKwlNYXhpbWUgQmVsbGVuZ+kgPG1heGltZS5iZWxsZW5nZUBsYXBvc3RlLm5ldD4KKwlBZGQgRFRfRU5EX0VMTElQU0lTIGFzIGRlZmF1dCBzdHlsZSBmb3IgdGV4dC4KKworCSogZGxscy93aW5pbmV0L2ludGVybmV0LmM6IEtldmluIEtvbHR6YXUgPGtldmluQHBsb3Aub3JnPgorCVByb3Blcmx5IHJldHJpZXZlIGFuZCByZWxlYXNlIGhhbmRsZXMuCisKKwkqIGRsbHMvbXN2Y3J0L2RhdGEuYywgZGxscy9tc3ZjcnQvZmlsZS5jLCBpbmNsdWRlL21zdmNydC9zdGRpby5oOgorCUVyaWMgUG91ZWNoIDxwb3VlY2gtZXJpY0B3YW5hZG9vLmZyPgorCS0gcmV3cm90ZSB0aGUgZmlsZSBjb2RlIHNvIHRoYXQgc3RyZWFtcyBtYW5hZ2UgbG93IGxldmVsIGZpbGUgZGVzYworCSAgKHRoZSBjb2RlIHdhcyB3cml0dGVuIHRoZSBvdGhlciB3YXkgYXJvdW5kKQorCS0gcmV3b3JrZWQgdGhlIGZsYWcgaGFuZGxpbmcgY29kZSAobm93IHRoZSBzdHJlYW0uX2ZsYWcgaXMgY2xvc2VyIHRvCisJICB3aGF0IE1TIGRvZXMpCisJLSBzaW1wbGlmaWVkIHRlbXAgZmlsZXMgaGFuZGxpbmcgYnkgdXNpbmcgRklMRV9GTEFHX0RFTEVURV9PTl9DTE9TRSBpbgorCSAgQ3JlYXRlRmlsZQorCS0gZml4ZWQgYSBjb3VwbGUgb2YgYnVncworCisJKiBkbGxzL2NvbW1kbGcvZmlsZWRsZy5jOgorCVdvbGZnYW5nIFNjaHdvdHplciA8d29sZmdhbmcuc2Nod290emVyQGdteC5uZXQ+CisJU3VwcG9ydCBscHN0ckN1c3RvbUZpbHRlciBhbmQgcmV0dXJuIG5GaWx0ZXJJbmRleCBpbiBmaWxlIGRpYWxvZy4KKworCSogdG9vbHMvd2luZS5pbmY6IFJvYmVydCBSZWlmIDxyZWlmQGVhcnRobGluay5uZXQ+CisJQWRkcyBtc2c3MTEgd2luZW1wMyB0byBsaXN0IG9mIGNvZGVjcy4KKworMjAwNC0wNS0xMSAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9kbWltZS9kbWltZV9tYWluLmMsIGRsbHMvZG1pbWUvZG1pbWVfcHJpdmF0ZS5oLAorCSAgZGxscy9kbWltZS9wZXJmb3JtYW5jZS5jLCBkbGxzL2RtaW1lL3NlZ21lbnQuYywKKwkgIGRsbHMvZG1pbWUvc2VndHJpZ2dlcnRyYWNrLmMsIGRsbHMvZG1zY3JpcHQvc2NyaXB0LmMsCisJICBkbGxzL2Rtc3R5bGUvY2hvcmR0cmFjay5jLCBkbGxzL2Rtc3R5bGUvZG1zdHlsZV9wcml2YXRlLmgsCisJICBpbmNsdWRlL2RtdXNpY2YuaDoKKwlSYXBoYWVsIEp1bnF1ZWlyYSA8ZmVuaXhAY2x1Yi1pbnRlcm5ldC5mcj4KKwktIFR5cG8gZml4IGluIGRtdXNpY2YuaC4KKwktIElEaXJlY3RNdXNpY0Nob3JkVHJhY2sgbG9hZGluZy4KKwktIE1hbnkgSXNEaXJ0eSBhbmQgR2V0Q2xhc3NJRCBzdHVicy4KKworCSogZGxscy9pbWFnZWhscC9pbnRlZ3JpdHkuYzogTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCUltcGxlbWVudCBJbWFnZUVudW1lcmF0ZUNlcnRpZmljYXRlcyBhbmQgSW1hZ2VHZXRDZXJ0aWZpY2F0ZUhlYWRlci4KKworCSogZGxscy94MTFkcnYva2V5Ym9hcmQuYzogRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlGaXggQ3JvYXRpYW4ga2V5Ym9hcmQgbGF5b3V0IHRvIGJldHRlciBtYXRjaCB0aGUgWEZyZWU4NiBvbmUuCisKKwkqIGRsbHMvdXNlci90ZXN0cy93aW4uYywgd2luZG93cy93aW4uYzoKKwlEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCS0gQWRkIGEgdGVzdCBmb3IgR2V0V2luZG93SW5mbywgaXQgc2hvdWxkIG5vdCBjaGVjayBjYlNpemUgbWVtYmVyIG9mCisJICB0aGUgV0lORE9XSU5GTyBzdHJ1Y3R1cmUuCisJLSBBZGQgdGVzdHMgZm9yIHdpbmRvdyBzdGF0ZSBhdCB0aGUgdGltZSB0aGUgc3lzdGVtIGNhbGxzCisJICBIQ0JUX0NSRUFURVdORCAoZmFpbGluZyB1bmRlciBXaW5lIGF0IHRoZSBtb21lbnQpLgorCisJKiBkbGxzL2NvbWN0bDMyL2xpc3R2aWV3LmM6IFVscmljaCBDemVrYWxsYSA8dWxyaWNoQGNvZGV3ZWF2ZXJzLmNvbT4KKwlIYW5kbGUgY2FzZSB3aGVyZSBpdGVyYXRvciByYW5nZSBjb250YWlucyAwIGVsZW1lbnRzLgorCisJKiBkbGxzL250ZGxsL3NlcnZlci5jLCBsaWJzL3dpbmUvY29uZmlnLmMsIHRvb2xzL3dpbmVwcmVmaXhjcmVhdGUuaW46CisJSW5pdGlhbCBzdXBwb3J0IGZvciBhdXRvbWF0aWNhbGx5IGNyZWF0aW5nIHRoZSB+Ly53aW5lIGRpcmVjdG9yeSBvbgorCXN0YXJ0dXAuCisKKwkqIHdpbmRvd3Mvc3lzY29sb3IuYywgd2luZG93cy9zeXNtZXRyaWNzLmM6CisJSmFrZSBIYW1ieSA8amhhbWJ5QGFub2JqZWN0LmNvbT4KKwlTZXZlcmFsIG9mIHRoZSByZWdpc3RyeSBrZXlzIGZvciBzeXN0ZW0gY29sb3JzIGFuZCBzeXN0ZW0gbWV0cmljcyB3ZXJlCisJaW5jb3JyZWN0LgorCisJKiBkbGxzL3dpbm1tL3dpbmVhbHNhL2F1ZGlvLmMsIGRsbHMvd2lubW0vd2luZWFydHMvYXVkaW8uYywKKwkgIGRsbHMvd2lubW0vd2luZWphY2svYXVkaW8uYywgZGxscy93aW5tbS93aW5lb3NzL2F1ZGlvLmM6CisJUm9iZXJ0IFJlaWYgPHJlaWZAZWFydGhsaW5rLm5ldD4KKwlBZGQgYW4gaW50ZXJmYWNlIG5hbWUgdG8gd2luZW9zcywgd2luZWFsc2EsIHdpbmVhcnRzIGFuZCB3aW5lamFjay4KKwlBZGQgc3VwcG9ydCBmb3Igd2F2ZSBpbnRlcmZhY2UgbWVzc2FnZSB3aGVyZSBtaXNzaW5nLgorCisJKiBkbGxzL2RtaW1lL2F1ZGlvcGF0aC5jLCBkbGxzL2RtaW1lL2RtaW1lX21haW4uYywKKwkgIGRsbHMvZG1pbWUvZG1pbWVfcHJpdmF0ZS5oLCBkbGxzL2RtaW1lL3NlZ21lbnQuYywKKwkgIGRsbHMvZG1pbWUvc2VndHJpZ2dlcnRyYWNrLmMsIGRsbHMvZG1pbWUvdGVtcG90cmFjay5jOgorCVJhcGhhZWwgSnVucXVlaXJhIDxmZW5peEBjbHViLWludGVybmV0LmZyPgorCS0gTWFueSBJRGlyZWN0TXVzaWNTZWdtZW50IGZpeGVzIChsb2FkaW5nKS4KKwktIEF1ZGlvUGF0aCBjcmFzaCBmaXggKGRvbid0IHVzZSBEU291bmQgQVBJcyBpZiBidWZmZXIgaXMgbnVsbCkuCisJLSBNb3ZlIGdlbmVyaWMgZnVuY3Rpb25zIHRvIGRtaW1lX21haW4uYyBmb3IgZnV0dXJlIHJldXNlIChmcm9tCisJICBzZWdtZW50LmMpLgorCS0gSURpcmVjdE11c2ljVGVtcG9UcmFjayBsb2FkaW5nIChtYW55IHRlbXBvIGNhc2UgbXVzdCBiZSBoYW5kbGVkKS4KKwktIElEaXJlY3RNdXNpY1NlZ1RyaWdnZXJUcmFjayBsb2FkaW5nIGltcGxlbWVudGF0aW9uIChub3cKKwkgIERNUkYvRGlyZWN0TXVzaWMgUmVmZXJlbmNlcyBsb2FkaW5nIHNob3VsZCBiZSBkb25lKS4KKworCSogZG9jdW1lbnRhdGlvbi90aHJlYWRpbmcuc2dtbCwgZG9jdW1lbnRhdGlvbi93aW5lLWRldmVsLnNnbWw6CisJTWlrZSBIZWFybiA8bWhAY29kZXdlYXZlcnMuY29tPgorCUFkZCBzb21lIGRvY3VtZW50YXRpb24gb24gaG93IHRocmVhZGluZyBpcyBpbXBsZW1lbnRlZCBpbiBXaW5lLgorCUNvdmVycyBiYXNpYyBXaW4zMiB0aHJlYWRpbmcgcHJpbWl0aXZlcywgc3lzbGV2ZWxzLCB0aGUgVEVCIGFuZAorCXB0aHJlYWRzIHZzIGt0aHJlYWRzLgorCisyMDA0LTA1LTEwICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL2FkdmFwaTMyL2FkdmFwaS5jOgorCUZpeGVkIGJ1ZmZlciBzaXplIGhhbmRsaW5nIGluIEdldFVzZXJOYW1lQSAocmVwb3J0ZWQgYnkgSGFubnUKKwlWYWx0b25lbikuCisKKwkqIGRsbHMvY29tY3RsMzIvY29tY3RsMzIuaCwgZGxscy9jb21jdGwzMi9jb21jdGxfQ24ucmMsCisJICBkbGxzL2NvbWN0bDMyL2NvbWN0bF9EZS5yYywgZGxscy9jb21jdGwzMi9jb21jdGxfRW4ucmMsCisJICBkbGxzL2NvbWN0bDMyL2NvbWN0bF9Fcy5yYywgZGxscy9jb21jdGwzMi9jb21jdGxfRnIucmMsCisJICBkbGxzL2NvbWN0bDMyL2NvbWN0bF9JdC5yYywgZGxscy9jb21jdGwzMi9jb21jdGxfSmEucmMsCisJICBkbGxzL2NvbWN0bDMyL2NvbWN0bF9Lby5yYywgZGxscy9jb21jdGwzMi9jb21jdGxfTmwucmMsCisJICBkbGxzL2NvbWN0bDMyL2NvbWN0bF9QbC5yYywgZGxscy9jb21jdGwzMi9jb21jdGxfUHQucmMsCisJICBkbGxzL2NvbWN0bDMyL2NvbWN0bF9SdS5yYywgZGxscy9jb21jdGwzMi9jb21jdGxfU2kucmMsCisJICBkbGxzL2NvbWN0bDMyL2NvbWN0bF9UaC5yYywgZGxscy9jb21jdGwzMi9jb21jdGxfVWsucmMsCisJICBkbGxzL2NvbWN0bDMyL3Byb3BzaGVldC5jOgorCU1heGltZSBCZWxsZW5n6SA8bWF4aW1lLmJlbGxlbmdlQGxhcG9zdGUubmV0PgorCUltcGxlbWVudGVkIFBTSF9XSVpBUkQ5N19PTEQgYW5kIFBTSF9XSVpBUkQ5N19ORVcgcHJvcGVydHkgc2hlZXQKKwlzdHlsZXMuCisKKwkqIGRsbHMvZDNkOC9kZXZpY2UuYzogQ2hyaXN0aWFuIENvc3RhIDx0aXRhbi5jb3N0YUB3YW5hZG9vLmZyPgorCUZpeGVkIFcgYnVmZmVyIGhhbmRsaW5nLgorCisJKiB3aW5kb3dzL2NsaXBib2FyZC5jOiBVbHJpY2ggQ3pla2FsbGEgPHVscmljaEBjb2Rld2VhdmVycy5jb20+CisJRml4IGNsaXBib2FyZCByZWdyZXNzaW9uLgorCisJKiBkbGxzL3VzZXIvdGVzdHMvbXNnLmM6IERtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJQWRkIG1vcmUgU2hvd1dpbmRvdy9TZXRXaW5kb3dQb3MgdGVzdHMuCisKKwkqIGRsbHMvd2luaW5ldC9pbnRlcm5ldC5jOiBLZXZpbiBLb2x0emF1IDxrZXZpbkBwbG9wLm9yZz4KKwlDbGVhbnVwIGNvbnZlcnNpb24gZnJvbSBBLT5XLgorCisJKiBpbmNsdWRlL3RocmVhZC5oOiBFcmljIFBvdWVjaCA8cG91ZWNoLWVyaWNAd2FuYWRvby5mcj4KKwlCZXR0ZXIgaGF2ZSBpbnRlcm5hbCAmIGV4dGVybmFsIFRFQiBkZWZpbml0aW9ucyBoYXZlIHRoZSBzYW1lIHNpemUuCisKKwkqIGluY2x1ZGUvd2ludGVybmwuaDogRXJpYyBQb3VlY2ggPHBvdWVjaC1lcmljQHdhbmFkb28uZnI+CisJRml4ZWQgYSBtaXNzaW5nIHR5cGVkZWYuCisKKwkqIGRsbHMvZDNkOC9kM2Q4X21haW4uYywgZGxscy9kM2Q4L2QzZDhfcHJpdmF0ZS5oLAorCSAgZGxscy9kM2Q4L2QzZGNvcmVfZ2wuaCwgZGxscy9kM2Q4L2RldmljZS5jLCBkbGxzL2QzZDgvZGlyZWN0eC5jLAorCSAgZGxscy9kM2Q4L2RyYXdwcmltLmMsIGRsbHMvZDNkOC9zaGFkZXIuYzoKKwlDaHJpc3RpYW4gQ29zdGEgPHRpdGFuLmNvc3RhQHdhbmFkb28uZnI+CisJSW1wbGVtZW50ZWQgcGl4ZWwgc2hhZGVycyB1c2luZyBBUkJfZnJhZ21lbnRfcHJvZ3JhbSBleHRlbnNpb24uCisKKwkqIGRsbHMvbXNhY20vZm9ybWF0LmMsIGRsbHMvbXNhY20vcGNtY29udmVydGVyLmMsCisJICBkbGxzL21zYWNtL3Rlc3RzL21zYWNtLmM6CisJUm9iZXJ0IFJlaWYgPHJlaWZAZWFydGhsaW5rLm5ldD4KKwlNb3JlIHBhcmFtZXRlciBjaGVja2luZyBmaXhlcyB3aXRoIHRlc3RzLgorCisJKiBkbGxzL29sZWF1dDMyL29sZXBpY3R1cmUuYzoKKwlNYXhpbWUgQmVsbGVuZ+kgPG1heGltZS5iZWxsZW5nZUBsYXBvc3RlLm5ldD4KKwlDb3JyZWN0bHkgY3JlYXRlIHRoZSBieXRlIGFycmF5IG9mIGdpZiBpbWFnZXMgdG8gbWF0Y2ggd2hhdAorCUNyZWF0ZURJQml0bWFwIGV4cGVjdHMuCisKKwkqIGRsbHMvZG1pbWUvYXVkaW9wYXRoLmMsIGRsbHMvZG1pbWUvZG1pbWVfbWFpbi5jLAorCSAgZGxscy9kbWltZS9kbWltZV9wcml2YXRlLmgsIGRsbHMvZG1pbWUvcGVyZm9ybWFuY2UuYywKKwkgIGRsbHMvZG1pbWUvc2VnbWVudC5jLCBkbGxzL2Rtc2NyaXB0L2Rtc2NyaXB0X3ByaXZhdGUuaCwKKwkgIGRsbHMvZG1zY3JpcHQvc2NyaXB0LmM6CisJUmFwaGFlbCBKdW5xdWVpcmEgPGZlbml4QGNsdWItaW50ZXJuZXQuZnI+CisJLSBSZWxlYXNlIERTQnVmZmVyIG9uIEF1ZGlvUGF0aCBkZXN0cnVjdGlvbi4KKwktIFNlbWkgc3R1YiBmb3IgQXVkaW9QYXRoIEFjdGl2YXRlLgorCS0gSURpcmVjdE11c2ljUGVyZm9ybWFuY2U4OjpDcmVhdGVBdWRpb1BhdGggc3R1Yi4KKwktIE1vc3Qgb2YgdGhlIElEaXJlY3RNdXNpY1NlZ21lbnQ4X1tTZXQsR2V0XSogKHVzaW5nIGhlYWRlcikuCisJLSBMb2FkIG9mIFN0cmVhbWVyIElEaXJlY3RNdXNpY1NlZ21lbnQ4IGhlYWRlci4KKworCSogaW5jbHVkZS9vYmppZGwuaCwgaW5jbHVkZS9vYmppZGwuaWRsOgorCUpha2UgSGFtYnkgPGpoYW1ieUBhbm9iamVjdC5jb20+CisJSU1lc3NhZ2VGaWx0ZXI6OkhhbmRsZUluQ29taW5nQ2FsbCgpIHNob3VsZCBiZSBIYW5kbGVJbmNvbWluZ0NhbGwoKS4KKworCSogZGxscy90YXBpMzIvbGluZS5jOiBSZWluIEtsYXplcyA8cmtsYXplc0B4czRhbGwubmw+CisJSW1wbGVtZW50YXRpb24gb2YgbGluZUdldFRyYW5zbGF0ZUNhcHMuCisKKwkqIGRsbHMvY29tY3RsMzIvY29tY3RsX1VrLnJjLCBkbGxzL2NvbW1kbGcvY2RsZ19Vay5yYywKKwkgIGRsbHMvc2hlbGwzMi9zaGVsbDMyX1VrLnJjLCBkbGxzL3VzZXIvcmVzb3VyY2VzL3VzZXIzMl9Vay5yYzoKKwlJbHlhIEtvcm5peWtvIDxrX2lseWFAdWtyLm5ldD4KKwlFbmNvZGluZyBmaXhlcyBpbiBVa3JhaW5pYW4gdHJhbnNsYXRpb24uCisKKzIwMDQtMDUtMDcgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGRvY3VtZW50YXRpb24vc2FtcGxlcy9jb25maWcsIGluY2x1ZGUvd2luZS9zZXJ2ZXJfcHJvdG9jb2wuaCwKKwkgIG1pc2MvcmVnaXN0cnkuYywgc2VydmVyL3Byb3RvY29sLmRlZiwgc2VydmVyL3JlZ2lzdHJ5LmMsCisJICBzZXJ2ZXIvcmVxdWVzdC5oLCBzZXJ2ZXIvdHJhY2UuYzoKKwlNb3ZlZCBsb2FkaW5nIG9mIHRoZSBob21lIHJlZ2lzdHJ5IGZpbGVzIHRvIHRoZSBzZXJ2ZXIsIHRoZXJlJ3Mgbm8KKwlyZWFsIG5lZWQgdG8gbWFrZSB0aGVzZSBjb25maWd1cmFibGUuCisKKwkqIGRsbHMvYWR2YXBpMzIvYWR2YXBpLmMsIGRsbHMvbnRkbGwvcmVnLmMsIGRsbHMvbnRkbGwvc2VjLmM6CisJVXNlIHRoZSBVbml4IGNvZGVwYWdlIHRvIGNvbnZlcnQgdGhlIHVzZXIgbmFtZSB0byBVbmljb2RlLgorCisJKiBkbGxzL21wci93bmV0LmM6IEtyaXNobmEgTXVydGh5IDxLcmlzaG5hLk11cnRoeUBndXB0YXdvcmxkd2lkZS5jb20+CisJV05ldEdldENvbm5lY3Rpb24oKTogdXNlIFF1ZXJ5RG9zRGV2aWNlIHRvIHJldHVybiBhIGZha2UgcmVtb3RlIG5hbWUKKwlpbnN0ZWFkIG9mIHRoZSBkcml2ZSBsYWJlbC4KKworCSogZGxscy91cmxtb24vdW1vbi5jLCBpbmNsdWRlL3VybG1vbi5oLCBpbmNsdWRlL3VybG1vbi5pZGw6CisJS2V2aW4gS29sdHphdSA8a2V2aW5AcGxvcC5vcmc+CisJSW1wbGVtZW50ZWQgSXNBc3luY01vbmlrZXIuCisKKwkqIGRsbHMvdXNlci90ZXN0cy93aW4uYywgZGxscy94MTFkcnYvd2luZG93LmMsIHdpbmRvd3Mvd2lucG9zLmM6CisJRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlNYWtlIFdNX0dFVE1JTk1BWElORk8gZGVmYXVsdCBiZWhhdmlvdXIgbW9yZSBsaWtlIHRoZSBXaW5kb3dzIG9uZS4KKworCSogZGxscy9zZXR1cGFwaS9zZXR1cGFwaS5zcGVjLCBkbGxzL3NldHVwYXBpL3N0dWJzLmM6CisJTWF0dGhldyBEYXZpc29uIDxtamQ3N0BjYW0uYWMudWs+CisJVXBkYXRlIHNwZWMgZmlsZS4KKworCSogY29udHJvbHMvZWRpdC5jOiBLcmlzaG5hIE11cnRoeSA8S3Jpc2huYS5NdXJ0aHlAZ3VwdGF3b3JsZHdpZGUuY29tPgorCUVNX1VORE8gc2hvdWxkIGFsd2F5cyByZXR1cm4gVFJVRSBmb3Igc2luZ2xlIGxpbmUgZWRpdC4KKworMjAwNC0wNS0wNiAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogUkVBRE1FLCBkbGxzL2tlcm5lbC9NYWtlZmlsZS5pbiwgZGxscy9rZXJuZWwvcHJvY2Vzcy5jLAorCSAgZG9jdW1lbnRhdGlvbi9SRUFETUUuZGUsIGRvY3VtZW50YXRpb24vUkVBRE1FLmZyLAorCSAgZG9jdW1lbnRhdGlvbi9SRUFETUUuaXQsIGRvY3VtZW50YXRpb24vUkVBRE1FLnB0X2JyLAorCSAgZG9jdW1lbnRhdGlvbi9ydW5uaW5nLnNnbWwsIGRvY3VtZW50YXRpb24vd2luZS5jb25mLm1hbiwKKwkgIGRvY3VtZW50YXRpb24vd2luZS5tYW4uaW4sIGluY2x1ZGUvb3B0aW9ucy5oLCBtaXNjL29wdGlvbnMuYywKKwkgIHRvb2xzL3dpbmVnY2Mvd2luZWdjYy5jOgorCURpbWl0cmllIE8uIFBhdW4gPGRwYXVuQHJvZ2Vycy5jb20+CisJUmVtb3ZlIHRoZSBsYXN0IHJlbWFpbmluZyB3aW5lIG9wdGlvbnMgd2hlbiBydW5uaW5nIHByb2dyYW1zLgorCUtlZXAgc3VwcG9ydCBmb3IgLS1oZWxwLCBhbmQgLS12ZXJzaW9uIHdoZW4gdGhleSBhcmUgdGhlIG9ubHkgb3B0aW9ucworCW9uIHRoZSBjb21tYW5kIGxpbmUuCisKKwkqIHByb2dyYW1zL3dpbmVjZmcvZHJpdmUuYzoKKwlGaXhlZCBjcmFzaCB3aGVuIHNlbGVjdGluZyB0aGUgZHJpdmUgbGV0dGVyIGNvbWJvIGJveC4KKworCSogc2VydmVyL3JlZ2lzdHJ5LmM6CisJUmVtb3ZlZCBoYW5kbGluZyBvZiBzcGVjaWFsIHJvb3Qga2V5cywgdGhpcyBpcyBkb25lIGJ5IHRoZSBjbGllbnQgbm93LgorCisJKiBkbGxzL3VzZXIvbWVzc2FnZS5jOiBBbmRyZXkgUGFub3YgPHBhdkBtZXRpYi5ydT4KKwlJbiBnZXRfYnVmZmVyX3NwYWNlKCkgZnVuY3Rpb24sIEhlYXBSZUFsbG9jKCkgd2lsbCBub3QgYWxsb2NhdGUgbWVtb3J5CisJaWYgcGFzc2VkICpidWZmZXIgdmFsdWUgaXMgTlVMTC4KKworCSogZGxscy94MTFkcnYvY2xpcGJvYXJkLmMsIGRsbHMveDExZHJ2L3gxMWRydi5oLCBpbmNsdWRlL3VzZXIuaCwKKwkgIHdpbmRvd3MvY2xpcGJvYXJkLmM6CisJVWxyaWNoIEN6ZWthbGxhIDx1bHJpY2hAY29kZXdlYXZlcnMuY29tPgorCUFsbG93IGFwcGxpY2F0aW9ucywgdW5kZXIgY2VydGFpbiBjb25kaXRpb25zLCB0byBzZXQgZGF0YSBpbnRvIHRoZQorCWNsaXBib2FyZCBldmVuIGlmIHRoZXkgYXJlIG5vdCB0aGUgY2xpcGJvYXJkIG93bmVycy4KKworCSogZGxscy9pcGhscGFwaS90ZXN0cy9pcGhscGFwaS5jOgorCURtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJSXQncyBPSyB0byBoYXZlIGR3TnVtRW50cmllcyA9PSAwIGlmIHRoZXJlIGlzIG5vIG5ldHdvcmsgY29ubmVjdGlvbi4KKworCSogZGxscy9kbWltZS9kbWltZV9wcml2YXRlLmgsIGRsbHMvZG1pbWUvcGVyZm9ybWFuY2UuYzoKKwlSYXBoYWVsIEp1bnF1ZWlyYSA8ZmVuaXhAY2x1Yi1pbnRlcm5ldC5mcj4KKwktIFBNc2cgcHJvY2Vzc2luZyB0aHJlYWQgKGN1cnJlbnRseSBvbmx5IE5vdGlmaWNhdGlvbnMgaGFuZGxpbmcpCisJLSBhIGNoYWluZWQgbGlzdCBidWcKKwktIHRocmVhZC1zYWZlIGxpc3RzCisJLSByZWFsIGNsb3NlIG9uIENsb3NlRG93bgorCisyMDA0LTA1LTA1ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBBTk5PVU5DRSwgQ2hhbmdlTG9nLCBWRVJTSU9OLCBjb25maWd1cmU6IFJlbGVhc2UgMjAwNDA1MDUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDIwMDQtMDUtMDUgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CiAKIAkqIGRvY3VtZW50YXRpb24vUkVBRE1FLmRlLCBkb2N1bWVudGF0aW9uL1JFQURNRS5mciwKZGlmZiAtLWdpdCBhL1ZFUlNJT04gYi9WRVJTSU9OCmluZGV4IGQzZmVlNWQuLjMzZDQ0MmEgMTAwNjQ0Ci0tLSBhL1ZFUlNJT04KKysrIGIvVkVSU0lPTgpAQCAtMSArMSBAQAotV2luZSB2ZXJzaW9uIDIwMDQwNTA1CitXaW5lIHZlcnNpb24gMjAwNDA2MTUKZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZSBiL2NvbmZpZ3VyZQppbmRleCAzODY2OWI0Li45YzM0OGVhIDEwMDc1NQotLS0gYS9jb25maWd1cmUKKysrIGIvY29uZmlndXJlCkBAIC0xLDYgKzEsNiBAQAogIyEgL2Jpbi9zaAogIyBHdWVzcyB2YWx1ZXMgZm9yIHN5c3RlbS1kZXBlbmRlbnQgdmFyaWFibGVzIGFuZCBjcmVhdGUgTWFrZWZpbGVzLgotIyBHZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNTkgZm9yIFdpbmUgMjAwNDA1MDUuCisjIEdlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi41OSBmb3IgV2luZSAyMDA0MDYxNS4KICMKICMgUmVwb3J0IGJ1Z3MgdG8gPHdpbmUtZGV2ZWxAd2luZWhxLm9yZz4uCiAjCkBAIC0yNjksOCArMjY5LDggQEAKICMgSWRlbnRpdHkgb2YgdGhpcyBwYWNrYWdlLgogUEFDS0FHRV9OQU1FPSdXaW5lJwogUEFDS0FHRV9UQVJOQU1FPSd3aW5lJwotUEFDS0FHRV9WRVJTSU9OPScyMDA0MDUwNScKLVBBQ0tBR0VfU1RSSU5HPSdXaW5lIDIwMDQwNTA1JworUEFDS0FHRV9WRVJTSU9OPScyMDA0MDYxNScKK1BBQ0tBR0VfU1RSSU5HPSdXaW5lIDIwMDQwNjE1JwogUEFDS0FHRV9CVUdSRVBPUlQ9J3dpbmUtZGV2ZWxAd2luZWhxLm9yZycKIAogYWNfdW5pcXVlX2ZpbGU9InNlcnZlci9hdG9tLmMiCkBAIC03ODgsNyArNzg4LDcgQEAKICAgIyBPbWl0IHNvbWUgaW50ZXJuYWwgb3Igb2Jzb2xldGUgb3B0aW9ucyB0byBtYWtlIHRoZSBsaXN0IGxlc3MgaW1wb3NpbmcuCiAgICMgVGhpcyBtZXNzYWdlIGlzIHRvbyBsb25nIHRvIGJlIGEgc3RyaW5nIGluIHRoZSBBL1VYIDMuMSBzaC4KICAgY2F0IDw8X0FDRU9GCi1cYGNvbmZpZ3VyZScgY29uZmlndXJlcyBXaW5lIDIwMDQwNTA1IHRvIGFkYXB0IHRvIG1hbnkga2luZHMgb2Ygc3lzdGVtcy4KK1xgY29uZmlndXJlJyBjb25maWd1cmVzIFdpbmUgMjAwNDA2MTUgdG8gYWRhcHQgdG8gbWFueSBraW5kcyBvZiBzeXN0ZW1zLgogCiBVc2FnZTogJDAgW09QVElPTl0uLi4gW1ZBUj1WQUxVRV0uLi4KIApAQCAtODUzLDcgKzg1Myw3IEBACiAKIGlmIHRlc3QgLW4gIiRhY19pbml0X2hlbHAiOyB0aGVuCiAgIGNhc2UgJGFjX2luaXRfaGVscCBpbgotICAgICBzaG9ydCB8IHJlY3Vyc2l2ZSApIGVjaG8gIkNvbmZpZ3VyYXRpb24gb2YgV2luZSAyMDA0MDUwNToiOzsKKyAgICAgc2hvcnQgfCByZWN1cnNpdmUgKSBlY2hvICJDb25maWd1cmF0aW9uIG9mIFdpbmUgMjAwNDA2MTU6Ijs7CiAgICBlc2FjCiAgIGNhdCA8PFxfQUNFT0YKIApAQCAtOTgyLDcgKzk4Miw3IEBACiB0ZXN0IC1uICIkYWNfaW5pdF9oZWxwIiAmJiBleGl0IDAKIGlmICRhY19pbml0X3ZlcnNpb247IHRoZW4KICAgY2F0IDw8XF9BQ0VPRgotV2luZSBjb25maWd1cmUgMjAwNDA1MDUKK1dpbmUgY29uZmlndXJlIDIwMDQwNjE1CiBnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNTkKIAogQ29weXJpZ2h0IChDKSAyMDAzIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgpAQCAtOTk2LDcgKzk5Niw3IEBACiBUaGlzIGZpbGUgY29udGFpbnMgYW55IG1lc3NhZ2VzIHByb2R1Y2VkIGJ5IGNvbXBpbGVycyB3aGlsZQogcnVubmluZyBjb25maWd1cmUsIHRvIGFpZCBkZWJ1Z2dpbmcgaWYgY29uZmlndXJlIG1ha2VzIGEgbWlzdGFrZS4KIAotSXQgd2FzIGNyZWF0ZWQgYnkgV2luZSAkYXNfbWUgMjAwNDA1MDUsIHdoaWNoIHdhcworSXQgd2FzIGNyZWF0ZWQgYnkgV2luZSAkYXNfbWUgMjAwNDA2MTUsIHdoaWNoIHdhcwogZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjU5LiAgSW52b2NhdGlvbiBjb21tYW5kIGxpbmUgd2FzCiAKICAgJCAkMCAkQApAQCAtMjA0NTgsNyArMjA0NTgsNyBAQAogfSA+JjUKIGNhdCA+JjUgPDxfQ1NFT0YKIAotVGhpcyBmaWxlIHdhcyBleHRlbmRlZCBieSBXaW5lICRhc19tZSAyMDA0MDUwNSwgd2hpY2ggd2FzCitUaGlzIGZpbGUgd2FzIGV4dGVuZGVkIGJ5IFdpbmUgJGFzX21lIDIwMDQwNjE1LCB3aGljaCB3YXMKIGdlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi41OS4gIEludm9jYXRpb24gY29tbWFuZCBsaW5lIHdhcwogCiAgIENPTkZJR19GSUxFUyAgICA9ICRDT05GSUdfRklMRVMKQEAgLTIwNTIxLDcgKzIwNTIxLDcgQEAKIAogY2F0ID4+JENPTkZJR19TVEFUVVMgPDxfQUNFT0YKIGFjX2NzX3ZlcnNpb249IlxcCi1XaW5lIGNvbmZpZy5zdGF0dXMgMjAwNDA1MDUKK1dpbmUgY29uZmlnLnN0YXR1cyAyMDA0MDYxNQogY29uZmlndXJlZCBieSAkMCwgZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjU5LAogICB3aXRoIG9wdGlvbnMgXFwiYGVjaG8gIiRhY19jb25maWd1cmVfYXJncyIgfCBzZWQgJ3MvW1xcIiJcYFwkXS9cXFxcJi9nJ2BcXCIKIAo=