ZGlmZiAtLWdpdCBhL0FOTk9VTkNFIGIvQU5OT1VOQ0UKaW5kZXggNGI1MDdiOC4uZDdiYjNjMiAxMDA2NDQKLS0tIGEvQU5OT1VOQ0UKKysrIGIvQU5OT1VOQ0UKQEAgLTEsMTQgKzEsMTQgQEAKLVRoaXMgaXMgcmVsZWFzZSAyMDA1MDMxMCBvZiBXaW5lLCBhIGZyZWUgaW1wbGVtZW50YXRpb24gb2YgV2luZG93cyBvbgorVGhpcyBpcyByZWxlYXNlIDIwMDUwNDE5IG9mIFdpbmUsIGEgZnJlZSBpbXBsZW1lbnRhdGlvbiBvZiBXaW5kb3dzIG9uCiBVbml4LiAgVGhpcyBpcyBzdGlsbCBhIGRldmVsb3BlcnMgb25seSByZWxlYXNlLiAgVGhlcmUgYXJlIG1hbnkgYnVncwogYW5kIHVuaW1wbGVtZW50ZWQgZmVhdHVyZXMuICBNb3N0IGFwcGxpY2F0aW9ucyBzdGlsbCBkbyBub3Qgd29yawogY29ycmVjdGx5LgogCi1XSEFUJ1MgTkVXIHdpdGggV2luZS0yMDA1MDMxMDogKHNlZSBDaGFuZ2VMb2cgZm9yIGRldGFpbHMpCi0gICAgICAgIC0gSW5pdGlhbCBpbXBsZW1lbnRhdGlvbiBvZiBhIHRydWUgUmljaGVkaXQgY29udHJvbC4KLSAgICAgICAgLSBTaGVsbCBleHRlbnNpb24gZm9yIGJyb3dzaW5nIFVuaXggZGlyZWN0b3JpZXMuCi0gICAgICAgIC0gTW9yZSBNU0kgd29yay4KLSAgICAgICAgLSBQQnVmZmVyIHN1cHBvcnQgaW4gT3BlbkdMLgotICAgICAgICAtIFdpbmRvdyBwYWludGluZyByZWdyZXNzaW9ucyBzaG91bGQgYmUgZml4ZWQuCitXSEFUJ1MgTkVXIHdpdGggV2luZS0yMDA1MDQxOTogKHNlZSBDaGFuZ2VMb2cgZm9yIGRldGFpbHMpCisgICAgICAgIC0gTWFpbHNsb3Qgc3VwcG9ydC4KKyAgICAgICAgLSBTdXBwb3J0IGZvciBzaWRlIG1vdXNlIGJ1dHRvbnMgKFggYnV0dG9ucykuCisgICAgICAgIC0gTW9yZSBSaWNoZWRpdCBpbXByb3ZlbWVudHMuCisgICAgICAgIC0gTG9hZGluZyBvZiBXaW5kb3dzIHJlZ2lzdHJ5IGZpbGVzIGRpc2FibGVkIGZvciBub3cuCisgICAgICAgIC0gTWFueSBjb2RlIGNsZWFudXBzLgogICAgICAgICAtIExvdHMgb2YgYnVnIGZpeGVzLgogCiBTZWUgdGhlIFJFQURNRSBmaWxlIGluIHRoZSBkaXN0cmlidXRpb24gZm9yIGluc3RhbGxhdGlvbiBpbnN0cnVjdGlvbnMuCkBAIC0xNyw4ICsxNyw4IEBACiB0aGUgcmVsZWFzZSBpcyBhdmFpbGFibGUgYXQgdGhlIGZ0cCBzaXRlcy4gIFRoZSBzb3VyY2VzIHdpbGwgYmUgYXZhaWxhYmxlCiBmcm9tIHRoZSBmb2xsb3dpbmcgbG9jYXRpb25zOgogCi0gIGh0dHA6Ly93d3cuaWJpYmxpby5vcmcvcHViL0xpbnV4L0FMUEhBL3dpbmUvZGV2ZWxvcG1lbnQvV2luZS0yMDA1MDMxMC50YXIuZ3oKLSAgaHR0cDovL3ByZG93bmxvYWRzLnNvdXJjZWZvcmdlLm5ldC93aW5lL1dpbmUtMjAwNTAzMTAudGFyLmd6CisgIGh0dHA6Ly93d3cuaWJpYmxpby5vcmcvcHViL0xpbnV4L0FMUEhBL3dpbmUvZGV2ZWxvcG1lbnQvV2luZS0yMDA1MDQxOS50YXIuZ3oKKyAgaHR0cDovL3ByZG93bmxvYWRzLnNvdXJjZWZvcmdlLm5ldC93aW5lL1dpbmUtMjAwNTA0MTkudGFyLmd6CiAKIEl0IHNob3VsZCBhbHNvIGJlIGF2YWlsYWJsZSBmcm9tIGFueSBvdGhlciBzaXRlIHRoYXQgbWlycm9ycyBpYmlibGlvLm9yZy4KIFRoZXNlIGxvY2F0aW9ucyBhbHNvIGhvbGQgcHJlLWJ1aWx0IGRvY3VtZW50YXRpb24gcGFja2FnZXMgaW4gdmFyaW91cwpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDNkNzllMjQuLmVkNWQ4NWUgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsNCArMSwyNTY4IEBACiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisyMDA1LTA0LTE5ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL3d0c2FwaTMyL3d0c2FwaTMyLmMsIGRsbHMvd3RzYXBpMzIvd3RzYXBpMzIuc3BlYywKKwkgIGluY2x1ZGUvd3RzYXBpMzIuaDoKKwlIdXcgRGF2aWVzIDxodXdAY29kZXdlYXZlcnMuY29tPgorCVdUU0ZyZWVNZW1vcnkgc3R1Yi4KKworCSogZGxscy9hZHZhcGkzMi90ZXN0cy9yZWdpc3RyeS5jOiBKYW1lcyBIYXdraW5zIDx0cnVpa2VuQGdtYWlsLmNvbT4KKwlTZXQgdGhlIGJhY2t1cC9yZXN0b3JlIHByaXZpbGVnZS4KKworCSogZGxscy9rZXJuZWwvdGVzdHMvZmlsZS5jOgorCVN0ZWZhbiBMZWljaHRlciA8U3RlZmFuLkxlaWNodGVyQGNhbUxpbmUuY29tPgorCUV4Y2x1ZGUgY3Jhc2hpbmcgQ3JlYXRlRmlsZVcgdGVzdCBvbiBOVDQuCisKKwkqIHNlcnZlci9maWxlLmMsIHNlcnZlci9maWxlLmgsIHNlcnZlci9tYXBwaW5nLmM6CisJQ2xlYW5lZCB1cCBoYW5kbGluZyBvZiA2NC1iaXQgZmlsZSBzaXplcy4KKworCSogZGxscy9udGRsbC92aXJ0dWFsLmM6IFRyb3kgUm9sbG8gPHdpbmVAdHJveS5yb2xsby5uYW1lPgorCUZpeCBTRUdWcyBpbiBOdENyZWF0ZVNlY3Rpb24gYW5kIE50TWFwVmlld09mU2VjdGlvbi4KKworCSogZGxscy9hZHZwYWNrL3JlZy5jOiBUcm95IFJvbGxvIDx3aW5lQHRyb3kucm9sbG8ubmFtZT4KKwlQcmV2ZW50IFNFR1YgaW4gUmVnSW5zdGFsbCB3aGVuIHBzdFRhYmxlIGlzIE5VTEwuCisKKwkqIGRsbHMvYWR2YXBpMzIvc2VydmljZS5jOiBUcm95IFJvbGxvIDx3aW5lQHRyb3kucm9sbG8ubmFtZT4KKwlDb3JyZWN0IHRlc3Qgb2YgQk9PTCByZXR1cm4gdmFsdWUgaW4gQ29udHJvbFNlcnZpY2UuCisKKwkqIGRsbHMvYWR2YXBpMzIvdGVzdHMvcmVnaXN0cnkuYzogSmFtZXMgSGF3a2lucyA8dHJ1aWtlbkBnbWFpbC5jb20+CisJUmVtb3ZlIHR3byB1bm5lY2Vzc2FyeSB0cmFjZXMuCisJQnJlYWsgdXAgb25lIHRlc3QgaW50byB0d28uCisKKwkqIGRsbHMvbnRkbGwvdGVzdHMvaW5mby5jLCBkbGxzL250ZGxsL3Rlc3RzL3J0bHN0ci5jLAorCSAgZGxscy9zaGVsbDMyL3NoZWxsb3JkLmMsIGRsbHMvdHdhaW4vdHdhaW4uaCwgZG9jdW1lbnRhdGlvbi9vbGUuc2dtbCwKKwkgIGluY2x1ZGUvY3VzdGNudGwuaDoKKwlGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAZnJlZS5mcj4KKwlBc3NvcnRlZCBzcGVsbGluZyBmaXhlcy4KKworCSogZGxscy9zaGVsbDMyL3NobGZpbGVvcC5jOiBUcm95IFJvbGxvIDx3aW5lQHRyb3kucm9sbG8ubmFtZT4KKwlGaXggU0VHViBmb3Igbm9uLWZ1bGx5LXF1YWxpZmllZCBkZXN0aW5hdGlvbiBwYXRocy4KKwlEb24ndCBmYWlsIFNoRmlsZU9wZXJhdGlvblcgaWYgRk9GX0FMTE9XVU5ETyBpcyBwYXNzZWQuCisKKwkqIGRsbHMvbXNpL3Rlc3RzL2RiLmMsIGRsbHMvbXNpL3Rlc3RzL3JlY29yZC5jLAorCSAgZGxscy9zaGVsbDMyL3Rlc3RzL3NoZWxsbGluay5jLCBkbGxzL3VzZXIvdGVzdHMvbXNnLmM6CisJRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGZyZWUuZnI+CisJQWRkIHRyYWlsaW5nICdcbidzIHRvIG9rKCkgY2FsbHMuCisKKwkqIGRsbHMvZHBsYXl4L2RwbGF5LmM6IEZyYW5jb2lzIEdvdWdldCA8ZmdvdWdldEBmcmVlLmZyPgorCURQU0VUX1JFTU9URSBpcyAwIHNvIHdlIGNhbm5vdCBkbyAoZmxhZ3MgJiBEUFNFVF9SRU1PVEUpLiBJbnN0ZWFkCisJY2hlY2sgdGhhdCB0aGUgRFBTRVRfTE9DQUwgZmxhZyBpcyBub3Qgc2V0LgorCisJKiBkbGxzL2NvbW1kbGcvZmlsZWRsZ2Jyb3dzZXIuYzogRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGZyZWUuZnI+CisJU0JTUF9BQlNPTFVURSBpcyAwIHNvIHdlIGNhbm5vdCBkbyAod0ZsYWdzICYgU0JTUF9BQlNPTFVURSkuCisJQWRkIENPTURMRzMyX0R1bXBTQlNQRmxhZ3MoKS4KKworCSogZG9jdW1lbnRhdGlvbi93aW5lZGV2LW90aGVyZGVidWcuc2dtbDoKKwlBYXJvbiBBcnZleSA8YWFydmV5QGNzLmhtYy5lZHU+CisJQWRkZWQgc2VjdGlvbiAiV2hpY2ggY29kZSBoYXMgYmVlbiB0ZXN0ZWQ/IiBkZXNjcmliaW5nIGdjb3YgdXNhZ2UuCisKKwkqIGRsbHMvYWR2YXBpMzIvdGVzdHMvcmVnaXN0cnkuYzogSmFtZXMgSGF3a2lucyA8dHJ1aWtlbkBnbWFpbC5jb20+CisJQWRkIFJlZ1VuTG9hZEtleSB0ZXN0LgorCisJKiBkbGxzL3VzZXIvbWVudS5jOiBKb3NlIEFsb25zbyA8YWxvbnNvQGVzdGFkYW8uY29tLmJyPgorCUNoYW5nZSB0aGUgb3JkZXIgb2YgRGlzcGF0Y2hNZXNzYWdlIGFuZCBtZXNzYWdlIHJlbW92YWwuCisKKzIwMDUtMDQtMTggIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIHRvb2xzL3dpZGwvd2lkbC5jOiBKdWFuIExhbmcgPGp1YW5fbGFuZ0B5YWhvby5jb20+CisJQWx3YXlzIGluaXRpYWxpemUgaGVhZGVyIGZpbGUgbmFtZSwgdG8gcHJldmVudCAiI2luY2x1ZGUgKG51bGwpIgorCXN0YXRlbWVudHMgaW4gZ2VuZXJhdGVkIGZpbGVzLgorCisJKiB0b29scy93aW5lLmluZjogQmVuamFtaW4gQ3V0bGVyIDxjdXRsZXJAY3MuY29sb3N0YXRlLmVkdT4KKwlBZGQgZGVmYXVsdCByZWdpc3RyeSBlbnRyaWVzIGZvciBwb3dlciBtYW5hZ2VtZW50LgorCisJKiBkbGxzL2tlcm5lbC90ZXN0cy9hdG9tLmM6IEVyaWMgUG91ZWNoIDxwb3VlY2gtZXJpY0B3YW5hZG9vLmZyPgorCUNvcGllZCB0aGUgYXRvbSB0ZXN0cyBmb3IgZ2xvYmFsIGF0b20gc28gdGhhdCB3ZSBjYW4gdGVzdCBsb2NhbCBhdG9tcworCXRvby4KKworCSogZGxscy9rZXJuZWwvbG9jYWxlLmM6CisJUmVtb3ZlZCB1bnVzZWQgZGF0YSBmaWVsZHMgaW4gdGhlIExBTkdfRklORF9EQVRBIHN0cnVjdHVyZS4KKworCSogZGxscy9udGRsbC9zeW5jLmMsIGluY2x1ZGUvd2luZS9zZXJ2ZXJfcHJvdG9jb2wuaCwKKwkgIHNlcnZlci9wcm90b2NvbC5kZWY6CisJRXJpYyBQb3VlY2ggPHBvdWVjaC1lcmljQHdhbmFkb28uZnI+CisJUmVtb3ZlZCB0aGUgbm8gbG9uZ2VyIHVzZXIgQVBDX0FTWU5DIGtpbmQgb2YgQVBDLgorCisJKiB3aW5kb3dzL3N5c2NvbG9yLmM6IFJlaW4gS2xhemVzIDx3aWpuQHdhbmFkb28ubmw+CisJRml4IGFkZHJlc3NpbmcgdGhlIG1hZ2ljIEdESU9CSkhEUiBmaWVsZCBpbgorCVNZU0NPTE9SX01ha2VPYmplY3RTeXN0ZW0uCisKKwkqIGRsbHMvdXNlci90ZXh0LmM6IFBldGVyIEJlcmcgTGFyc2VuIDxwZWJsQG1hdGgua3UuZGs+CisJRWxpbWluYXRlIHN0cm5jcHkuIENvcnJlY3QgYSBcMCBhc3NpbmdtZW50IHRvIHRoZSBtb2RzdHIgdmFyaWFibGUuCisKKwkqIGRsbHMvbXNpL2Zvcm1hdC5jOiBQZXRlciBCZXJnIExhcnNlbiA8cGVibEBtYXRoLmt1LmRrPgorCVJlbW92ZSAyIGlkZW50aWNhbHMgY2FsbHMgdG8gc3RybGVuVy4KKworCSogZGxscy9kbWxvYWRlci9jb250YWluZXIuYywgZGxscy9kbXVzaWMvY29sbGVjdGlvbi5jLAorCSAgZGxscy9rZXJuZWwvdGFzay5jLCBkbGxzL3JzYWVuaC9yc2FlbmguYywgZGxscy9zaGx3YXBpL3BhdGguYywKKwkgIGRsbHMvc2hsd2FwaS91cmwuYywgZGxscy93aW5lZG9zL2RldmljZXMuYywgZGxscy93aW5pbmV0L3VybGNhY2hlLmM6CisJUGV0ZXIgQmVyZyBMYXJzZW4gPHBlYmxAbWF0aC5rdS5kaz4KKwlTdHJuY3B5IGVsaW1pbmF0aW9uLgorCisJKiBkbGxzL2RiZ2hlbHAvdHlwZS5jOiBQZXRlciBCZXJnIExhcnNlbiA8cGVibEBtYXRoLmt1LmRrPgorCUVsaW1pbmF0ZSBzdHJuY3B5IGFuZCBjb3JyZWN0IHNvbWUgTmFtZUxlbiBidWdzLgorCisJKiBkbGxzL2RiZ2hlbHAvbW9kdWxlLmM6IFBldGVyIEJlcmcgTGFyc2VuIDxwZWJsQG1hdGgua3UuZGs+CisJRWxpbWluYXRpb24gb2YgbHN0cmNweW4sIGFuZCBjb3JyZWN0ZWQgYSBwb3RlbnRpYWwgcG9pbnRlciBidWcuCisKKwkqIGRsbHMvY2FiaW5ldC9jYWJleHRyYWN0LmM6IFBldGVyIEJlcmcgTGFyc2VuIDxwZWJsQG1hdGgua3UuZGs+CisJRWxpbWluYXRlIGEgc3RybmNweSBhbmQgcmVtb3ZlIHVudXNlZCB2YXJpYWJsZS4KKworCSogZGxscy9rZXJuZWwvc3luYy5jLCBkbGxzL250ZGxsL2ZpbGUuYywKKwkgIGluY2x1ZGUvd2luZS9zZXJ2ZXJfcHJvdG9jb2wuaCwgaW5jbHVkZS93aW50ZXJubC5oLAorCSAgc2VydmVyL25hbWVkX3BpcGUuYywgc2VydmVyL3Byb3RvY29sLmRlZiwgc2VydmVyL3RyYWNlLmM6CisJRXJpYyBQb3VlY2ggPHBvdWVjaC1lcmljQHdhbmFkb28uZnI+CisJLSBtb3ZlZCBuYW1lZCBwaXBlIGNyZWF0aW9uIHRvIG50ZGxsCisJLSBzZXJ2ZXIgbm93IGhhbmRsZXMgdGhlIG5hbWVkIHBpcGUgZmxhZ3MgYXMgdGhlIE5URExMIHZhbHVlcyAobm90IHRoZQorCSAgS0VSTkVMMzIgb25lcykKKwktIG5hbWVkIHBpcGVzIGluIHNlcnZlciBub3cgdXNlIHRoZSBhc3luYyBJTyBtZWNoYW5pc20gZm9yCisJICBjb25uZWN0L3dhaXQgb3BzCisKKwkqIGRsbHMvZGlucHV0L2RhdGFfZm9ybWF0cy5jOiBSb2JlcnQgUmVpZiA8cmVpZkBlYXJ0aGxpbmsubmV0PgorCUFkZGVkIGtleWJvYXJkIGRhdGEgZm9ybWF0LgorCisJKiBkbGxzL2NvbWN0bDMyL3Rvb2x0aXBzLmMsIGRsbHMvY29tbWRsZy9maWxlZGxnLmMsCisJICBkbGxzL2RldmVudW0vcGFyc2VkaXNwbGF5bmFtZS5jLCBkbGxzL2RtYmFuZC9iYW5kLmMsCisJICBkbGxzL2RtY29tcG9zL2Nob3JkbWFwLmMsIGRsbHMvZG1pbWUvYXVkaW9wYXRoLmMsIGRsbHMvZG1pbWUvZ3JhcGguYywKKwkgIGRsbHMvZG1pbWUvc2VnbWVudC5jLCBkbGxzL2RtbG9hZGVyL2xvYWRlcnN0cmVhbS5jLAorCSAgZGxscy9kbXNjcmlwdC9zY3JpcHQuYywgZGxscy9kbXN0eWxlL3N0eWxlLmMsIGRsbHMvZ2RpL2ZvbnQuYywKKwkgIGRsbHMvZ2RpL2ZyZWV0eXBlLmMsIGRsbHMvaXRzcy9jaG1fbGliLmMsIGRsbHMvbXNpL2NvbmQueSwKKwkgIGRsbHMvbXN2Y3J0L2xvY2FsZS5jLCBkbGxzL21zdmlkZW8vbWNpd25kLmMsCisJICBkbGxzL21zdmlkZW8vbXN2aWRlbzE2LmMsIGRsbHMvb2xlZGxnL2luc29iamRsZy5jLAorCSAgZGxscy9xdWFydHovZmlsdGVybWFwcGVyLmMsIGRsbHMvc2hlbGwzMi9kZWJ1Z2hscC5jLAorCSAgZGxscy9zaGVsbDMyL3NoZWxsbGluay5jLCBkbGxzL3NoZWxsMzIvc2hlbGxwYXRoLmMsCisJICBkbGxzL3NoZWxsMzIvc2hsZXhlYy5jLCBkbGxzL3NoZWxsMzIvc3lzdHJheS5jLCBkbGxzL3VzZXIvZWRpdC5jLAorCSAgZGxscy93aW5lZG9zL2ludDIxLmMsIGRsbHMvd2luaW5ldC9kaWFsb2dzLmMsCisJICBkbGxzL3dpbmluZXQvaW50ZXJuZXQuYywgZGxscy93aW5pbmV0L3V0aWxpdHkuYywKKwkgIGRsbHMvd2lubW0vd2luZW9zcy9hdWRpby5jLCBwcm9ncmFtcy93aW5lY2ZnL2RyaXZlZGV0ZWN0LmMsCisJICB0b29scy9zZm50MmZudC5jOgorCVBldGVyIEJlcmcgTGFyc2VuIDxwZWJsQG1hdGgua3UuZGs+CisJUmVwbGFjZSBzdHJuY3B5IHdpdGggbWVtY3B5IG9yIGxzdHJjcHluLgorCisJKiBkbGxzL2NvbWN0bDMyL3RyZWV2aWV3LmM6IFZpdGFsaXkgTWFyZ29sZW4gPHdpbmUtcGF0Y2hAa2lldmluZm8uY29tPgorCURvbid0IHJlZHJhdyBpZiBubyBpbmZvcm1hdGlvbiBoYXMgY2hhbmdlZC4KKwlGaXhlZCBlbmRsZXNzIHJlZHJhdyBsb29wIGlmIGFwcCB1c2luZyBjYWxsYmFjayBmb3IgaW1hZ2VzIGFuZC9vcgorCXRleHQuCisJS2VlcCBjb2xvciBjaGFuZ2VzIG1hZGUgYnkgYXBwIGZvciB0aGUgY3VycmVudCBkcmF3IGN5Y2xlLgorCisJKiBkbGxzL2NvbW1kbGcvcHJpbnRkbGcuYywgaW5jbHVkZS9jb21tZGxnLmg6CisJRXJpYyBQb3VlY2ggPHBvdWVjaC1lcmljQHdhbmFkb28uZnI+CisJQWRkZWQgcHJvcGVyIGRlZmluaXRpb24gZm9yIFBSSU5URExHRVhbQVddIHN0cnVjdHVyZXMuCisKKwkqIHByb2dyYW1zL3dpbmV0ZXN0L2d1aS5jLCBwcm9ncmFtcy93aW5ldGVzdC9tYWluLmMsCisJICBwcm9ncmFtcy93aW5ldGVzdC91dGlsLmMsIHByb2dyYW1zL3dpbmV0ZXN0L3dpbmV0ZXN0LmgsCisJICBwcm9ncmFtcy93aW5ldGVzdC93aW5ldGVzdC5yYzoKKwlGZXJlbmMgV2FnbmVyIDx3ZmVyaUB0YmEuZWx0ZS5odT4KKwlFbmZvcmNlIHZhbGlkIHRhZyBzeW50YXggZHVyaW5nIGlucHV0LgorCisJKiBkbGxzL21zYWNtL2ltYWFkcDMyL2ltYWFkcDMyLmMsIGRsbHMvbXN2Y3J0L21iY3MuYywKKwkgIHByb2dyYW1zL3dpbmVjZmcvd2luZWNmZy5jOgorCUVyaWMgUG91ZWNoIDxwb3VlY2gtZXJpY0B3YW5hZG9vLmZyPgorCUZpeGVkIHNvbWUgc2lnbmVkIC8gdW5zaWduZWQgcG9pbnRlciBjYXN0cy4KKworCSogZG9jdW1lbnRhdGlvbi9hcmNoaXRlY3R1cmUuc2dtbCwgZG9jdW1lbnRhdGlvbi93aW5lZGV2LWtlcm5lbC5zZ21sOgorCUVyaWMgUG91ZWNoIDxwb3VlY2gtZXJpY0B3YW5hZG9vLmZyPgorCS0gVXNpbmcgdW5pZm9ybSBEb2NCb29rIHRhZ3MgZm9yIERMTHMsIGNvbW1hbmRzLCBlbnZpcm9ubWVudCB2YXJzLi4uCisJLSBNb3ZlZCBkZXRhaWxlZCBtZW1vcnkgbWFuYWdlbWVudCBmcm9tIGFyY2hpIHRvIGtlcm5lbChzKSBwYXJ0LgorCS0gRW5oYW5jZWQgcHJvY2VzcyBoYW5kbGluZyBkZXNjcmlwdGlvbi4KKwktIEFkZGVkIHNlY3Rpb24gYWJvdXQgMTYgYml0IHByb2Nlc3Nlcycgc3VwcG9ydC4KKwktIEFkZGVkIHNlY3Rpb24gYWJvdXQgRE9TIHN1cHBvcnQuCisKKwkqIGRvY3VtZW50YXRpb24vZGVidWdnZXIuc2dtbDogRXJpYyBQb3VlY2ggPHBvdWVjaC1lcmljQHdhbmFkb28uZnI+CisJTWlub3IgY2xlYW51cHMuCisKKwkqIGRsbHMvYWR2YXBpMzIvdGVzdHMvcmVnaXN0cnkuYzogSmFrb2IgRXJpa3Nzb24gPGpha292QHZtbGludXgub3JnPgorCUZhaWwgZ3JhY2VmdWxseSBvbiBwZXJtaXNzaW9uIGRlbmllZC4KKworCSogZGxscy9udGRsbC9udC5jOiBCZW5qYW1pbiBDdXRsZXIgPGN1dGxlckBjcy5jb2xvc3RhdGUuZWR1PgorCUFkZCBzZW1pLXN0dWIgZm9yIE50UG93ZXJJbmZvcm1hdGlvbihTeXN0ZW1Qb3dlckNhcGFiaWxpdGllcywgLi4uKS4KKworCSogZGxscy9jb21jdGwzMi9kYXRldGltZS5jOiBEdWFuZSBDbGFyayA8ZGNsYXJrQGFrYW1haWwuY29tPgorCVRoZSBkYXRldGltZSBzaG91bGQgYmUgaW5pdGlhbGl6ZWQgd2l0aCBsb2NhbCB0aW1lLgorCisJKiBkbGxzL2FkdnBhY2svYWR2cGFjay5jLCBkbGxzL2FkdnBhY2svYWR2cGFjay5zcGVjLCBpbmNsdWRlL2FkdnB1Yi5oOgorCVNhbWkgQWFyaW8gPHNhbWkuYWFyaW9Ac3VyZmV1LmZpPgorCUFkZGVkIHN0dWJzIGZvciBSdW5TZXR1cENvbW1hbmQgYW5kIERlbE5vZGUuCisKKwkqIGRsbHMveDExZHJ2L2NsaXBib2FyZC5jOiBFcmljIFBvdWVjaCA8cG91ZWNoLWVyaWNAd2FuYWRvby5mcj4KKwlDb3JyZWN0bmVzcyBmb3IgY29uc3QgcG9pbnRlciBjYXN0cy4KKworCSogcHJvZ3JhbXMvcHJvZ21hbi9kaWFsb2cuYywgcHJvZ3JhbXMvcHJvZ21hbi9wcm9ncmFtLmM6CisJRXJpYyBQb3VlY2ggPHBvdWVjaC1lcmljQHdhbmFkb28uZnI+CisJUmVtb3ZlZCBhIGNvdXBsZSBvZiB1bm5lZWRlZCBjYXN0cy4KKworMjAwNS0wNC0xNiAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9udGRsbC9udGRsbC5zcGVjLCBkbGxzL250ZGxsL3N5bmMuYywgaW5jbHVkZS93aW50ZXJubC5oOgorCU1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlEZWNsYXJlIGFuZCBkZWZpbmUgYSBzdHViIGZvciBOdFNpZ25hbEFuZFdhaXRGb3JTaW5nbGVPYmplY3QuCisKKwkqIGRsbHMvZ2RpL2dkaTE2LmM6IFJpY2hhcmQgQ29oZW4gPHJpY2hhcmRAZGFpam9idS5jby51az4KKwlDcmVhdGVCaXRtYXAxNiBzaG91bGQgdXNlIG9ubHkgdGhlIGZpcnN0IGJ5dGUgb2YgcGxhbmVzICYgYnBwLgorCisJKiBkbGxzL2FkdmFwaTMyL3JlZ2lzdHJ5LmMsIGRsbHMvYWR2YXBpMzIvdGVzdHMvcmVnaXN0cnkuYzoKKwlKYW1lcyBIYXdraW5zIDx0cnVpa2VuQGdtYWlsLmNvbT4KKwlSZWdEZWxldGVLZXkgZmFpbHMgaWYgdGhlIGxwU3ViS2V5IHBhcmFtIGlzIE5VTEwuCisKKwkqIGRsbHMvcmljaGVkMjAvY2FyZXQuYywgZGxscy9yaWNoZWQyMC9lZGl0b3IuYywKKwkgIGRsbHMvcmljaGVkMjAvZWRpdG9yLmgsIGRsbHMvcmljaGVkMjAvZWRpdHN0ci5oLAorCSAgZGxscy9yaWNoZWQyMC9wYWludC5jLCBkbGxzL3JpY2hlZDIwL3BhcmEuYywgZGxscy9yaWNoZWQyMC9ydW4uYywKKwkgIGRsbHMvcmljaGVkMjAvc3R5bGUuYywgZGxscy9yaWNoZWQyMC93cmFwLmM6CisJS3J6eXN6dG9mIEZvbHRtYW4gPHdkZXZAZm9sdG1hbi5jb20+CisJLSByZW1vdmVkIHRyYWlsaW5nIHNwYWNlcyBmcm9tIHNvbWUgZmlsZXMKKwktIHRhYiBzdXBwb3J0CisJLSBpbmRlbnQgc3VwcG9ydAorCisJKiBkbGxzL2NvbWN0bDMyL2RhdGV0aW1lLmM6IER1YW5lIENsYXJrIDxkY2xhcmtAYWthbWFpbC5jb20+CisJQWRkIHN1cHBvcnQgZm9yIGRpcmVjdCBrZXlib2FyZCBpbnB1dCB0byBudW1lcmljIGZpZWxkcy4KKworCSogZGxscy9oaGN0cmwub2N4L2hoY3RybC5jOiBNaWtlIEhlYXJuIDxtaWtlQG5hdmkuY3g+CisJLSBBZGQgdGV4dCBkdW1waW5nIG9mIHRoZSByZXF1ZXN0ZWQgY29tbWFuZC4KKwktIE1ha2UgdGhlIHN0dWIgbWVzc2FnZSBhcHBlYXIgZm9yIG1vcmUgY29tbWFuZHMuCisKKwkqIGRsbHMvbnRkbGwvbnQuYywgZGxscy9udGRsbC9udGRsbC5zcGVjLCBpbmNsdWRlL3dpbnRlcm5sLmg6CisJQmVuamFtaW4gQ3V0bGVyIDxjdXRsZXJAY3MuY29sb3N0YXRlLmVkdT4KKwktIENvcnJlY3QgYXJncyBmb3IgTnRQb3dlckluZm9ybWF0aW9uLgorCS0gQWRkIHN0dWIgZm9yIE50SW5pdGlhdGVQb3dlckFjdGlvbi4KKworMjAwNS0wNC0xNSAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogbG9hZGVyL3ByZWxvYWRlci5jOiBBYXJvbiBBcnZleSA8YWFydmV5QGNzLmhtYy5lZHU+CisJQWRkZWQgX19iYl9pbml0X2Z1bmMgZm9yIGxpbmtpbmcgcHVycG9zZXMuCisKKwkqIGRsbHMvbXNodG1sL2h0bWxkb2MuYywgZGxscy9tc2h0bWwvbXNodG1sX3ByaXZhdGUuaCwKKwkgIGRsbHMvbXNodG1sL29sZW9iai5jLCBkbGxzL21zaHRtbC92aWV3LmM6CisJSmFjZWsgQ2FiYW4gPGphY2tAaXRtYS5wd3Iud3JvYy5wbD4KKwktIE1vcmUgaW1wbGVtZW50YXRpb24gb2YgdmlldworCS0gQWRkZWQgSU9sZUluUGxhY2VBY3RpdmVPYmplY3QKKworCSogZGxscy9hZHZhcGkzMi90ZXN0cy9yZWdpc3RyeS5jOiBKYWtvYiBFcmlrc3NvbiA8amFrb3ZAdm1saW51eC5vcmc+CisJRVJST1JfUFJJVklMRUdFX05PVF9IRUxEIGNhbiBiZSByZXR1cm5lZCBmb3IgTlQ0LgorCisJKiBkbGxzL2FkdmFwaTMyL3Rlc3RzL2NyeXB0LmM6IEpha29iIEVyaWtzc29uIDxqYWtvdkB2bWxpbnV4Lm9yZz4KKwlXaW45OCBjYW4gcmV0dXJuIEVSUk9SX0NBTExfTk9UX0lNUExFTUVOVEVELgorCisJKiBkbGxzL2RjaW1hbjMyL2RjaW1hbjMyLnNwZWMsIGRsbHMvZGNpbWFuMzIvZGNpbWFuX21haW4uYzoKKwlCcmlhbiBWaW5jZW50IDx2aW5uQHRoZXNoZWxsLmNvbT4KKwlBZGQgc3R1YiBmb3IgRENJQ3JlYXRlUHJpbWFyeS4KKworCSogZGxscy9zaGVsbDMyL3NoZmxkcl9mcy5jOiBIdXcgRGF2aWVzIDxodXdAY29kZXdlYXZlcnMuY29tPgorCVdoZW4gd2UncmUgaGlkaW5nIGZpbGUgZXh0ZW5zaW9ucyB0aGVuIFNldE5hbWVPZiBzaG91bGQgYXBwZW5kIHRoZQorCW9yaWdpbmFsIGV4dGVuc2lvbiBpZiBTSEdETl9GT1JQQVJTSU5HIGlzbid0IHNldC4KKwlUaGUgZmxhZ3MgcGFzc2VkIHRvIFNldE5hbWVPZiByZWZlciB0byB0aGUgZHN0IHN0cmluZyBub3QgdGhlIHNyYworCXBpZGwuCisKKwkqIGRsbHMvb2xlMzIvbW9uaWtlci5jOiBEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCVplcm8gb3V0IGFuIGludmFsaWRhdGVkIHJ1bm5pbmdPYmplY3RUYWJsZUluc3RhbmNlIHBvaW50ZXIuCisKKwkqIHRvb2xzL3dpbmVkdW1wL21haW4uYzogRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGNvZGV3ZWF2ZXJzLmNvbT4KKwlNZW50aW9uIHRoZSAnZW1mJyBhbmQgJ2xuaycgbW9kZXMgaW4gdGhlIHVzYWdlIHN1bW1hcnkuCisJQWRkIC0/IGFuZCAtLWhlbHAgc3lub255bXMgZm9yIC1oIGFzIGlzIGN1c3RvbWFyeS4KKwlwdXRzKCIiKSBhbHJlYWR5IHByaW50cyBhICdcbicgc28gd2UgZG9uJ3QgbmVlZCBhIHNlY29uZCBvbmUuCisKKwkqIHByb2dyYW1zL3dpbmVtZW51YnVpbGRlci93aW5lbWVudWJ1aWxkZXIuYzoKKwlGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAY29kZXdlYXZlcnMuY29tPgorCUlmIHdpbmVtZW51YnVpbGRlciBpcyBnaXZlbiBhIGxpc3Qgb2YgbWVudXMgdG8gcmVjcmVhdGUsIGl0IHNob3VsZCBub3QKKwlnaXZlIHVwIG9uIHRoZSBmaXJzdCBtZW51IHRoYXQgZmFpbHMuCisKKwkqIGRsbHMvY29tY3RsMzIvZGF0ZXRpbWUuYzogRHVhbmUgQ2xhcmsgPGRjbGFya0Bha2FtYWlsLmNvbT4KKwlIb3VyICcwJyBjb3JyZXNwb25kcyB0byAxMkFNLgorCisJKiBkbGxzL250ZGxsL250LmMsIGRsbHMvbnRkbGwvdGVzdHMvLmN2c2lnbm9yZSwKKwkgIGRsbHMvbnRkbGwvdGVzdHMvTWFrZWZpbGUuaW4sIGRsbHMvbnRkbGwvdGVzdHMvaW5mby5jOgorCVBhdWwgVnJpZW5zIDxQYXVsLlZyaWVuc0B4czRhbGwubmw+CisJU3RhcnQgb2YgdW5pdCB0ZXN0cyBmb3IgKkluZm8qIGZ1bmN0aW9ucy4KKwlDaGVjayBuZWVkZWQgbGVuZ3RoIHJlZ2FyZGxlc3Mgb2YgZ2l2ZW4gbGVuZ3RoLgorCVJldHVybiBTVEFUVVNfSU5WQUxJRF9JTkZPX0NMQVNTIGZvciBub24taW1wbGVtZW50ZWQgY2xhc3Nlcy4KKwlSZXR1cm4gU1RBVFVTX0FDQ0VTU19WSU9MQVRJT04gaWYgbm8gYnVmZmVyIGdpdmVuLgorCisJKiBkbGxzL2dkaS90ZXN0cy9tZXRhZmlsZS5jOiBNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJU2ltcGxlIHVuaXQgdGVzdHMgZm9yIEdkaUlzKkRDIGZ1bmN0aW9ucy4KKworCSogaW5jbHVkZS93dHNhcGkzMi5oOiBNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJQWRkIHNvbWUgbW9yZSBXaW5kb3dzIFRlcm1pbmFsIFNlcnZlciBBUEkgZGVmaW5pdGlvbnMuCisKKwkqIHRvb2xzL3dpZGwvY2xpZW50LmMsIHRvb2xzL3dpZGwvc2VydmVyLmM6CisJSnVhbiBMYW5nIDxqdWFuX2xhbmdAeWFob28uY29tPgorCVB1dCBzcGFjZSBiZXR3ZWVuIGluY2x1ZGUgZGlyZWN0aXZlIGFuZCBpbmNsdWRlIGZpbGUuCisKKwkqIHRvb2xzL3dpZGwvd2lkbC5tYW46IEp1YW4gTGFuZyA8anVhbl9sYW5nQHlhaG9vLmNvbT4KKwlBZGQgcHJveHkvc3R1YiBvcHRpb25zIHRvIHdpZGwgbWFuIHBhZ2UuCisKKwkqIGRsbHMvb2xlMzIvb2xlMzIuc3BlYywgZGxscy9vbGUzMi9zdGdfcHJvcC5jLAorCSAgZGxscy9vbGUzMi90ZXN0cy9zdGdfcHJvcC5jOgorCUp1YW4gTGFuZyA8anVhbl9sYW5nQHlhaG9vLmNvbT4KKwlJbXBsZW1lbnQgRm10SWRUb1Byb3BTdGdOYW1lICYgUHJvcFN0Z05hbWVUb0ZtdElkLCB3aXRoIHRlc3RzLgorCisJKiBkbGxzL2NvbWN0bDMyL3Rvb2xiYXIuYzogUm9iZXJ0IFNoZWFybWFuIDxyb2JAY29kZXdlYXZlcnMuY29tPgorCUZpeCBUQl9HRVRCVVRUT05TSVpFIHRvIHJldHVybiB0aGUgY29ycmVjdCB3aWR0aC9oZWlnaHQgZm9yIG5vCisJYnV0dG9ucy4KKworCSogZGxscy9jb21jdGwzMi9kYXRldGltZS5jOiBSb2JlcnQgU2hlYXJtYW4gPHJvYkBjb2Rld2VhdmVycy5jb20+CisJLSBVc2UgU2V0V2luZG93UG9zIHRvIG1vdmUgdGhlIGJ1ZGR5IHdpbmRvdyBpbnRvIHBvc2l0aW9uIGluc3RlYWQgb2YKKwkgIGRlc3Ryb3lpbmcgaXQgYW5kIHJlY3JlYXRpbmcgaXQgYXQgdGhlIG5ldyBwb3NpdGlvbi4KKwktIENsZWFyIHRoZSBiYWNrZ3JvdW5kIGluIFdNX1ZTQ1JPTEwgdG8gYXZvaWQgcHJvYmxlbXMgd2l0aAorCSAgYW50aWFsaWFzZWQgdGV4dCBkcmF3aW5nIG9uIHRvcCBvZiBpdHNlbGYgbXVsdGlwbGUgdGltZXMuCisKKwkqIGluY2x1ZGUvd2luZ2RpLmg6IE1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlBZGQgcHJvdG90eXBlcyBmb3Igc29tZSBHZGkqIGZ1bmN0aW9ucy4KKworMjAwNS0wNC0xNCAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9jb21jdGwzMi91cGRvd24uYzogRGltaXRyaWUgTy4gUGF1biA8ZHBhdW5Acm9nZXJzLmNvbT4KKwlLZWVwIHRyYWNrIG9mIFdTX0RJU0FCTEVEIGV4cGxpY2l0ZWx5LCBhcyBpdCBkb2Vzbid0IGdlbmVyYXRlIGEKKwlXTV9TVFlMRUNIQU5HRUQgbWVzc2FnZS4KKworCSogZGxscy9jb21jdGwzMi9saXN0dmlldy5jOiBEaW1pdHJpZSBPLiBQYXVuIDxkcGF1bkByb2dlcnMuY29tPgorCUFkZCBzdXBwb3J0IGZvciBMVk5fT0RTVEFURUNIQU5HRUQuCisJTWlub3IgdHlwbyBmaXhlcy4KKworCSogZGxscy9nZGkvZGMuYywgZGxscy9nZGkvZ2RpMzIuc3BlYzoKKwlNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJSW1wbGVtZW50IEdkaUlzKkRDIGZ1bmN0aW9ucy4KKworCSogZGxscy91c2VyL3Rlc3RzLy5jdnNpZ25vcmUsIGRsbHMvdXNlci90ZXN0cy9NYWtlZmlsZS5pbiwKKwkgIGRsbHMvdXNlci90ZXN0cy9tZW51LmM6CisJUm9iZXJ0IFNoZWFybWFuIDxyb2JAY29kZXdlYXZlcnMuY29tPgorCUFkZCBhIHRlc3QgZm9yIGEgbWVudSBwcm9ibGVtIEkgZm91bmQuCisKKwkqIGRsbHMvdXNlci9tZW51LmM6IFJvYmVydCBTaGVhcm1hbiA8cm9iQGNvZGV3ZWF2ZXJzLmNvbT4KKwlSZWNhbGN1bGF0ZSB0aGUgbWVudSBvbiBjYWxsaW5nIE1vZGlmeU1lbnUgc28gdGhhdCB0aGUgbWVudSBpdGVtcyBhcmUKKwlzaG93biBhdCB0aGUgY29ycmVjdCB3aWR0aC4KKworCSogZGxscy9jb21jdGwzMi90cmVldmlldy5jOiBWaXRhbGl5IE1hcmdvbGVuIDx3aW5lLXBhdGNoQGtpZXZpbmZvLmNvbT4KKwlTZW5kIG5vdGlmaWVzIGFmdGVyIGludmFsaWRhdGluZyBjaGFuZ2VkIGFyZWFzLgorCURvbid0IHVzZSBjdXN0b20gZHJhdyByZXR1cm5lZCBjb2xvcnMgZm9yIGNvbnRyb2wuCisKKwkqIGRsbHMvb2xlMzIvc3RnX3Byb3AuYzogRml4ZWQgYSBidWZmZXIgb3ZlcmZsb3cuCisKKwkqIGRsbHMveDExZHJ2L2RpYi5jOiBSZWluIEtsYXplcyA8d2lqbkB3YW5hZG9vLm5sPgorCUluIFgxMURSVl9ESUJfU2V0SW1hZ2VCaXRzIGF2b2lkIEJhZE1hdGNoIGVycm9ycyB3aGVuIGNhbGxpbmcKKwlYR2V0U3ViSW1hZ2UuCisKKwkqIGRsbHMveDExZHJ2L29wZW5nbC5jLCBkbGxzL3gxMWRydi94MTFkcnYuaCwKKwkgIGRsbHMveDExZHJ2L3gxMWRydl9tYWluLmMsIGRsbHMveDExZHJ2L3h2aWRtb2RlLmM6CisJSW5jbHVkZSBYbWQuaCBpbiB4MTFkcnYuaCB3aXRoIHRoZSBwcm9wZXIgZGVmaW5lcyB0byBtYWtlIGl0IHdvcmssIGFuZAorCXJlbW92ZSByZWxhdGVkIGhhY2tzIGluIHZhcmlvdXMgQyBmaWxlcy4KKworCSogZGxscy9tc3ZjcnQvd2NzLmM6IFJlaW4gS2xhemVzIDx3aWpuQHdhbmFkb28ubmw+CisJRml4IGRlY29kaW5nIHByaW50ZiBmb3JtYXQgaW4gY2FzZSB0aGUgZmllbGQgd2lkdGggc3BlY2lmaWVyIGlzIGEgJyonLgorCisJKiB0b29scy93cmMvcGFyc2VyLnk6IE1pY2hhZWwgTGluIDxtbGluQGNvcnZ1LmNvbS5hdT4KKwlDaGFuZ2UgbWVudSBpdGVtIG9wdGlvbnMgdG8gdXNlIG9wdGlvbmFsIGNvbW1hLgorCisJKiBpbmNsdWRlL3dpbnVzZXIuaDogTWljaGFlbCBMaW4gPG1saW5AY29ydnUuY29tLmF1PgorCURlZmluZSBXSU5VU0VSQVBJLgorCisJKiBkbGxzL29sZWF1dDMyL3R5cGVsaWIuYzogRGFuaWVsIFJlbWVuYWsgPGR0cmVtZW5ha0BnbWFpbC5jb20+CisJUmVtb3ZlIHVudXNlZCB2YXJpYWJsZSBpbiBfY29weV9hcmcuCisKKwkqIGRsbHMvd2luaW5ldC9pbnRlcm5ldC5jOiBCZW5qYW1pbiBDdXRsZXIgPGN1dGxlckBjcy5jb2xvc3RhdGUuZWR1PgorCUJldHRlciBoYW5kbGluZyBvZiBoSW50ZXJuZXQgPT0gTlVMTCBmb3IgSU5URVJORVRfT1BUSU9OX1BST1hZIGluCisJSU5FVF9RdWVyeU9wdGlvbkhlbHBlci4gTVNETiBzYXlzIHRvIHJldHVybiAnZ2xvYmFsIHByb3h5IGluZm8nIHdoZW4KKwloSW50ZXJuZXQgPT0gTlVMTC4gVGhhbmtzIHRvIEp1YW4gTGFuZyBmb3IgaGVscGluZyB3aXRoIHRoaXMuCisKKwkqIGRsbHMvY29tY3RsMzIvZGF0ZXRpbWUuYywgZGxscy9jb21jdGwzMi9tb250aGNhbC5jOgorCUR1YW5lIENsYXJrIDxkY2xhcmtAYWthbWFpbC5jb20+CisJTW9uZGF5IGlzIGRheSBudW1iZXIgJzEnLgorCVNldCBkYXkgb2Ygd2VlayB3aGVuIGEgZGF5IGlzIHNlbGVjdGVkIGluIHRoZSBjYWxlbmRlci4KKwlVc2UgZml4ZWQgd2lkdGggZmllbGRzIGluIGRhdGV0aW1lLgorCURUU19USU1FRk9STUFUIGlzIGEgdHdvIGJpdCBmaWVsZCwgc28gdGVzdCBhY2NvcmRpbmdseS4KKwlSZXBvc2l0aW9uIGFuZCByZXNpemUgdGhlIHVwZG93biBjb250cm9sIHdoZW4gdGhlIGRhdGV0aW1lIGNvbnRyb2wgaXMKKwlyZXNpemVkLgorCVJlc3BvbmQgdG8gdXBkb3duIGlucHV0cy4KKworCSogZGxscy9tc2h0bWwvTWFrZWZpbGUuaW4sIGRsbHMvbXNodG1sL2h0bWxkb2MuYywgZGxscy9tc2h0bWwvbWFpbi5jLAorCSAgZGxscy9tc2h0bWwvbXNodG1sX3ByaXZhdGUuaCwgZGxscy9tc2h0bWwvdmlldy5jOgorCUphY2VrIENhYmFuIDxqYWNrQGl0bWEucHdyLndyb2MucGw+CisJQWRkZWQgbW9yZSBpbXBsZW1lbnRhdGlvbiBvZiBJRG9jdW1lbnRWaWV3LgorCisJKiBwcm9ncmFtcy9yZWdlZGl0L0VuLnJjLCBwcm9ncmFtcy9yZWdlZGl0L01ha2VmaWxlLmluLAorCSAgcHJvZ3JhbXMvcmVnZWRpdC9lZGl0LmMsIHByb2dyYW1zL3JlZ2VkaXQvaGV4ZWRpdC5jLAorCSAgcHJvZ3JhbXMvcmVnZWRpdC9tYWluLmMsIHByb2dyYW1zL3JlZ2VkaXQvbWFpbi5oLAorCSAgcHJvZ3JhbXMvcmVnZWRpdC9yZXNvdXJjZS5oOgorCVJvYmVydCBTaGVhcm1hbiA8cm9iQGNvZGV3ZWF2ZXJzLmNvbT4KKwktIEFkZCBuZXV0cmFsIEVuZ2xpc2ggcmVzb3VyY2VzLgorCS0gQWRkIGEgY29udHJvbCBmb3IgZWRpdGluZyBiaW5hcnkgZGF0YS4KKwktIEFkZCBhIGJpbmFyeSB2YWx1ZSBlZGl0b3IgZGlhbG9nLgorCisJKiBkbGxzL2tlcm5lbC9jb25zb2xlLmMsIHByb2dyYW1zL3dpbmVjb25zb2xlL3VzZXIuYywKKwkgIHByb2dyYW1zL3dpbmVjb25zb2xlL3dpbmVjb25fcHJpdmF0ZS5oLAorCSAgcHJvZ3JhbXMvd2luZWNvbnNvbGUvd2luZWNvbnNvbGUuYzoKKwlSZWluIEtsYXplcyA8d2lqbkB3YW5hZG9vLm5sPgorCUluIEFsbG9jQ29uc29sZSgpIHBhc3MgdGhlIHdTaG93V2luZG93IHZhbHVlIGFuZCBTVEFSVEZfVVNFU0hPV1dJTkRPVworCWZsYWcgZnJvbSB0aGUgY2FsbGluZyBwcm9jZXNzIHRvIHRoZSBjb25zb2xlIHByb2Nlc3MuIE1ha2Ugd2luZWNvbnNvbGUKKwl1c2UgdGhlIENtZFNob3cgcGFyYW1ldGVyIGluIHRoZSBTaG93V2luZG93IGNhbGwuCisKKzIwMDUtMDQtMTMgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGRsbHMvdXNlci9jb250cm9scy5oLCBkbGxzL3VzZXIvdGV4dC5jLCBkbGxzL3VzZXIvdWl0b29scy5jLAorCSAgZGxscy91c2VyL3VzZXJfcHJpdmF0ZS5oLCB3aW5kb3dzL2RlZnduZC5jLCB3aW5kb3dzL25vbmNsaWVudC5jLAorCSAgd2luZG93cy9zeXNjb2xvci5jOgorCU1vdmVkIGhhbmRsaW5nIG9mIHRoZSA1NUFBIHBhdHRlcm4gYnJ1c2ggdG8gc3lzY29sb3IuYyBzbyB0aGF0IGl0IGNhbgorCWJlIG1hZGUgYSBzeXN0ZW0gb2JqZWN0IChmb3VuZCBieSBSZWluIEtsYXplcykuCisKKwkqIGRsbHMvd2luaW5ldC9pbnRlcm5ldC5jOiBCZW5qYW1pbiBDdXRsZXIgPGN1dGxlckBjcy5jb2xvc3RhdGUuZWR1PgorCUNoZWNrIGZvciBhbiBpbnZhbGlkIGhJbnRlcm5ldCBoYW5kbGUgaW4gSU5FVF9RdWVyeU9wdGlvbkhlbHBlciBmb3IKKwlJTlRFUk5FVF9PUFRJT05fUFJPWFkgYmVmb3JlIGF0dGVtcHRpbmcgdG8gdXNlIGl0LgorCisJKiBkbGxzL2dkaS9iaXRtYXAuYywgZGxscy9nZGkvZ2RpX3ByaXZhdGUuaCwgZGxscy9nZGkvd2luZy5jLAorCSAgaW5jbHVkZS9nZGkuaDoKKwlNb3ZlZCB0aGUgQklUTUFQT0JKIHN0cnVjdHVyZSB0byBnZGlfcHJpdmF0ZS5oLgorCisJKiBkbGxzL3gxMWRydi94aW0uYzogTWFyY3VzIE1laXNzbmVyIDxtZWlzc25lckBzdXNlLmRlPgorCVRlcm1pbmF0ZSBYQ3JlYXRlSUMoKSBhcmd1bWVudCBsaXN0IHdpdGggTlVMTCBpbnN0ZWFkIG9mIGp1c3QgMC4KKworCSogZGxscy94MTFkcnYvYml0bWFwLmM6CisJVXNlIGFuIFggY29udGV4dCB0byBhc3NvY2lhdGUgdGhlIHBoeXMgYml0bWFwIGRhdGEgdG8gYSBiaXRtYXAgaGFuZGxlCisJaW5zdGVhZCBvZiBkaXJlY3RseSBhY2Nlc3NpbmcgdGhlIGJpdG1hcCBzdHJ1Y3R1cmUuCisKKwkqIGRsbHMveDExZHJ2L3gxMWRydi5zcGVjOiBIdXcgRGF2aWVzIDxodXdAY29kZXdlYXZlcnMuY29tPgorCVJlZ2lzdGVyQ2xpcGJvYXJkRm9ybWF0IHRha2VzIGEgdW5pY29kZSBzdHJpbmcgbm93LgorCisJKiBkbGxzL29sZWF1dDMyL29sZXBpY3R1cmUuYzoKKwlBbGV4IFZpbGxhY+1zIExhc3NvIDxhX3ZpbGxhY2lzQHBhbG9zYW50by5jb20+CisJLSBGaXggbGVmdG92ZXIgbmVnYXRpdmUgc2lnbiBpbiBoZWlnaHQgcGFyYW1ldGVyIGZvciB0cmFuc3BhcmVudAorCSAgYml0bWFwLgorCS0gUHJvcGVybHkgYW5ub3VuY2Ugd2hldGhlciBiaXRtYXAgaXMgdHJhbnNwYXJlbnQgaW4gZ2V0X0F0dHJpYnV0ZXMuCisJLSBHSUYgdHJhbnNwYXJlbmN5IGlzIG5vdyBwYWxldHRlLWluZGV4IGJhc2VkLCBpbnN0ZWFkIG9mIFJHQiBiYXNlZC4KKwktIEtlZXAgb3JpZ2luYWwgYml0bWFwIGFuZCBYT1IgbWFzayBzZXBhcmF0ZSwgc28gdGhhdCBnZXRfSGFuZGxlCisJICByZXR1cm5zIG9yaWdpbmFsIGJpdG1hcC4KKworCSogZGxscy9zaGVsbDMyL3NoZWxsb2xlLmM6IE1hcnRpbiBGdWNocyA8bWFydGluLWZ1Y2hzQGdteC5uZXQ+CisJQ29ycmVjdCBjb21tZW50cyBvZiBzb21lIGV4cG9ydCBvcmRpbmFscy4KKworCSogZGxscy9nZGkvZ2RpMzIuc3BlYywgZGxscy9vbGUzMi9vbGUyXzE2LmMsIGRsbHMveDExZHJ2L2NsaXBib2FyZC5jOgorCURpbWl0cmllIE8uIFBhdW4gPGRwYXVuQHJvZ2Vycy5jb20+CisJUmVtb3ZlIHRoZSBuZWVkIGZvciB0aGUgbm9uLXN0YW5kYXJkIChDbG9zZXxEZWxldGUpTWV0YUZpbGUxNigpLgorCisJKiBkbGxzL2dkaS9kaWIuYywgZGxscy9nZGkvZ2RpX3ByaXZhdGUuaCwgZGxscy94MTFkcnYvZGliLmMsCisJICBkbGxzL3gxMWRydi94MTFkcnYuaCwgZGxscy94MTFkcnYveDExZHJ2LnNwZWM6CisJTW92ZWQgdGhlIGRyaXZlci1pbmRlcGVuZGVudCBwYXJ0IG9mIENyZWF0ZURJQlNlY3Rpb24gaW50byBHREkuCisKKwkqIGRsbHMvbXNodG1sL01ha2VmaWxlLmluLCBkbGxzL21zaHRtbC9odG1sZG9jLmMsCisJICBkbGxzL21zaHRtbC9tc2h0bWxfcHJpdmF0ZS5oLCBkbGxzL21zaHRtbC9vbGVvYmouYywKKwkgIGRsbHMvbXNodG1sL3ZpZXcuYzoKKwlKYWNlayBDYWJhbiA8amFja0BpdG1hLnB3ci53cm9jLnBsPgorCS0gQWRkZWQgSU9sZURvY3VtZW50VmlldyBpbnRlcmZhY2UuCisJLSBBZGRlZCBpbXBsZW1lbnRhdGlvbiBvZiBEb1ZlcmIgYW5kIENyZWF0ZVZpZXcuCisKKwkqIGRsbHMvYWR2YXBpMzIvdGVzdHMvcmVnaXN0cnkuYzogSmFtZXMgSGF3a2lucyA8dHJ1aWtlbkBnbWFpbC5jb20+CisJUGFzcyBhbiBlbXB0eSBzdHJpbmcgaW5zdGVhZCBvZiBOVUxMIHRvIFJlZ0RlbGV0ZUtleSB0byBkZWxldGUgaEtleS4KKworCSogd2luZG93cy9zcHkuYzogVml0YWxpeSBNYXJnb2xlbiA8d2luZS1wYXRjaEBraWV2aW5mby5jb20+CisJRHVtcCB3aG9sZSBOTUhFQURFUkEgbm90aWZ5IHN0cnVjdHVyZSBmb3IgVHJlZVZpZXdzLgorCisJKiBkbGxzL2NvbWN0bDMyL3RhYi5jOiBWaXRhbGl5IE1hcmdvbGVuIDx3aW5lLWRldmVsQGtpZXZpbmZvLmNvbT4KKwlEcmF3IG9ubHkgdmlzaWJsZSB0YWJzLgorCisJKiBkbGxzL2Rzb3VuZC9wcm9wc2V0LmM6IFJvYmVydCBSZWlmIDxyZWlmQGVhcnRobGluay5uZXQ+CisJRnVsbHkgaW1wbGVtZW50IFdBVkVERVZJQ0VNQVBQSU5HIHByb3BlcnR5IHNldC4KKworCSogZGxscy9zaGVsbDMyL2RlYnVnaGxwLmMsIGRsbHMvc2hlbGwzMi9waWRsLmMsIGRsbHMvc2hlbGwzMi9waWRsLmgsCisJICBkbGxzL3NoZWxsMzIvc2hlbGxsaW5rLmM6CisJSHV3IERhdmllcyA8aHV3QGNvZGV3ZWF2ZXJzLmNvbT4KKwlBZGQgYSB1bmljb2RlIHBpZGwgdHlwZS4KKwlJbXByb3ZlIHN1cHBvcnQgZm9yIFBUX1lBR1VJRC4KKwlJbXByb3ZlIElTaGVsbExpbmsgZGVidWdnaW5nLgorCisJKiBkbGxzL3gxMWRydi9iaXRtYXAuYywgZGxscy94MTFkcnYvZGliLmMsIGRsbHMveDExZHJ2L3gxMWRydi5oOgorCVN0b3JlIERJQiBzZWN0aW9uIGluZm9ybWF0aW9uIGRpcmVjdGx5IGluIHRoZSBwaHlzIGJpdG1hcCBzdHJ1Y3R1cmUKKwlhbmQgZ2V0IHJpZCBvZiB0aGUgWDExRFJWX0RJQlNFQ1RJT04gc3RydWN0dXJlLgorCUdldCByaWQgb2YgdGhlIHVudXNlZCBBdXhNb2QgRElCIHN0YXRlLgorCisJKiB0b29scy93aW5lYnVpbGQvcmVsYXkuYzogTWFyY3VzIE1laXNzbmVyIDxtZWlzc25lckBzdXNlLmRlPgorCVVzZSBjb3JyZWN0IG1vdncgaW5zdGVhZCBvZiBtb3ZsIHdoZW4gaGFuZGxpbmcgc2VnbWVudCByZWdpc3RlcnMuCisKKwkqIGRsbHMvb2xlMzIvb2xlMi5jLCBkbGxzL29sZTMyL29sZTMyLnNwZWM6CisJSnVhbiBMYW5nIDxqdWFuX2xhbmdAeWFob28uY29tPgorCUltcGxlbWVudCBQcm9wU3lze0FsbG9jfEZyZWV9U3RyaW5nLCBhbmQgc3VwcG9ydCBCU1RScyBpbgorCVByb3BWYXJpYW50e0NsZWFyfENvcHl9IHVzaW5nIHRoZW0uCisKKwkqIGRsbHMvcmljaGVkMjAvZWRpdG9yLmMsIGRsbHMvcmljaGVkMjAvZWRpdG9yLmgsCisJICBkbGxzL3JpY2hlZDIwL2VkaXRzdHIuaCwgZGxscy9yaWNoZWQyMC9yZWFkZXIuYywgZGxscy9yaWNoZWQyMC9ydGYuaDoKKwlQaGlsIEtyeWxvdiA8cGhpbEBuZXdzdGFyLnJpbmV0LnJ1PgorCU1ha2UgUlRGIHJlYWRlciBmYWxsIGJhY2sgdG8gc2ltcGxlIHRleHQgaWYgYSBjb3JyZWN0IFJURiBoZWFkZXIgaXMKKwlub3QgZGV0ZWN0ZWQuIFRoaXMgc2hvdWxkIGZpeCBzb21lIGluc3RhbGxlcnMuCisKKwkqIGRsbHMvc2hlbGwzMi9yZWdzdnIuYywgaW5jbHVkZS9zaGxndWlkLmg6CisJU3RldmVuIEVkd2FyZHMgPHN0ZXZlbl9lZDQxNTNAeWFob28uY29tPgorCVJlZ2lzdGVyIFNoZWxsIERyYWcgYW5kIERyb3AgSGVscGVyLgorCisJKiBkbGxzL2NvbWN0bDMyL2NvbWN0bF9Tdi5yYywgZGxscy9jb21jdGwzMi9yc3JjLnJjOgorCUFuZHJlYXMgQmplcmtlaG9sdCA8aGFydGVleEBnbWFpbC5jb20+CisJU3dlZGlzaCB0cmFuc2xhdGlvbi4KKworCSogZGxscy9hZHZhcGkzMi9zZWN1cml0eS5jOiBTdGV2ZW4gRWR3YXJkcyA8c3RldmVuX2VkNDE1M0B5YWhvby5jb20+CisJUGFydGlhbGx5IGltcGxlbWVudCBDcmVhdGVQcm9jZXNzQXNVc2VyLgorCisJKiBkbGxzL3NoZWxsMzIvc2hmbGRyX3VuaXhmcy5jOgorCU1pY2hhZWwgSnVuZyA8bWp1bmdAaXNzLnR1LWRhcm1zdGFkdC5kZT4KKwlJbXBsZW1lbnRlZCB0aGUgVW5peEZvbGRlcidzIElTaGVsbEZvbGRlcjI6OkNvbXBhcmVJRHMgbWV0aG9kLgorCisJKiBkbGxzL29sZWF1dDMyL29sZWF1dDMyLnNwZWMsIGRsbHMvb2xlYXV0MzIvdmFyaWFudC5jOgorCURhbmllbCBSZW1lbmFrIDxkdHJlbWVuYWtAZ21haWwuY29tPgorCUltcGxlbWVudGVkIFZhcklkaXYuCisKKwkqIGRsbHMvZ2RpL2VuaG1ldGFmaWxlLmMsIGRsbHMvZ2RpL3Rlc3RzL21ldGFmaWxlLmM6CisJUm9iZXJ0IFNoZWFybWFuIDxyb2JAY29kZXdlYXZlcnMuY29tPgorCS0gRml4IHNjYWxpbmcgd2hlbiBjb252ZXJ0aW5nIE1GIC0+IEVNRi4KKwktIFRlc3RzIGZvciBjb252ZXJzaW9ucyAoYWx0aG91Z2ggbm90IGZvciB0aGUgYWJvdmUgYnVnKS4KKworMjAwNS0wNC0xMiAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9zaGVsbDMyL2ZvbGRlcnMuYywgZGxscy9zaGVsbDMyL3NocmVzLnJjLAorCSAgZGxscy9zaGVsbDMyL3NocmVzZGVmLmg6CisJSHV3IERhdmllcyA8aHV3QGNvZGV3ZWF2ZXJzLmNvbT4KKwlCZXR0ZXIgaWNvbiBoYW5kbGluZyBmb3Igc29tZSBzcGVjaWFsIGZvbGRlcnMuCisJSWRlbnRpZnkgYW5kIGFkZCBkZWZpbmVzIGZvciBhIGJ1bmNoIG9mIHNoZWxsIGljb25zLgorCisJKiBkbGxzL3gxMWRydi9iaXRibHQuYywgZGxscy94MTFkcnYvYml0bWFwLmMsIGRsbHMveDExZHJ2L2RpYi5jLAorCSAgZGxscy94MTFkcnYvaW5pdC5jLCBkbGxzL3gxMWRydi94MTFkcnYuaCwgZGxscy94MTFkcnYveHJlbmRlci5jOgorCVN0b3JlIGEgcG9pbnRlciB0byB0aGUgY3VycmVudGx5IHNlbGVjdGVkIHBoeXMgYml0bWFwIGluIHRoZSBkZXZpY2UKKwlzdHJ1Y3R1cmUuIENyZWF0ZSBhIHBoeXMgYml0bWFwIGZvciB0aGUgZGVmYXVsdCBzdG9jayBiaXRtYXAgdG9vLgorCisJKiBpbmNsdWRlL3dpbm50Lmg6IEl2YW4gTGVvIFB1b3RpIDxpdmFubGVvQGdtYWlsLmNvbT4KKwlBZGRlZCB0eXBlZGVmIGZvciBERVZJQ0VfUE9XRVJfU1RBVEUuCisKKwkqIGRsbHMvc2hlbGwzMi9zaGZsZHJfdW5peGZzLmM6CisJTWljaGFlbCBKdW5nIDxtanVuZ0Bpc3MudHUtZGFybXN0YWR0LmRlPgorCUltcGxlbWVudGVkIGVub3VnaCBvZiBJU2hlbGxGb2xkZXIyIHRvIG1ha2UgVW5peEZvbGRlciB3b3JrIHdpdGhpbiB0aGUKKwlvcGVuL3NhdmUtZGlhbG9ncy4KKworCSogZGxscy9tc2h0bWwvTWFrZWZpbGUuaW4sIGRsbHMvbXNodG1sL2h0bWxkb2MuYywgZGxscy9tc2h0bWwvbWFpbi5jLAorCSAgZGxscy9tc2h0bWwvbXNodG1sX3ByaXZhdGUuaCwgZGxscy9tc2h0bWwvb2xlb2JqLmMsCisJICBkbGxzL21zaHRtbC9wZXJzaXN0LmM6CisJSmFjZWsgQ2FiYW4gPGphY2tAaXRtYS5wd3Iud3JvYy5wbD4KKwlTdHViIGltcGxlbWVudGF0aW9uIG9mIElPbGVPYmplY3QgYW5kIElPbGVEb2N1bWVudC4KKworCSogZGxscy94MTFkcnYvYml0bWFwLmMsIGRsbHMveDExZHJ2L2RpYi5jLCBkbGxzL3gxMWRydi94MTFkcnYuaDoKKwlTdG9yZSB0aGUgYml0bWFwIGhhbmRsZSBpbiB0aGUgcGh5cyBiaXRtYXAgc3RydWN0dXJlLCBhbmQgYXZvaWQgYSBmZXcKKwltb3JlIEdESV9HZXRPYmpQdHIgY2FsbHMuCisKKwkqIGRsbHMvc2hlbGwzMi9zaGx2aWV3LmM6IEh1dyBEYXZpZXMgPGh1d0Bjb2Rld2VhdmVycy5jb20+CisJSWYgSUNvbW1EbGdCcm93c2VyX09uRGVmYXVsdENvbW1hbmQgcmV0dXJucyBhbnl0aGluZyBvdGhlciB0aGFuIFNfT0sKKwl0aGVuIHdlIHNob3VsZCBjYWxsIHRoZSBkZWZhdWx0IGhhbmRsZXIuCisKKwkqIGRsbHMvY29tY3RsMzIvbGlzdHZpZXcuYzogUm9iZXJ0IFNoZWFybWFuIDxyb2JAY29kZXdlYXZlcnMuY29tPgorCVVzZSBFU19BVVRPSFNDUk9MTCBmb3IgZWRpdCBib3guCisKKwkqIGRsbHMvb2xlYXV0MzIvdmFyaWFudC5jOiBEYW5pZWwgUmVtZW5hayA8ZHRyZW1lbmFrQGdtYWlsLmNvbT4KKwlSZXR1cm4gRElTUF9FX0RJVkJZWkVSTyBpbnN0ZWFkIG9mIGNyYXNoaW5nIHdoZW4gYXNrZWQgdG8gZGl2aWRlIGEKKwl2YXJpYW50IGJ5IHplcm8uCisKKwkqIGRsbHMvc2hlbGwzMi9zaGZsZHJfZGVza3RvcC5jOiBKdWFuIExhbmcgPGp1YW5fbGFuZ0B5YWhvby5jb20+CisJVXNlIFVuaWNvZGUgc3RyaW5nIHJlc3VsdCBmcm9tIEdldERpc3BsYXlOYW1lT2YgaWYgaXQgaXNuJ3QKKwlyZXByZXNlbnRhYmxlIHVzaW5nIEFOU0kuCisKKwkqIGRsbHMvbXNpL2Zvcm1hdC5jOiBKdWFuIExhbmcgPGp1YW5fbGFuZ0B5YWhvby5jb20+CisJTG9nIG1pc3NpbmcgZW52aXJvbm1lbnQgdmFycyBmb3IgZWFzaWVyIGRlYnVnZ2luZy4KKworCSogZGxscy93aW5tbS93YXZlbWFwL3dhdmVtYXAuYzogUm9iZXJ0IFJlaWYgPHJlaWZAZWFydGhsaW5rLm5ldD4KKwlTdHViIG91dCBEUlZNX01BUFBFUl9SRUNPTkZJR1VSRSBzdXBwb3J0LgorCisyMDA1LTA0LTExICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL3gxMWRydi9iaXRtYXAuYywgZGxscy94MTFkcnYvYnJ1c2guYywgZGxscy94MTFkcnYvZGliLmMsCisJICBkbGxzL3gxMWRydi94MTFkcnYuaDoKKwlTdG9yZSB0aGUgcGl4bWFwIGRlcHRoIGFuZCB0aGUgRElCU0VDVElPTiBwb2ludGVyIGluIHRoZSBwaHlzIGJpdG1hcAorCXN0cnVjdHVyZS4gQXZvaWQgYSBmZXcgR0RJX0dldE9ialB0ciBjYWxscy4KKworCSogaW5jbHVkZS9NYWtlZmlsZS5pbjogQWRkIG5ldyBwb3dycHJvZi5oIGhlYWRlci4KKworCSogZGxscy9xdWFydHovbWVtYWxsb2NhdG9yLmM6IFJvYmVydCBTaGVhcm1hbiA8cm9iQGNvZGV3ZWF2ZXJzLmNvbT4KKwlSZXR1cm4gYW4gZXJyb3IgaW5zdGVhZCBvZiBjcmFzaGluZyBsYXRlciBvbiBhIGRpdmlkZSBieSB6ZXJvCisJZXhjZXB0aW9uIHdoZW4gYW4gYWxpZ25tZW50IG9mIDAgaXMgc3BlY2lmaWVkLgorCisJKiBkbGxzL29sZTMyL3N0Z19wcm9wLmMsIGRsbHMvb2xlMzIvdGVzdHMvc3RnX3Byb3AuYzoKKwlKdWFuIExhbmcgPGp1YW5fbGFuZ0B5YWhvby5jb20+CisJLSBhZGQgd3JpdGUgc3VwcG9ydCB0byBJUHJvcGVydHlTdG9yYWdlLCB3aXRoIHRlc3RzCisJLSBtaXNjLiBjbGVhbnVwcyB0aGUgdGVzdHMgdHVybmVkIHVwCisKKwkqIGluY2x1ZGUvc2hvYmppZGwuaWRsOiBIdXcgRGF2aWVzIDxodXdAY29kZXdlYXZlcnMuY29tPgorCUFkZCBzb21lIG1pc3NpbmcgU0ZHQU9fIGRlZmluZXMgYW5kIGZpeCBTRkdBT19HSE9TVEVELgorCisJKiBkbGxzL3NoZWxsMzIvc2hsZm9sZGVyLmMsIGRsbHMvc2hlbGwzMi90ZXN0cy9zaGxmb2xkZXIuYzoKKwlIdXcgRGF2aWVzIDxodXdAY29kZXdlYXZlcnMuY29tPgorCURpcmVjdG9yeSBpdGVtcyBzaG91bGQgaGF2ZSB0aGUgU0ZHT0FfRklMRVNZU0FOQ0VTVE9SIGF0dHJpYnV0ZS4KKwlBZGQgYSB0ZXN0IGZvciB0aGlzIGFuZCBjbGVhbnVwIHRoZSBzaGxmb2xkZXIgdGVzdCBhIGJpdC4KKworCSogZGxscy9tc2Ntcy9wcm9maWxlLmMsIGRsbHMvbXNjbXMvdGVzdHMvcHJvZmlsZS5jOgorCVZpbmNlbnQgQulyb24gPHZiZXJvbkBtZWNhbm8uZ21lLnVzaGVyYi5jYT4KKwlEb24ndCByZWZlcmVuY2UgYzpcd2luZG93cyBkaXJlY3RseS4KKworCSogdG9vbHMvd2luZS5pbmY6IEp1YW4gTGFuZyA8anVhbl9sYW5nQHlhaG9vLmNvbT4KKwlSZWdpc3RlciBjb250cm9sXGNsYXNzXHtHVUlEX0RFVklOVEVSRkFDRV9TRVJFTlVNX0JVU19FTlVNRVJBVE9SfS4KKworCSogaW5jbHVkZS9wb3dycHJvZi5oLCBpbmNsdWRlL3dpbm50Lmg6CisJQmVuamFtaW4gQ3V0bGVyIDxjdXRsZXJAY3MuY29sb3N0YXRlLmVkdT4KKwlBZGRlZCBmdW5jdGlvbi9lbnVtL3N0cnVjdHMgZm9yIHBvd2VyIG1hbmFnZW1lbnQgQVBJLgorCisJKiBkbGxzL21zaHRtbC9NYWtlZmlsZS5pbiwgZGxscy9tc2h0bWwvaHRtbGRvYy5jLAorCSAgZGxscy9tc2h0bWwvbXNodG1sX3ByaXZhdGUuaCwgZGxscy9tc2h0bWwvcGVyc2lzdC5jOgorCUphY2VrIENhYmFuIDxqYWNrQGl0bWEucHdyLndyb2MucGw+CisJU3R1YiBpbXBsZW1lbnRhdGlvbiBvZCBJUGVyc2lzdCwgSVBlcnNpc3RNb25pa2VyLCBJUGVyc2lzdEZpbGUsCisJSU1vbmlrZXJQcm9wLgorCisJKiBkbGxzL2tlcm5lbC90ZXN0cy9tYWlsc2xvdC5jLCBzZXJ2ZXIvbWFpbHNsb3QuYzoKKwlNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJQ2FsY3VsYXRlIHRoZSBzaXplIG9mIHRoZSBuZXh0IG1haWxzbG90IG1lc3NhZ2UgY29ycmVjdGx5LgorCisJKiBkbGxzL3dpbmluZXQvaW50ZXJuZXQuYywgZGxscy93aW5pbmV0L3Rlc3RzL2h0dHAuYzoKKwlKYXNvbiBFZG1lYWRlcyA8dXNAdGhlLWVkbWVhZGVzLmRlbW9uLmNvLnVrPgorCUVuc3VyZSBBLT5XIHZlcnNpb24gb2YgSW50ZXJuZXRDcmFja1VSTCBwYXNzZXMgY29ycmVjdCBsZW5ndGggdmFsdWVzLAorCWFuZCBhc3NvY2lhdGVkIHRlc3RzLgorCisJKiBkbGxzL21zaS9hY3Rpb24uYywgZGxscy9tc2kvY3VzdG9tLmMsIGRsbHMvbXNpL2Zvcm1hdC5jOgorCVN0ZXZlbiBFZHdhcmRzIDxzdGV2ZW5fZWQ0MTUzQHlhaG9vLmNvbT4KKwlBdm9pZCB1c2luZyB2ZXIuaCBpbiBmYXZvciBvZiB3aW52ZXIuaC4KKworCSogcHJvZ3JhbXMvd2luZXRlc3QvZ3VpLmMsIHByb2dyYW1zL3dpbmV0ZXN0L21haW4uYywKKwkgIHByb2dyYW1zL3dpbmV0ZXN0L3dpbmV0ZXN0Lmg6CisJRmVyZW5jIFdhZ25lciA8d2ZlcmlAdGJhLmVsdGUuaHU+CisJVXNlIHRoZSBzYW1lIG1heGltdW0gbGVuZ3RoIGZvciB0YWdzIGdpdmVuIG9uIHRoZSBjb21tYW5kIGxpbmUgYW5kCisJdGFncyBlbnRlcmVkIGluIHRoZSBHVUkuCisKKwkqIGRsbHMvb2xlMzIvZGljdGlvbmFyeS5jLCBkbGxzL29sZTMyL2RpY3Rpb25hcnkuaCwKKwkgIGRsbHMvb2xlMzIvc3RnX3Byb3AuYywgZGxscy9vbGUzMi90ZXN0cy8uY3ZzaWdub3JlLAorCSAgZGxscy9vbGUzMi90ZXN0cy9NYWtlZmlsZS5pbiwgZGxscy9vbGUzMi90ZXN0cy9zdGdfcHJvcC5jOgorCUp1YW4gTGFuZyA8anVhbl9sYW5nQHlhaG9vLmNvbT4KKwlBZGQgdHJhY2VzLCBhZGQgdW5pdCB0ZXN0cyBmb3IgSVByb3BlcnR5U3RvcmFnZSwgYW5kIGZpeCB0aGUgcHJvYmxlbXMKKwl0aGV5IGNhdWdodC4KKworCSogZGxscy93aW5pbmV0L2ludGVybmV0LmM6IEp1YW4gTGFuZyA8anVhbl9sYW5nQHlhaG9vLmNvbT4KKwktIHNldCBzaXplIHJlcXVpcmVkIGNvcnJlY3RseSBmb3IgYWxsIHN1cHBvcnRlZCBvcHRpb25zCisJLSB0aWR5IHVwIGEgZmV3IGxpbmVzIG9mIGluZGVudGluZyBpbiBJTkVUX1F1ZXJ5T3B0aW9uSGVscGVyCisJLSBpbXBsZW1lbnQgcXVlcnlpbmcgSU5URVJORVRfT1BUSU9OX1BST1hZCisKKwkqIGRsbHMvZGRyYXcvZHN1cmZhY2UvZGliLmM6IE1hdHRoZXcgTWFzdHJhY2NpIDxtYXR0QGFjbGFyby5jb20+CisJQ29ycmVjdGx5IGxvY2sgYW5kIHVubG9jayBzdXJmYWNlIGZvciBhIHNpbmdsZS1zdXJmYWNlIEJsdCgpIGFuZAorCUJsdEZhc3QoKSBjYWxsLgorCisJKiBkbGxzL2FkdmFwaTMyL3NlY3VyaXR5LmM6IEhhbnMgTGVpZGVra2VyIDxoYW5zQGl0LnZ1Lm5sPgorCUltcGxlbWVudCBHZXROYW1lZFNlY3VyaXR5SW5mby4KKworCSogZGxscy94MTFkcnYvZGliLmM6IFJlaW4gS2xhemVzIDx3aWpuQHdhbmFkb28ubmw+CisJRml4IFgxMURSVl9ESUJfU2V0SW1hZ2VCaXRzX1JMRSg0fDgpIHdoZW4gYW4gbm9uLXplcm8geC1vZmZzZXQKKwkoYXJndW1lbnQgbGVmdCkgaXMgc3BlY2lmaWVkLgorCisJKiBkbGxzL29wZW5nbDMyL29wZW5nbF9leHQuYzogVG9tIFdpY2tsaW5lIDx0d2lja2xpbmVAZ21haWwuY29tPgorCVN5bmMgdG8gdGhlIGxhdGVzdCBvcGVuZ2wgc3BlY3MuCisKKwkqIGRsbHMvcmljaGVkMjAvZWRpdG9yLmM6IEhhbm51IFZhbHRvbmVuIDxIYW5udS5WYWx0b25lbkBodXQuZmk+CisJQWRkZWQgbW91c2V3aGVlbCBzdXBwb3J0LgorCisJKiBkbGxzL250ZGxsL3Rlc3RzL3JlZy5jOiBQYXVsIFZyaWVucyA8UGF1bC5WcmllbnNAeHM0YWxsLm5sPgorCUZsYWdzIHNob3VsZCBiZSBvci1lZC4KKworCSogZGxscy9jb21jdGwzMi90YWIuYzogRGltaXRyaWUgTy4gUGF1biA8ZHBhdW5Acm9nZXJzLmNvbT4KKwlUYWIgdW5pY29kaWZpY2F0aW9uLgorCisJKiBkbGxzL2NvbWN0bDMyL21vbnRoY2FsLmM6IERpbWl0cmllIE8uIFBhdW4gPGRwYXVuQHJvZ2Vycy5jb20+CisJTW9udGhDYWwgdW5pY29kaWZpY2F0aW9uLgorCisJKiBkbGxzL2tlcm5lbC9zeW5jLmMsIGRsbHMvbnRkbGwvZmlsZS5jLCBpbmNsdWRlL3dpbnRlcm5sLmg6CisJTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCU1vdmUgbWFpbHNsb3Qgc2V0IGFuZCBxdWVyeSBpbmZvIGltcGxlbWVudGF0aW9uIHRvIG50ZGxsLgorCisJKiBkbGxzL3NoZWxsMzIvLmN2c2lnbm9yZSwgZGxscy9zaGVsbDMyL01ha2VmaWxlLmluLAorCSAgZGxscy9zaGVsbDMyL2NsYXNzZXMuYywgZGxscy9zaGVsbDMyL2ZvbGRlcnMuYywKKwkgIGRsbHMvc2hlbGwzMi9pY29uY2FjaGUuYywgZGxscy9zaGVsbDMyL3NoZWxsMzJfbWFpbi5jLAorCSAgZGxscy9zaGVsbDMyL3NocmVzLnJjLCBkbGxzL3NoZWxsMzIvc2hyZXNkZWYuaDoKKwlIdXcgRGF2aWVzIDxodXdAY29kZXdlYXZlcnMuY29tPgorCUZpeCB0aGUgaWNvbiByZXNvdXJjZSBpZHMgKG1vc3Qgd2VyZSBvZmYgYnkgb25lKS4KKwlGaXggSUV4dHJhY3RJY29uX3tHZXRJY29uTG9jYXRpb24sRXh0cmFjdH0gdG8gdXNlIC12ZSBpY29uIHJlc291cmNlCisJaWRzIGFuZCBmaXggYnVncyByZWxhdGluZyB0byBjb25mdXNpb24gYmV0d2VlbiByZXNvdXJjZSBpZHMgYW5kIHRoZQorCXN5c3RlbSBpbWFnZWxpc3QgaW5kaWNpZXMuCisJRXh0ZW5kIHRoZSBzeXN0ZW0gaW1hZ2VsaXN0IGluaXRpYWxpemF0aW9uIGhhY2sgdG8gbG9hZCBib3RoICt2ZSBhbmQKKwktdmUgcmVzb3VyY2UgaWRzLgorCUFkZCBhIHByaW50ZXIgaWNvbiAodGhhdCdsbCBiZSB1c2VkIGJ5IGFuIHVwY29taW5nIHByaW50ZXIgZm9sZGVyCisJcGF0Y2gpLgorCisJKiBkbGxzL21wci9tcHJfRXMucmMsIGRsbHMvbXNpL21zaV9Fcy5yYywgZGxscy9zaGRvY3Z3L0VzLnJjLAorCSAgZGxscy9zaGRvY3Z3L3NoZG9jdncucmMsIGRsbHMvd2luaW5ldC93aW5pbmV0X0VzLnJjLAorCSAgZGxscy93aW5tbS93aW5tbV9Fcy5yYzoKKwlKb3PpIE1hbnVlbCBGZXJyZXIgT3J0aXogPGptZm8xOTgyQHlhaG9vLmVzPgorCVNwYW5pc2ggdHJhbnNsYXRpb25zIHVwZGF0ZWQuCisKKwkqIGluY2x1ZGUvb2xlMi5oOiBNaWNoYWVsIExpbiA8bWxpbkBjb3J2dS5jb20uYXU+CisJQWRkZWQgbWlzc2luZyBPbGVEcmF3KCkgZGVjbGFyYXRpb24uCisKKwkqIGRsbHMvZ2RpL2ZyZWV0eXBlLmM6IFZpbmNlbnQgQulyb24gPHZiZXJvbkBtZWNhbm8uZ21lLnVzaGVyYi5jYT4KKwlNYWtlIHN0YXRpYyBzb21lIGZ1bmN0aW9ucyB1c2VkIG9ubHkgaW4gYSBzaW5nbGUgZmlsZS4KKworCSogZGxscy9kc291bmQvcHJpbWFyeS5jOiBSb2JlcnQgUmVpZiA8cmVpZkBlYXJ0aGxpbmsubmV0PgorCUluaXRpYWxpemUgcHJpbWFyeSBidWZmZXIgb24gb3Blbi4KKworCSogZGxscy9zZXR1cGFwaS9kZXZpbnN0LmMsIGluY2x1ZGUvY2ZnbWdyMzIuaDoKKwlKdWFuIExhbmcgPGp1YW5fbGFuZ0B5YWhvby5jb20+CisJSW1wbGVtZW50IFNldHVwRGlDbGFzc05hbWVGcm9tR3VpZEV4QS4KKworCSogaW5jbHVkZS9wcm9waWRsLmlkbDogSnVhbiBMYW5nIDxqdWFuX2xhbmdAeWFob28uY29tPgorCUFkZCBhIGZldyBtaXNzaW5nIGRlY2xhcmF0aW9ucy4KKworCSogcHJvZ3JhbXMvcmVnZWRpdC9saXN0dmlldy5jLCBwcm9ncmFtcy9yZWdlZGl0L21haW4uYywKKwkgIHByb2dyYW1zL3JlZ2VkaXQvdHJlZXZpZXcuYzoKKwlNYXJjdXMgTWVpc3NuZXIgPG1laXNzbmVyQHN1c2UuZGU+CisJUmVtb3ZlZCBpbmNsdXNpb24gb2YgcHJvY2Vzcy5oIChub3QgbmVlZGVkIGFuZCBicmVha3Mgd2l0aCBnY2M0KS4KKworCSogZGxscy91cmxtb24vdXJsbW9uLnNwZWMsIGRsbHMvdXJsbW9uL3VybG1vbl9tYWluLmM6CisJTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCUFkZCBzdHViIGZvciBGYXVsdEluSUVGZWF0dXJlLgorCisJKiBpbmNsdWRlL3d0eXBlcy5pZGw6IE1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlBZGQgdUNMU1NQRUMsIENTUExBVEZPUk0gYW5kIFFVRVJZQ09OVEVYVCBzdHJ1Y3R1cmVzLgorCisJKiBkbGxzL2NvbWN0bDMyL3N5c2xpbmsuYzogRGltaXRyaWUgTy4gUGF1biA8ZHBhdW5Acm9nZXJzLmNvbT4KKwlBdWRpdCB0aGUgY29kZSBhZ2FpbnN0IENvbWN0bDMyLmRsbCB2ZXJzaW9uIDYuMC4KKwlIYW5kbGUgbm90aWZpY2F0aW9uIGFuZCBzdHlsZXMgYXMgaW4gdGhlIG90aGVyIGNvbnRyb2xzLgorCU1haW50YWluIHRoZSBjb25zdCBmb3Igc3RyaW5ncyB0aHJvdWdob3V0IHBhcnNpbmcuCisKKwkqIGluY2x1ZGUvTWFrZWZpbGUuaW46IERpbWl0cmllIE8uIFBhdW4gPGRwYXVuQHJvZ2Vycy5jb20+CisJUmVtb3ZlIHJlZmVyZW5jZSB0byBub25leGlzdGFudCBzdHJtaWYuaC4KKworCSogZGxscy9jb21jdGwzMi9tb250aGNhbC5jOiBVbHJpY2ggQ3pla2FsbGEgPHVscmljaEBjb2Rld2VhdmVycy5jb20+CisJQ2xlYXIgc3lzdGVtdGltZSBzdHJ1Y3Qgc28gd2UgZG9uJ3QgcmV0dXJuIGdhcmJhZ2UgaW4gdW5pbml0aWFsaXplZAorCWZpZWxkcy4KKworCSogcHJvZ3JhbXMvdW5pbnN0YWxsZXIvRW4ucmM6IEhhbm51IFZhbHRvbmVuIDxIYW5udS5WYWx0b25lbkBodXQuZmk+CisJRml4IGEgdHlwbyBpbiB1bmluc3RhbGxlcidzIGVuZ2xpc2ggYXBwbmFtZS4KKworCSogdG9vbHMvd2luZS5pbmY6IEhhbm51IFZhbHRvbmVuIDxIYW5udS5WYWx0b25lbkBodXQuZmk+CisJUnVuIG1zaSBmaWxlcyB3aXRoIG1zaWV4ZWMuCisJQ2hhbmdlIENvbnRyb2wgUGFuZWxcRGVza3RvcCB0byBjb3JyZWN0IGNhc2UuCisKKwkqIGRsbHMveDExZHJ2L2RpYi5jOiBHbGVubiBXdXJzdGVyIDxnd3Vyc3RlckBzY3MuY2FybGV0b24uY2E+CisJRml4IGFycmF5IGluZGV4IGNyYXNoIGluIGJ1aWRsaW5nIEdESSBwYWxldHRlIGZyb20gbG9naWNhbCBwYWxldHRlLgorCisJKiBkbGxzL2FkdmFwaTMyL2NyeXB0LmMsIGRsbHMvYWR2YXBpMzIvY3J5cHQuaCwKKwkgIGRsbHMvYWR2YXBpMzIvdGVzdHMvY3J5cHQuYzoKKwlNaWNoYWVsIEp1bmcgPG1qdW5nQGlzcy50dS1kYXJtc3RhZHQuZGU+CisJTWFrZSBjcnlwdCBmdW5jdGlvbnMgbW9yZSByb2J1c3QgaW4gY2FzZSBvZiBpbmNvcnJlY3QgYXBpIHVzYWdlLgorCisJKiBzZXJ2ZXIvd2luZG93LmM6IFJhcGhhZWwgSnVucXVlaXJhIDxmZW5peEBjbHViLWludGVybmV0LmZyPgorCUZpeCBwb3RlbnRpYWwgcmVnaW9uIGxlYWsuCisKKwkqIGRsbHMvYWR2YXBpMzIvdGVzdHMvcmVnaXN0cnkuYzogSmFtZXMgSGF3a2lucyA8dHJ1aWtlbkBnbWFpbC5jb20+CisJQ3JlYXRlIHRoZSAnVGVzdCcgdmFsdWUgaW4gYSB0ZW1wb3Jhcnkgc3Via2V5IHRvIGF2b2lkIGNvbmZsaWN0cworCWJldHdlZW4gdGVzdHMuCisKKwkqIERFVkVMT1BFUlMtSElOVFM6IERpbWl0cmllIE8uIFBhdW4gPGRwYXVuQHJvZ2Vycy5jb20+CisJQWRkZWQgY3J5cHRkbGwvIGFuZCBzdGRvbGUzMi50bGIvLgorCisJKiBkbGxzL2Rzb3VuZC90ZXN0cy9kc291bmQ4LmMsIGluY2x1ZGUvZHNvdW5kLmg6CisJSmFtZXMgSGF3a2lucyA8dHJ1aWtlbkBnbWFpbC5jb20+CisJUmVtb3ZlIG5vbnN0YW5kYXJkIHR5cGUgTFBMUFZPSUQuCisKKwkqIGRvY3VtZW50YXRpb24vb2xlLnNnbWw6IE1pa2UgSGVhcm4gPG1pa2VAbmF2aS5jeD4KKwlNb3JlIG5vdGVzIGFib3V0IHRoZSBpbm5lciB3b3JraW5ncyBvZiBEQ09NLgorCisJKiBkbGxzL2RkcmF3L2QzZGRldmljZS9tZXNhLmMsIGRsbHMvZGRyYXcvZDNkdGV4dHVyZS5jLAorCSAgZGxscy9kZHJhdy9tZXNhX3ByaXZhdGUuaDoKKwlMaW9uZWwgVWxtZXIgPGxpb25lbC51bG1lckBmcmVlLmZyPgorCUNyZWF0ZSB0aGUgR0wgdGV4dHVyZSBpZCBhdCB0ZXh0dXJlLWJpbmRpbmcgdGltZS4KKworCSogZGxscy9yaWNoZWQyMC9lZGl0b3IuYzogS3J6eXN6dG9mIEZvbHRtYW4gPHdkZXZAZm9sdG1hbi5jb20+CisJLSBFTV9DQU5QQVNURSBpbXBsZW1lbnRlZAorCS0gdXBkYXRlZCBUT0RPIGxpc3QgKGluY2x1ZGluZyBsaXN0IG9mICh1bilpbXBsZW1lbnRlZCBtZXNzYWdlcykKKwktIGZpeGVkIFdNX1BBU1RFICh0aGUgcHJldmlvdXMgdmVyc2lvbiBtaWdodCBub3QgY2xvc2UgdGhlIGNsaXBib2FyZAorCSAgaWYgaXQgZGlkbid0IGNvbnRhaW4gYSB1c2FibGUgZm9ybWF0KQorCS0gc2Nyb2xsYmFyIG9wZXJhdGlvbnMgKGxpa2UgY2xpY2tpbmcgb24gYXJyb3dzKSBzaG91bGQgdXBkYXRlCisJICBzY3JvbGxiYXIncyBjdXJyZW50IHBvc2l0aW9uCisKKwkqIGluY2x1ZGUvd2luZGVmLmg6IFZpbmNlbnQgQulyb24gPHZiZXJvbkBtZWNhbm8uZ21lLnVzaGVyYi5jYT4KKwlGaXggYSB0eXBvIGluIGEgY29tbWVudC4KKworCSogZGxscy9nZGkvbWV0YWZpbGUuYywgZGxscy9nZGkvbWZkcnYvaW5pdC5jOgorCURpbWl0cmllIE8uIFBhdW4gPGRwYXVuQHJvZ2Vycy5jb20+CisJQ2xlYW51cCB0aGUgQVBJIGRvY3MuIEZldyBpbmRlbnRhdGlvbi9mb3JtYXR0aW5nIGZpeGVzLgorCisJKiBkbGxzL3dpbm1tL3Rlc3RzL2NhcHR1cmUuYywgZGxscy93aW5tbS90ZXN0cy93YXZlLmMsCisJICBkbGxzL3dpbm1tL3Rlc3RzL3dpbm1tX3Rlc3QuaDoKKwlSb2JlcnQgUmVpZiA8cmVpZkBlYXJ0aGxpbmsubmV0PgorCUNoYW5nZWQgcmVncmVzc2lvbiB0ZXN0IHRvIG1ha2Ugc3VyZSBwb3NpdGlvbiBpcyBjb3JyZWN0bHkgY2hlY2tlZAorCXdoZW4gYSBkaWZmZXJlbnQgdHlwZSBpcyByZXR1cm5lZC4KKwlBZGRlZCBKZXJlbXkgV2hpdGUncyBXQVZFX0ZPUk1BVF9ESVJFQ1QvV0FWRV9NQVBQRVIgZml4LgorCUFkZGVkIHdhdmVJbkdldFBvc2l0aW9uIGNoZWNrcy4KKworCSogZGxscy93aW5tbS93YXZlbWFwL3dhdmVtYXAuYzogUm9iZXJ0IFJlaWYgPHJlaWZAZWFydGhsaW5rLm5ldD4KKwlDb3JyZWN0bHkgaGFuZGxlIHdoZXJlIHdhdmVPdXRHZXRQb3NpdGlvbiBjaGFuZ2VzIHRpbWVwb3Mud1R5cGUKKwliZWNhdXNlIHRoZSByZXF1ZXN0ZWQgdHlwZSBpcyBub3Qgc3VwcG9ydGVkLgorCUFkZGVkIEplcmVteSBXaGl0ZSdzIHdhdmVPdXRHZXRQb3NpdGlvbiBmaXggdG8gd2F2ZUluR2V0UG9zaXRpb24uCisKKwkqIGRsbHMvaGhjdHJsLm9jeC9oaGN0cmwuYzogTWlrZSBIZWFybiA8bWlrZUBuYXZpLmN4PgorCU9ubHkgZG8gdW5pY29kZSBjb252ZXJzaW9uIGluIEhUTUwgSGVscCBjb250cm9sIHdoZW4gZmlsZW5hbWUgaXMKKwlzcGVjaWZpZWQuCisKKwkqIGRsbHMvbXNpL2RpYWxvZy5jLCBkbGxzL21zaS9tc2lwcml2LmgsIGRsbHMvbXNpL3JlY29yZC5jOgorCU1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlMb2FkIGFuZCBkaXNwbGF5IGJpdG1hcHMgaW4gdGhlIGRpYWxvZ3MuCisKKwkqIGRsbHMvdXNlci90ZXN0cy93aW4uYywgd2luZG93cy9zY3JvbGwuYzoKKwlSZWluIEtsYXplcyA8d2lqbkB3YW5hZG9vLm5sPgorCUluIFNjcm9sbFdpbmRvd0V4LCBpZiB0aGUgd2luZG93IGFscmVhZHkgaGFzIGFuIHVwZGF0ZSByZWdpb24gdGhlbiBhZGQKKwl0aGlzIHRvIGhyZ25VcGRhdGUuIFdpdGggYSBjb25mb3JtYW5jZSB0ZXN0LgorCisJKiBwcm9ncmFtcy93aW5ldGVzdC9ndWkuYywgcHJvZ3JhbXMvd2luZXRlc3QvbWFpbi5jOgorCUZlcmVuYyBXYWduZXIgPHdmZXJpQHRiYS5lbHRlLmh1PgorCVNpbGVuY2Ugc29tZSBzaWduZWRuZXNzIHdhcm5pbmdzLgorCisyMDA1LTAzLTMxICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL3gxMWRydi9iaXRtYXAuYywgZGxscy94MTFkcnYvZGliLmMsIGRsbHMveDExZHJ2L3gxMWRydi5oOgorCUludHJvZHVjZWQgYW4gWF9QSFlTQklUTUFQIHN0cnVjdHVyZSB0byBhbGxvdyBzdG9yaW5nIG1vcmUgeDExZHJ2CisJaW5mb3JtYXRpb24gYWJvdXQgYSBiaXRtYXAgdGhhbiBqdXN0IHRoZSBwaXhtYXAgaWQuCisKKwkqIGRsbHMva2VybmVsL3Rlc3RzL2ZpbGUuYywgZGxscy91c2VyL3Rlc3RzL21zZy5jLAorCSAgZGxscy91c2VyL3Rlc3RzL3dpbi5jOgorCVJlaW4gS2xhemVzIDx3aWpuQHdhbmFkb28ubmw+CisJRml4IHNvbWUgaW5jb3JyZWN0IHVzZXMgb2YgdGhlIG9rIG1hY3JvIHdoZXJlIHRoZSByZXN1bHQgZGVwZW5kcyBvbgorCXRoZSBldmFsdWF0aW9uIG9yZGVyIG9mIGl0cyBhcmd1bWVudHMuCisKKwkqIGRsbHMvbXN2Y3J0L2ZpbGUuYywgZGxscy9tc3ZjcnQvdGVzdHMvZmlsZS5jOgorCUhhbnMgTGVpZGVra2VyIDxoYW5zQGl0LnZ1Lm5sPgorCUltcGxlbWVudCBhbmQgdGVzdCBfY2hzaXplLgorCisJKiBkbGxzL3gxMWRydi94cmVuZGVyLmM6CisJQXZvaWQgZGlyZWN0bHkgYWNjZXNzaW5nIHRoZSBCSVRNQVBPQkogc3RydWN0dXJlLgorCisJKiBkbGxzL3gxMWRydi93aW5kb3cuYywgZGxscy94MTFkcnYveDExZHJ2Lmg6CisJUmVtb3ZlZCB0aGUgbm8gbG9uZ2VyIG5lZWRlZCBYMTFEUlZfZ2V0X2NsaWVudF9hcmVhX29mZnNldCBmdW5jdGlvbi4KKworCSogZGxscy94MTFkcnYvZGNlLmMsIGluY2x1ZGUvd2luZS9zZXJ2ZXJfcHJvdG9jb2wuaCwKKwkgIHNlcnZlci9wcm90b2NvbC5kZWYsIHNlcnZlci90cmFjZS5jLCBzZXJ2ZXIvd2luZG93LmM6CisJUmV0dXJuIHRoZSBjb29yZGluYXRlcyBpbmZvcm1hdGlvbiBuZWVkZWQgdG8gc2V0dXAgdGhlIERDIHBhcmFtZXRlcnMKKwlpbiB0aGUgZ2V0X3Zpc2libGVfcmVnaW9uIHJlcXVlc3QgaW5zdGVhZCBvZiByZXF1aXJpbmcgdGhlIGNsaWVudCB0bworCWNvbXB1dGUgaXQgYWdhaW4uCisKKwkqIGRsbHMvdXNlci90ZXN0cy93aW4uYywgd2luZG93cy9zY3JvbGwuYzoKKwlSZWluIEtsYXplcyA8d2lqbkB3YW5hZG9vLm5sPgorCUlmIFNjcm9sbFdpbmRvd0V4IGRvIG5vdCB1c2UgdGhlIERDWF9VU0VTVFlMRSB0byBnZXQgYSBEQy4gSW5zdGVhZAorCWNhbGN1bGF0ZSBEQ1hfQ0xJUFNJQkxJTkdTLCBEQ1hfUEFSRU5UQ0xJUCBhbmQgRENYX0NMSVBDSElMRFJFTi4gVGhlCisJRENYX0NMSVBDSElMRFJFTiBpcyBub3QgdXNlZCB3aGVuIFNjcm9sbFdpbmRvd0V4IGlzIGNhbGxlZCB3aXRoIGEKKwlTV19TQ1JPTExDSElMRFJFTiBmbGFnLiBXaXRoIGEgY291cGxlIG9mIHJlZ3Jlc3Npb24gdGVzdHMuCisKKwkqIGRsbHMvd2luc29jay9zb2NrZXQxNi5jOiBSZWluIEtsYXplcyA8d2lqbkB3YW5hZG9vLm5sPgorCUZpeCBhIGNvcHkmcGFzdGUgYnVnIGluIGdldF9idWZmZXJfcGUuCisKKwkqIGRsbHMvb2xlMzIvc3RnX3Byb3AuYywgZGxscy9vbGUzMi9zdGdfc3RyZWFtLmMsCisJICBkbGxzL29sZTMyL3N0b3JhZ2UzMi5jLCBkbGxzL29sZTMyL3N0b3JhZ2UzMi5oOgorCU1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlFbGltaW5hdGUgZm9yd2FyZCBkZWNsYXJhdGlvbnMsIG1ha2UgZnVuY3Rpb25zIHN0YXRpYy4KKworCSogcHJvZ3JhbXMvd2luZXRlc3QvZ3VpLmMsIHByb2dyYW1zL3dpbmV0ZXN0L21haW4uYywKKwkgIHByb2dyYW1zL3dpbmV0ZXN0L3Jlc291cmNlLmgsIHByb2dyYW1zL3dpbmV0ZXN0L3dpbmV0ZXN0LmgsCisJICBwcm9ncmFtcy93aW5ldGVzdC93aW5ldGVzdC5yYzoKKwlGZXJlbmMgV2FnbmVyIDx3ZmVyaUB0YmEuZWx0ZS5odT4KKwlBc2sgZm9yIGEgdGFnIGlmIG9uZSB3YXMgbm90IGdpdmVuIG9uIHRoZSBjb21tYW5kIGxpbmUuCisKKwkqIGRsbHMvZ2RpL2NsaXBwaW5nLmMsIGRsbHMvZ2RpL2RjLmMsIGRsbHMvZ2RpL2dkaV9wcml2YXRlLmg6CisJQWRkZWQgc3VwcG9ydCBmb3IgdGhlIERDIG1ldGEgcmVnaW9uLgorCisJKiBkbGxzL21zaHRtbC9NYWtlZmlsZS5pbiwgZGxscy9tc2h0bWwvaHRtbGRvYy5jLCBkbGxzL21zaHRtbC9tYWluLmMsCisJICBkbGxzL21zaHRtbC9tc2h0bWxfcHJpdmF0ZS5oOgorCUphY2VrIENhYmFuIDxqYWNrQGl0bWEucHdyLndyb2MucGw+CisJU3R1YiBpbXBsZW1lbnRhdGlvbiBvZiBIVE1MRG9jdW1lbnQyIGludGVyZmFjZS4KKworCSogZGxscy91c2VyL3Rlc3RzL3RleHQuYzogUGF1bCBWcmllbnMgPHBhdWwudnJpZW5zQHhzNGFsbC5ubD4KKwlVc2UgdGV4dGxlbiBpbnN0ZWFkIG9mIGxlbi4KKwlVc2UgdGV4dGhlaWdodCBhcyB0aGUgcmV0dXJuIHZhbHVlIG9mIERyYXdUZXh0QS4KKworCSogZGxscy9hZHZhcGkzMi90ZXN0cy9zZWN1cml0eS5jOgorCVN0ZWZhbiBMZWljaHRlciA8U3RlZmFuLkxlaWNodGVyQGNhbUxpbmUuY29tPgorCUZpeCBHZXRGaWxlU2VjdXJpdHlBIHRlc3Qgb24gV2luOTguCisKKwkqIGRsbHMvd2lubW0vd2luZWFsc2EvYXVkaW8uYzogUGF1bCB2YW4gU2NoYXljayA8cG9sbGVrZUBnbWFpbC5jb20+CisJRG9uJ3Qgc3RvcCBsb29raW5nIGZvciBkZXZpY2VzIGlmIG9uZSBjYW4ndCBiZSBvcGVuZWQuCisKKwkqIGRsbHMvd2luc3Bvb2wvaW5mby5jOiBIdXcgRGF2aWVzIDxodXdAY29kZXdlYXZlcnMuY29tPgorCVNldCB0aGUgcmVnaXN0cnkga2V5cyB1bmRlciBIQ1VcU29mdHdhcmVcTWljcm9zb2Z0XFdpbmRvd3MKKwlOVFxDdXJyZW50VmVyc2lvbiB0byBtaW1pYyB0aGUgd2luLmluaSB2YWx1ZXMuCisKKwkqIGRsbHMvc2hlbGwzMi9kZWJ1Z2hscC5jOiBNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJRml4IHVwIFBJREwgZHVtcGluZyBjb2RlLgorCisJKiBkbGxzL3gxMWRydi9rZXlib2FyZC5jOiBBcmljIEN5ciA8YWN5ckBhbHVtbmkudXdhdGVybG9vLmNhPgorCUphcGFuZXNlIDEwNiBLZXlib2FyZCBmaXguCisKKzIwMDUtMDMtMzAgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGRsbHMva2VybmVsL2ZpbGUuYywgZGxscy9rZXJuZWwvc3luYy5jLCBkbGxzL2tlcm5lbC90ZXN0cy9tYWlsc2xvdC5jLAorCSAgZGxscy9udGRsbC9maWxlLmMsIGluY2x1ZGUvd2luZS9zZXJ2ZXJfcHJvdG9jb2wuaCwKKwkgIHNlcnZlci9NYWtlZmlsZS5pbiwgc2VydmVyL21haWxzbG90LmMsIHNlcnZlci9wcm90b2NvbC5kZWYsCisJICBzZXJ2ZXIvcmVxdWVzdC5oLCBzZXJ2ZXIvdHJhY2UuYzoKKwlNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJSW1wbGVtZW50IG1haWxzbG90cy4KKworCSogZGxscy91c2VyL21lbnUuYywgZGxscy91c2VyL3Rlc3RzL21zZy5jLCB3aW5kb3dzL25vbmNsaWVudC5jLAorCSAgd2luZG93cy93aW4uYzoKKwlEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCS0gTWFrZSBHZXRTeXN0ZW1NZW51IHJlc3BlY3QgQ1NfTk9DTE9TRS4KKwktIEVuYWJsZU1lbnVJdGVtIHNob3VsZCBub3QgZ2VuZXJhdGUgV01fV0lORE9XUE9TQ0hBTkdJTkcgbWVzc2FnZS4KKwktIE1ha2Ugbm9uY2xpZW50IGNvZGUgY2hlY2sgZm9yIHByZXNlbmNlIG9mIFNDX0NMT1NFLCBub3QgQ1NfTk9DTE9TRQorCSAgd2luZG93IGNsYXNzIHN0eWxlLgorCS0gQWRkIGEgdGVzdCBjYXNlLgorCisJKiBkbGxzL2FkdmFwaTMyL2NyeXB0LmM6IE1pY2hhZWwgSnVuZyA8bWp1bmdAaXNzLnR1LWRhcm1zdGFkdC5kZT4KKwlSZW1vdmVkIHRoZSBpbmNvbXBsZXRlIHNpZ25hdHVyZSBjaGVja2luZyBjb2RlLgorCisJKiBkbGxzL3VzZXIvcGFpbnRpbmcuYywgZGxscy91c2VyL3Rlc3RzL2RjZS5jLCBkbGxzL3gxMWRydi9kY2UuYywKKwkgIHNlcnZlci93aW5kb3cuYywgd2luZG93cy9ub25jbGllbnQuYzoKKwlUaGUgdXBkYXRlIHJlZ2lvbiBwYXNzZWQgaW4gV01fTkNQQUlOVCBhbmQgdGhlIGNsaXBwaW5nIHJlZ2lvbiBwYXNzZWQKKwl0byBHZXREQ0V4IGhhdmUgdG8gYmUgaW4gc2NyZWVuIGNvb3JkaW5hdGVzLgorCisJKiBkbGxzL2NvbWN0bDMyL3N5c2xpbmsuYywgZGxscy9nZGkvcGFsZXR0ZS5jLCBkbGxzL2tlcm5lbC9jb21tLmMsCisJICBkbGxzL21zaS9kaWFsb2cuYywgZGxscy9udGRsbC9ydGxzdHIuYywgZGxscy9vbGUzMi9jb21wb2JqLmMsCisJICBkbGxzL29sZTMyL3Rlc3RzL21hcnNoYWwuYywgZGxscy9vbGVhdXQzMi90eXBlbGliLmgsCisJICBkbGxzL3JwY3J0NC9ycGNfYmluZGluZy5jLCBkbGxzL3JzYWVuaC9tcGkuYywKKwkgIGRsbHMvc2hlbGwzMi9zaGZsZHJfdW5peGZzLmMsIGRsbHMvd2luaW5ldC9pbnRlcm5ldC5jLAorCSAgZGxscy93aW5zb2NrL3Rlc3RzL3NvY2suYywgZGxscy94MTFkcnYveGZvbnQuYywKKwkgIHByb2dyYW1zL3JlZ2VkaXQvcmVncHJvYy5jLCB0b29scy93aWRsL3R5cGVsaWJfc3RydWN0Lmg6CisJRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGZyZWUuZnI+CisJQXNzb3J0ZWQgc3BlbGxpbmcgZml4ZXMuCisKKwkqIGluY2x1ZGUvdXJsbW9uLmlkbDogSmFjZWsgQ2FiYW4gPGphY2tAaXRtYS5wd3Iud3JvYy5wbD4KKwlBZGRlZCBJTW9uaWtlclByb3AgYW5kIElJbnRlcm5ldFByaW9yaXR5IGludGVyZmFjZXMuCisKKwkqIGluY2x1ZGUvbXNodG1kaWQuaDogSmFjZWsgQ2FiYW4gPGphY2tAaXRtYS5wd3Iud3JvYy5wbD4KKwlBZGRlZCBzb21lIGRlZmluaXRpb25zLgorCisJKiBkbGxzL2tlcm5lbC9jb21wdXRlcm5hbWUuYzogSGFucyBMZWlkZWtrZXIgPGhhbnNAaXQudnUubmw+CisJUmV0dXJuIGEgY29tcHV0ZXJuYW1lIGNvbnN0cnVjdGVkIGZyb20gdGhlIGhvc3RuYW1lLgorCisJKiBkbGxzL2tlcm5lbC9uZV9tb2R1bGUuYzoKKwlCZXR0ZXIgaGFuZGxpbmcgb2YgMTYtYml0IG5hdGl2ZSBkbGxzIHdoZW4gYSAzMi1iaXQgYnVpbHRpbiB3aXRoIHRoZQorCXNhbWUgbmFtZSBleGlzdHM7IHNob3VsZCBoZWxwIHdpdGggdGhlIDE2LWJpdCBjYXJkcy5kbGwgaXNzdWUuCisJUmVwbGFjZSBzb21lIG1hZ2ljIGVycm9yIG51bWJlcnMgYnkgdGhlIGNvcnJlc3BvbmRpbmcgbmFtZXMuCisKKwkqIGRsbHMvdXNlci9wYWludGluZy5jLCBkbGxzL3VzZXIvdGVzdHMvZGNlLmMsCisJICBkbGxzL3VzZXIvdXNlcl9wcml2YXRlLmgsIGRsbHMveDExZHJ2L2RjZS5jLCBkbGxzL3gxMWRydi94MTFkcnYuc3BlYywKKwkgIGluY2x1ZGUvd2luLmg6CisJT25seSByZXNldCB0aGUgY2xpcCByZWdpb24gaW4gR2V0REMoKSBpZiBhIG5ldyByZWdpb24gaXMgc3BlY2lmaWVkLgorCURvbid0IHJlbGVhc2UgdGhlIGNsaXAgcmVnaW9uIGZvciB3aW5kb3cgRENzIGluIFJlbGVhc2VEQygpLCBleGNlcHQKKwl3aGVuIGNhbGxlZCBmcm9tIEVuZFBhaW50KCkuCisJQWRkZWQgYSBidW5jaCBvZiB0ZXN0cy4KKworCSogZGxscy91c2VyL21lbnUuYzoKKwlVd2UgQm9ubmVzIDxib25AZWxla3Ryb24uaWtwLnBoeXNpay50dS1kYXJtc3RhZHQuZGU+CisJWmVybyBvdXQgcmV0dXJuIHN0cmluZyBpbiBHZXRNZW51U3RyaW5nQS9XLgorCisJKiBkbGxzL250ZGxsL250ZGxsLnNwZWMsIGRsbHMvbnRkbGwvc2VjLmM6CisJTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCVN0dWIgaW1wbGVtZW50YXRpb24gb2YgUnRsQWJzb2x1dGVUb1NlbGZSZWxhdGl2ZVNELgorCisJKiBkbGxzL2Rzb3VuZC90ZXN0cy9kc291bmQuYywgZGxscy9kc291bmQvdGVzdHMvZHNvdW5kOC5jOgorCVJvYmVydCBSZWlmIDxyZWlmQGVhcnRobGluay5uZXQ+CisJS2VlcCBkc291bmQ4LmMgYW5kIGRzb3VuZC5jIGluIHN5bmMuCisKKwkqIGRsbHMvb2xlYXV0MzIvb2xlcGljdHVyZS5jOgorCUFsZXggVmlsbGFj7XMgTGFzc28gPGFfdmlsbGFjaXNAcGFsb3NhbnRvLmNvbT4KKwlJbml0aWFsaXplIFtvcmlnfGhpbWV0cmljXVtXaWR0aHxIZWlnaHRdIGZvciBQSUNUWVBFX0lDT04gY2FzZS4KKworCSogZGxscy9hZHZhcGkzMi9yZWdpc3RyeS5jLCBkbGxzL250ZGxsL3JlZy5jOgorCVJvYmVydCBTaGVhcm1hbiA8cm9iQGNvZGV3ZWF2ZXJzLmNvbT4KKwlNb3ZlIHNhdmVfcmVnaXN0cnkgYW5kIHVubG9hZF9rZXkgc2VydmVyIGNhbGxzIHRvIG50ZGxsLgorCisJKiBkbGxzL21zaS9hY3Rpb24uYzogQXJpYyBTdGV3YXJ0IDxhcmljQGNvZGV3ZWF2ZXJzLmNvbT4KKwlNYWtlIHN1cmUgdGhlIEdVSUQgb2YgdGhlIHR5cGVsaWIgd2UgYXJlIHJlZ2lzdGVyaW5nIG1hdGNoZXMgdGhlIGd1aWQKKwlyZXF1ZXN0ZWQgZnJvbSBNU0kuIElmIG5vdCBzZWFyY2ggdGhlIGdpdmVuIHR5cGVsaWIgZmlsZSB0byBmaW5kIHRoZQorCXR5cGVsaWIgcmVxdWVzdGVkIHRvIHJlZ2lzdGVyLgorCisyMDA1LTAzLTI5ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBwcm9ncmFtcy93aW5ldGVzdC9tYWluLmM6IEZlcmVuYyBXYWduZXIgPHdmZXJpQHRiYS5lbHRlLmh1PgorCVRyeSB1c2luZyBhIHN0YWJsZSB0ZW1wb3JhcnkgZGlyZWN0b3J5IGF0IGZpcnN0IHRvIHNpbGVuY2UgWm9uZUFsYXJtCisJd2FybmluZ3MuCisKKwkqIGRsbHMvYWR2YXBpMzIvc2VydmljZS5jOiBNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJSW1wbGVtZW50IENoYW5nZVNlcnZpY2VDb25maWcuCisKKwkqIGRsbHMvbXNhY20vZm9ybWF0LmMsIGRsbHMvcHNhcGkvcHNhcGlfbWFpbi5jLCBkbGxzL3VzZXIvdGV4dC5jLAorCSAgZGxscy93aW5pbmV0L25ldGNvbm5lY3Rpb24uYzoKKwlQZXRlciBCZXJnIExhcnNlbiA8cGVibEBtYXRoLmt1LmRrPgorCUphbml0b3JpYWw6IEdldCByaWQgb2Ygc3RybmNweS9zdHJuY3B5Vy4KKworCSogZGxscy93aW5tbS93aW5lYWxzYS9hdWRpby5jOgorCUplcnJ5IEplbmtpbnMgPGplcnJ5X2pfamVua2luc0B5YWhvby5jb20+CisJSW1wcm92ZSB3aW5lYWxzYSBkc291bmQgZHJpdmVyIGJ5IGFjY2Vzc2luZyBzb3VuZCBkcml2ZXIncyBidWZmZXIKKwlkaXJlY3RseSBpbiBhbiB1bmRvY3VtZW50ZWQgd2F5LgorCisJKiBkbGxzL2QzZDgvZGlyZWN0eC5jLCBkbGxzL2QzZDkvY3ViZXRleHR1cmUuYywKKwkgIGRsbHMvZDNkOS9kM2Q5X3ByaXZhdGUuaCwgZGxscy9kM2Q5L2RldmljZS5jLCBkbGxzL2QzZDkvZGlyZWN0eC5jLAorCSAgZGxscy9kM2Q5L3RleHR1cmUuYywgZGxscy9kM2Q5L3ZvbHVtZS5jLCBkbGxzL2QzZDkvdm9sdW1ldGV4dHVyZS5jLAorCSAgZGxscy93aW5lZDNkL2Jhc2V0ZXh0dXJlLmMsIGRsbHMvd2luZWQzZC9jdWJldGV4dHVyZS5jLAorCSAgZGxscy93aW5lZDNkL2RldmljZS5jLCBkbGxzL3dpbmVkM2QvZGlyZWN0eC5jLAorCSAgZGxscy93aW5lZDNkL2RyYXdwcmltLmMsIGRsbHMvd2luZWQzZC9pbmRleGJ1ZmZlci5jLAorCSAgZGxscy93aW5lZDNkL3Jlc291cmNlLmMsIGRsbHMvd2luZWQzZC9zdXJmYWNlLmMsCisJICBkbGxzL3dpbmVkM2QvdGV4dHVyZS5jLCBkbGxzL3dpbmVkM2QvdmVydGV4YnVmZmVyLmMsCisJICBkbGxzL3dpbmVkM2Qvdm9sdW1lLmMsIGRsbHMvd2luZWQzZC92b2x1bWV0ZXh0dXJlLmMsCisJICBkbGxzL3dpbmVkM2Qvd2luZWQzZF9wcml2YXRlLmgsIGluY2x1ZGUvd2luZS93aW5lZDNkX2ludGVyZmFjZS5oOgorCU9saXZlciBTdGllYmVyIDxvbGl2ZXJfc3RpZWJlckB5YWhvby5jby51az4KKwktIFZvbHVtZSBub3cgaW5oZXJpdHMgUmVzb3VyY2UuIFRoaXMgaXNuJ3QgdGhlIHdheSBNaWNyb3NvZnQgaW1wbGVtZW50cworCSAgdGhlIGludGVyZmFjZSBidXQgaXQgaXMgbW9yZSBjb3JyZWN0IHdheSAoTWljcm9zb2Z0IGV2ZW4gaGF2ZSBhCisJICByZXNvdXJjZSB0eXBlIG9mIHZvbHVtZSkuCisJLSBNb3ZlZCB1c2FnZSwgZm9ybWF0LCBhbGxvY2F0ZWRNZW1vcnkgYW5kIHNpemUgb250byB0aGUgcmVzb3VyY2UKKwkgIGNsYXNzIHN0cnVjdHVyZS4KKwktIFJlZmFjdG9yZWQgUHJlbG9hZCBmb3IgY2xhc3NlcyB0aGF0IGluaGVyaXQgQmFzZVRleHR1cmUsIHByZWxvYWQgbm93CisJICBiaW5kcyB0aGUgdGV4dHVyZSBpbnN0ZWFkIG9mIGJpbmQgdGV4dHVyZSBjYWxsaW5nIHByZWxvYWQsIGJpbmRUZXh0dXJlCisJICBhbGxvY2F0ZWQgYSBnbFRleHR1cmUgaWYgdGhlcmUgaXNuJ3Qgb25lLgorCS0gQWRkZWQgdHdvIG5ldyBjbGFzcyBzdGF0aWMgbWVtYmVycyBCYXNlVGV4dHVyZV9DbGVhblVwIGFuZAorCSAgUmVzb3VyY2VfQ2xlYW5VcCB0aGF0IHNob3VsZCBiZSBjYWxsZWQgYnkgY2xhc3NlcyB0aGF0IGltcGxlbWVudAorCSAgQmFzZVRleHR1cmUgb3IgUmVzb3VyY2UuCisKKwkqIGRsbHMvdXNlci90ZXN0cy8uY3ZzaWdub3JlLCBkbGxzL3VzZXIvdGVzdHMvTWFrZWZpbGUuaW4sCisJICBkbGxzL3VzZXIvdGVzdHMvZGNlLmMsIGRsbHMveDExZHJ2L2RjZS5jOgorCU9ubHkgcmVzdG9yZSB0aGUgREMgYXR0cmlidXRlcyBvbiB0aGUgbmV4dCBHZXREQywgYW5kIGFkZCBzdXBwb3J0IGZvcgorCXRoZSBEQ1hfTk9SRVNFVEFUVFJTIGZsYWcuCisJR2V0IHJpZCBvZiB0aGUgRENFIGZsYWdzLCBzaW1wbGlmeSB0aGUgY29kZSBhIGJpdC4KKwlBZGQgc29tZSB0ZXN0IGNhc2VzLgorCisJKiBkbGxzL29sZWF1dDMyL29sZXBpY3R1cmUuYzoKKwlBbGV4IFZpbGxhY+1zIExhc3NvIDxhX3ZpbGxhY2lzQHBhbG9zYW50by5jb20+CisJRml4IGZhaWx1cmUgdG8gbm90aWNlIHRoZSB1c2Ugb2YgYSBHSUYgcGFsZXR0ZSBpbmRleCBncmVhdGVyIG9yIGVxdWFsCisJdG8gMTI4IGZvciB0cmFuc3BhcmVuY3kuCisKKwkqIHByb2dyYW1zL3JlZ2VkaXQvQ3MucmMsIHByb2dyYW1zL3JlZ2VkaXQvRGUucmMsCisJICBwcm9ncmFtcy9yZWdlZGl0L0VuLnJjLCBwcm9ncmFtcy9yZWdlZGl0L0VzLnJjLAorCSAgcHJvZ3JhbXMvcmVnZWRpdC9Gci5yYywgcHJvZ3JhbXMvcmVnZWRpdC9JdC5yYywKKwkgIHByb2dyYW1zL3JlZ2VkaXQvSmEucmMsIHByb2dyYW1zL3JlZ2VkaXQvUGwucmMsCisJICBwcm9ncmFtcy9yZWdlZGl0L1B0LnJjOgorCUphY2VrIENhYmFuIDxqYWNrQGl0bWEucHdyLndyb2MucGw+CisJQWRkZWQgRVNfQVVUT0hTQ1JPTEwgc3R5bGUgdG8gdGhlIGVkaXR0ZXh0IGNoYW5naW5nIHRleHQgZGF0YS4KKworCSogZGxscy9nZGkvZW5obWV0YWZpbGUuYywgZGxscy9nZGkvdGVzdHMvbWV0YWZpbGUuYzoKKwlIdXcgRGF2aWVzIDxodXdAY29kZXdlYXZlcnMuY29tPgorCUluIGEgY2FsbCB0byBFbnVtRW5oTWV0YUZpbGUgd2hlbiBoZGMgaXMgTlVMTCwgbHBSZWN0IG1heSBiZSBOVUxMLiBBZGQKKwlhIHRlc3QgZm9yIHRoaXMuCisKKwkqIGRsbHMvb2xlMzIvc3RvcmFnZTMyLmM6IEh1dyBEYXZpZXMgPGh1d0Bjb2Rld2VhdmVycy5jb20+CisJV3JpdGVGbXRVc2VyVHlwZVN0ZyBkb2Vzbid0IHB1bGwgYSBDTFNJRCBmcm9tIHRoZSByZWdpc3RyeSAtIGl0J3MKKwl1bmNsZWFyIHdoZW4gKGlmIGF0IGFsbCkgdGhpcyBnZXRzIHdyaXR0ZW4uCisKKwkqIGRsbHMvdXNlci9rYmQxNi5jLCBkbGxzL3VzZXIvbHN0ci5jLCBkbGxzL3VzZXIvdXNlcjE2LmM6CisJTW92ZWQgMTYtYml0IHN0cmluZyBmdW5jdGlvbnMgdG8gdXNlcjE2LmMgYW5kIGtiZDE2LmMuCisKKwkqIGRsbHMvZGJnaGVscC9kYmdoZWxwX3ByaXZhdGUuaCwgZGxscy9kYmdoZWxwL2VsZl9tb2R1bGUuYywKKwkgIGRsbHMvZGJnaGVscC9taW5pZHVtcC5jLCBkbGxzL2RiZ2hlbHAvbW9kdWxlLmMsIGRsbHMvZGJnaGVscC9wYXRoLmMsCisJICBkbGxzL2RiZ2hlbHAvcGVfbW9kdWxlLmMsIGluY2x1ZGUvZGJnaGVscC5oOgorCUVyaWMgUG91ZWNoIDxwb3VlY2gtZXJpY0B3YW5hZG9vLmZyPgorCS0gVmFyaW91cyBpbXByb3ZlbWVudHMgZm9yIG1pbmlkdW1wIG1vZHVsZSBpbmZvcm1hdGlvbgorCSAgLiBhZGRlZCB0aW1lc3RhbXAgJiBjaGVja3N1bSBpbiBQRSBtb2R1bGUKKwkgIC4gYWRkZWQgc2l6ZSAmIGNoZWNrc3VtIGluIEVMRiBtb2R1bGUKKwkgIC4gd2luZSBsb2FkZXIgbm93IGFwcGVhcnMgd2l0aCBpdHMgcGF0aG5hbWUuCisJLSBJbXBsZW1lbnRlZCBQRSAmIEVMRiB0aW1lc3RhbXAgJiBjaGVja3N1bSB2YWxpZGF0aW9uIGluCisJICBTeW1GaW5kRmlsZUluUGF0aC4KKworCSogZGxscy91c2VyL01ha2VmaWxlLmluLCBkbGxzL3VzZXIvdWl0b29scy5jLCB3aW5kb3dzL3JlY3QuYzoKKwlNb3ZlZCByZWN0YW5nbGUgZnVuY3Rpb25zIHRvIHVpdG9vbHMuYyBhbmQgcmVtb3ZlZCByZWN0LmMuCisKKwkqIGRsbHMvd2luc3Bvb2wvaW5mby5jOiBEaW1pdHJpZSBPLiBQYXVuIDxkcGF1bkByb2dlcnMuY29tPgorCVVuaWNvZGlmeSBXSU5TUE9PTF9PcGVuRHJpdmVyUmVnKCkuCisKKwkqIGRsbHMvb2xlMzIvY29tcG9iai5jOiBIdXcgRGF2aWVzIDxodXdAY29kZXdlYXZlcnMuY29tPgorCURvbid0IGNsb3NlIHJlZyBrZXkgaWYgdGhlIG9wZW4gZmFpbGVkLgorCisJKiBkbGxzL29sZWF1dDMyL3RtYXJzaGFsLmM6IE1hcmN1cyBNZWlzc25lciA8bWVpc3NuZXJAc3VzZS5kZT4KKwlTZXJpYWxpemUgTlVMTCBwb2ludGVyIGludGVyZmFjZXMgY29ycmVjdGx5LgorCisJKiBkbGxzL3VzZXIvdGVzdHMvbXNnLmMsIHdpbmRvd3Mvc2Nyb2xsLmM6CisJUmVpbiBLbGF6ZXMgPHdpam5Ad2FuYWRvby5ubD4KKwlTY3JvbGxXaW5kb3cgc2hvdWxkIGNhbGwgU2Nyb2xsV2luZG93RXggd2l0aCB0aGUgU1dfRVJBU0UgZmxhZworCXNldC4gV2l0aCBjb25mb3JtYW5jZSB0ZXN0LgorCisJKiBzZXJ2ZXIvZmQuYywgc2VydmVyL2ZpbGUuYywgc2VydmVyL2ZpbGUuaCwgc2VydmVyL3NlcmlhbC5jLAorCSAgc2VydmVyL3NvY2suYzoKKwlFcmljIFBvdWVjaCA8cG91ZWNoLWVyaWNAd2FuYWRvby5mcj4KKwlDbGVhbi11cCBhc3luYyBJTyBpbnRlcm5hbCBmdW5jdGlvbnMuCisKKwkqIGRsbHMvYWR2YXBpMzIvcmVnaXN0cnkuYywgZGxscy9udGRsbC9yZWcuYywgaW5jbHVkZS93aW50ZXJubC5oLAorCSAgc2VydmVyL3JlZ2lzdHJ5LmM6CisJSmFtZXMgSGF3a2lucyA8dHJ1aWtlbkBnbWFpbC5jb20+CisJLSBJbXBsZW1lbnQgTnRMb2FkS2V5LgorCS0gRm9yd2FyZCBSZWdMb2FkS2V5IHRvIE50TG9hZEtleS4KKworCSogZGxscy91c2VyL3VzZXIxNi5jLCB3aW5kb3dzL3JlY3QuYzoKKwlNb3ZlZCAxNi1iaXQgcmVjdGFuZ2xlIGZ1bmN0aW9ucyB0byB1c2VyMTYuYy4KKworCSogZGxscy9rZXJuZWwva2VybmVsMzIuc3BlYywgZGxscy9rZXJuZWwvbG9jYWxlLmM6CisJVHJveSBSb2xsbyA8d2luZUB0cm95LnJvbGxvLm5hbWU+CisJSW1wbGVtZW50IFNldENQR2xvYmFsIChhbiB1bmRvY3VtZW50ZWQgV2luMzIgQVBJKS4KKworCSogZGxscy9hZHZhcGkzMi90ZXN0cy9jcnlwdC5jOiBNaWNoYWVsIEp1bmcgPG1qdW5nQGlzcy50dS1kYXJtc3RhZHQuZGU+CisJQWRkZWQgYSB0ZXN0IGZvciBhZHZhcGkzMiwgd2hpY2ggZG9jdW1lbnRzIGEgY3Jhc2ggaW4gd2luZSB0cmlnZ2VyZWQKKwlieSBpbmNvcnJlY3QgYXBpIHVzYWdlLgorCisJKiBkbGxzL29sZTMyL2NsaXBib2FyZC5jLCBkbGxzL29sZTMyL29sZTIuYzoKKwlWaW5jZW50IELpcm9uIDx2YmVyb25AbWVjYW5vLmdtZS51c2hlcmIuY2E+CisJQ2hhbmdlIHByb3RvdHlwZXMgc28gZ2NjIHdpdGggc29tZSB3YXJuaW5ncyBkb2Vzbid0IGJhcmsuCisKKwkqIHRvb2xzL3dpbmFwaS93aW4zMi5hcGk6IFZpbmNlbnQgQulyb24gPHZiZXJvbkBtZWNhbm8uZ21lLnVzaGVyYi5jYT4KKwlyc2FiYXNlIGRvZXNuJ3QgdXNlIGFueSB0eXBlcyBub3csIHNvIHJlbW92ZSBpdC4KKworCSogZGxscy9hZHZhcGkzMi9zZWN1cml0eS5jLCBkbGxzL2FkdmFwaTMyL3Rlc3RzL3NlY3VyaXR5LmM6CisJU3RlZmFuIExlaWNodGVyIDxTdGVmYW4uTGVpY2h0ZXJAY2FtTGluZS5jb20+CisJRml4IEdldEZpbGVTZWN1cml0eVcgZm9yIG5vdCBleGlzdGluZyBkaXJlY3Rvcmllcy9maWxlcy4KKworCSogZGxscy9kYmdoZWxwL21zYy5jLCBkbGxzL2RiZ2hlbHAvc3ltYm9sLmM6CisJRXJpYyBQb3VlY2ggPHBvdWVjaC1lcmljQHdhbmFkb28uZnI+CisJLSBQREI6IGJldHRlciBjaGVja2luZyBmb3IgZXJyb3IgY29uZGl0aW9ucworCS0gRml4ZWQgbmFtZSBkZW1hbmdsaW5nICh3aGVuIGFjdGl2YXRlZCkgd2hlbiBzZWFyY2hpbmcgZm9yIGEgc3ltYm9sCisKKwkqIGRsbHMvbnRkbGwvdGVzdHMvcmVnLmM6IEphY2VrIENhYmFuIDxqYWNrQGl0bWEucHdyLndyb2MucGw+CisJRml4ZWQgbnRkbGw6cmVnIHRlc3Qgb24gd2luOXguCisKKwkqIGRsbHMveDExZHJ2L2tleWJvYXJkLmM6IERtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJSGFuZGxlIGNvbnRyb2wgY2hhcmFjdGVycyBpbiBWa0tleVNjYW5FeCBzaW1pbGFyIHRvIHdoYXQgV2luZG93cworCWRvZXMuCisKKwkqIGRsbHMvdXNlci9zY3JvbGwuYywgZGxscy91c2VyL3Rlc3RzL3dpbi5jOgorCVJlaW4gS2xhemVzIDx3aWpuQHdhbmFkb28ubmw+CisJLSBHZXRTY3JvbGxSYW5nZSBzaG91bGQgcmV0dXJuIGFuIGVtcHR5IHJhbmdlLCBib3RoIHVwcGVyIGFuZCBsb3dlcgorCSAgbGltaXQgemVybywgaWYgdGhlIHdpbmRvdyBoYXMgbm8gc2Nyb2xsYmFycyAobXNkbikuCisJLSBHZXRTY3JvbGxJbmZvJ3MgcmV0dXJuIHZhbHVlIGlzIFRSVUUgaXMgbkJhciBpcyBTQl9DVEwgb3IgaWYKKwkgIGFueXRoaW5nIGlzIGZpbGxlZCBpbiB0aGUgU0NST0xMSU5GTyBzdHJ1Y3R1cmUsIG90aGVyd2lzZSB0aGUgcmV0dXJuCisJICB2YWx1ZSBpcyBGQUxTRS4KKworCSogZGxscy9vbGVhdXQzMi90bWFyc2hhbC5jOiBNYXJjdXMgTWVpc3NuZXIgPG1laXNzbmVyQHN1c2UuZGU+CisJRml4ZWQgVlRfQlNUUnxWVF9CWVJFRiBtYXJzaGFsbGluZy4KKwlBZGRlZCBWVF9JNHxWVF9CWVJFRiBtYXJzaGFsbGluZy4KKworCSogZGxscy9tc2kvTWFrZWZpbGUuaW4sIGRsbHMvbXNpL2RhdGFiYXNlLmMsIGRsbHMvbXNpL21zaS5jOgorCU1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlTcGxpdCBvdXQgZGF0YWJhc2UgZnVuY3Rpb25zLCByZW1vdmUgZGVwZW5kZW5jZSBvbiB3aW5lL3VuaWNvZGUuaC4KKworMjAwNS0wMy0yOCAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9jb21tZGxnL2ZpbGVkbGcuYywgZGxscy9kbWJhbmQvYmFuZC5jLCBkbGxzL2RtY29tcG9zL2Nob3JkbWFwLmMsCisJICBkbGxzL2RtaW1lL2F1ZGlvcGF0aC5jLCBkbGxzL2RtaW1lL2dyYXBoLmMsIGRsbHMvZG1pbWUvc2VnbWVudC5jLAorCSAgZGxscy9pcGhscGFwaS9pZmVudW0uYywgZGxscy9pcGhscGFwaS9pcGhscGFwaV9tYWluLmMsCisJICBkbGxzL2tlcm5lbC9hdG9tMTYuYywgZGxscy9rZXJuZWwvcHJvZmlsZS5jLCBkbGxzL3JzYWVuaC9yc2FlbmguYywKKwkgIGRsbHMvc2hsd2FwaS9wYXRoLmMsIGRsbHMvc2hsd2FwaS9zdHJpbmcuYywgZGxscy9zaGx3YXBpL3VybC5jLAorCSAgZGxscy93aW5pbmV0L2Nvb2tpZS5jLCBkbGxzL3dpbmluZXQvZnRwLmMsIGRsbHMvd2luaW5ldC9odHRwLmMsCisJICBkbGxzL3dpbmluZXQvaW50ZXJuZXQuYywgZGxscy9kYmdoZWxwL2RiZ2hlbHAuYywKKwkgIGRsbHMvZGJnaGVscC9tb2R1bGUuYywgZGxscy9kYmdoZWxwL3N5bWJvbC5jLCBkbGxzL2Rzb3VuZC9jYXB0dXJlLmMsCisJICBkbGxzL2Rzb3VuZC9kc291bmRfbWFpbi5jLCBkbGxzL2Rzb3VuZC9wcm9wc2V0LmMsCisJICBkbGxzL2Rzd2F2ZS9kc3dhdmUuYywgZGxscy9nZGkvZW52LmMsIGRsbHMva2VybmVsL3Rlc3RzL3Byb2Nlc3MuYywKKwkgIGRsbHMvbXNpL2FjdGlvbi5jLCBkbGxzL21zaS9hcHBzZWFyY2guYywgZGxscy9tc2kvZGlhbG9nLmMsCisJICBkbGxzL21zaS9mb3JtYXQuYywgZGxscy9tc3ZjcnQvZGlyLmMsIGRsbHMvbXN2aWRlby9tc3ZpZGVvMTYuYywKKwkgIGRsbHMvb3BlbmdsMzIvd2dsLmMsIGRsbHMvcXVhcnR6L2Rzb3VuZHJlbmRlci5jLAorCSAgZGxscy9xdWFydHovcGFyc2VyLmMsIGRsbHMvcXVhcnR6L3RyYW5zZm9ybS5jLAorCSAgZGxscy9xdWFydHovdmlkZW9yZW5kZXJlci5jLCBkbGxzL3F1YXJ0ei93YXZlcGFyc2VyLmMsCisJICBkbGxzL3NldHVwYXBpL2Rldmluc3QuYywgZGxscy9zZXR1cGFwaS9zZXR1cGNhYi5jLAorCSAgZGxscy90YXBpMzIvYXNzaXN0ZWQuYywgZGxscy93aW5lcHMvYWZtMmMuYywgZGxscy93aW5zb2NrL3NvY2tldC5jLAorCSAgcHJvZ3JhbXMvbXNpZXhlYy9tc2lleGVjLmMsIHByb2dyYW1zL3JlZ2VkaXQvcmVncHJvYy5jLAorCSAgcHJvZ3JhbXMvd2luZWNmZy9kcml2ZS5jLCBwcm9ncmFtcy93aW5lZGJnL21lbW9yeS5jLAorCSAgcHJvZ3JhbXMvd2luZW1pbmUvbWFpbi5jLCB3aW5kb3dzL3NweS5jOgorCVBldGVyIEJlcmcgTGFyc2VuIDxwZWJsQG1hdGgua3UuZGs+CisJSmFuaXRvcmlhbDogR2V0IHJpZCBvZiBzdHJuY3B5L3N0cm5jcHlXLgorCisJKiBkbGxzL3gxMWRydi9iaXRtYXAuYywgZGxscy94MTFkcnYvY2xpcGJvYXJkLmMsIGRsbHMveDExZHJ2L2RpYi5jLAorCSAgZGxscy94MTFkcnYveDExZHJ2Lmg6CisJTWVyZ2VkIFgxMURSVl9CSVRNQVBfQ3JlYXRlQml0bWFwSGVhZGVyRnJvbVBpeG1hcCBpbnRvCisJWDExRFJWX0RJQl9DcmVhdGVESUJGcm9tUGl4bWFwIGFuZCBzaW1wbGlmaWVkIHRoZSBjb2RlIGEgYml0LgorCisJKiBkbGxzL2tlcm5lbC9zeW5jLmMsIGRsbHMva2VybmVsL3Rlc3RzL21haWxzbG90LmMsIGRsbHMvbnRkbGwvZmlsZS5jLAorCSAgZGxscy9udGRsbC9udC5jLCBpbmNsdWRlL3dpbnRlcm5sLmg6CisJTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCUltcGxlbWVudCBDcmVhdGVNYWlsc2xvdCB1c2luZyBOdENyZWF0ZU1haWxzbG90RmlsZS4KKworCSogZGxscy9vbGUzMi9jb21wb3NpdGVtb25pa2VyLmM6IE1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlSZW1vdmUgZnVuY3Rpb24gcHJvdG90eXBlcywgbWFrZSBmdW5jdGlvbnMgc3RhdGljLgorCisJKiBwcm9ncmFtcy93Y21kL2JhdGNoLmM6IFZpbmNlbnQgQulyb24gPHZiZXJvbkBtZWNhbm8uZ21lLnVzaGVyYi5jYT4KKwlOYXRpdmUgd2NtZC5leGUgYWNjZXB0cyBDQUxMcyB0byAuZXhlIGZpbGVzLgorCisJKiB0b29scy93aWRsL3dpZGx0eXBlcy5oOiBWaW5jZW50IELpcm9uIDx2YmVyb25AbWVjYW5vLmdtZS51c2hlcmIuY2E+CisJS2VlcCB0eXBlcyBzb3J0ZWQgaW4gYWxwaGFiZXRpY2FsIG9yZGVyLgorCisJKiB0b29scy93aWRsL3BhcnNlci5sLCB0b29scy93aWRsL3BhcnNlci55OgorCVZpbmNlbnQgQulyb24gPHZiZXJvbkBtZWNhbm8uZ21lLnVzaGVyYi5jYT4KKwlBZGQgc3VwcG9ydCBmb3Igc2luZ2xlIGluIGlkbCBmaWxlcy4KKworCSogZGxscy9hZHZhcGkzMi90ZXN0cy9zZWN1cml0eS5jOgorCVN0ZWZhbiBMZWljaHRlciA8U3RlZmFuLkxlaWNodGVyQGNhbUxpbmUuY29tPgorCUFkZGVkIGEgdGVzdCBmb3IgR2V0RmlsZVNlY3VyaXR5QS4KKworCSogZGxscy9vbGVhdXQzMi90bWFyc2hhbC5jOiBNYXJjdXMgTWVpc3NuZXIgPG1laXNzbmVyQHN1c2UuZGU+CisJRml4ZWQgcHB2T2JqZWN0IHNlcmlhbGl6ZXIgKGRlcmVmIHR3aWNlIGluc3RlYWQgb2Ygb25jZSkuCisJQWN0dWFsbHkgcGFzcyBiYWNrIHJldHVybiB2YWx1ZSBvZiByZW1vdGUgY2FsbCBpbiB0eXBlIG1hcnNoYWxsZXIuCisKKwkqIGRsbHMva2VybmVsL3Rlc3RzL3RpbWUuYzogSmFrb2IgRXJpa3Nzb24gPGpha292QHZtbGludXgub3JnPgorCVJlbW92ZSB0ZXN0cyB0aGF0IGZhaWwgYmFkbHkgb24gV2luZG93cyA5OC4KKworCSogZGxscy9udGRsbC90ZXN0cy9lcnJvci5jOiBTYXVsaXVzIEtyYXN1Y2thcyA8c2F1bGl1czJAYXIuZmkubHQ+CisJRml4IGFuIGVycm9yIGNvZGUgZm9yIE1FLgorCisJKiBpbmNsdWRlL2F4ZXh0ZW5kLmlkbDogVmxhZGR5IEltcGFsZXIgPHZsYWRkeUB1dGNoYXQuY29tPgorCURlZmluZSB0aGUgSUFNU3RyZWFtQ29uZmlnIGludGVyZmFjZS4KKworCSogY29uZmlndXJlLCBjb25maWd1cmUuYWM6IEphY2VrIENhYmFuIDxqYWNrQGl0bWEucHdyLndyb2MucGw+CisJQWRkZWQgY2hlY2tpbmcgZm9yIGFydHNjIGxpYnJhcnkuCisKKzIwMDUtMDMtMjcgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGRsbHMveDExZHJ2L2JpdG1hcC5jLCBkbGxzL3gxMWRydi9icnVzaC5jLCBkbGxzL3gxMWRydi9kaWIuYywKKwkgIGRsbHMveDExZHJ2L3dpbmRvdy5jLCBkbGxzL3gxMWRydi94MTFkZHJhdy5jLCBkbGxzL3gxMWRydi94MTFkcnYuaDoKKwlBZGRlZCBYMTFEUlZfZ2V0X3BpeG1hcCBhbmQgWDExRFJWX3NldF9waXhtYXAgZnVuY3Rpb25zIHRvIGF2b2lkCisJZGlyZWN0IGFjY2Vzc2VzIHRvIHRoZSBwaHlzQml0bWFwIGZpZWxkIG9mIHRoZSBiaXRtYXAgc3RydWN0dXJlLgorCisJKiBkbGxzL29sZTMyL2JpbmRjdHguYzogTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCVJlbW92ZSBmdW5jdGlvbiBwcm90b3R5cGVzLCBtYWtlIGZ1bmN0aW9ucyBzdGF0aWMuCisKKwkqIGRsbHMvb2xlYXV0MzIvdG1hcnNoYWwuYzogTWlrZSBIZWFybiA8bWlrZUBuYXZpLmN4PgorCUZpeCBCU1RSIHRyYWNpbmcgaW4gdGhlIHR5cGVsaWIgbWFyc2hhbGxlci4KKworCSogZGxscy9nZGkvZ2RpX3ByaXZhdGUuaCwgZGxscy94MTFkcnYvYml0bWFwLmMsIGRsbHMveDExZHJ2L2luaXQuYywKKwkgIGRsbHMveDExZHJ2L3gxMWRydi5oLCBpbmNsdWRlL2dkaS5oOgorCVN0b3JlIHRoZSBoYW5kbGUgdG8gdGhlIHN0b2NrIGJpdG1hcCB3aGVuIHRoZSBmaXJzdCBEQyBpcyBjcmVhdGVkIHRvCisJYXZvaWQgZXhwb3J0aW5nIHRoZSBERUZBVUxUX0JJVE1BUCBkZWZpbmUuCisKKwkqIGRsbHMvb2xlYXV0MzIvdG1hcnNoYWwuYzogTWFyY3VzIE1laXNzbmVyIDxtZWlzc25lckBzdXNlLmRlPgorCUZvcm1hdCBWVF9VSTEsIFZUX0kxLCBWVF9VSTIsIFZUX0kyIGNvcnJlY3RseS4KKworCSogZGxscy9vbGUzMi9kYXRhY2FjaGUuYzogTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCVJlbW92ZSB1bm5lY2Vzc2FyeSBmdW5jdGlvbiBwcm90b3R5cGVzLgorCisJKiBkbGxzL29sZTMyL2FudGltb25pa2VyLmM6IE1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlSZW1vdmUgZnVuY3Rpb24gcHJvdG90eXBlcywgbWFrZSBmdW5jdGlvbnMgc3RhdGljLgorCisJKiBkbGxzL3gxMWRydi9kY2UuYywgZGxscy94MTFkcnYvaW5pdC5jLCBkbGxzL3gxMWRydi94MTFkcnYuaDoKKwlTdG9yZSB0aGUgRENFIHBvaW50ZXIgaW4gdGhlIERDIHBoeXNEZXYgc3RydWN0dXJlIHVzaW5nIGFuIHgxMWRydiBHREkKKwllc2NhcGUuCisKKwkqIGRsbHMvc2hlbGwzMi9zaGVsbGxpbmsuYzogTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCVVzZSBhcGkgZGVmaW5pdGlvbnMsIHJlbW92ZSBkdXBsaWNhdGUgY29kZS4KKworCSogZGxscy9zZXR1cGFwaS9zdHVicy5jOiBIYW5zIExlaWRla2tlciA8aGFuc0BpdC52dS5ubD4KKwlSZW1vdmUgc3RyYXkgOGJpdCBjaGFyYWN0ZXIuCisKKwkqIGRsbHMvd2lubW0vd2luZWFsc2EvYXVkaW8uYzoKKwlKZXJyeSBKZW5raW5zIDxqZXJyeV9qX2plbmtpbnNAeWFob28uY29tPgorCURvbid0IG1pc3Rha2UgZnJhbWVzIGZvciBieXRlcy4KKworCSogZGxscy9jb21jdGwzMi9yZWJhci5jOiBSb2JlcnQgU2hlYXJtYW4gPHJvYkBjb2Rld2VhdmVycy5jb20+CisJRml4IHNpemUgcGFzc2VkIHRvIFNQSV9OT05DTElFTlRNRVRSSUNTLgorCisJKiBkbGxzL29sZWF1dDMyL3RtYXJzaGFsLmM6IE1hcmN1cyBNZWlzc25lciA8bWVpc3NuZXJAc3VzZS5kZT4KKwlBZGRlZCBJRGlzcGF0Y2g6OkdldElEc09mTmFtZXMoKSBzcGVjaWFsIGNhc2Ugc2VyaWFsaXppbmcuCisJSGFuZGxlIFZUX1BUUiAvIE5VTEwgbWFyc2hhbGxpbmcgY29ycmVjdGx5LgorCisJKiB3aW5kb3dzL25vbmNsaWVudC5jLCB3aW5kb3dzL3dpbnBvcy5jOgorCVVscmljaCBDemVrYWxsYSA8dWxyaWNoQGNvZGV3ZWF2ZXJzLmNvbT4KKwlXaGVuIGNvbXB1dGluZyBub25jbGllbnQgYXJlYSB0YWtlIGludG8gY29uc2lkZXJhdGlvbiB0aGF0IGEgY2hpbGQKKwl3aW5kb3dzIHdpdGggdGhlIFdTX1BPUFVQIHN0eWxlIGNhbiBoYXZlIGEgbWVudSBiYXIuCisKKzIwMDUtMDMtMjUgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGRsbHMvZ2RpL2RjLmMsIGRsbHMvZ2RpL2dkaV9wcml2YXRlLmgsIGRsbHMvZ2RpL2dkaW9iai5jLAorCSAgaW5jbHVkZS9nZGkuaDoKKwlFeHBsaWNpdGx5IHN0b3JlIHRoZSBzdGFjayBvZiBzYXZlZCBEQ3MgaW4gdGhlIERDIHN0cnVjdHVyZSBpbnN0ZWFkIG9mCisJdXNpbmcgdGhlIDE2LWJpdCBoTmV4dCBmaWVsZCBpbiB0aGUgb2JqZWN0IGhlYWRlci4KKworCSogZGxscy9nZGkvY2xpcHBpbmcuYywgZGxscy9nZGkvZGMuYywgZGxscy9nZGkvZ2RpX3ByaXZhdGUuaDoKKwlNYWludGFpbiB0aGUgc3RhY2sgb2Ygc2F2ZWQgdmlzIHJlZ2lvbnMgaW4gdGhlIERDIHN0cnVjdHVyZSBpbnN0ZWFkIG9mCisJc3RvcmluZyBpdCBkaXJlY3RseSBpbiB0aGUgcmVnaW9uIG9iamVjdHMuCisKKwkqIGRsbHMvY29tY3RsMzIvYW5pbWF0ZS5jLCBkbGxzL2NvbWN0bDMyL2NvbW1jdHJsLmMsCisJICBkbGxzL2NvbWN0bDMyL2ltYWdlbGlzdC5jLCBkbGxzL2NvbWN0bDMyL2xpc3R2aWV3LmMsCisJICBkbGxzL2NvbWN0bDMyL3Byb3BzaGVldC5jLCBkbGxzL2NvbWN0bDMyL3N5c2xpbmsuYywKKwkgIGRsbHMvY29tY3RsMzIvdG9vbGJhci5jOgorCURpbWl0cmllIE8uIFBhdW4gPGRwYXVuQHJvZ2Vycy5jb20+CisJVXNlIHtBbGxvYyxSZUFsbG9jLEZyZWV9KCkgaW5zdGVhZCBvZiBIZWFwe0FsbG9jLFJlQWxsb2MsRnJlZX0oKS4KKworCSogZGxscy9zaGVsbDMyL3Rlc3RzL3NobGZpbGVvcC5jOiBQYXVsIFZyaWVucyA8UGF1bC5WcmllbnNAeHM0YWxsLm5sPgorCVByaW50IHJldHZhbCBpbiBkZWNpbWFsIHRvIGF2b2lkIGNvbmZ1c2lvbi4KKwlOVDQgZmFpbHMgd2l0aCBFUlJPUl9JTlZBTElEX1RBUkdFVF9IQU5ETEUgaW5zdGVhZCBvZgorCUVSUk9SX1JFRElSX1BBVVNFRC4KKwlVc2Ugc29tZSBjb3JyZWN0IG1lc3NhZ2VzIG9uIGVycm9yLgorCUV4dHJhIHRyYWNpbmcuCisKKwkqIGRsbHMvdXNlci9tZW51LmMsIGRsbHMvdXNlci90ZXN0cy93aW4uYzoKKwlVbHJpY2ggQ3pla2FsbGEgPHVscmljaEBjb2Rld2VhdmVycy5jb20+CisJQ2hpbGQgd2luZG93cyB3aXRoIHRoZSBXU19QT1BVUCBzdHlsZSBhcmUgYWxsb3dlZCB0byBoYXZlIGEgbWVudS4KKworCSogZGxscy91dWlkL3V1aWQuYywgaW5jbHVkZS8uY3ZzaWdub3JlLCBpbmNsdWRlL01ha2VmaWxlLmluLAorCSAgaW5jbHVkZS9tc2h0bWhzdC5pZGw6CisJSmFjZWsgQ2FiYW4gPGphY2tAaXRtYS5wd3Iud3JvYy5wbD4KKwlBZGRlZCBtc2h0bWhzdC5pZGwuCisKKwkqIHByb2dyYW1zL3dpbmV0ZXN0L21haW4uYzogRmVyZW5jIFdhZ25lciA8d2ZlcmlAdGJhLmVsdGUuaHU+CisJQ2hlY2sgZGVza3RvcCB2aXNpYmlsaXR5IGFmdGVyIHByb2Nlc3NpbmcgY29tbWFuZCBsaW5lIGFyZ3VtZW50cy4KKworCSogZGxscy91c2VyL3Rlc3RzL21zZy5jLCBkbGxzL3VzZXIvdGVzdHMvd2luLmMsIGRsbHMveDExZHJ2L3Njcm9sbC5jLAorCSAgd2luZG93cy9zY3JvbGwuYzoKKwlSZWluIEtsYXplcyA8d2lqbkB3YW5hZG9vLm5sPgorCVNjcm9sbERDIGFuZCBYMTFEUlZfU0NST0xMREMgc2hvdWxkIHNjcm9sbCBvbmx5IHBpeGVscyBjb21pbmcgZnJvbQorCXdpdGhpbiB0aGUgdmlzaWJsZSByZWdpb24sIGNsaXBwZWQgdG8gdGhlIGNsaXBwaW5nIHJlZ2lvbiBpZiB0aGF0CisJZXhpc3RzLiBBZGQgdGhlIGRlc3RpbmF0aW9uIG9mIHBpeGVscyBjb21pbmcgZnJvbSB0aGUgb3V0c2lkZSBvZiB0aGlzCisJcmVnaW9uIHRvIHRoZSB1cGRhdGUgcmVnaW9uLiBXaXRoIHRlc3RzIHRoYXQgZGVwZW5kIG9uIHRoaXMuCisKKwkqIGRsbHMvdXNlci9NYWtlZmlsZS5pbiwgZGxscy91c2VyL3BhaW50aW5nLmMsIGRsbHMvdXNlci91c2VyMTYuYywKKwkgIGRsbHMvdXNlci91c2VyMzIuc3BlYywgZGxscy91c2VyL3VzZXJfbWFpbi5jLAorCSAgZGxscy91c2VyL3VzZXJfcHJpdmF0ZS5oLCBkbGxzL3gxMWRydi9NYWtlZmlsZS5pbiwgZGxscy94MTFkcnYvZGNlLmMsCisJICBkbGxzL3gxMWRydi93aW5kb3cuYywgZGxscy94MTFkcnYvd2lucG9zLmMsIGRsbHMveDExZHJ2L3gxMWRydi5oLAorCSAgZGxscy94MTFkcnYveDExZHJ2LnNwZWMsIGluY2x1ZGUvZGNlLmgsIGluY2x1ZGUvd2luLmgsCisJICB3aW5kb3dzL2NsYXNzLmMsIHdpbmRvd3MvZGNlLmMsIHdpbmRvd3Mvbm9uY2xpZW50LmMsIHdpbmRvd3Mvd2luLmM6CisJTW92ZWQgRENFIHN1cHBvcnQgdG8gdGhlIFgxMSBkcml2ZXIuCisKKwkqIGRsbHMva2VybmVsL3ZpcnR1YWwuYzogTWlrZSBIZWFybiA8bWlrZUBuYXZpLmN4PgorCURvbid0IGZhdWx0IG9uIE5VTEwgcG9pbnRlcnMgaW4gSXMqUHRyIGZ1bmN0aW9ucy4KKworCSogZGxscy9vbGVhdXQzMi90bWFyc2hhbC5jOiBNaWtlIEhlYXJuIDxtaWtlQG5hdmkuY3g+CisJRml4IFBBUkFNRkxBR19GT1VUIHR5cG8gaW4gdGhlIHRtYXJzaGFsbGVyLgorCisJKiBkbGxzL21zaS9tc2kuYywgZGxscy9tc2kvcmVjb3JkLmM6CisJTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCVVzZSBzdHJkdXAsIGltcGxlbWVudCBNc2lEYXRhYmFzZUltcG9ydEEuCisKKwkqIGRsbHMvdXNlci9tZW51LmM6IFVscmljaCBDemVrYWxsYSA8dWxyaWNoQGNvZGV3ZWF2ZXJzLmNvbT4KKwlEb24ndCBtYXAgcG9pbnQgdG8gcGFyZW50J3MgY2xpZW50IHdpbmRvdyBiZWNhdXNlIHRoZSByZXN0IG9mIHRoZSBjb2RlCisJYXNzdW1lcyBzY3JlZW4gY29vcmRpbmF0ZXMuCisKKwkqIGRsbHMvdXNlci91c2VyMzIuc3BlYywgZGxscy94MTFkcnYvd2luZG93LmMsIGluY2x1ZGUvd2luLmgsCisJICBpbmNsdWRlL3dpbmUvc2VydmVyX3Byb3RvY29sLmgsIHNlcnZlci9wcm90b2NvbC5kZWYsCisJICBzZXJ2ZXIvcmVxdWVzdC5oLCBzZXJ2ZXIvdHJhY2UuYywgc2VydmVyL3dpbmRvdy5jLCB3aW5kb3dzL3dpbi5jOgorCVJlcGxhY2UgdGhlIGxpbmtfd2luZG93IHJlcXVlc3QgYnkgYSBzZXRfcGFyZW50IHJlcXVlc3Qgc2luY2UgdGhhdCBpcworCWFsbCBsaW5rX3dpbmRvdyBpcyB1c2VkIGZvciBhdCB0aGlzIHBvaW50LgorCUdldCByaWQgb2YgdGhlIFdJTl9MaW5rV2luZG93L1VubGlua1dpbmRvdyBmdW5jdGlvbnMuCisKKwkqIGRsbHMvY29tY3RsMzIvdXBkb3duLmM6IERpbWl0cmllIE8uIFBhdW4gPGRwYXVuQHJvZ2Vycy5jb20+CisJUHJvcGVyIGhhbmRsaW5nIGZvciBHV0xfU1RZTEUuCisJTWlub3IgY2xlYW51cHMuCisKKwkqIGRsbHMvY29tY3RsMzIvdG9vbGJhci5jOiBEaW1pdHJpZSBPLiBQYXVuIDxkcGF1bkByb2dlcnMuY29tPgorCUZpeCBhIG1lbW9yeSBsZWFrIGluIHRvb2xiYXIuIEF2b2lkIGNhc3RzLgorCisJKiBkbGxzL2FkdmFwaTMyL3Rlc3RzL3JlZ2lzdHJ5LmM6IEphbWVzIEhhd2tpbnMgPHRydWlrZW5AZ21haWwuY29tPgorCVJlcGxhY2UgYSB0cmFjZSB3aXRoIGEgcHJldmlvdXNseSByZW1vdmVkIHRlc3QuCisKKwkqIGRsbHMvY29tY3RsMzIvcHJvcHNoZWV0LmMsIGRsbHMvY29tY3RsMzIvc3lzbGluay5jOgorCURpbWl0cmllIE8uIFBhdW4gPGRwYXVuQHJvZ2Vycy5jb20+CisJSGFuZGxlIHdQYXJhbSBpbiBXTV9QQUlOVCBwcm9wZXJseTogaWYgbm9uLW51bGwsIGl0IGlzIHRoZSBoZGMgd2UgYXJlCisJc3VwcG9zZWQgdG8gdXNlIHRvIGRyYXcgaW50by4KKworCSogZGxscy9jb21jdGwzMi9wYWdlci5jOiBEaW1pdHJpZSBPLiBQYXVuIDxkcGF1bkByb2dlcnMuY29tPgorCUFkZCBSb2JlcnQgU2hlYXJtYW4ncyBleHBsYW5hdGlvbiBhYm91dCBXTV9OQ1BBSU5ULgorCU1vdmUgdGVzdGluZyBjb21tZW50cyBpbiBhIG1vcmUgYXBwcm9wcmlhdGUgcGxhY2UuCisKKwkqIGRsbHMvcXVhcnR6L3Rlc3RzL2ZpbHRlcmdyYXBoLmM6IEpha29iIEVyaWtzc29uIDxqYWtvdkB2bWxpbnV4Lm9yZz4KKwlEb24ndCBydW4gRmlsdGVyR3JhcGggdGVzdHMgaWYgRmlsdGVyR3JhcGggZnVuY3Rpb25hbGl0eSBpcyBub3QKKwlhdmFpbGFibGUuCisKKwkqIGRsbHMva2VybmVsL3Rlc3RzL3RocmVhZC5jOiBKYWtvYiBFcmlrc3NvbiA8amFrb3ZAdm1saW51eC5vcmc+CisJRml4IHRocmVhZCBhZmZpbml0eSB0ZXN0IGZvciBTTVAgbWFjaGluZXMuCisKKwkqIGRsbHMvbmV0YXBpMzIvdGVzdHMvYWNjZXNzLmM6IEpha29iIEVyaWtzc29uIDxqYWtvdkB2bWxpbnV4Lm9yZz4KKwlObyBuZWVkIGNvbnRpbnVpbmcgdGVzdHMgaWYgbm8gTmV0VXNlckdldEluZm8uCisKKzIwMDUtMDMtMjQgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGRsbHMveDExZHJ2L2luaXQuYywgZGxscy94MTFkcnYveHJlbmRlci5jOgorCVRyeSBhIFRydWVDb2xvciB2aXN1YWwgaWYgWHJlbmRlciBmYWlscyB3aXRoIGEgRGlyZWN0Q29sb3Igb25lLgorCisJKiBkbGxzL2NvbWN0bDMyL3Byb3BzaGVldC5jLCBkbGxzL2NvbW1kbGcvZmlsZWRsZy5jLAorCSAgZGxscy9jb21tZGxnL3ByaW50ZGxnLmMsIGRsbHMvY29tbWRsZy9wcmludGRsZzE2LmMsCisJICBkbGxzL2QzZDgvc3VyZmFjZS5jLCBkbGxzL2RkcmF3L2QzZGRldmljZS9tZXNhLmMsCisJICBkbGxzL2RkcmF3L2RzdXJmYWNlL2RpYi5jLCBkbGxzL2RpbnB1dC9kZXZpY2UuYywKKwkgIGRsbHMvZGlucHV0L2RpbnB1dF9tYWluLmMsIGRsbHMvZGlucHV0L21vdXNlLmMsCisJICBkbGxzL2Rtc3R5bGUvY29tbWFuZHRyYWNrLmMsIGRsbHMvZHBsYXl4L2RwbGF5LmMsCisJICBkbGxzL2RwbGF5eC9kcGxheXNwLmMsIGRsbHMvZHBsYXl4L2RwbGF5eF9nbG9iYWwuYywKKwkgIGRsbHMvZHBsYXl4L2RwbG9iYnkuYywgZGxscy9kcGxheXgvbG9iYnlzcC5jLAorCSAgZGxscy9kcGxheXgvbmFtZV9zZXJ2ZXIuYywgZGxscy9nZGkvZW5obWZkcnYvaW5pdC5jLCBkbGxzL2dkaS9mb250LmMsCisJICBkbGxzL2dkaS9nZGkxNi5jLCBkbGxzL2dkaS9tZmRydi9iaXRibHQuYywgZGxscy9nZGkvbWZkcnYvZ3JhcGhpY3MuYywKKwkgIGRsbHMvZ2RpL21mZHJ2L2luaXQuYywgZGxscy9nZGkvcGFsZXR0ZS5jLCBkbGxzL2dkaS9wYXRoLmMsCisJICBkbGxzL2ltYWdlaGxwL2FjY2Vzcy5jLCBkbGxzL2ltbTMyL2ltbS5jLCBkbGxzL2lwaGxwYXBpL2lmZW51bS5jLAorCSAgZGxscy9pcGhscGFwaS9pcGhscGFwaV9tYWluLmMsIGRsbHMvaXBobHBhcGkvaXBzdGF0cy5jLAorCSAgZGxscy9rZXJuZWwvY29tbS5jLCBkbGxzL2tlcm5lbC9mb3JtYXRfbXNnLmMsIGRsbHMva2VybmVsL2hlYXAuYywKKwkgIGRsbHMva2VybmVsL2xvY2FsMTYuYywgZGxscy9rZXJuZWwvbmVfc2VnbWVudC5jLAorCSAgZGxscy9rZXJuZWwvcmVzb3VyY2UxNi5jLCBkbGxzL2tlcm5lbC90b29saGVscC5jLAorCSAgZGxscy9semV4cGFuZC9semV4cGFuZF9tYWluLmMsIGRsbHMvbWFwaTMyL3V0aWwuYywgZGxscy9tcHIvd25ldC5jLAorCSAgZGxscy9tc2FjbS9pbnRlcm5hbC5jLCBkbGxzL21zY21zL3Byb2ZpbGUuYywgZGxscy9tc2Rtby9kbW9yZWcuYywKKwkgIGRsbHMvbXNpL2FjdGlvbi5jLCBkbGxzL21zaS9jdXN0b20uYywgZGxscy9tc3ZjcnQvcHJvY2Vzcy5jLAorCSAgZGxscy9tc3ZpZGVvL21zdmlkZW9fbWFpbi5jLCBkbGxzL25ldGFwaTMyL25iY21kcXVldWUuYywKKwkgIGRsbHMvbmV0YXBpMzIvbmJuYW1lY2FjaGUuYywgZGxscy9uZXRhcGkzMi9uYnQuYywKKwkgIGRsbHMvbmV0YXBpMzIvbmV0Ymlvcy5jLCBkbGxzL29sZWF1dDMyL29sZWF1dC5jLAorCSAgZGxscy9vbGVhdXQzMi9vbGVwaWN0dXJlLmMsIGRsbHMvb2xlYXV0MzIvdHlwZWxpYi5jLAorCSAgZGxscy9vbGVkbGcvaW5zb2JqZGxnLmMsIGRsbHMvcXVhcnR6L2ZpbHRlcmdyYXBoLmMsCisJICBkbGxzL3JpY2hlZDIwL2VkaXRvci5oLCBkbGxzL3JwY3J0NC9ycGNydDRfbWFpbi5jLAorCSAgZGxscy9yc2FlbmgvaGFuZGxlLmMsIGRsbHMvcnNhZW5oL2ltcGxnbHVlLmMsIGRsbHMvcnNhZW5oL3JzYWVuaC5jLAorCSAgZGxscy9zZWN1cjMyL3NlY3VyMzIuYywgZGxscy9zZXR1cGFwaS9kZXZpbnN0LmMsCisJICBkbGxzL3NldHVwYXBpL2Rpc2tzcGFjZS5jLCBkbGxzL3NoZWxsMzIvc2hlbGxsaW5rLmMsCisJICBkbGxzL3NobHdhcGkvaXN0cmVhbS5jLCBkbGxzL3NobHdhcGkvcmVnLmMsIGRsbHMvc2hsd2FwaS9yZWdzdHJlYW0uYywKKwkgIGRsbHMvc2hsd2FwaS9zdHJpbmcuYywgZGxscy9zaGx3YXBpL3VybC5jLCBkbGxzL3R0eWRydi9wYWxldHRlLmMsCisJICBkbGxzL3VzZXIvZGRlL21pc2MuYywgZGxscy91c2VyL2V4dGljb24uYywgZGxscy91c2VyL2xpc3Rib3guYywKKwkgIGRsbHMvdXNlci9sc3RyLmMsIGRsbHMvdm5idC52eGQvdm5idC5jLCBkbGxzL3dpbmFzcGkvd2luYXNwaTMyLmMsCisJICBkbGxzL3dpbmVkM2Qvc3VyZmFjZS5jLCBkbGxzL3dpbmVwcy9nbHlwaGxpc3QuYywgZGxscy93aW5lcHMvaW5pdC5jLAorCSAgZGxscy93aW5lcHMvcHMuYywgZGxscy93aW5pbmV0L2ludGVybmV0LmMsIGRsbHMvd2luaW5ldC91cmxjYWNoZS5jLAorCSAgZGxscy93aW5tbS9tY2lzZXEvbWNpbWlkaS5jLCBkbGxzL3dpbm1tL3dpbmVhbHNhL2F1ZGlvLmMsCisJICBkbGxzL3dpbm1tL3dpbmVhbHNhL21pZGkuYywgZGxscy93aW5tbS93aW5lYXVkaW9pby9hdWRpby5jLAorCSAgZGxscy93aW5tbS93aW5lb3NzL2RzY2FwdHVyZS5jLCBkbGxzL3dpbm1tL3dpbmVvc3MvZHNyZW5kZXIuYywKKwkgIGRsbHMvd2lubW0vd2lubW0uYywgZGxscy93aW5zb2NrL3NvY2tldC5jLCBkbGxzL3gxMWRydi9iaXRibHQuYywKKwkgIGRsbHMveDExZHJ2L2NsaXBib2FyZC5jLCBkbGxzL3gxMWRydi9kaWIuYywgZGxscy94MTFkcnYvcGFsZXR0ZS5jLAorCSAgZGxscy94MTFkcnYveGRuZC5jLCBkbGxzL3gxMWRydi94Zm9udC5jLCB3aW5kb3dzL3dpbnByb2MuYzoKKwlKYWtvYiBFcmlrc3NvbiA8amFrb3ZAdm1saW51eC5vcmc+CisJR2V0IHJpZCBvZiBIZWFwQWxsb2MgY2FzdHMuCisKKwkqIGRsbHMvdHR5ZHJ2L3duZC5jLCBkbGxzL3VzZXIvdXNlcjMyLnNwZWMsIGRsbHMveDExZHJ2L2V2ZW50LmMsCisJICBkbGxzL3gxMWRydi93aW5wb3MuYywgd2luZG93cy93aW5wb3MuYzoKKwlBdm9pZCBjYWxsaW5nIFdJTl9MaXN0Q2hpbGRyZW4gZnJvbSB0aGUgZ3JhcGhpY3MgZHJpdmVycy4KKworCSogc2VydmVyL3F1ZXVlLmMsIHdpbmRvd3Mvbm9uY2xpZW50LmMsIHdpbmRvd3Mvc3B5LmM6CisJQWRkZWQgc3VwcG9ydCBmb3IgeGJ1dHRvbnMuCisKKwkqIGRsbHMvdXNlci9tZXNzYWdlLmMsIGRsbHMveDExZHJ2L21vdXNlLmMsIGluY2x1ZGUvd2ludXNlci5oOgorCUtldmluIEtvbHR6YXUgPGtldmluQHBsb3Aub3JnPgorCUFkZGVkIGZ1bGwgc3VwcG9ydCBmb3IgeGJ1dHRvbnMgKHNpZGUgbW91c2UgYnV0dG9ucykuCisKKwkqIGRsbHMva2VybmVsL3Rlc3RzL3BpcGUuYzoKKwlUYWtlIGludG8gYWNjb3VudCB0aGUgbW9yZSBjb3JyZWN0IGJlaGF2aW9yIG9mIHJlY2VudCBMaW51eCBrZXJuZWxzLgorCisJKiBkbGxzL21zaS9tc2kuYywgZGxscy9tc2kvbXNpcXVlcnkuYywgZGxscy9tc2kvcGFja2FnZS5jLAorCSAgZGxscy9tc2kvcHJldmlldy5jOgorCU1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlSZXBsYWNlIGluc3RhbmNlcyBvZiBIZWFwQWxsb2MvTXVsdGlCeXRlVG9XaWRlQ2hhciB3aXRoIHRoZSBpbnRlcm5hbGx5CisJZGVmaW5lZCBzdHJkdXBBdG9XLgorCisJKiBkbGxzL21zaS9hY3Rpb24uYzogQXJpYyBTdGV3YXJ0IDxhcmljQGNvZGV3ZWF2ZXJzLmNvbT4KKwlJZiBydW5uaW5nIGluIFVJIG1vZGUsIHRoZW4gZGlzcGxheSB0aGUgVUkgbW9kZSBkaWFsb2dzIGF0IHRoZSBlbmQgb2YKKwl0aGUgaW5zdGFsbHMuCisKKwkqIGRsbHMvb2xlYXV0MzIvdmFydHlwZS5jOgorCUFsZXggVmlsbGFj7XMgTGFzc28gPGFfdmlsbGFjaXNAcGFsb3NhbnRvLmNvbT4KKwlBZnRlciBGbG9hdC0+c3RyaW5nIGNvbnZlcnNpb24gdmlhIHNwcmludGZXKCksIFZhckRlY0Zyb21SWzR8OF0gaXMKKwlmb3JjZWQgdG8gdXNlIFVTIGxvY2FsZSBmb3Igc3RyaW5nLT5EZWNpbWFsIGNvbnZlcnNpb24sIHRvIGFncmVlIHdpdGgKKwlzcHJpbnRmVygpLgorCisJKiBkbGxzL2FkdmFwaTMyL3Rlc3RzL3JlZ2lzdHJ5LmM6IEpha29iIEVyaWtzc29uIDxqYWtvdkB2bWxpbnV4Lm9yZz4KKwlGaXggc29tZSBXaW5kb3dzIDk1IGlzc3Vlcy4KKworCSogZGxscy90dHlkcnYvd25kLmMsIGRsbHMvdXNlci9tZW51LmMsIGRsbHMvdXNlci9tZXNzYWdlLmMsCisJICBkbGxzL3VzZXIvbXNnMTYuYywgZGxscy91c2VyL3BhaW50aW5nLmMsIGRsbHMvdXNlci9zY3JvbGwuYywKKwkgIGRsbHMveDExZHJ2L2Rlc2t0b3AuYywgZGxscy94MTFkcnYvd2lucG9zLmMsIGluY2x1ZGUvd2luLmgsCisJICB3aW5kb3dzL2NsYXNzLmMsIHdpbmRvd3MvZGNlLmMsIHdpbmRvd3MvZGVmZGxnLmMsIHdpbmRvd3MvZGlhbG9nLmMsCisJICB3aW5kb3dzL21kaS5jLCB3aW5kb3dzL25vbmNsaWVudC5jLCB3aW5kb3dzL3dpbi5jLCB3aW5kb3dzL3dpbnBvcy5jOgorCURvbid0IG1haW50YWluIGEgY2xpZW50LXNpZGUgV05EIHN0cnVjdHVyZSBmb3IgdGhlIGRlc2t0b3Agd2luZG93LgorCU1hZGUgV0lOX0dldFB0ciByZXR1cm4gV05EX0RFU0tUT1AgaW4gdGhhdCBjYXNlLgorCisJKiBkbGxzL21zaS9kaWFsb2cuYzogTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCU1ha2Ugc3VyZSB0aGVyZSdzIG9ubHkgb25lIHBsYWNlIHdlIGFsbG9jYXRlIGRpYWxvZyBjb250cm9scy4KKworCSogZGxscy9tc2kvcmVnaXN0cnkuYzogTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCUNsZWFuIHVwIHJlZ2lzdHJ5IGZ1bmN0aW9ucy4KKworCSogZGxscy9yaWNoZWQyMC93cml0ZXIuYzogUGhpbCBLcnlsb3YgPHBoaWxAbmV3c3Rhci5yaW5ldC5ydT4KKwlGaXhlZCBcdSBrZXl3b3JkIHRvIG91dHB1dCBzaWduZWQgMTYtYml0IHZhbHVlcy4gQWxzbyBmaXhlZCBDUF9TWU1CT0wKKwljb252ZXJzaW9uIGFuZCB0aGUgZGV0ZWN0aW9uIG9mIHRoZSBkZWZhdWx0IGZvbnQncyBjb2RlcGFnZS4KKworCSogZGxscy93dHNhcGkzMi93dHNhcGkzMi5jOiBIYW5zIExlaWRla2tlciA8aGFuc0BpdC52dS5ubD4KKwlQcmV0ZW5kIHRoZXJlIGFyZSAwIHRlcm1pbmFsIHNlcnZlciBzZXNzaW9ucyBhbmQgcHJvY2Vzc2VzLgorCisJKiBkbGxzL250ZGxsL3JlbGF5LmM6IFJlaW4gS2xhemVzIDx3aWpuQHdhbmFkb28ubmw+CisJU3VwcG9ydCByZWxheSB0cmFjaW5nIG9mIGZ1bmN0aW9ucyB3aXRoIDE4IGFyZ3VtZW50cy4KKworCSogZGxscy9kaW5wdXQva2V5Ym9hcmQuYywgZGxscy9kaW5wdXQvbW91c2UuYzoKKwlSYXBoYWVsIEp1bnF1ZWlyYSA8ZmVuaXhAY2x1Yi1pbnRlcm5ldC5mcj4KKwktIHVzZSBXSU5FX0RJTlBVVF9LRVlCT0FSRF9NQVhfS0VZUyBpbnN0ZWFkIGhhcmQtY29kZWQgMjU2IHZhbHVlCisJLSBiZXR0ZXIgdXNlIG9mIGNyaXRpY2FsIHNlY3Rpb24KKwktIHNvbWUgY2xlYW51cCB0byBiZXR0ZXIgdW5kZXJzdGFuZCBjb2RlIHBhdGhzCisJLSBsb2dpYyBjb3JyZWN0aW9uIG9uIFNldFdpbmRvd3NIb29rRXhBL1VuaG9va1dpbmRvd3NIb29rRXggb24KKwkgIGtleWJvYXJkLgorCisJKiB0b29scy93aWRsL3BhcnNlci55OiBKYWNlayBDYWJhbiA8amFja0BpdG1hLnB3ci53cm9jLnBsPgorCUFkZGVkIGhhbmRsaW5nIG9mIHVuc2lnbmVkIHR5cGUuCisKKwkqIGRsbHMvY29tY3RsMzIvaW1hZ2VsaXN0LmM6IEh1dyBEYXZpZXMgPGh1d0Bjb2Rld2VhdmVycy5jb20+CisJVGhlIGRlcHRoIG9mIHRoZSBjb2xvdXIgYml0bWFwIG5lZWRzIHRvIG1hdGNoIHRoYXQgb2YgdGhlIHNjcmVlbi4KKworCSogZGxscy9jb21jdGwzMi9jb21jdGwzMnVuZG9jLmM6IERpbWl0cmllIE8uIFBhdW4gPGRwYXVuQHJvZ2Vycy5jb20+CisJQ29tcGxldGUgdGhlIHVuaWNvZGlmaWNhdGlvbiBvZiBjb21jdGwzMnVuZG9jLgorCisyMDA1LTAzLTIzICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL3VzZXIvaG9vay5jLCBkbGxzL3VzZXIvbWVzc2FnZS5jLCBpbmNsdWRlL3dpbi5oLCB3aW5kb3dzL3VzZXIuYywKKwkgIHdpbmRvd3Mvd2luLmMsIHdpbmRvd3Mvd2lucHJvYy5jOgorCUdldCByaWQgb2YgdGhlIHdpbmRvdyBsb2NrIHN1c3BlbmQgbWVjaGFuaXNtLgorCisJKiBkbGxzL2NvbWN0bDMyL2NvbWJvZXguYywgZGxscy9jb21jdGwzMi9oZWFkZXIuYywKKwkgIGRsbHMvY29tY3RsMzIvbGlzdHZpZXcuYywgZGxscy9jb21jdGwzMi9tb250aGNhbC5jLAorCSAgZGxscy9jb21jdGwzMi9yZWJhci5jLCBkbGxzL2NvbWN0bDMyL3RhYi5jLCBkbGxzL2NvbW1kbGcvY29sb3JkbGcuYywKKwkgIGRsbHMvY29tbWRsZy9jb2xvcmRsZzE2LmMsIGRsbHMvY29tbWRsZy9maWxlZGxnLmMsCisJICBkbGxzL2NvbW1kbGcvZmlsZWRsZ2Jyb3dzZXIuYywgZGxscy9kM2Q4L2QzZDhfcHJpdmF0ZS5oLAorCSAgZGxscy9kM2Q4L2RldmljZS5jLCBkbGxzL2QzZDkvc3VyZmFjZS5jLCBkbGxzL2RiZ2hlbHAvZWxmX21vZHVsZS5jLAorCSAgZGxscy9kYmdoZWxwL21pbmlkdW1wLmMsIGRsbHMvZG1iYW5kL2JhbmQuYywKKwkgIGRsbHMvZG1zdHlsZS9zdHlsZXRyYWNrLmMsIGRsbHMvZHBsYXl4L2RwbGF5LmMsCisJICBkbGxzL2RwbGF5eC9kcGxvYmJ5LmMsIGRsbHMvZ2RpL2VuaG1ldGFmaWxlLmMsIGRsbHMva2VybmVsL2luc3RyLmMsCisJICBkbGxzL21hcGkzMi9wcm9wLmMsIGRsbHMvbXNjbXMvcHJvZmlsZS5jLCBkbGxzL21zaS9hcHBzZWFyY2guYywKKwkgIGRsbHMvbXNybGUzMi9tc3JsZTMyLmMsIGRsbHMvbnRkbGwvZmlsZS5jLCBkbGxzL250ZGxsL3NlcnZlci5jLAorCSAgZGxscy9vbGUzMi9lcnJvcmluZm8uYywgZGxscy9vbGUzMi9oZ2xvYmFsc3RyZWFtLmMsCisJICBkbGxzL29sZTMyL21lbWxvY2tieXRlcy5jLCBkbGxzL29sZTMyL21lbWxvY2tieXRlczE2LmMsCisJICBkbGxzL29sZTMyL29sZXByb3h5LmMsIGRsbHMvb2xlMzIvc3RvcmFnZTMyLmgsCisJICBkbGxzL29sZWF1dDMyL3NhZmVhcnJheS5jLCBkbGxzL29sZWF1dDMyL3R5cGVsaWIuYywKKwkgIGRsbHMvc2hlbGwzMi9hdXRvY29tcGxldGUuYywgZGxscy9zaGVsbDMyL2NwYW5lbGZvbGRlci5jLAorCSAgZGxscy9zaGVsbDMyL21lbW9yeXN0cmVhbS5jLCBkbGxzL3NoZWxsMzIvcGlkbC5jLAorCSAgZGxscy9zaGVsbDMyL3NoZWxsZm9sZGVyLmgsIGRsbHMvc2hlbGwzMi9zaGVsbG9sZS5jLAorCSAgZGxscy9zaGVsbDMyL3NoZmxkcl9mcy5jLCBkbGxzL3NoZWxsMzIvc2hmbGRyX215Y29tcC5jLAorCSAgZGxscy9zaGVsbDMyL3NobGV4ZWMuYywgZGxscy9zaGVsbDMyL3NobGZvbGRlci5jLAorCSAgZGxscy9zaGVsbDMyL3NobG1lbnUuYywgZGxscy9zaGVsbDMyL3Nodl9iZ19jbWVudS5jLAorCSAgZGxscy9zaGx3YXBpL29yZGluYWwuYywgZGxscy9zaGx3YXBpL3JlZy5jLCBkbGxzL3VzZXIvZWRpdC5jLAorCSAgZGxscy91c2VyL3Rlc3RzL3N5c3BhcmFtcy5jLCBkbGxzL3dpbmVkM2QvYmFzZXRleHR1cmUuYywKKwkgIGRsbHMvd2luZWQzZC9kZXZpY2UuYywgZGxscy93aW5lZDNkL2RpcmVjdHguYywgZGxscy93aW5lcHMvZXNjYXBlLmMsCisJICBkbGxzL3dpbmluZXQvaHR0cC5jLCBkbGxzL3dpbm1tL3dpbmVhbHNhL21pZGkuYywKKwkgIGRsbHMvd2lubW0vd2luZW9zcy9taWRpLmMsIGRvY3VtZW50YXRpb24vb2xlLnNnbWwsCisJICBkb2N1bWVudGF0aW9uL3dpbmVkZXYta2VybmVsLnNnbWwsIGluY2x1ZGUvb2JqYmFzZS5oLAorCSAgaW5jbHVkZS93aW5udC5oLCBsaWJzL3dpbmUvbG9hZGVyLmMsIHByb2dyYW1zL3dpbmVkYmcvYnJlYWsuYywKKwkgIHRvb2xzL2ZvbnRfY29udmVydC5zaCwgdG9vbHMvd3JjL25ld3N0cnVjLmM6CisJRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGZyZWUuZnI+CisJQXNzb3J0ZWQgc3BlbGxpbmcgZml4ZXMuCisKKwkqIGRsbHMvYWR2YXBpMzIvZXZlbnRsb2cuYzogSGFucyBMZWlkZWtrZXIgPGhhbnNAaXQudnUubmw+CisJUHJldGVuZCB0aGVyZSBhcmUgMCBsb2cgcmVjb3Jkcy4KKwlJbXByb3ZlIHRyYWNlcy4KKworCSogZGxscy94MTFkcnYvY2xpcGJvYXJkLmM6IFJvbiBKZW5zZW4gPGV0ZWNoQGplbnRyb25pY3MuY29tPgorCUF2b2lkIGJhZCB2aXN1YWwgZXJyb3JzIGluIHRocmVhZF9zZWxlY3Rpb25fd25kKCkuCisKKwkqIGRsbHMvdHR5ZHJ2L3duZC5jLCBkbGxzL3VzZXIvdXNlcjMyLnNwZWMsIGRsbHMveDExZHJ2L3dpbnBvcy5jOgorCUdldCByaWQgb2YgdGhlIHJlbWFpbmluZyBXSU5fRmluZFduZFB0ciBjYWxscy4KKworCSogZGxscy9hZHZhcGkzMi90ZXN0cy9yZWdpc3RyeS5jOiBKYW1lcyBIYXdraW5zIDx0cnVpa2VuQGdtYWlsLmNvbT4KKwlBZGQgUmVnU2F2ZUtleSwgUmVnTG9hZEtleSB0ZXN0cy4KKworCSogZGxscy9jb21jdGwzMi90cmVldmlldy5jOgorCUphc29uIEVkbWVhZGVzIDx1c0B0aGUtZWRtZWFkZXMuZGVtb24uY28udWs+CisJTWFrZSB0aGUgdHJlZXZpZXcgY29ycmVjdGx5IHNlYXJjaCB3aGVuIHRoZSB0b3AgaW5kZXggaXMgc2VsZWN0ZWQuCisKKwkqIGRsbHMva2VybmVsL3Rlc3RzL3BpcGUuYzoKKwlBbGV4IFZpbGxhY+1zIExhc3NvIDxhX3ZpbGxhY2lzQHBhbG9zYW50by5jb20+CisJVGVzdCBmb3IgUGVla05hbWVkUGlwZSB3aXRoIHplcm8tbGVuZ3RoIGJ1ZmZlci4KKworCSogZGxscy93aW5tbS93aW5lYWxzYS9hdWRpby5jOiBSb2JlcnQgUmVpZiA8cmVpZkBlYXJ0aGxpbmsubmV0PgorCURvbid0IGZhaWwgd2hlbiBvcGVuaW5nIGEgZGV2aWNlIGluIGRpcmVjdCBzb3VuZCBtb2RlLiBSYXRoZXIsIHRyeQorCWFsdGVybmF0ZSBmb3JtYXRzIGZpcnN0IGJlZm9yZSBmYWlsaW5nLgorCisJKiBkbGxzL250ZGxsL3ZlcnNpb24uYzogQy4gU2NvdHQgQW5hbmlhbiA8Y3Njb3R0QGNzY290dC5uZXQ+CisJVGVhY2ggVkVSU0lPTl9HZXRMaW5rZWRETExWZXJzaW9uIGFib3V0IE1pbmd3MzIgYXBwbGljYXRpb25zLgorCisJKiBkbGxzL3VzZXIvbWVzc2FnZS5jLCBpbmNsdWRlL3dpbmUvc2VydmVyX3Byb3RvY29sLmgsCisJICBzZXJ2ZXIvcHJvdG9jb2wuZGVmLCBzZXJ2ZXIvcXVldWUuYywgc2VydmVyL3JlcXVlc3QuaCwKKwkgIHNlcnZlci90cmFjZS5jOgorCUNyZWF0ZSBhIG5ldyBzZXJ2ZXIgcmVxdWVzdCBmb3IgYWNjZXB0aW5nIGhhcmR3YXJlIG1lc3NhZ2VzIGluc3RlYWQgb2YKKwlhYnVzaW5nIHJlcGx5X21lc3NhZ2UuCisJQWxsb3cgcGFzc2luZyB0aGUgZGV0ZXJtaW5lZCB3aW5kb3cgZm9yIGEgaGFyZHdhcmUgbWVzc2FnZSBiYWNrIHRvIHRoZQorCXNlcnZlciB0byBoYXZlIGl0IHJlZGlzcGF0Y2ggdGhlIG1lc3NhZ2UgdG8gdGhlIGNvcnJlY3QgdGhyZWFkLgorCisJKiBkbGxzL3VzZXIvdGVzdHMvd2luLmMsIGRsbHMveDExZHJ2L3dpbmRvdy5jLCB3aW5kb3dzL3dpbi5jOgorCVJvYmVydCBTaGVhcm1hbiA8cm9iQGNvZGV3ZWF2ZXJzLmNvbT4KKwktIFdpbmRvdyBzdHlsZXMgcGFzc2VkIHRvIENyZWF0ZVdpbmRvd0V4IG11c3QgdGhlIHNhbWUgYXMgcGFzc2VkIGluCisJICBDUkVBVEVTVFJVQ1QgZm9yIFdNX0NSRUFURS9XTV9OQ0NSRUFURS4KKwktIEZpeCBjYXNlcyB3aGVyZSBXU19FWF9XSU5ET1dFREdFIHN0eWxlIGlzIGFwcGxpZWQuCisJLSBUZXN0cyBmb3IgdGhlIGFib3ZlLgorCisJKiBkbGxzL21zaS9tc2kuYywgZGxscy9tc2kvbXNpLnNwZWM6IE1hcmN1cyBNZWlzc25lciA8bWVpc3NuZXJAc3VzZS5kZT4KKwlGaXhlZCBNc2lEYXRhYmFzZUltcG9ydEEsIE1zaURhdGFiYXNlSW1wb3J0VywgYW5kCisJTXNpQ3JlYXRlQW5kVmVyaWZ5SW5zdGFsbGVyRGlyZWN0b3J5IHN0dWIgcGFyYW1ldGVyIGNvdW50cy4KKworCSogZGxscy9jb21jdGwzMi90cmVldmlldy5jOiBEaW1pdHJpZSBPLiBQYXVuIDxkcGF1bkByb2dlcnMuY29tPgorCUNvbXBsZXRlIHVuaWNvZGlmaWNhdGlvbiBvZiB0aGUgdHJlZXZpZXcgY29tbW9uIGNvbnRyb2wuCisKKwkqIGRsbHMvY29tY3RsMzIvdG9vbHRpcHMuYzogRGltaXRyaWUgTy4gUGF1biA8ZHBhdW5Acm9nZXJzLmNvbT4KKwlDb21wbGV0ZSB1bmljb2RpZmljYXRpb24gb2YgdGhlIHRvb2x0aXBzIGNvbW1vbiBjb250cm9sLgorCisJKiBkbGxzL2NvbWN0bDMyL3Rvb2xiYXIuYzogRGltaXRyaWUgTy4gUGF1biA8ZHBhdW5Acm9nZXJzLmNvbT4KKwlDb21wbGV0ZSB1bmljb2RpZmljYXRpb24gb2YgdGhlIHRvb2xiYXIgY29tbW9uIGNvbnRyb2wuCisJTW92ZSBhIGhlYWRlciBjb21tZW50IGZvciBjb25zaXN0ZW5jeSB3aXRoIHRoZSBvdGhlciBjb250cm9scy4KKwlWZXJ5IHNtYWxsIGFsaWdubWVudCBmaXhlcy4KKworCSogZGxscy9jb21jdGwzMi9yZWJhci5jOiBEaW1pdHJpZSBPLiBQYXVuIDxkcGF1bkByb2dlcnMuY29tPgorCUNvbXBsZXRlIHVuaWNvZGlmaWNhdGlvbiBvZiB0aGUgcmViYXIgY29tbW9uIGNvbnRyb2wuCisKKwkqIGRsbHMvY29tY3RsMzIvcHJvcHNoZWV0LmM6IERpbWl0cmllIE8uIFBhdW4gPGRwYXVuQHJvZ2Vycy5jb20+CisJQ29tcGxldGUgdW5pY29kaWZpY2F0aW9uIG9mIHRoZSBwcm9wc2hlZXQgY29tbW9uIGNvbnRyb2wuCisKKwkqIGRsbHMvY29tY3RsMzIvaGVhZGVyLmM6IERpbWl0cmllIE8uIFBhdW4gPGRwYXVuQHJvZ2Vycy5jb20+CisJQ29tcGxldGUgdW5pY29kaWZpY2F0aW9uIG9mIHRoZSBoZWFkZXIgY29tbW9uIGNvbnRyb2wuCisKKwkqIGRsbHMvY29tY3RsMzIvZmxhdHNiLmM6IERpbWl0cmllIE8uIFBhdW4gPGRwYXVuQHJvZ2Vycy5jb20+CisJQ29tcGxldGUgdW5pY29kaWZpY2F0aW9uIG9mIHRoZSBmbGF0c2IgY29tbW9uIGNvbnRyb2wuCisKKwkqIGRsbHMvY29tY3RsMzIvY29tbWN0cmwuYzogRGltaXRyaWUgTy4gUGF1biA8ZHBhdW5Acm9nZXJzLmNvbT4KKwlDb21wbGV0ZSB1bmljb2RpZmljYXRpb24uCisKKwkqIGRsbHMvd2lubW0vd2luZWFsc2EvYXVkaW8uYzogSmVyZW15IFdoaXRlIDxqd2hpdGVAY29kZXdlYXZlcnMuY29tPgorCVJldmFtcCB0aGUgdm9sdW1lIGxvZ2ljIHRvIGJlIG1vcmUgc2VsZiBjb250YWluZWQsIGZpeCBhIGZldyBidWdzIHNvCisJdGhhdCB0aGUgdm9sdW1lIGlzIGNvcnJlY3RseSByZWFkLCBhbmQgaXMgY29ycmVjdGx5IGNvbnZlcnRlZCB0bworCXdpbmRvd3Mgc3R5bGUgdm9sdW1lIG51bWJlcnMuCisKKzIwMDUtMDMtMjIgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGRsbHMvdXNlci9tZXNzYWdlLmM6CisJU2ltcGxpZnkgaGFyZHdhcmUgbWVzc2FnZSBwcm9jZXNzaW5nIGJ5IG1lcmdpbmcgdGhlICJyYXciIGFuZCAiY29va2VkIgorCXByb2Nlc3NpbmcgaW50byBhIHNpbmdsZSBmdW5jdGlvbi4KKworCSogZGxscy94MTFkcnYvZGVza3RvcC5jLCBkbGxzL3gxMWRydi9tb3VzZS5jLCBkbGxzL3gxMWRydi93aW5kb3cuYywKKwkgIGRsbHMveDExZHJ2L3dpbnBvcy5jOgorCUhhbnMgTGVpZGVra2VyIDxoYW5zQGl0LnZ1Lm5sPgorCUZpeCBzb21lIC1Xc2lnbi1jb21wYXJlIGFuZCAtV3VuaW5pdGlhbGl6ZWQgd2FybmluZ3MuCisKKwkqIGRsbHMva2VybmVsL3ZpcnR1YWwuYzogTWlrZSBIZWFybiA8bWlrZUBuYXZpLmN4PgorCUxvZyB0byArc2VoIHdoZW4gYW4gSXNCYWQqIGZ1bmN0aW9uIGZhdWx0cy4KKworCSogZGxscy9zaGVsbDMyL3Rlc3RzL3NobGZpbGVvcC5jOiBKYWtvYiBFcmlrc3NvbiA8amFrb3ZAdm1saW51eC5vcmc+CisJSWYgdGhlIGRldmljZSBnZXRzIGludGVycnVwdGVkLCB3ZSBqdXN0IGdpdmUgdXAuCisKKwkqIGRsbHMvZHNvdW5kL3Rlc3RzL2Rzb3VuZDguYzogSmFrb2IgRXJpa3Nzb24gPGpha292QHZtbGludXgub3JnPgorCVRlc3QgZml4LgorCisJKiB3aW5kb3dzL2N1cnNvcmljb24uYywgd2luZG93cy93aW5wcm9jLmM6CisJRGltaXRyaWUgTy4gUGF1biA8ZHBhdW5Acm9nZXJzLmNvbT4KKwlFbGltaW5hdGUgdXNlbGVzcyBIZWFwQWxsb2MoKSBjYXN0cy4KKworCSogZGxscy9rZXJuZWwvdGVzdHMvZmlsZS5jOgorCUZldGNoIGFnYWluIHRoZSBmaWxlIHRpbWUgdG8gY29tcGFyZSBhZ2FpbnN0IHRvIGF2b2lkIHJvdW5kaW5nIGVycm9ycy4KKworCSogZGxscy9rZXJuZWwvdGVzdHMvcGlwZS5jOiBKYWtvYiBFcmlrc3NvbiA8amFrb3ZAdm1saW51eC5vcmc+CisJQWJvcnQgaWYgd2UgY2FuJ3QgY3JlYXRlIGEgbmFtZWQgcGlwZSBhdCBhbGwuCisKKwkqIGRsbHMvYWR2YXBpMzIvc2VjdXJpdHkuYywgZGxscy9jb21jYXQvaW5mb3JtYXRpb24uYywKKwkgIGRsbHMvY29tY3RsMzIvY29tY3RsMzJ1bmRvYy5jLCBkbGxzL2NvbWN0bDMyL2NvbW1jdHJsLmMsCisJICBkbGxzL29sZTMyL3Rlc3RzL21hcnNoYWwuYywgZGxscy9zaGx3YXBpL3Rlc3RzL3BhdGguYywKKwkgIGRsbHMvd2luaW5ldC90ZXN0cy9odHRwLmM6CisJSmFrb2IgRXJpa3Nzb24gPGpha292QHZtbGludXgub3JnPgorCUVsaW1pbmF0ZSBIZWFwQWxsb2MgY2FzdHMuCisKKwkqIGRsbHMva2VybmVsL3N5bmMuYzogQWxleCBWaWxsYWPtcyBMYXNzbyA8YV92aWxsYWNpc0BwYWxvc2FudG8uY29tPgorCVBlZWtOYW1lZFBpcGUgbm93IGNoZWNrcyBib3RoIGZvciBhIE5VTEwgYnVmZmVyIGFuZCBhIHplcm8tbGVuZ3RoCisJYnVmZmVyIGJlZm9yZSB0cnlpbmcgdG8gcmVjdigpIGZyb20gdGhlIHBpcGUuCisKKwkqIGRsbHMvc2hsd2FwaS90ZXN0cy9zaHJlZy5jOiBKYWtvYiBFcmlrc3NvbiA8amFrb3ZAdm1saW51eC5vcmc+CisJTW9yZSB0cmFjZSBpbmZvLgorCisJKiBkbGxzL3NoZWxsMzIvdGVzdHMvc3RyaW5nLmM6IEpha29iIEVyaWtzc29uIDxqYWtvdkB2bWxpbnV4Lm9yZz4KKwlTdHJSZXRUb1N0ck5BVyByZXR1cm5zIG9rIG9uIE5UNCwgdGhvdWdoIGl0IHNob3VsZCByZXR1cm4gRkFMU0UuCisKKwkqIGRsbHMvb2xlMzIvdGVzdHMvc3RvcmFnZTMyLmM6IEpha29iIEVyaWtzc29uIDxqYWtvdkB2bWxpbnV4Lm9yZz4KKwlNb3JlIHRyYWNlIGluZm8gZnJvbSBzdG9yYWdlMzIgdGVzdC4KKworCSogZGxscy9udGRsbC90ZXN0cy9lbnYuYzogSmFrb2IgRXJpa3Nzb24gPGpha292QHZtbGludXgub3JnPgorCU1vcmUgdHJhY2UgaW5mby4KKworCSogd2luZG93cy93aW5wb3MuYzogVWxyaWNoIEN6ZWthbGxhIDx1bHJpY2hAY29kZXdlYXZlcnMuY29tPgorCVVzZSBHZXRBbmNlc3RvciBpbnN0ZWFkIG9mIEdldFBhcmVudC4KKworCSogZGxscy9udGRsbC90aW1lLmM6IFJ1c3RhbSBDaGVybm90a2FjaCA8cnVzdGlrQHVmcHMuY2h1a290a2EucnU+CisJQWRkZWQgc3VwcG9ydCBmb3IgQU5BVCAoQW5hZHlyIFN0YW5kYXJkIFRpbWUpIHRvIFRaX0lORk8uCisKKwkqIGRsbHMva2VybmVsL3Rlc3RzL2Vudmlyb24uYzogSmFrb2IgRXJpa3Nzb24gPGpha292QHZtbGludXgub3JnPgorCUlmIHRoZSB2YXJpYWJsZSBkb2VzIG5vdCBleGlzdCwganVzdCByZXR1cm4uCisKKwkqIGRsbHMvbXNpL3Rlc3RzL3JlY29yZC5jOiBKYWtvYiBFcmlrc3NvbiA8amFrb3ZAdm1saW51eC5vcmc+CisJV2luZG93cyA5OCBkb2Vzbid0IGxpa2UgaXQgd2hlbiB3ZSBkZWxldGUgdGhlIHRlbXBmaWxlLgorCisJKiBkbGxzL21zaS90ZXN0cy9kYi5jOiBBcmljIFN0ZXdhcnQgPGFyaWNAY29kZXdlYXZlcnMuY29tPgorCVRlc3QgcGFja2FnZSBjcmVhdGlvbi4KKworCSogZGxscy91c2VyL3Rlc3RzL21zZy5jLCB3aW5kb3dzL21kaS5jOgorCURtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJSWYgYW4gTURJIGNoaWxkIGJlY29tZXMgYWN0aXZlIHJlc3RvcmUgcHJldmlvdXNseSBtYXhpbWl6ZWQgTURJCisJY2hpbGQuCisKKwkqIGRsbHMva2VybmVsL3Rlc3RzL2ZpbGUuYzogSmFrb2IgRXJpa3Nzb24gPGpha292QHZtbGludXgub3JnPgorCUZpeCBwYXRjaGluZyBlcnJvciBpbiBmaWxlIHRpbWUgdGVzdC4KKworCSogZGxscy94MTFkcnYva2V5Ym9hcmQuYzogRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlBZGQgc3VwcG9ydCBmb3IgU2VyYmlhbiBjeXJpbGxpYyBYMTEga2V5Ym9hcmQgbGF5b3V0LgorCisJKiBsb2FkZXIvcHJlbG9hZGVyLmM6IE1pa2UgSGVhcm4gPG1pa2VAbmF2aS5jeD4KKwlJbmNyZWFzZSBQRSByZXNlcnZlIGFyZWEgc2l6ZSB0byA1MTJNYi4KKworCSogZGxscy9yaWNoZWQyMC9lZGl0b3IuYywgZGxscy9yaWNoZWQyMC9lZGl0c3RyLmgsCisJICBkbGxzL3JpY2hlZDIwL3JlYWRlci5jLCBkbGxzL3JpY2hlZDIwL3J0Zi5oLCBkbGxzL3JpY2hlZDIwL3dyaXRlci5jOgorCVBoaWwgS3J5bG92IDxwaGlsQG5ld3N0YXIucmluZXQucnU+CisJTWFkZSBSVEYgcmVhZGVyIGFuZCB3cml0ZXIgaGFuZGxlIGNvZGVwYWdlcyBtb3N0bHkgc2ltaWxhciB0byB0aGUKKwlvcmlnaW5hbCByaWNoZWQyMC5kbGwuCisKKwkqIGRsbHMvdXNlci9lZGl0LmMsIGRsbHMvdXNlci90ZXN0cy9lZGl0LmM6CisJQy4gU2NvdHQgQW5hbmlhbiA8Y3Njb3R0QGNzY290dC5uZXQ+CisJRURJVF9FTV9TZXRTZWw6IE9sZC9uZXcgc2VsZWN0aW9uIHJhbmdlIG9yZGVyaW5nIGNvZGUgd291bGQgYnJlYWsgd2hlbgorCW9sZF9lbmQgPCBzdGFydCA8IGVuZCA8IG9sZF9zdGFydC4KKwlSZXNldCBFRl9VUERBVEUgZmxhZyBhZnRlciB3ZSd2ZSBzZW50IHRoZSB1cGRhdGUuCisKKwkqIGRsbHMvbXNpL21zaS5yYywgZGxscy9tc2kvbXNpX05sLnJjLCBkbGxzL3NoZG9jdncvTmwucmMsCisJICBkbGxzL3NoZG9jdncvc2hkb2N2dy5yYzoKKwlIYW5zIExlaWRla2tlciA8aGFuc0BpdC52dS5ubD4KKwlEdXRjaCByZXNvdXJjZSB0cmFuc2xhdGlvbi4KKworCSogZGxscy9hZHZhcGkzMi90ZXN0cy9zZWN1cml0eS5jOiBKYWtvYiBFcmlrc3NvbiA8amFrb3ZAdm1saW51eC5vcmc+CisJRml4IGZvciBOVDQgYmVoYXZpb3VyLgorCisyMDA1LTAzLTIxICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL3gxMWRydi9tb3VzZS5jLCBkbGxzL3gxMWRydi93aW5wb3MuYywgZGxscy94MTFkcnYveDExZGRyYXcuYywKKwkgIGRsbHMveDExZHJ2L3gxMWRydi5oLCBkbGxzL3gxMWRydi94MTFkcnZfbWFpbi5jLAorCSAgaW5jbHVkZS93aW5lL3NlcnZlcl9wcm90b2NvbC5oLCBzZXJ2ZXIvcHJvdG9jb2wuZGVmLAorCSAgc2VydmVyL3JlcXVlc3QuaCwgc2VydmVyL3RyYWNlLmMsIHNlcnZlci93aW5kb3cuYzoKKwlUcnkgdG8gYWx3YXlzIGtlZXAgdGhlIHNlcnZlciB3aW5kb3cgWi1vcmRlciBpbiBzeW5jIHdpdGggdGhlIFgxMSBvbmUKKwl1c2luZyBhIGhldXJpc3RpYyBiYXNlZCBvbiBtb3VzZSBhbmQgZXhwb3NlIGV2ZW50cy4KKworCSogZGxscy93aW5pbmV0L3VybGNhY2hlLmMsIGluY2x1ZGUvd2luaW5ldC5oOgorCVRyb3kgUm9sbG8gPHdpbmVAdHJveS5yb2xsby5uYW1lPgorCUltcGxlbWVudCBDcmVhdGVVcmxDYWNoZUVudHJ5VyBhbmQgQ29tbWl0VXJsQ2FjaGVFbnRyeVcuIFJlcGxhY2UgdGhlCisJZXhpc3RpbmcgJ0EnIHZlcnNpb25zIHdpdGggY2FsbHMgdG8gdGhlICdXJyB2ZXJzaW9ucy4KKworCSogZGxscy93aW5tbS93aW5lYWxzYS9hdWRpby5jOiBSb2JlcnQgUmVpZiA8cmVpZkBlYXJ0aGxpbmsubmV0PgorCUZpeCBkaXJlY3Qgc291bmQgY2FwYWJpbGl0aWVzIHRvIG1hdGNoIGhhcmR3YXJlLgorCisJKiBwcm9ncmFtcy93aW5lYnJvd3Nlci9tYWluLmM6IEh1dyBEYXZpZXMgPGh1d0Bjb2Rld2VhdmVycy5jb20+CisJRml4IHVzYWdlIHByaW50Zi4KKworCSogZGxscy93aW5tbS93aW5lYWxzYS9hdWRpby5jOiBGaXhlZCBhIG1pc3NpbmcgcGF0Y2ggY2h1bmsuCisKKwkqIGRsbHMvY29tY3RsMzIvYW5pbWF0ZS5jOiBEaW1pdHJpZSBPLiBQYXVuIDxkcGF1bkByb2dlcnMuY29tPgorCVB1bGwgdGhlIFdNX1RJTUVSIGhhbmRsaW5nIGludG8gaXRzIG93biBmdW5jdGlvbi4KKwlBTklNQVRFX0RyYXdGcmFtZSBzaG91bGRuJ3Qgd29ycnkgYWJvdXQgbG9ja2luZywgdGhlIGxvY2sgc2hvdWxkIGJlCisJaGVsZCBieSB0aGUgY2FsbGVyLgorCisJKiBkbGxzL29sZTMyL2NsaXBib2FyZC5jLCBkbGxzL29sZTMyL2NvbXBvYmouYywgZGxscy9vbGUzMi9lcnJvcmluZm8uYywKKwkgIGRsbHMvb2xlMzIvZnRtYXJzaGFsLmMsIGRsbHMvb2xlMzIvb2xlb2JqLmMsCisJICBkbGxzL29sZTMyL3N0Z19iaWdibG9ja2ZpbGUuYywgZGxscy9vbGUzMi9zdG9yYWdlMzIuYywKKwkgIGRsbHMvc2hlbGwzMi9hdXRvY29tcGxldGUuYywgZGxscy9zaGVsbDMyL2VudW1pZGxpc3QuYywKKwkgIGRsbHMvc2hlbGwzMi9mb2xkZXJzLmMsIGRsbHMvc2hlbGwzMi9zaGVsbC5jLAorCSAgZGxscy9zaGVsbDMyL3NoZWxsb2xlLmMsIGRsbHMvc2hlbGwzMi9zaGxtZW51LmMsCisJICBkbGxzL3NoZWxsMzIvc2hsdmlldy5jLCBkbGxzL3NoZWxsMzIvc2h2X2JnX2NtZW51LmMsCisJICBkbGxzL3NoZWxsMzIvc2h2X2l0ZW1fY21lbnUuYzoKKwlNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJRWxpbWluYXRlIGNhc3RzIG9mIHRoZSByZXR1cm4gdmFsdWUgb2YgSGVhcEFsbG9jLgorCisJKiBkbGxzL3JpY2hlZDIwL3JlYWRlci5jLCBkbGxzL3JpY2hlZDIwL3J0Zi5oOgorCU1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlSZW1vdmUgY2FzdHMgYW5kIHVudXNlZCBjb2RlLgorCisJKiBwcm9ncmFtcy9yZWdlZGl0L2NoaWxkd25kLmMsIHByb2dyYW1zL3JlZ2VkaXQvZnJhbWV3bmQuYywKKwkgIHByb2dyYW1zL3JlZ2VkaXQvbWFpbi5oOgorCVJvYmVydCBTaGVhcm1hbiA8cm9iQGNvZGV3ZWF2ZXJzLmNvbT4KKwlBbHdheXMgZGlzcGxheSBwYXRoIGluIHN0YXR1cyBiYXIuCisKKwkqIHByb2dyYW1zL3dpbmVicm93c2VyL21haW4uYzogSGFucyBMZWlkZWtrZXIgPGhhbnNAaXQudnUubmw+CisJUHJldmVudCBjcmFzaCB3aGVuIG5vIFVSTCBpcyBzcGVjaWZpZWQuCisKKwkqIGRsbHMvd2luc29jay90ZXN0cy9zb2NrLmM6IFRob21hcyBLaG8gPHRob21hc2tob0BnbWFpbC5jb20+CisJQWRkZWQgdGVzdHMgZm9yIHNlbmR0bywgcmVjdmZyb20sIGFuZCBnZXRzZXJ2YnluYW1lLgorCisJKiBkbGxzL3dpbm1tL3dpbmVhbHNhL2F1ZGlvLmM6IFJvYmVydCBSZWlmIDxyZWlmQGVhcnRobGluay5uZXQ+CisJQ2xlYW4gdXAgaGFuZGxlIHVzYWdlLgorCisJKiBkbGxzL3gxMWRydi93aW5wb3MuYzoKKwlEb24ndCB0cnkgdG8gcmVzeW5jIFotb3JkZXIgb24gQ29uZmlndXJlTm90aWZ5IGV2ZW50cywgdGhpcyBjYW5ub3QKKwl3b3JrIHJpZ2h0IGFueXdheS4KKworCSogZGxscy9hdmlmaWwzMi9hcGkuYywgZGxscy9pdHNzL2l0c3MuYywgZGxscy9vbGUzMi9jb21wb2JqLmMsCisJICBkbGxzL3R3YWluL3R3YWluMTZfbWFpbi5jLCBkbGxzL3dpbm1tL21tc3lzdGVtLmM6CisJVmluY2VudCBC6XJvbiA8dmJlcm9uQG1lY2Fuby5nbWUudXNoZXJiLmNhPgorCUNvcnJlY3QgYW5kIGNvbXBsZXRlIHNvbWUgYXBpIGRvY3VtZW50YXRpb24uCisKKwkqIGRsbHMvc2hsd2FwaS90ZXN0cy9wYXRoLmMsIGRsbHMvc2hsd2FwaS91cmwuYzoKKwlUcm95IFJvbGxvIDx3aW5lQHRyb3kucm9sbG8ubmFtZT4KKwlDb3JyZWN0aW9ucyB0byBVcmxJc1cgYW5kIFVybElzQS4KKwlVUkxfSVNfT1BBUVVFIHJlc3VsdHMgZGVwZW5kIG9ubHkgb24gdGhlIHNjaGVtZSwgbm90IG9uIHRoZSBVUkwuCisJVVJMX0lTX0ZJTEVVUkwgYWxzbyBvbmx5IGRlcGVuZHMgb24gdGhlIHNjaGVtZSAoImZpbGU6IikuCisKKwkqIGRsbHMveDExZHJ2L3BhbGV0dGUuYzogR2xlbm4gV3Vyc3RlciA8Z3d1cnN0ZXJAc2NzLmNhcmxldG9uLmNhPgorCVJlbW92ZSBicmVhayBzdGF0ZW1lbnRzIG1pc3NlZCBpbiBsYXN0IHBhdGNoLgorCisJKiB0b29scy93aW5hcGkvd2luMTYuYXBpLCB0b29scy93aW5hcGkvd2luMzIuYXBpOgorCVZpbmNlbnQgQulyb24gPHZiZXJvbkBtZWNhbm8uZ21lLnVzaGVyYi5jYT4KKwlUZWFjaCB3aW5hcGkgYWJvdXQgdHlwZXMgbmV3bHkgdXNlZCBpbiB2YXJpb3VzIGRsbHMuCisKKwkqIHRvb2xzL3dpbmFwaV9jaGVjay93aW5hcGlfZnVuY3Rpb24ucG0sCisJICB0b29scy93aW5hcGlfY2hlY2svd2luYXBpX2xvY2FsLnBtLAorCSAgdG9vbHMvd2luYXBpX2NoZWNrL3dpbmFwaV9wYXJzZXIucG06CisJVmluY2VudCBC6XJvbiA8dmJlcm9uQG1lY2Fuby5nbWUudXNoZXJiLmNhPgorCVRlYWNoIHdpbmFwaV9jaGVjayBhYm91dCBvdGhlciBjYWxsaW5nIGNvbnZlbnRpb24gc2hvcnRoYW5kcyAodGhleSBhbGwKKwlhcmUgcmVhbGx5IHN0ZGNhbGwpLgorCisJKiBkbGxzL3dpbmVkM2Qvd2luZWQzZC5zcGVjOgorCVZpbmNlbnQgQulyb24gPHZiZXJvbkBtZWNhbm8uZ21lLnVzaGVyYi5jYT4KKwlXaW5lRGlyZWN0M0RDcmVhdGUgaGFzIDMgYXJncyBpbiB0aGUgc291cmNlLgorCisJKiBkbGxzL250ZGxsL2xvYWRlci5jLCBkbGxzL3JpY2hlZDIwL2VkaXRvci5jOgorCVZpbmNlbnQgQulyb24gPHZiZXJvbkBtZWNhbm8uZ21lLnVzaGVyYi5jYT4KKwlVc2UgIiIgZm9yIFdpbmRvd3MgaW5jbHVkZXMgaW4gZGxscywgaW5zdGVhZCBvZiA8Pi4KKworCSogZGxscy9hdGwvcmVnaXN0cmFyLmM6IEphY2VrIENhYmFuIDxqYWNrQGl0bWEucHdyLndyb2MucGw+CisJS2V5IHdvcmRzIGFuZCByZXBsYWNlbWVudHMgYXJlIGNhc2UgaW5zZW5zaXRpdmUuCisKKwkqIGRsbHMvY29tY3RsMzIvdHJlZXZpZXcuYzogUm9iZXJ0IFNoZWFybWFuIDxyb2JAY29kZXdlYXZlcnMuY29tPgorCWlTZWxlY3RlZEltYWdlIGlzIGFsbG93ZWQgdG8gYmUgMC4KKworCSogZGxscy9zaGx3YXBpL3JlZy5jOiBSb2JlcnQgU2hlYXJtYW4gPHJvYkBjb2Rld2VhdmVycy5jb20+CisJRml4IFNIQ29weUtleSB0byB0cmVhdCBzdHJpbmcgcGFyYW1ldGVyIGNvcnJlY3RseSBhcyBzb3VyY2UgcGF0aAorCWluc3RlYWQgb2YgZGVzdGluYXRpb24gcGF0aC4KKworCSogZGxscy9hZHZhcGkzMi9zZWN1cml0eS5jLCBkbGxzL2F2aWZpbDMyL2FwaS5jLAorCSAgZGxscy93aW5pbmV0L3VybGNhY2hlLmMsIGRsbHMvd3RzYXBpMzIvd3RzYXBpMzIuYywgaW5jbHVkZS9hY2xhcGkuaCwKKwkgIGluY2x1ZGUvdmZ3LmgsIGluY2x1ZGUvd3RzYXBpMzIuaDoKKwlWaW5jZW50IELpcm9uIDx2YmVyb25AbWVjYW5vLmdtZS51c2hlcmIuY2E+CisJRml4ZWQgc29tZSBjYWxsaW5nIGNvbnZlbnRpb25zLgorCisJKiBkbGxzL2NvbWN0bDMyL2NvbWJvZXguYzogRGltaXRyaWUgTy4gUGF1biA8ZHBhdW5Acm9nZXJzLmNvbT4KKwlDb21wbGV0ZSB1bmljb2RpZmljYXRpb24uCisKKwkqIGRsbHMvY29tY3RsMzIvcGFnZXIuYzogRGltaXRyaWUgTy4gUGF1biA8ZHBhdW5Acm9nZXJzLmNvbT4KKwlQcm9wZXIgaGFuZGxpbmcgZm9yIEdXTF9TVFlMRS4KKwlTdG9yZSBhbmQgdXNlIGh3bmRTZWxmIGluIHRoZSBQQUdFUl9JTkZPLgorCVBhc3MgdGhlIGluZm9QdHIgYXJvdW5kIGluc3RlYWQgb2YgaHduZC4KKwlVc2UgcHJvcGVyIHR5cGVzIGluIHRoZSBmdW5jdGlvbiBzaWduYXR1cmVzLgorCUZpeCBhIGZldyByZXR1cm4gc3RhdGVtZW50cy4KKworCSogZGxscy9vbGUzMi9zdG9yYWdlMzIuYzogVHJveSBSb2xsbyA8d2luZUB0cm95LnJvbGxvLm5hbWU+CisJRml4IHRlc3QgZm9yIFNUR01fU0hBUkVfRVhDTFVTSVZFIG9uIG5hbWVsZXNzIERvY0ZpbGVzLgorCisJKiBwcm9ncmFtcy9yZWdlZGl0L2xpc3R2aWV3LmM6IFJvYmVydCBTaGVhcm1hbiA8cm9iQGNvZGV3ZWF2ZXJzLmNvbT4KKwktIEFkZCBpY29ucyBmb3IgdGhlIHZhbHVlIHBhbmUuCisJLSBEaXNwbGF5IFJFR19NVUxUSV9TWiB2YWx1ZXMuCisJLSBNYWtlIHRoZSBsYWNrIG9mIHN1cHBvcnQgZm9yIGNlcnRhaW4gdmFsdWUgdHlwZXMgbW9yZSBub3RpY2VhYmxlIHRvCisJICB0aGUgdXNlci4KKworCSogcHJvZ3JhbXMvcmVnZWRpdC9lZGl0LmM6IFJvYmVydCBTaGVhcm1hbiA8cm9iQGNvZGV3ZWF2ZXJzLmNvbT4KKwktIERpc3BsYXkgYW4gZXJyb3IgbWVzc2FnZSBpZiBhbnkgZWRpdCBvcGVyYXRpb24gZmFpbHMuCisJLSBNYWtlIGtleSByZW5hbWluZyBmYWlsIGlmIHRoZSBkZXN0aW5hdGlvbiBrZXkgYWxyZWFkeSBleGlzdHMuCisJLSBCZXR0ZXIgZXJyb3IgcmVjb3ZlcnkgaW4gdGhlIGNhc2Ugd2hlcmUgU0hDb3B5S2V5IGZhaWxzLgorCisJKiBkbGxzL2RkcmF3L2RjbGlwcGVyL21haW4uYzogQ2hyaXN0aWFuIENvc3RhIDx0aXRhbi5jb3N0YUB3YW5hZG9vLmZyPgorCVJlbW92ZWQgd3JvbmcgRklYTUVzLgorCisJKiBkbGxzL3dpbm1tL2RyaXZlci5jLCBkbGxzL3dpbm1tL21jaS5jOgorCUZpbGlwIE5hdmFyYSA8eG5hdmFyYUB2b2xueS5jej4KKwlTcGVjaWZ5IGNvcnJlY3QgYnVmZmVyIHNpemUgaW4gR2V0UHJpdmF0ZVByb2ZpbGVTdHJpbmdXIGNhbGxzLgorCisJKiBkbGxzL250ZGxsL2ZpbGUuYzogSXZhbiBMZW8gUHVvdGkgPGl2YW5sZW9AZ21haWwuY29tPgorCUltcHJvdmUgcGFyYW1ldGVyIGNoZWNraW5nIGluIE50Q3JlYXRlRmlsZS4KKwlBZGQgZG9jdW1lbnRhdGlvbiBmb3IgZWFfYnVmZmVyIGFuZCBlYV9sZW5ndGguCisKKwkqIGRsbHMvZGRyYXcvZHN1cmZhY2UvZGliLmM6IE1hdHRoZXcgTWFzdHJhY2NpIDxtYXR0QGFjbGFyby5jb20+CisJSWYgYSBGT1VSQ0Mgc3VyZmFjZSBzcGVjaWZpZXMgRERTRF9QSVRDSCwgdXNlIHRoYXQgaW5zdGVhZCBvZgorCWR3TGluZWFyU2l6ZS4KKworCSogZGxscy9jb21jdGwzMi9hbmltYXRlLmM6IERpbWl0cmllIE8uIFBhdW4gPGRwYXVuQHJvZ2Vycy5jb20+CisJRGVsZXRlIHRoZSBjcml0aWNhbCBzZWN0aW9uIHdoZW4gZnJlZWluZyB1cCB0aGUgaW5mb1B0ci4KKworCSogZGxscy93aW5tbS93aW5lYWxzYS9hdWRpby5jOiBSb2JlcnQgUmVpZiA8cmVpZkBlYXJ0aGxpbmsubmV0PgorCVByaW50IG91dCBtZXNzYWdlIG5hbWUgdG8gbWFrZSByZWFkaW5nIHRyYWNlcyBlYXNpZXIuCisKKwkqIGRsbHMvcmljaGVkMjAvY2FyZXQuYywgZGxscy9yaWNoZWQyMC9lZGl0b3IuYywKKwkgIGRsbHMvcmljaGVkMjAvZWRpdG9yLmgsIGRsbHMvcmljaGVkMjAvZWRpdHN0ci5oLAorCSAgZGxscy9yaWNoZWQyMC9wYWludC5jOgorCUtyenlzenRvZiBGb2x0bWFuIDx3ZGV2QGZvbHRtYW4uY29tPgorCS0gUGFnZVVwIGtleSBzdXBwb3J0LgorCS0gU3VwcG9ydCBmb3IgIm5vcm1hbCIgc2Nyb2xsIGJhciBmdW5jdGlvbmFsaXR5IChsaW5lIGFuZCBwYWdlCisJICBzY3JvbGxpbmcpLgorCisyMDA1LTAzLTE5ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL2tlcm5lbC9wcm9jZXNzLmMsIGRsbHMvbnRkbGwvdGhyZWFkLmMsIGluY2x1ZGUvdGhyZWFkLmgsCisJICBpbmNsdWRlL3dpbm50LmgsIGluY2x1ZGUvd2ludGVybmwuaDoKKwlBZGRlZCBzdXBwb3J0IGZvciB0aGUgVExTIGV4cGFuc2lvbiBzbG90cywgYWRkaW5nIGFuIGV4dHJhIDEwMjQKKwllbnRyaWVzLgorCisJKiBkbGxzL3dpbm1tL3dpbmVhbHNhL2F1ZGlvLmMsIGRsbHMvd2lubW0vd2luZWFydHMvYXVkaW8uYywKKwkgIGRsbHMvd2lubW0vd2luZWF1ZGlvaW8vYXVkaW8uYywgZGxscy93aW5tbS93aW5lamFjay9hdWRpby5jLAorCSAgZGxscy93aW5tbS93aW5lbmFzL2F1ZGlvLmM6CisJUm9iZXJ0IFJlaWYgPHJlaWZAZWFydGhsaW5rLm5ldD4KKwlGYWxsIGJhY2sgdG8gZGVmYXVsdCBwcmVwYXJlL3VucHJlcGFyZSBoZWFkZXIgZnVuY3Rpb25zLgorCisJKiBkbGxzL2Rzb3VuZC9taXhlci5jOiBSb2JlcnQgUmVpZiA8cmVpZkBlYXJ0aGxpbmsubmV0PgorCUZpeCBibG9jayBhbGlnbiBlcnJvciBtZXNzYWdlIHRvIHNob3cgbGVuZ3RoIGJlZm9yZSBmaXggdXAuCisKKwkqIGRsbHMvc2hlbGwzMi9tZW1vcnlzdHJlYW0uYzogTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCUZpeCB1c2FnZSBvZiBTVEdNXyBlbnVtZXJhdGlvbnMsIHJlbW92ZSBmb3J3YXJkIGRlY2xhcmF0aW9uLgorCisJKiBkbGxzL3NoZWxsMzIvZGF0YW9iamVjdC5jOiBNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJUmVtb3ZlIGZvcndhcmQgZGVjbGFyYXRpb25zIG9mIGludGVyZmFjZSBtZXRob2RzLgorCisJKiBkbGxzL3NoZWxsMzIvY3BhbmVsZm9sZGVyLmMsIGRsbHMvc2hlbGwzMi9zaGVsbDMyX21haW4uaDoKKwlNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJUmVtb3ZlIGFuIHVudXNlZCBmdW5jdGlvbi4KKworCSogZGxscy9tc2kvc3VtaW5mby5jLCBkbGxzL21zaS90ZXN0cy8uY3ZzaWdub3JlLAorCSAgZGxscy9tc2kvdGVzdHMvTWFrZWZpbGUuaW4sIGRsbHMvbXNpL3Rlc3RzL3N1bWluZm8uYzoKKwlNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJLSB0ZXN0IGNhc2VzIGZvciBzdW1tYXJ5IGluZm9ybWF0aW9uCisJLSBmaXggbWVtb3J5IGxlYWtzCisKKwkqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjOiBGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAZnJlZS5mcj4KKwlJc3N1ZSBhIHdhcm5pbmcgaWYgbm8gc291bmQgc3lzdGVtIHdhcyBmb3VuZC4KKworCSogZGxscy9yaWNoZWQyMC9jYXJldC5jLCBkbGxzL3JpY2hlZDIwL2VkaXRvci5jLAorCSAgZGxscy9yaWNoZWQyMC9lZGl0b3IuaCwgZGxscy9yaWNoZWQyMC9lZGl0c3RyLmgsCisJICBkbGxzL3JpY2hlZDIwL3BhaW50LmMsIGRsbHMvcmljaGVkMjAvcnVuLmMsIGRsbHMvcmljaGVkMjAvc3RyaW5nLmMsCisJICBkbGxzL3JpY2hlZDIwL3dyYXAuYzoKKwlLcnp5c3p0b2YgRm9sdG1hbiA8d2RldkBmb2x0bWFuLmNvbT4KKwktIG1hZGUgc3RyaW5nIG9wZXJhdGlvbnMgY29uc2lzdGVudCB3cnQgd2hpdGVzcGFjZSBoYW5kbGluZyAod2hpY2gKKwkgIHNob3VsZCBncmVhdGx5IGltcHJvdmUgc3RhYmlsaXR5IG9mIHRoZSB3cmFwIGNvZGUgYW5kIGVsaW1pbmF0ZQorCSAgcmVncmVzc2lvbnMgb2YgdGhlIG1vc3QgcmVjZW50IHZlcnNpb25zKQorCS0gY29tcGxldGVseSBuZXcgc2Nyb2xsYmFyIGhhbmRsaW5nIChtdWNoIG1vcmUgcmVsaWFibGUpIGFuZCByZWxhdGVkCisJICByZWRyYXcgZml4ZXMKKwktIFBhZ2UgRG93biBoYW5kbGVyIChubyBQYWdlIFVwIHlldCwgZml4aW5nIHdyYXAvcmVkcmF3L3Njcm9sbGJhciBidWdzCisJICB3YXMgb2YgaGlnaGVyIHByaW9yaXR5KQorCisJKiBkbGxzL3JwY3J0NC9ycGNfc2VydmVyLmM6IFJvYmVydCBTaGVhcm1hbiA8cm9iQGNvZGV3ZWF2ZXJzLmNvbT4KKwlGaXggZGVhZGxvY2sgY2F1c2VkIGJ5IG5vdCBsZWF2aW5nIHRoZSBjcml0aWNhbCBzZWN0aW9uIG9uIGFsbCBjb2RlCisJcGF0aHMuCisKKwkqIGRsbHMvb2xlMzIvb2xlMmltcGwuYzogUm9iZXJ0IFNoZWFybWFuIDxyb2JAY29kZXdlYXZlcnMuY29tPgorCUZpeCBtZW1vcnkgbGVhayBpbiBPbGVEdXBsaWNhdGVEYXRhIG9uIGVycm9yIHBhdGggKGZvdW5kIGJ5IFNtYXRjaCkuCisKKwkqIGRsbHMva2VybmVsL2xvY2FsZS5jOiBVbHJpY2ggQ3pla2FsbGEgPHVscmljaEBjb2Rld2VhdmVycy5jb20+CisJR2V0Q1BJbmZvIHNob3VsZCByZXR1cm4gRkFMU0UgaWYgY2FsbGVkIHdpdGggTlVMTCBpbmZvIGJ1ZmZlci4KKworCSogZGxscy9hdGwvcmVnaXN0cmFyLmM6IEphY2VrIENhYmFuIDxqYWNrQGl0bWEucHdyLndyb2MucGw+CisJQWRkZWQgaW1wbGVtZW50YXRpb24gb2YgRmlsZVtVbl1SZWdpc3RlciBhbmQgUmVzb3VyY2VbVW5dUmVnaXN0ZXJTei4KKworCSogdG9vbHMvd2luZS5pbmY6IFBhdWwgTWlsbGFyIDxwLm1pbGxhckBwaHlzaWNzLmdsYS5hYy51az4KKwlCcmluZyBkZWZhdWx0IHJlZ2lzdHJ5IGluIGxpbmUgd2l0aCBpbXBsaWNpdCBkZWZhdWx0IGJlaGF2aW91ciBieQorCXVzaW5nIHRoZSAtLWF1dG8gb3B0aW9uIHdpdGggd2luZWRiZy4KKworCSogZGxscy92ZXJzaW9uL2luc3RhbGwuYzogSm9uIEdyaWZmaXRocyA8am9uX3BfZ3JpZmZpdGhzQHlhaG9vLmNvbT4KKwlBdm9pZCBhIG1hZ2ljIG51bWJlci4KKworMjAwNS0wMy0xOCAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogcHJvZ3JhbXMvd2luZXRlc3QvdXRpbC5jLCB0b29scy93aW5lZ2NjL3V0aWxzLmM6CisJRml4ZWQgb3RoZXIgaW5zdGFuY2VzIG9mIHRoZSB4cmVhbGxvYygwKSBidWcuCisKKwkqIGRsbHMvY29tY3RsMzIvdGVzdHMvdXBkb3duLmMsIGRsbHMvY29tY3RsMzIvdXBkb3duLmM6CisJQy4gU2NvdHQgQW5hbmlhbiA8Y3Njb3R0QGNzY290dC5uZXQ+CisJVVBET1dOX0dldEJ1ZGR5SW50IHNob3VsZCBub3QgZmFpbCB3aGVuIHRoZSBjb250cm9sIGlzIGVtcHR5LgorCisJKiB0b29scy93aW5lYnVpbGQvYnVpbGQuaCwgdG9vbHMvd2luZWJ1aWxkL3JlczE2LmMsCisJICB0b29scy93aW5lYnVpbGQvcmVzMzIuYzoKKwlKb24gR3JpZmZpdGhzIDxqb25fcF9ncmlmZml0aHNAeWFob28uY29tPgorCS1XdW5zaWduZWQgZml4ZXMuCisKKwkqIHRvb2xzL3dpbmVidWlsZC91dGlscy5jOgorCURvbid0IGNyYXNoIG9uIHhyZWFsbG9jKDApIChmb3VuZCBieSBKb24gR3JpZmZpdGhzKS4KKworCSogZGxscy9vbGVhdXQzMi90ZXN0cy92YXJ0eXBlLmM6IEphY2VrIENhYmFuIDxqYWNrQGl0bWEucHdyLndyb2MucGw+CisJRml4ZWQgdmFydHlwZSB0ZXN0LgorCisJKiBkbGxzL21zaS9tc2lwcml2LmgsIGRsbHMvbXNpL3N1bWluZm8uYywgaW5jbHVkZS9tc2kuaCwKKwkgIGluY2x1ZGUvbXNpcXVlcnkuaDoKKwlNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJSW1wbGVtZW50IHN1bW1hcnkgaW5mb3JtYXRpb24gbG9hZGluZyBhbmQgc2F2aW5nLgorCisJKiBkbGxzL3NobHdhcGkvb3JkaW5hbC5jLCBkbGxzL3NobHdhcGkvc2hsd2FwaS5zcGVjOgorCUpvbiBHcmlmZml0aHMgPGpvbl9wX2dyaWZmaXRoc0B5YWhvby5jb20+CisJSW1wbGVtZW50IEAxODgsMTkwLDE5NSwyMDAsMjU2LDQ3OCw0ODEuCisJSVVua25vd25fRW5hYmxlTW9kZWxlc3MoKSBhbHNvIGhhbmRsZXMgSU9sZUluUGxhY2VBY3RpdmVPYmplY3QuCisKKwkqIGRsbHMvY29tY3RsMzIvYW5pbWF0ZS5jOgorCVJldmVydCBjaGFuZ2VzIHRvIHRoZSBwYWludGluZyBjb2RlLCB0aGUgV01fQ1RMQ09MT1JTVEFUSUMgbWVzc2FnZQorCXNob3VsZCBub3QgYmUgc2VudCBmcm9tIHRoZSBhbmltYXRpb24gdGhyZWFkLgorCisJKiBkbGxzL3dpbm1tL3dpbmVhbHNhL2F1ZGlvLmM6IFJvYmVydCBSZWlmIDxyZWlmQGVhcnRobGluay5uZXQ+CisJQWRkIHN1cHBvcnQgZm9yIG1vcmUgdGhhbiBvbmUgc291bmQgY2FyZC4KKwlGaXggd2F2ZSBvdXQgc3VwcG9ydCB3aGVuIG5vIHZvbHVtZSBjb250cm9sIGlzIHByZXNlbnQuCisJVXNlIHByb3BlciBzdHJ1Y3R1cmUgZm9yIHdhdmUgaW4gZGV2aWNlIGNhcHMuCisKKwkqIGRsbHMvd2lubW0vdGVzdHMvd2F2ZS5jOiBSb2JlcnQgUmVpZiA8cmVpZkBlYXJ0aGxpbmsubmV0PgorCUNoZWNrIHdhdmUgb3V0IHZvbHVtZSBzdXBwb3J0LgorCisJKiBkbGxzL2F0bC9hdGwucmdzOiBKYWNlayBDYWJhbiA8amFja0BpdG1hLnB3ci53cm9jLnBsPgorCUZpeGVkIGF0bC5yZ3MuCisKKwkqIGRsbHMvYXRsL3JlZ2lzdHJhci5jOiBKYWNlayBDYWJhbiA8amFja0BpdG1hLnB3ci53cm9jLnBsPgorCUtleXMgbWF5IGhhdmUgb25seSBvbmUgb2YgYXR0cmlidXRlcy4KKworCSogZGxscy9kaW5wdXQvam95c3RpY2tfbGludXhpbnB1dC5jOgorCUdlcmFsZCBQZmVpZmVyIDxnZXJhbGRAcGZlaWZlci5jb20+CisJRml4IGNvbXBpbGF0aW9uIG9mIHRoZSBjYXNlIHdpdGhvdXQgcHJvcGVyIExpbnV4IGpveXN0aWNrIHN1cHBvcnQuCisKKwkqIGRsbHMvcmljaGVkMjAvZWRpdG9yLmMsIGRsbHMvcmljaGVkMjAvcmVhZGVyLmMsIGRsbHMvcmljaGVkMjAvcnRmLmg6CisJUGhpbCBLcnlsb3YgPHBoaWxAbmV3c3Rhci5yaW5ldC5ydT4KKwlGaXhlZCBzdXBwb3J0IGZvciBSVEYgZG9jdW1lbnRzIHVzaW5nIEFOU0kgY2hhcnNldCBhbmQgYWRkZWQgc3VwcG9ydAorCWZvciBtdWx0aWJ5dGUgY2hhcnNldHMsIHNvIHRoYXQgQklHNSBhbmQgVVRGLTggUlRGIGRvY3VtZW50cyBhcmUKKwl3b3JraW5nIG5vdy4KKworMjAwNS0wMy0xNyAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9rZXJuZWwvZm9ybWF0X21zZy5jLCBkbGxzL2tlcm5lbC90ZXN0cy9oZWFwLmMsCisJICBkbGxzL21hcGkzMi9pbWFsbG9jLmMsIGRsbHMvb2xlMzIvaWZzLmMsIGRsbHMvc2hlbGwzMi9jcGFuZWxmb2xkZXIuYywKKwkgIGRsbHMvc2hlbGwzMi9kcmFnZHJvcGhlbHBlci5jLCBkbGxzL3NoZWxsMzIvc2hlbGxsaW5rLmMsCisJICBkbGxzL3NoZWxsMzIvc2hlbGxvbGUuYywgZGxscy9zaGVsbDMyL3NoZWxsb3JkLmMsCisJICBkbGxzL3NoZWxsMzIvc2hmbGRyX2Rlc2t0b3AuYywgZGxscy9zaGVsbDMyL3NoZmxkcl9mcy5jLAorCSAgZGxscy9zaGVsbDMyL3NoZmxkcl9teWNvbXAuYywgZGxscy9zaGx3YXBpL3JlZy5jOgorCUpvbiBHcmlmZml0aHMgPGpvbl9wX2dyaWZmaXRoc0B5YWhvby5jb20+CisJVXNlIExNRU1fIGZsYWdzIGZvciBMb2NhbEFsbG9jKCksIG5vdCBHTUVNXyAoR2xvYmFsQWxsb2MpLgorCisJKiBzZXJ2ZXIvcXVldWUuYzoKKwlSZXZlcnQgdGhlIHByZXZpb3VzIGNoYW5nZSwgdGhpcyBpcyBub3Qgd29ya2luZyByaWdodCB5ZXQuCisKKwkqIGRsbHMvc2hlbGwzMi9zaGxleGVjLmM6IEFyaWMgU3Rld2FydCA8YXJpY0Bjb2Rld2VhdmVycy5jb20+CisJRm9yIFNoZWxsRXhlY3V0ZUV4QSB3ZSBuZWVkIHRvIGNvcHkgb3V0IHRoZSBoUHJvY2VzcyB2YWx1ZSBmcm9tIHRoZSBXCisJc3RydWN0dXJlLgorCisJKiBkbGxzL29sZTMyL01ha2VmaWxlLmluLCBkbGxzL29sZTMyL2RpY3Rpb25hcnkuYywKKwkgIGRsbHMvb2xlMzIvZGljdGlvbmFyeS5oLCBkbGxzL29sZTMyL3N0Z19wcm9wLmM6CisJSnVhbiBMYW5nIDxqdWFuX2xhbmdAeWFob28uY29tPgorCUJlZ2luIGltcGxlbWVudGluZyBJUHJvcGVydHlTdG9yYWdlLgorCisJKiBkbGxzL3gxMWRydi93aW5wb3MuYywgaW5jbHVkZS93aW5lL3NlcnZlcl9wcm90b2NvbC5oLAorCSAgc2VydmVyL3Byb3RvY29sLmRlZiwgc2VydmVyL3RyYWNlLmMsIHNlcnZlci93aW5kb3cuYzoKKwlNYWtlIHRoZSBzZXJ2ZXIga25vdyBhYm91dCB0aGUgdmlzaWJsZSBhcmVhIG9mIGEgd2luZG93LCB3aGljaCBpcyB0aGUKKwl3aW5kb3cgcmVjdCBtaW51cyB0aGUgY2FwdGlvbiBhbmQgYm9yZGVycyB3aGVuIHRoZXkgYXJlIGhhbmRsZWQgYnkgdGhlCisJd2luZG93IG1hbmFnZXIuCisKKwkqIGRsbHMva2VybmVsL2NvbW0uYywgZGxscy9rZXJuZWwvZmlsZS5jLCBkbGxzL2tlcm5lbC90ZXN0cy9maWxlLmMsCisJICBkbGxzL2tlcm5lbC90ZXN0cy9nZW5lcmF0ZWQuYywgZGxscy9udGRsbC9sb2FkZXIuYywKKwkgIGRsbHMvcXVhcnR6L2ZpbGVzb3VyY2UuYywgZGxscy93aW5pbmV0L3VybGNhY2hlLmMsCisJICBkbGxzL3dpbnNvY2svc29ja2V0LmMsIGluY2x1ZGUvd2luYmFzZS5oLCBpbmNsdWRlL3dpbmluZXQuaCwKKwkgIGluY2x1ZGUvd2lubnQuaDoKKwlEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCU1hdGNoIE9WRVJMQVBQRUQgc3RydWN0dXJlIHRvIHRoZSBTREsgZGVmaW5pdGlvbi4KKworCSogZGxscy93aW5tbS93aW5lb3NzL2F1ZGlvLmM6IFJvYmVydCBSZWlmIDxyZWlmQGVhcnRobGluay5uZXQ+CisJRmFsbCBiYWNrIHRvIGRlZmF1bHQgaGVhZGVyIHByZXBhcmUgYW5kIHVucHJlcGFyZSBmdW5jdGlvbnMuCisKKwkqIGRsbHMvc2hlbGwzMi9zaGxmb2xkZXIuYzogTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCVJlbW92ZSBzb21lIGRlYWQgY29kZSBhbmQgc29tZSBpZmRlZnMuCisKKwkqIGRsbHMvd2luaW5ldC9pbnRlcm5ldC5jLCBkbGxzL3dpbmluZXQvdGVzdHMvaHR0cC5jOgorCUhhbnMgTGVpZGVra2VyIDxoYW5zQGl0LnZ1Lm5sPgorCUFkZCBtb3JlIHRlc3RzIGFuZCBmaXggSW50ZXJuZXRUaW1lVG9TeXN0ZW1UaW1lVyBhY2NvcmRpbmdseS4KKworCSogZGxscy9zaGVsbDMyL2RlYnVnaGxwLmM6IE1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlGaXggYSByZWdyZXNzaW9uIGluIHRoZSBmaWxlIG9wZW4gZGlhbG9nLgorCisJKiBkbGxzL250ZGxsL3JlZy5jOiBJdmFuIExlbyBQdW90aSA8aXZhbmxlb0BnbWFpbC5jb20+CisJQWRkIHBhcmFtZXRlciBjaGVja2luZyBhbmQgcmVtb3ZlIGxhc3QgZml4bWUuCisKKwkqIGRsbHMva2VybmVsL3Rlc3RzL3RpbWUuYzogSmFrb2IgRXJpa3Nzb24gPGpha292QHZtbGludXgub3JnPgorCU1vcmUgdHJhY2UgaW5mby4KKworCSogZGxscy93aW5tbS93aW5lYWxzYS9hdWRpby5jOiBSb2JlcnQgUmVpZiA8cmVpZkBlYXJ0aGxpbmsubmV0PgorCVVzZSByZWFsIGRldmljZSBuYW1lLgorCisJKiBkbGxzL3R0eWRydi93bmQuYywgZGxscy94MTFkcnYvd2lucG9zLmMsCisJICBpbmNsdWRlL3dpbmUvc2VydmVyX3Byb3RvY29sLmgsIHNlcnZlci9wcm90b2NvbC5kZWYsIHNlcnZlci90cmFjZS5jLAorCSAgc2VydmVyL3dpbmRvdy5jOgorCUNvbXB1dGUgdGhlIHRvcCBjbGlwcGluZyB3aW5kb3cgZGlyZWN0bHkgb24gdGhlIHNlcnZlciBzaWRlLgorCisJKiBkbGxzL3dpbnNvY2svdGVzdHMvc29jay5jOiBKYWtvYiBFcmlrc3NvbiA8amFrb3ZAdm1saW51eC5vcmc+CisJTW9yZSB0cmFjZSBpbmZvLgorCisJKiBkbGxzL2F0bC9NYWtlZmlsZS5pbjogTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCUZpeCBkZXBlbmRlbmNpZXMuCisKKwkqIGRsbHMvc2hlbGwzMi9zaGZsZHJfZGVza3RvcC5jOiBNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJQ29udmVydCBwYXRoIHRvIHVuaWNvZGUsIHJlYXJyYW5nZSB0byByZW1vdmUgZm9yd2FyZCBkZWNsYXJhdGlvbi4KKworCSogZGxscy9yaWNoZWQyMC9lZGl0b3IuYywgZGxscy9yaWNoZWQyMC9yZWFkZXIuYywgZGxscy9yaWNoZWQyMC9ydGYuaDoKKwlQaGlsIEtyeWxvdiA8cGhpbEBuZXdzdGFyLnJpbmV0LnJ1PgorCVJlcGxhY2VkIHNsb3cgYW5kIG91dGRhdGVkIGNoYXJhY3RlciBzZXQgaGFuZGxpbmcgaW4gUlRGIHJlYWRlciBieQorCVVuaWNvZGUvY29kZXBhZ2VzIHN1cHBvcnQuIEFkZGVkIGNoYXJzZXQtPmNvZGVwYWdlIGNvbnZlcnNpb24uCisKKwkqIGluY2x1ZGUvd2luYmFzZS5oOiBNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJRGVjbGFyZSBpbmxpbmUgc3RyaW5nIGZ1bmN0aW9uIFdJTkFQSSAoZm91bmQgYnkgS3J6eXN6dG9mIEZvbHRtYW4pLgorCisJKiBpbmNsdWRlL3NobGd1aWQuaCwgaW5jbHVkZS9zaGxvYmouaDoKKwlKb24gR3JpZmZpdGhzIDxqb25fcF9ncmlmZml0aHNAeWFob28uY29tPgorCUFkZCBzb21lIG1pc3NpbmcgaW50ZXJmYWNlcy4KKworCSogZGxscy9vbGUzMi9jb21wb2JqLmMsIGRsbHMvb2xlMzIvY29tcG9ial9wcml2YXRlLmgsCisJICBkbGxzL29sZTMyL21hcnNoYWwuYywgZGxscy9vbGUzMi9ycGMuYywgZGxscy9vbGUzMi9zdHVibWFuYWdlci5jLAorCSAgaW5jbHVkZS9vYmpiYXNlLmg6CisJUm9iZXJ0IFNoZWFybWFuIDxyb2JAY29kZXdlYXZlcnMuY29tPgorCS0gQWRkIGNyaXRzZWMgZGVidWdnaW5nIGluZm8uCisJLSBNb3ZlIHRoZSBtb2RhbCBsb29wIGNhbGxlZCBkdXJpbmcgUlBDcyBpbnRvIENvV2FpdEZvck11bHRpcGxlSGFuZGxlcy4KKwktIFVzZSBhIG11dGV4IGZvciBsb25nIHJlbW90aW5nIGNhbGxzIHRvIElSZW1Vbmtub3duIG1ldGhvZHMuCisJLSBSZW1vdmUgbG9ja2luZyBpbiBhcGFydG1lbnRfZGlzY29ubmVjdHByb3hpZXMgYXMgaXQgaXMgbm90IG5lZWRlZC4KKwktIFVzZSBQb3N0TWVzc2FnZSBpbnN0ZWFkIG9mIFNlbmRNZXNzYWdlIHNvIHdlIGNhbiBydW4gdGhlIG1lc3NhZ2UKKwkgIGxvb3Agb3Igbm90IGFzIGFwcHJvcHJpYXRlLgorCisJKiBkbGxzL3dpbm1tL2xvbHZsZHJ2LmMsIGRsbHMvd2lubW0vd2luZW1tLmg6CisJSmVyZW15IFdoaXRlIDxqd2hpdGVAY29kZXdlYXZlcnMuY29tPgorCURvIG5vdCBmYWxsYmFjayB0byBkZWZhdWx0cyBpZiBhIGRyaXZlciwgbWFwcGVyLCBvciBtaWRpIGlzIHNwZWNpZmllZAorCWluIHRoZSByZWdpc3RyeTsgY29uc29saWRhdGUgTU1EUlZfSW5pdCgpIGludG8gYSBzaW5nbGUgZnVuY3Rpb24uCisKKwkqIGRsbHMvb2xlMzIvc3RvcmFnZTMyLmMsIGRsbHMvb2xlMzIvc3RvcmFnZTMyLmg6CisJSnVhbiBMYW5nIDxqdWFuX2xhbmdAeWFob28uY29tPgorCUFkZCBhIGNvbW1lbnQgYWJvdXQgYnl0ZSBvcmRlciwgY2hhbmdlIHR5cGVzIHRvIHJlZHVjZSBjYXN0aW5nIGFuZCBub3QKKwljYXN0IGF3YXkgY29uc3RuZXNzLgorCisJKiBkbGxzL2F0bC9hdGwuc3BlYywgZGxscy9hdGwvcmVnaXN0cmFyLmM6CisJSmFjZWsgQ2FiYW4gPGphY2tAaXRtYS5wd3Iud3JvYy5wbD4KKwlBZGRlZCBpbXBsZW1lbnRhdGlvbiBvZiBEbGxDYW5VbmxvYWROb3cuCisKKwkqIGRsbHMvcmljaGVkMjAvY2FyZXQuYywgZGxscy9yaWNoZWQyMC9lZGl0b3IuYywKKwkgIGRsbHMvcmljaGVkMjAvZWRpdG9yLmgsIGRsbHMvcmljaGVkMjAvcGFpbnQuYywgZGxscy9yaWNoZWQyMC9wYXJhLmMsCisJICBkbGxzL3JpY2hlZDIwL3JlYWRlci5jLCBkbGxzL3JpY2hlZDIwL3JpY2hvbGUuYywgZGxscy9yaWNoZWQyMC9ydGYuaCwKKwkgIGRsbHMvcmljaGVkMjAvcnVuLmMsIGRsbHMvcmljaGVkMjAvc3RyaW5nLmMsIGRsbHMvcmljaGVkMjAvd3JhcC5jOgorCUtyenlzenRvZiBGb2x0bWFuIDxrZm9sdG1hbkBwb3J0YWwub25ldC5wbD4KKwktIFJURiByZWFkZXIgZG9lc24ndCB1c2UgUmljaEVkaXQgbWVzc2FnZXMgYW55bW9yZSAod2hpY2ggc2F2ZXMgb24KKwkgIHVubmVjZXNzYXJ5IHJlcGFpbnRzKQorCS0gYWRkZWQgdW5pY29kZSBjaGFyYWN0ZXIgc3VwcG9ydCB0byBSVEYgaW1wb3J0IChsaWtlOiBcdTEyMzQ1ID8pCisJLSBzbWFsbCBmaXhlcworCS0gZml4ZWQgd2hpdGVzcGFjZSBpZGVudGlmaWNhdGlvbiBidWcKKwktIHJlbW92ZWQgZHJhd2luZyBvZiBwYXJhZ3JhcGggbWFya3MKKwktIGltcHJvdmVkIHN0dWIgaW1wbGVtZW50YXRpb25zIGZvciBJUmljaEVkaXRPbGUKKworMjAwNS0wMy0xNiAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9yaWNoZWQyMC93cml0ZXIuYzogUGhpbCBLcnlsb3YgPHBoaWxAbmV3c3Rhci5yaW5ldC5ydT4KKwlJbXByb3ZlZCBSVEYgZXhwb3J0LgorCisJKiBpbmNsdWRlL3JpY2hlZGl0Lmg6IFBoaWwgS3J5bG92IDxwaGlsQG5ld3N0YXIucmluZXQucnU+CisJQWRkZWQgbWlzc2luZyBQRkVfIGFuZCBQRkFfIGRlZmluaXRpb25zLgorCisJKiBkbGxzL3dpbmluZXQvdGVzdHMvaHR0cC5jOiBKYWtvYiBFcmlrc3NvbiA8amFrb3ZAdm1saW51eC5vcmc+CisJVGVzdCBmYWlsZWQgYmVmb3JlIG9uIDk4LCBOVDQsIDIwMDAgYW5kIFhQLgorCisJKiBkbGxzL3gxMWRydi9rZXlib2FyZC5jLCBkbGxzL3gxMWRydi9tb3VzZS5jOgorCURvbid0IGZvcmNlIGluamVjdGVkIGhhcmR3YXJlIG1lc3NhZ2VzIHRvIGJlIHF1ZXVlZCBpbiB0aGUgY3VycmVudAorCXRocmVhZC4KKworCSogc2VydmVyL3F1ZXVlLmM6CisJUXVldWUgaGFyZHdhcmUgbWVzc2FnZXMgZXZlbiBpZiB3ZSBkb24ndCBmaW5kIGEgd2luZG93IGZvciB0aGVtIHRoZQorCWZpcnN0IHRpbWUgYXJvdW5kLgorCisJKiBNYWtlLnJ1bGVzLmluLCBkbGxzL01ha2V0ZXN0LnJ1bGVzLmluLCB0b29scy8uY3ZzaWdub3JlLAorCSAgdG9vbHMvTWFrZWZpbGUuaW4sIHRvb2xzL21ha2VfY3Rlc3RzLCB0b29scy9tYWtlX2N0ZXN0cy5jOgorCUNvbnZlcnRlZCB0aGUgbWFrZV9jdGVzdHMgc2NyaXB0IHRvIEMgKGJhc2VkIG9uIGEgcGF0Y2ggYnkgUm95Y2UKKwlNaXRjaGVsbCBJSUkpLgorCisJKiBzZXJ2ZXIvd2luZG93LmM6CisJQ29udmVydGVkIHRoZSB3aW5kb3cgY2hpbGRyZW4gbGlzdHMgdG8gc3RhbmRhcmQgbGlzdHMuCisKKwkqIGRsbHMvYXRsLy5jdnNpZ25vcmUsIGRsbHMvYXRsL01ha2VmaWxlLmluLCBkbGxzL2F0bC9hdGwucmdzLAorCSAgZGxscy9hdGwvYXRsX21haW4uYywgZGxscy9hdGwvcmVnaXN0cmFyLmMsIGRsbHMvYXRsL3JlZ3N2ci5jLAorCSAgZGxscy9hdGwvcnNyYy5yYzoKKwlKYWNlayBDYWJhbiA8amFja0BpdG1hLnB3ci53cm9jLnBsPgorCVVzZSBBVExSZWdpc3RyYXIgdG8gcmVnaXN0ZXIgYXRsLmRsbC4KKworCSogZGxscy9jb21jdGwzMi90ZXN0cy8uY3ZzaWdub3JlLCBkbGxzL2NvbWN0bDMyL3Rlc3RzL01ha2VmaWxlLmluLAorCSAgZGxscy9jb21jdGwzMi90ZXN0cy91cGRvd24uYzoKKwlDLiBTY290dCBBbmFuaWFuIDxjc2NvdHRAY3Njb3R0Lm5ldD4KKwlTdGFydGVkIGEgdW5pdCB0ZXN0IGNhc2UgZm9yIHRoZSB1cGRvd24gY29udHJvbC4KKworCSogZGxscy9zaGVsbDMyL2RlYnVnaGxwLmM6IEZpbGlwIE5hdmFyYSA8eG5hdmFyYUB2b2xueS5jej4KKwlfZGJnX0lMR2V0TmV4dCByZXR1cm5zIE5VTEwgaWYgcGlkbC0+bWtpZC5jYiBpcyB6ZXJvLCBmaXggdGhlIGxvb3BzCisJYWNjb3JkaW5nbHkuCisKKwkqIGRsbHMvcmljaGVkMjAvZWRpdG9yLmg6IEphc29uIEVkbWVhZGVzIDx1c0B0aGUtZWRtZWFkZXMuZGVtb24uY28udWs+CisJQ29ycmVjdCBtZW1vcnkgYWxsb2NhdGlvbiBtYWNyby4KKworCSogaW5jbHVkZS9tc2lkZWZzLmgsIGluY2x1ZGUvcHJvcGlkbC5pZGw6CisJTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCUFkZCBwcm9wZXJ0eSBJRHMgZm9yIE1TSSBzdW1tYXJ5IGluZm9ybWF0aW9uLgorCisJKiBkbGxzL2tlcm5lbC90ZXN0cy9wYXRoLmM6IEpha29iIEVyaWtzc29uIDxqYWtvdkB2bWxpbnV4Lm9yZz4KKwlGaXggYnJva2VuIHRlc3QuCisKKwkqIGRsbHMvZGRyYXcvdGVzdHMvZGRyYXdtb2Rlcy5jOiBKYWtvYiBFcmlrc3NvbiA8amFrb3ZAdm1saW51eC5vcmc+CisJU2V0RGlzcGxheU1vZGUgY2FuIHJldHVybiBEREVSUl9VTlNVUFBPUlRFRC4gSWYgaXQgZG9lcywgd2Ugc2hvdWxkbid0CisJdHJ5IHRvIHJlc3RvcmUgc29tZXRoaW5nIGVpdGhlci4KKworCSogZGxscy9udGRsbC9kaXJlY3RvcnkuYywgZGxscy9udGRsbC9maWxlLmM6CisJVWxyaWNoIEN6ZWthbGxhIDx1bHJpY2hAY29kZXdlYXZlcnMuY29tPgorCURvbid0IG1hcmsgYSBmaWxlIGFzIHJlYWRvbmx5IGlmIGl0IGhhcyBhbnkgd3JpdGUgYml0IHNldC4KKworCSogcHJvZ3JhbXMvdW5pbnN0YWxsZXIvbWFpbi5jOgorCURtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJR2V0RGxnSXRlbVRleHRXIHRha2VzIGJ1ZmZlciBsZW5ndGggaW4gV0NIQVJzIG5vdCBieXRlcy4KKworCSogZGxscy9jb21jdGwzMi9hbmltYXRlLmM6IERpbWl0cmllIE8uIFBhdW4gPGRwYXVuQHJvZ2Vycy5jb20+CisJQXVkaXQgdGhlIGNvbnRyb2wgYWdhaW5zdCBDb21jdGwzMi5kbGwgdmVyc2lvbiA2LjAuCisJUHJvcGVyIGhhbmRsaW5nIG9mIEdXTF9TVFlMRS4KKwlJbXBsZW1lbnQgV01fQ0xPU0UuIEZpeCBXTV9TSVpFIGltcGxlbWVudGF0aW9uLgorCVNtYWxsIGNsZWFudXBzLgorCisJKiBkbGxzL3NobHdhcGkvdGVzdHMvY2xpc3QuYzogSm9uIEdyaWZmaXRocyA8am9uX3BfZ3JpZmZpdGhzQHlhaG9vLmNvbT4KKwlGaXggdHdvIGZhaWx1cmVzIGFuZCAoaG9wZWZ1bGx5KSBhIGNyYXNoIHdpdGggZWFybHkgdmVyc2lvbnMuCisKKwkqIGRsbHMvc2hlbGwzMi9zaGVsbHBhdGguYzogSnVhbiBMYW5nIDxqdWFuX2xhbmdAeWFob28uY29tPgorCUNvcnJlY3QgcmVnaXN0ZXJpbmcgc2hlbGwgZm9sZGVycyAodmFsdWVzIGluIFNoZWxsIEZvbGRlcnMga2V5IHdlcmVuJ3QKKwlnZXR0aW5nIHdyaXR0ZW4pLgorCisJKiBpbmNsdWRlL3NobG9iai5oOiBNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJQWRkIGRlZmluZXMgZm9yIFNMREYgZmxhZ3MuCisKKwkqIGRsbHMvbXNpL2FjdGlvbi5jLCBkbGxzL21zaS9hY3Rpb24uaCwgZGxscy9tc2kvY3VzdG9tLmMsCisJICBkbGxzL21zaS9kaWFsb2cuYywgZGxscy9tc2kvZm9ybWF0LmMsIGRsbHMvbXNpL21zaXByaXYuaCwKKwkgIGRsbHMvbXNpL3RhYmxlLmM6CisJTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCS0gUmVuYW1lIGR1cHN0clcgdG8gc3RyZHVwVywgYW5kIHJlbW92ZSBkdXBsaWNhdGUgZGVmaW5pdGlvbi4KKwktIE1vdmUgZGVmaW5pdGlvbiBvZiBzdHJpbmcgbWFuaXB1bGF0aW9uIGZ1bmN0aW9ucyB0byBtc2lwcml2LmguCisKKwkqIGRsbHMvdXNlci90ZXN0cy93aW4uYzogRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlBY3R1YWxseSBwcmludCBkd0V4U3R5bGUgaW4gY2FzZSBvZiBhIG1pc21hdGNoLgorCisJKiBkbGxzL3dpbm1tL3dpbm1tLmM6IFJvYmVydCBSZWlmIDxyZWlmQGVhcnRobGluay5uZXQ+CisJUHJvdmlkZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIG9mIHdhdmVJblByZXBhcmVIZWFkZXIgYW5kCisJd2F2ZUluVW5wcmVwYXJlSGVhZGVyIGlmIGRyaXZlciBkb2Vzbid0IHN1cHBvcnQgdGhlbS4KKworCSogZGxscy9kc291bmQvY2FwdHVyZS5jOiBSb2JlcnQgUmVpZiA8cmVpZkBlYXJ0aGxpbmsubmV0PgorCXdhdmVJblByZXBhcmVIZWFkZXIgYW5kIHdhdmVJblVucHJlcGFyZUhlYWRlciBhcmUgbm90IHJlYWxseSBuZWVkZWQKKwliZWNhdXNlIHRoZSBjb250ZW50cyBkb24ndCBjaGFuZ2UuCisKKwkqIGRvY3VtZW50YXRpb24vZ2V0dGluZy5zZ21sOiBGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAZnJlZS5mcj4KKwlGaXggYSBsaW5rIHRvIFdpbmUncyBIb3dUby4KKworCSogZGxscy9yaWNoZWQyMC9lZGl0b3IuYywgZGxscy9yaWNoZWQyMC9yZWFkZXIuYywgZGxscy9yaWNoZWQyMC9ydGYuaDoKKwlLcnp5c3p0b2YgRm9sdG1hbiA8a2ZvbHRtYW5AcG9ydGFsLm9uZXQucGw+CisJLSBVbmtub3duIGRlc3RpbmF0aW9ucyBhcmUgbm93IGNvcnJlY3RseSBza2lwcGVkIChzbyBsb2FkaW5nIGFuIFJURgorCSAgZmlsZSBnZW5lcmF0ZWQgYnksIGZvciBleGFtcGxlLCBPcGVuT2ZmaWNlIGRvZXNuJ3QgcHJvZHVjZSBsb3RzIG9mCisJICBnYXJiYWdlIGFueW1vcmUpLgorCS0gRm9ybWF0IHN0YWNrIGZvciBSVEYgZ3JvdXBzIChzbyB0aGF0IFJURiByZWFkZXIgY2FuIGNvcnJlY3RseSByZWFkCisJICB3aGF0IFJURiB3cml0ZXIgd3JvdGUgOikgKQorCisJKiBkbGxzL3d0c2FwaTMyL3d0c2FwaTMyLmMsIGRsbHMvd3RzYXBpMzIvd3RzYXBpMzIuc3BlYywKKwkgIGluY2x1ZGUvd3RzYXBpMzIuaDoKKwlIYW5zIExlaWRla2tlciA8aGFuc0BpdC52dS5ubD4KKwlTdHViIGltcGxlbWVudGF0aW9ucyBmb3IgV1RTQ2xvc2VTZXJ2ZXIsIFdUU0Rpc2Nvbm5lY3RTZXNzaW9uLAorCVdUU0VudW1lcmF0ZVByb2Nlc3Nlc3tBLFd9LCBXVFNFbnVtZXJhdGVTZXNzaW9uc3tBLFd9LAorCVdUU1F1ZXJ5U2Vzc2lvbkluZm9ybWF0aW9uQS4KKworMjAwNS0wMy0xNSAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9kaW5wdXQvZGlucHV0X21haW4uYywgZGxscy9kaW5wdXQvZGlucHV0X3ByaXZhdGUuaCwKKwkgIGRsbHMvZGlucHV0L2pveXN0aWNrX2xpbnV4LmMsIGRsbHMvZGlucHV0L2pveXN0aWNrX2xpbnV4aW5wdXQuYywKKwkgIGRsbHMvZGlucHV0L2tleWJvYXJkLmMsIGRsbHMvZGlucHV0L21vdXNlLmM6CisJQnVpbGQgYSBzdGF0aWMgbGlzdCBvZiBkZXZpY2VzIGluc3RlYWQgb2YgcmVseWluZyBvbiBFTEYKKwljb25zdHJ1Y3RvcnMuCisKKwkqIGRsbHMva2VybmVsL3Rlc3RzL2Vudmlyb24uYzogSmFrb2IgRXJpa3Nzb24gPGpha292QHZtbGludXgub3JnPgorCU1vcmUgdHJhY2UgaW5mby4KKworCSogZGxscy9hZHZhcGkzMi90ZXN0cy9jcnlwdC5jOiBKYWtvYiBFcmlrc3NvbiA8amFrb3ZAdm1saW51eC5vcmc+CisJQ3J5cHRBY3F1aXJlQ29udGV4dEEoKSBjYW4gcmV0dXJuIE5URV9GQUlMIG9uIFdpbmRvd3MgOTguCisKKwkqIGRsbHMvZGJnaGVscC9tc2MuYzogRmlsaXAgTmF2YXJhIDx4bmF2YXJhQHZvbG55LmN6PgorCUluaXRpYWxpemUgdGhlICJ0b2MiIGZpZWxkIGluIHRoZSBwZGJfbG9va3VwIHN0cnVjdHVyZSBpbiBvcmRlciB0bworCXByZXZlbnQgcGRiX2ZyZWVfbG9va3VwIGZyb20gdHJ5aW5nIHRvIGRlbGV0ZSBpbnZhbGlkIHBvaW50ZXJzLgorCisJKiBkbGxzL2Rzb3VuZC9wcm9wc2V0LmM6IFJvYmVydCBSZWlmIDxyZWlmQGVhcnRobGluay5uZXQ+CisJVW5jb25kaXRpb25hbGx5IGZyZWUgbWVtb3J5LiBTaG91bGQgbWFrZSBzbWF0Y2ggaGFwcHkuCisKKwkqIGRsbHMvcmljaGVkMjAvcmVhZGVyLmMsIGRsbHMvcmljaGVkMjAvcnRmLmg6CisJUGhpbCBLcnlsb3YgPHBoaWxAbmV3c3Rhci5yaW5ldC5ydT4KKwlJbXBsZW1lbnRlZCBoYXNoIHRhYmxlIGxvb2t1cCBmb3IgUlRGIGtleXdvcmRzIGluIFJURiByZWFkZXIuCisKKwkqIHRvb2xzL3dpbmVidWlsZC9idWlsZC5oLCB0b29scy93aW5lYnVpbGQvbWFpbi5jLAorCSAgdG9vbHMvd2luZWJ1aWxkL3NwZWMzMi5jLCB0b29scy93aW5lYnVpbGQvdXRpbHMuYzoKKwlVc2UgdGhlIGNvcnJlY3QgZmlsZSBuYW1lIGluIHRoZSAiZ2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkiIGNvbW1lbnRzLgorCisJKiBkbGxzL3JpY2hlZDIwL2VkaXRvci5jLCBkbGxzL3JpY2hlZDIwL3dyaXRlci5jOgorCUtyenlzenRvZiBGb2x0bWFuIDxrZm9sdG1hbkBwb3J0YWwub25ldC5wbD4KKwktIFdNX0NPUFkgKGFuZCBXTV9DVVQpIGNhbiBub3cgcHV0IGJvdGggVW5pY29kZSBhbmQgUlRGIGZvcm1hdCAodGhhbmtzCisJICB0byBQaGlsIEtyeWxvdidzIFJURiBnZW5lcmF0b3IgY29kZSkuCisJLSBOZXcgbWVzc2FnZSBpbXBsZW1lbnRlZCAtIFdNX1BBU1RFLgorCS0gUlRGIHJlYWRlcjogcnRmUGxhaW4gaW1wbGVtZW50ZWQgKGtpbmQgb2YpLgorCS0gUlRGIHdyaXRlcjogcmV3cml0dGVuIG1haW4gbG9vcCAodGhlIG9sZCBvbmUgY3Jhc2hlZCBpbiBzb21lCisJICBjaXJjdW1zdGFuY2VzIHdoZW4gU0ZGX1NFTEVDVElPTiB3YXMgdXNlZCkuCisKKwkqIGRsbHMvZHNvdW5kL2NhcHR1cmUuYywgZGxscy9kc291bmQvZHNvdW5kLmMsCisJICBkbGxzL2Rzb3VuZC9kc291bmRfbWFpbi5jLCBkbGxzL2Rzb3VuZC9kc291bmRfcHJpdmF0ZS5oLAorCSAgZGxscy9kc291bmQvbWl4ZXIuYywgZGxscy9kc291bmQvcHJpbWFyeS5jLCBkbGxzL2Rzb3VuZC9wcm9wc2V0LmM6CisJUm9iZXJ0IFJlaWYgPHJlaWZAZWFydGhsaW5rLm5ldD4KKwlDaGFuZ2Ugc29tZSBnbG9iYWwgdmFyaWFibGUgbmFtZXMuCisJQ2xlYW51cCB1c2FnZSBvZiBnbG9iYWwgZHNvdW5kIHZhcmlhYmxlIHRvIG5vdCB1c2UgbG9jYWwgdmFyaWFibGUgb2YKKwlzYW1lIG5hbWUuCisJQWxtb3N0IHJlYWR5IHRvIGFkZCBzdXBwb3J0IGZvciBtb3JlIHRoYW4gb25lIHNvdW5kIGNhcmQgYXQgdGhlIHNhbWUKKwl0aW1lLgorCisJKiBERVZFTE9QRVJTLUhJTlRTOiBUb20gV2lja2xpbmUgPHR3aWNrbGluZUBnbWFpbC5jb20+CisJQWRkIHRocmVlIG1pc3NpbmcgZGxscyB0byB0aGUgbGlzdC4KKworCSogZGxscy9jb21jdGwzMi9hbmltYXRlLmM6IERpbWl0cmllIE8uIFBhdW4gPGRwYXVuQHJvZ2Vycy5jb20+CisJQ2xlYW51cCBhbmQgc2ltcGxpZnkgdGhlIHBhaW50aW5nIGNvZGUuCisJRml4IGEgcG90ZW50aWFsIGJ1ZyBhbG9uZyB0aGUgd2F5LgorCisJKiBkbGxzL3dpbm1tL3dhdmVtYXAvd2F2ZW1hcC5jLCBkbGxzL3dpbm1tL21jaS5jOgorCVJvYmVydCBSZWlmIDxyZWlmQGVhcnRobGluay5uZXQ+CisJRml4IG1lbW9yeSBsZWFrIGluIGVycm9yIHBhdGguCisKKwkqIGRsbHMvd2lubW0vbG9sdmxkcnYuYzogUm9iZXJ0IFJlaWYgPHJlaWZAZWFydGhsaW5rLm5ldD4KKwlGaXggbWVtb3J5IGxlYWsgd2hlbiB0aGVyZSBhcmUgdG9vIG1hbnkgZHJpdmVycy4KKworCSogZGxscy93aW5tbS93aW5tbS5jOiBKYXNvbiBFZG1lYWRlcyA8dXNAdGhlLWVkbWVhZGVzLmRlbW9uLmNvLnVrPgorCUF2b2lkIHRyYXAgaW4gbWl4ZXJHZXRMaW5lQ29udHJvbHNBIHdoZW4gY0NvbnRyb2xzIGlzIHVuaW5pdGlhbGl6ZWQKKwlhbmQgTUlYRVJfR0VUTElORUNPTlRST0xTU0ZfT05FQllUWVBFIHJlcXVlc3RlZC4KKworMjAwNS0wMy0xNCAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9tbGFuZy90ZXN0cy9tbGFuZy5jOgorCVN0ZWZhbiBMZWljaHRlciA8U3RlZmFuLkxlaWNodGVyQGNhbUxpbmUuY29tPgorCU1ha2UgbWxhbmdfdGVzdC5leGUgbG9hZGFibGUgb24gTlQgNC4wLgorCisJKiBkbGxzL3JpY2hlZDIwL01ha2VmaWxlLmluLCBkbGxzL3JpY2hlZDIwL2VkaXRvci5jLAorCSAgZGxscy9yaWNoZWQyMC9lZGl0b3IuaCwgZGxscy9yaWNoZWQyMC9lZGl0c3RyLmgsCisJICBkbGxzL3JpY2hlZDIwL3dyaXRlci5jOgorCVBoaWwgS3J5bG92IDxwaGlsQG5ld3N0YXIucmluZXQucnU+CisJSW5pdGlhbCBpbXBsZW1lbnRhdGlvbiBvZiBFTV9TVFJFQU1PVVQgYW5kIFJURiB3cml0ZXIuCisKKwkqIGRsbHMvcmljaGVkMjAvcmVhZGVyLmMsIGRsbHMvcmljaGVkMjAvcnRmLmg6CisJUGhpbCBLcnlsb3YgPHBoaWxAbmV3c3Rhci5yaW5ldC5ydT4KKwlBZGRlZCAiZ2VuZXJhdG9yIiBSVEYgZGVzdGluYXRpb24gaGFuZGxpbmcuCisKKwkqIGluY2x1ZGUvcmljaGVkaXQuaDogUGhpbCBLcnlsb3YgPHBoaWxAbmV3c3Rhci5yaW5ldC5ydT4KKwlBZGRlZCBtaXNzaW5nIFBGQV9KVVNUSUZZIGRlZmluaXRpb24uCisKKwkqIGRsbHMvYWR2YXBpMzIvdGVzdHMvc2VjdXJpdHkuYzoKKwlBdm9pZCBhY2Nlc3NpbmcgYW4gdW5pbml0aWFsaXplZCBzdHJpbmcgaW4gdGhlIGZhaWx1cmUgY2FzZS4KKworCSogZG9jdW1lbnRhdGlvbi9zYW1wbGVzL2NvbmZpZywgZG9jdW1lbnRhdGlvbi93aW5lLmNvbmYubWFuLAorCSAgbWlzYy9yZWdpc3RyeS5jOgorCUdldCByaWQgb2YgdGhlIHJlbWFpbmluZyByZWdpc3RyeSBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMuCisKKwkqIHNlcnZlci9xdWV1ZS5jOgorCUF2b2lkIHJldHVybmluZyBoYXJkd2FyZSBtZXNzYWdlcyBpZiB0aGV5IGhhdmUgbm8gY2hhbmNlIHRvIG1hdGNoIHRoZQorCWZpbHRlci4KKworCSogZGxscy9hZHZwYWNrL2FkdnBhY2suYywgZGxscy9hZHZwYWNrL2FkdnBhY2suc3BlYzoKKwlNYXR0aGV3IE1hc3RyYWNjaSA8bW1hc3RyYWNAY2FuYWRhLmNvbT4KKwlJbXBsZW1lbnQgUmVnaXN0ZXJPQ1guCisJU3R1YiBmb3IgRGVsTm9kZVJ1bkRMTDMyLgorCisJKiBkbGxzL3VzZXIvdGVzdHMvbXNnLmMsIGRsbHMvdXNlci90ZXN0cy93aW4uYywgd2luZG93cy93aW4uYzoKKwlEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCURvIG5vdCByZWxlYXNlIGNhcHR1cmUgYmVmb3JlIHNlbmRpbmcgV01fTkNERVNUUk9ZIG1lc3NhZ2UsIHVwZGF0ZSB0aGUKKwl0ZXN0cyB0byByZWZsZWN0IHRoYXQuCisKKwkqIGluY2x1ZGUvc2hsZ3VpZC5oLCBpbmNsdWRlL3NobG9iai5oLCBpbmNsdWRlL3Nob2JqaWRsLmlkbDoKKwlNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJTW92ZSBpbnRlcmZhY2UgZGVjbGFyYXRpb25zIHRvIHNob2JqaWRsLmlkbC4KKworCSogZGxscy91c2VyL2xzdHIuYywgZGxscy91c2VyL21lc3NhZ2UuYzoKKwlQZXRlciBCZXJnIExhcnNlbiA8cGVibEBtYXRoLmt1LmRrPgorCUFzc29ydGVkIG1lbWxlYWsgZml4ZXMuIEZvdW5kIG9uIE1pY2hhZWwgU3RlZmFuaXVjIHNtYXRjaCBsaXN0LgorCisJKiBkb2N1bWVudGF0aW9uL3NhbXBsZXMvY29uZmlnLCBtaXNjL3JlZ2lzdHJ5LmMsIHNlcnZlci9yZWdpc3RyeS5jOgorCUdldCByaWQgb2YgdGhlIHJlZ2lzdHJ5IHNhdmluZyBsZXZlbCBoYWNrLgorCU1ha2UgcGVyaW9kaWMgc2F2aW5nIHRoZSBkZWZhdWx0IGJlaGF2aW9yLgorCisJKiBkbGxzL3JwY3J0NC9ycGNydDRfbWFpbi5jOiBSYWxmIFMuIEVuZ2Vsc2NoYWxsIDxyc2VAZW5nZWxzY2hhbGwuY29tPgorCUZpeCBpbmNvcnJlY3QgcmFuZG9tIG11bHRpY2FzdCBNQUMgYWRkcmVzcyBjcmVhdGlvbi4KKworCSogZGxscy9udGRsbC9udGRsbC5zcGVjOiBJdmFuIExlbyBQdW90aSA8aXZhbmxlb0BnbWFpbC5jb20+CisJVXBkYXRlIG50ZGxsLnNwZWMgYWdhaW5zdCBjdXJyZW50IE1pY3Jvc29mdCBidWlsZC4KKworCSogZGxscy9hdGwvLmN2c2lnbm9yZSwgZGxscy9hdGwvTWFrZWZpbGUuaW4sIGRsbHMvYXRsL2F0bGlmYWNlLmlkbCwKKwkgIGRsbHMvYXRsL3JlZ2lzdHJhci5jLCBkbGxzL2F0bC9yZWdzdnIuYzoKKwlKYWNlayBDYWJhbiA8amFja0BpdG1hLnB3ci53cm9jLnBsPgorCUFkZGVkIGltcGxlbWVudGF0aW9uIG9mIEFUTFJlZ2lzdHJhci4KKworCSogZGxscy9jb21jdGwzMi90cmVldmlldy5jOiBFdmFuIERlYXVibCA8d2luZUB3YXJwZWR2aWV3LmNvbT4KKwlUUkVFVklFV19Eb1NlbGVjdEl0ZW0gc2hvdWxkIG5vdCBkbyBhbnkgb2YgdGhlIFRWR05fRklSU1RWSVNJQkxFIHdvcmsKKwlpZiB0aGUgbmV3U2VsZWN0IHBhcmFtZXRlciBpcyBOVUxMLgorCisJKiBkbGxzL3NoZWxsMzIvc2hlbGwzMl9tYWluLmgsIGRsbHMvc2hlbGwzMi9zaGZsZHJfZGVza3RvcC5jLAorCSAgZGxscy9zaGVsbDMyL3NobHZpZXcuYywgZGxscy9zaGVsbDMyL3Nodl9iZ19jbWVudS5jOgorCU1hcnRpbiBGdWNocyA8bWFydGluLWZ1Y2hzQGdteC5uZXQ+CisJLSBzd2l0Y2ggdG8gY29ycmVjdCBzaGVsbCBkZXNrdG9wIGNvbnRleHQgbWVudQorCS0gbGF1bmNoIGRlc2suY3BsIHdoZW4gYWN0aXZhdGluZyB0aGUgZGVza3RvcCBjb250ZXh0IG1lbnUgZW50cnkKKwkgICJwcm9wZXJ0aWVzIgorCS0gZG9uJ3Qgc2VuZCBXTV9DT01NQU5EIGlmIHdlIGRpZG4ndCBnZXQgYSBzaGVsbCB2aWV3IHdpbmRvdworCisJKiBwcm9ncmFtcy93aW5lZGJnL2RiZy55OiBDLiBTY290dCBBbmFuaWFuIDxjc2NvdHRAY3Njb3R0Lm5ldD4KKwlBZGQgdFNUUklORyB0byB0aGUgcGF0aG5hbWUgcHJvZHVjdGlvbiwgc28gdGhhdCB5b3UgY2FuIHF1b3RlIGEKKwlwYXRobmFtZSB3aGljaCBjb250YWlucyAnb2RkJyBjaGFyYWN0ZXJzLgorCisJKiBwcm9ncmFtcy93aW5lZGJnL2RlYnVnLmw6IEMuIFNjb3R0IEFuYW5pYW4gPGNzY290dEBjc2NvdHQubmV0PgorCU1vdmUgZGVmaW5pdGlvbiBvZiAndFBBVEgnIHRva2VuIHVwLCBzbyB0aGF0ICcvJywgJy4nIGFuZCAnMHhBJyAoZXRjKQorCWFyZSBsZXhlZCBhcyBwYXRocyAoaW4gdGhlIGFwcHJvcHJpYXRlIGNvbnRleHRzKSBpbnN0ZWFkIG9mIGFzCisJb3BlcmF0b3Igb3IgbnVtYmVyIHRva2Vucy4KKwlBZGQgJy0nIHRvIHRoZSBzZXQgb2YgY2hhcmFjdGVycyBsZWdhbCBpbiBhIHBhdGhuYW1lLgorCisJKiBkb2N1bWVudGF0aW9uL3dpbmVkZXYta2VybmVsLnNnbWw6CisJRXJpYyBQb3VlY2ggPHBvdWVjaC1lcmljQHdhbmFkb28uZnI+CisJLSByZW9yZ2FuaXNhdGlvbiBvZiBmdWxsIGNoYXB0ZXIKKwktIHJld3JvdGUgdGhlIGNvbnNvbGUgcGFydAorCS0gYWRkZWQgRlMgZG9jdW1lbnRhdGlvbgorCisJKiBkbGxzL29sZTMyL2NsaXBib2FyZC5jOiBKb3JpcyBIdWl6ZXIgPGpvcmlzaHVpemVyQHBsYW5ldC5ubD4KKwlBIGZldyBtZW1vcnkgY2hlY2tzIGF2b2lkaW5nIG1lbW9yeSBsZWFrcy4KKworCSogZGxscy93aW5lZDNkL2Jhc2V0ZXh0dXJlLmMsIGRsbHMvd2luZWQzZC9jdWJldGV4dHVyZS5jLAorCSAgZGxscy93aW5lZDNkL2RldmljZS5jLCBkbGxzL3dpbmVkM2Qvc3VyZmFjZS5jLAorCSAgZGxscy93aW5lZDNkL3RleHR1cmUuYywgZGxscy93aW5lZDNkL3ZvbHVtZS5jLAorCSAgZGxscy93aW5lZDNkL3ZvbHVtZXRleHR1cmUuYywgZGxscy93aW5lZDNkL3dpbmVkM2RfcHJpdmF0ZS5oLAorCSAgaW5jbHVkZS93aW5lL3dpbmVkM2RfaW50ZXJmYWNlLmg6CisJT2xpdmVyIFN0aWViZXIgPG9saXZlcl9zdGllYmVyQHlhaG9vLmNvLnVrPgorCUVuY2Fwc3VsYXRlIHRleHR1cmUsIHN1cmZhY2UgZW5jYXBzdWxhdGVkLgorCUFkZGVkIEJpbmRUZXh0dXJlLCBHZXRUZXh0dXJlRGltZW5zaW9ucywgVW5CaW5kVGV4dHVyZS4KKwlQcm9wZXIgR2V0Q29udGFpbmVyIHN1cHBvcnQgZm9yIHN1cmZhY2UuCisJU2V0Q29udGFpbmVyIGFkZGVkIHRvIHN1cmZhY2UgYW5kIHZvbHVtZS4KKwlTZXRJblBidWZmZXJTdGF0ZSBhZGRlZCB0byBzdXJmYWNlICh1bnRpbCBnbCBjb250ZXh0IG1hbmFnZW1lbnQgaXMKKwlpbXBsZW1lbnRlZCkuCisJTWlub3IgY2hhbmdlczoKKwktIEJhc2VUZXh0dXJlIG5vIGxvbmdlciAnaG9sZHMnIGEgcmVmZXJlbmNlIHRvIElXaW5lRDNERGV2aWNlIHRvCisJICBwcmV2ZW50IGNpcmN1bGFyIHJlZmVyZW5jaW5nLgorCS0gQmV0dGVyIG1hbmFnbWVudCBvZiByZWZlcmluZ2luZyBmb3IgdGV4dHVyZS4KKwktIFNvbWUgVE9ETydzIGZvciBpbXBsZW1lbnRpbmcgYSBjb250ZXh0IG1hbmFnZXIuCisJLSBCZXR0ZXIgcHJlbG9hZCBpbXBsZW1lbnRhdGlvbi4KKwktIEZpeCBjb21waWxlIHdhcm5pbmcgaW4gZGV2aWNlLmMgU2V0L0dldFNhbXBsZXJTdGF0ZS4KKwktIEFkZCBRdWVyeUludGVyZmFjZSBzdXBwb3J0IGZvciBzdXJmYWNlLgorCS0gRm9ybWF0IFg4UjhHOEI4IGFkZGVkIHRvIGxvY2tpbmcuCisKKwkqIGRsbHMvcnBjcnQ0L25kcl9taWRsLmMsIGRsbHMvcnBjcnQ0L3JwY19iaW5kaW5nLmMsCisJICBkbGxzL3JwY3J0NC9ycGNfbWVzc2FnZS5jLCBkbGxzL3JwY3J0NC9ycGNfc2VydmVyLmMsCisJICBkbGxzL3JwY3J0NC9ycGNydDQuc3BlYywgZGxscy9ycGNydDQvcnBjcnQ0X21haW4uYzoKKwlSb2JlcnQgU2hlYXJtYW4gPHJvYkBjb2Rld2VhdmVycy5jb20+CisJLSBScGNNZ210U3RvcFNlcnZlckxpc3RlbiBzaG91bGQgbm90IGFmZmVjdCBhdXRvLWxpc3RlbiBpbnRlcmZhY2VzLgorCS0gSW1wbGVtZW50IHN0dWIgZm9yIFJwY1JldmVydFRvU2VsZkV4LgorCS0gQ2hhbmdlIHRoZSBtb3JlIHZlcmJvc2UgZmlsZXMgdG8gdXNlIGEgbmV3IGRlYnVnIGNoYW5uZWwsICJycGMuIgorCisJKiBkbGxzL2NvbWN0bDMyL3Rlc3RzL21ydS5jOiBKb24gR3JpZmZpdGhzIDxqb25fcF9ncmlmZml0aHNAeWFob28uY29tPgorCUNvbW1lbnQgb3V0IGEgdGVzdCB0aGF0IGNyYXNoZXMgb24gZWFybHkgdmVyc2lvbnMuCisKKwkqIGRsbHMvc2hsd2FwaS9wYXRoLmMsIGRsbHMvc2hsd2FwaS90ZXN0cy9wYXRoLmM6CisJSm9uIEdyaWZmaXRocyA8am9uX3BfZ3JpZmZpdGhzQHlhaG9vLmNvbT4KKwlUZXN0cyBhbmQgc21hbGwgZml4IGZvciBQYXRoTWFrZVByZXR0eSgpLgorCUZpeCBhIGNyYXNoIGFuZCB0ZXN0IGZhaWx1cmUgd2l0aCBlYXJseSBuYXRpdmUgZGxscy4KKworCSogZGxscy9jb21jdGwzMi9hbmltYXRlLmM6IERpbWl0cmllIE8uIFBhdW4gPGRwYXVuQHJvZ2Vycy5jb20+CisJVW5pY29kaWZpY2F0aW9uIGFuZCB0eXBlc2FmZSBpbnRlcmZhY2VzLgorCisJKiBkbGxzL29sZWF1dDMyL3RtYXJzaGFsLmM6IE1pa2UgSGVhcm4gPG1oQGNvZGV3ZWF2ZXJzLmNvbT4KKwlSb2JlcnQgU2hlYXJtYW4gPHJvYkBjb2Rld2VhdmVycy5jb20+CisJLSBJbXBsZW1lbnQgVlRfQllSRUYgfCBWVF9CU1RSIG1hcnNoYWxsaW5nLgorCS0gQWRkIG1vcmUgaW50ZWdlciB0eXBlcyBmb3IgbWFyc2hhbGluZyBhbmQgdW5tYXJzaGFsaW5nLgorCS0gSW1wbGVtZW50IFZUX0JZUkVGIHwgVlRfQlNUUiB1bm1hcnNoYWxpbmcuCisJLSBEb24ndCBhbGxvY2F0ZSBtZW1vcnkgZm9yIFRLSU5EX0RJU1BBVENIL1RLSU5EX0lOVEVSRkFDRQorCSAgdW5tYXJzaGFsaW5nIGFzIGl0IHdpbGwgYmUgbG9zdCBpbiB0aGUgc3VjY2VzcyBjYXNlIGFuZCBpbnRlcmZlcmVzCisJICB3aXRoIHRoZSBmYWlsdXJlIGNhc2UuCisKKwkqIGRsbHMvbnRkbGwvcmVnLmM6IEl2YW4gTGVvIFB1b3RpIDxpdmFubGVvQGdtYWlsLmNvbT4KKwlNYWtlIFJ0bCpSZWdpc3RyeSogZnVuY3Rpb25zIGNhc2UgaW5zZW5zaXRpdmUuCisKKwkqIGRsbHMvcmljaGVkMjAvY2FyZXQuYzogR2VyYWxkIFBmZWlmZXIgPGdlcmFsZEBwZmVpZmVyLmNvbT4KKwlNYWtlIE1FX0Fycm93TGVmdCgpIHJldHVybiBhIHZhbHVlIGluIGV2ZXJ5IGNhc2UuCisKKwkqIGluY2x1ZGUvbnBhcGkuaDogTWFydGluIEZ1Y2hzIDxtYXJ0aW4tZnVjaHNAZ214Lm5ldD4KKwlGaXggZnVuY3Rpb24gZGVmaW5pdGlvbnMgZm9yIG1zdmMgYnVpbGQuCisKKwkqIGRsbHMvY29tbWRsZy9wcmludGRsZy5jOiBKdWFuIExhbmcgPGp1YW5fbGFuZ0B5YWhvby5jb20+CisJQ2hhbmdlIGEgZml4bWUgdG8gYSB3YXJuLCBhbmQgdXNlIFcgdmVyc2lvbiBvZiBjYWxsLgorCisJKiBkbGxzL2dkaS9tZXRhZmlsZS5jOiBVbHJpY2ggQ3pla2FsbGEgPHVscmljaEBjb2Rld2VhdmVycy5jb20+CisJSWYgYSB6ZXJvIGluZGV4IGlzIHBhc3NlZCB0byBNRVRBX1NFTEVDVENMSVBSRUdJT04gcmVzZXQgdGhlIGNsaXAKKwlyZWdpb24uCisKKwkqIHByb2dyYW1zL3dpbmV0ZXN0L21haW4uYzogRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlTcGVjaWFsIGNhc2UgV2luOXggcGxhdGZvcm1zIGluIHRoZSBkZXNrdG9wIHZpc2liaWxpdHkgdGVzdCwgaW4gV2luOTgKKwlHZXRVc2VyT2JqZWN0SW5mb3JtYXRpb24gaXMgYSBzdHViIHJldHVybmluZyBFUlJPUl9DQUxMX05PVF9JTVBMRU1FTlRFRC4KKworCSogZGxscy9uZXRhcGkzMi90ZXN0cy93a3N0YS5jOiBKdWFuIExhbmcgPGp1YW5fbGFuZ0B5YWhvby5jb20+CisJRml4IGEgdGVzdCB0byBwYXNzIHVuZGVyIFhQLgorCisJKiBkbGxzL3VzZXIvdGVzdHMvbXNnLmMsIGRsbHMvdXNlci90ZXN0cy93aW4uYzoKKwlEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCUZpeCBzb21lIG1zZy5jIGFuZCB3aW4uYyBmYWlsdXJlcyBydW5uaW5nIG9uIE5UNCBhbmQgWFAuCisKKwkqIHByb2dyYW1zL3dpbmVjZmcvZHJpdmUuYywgcHJvZ3JhbXMvd2luZWNmZy9kcml2ZXVpLmM6CisJU3RldmVuIEVkd2FyZHMgPHN0ZXZlbl9lZDQxNTNAeWFob28uY29tPgorCVBvcnRpbmcgZml4ZXMuCisKKwkqIGRsbHMvbXNjbXMvbXNjbXMuc3BlYzogU3RldmVuIEVkd2FyZHMgPHN0ZXZlbl9lZDQxNTNAeWFob28uY29tPgorCUNvcnJlY3QgQ2hlY2tCaXRtYXBCaXRzIGVudHJ5LgorCisJKiBkbGxzL21hcGkzMi9NYWtlZmlsZS5pbjogU3RldmVuIEVkd2FyZHMgPHN0ZXZlbl9lZDQxNTNAeWFob28uY29tPgorCUxpbmsgbWFwaTMyIHRvIG50ZGxsLgorCisJKiBkbGxzL250ZGxsL3RpbWUuYzogQWxleCBWaWxsYWPtcyBMYXNzbyA8YV92aWxsYWNpc0BwYWxvc2FudG8uY29tPgorCUFkZCBFQ1QgdG8gdGltZXpvbmUgbGlzdC4KKworCSogZGxscy9kc291bmQvdGVzdHMvcHJvcHNldC5jOiBSb2JlcnQgUmVpZiA8cmVpZkBlYXJ0aGxpbmsubmV0PgorCVByaXZhdGUgcHJvcGVydHkgc2V0cyBkbyBub3QgZXhpc3QgaW4gZWFybHkgdmVyc2lvbnMgb2YgRGlyZWN0IFNvdW5kCisJc28gc2tpcCB0ZXN0cyBpZiBub3Qgc3VwcG9ydGVkLgorCUFkZCB0ZXN0cyBmb3IgQSwgVyBhbmQgMSB2YXJpYXRpb25zIG9mIGRhdGEuCisKKwkqIGRsbHMvZHNvdW5kL3Byb3BzZXQuYzogUm9iZXJ0IFJlaWYgPHJlaWZAZWFydGhsaW5rLm5ldD4KKwlBZGQgbWlzc2luZyBmdW5jdGlvbmFsaXR5LgorCUFkZCBtb3JlIGFuZCBiZXR0ZXIgZXJyb3IgbWVzc2FnZXMuCisJQWRkIGNoZWNrcyBmb3IgZmFpbGVkIEhlYXBBbGxvYy4KKworCSogZGxscy94MTFkcnYvY2xpcGJvYXJkLmMsIGRsbHMveDExZHJ2L3hyZW5kZXIuYzoKKwlQZXRlciBCZXJnIExhcnNlbiA8cGVibEBtYXRoLmt1LmRrPgorCUFzc29ydGVkIG1lbWxlYWsgZml4ZXMuIEZvdW5kIG9uIE1pY2hhZWwgU3RlZmFuaXVjIHNtYXRjaCBsaXN0LgorCisyMDA1LTAzLTExICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL3dzb2NrMzIvc29ja2V0LmM6IFJlcGxhY2UgY2FsbG9jKCkgYnkgSGVhcEFsbG9jKCkuCisKKwkqIGluY2x1ZGUvZGlucHV0Lmg6IEdldCByaWQgb2YgdmVyc2lvbiAjaWZkZWZzLgorCisJKiBkbGxzL29sZTMyL3N0b3JhZ2UzMi5jLCBkbGxzL29sZTMyL3Rlc3RzL3N0b3JhZ2UzMi5jOgorCU1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlTdGdPcGVuU3RvcmFnZSBzaG91bGRuJ3Qgb3BlbiB6ZXJvIGxlbmd0aCBzdG9yYWdlIGZpbGVzLgorCisJKiBwcm9ncmFtcy91bmluc3RhbGxlci9Dcy5yYywgcHJvZ3JhbXMvdW5pbnN0YWxsZXIvRGUucmMsCisJICBwcm9ncmFtcy91bmluc3RhbGxlci9Fcy5yYywgcHJvZ3JhbXMvdW5pbnN0YWxsZXIvRnIucmMsCisJICBwcm9ncmFtcy91bmluc3RhbGxlci9JdC5yYywgcHJvZ3JhbXMvdW5pbnN0YWxsZXIvUHQucmMsCisJICBwcm9ncmFtcy91bmluc3RhbGxlci9yc3JjLnJjOgorCUpvbmF0aGFuIEVybnN0IDxKb25hdGhhbkBFcm5zdEZhbWlseS5jaD4KKwlJbnRlcm5hdGlvbmFsaXphdGlvbi4KKworCSogZG9jdW1lbnRhdGlvbi9zYW1wbGVzL2NvbmZpZywgbWlzYy9yZWdpc3RyeS5jOgorCUdldCByaWQgb2YgdGhlIFdpbmRvd3MgcmVnaXN0cnkgbG9hZGluZyBvbiBzdGFydHVwLCB0aGlzIG5lZWRzIHRvIGJlCisJZG9uZSBkaWZmZXJlbnRseS4KKworCSogZGxscy93aW5zb2NrL3Rlc3RzL3NvY2suYzogVGhvbWFzIEtobyA8dGhvbWFza2hvQGdtYWlsLmNvbT4KKwlBZGRlZCBzZWxlY3Rfc2VydmVyKCkgdGVzdCB0aGF0IHVzZXMgc2VsZWN0KCkgaW4gc2VydmluZyBjbGllbnRzLgorCisJKiBkbGxzL3dzb2NrMzIvc29ja2V0LmMsIGRsbHMvd2lubW0vZHJpdmVyLmMsIGRsbHMvd2lubW0vbW1pby5jLAorCSAgZGxscy93aW5tbS9tbXN5c3RlbS5jLCBkbGxzL3dpbm1tL3RpbWUuYzoKKwlQZXRlciBCZXJnIExhcnNlbiA8cGVibEBtYXRoLmt1LmRrPgorCUFzc29ydGVkIG1lbWxlYWsgZml4ZXMuIEZvdW5kIG9uIE1pY2hhZWwgU3RlZmFuaXVjIHNtYXRjaCBsaXN0LgorCisJKiBwcm9ncmFtcy91bmluc3RhbGxlci9Fbi5yYywgcHJvZ3JhbXMvdW5pbnN0YWxsZXIvTWFrZWZpbGUuaW4sCisJICBwcm9ncmFtcy91bmluc3RhbGxlci9tYWluLmMsIHByb2dyYW1zL3VuaW5zdGFsbGVyL3JzcmMucmM6CisJSm9uYXRoYW4gRXJuc3QgPEpvbmF0aGFuQEVybnN0RmFtaWx5LmNoPgorCUFkZCBzZWFyY2ggZmllbGQgd2l0aCBmaW5kLWFzLXlvdS10eXBlIGZ1bmN0aW9uLgorCisJKiB0b29scy93aW5lZ2NjL3dpbmVnY2MuYzogRGltaXRyaWUgTy4gUGF1biA8ZHBhdW5Acm9nZXJzLmNvbT4KKwlVc2UgLWlzeXN0ZW0gZm9yIHN5c3RlbSBpbmNsdWRlcyBhcyB0aGV5IHNob3VsZCBiZSBwcm9jZXNzZWQgYWZ0ZXIgdGhlCisJLUkgaW5jbHVkZXMuIFNwb3R0ZWQgYnkgQm9heiBIYXJyb3NoLgorCisJKiBkbGxzL2QzZDkvYmFzZXRleHR1cmUuYywgZGxscy9kM2Q5L2N1YmV0ZXh0dXJlLmMsCisJICBkbGxzL2QzZDkvaW5kZXhidWZmZXIuYywgZGxscy9kM2Q5L3Jlc291cmNlLmMsIGRsbHMvZDNkOS9zdXJmYWNlLmMsCisJICBkbGxzL2QzZDkvdGV4dHVyZS5jLCBkbGxzL2QzZDkvdmVydGV4YnVmZmVyLmMsIGRsbHMvZDNkOS92b2x1bWUuYywKKwkgIGRsbHMvZDNkOS92b2x1bWV0ZXh0dXJlLmMsIGRsbHMvZDNkOS92c2hhZGVyZGVjbGFyYXRpb24uYzoKKwlPbGl2ZXIgU3RpZWJlciA8b2xpdmVyX3N0aWViZXJAeWFob28uY28udWs+CisJQ2hhbmdlIEFkZFJlZiBpbiBxdWVyeUludGVyZmFjZSB0byBJVW5rbm93bl9BZGRSZWYuCisJTW92ZSBwcFZvdWxtZSB0byBkM2Q5dm9sb3VtZWltcGwgc3RydWN0dXJlLgorCVNvbWUgbWlub3Igc3R5bGlzdGljIGNoYW5nZXMgKG1ha2luZyBldmVyeXRoaW5nIHRoZSBzYW1lKS4KKworCSogZGxscy9yaWNoZWQyMC9lZGl0b3IuYywgZGxscy9yaWNoZWQyMC9yZWFkZXIuYywgZGxscy9yaWNoZWQyMC9ydW4uYywKKwkgIGRsbHMvcmljaGVkMjAvc3R5bGUuYywgZGxscy9yaWNoZWQyMC91bmRvLmM6CisJS3J6eXN6dG9mIEZvbHRtYW4gPGtmb2x0bWFuQHBvcnRhbC5vbmV0LnBsPgorCS0gRU1fU1RSRUFNSU4gY2FuIG5vdyBkZWFsIHdpdGggdW5kbyBpbiBhIHJlYXNvbmFibGUgbWFubmVyIChubworCSAgbXVsdGlwbGUgdW5kbyBhY3Rpb25zIGluIG9uZSBFTV9TVFJFQU1JTikuCisJLSBSZWxhdGVkIGNoYW5nZXMgdG8gdW5kbyBjb2RlICh1bUlnbm9yZSBtb2RlIGlzIG5vdyBoYW5kbGVkCisJICBjb3JyZWN0bHkpLgorCS0gTnVtZXJvdXMgaW1wcm92ZW1lbnRzIGluIHRoZSBSVEYgcmVhZGVyOiBpdCByZWFkcyBzb21lIGNoYXJhY3RlcgorCSAgYXR0cmlidXRlcyBub3cgKHlvdSB3aWxsIGhhdmUgcHJvcGVyIHNtYWxsIHByaW50IGluIGxpY2Vuc2UgYWdyZWVtZW50cworCSAgbm93KS4KKwktIEZpeGVkIGEgbWVtb3J5IG92ZXJ3cml0ZSBidWcgaW4gY29udmVyc2lvbiBmcm9tIENIQVJGT1JNQVQyQSB0bworCSAgQ0hBUkZPUk1BVDJXLgorCisJKiBkbGxzL29sZTMyL2NvbXBvYmouYywgZGxscy9vbGUzMi9jb21wb2JqX3ByaXZhdGUuaCwKKwkgIGRsbHMvb2xlMzIvbWFyc2hhbC5jLCBkbGxzL29sZTMyL3JwYy5jLCBkbGxzL29sZTMyL3N0dWJtYW5hZ2VyLmM6CisJUm9iZXJ0IFNoZWFybWFuIDxyb2JAY29kZXdlYXZlcnMuY29tPgorCS0gUmVuYW1lIGFwYXJ0bWVudCBmdW5jdGlvbnMgdG8gYmVjb21lIG1vcmUgb2JqZWN0LW9yaWVudGVkLgorCS0gUmVuYW1lIHJlZ2lzdGVyX2lmc3R1YiB0byBtYXJzaGFsX29iamVjdCB0byBtb3JlIGFjY3VyYXRlbHkgZGVzY3JpYmUKKwkgIHdoYXQgaXQgZG9lcy4KKwktIEFkZCBuZXcgZnVuY3Rpb24sIGFwYXJ0bWVudF9nZXRveGlkLCB0byBwcmVwYXJlIGZvciBhIHBvc3NpYmxlCisJICBmdXR1cmUgcGF0Y2ggd2hlcmUgcmVtb3RpbmcgaXMgc3RhcnRlZCBvbiBkZW1hbmQuCisKKwkqIGRsbHMvb2xlYXV0MzIvdG1hcnNoYWwuYzogUm9iZXJ0IFNoZWFybWFuIDxyb2JAY29kZXdlYXZlcnMuY29tPgorCUFkZCBvdXRlciB1bmtub3duIHN1cHBvcnQgZm9yIHR5cGVsaWIgbWFyc2hhbGVyLgorCisyMDA1LTAzLTEwICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBWRVJTSU9OLCBjb25maWd1cmUsIEFOTk9VTkNFLCBDaGFuZ2VMb2c6IFJlbGVhc2UgMjAwNTAzMTAuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDIwMDUtMDMtMTAgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CiAKIAkqIGRsbHMvc2hkb2N2dy9zaGRvY3Z3X21haW4uYzogSnVhbiBMYW5nIDxqdWFuX2xhbmdAeWFob28uY29tPgpkaWZmIC0tZ2l0IGEvVkVSU0lPTiBiL1ZFUlNJT04KaW5kZXggY2M3MzY0OS4uMmNjMjU4YiAxMDA2NDQKLS0tIGEvVkVSU0lPTgorKysgYi9WRVJTSU9OCkBAIC0xICsxIEBACi1XaW5lIHZlcnNpb24gMjAwNTAzMTAKK1dpbmUgdmVyc2lvbiAyMDA1MDQxOQpkaWZmIC0tZ2l0IGEvY29uZmlndXJlIGIvY29uZmlndXJlCmluZGV4IDk4YTBjN2MuLjM1ZmZkOTcgMTAwNzU1Ci0tLSBhL2NvbmZpZ3VyZQorKysgYi9jb25maWd1cmUKQEAgLTEsNiArMSw2IEBACiAjISAvYmluL3NoCiAjIEd1ZXNzIHZhbHVlcyBmb3Igc3lzdGVtLWRlcGVuZGVudCB2YXJpYWJsZXMgYW5kIGNyZWF0ZSBNYWtlZmlsZXMuCi0jIEdlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi41OSBmb3IgV2luZSAyMDA1MDMxMC4KKyMgR2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjU5IGZvciBXaW5lIDIwMDUwNDE5LgogIwogIyBSZXBvcnQgYnVncyB0byA8d2luZS1kZXZlbEB3aW5laHEub3JnPi4KICMKQEAgLTI2OSw4ICsyNjksOCBAQAogIyBJZGVudGl0eSBvZiB0aGlzIHBhY2thZ2UuCiBQQUNLQUdFX05BTUU9J1dpbmUnCiBQQUNLQUdFX1RBUk5BTUU9J3dpbmUnCi1QQUNLQUdFX1ZFUlNJT049JzIwMDUwMzEwJwotUEFDS0FHRV9TVFJJTkc9J1dpbmUgMjAwNTAzMTAnCitQQUNLQUdFX1ZFUlNJT049JzIwMDUwNDE5JworUEFDS0FHRV9TVFJJTkc9J1dpbmUgMjAwNTA0MTknCiBQQUNLQUdFX0JVR1JFUE9SVD0nd2luZS1kZXZlbEB3aW5laHEub3JnJwogCiBhY191bmlxdWVfZmlsZT0ic2VydmVyL2F0b20uYyIKQEAgLTc4OCw3ICs3ODgsNyBAQAogICAjIE9taXQgc29tZSBpbnRlcm5hbCBvciBvYnNvbGV0ZSBvcHRpb25zIHRvIG1ha2UgdGhlIGxpc3QgbGVzcyBpbXBvc2luZy4KICAgIyBUaGlzIG1lc3NhZ2UgaXMgdG9vIGxvbmcgdG8gYmUgYSBzdHJpbmcgaW4gdGhlIEEvVVggMy4xIHNoLgogICBjYXQgPDxfQUNFT0YKLVxgY29uZmlndXJlJyBjb25maWd1cmVzIFdpbmUgMjAwNTAzMTAgdG8gYWRhcHQgdG8gbWFueSBraW5kcyBvZiBzeXN0ZW1zLgorXGBjb25maWd1cmUnIGNvbmZpZ3VyZXMgV2luZSAyMDA1MDQxOSB0byBhZGFwdCB0byBtYW55IGtpbmRzIG9mIHN5c3RlbXMuCiAKIFVzYWdlOiAkMCBbT1BUSU9OXS4uLiBbVkFSPVZBTFVFXS4uLgogCkBAIC04NTMsNyArODUzLDcgQEAKIAogaWYgdGVzdCAtbiAiJGFjX2luaXRfaGVscCI7IHRoZW4KICAgY2FzZSAkYWNfaW5pdF9oZWxwIGluCi0gICAgIHNob3J0IHwgcmVjdXJzaXZlICkgZWNobyAiQ29uZmlndXJhdGlvbiBvZiBXaW5lIDIwMDUwMzEwOiI7OworICAgICBzaG9ydCB8IHJlY3Vyc2l2ZSApIGVjaG8gIkNvbmZpZ3VyYXRpb24gb2YgV2luZSAyMDA1MDQxOToiOzsKICAgIGVzYWMKICAgY2F0IDw8XF9BQ0VPRgogCkBAIC05ODQsNyArOTg0LDcgQEAKIHRlc3QgLW4gIiRhY19pbml0X2hlbHAiICYmIGV4aXQgMAogaWYgJGFjX2luaXRfdmVyc2lvbjsgdGhlbgogICBjYXQgPDxcX0FDRU9GCi1XaW5lIGNvbmZpZ3VyZSAyMDA1MDMxMAorV2luZSBjb25maWd1cmUgMjAwNTA0MTkKIGdlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi41OQogCiBDb3B5cmlnaHQgKEMpIDIwMDMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCkBAIC05OTgsNyArOTk4LDcgQEAKIFRoaXMgZmlsZSBjb250YWlucyBhbnkgbWVzc2FnZXMgcHJvZHVjZWQgYnkgY29tcGlsZXJzIHdoaWxlCiBydW5uaW5nIGNvbmZpZ3VyZSwgdG8gYWlkIGRlYnVnZ2luZyBpZiBjb25maWd1cmUgbWFrZXMgYSBtaXN0YWtlLgogCi1JdCB3YXMgY3JlYXRlZCBieSBXaW5lICRhc19tZSAyMDA1MDMxMCwgd2hpY2ggd2FzCitJdCB3YXMgY3JlYXRlZCBieSBXaW5lICRhc19tZSAyMDA1MDQxOSwgd2hpY2ggd2FzCiBnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNTkuICBJbnZvY2F0aW9uIGNvbW1hbmQgbGluZSB3YXMKIAogICAkICQwICRACkBAIC0yMDQxOSw3ICsyMDQxOSw3IEBACiB9ID4mNQogY2F0ID4mNSA8PF9DU0VPRgogCi1UaGlzIGZpbGUgd2FzIGV4dGVuZGVkIGJ5IFdpbmUgJGFzX21lIDIwMDUwMzEwLCB3aGljaCB3YXMKK1RoaXMgZmlsZSB3YXMgZXh0ZW5kZWQgYnkgV2luZSAkYXNfbWUgMjAwNTA0MTksIHdoaWNoIHdhcwogZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjU5LiAgSW52b2NhdGlvbiBjb21tYW5kIGxpbmUgd2FzCiAKICAgQ09ORklHX0ZJTEVTICAgID0gJENPTkZJR19GSUxFUwpAQCAtMjA0ODIsNyArMjA0ODIsNyBAQAogCiBjYXQgPj4kQ09ORklHX1NUQVRVUyA8PF9BQ0VPRgogYWNfY3NfdmVyc2lvbj0iXFwKLVdpbmUgY29uZmlnLnN0YXR1cyAyMDA1MDMxMAorV2luZSBjb25maWcuc3RhdHVzIDIwMDUwNDE5CiBjb25maWd1cmVkIGJ5ICQwLCBnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNTksCiAgIHdpdGggb3B0aW9ucyBcXCJgZWNobyAiJGFjX2NvbmZpZ3VyZV9hcmdzIiB8IHNlZCAncy9bXFwiIlxgXCRdL1xcXFwmL2cnYFxcIgogCg==