ZGlmZiAtLWdpdCBhL0FOTk9VTkNFIGIvQU5OT1VOQ0UKaW5kZXggMThiYmY1YS4uNWNiNzE2MCAxMDA2NDQKLS0tIGEvQU5OT1VOQ0UKKysrIGIvQU5OT1VOQ0UKQEAgLTEsMTMgKzEsMTQgQEAKLVRoaXMgaXMgcmVsZWFzZSAyMDA0MDQwOCBvZiBXaW5lLCBhIGZyZWUgaW1wbGVtZW50YXRpb24gb2YgV2luZG93cyBvbgorVGhpcyBpcyByZWxlYXNlIDIwMDQwNTA1IG9mIFdpbmUsIGEgZnJlZSBpbXBsZW1lbnRhdGlvbiBvZiBXaW5kb3dzIG9uCiBVbml4LiAgVGhpcyBpcyBzdGlsbCBhIGRldmVsb3BlcnMgb25seSByZWxlYXNlLiAgVGhlcmUgYXJlIG1hbnkgYnVncwogYW5kIHVuaW1wbGVtZW50ZWQgZmVhdHVyZXMuICBNb3N0IGFwcGxpY2F0aW9ucyBzdGlsbCBkbyBub3Qgd29yawogY29ycmVjdGx5LgogCi1XSEFUJ1MgTkVXIHdpdGggV2luZS0yMDA0MDQwODogKHNlZSBDaGFuZ2VMb2cgZm9yIGRldGFpbHMpCi0gICAgICAgIC0gRE9TIGRldmljZXMgYW5kIGRyaXZlcyBhcmUgbm93IGNvbmZpZ3VyZWQgdGhyb3VnaCBzeW1saW5rcy4KLSAgICAgICAgLSBNYW55IHNoZWxsMzIgaW1wcm92ZW1lbnRzLgotICAgICAgICAtIE5ldyB0YXNrIG1hbmFnZXIgbWVyZ2VkIGZyb20gUmVhY3RPUy4KLSAgICAgICAgLSBGaXJzdCB2ZXJzaW9uIG9mIHdpbmVwcmVmaXhjcmVhdGUgdG9vbCBmb3IgaW5pdGlhbCBzZXR1cC4KK1dIQVQnUyBORVcgd2l0aCBXaW5lLTIwMDQwNTA1OiAoc2VlIENoYW5nZUxvZyBmb3IgZGV0YWlscykKKyAgICAgICAgLSBNYW55IG1vcmUgZmlsZXN5c3RlbSBpbXByb3ZlbWVudHMsIGluY2x1ZGluZyBhdXRvZGV0ZWN0aW9uCisgICAgICAgICAgb2YgZHJpdmUgdHlwZXMgYW5kIGRldmljZXMsIGFuZCBzdXBwb3J0IGZvciBlZGl0aW5nIHRoZSBkcml2ZQorICAgICAgICAgIGNvbmZpZ3VyYXRpb24gd2l0aCB3aW5lY2ZnLgorICAgICAgICAtIE1hbnkgRGlyZWN0M0QgaW1wcm92ZW1lbnRzLgorICAgICAgICAtIFNldmVyYWwgZml4ZXMgdG8gdGhlIHZhcmlvdXMgc291bmQgZHJpdmVycy4KICAgICAgICAgLSBMb3RzIG9mIGJ1ZyBmaXhlcy4KIAogU2VlIHRoZSBSRUFETUUgZmlsZSBpbiB0aGUgZGlzdHJpYnV0aW9uIGZvciBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zLgpAQCAtMTYsOCArMTcsOCBAQAogdGhlIHJlbGVhc2UgaXMgYXZhaWxhYmxlIGF0IHRoZSBmdHAgc2l0ZXMuICBUaGUgc291cmNlcyB3aWxsIGJlIGF2YWlsYWJsZQogZnJvbSB0aGUgZm9sbG93aW5nIGxvY2F0aW9uczoKIAotICBodHRwOi8vd3d3LmliaWJsaW8ub3JnL3B1Yi9MaW51eC9BTFBIQS93aW5lL2RldmVsb3BtZW50L1dpbmUtMjAwNDA0MDgudGFyLmd6Ci0gIGh0dHA6Ly9wcmRvd25sb2Fkcy5zb3VyY2Vmb3JnZS5uZXQvd2luZS9XaW5lLTIwMDQwNDA4LnRhci5negorICBodHRwOi8vd3d3LmliaWJsaW8ub3JnL3B1Yi9MaW51eC9BTFBIQS93aW5lL2RldmVsb3BtZW50L1dpbmUtMjAwNDA1MDUudGFyLmd6CisgIGh0dHA6Ly9wcmRvd25sb2Fkcy5zb3VyY2Vmb3JnZS5uZXQvd2luZS9XaW5lLTIwMDQwNTA1LnRhci5negogCiBJdCBzaG91bGQgYWxzbyBiZSBhdmFpbGFibGUgZnJvbSBhbnkgb3RoZXIgc2l0ZSB0aGF0IG1pcnJvcnMgaWJpYmxpby5vcmcuCiBUaGVzZSBsb2NhdGlvbnMgYWxzbyBob2xkIHByZS1idWlsdCBkb2N1bWVudGF0aW9uIHBhY2thZ2VzIGluIHZhcmlvdXMKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBiYzJjMWY0Li5lOGZkMzRiIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDQgKzEsMTU5MCBAQAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMjAwNC0wNS0wNSAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZG9jdW1lbnRhdGlvbi9SRUFETUUuZGUsIGRvY3VtZW50YXRpb24vUkVBRE1FLmZyLAorCSAgZG9jdW1lbnRhdGlvbi9SRUFETUUuaXQsIGRvY3VtZW50YXRpb24vUkVBRE1FLnB0X2JyOgorCVZpbmNlbnQgQulyb24gPHZiZXJvbkBtZWNhbm8uZ21lLnVzaGVyYi5jYT4KKwlLZWVwIHRoZSB0cmFuc2xhdGVkIFJFQURNRXMgaW4gc3luYyB3aXRoIHRoZSBFbmdsaXNoIG9uZS4KKworCSogZGxscy9xdWFydHovTWFrZWZpbGUuaW4sIGRsbHMvcXVhcnR6L21haW4uYywKKwkgIGRsbHMvcXVhcnR6L3F1YXJ0el9wcml2YXRlLmgsIGRsbHMvcXVhcnR6L3JlZ3N2ci5jLAorCSAgZGxscy9xdWFydHovc3lzdGVtY2xvY2suYzoKKwlSYXBoYWVsIEp1bnF1ZWlyYSA8ZmVuaXhAY2x1Yi1pbnRlcm5ldC5mcj4KKwlJbXBsZW1lbnRlZCBTeXN0ZW1DbG9jayAoSVJlZmVyZW5jZUNsb2NrIGJ5IGRzaG93KS4KKworCSogY29udHJvbHMvc2Nyb2xsLmM6CisJUmVtb3ZlIGJpdG1hcHMgdGhhdCB3ZXJlIG9ubHkgdXNlZCBmb3IgdGhlIDMuMSBsb29rLgorCisJKiBkbGxzL2NvbW1kbGcvZmlsZWRsZy5jOiBXb2xmZ2FuZyBTY2h3b3R6ZXIgPHdvc2Nod290QGdteC5uZXQ+CisJVXBkYXRlIE9GTl9SRUFET05MWSBmbGFnIHdoZW4gY2xvc2luZyBmaWxlIGRpYWxvZy4KKworCSogdG9vbHMvd2luZXByZWZpeGNyZWF0ZS5pbjoKKwlBZGRlZCBvcHRpb25zIHRvIHVwZGF0ZSBhbiBleGlzdGluZyBXSU5FUFJFRklYIGRpcmVjdG9yeSBhbmQgdG8gcnVuCisJZnJvbSBpbnNpZGUgYSBXaW5lIHNvdXJjZSB0cmVlLgorCisJKiBkbGxzL2tlcm5lbC9wcm9jZXNzLmM6CisJU2V0IGFkZGl0aW9uYWwgZW52aXJvbm1lbnQgdmFyaWFibGVzIGF0IHN0YXJ0dXAgZnJvbQorCUhLTE1cU3lzdGVtXEN1cnJlbnRDb250cm9sU2V0XENvbnRyb2xcU2Vzc2lvbiBNYW5hZ2VyXEVudmlyb25tZW50LgorCisJKiBkbGxzL3dpbm1tL3dpbmVhbHNhL2F1ZGlvLmM6CisJSmFtZXMgQ291cnRpZXItRHV0dG9uIDxKYW1lc0BzdXBlcmJ1Zy5kZW1vbi5jby51az4KKwlVcGRhdGVkIHRvIHRoZSBuZXcgYWxzYSBhcGkuCisKKwkqIGRsbHMvdXNlci90ZXN0cy9tc2cuYzoKKwlBIGNvdXBsZSBvZiBjaGFuZ2VzIHRvIGF2b2lkIHNvbWUgZmFpbHVyZXMgb24gWFAuCisKKwkqIGRsbHMvc2V0dXBhcGkvZGlyaWQuYzogQWRkZWQgc3VwcG9ydCBmb3IgRElSSURfVVNFUlBST0ZJTEUuCisKKwkqIGNvbnRyb2xzL2ljb250aXRsZS5jOiBTdGV2ZW4gRWR3YXJkcyA8c3RldmVuX2VkNDE1M0B5YWhvby5jb20+CisJUmVtb3ZlIHVudXNlZCBoZWFkZXIuCisKKwkqIHByb2dyYW1zL3dpbmV0ZXN0L21haW4uYzogRmVyZW5jIFdhZ25lciA8d2ZlcmlAYWZhdmFudC5lbHRlLmh1PgorCVRoZSBtc2FjbSBkaXJlY3RvcnkgaXMgc3BlY2lhbC4KKworCSogZGxscy9vbGVhdXQzMi90ZXN0cy92YXJ0eXBlLmM6CisJSm9uIEdyaWZmaXRocyA8am9uX3BfZ3JpZmZpdGhzQHlhaG9vLmNvbT4KKwlUcmFjZSB0aGUgc3lzdGVtIGFuZCB1c2VyIGxvY2FsZXMgdXBvbiBzdGFydHVwLgorCVByaW50IHRoZSByZXR1cm5lZCBzdHJpbmcgaWYgVmFyRGF0ZUNoYW5nZVR5cGVFeCBmYWlscy4KKworCSogZGxscy9kbWltZS9kbWltZV9wcml2YXRlLmgsIGRsbHMvZG1pbWUvcGVyZm9ybWFuY2UuYzoKKwlSYXBoYWVsIEp1bnF1ZWlyYSA8ZmVuaXhAY2x1Yi1pbnRlcm5ldC5mcj4KKwktIGZpeCBjUmVmIExlYWsgKGluaXQgdG8gMSwgc2hvdWxkIGJlIDApIG9mIElETVBlcmZvcm1hbmNlCisJLSBTZW5kUE1zZyBpbXBsZW1lbnRhdGlvbgorCS0gYmVnaW4gb2YgUGVyZm9ybWFuY2UgUHJvY2Vzc2luZyBxdWV1ZXMgaW1wbGVtZW50YXRpb24KKworCSogZGxscy9udGRsbC9kZWJ1Z3Rvb2xzLmMsIGRsbHMvbnRkbGwvbG9hZGVyLmM6CisJSW5pdGlhbGl6ZSBudGRsbCBkZWJ1Z2dpbmcgZWFybGllciBvbiBzbyB0aGF0IHdlIGNhbiB0cmFjZSB0aGUgc2VydmVyCisJc3RhcnR1cCB0b28uCisKKwkqIGRsbHMva2VybmVsL2NvbnNvbGUuYywgaW5jbHVkZS93aW5jb24uaDoKKwlSZXBsYWNlZCBMUElOUFVUX1JFQ09SRCBieSBQSU5QVVRfUkVDT1JELgorCisJKiBERVZFTE9QRVJTLUhJTlRTLCBSRUFETUUsIGRvY3VtZW50YXRpb24vUEFDS0FHSU5HOgorCVN0ZXZlbiBFZHdhcmRzIDxzdGV2ZW5fZWQ0MTUzQHlhaG9vLmNvbT4KKwlNaW5vciBkb2N1bWVudGF0aW9uIHVwZGF0ZXMuCisKKwkqIGRsbHMvbnRkbGwvZW52LmM6CisJRml4ZWQgUnRsU2V0RW52aXJvbm1lbnRWYXJpYWJsZSB0byBkZWFsIHByb3Blcmx5IHdpdGggVW5pY29kZSBzdHJpbmdzCisJdGhhdCBhcmVuJ3QgbnVsbC10ZXJtaW5hdGVkLgorCisJKiBkbGxzL250ZGxsL3Rlc3RzL3J0bHN0ci5jOiBGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAZnJlZS5mcj4KKwlXZSBzaG91bGQgbm90IG1ha2UgZGVzdHN0cmluZyBzdGF0aWMgc2luY2Ugd2UgY291bnQgb24gaXQgYmVpbmcgZnJlc2gKKwlhbmQgY2xlYW4gd2hlbiBlbnRlcmluZyB0ZXN0X1J0bENvcHlTdHJpbmcoKS4KKworCSogZGxscy91c2VyL3Rlc3RzL21zZy5jOiBGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAZnJlZS5mcj4KKwlBZGQgdHJhaWxpbmcgJ1xuJ3MgdG8gb2soKSBjYWxscy4KKworCSogZGxscy9kbWltZS9hdWRpb3BhdGguYywgZGxscy9kbWltZS9kbWltZV9wcml2YXRlLmgsCisJICBkbGxzL2RtaW1lL3BlcmZvcm1hbmNlLmMsIGRsbHMvZG1pbWUvc2VnbWVudC5jOgorCVJhcGhhZWwgSnVucXVlaXJhIDxmZW5peEBjbHViLWludGVybmV0LmZyPgorCS0gZml4IERpcmVjdFNvdW5kIENyZWF0aW9uIGJ5IGRtdXNpYyAoZml4IHJlY2VudCBVbnJlYWwyIHJlZ3Jlc3Npb24pCisJICB1c2luZyBSb2JlcnQgUmVpZiBwYXRjaAorCS0gdXNlIG9mIEZvcmVncm91bmRXaW5kb3cgaWYgaFduZCBpcyBOVUxMIChhcyBzcGVjaWZpZWQgb24gbXNkbiBkb2NzKQorCS0gYmVnaW4gb2YgUGVyZm9ybWFuY2UgUE1zZyBpbXBsZW1lbnRhdGlvbiAod2Ugc2hvdWxkIHVzZSBhIHByb2Nlc3NpbmcKKwkgIHRocmVhZCkKKwktIGJldHRlciBTZWdtZW50IGxvYWRpbmcKKwktIHNvbWUgc3R1YnMgZm9yIElzRGlydHkgKGFsd2F5cyBGQUxTRSkKKworCSogZGxscy9kbXNjcmlwdC9zY3JpcHQuYzogUmFwaGFlbCBKdW5xdWVpcmEgPGZlbml4QGNsdWItaW50ZXJuZXQuZnI+CisJTWFrZSBJRGlyZWN0TXVzaWNTY3JpcHRJbXBsX0lEaXJlY3RNdXNpY1NjcmlwdF9DYWxsUm91dGluZSByZXR1cm4gU19PSworCSh3aXRoIEVfTk9USU1QTCB3ZSBoYXZlIHNvbWUgYXBwcyBjcmFzaGVzKS4KKworCSogZGxscy91cmxtb24vdXJsbW9uLnNwZWMsIGRsbHMvdXJsbW9uL3VybG1vbl9tYWluLmMsIGluY2x1ZGUvdXJsbW9uLmgsCisJICBpbmNsdWRlL3VybG1vbi5pZGw6CisJS2V2aW4gS29sdHphdSA8a2V2aW5AcGxvcC5vcmc+CisJSW1wbGVtZW50ZWQgQ29JbnRlcm5ldENvbWJpbmVVcmwgYW5kIENvSW50ZXJuZXRDb21wYXJlVXJsLgorCisJKiBkbGxzL2QzZDgvZGV2aWNlLmMsIGRsbHMvd2lubW0vd2luZW9zcy9hdWRpby5jLAorCSAgZG9jdW1lbnRhdGlvbi9tdWx0aW1lZGlhLnNnbWwsIHByb2dyYW1zL3Rhc2ttZ3IvdGFza21nci5jOgorCUZyYW5jb2lzIEdvdWdldCA8ZmdvdWdldEBmcmVlLmZyPgorCUFzc29ydGVkIHNwZWxsaW5nIGZpeGVzLgorCisJKiBkbGxzL3NobHdhcGkvdGVzdHMvc3RyaW5nLmM6IEpha29iIEVyaWtzc29uIDxqYWtvdkB2bWxpbnV4Lm9yZz4KKwlXaW5kb3dzIDk1IGhhcyBubyBTdHJSZXRUb0JTVFIsIGFkZCBkeW5hbWljIGxvb2t1cCB0byBhdm9pZCBibG9ja2luZworCWRpYWxvZy4KKworCSogZGxscy91c2VyL3Rlc3RzL2lucHV0LmM6IEpha29iIEVyaWtzc29uIDxqYWtvdkB2bWxpbnV4Lm9yZz4KKwlQcmV2ZW50IFdpbmRvd3MgOTUgZnJvbSBibG9ja2luZyBvbiBsaW5raW5nIGlzc3VlLgorCisJKiBkbGxzL3dpbm1tL3dpbmVqYWNrL2F1ZGlvLmM6CisJRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGNvZGV3ZWF2ZXJzLmNvbT4KKwl3aW5lamFjay5kcnYgb25seSBzdXBwb3J0cyAxNmJpdCBzb3VuZCBzbyB3ZSBjYW4gc2ltcGxpZnkgdGhlIHNvdW5kCisJZm9ybWF0IGNoZWNrcy4KKworCSogZGxscy93aW5tbS93aW5lYXJ0cy9hcnRzLmM6IEZyYW5jb2lzIEdvdWdldCA8ZmdvdWdldEBjb2Rld2VhdmVycy5jb20+CisJSWYgQVJUU19XYXZlSW5pdCgpIGZhaWxlZCB0aGVuIHRyYW5zbWl0IHRoZSBmYWlsdXJlIHVwc3RyZWFtIGluCisJQVJUU19Ecml2ZXJQcm9jKCkuCisKKwkqIHByb2dyYW1zL3dpbmV0ZXN0L01ha2VmaWxlLmluOiBSb2JlcnQgUmVpZiA8cmVpZkBlYXJ0aGxpbmsubmV0PgorCUFkZGVkIG1zYWNtMzIgdG8gdGhlIHRlc3RzLgorCisJKiBkbGxzL3dpbm1tL2xvbHZsZHJ2LmM6IEZyYW5jb2lzIEdvdWdldCA8ZmdvdWdldEBjb2Rld2VhdmVycy5jb20+CisJVGFraW5nIGludG8gYWNjb3VudCB3YXZlbWFwIGFuZCBtaWRpbWFwIHRoZXJlIGNhbiBiZSB1cCB0byA4IG91dHB1dAorCWRyaXZlcnMuIFNvIGluY3JlYXNlIHRoZSBzaXplIG9mIHRoZSBNTURydnMgYXJyYXkgYWNjb3JkaW5nbHkuCisJU2tpcCBhbHJlYWR5IGxvYWRlZCBkcml2ZXJzIGJlZm9yZSBjb21wbGFpbmluZyAoYXNzZXJ0aW5nKSB0aGF0IHRoZXkKKwlkb24ndCBmaXQgaW4gdGhlIE1NRHJ2cyBhcnJheS4KKworMjAwNC0wNS0wNCAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy91c2VyL3Rlc3RzL3dpbi5jOgorCVNvbWUgbW9yZSB0ZXN0cyBmb3IgZm9jdXMgYmVoYXZpb3Igd2hlbiBoaWRpbmcvc2hvd2luZyB3aW5kb3dzLgorCisJKiBkbGxzL2NvbWN0bDMyL2hlYWRlci5jLCBkbGxzL2dkaS9wcmludGRydi5jLCBkbGxzL2lwaGxwYXBpL2lwc3RhdHMuYywKKwkgIGRsbHMva2VybmVsL3Rlc3RzL21haWxzbG90LmMsIGRsbHMva2VybmVsL3Rlc3RzL3BpcGUuYywKKwkgIGRsbHMvbXN2Y3J0L3Rlc3RzL2ZpbGUuYywgZGxscy9tc3ZjcnQvdGVzdHMvc2NhbmYuYywKKwkgIGRsbHMvbXN2Y3J0L3Rlc3RzL3N0cmluZy5jLCBkbGxzL29sZTMyL3N0b3JhZ2UzMi5jLAorCSAgZGxscy9zaGx3YXBpL3JlZy5jLCBkbGxzL3VybG1vbi91bW9uLmMsIGRsbHMvdXNlci90ZXN0cy9yZXNvdXJjZS5jLAorCSAgZGxscy93aW5lcHMvZG93bmxvYWQuYywgZGxscy93aW5lcHMvcGVuLmMsIGRsbHMvd2luZXBzL3BzLmMsCisJICBkbGxzL3dpbmVwcy9wc2Rydi5oLCBkbGxzL3dpbmVwcy90eXBlNDIuYywgZGxscy94MTFkcnYvd2luZWNsaXBzcnYuYywKKwkgIGRsbHMveDExZHJ2L3hyZW5kZXIuYywgcHJvZ3JhbXMvY2xvY2svbWFpbi5jLAorCSAgcHJvZ3JhbXMvY21kbGd0c3QvY21kbGd0c3QuYywgcHJvZ3JhbXMvd2NtZC9iYXRjaC5jLAorCSAgcHJvZ3JhbXMvd2NtZC9idWlsdGlucy5jLCBwcm9ncmFtcy93Y21kL2RpcmVjdG9yeS5jLAorCSAgcHJvZ3JhbXMvd2NtZC93Y21kLmgsIHByb2dyYW1zL3djbWQvd2NtZG1haW4uYywKKwkgIHByb2dyYW1zL3dpbmV0ZXN0L21haW4uYywgcHJvZ3JhbXMvd2luZXRlc3Qvc2VuZC5jLAorCSAgcHJvZ3JhbXMvd2luaGVscC9zdHJpbmcuYywgcHJvZ3JhbXMvd2luaGVscC93aW5oZWxwLmgsCisJICB0b29scy93aWRsL3dpZGwuYywgdG9vbHMvd21jL21jbC5jLCB0b29scy93bWMvbWN5LnksCisJICB0b29scy93bWMvdXRpbHMuYywgdG9vbHMvd3JjL3JlYWRyZXMuYywgdG9vbHMvd3JjL3dyYy5jOgorCUZyYW5jb2lzIEdvdWdldCA8ZmdvdWdldEBmcmVlLmZyPgorCU1ha2Ugb3VyIGFzY2lpIHN0cmluZ3Mgc3RhdGljIGNvbnN0LgorCVJlbW92ZSBhIGNvdXBsZSBzdHJpbmcgdmFyaWFibGVzIHRoYXQgd2VyZSB1c2VkIG9ubHkgb25jZSBhbmQgdXNlIHRoZQorCXN0cmluZyBsaXRlcmFsIGRpcmVjdGx5LgorCisJKiBkbGxzL29sZTMyL2NvbXBvYmouYywgZGxscy9vbGUzMi9kYXRhY2FjaGUuYywKKwkgIGRsbHMvb2xlMzIvZGVmYXVsdGhhbmRsZXIuYywgZGxscy9vbGUzMi9maWxlbW9uaWtlci5jLAorCSAgZGxscy9vbGUzMi9pZnMuYywgZGxscy9vbGUzMi9pdGVtbW9uaWtlci5jLCBkbGxzL29sZTMyL21hcnNoYWwuYywKKwkgIGRsbHMvb2xlMzIvbW9uaWtlci5jLCBkbGxzL29sZTMyL29sZTIuYywgZGxscy9vbGUzMi9vbGUyaW1wbC5jLAorCSAgZGxscy9vbGUzMi9vbGVwcm94eS5jLCBkbGxzL29sZTMyL3N0b3JhZ2UzMi5jOgorCU1hcmN1cyBNZWlzc25lciA8bWFyY3VzQGpldC5mcmFua2VuLmRlPgorCUZpeGVkIHN0cmljdCBhbGlhc2luZyBpc3N1ZXMgaW4gZGxscy9vbGUzMi4KKworCSogZGxscy94MTFkcnYveDExZHJ2X21haW4uYzoKKwlEb24ndCBjbG9zZSB0aGUgY3VycmVudCB0aHJlYWQgZGlzcGxheSBvbiBwcm9jZXNzIGV4aXQsIHdlIGRvbid0IGNsb3NlCisJdGhlIG90aGVyIG9uZXMgYW55d2F5LiBTaG91bGQgYXZvaWQgWFJlbmRlciBlcnJvciBpbiBtZXRhZmlsZSB0ZXN0LgorCisJKiBwcm9ncmFtcy93aW5lY2ZnL0VuLnJjLCBwcm9ncmFtcy93aW5lY2ZnL01ha2VmaWxlLmluLAorCSAgcHJvZ3JhbXMvd2luZWNmZy9kcml2ZS5jLCBwcm9ncmFtcy93aW5lY2ZnL3Jlc291cmNlLmgsCisJICBwcm9ncmFtcy93aW5lY2ZnL3dpbmVjZmcuYywgcHJvZ3JhbXMvd2luZWNmZy93aW5lY2ZnLmg6CisJQ2hyaXMgTW9yZ2FuIDxjbW9yZ2FuQGFsdW0ud3BpLmVkdT4KKwlJbXBsZW1lbnRlZCBhbiBhcnJheSBvZiAyNiBkcml2ZXMgYW5kIGludGVyZmFjZSBmdW5jdGlvbnMgZm9yIGFkZGluZywKKwljb3B5aW5nLCBtb3ZpbmcgYW5kIGRlbGV0aW5nIGRyaXZlcy4KKwlBZGRlZCBhICJTaG93L0hpZGUgQWR2YW5jZWQiIGJ1dHRvbiBpbiB0aGUgZHJpdmUgZWRpdCBkaWFsb2cgdGhhdAorCXRvZ2dsZXMgdGhlIGRpc3BsYXkgb2YgYWR2YW5jZWQgb3B0aW9ucyBhbmQgcmVzaXplcy9tb3ZlcyBjb250cm9scy4KKwlEaXNhYmxlIHRoZSAnYXV0b2RldGVjdCcgcmFkaW8gYnV0dG9uIGluIHRoZSBkcml2ZSBlZGl0IGRpYWxvZyB1bnRpbAorCXdlIGhhdmUgYXV0b2RldGVjdGlvbiBzdXBwb3J0LgorCU1hcCB3aW5kb3cgJ3gnIGJ1dHRvbiB0byBkaWFsb2cgY2xvc2UuCisKKwkqIHByb2dyYW1zL3JlZ2VkaXQvRW4ucmMsIHByb2dyYW1zL3JlZ2VkaXQvRXMucmMsCisJICBwcm9ncmFtcy9yZWdlZGl0L0ZyLnJjLCBwcm9ncmFtcy9yZWdlZGl0L0l0LnJjLAorCSAgcHJvZ3JhbXMvcmVnZWRpdC9ObC5yYywgcHJvZ3JhbXMvcmVnZWRpdC9QbC5yYywKKwkgIHByb2dyYW1zL3JlZ2VkaXQvUHQucmMsIHByb2dyYW1zL3JlZ2VkaXQvUnUucmMsCisJICBwcm9ncmFtcy9yZWdlZGl0L1NpLnJjLCBwcm9ncmFtcy9yZWdlZGl0L2NoaWxkd25kLmMsCisJICBwcm9ncmFtcy9yZWdlZGl0L2VkaXQuYywgcHJvZ3JhbXMvcmVnZWRpdC9mcmFtZXduZC5jLAorCSAgcHJvZ3JhbXMvcmVnZWRpdC9saXN0dmlldy5jLCBwcm9ncmFtcy9yZWdlZGl0L21haW4uYywKKwkgIHByb2dyYW1zL3JlZ2VkaXQvbWFpbi5oLCBwcm9ncmFtcy9yZWdlZGl0L3Jlc291cmNlLmgsCisJICBwcm9ncmFtcy9yZWdlZGl0L3JzcmMucmM6CisJS3J6eXN6dG9mIEZvbHRtYW4gPGtmb2x0bWFuQHBvcnRhbC5vbmV0LnBsPgorCS0gRjIgaXMgbm93IGFuIGFjY2VsZXJhdG9yIGZvciByZW5hbWUKKwktIHBhbmVsIHN3aXRjaGluZyB2aWEgVEFCIGRvZXNuJ3QgdXNlIElzRGlhbG9nTWVzc2FnZSBhbnltb3JlCisJLSBmb2N1cyBpcyBjb3JyZWN0bHkgc2V0IGFmdGVyIG1haW4gd2luZG93IGFjdGl2YXRpb24gKEFsdCtUQUIgZXRjKSwKKwkgIHJlbW92ZWQgc29tZSBmb2N1cy1yZWxhdGVkIGJ1Z3MKKwktIHByZXNzaW5nIEVOVEVSIG9yIGRvdWJsZS1jbGlja2luZyBhIHZhbHVlIGVkaXRzIGl0CisJLSBzZXR0aW5nIGEgdmFsdWUgdG8gYW4gZW1wdHkgc3RyaW5nIGlzIG5vdyBhbGxvd2VkCisJLSBhZGRpbmcgYSBuZXcgdmFsdWUgc3RhcnRzIHJlbmFtZSBhdXRvbWF0aWNhbGx5CisJLSByZW5hbWluZyBhIHZhbHVlIGRvZXNuJ3QgbW92ZSB0aGUgY3Vyc29yCisJLSByZW1vdmVkIHNvbWUgdW5uZWNlc3NhcnkgY29kZSAoTk1fUkNMSUNLIGluIExpc3RWaWV3IGV0YykKKwktIHJpZ2h0LWNsaWNrIG9uIHRyZWUgdmlldyBkaXNwbGF5cyAiTmV3Li4uIiBtZW51CisJLSBkZWZhdWx0IHZhbHVlcyBhcmUgdHJlYXRlZCBsaWtlIGluIFdpbmRvd3MgUmVnRWRpdCAoZGlzcGxheWVkIGV2ZW4KKwkgIHdoZW4gdGhleSBhcmVuJ3QgcGh5c2ljYWxseSBwcmVzZW50LCBjYW4ndCBiZSByZW5hbWVkIG9yIGRlbGV0ZWQpCisJLSBQb2xpc2ggdHJhbnNsYXRpb24gaGFkIHNvbWUgd2VpcmQgY2hhcmFjdGVycyBhZGRlZCBiZWZvcmUgUG9saXNoCisJICBsZXR0ZXJzCisKKwkqIGRsbHMvcmljaGVkaXQvcmljaGVkaXQuYzogVWxyaWNoIEN6ZWthbGxhIDx1bHJpY2hAY29kZXdlYXZlcnMuY29tPgorCURlbGVnYXRlcyBtZXNzYWdlcyBkaXJlY3RseSB0byB0aGUgZWRpdCBjb250cm9sIHdpbmRvdyBwcm9jIGluc3RlYWQgb2YKKwljb250YWluaW5nIGFuIGVkaXQgY29udHJvbC4gRml4ZXMgcHJvYmxlbXMgd2l0aCBzdWJjbGFzc2luZyB0aGUKKwlyaWNoZWRpdCBjb250cm9sLgorCisJKiBkbGxzL2NvbWN0bDMyL3Rvb2xiYXIuYzoKKwlNYXhpbWUgQmVsbGVuZ+kgPG1heGltZS5iZWxsZW5nZUBsYXBvc3RlLm5ldD4KKwlBZGQgTk1fUkNMSUNLIG5vdGlmaWNhdGlvbiBzdXBwb3J0IGZvciB0b29sYmFycy4KKworCSogZGxscy9vbGVhdXQzMi9vbGVwaWN0dXJlLmM6CisJTWF4aW1lIEJlbGxlbmfpIDxtYXhpbWUuYmVsbGVuZ2VAbGFwb3N0ZS5uZXQ+CisJLSBGaXggcGFsZXR0ZSBjcmVhdGlvbi4KKwktIEZpeCB1cHNpZGUgZG93biBHaWYuCisJLSBBZGQgc3VwcG9ydCBmb3IgdHJhbnNwYXJlbnQgR2lmLgorCisJKiBkbGxzL2tlcm5lbC90ZXN0cy9waXBlLmM6CisJQXZvaWQga2lsbGluZyB0aHJlYWRzIHdpdGggVGVybWluYXRlVGhyZWFkLCB0aGlzIGNhbiBjYXVzZSBkZWFkbG9ja3MuCisKKwkqIGluY2x1ZGUvYXhjb3JlLmlkbCwgaW5jbHVkZS9iYXNldHNkLmgsIGluY2x1ZGUvc3RybWlmLmgsCisJICBpbmNsdWRlL3dpbm50LmgsIGluY2x1ZGUvd3R5cGVzLmgsIGluY2x1ZGUvd3R5cGVzLmlkbDoKKwlFeHBsaWNpdGx5IHNwZWNpZnkgYWxpZ25tZW50IG9mIDY0LWJpdCB0eXBlcy4KKworCSogZGxscy9nZGkvdGVzdHMvZ2VuZXJhdGVkLmMsIGRsbHMva2VybmVsL3Rlc3RzL2dlbmVyYXRlZC5jLAorCSAgZGxscy9udGRsbC90ZXN0cy9nZW5lcmF0ZWQuYywgZGxscy9zaGVsbDMyL3Rlc3RzL2dlbmVyYXRlZC5jLAorCSAgZGxscy9zaGx3YXBpL3Rlc3RzL2dlbmVyYXRlZC5jLCBkbGxzL3VybG1vbi90ZXN0cy9nZW5lcmF0ZWQuYywKKwkgIGRsbHMvdXNlci90ZXN0cy9nZW5lcmF0ZWQuYywgZGxscy93aW5pbmV0L3Rlc3RzL2dlbmVyYXRlZC5jOgorCVVwZGF0ZWQgdGhlIGF1dG8tZ2VuZXJhdGVkIHRlc3RzLgorCisJKiB0b29scy93aW5hcGkvY190eXBlLnBtLCB0b29scy93aW5hcGkvdGVzdHMuZGF0LAorCSAgdG9vbHMvd2luYXBpL3dpbmFwaV90ZXN0OgorCUhhbnMgTGVpZGVra2VyIDxoYW5zQGl0LnZ1Lm5sPgorCS0gQXNzdW1lIDggYnl0ZSBtYXhpbXVtIGFsaWdubWVudC4KKwktIFN5bmMgdHlwZSB0ZXN0aW5nIGRhdGEgd2l0aCB0aGUgaGVhZGVycy4KKworMjAwNC0wNS0wMyAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9rZXJuZWwvdm9sdW1lLmM6CisJTWFrZSBHZXRWb2x1bWVJbmZvcm1hdGlvbiBkZWZhdWx0IHRvIHJlcG9ydGluZyBOVEZTIGZvciBub24tRkFUCisJZmlsZXN5c3RlbXMuCisKKwkqIGRsbHMva2VybmVsL2ZpbGUuYzogT0ZfQ1JFQVRFIHNob3VsZCBmb3JjZSB3cml0ZSBhY2Nlc3MgaW4gT3BlbkZpbGUuCisKKwkqIGRsbHMvY29tbWRsZy9jZGxnX0NuLnJjLCBkbGxzL2NvbW1kbGcvY2RsZ19EZS5yYywKKwkgIGRsbHMvY29tbWRsZy9jZGxnX0VuLnJjLCBkbGxzL2NvbW1kbGcvY2RsZ19Fcy5yYywKKwkgIGRsbHMvY29tbWRsZy9jZGxnX0ZyLnJjLCBkbGxzL2NvbW1kbGcvY2RsZ19JdC5yYywKKwkgIGRsbHMvY29tbWRsZy9jZGxnX0phLnJjLCBkbGxzL2NvbW1kbGcvY2RsZ19Lby5yYywKKwkgIGRsbHMvY29tbWRsZy9jZGxnX1B0LnJjLCBkbGxzL2NvbW1kbGcvY2RsZ19SdS5yYywKKwkgIGRsbHMvY29tbWRsZy9jZGxnX1NpLnJjLCBkbGxzL2NvbW1kbGcvY2RsZ19Tay5yYywKKwkgIGRsbHMvY29tbWRsZy9jZGxnX1N2LnJjLCBkbGxzL2NvbW1kbGcvY2RsZ19UaC5yYywKKwkgIGRsbHMvY29tbWRsZy9jZGxnX1VrLnJjLCBkbGxzL2NvbW1kbGcvY2RsZ19aaC5yYzoKKwlQYXZlbCBSb3NraW4gPHByb3NraUBnbnUub3JnPgorCU1ha2UgdGhlIGZpbGUgdHlwZSBjb21ib2JveCBub24tZWRpdGFibGUuCisKKwkqIGluY2x1ZGUvbWFwaWRlZnMuaCwgaW5jbHVkZS9tYXBpdXRpbC5oOgorCUpvbiBHcmlmZml0aHMgPGpvbl9wX2dyaWZmaXRoc0B5YWhvby5jb20+CisJQWRkIHRoZSBJTUFQSVByb3AvSVByb3BEYXRhIGRlZmluaXRpb25zLgorCisJKiBpbmNsdWRlL3dpbmUvdGVzdC5oOiBGZXJlbmMgV2FnbmVyIDx3ZmVyaUBhZmF2YW50LmVsdGUuaHU+CisJRGlzYWJsZSBidWZmZXJpbmcgb2YgdGVzdCBvdXRwdXQgdG8ga2VlcCBtb3JlIGluZm9ybWF0aW9uIGluIGNhc2Ugb2YgYQorCWNyYXNoLgorCisJKiBkbGxzL21hcGkzMi9tYXBpMzIuc3BlYywgZGxscy9tYXBpMzIvcHJvcC5jLAorCSAgZGxscy9tYXBpMzIvdGVzdHMvcHJvcC5jOgorCUpvbiBHcmlmZml0aHMgPGpvbl9wX2dyaWZmaXRoc0B5YWhvby5jb20+CisJSW1wbGVtZW50IGFuZCB0ZXN0IFNjQ29weVByb3BzL1NjUmVsb2NQcm9wcy4KKworCSogZGxscy9rZXJuZWwvcHJvZmlsZS5jOiBBcmljIFN0ZXdhcnQgPGFyaWNAY29kZXdlYXZlcnMuY29tPgorCVN0cmlwIGxlYWRpbmcgd2hpdGVzcGFjZSB3aGVuIGFkZGluZyBhIG5ldyB2YWx1ZSBhbmQgbm90IGp1c3Qgd2hlbgorCXJlcGxhY2luZyBhIGN1cnJlbnQgdmFsdWUuCisKKwkqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkbGxzL21zYWNtL01ha2VmaWxlLmluLAorCSAgZGxscy9tc2FjbS90ZXN0cy8uY3ZzaWdub3JlLCBkbGxzL21zYWNtL3Rlc3RzL01ha2VmaWxlLmluLAorCSAgZGxscy9tc2FjbS90ZXN0cy9tc2FjbS5jOgorCVJvYmVydCBSZWlmIDxyZWlmQGVhcnRobGluay5uZXQ+CisJQWRkZWQgdGVzdHMgZm9yIG1zYWNtMzIuZGxsLgorCisJKiBkbGxzL21zYWNtL2RyaXZlci5jLCBkbGxzL21zYWNtL2Zvcm1hdC5jLCBkbGxzL21zYWNtL21zYWNtMzJfbWFpbi5jOgorCVJvYmVydCBSZWlmIDxyZWlmQGVhcnRobGluay5uZXQ+CisJQmV0dGVyIGZ1bmN0aW9uIHBhcmFtZXRlciBjaGVja2luZy4KKworCSogZGxscy9jb21tZGxnL2ZpbGVkbGcuYzoKKwlXb2xmZ2FuZyBTY2h3b3R6ZXIgPHdvbGZnYW5nLnNjaHdvdHplckBnbXgubmV0PgorCU1ha2UgZmlsZSBkaWFsb2cgc3VwcG9ydCBGTkVSUl9CVUZGRVJUT1NNQUxMIGlmIGJ1ZmZlciB0b28gc21hbGwuCisKKwkqIGRvY3VtZW50YXRpb24vZGVidWdnaW5nLnNnbWw6CisJQW5kcmVhcyBNb2hyIDxhbmRpQHJobHgwMS5maHQtZXNzbGluZ2VuLmRlPgorCVVzZSBXSU5FREVCVUcgaW5zdGVhZCBvZiAtLWRlYnVnbXNnLgorCisJKiBkbGxzL2tlcm5lbC90ZXN0cy9jb25zb2xlLmM6IEpha29iIEVyaWtzc29uIDxqYWtvdkB2bWxpbnV4Lm9yZz4KKwlQcmV2ZW50IGZyb20gY3Jhc2hpbmcvaGFuZ2luZyBpbiBXaW5kb3dzIDk1IE9TUjIuCisKKwkqIGRsbHMvdXJsbW9uL01ha2VmaWxlLmluLCBkbGxzL3VybG1vbi90ZXN0cy8uY3ZzaWdub3JlLAorCSAgZGxscy91cmxtb24vdGVzdHMvTWFrZWZpbGUuaW4sIGRsbHMvdXJsbW9uL3Rlc3RzL3VybC5jLAorCSAgZGxscy91cmxtb24vdW1vbi5jOgorCUtldmluIEtvbHR6YXUgPGtldmluQHBsb3Aub3JnPgorCUhhbmRsZSBjb250ZXh0IGluIENyZWF0ZVVSTE1vbmlrZXIuCisKKwkqIGRsbHMvY29tY3RsMzIvdG9vbGJhci5jOgorCU1heGltZSBCZWxsZW5n6SA8bWF4aW1lLmJlbGxlbmdlQGxhcG9zdGUubmV0PgorCUZpeCB0aGUgc2l6ZSBvZiB0aGUgbGlzdHZpZXcgaXRlbXMgaW4gdGhlIGN1c3RvbWl6ZSBkaWFsb2cuCisKKwkqIGRsbHMvY2ZnbWdyMzIvY2ZnbWdyMzIuc3BlYzogTWF0dGhldyBEYXZpc29uIDxtamQ3N0BjYW0uYWMudWs+CisJVXBkYXRlZCB0byBpbmNsdWRlIGZ1bmN0aW9ucyBmcm9tIHdpbmRvd3MgOThTRS4KKworMjAwNC0wNS0wMiAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9kM2Q4L2RldmljZS5jLCBkbGxzL2QzZDgvZGlyZWN0eC5jLCBkbGxzL2QzZDgvZHJhd3ByaW0uYywKKwkgIGRsbHMvZDNkOC9zdXJmYWNlLmM6CisJQ2hyaXN0aWFuIENvc3RhIDx0aXRhbi5jb3N0YUB3YW5hZG9vLmZyPgorCUphc29uIEVkbWVhZGVzIDx1c0B0aGUtZWRtZWFkZXMuZGVtb24uY28udWs+CisJRml4ZXMgZm9yIHJlbmRlcmluZyB0YXJnZXRzLgorCisJKiBkbGxzL2NvbWN0bDMyL3JlYmFyLmM6IEdlIHZhbiBHZWxkb3JwIDxndmdAcmVhY3Rvcy5jb20+CisJQWx3YXlzIHJlc2V0IEFVVE9fUkVTSVpFIGZsYWcgb24gZXhpdCBmcm9tIFJFQkFSX0ZvcmNlUmVzaXplLgorCisJKiBkbGxzL3dpbmVwcy90ZXh0LmM6IEdlcmFsZCBQZmVpZmVyIDxnZXJhbGRAcGZlaWZlci5jb20+CisJSW5jbHVkZSA8c3RkbGliLmg+IHRvIG9idGFpbiBhIHByb3RvdHlwZSBvZiBhYnMoKS4KKworCSogZGxscy93aW5zcG9vbC9pbmZvLmM6IE1hcmN1cyBNZWlzc25lciA8bWFyY3VzQGpldC5mcmFua2VuLmRlPgorCVVzZSBtZW1jcHkgaW5zdGVhZCBvZiB3ZWlyZCBjYXN0cy4KKworCSogZGxscy9jb21jdGwzMi90b29sYmFyLmM6CisJTWF4aW1lIEJlbGxlbmfpIDxtYXhpbWUuYmVsbGVuZ2VAbGFwb3N0ZS5uZXQ+CisJRml4IFRCX0dFVFNUWUxFIG1lc3NhZ2UgdG8gcmV0dXJuIHRoZSBzdHlsZSBvZiB0aGUgdG9vbGJhciBhbmQgbm90IHRoZQorCXN0eWxlIG9mIGEgYnV0dG9uLgorCisJKiBkbGxzL29sZTMyL21hcnNoYWwuYywgZGxscy9vbGUzMi9vbGUzMi5zcGVjOgorCU1hcmN1cyBNZWlzc25lciA8bWFyY3VzQGpldC5mcmFua2VuLmRlPgorCUltcGxlbWVudGVkIENvUmVsZWFzZU1hcnNoYWxEYXRhLgorCisJKiBkbGxzL3NoZWxsMzIvYXV0b2NvbXBsZXRlLmM6CisJTWF4aW1lIEJlbGxlbmfpIDxtYXhpbWUuYmVsbGVuZ2VAbGFwb3N0ZS5uZXQ+CisJRml4IGEgc3RyaW5nIGFsbG9jYXRpb24uCisKKwkqIGRsbHMvY29tY3RsMzIvdHJlZXZpZXcuYzogSHV3IERhdmllcyA8aHV3QGNvZGV3ZWF2ZXJzLmNvbT4KKwlJbXBsZW1lbnRlZCBUVlNfTk9TQ1JPTEwuCisKKzIwMDQtMDUtMDEgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGRsbHMva2VybmVsL01ha2VmaWxlLmluLCBkbGxzL2tlcm5lbC9maWxlLmMsIGRsbHMva2VybmVsL2ZpbGUxNi5jLAorCSAgZGxscy9rZXJuZWwva2VybmVsX21haW4uYywgZGxscy9rZXJuZWwva2VybmVsX3ByaXZhdGUuaCwKKwkgIGRsbHMva2VybmVsL3BhdGguYywgZGxscy9rZXJuZWwvcHJvY2Vzcy5jLCBkbGxzL2tlcm5lbC9wcm9maWxlLmMsCisJICBkbGxzL2tlcm5lbC90YXNrLmMsIGRsbHMva2VybmVsL3ZvbHVtZS5jLCBkbGxzL2tlcm5lbC92eGQuYywKKwkgIGZpbGVzL2RpcmVjdG9yeS5jLCBmaWxlcy9maWxlLmMsIGZpbGVzL3NtYi5jLCBpbmNsdWRlL2ZpbGUuaCwKKwkgIG1pc2MvcmVnaXN0cnkuYzoKKwlNb3ZlZCBtb3N0IHJlbWFpbmluZyBmaWxlIGZ1bmN0aW9ucyB0byBkbGxzL2tlcm5lbC4KKwlSZW1vdmVkIGZpbGVzL2ZpbGUuYyBhbmQgaW5jbHVkZS9maWxlLmguCisKKwkqIGRsbHMva2VybmVsL3ZvbHVtZS5jOgorCUZpeGVkIGxhc3QgZXJyb3IgY29kZSBjaGVjayBpbiBHZXRWb2x1bWVJbmZvcm1hdGlvblcsIG9wZW5pbmcgYQorCW5vbi1leGlzdGVudCBkZXZpY2UgcmV0dXJucyBFUlJPUl9GSUxFX05PVF9GT1VORCBub3cuCisKKwkqIGluY2x1ZGUvd2luZS9zZXJ2ZXJfcHJvdG9jb2wuaCwgc2VydmVyL2ZpbGUuYywgc2VydmVyL21hcHBpbmcuYywKKwkgIHNlcnZlci9wcm90b2NvbC5kZWYsIHNlcnZlci9yZXF1ZXN0LmgsIHNlcnZlci9zaWduYWwuYywKKwkgIHNlcnZlci90cmFjZS5jOgorCVVzZSBwcmVhZC9wd3JpdGUgZXZlcnl3aGVyZSB0byBhdm9pZCBjaGFuZ2luZyB0aGUgZmlsZSBwb3NpdGlvbiB3aGlsZQorCXRoZSBjbGllbnQgaXMgdXNpbmcgaXQuCisJR2V0IHJpZCBvZiB0aGUgbm8gbG9uZ2VyIHVzZWQgdHJ1bmNhdGVfZmlsZSByZXF1ZXN0LgorCisJKiBkbGxzL2tlcm5lbC9maWxlLmMsIGRsbHMvbnRkbGwvZmlsZS5jLCBmaWxlcy9maWxlLmM6CisJUmVpbXBsZW1lbnRlZCBHZXRGaWxlVHlwZSBhbmQgU2V0RW5kT2ZGaWxlIHVzaW5nIG50ZGxsIGZ1bmN0aW9ucy4KKworCSogbGlicy9NYWtlZmlsZS5pbjogUGllcnJlIGQnSGVyYmVtb250IDxzdGVnZWZpbkBmcmVlLmZyPgorCVN1cHBvcnQgRGFyd2luIHZlcnNpb25pbmcgY29udmVudGlvbi4KKworCSogcHJvZ3JhbXMvcmVnZWRpdC9Fbi5yYywgcHJvZ3JhbXMvcmVnZWRpdC9Fcy5yYywKKwkgIHByb2dyYW1zL3JlZ2VkaXQvSXQucmMsIHByb2dyYW1zL3JlZ2VkaXQvUGwucmMsCisJICBwcm9ncmFtcy9yZWdlZGl0L3JzcmMucmM6CisJS3J6eXN6dG9mIEZvbHRtYW4gPGtmb2x0bWFuQHBvcnRhbC5vbmV0LnBsPgorCS0gY2hhbmdlZCBDYW5jZWwgREVGUFVTSEJVVFRPTiB0byBQVVNIQlVUVE9OCisJLSBmaXhlZCBjYXB0aW9uIElERF9FRElUX0RXT1JEIGZyb20gIkVkaXQgU3RyaW5nIiB0byAiRWRpdCBEV09SRCIKKwktIGFkZGVkIFBvbGlzaCB0cmFuc2xhdGlvbgorCisJKiBkbGxzL21hcGkzMi9tYXBpMzIuc3BlYywgZGxscy9tYXBpMzIvdXRpbC5jLCBpbmNsdWRlL01ha2VmaWxlLmluLAorCSAgaW5jbHVkZS94Y21jLmg6CisJQ2hyaXMgTW9yZ2FuIDxjbW9yZ2FuQGFsdW0ud3BpLmVkdT4KKwlTdHViIGNtY19xdWVyeV9jb25maWd1cmF0aW9uKCkgYW5kIGFkZCB4Y21jLmggaGVhZGVyIGZpbGUuCisKKzIwMDQtMDQtMzAgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGRsbHMva2VybmVsL2ZpbGUuYywgZGxscy9rZXJuZWwvc3luYy5jLCBkbGxzL250ZGxsL2ZpbGUuYywKKwkgIGZpbGVzL2ZpbGUuYywgaW5jbHVkZS93aW50ZXJubC5oOgorCUFkZGVkIGEgZmV3IG1vcmUgaW5mbyBjbGFzc2VzIGluIE50UXVlcnlJbmZvcm1hdGlvbkZpbGUuCisJVXNlIE5UIGZpbGUgbmFtZXMgaW4gQ3JlYXRlTmFtZWRQaXBlVy4KKwlSZWltcGxlbWVudGVkIEdldEZpbGVJbmZvcm1hdGlvbkJ5SGFuZGxlLCBHZXRGaWxlU2l6ZSBhbmQgR2V0RmlsZVRpbWUKKwl1c2luZyBudGRsbCBmdW5jdGlvbnMuCisKKwkqIGRsbHMvbnRkbGwvZmlsZS5jLCBmaWxlcy9maWxlLmM6CisJTW92ZWQgc3VwcG9ydCBmb3Igb3BlbmluZyBuYW1lZCBwaXBlcyB0byBudGRsbC4KKworCSogc2VydmVyL3JlZ2lzdHJ5LmM6CisJQXZvaWQgYXV0b2RldGVjdGluZyB0aGUgcHJlZml4IHdoZW4gbG9hZGluZyB0aGUgY29uZmlnIGZpbGUgc2luY2UgdGhlCisJZmlyc3Qga2V5IG1heSBiZSBuYW1lZCAnd2luZScuCisKKwkqIGRsbHMva2VybmVsL3ZvbHVtZS5jOgorCVV3ZSBCb25uZXMgPGJvbkBlbGVrdHJvbi5pa3AucGh5c2lrLnR1LWRhcm1zdGFkdC5kZT4KKwlGaXhlZCBidWZmZXIgb3ZlcmZsb3cuCisKKwkqIGRsbHMvb2xlYXV0MzIvb2xlYXV0MzIuc3BlYywgZGxscy9vbGVhdXQzMi92YXJpYW50LmM6CisJSm9uIEdyaWZmaXRocyA8am9uX3BfZ3JpZmZpdGhzQHlhaG9vLmNvbT4KKwlJbXBsZW1lbnQgVmFyRGF0ZUZyb21VZGF0ZUV4LgorCisJKiBkbGxzL29sZTMyL21hcnNoYWwuYywgZGxscy9vbGUzMi9zdG9yYWdlLmM6CisJTWFyY3VzIE1laXNzbmVyIDxtYXJjdXNAamV0LmZyYW5rZW4uZGU+CisJRml4ZWQgbHZhbHVlIGNhc3RzLgorCisJKiBkbGxzL29sZTMyL29sZTMyLnNwZWMsIGRsbHMvb2xlMzIvc3RvcmFnZTMyLmMsIGluY2x1ZGUvb2JqYmFzZS5oOgorCUZyYW5jb2lzIEdvdWdldCA8ZmdvdWdldEBjb2Rld2VhdmVycy5jb20+CisJQWRkIGEgc3R1YiBmb3IgU3RnQ3JlYXRlU3RvcmFnZUV4KCkuIFJldHVybnMKKwlTVEdfRV9VTklNUExFTUVOVEVERlVOQ1RJT04gYXMgcGVyIE1TRE4uIEZpeGVzIGFuIGVycm9yIHNhdmluZyBmaWxlcworCWluIFdvcmQgWFAuCisKKwkqIGRsbHMva2VybmVsL3BhdGguYzoKKwlVc2UgUnRsRG9zUGF0aE5hbWVUb050UGF0aE5hbWVfVSB0byBidWlsZCB0aGUgcmVnaXN0cnkgZW50cmllcyBmb3IKKwlNT1ZFRklMRV9ERUxBWV9VTlRJTF9SRUJPT1QuCisKKwkqIGRsbHMvZGJnaGVscC9kYmdoZWxwX3ByaXZhdGUuaCwgZGxscy9kYmdoZWxwL3N0YWNrLmMsCisJICBkbGxzL2RiZ2hlbHAvc3ltYm9sLmMsIGRsbHMvZGJnaGVscC90eXBlLmM6CisJRXJpYyBQb3VlY2ggPHBvdWVjaC1lcmljQHdhbmFkb28uZnI+CisJLSBmaXhlZCBzb21lIGJ1Z3MgaW4gU3RhY2tXYWxrIChjbGFpbWVkIGZvciBidXQgZm9yZ290dGVuIGluIGxhc3QKKwkgIHBhdGNoKQorCS0gcmVtb3ZlZCBsb2NhdGlvbiBmaWVsZCBpbiBzeW10X2RhdGEsIGFuZCByZXdvcmtlZCB0aGUgYWN0dWFsCisJICBsb2NhdGlvbiBvZiBpbmZvcm1hdGlvbiBiYXNlZCBvbiB0aGUgJ2tpbmQnIGZpZWxkCisJLSBzaG9ydGVuIGRlYnVnIGNoYW5uZWwgbmFtZQorCS0gYWRkZWQgc3VwcG9ydCBmb3IgYml0ZmllbGQgaW4gc3RydWN0OnMKKwktIGNsZWFuZWQgdXAgc291cmNlIGxpbmUgaW5mb3JtYXRpb24gc3VwcG9ydAorCS0gbm93IHN0b3JpbmcgY29uc3RhbnRzIHZhbHVlcyBhcyBWQVJJQU5UCisKKwkqIGRsbHMvdXNlci90ZXN0cy9tc2cuYzogRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlSZXBsYWNlIHdQYXJhbSB2YWx1ZXMgZm9yIFdNX1BBUkVOVE5PVElGWSBtZXNzYWdlIGJ5IGFwcHJvcHJpYXRlCisJc3ltYm9saWMgbmFtZXMuCisKKwkqIGRsbHMvd2lubW0vdGVzdHMvd2F2ZS5jOiBSb2JlcnQgUmVpZiA8cmVpZkBlYXJ0aGxpbmsubmV0PgorCVlvdSBoYXZlIHRvIGhhdmUgYXQgbGVhc3Qgb25lIGRldmljZSBiZWZvcmUgeW91IGNhbiBoYXZlIGEgZGVmYXVsdAorCWRldmljZS4KKworCSogZGxscy9zaGVsbDMyL2F1dG9jb21wbGV0ZS5jOgorCU1heGltZSBCZWxsZW5n6SA8bWF4aW1lLmJlbGxlbmdlQGxhcG9zdGUubmV0PgorCS0gRml4IHRoZSByZXR1cm4ga2V5IGhhbmRsaW5nIGFuZCBjbGVhbiB1cCB0aGUgY29kZS4KKwktIEFkZCBzdXBwb3J0IGZvciBxdWlja0NvbXBsZXRlIHdpdGggQ3RybCtSZXR1cm4uCisKKwkqIGRsbHMvcXVhcnR6L2ZpbHRlcmdyYXBoLmM6IENocmlzdGlhbiBDb3N0YSA8dGl0YW4uY29zdGFAd2FuYWRvby5mcj4KKwlFbmFibGUgcXVlcnlpbmcgb2YgSUlEX0ZpbHRlckdyYXBoIGludGVyZmFjZSBmcm9tIGZpbHRlcmdyYXBoIG1hbmFnZXIKKwkoc3BvdHRlZCBieSBSb2JlcnQgUmVpZikuCisKKzIwMDQtMDQtMjkgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkbGxzL250ZGxsL2Nkcm9tLmMsIGRsbHMvbnRkbGwvZGlyZWN0b3J5LmMsCisJICBkbGxzL250ZGxsL2ZpbGUuYywgaW5jbHVkZS9jb25maWcuaC5pbjoKKwlBZGRlZCBhdXRvLWRldGVjdGlvbiBvZiBET1MgZHJpdmUgZGV2aWNlcyBiYXNlZCBvbiBmaW5kaW5nIHRoZQorCWNvcnJlc3BvbmRpbmcgbW91bnQgcG9pbnQgaW4gL2V0Yy9tdGFiIG9yIC9ldGMvZnN0YWIuCisKKwkqIGRsbHMva2VybmVsL2hlYXAuYzoKKwlDcmVhdGUgdGhlIHN5c3RlbSBoZWFwIGV2ZW50IGJlZm9yZSB0aGUgc2hhcmVkIG1hcHBpbmcgdG8gYXZvaWQgYSByYWNlCisJY29uZGl0aW9uLgorCisJKiBkbGxzL3NoZWxsMzIvc2hlbGwzMi5zcGVjLCBkbGxzL3NoZWxsMzIvc2hlbGxvcmQuYzoKKwlNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJU3R1YiBpbXBsZW1lbnRhdGlvbiBmb3IgU0hGaW5kRmlsZXMuCisKKwkqIGRsbHMvd2luZXBzL3RleHQuYywgZGxscy94MTFkcnYveHJlbmRlci5jOgorCUtyenlzenRvZiBGb2x0bWFuIDxrZm9sdG1hbkBwb3J0YWwub25ldC5wbD4KKwlNYWtlIHN1cmUgYXNjZW50L2Rlc2NlbnQgdmFsdWVzIGRvbid0IGJlY29tZSBuZWdhdGl2ZSBhZnRlciBjb29yZGluYXRlCisJbWFwcGluZy4KKworCSogZGxscy91c2VyL3Rlc3RzL21zZy5jOiBEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCUFkZCBhIHRlc3QgZm9yIGNyZWF0aW9uIG9mIGEgbWF4aW1pemVkIGNoaWxkIHdpbmRvdy4KKworCSogaW5jbHVkZS9NYWtlZmlsZS5pbiwgaW5jbHVkZS9wc3RvcmUuaCwgaW5jbHVkZS9wc3RvcmUuaWRsOgorCU1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlBZGRlZCBwc3RvcmUuaCBhbmQgYW4gSURMIGZpbGUgdG8gZ2VuZXJhdGUgaXQuCisKKwkqIGRsbHMva2VybmVsL01ha2VmaWxlLmluLCBkbGxzL2tlcm5lbC9wcm9jZXNzLmMsIGRsbHMva2VybmVsL3ZvbHVtZS5jLAorCSAgZGxscy9udGRsbC9kaXJlY3RvcnkuYywgZG9jdW1lbnRhdGlvbi9zYW1wbGVzL2NvbmZpZywKKwkgIGRvY3VtZW50YXRpb24vd2luZS5jb25mLm1hbiwgZG9jdW1lbnRhdGlvbi93aW5lLm1hbi5pbiwKKwkgIGZpbGVzL2RpcmVjdG9yeS5jLCBmaWxlcy9kcml2ZS5jLCBmaWxlcy9maWxlLmMsIGluY2x1ZGUvZmlsZS5oLAorCSAgbWlzYy9yZWdpc3RyeS5jOgorCVVzZSBzeW1saW5rcyBpbiBkb3NkZXZpY2VzLyBmb3IgdGhlIGRyaXZlIGRldmljZXMgdG9vLgorCVN0b3JlIGRyaXZlIHR5cGVzIGluIHRoZSByZWdpc3RyeSBpbnN0ZWFkIG9mIGluIHRoZSBjb25maWcgZmlsZS4KKwlBZGRlZCBzb21lIG1vcmUgY29kZSB0byBjb252ZXJ0IGV4aXN0aW5nIGNvbmZpZyB0byB0aGUgbmV3IHNjaGVtZS4KKworCSogZGxscy93aW5tbS93aW5lYWxzYS9hdWRpby5jOiBSb2JlcnQgUmVpZiA8cmVpZkBlYXJ0aGxpbmsubmV0PgorCUZvcmdvdCB0byBsaW1pdCBjYXB0dXJlIHNhbXBsZSByYXRlcy4KKworCSogZGxscy9kM2Q4L2QzZDhfcHJpdmF0ZS5oLCBkbGxzL2QzZDgvZDNkY29yZV9nbC5oLCBkbGxzL2QzZDgvZGV2aWNlLmMsCisJICBkbGxzL2QzZDgvZGlyZWN0eC5jLCBkbGxzL2QzZDgvZHJhd3ByaW0uYywgZGxscy9kM2Q4L3N1cmZhY2UuYywKKwkgIGRsbHMvZDNkOC91dGlscy5jOgorCVJhcGhhZWwgSnVucXVlaXJhIDxmZW5peEBjbHViLWludGVybmV0LmZyPgorCS0gRml4IGNvbXBpbGF0aW9uIGFnYWluIHVzaW5nIG9sZGVycyBHTCBoZWFkZXJzCisJICAoZ2xDb21wcmVzc2VkVGV4SW1hZ2UyREFSQiBwcm9ibGVtKS4KKwktIEZpeCB0eXBvIG9uIGNvbnN0YW50LgorCS0gRGV0ZWN0aW9uIG9mIE5WaWRpYSB0ZXh0dXJlX3NoYWRlciBhbmQgcmVnaXN0ZXJfY29tYmluZXJzCisJICBleHRlbnNpb25zLgorCS0gQmVnaW4gdG8gaW1wbGVtZW50IEJVTVBNQVBQSU5HIHVzaW5nIE5WaWRpYSBUZXh0dXJlIHNoYWRlciBleHRlbnNpb24KKwkgIChub3QgcmVhbGx5IHdvcmtpbmcgZm9yIG5vdykuCisKKzIwMDQtMDQtMjggIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGRsbHMva2VybmVsL01ha2VmaWxlLmluLCBkbGxzL2tlcm5lbC9rZXJuZWxfbWFpbi5jLAorCSAgZGxscy9rZXJuZWwvdGltZS5jLCBmaWxlcy9kaXJlY3RvcnkuYywgZmlsZXMvZG9zX2ZzLmMsIGZpbGVzL2RyaXZlLmMsCisJICBmaWxlcy9maWxlLmMsIGluY2x1ZGUvZmlsZS5oOgorCVJlbW92ZWQgYSBudW1iZXIgb2YgaW50ZXJuYWwgZmlsZSBmdW5jdGlvbnMgdGhhdCBhcmUgbm8gbG9uZ2VyIHVzZWQuCisKKwkqIGRsbHMvdXNlci90ZXN0cy93aW4uYzoKKwlBZGRlZCB0ZXN0IGZvciBzZXR0aW5nIGZvY3VzIHRvIGFuIGludmlzaWJsZSB3aW5kb3cuCisKKwkqIGRsbHMva2VybmVsL3Rlc3RzL2ZpbGUuYzogSmFrb2IgRXJpa3Nzb24gPGpha292QHZtbGludXgub3JnPgorCUZpeGVkIHRlc3RzIHRvIHN1Y2NlZWQgb24gYWxsIFdpbmRvd3MgdmVyc2lvbnMuCisKKwkqIGRsbHMvd2lubW0vdGVzdHMvd2F2ZS5jOiBSb2JlcnQgUmVpZiA8cmVpZkBlYXJ0aGxpbmsubmV0PgorCUFub3RoZXIgZXJyb3IgcmV0dXJuIHZhbHVlIGNoZWNrIGFkZGVkIGFmdGVyIGxvb2tpbmcgYXQgdGhlIHdpbmRvd3MKKwl0ZXN0cyByZXN1bHRzLgorCVJlcGxhY2VkIC0xIHdpdGggV0FWRV9NQVBQRVIuCisKKwkqIGRsbHMvcnBjcnQ0L01ha2VmaWxlLmluLCBkbGxzL3JwY3J0NC9ycGNydDRfbWFpbi5jOgorCUhhbnMgTGVpZGVra2VyIDxoYW5zQGl0LnZ1Lm5sPgorCVJlaW1wbGVtZW50IFV1aWRDcmVhdGUoKSB3aXRoIFdpbjMyIEFQSXMuCisKKwkqIGRsbHMva2VybmVsL2ZpbGUxNi5jLCBkbGxzL2tlcm5lbC9wYXRoLmMsIGRsbHMva2VybmVsL3Byb2Nlc3MuYywKKwkgIGZpbGVzL2RyaXZlLmMsIGluY2x1ZGUvZmlsZS5oOgorCVJlaW1wbGVtZW50ZWQgR2V0L1NldEN1cnJlbnREaXJlY3RvcnlXIHVzaW5nIHRoZSBjb3JyZXNwb25kaW5nIG50ZGxsCisJZnVuY3Rpb25zLgorCisJKiBkbGxzL3gxMWRydi93aW5kb3cuYzoKKwlGaXhlZCB1bnNpZ25lZCBjb21wYXJpc29uIGlzc3VlIGluIHByZXZpb3VzIGNoYW5nZS4KKworCSogZGxscy9tc2kvbXNpLmMsIGRsbHMvbXNpL21zaS5zcGVjLCBpbmNsdWRlL21zaS5oOgorCVJhcGhhZWwgSnVucXVlaXJhIDxmZW5peEBjbHViLWludGVybmV0LmZyPgorCS0gYWRkIHNvbWUgcHJvdG90eXBlcy90eXBlZGVmcyB0byBtc2kuaAorCS0gaW1wbGVtZW50cyBzb21lIEEgLT4gVyBjYWxscyAoVyBjYWxscyBtdXN0IGJlIGltcGxlbWVudGVkKQorCisJKiBkbGxzL2FkdmFwaTMyL3NlY3VyaXR5LmMsIGRsbHMvZDNkOC9zaGFkZXIuYywgZGxscy9tYXBpMzIvcHJvcC5jLAorCSAgZGxscy9tYXBpMzIvdXRpbC5jLCBkb2N1bWVudGF0aW9uL2J1Z3Muc2dtbCwgaW5jbHVkZS9tYXBpdGFncy5oOgorCUZyYW5jb2lzIEdvdWdldCA8ZmdvdWdldEBmcmVlLmZyPgorCUFzc29ydGVkIHNwZWxsaW5nIGZpeGVzLgorCisJKiBkbGxzL3dpbm1tL3dpbmVhbHNhL2F1ZGlvLmM6IE92ZSBLYWF2ZW4gPG92ZWtAdHJhbnNnYW1pbmcuY29tPgorCUZpeGVkIGEgY291cGxlIG9mIGJ1Z3MuCisKKwkqIGRvY3VtZW50YXRpb24vZGVidWdnaW5nLnNnbWw6CisJQW5kcmVhcyBNb2hyIDxhbmRpQHJobHgwMS5maHQtZXNzbGluZ2VuLmRlPgorCUV4cGxhaW4gaG93IHRvIHJlZHVjZSBsb2cgc2l6ZSwgdXNpbmcgcGlwZXMuCisKKzIwMDQtMDQtMjcgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGRsbHMveDExZHJ2L3dpbmRvdy5jLCBkbGxzL3gxMWRydi93aW5wb3MuYywgZGxscy94MTFkcnYveDExZHJ2Lmg6CisJUmVwbGFjZSBlbXB0eSB3aW5kb3cgcmVjdCBjaGVja3MgYnkgYSBuZXcgWDExRFJWX2lzX3dpbmRvd19yZWN0X21hcHBlZAorCWZ1bmN0aW9uIHNvIHRoYXQgd2UgY2FuIHJldXNlIHRoYXQgc3VwcG9ydCBmb3Igb2ZmLXNjcmVlbiB3aW5kb3dzLgorCisJKiBkb2N1bWVudGF0aW9uL29sZS5zZ21sOiBXaWxsaWFtIExhaHRpIDxjb21wdXRlcm1hbjQxM0BlenJzLmNvbT4KKwlGaXhlZCB0eXBvLgorCisJKiBkbGxzL21wci9wd2NhY2hlLmM6IE1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlJbXBsZW1lbnRlZCBXTmV0RW51bUNhY2hlZFBhc3N3b3Jkcy4KKworCSogZGxscy9vbGVhdXQzMi90ZXN0cy9zYWZlYXJyYXkuYzoKKwlKb24gR3JpZmZpdGhzIDxqb25fcF9ncmlmZml0aHNAeWFob28uY29tPgorCUZpeCBmYWlsdXJlcyB1bmRlciB3aW4yay4KKworCSogZGxscy9vbGVhdXQzMi90ZXN0cy92YXJ0ZXN0LmM6CisJSm9uIEdyaWZmaXRocyA8am9uX3BfZ3JpZmZpdGhzQHlhaG9vLmNvbT4KKwlVcGRhdGUgVmFyWG9yLFZhckFicyxWYXJOb3QgZm9yIGFsbCBpbnB1dCB0eXBlcy4KKwlUZXN0IFZhck9yOyBmaXggYSBmYWlsdXJlIHdpdGggbGF0ZXIgb2xlYXV0MzIgdmVyc2lvbnMuCisJU3BlZWQgdXAgY29tcGlsYXRpb24gYnkgc2hhcmluZyBmYWlsdXJlIHN0cmluZ3MuCisKKwkqIGRsbHMvb2xlYXV0MzIvdmFyaWFudC5jOiBKb24gR3JpZmZpdGhzIDxqb25fcF9ncmlmZml0aHNAeWFob28uY29tPgorCUltcGxlbWVudCBWYXJPci4KKwlGaXhlcyBmb3IgdW50ZXN0ZWQgVmFyWG9yLFZhckFicyxWYXJOb3QgaW5wdXQgdHlwZXMuCisKKwkqIHdpbmRvd3MvbWRpLmM6IERtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJQmVmb3JlIHJlbW92aW5nIG1lbnUgaXRlbXMgaW4gdGhlIE1ESSBXaW5kb3cgbWVudSBjaGVjayB3aGV0aGVyIGEgbWVudQorCWl0ZW0gZm9sbG93aW5nIGEgc2VwYXJhdG9yIGhhcyBvdXIgIm1hZ2ljIiB2YWx1ZS4KKworCSogZGxscy9zaGx3YXBpL3VybC5jLCBkbGxzL3NobHdhcGkvdGVzdHMvcGF0aC5jOgorCUtldmluIEtvbHR6YXUgPGtldmluQHBsb3Aub3JnPgorCUFsbG93IFVybENvbWJpbmUgdG8gY2FsY3VsYXRlIHNpemUgb2YgcmVxdWlyZWQgYnVmZmVyLgorCisJKiBkbGxzL3dpbm1tL3Rlc3RzL3dhdmUuYywgZGxscy93aW5tbS93aW5lYWxzYS9hdWRpby5jOgorCVJvYmVydCBSZWlmIDxyZWlmQGVhcnRobGluay5uZXQ+CisJUmVzdG9yZSB0aGUgMiBNSHogc2FtcGxlIHJhdGUgdGVzdCBhbmQgZml4IHRoZSB3aW5lYWxzYSBkcml2ZXIgZm9yCisJcmVhc29uYWJsZSBsaW1pdHMuCisKKwkqIGRsbHMva2VybmVsL3ZvbHVtZS5jOgorCURlZmluZURvc0RldmljZVc6IGltcGxlbWVudGVkIHRoZSBERERfUkVNT1ZFX0RFRklOSVRJT04gZmxhZy4KKworCSogZGxscy9rZXJuZWwvdGVzdHMvZGlyZWN0b3J5LmMsIGRsbHMva2VybmVsL3Rlc3RzL2ZpbGUuYywKKwkgIGRsbHMva2VybmVsL3Rlc3RzL3BhdGguYzoKKwlSZW1vdmVkIHRvZG9fd2luZSBmcm9tIHNvbWUgdGVzdHMgdGhhdCBzdWNjZWVkIG5vdy4KKworCSogZGxscy9rZXJuZWwvcGF0aC5jLCBmaWxlcy9kaXJlY3RvcnkuYywgc2VydmVyL2ZkLmM6CisJUmVpbXBsZW1lbnRlZCBDcmVhdGVEaXJlY3RvcnlXIGFuZCBSZW1vdmVEaXJlY3RvcnlXIHVzaW5nIG50ZGxsCisJZnVuY3Rpb25zLgorCisJKiBkbGxzL2tlcm5lbC9wYXRoLmMsIGRsbHMva2VybmVsL3ZvbHVtZS5jLCBkbGxzL250ZGxsL2RpcmVjdG9yeS5jLAorCSAgZGxscy9udGRsbC9maWxlLmMsIGluY2x1ZGUvd2ludGVybmwuaDoKKwlQYXNzIHRoZSBjcmVhdGlvbiBkaXNwb3NpdGlvbiB0byB3aW5lX250X3RvX3VuaXhfZmlsZV9uYW1lIHNvIHRoYXQgaXQKKwljYW4gcmV0dXJuIHRoZSBjb3JyZWN0IGVycm9yIGNvZGUgaW4gYWxsIGNhc2VzLgorCUNoYW5nZWQgTW92ZUZpbGVFeFcgdG8gdXNlIHdpbmVfbnRfdG9fdW5peF9maWxlX25hbWUgdG8gYXZvaWQKKwljb21wdXRpbmcgdGhlIE5UIG5hbWUgdHdpY2UuCisJRml4ZWQgY3Jhc2ggaW4gR2V0RHJpdmVUeXBlVyB3aXRoIGEgTlVMTCByb290LgorCisyMDA0LTA0LTI2ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL2NvbWN0bDMyL2NvbWN0bF9Vay5yYywgZGxscy9jb21jdGwzMi9yc3JjLnJjLAorCSAgZGxscy9jb21tZGxnL2NkbGdfVWsucmMsIGRsbHMvY29tbWRsZy9yc3JjLnJjLAorCSAgZGxscy9zaGVsbDMyL3NoZWxsMzJfVWsucmMsIGRsbHMvc2hlbGwzMi9zaHJlcy5yYywKKwkgIGRsbHMvdXNlci9yZXNvdXJjZXMvdXNlcjMyLnJjLCBkbGxzL3VzZXIvcmVzb3VyY2VzL3VzZXIzMl9Vay5yYzoKKwlJbHlhIEtvcm5peWtvIDxrX2lseWFAdWtyLm5ldD4KKwlBZGRlZCBVa3JhaW5pYW4gdHJhbnNsYXRpb25zLgorCisJKiBkbGxzL2QzZDgvZDNkOF9wcml2YXRlLmgsIGRsbHMvZDNkOC9kZXZpY2UuYywgZGxscy9kM2Q4L2RyYXdwcmltLmMsCisJICBkbGxzL2QzZDgvc3VyZmFjZS5jLCBkbGxzL2QzZDgvdXRpbHMuYzoKKwlDaHJpc3RpYW4gQ29zdGEgPHRpdGFuLmNvc3RhQHdhbmFkb28uZnI+CisJSW1wbGVtZW50ZWQgZmFzdCByZW5kZXJpbmcgdG8gYSB0ZXh0dXJlIHVzaW5nIGdsQ29weVRleEltYWdlMkQKKwlGaXhlZCBTZXRWaWV3cG9ydC4KKwlGaXhlZCBTZXRSZW5kZXJUYXJnZXQgKGJhc2VkIG9uIEphc29uIEVkbWVhZGVzJyB3b3JrKS4KKwlJbXByb3ZlZCB0cmFjZS4KKworCSogZGxscy9ycGNydDQvcnBjX2JpbmRpbmcuYywgZGxscy9ycGNydDQvcnBjX2JpbmRpbmcuaCwKKwkgIGRsbHMvcnBjcnQ0L3JwY19kZWZzLmgsIGRsbHMvcnBjcnQ0L3JwY19tZXNzYWdlLmMsCisJICBkbGxzL3JwY3J0NC9ycGNfbWVzc2FnZS5oLCBkbGxzL3JwY3J0NC9ycGNfc2VydmVyLmM6CisJRmlsaXAgTmF2YXJhIDx4bmF2YXJhQHZvbG55LmN6PgorCU1ha2UgUlBDUlQ0IHVzZSBXaW5kb3dzIGNvbXBhdGlibGUgcHJvdG9jb2wgKERDRSB2NS4wKSBmb3IKKwljb21tdW5pY2F0aW9uLgorCisJKiBpbmNsdWRlL3RjaGFyLmg6IERpbWl0cmllIE8uIFBhdW4gPGRwYXVuQHJvZ2Vycy5jb20+CisJRGVmaW5lIF9UW1VTWF0/Q0hBUi9fVElOVC9UQ0hBUiB0eXBlcywgZm9yIGNvbXBhdGliaWxpdHkuCisJRG8gbm90IGRlcGVuZCBvbiBvdGhlciBmaWxlcyBiZWluZyBpbmNsdWRlZCBmaXJzdC4KKwlIYXZlIHRoZSBzYW1lIGluY2x1ZGUgZ3JhcGggYXMgdGhlIE1TIGhlYWRlcnMuCisJUHJvdGVjdCBhZ2FpbnN0IHRyeWluZyB0byB1c2UgbGliYyB3aGVuIG5vdCBwb3NzaWJsZS4KKwlDbGVhbnVwcy4KKworCSogaW5jbHVkZS9tc3ZjcnQvY3R5cGUuaCwgaW5jbHVkZS9tc3ZjcnQvc3RkaW8uaCwKKwkgIGluY2x1ZGUvbXN2Y3J0L3djaGFyLmgsIGluY2x1ZGUvbXN2Y3J0L3djdHlwZS5oOgorCURpbWl0cmllIE8uIFBhdW4gPGRwYXVuQHJvZ2Vycy5jb20+CisJRml4IHRoZSBfV0NUWVBFX1RfREVGSU5FRCBzZW50cnkgZm9yIGNvbXBhdGliaWxpdHkuCisKKwkqIGRsbHMvd2lubW0vd2luZWFsc2EvYXVkaW8uYzoKKwlGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAY29kZXdlYXZlcnMuY29tPgorCU1ha2Ugc3VyZSB0aGUgJ2Fsc2EgaGFuZGxlJyBpcyBpbml0aWFsaXplZCB0byBOVUxMIGJlZm9yZSBjYWxsaW5nCisJc25kX3BjbV9vcGVuKCkuIE90aGVyd2lzZSBpZiBpdCBmYWlscyB3ZSBnZXQgYSBjcmFzaCB0cnlpbmcgdG8gY2xvc2UKKwlhbiBpbnZhbGlkIGFsc2EgaGFuZGxlLgorCisJKiBkbGxzL2tlcm5lbC90ZXN0cy9waXBlLmM6IER1YW5lIENsYXJrIDxkY2xhcmtAYWthbWFpbC5jb20+CisJQWRkIHRlc3Rpbmcgb2YgUGVla05hbWVkUGlwZSwgbXVsdGlwbGUgd3JpdGVzLCBhbmQgbWVzc2FnZSBtb2RlLgorCisJKiBkbGxzL3dpbm1tL3Rlc3RzL3dhdmUuYzogRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGNvZGV3ZWF2ZXJzLmNvbT4KKwl3YXZlT3V0R2V0RGV2Q2FwcygtMS4uLikgbXVzdCByZXR1cm4gdGhlIGNhcGFiaWxpdGllcyBvZiB0aGUgV2F2ZQorCW1hcHBlci4KKwlEUlZfUVVFUllERVZJQ0VJTlRFUkZBQ0UgaXMgbm90IHN1cHBvcnRlZCBvbiBhbGwgV2luZG93cyB2ZXJzaW9ucy4KKwlDaGVjayB0aGUgbGVuZ3RoIHJldHVybmVkIGJ5IERSVl9RVUVSWURFVklDRUlOVEVSRkFDRVNJWkUgYW5kIGZpeAorCW1lbW9yeSBsZWFrLgorCVNvbWUgV2luZG93cyBzb3VuZCBkcml2ZXJzIGFsbG93IHdpbGQgZnJlcXVlbmNpZXMgc3VjaCBhcyB0aGUgMk1IegorCW9uZS4gU28gbW9kaWZ5IHRoaXMgdGVzdCB0byB1c2UgYW4gaW52YWxpZCBudW1iZXIgb2YgYml0cyBwZXIgc2FtcGxlCisJaW5zdGVhZCAoaG9wZWZ1bGx5IHRoYXQgd2lsbCBmYWlsIHJlYWxseSBldmVyeXdoZXJlKS4KKworCSogdG9vbHMvd2lkbC9wYXJzZXIubCwgdG9vbHMvd2lkbC9wYXJzZXIueSwgdG9vbHMvd2lkbC93aWRsdHlwZXMuaDoKKwlGaWxpcCBOYXZhcmEgPHhuYXZhcmFAdm9sbnkuY3o+CisJTWFrZSB3aWRsIHBhcnNlIHRoZSAndHJhbnNtaXRfYXMnIGFuZCAnZW5kcG9pbnQnIGtleXdvcmRzLgorCisJKiBkbGxzL3NoZWxsMzIvc2hsZXhlYy5jLCBkbGxzL3VzZXIvZGRlL2RkZV9wcml2YXRlLmgsCisJICBkbGxzL3VzZXIvZGRlL21pc2MuYywgZGxscy91c2VyL2RkZS9zZXJ2ZXIuYywgaW5jbHVkZS9kZGVtbC5oOgorCURtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJRml4IHRoZSBEREUgUEZOQ0FMTEJBQ0sgcHJvdG90eXBlLgorCisJKiBkbGxzL2QzZDgvZGV2aWNlLmMsIGRsbHMvZDNkOC9zaGFkZXIuYywgZGxscy9kM2Q4L3N0YXRlYmxvY2suYywKKwkgIGRsbHMvZDNkOC9zdXJmYWNlLmM6CisJTWFyY3VzIE1laXNzbmVyIDxtYXJjdXNAamV0LmZyYW5rZW4uZGU+CisJRml4ZWQgc29tZSBzdHJpY3QgYWxpYXNpbmcgaXNzdWVzIGluIGRsbHMvZDNkOC4KKwlJbmNvcnBvcmF0ZWQgYnVnZml4IGZyb20gQ2hyaXN0aWFuIENvc3RhIGluIHZzaGFkZXJfZXhwcC4KKworCSogZG9jdW1lbnRhdGlvbi9kZWJ1Z2dlci5zZ21sOiBJdmFuIExlbyBNdXJyYXktU21pdGggPHB1b3RpQGlud2luZC5pdD4KKwlSZXBsYWNlIC0tZGVidWdtc2cgYnkgV0lORURFQlVHLgorCisJKiBkbGxzL2QzZDgvZDNkY29yZV9nbC5oLCBkbGxzL2QzZDgvZGV2aWNlLmMsIGRsbHMvZDNkOC9kaXJlY3R4LmMsCisJICBkbGxzL2QzZDgvc3VyZmFjZS5jLCBkbGxzL2QzZDgvdXRpbHMuYzoKKwlSYXBoYWVsIEp1bnF1ZWlyYSA8ZmVuaXhAY2x1Yi1pbnRlcm5ldC5mcj4KKwktIGltcGxlbWVudCBTZXRSZW5kZXJTdGF0ZSBEM0RSU19GT0dFTkFCTEUvRDNEUlNfUkFOR0VGT0dFTkFCTEUKKwktIGltcGxlbWVudCBTZXRSZW5kZXJTdGF0ZSBEM0RSU19SQU5HRUZPR0VOQUJMRQorCS0gZml4IFNldFJlbmRlclN0YXRlIEQzRFJTX0ZPR1ZFUlRFWE1PREUgQ2Fwcy9EZXRlY3Rpb24gdHJhY2VzCisJLSBmaXggSURpcmVjdDNEODo6R2V0QWRhcHRlcklkZW50aWZpZXIgdG8gdXNlIEZpbGxHTENhcHMgYW5kIHByb3ZpZGUKKwkgIG1vcmUgZXhhY3QgaW5mb3MgKGRyaXZlciB2ZXJzaW9ucywgdmVuZG9yLCAuLi4pCisJLSBzcGxpdCBGYWtlIEdMIENvbnRleHQgY3JlYXRpb24gZnJvbSBHZXREZXZpY2VDYXBzIGZvciBleHRlcm5hbCB1c2UKKwktIGFkZCBhIG5ldyBjaGFubmVsIChkM2RfY2FwcykgZm9yIGFsbCBJRGlyZWN0M0Q4IENhcHMvZGV0ZWN0aW9uIHRyYWNlcworCS0gcmVuYW1lIGZwcyBjaGFubmVsIHRvIGQzZF9mcHMKKwktIGhpZ2ggdXNlIG9mIHJ1bnRpbWUgZGV0ZWN0ZWQgT3BlbkdMIENhcHMgaW5zdGVhZCBvZiBkZWZpbmVzCisJLSB1cGRhdGUgc3VwcG9ydGVkIENhcHMgdXNpbmcgcnVudGltZSBkZXRlY3Rpb24KKworCSogZGxscy9zaGVsbDMyL2F1dG9jb21wbGV0ZS5jOgorCU1heGltZSBCZWxsZW5n6SA8bWF4aW1lLmJlbGxlbmdlQGxhcG9zdGUubmV0PgorCUltcGxlbWVudGVkIHRoZSBBQ09fQVVUT1NVR0dFU1QsIEFDT19BVVRPQVBQRU5ELCBBQ09fVVBET1dOS0VZRFJPUFNMSVNUCisJc3R5bGVzLgorCisJKiBkbGxzL3gxMWRydi9iaXRibHQuYzogSnVra2EgSGVpbm9uZW4gPGpoZWlAaWtpLmZpPgorCUlmIHNvdXJjZSBhbmQgZGVzdGluYXRpb24gYXJlIHRoZSBzYW1lIG9iamVjdCwgZG9uJ3QgbG9jayB0aGUgb2JqZWN0CisJdHdpY2UgYXMgaXQgd2lsbCBvbmx5IGJlIHVubG9ja2VkIG9uY2UuCisKKwkqIGRsbHMvd2luZWQzZC92ZXJ0ZXhzaGFkZXIuYzogTWFyY3VzIE1laXNzbmVyIDxtYXJjdXNAamV0LmZyYW5rZW4uZGU+CisJRml4ZWQgcG9zaXRpb24gb2YgdG1wLmYgYXNzaWduZWQgbGlrZSBpbiBkbGxzL2QzZDgvc2hhZGVyLmMuCisJRml4ZWQgc3RyaWN0IGFsaWFzaW5nIHByb2JsZW0uCisKKwkqIGRsbHMvd2luZWRvcy9pbnQyMS5jOiBKdWtrYSBIZWlub25lbiA8amhlaUBpa2kuZmk+CisJSW1wbGVtZW50IERPUzcgY2Fub25pY2FsaXplIHBhdGggZnVuY3Rpb24gYXMgYSBjb252ZXJzaW9uIHRvIHNob3J0CisJZmlsZSBuYW1lLgorCisJKiB3aW5kb3dzL21kaS5jOiBEdWFuZSBDbGFyayA8ZGNsYXJrQGFrYW1haWwuY29tPgorCUFkZCB0cmFjaW5nIG1lc3NhZ2VzIHRvIE1ESS4KKworCSogZGxscy93aW5tbS93aW5lamFjay9qYWNrLmM6IEZyYW5jb2lzIEdvdWdldCA8ZmdvdWdldEBjb2Rld2VhdmVycy5jb20+CisJRml4IGEgd2FybmluZyBpbiBKQUNLX2RydkxvYWQoKS4KKworCSogZGxscy93aW5tbS93aW5lYWxzYS9hdWRpby5jLCBkbGxzL3dpbm1tL3dpbmVhcnRzL2F1ZGlvLmMsCisJICBkbGxzL3dpbm1tL3dpbmVhdWRpb2lvL2F1ZGlvLmMsIGRsbHMvd2lubW0vd2luZWphY2svYXVkaW8uYywKKwkgIGRsbHMvd2lubW0vd2luZW5hcy9hdWRpby5jLCBkbGxzL3dpbm1tL3dpbmVvc3MvYXVkaW8uYzoKKwlGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAY29kZXdlYXZlcnMuY29tPgorCVdlIG9ubHkgc3VwcG9ydCA4IGFuZCAxNiBiaXQgc291bmQgc28gd2Ugc2hvdWxkIHJlamVjdCB0aGUgb3RoZXIKKwlmb3JtYXRzLgorCisJKiBkbGxzL2NvbW1kbGcvZmlsZWRsZzE2LmM6IEZyYW5jb2lzIEdvdWdldCA8ZmdvdWdldEBmcmVlLmZyPgorCUlmIGxwc3RyVGl0bGUgaXMgTlVMTCwgc2V0IGl0IHRvIGVpdGhlciAnT3BlbiBGaWxlJyBvciAnU2F2ZSBhcycuCisJQ29uc3RpZnkgdGhlIHN0cmluZyBjb25zdGFudHMuCisKKwkqIGRsbHMvdXNlci9kZGUvY2xpZW50LmMsIGRsbHMvdXNlci9kZGUvc2VydmVyLmM6CisJRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlDYWxsIGFwcHJvcHJpYXRlIERlZldpbmRvd1Byb2MgaW4gRERFIGNsaWVudC9zZXJ2ZXIgd2luZG93IHByb2NzCisJZGVwZW5kaW5nIG9uIHdoZXRoZXIgYSB3aW5kb3cgcHJvYyBpcyB1bmljb2RlIG9yIEFOU0kuCisKKzIwMDQtMDQtMjMgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGRsbHMva2VybmVsL3ZvbHVtZS5jLCBmaWxlcy9kcml2ZS5jOgorCVJlaW1wbGVtZW50ZWQgR2V0TG9naWNhbERyaXZlcywgR2V0TG9naWNhbERyaXZlU3RyaW5ncyBhbmQKKwlHZXREcml2ZVR5cGUgdXNpbmcgdGhlIG5ldyBzeW1saW5rIG1lY2hhbmlzbS4KKwlNYWRlIEdldERyaXZlVHlwZSBhdHRlbXB0IHRvIGF1dG9kZXRlY3QgdGhlIHR5cGUgaWYgbm90IHNwZWNpZmllZCBpbgorCXRoZSByZWdpc3RyeS4KKworCSogcHJvZ3JhbXMvd2luZXRlc3QvbWFpbi5jOiBGZXJlbmMgV2FnbmVyIDx3ZmVyaUBhZmF2YW50LmVsdGUuaHU+CisJUmVtb3ZlIHRoZSB3aW5lbG9hZGVyIHZhcmlhYmxlLgorCisJKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGxscy9tYXBpMzIvdGVzdHMvLmN2c2lnbm9yZSwKKwkgIGRsbHMvbWFwaTMyL3Rlc3RzL01ha2VmaWxlLmluLCBkbGxzL21hcGkzMi90ZXN0cy9wcm9wLmMsCisJICBkbGxzL21hcGkzMi90ZXN0cy91dGlsLmM6CisJSm9uIEdyaWZmaXRocyA8am9uX3BfZ3JpZmZpdGhzQHlhaG9vLmNvbT4KKwlUZXN0cyBmb3IgbmV3bHkgYWRkZWQgTUFQSSBmdW5jdGlvbnMuCisKKwkqIGRsbHMvbWFwaTMyL01ha2VmaWxlLmluLCBkbGxzL21hcGkzMi9tYXBpMzIuc3BlYywKKwkgIGRsbHMvbWFwaTMyL21hcGkzMl9tYWluLmMsIGRsbHMvbWFwaTMyL3Byb3AuYywgZGxscy9tYXBpMzIvdXRpbC5jOgorCUpvbiBHcmlmZml0aHMgPGpvbl9wX2dyaWZmaXRoc0B5YWhvby5jb20+CisJSW1wbGVtZW50IE1BUEkgcHJvcGVydHkgJiB1dGlsaXR5IGZ1bmN0aW9ucy4KKworCSogZGxscy91dWlkL3V1aWQuYywgaW5jbHVkZS9NYWtlZmlsZS5pbiwgaW5jbHVkZS9tYXBpY29kZS5oLAorCSAgaW5jbHVkZS9tYXBpZGVmcy5oLCBpbmNsdWRlL21hcGlndWlkLmgsIGluY2x1ZGUvbWFwaXRhZ3MuaCwKKwkgIGluY2x1ZGUvbWFwaXV0aWwuaCwgaW5jbHVkZS9tYXBpdmFsLmgsIGluY2x1ZGUvbWFwaXguaDoKKwlKb24gR3JpZmZpdGhzIDxqb25fcF9ncmlmZml0aHNAeWFob28uY29tPgorCVVwZGF0ZS9BZGQgTUFQSSBoZWFkZXJzLgorCisJKiBkbGxzL250ZGxsL2Nkcm9tLmMsIGRsbHMvbnRkbGwvbnRkbGwuc3BlYywgZmlsZXMvZHJpdmUuYywKKwkgIG1pc2MvcmVnaXN0cnkuYzoKKwlNb3ZlZCBjcmVhdGlvbiBvZiB0aGUgQ0RST00gcmVnaXN0cnkga2V5cyBpbnRvIHRoZSByZWdpc3RyeSBsb2FkaW5nCisJY29kZS4KKworCSogZGxscy9hZHZhcGkzMi9yZWdpc3RyeS5jLCBkbGxzL2FkdmFwaTMyL3NlY3VyaXR5LmMsCisJICBkbGxzL2FkdmFwaTMyL3NlcnZpY2UuYzoKKwlKb24gR3JpZmZpdGhzIDxqb25fcF9ncmlmZml0aHNAeWFob28uY29tPgorCURvY3VtZW50YXRpb24gZml4ZXMuCisKKwkqIGRsbHMvc2hlbGwzMi9zaGxleGVjLmMsIGRsbHMvdXNlci9kZGUvbWlzYy5jLAorCSAgZGxscy91c2VyL3Rlc3RzLy5jdnNpZ25vcmUsIGRsbHMvdXNlci90ZXN0cy9NYWtlZmlsZS5pbiwKKwkgIGRsbHMvdXNlci90ZXN0cy9kZGUuYzoKKwlEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCUZpeCBhIGJ1ZyBpbiBTaGVsbEV4ZWN1dGUgd2hpY2ggY2FsbGVkIERkZUNyZWF0ZVN0cmluZ0hhbmRsZVcgd2l0aCBhCisJd3JvbmcgcGFyYW1ldGVyLiBSZXZlcnQgcHJldmlvdXMgZXJyb25lb3VzIGZpeC4KKworCSogZGxscy9vbGVhdXQzMi90ZXN0cy92YXJ0eXBlLmM6CisJSm9uIEdyaWZmaXRocyA8am9uX3BfZ3JpZmZpdGhzQHlhaG9vLmNvbT4KKwlUZXN0IENsZWFyQ3VzdERhdGEoKSBhbmQgVUlOVC0+STQgY29udmVyc2lvbi4KKworCSogZGxscy9vbGVhdXQzMi9vbGVhdXQzMi5zcGVjLCBkbGxzL29sZWF1dDMyL3R5cGVsaWIyLmM6CisJSm9uIEdyaWZmaXRocyA8am9uX3BfZ3JpZmZpdGhzQHlhaG9vLmNvbT4KKwlJbXBsZW1lbnQgQ2xlYXJDdXN0RGF0YS4KKworCSogZGxscy9vbGVhdXQzMi92YXJ0eXBlLmM6IEpvbiBHcmlmZml0aHMgPGpvbl9wX2dyaWZmaXRoc0B5YWhvby5jb20+CisJQ2hlY2sgdGhlIGNvcnJlY3QgcGFyYW0gZm9yIDIgREVDSU1BTCBvcGVyYXRpb25zLgorCisJKiBkbGxzL29sZWF1dDMyL3ZhcmlhbnQuYzogSm9uIEdyaWZmaXRocyA8am9uX3BfZ3JpZmZpdGhzQHlhaG9vLmNvbT4KKwlDb252ZXJzaW9uIGZyb20gVlRfVUlOVCB0byBWVF9JNCBpZ25vcmVzIG92ZXJmbG93LgorCisJKiB0b29scy9jMm1hbi5wbDogSm9uIEdyaWZmaXRocyA8am9uX3BfZ3JpZmZpdGhzQHlhaG9vLmNvbT4KKwlBY2NlcHQgZXhwb3J0cyB3aXRoICdAJyBpbiB0aGVpciBuYW1lLgorCUxpbmsgdG8gd2luZWhxIHNvdXJjZSBmb3IgaW1wbGVtZW50ZWQgZnVuY3Rpb25zLgorCisJKiBkbGxzL2QzZDgvc2hhZGVyLmM6IFJhcGhhZWwgSnVucXVlaXJhIDxmZW5peEBjbHViLWludGVybmV0LmZyPgorCURvbid0IHRyeSB0byBjcmVhdGUgSFcgVmVydGV4IFNoYWRlcnMgd2hlbiBjb2RlIGlzIE5VTEwgKGllIHVzZQorCWRlZmF1bHQgcmVuZGVyaW5nIGNvZGUgdXNpbmcgVmVydGV4U2hhZGVyRGVjbGFyYXRpb24gZm9yIGRhdGFzKSBhcyBHTAorCWRyaXZlcnMgZG9uJ3QgbGlrZSBlbXB0eSBwcm9ncmFtcy4KKworCSogZGxscy9kM2Q4L2RpcmVjdHguYzogUmFwaGFlbCBKdW5xdWVpcmEgPGZlbml4QGNsdWItaW50ZXJuZXQuZnI+CisJRml4IHNvbWUgcmFuZG9tIGNyYXNoZXMgZm91bmQgb24gc29tZSBnYW1lcyBpbiB0aGUgbmV3IGNvZGUgKGxpdmUKKwlHTFgvR0wgZHJpdmVycykuCisKKwkqIGRsbHMva2VybmVsL2tlcm5lbF9wcml2YXRlLmgsIGRsbHMva2VybmVsL3ZvbHVtZS5jLAorCSAgZGxscy9udGRsbC9kaXJlY3RvcnkuYywgZmlsZXMvZmlsZS5jOgorCU1vdmVkIHN1cHBvcnQgZm9yIG9wZW5pbmcgRE9TIGRldmljZSBmaWxlcyB0byBudGRsbC4KKworCSogcHJvZ3JhbXMvd2luZXRlc3QvbWFpbi5jOiBGZXJlbmMgV2FnbmVyIDx3ZmVyaUBhZmF2YW50LmVsdGUuaHU+CisJVW5jb25kaXRpb25hbGx5IHRlc3QgV2luZSBwcmVzZW5jZS4KKwlBZGQgdGhlIEJ1aWxkIGluZm8gc2VjdGlvbiB0byB0aGUgb3V0cHV0LgorCisJKiBkbGxzL2tlcm5lbC9rZXJuZWwzMi5zcGVjLCBkbGxzL2tlcm5lbC9wYXRoLmMsCisJICBkbGxzL250ZGxsL2RpcmVjdG9yeS5jLCBkbGxzL250ZGxsL2ZpbGUuYywgZGxscy9udGRsbC9udGRsbC5zcGVjLAorCSAgZGxscy9udGRsbC9udGRsbF9taXNjLmgsIGluY2x1ZGUvd2ludGVybmwuaCwKKwkgIHByb2dyYW1zL3dpbmV0ZXN0L21haW4uYzoKKwlNYWtlIERJUl9udF90b191bml4IHJldHVybiBTVEFUVVNfTk9fU1VDSF9GSUxFIGluc3RlYWQgb2YKKwlTVEFUVVNfT0JKRUNUX05BTUVfTk9UX0ZPVU5EIHRvIGluZGljYXRlIHRoYXQgdGhlIGxhc3QgY29tcG9uZW50CisJZGlkbid0IGV4aXN0IHRvIGFsbG93IGRpc3Rpbmd1aXNoaW5nIGl0IGZyb20gbGVnaXRpbWF0ZSBlcnJvcnMuCisJRXhwb3J0IGl0IGZyb20gbnRkbGwsIHJlbmFtZWQgdG8gd2luZV9udF90b191bml4X2ZpbGVfbmFtZS4KKworCSogZmlsZXMvZmlsZS5jOiBEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCVVzZSBhIHBhc3NlZCBTZWN1cml0eURlc2NyaXB0b3IgaW4gQ3JlYXRlRmlsZVcuCisKKwkqIGRsbHMvb2xlYXV0MzIvdGVzdHMvdmFydGVzdC5jOiBDaHJpcyBNb3JnYW4gPGNtb3JnYW5AYWx1bS53cGkuZWR1PgorCVNraXAgb3ZlciBtb3N0IG9mIHRoZSB1bnVzZWQgdmFyaWFudCB0eXBlcyB0byBzcGVlZCB1cCB0aGUgdmFyaWFudAorCXRlc3RzLgorCisJKiBtaXNjL3JlZ2lzdHJ5LmM6CisJVXNlIE50T3BlbkZpbGUgaW5zdGVhZCBvZiBGSUxFX0NyZWF0ZUZpbGUgdG8gb3BlbiBVbml4IGZpbGVzLgorCisJKiBwcm9ncmFtcy93aW5ldGVzdC9tYWluLmM6IEpha29iIEVyaWtzc29uIDxqYWtvdkB2bWxpbnV4Lm9yZz4KKwlBZGRlZCBXaW5lIGRldGVjdGlvbi4KKworMjAwNC0wNC0yMiAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9zaGVsbDMyL3NobGV4ZWMuYzogSHV3IERhdmllcyA8aHV3QGNvZGV3ZWF2ZXJzLmNvbT4KKwlEZGVDbGllbnRUcmFuc2FjdGlvbiByZXR1cm5zIHplcm8gb24gZXJyb3IuCisKKwkqIGRsbHMvdXNlci9kZGUvbWlzYy5jOiBEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCVVuaWNvZGUgdmVyc2lvbiBvZiBEZGVDcmVhdGVTdHJpbmdIYW5kbGUgc2hvdWxkIGlnbm9yZSBjb2RlcGFnZSBwYXJhbWV0ZXIuCisKKwkqIGRsbHMvZDNkOC9kM2Rjb3JlX2dsLmgsIGRsbHMvZDNkOC9kaXJlY3R4LmM6CisJUmFwaGFlbCBKdW5xdWVpcmEgPGZlbml4QGNsdWItaW50ZXJuZXQuZnI+CisJLSBtb3JlIEZJWE1FIC0+IFRSQUNFCisJLSBiZWdpbiB2ZW5kb3IvY2FyZCBkZXRlY3Rpb24gKHZlcnNpb25zL25hbWVzKQorCisJKiBpbmNsdWRlL3dpbmUvcG9ydC5oOiBEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCUFkZCBzb21lIGNvbXBhdGliaWxpdHkgbWFjcm9zLgorCisJKiBkbGxzL2tlcm5lbC90ZXN0cy9maWxlLmM6IEpha29iIEVyaWtzc29uIDxqYWtvdkB2bWxpbnV4Lm9yZz4KKwlXaGVuIHRoZSBXaW5kb3dzIGRpcmVjdG9yeSB3YXMgc29tZXRoaW5nIGVsc2UgdGhhbiBDOlxXSU5ET1dTCisJdGVzdF9HZXRUZW1wRmlsZU5hbWVBKCkgZmFpbGVkLgorCisJKiBwcm9ncmFtcy93aW5ldGVzdC9tYWluLmMsIHByb2dyYW1zL3dpbmV0ZXN0L3V0aWwuYywKKwkgIHByb2dyYW1zL3dpbmV0ZXN0L3dpbmV0ZXN0Lmg6CisJRmVyZW5jIFdhZ25lciA8d2ZlcmlAYWZhdmFudC5lbHRlLmh1PgorCS0gY29uc3RpZnkgc29tZSBzdHJpbmdzCisJLSBpbnRyb2R1Y2UgLXUgb3B0aW9uIHRvIHdyaXRlIGFyY2hpdmUgdXJsIGludG8gdGhlIHJlcG9ydAorCS0gYnVtcCBvdXRwdXQgZm9ybWF0IHZlcnNpb24gdG8gMworCisJKiBmaWxlcy9maWxlLmM6IE1ha2UgQ3JlYXRlRmlsZVcgdXNlIE50Q3JlYXRlRmlsZS4KKworCSogY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRsbHMvTWFrZWZpbGUuaW4sCisJICBkbGxzL2hoY3RybC5vY3gvLmN2c2lnbm9yZSwgZGxscy9oaGN0cmwub2N4L01ha2VmaWxlLmluLAorCSAgZGxscy9oaGN0cmwub2N4L2hoY3RybC5jLCBkbGxzL2hoY3RybC5vY3gvaGhjdHJsLm9jeC5zcGVjOgorCUtyenlzenRvZiBGb2x0bWFuIDxrZm9sdG1hbkBwb3J0YWwub25ldC5wbD4KKwlBZGRlZCBkdW1teSBoaGN0cmwub2N4IHdpdGggc3R1YnMgb2YgSHRtbEhlbHBBIGFuZCBIdG1sSGVscFcuCisKKwkqIHRvb2xzL3dpZGwvaGVhZGVyLmMsIHRvb2xzL3dpZGwvaGVhZGVyLmgsIHRvb2xzL3dpZGwvcGFyc2VyLnksCisJICB0b29scy93aWRsL3dpZGx0eXBlcy5oOgorCUZpbGlwIE5hdmFyYSA8eG5hdmFyYUB2b2xueS5jej4KKwlNYWtlIHdpZGwgY29tcGlsZSB3aXRob3V0IG1vc3Qgb2YgV2luZG93cy9XaW5lIGhlYWRlcnMsIHNvIGl0IGNhbiBiZQorCXJldXNlZCBieSBvdGhlciBwcm9qZWN0cy4KKworMjAwNC0wNC0yMSAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy91c2VyL3VzZXJfbWFpbi5jOgorCVByZWxvYWQga2V5Ym9hcmQuZHJ2IHdoZW4gV2luZG93cyB2ZXJzaW9uIGlzIFdpbjl4LgorCisJKiBkbGxzL2tlcm5lbC9wYXRoLmMsIGZpbGVzL2ZpbGUuYzoKKwlDaGFuZ2VkIE1vdmVGaWxlRXggdG8gdXNlIG50ZGxsIGZ1bmN0aW9ucywgYW5kIG1vdmVkIGl0IHRvCisJZGxscy9rZXJuZWwvcGF0aC5jLgorCisJKiBkbGxzL250ZGxsL2RpcmVjdG9yeS5jLCBkbGxzL250ZGxsL2ZpbGUuYzoKKwlQcm9wZXJseSBzZXQgSU9fU1RBVFVTX0JMT0NLLkluZm9ybWF0aW9uIGluIE50Q3JlYXRlRmlsZS4KKworCSogZGxscy9jb21jdGwzMi9saXN0dmlldy5jOiBIdXcgRGF2aWVzIDxodXdAY29kZXdlYXZlcnMuY29tPgorCURlbGV0aW5nIGNvbHVtbiB6ZXJvIHNob3VsZCBvbmx5IGRlbGV0ZSB0aGUgY29sdW1uIGFuZCBub3QgdGhlIGl0ZW0KKwlkYXRhLgorCisJKiBkbGxzL25ldGFwaTMyL2FwaWJ1Zi5jLCBkbGxzL25ldGFwaTMyL3Rlc3RzL2FwaWJ1Zi5jOgorCUp1YW4gTGFuZyA8anVhbl9sYW5nQHlhaG9vLmNvbT4KKwlGaXggTmV0QXBpQnVmZmVyUmVhbGxvY2F0ZSBhbmQgdGVzdHMgYmFzZWQgb24gcmVzdWx0cyBmcm9tIHdpbmV0ZXN0LgorCisJKiBkbGxzL2QzZDgvZGlyZWN0eC5jOiBDaHJpc3RpYW4gQ29zdGEgPHRpdGFuLmNvc3RhQHdhbmFkb28uZnI+CisJQ29udmVydGVkIHNvbWUgRklYTUVzIGludG8gVFJBQ0VzLgorCisJKiBkbGxzL2NvbWN0bDMyL21vbnRoY2FsLmM6IEtyenlzenRvZiBGb2x0bWFuIDxrZm9sdG1hbkBwb3J0YWwub25ldC5wbD4KKwktIG5leHQvcHJldiBtb250aCBkb24ndCBzdGljayBhbnltb3JlCisJLSBtaW4vbWF4IHJhbmdlcyBpbml0aWFsaXplZCB0byBzb21lIHJlYXNvbmFibGUgdmFsdWVzCisJLSBmaXhlZCBzb21lIGJ1Z3MgY2F1c2VkIGJ5IHJldmVyc2VkIG9yZGVyIG9mIGFyZ3VtZW50cyBvZiBNT05USENBTF9Db3B5VGltZQorCS0gdXBkYXRlIGN1cnJlbnQgbW9udGgveWVhciBhZnRlciBzZXR0aW5nIGN1cnJlbnQgZGF0ZQorCS0gY2hhbmdpbmcgbW9udGhzIGV0YyBkb2Vzbid0IHNlbmQgTUNOX1NFTEVDVCAod2hpY2ggY291bGQgYmUgc2VudAorCSAgb25seSBhZnRlciBhIHBhcnRpY3VsYXIgZGF5IHdhcyBjbGlja2VkKQorCS0gY2hhbmdlZCAoaGl0ICYmIE1DSFRfQ0FMRU5EQVJEQVRFKSB0byAoaGl0ID09IE1DSFRfQ0FMRU5EQVJEQVRFKQorCisJKiBkbGxzL2NvbWN0bDMyL2RhdGV0aW1lLmM6IEtyenlzenRvZiBGb2x0bWFuIDxrZm9sdG1hbkBwb3J0YWwub25ldC5wbD4KKwktIG1ha2UgbW9udGhjYWwgYSBjaGlsZCBvZiBkYXRldGltZSAoaXQgd2FzIGEgc2libGluZyBiZWZvcmUsIGNhdXNpbmcKKwkgIGNvbXBsZXRlbHkgaW5jb3JyZWN0IG1lc3NhZ2UgZmxvdykKKwktIHVwZGF0ZSBtb250aGNhbCBhZnRlciBkYXRlIGNoYW5nZSBpbiBkYXRldGltZQorCS0gY2hvb3NlIGRpZmZlcmVudCBjb29yZGluYXRlcyB3aGVuIERUU19TSE9XTk9ORSBpcyBub3QgdXNlZAorCS0gZW1iZWRkZWQgbW9udGhjYWwgaXMgbm93IDIwMCBwaXhlbHMgd2lkZQorCS0gc2VsZWN0aW5nIGEgZGF5IGluIGVtYmVkZGVkIG1vbnRoY2FsIHVwZGF0ZXMgdGhlIGRhdGV0aW1lIGFuZCBoaWRlcworCSAgdGhlIG1vbnRoY2FsCisJLSBjaGFuZ2luZyBtb250aHMveWVhcnMgYnkgY2xpY2tpbmcgbW9udGggbmFtZS95ZWFyIGluIHRpdGxlIGJhciB3b3JrcworCS0gZW1iZWRkZWQgbW9udGggY2FsZW5kYXIgaXMgY29ycmVjdGx5IGRlc3Ryb3llZCAoaXQgdXNlZCB0byBzdGljayBvbgorCSAgdGhlIHNjcmVlbiBsb25nIGFmdGVyIHRoZSBkYXRldGltZSdzIGNvbnRhaW5lciB3YXMgY2xvc2VkKQorCisJKiBvYmplY3RzL2VuaG1ldGFmaWxlLmM6IERhdmUgQmVsYW5nZXIgPGRhdmUuYmVsYW5nZXJAY2ltbWV0cnkuY29tPgorCUZpeCBiYWQgRU1GIGV4dGVudHMgaW4gU2V0V2luTWV0YUZpbGVCaXRzLgorCisJKiBkbGxzL2tlcm5lbC9jcHUuYzogRW1tYW51ZWwgTWFpbGxhcmQgPGUucnN6QGxpYmVydHlzdXJmLmZyPgorCUdldFN5c3RlbUluZm8gc3VwcG9ydCBmb3IgRGFyd2luLgorCisJKiBpbmNsdWRlL3dpbnRlcm5sLmg6IE1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlBZGQgc29tZSB2YWx1ZXMgdG8gdGhlIFNZU1RFTV9JTkZPUk1BVElPTl9DTEFTUyBlbnVtZXJhdGlvbi4KKworMjAwNC0wNC0yMCAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZG9jdW1lbnRhdGlvbi9jb25maWd1cmluZy5zZ21sLCBkb2N1bWVudGF0aW9uL2RlYnVnZ2luZy5zZ21sLAorCSAgZG9jdW1lbnRhdGlvbi9pbXBsZW1lbnRhdGlvbi5zZ21sLCBkb2N1bWVudGF0aW9uL29wZW5nbC5zZ21sLAorCSAgZG9jdW1lbnRhdGlvbi93aW5lbGliLWJpbmRsbHMuc2dtbDoKKwlJdmFuIExlbyBNdXJyYXktU21pdGggPHB1b3RpQGlud2luZC5pdD4KKwlSZXBsYWNlIC0tZGVidWdtc2cgd2l0aCBXSU5FREVCVUcuCisKKwkqIGRsbHMvZDNkOC9zaGFkZXIuYzogRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGZyZWUuZnI+CisJRml4ZWQgdHlwb3MuCisKKwkqIHByb2dyYW1zL3dpbmV0ZXN0L3NlbmQuYzogSmFrb2IgRXJpa3Nzb24gPGpha292QHZtbGludXgub3JnPgorCUZpeGVkIHR5cG8uCisKKwkqIGRsbHMvZDNkOC9kM2Rjb3JlX2dsLmg6IFJhcGhhZWwgSnVucXVlaXJhIDxmZW5peEBjbHViLWludGVybmV0LmZyPgorCUZpeCB0aGUgZDNkY29yZV9nbCBwYXJ0IG9mIEhXIHZlcnRleCBzaGFkZXIgc3VwcG9ydCBmb3IgYnJva2VucyBHTAorCWhlYWRlcnMuCisKKwkqIGRsbHMva2VybmVsL2ZpbGUuYywgZGxscy9udGRsbC9maWxlLmMsIGRsbHMvbnRkbGwvbnRkbGwuc3BlYywKKwkgIGZpbGVzL2ZpbGUuYywgaW5jbHVkZS93aW50ZXJubC5oOgorCVJlaW1wbGVtZW50ZWQgR2V0RmlsZUF0dHJpYnV0ZXNFeFcgYW5kIEdldENvbXByZXNzZWRGaWxlU2l6ZVcgdXNpbmcKKwl0aGUgY29ycmVzcG9uZGluZyBudGRsbCBmdW5jdGlvbmFsaXR5LgorCisJKiBkbGxzL2RiZ2hlbHAvZWxmX21vZHVsZS5jLCBkbGxzL2RiZ2hlbHAvc3RhY2suYywKKwkgIGRsbHMvZGV2ZW51bS9jcmVhdGVkZXZlbnVtLmMsIGRsbHMvZGV2ZW51bS9kZXZlbnVtX3ByaXZhdGUuaCwKKwkgIGRsbHMvc2hsd2FwaS91cmwuYywgZG9jdW1lbnRhdGlvbi9ydW5uaW5nLnNnbWwsIGluY2x1ZGUvd2luc3Bvb2wuaDoKKwlGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAZnJlZS5mcj4KKwlBc3NvcnRlZCBzcGVsbGluZyBmaXhlcy4KKwlSZW1vdmUgd3N6UmVnU2VwYXJhdG9yIGZyb20gZGV2ZW51bV9wcml2YXRlLmggc2luY2UgaXQncyBuZWl0aGVyCisJZXhwb3J0ZWQgYnkgY3JlYXRlZGV2ZW51bS5jIG5vciB1c2VkIGJ5IGFueW9uZSBlbHNlLgorCisJKiBkbGxzL3VzZXIvdGVzdHMvbXNnLmM6IERtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJQWRkIGEgbWVzc2FnZSB0ZXN0IGZvciBjdXN0b20gZGlhbG9nIGluaXRpYWxpemF0aW9uLgorCisJKiB3aW5kb3dzL2RlZmRsZy5jLCB3aW5kb3dzL2RpYWxvZy5jOgorCVNhbnRvc2ggU2lkZGhlc2h3YXIgPHNhbnRvc2guc0Bzb25hdGEtc29mdHdhcmUuY29tPgorCUFsbG9jYXRlIERJQUxPR0lORk8gc3RydWN0dXJlIGluIERlZkRsZ1Byb2MgaW5zdGVhZCBvZiBpbgorCURJQUxPR19DcmVhdGVJbmRpcmVjdCwgc28gdGhhdCBpdCBnZXRzIGNyZWF0ZWQgY29ycmVjdGx5IGZvciBub24KKwl0ZW1wbGF0ZS1iYXNlZCBkaWFsb2dzLgorCisJKiBkb2N1bWVudGF0aW9uL2J1Z3Muc2dtbDogSXZhbiBMZW8gTXVycmF5LVNtaXRoIDxwdW90aUBpbndpbmQuaXQ+CisJUmVwbGFjZSAtLWRlYnVnbXNnIHdpdGggV0lORURFQlVHLgorCisJKiBwcm9ncmFtcy93aW5ldGVzdC9NYWtlZmlsZS5pbiwgcHJvZ3JhbXMvd2luZXRlc3QvbWFpbi5jOgorCUZlcmVuYyBXYWduZXIgPHdmZXJpQGFmYXZhbnQuZWx0ZS5odT4KKwktIENoYW5nZSB0byBjb25zb2xlIG1vZGUgc28gdGhhdCB3aW5ldGVzdCBydW5zIHVuZGVyIFdpblJhc2guCisJLSBNb3ZlIGZyb20gc3Bhd252cCgpIHRvIENyZWF0ZVByb2Nlc3MoKS4KKwktIEZvcmNlIGEgMi1taW51dGUgdGltZW91dCBvbiBpbmRpdmlkdWFsIHRlc3RzLgorCisJKiBkbGxzL25ldGFwaTMyL3Rlc3RzL3drc3RhLmMsIGRsbHMvb2xlMzIvc3RvcmFnZTMyLmMsCisJICBkbGxzL29sZWF1dDMyL29sZWZvbnQuYywgZGxscy9vbGVhdXQzMi90eXBlbGliMi5jLAorCSAgZGxscy9zaGVsbDMyL3NobGZzYmluZC5jLCBkbGxzL3NobHdhcGkvb3JkaW5hbC5jLCBkbGxzL3VybG1vbi91bW9uLmMsCisJICBkbGxzL3dpbmluZXQvaHR0cC5jLCBkbGxzL3dzb2NrMzIvcHJvdG9jb2wuYzoKKwlGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAZnJlZS5mcj4KKwlNYWtlIFVuaWNvZGUgc3RyaW5ncyAnc3RhdGljIGNvbnN0Jy4KKworCSogZGxscy9hZHZhcGkzMi9zZWN1cml0eS5jLCBkbGxzL2NvbWN0bDMyL2NvbWJvZXguYywKKwkgIGRsbHMvY29tY3RsMzIvY29tY3RsMzJ1bmRvYy5jLCBkbGxzL2NvbWN0bDMyL2lwYWRkcmVzcy5jLAorCSAgZGxscy9jb21jdGwzMi9saXN0dmlldy5jLCBkbGxzL2NvbWN0bDMyL3RyYWNrYmFyLmMsCisJICBkbGxzL2NvbWN0bDMyL3RyZWV2aWV3LmMsIGRsbHMvY29tbWRsZy9maWxlZGxnLmMsCisJICBkbGxzL2R4ZXJyOC9keGVycjguYywgZGxscy9keGVycjkvZHhlcnI5LmMsIGRsbHMvZ2RpL2ZyZWV0eXBlLmMsCisJICBkbGxzL2tlcm5lbC90ZXN0cy9maWxlLmMsIGRsbHMva2VybmVsL3Rlc3RzL2Zvcm1hdF9tc2cuYywKKwkgIGRsbHMvbnRkbGwvdGVzdHMvcnRsc3RyLmMsIGRsbHMvb2xlMzIvYW50aW1vbmlrZXIuYywKKwkgIGRsbHMvb2xlMzIvZmlsZW1vbmlrZXIuYywgZGxscy9vbGUzMi9zdG9yYWdlMzIuYywKKwkgIGRsbHMvb2xlYXV0MzIvb2xlZm9udC5jLCBkbGxzL29sZWF1dDMyL3R5cGVsaWIuYywKKwkgIGRsbHMvcXVhcnR6L2ZpbGVzb3VyY2UuYywgZGxscy9zZXR1cGFwaS9kaXNrc3BhY2UuYywKKwkgIGRsbHMvc2hlbGwzMi9zaGVsbDMyX21haW4uYywgZGxscy9zaGVsbDMyL3NobGZpbGVvcC5jLAorCSAgZGxscy9zaGx3YXBpL3JlZy5jLCBkbGxzL3NobHdhcGkvc3RyaW5nLmMsIGRsbHMvc2hsd2FwaS91cmwuYywKKwkgIGRsbHMvdXNlci90ZXN0cy9jbGFzcy5jLCBkbGxzL3V4dGhlbWUvbXNzdHlsZXMuYywKKwkgIGRsbHMvdXh0aGVtZS9zeXN0ZW0uYzoKKwlGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAZnJlZS5mcj4KKwlNYWtlIFVuaWNvZGUgc3RyaW5ncyBzdGF0aWMgY29uc3QuCisKKwkqIGRsbHMvbnRkbGwvbnRkbGwuc3BlYywgZGxscy9udGRsbC9yZXNvdXJjZS5jLAorCSAgaW5jbHVkZS93aW50ZXJubC5oOgorCVJvYmVydCBTaGVhcm1hbiA8Ui5KLlNoZWFybWFuQHdhcndpY2suYWMudWs+CisJU3R1YiBhbmQgZG9jdW1lbnRhdGlvbiBmb3IgUnRsRm9ybWF0TWVzc2FnZS4KKworCSogZGxscy9udGRsbC9wYXRoLmM6IE1pbm9yIGZpeGVzLgorCisJKiBkbGxzL2tlcm5lbC9maWxlLmMsIGRsbHMva2VybmVsL2tlcm5lbF9tYWluLmMsCisJICBkbGxzL250ZGxsL2RpcmVjdG9yeS5jLCBkbGxzL250ZGxsL2ZpbGUuYywgZGxscy9udGRsbC9sb2FkZXIuYywKKwkgIGRsbHMvbnRkbGwvbnRkbGwuc3BlYywgZGxscy9udGRsbC9udGRsbF9taXNjLmgsIGZpbGVzL2ZpbGUuYywKKwkgIGluY2x1ZGUvd2ludGVybmwuaCwgaW5jbHVkZS9maWxlLmg6CisJUmVpbXBsZW1lbnRlZCBHZXRGaWxlQXR0cmlidXRlc1csIFNldEZpbGVBdHRyaWJ1dGVzVyBhbmQgU2V0RmlsZVRpbWUKKwl1c2luZyB0aGUgY29ycmVzcG9uZGluZyBudGRsbCBmdW5jdGlvbmFsaXR5LgorCisJKiBjb250cm9scy9pY29udGl0bGUuYywgZGxscy9jb21jdGwzMi9wcm9wc2hlZXQuYywgZGxscy9tc2FjbS9mb3JtYXQuYywKKwkgIGRsbHMvbXNhY20vaW50ZXJuYWwuYywgZGxscy9tc2FjbS93aW5lYWNtLmgsCisJICBkbGxzL21zYWNtL2ltYWFkcDMyL2ltYWFkcDMyLmMsIGRsbHMvbXNhY20vbXNhZHAzMi9tc2FkcDMyLmMsCisJICBkbGxzL21zYWNtL21zZzcxMS9tc2c3MTEuYywgZGxscy9tc2FjbS93aW5lbXAzL21wZWdsMy5jLAorCSAgZGxscy9tc3ZpZGVvL21zdmlkZW9fbWFpbi5jLCBkbGxzL29sZWF1dDMyL3Rlc3RzL3ZhcnRlc3QuYywKKwkgIGRsbHMvc2VjdXIzMi9zZWN1cjMyLmMsIGRsbHMvc2hsd2FwaS9wYXRoLmMsIGRsbHMvdXJsbW9uL3Vtb24uYywKKwkgIGRsbHMvdXh0aGVtZS9tc3N0eWxlcy5jLCBkbGxzL3dpbm1tL3BsYXlzb3VuZC5jLAorCSAgZGxscy93c29jazMyL3Byb3RvY29sLmMsIHByb2dyYW1zL3dpbmVjb25zb2xlL2RpYWxvZy5jLAorCSAgcHJvZ3JhbXMvd2luZWNvbnNvbGUvdXNlci5jLCB0b29scy93bWMvbWNsLmM6CisJRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGZyZWUuZnI+CisJTWFrZSBzdGF0aWMgVW5pY29kZSBzdHJpbmdzIGNvbnN0LgorCisJKiBkbGxzL2QzZDgvZDNkOF9tYWluLmMsIGRsbHMvZDNkOC9zaGFkZXIuYzoKKwlDaHJpc3RpYW4gQ29zdGEgPHRpdGFuLmNvc3RhQHdhbmFkb28uZnI+CisJRml4ZWQgcmVsYXRpdmUgYWRkcmVzc2luZy4KKwlFbmFibGUgaHcgdmVydGV4IHNoYWRlcnMgYnkgZGVmYXVsdC4KKwlNb3ZlZCByZWdpc3RyeSBkM2QgY29uZmlnIGtleSB0byBTb2Z0d2FyZVxXaW5lXERpcmVjdDNELgorCisyMDA0LTA0LTE5ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL3dpbmVkb3MvaW50MjEuYywgaW5jbHVkZS93aW5udC5oOgorCUZpeGVkL3VwZGF0ZWQgdGhlIGZpbGUgYXR0cmlidXRlcyBkZWZpbmVzLgorCisJKiBNYWtlZmlsZS5pbjogY3Jvc3N0ZXN0IHRhcmdldCBuZWVkcyB0aGUgdG9vbHMgdG8gYmUgYnVpbHQgZmlyc3QuCisKKwkqIHRvb2xzL3dpZGwvaGVhZGVyLmMsIHRvb2xzL3dpZGwvcGFyc2VyLmwsIHRvb2xzL3dpZGwvcGFyc2VyLnksCisJICB0b29scy93aWRsL3dpZGx0eXBlcy5oOgorCVJvYmVydCBTaGVhcm1hbiA8Ui5KLlNoZWFybWFuQHdhcndpY2suYWMudWs+CisJLSBIYW5kbGUgIj8gOiIgY29uZGl0aW9uYWxzLgorCS0gQWxsb3cgW2hhbmRsZV0gYXR0cmlidXRlIGZvciB0eXBlcy4KKworCSogZG9jdW1lbnRhdGlvbi9hcmNoaXRlY3R1cmUuc2dtbDoKKwlJdmFuIExlbyBNdXJyYXktU21pdGggPHB1b3RpQGlud2luZC5pdD4KKwlVc2UgV0lORURFQlVHIGluc3RlYWQgb2YgLS1kZWJ1Z21zZy4KKworCSogcHJvZ3JhbXMvbm90ZXBhZC9JdC5yYzogSXZhbiBMZW8gTXVycmF5LVNtaXRoIDxwdW90aUBpbndpbmQuaXQ+CisJU21hbGwgZml4LgorCisJKiBkbGxzL3dpbm1tL3dpbmVhbHNhL2F1ZGlvLmM6IE92ZSBLYWF2ZW4gPG92ZWtAdHJhbnNnYW1pbmcuY29tPgorCUFkZGVkIGRldGVjdGlvbiBvZiA0OGtIeiBhbmQgOTZrSHogc3VwcG9ydC4gRml4ZWQgYSB0aGlua28sIGFuZCBzb21lCisJbWlzbGVhZGluZyBpbmRlbnRhdGlvbi4KKworCSogZGxscy9kM2Q4L2QzZDhfcHJpdmF0ZS5oLCBkbGxzL2QzZDgvZDNkY29yZV9nbC5oLCBkbGxzL2QzZDgvZGV2aWNlLmMsCisJICBkbGxzL2QzZDgvZGlyZWN0eC5jLCBkbGxzL2QzZDgvc2hhZGVyLmM6CisJUmFwaGFlbCBKdW5xdWVpcmEgPGZlbml4QGNsdWItaW50ZXJuZXQuZnI+CisJLSBmaXggdGhlIFNldFRleHR1cmVTdGFnZVN0YXRlIGZvciBEM0RUQUREUkVTU19NSVJST1IgdXNpbmcgZHluYW1pYyBHTAorCSAgZGV0ZWN0aW9uIChhbmQgbm90IGJ1aWxkIHRpbWUgR0wgaGVhZGVycykKKwktIGFkZCBhIG5ldyBkZWJ1ZyBjaGFubmVsIGZvciBoYXJkd2FyZSB2ZXJ0ZXggc2hhZGVycworCS0gaGFyZHdhcmUgVlMgImNvbXBpbGVyIiBmaXhlczoKKwkgIC0+IHNwZWNpYWwgY2FzZSBmb3IgYWRkcmVzcyByZWdpc3RlcnMgKE1PViBtdXN0IGJlIHJlcGxhY2VkIGJ5IEFSTCkKKwkgIC0+IGFkZCBsaW5lIG51bWJlcnMgdG8gdHJhY2UgKGJldHRlciB0byBmaW5kIHdoeSBOVmlkaWEgZHJpdmVycyBjb21wbGFpbnMpCisJICAtPiBvbmUgcGFyc2UgdG8gZGV0ZXJtaW5lIHRlbXBvcmFyeSBhbmQgYWRkcmVzcyByZWdpc3RlcnMgbmVlZHMKKwkgICAgKEB0b2RvOiBjaGVjayBHTCBsaW1pdHMpCisJICAtPiByZW1vdmUgZHVwbGljYXRlIHRyYWNlcyBmcm9tIEdlbmVyaWMgUGFyc2VQcm9ncmFtCisKKwkqIGRsbHMvcnBjcnQ0L3JwY19iaW5kaW5nLmMsIGRsbHMvcnBjcnQ0L3JwY19lcG1hcC5jLAorCSAgZGxscy9ycGNydDQvcnBjX3NlcnZlci5jLCBpbmNsdWRlL3JwY2RjZS5oOgorCUZpbGlwIE5hdmFyYSA8eG5hdmFyYUB2b2xueS5jej4KKwlGaXggc29tZSBSUEMgcHJvdG90eXBlcyB0byBnZXQgaXQgY29tcGlsaW5nIHdpdGggVzMyQVBJLgorCisJKiBvYmplY3RzL21ldGFmaWxlLmM6IEh1dyBEYXZpZXMgPGh1d0Bjb2Rld2VhdmVycy5jb20+CisJRml4IENvcHlNZXRhRmlsZUEgdG8gd29yayB3aXRoIE5VTEwgZmlsZW5hbWUuCisKKwkqIGRsbHMvYWR2YXBpMzIvc2VydmljZS5jLCBkbGxzL2NvbW1kbGcvcHJpbnRkbGcuYywKKwkgIGRsbHMvY3J5cHQzMi9tYWluLmMsIGRsbHMvZGV2ZW51bS9kZXZlbnVtX21haW4uYywKKwkgIGRsbHMvZGV2ZW51bS9tZWRpYWNhdGVudW0uYywgZGxscy9nZGkvZnJlZXR5cGUuYywgZGxscy9rZXJuZWwvY29tbS5jLAorCSAgZGxscy9rZXJuZWwvZm9ybWF0X21zZy5jLCBkbGxzL2tlcm5lbC9sb2NhbGUuYywgZGxscy9tc2h0bWwvbWFpbi5jLAorCSAgZGxscy9tc2kvY3JlYXRlLmMsIGRsbHMvbXNpL2luc2VydC5jLCBkbGxzL21zaS9tc2kuYywKKwkgIGRsbHMvbXNpL3JlY29yZC5jLCBkbGxzL21zaS9zdW1pbmZvLmMsIGRsbHMvbXNpL3RhYmxlLmMsCisJICBkbGxzL25ldGFwaTMyL2FjY2Vzcy5jLCBkbGxzL25ldGFwaTMyL3Rlc3RzL2FjY2Vzcy5jLAorCSAgZGxscy9vbGVhdXQzMi90eXBlbGliLmMsIGRsbHMvcXVhcnR6L2ZpbGVzb3VyY2UuYywKKwkgIGRsbHMvcmljaGVkaXQvcmljaGVkaXQuYywgZGxscy9zaGRvY3Z3L3NoZG9jdndfbWFpbi5jLAorCSAgZGxscy9zaGVsbDMyL2Jyc2ZvbGRlci5jLCBkbGxzL3NoZWxsMzIvY2xhc3Nlcy5jLAorCSAgZGxscy9zaGVsbDMyL3NoZWxsbGluay5jLCBkbGxzL3VybG1vbi91bW9uLmMsIGRsbHMvdXh0aGVtZS9zeXN0ZW0uYywKKwkgIGRsbHMvd2luaW5ldC9jb29raWUuYywgZGxscy93aW5pbmV0L2RpYWxvZ3MuYywgZGxscy93aW5pbmV0L2h0dHAuYywKKwkgIGRsbHMvd2luaW5ldC9pbnRlcm5ldC5jLCBwcm9ncmFtcy93aW5lbWVudWJ1aWxkZXIvd2luZW1lbnVidWlsZGVyLmM6CisJRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGZyZWUuZnI+CisJTWFrZSBVbmljb2RlIGNvbnN0IHN0cmluZ3Mgc3RhdGljIHNvIHRoZXkgYXJlIG5vdCBjb3BpZWQgdG8gdGhlIHN0YWNrCisJZWFjaCB0aW1lIHdlIGVudGVyIHRoZSBmdW5jdGlvbi4KKworCSogZGxscy9zaGVsbDMyL01ha2VmaWxlLmluLCBkbGxzL3NoZWxsMzIvYXV0b2NvbXBsZXRlLmMsCisJICBkbGxzL3NoZWxsMzIvZGVidWdobHAuYywgZGxscy9zaGVsbDMyL3JlZ3N2ci5jLAorCSAgZGxscy9zaGVsbDMyL3NoZWxsMzJfbWFpbi5oLCBkbGxzL3NoZWxsMzIvc2hlbGxvbGUuYywKKwkgIGRsbHMvdXVpZC91dWlkLmMsIGluY2x1ZGUvTWFrZWZpbGUuaW4sIGluY2x1ZGUvc2hsZGlzcC5oLAorCSAgaW5jbHVkZS9zaGxkaXNwLmlkbCwgaW5jbHVkZS9zaGxndWlkLmg6CisJTWF4aW1lIEJlbGxlbmfpIDxtYXhpbWUuYmVsbGVuZ2VAbGFwb3N0ZS5uZXQ+CisJQWRkIHRoZSBJQXV0b0NvbXBsZXRlIGFuZCBJQXV0b0NvbXBsZXRlMiBpbXBsZW1lbnRhdGlvbiAoYnV0IG1ldGhvZHMKKwlzdHViYmVkIGZvciBub3cpLgorCisJKiBkbGxzL3NoZWxsMzIvYnJzZm9sZGVyLmM6CisJV29sZmdhbmcgU2Nod290emVyIDx3b2xmZ2FuZy5zY2h3b3R6ZXJAZ214Lm5ldD4KKwlTSEJyb3dzZUZvckZvbGRlcjogc3VwcG9ydCBscEJyb3dzZUluZm8tPnBzekRpc3BsYXlOYW1lIGJlaW5nIE5VTEwuCisKKwkqIGRsbHMvbnRkbGwvbnQuYzogTWljaGFlbCBTdGVmYW5pdWMgPG1zdGVmYW5pQHJlZGhhdC5kZT4KKwlOdFF1ZXJ5SW5mb3JtYXRpb25Ub2tlbiBpc24ndCBhIHN0dWIgc28gY2hhbmdlIHRoZSBGSVhNRSB0byBhIFRSQUNFLgorCisJKiBkbGxzL01ha2VkbGwucnVsZXMuaW46IE1hcmN1cyBNZWlzc25lciA8bWFyY3VzQGpldC5mcmFua2VuLmRlPgorCUZpeGVkIERMTE1PREUgaGFuZGxpbmcgKC0tbW9kZSBpcyBub3cgLS1zdWJzeXN0ZW0gYW5kIHVzZXMgLVdiKS4KKworCSogZGxscy93aW5tbS93aW5lYWxzYS9hdWRpby5jOiBPdmUgS2FhdmVuIDxvdmVrQHRyYW5zZ2FtaW5nLmNvbT4KKwlDb2RlIGFuZCBjb25jZXB0cyBtZXJnZWQgaW4gZnJvbSB3aW5lb3NzIGluIG9yZGVyIHRvIGdldCB0aGUKKwlub24tZHNvdW5kIHdhdmUgb3V0cHV0IHBlcmZvcm1hbmNlIGluIHdpbmVhbHNhIHRvIGFuIGFjY2VwdGFibGUKKwlsZXZlbC4gSXQncyBzdGlsbCBwb3NzaWJsZSB0byBkbyBiZXR0ZXIgdGhhbiB0aGUgY3VycmVudCBjb2RlLCBidXQKKwl0aGlzIHNob3VsZCBkbyBmb3Igbm93LgorCisJKiBkbGxzL3JwY3J0NC9jcHJveHkuYzogSGFucyBMZWlkZWtrZXIgPGhhbnNAaXQudnUubmw+CisJRml4IGNvbXBpbGVyIHdhcm5pbmcuCisKKwkqIGRsbHMva2VybmVsL2xvY2FsZS5jLCBkbGxzL250ZGxsL3J0bHN0ci5jOgorCUZpeGVkIG50ZGxsX3djc3RvdW1icyBhbmQgV2lkZUNoYXJUb011bHRpQnl0ZSB0byBzZXQgdGhlICd1c2VkJyBmbGFnCisJZm9yIFVURi04IGNvZGVwYWdlIHRvby4gVGhpcyB3YXMgY2F1c2luZyBESVJfbnRfdG9fdW5peCB0byBmYWlsIGluCisJc29tZSBjYXNlcyAodHJhY2tlZCBkb3duIHdpdGggaGVscCBmcm9tIEFsZXggUGFzYWR5bikuCisKKwkqIGRsbHMvdXJsbW9uL01ha2VmaWxlLmluLCBkbGxzL3VybG1vbi9yZWdzdnIuYywKKwkgIGRsbHMvdXJsbW9uL3VybG1vbl9tYWluLmM6CisJVmluY2VudCBC6XJvbiA8dmJlcm9uQG1lY2Fuby5nbWUudXNoZXJiLmNhPgorCU1vcmUgY29tcGxldGUgaW1wbGVtZW50YXRpb24gb2YgRGxsKFVuKVJlZ2lzdGVyU2VydmVyIGluIHVybG1vbiwgYmFzZWQKKwlvbiB0aGUgd29yayBvZiBKb2huIEsuIEhvaG0gZm9yIG90aGVyIGRsbHMuCisKKwkqIGRsbHMvZGlucHV0L2pveXN0aWNrX2xpbnV4aW5wdXQuYzoKKwlDaHJpc3RvcGggRnJpY2sgPGZyaWNrQHNjLW5ldHdvcmtzLmRlPgorCS0gYWRkZWQgY29kZSB0byBoYXZlIHRoZSBqb3lzdGljayBzdGF0ZSBiZSBzZXQgdG8gdGhlIGFzc3VtZWQgY2VudGVyCisJICB2YWx1ZXMgb2YgdGhlIGpveXN0aWNrIG1hcHBlZCB0byB0aGUgcmFuZ2UgdGhlIGFwcGxpY2F0aW9uIHdhbnRzCisJICB0aGVtCisJLSBnZW5lcmF0ZSBldmVudHMgYWZ0ZXIgc2V0dGluZyB0aGUgYXByb3BpYXRlIHZhbHVlcyBpbiBUaGlzLT5qcworCS0gcmVwbGFjZWQgbWFnaWMgaW50cyB3aXRoIGRlZmluZXMgZnJvbSBsaW51eC9pbnB1dC5oCisJLSByZW1vdmVkIG1hcHBpbmcgY29kZSB0aGF0IGdlbmVyYXRlZCB3cm9uZyB2YWx1ZXMgZm9yIGF4ZXMsIHRoYXQgaGF2ZQorCSAgdGhlIGNlbnRlciBvbiB0aGUgbWluIG9yIG1heAorCisJKiBkbGxzL2Rzb3VuZC9idWZmZXIuYywgZGxscy9kc291bmQvY2FwdHVyZS5jLAorCSAgZGxscy9kc291bmQvZHNvdW5kX21haW4uYywgaW5jbHVkZS9kc291bmQuaDoKKwlSb2JlcnQgUmVpZiA8cmVpZkBlYXJ0aGxpbmsubmV0PgorCUZpeGVzIHN1cHBvcnQgZm9yIG9sZGVyIHZlcnNpb25zIG9mIGRpcmVjdCBzb3VuZC4KKwlBZGRzIHN1cHBvcnQgZm9yIGRlbGV0aW5nIG5vdGlmaWNhdGlvbiBhcnJheS4KKwlNaW5vciBkZWJ1ZyBhbmQgd2hpdGUgc3BhY2UgY2xlYW51cHMuCisKKwkqIGRsbHMvZGJnaGVscC9kYmdoZWxwLmMsIGRsbHMvZGJnaGVscC9kYmdoZWxwX3ByaXZhdGUuaCwKKwkgIGRsbHMvZGJnaGVscC9tc2MuYywgZGxscy9kYmdoZWxwL3N0YWJzLmMsIGRsbHMvZGJnaGVscC9zeW1ib2wuYywKKwkgIGRsbHMvZGJnaGVscC90eXBlLmM6CisJRXJpYyBQb3VlY2ggPHBvdWVjaC1lcmljQHdhbmFkb28uZnI+CisJLSBpbXBsZW1lbnRlZCBzdXBwb3J0IGZvciBmdW5jdGlvbiBkZWJ1ZyBzdGFydC9zdG9wIGFuZCBsYWJlbHMgKG1zYy5jCisJICBhbmQgc3RhYnMuYykKKwktIHN0YXJ0ZWQgaW1wbGVtZW50aW5nIHR5cGVkZWYgc3VwcG9ydAorCS0gZnVuY3Rpb25zIG5vdyBoYXZlIGEgcmVhbCBmdW5jdGlvbiBzaWduYXR1cmUgKG9ubHkgaW4gc3RhYnMuYywgc3RpbGwKKwkgIHRvIGJlIGRvbmUgaW4gbXNjLmMpCisJLSBzbWFsbCBlbmhhbmNlbWVudHMgdG8gVElfR0VUX1RZUEUgZm9yIGZ1bmN0aW9ucworCS0gYWRkZWQgc3VwcG9ydCBmb3IgZnVuY3Rpb25zJyBibG9jayBhbmQgbG9jYWwgdmFyaWFibGVzIGluIHJlZ2lzdGVycworCSAgKG1zYy5jKQorCS0gZml4ZWQgc29tZSBidWdzIGluIFN0YWNrV2FsaworCS0gY29uc3RhbnRzIGFyZSBub3cgc3RvcmVkIGFzIHZhcmlhbnRzIChpbnN0ZWFkIG9mIHVuc2lnbmVkIGludHMpCisJLSBmaXhlZCByZWd1bGFyIGV4cHJlc3Npb24gbWFuYWdlbWVudCAoZGJnaGVscCdzIFJFIGFyZSBub3QgdGhlIHNhbWUKKwkgIGFzIFBPU0lYIG9uZXMpCisKKwkqIGRsbHMvY29tY3RsMzIvdG9vbGJhci5jOiBSb2JlcnQgU2hlYXJtYW4gPFIuSi5TaGVhcm1hbkB3YXJ3aWNrLmFjLnVrPgorCS0gT3B0aW1pc2UgYWNjZXNzaW5nIHRvb2xiYXIgc3R5bGUgYnkgc3RvcmluZyBpdCBpbiB0aGUgVE9PTEJBUl9JTkZPCisJICBzdHJ1Y3R1cmUuCisJLSBSZXBsYWNlIHtHZXQsU2V0fVdpbmRvd0xvbmcgYnkge0dldCxTZXR9V2luZG93TG9uZ1B0ciB3aGVyZQorCSAgYXBwcm9wcmlhdGUuCisKKwkqIGRsbHMvZHhkaWFnbi9NYWtlZmlsZS5pbiwgZGxscy9keGRpYWduL2NvbnRhaW5lci5jLAorCSAgZGxscy9keGRpYWduL2R4ZGlhZ19wcml2YXRlLmgsIGRsbHMvZHhkaWFnbi9wcm92aWRlci5jLAorCSAgaW5jbHVkZS9keGRpYWcuaDoKKwlSYXBoYWVsIEp1bnF1ZWlyYSA8ZmVuaXhAY2x1Yi1pbnRlcm5ldC5mcj4KKwktIGZpeCBkeGRpYWcuaCAoYWdhaW4pCisJLSBJRHhEaWFnQ29udGFpbmVySW1wbCBpbXBsZW1lbnRhdGlvbgorCS0gSUR4RGlhZ1Byb3ZpZGVyOjpHZXRSb290Q29udGFpbmVyICh0aGF0IGNyZWF0ZXMgdGhlIHJvb3QgY29udGFpbmVyKQorCisJKiBkbGxzL3JwY3J0NC9ycGNfbWVzc2FnZS5jOiBGaWxpcCBOYXZhcmEgPHhuYXZhcmFAdm9sbnkuY3o+CisJUHJldmVudCBjcmFzaGVzIGluIElfUnBjU2VuZCBvbiBXaW5kb3dzIFhQLgorCisyMDA0LTA0LTE3ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL2tlcm5lbC92b2x1bWUuYywgZmlsZXMvZHJpdmUuYzoKKwlSZWltcGxlbWVudGVkIEdldERpc2tGcmVlU3BhY2VXIGFuZCBHZXREaXNrRnJlZVNwYWNlRXhXIG9uIHRvcCBvZiB0aGUKKwljb3JyZXNwb25kaW5nIG50ZGxsIGZ1bmN0aW9ucy4KKworCSogZGxscy9rZXJuZWwvY2hhbmdlLmMsIGRsbHMva2VybmVsL2ZpbGUuYzoKKwlNYWtlIEZpbmRGaXJzdEZpbGVFeFcgYW5kIEZpbmRGaXJzdENoYW5nZU5vdGlmaWNhdGlvblcgdXNlIE50T3BlbkZpbGUKKwlkaXJlY3RseSBzbyB0aGF0IHRoZXkgY2FuIHRha2UgYWR2YW50YWdlIG9mIHRoZSBGSUxFX0RJUkVDVE9SWV9GSUxFCisJb3B0aW9uLgorCisJKiBsaWJzL01ha2VmaWxlLmluOiBFbW1hbnVlbCBNYWlsbGFyZCA8ZS5yc3pAbGliZXJ0eXN1cmYuZnI+CisJQ3JlYXRlIHN5bWxpbmtzIGZvciAuZHlsaWIgbGlicmFyaWVzIHRvby4KKworCSogZGxscy9hZHZhcGkzMi9hZHZhcGkzMi5zcGVjLCBkbGxzL2FkdmFwaTMyL2NyeXB0LmM6CisJTWlrZSBIZWFybiA8bWlrZUBuYXZpLmN4PgorCURvY3VtZW50YXRpb24gZm9yIFN5c3RlbUZ1bmN0aW9uMDQwIGFuZCBTeXN0ZW1GdW5jdGlvbjA0MSBoYXMgYmVjb21lCisJYXZhaWxhYmxlLCBzbyBzdHViIHRoZW0gb3V0IGluIGNhc2UgYXBwbGljYXRpb25zIHVzZSB0aGVtLgorCisJKiBkbGxzL2RiZ2hlbHAvc3RhY2suYzogRW1tYW51ZWwgTWFpbGxhcmQgPGUucnN6QGxpYmVydHlzdXJmLmZyPgorCUZpeGVkIGEgY29tcGlsZSBlcnJvciBvbiBub24taTM4Ni4KKworCSogZGxscy94MTFkcnYva2V5Ym9hcmQuYzogRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwktIHN0YXJ0IGFzc2lnbmluZyBjdXN0b20gVksgY29kZXMgZnJvbSBWS19PRU1fOCBzaW5jZSB0aGlzIGNvZGUKKwkgIGFscmVhZHkgcHJlc2VudHMgaW4gdGhlIGxheW91dCB0YWJsZXMKKwktIHNlYXJjaCB0aGUgbGF5b3V0IHRhYmxlcyBvbmx5IGlmIFhMb29rdXBTdHJpbmcgcmV0dXJuZWQgbm9uIHplcm8KKwkgIG51bWJlciBvZiBjaGFyYWN0ZXJzIGZvciBhIGtleXN5bSwgb3RoZXJ3aXNlIHRoYXQncyBhIG5vbiBjaGFyYWN0ZXIKKwkgIGtleQorCS0gYXZvaWQgaW5zZXJ0aW5nIFZLX09FTV94IGNvZGVzIGludG8gdW5hc3NpZ25lZCBwb3NpdGlvbnMgc2luY2UgdGhlc2UKKwkgIGNvZGVzIG1pZ2h0IGFscmVhZHkgYmUgaW4gdGhlIGxheW91dCB0YWJsZSwgdGh1cyBjcmVhdGluZyBhIGNvbmZsaWN0CisKKwkqIGRsbHMvbnRkbGwvcmVsYXkuYzogRW1tYW51ZWwgTWFpbGxhcmQgPGUucnN6QGxpYmVydHlzdXJmLmZyPgorCUZpeCBhIGNvbXBpbGUgZXJyb3IgZm9yIFNOT09QX0dldFByb2NBZGRyZXNzIG9uIG5vbi1pMzg2LgorCisyMDA0LTA0LTE2ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL2tlcm5lbC9wcm9jZXNzLmMsIGRsbHMvbnRkbGwvZGlyZWN0b3J5LmMsIGRsbHMvbnRkbGwvZmlsZS5jLAorCSAgc2VydmVyL2ZpbGUuYywgc2VydmVyL3RyYWNlLmM6CisJRml4ZWQgYSBudW1iZXIgb2YgTlQgc3RhdHVzIHZhbHVlcyB0byBiZSBjbG9zZXIgdG8gTlQgYmVoYXZpb3IuCisKKwkqIHRvb2xzL3dpbmVnY2Mvd2luZWdjYy5jOiBEaW1pdHJpZSBPLiBQYXVuIDxkcGF1bkByb2dlcnMuY29tPgorCUltcGxlbWVudCBzdXBwb3J0IGZvciB0aGUgLXggPGxhbmc+IG9wdGlvbi4KKworCSogY29udHJvbHMvbWVudS5jOiBHZSB2YW4gR2VsZG9ycCA8Z3ZnQHJlYWN0b3MuY29tPgorCVNldHVwIG1lbnUgZHJhd2luZyBjb2xvcnMgYmVmb3JlIGNhbGxpbmcgb3duZXIgZHJhdyByb3V0aW5lLgorCisJKiBkbGxzL3JpY2hlZGl0L3JlYWRlci5jOiBHZSB2YW4gR2VsZG9ycCA8Z3ZnQHJlYWN0b3MuY29tPgorCS0gV29yayBhcm91bmQgcHJvYmxlbSBpbiBOU0lTIGluc3RhbGxlcnMgd2hpY2ggY2FuJ3QgaGFuZGxlIDEgY2hhciBhdAorCSAgYSB0aW1lIHJlYWRpbmcgb2YgUlRGIHRleHQuCisJLSBJbmNyZWFzZSBidWZmZXIgdG8gNDA5NiBieXRlcyBmb3IgYmV0dGVyIGNvbXBhdGliaWxpdHkuCisKKwkqIHRvb2xzL3dpbmVnY2MvTWFrZWZpbGUuaW46IFBhdWwgVnJpZW5zIDxwdnJpZW5zQHhzNGFsbC5ubD4KKwlDb3JyZWN0IHJlbW92aW5nIHdpbmVnKysgbGluayBvbiBhbiB1bmluc3RhbGwuCisKKwkqIGRsbHMva2VybmVsL3Byb2Nlc3MuYywgZGxscy9rZXJuZWwvdGFzay5jLCBkbGxzL250ZGxsL2Vudi5jLAorCSAgZGxscy9udGRsbC9wYXRoLmMsIGluY2x1ZGUvd2ludGVybmwuaCwgaW5jbHVkZS90aHJlYWQuaCwKKwkgIHNlcnZlci90cmFjZS5jOgorCVJ0bFNldEN1cnJlbnREaXJlY3RvcnlfVTogc3RvcmUgYSBoYW5kbGUgdG8gdGhlIGN1cnJlbnQgZGlyZWN0b3J5CisJYWxvbmcgd2l0aCBpdHMgbmFtZS4KKworCSogZmlsZXMvZmlsZS5jLCBzZXJ2ZXIvZmQuYywgc2VydmVyL2ZpbGUuYywgc2VydmVyL2ZpbGUuaCwKKwkgIHNlcnZlci90cmFjZS5jOgorCUFkZGVkIHN1cHBvcnQgZm9yIEZJTEVfRElSRUNUT1JZX0ZJTEUgYW5kIEZJTEVfTk9OX0RJUkVDVE9SWV9GSUxFIG9wZW4KKwlvcHRpb25zLgorCisJKiBtaXNjL29wdGlvbnMuYzogUmVtb3ZlZCBzdXBwb3J0IGZvciB0aGUgLS1kZWJ1Z21zZyBvcHRpb24uCisKKwkqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkbGxzL01ha2VmaWxlLmluLCBkbGxzL2R4ZGlhZ24vLmN2c2lnbm9yZSwKKwkgIGRsbHMvZHhkaWFnbi9NYWtlZmlsZS5pbiwgZGxscy9keGRpYWduL2R4ZGlhZ19tYWluLmMsCisJICBkbGxzL2R4ZGlhZ24vZHhkaWFnX3ByaXZhdGUuaCwgZGxscy9keGRpYWduL2R4ZGlhZ24uc3BlYywKKwkgIGRsbHMvZHhkaWFnbi9wcm92aWRlci5jLCBkbGxzL2R4ZGlhZ24vcmVnc3ZyLmMsCisJICBkbGxzL2R4ZGlhZ24vdmVyc2lvbi5yYywgdG9vbHMvd2luZS5pbmY6CisJUmFwaGFlbCBKdW5xdWVpcmEgPGZlbml4QGNsdWItaW50ZXJuZXQuZnI+CisJQWRkZWQgZHhkaWFnbi5kbGwgd2l0aCBhIHNpbXBsZSBpbXBsZW1lbnRhdGlvbiBvZiBJRHhEaWFnUHJvdmlkZXIuCisKKwkqIGRsbHMva2VybmVsL2tlcm5lbF9wcml2YXRlLmgsIGRsbHMva2VybmVsL3Rhc2suYywgZGxscy9udGRsbC9wYXRoLmMsCisJICBpbmNsdWRlL3RocmVhZC5oOgorCUFkZGVkIGhhY2sgdG8gZmV0Y2ggdGhlIGN1cnJlbnQgZGlyZWN0b3J5IGZyb20gdGhlIHN1YnN5c3RlbSB0aWQgc28KKwl0aGF0IGl0IGlzIGhhbmRsZWQgY29ycmVjdGx5IGluIG50ZGxsIGFsc28gZm9yIDE2LWJpdCB0YXNrcy4KKworCSogZGxscy9rZXJuZWwvZmlsZTE2LmMsIGRsbHMvd2luZWRvcy9pbnQyMS5jOgorCVVwZGF0ZSB0aGUgZHJpdmUgZW52aXJvbm1lbnQgc3RyaW5ncyB3aGVuIGNoYW5naW5nIHRoZSBjdXJyZW50CisJZGlyZWN0b3J5IGZyb20gMTYtYml0IG9yIERPUyBjb2RlLgorCisyMDA0LTA0LTE1ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBpbmNsdWRlL2R4ZGlhZy5oOiBSYXBoYWVsIEp1bnF1ZWlyYSA8ZmVuaXhAY2x1Yi1pbnRlcm5ldC5mcj4KKwlGaXhlZCBzb21lIGJ1Z3MuCisKKwkqIGRsbHMvZDNkOC9NYWtlZmlsZS5pbiwgZGxscy9kM2Q4L2QzZDhfbWFpbi5jLAorCSAgZGxscy9kM2Q4L2QzZDhfcHJpdmF0ZS5oLCBkbGxzL2QzZDgvZDNkY29yZV9nbC5oLCBkbGxzL2QzZDgvZGV2aWNlLmMsCisJICBkbGxzL2QzZDgvZGlyZWN0eC5jLCBkbGxzL2QzZDgvZHJhd3ByaW0uYywgZGxscy9kM2Q4L3NoYWRlci5jLAorCSAgZGxscy9kM2Q4L3ZzaGFkZXJkZWNsYXJhdGlvbi5jOgorCUphc29uIEVkbWVhZGVzIDx1c0B0aGUtZWRtZWFkZXMuZGVtb24uY28udWs+CisJQ2hyaXN0aWFuIENvc3RhIDx0aXRhbi5jb3N0YUB3YW5hZG9vLmZyPgorCUFkZGVkIHN1cHBvcnQgZm9yIHZlcnRleCBzaGFkZXIgKHVzaW5nIEFSQl92ZXJ0ZXhfcHJvZ3JhbSBleHRlbnNpb24pLgorCisJKiBkbGxzL2tlcm5lbC9rZXJuZWxfbWFpbi5jLCBkbGxzL2tlcm5lbC90YXNrLmMsIGRsbHMvbnRkbGwvdGhyZWFkLmMsCisJICBpbmNsdWRlL3RocmVhZC5oOgorCUdldCByaWQgb2YgdGhlIFRFQiBmbGFncywgdGhleSBhcmUgbm8gbG9uZ2VyIHVzZWQuCisKKwkqIGRsbHMvc2hlbGwzMi9waWRsLmM6IEp1YW4gTGFuZyA8anVhbl9sYW5nQHlhaG9vLmNvbT4KKwlDb3JyZWN0IHJldHVybiB2YWx1ZSBpbiBhIGNvdXBsZSBvZiBlcnJvciBjYXNlcy4KKworCSogaW5jbHVkZS93dHlwZXMuaCwgaW5jbHVkZS93dHlwZXMuaWRsOgorCUpvbiBHcmlmZml0aHMgPGpvbl9wX2dyaWZmaXRoc0B5YWhvby5jb20+CisJUHJldmVudCBDWSB0eXBlIGZyb20gYmVpbmcgcmVkZWZpbmVkLgorCisJKiBkbGxzL2RiZ2hlbHAvZWxmX21vZHVsZS5jLCBkbGxzL2RiZ2hlbHAvc3RhYnMuYzoKKwlLZXZpbiBLb2x0emF1IDxrZXZpbkBwbG9wLm9yZz4KKwlGaXggYSBmZXcgY29tcGlsZSBlcnJvcnMgd2hlbiBjcm9zcyBjb21waWxpbmcuCisKKwkqIHByb2dyYW1zL3dpbmVkYmcvd2luZWRiZy5jOiBGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAY29kZXdlYXZlcnMuY29tPgorCUhhdmUgd2luZWRiZyBzZW5kIGl0cyBvdXRwdXQgdG8gc3RkZXJyIHdoZW4gaW52b2tlZCB3aXRoIHRoZSAtLWF1dG8KKwlvcHRpb24uCisKKwkqIGRsbHMvc2hlbGwzMi9waWRsLmMsIGRsbHMvc2hlbGwzMi9waWRsLmgsCisJICBkbGxzL3NoZWxsMzIvc2hmbGRyX215Y29tcC5jOgorCU1hcnRpbiBGdWNocyA8bWFydGluLWZ1Y2hzQGdteC5uZXQ+CisJLSBtYWtlIGRyaXZlIGxldHRlcnMgaW4gUElETHMgYWx3YXlzIHVwcGVyY2FzZSB0byBlbmFibGUgUElETAorCSAgY29tcGFyaXNvbgorCS0gVW5pY29kaWZ5IF9JTENyZWF0ZURyaXZlKCkKKworCSogaW5jbHVkZS9NYWtlZmlsZS5pbiwgaW5jbHVkZS9keGRpYWcuaDoKKwlSYXBoYWVsIEp1bnF1ZWlyYSA8ZmVuaXhAY2x1Yi1pbnRlcm5ldC5mcj4KKwlBZGRlZCB0aGUgZHhkaWFnLmggaGVhZGVyLgorCisJKiBkbGxzL3NoZWxsMzIvc2hsZm9sZGVyLmM6IE1hcnRpbiBGdWNocyA8bWFydGluLWZ1Y2hzQGdteC5uZXQ+CisJQ29ycmVjdCBlcnJvciBoYW5kbGluZyBpbiBTSEVMTDMyX1BhcnNlTmV4dEVsZW1lbnQoKS4KKworCSogdG9vbHMvd2luZWluc3RhbGw6CisJT25seSBjcmVhdGUgdGhlIGRldmljZSBzeW1saW5rcyB0aGUgZmlyc3QgdGltZSBhcm91bmQuCisKKwkqIGRsbHMva2VybmVsL2tlcm5lbF9wcml2YXRlLmgsIGRsbHMva2VybmVsL21vZHVsZS5jLAorCSAgZGxscy9rZXJuZWwvdGFzay5jOgorCVN0YXJ0ZWQgaW1wbGVtZW50aW5nIHN1cHBvcnQgZm9yIHRoZSBTdWJTeXN0ZW1UaWIgZmllbGQgaW4gdGhlIFRFQiBvZgorCTE2LWJpdCB0aHJlYWRzLiBUaGlzIGFsbG93cyBHZXRNb2R1bGVGaWxlTmFtZVcgdG8gYXZvaWQgY2FsbGluZyAxNi1iaXQKKwlmdW5jdGlvbnMuCisKKwkqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjOiBLZXZpbiBLb2x0emF1IDxrZXZpbkBwbG9wLm9yZz4KKwlBZGQgYWRkaXRpb25hbCBuYW1lcyBvZiBtaW5ndyB0b29scy4KKworMjAwNC0wNC0xNCAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9vcGVuZ2wzMi9tYWtlX29wZW5nbCwgZGxscy9vcGVuZ2wzMi9vcGVuZ2xfZXh0LmM6CisJQ2hyaXN0aWFuIENvc3RhIDx0aXRhbi5jb3N0YUB3YW5hZG9vLmZyPgorCUFkZGVkIGdsRGVsZXRlT2JqZWN0QnVmZmVyQVRJIGZ1bmN0aW9uLgorCUZpeCBmb3IgdHlwZXMgdGhhdCBoYXZlIGEgY29tbW9uIHJvb3QuCisKKwkqIGRsbHMvc2hlbGwzMi9waWRsLmMsIGRsbHMvc2hlbGwzMi9waWRsLmgsCisJICBkbGxzL3NoZWxsMzIvc2hmbGRyX2Rlc2t0b3AuYywgZGxscy9zaGVsbDMyL3NoZmxkcl9mcy5jOgorCU1hcnRpbiBGdWNocyA8bWFydGluLWZ1Y2hzQGdteC5uZXQ+CisJUmV0dXJuICJmaWxlIG5vdCBmb3VuZCIgZXJyb3IgdmFsdWVzIGluc3RlYWQgb2YgRV9JTlZBTElEQVJHIGlmCisJX0lMQ3JlYXRlRnJvbVBhdGhBKCkgZmFpbGVkIHRvIGZpbmQgZmlsZXMuCisKKwkqIGRsbHMvZ2RpL2ZyZWV0eXBlLmMsIGRsbHMvZ2RpL3ByaW50ZHJ2LmMsIGRsbHMva2VybmVsL2tlcm5lbDMyLnNwZWMsCisJICBkbGxzL2tlcm5lbC9wcm9jZXNzLmMsIGRsbHMvbnRkbGwvZGlyZWN0b3J5LmMsIGRsbHMvbnRkbGwvbnRkbGwuc3BlYywKKwkgIGRsbHMvd2luZWRvcy9kb3Njb25mLmMsIGZpbGVzL2Rvc19mcy5jLCBpbmNsdWRlL3dpbmJhc2UuaCwKKwkgIHByb2dyYW1zL3dpbmVtZW51YnVpbGRlci93aW5lbWVudWJ1aWxkZXIuYywKKwkgIHByb2dyYW1zL3dpbmVwYXRoL3dpbmVwYXRoLmM6CisJTW92ZWQgd2luZV9nZXRfdW5peF9maWxlX25hbWUgaW1wbGVtZW50YXRpb24gdG8gbnRkbGwsIGFuZCBjaGFuZ2VkIGl0CisJdG8gcmV0dXJuIGFuIGFsbG9jYXRlZCBidWZmZXIgaW5zdGVhZCBvZiBhIGZpeGVkIHNpemUgb25lLgorCisJKiBkbGxzL2dkaS9iaXRibHQuYywgZGxscy9nZGkvZ2RpMzIuc3BlYywgZGxscy9tc2ltZzMyL21zaW1nMzIuc3BlYywKKwkgIGRsbHMvbXNpbWczMi9tc2ltZzMyX21haW4uYywgaW5jbHVkZS93aW5nZGkuaDoKKwlLZXZpbiBLb2x0emF1IDxrZXZpbkBwbG9wLm9yZz4KKwlQYXJ0aWFsIHN0dWIgb2YgR2RpQWxwaGFCbGVuZC9BbHBoYUJsZW5kLgorCisJKiBkbGxzL3gxMWRydi9rZXlib2FyZC5jOiBEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCUEgd29ya2Fyb3VuZCBmb3IgbWlzc2luZyByZWFsIHN1cHBvcnQgZm9yIGtleWJvYXJkIGxheW91dCBBUElzLgorCisJKiBvYmplY3RzL3RleHQuYzogRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlQcmludCBzb3VyY2UgY2hhcnNldCBhcyB3ZWxsIGFzIGEgcmVzdWx0aW5nIGNvZGVwYWdlIGluIEZPTlRfbWJ0b3djLgorCisJKiBkbGxzL2tlcm5lbC9jb21tLmM6IFJlaW4gS2xhemVzIDxya2xhemVzQHhzNGFsbC5ubD4KKwlBZGQgbWlzc2luZyBQT1NJWCBiYXVkIHJhdGVzIHRvIEdldENvbW1TdGF0ZSBhbmQgU2V0Q29tbVN0YXRlLgorCisJKiBkbGxzL3NoZWxsMzIvY3BhbmVsZm9sZGVyLmMsIGRsbHMvc2hlbGwzMi9kZWJ1Z2hscC5jLAorCSAgZGxscy9zaGVsbDMyL3BpZGwuYywgZGxscy9zaGVsbDMyL3BpZGwuaDoKKwlKdWFuIExhbmcgPGp1YW5fbGFuZ0B5YWhvby5jb20+CisJQ29ycmVjdCBzb21lIFBJREwgdHlwZXMgYW5kIGVsaW1pbmF0ZSBzb21lIG1hZ2ljIG51bWJlcnMgaW4gUElETAorCWFsbG9jYXRpb247IGNvcnJlY3QgYSBjb3B5LXBhc3RvIGZyb20gYSBwcmV2aW91cyBwYXRjaC4KKworCSogZGxscy9zaGVsbDMyL2ZvbGRlcnMuYzogSnVhbiBMYW5nIDxqdWFuX2xhbmdAeWFob28uY29tPgorCUlmIGEgZm9sZGVyIGNvbnRhaW5zIGEgZGVza3RvcC5pbmksIGNoZWNrIGl0IGZvciB0aGUgaWNvbiBsb2NhdGlvbgorCWJlZm9yZSB1c2luZyB0aGUgZGVmYXVsdCBmb2xkZXIgaWNvbi4KKworCSogZGxscy9udGRsbC9kaXJlY3RvcnkuYzoKKwlBZGRlZCBzdXBwb3J0IGZvciByZXN0YXJ0aW5nIGRpcmVjdG9yeSBzY2FucyBvbiBwbGF0Zm9ybXMgd2hlcmUKKwlzZWVrZGlyIHJldHVybiB2YWx1ZXMgY2Fubm90IGJlIHJldXNlZCBvbiBhIGRpZmZlcmVudCBkaXJlY3RvcnkKKwlvYmplY3QuCisJQWRkZWQgc29tZSBjaGVja3MgZm9yIGludmFsaWQgZmlsZSBuYW1lcyBpbiBESVJfbnRfdG9fdW5peC4KKworCSogZGxscy9udGRsbC9wYXRoLmM6CisJRml4ZWQgaGFuZGxpbmcgb2YgXFw/XCBwcmVmaXggaW4gUnRsRG9zUGF0aE5hbWVUb050UGF0aE5hbWVfVS4KKwlGaXhlZCBwYXJzaW5nIG9mIFVOQyBmaWxlIG5hbWVzIGluIFJ0bEdldEZ1bGxQYXRoTmFtZV9VLgorCisJKiBkbGxzL2tlcm5lbC92eGQuYywgZGxscy93aW5lZG9zL2ludDIxLmM6CisJUmVwbGFjZWQgY3JlYXRlX2ZpbGUgc2VydmVyIHJlcXVlc3RzIGJ5IGEgY2FsbCB0byBOdENyZWF0ZUZpbGUuCisKKwkqIGRsbHMvcnBjcnQ0L3JwY19iaW5kaW5nLmMsIGRsbHMvcnBjcnQ0L3JwY3J0NC5zcGVjLCBpbmNsdWRlL3JwY2RjZS5oOgorCUZpbGlwIE5hdmFyYSA8eG5hdmFyYUB2b2xueS5jej4KKwlGaXggdGhlIGNhc2Ugb2YgUnBjTmV0d29ya0lzUHJvdHNlcVZhbGlkW0FXXSAod2FzCisJUnBjTmV0d29ya0lzUHJvdFNlcVZhbGlkW0FXXSkgbmFtZXMuCisKKwkqIGRsbHMvY29tY3RsMzIvdHJlZXZpZXcuYzogTWFydGluIEZ1Y2hzIDxtYXJ0aW4tZnVjaHNAZ214Lm5ldD4KKwlSZXR1cm4gVFJVRSBmb3IgVFZNX0VYUEFORCBpZiB0cmVldmlldyBpdGVtIGlzIGFscmVhZHkgZXhwYW5kZWQuCisKKwkqIGRsbHMvY29tY3RsMzIvcmViYXIuYzogRmlsaXAgTmF2YXJhIDx4bmF2YXJhQHZvbG55LmN6PgorCUZvcmNlIHJlc2l6ZSBiZWZvcmUgY2FsbGluZyBSQk5fSEVJR0hUQ0hBTkdFIG5vdGlmaWNhdGlvbi4KKworMjAwNC0wNC0xMyAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9pbWFnZWhscC9pbWFnZWhscC5zcGVjOiBFcmljIFBvdWVjaCA8cG91ZWNoLWVyaWNAd2FuYWRvby5mcj4KKwlVcGRhdGVkIHRvIGxhdGVzdCB2ZXJzaW9uJ3MgZXhwb3J0cywgYW5kIGFkZGVkIGEgZmV3IG1vcmUgZm9yd2FyZHMuCisKKwkqIGRsbHMva2VybmVsL2NvbnNvbGUuYzogQ2hyaXN0aWFuIENvc3RhIDx0aXRhbi5jb3N0YUB3YW5hZG9vLmZyPgorCUZpeGVkIHR5cG8uCisKKwkqIGRvY3VtZW50YXRpb24vZmFxLnNnbWw6CisJVG9ueSBMYW1icmVndHMgPHRvbnlfbGFtYnJlZ3RzQHRlbHVzcGxhbmV0Lm5ldD4KKwlBZGQgYml0IGFib3V0IG5vdCBiZWluZyBhYmxlIHRvIHVzZSBXaW5kb3dzIGRyaXZlcnMgdG8gUHJpbnQgZXRjLgorCisJKiBkbGxzL3VzZXIvdGVzdHMvd2luLmM6IERtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJQWRkIGEgdGVzdCBmb3IgR1dfSFdORExBU1QuCisKKwkqIGRsbHMvc2hlbGwzMi9zaGVsbDMyLnNwZWMsIGRsbHMvc2hlbGwzMi9zaGVsbDMyX21haW4uYzoKKwlKdWFuIExhbmcgPGp1YW5fbGFuZ0B5YWhvby5jb20+CisJQWRkIHN0dWIgZm9yIFNoZWxsRERFSW5pdCB0byBsZXQgV2luZG93cyBleHBsb3Jlci5leGUgZ2V0IHBhc3QgdGhlCisJYmVnaW5uaW5nLgorCisJKiBkbGxzL3NoZWxsMzIvc2hsdmlldy5jOiBKdWFuIExhbmcgPGp1YW5fbGFuZ0B5YWhvby5jb20+CisJSVNoZWxsVmlldyBzZWVtcyByZWFzb25hYmx5IGNvbXBsZXRlLCBjaGFuZ2UgYSBGSVhNRSB0byBhIFRSQUNFIHRvCisJc3BlZWQgdXAgb3Blbi9zYXZlIGRpYWxvZ3MuCisKKwkqIGRsbHMvd2luaW5ldC9odHRwLmM6IEZpeGVkIGEgd2FybmluZy4KKworCSogcHJvZ3JhbXMvd2luZXRlc3QvdXRpbC5jOiBHZXJhbGQgUGZlaWZlciA8Z2VyYWxkQHBmZWlmZXIuY29tPgorCURvIG5vdCBpbmNsdWRlIDx3aW5kb3dzLmg+LCB0byBhdm9pZCBkdXBsaWNhdGUgZGVjbGFyYXRpb24gb2YKKwlzZWxlY3QoKS4KKworCSogZGxscy9zaGVsbDMyL2NwYW5lbGZvbGRlci5jLCBkbGxzL3NoZWxsMzIvc2hmbGRyX2Rlc2t0b3AuYywKKwkgIGRsbHMvc2hlbGwzMi9zaGZsZHJfZnMuYywgZGxscy9zaGVsbDMyL3NoZmxkcl9teWNvbXAuYzoKKwlNYXJ0aW4gRnVjaHMgPG1hcnRpbi1mdWNoc0BnbXgubmV0PgorCUNvcnJlY3QgSVNoZWxsRm9sZGVyOjpHZXRBdHRyaWJ1dGVzT2YoKSBmb3IgdGhlIGNhc2UgKnJnZkluT3V0PTAuCisKKwkqIGRsbHMvc2hlbGwzMi9zaGxleGVjLmM6IE1hcnRpbiBGdWNocyA8bWFydGluLWZ1Y2hzQGdteC5uZXQ+CisJQ2hlY2sgZm9yIGZvbGRlcnMgaW4gU2hlbGxFeGVjdXRlKCkuCisKKzIwMDQtMDQtMTIgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGRsbHMvdmVyc2lvbi9pbmZvLmM6CisJU2V0IGxhc3QgZXJyb3IgdG8gMCBvbiBzdWNjZXNzIGluIFZFUlNJT05fR2V0RmlsZVZlcnNpb25JbmZvX1BFIG5vdworCXRoYXQgTG9hZExpYnJhcnlXIGRvZXNuJ3QgZG8gdGhpcyBhbnltb3JlLgorCisJKiBkbGxzL250ZGxsL2RpcmVjdG9yeS5jLCBkbGxzL250ZGxsL2ZpbGUuYywgZGxscy9udGRsbC9sb2FkZXIuYywKKwkgIGRsbHMvbnRkbGwvbnRkbGxfbWlzYy5oLCBkbGxzL250ZGxsL3BhdGguYzoKKwlJbXBsZW1lbnRlZCBOdENyZWF0ZWxGaWxlIHVzaW5nIHRoZSBuZXcgc3ltbGluayBzY2hlbWUuCisJVXNlIE50Q3JlYXRlRmlsZSBpbiB0aGUgbG9hZGVyLCBhbmQgZ2V0IHJpZCBvZiB0aGUgQ3JlYXRlRmlsZVcgdXBjYWxsCisJaGFjay4KKworCSogZGxscy9pY21wL2ljbXBfbWFpbi5jLCBpbmNsdWRlL3dpbmVycm9yLmgsIHNlcnZlci9maWxlLmMsCisJICBzZXJ2ZXIvc29jay5jLCBzZXJ2ZXIvdHJhY2UuYzoKKwlGaWxpcCBOYXZhcmEgPHhuYXZhcmFAdm9sbnkuY3o+CisJR2V0IHJpZCBvZiBub24tc3RhbmRhcmQgRVJST1JfVU5LTk9XTiB2YWx1ZS4KKworCSogZGxscy93aW5pbmV0L2Nvb2tpZS5jLCBkbGxzL3dpbmluZXQvZGlhbG9ncy5jLCBkbGxzL3dpbmluZXQvaHR0cC5jLAorCSAgZGxscy93aW5pbmV0L2ludGVybmV0LmM6CisJTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCUNvbnZlcnQgdW5pY29kZSBzdHJpbmdzIHRvIGNvbnN0LgorCisJKiBkbGxzL3VzZXIvdGVzdHMvbXNnLmM6IERtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJQWRkIFdNX1FVRVJZTkVXUEFMRVRURSBpbiBhcHByb3ByaWF0ZSBwbGFjZXMgb2YgdGhlIG1lc3NhZ2UgdGVzdC4KKworCSogZGxscy9zaGVsbDMyL3NobGV4ZWMuYzogTWFydGluIEZ1Y2hzIDxtYXJ0aW4tZnVjaHNAZ214Lm5ldD4KKwktIHJlbmFtZSAnd3N6Q29tbWFuZGxpbmUnIHRvICd3c3pQYXJhbWV0ZXJzJworCS0gc2VwYXJhdGUgb3V0IGNvbW1hbmQgbGluZSBhcmd1bWVudHMgZnJvbSBleGVjdXRhYmxlIGZpbGUgbmFtZQorCisJKiBkbGxzL3NoZWxsMzIvc2hlbGxsaW5rLmM6IE1hcnRpbiBGdWNocyA8bWFydGluLWZ1Y2hzQGdteC5uZXQ+CisJLSBlbGltaW5hdGUgTVNWQyB0eXBlIGNvbnZlcnNpb24gd2FybmluZworCS0gSVNoZWxsTGluazo6R2V0SWNvbkxvY2F0aW9uKCk6IGdldCBpY29ucyBmb3Igc2hlbGwgbGlua3MgaWYgbm90CisJICBhbHJlYWR5IHNldAorCisJKiBkbGxzL3dpbm1tL3dpbmVvc3MvYXVkaW8uYzogUm9iZXJ0IFJlaWYgPHJlaWZAZWFydGhsaW5rLm5ldD4KKwlDbGVhbnVwIHJlZmVyZW5jZSBjb3VudGluZy4KKwlNb3ZlIG5vdGlmeSBhcnJheSB0byBidWZmZXIuCisJQWRkIHN0YXRlIGluZm8gYW5kIGZpeCBHZXRTdGF0dXMuCisJUmVtb3ZlIHVubmVjZXNzYXJ5IGRyaXZlciBkZXNjcmlwdGlvbiBmbGFncy4KKworCSogZGxscy9hZHZhcGkzMi9zZXJ2aWNlLmM6CisJT3BlblNlcnZpY2VXOiBkb24ndCB1c2UgdGhlIHJlcXVlc3RlZCBzZXJ2aWNlIGFjY2VzcyByaWdodHMgZm9yIHRoZQorCXJlZ2lzdHJ5IGtleSBhY2Nlc3MgcmlnaHRzLCB0aGV5IGFyZSBub3QgdGhlIHNhbWUgdGhpbmcuCisKKwkqIGRsbHMva2VybmVsL2tlcm5lbF9tYWluLmMsIGRsbHMva2VybmVsL3Byb2Nlc3MuYzoKKwlDcmVhdGUgdGhlIGRldmljZXMgZWFybGllciBvbiBkdXJpbmcgc3RhcnR1cC4KKworCSogZGxscy9hZHZhcGkzMi9hZHZhcGkzMi5zcGVjOiBPcGVuU0NNYW5hZ2VyQS9XIGFyZ3VtZW50cyBhcmUgc3RyaW5ncy4KKworCSogZG9jdW1lbnRhdGlvbi9kZWJ1Z2dlci5zZ21sOiBKZWZmIDxqZWZmbEBkZWZjZW4uZ292LmF1PgorCUNsYXJpZnkgdGhlIGF0dGFjaCBjb21tYW5kLgorCisJKiBkbGxzL29sZWF1dDMyL3ZhcmlhbnQuYywgZGxscy9zaGVsbDMyL3NobGV4ZWMuYywKKwkgIGRsbHMvc2hsd2FwaS9vcmRpbmFsLmM6CisJRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGZyZWUuZnI+CisJQXNzb3J0ZWQgc3BlbGxpbmcgZml4ZXMuCisKKwkqIGRsbHMvZGRyYXcvZDNkdGV4dHVyZS5jLCBkbGxzL2RkcmF3L2RkcmF3X3ByaXZhdGUuaCwKKwkgIGRsbHMvZGRyYXcvZHN1cmZhY2UvbWFpbi5jLCBkbGxzL2RkcmF3L2hlbHBlci5jOgorCUxpb25lbCBVbG1lciA8bGlvbmVsLnVsbWVyQGZyZWUuZnI+CisJQWRkIHRoZSBwb3NzaWJpbGl0eSB0byBzYXZlIGEgc25hcHNob3Qgb2YgdGhlIGJhY2tidWZmZXIgYXQKKwlmbGlwLXRpbWUuCisKKwkqIGRsbHMvZGlucHV0L2tleWJvYXJkLmM6IExpb25lbCBVbG1lciA8bGlvbmVsLnVsbWVyQGZyZWUuZnI+CisJLSBiZXR0ZXIgbG9nIHRoZSBHZXREZXZpY2VTdGF0ZSBmdW5jdGlvbgorCS0gbG9nIGNoYW5nZXMgdG8gdGhlIERJbnB1dEtleVN0YXRlIHRhYmxlCisKKwkqIGRsbHMva2VybmVsL2NvbW0uYzogUmVpbiBLbGF6ZXMgPHJrbGF6ZXNAeHM0YWxsLm5sPgorCUZpeCBHZXRDb21tU3RhdGUgYW5kIFNldENvbW1TdGF0ZSwgc28gdGhhdCB0aGVzZSBmdW5jdGlvbnMgY2FuIGJlIHVzZWQKKwl0byBzZXQvY2xlYXIvcmVhZCB0aGUgRFRSIGFuZCBSVFMgbGluZXMuCisKKwkqIGRsbHMvbXNpL21zaS5jLCBkbGxzL21zaS9tc2kuc3BlYzogSGFucyBMZWlkZWtrZXIgPGhhbnNAaXQudnUubmw+CisJQ29ycmVjdCBzcGVjIGVudHJ5IGZvciBNc2lMb2FkU3RyaW5nKi4KKwlQc2V1ZG8gc3R1YnMgZm9yIE1zaUxvY2F0ZUNvbXBvbmVudCouCisKKwkqIGRsbHMvdXNlci90ZXN0cy93aW4uYywgZGxscy94MTFkcnYvd2luZG93LmM6CisJRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlBZGQgYSB0ZXN0IGNhc2UgZm9yIGNoaWxkcmVuIFogb3JkZXJpbmcgYXQgd2luZG93IGNyZWF0aW9uIHRpbWUuCisKKwkqIGRsbHMvdGFwaTMyL2Fzc2lzdGVkLmM6IFJlaW4gS2xhemVzIDxya2xhemVzQHhzNGFsbC5ubD4KKwlJbXBsZW1lbnQgdGFwaUdldExvY2F0aW9uSW5mby4KKworCSogZG9jdW1lbnRhdGlvbi9zYW1wbGVzL2NvbmZpZywgdG9vbHMvd2luZWluc3RhbGw6CisJVmluY2VudCBC6XJvbiA8dmJlcm9uQG1lY2Fuby5nbWUudXNoZXJiLmNhPgorCVJlbW92ZSAiUGF0aCIgbGluZXMgZnJvbSBzYW1wbGUgY29uZmlnLgorCVNldHVwIHRoZSBsaW5rcyBmb3IgdGhlIGRlZmF1bHQgRE9TIGRyaXZlcyBpbiB3aW5laW5zdGFsbC4KKworCSogdG9vbHMvd3JjL3dyYy5jOiBEaW1pdHJpZSBPLiBQYXVuIDxkcGF1bkByb2dlcnMuY29tPgorCUFkZCBzdXBwb3J0IGZvciAtLXZlcmJvc2UgZm9yIGNvbXBhdGliaWxpdHkuCisKKwkqIGRsbHMvY29tbWRsZy9NYWtlZmlsZS5pbiwgZGxscy9jb21tZGxnL2ZpbGVkbGcuYywKKwkgIGRsbHMvY29tbWRsZy9maWxlZGxnMTYuYzoKKwlIdXcgRGF2aWVzIDxodXdAY29kZXdlYXZlcnMuY29tPgorCUFkZCBiYWNrIHdpbjE2IHN0eWxlIGRpYWxvZ3MgZm9yIHdpbjMyIGFwcHMuCisKKwkqIGluY2x1ZGUvaW1tLmg6IERpbWl0cmllIE8uIFBhdW4gPGRwYXVuQHJvZ2Vycy5jb20+CisJRG9uJ3QgZGVjbGFyZSBHREkgc3R1ZmYgd2hlbiBOT0dESSBpcyBkZWZpbmVkLgorCisJKiBkbGxzL29sZTMyL2RlZmF1bHRoYW5kbGVyLmMsIGRsbHMvb2xlMzIvZmlsZW1vbmlrZXIuYywKKwkgIGRsbHMvc2hkb2N2dy9vbGVvYmplY3QuYywgaW5jbHVkZS93aW5lcnJvci5oOgorCUZpbGlwIE5hdmFyYSA8eG5hdmFyYUB2b2xueS5jej4KKwlHZXQgcmlkIG9mIEVfVU5TUEVDIG5vbi1zdGFuZGFyZCBlcnJvciB2YWx1ZS4KKworCSogZGxscy93aW5tbS93aW5lb3NzL2F1ZGlvLmM6IFJvYmVydCBSZWlmIDxyZWlmQGVhcnRobGluay5uZXQ+CisJUmVtb3ZlIHRyYWlsaW5nIHdoaXRlIHNwYWNlLgorCUNsZWFudXAgd2hpdGUgc3BhY2UgYW5kIGZvcm1hdCBpbiBkaXJlY3Qgc291bmQgY2FwdHVyZSByb3V0aW5lcy4KKworMjAwNC0wNC0wOSAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogdG9vbHMvd3JjL3BhcnNlci5sOgorCUZpeGVkIGxpbmUgbnVtYmVyIGhhbmRsaW5nIGZvciBlc2NhcGVkIGVuZCBvZiBsaW5lcyBpbnNpZGUgc3RyaW5ncy4KKworCSogdG9vbHMvd2luZWR1bXAvUkVBRE1FLCB0b29scy93aW5lZHVtcC93aW5lZHVtcC5tYW46CisJTWljaGFlbCBTdGVmYW5pdWMgPG1zdGVmYW5pQHJlZGhhdC5kZT4KKwktIHJlbW92ZSBmcm9tIFJFQURNRSB0aGUgc3R1ZmYgdGhhdCdzIGFscmVhZHkgaW4gdGhlIG1hbiBwYWdlCisJLSBtb3JlIHN0dWZmIGdvZXMgZnJvbSBSRUFETUUgdG8gdGhlIG1hbiBwYWdlCisJLSBzcGVsbGluZyBmaXhlcworCisJKiBkbGxzL3gxMWRydi9rZXlib2FyZC5jOiBEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCUNvbmRpdGlvbmFsbHkgY29tcGlsZSBjb2RlIHdoaWNoIHVzZXMgWEtfRXVyb1NpZ24gZGVmaW5pdGlvbi4KKworCSogZGxscy92ZXJzaW9uL01ha2VmaWxlLmluOiBIYW5zIExlaWRla2tlciA8aGFuc0BpdC52dS5ubD4KKwlMaW5rIHRvIG50ZGxsLgorCisJKiBkbGxzL21zaS9tc2kuc3BlYzogSGFucyBMZWlkZWtrZXIgPGhhbnNAaXQudnUubmw+CisJQ29ycmVjdCBzcGVjIGVudHJ5IGZvciBEbGxHZXRDbGFzc09iamVjdC4KKworCSogZGxscy93aW5tbS93aW5lb3NzL2F1ZGlvLmM6IEZyYW5jb2lzIEdvdWdldCA8ZmdvdWdldEBjb2Rld2VhdmVycy5jb20+CisJUGF0Y2ggdGhlIGZyYWdtZW50IHNpemUgaWYgaXQgZG9lcyBub3QgbWF0Y2ggdGhlIGN1cnJlbnQgc291bmQKKwlmb3JtYXQuIFRoaXMgc2F2ZXMgdXMgZnJvbSB0cmlnZ2VyaW5nIGEga2VybmVsIGZyZWV6ZSBvbiBzb21lIE9TUyAyLjQKKwkrIFNvdW5kQmxhc3RlciAxNiBzeXN0ZW1zLgorCisJKiBkbGxzL3NoZWxsMzIvc2hsZXhlYy5jOiBGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAZnJlZS5mcj4KKwlDbGVhbnVwIHRoZSBoYW5kbGluZyBvZiB0aGUgZXh0ZW5zaW9uIGluIFNIRUxMX0ZpbmRFeGVjdXRhYmxlKCk6CisJLSBFbGltaW5hdGUgdGhlIGNvcnJlc3BvbmRpbmcgZml4ZWQtc2l6ZSBidWZmZXIgd2hpY2ggcmVtb3ZlcyB0aGUKKwkgIGxpbWl0YXRpb24gdG8gMyBjaGFyYWN0ZXIgZXh0ZW5zaW9ucy4KKwktIEZpeCBoYW5kbGluZyBvZiB0aGUgdHJhaWxpbmcgJy4nIGNhc2UuCisJLSBEbyBhIGNhc2UtaW5zZW5zaXRpdmUgY2hlY2sgZm9yIHRoZSBleHRlbnNpb24gaW4gd2luLmluaS4KKwlJbmNyZWFzZSB0aGUgc2l6ZSBvZiB0aGUgY29tbWFuZCBidWZmZXIgdG8gMTAyNC4KKworCSogZGxscy9tc3ZjcnQvcHJvY2Vzcy5jLCBkbGxzL3NobHdhcGkvdGhyZWFkLmM6CisJRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGZyZWUuZnI+CisJVXNlIG5hbWVkIGNvbnN0YW50cyBpbnN0ZWFkIG9mIG1hZ2ljIG51bWJlcnMuCisKKwkqIGluY2x1ZGUvbXN2Y3J0L21hdGguaDogRGltaXRyaWUgTy4gUGF1biA8ZHBhdW5Acm9nZXJzLmNvbT4KKwlBZGRlZCBkZWZpbml0aW9uIGZvciBIVUdFX1ZBTC4KKworCSogdG9vbHMvd2luZWdjYy93aW5lZ2NjLmM6IERpbWl0cmllIE8uIFBhdW4gPGRwYXVuQHJvZ2Vycy5jb20+CisJU3BlY2lmeSB0aGUgcmlnaHQgbmFtZSBmb3IgdGhlIFdpbmVsaWIgc2hhcmVkIG9iamVjdC4KKworCSogaW5jbHVkZS93aW5nZGkuaDogRGltaXRyaWUgTy4gUGF1biA8ZHBhdW5Acm9nZXJzLmNvbT4KKwlBZGQgc3RydWN0IG5hbWUgZm9yIEJJVE1BUElORk8uCisKKzIwMDQtMDQtMDggIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIEFOTk9VTkNFLCBDaGFuZ2VMb2csIFZFUlNJT04sIGNvbmZpZ3VyZTogUmVsZWFzZSAyMDA0MDQwOC4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMjAwNC0wNC0wOCAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KIAogCSogZGxscy9zaGVsbDMyL2VudW1pZGxpc3QuYywgZGxscy9zaGVsbDMyL2VudW1pZGxpc3QuaCwKZGlmZiAtLWdpdCBhL1ZFUlNJT04gYi9WRVJTSU9OCmluZGV4IDVkMmNjMjkuLmQzZmVlNWQgMTAwNjQ0Ci0tLSBhL1ZFUlNJT04KKysrIGIvVkVSU0lPTgpAQCAtMSArMSBAQAotV2luZSB2ZXJzaW9uIDIwMDQwNDA4CitXaW5lIHZlcnNpb24gMjAwNDA1MDUKZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZSBiL2NvbmZpZ3VyZQppbmRleCAzNTAyNWMxLi5lYTcwZDk4IDEwMDc1NQotLS0gYS9jb25maWd1cmUKKysrIGIvY29uZmlndXJlCkBAIC0xLDYgKzEsNiBAQAogIyEgL2Jpbi9zaAogIyBHdWVzcyB2YWx1ZXMgZm9yIHN5c3RlbS1kZXBlbmRlbnQgdmFyaWFibGVzIGFuZCBjcmVhdGUgTWFrZWZpbGVzLgotIyBHZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNTkgZm9yIFdpbmUgMjAwNDA0MDguCisjIEdlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi41OSBmb3IgV2luZSAyMDA0MDUwNS4KICMKICMgUmVwb3J0IGJ1Z3MgdG8gPHdpbmUtZGV2ZWxAd2luZWhxLm9yZz4uCiAjCkBAIC0yNjksOCArMjY5LDggQEAKICMgSWRlbnRpdHkgb2YgdGhpcyBwYWNrYWdlLgogUEFDS0FHRV9OQU1FPSdXaW5lJwogUEFDS0FHRV9UQVJOQU1FPSd3aW5lJwotUEFDS0FHRV9WRVJTSU9OPScyMDA0MDQwOCcKLVBBQ0tBR0VfU1RSSU5HPSdXaW5lIDIwMDQwNDA4JworUEFDS0FHRV9WRVJTSU9OPScyMDA0MDUwNScKK1BBQ0tBR0VfU1RSSU5HPSdXaW5lIDIwMDQwNTA1JwogUEFDS0FHRV9CVUdSRVBPUlQ9J3dpbmUtZGV2ZWxAd2luZWhxLm9yZycKIAogYWNfdW5pcXVlX2ZpbGU9InNlcnZlci9hdG9tLmMiCkBAIC03ODgsNyArNzg4LDcgQEAKICAgIyBPbWl0IHNvbWUgaW50ZXJuYWwgb3Igb2Jzb2xldGUgb3B0aW9ucyB0byBtYWtlIHRoZSBsaXN0IGxlc3MgaW1wb3NpbmcuCiAgICMgVGhpcyBtZXNzYWdlIGlzIHRvbyBsb25nIHRvIGJlIGEgc3RyaW5nIGluIHRoZSBBL1VYIDMuMSBzaC4KICAgY2F0IDw8X0FDRU9GCi1cYGNvbmZpZ3VyZScgY29uZmlndXJlcyBXaW5lIDIwMDQwNDA4IHRvIGFkYXB0IHRvIG1hbnkga2luZHMgb2Ygc3lzdGVtcy4KK1xgY29uZmlndXJlJyBjb25maWd1cmVzIFdpbmUgMjAwNDA1MDUgdG8gYWRhcHQgdG8gbWFueSBraW5kcyBvZiBzeXN0ZW1zLgogCiBVc2FnZTogJDAgW09QVElPTl0uLi4gW1ZBUj1WQUxVRV0uLi4KIApAQCAtODUzLDcgKzg1Myw3IEBACiAKIGlmIHRlc3QgLW4gIiRhY19pbml0X2hlbHAiOyB0aGVuCiAgIGNhc2UgJGFjX2luaXRfaGVscCBpbgotICAgICBzaG9ydCB8IHJlY3Vyc2l2ZSApIGVjaG8gIkNvbmZpZ3VyYXRpb24gb2YgV2luZSAyMDA0MDQwODoiOzsKKyAgICAgc2hvcnQgfCByZWN1cnNpdmUgKSBlY2hvICJDb25maWd1cmF0aW9uIG9mIFdpbmUgMjAwNDA1MDU6Ijs7CiAgICBlc2FjCiAgIGNhdCA8PFxfQUNFT0YKIApAQCAtOTgyLDcgKzk4Miw3IEBACiB0ZXN0IC1uICIkYWNfaW5pdF9oZWxwIiAmJiBleGl0IDAKIGlmICRhY19pbml0X3ZlcnNpb247IHRoZW4KICAgY2F0IDw8XF9BQ0VPRgotV2luZSBjb25maWd1cmUgMjAwNDA0MDgKK1dpbmUgY29uZmlndXJlIDIwMDQwNTA1CiBnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNTkKIAogQ29weXJpZ2h0IChDKSAyMDAzIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgpAQCAtOTk2LDcgKzk5Niw3IEBACiBUaGlzIGZpbGUgY29udGFpbnMgYW55IG1lc3NhZ2VzIHByb2R1Y2VkIGJ5IGNvbXBpbGVycyB3aGlsZQogcnVubmluZyBjb25maWd1cmUsIHRvIGFpZCBkZWJ1Z2dpbmcgaWYgY29uZmlndXJlIG1ha2VzIGEgbWlzdGFrZS4KIAotSXQgd2FzIGNyZWF0ZWQgYnkgV2luZSAkYXNfbWUgMjAwNDA0MDgsIHdoaWNoIHdhcworSXQgd2FzIGNyZWF0ZWQgYnkgV2luZSAkYXNfbWUgMjAwNDA1MDUsIHdoaWNoIHdhcwogZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjU5LiAgSW52b2NhdGlvbiBjb21tYW5kIGxpbmUgd2FzCiAKICAgJCAkMCAkQApAQCAtMjAzOTgsNyArMjAzOTgsNyBAQAogfSA+JjUKIGNhdCA+JjUgPDxfQ1NFT0YKIAotVGhpcyBmaWxlIHdhcyBleHRlbmRlZCBieSBXaW5lICRhc19tZSAyMDA0MDQwOCwgd2hpY2ggd2FzCitUaGlzIGZpbGUgd2FzIGV4dGVuZGVkIGJ5IFdpbmUgJGFzX21lIDIwMDQwNTA1LCB3aGljaCB3YXMKIGdlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi41OS4gIEludm9jYXRpb24gY29tbWFuZCBsaW5lIHdhcwogCiAgIENPTkZJR19GSUxFUyAgICA9ICRDT05GSUdfRklMRVMKQEAgLTIwNDYxLDcgKzIwNDYxLDcgQEAKIAogY2F0ID4+JENPTkZJR19TVEFUVVMgPDxfQUNFT0YKIGFjX2NzX3ZlcnNpb249IlxcCi1XaW5lIGNvbmZpZy5zdGF0dXMgMjAwNDA0MDgKK1dpbmUgY29uZmlnLnN0YXR1cyAyMDA0MDUwNQogY29uZmlndXJlZCBieSAkMCwgZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjU5LAogICB3aXRoIG9wdGlvbnMgXFwiYGVjaG8gIiRhY19jb25maWd1cmVfYXJncyIgfCBzZWQgJ3MvW1xcIiJcYFwkXS9cXFxcJi9nJ2BcXCIKIAo=