[qt/clang/llvm]: Summary of bulk changes made
KDE Git Services - Bulk Change <[email protected]> Wed, 5 Aug 2026 00:12:21 +0000 (UTC)
| Newsgroups | gmane.comp.kde.cvs |
|---|---|
| Message-ID | <[email protected]> |
R2l0IHJlcG9zaXRvcnkgY2hhbmdlIHN1bW1hcnkgZm9yIHF0L2NsYW5nL2xsdm0KUHVzaGVkIGJ5 IG1pcnJvci1zZXJ2aWNlIGludG8gYnJhbmNoICd1cHN0cmVhbS91c2Vycy9rZXJib3dhL2FtZGdw dS1jb2V4ZWMtaGF6YXJkLW1vZGUnLgpDaGFuZ2VkIGZyb20gN2E1YjJmMGI3ZWZiNTczMjE1NDE2 YjVkYjI0MGIzMGE2NDFjOGRkNyB0byA3OWFiMjE3ZGM0YTc2ODcxZGQwYzkzYmJjYjQyMzc0MTQw YzBlNDRhCkFja25vd2xlZGdlbWVudCB3YXMgcmVjZWl2ZWQgdGhhdCB0aGlzIGNoYW5nZSBpbnRy b2R1Y2VzIG9ubHkgZXhpc3RpbmcgY29kZSB0aGF0IGhhcyBiZWVuIHB1c2hlZCB0byBhbm90aGVy IHB1YmxpYyBvcGVuIHNvdXJjZSByZXBvc2l0b3J5LgoKVGhpcyBjaGFuZ2UgY29udGFpbnMgdGhl IGZvbGxvd2luZyBuZXcgY29tbWl0czoKCkdpdCBjb21taXQgNzYwOWNiODNiZjVmYzVjMjVlMjg3 NzcwZGIyNzdkYmIzNGU2NzRiOCBieSBHaXRIdWIgKG9uIGJlaGFsZiBvZiBGaW5uIFBsdW1tZXIp IG9uIDA0LzA4LzIwMjYgYXQgMTc6MzMuLgpbRGlyZWN0WF0gUHJldmVudCBgZHhpbC1yZXNvdXJj ZS1hY2Nlc3NgIGZyb20gaW5zZXJ0aW5nIGEgcmVzb3VyY2UgYWNjZXNzIGluLWJldHdlZW4gcGhp IG5vZGVzICgjMjExMzQzKQoKVGhlIHBhc3MgY2FuIGluY29ycmVjdGx5IHBsYWNlIGEgbG9hZC9z dG9yZSB3aXRoaW4gdGhlIHBoaSBub2RlcyBhdCB0b3AKb2YgdGhlIGJhc2ljIGJsb2NrOiBodHRw czovL2dvZGJvbHQub3JnL3oveDVFYzRHV0dUCgpUaGlzIGlzIHJlc29sdmVkIGJ5IHVwZGF0aW5n IGByZXBsYWNlSGFuZGxlV2l0aEluZGljZXNgIHRvIGFkanVzdCB0aGUKaW5zZXJ0aW9uIHBvaW50 IHdoZW4gdGhlIHB0ciBjb21lcyBmcm9tIGEgcGhpIG5vZGUuCgpSZXNvbHZlcywgaW4gcGFydCwg aHR0cHM6Ly9naXRodWIuY29tL2xsdm0vbGx2bS1wcm9qZWN0L2lzc3Vlcy8yMTExMjEKCkFzc2lz dGVkIGJ5OiBDbGF1ZGUgT3B1cyA0LjgKaHR0cHM6Ly9pbnZlbnQua2RlLm9yZy9xdC9jbGFuZy9s bHZtLy0vY29tbWl0Lzc2MDljYjgzYmY1ZmM1YzI1ZTI4Nzc3MGRiMjc3ZGJiMzRlNjc0YjgKCkdp dCBjb21taXQgNTM4MmY3ZDY0ZmY1OWQxOTgwOTFmZmQyNjNkN2FkZWNmNWQ3ZGQ1YSBieSBHaXRI dWIgKG9uIGJlaGFsZiBvZiBCZW5qYW1pbiBNYXh3ZWxsKSBvbiAwNC8wOC8yMDI2IGF0IDE3OjQ4 Li4KW0Nvc3RNb2RlbF1bQUFyY2g2NF0gQWRkIGluaXRpYWwgY29zdHMgZm9yIGBtYXNrZWQuY29t cHJlc3NzdG9yZWAgKCMyMTM3MTIpCgpUaGlzIGFkZHMgYW4gaW5pdGlhbCBjb3N0IG1vZGVsIGZv ciBgbWFza2VkLmNvbXByZXNzc3RvcmVgLiBUaGUgdGVzdHMKYXJlIGJhc2VkIG9uIGBtYXNrZWRf ZXhwYW5kX2xvYWQubGxgLCB3aGljaCBjb3ZlcnMgYWxsIGNvbmZpZ3VyYXRpb25zCmZvciB0aGUg YGV4cGFuZGAvYGNvbXBhY3RgIGluc3RydWN0aW9ucy4KCk5vdGU6IFJpZ2h0IG5vdywgd2Ugb25s eSByZXBvcnQgdmFsaWQgY29zdHMgZm9yIGBtYXNrZWQuY29tcHJlc3NzdG9yZWAKb3BlcmF0aW9u cyB0aGF0IGNhbiBiZSBsb3dlcmVkIHdpdGggU1ZFMSAoYXMgdGhhdCdzIGFsbCB3ZSBoYW5kbGUg SVNFTApmb3IgYXQgdGhlIG1vbWVudCkuCmh0dHBzOi8vaW52ZW50LmtkZS5vcmcvcXQvY2xhbmcv bGx2bS8tL2NvbW1pdC81MzgyZjdkNjRmZjU5ZDE5ODA5MWZmZDI2M2Q3YWRlY2Y1ZDdkZDVhCgpH aXQgY29tbWl0IGFmMTQ0NTZhMmJhYzU1MDI2YjJkNTdjYmYxNGIzOTA1YzQ1MmI4YTQgYnkgR2l0 SHViIChvbiBiZWhhbGYgb2YgYXJzbnlkZXIxNikgb24gMDQvMDgvMjAyNiBhdCAxNzo1Mi4uCltP cGVuTVBdIFNpbXBsaWZ5IGdlbmVyaWMgbWljcm90YXNrIGRpc3BhdGNoICgjMjE0MDA0KQoKUmVw bGFjZSB0aGUgZ2VuZXJpYyBtaWNyb3Rhc2sgZGlzcGF0Y2hlcidzIGhhbmR3cml0dGVuIGZ1bmN0 aW9uLXBvaW50ZXIKdHlwZXMgYW5kIGNhbGxzIHdpdGggYSB2YXJpYWRpYy10ZW1wbGF0ZSBoZWxw ZXIgYW5kIGEgbWFjcm8gZm9yIGVhY2gKc3VwcG9ydGVkIGFyZ3VtZW50IGNvdW50LgoKVGhlIGRp c3BhdGNoZXIgc3RpbGwgY2FzdHMgZWFjaCBtaWNyb3Rhc2sgdG8gdGhlIGV4YWN0IGZpeGVkLWFy aXR5CnNpZ25hdHVyZSByZXF1aXJlZCBieSBwbGF0Zm9ybXMgc3VjaCBhcyBXZWJBc3NlbWJseS4g VGhpcyBpcyBpbnRlbmRlZCBhcwphIHJlZmFjdG9yIG9ubHk6IHRoZSBleGlzdGluZyBsaW1pdCBv ZiAxNSBtaWNyb3Rhc2sgYXJndW1lbnRzIGFuZCB0aGUKZGlhZ25vc3RpYyBmb3IgbGFyZ2VyIGFy Z3VtZW50IGNvdW50cyByZW1haW4gdW5jaGFuZ2VkLgoKVGhpcyByZWR1Y2VzIHRoZSByZXBldGl0 aXZlIGNvZGUgYW5kIG1ha2VzIGZ1dHVyZSBjaGFuZ2VzIHRvIHRoZQpzdXBwb3J0ZWQgYXJndW1l bnQgcmFuZ2UgZWFzaWVyIHRvIHJldmlldy4KClNwbGl0IG91dCBmcm9tICMyMTEwNzEKaHR0cHM6 Ly9pbnZlbnQua2RlLm9yZy9xdC9jbGFuZy9sbHZtLy0vY29tbWl0L2FmMTQ0NTZhMmJhYzU1MDI2 YjJkNTdjYmYxNGIzOTA1YzQ1MmI4YTQKCkdpdCBjb21taXQgMmEyYWRkZTM1OTM3NjY3ZGQ5M2Rj NTU5NGFjNWQ1Mjg0MmUxMTZkMiBieSBHaXRIdWIgKG9uIGJlaGFsZiBvZiBDaGlubWF5IERlc2hw YW5kZSkgb24gMDQvMDgvMjAyNiBhdCAxNzo1Ni4uCltBTURHUFVdW0dJU2VsXSBBZGQgUmVnQmFu a0xlZ2FsaXplIHJ1bGVzIGZvciBsbHZtLmFtZGdjbi5mZG90Mi5iZjE2LmJmMTYgKCMyMTQwMTMp Cmh0dHBzOi8vaW52ZW50LmtkZS5vcmcvcXQvY2xhbmcvbGx2bS8tL2NvbW1pdC8yYTJhZGRlMzU5 Mzc2NjdkZDkzZGM1NTk0YWM1ZDUyODQyZTExNmQyCgpHaXQgY29tbWl0IDUwMDk2MjI5OGQ2MjRh NzRhZGU1OGMyYWViNjUzMTNmYjMyZGRhNWEgYnkgR2l0SHViIChvbiBiZWhhbGYgb2YgQWxleGV5 IEJhdGFldikgb24gMDQvMDgvMjAyNiBhdCAxNzo1Ny4uCltJbnN0Q29tYmluZV1Gb2xkIGZjbXAr c2VsZWN0IHRvIG1pbi9tYXggaWYgaXRzIHplcm8gc2lnbiBpcyBtaXNzaW5nCgpMb29rIHRocm91 Z2ggcGhpcywgY2hhaW5lZCBzZWxlY3RzIGFuZCB0aGUgbG9vcCBiYWNrIGVkZ2UgdG8gdGhlCnNl bGVjdCBpdHNlbGYgYW5kIGZvbGQgaWYgbm8gdXNlIGNhbiBvYnNlcnZlIHRoZSBzaWduIG9mIHpl cm8gb2YgdGhlCnJlc3VsdC4gVGhpcyByZXN0b3JlcyB0aGUgZm9sZCBmb3IgbG9vcC1jYXJyaWVk IGFuZCB1bnJvbGxlZCBydW5uaW5nCm1pbi9tYXggdmFsdWVzIChmY3NlbCAtPiBmbWlubm0gb24g QUFyY2g2NCkgbG9zdCB0byB0aGUgc2lnbmVkIHplcm8KaGFuZGxpbmcgZml4IGluIG1hdGNoU2Vs ZWN0UGF0dGVybiAoIzIxMDA3NykuCgpSZXZpZXdlcnM6IG5pa2ljLCBkdGN4enl3CgpQdWxsIFJl cXVlc3Q6IGh0dHBzOi8vZ2l0aHViLmNvbS9sbHZtL2xsdm0tcHJvamVjdC9wdWxsLzIxMzEzMwpo dHRwczovL2ludmVudC5rZGUub3JnL3F0L2NsYW5nL2xsdm0vLS9jb21taXQvNTAwOTYyMjk4ZDYy NGE3NGFkZTU4YzJhZWI2NTMxM2ZiMzJkZGE1YQoKR2l0IGNvbW1pdCA3MGVjYzViYjYyMTg3Y2E3 MGU2ZmU0ZTU2M2RiZDYwZjg4YzJlN2EwIGJ5IEdpdEh1YiAob24gYmVoYWxmIG9mIFRpbXVyIEdv bHVib3ZpY2gpIG9uIDA0LzA4LzIwMjYgYXQgMTc6NTguLgpSZXZlcnQgIltHbG9iYWxJU2VsXSBD b21iaW5lIG1lcmdlLXVubWVyZ2Ugd2l0aCBtaXhlZCBzY2FsYXIgYW5kIHZlY3RvciB0eXBlcyIg KCMyMTQwMTApCgpSZXZlcnRzIGxsdm0vbGx2bS1wcm9qZWN0IzIxMzA4NgpodHRwczovL2ludmVu dC5rZGUub3JnL3F0L2NsYW5nL2xsdm0vLS9jb21taXQvNzBlY2M1YmI2MjE4N2NhNzBlNmZlNGU1 NjNkYmQ2MGY4OGMyZTdhMAoKR2l0IGNvbW1pdCA2MzI2ZjE0Y2RjMTJiYWJmZGM0MzU5ZjVkZGQ0 ZGZjZDY2YjUzZjMzIGJ5IEdpdEh1YiAob24gYmVoYWxmIG9mIEFkYW0gU21pdGgpIG9uIDA0LzA4 LzIwMjYgYXQgMTg6MDMuLgpbQ0lSXSBMb3dlciB2YXJpYWRpYyBjYWxscyBpbiBDYWxsQ29udkxv d2VyaW5nIGZvciB4ODZfNjQgKCMyMTMzMTUpCgpDYWxsQ29udkxvd2VyaW5nIGNsYXNzaWZpZWQg ZWFjaCBmdW5jdGlvbiBvbmNlIGZyb20gaXRzIGRlY2xhcmVkCnNpZ25hdHVyZSBhbmQgcmV1c2Vk IHRoYXQgY2xhc3NpZmljYXRpb24gYXQgZXZlcnkgY2FsbCBzaXRlLiBBbiBhcmd1bWVudApwYXNz ZWQgdGhyb3VnaCBhbiBlbGxpcHNpcyBoYXMgbm8gZW50cnkgaW4gdGhlIGNhbGxlZSdzIHBhcmFt ZXRlciBsaXN0LApzbyBvbiB4ODZfNjQgYW4gZWxsaXBzaXMgYXJndW1lbnQgdGhhdCBuZWVkZWQg YW4gZXh0ZW5zaW9uIGF0dHJpYnV0ZSwgYQpyZWdpc3RlciBjb2VyY2lvbiwgb3IgYSBieXZhbCBz bG90IHdhcyBlbWl0dGVkIHVuY2hhbmdlZCB3aGVuZXZlciB0aGUKY2FsbGVlJ3MgZGVjbGFyZWQg cGFyYW1ldGVycyBoYXBwZW5lZCB0byBuZWVkIG5vIHJld3JpdGUsIGFuZCByZXBvcnRlZApOWUkg d2hlbiB0aGV5IGRpZC4KCkFuIGVsbGlwc2lzIGFyZ3VtZW50IGNvbXBldGVzIGZvciB0aGUgc2Ft ZSByZWdpc3RlcnMgYXMgYSBkZWNsYXJlZCBvbmUsCnNvIHRoZSBzYW1lIHR3by1laWdodGJ5dGUg cmVjb3JkIGdvZXMgaW4gYSByZWdpc3RlciBwYWlyIGVhcmx5IGluIHRoZQpsaXN0IGFuZCBieXZh bCBvbmNlIHRoZSBpbnRlZ2VyIHJlZ2lzdGVycyBhcmUgZ29uZS4gVmFyaWFkaWMgY2FsbCBzaXRl cwp1bmRlciB0aGUgeDg2XzY0IGRyaXZlciBhcmUgbm93IGNsYXNzaWZpZWQgZnJvbSB0aGUgY2Fs bCdzIG93biBvcGVyYW5kCnR5cGVzLCBhbmQgdGhlIGRlY2xhcmVkIHBhcmFtZXRlciBjb3VudCBy ZWFjaGVzCmBsbHZtOjphYmk6OkZ1bmN0aW9uSW5mbzo6Y3JlYXRlYCBhcyBpdHMgYE51bVJlcXVp cmVkYCBhcmd1bWVudCwgd2hpY2gKaXMgd2hhdCBsZXRzIHRoZSBjbGFzc2lmaWVyIHRlbGwgYSBu YW1lZCBhcmd1bWVudCBmcm9tIG9uZSBwYXNzZWQKdGhyb3VnaCB0aGUgZWxsaXBzaXMuIFRvZGF5 IHRoYXQgZmxhZyBvbmx5IGRlY2lkZXMgd2hldGhlciBhIGxhcmdlCnZlY3RvciBnb2VzIGluIGEg cmVnaXN0ZXIsIGFuZCB0aGUgQ0lSIHR5cGUgYnJpZGdlIGFkbWl0cyBubyB2ZWN0b3IKdHlwZXMs IHNvIHRoZSBib3VuZGFyeSBjaGFuZ2VzIG5vIG91dHB1dCB5ZXQuCgpgcHJlcGVuZEluZGlyZWN0 Q2FsbGVlYCBhbHNvIHJlYnVpbHQgdGhlIGNhbGxlZSBwb2ludGVyJ3MgcG9pbnRlZQp3aXRob3V0 IGBpc1ZhckFyZ2AsIGRyb3BwaW5nIHRoZSBlbGxpcHNpcyBmcm9tIGEgbG93ZXJlZCBpbmRpcmVj dCBjYWxsCmFuZCB3aXRoIGl0IHRoZSB2ZWN0b3ItcmVnaXN0ZXIgY291bnQgdGhlIHg4Nl82NCBT eXNWIEFCSSBwYXNzZXMgaW4gQUwuCkEgdm9pZCByZXR1cm4gYW5kIGEgcmV0dXJuIHRoZSBBQkkg ZHJvcHMsIHN1Y2ggYXMgYW4gZW1wdHkgcmVjb3JkLCBib3RoCmNsYXNzaWZ5IGFzIGBJZ25vcmVg IHdoaWxlIG5lZWRpbmcgb3Bwb3NpdGUgdHJlYXRtZW50LCBzbwpgRnVuY3Rpb25DbGFzc2lmaWNh dGlvbmAgbm93IHJlY29yZHMgd2hpY2ggb25lIGl0IHdhcyB3aGVyZSB0aGUKY2xhc3NpZmljYXRp b24gaXMgcHJvZHVjZWQuIGBuZWVkc1Jld3JpdGVgIG1vdmVzIGZyb20gdGhlIENJUiByZXdyaXRl cgp0byBgbWxpci9pbmNsdWRlL21saXIvQUJJL0FCSVJld3JpdGVDb250ZXh0LmhgLCBvdmVyIGEg bmV3IHBlci1hcmd1bWVudApgaXNQYXNzVGhyb3VnaGAsIHNvIHRoZSBwYXNzIGFuZCB0aGUgcmV3 cml0ZXIgc2hhcmUgb25lIGRlZmluaXRpb24uCgpUd28gdGhpbmdzIGFyZSBuZXdseSBkaWFnbm9z ZWQgcmF0aGVyIHRoYW4gbmV3bHkgYnJva2VuLiBUaGUKb3BlcmFuZC1jb3VudCBjaGVjayBtb3Zl cyBhaGVhZCBvZiB0aGUgcGFzcy10aHJvdWdoIGVhcmx5IHJldHVybiwgc28gYQpjYWxsIHdob3Nl IG9wZXJhbmQgY291bnQgZGlzYWdyZWVzIHdpdGggYSBgbm9fcHJvdG9gIGNhbGxlZSdzCmRlY2xh cmF0aW9uIGlzIHJlcG9ydGVkIGluc3RlYWQgb2YgbG93ZXJlZCB3aXRoIG9wZXJhbmRzIHRoZQpj bGFzc2lmaWNhdGlvbiBuZXZlciBjb3ZlcmVkLiBBbmQgdGhlIGluZGlyZWN0LWNhbGwgd2FsayB2 aXNpdHMKYGNpcjo6Q0lSQ2FsbE9wSW50ZXJmYWNlYCByYXRoZXIgdGhhbiBvbmx5IGBjaXIuY2Fs bGAsIHNvIGEgdmFyaWFkaWMKaW5kaXJlY3QgYGNpci50cnlfY2FsbGAgaXMgYWNjb3VudGVkIGZv ciwgYW5kIG9uZSB0aGF0IG5lZWRzIGEgcmV3cml0ZQppcyByZXBvcnRlZCBpbnN0ZWFkIG9mIGxl ZnQgYXMgd3JpdHRlbiB3aGlsZSB0aGUgc2lnbmF0dXJlIGFyb3VuZCBpdCBpcwpjb2VyY2VkLiBB IG5vbi12YXJpYWRpYyBpbmRpcmVjdCBgY2lyLnRyeV9jYWxsYCBpcyBmaWx0ZXJlZCBvdXQgd2hl cmUKdGhlIHdhbGsgY29sbGVjdHMsIHNpbmNlIHJld3JpdGluZyBvbmUgaXMgdW5pbXBsZW1lbnRl ZCBlaXRoZXIgd2F5IGFuZAp0aGF0IGdhcCBoYXMgbm90aGluZyB0byBkbyB3aXRoIHRoZSBlbGxp cHNpcy4gUmVwb3J0ZWQgTllJOiB2YXJpYWRpYwppbmRpcmVjdCBjYWxscyB0aGF0IG5lZWQgYSBy ZXdyaXRlLCB2YXJpYWRpYyBjYWxscyB1bmRlciB0aGUgb3RoZXIKZHJpdmVycywgYW5kIGFuIGVs bGlwc2lzIGFyZ3VtZW50IHdob3NlIEFCSSBjb2VyY2lvbiB0aGUgdHlwZSBicmlkZ2UKY2Fubm90 IHJlcHJlc2VudC4KaHR0cHM6Ly9pbnZlbnQua2RlLm9yZy9xdC9jbGFuZy9sbHZtLy0vY29tbWl0 LzYzMjZmMTRjZGMxMmJhYmZkYzQzNTlmNWRkZDRkZmNkNjZiNTNmMzMKCkdpdCBjb21taXQgYzlm MmJhMjI4NDllNTBkZjEyNzdkYjgyMjVhNjQxMGJhOWRkY2I1ZSBieSBHaXRIdWIgKG9uIGJlaGFs ZiBvZiBTYW0gRWxsaW90dCkgb24gMDQvMDgvMjAyNiBhdCAxODowOS4uCltSSVNDVl0gRml4IFhx Y2kgRnVzaW9ucyB3aXRoIEZyYW1lIEluZGV4ZXMgKCMyMTM4MTUpCgpQcmUtUkEsIHRoZSBBRERJ IGNhbiBjb250YWluIGEgZnJhbWUgaW5kZXggcmF0aGVyIHRoYW4gYSByZWdpc3Rlciwgd2hpY2gK Y2F1c2VzIGBnZXRSZWcoKWAgdG8gYXNzZXJ0LiBUaGVzZSB3ZXJlIG1pc3NpbmcgdGhlIGBDaGVj a0lzUmVnT3BlcmFuZGAKdGhhdCBtb3N0IG90aGVyIGZ1c2lvbnMgaGF2ZS4KaHR0cHM6Ly9pbnZl bnQua2RlLm9yZy9xdC9jbGFuZy9sbHZtLy0vY29tbWl0L2M5ZjJiYTIyODQ5ZTUwZGYxMjc3ZGI4 MjI1YTY0MTBiYTlkZGNiNWUKCkdpdCBjb21taXQgY2FmZDM2YmZjZTY3NjgyMTkzYzNkNWRhNTkx YjA1MWE0NjBlNTBmNiBieSBHaXRIdWIgKG9uIGJlaGFsZiBvZiBFcmljaCBLZWFuZSkgb24gMDQv MDgvMjAyNiBhdCAxODoxMS4uCltORkNdW0NJUl0gUHJvcGFnYXRlIFN5bWJvbFRhYmxlcyBiZXR0 ZXIgKCMyMTM5NzIpCgpUaGlzIGNhbWUgdXAgZHVyaW5nIHNlbGYtYnVpbGQsIHdlIGFyZSBzcGVu ZGluZyBhIGxvdCBvZiB0aW1lIGluIHNvbWUKY2FzZXMgbG9va2luZyB1cCB1c2luZyB0aGUgZ2xv YmFsIHN5bWJvbCB0YWJsZSwgd2hpY2ggZG9lcyBubyBjYWNoaW5nLgpQcmV2aW91c2x5IHdlJ2Qg cHJvcGFnYXRlZCB0aGlzIGluIGEgZmV3IHBsYWNlcywgYnV0IHRoaXMgcGF0Y2ggcmVtb3Zlcwph bGwgdXNlcyBvZiBTeW1ib2xUYWJsZTo6bG9va3VwIGFuZCBhZGRzIHRoZSBjYWNoZSBldmVyeXdo ZXJlLgoKVGhpcyBpbnZvbHZlZCBjaGFuZ2luZyB0aGUgdGFibGVnZW4gdG8gaW5jbHVkZSBpdCBp biBlYWNoIG9mIG91cgpyZXdyaXRlcnMsIHBsdXMgdGhlIENpckF0dHIgbG93ZXJpbmcgZXZlcnl3 aGVyZS4KClRoZSBvbmx5IHRoaW5nIHdlIGhhdmUgdG8gdGFrZSBjYXJlIG9mIGlzIHRvIG1ha2Ug c3VyZSB3ZSBpbnZhbGlkYXRlIHRoZQpjYWNoZS91cGRhdGUgdGhlIGNhY2hlIHdoZW5ldmVyIHdl IGFkZCBzb21ldGhpbmcgd2l0aCBhIG5hbWUgKHNlZQpjcmVhdGVMTFZNRnVuY09wSWZOb3RFeGlz dCkuCgpUaGlzIGlzIE5GQywgYXMgaXQgaXNuJ3Qgb2JzZXJ2YWJsZSwgb3RoZXIgdGhhbiBiZWlu ZyBhIGJ1aWxkIHRpbWUKaW1wcm92ZW1lbnQuCmh0dHBzOi8vaW52ZW50LmtkZS5vcmcvcXQvY2xh bmcvbGx2bS8tL2NvbW1pdC9jYWZkMzZiZmNlNjc2ODIxOTNjM2Q1ZGE1OTFiMDUxYTQ2MGU1MGY2 CgpHaXQgY29tbWl0IDFmNjlhMTYyODk0NzhjOWE3YjJjZGE1ZGY0Y2QxNmQ2NjA5ZWIyYzIgYnkg R2l0SHViIChvbiBiZWhhbGYgb2YgU2ltb24gUGlsZ3JpbSkgb24gMDQvMDgvMjAyNiBhdCAxODox NS4uCltDb3N0TW9kZWxdW1g4Nl0gZ2V0QXJpdGhtZXRpY1JlZHVjdGlvbkNvc3QgLSBlbnN1cmUg d2UgdGVzdCB0aGUgdlhpMSByZWR1Y3Rpb25zIHR5cGVzIGJlZm9yZSBsZWdhbGlzYXRpb24gKCMy MTEwNDMpCgpQcmUtQVZYNTEyIHRoZXNlIHdpbGwgYmUgbGVnYWxpemVkIHRvIHdpZGVyIHZlY3Rv ciB0eXBlcyBhbmQgbWlnaHQgbWF0Y2gKYWdhaW5zdCBvdGhlciByZWR1Y3Rpb25zIHRhYmxlcy4K Ck5vdGljZWQgd2hpbGUgd29ya2luZyBvbiBpbXByb3ZpbmcgbG9naWMgcmVkdWN0aW9ucywgYnV0 IGhpdCBhIGNhc2UKd2l0aC93aXRob3V0IHBvcGNudCBmb3IgYm9vbCBzdW0gcmVkdWN0aW9uIHBh dHRlcm5zIC0gSSd2ZSBhZGRlZCBhIEFWWDIKdGVzdCBwYXNzIHRvIGNoZWNrIHRoZSAoY29ycmVj dGVkKSBjb3N0cyBhcmUgc3RpbGwgd29ya2luZwpodHRwczovL2ludmVudC5rZGUub3JnL3F0L2Ns YW5nL2xsdm0vLS9jb21taXQvMWY2OWExNjI4OTQ3OGM5YTdiMmNkYTVkZjRjZDE2ZDY2MDllYjJj MgoKR2l0IGNvbW1pdCAwOGE4NzM5YWM4OWEyN2M3ZGJkMDM0OTI2NjYxMWNhOTQ4NjZhZTJmIGJ5 IEdpdEh1YiAob24gYmVoYWxmIG9mIE5lcml4eXopIG9uIDA0LzA4LzIwMjYgYXQgMTg6MTYuLgpb bGxkYl1bUHl0aG9uXSBJbmxpbmUgYGxsZGJfaXRlcmAgZm9yIGJldHRlciB0eXBlIGluZmVyZW5j ZSAoIzIxNDAwMCkKCkN1cnJlbnRseSwgdGhlIGBsbGRiX2l0ZXJgIGhlbHBlciBpcyB1c2VkIGZv ciBwcm92aWRpbmcgYF9faXRlcl9fYCBpbgp0aGUgUHl0aG9uIGJpbmRpbmdzOgpgYGBweXRob24K ZGVmIGxsZGJfaXRlcihvYmosIGdldHNpemUsIGdldGVsZW0pOgogICAgIiIiQSBnZW5lcmF0b3Ig YWRhcHRvciB0byBzdXBwb3J0IGl0ZXJhdGlvbiBmb3IgbGxkYiBjb250YWluZXIgb2JqZWN0cy4i IiIKICAgIHNpemUgPSBnZXRhdHRyKG9iaiwgZ2V0c2l6ZSkKICAgIGVsZW0gPSBnZXRhdHRyKG9i aiwgZ2V0ZWxlbSkKICAgIGZvciBpIGluIHJhbmdlKHNpemUoKSk6CiAgICAgICAgeWllbGQgZWxl bShpKQpgYGAKCkEgdHlwZSBjaGVja2VyIG9yIExTUCBjYW4ndCBzZWUgdGhyb3VnaCB0aGlzIGZ1 bmN0aW9uLiBDdXJyZW50bHksIHRoYXQncwpubyBwcm9ibGVtLCBiZWNhdXNlIGl0IGRvZXNuJ3Qg a25vdyB0aGUgcmV0dXJuIHR5cGUgb2YgYW55IFN3aWcgd3JhcHBlciwKYnV0IHdoZW4gd2UgYWRk IHR5cGUgYW5ub3RhdGlvbnMgKGhvcGVmdWxseSB3aXRoIFN3aWcgNC41IGluICMyMTM0NjMpLApg X19pdGVyX19gIHJlbWFpbnMgdW50eXBlZC4gU28gaXRlcmF0aW5nIHRocm91Z2ggdGhlIHdyYXBw ZXJzIHdvbid0IHNob3cKdGhlIGNvcnJlY3QgdHlwZS4KCkFzIHRoZSBmdW5jdGlvbmFsaXR5IGlz IGZhaXJseSBzaW1wbGUsIGl0J3MgZWFzaWVyIHRvIGlubGluZSBpdC4gVGhhdCdzCndoYXQgdGhp cyBQUiBkb2VzLiBUaGVuIGEgdHlwZSBjaGVja2VyIGNhbiBpbmZlciB0aGUgcmV0dXJuIHR5cGUu Cmh0dHBzOi8vaW52ZW50LmtkZS5vcmcvcXQvY2xhbmcvbGx2bS8tL2NvbW1pdC8wOGE4NzM5YWM4 OWEyN2M3ZGJkMDM0OTI2NjYxMWNhOTQ4NjZhZTJmCgpHaXQgY29tbWl0IGFiNGYyMTBhMzEyN2Uz YmExNzczODE4OTExOTQxNDRmOTI3OThiYTYgYnkgR2l0SHViIChvbiBiZWhhbGYgb2YgTWF0dCBB cnNlbmF1bHQpIG9uIDA0LzA4LzIwMjYgYXQgMTg6MTcuLgpjbGFuZzogUmVwbGFjZSBJcypPZmZs b2FkQXJjaCBmcmVlIGZ1bmN0aW9ucyB3aXRoIE9mZmxvYWRBcmNoIG1ldGhvZHMgKCMyMTMzNjMp Cmh0dHBzOi8vaW52ZW50LmtkZS5vcmcvcXQvY2xhbmcvbGx2bS8tL2NvbW1pdC9hYjRmMjEwYTMx MjdlM2JhMTc3MzgxODkxMTk0MTQ0ZjkyNzk4YmE2CgpHaXQgY29tbWl0IGE5YTZlZGI1OTM1Yzlm NDJjNTkyODM2NjEyMzU2YmVhNTZlM2MwOGIgYnkgR2l0SHViIChvbiBiZWhhbGYgb2YgQWxleGV5 IEJhdGFldikgb24gMDQvMDgvMjAyNiBhdCAxODoxOC4uCltTTFBdVmVjdG9yaXplIHNpbmdsZS11 c2VyIGluc3RydWN0aW9ucyBhcyB0aGUgbGFzdC1hdHRlbXB0IHNlZWRzCgpJbnN0cnVjdGlvbnMg d2l0aCB0aGUgc2luZ2xlIHVzZXIgY29zdCBvbmUgZXh0cmFjdCBwZXIgbGFuZSwgc28gdGhleSBh cmUKdmVjdG9yaXplZCBhZnRlciBhbGwgb3RoZXIgcm9vdHMgaW4gdGhlIGZ1bmN0aW9uIGFyZSBl eGhhdXN0ZWQsIGdyb3VwZWQgYnkKdGhlIGtleS9zdWJrZXkgcGFpcnMuIExvYWRzLCBhZGRyZXNz ZXMsIGNvbXBhcmVzIGFuZCB0aGUgb3BlcmF0aW9ucywgZm9sZGVkCmF3YXkgb3IgY29udHJhY3Rl ZCBpbnRvIHRoZSBzY2FsYXIgRk1BLCBhcmUgZXhjbHVkZWQuIFRoZSByZWplY3RlZCBidW5kbGVz CmFuZCB0aGUgbWVtYmVycyBvZiB0aGUgcHJpY2VkIG1pbmltYWwgbm9kZXMgYXJlIG5vdCByZXRy aWVkLCB1bmxlc3MgdGhlCnRyZWUgd2FzIGRyb3BwZWQgYnkgdGhlIHJlcGFja2luZyBvdmVyaGVh ZCByYXRoZXIgdGhhbiBieSB0aGUgbWVtYmVycy4KClJldmlld2VyczogaGlyYWRpdHlhLCBSS1Np bW9uLCBiYWJhYnVjawoKUHVsbCBSZXF1ZXN0OiBodHRwczovL2dpdGh1Yi5jb20vbGx2bS9sbHZt LXByb2plY3QvcHVsbC8yMTI1NzkKaHR0cHM6Ly9pbnZlbnQua2RlLm9yZy9xdC9jbGFuZy9sbHZt Ly0vY29tbWl0L2E5YTZlZGI1OTM1YzlmNDJjNTkyODM2NjEyMzU2YmVhNTZlM2MwOGIKCkdpdCBj b21taXQgNDAyYzlmOWE3NzZkYzIwZDAzZTMzYzQ0N2Q4NjYzNGM0ODZhNTQzNCBieSBHaXRIdWIg KG9uIGJlaGFsZiBvZiBIZW5yeSBKaWFuZykgb24gMDQvMDgvMjAyNiBhdCAxODoyMy4uCltORkNd W0N1ZGFdW3Rlc3RdIEZpeCBDSEVDSy1OT1QgcGF0dGVybnMgbWF0Y2hpbmcgdGhlIGJ1aWxkIGRp cmVjdG9yeSAoIzIxMzc5OSkKCmBjdWRhLW9tcC11bnN1cHBvcnRlZC1kZWJ1Zy1vcHRpb25zLmN1 YCdzIENPTU1PTi1OT1Q6IC4uLnxsbGRifC4uLiBjYW4KbWF0Y2ggYWdhaW5zdCB0aGUgYnVpbGQg ZGlyZWN0b3J5IHBhdGggdGhhdCBtYXkgY29udGFpbiBgbGxkYmAgaW4gdGhlCnBhdGhuYW1lLiBD aGFuZ2UgdGhlIHRlc3QgdG8gY2hlY2sgdGhlIGV4YWN0IGNjMSBhcmd1bWVudHMuCgpyZGFyOi8v MTgzNTAxNTU4Cmh0dHBzOi8vaW52ZW50LmtkZS5vcmcvcXQvY2xhbmcvbGx2bS8tL2NvbW1pdC80 MDJjOWY5YTc3NmRjMjBkMDNlMzNjNDQ3ZDg2NjM0YzQ4NmE1NDM0CgpHaXQgY29tbWl0IGY1OWQ2 ZjVmODY2Yjk3NDEzNTEwZmExMTkxNDQ2NTFmYmJiYzcxMjMgYnkgR2l0SHViIChvbiBiZWhhbGYg b2YgVXNhbWEgSGFtZWVkKSBvbiAwNC8wOC8yMDI2IGF0IDE4OjQ5Li4KW2NsYW5nXVt0ZXN0XSBB ZGQgdGVzdCBmb3Igc3RhY2tfcHJvdGVjdG9yX2lnbm9yZSBpbiBzeXN0ZW0gbWFjcm9zICgjMjEz NzcwKQoKZDMxODRiYzZjNmE4ICgiW2NsYW5nXSBEb24ndCB3YXJuIG9uIHN0YWNrX3Byb3RlY3Rv cl9pZ25vcmUgaW4gc3lzdGVtCm1hY3JvcyIpIGFkZGVkIFN1cHByZXNzSW5TeXN0ZW1NYWNybyB0 bwp3YXJuX3N0YWNrX3Byb3RlY3Rpb25faWdub3JlX2F0dHJpYnV0ZSBidXQgb25seSBhZGRlZCBh biBMTFZNIENvZGVHZW4KdGVzdCBmb3IgdGhlIHN0YWNrLXByb3RlY3RvciBtZXRhZGF0YSwgc28g dGhlIGRpYWdub3N0aWMgY2hhbmdlIGl0c2VsZgp3YXMgdW50ZXN0ZWQuCgpBZGQgYSB0ZXN0IHVz aW5nIHRoZSBzZWxmLWluY2x1ZGUgc3lzdGVtX2hlYWRlciBpZGlvbTogdGhlIGF0dHJpYnV0ZQpm cm9tIGEgc3lzdGVtIGhlYWRlciBtYWNybyBkb2VzIG5vdCB3YXJuIHVuZGVyIC1mc3RhY2stcHJv dGVjdG9yLWFsbCwKd2hpbGUgb25lIHdyaXR0ZW4gaW4gdXNlciBjb2RlIHN0aWxsIGRvZXMuCgpy ZGFyOi8vMTgzOTYyOTg1Cmh0dHBzOi8vaW52ZW50LmtkZS5vcmcvcXQvY2xhbmcvbGx2bS8tL2Nv bW1pdC9mNTlkNmY1Zjg2NmI5NzQxMzUxMGZhMTE5MTQ0NjUxZmJiYmM3MTIzCgpHaXQgY29tbWl0 IDQzNzZiOGQ2Njk2MWRiMzYwOTQ1ZGI0NGFiZTUxMGQ5ZjEzYWJmNjEgYnkgR2l0SHViIChvbiBi ZWhhbGYgb2YgQWxleGV5IEJhdGFldikgb24gMDQvMDgvMjAyNiBhdCAxODo1Ny4uCltTTFBdRmxh dHRlbiBhZGQvc3ViIGFuZCBmYWRkL2ZzdWIgY2hhaW5zIGludG8gb25lIHJlYXNzb2NpYXRlZCBu b2RlCgpBIHBlZWxlZCBzdWJ0cmFjdCBrZWVwcyB0aGUgY29sdW1uIHNpZ24gZm9yIGl0cyBmaXJz dCBvcGVyYW5kIGFuZCBmbGlwcwppdCBmb3IgdGhlIHNlY29uZCwgc28gbWl4ZWQgYWRkL3N1YiAo ZmFkZC9mc3ViIHdpdGggcmVhc3NvYykgY2hhaW5zCmxpbmVhcml6ZSBpbnRvIHBvc2l0aXZlIGFu ZCBuZWdhdGl2ZSBvcGVyYW5kIGNvbHVtbnMgY29tYmluaW5nIGFzCnN1bShwb3NpdGl2ZSkgLSBz dW0obmVnYXRpdmUpLCB3aXRoIHN1YnRyYWhlbmQgY29sdW1ucyByZW9yZGVyZWQgYnkKdmFsdWUg ZmFtaWx5LiBudXcgaXMgbm93IGFsc28gZHJvcHBlZCBvbiBub24tZXhhY3QgY29tYmluZXMgd2hl biBhCm5lZ2F0ZWQgbGVhZiBleGlzdHMsIHNpbmNlIGEgcmVncm91cGVkIHN1YnRyYWhlbmQgc3Vt IGNhbiBleGNlZWQgdGhlCm9yaWdpbmFsIHJ1bm5pbmcgdG90YWwuCgpSZXZpZXdlcnM6IFJLU2lt b24sIGJhYmFidWNrLCBoaXJhZGl0eWEKClB1bGwgUmVxdWVzdDogaHR0cHM6Ly9naXRodWIuY29t L2xsdm0vbGx2bS1wcm9qZWN0L3B1bGwvMjEzNTQ0Cmh0dHBzOi8vaW52ZW50LmtkZS5vcmcvcXQv Y2xhbmcvbGx2bS8tL2NvbW1pdC80Mzc2YjhkNjY5NjFkYjM2MDk0NWRiNDRhYmU1MTBkOWYxM2Fi ZjYxCgpHaXQgY29tbWl0IGIwN2ZjOGE0NGFhNmFjMDNlYzhlMGM3OWIwNDEzNGJkYTg3YjUyNzkg YnkgR2l0SHViIChvbiBiZWhhbGYgb2YgRm9sa2VydCBkZSBWcmllcykgb24gMDQvMDgvMjAyNiBh dCAxOTowMC4uCltTUEFSQ10gRG8gbm90IHVzZSB0aGUgdW5pbXAgc3RydWN0LXJldHVybiBjb252 ZW50aW9uIGZvciB6ZXJvLXNpemVkIHR5cGVzICgjMjEzNzMzKQoKR0NDIGhhcyBzcGVjaWFsIGhh bmRsaW5nIGZvciBhbiBgc3JldGAgb2YgYSB6ZXJvLXNpemVkIHR5cGUsIG1hdGNoIHRoYXQKaGFu ZGxpbmcuCgpodHRwczovL2dvZGJvbHQub3JnL3ovVGNyYWFvN3JUCgpJdCBzZWVtcyB1bmxpa2Vs eSBzb21lb25lIGlzIGFjdHVhbGx5IHJlbHlpbmcgb24gdGhpcywgc28gSSBoYXZlbid0CmFkZGVk IHRoZSBhYmkgY29tcGF0aWJpbGl0eSBsb2dpYy4gUnVzdCBob3dldmVyIHVzZXMgemVyby1zaXpl ZCB0eXBlcwpxdWl0ZSBoZWF2aWx5LCBzbyBoYXZpbmcgdGhpcyB3b3JrIGNvcnJlY3RseSBpcyB1 c2VmdWwgdGhlcmUuCmh0dHBzOi8vaW52ZW50LmtkZS5vcmcvcXQvY2xhbmcvbGx2bS8tL2NvbW1p dC9iMDdmYzhhNDRhYTZhYzAzZWM4ZTBjNzliMDQxMzRiZGE4N2I1Mjc5CgpHaXQgY29tbWl0IDhj ZjMyNjhiM2E2NWUxODZmMTA0MTM5YTNmNTNkMDdkZThkNTAzMmEgYnkgR2l0SHViIChvbiBiZWhh bGYgb2YgQW5keSBLYXlsb3IpIG9uIDA0LzA4LzIwMjYgYXQgMTk6MTAuLgpbQ0lSXVtBQXJjaDY0 XSBVc2UgQ0lSJ3MgZm1hIGFuZCBzcXJ0IGZvciBOZW9uIGJ1aWx0aW5zICgjMjEzODAwKQoKVGhp cyBjaGFuZ2UgcmVwbGFjZXMgc29tZSBsb2NhdGlvbnMgd2hlcmUgdGhlIE5lb24gYnVpbHRpbiBo YW5kbGluZyB3YXMKY2FsbGluZyBMTFZNIGludHJpbnNpY3MgZGlyZWN0bHkgZm9yIEZNQSBhbmQg c3FydCBvcGVyYXRpb25zIHJhdGhlciB0aGFuCnVzaW5nIHRoZSBDSVIgb3BlcmF0aW9ucy4gVXNp bmcgdGhlIENJUiBvcGVyYXRpb25zIHdpbGwgYmUgbmVjZXNzYXJ5IHRvCmdldCB0aGUgYmVzdCBj b25zdHJhaW5lZCBGUCBoYW5kbGluZy4KClRoaXMgd2lsbCBzdGlsbCByZXF1aXJlIHNldHRpbmcg dGhlIGZlbnYgYXR0cmlidXRlIG9uIHRoZXNlIG9wZXJhdGlvbnMKd2hlbiBuZWVkZWQuIFRoaXMg Y2hhbmdlIGlzIGp1c3QgdGhlIGZpcnN0IG9mIGEgZmV3IHByZWxpbWluYXJ5IGNoYW5nZXMKbmVl ZGVkIHRvIGdldCB1cyBpbiBhIGdvb2Qgc3RhdGUgdG8gYWRkIHRoZSBjb25zdHJhaW5lZCBGUCBo YW5kbGluZy4KCkFzc2lzdGVkLWJ5OiBDdXJzb3IgLyBHcm9rIDQuNQpodHRwczovL2ludmVudC5r ZGUub3JnL3F0L2NsYW5nL2xsdm0vLS9jb21taXQvOGNmMzI2OGIzYTY1ZTE4NmYxMDQxMzlhM2Y1 M2QwN2RlOGQ1MDMyYQoKR2l0IGNvbW1pdCBkNDYyODUyNmJkZDJjOGJkMDNhY2RjYmYwZjlkODcx MGVmMjQzNDg2IGJ5IEdpdEh1YiAob24gYmVoYWxmIG9mIEFuZHkgS2F5bG9yKSBvbiAwNC8wOC8y MDI2IGF0IDE5OjE1Li4KW0NJUl0gQXBwbHkgRlAgY29uc3RyYWludHMgdG8gZ2xvYmFsIGluaXRp YWxpemVycyAoIzIxMzc3NikKCkJlY2F1c2UgQ0lSIGhhbmRsZXMgZ2xvYmFsIGluaXRpYWxpemVy cyB1c2luZyBhIHJlZ2lvbiBvZiB0aGUgY2lyLmdsb2JhbApvcGVyYXRpb24gZHVyaW5nIGluaXRp YWwgY29kZSBnZW5lcmF0aW9uLCB0aGVzZSBpbml0aWFsaXplcnMgZG9uJ3QKYXV0b21hdGljYWxs eSBnZXQgdGhlIHN0cmljdGZwIHNldHVwIGluIENJUkdlbkZ1bmN0aW9uOjpzdGFydEZ1bmN0aW9u LgoKVGhpcyBjaGFuZ2UgYWRkcyBhbiBhdHRyaWJ1dGUgdG8gdGhlIGNpci5nbG9iYWwgb3BlcmF0 aW9uIHRvIHRyYWNrCmZsb2F0aW5nLXBvaW50IGNvbnN0cmFpbnRzIHNvIHRoYXQgdGhlIGBzdHJp Y3RmcGAgYXR0cmlidXRlIGNhbiBiZSBzZXQKb24gdGhlIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9u IHdoZW4gaXQgaXMgY3JlYXRlZCBkdXJpbmcgRUhBQkkgbG93ZXJpbmcuCgpBc3Npc3RlZC1ieTog Q3Vyc29yIC8gdmFyaW91cyBtb2RlbHMKaHR0cHM6Ly9pbnZlbnQua2RlLm9yZy9xdC9jbGFuZy9s bHZtLy0vY29tbWl0L2Q0NjI4NTI2YmRkMmM4YmQwM2FjZGNiZjBmOWQ4NzEwZWYyNDM0ODYKCkdp dCBjb21taXQgMzJiNjQ1ZDlkNjliOGMyZTYyODkwZmVkMTkyMDMzMzdiZWRkZjc5NyBieSBHaXRI dWIgKG9uIGJlaGFsZiBvZiBFcmljIENocmlzdG9waGVyKSBvbiAwNC8wOC8yMDI2IGF0IDE5OjIx Li4KW0RlYnVnSW5mb10gVHJlYXQgdGFnIG9mZnNldHMgYXMgbm9uLWVtaXR0aW5nICgjMjExOTY5 KQoKRFdfT1BfTExWTV90YWdfb2Zmc2V0IGRvZXNuJ3QgZW1pdCBhbnl0aGluZyBpbnRvIHRoZSBE V0FSRiBleHByZXNzaW9uLApzbyBsb29rIHBhc3QgaXQgd2hlbiBkZWNpZGluZyB3aGV0aGVyIGEg cmVnaXN0ZXIgZXhwcmVzc2lvbiBpcyBjb21wbGV4Cm9yIHdoZXRoZXIgYXBwZW5kVG9TdGFjayBu ZWVkcyB0byBhZGQgYSBkZXJlZmVyZW5jZS4KClRlc3RlZCB3aXRoIG1ha2UgY2hlY2suCgpBc3Np c3RlZCB3aXRoIEFJLgpodHRwczovL2ludmVudC5rZGUub3JnL3F0L2NsYW5nL2xsdm0vLS9jb21t aXQvMzJiNjQ1ZDlkNjliOGMyZTYyODkwZmVkMTkyMDMzMzdiZWRkZjc5NwoKR2l0IGNvbW1pdCA3 MDI1M2FmODcwOTYxN2I4NjA4NjVjZThkNzQyMDQ3MThlOGExOTc1IGJ5IEdpdEh1YiAob24gYmVo YWxmIG9mIFZpdGFseSBCdWthKSBvbiAwNC8wOC8yMDI2IGF0IDE5OjI3Li4KW05GQ11bbGliRnV6 emVyXSBSZW1vdmUgdW51c2VkIEdldE1vZHVsZU5hbWUgaGVscGVyIGluIFRyYWNlUEMgKCMyMTQw MzIpCgpGaXhpbmcgYnVpbGQgYm90cyBhZnRlcgpodHRwczovL2dpdGh1Yi5jb20vbGx2bS9sbHZt LXByb2plY3QvcHVsbC8yMDMwODQuCmh0dHBzOi8vaW52ZW50LmtkZS5vcmcvcXQvY2xhbmcvbGx2 bS8tL2NvbW1pdC83MDI1M2FmODcwOTYxN2I4NjA4NjVjZThkNzQyMDQ3MThlOGExOTc1CgpHaXQg Y29tbWl0IDdmNDk4ZDlkMzZkMTAyYTY1MzA4OWU4NmNjMDdkMGE3ZjkwYmZhZWMgYnkgR2l0SHVi IChvbiBiZWhhbGYgb2YgUWlvbmdzaSBXdSkgb24gMDQvMDgvMjAyNiBhdCAxOTozOC4uCltjbGFu Z11bRGVwZW5kZW5jeVNjYW5uaW5nXSBVc2UgQ29tcGlsZXJJbnN0YW5jZVdpdGhDb250ZXh0IGZv ciBUVSBTY2FubmluZyAoIzIxMTQwOCkKCkFmdGVyIGBDb21waWxlckluc3RhbmNlV2l0aENvbnRl eHRgJ3MgcmVsb2NhdGlvbiB0bwpgRGVwZW5kZW5jeVNjYW5uaW5nV29ya2VyLmNwcGAsIHdlIGNh biB1c2UgaXQgZnJlZWx5IGFzIGFuCmltcGxlbWVudGF0aW9uIGVuZ2luZSBmb3IgVFUgc2Nhbm5p bmcuIFRoaXMgUFIgZG9lcyB0aGF0LCBhbmQgdW5pZmllcwp0aGUgYnktbmFtZSBzY2FubmluZyBh bmQgVFUgc2Nhbm5pbmcgc28gdGhleSBhbGwgZ28gdGhyb3VnaApgQ29tcGlsZXJJbnN0YW5jZVdp dGhDb250ZXh0YC4KCnJkYXI6Ly8xNjcwMzQzMDkKCgoKLS0tCgo8c3ViPlN0YWNrIGNyZWF0ZWQg d2l0aCA8YQpocmVmPSJodHRwczovL2dpdGh1Yi5jb20vZ2l0aHViL2doLXN0YWNrIj5HaXRIdWIg U3RhY2tzIENMSTwvYT4g4oCiIDxhCmhyZWY9Imh0dHBzOi8vZ2guaW8vc3RhY2tzLWZlZWRiYWNr Ij5HaXZlIEZlZWRiYWNrIPCfkqw8L2E+PC9zdWI+Cmh0dHBzOi8vaW52ZW50LmtkZS5vcmcvcXQv Y2xhbmcvbGx2bS8tL2NvbW1pdC83ZjQ5OGQ5ZDM2ZDEwMmE2NTMwODllODZjYzA3ZDBhN2Y5MGJm YWVjCgpHaXQgY29tbWl0IDA0NzIyYTRhMzJlNmZlYzE4OTdjYzNjYjVhNTQ4MDlmY2Q4YzljYWUg YnkgR2l0SHViIChvbiBiZWhhbGYgb2YgUWlvbmdzaSBXdSkgb24gMDQvMDgvMjAyNiBhdCAxOToz OC4uCltjbGFuZ11bRGVwZW5kZW5jeVNjYW5uaW5nXSBEaXNzb2x2ZSBEZXBlbmRlbmN5U2Nhbm5l ckltcGwuaC9jcHAgKCMyMTE0MDkpCgpgRGVwZW5kZW5jeVNjYW5uZXJJbXBsLmgvY3BwYCB3ZXJl IGNyZWF0ZWQgdG8gc2hhcmUgY29kZSBiZXR3ZWVuIFRVCnNjYW5uaW5nIGFuZCBieS1uYW1lIHNj YW5uaW5nIHdoZW4gdGhleSB3ZXJlIG9uIGRpZmZlcmVudCBjb2RlIHBhdGhzLgpBZnRlciB1bmlm eWluZyB0aGUgaW1wbGVtZW50YXRpb24gdGhyb3VnaCBgQ29tcGlsZXJJbnN0YW5jZVdpdGhDb250 ZXh0YCwKd2Ugbm8gbG9uZ2VyIG5lZWQgYSBzZXBhcmF0ZSBoZWFkZXIvY3BwIHBhaXIgYW5kIGFs bCB0aGUgY29kZSBhcmUgbW92ZWQKaW50byBgRGVwZW5kZW5jeVNjYW5uaW5nV29ya2VyLmNwcGAu IFRoaXMgUFIgaXMgbWVjaG5pY2FsIGFuZCBkb2VzIG5vdAppbnRlbmQgdG8gaW50cm9kdWNlIGJl aGF2aXZvciBjaGFuZ2VzLgoKLS0tCgo8c3ViPlN0YWNrIGNyZWF0ZWQgd2l0aCA8YQpocmVmPSJo dHRwczovL2dpdGh1Yi5jb20vZ2l0aHViL2doLXN0YWNrIj5HaXRIdWIgU3RhY2tzIENMSTwvYT4g 4oCiIDxhCmhyZWY9Imh0dHBzOi8vZ2guaW8vc3RhY2tzLWZlZWRiYWNrIj5HaXZlIEZlZWRiYWNr IPCfkqw8L2E+PC9zdWI+Cmh0dHBzOi8vaW52ZW50LmtkZS5vcmcvcXQvY2xhbmcvbGx2bS8tL2Nv bW1pdC8wNDcyMmE0YTMyZTZmZWMxODk3Y2MzY2I1YTU0ODA5ZmNkOGM5Y2FlCgpHaXQgY29tbWl0 IGIzY2UwN2I5OTk5MDAwZTZmYWQxYzNhYThmNDI5ZTJmZjI2YjU5OGYgYnkgR2l0SHViIChvbiBi ZWhhbGYgb2YgQWJoaW5hIFNyZWUpIG9uIDA0LzA4LzIwMjYgYXQgMTk6NDEuLgpbU3lzdGVtWl1b ei9PU10gdXNlIExMVk1fVEhSRUFEX0xPQ0FMIGluc3RlYWQgb2YgdGhyZWFkX2xvY2FsICgjMjE0 MDM5KQoKVGhpcyBwYXRjaCBpcyB0byBmaXggdGhlIGZvbGxvd2luZyBlcnJvciBvbiB6L09TCgpg YGAKbGx2bS9pbmNsdWRlL2xsdm0vU3VwcG9ydC9QZXJUaHJlYWRCdW1wUHRyQWxsb2NhdG9yLmg6 NzU6MTI6IGVycm9yOiB0aHJlYWQtbG9jYWwgc3RvcmFnZSBpcyBub3Qgc3VwcG9ydGVkIGZvciB0 aGUgY3VycmVudCB0YXJnZXQKICAgNzUgfCAgICAgc3RhdGljIHRocmVhZF9sb2NhbCBzdGQ6OnZl Y3RvcjxBbGxvY2F0b3JUeSAqPiBDYWNoZTsKICAgICAgfCAgICAgICAgICAgIF4KYGBgCmh0dHBz Oi8vaW52ZW50LmtkZS5vcmcvcXQvY2xhbmcvbGx2bS8tL2NvbW1pdC9iM2NlMDdiOTk5OTAwMGU2 ZmFkMWMzYWE4ZjQyOWUyZmYyNmI1OThmCgpHaXQgY29tbWl0IGNkZGMxMDc4OTliZGYwOWVlM2Zm ZDYwYjAwYjMyNDU1ZTY5OWIxMzAgYnkgR2l0SHViIChvbiBiZWhhbGYgb2YgQXJzZW5peSBPYm9s ZW5za2l5KSBvbiAwNC8wOC8yMDI2IGF0IDE5OjQ4Li4KW0FNREdQVV0gRG8gbm90IHdpZGVuIGNv bnN0YW50IGxvYWRzIHRoYXQgbWF5IG5vdCBiZSBkZXJlZmVyZW5jZWFibGUgKCMxODQ3OTApCmh0 dHBzOi8vaW52ZW50LmtkZS5vcmcvcXQvY2xhbmcvbGx2bS8tL2NvbW1pdC9jZGRjMTA3ODk5YmRm MDllZTNmZmQ2MGIwMGIzMjQ1NWU2OTliMTMwCgpHaXQgY29tbWl0IGRlZTcwYTBmYzk0OGNlOTA2 MGY0MjI1ZWU1YjcwN2FmNDI4N2U1ZGMgYnkgR2l0SHViIChvbiBiZWhhbGYgb2YgQWxleGFuZGVy IFJpY2hhcmRzb24pIG9uIDA0LzA4LzIwMjYgYXQgMTk6NTUuLgpbVGFibGVHZW5dIEdlbmVyYXRl IGBnZXRSZWdDbGFzc0Zyb21NYXRjaEtpbmQoKWAgZm9yIEFzbU1hdGNoZXJzCgpUaGlzIGhlbHBl ciBjYW4gYmUgdXNlZnVsIGluIHZhbGlkYXRlVGFyZ2V0T3BlcmFuZENsYXNzIHRvIGdldCB0aGUK TUNSZWdpc3RlckNsYXNzIGZvciB0aGUgTUNLXyogZW51bS4KTWlncmF0ZSB0aGUgUlZZIGxvZ2lj IHRvIHVzZSB0aGlzIG5ldyBnZW5lcmF0ZWQgZnVuY3Rpb24uIENoZWNraW5nIGFsbApyZWdpc3Rl ciBjbGFzc2VzIGluc3RlYWQgb2YganVzdCB0aGUgUlZZIG9uZXMgd2lsbCBtYXJnaW5hbGx5IHNs b3cgZG93bgp2YWxpZGF0ZVRhcmdldE9wZXJhbmRDbGFzcywgYnV0IHNpbmNlIHRoaXMgaXMgYWxy ZWFkeSBhIHNsb3cgcGF0aCBpdApzaG91bGQgbm90IG1hdHRlci4KCklmIG11bHRpcGxlIFJlZ2lz dGVyT3BlcmFuZHMgc2hhcmUgYSBQYXJzZXJNYXRjaENsYXNzIGJ1dCBtYXAgdG8gZGlmZmVyZW50 ClJlZ2lzdGVyQ2xhc3Nlcywgb21pdCB0aGVtIGZyb20gdGhlIGdlbmVyYXRlZCBnZXRSZWdDbGFz c0Zyb21NYXRjaEtpbmQKbWFwcGluZyBmdW5jdGlvbi4gSSBvcmlnaW5hbGx5IHRyaWVkIHRvIGVt aXQgYW4gZXJyb3IgaGVyZSwgYnV0IGl0IHR1cm5zCm91dCB0aGVyZSBhcmUgbWFueSB0YXJnZXRz IHRoYXQgcmVseSBvbiBzaGFyaW5nIHRoZSBQYXJzZXJNYXRjaENsYXNzIHdpdGgKZGlmZmVyZW50 IChidXQgc2ltaWxhcikgUmVnaXN0ZXJDbGFzc2VzIHNvIGlnbm9yaW5nIHRoZW0gaXMgc2FmZXIu CgpSZXZpZXdlZCBCeTogbGVuYXJ5CgpQdWxsIFJlcXVlc3Q6IGh0dHBzOi8vZ2l0aHViLmNvbS9s bHZtL2xsdm0tcHJvamVjdC9wdWxsLzIwMDQ1MwpodHRwczovL2ludmVudC5rZGUub3JnL3F0L2Ns YW5nL2xsdm0vLS9jb21taXQvZGVlNzBhMGZjOTQ4Y2U5MDYwZjQyMjVlZTViNzA3YWY0Mjg3ZTVk YwoKR2l0IGNvbW1pdCAwZDFiNTQ2MDRkYWM3M2FkYzE2YWYxNWY0MzNhZTBjOTIwNjlmY2MyIGJ5 IEdpdEh1YiAob24gYmVoYWxmIG9mIEFsZXhhbmRlciBSaWNoYXJkc29uKSBvbiAwNC8wOC8yMDI2 IGF0IDE5OjU3Li4KW1RhYmxlR2VuXVtBc21NYXRjaGVyXSBSZXNvbHZlIFJlZ0NsYXNzQnlId01v ZGUga2luZHMgZm9yIGFsbCBvcGVyYW5kcwoKdmFsaWRhdGVPcGVyYW5kQ2xhc3MoKSBvbmx5IHJl bWFwcGVkIGEgUmVnQ2xhc3NCeUh3TW9kZSBvcGVyYW5kIGtpbmQKd2hlbiB0aGUgYWN0dWFsIHBh cnNlZCBvcGVyYW5kIHdhcyBhIHJlZ2lzdGVyLiBXaGVuIHRoZSBvcGVyYW5kIHdhcwpzb21ldGhp bmcgZWxzZSBlbnRpcmVseSAoZS5nLiBhIGJhcmUgaW1tZWRpYXRlIHdoZXJlIGEgcmVnaXN0ZXIg d2FzCmV4cGVjdGVkKSwgdGhpcyBmZWxsIHRocm91Z2ggdG8gdGhlIGdlbmVyaWMgIktpbmQgPD0g TUNLX0xBU1RfUkVHSVNURVIiCmRpYWdub3N0aWMgY2hlY2ssIHNvIHdlIGVuZCB1cCB3aXRoIGEg Z2VuZXJpYyBNYXRjaF9JbnZhbGlkT3BlcmFuZC4KCk5vIHRlc3QgY2hhbmdlcyBoZXJlLCBidXQg dGhpcyBpcyBuZWVkZWQgdG8gYXZvaWQgZGlhZ25vc3RpYyByZWdyZXNzaW9ucwp3aXRoIHRoZSBS VlkgbG9hZC9zdG9yZSBzdXBwb3J0IChQUiAjMTc3MDczKS4KClB1bGwgUmVxdWVzdDogaHR0cHM6 Ly9naXRodWIuY29tL2xsdm0vbGx2bS1wcm9qZWN0L3B1bGwvMjEzNDc5Cmh0dHBzOi8vaW52ZW50 LmtkZS5vcmcvcXQvY2xhbmcvbGx2bS8tL2NvbW1pdC8wZDFiNTQ2MDRkYWM3M2FkYzE2YWYxNWY0 MzNhZTBjOTIwNjlmY2MyCgpHaXQgY29tbWl0IGM3NDBjNTQ1MTdmYWZkZmI2YTNkZDM1MjI3MDAw NzZkNTE4NGM4NDIgYnkgR2l0SHViIChvbiBiZWhhbGYgb2YgQWJoaW5hIFNyZWUpIG9uIDA0LzA4 LzIwMjYgYXQgMTk6NTcuLgpbU3lzdGVtWl1bei9PU10gQWRkIGd1YXJkIGZvciBTSV9VU0VSICAo IzIxMzEwMSkKClNJX1VTRVIgaXMgbm90IGRlZmluZWQgb24gei9PUyBhbmQgaXMgY2F1c2luZyB0 aGUgZm9sbG93aW5nIGJ1aWxkCmZhaWx1cmUuIGBlcnJvcjogdXNlIG9mIHVuZGVjbGFyZWQgaWRl bnRpZmllciAnU0lfVVNFUidgIApUaGlzIHBhdGNoIGFkZHMgYSBndWFyZCB0byBjaGVjayB3aGV0 aGVyIFNJX1VTRVIgaXMgZGVmaW5lZApiZWZvcmUgdXNpbmcgaXQuCmh0dHBzOi8vaW52ZW50Lmtk ZS5vcmcvcXQvY2xhbmcvbGx2bS8tL2NvbW1pdC9jNzQwYzU0NTE3ZmFmZGZiNmEzZGQzNTIyNzAw MDc2ZDUxODRjODQyCgpHaXQgY29tbWl0IDgzNDNjNTM4ZjBlN2VkZWU4YmZjMmM4MDBmNmQxYmZh ZWY2NjRjMTIgYnkgR2l0SHViIChvbiBiZWhhbGYgb2YgZm9ya2luZy1nb29nbGUtYmF6ZWwtYm90 W2JvdF0pIG9uIDA0LzA4LzIwMjYgYXQgMjA6MDkuLgpbQmF6ZWxdIEZpeGVzIDA0NzIyYTQgKCMy MTQwNDkpCgpUaGlzIGZpeGVzIDA0NzIyYTRhMzJlNmZlYzE4OTdjYzNjYjVhNTQ4MDlmY2Q4Yzlj YWUgKCMyMTE0MDkpLgoKQnVpbGRraXRlIGVycm9yIGxpbms6Cmh0dHBzOi8vYnVpbGRraXRlLmNv bS9sbHZtLXByb2plY3QvdXBzdHJlYW0tYmF6ZWwvYnVpbGRzP2NvbW1pdD0wNDcyMmE0YTMyZTZm ZWMxODk3Y2MzY2I1YTU0ODA5ZmNkOGM5Y2FlCgpDby1hdXRob3JlZC1ieTogR29vZ2xlIEJhemVs IEJvdCA8Z29vZ2xlLWJhemVsLWJvdEBnb29nbGUuY29tPgpodHRwczovL2ludmVudC5rZGUub3Jn L3F0L2NsYW5nL2xsdm0vLS9jb21taXQvODM0M2M1MzhmMGU3ZWRlZThiZmMyYzgwMGY2ZDFiZmFl ZjY2NGMxMgoKR2l0IGNvbW1pdCA0NGM2YWVkOWJkOWI5Y2RhOTkzZjRlOTNmMmNiZGI0ZmJiYTg5 MGQwIGJ5IEdpdEh1YiAob24gYmVoYWxmIG9mIFNwZW5jZXIgQnJ5bmdlbHNvbikgb24gMDQvMDgv MjAyNiBhdCAyMDoxNS4uCltmbGFuZ11bT3Blbk1QXSBEaWFnbm9zZSBmYWlsZWQgY29uc3RydWN0 IGRlY29tcG9zaXRpb24gaW5zdGVhZCBvZiBmYWxsaW5nIHRocm91Z2ggKCMyMTQwMTIpCgpgYnVp bGRDb25zdHJ1Y3RRdWV1ZWAgYXNzZXJ0cyB0aGF0IGRlY29tcG9zaXRpb24gcHJvZHVjZWQgb3V0 cHV0OgoKYGBgY3BwCkNvbnN0cnVjdERlY29tcG9zaXRpb24gZGVjb21wb3NlKG1vZE9wLCBzZW1h Q3R4LCBldmFsLCBjb21wb3VuZCwgY2xhdXNlcyk7CmFzc2VydCghZGVjb21wb3NlLm91dHB1dC5l bXB0eSgpICYmICJDb25zdHJ1Y3QgZGVjb21wb3NpdGlvbiBmYWlsZWQiKTsKYGBgCgpSZWxlYXNl IGJ1aWxkcyBoYXZlIG5vIGNoZWNrLCBzbyB0aGUgZW1wdHkgcXVldWUgZmFsbHMgdGhyb3VnaCB0 byB0aGUKbG9vcCBiZWxvdyBhbmQgb3V0IHRvIHRoZQpjYWxsZXIuIFRoYXQgaXMgdW5kZWZpbmVk IGJlaGF2aW91ciwgYW5kIGl0IGlzIHJlYWNoYWJsZSDigJQgc2VtYW50aWNzCmRvZXMgbm90IGNh dGNoIGV2ZXJ5CmRpcmVjdGl2ZS9jbGF1c2UgY29tYmluYXRpb24gdGhhdCBjYW5ub3QgYmUgZGVj b21wb3NlZC4gVGhlIHJlc3VsdCBpcyBhbgppbnRlcm1pdHRlbnQgc2VnZmF1bHQKcmF0aGVyIHRo YW4gYSBkaWFnbm9zdGljLgoKIzIxMTQzMCBpcyBvbmUgd2F5IGluOiBgYWxsb2NhdGVgIGlzIGFu IE9wZW5NUCA1LjAgY2xhdXNlLCBidXQgbW9zdApkaXJlY3RpdmVzIGRlY2xhcmUgaXQgaW4KYE9N UC50ZGAgd2l0aG91dCBhIG1pbmltdW0gdmVyc2lvbiwgc28gc2VtYW50aWNzIGFjY2VwdHMgaXQg YmVsb3cgNS4wCmFuZCBkZWNvbXBvc2l0aW9uIHRoZW4KY29ycmVjdGx5IHJlZnVzZXMgaXQuIGZs YW5nIGRlZmF1bHRzIHRvIE9wZW5NUCAzLjEsIHNvIG5vIHVudXN1YWwgZmxhZ3MKYXJlIG5lZWRl ZC4gVGhlCmludGVybWl0dGVuY3kgaXMgd2hhdCBtYWRlIHRoYXQgcmVwb3J0IGhhcmQgdG8gcGlu IGRvd24g4oCUIDQwIHRyaWFscyBhdApgLWZvcGVubXAtdmVyc2lvbj0zMWA6Cgp8IHwgc2VnZmF1 bHRzIHwKfC0tLXwtLS18CnwgQVNMUiBvbiB8IDI1LzQwIHwKfCBBU0xSIG9mZiAoYHNldGFyY2gg LVJgKSB8IDAvNDAgfAoKd2hpY2ggaXMgYW4gdW5pbml0aWFsaXplZCByZWFkLgoKQWZ0ZXIgdGhp cyBwYXRjaCB0aGUgc2FtZSBpbnB1dCBmYWlscyBkZXRlcm1pbmlzdGljYWxseSB3aXRoIGEgbG9j YXRlZApkaWFnbm9zdGljLCA0MC80MDoKCmBgYAplcnJvcjogbG9jKCJyZXByby5mOTAiOjY6MTEp OiBPcGVuTVAgY29uc3RydWN0IGRlY29tcG9zaXRpb24gZmFpbGVkOiBhIGNsYXVzZSBvbgogICAg ICAgJ3RhcmdldCB0ZWFtcyBkaXN0cmlidXRlIHBhcmFsbGVsIGRvJyBjYW5ub3QgYmUgYXBwbGll ZCB0byBhbnkgb2YgaXRzIGxlYWYgY29uc3RydWN0cwpgYGAKCmBnZW5DcmFzaERpYWc9ZmFsc2Vg IHNvIGl0IGV4aXRzIG5vbi16ZXJvIHdpdGhvdXQgYSBiYWNrdHJhY2UsIHJhdGhlcgp0aGFuIHBy ZXNlbnRpbmcgYXMgYSBjb21waWxlcgpjcmFzaC4KClRoaXMgaXMgYSBoYXJkZW5pbmcgZml4IGZv ciB0aGUgbG93ZXJpbmcgcGF0aCBhbmQgaXMgaW5kZXBlbmRlbnQgb2YgYW55CnBhcnRpY3VsYXIg Y2xhdXNlOiBpdCBjb3ZlcnMKZXZlcnkgY29tYmluYXRpb24gdGhhdCBkZWNvbXBvc2VzIGVtcHR5 LiBJdCBkb2VzIG5vdCBtYWtlIHRoZSBgYWxsb2NhdGVgCmNhc2UgYSAqZ29vZCogZGlhZ25vc3Rp YyDigJQKdGhhdCBiZWxvbmdzIGluIHNlbWFudGljcywgYW5kICMyMTM5ODAgaXMgdGhlIHNlcGFy YXRlIGNoYW5nZSBmb3IgaXQuCgpgY2hlY2stZmxhbmdgIGlzIGNsZWFuICg0ODA4IHRlc3RzKS4g Tm8gdGVzdCBpcyBhZGRlZDogdGhlIG9ubHkgaW4tdHJlZQp3YXkgdG8gcmVhY2ggdGhpcyBwYXRo IGlzCnRocm91Z2ggdGhlIGBPTVAudGRgIGdhcCB0aGF0ICMyMTM5ODAgZml4ZXMsIHNvIGEgdGVz dCBoZXJlIHdvdWxkIGVuY29kZQp0aGF0IGdhcCBhcyBleHBlY3RlZApiZWhhdmlvdXIgYW5kIGhh dmUgdG8gYmUgcmVtb3ZlZCB3aGVuIGl0IGxhbmRzLiBIYXBweSB0byBhZGQgb25lIGlmCnlvdSdk IHByZWZlci4KCgotLS0KClBhcnRzIG9mIHRoaXMgY2hhbmdlIHdlcmUgd3JpdHRlbiBvciBhdWRp dGVkIHdpdGggQ2xhdWRlIENvZGUuIEkgaGF2ZQpyZXZpZXdlZCBhbGwgb2YgaXQgYW5kIHRha2UK ZnVsbCByZXNwb25zaWJpbGl0eSBmb3IgdGhlIGNvbnRyaWJ1dGlvbi4gU2VlCmBsbHZtL2RvY3Mv QUlUb29sUG9saWN5Lm1kYC4KaHR0cHM6Ly9pbnZlbnQua2RlLm9yZy9xdC9jbGFuZy9sbHZtLy0v Y29tbWl0LzQ0YzZhZWQ5YmQ5YjljZGE5OTNmNGU5M2YyY2JkYjRmYmJhODkwZDAKCkdpdCBjb21t aXQgODNmYjcyYTkwNGU4MjMxYmY2ODc5MDc2YjljMTBiZGJmMjVlNDc0NCBieSBHaXRIdWIgKG9u IGJlaGFsZiBvZiBBcnRodXIgRXViYW5rcykgb24gMDQvMDgvMjAyNiBhdCAyMDoyMC4uCltEV1Bd IEVhZ2VybHkgY2xlYXIgYnVmZmVycyBhZnRlciB3cml0aW5nICgjMjEzMzQ1KQoKTG93ZXJzIHBl YWsgbWVtb3J5IHVzYWdlIG9uIGEgbGx2bS1kd3AgaW52b2NhdGlvbiBmcm9tIDEyLjM3R0IgLT4K MTEuMTlHQi4KClRoaXMgYWN0dWFsbHkgbm93IGJlYXRzIG91dCBHTlUgZHdwICgxMS4zNUdCKSBh dCBsZWFzdCB3aGVuIHRoZSBvdXRwdXQKZmlsZSBpcyBpbiB0bXBmcy4KaHR0cHM6Ly9pbnZlbnQu a2RlLm9yZy9xdC9jbGFuZy9sbHZtLy0vY29tbWl0LzgzZmI3MmE5MDRlODIzMWJmNjg3OTA3NmI5 YzEwYmRiZjI1ZTQ3NDQKCkdpdCBjb21taXQgZDUyZTk4ODE0YzQxNDg3ZTU2MzVhMTg2ZDk3YmY1 ODAzZTIwMjQ1NyBieSBHaXRIdWIgKG9uIGJlaGFsZiBvZiBIZW5yeSBKaWFuZykgb24gMDQvMDgv MjAyNiBhdCAyMDoyNS4uCltORkNdW0FNREdQVV0gRml4IGV4aXQgY29kZSBtaXNtYXRjaCB3aXRo IEVYUEVOU0lWRV9DSEVDSyBpbiBzY2hlZHVsZeKApiAoIzIxNDAyNykKCuKApi1hbWRncHUtdHJh Y2tlci1waHlzcmVnLWNyYXNoLmxsCgpPYnNlcnZlZCBpbgpodHRwczovL2NpLnN3aWZ0Lm9yZy9q b2IvbGx2bS5vcmcvam9iL2NsYW5nLXN0YWdlMS1SQS1leHBlbnNpdmUvam9iL21haW4vMTE1NQp3 aXRoIExMVk1fRU5BQkxFX0VYUEVOU0lWRV9DSEVDS1MgZW5hYmxlZCwKYENvZGVHZW4vQU1ER1BV L3NjaGVkdWxlLWFtZGdwdS10cmFja2VyLXBoeXNyZWctY3Jhc2gubGxgIGZhaWxzIGR1ZSB0bwpN YWNoaW5lVmVyaWZpZXIgcnVubmluZywgY2F1c2luZyBhbiBleGl0IDEuCgpNb2RpZmllZCB0byBh bHdheXMgcnVuIHRoZSBgLXZlcmlmeS1tYWNoaW5laW5zdHJzYC4KCnJkYXI6Ly8xODQwMTA3NjYK aHR0cHM6Ly9pbnZlbnQua2RlLm9yZy9xdC9jbGFuZy9sbHZtLy0vY29tbWl0L2Q1MmU5ODgxNGM0 MTQ4N2U1NjM1YTE4NmQ5N2JmNTgwM2UyMDI0NTcKCkdpdCBjb21taXQgZjIwYjY0ZmZlNWM4MWUw ZWYzNWJjZjk5OTBmNjBhMWZmOTE1N2Y3YiBieSBHaXRIdWIgKG9uIGJlaGFsZiBvZiBEbWl0cnkg VmFzaWx5ZXYpIG9uIDA0LzA4LzIwMjYgYXQgMjA6MjYuLgpbbGxkYl0gRGlzYWJsZSBUZXN0UHJv Y2Vzc1NhdmVDb3JlTWluaWR1bXBTaXplTWlzbWF0Y2ggb24gV2luZG93cyBob3N0cyAoIzIxNDA0 NCkKClRoZSBidWlsZGJvdApbbGxkYi1yZW1vdGUtbGludXgtd2luXShodHRwczovL2xhYi5sbHZt Lm9yZy9idWlsZGJvdC8jL2J1aWxkZXJzLzE5NykgaXMKcmVkIGFmdGVyICMyMTI4NjEuICMyMTI4 NjEgY2Fubm90IGJlIHJldmVydGVkIGF1dG9tYXRpY2FsbHkgbm93IGJlY2F1c2Ugb2YKIzIxMjY0 MS4gU28gZGlzYWJsZSBUZXN0UHJvY2Vzc1NhdmVDb3JlTWluaWR1bXBTaXplTWlzbWF0Y2ggb24g V2luZG93cwpob3N0cyB0byBtYWtlIHRoZSBidWlsZGJvdCBncmVlbiBhZ2Fpbi4KaHR0cHM6Ly9p bnZlbnQua2RlLm9yZy9xdC9jbGFuZy9sbHZtLy0vY29tbWl0L2YyMGI2NGZmZTVjODFlMGVmMzVi Y2Y5OTkwZjYwYTFmZjkxNTdmN2IKCkdpdCBjb21taXQgMDNmODZjNmQ0ZDU1ODA5Zjk1MzFiNWUz N2ViODI0OWU1Njk3NDZhYSBieSBHaXRIdWIgKG9uIGJlaGFsZiBvZiBEYXZpZCBZb3VuZykgb24g MDQvMDgvMjAyNiBhdCAyMDozMi4uCltTdXBwb3J0XVtEcml2ZXJdW0xMREJdIEd1YXJkIFdJTjMy X0xFQU5fQU5EX01FQU4gZGVmaW5pdGlvbnMgd2l0aCAjaWZuZGVmICgjMjEzMDQ1KQoKU2V2ZXJh bCBXaW5kb3dzIGhlYWRlcnMvVFVzIHVuY29uZGl0aW9uYWxseSBgI2RlZmluZQpXSU4zMl9MRUFO X0FORF9NRUFOYC4gV2hlbiBhIGJ1aWxkIHByZWRlZmluZXMgdGhlIG1hY3JvIG9uIHRoZSBjb21w aWxlcgpjb21tYW5kIGxpbmUgKGUuZy4gYSB0b29sY2hhaW4gdGhhdCBwYXNzZXMgLURXSU4zMl9M RUFOX0FORF9NRUFOLCB3aGljaApjbGFuZyB0cmVhdHMgYXMgYCNkZWZpbmUgV0lOMzJfTEVBTl9B TkRfTUVBTiAxYCksIHRoZSBkaWZmZXJpbmcgdG9rZW4KbGlzdHMgdHJpZ2dlciAtV21hY3JvLXJl ZGVmaW5lZCwgd2hpY2ggYmVjb21lcyBhIGhhcmQgZXJyb3IgdW5kZXIKLVdlcnJvci4KCkd1YXJk IHRoZSBkZWZpbml0aW9ucyB3aXRoICNpZm5kZWYsIG1hdGNoaW5nIHRoZSBhZGphY2VudCBOT01J Tk1BWApoYW5kbGluZyBhbmQgdGhlIGV4aXN0aW5nIHBhdHRlcm4gaW4KbGx2bS9saWIvU3VwcG9y dC9ycG1hbGxvYy9ycG1hbGxvYy5jLiBUaGUgbWFjcm8gaXMgb25seSBhIHByZXNlbmNlIGZsYWcs CnNvIGtlZXBpbmcgYW4gZXh0ZXJuYWxseS1wcm92aWRlZCBkZWZpbml0aW9uIGlzIGNvcnJlY3Qu CgpTaXRlcyBndWFyZGVkOgogIGxsdm0vaW5jbHVkZS9sbHZtL1N1cHBvcnQvV2luZG93cy9XaW5k b3dzU3VwcG9ydC5oCiAgbGx2bS9saWIvV2luZG93c0RyaXZlci9NU1ZDUGF0aHMuY3BwCiAgY2xh bmcvbGliL0RyaXZlci9Ub29sQ2hhaW5zL01TVkMuY3BwCiAgbGxkYi9pbmNsdWRlL2xsZGIvSG9z dC93aW5kb3dzL3dpbmRvd3MuaAoKTWV0YSByYW4gaW50byB0aGlzIGludGVybmFsbHkgYnVpbGRp bmcgbGxkYiBvbiB3aW5kb3cgYWZ0ZXIgYSBzeW5jIHdpdGgKdXBzdHJlYW0gZnJvbSBKdWx5IGNv bW1pdCwgc28gYWRkaW5nIGd1YXJkcyB3b3VsZCBhbGxvdyB1cyB0byBkcm9wIGEKd29ya2Fyb3Vu ZCBvZiBpZ25vcmluZyB0aGUgZHVwbGljYXRlIGRlZmluZXMuCgpFcnJvcjoKbGx2bVxpbmNsdWRl XGxsdm0vU3VwcG9ydC9XaW5kb3dzL1dpbmRvd3NTdXBwb3J0LmgoMjksOSk6IGVycm9yOgonV0lO MzJfTEVBTl9BTkRfTUVBTicgbWFjcm8gcmVkZWZpbmVkIFstV2Vycm9yLC1XbWFjcm8tcmVkZWZp bmVkXQogICAyOSB8ICNkZWZpbmUgV0lOMzJfTEVBTl9BTkRfTUVBTgogICAgICB8ICAgICAgICAg Xgo8Y29tbWFuZCBsaW5lPigxMCw5KTogbm90ZTogcHJldmlvdXMgZGVmaW5pdGlvbiBpcyBoZXJl CiAgIDEwIHwgI2RlZmluZSBXSU4zMl9MRUFOX0FORF9NRUFOIDEKICAgICAgfCAgICAgICAgIF4K MSBlcnJvciBnZW5lcmF0ZWQuCmh0dHBzOi8vaW52ZW50LmtkZS5vcmcvcXQvY2xhbmcvbGx2bS8t L2NvbW1pdC8wM2Y4NmM2ZDRkNTU4MDlmOTUzMWI1ZTM3ZWI4MjQ5ZTU2OTc0NmFhCgpHaXQgY29t bWl0IDQ2YjhlYjg2MTM1MmQwZDM0NjIzYTMxMzllZDExZGU3NjMzMTczMjMgYnkgR2l0SHViIChv biBiZWhhbGYgb2YgTmlraXRhIFRlcmVudGV2KSBvbiAwNC8wOC8yMDI2IGF0IDIwOjM5Li4KW05G Q11bQ2xhbmddW0RvY3NdIEZpeCBtaW5vciB0eXBvcyBpbiBDb25zdGFudCBJbnRlcnByZXRlciBk b2MuICgjMjExNjA4KQoKRmlyc3Q6IFR5cG8gaXMgb2J2aW91cy4gClNlY29uZDogSW4gdGhlIGV4 YW1wbGUsIHRoZSBhLnkgZmllbGQgaXMgbWlzc2luZyBhbmQgZmllbGQgYS5iLnkgaXMKcmVxdWly ZWQuCmh0dHBzOi8vaW52ZW50LmtkZS5vcmcvcXQvY2xhbmcvbGx2bS8tL2NvbW1pdC80NmI4ZWI4 NjEzNTJkMGQzNDYyM2EzMTM5ZWQxMWRlNzYzMzE3MzIzCgpHaXQgY29tbWl0IDIxNzhkYjZkM2Rl NGFkOWZiOTc5NGY1NWU2ZDZkMzhjZGYyYjAzNDcgYnkgR2l0SHViIChvbiBiZWhhbGYgb2YgVGlt dXIgR29sdWJvdmljaCkgb24gMDQvMDgvMjAyNiBhdCAyMDo0Mi4uCltYODZdIEhhbmRsZSBtdWx0 aS11c2Ugc2V0Y2MgaW4gY29tbXV0ZVNlbGVjdCAoIzIxMzY0NSkKCldoZW4gYSBzZXRjYyBjb25k aXRpb24gaXMgc2hhcmVkIGJldHdlZW4gbXVsdGlwbGUgdnNlbGVjdHMsCmNvbW11dGVTZWxlY3Qg cHJldmlvdXNseSBiYWlsZWQgb3V0IGR1ZSB0byB0aGUgbV9PbmVVc2UgY29uc3RyYWludC4KRXh0 ZW5kIGl0IHRvIGNoZWNrIGFsbCB1c2VycyBvZiB0aGUgc2V0Y2MgYW5kLCBpZiB0aGV5IGFsbCBi ZW5lZml0IGZyb20KY29tbXV0aW5nLCBpbnZlcnQgdGhlIGNvbmRpdGlvbiBvbmNlIHdpdGggUmVw bGFjZUFsbFVzZXNPZlZhbHVlV2l0aCBhbmQKc3dhcCBhbGwgdnNlbGVjdCBvcGVyYW5kcy4KClRo aXMgZml4ZXMgYSB3cml0ZS1tYXNrIGZ1c2lvbiByZWdyZXNzaW9uIHdoZXJlIG1hc2tlZCBtaW4v bWF4CnJlZHVjdGlvbnMgcHJvZHVjZWQgdW5mdXNlZCB2bWlucHMgKyB2bW92YXBzIHsla30gaW5z dGVhZCBvZiBhIHNpbmdsZQp3cml0ZS1tYXNrZWQgdm1pbnBzIHsla30uCmh0dHBzOi8vaW52ZW50 LmtkZS5vcmcvcXQvY2xhbmcvbGx2bS8tL2NvbW1pdC8yMTc4ZGI2ZDNkZTRhZDlmYjk3OTRmNTVl NmQ2ZDM4Y2RmMmIwMzQ3CgpHaXQgY29tbWl0IGFhNzY5NjNlYzAzOWY0ODVkMDVjMTIzNWJhYzVh NWVkZjM2MDUzNzggYnkgR2l0SHViIChvbiBiZWhhbGYgb2YgU2ltb24gUGlsZ3JpbSkgb24gMDQv MDgvMjAyNiBhdCAyMDo0My4uCltYODZdIExvd2VyUEFSSVRZIC0gdXNlIGNvdW50TWF4QWN0aXZl Qml0cyB0byBkZXRlcm1pbmUgaWYgcmVwcmVzZW50YWJsZSBhcyB1aW50OF90LiBORkMuICgjMjE0 MDU2KQoKTXVjaCBjbGVhbmVyIHRoYW4gdXNpbmcgdGhlIE1hc2tlZFZhbHVlSXNaZXJvIGNoZWNr LgoKRml4IGk2NCAtPiB4b3IoaTMyLGkzMikgcGFyaXR5IHN0YWdlIGNvbW1lbnQgYXMgd2VsbC4K aHR0cHM6Ly9pbnZlbnQua2RlLm9yZy9xdC9jbGFuZy9sbHZtLy0vY29tbWl0L2FhNzY5NjNlYzAz OWY0ODVkMDVjMTIzNWJhYzVhNWVkZjM2MDUzNzgKCkdpdCBjb21taXQgY2Q0NTlmMjQ2NmU0MDhl YmY5ZGNkNDU1YzU4YTQzOTUyZDZhNTkwMyBieSBHaXRIdWIgKG9uIGJlaGFsZiBvZiBGYXJ6b24g TG90ZmkpIG9uIDA0LzA4LzIwMjYgYXQgMjA6NDcuLgpbU1BJUlZdIFNwbGl0IHdpZGUgc2hhZGVy IFBISXMgYmVmb3JlIGFwcGx5aW5nIGV4cGxpY2l0IHN1cHBvcnRlZCB0eXBlcyAoIzIxMzgwNikK CmZpeGVzICMyMTM4MDIKCkFwcGx5IHRoZSBtYXhpbXVtLXZlY3Rvci1zaXplIHJ1bGUgYmVmb3Jl IHRoZSBleHBsaWNpdCBQSEkgbGVnYWxpdHkKcnVsZXMgZm9yIHR5cGUuIFRoaXMgd2F5IGlmIHdl IHNlZSBhIHNpemUgMTYgdmVjdG9yIHdlIHNwbGl0IGl0CmJlZm9yZWhhbmQuCgpJbiBtb3JlIHBy ZWNpc2Ugd29yZHMgdGhpcyBwcmVzZXJ2ZXMgZXhpc3RpbmcgbGVnYWxpdHkgcnVsZXMgd2hpbGUK ZW5zdXJpbmcgc2hhZGVyIFBISXMgd2lkZXIgdGhhbiBmb3VyIGxhbmVzIGFyZSBzcGxpdCBmaXJz dC4KCkFzc2lzdGVkIGJ5IENvcGlsb3QgKEdQVCA1LjYgU29sKQpodHRwczovL2ludmVudC5rZGUu b3JnL3F0L2NsYW5nL2xsdm0vLS9jb21taXQvY2Q0NTlmMjQ2NmU0MDhlYmY5ZGNkNDU1YzU4YTQz OTUyZDZhNTkwMwoKR2l0IGNvbW1pdCA0ZWYyZTc1Nzg1ZDcxYTlhYjg2ODJiZjJmNmI0Y2NjMjIz YmE1NjhjIGJ5IEdpdEh1YiAob24gYmVoYWxmIG9mIEVyaWMgQ2hyaXN0b3BoZXIpIG9uIDA0LzA4 LzIwMjYgYXQgMjE6MDkuLgpbRmlsZUNoZWNrXSBBdm9pZCBtYXRjaGluZyBJUiBrZXl3b3JkcyBp biBzb3VyY2UgZmlsZW5hbWVzICgjMjEzODA5KQoKQW5jaG9yIGNoZWNrcyBmb3IgZGVjbGFyZSwg ZGVmaW5lLCBhbmQgY29tZGF0IHRvIHRoZSBzdGFydCBvZiBsaW5lcyBvciBhbm90aGVyIGZpeHR1 cmUgc28KcGF0aHMgaW4gbW9kdWxlIGhlYWRlcnMgY2Fubm90IHNhdGlzZnkgb3IgaW52YWxpZGF0 ZSB0aGVtLgoKVGVzdGVkIHdpdGggbWFrZSBjaGVjay4KCkFzc2lzdGVkIGJ5IEFJLgpodHRwczov L2ludmVudC5rZGUub3JnL3F0L2NsYW5nL2xsdm0vLS9jb21taXQvNGVmMmU3NTc4NWQ3MWE5YWI4 NjgyYmYyZjZiNGNjYzIyM2JhNTY4YwoKR2l0IGNvbW1pdCA3OWFiMjE3ZGM0YTc2ODcxZGQwYzkz YmJjYjQyMzc0MTQwYzBlNDRhIGJ5IEF1c3RpbiBLZXJib3cgb24gMDQvMDgvMjAyNiBhdCAyMTox Ny4uCltBTURHUFVdIE1vZGVsIFdNTUEgY28tZXhlY3V0aW9uIHdpbmRvd3MgaW4gdGhlIHNjaGVk dWxlciBmb3IgZ2Z4MTI1MAoKV01NQSBpbnN0cnVjdGlvbnMgaW4gZ2Z4MTI1MCBleHBvc2VzIGFu IGV4ZWN1dGlvbiB3aW5kb3cgZHVyaW5nIHdoaWNoCm9ubHkgY2VydGFpbiBvdGhlciBpbnN0cnVj dGlvbiBjbGFzc2VzIG1heSBjby1leGVjdXRlLiBUZWFjaCB0aGUgaGF6YXJkCnJlY29nbml6ZXIg YWJvdXQgdGhvc2Ugd2luZG93cyBzbyB0aGUgc2NoZWR1bGVyIGNhbiBmaWxsIGNvLWV4ZWN1dGlv biBzbG90cyBhbmQKYWNjb3VudCBmb3IgdGhlIHJlc3VsdGluZyBzdGFsbHMuIFRoaXMgYWRkcyBh IHByZVJBIGhhemFyZCByZWNvZ25pemVyCm1vZGUuCgpBZGQgQU1ER1BVQ29FeGVjSW5mby5oLCBh IHNoYXJlZCBtb2RlbCBvZiBhIGNvLWV4ZWN1dGlvbiB3aW5kb3c6IHRoZQpwZXItc3RhZ2UgY2Fw YWJpbGl0eSBiaXRtYXNrLCB0aGUgc3RhZ2UgdHlwZXMgKENvRXhlY1N0YWdlVHlwZSksIGFuZApD b0V4ZWNJbmZvLCB3aGljaCBtYXBzIGEgbXVsdGktY3ljbGUgaW5zdHJ1Y3Rpb24gdG8gaXRzIHBl ci1jeWNsZSBzbG90CnBhdHRlcm4gdmlhIGdldENvRXhlY0luZm8oKS4gSW5zdHJ1Y3Rpb25GbGF2 b3IgYW5kIGl0cyBoZWxwZXJzIG1vdmUgaGVyZQpmcm9tIEFNREdQVUNvRXhlY1NjaGVkU3RyYXRl Z3kuaCB3aXRoIG5vIGZ1bmN0aW9uYWwgY2hhbmdlIHNvIHRoZXkgY2FuCmJlIHNoYXJlZCBieSB0 aGUgc2NoZWR1bGVyIGFuZCB0aGUgaGF6YXJkIHJlY29nbml6ZXIuCmh0dHBzOi8vaW52ZW50Lmtk ZS5vcmcvcXQvY2xhbmcvbGx2bS8tL2NvbW1pdC83OWFiMjE3ZGM0YTc2ODcxZGQwYzkzYmJjYjQy Mzc0MTQwYzBlNDRhCg==