ZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vYXJtLzAwLUlOREVYIGIvRG9jdW1lbnRhdGlvbi9hcm0vMDAtSU5ERVgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDc1M2ZlNQotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vYXJtLzAwLUlOREVYCkBAIC0wLDAgKzEsMjAgQEAKKzAwLUlOREVYCisJLSB0aGlzIGZpbGUKK0Jvb3RpbmcKKwktIHJlcXVpcmVtZW50cyBmb3IgYm9vdGluZworSW50ZXJydXB0cworCS0gQVJNIEludGVycnVwdCBzdWJzeXN0ZW0gZG9jdW1lbnRhdGlvbgorTmV0d2luZGVyCisJLSBOZXR3aW5kZXIgc3BlY2lmaWMgZG9jdW1lbnRhdGlvbgorUkVBRE1FCisJLSBHZW5lcmFsIEFSTSBkb2N1bWVudGF0aW9uCitTQTExMDAKKwktIFNBMTEwMCBkb2N1bWVudGF0aW9uCitYU2NhbGUKKwktIFhTY2FsZSBkb2N1bWVudGF0aW9uCitlbXBlZworCS0gRW1wZWcgZG9jdW1lbnRhdGlvbgorbWVtX2FsaWdubWVudAorCS0gYWxpZ25tZW50IGFib3J0IGhhbmRsZXIgZG9jdW1lbnRhdGlvbgorbndmcGUKKwktIE5XRlBFIGZsb2F0aW5nIHBvaW50IGVtdWxhdG9yIGRvY3VtZW50YXRpb24KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vYXJtL0Jvb3RpbmcgYi9Eb2N1bWVudGF0aW9uL2FybS9Cb290aW5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZhZDU2NmIKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL2FybS9Cb290aW5nCkBAIC0wLDAgKzEsMTQxIEBACisJCQlCb290aW5nIEFSTSBMaW51eAorCQkJPT09PT09PT09PT09PT09PT0KKworQXV0aG9yOglSdXNzZWxsIEtpbmcKK0RhdGUgIDogMTggTWF5IDIwMDIKKworVGhlIGZvbGxvd2luZyBkb2N1bWVudGF0aW9uIGlzIHJlbGV2YW50IHRvIDIuNC4xOC1ybWs2IGFuZCBiZXlvbmQuCisKK0luIG9yZGVyIHRvIGJvb3QgQVJNIExpbnV4LCB5b3UgcmVxdWlyZSBhIGJvb3QgbG9hZGVyLCB3aGljaCBpcyBhIHNtYWxsCitwcm9ncmFtIHRoYXQgcnVucyBiZWZvcmUgdGhlIG1haW4ga2VybmVsLiAgVGhlIGJvb3QgbG9hZGVyIGlzIGV4cGVjdGVkCit0byBpbml0aWFsaXNlIHZhcmlvdXMgZGV2aWNlcywgYW5kIGV2ZW50dWFsbHkgY2FsbCB0aGUgTGludXgga2VybmVsLAorcGFzc2luZyBpbmZvcm1hdGlvbiB0byB0aGUga2VybmVsLgorCitFc3NlbnRpYWxseSwgdGhlIGJvb3QgbG9hZGVyIHNob3VsZCBwcm92aWRlIChhcyBhIG1pbmltdW0pIHRoZQorZm9sbG93aW5nOgorCisxLiBTZXR1cCBhbmQgaW5pdGlhbGlzZSB0aGUgUkFNLgorMi4gSW5pdGlhbGlzZSBvbmUgc2VyaWFsIHBvcnQuCiszLiBEZXRlY3QgdGhlIG1hY2hpbmUgdHlwZS4KKzQuIFNldHVwIHRoZSBrZXJuZWwgdGFnZ2VkIGxpc3QuCis1LiBDYWxsIHRoZSBrZXJuZWwgaW1hZ2UuCisKKworMS4gU2V0dXAgYW5kIGluaXRpYWxpc2UgUkFNCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworRXhpc3RpbmcgYm9vdCBsb2FkZXJzOgkJTUFOREFUT1JZCitOZXcgYm9vdCBsb2FkZXJzOgkJTUFOREFUT1JZCisKK1RoZSBib290IGxvYWRlciBpcyBleHBlY3RlZCB0byBmaW5kIGFuZCBpbml0aWFsaXNlIGFsbCBSQU0gdGhhdCB0aGUKK2tlcm5lbCB3aWxsIHVzZSBmb3Igdm9sYXRpbGUgZGF0YSBzdG9yYWdlIGluIHRoZSBzeXN0ZW0uICBJdCBwZXJmb3JtcwordGhpcyBpbiBhIG1hY2hpbmUgZGVwZW5kZW50IG1hbm5lci4gIChJdCBtYXkgdXNlIGludGVybmFsIGFsZ29yaXRobXMKK3RvIGF1dG9tYXRpY2FsbHkgbG9jYXRlIGFuZCBzaXplIGFsbCBSQU0sIG9yIGl0IG1heSB1c2Uga25vd2xlZGdlIG9mCit0aGUgUkFNIGluIHRoZSBtYWNoaW5lLCBvciBhbnkgb3RoZXIgbWV0aG9kIHRoZSBib290IGxvYWRlciBkZXNpZ25lcgorc2VlcyBmaXQuKQorCisKKzIuIEluaXRpYWxpc2Ugb25lIHNlcmlhbCBwb3J0CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitFeGlzdGluZyBib290IGxvYWRlcnM6CQlPUFRJT05BTCwgUkVDT01NRU5ERUQKK05ldyBib290IGxvYWRlcnM6CQlPUFRJT05BTCwgUkVDT01NRU5ERUQKKworVGhlIGJvb3QgbG9hZGVyIHNob3VsZCBpbml0aWFsaXNlIGFuZCBlbmFibGUgb25lIHNlcmlhbCBwb3J0IG9uIHRoZQordGFyZ2V0LiAgVGhpcyBhbGxvd3MgdGhlIGtlcm5lbCBzZXJpYWwgZHJpdmVyIHRvIGF1dG9tYXRpY2FsbHkgZGV0ZWN0Cit3aGljaCBzZXJpYWwgcG9ydCBpdCBzaG91bGQgdXNlIGZvciB0aGUga2VybmVsIGNvbnNvbGUgKGdlbmVyYWxseQordXNlZCBmb3IgZGVidWdnaW5nIHB1cnBvc2VzLCBvciBjb21tdW5pY2F0aW9uIHdpdGggdGhlIHRhcmdldC4pCisKK0FzIGFuIGFsdGVybmF0aXZlLCB0aGUgYm9vdCBsb2FkZXIgY2FuIHBhc3MgdGhlIHJlbGV2YW50ICdjb25zb2xlPScKK29wdGlvbiB0byB0aGUga2VybmVsIHZpYSB0aGUgdGFnZ2VkIGxpc3RzIHNwZWNpZnlpbmcgdGhlIHBvcnQsIGFuZAorc2VyaWFsIGZvcm1hdCBvcHRpb25zIGFzIGRlc2NyaWJlZCBpbgorCisgICAgICAgRG9jdW1lbnRhdGlvbi9rZXJuZWwtcGFyYW1ldGVycy50eHQuCisKKworMy4gRGV0ZWN0IHRoZSBtYWNoaW5lIHR5cGUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0V4aXN0aW5nIGJvb3QgbG9hZGVyczoJCU9QVElPTkFMCitOZXcgYm9vdCBsb2FkZXJzOgkJTUFOREFUT1JZCisKK1RoZSBib290IGxvYWRlciBzaG91bGQgZGV0ZWN0IHRoZSBtYWNoaW5lIHR5cGUgaXRzIHJ1bm5pbmcgb24gYnkgc29tZQorbWV0aG9kLiAgV2hldGhlciB0aGlzIGlzIGEgaGFyZCBjb2RlZCB2YWx1ZSBvciBzb21lIGFsZ29yaXRobSB0aGF0Citsb29rcyBhdCB0aGUgY29ubmVjdGVkIGhhcmR3YXJlIGlzIGJleW9uZCB0aGUgc2NvcGUgb2YgdGhpcyBkb2N1bWVudC4KK1RoZSBib290IGxvYWRlciBtdXN0IHVsdGltYXRlbHkgYmUgYWJsZSB0byBwcm92aWRlIGEgTUFDSF9UWVBFX3h4eAordmFsdWUgdG8gdGhlIGtlcm5lbC4gKHNlZSBsaW51eC9hcmNoL2FybS90b29scy9tYWNoLXR5cGVzKS4KKworCis0LiBTZXR1cCB0aGUga2VybmVsIHRhZ2dlZCBsaXN0CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0V4aXN0aW5nIGJvb3QgbG9hZGVyczoJCU9QVElPTkFMLCBISUdITFkgUkVDT01NRU5ERUQKK05ldyBib290IGxvYWRlcnM6CQlNQU5EQVRPUlkKKworVGhlIGJvb3QgbG9hZGVyIG11c3QgY3JlYXRlIGFuZCBpbml0aWFsaXNlIHRoZSBrZXJuZWwgdGFnZ2VkIGxpc3QuCitBIHZhbGlkIHRhZ2dlZCBsaXN0IHN0YXJ0cyB3aXRoIEFUQUdfQ09SRSBhbmQgZW5kcyB3aXRoIEFUQUdfTk9ORS4KK1RoZSBBVEFHX0NPUkUgdGFnIG1heSBvciBtYXkgbm90IGJlIGVtcHR5LiAgQW4gZW1wdHkgQVRBR19DT1JFIHRhZworaGFzIHRoZSBzaXplIGZpZWxkIHNldCB0byAnMicgKDB4MDAwMDAwMDIpLiAgVGhlIEFUQUdfTk9ORSBtdXN0IHNldAordGhlIHNpemUgZmllbGQgdG8gemVyby4KKworQW55IG51bWJlciBvZiB0YWdzIGNhbiBiZSBwbGFjZWQgaW4gdGhlIGxpc3QuICBJdCBpcyB1bmRlZmluZWQKK3doZXRoZXIgYSByZXBlYXRlZCB0YWcgYXBwZW5kcyB0byB0aGUgaW5mb3JtYXRpb24gY2FycmllZCBieSB0aGUKK3ByZXZpb3VzIHRhZywgb3Igd2hldGhlciBpdCByZXBsYWNlcyB0aGUgaW5mb3JtYXRpb24gaW4gaXRzCitlbnRpcmV0eTsgc29tZSB0YWdzIGJlaGF2ZSBhcyB0aGUgZm9ybWVyLCBvdGhlcnMgdGhlIGxhdHRlci4KKworVGhlIGJvb3QgbG9hZGVyIG11c3QgcGFzcyBhdCBhIG1pbmltdW0gdGhlIHNpemUgYW5kIGxvY2F0aW9uIG9mCit0aGUgc3lzdGVtIG1lbW9yeSwgYW5kIHJvb3QgZmlsZXN5c3RlbSBsb2NhdGlvbi4gIFRoZXJlZm9yZSwgdGhlCittaW5pbXVtIHRhZ2dlZCBsaXN0IHNob3VsZCBsb29rOgorCisJKy0tLS0tLS0tLS0tKworYmFzZSAtPgl8IEFUQUdfQ09SRSB8ICB8CisJKy0tLS0tLS0tLS0tKyAgfAorCXwgQVRBR19NRU0gIHwgIHwgaW5jcmVhc2luZyBhZGRyZXNzCisJKy0tLS0tLS0tLS0tKyAgfAorCXwgQVRBR19OT05FIHwgIHwKKwkrLS0tLS0tLS0tLS0rICB2CisKK1RoZSB0YWdnZWQgbGlzdCBzaG91bGQgYmUgc3RvcmVkIGluIHN5c3RlbSBSQU0uCisKK1RoZSB0YWdnZWQgbGlzdCBtdXN0IGJlIHBsYWNlZCBpbiBhIHJlZ2lvbiBvZiBtZW1vcnkgd2hlcmUgbmVpdGhlcgordGhlIGtlcm5lbCBkZWNvbXByZXNzb3Igbm9yIGluaXRyZCAnYm9vdHAnIHByb2dyYW0gd2lsbCBvdmVyd3JpdGUKK2l0LiAgVGhlIHJlY29tbWVuZGVkIHBsYWNlbWVudCBpcyBpbiB0aGUgZmlyc3QgMTZLaUIgb2YgUkFNLgorCis1LiBDYWxsaW5nIHRoZSBrZXJuZWwgaW1hZ2UKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitFeGlzdGluZyBib290IGxvYWRlcnM6CQlNQU5EQVRPUlkKK05ldyBib290IGxvYWRlcnM6CQlNQU5EQVRPUlkKKworVGhlcmUgYXJlIHR3byBvcHRpb25zIGZvciBjYWxsaW5nIHRoZSBrZXJuZWwgekltYWdlLiAgSWYgdGhlIHpJbWFnZQoraXMgc3RvcmVkIGluIGZsYXNoLCBhbmQgaXMgbGlua2VkIGNvcnJlY3RseSB0byBiZSBydW4gZnJvbSBmbGFzaCwKK3RoZW4gaXQgaXMgbGVnYWwgZm9yIHRoZSBib290IGxvYWRlciB0byBjYWxsIHRoZSB6SW1hZ2UgaW4gZmxhc2gKK2RpcmVjdGx5LgorCitUaGUgekltYWdlIG1heSBhbHNvIGJlIHBsYWNlZCBpbiBzeXN0ZW0gUkFNIChhdCBhbnkgbG9jYXRpb24pIGFuZAorY2FsbGVkIHRoZXJlLiAgTm90ZSB0aGF0IHRoZSBrZXJuZWwgdXNlcyAxNksgb2YgUkFNIGJlbG93IHRoZSBpbWFnZQordG8gc3RvcmUgcGFnZSB0YWJsZXMuICBUaGUgcmVjb21tZW5kZWQgcGxhY2VtZW50IGlzIDMyS2lCIGludG8gUkFNLgorCitJbiBlaXRoZXIgY2FzZSwgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIG11c3QgYmUgbWV0OgorCistIFF1aWVzY2UgYWxsIERNQSBjYXBhYmxlIGRldmljZXNzIHNvIHRoYXQgbWVtb3J5IGRvZXMgbm90IGdldAorICBjb3JydXB0ZWQgYnkgYm9ndXMgbmV0d29yayBwYWNrZXRzIG9yIGRpc2sgZGF0YS4gVGhpcyB3aWxsIHNhdmUKKyAgeW91IG1hbnkgaG91cnMgb2YgZGVidWcuCisKKy0gQ1BVIHJlZ2lzdGVyIHNldHRpbmdzCisgIHIwID0gMCwKKyAgcjEgPSBtYWNoaW5lIHR5cGUgbnVtYmVyIGRpc2NvdmVyZWQgaW4gKDMpIGFib3ZlLgorICByMiA9IHBoeXNpY2FsIGFkZHJlc3Mgb2YgdGFnZ2VkIGxpc3QgaW4gc3lzdGVtIFJBTS4KKworLSBDUFUgbW9kZQorICBBbGwgZm9ybXMgb2YgaW50ZXJydXB0cyBtdXN0IGJlIGRpc2FibGVkIChJUlFzIGFuZCBGSVFzKQorICBUaGUgQ1BVIG11c3QgYmUgaW4gU1ZDIG1vZGUuICAoQSBzcGVjaWFsIGV4Y2VwdGlvbiBleGlzdHMgZm9yIEFuZ2VsKQorCistIENhY2hlcywgTU1VcworICBUaGUgTU1VIG11c3QgYmUgb2ZmLgorICBJbnN0cnVjdGlvbiBjYWNoZSBtYXkgYmUgb24gb3Igb2ZmLgorICBEYXRhIGNhY2hlIG11c3QgYmUgb2ZmLgorCistIFRoZSBib290IGxvYWRlciBpcyBleHBlY3RlZCB0byBjYWxsIHRoZSBrZXJuZWwgaW1hZ2UgYnkganVtcGluZworICBkaXJlY3RseSB0byB0aGUgZmlyc3QgaW5zdHJ1Y3Rpb24gb2YgdGhlIGtlcm5lbCBpbWFnZS4KKwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9hcm0vSVhQMjAwMCBiL0RvY3VtZW50YXRpb24vYXJtL0lYUDIwMDAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTAxNDhiNgotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vYXJtL0lYUDIwMDAKQEAgLTAsMCArMSw2OSBAQAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitSZWxlYXNlIE5vdGVzIGZvciBMaW51eCBvbiBJbnRlbCdzIElYUDIwMDAgTmV0d29yayBQcm9jZXNzb3IKKworTWFpbnRhaW5lZCBieSBEZWVwYWsgU2F4ZW5hIDxkc2F4ZW5hQHBsZXhpdHkubmV0PgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisxLiBPdmVydmlldworCitJbnRlbCdzIElYUDIwMDAgZmFtaWx5IG9mIE5QVXMgKElYUDI0MDAsIElYUDI4MDAsIElYUDI4NTApIGlzIGRlc2lnbmVkCitmb3IgaGlnaC1wZXJmb3JtYW5jZSBuZXR3b3JrIGFwcGxpY2F0aW9ucyBzdWNoIGhpZ2gtYXZhaWxhYmlsaXR5Cit0ZWxlY29tIHN5c3RlbXMuIEluIGFkZGl0aW9uIHRvIGFuIFhTY2FsZSBjb3JlLCBpdCBjb250YWlucyB1cCB0byA4CisiTWljcm9FbmdpbmVzIiB0aGF0IHJ1biBzcGVjaWFsIGNvZGUsIHNldmVyYWwgaGlnaC1lbmQgbmV0d29ya2luZyAKK2ludGVyZmFjZXMgKFVUT1BJQSwgU1BJLCBldGMpLCBhIFBDSSBob3N0IGJyaWRnZSwgb25lIHNlcmlhbCBwb3J0LAorZmxhc2ggaW50ZXJmYWNlLCBhbmQgc29tZSBvdGhlciBvZGRzIGFuZCBlbmRzLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlOgorCitodHRwOi8vZGV2ZWxvcGVyLmludGVsLmNvbS9kZXNpZ24vbmV0d29yay9wcm9kdWN0cy9ucGZhbWlseS9peHAyeHh4Lmh0bQorCisyLiBMaW51eCBTdXBwb3J0CisKK0xpbnV4IGN1cnJlbnRseSBzdXBwb3J0cyB0aGUgZm9sbG93aW5nIGZlYXR1cmVzIG9uIHRoZSBJWFAyMDAwIE5QVXM6CisKKy0gT24tY2hpcCBzZXJpYWwKKy0gUENJCistIEZsYXNoIChNVEQvSkZGUzIpCistIEkyQyB0aHJvdWdoIEdQSU8KKy0gVGltZXJzICh3YXRjaGRvZywgT1MpCisKK1RoYXQgaXMgYWJvdXQgYWxsIHdlIGNhbiBzdXBwb3J0IHVuZGVyIExpbnV4IEFUTSBiL2MgdGhlIGNvcmUgbmV0d29ya2luZworY29tcG9uZW50cyBvZiB0aGUgY2hpcCBhcmUgYWNjZXNzZWQgdmlhIEludGVsJ3MgY2xvc2VkIHNvdXJjZSBTREsuIAorUGxlYXNlIGNvbnRhY3QgSW50ZWwgZGlyZWN0bHkgb24gaXNzdWVzIHdpdGggdXNpbmcgdGhvc2UuIFRoZXJlIGlzCithbHNvIGEgbWFpbGluZyBsaXN0IHJ1biBieSBzb21lIGZvbGtzIGF0IFByaW5jZXRvbiBVbml2ZXJzaXR5IHRoYXQgbWlnaHQKK2JlIG9mIGhlbHA6ICBodHRwczovL2xpc3RzLmNzLnByaW5jZXRvbi5lZHUvbWFpbG1hbi9saXN0aW5mby9peHAyeHh4CisKK1dIQVRFVkVSIFlPVSBETywgRE8gTk9UIFBPU1QgRU1BSUwgVE8gVEhFIExJTlVYLUFSTSBPUiBMSU5VWC1BUk0tS0VSTkVMCitNQUlMSU5HIExJU1RTIFJFR0FSRElORyBUSEUgSU5URUwgU0RLLgorCiszLiBTdXBwb3J0ZWQgUGxhdGZvcm1zCisKKy0gSW50ZWwgSVhEUDI0MDAgUmVmZXJlbmNlIFBsYXRmb3JtCistIEludGVsIElYRFAyODAwIFJlZmVyZW5jZSBQbGF0Zm9ybQorLSBJbnRlbCBJWERQMjQwMSBSZWZlcmVuY2UgUGxhdGZvcm0KKy0gSW50ZWwgSVhEUDI4MDEgUmVmZXJlbmNlIFBsYXRmb3JtCistIFJhZGlTeXMgRU5QLTI2MTEKKworNC4gVXNhZ2UgTm90ZXMKKworLSBUaGUgSVhQMjAwMCBwbGF0Zm9ybXMgdXN1YWxseSBoYXZlIHJhdGhlciBjb21wbGV4IFBDSSBidXMgdG9wb2xvZ2llcworICB3aXRoIGxhcmdlIG1lbW9yeSBzcGFjZSByZXF1aXJlbWVudHMuIEluIGFkZGl0aW9uLCBiL2Mgb2YgdGhlIHdheSB0aGUKKyAgSW50ZWwgU0RLIGlzIGRlc2lnbmVkLCBkZXZpY2VzIGFyZSBlbnVtZXJhdGVkIGluIGEgdmVyeSBzcGVjaWZpYworICB3YXkuIEIvYyBvZiB0aGlzIHRoaXMsIHdlIHVzZSAicGNpPWZpcm13YXJlIiBvcHRpb24gaW4gdGhlIGtlcm5lbAorICBjb21tYW5kIGxpbmUgc28gdGhhdCB3ZSBkbyBub3QgcmUtZW51bWVyYXRlIHRoZSBidXMuCisKKy0gSVhEUDJ4MDEgc3lzdGVtcyBoYXZlIHZhcmlhYmxlIGNsb2NrIHRpY2sgcmF0ZXMgdGhhdCB3ZSBjYW5ub3QgZGV0ZXJtaW5lIAorICB2aWEgSFcgcmVnaXN0ZXJzLiBUaGUgIml4ZHAyeDAxX2Nsaz1YWFgiIGNtZCBsaW5lIG9wdGlvbnMgYWxsb3cgeW91CisgIHRvIHBhc3MgdGhlIGNsb2NrIHJhdGUgdG8gdGhlIGJvYXJkIHBvcnQuCisKKzUuIFRoYW5rcworCitUaGUgSVhQMjAwMCB3b3JrIGhhcyBiZWVuIGZ1bmRlZCBieSBJbnRlbCBDb3JwLiBhbmQgTW9udGFWaXN0YSBTb2Z0d2FyZSwgSW5jLgorCitUaGUgZm9sbG93aW5nIHBlb3BsZSBoYXZlIGNvbnRyaWJ1dGVkIHBhdGNoZXMvY29tbWVudHMvZXRjOgorCitOYWVlbSBGLiBBZnphbAorTGVubmVydCBCdXl0ZW5oZWsKK0plZmZyZXkgRGFseQorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMYXN0IFVwZGF0ZTogOC8wOS8yMDA0CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2FybS9JWFA0eHggYi9Eb2N1bWVudGF0aW9uL2FybS9JWFA0eHgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDRjNmQzYQotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vYXJtL0lYUDR4eApAQCAtMCwwICsxLDE3NCBAQAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitSZWxlYXNlIE5vdGVzIGZvciBMaW51eCBvbiBJbnRlbCdzIElYUDR4eCBOZXR3b3JrIFByb2Nlc3NvcgorCitNYWludGFpbmVkIGJ5IERlZXBhayBTYXhlbmEgPGRzYXhlbmFAcGxleGl0eS5uZXQ+CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKzEuIE92ZXJ2aWV3CisKK0ludGVsJ3MgSVhQNHh4IG5ldHdvcmsgcHJvY2Vzc29yIGlzIGEgaGlnaGx5IGludGVncmF0ZWQgU09DIHRoYXQKK2lzIHRhcmdldGVkIGZvciBuZXR3b3JrIGFwcGxpY2F0aW9ucywgdGhvdWdoIGl0IGhhcyBiZWNvbWUgcG9wdWxhciAKK2luIGluZHVzdHJpYWwgY29udHJvbCBhbmQgb3RoZXIgYXJlYXMgZHVlIHRvIGxvdyBjb3N0IGFuZCBwb3dlcgorY29uc3VtcHRpb24uIFRoZSBJWFA0eHggZmFtaWx5IGN1cnJlbnRseSBjb25zaXN0cyBvZiBzZXZlcmFsIHByb2Nlc3NvcnMKK3RoYXQgc3VwcG9ydCBkaWZmZXJlbnQgbmV0d29yayBvZmZsb2FkIGZ1bmN0aW9ucyBzdWNoIGFzIGVuY3J5cHRpb24sCityb3V0aW5nLCBmaXJld2FsbGluZywgZXRjLiBUaGUgSVhQNDZ4IGZhbWlseSBpcyBhbiB1cGRhdGVkIHZlcnNpb24gd2hpY2gKK3N1cHBvcnRzIGZhc3RlciBzcGVlZHMsIG5ldyBtZW1vcnkgYW5kIGZsYXNoIGNvbmZpZ3VyYXRpb25zLCBhbmQgbW9yZQoraW50ZWdyYXRpb24gc3VjaCBhcyBhbiBvbi1jaGlwIEkyQyBjb250cm9sbGVyLgorCitGb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiB0aGUgdmFyaW91cyB2ZXJzaW9ucyBvZiB0aGUgQ1BVLCBzZWU6CisKKyAgIGh0dHA6Ly9kZXZlbG9wZXIuaW50ZWwuY29tL2Rlc2lnbi9uZXR3b3JrL3Byb2R1Y3RzL25wZmFtaWx5L2l4cDR4eC5odG0KKworSW50ZWwgYWxzbyBtYWRlIHRoZSBJWENQMTEwMCBDUFUgZm9yIHNvbWV0aW1lIHdoaWNoIGlzIGFuIElYUDR4eCAKK3N0cmlwcGVkIG9mIG11Y2ggb2YgdGhlIG5ldHdvcmsgaW50ZWxsaWdlbmNlLgorCisyLiBMaW51eCBTdXBwb3J0CisKK0xpbnV4IGN1cnJlbnRseSBzdXBwb3J0cyB0aGUgZm9sbG93aW5nIGZlYXR1cmVzIG9uIHRoZSBJWFA0eHggY2hpcHM6CisKKy0gRHVhbCBzZXJpYWwgcG9ydHMKKy0gUENJIGludGVyZmFjZQorLSBGbGFzaCBhY2Nlc3MgKE1URC9KRkZTKQorLSBJMkMgdGhyb3VnaCBHUElPIG9uIElYUDQyeAorLSBHUElPIGZvciBpbnB1dC9vdXRwdXQvaW50ZXJydXB0cyAKKyAgU2VlIGluY2x1ZGUvYXNtLWFybS9hcmNoLWl4cDR4eC9wbGF0Zm9ybS5oIGZvciBhY2Nlc3MgZnVuY3Rpb25zLgorLSBUaW1lcnMgKHdhdGNoZG9nLCBPUykKKworVGhlIGZvbGxvd2luZyBjb21wb25lbnRzIG9mIHRoZSBjaGlwcyBhcmUgbm90IHN1cHBvcnRlZCBieSBMaW51eCBhbmQKK3JlcXVpcmUgdGhlIHVzZSBvZiBJbnRlbCdzIHByb3BpZXRhcnkgQ1NSIHNvZnRhcmU6CisKKy0gVVNCIGRldmljZSBpbnRlcmZhY2UKKy0gTmV0d29yayBpbnRlcmZhY2VzIChIU1MsIFV0b3BpYSwgTlBFcywgZXRjKQorLSBOZXR3b3JrIG9mZmxvYWQgZnVuY3Rpb25hbGl0eQorCitJZiB5b3UgbmVlZCB0byB1c2UgYW55IG9mIHRoZSBhYm92ZSwgeW91IG5lZWQgdG8gZG93bmxvYWQgSW50ZWwncworc29mdHdhcmUgZnJvbToKKworICAgaHR0cDovL2RldmVsb3Blci5pbnRlbC5jb20vZGVzaWduL25ldHdvcmsvcHJvZHVjdHMvbnBmYW1pbHkvaXhwNDI1c3dyMS5odG0KKworRE8gTk9UIFBPU1QgUVVFU1RJT05TIFRPIFRIRSBMSU5VWCBNQUlMSU5HIExJU1RTIFJFR0FSRElORyBUSEUgUFJPUElFVEFSWQorU09GVFdBUkUuCisKK1RoZXJlIGFyZSBzZXZlcmFsIHdlYnNpdGVzIHRoYXQgcHJvdmlkZSBkaXJlY3Rpb25zL3BvaW50ZXJzIG9uIHVzaW5nCitJbnRlbCdzIHNvZnR3YXJlOgorCitodHRwOi8vaXhwNHh4LW9zZGcuc291cmNlZm9yZ2UubmV0LyAKKyAgIE9wZW4gU291cmNlIERldmVsb3BlcidzIEd1aWRlIGZvciB1c2luZyB1Q2xpbnV4IGFuZCB0aGUgSW50ZWwgbGlicmFyaWVzIAorCitodHRwOi8vZ2F0ZXdheW1ha2VyLnNvdXJjZWZvcmdlLm5ldC8gCisgICBTaW1wbGUgb25lIHBhZ2Ugc3VtbWFyeSBvZiBidWlsZGluZyBhIGdhdGV3YXkgdXNpbmcgYW4gSVhQNDI1IGFuZCBMaW51eAorCitodHRwOi8vaXhwNDI1LnNvdXJjZWZvcmdlLm5ldC8KKyAgIEFUTSBkZXZpY2UgZHJpdmVyIGZvciBJWFA0MjUgdGhhdCByZWxpZXMgb24gSW50ZWwncyBsaWJyYXJpZXMKKworMy4gS25vd24gSXNzdWVzL0xpbWl0YXRpb25zCisKKzNhLiBMaW1pdGVkIGluYm91bmQgUENJIHdpbmRvdworCitUaGUgSVhQNHh4IGZhbWlseSBhbGxvd3MgZm9yIHVwIHRvIDI1Nk1CIG9mIG1lbW9yeSBidXQgdGhlIFBDSSBpbnRlcmZhY2UKK2NhbiBvbmx5IGV4cG9zZSA2NE1CIG9mIHRoYXQgbWVtb3J5IHRvIHRoZSBQQ0kgYnVzLiBUaGlzIG1lYW5zIHRoYXQgaWYKK3lvdSBhcmUgcnVubmluZyB3aXRoID4gNjRNQiwgYWxsIFBDSSBidWZmZXJzIG91dHNpZGUgb2YgdGhlIGFjY2Vzc2libGUKK3JhbmdlIHdpbGwgYmUgYm91bmNlZCB1c2luZyB0aGUgcm91dGluZXMgaW4gYXJjaC9hcm0vY29tbW9uL2RtYWJvdW5jZS5jLgorICAgCiszYi4gTGltaXRlZCBvdXRib3VuZCBQQ0kgd2luZG93CisKK0lYUDR4eCBwcm92aWRlcyB0d28gbWV0aG9kcyBvZiBhY2Nlc3NpbmcgUENJIG1lbW9yeSBzcGFjZToKKworMSkgQSBkaXJlY3QgbWFwcGVkIHdpbmRvdyBmcm9tIDB4NDgwMDAwMDAgdG8gMHg0YmZmZmZmZiAoNjRNQikuCisgICBUbyBhY2Nlc3MgUENJIHZpYSB0aGlzIHNwYWNlLCB3ZSBzaW1wbHkgaW9yZW1hcCgpIHRoZSBCQVIKKyAgIGludG8gdGhlIGtlcm5lbCBhbmQgd2UgY2FuIHVzZSB0aGUgc3RhbmRhcmQgcmVhZFtid2xdL3dyaXRlW2J3bF0KKyAgIG1hY3Jvcy4gVGhpcyBpcyB0aGUgcHJlZmZlcmVkIG1ldGhvZCBkdWUgdG8gc3BlZWQgYnV0IGl0CisgICBsaW1pdHMgdGhlIHN5c3RlbSB0byBqdXN0IDY0TUIgb2YgUENJIG1lbW9yeS4gVGhpcyBjYW4gYmUgCisgICBwcm9ibGFtYXRpYyBpZiB1c2luZyB2aWRlbyBjYXJkcyBhbmQgb3RoZXIgbWVtb3J5LWhlYXZ5IGRldmljZXMuCisgICAgICAgICAgCisyKSBJZiA+IDY0TUIgb2YgbWVtb3J5IHNwYWNlIGlzIHJlcXVpcmVkLCB0aGUgSVhQNHh4IGNhbiBiZSAKKyAgIGNvbmZpZ3VyZWQgdG8gdXNlIGluZGlyZWN0IHJlZ2lzdGVycyB0byBhY2Nlc3MgUENJIFRoaXMgYWxsb3dzIAorICAgZm9yIHVwIHRvIDEyOE1CICgweDQ4MDAwMDAwIHRvIDB4NGZmZmZmZmYpIG9mIG1lbW9yeSBvbiB0aGUgYnVzLiAKKyAgIFRoZSBkaXNhZHZhbnRhZGdlIG9mIHRoaXMgaXMgdGhhdCBldmVyeSBQQ0kgYWNjZXNzIHJlcXVpcmVzIAorICAgdGhyZWUgbG9jYWwgcmVnaXN0ZXIgYWNjZXNzZXMgcGx1cyBhIHNwaW5sb2NrLCBidXQgaW4gc29tZSAKKyAgIGNhc2VzIHRoZSBwZXJmb3JtYW5jZSBoaXQgaXMgYWNjZXB0YWJsZS4gSW4gYWRkaXRpb24sIHlvdSBjYW5ub3QgCisgICBtbWFwKCkgUENJIGRldmljZXMgaW4gdGhpcyBjYXNlIGR1ZSB0byB0aGUgaW5kaXJlY3QgbmF0dXJlCisgICBvZiB0aGUgUENJIHdpbmRvdy4KKworQnkgZGVmYXVsdCwgdGhlIGRpcmVjdCBtZXRob2QgaXMgdXNlZCBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucy4gSWYKK3lvdSBuZWVkIG1vcmUgUENJIG1lbW9yeSwgZW5hYmxlIHRoZSBJWFA0WFhfSU5ESVJFQ1RfUENJIGNvbmZpZyBvcHRpb24uCisKKzNjLiBHUElPIGFzIEludGVycnVwdHMKKworQ3VycmVudGx5IHRoZSBjb2RlIG9ubHkgaGFuZGxlcyBsZXZlbC1zZW5zaXRpdmUgR1BJTyBpbnRlcnJ1cHRzIAorCis0LiBTdXBwb3J0ZWQgcGxhdGZvcm1zCisKK0FESSBFbmdpbmVlcmluZyBDb3lvdGUgR2F0ZXdheSBSZWZlcmVuY2UgUGxhdGZvcm0KK2h0dHA6Ly93d3cuYWRpZW5naW5lZXJpbmcuY29tL3Byb2R1Y3RzQ295b3RlLmh0bWwKKworICAgVGhlIEFESSBDb3lvdGUgcGxhdGZvcm0gaXMgcmVmZXJlbmNlIGRlc2lnbiBmb3IgdGhvc2UgYnVpbGRpbmcgCisgICBzbWFsbCByZXNpZGVudGlhbC9vZmZpY2UgZ2F0ZXdheXMuIE9uZSBOUEUgaXMgY29ubmVjdGVkIHRvIGEgMTAvMTAwCisgICBpbnRlcmZhY2UsIG9uZSB0byA0LXBvcnQgMTAvMTAwIHN3aXRjaCwgYW5kIHRoZSB0aGlyZCB0byBhbmQgQURTTAorICAgaW50ZXJmYWNlLiBJbiBhZGRpdGlvbiwgaXQgYWxzbyBzdXBwb3J0cyB0byBQT1RzIGludGVyZmFjZXMgY29ubmVjdGVkCisgICB2aWEgU0xJQ3MuIE5vdGUgdGhhdCB0aG9zZSBhcmUgbm90IHN1cHBvcnRlZCBieSBMaW51eCBBVE0uIEZpbmFsbHksCisgICB0aGUgcGxhdGZvcm0gaGFzIHR3byBtaW5pLVBDSSBzbG90cyB1c2VkIGZvciA4MDIuMTFbYmdhXSBjYXJkcy4KKyAgIEZpbmFsbHksIHRoZXJlIGlzIGFuIElERSBwb3J0IGhhbmdpbmcgb2ZmIHRoZSBleHBhbnNpb24gYnVzLgorCitHYXRld29ya3MgQXZpbGEgTmV0d29yayBQbGF0Zm9ybQoraHR0cDovL3d3dy5nYXRld29ya3MuY29tL2F2aWxhX3NiYy5odG0KKworICAgVGhlIEF2aWxhIHBsYXRmb3JtIGlzIGJhc2ljYWxseSBhbmQgSVhEUDQyNSB3aXRoIHRoZSA0IFBDSSBzbG90cworICAgcmVwbGFjZWQgd2l0aCBtaW5pLVBDSSBzbG90cyBhbmQgYSBDRiBJREUgaW50ZXJmYWNlIGhhbmdpbmcgb2ZmCisgICB0aGUgZXhwYW5zaW9uIGJ1cy4KKworSW50ZWwgSVhEUDQyNSBEZXZlbG9wbWVudCBQbGF0Zm9ybQoraHR0cDovL2RldmVsb3Blci5pbnRlbC5jb20vZGVzaWduL25ldHdvcmsvcHJvZHVjdHMvbnBmYW1pbHkvaXhkcDQyNS5odG0KKworICAgVGhpcyBpcyBJbnRlbCdzIHN0YW5kYXJkIHJlZmVyZW5jZSBwbGF0Zm9ybSBmb3IgdGhlIElYRFA0MjUgYW5kIGlzIAorICAgYWxzbyBrbm93biBhcyB0aGUgUmljaGZpZWxkIGJvYXJkLiBJdCBjb250YWlucyA0IFBDSSBzbG90cywgMTZNQgorICAgb2YgZmxhc2gsIHR3byAxMC8xMDAgcG9ydHMgYW5kIG9uZSBBRFNMIHBvcnQuCisKK0ludGVsIElYRFA0NjUgRGV2ZWxvcG1lbnQgUGxhdGZvcm0KK2h0dHA6Ly9kZXZlbG9wZXIuaW50ZWwuY29tL2Rlc2lnbi9uZXR3b3JrL3Byb2R1Y3RzL25wZmFtaWx5L2l4ZHA0NjUuaHRtCisKKyAgIFRoaXMgaXMgYmFzaWNhbGx5IGFuIElYRFA0MjUgd2l0aCBhbiBJWFA0NjUgYW5kIDMyTSBvZiBmbGFzaCBpbnN0ZWFkCisgICBvZiBqdXN0IDE2LgorCitJbnRlbCBJWERQRzQyNSBEZXZlbG9wbWVudCBQbGF0Zm9ybQorCisgICBUaGlzIGlzIGJhc2ljYWxseSBhbmQgQURJIENveW90ZSBib2FyZCB3aXRoIGEgTkVDIEVIQ0kgY29udHJvbGxlcgorICAgYWRkZWQuIE9uZSBpc3N1ZSB3aXRoIHRoaXMgYm9hcmQgaXMgdGhhdCB0aGUgbWluaS1QQ0kgc2xvdHMgb25seQorICAgaGF2ZSB0aGUgMy4zdiBsaW5lIGNvbm5lY3RlZCwgc28geW91IGNhbid0IHVzZSBhIFBDSSB0byBtaW5pLVBDSQorICAgYWRhcHRlciB3aXRoIGFuIEUxMDAgY2FyZC4gU28gdG8gTkZTIHJvb3QgeW91IG5lZWQgdG8gdXNlIGVpdGhlcgorICAgdGhlIENTUiBvciBhIFdpRmkgY2FyZCBhbmQgYSByYW1kaXNrIHRoYXQgQk9PVFBzIGFuZCB0aGVuIGRvZXMKKyAgIGEgcGl2b3Rfcm9vdCB0byBORlMuCisKK01vdG9yb2xhIFByUE1DMTEwMCBQcm9jZXNzb3IgTWV6YW5pbmUgQ2FyZAoraHR0cDovL3d3dy5mb3VudGFpbnN5cy5jb20vZGF0YXNoZWV0L1ByUE1DMTEwMC5wZGYKKworICAgVGhlIFByUE1DMTEwMCBpcyBiYXNlZCBvbiB0aGUgSVhDUDExMDAgYW5kIGlzIG1lYW50IHRvIHBsdWcgaW50bworICAgYW5kIElYUDI0MDAvMjgwMCBzeXN0ZW0gdG8gYWN0IGFzIHRoZSBzeXN0ZW0gY29udHJvbGxlci4gSXQgc2ltcGx5CisgICBjb250YWlucyBhIENQVSBhbmQgMTZNQiBvZiBmbGFzaCBvbiB0aGUgYm9hcmQgYW5kIG5lZWRzIHRvIGJlCisgICBwbHVnZ2VkIGludG8gYSBjYXJyaWVyIGJvYXJkIHRvIGZ1bmN0aW9uLiBDdXJyZW50bHkgTGludXggb25seQorICAgc3VwcG9ydHMgdGhlIE1vdG9yb2xhIFByUE1DIGNhcnJpZXIgYm9hcmQgZm9yIHRoaXMgcGxhdGZvcm0uCisgICBTZWUgaHR0cHM6Ly9tY2cubW90b3JvbGEuY29tL3VzL2RzL3BkZi9kczAxNDQucGRmIGZvciBpbmZvCisgICBvbiB0aGUgY2FycmllciBib2FyZC4KKworNS4gVE9ETyBMSVNUCisKKy0gQWRkIHN1cHBvcnQgZm9yIENveW90ZSBJREUKKy0gQWRkIHN1cHBvcnQgZm9yIGVkZ2UtYmFzZWQgR1BJTyBpbnRlcnJ1cHRzCistIEFkZCBzdXBwb3J0IGZvciBDRiBJREUgb24gZXhwYW5zaW9uIGJ1cworCis2LiBUaGFua3MKKworVGhlIElYUDR4eCB3b3JrIGhhcyBiZWVuIGZ1bmRlZCBieSBJbnRlbCBDb3JwLiBhbmQgTW9udGFWaXN0YSBTb2Z0d2FyZSwgSW5jLgorCitUaGUgZm9sbG93aW5nIHBlb3BsZSBoYXZlIGNvbnRyaWJ1dGVkIHBhdGNoZXMvY29tbWVudHMvZXRjOgorCitMZW5uZXJ0eSBCdXl0ZW5oZWsKK0x1dHogSmFlbmlja2UKK0p1c3RpbiBNYXlmaWVsZAorUm9iZXJ0IEUuIFJhbnNsYW0KK1tJIGtub3cgSSd2ZSBmb3Jnb3R0ZW4gb3RoZXJzLCBwbGVhc2UgZW1haWwgbWUgdG8gYmUgYWRkZWRdIAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0xhc3QgVXBkYXRlOiAwMS8wNC8yMDA1CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2FybS9JbnRlcnJ1cHRzIGIvRG9jdW1lbnRhdGlvbi9hcm0vSW50ZXJydXB0cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MmM5M2RlCi0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9hcm0vSW50ZXJydXB0cwpAQCAtMCwwICsxLDE3MyBAQAorMi41LjItcm1rNQorLS0tLS0tLS0tLQorCitUaGlzIGlzIHRoZSBmaXJzdCBrZXJuZWwgdGhhdCBjb250YWlucyBhIG1ham9yIHNoYWtlIHVwIG9mIHNvbWUgb2YgdGhlCittYWpvciBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgc3Vic3lzdGVtcy4KKworRmlyc3RseSwgaXQgY29udGFpbnMgc29tZSBwcmV0dHkgbWFqb3IgY2hhbmdlcyB0byB0aGUgd2F5IHdlIGhhbmRsZSB0aGUKK01NVSBUTEIuICBFYWNoIE1NVSBUTEIgdmFyaWFudCBpcyBub3cgaGFuZGxlZCBjb21wbGV0ZWx5IHNlcGFyYXRlbHkgLQord2UgaGF2ZSBUTEIgdjMsIFRMQiB2NCAod2l0aG91dCB3cml0ZSBidWZmZXIpLCBUTEIgdjQgKHdpdGggd3JpdGUgYnVmZmVyKSwKK2FuZCBmaW5hbGx5IFRMQiB2NCAod2l0aCB3cml0ZSBidWZmZXIsIHdpdGggSSBUTEIgaW52YWxpZGF0ZSBlbnRyeSkuCitUaGVyZSBpcyBtb3JlIGFzc2VtYmx5IGNvZGUgaW5zaWRlIGVhY2ggb2YgdGhlc2UgZnVuY3Rpb25zLCBtYWlubHkgdG8KK2FsbG93IG1vcmUgZmxleGlibGUgVExCIGhhbmRsaW5nIGZvciB0aGUgZnV0dXJlLgorCitTZWNvbmRseSwgdGhlIElSUSBzdWJzeXN0ZW0uCisKK1RoZSAyLjUga2VybmVscyB3aWxsIGJlIGhhdmluZyBtYWpvciBjaGFuZ2VzIHRvIHRoZSB3YXkgSVJRcyBhcmUgaGFuZGxlZC4KK1VuZm9ydHVuYXRlbHksIHRoaXMgbWVhbnMgdGhhdCBtYWNoaW5lIHR5cGVzIHRoYXQgdG91Y2ggdGhlIGlycV9kZXNjW10KK2FycmF5IChiYXNpY2FsbHkgYWxsIG1hY2hpbmUgdHlwZXMpIHdpbGwgYnJlYWssIGFuZCB0aGlzIG1lYW5zIGV2ZXJ5CittYWNoaW5lIHR5cGUgdGhhdCB3ZSBjdXJyZW50bHkgaGF2ZS4KKworTGV0cyB0YWtlIGFuIGV4YW1wbGUuICBPbiB0aGUgQXNzYWJldCB3aXRoIE5lcG9uc2V0LCB3ZSBoYXZlOgorCisgICAgICAgICAgICAgICAgICBHUElPMjUgICAgICAgICAgICAgICAgIElSUjoyCisgICAgICAgIFNBMTEwMCAtLS0tLS0tLS0tLS0+IE5lcG9uc2V0IC0tLS0tLS0tLS0tPiBTQTExMTEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSUlSOjEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tLS0tLS0tLS0+IFVTQVIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSUlSOjAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tLS0tLS0tLS0+IFNNQzkxOTYKKworVGhlIHdheSBzdHVmZiBjdXJyZW50bHkgd29ya3MsIGFsbCBTQTExMTEgaW50ZXJydXB0cyBhcmUgbXV0dWFsbHkKK2V4Y2x1c2l2ZSBvZiBlYWNoIG90aGVyIC0gaWYgeW91J3JlIHByb2Nlc3Npbmcgb25lIGludGVycnVwdCBmcm9tIHRoZQorU0ExMTExIGFuZCBhbm90aGVyIGNvbWVzIGluLCB5b3UgaGF2ZSB0byB3YWl0IGZvciB0aGF0IGludGVycnVwdCB0bworZmluaXNoIHByb2Nlc3NpbmcgYmVmb3JlIHlvdSBjYW4gc2VydmljZSB0aGUgbmV3IGludGVycnVwdC4gIEVnLCBhbgorSURFIFBJTy1iYXNlZCBpbnRlcnJ1cHQgb24gdGhlIFNBMTExMSBleGNsdWRlcyBhbGwgb3RoZXIgU0ExMTExIGFuZAorU01DOTE5NiBpbnRlcnJ1cHRzIHVudGlsIGl0IGhhcyBmaW5pc2hlZCB0cmFuc2ZlcnJpbmcgaXRzIG11bHRpLXNlY3RvcgorZGF0YSwgd2hpY2ggY2FuIGJlIGEgbG9uZyB0aW1lLiAgTm90ZSBhbHNvIHRoYXQgc2luY2Ugd2UgbG9vcCBpbiB0aGUKK1NBMTExMSBJUlEgaGFuZGxlciwgU0ExMTExIElSUXMgY2FuIGhvbGQgb2ZmIFNNQzkxOTYgSVJRcyBpbmRlZmluaXRlbHkuCisKKworVGhlIG5ldyBhcHByb2FjaCBicmluZ3Mgc2V2ZXJhbCBuZXcgaWRlYXMuLi4KKworV2UgaW50cm9kdWNlIHRoZSBjb25jZXB0IG9mIGEgInBhcmVudCIgYW5kIGEgImNoaWxkIi4gIEZvciBleGFtcGxlLAordG8gdGhlIE5lcG9uc2V0IGhhbmRsZXIsIHRoZSAicGFyZW50IiBpcyBHUElPMjUsIGFuZCB0aGUgImNoaWxkcmVuImQKK2FyZSBTQTExMTEsIFNNQzkxOTYgYW5kIFVTQVIuCisKK1dlIGFsc28gYnJpbmcgdGhlIGlkZWEgb2YgYW4gSVJRICJjaGlwIiAobWFpbmx5IHRvIHJlZHVjZSB0aGUgc2l6ZSBvZgordGhlIGlycWRlc2MgYXJyYXkpLiAgVGhpcyBkb2Vzbid0IGhhdmUgdG8gYmUgYSByZWFsICJJQyI7IGluZGVlZCB0aGUKK1NBMTF4MCBJUlFzIGFyZSBoYW5kbGVkIGJ5IHR3byBzZXBhcmF0ZSAiY2hpcCIgc3RydWN0dXJlcywgb25lIGZvcgorR1BJTzAtMTAsIGFuZCBhbm90aGVyIGZvciBhbGwgdGhlIHJlc3QuICBJdCBpcyBqdXN0IGEgY29udGFpbmVyIGZvcgordGhlIHZhcmlvdXMgb3BlcmF0aW9ucyAobWF5YmUgdGhpcydsbCBjaGFuZ2UgdG8gYSBiZXR0ZXIgbmFtZSkuCitUaGlzIHN0cnVjdHVyZSBoYXMgdGhlIGZvbGxvd2luZyBvcGVyYXRpb25zOgorCitzdHJ1Y3QgaXJxY2hpcCB7CisgICAgICAgIC8qCisgICAgICAgICAqIEFja25vd2xlZGdlIHRoZSBJUlEuCisgICAgICAgICAqIElmIHRoaXMgaXMgYSBsZXZlbC1iYXNlZCBJUlEsIHRoZW4gaXQgaXMgZXhwZWN0ZWQgdG8gbWFzayB0aGUgSVJRCisgICAgICAgICAqIGFzIHdlbGwuCisgICAgICAgICAqLworICAgICAgICB2b2lkICgqYWNrKSh1bnNpZ25lZCBpbnQgaXJxKTsKKyAgICAgICAgLyoKKyAgICAgICAgICogTWFzayB0aGUgSVJRIGluIGhhcmR3YXJlLgorICAgICAgICAgKi8KKyAgICAgICAgdm9pZCAoKm1hc2spKHVuc2lnbmVkIGludCBpcnEpOworICAgICAgICAvKgorICAgICAgICAgKiBVbm1hc2sgdGhlIElSUSBpbiBoYXJkd2FyZS4KKyAgICAgICAgICovCisgICAgICAgIHZvaWQgKCp1bm1hc2spKHVuc2lnbmVkIGludCBpcnEpOworICAgICAgICAvKgorICAgICAgICAgKiBSZS1ydW4gdGhlIElSUQorICAgICAgICAgKi8KKyAgICAgICAgdm9pZCAoKnJlcnVuKSh1bnNpZ25lZCBpbnQgaXJxKTsKKyAgICAgICAgLyoKKyAgICAgICAgICogU2V0IHRoZSB0eXBlIG9mIHRoZSBJUlEuCisgICAgICAgICAqLworICAgICAgICBpbnQgKCp0eXBlKSh1bnNpZ25lZCBpbnQgaXJxLCB1bnNpZ25lZCBpbnQsIHR5cGUpOworfTsKKworYWNrICAgIC0gcmVxdWlyZWQuICBNYXkgYmUgdGhlIHNhbWUgZnVuY3Rpb24gYXMgbWFzayBmb3IgSVJRcworICAgICAgICAgaGFuZGxlZCBieSBkb19sZXZlbF9JUlEuCittYXNrICAgLSByZXF1aXJlZC4KK3VubWFzayAtIHJlcXVpcmVkLgorcmVydW4gIC0gb3B0aW9uYWwuICBOb3QgcmVxdWlyZWQgaWYgeW91J3JlIHVzaW5nIGRvX2xldmVsX0lSUSBmb3IgYWxsCisgICAgICAgICBJUlFzIHRoYXQgdXNlIHRoaXMgJ2lycWNoaXAnLiAgR2VuZXJhbGx5IGV4cGVjdGVkIHRvIHJlLXRyaWdnZXIKKyAgICAgICAgIHRoZSBoYXJkd2FyZSBJUlEgaWYgcG9zc2libGUuICBJZiBub3QsIG1heSBjYWxsIHRoZSBoYW5kbGVyCisJIGRpcmVjdGx5LgordHlwZSAgIC0gb3B0aW9uYWwuICBJZiB5b3UgZG9uJ3Qgc3VwcG9ydCBjaGFuZ2luZyB0aGUgdHlwZSBvZiBhbiBJUlEsCisgICAgICAgICBpdCBzaG91bGQgYmUgbnVsbCBzbyBwZW9wbGUgY2FuIGRldGVjdCBpZiB0aGV5IGFyZSB1bmFibGUgdG8KKyAgICAgICAgIHNldCB0aGUgSVJRIHR5cGUuCisKK0ZvciBlYWNoIElSUSwgd2Uga2VlcCB0aGUgZm9sbG93aW5nIGluZm9ybWF0aW9uOgorCisgICAgICAgIC0gImRpc2FibGUiIGRlcHRoIChudW1iZXIgb2YgZGlzYWJsZV9pcnEoKXMgd2l0aG91dCBlbmFibGVfaXJxKClzKQorICAgICAgICAtIGZsYWdzIGluZGljYXRpbmcgd2hhdCB3ZSBjYW4gZG8gd2l0aCB0aGlzIElSUSAodmFsaWQsIHByb2JlLAorICAgICAgICAgIG5vYXV0b3VubWFzaykgYXMgYmVmb3JlCisgICAgICAgIC0gc3RhdHVzIG9mIHRoZSBJUlEgKHByb2JpbmcsIGVuYWJsZSwgZXRjKQorICAgICAgICAtIGNoaXAKKyAgICAgICAgLSBwZXItSVJRIGhhbmRsZXIKKyAgICAgICAgLSBpcnFhY3Rpb24gc3RydWN0dXJlIGxpc3QKKworVGhlIGhhbmRsZXIgY2FuIGJlIG9uZSBvZiB0aGUgMyBzdGFuZGFyZCBoYW5kbGVycyAtICJsZXZlbCIsICJlZGdlIiBhbmQKKyJzaW1wbGUiLCBvciB5b3VyIG93biBzcGVjaWZpYyBoYW5kbGVyIGlmIHlvdSBuZWVkIHRvIGRvIHNvbWV0aGluZyBzcGVjaWFsLgorCitUaGUgImxldmVsIiBoYW5kbGVyIGlzIHdoYXQgd2UgY3VycmVudGx5IGhhdmUgLSBpdHMgcHJldHR5IHNpbXBsZS4KKyJlZGdlIiBrbm93cyBhYm91dCB0aGUgYnJva2VubmVzcyBvZiBzdWNoIElSUSBpbXBsZW1lbnRhdGlvbnMgLSB0aGF0IHlvdQorbmVlZCB0byBsZWF2ZSB0aGUgaGFyZHdhcmUgSVJRIGVuYWJsZWQgd2hpbGUgcHJvY2Vzc2luZyBpdCwgYW5kIHF1ZXVlaW5nCitmdXJ0aGVyIElSUSBldmVudHMgc2hvdWxkIHRoZSBJUlEgaGFwcGVuIGFnYWluIHdoaWxlIHByb2Nlc3NpbmcuICBUaGUKKyJzaW1wbGUiIGhhbmRsZXIgaXMgdmVyeSBiYXNpYywgYW5kIGRvZXMgbm90IHBlcmZvcm0gYW55IGhhcmR3YXJlCittYW5pcHVsYXRpb24sIG5vciBzdGF0ZSB0cmFja2luZy4gIFRoaXMgaXMgdXNlZnVsIGZvciB0aGluZ3MgbGlrZSB0aGUKK1NNQzkxOTYgYW5kIFVTQVIgYWJvdmUuCisKK1NvLCB3aGF0J3MgY2hhbmdlZD8KKworMS4gTWFjaGluZSBpbXBsZW1lbnRhdGlvbnMgbXVzdCBub3Qgd3JpdGUgdG8gdGhlIGlycWRlc2MgYXJyYXkuCisKKzIuIE5ldyBmdW5jdGlvbnMgdG8gbWFuaXB1bGF0ZSB0aGUgaXJxZGVzYyBhcnJheS4gIFRoZSBmaXJzdCA0IGFyZSBleHBlY3RlZAorICAgdG8gYmUgdXNlZnVsIG9ubHkgdG8gbWFjaGluZSBzcGVjaWZpYyBjb2RlLiAgVGhlIGxhc3QgaXMgcmVjb21tZW5kZWQgdG8KKyAgIG9ubHkgYmUgdXNlZCBieSBtYWNoaW5lIHNwZWNpZmljIGNvZGUsIGJ1dCBtYXkgYmUgdXNlZCBpbiBkcml2ZXJzIGlmCisgICBhYnNvbHV0ZWx5IG5lY2Vzc2FyeS4KKworICAgICAgICBzZXRfaXJxX2NoaXAoaXJxLGNoaXApCisKKyAgICAgICAgICAgICAgICBTZXQgdGhlIG1hc2svdW5tYXNrIG1ldGhvZHMgZm9yIGhhbmRsaW5nIHRoaXMgSVJRCisKKyAgICAgICAgc2V0X2lycV9oYW5kbGVyKGlycSxoYW5kbGVyKQorCisgICAgICAgICAgICAgICAgU2V0IHRoZSBoYW5kbGVyIGZvciB0aGlzIElSUSAobGV2ZWwsIGVkZ2UsIHNpbXBsZSkKKworICAgICAgICBzZXRfaXJxX2NoYWluZWRfaGFuZGxlcihpcnEsaGFuZGxlcikKKworICAgICAgICAgICAgICAgIFNldCBhICJjaGFpbmVkIiBoYW5kbGVyIGZvciB0aGlzIElSUSAtIGF1dG9tYXRpY2FsbHkKKyAgICAgICAgICAgICAgICBlbmFibGVzIHRoaXMgSVJRIChlZywgTmVwb25zZXQgYW5kIFNBMTExMSBoYW5kbGVycykuCisKKyAgICAgICAgc2V0X2lycV9mbGFncyhpcnEsZmxhZ3MpCisKKyAgICAgICAgICAgICAgICBTZXQgdGhlIHZhbGlkL3Byb2JlL25vYXV0b2VuYWJsZSBmbGFncy4KKworICAgICAgICBzZXRfaXJxX3R5cGUoaXJxLHR5cGUpCisKKyAgICAgICAgICAgICAgICBTZXQgYWN0aXZlIHRoZSBJUlEgZWRnZShzKS9sZXZlbC4gIFRoaXMgcmVwbGFjZXMgdGhlCisgICAgICAgICAgICAgICAgU0ExMTExIElOVFBPTCBtYW5pcHVsYXRpb24sIGFuZCB0aGUgc2V0X0dQSU9fSVJRX2VkZ2UoKQorICAgICAgICAgICAgICAgIGZ1bmN0aW9uLiAgVHlwZSBzaG91bGQgYmUgb25lIG9mIHRoZSBmb2xsb3dpbmc6CisKKyAgICAgICAgICAgICAgICAjZGVmaW5lIElSUVRfTk9FREdFICAgICAoMCkKKyAgICAgICAgICAgICAgICAjZGVmaW5lIElSUVRfUklTSU5HICAgICAoX19JUlFUX1JJU0VER0UpCisgICAgICAgICAgICAgICAgI2RlZmluZSBJUlFUX0ZBTExJTkcgICAgKF9fSVJRVF9GQUxFREdFKQorICAgICAgICAgICAgICAgICNkZWZpbmUgSVJRVF9CT1RIRURHRSAgIChfX0lSUVRfUklTRURHRXxfX0lSUVRfRkFMRURHRSkKKyAgICAgICAgICAgICAgICAjZGVmaW5lIElSUVRfTE9XICAgICAgICAoX19JUlFUX0xPV0xWTCkKKyAgICAgICAgICAgICAgICAjZGVmaW5lIElSUVRfSElHSCAgICAgICAoX19JUlFUX0hJR0hMVkwpCisKKzMuIHNldF9HUElPX0lSUV9lZGdlKCkgaXMgb2Jzb2xldGUsIGFuZCBzaG91bGQgYmUgcmVwbGFjZWQgYnkgc2V0X2lycV90eXBlLgorCis0LiBEaXJlY3QgYWNjZXNzIHRvIFNBMTExMSBJTlRQT0wgaXMgZGVwcmVjaWF0ZWQuICBVc2Ugc2V0X2lycV90eXBlIGluc3RlYWQuCisKKzUuIEEgaGFuZGxlciBpcyBleHBlY3RlZCB0byBwZXJmb3JtIGFueSBuZWNlc3NhcnkgYWNrbm93bGVkZ2VtZW50IG9mIHRoZQorICAgcGFyZW50IElSUSB2aWEgdGhlIGNvcnJlY3QgY2hpcCBzcGVjaWZpYyBmdW5jdGlvbi4gIEZvciBpbnN0YW5jZSwgaWYKKyAgIHRoZSBTQTExMTEgaXMgZGlyZWN0bHkgY29ubmVjdGVkIHRvIGEgU0ExMTEwIEdQSU8sIHRoZW4geW91IHNob3VsZAorICAgYWNrbm93bGVkZ2UgdGhlIFNBMTExMCBJUlEgZWFjaCB0aW1lIHlvdSByZS1yZWFkIHRoZSBTQTExMTEgSVJRIHN0YXR1cy4KKworNi4gRm9yIGFueSBjaGlsZCB3aGljaCBkb2Vzbid0IGhhdmUgaXRzIG93biBJUlEgZW5hYmxlL2Rpc2FibGUgY29udHJvbHMKKyAgIChlZywgU01DOTE5NiksIHRoZSBoYW5kbGVyIG11c3QgbWFzayBvciBhY2tub3dsZWRnZSB0aGUgcGFyZW50IElSUQorICAgd2hpbGUgdGhlIGNoaWxkIGhhbmRsZXIgaXMgY2FsbGVkLCBhbmQgdGhlIGNoaWxkIGhhbmRsZXIgc2hvdWxkIGJlIHRoZQorICAgInNpbXBsZSIgaGFuZGxlciAobm90ICJlZGdlIiBub3IgImxldmVsIikuICBBZnRlciB0aGUgaGFuZGxlciBjb21wbGV0ZXMsCisgICB0aGUgcGFyZW50IElSUSBzaG91bGQgYmUgdW5tYXNrZWQsIGFuZCB0aGUgc3RhdHVzIG9mIGFsbCBjaGlsZHJlbiBtdXN0CisgICBiZSByZS1jaGVja2VkIGZvciBwZW5kaW5nIGV2ZW50cy4gIChzZWUgdGhlIE5lcG9uc2V0IElSUSBoYW5kbGVyIGZvcgorICAgZGV0YWlscykuCisKKzcuIGZpeHVwX2lycSgpIGlzIGdvbmUsIGFzIGlzIGluY2x1ZGUvYXNtLWFybS9hcmNoLSovaXJxLmgKKworUGxlYXNlIG5vdGUgdGhhdCB0aGlzIHdpbGwgbm90IHNvbHZlIGFsbCBwcm9ibGVtcyAtIHNvbWUgb2YgdGhlbSBhcmUKK2hhcmR3YXJlIGJhc2VkLiAgTWl4aW5nIGxldmVsLWJhc2VkIGFuZCBlZGdlLWJhc2VkIElSUXMgb24gdGhlIHNhbWUKK3BhcmVudCBzaWduYWwgKGVnIG5lcG9uc2V0KSBpcyBvbmUgc3VjaCBhcmVhIHdoZXJlIGEgc29mdHdhcmUgYmFzZWQKK3NvbHV0aW9uIGNhbid0IHByb3ZpZGUgdGhlIGZ1bGwgYW5zd2VyIHRvIGxvdyBJUlEgbGF0ZW5jeS4KKwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9hcm0vTmV0d2luZGVyIGIvRG9jdW1lbnRhdGlvbi9hcm0vTmV0d2luZGVyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYxYjQ1N2YKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL2FybS9OZXR3aW5kZXIKQEAgLTAsMCArMSw3OCBAQAorTmV0V2luZGVyIHNwZWNpZmljIGRvY3VtZW50YXRpb24KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK1RoZSBOZXRXaW5kZXIgaXMgYSBzbWFsbCBsb3ctcG93ZXIgY29tcHV0ZXIsIHByaW1hcmlseSBkZXNpZ25lZAordG8gcnVuIExpbnV4LiAgSXQgaXMgYmFzZWQgYXJvdW5kIHRoZSBTdHJvbmdBUk0gUklTQyBwcm9jZXNzb3IsCitEQzIxMjg1IFBDSSBicmlkZ2UsIHdpdGggUEMtdHlwZSBoYXJkd2FyZSBnbHVlZCBhcm91bmQgaXQuCisKK1BvcnQgdXNhZ2UKKz09PT09PT09PT0KKworTWluICAgIC0gTWF4CURlc2NyaXB0aW9uCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzB4MDAwMCAtIDB4MDAwZglETUExCisweDAwMjAgLSAweDAwMjEJUElDMQorMHgwMDYwIC0gMHgwMDZmCUtleWJvYXJkCisweDAwNzAgLSAweDAwN2YJUlRDCisweDAwODAgLSAweDAwODcJRE1BMQorMHgwMDg4IC0gMHgwMDhmCURNQTIKKzB4MDBhMCAtIDB4MDBhMwlQSUMyCisweDAwYzAgLSAweDAwZGYJRE1BMgorMHgwMTgwIC0gMHgwMTg3CUlSREEKKzB4MDFmMCAtIDB4MDFmNglpZGUwCisweDAyMDEJCUdhbWUgcG9ydAorMHgwMjAzCQlSV0EwMTAgY29uZmlndXJhdGlvbiByZWFkCisweDAyMjAgLSA/CVNvdW5kQmxhc3RlcgorMHgwMjUwIC0gPwlXYXZlQXJ0aXN0CisweDAyNzkJCVJXQTAxMCBjb25maWd1cmF0aW9uIGluZGV4CisweDAyZjggLSAweDAyZmYJU2VyaWFsIHR0eVMxCisweDAzMDAgLSAweDAzMWYJRXRoZXIxMAorMHgwMzM4CQlHUElPMQorMHgwMzNhCQlHUElPMgorMHgwMzcwIC0gMHgwMzcxCVc4Mzk3N0YgY29uZmlndXJhdGlvbiByZWdpc3RlcnMKKzB4MDM4OCAtID8JQWRMaWIKKzB4MDNjMCAtIDB4MDNkZglWR0EKKzB4MDNmNgkJaWRlMAorMHgwM2Y4IC0gMHgwM2ZmCVNlcmlhbCB0dHlTMAorMHgwNDAwIC0gMHgwNDA4CURDMjExNDMKKzB4MDQ4MCAtIDB4MDQ4NwlETUExCisweDA0ODggLSAweDA0OGYJRE1BMgorMHgwYTc5CQlSV0EwMTAgY29uZmlndXJhdGlvbiB3cml0ZQorMHhlODAwIC0gMHhlODBmCWlkZTAvaWRlMSBCTSBETUEKKworCitJbnRlcnJ1cHQgdXNhZ2UKKz09PT09PT09PT09PT09PQorCitJUlEJdHlwZQlEZXNjcmlwdGlvbgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgMAlJU0EJMTAwSHogdGltZXIKKyAxCUlTQQlLZXlib2FyZAorIDIJSVNBCWNhc2NhZGUKKyAzCUlTQQlTZXJpYWwgdHR5UzEKKyA0CUlTQQlTZXJpYWwgdHR5UzAKKyA1CUlTQQlQUy8yIG1vdXNlCisgNglJU0EJSVJEQQorIDcJSVNBCVByaW50ZXIKKyA4CUlTQQlSVEMgYWxhcm0KKyA5CUlTQQorMTAJSVNBCUdQMTAgKE9yYW5nZSByZXNldCBidXR0b24pCisxMQlJU0EKKzEyCUlTQQlXYXZlQXJ0aXN0CisxMwlJU0EKKzE0CUlTQQloZGExCisxNQlJU0EKKworRE1BIHVzYWdlCis9PT09PT09PT0KKworRE1BCXR5cGUJRGVzY3JpcHRpb24KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDAJSVNBCUlSREEKKyAxCUlTQQorIDIJSVNBCWNhc2NhZGUKKyAzCUlTQQlXYXZlQXJ0aXN0CisgNAlJU0EKKyA1CUlTQQorIDYJSVNBCisgNwlJU0EJV2F2ZUFydGlzdApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9hcm0vUG9ydGluZyBiL0RvY3VtZW50YXRpb24vYXJtL1BvcnRpbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTQ5MjIzMwotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vYXJtL1BvcnRpbmcKQEAgLTAsMCArMSwxMzUgQEAKK1Rha2VuIGZyb20gbGlzdCBhcmNoaXZlIGF0IGh0dHA6Ly9saXN0cy5hcm0ubGludXgub3JnLnVrL3BpcGVybWFpbC9saW51eC1hcm0ta2VybmVsLzIwMDEtSnVseS8wMDQwNjQuaHRtbAorCitJbml0aWFsIGRlZmluaXRpb25zCistLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RoZSBmb2xsb3dpbmcgc3ltYm9sIGRlZmluaXRpb25zIHJlbHkgb24geW91IGtub3dpbmcgdGhlIHRyYW5zbGF0aW9uIHRoYXQKK19fdmlydF90b19waHlzKCkgZG9lcyBmb3IgeW91ciBtYWNoaW5lLiAgVGhpcyBtYWNybyBjb252ZXJ0cyB0aGUgcGFzc2VkCit2aXJ0dWFsIGFkZHJlc3MgdG8gYSBwaHlzaWNhbCBhZGRyZXNzLiAgTm9ybWFsbHksIGl0IGlzIHNpbXBseToKKworCQlwaHlzID0gdmlydCAtIFBBR0VfT0ZGU0VUICsgUEhZU19PRkZTRVQKKworCitEZWNvbXByZXNzb3IgU3ltYm9scworLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworWlRFWFRBRERSCisJU3RhcnQgYWRkcmVzcyBvZiBkZWNvbXByZXNzb3IuICBUaGVyZSdzIG5vIHBvaW50IGluIHRhbGtpbmcgYWJvdXQKKwl2aXJ0dWFsIG9yIHBoeXNpY2FsIGFkZHJlc3NlcyBoZXJlLCBzaW5jZSB0aGUgTU1VIHdpbGwgYmUgb2ZmIGF0CisJdGhlIHRpbWUgd2hlbiB5b3UgY2FsbCB0aGUgZGVjb21wcmVzc29yIGNvZGUuICBZb3Ugbm9ybWFsbHkgY2FsbAorCXRoZSBrZXJuZWwgYXQgdGhpcyBhZGRyZXNzIHRvIHN0YXJ0IGl0IGJvb3RpbmcuICBUaGlzIGRvZXNuJ3QgaGF2ZQorCXRvIGJlIGxvY2F0ZWQgaW4gUkFNLCBpdCBjYW4gYmUgaW4gZmxhc2ggb3Igb3RoZXIgcmVhZC1vbmx5IG9yCisJcmVhZC13cml0ZSBhZGRyZXNzYWJsZSBtZWRpdW0uCisKK1pCU1NBRERSCisJU3RhcnQgYWRkcmVzcyBvZiB6ZXJvLWluaXRpYWxpc2VkIHdvcmsgYXJlYSBmb3IgdGhlIGRlY29tcHJlc3Nvci4KKwlUaGlzIG11c3QgYmUgcG9pbnRpbmcgYXQgUkFNLiAgVGhlIGRlY29tcHJlc3NvciB3aWxsIHplcm8gaW5pdGlhbGlzZQorCXRoaXMgZm9yIHlvdS4gIEFnYWluLCB0aGUgTU1VIHdpbGwgYmUgb2ZmLgorCitaUkVMQUREUgorCVRoaXMgaXMgdGhlIGFkZHJlc3Mgd2hlcmUgdGhlIGRlY29tcHJlc3NlZCBrZXJuZWwgd2lsbCBiZSB3cml0dGVuLAorCWFuZCBldmVudHVhbGx5IGV4ZWN1dGVkLiAgVGhlIGZvbGxvd2luZyBjb25zdHJhaW50IG11c3QgYmUgdmFsaWQ6CisKKwkJX192aXJ0X3RvX3BoeXMoVEVYVEFERFIpID09IFpSRUxBRERSCisKKwlUaGUgaW5pdGlhbCBwYXJ0IG9mIHRoZSBrZXJuZWwgaXMgY2FyZWZ1bGx5IGNvZGVkIHRvIGJlIHBvc2l0aW9uCisJaW5kZXBlbmRlbnQuCisKK0lOSVRSRF9QSFlTCisJUGh5c2ljYWwgYWRkcmVzcyB0byBwbGFjZSB0aGUgaW5pdGlhbCBSQU0gZGlzay4gIE9ubHkgcmVsZXZhbnQgaWYKKwl5b3UgYXJlIHVzaW5nIHRoZSBib290cEltYWdlIHN0dWZmICh3aGljaCBvbmx5IHdvcmtzIG9uIHRoZSBvbGQKKwlzdHJ1Y3QgcGFyYW1fc3RydWN0KS4KKworSU5JVFJEX1ZJUlQKKwlWaXJ0dWFsIGFkZHJlc3Mgb2YgdGhlIGluaXRpYWwgUkFNIGRpc2suICBUaGUgZm9sbG93aW5nICBjb25zdHJhaW50CisJbXVzdCBiZSB2YWxpZDoKKworCQlfX3ZpcnRfdG9fcGh5cyhJTklUUkRfVklSVCkgPT0gSU5JVFJEX1BIWVMKKworUEFSQU1TX1BIWVMKKwlQaHlzaWNhbCBhZGRyZXNzIG9mIHRoZSBzdHJ1Y3QgcGFyYW1fc3RydWN0IG9yIHRhZyBsaXN0LCBnaXZpbmcgdGhlCisJa2VybmVsIHZhcmlvdXMgcGFyYW1ldGVycyBhYm91dCBpdHMgZXhlY3V0aW9uIGVudmlyb25tZW50LgorCisKK0tlcm5lbCBTeW1ib2xzCistLS0tLS0tLS0tLS0tLQorCitQSFlTX09GRlNFVAorCVBoeXNpY2FsIHN0YXJ0IGFkZHJlc3Mgb2YgdGhlIGZpcnN0IGJhbmsgb2YgUkFNLgorCitQQUdFX09GRlNFVAorCVZpcnR1YWwgc3RhcnQgYWRkcmVzcyBvZiB0aGUgZmlyc3QgYmFuayBvZiBSQU0uICBEdXJpbmcgdGhlIGtlcm5lbAorCWJvb3QgcGhhc2UsIHZpcnR1YWwgYWRkcmVzcyBQQUdFX09GRlNFVCB3aWxsIGJlIG1hcHBlZCB0byBwaHlzaWNhbAorCWFkZHJlc3MgUEhZU19PRkZTRVQsIGFsb25nIHdpdGggYW55IG90aGVyIG1hcHBpbmdzIHlvdSBzdXBwbHkuCisJVGhpcyBzaG91bGQgYmUgdGhlIHNhbWUgdmFsdWUgYXMgVEFTS19TSVpFLgorCitUQVNLX1NJWkUKKwlUaGUgbWF4aW11bSBzaXplIG9mIGEgdXNlciBwcm9jZXNzIGluIGJ5dGVzLiAgU2luY2UgdXNlciBzcGFjZQorCWFsd2F5cyBzdGFydHMgYXQgemVybywgdGhpcyBpcyB0aGUgbWF4aW11bSBhZGRyZXNzIHRoYXQgYSB1c2VyCisJcHJvY2VzcyBjYW4gYWNjZXNzKzEuICBUaGUgdXNlciBzcGFjZSBzdGFjayBncm93cyBkb3duIGZyb20gdGhpcworCWFkZHJlc3MuCisKKwlBbnkgdmlydHVhbCBhZGRyZXNzIGJlbG93IFRBU0tfU0laRSBpcyBkZWVtZWQgdG8gYmUgdXNlciBwcm9jZXNzCisJYXJlYSwgYW5kIHRoZXJlZm9yZSBtYW5hZ2VkIGR5bmFtaWNhbGx5IG9uIGEgcHJvY2VzcyBieSBwcm9jZXNzCisJYmFzaXMgYnkgdGhlIGtlcm5lbC4gIEknbGwgY2FsbCB0aGlzIHRoZSB1c2VyIHNlZ21lbnQuCisKKwlBbnl0aGluZyBhYm92ZSBUQVNLX1NJWkUgaXMgY29tbW9uIHRvIGFsbCBwcm9jZXNzZXMuICBJJ2xsIGNhbGwKKwl0aGlzIHRoZSBrZXJuZWwgc2VnbWVudC4KKworCShJbiBvdGhlciB3b3JkcywgeW91IGNhbid0IHB1dCBJTyBtYXBwaW5ncyBiZWxvdyBUQVNLX1NJWkUsIGFuZAorCWhlbmNlIFBBR0VfT0ZGU0VUKS4KKworVEVYVEFERFIKKwlWaXJ0dWFsIHN0YXJ0IGFkZHJlc3Mgb2Yga2VybmVsLCBub3JtYWxseSBQQUdFX09GRlNFVCArIDB4ODAwMC4KKwlUaGlzIGlzIHdoZXJlIHRoZSBrZXJuZWwgaW1hZ2UgZW5kcyB1cC4gIFdpdGggdGhlIGxhdGVzdCBrZXJuZWxzLAorCWl0IG11c3QgYmUgbG9jYXRlZCBhdCAzMjc2OCBieXRlcyBpbnRvIGEgMTI4TUIgcmVnaW9uLiAgUHJldmlvdXMKKwlrZXJuZWxzIHBsYWNlZCBhIHJlc3RyaWN0aW9uIG9mIDI1Nk1CIGhlcmUuCisKK0RBVEFBRERSCisJVmlydHVhbCBhZGRyZXNzIGZvciB0aGUga2VybmVsIGRhdGEgc2VnbWVudC4gIE11c3Qgbm90IGJlIGRlZmluZWQKKwl3aGVuIHVzaW5nIHRoZSBkZWNvbXByZXNzb3IuCisKK1ZNQUxMT0NfU1RBUlQKK1ZNQUxMT0NfRU5ECisJVmlydHVhbCBhZGRyZXNzZXMgYm91bmRpbmcgdGhlIHZtYWxsb2MoKSBhcmVhLiAgVGhlcmUgbXVzdCBub3QgYmUKKwlhbnkgc3RhdGljIG1hcHBpbmdzIGluIHRoaXMgYXJlYTsgdm1hbGxvYyB3aWxsIG92ZXJ3cml0ZSB0aGVtLgorCVRoZSBhZGRyZXNzZXMgbXVzdCBhbHNvIGJlIGluIHRoZSBrZXJuZWwgc2VnbWVudCAoc2VlIGFib3ZlKS4KKwlOb3JtYWxseSwgdGhlIHZtYWxsb2MoKSBhcmVhIHN0YXJ0cyBWTUFMTE9DX09GRlNFVCBieXRlcyBhYm92ZSB0aGUKKwlsYXN0IHZpcnR1YWwgUkFNIGFkZHJlc3MgKGZvdW5kIHVzaW5nIHZhcmlhYmxlIGhpZ2hfbWVtb3J5KS4KKworVk1BTExPQ19PRkZTRVQKKwlPZmZzZXQgbm9ybWFsbHkgaW5jb3Jwb3JhdGVkIGludG8gVk1BTExPQ19TVEFSVCB0byBwcm92aWRlIGEgaG9sZQorCWJldHdlZW4gdmlydHVhbCBSQU0gYW5kIHRoZSB2bWFsbG9jIGFyZWEuICBXZSBkbyB0aGlzIHRvIGFsbG93CisJb3V0IG9mIGJvdW5kcyBtZW1vcnkgYWNjZXNzZXMgKGVnLCBzb21ldGhpbmcgd3JpdGluZyBvZmYgdGhlIGVuZAorCW9mIHRoZSBtYXBwZWQgbWVtb3J5IG1hcCkgdG8gYmUgY2F1Z2h0LiAgTm9ybWFsbHkgc2V0IHRvIDhNQi4KKworQXJjaGl0ZWN0dXJlIFNwZWNpZmljIE1hY3JvcworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitCT09UX01FTShwcmFtLHBpbyx2aW8pCisJYHByYW0nIHNwZWNpZmllcyB0aGUgcGh5c2ljYWwgc3RhcnQgYWRkcmVzcyBvZiBSQU0uICBNdXN0IGFsd2F5cworCWJlIHByZXNlbnQsIGFuZCBzaG91bGQgYmUgdGhlIHNhbWUgYXMgUEhZU19PRkZTRVQuCisKKwlgcGlvJyBpcyB0aGUgcGh5c2ljYWwgYWRkcmVzcyBvZiBhbiA4TUIgcmVnaW9uIGNvbnRhaW5pbmcgSU8gZm9yCisJdXNlIHdpdGggdGhlIGRlYnVnZ2luZyBtYWNyb3MgaW4gYXJjaC9hcm0va2VybmVsL2RlYnVnLWFybXYuUy4KKworCWB2aW8nIGlzIHRoZSB2aXJ0dWFsIGFkZHJlc3Mgb2YgdGhlIDhNQiBkZWJ1Z2dpbmcgcmVnaW9uLgorCisJSXQgaXMgZXhwZWN0ZWQgdGhhdCB0aGUgZGVidWdnaW5nIHJlZ2lvbiB3aWxsIGJlIHJlLWluaXRpYWxpc2VkCisJYnkgdGhlIGFyY2hpdGVjdHVyZSBzcGVjaWZpYyBjb2RlIGxhdGVyIGluIHRoZSBjb2RlICh2aWEgdGhlCisJTUFQSU8gZnVuY3Rpb24pLgorCitCT09UX1BBUkFNUworCVNhbWUgYXMsIGFuZCBzZWUgUEFSQU1TX1BIWVMuCisKK0ZJWFVQKGZ1bmMpCisJTWFjaGluZSBzcGVjaWZpYyBmaXh1cHMsIHJ1biBiZWZvcmUgbWVtb3J5IHN1YnN5c3RlbXMgaGF2ZSBiZWVuCisJaW5pdGlhbGlzZWQuCisKK01BUElPKGZ1bmMpCisJTWFjaGluZSBzcGVjaWZpYyBmdW5jdGlvbiB0byBtYXAgSU8gYXJlYXMgKGluY2x1ZGluZyB0aGUgZGVidWcKKwlyZWdpb24gYWJvdmUpLgorCitJTklUSVJRKGZ1bmMpCisJTWFjaGluZSBzcGVjaWZpYyBmdW5jdGlvbiB0byBpbml0aWFsaXNlIGludGVycnVwdHMuCisKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vYXJtL1JFQURNRSBiL0RvY3VtZW50YXRpb24vYXJtL1JFQURNRQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNmY3MThlCi0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9hcm0vUkVBRE1FCkBAIC0wLDAgKzEsMTk4IEBACisJCQkgICBBUk0gTGludXggMi42CisJCQkgICA9PT09PT09PT09PT09CisKKyAgICBQbGVhc2UgY2hlY2sgPGZ0cDovL2Z0cC5hcm0ubGludXgub3JnLnVrL3B1Yi9hcm1saW51eD4gZm9yCisgICAgdXBkYXRlcy4KKworQ29tcGlsYXRpb24gb2Yga2VybmVsCistLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICBJbiBvcmRlciB0byBjb21waWxlIEFSTSBMaW51eCwgeW91IHdpbGwgbmVlZCBhIGNvbXBpbGVyIGNhcGFibGUgb2YKKyAgZ2VuZXJhdGluZyBBUk0gRUxGIGNvZGUgd2l0aCBHTlUgZXh0ZW5zaW9ucy4gIEdDQyAyLjk1LjEsIEVHQ1MKKyAgMS4xLjIsIGFuZCBHQ0MgMy4zIGFyZSBrbm93biB0byBiZSBnb29kIGNvbXBpbGVycy4gIEZvcnR1bmF0ZWx5LCB5b3UKKyAgbmVlZG4ndCBndWVzcy4gIFRoZSBrZXJuZWwgd2lsbCByZXBvcnQgYW4gZXJyb3IgaWYgeW91ciBjb21waWxlciBpcworICBhIHJlY29nbml6ZWQgb2ZmZW5kZXIuCisKKyAgVG8gYnVpbGQgQVJNIExpbnV4IG5hdGl2ZWx5LCB5b3Ugc2hvdWxkbid0IGhhdmUgdG8gYWx0ZXIgdGhlIEFSQ0ggPSBsaW5lCisgIGluIHRoZSB0b3AgbGV2ZWwgTWFrZWZpbGUuICBIb3dldmVyLCBpZiB5b3UgZG9uJ3QgaGF2ZSB0aGUgQVJNIExpbnV4IEVMRgorICB0b29scyBpbnN0YWxsZWQgYXMgZGVmYXVsdCwgdGhlbiB5b3Ugc2hvdWxkIGNoYW5nZSB0aGUgQ1JPU1NfQ09NUElMRQorICBsaW5lIGFzIGRldGFpbGVkIGJlbG93LgorCisgIElmIHlvdSB3aXNoIHRvIGNyb3NzLWNvbXBpbGUsIHRoZW4gYWx0ZXIgdGhlIGZvbGxvd2luZyBsaW5lcyBpbiB0aGUgdG9wCisgIGxldmVsIG1ha2UgZmlsZToKKworICAgIEFSQ0ggPSA8d2hhdGV2ZXI+CisJd2l0aAorICAgIEFSQ0ggPSBhcm0KKworCWFuZAorCisgICAgQ1JPU1NfQ09NUElMRT0KKwl0bworICAgIENST1NTX0NPTVBJTEU9PHlvdXItcGF0aC10by15b3VyLWNvbXBpbGVyLXdpdGhvdXQtZ2NjPgorCWVnLgorICAgIENST1NTX0NPTVBJTEU9YXJtLWxpbnV4LQorCisgIERvIGEgJ21ha2UgY29uZmlnJywgZm9sbG93ZWQgYnkgJ21ha2UgSW1hZ2UnIHRvIGJ1aWxkIHRoZSBrZXJuZWwgCisgIChhcmNoL2FybS9ib290L0ltYWdlKS4gIEEgY29tcHJlc3NlZCBpbWFnZSBjYW4gYmUgYnVpbHQgYnkgZG9pbmcgYSAKKyAgJ21ha2UgekltYWdlJyBpbnN0ZWFkIG9mICdtYWtlIEltYWdlJy4KKworCitCdWcgcmVwb3J0cyBldGMKKy0tLS0tLS0tLS0tLS0tLQorCisgIFBsZWFzZSBzZW5kIHBhdGNoZXMgdG8gdGhlIHBhdGNoIHN5c3RlbS4gIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUKKyAgaHR0cDovL3d3dy5hcm0ubGludXgub3JnLnVrL3BhdGNoZXMvaW5mby5odG1sICBBbHdheXMgaW5jbHVkZSBzb21lCisgIGV4cGxhbmF0aW9uIGFzIHRvIHdoYXQgdGhlIHBhdGNoIGRvZXMgYW5kIHdoeSBpdCBpcyBuZWVkZWQuCisKKyAgQnVnIHJlcG9ydHMgc2hvdWxkIGJlIHNlbnQgdG8gbGludXgtYXJtLWtlcm5lbEBsaXN0cy5hcm0ubGludXgub3JnLnVrLAorICBvciBzdWJtaXR0ZWQgdGhyb3VnaCB0aGUgd2ViIGZvcm0gYXQKKyAgaHR0cDovL3d3dy5hcm0ubGludXgub3JnLnVrL2Zvcm1zL3NvbHV0aW9uLnNodG1sCisKKyAgV2hlbiBzZW5kaW5nIGJ1ZyByZXBvcnRzLCBwbGVhc2UgZW5zdXJlIHRoYXQgdGhleSBjb250YWluIGFsbCByZWxldmFudAorICBpbmZvcm1hdGlvbiwgZWcuIHRoZSBrZXJuZWwgbWVzc2FnZXMgdGhhdCB3ZXJlIHByaW50ZWQgYmVmb3JlL2R1cmluZworICB0aGUgcHJvYmxlbSwgd2hhdCB5b3Ugd2VyZSBkb2luZywgZXRjLgorCisKK0luY2x1ZGUgZmlsZXMKKy0tLS0tLS0tLS0tLS0KKworICBTZXZlcmFsIG5ldyBpbmNsdWRlIGRpcmVjdG9yaWVzIGhhdmUgYmVlbiBjcmVhdGVkIHVuZGVyIGluY2x1ZGUvYXNtLWFybSwKKyAgd2hpY2ggYXJlIHRoZXJlIHRvIHJlZHVjZSB0aGUgY2x1dHRlciBpbiB0aGUgdG9wLWxldmVsIGRpcmVjdG9yeS4gIFRoZXNlCisgIGRpcmVjdG9yaWVzLCBhbmQgdGhlaXIgcHVycG9zZSBpcyBsaXN0ZWQgYmVsb3c6CisKKyAgIGFyY2gtKgltYWNoaW5lL3BsYXRmb3JtIHNwZWNpZmljIGhlYWRlciBmaWxlcworICAgaGFyZHdhcmUJZHJpdmVyLWludGVybmFsIEFSTSBzcGVjaWZpYyBkYXRhIHN0cnVjdHVyZXMvZGVmaW5pdGlvbnMKKyAgIG1hY2gJCWRlc2NyaXB0aW9ucyBvZiBnZW5lcmljIEFSTSB0byBzcGVjaWZpYyBtYWNoaW5lIGludGVyZmFjZXMKKyAgIHByb2MtKglwcm9jZXNzb3IgZGVwZW5kZW50IGhlYWRlciBmaWxlcyAoY3VycmVudGx5IG9ubHkgdHdvCisJCWNhdGVnb3JpZXMpCisKKworTWFjaGluZS9QbGF0Zm9ybSBzdXBwb3J0CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICBUaGUgQVJNIHRyZWUgY29udGFpbnMgc3VwcG9ydCBmb3IgYSBsb3Qgb2YgZGlmZmVyZW50IG1hY2hpbmUgdHlwZXMuICBUbworICBjb250aW51ZSBzdXBwb3J0aW5nIHRoZXNlIGRpZmZlcmVuY2VzLCBpdCBoYXMgYmVjb21lIG5lY2Vzc2FyeSB0byBzcGxpdAorICBtYWNoaW5lLXNwZWNpZmljIHBhcnRzIGJ5IGRpcmVjdG9yeS4gIEZvciB0aGlzLCB0aGUgbWFjaGluZSBjYXRlZ29yeSBpcworICB1c2VkIHRvIHNlbGVjdCB3aGljaCBkaXJlY3RvcmllcyBhbmQgZmlsZXMgZ2V0IGluY2x1ZGVkICh3ZSB3aWxsIHVzZQorICAkKE1BQ0hJTkUpIHRvIHJlZmVyIHRvIHRoZSBjYXRlZ29yeSkKKworICBUbyB0aGlzIGVuZCwgd2Ugbm93IGhhdmUgYXJjaC9hcm0vbWFjaC0kKE1BQ0hJTkUpIGRpcmVjdG9yaWVzIHdoaWNoIGFyZQorICBkZXNpZ25lZCB0byBob3VzZSB0aGUgbm9uLWRyaXZlciBmaWxlcyBmb3IgYSBwYXJ0aWN1bGFyIG1hY2hpbmUgKGVnLCBQQ0ksCisgIG1lbW9yeSBtYW5hZ2VtZW50LCBhcmNoaXRlY3R1cmUgZGVmaW5pdGlvbnMgZXRjKS4gIEZvciBhbGwgZnV0dXJlCisgIG1hY2hpbmVzLCB0aGVyZSBzaG91bGQgYmUgYSBjb3JyZXNwb25kaW5nIGluY2x1ZGUvYXNtLWFybS9hcmNoLSQoTUFDSElORSkKKyAgZGlyZWN0b3J5LgorCisKK01vZHVsZXMKKy0tLS0tLS0KKworICBBbHRob3VnaCBtb2R1bGFyaXNhdGlvbiBpcyBzdXBwb3J0ZWQgKGFuZCByZXF1aXJlZCBmb3IgdGhlIEZQIGVtdWxhdG9yKSwKKyAgZWFjaCBtb2R1bGUgb24gYW4gQVJNMi9BUk0yNTAvQVJNMyBtYWNoaW5lIHdoZW4gaXMgbG9hZGVkIHdpbGwgdGFrZQorICBtZW1vcnkgdXAgdG8gdGhlIG5leHQgMzJrIGJvdW5kYXJ5IGR1ZSB0byB0aGUgc2l6ZSBvZiB0aGUgcGFnZXMuCisgIFRoZXJlZm9yZSwgbW9kdWxhcmlzYXRpb24gb24gdGhlc2UgbWFjaGluZXMgcmVhbGx5IHdvcnRoIGl0PworCisgIEhvd2V2ZXIsIEFSTTYgYW5kIHVwIG1hY2hpbmVzIGFsbG93IG1vZHVsZXMgdG8gdGFrZSBtdWx0aXBsZXMgb2YgNGssIGFuZAorICBhcyBzdWNoIEFjb3JuIFJpc2NQQ3MgYW5kIG90aGVyIGFyY2hpdGVjdHVyZXMgdXNpbmcgdGhlc2UgcHJvY2Vzc29ycyBjYW4KKyAgbWFrZSBnb29kIHVzZSBvZiBtb2R1bGFyaXNhdGlvbi4KKworCitBREZTIEltYWdlIGZpbGVzCistLS0tLS0tLS0tLS0tLS0tCisKKyAgWW91IGNhbiBhY2Nlc3MgaW1hZ2UgZmlsZXMgb24geW91ciBBREZTIHBhcnRpdGlvbnMgYnkgbW91bnRpbmcgdGhlIEFERlMKKyAgcGFydGl0aW9uLCBhbmQgdGhlbiB1c2luZyB0aGUgbG9vcGJhY2sgZGV2aWNlIGRyaXZlci4gIFlvdSBtdXN0IGhhdmUKKyAgbG9zZXR1cCBpbnN0YWxsZWQuCisKKyAgUGxlYXNlIG5vdGUgdGhhdCB0aGUgUENFbXVsYXRvciBET1MgcGFydGl0aW9ucyBoYXZlIGEgcGFydGl0aW9uIHRhYmxlIGF0CisgIHRoZSBzdGFydCwgYW5kIGFzIHN1Y2gsIHlvdSB3aWxsIGhhdmUgdG8gZ2l2ZSAnLW8gb2Zmc2V0JyB0byBsb3NldHVwLgorCisKK1JlcXVlc3QgdG8gZGV2ZWxvcGVycworLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgV2hlbiB3cml0aW5nIGRldmljZSBkcml2ZXJzIHdoaWNoIGluY2x1ZGUgYSBzZXBhcmF0ZSBhc3NlbWJsZXIgZmlsZSwgcGxlYXNlCisgIGluY2x1ZGUgaXQgaW4gd2l0aCB0aGUgQyBmaWxlLCBhbmQgbm90IHRoZSBhcmNoL2FybS9saWIgZGlyZWN0b3J5LiAgVGhpcworICBhbGxvd3MgdGhlIGRyaXZlciB0byBiZSBjb21waWxlZCBhcyBhIGxvYWRhYmxlIG1vZHVsZSB3aXRob3V0IHJlcXVpcmluZworICBoYWxmIHRoZSBjb2RlIHRvIGJlIGNvbXBpbGVkIGludG8gdGhlIGtlcm5lbCBpbWFnZS4KKworICBJbiBnZW5lcmFsLCB0cnkgdG8gYXZvaWQgdXNpbmcgYXNzZW1ibGVyIHVubGVzcyBpdCBpcyByZWFsbHkgbmVjZXNzYXJ5LiAgSXQKKyAgbWFrZXMgZHJpdmVycyBmYXIgbGVzcyBlYXN5IHRvIHBvcnQgdG8gb3RoZXIgaGFyZHdhcmUuCisKKworU1Q1MDYgaGFyZCBkcml2ZXMKKy0tLS0tLS0tLS0tLS0tLS0tCisKKyAgVGhlIFNUNTA2IGhhcmQgZHJpdmUgY29udHJvbGxlcnMgc2VlbSB0byBiZSB3b3JraW5nIGZpbmUgKGlmIGEgbGl0dGxlCisgIHNsb3dseSkuICBBdCB0aGUgbW9tZW50IHRoZXkgd2lsbCBvbmx5IHdvcmsgb2ZmIHRoZSBjb250cm9sbGVycyBvbiBhbgorICBBNHgwJ3MgbW90aGVyYm9hcmQsIGJ1dCBmb3IgaXQgdG8gd29yayBvZmYgYSBQb2R1bGUganVzdCByZXF1aXJlcworICBzb21lb25lIHdpdGggYSBwb2R1bGUgdG8gYWRkIHRoZSBhZGRyZXNzZXMgZm9yIHRoZSBJUlEgbWFzayBhbmQgdGhlCisgIEhEQyBiYXNlIHRvIHRoZSBzb3VyY2UuCisKKyAgQXMgb2YgMzEvMy85NiBpdCB3b3JrcyB3aXRoIHR3byBkcml2ZXMgKHlvdSBzaG91bGQgZ2V0IHRoZSBBREZTCisgICpjb25maWd1cmUgaGFyZGRyaXZlIHNldCB0byAyKS4gSSd2ZSBnb3QgYW4gaW50ZXJuYWwgMjBNQiBhbmQgYSBncmVhdAorICBiaWcgZXh0ZXJuYWwgNS4yNSIgRkggNjRNQiBkcml2ZSAod2hvIGNvdWxkIGV2ZXIgd2FudCBtb3JlIDotKSApLgorCisgIEkndmUganVzdCBnb3QgMjQwSy9zIG9mZiBpdCAoYSBkZCB3aXRoIGJzPTEyOGspOyB0aGF0cyBhYm91dCBoYWxmIG9mIHdoYXQKKyAgUmlzY09TIGdldHM7IGJ1dCBpdCdzIGEgaGVjayBvZiBhIGxvdCBiZXR0ZXIgdGhhbiB0aGUgNTBLL3MgSSB3YXMgZ2V0dGluZworICBsYXN0IHdlZWsgOi0pCisKKyAgS25vd24gYnVnOiBEcml2ZSBkYXRhIGVycm9ycyBjYW4gY2F1c2UgYSBoYW5nOyBpbmNsdWRpbmcgY2FzZXMgd2hlcmUKKyAgdGhlIGNvbnRyb2xsZXIgaGFzIGZpeGVkIHRoZSBlcnJvciB1c2luZyBFQ0MuIChQb3NzaWJseSBPTkxZCisgIGluIHRoYXQgY2FzZS4uLmhtbSkuCisKKworMTc3MiBGbG9wcHkKKy0tLS0tLS0tLS0tCisgIFRoaXMgYWxzbyBzZWVtcyB0byB3b3JrIE9LLCBidXQgaGFzbid0IGJlZW4gc3RyZXNzZWQgbXVjaCBsYXRlbHkuICBJdAorICBoYXNuJ3QgZ290IGFueSBjb2RlIGZvciBkaXNjIGNoYW5nZSBkZXRlY3Rpb24gaW4gdGhlcmUgYXQgdGhlIG1vbWVudCB3aGljaAorICBjb3VsZCBiZSBhIGJpdCBvZiBhIHByb2JsZW0hICBTdWdnZXN0aW9ucyBvbiB0aGUgY29ycmVjdCB3YXkgdG8gZG8gdGhpcworICBhcmUgd2VsY29tZS4KKworCitDT05GSUdfTUFDSF8gYW5kIENPTkZJR19BUkNIXworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgQSBjaGFuZ2Ugd2FzIG1hZGUgaW4gMjAwMyB0byB0aGUgbWFjcm8gbmFtZXMgZm9yIG5ldyBtYWNoaW5lcy4KKyAgSGlzdG9yaWNhbGx5LCBDT05GSUdfQVJDSF8gd2FzIHVzZWQgZm9yIHRoZSBib25hZmlkZSBhcmNoaXRlY3R1cmUsCisgIGUuZy4gU0ExMTAwLCBhcyB3ZWxsIGFzIGltcGxlbWVudGF0aW9ucyBvZiB0aGUgYXJjaGl0ZWN0dXJlLAorICBlLmcuIEFzc2FiZXQuICBJdCB3YXMgZGVjaWRlZCB0byBjaGFuZ2UgdGhlIGltcGxlbWVudGF0aW9uIG1hY3JvcworICB0byByZWFkIENPTkZJR19NQUNIXyBmb3IgY2xhcml0eS4gIE1vcmVvdmVyLCBhIHJldHJvYWN0aXZlIGZpeHVwIGhhcworICBub3QgYmVlbiBtYWRlIGJlY2F1c2UgaXQgd291bGQgY29tcGxpY2F0ZSBwYXRjaGluZy4KKworICBQcmV2aW91cyByZWdpc3RyYXRpb25zIG1heSBiZSBmb3VuZCBvbmxpbmUuCisKKyAgICA8aHR0cDovL3d3dy5hcm0ubGludXgub3JnLnVrL2RldmVsb3Blci9tYWNoaW5lcy8+CisKK0tlcm5lbCBlbnRyeSAoaGVhZC5TKQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgVGhlIGluaXRpYWwgZW50cnkgaW50byB0aGUga2VybmVsIGlzIHZpYSBoZWFkLlMsIHdoaWNoIHVzZXMgbWFjaGluZQorICBpbmRlcGVuZGVudCBjb2RlLiAgVGhlIG1hY2hpbmUgaXMgc2VsZWN0ZWQgYnkgdGhlIHZhbHVlIG9mICdyMScgb24KKyAgZW50cnksIHdoaWNoIG11c3QgYmUga2VwdCB1bmlxdWUuCisKKyAgRHVlIHRvIHRoZSBsYXJnZSBudW1iZXIgb2YgbWFjaGluZXMgd2hpY2ggdGhlIEFSTSBwb3J0IG9mIExpbnV4IHByb3ZpZGVzCisgIGZvciwgd2UgaGF2ZSBhIG1ldGhvZCB0byBtYW5hZ2UgdGhpcyB3aGljaCBlbnN1cmVzIHRoYXQgd2UgZG9uJ3QgZW5kIHVwCisgIGR1cGxpY2F0aW5nIGxhcmdlIGFtb3VudHMgb2YgY29kZS4KKworICBXZSBncm91cCBtYWNoaW5lIChvciBwbGF0Zm9ybSkgc3VwcG9ydCBjb2RlIGludG8gbWFjaGluZSBjbGFzc2VzLiAgQQorICBjbGFzcyB0eXBpY2FsbHkgYmFzZWQgYXJvdW5kIG9uZSBvciBtb3JlIHN5c3RlbSBvbiBhIGNoaXAgZGV2aWNlcywgYW5kCisgIGFjdHMgYXMgYSBuYXR1cmFsIGNvbnRhaW5lciBhcm91bmQgdGhlIGFjdHVhbCBpbXBsZW1lbnRhdGlvbnMuICBUaGVzZQorICBjbGFzc2VzIGFyZSBnaXZlbiBkaXJlY3RvcmllcyAtIGFyY2gvYXJtL21hY2gtPGNsYXNzPiBhbmQKKyAgaW5jbHVkZS9hc20tYXJtL2FyY2gtPGNsYXNzPiAtIHdoaWNoIGNvbnRhaW4gdGhlIHNvdXJjZSBmaWxlcyB0bworICBzdXBwb3J0IHRoZSBtYWNoaW5lIGNsYXNzLiAgVGhpcyBkaXJlY3RvcmllcyBhbHNvIGNvbnRhaW4gYW55IG1hY2hpbmUKKyAgc3BlY2lmaWMgc3VwcG9ydGluZyBjb2RlLgorCisgIEZvciBleGFtcGxlLCB0aGUgU0ExMTAwIGNsYXNzIGlzIGJhc2VkIHVwb24gdGhlIFNBMTEwMCBhbmQgU0ExMTEwIFNvQworICBkZXZpY2VzLCBhbmQgY29udGFpbnMgdGhlIGNvZGUgdG8gc3VwcG9ydCB0aGUgd2F5IHRoZSBvbi1ib2FyZCBhbmQgb2ZmLQorICBib2FyZCBkZXZpY2VzIGFyZSB1c2VkLCBvciB0aGUgZGV2aWNlIGlzIHNldHVwLCBhbmQgcHJvdmlkZXMgdGhhdAorICBtYWNoaW5lIHNwZWNpZmljICJwZXJzb25hbGl0eS4iCisKKyAgVGhpcyBmaW5lLWdyYWluZWQgbWFjaGluZSBzcGVjaWZpYyBzZWxlY3Rpb24gaXMgY29udHJvbGxlZCBieSB0aGUgbWFjaGluZQorICB0eXBlIElELCB3aGljaCBhY3RzIGJvdGggYXMgYSBydW4tdGltZSBhbmQgYSBjb21waWxlLXRpbWUgY29kZSBzZWxlY3Rpb24KKyAgbWV0aG9kLgorCisgIFlvdSBjYW4gcmVnaXN0ZXIgYSBuZXcgbWFjaGluZSB2aWEgdGhlIHdlYiBzaXRlIGF0OgorCisgICAgPGh0dHA6Ly93d3cuYXJtLmxpbnV4Lm9yZy51ay9kZXZlbG9wZXIvbWFjaGluZXMvPgorCistLS0KK1J1c3NlbGwgS2luZyAoMTUvMDMvMjAwNCkKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vYXJtL1NBMTEwMC9BRFNCaXRzeSBiL0RvY3VtZW50YXRpb24vYXJtL1NBMTEwMC9BRFNCaXRzeQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYjQ3YzM4Ci0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9hcm0vU0ExMTAwL0FEU0JpdHN5CkBAIC0wLDAgKzEsNDMgQEAKK0FEUyBCaXRzeSBTaW5nbGUgQm9hcmQgQ29tcHV0ZXIKKyhJdCBpcyBkaWZmZXJlbnQgZnJvbSBCaXRzeShpUEFRKSBvZiBDb21wYXEpCisKK0ZvciBtb3JlIGRldGFpbHMsIGNvbnRhY3QgQXBwbGllZCBEYXRhIFN5c3RlbXMgb3Igc2VlCitodHRwOi8vd3d3LmFwcGxpZWRkYXRhLm5ldC9wcm9kdWN0cy5odG1sCisKK1RoZSBMaW51eCBzdXBwb3J0IGZvciB0aGlzIHByb2R1Y3QgaGFzIGJlZW4gcHJvdmlkZWQgYnkKK1dvb2p1bmcgSHVoIDx3aHVoQGFwcGxpZWRkYXRhLm5ldD4KKworVXNlICdtYWtlIGFkc2JpdHN5X2NvbmZpZycgYmVmb3JlIGFueSAnbWFrZSBjb25maWcnLgorVGhpcyB3aWxsIHNldCB1cCBkZWZhdWx0cyBmb3IgQURTIEJpdHN5IHN1cHBvcnQuCisKK1RoZSBrZXJuZWwgekltYWdlIGlzIGxpbmtlZCB0byBiZSBsb2FkZWQgYW5kIGV4ZWN1dGVkIGF0IDB4YzA0MDAwMDAuCisKK0xpbnV4IGNhbiAgYmUgdXNlZCB3aXRoIHRoZSBBRFMgQm9vdExvYWRlciB0aGF0IHNoaXBzIHdpdGggdGhlCituZXdlciByZXYgYm9hcmRzLiBTZWUgdGhlaXIgZG9jdW1lbnRhdGlvbiBvbiBob3cgdG8gbG9hZCBMaW51eC4KKworU3VwcG9ydGVkIHBlcmlwaGVyYWxzOgorLSBTQTExMDAgTENEIGZyYW1lIGJ1ZmZlciAoOC8xNmJwcC4uLnNvcnQgb2YpCistIFNBMTExMSBVU0IgTWFzdGVyCistIFNBMTEwMCBzZXJpYWwgcG9ydAorLSBwY21jaWEsIGNvbXBhY3QgZmxhc2gKKy0gdG91Y2hzY3JlZW4odWNiMTIwMCkKKy0gY29uc29sZSBvbiBMQ0Qgc2NyZWVuCistIHNlcmlhbCBwb3J0cyAodHR5U1swLTJdKQorICAtIHR0eVMwIGlzIGRlZmF1bHQgZm9yIHNlcmlhbCBjb25zb2xlCisKK1RvIGRvOgorLSBldmVyeXRoaW5nIGVsc2UhICA6LSkKKworTm90ZXM6CisKKy0gVGhlIGZsYXNoIG9uIGJvYXJkIGlzIGRpdmlkZWQgaW50byAzIHBhcnRpdGlvbnMuCisgIFlvdSBzaG91bGQgYmUgY2FyZWZ1bCB0byB1c2UgZmxhc2ggb24gYm9hcmQuCisgIEl0J3MgcGFydGl0aW9uIGlzIGRpZmZlcmVudCBmcm9tIEdyYXBoaWNzQ2xpZW50IFBsdXMgYW5kIEdyYXBoaWNzTWFzdGVyCisKKy0gMTZicHAgbW9kZSByZXF1aXJlcyBhIGRpZmZlcmVudCBjYWJsZSB0aGFuIHdoYXQgc2hpcHMgd2l0aCB0aGUgYm9hcmQuCisgIENvbnRhY3QgQURTIG9yIGxvb2sgdGhyb3VnaCB0aGUgbWFudWFsIHRvIHdpcmUgeW91ciBvd24uIEN1cnJlbnRseSwKKyAgaWYgeW91IGNvbXBpbGUgd2l0aCAxNmJpdCBtb2RlIHN1cHBvcnQgYW5kIHN3aXRjaCBpbnRvIGEgbG93ZXIgYnBwCisgIG1vZGUsIHRoZSB0aW1pbmcgaXMgb2ZmIHNvIHRoZSBpbWFnZSBpcyBjb3JydXB0ZWQuICBUaGlzIHdpbGwgYmUKKyAgZml4ZWQgc29vbi4KKworQW55IGNvbnRyaWJ1dGlvbiBjYW4gYmUgc2VudCB0byBuaWNvQGNhbS5vcmcgYW5kIHdpbGwgYmUgZ3JlYXRseSB3ZWxjb21lIQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9hcm0vU0ExMTAwL0Fzc2FiZXQgYi9Eb2N1bWVudGF0aW9uL2FybS9TQTExMDAvQXNzYWJldApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYmJlNTU4Ci0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9hcm0vU0ExMTAwL0Fzc2FiZXQKQEAgLTAsMCArMSwzMDEgQEAKK1RoZSBJbnRlbCBBc3NhYmV0IChTQS0xMTEwIGV2YWx1YXRpb24pIGJvYXJkCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitQbGVhc2Ugc2VlOgoraHR0cDovL2RldmVsb3Blci5pbnRlbC5jb20vZGVzaWduL3N0cm9uZy9xdWlja2xpc3QvZXZhbC1wbGF0L3NhLTExMTAuaHRtCitodHRwOi8vZGV2ZWxvcGVyLmludGVsLmNvbS9kZXNpZ24vc3Ryb25nL2d1aWRlcy8yNzgyNzguaHRtCisKK0Fsc28gc29tZSBub3RlcyBmcm9tIEpvaG4gRyBEb3JzZXkgPGpkNXFAYW5kcmV3LmNtdS5lZHU+OgoraHR0cDovL3d3dy5jcy5jbXUuZWR1L353ZWFyYWJsZS9zb2Z0d2FyZS9hc3NhYmV0Lmh0bWwKKworCitCdWlsZGluZyB0aGUga2VybmVsCistLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RvIGJ1aWxkIHRoZSBrZXJuZWwgd2l0aCBjdXJyZW50IGRlZmF1bHRzOgorCisJbWFrZSBhc3NhYmV0X2NvbmZpZworCW1ha2Ugb2xkY29uZmlnCisJbWFrZSB6SW1hZ2UKKworVGhlIHJlc3VsdGluZyBrZXJuZWwgaW1hZ2Ugc2hvdWxkIGJlIGF2YWlsYWJsZSBpbiBsaW51eC9hcmNoL2FybS9ib290L3pJbWFnZS4KKworCitJbnN0YWxsaW5nIGEgYm9vdGxvYWRlcgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworQSBjb3VwbGUgb2YgYm9vdGxvYWRlcnMgYWJsZSB0byBib290IExpbnV4IG9uIEFzc2FiZXQgYXJlIGF2YWlsYWJsZToKKworQkxPQiAoaHR0cDovL3d3dy5sYXJ0LnR1ZGVsZnQubmwvbGFydHdhcmUvYmxvYi8pCisKKyAgIEJMT0IgaXMgYSBib290bG9hZGVyIHVzZWQgd2l0aGluIHRoZSBMQVJUIHByb2plY3QuICBTb21lIGNvbnRyaWJ1dGVkCisgICBwYXRjaGVzIHdlcmUgbWVyZ2VkIGludG8gQkxPQiB0byBhZGQgc3VwcG9ydCBmb3IgQXNzYWJldC4KKworQ29tcGFxJ3MgQm9vdGxkciArIEpvaG4gRG9yc2V5J3MgcGF0Y2ggZm9yIEFzc2FiZXQgc3VwcG9ydAorKGh0dHA6Ly93d3cuaGFuZGhlbGRzLm9yZy9Db21wYXEvYm9vdGxkci5odG1sKQorKGh0dHA6Ly93d3cud2VhcmFibGVncm91cC5vcmcvc29mdHdhcmUvYm9vdGxkci8pCisKKyAgIEJvb3RsZHIgaXMgdGhlIGJvb3Rsb2FkZXIgZGV2ZWxvcGVkIGJ5IENvbXBhcSBmb3IgdGhlIGlQQVEgUG9ja2V0IFBDLgorICAgSm9obiBEb3JzZXkgaGFzIHByb2R1Y2VkIGFkZC1vbiBwYXRjaGVzIHRvIGFkZCBzdXBwb3J0IGZvciBBc3NhYmV0IGFuZAorICAgdGhlIEpGRlMgZmlsZXN5c3RlbS4KKworUmVkQm9vdCAoaHR0cDovL3NvdXJjZXMucmVkaGF0LmNvbS9yZWRib290LykKKworICAgUmVkQm9vdCBpcyBhIGJvb3Rsb2FkZXIgZGV2ZWxvcGVkIGJ5IFJlZCBIYXQgYmFzZWQgb24gdGhlIGVDb3MgUlRPUworICAgaGFyZHdhcmUgYWJzdHJhY3Rpb24gbGF5ZXIuICBJdCBzdXBwb3J0cyBBc3NhYmV0IGFtb25nc3QgbWFueSBvdGhlcgorICAgaGFyZHdhcmUgcGxhdGZvcm1zLgorCitSZWRCb290IGlzIGN1cnJlbnRseSB0aGUgcmVjb21tZW5kZWQgY2hvaWNlIHNpbmNlIGl0J3MgdGhlIG9ubHkgb25lIHRvIGhhdmUKK25ldHdvcmtpbmcgc3VwcG9ydCwgYW5kIGlzIHRoZSBtb3N0IGFjdGl2ZWx5IG1haW50YWluZWQuCisKK0JyaWVmIGV4YW1wbGVzIG9uIGhvdyB0byBib290IExpbnV4IHdpdGggUmVkQm9vdCBhcmUgc2hvd24gYmVsb3cuICBCdXQgZmlyc3QKK3lvdSBuZWVkIHRvIGhhdmUgUmVkQm9vdCBpbnN0YWxsZWQgaW4geW91ciBmbGFzaCBtZW1vcnkuICBBIGtub3duIHRvIHdvcmsKK3ByZWNvbXBpbGVkIFJlZEJvb3QgYmluYXJ5IGlzIGF2YWlsYWJsZSBmcm9tIHRoZSBmb2xsb3dpbmcgbG9jYXRpb246CisKK2Z0cDovL2Z0cC5uZXR3aW5kZXIub3JnL3VzZXJzL24vbmljby8KK2Z0cDovL2Z0cC5hcm0ubGludXgub3JnLnVrL3B1Yi9saW51eC9hcm0vcGVvcGxlL25pY28vCitmdHA6Ly9mdHAuaGFuZGhlbGRzLm9yZy9wdWIvbGludXgvYXJtL3NhLTExMDAtcGF0Y2hlcy8KKworTG9vayBmb3IgcmVkYm9vdC1hc3NhYmV0Ki50Z3ouICBTb21lIGluc3RhbGxhdGlvbiBpbmZvcyBhcmUgcHJvdmlkZWQgaW4KK3JlZGJvb3QtYXNzYWJldCoudHh0LgorCisKK0luaXRpYWwgUmVkQm9vdCBjb25maWd1cmF0aW9uCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitUaGUgY29tbWFuZHMgdXNlZCBoZXJlIGFyZSBleHBsYWluZWQgaW4gVGhlIFJlZEJvb3QgVXNlcidzIEd1aWRlIGF2YWlsYWJsZQorb24tbGluZSBhdCBodHRwOi8vc291cmNlcy5yZWRoYXQuY29tL2Vjb3MvZG9jcy1sYXRlc3QvcmVkYm9vdC9yZWRib290Lmh0bWwuCitQbGVhc2UgcmVmZXIgdG8gaXQgZm9yIGV4cGxhbmF0aW9ucy4KKworSWYgeW91IGhhdmUgYSBDRiBuZXR3b3JrIGNhcmQgKG15IEFzc2FiZXQga2l0IGNvbnRhaW5lZCBhIENGKyBMUC1FIGZyb20KK1NvY2tldCBDb21tdW5pY2F0aW9ucyBJbmMuKSwgeW91IHNob3VsZCBzdHJvbmdseSBjb25zaWRlciB1c2luZyBpdCBmb3IgVEZUUAorZmlsZSB0cmFuc2ZlcnMuICBZb3UgbXVzdCBpbnNlcnQgaXQgYmVmb3JlIFJlZEJvb3QgcnVucyBzaW5jZSBpdCBjYW4ndCBkZXRlY3QKK2l0IGR5bmFtaWNhbGx5LgorCitUbyBpbml0aWFsaXplIHRoZSBmbGFzaCBkaXJlY3Rvcnk6CisKKwlmaXMgaW5pdCAtZgorCitUbyBpbml0aWFsaXplIHRoZSBub24tdm9sYXRpbGUgc2V0dGluZ3MsIGxpa2Ugd2hldGhlciB5b3Ugd2FudCB0byB1c2UgQk9PVFAgb3IKK2Egc3RhdGljIElQIGFkZHJlc3MsIGV0YywgdXNlIHRoaXMgY29tbWFuZDoKKworCWZjb25maWcgLWkKKworCitXcml0aW5nIGEga2VybmVsIGltYWdlIGludG8gZmxhc2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitGaXJzdCwgdGhlIGtlcm5lbCBpbWFnZSBtdXN0IGJlIGxvYWRlZCBpbnRvIFJBTS4gIElmIHlvdSBoYXZlIHRoZSB6SW1hZ2UgZmlsZQorYXZhaWxhYmxlIG9uIGEgVEZUUCBzZXJ2ZXI6CisKKwlsb2FkIHpJbWFnZSAtciAtYiAweDEwMDAwMAorCitJZiB5b3UgcmF0aGVyIHdhbnQgdG8gdXNlIFktTW9kZW0gdXBsb2FkIG92ZXIgdGhlIHNlcmlhbCBwb3J0OgorCisJbG9hZCAtbSB5bW9kZW0gLXIgLWIgMHgxMDAwMDAKKworVG8gd3JpdGUgaXQgdG8gZmxhc2g6CisKKwlmaXMgY3JlYXRlICJMaW51eCBrZXJuZWwiIC1iIDB4MTAwMDAwIC1sIDB4YzAwMDAKKworCitCb290aW5nIHRoZSBrZXJuZWwKKy0tLS0tLS0tLS0tLS0tLS0tLQorCitUaGUga2VybmVsIHN0aWxsIHJlcXVpcmVzIGEgZmlsZXN5c3RlbSB0byBib290LiAgQSByYW1kaXNrIGltYWdlIGNhbiBiZSBsb2FkZWQKK2FzIGZvbGxvd3M6CisKKwlsb2FkIHJhbWRpc2tfaW1hZ2UuZ3ogLXIgLWIgMHg4MDAwMDAKKworQWdhaW4sIFktTW9kZW0gdXBsb2FkIGNhbiBiZSB1c2VkIGluc3RlYWQgb2YgVEZUUCBieSByZXBsYWNpbmcgdGhlIGZpbGUgbmFtZQorYnkgJy15IHltb2RlbScuCisKK05vdyB0aGUga2VybmVsIGNhbiBiZSByZXRyaWV2ZWQgZnJvbSBmbGFzaCBsaWtlIHRoaXM6CisKKwlmaXMgbG9hZCAiTGludXgga2VybmVsIgorCitvciBsb2FkZWQgYXMgZGVzY3JpYmVkIHByZXZpb3VzbHkuICBUbyBib290IHRoZSBrZXJuZWw6CisKKwlleGVjIC1iIDB4MTAwMDAwIC1sIDB4YzAwMDAKKworVGhlIHJhbWRpc2sgaW1hZ2UgY291bGQgYmUgc3RvcmVkIGludG8gZmxhc2ggYXMgd2VsbCwgYnV0IHRoZXJlIGFyZSBiZXR0ZXIKK3NvbHV0aW9ucyBmb3Igb24tZmxhc2ggZmlsZXN5c3RlbXMgYXMgbWVudGlvbmVkIGJlbG93LgorCisKK1VzaW5nIEpGRlMyCistLS0tLS0tLS0tLQorCitVc2luZyBKRkZTMiAodGhlIFNlY29uZCBKb3VybmFsbGluZyBGbGFzaCBGaWxlIFN5c3RlbSkgaXMgcHJvYmFibHkgdGhlIG1vc3QKK2NvbnZlbmllbnQgd2F5IHRvIHN0b3JlIGEgd3JpdGFibGUgZmlsZXN5c3RlbSBpbnRvIGZsYXNoLiAgSkZGUzIgaXMgdXNlZCBpbgorY29uanVuY3Rpb24gd2l0aCB0aGUgTVREIGxheWVyIHdoaWNoIGlzIHJlc3BvbnNpYmxlIGZvciBsb3ctbGV2ZWwgZmxhc2gKK21hbmFnZW1lbnQuICBNb3JlIGluZm9ybWF0aW9uIG9uIHRoZSBMaW51eCBNVEQgY2FuIGJlIGZvdW5kIG9uLWxpbmUgYXQ6CitodHRwOi8vd3d3LmxpbnV4LW10ZC5pbmZyYWRlYWQub3JnLy4gIEEgSkZGUyBob3d0byB3aXRoIHNvbWUgaW5mb3MgYWJvdXQKK2NyZWF0aW5nIEpGRlMvSkZGUzIgaW1hZ2VzIGlzIGF2YWlsYWJsZSBmcm9tIHRoZSBzYW1lIHNpdGUuCisKK0ZvciBpbnN0YW5jZSwgYSBzYW1wbGUgSkZGUzIgaW1hZ2UgY2FuIGJlIHJldHJpZXZlZCBmcm9tIHRoZSBzYW1lIEZUUCBzaXRlcworbWVudGlvbmVkIGJlbG93IGZvciB0aGUgcHJlY29tcGlsZWQgUmVkQm9vdCBpbWFnZS4KKworVG8gbG9hZCB0aGlzIGZpbGU6CisKKwlsb2FkIHNhbXBsZV9pbWcuamZmczIgLXIgLWIgMHgxMDAwMDAKKworVGhlIHJlc3VsdCBzaG91bGQgbG9vayBsaWtlOgorCitSZWRCb290PiBsb2FkIHNhbXBsZV9pbWcuamZmczIgLXIgLWIgMHgxMDAwMDAKK1JhdyBmaWxlIGxvYWRlZCAweDAwMTAwMDAwLTB4MDAzNzc0MjQKKworTm93IHdlIG11c3Qga25vdyB0aGUgc2l6ZSBvZiB0aGUgdW5hbGxvY2F0ZWQgZmxhc2g6CisKKwlmaXMgZnJlZQorCitSZXN1bHQ6CisKK1JlZEJvb3Q+IGZpcyBmcmVlCisgIDB4NTAwRTAwMDAgLi4gMHg1MDNDMDAwMAorCitUaGUgdmFsdWVzIGFib3ZlIG1heSBiZSBkaWZmZXJlbnQgZGVwZW5kaW5nIG9uIHRoZSBzaXplIG9mIHRoZSBmaWxlc3lzdGVtIGFuZAordGhlIHR5cGUgb2YgZmxhc2guICBTZWUgdGhlaXIgdXNhZ2UgYmVsb3cgYXMgYW4gZXhhbXBsZSBhbmQgdGFrZSBjYXJlIG9mCitzdWJzdGl0dXRpbmcgeW91cnMgYXBwcm9wcmlhdGVseS4KKworV2UgbXVzdCBkZXRlcm1pbmUgc29tZSB2YWx1ZXM6CisKK3NpemUgb2YgdW5hbGxvY2F0ZWQgZmxhc2g6CTB4NTAzYzAwMDAgLSAweDUwMGUwMDAwID0gMHgyZTAwMDAKK3NpemUgb2YgdGhlIGZpbGVzeXN0ZW0gaW1hZ2U6CTB4MDAzNzc0MjQgLSAweDAwMTAwMDAwID0gMHgyNzc0MjQKKworV2Ugd2FudCB0byBmaXQgdGhlIGZpbGVzeXN0ZW0gaW1hZ2Ugb2YgY291cnNlLCBidXQgd2UgYWxzbyB3YW50IHRvIGdpdmUgaXQgYWxsCit0aGUgcmVtYWluaW5nIGZsYXNoIHNwYWNlIGFzIHdlbGwuICBUbyB3cml0ZSBpdDoKKworCWZpcyB1bmxvY2sgLWYgMHg1MDBFMDAwMCAtbCAweDJlMDAwMAorCWZpcyBlcmFzZSAtZiAweDUwMEUwMDAwIC1sIDB4MmUwMDAwCisJZmlzIHdyaXRlIC1iIDB4MTAwMDAwIC1sIDB4Mjc3NDI0IC1mIDB4NTAwRTAwMDAKKwlmaXMgY3JlYXRlICJKRkZTMiIgLW4gLWYgMHg1MDBFMDAwMCAtbCAweDJlMDAwMAorCitOb3cgdGhlIGZpbGVzeXN0ZW0gaXMgYXNzb2NpYXRlZCB0byBhIE1URCAicGFydGl0aW9uIiBvbmNlIExpbnV4IGhhcyBkaXNjb3ZlcmVkCit3aGF0IHRoZXkgYXJlIGluIHRoZSBib290IHByb2Nlc3MuICBGcm9tIFJlZGJvb3QsIHRoZSAnZmlzIGxpc3QnIGNvbW1hbmQKK2Rpc3BsYXlzIHRoZW06CisKK1JlZEJvb3Q+IGZpcyBsaXN0CitOYW1lICAgICAgICAgICAgICBGTEFTSCBhZGRyICBNZW0gYWRkciAgICBMZW5ndGggICAgICBFbnRyeSBwb2ludAorUmVkQm9vdCAgICAgICAgICAgMHg1MDAwMDAwMCAgMHg1MDAwMDAwMCAgMHgwMDAyMDAwMCAgMHgwMDAwMDAwMAorUmVkQm9vdCBjb25maWcgICAgMHg1MDNDMDAwMCAgMHg1MDNDMDAwMCAgMHgwMDAyMDAwMCAgMHgwMDAwMDAwMAorRklTIGRpcmVjdG9yeSAgICAgMHg1MDNFMDAwMCAgMHg1MDNFMDAwMCAgMHgwMDAyMDAwMCAgMHgwMDAwMDAwMAorTGludXgga2VybmVsICAgICAgMHg1MDAyMDAwMCAgMHgwMDEwMDAwMCAgMHgwMDBDMDAwMCAgMHgwMDAwMDAwMAorSkZGUzIgICAgICAgICAgICAgMHg1MDBFMDAwMCAgMHg1MDBFMDAwMCAgMHgwMDJFMDAwMCAgMHgwMDAwMDAwMAorCitIb3dldmVyIExpbnV4IHNob3VsZCBkaXNwbGF5IHNvbWV0aGluZyBsaWtlOgorCitTQTExMDAgZmxhc2g6IHByb2JpbmcgMzItYml0IGZsYXNoIGJ1cworU0ExMTAwIGZsYXNoOiBGb3VuZCAyIHgxNiBkZXZpY2VzIGF0IDB4MCBpbiAzMi1iaXQgbW9kZQorVXNpbmcgUmVkQm9vdCBwYXJ0aXRpb24gZGVmaW5pdGlvbgorQ3JlYXRpbmcgNSBNVEQgcGFydGl0aW9ucyBvbiAiU0ExMTAwIGZsYXNoIjoKKzB4MDAwMDAwMDAtMHgwMDAyMDAwMCA6ICJSZWRCb290IgorMHgwMDAyMDAwMC0weDAwMGUwMDAwIDogIkxpbnV4IGtlcm5lbCIKKzB4MDAwZTAwMDAtMHgwMDNjMDAwMCA6ICJKRkZTMiIKKzB4MDAzYzAwMDAtMHgwMDNlMDAwMCA6ICJSZWRCb290IGNvbmZpZyIKKzB4MDAzZTAwMDAtMHgwMDQwMDAwMCA6ICJGSVMgZGlyZWN0b3J5IgorCitXaGF0J3MgaW1wb3J0YW50IGhlcmUgaXMgdGhlIHBvc2l0aW9uIG9mIHRoZSBwYXJ0aXRpb24gd2UgYXJlIGludGVyZXN0ZWQgaW4sCit3aGljaCBpcyB0aGUgdGhpcmQgb25lLiAgV2l0aGluIExpbnV4LCB0aGlzIGNvcnJlc3BvbmQgdG8gL2Rldi9tdGRibG9jazIuCitUaGVyZWZvcmUgdG8gYm9vdCBMaW51eCB3aXRoIHRoZSBrZXJuZWwgYW5kIGl0cyByb290IGZpbGVzeXN0ZW0gaW4gZmxhc2gsIHdlCituZWVkIHRoaXMgUmVkQm9vdCBjb21tYW5kOgorCisJZmlzIGxvYWQgIkxpbnV4IGtlcm5lbCIKKwlleGVjIC1iIDB4MTAwMDAwIC1sIDB4YzAwMDAgLWMgInJvb3Q9L2Rldi9tdGRibG9jazIiCisKK09mIGNvdXJzZSBvdGhlciBmaWxlc3lzdGVtcyB0aGFuIEpGRlMgbWlnaHQgYmUgdXNlZCwgbGlrZSBjcmFtZnMgZm9yIGV4YW1wbGUuCitZb3UgbWlnaHQgd2FudCB0byBib290IHdpdGggYSByb290IGZpbGVzeXN0ZW0gb3ZlciBORlMsIGV0Yy4gIEl0IGlzIGFsc28KK3Bvc3NpYmxlLCBhbmQgc29tZXRpbWVzIG1vcmUgY29udmVuaWVudCwgdG8gZmxhc2ggYSBmaWxlc3lzdGVtIGRpcmVjdGx5IGZyb20KK3dpdGhpbiBMaW51eCB3aGlsZSBib290ZWQgZnJvbSBhIHJhbWRpc2sgb3IgTkZTLiAgVGhlIExpbnV4IE1URCByZXBvc2l0b3J5IGhhcworbWFueSB0b29scyB0byBkZWFsIHdpdGggZmxhc2ggbWVtb3J5IGFzIHdlbGwsIHRvIGVyYXNlIGl0IGZvciBleGFtcGxlLiAgSkZGUzIKK2NhbiB0aGVuIGJlIG1vdW50ZWQgZGlyZWN0bHkgb24gYSBmcmVzaGx5IGVyYXNlZCBwYXJ0aXRpb24gYW5kIGZpbGVzIGNhbiBiZQorY29waWVkIG92ZXIgZGlyZWN0bHkuICBFdGMuLi4KKworCitSZWRCb290IHNjcmlwdGluZworLS0tLS0tLS0tLS0tLS0tLS0KKworQWxsIHRoZSBjb21tYW5kcyBhYm92ZSBhcmVuJ3Qgc28gdXNlZnVsIGlmIHRoZXkgaGF2ZSB0byBiZSB0eXBlZCBpbiBldmVyeQordGltZSB0aGUgQXNzYWJldCBpcyByZWJvb3RlZC4gIFRoZXJlZm9yZSBpdCdzIHBvc3NpYmxlIHRvIGF1dG9tYXRpemUgdGhlIGJvb3QKK3Byb2Nlc3MgdXNpbmcgUmVkQm9vdCdzIHNjcmlwdGluZyBjYXBhYmlsaXR5LgorCitGb3IgZXhhbXBsZSwgSSB1c2UgdGhpcyB0byBib290IExpbnV4IHdpdGggYm90aCB0aGUga2VybmVsIGFuZCB0aGUgcmFtZGlzaworaW1hZ2VzIHJldHJpZXZlZCBmcm9tIGEgVEZUUCBzZXJ2ZXIgb24gdGhlIG5ldHdvcms6CisKK1JlZEJvb3Q+IGZjb25maWcKK1J1biBzY3JpcHQgYXQgYm9vdDogZmFsc2UgdHJ1ZQorQm9vdCBzY3JpcHQ6CitFbnRlciBzY3JpcHQsIHRlcm1pbmF0ZSB3aXRoIGVtcHR5IGxpbmUKKz4+IGxvYWQgekltYWdlIC1yIC1iIDB4MTAwMDAwCis+PiBsb2FkIHJhbWRpc2tfa3MuZ3ogLXIgLWIgMHg4MDAwMDAKKz4+IGV4ZWMgLWIgMHgxMDAwMDAgLWwgMHhjMDAwMAorPj4KK0Jvb3Qgc2NyaXB0IHRpbWVvdXQgKDEwMDBtcyByZXNvbHV0aW9uKTogMworVXNlIEJPT1RQIGZvciBuZXR3b3JrIGNvbmZpZ3VyYXRpb246IHRydWUKK0dEQiBjb25uZWN0aW9uIHBvcnQ6IDkwMDAKK05ldHdvcmsgZGVidWcgYXQgYm9vdCB0aW1lOiBmYWxzZQorVXBkYXRlIFJlZEJvb3Qgbm9uLXZvbGF0aWxlIGNvbmZpZ3VyYXRpb24gLSBhcmUgeW91IHN1cmUgKHkvbik/IHkKKworVGhlbiwgcmVib290aW5nIHRoZSBBc3NhYmV0IGlzIGp1c3QgYSBtYXR0ZXIgb2Ygd2FpdGluZyBmb3IgdGhlIGxvZ2luIHByb21wdC4KKworCisKK05pY29sYXMgUGl0cmUKK25pY29AY2FtLm9yZworSnVuZSAxMiwgMjAwMQorCisKK1N0YXR1cyBvZiBwZXJpcGhlcmFscyBpbiAtcm1rIHRyZWUgKHVwZGF0ZWQgMTQvMTAvMjAwMSkKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworQXNzYWJldDoKKyBTZXJpYWwgcG9ydHM6CisgIFJhZGlvOgkJVFgsIFJYLCBDVFMsIERTUiwgRENELCBSSQorICAgUE06CQkJTm90IHRlc3RlZC4KKyAgQ09NOgkJCVRYLCBSWCwgQ1RTLCBEU1IsIERDRCwgUlRTLCBEVFIsIFBNCisgICBQTToJCQlOb3QgdGVzdGVkLgorICBJMkM6CQkJSW1wbGVtZW50ZWQsIG5vdCBmdWxseSB0ZXN0ZWQuCisgIEwzOgkJCUZ1bGx5IHRlc3RlZCwgcGFzcy4KKyAgIFBNOgkJCU5vdCB0ZXN0ZWQuCisKKyBWaWRlbzoKKyAgTENEOgkJCUZ1bGx5IHRlc3RlZC4gIFBNCisJCQkoTENEIGRvZXNuJ3QgbGlrZSBiZWluZyBibGFua2VkIHdpdGgKKwkJCSBuZXBvbnNldCBjb25uZWN0ZWQpCisgIFZpZGVvIG91dDoJCU5vdCBmdWxseQorCisgQXVkaW86CisgIFVEQTEzNDE6CisgICBQbGF5YmFjazoJCUZ1bGx5IHRlc3RlZCwgcGFzcy4KKyAgIFJlY29yZDoJCUltcGxlbWVudGVkLCBub3QgdGVzdGVkLgorICAgUE06CQkJTm90IHRlc3RlZC4KKworICBVQ0IxMjAwOgorICAgQXVkaW8gcGxheToJCUltcGxlbWVudGVkLCBub3QgaGVhdmlseSB0ZXN0ZWQuCisgICBBdWRpbyByZWM6CQlJbXBsZW1lbnRlZCwgbm90IGhlYXZpbHkgdGVzdGVkLgorICAgVGVsY28gYXVkaW8gcGxheToJSW1wbGVtZW50ZWQsIG5vdCBoZWF2aWx5IHRlc3RlZC4KKyAgIFRlbGNvIGF1ZGlvIHJlYzoJSW1wbGVtZW50ZWQsIG5vdCBoZWF2aWx5IHRlc3RlZC4KKyAgIFBPVFMgY29udHJvbDoJTm8KKyAgIFRvdWNoc2NyZWVuOgkJWWVzCisgICBQTToJCQlOb3QgdGVzdGVkLgorCisgT3RoZXI6CisgIFBDTUNJQToKKyAgIExQRToJCQlGdWxseSB0ZXN0ZWQsIHBhc3MuCisgIFVTQjoJCQlObworICBJUkRBOgorICAgU0lSOgkJCUZ1bGx5IHRlc3RlZCwgcGFzcy4KKyAgIEZJUjoJCQlGdWxseSB0ZXN0ZWQsIHBhc3MuCisgICBQTToJCQlOb3QgdGVzdGVkLgorCitOZXBvbnNldDoKKyBTZXJpYWwgcG9ydHM6CisgIENPTTEsMjoJVFgsIFJYLCBDVFMsIERTUiwgRENELCBSVFMsIERUUgorICAgUE06CQkJTm90IHRlc3RlZC4KKyAgVVNCOgkJCUltcGxlbWVudGVkLCBub3QgaGVhdmlseSB0ZXN0ZWQuCisgIFBDTUNJQToJCUltcGxlbWVudGVkLCBub3QgaGVhdmlseSB0ZXN0ZWQuCisgICBQTToJCQlOb3QgdGVzdGVkLgorICBDRjoJCQlJbXBsZW1lbnRlZCwgbm90IGhlYXZpbHkgdGVzdGVkLgorICAgUE06CQkJTm90IHRlc3RlZC4KKworTW9yZSBzdHVmZiBjYW4gYmUgZm91bmQgaW4gdGhlIC1ucCAoTmljb2xhcyBQaXRyZSdzKSB0cmVlLgorCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2FybS9TQTExMDAvQnJ1dHVzIGIvRG9jdW1lbnRhdGlvbi9hcm0vU0ExMTAwL0JydXR1cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMjU0YzhmCi0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9hcm0vU0ExMTAwL0JydXR1cwpAQCAtMCwwICsxLDY2IEBACitCcnV0dXMgaXMgYW4gZXZhbHVhdGlvbiBwbGF0Zm9ybSBmb3IgdGhlIFNBMTEwMCBtYW51ZmFjdHVyZWQgYnkgSW50ZWwuICAKK0ZvciBtb3JlIGRldGFpbHMsIHNlZToKKworaHR0cDovL2RldmVsb3Blci5pbnRlbC5jb20vZGVzaWduL3N0cm9uZy9hcHBsbm90cy9zYTExMDBseC9nZXRzdGFydC5odG0KKworVG8gY29tcGlsZSBmb3IgQnJ1dHVzLCB5b3UgbXVzdCBpc3N1ZSB0aGUgZm9sbG93aW5nIGNvbW1hbmRzOgorCisJbWFrZSBicnV0dXNfY29uZmlnCisJbWFrZSBjb25maWcKKwlbYWNjZXB0IGFsbCB0aGUgZGVmYXVsdHNdCisJbWFrZSB6SW1hZ2UKKworVGhlIHJlc3VsdGluZyBrZXJuZWwgd2lsbCBlbmQgdXAgaW4gbGludXgvYXJjaC9hcm0vYm9vdC96SW1hZ2UuICBUaGlzIGZpbGUKK211c3QgYmUgbG9hZGVkIGF0IDB4YzAwMDgwMDAgaW4gQnJ1dHVzJ3MgbWVtb3J5IGFuZCBleGVjdXRpb24gc3RhcnRlZCBhdAorMHhjMDAwODAwMCBhcyB3ZWxsIHdpdGggdGhlIHZhbHVlIG9mIHJlZ2lzdGVycyByMCA9IDAgYW5kIHIxID0gMTYgdXBvbgorZW50cnkuCisKK0J1dCBwcmlvciB0byBleGVjdXRlIHRoZSBrZXJuZWwsIGEgcmFtZGlzayBpbWFnZSBtdXN0IGFsc28gYmUgbG9hZGVkIGluCittZW1vcnkuICBVc2UgbWVtb3J5IGFkZHJlc3MgMHhkODAwMDAwMCBmb3IgdGhpcy4gIE5vdGUgdGhhdCB0aGUgZmlsZSAKK2NvbnRhaW5pbmcgdGhlIChjb21wcmVzc2VkKSByYW1kaXNrIGltYWdlIG11c3Qgbm90IGV4Y2VlZCA0IE1CLgorCitUeXBpY2FsbHksIHlvdSdsbCBuZWVkIGFuZ2VsYm9vdCB0byBsb2FkIHRoZSBrZXJuZWwuCitUaGUgZm9sbG93aW5nIGFuZ2VsYm9vdC5vcHQgZmlsZSBzaG91bGQgYmUgdXNlZDoKKworLS0tLS0gYmVnaW4gYW5nZWxib290Lm9wdCAtLS0tLQorYmFzZSAweGMwMDA4MDAwCitlbnRyeSAweGMwMDA4MDAwCityMCAweDAwMDAwMDAwCityMSAweDAwMDAwMDEwCitkZXZpY2UgL2Rldi90dHlTMAorb3B0aW9ucyAiOTYwMCA4TjEiCitiYXVkIDExNTIwMAorb3RoZXJmaWxlIHJhbWRpc2tfaW1nLmd6CitvdGhlcmJhc2UgMHhkODAwMDAwMAorLS0tLS0gZW5kIGFuZ2VsYm9vdC5vcHQgLS0tLS0KKworVGhlbiBsb2FkIHRoZSBrZXJuZWwgYW5kIHJhbWRpc2sgd2l0aDoKKworCWFuZ2VsYm9vdCAtZiBhbmdlbGJvb3Qub3B0IHpJbWFnZQorCitUaGUgZmlyc3QgQnJ1dHVzIHNlcmlhbCBwb3J0IChhc3N1bWVkIHRvIGJlIGxpbmtlZCB0byAvZGV2L3R0eVMwIG9uIHlvdXIKK2hvc3QgUEMpIGlzIHVzZWQgYnkgYW5nZWwgdG8gbG9hZCB0aGUga2VybmVsIGFuZCByYW1kaXNrIGltYWdlLiBUaGUgc2VyaWFsCitjb25zb2xlIGlzIHByb3ZpZGVkIHRocm91Z2ggdGhlIHNlY29uZCBCcnV0dXMgc2VyaWFsIHBvcnQuIFRvIGFjY2VzcyBpdCwKK3lvdSBtYXkgdXNlIG1pbmljb20gY29uZmlndXJlZCB3aXRoIC9kZXYvdHR5UzEsIDk2MDAgYmF1ZCwgOE4xLCBubyBmbG93Citjb250cm9sLgorCitDdXJyZW50bHkgc3VwcG9ydGVkOgorCS0gUlMyMzIgc2VyaWFsIHBvcnRzCisJLSBhdWRpbyBvdXRwdXQKKwktIExDRCBzY3JlZW4KKwktIGtleWJvYXJkCisJCitUaGUgYWN0dWFsIEJydXR1cyBzdXBwb3J0IG1heSBub3QgYmUgY29tcGxldGUgd2l0aG91dCBleHRyYSBwYXRjaGVzLiAKK0lmIHN1Y2ggcGF0Y2hlcyBleGlzdCwgdGhleSBzaG91bGQgYmUgZm91bmQgZnJvbSAKK2Z0cC5uZXR3aW5kZXIub3JnL3VzZXJzL24vbmljby4KKworQSBmdWxsIFBDTUNJQSBzdXBwb3J0IGlzIHN0aWxsIG1pc3NpbmcsIGFsdGhvdWdoIGl0J3MgcG9zc2libGUgdG8gaGFjaworc29tZSBkcml2ZXJzIGluIG9yZGVyIHRvIGRyaXZlIGFscmVhZHkgaW5zZXJ0ZWQgY2FyZHMgYXQgYm9vdCB0aW1lIHdpdGgKK2xpdHRsZSBtb2RpZmljYXRpb25zLgorCitBbnkgY29udHJpYnV0aW9uIGlzIHdlbGNvbWUuCisKK1BsZWFzZSBzZW5kIHBhdGNoZXMgdG8gbmljb0BjYW0ub3JnCisKK0hhdmUgRnVuICEKKwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9hcm0vU0ExMTAwL0NFUkYgYi9Eb2N1bWVudGF0aW9uL2FybS9TQTExMDAvQ0VSRgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iM2Q4NDUzCi0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9hcm0vU0ExMTAwL0NFUkYKQEAgLTAsMCArMSwyOSBAQAorKioqIFRoZSBTdHJvbmdBUk0gdmVyc2lvbiBvZiB0aGUgQ2VyZkJvYXJkL0N1YmUgaGFzIGJlZW4gZGlzY29udGludWVkICoqKgorCitUaGUgSW50cmluc3ljIENlcmZCb2FyZCBpcyBhIFN0cm9uZ0FSTSAxMTEwLWJhc2VkIGNvbXB1dGVyIG9uIGEgYm9hcmQKK3RoYXQgbWVhc3VyZXMgYXBwcm94aW1hdGVseSAyIiBzcXVhcmUuIEl0IGluY2x1ZGVzIGFuIEV0aGVybmV0Citjb250cm9sbGVyLCBhbiBSUzIzMi1jb21wYXRpYmxlIHNlcmlhbCBwb3J0LCBhIFVTQiBmdW5jdGlvbiBwb3J0LCBhbmQKK29uZSBDb21wYWN0Rmxhc2grIHNsb3Qgb24gdGhlIGJhY2suIFBpY3R1cmVzIGNhbiBiZSBmb3VuZCBhdCB0aGUKK0ludHJpbnN5YyB3ZWJzaXRlLCBodHRwOi8vd3d3LmludHJpbnN5Yy5jb20uCisKK1RoaXMgZG9jdW1lbnQgZGVzY3JpYmVzIHRoZSBzdXBwb3J0IGluIHRoZSBMaW51eCBrZXJuZWwgZm9yIHRoZQorSW50cmluc3ljIENlcmZCb2FyZC4KKworU3VwcG9ydGVkIGluIHRoaXMgdmVyc2lvbjoKKyAgIC0gQ29tcGFjdEZsYXNoKyBzbG90IChzZWxlY3QgUENNQ0lBIGluIEdlbmVyYWwgU2V0dXAgYW5kIGFueSBvcHRpb25zCisgICAgIHRoYXQgbWF5IGJlIHJlcXVpcmVkKQorICAgLSBPbmJvYXJkIENyeXN0YWwgQ1M4OTAwIEV0aGVybmV0IGNvbnRyb2xsZXIgKENlcmYgQ1M4OTAwQSBzdXBwb3J0IGluCisgICAgIE5ldHdvcmsgRGV2aWNlcykKKyAgIC0gU2VyaWFsIHBvcnRzIHdpdGggYSBzZXJpYWwgY29uc29sZSAoaGFyZGNvZGVkIHRvIDM4NDAwIDhOMSkKKworSW4gb3JkZXIgdG8gZ2V0IHRoaXMga2VybmVsIG9udG8geW91ciBDZXJmLCB5b3UgbmVlZCBhIHNlcnZlciB0aGF0IHJ1bnMKK2JvdGggQk9PVFAgYW5kIFRGVFAuIERldGFpbGVkIGluc3RydWN0aW9ucyBzaG91bGQgaGF2ZSBjb21lIHdpdGggeW91cgorZXZhbHVhdGlvbiBraXQgb24gaG93IHRvIHVzZSB0aGUgYm9vdGxvYWRlci4gVGhpcyBzZXJpZXMgb2YgY29tbWFuZHMKK3dpbGwgc3VmZmljZToKKworICAgbWFrZSBBUkNIPWFybSBDUk9TU19DT01QSUxFPWFybS1saW51eC0gY2VyZmN1YmVfZGVmY29uZmlnCisgICBtYWtlIEFSQ0g9YXJtIENST1NTX0NPTVBJTEU9YXJtLWxpbnV4LSB6SW1hZ2UKKyAgIG1ha2UgQVJDSD1hcm0gQ1JPU1NfQ09NUElMRT1hcm0tbGludXgtIG1vZHVsZXMKKyAgIGNwIGFyY2gvYXJtL2Jvb3QvekltYWdlIDxURlRQIGRpcmVjdG9yeT4KKworc3VwcG9ydEBpbnRyaW5zeWMuY29tCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2FybS9TQTExMDAvRnJlZUJpcmQgYi9Eb2N1bWVudGF0aW9uL2FybS9TQTExMDAvRnJlZUJpcmQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWRhMjhiMwotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vYXJtL1NBMTEwMC9GcmVlQmlyZApAQCAtMCwwICsxLDIxIEBACitGcmVlYmlyZC0xLjEgaXMgcHJvZHVjZWQgYnkgTGVnbmVkKEMpICxJbmMuCisoaHR0cDovL3d3dy5sZWdlbmQuY29tLmNuKQorYW5kIHNvZnR3YXJlL2xpbnV4IG1haW5hdGluZWQgYnkgQ292ZW50aXZlKEMpLEluYy4KKyhodHRwOi8vd3d3LmNvdmVudGl2ZS5jb20pCisKK0Jhc2VkIG9uIHRoZSBOaWNvbGFzJ3Mgc3Ryb25nYXJtIGtlcm5lbCB0cmVlLgorCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KK01haW50YWluZXI6CisKK0NoZXN0ZXIgS3VvIDxjaGVzdGVyQGNvdmVudGl2ZS5jb20+CisJICAgIDxjaGVzdGVyQGxpbnV4Lm9yZy50dz4KKworQXV0aG9yIDoKK1RpbSB3dSA8dGltd3VAY292ZW50aXZlLmNvbT4KK0NJSCA8Y2loQGNvdmVudGl2ZS5jb20+CitFcmljIFBlbmcgPGVyaWNwZW5nQGNvdmVudGl2ZS5jb20+CitKZWZmIExlZSA8amVmZl9sZWVAY292ZW50aXZlLmNvbT4KK0FsbGVuIENoZW5nCitUb255IExpdSA8dG9ueWxpdUBjb3ZlbnRpdmUuY29tPgorCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2FybS9TQTExMDAvR3JhcGhpY3NDbGllbnQgYi9Eb2N1bWVudGF0aW9uL2FybS9TQTExMDAvR3JhcGhpY3NDbGllbnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGZhN2U4MAotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vYXJtL1NBMTEwMC9HcmFwaGljc0NsaWVudApAQCAtMCwwICsxLDk4IEBACitBRFMgR3JhcGhpY3NDbGllbnQgUGx1cyBTaW5nbGUgQm9hcmQgQ29tcHV0ZXIKKworRm9yIG1vcmUgZGV0YWlscywgY29udGFjdCBBcHBsaWVkIERhdGEgU3lzdGVtcyBvciBzZWUKK2h0dHA6Ly93d3cuYXBwbGllZGRhdGEubmV0L3Byb2R1Y3RzLmh0bWwKKworVGhlIG9yaWdpbmFsIExpbnV4IHN1cHBvcnQgZm9yIHRoaXMgcHJvZHVjdCBoYXMgYmVlbiBwcm92aWRlZCBieSAKK05pY29sYXMgUGl0cmUgPG5pY29AY2FtLm9yZz4uIENvbnRpbnVlZCBkZXZlbG9wbWVudCB3b3JrIGJ5CitXb29qdW5nIEh1aCA8d2h1aEBhcHBsaWVkZGF0YS5uZXQ+CisKK0l0J3MgY3VycmVudGx5IHBvc3NpYmxlIHRvIG1vdW50IGEgcm9vdCBmaWxlc3lzdGVtIHZpYSBORlMgcHJvdmlkaW5nIGEKK2NvbXBsZXRlIExpbnV4IGVudmlyb25tZW50LiAgT3RoZXJ3aXNlIGEgcmFtZGlzayBpbWFnZSBtYXkgYmUgdXNlZC4gIFRoZQorYm9hcmQgc3VwcG9ydHMgTVREL0pGRlMsIHNvIHlvdSBjb3VsZCBhbHNvIG1vdW50IHNvbWV0aGluZyBvbiB0aGVyZS4KKworVXNlICdtYWtlIGdyYXBoaWNzY2xpZW50X2NvbmZpZycgYmVmb3JlIGFueSAnbWFrZSBjb25maWcnLiAgVGhpcyB3aWxsIHNldCB1cAorZGVmYXVsdHMgZm9yIEdyYXBoaWNzQ2xpZW50IFBsdXMgc3VwcG9ydC4KKworVGhlIGtlcm5lbCB6SW1hZ2UgaXMgbGlua2VkIHRvIGJlIGxvYWRlZCBhbmQgZXhlY3V0ZWQgYXQgMHhjMDIwMDAwMC4gIAorQWxzbyB0aGUgZm9sbG93aW5nIHJlZ2lzdGVycyBzaG91bGQgaGF2ZSB0aGUgc3BlY2lmaWVkIHZhbHVlcyB1cG9uIGVudHJ5OgorCisJcjAgPSAwCisJcjEgPSAyOQkodGhpcyBpcyB0aGUgR3JhcGhpY3NDbGllbnQgYXJjaGl0ZWN0dXJlIG51bWJlcikKKworTGludXggY2FuICBiZSB1c2VkIHdpdGggdGhlIEFEUyBCb290TG9hZGVyIHRoYXQgc2hpcHMgd2l0aCB0aGUKK25ld2VyIHJldiBib2FyZHMuIFNlZSB0aGVpciBkb2N1bWVudGF0aW9uIG9uIGhvdyB0byBsb2FkIExpbnV4LgorQW5nZWwgaXMgbm90IGF2YWlsYWJsZSBmb3IgdGhlIEdyYXBoaWNzQ2xpZW50IFBsdXMgQUZBSUsuCisKK1RoZXJlIGlzIGEgIGJvYXJkIGtub3duIGFzIGp1c3QgdGhlIEdyYXBoaWNzQ2xpZW50IHRoYXQgQURTIHVzZWQgdG8KK3Byb2R1Y2UgYnV0IGhhcyBlbmQgb2YgbGlmZWQuIFRoaXMgY29kZSB3aWxsIG5vdCB3b3JrIG9uIHRoZSBvbGRlcgorYm9hcmQgd2l0aCB0aGUgQURTIGJvb3Rsb2FkZXIsIGJ1dCBzaG91bGQgc3RpbGwgd29yayB3aXRoIEFuZ2VsLAorYXMgb3V0bGluZWQgYmVsb3cuICBJbiBhbnkgY2FzZSwgaWYgeW91J3JlIHBsYW5uaW5nIG9uIGRlcGxveWluZworc29tZXRoaW5nIGVuIG1hc3NlLCB5b3Ugc2hvdWxkIHByb2JhYmx5IGdldCB0aGUgbmV3ZXIgYm9hcmQuCisKK0lmIHVzaW5nIEFuZ2VsIG9uIHRoZSBvbGRlciBib2FyZHMsIGhlcmUgaXMgYSB0eXBpY2FsIGFuZ2VsLm9wdCBvcHRpb24gZmlsZQoraWYgdGhlIGtlcm5lbCBpcyBsb2FkZWQgdGhyb3VnaCB0aGUgQW5nZWwgRGVidWcgTW9uaXRvcjoKKworLS0tLS0gYmVnaW4gYW5nZWxib290Lm9wdCAtLS0tLQorYmFzZSAweGMwMjAwMDAwCitlbnRyeSAweGMwMjAwMDAwCityMCAweDAwMDAwMDAwCityMSAweDAwMDAwMDFkCitkZXZpY2UgL2Rldi90dHlTMQorb3B0aW9ucyAiMzg0MDAgOE4xIgorYmF1ZCAxMTUyMDAKKyNvdGhlcmZpbGUgcmFtZGlzay5negorI290aGVyYmFzZSAweGMwODAwMDAwCitleGVjIG1pbmljb20KKy0tLS0tIGVuZCBhbmdlbGJvb3Qub3B0IC0tLS0tCisKK1RoZW4gdGhlIGtlcm5lbCAoYW5kIHJhbWRpc2sgaWYgb3RoZXJmaWxlL290aGVyYmFzZSBsaW5lcyBhYm92ZSBhcmUKK3VuY29tbWVudGVkKSB3b3VsZCBiZSBsb2FkZWQgd2l0aDoKKworCWFuZ2VsYm9vdCAtZiBhbmdlbGJvb3Qub3B0IHpJbWFnZQorCitIZXJlIGl0IGlzIGFzc3VtZWQgdGhhdCB0aGUgYm9hcmQgaXMgY29ubmVjdGVkIHRvIHR0eVMxIG9uIHlvdXIgUEMKK2FuZCB0aGF0IG1pbmljb20gaXMgcHJlY29uZmlndXJlZCB3aXRoIC9kZXYvdHR5UzEsIDM4NDAwIGJhdWQsIDhOMSwgbm8gZmxvdworY29udHJvbCBieSBkZWZhdWx0LgorCitJZiBhbnkgb3RoZXIgYm9vdGxvYWRlciBpcyB1c2VkLCBlbnN1cmUgaXQgYWNjb21wbGlzaCB0aGUgc2FtZSwgZXNwZWNpYWxseQorZm9yIHIwL3IxIHJlZ2lzdGVyIHZhbHVlcyBiZWZvcmUganVtcGluZyBpbnRvIHRoZSBrZXJuZWwuCisKKworU3VwcG9ydGVkIHBlcmlwaGVyYWxzOgorLSBTQTExMDAgTENEIGZyYW1lIGJ1ZmZlciAoOC8xNmJwcC4uLnNvcnQgb2YpCistIG9uLWJvYXJkIFNNQyA5MkM5NiBldGhlcm5ldCBOSUMKKy0gU0ExMTAwIHNlcmlhbCBwb3J0CistIGZsYXNoIG1lbW9yeSBhY2Nlc3MgKE1URC9KRkZTKQorLSBwY21jaWEKKy0gdG91Y2hzY3JlZW4odWNiMTIwMCkKKy0gcHMvMiBrZXlib2FyZAorLSBjb25zb2xlIG9uIExDRCBzY3JlZW4KKy0gc2VyaWFsIHBvcnRzICh0dHlTWzAtMl0pCisgIC0gdHR5UzAgaXMgZGVmYXVsdCBmb3Igc2VyaWFsIGNvbnNvbGUKKy0gU21hcnQgSS9PIChBREMsIGtleXBhZCwgZGlnaXRhbCBpbnB1dHMsIGV0YykKKyAgU2VlIGh0dHA6Ly93d3cuYXBwbGllZGRhdGEuY29tL2RldmVsb3BlcnMvbGludXggZm9yIElPQ1RMIGRvY3VtZW50YXRpb24KKyAgYW5kIGV4YW1wbGUgdXNlciBzcGFjZSBjb2RlLiBwcy8yIGtleWJkIGlzIG11bHRpcGxleGVkIHRocm91Z2ggdGhpcyBkcml2ZXIKKworVG8gZG86CistIFVDQjEyMDAgYXVkaW8gd2l0aCBuZXcgdWNiX2dlbmVyaWMgbGF5ZXIKKy0gZXZlcnl0aGluZyBlbHNlISAgOi0pCisKK05vdGVzOgorCistIFRoZSBmbGFzaCBvbiBib2FyZCBpcyBkaXZpZGVkIGludG8gMyBwYXJ0aXRpb25zLiAgbXRkMCBpcyB3aGVyZQorICB0aGUgQURTIGJvb3QgUk9NIGFuZCB6SW1hZ2UgaXMgc3RvcmVkLiAgSXQncyBiZWVuIG1hcmtlZCBhcworICByZWFkLW9ubHkgdG8ga2VlcCB5b3UgZnJvbSBibGFzdGluZyBvdmVyIHRoZSBib290bG9hZGVyLiA6KSAgbXRkMSBpcworICBmb3IgdGhlIHJhbWRpc2suZ3ogaW1hZ2UuICBtdGQyIGlzIHVzZXIgZmxhc2ggc3BhY2UgYW5kIGNhbiBiZQorICB1dGlsaXplZCBmb3IgZWl0aGVyIEpGRlMgb3IgaWYgeW91J3JlIGZlZWxpbmcgY3JhenksIHJ1bm5pbmcgZXh0MgorICBvbiB0b3Agb2YgaXQuIElmIHlvdSdyZSBub3QgdXNpbmcgdGhlIEFEUyBib290bG9hZGVyLCB5b3UncmUKKyAgd2VsY29tZSB0byBibGFzdCBvdmVyIHRoZSBtdGQxIHBhcnRpdGlvbiBhbHNvLgorCistIDE2YnBwIG1vZGUgcmVxdWlyZXMgYSBkaWZmZXJlbnQgY2FibGUgdGhhbiB3aGF0IHNoaXBzIHdpdGggdGhlIGJvYXJkLgorICBDb250YWN0IEFEUyBvciBsb29rIHRocm91Z2ggdGhlIG1hbnVhbCB0byB3aXJlIHlvdXIgb3duLiBDdXJyZW50bHksCisgIGlmIHlvdSBjb21waWxlIHdpdGggMTZiaXQgbW9kZSBzdXBwb3J0IGFuZCBzd2l0Y2ggaW50byBhIGxvd2VyIGJwcAorICBtb2RlLCB0aGUgdGltaW5nIGlzIG9mZiBzbyB0aGUgaW1hZ2UgaXMgY29ycnVwdGVkLiAgVGhpcyB3aWxsIGJlCisgIGZpeGVkIHNvb24uCisKK0FueSBjb250cmlidXRpb24gY2FuIGJlIHNlbnQgdG8gbmljb0BjYW0ub3JnIGFuZCB3aWxsIGJlIGdyZWF0bHkgd2VsY29tZSEKKwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9hcm0vU0ExMTAwL0dyYXBoaWNzTWFzdGVyIGIvRG9jdW1lbnRhdGlvbi9hcm0vU0ExMTAwL0dyYXBoaWNzTWFzdGVyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRkMjg3NDUKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL2FybS9TQTExMDAvR3JhcGhpY3NNYXN0ZXIKQEAgLTAsMCArMSw1MyBAQAorQURTIEdyYXBoaWNzTWFzdGVyIFNpbmdsZSBCb2FyZCBDb21wdXRlcgorCitGb3IgbW9yZSBkZXRhaWxzLCBjb250YWN0IEFwcGxpZWQgRGF0YSBTeXN0ZW1zIG9yIHNlZQoraHR0cDovL3d3dy5hcHBsaWVkZGF0YS5uZXQvcHJvZHVjdHMuaHRtbAorCitUaGUgb3JpZ2luYWwgTGludXggc3VwcG9ydCBmb3IgdGhpcyBwcm9kdWN0IGhhcyBiZWVuIHByb3ZpZGVkIGJ5CitOaWNvbGFzIFBpdHJlIDxuaWNvQGNhbS5vcmc+LiBDb250aW51ZWQgZGV2ZWxvcG1lbnQgd29yayBieQorV29vanVuZyBIdWggPHdodWhAYXBwbGllZGRhdGEubmV0PgorCitVc2UgJ21ha2UgZ3JhcGhpY3NtYXN0ZXJfY29uZmlnJyBiZWZvcmUgYW55ICdtYWtlIGNvbmZpZycuCitUaGlzIHdpbGwgc2V0IHVwIGRlZmF1bHRzIGZvciBHcmFwaGljc01hc3RlciBzdXBwb3J0LgorCitUaGUga2VybmVsIHpJbWFnZSBpcyBsaW5rZWQgdG8gYmUgbG9hZGVkIGFuZCBleGVjdXRlZCBhdCAweGMwNDAwMDAwLgorCitMaW51eCBjYW4gIGJlIHVzZWQgd2l0aCB0aGUgQURTIEJvb3RMb2FkZXIgdGhhdCBzaGlwcyB3aXRoIHRoZQorbmV3ZXIgcmV2IGJvYXJkcy4gU2VlIHRoZWlyIGRvY3VtZW50YXRpb24gb24gaG93IHRvIGxvYWQgTGludXguCisKK1N1cHBvcnRlZCBwZXJpcGhlcmFsczoKKy0gU0ExMTAwIExDRCBmcmFtZSBidWZmZXIgKDgvMTZicHAuLi5zb3J0IG9mKQorLSBTQTExMTEgVVNCIE1hc3RlcgorLSBvbi1ib2FyZCBTTUMgOTJDOTYgZXRoZXJuZXQgTklDCistIFNBMTEwMCBzZXJpYWwgcG9ydAorLSBmbGFzaCBtZW1vcnkgYWNjZXNzIChNVEQvSkZGUykKKy0gcGNtY2lhLCBjb21wYWN0IGZsYXNoCistIHRvdWNoc2NyZWVuKHVjYjEyMDApCistIHBzLzIga2V5Ym9hcmQKKy0gY29uc29sZSBvbiBMQ0Qgc2NyZWVuCistIHNlcmlhbCBwb3J0cyAodHR5U1swLTJdKQorICAtIHR0eVMwIGlzIGRlZmF1bHQgZm9yIHNlcmlhbCBjb25zb2xlCistIFNtYXJ0IEkvTyAoQURDLCBrZXlwYWQsIGRpZ2l0YWwgaW5wdXRzLCBldGMpCisgIFNlZSBodHRwOi8vd3d3LmFwcGxpZWRkYXRhLmNvbS9kZXZlbG9wZXJzL2xpbnV4IGZvciBJT0NUTCBkb2N1bWVudGF0aW9uCisgIGFuZCBleGFtcGxlIHVzZXIgc3BhY2UgY29kZS4gcHMvMiBrZXliZCBpcyBtdWx0aXBsZXhlZCB0aHJvdWdoIHRoaXMgZHJpdmVyCisKK1RvIGRvOgorLSBldmVyeXRoaW5nIGVsc2UhICA6LSkKKworTm90ZXM6CisKKy0gVGhlIGZsYXNoIG9uIGJvYXJkIGlzIGRpdmlkZWQgaW50byAzIHBhcnRpdGlvbnMuICBtdGQwIGlzIHdoZXJlCisgIHRoZSB6SW1hZ2UgaXMgc3RvcmVkLiAgSXQncyBiZWVuIG1hcmtlZCBhcyByZWFkLW9ubHkgdG8ga2VlcCB5b3UKKyAgZnJvbSBibGFzdGluZyBvdmVyIHRoZSBib290bG9hZGVyLiA6KSAgbXRkMSBpcworICBmb3IgdGhlIHJhbWRpc2suZ3ogaW1hZ2UuICBtdGQyIGlzIHVzZXIgZmxhc2ggc3BhY2UgYW5kIGNhbiBiZQorICB1dGlsaXplZCBmb3IgZWl0aGVyIEpGRlMgb3IgaWYgeW91J3JlIGZlZWxpbmcgY3JhenksIHJ1bm5pbmcgZXh0MgorICBvbiB0b3Agb2YgaXQuIElmIHlvdSdyZSBub3QgdXNpbmcgdGhlIEFEUyBib290bG9hZGVyLCB5b3UncmUKKyAgd2VsY29tZSB0byBibGFzdCBvdmVyIHRoZSBtdGQxIHBhcnRpdGlvbiBhbHNvLgorCistIDE2YnBwIG1vZGUgcmVxdWlyZXMgYSBkaWZmZXJlbnQgY2FibGUgdGhhbiB3aGF0IHNoaXBzIHdpdGggdGhlIGJvYXJkLgorICBDb250YWN0IEFEUyBvciBsb29rIHRocm91Z2ggdGhlIG1hbnVhbCB0byB3aXJlIHlvdXIgb3duLiBDdXJyZW50bHksCisgIGlmIHlvdSBjb21waWxlIHdpdGggMTZiaXQgbW9kZSBzdXBwb3J0IGFuZCBzd2l0Y2ggaW50byBhIGxvd2VyIGJwcAorICBtb2RlLCB0aGUgdGltaW5nIGlzIG9mZiBzbyB0aGUgaW1hZ2UgaXMgY29ycnVwdGVkLiAgVGhpcyB3aWxsIGJlCisgIGZpeGVkIHNvb24uCisKK0FueSBjb250cmlidXRpb24gY2FuIGJlIHNlbnQgdG8gbmljb0BjYW0ub3JnIGFuZCB3aWxsIGJlIGdyZWF0bHkgd2VsY29tZSEKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vYXJtL1NBMTEwMC9IVVdfV0VCUEFORUwgYi9Eb2N1bWVudGF0aW9uL2FybS9TQTExMDAvSFVXX1dFQlBBTkVMCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZkNTZiNDgKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL2FybS9TQTExMDAvSFVXX1dFQlBBTkVMCkBAIC0wLDAgKzEsMTcgQEAKK1RoZSBIVVdfV0VCUEFORUwgaXMgYSBwcm9kdWN0IG9mIHRoZSBnZXJtYW4gY29tcGFueSBIb2VmdCAmIFdlc3NlbCBBRworCitJZiB5b3Ugd2FudCBtb3JlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlzaXQKK2h0dHA6Ly93d3cuaG9lZnQtd2Vzc2VsLmRlCisKK1RvIGJ1aWxkIHRoZSBrZXJuZWw6CisJbWFrZSBodXdfd2VicGFuZWxfY29uZmlnCisJbWFrZSBvbGRjb25maWcKKwlbYWNjZXB0IGFsbCBkZWZhdWx0c10KKwltYWtlIHpJbWFnZQorCitNb3N0bHkgb2YgdGhlIHdvcmsgaXMgZG9uZSBieToKK1JvbWFuIEpvcmRhbiAgICAgICAgIGpvckBob2VmdC13ZXNzZWwuZGUKK0NocmlzdG9waCBTY2h1bHogICAgc2NodUBob2VmdC13ZXNzZWwuZGUKKworMjAwMC8xMi8xOC8KKwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9hcm0vU0ExMTAwL0l0c3kgYi9Eb2N1bWVudGF0aW9uL2FybS9TQTExMDAvSXRzeQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYjU5NDUzCi0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9hcm0vU0ExMTAwL0l0c3kKQEAgLTAsMCArMSwzOSBAQAorSXRzeSBpcyBhIHJlc2VhcmNoIHByb2plY3QgZG9uZSBieSB0aGUgV2VzdGVybiBSZXNlYXJjaCBMYWIsIGFuZCBTeXN0ZW1zCitSZXNlYXJjaCBDZW50ZXIgaW4gUGFsbyBBbHRvLCBDQS4gVGhlIEl0c3kgcHJvamVjdCBpcyBvbmUgb2Ygc2V2ZXJhbAorcmVzZWFyY2ggcHJvamVjdHMgYXQgQ29tcGFxIHRoYXQgYXJlIHJlbGF0ZWQgdG8gcG9ja2V0IGNvbXB1dGluZy4KKworRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZToKKworCWh0dHA6Ly93d3cucmVzZWFyY2guZGlnaXRhbC5jb20vd3JsL2l0c3kvaW5kZXguaHRtbAorCitOb3RlcyBvbiBpbml0aWFsIDIuNCBJdHN5IHN1cHBvcnQgKDgvMjcvMjAwMCkgOgorVGhlIHBvcnQgd2FzIGRvbmUgb24gYW4gSXRzeSB2ZXJzaW9uIDEuNSBtYWNoaW5lIHdpdGggYSBkYXVnaHRlcmNhcmQgd2l0aAorNjQgTWVnIG9mIERSQU0gYW5kIDMyIE1lZyBvZiBGbGFzaC4gVGhlIGluaXRpYWwgd29yayBpbmNsdWRlcyBzdXBwb3J0IGZvcgorc2VyaWFsIGNvbnNvbGUgKHRvIHNlZSB3aGF0IHlvdSdyZSBkb2luZykuICBObyBvdGhlciBkZXZpY2VzIGhhdmUgYmVlbgorZW5hYmxlZC4KKworVG8gYnVpbGQsIGRvIGEgIm1ha2UgbWVudWNvbmZpZyIgKG9yIHhtZW51Y29uZmlnKSBhbmQgc2VsZWN0IEl0c3kgc3VwcG9ydC4KK0Rpc2FibGUgRmxhc2ggYW5kIExDRCBzdXBwb3J0LiBhbmQgdGhlbiBkbyBhIG1ha2UgekltYWdlLgorRmluYWxseSwgeW91IHdpbGwgbmVlZCB0byBjZCB0byBhcmNoL2FybS9ib290L3Rvb2xzIGFuZCBleGVjdXRlIGEgbWFrZSB0aGVyZQordG8gYnVpbGQgdGhlIHBhcmFtcy1pdHN5IHByb2dyYW0gdXNlZCB0byBib290IHRoZSBrZXJuZWwuCisKK0luIG9yZGVyIHRvIGluc3RhbGwgdGhlIHBvcnQgb2YgMi40IHRvIHRoZSBpdHN5LCBZb3Ugd2lsbCBuZWVkIHRvIHNldCB0aGUKK2NvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyBpbiB0aGUgbW9uaXRvciBhcyBmb2xsb3dzOgorQXJnIDE6MHgwODM0MDAwMCwgQXJnMjogMHhDMDAwMDAwMCwgQXJnMzoxOCAoMHgxMiksIEFyZzQ6MAorTWFrZSBzdXJlIHRoZSBzdGFydC1yb3V0aW5lIGFkZHJlc3MgaXMgc2V0IHRvIDB4MDAwNjAwMDAuCisKK05leHQsIGZsYXNoIHRoZSBwYXJhbXMtaXRzeSBwcm9ncmFtIHRvIDB4MDAwNjAwMDAgKCJwIDEgMHgwMDA2MDAwMCIgaW4gdGhlCitmbGFzaCBtZW51KSAgRmxhc2ggdGhlIGtlcm5lbCBpbiBhcmNoL2FybS9ib290L3pJbWFnZSBpbnRvIDB4MDgzNDAwMDAKKygicCAxIDB4MDAzNDAwMDAiKS4gIEZpbmFsbHkgZmxhc2ggYW4gaW5pdGlhbCByYW1kaXNrIGludG8gMHhDODAwMDAwMAorKCJwIDIgMHgwIikgIFdlIHVzZWQgcmFtZGlzay0yLTMwLmd6IGZyb20gdGhlIDAuMTEgdmVyc2lvbiBkaXJlY3Rvcnkgb24KK2hhbmRoZWxkcy5vcmcuCisKK1RoZSBzZXJpYWwgY29ubmVjdGlvbiB3ZSBlc3RhYmxpc2hlZCB3YXMgYXQ6CisgOC1iaXQgZGF0YSwgbm8gcGFyaXR5LCAxIHN0b3AgYml0KHMpLCAxMTUyMDAuMDAgYi9zLiBpbiB0aGUgbW9uaXRvciwgaW4gdGhlCitwYXJhbXMtaXRzeSBwcm9ncmFtLCBhbmQgaW4gdGhlIGtlcm5lbCBpdHNlbGYuICBUaGlzIGNhbiBiZSBjaGFuZ2VkLCBidXQKK25vdCBlYXNpbHkuIFRoZSBtb25pdG9yIHBhcmFtZXRlcnMgYXJlIGVhc2lseSBjaGFuZ2VkLCB0aGUgcGFyYW1zIHByb2dyYW0KK3NldHVwIGlzIGFzc2VtYmx5IG91dGwncywgYW5kIHRoZSBrZXJuZWwgaXMgYSBjb25maWd1cmF0aW9uIGl0ZW0gc3BlY2lmaWMgdG8KK3RoZSBpdHN5LiAoaS5lLiBncmVwIGZvciBDT05GSUdfU0ExMTAwX0lUU1kgYW5kIHlvdSdsbCBmaW5kIHdoZXJlIGl0IGlzLikKKworCitUaGlzIHNob3VsZCBnZXQgeW91IGEgcHJvcGVybHkgYm9vdGluZyAyLjQga2VybmVsIG9uIHRoZSBpdHN5LgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9hcm0vU0ExMTAwL0xBUlQgYi9Eb2N1bWVudGF0aW9uL2FybS9TQTExMDAvTEFSVApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZjczZjUxCi0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9hcm0vU0ExMTAwL0xBUlQKQEAgLTAsMCArMSwxNCBAQAorTGludXggQWR2YW5jZWQgUmFkaW8gVGVybWluYWwgKExBUlQpCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworVGhlIExBUlQgaXMgYSBzbWFsbCAoNy41IHggMTBjbSkgU0EtMTEwMCBib2FyZCwgZGVzaWduZWQgZm9yIGVtYmVkZGVkCithcHBsaWNhdGlvbnMuIEl0IGhhcyAzMiBNQiBEUkFNLCA0TUIgRmxhc2ggUk9NLCBkb3VibGUgUlMyMzIgYW5kIGFsbAorb3RoZXIgU3Ryb25nQVJNLWdhZGdldHMuIEFsbW9zdCBhbGwgU0Egc2lnbmFscyBhcmUgZGlyZWN0bHkgYWNjZXNzaWJsZQordGhyb3VnaCBhIG51bWJlciBvZiBjb25uZWN0b3JzLiBUaGUgcG93ZXJzdXBwbHkgYWNjZXB0cyB2b2x0YWdlcworYmV0d2VlbiAzLjVWIGFuZCAxNlYgYW5kIGlzIG92ZXJkaW1lbnNpb25lZCB0byBzdXBwb3J0IGEgcmFuZ2Ugb2YKK2RhdWdodGVyYm9hcmRzLiBBIHF1YWQgRXRoZXJuZXQgLyBJREUgLyBQUzIgLyBzb3VuZCBkYXVnaHRlcmJvYXJkCitpcyB1bmRlciBkZXZlbG9wbWVudCwgd2l0aCBwbGVudHkgb2Ygb3RoZXJzIGluIGRpZmZlcmVudCBzdGFnZXMgb2YKK3BsYW5uaW5nLgorCitUaGUgaGFyZHdhcmUgZGVzaWducyBmb3IgdGhpcyBib2FyZCBoYXZlIGJlZW4gcmVsZWFzZWQgdW5kZXIgYW4gb3BlbiBsaWNlbnNlOworc2VlIHRoZSBMQVJUIHBhZ2UgYXQgaHR0cDovL3d3dy5sYXJ0LnR1ZGVsZnQubmwvIGZvciBtb3JlIGluZm9ybWF0aW9uLgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9hcm0vU0ExMTAwL1BMRUIgYi9Eb2N1bWVudGF0aW9uL2FybS9TQTExMDAvUExFQgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MmNhZTA2NgotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vYXJtL1NBMTEwMC9QTEVCCkBAIC0wLDAgKzEsMTEgQEAKK1RoZSBQTEVCIHByb2plY3Qgd2FzIHN0YXJ0ZWQgYXMgYSBzdHVkZW50IGluaXRpYXRpdmUgYXQgdGhlIFNjaG9vbCBvZgorQ29tcHV0ZXIgU2NpZW5jZSBhbmQgRW5naW5lZXJpbmcsIFVuaXZlcnNpdHkgb2YgTmV3IFNvdXRoIFdhbGVzIHRvIG1ha2UgYQorcG9ja2V0IGNvbXB1dGVyIGNhcGFibGUgb2YgcnVubmluZyB0aGUgTGludXggS2VybmVsLgorCitQTEVCIHN1cHBvcnQgaGFzIHlldCB0byBiZSBmdWxseSBpbnRlZ3JhdGVkLgorCitGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlOgorCisJaHR0cDovL3d3dy5jc2UudW5zdy5lZHUuYXUvfnBsZWIvCisKKwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9hcm0vU0ExMTAwL1BhbmdvbGluIGIvRG9jdW1lbnRhdGlvbi9hcm0vU0ExMTAwL1BhbmdvbGluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA3N2E2MTIKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL2FybS9TQTExMDAvUGFuZ29saW4KQEAgLTAsMCArMSwyMyBAQAorUGFuZ29saW4gaXMgYSBTdHJvbmdBUk0gMTExMC1iYXNlZCBldmFsdWF0aW9uIHBsYXRmb3JtIHByb2R1Y2VkCitieSBEaWFsb2d1ZSBUZWNobm9sb2d5IChodHRwOi8vd3d3LmRpYWxvZ3VlLmNvbS50dy8pLgorSXQgaGFzIEVJU0Egc2xvdHMgZm9yIGVhc2Ugb2YgY29uZmlndXJhdGlvbiB3aXRoIFNEUkFNL0ZsYXNoCittZW1vcnkgY2FyZCwgVVNCL1NlcmlhbC9BdWRpbyBjYXJkLCBDb21wYWN0IEZsYXNoIGNhcmQsCitQQ01DSUEvSURFIGNhcmQgYW5kIFRGVC1MQ0QgY2FyZC4KKworVG8gY29tcGlsZSBmb3IgUGFuZ29saW4sIHlvdSBtdXN0IGlzc3VlIHRoZSBmb2xsb3dpbmcgY29tbWFuZHM6CisKKwltYWtlIHBhbmdvbGluX2NvbmZpZworCW1ha2Ugb2xkY29uZmlnCisJbWFrZSB6SW1hZ2UKKworU3VwcG9ydGVkIHBlcmlwaGVyYWxzOgorLSBTQTExMTAgc2VyaWFsIHBvcnQgKFVBUlQxL1VBUlQyL1VBUlQzKQorLSBmbGFzaCBtZW1vcnkgYWNjZXNzCistIGNvbXBhY3QgZmxhc2ggZHJpdmVyCistIFVEQTEzNDEgc291bmQgZHJpdmVyCistIFNBMTEwMCBMQ0QgY29udHJvbGxlciBmb3IgODAweDYwMCAxNmJwcCBURlQtTENECistIE1RLTIwMCBkcml2ZXIgZm9yIDgwMHg2MDAgMTZicHAgVEZULUxDRAorLSBQZW5tb3VudCh0b3VjaCBwYW5lbCkgZHJpdmVyCistIFBDTUNJQSBkcml2ZXIKKy0gU01DOTFDOTQgTEFOIGRyaXZlcgorLSBJREUgZHJpdmVyIChleHBlcmltZW50YWwpCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2FybS9TQTExMDAvVGlmb24gYi9Eb2N1bWVudGF0aW9uL2FybS9TQTExMDAvVGlmb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGQxOTM0ZAotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vYXJtL1NBMTEwMC9UaWZvbgpAQCAtMCwwICsxLDcgQEAKK1RpZm9uCistLS0tLQorCitNb3JlIGluZm8gaGFzIHRvIGNvbWUuLi4KKworQ29udGFjdDogUGV0ZXIgRGFuaWVsc3NvbiA8cGV0ZXIuZGFuaWVsc3NvbkBlcmEtdC5lcmljc3Nvbi5zZT4KKwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9hcm0vU0ExMTAwL1ZpY3RvciBiL0RvY3VtZW50YXRpb24vYXJtL1NBMTEwMC9WaWN0b3IKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDFlODFmYwotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vYXJtL1NBMTEwMC9WaWN0b3IKQEAgLTAsMCArMSwxNiBAQAorVmljdG9yIGlzIGtub3duIGFzIGEgImRpZ2l0YWwgdGFsa2luZyBib29rIHBsYXllciIgbWFudWZhY3R1cmVkIGJ5CitWaXN1QWlkZSwgSW5jLiB0byBiZSB1c2VkIGJ5IGJsaW5kIHBlb3BsZS4KKworRm9yIG1vcmUgaW5mb3JtYXRpb24gcmVsYXRlZCB0byBWaWN0b3IsIHNlZToKKworCWh0dHA6Ly93d3cudmlzdWFpZGUuY29tL3ZpY3RvcgorCitPZiBjb3Vyc2UgVmljdG9yIGlzIHVzaW5nIExpbnV4IGFzIGl0cyBtYWluIG9wZXJhdGluZyBzeXN0ZW0uCitUaGUgVmljdG9yIGltcGxlbWVudGF0aW9uIGZvciBMaW51eCBpcyBtYWludGFpbmVkIGJ5IE5pY29sYXMgUGl0cmU6CisKKwluaWNvQHZpc3VhaWRlLmNvbQorCW5pY29AY2FtLm9yZworCitGb3IgYW55IGNvbW1lbnRzLCBwbGVhc2UgZmVlbCBmcmVlIHRvIGNvbnRhY3QgbWUgdGhyb3VnaCB0aGUgYWJvdmUKK2FkZHJlc3Nlcy4KKwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9hcm0vU0ExMTAwL1lvcHkgYi9Eb2N1bWVudGF0aW9uL2FybS9TQTExMDAvWW9weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMTRmMTZkCi0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9hcm0vU0ExMTAwL1lvcHkKQEAgLTAsMCArMSwyIEBACitTZWUgaHR0cDovL3d3dy55b3B5ZGV2ZWxvcGVyLm9yZyBmb3IgbW9yZS4KKwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9hcm0vU0ExMTAwL2VtcGVnIGIvRG9jdW1lbnRhdGlvbi9hcm0vU0ExMTAwL2VtcGVnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRlY2U0ODQKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL2FybS9TQTExMDAvZW1wZWcKQEAgLTAsMCArMSwyIEBACitTZWUgLi4vZW1wZWcvUkVBRE1FCisKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vYXJtL1NBMTEwMC9uYW5vRW5naW5lIGIvRG9jdW1lbnRhdGlvbi9hcm0vU0ExMTAwL25hbm9FbmdpbmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmM0MzFjYgotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vYXJtL1NBMTEwMC9uYW5vRW5naW5lCkBAIC0wLDAgKzEsMTEgQEAKK25hbm9FbmdpbmUKKy0tLS0tLS0tLS0KKworIm5hbm9FbmdpbmUiIGlzIGEgU0ExMTEwIGJhc2VkIHNpbmdsZSBib2FyZCBjb21wdXRlciBmcm9tIAorQnJpZ2h0IFN0YXIgRW5naW5lZXJpbmcgSW5jLiAgU2VlIHd3dy5icmlnaHRzdGFyZW5nLmNvbS9hcm0KK2ZvciBtb3JlIGluZm8uCisoUmVmOiBTdHVhcnQgQWRhbXMgPHNqYUBicmlnaHRzdGFyZW5nLmNvbT4pCisKK0Fsc28gdmlzaXQgTGFycnkgRG9vbGl0dGxlJ3MgIkxpbnV4IGZvciB0aGUgbmFub0VuZ2luZSIgc2l0ZToKK2h0dHA6Ly9yZWN5Y2xlLmxibC5nb3Yvfmxkb29saXR0L2JzZS8KKwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9hcm0vU0ExMTAwL3NlcmlhbF9VQVJUIGIvRG9jdW1lbnRhdGlvbi9hcm0vU0ExMTAwL3NlcmlhbF9VQVJUCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFlYTJlOTEKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL2FybS9TQTExMDAvc2VyaWFsX1VBUlQKQEAgLTAsMCArMSw0NyBAQAorVGhlIFNBMTEwMCBzZXJpYWwgcG9ydCBoYWQgaXRzIG1ham9yL21pbm9yIG51bWJlcnMgb2ZmaWNpYWxseSBhc3NpZ25lZDoKKworPiBEYXRlOiBTdW4sIDI0IFNlcCAyMDAwIDIxOjQwOjI3IC0wNzAwCis+IEZyb206IEguIFBldGVyIEFudmluIDxocGFAdHJhbnNtZXRhLmNvbT4KKz4gVG86IE5pY29sYXMgUGl0cmUgPG5pY29AQ0FNLk9SRz4KKz4gQ2M6IERldmljZSBMaXN0IE1haW50YWluZXIgPGRldmljZUBsYW5hbmEub3JnPgorPiBTdWJqZWN0OiBSZTogZGV2aWNlCis+IAorPiBPa2F5LiAgTm90ZSB0aGF0IGRldmljZSBudW1iZXJzIDIwNCBhbmQgMjA1IGFyZSB1c2VkIGZvciAibG93IGRlbnNpdHkKKz4gc2VyaWFsIGRldmljZXMiLCBzbyB5b3Ugd2lsbCBoYXZlIGEgcmFuZ2Ugb2YgbWlub3JzIG9uIHRob3NlIG1ham9ycyAodGhlCis+IHR0eSBkZXZpY2UgbGF5ZXIgaGFuZGxlcyB0aGlzIGp1c3QgZmluZSwgc28geW91IGRvbid0IGhhdmUgdG8gd29ycnkgYWJvdXQKKz4gZG9pbmcgYW55dGhpbmcgc3BlY2lhbC4pCis+IAorPiBTbyB5b3VyIGFzc2lnbm1lbnRzIGFyZToKKz4gCis+IDIwNCBjaGFyICAgICAgICBMb3ctZGVuc2l0eSBzZXJpYWwgcG9ydHMKKz4gICAgICAgICAgICAgICAgICAgNSA9IC9kZXYvdHR5U0EwICAgICAgICAgICAgICAgU0ExMTAwIGJ1aWx0aW4gc2VyaWFsIHBvcnQgMAorPiAgICAgICAgICAgICAgICAgICA2ID0gL2Rldi90dHlTQTEgICAgICAgICAgICAgICBTQTExMDAgYnVpbHRpbiBzZXJpYWwgcG9ydCAxCis+ICAgICAgICAgICAgICAgICAgIDcgPSAvZGV2L3R0eVNBMiAgICAgICAgICAgICAgIFNBMTEwMCBidWlsdGluIHNlcmlhbCBwb3J0IDIKKz4gCis+IDIwNSBjaGFyICAgICAgICBMb3ctZGVuc2l0eSBzZXJpYWwgcG9ydHMgKGFsdGVybmF0ZSBkZXZpY2UpCis+ICAgICAgICAgICAgICAgICAgIDUgPSAvZGV2L2N1c2EwICAgICAgICAgICAgICAgIENhbGxvdXQgZGV2aWNlIGZvciB0dHlTQTAKKz4gICAgICAgICAgICAgICAgICAgNiA9IC9kZXYvY3VzYTEgICAgICAgICAgICAgICAgQ2FsbG91dCBkZXZpY2UgZm9yIHR0eVNBMQorPiAgICAgICAgICAgICAgICAgICA3ID0gL2Rldi9jdXNhMiAgICAgICAgICAgICAgICBDYWxsb3V0IGRldmljZSBmb3IgdHR5U0EyCis+CisKK0lmIHlvdSdyZSBub3QgdXNpbmcgZGV2ZnMsIHlvdSBtdXN0IGNyZWF0ZSB0aG9zZSBpbm9kZXMgaW4gL2Rldgorb24gdGhlIHJvb3QgZmlsZXN5c3RlbSB1c2VkIGJ5IHlvdXIgU0ExMTAwLWJhc2VkIGRldmljZToKKworCW1rbm9kIHR0eVNBMCBjIDIwNCA1CisJbWtub2QgdHR5U0ExIGMgMjA0IDYKKwlta25vZCB0dHlTQTIgYyAyMDQgNworCW1rbm9kIGN1c2EwIGMgMjA1IDUKKwlta25vZCBjdXNhMSBjIDIwNSA2CisJbWtub2QgY3VzYTIgYyAyMDUgNworCitJbiBhZGRpdGlvbiB0byB0aGUgY3JlYXRpb24gb2YgdGhlIGFwcHJvcHJpYXRlIGRldmljZSBub2RlcyBhYm92ZSwgeW91CittdXN0IGVuc3VyZSB5b3VyIHVzZXIgc3BhY2UgYXBwbGljYXRpb25zIG1ha2UgdXNlIG9mIHRoZSBjb3JyZWN0IGRldmljZQorbmFtZS4gVGhlIGNsYXNzaWMgZXhhbXBsZSBpcyB0aGUgY29udGVudCBvZiB0aGUgL2V0Yy9pbml0dGFiIGZpbGUgd2hlcmUKK3lvdSBtaWdodCBoYXZlIGEgZ2V0dHkgcHJvY2VzcyBzdGFydGVkIG9uIHR0eVMwLiAgSW4gdGhpcyBjYXNlOgorCistIHJlcGxhY2Ugb2NjdXJyZW5jZXMgb2YgdHR5UzAgd2l0aCB0dHlTQTAsIHR0eVMxIHdpdGggdHR5U0ExLCBldGMuCisKKy0gZG9uJ3QgZm9yZ2V0IHRvIGFkZCAndHR5U0EwJywgJ2NvbnNvbGUnLCBvciB0aGUgYXBwcm9wcmlhdGUgdHR5IG5hbWUKKyAgaW4gL2V0Yy9zZWN1cmV0dHkgZm9yIHJvb3QgdG8gYmUgYWxsb3dlZCB0byBsb2dpbiBhcyB3ZWxsLgorCisKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vYXJtL1NhbXN1bmctUzNDMjRYWC9FQjI0MTBJVFgudHh0IGIvRG9jdW1lbnRhdGlvbi9hcm0vU2Ftc3VuZy1TM0MyNFhYL0VCMjQxMElUWC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDAwZTNkNwotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vYXJtL1NhbXN1bmctUzNDMjRYWC9FQjI0MTBJVFgudHh0CkBAIC0wLDAgKzEsNTggQEAKKwkJU2ltdGVjIEVsZWN0cm9uaWNzIEVCMjQxMElUWCAoQkFTVCkKKwkJPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworCWh0dHA6Ly93d3cuc2ltdGVjLmNvLnVrL3Byb2R1Y3RzL0VCMjQxMElUWC8KKworSW50cm9kdWN0aW9uCistLS0tLS0tLS0tLS0KKworICBUaGUgRUIyNDEwSVRYIGlzIGEgUzNDMjQxMCBiYXNlZCBkZXZlbG9wbWVudCBib2FyZCB3aXRoIGEgdmFyaWV0eSBvZgorICBwZXJpcGhlcmFscyBhbmQgZXhwYW5zaW9uIGNvbm5lY3RvcnMuIFRoaXMgYm9hcmQgaXMgYWxzbyBrbm93biBieQorICB0aGUgc2hvcnRlbmVkIG5hbWUgb2YgQmFzdC4KKworCitDb25maWd1cmF0aW9uCistLS0tLS0tLS0tLS0tCisKKyAgVG8gc2V0IHRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24sIHVzZSBgbWFrZSBiYXN0X2RlZmNvbmZpZ2Agd2hpY2gKKyAgc3VwcG9ydHMgdGhlIGNvbW1vbmx5IHVzZWQgZmVhdHVyZXMgb2YgdGhpcyBib2FyZC4KKworCitTdXBwb3J0CistLS0tLS0tCisKKyAgT2ZmaWNpYWwgc3VwcG9ydCBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgb24gdGhlIFNpbXRlYyBFbGVjdHJvbmljcworICB3ZWJzaXRlLCBhdCB0aGUgcHJvZHVjdCBwYWdlIGh0dHA6Ly93d3cuc2ltdGVjLmNvLnVrL3Byb2R1Y3RzL0VCMjQxMElUWC8KKworICBVc2VmdWwgbGlua3M6CisKKyAgICAtIFJlc291cmNlcyBQYWdlIGh0dHA6Ly93d3cuc2ltdGVjLmNvLnVrL3Byb2R1Y3RzL0VCMjQxMElUWC9yZXNvdXJjZXMuaHRtbAorCisgICAgLSBCb2FyZCBGQVEgYXQgaHR0cDovL3d3dy5zaW10ZWMuY28udWsvcHJvZHVjdHMvRUIyNDEwSVRYL2ZhcS5odG1sCisKKyAgICAtIEJvb3Rsb2FkZXIgaW5mbyBodHRwOi8vd3d3LnNpbXRlYy5jby51ay9wcm9kdWN0cy9TV0FCTEUvcmVzb3VyY2VzLmh0bWwKKyAgICAgIGFuZCBGQVEgaHR0cDovL3d3dy5zaW10ZWMuY28udWsvcHJvZHVjdHMvU1dBQkxFL2ZhcS5odG1sCisKKworTVRECistLS0KKworICBUaGUgTkFORCBhbmQgTk9SIHN1cHBvcnQgaGFzIGJlZW4gbWVyZ2VkIGZyb20gdGhlIGxpbnV4LW10ZCBwcm9qZWN0LgorICBBbnkgcHJvbGJlbXMsIHNlZSBodHRwOi8vd3d3LmxpbnV4LW10ZC5pbmZyYWRlYWQub3JnLyBmb3IgbW9yZQorICBpbmZvcm1hdGlvbiBvciB1cC10by1kYXRlIHZlcnNpb25zIG9mIGxpbnV4LW10ZC4KKworCitJREUKKy0tLQorCisgIEJvdGggb25ib2FyZCBJREUgcG9ydHMgYXJlIHN1cHBvcnRlZCwgaG93ZXZlciB0aGVyZSBpcyBubyBzdXBwb3J0IGZvcgorICBjaGFuZ2luZyBzcGVlZCBvZiBkZXZpY2VzLCBQSU8gTW9kZSA0IGNhcGFibGUgZHJpdmVzIHNob3VsZCBiZSB1c2VkLgorCisKK01haW50YWluZXJzCistLS0tLS0tLS0tLQorCisgIFRoaXMgYm9hcmQgaXMgbWFpbnRhaW5lZCBieSBTaW10ZWMgRWxlY3Ryb25pY3MuCisKKworKGMpIDIwMDQgQmVuIERvb2tzLCBTaW10ZWMgRWxlY3Ryb25pY3MKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vYXJtL1NhbXN1bmctUzNDMjRYWC9HUElPLnR4dCBiL0RvY3VtZW50YXRpb24vYXJtL1NhbXN1bmctUzNDMjRYWC9HUElPLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wODIyNzY0Ci0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9hcm0vU2Ftc3VuZy1TM0MyNFhYL0dQSU8udHh0CkBAIC0wLDAgKzEsMTIyIEBACisJCQlTM0MyNDEwIEdQSU8gQ29udHJvbAorCQkJPT09PT09PT09PT09PT09PT09PT0KKworSW50cm9kdWN0aW9uCistLS0tLS0tLS0tLS0KKworICBUaGUgczNjMjQxMCBrZXJuZWwgcHJvdmlkZXMgYW4gaW50ZXJmYWNlIHRvIGNvbmZpZ3VyZSBhbmQKKyAgbWFuaXB1bGF0ZSB0aGUgc3RhdGUgb2YgdGhlIEdQSU8gcGlucywgYW5kIGZpbmQgb3V0IG90aGVyCisgIGluZm9ybWF0aW9uIGFib3V0IHRoZW0uCisKKyAgVGhlcmUgYXJlIGEgbnVtYmVyIG9mIGNvbmRpdGlvbnMgYXR0YWNoZWQgdG8gdGhlIGNvbmZpZ3VyYXRpb24KKyAgb2YgdGhlIHMzYzI0MTAgR1BJTyBzeXN0ZW0sIHBsZWFzZSByZWFkIHRoZSBTYW1zdW5nIHByb3ZpZGVkCisgIGRhdGEtc2hlZXQvdXNlcnMgbWFudWFsIHRvIGZpbmQgb3V0IHRoZSBjb21wbGV0ZSBsaXN0LgorCisKK0hlYWRlcnMKKy0tLS0tLS0KKworICBTZWUgaW5jbHVkZS9hc20tYXJtL2FyY2gtczNjMjQxMC9yZWdzLWdwaW8uaCBmb3IgdGhlIGxpc3QKKyAgb2YgR1BJTyBwaW5zLCBhbmQgdGhlIGNvbmZpZ3VyYXRpb24gdmFsdWVzIGZvciB0aGVtLiBUaGlzCisgIGlzIGluY2x1ZGVkIGJ5IHVzaW5nICNpbmNsdWRlIDxhc20vYXJjaC9yZWdzLWdwaW8uaD4KKworICBUaGUgR1BJTyBtYW5hZ2VtZW50IGZ1bmN0aW9ucyBhcmUgZGVmaW5lZCBpbiB0aGUgaGFyZHdhcmUKKyAgaGVhZGVyIGluY2x1ZGUvYXNtLWFybS9hcmNoLXMzYzI0MTAvaGFyZHdhcmUuaCB3aGljaCBjYW4gYmUKKyAgaW5jbHVkZWQgYnkgI2luY2x1ZGUgPGFzbS9hcmNoL2hhcmR3YXJlLmg+CisKKyAgQSB1c2VmdWwgYW1tb3VudCBvZiBkb2N1bWVudGF0aW9uIGNhbiBiZSBmb3VuZCBpbiB0aGUgaGFyZHdhcmUKKyAgaGVhZGVyIG9uIGhvdyB0aGUgR1BJTyBmdW5jdGlvbnMgKGFuZCBvdGhlcnMpIHdvcmsuCisKKyAgV2hpbHN0IGEgbnVtYmVyIG9mIHRoZXNlIGZ1bmN0aW9ucyBkbyBtYWtlIHNvbWUgY2hlY2tzIG9uIHdoYXQKKyAgaXMgcGFzc2VkIHRvIHRoZW0sIGZvciBzcGVlZCBvZiB1c2UsIHRoZXkgbWF5IG5vdCBhbHdheXMgZW5zdXJlCisgIHRoYXQgdGhlIHVzZXIgc3VwcGxpZWQgZGF0YSB0byB0aGVtIGlzIGNvcnJlY3QuCisKKworUElOIE51bWJlcnMKKy0tLS0tLS0tLS0tCisKKyAgRWFjaCBwaW4gaGFzIGFuIHVuaXF1ZSBudW1iZXIgYXNzb2NpYXRlZCB3aXRoIGl0IGluIHJlZ3MtZ3Bpby5oLAorICBlZyBTM0MyNDEwX0dQQTAgb3IgUzNDMjQxMF9HUEYxLiBUaGVzZSBkZWZpbmVzIGFyZSB1c2VkIHRvIHRlbGwKKyAgdGhlIEdQSU8gZnVuY3Rpb25zIHdoaWNoIHBpbiBpcyB0byBiZSB1c2VkLgorCisKK0NvbmZpZ3VyaW5nIGEgcGluCistLS0tLS0tLS0tLS0tLS0tLQorCisgIFRoZSBmb2xsb3dpbmcgZnVuY3Rpb24gYWxsb3dzIHRoZSBjb25maWd1cmF0aW9uIG9mIGEgZ2l2ZW4gcGluIHRvCisgIGJlIGNoYW5nZWQuCisKKyAgICB2b2lkIHMzYzI0MTBfZ3Bpb19jZmdwaW4odW5zaWduZWQgaW50IHBpbiwgdW5zaWduZWQgaW50IGZ1bmN0aW9uKTsKKworICBFZzoKKworICAgICBzM2MyNDEwX2dwaW9fY2ZncGluKFMzQzI0MTBfR1BBMCwgUzNDMjQxMF9HUEEwX0FERFIwKTsKKyAgICAgczNjMjQxMF9ncGlvX2NmZ3BpbihTM0MyNDEwX0dQRTgsIFMzQzI0MTBfR1BFOF9TRERBVDEpOworCisgICB3aGljaCB3b3VsZCB0dXJuIEdQQTAgaW50byB0aGUgbG93ZXN0IEFkZHJlc3MgbGluZSBBMCwgYW5kIHNldAorICAgR1BFOCB0byBiZSBjb25uZWN0ZWQgdG8gdGhlIFNESU8vTU1DIGNvbnRyb2xsZXIncyBTRERBVDEgbGluZS4KKworCitSZWFkaW5nIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgIFRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24gb2YgYSBwaW4gY2FuIGJlIHJlYWQgYnkgdXNpbmc6CisKKyAgczNjMjQxMF9ncGlvX2dldGNmZyh1bnNpZ25lZCBpbnQgcGluKTsKKworICBUaGUgcmV0dXJuIHZhbHVlIHdpbGwgYmUgZnJvbSB0aGUgc2FtZSBzZXQgb2YgdmFsdWVzIHdoaWNoIGNhbiBiZQorICBwYXNzZWQgdG8gczNjMjQxMF9ncGlvX2NmZ3BpbigpLgorCisKK0NvbmZpZ3VyaW5nIGEgcHVsbC11cCByZXNpc3RvcgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgQSBsYXJnZSBwcm9wb3J0aW9uIG9mIHRoZSBHUElPIHBpbnMgb24gdGhlIFMzQzI0MTAgY2FuIGhhdmUgd2VhaworICBwdWxsLXVwIHJlc2lzdG9ycyBlbmFibGVkLiBUaGlzIGNhbiBiZSBjb25maWd1cmVkIGJ5IHRoZSBmb2xsb3dpbmcKKyAgZnVuY3Rpb246CisKKyAgICB2b2lkIHMzYzI0MTBfZ3Bpb19wdWxsdXAodW5zaWduZWQgaW50IHBpbiwgdW5zaWduZWQgaW50IHRvKTsKKworICBXaGVyZSB0aGUgdG8gdmFsdWUgaXMgemVybyB0byBzZXQgdGhlIHB1bGwtdXAgb2ZmLCBhbmQgMSB0byBlbmFibGUKKyAgdGhlIHNwZWNpZmllZCBwdWxsLXVwLiBBbnkgb3RoZXIgdmFsdWVzIGFyZSBjdXJyZW50bHkgdW5kZWZpbmVkLgorCisKK0dldHRpbmcgdGhlIHN0YXRlIG9mIGEgUElOCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgIFRoZSBzdGF0ZSBvZiBhIHBpbiBjYW4gYmUgcmVhZCBieSB1c2luZyB0aGUgZnVuY3Rpb246CisKKyAgICB1bnNpZ25lZCBpbnQgczNjMjQxMF9ncGlvX2dldHBpbih1bnNpZ25lZCBpbnQgcGluKTsKKworICBUaGlzIHdpbGwgcmV0dXJuIGVpdGhlciB6ZXJvIG9yIG5vbi16ZXJvLiBEbyBub3QgY291bnQgb24gdGhpcworICBmdW5jdGlvbiByZXR1cm5pbmcgMSBpZiB0aGUgcGluIGlzIHNldC4KKworCitTZXR0aW5nIHRoZSBzdGF0ZSBvZiBhIFBJTgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICBUaGUgdmFsdWUgYW4gcGluIGlzIG91dHB1dGluZyBjYW4gYmUgbW9kaWZpZWQgYnkgdXNpbmcgdGhlIGZvbGxvd2luZzoKKworICAgIHZvaWQgczNjMjQxMF9ncGlvX3NldHBpbih1bnNpZ25lZCBpbnQgcGluLCB1bnNpZ25lZCBpbnQgdG8pOworCisgIFdoaWNoIHNldHMgdGhlIGdpdmVuIHBpbiB0byB0aGUgdmFsdWUuIFVzZSAwIHRvIHdyaXRlIDAsIGFuZCAxIHRvCisgIHNldCB0aGUgb3V0cHV0IHRvIDEuCisKKworR2V0dGluZyB0aGUgSVJRIG51bWJlciBhc3NvY2lhdGVkIHdpdGggYSBQSU4KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgVGhlIGZvbGxvd2luZyBmdW5jdGlvbiBjYW4gbWFwIHRoZSBnaXZlbiBwaW4gbnVtYmVyIHRvIGFuIElSUQorICBudW1iZXIgdG8gcGFzcyB0byB0aGUgSVJRIHN5c3RlbS4KKworICAgaW50IHMzYzI0MTBfZ3Bpb19nZXRpcnEodW5zaWduZWQgaW50IHBpbik7CisKKyAgTm90ZSwgbm90IGFsbCBwaW5zIGhhdmUgYW4gSVJRLgorCisKK0F1dGhvdXIKKy0tLS0tLS0KKworCitCZW4gRG9va3MsIDAzIE9jdG9iZXIgMjAwNAorKGMpIDIwMDQgQmVuIERvb2tzLCBTaW10ZWMgRWxlY3Ryb25pY3MKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vYXJtL1NhbXN1bmctUzNDMjRYWC9IMTk0MC50eHQgYi9Eb2N1bWVudGF0aW9uL2FybS9TYW1zdW5nLVMzQzI0WFgvSDE5NDAudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ2YjFkZTkKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL2FybS9TYW1zdW5nLVMzQzI0WFgvSDE5NDAudHh0CkBAIC0wLDAgKzEsNDAgQEAKKwkJSFAgSVBBUSBIMTk0MAorCQk9PT09PT09PT09PT09CisKK2h0dHA6Ly93d3cuaGFuZGhlbGRzLm9yZy9wcm9qZWN0cy9oMTk0MC5odG1sCisKK0ludHJvZHVjdGlvbgorLS0tLS0tLS0tLS0tCisKKyAgVGhlIEhQIEgxOTQwIGlzIGEgUzNDMjQxMCBiYXNlZCBoYW5kaGVsZCBkZXZpY2UsIHdpdGgKKyAgYmx1ZXRvb3RoIGNvbm5lY3Rpdml0eS4KKworCitTdXBwb3J0CistLS0tLS0tCisKKyAgQSB2YXJpZXR5IG9mIGluZm9ybWF0aW9uIGlzIGF2YWlsYWJsZQorCisgIGhhbmRoZWxkcy5vcmcgcHJvamVjdCBwYWdlOgorCisgICAgaHR0cDovL3d3dy5oYW5kaGVsZHMub3JnL3Byb2plY3RzL2gxOTQwLmh0bWwKKworICBoYW5kaGVsZHMub3JnIHdpa2kgcGFnZToKKworICAgIGh0dHA6Ly9oYW5kaGVsZHMub3JnL21vaW4vbW9pbi5jZ2kvSHBJcGFxSDE5NDAKKworICBIZXJiZXJ0IFD2dHpsIHBhZ2VzOgorCisgICAgaHR0cDovL3ZzZXJ2ZXIuMTN0aGZsb29yLmF0L0gxOTQwLworCisKK01haW50YWluZXJzCistLS0tLS0tLS0tLQorCisgIFRoaXMgcHJvamVjdCBpcyBiZWluZyBtYWludGFpbmVkIGFuZCBkZXZlbG9wZWQgYnkgYSB2YXJpZXR5CisgIG9mIHBlb3BsZSwgaW5jbHVkaW5nIEJlbiBEb29rcywgQXJuYXVkIFBhdGFyZCwgYW5kIEhlcmJlcnQgUPZ0emwuCisKKyAgVGhhbmtzIHRvIHRoZSBtYW55IG90aGVycyB3aG8gaGF2ZSBhbHNvIHByb3ZpZGVkIHN1cHBvcnQuCisKKworKGMpIDIwMDUgQmVuIERvb2tzClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9hcm0vU2Ftc3VuZy1TM0MyNFhYL092ZXJ2aWV3LnR4dCBiL0RvY3VtZW50YXRpb24vYXJtL1NhbXN1bmctUzNDMjRYWC9PdmVydmlldy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2FmNGQyOQotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vYXJtL1NhbXN1bmctUzNDMjRYWC9PdmVydmlldy50eHQKQEAgLTAsMCArMSwxNTYgQEAKKwkJCVMzQzI0WFggQVJNIExpbnV4IE92ZXJ2aWV3CisJCQk9PT09PT09PT09PT09PT09PT09PT09PT09PQorCisKKworSW50cm9kdWN0aW9uCistLS0tLS0tLS0tLS0KKworICBUaGUgU2Ftc3VuZyBTM0MyNFhYIHJhbmdlIG9mIEFSTTkgU3lzdGVtLW9uLUNoaXAgQ1BVcyBhcmUgc3VwcG9ydGVkCisgIGJ5IHRoZSAnczNjMjQxMCcgYXJjaGl0ZWN0dXJlIG9mIEFSTSBMaW51eC4gQ3VycmVudGx5IHRoZSBTM0MyNDEwIGFuZAorICB0aGUgUzNDMjQ0MCBhcmUgc3VwcG9ydGVkIENQVXMuCisKKworQ29uZmlndXJhdGlvbgorLS0tLS0tLS0tLS0tLQorCisgIEEgZ2VuZXJpYyBTM0MyNDEwIGNvbmZpZ3VyYXRpb24gaXMgcHJvdmlkZWQsIGFuZCBjYW4gYmUgdXNlZCBhcyB0aGUKKyAgZGVmYXVsdCBieSBgbWFrZSBzM2MyNDEwX2RlZmNvbmZpZ2AuIFRoaXMgY29uZmlndXJhdGlvbiBoYXMgc3VwcG9ydAorICBmb3IgYWxsIHRoZSBtYWNoaW5lcywgYW5kIHRoZSBjb21tb25seSB1c2VkIGZlYXR1cmVzIG9uIHRoZW0uCisKKyAgQ2VydGFpbiBtYWNoaW5lcyBtYXkgaGF2ZSB0aGVpciBvd24gZGVmYXVsdCBjb25maWd1cmF0aW9ucyBhcyB3ZWxsLAorICBwbGVhc2UgY2hlY2sgdGhlIG1hY2hpbmUgc3BlY2lmaWMgZG9jdW1lbnRhdGlvbi4KKworCitNYWNoaW5lcworLS0tLS0tLS0KKworICBUaGUgY3VycmVudGx5IHN1cHBvcnRlZCBtYWNoaW5lcyBhcmUgYXMgZm9sbG93czoKKworICBTaW10ZWMgRWxlY3Ryb25pY3MgRUIyNDEwSVRYIChCQVNUKQorCisgICAgQSBnZW5lcmFsIHB1cnBvc2UgZGV2ZWxvcG1lbnQgYm9hcmQsIHNlZSBFQjI0MTBJVFgudHh0IGZvciBmdXJ0aGVyCisgICAgZGV0YWlscworCisgIFNhbXN1bmcgU01ESzI0MTAKKworICAgIFNhbXN1bmcncyBvd24gZGV2ZWxvcG1lbnQgYm9hcmQsIGdlYXJlZCBmb3IgUERBIHdvcmsuCisKKyAgU2Ftc3VuZy9NZXJpdGVjaCBTTURLMjQ0MAorCisgICAgVGhlIFMzQzI0NDAgY29tcGF0aWJsZSB2ZXJzaW9uIG9mIHRoZSBTTURLMjQ0MAorCisgIFRob3Jjb20gVlIxMDAwCisKKyAgICBDdXN0b20gZW1iZWRkZWQgYm9hcmQKKworICBIUCBJUEFRIDE5NDAKKworICAgIEhhbmRoZWxkIChJUEFRKSwgYXZhaWxhYmxlIGluIHNldmVyYWwgdmFyaWV0aWVzCisKKyAgSFAgaVBBUSByeDM3MTUKKworICAgIFMzQzI0NDAgYmFzZWQgSVBBUSwgd2l0aCBhIG51bWJlciBvZiB2YXJpYXRpb25zIGRlcGVuZGluZyBvbgorICAgIGZlYXR1cmVzIHNoaXBwZWQuCisKKyAgQWNlciBOMzAKKworICAgIEEgUzNDMjQxMCBiYXNlZCBQREEgZnJvbSBBY2VyLiAgVGhlcmUgaXMgYSBXaWtpIHBhZ2UgYXQKKyAgICBodHRwOi8vaGFuZGhlbGRzLm9yZy9tb2luL21vaW4uY2dpL0FjZXJOMzBEb2N1bWVudGF0aW9uIC4KKworCitBZGRpbmcgTmV3IE1hY2hpbmVzCistLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgVGhlIGFyY2hpY3R1cmUgaGFzIGJlZW4gZGVzaWduZWQgdG8gc3VwcG9ydCBhcyBtYW55IG1hY2hpbmVzIGFzIGNhbgorICBiZSBjb25maWd1cmVkIGZvciBpdCBpbiBvbmUga2VybmVsIGJ1aWxkLCBhbmQgYW55IGZ1dHVyZSBhZGRpdGlvbnMKKyAgc2hvdWxkIGtlZXAgdGhpcyBpbiBtaW5kIGJlZm9yZSBhbHRlcmluZyBpdGVtcyBvdXRzaWRlIG9mIHRoZWlyIG93bgorICBtYWNoaW5lIGZpbGVzLgorCisgIE1hY2hpbmUgZGVmaW5pdGlvbnMgc2hvdWxkIGJlIGtlcHQgaW4gbGludXgvYXJjaC9hcm0vbWFjaC1zM2MyNDEwLAorICBhbmQgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIGV4YW1wbGVzIHRoYXQgY2FuIGJlIGxvb2tlZCBhdC4KKworICBSZWFkIHRoZSBrZXJuZWwgcGF0Y2ggc3VibWlzc2lvbiBwb2xpY2llcyBhcyB3ZWxsIGFzIHRoZQorICBEb2N1bWVudGF0aW9uL2FybSBkaXJlY3RvcnkgYmVmb3JlIHN1Ym1pdHRpbmcgcGF0Y2hlcy4gVGhlCisgIEFSTSBrZXJuZWwgc2VyaWVzIGlzIG1hbmFnZWQgYnkgUnVzc2VsbCBLaW5nLCBhbmQgaGFzIGEgcGF0Y2ggc3lzdGVtCisgIGxvY2F0ZWQgYXQgaHR0cDovL3d3dy5hcm0ubGludXgub3JnLnVrL2RldmVsb3Blci9wYXRjaGVzLworICBhcyB3ZWxsIGFzIG1haWxpbmcgbGlzdHMgdGhhdCBjYW4gYmUgZm91bmQgZnJvbSB0aGUgc2FtZSBzaXRlLgorCisgIEFzIGEgY291cnRlc3ksIHBsZWFzZSBub3RpZnkgPGJlbi1saW51eEBmbHVmZi5vcmc+IG9mIGFueSBuZXcKKyAgbWFjaGluZXMgb3Igb3RoZXIgbW9kaWZpY2F0aW9ucy4KKworICBBbnkgbGFyZ2Ugc2NhbGUgbW9kaWZpY2F0aW9ucywgb3IgbmV3IGRyaXZlcnMgc2hvdWxkIGJlIGRpc2N1c3NlZAorICBvbiB0aGUgQVJNIGtlcm5lbCBtYWlsaW5nIGxpc3QgKGxpbnV4LWFybS1rZXJuZWwpIGJlZm9yZSBiZWluZworICBhdHRlbXB0ZWQuCisKKworTkFORAorLS0tLQorCisgIFRoZSBjdXJyZW50IGtlcm5lbHMgbm93IGhhdmUgc3VwcG9ydCBmb3IgdGhlIHMzYzI0MTAgTkFORAorICBjb250cm9sbGVyLiBJZiB0aGVyZSBhcmUgYW55IHByb2JsZW1zIHRoZSBsYXRlc3QgbGludXgtbXRkCisgIENWUyBjYW4gYmUgZm91bmQgZnJvbSBodHRwOi8vd3d3LmxpbnV4LW10ZC5pbmZyYWRlYWQub3JnLworCisKK1NlcmlhbAorLS0tLS0tCisKKyAgVGhlIHMzYzI0MTAgc2VyaWFsIGRyaXZlciBwcm92aWRlcyBzdXBwb3J0IGZvciB0aGUgaW50ZXJuYWwKKyAgc2VyaWFsIHBvcnRzLiBUaGVzZSBkZXZpY2VzIGFwcGVhciBhcyAvZGV2L3R0eVNBQzAgdGhyb3VnaCAzLgorCisgIFRvIGNyZWF0ZSBkZXZpY2Ugbm9kZXMgZm9yIHRoZXNlLCB1c2UgdGhlIGZvbGxvd2luZyBjb21tYW5kcworCisgICAgbWtub2QgdHR5U0FDMCBjIDIwNCA2NAorICAgIG1rbm9kIHR0eVNBQzEgYyAyMDQgNjUKKyAgICBta25vZCB0dHlTQUMyIGMgMjA0IDY2CisKKworR1BJTworLS0tLQorCisgIFRoZSBjb3JlIGNvbnRhaW5zIHN1cHBvcnQgZm9yIG1hbmlwdWxhdGluZyB0aGUgR1BJTywgc2VlIHRoZQorICBkb2N1bWVudGF0aW9uIGluIEdQSU8udHh0IGluIHRoZSBzYW1lIGRpcmVjdG9yeSBhcyB0aGlzIGZpbGUuCisKKworQ2xvY2sgTWFuYWdlbWVudAorLS0tLS0tLS0tLS0tLS0tLQorCisgIFRoZSBjb3JlIHByb3ZpZGVzIHRoZSBpbnRlcmZhY2UgZGVmaW5lZCBpbiB0aGUgaGVhZGVyIGZpbGUKKyAgaW5jbHVkZS9hc20tYXJtL2hhcmR3YXJlL2Nsb2NrLmgsIHRvIGFsbG93IGNvbnRyb2wgb3ZlciB0aGUKKyAgdmFyaW91cyBjbG9jayB1bml0cworCisKK1BvcnQgQ29udHJpYnV0b3JzCistLS0tLS0tLS0tLS0tLS0tLQorCisgIEJlbiBEb29rcyAoQkpEKQorICBWaW5jZW50IFNhbmRlcnMKKyAgSGVyYmVydCBQb3R6bAorICBBcm5hdWQgUGF0YXJkIChSVFApCisgIFJvYyBXdQorICBLbGF1cyBGZXRzY2hlcgorICBEaW1pdHJ5IEFuZHJpYworICBTaGFubm9uIEhvbGxhbmQKKyAgR3VpbGxhdW1lIEdvdXJhdCAoTmV4VmlzaW9uKQorICBDaHJpc3RlciBXZWluaWdlbCAod2luZ2VsKSAoQWNlciBOMzApCisgIEx1Y2FzIENvcnJlaWEgVmlsbGEgUmVhbCAoUzNDMjQwMCBwb3J0KQorCisKK0RvY3VtZW50IENoYW5nZXMKKy0tLS0tLS0tLS0tLS0tLS0KKworICAwNSBTZXAgMjAwNCAtIEJKRCAtIEFkZGVkIERvY3VtZW50IENoYW5nZXMgc2VjdGlvbgorICAwNSBTZXAgMjAwNCAtIEJKRCAtIEFkZGVkIEtsYXVzIEZldHNjaGVyIHRvIGxpc3Qgb2YgY29udHJpYnV0b3JzCisgIDI1IE9jdCAyMDA0IC0gQkpEIC0gQWRkZWQgRGltaXRyeSBBbmRyaWMgdG8gbGlzdCBvZiBjb250cmlidXRvcnMKKyAgMjUgT2N0IDIwMDQgLSBCSkQgLSBVcGRhdGVkIHRoZSBNVEQgZnJvbSB0aGUgMi42LjkgbWVyZ2UKKyAgMjEgSmFuIDIwMDUgLSBCSkQgLSBBZGRlZCByeDM3MTUsIGFkZGVkIFNoYW5ub24gdG8gY29udHJpYnV0b3JzCisgIDEwIEZlYiAyMDA1IC0gQkpEIC0gQWRkZWQgR3VpbGxhdW1lIEdvdXJhdCB0byBjb250cmlidXRvcnMKKyAgMDIgTWFyIDIwMDUgLSBCSkQgLSBBZGRlZCBTTURLMjQ0MCB0byBsaXN0IG9mIG1hY2hpbmVzCisgIDA2IE1hciAyMDA1IC0gQkpEIC0gQWRkZWQgQ2hyaXN0ZXIgV2VpbmlnZWwKKyAgMDggTWFyIDIwMDUgLSBCSkQgLSBBZGRlZCBMQ1ZSIHRvIGxpc3Qgb2YgcGVvcGxlLCB1cGRhdGVkIGludHJvZHVjdGlvbgorICAwOCBNYXIgMjAwNSAtIEJKRCAtIEFkZGVkIHNlY3Rpb24gb24gYWRkaW5nIG1hY2hpbmVzCisKK0RvY3VtZW50IEF1dGhvcgorLS0tLS0tLS0tLS0tLS0tCisKK0JlbiBEb29rcywgKGMpIDIwMDQtMjAwNSBTaW10ZWMgRWxlY3Ryb25pY3MKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vYXJtL1NhbXN1bmctUzNDMjRYWC9TTURLMjQ0MC50eHQgYi9Eb2N1bWVudGF0aW9uL2FybS9TYW1zdW5nLVMzQzI0WFgvU01ESzI0NDAudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMyZTFlYWUKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL2FybS9TYW1zdW5nLVMzQzI0WFgvU01ESzI0NDAudHh0CkBAIC0wLDAgKzEsNTYgQEAKKwkJU2Ftc3VuZy9NZXJpdGVjaCBTTURLMjQ0MAorCQk9PT09PT09PT09PT09PT09PT09PT09PT09CisKK0ludHJvZHVjdGlvbgorLS0tLS0tLS0tLS0tCisKKyAgVGhlIFNNREsyNDQwIGlzIGEgdHdvIHBhcnQgZXZhbHVhdGlvbiBib2FyZCBmb3IgdGhlIFNhbXN1bmcgUzNDMjQ0MAorICBwcm9jZXNzb3IuIEl0IGluY2x1ZGVzIHN1cHBvcnQgZm9yIExDRCwgU21hcnRNZWRpYSwgQXVkaW8sIFNEIGFuZAorICAxME1CaXQgRXRoZXJuZXQsIGFuZCBleHBhbnNpb24gaGVhZGVycyBmb3IgdmFyaW91cyBzaWduYWxzLCBpbmNsdWRpbmcKKyAgdGhlIGNhbWVyYSBhbmQgdW51c2VkIEdQSU8uCisKKworQ29uZmlndXJhdGlvbgorLS0tLS0tLS0tLS0tLQorCisgIFRvIHNldCB0aGUgZGVmYXVsdCBjb25maWd1cmF0aW9uLCB1c2UgYG1ha2Ugc21kazI0NDBfZGVmY29uZmlnYCB3aGljaAorICB3aWxsIGNvbmZpZ3VyZSB0aGUgY29tbW9uIGZlYXR1cmVzIG9mIHRoaXMgYm9hcmQsIG9yIHVzZQorICBgbWFrZSBzM2MyNDEwX2NvbmZpZ2AgdG8gaW5jbHVkZSBzdXBwb3J0IGZvciBhbGwgczNjMjQxMC9zM2MyNDQwIG1hY2hpbmVzCisKKworU3VwcG9ydAorLS0tLS0tLQorCisgIEJlbiBEb29rcycgU01ESzI0NDAgc2l0ZSBhdCBodHRwOi8vd3d3LmZsdWZmLm9yZy9iZW4vc21kazI0NDAvIHdoaWNoCisgIGluY2x1ZGVzIGxpbnV4IGJhc2VkIFVTQiBkb3dubG9hZCB0b29scy4KKworICBTb21lIG9mIHRoZSBoMTk0MCBwYXRjaGVzIHRoYXQgY2FuIGJlIGZvdW5kIGZyb20gdGhlIEgxOTQwIHByb2plY3QKKyAgc2l0ZSBhdCBodHRwOi8vd3d3LmhhbmRoZWxkcy5vcmcvcHJvamVjdHMvaDE5NDAuaHRtbCBjYW4gYWxzbyBiZQorICBhcHBsaWVkIHRvIHRoaXMgYm9hcmQuCisKKworUGVyaXBoZXJhbHMKKy0tLS0tLS0tLS0tCisKKyAgVGhlcmUgaXMgbm8gY3VycmVudCBzdXBwb3J0IGZvciBhbnkgb2YgdGhlIGV4dHJhIHBlcmlwaGVyYWxzIG9uIHRoZQorICBiYXNlLWJvYXJkIGl0c2VsZi4KKworCitNVEQKKy0tLQorCisgIFRoZSBOQU5EIGZsYXNoIHNob3VsZCBiZSBzdXBwb3J0ZWQgYnkgdGhlIGluIGtlcm5lbCBNVEQgTkFORCBzdXBwb3J0LAorICBOT1IgZmxhc2ggd2lsbCBiZSBhZGRlZCBsYXRlci4KKworCitNYWludGFpbmVycworLS0tLS0tLS0tLS0KKworICBUaGlzIGJvYXJkIGlzIGJlaW5nIG1haW50YWluZWQgYnkgQmVuIERvb2tzLCBmb3IgbW9yZSBpbmZvLCBzZWUKKyAgaHR0cDovL3d3dy5mbHVmZi5vcmcvYmVuL3NtZGsyNDQwLworCisgIE1hbnkgdGhhbmtzIHRvIERpbWl0cnkgQW5kcmljIG9mIFRvbVRvbSBmb3IgdGhlIGxvYW4gb2YgdGhlIFNNREsyNDQwLAorICBhbmQgdG8gU2ltdGVjIEVsZWN0cm9uaWNzIGZvciBhbGxvd2luZyBtZSB0aW1lIHRvIHdvcmsgb24gdGhpcy4KKworCisoYykgMjAwNCBCZW4gRG9va3MKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2FybS9TYW1zdW5nLVMzQzI0WFgvU3VzcGVuZC50eHQgYi9Eb2N1bWVudGF0aW9uL2FybS9TYW1zdW5nLVMzQzI0WFgvU3VzcGVuZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTEyYmMzMgotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vYXJtL1NhbXN1bmctUzNDMjRYWC9TdXNwZW5kLnR4dApAQCAtMCwwICsxLDEwNiBAQAorCQkJUzNDMjRYWCBTdXNwZW5kIFN1cHBvcnQKKwkJCT09PT09PT09PT09PT09PT09PT09PT09CisKKworSW50cm9kdWN0aW9uCistLS0tLS0tLS0tLS0KKworICBUaGUgUzNDMjQxMCBzdXBwb3J0cyBhIGxvdy1wb3dlciBzdXNwZW5kIG1vZGUsIHdoZXJlIHRoZSBTRFJBTSBpcyBrZXB0CisgIGluIFNlbGYtUmVmcmVzaCBtb2RlLCBhbmQgYWxsIGJ1dCB0aGUgZXNzZW50aWFsIHBlcmlwaGVyYWwgYmxvY2tzIGFyZQorICBwb3dlcmVkIGRvd24uIEZvciBtb3JlIGluZm9ybWF0aW9uIG9uIGhvdyB0aGlzIHdvcmtzLCBwbGVhc2UgbG9vaworICBhdCB0aGUgUzNDMjQxMCBkYXRhc2hlZXRzIGZyb20gU2Ftc3VuZy4KKworCitSZXF1aXJlbWVudHMKKy0tLS0tLS0tLS0tLQorCisgIDEpIEEgYm9vdGxvYWRlciB0aGF0IGNhbiBzdXBwb3J0IHRoZSBuZWNlc3NhcnkgcmVzdW1lIG9wZXJhdGlvbgorCisgIDIpIFN1cHBvcnQgZm9yIGF0IGxlYXN0IDEgc291cmNlIGZvciByZXN1bWUKKworICAzKSBDT05GSUdfUE0gZW5hYmxlZCBpbiB0aGUga2VybmVsCisKKyAgNCkgQW55IHBlcmlwaGVyYWxzIHRoYXQgYXJlIGdvaW5nIHRvIGJlIHBvd2VyZWQgZG93biBhdCB0aGUgc2FtZQorICAgICB0aW1lIHJlcXVpcmUgc3VzcGVuZC9yZXN1bWUgc3VwcG9ydC4KKworCitSZXN1bWluZworLS0tLS0tLS0KKworICBUaGUgUzNDMjQxMCB1c2VyIG1hbnVhbCBkZWZpbmVzIHRoZSBwcm9jZXNzIG9mIHNlbmRpbmcgdGhlIENQVSB0bworICBzbGVlcCBhbmQgaG93IGl0IHJlc3VtZXMuIFRoZSBkZWZhdWx0IGJlaGF2aW91ciBvZiB0aGUgTGludXggY29kZQorICBpcyB0byBzZXQgdGhlIEdTVEFUVVMzIHJlZ2lzdGVyIHRvIHRoZSBwaHlzaWNhbCBhZGRyZXNzIG9mIHRoZQorICBjb2RlIHRvIHJlc3VtZSBMaW51eCBvcGVyYXRpb24uCisKKyAgR1NUQVRVUzQgaXMgY3VycmVudGx5IGxlZnQgYWxvbmUgYnkgdGhlIHNsZWVwIGNvZGUsIGFuZCBpcyBmcmVlIHRvCisgIHVzZSBmb3IgYW55IG90aGVyIHB1cnBvc2VzIChmb3IgZXhhbXBsZSwgdGhlIEVCMjQxMElUWCB1c2VzIHRoaXMgdG8KKyAgc2F2ZSBtZW1vcnkgY29uZmlndXJhdGlvbiBpbikuCisKKworTWFjaGluZSBTdXBwb3J0CistLS0tLS0tLS0tLS0tLS0KKworICBUaGUgbWFjaGluZSBzcGVjaWZpYyBmdW5jdGlvbnMgbXVzdCBjYWxsIHRoZSBzM2MyNDEwX3BtX2luaXQoKSBmdW5jdGlvbgorICB0byBzYXkgdGhhdCBpdHMgYm9vdGxvYWRlciBpcyBjYXBhYmxlIG9mIHJlc3VtaW5nLiBUaGlzIGNhbiBiZSBhcworICBzaW1wbGUgYXMgYWRkaW5nIHRoZSBmb2xsb3dpbmcgdG8gdGhlIG1hY2hpbmUncyBkZWZpbml0aW9uOgorCisgIElOSVRNQUNISU5FKHMzYzI0MTBfcG1faW5pdCkKKworICBBIGJvYXJkIGNhbiBkbyBpdHMgb3duIHNldHVwIGJlZm9yZSBjYWxsaW5nIHMzYzI0MTBfcG1faW5pdCwgaWYgaXQKKyAgbmVlZHMgdG8gc2V0dXAgYW55dGhpbmcgZWxzZSBmb3IgcG93ZXIgbWFuYWdlbWVudCBzdXBwb3J0LgorCisgIFRoZXJlIGlzIGN1cnJlbnRseSBubyBzdXBwb3J0IGZvciBvdmVyLXJpZGluZyB0aGUgZGVmYXVsdCBtZXRob2Qgb2YKKyAgc2F2aW5nIHRoZSByZXN1bWUgYWRkcmVzcywgaWYgeW91ciBib2FyZCByZXF1aXJlcyBpdCwgdGhlbiBjb250YWN0CisgIHRoZSBtYWludGFpbmVyIGFuZCBkaXNjdXNzIHdoYXQgaXMgcmVxdWlyZWQuCisKKyAgTm90ZSwgdGhlIG9yaWdpbmFsIG1ldGhvZCBvZiBhZGRpbmcgYW4gbGF0ZV9pbml0Y2FsbCgpIGlzIHdyb25nLAorICBhbmQgd2lsbCBlbmQgdXAgaW5pdGlhbGlzaW5nIGFsbCBjb21waWxlZCBtYWNoaW5lcycgcG0gaW5pdCEKKworCitEZWJ1Z2dpbmcKKy0tLS0tLS0tLQorCisgIFRoZXJlIGFyZSBzZXZlcmFsIGltcG9ydGFudCB0aGluZ3MgdG8gcmVtZW1iZXIgd2hlbiB1c2luZyBQTSBzdXNwZW5kOgorCisgIDEpIFRoZSB1YXJ0IGRyaXZlcnMgd2lsbCBkaXNhYmxlIHRoZSBjbG9ja3MgdG8gdGhlIFVBUlQgYmxvY2tzIHdoZW4KKyAgICAgc3VzcGVuZGluZywgd2hpY2ggbWVhbnMgdGhhdCB1c2Ugb2YgcHJpbnRhc2NpaSgpIG9yIHNpbWlsYXIgZGlyZWN0CisgICAgIGFjY2VzcyB0byB0aGUgVUFSVHMgd2lsbCBjYXVzZSB0aGUgZGVidWcgdG8gc3RvcC4KKworICAyKSBXaGlsc3QgdGhlIHBtIGNvZGUgaXRzZWxmIHdpbGwgYXR0ZW1wdCB0byByZS1lbmFibGUgdGhlIFVBUlQgY2xvY2tzLAorICAgICBjYXJlIHNob3VsZCBiZSB0YWtlbiB0aGF0IGFueSBleHRlcm5hbCBjbG9jayBzb3VyY2VzIHRoYXQgdGhlIFVBUlRzCisgICAgIHJlbHkgb24gYXJlIHN0aWxsIGVuYWJsZWQgYXQgdGhhdCBwb2ludC4KKworCitDb25maWd1cmF0aW9uCistLS0tLS0tLS0tLS0tCisKKyAgVGhlIFMzQzI0MTAgc3BlY2lmaWMgY29uZmlndXJhdGlvbiBpbiBgU3lzdGVtIFR5cGVgIGRlZmluZXMgdmFyaW91cworICBhc3BlY3RzIG9mIGhvdyB0aGUgUzNDMjQxMCBzdXNwZW5kIGFuZCByZXN1bWUgc3VwcG9ydCBpcyBjb25maWd1cmVkCisKKyAgYFMzQzI0MTAgUE0gU3VzcGVuZCBkZWJ1Z2AKKworICAgIFRoaXMgb3B0aW9uIHByaW50cyBtZXNzYWdlcyB0byB0aGUgc2VyaWFsIGNvbnNvbGUgYmVmb3JlIGFuZCBhZnRlcgorICAgIHRoZSBhY3R1YWwgc3VzcGVuZCwgZ2l2aW5nIGRldGFpbGVkIGluZm9ybWF0aW9uIG9uIHdoYXQgaXMKKyAgICBoYXBwZW5pbmcKKworCisgIGBTM0MyNDEwIFBNIFN1c3BlbmQgTWVtb3J5IENSQ2AKKworICAgIEFsbG93cyB0aGUgZW50aXJlIG1lbW9yeSB0byBiZSBjaGVja3N1bW1lZCBiZWZvcmUgYW5kIGFmdGVyIHRoZQorICAgIHN1c3BlbmQgdG8gc2VlIGlmIHRoZXJlIGhhcyBiZWVuIGFueSBjb3JydXB0aW9uIG9mIHRoZSBjb250ZW50cy4KKworICAgIFRoaXMgc3VwcG9ydCByZXF1aXJlcyB0aGUgQ1JDMzIgZnVuY3Rpb24gdG8gYmUgZW5hYmxlZC4KKworCisgIGBTM0MyNDEwIFBNIFN1c3BlbmQgQ1JDIENodW5rc2l6ZSAoS2lCKWAKKworICAgIERlZmluZXMgdGhlIHNpemUgb2YgbWVtb3J5IGVhY2ggQ1JDIGNodW5rIGNvdmVycy4gQSBzbWFsbGVyIHZhbHVlCisgICAgd2lsbCBtZWFuIHRoYXQgdGhlIENSQyBkYXRhIGJsb2NrIHdpbGwgdGFrZSBtb3JlIG1lbW9yeSwgYnV0IHdpbGwKKyAgICBpZGVudGlmeSBhbnkgZmF1bHRzIHdpdGggYmV0dGVyIHByZWNpc2lvbgorCisKK0RvY3VtZW50IEF1dGhvcgorLS0tLS0tLS0tLS0tLS0tCisKK0JlbiBEb29rcywgKGMpIDIwMDQgU2ltdGVjIEVsZWN0cm9uaWNzCisKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vYXJtL1NldHVwIGIvRG9jdW1lbnRhdGlvbi9hcm0vU2V0dXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGFiZDA3MgotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vYXJtL1NldHVwCkBAIC0wLDAgKzEsMTI5IEBACitLZXJuZWwgaW5pdGlhbGlzYXRpb24gcGFyYW1ldGVycyBvbiBBUk0gTGludXgKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitUaGUgZm9sbG93aW5nIGRvY3VtZW50IGRlc2NyaWJlcyB0aGUga2VybmVsIGluaXRpYWxpc2F0aW9uIHBhcmFtZXRlcgorc3RydWN0dXJlLCBvdGhlcndpc2Uga25vd24gYXMgJ3N0cnVjdCBwYXJhbV9zdHJ1Y3QnIHdoaWNoIGlzIHVzZWQKK2ZvciBtb3N0IEFSTSBMaW51eCBhcmNoaXRlY3R1cmVzLgorCitUaGlzIHN0cnVjdHVyZSBpcyB1c2VkIHRvIHBhc3MgaW5pdGlhbGlzYXRpb24gcGFyYW1ldGVycyBmcm9tIHRoZQora2VybmVsIGxvYWRlciB0byB0aGUgTGludXgga2VybmVsIHByb3BlciwgYW5kIG1heSBiZSBzaG9ydCBsaXZlZAordGhyb3VnaCB0aGUga2VybmVsIGluaXRpYWxpc2F0aW9uIHByb2Nlc3MuICBBcyBhIGdlbmVyYWwgcnVsZSwgaXQKK3Nob3VsZCBub3QgYmUgcmVmZXJlbmNlZCBvdXRzaWRlIG9mIGFyY2gvYXJtL2tlcm5lbC9zZXR1cC5jOnNldHVwX2FyY2goKS4KKworVGhlcmUgYXJlIGEgbG90IG9mIHBhcmFtZXRlcnMgbGlzdGVkIGluIHRoZXJlLCBhbmQgdGhleSBhcmUgZGVzY3JpYmVkCitiZWxvdzoKKworIHBhZ2Vfc2l6ZQorCisgICBUaGlzIHBhcmFtZXRlciBtdXN0IGJlIHNldCB0byB0aGUgcGFnZSBzaXplIG9mIHRoZSBtYWNoaW5lLCBhbmQKKyAgIHdpbGwgYmUgY2hlY2tlZCBieSB0aGUga2VybmVsLgorCisgbnJfcGFnZXMKKworICAgVGhpcyBpcyB0aGUgdG90YWwgbnVtYmVyIG9mIHBhZ2VzIG9mIG1lbW9yeSBpbiB0aGUgc3lzdGVtLiAgSWYKKyAgIHRoZSBtZW1vcnkgaXMgYmFua2VkLCB0aGVuIHRoaXMgc2hvdWxkIGNvbnRhaW4gdGhlIHRvdGFsIG51bWJlcgorICAgb2YgcGFnZXMgaW4gdGhlIHN5c3RlbS4KKworICAgSWYgdGhlIHN5c3RlbSBjb250YWlucyBzZXBhcmF0ZSBWUkFNLCB0aGlzIHZhbHVlIHNob3VsZCBub3QKKyAgIGluY2x1ZGUgdGhpcyBpbmZvcm1hdGlvbi4KKworIHJhbWRpc2tfc2l6ZQorCisgICBUaGlzIGlzIG5vdyBvYnNvbGV0ZSwgYW5kIHNob3VsZCBub3QgYmUgdXNlZC4KKworIGZsYWdzCisKKyAgIFZhcmlvdXMga2VybmVsIGZsYWdzLCBpbmNsdWRpbmc6CisgICAgYml0IDAgLSAxID0gbW91bnQgcm9vdCByZWFkIG9ubHkKKyAgICBiaXQgMSAtIHVudXNlZAorICAgIGJpdCAyIC0gMCA9IGxvYWQgcmFtZGlzaworICAgIGJpdCAzIC0gMCA9IHByb21wdCBmb3IgcmFtZGlzaworCisgcm9vdGRldgorCisgICBtYWpvci9taW5vciBudW1iZXIgcGFpciBvZiBkZXZpY2UgdG8gbW91bnQgYXMgdGhlIHJvb3QgZmlsZXN5c3RlbS4KKworIHZpZGVvX251bV9jb2xzCisgdmlkZW9fbnVtX3Jvd3MKKworICAgVGhlc2UgdHdvIHRvZ2V0aGVyIGRlc2NyaWJlIHRoZSBjaGFyYWN0ZXIgc2l6ZSBvZiB0aGUgZHVtbXkgY29uc29sZSwKKyAgIG9yIFZHQSBjb25zb2xlIGNoYXJhY3RlciBzaXplLiAgVGhleSBzaG91bGQgbm90IGJlIHVzZWQgZm9yIGFueSBvdGhlcgorICAgcHVycG9zZS4KKworICAgSXQncyBnZW5lcmFsbHkgYSBnb29kIGlkZWEgdG8gc2V0IHRoZXNlIHRvIGJlIGVpdGhlciBzdGFuZGFyZCBWR0EsIG9yCisgICB0aGUgZXF1aXZhbGVudCBjaGFyYWN0ZXIgc2l6ZSBvZiB5b3VyIGZiY29uIGRpc3BsYXkuICBUaGlzIHRoZW4gYWxsb3dzCisgICBhbGwgdGhlIGJvb3R1cCBtZXNzYWdlcyB0byBiZSBkaXNwbGF5ZWQgY29ycmVjdGx5LgorCisgdmlkZW9feAorIHZpZGVvX3kKKworICAgVGhpcyBkZXNjcmliZXMgdGhlIGNoYXJhY3RlciBwb3NpdGlvbiBvZiBjdXJzb3Igb24gVkdBIGNvbnNvbGUsIGFuZAorICAgaXMgb3RoZXJ3aXNlIHVudXNlZC4gKHNob3VsZCBub3QgdXNlZCBmb3Igb3RoZXIgY29uc29sZSB0eXBlcywgYW5kCisgICBzaG91bGQgbm90IGJlIHVzZWQgZm9yIG90aGVyIHB1cnBvc2VzKS4KKworIG1lbWNfY29udHJvbF9yZWcKKworICAgTUVNQyBjaGlwIGNvbnRyb2wgcmVnaXN0ZXIgZm9yIEFjb3JuIEFyY2hpbWVkZXMgYW5kIEFjb3JuIEE1MDAwCisgICBiYXNlZCBtYWNoaW5lcy4gIE1heSBiZSB1c2VkIGRpZmZlcmVudGx5IGJ5IGRpZmZlcmVudCBhcmNoaXRlY3R1cmVzLgorCisgc291bmRkZWZhdWx0CisKKyAgIERlZmF1bHQgc291bmQgc2V0dGluZyBvbiBBY29ybiBtYWNoaW5lcy4gIE1heSBiZSB1c2VkIGRpZmZlcmVudGx5IGJ5CisgICBkaWZmZXJlbnQgYXJjaGl0ZWN0dXJlcy4KKworIGFkZnNkcml2ZXMKKworICAgTnVtYmVyIG9mIEFERlMvTUZNIGRpc2tzLiAgTWF5IGJlIHVzZWQgZGlmZmVyZW50bHkgYnkgZGlmZmVyZW50CisgICBhcmNoaXRlY3R1cmVzLgorCisgYnl0ZXNfcGVyX2NoYXJfaAorIGJ5dGVzX3Blcl9jaGFyX3YKKworICAgVGhlc2UgYXJlIG5vdyBvYnNvbGV0ZSwgYW5kIHNob3VsZCBub3QgYmUgdXNlZC4KKworIHBhZ2VzX2luX2JhbmtbNF0KKworICAgTnVtYmVyIG9mIHBhZ2VzIGluIGVhY2ggYmFuayBvZiB0aGUgc3lzdGVtcyBtZW1vcnkgKHVzZWQgZm9yIFJpc2NQQykuCisgICBUaGlzIGlzIGludGVuZGVkIHRvIGJlIHVzZWQgb24gc3lzdGVtcyB3aGVyZSB0aGUgcGh5c2ljYWwgbWVtb3J5CisgICBpcyBub24tY29udGlndW91cyBmcm9tIHRoZSBwcm9jZXNzb3JzIHBvaW50IG9mIHZpZXcuCisKKyBwYWdlc19pbl92cmFtCisKKyAgIE51bWJlciBvZiBwYWdlcyBpbiBWUkFNICh1c2VkIG9uIEFjb3JuIFJpc2NQQykuICBUaGlzIHZhbHVlIG1heSBhbHNvCisgICBiZSB1c2VkIGJ5IGxvYWRlcnMgaWYgdGhlIHNpemUgb2YgdGhlIHZpZGVvIFJBTSBjYW4ndCBiZSBvYnRhaW5lZAorICAgZnJvbSB0aGUgaGFyZHdhcmUuCisKKyBpbml0cmRfc3RhcnQKKyBpbml0cmRfc2l6ZQorCisgICBUaGlzIGRlc2NyaWJlcyB0aGUga2VybmVsIHZpcnR1YWwgc3RhcnQgYWRkcmVzcyBhbmQgc2l6ZSBvZiB0aGUKKyAgIGluaXRpYWwgcmFtZGlzay4KKworIHJkX3N0YXJ0CisKKyAgIFN0YXJ0IGFkZHJlc3MgaW4gc2VjdG9ycyBvZiB0aGUgcmFtZGlzayBpbWFnZSBvbiBhIGZsb3BweSBkaXNrLgorCisgc3lzdGVtX3JldgorCisgICBzeXN0ZW0gcmV2aXNpb24gbnVtYmVyLgorCisgc3lzdGVtX3NlcmlhbF9sb3cKKyBzeXN0ZW1fc2VyaWFsX2hpZ2gKKworICAgc3lzdGVtIDY0LWJpdCBzZXJpYWwgbnVtYmVyCisKKyBtZW1fZmNsa18yMTI4NQorCisgICBUaGUgc3BlZWQgb2YgdGhlIGV4dGVybmFsIG9zY2lsbGF0b3IgdG8gdGhlIDIxMjg1IChmb290YnJpZGdlKSwKKyAgIHdoaWNoIGNvbnRyb2wncyB0aGUgc3BlZWQgb2YgdGhlIG1lbW9yeSBidXMsIHRpbWVyICYgc2VyaWFsIHBvcnQuCisgICBEZXBlbmRpbmcgdXBvbiB0aGUgc3BlZWQgb2YgdGhlIGNwdSBpdHMgdmFsdWUgY2FuIGJlIGJldHdlZW4KKyAgIDAtNjYgTUh6LiBJZiBubyBwYXJhbXMgYXJlIHBhc3NlZCBvciBhIHZhbHVlIG9mIHplcm8gaXMgcGFzc2VkLAorICAgdGhlbiBhIHZhbHVlIG9mIDUwIE1oeiBpcyB0aGUgZGVmYXVsdCBvbiAyMTI4NSBhcmNoaXRlY3R1cmVzLgorCisgcGF0aHNbOF1bMTI4XQorCisgICBUaGVzZSBhcmUgbm93IG9ic29sZXRlLCBhbmQgc2hvdWxkIG5vdCBiZSB1c2VkLgorCisgY29tbWFuZGxpbmUKKworICAgS2VybmVsIGNvbW1hbmQgbGluZSBwYXJhbWV0ZXJzLiAgRGV0YWlscyBjYW4gYmUgZm91bmQgZWxzZXdoZXJlLgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9hcm0vU2hhcnAtTEgvQ29tcGFjdEZsYXNoIGIvRG9jdW1lbnRhdGlvbi9hcm0vU2hhcnAtTEgvQ29tcGFjdEZsYXNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg2MTZkODcKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL2FybS9TaGFycC1MSC9Db21wYWN0Rmxhc2gKQEAgLTAsMCArMSwzMiBAQAorUkVBRE1FIG9uIHRoZSBDb21wYWN0IEZsYXNoIGZvciBDYXJkIEVuZ2luZXMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK1RoZXJlIGFyZSB0aHJlZSBjaGFsbGVuZ2VzIGluIHN1cHBvcnRpbmcgdGhlIENGIGludGVyZmFjZSBvZiB0aGUgQ2FyZAorRW5naW5lcy4gIEZpcnN0LCBldmVyeSBJTyBvcGVyYXRpb24gbXVzdCBiZSBmb2xsb3dlZCB3aXRoIElPIHRvCithbm90aGVyIG1lbW9yeSByZWdpb24uICBTZWNvbmQsIHRoZSBzbG90IGlzIHdpcmVkIGZvciBvbmUtdG8tb25lCithZGRyZXNzIG1hcHBpbmcgKmFuZCogaXQgaXMgd2lyZWQgZm9yIDE2IGJpdCBhY2Nlc3Mgb25seS4gIFNlY29uZCwgdGhlCitpbnRlcnJ1cHQgcmVxdWVzdCBsaW5lIGZyb20gdGhlIENGIGRldmljZSBpc24ndCB3aXJlZC4KKworVGhlIElPQkFSUklFUiBpc3N1ZSBpcyBjb3ZlcmVkIGluIFJFQURNRS5JT0JBUlJJRVIuICBUaGlzIGlzbid0IGFuCitvbmVyb3VzIHByb2JsZW0uICBFbm91Z2ggc2FpZCBoZXJlLgorCitUaGUgYWRkcmVzc2luZyBpc3N1ZSBpcyBzb2x2ZWQgaW4gdGhlCithcmNoL2FybS9tYWNoLWxoN2E0MHgvaWRlLWxwZDdhNDB4LmMgZmlsZSB3aXRoIHNvbWUgYXdrd2FyZAord29yay1hcm91bmRzLiAgV2UgaW1wbGVtZW50IGEgc3BlY2lhbCBTRUxFQ1RfRFJJVkUgcm91dGluZSB0aGF0IGlzCitjYWxsZWQgYmVmb3JlIHRoZSBJREUgZHJpdmVyIHBlcmZvcm1zIGl0cyBvd24gU0VMRUNUX0RSSVZFLiAgT3VyIGNvZGUKK3JlY29nbml6ZXMgdGhhdCB0aGUgU0VMRUNUIHJlZ2lzdGVyIGNhbm5vdCBiZSBtb2RpZmllZCB3aXRob3V0IGFsc28KK3dyaXRpbmcgYSBjb21tYW5kLiAgSXQgc2VuZCBhbiBJRExFX0lNTUVESUFURSBjb21tYW5kIG9uIHNlbGVjdGluZyBhCitkcml2ZS4gIFRoZSBmdW5jdGlvbiBhbHNvIHByZXZlbnRzIGRyaXZlIHNlbGVjdCB0byB0aGUgc2xhdmUgZHJpdmUKK3NpbmNlIHRoZXJlIGNhbiBiZSBvbmx5IG9uZS4gIFRoZSBhd2t3YXJkIHBhcnQgaXMgdGhhdCB0aGUgSURFIGRyaXZlciwKK2V2ZW4gdGhvdWdoIHdlIGhhdmUgYSBzZWxlY3QgcHJvY2VkdXJlLCBhbHNvIGF0dGVtcHRzIHRvIGNoYW5nZSB0aGUKK2RyaXZlIGJ5IHdyaXRpbmcgZGlyZWN0bHkgdGhlIFNFTEVDVCByZWdpc3Rlci4gIFRoaXMgYXR0ZW1wdCBpcworZXhwbGljaXRseSBibG9ja2VkIGJ5IHRoZSBPVVRCIGZ1bmN0aW9uLS1ub3QgcHJldHR5LCBidXQgZWZmZWN0aXZlLgorCitUaGUgbGFjayBvZiBpbnRlcnJ1cHRzIGlzIGEgbW9yZSBzZXJpb3VzIHByb2JsZW0uICBFdmVuIHRob3VnaCB0aGUgQ0YKK2NhcmQgaXMgZmFzdCB3aGVuIGNvbXBhcmVkIHRvIGEgbm9ybWFsIElERSBkZXZpY2UsIHdlIGRvbid0IGtub3cgdGhhdAordGhlIENGIGlzIHJlYWxseSBmbGFzaC4gIEEgdXNlciBjb3VsZCB1c2Ugb25lIG9mIHRoZSB2ZXJ5IHNtYWxsIGhhcmQKK2RyaXZlcyBiZWluZyBzaGlwcGVkIHdpdGggYSBDRiBpbnRlcmZhY2UuICBUaGUgSURFIGNvZGUgaW5jbHVkZXMgYQorY2hlY2sgZm9yIGludGVyZmFjZXMgdGhhdCBsYWNrIGFuIElSUS4gIEluIHRoZXNlIGNhc2VzLCBzdWJtaXR0aW5nIGEKK2NvbW1hbmQgdG8gdGhlIElERSBjb250cm9sbGVyIGlzIGZvbGxvd2VkIGJ5IGEgY2FsbCB0byBwb2xsIGZvcgorY29tcGxldGlvbi4gIElmIHRoZSBkZXZpY2UgaXNuJ3QgaW1tZWRpYXRlbHkgcmVhZHksIGl0IHNjaGVkdWxlcyBhCit0aW1lciB0byBwb2xsIGFnYWluIGxhdGVyLgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9hcm0vU2hhcnAtTEgvSU9CYXJyaWVyIGIvRG9jdW1lbnRhdGlvbi9hcm0vU2hhcnAtTEgvSU9CYXJyaWVyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMwZDg4NTMKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL2FybS9TaGFycC1MSC9JT0JhcnJpZXIKQEAgLTAsMCArMSw0NSBAQAorUkVBRE1FIG9uIHRoZSBJT0JBUlJJRVIgZm9yIENhcmRFbmdpbmUgSU8KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK0R1ZSB0byBhbiB1bmZvcnR1bmF0ZSBvdmVyc2lnaHQgd2hlbiB0aGUgQ2FyZCBFbmdpbmVzIHdlcmUgZGVzaWduZWQsCit0aGUgc2lnbmFscyB0aGF0IGNvbnRyb2wgYWNjZXNzIHRvIHNvbWUgcGVyaXBoZXJhbHMsIG1vc3Qgbm90YWJseSB0aGUKK1NNQzkxQzkxMTEgZXRoZXJuZXQgY29udHJvbGxlciwgYXJlIG5vdCBwcm9wZXJseSBoYW5kbGVkLgorCitUaGUgc3ltcHRvbSBpcyB0aGF0IHNvbWUgYmFjayB0byBiYWNrIElPIHdpdGggdGhlIHBlcmlwaGVyYWwgcmV0dXJucwordW5yZWxpYWJsZSBkYXRhLiAgV2l0aCB0aGUgU01DIGNoaXAsIHlvdSdsbCBzZWUgZXJyb3JzIGFib3V0IHRoZSBiYW5rCityZWdpc3RlciBiZWluZyAnc2NyZXdlZCcuCisKK1RoZSBjYXVzZSBpcyB0aGF0IHRoZSBBRU4gc2lnbmFsIHRvIHRoZSBTTUMgY2hpcCBkb2VzIG5vdCB0cmFuc2l0aW9uCitmb3IgZXZlcnkgbWVtb3J5IGFjY2Vzcy4gIEl0IGlzIGRyaXZlbiB0aHJvdWdoIHRoZSBDUExEIGZyb20gdGhlIENTNworbGluZSBvZiB0aGUgQ1BVJ3Mgc3RhdGljIG1lbW9yeSBjb250cm9sbGVyIHdoaWNoIGlzIG9wdGltaXplZCB0bworZWxpbWluYXRlIHVubmVjZXNzYXJ5IHRyYW5zaXRpb25zLiAgWWV0LCB0aGUgU01DIHJlcXVpcmVzIGEgdHJhbnNpdGlvbgorZm9yIGV2ZXJ5IHdyaXRlIGFjY2Vzcy4gIFRoZSBTaGFycCB3ZWJzaXRlIGhhcyBtb3JlIGluZm9ybWF0aW9uIGFib3V0Cit0aGUgZWZmZWN0IHRoaXMgcG93ZXItY29uc2VydmluZyBmZWF0dXJlIGhhcyBvbiBwZXJpcGhlcmFsCitpbnRlcmZhY2luZy4KKworVGhlIHNvbHV0aW9uIGlzIHRvIGZvbGxvdyBldmVyeSB3cml0ZSBhY2Nlc3MgdG8gdGhlIFNNQyBjaGlwIHdpdGggYW4KK2FjY2VzcyB0byBhbm90aGVyIG1lbW9yeSByZWdpb24gdGhhdCB3aWxsIGZvcmNlIHRoZSBDUFUgdG8gcmVsZWFzZSB0aGUKK2NoaXAgc2VsZWN0IGxpbmUuICBJdCBpcyBpbXBvcnRhbnQgdG8gZ3VhcmFudGVlIHRoYXQgdGhpcyBhY2Nlc3MKK2ZvcmNlcyB0aGUgQ1BVIG9mZi1jaGlwLiAgV2UgbWFwIGEgcGFnZSBvZiBTRFJBTSBhcyBpZiBpdCB3ZXJlIGFuCit1bmNhY2hlYWJsZSBJTyBkZXZpY2UgYW5kIHJlYWQgZnJvbSBpdCBhZnRlciBldmVyeSBTTUMgSU8gd3JpdGUKK29wZXJhdGlvbi4KKworICBTTUMgSU8KKyAgQkFSUklFUiBJTworCitPbmx5IHRoaXMgc2VxdWVuY2UgaXMgaW1wb3J0YW50LiAgSXQgZG9lcyBub3QgbWF0dGVyIHRoYXQgdGhlcmUgaXMgbm8KK0JBUlJJRVIgSU8gYmVmb3JlIHRoZSBhY2Nlc3MgdG8gdGhlIFNNQyBjaGlwIGJlY2F1c2UgdGhlIEFFTiBsYXRjaAorb25seSBuZWVkcyBvY2N1cnMgYWZ0ZXIgdGhlIFNNQyBJTyB3cml0ZSBjeWNsZS4gIFRoZSByb3V0aW5lcyB0aGF0CitpbXBsZW1lbnQgdGhpcyB3b3JrLWFyb3VuZCBtYWtlIGFuIGFkZGl0aW9uYWwgY29uY2Vzc2lvbiB3aGljaCBpcyB0bworZGlzYWJsZSBpbnRlcnJ1cHRzIGR1cmluZyB0aGUgSU8gc2VxdWVuY2UuICBPdGhlciBoYXJkd2FyZSBkZXZpY2VzCisodGhlIExvZ2ljUEQgQ1BMRCkgaGF2ZSByZWdpc3RlcnMgaW4gdGhlIHNhbWUgdGhlIHBoeXNpY2FsIG1lbW9yeQorcmVnaW9uIGFzIHRoZSBTTUMgY2hpcC4gIEFuIGludGVycnVwdCBtaWdodCBhbGxvdyBhbiBhY2Nlc3MgdG8gb25lIG9mCit0aG9zZSByZWdpc3RlcnMgd2hpbGUgU01DIElPIGlzIGJlaW5nIHBlcmZvcm1lZC4KKworWW91IG1pZ2h0IGJlIHRlbXB0ZWQgdG8gdGhpbmsgdGhhdCB3ZSBoYXZlIHRvIGFjY2VzcyBhbm90aGVyIGRldmljZQorYXR0YWNoZWQgdG8gdGhlIHN0YXRpYyBtZW1vcnkgY29udHJvbGxlciwgYnV0IHRoZSBlbXBpcmljYWwgZXZpZGVuY2UKK2luZGljYXRlcyB0aGF0IHRoaXMgaXMgbm90IHNvLiAgTWFwcGluZyAweDAwMDAwMDAwIChmbGFzaCkgYW5kCisweGMwMDAwMDAwIChTRFJBTSkgYXBwZWFyIHRvIGhhdmUgdGhlIHNhbWUgZWZmZWN0LiAgVXNpbmcgU0RSQU0gc2VlbXMKK3RvIGJlIGZhc3Rlci4gIENob29zaW5nIHRvIGFjY2VzcyBhbiB1bmRlY29kZWQgbWVtb3J5IHJlZ2lvbiBpcyBub3QKK2Rlc2lyYWJsZSBhcyB0aGVyZSBpcyBubyB3YXkgdG8ga25vdyBob3cgdGhhdCBjaGlwIHNlbGVjdCB3aWxsIGJlIHVzZWQKK2luIHRoZSBmdXR1cmUuCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2FybS9TaGFycC1MSC9LRVY3QTQwMCBiL0RvY3VtZW50YXRpb24vYXJtL1NoYXJwLUxIL0tFVjdBNDAwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJlMzJiMTQKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL2FybS9TaGFycC1MSC9LRVY3QTQwMApAQCAtMCwwICsxLDggQEAKK1JFQURNRSBvbiBJbXBsZW1lbnRpbmcgTGludXggZm9yIFNoYXJwJ3MgS0VWN2E0MDAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworVGhpcyBwcm9kdWN0IGhhcyBiZWVuIGRpc2NvbnRpbnVlZCBieSBTaGFycC4gIEZvciB0aGUgdGltZSBiZWluZywgdGhlCitwYXJ0aWFsbHkgaW1wbGVtZW50ZWQgY29kZSByZW1haW5zIGluIHRoZSBrZXJuZWwuICBBdCBzb21lIHBvaW50IGluCit0aGUgZnV0dXJlLCBlaXRoZXIgdGhlIGNvZGUgd2lsbCBiZSBmaW5pc2hlZCBvciBpdCB3aWxsIGJlIHJlbW92ZWQKK2NvbXBsZXRlbHkuICBUaGlzIGRlcGVuZHMgcHJpbWFyaWx5IG9uIGhvdyBtYW55IG9mIHRoZSBkZXZlbG9wbWVudAorYm9hcmRzIGFyZSBpbiB0aGUgZmllbGQuCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2FybS9TaGFycC1MSC9MUEQ3QTQwMCBiL0RvY3VtZW50YXRpb24vYXJtL1NoYXJwLUxIL0xQRDdBNDAwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMyNzViNDUKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL2FybS9TaGFycC1MSC9MUEQ3QTQwMApAQCAtMCwwICsxLDE1IEBACitSRUFETUUgb24gSW1wbGVtZW50aW5nIExpbnV4IGZvciB0aGUgTG9naWMgUEQgTFBEN0E0MDAtMTAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCistIENQTEQgbWVtb3J5IG1hcHBpbmcKKworICBUaGUgYm9hcmQgZGVzaWduZXJzIGNob3NlIHRvIHVzZSBoaWdoIGFkZHJlc3MgbGluZXMgZm9yIGNvbnRyb2xsaW5nCisgIGFjY2VzcyB0byB0aGUgQ1BMRCByZWdpc3RlcnMuICBJdCB0dXJucyBvdXQgdG8gYmUgYSBiaWcgd2FzdGUKKyAgYmVjYXVzZSB3ZSdyZSB1c2luZyBhbiBNTVUgYW5kIG11c3QgbWFwIElPIHNwYWNlIGludG8gdmlydHVhbAorICBtZW1vcnkuICBUaGUgcmVzdWx0IGlzIHRoYXQgd2UgaGF2ZSB0byBtYWtlIGEgbWFwcGluZyBmb3IgZXZlcnkKKyAgcmVnaXN0ZXIuCisKKy0gU2VyaWFsIENvbnNvbGUKKworICBJdCBtYXkgYmUgT0sgbm90IHRvIHVzZSB0aGUgc2VyaWFsIGNvbnNvbGUgb3B0aW9uIGlmIHRoZSB1c2VyIHBhc3NlcworICB0aGUgY29uc29sZSBkZXZpY2UgbmFtZSB0byB0aGUga2VybmVsLiAgVGhpcyBkZXNlcnZlcyBzb21lIGV4cGxvcmF0aW9uLgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9hcm0vU2hhcnAtTEgvTFBEN0E0MFggYi9Eb2N1bWVudGF0aW9uL2FybS9TaGFycC1MSC9MUEQ3QTQwWApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YzI5YTI3Ci0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9hcm0vU2hhcnAtTEgvTFBEN0E0MFgKQEAgLTAsMCArMSwxNiBAQAorUkVBRE1FIG9uIEltcGxlbWVudGluZyBMaW51eCBmb3IgdGhlIExvZ2ljIFBEIExQRDdBNDBYLTEwCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLSBDUExEIG1lbW9yeSBtYXBwaW5nCisKKyAgVGhlIGJvYXJkIGRlc2lnbmVycyBjaG9zZSB0byB1c2UgaGlnaCBhZGRyZXNzIGxpbmVzIGZvciBjb250cm9sbGluZworICBhY2Nlc3MgdG8gdGhlIENQTEQgcmVnaXN0ZXJzLiAgSXQgdHVybnMgb3V0IHRvIGJlIGEgYmlnIHdhc3RlCisgIGJlY2F1c2Ugd2UncmUgdXNpbmcgYW4gTU1VIGFuZCBtdXN0IG1hcCBJTyBzcGFjZSBpbnRvIHZpcnR1YWwKKyAgbWVtb3J5LiAgVGhlIHJlc3VsdCBpcyB0aGF0IHdlIGhhdmUgdG8gbWFrZSBhIG1hcHBpbmcgZm9yIGV2ZXJ5CisgIHJlZ2lzdGVyLgorCistIFNlcmlhbCBDb25zb2xlCisKKyAgSXQgbWF5IGJlIE9LIG5vdCB0byB1c2UgdGhlIHNlcmlhbCBjb25zb2xlIG9wdGlvbiBpZiB0aGUgdXNlciBwYXNzZXMKKyAgdGhlIGNvbnNvbGUgZGV2aWNlIG5hbWUgdG8gdGhlIGtlcm5lbC4gIFRoaXMgZGVzZXJ2ZXMgc29tZSBleHBsb3JhdGlvbi4KKwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9hcm0vU2hhcnAtTEgvU0RSQU0gYi9Eb2N1bWVudGF0aW9uL2FybS9TaGFycC1MSC9TRFJBTQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45M2RkYzIzCi0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9hcm0vU2hhcnAtTEgvU0RSQU0KQEAgLTAsMCArMSw1MSBAQAorUkVBRE1FIG9uIHRoZSBTRFJBTSBDb250cm9sbGVyIGZvciB0aGUgTEg3YTQwWAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitUaGUgc3RhbmRhcmQgY29uZmlndXJhdGlvbiBmb3IgdGhlIFNEUkFNIGNvbnRyb2xsZXIgZ2VuZXJhdGVzIGEgc3BhcnNlCittZW1vcnkgYXJyYXkuICBUaGUgcHJlY2lzZSBsYXlvdXQgaXMgZGV0ZXJtaW5lZCBieSB0aGUgU0RSQU0gY2hpcHMuICBBCitkZWZhdWx0IGtlcm5lbCBjb25maWd1cmF0aW9uIGFzc2VtYmxlcyB0aGUgZGlzY29udGlndW91cyBtZW1vcnkKK3JlZ2lvbnMgaW50byBzZXBhcmF0ZSBtZW1vcnkgbm9kZXMgdmlhIHRoZSBOVU1BIChOb24tVW5pZm9ybSBNZW1vcnkKK0FyY2hpdGVjdHVyZSkgZmFjaWxpdGllcy4gIEluIHRoaXMgZGVmYXVsdCBjb25maWd1cmF0aW9uLCB0aGUga2VybmVsCitpcyBmb3JnaXZpbmcgYWJvdXQgdGhlIHByZWNpc2UgbGF5b3V0LiAgQXMgbG9uZyBhcyBpdCBpcyBnaXZlbiBhbgorYWNjdXJhdGUgcGljdHVyZSBvZiBhdmFpbGFibGUgbWVtb3J5IGJ5IHRoZSBib290bG9hZGVyIHRoZSBrZXJuZWwgd2lsbAorZXhlY3V0ZSBjb3JyZWN0bHkuCisKK1RoZSBTRFJDIHN1cHBvcnRzIGEgbW9kZSB3aGVyZSBzb21lIG9mIHRoZSBjaGlwIHNlbGVjdCBsaW5lcyBhcmUKK3N3YXBwZWQgaW4gb3JkZXIgdG8gbWFrZSBTRFJBTSBsb29rIGxpa2UgYSBzeW5jaHJvbm91cyBST00uICBTZXR0aW5nCit0aGlzIGJpdCBtZWFucyB0aGF0IHRoZSBSQU0gd2lsbCBwcmVzZW50IGFzIGEgY29udGlndW91cyBhcnJheS4gIFNvbWUKK3Byb2dyYW1tZXJzIHByZWZlciB0aGlzIHRvIHRoZSBkaXNjb250aWd1b3VzIGxheW91dC4gIEJlIGF3YXJlIHRoYXQKK21heSBiZSBhIHBlbmFsdHkgZm9yIHRoaXMgZmVhdHVyZSB3aGVyZSBzb21lIHNvbWUgY29uZmlndXJhdGlvbnMgb2YKK21lbW9yeSBhcmUgc2lnbmlmaWNhbnRseSByZWR1Y2VkOyBpLmUuIDY0TWlCIG9mIFJBTSBhcHBlYXJzIGFzIG9ubHkgMzIKK01pQi4KKworVGhlcmUgYXJlIGEgY291cGxlIG9mIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB0byBvdmVycmlkZSB0aGUgZGVmYXVsdAorYmVoYXZpb3IuICBXaGVuIHRoZSBTUk9NTEwgYml0IGlzIHNldCBhbmQgbWVtb3J5IGFwcGVhcnMgYXMgYQorY29udGlndW91cyBhcnJheSwgdGhlcmUgaXMgbm8gcmVhc29uIHRvIHN1cHBvcnQgTlVNQS4KK0NPTkZJR19MSDdBNDBYX0NPTlRJR01FTSBkaXNhYmxlcyBOVU1BIHN1cHBvcnQuICBXaGVuIHBoeXNpY2FsIG1lbW9yeQoraXMgZGlzY29udGlndW91cywgdGhlIG1lbW9yeSB0YWJsZXMgYXJlIG9yZ2FuaXplZCBzdWNoIHRoYXQgdGhlcmUgYXJlCit0d28gYmFua3MgcGVyIG5vZGVzIHdpdGggYSBzbWFsbCBnYXAgYmV0d2VlbiB0aGVtLiAgVGhpcyBsYXlvdXQgd2FzdGVzCitzb21lIGtlcm5lbCBtZW1vcnkgZm9yIHBhZ2UgdGFibGVzIHJlcHJlc2VudGluZyBub24tZXhpc3RlbnQgbWVtb3J5LgorQ09ORklHX0xIN0E0MFhfT05FX0JBTktfUEVSX05PREUgb3B0aW1pemVzIHRoZSBub2RlIHRhYmxlcyBzdWNoIHRoYXQKK3RoZXJlIGFyZSBubyBnYXBzLiAgVGhlc2Ugb3B0aW9ucyBjb250cm9sIHRoZSBsb3cgbGV2ZWwgb3JnYW5pemF0aW9uCitvZiB0aGUgbWVtb3J5IG1hbmFnZW1lbnQgdGFibGVzIGluIHdheXMgdGhhdCBtYXkgcHJldmVudCB0aGUga2VybmVsCitmcm9tIGJvb3Rpbmcgb3IgbWF5IGNhdXNlIHRoZSBrZXJuZWwgdG8gYWxsb2NhdGVkIGV4Y2Vzc2l2ZWx5IGxhcmdlCitwYWdlIHRhYmxlcy4gIEJlIHdhcm5lZC4gIE9ubHkgY2hhbmdlIHRoZXNlIG9wdGlvbnMgaWYgeW91IGtub3cgd2hhdAoreW91IGFyZSBkb2luZy4gIFRoZSBkZWZhdWx0IGJlaGF2aW9yIGlzIGEgcmVhc29uYWJsZSBjb21wcm9taXNlIHRoYXQKK3dpbGwgc3VpdCBhbGwgdXNlcnMuCisKKy0tCisKK0EgdHlwaWNhbCAzMk1pQiBzeXN0ZW0gd2l0aCB0aGUgZGVmYXVsdCBjb25maWd1cmF0aW9uIG9wdGlvbnMgd2lsbAorZmluZCBwaHlzaWNhbCBtZW1vcnkgbWFuYWdlZCBhcyBmb2xsb3dzLgorCisgICBub2RlIDA6IDB4YzAwMDAwMDAgNE1pQgorICAgICAgICAgICAweGMxMDAwMDAwIDRNaUIKKyAgIG5vZGUgMTogMHhjNDAwMDAwMCA0TWlCCisgICAgICAgICAgIDB4YzUwMDAwMDAgNE1pQgorICAgbm9kZSAyOiAweGM4MDAwMDAwIDRNaUIKKyAgICAgICAgICAgMHhjOTAwMDAwMCA0TWlCCisgICBub2RlIDM6IDB4Y2MwMDAwMDAgNE1pQgorICAgICAgICAgICAweGNkMDAwMDAwIDRNaUIKKworU2V0dGluZyBDT05GSUdfTEg3QTQwWF9PTkVfQkFOS19QRVJfTk9ERSB3aWxsIHB1dCBlYWNoIGJhbmsgaW50byBhCitzZXBhcmF0ZSBub2RlLgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9hcm0vU2hhcnAtTEgvVmVjdG9yZWRJbnRlcnJ1cHRDb250cm9sbGVyIGIvRG9jdW1lbnRhdGlvbi9hcm0vU2hhcnAtTEgvVmVjdG9yZWRJbnRlcnJ1cHRDb250cm9sbGVyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIzMDQ3ZTkKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL2FybS9TaGFycC1MSC9WZWN0b3JlZEludGVycnVwdENvbnRyb2xsZXIKQEAgLTAsMCArMSw4MCBAQAorUkVBRE1FIG9uIHRoZSBWZWN0b3JlZCBJbnRlcnJ1cHQgQ29udHJvbGxlciBvZiB0aGUgTEg3QTQwNAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitUaGUgNDA0IHJldmlzaW9uIG9mIHRoZSBMSDdBNDBYIHNlcmllcyBjb21lcyB3aXRoIHR3byB2ZWN0b3JlZAoraW50ZXJydXB0cyBjb250cm9sbGVycy4gIFdoaWxlIHRoZSBrZXJuZWwgZG9lcyB1c2Ugc29tZSBvZiB0aGUKK2ZlYXR1cmVzIG9mIHRoZXNlIGRldmljZXMsIGl0IGlzIGZhciBmcm9tIHRoZSBwdXJwb3NlIGZvciB3aGljaCB0aGV5Cit3ZXJlIGRlc2lnbmVkLgorCitXaGVuIHRoaXMgUkVBRE1FIHdhcyB3cml0dGVuLCB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhlIFZJQ3Mgd2FzIGluCitmbHV4LiAgSXQgaXMgcG9zc2libGUgdGhhdCBzb21lIGRldGFpbHMsIGVzcGVjaWFsbHkgd2l0aCBwcmlvcml0aWVzLAord2lsbCBjaGFuZ2UuCisKK1RoZSBWSUMgc3VwcG9ydCBjb2RlIGlzIGluc3BpcmVkIGJ5IHJvdXRpbmVzIHdyaXR0ZW4gYnkgU2hhcnAuCisKKworUHJpb3JpdHkgQ29udHJvbAorLS0tLS0tLS0tLS0tLS0tLQorCitUaGUgc2lnbmlmaWNhbnQgcmVhc29uIGZvciB1c2luZyB0aGUgVklDJ3MgdmVjdG9yaW5nIGlzIHRvIGNvbnRyb2wKK2ludGVycnVwdCBwcmlvcml0aWVzLiAgVGhlcmUgYXJlIHR3byB0YWJsZXMgaW4KK2FyY2gvYXJtL21hY2gtbGg3YTQweC9pcnEtbGg3YTQwNC5jIHRoYXQgbG9vayBzb21ldGhpbmcgbGlrZSB0aGlzLgorCisgIHN0YXRpYyB1bnNpZ25lZCBjaGFyIGlycV9wcmlfdmljMVtdID0geyBJUlFfR1BJTzNJTlRSLCB9OworICBzdGF0aWMgdW5zaWduZWQgY2hhciBpcnFfcHJpX3ZpYzJbXSA9IHsKKwlJUlFfVDNVSSwgSVJRX0dQSU83SU5UUiwKKwlJUlFfVUFSVDFJTlRSLCBJUlFfVUFSVDJJTlRSLCBJUlFfVUFSVDNJTlRSLCB9OworCitUaGUgaW5pdGlhbGl6YXRpb24gY29kZSByZWFkcyB0aGVzZSB0YWJsZXMgYW5kIGluc2VydHMgYSB2ZWN0b3IKK2FkZHJlc3MgYW5kIGVuYWJsZSBmb3IgZWFjaCBpbmRpY2F0ZWQgSVJRLiAgVmVjdG9yZWQgaW50ZXJydXB0cyBoYXZlCitoaWdoZXIgcHJpb3JpdHkgdGhhbiBub24tdmVjdG9yZWQgaW50ZXJydXB0cy4gIFNvLCBvbiBWSUMxLAorSVJRX0dQSU8zSU5UUiB3aWxsIGJlIHNlcnZlZCBiZWZvcmUgYW55IG90aGVyIG5vbi1GSVEgaW50ZXJydXB0LiAgRHVlCit0byB0aGUgd2F5IHRoYXQgdGhlIHZlY3RvcmluZyB3b3JrcywgSVJRX1QzVUkgaXMgdGhlIG5leHQgaGlnaGVzdAorcHJpb3JpdHkgZm9sbG93ZWQgYnkgdGhlIG90aGVyIHZlY3RvcmVkIGludGVycnVwdHMgb24gVklDMi4gIEFmdGVyCit0aGF0LCB0aGUgbm9uLXZlY3RvcmVkIGludGVycnVwdHMgYXJlIHNjYW5uZWQgaW4gVklDMSB0aGVuIGluIFZJQzIuCisKKworSVNSCistLS0KKworVGhlIGludGVycnVwdCBzZXJ2aWNlIHJvdXRpbmUgbWFjcm8gZ2V0X2lycW5yKCkgaW4KK2FyY2gvYXJtL2tlcm5lbC9lbnRyeS1hcm12LlMgc2NhbnMgdGhlIFZJQ3MgZm9yIHRoZSBuZXh0IGFjdGl2ZQoraW50ZXJydXB0LiAgVGhlIHZlY3RvcmluZyBtYWtlcyB0aGlzIGNvZGUgc29tZXdoYXQgbGFyZ2VyIHRoYW4gaXQgd2FzCitiZWZvcmUgdXNpbmcgdmVjdG9yaW5nIChyZWZlciB0byB0aGUgTEg3QTQwMCBpbXBsZW1lbnRhdGlvbikuICBJbiB0aGUKK2Nhc2Ugd2hlcmUgYW4gaW50ZXJydXB0IGlzIHZlY3RvcmVkLCB0aGUgaW1wbGVtZW50YXRpb24gd2lsbCB0ZW5kIHRvCitiZSBmYXN0ZXIgdGhhbiB0aGUgbm9uLXZlY3RvcmVkIHZlcnNpb24uICBIb3dldmVyLCB0aGUgd29yc3QtY2FzZSBwYXRoCitpcyBsb25nZXIuCisKK0l0IGlzIHdvcnRoIG5vdGluZyB0aGF0IGF0IHByZXNlbnQsIHRoZXJlIGlzIG5vIG5lZWQgdG8gcmVhZAorVklDMl9WRUNUQUREUiBiZWNhdXNlIHRoZSByZWdpc3RlciBhcHBlYXJzIHRvIGJlIHNoYXJlZCBiZXR3ZWVuIHRoZQorY29udHJvbGxlcnMuICBUaGUgY29kZSBpcyB3cml0dGVuIHN1Y2ggdGhhdCBpZiB0aGlzIGNoYW5nZXMsIGl0IG91Z2h0Cit0byBzdGlsbCB3b3JrIHByb3Blcmx5LgorCisKK1ZlY3RvciBBZGRyZXNzZXMKKy0tLS0tLS0tLS0tLS0tLS0KKworVGhlIHByb3BlciB1c2Ugb2YgdGhlIHZlY3RvcmluZyBoYXJkd2FyZSB3b3VsZCBqdW1wIHRvIHRoZSBJU1IKK3NwZWNpZmllZCBieSB0aGUgdmVjdG9yaW5nIGFkZHJlc3MuICBMaW51eCBpc24ndCBzdHJ1Y3R1cmVkIHRvIHRha2UKK2FkdmFudGFnZSBvZiB0aGlzIGZlYXR1cmUsIHRob3VnaCBpdCBtaWdodCBiZSBwb3NzaWJsZSB0byBjaGFuZ2UKK3RoaW5ncyB0byBzdXBwb3J0IGl0LgorCitJbiB0aGlzIGltcGxlbWVudGF0aW9uLCB0aGUgdmVjdG9yaW5nIGFkZHJlc3MgaXMgdXNlZCB0byBzcGVlZCB0aGUKK3NlYXJjaCBmb3IgdGhlIGFjdGl2ZSBJUlEuICBUaGUgYWRkcmVzcyBpcyBjb2RlZCBzdWNoIHRoYXQgdGhlIGxvd2VzdAorNiBiaXRzIHN0b3JlIHRoZSBJUlEgbnVtYmVyIGZvciB2ZWN0b3JlZCBpbnRlcnJ1cHRzLiAgVGhlc2UgbnVtYmVycworY29ycmVzcG9uZCB0byB0aGUgYml0cyBpbiB0aGUgaW50ZXJydXB0IHN0YXR1cyByZWdpc3RlcnMuICBJUlEgemVybyBpcwordGhlIGxvd2VzdCBpbnRlcnJ1cHQgYml0IGluIFZJQzEuICBJUlEgMzIgaXMgdGhlIGxvd2VzdCBpbnRlcnJ1cHQgYml0CitpbiBWSUMyLiAgQmVjYXVzZSB6ZXJvIGlzIGEgdmFsaWQgSVJRIG51bWJlciBhbmQgYmVjYXVzZSB3ZSBjYW5ub3QKK2RldGVjdCB3aGV0aGVyIG9yIG5vdCB0aGVyZSBpcyBhIHZhbGlkIHZlY3RvcmluZyBhZGRyZXNzIGlmIHRoYXQKK2FkZHJlc3MgaXMgemVybywgdGhlIGVpZ3RoIGJpdCAoMHgxMDApIGlzIHNldCBmb3IgdmVjdG9yZWQgaW50ZXJydXB0cy4KK1RoZSBhZGRyZXNzIGZvciBJUlEgMHgxOCAoVklDMikgaXMgMHgxMTguICBPbmx5IHRoZSBuaW50aCBiaXQgaXMgc2V0Citmb3IgdGhlIGRlZmF1bHQgaGFuZGxlciBvbiBWSUMxIGFuZCBvbmx5IHRoZSB0ZW50aCBiaXQgaXMgc2V0IGZvciB0aGUKK2RlZmF1bHQgaGFuZGxlciBvbiBWSUMyLgorCitJbiBvdGhlciB3b3Jkcy4KKworICAweDAwMAkJLSBubyBhY3RpdmUgaW50ZXJydXB0CisgIDB4MWlpCQktIHZlY3RvcmVkIGludGVycnVwdCAweGlpCisgIDB4Mnh4CQktIHVudmVjdG9yZWQgaW50ZXJydXB0IG9uIFZJQzEgKHh4IGlzIGRvbid0IGNhcmUpCisgIDB4NHh4CQktIHVudmVjdG9yZWQgaW50ZXJydXB0IG9uIFZJQzIgKHh4IGlzIGRvbid0IGNhcmUpCisKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vYXJtL1ZGUC9yZWxlYXNlLW5vdGVzLnR4dCBiL0RvY3VtZW50YXRpb24vYXJtL1ZGUC9yZWxlYXNlLW5vdGVzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMjhlMDIyCi0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9hcm0vVkZQL3JlbGVhc2Utbm90ZXMudHh0CkBAIC0wLDAgKzEsNTUgQEAKK1JlbGVhc2Ugbm90ZXMgZm9yIExpbnV4IEtlcm5lbCBWRlAgc3VwcG9ydCBjb2RlCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitEYXRlOiAJMjAgTWF5IDIwMDQKK0F1dGhvcjoJUnVzc2VsbCBLaW5nCisKK1RoaXMgaXMgdGhlIGZpcnN0IHJlbGVhc2Ugb2YgdGhlIExpbnV4IEtlcm5lbCBWRlAgc3VwcG9ydCBjb2RlLiAgSXQKK3Byb3ZpZGVzIHN1cHBvcnQgZm9yIHRoZSBleGNlcHRpb25zIGJvdW5jZWQgZnJvbSBWRlAgaGFyZHdhcmUgZm91bmQKK29uIEFSTTkyNkVKLVMuCisKK1RoaXMgcmVsZWFzZSBoYXMgYmVlbiB2YWxpZGF0ZWQgYWdhaW5zdCB0aGUgU29mdEZsb2F0LTJiIGxpYnJhcnkgYnkKK0pvaG4gUi4gSGF1c2VyIHVzaW5nIHRoZSBUZXN0RmxvYXQtMmEgdGVzdCBzdWl0ZS4gIERldGFpbHMgb2YgdGhpcworbGlicmFyeSBhbmQgdGVzdCBzdWl0ZSBjYW4gYmUgZm91bmQgYXQ6CisKKyAgIGh0dHA6Ly93d3cuY3MuYmVya2VsZXkuZWR1L35qaGF1c2VyL2FyaXRobWV0aWMvU29mdEZsb2F0Lmh0bWwKKworVGhlIG9wZXJhdGlvbnMgd2hpY2ggaGF2ZSBiZWVuIHRlc3RlZCB3aXRoIHRoaXMgcGFja2FnZSBhcmU6CisKKyAtIGZkaXYKKyAtIGZzdWIKKyAtIGZhZGQKKyAtIGZtdWwKKyAtIGZjbXAKKyAtIGZjbXBlCisgLSBmY3Z0ZAorIC0gZmN2dHMKKyAtIGZzaXRvCisgLSBmdG9zaQorIC0gZnNxcnQKKworQWxsIHRoZSBhYm92ZSBwYXNzIHNvZnRmbG9hdCB0ZXN0cyB3aXRoIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uczoKKworLSBmYWRkL2ZzdWIgc2hvd3Mgc29tZSBkaWZmZXJlbmNlcyBpbiB0aGUgaGFuZGxpbmcgb2YgKzAgLyAtMCByZXN1bHRzCisgIHdoZW4gaW5wdXQgb3BlcmFuZHMgZGlmZmVyIGluIHNpZ25zLgorLSB0aGUgaGFuZGxpbmcgb2YgdW5kZXJmbG93IGV4Y2VwdGlvbnMgaXMgc2xpZ2h0bHkgZGlmZmVyZW50LiAgSWYgYQorICByZXN1bHQgdW5kZXJmbG93cyBiZWZvcmUgcm91bmRpbmcsIGJ1dCBiZWNvbWVzIGEgbm9ybWFsaXNlZCBudW1iZXIKKyAgYWZ0ZXIgcm91bmRpbmcsIHdlIGRvIG5vdCBzaWduYWwgYW4gdW5kZXJmbG93IGV4Y2VwdGlvbi4KKworT3RoZXIgb3BlcmF0aW9ucyB3aGljaCBoYXZlIGJlZW4gdGVzdGVkIGJ5IGJhc2ljIGFzc2VtYmx5LW9ubHkgdGVzdHMKK2FyZToKKworIC0gZmNweQorIC0gZmFicworIC0gZm5lZworIC0gZnRvdWkKKyAtIGZ0b3NpegorIC0gZnRvdWl6CisKK1RoZSBjb21iaW5hdGlvbiBvcGVyYXRpb25zIGhhdmUgbm90IGJlZW4gdGVzdGVkOgorCisgLSBmbWFjCisgLSBmbm1hYworIC0gZm1zYworIC0gZm5tc2MKKyAtIGZubXVsCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2FybS9lbXBlZy9SRUFETUUgYi9Eb2N1bWVudGF0aW9uL2FybS9lbXBlZy9SRUFETUUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDljYzhkMAotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vYXJtL2VtcGVnL1JFQURNRQpAQCAtMCwwICsxLDEzIEBACitFbXBlZywgTHRkJ3MgRW1wZWcgTVAzIENhciBBdWRpbyBQbGF5ZXIKKworVGhlIGluaXRpYWwgZGVzaWduIGlzIHRvIGdvIGluIHlvdXIgY2FyLCBidXQgeW91IGNhbiB1c2UgaXQgYXQgaG9tZSwgb24gYQorYm9hdC4uLiBhbG1vc3QgYW55d2hlcmUuIFRoZSBwcmluY2lwbGUgaXMgdG8gc3RvcmUgQ0QtcXVhbGl0eSBtdXNpYyB1c2luZworTVBFRyB0ZWNobm9sb2d5IG9udG8gYSBoYXJkIGRpc2sgaW4gdGhlIHVuaXQsIGFuZCB1c2UgdGhlIHBvd2VyIG9mIHRoZQorZW1iZWRkZWQgY29tcHV0ZXIgdG8gc2VydmUgdXAgdGhlIG11c2ljIHlvdSB3YW50LgorCitGb3IgbW9yZSBkZXRhaWxzLCBzZWU6CisKKwlodHRwOi8vd3d3LmVtcGVnLmNvbQorCisKKwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9hcm0vZW1wZWcvaXIudHh0IGIvRG9jdW1lbnRhdGlvbi9hcm0vZW1wZWcvaXIudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEwYTI5NzQKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL2FybS9lbXBlZy9pci50eHQKQEAgLTAsMCArMSw0OSBAQAorSW5mcmEtcmVkIGRyaXZlciBkb2N1bWVudGF0aW9uLgorCitNaWtlIENyb3dlIDxtYWNAZW1wZWcuY29tPgorKEMpIEVtcGVnIEx0ZCAxOTk5CisKK05vdCBhIGxvdCBoZXJlIHlldCA6LSkKKworVGhlIEtlbndvb2QgS0NBLVI2QSByZW1vdGUgY29udHJvbCBnZW5lcmF0ZXMgYSBzZXF1ZW5jZSBsaWtlIHRoZSBmb2xsb3dpbmc6CisKK0dvIGxvdyBmb3IgYXBwcm94IDE2VCAoQXJvdW5kIDkwMDB1cykKK0dvIGhpZ2ggZm9yIGFwcHJveCA4VCAoQXJvdW5kIDQwMDB1cykKK0dvIGxvdyBmb3IgbGVzcyB0aGFuIDJUIChBcm91bmQgNzUwdXMpCisKK0ZvciBlYWNoIG9mIHRoZSAzMiBiaXRzCisgIEdvIGhpZ2ggZm9yIG1vcmUgdGhhbiAyVCAoQXJvdW5kIDE1MDB1cykgPT0gMQorICBHbyBoaWdoIGZvciBsZXNzIHRoYW4gVCAoQXJvdW5kIDQwMHVzKSA9PSAwCisgIEdvIGxvdyBmb3IgbGVzcyB0aGFuIDJUIChBcm91bmQgNzUwdXMpCisKK1JhdGhlciB0aGFuIHJlcGVhdCBhIHNpZ25hbCB3aGVuIHRoZSBidXR0b24gaXMgaGVsZCBkb3duIGNlcnRhaW4gYnV0dG9ucworZ2VuZXJhdGUgdGhlIGZvbGxvd2luZyBjb2RlIHRvIGluZGljYXRlIHJlcGV0aXRpb24uCisKK0dvIGxvdyBmb3IgYXBwcm94IDE2VAorR28gaGlnaCBmb3IgYXBwcm94IDRUCitHbyBsb3cgZm9yIGxlc3MgdGhhbiAyVAorCisoQnkgcmVtb3ZpbmcgdGhlIDwyVCBmcm9tIHRoZSBzdGFydCBvZiB0aGUgc2VxdWVuY2UgYW5kIHBsYWNpbmcgYXQgdGhlIGVuZAorIGl0IGNhbiBiZSBjb25zaWRlcmVkIGEgc3RvcCBiaXQgYnV0IEkgZm91bmQgaXQgZWFzaWVyIHRvIGRlYWwgd2l0aCBpdCBhdAorIHRoZSBzdGFydCkuCisKK1RoZSAzMiBiaXRzIGFyZSBlbmNvZGVkIGFzIFh4WXkgd2hlcmUgeCBhbmQgeSBhcmUgdGhlIGFjdHVhbCBkYXRhIHZhbHVlcword2hpbGUgWCBhbmQgWSBhcmUgdGhlIGxvZ2ljYWwgaW52ZXJzZXMgb2YgdGhlIGFzc29jaWF0ZWQgZGF0YSB2YWx1ZXMuIFVzaW5nIAorTFNCIGZpcnN0IHlpZWxkcyBzZW5zaWJsZSBjb2RlcyBmb3IgdGhlIG51bWJlcnMuCisKK0FsbCBjb2RlcyBhcmUgb2YgdGhlIGZvcm0gYjl4eAorCitUaGUgbnVtZXJpYyBrZXlzIGdlbmVyYXRlIHRoZSBjb2RlIDB4IHdoZXJlIHggaXMgdGhlIG51bWJlciBwcmVzc2VkLgorCitUdW5lcgkJMWMKK1RhcGUJCTFkCitDRAkJMWUKK0NELU1ELUNICTFmCitUcmFjay0JCTBhCitUcmFjaysJCTBiCitSZXdpbmQJCTBjCitGRgkJMGQKK0ROUFAJCTVlCitQbGF5L1BhdXNlCTBlCitWb2wrCQkxNAorVm9sLQkJMTUKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vYXJtL2VtcGVnL21rZGV2cyBiL0RvY3VtZW50YXRpb24vYXJtL2VtcGVnL21rZGV2cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YTg1ZTI4Ci0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9hcm0vZW1wZWcvbWtkZXZzCkBAIC0wLDAgKzEsMTEgQEAKKyMhL2Jpbi9zaAorbWtub2QgL2Rldi9kaXNwbGF5IGMgMjQ0IDAKK21rbm9kIC9kZXYvaXIgYyAyNDIgMAorbWtub2QgL2Rldi91c2IwIGMgMjQzIDAKK21rbm9kIC9kZXYvYXVkaW8gYyAyNDUgNAorbWtub2QgL2Rldi9kc3AgYyAyNDUgMworbWtub2QgL2Rldi9taXhlciBjIDI0NSAwCitta25vZCAvZGV2L2VtcGVnX3N0YXRlIGMgMjQ2IDAKK21rbm9kIC9kZXYvcmFkaW8wIGMgODEgNjQKK2xuIC1zZiByYWRpbzAgcmFkaW8KK2xuIC1zZiB1c2IwIHVzYgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9hcm0vbWVtX2FsaWdubWVudCBiL0RvY3VtZW50YXRpb24vYXJtL21lbV9hbGlnbm1lbnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDE0NWNjYwotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vYXJtL21lbV9hbGlnbm1lbnQKQEAgLTAsMCArMSw1OCBAQAorVG9vIG1hbnkgcHJvYmxlbXMgcG9wZWQgdXAgYmVjYXVzZSBvZiB1bm5vdGljZWQgbWlzYWxpZ25lZCBtZW1vcnkgYWNjZXNzIGluCitrZXJuZWwgY29kZSBsYXRlbHkuICBUaGVyZWZvcmUgdGhlIGFsaWdubWVudCBmaXh1cCBpcyBub3cgdW5jb25kaXRpb25hbGx5Citjb25maWd1cmVkIGluIGZvciBTQTExeDAgYmFzZWQgdGFyZ2V0cy4gIEFjY29yZGluZyB0byBBbGFuIENveCwgdGhpcyBpcyBhCitiYWQgaWRlYSB0byBjb25maWd1cmUgaXQgb3V0LCBidXQgUnVzc2VsbCBLaW5nIGhhcyBzb21lIGdvb2QgcmVhc29ucyBmb3IKK2RvaW5nIHNvIG9uIHNvbWUgZioqKmVkIHVwIEFSTSBhcmNoaXRlY3R1cmVzIGxpa2UgdGhlIEVCU0ExMTAuICBIb3dldmVyCit0aGlzIGlzIG5vdCB0aGUgY2FzZSBvbiBtYW55IGRlc2lnbiBJJ20gYXdhcmUgb2YsIGxpa2UgYWxsIFNBMTF4MCBiYXNlZAorb25lcy4KKworT2YgY291cnNlIHRoaXMgaXMgYSBiYWQgaWRlYSB0byByZWx5IG9uIHRoZSBhbGlnbm1lbnQgdHJhcCB0byBwZXJmb3JtCit1bmFsaWduZWQgbWVtb3J5IGFjY2VzcyBpbiBnZW5lcmFsLiAgSWYgdGhvc2UgYWNjZXNzIGFyZSBwcmVkaWN0YWJsZSwgeW91CithcmUgYmV0dGVyIHRvIHVzZSB0aGUgbWFjcm9zIHByb3ZpZGVkIGJ5IGluY2x1ZGUvYXNtL3VuYWxpZ25lZC5oLiAgVGhlCithbGlnbm1lbnQgdHJhcCBjYW4gZml4dXAgbWlzYWxpZ25lZCBhY2Nlc3MgZm9yIHRoZSBleGNlcHRpb24gY2FzZXMsIGJ1dCBhdAorYSBoaWdoIHBlcmZvcm1hbmNlIGNvc3QuICBJdCBiZXR0ZXIgYmUgcmFyZS4KKworTm93IGZvciB1c2VyIHNwYWNlIGFwcGxpY2F0aW9ucywgaXQgaXMgcG9zc2libGUgdG8gY29uZmlndXJlIHRoZSBhbGlnbm1lbnQKK3RyYXAgdG8gU0lHQlVTIGFueSBjb2RlIHBlcmZvcm1pbmcgdW5hbGlnbmVkIGFjY2VzcyAoZ29vZCBmb3IgZGVidWdnaW5nIGJhZAorY29kZSksIG9yIGV2ZW4gZml4dXAgdGhlIGFjY2VzcyBieSBzb2Z0d2FyZSBsaWtlIGZvciBrZXJuZWwgY29kZS4gIFRoZSBsYXRlcgorbW9kZSBpc24ndCByZWNvbW1lbmRlZCBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucyAoanVzdCB0aGluayBhYm91dCB0aGUKK2Zsb2F0aW5nIHBvaW50IGVtdWxhdGlvbiB0aGF0IHdvcmtzIGFib3V0IHRoZSBzYW1lIHdheSkuICBGaXggeW91ciBjb2RlCitpbnN0ZWFkIQorCitQbGVhc2Ugbm90ZSB0aGF0IHJhbmRvbWx5IGNoYW5naW5nIHRoZSBiZWhhdmlvdXIgd2l0aG91dCBnb29kIHRob3VnaHQgaXMKK3JlYWwgYmFkIC0gaXQgY2hhbmdlcyB0aGUgYmVoYXZpb3VyIG9mIGFsbCB1bmFsaWduZWQgaW5zdHJ1Y3Rpb25zIGluIHVzZXIKK3NwYWNlLCBhbmQgbWlnaHQgY2F1c2UgcHJvZ3JhbXMgdG8gZmFpbCB1bmV4cGVjdGVkbHkuCisKK1RvIGNoYW5nZSB0aGUgYWxpZ25tZW50IHRyYXAgYmVoYXZpb3IsIHNpbXBseSBlY2hvIGEgbnVtYmVyIGludG8KKy9wcm9jL3N5cy9kZWJ1Zy9hbGlnbm1lbnQuICBUaGUgbnVtYmVyIGlzIG1hZGUgdXAgZnJvbSB2YXJpb3VzIGJpdHM6CisKK2JpdAkJYmVoYXZpb3Igd2hlbiBzZXQKKy0tLQkJLS0tLS0tLS0tLS0tLS0tLS0KKworMAkJQSB1c2VyIHByb2Nlc3MgcGVyZm9ybWluZyBhbiB1bmFsaWduZWQgbWVtb3J5IGFjY2VzcworCQl3aWxsIGNhdXNlIHRoZSBrZXJuZWwgdG8gcHJpbnQgYSBtZXNzYWdlIGluZGljYXRpbmcKKwkJcHJvY2VzcyBuYW1lLCBwaWQsIHBjLCBpbnN0cnVjdGlvbiwgYWRkcmVzcywgYW5kIHRoZQorCQlmYXVsdCBjb2RlLgorCisxCQlUaGUga2VybmVsIHdpbGwgYXR0ZW1wdCB0byBmaXggdXAgdGhlIHVzZXIgcHJvY2VzcworCQlwZXJmb3JtaW5nIHRoZSB1bmFsaWduZWQgYWNjZXNzLiAgVGhpcyBpcyBvZiBjb3Vyc2UKKwkJc2xvdyAodGhpbmsgYWJvdXQgdGhlIGZsb2F0aW5nIHBvaW50IGVtdWxhdG9yKSBhbmQKKwkJbm90IHJlY29tbWVuZGVkIGZvciBwcm9kdWN0aW9uIHVzZS4KKworMgkJVGhlIGtlcm5lbCB3aWxsIHNlbmQgYSBTSUdCVVMgc2lnbmFsIHRvIHRoZSB1c2VyIHByb2Nlc3MKKwkJcGVyZm9ybWluZyB0aGUgdW5hbGlnbmVkIGFjY2Vzcy4KKworTm90ZSB0aGF0IG5vdCBhbGwgY29tYmluYXRpb25zIGFyZSBzdXBwb3J0ZWQgLSBvbmx5IHZhbHVlcyAwIHRocm91Z2ggNS4KKyg2IGFuZCA3IGRvbid0IG1ha2Ugc2Vuc2UpLgorCitGb3IgZXhhbXBsZSwgdGhlIGZvbGxvd2luZyB3aWxsIHR1cm4gb24gdGhlIHdhcm5pbmdzLCBidXQgd2l0aG91dAorZml4aW5nIHVwIG9yIHNlbmRpbmcgU0lHQlVTIHNpZ25hbHM6CisKKwllY2hvIDEgPiAvcHJvYy9zeXMvZGVidWcvYWxpZ25tZW50CisKK1lvdSBjYW4gYWxzbyByZWFkIHRoZSBjb250ZW50IG9mIHRoZSBzYW1lIGZpbGUgdG8gZ2V0IHN0YXRpc3RpY2FsCitpbmZvcm1hdGlvbiBvbiB1bmFsaWduZWQgYWNjZXNzIG9jY3VycmVuY2VzIHBsdXMgdGhlIGN1cnJlbnQgbW9kZSBvZgorb3BlcmF0aW9uIGZvciB1c2VyIHNwYWNlIGNvZGUuCisKKworTmljb2xhcyBQaXRyZSwgTWFyIDEzLCAyMDAxLiAgTW9kaWZpZWQgUnVzc2VsbCBLaW5nLCBOb3YgMzAsIDIwMDEuCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2FybS9tZW1vcnkudHh0IGIvRG9jdW1lbnRhdGlvbi9hcm0vbWVtb3J5LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YjFjOTNhCi0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9hcm0vbWVtb3J5LnR4dApAQCAtMCwwICsxLDcyIEBACisJCUtlcm5lbCBNZW1vcnkgTGF5b3V0IG9uIEFSTSBMaW51eAorCisJCVJ1c3NlbGwgS2luZyA8cm1rQGFybS5saW51eC5vcmcudWs+CisJCQlNYXkgMjEsIDIwMDQgKDIuNi42KQorCitUaGlzIGRvY3VtZW50IGRlc2NyaWJlcyB0aGUgdmlydHVhbCBtZW1vcnkgbGF5b3V0IHdoaWNoIHRoZSBMaW51eAora2VybmVsIHVzZXMgZm9yIEFSTSBwcm9jZXNzb3JzLiAgSXQgaW5kaWNhdGVzIHdoaWNoIHJlZ2lvbnMgYXJlCitmcmVlIGZvciBwbGF0Zm9ybXMgdG8gdXNlLCBhbmQgd2hpY2ggYXJlIHVzZWQgYnkgZ2VuZXJpYyBjb2RlLgorCitUaGUgQVJNIENQVSBpcyBjYXBhYmxlIG9mIGFkZHJlc3NpbmcgYSBtYXhpbXVtIG9mIDRHQiB2aXJ0dWFsIG1lbW9yeQorc3BhY2UsIGFuZCB0aGlzIG11c3QgYmUgc2hhcmVkIGJldHdlZW4gdXNlciBzcGFjZSBwcm9jZXNzZXMsIHRoZQora2VybmVsLCBhbmQgaGFyZHdhcmUgZGV2aWNlcy4KKworQXMgdGhlIEFSTSBhcmNoaXRlY3R1cmUgbWF0dXJlcywgaXQgYmVjb21lcyBuZWNlc3NhcnkgdG8gcmVzZXJ2ZQorY2VydGFpbiByZWdpb25zIG9mIFZNIHNwYWNlIGZvciB1c2UgZm9yIG5ldyBmYWNpbGl0aWVzOyB0aGVyZWZvcmUKK3RoaXMgZG9jdW1lbnQgbWF5IHJlc2VydmUgbW9yZSBWTSBzcGFjZSBvdmVyIHRpbWUuCisKK1N0YXJ0CQlFbmQJCVVzZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK2ZmZmY4MDAwCWZmZmZmZmZmCWNvcHlfdXNlcl9wYWdlIC8gY2xlYXJfdXNlcl9wYWdlIHVzZS4KKwkJCQlGb3IgU0ExMXh4IGFuZCBYc2NhbGUsIHRoaXMgaXMgdXNlZCB0bworCQkJCXNldHVwIGEgbWluaWNhY2hlIG1hcHBpbmcuCisKK2ZmZmYxMDAwCWZmZmY3ZmZmCVJlc2VydmVkLgorCQkJCVBsYXRmb3JtcyBtdXN0IG5vdCB1c2UgdGhpcyBhZGRyZXNzIHJhbmdlLgorCitmZmZmMDAwMAlmZmZmMGZmZglDUFUgdmVjdG9yIHBhZ2UuCisJCQkJVGhlIENQVSB2ZWN0b3JzIGFyZSBtYXBwZWQgaGVyZSBpZiB0aGUKKwkJCQlDUFUgc3VwcG9ydHMgdmVjdG9yIHJlbG9jYXRpb24gKGNvbnRyb2wKKwkJCQlyZWdpc3RlciBWIGJpdC4pCisKK2ZmYzAwMDAwCWZmZmVmZmZmCURNQSBtZW1vcnkgbWFwcGluZyByZWdpb24uICBNZW1vcnkgcmV0dXJuZWQKKwkJCQlieSB0aGUgZG1hX2FsbG9jX3h4eCBmdW5jdGlvbnMgd2lsbCBiZQorCQkJCWR5bmFtaWNhbGx5IG1hcHBlZCBoZXJlLgorCitmZjAwMDAwMAlmZmJmZmZmZglSZXNlcnZlZCBmb3IgZnV0dXJlIGV4cGFuc2lvbiBvZiBETUEKKwkJCQltYXBwaW5nIHJlZ2lvbi4KKworVk1BTExPQ19FTkQJZmVmZmZmZmYJRnJlZSBmb3IgcGxhdGZvcm0gdXNlLCByZWNvbW1lbmRlZC4KKworVk1BTExPQ19TVEFSVAlWTUFMTE9DX0VORC0xCXZtYWxsb2MoKSAvIGlvcmVtYXAoKSBzcGFjZS4KKwkJCQlNZW1vcnkgcmV0dXJuZWQgYnkgdm1hbGxvYy9pb3JlbWFwIHdpbGwKKwkJCQliZSBkeW5hbWljYWxseSBwbGFjZWQgaW4gdGhpcyByZWdpb24uCisJCQkJVk1BTExPQ19TVEFSVCBtYXkgYmUgYmFzZWQgdXBvbiB0aGUgdmFsdWUKKwkJCQlvZiB0aGUgaGlnaF9tZW1vcnkgdmFyaWFibGUuCisKK1BBR0VfT0ZGU0VUCWhpZ2hfbWVtb3J5LTEJS2VybmVsIGRpcmVjdC1tYXBwZWQgUkFNIHJlZ2lvbi4KKwkJCQlUaGlzIG1hcHMgdGhlIHBsYXRmb3JtcyBSQU0sIGFuZCB0eXBpY2FsbHkKKwkJCQltYXBzIGFsbCBwbGF0Zm9ybSBSQU0gaW4gYSAxOjEgcmVsYXRpb25zaGlwLgorCitUQVNLX1NJWkUJUEFHRV9PRkZTRVQtMQlLZXJuZWwgbW9kdWxlIHNwYWNlCisJCQkJS2VybmVsIG1vZHVsZXMgaW5zZXJ0ZWQgdmlhIGluc21vZCBhcmUKKwkJCQlwbGFjZWQgaGVyZSB1c2luZyBkeW5hbWljIG1hcHBpbmdzLgorCiswMDAwMTAwMAlUQVNLX1NJWkUtMQlVc2VyIHNwYWNlIG1hcHBpbmdzCisJCQkJUGVyLXRocmVhZCBtYXBwaW5ncyBhcmUgcGxhY2VkIGhlcmUgdmlhCisJCQkJdGhlIG1tYXAoKSBzeXN0ZW0gY2FsbC4KKworMDAwMDAwMDAJMDAwMDBmZmYJQ1BVIHZlY3RvciBwYWdlIC8gbnVsbCBwb2ludGVyIHRyYXAKKwkJCQlDUFVzIHdoaWNoIGRvIG5vdCBzdXBwb3J0IHZlY3RvciByZW1hcHBpbmcKKwkJCQlwbGFjZSB0aGVpciB2ZWN0b3IgcGFnZSBoZXJlLiAgTlVMTCBwb2ludGVyCisJCQkJZGVyZWZlcmVuY2VzIGJ5IGJvdGggdGhlIGtlcm5lbCBhbmQgdXNlcgorCQkJCXNwYWNlIGFyZSBhbHNvIGNhdWdodCB2aWEgdGhpcyBtYXBwaW5nLgorCitQbGVhc2Ugbm90ZSB0aGF0IG1hcHBpbmdzIHdoaWNoIGNvbGxpZGUgd2l0aCB0aGUgYWJvdmUgYXJlYXMgbWF5IHJlc3VsdAoraW4gYSBub24tYm9vdGFibGUga2VybmVsLCBvciBtYXkgY2F1c2UgdGhlIGtlcm5lbCB0byAoZXZlbnR1YWxseSkgcGFuaWMKK2F0IHJ1biB0aW1lLgorCitTaW5jZSBmdXR1cmUgQ1BVcyBtYXkgaW1wYWN0IHRoZSBrZXJuZWwgbWFwcGluZyBsYXlvdXQsIHVzZXIgcHJvZ3JhbXMKK211c3Qgbm90IGFjY2VzcyBhbnkgbWVtb3J5IHdoaWNoIGlzIG5vdCBtYXBwZWQgaW5zaWRlIHRoZWlyIDB4MDAwMTAwMAordG8gVEFTS19TSVpFIGFkZHJlc3MgcmFuZ2UuICBJZiB0aGV5IHdpc2ggdG8gYWNjZXNzIHRoZXNlIGFyZWFzLCB0aGV5CittdXN0IHNldCB1cCB0aGVpciBvd24gbWFwcGluZ3MgdXNpbmcgb3BlbigpIGFuZCBtbWFwKCkuCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2FybS9ud2ZwZS9OT1RFUyBiL0RvY3VtZW50YXRpb24vYXJtL253ZnBlL05PVEVTCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQwNTc3YjUKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL2FybS9ud2ZwZS9OT1RFUwpAQCAtMCwwICsxLDI5IEBACitUaGVyZSBzZWVtcyB0byBiZSBhIHByb2JsZW0gd2l0aCBleHAoZG91YmxlKSBhbmQgb3VyIGVtdWxhdG9yLiAgSSBoYXZlbid0CitiZWVuIGFibGUgdG8gdHJhY2sgaXQgZG93biB5ZXQuICBUaGlzIGRvZXMgbm90IG9jY3VyIHdpdGggdGhlIGVtdWxhdG9yCitzdXBwbGllZCBieSBSdXNzZWxsIEtpbmcuCisKK0kgYWxzbyBmb3VuZCBvbmUgb2RkaXR5IGluIHRoZSBlbXVsYXRvci4gIEkgZG9uJ3QgdGhpbmsgaXQgaXMgc2VyaW91cyBidXQKK3dpbGwgcG9pbnQgaXQgb3V0LiAgVGhlIEFSTSBjYWxsaW5nIGNvbnZlbnRpb25zIHJlcXVpcmUgZmxvYXRpbmcgcG9pbnQKK3JlZ2lzdGVycyBmNC1mNyB0byBiZSBwcmVzZXJ2ZWQgb3ZlciBhIGZ1bmN0aW9uIGNhbGwuICBUaGUgY29tcGlsZXIgcXVpdGUKK29mdGVuIHVzZXMgYW4gc3RmZSBpbnN0cnVjdGlvbiB0byBzYXZlIGY0IG9uIHRoZSBzdGFjayB1cG9uIGVudHJ5IHRvIGEKK2Z1bmN0aW9uLCBhbmQgYW4gbGRmZSBpbnN0cnVjdGlvbiB0byByZXN0b3JlIGl0IGJlZm9yZSByZXR1cm5pbmcuCisKK0kgd2FzIGxvb2tpbmcgYXQgc29tZSBjb2RlLCB0aGF0IGNhbGN1bGF0ZWQgYSBkb3VibGUgcmVzdWx0LCBzdG9yZWQgaXQgaW4gZjQKK3RoZW4gbWFkZSBhIGZ1bmN0aW9uIGNhbGwuIFVwb24gcmV0dXJuIGZyb20gdGhlIGZ1bmN0aW9uIGNhbGwgdGhlIG51bWJlciBpbgorZjQgaGFkIGJlZW4gY29udmVydGVkIHRvIGFuIGV4dGVuZGVkIHZhbHVlIGluIHRoZSBlbXVsYXRvci4KKworVGhpcyBpcyBhIHNpZGUgZWZmZWN0IG9mIHRoZSBzdGZlIGluc3RydWN0aW9uLiAgVGhlIGRvdWJsZSBpbiBmNCBoYWQgdG8gYmUKK2NvbnZlcnRlZCB0byBleHRlbmRlZCwgdGhlbiBzdG9yZWQuICBJZiBhbiBsZm0vc2ZtIGNvbWJpbmF0aW9uIGhhZCBiZWVuIHVzZWQsCit0aGVuIG5vIGNvbnZlcnNpb24gd291bGQgb2NjdXIuICBUaGlzIGhhcyBwZXJmb3JtYW5jZSBjb25zaWRlcmF0aW9ucy4gIFRoZQorcmVzdWx0IGZyb20gdGhlIGZ1bmN0aW9uIGNhbGwgYW5kIGY0IHdlcmUgdXNlZCBpbiBhIG11bHRpcGxpY2F0aW9uLiAgSWYgdGhlCitlbXVsYXRvciBzZWVzIGEgbXVsdGlwbHkgb2YgYSBkb3VibGUgYW5kIGV4dGVuZGVkLCBpdCBwcm9tb3RlcyB0aGUgZG91YmxlIHRvCitleHRlbmRlZCwgdGhlbiBkb2VzIHRoZSBtdWx0aXBseSBpbiBleHRlbmRlZCBwcmVjaXNpb24uCisKK1RoaXMgY29kZSB3aWxsIGNhdXNlIHRoaXMgcHJvYmxlbToKKworZG91YmxlIHgsIHksIHo7Cit6ID0gbG9nKHgpL2xvZyh5KTsKKworVGhlIHJlc3VsdCBvZiBsb2coeCkgKGEgZG91YmxlKSB3aWxsIGJlIGNhbGN1bGF0ZWQsIHJldHVybmVkIGluIGYwLCB0aGVuCittb3ZlZCB0byBmNCB0byBwcmVzZXJ2ZSBpdCBvdmVyIHRoZSBsb2coeSkgY2FsbC4gIFRoZSBkaXZpc2lvbiB3aWxsIGJlIGRvbmUKK2luIGV4dGVuZGVkIHByZWNpc2lvbiwgZHVlIHRvIHRoZSBzdGZlIGluc3RydWN0aW9uIHVzZWQgdG8gc2F2ZSBmNCBpbiBsb2coeSkuCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2FybS9ud2ZwZS9SRUFETUUgYi9Eb2N1bWVudGF0aW9uL2FybS9ud2ZwZS9SRUFETUUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzcxODcxZAotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vYXJtL253ZnBlL1JFQURNRQpAQCAtMCwwICsxLDcwIEBACitUaGlzIGRpcmVjdG9yeSBjb250YWlucyB0aGUgdmVyc2lvbiAwLjkyIHRlc3QgcmVsZWFzZSBvZiB0aGUgTmV0V2luZGVyIAorRmxvYXRpbmcgUG9pbnQgRW11bGF0b3IuCisKK1RoZSBtYWpvcml0eSBvZiB0aGUgY29kZSB3YXMgd3JpdHRlbiBieSBtZSwgU2NvdHQgQmFtYnJvdWdoIEl0IGlzCit3cml0dGVuIGluIEMsIHdpdGggYSBzbWFsbCBudW1iZXIgb2Ygcm91dGluZXMgaW4gaW5saW5lIGFzc2VtYmxlcgord2hlcmUgcmVxdWlyZWQuICBJdCB3YXMgd3JpdHRlbiBxdWlja2x5LCB3aXRoIGEgZ29hbCBvZiBpbXBsZW1lbnRpbmcgYQord29ya2luZyB2ZXJzaW9uIG9mIGFsbCB0aGUgZmxvYXRpbmcgcG9pbnQgaW5zdHJ1Y3Rpb25zIHRoZSBjb21waWxlcgorZW1pdHMgYXMgdGhlIGZpcnN0IHRhcmdldC4gIEkgaGF2ZSBhdHRlbXB0ZWQgdG8gYmUgYXMgb3B0aW1hbCBhcworcG9zc2libGUsIGJ1dCB0aGVyZSByZW1haW5zIG11Y2ggcm9vbSBmb3IgaW1wcm92ZW1lbnQuCisKK0kgaGF2ZSBhdHRlbXB0ZWQgdG8gbWFrZSB0aGUgZW11bGF0b3IgYXMgcG9ydGFibGUgYXMgcG9zc2libGUuICBPbmUgb2YKK3RoZSBwcm9ibGVtcyBpcyB3aXRoIGxlYWRpbmcgdW5kZXJzY29yZXMgb24ga2VybmVsIHN5bWJvbHMuICBFbGYKK2tlcm5lbHMgaGF2ZSBubyBsZWFkaW5nIHVuZGVyc2NvcmVzLCBhLm91dCBjb21waWxlZCBrZXJuZWxzIGRvLiAgSQoraGF2ZSBhdHRlbXB0ZWQgdG8gdXNlIHRoZSBDX1NZTUJPTF9OQU1FIG1hY3JvIHdoZXJldmVyIHRoaXMgbWF5IGJlCitpbXBvcnRhbnQuCisKK0Fub3RoZXIgY2hvaWNlIEkgbWFkZSB3YXMgaW4gdGhlIGZpbGUgc3RydWN0dXJlLiAgSSBoYXZlIGF0dGVtcHRlZCB0bworY29udGFpbiBhbGwgb3BlcmF0aW5nIHN5c3RlbSBzcGVjaWZpYyBjb2RlIGluIG9uZSBtb2R1bGUgKGZwbW9kdWxlLiopLgorQWxsIHRoZSBvdGhlciBmaWxlcyBjb250YWluIGVtdWxhdG9yIHNwZWNpZmljIGNvZGUuICBUaGlzIHNob3VsZCBhbGxvdworb3RoZXJzIHRvIHBvcnQgdGhlIGVtdWxhdG9yIHRvIE5ldEJTRCBmb3IgaW5zdGFuY2UgcmVsYXRpdmVseSBlYXNpbHkuCisKK1RoZSBmbG9hdGluZyBwb2ludCBvcGVyYXRpb25zIGFyZSBiYXNlZCBvbiBTb2Z0RmxvYXQgUmVsZWFzZSAyLCBieQorSm9obiBIYXVzZXIuICBTb2Z0RmxvYXQgaXMgYSBzb2Z0d2FyZSBpbXBsZW1lbnRhdGlvbiBvZiBmbG9hdGluZy1wb2ludAordGhhdCBjb25mb3JtcyB0byB0aGUgSUVDL0lFRUUgU3RhbmRhcmQgZm9yIEJpbmFyeSBGbG9hdGluZy1wb2ludAorQXJpdGhtZXRpYy4gIEFzIG1hbnkgYXMgZm91ciBmb3JtYXRzIGFyZSBzdXBwb3J0ZWQ6IHNpbmdsZSBwcmVjaXNpb24sCitkb3VibGUgcHJlY2lzaW9uLCBleHRlbmRlZCBkb3VibGUgcHJlY2lzaW9uLCBhbmQgcXVhZHJ1cGxlIHByZWNpc2lvbi4KK0FsbCBvcGVyYXRpb25zIHJlcXVpcmVkIGJ5IHRoZSBzdGFuZGFyZCBhcmUgaW1wbGVtZW50ZWQsIGV4Y2VwdCBmb3IKK2NvbnZlcnNpb25zIHRvIGFuZCBmcm9tIGRlY2ltYWwuICBXZSB1c2Ugb25seSB0aGUgc2luZ2xlIHByZWNpc2lvbiwKK2RvdWJsZSBwcmVjaXNpb24gYW5kIGV4dGVuZGVkIGRvdWJsZSBwcmVjaXNpb24gZm9ybWF0cy4gIFRoZSBwb3J0IG9mCitTb2Z0RmxvYXQgdG8gdGhlIEFSTSB3YXMgZG9uZSBieSBQaGlsIEJsdW5kZWxsLCBiYXNlZCBvbiBhbiBlYXJsaWVyCitwb3J0IG9mIFNvZnRGbG9hdCB2ZXJzaW9uIDEgYnkgTmVpbCBDYXJzb24gZm9yIE5ldEJTRC9hcm0zMi4KKworVGhlIGZpbGUgUkVBRE1FLkZQRSBjb250YWlucyBhIGRlc2NyaXB0aW9uIG9mIHdoYXQgaGFzIGJlZW4gaW1wbGVtZW50ZWQKK3NvIGZhciBpbiB0aGUgZW11bGF0b3IuICBUaGUgZmlsZSBUT0RPIGNvbnRhaW5zIGEgaW5mb3JtYXRpb24gb24gd2hhdCAKK3JlbWFpbnMgdG8gYmUgZG9uZSwgYW5kIG90aGVyIGlkZWFzIGZvciB0aGUgZW11bGF0b3IuCisKK0J1ZyByZXBvcnRzLCBjb21tZW50cywgc3VnZ2VzdGlvbnMgc2hvdWxkIGJlIGRpcmVjdGVkIHRvIG1lIGF0Cis8c2NvdHRiQG5ldHdpbmRlci5vcmc+LiAgR2VuZXJhbCByZXBvcnRzIG9mICJ0aGlzIHByb2dyYW0gZG9lc24ndAord29yayBjb3JyZWN0bHkgd2hlbiB5b3VyIGVtdWxhdG9yIGlzIGluc3RhbGxlZCIgYXJlIHVzZWZ1bCBmb3IKK2RldGVybWluaW5nIHRoYXQgYnVncyBzdGlsbCBleGlzdDsgYnV0IGFyZSB2aXJ0dWFsbHkgdXNlbGVzcyB3aGVuCithdHRlbXB0aW5nIHRvIGlzb2xhdGUgdGhlIHByb2JsZW0uICBQbGVhc2UgcmVwb3J0IHRoZW0sIGJ1dCBkb24ndAorZXhwZWN0IHF1aWNrIGFjdGlvbi4gIEJ1Z3Mgc3RpbGwgZXhpc3QuICBUaGUgcHJvYmxlbSByZW1haW5zIGluIGlzb2xhdGluZword2hpY2ggaW5zdHJ1Y3Rpb24gY29udGFpbnMgdGhlIGJ1Zy4gIFNtYWxsIHByb2dyYW1zIGlsbHVzdHJhdGluZyBhIHNwZWNpZmljCitwcm9ibGVtIGFyZSBhIGdvZHNlbmQuCisKK0xlZ2FsIE5vdGljZXMKKy0tLS0tLS0tLS0tLS0KKworVGhlIE5ldFdpbmRlciBGbG9hdGluZyBQb2ludCBFbXVsYXRvciBpcyBmcmVlIHNvZnR3YXJlLiAgRXZlcnl0aGluZyBSZWJlbC5jb20KK2hhcyB3cml0dGVuIGlzIHByb3ZpZGVkIHVuZGVyIHRoZSBHTlUgR1BMLiAgU2VlIHRoZSBmaWxlIENPUFlJTkcgZm9yIGNvcHlpbmcKK2NvbmRpdGlvbnMuICBFeGNsdWRlZCBmcm9tIHRoZSBhYm92ZSBpcyB0aGUgU29mdEZsb2F0IGNvZGUuICBKb2huIEhhdXNlcidzIAorbGVnYWwgbm90aWNlIGZvciBTb2Z0RmxvYXQgaXMgaW5jbHVkZWQgYmVsb3cuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1NvZnRGbG9hdCBMZWdhbCBOb3RpY2UKKworU29mdEZsb2F0IHdhcyB3cml0dGVuIGJ5IEpvaG4gUi4gSGF1c2VyLiAgVGhpcyB3b3JrIHdhcyBtYWRlIHBvc3NpYmxlIGluCitwYXJ0IGJ5IHRoZSBJbnRlcm5hdGlvbmFsIENvbXB1dGVyIFNjaWVuY2UgSW5zdGl0dXRlLCBsb2NhdGVkIGF0IFN1aXRlIDYwMCwKKzE5NDcgQ2VudGVyIFN0cmVldCwgQmVya2VsZXksIENhbGlmb3JuaWEgOTQ3MDQuICBGdW5kaW5nIHdhcyBwYXJ0aWFsbHkKK3Byb3ZpZGVkIGJ5IHRoZSBOYXRpb25hbCBTY2llbmNlIEZvdW5kYXRpb24gdW5kZXIgZ3JhbnQgTUlQLTkzMTE5ODAuICBUaGUKK29yaWdpbmFsIHZlcnNpb24gb2YgdGhpcyBjb2RlIHdhcyB3cml0dGVuIGFzIHBhcnQgb2YgYSBwcm9qZWN0IHRvIGJ1aWxkCithIGZpeGVkLXBvaW50IHZlY3RvciBwcm9jZXNzb3IgaW4gY29sbGFib3JhdGlvbiB3aXRoIHRoZSBVbml2ZXJzaXR5IG9mCitDYWxpZm9ybmlhIGF0IEJlcmtlbGV5LCBvdmVyc2VlbiBieSBQcm9mcy4gTmVsc29uIE1vcmdhbiBhbmQgSm9obiBXYXdyenluZWsuCisKK1RISVMgU09GVFdBUkUgSVMgRElTVFJJQlVURUQgQVMgSVMsIEZPUiBGUkVFLiAgQWx0aG91Z2ggcmVhc29uYWJsZSBlZmZvcnQKK2hhcyBiZWVuIG1hZGUgdG8gYXZvaWQgaXQsIFRISVMgU09GVFdBUkUgTUFZIENPTlRBSU4gRkFVTFRTIFRIQVQgV0lMTCBBVAorVElNRVMgUkVTVUxUIElOIElOQ09SUkVDVCBCRUhBVklPUi4gIFVTRSBPRiBUSElTIFNPRlRXQVJFIElTIFJFU1RSSUNURUQgVE8KK1BFUlNPTlMgQU5EIE9SR0FOSVpBVElPTlMgV0hPIENBTiBBTkQgV0lMTCBUQUtFIEZVTEwgUkVTUE9OU0lCSUxJVFkgRk9SIEFOWQorQU5EIEFMTCBMT1NTRVMsIENPU1RTLCBPUiBPVEhFUiBQUk9CTEVNUyBBUklTSU5HIEZST00gSVRTIFVTRS4KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vYXJtL253ZnBlL1JFQURNRS5GUEUgYi9Eb2N1bWVudGF0aW9uL2FybS9ud2ZwZS9SRUFETUUuRlBFCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI2ZjVkN2IKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL2FybS9ud2ZwZS9SRUFETUUuRlBFCkBAIC0wLDAgKzEsMTU2IEBACitUaGUgZm9sbG93aW5nIGRlc2NyaWJlcyB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgTmV0V2luZGVyJ3MgZmxvYXRpbmcgcG9pbnQKK2VtdWxhdG9yLgorCitJbiB0aGUgZm9sbG93aW5nIG5vbWVuY2xhdHVyZSBpcyB1c2VkIHRvIGRlc2NyaWJlIHRoZSBmbG9hdGluZyBwb2ludAoraW5zdHJ1Y3Rpb25zLiAgSXQgZm9sbG93cyB0aGUgY29udmVudGlvbnMgaW4gdGhlIEFSTSBtYW51YWwuCisKKzxTfER8RT4gPSA8c2luZ2xlfGRvdWJsZXxleHRlbmRlZD4sIG5vIGRlZmF1bHQKK3tQfE18Wn0gPSB7cm91bmQgdG8gK2luZmluaXR5LHJvdW5kIHRvIC1pbmZpbml0eSxyb3VuZCB0byB6ZXJvfSwKKyAgICAgICAgICBkZWZhdWx0ID0gcm91bmQgdG8gbmVhcmVzdAorCitOb3RlOiBpdGVtcyBlbmNsb3NlZCBpbiB7fSBhcmUgb3B0aW9uYWwuCisKK0Zsb2F0aW5nIFBvaW50IENvcHJvY2Vzc29yIERhdGEgVHJhbnNmZXIgSW5zdHJ1Y3Rpb25zIChDUERUKQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0xERi9TVEYgLSBsb2FkIGFuZCBzdG9yZSBmbG9hdGluZworCis8TERGfFNURj57Y29uZH08U3xEfEU+IEZkLCBSbgorPExERnxTVEY+e2NvbmR9PFN8RHxFPiBGZCwgW1JuLCAjPGV4cHJlc3Npb24+XXshfQorPExERnxTVEY+e2NvbmR9PFN8RHxFPiBGZCwgW1JuXSwgIzxleHByZXNzaW9uPgorCitUaGVzZSBpbnN0cnVjdGlvbnMgYXJlIGZ1bGx5IGltcGxlbWVudGVkLgorCitMRk0vU0ZNIC0gbG9hZCBhbmQgc3RvcmUgbXVsdGlwbGUgZmxvYXRpbmcKKworRm9ybSAxIHN5bnRheDoKKzxMRk18U0ZNPntjb25kfTxTfER8RT4gRmQsIDxjb3VudD4sIFtSbl0KKzxMRk18U0ZNPntjb25kfTxTfER8RT4gRmQsIDxjb3VudD4sIFtSbiwgIzxleHByZXNzaW9uPl17IX0KKzxMRk18U0ZNPntjb25kfTxTfER8RT4gRmQsIDxjb3VudD4sIFtSbl0sICM8ZXhwcmVzc2lvbj4KKworRm9ybSAyIHN5bnRheDoKKzxMRk18U0ZNPntjb25kfTxGRCxFQT4gRmQsIDxjb3VudD4sIFtSbl17IX0KKworVGhlc2UgaW5zdHJ1Y3Rpb25zIGFyZSBmdWxseSBpbXBsZW1lbnRlZC4gIFRoZXkgc3RvcmUvbG9hZCB0aHJlZSB3b3JkcworZm9yIGVhY2ggZmxvYXRpbmcgcG9pbnQgcmVnaXN0ZXIgaW50byB0aGUgbWVtb3J5IGxvY2F0aW9uIGdpdmVuIGluIHRoZSAKK2luc3RydWN0aW9uLiAgVGhlIGZvcm1hdCBpbiBtZW1vcnkgaXMgdW5saWtlbHkgdG8gYmUgY29tcGF0aWJsZSB3aXRoCitvdGhlciBpbXBsZW1lbnRhdGlvbnMsIGluIHBhcnRpY3VsYXIgdGhlIGFjdHVhbCBoYXJkd2FyZS4gIFNwZWNpZmljCittZW50aW9uIG9mIHRoaXMgaXMgbWFkZSBpbiB0aGUgQVJNIG1hbnVhbHMuICAKKworRmxvYXRpbmcgUG9pbnQgQ29wcm9jZXNzb3IgUmVnaXN0ZXIgVHJhbnNmZXIgSW5zdHJ1Y3Rpb25zIChDUFJUKQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitDb252ZXJzaW9ucywgcmVhZC93cml0ZSBzdGF0dXMvY29udHJvbCByZWdpc3RlciBpbnN0cnVjdGlvbnMKKworRkxUe2NvbmR9PFMsRCxFPntQLE0sWn0gRm4sIFJkICAgICAgICAgIENvbnZlcnQgaW50ZWdlciB0byBmbG9hdGluZyBwb2ludAorRklYe2NvbmR9e1AsTSxafSBSZCwgRm4gICAgICAgICAgICAgICAgIENvbnZlcnQgZmxvYXRpbmcgcG9pbnQgdG8gaW50ZWdlcgorV0ZTe2NvbmR9IFJkICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdyaXRlIGZsb2F0aW5nIHBvaW50IHN0YXR1cyByZWdpc3RlcgorUkZTe2NvbmR9IFJkICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlYWQgZmxvYXRpbmcgcG9pbnQgc3RhdHVzIHJlZ2lzdGVyCitXRkN7Y29uZH0gUmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgV3JpdGUgZmxvYXRpbmcgcG9pbnQgY29udHJvbCByZWdpc3RlcgorUkZDe2NvbmR9IFJkICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlYWQgZmxvYXRpbmcgcG9pbnQgY29udHJvbCByZWdpc3RlcgorCitGTFQvRklYIGFyZSBmdWxseSBpbXBsZW1lbnRlZC4KKworUkZTL1dGUyBhcmUgZnVsbHkgaW1wbGVtZW50ZWQuCisKK1JGQy9XRkMgYXJlIGZ1bGx5IGltcGxlbWVudGVkLiAgUkZDL1dGQyBhcmUgc3VwZXJ2aXNvciBvbmx5IGluc3RydWN0aW9ucywgYW5kCitwcmVzZW50bHkgY2hlY2sgdGhlIENQVSBtb2RlLCBhbmQgZG8gYW4gaW52YWxpZCBpbnN0cnVjdGlvbiB0cmFwIGlmIG5vdCBjYWxsZWQKK2Zyb20gc3VwZXJ2aXNvciBtb2RlLgorCitDb21wYXJlIGluc3RydWN0aW9ucworCitDTUZ7Y29uZH0gRm4sIEZtICAgICAgICBDb21wYXJlIGZsb2F0aW5nCitDTUZFe2NvbmR9IEZuLCBGbSAgICAgICBDb21wYXJlIGZsb2F0aW5nIHdpdGggZXhjZXB0aW9uCitDTkZ7Y29uZH0gRm4sIEZtICAgICAgICBDb21wYXJlIG5lZ2F0ZWQgZmxvYXRpbmcKK0NORkV7Y29uZH0gRm4sIEZtICAgICAgIENvbXBhcmUgbmVnYXRlZCBmbG9hdGluZyB3aXRoIGV4Y2VwdGlvbgorCitUaGVzZSBhcmUgZnVsbHkgaW1wbGVtZW50ZWQuCisKK0Zsb2F0aW5nIFBvaW50IENvcHJvY2Vzc29yIERhdGEgSW5zdHJ1Y3Rpb25zIChDUERUKQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0R5YWRpYyBvcGVyYXRpb25zOgorCitBREZ7Y29uZH08U3xEfEU+e1AsTSxafSBGZCwgRm4sIDxGbSwjdmFsdWU+IC0gYWRkCitTVUZ7Y29uZH08U3xEfEU+e1AsTSxafSBGZCwgRm4sIDxGbSwjdmFsdWU+IC0gc3VidHJhY3QKK1JTRntjb25kfTxTfER8RT57UCxNLFp9IEZkLCBGbiwgPEZtLCN2YWx1ZT4gLSByZXZlcnNlIHN1YnRyYWN0CitNVUZ7Y29uZH08U3xEfEU+e1AsTSxafSBGZCwgRm4sIDxGbSwjdmFsdWU+IC0gbXVsdGlwbHkKK0RWRntjb25kfTxTfER8RT57UCxNLFp9IEZkLCBGbiwgPEZtLCN2YWx1ZT4gLSBkaXZpZGUKK1JEVntjb25kfTxTfER8RT57UCxNLFp9IEZkLCBGbiwgPEZtLCN2YWx1ZT4gLSByZXZlcnNlIGRpdmlkZQorCitUaGVzZSBhcmUgZnVsbHkgaW1wbGVtZW50ZWQuCisKK0ZNTHtjb25kfTxTfER8RT57UCxNLFp9IEZkLCBGbiwgPEZtLCN2YWx1ZT4gLSBmYXN0IG11bHRpcGx5CitGRFZ7Y29uZH08U3xEfEU+e1AsTSxafSBGZCwgRm4sIDxGbSwjdmFsdWU+IC0gZmFzdCBkaXZpZGUKK0ZSRHtjb25kfTxTfER8RT57UCxNLFp9IEZkLCBGbiwgPEZtLCN2YWx1ZT4gLSBmYXN0IHJldmVyc2UgZGl2aWRlCisKK1RoZXNlIGFyZSBmdWxseSBpbXBsZW1lbnRlZCBhcyB3ZWxsLiAgVGhleSB1c2UgdGhlIHNhbWUgYWxnb3JpdGhtIGFzIHRoZQorbm9uLWZhc3QgdmVyc2lvbnMuICBIZW5jZSwgaW4gdGhpcyBpbXBsZW1lbnRhdGlvbiB0aGVpciBwZXJmb3JtYW5jZSBpcworZXF1aXZhbGVudCB0byB0aGUgTVVGL0RWRi9SRFYgaW5zdHJ1Y3Rpb25zLiAgVGhpcyBpcyBhY2NlcHRhYmxlIGFjY29yZGluZwordG8gdGhlIEFSTSBtYW51YWwuICBUaGUgbWFudWFsIG5vdGVzIHRoZXNlIGFyZSBkZWZpbmVkIG9ubHkgZm9yIHNpbmdsZQorb3BlcmFuZHMsIG9uIHRoZSBhY3R1YWwgRlBBMTEgaGFyZHdhcmUgdGhleSBkbyBub3Qgd29yayBmb3IgZG91YmxlIG9yCitleHRlbmRlZCBwcmVjaXNpb24gb3BlcmFuZHMuICBUaGUgZW11bGF0b3IgY3VycmVudGx5IGRvZXMgbm90IGNoZWNrCit0aGUgcmVxdWVzdGVkIHBlcm1pc3Npb25zIGNvbmRpdGlvbnMsIGFuZCBwZXJmb3JtcyB0aGUgcmVxdWVzdGVkIG9wZXJhdGlvbi4KKworUk1Ge2NvbmR9PFN8RHxFPntQLE0sWn0gRmQsIEZuLCA8Rm0sI3ZhbHVlPiAtIElFRUUgcmVtYWluZGVyCisKK1RoaXMgaXMgZnVsbHkgaW1wbGVtZW50ZWQuCisKK01vbmFkaWMgb3BlcmF0aW9uczoKKworTVZGe2NvbmR9PFN8RHxFPntQLE0sWn0gRmQsIDxGbSwjdmFsdWU+IC0gbW92ZQorTU5Ge2NvbmR9PFN8RHxFPntQLE0sWn0gRmQsIDxGbSwjdmFsdWU+IC0gbW92ZSBuZWdhdGVkCisKK1RoZXNlIGFyZSBmdWxseSBpbXBsZW1lbnRlZC4KKworQUJTe2NvbmR9PFN8RHxFPntQLE0sWn0gRmQsIDxGbSwjdmFsdWU+IC0gYWJzb2x1dGUgdmFsdWUKK1NRVHtjb25kfTxTfER8RT57UCxNLFp9IEZkLCA8Rm0sI3ZhbHVlPiAtIHNxdWFyZSByb290CitSTkR7Y29uZH08U3xEfEU+e1AsTSxafSBGZCwgPEZtLCN2YWx1ZT4gLSByb3VuZAorCitUaGVzZSBhcmUgZnVsbHkgaW1wbGVtZW50ZWQuCisKK1VSRHtjb25kfTxTfER8RT57UCxNLFp9IEZkLCA8Rm0sI3ZhbHVlPiAtIHVubm9ybWFsaXplZCByb3VuZAorTlJNe2NvbmR9PFN8RHxFPntQLE0sWn0gRmQsIDxGbSwjdmFsdWU+IC0gbm9ybWFsaXplCisKK1RoZXNlIGFyZSBpbXBsZW1lbnRlZC4gIFVSRCBpcyBpbXBsZW1lbnRlZCB1c2luZyB0aGUgc2FtZSBjb2RlIGFzIHRoZSBSTkQKK2luc3RydWN0aW9uLiAgU2luY2UgVVJEIGNhbm5vdCByZXR1cm4gYSB1bm5vcm1hbGl6ZWQgbnVtYmVyLCBOUk0gYmVjb21lcworYSBOT1AuCisKK0xpYnJhcnkgY2FsbHM6CisKK1BPV3tjb25kfTxTfER8RT57UCxNLFp9IEZkLCBGbiwgPEZtLCN2YWx1ZT4gLSBwb3dlcgorUlBXe2NvbmR9PFN8RHxFPntQLE0sWn0gRmQsIEZuLCA8Rm0sI3ZhbHVlPiAtIHJldmVyc2UgcG93ZXIKK1BPTHtjb25kfTxTfER8RT57UCxNLFp9IEZkLCBGbiwgPEZtLCN2YWx1ZT4gLSBwb2xhciBhbmdsZSAoYXJjdGFuMikKKworTE9He2NvbmR9PFN8RHxFPntQLE0sWn0gRmQsIDxGbSwjdmFsdWU+IC0gbG9nYXJpdGhtIHRvIGJhc2UgMTAKK0xHTntjb25kfTxTfER8RT57UCxNLFp9IEZkLCA8Rm0sI3ZhbHVlPiAtIGxvZ2FyaXRobSB0byBiYXNlIGUgCitFWFB7Y29uZH08U3xEfEU+e1AsTSxafSBGZCwgPEZtLCN2YWx1ZT4gLSBleHBvbmVudAorU0lOe2NvbmR9PFN8RHxFPntQLE0sWn0gRmQsIDxGbSwjdmFsdWU+IC0gc2luZQorQ09Te2NvbmR9PFN8RHxFPntQLE0sWn0gRmQsIDxGbSwjdmFsdWU+IC0gY29zaW5lCitUQU57Y29uZH08U3xEfEU+e1AsTSxafSBGZCwgPEZtLCN2YWx1ZT4gLSB0YW5nZW50CitBU057Y29uZH08U3xEfEU+e1AsTSxafSBGZCwgPEZtLCN2YWx1ZT4gLSBhcmNzaW5lCitBQ1N7Y29uZH08U3xEfEU+e1AsTSxafSBGZCwgPEZtLCN2YWx1ZT4gLSBhcmNjb3NpbmUKK0FUTntjb25kfTxTfER8RT57UCxNLFp9IEZkLCA8Rm0sI3ZhbHVlPiAtIGFyY3RhbmdlbnQKKworVGhlc2UgYXJlIG5vdCBpbXBsZW1lbnRlZC4gIFRoZXkgYXJlIG5vdCBjdXJyZW50bHkgaXNzdWVkIGJ5IHRoZSBjb21waWxlciwKK2FuZCBhcmUgaGFuZGxlZCBieSByb3V0aW5lcyBpbiBsaWJjLiAgVGhlc2UgYXJlIG5vdCBpbXBsZW1lbnRlZCBieSB0aGUgRlBBMTEKK2hhcmR3YXJlLCBidXQgYXJlIGhhbmRsZWQgYnkgdGhlIGZsb2F0aW5nIHBvaW50IHN1cHBvcnQgY29kZS4gIFRoZXkgc2hvdWxkIAorYmUgaW1wbGVtZW50ZWQgaW4gZnV0dXJlIHZlcnNpb25zLgorCitTaWduYWxsaW5nOgorCitTaWduYWxzIGFyZSBpbXBsZW1lbnRlZC4gIEhvd2V2ZXIgY3VycmVudCBFTEYga2VybmVscyBwcm9kdWNlZCBieSBSZWJlbC5jb20KK2hhdmUgYSBidWcgaW4gdGhlbSB0aGF0IHByZXZlbnRzIHRoZSBtb2R1bGUgZnJvbSBnZW5lcmF0aW5nIGEgU0lHRlBFLiAgVGhpcworaXMgY2F1c2VkIGJ5IGEgZmFpbHVyZSB0byBhbGlhcyBmcF9jdXJyZW50IHRvIHRoZSBrZXJuZWwgdmFyaWFibGUKK2N1cnJlbnRfc2V0WzBdIGNvcnJlY3RseS4KKworVGhlIGtlcm5lbCBwcm92aWRlZCB3aXRoIHRoaXMgZGlzdHJpYnV0aW9uICh2bWxpbnV4LW53ZnBlLTAuOTMpIGNvbnRhaW5zCithIGZpeCBmb3IgdGhpcyBwcm9ibGVtIGFuZCBhbHNvIGluY29ycG9yYXRlcyB0aGUgY3VycmVudCB2ZXJzaW9uIG9mIHRoZQorZW11bGF0b3IgZGlyZWN0bHkuICBJdCBpcyBwb3NzaWJsZSB0byBydW4gd2l0aCBubyBmbG9hdGluZyBwb2ludCBtb2R1bGUKK2xvYWRlZCB3aXRoIHRoaXMga2VybmVsLiAgSXQgaXMgcHJvdmlkZWQgYXMgYSBkZW1vbnN0cmF0aW9uIG9mIHRoZSAKK3RlY2hub2xvZ3kgYW5kIGZvciB0aG9zZSB3aG8gd2FudCB0byBkbyBmbG9hdGluZyBwb2ludCB3b3JrIHRoYXQgZGVwZW5kcworb24gc2lnbmFscy4gIEl0IGlzIG5vdCBzdHJpY3RseSBuZWNlc3NhcnkgdG8gdXNlIHRoZSBtb2R1bGUuCisKK0EgbW9kdWxlIChlaXRoZXIgdGhlIG9uZSBwcm92aWRlZCBieSBSdXNzZWxsIEtpbmcsIG9yIHRoZSBvbmUgaW4gdGhpcyAKK2Rpc3RyaWJ1dGlvbikgY2FuIGJlIGxvYWRlZCB0byByZXBsYWNlIHRoZSBmdW5jdGlvbmFsaXR5IG9mIHRoZSBlbXVsYXRvcgorYnVpbHQgaW50byB0aGUga2VybmVsLgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9hcm0vbndmcGUvVE9ETyBiL0RvY3VtZW50YXRpb24vYXJtL253ZnBlL1RPRE8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODAyNzA2MQotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vYXJtL253ZnBlL1RPRE8KQEAgLTAsMCArMSw2NyBAQAorVE9ETyBMSVNUCistLS0tLS0tLS0KKworUE9Xe2NvbmR9PFN8RHxFPntQLE0sWn0gRmQsIEZuLCA8Rm0sI3ZhbHVlPiAtIHBvd2VyCitSUFd7Y29uZH08U3xEfEU+e1AsTSxafSBGZCwgRm4sIDxGbSwjdmFsdWU+IC0gcmV2ZXJzZSBwb3dlcgorUE9Me2NvbmR9PFN8RHxFPntQLE0sWn0gRmQsIEZuLCA8Rm0sI3ZhbHVlPiAtIHBvbGFyIGFuZ2xlIChhcmN0YW4yKQorCitMT0d7Y29uZH08U3xEfEU+e1AsTSxafSBGZCwgPEZtLCN2YWx1ZT4gLSBsb2dhcml0aG0gdG8gYmFzZSAxMAorTEdOe2NvbmR9PFN8RHxFPntQLE0sWn0gRmQsIDxGbSwjdmFsdWU+IC0gbG9nYXJpdGhtIHRvIGJhc2UgZSAKK0VYUHtjb25kfTxTfER8RT57UCxNLFp9IEZkLCA8Rm0sI3ZhbHVlPiAtIGV4cG9uZW50CitTSU57Y29uZH08U3xEfEU+e1AsTSxafSBGZCwgPEZtLCN2YWx1ZT4gLSBzaW5lCitDT1N7Y29uZH08U3xEfEU+e1AsTSxafSBGZCwgPEZtLCN2YWx1ZT4gLSBjb3NpbmUKK1RBTntjb25kfTxTfER8RT57UCxNLFp9IEZkLCA8Rm0sI3ZhbHVlPiAtIHRhbmdlbnQKK0FTTntjb25kfTxTfER8RT57UCxNLFp9IEZkLCA8Rm0sI3ZhbHVlPiAtIGFyY3NpbmUKK0FDU3tjb25kfTxTfER8RT57UCxNLFp9IEZkLCA8Rm0sI3ZhbHVlPiAtIGFyY2Nvc2luZQorQVROe2NvbmR9PFN8RHxFPntQLE0sWn0gRmQsIDxGbSwjdmFsdWU+IC0gYXJjdGFuZ2VudAorCitUaGVzZSBhcmUgbm90IGltcGxlbWVudGVkLiAgVGhleSBhcmUgbm90IGN1cnJlbnRseSBpc3N1ZWQgYnkgdGhlIGNvbXBpbGVyLAorYW5kIGFyZSBoYW5kbGVkIGJ5IHJvdXRpbmVzIGluIGxpYmMuICBUaGVzZSBhcmUgbm90IGltcGxlbWVudGVkIGJ5IHRoZSBGUEExMQoraGFyZHdhcmUsIGJ1dCBhcmUgaGFuZGxlZCBieSB0aGUgZmxvYXRpbmcgcG9pbnQgc3VwcG9ydCBjb2RlLiAgVGhleSBzaG91bGQgCitiZSBpbXBsZW1lbnRlZCBpbiBmdXR1cmUgdmVyc2lvbnMuCisKK1RoZXJlIGFyZSBhIGNvdXBsZSBvZiB3YXlzIHRvIGFwcHJvYWNoIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGVzZS4gIE9uZQorbWV0aG9kIHdvdWxkIGJlIHRvIHVzZSBhY2N1cmF0ZSB0YWJsZSBtZXRob2RzIGZvciB0aGVzZSByb3V0aW5lcy4gIEkgaGF2ZSAKK2EgY291cGxlIG9mIHBhcGVycyBieSBTLiBHYWwgZnJvbSBJQk0ncyByZXNlYXJjaCBsYWJzIGluIEhhaWZhLCBJc3JhZWwgdGhhdAorc2VlbSB0byBwcm9taXNlIGV4dHJlbWUgYWNjdXJhY3kgKGluIHRoZSBvcmRlciBvZiA5OS44JSkgYW5kIHJlYXNvbmFibGUgc3BlZWQuCitUaGVzZSBtZXRob2RzIGFyZSB1c2VkIGluIEdMSUJDIGZvciBzb21lIG9mIHRoZSB0cmFuc2NlbmRlbnRhbCBmdW5jdGlvbnMuCisKK0Fub3RoZXIgYXBwcm9hY2gsIHdoaWNoIEkga25vdyBsaXR0bGUgYWJvdXQgaXMgQ09SRElDLiAgVGhpcyBzdGFuZHMgZm9yCitDb29yZGluYXRlIFJvdGF0aW9uIERpZ2l0YWwgQ29tcHV0ZXIsIGFuZCBpcyBhIG1ldGhvZCBvZiBjb21wdXRpbmcgCit0cmFuc2NlbmRlbnRhbCBmdW5jdGlvbnMgdXNpbmcgbW9zdGx5IHNoaWZ0cyBhbmQgYWRkcyBhbmQgYSBmZXcKK211bHRpcGxpY2F0aW9ucyBhbmQgZGl2aXNpb25zLiAgVGhlIEFSTSBleGNlbHMgYXQgc2hpZnRzIGFuZCBhZGRzLAorc28gc3VjaCBhIG1ldGhvZCBjb3VsZCBiZSBwcm9taXNpbmcsIGJ1dCByZXF1aXJlcyBtb3JlIHJlc2VhcmNoIHRvIAorZGV0ZXJtaW5lIGlmIGl0IGlzIGZlYXNpYmxlLgorCitSb3VuZGluZyBNZXRob2RzCisKK1RoZSBJRUVFIHN0YW5kYXJkIGRlZmluZXMgNCByb3VuZGluZyBtb2Rlcy4gIFJvdW5kIHRvIG5lYXJlc3QgaXMgdGhlCitkZWZhdWx0LCBidXQgcm91bmRpbmcgdG8gKyBvciAtIGluZmluaXR5IG9yIHJvdW5kIHRvIHplcm8gYXJlIGFsc28gYWxsb3dlZC4KK01hbnkgYXJjaGl0ZWN0dXJlcyBhbGxvdyB0aGUgcm91bmRpbmcgbW9kZSB0byBiZSBzcGVjaWZpZWQgYnkgbW9kaWZ5aW5nIGJpdHMKK2luIGEgY29udHJvbCByZWdpc3Rlci4gIE5vdCBzbyB3aXRoIHRoZSBBUk0gRlBBMTEgYXJjaGl0ZWN0dXJlLiAgVG8gY2hhbmdlCit0aGUgcm91bmRpbmcgbW9kZSBvbmUgbXVzdCBzcGVjaWZ5IGl0IHdpdGggZWFjaCBpbnN0cnVjdGlvbi4KKworVGhpcyBoYXMgbWFkZSBwb3J0aW5nIHNvbWUgYmVuY2htYXJrcyBkaWZmaWN1bHQuICBJdCBpcyBwb3NzaWJsZSB0bworaW50cm9kdWNlIHN1Y2ggYSBjYXBhYmlsaXR5IGludG8gdGhlIGVtdWxhdG9yLiAgVGhlIEZQQ1IgY29udGFpbnMgCitiaXRzIGRlc2NyaWJpbmcgdGhlIHJvdW5kaW5nIG1vZGUuICBUaGUgZW11bGF0b3IgY291bGQgYmUgYWx0ZXJlZCB0byAKK2V4YW1pbmUgYSBmbGFnLCB3aGljaCBpZiBzZXQgZm9yY2VkIGl0IHRvIGlnbm9yZSB0aGUgcm91bmRpbmcgbW9kZSBpbgordGhlIGluc3RydWN0aW9uLCBhbmQgdXNlIHRoZSBtb2RlIHNwZWNpZmllZCBpbiB0aGUgYml0cyBpbiB0aGUgRlBDUi4KKworVGhpcyB3b3VsZCByZXF1aXJlIGEgbWV0aG9kIG9mIGdldHRpbmcvc2V0dGluZyB0aGUgZmxhZywgYW5kIHRoZSBiaXRzCitpbiB0aGUgRlBDUi4gIFRoaXMgcmVxdWlyZXMgYSBrZXJuZWwgY2FsbCBpbiBBcm1MaW51eCwgYXMgV0ZDL1JGQyBhcmUKK3N1cGVydmlzb3Igb25seSBpbnN0cnVjdGlvbnMuICBJZiBhbnlvbmUgaGFzIGFueSBpZGVhcyBvciBjb21tZW50cyBJCit3b3VsZCBsaWtlIHRvIGhlYXIgdGhlbS4KKworW05PVEU6IHB1bGxlZCBvdXQgZnJvbSBzb21lIGRvY3Mgb24gQVJNIGZsb2F0aW5nIHBvaW50LCBzcGVjaWZpY2FsbHkKKyBmb3IgdGhlIEFjb3JuIEZQRSwgYnV0IG5vdCBsaW1pdGVkIHRvIGl0OgorCisgVGhlIGZsb2F0aW5nIHBvaW50IGNvbnRyb2wgcmVnaXN0ZXIgKEZQQ1IpIG1heSBvbmx5IGJlIHByZXNlbnQgaW4gc29tZQorIGltcGxlbWVudGF0aW9uczogaXQgaXMgdGhlcmUgdG8gY29udHJvbCB0aGUgaGFyZHdhcmUgaW4gYW4gaW1wbGVtZW50YXRpb24tCisgc3BlY2lmaWMgbWFubmVyLCBmb3IgZXhhbXBsZSB0byBkaXNhYmxlIHRoZSBmbG9hdGluZyBwb2ludCBzeXN0ZW0uICBUaGUgdXNlcgorIG1vZGUgb2YgdGhlIEFSTSBpcyBub3QgcGVybWl0dGVkIHRvIHVzZSB0aGlzIHJlZ2lzdGVyIChzaW5jZSB0aGUgcmlnaHQgaXMKKyByZXNlcnZlZCB0byBhbHRlciBpdCBiZXR3ZWVuIGltcGxlbWVudGF0aW9ucykgYW5kIHRoZSBXRkMgYW5kIFJGQworIGluc3RydWN0aW9ucyB3aWxsIHRyYXAgaWYgdHJpZWQgaW4gdXNlciBtb2RlLgorCisgSGVuY2UsIHRoZSBhbnN3ZXIgaXMgeWVzLCB5b3UgY291bGQgZG8gdGhpcywgYnV0IHRoZW4geW91IHdpbGwgcnVuIGEgaGlnaAorIHJpc2sgb2YgYmVjb21pbmcgaXNvbGF0ZWQgaWYgYW5kIHdoZW4gaGFyZHdhcmUgRlAgZW11bGF0aW9uIGNvbWVzIG91dAorCQktLSBSdXNzZWxsXS4K