From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Jan Kratochvil To: git-commits@fedoraproject.org Subject: [rpms/gdb] fix-dup-patch: Rebase to FSF GDB 7.7.91.20140721 (pre-7.8 snapshot). Date: Thu, 23 Jul 2026 18:31:28 GMT Message-ID: <178483148841.1.5214157771586783043.rpms-gdb-a972d47b4c2f@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: fix-dup-patch X-Git-Rev: a972d47b4c2f40fb5a7564a83e13ea31349bcc54 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvZ2RiCiAgICAgICAgICAgIEJyYW5jaCA6IGZpeC1kdXAtcGF0Y2gKICAgICAg ICAgICAgQ29tbWl0IDogYTk3MmQ0N2I0YzJmNDBmYjVhNzU2NGE4M2UxM2VhMzEzNDliY2M1NAog ICAgICAgICAgICBBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0 LmNvbT4KICAgICAgICAgICAgRGF0ZSAgIDogMjAxNC0wNy0yMlQyMDozODozOCswMjowMAogICAg ICAgICAgICBTdGF0cyAgOiArMTgxMS8tMTU5MCBpbiAxMCBmaWxlKHMpCiAgICAgICAgICAgIFVS TCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvZ2RiL2MvYTk3MmQ0N2I0 YzJmNDBmYjVhNzU2NGE4M2UxM2VhMzEzNDliY2M1ND9icmFuY2g9Zml4LWR1cC1wYXRjaAoKICAg ICAgICAgICAgTG9nOgogICAgICAgICAgICBSZWJhc2UgdG8gRlNGIEdEQiA3LjcuOTEuMjAxNDA3 MjEgKHByZS03Ljggc25hcHNob3QpLgoKLSBSZWJhc2UgdGhlIEludGVsIFZMQSBwYXRjaHNldC4K LSBOZXcgZml4IG9mIHRoZSBvcHRpbWl6ZWQtb3V0IGVudHJ5IGRhdGEgdmFsdWVzIGNyYXNoIChC WiAxMTExOTEwKS4KLSBbdGVzdHN1aXRlXSBGaXggcGFnaW5hdGUtKi5leHAgcmFjZSBmb3IgInJl YWQxIi4KCi0tLQpkaWZmIC0tZ2l0IGEvLmdpdGlnbm9yZSBiLy5naXRpZ25vcmUKaW5kZXggMWUy NGI4NS4uYmIwZDdhNyAxMDA2NDQKLS0tIGEvLmdpdGlnbm9yZQorKysgYi8uZ2l0aWdub3JlCkBA IC0xLDIgKzEsMiBAQAogL2dkYi1saWJzdGRjKystdjMtcHl0aG9uLXIxNTU5NzgudGFyLmJ6Mgot L2dkYi03LjcuOTAuMjAxNDA3MTEudGFyLmJ6MgorL2dkYi03LjcuOTEuMjAxNDA3MjEudGFyLmJ6 MgoKZGlmZiAtLWdpdCBhL2dkYi1lbnRyeWRhdGFvcHRpbWl6ZWRvdXQucGF0Y2ggYi9nZGItZW50 cnlkYXRhb3B0aW1pemVkb3V0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBj MjhmZjNhLi4wMDAwMDAwCi0tLSBhL2dkYi1lbnRyeWRhdGFvcHRpbWl6ZWRvdXQucGF0Y2gKKysr IC9kZXYvbnVsbApAQCAtMSwxMDU2ICswLDAgQEAKLWh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9n ZGItcGF0Y2hlcy8yMDE0LTA3L21zZzAwMjc3Lmh0bWwKLVN1YmplY3Q6IFtwYXRjaHYzXSBGaXgg Y3Jhc2ggb24gb3B0aW1pemVkLW91dCBlbnRyeSBkYXRhIHZhbHVlcwotCi0KLS0tRHhucTF6V1h2 RkYwUTkzdgotQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXVzLWFzY2lpCi1Db250 ZW50LURpc3Bvc2l0aW9uOiBpbmxpbmUKLQotT24gV2VkLCAwOSBKdWwgMjAxNCAxNzozMToyMSAr MDIwMCwgSmFuIEtyYXRvY2h2aWwgd3JvdGU6Ci0+IE9uIFdlZCwgMDkgSnVsIDIwMTQgMTM6NTI6 MDAgKzAyMDAsIFBlZHJvIEFsdmVzIHdyb3RlOgotPiA+IE9uIDA3LzA5LzIwMTQgMTE6MzMgQU0s IEphbiBLcmF0b2NodmlsIHdyb3RlOgotPiA+ID4gLS0tIGEvZ2RiL3ZhbHVlLmMKLT4gPiA+ICsr KyBiL2dkYi92YWx1ZS5jCi0+ID4gPiBAQCAtMTk4LDEyICsxOTgsMTMgQEAgc3RydWN0IHZhbHVl Ci0+ID4gPiAgICB1bnNpZ25lZCBpbnQgbGF6eSA6IDE7Ci0+ID4gPiAgCi0+ID4gPiAgICAvKiBJ ZiBub256ZXJvLCB0aGlzIGlzIHRoZSB2YWx1ZSBvZiBhIHZhcmlhYmxlIHRoYXQgZG9lcyBub3QK LT4gPiA+IC0gICAgIGFjdHVhbGx5IGV4aXN0IGluIHRoZSBwcm9ncmFtLiAgSWYgbm9uemVybywg YW5kIExWQUwgaXMKLT4gPiA+ICsgICAgIGFjdHVhbGx5IGZ1bGx5IGV4aXN0IGluIHRoZSBwcm9n cmFtLiAgSWYgbm9uemVybywgYW5kIExWQUwgaXMKLT4gPiA+ICAgICAgIGx2YWxfcmVnaXN0ZXIs IHRoaXMgaXMgYSByZWdpc3RlciAoJHBjLCAkc3AsIGV0Yy4sIG5ldmVyIGEKLT4gPiA+ICAgICAg IHByb2dyYW0gdmFyaWFibGUpIHRoYXQgaGFzIG5vdCBiZWVuIHNhdmVkIGluIHRoZSBmcmFtZS4g IEFsbAotPiA+ID4gICAgICAgb3B0aW1pemVkLW91dCB2YWx1ZXMgYXJlIHRyZWF0ZWQgcHJldHR5 IG11Y2ggdGhlIHNhbWUsIGV4Y2VwdAotPiA+ID4gICAgICAgcmVnaXN0ZXJzIGhhdmUgYSBkaWZm ZXJlbnQgc3RyaW5nIHJlcHJlc2VudGF0aW9uIGFuZCByZWxhdGVkCi0+ID4gPiAtICAgICBlcnJv ciBzdHJpbmdzLiAgKi8KLT4gPiA+ICsgICAgIGVycm9yIHN0cmluZ3MuICBJdCBpcyB0cnVlIGFs c28gZm9yIG9ubHkgcGFydGlhbGx5IG9wdGltaXplZAotPiA+ID4gKyAgICAgb3V0IHZhcmlhYmxl cyAtIHNlZSB0aGUgJ3VuYXZhaWxhYmxlJyBmaWVsZCBiZWxvdy4gICovCi0+ID4gPiAgICB1bnNp Z25lZCBpbnQgb3B0aW1pemVkX291dCA6IDE7Ci0+ID4gPiAgCi0+ID4gPiAgICAvKiBJZiB2YWx1 ZSBpcyBhIHZhcmlhYmxlLCBpcyBpdCBpbml0aWFsaXplZCBvciBub3QuICAqLwotPiA+ID4gQEAg LTMzNCw3ICszMzUsMTAgQEAgc3RydWN0IHZhbHVlCi0+ID4gPiAgICAgICB2YWxpZCBpZiBsYXp5 IGlzIG5vbnplcm8uICAqLwotPiA+ID4gICAgZ2RiX2J5dGUgKmNvbnRlbnRzOwotPiA+ID4gIAot PiA+ID4gLSAgLyogVW5hdmFpbGFibGUgcmFuZ2VzIGluIENPTlRFTlRTLiAgV2UgbWFyayB1bmF2 YWlsYWJsZSByYW5nZXMsCi0+ID4gPiArICAvKiBJZiBPUFRJTUlaRURfT1VUIGlzIGZhbHNlIHRo ZW4gVU5BVkFJTEFCTEUgbXVzdCBiZSBWRUNfZW1wdHkKLT4gPiA+ICsgICAgIChub3QgbmVjZXNz YXJpbHkgTlVMTCkuICAKLT4gPiAKLT4gPiBIbW0sIHdoeT8gIFdlIGNhbiBjb2xsZWN0IG9ubHkg cGFydCBvZiBhIG5vbi1vcHRpbWl6ZWQgb3V0IHZhbHVlLgotPiA+IFdoYXQgYW0gSSBtaXNzaW5n PwotPiAKLT4gSSBtaXNzIHNvbWUgZG9jdW1lbnRhdGlvbiBob3cgdGhlc2UgYXZhaWxhYmlsaXR5 IGZpZWxkcyBpbnRlcmFjdCB0b2dldGhlci4KLQotPkZyb20gYSBjb21tZW50IGluIG1haWwKLQlN ZXNzYWdlLUlkOiA8MjAxMTAyMDcxNDI3LjU1OTcwLnBlZHJvQGNvZGVzb3VyY2VyeS5jb20+Ci0J V2UgZ2l2ZSBwcmVmZXJlbmNlIHRvIHByaW50aW5nIDxvcHRpbWl6ZWQgb3V0PiByYXRoZXIKLQl0 aGFuIDx1bmF2YWlsYWJsZT4sIHNpbmNlIGlmIGEgdmFsdWUgaGFkIGJlZW4gb3B0aW1pemVkIG91 dAotCWF0IGNvbXBpbGUgdGltZSwgaXQgY2FuIG5ldmVyIGJlIGNvbGxlY3RlZCBhdCBydW4tdGlt ZS4KLQotaXQgc2VlbXMgaXQgaXMganVzdCByZXZlcnNlZCwgdGhhdCAndW5hdmFpbGFibGUnIGNh biBleGlzdCBvbmx5IGZvcgotIW9wdGltaXplZF9vdXQgYW5kIGl0IGNhbm5vdCBleGlzdCBmb3Ig Zm9yIG9wdGltaXplZF9vdXQgdmFsdWVzLgotCi0KLT4gWW91IGFyZSByaWdodCwgdGhpcyBwYXRj aCByZWdyZXNzZXMgZHVyaW5nIGdkYnNlcnZlciBtb2RlLgotCi1JdCBQQVNTZXMgbm93IGV2ZW4g aW4gZ2Ric2VydmVyIG1vZGUuCi0KLQotVGhhbmtzLAotSmFuCi0KLS0tRHhucTF6V1h2RkYwUTkz dgotQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXVzLWFzY2lpCi1Db250ZW50LURp c3Bvc2l0aW9uOiBpbmxpbmU7IGZpbGVuYW1lPSJvcHRpbWZpeDMucGF0Y2giCi0KLWdkYi8KLTIw MTQtMDctMDkgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLQot CSogdmFsdWUuYyAoc3RydWN0IHZhbHVlKTogRXh0ZW5kIHRoZSBjb21tZW50IGZvciBmaWVsZHMg b3B0aW1pemVkX291dAotCWFuZCB1bmF2YWlsYWJsZS4KLQkodmFsdWVfYXZhaWxhYmxlX2NvbnRl bnRzX2JpdHNfZXEpOiBIYW5kbGUgT1BUSU1JWkVEX09VVCB2YWx1ZXMgYXMKLQlzcGVjaWFsIGNh c2VzLgotCi1nZGIvdGVzdHN1aXRlLwotMjAxNC0wNy0wOSAgSmFuIEtyYXRvY2h2aWwgIDxqYW4u a3JhdG9jaHZpbEByZWRoYXQuY29tPgotCi0JKiBnZGIuYXJjaC9hbWQ2NC1lbnRyeS12YWx1ZS1w YXJhbXJlZi5TOiBOZXcgZmlsZS4KLQkqIGdkYi5hcmNoL2FtZDY0LWVudHJ5LXZhbHVlLXBhcmFt cmVmLmNjOiBOZXcgZmlsZS4KLQkqIGdkYi5hcmNoL2FtZDY0LWVudHJ5LXZhbHVlLXBhcmFtcmVm LmV4cDogTmV3IGZpbGUuCi0JKiBnZGIuYXJjaC9hbWQ2NC1vcHRpbW91dC1yZXBlYXQuUzogTmV3 IGZpbGUuCi0JKiBnZGIuYXJjaC9hbWQ2NC1vcHRpbW91dC1yZXBlYXQuYzogTmV3IGZpbGUuCi0J KiBnZGIuYXJjaC9hbWQ2NC1vcHRpbW91dC1yZXBlYXQuZXhwOiBOZXcgZmlsZS4KLQotZGlmZiAt LWdpdCBhL2dkYi92YWx1ZS5jIGIvZ2RiL3ZhbHVlLmMKLWluZGV4IDU1NzA1NmYuLmMwMTdjNzUg MTAwNjQ0Ci0tLS0gYS9nZGIvdmFsdWUuYwotKysrIGIvZ2RiL3ZhbHVlLmMKLUBAIC0xOTgsMTIg KzE5OCwxNCBAQCBzdHJ1Y3QgdmFsdWUKLSAgIHVuc2lnbmVkIGludCBsYXp5IDogMTsKLSAKLSAg IC8qIElmIG5vbnplcm8sIHRoaXMgaXMgdGhlIHZhbHVlIG9mIGEgdmFyaWFibGUgdGhhdCBkb2Vz IG5vdAotLSAgICAgYWN0dWFsbHkgZXhpc3QgaW4gdGhlIHByb2dyYW0uICBJZiBub256ZXJvLCBh bmQgTFZBTCBpcwotKyAgICAgYWN0dWFsbHkgZXhpc3QgaW4gdGhlIHByb2dyYW0gYXQgYWxsLiAg SWYgbm9uemVybywgYW5kIExWQUwgaXMKLSAgICAgIGx2YWxfcmVnaXN0ZXIsIHRoaXMgaXMgYSBy ZWdpc3RlciAoJHBjLCAkc3AsIGV0Yy4sIG5ldmVyIGEKLSAgICAgIHByb2dyYW0gdmFyaWFibGUp IHRoYXQgaGFzIG5vdCBiZWVuIHNhdmVkIGluIHRoZSBmcmFtZS4gIEFsbAotICAgICAgb3B0aW1p emVkLW91dCB2YWx1ZXMgYXJlIHRyZWF0ZWQgcHJldHR5IG11Y2ggdGhlIHNhbWUsIGV4Y2VwdAot ICAgICAgcmVnaXN0ZXJzIGhhdmUgYSBkaWZmZXJlbnQgc3RyaW5nIHJlcHJlc2VudGF0aW9uIGFu ZCByZWxhdGVkCi0tICAgICBlcnJvciBzdHJpbmdzLiAgKi8KLSsgICAgIGVycm9yIHN0cmluZ3Mu ICBXaGVuIGl0IGlzIHplcm8gaXQgc3RpbGwgbWF5YmUgb25seSBwYXJ0aWFsbHkKLSsgICAgIGF2 YWlsYWJsZSAoZXF1YWxseSBwYXJ0aWFsbHkgb3B0aW1pemVkIG91dCkgLSBzZWUgdGhlCi0rICAg ICAndW5hdmFpbGFibGUnIGZpZWxkIGJlbG93LiAgKi8KLSAgIHVuc2lnbmVkIGludCBvcHRpbWl6 ZWRfb3V0IDogMTsKLSAKLSAgIC8qIElmIHZhbHVlIGlzIGEgdmFyaWFibGUsIGlzIGl0IGluaXRp YWxpemVkIG9yIG5vdC4gICovCi1AQCAtMzM0LDcgKzMzNiw5IEBAIHN0cnVjdCB2YWx1ZQotICAg ICAgdmFsaWQgaWYgbGF6eSBpcyBub256ZXJvLiAgKi8KLSAgIGdkYl9ieXRlICpjb250ZW50czsK LSAKLS0gIC8qIFVuYXZhaWxhYmxlIHJhbmdlcyBpbiBDT05URU5UUy4gIFdlIG1hcmsgdW5hdmFp bGFibGUgcmFuZ2VzLAotKyAgLyogSWYgT1BUSU1JWkVEX09VVCBpcyBub256ZXJvIHRoZW4gVU5B VkFJTEFCTEUgbXVzdCBiZSBWRUNfZW1wdHkKLSsgICAgIChub3QgbmVjZXNzYXJpbHkgTlVMTCku ICBPdGhlcndpc2UgaXQgc3BlY2lmaWVzCi0rICAgICB1bmF2YWlsYWJsZSByYW5nZXMgaW4gQ09O VEVOVFMuICBXZSBtYXJrIHVuYXZhaWxhYmxlIHJhbmdlcywKLSAgICAgIHJhdGhlciB0aGFuIGF2 YWlsYWJsZSwgc2luY2UgdGhlIGNvbW1vbiBhbmQgZGVmYXVsdCBjYXNlIGlzIGZvciBhCi0gICAg ICB2YWx1ZSB0byBiZSBhdmFpbGFibGUuICBUaGlzIGlzIGZpbGxlZCBpbiBhdCB2YWx1ZSByZWFk IHRpbWUuICBUaGUKLSAgICAgIHVuYXZhaWxhYmxlIHJhbmdlcyBhcmUgdHJhY2tlZCBpbiBiaXRz LiAgKi8KLUBAIC03MDEsNiArNzA1LDEzIEBAIHZhbHVlX2F2YWlsYWJsZV9jb250ZW50c19iaXRz X2VxIChjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbDEsIGludCBvZmZzZXQxLAotICAgLyogU2VlIGZ1 bmN0aW9uIGRlc2NyaXB0aW9uIGluIHZhbHVlLmguICAqLwotICAgZ2RiX2Fzc2VydCAoIXZhbDEt PmxhenkgJiYgIXZhbDItPmxhenkpOwotIAotKyAgZ2RiX2Fzc2VydCAoIXZhbDEtPm9wdGltaXpl ZF9vdXQgfHwgVkVDX2VtcHR5IChyYW5nZV9zLCB2YWwxLT51bmF2YWlsYWJsZSkpOwotKyAgZ2Ri X2Fzc2VydCAoIXZhbDItPm9wdGltaXplZF9vdXQgfHwgVkVDX2VtcHR5IChyYW5nZV9zLCB2YWwy LT51bmF2YWlsYWJsZSkpOwotKyAgaWYgKHZhbDEtPm9wdGltaXplZF9vdXQgIT0gdmFsMi0+b3B0 aW1pemVkX291dCkKLSsgICAgcmV0dXJuIDA7Ci0rICBpZiAodmFsMS0+b3B0aW1pemVkX291dCAm JiB2YWwyLT5vcHRpbWl6ZWRfb3V0KQotKyAgICByZXR1cm4gMTsKLSsKLSAgIHdoaWxlIChsZW5n dGggPiAwKQotICAgICB7Ci0gICAgICAgcmFuZ2VfcyAqcjEsICpyMjsKLWRpZmYgLS1naXQgYS9n ZGIvdGVzdHN1aXRlL2dkYi5hcmNoL2FtZDY0LWVudHJ5LXZhbHVlLXBhcmFtcmVmLlMgYi9nZGIv dGVzdHN1aXRlL2dkYi5hcmNoL2FtZDY0LWVudHJ5LXZhbHVlLXBhcmFtcmVmLlMKLW5ldyBmaWxl IG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi5hMWU5ZDBhCi0tLS0gL2Rldi9udWxsCi0rKysg Yi9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL2FtZDY0LWVudHJ5LXZhbHVlLXBhcmFtcmVmLlMKLUBA IC0wLDAgKzEsNDU5IEBACi0rLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdO VSBkZWJ1Z2dlci4KLSsKLSsgICBDb3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24sIEluYy4KLSsKLSsgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0rICAgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwg b3IKLSsgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotKwotKyAgIFRoaXMg cHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs LAotKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5IG9mCi0rICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv ciBtb3JlIGRldGFpbHMuCi0rCi0rICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsgICBhbG9uZyB3aXRoIHRoaXMgcHJv Z3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCi0r Ci0rLyogVGhpcyBmaWxlIGlzIGNvbXBpbGVkIGZyb20gZ2RiLmFyY2gvYW1kNjQtZW50cnktdmFs dWUtcGFyYW1yZWYuY2MKLSsgICB1c2luZyAtZyAtZEEgLVMgLU8yLgotKyAgIEFkZGl0aW9uYWxs eSBpdCBoYXMgYmVlbiBwYXRjaGVkLiAgKi8KLSsKLSsJLmZpbGUJImFtZDY0LWVudHJ5LXZhbHVl LXBhcmFtcmVmLmNjIgotKwkudGV4dAotKy5MdGV4dDA6Ci0rCS5wMmFsaWduIDQsLDE1Ci0rCS50 eXBlCV9aTDNiYXJSaS5jb25zdHByb3AuMCwgQGZ1bmN0aW9uCi0rX1pMM2JhclJpLmNvbnN0cHJv cC4wOgotKy5MRkIyOgotKwkuZmlsZSAxICJnZGIuYXJjaC9hbWQ2NC1lbnRyeS12YWx1ZS1wYXJh bXJlZi5jYyIKLSsJIyBnZGIuYXJjaC9hbWQ2NC1lbnRyeS12YWx1ZS1wYXJhbXJlZi5jYzoyMQot KwkubG9jIDEgMjEgMAotKwkuY2ZpX3N0YXJ0cHJvYwotKy5MVkwwOgotKyMgQkxPQ0sgMiBmcmVx OjEwMDAwIHNlcTowCi0rIyBQUkVEOiBFTlRSWSBbMTAwLjAlXSAgKEZBTExUSFJVKQotKwkjIGdk Yi5hcmNoL2FtZDY0LWVudHJ5LXZhbHVlLXBhcmFtcmVmLmNjOjIzCi0rCS5sb2MgMSAyMyAwCi0r CW1vdmwJdnYoJXJpcCksICVlYXgKLSsJIyBnZGIuYXJjaC9hbWQ2NC1lbnRyeS12YWx1ZS1wYXJh bXJlZi5jYzoyNAotKwkubG9jIDEgMjQgMAotKwltb3ZxCSVyZGksIHAoJXJpcCkKLSsJIyBnZGIu YXJjaC9hbWQ2NC1lbnRyeS12YWx1ZS1wYXJhbXJlZi5jYzoyMwotKwkubG9jIDEgMjMgMAotKwlh ZGRsCSQxLCAlZWF4Ci0rCW1vdmwJJWVheCwgdnYoJXJpcCkKLSsJIyBnZGIuYXJjaC9hbWQ2NC1l bnRyeS12YWx1ZS1wYXJhbXJlZi5jYzoyNQotKwkubG9jIDEgMjUgMAotKwltb3ZsCSglcmRpKSwg JWVheAotKyMgU1VDQzogRVhJVCBbMTAwLjAlXSAKLSsJIyBnZGIuYXJjaC9hbWQ2NC1lbnRyeS12 YWx1ZS1wYXJhbXJlZi5jYzoyNgotKwkubG9jIDEgMjYgMAotKwlyZXQKLSsJLmNmaV9lbmRwcm9j Ci0rLkxGRTI6Ci0rCS5zaXplCV9aTDNiYXJSaS5jb25zdHByb3AuMCwgLi1fWkwzYmFyUmkuY29u c3Rwcm9wLjAKLSsJLnNlY3Rpb24JLnRleHQuc3RhcnR1cCwiYXgiLEBwcm9nYml0cwotKwkucDJh bGlnbiA0LCwxNQotKwkuZ2xvYmwJbWFpbgotKwkudHlwZQltYWluLCBAZnVuY3Rpb24KLSttYWlu OgotKy5MRkIxOgotKwkjIGdkYi5hcmNoL2FtZDY0LWVudHJ5LXZhbHVlLXBhcmFtcmVmLmNjOjMw Ci0rCS5sb2MgMSAzMCAwCi0rCS5jZmlfc3RhcnRwcm9jCi0rIyBCTE9DSyAyIGZyZXE6MTAwMDAg c2VxOjAKLSsjIFBSRUQ6IEVOVFJZIFsxMDAuMCVdICAoRkFMTFRIUlUpCi0rCXN1YnEJJDE2LCAl cnNwCi0rCS5jZmlfZGVmX2NmYV9vZmZzZXQgMjQKLSsuTEJCMjoKLSsJIyBnZGIuYXJjaC9hbWQ2 NC1lbnRyeS12YWx1ZS1wYXJhbXJlZi5jYzozMgotKwkubG9jIDEgMzIgMAotKwlsZWFxCTEyKCVy c3ApLCAlcmRpCi0rCSMgZ2RiLmFyY2gvYW1kNjQtZW50cnktdmFsdWUtcGFyYW1yZWYuY2M6MzEK LSsJLmxvYyAxIDMxIDAKLSsJbW92bAkkMTAsIDEyKCVyc3ApCi0rCSMgZ2RiLmFyY2gvYW1kNjQt ZW50cnktdmFsdWUtcGFyYW1yZWYuY2M6MzIKLSsJLmxvYyAxIDMyIDAKLSsJY2FsbAlfWkwzYmFy UmkuY29uc3Rwcm9wLjAKLSsuTFZMMToKLSsuTEJFMjoKLSsJIyBnZGIuYXJjaC9hbWQ2NC1lbnRy eS12YWx1ZS1wYXJhbXJlZi5jYzozMwotKwkubG9jIDEgMzMgMAotKwlhZGRxCSQxNiwgJXJzcAot KwkuY2ZpX2RlZl9jZmFfb2Zmc2V0IDgKLSsjIFNVQ0M6IEVYSVQgWzEwMC4wJV0gCi0rCXJldAot KwkuY2ZpX2VuZHByb2MKLSsuTEZFMToKLSsJLnNpemUJbWFpbiwgLi1tYWluCi0rCS5nbG9ibAlw Ci0rCS5ic3MKLSsJLmFsaWduIDgKLSsJLnR5cGUJcCwgQG9iamVjdAotKwkuc2l6ZQlwLCA4Ci0r cDoKLSsJLnplcm8JOAotKwkuZ2xvYmwJdnYKLSsJLmFsaWduIDQKLSsJLnR5cGUJdnYsIEBvYmpl Y3QKLSsJLnNpemUJdnYsIDQKLSt2djoKLSsJLnplcm8JNAotKwkudGV4dAotKy5MZXRleHQwOgot Kwkuc2VjdGlvbgkuZGVidWdfaW5mbywiIixAcHJvZ2JpdHMKLSsuTGRlYnVnX2luZm8wOgotKwku bG9uZwkuTGluZm9fZW5kIC0gLkxpbmZvX3N0YXJ0CSMgTGVuZ3RoIG9mIENvbXBpbGF0aW9uIFVu aXQgSW5mbwotKy5MaW5mb19zdGFydDoKLSsJLnZhbHVlCTB4NAkjIERXQVJGIHZlcnNpb24gbnVt YmVyCi0rCS5sb25nCS5MZGVidWdfYWJicmV2MAkjIE9mZnNldCBJbnRvIEFiYnJldi4gU2VjdGlv bgotKwkuYnl0ZQkweDgJIyBQb2ludGVyIFNpemUgKGluIGJ5dGVzKQotKwkudWxlYjEyOCAweDEJ IyAoRElFICgweGIpIERXX1RBR19jb21waWxlX3VuaXQpCi0rCS5sb25nCS5MQVNGMAkjIERXX0FU X3Byb2R1Y2VyOiAiR05VIEMrKyA0LjguMiAyMDEzMTIxMiAoUmVkIEhhdCA0LjguMi03KSAtbXR1 bmU9Z2VuZXJpYyAtbWFyY2g9eDg2LTY0IC1nIC1PMiIKLSsJLmJ5dGUJMHg0CSMgRFdfQVRfbGFu Z3VhZ2UKLSsJLmxvbmcJLkxBU0YxCSMgRFdfQVRfbmFtZTogImdkYi5hcmNoL2FtZDY0LWVudHJ5 LXZhbHVlLXBhcmFtcmVmLmNjIgotKwkubG9uZwkuTEFTRjIJIyBEV19BVF9jb21wX2RpcjogIiIK LSsJLmxvbmcJLkxkZWJ1Z19yYW5nZXMwKzAJIyBEV19BVF9yYW5nZXMKLSsJLnF1YWQJMAkjIERX X0FUX2xvd19wYwotKwkubG9uZwkuTGRlYnVnX2xpbmUwCSMgRFdfQVRfc3RtdF9saXN0Ci0rRElF Mjk6CS51bGViMTI4IDB4MgkjIChESUUgKDB4MjkpIERXX1RBR19zdWJwcm9ncmFtKQotKwkuYXNj aWkgImJhclwwIgkjIERXX0FUX25hbWUKLSsJLmJ5dGUJMHgxCSMgRFdfQVRfZGVjbF9maWxlIChn ZGIuYXJjaC9hbWQ2NC1lbnRyeS12YWx1ZS1wYXJhbXJlZi5jYykKLSsJLmJ5dGUJMHgxNQkjIERX X0FUX2RlY2xfbGluZQotKwkubG9uZwlESUU0NQkjIERXX0FUX3R5cGUKLSsJLmJ5dGUJMHgxCSMg RFdfQVRfaW5saW5lCi0rRElFMzk6CS51bGViMTI4IDB4MwkjIChESUUgKDB4MzkpIERXX1RBR19m b3JtYWxfcGFyYW1ldGVyKQotKwkuYXNjaWkgInJlZlwwIgkjIERXX0FUX25hbWUKLSsJLmJ5dGUJ MHgxCSMgRFdfQVRfZGVjbF9maWxlIChnZGIuYXJjaC9hbWQ2NC1lbnRyeS12YWx1ZS1wYXJhbXJl Zi5jYykKLSsJLmJ5dGUJMHgxNQkjIERXX0FUX2RlY2xfbGluZQotKwkubG9uZwlESUU0YwkjIERX X0FUX3R5cGUKLSsJLmJ5dGUJMAkjIGVuZCBvZiBjaGlsZHJlbiBvZiBESUUgMHgyOQotK0RJRTQ1 OgkudWxlYjEyOCAweDQJIyAoRElFICgweDQ1KSBEV19UQUdfYmFzZV90eXBlKQotKwkuYnl0ZQkw eDQJIyBEV19BVF9ieXRlX3NpemUKLSsJLmJ5dGUJMHg1CSMgRFdfQVRfZW5jb2RpbmcKLSsJLmFz Y2lpICJpbnRcMCIJIyBEV19BVF9uYW1lCi0rRElFNGM6CS51bGViMTI4IDB4NQkjIChESUUgKDB4 NGMpIERXX1RBR19jb25zdF90eXBlKQotKwkubG9uZwlESUU1MQkjIERXX0FUX3R5cGUKLStESUU1 MToJLnVsZWIxMjggMHg2CSMgKERJRSAoMHg1MSkgRFdfVEFHX3JlZmVyZW5jZV90eXBlKQotKwku Ynl0ZQkweDgJIyBEV19BVF9ieXRlX3NpemUKLSsJLmxvbmcJRElFNDUJIyBEV19BVF90eXBlCi0r RElFNTc6CS51bGViMTI4IDB4NwkjIChESUUgKDB4NTcpIERXX1RBR19zdWJwcm9ncmFtKQotKwku bG9uZwlESUUyOQkjIERXX0FUX2Fic3RyYWN0X29yaWdpbgotKwkucXVhZAkuTEZCMgkjIERXX0FU X2xvd19wYwotKwkucXVhZAkuTEZFMi0uTEZCMgkjIERXX0FUX2hpZ2hfcGMKLSsJLnVsZWIxMjgg MHgxCSMgRFdfQVRfZnJhbWVfYmFzZQotKwkuYnl0ZQkweDljCSMgRFdfT1BfY2FsbF9mcmFtZV9j ZmEKLSsJCQkjIERXX0FUX0dOVV9hbGxfY2FsbF9zaXRlcwotK0RJRTcyOgkudWxlYjEyOCAweDgJ IyAoRElFICgweDcyKSBEV19UQUdfZm9ybWFsX3BhcmFtZXRlcikKLSsJLmxvbmcJRElFMzkJIyBE V19BVF9hYnN0cmFjdF9vcmlnaW4KLSsJLnVsZWIxMjggMHgxCSMgRFdfQVRfbG9jYXRpb24KLSsJ LmJ5dGUJMHg1NQkjIERXX09QX3JlZzUKLSsJLmJ5dGUJMAkjIGVuZCBvZiBjaGlsZHJlbiBvZiBE SUUgMHg1NwotK0RJRTdhOgkudWxlYjEyOCAweDkJIyAoRElFICgweDdhKSBEV19UQUdfc3VicHJv Z3JhbSkKLSsJCQkjIERXX0FUX2V4dGVybmFsCi0rCS5sb25nCS5MQVNGMwkjIERXX0FUX25hbWU6 ICJtYWluIgotKwkuYnl0ZQkweDEJIyBEV19BVF9kZWNsX2ZpbGUgKGdkYi5hcmNoL2FtZDY0LWVu dHJ5LXZhbHVlLXBhcmFtcmVmLmNjKQotKwkuYnl0ZQkweDFkCSMgRFdfQVRfZGVjbF9saW5lCi0r CS5sb25nCURJRTQ1CSMgRFdfQVRfdHlwZQotKwkucXVhZAkuTEZCMQkjIERXX0FUX2xvd19wYwot KwkucXVhZAkuTEZFMS0uTEZCMQkjIERXX0FUX2hpZ2hfcGMKLSsJLnVsZWIxMjggMHgxCSMgRFdf QVRfZnJhbWVfYmFzZQotKwkuYnl0ZQkweDljCSMgRFdfT1BfY2FsbF9mcmFtZV9jZmEKLSsJCQkj IERXX0FUX0dOVV9hbGxfY2FsbF9zaXRlcwotK0RJRTliOgkudWxlYjEyOCAweGEJIyAoRElFICgw eDliKSBEV19UQUdfbGV4aWNhbF9ibG9jaykKLSsJLnF1YWQJLkxCQjIJIyBEV19BVF9sb3dfcGMK LSsJLnF1YWQJLkxCRTItLkxCQjIJIyBEV19BVF9oaWdoX3BjCi0rRElFYWM6CS51bGViMTI4IDB4 YgkjIChESUUgKDB4YWMpIERXX1RBR192YXJpYWJsZSkKLSsJLmFzY2lpICJ2YXJcMCIJIyBEV19B VF9uYW1lCi0rCS5ieXRlCTB4MQkjIERXX0FUX2RlY2xfZmlsZSAoZ2RiLmFyY2gvYW1kNjQtZW50 cnktdmFsdWUtcGFyYW1yZWYuY2MpCi0rCS5ieXRlCTB4MWYJIyBEV19BVF9kZWNsX2xpbmUKLSsJ LmxvbmcJRElFNDUJIyBEV19BVF90eXBlCi0rCS51bGViMTI4IDB4MgkjIERXX0FUX2xvY2F0aW9u Ci0rCS5ieXRlCTB4OTEJIyBEV19PUF9mYnJlZwotKwkuc2xlYjEyOCAtMTIKLStESUViYToJLnVs ZWIxMjggMHhjCSMgKERJRSAoMHhiYSkgRFdfVEFHX0dOVV9jYWxsX3NpdGUpCi0rCS5xdWFkCS5M VkwxCSMgRFdfQVRfbG93X3BjCi0rCS5sb25nCURJRTU3CSMgRFdfQVRfYWJzdHJhY3Rfb3JpZ2lu Ci0rRElFYzc6CS51bGViMTI4IDB4ZAkjIChESUUgKDB4YzcpIERXX1RBR19HTlVfY2FsbF9zaXRl X3BhcmFtZXRlcikKLSsJLnVsZWIxMjggMHgxCSMgRFdfQVRfbG9jYXRpb24KLSsJLmJ5dGUJMHg1 NQkjIERXX09QX3JlZzUKLSsJLnVsZWIxMjggMHgyCSMgRFdfQVRfR05VX2NhbGxfc2l0ZV92YWx1 ZQotKwkuYnl0ZQkweDkxCSMgRFdfT1BfZmJyZWcKLSsJLnNsZWIxMjggLTEyCi0rI2lmIDAKLSsJ LnVsZWIxMjggMHgxCSMgRFdfQVRfR05VX2NhbGxfc2l0ZV9kYXRhX3ZhbHVlCi0rCS5ieXRlCTB4 M2EJIyBEV19PUF9saXQxMAotKyNlbHNlCi0rCS51bGViMTI4IDFmIC0gMmYJIyBEV19BVF9HTlVf Y2FsbF9zaXRlX2RhdGFfdmFsdWUKLSsyOgotKwkuYnl0ZQkweGYzCSMgRFdfT1BfR05VX2VudHJ5 X3ZhbHVlCi0rCS51bGViMTI4IDFmIC0gM2YKLSszOgotKwkuYnl0ZQkweDU1CSMgRFdfT1BfcmVn NQotKzE6Ci0rI2VuZGlmCi0rCS5ieXRlCTAJIyBlbmQgb2YgY2hpbGRyZW4gb2YgRElFIDB4YmEK LSsJLmJ5dGUJMAkjIGVuZCBvZiBjaGlsZHJlbiBvZiBESUUgMHg5YgotKwkuYnl0ZQkwCSMgZW5k IG9mIGNoaWxkcmVuIG9mIERJRSAweDdhCi0rRElFZDI6CS51bGViMTI4IDB4ZQkjIChESUUgKDB4 ZDIpIERXX1RBR192YXJpYWJsZSkKLSsJLmFzY2lpICJ2dlwwIgkjIERXX0FUX25hbWUKLSsJLmJ5 dGUJMHgxCSMgRFdfQVRfZGVjbF9maWxlIChnZGIuYXJjaC9hbWQ2NC1lbnRyeS12YWx1ZS1wYXJh bXJlZi5jYykKLSsJLmJ5dGUJMHgxMgkjIERXX0FUX2RlY2xfbGluZQotKwkubG9uZwlESUVlNgkj IERXX0FUX3R5cGUKLSsJCQkjIERXX0FUX2V4dGVybmFsCi0rCS51bGViMTI4IDB4OQkjIERXX0FU X2xvY2F0aW9uCi0rCS5ieXRlCTB4MwkjIERXX09QX2FkZHIKLSsJLnF1YWQJdnYKLStESUVlNjoJ LnVsZWIxMjggMHhmCSMgKERJRSAoMHhlNikgRFdfVEFHX3ZvbGF0aWxlX3R5cGUpCi0rCS5sb25n CURJRTQ1CSMgRFdfQVRfdHlwZQotK0RJRWViOgkudWxlYjEyOCAweGUJIyAoRElFICgweGViKSBE V19UQUdfdmFyaWFibGUpCi0rCS5hc2NpaSAicFwwIgkjIERXX0FUX25hbWUKLSsJLmJ5dGUJMHgx CSMgRFdfQVRfZGVjbF9maWxlIChnZGIuYXJjaC9hbWQ2NC1lbnRyeS12YWx1ZS1wYXJhbXJlZi5j YykKLSsJLmJ5dGUJMHgxMgkjIERXX0FUX2RlY2xfbGluZQotKwkubG9uZwlESUVmZQkjIERXX0FU X3R5cGUKLSsJCQkjIERXX0FUX2V4dGVybmFsCi0rCS51bGViMTI4IDB4OQkjIERXX0FUX2xvY2F0 aW9uCi0rCS5ieXRlCTB4MwkjIERXX09QX2FkZHIKLSsJLnF1YWQJcAotK0RJRWZlOgkudWxlYjEy OCAweDEwCSMgKERJRSAoMHhmZSkgRFdfVEFHX3BvaW50ZXJfdHlwZSkKLSsJLmJ5dGUJMHg4CSMg RFdfQVRfYnl0ZV9zaXplCi0rCS5sb25nCURJRWU2CSMgRFdfQVRfdHlwZQotKwkuYnl0ZQkwCSMg ZW5kIG9mIGNoaWxkcmVuIG9mIERJRSAweGIKLSsuTGluZm9fZW5kOgotKwkuc2VjdGlvbgkuZGVi dWdfYWJicmV2LCIiLEBwcm9nYml0cwotKy5MZGVidWdfYWJicmV2MDoKLSsJLnVsZWIxMjggMHgx CSMgKGFiYnJldiBjb2RlKQotKwkudWxlYjEyOCAweDExCSMgKFRBRzogRFdfVEFHX2NvbXBpbGVf dW5pdCkKLSsJLmJ5dGUJMHgxCSMgRFdfY2hpbGRyZW5feWVzCi0rCS51bGViMTI4IDB4MjUJIyAo RFdfQVRfcHJvZHVjZXIpCi0rCS51bGViMTI4IDB4ZQkjIChEV19GT1JNX3N0cnApCi0rCS51bGVi MTI4IDB4MTMJIyAoRFdfQVRfbGFuZ3VhZ2UpCi0rCS51bGViMTI4IDB4YgkjIChEV19GT1JNX2Rh dGExKQotKwkudWxlYjEyOCAweDMJIyAoRFdfQVRfbmFtZSkKLSsJLnVsZWIxMjggMHhlCSMgKERX X0ZPUk1fc3RycCkKLSsJLnVsZWIxMjggMHgxYgkjIChEV19BVF9jb21wX2RpcikKLSsJLnVsZWIx MjggMHhlCSMgKERXX0ZPUk1fc3RycCkKLSsJLnVsZWIxMjggMHg1NQkjIChEV19BVF9yYW5nZXMp Ci0rCS51bGViMTI4IDB4MTcJIyAoRFdfRk9STV9zZWNfb2Zmc2V0KQotKwkudWxlYjEyOCAweDEx CSMgKERXX0FUX2xvd19wYykKLSsJLnVsZWIxMjggMHgxCSMgKERXX0ZPUk1fYWRkcikKLSsJLnVs ZWIxMjggMHgxMAkjIChEV19BVF9zdG10X2xpc3QpCi0rCS51bGViMTI4IDB4MTcJIyAoRFdfRk9S TV9zZWNfb2Zmc2V0KQotKwkuYnl0ZQkwCi0rCS5ieXRlCTAKLSsJLnVsZWIxMjggMHgyCSMgKGFi YnJldiBjb2RlKQotKwkudWxlYjEyOCAweDJlCSMgKFRBRzogRFdfVEFHX3N1YnByb2dyYW0pCi0r CS5ieXRlCTB4MQkjIERXX2NoaWxkcmVuX3llcwotKwkudWxlYjEyOCAweDMJIyAoRFdfQVRfbmFt ZSkKLSsJLnVsZWIxMjggMHg4CSMgKERXX0ZPUk1fc3RyaW5nKQotKwkudWxlYjEyOCAweDNhCSMg KERXX0FUX2RlY2xfZmlsZSkKLSsJLnVsZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCi0rCS51 bGViMTI4IDB4M2IJIyAoRFdfQVRfZGVjbF9saW5lKQotKwkudWxlYjEyOCAweGIJIyAoRFdfRk9S TV9kYXRhMSkKLSsJLnVsZWIxMjggMHg0OQkjIChEV19BVF90eXBlKQotKwkudWxlYjEyOCAweDEz CSMgKERXX0ZPUk1fcmVmNCkKLSsJLnVsZWIxMjggMHgyMAkjIChEV19BVF9pbmxpbmUpCi0rCS51 bGViMTI4IDB4YgkjIChEV19GT1JNX2RhdGExKQotKwkuYnl0ZQkwCi0rCS5ieXRlCTAKLSsJLnVs ZWIxMjggMHgzCSMgKGFiYnJldiBjb2RlKQotKwkudWxlYjEyOCAweDUJIyAoVEFHOiBEV19UQUdf Zm9ybWFsX3BhcmFtZXRlcikKLSsJLmJ5dGUJMAkjIERXX2NoaWxkcmVuX25vCi0rCS51bGViMTI4 IDB4MwkjIChEV19BVF9uYW1lKQotKwkudWxlYjEyOCAweDgJIyAoRFdfRk9STV9zdHJpbmcpCi0r CS51bGViMTI4IDB4M2EJIyAoRFdfQVRfZGVjbF9maWxlKQotKwkudWxlYjEyOCAweGIJIyAoRFdf Rk9STV9kYXRhMSkKLSsJLnVsZWIxMjggMHgzYgkjIChEV19BVF9kZWNsX2xpbmUpCi0rCS51bGVi MTI4IDB4YgkjIChEV19GT1JNX2RhdGExKQotKwkudWxlYjEyOCAweDQ5CSMgKERXX0FUX3R5cGUp Ci0rCS51bGViMTI4IDB4MTMJIyAoRFdfRk9STV9yZWY0KQotKwkuYnl0ZQkwCi0rCS5ieXRlCTAK LSsJLnVsZWIxMjggMHg0CSMgKGFiYnJldiBjb2RlKQotKwkudWxlYjEyOCAweDI0CSMgKFRBRzog RFdfVEFHX2Jhc2VfdHlwZSkKLSsJLmJ5dGUJMAkjIERXX2NoaWxkcmVuX25vCi0rCS51bGViMTI4 IDB4YgkjIChEV19BVF9ieXRlX3NpemUpCi0rCS51bGViMTI4IDB4YgkjIChEV19GT1JNX2RhdGEx KQotKwkudWxlYjEyOCAweDNlCSMgKERXX0FUX2VuY29kaW5nKQotKwkudWxlYjEyOCAweGIJIyAo RFdfRk9STV9kYXRhMSkKLSsJLnVsZWIxMjggMHgzCSMgKERXX0FUX25hbWUpCi0rCS51bGViMTI4 IDB4OAkjIChEV19GT1JNX3N0cmluZykKLSsJLmJ5dGUJMAotKwkuYnl0ZQkwCi0rCS51bGViMTI4 IDB4NQkjIChhYmJyZXYgY29kZSkKLSsJLnVsZWIxMjggMHgyNgkjIChUQUc6IERXX1RBR19jb25z dF90eXBlKQotKwkuYnl0ZQkwCSMgRFdfY2hpbGRyZW5fbm8KLSsJLnVsZWIxMjggMHg0OQkjIChE V19BVF90eXBlKQotKwkudWxlYjEyOCAweDEzCSMgKERXX0ZPUk1fcmVmNCkKLSsJLmJ5dGUJMAot KwkuYnl0ZQkwCi0rCS51bGViMTI4IDB4NgkjIChhYmJyZXYgY29kZSkKLSsJLnVsZWIxMjggMHgx MAkjIChUQUc6IERXX1RBR19yZWZlcmVuY2VfdHlwZSkKLSsJLmJ5dGUJMAkjIERXX2NoaWxkcmVu X25vCi0rCS51bGViMTI4IDB4YgkjIChEV19BVF9ieXRlX3NpemUpCi0rCS51bGViMTI4IDB4Ygkj IChEV19GT1JNX2RhdGExKQotKwkudWxlYjEyOCAweDQ5CSMgKERXX0FUX3R5cGUpCi0rCS51bGVi MTI4IDB4MTMJIyAoRFdfRk9STV9yZWY0KQotKwkuYnl0ZQkwCi0rCS5ieXRlCTAKLSsJLnVsZWIx MjggMHg3CSMgKGFiYnJldiBjb2RlKQotKwkudWxlYjEyOCAweDJlCSMgKFRBRzogRFdfVEFHX3N1 YnByb2dyYW0pCi0rCS5ieXRlCTB4MQkjIERXX2NoaWxkcmVuX3llcwotKwkudWxlYjEyOCAweDMx CSMgKERXX0FUX2Fic3RyYWN0X29yaWdpbikKLSsJLnVsZWIxMjggMHgxMwkjIChEV19GT1JNX3Jl ZjQpCi0rCS51bGViMTI4IDB4MTEJIyAoRFdfQVRfbG93X3BjKQotKwkudWxlYjEyOCAweDEJIyAo RFdfRk9STV9hZGRyKQotKwkudWxlYjEyOCAweDEyCSMgKERXX0FUX2hpZ2hfcGMpCi0rCS51bGVi MTI4IDB4NwkjIChEV19GT1JNX2RhdGE4KQotKwkudWxlYjEyOCAweDQwCSMgKERXX0FUX2ZyYW1l X2Jhc2UpCi0rCS51bGViMTI4IDB4MTgJIyAoRFdfRk9STV9leHBybG9jKQotKwkudWxlYjEyOCAw eDIxMTcJIyAoRFdfQVRfR05VX2FsbF9jYWxsX3NpdGVzKQotKwkudWxlYjEyOCAweDE5CSMgKERX X0ZPUk1fZmxhZ19wcmVzZW50KQotKwkuYnl0ZQkwCi0rCS5ieXRlCTAKLSsJLnVsZWIxMjggMHg4 CSMgKGFiYnJldiBjb2RlKQotKwkudWxlYjEyOCAweDUJIyAoVEFHOiBEV19UQUdfZm9ybWFsX3Bh cmFtZXRlcikKLSsJLmJ5dGUJMAkjIERXX2NoaWxkcmVuX25vCi0rCS51bGViMTI4IDB4MzEJIyAo RFdfQVRfYWJzdHJhY3Rfb3JpZ2luKQotKwkudWxlYjEyOCAweDEzCSMgKERXX0ZPUk1fcmVmNCkK LSsJLnVsZWIxMjggMHgyCSMgKERXX0FUX2xvY2F0aW9uKQotKwkudWxlYjEyOCAweDE4CSMgKERX X0ZPUk1fZXhwcmxvYykKLSsJLmJ5dGUJMAotKwkuYnl0ZQkwCi0rCS51bGViMTI4IDB4OQkjIChh YmJyZXYgY29kZSkKLSsJLnVsZWIxMjggMHgyZQkjIChUQUc6IERXX1RBR19zdWJwcm9ncmFtKQot KwkuYnl0ZQkweDEJIyBEV19jaGlsZHJlbl95ZXMKLSsJLnVsZWIxMjggMHgzZgkjIChEV19BVF9l eHRlcm5hbCkKLSsJLnVsZWIxMjggMHgxOQkjIChEV19GT1JNX2ZsYWdfcHJlc2VudCkKLSsJLnVs ZWIxMjggMHgzCSMgKERXX0FUX25hbWUpCi0rCS51bGViMTI4IDB4ZQkjIChEV19GT1JNX3N0cnAp Ci0rCS51bGViMTI4IDB4M2EJIyAoRFdfQVRfZGVjbF9maWxlKQotKwkudWxlYjEyOCAweGIJIyAo RFdfRk9STV9kYXRhMSkKLSsJLnVsZWIxMjggMHgzYgkjIChEV19BVF9kZWNsX2xpbmUpCi0rCS51 bGViMTI4IDB4YgkjIChEV19GT1JNX2RhdGExKQotKwkudWxlYjEyOCAweDQ5CSMgKERXX0FUX3R5 cGUpCi0rCS51bGViMTI4IDB4MTMJIyAoRFdfRk9STV9yZWY0KQotKwkudWxlYjEyOCAweDExCSMg KERXX0FUX2xvd19wYykKLSsJLnVsZWIxMjggMHgxCSMgKERXX0ZPUk1fYWRkcikKLSsJLnVsZWIx MjggMHgxMgkjIChEV19BVF9oaWdoX3BjKQotKwkudWxlYjEyOCAweDcJIyAoRFdfRk9STV9kYXRh OCkKLSsJLnVsZWIxMjggMHg0MAkjIChEV19BVF9mcmFtZV9iYXNlKQotKwkudWxlYjEyOCAweDE4 CSMgKERXX0ZPUk1fZXhwcmxvYykKLSsJLnVsZWIxMjggMHgyMTE3CSMgKERXX0FUX0dOVV9hbGxf Y2FsbF9zaXRlcykKLSsJLnVsZWIxMjggMHgxOQkjIChEV19GT1JNX2ZsYWdfcHJlc2VudCkKLSsJ LmJ5dGUJMAotKwkuYnl0ZQkwCi0rCS51bGViMTI4IDB4YQkjIChhYmJyZXYgY29kZSkKLSsJLnVs ZWIxMjggMHhiCSMgKFRBRzogRFdfVEFHX2xleGljYWxfYmxvY2spCi0rCS5ieXRlCTB4MQkjIERX X2NoaWxkcmVuX3llcwotKwkudWxlYjEyOCAweDExCSMgKERXX0FUX2xvd19wYykKLSsJLnVsZWIx MjggMHgxCSMgKERXX0ZPUk1fYWRkcikKLSsJLnVsZWIxMjggMHgxMgkjIChEV19BVF9oaWdoX3Bj KQotKwkudWxlYjEyOCAweDcJIyAoRFdfRk9STV9kYXRhOCkKLSsJLmJ5dGUJMAotKwkuYnl0ZQkw Ci0rCS51bGViMTI4IDB4YgkjIChhYmJyZXYgY29kZSkKLSsJLnVsZWIxMjggMHgzNAkjIChUQUc6 IERXX1RBR192YXJpYWJsZSkKLSsJLmJ5dGUJMAkjIERXX2NoaWxkcmVuX25vCi0rCS51bGViMTI4 IDB4MwkjIChEV19BVF9uYW1lKQotKwkudWxlYjEyOCAweDgJIyAoRFdfRk9STV9zdHJpbmcpCi0r CS51bGViMTI4IDB4M2EJIyAoRFdfQVRfZGVjbF9maWxlKQotKwkudWxlYjEyOCAweGIJIyAoRFdf Rk9STV9kYXRhMSkKLSsJLnVsZWIxMjggMHgzYgkjIChEV19BVF9kZWNsX2xpbmUpCi0rCS51bGVi MTI4IDB4YgkjIChEV19GT1JNX2RhdGExKQotKwkudWxlYjEyOCAweDQ5CSMgKERXX0FUX3R5cGUp Ci0rCS51bGViMTI4IDB4MTMJIyAoRFdfRk9STV9yZWY0KQotKwkudWxlYjEyOCAweDIJIyAoRFdf QVRfbG9jYXRpb24pCi0rCS51bGViMTI4IDB4MTgJIyAoRFdfRk9STV9leHBybG9jKQotKwkuYnl0 ZQkwCi0rCS5ieXRlCTAKLSsJLnVsZWIxMjggMHhjCSMgKGFiYnJldiBjb2RlKQotKwkudWxlYjEy OCAweDQxMDkJIyAoVEFHOiBEV19UQUdfR05VX2NhbGxfc2l0ZSkKLSsJLmJ5dGUJMHgxCSMgRFdf Y2hpbGRyZW5feWVzCi0rCS51bGViMTI4IDB4MTEJIyAoRFdfQVRfbG93X3BjKQotKwkudWxlYjEy OCAweDEJIyAoRFdfRk9STV9hZGRyKQotKwkudWxlYjEyOCAweDMxCSMgKERXX0FUX2Fic3RyYWN0 X29yaWdpbikKLSsJLnVsZWIxMjggMHgxMwkjIChEV19GT1JNX3JlZjQpCi0rCS5ieXRlCTAKLSsJ LmJ5dGUJMAotKwkudWxlYjEyOCAweGQJIyAoYWJicmV2IGNvZGUpCi0rCS51bGViMTI4IDB4NDEw YQkjIChUQUc6IERXX1RBR19HTlVfY2FsbF9zaXRlX3BhcmFtZXRlcikKLSsJLmJ5dGUJMAkjIERX X2NoaWxkcmVuX25vCi0rCS51bGViMTI4IDB4MgkjIChEV19BVF9sb2NhdGlvbikKLSsJLnVsZWIx MjggMHgxOAkjIChEV19GT1JNX2V4cHJsb2MpCi0rCS51bGViMTI4IDB4MjExMQkjIChEV19BVF9H TlVfY2FsbF9zaXRlX3ZhbHVlKQotKwkudWxlYjEyOCAweDE4CSMgKERXX0ZPUk1fZXhwcmxvYykK LSsJLnVsZWIxMjggMHgyMTEyCSMgKERXX0FUX0dOVV9jYWxsX3NpdGVfZGF0YV92YWx1ZSkKLSsJ LnVsZWIxMjggMHgxOAkjIChEV19GT1JNX2V4cHJsb2MpCi0rCS5ieXRlCTAKLSsJLmJ5dGUJMAot KwkudWxlYjEyOCAweGUJIyAoYWJicmV2IGNvZGUpCi0rCS51bGViMTI4IDB4MzQJIyAoVEFHOiBE V19UQUdfdmFyaWFibGUpCi0rCS5ieXRlCTAJIyBEV19jaGlsZHJlbl9ubwotKwkudWxlYjEyOCAw eDMJIyAoRFdfQVRfbmFtZSkKLSsJLnVsZWIxMjggMHg4CSMgKERXX0ZPUk1fc3RyaW5nKQotKwku dWxlYjEyOCAweDNhCSMgKERXX0FUX2RlY2xfZmlsZSkKLSsJLnVsZWIxMjggMHhiCSMgKERXX0ZP Uk1fZGF0YTEpCi0rCS51bGViMTI4IDB4M2IJIyAoRFdfQVRfZGVjbF9saW5lKQotKwkudWxlYjEy OCAweGIJIyAoRFdfRk9STV9kYXRhMSkKLSsJLnVsZWIxMjggMHg0OQkjIChEV19BVF90eXBlKQot KwkudWxlYjEyOCAweDEzCSMgKERXX0ZPUk1fcmVmNCkKLSsJLnVsZWIxMjggMHgzZgkjIChEV19B VF9leHRlcm5hbCkKLSsJLnVsZWIxMjggMHgxOQkjIChEV19GT1JNX2ZsYWdfcHJlc2VudCkKLSsJ LnVsZWIxMjggMHgyCSMgKERXX0FUX2xvY2F0aW9uKQotKwkudWxlYjEyOCAweDE4CSMgKERXX0ZP Uk1fZXhwcmxvYykKLSsJLmJ5dGUJMAotKwkuYnl0ZQkwCi0rCS51bGViMTI4IDB4ZgkjIChhYmJy ZXYgY29kZSkKLSsJLnVsZWIxMjggMHgzNQkjIChUQUc6IERXX1RBR192b2xhdGlsZV90eXBlKQot KwkuYnl0ZQkwCSMgRFdfY2hpbGRyZW5fbm8KLSsJLnVsZWIxMjggMHg0OQkjIChEV19BVF90eXBl KQotKwkudWxlYjEyOCAweDEzCSMgKERXX0ZPUk1fcmVmNCkKLSsJLmJ5dGUJMAotKwkuYnl0ZQkw Ci0rCS51bGViMTI4IDB4MTAJIyAoYWJicmV2IGNvZGUpCi0rCS51bGViMTI4IDB4ZgkjIChUQUc6 IERXX1RBR19wb2ludGVyX3R5cGUpCi0rCS5ieXRlCTAJIyBEV19jaGlsZHJlbl9ubwotKwkudWxl YjEyOCAweGIJIyAoRFdfQVRfYnl0ZV9zaXplKQotKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9k YXRhMSkKLSsJLnVsZWIxMjggMHg0OQkjIChEV19BVF90eXBlKQotKwkudWxlYjEyOCAweDEzCSMg KERXX0ZPUk1fcmVmNCkKLSsJLmJ5dGUJMAotKwkuYnl0ZQkwCi0rCS5ieXRlCTAKLSsJLnNlY3Rp b24JLmRlYnVnX2FyYW5nZXMsIiIsQHByb2diaXRzCi0rCS5sb25nCTB4M2MJIyBMZW5ndGggb2Yg QWRkcmVzcyBSYW5nZXMgSW5mbwotKwkudmFsdWUJMHgyCSMgRFdBUkYgVmVyc2lvbgotKwkubG9u ZwkuTGRlYnVnX2luZm8wCSMgT2Zmc2V0IG9mIENvbXBpbGF0aW9uIFVuaXQgSW5mbwotKwkuYnl0 ZQkweDgJIyBTaXplIG9mIEFkZHJlc3MKLSsJLmJ5dGUJMAkjIFNpemUgb2YgU2VnbWVudCBEZXNj cmlwdG9yCi0rCS52YWx1ZQkwCSMgUGFkIHRvIDE2IGJ5dGUgYm91bmRhcnkKLSsJLnZhbHVlCTAK LSsJLnF1YWQJLkx0ZXh0MAkjIEFkZHJlc3MKLSsJLnF1YWQJLkxldGV4dDAtLkx0ZXh0MAkjIExl bmd0aAotKwkucXVhZAkuTEZCMQkjIEFkZHJlc3MKLSsJLnF1YWQJLkxGRTEtLkxGQjEJIyBMZW5n dGgKLSsJLnF1YWQJMAotKwkucXVhZAkwCi0rCS5zZWN0aW9uCS5kZWJ1Z19yYW5nZXMsIiIsQHBy b2diaXRzCi0rLkxkZWJ1Z19yYW5nZXMwOgotKwkucXVhZAkuTHRleHQwCSMgT2Zmc2V0IDAKLSsJ LnF1YWQJLkxldGV4dDAKLSsJLnF1YWQJLkxGQjEJIyBPZmZzZXQgMHgxMAotKwkucXVhZAkuTEZF MQotKwkucXVhZAkwCi0rCS5xdWFkCTAKLSsJLnNlY3Rpb24JLmRlYnVnX2xpbmUsIiIsQHByb2di aXRzCi0rLkxkZWJ1Z19saW5lMDoKLSsJLnNlY3Rpb24JLmRlYnVnX3N0ciwiTVMiLEBwcm9nYml0 cywxCi0rLkxBU0YxOgotKwkuc3RyaW5nCSJnZGIuYXJjaC9hbWQ2NC1lbnRyeS12YWx1ZS1wYXJh bXJlZi5jYyIKLSsuTEFTRjI6Ci0rCS5zdHJpbmcJIiIKLSsuTEFTRjA6Ci0rCS5zdHJpbmcJIkdO VSBDKysgNC44LjIgMjAxMzEyMTIgKFJlZCBIYXQgNC44LjItNykgLW10dW5lPWdlbmVyaWMgLW1h cmNoPXg4Ni02NCAtZyAtTzIiCi0rLkxBU0YzOgotKwkuc3RyaW5nCSJtYWluIgotKwkuaWRlbnQJ IkdDQzogKEdOVSkgNC44LjIgMjAxMzEyMTIgKFJlZCBIYXQgNC44LjItNykiCi0rCS5zZWN0aW9u CS5ub3RlLkdOVS1zdGFjaywiIixAcHJvZ2JpdHMKLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRl L2dkYi5hcmNoL2FtZDY0LWVudHJ5LXZhbHVlLXBhcmFtcmVmLmNjIGIvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYXJjaC9hbWQ2NC1lbnRyeS12YWx1ZS1wYXJhbXJlZi5jYwotbmV3IGZpbGUgbW9kZSAxMDA2 NDQKLWluZGV4IDAwMDAwMDAuLmFhNDczYTMKLS0tLSAvZGV2L251bGwKLSsrKyBiL2dkYi90ZXN0 c3VpdGUvZ2RiLmFyY2gvYW1kNjQtZW50cnktdmFsdWUtcGFyYW1yZWYuY2MKLUBAIC0wLDAgKzEs MzMgQEAKLSsvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2Vy LgotKwotKyAgIENvcHlyaWdodCAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgot KwotKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0 ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsgICB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgotKyAgIChh dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rCi0rICAgVGhpcyBwcm9ncmFtIGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rICAgYnV0 IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg b2YKLSsgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UuICBTZWUgdGhlCi0rICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0 YWlscy4KLSsKLSsgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYg bm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KLSsKLSt2b2xhdGls ZSBpbnQgdnYsICpwOwotKwotK3N0YXRpYyBfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpIGludAot K2JhciAoaW50ICZyZWYpCi0rewotKyAgdnYrKzsgLyogYnJlYWstaGVyZSAqLwotKyAgcCA9ICZy ZWY7Ci0rICByZXR1cm4gcmVmOwotK30KLSsKLStpbnQKLSttYWluICh2b2lkKQotK3sKLSsgIGlu dCB2YXIgPSAxMDsKLSsgIHJldHVybiBiYXIgKHZhcik7Ci0rfQotZGlmZiAtLWdpdCBhL2dkYi90 ZXN0c3VpdGUvZ2RiLmFyY2gvYW1kNjQtZW50cnktdmFsdWUtcGFyYW1yZWYuZXhwIGIvZ2RiL3Rl c3RzdWl0ZS9nZGIuYXJjaC9hbWQ2NC1lbnRyeS12YWx1ZS1wYXJhbXJlZi5leHAKLW5ldyBmaWxl IG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi5mMDYyNDdkCi0tLS0gL2Rldi9udWxsCi0rKysg Yi9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL2FtZDY0LWVudHJ5LXZhbHVlLXBhcmFtcmVmLmV4cAot QEAgLTAsMCArMSwzNSBAQAotKyMgQ29weXJpZ2h0IChDKSAyMDE0IEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbiwgSW5jLgotKyMKLSsjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rIyBpdCB1bmRlciB0aGUgdGVybXMg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyMgdGhl IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5z ZSwgb3IKLSsjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rIwotKyMgVGhp cyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsCi0rIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll ZCB3YXJyYW50eSBvZgotKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y IG1vcmUgZGV0YWlscy4KLSsjCi0rIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dy YW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi0rCi0rc3Rh bmRhcmRfdGVzdGZpbGUgLlMgLmNjCi0rCi0raWYgeyAhW2lzdGFyZ2V0IHg4Nl82NC0qLSogXSB8 fCAhW2lzX2xwNjRfdGFyZ2V0XSB9IHsKLSsgICAgdmVyYm9zZSAiU2tpcHBpbmcgYW1kNjQtZW50 cnktdmFsdWUtcGFyYW1yZWYuIgotKyAgICByZXR1cm4KLSt9Ci0rCi0raWYgeyBbcHJlcGFyZV9m b3JfdGVzdGluZyAke3Rlc3RmaWxlfS5leHAgJHt0ZXN0ZmlsZX0gJHtzcmNmaWxlfSAiYysrIl0g fSB7Ci0rICAgIHJldHVybiAtMQotK30KLSsKLStpZiAhW3J1bnRvX21haW5dIHsKLSsgICAgcmV0 dXJuIC0xCi0rfQotKwotK3NldCBzcmNmaWxlICRzcmNmaWxlMgotK2dkYl9icmVha3BvaW50IFtn ZGJfZ2V0X2xpbmVfbnVtYmVyICJicmVhay1oZXJlIl0KLSsKLStnZGJfY29udGludWVfdG9fYnJl YWtwb2ludCAiYnJlYWstaGVyZSIgIi4qIGJyZWFrLWhlcmUgLioiCi0rZ2RiX3Rlc3QgImZyYW1l IiB7YmFyIFwocmVmPUAweFswLTlhLWZdKzogMTAsIHJlZkBlbnRyeT1AMHhbMC05YS1mXSs6IDxv cHRpbWl6ZWQgb3V0PlwpIGF0IC4qfQotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmFy Y2gvYW1kNjQtb3B0aW1vdXQtcmVwZWF0LlMgYi9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL2FtZDY0 LW9wdGltb3V0LXJlcGVhdC5TCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMC4u MmY4ZjRkMgotLS0tIC9kZXYvbnVsbAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC9hbWQ2 NC1vcHRpbW91dC1yZXBlYXQuUwotQEAgLTAsMCArMSwyOTcgQEAKLSsvKiBUaGlzIHRlc3RjYXNl IGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgotKwotKyAgIENvcHlyaWdodCAyMDEy LTIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rCi0rICAgVGhpcyBwcm9ncmFt IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkK LSsgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGFzIHB1Ymxpc2hlZCBieQotKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl ciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCi0rICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkg bGF0ZXIgdmVyc2lvbi4KLSsKLSsgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhl IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFO VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyAgIE1FUkNIQU5UQUJJ TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSsgICBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKwotKyAgIFlvdSBz aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlCi0rICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3 dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLwotKwotKy8qIFRoaXMgZmlsZSBpcyBjb21waWxlZCBm cm9tIGdkYi5hcmNoL2FtZDY0LWVudHJ5LXZhbHVlLXBhcmFtLmMKLSsgICB1c2luZyAtZyAtZEEg LVMgLU8yLiAgKi8KLSsKLSsJLmZpbGUJImFtZDY0LW9wdGltb3V0LXJlcGVhdC5jIgotKwkudGV4 dAotKy5MdGV4dDA6Ci0rCS5zZWN0aW9uCS50ZXh0LnVubGlrZWx5LCJheCIsQHByb2diaXRzCi0r LkxDT0xEQjA6Ci0rCS5zZWN0aW9uCS50ZXh0LnN0YXJ0dXAsImF4IixAcHJvZ2JpdHMKLSsuTEhP VEIwOgotKwkucDJhbGlnbiA0LCwxNQotKwkuc2VjdGlvbgkudGV4dC51bmxpa2VseQotKy5MdGV4 dF9jb2xkMDoKLSsJLnNlY3Rpb24JLnRleHQuc3RhcnR1cAotKwkuZ2xvYmwJbWFpbgotKwkudHlw ZQltYWluLCBAZnVuY3Rpb24KLSttYWluOgotKy5MRkIwOgotKwkuZmlsZSAxICJnZGIuYXJjaC9h bWQ2NC1vcHRpbW91dC1yZXBlYXQuYyIKLSsJIyBnZGIuYXJjaC9hbWQ2NC1vcHRpbW91dC1yZXBl YXQuYzoyMAotKwkubG9jIDEgMjAgMAotKwkuY2ZpX3N0YXJ0cHJvYwotKyMgQkxPQ0sgMiBmcmVx OjEwMDAwIHNlcTowCi0rIyBQUkVEOiBFTlRSWSBbMTAwLjAlXSAgKEZBTExUSFJVKQotKy5MVkww OgotKwkjIGdkYi5hcmNoL2FtZDY0LW9wdGltb3V0LXJlcGVhdC5jOjI5Ci0rCS5sb2MgMSAyOSAw Ci0rCXhvcmwJJWVheCwgJWVheAotKyMgU1VDQzogRVhJVCBbMTAwLjAlXSAKLSsJcmV0Ci0rCS5j ZmlfZW5kcHJvYwotKy5MRkUwOgotKwkuc2l6ZQltYWluLCAuLW1haW4KLSsJLnNlY3Rpb24JLnRl eHQudW5saWtlbHkKLSsuTENPTERFMDoKLSsJLnNlY3Rpb24JLnRleHQuc3RhcnR1cAotKy5MSE9U RTA6Ci0rCS50ZXh0Ci0rLkxldGV4dDA6Ci0rCS5zZWN0aW9uCS50ZXh0LnVubGlrZWx5Ci0rLkxl dGV4dF9jb2xkMDoKLSsJLnNlY3Rpb24JLmRlYnVnX2luZm8sIiIsQHByb2diaXRzCi0rLkxkZWJ1 Z19pbmZvMDoKLSsJLmxvbmcJMHg5NwkjIExlbmd0aCBvZiBDb21waWxhdGlvbiBVbml0IEluZm8K LSsJLnZhbHVlCTB4NAkjIERXQVJGIHZlcnNpb24gbnVtYmVyCi0rCS5sb25nCS5MZGVidWdfYWJi cmV2MAkjIE9mZnNldCBJbnRvIEFiYnJldi4gU2VjdGlvbgotKwkuYnl0ZQkweDgJIyBQb2ludGVy IFNpemUgKGluIGJ5dGVzKQotKwkudWxlYjEyOCAweDEJIyAoRElFICgweGIpIERXX1RBR19jb21w aWxlX3VuaXQpCi0rCS5sb25nCS5MQVNGMQkjIERXX0FUX3Byb2R1Y2VyOiAiR05VIEMgNC45LjEg MjAxNDA3MDkgKHByZXJlbGVhc2UpIC1tdHVuZT1nZW5lcmljIC1tYXJjaD14ODYtNjQgLWcgLU8y IgotKwkuYnl0ZQkweDEJIyBEV19BVF9sYW5ndWFnZQotKwkubG9uZwkuTEFTRjIJIyBEV19BVF9u YW1lOiAiZ2RiLmFyY2gvYW1kNjQtb3B0aW1vdXQtcmVwZWF0LmMiCi0rCS5sb25nCS5MQVNGMwkj IERXX0FUX2NvbXBfZGlyOiAiIgotKwkubG9uZwkuTGRlYnVnX3JhbmdlczArMAkjIERXX0FUX3Jh bmdlcwotKwkucXVhZAkwCSMgRFdfQVRfbG93X3BjCi0rCS5sb25nCS5MZGVidWdfbGluZTAJIyBE V19BVF9zdG10X2xpc3QKLSsJLnVsZWIxMjggMHgyCSMgKERJRSAoMHgyOSkgRFdfVEFHX3N1YnBy b2dyYW0pCi0rCQkJIyBEV19BVF9leHRlcm5hbAotKwkubG9uZwkuTEFTRjQJIyBEV19BVF9uYW1l OiAibWFpbiIKLSsJLmJ5dGUJMHgxCSMgRFdfQVRfZGVjbF9maWxlIChnZGIuYXJjaC9hbWQ2NC1v cHRpbW91dC1yZXBlYXQuYykKLSsJLmJ5dGUJMHgxMwkjIERXX0FUX2RlY2xfbGluZQotKwkJCSMg RFdfQVRfcHJvdG90eXBlZAotKwkubG9uZwkweDdjCSMgRFdfQVRfdHlwZQotKwkucXVhZAkuTEZC MAkjIERXX0FUX2xvd19wYwotKwkucXVhZAkuTEZFMC0uTEZCMAkjIERXX0FUX2hpZ2hfcGMKLSsJ LnVsZWIxMjggMHgxCSMgRFdfQVRfZnJhbWVfYmFzZQotKwkuYnl0ZQkweDljCSMgRFdfT1BfY2Fs bF9mcmFtZV9jZmEKLSsJCQkjIERXX0FUX0dOVV9hbGxfY2FsbF9zaXRlcwotKwkubG9uZwkweDdj CSMgRFdfQVRfc2libGluZwotKwkudWxlYjEyOCAweDMJIyAoRElFICgweDRhKSBEV19UQUdfc3Ry dWN0dXJlX3R5cGUpCi0rCS52YWx1ZQkweDQwNAkjIERXX0FUX2J5dGVfc2l6ZQotKwkuYnl0ZQkw eDEJIyBEV19BVF9kZWNsX2ZpbGUgKGdkYi5hcmNoL2FtZDY0LW9wdGltb3V0LXJlcGVhdC5jKQot KwkuYnl0ZQkweDE1CSMgRFdfQVRfZGVjbF9saW5lCi0rCS5sb25nCTB4NmEJIyBEV19BVF9zaWJs aW5nCi0rCS51bGViMTI4IDB4NAkjIChESUUgKDB4NTMpIERXX1RBR19tZW1iZXIpCi0rCS5hc2Np aSAiaVwwIgkjIERXX0FUX25hbWUKLSsJLmJ5dGUJMHgxCSMgRFdfQVRfZGVjbF9maWxlIChnZGIu YXJjaC9hbWQ2NC1vcHRpbW91dC1yZXBlYXQuYykKLSsJLmJ5dGUJMHgxNwkjIERXX0FUX2RlY2xf bGluZQotKwkubG9uZwkweDdjCSMgRFdfQVRfdHlwZQotKwkuYnl0ZQkwCSMgRFdfQVRfZGF0YV9t ZW1iZXJfbG9jYXRpb24KLSsJLnVsZWIxMjggMHg0CSMgKERJRSAoMHg1ZCkgRFdfVEFHX21lbWJl cikKLSsJLmFzY2lpICJ4eHhcMCIJIyBEV19BVF9uYW1lCi0rCS5ieXRlCTB4MQkjIERXX0FUX2Rl Y2xfZmlsZSAoZ2RiLmFyY2gvYW1kNjQtb3B0aW1vdXQtcmVwZWF0LmMpCi0rCS5ieXRlCTB4MTgJ IyBEV19BVF9kZWNsX2xpbmUKLSsJLmxvbmcJMHg4MwkjIERXX0FUX3R5cGUKLSsJLmJ5dGUJMHg0 CSMgRFdfQVRfZGF0YV9tZW1iZXJfbG9jYXRpb24KLSsJLmJ5dGUJMAkjIGVuZCBvZiBjaGlsZHJl biBvZiBESUUgMHg0YQotKwkudWxlYjEyOCAweDUJIyAoRElFICgweDZhKSBEV19UQUdfdmFyaWFi bGUpCi0rCS5hc2NpaSAidlwwIgkjIERXX0FUX25hbWUKLSsJLmJ5dGUJMHgxCSMgRFdfQVRfZGVj bF9maWxlIChnZGIuYXJjaC9hbWQ2NC1vcHRpbW91dC1yZXBlYXQuYykKLSsJLmJ5dGUJMHgxYQkj IERXX0FUX2RlY2xfbGluZQotKwkubG9uZwkweDRhCSMgRFdfQVRfdHlwZQotKwkudWxlYjEyOCAw eDcJIyBEV19BVF9sb2NhdGlvbgotKwkuYnl0ZQkweDMwCSMgRFdfT1BfbGl0MAotKwkuYnl0ZQkw eDlmCSMgRFdfT1Bfc3RhY2tfdmFsdWUKLSsJLmJ5dGUJMHg5MwkjIERXX09QX3BpZWNlCi0rCS51 bGViMTI4IDB4NAotKwkuYnl0ZQkweDkzCSMgRFdfT1BfcGllY2UKLSsJLnVsZWIxMjggMHg0MDAK LSsJLmJ5dGUJMAkjIGVuZCBvZiBjaGlsZHJlbiBvZiBESUUgMHgyOQotKwkudWxlYjEyOCAweDYJ IyAoRElFICgweDdjKSBEV19UQUdfYmFzZV90eXBlKQotKwkuYnl0ZQkweDQJIyBEV19BVF9ieXRl X3NpemUKLSsJLmJ5dGUJMHg1CSMgRFdfQVRfZW5jb2RpbmcKLSsJLmFzY2lpICJpbnRcMCIJIyBE V19BVF9uYW1lCi0rCS51bGViMTI4IDB4NwkjIChESUUgKDB4ODMpIERXX1RBR19hcnJheV90eXBl KQotKwkubG9uZwkweDdjCSMgRFdfQVRfdHlwZQotKwkubG9uZwkweDkzCSMgRFdfQVRfc2libGlu ZwotKwkudWxlYjEyOCAweDgJIyAoRElFICgweDhjKSBEV19UQUdfc3VicmFuZ2VfdHlwZSkKLSsJ LmxvbmcJMHg5MwkjIERXX0FUX3R5cGUKLSsJLmJ5dGUJMHhmZgkjIERXX0FUX3VwcGVyX2JvdW5k Ci0rCS5ieXRlCTAJIyBlbmQgb2YgY2hpbGRyZW4gb2YgRElFIDB4ODMKLSsJLnVsZWIxMjggMHg5 CSMgKERJRSAoMHg5MykgRFdfVEFHX2Jhc2VfdHlwZSkKLSsJLmJ5dGUJMHg4CSMgRFdfQVRfYnl0 ZV9zaXplCi0rCS5ieXRlCTB4NwkjIERXX0FUX2VuY29kaW5nCi0rCS5sb25nCS5MQVNGMAkjIERX X0FUX25hbWU6ICJzaXpldHlwZSIKLSsJLmJ5dGUJMAkjIGVuZCBvZiBjaGlsZHJlbiBvZiBESUUg MHhiCi0rCS5zZWN0aW9uCS5kZWJ1Z19hYmJyZXYsIiIsQHByb2diaXRzCi0rLkxkZWJ1Z19hYmJy ZXYwOgotKwkudWxlYjEyOCAweDEJIyAoYWJicmV2IGNvZGUpCi0rCS51bGViMTI4IDB4MTEJIyAo VEFHOiBEV19UQUdfY29tcGlsZV91bml0KQotKwkuYnl0ZQkweDEJIyBEV19jaGlsZHJlbl95ZXMK LSsJLnVsZWIxMjggMHgyNQkjIChEV19BVF9wcm9kdWNlcikKLSsJLnVsZWIxMjggMHhlCSMgKERX X0ZPUk1fc3RycCkKLSsJLnVsZWIxMjggMHgxMwkjIChEV19BVF9sYW5ndWFnZSkKLSsJLnVsZWIx MjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCi0rCS51bGViMTI4IDB4MwkjIChEV19BVF9uYW1lKQot KwkudWxlYjEyOCAweGUJIyAoRFdfRk9STV9zdHJwKQotKwkudWxlYjEyOCAweDFiCSMgKERXX0FU X2NvbXBfZGlyKQotKwkudWxlYjEyOCAweGUJIyAoRFdfRk9STV9zdHJwKQotKwkudWxlYjEyOCAw eDU1CSMgKERXX0FUX3JhbmdlcykKLSsJLnVsZWIxMjggMHgxNwkjIChEV19GT1JNX3NlY19vZmZz ZXQpCi0rCS51bGViMTI4IDB4MTEJIyAoRFdfQVRfbG93X3BjKQotKwkudWxlYjEyOCAweDEJIyAo RFdfRk9STV9hZGRyKQotKwkudWxlYjEyOCAweDEwCSMgKERXX0FUX3N0bXRfbGlzdCkKLSsJLnVs ZWIxMjggMHgxNwkjIChEV19GT1JNX3NlY19vZmZzZXQpCi0rCS5ieXRlCTAKLSsJLmJ5dGUJMAot KwkudWxlYjEyOCAweDIJIyAoYWJicmV2IGNvZGUpCi0rCS51bGViMTI4IDB4MmUJIyAoVEFHOiBE V19UQUdfc3VicHJvZ3JhbSkKLSsJLmJ5dGUJMHgxCSMgRFdfY2hpbGRyZW5feWVzCi0rCS51bGVi MTI4IDB4M2YJIyAoRFdfQVRfZXh0ZXJuYWwpCi0rCS51bGViMTI4IDB4MTkJIyAoRFdfRk9STV9m bGFnX3ByZXNlbnQpCi0rCS51bGViMTI4IDB4MwkjIChEV19BVF9uYW1lKQotKwkudWxlYjEyOCAw eGUJIyAoRFdfRk9STV9zdHJwKQotKwkudWxlYjEyOCAweDNhCSMgKERXX0FUX2RlY2xfZmlsZSkK LSsJLnVsZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCi0rCS51bGViMTI4IDB4M2IJIyAoRFdf QVRfZGVjbF9saW5lKQotKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkKLSsJLnVsZWIx MjggMHgyNwkjIChEV19BVF9wcm90b3R5cGVkKQotKwkudWxlYjEyOCAweDE5CSMgKERXX0ZPUk1f ZmxhZ19wcmVzZW50KQotKwkudWxlYjEyOCAweDQ5CSMgKERXX0FUX3R5cGUpCi0rCS51bGViMTI4 IDB4MTMJIyAoRFdfRk9STV9yZWY0KQotKwkudWxlYjEyOCAweDExCSMgKERXX0FUX2xvd19wYykK LSsJLnVsZWIxMjggMHgxCSMgKERXX0ZPUk1fYWRkcikKLSsJLnVsZWIxMjggMHgxMgkjIChEV19B VF9oaWdoX3BjKQotKwkudWxlYjEyOCAweDcJIyAoRFdfRk9STV9kYXRhOCkKLSsJLnVsZWIxMjgg MHg0MAkjIChEV19BVF9mcmFtZV9iYXNlKQotKwkudWxlYjEyOCAweDE4CSMgKERXX0ZPUk1fZXhw cmxvYykKLSsJLnVsZWIxMjggMHgyMTE3CSMgKERXX0FUX0dOVV9hbGxfY2FsbF9zaXRlcykKLSsJ LnVsZWIxMjggMHgxOQkjIChEV19GT1JNX2ZsYWdfcHJlc2VudCkKLSsJLnVsZWIxMjggMHgxCSMg KERXX0FUX3NpYmxpbmcpCi0rCS51bGViMTI4IDB4MTMJIyAoRFdfRk9STV9yZWY0KQotKwkuYnl0 ZQkwCi0rCS5ieXRlCTAKLSsJLnVsZWIxMjggMHgzCSMgKGFiYnJldiBjb2RlKQotKwkudWxlYjEy OCAweDEzCSMgKFRBRzogRFdfVEFHX3N0cnVjdHVyZV90eXBlKQotKwkuYnl0ZQkweDEJIyBEV19j aGlsZHJlbl95ZXMKLSsJLnVsZWIxMjggMHhiCSMgKERXX0FUX2J5dGVfc2l6ZSkKLSsJLnVsZWIx MjggMHg1CSMgKERXX0ZPUk1fZGF0YTIpCi0rCS51bGViMTI4IDB4M2EJIyAoRFdfQVRfZGVjbF9m aWxlKQotKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkKLSsJLnVsZWIxMjggMHgzYgkj IChEV19BVF9kZWNsX2xpbmUpCi0rCS51bGViMTI4IDB4YgkjIChEV19GT1JNX2RhdGExKQotKwku dWxlYjEyOCAweDEJIyAoRFdfQVRfc2libGluZykKLSsJLnVsZWIxMjggMHgxMwkjIChEV19GT1JN X3JlZjQpCi0rCS5ieXRlCTAKLSsJLmJ5dGUJMAotKwkudWxlYjEyOCAweDQJIyAoYWJicmV2IGNv ZGUpCi0rCS51bGViMTI4IDB4ZAkjIChUQUc6IERXX1RBR19tZW1iZXIpCi0rCS5ieXRlCTAJIyBE V19jaGlsZHJlbl9ubwotKwkudWxlYjEyOCAweDMJIyAoRFdfQVRfbmFtZSkKLSsJLnVsZWIxMjgg MHg4CSMgKERXX0ZPUk1fc3RyaW5nKQotKwkudWxlYjEyOCAweDNhCSMgKERXX0FUX2RlY2xfZmls ZSkKLSsJLnVsZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCi0rCS51bGViMTI4IDB4M2IJIyAo RFdfQVRfZGVjbF9saW5lKQotKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkKLSsJLnVs ZWIxMjggMHg0OQkjIChEV19BVF90eXBlKQotKwkudWxlYjEyOCAweDEzCSMgKERXX0ZPUk1fcmVm NCkKLSsJLnVsZWIxMjggMHgzOAkjIChEV19BVF9kYXRhX21lbWJlcl9sb2NhdGlvbikKLSsJLnVs ZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCi0rCS5ieXRlCTAKLSsJLmJ5dGUJMAotKwkudWxl YjEyOCAweDUJIyAoYWJicmV2IGNvZGUpCi0rCS51bGViMTI4IDB4MzQJIyAoVEFHOiBEV19UQUdf dmFyaWFibGUpCi0rCS5ieXRlCTAJIyBEV19jaGlsZHJlbl9ubwotKwkudWxlYjEyOCAweDMJIyAo RFdfQVRfbmFtZSkKLSsJLnVsZWIxMjggMHg4CSMgKERXX0ZPUk1fc3RyaW5nKQotKwkudWxlYjEy OCAweDNhCSMgKERXX0FUX2RlY2xfZmlsZSkKLSsJLnVsZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0 YTEpCi0rCS51bGViMTI4IDB4M2IJIyAoRFdfQVRfZGVjbF9saW5lKQotKwkudWxlYjEyOCAweGIJ IyAoRFdfRk9STV9kYXRhMSkKLSsJLnVsZWIxMjggMHg0OQkjIChEV19BVF90eXBlKQotKwkudWxl YjEyOCAweDEzCSMgKERXX0ZPUk1fcmVmNCkKLSsJLnVsZWIxMjggMHgyCSMgKERXX0FUX2xvY2F0 aW9uKQotKwkudWxlYjEyOCAweDE4CSMgKERXX0ZPUk1fZXhwcmxvYykKLSsJLmJ5dGUJMAotKwku Ynl0ZQkwCi0rCS51bGViMTI4IDB4NgkjIChhYmJyZXYgY29kZSkKLSsJLnVsZWIxMjggMHgyNAkj IChUQUc6IERXX1RBR19iYXNlX3R5cGUpCi0rCS5ieXRlCTAJIyBEV19jaGlsZHJlbl9ubwotKwku dWxlYjEyOCAweGIJIyAoRFdfQVRfYnl0ZV9zaXplKQotKwkudWxlYjEyOCAweGIJIyAoRFdfRk9S TV9kYXRhMSkKLSsJLnVsZWIxMjggMHgzZQkjIChEV19BVF9lbmNvZGluZykKLSsJLnVsZWIxMjgg MHhiCSMgKERXX0ZPUk1fZGF0YTEpCi0rCS51bGViMTI4IDB4MwkjIChEV19BVF9uYW1lKQotKwku dWxlYjEyOCAweDgJIyAoRFdfRk9STV9zdHJpbmcpCi0rCS5ieXRlCTAKLSsJLmJ5dGUJMAotKwku dWxlYjEyOCAweDcJIyAoYWJicmV2IGNvZGUpCi0rCS51bGViMTI4IDB4MQkjIChUQUc6IERXX1RB R19hcnJheV90eXBlKQotKwkuYnl0ZQkweDEJIyBEV19jaGlsZHJlbl95ZXMKLSsJLnVsZWIxMjgg MHg0OQkjIChEV19BVF90eXBlKQotKwkudWxlYjEyOCAweDEzCSMgKERXX0ZPUk1fcmVmNCkKLSsJ LnVsZWIxMjggMHgxCSMgKERXX0FUX3NpYmxpbmcpCi0rCS51bGViMTI4IDB4MTMJIyAoRFdfRk9S TV9yZWY0KQotKwkuYnl0ZQkwCi0rCS5ieXRlCTAKLSsJLnVsZWIxMjggMHg4CSMgKGFiYnJldiBj b2RlKQotKwkudWxlYjEyOCAweDIxCSMgKFRBRzogRFdfVEFHX3N1YnJhbmdlX3R5cGUpCi0rCS5i eXRlCTAJIyBEV19jaGlsZHJlbl9ubwotKwkudWxlYjEyOCAweDQ5CSMgKERXX0FUX3R5cGUpCi0r CS51bGViMTI4IDB4MTMJIyAoRFdfRk9STV9yZWY0KQotKwkudWxlYjEyOCAweDJmCSMgKERXX0FU X3VwcGVyX2JvdW5kKQotKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkKLSsJLmJ5dGUJ MAotKwkuYnl0ZQkwCi0rCS51bGViMTI4IDB4OQkjIChhYmJyZXYgY29kZSkKLSsJLnVsZWIxMjgg MHgyNAkjIChUQUc6IERXX1RBR19iYXNlX3R5cGUpCi0rCS5ieXRlCTAJIyBEV19jaGlsZHJlbl9u bwotKwkudWxlYjEyOCAweGIJIyAoRFdfQVRfYnl0ZV9zaXplKQotKwkudWxlYjEyOCAweGIJIyAo RFdfRk9STV9kYXRhMSkKLSsJLnVsZWIxMjggMHgzZQkjIChEV19BVF9lbmNvZGluZykKLSsJLnVs ZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCi0rCS51bGViMTI4IDB4MwkjIChEV19BVF9uYW1l KQotKwkudWxlYjEyOCAweGUJIyAoRFdfRk9STV9zdHJwKQotKwkuYnl0ZQkwCi0rCS5ieXRlCTAK LSsJLmJ5dGUJMAotKwkuc2VjdGlvbgkuZGVidWdfYXJhbmdlcywiIixAcHJvZ2JpdHMKLSsJLmxv bmcJMHgyYwkjIExlbmd0aCBvZiBBZGRyZXNzIFJhbmdlcyBJbmZvCi0rCS52YWx1ZQkweDIJIyBE V0FSRiBWZXJzaW9uCi0rCS5sb25nCS5MZGVidWdfaW5mbzAJIyBPZmZzZXQgb2YgQ29tcGlsYXRp b24gVW5pdCBJbmZvCi0rCS5ieXRlCTB4OAkjIFNpemUgb2YgQWRkcmVzcwotKwkuYnl0ZQkwCSMg U2l6ZSBvZiBTZWdtZW50IERlc2NyaXB0b3IKLSsJLnZhbHVlCTAJIyBQYWQgdG8gMTYgYnl0ZSBi b3VuZGFyeQotKwkudmFsdWUJMAotKwkucXVhZAkuTEZCMAkjIEFkZHJlc3MKLSsJLnF1YWQJLkxG RTAtLkxGQjAJIyBMZW5ndGgKLSsJLnF1YWQJMAotKwkucXVhZAkwCi0rCS5zZWN0aW9uCS5kZWJ1 Z19yYW5nZXMsIiIsQHByb2diaXRzCi0rLkxkZWJ1Z19yYW5nZXMwOgotKwkucXVhZAkuTEZCMAkj IE9mZnNldCAwCi0rCS5xdWFkCS5MRkUwCi0rCS5xdWFkCTAKLSsJLnF1YWQJMAotKwkuc2VjdGlv bgkuZGVidWdfbGluZSwiIixAcHJvZ2JpdHMKLSsuTGRlYnVnX2xpbmUwOgotKwkuc2VjdGlvbgku ZGVidWdfc3RyLCJNUyIsQHByb2diaXRzLDEKLSsuTEFTRjA6Ci0rCS5zdHJpbmcJInNpemV0eXBl IgotKy5MQVNGMjoKLSsJLnN0cmluZwkiZ2RiLmFyY2gvYW1kNjQtb3B0aW1vdXQtcmVwZWF0LmMi Ci0rLkxBU0YxOgotKwkuc3RyaW5nCSJHTlUgQyA0LjkuMSAyMDE0MDcwOSAocHJlcmVsZWFzZSkg LW10dW5lPWdlbmVyaWMgLW1hcmNoPXg4Ni02NCAtZyAtTzIiCi0rLkxBU0YzOgotKwkuc3RyaW5n CSIiCi0rLkxBU0Y0OgotKwkuc3RyaW5nCSJtYWluIgotKwkuaWRlbnQJIkdDQzogKEdOVSkgNC45 LjEgMjAxNDA3MDkgKHByZXJlbGVhc2UpIgotKwkuc2VjdGlvbgkubm90ZS5HTlUtc3RhY2ssIiIs QHByb2diaXRzCi1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC9hbWQ2NC1vcHRp bW91dC1yZXBlYXQuYyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gvYW1kNjQtb3B0aW1vdXQtcmVw ZWF0LmMKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi5hMzJiNmRlCi0tLS0g L2Rldi9udWxsCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL2FtZDY0LW9wdGltb3V0LXJl cGVhdC5jCi1AQCAtMCwwICsxLDI5IEBACi0rLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdE QiwgdGhlIEdOVSBkZWJ1Z2dlci4KLSsKLSsgICBDb3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KLSsKLSsgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsg eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotKyAgIGl0IHVuZGVyIHRoZSB0 ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0r ICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUg TGljZW5zZSwgb3IKLSsgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotKwot KyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg YmUgdXNlZnVsLAotKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rCi0rICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk IGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsgICBhbG9uZyB3aXRo IHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMv Pi4gICovCi0rCi0raW50Ci0rbWFpbiAodm9pZCkKLSt7Ci0rICBzdHJ1Y3QKLSsgICAgewotKyAg ICAgIGludCBpOwotKyAgICAgIGludCB4eHhbMHgxMDBdOwotKyAgICB9Ci0rICB2ID0geyAwIH07 Ci0rCi0rICByZXR1cm4gdi5pOwotK30KLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5h cmNoL2FtZDY0LW9wdGltb3V0LXJlcGVhdC5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL2Ft ZDY0LW9wdGltb3V0LXJlcGVhdC5leHAKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAw MDAwLi5mM2M5M2E0Ci0tLS0gL2Rldi9udWxsCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5hcmNo L2FtZDY0LW9wdGltb3V0LXJlcGVhdC5leHAKLUBAIC0wLDAgKzEsMzYgQEAKLSsjIENvcHlyaWdo dCAoQykgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjCi0rIyBUaGlzIHBy b2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1v ZGlmeQotKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp dGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCi0rIyAoYXQgeW91ciBvcHRpb24pIGFu eSBsYXRlciB2ZXJzaW9uLgotKyMKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0 aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSsjIE1FUkNIQU5UQUJJ TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSsjIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rIwotKyMgWW91IHNo b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UKLSsjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cu Z251Lm9yZy9saWNlbnNlcy8+LgotKwotK3N0YW5kYXJkX3Rlc3RmaWxlIC5TIC5jCi0rc2V0IG9w dHMge30KLSsKLStpZiBbaW5mbyBleGlzdHMgQ09NUElMRV0gewotKyAgICAjIG1ha2UgY2hlY2sg UlVOVEVTVEZMQUdTPSJnZGIuYXJjaC9hbWQ2NC1vcHRpbW91dC1yZXBlYXQuZXhwIENPTVBJTEU9 MSIKLSsgICAgc2V0IHNyY2ZpbGUgJHtzcmNmaWxlMn0KLSsgICAgbGFwcGVuZCBvcHRzIGRlYnVn IG9wdGltaXplPS1PMgotK30gZWxzZWlmIHsgIVtpc3RhcmdldCB4ODZfNjQtKi0qIF0gfHwgIVtp c19scDY0X3RhcmdldF0gfSB7Ci0rICAgIHZlcmJvc2UgIlNraXBwaW5nIGFtZDY0LW9wdGltb3V0 LXJlcGVhdC4iCi0rICAgIHJldHVybgotK30KLSsKLStpZiB7IFtwcmVwYXJlX2Zvcl90ZXN0aW5n ICR7dGVzdGZpbGV9LmV4cCAke3Rlc3RmaWxlfSAke3NyY2ZpbGV9ICRvcHRzXSB9IHsKLSsgICAg cmV0dXJuIC0xCi0rfQotKwotK2lmICFbcnVudG9fbWFpbl0gewotKyAgICByZXR1cm4gLTEKLSt9 Ci0rCi0rZ2RiX3Rlc3QgInByaW50IHYiIHsgPSB7aSA9IDAsIHh4eCA9IHs8b3B0aW1pemVkIG91 dD4gPHJlcGVhdHMgMjU2IHRpbWVzPn19fQotCi0tLUR4bnExeldYdkZGMFE5M3YtLQotCgpkaWZm IC0tZ2l0IGEvZ2RiLWVudHJ5dmFsLWNyYXNoLTFvZjMucGF0Y2ggYi9nZGItZW50cnl2YWwtY3Jh c2gtMW9mMy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41OGZkMzRj Ci0tLSAvZGV2L251bGwKKysrIGIvZ2RiLWVudHJ5dmFsLWNyYXNoLTFvZjMucGF0Y2gKQEAgLTAs MCArMSwxOTQgQEAKK2h0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDE0LTA3 L21zZzAwNTMwLmh0bWwKK1N1YmplY3Q6IFtyZWFkX2ZyYW1lX2FyZyBwYXRjaF0gSGFuZGxlIHBh cnRpYWxseSBvcHRpbWl6ZWQgb3V0IHZhbHVlcyBzaW1pbGFybHkgdG8gdW5hdmFpbGFibGUgdmFs dWVzIChSZTogW3BhdGNodjJdIEZpeCBjcmFzaCBvbiBvcHRpbWl6ZWQtb3V0IGVudHJ5IGRhdGEg dmFsdWVzKQorCisKKy0tVjg4czVnYURWUHpaMEtDcQorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWlu OyBjaGFyc2V0PXVzLWFzY2lpCitDb250ZW50LURpc3Bvc2l0aW9uOiBpbmxpbmUKKworT24gVGh1 LCAxNyBKdWwgMjAxNCAxNDoyMzowNiArMDIwMCwgUGVkcm8gQWx2ZXMgd3JvdGU6Cis+IE9uIDA3 LzE2LzIwMTQgMTA6NTggUE0sIEphbiBLcmF0b2NodmlsIHdyb3RlOgorPiA+IFRoaXMgcGF0Y2gg aXMgYXBwYXJlbnRseSBub3Qgc3VpdGFibGUgZm9yIGdkYi03Ljggd2hpY2ggaXMgSSBndWVzcyBv ZnRlbgorPiA+IGNyYXNoaW5nIG9uIC1PMiAtZyBlbnRyeSB2YWx1ZXMgc28gdGhlcmUgY291bGQg YmUgc29tZSByYXRoZXIgbWluaW1hbCBjcmFzaAorPiA+IGF2b2lkaW5nIHBhdGNoIGluc3RlYWQu Cis+IAorPiBZZWFoLgorPiAKKz4gU28gdGhpcyB3YXMgb3JpZ2luYWxseSAiY2F1c2VkIiAobW9y ZSBleHBvc2VkKSBieSA0ZjE0OTEwZjoKKz4gICAgIAorPiAgICAgICAgIGdkYi9DaGFuZ2VMb2cK Kz4gICAgICAgICAyMDEzLTExLTI2ICBBbmRyZXcgQnVyZ2VzcyAgPGFidXJnZXNzQGJyb2FkY29t LmNvbT4KKz4gICAgIAorPiAgICAgICAgICAgICAqIHZhbHVlLmMgKGFsbG9jYXRlX29wdGltaXpl ZF9vdXRfdmFsdWUpOiBNYXJrIHZhbHVlIGFzIG5vbi1sYXp5LgorPiAKKz4gSSB0cmllZCBhIGZl dyBhcHByb2FjaGVzIGluIHZhbHVlX2F2YWlsYWJsZV9jb250ZW50c19lcQorPiB0b2RheSwgYW5k IGVuZGVkIHVwIHRoaW5raW5nIHRoYXQgdGhlIHNpbXBsZXN0IHNob3VsZCBiZSB0bworPiBqdXN0 IHJldmVydCB0aGF0IHBhdGNoIHVudGlsIHdlIGhhdmUgdGhlIGZ1bGxlciBmaXggaW4gcGxhY2Uu CisKK09LLCB0aGF0IHNlZW1zIGFzIHRoZSBiZXN0IHNvbHV0aW9uIGZvciA3LjggdG8gbWUuCisK KworPiBXaGlsZSBkb2luZyBqdXN0IHRoYXQgZml4ZXMgdGhlIGNyYXNoLCBpdCBzdXJwcmlzaW5n bHkgY2F1c2VzCis+IG9uZSBvZiB5b3VyIG5ldyB0ZXN0cyB0byBGQUlMOgorPiAKKz4gIChnZGIp IGZyYW1lCis+ICAjMCAgYmFyIChyZWY9cmVmQGVudHJ5PUAweDdmZmZmZmZmZDE4NDogMTApIGF0 IGdkYi5hcmNoL2FtZDY0LWVudHJ5LXZhbHVlLXBhcmFtcmVmLmNjOjIzCis+ICAyMyAgICAgICAg dnYrKzsgLyogYnJlYWstaGVyZSAqLworPiAgKGdkYikgRkFJTDogZ2RiLmFyY2gvYW1kNjQtZW50 cnktdmFsdWUtcGFyYW1yZWYuZXhwOiBmcmFtZQorCitUaGVyZSBpcyBhIGJ1ZyBpbiB0aGF0IGVu dHJ5IHZhbHVlIGNvZGUgb2YgbWluZSwgZml4IGF0dGFjaGVkLgorVGhlIHRlc3RjYXNlIHRoZW4g UEFTU2VzIHdpdGggdGhlIHJldmVydGVkIG9wdGltaXphdGlvbiBieSBBbmRyZXcgQnVyZ2Vzcy4K KworRm9yIHRoZSBhdHRhY2hlZCBmaXggLSBpZiB5b3Ugbml0cGljayB0aGUgbWlzc2luZyBjb25k aXRpb25hbCBjYXNlOgorCXZhbHVlX29wdGltaXplZF9vdXQgKHZhbF9kZXJlZikgJiYgdmFsdWVf b3B0aW1pemVkX291dCAoZW50cnl2YWxfZGVyZWYpCitJdCBpcyBub3QgZGV0ZWN0ZWQgdGhlcmUg YnV0IHRoYXQgSU1PIGRvZXMgbm90IG1hdHRlciBtdWNoIGFzCisgKiBJdCBpcyBmb3IgNy44IG9u bHksIGZvciB0cnVuayBpdCB3aWxsIGdldCBjb21wYXJlZCBjb3JyZWN0bHkgdGhhbmtzIHRvIHRo ZQorICAgbmV3IGltcGxlbWVudGF0aW9uIG9mIHZhbHVlX2F2YWlsYWJsZV9jb250ZW50c19lcSgp CisgICBjYWxsZWQgdmFsdWVfY29udGVudHNfZXEoKS4KKyAqIElmIHRoZSBjb25kaXRpb25hbAor ICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWwgIT0gdmFsX2RlcmVmCisgICAgICAgICAgICAg ICAgICAgICAgICAgICYmICF2YWx1ZV9vcHRpbWl6ZWRfb3V0ICh2YWxfZGVyZWYpCisgICAgICAg ICAgICAgICAgICAgICAgICAgICYmICF2YWx1ZV9vcHRpbWl6ZWRfb3V0IChlbnRyeXZhbF9kZXJl ZikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgdmFsdWVfYXZhaWxhYmxlX2NvbnRlbnRz X2VxICh2YWxfZGVyZWYsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZW50cnl2YWxfZGVyZWYsIDAsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUWVBFX0xFTkdUSCAodHlwZV9k ZXJlZikpKQorICAgICAgICAgICAgICAgICAgICAgICAgdmFsX2VxdWFsID0gMTsKKyAgIGZhaWxz IGl0IG1heSBqdXN0IHByaW50CisgICAgIGJhciAocmVmPUAweDdmZmZmZmZmZDkwNDogPG9wdGlt aXplZCBvdXQ+LCByZWZAZW50cnk9QDB4N2ZmZmZmZmZkOTA0OiA8b3B0aW1pemVkIG91dD4pCisg ICAob3Igc29tZSB2YXJpYW50IHdpdGggc29tZSBwYXJ0aWFsbHkgb3B0aW1pemVkLW91dC91bmF2 YWlsYWJsZSBwYXJ0cykKKyAgIGluc3RlYWQgb2YgdGhlIG1vcmUgY29ycmVjdAorICAgICBiYXIg KHJlZj1yZWZAZW50cnk9QDB4N2ZmZmZmZmZkOTA0OiA8b3B0aW1pemVkIG91dD4pCisgICB3aGlj aCBpcyBub3QgbXVjaCBhIGJ1Zy4KKworVGhlIGF0dGFjaGVkIGZpeCBubyBsb25nZSBtYWtlcyBz ZW5zZSBhZnRlciB0aGUgbmV3IGltcGxlbWVudGF0aW9uCitvZiB2YWx1ZV9hdmFpbGFibGVfY29u dGVudHNfZXEoKSBjYWxsZWQgdmFsdWVfY29udGVudHNfZXEoKSBnZXRzIGFwcGxpZWQgYXMgaXQK K2hhbmRsZXMgYWxsIHRoZSBvcHRpbWl6ZWQtb3V0L3VuYXZhaWxhYmxlIHZhbHVlcyBvbiBpdHMg b3duLCB0aGVyZWZvcmUgdGhlCithdHRhY2hlZCBwYXRjaCBpcyByZWFsbHkgb25seSBmb3IgNy44 LgorCisKKz4gVHVybnMgb3V0IGl0J3MgdGhlIGNvZGUgZGlzYWJsZWQgaW4gdmFsdWVfb2ZfZHdh cmZfcmVnX2VudHJ5OgorPiAKKz4gICB0YXJnZXRfdmFsID0gZHdhcmZfZW50cnlfcGFyYW1ldGVy X3RvX3ZhbHVlIChwYXJhbWV0ZXIsCis+IAkJCQkJICAgICAgIFRZUEVfTEVOR1RIICh0YXJnZXRf dHlwZSksCis+IAkJCQkJICAgICAgIHRhcmdldF90eXBlLCBjYWxsZXJfZnJhbWUsCis+IAkJCQkJ ICAgICAgIGNhbGxlcl9wZXJfY3UpOworPiAKKz4gICAvKiB2YWx1ZV9hc19hZGRyZXNzIGRlcmVm ZXJlbmNlcyBUWVBFX0NPREVfUkVGLiAgKi8KKz4gICBhZGRyID0gZXh0cmFjdF90eXBlZF9hZGRy ZXNzICh2YWx1ZV9jb250ZW50cyAob3V0ZXJfdmFsKSwgY2hlY2tlZF90eXBlKTsKKz4gCis+ICAg LyogVGhlIHRhcmdldCBlbnRyeSB2YWx1ZSBoYXMgYXJ0aWZpY2lhbCBhZGRyZXNzIG9mIHRoZSBl bnRyeSB2YWx1ZQorPiAgICAgIHJlZmVyZW5jZS4gICovCis+ICAgVkFMVUVfTFZBTCAodGFyZ2V0 X3ZhbCkgPSBsdmFsX21lbW9yeTsKKz4gICBzZXRfdmFsdWVfYWRkcmVzcyAodGFyZ2V0X3ZhbCwg YWRkcik7Cis+IAorPiBJdCBsb29rcyBxdWl0ZSB3cm9uZyB0byBtZSB0byBqdXN0IGNoYW5nZSBh IHZhbHVlJ3MgbHZhbCBsaWtlIHRoYXQuCis+IAorPiBJIHJhbiB0aGUgdGVzdHN1aXRlIHdpdGgg dGhhdCBjb2RlIGRpc2FibGVkIChsaWtlIGluIHRoZSBwYXRjaCBiZWxvdyksCis+IGFuZCB0aGF0 IGNhdXNlZCBubyByZWdyZXNzaW9ucy4gIEkgY2FuJ3Qgc2F5IEkgcmVhbGx5IHVuZGVyc3RhbmQg dGhlCis+IGludGVudGlvbiBoZXJlIHRob3VnaC4gIFdoYXQgd291bGQgd2UgYmUgbWlzc2luZyBp ZiB3ZSByZW1vdmVkIHRoYXQgY29kZT8KKworSSBjYW5ub3QgcmVwcm9kdWNlIGFueSB3cm9uZyBj YXNlIGhhdmluZyB0aGUgY29kZSBhYm92ZSAjaWYgMC1lZC4KKworSSBqdXN0IGRvIG5vdCBmaW5k IGl0IGNvcnJlY3QgdG8gaGF2ZSBpdCBkaXNhYmxlZC4gIEJ1dCBhdCB0aGUgc2FtZSB0aW1lIEkg ZG8KK2xpa2UgbXVjaCAvIEkgZG8gbm90IGZpbmQgY29ycmVjdCB0aGUgY29kZSBteXNlbGYuICBJ dCBpcyBhIGJpdCBwcm9ibGVtYXRpYyB0bworaGF2ZSBzdHJ1Y3QgdmFsdWUgZGVzY3JpYmluZyBh IG1lbW9yeSBjb250ZW50IHdoaWNoIGlzIG5vIGxvbmdlciBwcmVzZW50Cit0aGVyZS4KKworV2hh dCBoYXBwZW5zIHRoZXJlOgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCit2b2xhdGlsZSBpbnQgdnY7 CitzdGF0aWMgX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKSBpbnQKK2JhciAoaW50ICZyZWYpIHsK KyAgcmVmID0gMjA7CisgIHZ2Kys7IC8qIGJyZWFrLWhlcmUgKi8KKyAgcmV0dXJuIHJlZjsKK30K K2ludCBtYWluICh2b2lkKSB7CisgIGludCB2YXIgPSAxMDsKKyAgcmV0dXJuIGJhciAodmFyKTsK K30KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDw0PjxjNz46IEFiYnJldiBOdW1iZXI6IDEzIChE V19UQUdfR05VX2NhbGxfc2l0ZV9wYXJhbWV0ZXIpCisgICAgPGM4PiAgIERXX0FUX2xvY2F0aW9u ICAgIDogMSBieXRlIGJsb2NrOiA1NSAgICAgICAgIChEV19PUF9yZWc1IChyZGkpKQorICAgIDxj YT4gICBEV19BVF9HTlVfY2FsbF9zaXRlX3ZhbHVlOiAyIGJ5dGUgYmxvY2s6IDkxIDc0ICAgICAg IChEV19PUF9mYnJlZzogLTEyKQorICAgIDxjZD4gICBEV19BVF9HTlVfY2FsbF9zaXRlX2RhdGFf dmFsdWU6IDEgYnl0ZSBibG9jazogM2EgICAgIChEV19PUF9saXQxMCkKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorZ2RiIC1leCAnYiB2YWx1ZV9hZGRyJyAtZXggciAtLWFyZ3MgLi4vZ2RiIC4vMSAt ZXggJ3dhdGNoIHZ2JyAtZXggciAtZXggJ3AgJnJlZkBlbnRyeScKKy0+Cis2ICAgIHJldHVybiBy ZWY7CitiYXIgKHJlZj1AMHg3ZmZmZmZmZmQ5NDQ6IDIwLCByZWZAZW50cnk9QDB4N2ZmZmZmZmZk OTQ0OiAxMCkgYXQgMS5DOjI1CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0F0IC8qIGJyZWFrLWhl cmUgKi8gc3RydWN0IHZhbHVlIHZhcmlhYmxlICdyZWYnIGlzIFRZUEVfQ09ERV9SRUYuCisKK1dp dGggRlNGIEdEQiBIRUFEOgorKGdkYikgeC9neCBhcmcxLmNvbnRlbnRzCisweDYwMDQwMDBhNGFk MDogMHgwMDAwN2ZmZmZmZmZkOTQ0CisoZ2RiKSBwICgoc3RydWN0IHZhbHVlICopYXJnMS5sb2Nh dGlvbi5jb21wdXRlZC5jbG9zdXJlKS5sdmFsCiskMSA9IGx2YWxfbWVtb3J5CisoZ2RiKSBwL3gg KChzdHJ1Y3QgdmFsdWUgKilhcmcxLmxvY2F0aW9uLmNvbXB1dGVkLmNsb3N1cmUpLmxvY2F0aW9u LmFkZHJlc3MKKyQzID0gMHg3ZmZmZmZmZmQ5NDQKKworV2l0aCB5b3VyICNpZjAtZWQgY29kZToK KyhnZGIpIHgvZ3ggYXJnMS5jb250ZW50cworMHg2MDA0MDAwYTRhZDA6IDB4MDAwMDdmZmZmZmZm ZDk0NAorKGdkYikgcCAoKHN0cnVjdCB2YWx1ZSAqKWFyZzEubG9jYXRpb24uY29tcHV0ZWQuY2xv c3VyZSkubHZhbAorJDggPSBub3RfbHZhbAorKGdkYikgcC94ICgoc3RydWN0IHZhbHVlICopYXJn MS5sb2NhdGlvbi5jb21wdXRlZC5jbG9zdXJlKS5sb2NhdGlvbi5hZGRyZXNzCiskOSA9IDB4MAor CitJIGRvIG5vdCBzZWUgaG93IHRvIGFjY2VzcworCSgoc3RydWN0IHZhbHVlICopYXJnMS5sb2Nh dGlvbi5jb21wdXRlZC5jbG9zdXJlKS5sb2NhdGlvbi5hZGRyZXNzCitmcm9tIEdEQiBDTEkuICBU cnlpbmcKKyhnZGIpIHAgJnJlZkBlbnRyeQord2lsbCBpbnZva2UgdmFsdWVfYWRkcigpJ3M6Cisg IGlmIChUWVBFX0NPREUgKHR5cGUpID09IFRZUEVfQ09ERV9SRUYpCisgICAgICAvKiBDb3B5IHRo ZSB2YWx1ZSwgYnV0IGNoYW5nZSB0aGUgdHlwZSBmcm9tIChUJikgdG8gKFQqKS4gIFdlCisgICAg ICAgICBrZWVwIHRoZSBzYW1lIGxvY2F0aW9uIGluZm9ybWF0aW9uLCB3aGljaCBpcyBlZmZpY2ll bnQsIGFuZAorICAgICAgICAgYWxsb3dzICYoJlgpIHRvIGdldCB0aGUgbG9jYXRpb24gY29udGFp bmluZyB0aGUgcmVmZXJlbmNlLiAgKi8KK2FuZCB0aGVyZWZvcmUgdGhlIGFkZHJlc3MgZ2V0cyBm ZXRjaGVkIGFscmVhZHkgZnJvbQorICBhcmcxLmNvbnRlbnRzCithbmQgbm90IGZyb20KKyAgKChz dHJ1Y3QgdmFsdWUgKilhcmcxLmxvY2F0aW9uLmNvbXB1dGVkLmNsb3N1cmUpLmxvY2F0aW9uLmFk ZHJlc3MKKy4KKworQW5kIGZvciBhbnkgb3RoZXIgdHlwZSB0aGFuIFRZUEVfQ09ERV9SRUYgdGhp cyBjb2RlIHlvdSAjaWYgMC1lZCBkb2VzIG5vdCBnZXQKK2V4ZWN1dGVkIGF0IGFsbC4gIFRoaXMg RFdfQVRfR05VX2NhbGxfc2l0ZV9kYXRhX3ZhbHVlIERXQVJGIHdhcyBtZWFudAorcHJpbWFyaWx5 IGZvciBGb3J0cmFuIGJ1dCB3aXRoIC1PMCBlbnRyeSB2YWx1ZXMgZG8gbm90IGdldCBwcm9kdWNl ZAorYW5kIHdpdGggLU9nIGFuZCBoaWdoZXIgRm9ydHJhbiBhbHdheXMgb3B0aW1pemVzIG91dCB0 aGUgcGFzc2luZyBieSByZWZlcmVuY2UuCisKK0lmIHlvdSBkbyBub3QgbGlrZSB0aGUgI2lmIDAg Y29kZSB0aGVyZSBJIGFtIE9LIHdpdGggcmVtb3ZpbmcgaXQgYXMgSSBkbyBub3QKK2tub3cgaG93 IHRvIG1ha2UgaXQncyB1c2UgcmVwcm9kdWNpYmxlIGZvciB1c2VyIGFueXdheS4gIEluIHRoZSB3 b3JzdCBjYXNlCistIGlmIHRoZXJlIHJlYWxseSBpcyBzb21lIHdheSBob3cgdG8gZXhwbG9pdCBp dCAtIG9uZSBzaG91bGQganVzdCBnZXQKKyAgQXR0ZW1wdCB0byB0YWtlIGFkZHJlc3Mgb2YgdmFs dWUgbm90IGxvY2F0ZWQgaW4gbWVtb3J5LgoraW5zdGVhZCBvZiBzb21lIHdyb25nIHZhbHVlIGFu ZCBpdCBtYXkgYmUgZWFzeSB0byBmaXggdGhlbi4KKworCitUaGFua3MgZm9yIHRoZSBhbmFseXNp cywKK0phbgorCistLVY4OHM1Z2FEVlB6WjBLQ3EKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsg Y2hhcnNldD11cy1hc2NpaQorQ29udGVudC1EaXNwb3NpdGlvbjogaW5saW5lOyBmaWxlbmFtZT0x CisKK2dkYi8KKzIwMTQtMDctMjAgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVk aGF0LmNvbT4KKworCSogc3RhY2suYyAocmVhZF9mcmFtZV9hcmcpOiBWZXJpZnkgdmFsdWVfb3B0 aW1pemVkX291dCBiZWZvcmUgY2FsbGluZworCXZhbHVlX2F2YWlsYWJsZV9jb250ZW50c19lcS4K KworZGlmZiAtLWdpdCBhL2dkYi9zdGFjay5jIGIvZ2RiL3N0YWNrLmMKK2luZGV4IDBkNmQ4ZTcu LjRkYjVkZjUgMTAwNjQ0CistLS0gYS9nZGIvc3RhY2suYworKysrIGIvZ2RiL3N0YWNrLmMKK0BA IC00MTMsNiArNDEzLDggQEAgcmVhZF9mcmFtZV9hcmcgKHN0cnVjdCBzeW1ib2wgKnN5bSwgc3Ry dWN0IGZyYW1lX2luZm8gKmZyYW1lLAorIAkJICAgICAgLyogSWYgdGhlIHJlZmVyZW5jZSBhZGRy ZXNzZXMgbWF0Y2ggYnV0IGRlcmVmZXJlbmNlZAorIAkJCSBjb250ZW50IGRvZXMgbm90IG1hdGNo IHByaW50IHRoZW0uICAqLworIAkJICAgICAgaWYgKHZhbCAhPSB2YWxfZGVyZWYKKysJCSAgICAg ICAgICAmJiAhdmFsdWVfb3B0aW1pemVkX291dCAodmFsX2RlcmVmKQorKwkJICAgICAgICAgICYm ICF2YWx1ZV9vcHRpbWl6ZWRfb3V0IChlbnRyeXZhbF9kZXJlZikKKyAJCQkgICYmIHZhbHVlX2F2 YWlsYWJsZV9jb250ZW50c19lcSAodmFsX2RlcmVmLCAwLAorIAkJCQkJCQkgIGVudHJ5dmFsX2Rl cmVmLCAwLAorIAkJCQkJCSAgICAgIFRZUEVfTEVOR1RIICh0eXBlX2RlcmVmKSkpCisKKy0tVjg4 czVnYURWUHpaMEtDcS0tCisKCmRpZmYgLS1naXQgYS9nZGItZW50cnl2YWwtY3Jhc2gtMm9mMy5w YXRjaCBiL2dkYi1lbnRyeXZhbC1jcmFzaC0yb2YzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLmEzY2ZlMjIKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItZW50cnl2YWwt Y3Jhc2gtMm9mMy5wYXRjaApAQCAtMCwwICsxLDQ0IEBACityZXZlcnQ6Citjb21taXQgNGYxNDkx MGZhMTMzMTM5OGNjNjk1MDExYTZhZjQzYTg5MjUyYjRiMQorQXV0aG9yOiBBbmRyZXcgQnVyZ2Vz cyA8YWJ1cmdlc3NAYnJvYWRjb20uY29tPgorRGF0ZTogICBUdWUgTm92IDI2IDE2OjIxOjUzIDIw MTMgKzAwMDAKKworICAgIE1hcmsgZW50aXJlbHkgb3B0aW1pemVkIG91dCB2YWx1ZSBhcyBub24t bGF6eS4KKyAgICAKKyAgICBJZiBhIHZhbHVlIGlzIGVudGlyZWx5IG9wdGltaXplZCBvdXQsIHRo ZW4gdGhlcmUncyBub3RoaW5nIGZvcgorICAgIHZhbHVlX2ZldGNoX2xhenkgdG8gZmV0Y2guICBT ZXF1ZW5jZXMgbGlrZToKKyAgICAKKyAgICAgaWYgKHZhbHVlX2xhenkgKHJldHZhbCkpCisgICAg ICAgdmFsdWVfZmV0Y2hfbGF6eSAocmV0dmFsKTsKKyAgICAKKyAgICBFbmQgdXAgYWxsb2NhdGlu ZyB0aGUgdmFsdWUgY29udGVudHMgYnVmZmVyLCB3YXN0aW5nIG1lbW9yeSwgZm9yIG5vCisgICAg dXNlLgorICAgIAorICAgIGdkYi9DaGFuZ2VMb2cKKyAgICAyMDEzLTExLTI2ICBBbmRyZXcgQnVy Z2VzcyAgPGFidXJnZXNzQGJyb2FkY29tLmNvbT4KKyAgICAKKyAgICAJKiB2YWx1ZS5jIChhbGxv Y2F0ZV9vcHRpbWl6ZWRfb3V0X3ZhbHVlKTogTWFyayB2YWx1ZSBhcyBub24tbGF6eS4KKworIyMj IGEvZ2RiL0NoYW5nZUxvZworIyMjIGIvZ2RiL0NoYW5nZUxvZworIyMgLTEsMyArMSw3IEBACisr MjAxMy0xMS0yNiAgQW5kcmV3IEJ1cmdlc3MgIDxhYnVyZ2Vzc0Bicm9hZGNvbS5jb20+CisrCisr CSogdmFsdWUuYyAoYWxsb2NhdGVfb3B0aW1pemVkX291dF92YWx1ZSk6IE1hcmsgdmFsdWUgYXMg bm9uLWxhenkuCisrCisgMjAxMy0xMS0yNiAgVG9tIFRyb21leSAgPHRyb21leUByZWRoYXQuY29t PgorIAorIAkqIGR3YXJmMi1mcmFtZS5jIChkd2FyZjJfZnJhbWVfY2FjaGUpOiBSZXZlcnQgcGF0 Y2ggZnJvbQorZGlmZiAtLWdpdCBhL2dkYi92YWx1ZS5jIGIvZ2RiL3ZhbHVlLmMKK2luZGV4IDI5 YWJlNWYuLmYwNzNkNzEgMTAwNjQ0CistLS0gYS9nZGIvdmFsdWUuYworKysrIGIvZ2RiL3ZhbHVl LmMKK0BAIC05MDYsNyArOTA2LDcgQEAgYWxsb2NhdGVfb3B0aW1pemVkX291dF92YWx1ZSAoc3Ry dWN0IHR5cGUgKnR5cGUpCisgICBzdHJ1Y3QgdmFsdWUgKnJldHZhbCA9IGFsbG9jYXRlX3ZhbHVl X2xhenkgKHR5cGUpOworIAorICAgc2V0X3ZhbHVlX29wdGltaXplZF9vdXQgKHJldHZhbCwgMSk7 CistICBzZXRfdmFsdWVfbGF6eSAocmV0dmFsLCAwKTsKKysKKyAgIHJldHVybiByZXR2YWw7Cisg fQorIAoKZGlmZiAtLWdpdCBhL2dkYi1lbnRyeXZhbC1jcmFzaC0zb2YzLnBhdGNoIGIvZ2RiLWVu dHJ5dmFsLWNyYXNoLTNvZjMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uYThlYTA5OQotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1lbnRyeXZhbC1jcmFzaC0zb2YzLnBh dGNoCkBAIC0wLDAgKzEsMTAxMSBAQAoraHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRj aGVzLzIwMTQtMDcvbXNnMDAyNzcuaHRtbAorU3ViamVjdDogW3BhdGNodjNdIEZpeCBjcmFzaCBv biBvcHRpbWl6ZWQtb3V0IGVudHJ5IGRhdGEgdmFsdWVzCisKKworLS1EeG5xMXpXWHZGRjBROTN2 CitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXMtYXNjaWkKK0NvbnRlbnQtRGlz cG9zaXRpb246IGlubGluZQorCitPbiBXZWQsIDA5IEp1bCAyMDE0IDE3OjMxOjIxICswMjAwLCBK YW4gS3JhdG9jaHZpbCB3cm90ZToKKz4gT24gV2VkLCAwOSBKdWwgMjAxNCAxMzo1MjowMCArMDIw MCwgUGVkcm8gQWx2ZXMgd3JvdGU6Cis+ID4gT24gMDcvMDkvMjAxNCAxMTozMyBBTSwgSmFuIEty YXRvY2h2aWwgd3JvdGU6Cis+ID4gPiAtLS0gYS9nZGIvdmFsdWUuYworPiA+ID4gKysrIGIvZ2Ri L3ZhbHVlLmMKKz4gPiA+IEBAIC0xOTgsMTIgKzE5OCwxMyBAQCBzdHJ1Y3QgdmFsdWUKKz4gPiA+ ICAgIHVuc2lnbmVkIGludCBsYXp5IDogMTsKKz4gPiA+ICAKKz4gPiA+ICAgIC8qIElmIG5vbnpl cm8sIHRoaXMgaXMgdGhlIHZhbHVlIG9mIGEgdmFyaWFibGUgdGhhdCBkb2VzIG5vdAorPiA+ID4g LSAgICAgYWN0dWFsbHkgZXhpc3QgaW4gdGhlIHByb2dyYW0uICBJZiBub256ZXJvLCBhbmQgTFZB TCBpcworPiA+ID4gKyAgICAgYWN0dWFsbHkgZnVsbHkgZXhpc3QgaW4gdGhlIHByb2dyYW0uICBJ ZiBub256ZXJvLCBhbmQgTFZBTCBpcworPiA+ID4gICAgICAgbHZhbF9yZWdpc3RlciwgdGhpcyBp cyBhIHJlZ2lzdGVyICgkcGMsICRzcCwgZXRjLiwgbmV2ZXIgYQorPiA+ID4gICAgICAgcHJvZ3Jh bSB2YXJpYWJsZSkgdGhhdCBoYXMgbm90IGJlZW4gc2F2ZWQgaW4gdGhlIGZyYW1lLiAgQWxsCis+ ID4gPiAgICAgICBvcHRpbWl6ZWQtb3V0IHZhbHVlcyBhcmUgdHJlYXRlZCBwcmV0dHkgbXVjaCB0 aGUgc2FtZSwgZXhjZXB0Cis+ID4gPiAgICAgICByZWdpc3RlcnMgaGF2ZSBhIGRpZmZlcmVudCBz dHJpbmcgcmVwcmVzZW50YXRpb24gYW5kIHJlbGF0ZWQKKz4gPiA+IC0gICAgIGVycm9yIHN0cmlu Z3MuICAqLworPiA+ID4gKyAgICAgZXJyb3Igc3RyaW5ncy4gIEl0IGlzIHRydWUgYWxzbyBmb3Ig b25seSBwYXJ0aWFsbHkgb3B0aW1pemVkCis+ID4gPiArICAgICBvdXQgdmFyaWFibGVzIC0gc2Vl IHRoZSAndW5hdmFpbGFibGUnIGZpZWxkIGJlbG93LiAgKi8KKz4gPiA+ICAgIHVuc2lnbmVkIGlu dCBvcHRpbWl6ZWRfb3V0IDogMTsKKz4gPiA+ICAKKz4gPiA+ICAgIC8qIElmIHZhbHVlIGlzIGEg dmFyaWFibGUsIGlzIGl0IGluaXRpYWxpemVkIG9yIG5vdC4gICovCis+ID4gPiBAQCAtMzM0LDcg KzMzNSwxMCBAQCBzdHJ1Y3QgdmFsdWUKKz4gPiA+ICAgICAgIHZhbGlkIGlmIGxhenkgaXMgbm9u emVyby4gICovCis+ID4gPiAgICBnZGJfYnl0ZSAqY29udGVudHM7Cis+ID4gPiAgCis+ID4gPiAt ICAvKiBVbmF2YWlsYWJsZSByYW5nZXMgaW4gQ09OVEVOVFMuICBXZSBtYXJrIHVuYXZhaWxhYmxl IHJhbmdlcywKKz4gPiA+ICsgIC8qIElmIE9QVElNSVpFRF9PVVQgaXMgZmFsc2UgdGhlbiBVTkFW QUlMQUJMRSBtdXN0IGJlIFZFQ19lbXB0eQorPiA+ID4gKyAgICAgKG5vdCBuZWNlc3NhcmlseSBO VUxMKS4gIAorPiA+IAorPiA+IEhtbSwgd2h5PyAgV2UgY2FuIGNvbGxlY3Qgb25seSBwYXJ0IG9m IGEgbm9uLW9wdGltaXplZCBvdXQgdmFsdWUuCis+ID4gV2hhdCBhbSBJIG1pc3Npbmc/Cis+IAor PiBJIG1pc3Mgc29tZSBkb2N1bWVudGF0aW9uIGhvdyB0aGVzZSBhdmFpbGFiaWxpdHkgZmllbGRz IGludGVyYWN0IHRvZ2V0aGVyLgorCis+RnJvbSBhIGNvbW1lbnQgaW4gbWFpbAorCU1lc3NhZ2Ut SWQ6IDwyMDExMDIwNzE0MjcuNTU5NzAucGVkcm9AY29kZXNvdXJjZXJ5LmNvbT4KKwlXZSBnaXZl IHByZWZlcmVuY2UgdG8gcHJpbnRpbmcgPG9wdGltaXplZCBvdXQ+IHJhdGhlcgorCXRoYW4gPHVu YXZhaWxhYmxlPiwgc2luY2UgaWYgYSB2YWx1ZSBoYWQgYmVlbiBvcHRpbWl6ZWQgb3V0CisJYXQg Y29tcGlsZSB0aW1lLCBpdCBjYW4gbmV2ZXIgYmUgY29sbGVjdGVkIGF0IHJ1bi10aW1lLgorCitp dCBzZWVtcyBpdCBpcyBqdXN0IHJldmVyc2VkLCB0aGF0ICd1bmF2YWlsYWJsZScgY2FuIGV4aXN0 IG9ubHkgZm9yCishb3B0aW1pemVkX291dCBhbmQgaXQgY2Fubm90IGV4aXN0IGZvciBmb3Igb3B0 aW1pemVkX291dCB2YWx1ZXMuCisKKworPiBZb3UgYXJlIHJpZ2h0LCB0aGlzIHBhdGNoIHJlZ3Jl c3NlcyBkdXJpbmcgZ2Ric2VydmVyIG1vZGUuCisKK0l0IFBBU1NlcyBub3cgZXZlbiBpbiBnZGJz ZXJ2ZXIgbW9kZS4KKworCitUaGFua3MsCitKYW4KKworLS1EeG5xMXpXWHZGRjBROTN2CitDb250 ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXMtYXNjaWkKK0NvbnRlbnQtRGlzcG9zaXRp b246IGlubGluZTsgZmlsZW5hbWU9Im9wdGltZml4My5wYXRjaCIKKworZ2RiLworMjAxNC0wNy0w OSAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgorCityZW1vdmVk OgorCSogdmFsdWUuYyAoc3RydWN0IHZhbHVlKTogRXh0ZW5kIHRoZSBjb21tZW50IGZvciBmaWVs ZHMgb3B0aW1pemVkX291dAorCWFuZCB1bmF2YWlsYWJsZS4KKwkodmFsdWVfYXZhaWxhYmxlX2Nv bnRlbnRzX2JpdHNfZXEpOiBIYW5kbGUgT1BUSU1JWkVEX09VVCB2YWx1ZXMgYXMKKwlzcGVjaWFs IGNhc2VzLgorCitnZGIvdGVzdHN1aXRlLworMjAxNC0wNy0wOSAgSmFuIEtyYXRvY2h2aWwgIDxq YW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgorCisJKiBnZGIuYXJjaC9hbWQ2NC1lbnRyeS12YWx1 ZS1wYXJhbXJlZi5TOiBOZXcgZmlsZS4KKwkqIGdkYi5hcmNoL2FtZDY0LWVudHJ5LXZhbHVlLXBh cmFtcmVmLmNjOiBOZXcgZmlsZS4KKwkqIGdkYi5hcmNoL2FtZDY0LWVudHJ5LXZhbHVlLXBhcmFt cmVmLmV4cDogTmV3IGZpbGUuCisJKiBnZGIuYXJjaC9hbWQ2NC1vcHRpbW91dC1yZXBlYXQuUzog TmV3IGZpbGUuCisJKiBnZGIuYXJjaC9hbWQ2NC1vcHRpbW91dC1yZXBlYXQuYzogTmV3IGZpbGUu CisJKiBnZGIuYXJjaC9hbWQ2NC1vcHRpbW91dC1yZXBlYXQuZXhwOiBOZXcgZmlsZS4KKworZGlm ZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gvYW1kNjQtZW50cnktdmFsdWUtcGFyYW1y ZWYuUyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gvYW1kNjQtZW50cnktdmFsdWUtcGFyYW1yZWYu UworbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAuLmExZTlkMGEKKy0tLSAvZGV2 L251bGwKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gvYW1kNjQtZW50cnktdmFsdWUtcGFy YW1yZWYuUworQEAgLTAsMCArMSw0NTkgQEAKKysvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2Yg R0RCLCB0aGUgR05VIGRlYnVnZ2VyLgorKworKyAgIENvcHlyaWdodCAyMDE0IEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLgorKworKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJl OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrICAgaXQgdW5kZXIgdGhl IHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkK KysgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRo ZSBMaWNlbnNlLCBvcgorKyAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisr CisrICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls bCBiZSB1c2VmdWwsCisrICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisrICAgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysKKysgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2 ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyAgIGFsb25nIHdp dGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNl cy8+LiAgKi8KKysKKysvKiBUaGlzIGZpbGUgaXMgY29tcGlsZWQgZnJvbSBnZGIuYXJjaC9hbWQ2 NC1lbnRyeS12YWx1ZS1wYXJhbXJlZi5jYworKyAgIHVzaW5nIC1nIC1kQSAtUyAtTzIuCisrICAg QWRkaXRpb25hbGx5IGl0IGhhcyBiZWVuIHBhdGNoZWQuICAqLworKworKwkuZmlsZQkiYW1kNjQt ZW50cnktdmFsdWUtcGFyYW1yZWYuY2MiCisrCS50ZXh0CisrLkx0ZXh0MDoKKysJLnAyYWxpZ24g NCwsMTUKKysJLnR5cGUJX1pMM2JhclJpLmNvbnN0cHJvcC4wLCBAZnVuY3Rpb24KKytfWkwzYmFy UmkuY29uc3Rwcm9wLjA6CisrLkxGQjI6CisrCS5maWxlIDEgImdkYi5hcmNoL2FtZDY0LWVudHJ5 LXZhbHVlLXBhcmFtcmVmLmNjIgorKwkjIGdkYi5hcmNoL2FtZDY0LWVudHJ5LXZhbHVlLXBhcmFt cmVmLmNjOjIxCisrCS5sb2MgMSAyMSAwCisrCS5jZmlfc3RhcnRwcm9jCisrLkxWTDA6CisrIyBC TE9DSyAyIGZyZXE6MTAwMDAgc2VxOjAKKysjIFBSRUQ6IEVOVFJZIFsxMDAuMCVdICAoRkFMTFRI UlUpCisrCSMgZ2RiLmFyY2gvYW1kNjQtZW50cnktdmFsdWUtcGFyYW1yZWYuY2M6MjMKKysJLmxv YyAxIDIzIDAKKysJbW92bAl2diglcmlwKSwgJWVheAorKwkjIGdkYi5hcmNoL2FtZDY0LWVudHJ5 LXZhbHVlLXBhcmFtcmVmLmNjOjI0CisrCS5sb2MgMSAyNCAwCisrCW1vdnEJJXJkaSwgcCglcmlw KQorKwkjIGdkYi5hcmNoL2FtZDY0LWVudHJ5LXZhbHVlLXBhcmFtcmVmLmNjOjIzCisrCS5sb2Mg MSAyMyAwCisrCWFkZGwJJDEsICVlYXgKKysJbW92bAklZWF4LCB2diglcmlwKQorKwkjIGdkYi5h cmNoL2FtZDY0LWVudHJ5LXZhbHVlLXBhcmFtcmVmLmNjOjI1CisrCS5sb2MgMSAyNSAwCisrCW1v dmwJKCVyZGkpLCAlZWF4CisrIyBTVUNDOiBFWElUIFsxMDAuMCVdIAorKwkjIGdkYi5hcmNoL2Ft ZDY0LWVudHJ5LXZhbHVlLXBhcmFtcmVmLmNjOjI2CisrCS5sb2MgMSAyNiAwCisrCXJldAorKwku Y2ZpX2VuZHByb2MKKysuTEZFMjoKKysJLnNpemUJX1pMM2JhclJpLmNvbnN0cHJvcC4wLCAuLV9a TDNiYXJSaS5jb25zdHByb3AuMAorKwkuc2VjdGlvbgkudGV4dC5zdGFydHVwLCJheCIsQHByb2di aXRzCisrCS5wMmFsaWduIDQsLDE1CisrCS5nbG9ibAltYWluCisrCS50eXBlCW1haW4sIEBmdW5j dGlvbgorK21haW46CisrLkxGQjE6CisrCSMgZ2RiLmFyY2gvYW1kNjQtZW50cnktdmFsdWUtcGFy YW1yZWYuY2M6MzAKKysJLmxvYyAxIDMwIDAKKysJLmNmaV9zdGFydHByb2MKKysjIEJMT0NLIDIg ZnJlcToxMDAwMCBzZXE6MAorKyMgUFJFRDogRU5UUlkgWzEwMC4wJV0gIChGQUxMVEhSVSkKKysJ c3VicQkkMTYsICVyc3AKKysJLmNmaV9kZWZfY2ZhX29mZnNldCAyNAorKy5MQkIyOgorKwkjIGdk Yi5hcmNoL2FtZDY0LWVudHJ5LXZhbHVlLXBhcmFtcmVmLmNjOjMyCisrCS5sb2MgMSAzMiAwCisr CWxlYXEJMTIoJXJzcCksICVyZGkKKysJIyBnZGIuYXJjaC9hbWQ2NC1lbnRyeS12YWx1ZS1wYXJh bXJlZi5jYzozMQorKwkubG9jIDEgMzEgMAorKwltb3ZsCSQxMCwgMTIoJXJzcCkKKysJIyBnZGIu YXJjaC9hbWQ2NC1lbnRyeS12YWx1ZS1wYXJhbXJlZi5jYzozMgorKwkubG9jIDEgMzIgMAorKwlj YWxsCV9aTDNiYXJSaS5jb25zdHByb3AuMAorKy5MVkwxOgorKy5MQkUyOgorKwkjIGdkYi5hcmNo L2FtZDY0LWVudHJ5LXZhbHVlLXBhcmFtcmVmLmNjOjMzCisrCS5sb2MgMSAzMyAwCisrCWFkZHEJ JDE2LCAlcnNwCisrCS5jZmlfZGVmX2NmYV9vZmZzZXQgOAorKyMgU1VDQzogRVhJVCBbMTAwLjAl XSAKKysJcmV0CisrCS5jZmlfZW5kcHJvYworKy5MRkUxOgorKwkuc2l6ZQltYWluLCAuLW1haW4K KysJLmdsb2JsCXAKKysJLmJzcworKwkuYWxpZ24gOAorKwkudHlwZQlwLCBAb2JqZWN0CisrCS5z aXplCXAsIDgKKytwOgorKwkuemVybwk4CisrCS5nbG9ibAl2dgorKwkuYWxpZ24gNAorKwkudHlw ZQl2diwgQG9iamVjdAorKwkuc2l6ZQl2diwgNAorK3Z2OgorKwkuemVybwk0CisrCS50ZXh0Cisr LkxldGV4dDA6CisrCS5zZWN0aW9uCS5kZWJ1Z19pbmZvLCIiLEBwcm9nYml0cworKy5MZGVidWdf aW5mbzA6CisrCS5sb25nCS5MaW5mb19lbmQgLSAuTGluZm9fc3RhcnQJIyBMZW5ndGggb2YgQ29t cGlsYXRpb24gVW5pdCBJbmZvCisrLkxpbmZvX3N0YXJ0OgorKwkudmFsdWUJMHg0CSMgRFdBUkYg dmVyc2lvbiBudW1iZXIKKysJLmxvbmcJLkxkZWJ1Z19hYmJyZXYwCSMgT2Zmc2V0IEludG8gQWJi cmV2LiBTZWN0aW9uCisrCS5ieXRlCTB4OAkjIFBvaW50ZXIgU2l6ZSAoaW4gYnl0ZXMpCisrCS51 bGViMTI4IDB4MQkjIChESUUgKDB4YikgRFdfVEFHX2NvbXBpbGVfdW5pdCkKKysJLmxvbmcJLkxB U0YwCSMgRFdfQVRfcHJvZHVjZXI6ICJHTlUgQysrIDQuOC4yIDIwMTMxMjEyIChSZWQgSGF0IDQu OC4yLTcpIC1tdHVuZT1nZW5lcmljIC1tYXJjaD14ODYtNjQgLWcgLU8yIgorKwkuYnl0ZQkweDQJ IyBEV19BVF9sYW5ndWFnZQorKwkubG9uZwkuTEFTRjEJIyBEV19BVF9uYW1lOiAiZ2RiLmFyY2gv YW1kNjQtZW50cnktdmFsdWUtcGFyYW1yZWYuY2MiCisrCS5sb25nCS5MQVNGMgkjIERXX0FUX2Nv bXBfZGlyOiAiIgorKwkubG9uZwkuTGRlYnVnX3JhbmdlczArMAkjIERXX0FUX3JhbmdlcworKwku cXVhZAkwCSMgRFdfQVRfbG93X3BjCisrCS5sb25nCS5MZGVidWdfbGluZTAJIyBEV19BVF9zdG10 X2xpc3QKKytESUUyOToJLnVsZWIxMjggMHgyCSMgKERJRSAoMHgyOSkgRFdfVEFHX3N1YnByb2dy YW0pCisrCS5hc2NpaSAiYmFyXDAiCSMgRFdfQVRfbmFtZQorKwkuYnl0ZQkweDEJIyBEV19BVF9k ZWNsX2ZpbGUgKGdkYi5hcmNoL2FtZDY0LWVudHJ5LXZhbHVlLXBhcmFtcmVmLmNjKQorKwkuYnl0 ZQkweDE1CSMgRFdfQVRfZGVjbF9saW5lCisrCS5sb25nCURJRTQ1CSMgRFdfQVRfdHlwZQorKwku Ynl0ZQkweDEJIyBEV19BVF9pbmxpbmUKKytESUUzOToJLnVsZWIxMjggMHgzCSMgKERJRSAoMHgz OSkgRFdfVEFHX2Zvcm1hbF9wYXJhbWV0ZXIpCisrCS5hc2NpaSAicmVmXDAiCSMgRFdfQVRfbmFt ZQorKwkuYnl0ZQkweDEJIyBEV19BVF9kZWNsX2ZpbGUgKGdkYi5hcmNoL2FtZDY0LWVudHJ5LXZh bHVlLXBhcmFtcmVmLmNjKQorKwkuYnl0ZQkweDE1CSMgRFdfQVRfZGVjbF9saW5lCisrCS5sb25n CURJRTRjCSMgRFdfQVRfdHlwZQorKwkuYnl0ZQkwCSMgZW5kIG9mIGNoaWxkcmVuIG9mIERJRSAw eDI5CisrRElFNDU6CS51bGViMTI4IDB4NAkjIChESUUgKDB4NDUpIERXX1RBR19iYXNlX3R5cGUp CisrCS5ieXRlCTB4NAkjIERXX0FUX2J5dGVfc2l6ZQorKwkuYnl0ZQkweDUJIyBEV19BVF9lbmNv ZGluZworKwkuYXNjaWkgImludFwwIgkjIERXX0FUX25hbWUKKytESUU0YzoJLnVsZWIxMjggMHg1 CSMgKERJRSAoMHg0YykgRFdfVEFHX2NvbnN0X3R5cGUpCisrCS5sb25nCURJRTUxCSMgRFdfQVRf dHlwZQorK0RJRTUxOgkudWxlYjEyOCAweDYJIyAoRElFICgweDUxKSBEV19UQUdfcmVmZXJlbmNl X3R5cGUpCisrCS5ieXRlCTB4OAkjIERXX0FUX2J5dGVfc2l6ZQorKwkubG9uZwlESUU0NQkjIERX X0FUX3R5cGUKKytESUU1NzoJLnVsZWIxMjggMHg3CSMgKERJRSAoMHg1NykgRFdfVEFHX3N1YnBy b2dyYW0pCisrCS5sb25nCURJRTI5CSMgRFdfQVRfYWJzdHJhY3Rfb3JpZ2luCisrCS5xdWFkCS5M RkIyCSMgRFdfQVRfbG93X3BjCisrCS5xdWFkCS5MRkUyLS5MRkIyCSMgRFdfQVRfaGlnaF9wYwor KwkudWxlYjEyOCAweDEJIyBEV19BVF9mcmFtZV9iYXNlCisrCS5ieXRlCTB4OWMJIyBEV19PUF9j YWxsX2ZyYW1lX2NmYQorKwkJCSMgRFdfQVRfR05VX2FsbF9jYWxsX3NpdGVzCisrRElFNzI6CS51 bGViMTI4IDB4OAkjIChESUUgKDB4NzIpIERXX1RBR19mb3JtYWxfcGFyYW1ldGVyKQorKwkubG9u ZwlESUUzOQkjIERXX0FUX2Fic3RyYWN0X29yaWdpbgorKwkudWxlYjEyOCAweDEJIyBEV19BVF9s b2NhdGlvbgorKwkuYnl0ZQkweDU1CSMgRFdfT1BfcmVnNQorKwkuYnl0ZQkwCSMgZW5kIG9mIGNo aWxkcmVuIG9mIERJRSAweDU3CisrRElFN2E6CS51bGViMTI4IDB4OQkjIChESUUgKDB4N2EpIERX X1RBR19zdWJwcm9ncmFtKQorKwkJCSMgRFdfQVRfZXh0ZXJuYWwKKysJLmxvbmcJLkxBU0YzCSMg RFdfQVRfbmFtZTogIm1haW4iCisrCS5ieXRlCTB4MQkjIERXX0FUX2RlY2xfZmlsZSAoZ2RiLmFy Y2gvYW1kNjQtZW50cnktdmFsdWUtcGFyYW1yZWYuY2MpCisrCS5ieXRlCTB4MWQJIyBEV19BVF9k ZWNsX2xpbmUKKysJLmxvbmcJRElFNDUJIyBEV19BVF90eXBlCisrCS5xdWFkCS5MRkIxCSMgRFdf QVRfbG93X3BjCisrCS5xdWFkCS5MRkUxLS5MRkIxCSMgRFdfQVRfaGlnaF9wYworKwkudWxlYjEy OCAweDEJIyBEV19BVF9mcmFtZV9iYXNlCisrCS5ieXRlCTB4OWMJIyBEV19PUF9jYWxsX2ZyYW1l X2NmYQorKwkJCSMgRFdfQVRfR05VX2FsbF9jYWxsX3NpdGVzCisrRElFOWI6CS51bGViMTI4IDB4 YQkjIChESUUgKDB4OWIpIERXX1RBR19sZXhpY2FsX2Jsb2NrKQorKwkucXVhZAkuTEJCMgkjIERX X0FUX2xvd19wYworKwkucXVhZAkuTEJFMi0uTEJCMgkjIERXX0FUX2hpZ2hfcGMKKytESUVhYzoJ LnVsZWIxMjggMHhiCSMgKERJRSAoMHhhYykgRFdfVEFHX3ZhcmlhYmxlKQorKwkuYXNjaWkgInZh clwwIgkjIERXX0FUX25hbWUKKysJLmJ5dGUJMHgxCSMgRFdfQVRfZGVjbF9maWxlIChnZGIuYXJj aC9hbWQ2NC1lbnRyeS12YWx1ZS1wYXJhbXJlZi5jYykKKysJLmJ5dGUJMHgxZgkjIERXX0FUX2Rl Y2xfbGluZQorKwkubG9uZwlESUU0NQkjIERXX0FUX3R5cGUKKysJLnVsZWIxMjggMHgyCSMgRFdf QVRfbG9jYXRpb24KKysJLmJ5dGUJMHg5MQkjIERXX09QX2ZicmVnCisrCS5zbGViMTI4IC0xMgor K0RJRWJhOgkudWxlYjEyOCAweGMJIyAoRElFICgweGJhKSBEV19UQUdfR05VX2NhbGxfc2l0ZSkK KysJLnF1YWQJLkxWTDEJIyBEV19BVF9sb3dfcGMKKysJLmxvbmcJRElFNTcJIyBEV19BVF9hYnN0 cmFjdF9vcmlnaW4KKytESUVjNzoJLnVsZWIxMjggMHhkCSMgKERJRSAoMHhjNykgRFdfVEFHX0dO VV9jYWxsX3NpdGVfcGFyYW1ldGVyKQorKwkudWxlYjEyOCAweDEJIyBEV19BVF9sb2NhdGlvbgor KwkuYnl0ZQkweDU1CSMgRFdfT1BfcmVnNQorKwkudWxlYjEyOCAweDIJIyBEV19BVF9HTlVfY2Fs bF9zaXRlX3ZhbHVlCisrCS5ieXRlCTB4OTEJIyBEV19PUF9mYnJlZworKwkuc2xlYjEyOCAtMTIK KysjaWYgMAorKwkudWxlYjEyOCAweDEJIyBEV19BVF9HTlVfY2FsbF9zaXRlX2RhdGFfdmFsdWUK KysJLmJ5dGUJMHgzYQkjIERXX09QX2xpdDEwCisrI2Vsc2UKKysJLnVsZWIxMjggMWYgLSAyZgkj IERXX0FUX0dOVV9jYWxsX3NpdGVfZGF0YV92YWx1ZQorKzI6CisrCS5ieXRlCTB4ZjMJIyBEV19P UF9HTlVfZW50cnlfdmFsdWUKKysJLnVsZWIxMjggMWYgLSAzZgorKzM6CisrCS5ieXRlCTB4NTUJ IyBEV19PUF9yZWc1CisrMToKKysjZW5kaWYKKysJLmJ5dGUJMAkjIGVuZCBvZiBjaGlsZHJlbiBv ZiBESUUgMHhiYQorKwkuYnl0ZQkwCSMgZW5kIG9mIGNoaWxkcmVuIG9mIERJRSAweDliCisrCS5i eXRlCTAJIyBlbmQgb2YgY2hpbGRyZW4gb2YgRElFIDB4N2EKKytESUVkMjoJLnVsZWIxMjggMHhl CSMgKERJRSAoMHhkMikgRFdfVEFHX3ZhcmlhYmxlKQorKwkuYXNjaWkgInZ2XDAiCSMgRFdfQVRf bmFtZQorKwkuYnl0ZQkweDEJIyBEV19BVF9kZWNsX2ZpbGUgKGdkYi5hcmNoL2FtZDY0LWVudHJ5 LXZhbHVlLXBhcmFtcmVmLmNjKQorKwkuYnl0ZQkweDEyCSMgRFdfQVRfZGVjbF9saW5lCisrCS5s b25nCURJRWU2CSMgRFdfQVRfdHlwZQorKwkJCSMgRFdfQVRfZXh0ZXJuYWwKKysJLnVsZWIxMjgg MHg5CSMgRFdfQVRfbG9jYXRpb24KKysJLmJ5dGUJMHgzCSMgRFdfT1BfYWRkcgorKwkucXVhZAl2 dgorK0RJRWU2OgkudWxlYjEyOCAweGYJIyAoRElFICgweGU2KSBEV19UQUdfdm9sYXRpbGVfdHlw ZSkKKysJLmxvbmcJRElFNDUJIyBEV19BVF90eXBlCisrRElFZWI6CS51bGViMTI4IDB4ZQkjIChE SUUgKDB4ZWIpIERXX1RBR192YXJpYWJsZSkKKysJLmFzY2lpICJwXDAiCSMgRFdfQVRfbmFtZQor KwkuYnl0ZQkweDEJIyBEV19BVF9kZWNsX2ZpbGUgKGdkYi5hcmNoL2FtZDY0LWVudHJ5LXZhbHVl LXBhcmFtcmVmLmNjKQorKwkuYnl0ZQkweDEyCSMgRFdfQVRfZGVjbF9saW5lCisrCS5sb25nCURJ RWZlCSMgRFdfQVRfdHlwZQorKwkJCSMgRFdfQVRfZXh0ZXJuYWwKKysJLnVsZWIxMjggMHg5CSMg RFdfQVRfbG9jYXRpb24KKysJLmJ5dGUJMHgzCSMgRFdfT1BfYWRkcgorKwkucXVhZAlwCisrRElF ZmU6CS51bGViMTI4IDB4MTAJIyAoRElFICgweGZlKSBEV19UQUdfcG9pbnRlcl90eXBlKQorKwku Ynl0ZQkweDgJIyBEV19BVF9ieXRlX3NpemUKKysJLmxvbmcJRElFZTYJIyBEV19BVF90eXBlCisr CS5ieXRlCTAJIyBlbmQgb2YgY2hpbGRyZW4gb2YgRElFIDB4YgorKy5MaW5mb19lbmQ6CisrCS5z ZWN0aW9uCS5kZWJ1Z19hYmJyZXYsIiIsQHByb2diaXRzCisrLkxkZWJ1Z19hYmJyZXYwOgorKwku dWxlYjEyOCAweDEJIyAoYWJicmV2IGNvZGUpCisrCS51bGViMTI4IDB4MTEJIyAoVEFHOiBEV19U QUdfY29tcGlsZV91bml0KQorKwkuYnl0ZQkweDEJIyBEV19jaGlsZHJlbl95ZXMKKysJLnVsZWIx MjggMHgyNQkjIChEV19BVF9wcm9kdWNlcikKKysJLnVsZWIxMjggMHhlCSMgKERXX0ZPUk1fc3Ry cCkKKysJLnVsZWIxMjggMHgxMwkjIChEV19BVF9sYW5ndWFnZSkKKysJLnVsZWIxMjggMHhiCSMg KERXX0ZPUk1fZGF0YTEpCisrCS51bGViMTI4IDB4MwkjIChEV19BVF9uYW1lKQorKwkudWxlYjEy OCAweGUJIyAoRFdfRk9STV9zdHJwKQorKwkudWxlYjEyOCAweDFiCSMgKERXX0FUX2NvbXBfZGly KQorKwkudWxlYjEyOCAweGUJIyAoRFdfRk9STV9zdHJwKQorKwkudWxlYjEyOCAweDU1CSMgKERX X0FUX3JhbmdlcykKKysJLnVsZWIxMjggMHgxNwkjIChEV19GT1JNX3NlY19vZmZzZXQpCisrCS51 bGViMTI4IDB4MTEJIyAoRFdfQVRfbG93X3BjKQorKwkudWxlYjEyOCAweDEJIyAoRFdfRk9STV9h ZGRyKQorKwkudWxlYjEyOCAweDEwCSMgKERXX0FUX3N0bXRfbGlzdCkKKysJLnVsZWIxMjggMHgx NwkjIChEV19GT1JNX3NlY19vZmZzZXQpCisrCS5ieXRlCTAKKysJLmJ5dGUJMAorKwkudWxlYjEy OCAweDIJIyAoYWJicmV2IGNvZGUpCisrCS51bGViMTI4IDB4MmUJIyAoVEFHOiBEV19UQUdfc3Vi cHJvZ3JhbSkKKysJLmJ5dGUJMHgxCSMgRFdfY2hpbGRyZW5feWVzCisrCS51bGViMTI4IDB4Mwkj IChEV19BVF9uYW1lKQorKwkudWxlYjEyOCAweDgJIyAoRFdfRk9STV9zdHJpbmcpCisrCS51bGVi MTI4IDB4M2EJIyAoRFdfQVRfZGVjbF9maWxlKQorKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9k YXRhMSkKKysJLnVsZWIxMjggMHgzYgkjIChEV19BVF9kZWNsX2xpbmUpCisrCS51bGViMTI4IDB4 YgkjIChEV19GT1JNX2RhdGExKQorKwkudWxlYjEyOCAweDQ5CSMgKERXX0FUX3R5cGUpCisrCS51 bGViMTI4IDB4MTMJIyAoRFdfRk9STV9yZWY0KQorKwkudWxlYjEyOCAweDIwCSMgKERXX0FUX2lu bGluZSkKKysJLnVsZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCisrCS5ieXRlCTAKKysJLmJ5 dGUJMAorKwkudWxlYjEyOCAweDMJIyAoYWJicmV2IGNvZGUpCisrCS51bGViMTI4IDB4NQkjIChU QUc6IERXX1RBR19mb3JtYWxfcGFyYW1ldGVyKQorKwkuYnl0ZQkwCSMgRFdfY2hpbGRyZW5fbm8K KysJLnVsZWIxMjggMHgzCSMgKERXX0FUX25hbWUpCisrCS51bGViMTI4IDB4OAkjIChEV19GT1JN X3N0cmluZykKKysJLnVsZWIxMjggMHgzYQkjIChEV19BVF9kZWNsX2ZpbGUpCisrCS51bGViMTI4 IDB4YgkjIChEV19GT1JNX2RhdGExKQorKwkudWxlYjEyOCAweDNiCSMgKERXX0FUX2RlY2xfbGlu ZSkKKysJLnVsZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCisrCS51bGViMTI4IDB4NDkJIyAo RFdfQVRfdHlwZSkKKysJLnVsZWIxMjggMHgxMwkjIChEV19GT1JNX3JlZjQpCisrCS5ieXRlCTAK KysJLmJ5dGUJMAorKwkudWxlYjEyOCAweDQJIyAoYWJicmV2IGNvZGUpCisrCS51bGViMTI4IDB4 MjQJIyAoVEFHOiBEV19UQUdfYmFzZV90eXBlKQorKwkuYnl0ZQkwCSMgRFdfY2hpbGRyZW5fbm8K KysJLnVsZWIxMjggMHhiCSMgKERXX0FUX2J5dGVfc2l6ZSkKKysJLnVsZWIxMjggMHhiCSMgKERX X0ZPUk1fZGF0YTEpCisrCS51bGViMTI4IDB4M2UJIyAoRFdfQVRfZW5jb2RpbmcpCisrCS51bGVi MTI4IDB4YgkjIChEV19GT1JNX2RhdGExKQorKwkudWxlYjEyOCAweDMJIyAoRFdfQVRfbmFtZSkK KysJLnVsZWIxMjggMHg4CSMgKERXX0ZPUk1fc3RyaW5nKQorKwkuYnl0ZQkwCisrCS5ieXRlCTAK KysJLnVsZWIxMjggMHg1CSMgKGFiYnJldiBjb2RlKQorKwkudWxlYjEyOCAweDI2CSMgKFRBRzog RFdfVEFHX2NvbnN0X3R5cGUpCisrCS5ieXRlCTAJIyBEV19jaGlsZHJlbl9ubworKwkudWxlYjEy OCAweDQ5CSMgKERXX0FUX3R5cGUpCisrCS51bGViMTI4IDB4MTMJIyAoRFdfRk9STV9yZWY0KQor KwkuYnl0ZQkwCisrCS5ieXRlCTAKKysJLnVsZWIxMjggMHg2CSMgKGFiYnJldiBjb2RlKQorKwku dWxlYjEyOCAweDEwCSMgKFRBRzogRFdfVEFHX3JlZmVyZW5jZV90eXBlKQorKwkuYnl0ZQkwCSMg RFdfY2hpbGRyZW5fbm8KKysJLnVsZWIxMjggMHhiCSMgKERXX0FUX2J5dGVfc2l6ZSkKKysJLnVs ZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCisrCS51bGViMTI4IDB4NDkJIyAoRFdfQVRfdHlw ZSkKKysJLnVsZWIxMjggMHgxMwkjIChEV19GT1JNX3JlZjQpCisrCS5ieXRlCTAKKysJLmJ5dGUJ MAorKwkudWxlYjEyOCAweDcJIyAoYWJicmV2IGNvZGUpCisrCS51bGViMTI4IDB4MmUJIyAoVEFH OiBEV19UQUdfc3VicHJvZ3JhbSkKKysJLmJ5dGUJMHgxCSMgRFdfY2hpbGRyZW5feWVzCisrCS51 bGViMTI4IDB4MzEJIyAoRFdfQVRfYWJzdHJhY3Rfb3JpZ2luKQorKwkudWxlYjEyOCAweDEzCSMg KERXX0ZPUk1fcmVmNCkKKysJLnVsZWIxMjggMHgxMQkjIChEV19BVF9sb3dfcGMpCisrCS51bGVi MTI4IDB4MQkjIChEV19GT1JNX2FkZHIpCisrCS51bGViMTI4IDB4MTIJIyAoRFdfQVRfaGlnaF9w YykKKysJLnVsZWIxMjggMHg3CSMgKERXX0ZPUk1fZGF0YTgpCisrCS51bGViMTI4IDB4NDAJIyAo RFdfQVRfZnJhbWVfYmFzZSkKKysJLnVsZWIxMjggMHgxOAkjIChEV19GT1JNX2V4cHJsb2MpCisr CS51bGViMTI4IDB4MjExNwkjIChEV19BVF9HTlVfYWxsX2NhbGxfc2l0ZXMpCisrCS51bGViMTI4 IDB4MTkJIyAoRFdfRk9STV9mbGFnX3ByZXNlbnQpCisrCS5ieXRlCTAKKysJLmJ5dGUJMAorKwku dWxlYjEyOCAweDgJIyAoYWJicmV2IGNvZGUpCisrCS51bGViMTI4IDB4NQkjIChUQUc6IERXX1RB R19mb3JtYWxfcGFyYW1ldGVyKQorKwkuYnl0ZQkwCSMgRFdfY2hpbGRyZW5fbm8KKysJLnVsZWIx MjggMHgzMQkjIChEV19BVF9hYnN0cmFjdF9vcmlnaW4pCisrCS51bGViMTI4IDB4MTMJIyAoRFdf Rk9STV9yZWY0KQorKwkudWxlYjEyOCAweDIJIyAoRFdfQVRfbG9jYXRpb24pCisrCS51bGViMTI4 IDB4MTgJIyAoRFdfRk9STV9leHBybG9jKQorKwkuYnl0ZQkwCisrCS5ieXRlCTAKKysJLnVsZWIx MjggMHg5CSMgKGFiYnJldiBjb2RlKQorKwkudWxlYjEyOCAweDJlCSMgKFRBRzogRFdfVEFHX3N1 YnByb2dyYW0pCisrCS5ieXRlCTB4MQkjIERXX2NoaWxkcmVuX3llcworKwkudWxlYjEyOCAweDNm CSMgKERXX0FUX2V4dGVybmFsKQorKwkudWxlYjEyOCAweDE5CSMgKERXX0ZPUk1fZmxhZ19wcmVz ZW50KQorKwkudWxlYjEyOCAweDMJIyAoRFdfQVRfbmFtZSkKKysJLnVsZWIxMjggMHhlCSMgKERX X0ZPUk1fc3RycCkKKysJLnVsZWIxMjggMHgzYQkjIChEV19BVF9kZWNsX2ZpbGUpCisrCS51bGVi MTI4IDB4YgkjIChEV19GT1JNX2RhdGExKQorKwkudWxlYjEyOCAweDNiCSMgKERXX0FUX2RlY2xf bGluZSkKKysJLnVsZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCisrCS51bGViMTI4IDB4NDkJ IyAoRFdfQVRfdHlwZSkKKysJLnVsZWIxMjggMHgxMwkjIChEV19GT1JNX3JlZjQpCisrCS51bGVi MTI4IDB4MTEJIyAoRFdfQVRfbG93X3BjKQorKwkudWxlYjEyOCAweDEJIyAoRFdfRk9STV9hZGRy KQorKwkudWxlYjEyOCAweDEyCSMgKERXX0FUX2hpZ2hfcGMpCisrCS51bGViMTI4IDB4NwkjIChE V19GT1JNX2RhdGE4KQorKwkudWxlYjEyOCAweDQwCSMgKERXX0FUX2ZyYW1lX2Jhc2UpCisrCS51 bGViMTI4IDB4MTgJIyAoRFdfRk9STV9leHBybG9jKQorKwkudWxlYjEyOCAweDIxMTcJIyAoRFdf QVRfR05VX2FsbF9jYWxsX3NpdGVzKQorKwkudWxlYjEyOCAweDE5CSMgKERXX0ZPUk1fZmxhZ19w cmVzZW50KQorKwkuYnl0ZQkwCisrCS5ieXRlCTAKKysJLnVsZWIxMjggMHhhCSMgKGFiYnJldiBj b2RlKQorKwkudWxlYjEyOCAweGIJIyAoVEFHOiBEV19UQUdfbGV4aWNhbF9ibG9jaykKKysJLmJ5 dGUJMHgxCSMgRFdfY2hpbGRyZW5feWVzCisrCS51bGViMTI4IDB4MTEJIyAoRFdfQVRfbG93X3Bj KQorKwkudWxlYjEyOCAweDEJIyAoRFdfRk9STV9hZGRyKQorKwkudWxlYjEyOCAweDEyCSMgKERX X0FUX2hpZ2hfcGMpCisrCS51bGViMTI4IDB4NwkjIChEV19GT1JNX2RhdGE4KQorKwkuYnl0ZQkw CisrCS5ieXRlCTAKKysJLnVsZWIxMjggMHhiCSMgKGFiYnJldiBjb2RlKQorKwkudWxlYjEyOCAw eDM0CSMgKFRBRzogRFdfVEFHX3ZhcmlhYmxlKQorKwkuYnl0ZQkwCSMgRFdfY2hpbGRyZW5fbm8K KysJLnVsZWIxMjggMHgzCSMgKERXX0FUX25hbWUpCisrCS51bGViMTI4IDB4OAkjIChEV19GT1JN X3N0cmluZykKKysJLnVsZWIxMjggMHgzYQkjIChEV19BVF9kZWNsX2ZpbGUpCisrCS51bGViMTI4 IDB4YgkjIChEV19GT1JNX2RhdGExKQorKwkudWxlYjEyOCAweDNiCSMgKERXX0FUX2RlY2xfbGlu ZSkKKysJLnVsZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCisrCS51bGViMTI4IDB4NDkJIyAo RFdfQVRfdHlwZSkKKysJLnVsZWIxMjggMHgxMwkjIChEV19GT1JNX3JlZjQpCisrCS51bGViMTI4 IDB4MgkjIChEV19BVF9sb2NhdGlvbikKKysJLnVsZWIxMjggMHgxOAkjIChEV19GT1JNX2V4cHJs b2MpCisrCS5ieXRlCTAKKysJLmJ5dGUJMAorKwkudWxlYjEyOCAweGMJIyAoYWJicmV2IGNvZGUp CisrCS51bGViMTI4IDB4NDEwOQkjIChUQUc6IERXX1RBR19HTlVfY2FsbF9zaXRlKQorKwkuYnl0 ZQkweDEJIyBEV19jaGlsZHJlbl95ZXMKKysJLnVsZWIxMjggMHgxMQkjIChEV19BVF9sb3dfcGMp CisrCS51bGViMTI4IDB4MQkjIChEV19GT1JNX2FkZHIpCisrCS51bGViMTI4IDB4MzEJIyAoRFdf QVRfYWJzdHJhY3Rfb3JpZ2luKQorKwkudWxlYjEyOCAweDEzCSMgKERXX0ZPUk1fcmVmNCkKKysJ LmJ5dGUJMAorKwkuYnl0ZQkwCisrCS51bGViMTI4IDB4ZAkjIChhYmJyZXYgY29kZSkKKysJLnVs ZWIxMjggMHg0MTBhCSMgKFRBRzogRFdfVEFHX0dOVV9jYWxsX3NpdGVfcGFyYW1ldGVyKQorKwku Ynl0ZQkwCSMgRFdfY2hpbGRyZW5fbm8KKysJLnVsZWIxMjggMHgyCSMgKERXX0FUX2xvY2F0aW9u KQorKwkudWxlYjEyOCAweDE4CSMgKERXX0ZPUk1fZXhwcmxvYykKKysJLnVsZWIxMjggMHgyMTEx CSMgKERXX0FUX0dOVV9jYWxsX3NpdGVfdmFsdWUpCisrCS51bGViMTI4IDB4MTgJIyAoRFdfRk9S TV9leHBybG9jKQorKwkudWxlYjEyOCAweDIxMTIJIyAoRFdfQVRfR05VX2NhbGxfc2l0ZV9kYXRh X3ZhbHVlKQorKwkudWxlYjEyOCAweDE4CSMgKERXX0ZPUk1fZXhwcmxvYykKKysJLmJ5dGUJMAor KwkuYnl0ZQkwCisrCS51bGViMTI4IDB4ZQkjIChhYmJyZXYgY29kZSkKKysJLnVsZWIxMjggMHgz NAkjIChUQUc6IERXX1RBR192YXJpYWJsZSkKKysJLmJ5dGUJMAkjIERXX2NoaWxkcmVuX25vCisr CS51bGViMTI4IDB4MwkjIChEV19BVF9uYW1lKQorKwkudWxlYjEyOCAweDgJIyAoRFdfRk9STV9z dHJpbmcpCisrCS51bGViMTI4IDB4M2EJIyAoRFdfQVRfZGVjbF9maWxlKQorKwkudWxlYjEyOCAw eGIJIyAoRFdfRk9STV9kYXRhMSkKKysJLnVsZWIxMjggMHgzYgkjIChEV19BVF9kZWNsX2xpbmUp CisrCS51bGViMTI4IDB4YgkjIChEV19GT1JNX2RhdGExKQorKwkudWxlYjEyOCAweDQ5CSMgKERX X0FUX3R5cGUpCisrCS51bGViMTI4IDB4MTMJIyAoRFdfRk9STV9yZWY0KQorKwkudWxlYjEyOCAw eDNmCSMgKERXX0FUX2V4dGVybmFsKQorKwkudWxlYjEyOCAweDE5CSMgKERXX0ZPUk1fZmxhZ19w cmVzZW50KQorKwkudWxlYjEyOCAweDIJIyAoRFdfQVRfbG9jYXRpb24pCisrCS51bGViMTI4IDB4 MTgJIyAoRFdfRk9STV9leHBybG9jKQorKwkuYnl0ZQkwCisrCS5ieXRlCTAKKysJLnVsZWIxMjgg MHhmCSMgKGFiYnJldiBjb2RlKQorKwkudWxlYjEyOCAweDM1CSMgKFRBRzogRFdfVEFHX3ZvbGF0 aWxlX3R5cGUpCisrCS5ieXRlCTAJIyBEV19jaGlsZHJlbl9ubworKwkudWxlYjEyOCAweDQ5CSMg KERXX0FUX3R5cGUpCisrCS51bGViMTI4IDB4MTMJIyAoRFdfRk9STV9yZWY0KQorKwkuYnl0ZQkw CisrCS5ieXRlCTAKKysJLnVsZWIxMjggMHgxMAkjIChhYmJyZXYgY29kZSkKKysJLnVsZWIxMjgg MHhmCSMgKFRBRzogRFdfVEFHX3BvaW50ZXJfdHlwZSkKKysJLmJ5dGUJMAkjIERXX2NoaWxkcmVu X25vCisrCS51bGViMTI4IDB4YgkjIChEV19BVF9ieXRlX3NpemUpCisrCS51bGViMTI4IDB4Ygkj IChEV19GT1JNX2RhdGExKQorKwkudWxlYjEyOCAweDQ5CSMgKERXX0FUX3R5cGUpCisrCS51bGVi MTI4IDB4MTMJIyAoRFdfRk9STV9yZWY0KQorKwkuYnl0ZQkwCisrCS5ieXRlCTAKKysJLmJ5dGUJ MAorKwkuc2VjdGlvbgkuZGVidWdfYXJhbmdlcywiIixAcHJvZ2JpdHMKKysJLmxvbmcJMHgzYwkj IExlbmd0aCBvZiBBZGRyZXNzIFJhbmdlcyBJbmZvCisrCS52YWx1ZQkweDIJIyBEV0FSRiBWZXJz aW9uCisrCS5sb25nCS5MZGVidWdfaW5mbzAJIyBPZmZzZXQgb2YgQ29tcGlsYXRpb24gVW5pdCBJ bmZvCisrCS5ieXRlCTB4OAkjIFNpemUgb2YgQWRkcmVzcworKwkuYnl0ZQkwCSMgU2l6ZSBvZiBT ZWdtZW50IERlc2NyaXB0b3IKKysJLnZhbHVlCTAJIyBQYWQgdG8gMTYgYnl0ZSBib3VuZGFyeQor KwkudmFsdWUJMAorKwkucXVhZAkuTHRleHQwCSMgQWRkcmVzcworKwkucXVhZAkuTGV0ZXh0MC0u THRleHQwCSMgTGVuZ3RoCisrCS5xdWFkCS5MRkIxCSMgQWRkcmVzcworKwkucXVhZAkuTEZFMS0u TEZCMQkjIExlbmd0aAorKwkucXVhZAkwCisrCS5xdWFkCTAKKysJLnNlY3Rpb24JLmRlYnVnX3Jh bmdlcywiIixAcHJvZ2JpdHMKKysuTGRlYnVnX3JhbmdlczA6CisrCS5xdWFkCS5MdGV4dDAJIyBP ZmZzZXQgMAorKwkucXVhZAkuTGV0ZXh0MAorKwkucXVhZAkuTEZCMQkjIE9mZnNldCAweDEwCisr CS5xdWFkCS5MRkUxCisrCS5xdWFkCTAKKysJLnF1YWQJMAorKwkuc2VjdGlvbgkuZGVidWdfbGlu ZSwiIixAcHJvZ2JpdHMKKysuTGRlYnVnX2xpbmUwOgorKwkuc2VjdGlvbgkuZGVidWdfc3RyLCJN UyIsQHByb2diaXRzLDEKKysuTEFTRjE6CisrCS5zdHJpbmcJImdkYi5hcmNoL2FtZDY0LWVudHJ5 LXZhbHVlLXBhcmFtcmVmLmNjIgorKy5MQVNGMjoKKysJLnN0cmluZwkiIgorKy5MQVNGMDoKKysJ LnN0cmluZwkiR05VIEMrKyA0LjguMiAyMDEzMTIxMiAoUmVkIEhhdCA0LjguMi03KSAtbXR1bmU9 Z2VuZXJpYyAtbWFyY2g9eDg2LTY0IC1nIC1PMiIKKysuTEFTRjM6CisrCS5zdHJpbmcJIm1haW4i CisrCS5pZGVudAkiR0NDOiAoR05VKSA0LjguMiAyMDEzMTIxMiAoUmVkIEhhdCA0LjguMi03KSIK KysJLnNlY3Rpb24JLm5vdGUuR05VLXN0YWNrLCIiLEBwcm9nYml0cworZGlmZiAtLWdpdCBhL2dk Yi90ZXN0c3VpdGUvZ2RiLmFyY2gvYW1kNjQtZW50cnktdmFsdWUtcGFyYW1yZWYuY2MgYi9nZGIv dGVzdHN1aXRlL2dkYi5hcmNoL2FtZDY0LWVudHJ5LXZhbHVlLXBhcmFtcmVmLmNjCituZXcgZmls ZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMC4uYWE0NzNhMworLS0tIC9kZXYvbnVsbAorKysr IGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC9hbWQ2NC1lbnRyeS12YWx1ZS1wYXJhbXJlZi5jYwor QEAgLTAsMCArMSwzMyBAQAorKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBH TlUgZGVidWdnZXIuCisrCisrICAgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBJbmMuCisrCisrICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g cmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysgICBpdCB1bmRlciB0aGUgdGVybXMgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyAgIHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2Us IG9yCisrICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysKKysgICBUaGlz IHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1 bCwKKysgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll ZCB3YXJyYW50eSBvZgorKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm b3IgbW9yZSBkZXRhaWxzLgorKworKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrICAgYWxvbmcgd2l0aCB0aGlzIHBy b2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLwor KworK3ZvbGF0aWxlIGludCB2diwgKnA7CisrCisrc3RhdGljIF9fYXR0cmlidXRlX18oKG5vaW5s aW5lKSkgaW50CisrYmFyIChpbnQgJnJlZikKKyt7CisrICB2disrOyAvKiBicmVhay1oZXJlICov CisrICBwID0gJnJlZjsKKysgIHJldHVybiByZWY7CisrfQorKworK2ludAorK21haW4gKHZvaWQp CisreworKyAgaW50IHZhciA9IDEwOworKyAgcmV0dXJuIGJhciAodmFyKTsKKyt9CitkaWZmIC0t Z2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC9hbWQ2NC1lbnRyeS12YWx1ZS1wYXJhbXJlZi5l eHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL2FtZDY0LWVudHJ5LXZhbHVlLXBhcmFtcmVmLmV4 cAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAuLmYwNjI0N2QKKy0tLSAvZGV2 L251bGwKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gvYW1kNjQtZW50cnktdmFsdWUtcGFy YW1yZWYuZXhwCitAQCAtMCwwICsxLDM1IEBACisrIyBDb3B5cmlnaHQgKEMpIDIwMTQgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIworKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29m dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysjIGl0IHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVk IGJ5CisrIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9m IHRoZSBMaWNlbnNlLCBvcgorKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K KysjCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3 aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisrIyBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKyMKKysjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl ZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrIyBhbG9uZyB3aXRo IHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMv Pi4KKysKKytzdGFuZGFyZF90ZXN0ZmlsZSAuUyAuY2MKKysKKytpZiB7ICFbaXN0YXJnZXQgeDg2 XzY0LSotKiBdIHx8ICFbaXNfbHA2NF90YXJnZXRdIH0geworKyAgICB2ZXJib3NlICJTa2lwcGlu ZyBhbWQ2NC1lbnRyeS12YWx1ZS1wYXJhbXJlZi4iCisrICAgIHJldHVybgorK30KKysKKytpZiB7 IFtwcmVwYXJlX2Zvcl90ZXN0aW5nICR7dGVzdGZpbGV9LmV4cCAke3Rlc3RmaWxlfSAke3NyY2Zp bGV9ICJjKysiXSB9IHsKKysgICAgcmV0dXJuIC0xCisrfQorKworK2lmICFbcnVudG9fbWFpbl0g eworKyAgICByZXR1cm4gLTEKKyt9CisrCisrc2V0IHNyY2ZpbGUgJHNyY2ZpbGUyCisrZ2RiX2Jy ZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgImJyZWFrLWhlcmUiXQorKworK2dkYl9jb250 aW51ZV90b19icmVha3BvaW50ICJicmVhay1oZXJlIiAiLiogYnJlYWstaGVyZSAuKiIKKytnZGJf dGVzdCAiZnJhbWUiIHtiYXIgXChyZWY9QDB4WzAtOWEtZl0rOiAxMCwgcmVmQGVudHJ5PUAweFsw LTlhLWZdKzogPG9wdGltaXplZCBvdXQ+XCkgYXQgLip9CitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3Rz dWl0ZS9nZGIuYXJjaC9hbWQ2NC1vcHRpbW91dC1yZXBlYXQuUyBiL2dkYi90ZXN0c3VpdGUvZ2Ri LmFyY2gvYW1kNjQtb3B0aW1vdXQtcmVwZWF0LlMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRl eCAwMDAwMDAwLi4yZjhmNGQyCistLS0gL2Rldi9udWxsCisrKysgYi9nZGIvdGVzdHN1aXRlL2dk Yi5hcmNoL2FtZDY0LW9wdGltb3V0LXJlcGVhdC5TCitAQCAtMCwwICsxLDI5NyBAQAorKy8qIFRo aXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCisrCisrICAgQ29w eXJpZ2h0IDIwMTItMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKysgICBU aGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k L29yIG1vZGlmeQorKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysgICAoYXQgeW91ciBv cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKworKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmli dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAgIGJ1dCBXSVRIT1VU IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICAg TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl IHRoZQorKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisr CisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UKKysgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2Vl IDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisrCisrLyogVGhpcyBmaWxlIGlz IGNvbXBpbGVkIGZyb20gZ2RiLmFyY2gvYW1kNjQtZW50cnktdmFsdWUtcGFyYW0uYworKyAgIHVz aW5nIC1nIC1kQSAtUyAtTzIuICAqLworKworKwkuZmlsZQkiYW1kNjQtb3B0aW1vdXQtcmVwZWF0 LmMiCisrCS50ZXh0CisrLkx0ZXh0MDoKKysJLnNlY3Rpb24JLnRleHQudW5saWtlbHksImF4IixA cHJvZ2JpdHMKKysuTENPTERCMDoKKysJLnNlY3Rpb24JLnRleHQuc3RhcnR1cCwiYXgiLEBwcm9n Yml0cworKy5MSE9UQjA6CisrCS5wMmFsaWduIDQsLDE1CisrCS5zZWN0aW9uCS50ZXh0LnVubGlr ZWx5CisrLkx0ZXh0X2NvbGQwOgorKwkuc2VjdGlvbgkudGV4dC5zdGFydHVwCisrCS5nbG9ibAlt YWluCisrCS50eXBlCW1haW4sIEBmdW5jdGlvbgorK21haW46CisrLkxGQjA6CisrCS5maWxlIDEg ImdkYi5hcmNoL2FtZDY0LW9wdGltb3V0LXJlcGVhdC5jIgorKwkjIGdkYi5hcmNoL2FtZDY0LW9w dGltb3V0LXJlcGVhdC5jOjIwCisrCS5sb2MgMSAyMCAwCisrCS5jZmlfc3RhcnRwcm9jCisrIyBC TE9DSyAyIGZyZXE6MTAwMDAgc2VxOjAKKysjIFBSRUQ6IEVOVFJZIFsxMDAuMCVdICAoRkFMTFRI UlUpCisrLkxWTDA6CisrCSMgZ2RiLmFyY2gvYW1kNjQtb3B0aW1vdXQtcmVwZWF0LmM6MjkKKysJ LmxvYyAxIDI5IDAKKysJeG9ybAklZWF4LCAlZWF4CisrIyBTVUNDOiBFWElUIFsxMDAuMCVdIAor KwlyZXQKKysJLmNmaV9lbmRwcm9jCisrLkxGRTA6CisrCS5zaXplCW1haW4sIC4tbWFpbgorKwku c2VjdGlvbgkudGV4dC51bmxpa2VseQorKy5MQ09MREUwOgorKwkuc2VjdGlvbgkudGV4dC5zdGFy dHVwCisrLkxIT1RFMDoKKysJLnRleHQKKysuTGV0ZXh0MDoKKysJLnNlY3Rpb24JLnRleHQudW5s aWtlbHkKKysuTGV0ZXh0X2NvbGQwOgorKwkuc2VjdGlvbgkuZGVidWdfaW5mbywiIixAcHJvZ2Jp dHMKKysuTGRlYnVnX2luZm8wOgorKwkubG9uZwkweDk3CSMgTGVuZ3RoIG9mIENvbXBpbGF0aW9u IFVuaXQgSW5mbworKwkudmFsdWUJMHg0CSMgRFdBUkYgdmVyc2lvbiBudW1iZXIKKysJLmxvbmcJ LkxkZWJ1Z19hYmJyZXYwCSMgT2Zmc2V0IEludG8gQWJicmV2LiBTZWN0aW9uCisrCS5ieXRlCTB4 OAkjIFBvaW50ZXIgU2l6ZSAoaW4gYnl0ZXMpCisrCS51bGViMTI4IDB4MQkjIChESUUgKDB4Yikg RFdfVEFHX2NvbXBpbGVfdW5pdCkKKysJLmxvbmcJLkxBU0YxCSMgRFdfQVRfcHJvZHVjZXI6ICJH TlUgQyA0LjkuMSAyMDE0MDcwOSAocHJlcmVsZWFzZSkgLW10dW5lPWdlbmVyaWMgLW1hcmNoPXg4 Ni02NCAtZyAtTzIiCisrCS5ieXRlCTB4MQkjIERXX0FUX2xhbmd1YWdlCisrCS5sb25nCS5MQVNG MgkjIERXX0FUX25hbWU6ICJnZGIuYXJjaC9hbWQ2NC1vcHRpbW91dC1yZXBlYXQuYyIKKysJLmxv bmcJLkxBU0YzCSMgRFdfQVRfY29tcF9kaXI6ICIiCisrCS5sb25nCS5MZGVidWdfcmFuZ2VzMCsw CSMgRFdfQVRfcmFuZ2VzCisrCS5xdWFkCTAJIyBEV19BVF9sb3dfcGMKKysJLmxvbmcJLkxkZWJ1 Z19saW5lMAkjIERXX0FUX3N0bXRfbGlzdAorKwkudWxlYjEyOCAweDIJIyAoRElFICgweDI5KSBE V19UQUdfc3VicHJvZ3JhbSkKKysJCQkjIERXX0FUX2V4dGVybmFsCisrCS5sb25nCS5MQVNGNAkj IERXX0FUX25hbWU6ICJtYWluIgorKwkuYnl0ZQkweDEJIyBEV19BVF9kZWNsX2ZpbGUgKGdkYi5h cmNoL2FtZDY0LW9wdGltb3V0LXJlcGVhdC5jKQorKwkuYnl0ZQkweDEzCSMgRFdfQVRfZGVjbF9s aW5lCisrCQkJIyBEV19BVF9wcm90b3R5cGVkCisrCS5sb25nCTB4N2MJIyBEV19BVF90eXBlCisr CS5xdWFkCS5MRkIwCSMgRFdfQVRfbG93X3BjCisrCS5xdWFkCS5MRkUwLS5MRkIwCSMgRFdfQVRf aGlnaF9wYworKwkudWxlYjEyOCAweDEJIyBEV19BVF9mcmFtZV9iYXNlCisrCS5ieXRlCTB4OWMJ IyBEV19PUF9jYWxsX2ZyYW1lX2NmYQorKwkJCSMgRFdfQVRfR05VX2FsbF9jYWxsX3NpdGVzCisr CS5sb25nCTB4N2MJIyBEV19BVF9zaWJsaW5nCisrCS51bGViMTI4IDB4MwkjIChESUUgKDB4NGEp IERXX1RBR19zdHJ1Y3R1cmVfdHlwZSkKKysJLnZhbHVlCTB4NDA0CSMgRFdfQVRfYnl0ZV9zaXpl CisrCS5ieXRlCTB4MQkjIERXX0FUX2RlY2xfZmlsZSAoZ2RiLmFyY2gvYW1kNjQtb3B0aW1vdXQt cmVwZWF0LmMpCisrCS5ieXRlCTB4MTUJIyBEV19BVF9kZWNsX2xpbmUKKysJLmxvbmcJMHg2YQkj IERXX0FUX3NpYmxpbmcKKysJLnVsZWIxMjggMHg0CSMgKERJRSAoMHg1MykgRFdfVEFHX21lbWJl cikKKysJLmFzY2lpICJpXDAiCSMgRFdfQVRfbmFtZQorKwkuYnl0ZQkweDEJIyBEV19BVF9kZWNs X2ZpbGUgKGdkYi5hcmNoL2FtZDY0LW9wdGltb3V0LXJlcGVhdC5jKQorKwkuYnl0ZQkweDE3CSMg RFdfQVRfZGVjbF9saW5lCisrCS5sb25nCTB4N2MJIyBEV19BVF90eXBlCisrCS5ieXRlCTAJIyBE V19BVF9kYXRhX21lbWJlcl9sb2NhdGlvbgorKwkudWxlYjEyOCAweDQJIyAoRElFICgweDVkKSBE V19UQUdfbWVtYmVyKQorKwkuYXNjaWkgInh4eFwwIgkjIERXX0FUX25hbWUKKysJLmJ5dGUJMHgx CSMgRFdfQVRfZGVjbF9maWxlIChnZGIuYXJjaC9hbWQ2NC1vcHRpbW91dC1yZXBlYXQuYykKKysJ LmJ5dGUJMHgxOAkjIERXX0FUX2RlY2xfbGluZQorKwkubG9uZwkweDgzCSMgRFdfQVRfdHlwZQor KwkuYnl0ZQkweDQJIyBEV19BVF9kYXRhX21lbWJlcl9sb2NhdGlvbgorKwkuYnl0ZQkwCSMgZW5k IG9mIGNoaWxkcmVuIG9mIERJRSAweDRhCisrCS51bGViMTI4IDB4NQkjIChESUUgKDB4NmEpIERX X1RBR192YXJpYWJsZSkKKysJLmFzY2lpICJ2XDAiCSMgRFdfQVRfbmFtZQorKwkuYnl0ZQkweDEJ IyBEV19BVF9kZWNsX2ZpbGUgKGdkYi5hcmNoL2FtZDY0LW9wdGltb3V0LXJlcGVhdC5jKQorKwku Ynl0ZQkweDFhCSMgRFdfQVRfZGVjbF9saW5lCisrCS5sb25nCTB4NGEJIyBEV19BVF90eXBlCisr CS51bGViMTI4IDB4NwkjIERXX0FUX2xvY2F0aW9uCisrCS5ieXRlCTB4MzAJIyBEV19PUF9saXQw CisrCS5ieXRlCTB4OWYJIyBEV19PUF9zdGFja192YWx1ZQorKwkuYnl0ZQkweDkzCSMgRFdfT1Bf cGllY2UKKysJLnVsZWIxMjggMHg0CisrCS5ieXRlCTB4OTMJIyBEV19PUF9waWVjZQorKwkudWxl YjEyOCAweDQwMAorKwkuYnl0ZQkwCSMgZW5kIG9mIGNoaWxkcmVuIG9mIERJRSAweDI5CisrCS51 bGViMTI4IDB4NgkjIChESUUgKDB4N2MpIERXX1RBR19iYXNlX3R5cGUpCisrCS5ieXRlCTB4NAkj IERXX0FUX2J5dGVfc2l6ZQorKwkuYnl0ZQkweDUJIyBEV19BVF9lbmNvZGluZworKwkuYXNjaWkg ImludFwwIgkjIERXX0FUX25hbWUKKysJLnVsZWIxMjggMHg3CSMgKERJRSAoMHg4MykgRFdfVEFH X2FycmF5X3R5cGUpCisrCS5sb25nCTB4N2MJIyBEV19BVF90eXBlCisrCS5sb25nCTB4OTMJIyBE V19BVF9zaWJsaW5nCisrCS51bGViMTI4IDB4OAkjIChESUUgKDB4OGMpIERXX1RBR19zdWJyYW5n ZV90eXBlKQorKwkubG9uZwkweDkzCSMgRFdfQVRfdHlwZQorKwkuYnl0ZQkweGZmCSMgRFdfQVRf dXBwZXJfYm91bmQKKysJLmJ5dGUJMAkjIGVuZCBvZiBjaGlsZHJlbiBvZiBESUUgMHg4MworKwku dWxlYjEyOCAweDkJIyAoRElFICgweDkzKSBEV19UQUdfYmFzZV90eXBlKQorKwkuYnl0ZQkweDgJ IyBEV19BVF9ieXRlX3NpemUKKysJLmJ5dGUJMHg3CSMgRFdfQVRfZW5jb2RpbmcKKysJLmxvbmcJ LkxBU0YwCSMgRFdfQVRfbmFtZTogInNpemV0eXBlIgorKwkuYnl0ZQkwCSMgZW5kIG9mIGNoaWxk cmVuIG9mIERJRSAweGIKKysJLnNlY3Rpb24JLmRlYnVnX2FiYnJldiwiIixAcHJvZ2JpdHMKKysu TGRlYnVnX2FiYnJldjA6CisrCS51bGViMTI4IDB4MQkjIChhYmJyZXYgY29kZSkKKysJLnVsZWIx MjggMHgxMQkjIChUQUc6IERXX1RBR19jb21waWxlX3VuaXQpCisrCS5ieXRlCTB4MQkjIERXX2No aWxkcmVuX3llcworKwkudWxlYjEyOCAweDI1CSMgKERXX0FUX3Byb2R1Y2VyKQorKwkudWxlYjEy OCAweGUJIyAoRFdfRk9STV9zdHJwKQorKwkudWxlYjEyOCAweDEzCSMgKERXX0FUX2xhbmd1YWdl KQorKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkKKysJLnVsZWIxMjggMHgzCSMgKERX X0FUX25hbWUpCisrCS51bGViMTI4IDB4ZQkjIChEV19GT1JNX3N0cnApCisrCS51bGViMTI4IDB4 MWIJIyAoRFdfQVRfY29tcF9kaXIpCisrCS51bGViMTI4IDB4ZQkjIChEV19GT1JNX3N0cnApCisr CS51bGViMTI4IDB4NTUJIyAoRFdfQVRfcmFuZ2VzKQorKwkudWxlYjEyOCAweDE3CSMgKERXX0ZP Uk1fc2VjX29mZnNldCkKKysJLnVsZWIxMjggMHgxMQkjIChEV19BVF9sb3dfcGMpCisrCS51bGVi MTI4IDB4MQkjIChEV19GT1JNX2FkZHIpCisrCS51bGViMTI4IDB4MTAJIyAoRFdfQVRfc3RtdF9s aXN0KQorKwkudWxlYjEyOCAweDE3CSMgKERXX0ZPUk1fc2VjX29mZnNldCkKKysJLmJ5dGUJMAor KwkuYnl0ZQkwCisrCS51bGViMTI4IDB4MgkjIChhYmJyZXYgY29kZSkKKysJLnVsZWIxMjggMHgy ZQkjIChUQUc6IERXX1RBR19zdWJwcm9ncmFtKQorKwkuYnl0ZQkweDEJIyBEV19jaGlsZHJlbl95 ZXMKKysJLnVsZWIxMjggMHgzZgkjIChEV19BVF9leHRlcm5hbCkKKysJLnVsZWIxMjggMHgxOQkj IChEV19GT1JNX2ZsYWdfcHJlc2VudCkKKysJLnVsZWIxMjggMHgzCSMgKERXX0FUX25hbWUpCisr CS51bGViMTI4IDB4ZQkjIChEV19GT1JNX3N0cnApCisrCS51bGViMTI4IDB4M2EJIyAoRFdfQVRf ZGVjbF9maWxlKQorKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkKKysJLnVsZWIxMjgg MHgzYgkjIChEV19BVF9kZWNsX2xpbmUpCisrCS51bGViMTI4IDB4YgkjIChEV19GT1JNX2RhdGEx KQorKwkudWxlYjEyOCAweDI3CSMgKERXX0FUX3Byb3RvdHlwZWQpCisrCS51bGViMTI4IDB4MTkJ IyAoRFdfRk9STV9mbGFnX3ByZXNlbnQpCisrCS51bGViMTI4IDB4NDkJIyAoRFdfQVRfdHlwZSkK KysJLnVsZWIxMjggMHgxMwkjIChEV19GT1JNX3JlZjQpCisrCS51bGViMTI4IDB4MTEJIyAoRFdf QVRfbG93X3BjKQorKwkudWxlYjEyOCAweDEJIyAoRFdfRk9STV9hZGRyKQorKwkudWxlYjEyOCAw eDEyCSMgKERXX0FUX2hpZ2hfcGMpCisrCS51bGViMTI4IDB4NwkjIChEV19GT1JNX2RhdGE4KQor KwkudWxlYjEyOCAweDQwCSMgKERXX0FUX2ZyYW1lX2Jhc2UpCisrCS51bGViMTI4IDB4MTgJIyAo RFdfRk9STV9leHBybG9jKQorKwkudWxlYjEyOCAweDIxMTcJIyAoRFdfQVRfR05VX2FsbF9jYWxs X3NpdGVzKQorKwkudWxlYjEyOCAweDE5CSMgKERXX0ZPUk1fZmxhZ19wcmVzZW50KQorKwkudWxl YjEyOCAweDEJIyAoRFdfQVRfc2libGluZykKKysJLnVsZWIxMjggMHgxMwkjIChEV19GT1JNX3Jl ZjQpCisrCS5ieXRlCTAKKysJLmJ5dGUJMAorKwkudWxlYjEyOCAweDMJIyAoYWJicmV2IGNvZGUp CisrCS51bGViMTI4IDB4MTMJIyAoVEFHOiBEV19UQUdfc3RydWN0dXJlX3R5cGUpCisrCS5ieXRl CTB4MQkjIERXX2NoaWxkcmVuX3llcworKwkudWxlYjEyOCAweGIJIyAoRFdfQVRfYnl0ZV9zaXpl KQorKwkudWxlYjEyOCAweDUJIyAoRFdfRk9STV9kYXRhMikKKysJLnVsZWIxMjggMHgzYQkjIChE V19BVF9kZWNsX2ZpbGUpCisrCS51bGViMTI4IDB4YgkjIChEV19GT1JNX2RhdGExKQorKwkudWxl YjEyOCAweDNiCSMgKERXX0FUX2RlY2xfbGluZSkKKysJLnVsZWIxMjggMHhiCSMgKERXX0ZPUk1f ZGF0YTEpCisrCS51bGViMTI4IDB4MQkjIChEV19BVF9zaWJsaW5nKQorKwkudWxlYjEyOCAweDEz CSMgKERXX0ZPUk1fcmVmNCkKKysJLmJ5dGUJMAorKwkuYnl0ZQkwCisrCS51bGViMTI4IDB4NAkj IChhYmJyZXYgY29kZSkKKysJLnVsZWIxMjggMHhkCSMgKFRBRzogRFdfVEFHX21lbWJlcikKKysJ LmJ5dGUJMAkjIERXX2NoaWxkcmVuX25vCisrCS51bGViMTI4IDB4MwkjIChEV19BVF9uYW1lKQor KwkudWxlYjEyOCAweDgJIyAoRFdfRk9STV9zdHJpbmcpCisrCS51bGViMTI4IDB4M2EJIyAoRFdf QVRfZGVjbF9maWxlKQorKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkKKysJLnVsZWIx MjggMHgzYgkjIChEV19BVF9kZWNsX2xpbmUpCisrCS51bGViMTI4IDB4YgkjIChEV19GT1JNX2Rh dGExKQorKwkudWxlYjEyOCAweDQ5CSMgKERXX0FUX3R5cGUpCisrCS51bGViMTI4IDB4MTMJIyAo RFdfRk9STV9yZWY0KQorKwkudWxlYjEyOCAweDM4CSMgKERXX0FUX2RhdGFfbWVtYmVyX2xvY2F0 aW9uKQorKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkKKysJLmJ5dGUJMAorKwkuYnl0 ZQkwCisrCS51bGViMTI4IDB4NQkjIChhYmJyZXYgY29kZSkKKysJLnVsZWIxMjggMHgzNAkjIChU QUc6IERXX1RBR192YXJpYWJsZSkKKysJLmJ5dGUJMAkjIERXX2NoaWxkcmVuX25vCisrCS51bGVi MTI4IDB4MwkjIChEV19BVF9uYW1lKQorKwkudWxlYjEyOCAweDgJIyAoRFdfRk9STV9zdHJpbmcp CisrCS51bGViMTI4IDB4M2EJIyAoRFdfQVRfZGVjbF9maWxlKQorKwkudWxlYjEyOCAweGIJIyAo RFdfRk9STV9kYXRhMSkKKysJLnVsZWIxMjggMHgzYgkjIChEV19BVF9kZWNsX2xpbmUpCisrCS51 bGViMTI4IDB4YgkjIChEV19GT1JNX2RhdGExKQorKwkudWxlYjEyOCAweDQ5CSMgKERXX0FUX3R5 cGUpCisrCS51bGViMTI4IDB4MTMJIyAoRFdfRk9STV9yZWY0KQorKwkudWxlYjEyOCAweDIJIyAo RFdfQVRfbG9jYXRpb24pCisrCS51bGViMTI4IDB4MTgJIyAoRFdfRk9STV9leHBybG9jKQorKwku Ynl0ZQkwCisrCS5ieXRlCTAKKysJLnVsZWIxMjggMHg2CSMgKGFiYnJldiBjb2RlKQorKwkudWxl YjEyOCAweDI0CSMgKFRBRzogRFdfVEFHX2Jhc2VfdHlwZSkKKysJLmJ5dGUJMAkjIERXX2NoaWxk cmVuX25vCisrCS51bGViMTI4IDB4YgkjIChEV19BVF9ieXRlX3NpemUpCisrCS51bGViMTI4IDB4 YgkjIChEV19GT1JNX2RhdGExKQorKwkudWxlYjEyOCAweDNlCSMgKERXX0FUX2VuY29kaW5nKQor KwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkKKysJLnVsZWIxMjggMHgzCSMgKERXX0FU X25hbWUpCisrCS51bGViMTI4IDB4OAkjIChEV19GT1JNX3N0cmluZykKKysJLmJ5dGUJMAorKwku Ynl0ZQkwCisrCS51bGViMTI4IDB4NwkjIChhYmJyZXYgY29kZSkKKysJLnVsZWIxMjggMHgxCSMg KFRBRzogRFdfVEFHX2FycmF5X3R5cGUpCisrCS5ieXRlCTB4MQkjIERXX2NoaWxkcmVuX3llcwor KwkudWxlYjEyOCAweDQ5CSMgKERXX0FUX3R5cGUpCisrCS51bGViMTI4IDB4MTMJIyAoRFdfRk9S TV9yZWY0KQorKwkudWxlYjEyOCAweDEJIyAoRFdfQVRfc2libGluZykKKysJLnVsZWIxMjggMHgx MwkjIChEV19GT1JNX3JlZjQpCisrCS5ieXRlCTAKKysJLmJ5dGUJMAorKwkudWxlYjEyOCAweDgJ IyAoYWJicmV2IGNvZGUpCisrCS51bGViMTI4IDB4MjEJIyAoVEFHOiBEV19UQUdfc3VicmFuZ2Vf dHlwZSkKKysJLmJ5dGUJMAkjIERXX2NoaWxkcmVuX25vCisrCS51bGViMTI4IDB4NDkJIyAoRFdf QVRfdHlwZSkKKysJLnVsZWIxMjggMHgxMwkjIChEV19GT1JNX3JlZjQpCisrCS51bGViMTI4IDB4 MmYJIyAoRFdfQVRfdXBwZXJfYm91bmQpCisrCS51bGViMTI4IDB4YgkjIChEV19GT1JNX2RhdGEx KQorKwkuYnl0ZQkwCisrCS5ieXRlCTAKKysJLnVsZWIxMjggMHg5CSMgKGFiYnJldiBjb2RlKQor KwkudWxlYjEyOCAweDI0CSMgKFRBRzogRFdfVEFHX2Jhc2VfdHlwZSkKKysJLmJ5dGUJMAkjIERX X2NoaWxkcmVuX25vCisrCS51bGViMTI4IDB4YgkjIChEV19BVF9ieXRlX3NpemUpCisrCS51bGVi MTI4IDB4YgkjIChEV19GT1JNX2RhdGExKQorKwkudWxlYjEyOCAweDNlCSMgKERXX0FUX2VuY29k aW5nKQorKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkKKysJLnVsZWIxMjggMHgzCSMg KERXX0FUX25hbWUpCisrCS51bGViMTI4IDB4ZQkjIChEV19GT1JNX3N0cnApCisrCS5ieXRlCTAK KysJLmJ5dGUJMAorKwkuYnl0ZQkwCisrCS5zZWN0aW9uCS5kZWJ1Z19hcmFuZ2VzLCIiLEBwcm9n Yml0cworKwkubG9uZwkweDJjCSMgTGVuZ3RoIG9mIEFkZHJlc3MgUmFuZ2VzIEluZm8KKysJLnZh bHVlCTB4MgkjIERXQVJGIFZlcnNpb24KKysJLmxvbmcJLkxkZWJ1Z19pbmZvMAkjIE9mZnNldCBv ZiBDb21waWxhdGlvbiBVbml0IEluZm8KKysJLmJ5dGUJMHg4CSMgU2l6ZSBvZiBBZGRyZXNzCisr CS5ieXRlCTAJIyBTaXplIG9mIFNlZ21lbnQgRGVzY3JpcHRvcgorKwkudmFsdWUJMAkjIFBhZCB0 byAxNiBieXRlIGJvdW5kYXJ5CisrCS52YWx1ZQkwCisrCS5xdWFkCS5MRkIwCSMgQWRkcmVzcwor KwkucXVhZAkuTEZFMC0uTEZCMAkjIExlbmd0aAorKwkucXVhZAkwCisrCS5xdWFkCTAKKysJLnNl Y3Rpb24JLmRlYnVnX3JhbmdlcywiIixAcHJvZ2JpdHMKKysuTGRlYnVnX3JhbmdlczA6CisrCS5x dWFkCS5MRkIwCSMgT2Zmc2V0IDAKKysJLnF1YWQJLkxGRTAKKysJLnF1YWQJMAorKwkucXVhZAkw CisrCS5zZWN0aW9uCS5kZWJ1Z19saW5lLCIiLEBwcm9nYml0cworKy5MZGVidWdfbGluZTA6Cisr CS5zZWN0aW9uCS5kZWJ1Z19zdHIsIk1TIixAcHJvZ2JpdHMsMQorKy5MQVNGMDoKKysJLnN0cmlu Zwkic2l6ZXR5cGUiCisrLkxBU0YyOgorKwkuc3RyaW5nCSJnZGIuYXJjaC9hbWQ2NC1vcHRpbW91 dC1yZXBlYXQuYyIKKysuTEFTRjE6CisrCS5zdHJpbmcJIkdOVSBDIDQuOS4xIDIwMTQwNzA5IChw cmVyZWxlYXNlKSAtbXR1bmU9Z2VuZXJpYyAtbWFyY2g9eDg2LTY0IC1nIC1PMiIKKysuTEFTRjM6 CisrCS5zdHJpbmcJIiIKKysuTEFTRjQ6CisrCS5zdHJpbmcJIm1haW4iCisrCS5pZGVudAkiR0ND OiAoR05VKSA0LjkuMSAyMDE0MDcwOSAocHJlcmVsZWFzZSkiCisrCS5zZWN0aW9uCS5ub3RlLkdO VS1zdGFjaywiIixAcHJvZ2JpdHMKK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5hcmNo L2FtZDY0LW9wdGltb3V0LXJlcGVhdC5jIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC9hbWQ2NC1v cHRpbW91dC1yZXBlYXQuYworbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAuLmEz MmI2ZGUKKy0tLSAvZGV2L251bGwKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gvYW1kNjQt b3B0aW1vdXQtcmVwZWF0LmMKK0BAIC0wLDAgKzEsMjkgQEAKKysvKiBUaGlzIHRlc3RjYXNlIGlz IHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgorKworKyAgIENvcHlyaWdodCAyMDE0IEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKworKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVl IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrICAgaXQg dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJs aXNoZWQgYnkKKysgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lv biAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl cnNpb24uCisrCisrICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysgICBNRVJDSEFOVEFCSUxJVFkgb3Ig RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisrICAgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysKKysgICBZb3Ugc2hvdWxkIGhh dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyAg IGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9y Zy9saWNlbnNlcy8+LiAgKi8KKysKKytpbnQKKyttYWluICh2b2lkKQorK3sKKysgIHN0cnVjdAor KyAgICB7CisrICAgICAgaW50IGk7CisrICAgICAgaW50IHh4eFsweDEwMF07CisrICAgIH0KKysg IHYgPSB7IDAgfTsKKysKKysgIHJldHVybiB2Lmk7CisrfQorZGlmZiAtLWdpdCBhL2dkYi90ZXN0 c3VpdGUvZ2RiLmFyY2gvYW1kNjQtb3B0aW1vdXQtcmVwZWF0LmV4cCBiL2dkYi90ZXN0c3VpdGUv Z2RiLmFyY2gvYW1kNjQtb3B0aW1vdXQtcmVwZWF0LmV4cAorbmV3IGZpbGUgbW9kZSAxMDA2NDQK K2luZGV4IDAwMDAwMDAuLmYzYzkzYTQKKy0tLSAvZGV2L251bGwKKysrKyBiL2dkYi90ZXN0c3Vp dGUvZ2RiLmFyY2gvYW1kNjQtb3B0aW1vdXQtcmVwZWF0LmV4cAorQEAgLTAsMCArMSwzNiBAQAor KyMgQ29weXJpZ2h0IChDKSAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMK KysjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp dCBhbmQvb3IgbW9kaWZ5CisrIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysjIChhdCB5b3Vy IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrIworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3Ry aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9V VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyMg TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl IHRoZQorKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysj CisrIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZQorKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8 aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisrCisrc3RhbmRhcmRfdGVzdGZpbGUgLlMg LmMKKytzZXQgb3B0cyB7fQorKworK2lmIFtpbmZvIGV4aXN0cyBDT01QSUxFXSB7CisrICAgICMg bWFrZSBjaGVjayBSVU5URVNURkxBR1M9ImdkYi5hcmNoL2FtZDY0LW9wdGltb3V0LXJlcGVhdC5l eHAgQ09NUElMRT0xIgorKyAgICBzZXQgc3JjZmlsZSAke3NyY2ZpbGUyfQorKyAgICBsYXBwZW5k IG9wdHMgZGVidWcgb3B0aW1pemU9LU8yCisrfSBlbHNlaWYgeyAhW2lzdGFyZ2V0IHg4Nl82NC0q LSogXSB8fCAhW2lzX2xwNjRfdGFyZ2V0XSB9IHsKKysgICAgdmVyYm9zZSAiU2tpcHBpbmcgYW1k NjQtb3B0aW1vdXQtcmVwZWF0LiIKKysgICAgcmV0dXJuCisrfQorKworK2lmIHsgW3ByZXBhcmVf Zm9yX3Rlc3RpbmcgJHt0ZXN0ZmlsZX0uZXhwICR7dGVzdGZpbGV9ICR7c3JjZmlsZX0gJG9wdHNd IH0geworKyAgICByZXR1cm4gLTEKKyt9CisrCisraWYgIVtydW50b19tYWluXSB7CisrICAgIHJl dHVybiAtMQorK30KKysKKytnZGJfdGVzdCAicHJpbnQgdiIgeyA9IHtpID0gMCwgeHh4ID0gezxv cHRpbWl6ZWQgb3V0PiA8cmVwZWF0cyAyNTYgdGltZXM+fX19CisKKy0tRHhucTF6V1h2RkYwUTkz di0tCisKCmRpZmYgLS1naXQgYS9nZGItdGVzdHN1aXRlLXBhZ2luYXRpb24tcmVhZDEucGF0Y2gg Yi9nZGItdGVzdHN1aXRlLXBhZ2luYXRpb24tcmVhZDEucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uNThmYjEzMgotLS0gL2Rldi9udWxsCisrKyBiL2dkYi10ZXN0c3Vp dGUtcGFnaW5hdGlvbi1yZWFkMS5wYXRjaApAQCAtMCwwICsxLDQxNSBAQAoraHR0cDovL3NvdXJj ZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTQtMDcvbXNnMDA1NTMuaHRtbAorU3ViamVjdDog W3Rlc3RzdWl0ZSBwYXRjaF0gRml4IHBhZ2luYXRlLSouZXhwIHJhY2UgZm9yICJyZWFkMSIKKwor CistLTE3cEVIZDRSaFBIT2luWnAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11 cy1hc2NpaQorQ29udGVudC1EaXNwb3NpdGlvbjogaW5saW5lCisKK0hpIFBlZHJvLAorCit0aGVz ZSB0ZXN0Y2FzZSBoYXZlIHJhY3kgcmVzdWx0czoKKwlnZGIuYmFzZS9kb3VibGUtcHJvbXB0LXRh cmdldC1ldmVudC1lcnJvci5leHAKKwlnZGIuYmFzZS9wYWdpbmF0ZS1hZnRlci1jdHJsLWMtcnVu bmluZy5leHAKKwlnZGIuYmFzZS9wYWdpbmF0ZS1iZy1leGVjdXRpb24uZXhwCisJZ2RiLmJhc2Uv cGFnaW5hdGUtZXhlY3V0aW9uLXN0YXJ0dXAuZXhwCisJZ2RiLmJhc2UvcGFnaW5hdGUtaW5mZXJp b3ItZXhpdC5leHAKKworcmVwcm9kdWNpYmxlIHdpdGggInJlYWQxIiBmcm9tOgorCXJlcHJvZHVj ZXIgZm9yIHJhY2VzIG9mIGV4cGVjdCBpbmNvbXBsZXRlIHJlYWRzCisJaHR0cDovL3NvdXJjZXdh cmUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0xMjY0OQorCisjIFByZXZlbnQgZ2RiX3Rl c3RfbXVsdGlwbGUgY29uc2lkZXJpbmcgYW4gZXJyb3IgLXJlICI8cmV0dXJuPiIgbWF0Y2guCisj IEZvciB1bmtub3duIHJlYXNvbiAtbm90cmFuc2ZlciAtcmUgIjxyZXR1cm4+IiB7IGV4cF9jb250 aW51ZSB9IGRvZXMgbm90CisjIHByZXZlbnQgaXQuCisKK1Rlc3RlZCBvbiBGZWRvcmEgMjAgeDg2 XzY0IGFuZCBGZWRvcmEgUmF3aGlkZSB4ODZfNjQgdGhhdCAtbm90cmFuc2ZlciBkb2VzIG5vdAor d29yayB0aGVyZToKKwlleHBlY3QtNS40NS0xMC5mYzIwLng4Nl82NAorCWV4cGVjdC01LjQ1LTE2 LmZjMjEueDg2XzY0CisKK1N1cmUgaWYgc29tZW9uZSBnZXRzIC1ub3RyYW5zZmVyIHdvcmtpbmcg dGhpcyBwYXRjaCBjb3VsZCBiZSBkcm9wcGVkLgorCisKK0phbgorCistLTE3cEVIZDRSaFBIT2lu WnAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11cy1hc2NpaQorQ29udGVudC1E aXNwb3NpdGlvbjogaW5saW5lOyBmaWxlbmFtZT0xCisKK2dkYi90ZXN0c3VpdGUvCisyMDE0LTA3 LTIyICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+CisKKwkqIGdk Yi5iYXNlL2RvdWJsZS1wcm9tcHQtdGFyZ2V0LWV2ZW50LWVycm9yLmV4cDogVXNlCisJZ2RiX3Rl c3RfcGFnaW5hdGlvbi4KKwkqIGdkYi5iYXNlL3BhZ2luYXRlLWFmdGVyLWN0cmwtYy1ydW5uaW5n LmV4cDogTGlrZXdpc2UuCisJKiBnZGIuYmFzZS9wYWdpbmF0ZS1iZy1leGVjdXRpb24uZXhwOiBM aWtld2lzZS4KKwkqIGdkYi5iYXNlL3BhZ2luYXRlLWV4ZWN1dGlvbi1zdGFydHVwLmV4cDogTGlr ZXdpc2UuCisJKiBnZGIuYmFzZS9wYWdpbmF0ZS1pbmZlcmlvci1leGl0LmV4cDogTGlrZXdpc2Uu CisJKiBsaWIvZ2RiLmV4cCAocGFnaW5hdGlvbl9wcm9tcHQpOiBSZW1vdmUuCisJKGdkYl90ZXN0 X3BhZ2luYXRpb24pOiBOZXcuCisKK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNl L2RvdWJsZS1wcm9tcHQtdGFyZ2V0LWV2ZW50LWVycm9yLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2Ri LmJhc2UvZG91YmxlLXByb21wdC10YXJnZXQtZXZlbnQtZXJyb3IuZXhwCitpbmRleCA1NTcxY2Rm Li44MDNlMjU2IDEwMDY0NAorLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9kb3VibGUtcHJv bXB0LXRhcmdldC1ldmVudC1lcnJvci5leHAKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uv ZG91YmxlLXByb21wdC10YXJnZXQtZXZlbnQtZXJyb3IuZXhwCitAQCAtMjgsNyArMjgsNyBAQCBp ZiB7W3ByZXBhcmVfZm9yX3Rlc3RpbmcgImZhaWxlZCB0byBwcmVwYXJlIiAkdGVzdGZpbGUgJHNy Y2ZpbGUgZGVidWddID09IC0xfSB7CisgCisgcHJvYyBjYW5jZWxfcGFnaW5hdGlvbl9pbl90YXJn ZXRfZXZlbnQgeyBjb21tYW5kIH0geworICAgICBnbG9iYWwgYmluZmlsZSBzcmNmaWxlCistICAg IGdsb2JhbCBnZGJfcHJvbXB0IHBhZ2luYXRpb25fcHJvbXB0CisrICAgIGdsb2JhbCBnZGJfcHJv bXB0CisgCisgICAgIHNldCB0ZXN0bGluZSBbZ2RiX2dldF9saW5lX251bWJlciAiYWZ0ZXIgc2xl ZXAiXQorIAorQEAgLTYwLDI1ICs2MCwyMyBAQCBwcm9jIGNhbmNlbF9wYWdpbmF0aW9uX2luX3Rh cmdldF9ldmVudCB7IGNvbW1hbmQgfSB7CisgCisgCSMgV2FpdCBmb3IgcGFnaW5hdGlvbiBwcm9t cHQgYWZ0ZXIgdGhlICJDb250aW51aW5nIiBsaW5lLAorIAkjIGluZGljYXRpbmcgdGhlIHByb2dy YW0gd2FzIHJ1bm5pbmcgYW5kIHRoZW4gc3RvcHBlZC4KKysJZ2xvYmFsIHNhd19jb250aW51aW5n CisgCXNldCBzYXdfY29udGludWluZyAwCisgCXNldCB0ZXN0ICJjb250aW51ZSB0byBwYWdpbmF0 aW9uIgorLQlnZGJfdGVzdF9tdWx0aXBsZSAiJGNvbW1hbmQiICR0ZXN0IHsKKy0JICAgIC1yZSAi JHBhZ2luYXRpb25fcHJvbXB0JCIgeworLQkJaWYgeyRzYXdfY29udGludWluZ30geworLQkJICAg IHBhc3MgJHRlc3QKKy0JCX0gZWxzZSB7CistCQkgICAgc2VuZF9nZGIgIlxuIgorLQkJICAgIGV4 cF9jb250aW51ZQorLQkJfQorKwlnZGJfdGVzdF9wYWdpbmF0aW9uICRjb21tYW5kICR0ZXN0IHsK KysJICAgIGdsb2JhbCBzYXdfY29udGludWluZworKwkgICAgaWYgeyRzYXdfY29udGludWluZ30g eworKwkJcGFzcyAkdGVzdAorKwkgICAgfSBlbHNlIHsKKysJCXNlbmRfZ2RiICJcbiIKKysJCWV4 cF9jb250aW51ZQorIAkgICAgfQorKwl9IHsKKyAJICAgIC1yZSAiQ29udGludWluZyIgeworKwkJ Z2xvYmFsIHNhd19jb250aW51aW5nCisgCQlzZXQgc2F3X2NvbnRpbnVpbmcgMQorIAkJZXhwX2Nv bnRpbnVlCisgCSAgICB9CistCSAgICAtbm90cmFuc2ZlciAtcmUgIjxyZXR1cm4+IiB7CistCQkj IE90aGVyd2lzZSBnZGJfdGVzdF9tdWx0aXBsZSBjb25zaWRlcnMgdGhpcyBhbiBlcnJvci4KKy0J CWV4cF9jb250aW51ZQorLQkgICAgfQorIAl9CisgCisgCSMgV2UncmUgbm93IHN0b3BwZWQgaW4g YSBwYWdpbmF0aW9uIHF1ZXJ5IHdoaWxlIGhhbmRsaW5nIGEKK0BAIC04OCwxNSArODYsMjAgQEAg cHJvYyBjYW5jZWxfcGFnaW5hdGlvbl9pbl90YXJnZXRfZXZlbnQgeyBjb21tYW5kIH0geworIAlz ZW5kX2dkYiAiXDAwM3AgMVxuIgorIAorIAlzZXQgdGVzdCAibm8gZG91YmxlIHByb21wdCIKKy0J Z2RiX3Rlc3RfbXVsdGlwbGUgIiIgJHRlc3QgeworLQkgICAgLXJlICIkZ2RiX3Byb21wdC4qJGdk Yl9wcm9tcHQuKiRnZGJfcHJvbXB0ICQiIHsKKy0JCWZhaWwgJHRlc3QKKy0JICAgIH0KKy0JICAg IC1yZSAiJGdkYl9wcm9tcHQgLiogPSAxXHJcbiRnZGJfcHJvbXB0ICQiIHsKKysJZ2xvYmFsIHNh d19wcm9tcHQKKysJc2V0IHNhd19wcm9tcHQgMAorKwlnZGJfdGVzdF9wYWdpbmF0aW9uICIiICR0 ZXN0IHsKKysJICAgIGV4cF9jb250aW51ZQorKwl9IHsKKysJICAgIC1yZSAiID0gMVxyXG4kZ2Ri X3Byb21wdCAkIiB7CisgCQlwYXNzICR0ZXN0CisgCSAgICB9CistCSAgICAtbm90cmFuc2ZlciAt cmUgIjxyZXR1cm4+IiB7CistCQkjIE90aGVyd2lzZSBnZGJfdGVzdF9tdWx0aXBsZSBjb25zaWRl cnMgdGhpcyBhbiBlcnJvci4KKysJICAgIC1yZSAiXHJcbiRnZGJfcHJvbXB0ICIgeworKwkJZ2xv YmFsIHNhd19wcm9tcHQKKysJCWlmIHsgJHNhd19wcm9tcHQgIT0gMCB9IHsKKysJCSAgICBmYWls ICR0ZXN0CisrCQl9CisrCQlzZXQgc2F3X3Byb21wdCAxCisgCQlleHBfY29udGludWUKKyAJICAg IH0KKyAJfQorZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvcGFnaW5hdGUtYWZ0 ZXItY3RybC1jLXJ1bm5pbmcuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9wYWdpbmF0ZS1h ZnRlci1jdHJsLWMtcnVubmluZy5leHAKK2luZGV4IDBlZDhjOTIuLjMzMjNmZTcgMTAwNjQ0Cist LS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3BhZ2luYXRlLWFmdGVyLWN0cmwtYy1ydW5uaW5n LmV4cAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9wYWdpbmF0ZS1hZnRlci1jdHJsLWMt cnVubmluZy5leHAKK0BAIC0yNCw3ICsyNCw2IEBAIGlmIHtbYnVpbGRfZXhlY3V0YWJsZSAiZmFp bGVkIHRvIHByZXBhcmUiICR0ZXN0ZmlsZSAkc3JjZmlsZSBkZWJ1Z10gPT0gLTF9IHsKKyAKKyBw cm9jIHRlc3RfY3RybGNfd2hpbGVfdGFyZ2V0X3J1bm5pbmdfcGFnaW5hdGVzIHt9IHsKKyAgICAg Z2xvYmFsIGJpbmZpbGUgc3JjZmlsZQorLSAgICBnbG9iYWwgZ2RiX3Byb21wdCBwYWdpbmF0aW9u X3Byb21wdAorIAorICAgICBzZXQgdGVzdGxpbmUgW2dkYl9nZXRfbGluZV9udW1iZXIgImFmdGVy IHNsZWVwIl0KKyAKK0BAIC02MSwxOSArNjAsMTMgQEAgcHJvYyB0ZXN0X2N0cmxjX3doaWxlX3Rh cmdldF9ydW5uaW5nX3BhZ2luYXRlcyB7fSB7CisgCSMgdGhlIHVzZXIgY2FuIHJlc3BvbmQgdG8g dGhlIHBhZ2luYXRpb24gcXVlcnkuCisgCXNldCB0ZXN0ICJnb3QgcHJvbXB0IgorIAlzZXQgc2F3 X3BhZ2luYXRpb25fcHJvbXB0IDAKKy0JZ2RiX3Rlc3RfbXVsdGlwbGUgIiIgJHRlc3QgeworLQkg ICAgLXJlICIkcGFnaW5hdGlvbl9wcm9tcHQkIiB7CistCQlzZXQgc2F3X3BhZ2luYXRpb25fcHJv bXB0IDEKKy0JCXNlbmRfZ2RiICJcbiIKKy0JCWV4cF9jb250aW51ZQorLQkgICAgfQorKwlnZGJf dGVzdF9wYWdpbmF0aW9uICIiICR0ZXN0IHsKKysJICAgIHNlbmRfZ2RiICJcbiIKKysJICAgIGV4 cF9jb250aW51ZQorKwl9IHsKKyAJICAgIC1yZSAiJGdkYl9wcm9tcHQgJCIgeworIAkJZ2RiX2Fz c2VydCAkc2F3X3BhZ2luYXRpb25fcHJvbXB0ICR0ZXN0CisgCSAgICB9CistCSAgICAtbm90cmFu c2ZlciAtcmUgIjxyZXR1cm4+IiB7CistCQkjIE90aGVyd2lzZSBnZGJfdGVzdF9tdWx0aXBsZSBj b25zaWRlcnMgdGhpcyBhbiBlcnJvci4KKy0JCWV4cF9jb250aW51ZQorLQkgICAgfQorIAl9Cisg CisgCSMgQ29uZmlybSBHREIgY2FuIHN0aWxsIHByb2Nlc3MgaW5wdXQuCitkaWZmIC0tZ2l0IGEv Z2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9wYWdpbmF0ZS1iZy1leGVjdXRpb24uZXhwIGIvZ2RiL3Rl c3RzdWl0ZS9nZGIuYmFzZS9wYWdpbmF0ZS1iZy1leGVjdXRpb24uZXhwCitpbmRleCBkY2ZmOGFk Li4zYmE0NmEzIDEwMDY0NAorLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9wYWdpbmF0ZS1i Zy1leGVjdXRpb24uZXhwCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3BhZ2luYXRlLWJn LWV4ZWN1dGlvbi5leHAKK0BAIC0yNyw3ICsyNyw2IEBAIGlmIHtbYnVpbGRfZXhlY3V0YWJsZSAi ZmFpbGVkIHRvIHByZXBhcmUiICR0ZXN0ZmlsZSAkc3JjZmlsZSBkZWJ1Z10gPT0gLTF9IHsKKyAK KyBwcm9jIHRlc3RfYmdfZXhlY3V0aW9uX3BhZ2luYXRpb25fcmV0dXJuIHt9IHsKKyAgICAgZ2xv YmFsIGJpbmZpbGUKKy0gICAgZ2xvYmFsIHBhZ2luYXRpb25fcHJvbXB0CisgCisgICAgIHdpdGhf dGVzdF9wcmVmaXggInBhZ2luYXRlIiB7CisgCWNsZWFuX3Jlc3RhcnQgJGJpbmZpbGUKK0BAIC00 MywyMSArNDIsMTIgQEAgcHJvYyB0ZXN0X2JnX2V4ZWN1dGlvbl9wYWdpbmF0aW9uX3JldHVybiB7 fSB7CisgCisgCWdkYl90ZXN0ICJjb250aW51ZSYiICJDb250aW51aW5nXC4iCisgCistCXNldCB0 ZXN0ICJwYWdpbmF0aW9uIGhhbmRsZWQsIGJyZWFrcG9pbnQgaGl0IgorLQlzZXQgc2F3X3BhZ2lu YXRpb25fcHJvbXB0IDAKKy0JZ2RiX3Rlc3RfbXVsdGlwbGUgIiIgJHRlc3QgeworLQkgICAgLXJl ICIkcGFnaW5hdGlvbl9wcm9tcHQkIiB7CistCQlzZXQgc2F3X3BhZ2luYXRpb25fcHJvbXB0IDEK Ky0JCXNlbmRfZ2RiICJcbiIKKy0JCWV4cF9jb250aW51ZQorLQkgICAgfQorLQkgICAgLW5vdHJh bnNmZXIgLXJlICI8cmV0dXJuPiIgeworLQkJIyBPdGhlcndpc2UgZ2RiX3Rlc3RfbXVsdGlwbGUg Y29uc2lkZXJzIHRoaXMgYW4KKy0JCSMgZXJyb3IuCistCQlleHBfY29udGludWUKKy0JICAgIH0K KysJZ2RiX3Rlc3RfcGFnaW5hdGlvbiAiIiAicGFnaW5hdGlvbiBoYW5kbGVkLCBicmVha3BvaW50 IGhpdCIgeworKwkgICAgc2VuZF9nZGIgIlxuIgorKwkgICAgZXhwX2NvbnRpbnVlCisrCX0gewor IAkgICAgLXJlICJhZnRlciBzbGVlcFxbXlxyXG5cXStcclxuJCIgeworLQkJZ2RiX2Fzc2VydCAk c2F3X3BhZ2luYXRpb25fcHJvbXB0ICR0ZXN0CisrCQlnZGJfYXNzZXJ0IHsgJHNhd19wYWdpbmF0 aW9uX3Byb21wdCA9PSAzIH0gJHRlc3QKKyAJICAgIH0KKyAJfQorIAorQEAgLTc1LDcgKzY1LDcg QEAgcHJvYyB0ZXN0X2JnX2V4ZWN1dGlvbl9wYWdpbmF0aW9uX3JldHVybiB7fSB7CisgCisgcHJv YyB0ZXN0X2JnX2V4ZWN1dGlvbl9wYWdpbmF0aW9uX2NhbmNlbCB7IGhvdyB9IHsKKyAgICAgZ2xv YmFsIGJpbmZpbGUKKy0gICAgZ2xvYmFsIGdkYl9wcm9tcHQgcGFnaW5hdGlvbl9wcm9tcHQKKysg ICAgZ2xvYmFsIGdkYl9wcm9tcHQKKyAKKyAgICAgd2l0aF90ZXN0X3ByZWZpeCAiY2FuY2VsIHdp dGggJGhvdyIgeworIAljbGVhbl9yZXN0YXJ0ICRiaW5maWxlCitAQCAtOTIsMTQgKzgyLDggQEAg cHJvYyB0ZXN0X2JnX2V4ZWN1dGlvbl9wYWdpbmF0aW9uX2NhbmNlbCB7IGhvdyB9IHsKKyAJZ2Ri X3Rlc3QgImNvbnRpbnVlJiIgIkNvbnRpbnVpbmdcLiIKKyAKKyAJc2V0IHRlc3QgImNvbnRpbnVl JiBwYWdpbmF0ZXMiCistCWdkYl90ZXN0X211bHRpcGxlICIiICR0ZXN0IHsKKy0JICAgIC1yZSAi JHBhZ2luYXRpb25fcHJvbXB0JCIgeworLQkJcGFzcyAkdGVzdAorLQkgICAgfQorLQkgICAgLW5v dHJhbnNmZXIgLXJlICI8cmV0dXJuPiIgeworLQkJIyBPdGhlcndpc2UgZ2RiX3Rlc3RfbXVsdGlw bGUgY29uc2lkZXJzIHRoaXMgYW4gZXJyb3IuCistCQlleHBfY29udGludWUKKy0JICAgIH0KKysJ Z2RiX3Rlc3RfcGFnaW5hdGlvbiAiIiAkdGVzdCB7CisrCSAgICBwYXNzICR0ZXN0CisgCX0KKyAK KyAJc2V0IHRlc3QgImNhbmNlbCBwYWdpbmF0aW9uIgorZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3Vp dGUvZ2RiLmJhc2UvcGFnaW5hdGUtZXhlY3V0aW9uLXN0YXJ0dXAuZXhwIGIvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYmFzZS9wYWdpbmF0ZS1leGVjdXRpb24tc3RhcnR1cC5leHAKK2luZGV4IGRjNzEzZWMu LjRkYzIzNzYgMTAwNjQ0CistLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3BhZ2luYXRlLWV4 ZWN1dGlvbi1zdGFydHVwLmV4cAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9wYWdpbmF0 ZS1leGVjdXRpb24tc3RhcnR1cC5leHAKK0BAIC03Niw3ICs3Niw2IEBAIHByb2MgcHJvYmVfY2Fu X3J1bl9jbWRsaW5lICB7fSB7CisgcHJvYyB0ZXN0X2ZnX2V4ZWN1dGlvbl9wYWdpbmF0aW9uX3Jl dHVybiB7fSB7CisgICAgIGdsb2JhbCBmaWxlX2FyZworICAgICBnbG9iYWwgc2F2ZWRfZ2RiZmxh Z3MgR0RCRkxBR1MKKy0gICAgZ2xvYmFsIGdkYl9wcm9tcHQgcGFnaW5hdGlvbl9wcm9tcHQKKyAK KyAgICAgc2V0IEdEQkZMQUdTICRzYXZlZF9nZGJmbGFncworICAgICBhcHBlbmQgR0RCRkxBR1Mg IiAtZXggXCJzZXQgaGVpZ2h0IDJcIiIKK0BAIC05MiwxMCArOTEsOSBAQCBwcm9jIHRlc3RfZmdf ZXhlY3V0aW9uX3BhZ2luYXRpb25fcmV0dXJuIHt9IHsKKyAJICAgIGZhaWwgJHRlc3QKKyAJICAg IHJldHVybiAkcmVzCisgCX0KKy0JZ2RiX3Rlc3RfbXVsdGlwbGUgIiIgJHRlc3QgeworLQkgICAg LXJlICIkcGFnaW5hdGlvbl9wcm9tcHQkIiB7CistCQlwYXNzICR0ZXN0CistCSAgICB9CisrCWdk Yl90ZXN0X3BhZ2luYXRpb24gIiIgJHRlc3QgeworKwkgICAgcGFzcyAkdGVzdAorKwl9IHsKKyAJ ICAgIC1yZSAiJGdkYl9wcm9tcHQgJCIgeworIAkJZmFpbCAkdGVzdAorIAkgICAgfQorQEAgLTEw MywyMCArMTAxLDEzIEBAIHByb2MgdGVzdF9mZ19leGVjdXRpb25fcGFnaW5hdGlvbl9yZXR1cm4g e30geworIAorIAlzZW5kX2dkYiAiXG4iCisgCistCXNldCBzYXdfcGFnaW5hdGlvbl9wcm9tcHQg MAorIAlzZXQgdGVzdCAic2VuZCBcXG4gdG8gR0RCIgorLQlnZGJfdGVzdF9tdWx0aXBsZSAiIiAk dGVzdCB7CistCSAgICAtcmUgIiRwYWdpbmF0aW9uX3Byb21wdCQiIHsKKy0JCXNldCBzYXdfcGFn aW5hdGlvbl9wcm9tcHQgMQorLQkJc2VuZF9nZGIgIlxuIgorLQkJZXhwX2NvbnRpbnVlCistCSAg ICB9CistCSAgICAtbm90cmFuc2ZlciAtcmUgIjxyZXR1cm4+IiB7CistCQkjIE90aGVyd2lzZSBn ZGJfdGVzdF9tdWx0aXBsZSBjb25zaWRlcnMgdGhpcyBhbiBlcnJvci4KKy0JCWV4cF9jb250aW51 ZQorLQkgICAgfQorKwlnZGJfdGVzdF9wYWdpbmF0aW9uICIiICR0ZXN0IHsKKysJICAgIHNlbmRf Z2RiICJcbiIKKysJICAgIGV4cF9jb250aW51ZQorKwl9IHsKKyAJICAgIC1yZSAiJGdkYl9wcm9t cHQgJCIgeworLQkJZ2RiX2Fzc2VydCAkc2F3X3BhZ2luYXRpb25fcHJvbXB0ICR0ZXN0CisrCQln ZGJfYXNzZXJ0IHsgJHNhd19wYWdpbmF0aW9uX3Byb21wdCA9PSAzIH0gJHRlc3QKKyAJICAgIH0K KyAJfQorIAorQEAgLTEzMyw3ICsxMjQsNyBAQCBwcm9jIHRlc3RfZmdfZXhlY3V0aW9uX3BhZ2lu YXRpb25fcmV0dXJuIHt9IHsKKyBwcm9jIHRlc3RfZmdfZXhlY3V0aW9uX3BhZ2luYXRpb25fY2Fu Y2VsIHsgaG93IH0geworICAgICBnbG9iYWwgZmlsZV9hcmcKKyAgICAgZ2xvYmFsIHNhdmVkX2dk YmZsYWdzIEdEQkZMQUdTCistICAgIGdsb2JhbCBnZGJfcHJvbXB0IHBhZ2luYXRpb25fcHJvbXB0 CisrICAgIGdsb2JhbCBnZGJfcHJvbXB0CisgCisgICAgIHNldCBHREJGTEFHUyAkc2F2ZWRfZ2Ri ZmxhZ3MKKyAKK0BAIC0xNTAsMTQgKzE0MSw4IEBAIHByb2MgdGVzdF9mZ19leGVjdXRpb25fcGFn aW5hdGlvbl9jYW5jZWwgeyBob3cgfSB7CisgCSAgICBmYWlsICR0ZXN0CisgCSAgICByZXR1cm4g JHJlcworIAl9CistCWdkYl90ZXN0X211bHRpcGxlICIiICR0ZXN0IHsKKy0JICAgIC1yZSAiJHBh Z2luYXRpb25fcHJvbXB0JCIgeworLQkJcGFzcyAkdGVzdAorLQkgICAgfQorLQkgICAgLW5vdHJh bnNmZXIgLXJlICI8cmV0dXJuPiIgeworLQkJIyBPdGhlcndpc2UgZ2RiX3Rlc3RfbXVsdGlwbGUg Y29uc2lkZXJzIHRoaXMgYW4gZXJyb3IuCistCQlleHBfY29udGludWUKKy0JICAgIH0KKysJZ2Ri X3Rlc3RfcGFnaW5hdGlvbiAiIiAkdGVzdCB7CisrCSAgICBwYXNzICR0ZXN0CisgCX0KKyAKKyAJ c2V0IHRlc3QgImNhbmNlbCBwYWdpbmF0aW9uIgorZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUv Z2RiLmJhc2UvcGFnaW5hdGUtaW5mZXJpb3ItZXhpdC5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5i YXNlL3BhZ2luYXRlLWluZmVyaW9yLWV4aXQuZXhwCitpbmRleCAwZTM3YmU5Li5kNDNhMjQ1IDEw MDY0NAorLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9wYWdpbmF0ZS1pbmZlcmlvci1leGl0 LmV4cAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9wYWdpbmF0ZS1pbmZlcmlvci1leGl0 LmV4cAorQEAgLTI2LDcgKzI2LDcgQEAgaWYge1tidWlsZF9leGVjdXRhYmxlICJmYWlsZWQgdG8g cHJlcGFyZSIgJHRlc3RmaWxlICRzcmNmaWxlIGRlYnVnXSA9PSAtMX0geworICMKKyBwcm9jIHRl c3RfcGFnaW5hdGVfaW5mZXJpb3JfZXhpdGVkIHt9IHsKKyAgICAgZ2xvYmFsIGJpbmZpbGUKKy0g ICAgZ2xvYmFsIGdkYl9wcm9tcHQgcGFnaW5hdGlvbl9wcm9tcHQKKysgICAgZ2xvYmFsIGdkYl9w cm9tcHQKKyAgICAgZ2xvYmFsIGluZmVyaW9yX2V4aXRlZF9yZQorIAorICAgICB3aXRoX3Rlc3Rf cHJlZml4ICJwYWdpbmF0ZSIgeworQEAgLTQ1LDIzICs0NSwxOCBAQCBwcm9jIHRlc3RfcGFnaW5h dGVfaW5mZXJpb3JfZXhpdGVkIHt9IHsKKyAJIyBXYWl0IGZvciB0aGUgIlN0YXJ0aW5nIHByb2dy YW0iIGxpbmUsIGluZGljYXRpbmcgdGhlIHByb2dyYW0KKyAJIyBpcyBydW5uaW5nLgorIAlzZXQg c2F3X3N0YXJ0aW5nIDAKKy0JZ2RiX3Rlc3RfbXVsdGlwbGUgImNvbnRpbnVlIiAkdGVzdCB7Cist CSAgICAtcmUgIiRwYWdpbmF0aW9uX3Byb21wdCIgeworLQkJaWYgeyRzYXdfc3RhcnRpbmd9IHsK Ky0JCSAgICBwYXNzICR0ZXN0CistCQl9IGVsc2UgeworLQkJICAgIHNlbmRfZ2RiICJcbiIKKy0J CSAgICBleHBfY29udGludWUKKy0JCX0KKysJZ2RiX3Rlc3RfcGFnaW5hdGlvbiAiY29udGludWUi ICR0ZXN0IHsKKysJICAgIGlmIHskc2F3X3N0YXJ0aW5nfSB7CisrCQlwYXNzICR0ZXN0CisrCSAg ICB9IGVsc2UgeworKwkJc2VuZF9nZGIgIlxuIgorKwkJZXhwX2NvbnRpbnVlCisgCSAgICB9Cisr CX0geworIAkgICAgLXJlICJDb250aW51aW5nIiB7CisgCQlzZXQgc2F3X3N0YXJ0aW5nIDEKKyAJ CWV4cF9jb250aW51ZQorIAkgICAgfQorLQkgICAgLW5vdHJhbnNmZXIgLXJlICI8cmV0dXJuPiIg eworLQkJIyBPdGhlcndpc2UgZ2RiX3Rlc3RfbXVsdGlwbGUgY29uc2lkZXJzIHRoaXMgYW4gZXJy b3IuCistCQlleHBfY29udGludWUKKy0JICAgIH0KKyAJfQorIAorIAkjIFdlJ3JlIG5vdyBzdG9w cGVkIGluIGEgcGFnaW5hdGlvbiBvdXRwdXQgd2hpbGUgaGFuZGxpbmcgYQorZGlmZiAtLWdpdCBh L2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAgYi9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCitp bmRleCA3YTAwZWZiLi5kOTUzYTUwIDEwMDY0NAorLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2Ri LmV4cAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAorQEAgLTcwLDkgKzcwLDYgQEAg aWYgIVtpbmZvIGV4aXN0cyBnZGJfcHJvbXB0XSB0aGVuIHsKKyAgICAgc2V0IGdkYl9wcm9tcHQg IlxbKFxdZ2RiXFspXF0iCisgfQorIAorLSMgQSByZWdleHAgdGhhdCBtYXRjaGVzIHRoZSBwYWdp bmF0aW9uIHByb21wdC4KKy1zZXQgcGFnaW5hdGlvbl9wcm9tcHQgIi0tLVR5cGUgPHJldHVybj4g dG8gY29udGludWUsIG9yIHEgPHJldHVybj4gdG8gcXVpdC0tLSIKKy0KKyAjIFRoZSB2YXJpYWJs ZSBmdWxsbmFtZV9zeW50YXhfUE9TSVggaXMgYSByZWdleHAgd2hpY2ggbWF0Y2hlcyBhIFBPU0lY IAorICMgYWJzb2x1dGUgcGF0aCBpZS4gL2Zvby8gCisgc2V0IGZ1bGxuYW1lX3N5bnRheF9QT1NJ WCB7L1teXG5dKi99CitAQCAtNDg0Niw1ICs0ODQzLDQ2IEBAIHByb2MgY2FwdHVyZV9jb21tYW5k X291dHB1dCB7IGNvbW1hbmQgcHJlZml4IH0geworICAgICByZXR1cm4gJG91dHB1dF9zdHJpbmcK KyB9CisgCisrIyBQcmV2ZW50IGdkYl90ZXN0X211bHRpcGxlIGNvbnNpZGVyaW5nIGFuIGVycm9y IC1yZSAiPHJldHVybj4iIG1hdGNoLgorKyMgRm9yIHVua25vd24gcmVhc29uIC1ub3RyYW5zZmVy IC1yZSAiPHJldHVybj4iIHsgZXhwX2NvbnRpbnVlIH0gZG9lcyBub3QKKysjIHByZXZlbnQgaXQu CisrCisrcHJvYyBnZGJfdGVzdF9wYWdpbmF0aW9uIHsgY29tbWFuZCB0ZXN0IHsgY29kZV9wcm9t cHQzIHt9IH0geyBjb2RlX2FwcGVuZCB7fSB9IH0geworKyAgICBnbG9iYWwgcGFnaW5hdGlvbl9w cm9tcHQxIHBhZ2luYXRpb25fcHJvbXB0MiBwYWdpbmF0aW9uX3Byb21wdDMKKysgICAgZ2xvYmFs IGdkYl9wcm9tcHQKKysKKysgICAgIyBBIHJlZ2V4cCB0aGF0IG1hdGNoZXMgdGhlIHBhZ2luYXRp b24gcHJvbXB0LgorKyAgICBzZXQgcGFnaW5hdGlvbl9wcm9tcHQxICItLS1UeXBlIDxyZXR1cm4i CisrICAgIHNldCBwYWdpbmF0aW9uX3Byb21wdDIgIj4gdG8gY29udGludWUsIG9yIHEgPHJldHVy biIKKysgICAgc2V0IHBhZ2luYXRpb25fcHJvbXB0MyAiPiB0byBxdWl0LS0tIgorKworKyAgICBh cHBlbmQgY29kZV9hcHBlbmQgeworKwktcmUgIiR7cGFnaW5hdGlvbl9wcm9tcHQxfSIgeworKwkg ICAgaWYgeyAkc2F3X3BhZ2luYXRpb25fcHJvbXB0ICE9IDAgJiYgJHNhd19wYWdpbmF0aW9uX3By b21wdCAhPSAzIH0geworKwkJZmFpbCAiJHRlc3QgKDEpIgorKwkgICAgfQorKwkgICAgc2V0IHNh d19wYWdpbmF0aW9uX3Byb21wdCAxCisrCSAgICBleHBfY29udGludWUKKysJfQorKwktcmUgIiR7 cGFnaW5hdGlvbl9wcm9tcHQyfSIgeworKwkgICAgaWYgeyAkc2F3X3BhZ2luYXRpb25fcHJvbXB0 ICE9IDEgfSB7CisrCQlmYWlsICIkdGVzdCAoMikiCisrCSAgICB9CisrCSAgICBzZXQgc2F3X3Bh Z2luYXRpb25fcHJvbXB0IDIKKysJICAgIGV4cF9jb250aW51ZQorKwl9CisrCS1yZSAiJHtwYWdp bmF0aW9uX3Byb21wdDN9JCIgeworKwkgICAgaWYgeyAkc2F3X3BhZ2luYXRpb25fcHJvbXB0ICE9 IDIgfSB7CisrCQlmYWlsICIkdGVzdCAoMykiCisrCSAgICB9CisrCSAgICBzZXQgc2F3X3BhZ2lu YXRpb25fcHJvbXB0IDMKKysJICAgIGV2YWwgJGNvZGVfcHJvbXB0MworKwl9CisrICAgIH0KKysK KysgICAgc2V0IHNhd19wYWdpbmF0aW9uX3Byb21wdCAwCisrICAgIGdkYl90ZXN0X211bHRpcGxl ICRjb21tYW5kICR0ZXN0ICRjb2RlX2FwcGVuZAorK30KKysKKyAjIEFsd2F5cyBsb2FkIGNvbXBh dGliaWxpdHkgc3R1ZmYuCisgbG9hZF9saWIgZnV0dXJlLmV4cAorCistLTE3cEVIZDRSaFBIT2lu WnAtLQorCgpkaWZmIC0tZ2l0IGEvZ2RiLXVwc3RyZWFtLnBhdGNoIGIvZ2RiLXVwc3RyZWFtLnBh dGNoCmluZGV4IDA1NTA2N2EuLjAyOGZlN2EgMTAwNjQ0Ci0tLSBhL2dkYi11cHN0cmVhbS5wYXRj aAorKysgYi9nZGItdXBzdHJlYW0ucGF0Y2gKQEAgLTY1LDM3NSArNjUsMyBAQCBpbmRleCAwZTAy MDJkLi5kODQ5YjRjIDEwMDY0NAogICMgZ2Ric2VydmVyIGRvZXMgbm90IGhhdmUgdGhpcyBpc3N1 ZS4KICBpZiAhW2lzX3JlbW90ZSB0YXJnZXRdIHsKICAgICAgc2V0dXBfa2ZhaWwgIiotKi0qIiBn ZGIvMTU5MzQKLQotCi0KLQotY29tbWl0IDc2OGZiY2ZkYTgxZmYzNzAyN2ViN2EwMmMwNDNmZjY2 OWY3NzAxZmEKLUF1dGhvcjogUGVkcm8gQWx2ZXMgPHBhbHZlc0ByZWRoYXQuY29tPgotRGF0ZTog ICBGcmkgSnVsIDExIDExOjExOjIwIDIwMTQgKzAxMDAKLQotICAgIEdEQnNlcnZlciBjcmFzaGVz IHdoZW4ga2lsbGluZyBhIG11bHRpLXRocmVhZCBwcm9jZXNzCi0gICAgCi0gICAgSGVyZSdzIGFu IGV4YW1wbGUsIHdpdGggdGhlIG5ldyB0ZXN0OgotICAgIAotICAgICBnZGJzZXJ2ZXIgOjk5OTkg Z2RiLnRocmVhZHMva2lsbAotICAgICBnZGIgZ2RiLnRocmVhZHMva2lsbAotICAgICAoZ2RiKSBi IDUyCi0gICAgIEJyZWFrcG9pbnQgMSBhdCAweDQwMDdmNDogZmlsZSBraWxsLmMsIGxpbmUgNTIu Ci0gICAgIENvbnRpbnVpbmcuCi0gICAgCi0gICAgIEJyZWFrcG9pbnQgMSwgbWFpbiAoKSBhdCBr aWxsLmM6NTIKLSAgICAgNTIgICAgICAgIHJldHVybiAwOyAvKiBzZXQgYnJlYWsgaGVyZSAqLwot ICAgICAoZ2RiKSBrCi0gICAgIEtpbGwgdGhlIHByb2dyYW0gYmVpbmcgZGVidWdnZWQ/ICh5IG9y IG4pIHkKLSAgICAKLSAgICAgZ2Ric2VydmVyIDo5OTk5IGdkYi50aHJlYWRzL2tpbGwKLSAgICAg UHJvY2VzcyBnZGIuYmFzZS93YXRjaF90aHJlYWRfbnVtIGNyZWF0ZWQ7IHBpZCA9IDk3MTkKLSAg ICAgTGlzdGVuaW5nIG9uIHBvcnQgMTIzNAotICAgICBSZW1vdGUgZGVidWdnaW5nIGZyb20gaG9z dCAxMjcuMC4wLjEKLSAgICAgS2lsbGluZyBhbGwgaW5mZXJpb3JzCi0gICAgIFNlZ21lbnRhdGlv biBmYXVsdCAoY29yZSBkdW1wZWQpCi0gICAgCi0gICAgQmFja3RyYWNlOgotICAgIAotICAgICAo Z2RiKSBidAotICAgICAjMCAgMHgwMDAwMDAwMDAwNDA2OGEwIGluIGZpbmRfaW5mZXJpb3IgKGxp c3Q9MHg2NmIwNjAgPGFsbF90aHJlYWRzPiwgZnVuYz0weDQyNzYzNyA8a2lsbF9vbmVfbHdwX2Nh bGxiYWNrPiwgYXJnPTB4N2ZmZmZmZmZkM2ZjKSBhdCBzcmMvZ2RiL2dkYnNlcnZlci9pbmZlcmlv cnMuYzoxOTkKLSAgICAgIzEgIDB4MDAwMDAwMDAwMDQyNzdiNiBpbiBsaW51eF9raWxsIChwaWQ9 MTU3MDgpIGF0IHNyYy9nZGIvZ2Ric2VydmVyL2xpbnV4LWxvdy5jOjk2NgotICAgICAjMiAgMHgw MDAwMDAwMDAwNDEzNTRkIGluIGtpbGxfaW5mZXJpb3IgKHBpZD0xNTcwOCkgYXQgc3JjL2dkYi9n ZGJzZXJ2ZXIvdGFyZ2V0LmM6MTYzCi0gICAgICMzICAweDAwMDAwMDAwMDA0MTA3ZTkgaW4ga2ls bF9pbmZlcmlvcl9jYWxsYmFjayAoZW50cnk9MHg2NzA0ZjApIGF0IHNyYy9nZGIvZ2Ric2VydmVy L3NlcnZlci5jOjI5MzQKLSAgICAgIzQgIDB4MDAwMDAwMDAwMDQwNjUyMiBpbiBmb3JfZWFjaF9p bmZlcmlvciAobGlzdD0weDY2YjA1MCA8YWxsX3Byb2Nlc3Nlcz4sIGFjdGlvbj0weDQxMDdhNiA8 a2lsbF9pbmZlcmlvcl9jYWxsYmFjaz4pIGF0IHNyYy9nZGIvZ2Ric2VydmVyL2luZmVyaW9ycy5j OjU3Ci0gICAgICM1ICAweDAwMDAwMDAwMDA0MTIzNzcgaW4gcHJvY2Vzc19zZXJpYWxfZXZlbnQg KCkgYXQgc3JjL2dkYi9nZGJzZXJ2ZXIvc2VydmVyLmM6Mzc2NwotICAgICAjNiAgMHgwMDAwMDAw MDAwNDEyNjdjIGluIGhhbmRsZV9zZXJpYWxfZXZlbnQgKGVycj0wLCBjbGllbnRfZGF0YT0weDAp IGF0IHNyYy9nZGIvZ2Ric2VydmVyL3NlcnZlci5jOjM4ODAKLSAgICAgIzcgIDB4MDAwMDAwMDAw MDQxODlmZiBpbiBoYW5kbGVfZmlsZV9ldmVudCAoZXZlbnRfZmlsZV9kZXNjPTQpIGF0IHNyYy9n ZGIvZ2Ric2VydmVyL2V2ZW50LWxvb3AuYzo0MzQKLSAgICAgIzggIDB4MDAwMDAwMDAwMDQxODFj NiBpbiBwcm9jZXNzX2V2ZW50ICgpIGF0IHNyYy9nZGIvZ2Ric2VydmVyL2V2ZW50LWxvb3AuYzox ODkKLSAgICAgIzkgIDB4MDAwMDAwMDAwMDQxOGY0NSBpbiBzdGFydF9ldmVudF9sb29wICgpIGF0 IHNyYy9nZGIvZ2Ric2VydmVyL2V2ZW50LWxvb3AuYzo1NTIKLSAgICAgIzEwIDB4MDAwMDAwMDAw MDQxMTI3MiBpbiBtYWluIChhcmdjPTMsIGFyZ3Y9MHg3ZmZmZmZmZmQ4ZDgpIGF0IHNyYy9nZGIv Z2Ric2VydmVyL3NlcnZlci5jOjMyODMKLSAgICAKLSAgICBUaGUgcHJvYmxlbSBpcyB0aGF0IGxp bnV4X3dhaXRfZm9yX2V2ZW50IGRlbGV0ZXMgbHdwcyB0aGF0IGhhdmUgZXhpdGVkCi0gICAgKGV2 ZW4gdGhvc2Ugbm90IHBhc3NlZCBpbiBhcyBsd3BzIG9mIGludGVyZXN0KSwgd2hpbGUgdGhlIGx3 cC90aHJlYWQKLSAgICBsaXN0IGlzIGJlaW5nIHdhbGtlZCBvbiB3aXRoIGZpbmRfaW5mZXJpb3Iu ICBmaW5kX2luZmVyaW9yIGNhbiBoYW5kbGUKLSAgICB0aGUgY3VycmVudCBpdGVyYXRlZCBpbmZl cmlvciBiZWluZyBkZWxldGVkLCBidXQgbm90IG90aGVycy4KLSAgICAKLSAgICBXaGVuIGtpbGxp bmcgbHdwcywgd2UgZG9uJ3QgcmVhbGx5IGNhcmUgYWJvdXQgYW55IG9mIHRoZSBwZW5kaW5nCi0g ICAgc3RhdHVzIGhhbmRsaW5nIG9mIGxpbnV4X3dhaXRfZm9yX2V2ZW50LiAgV2UgY2FuIGp1c3Qg d2FpdHBpZCB0aGUgbHdwcwotICAgIGRpcmVjdGx5LCB3aGljaCBpcyBhbHNvIHdoYXQgR0RCIGRv ZXMgKHNlZQotICAgIGxpbnV4LW5hdC5jOmtpbGxfd2FpdF9jYWxsYmFjaykuICBUaGlzIHdheSB0 aGUgbHdwcyBhcmUgbm90IGRlbGV0ZWQKLSAgICB3aGlsZSB3ZSdyZSB3YWxraW5nIHRoZSBsaXN0 LiAgVGhleSdsbCBiZSBkZWxldGVkIGJ5IGxpbnV4X21vdXJuCi0gICAgYWZ0ZXJ3YXJkcy4KLSAg ICAKLSAgICBUaGlzIGNyYXNoIHRyaWdnZXJzIHNldmVyYWwgdGltZXMgd2hlbiBydW5uaW5nIHRo ZSB0ZXN0c3VpdGUgYWdhaW5zdAotICAgIEdEQnNlcnZlciB3aXRoIHRoZSBuYXRpdmUtZ2Ric2Vy dmVyIGJvYXJkICh0YXJnZXQgcmVtb3RlKSwgYnV0IGFzIEdEQgotICAgIGNhbid0IGRpc3Rpbmd1 aXNoIGJldHdlZW4gR0RCc2VydmVyIGNyYXNoaW5nIGFuZCAia2lsbCIgYmVpbmcKLSAgICBzdWNl c3NmdWwsIGFzIGluIGJvdGggY2FzZXMgdGhlIGNvbm5lY3Rpb24gaXMgY2xvc2VkICh0aGUgJ2sn IHBhY2tldAotICAgIGRvZXNuJ3QgcmVxdWlyZSBhIHJlcGx5KSwgYW5kIHRoZSBpbmZlcmlvciBp cyBnb25lLCB0aGF0IHJlc3VsdHMgaW4gbm8KLSAgICBGQUlMLgotICAgIAotICAgIFRoZSBwYXRj aCBhZGRzIGEgZ2VuZXJpYyB0ZXN0IHRoYXQgY2F0Y2hlcyB0aGUgaXNzdWUgd2l0aAotICAgIGV4 dGVuZGVkLXJlbW90ZSBtb2RlIChhbmQgd29ya3MgZmluZSB3aXRoIG5hdGl2ZSB0ZXN0aW5nIHRv bykuICBIZXJlJ3MKLSAgICBob3cgaXQgZmFpbHMgd2l0aCB0aGUgbmF0aXZlLWV4dGVuZGVkLWdk YnNlcnZlciBib2FyZCB3aXRob3V0IHRoZSBmaXg6Ci0gICAgCi0gICAgIChnZGIpIGluZm8gdGhy ZWFkcwotICAgICAgIElkICAgVGFyZ2V0IElkICAgICAgICAgRnJhbWUKLSAgICAgICA2ICAgIFRo cmVhZCAxNTM2Ny4xNTM3NCAweDAwMDAwMDM3M2JjYmM5OGQgaW4gbmFub3NsZWVwICgpIGF0IC4u L3N5c2RlcHMvdW5peC9zeXNjYWxsLXRlbXBsYXRlLlM6ODEKLSAgICAgICA1ICAgIFRocmVhZCAx NTM2Ny4xNTM3MyAweDAwMDAwMDM3M2JjYmM5OGQgaW4gbmFub3NsZWVwICgpIGF0IC4uL3N5c2Rl cHMvdW5peC9zeXNjYWxsLXRlbXBsYXRlLlM6ODEKLSAgICAgICA0ICAgIFRocmVhZCAxNTM2Ny4x NTM3MiAweDAwMDAwMDM3M2JjYmM5OGQgaW4gbmFub3NsZWVwICgpIGF0IC4uL3N5c2RlcHMvdW5p eC9zeXNjYWxsLXRlbXBsYXRlLlM6ODEKLSAgICAgICAzICAgIFRocmVhZCAxNTM2Ny4xNTM3MSAw eDAwMDAwMDM3M2JjYmM5OGQgaW4gbmFub3NsZWVwICgpIGF0IC4uL3N5c2RlcHMvdW5peC9zeXNj YWxsLXRlbXBsYXRlLlM6ODEKLSAgICAgICAyICAgIFRocmVhZCAxNTM2Ny4xNTM3MCAweDAwMDAw MDM3M2JjYmM5OGQgaW4gbmFub3NsZWVwICgpIGF0IC4uL3N5c2RlcHMvdW5peC9zeXNjYWxsLXRl bXBsYXRlLlM6ODEKLSAgICAgKiAxICAgIFRocmVhZCAxNTM2Ny4xNTM2NyBtYWluICgpIGF0IC4u Li9nZGIudGhyZWFkcy9raWxsLmM6NTIKLSAgICAgKGdkYikga2lsbAotICAgICBLaWxsIHRoZSBw cm9ncmFtIGJlaW5nIGRlYnVnZ2VkPyAoeSBvciBuKSB5Ci0gICAgIFJlbW90ZSBjb25uZWN0aW9u IGNsb3NlZAotICAgICBeXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KLSAgICAgKGdkYikgRkFJTDog Z2RiLnRocmVhZHMva2lsbC5leHA6IGtpbGwKLSAgICAKLSAgICBFeHRlbmRlZCByZW1vdGUgc2hv dWxkIHJlbWFpbiBjb25uZWN0ZWQgYWZ0ZXIgdGhlIGtpbGwuCi0gICAgCi0gICAgZ2RiL2dkYnNl cnZlci8KLSAgICAyMDE0LTA3LTExICBQZWRybyBBbHZlcyAgPHBhbHZlc0ByZWRoYXQuY29tPgot ICAgIAotICAgIAkqIGxpbnV4LWxvdy5jIChraWxsX3dhaXRfbHdwKTogTmV3IGZ1bmN0aW9uLCBi YXNlZCBvbgotICAgIAlraWxsX29uZV9sd3BfY2FsbGJhY2ssIGJ1dCB1c2UgbXlfd2FpdHBpZCBk aXJlY3RseS4KLSAgICAJKGtpbGxfb25lX2x3cF9jYWxsYmFjaywgbGludXhfa2lsbCk6IFVzZSBp dC4KLSAgICAKLSAgICBnZGIvdGVzdHN1aXRlLwotICAgIDIwMTQtMDctMTEgIFBlZHJvIEFsdmVz ICA8cGFsdmVzQHJlZGhhdC5jb20+Ci0gICAgCi0gICAgCSogZ2RiLnRocmVhZHMva2lsbC5jOiBO ZXcgZmlsZS4KLSAgICAJKiBnZGIudGhyZWFkcy9raWxsLmV4cDogTmV3IGZpbGUuCi0KLSMjIyBh L2dkYi9nZGJzZXJ2ZXIvQ2hhbmdlTG9nCi0jIyMgYi9nZGIvZ2Ric2VydmVyL0NoYW5nZUxvZwot IyMgLTEsMyArMSw5IEBACi0rMjAxNC0wNy0xMSAgUGVkcm8gQWx2ZXMgIDxwYWx2ZXNAcmVkaGF0 LmNvbT4KLSsKLSsJKiBsaW51eC1sb3cuYyAoa2lsbF93YWl0X2x3cCk6IE5ldyBmdW5jdGlvbiwg YmFzZWQgb24KLSsJa2lsbF9vbmVfbHdwX2NhbGxiYWNrLCBidXQgdXNlIG15X3dhaXRwaWQgZGly ZWN0bHkuCi0rCShraWxsX29uZV9sd3BfY2FsbGJhY2ssIGxpbnV4X2tpbGwpOiBVc2UgaXQuCi0r Ci0gMjAxNC0wNi0yMyAgUGVkcm8gQWx2ZXMgIDxwYWx2ZXNAcmVkaGF0LmNvbT4KLSAKLSAJKiBs aW51eC14ODYtbG93LmMgKHg4Nl9saW51eF9wcmVwYXJlX3RvX3Jlc3VtZSk6IENsZWFyIERSX0NP TlRST0wKLS0tLSBhL2dkYi9nZGJzZXJ2ZXIvbGludXgtbG93LmMKLSsrKyBiL2dkYi9nZGJzZXJ2 ZXIvbGludXgtbG93LmMKLUBAIC05MDksNiArOTA5LDQ2IEBAIGxpbnV4X2tpbGxfb25lX2x3cCAo c3RydWN0IGx3cF9pbmZvICpsd3ApCi0gCQkgIGVycm5vID8gc3RyZXJyb3IgKGVycm5vKSA6ICJP SyIpOwotIH0KLSAKLSsvKiBLaWxsIExXUCBhbmQgd2FpdCBmb3IgaXQgdG8gZGllLiAgKi8KLSsK LStzdGF0aWMgdm9pZAotK2tpbGxfd2FpdF9sd3AgKHN0cnVjdCBsd3BfaW5mbyAqbHdwKQotK3sK LSsgIHN0cnVjdCB0aHJlYWRfaW5mbyAqdGhyID0gZ2V0X2x3cF90aHJlYWQgKGx3cCk7Ci0rICBp bnQgcGlkID0gcHRpZF9nZXRfcGlkIChwdGlkX29mICh0aHIpKTsKLSsgIGludCBsd3BpZCA9IHB0 aWRfZ2V0X2x3cCAocHRpZF9vZiAodGhyKSk7Ci0rICBpbnQgd3N0YXQ7Ci0rICBpbnQgcmVzOwot KwotKyAgaWYgKGRlYnVnX3RocmVhZHMpCi0rICAgIGRlYnVnX3ByaW50ZiAoImt3bDoga2lsbGlu ZyBsd3AgJWQsIGZvciBwaWQ6ICVkXG4iLCBsd3BpZCwgcGlkKTsKLSsKLSsgIGRvCi0rICAgIHsK LSsgICAgICBsaW51eF9raWxsX29uZV9sd3AgKGx3cCk7Ci0rCi0rICAgICAgLyogTWFrZSBzdXJl IGl0IGRpZWQuICBOb3RlczoKLSsKLSsJIC0gVGhlIGxvb3AgaXMgbW9zdCBsaWtlbHkgdW5uZWNl c3NhcnkuCi0rCi0rCSAtIFdlIGRvbid0IHVzZSBsaW51eF93YWl0X2Zvcl9ldmVudCBhcyB0aGF0 IGNvdWxkIGRlbGV0ZSBsd3BzCi0rCSAgIHdoaWxlIHdlJ3JlIGl0ZXJhdGluZyBvdmVyIHRoZW0u ICBXZSdyZSBub3QgaW50ZXJlc3RlZCBpbgotKwkgICBhbnkgcGVuZGluZyBzdGF0dXMgYXQgdGhp cyBwb2ludCwgb25seSBpbiBtYWtpbmcgc3VyZSBhbGwKLSsJICAgd2FpdCBzdGF0dXMgb24gdGhl IGtlcm5lbCBzaWRlIGFyZSBjb2xsZWN0ZWQgdW50aWwgdGhlCi0rCSAgIHByb2Nlc3MgaXMgcmVh cGVkLgotKwotKwkgLSBXZSBkb24ndCB1c2UgX19XQUxMIGhlcmUgYXMgdGhlIF9fV0FMTCBlbXVs YXRpb24gcmVsaWVzIG9uCi0rCSAgIFNJR0NITEQsIGFuZCBraWxsaW5nIGEgc3RvcHBlZCBwcm9j ZXNzIGRvZXNuJ3QgZ2VuZXJhdGUKLSsJICAgb25lLCBub3IgYW4gZXhpdCBzdGF0dXMuCi0rICAg ICAgKi8KLSsgICAgICByZXMgPSBteV93YWl0cGlkIChsd3BpZCwgJndzdGF0LCAwKTsKLSsgICAg ICBpZiAocmVzID09IC0xICYmIGVycm5vID09IEVDSElMRCkKLSsJcmVzID0gbXlfd2FpdHBpZCAo bHdwaWQsICZ3c3RhdCwgX19XQ0xPTkUpOwotKyAgICB9IHdoaWxlIChyZXMgPiAwICYmIFdJRlNU T1BQRUQgKHdzdGF0KSk7Ci0rCi0rICBnZGJfYXNzZXJ0IChyZXMgPiAwKTsKLSt9Ci0rCi0gLyog Q2FsbGJhY2sgZm9yIGBmaW5kX2luZmVyaW9yJy4gIEtpbGxzIGFuIGx3cCBvZiBhIGdpdmVuIHBy b2Nlc3MsCi0gICAgZXhjZXB0IHRoZSBsZWFkZXIuICAqLwotIAotQEAgLTkxNyw3ICs5NTcsNiBA QCBraWxsX29uZV9sd3BfY2FsbGJhY2sgKHN0cnVjdCBpbmZlcmlvcl9saXN0X2VudHJ5ICplbnRy eSwgdm9pZCAqYXJncykKLSB7Ci0gICBzdHJ1Y3QgdGhyZWFkX2luZm8gKnRocmVhZCA9IChzdHJ1 Y3QgdGhyZWFkX2luZm8gKikgZW50cnk7Ci0gICBzdHJ1Y3QgbHdwX2luZm8gKmx3cCA9IGdldF90 aHJlYWRfbHdwICh0aHJlYWQpOwotLSAgaW50IHdzdGF0OwotICAgaW50IHBpZCA9ICogKGludCAq KSBhcmdzOwotIAotICAgaWYgKHB0aWRfZ2V0X3BpZCAoZW50cnktPmlkKSAhPSBwaWQpCi1AQCAt OTM2LDE0ICs5NzUsNyBAQCBraWxsX29uZV9sd3BfY2FsbGJhY2sgKHN0cnVjdCBpbmZlcmlvcl9s aXN0X2VudHJ5ICplbnRyeSwgdm9pZCAqYXJncykKLSAgICAgICByZXR1cm4gMDsKLSAgICAgfQot IAotLSAgZG8KLS0gICAgewotLSAgICAgIGxpbnV4X2tpbGxfb25lX2x3cCAobHdwKTsKLS0KLS0g ICAgICAvKiBNYWtlIHN1cmUgaXQgZGllZC4gIFRoZSBsb29wIGlzIG1vc3QgbGlrZWx5IHVubmVj ZXNzYXJ5LiAgKi8KLS0gICAgICBwaWQgPSBsaW51eF93YWl0X2Zvcl9ldmVudCAodGhyZWFkLT5l bnRyeS5pZCwgJndzdGF0LCBfX1dBTEwpOwotLSAgICB9IHdoaWxlIChwaWQgPiAwICYmIFdJRlNU T1BQRUQgKHdzdGF0KSk7Ci0tCi0rICBraWxsX3dhaXRfbHdwIChsd3ApOwotICAgcmV0dXJuIDA7 Ci0gfQotIAotQEAgLTk1Miw4ICs5ODQsNiBAQCBsaW51eF9raWxsIChpbnQgcGlkKQotIHsKLSAg IHN0cnVjdCBwcm9jZXNzX2luZm8gKnByb2Nlc3M7Ci0gICBzdHJ1Y3QgbHdwX2luZm8gKmx3cDsK LS0gIGludCB3c3RhdDsKLS0gIGludCBsd3BpZDsKLSAKLSAgIHByb2Nlc3MgPSBmaW5kX3Byb2Nl c3NfcGlkIChwaWQpOwotICAgaWYgKHByb2Nlc3MgPT0gTlVMTCkKLUBAIC05NzYsMjEgKzEwMDYs NyBAQCBsaW51eF9raWxsIChpbnQgcGlkKQotIAkJICAgICAgcGlkKTsKLSAgICAgfQotICAgZWxz ZQotLSAgICB7Ci0tICAgICAgc3RydWN0IHRocmVhZF9pbmZvICp0aHIgPSBnZXRfbHdwX3RocmVh ZCAobHdwKTsKLS0KLS0gICAgICBpZiAoZGVidWdfdGhyZWFkcykKLS0JZGVidWdfcHJpbnRmICgi bGtfMToga2lsbGluZyBsd3AgJWxkLCBmb3IgcGlkOiAlZFxuIiwKLS0JCSAgICAgIGx3cGlkX29m ICh0aHIpLCBwaWQpOwotLQotLSAgICAgIGRvCi0tCXsKLS0JICBsaW51eF9raWxsX29uZV9sd3Ag KGx3cCk7Ci0tCi0tCSAgLyogTWFrZSBzdXJlIGl0IGRpZWQuICBUaGUgbG9vcCBpcyBtb3N0IGxp a2VseSB1bm5lY2Vzc2FyeS4gICovCi0tCSAgbHdwaWQgPSBsaW51eF93YWl0X2Zvcl9ldmVudCAo dGhyLT5lbnRyeS5pZCwgJndzdGF0LCBfX1dBTEwpOwotLQl9IHdoaWxlIChsd3BpZCA+IDAgJiYg V0lGU1RPUFBFRCAod3N0YXQpKTsKLS0gICAgfQotKyAgICBraWxsX3dhaXRfbHdwIChsd3ApOwot IAotICAgdGhlX3RhcmdldC0+bW91cm4gKHByb2Nlc3MpOwotIAotIyMjIGEvZ2RiL3Rlc3RzdWl0 ZS9DaGFuZ2VMb2cKLSMjIyBiL2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nCi0jIyAtMSwzICsxLDgg QEAKLSsyMDE0LTA3LTExICBQZWRybyBBbHZlcyAgPHBhbHZlc0ByZWRoYXQuY29tPgotKwotKwkq IGdkYi50aHJlYWRzL2tpbGwuYzogTmV3IGZpbGUuCi0rCSogZ2RiLnRocmVhZHMva2lsbC5leHA6 IE5ldyBmaWxlLgotKwotIDIwMTQtMDctMDkgIFBlZHJvIEFsdmVzICA8cGFsdmVzQHJlZGhhdC5j b20+Ci0gCi0gCSogZ2RiLmJhc2UvYXR0YWNoLXdhaXQtaW5wdXQuZXhwOiBOZXcgZmlsZS4KLS0t LSAvZGV2L251bGwKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMva2lsbC5jCi1AQCAt MCwwICsxLDY0IEBACi0rLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBk ZWJ1Z2dlci4KLSsKLSsgICBDb3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IEluYy4KLSsKLSsgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp c3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0rICAgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IK LSsgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotKwotKyAgIFRoaXMgcHJv Z3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAot KyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh cnJhbnR5IG9mCi0rICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFLiAgU2VlIHRoZQotKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt b3JlIGRldGFpbHMuCi0rCi0rICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3Jh bS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCi0rCi0r I2lmZGVmIFVTRV9USFJFQURTCi0rCi0rI2luY2x1ZGUgPHVuaXN0ZC5oPgotKyNpbmNsdWRlIDxw dGhyZWFkLmg+Ci0rCi0rI2RlZmluZSBOVU0gNQotKwotK3B0aHJlYWRfYmFycmllcl90IGJhcnJp ZXI7Ci0rCi0rdm9pZCAqCi0rdGhyZWFkX2Z1bmN0aW9uICh2b2lkICphcmcpCi0rewotKyAgdm9s YXRpbGUgdW5zaWduZWQgaW50IGNvdW50ZXIgPSAxOwotKwotKyAgcHRocmVhZF9iYXJyaWVyX3dh aXQgKCZiYXJyaWVyKTsKLSsKLSsgIHdoaWxlIChjb3VudGVyID4gMCkKLSsgICAgewotKyAgICAg IGNvdW50ZXIrKzsKLSsgICAgICB1c2xlZXAgKDEpOwotKyAgICB9Ci0rCi0rICBwdGhyZWFkX2V4 aXQgKE5VTEwpOwotK30KLSsKLSsjZW5kaWYgLyogVVNFX1RIUkVBRFMgKi8KLSsKLSt2b2lkCi0r c2V0dXAgKHZvaWQpCi0rewotKyNpZmRlZiBVU0VfVEhSRUFEUwotKyAgcHRocmVhZF90IHRocmVh ZHNbTlVNXTsKLSsgIGludCBpOwotKwotKyAgcHRocmVhZF9iYXJyaWVyX2luaXQgKCZiYXJyaWVy LCBOVUxMLCBOVU0gKyAxKTsKLSsgIGZvciAoaSA9IDA7IGkgPCBOVU07IGkrKykKLSsgICAgcHRo cmVhZF9jcmVhdGUgKCZ0aHJlYWRzW2ldLCBOVUxMLCB0aHJlYWRfZnVuY3Rpb24sIE5VTEwpOwot KyAgcHRocmVhZF9iYXJyaWVyX3dhaXQgKCZiYXJyaWVyKTsKLSsjZW5kaWYgLyogVVNFX1RIUkVB RFMgKi8KLSt9Ci0rCi0raW50Ci0rbWFpbiAodm9pZCkKLSt7Ci0rICBzZXR1cCAoKTsKLSsgIHJl dHVybiAwOyAvKiBzZXQgYnJlYWsgaGVyZSAqLwotK30KLS0tLSAvZGV2L251bGwKLSsrKyBiL2dk Yi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMva2lsbC5leHAKLUBAIC0wLDAgKzEsNzcgQEAKLSsjIFRo aXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCi0rCi0rIyBDb3B5 cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsKLSsjIFRoaXMgcHJv Z3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9k aWZ5Ci0rIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGFzIHB1Ymxpc2hlZCBieQotKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0 aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKLSsjIChhdCB5b3VyIG9wdGlvbikgYW55 IGxhdGVyIHZlcnNpb24uCi0rIwotKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRo ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFO VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyMgTUVSQ0hBTlRBQklM SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyMgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSsjCi0rIyBZb3Ugc2hv dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZQotKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5n bnUub3JnL2xpY2Vuc2VzLz4uICAqLwotKwotK3N0YW5kYXJkX3Rlc3RmaWxlCi0rCi0rIyBSdW4g dGhlIHRlc3QgcHJvcGVyLiAgVEhSRUFERUQgaW5kaWNhdGVzIHdoZXRoZXIgdG8gYnVpbGQgYSB0 aHJlYWRlZAotKyMgcHJvZ3JhbSBhbmQgc3Bhd24gc2V2ZXJhbCB0aHJlYWRzIGJlZm9yZSB0cnlp bmcgdG8ga2lsbCB0aGUgcHJvZ3JhbS4KLSsKLStwcm9jIHRlc3Qge3RocmVhZGVkfSB7Ci0rICAg IGdsb2JhbCB0ZXN0ZmlsZSBzcmNmaWxlCi0rCi0rICAgIHdpdGhfdGVzdF9wcmVmaXggW2V4cHIg KCR0aHJlYWRlZCk/InRocmVhZGVkIjoibm9uLXRocmVhZGVkIl0gewotKwotKwlzZXQgb3B0aW9u cyB7ZGVidWd9Ci0rCWlmIHskdGhyZWFkZWR9IHsKLSsJICAgIGxhcHBlbmQgb3B0aW9ucyAicHRo cmVhZHMiCi0rCSAgICBsYXBwZW5kIG9wdGlvbnMgImFkZGl0aW9uYWxfZmxhZ3M9LURVU0VfVEhS RUFEUyIKLSsJICAgIHNldCBwcm9nICR7dGVzdGZpbGV9X3RocmVhZHMKLSsJfSBlbHNlIHsKLSsJ ICAgIHNldCBwcm9nICR7dGVzdGZpbGV9X25vdGhyZWFkcwotKwl9Ci0rCi0rCWlmIHtbcHJlcGFy ZV9mb3JfdGVzdGluZyAiZmFpbGVkIHRvIHByZXBhcmUiICRwcm9nICRzcmNmaWxlICRvcHRpb25z XSA9PSAtMX0gewotKwkgICAgcmV0dXJuIC0xCi0rCX0KLSsKLSsJaWYgeyAhW3J1bnRvIG1haW5d IH0gdGhlbiB7Ci0rCSAgICBmYWlsICJydW4gdG8gbWFpbiIKLSsJICAgIHJldHVybgotKwl9Ci0r Ci0rCXNldCBsaW5lbnVtIFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJzZXQgYnJlYWsgaGVyZSJdCi0r CWdkYl9icmVha3BvaW50ICIkc3JjZmlsZTokbGluZW51bSIKLSsJZ2RiX2NvbnRpbnVlX3RvX2Jy ZWFrcG9pbnQgImJyZWFrIGhlcmUiICIuKmJyZWFrIGhlcmUuKiIKLSsKLSsJaWYgeyR0aHJlYWRl ZH0gewotKwkgICAgZ2RiX3Rlc3QgImluZm8gdGhyZWFkcyIgIjYuKjUuKjQuKjMuKjIuKjEuKiIg ImFsbCB0aHJlYWRzIHN0YXJ0ZWQiCi0rCX0KLSsKLSsJIyBUaGlzIGtpbGxzIGFuZCBlbnN1cmVz IG5vIG91dHB1dCBvdGhlciB0aGFuIHRoZSBwcm9tcHQgY29tZXMgb3V0LAotKwkjIGxpa2U6Ci0r CSMKLSsJIyAgKGdkYikga2lsbAotKwkjICBLaWxsIHRoZSBwcm9ncmFtIGJlaW5nIGRlYnVnZ2Vk PyAoeSBvciBuKSB5Ci0rCSMgIChnZGIpCi0rCSMKLSsJIyBJZiB3ZSBpbnN0ZWFkIHNhdyBtb3Jl IG91dHB1dCwgbGlrZSBlLmcuLCB3aXRoIGFuIGV4dGVuZGVkLXJlbW90ZQotKwkjIGNvbm5lY3Rp b246Ci0rCSMKLSsJIyAgKGdkYikga2lsbAotKwkjICBLaWxsIHRoZSBwcm9ncmFtIGJlaW5nIGRl YnVnZ2VkPyAoeSBvciBuKSB5Ci0rCSMgIFJlbW90ZSBjb25uZWN0aW9uIGNsb3NlZAotKwkjICAo Z2RiKQotKwkjCi0rCSMgdGhlIGFib3ZlIHdvdWxkIG1lYW4gdGhhdCB0aGUgcmVtb3RlIGVuZCBj cmFzaGVkLgotKwotKwlnZGJfdGVzdCAia2lsbCIgIl55IiAia2lsbCBwcm9ncmFtIiAiS2lsbCB0 aGUgcHJvZ3JhbSBiZWluZyBkZWJ1Z2dlZFxcPyBcXCh5IG9yIG5cXCkgJCIgInkiCi0rICAgIH0K LSt9Ci0rCi0rZm9yZWFjaCB0aHJlYWRlZCB7dHJ1ZSBmYWxzZX0gewotKyAgICB0ZXN0ICR0aHJl YWRlZAotK30KCmRpZmYgLS1naXQgYS9nZGItdmxhLWludGVsLnBhdGNoIGIvZ2RiLXZsYS1pbnRl bC5wYXRjaAppbmRleCAwYTY0NmFiLi5kNGY5ZWVkIDEwMDY0NAotLS0gYS9nZGItdmxhLWludGVs LnBhdGNoCisrKyBiL2dkYi12bGEtaW50ZWwucGF0Y2gKQEAgLTMsMTkgKzMsMTggQEAgaHR0cHM6 Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDE0LTA2L21zZzAwMTA4Lmh0bWwKIGh0 dHBzOi8vZ2l0aHViLmNvbS9pbnRlbC1nZGIvdmxhL3RyZWUvdmxhLWZvcnRyYW4KIAogR0lUIHNu YXBzaG90OgotY29tbWl0IGM2MjJhMDQ3ZDIzYmNiYzRkYzY4Mzk4ZmM3MGI1MzFjZWJkOGY1ZWUK K2NvbW1pdCA1MTFiZmY1MjAzNzJmZmMxMGZhMmZmNTY5YzE3NmJkZjFlNmU0NzVkCiAKIAogZGlm ZiAtLWdpdCBhL2dkYi9ORVdTIGIvZ2RiL05FV1MKLWluZGV4IGQ5YTE5YWUuLjFmMjJmZWEgMTAw NjQ0CitpbmRleCBkOWExOWFlLi5lNjg4NWQyIDEwMDY0NAogIyMjIGEvZ2RiL05FV1MKICMjIyBi L2dkYi9ORVdTCi1AQCAtMyw2ICszLDEwIEBACitAQCAtMyw2ICszLDkgQEAKICAKICAqKiogQ2hh bmdlcyBzaW5jZSBHREIgNy44CiAgCi0rKiBGb3J0cmFuIGR5bmFtaWMgYXJyYXkgc3VwcG9ydDog R0RCIGhhcyBub3cgc3VwcG9ydCBmb3IKLSsgIGR5bmFtaWMgYXJyYXlzIGluIEZvcnRyYW4uIEl0 IGFsbG93cyB0aGUgdXNlciB0byBldmFsdWF0ZQorKyogRm9ydHJhbiBkeW5hbWljIGFycmF5IHN1 cHBvcnQ6IEl0IGFsbG93cyB0aGUgdXNlciB0byBldmFsdWF0ZQogKyAgZHluYW1pYyBhcnJheXMg bGlrZSBhbiBvcmRpbmFyeSBzdGF0aWMgYXJyYXkuCiArCiAgKioqIENoYW5nZXMgaW4gR0RCIDcu OApAQCAtNzgsNyArNzcsNyBAQCBpbmRleCAzOWRhZGYzLi44Y2ViYmU4IDEwMDY0NAogIAogIC8q IFRoZSBsb2NhdGlvbiBvZiBhIHZhbHVlLiAgKi8KIGRpZmYgLS1naXQgYS9nZGIvZHdhcmYybG9j LmMgYi9nZGIvZHdhcmYybG9jLmMKLWluZGV4IGZjYWI5YjkuLjRhYWMyNzggMTAwNjQ0CitpbmRl eCBmY2FiOWI5Li5hNjI0ZGFjIDEwMDY0NAogLS0tIGEvZ2RiL2R3YXJmMmxvYy5jCiArKysgYi9n ZGIvZHdhcmYybG9jLmMKIEBAIC0zMDYsNiArMzA2LDcgQEAgc3RydWN0IGR3YXJmX2V4cHJfYmF0 b24KQEAgLTEzOCw3ICsxMzcsMTkgQEAgaW5kZXggZmNhYjliOS4uNGFhYzI3OCAxMDA2NDQKICAK ICAgIGN0eCA9IG5ld19kd2FyZl9leHByX2NvbnRleHQgKCk7CiAgICBvbGRfY2hhaW4gPSBtYWtl X2NsZWFudXBfZnJlZV9kd2FyZl9leHByX2NvbnRleHQgKGN0eCk7Ci1AQCAtMjQzNiw2ICsyNDU2 LDcgQEAgZHdhcmYyX2V2YWx1YXRlX2xvY19kZXNjIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0 IGZyYW1lX2luZm8gKmZyYW1lLAorQEAgLTIzMjYsNiArMjM0NiwxMSBAQCBkd2FyZjJfZXZhbHVh dGVfbG9jX2Rlc2NfZnVsbCAoc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCBmcmFtZV9pbmZvICpm cmFtZSwKKyAJICAgIGludCBpbl9zdGFja19tZW1vcnkgPSBkd2FyZl9leHByX2ZldGNoX2luX3N0 YWNrX21lbW9yeSAoY3R4LCAwKTsKKyAKKyAJICAgIGRvX2NsZWFudXBzICh2YWx1ZV9jaGFpbik7 CisrCisrCSAgICAvKiBTZWxlY3QgcmlnaHQgZnJhbWUgdG8gY29ycmVjdGx5IGV2YWx1YXRlIFZM QSdzIGR1cmluZyBhIGJhY2t0cmFjZS4gICovCisrCSAgICBpZiAoaXNfZHluYW1pY190eXBlICh0 eXBlKSkKKysJICAgICAgc2VsZWN0X2ZyYW1lIChmcmFtZSk7CisrCisgCSAgICByZXR2YWwgPSB2 YWx1ZV9hdF9sYXp5ICh0eXBlLCBhZGRyZXNzICsgYnl0ZV9vZmZzZXQpOworIAkgICAgaWYgKGlu X3N0YWNrX21lbW9yeSkKKyAJICAgICAgc2V0X3ZhbHVlX3N0YWNrIChyZXR2YWwsIDEpOworQEAg LTI0MzYsNiArMjQ2MSw3IEBAIGR3YXJmMl9ldmFsdWF0ZV9sb2NfZGVzYyAoc3RydWN0IHR5cGUg KnR5cGUsIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSwKICAKICBzdGF0aWMgaW50CiAgZHdhcmYy X2xvY2V4cHJfYmF0b25fZXZhbCAoY29uc3Qgc3RydWN0IGR3YXJmMl9sb2NleHByX2JhdG9uICpk bGJhdG9uLApAQCAtMTQ2LDcgKzE1Nyw3IEBAIGluZGV4IGZjYWI5YjkuLjRhYWMyNzggMTAwNjQ0 CiAgCQkJICAgQ09SRV9BRERSICp2YWxwKQogIHsKICAgIHN0cnVjdCBkd2FyZl9leHByX2NvbnRl eHQgKmN0eDsKLUBAIC0yNDUxLDYgKzI0NzIsNyBAQCBkd2FyZjJfbG9jZXhwcl9iYXRvbl9ldmFs IChjb25zdCBzdHJ1Y3QgZHdhcmYyX2xvY2V4cHJfYmF0b24gKmRsYmF0b24sCitAQCAtMjQ1MSw2 ICsyNDc3LDcgQEAgZHdhcmYyX2xvY2V4cHJfYmF0b25fZXZhbCAoY29uc3Qgc3RydWN0IGR3YXJm Ml9sb2NleHByX2JhdG9uICpkbGJhdG9uLAogIAogICAgYmF0b24uZnJhbWUgPSBnZXRfc2VsZWN0 ZWRfZnJhbWUgKE5VTEwpOwogICAgYmF0b24ucGVyX2N1ID0gZGxiYXRvbi0+cGVyX2N1OwpAQCAt MTU0LDcgKzE2NSw3IEBAIGluZGV4IGZjYWI5YjkuLjRhYWMyNzggMTAwNjQ0CiAgCiAgICBvYmpm aWxlID0gZHdhcmYyX3Blcl9jdV9vYmpmaWxlIChkbGJhdG9uLT5wZXJfY3UpOwogIAotQEAgLTI0 OTEsNyArMjUxMyw4IEBAIGR3YXJmMl9sb2NleHByX2JhdG9uX2V2YWwgKGNvbnN0IHN0cnVjdCBk d2FyZjJfbG9jZXhwcl9iYXRvbiAqZGxiYXRvbiwKK0BAIC0yNDkxLDcgKzI1MTgsOCBAQCBkd2Fy ZjJfbG9jZXhwcl9iYXRvbl9ldmFsIChjb25zdCBzdHJ1Y3QgZHdhcmYyX2xvY2V4cHJfYmF0b24g KmRsYmF0b24sCiAgLyogU2VlIGR3YXJmMmxvYy5oLiAgKi8KICAKICBpbnQKQEAgLTE2NCw3ICsx NzUsNyBAQCBpbmRleCBmY2FiOWI5Li40YWFjMjc4IDEwMDY0NAogIHsKICAgIGlmIChwcm9wID09 IE5VTEwpCiAgICAgIHJldHVybiAwOwotQEAgLTI1MDIsNyArMjUyNSw3IEBAIGR3YXJmMl9ldmFs dWF0ZV9wcm9wZXJ0eSAoY29uc3Qgc3RydWN0IGR5bmFtaWNfcHJvcCAqcHJvcCwgQ09SRV9BRERS ICp2YWx1ZSkKK0BAIC0yNTAyLDcgKzI1MzAsNyBAQCBkd2FyZjJfZXZhbHVhdGVfcHJvcGVydHkg KGNvbnN0IHN0cnVjdCBkeW5hbWljX3Byb3AgKnByb3AsIENPUkVfQUREUiAqdmFsdWUpCiAgICAg ICAgewogIAljb25zdCBzdHJ1Y3QgZHdhcmYyX3Byb3BlcnR5X2JhdG9uICpiYXRvbiA9IHByb3At PmRhdGEuYmF0b247CiAgCkBAIC0xNzMsMzEgKzE4NCw3IEBAIGluZGV4IGZjYWI5YjkuLjRhYWMy NzggMTAwNjQ0CiAgCSAgewogIAkgICAgaWYgKGJhdG9uLT5yZWZlcmVuY2VkX3R5cGUpCiAgCSAg ICAgIHsKLUBAIC0yNTEwLDYgKzI1MzMsMTEgQEAgZHdhcmYyX2V2YWx1YXRlX3Byb3BlcnR5IChj b25zdCBzdHJ1Y3QgZHluYW1pY19wcm9wICpwcm9wLCBDT1JFX0FERFIgKnZhbHVlKQotIAotIAkJ KnZhbHVlID0gdmFsdWVfYXNfYWRkcmVzcyAodmFsKTsKLSAJICAgICAgfQotKwkgICAgaWYgKGJh dG9uLT5wb3N0X3ZhbHVlcy5kYXRhICYmIGJhdG9uLT5wb3N0X3ZhbHVlcy5zaXplID4gMCkKLSsJ ICAgICAgewotKwkgICAgICAgIENPUkVfQUREUiBuZXdfYWRkciA9ICp2YWx1ZTsKLSsJICAgICAg ICBkd2FyZjJfbG9jZXhwcl9iYXRvbl9ldmFsICgmYmF0b24tPnBvc3RfdmFsdWVzLCBuZXdfYWRk ciwgdmFsdWUpOwotKwkgICAgICB9Ci0gCSAgICByZXR1cm4gMTsKLSAJICB9Ci0gICAgICAgfQot QEAgLTI1MzIsNiArMjU2MCwxMSBAQCBkd2FyZjJfZXZhbHVhdGVfcHJvcGVydHkgKGNvbnN0IHN0 cnVjdCBkeW5hbWljX3Byb3AgKnByb3AsIENPUkVfQUREUiAqdmFsdWUpCi0gCSAgICBpZiAoIXZh bHVlX29wdGltaXplZF9vdXQgKHZhbCkpCi0gCSAgICAgIHsKLSAJCSp2YWx1ZSA9IHZhbHVlX2Fz X2FkZHJlc3MgKHZhbCk7Ci0rCQlpZiAoYmF0b24tPnBvc3RfdmFsdWVzLmRhdGEgJiYgYmF0b24t PnBvc3RfdmFsdWVzLnNpemUgPiAwKQotKwkJICB7Ci0rCQkgICAgQ09SRV9BRERSIG5ld19hZGRy ID0gKnZhbHVlOwotKwkJICAgIGR3YXJmMl9sb2NleHByX2JhdG9uX2V2YWwgKCZiYXRvbi0+cG9z dF92YWx1ZXMsIG5ld19hZGRyLCB2YWx1ZSk7Ci0rCQkgIH0KLSAJCXJldHVybiAxOwotIAkgICAg ICB9Ci0gCSAgfQotQEAgLTI1NDYsNiArMjU3OSwyMCBAQCBkd2FyZjJfZXZhbHVhdGVfcHJvcGVy dHkgKGNvbnN0IHN0cnVjdCBkeW5hbWljX3Byb3AgKnByb3AsIENPUkVfQUREUiAqdmFsdWUpCitA QCAtMjU0Niw2ICsyNTc0LDIwIEBAIGR3YXJmMl9ldmFsdWF0ZV9wcm9wZXJ0eSAoY29uc3Qgc3Ry dWN0IGR5bmFtaWNfcHJvcCAqcHJvcCwgQ09SRV9BRERSICp2YWx1ZSkKICAgIHJldHVybiAwOwog IH0KICAKQEAgLTIxOCw3ICsyMDUsNyBAQCBpbmRleCBmY2FiOWI5Li40YWFjMjc4IDEwMDY0NAog IAwKICAvKiBIZWxwZXIgZnVuY3Rpb25zIGFuZCBiYXRvbiBmb3IgZHdhcmYyX2xvY19kZXNjX25l ZWRzX2ZyYW1lLiAgKi8KICAKLUBAIC0yNjUzLDYgKzI3MDAsMTUgQEAgbmVlZHNfZ2V0X2FkZHJf aW5kZXggKHZvaWQgKmJhdG9uLCB1bnNpZ25lZCBpbnQgaW5kZXgpCitAQCAtMjY1Myw2ICsyNjk1 LDE1IEBAIG5lZWRzX2dldF9hZGRyX2luZGV4ICh2b2lkICpiYXRvbiwgdW5zaWduZWQgaW50IGlu ZGV4KQogICAgcmV0dXJuIDE7CiAgfQogIApAQCAtMjM0LDcgKzIyMSw3IEBAIGluZGV4IGZjYWI5 YjkuLjRhYWMyNzggMTAwNjQ0CiAgLyogVmlydHVhbCBtZXRob2QgdGFibGUgZm9yIGR3YXJmMl9s b2NfZGVzY19uZWVkc19mcmFtZSBiZWxvdy4gICovCiAgCiAgc3RhdGljIGNvbnN0IHN0cnVjdCBk d2FyZl9leHByX2NvbnRleHRfZnVuY3MgbmVlZHNfZnJhbWVfY3R4X2Z1bmNzID0KLUBAIC0yNjY3 LDcgKzI3MjMsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGR3YXJmX2V4cHJfY29udGV4dF9mdW5j cyBuZWVkc19mcmFtZV9jdHhfZnVuY3MgPQorQEAgLTI2NjcsNyArMjcxOCw4IEBAIHN0YXRpYyBj b25zdCBzdHJ1Y3QgZHdhcmZfZXhwcl9jb250ZXh0X2Z1bmNzIG5lZWRzX2ZyYW1lX2N0eF9mdW5j cyA9CiAgICBuZWVkc19mcmFtZV9kd2FyZl9jYWxsLAogICAgTlVMTCwJCQkJLyogZ2V0X2Jhc2Vf dHlwZSAqLwogICAgbmVlZHNfZHdhcmZfcmVnX2VudHJ5X3ZhbHVlLApAQCAtMjQ0LDcgKzIzMSw3 IEBAIGluZGV4IGZjYWI5YjkuLjRhYWMyNzggMTAwNjQ0CiAgfTsKICAKICAvKiBSZXR1cm4gbm9u LXplcm8gaWZmIHRoZSBsb2NhdGlvbiBleHByZXNzaW9uIGF0IERBVEEgKGxlbmd0aCBTSVpFKQot QEAgLTMzMTYsNiArMzM3MywxMCBAQCBkd2FyZjJfY29tcGlsZV9leHByX3RvX2F4IChzdHJ1Y3Qg YWdlbnRfZXhwciAqZXhwciwgc3RydWN0IGF4c192YWx1ZSAqbG9jLAorQEAgLTMzMTYsNiArMzM2 OCwxMCBAQCBkd2FyZjJfY29tcGlsZV9leHByX3RvX2F4IChzdHJ1Y3QgYWdlbnRfZXhwciAqZXhw ciwgc3RydWN0IGF4c192YWx1ZSAqbG9jLAogIAkgIHVuaW1wbGVtZW50ZWQgKG9wKTsKICAJICBi cmVhazsKICAKQEAgLTI1Niw3ICsyNDMsNyBAQCBpbmRleCBmY2FiOWI5Li40YWFjMjc4IDEwMDY0 NAogIAkgIG9mZnNldCA9IGV4dHJhY3Rfc2lnbmVkX2ludGVnZXIgKG9wX3B0ciwgMiwgYnl0ZV9v cmRlcik7CiAgCSAgb3BfcHRyICs9IDI7CiBkaWZmIC0tZ2l0IGEvZ2RiL2R3YXJmMmxvYy5oIGIv Z2RiL2R3YXJmMmxvYy5oCi1pbmRleCA4YWQ1ZmE5Li5jZjY0OGViIDEwMDY0NAoraW5kZXggOGFk NWZhOS4uZmI2NWM1YyAxMDA2NDQKIC0tLSBhL2dkYi9kd2FyZjJsb2MuaAogKysrIGIvZ2RiL2R3 YXJmMmxvYy5oCiBAQCAtOTYsMTEgKzk2LDE4IEBAIHN0cnVjdCB2YWx1ZSAqZHdhcmYyX2V2YWx1 YXRlX2xvY19kZXNjIChzdHJ1Y3QgdHlwZSAqdHlwZSwKQEAgLTI3OCwyMSArMjY1LDExIEBAIGlu ZGV4IDhhZDVmYTkuLmNmNjQ4ZWIgMTAwNjQ0CiAgLyogVGhlIHN5bWJvbCBsb2NhdGlvbiBiYXRv biB0eXBlcyB1c2VkIGJ5IHRoZSBEV0FSRi0yIHJlYWRlciAoaS5lLgogICAgIFNZTUJPTF9MT0NB VElPTl9CQVRPTiBmb3IgYSBMT0NfQ09NUFVURUQgc3ltYm9sKS4gICJzdHJ1Y3QKICAgICBkd2Fy ZjJfbG9jZXhwcl9iYXRvbiIgaXMgZm9yIGEgc3ltYm9sIHdpdGggYSBzaW5nbGUgbG9jYXRpb24K LUBAIC0xNjEsNiArMTY4LDkgQEAgc3RydWN0IGR3YXJmMl9wcm9wZXJ0eV9iYXRvbgotICAgICAv KiBMb2NhdGlvbiBsaXN0IHRvIGJlIGV2YWx1YXRlZCBpbiB0aGUgY29udGV4dCBvZiBSRUZFUkVO Q0VEX1RZUEUuICAqLwotICAgICBzdHJ1Y3QgZHdhcmYyX2xvY2xpc3RfYmF0b24gbG9jbGlzdDsK LSAgIH07Ci0rCi0rICAvKiBBdHRyaWJ1dGVzLCB3aGljaCB3aWxsIGJlIHB1c2hlZCBhZnRlciBl dmFsdWF0aW5nIGxvY2V4cHIgb3IgbG9jbGlzdC4gICovCi0rICBzdHJ1Y3QgZHdhcmYyX2xvY2V4 cHJfYmF0b24gcG9zdF92YWx1ZXM7Ci0gfTsKLSAKLSBleHRlcm4gY29uc3Qgc3RydWN0IHN5bWJv bF9jb21wdXRlZF9vcHMgZHdhcmYyX2xvY2V4cHJfZnVuY3M7CiBkaWZmIC0tZ2l0IGEvZ2RiL2R3 YXJmMnJlYWQuYyBiL2dkYi9kd2FyZjJyZWFkLmMKLWluZGV4IDI3NmQyZjEuLmY1YjM1ZDcgMTAw NjQ0CitpbmRleCAyNzZkMmYxLi5mYmYxM2NlIDEwMDY0NAogLS0tIGEvZ2RiL2R3YXJmMnJlYWQu YwogKysrIGIvZ2RiL2R3YXJmMnJlYWQuYwotQEAgLTE4NDcsNiArMTg0NywxNSBAQCBzdGF0aWMg dm9pZCBmcmVlX2R3b19maWxlX2NsZWFudXAgKHZvaWQgKik7CitAQCAtMTg0Nyw2ICsxODQ3LDEy IEBAIHN0YXRpYyB2b2lkIGZyZWVfZHdvX2ZpbGVfY2xlYW51cCAodm9pZCAqKTsKICBzdGF0aWMg dm9pZCBwcm9jZXNzX2N1X2luY2x1ZGVzICh2b2lkKTsKICAKICBzdGF0aWMgdm9pZCBjaGVja19w cm9kdWNlciAoc3RydWN0IGR3YXJmMl9jdSAqY3UpOwpAQCAtMzAyLDEzICsyNzksMTAgQEAgaW5k ZXggMjc2ZDJmMS4uZjViMzVkNyAxMDA2NDQKICsJCSAgICAgIHN0cnVjdCBkd2FyZjJfY3UgKmN1 LCBzdHJ1Y3QgZHluYW1pY19wcm9wICpwcm9wLAogKwkJICAgICAgY29uc3QgZ2RiX2J5dGUgKmFk ZGl0aW9uYWxfZGF0YSwgaW50IGFkZGl0aW9uYWxfZGF0YV9zaXplKTsKICsKLStzdGF0aWMgdm9p ZCBhZGRfcG9zdF92YWx1ZXNfdG9fYmF0b24gKHN0cnVjdCBkd2FyZjJfcHJvcGVydHlfYmF0b24g KmJhdG9uLAotKyAgICAgICAgY29uc3QgZ2RiX2J5dGUgKmRhdGEsIGludCBzaXplLCBzdHJ1Y3Qg ZHdhcmYyX2N1ICpjdSk7Ci0rCiAgDAogIC8qIFZhcmlvdXMgY29tcGxhaW50cyBhYm91dCBzeW1i b2wgcmVhZGluZyB0aGF0IGRvbid0IGFib3J0IHRoZSBwcm9jZXNzLiAgKi8KICAKLUBAIC0xNDIw MSwyOSArMTQyMTAsOTAgQEAgcmVhZF90YWdfc3RyaW5nX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAq ZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC0xNDIwMSwyOSArMTQyMDcsOTIgQEAgcmVh ZF90YWdfc3RyaW5nX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1 ICpjdSkKICAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X29iamZpbGVfYXJjaCAob2Jq ZmlsZSk7CiAgICBzdHJ1Y3QgdHlwZSAqdHlwZSwgKnJhbmdlX3R5cGUsICppbmRleF90eXBlLCAq Y2hhcl90eXBlOwogICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKQEAgLTM0OCw3ICszMjIsNiBA QCBpbmRleCAyNzZkMmYxLi5mNWIzNWQ3IDEwMDY0NAogKyAgICAgICAgICAgICAgICAgZGF0YSBh dHRyaWJ1dGUsIHRvIHJlZmxlY3QgRFdBUkYgc3BlY2lhbGl0aWVzIHRvIGdldCBhZGRyZXNzCiAr ICAgICAgICAgICAgICAgICBzaXplcy4gICovCiArICAgICAgICAgICAgICBjb25zdCBnZGJfYnl0 ZSBhcHBlbmRfb3BzW10gPSB7Ci0rICAgICAgICAgICAgICAgIERXX09QX3B1c2hfb2JqZWN0X2Fk ZHJlc3MsCiArICAgICAgICAgICAgICAgIC8qIERXX09QX2RlcmVmX3NpemU6IHNpemUgb2YgYW4g YWRkcmVzcyBvbiB0aGUgdGFyZ2V0IG1hY2hpbmUKICsgICAgICAgICAgICAgICAgICAgKGJ5dGVz KSwgd2hlcmUgdGhlIHNpemUgd2lsbCBiZSBzcGVjaWZpZWQgYnkgdGhlIG5leHQKICsgICAgICAg ICAgICAgICAgICAgb3BlcmFuZC4gICovCkBAIC0zNjgsNyArMzQxLDEwIEBAIGluZGV4IDI3NmQy ZjEuLmY1YjM1ZDcgMTAwNjQ0CiArICAgICAgICAgICAgIGlzIHRoZSBhZGRyZXNzIHNpemUgb2Yg dGhlIHRhcmdldCBtYWNoaW5lLiAgKi8KICsgICAgICAgICAgZWxzZQogKyAgICAgICAgICAgIHsK LSsgICAgICAgICAgICAgIGlmICghYXR0cl90b19keW5hbWljX3Byb3AgKGF0dHIsIGRpZSwgY3Us ICZoaWdoLCBOVUxMLCAwKSkKKysgICAgICAgICAgICAgIGNvbnN0IGdkYl9ieXRlIGFwcGVuZF9v cHNbXSA9IHsgRFdfT1BfZGVyZWYgfTsKKysKKysgICAgICAgICAgICAgIGlmICghYXR0cl90b19k eW5hbWljX3Byb3AgKGF0dHIsIGRpZSwgY3UsICZoaWdoLCBhcHBlbmRfb3BzLAorKyAgICAgICAg ICAgICAgICAgICAgICBBUlJBWV9TSVpFIChhcHBlbmRfb3BzKSkpCiArICAgICAgICAgICAgICAg IGNvbXBsYWludCAoJnN5bWZpbGVfY29tcGxhaW50cywKICsgICAgICAgICAgICAgICAgICAgICAg ICBfKCJDb3VsZCBub3QgcGFyc2UgRFdfQVRfc3RyaW5nX2xlbmd0aCIpKTsKICsgICAgICAgICAg ICB9CkBAIC00MDYsMzEgKzM4MiwxMCBAQCBpbmRleCAyNzZkMmYxLi5mNWIzNWQ3IDEwMDY0NAog ICAgY2hhcl90eXBlID0gbGFuZ3VhZ2Vfc3RyaW5nX2NoYXJfdHlwZSAoY3UtPmxhbmd1YWdlX2Rl Zm4sIGdkYmFyY2gpOwogICAgdHlwZSA9IGNyZWF0ZV9zdHJpbmdfdHlwZSAoTlVMTCwgY2hhcl90 eXBlLCByYW5nZV90eXBlKTsKICAKLUBAIC0xNDU0MCwxMyArMTQ2MTAsMzYgQEAgcmVhZF9iYXNl X3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC0x NDU0MCwxMyArMTQ2MDksMTUgQEAgcmVhZF9iYXNlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGll LCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgIHJldHVybiBzZXRfZGllX3R5cGUgKGRpZSwgdHlw ZSwgY3UpOwogIH0KICAKLSsvKiBBZGQgcG9zdCBwcm9jZXNzaW5nIG9wLWNvZGVzIHRvIGEgZHdh cmYyX3Byb3BlcnR5X2JhdG9uLiAgKi8KLSsKLStzdGF0aWMgdm9pZCBhZGRfcG9zdF92YWx1ZXNf dG9fYmF0b24gKHN0cnVjdCBkd2FyZjJfcHJvcGVydHlfYmF0b24gKmJhdG9uLAotKyAgICAgICAg Y29uc3QgZ2RiX2J5dGUgKmRhdGEsIGludCBzaXplLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKLSt7 Ci0rICBpZiAoZGF0YSAhPSBOVUxMICYmIHNpemUgPiAwKQotKyAgICB7Ci0rICAgICAgc3RydWN0 IG9ic3RhY2sgKm9ic3RhY2sgPSAmY3UtPm9iamZpbGUtPm9iamZpbGVfb2JzdGFjazsKLSsgICAg ICBnZGJfYnl0ZSAqcG9zdF9kYXRhOwotKwotKyAgICAgIHBvc3RfZGF0YSA9IG9ic3RhY2tfYWxs b2MgKG9ic3RhY2ssIHNpemUpOwotKyAgICAgIG1lbWNweShwb3N0X2RhdGEsIGRhdGEsIHNpemUp OwotKyAgICAgIGJhdG9uLT5wb3N0X3ZhbHVlcy5kYXRhID0gcG9zdF9kYXRhOwotKyAgICAgIGJh dG9uLT5wb3N0X3ZhbHVlcy5zaXplID0gc2l6ZTsKLSsgICAgICBiYXRvbi0+cG9zdF92YWx1ZXMu cGVyX2N1ID0gY3UtPnBlcl9jdTsKLSsgICAgfSBlbHNlIHsKLSsgICAgICBiYXRvbi0+cG9zdF92 YWx1ZXMuZGF0YSA9IE5VTEw7Ci0rICAgICAgYmF0b24tPnBvc3RfdmFsdWVzLnNpemUgPSAwOwot KyAgICAgIGJhdG9uLT5wb3N0X3ZhbHVlcy5wZXJfY3UgPSBOVUxMOwotKyAgICB9Ci0rfQogKwog IC8qIFBhcnNlIGR3YXJmIGF0dHJpYnV0ZSBpZiBpdCdzIGEgYmxvY2ssIHJlZmVyZW5jZSBvciBj b25zdGFudCBhbmQgcHV0IHRoZQogICAgIHJlc3VsdGluZyB2YWx1ZSBvZiB0aGUgYXR0cmlidXRl IGludG8gc3RydWN0IGJvdW5kX3Byb3AuCkBAIC00NDQsMzcgKzM5OSw2NiBAQCBpbmRleCAyNzZk MmYxLi5mNWIzNWQ3IDEwMDY0NAogIHsKICAgIHN0cnVjdCBkd2FyZjJfcHJvcGVydHlfYmF0b24g KmJhdG9uOwogICAgc3RydWN0IG9ic3RhY2sgKm9ic3RhY2sgPSAmY3UtPm9iamZpbGUtPm9iamZp bGVfb2JzdGFjazsKLUBAIC0xNDU1OSw4ICsxNDY1MiwxMCBAQCBhdHRyX3RvX2R5bmFtaWNfcHJv cCAoY29uc3Qgc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwgc3RydWN0IGRpZV9pbmZvICpkaWUsCitA QCAtMTQ1NTksOCArMTQ2MzAsMjUgQEAgYXR0cl90b19keW5hbWljX3Byb3AgKGNvbnN0IHN0cnVj dCBhdHRyaWJ1dGUgKmF0dHIsIHN0cnVjdCBkaWVfaW5mbyAqZGllLAogICAgICAgIGJhdG9uID0g b2JzdGFja19hbGxvYyAob2JzdGFjaywgc2l6ZW9mICgqYmF0b24pKTsKICAgICAgICBiYXRvbi0+ cmVmZXJlbmNlZF90eXBlID0gTlVMTDsKICAgICAgICBiYXRvbi0+bG9jZXhwci5wZXJfY3UgPSBj dS0+cGVyX2N1OwogLSAgICAgIGJhdG9uLT5sb2NleHByLnNpemUgPSBEV19CTE9DSyAoYXR0cikt PnNpemU7Ci0gICAgICAgYmF0b24tPmxvY2V4cHIuZGF0YSA9IERXX0JMT0NLIChhdHRyKS0+ZGF0 YTsKLSsgICAgICBiYXRvbi0+bG9jZXhwci5zaXplID0gRFdfQkxPQ0sgKGF0dHIpLT5zaXplOwot KyAgICAgIGFkZF9wb3N0X3ZhbHVlc190b19iYXRvbiAoYmF0b24sIGFkZGl0aW9uYWxfZGF0YSwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxfZGF0YV9zaXplLCBj dSk7CistICAgICAgYmF0b24tPmxvY2V4cHIuZGF0YSA9IERXX0JMT0NLIChhdHRyKS0+ZGF0YTsK KysKKysgICAgICBpZiAoYWRkaXRpb25hbF9kYXRhICE9IE5VTEwgJiYgYWRkaXRpb25hbF9kYXRh X3NpemUgPiAwKQorKyAgICAgICAgeworKyAgICAgICAgICBnZGJfYnl0ZSAqZGF0YTsKKysKKysg ICAgICAgICAgZGF0YSA9IG9ic3RhY2tfYWxsb2MgKCZjdS0+b2JqZmlsZS0+b2JqZmlsZV9vYnN0 YWNrLAorKyAgICAgICAgICAgICAgICAgIERXX0JMT0NLIChhdHRyKS0+c2l6ZSArIGFkZGl0aW9u YWxfZGF0YV9zaXplKTsKKysgICAgICAgICAgbWVtY3B5IChkYXRhLCBEV19CTE9DSyAoYXR0cikt PmRhdGEsIERXX0JMT0NLIChhdHRyKS0+c2l6ZSk7CisrICAgICAgICAgIG1lbWNweSAoZGF0YSAr IERXX0JMT0NLIChhdHRyKS0+c2l6ZSwKKysgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsX2Rh dGEsIGFkZGl0aW9uYWxfZGF0YV9zaXplKTsKKysKKysgICAgICAgICAgYmF0b24tPmxvY2V4cHIu ZGF0YSA9IGRhdGE7CisrICAgICAgICAgIGJhdG9uLT5sb2NleHByLnNpemUgPSBEV19CTE9DSyAo YXR0ciktPnNpemUgKyBhZGRpdGlvbmFsX2RhdGFfc2l6ZTsKKysgICAgICAgIH0KKysgICAgICBl bHNlCisrICAgICAgICB7CisrICAgICAgICAgIGJhdG9uLT5sb2NleHByLmRhdGEgPSBEV19CTE9D SyAoYXR0ciktPmRhdGE7CisrICAgICAgICAgIGJhdG9uLT5sb2NleHByLnNpemUgPSBEV19CTE9D SyAoYXR0ciktPnNpemU7CisrICAgICAgICB9CiAgICAgICAgcHJvcC0+ZGF0YS5iYXRvbiA9IGJh dG9uOwogICAgICAgIHByb3AtPmtpbmQgPSBQUk9QX0xPQ0VYUFI7CiAgICAgICAgZ2RiX2Fzc2Vy dCAocHJvcC0+ZGF0YS5iYXRvbiAhPSBOVUxMKTsKLUBAIC0xNDU4MSw2ICsxNDY3Niw4IEBAIGF0 dHJfdG9fZHluYW1pY19wcm9wIChjb25zdCBzdHJ1Y3QgYXR0cmlidXRlICphdHRyLCBzdHJ1Y3Qg ZGllX2luZm8gKmRpZSwKK0BAIC0xNDU5MCw4ICsxNDY3OCwyOCBAQCBhdHRyX3RvX2R5bmFtaWNf cHJvcCAoY29uc3Qgc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwgc3RydWN0IGRpZV9pbmZvICpkaWUs CiAgCSAgYmF0b24gPSBvYnN0YWNrX2FsbG9jIChvYnN0YWNrLCBzaXplb2YgKCpiYXRvbikpOwog IAkgIGJhdG9uLT5yZWZlcmVuY2VkX3R5cGUgPSBkaWVfdHlwZSAodGFyZ2V0X2RpZSwgdGFyZ2V0 X2N1KTsKLSAJICBmaWxsX2luX2xvY2xpc3RfYmF0b24gKGN1LCAmYmF0b24tPmxvY2xpc3QsIHRh cmdldF9hdHRyKTsKLSsJICBhZGRfcG9zdF92YWx1ZXNfdG9fYmF0b24gKGJhdG9uLCBhZGRpdGlv bmFsX2RhdGEsCi0rCSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsX2RhdGFf c2l6ZSwgY3UpOwotIAkgIHByb3AtPmRhdGEuYmF0b24gPSBiYXRvbjsKLSAJICBwcm9wLT5raW5k ID0gUFJPUF9MT0NMSVNUOwotIAkgIGdkYl9hc3NlcnQgKHByb3AtPmRhdGEuYmF0b24gIT0gTlVM TCk7Ci1AQCAtMTQ1OTIsNiArMTQ2ODksOCBAQCBhdHRyX3RvX2R5bmFtaWNfcHJvcCAoY29uc3Qg c3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwgc3RydWN0IGRpZV9pbmZvICpkaWUsCiAgCSAgYmF0b24t PmxvY2V4cHIucGVyX2N1ID0gY3UtPnBlcl9jdTsKLSAJICBiYXRvbi0+bG9jZXhwci5zaXplID0g RFdfQkxPQ0sgKHRhcmdldF9hdHRyKS0+c2l6ZTsKLSAJICBiYXRvbi0+bG9jZXhwci5kYXRhID0g RFdfQkxPQ0sgKHRhcmdldF9hdHRyKS0+ZGF0YTsKLSsJICBhZGRfcG9zdF92YWx1ZXNfdG9fYmF0 b24gKGJhdG9uLCBhZGRpdGlvbmFsX2RhdGEsCi0rCSAgICAgICAgICAgICAgICAgICAgICAgICAg ICBhZGRpdGlvbmFsX2RhdGFfc2l6ZSwgY3UpOworLQkgIGJhdG9uLT5sb2NleHByLnNpemUgPSBE V19CTE9DSyAodGFyZ2V0X2F0dHIpLT5zaXplOworLQkgIGJhdG9uLT5sb2NleHByLmRhdGEgPSBE V19CTE9DSyAodGFyZ2V0X2F0dHIpLT5kYXRhOworKworKwkgIGlmIChhZGRpdGlvbmFsX2RhdGEg IT0gTlVMTCAmJiBhZGRpdGlvbmFsX2RhdGFfc2l6ZSA+IDApCisrCSAgICB7CisrCSAgICAgIGdk Yl9ieXRlICpkYXRhOworKworKwkgICAgICBkYXRhID0gb2JzdGFja19hbGxvYyAoJmN1LT5vYmpm aWxlLT5vYmpmaWxlX29ic3RhY2ssCisrCSAgICAgICAgICAgICAgRFdfQkxPQ0sgKHRhcmdldF9h dHRyKS0+c2l6ZSArIGFkZGl0aW9uYWxfZGF0YV9zaXplKTsKKysJICAgICAgbWVtY3B5IChkYXRh LCBEV19CTE9DSyAodGFyZ2V0X2F0dHIpLT5kYXRhLAorKwkgICAgICAgICAgICAgIERXX0JMT0NL ICh0YXJnZXRfYXR0ciktPnNpemUpOworKwkgICAgICBtZW1jcHkgKGRhdGEgKyBEV19CTE9DSyAo dGFyZ2V0X2F0dHIpLT5zaXplLAorKwkgICAgICAgICAgICAgIGFkZGl0aW9uYWxfZGF0YSwgYWRk aXRpb25hbF9kYXRhX3NpemUpOworKworKwkgICAgICBiYXRvbi0+bG9jZXhwci5kYXRhID0gZGF0 YTsKKysJICAgICAgYmF0b24tPmxvY2V4cHIuc2l6ZSA9IChEV19CTE9DSyAodGFyZ2V0X2F0dHIp LT5zaXplCisrCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBhZGRpdGlvbmFsX2RhdGFf c2l6ZSk7CisrCSAgICB9CisrCSAgZWxzZQorKwkgICAgeworKwkgICAgICBiYXRvbi0+bG9jZXhw ci5kYXRhID0gRFdfQkxPQ0sgKHRhcmdldF9hdHRyKS0+ZGF0YTsKKysJICAgICAgYmF0b24tPmxv Y2V4cHIuc2l6ZSA9IERXX0JMT0NLICh0YXJnZXRfYXR0ciktPnNpemU7CisrCSAgICB9CisrCiAg CSAgcHJvcC0+ZGF0YS5iYXRvbiA9IGJhdG9uOwogIAkgIHByb3AtPmtpbmQgPSBQUk9QX0xPQ0VY UFI7CiAgCSAgZ2RiX2Fzc2VydCAocHJvcC0+ZGF0YS5iYXRvbiAhPSBOVUxMKTsKLUBAIC0xNDYy Niw3ICsxNDcyNSw3IEBAIHJlYWRfc3VicmFuZ2VfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUs IHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTE0NjI2LDcgKzE0NzM0LDcgQEAgcmVhZF9zdWJy YW5nZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAg ICBzdHJ1Y3QgdHlwZSAqYmFzZV90eXBlLCAqb3JpZ19iYXNlX3R5cGU7CiAgICBzdHJ1Y3QgdHlw ZSAqcmFuZ2VfdHlwZTsKICAgIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHI7CkBAIC00ODMsNyArNDY3 LDcgQEAgaW5kZXggMjc2ZDJmMS4uZjViMzVkNyAxMDA2NDQKICAgIGludCBsb3dfZGVmYXVsdF9p c192YWxpZDsKICAgIGludCBoaWdoX2JvdW5kX2lzX2NvdW50ID0gMDsKICAgIGNvbnN0IGNoYXIg Km5hbWU7Ci1AQCAtMTQ2NDYsNyArMTQ3NDUsOSBAQCByZWFkX3N1YnJhbmdlX3R5cGUgKHN0cnVj dCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC0xNDY0Niw3ICsxNDc1 NCw5IEBAIHJlYWRfc3VicmFuZ2VfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBk d2FyZjJfY3UgKmN1KQogIAogICAgbG93LmtpbmQgPSBQUk9QX0NPTlNUOwogICAgaGlnaC5raW5k ID0gUFJPUF9DT05TVDsKQEAgLTQ5Myw3ICs0NzcsNyBAQCBpbmRleCAyNzZkMmYxLi5mNWIzNWQ3 IDEwMDY0NAogIAogICAgLyogU2V0IExPV19ERUZBVUxUX0lTX1ZBTElEIGlmIGN1cnJlbnQgbGFu Z3VhZ2UgYW5kIERXQVJGIHZlcnNpb24gYWxsb3cKICAgICAgIG9taXR0aW5nIERXX0FUX2xvd2Vy X2JvdW5kLiAgKi8KLUBAIC0xNDY3OSwxOSArMTQ3ODAsMjYgQEAgcmVhZF9zdWJyYW5nZV90eXBl IChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMTQ2Nzks MTkgKzE0Nzg5LDI2IEBAIHJlYWRfc3VicmFuZ2VfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUs IHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgICAgIGJyZWFrOwogICAgICB9CiAgCkBAIC01MjMs NyArNTA3LDcgQEAgaW5kZXggMjc2ZDJmMS4uZjViMzVkNyAxMDA2NDQKICAJewogIAkgIC8qIElm IGJvdW5kcyBhcmUgY29uc3RhbnQgZG8gdGhlIGZpbmFsIGNhbGN1bGF0aW9uIGhlcmUuICAqLwog IAkgIGlmIChsb3cua2luZCA9PSBQUk9QX0NPTlNUICYmIGhpZ2gua2luZCA9PSBQUk9QX0NPTlNU KQotQEAgLTE0NzU1LDcgKzE0ODYzLDcgQEAgcmVhZF9zdWJyYW5nZV90eXBlIChzdHJ1Y3QgZGll X2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMTQ3NTUsNyArMTQ4NzIsNyBA QCByZWFkX3N1YnJhbmdlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYy X2N1ICpjdSkKICAgICAgICAmJiAhVFlQRV9VTlNJR05FRCAoYmFzZV90eXBlKSAmJiAoaGlnaC5k YXRhLmNvbnN0X3ZhbCAmIG5lZ2F0aXZlX21hc2spKQogICAgICBoaWdoLmRhdGEuY29uc3RfdmFs IHw9IG5lZ2F0aXZlX21hc2s7CiAgCkBAIC01MzIsNyArNTE2LDcgQEAgaW5kZXggMjc2ZDJmMS4u ZjViMzVkNyAxMDA2NDQKICAKICAgIGlmIChoaWdoX2JvdW5kX2lzX2NvdW50KQogICAgICBUWVBF X1JBTkdFX0RBVEEgKHJhbmdlX3R5cGUpLT5mbGFnX3VwcGVyX2JvdW5kX2lzX2NvdW50ID0gMTsK LUBAIC0yMTY3Myw2ICsyMTc4MSw4IEBAIHNldF9kaWVfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpk aWUsIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC0yMTY3Myw2 ICsyMTc5MCw4IEBAIHNldF9kaWVfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCB0 eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICB7CiAgICBzdHJ1Y3QgZHdhcmYyX3Bl cl9jdV9vZmZzZXRfYW5kX3R5cGUgKipzbG90LCBvZnM7CiAgICBzdHJ1Y3Qgb2JqZmlsZSAqb2Jq ZmlsZSA9IGN1LT5vYmpmaWxlOwpAQCAtNTQxLDcgKzUyNSw3IEBAIGluZGV4IDI3NmQyZjEuLmY1 YjM1ZDcgMTAwNjQ0CiAgCiAgICAvKiBGb3IgQWRhIHR5cGVzLCBtYWtlIHN1cmUgdGhhdCB0aGUg Z25hdC1zcGVjaWZpYyBkYXRhIGlzIGFsd2F5cwogICAgICAgaW5pdGlhbGl6ZWQgKGlmIG5vdCBh bHJlYWR5IHNldCkuICBUaGVyZSBhcmUgYSBmZXcgdHlwZXMgd2hlcmUKLUBAIC0yMTY4Nyw2ICsy MTc5Nyw0MyBAQCBzZXRfZGllX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgdHlw ZSAqdHlwZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMjE2ODcsNiArMjE4MDYsNDMgQEAg c2V0X2RpZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IHR5cGUgKnR5cGUsIHN0 cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgICAgICYmICFIQVZFX0dOQVRfQVVYX0lORk8gKHR5cGUp KQogICAgICBJTklUX0dOQVRfU1BFQ0lGSUMgKHR5cGUpOwogIApAQCAtODY0LDcgKzg0OCw3IEBA IGluZGV4IDQwOGM4Y2MuLjM4ZjMyZTAgMTAwNjQ0CiAgICAgICAgICAgICAgZnB1dHNfZmlsdGVy ZWQgKCIsICIsIHN0cmVhbSk7CiAgICAgICAgICB9CiBkaWZmIC0tZ2l0IGEvZ2RiL2dkYnR5cGVz LmMgYi9nZGIvZ2RidHlwZXMuYwotaW5kZXggZDBjMDAyZi4uM2Y1MmQ2MSAxMDA2NDQKK2luZGV4 IGU5OWEyZjMuLjUzY2FlMmMgMTAwNjQ0CiAtLS0gYS9nZGIvZ2RidHlwZXMuYwogKysrIGIvZ2Ri L2dkYnR5cGVzLmMKIEBAIC04MDUsNyArODA1LDggQEAgYWxsb2NhdGVfc3R1Yl9tZXRob2QgKHN0 cnVjdCB0eXBlICp0eXBlKQpAQCAtOTM0LDkgKzkxOCw5IEBAIGluZGV4IGQwYzAwMmYuLjNmNTJk NjEgMTAwNjQ0CiAgICAgICAgZWxzZSBpZiAoYml0X3N0cmlkZSA+IDApCiAgCVRZUEVfTEVOR1RI IChyZXN1bHRfdHlwZSkgPQogIAkgIChiaXRfc3RyaWRlICogKGhpZ2hfYm91bmQgLSBsb3dfYm91 bmQgKyAxKSArIDcpIC8gODsKLUBAIC0xNjE2LDExICsxNjI4LDMwIEBAIHN0dWJfbm9uYW1lX2Nv bXBsYWludCAodm9pZCkKLSBpbnQKLSBpc19keW5hbWljX3R5cGUgKHN0cnVjdCB0eXBlICp0eXBl KQorQEAgLTE2MTYsMTIgKzE2MjgsMzEgQEAgc3R1Yl9ub25hbWVfY29tcGxhaW50ICh2b2lkKQor IHN0YXRpYyBpbnQKKyBpc19keW5hbWljX3R5cGVfaW50ZXJuYWwgKHN0cnVjdCB0eXBlICp0eXBl LCBpbnQgdG9wX2xldmVsKQogIHsKICsgIGludCBpbmRleDsKICsKQEAgLTk0NSw3ICs5MjksOCBA QCBpbmRleCBkMGMwMDJmLi4zZjUyZDYxIDEwMDY0NAogKwogICAgdHlwZSA9IGNoZWNrX3R5cGVk ZWYgKHR5cGUpOwogIAotICAgaWYgKFRZUEVfQ09ERSAodHlwZSkgPT0gVFlQRV9DT0RFX1JFRikK KyAgIC8qIFdlIG9ubHkgd2FudCB0byByZWNvZ25pemUgcmVmZXJlbmNlcyBhdCB0aGUgb3V0ZXJt b3N0IGxldmVsLiAgKi8KKyAgIGlmICh0b3BfbGV2ZWwgJiYgVFlQRV9DT0RFICh0eXBlKSA9PSBU WVBFX0NPREVfUkVGKQogICAgICB0eXBlID0gY2hlY2tfdHlwZWRlZiAoVFlQRV9UQVJHRVRfVFlQ RSAodHlwZSkpOwogIAogKyAgaWYgKFRZUEVfQVNTT0NJQVRFRF9QUk9QICh0eXBlKSkKQEAgLTk2 NSw3ICs5NTAsNyBAQCBpbmRleCBkMGMwMDJmLi4zZjUyZDYxIDEwMDY0NAogICAgc3dpdGNoIChU WVBFX0NPREUgKHR5cGUpKQogICAgICB7CiAgICAgIGNhc2UgVFlQRV9DT0RFX1JBTkdFOgotQEAg LTE2MzAsMTEgKzE2NjEsMTkgQEAgaXNfZHluYW1pY190eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZSkK K0BAIC0xNjMxLDExICsxNjYyLDE5IEBAIGlzX2R5bmFtaWNfdHlwZV9pbnRlcm5hbCAoc3RydWN0 IHR5cGUgKnR5cGUsIGludCB0b3BfbGV2ZWwpCiAgICAgICAgewogIAlnZGJfYXNzZXJ0IChUWVBF X05GSUVMRFMgKHR5cGUpID09IDEpOwogIApAQCAtOTc1LDIxICs5NjAsMjEgQEAgaW5kZXggZDBj MDAyZi4uM2Y1MmQ2MSAxMDA2NDQKICsgICAgIC0gdGhlIGJvdW5kcyBhcmUgZHluYW1pYywKICsJ ICAgLSB0aGUgZWxlbWVudHMgaXQgY29udGFpbnMgaGF2ZSBhIGR5bmFtaWMgY29udGVudHMKICsg ICAgIC0gYSBkYXRhX2xvY2F0b24gYXR0cmlidXRlIHdhcyBmb3VuZC4gICovCi0gCWlmIChpc19k eW5hbWljX3R5cGUgKFRZUEVfSU5ERVhfVFlQRSAodHlwZSkpKQorIAlpZiAoaXNfZHluYW1pY190 eXBlX2ludGVybmFsIChUWVBFX0lOREVYX1RZUEUgKHR5cGUpLCAwKSkKICAJICByZXR1cm4gMTsK LS0JcmV0dXJuIGlzX2R5bmFtaWNfdHlwZSAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSkpOworLQly ZXR1cm4gaXNfZHluYW1pY190eXBlX2ludGVybmFsIChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSwg MCk7CiArCWVsc2UgaWYgKFRZUEVfREFUQV9MT0NBVElPTiAodHlwZSkgIT0gTlVMTAogKwkgICAg ICAgICAmJiAoVFlQRV9EQVRBX0xPQ0FUSU9OX0tJTkQgKHR5cGUpID09IFBST1BfTE9DRVhQUgog KwkgICAgICAgICAgICAgfHwgVFlQRV9EQVRBX0xPQ0FUSU9OX0tJTkQgKHR5cGUpID09IFBST1Bf TE9DTElTVCkpCiArICAgIHJldHVybiAxOwogKyAgZWxzZQotKyAgICByZXR1cm4gaXNfZHluYW1p Y190eXBlIChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSk7CisrICAgIHJldHVybiBpc19keW5hbWlj X3R5cGVfaW50ZXJuYWwgKFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpLCAwKTsKICsJYnJlYWs7CiAg ICAgICAgfQogIAogICAgICBjYXNlIFRZUEVfQ09ERV9TVFJVQ1Q6Ci1AQCAtMTY0NywyOCArMTY4 Niw0MCBAQCBpc19keW5hbWljX3R5cGUgKHN0cnVjdCB0eXBlICp0eXBlKQotIAkgICAgICAmJiBp c19keW5hbWljX3R5cGUgKFRZUEVfRklFTERfVFlQRSAodHlwZSwgaSkpKQorQEAgLTE2NDgsNiAr MTY4NywxNyBAQCBpc19keW5hbWljX3R5cGVfaW50ZXJuYWwgKHN0cnVjdCB0eXBlICp0eXBlLCBp bnQgdG9wX2xldmVsKQorIAkgICAgICAmJiBpc19keW5hbWljX3R5cGVfaW50ZXJuYWwgKFRZUEVf RklFTERfVFlQRSAodHlwZSwgaSksIDApKQogIAkgICAgcmV0dXJuIDE7CiAgICAgICAgfQogKyAg ICBjYXNlIFRZUEVfQ09ERV9QVFI6CkBAIC0xMDA2LDggKzk5MSw5IEBAIGluZGV4IGQwYzAwMmYu LjNmNTJkNjEgMTAwNjQ0CiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAKLSAgIHJldHVybiAwOwot IH0KK0BAIC0xNjY2LDIyICsxNzE2LDIzIEBAIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqcmVzb2x2ZV9k eW5hbWljX3R5cGVfaW50ZXJuYWwgKHN0cnVjdCB0eXBlICp0eXBlLAorIAkJCQkJCSAgIENPUkVf QUREUiBhZGRyLAorIAkJCQkJCSAgIGludCB0b3BfbGV2ZWwpOwogIAogLS8qIEdpdmVuIGEgZHlu YW1pYyByYW5nZSB0eXBlIChkeW5fcmFuZ2VfdHlwZSksIHJldHVybiBhIHN0YXRpYyB2ZXJzaW9u CiAtICAgb2YgdGhhdCB0eXBlLiAgKi8KQEAgLTEwMzQsNyArMTAyMCw3IEBAIGluZGV4IGQwYzAw MmYuLjNmNTJkNjEgMTAwNjQ0CiAgICAgIHsKICAgICAgICBsb3dfYm91bmQua2luZCA9IFBST1Bf Q09OU1Q7CiAgICAgICAgbG93X2JvdW5kLmRhdGEuY29uc3RfdmFsID0gdmFsdWU7Ci1AQCAtMTY4 MCw3ICsxNzMxLDcgQEAgcmVzb2x2ZV9keW5hbWljX3JhbmdlIChzdHJ1Y3QgdHlwZSAqZHluX3Jh bmdlX3R5cGUpCitAQCAtMTY5Myw3ICsxNzQ0LDcgQEAgcmVzb2x2ZV9keW5hbWljX3JhbmdlIChz dHJ1Y3QgdHlwZSAqZHluX3JhbmdlX3R5cGUpCiAgICAgIH0KICAKICAgIHByb3AgPSAmVFlQRV9S QU5HRV9EQVRBIChkeW5fcmFuZ2VfdHlwZSktPmhpZ2g7CkBAIC0xMDQzLDcgKzEwMjksNyBAQCBp bmRleCBkMGMwMDJmLi4zZjUyZDYxIDEwMDY0NAogICAgICB7CiAgICAgICAgaGlnaF9ib3VuZC5r aW5kID0gUFJPUF9DT05TVDsKICAgICAgICBoaWdoX2JvdW5kLmRhdGEuY29uc3RfdmFsID0gdmFs dWU7Ci1AQCAtMTY5NCwxMCArMTc0NSwxNyBAQCByZXNvbHZlX2R5bmFtaWNfcmFuZ2UgKHN0cnVj dCB0eXBlICpkeW5fcmFuZ2VfdHlwZSkKK0BAIC0xNzA3LDEwICsxNzU4LDE3IEBAIHJlc29sdmVf ZHluYW1pY19yYW5nZSAoc3RydWN0IHR5cGUgKmR5bl9yYW5nZV90eXBlKQogICAgICAgIGhpZ2hf Ym91bmQua2luZCA9IFBST1BfVU5ERUZJTkVEOwogICAgICAgIGhpZ2hfYm91bmQuZGF0YS5jb25z dF92YWwgPSAwOwogICAgICB9CkBAIC0xMDY0LDcgKzEwNTAsNyBAQCBpbmRleCBkMGMwMDJmLi4z ZjUyZDYxIDEwMDY0NAogICAgVFlQRV9SQU5HRV9EQVRBIChzdGF0aWNfcmFuZ2VfdHlwZSktPmZs YWdfYm91bmRfZXZhbHVhdGVkID0gMTsKICAgIHJldHVybiBzdGF0aWNfcmFuZ2VfdHlwZTsKICB9 Ci1AQCAtMTcwNywyOSArMTc2NSw1MiBAQCByZXNvbHZlX2R5bmFtaWNfcmFuZ2UgKHN0cnVjdCB0 eXBlICpkeW5fcmFuZ2VfdHlwZSkKK0BAIC0xNzIwLDI5ICsxNzc4LDUyIEBAIHJlc29sdmVfZHlu YW1pY19yYW5nZSAoc3RydWN0IHR5cGUgKmR5bl9yYW5nZV90eXBlKQogICAgIG9mIHRoZSBhc3Nv Y2lhdGVkIGFycmF5LiAgKi8KICAKICBzdGF0aWMgc3RydWN0IHR5cGUgKgpAQCAtMTEyNSwyNCAr MTExMSwxNiBAQCBpbmRleCBkMGMwMDJmLi4zZjUyZDYxIDEwMDY0NAogIH0KICAKICAvKiBSZXNv bHZlIGR5bmFtaWMgYm91bmRzIG9mIG1lbWJlcnMgb2YgdGhlIHVuaW9uIFRZUEUgdG8gc3RhdGlj Ci1AQCAtMTgyMyw2ICsxOTA0LDcgQEAgcmVzb2x2ZV9keW5hbWljX3N0cnVjdCAoc3RydWN0IHR5 cGUgKnR5cGUsIENPUkVfQUREUiBhZGRyKQotICAgcmV0dXJuIHJlc29sdmVkX3R5cGU7Ci0gfQot IAotKwotIC8qIFNlZSBnZGJ0eXBlcy5oICAqLwotIAotIHN0cnVjdCB0eXBlICoKLUBAIC0xODMw LDYgKzE5MTIsOCBAQCByZXNvbHZlX2R5bmFtaWNfdHlwZSAoc3RydWN0IHR5cGUgKnR5cGUsIENP UkVfQUREUiBhZGRyKQorQEAgLTE4NDYsNiArMTkyNyw4IEBAIHJlc29sdmVfZHluYW1pY190eXBl X2ludGVybmFsIChzdHJ1Y3QgdHlwZSAqdHlwZSwgQ09SRV9BRERSIGFkZHIsCiAgewogICAgc3Ry dWN0IHR5cGUgKnJlYWxfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHR5cGUpOwogICAgc3RydWN0IHR5 cGUgKnJlc29sdmVkX3R5cGUgPSB0eXBlOwogKyAgY29uc3Qgc3RydWN0IGR5bmFtaWNfcHJvcCAq cHJvcDsKICsgIENPUkVfQUREUiB2YWx1ZTsKICAKLSAgIGlmICghaXNfZHluYW1pY190eXBlIChy ZWFsX3R5cGUpKQorICAgaWYgKCFpc19keW5hbWljX3R5cGVfaW50ZXJuYWwgKHJlYWxfdHlwZSwg dG9wX2xldmVsKSkKICAgICAgcmV0dXJuIHR5cGU7Ci1AQCAtMTg1MywxMSArMTkzNywxMiBAQCBy ZXNvbHZlX2R5bmFtaWNfdHlwZSAoc3RydWN0IHR5cGUgKnR5cGUsIENPUkVfQUREUiBhZGRyKQor QEAgLTE4NzEsMTEgKzE5NTQsMTIgQEAgcmVzb2x2ZV9keW5hbWljX3R5cGVfaW50ZXJuYWwgKHN0 cnVjdCB0eXBlICp0eXBlLCBDT1JFX0FERFIgYWRkciwKICAJfQogIAogICAgICAgIGNhc2UgVFlQ RV9DT0RFX0FSUkFZOgpAQCAtMTE1Nyw3ICsxMTM1LDcgQEAgaW5kZXggZDBjMDAyZi4uM2Y1MmQ2 MSAxMDA2NDQKICAJYnJlYWs7CiAgCiAgICAgIGNhc2UgVFlQRV9DT0RFX1VOSU9OOgotQEAgLTE4 NjksNiArMTk1NCwyNSBAQCByZXNvbHZlX2R5bmFtaWNfdHlwZSAoc3RydWN0IHR5cGUgKnR5cGUs IENPUkVfQUREUiBhZGRyKQorQEAgLTE4ODcsNiArMTk3MSwyNSBAQCByZXNvbHZlX2R5bmFtaWNf dHlwZV9pbnRlcm5hbCAoc3RydWN0IHR5cGUgKnR5cGUsIENPUkVfQUREUiBhZGRyLAogICAgICAg IGJyZWFrOwogICAgICB9CiAgCkBAIC0xMTgzLDcgKzExNjEsNyBAQCBpbmRleCBkMGMwMDJmLi4z ZjUyZDYxIDEwMDY0NAogICAgcmV0dXJuIHJlc29sdmVkX3R5cGU7CiAgfQogIAotQEAgLTQwNzgs NiArNDE4MiwyNyBAQCBjb3B5X3R5cGVfcmVjdXJzaXZlIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmls ZSwKK0BAIC00MTA0LDYgKzQyMDcsMjcgQEAgY29weV90eXBlX3JlY3Vyc2l2ZSAoc3RydWN0IG9i amZpbGUgKm9iamZpbGUsCiAgICAgICAgKlRZUEVfUkFOR0VfREFUQSAobmV3X3R5cGUpID0gKlRZ UEVfUkFOR0VfREFUQSAodHlwZSk7CiAgICAgIH0KICAKQEAgLTEyMTEsNyArMTE4OSw3IEBAIGlu ZGV4IGQwYzAwMmYuLjNmNTJkNjEgMTAwNjQ0CiAgICAvKiBDb3B5IHBvaW50ZXJzIHRvIG90aGVy IHR5cGVzLiAgKi8KICAgIGlmIChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSkKICAgICAgVFlQRV9U QVJHRVRfVFlQRSAobmV3X3R5cGUpID0gCi1AQCAtNDEyNCw2ICs0MjQ5LDQ0IEBAIGNvcHlfdHlw ZSAoY29uc3Qgc3RydWN0IHR5cGUgKnR5cGUpCitAQCAtNDE1MCw2ICs0Mjc0LDQ0IEBAIGNvcHlf dHlwZSAoY29uc3Qgc3RydWN0IHR5cGUgKnR5cGUpCiAgICBtZW1jcHkgKFRZUEVfTUFJTl9UWVBF IChuZXdfdHlwZSksIFRZUEVfTUFJTl9UWVBFICh0eXBlKSwKICAJICBzaXplb2YgKHN0cnVjdCBt YWluX3R5cGUpKTsKICAKQEAgLTEyNTcsMTAgKzEyMzUsMTAgQEAgaW5kZXggZDBjMDAyZi4uM2Y1 MmQ2MSAxMDA2NDQKICB9CiAgDAogZGlmZiAtLWdpdCBhL2dkYi9nZGJ0eXBlcy5oIGIvZ2RiL2dk YnR5cGVzLmgKLWluZGV4IGJiNjM1MmQuLjU4MThmNzkgMTAwNjQ0CitpbmRleCA1MDA4ZWY0Li40 MzZlZGY4IDEwMDY0NAogLS0tIGEvZ2RiL2dkYnR5cGVzLmgKICsrKyBiL2dkYi9nZGJ0eXBlcy5o Ci1AQCAtNjcwLDYgKzY3MCwxMCBAQCBzdHJ1Y3QgbWFpbl90eXBlCitAQCAtNjY5LDYgKzY2OSwx MCBAQCBzdHJ1Y3QgbWFpbl90eXBlCiAgCiAgICAgICAgc3RydWN0IGR5bmFtaWNfcHJvcCBoaWdo OwogIApAQCAtMTI3MSw3ICsxMjQ5LDcgQEAgaW5kZXggYmI2MzUyZC4uNTgxOGY3OSAxMDA2NDQK ICAgICAgICAvKiBUcnVlIGlmIEhJR0ggcmFuZ2UgYm91bmQgY29udGFpbnMgdGhlIG51bWJlciBv ZiBlbGVtZW50cyBpbiB0aGUKICAJIHN1YnJhbmdlLiBUaGlzIGFmZmVjdHMgaG93IHRoZSBmaW5h bCBoaWdodCBib3VuZCBpcyBjb21wdXRlZC4gICovCiAgCi1AQCAtNzI1LDYgKzcyOSwyMyBAQCBz dHJ1Y3QgbWFpbl90eXBlCitAQCAtNzI0LDYgKzcyOCwyMyBAQCBzdHJ1Y3QgbWFpbl90eXBlCiAg CiAgICAgIHN0cnVjdCBmdW5jX3R5cGUgKmZ1bmNfc3R1ZmY7CiAgICB9IHR5cGVfc3BlY2lmaWM7 CkBAIC0xMjk1LDcgKzEyNzMsNyBAQCBpbmRleCBiYjYzNTJkLi41ODE4Zjc5IDEwMDY0NAogIH07 CiAgCiAgLyogKiBBIGBgc3RydWN0IHR5cGUnJyBkZXNjcmliZXMgYSBwYXJ0aWN1bGFyIGluc3Rh bmNlIG9mIGEgdHlwZSwgd2l0aAotQEAgLTEyMDMsNiArMTIyNCwzOSBAQCBleHRlcm4gdm9pZCBh bGxvY2F0ZV9nbmF0X2F1eF90eXBlIChzdHJ1Y3QgdHlwZSAqKTsKK0BAIC0xMjAyLDYgKzEyMjMs MzkgQEAgZXh0ZXJuIHZvaWQgYWxsb2NhdGVfZ25hdF9hdXhfdHlwZSAoc3RydWN0IHR5cGUgKik7 CiAgICBUWVBFX1JBTkdFX0RBVEEocmFuZ2VfdHlwZSktPmhpZ2gua2luZAogICNkZWZpbmUgVFlQ RV9MT1dfQk9VTkRfS0lORChyYW5nZV90eXBlKSBcCiAgICBUWVBFX1JBTkdFX0RBVEEocmFuZ2Vf dHlwZSktPmxvdy5raW5kCkBAIC0xMzM1LDcgKzEzMTMsNyBAQCBpbmRleCBiYjYzNTJkLi41ODE4 Zjc5IDEwMDY0NAogIAogIC8qIE1vdG8tc3BlY2lmaWMgc3R1ZmYgZm9yIEZPUlRSQU4gYXJyYXlz LiAgKi8KICAKLUBAIC0xMjEwLDYgKzEyNjQsOSBAQCBleHRlcm4gdm9pZCBhbGxvY2F0ZV9nbmF0 X2F1eF90eXBlIChzdHJ1Y3QgdHlwZSAqKTsKK0BAIC0xMjA5LDYgKzEyNjMsOSBAQCBleHRlcm4g dm9pZCBhbGxvY2F0ZV9nbmF0X2F1eF90eXBlIChzdHJ1Y3QgdHlwZSAqKTsKICAgICBUWVBFX0hJ R0hfQk9VTkRfVU5ERUZJTkVEKFRZUEVfSU5ERVhfVFlQRShhcnJheXR5cGUpKQogICNkZWZpbmUg VFlQRV9BUlJBWV9MT1dFUl9CT1VORF9JU19VTkRFRklORUQoYXJyYXl0eXBlKSBcCiAgICAgVFlQ RV9MT1dfQk9VTkRfVU5ERUZJTkVEKFRZUEVfSU5ERVhfVFlQRShhcnJheXR5cGUpKQpAQCAtMTM0 NSw3ICsxMzIzLDcgQEAgaW5kZXggYmI2MzUyZC4uNTgxOGY3OSAxMDA2NDQKICAKICAjZGVmaW5l IFRZUEVfQVJSQVlfVVBQRVJfQk9VTkRfVkFMVUUoYXJyYXl0eXBlKSBcCiAgICAgKFRZUEVfSElH SF9CT1VORChUWVBFX0lOREVYX1RZUEUoKGFycmF5dHlwZSkpKSkKLUBAIC0xNjc4LDYgKzE3MzUs NyBAQCBleHRlcm4gc3RydWN0IHR5cGUgKmNyZWF0ZV9hcnJheV90eXBlX3dpdGhfc3RyaWRlCitA QCAtMTY3Nyw2ICsxNzM0LDcgQEAgZXh0ZXJuIHN0cnVjdCB0eXBlICpjcmVhdGVfYXJyYXlfdHlw ZV93aXRoX3N0cmlkZQogIAogIGV4dGVybiBzdHJ1Y3QgdHlwZSAqY3JlYXRlX3JhbmdlX3R5cGUg KHN0cnVjdCB0eXBlICosIHN0cnVjdCB0eXBlICosCiAgCQkJCSAgICAgICBjb25zdCBzdHJ1Y3Qg ZHluYW1pY19wcm9wICosCkBAIC0yMDMwLDEwICsyMDA4LDEwIEBAIGluZGV4IDAwMDAwMDAuLjYw NTNjMTcKICtnZGJfdGVzdCAicHJpbnQgc2l6ZW9mKHB2bGEpIiAiID0gNDAwMCIgInByaW50IHNp emVvZiBhc3NvY2lhdGVkIHB2bGEiCiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9y dHJhbi92bGEtc3RyaWRlLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmlk ZS5leHAKIG5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi5lNzkxMTE1CitpbmRl eCAwMDAwMDAwLi4zNWY1ODVkCiAtLS0gL2Rldi9udWxsCiArKysgYi9nZGIvdGVzdHN1aXRlL2dk Yi5mb3J0cmFuL3ZsYS1zdHJpZGUuZXhwCi1AQCAtMCwwICsxLDUxIEBACitAQCAtMCwwICsxLDQ0 IEBACiArIyBDb3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsK ICsjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp dCBhbmQvb3IgbW9kaWZ5CkBAIC0yMDYxLDEzICsyMDM5LDYgQEAgaW5kZXggMDAwMDAwMC4uZTc5 MTExNQogKyAgICBjb250aW51ZQogK30KICsKLStnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5l X251bWJlciAicmV2ZXJzZS1lbGVtZW50cyJdCi0rZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQg InJldmVyc2UtZWxlbWVudHMiCi0rZ2RiX3Rlc3QgInByaW50IHB2bGEiICIgPSBcXFwoMTAsIDks IDgsIDcsIDYsIDUsIDQsIDMsIDIsIDFcXFwpIiBcCi0rICAicHJpbnQgcmV2ZXJzZS1lbGVtZW50 cyIKLStnZGJfdGVzdCAicHJpbnQgcHZsYSgxKSIgIiA9IDEwIiAicHJpbnQgZmlyc3QgcmV2ZXJz ZS1lbGVtZW50IgotK2dkYl90ZXN0ICJwcmludCBwdmxhKDEwKSIgIiA9IDEiICJwcmludCBsYXN0 IHJldmVyc2UtZWxlbWVudCIKLSsKICtnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJl ciAicmUtcmV2ZXJzZS1lbGVtZW50cyJdCiArZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInJl LXJldmVyc2UtZWxlbWVudHMiCiArZ2RiX3Rlc3QgInByaW50IHB2bGEiICIgPSBcXFwoMSwgMiwg MywgNCwgNSwgNiwgNywgOCwgOSwgMTBcXFwpIiBcCkBAIC0yMDg3LDcgKzIwNTgsNyBAQCBpbmRl eCAwMDAwMDAwLi5lNzkxMTE1CiArZ2RiX3Rlc3QgInByaW50IHB2bGEoMSkiICIgPSA1IiAicHJp bnQgb25lIHNpbmdsZS1lbGVtZW50IgogZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmZv cnRyYW4vdmxhLXN0cmlkZS5mOTAgYi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJp ZGUuZjkwCiBuZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMC4uMWY4Y2M1NQoraW5k ZXggMDAwMDAwMC4uNmFhNGYyYgogLS0tIC9kZXYvbnVsbAogKysrIGIvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZm9ydHJhbi92bGEtc3RyaWRlLmY5MAogQEAgLTAsMCArMSwzMCBAQApAQCAtMjExNSw3ICsy MDg2LDcgQEAgaW5kZXggMDAwMDAwMC4uMWY4Y2M1NQogKyAgdmxhID0gKC8gKEksIEkgPSAxLDEw KSAvKQogKwogKyAgcHZsYSA9PiB2bGEoMTA6MTotMSkKLSsgIHB2bGEgPT4gcHZsYSgxMDoxOi0x KSAhIHJldmVyc2UtZWxlbWVudHMKKysgIHB2bGEgPT4gcHZsYSgxMDoxOi0xKQogKyAgcHZsYSA9 PiB2bGEoMToxMDoyKSAgICEgcmUtcmV2ZXJzZS1lbGVtZW50cwogKyAgcHZsYSA9PiB2bGEoNTo0 Oi0yKSAgICEgb2RkLWVsZW1lbnRzCiArCkBAIC0zMTU3LDcgKzMxMjgsNyBAQCBpbmRleCA2Njk4 MjQ3Li43YTQxNWNmIDEwMDY0NAogKwogICNlbmRpZgogZGlmZiAtLWdpdCBhL2dkYi92YWx1ZS5j IGIvZ2RiL3ZhbHVlLmMKLWluZGV4IDU1NzA1NmYuLjRlOTFhNDMgMTAwNjQ0CitpbmRleCAyOWFi ZTVmLi41ZWZlYTg5IDEwMDY0NAogLS0tIGEvZ2RiL3ZhbHVlLmMKICsrKyBiL2dkYi92YWx1ZS5j CiBAQCAtNDMsNiArNDMsNyBAQApAQCAtMzE2OCw3ICszMTM5LDcgQEAgaW5kZXggNTU3MDU2Zi4u NGU5MWE0MyAxMDA2NDQKICAKICAvKiBQcm90b3R5cGVzIGZvciBleHBvcnRlZCBmdW5jdGlvbnMu ICAqLwogIAotQEAgLTE2NDYsNiArMTY0NywyNSBAQCBzZXRfdmFsdWVfY29tcG9uZW50X2xvY2F0 aW9uIChzdHJ1Y3QgdmFsdWUgKmNvbXBvbmVudCwKK0BAIC0xNjI3LDYgKzE2MjgsMjUgQEAgc2V0 X3ZhbHVlX2NvbXBvbmVudF9sb2NhdGlvbiAoc3RydWN0IHZhbHVlICpjb21wb25lbnQsCiAgICAg ICAgaWYgKGZ1bmNzLT5jb3B5X2Nsb3N1cmUpCiAgICAgICAgICBjb21wb25lbnQtPmxvY2F0aW9u LmNvbXB1dGVkLmNsb3N1cmUgPSBmdW5jcy0+Y29weV9jbG9zdXJlICh3aG9sZSk7CiAgICAgIH0K QEAgLTMxOTQsNyArMzE2NSw3IEBAIGluZGV4IDU1NzA1NmYuLjRlOTFhNDMgMTAwNjQ0CiAgfQog IAogIAwKLUBAIC0yOTUwLDEzICsyOTcwLDIyIEBAIHZhbHVlX3ByaW1pdGl2ZV9maWVsZCAoc3Ry dWN0IHZhbHVlICphcmcxLCBpbnQgb2Zmc2V0LAorQEAgLTI5MzEsMTMgKzI5NTEsMjIgQEAgdmFs dWVfcHJpbWl0aXZlX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKmFyZzEsIGludCBvZmZzZXQsCiAgCXYg PSBhbGxvY2F0ZV92YWx1ZV9sYXp5ICh0eXBlKTsKICAgICAgICBlbHNlCiAgCXsKQEAgLTMyMjMs NyArMzE5NCw3IEBAIGluZGV4IDU1NzA1NmYuLjRlOTFhNDMgMTAwNjQ0CiAgICAgIH0KICAgIHNl dF92YWx1ZV9jb21wb25lbnRfbG9jYXRpb24gKHYsIGFyZzEpOwogICAgVkFMVUVfUkVHTlVNICh2 KSA9IFZBTFVFX1JFR05VTSAoYXJnMSk7Ci1AQCAtMzUzOSw3ICszNTY4LDggQEAgcmVhZGp1c3Rf aW5kaXJlY3RfdmFsdWVfdHlwZSAoc3RydWN0IHZhbHVlICp2YWx1ZSwgc3RydWN0IHR5cGUgKmVu Y190eXBlLAorQEAgLTM1MjAsNyArMzU0OSw4IEBAIHJlYWRqdXN0X2luZGlyZWN0X3ZhbHVlX3R5 cGUgKHN0cnVjdCB2YWx1ZSAqdmFsdWUsIHN0cnVjdCB0eXBlICplbmNfdHlwZSwKICAJCQkgICAg ICBzdHJ1Y3QgdmFsdWUgKm9yaWdpbmFsX3ZhbHVlKQogIHsKICAgIC8qIFJlLWFkanVzdCB0eXBl LiAgKi8KQEAgLTMyMzMsNyArMzIwNCw3IEBAIGluZGV4IDU1NzA1NmYuLjRlOTFhNDMgMTAwNjQ0 CiAgCiAgICAvKiBBZGQgZW1iZWRkaW5nIGluZm8uICAqLwogICAgc2V0X3ZhbHVlX2VuY2xvc2lu Z190eXBlICh2YWx1ZSwgZW5jX3R5cGUpOwotQEAgLTM1NTYsNiArMzU4NiwxMiBAQCBjb2VyY2Vf cmVmIChzdHJ1Y3QgdmFsdWUgKmFyZykKK0BAIC0zNTM3LDYgKzM1NjcsMTIgQEAgY29lcmNlX3Jl ZiAoc3RydWN0IHZhbHVlICphcmcpCiAgICBzdHJ1Y3QgdmFsdWUgKnJldHZhbDsKICAgIHN0cnVj dCB0eXBlICplbmNfdHlwZTsKICAKQEAgLTMyNDYsNyArMzIxNyw3IEBAIGluZGV4IDU1NzA1NmYu LjRlOTFhNDMgMTAwNjQ0CiAgICByZXR2YWwgPSBjb2VyY2VfcmVmX2lmX2NvbXB1dGVkIChhcmcp OwogICAgaWYgKHJldHZhbCkKICAgICAgcmV0dXJuIHJldHZhbDsKLUBAIC0zNjk5LDggKzM3MzUs MTQgQEAgdmFsdWVfZmV0Y2hfbGF6eSAoc3RydWN0IHZhbHVlICp2YWwpCitAQCAtMzY4MCw4ICsz NzE2LDE0IEBAIHZhbHVlX2ZldGNoX2xhenkgKHN0cnVjdCB2YWx1ZSAqdmFsKQogICAgICB9CiAg ICBlbHNlIGlmIChWQUxVRV9MVkFMICh2YWwpID09IGx2YWxfbWVtb3J5KQogICAgICB7CgpkaWZm IC0tZ2l0IGEvZ2RiLnNwZWMgYi9nZGIuc3BlYwppbmRleCA3OGU2YjkyLi43NWI5NDE3IDEwMDY0 NAotLS0gYS9nZGIuc3BlYworKysgYi9nZGIuc3BlYwpAQCAtMTgsMTQgKzE4LDE0IEBAIFN1bW1h cnk6IEEgR05VIHNvdXJjZS1sZXZlbCBkZWJ1Z2dlciBmb3IgQywgQysrLCBGb3J0cmFuLCBHbyBh bmQgb3RoZXIgbGFuZ3VhZ2VzCiBOYW1lOiAlez9zY2xfcHJlZml4fWdkYgogCiAjIEZyZWV6ZSBp dCB3aGVuIEdEQiBnZXRzIGJyYW5jaGVkCi0lZ2xvYmFsIHNuYXBzcmMgICAgMjAxNDA3MTEKKyVn bG9iYWwgc25hcHNyYyAgICAyMDE0MDcyMQogIyBTZWUgdGltZXN0YW1wIG9mIHNvdXJjZSBnbnVs aWIgaW5zdGFsbGVkIGludG8gZ2RiL2dudWxpYi8gLgogJWdsb2JhbCBzbmFwZ251bGliIDIwMTIx MjEzCi1WZXJzaW9uOiA3LjcuOTAuJXtzbmFwc3JjfQorVmVyc2lvbjogNy43LjkxLiV7c25hcHNy Y30KIAogIyBUaGUgcmVsZWFzZSBhbHdheXMgY29udGFpbnMgYSBsZWFkaW5nIHJlc2VydmVkIG51 bWJlciwgc3RhcnQgaXQgYXQgMS4KICMgYHVwc3RyZWFtJyBpcyBub3QgYSBwYXJ0IG9mIGBuYW1l JyB0byBzdGF5IGZ1bGx5IHJwbSBkZXBlbmRlbmNpZXMgY29tcGF0aWJsZSBmb3IgdGhlIHRlc3Rp bmcuCi1SZWxlYXNlOiAxMSV7P2Rpc3R9CitSZWxlYXNlOiAxMiV7P2Rpc3R9CiAKIExpY2Vuc2U6 IEdQTHYzKyBhbmQgR1BMdjMrIHdpdGggZXhjZXB0aW9ucyBhbmQgR1BMdjIrIGFuZCBHUEx2Misg d2l0aCBleGNlcHRpb25zIGFuZCBHUEwrIGFuZCBMR1BMdjIrIGFuZCBCU0QgYW5kIFB1YmxpYyBE b21haW4gYW5kIEdGREwKIEdyb3VwOiBEZXZlbG9wbWVudC9EZWJ1Z2dlcnMKQEAgLTUxNiwxMiAr NTE2LDE3IEBAIFBhdGNoOTE0OiBnZGItcmVhZGxpbmUtNi4zLjUucGF0Y2gKIFBhdGNoOTE4OiBn ZGItYnRyb2J1c3QucGF0Y2gKIAogIyBGaXggY3Jhc2ggb24gb3B0aW1pemVkLW91dCBlbnRyeSBk YXRhIHZhbHVlcyAoQlogMTExMTkxMCkuCi1QYXRjaDkxOTogZ2RiLWVudHJ5ZGF0YW9wdGltaXpl ZG91dC5wYXRjaAorUGF0Y2g5MjI6IGdkYi1lbnRyeXZhbC1jcmFzaC0xb2YzLnBhdGNoCitQYXRj aDkyMzogZ2RiLWVudHJ5dmFsLWNyYXNoLTJvZjMucGF0Y2gKK1BhdGNoOTE5OiBnZGItZW50cnl2 YWwtY3Jhc2gtM29mMy5wYXRjaAogCiAjIFB5dGhvbiBjb21wbGV0aW9uIHcvb3ZlcnJpZGVuIGNv bXBsZXRlciAoU2VyZ2lvIER1cmlnYW4gSnVuaW9yLCBCWiAxMDc1MTk5KS4KIFBhdGNoOTIwOiBn ZGItcHl0aG9uLWNvbXBsZXRlci0xb2YyLnBhdGNoCiBQYXRjaDkyMTogZ2RiLXB5dGhvbi1jb21w bGV0ZXItMm9mMi5wYXRjaAogCisjIFt0ZXN0c3VpdGVdIEZpeCBwYWdpbmF0ZS0qLmV4cCByYWNl IGZvciAicmVhZDEiLgorUGF0Y2g5MjQ6IGdkYi10ZXN0c3VpdGUtcGFnaW5hdGlvbi1yZWFkMS5w YXRjaAorCiAlaWYgMCV7IT9yaGVsOjF9IHx8IDAlez9yaGVsfSA+IDYKICMgUkxfU1RBVEVfRkVE T1JBX0dEQiB3b3VsZCBub3QgYmUgZm91bmQgZm9yOgogIyBQYXRjaDY0MjogZ2RiLXJlYWRsaW5l NjItYXNrLW1vcmUtcmgucGF0Y2gKQEAgLTc5OCw5ICs4MDMsMTIgQEAgZmluZCAtbmFtZSAiKi5p bmZvKiJ8eGFyZ3Mgcm0gLWYKICVwYXRjaDg4NyAtcDEKICVwYXRjaDkxNCAtcDEKICVwYXRjaDkx OCAtcDEKLSVwYXRjaDkxOSAtcDEKICVwYXRjaDkyMCAtcDEKICVwYXRjaDkyMSAtcDEKKyVwYXRj aDkyMiAtcDEKKyVwYXRjaDkyMyAtcDEKKyVwYXRjaDkxOSAtcDEKKyVwYXRjaDkyNCAtcDEKIAog JXBhdGNoODQ4IC1wMQogJWlmIDAleyE/ZWw2OjF9CkBAIC0xMjkxLDYgKzEyOTksMTIgQEAgdGhl bgogZmkKIAogJWNoYW5nZWxvZworKiBUdWUgSnVsIDIyIDIwMTQgSmFuIEtyYXRvY2h2aWwgPGph bi5rcmF0b2NodmlsQHJlZGhhdC5jb20+IC0gNy43LjkxLjIwMTQwNzIxLTEyLmZjMjEKKy0gUmVi YXNlIHRvIEZTRiBHREIgNy43LjkxLjIwMTQwNzIxIChwcmUtNy44IHNuYXBzaG90KS4KKy0gUmVi YXNlIHRoZSBJbnRlbCBWTEEgcGF0Y2hzZXQuCistIE5ldyBmaXggb2YgdGhlIG9wdGltaXplZC1v dXQgZW50cnkgZGF0YSB2YWx1ZXMgY3Jhc2ggKEJaIDExMTE5MTApLgorLSBbdGVzdHN1aXRlXSBG aXggcGFnaW5hdGUtKi5leHAgcmFjZSBmb3IgInJlYWQxIi4KKwogKiBGcmkgSnVsIDExIDIwMTQg SmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+IC0gNy43LjkwLjIwMTQw NzExLTExLmZjMjEKIC0gRml4IHJlZ3Jlc3Npb24jMiBvZiB0aGUgb3B0aW1pemVkLW91dCBlbnRy eSBkYXRhIHZhbHVlcyBmaXggKG9mIEJaIDExMTE5MTApLgogLSBSZWJhc2UgdG8gRlNGIEdEQiA3 LjcuOTAuMjAxNDA3MTEgKHByZS03Ljggc25hcHNob3QpLgoKZGlmZiAtLWdpdCBhL3NvdXJjZXMg Yi9zb3VyY2VzCmluZGV4IGJiOTQxYzEuLjAyNGM4NDUgMTAwNjQ0Ci0tLSBhL3NvdXJjZXMKKysr IGIvc291cmNlcwpAQCAtMSwyICsxLDIgQEAKIDQ5ODEzMDdhYTk2MTliYmVjNWI3MzI2MWU0ZTQx YzhkICBnZGItbGlic3RkYysrLXYzLXB5dGhvbi1yMTU1OTc4LnRhci5iejIKLTY5MTJhM2EyNDNh NjZhNWZhMDRkYzM4YWFkM2U4ZTgwICBnZGItNy43LjkwLjIwMTQwNzExLnRhci5iejIKK2U0ODJh ODQwZTBiZjhlOTI4MjY4YzcyY2IyMjQxNjQ2ICBnZGItNy43LjkxLjIwMTQwNzIxLnRhci5iejIK