From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-0.2 required=5.0 tests=ALL_TRUSTED, DKIM_ADSP_NXDOMAIN,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.4 Received: (qmail 23409 invoked from network); 30 May 2022 14:18:17 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 30 May 2022 14:18:17 -0000 Content-Type: multipart/mixed; boundary="===============5244305636702513573==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_New_packages=3A_highway=2C_libjxl=2C_qt-jpegxl-image-plugin?= To: ml@inbox.vuxu.org From: joshuakraemer Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Mon, 30 May 2022 16:18:16 +0200 List-Id: Message-ID: <20220530141816.O8Zc8qG4bdKyVru_useeFuVaWiEQiDoinAIC6CsBTls@z> GitHub notification mails are now in MIME to allow UTF8. --===============5244305636702513573== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgam9zaHVha3JhZW1lciBhZ2FpbnN0 IG1hc3RlciBvbiB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5j b20vam9zaHVha3JhZW1lci92b2lkLXBhY2thZ2VzIGpwZWcteGwKaHR0cHM6Ly9naXRodWIuY29t L3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzMxMzk3CgpOZXcgcGFja2FnZXM6IGhpZ2h3 YXksIGxpYmp4bCwgcXQtanBlZ3hsLWltYWdlLXBsdWdpbgojIyMjIEdlbmVyYWwNCi0gW3hdIFRo aXMgaXMgYSBuZXcgcGFja2FnZSBhbmQgaXQgY29uZm9ybXMgdG8gdGhlIFtxdWFsaXR5IHJlcXVp cmVtZW50c10oaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9ibG9i L21hc3Rlci9NYW51YWwubWQjcXVhbGl0eS1yZXF1aXJlbWVudHMpDQoNCiMjIyMgSGF2ZSB0aGUg cmVzdWx0cyBvZiB0aGUgcHJvcG9zZWQgY2hhbmdlcyBiZWVuIHRlc3RlZD8NCi0gW3hdIEkgdXNl IHRoZSBwYWNrYWdlcyBhZmZlY3RlZCBieSB0aGUgcHJvcG9zZWQgY2hhbmdlcyBvbiBhIHJlZ3Vs YXIgYmFzaXMgYW5kIGNvbmZpcm0gdGhpcyBQUiB3b3JrcyBmb3IgbWUNCg0KVGhlc2UgcGFja2Fn ZXMgcHJvdmlkZSBzdXBwb3J0IGZvciB0aGUgSlBFRyBYTCBpbWFnZSBmb3JtYXQuCgpBIHBhdGNo IGZpbGUgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1 bGwvMzEzOTcucGF0Y2ggaXMgYXR0YWNoZWQ= --===============5244305636702513573== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-jpeg-xl-31397.patch" RnJvbSAzNzFhNTExMzI1MjYyMmRmZGM1NmI5NTA2MDFhZWIzNmY5NjE1NmM0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Sm9zaHVhPTIwS3I9QzM9QTRtZXI/PSA8am9z aHVhQGtyYWVtZXIubGluaz4KRGF0ZTogV2VkLCA5IEp1biAyMDIxIDAwOjQ0OjM3ICswMjAwClN1 YmplY3Q6IFtQQVRDSCAxLzNdIE5ldyBwYWNrYWdlOiBoaWdod2F5LTAuMTYuMAoKLS0tCiBzcmNw a2dzL2hpZ2h3YXkvdGVtcGxhdGUgfCAxNyArKysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5n ZWQsIDE3IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2hpZ2h3YXkv dGVtcGxhdGUKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2hpZ2h3YXkvdGVtcGxhdGUgYi9zcmNwa2dz L2hpZ2h3YXkvdGVtcGxhdGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw Li5hNWMxYmYyODRjNjgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2hpZ2h3YXkvdGVtcGxh dGUKQEAgLTAsMCArMSwxNyBAQAorIyBUZW1wbGF0ZSBmaWxlIGZvciAnaGlnaHdheScKK3BrZ25h bWU9aGlnaHdheQordmVyc2lvbj0wLjE2LjAKK3JldmlzaW9uPTEKK2J1aWxkX3N0eWxlPWNtYWtl Citjb25maWd1cmVfYXJncz0iLURIV1lfU1lTVEVNX0dURVNUPU9OIgorY2hlY2tkZXBlbmRzPSJn dGVzdC1kZXZlbCIKK3Nob3J0X2Rlc2M9IkMrKyBsaWJyYXJ5IHByb3ZpZGluZyBwb3J0YWJsZSBT SU1EL3ZlY3RvciBpbnRyaW5zaWNzIgorbWFpbnRhaW5lcj0iSm9zaHVhIEtyw6RtZXIgPGpvc2h1 YUBrcmFlbWVyLmxpbms+IgorbGljZW5zZT0iQXBhY2hlLTIuMCIKK2hvbWVwYWdlPSJodHRwczov L2dpdGh1Yi5jb20vZ29vZ2xlL2hpZ2h3YXkiCitkaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0aHViLmNv bS9nb29nbGUvaGlnaHdheS9hcmNoaXZlLyR7dmVyc2lvbn0udGFyLmd6IgorY2hlY2tzdW09NzQ2 Yzk1Nzg0NDZiZTZjNTI4NmU4ODQ2YzVmMGQ0MTE4YzBjMWYwNDIxOWM0MDFhYmFkY2I4YTVmMjA1 MTg5MworCitpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KKwljb25maWd1cmVfYXJncys9IiAt REJVSUxEX1RFU1RJTkc9T0ZGIgorZmkKCkZyb20gMWY3NDU3NGEzNGExODM3NjBiNjIwOGJjYWU2 YmUzYzJiOTk5ZTllMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xP0pv c2h1YT0yMEtyPUMzPUE0bWVyPz0gPGpvc2h1YUBrcmFlbWVyLmxpbms+CkRhdGU6IFdlZCwgOSBK dW4gMjAyMSAwMTo1MjoyOSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMi8zXSBOZXcgcGFja2FnZTog bGlianhsLTAuNi4xCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgMiArCiBzcmNwa2dzL2xpYmp4bC1kZXZlbCAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDEgKwogc3JjcGtncy9saWJqeGwtcGx1Z2lucyAgICAgICAgICAgICAgICAgICAg ICAgIHwgICAxICsKIHNyY3BrZ3MvbGlianhsLXRvb2xzICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgMSArCiAuLi4vZGVwcmVjYXRlZF9oaWdod2F5X2Z1bmN0aW9ucy5wYXRjaCAgICAgICAg fCA0NTkgKysrKysrKysrKysrKysrKysrCiBzcmNwa2dzL2xpYmp4bC90ZW1wbGF0ZSAgICAgICAg ICAgICAgICAgICAgICAgfCAgNzYgKysrCiA2IGZpbGVzIGNoYW5nZWQsIDU0MCBpbnNlcnRpb25z KCspCiBjcmVhdGUgbW9kZSAxMjAwMDAgc3JjcGtncy9saWJqeGwtZGV2ZWwKIGNyZWF0ZSBtb2Rl IDEyMDAwMCBzcmNwa2dzL2xpYmp4bC1wbHVnaW5zCiBjcmVhdGUgbW9kZSAxMjAwMDAgc3JjcGtn cy9saWJqeGwtdG9vbHMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xpYmp4bC9wYXRjaGVz L2RlcHJlY2F0ZWRfaGlnaHdheV9mdW5jdGlvbnMucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL2xpYmp4bC90ZW1wbGF0ZQoKZGlmZiAtLWdpdCBhL2NvbW1vbi9zaGxpYnMgYi9jb21t b24vc2hsaWJzCmluZGV4IDhlZDdjOTQ4ZWVkMC4uMjNjNzY5MzY3ODQxIDEwMDY0NAotLS0gYS9j b21tb24vc2hsaWJzCisrKyBiL2NvbW1vbi9zaGxpYnMKQEAgLTQxNzEsMyArNDE3MSw1IEBAIGxp YlRNVkEuc28gcm9vdC02LjI0LjA2XzEKIGxpYk1hdGhDb3JlLnNvIHJvb3QtNi4yNC4wNl8xCiBs aWJsb3dkb3duLnNvIGxvd2Rvd24tMC4xMS4yXzEKIGxpYmpheWxpbmsuc28uMCBsaWJqYXlsaW5r LTAuMi4wXzEKK2xpYmp4bC5zby4wLjYgbGlianhsLTAuNi4xXzEKK2xpYmp4bF90aHJlYWRzLnNv LjAuNiBsaWJqeGwtMC42LjFfMQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJqeGwtZGV2ZWwgYi9z cmNwa2dzL2xpYmp4bC1kZXZlbApuZXcgZmlsZSBtb2RlIDEyMDAwMAppbmRleCAwMDAwMDAwMDAw MDAuLmRkYzFhYmY4MjdkOQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGlianhsLWRldmVs CkBAIC0wLDAgKzEgQEAKK2xpYmp4bApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvbGlianhsLXBsdWdpbnMgYi9zcmNwa2dzL2xpYmp4bC1wbHVnaW5zCm5l dyBmaWxlIG1vZGUgMTIwMDAwCmluZGV4IDAwMDAwMDAwMDAwMC4uZGRjMWFiZjgyN2Q5Ci0tLSAv ZGV2L251bGwKKysrIGIvc3JjcGtncy9saWJqeGwtcGx1Z2lucwpAQCAtMCwwICsxIEBACitsaWJq eGwKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYmp4 bC10b29scyBiL3NyY3BrZ3MvbGlianhsLXRvb2xzCm5ldyBmaWxlIG1vZGUgMTIwMDAwCmluZGV4 IDAwMDAwMDAwMDAwMC4uZGRjMWFiZjgyN2Q5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9s aWJqeGwtdG9vbHMKQEAgLTAsMCArMSBAQAorbGlianhsClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg ZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJqeGwvcGF0Y2hlcy9kZXByZWNhdGVkX2hpZ2h3 YXlfZnVuY3Rpb25zLnBhdGNoIGIvc3JjcGtncy9saWJqeGwvcGF0Y2hlcy9kZXByZWNhdGVkX2hp Z2h3YXlfZnVuY3Rpb25zLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwMC4uYTc3NWViNWE3YzU2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9saWJqeGwvcGF0 Y2hlcy9kZXByZWNhdGVkX2hpZ2h3YXlfZnVuY3Rpb25zLnBhdGNoCkBAIC0wLDAgKzEsNDU5IEBA CitkaWZmIC0tZ2l0IGEvbGliL2p4bC9kZWNfcmVjb25zdHJ1Y3QuY2MgYi9saWIvanhsL2RlY19y ZWNvbnN0cnVjdC5jYworaW5kZXggYTFiYWVmNC4uMDgyNzlmOCAxMDA2NDQKKy0tLSBhL2xpYi9q eGwvZGVjX3JlY29uc3RydWN0LmNjCisrKysgYi9saWIvanhsL2RlY19yZWNvbnN0cnVjdC5jYwor QEAgLTM1Nyw4ICszNTcsOCBAQCB2b2lkIERvWUNiQ3JVcHNhbXBsaW5nKHNpemVfdCBocywgc2l6 ZV90IHZzLCBJbWFnZUYqIHBsYW5lX2luLCBjb25zdCBSZWN0JiByZWN0LAorICAgICAgICAgU3Rv cmUobGVmdCwgZCwgb3V0ICsgeCk7CisgICAgICAgICBTdG9yZShyaWdodCwgZCwgb3V0ICsgeCAr IDEpOworICNlbHNlCistICAgICAgICBTdG9yZShJbnRlcmxlYXZlTG93ZXIobGVmdCwgcmlnaHQp LCBkLCBvdXQgKyB4KTsKKy0gICAgICAgIFN0b3JlKEludGVybGVhdmVVcHBlcihsZWZ0LCByaWdo dCksIGQsIG91dCArIHggKyBMYW5lcyhkKSk7CisrICAgICAgICBTdG9yZShJbnRlcmxlYXZlTG93 ZXIoZCwgbGVmdCwgcmlnaHQpLCBkLCBvdXQgKyB4KTsKKysgICAgICAgIFN0b3JlKEludGVybGVh dmVVcHBlcihkLCBsZWZ0LCByaWdodCksIGQsIG91dCArIHggKyBMYW5lcyhkKSk7CisgI2VuZGlm CisgICAgICAgfQorICAgICB9CitkaWZmIC0tZ2l0IGEvbGliL2p4bC9kZWNfdXBzYW1wbGUuY2Mg Yi9saWIvanhsL2RlY191cHNhbXBsZS5jYworaW5kZXggNzI3N2U0Zi4uM2NiM2YzNiAxMDA2NDQK Ky0tLSBhL2xpYi9qeGwvZGVjX3Vwc2FtcGxlLmNjCisrKysgYi9saWIvanhsL2RlY191cHNhbXBs ZS5jYworQEAgLTE3Niw4ICsxNzYsOCBAQCB2b2lkIFVwc2FtcGxlKGNvbnN0IEltYWdlRiYgc3Jj LCBjb25zdCBSZWN0JiBzcmNfcmVjdCwgSW1hZ2VGKiBkc3QsCisgICAgICAgICBtaW4gPSBNaW4o TG9hZFUoZGYsIHJhd19taW5fcm93ICsgc3ggKyBmeCksIG1pbik7CisgICAgICAgICBtYXggPSBN YXgoTG9hZFUoZGYsIHJhd19tYXhfcm93ICsgc3ggKyBmeCksIG1heCk7CisgICAgICAgfQorLSAg ICAgIG1pbiA9IE1pbk9mTGFuZXMobWluKTsKKy0gICAgICBtYXggPSBNYXhPZkxhbmVzKG1heCk7 CisrICAgICAgbWluID0gTWluT2ZMYW5lcyhkZiwgbWluKTsKKysgICAgICBtYXggPSBNYXhPZkxh bmVzKGRmLCBtYXgpOworICAgICAgIGZvciAoc2l6ZV90IGx4ID0gMDsgbHggPCBOOyBseCArPSBW KSB7CisgICAgICAgICBTdG9yZVUobWluLCBkZiwgbWluX3JvdyArIE4gKiBzeCArIGx4KTsKKyAg ICAgICAgIFN0b3JlVShtYXgsIGRmLCBtYXhfcm93ICsgTiAqIHN4ICsgbHgpOworZGlmZiAtLWdp dCBhL2xpYi9qeGwvZW5jX2FjX3N0cmF0ZWd5LmNjIGIvbGliL2p4bC9lbmNfYWNfc3RyYXRlZ3ku Y2MKK2luZGV4IGJjNTA0NjUuLmMwZWQ2OGYgMTAwNjQ0CistLS0gYS9saWIvanhsL2VuY19hY19z dHJhdGVneS5jYworKysrIGIvbGliL2p4bC9lbmNfYWNfc3RyYXRlZ3kuY2MKK0BAIC00MjksOCAr NDI5LDggQEAgZmxvYXQgRXN0aW1hdGVFbnRyb3B5KGNvbnN0IEFjU3RyYXRlZ3kmIGFjcywgc2l6 ZV90IHgsIHNpemVfdCB5LAorICAgICB9CisgICAgIGVudHJvcHlfdiArPSBuemVyb3NfdiAqIGNv c3QxOworIAorLSAgICBlbnRyb3B5ICs9IEdldExhbmUoU3VtT2ZMYW5lcyhlbnRyb3B5X3YpKTsK Ky0gICAgc2l6ZV90IG51bV9uemVyb3MgPSBHZXRMYW5lKFN1bU9mTGFuZXMobnplcm9zX3YpKTsK KysgICAgZW50cm9weSArPSBHZXRMYW5lKFN1bU9mTGFuZXMoZGYsIGVudHJvcHlfdikpOworKyAg ICBzaXplX3QgbnVtX256ZXJvcyA9IEdldExhbmUoU3VtT2ZMYW5lcyhkZiwgbnplcm9zX3YpKTsK KyAgICAgLy8gQWRkICNiaXQgb2YgbnVtX25vbnplcm9zLCBhcyBhbiBlc3RpbWF0ZSBvZiB0aGUg Y29zdCBmb3IgZW5jb2RpbmcgdGhlCisgICAgIC8vIG51bWJlciBvZiBub24temVyb3Mgb2YgdGhl IGJsb2NrLgorICAgICBzaXplX3QgbmJpdHMgPSBDZWlsTG9nMk5vbnplcm8obnVtX256ZXJvcyAr IDEpICsgMTsKK0BAIC00NDEsOSArNDQxLDkgQEAgZmxvYXQgRXN0aW1hdGVFbnRyb3B5KGNvbnN0 IEFjU3RyYXRlZ3kmIGFjcywgc2l6ZV90IHgsIHNpemVfdCB5LAorICAgZmxvYXQgcmV0ID0KKyAg ICAgICBlbnRyb3B5ICsKKyAgICAgICBtYXNraW5nICoKKy0gICAgICAgICAgKChjb25maWcuaW5m b19sb3NzX211bHRpcGxpZXIgKiBHZXRMYW5lKFN1bU9mTGFuZXMoaW5mb19sb3NzKSkpICsKKysg ICAgICAgICAgKChjb25maWcuaW5mb19sb3NzX211bHRpcGxpZXIgKiBHZXRMYW5lKFN1bU9mTGFu ZXMoZGYsIGluZm9fbG9zcykpKSArCisgICAgICAgICAgICAoY29uZmlnLmluZm9fbG9zc19tdWx0 aXBsaWVyMiAqCistICAgICAgICAgICAgc3FydChudW1fYmxvY2tzICogR2V0TGFuZShTdW1PZkxh bmVzKGluZm9fbG9zczIpKSkpKTsKKysgICAgICAgICAgICBzcXJ0KG51bV9ibG9ja3MgKiBHZXRM YW5lKFN1bU9mTGFuZXMoZGYsIGluZm9fbG9zczIpKSkpKTsKKyAgIHJldHVybiByZXQ7CisgfQor IAorZGlmZiAtLWdpdCBhL2xpYi9qeGwvZW5jX2FkYXB0aXZlX3F1YW50aXphdGlvbi5jYyBiL2xp Yi9qeGwvZW5jX2FkYXB0aXZlX3F1YW50aXphdGlvbi5jYworaW5kZXggZjUzMzkzZi4uMjRmM2Q1 MyAxMDA2NDQKKy0tLSBhL2xpYi9qeGwvZW5jX2FkYXB0aXZlX3F1YW50aXphdGlvbi5jYworKysr IGIvbGliL2p4bC9lbmNfYWRhcHRpdmVfcXVhbnRpemF0aW9uLmNjCitAQCAtMTg5LDcgKzE4OSw3 IEBAIFYgR2FtbWFNb2R1bGF0aW9uKGNvbnN0IEQgZCwgY29uc3Qgc2l6ZV90IHgsIGNvbnN0IHNp emVfdCB5LAorICAgICAgIG92ZXJhbGxfcmF0aW8gKz0gYXZnX3JhdGlvOworICAgICB9CisgICB9 CistICBvdmVyYWxsX3JhdGlvID0gU3VtT2ZMYW5lcyhvdmVyYWxsX3JhdGlvKTsKKysgIG92ZXJh bGxfcmF0aW8gPSBTdW1PZkxhbmVzKGQsIG92ZXJhbGxfcmF0aW8pOworICAgb3ZlcmFsbF9yYXRp byAqPSBTZXQoZCwgMS4wZiAvIDY0KTsKKyAgIC8vIGlkZWFsbHkgLTEuMCwgYnV0IGxpa2VseSBv cHRpbWFsIGNvcnJlY3Rpb24gYWRkcyBzb21lIGVudHJvcHksIHNvIHNsaWdodGx5CisgICAvLyBs ZXNzIHRoYW4gdGhhdC4KK0BAIC0yNDYsMTIgKzI0NiwxMiBAQCBWIENvbG9yTW9kdWxhdGlvbihj b25zdCBEIGQsIGNvbnN0IHNpemVfdCB4LCBjb25zdCBzaXplX3QgeSwKKyAgIC8vIGJsdWUgd2Ug Y29uc2lkZXIgYXMgaWYgaXQgd2FzIGZ1bGx5IHJlZCBvciBibHVlLgorICAgc3RhdGljIGNvbnN0 IGZsb2F0IHJhdGlvID0gMzAuNjEwNjE1NzgyMTQyNzM3ZjsgIC8vIG91dCBvZiA2NCBwaXhlbHMu CisgCistICBhdXRvIG92ZXJhbGxfcmVkX2NvdmVyYWdlID0gU3VtT2ZMYW5lcyhyZWRfY292ZXJh Z2UpOworKyAgYXV0byBvdmVyYWxsX3JlZF9jb3ZlcmFnZSA9IFN1bU9mTGFuZXMoZCwgcmVkX2Nv dmVyYWdlKTsKKyAgIG92ZXJhbGxfcmVkX2NvdmVyYWdlID0KKyAgICAgICBNaW4ob3ZlcmFsbF9y ZWRfY292ZXJhZ2UsIFNldChkLCByYXRpbyAqIGtSZWRSYW1wTGVuZ3RoKSk7CisgICBvdmVyYWxs X3JlZF9jb3ZlcmFnZSAqPSBTZXQoZCwgcmVkX3N0cmVuZ3RoIC8gcmF0aW8pOworIAorLSAgYXV0 byBvdmVyYWxsX2JsdWVfY292ZXJhZ2UgPSBTdW1PZkxhbmVzKGJsdWVfY292ZXJhZ2UpOworKyAg YXV0byBvdmVyYWxsX2JsdWVfY292ZXJhZ2UgPSBTdW1PZkxhbmVzKGQsIGJsdWVfY292ZXJhZ2Up OworICAgb3ZlcmFsbF9ibHVlX2NvdmVyYWdlID0KKyAgICAgICBNaW4ob3ZlcmFsbF9ibHVlX2Nv dmVyYWdlLCBTZXQoZCwgcmF0aW8gKiBrQmx1ZVJhbXBMZW5ndGgpKTsKKyAgIG92ZXJhbGxfYmx1 ZV9jb3ZlcmFnZSAqPSBTZXQoZCwgYmx1ZV9zdHJlbmd0aCAvIHJhdGlvKTsKK0BAIC0yOTUsNyAr Mjk1LDcgQEAgViBIZk1vZHVsYXRpb24oY29uc3QgRCBkLCBjb25zdCBzaXplX3QgeCwgY29uc3Qg c2l6ZV90IHksIGNvbnN0IEltYWdlRiYgeHliLAorICAgICB9CisgICB9CisgCistICBzdW0gPSBT dW1PZkxhbmVzKHN1bSk7CisrICBzdW0gPSBTdW1PZkxhbmVzKGQsIHN1bSk7CisgICByZXR1cm4g TXVsQWRkKHN1bSwgU2V0KGQsIC0yLjAwNTIxOTMyMzM2ODg4ODRmIC8gMTEyKSwgb3V0X3ZhbCk7 CisgfQorIAorZGlmZiAtLWdpdCBhL2xpYi9qeGwvZW5jX2FyX2NvbnRyb2xfZmllbGQuY2MgYi9s aWIvanhsL2VuY19hcl9jb250cm9sX2ZpZWxkLmNjCitpbmRleCBmNDMzNDBlLi5mODAyNWFjIDEw MDY0NAorLS0tIGEvbGliL2p4bC9lbmNfYXJfY29udHJvbF9maWVsZC5jYworKysrIGIvbGliL2p4 bC9lbmNfYXJfY29udHJvbF9maWVsZC5jYworQEAgLTE1Nyw3ICsxNTcsNyBAQCB2b2lkIFByb2Nl c3NUaWxlKGNvbnN0IEltYWdlM0YmIG9wc2luLCBQYXNzZXNFbmNvZGVyU3RhdGUqIGVuY19zdGF0 ZSwKKyAgICAgICAgICAgc3VtICs9IExvYWRVKGRmNCwgcm93c19pbltpeV0gKyB4ICogNCArIGl4 ICsgMik7CisgICAgICAgICB9CisgICAgICAgfQorLSAgICAgIHJvd19vdXRbeF0gPSBHZXRMYW5l KFNxcnQoU3VtT2ZMYW5lcyhzdW0pKSkgKiAoMS4wZiAvIDQuMGYpOworKyAgICAgIHJvd19vdXRb eF0gPSBHZXRMYW5lKFNxcnQoU3VtT2ZMYW5lcyhkZjQsIHN1bSkpKSAqICgxLjBmIC8gNC4wZik7 CisgICAgIH0KKyAgIH0KKyAgIC8vIEluZGV4aW5nIGl5IGFuZCBpeCBpcyBhIGJpdCB0cmlja3kg YXMgd2UgaW5jbHVkZSBhIDIgcGl4ZWwgYm9yZGVyCitAQCAtMTkzLDcgKzE5Myw3IEBAIHZvaWQg UHJvY2Vzc1RpbGUoY29uc3QgSW1hZ2UzRiYgb3BzaW4sIFBhc3Nlc0VuY29kZXJTdGF0ZSogZW5j X3N0YXRlLAorICAgICAgICAgICAgIHN1bSArPSBMb2FkKGRmNCwgcm93c19pbltpeV0gKyBzeCAr IGl4KTsKKyAgICAgICAgICAgfQorICAgICAgICAgfQorLSAgICAgICAgcm93X291dFt4XSA9IEdl dExhbmUoU3FydChTdW1PZkxhbmVzKHN1bSkpKSAqICgxLjBmIC8gNC4wZik7CisrICAgICAgICBy b3dfb3V0W3hdID0gR2V0TGFuZShTcXJ0KFN1bU9mTGFuZXMoZGY0LCBzdW0pKSkgKiAoMS4wZiAv IDQuMGYpOworICAgICAgIH0gZWxzZSB7CisgICAgICAgICBmbG9hdCBzdW0gPSAwOworICAgICAg ICAgZm9yIChzaXplX3QgaXkgPSBzeTsgaXkgPCBleTsgaXkrKykgeworZGlmZiAtLWdpdCBhL2xp Yi9qeGwvZW5jX2J1dHRlcmF1Z2xpX3Bub3JtLmNjIGIvbGliL2p4bC9lbmNfYnV0dGVyYXVnbGlf cG5vcm0uY2MKK2luZGV4IDdjM2ZiOWMuLjkwYjA0NDAgMTAwNjQ0CistLS0gYS9saWIvanhsL2Vu Y19idXR0ZXJhdWdsaV9wbm9ybS5jYworKysrIGIvbGliL2p4bC9lbmNfYnV0dGVyYXVnbGlfcG5v cm0uY2MKK0BAIC05NSwxMyArOTUsMTMgQEAgZG91YmxlIENvbXB1dGVEaXN0YW5jZVAoY29uc3Qg SW1hZ2VGJiBkaXN0bWFwLCBjb25zdCBCdXR0ZXJhdWdsaVBhcmFtcyYgcGFyYW1zLAorICAgICB9 CisgICAgIGRvdWJsZSB2ID0gMDsKKyAgICAgdiArPSBwb3coCistICAgICAgICBvbmVQZXJQaXhl bHMgKiAoc3VtMVswXSArIEdldExhbmUoU3VtT2ZMYW5lcyhMb2FkKGQsIHN1bV90b3RhbHMwKSkp KSwKKysgICAgICAgIG9uZVBlclBpeGVscyAqIChzdW0xWzBdICsgR2V0TGFuZShTdW1PZkxhbmVz KGQsIExvYWQoZCwgc3VtX3RvdGFsczApKSkpLAorICAgICAgICAgMS4wIC8gKHAgKiAxLjApKTsK KyAgICAgdiArPSBwb3coCistICAgICAgICBvbmVQZXJQaXhlbHMgKiAoc3VtMVsxXSArIEdldExh bmUoU3VtT2ZMYW5lcyhMb2FkKGQsIHN1bV90b3RhbHMxKSkpKSwKKysgICAgICAgIG9uZVBlclBp eGVscyAqIChzdW0xWzFdICsgR2V0TGFuZShTdW1PZkxhbmVzKGQsIExvYWQoZCwgc3VtX3RvdGFs czEpKSkpLAorICAgICAgICAgMS4wIC8gKHAgKiAyLjApKTsKKyAgICAgdiArPSBwb3coCistICAg ICAgICBvbmVQZXJQaXhlbHMgKiAoc3VtMVsyXSArIEdldExhbmUoU3VtT2ZMYW5lcyhMb2FkKGQs IHN1bV90b3RhbHMyKSkpKSwKKysgICAgICAgIG9uZVBlclBpeGVscyAqIChzdW0xWzJdICsgR2V0 TGFuZShTdW1PZkxhbmVzKGQsIExvYWQoZCwgc3VtX3RvdGFsczIpKSkpLAorICAgICAgICAgMS4w IC8gKHAgKiA0LjApKTsKKyAgICAgdiAvPSAzLjA7CisgICAgIHJldHVybiB2OworZGlmZiAtLWdp dCBhL2xpYi9qeGwvZW5jX2Nocm9tYV9mcm9tX2x1bWEuY2MgYi9saWIvanhsL2VuY19jaHJvbWFf ZnJvbV9sdW1hLmNjCitpbmRleCBlNWMzZjM4Li4zNzA1OTVjIDEwMDY0NAorLS0tIGEvbGliL2p4 bC9lbmNfY2hyb21hX2Zyb21fbHVtYS5jYworKysrIGIvbGliL2p4bC9lbmNfY2hyb21hX2Zyb21f bHVtYS5jYworQEAgLTkxLDkgKzkxLDkgQEAgc3RydWN0IENGTEZ1bmN0aW9uIHsKKyAgICAgICBm ZG1lX3YgKz0gSWZUaGVuRWxzZShhdiA+PSB0aHJlcywgemVybywgZG1lKTsKKyAgICAgfQorIAor LSAgICAqZnBlcHMgPSBmaXJzdF9kZXJpdmF0aXZlX3BlcHMgKyBHZXRMYW5lKFN1bU9mTGFuZXMo ZmRwZV92KSk7CistICAgICpmbWVwcyA9IGZpcnN0X2Rlcml2YXRpdmVfbWVwcyArIEdldExhbmUo U3VtT2ZMYW5lcyhmZG1lX3YpKTsKKy0gICAgcmV0dXJuIGZpcnN0X2Rlcml2YXRpdmUgKyBHZXRM YW5lKFN1bU9mTGFuZXMoZmRfdikpOworKyAgICAqZnBlcHMgPSBmaXJzdF9kZXJpdmF0aXZlX3Bl cHMgKyBHZXRMYW5lKFN1bU9mTGFuZXMoZGYsIGZkcGVfdikpOworKyAgICAqZm1lcHMgPSBmaXJz dF9kZXJpdmF0aXZlX21lcHMgKyBHZXRMYW5lKFN1bU9mTGFuZXMoZGYsIGZkbWVfdikpOworKyAg ICByZXR1cm4gZmlyc3RfZGVyaXZhdGl2ZSArIEdldExhbmUoU3VtT2ZMYW5lcyhkZiwgZmRfdikp OworICAgfQorIAorICAgY29uc3QgZmxvYXQqIEpYTF9SRVNUUklDVCB2YWx1ZXNfbTsKK0BAIC0x MjQsOCArMTI0LDggQEAgaW50MzJfdCBGaW5kQmVzdE11bHRpcGxpZXIoY29uc3QgZmxvYXQqIHZh bHVlc19tLCBjb25zdCBmbG9hdCogdmFsdWVzX3MsCisgICAgICAgY2IgPSBNdWxBZGQoYSwgYiwg Y2IpOworICAgICB9CisgICAgIC8vICsgZGlzdGFuY2VfbXVsICogeF4yICogbnVtCistICAgIHgg PSAtR2V0TGFuZShTdW1PZkxhbmVzKGNiKSkgLworLSAgICAgICAgKEdldExhbmUoU3VtT2ZMYW5l cyhjYSkpICsgbnVtICogZGlzdGFuY2VfbXVsICogMC41Zik7CisrICAgIHggPSAtR2V0TGFuZShT dW1PZkxhbmVzKGRmLCBjYikpIC8KKysgICAgICAgIChHZXRMYW5lKFN1bU9mTGFuZXMoZGYsIGNh KSkgKyBudW0gKiBkaXN0YW5jZV9tdWwgKiAwLjVmKTsKKyAgIH0gZWxzZSB7CisgICAgIGNvbnN0 ZXhwciBmbG9hdCBlcHMgPSAxOworICAgICBjb25zdGV4cHIgZmxvYXQga0NsYW1wID0gMjAuMGY7 CitkaWZmIC0tZ2l0IGEvbGliL2p4bC9lbmNfY2x1c3Rlci5jYyBiL2xpYi9qeGwvZW5jX2NsdXN0 ZXIuY2MKK2luZGV4IDFmMTJhMjkuLjhhZTg2M2MgMTAwNjQ0CistLS0gYS9saWIvanhsL2VuY19j bHVzdGVyLmNjCisrKysgYi9saWIvanhsL2VuY19jbHVzdGVyLmNjCitAQCAtNDksNyArNDksNyBA QCB2b2lkIEhpc3RvZ3JhbUVudHJvcHkoY29uc3QgSGlzdG9ncmFtJiBhKSB7CisgICAgIGNvbnN0 IGF1dG8gY291bnRzID0gTG9hZFUoZGksICZhLmRhdGFfW2ldKTsKKyAgICAgZW50cm9weV9sYW5l cyArPSBFbnRyb3B5KENvbnZlcnRUbyhkZiwgY291bnRzKSwgaW52X3RvdCwgdG90YWwpOworICAg fQorLSAgYS5lbnRyb3B5XyArPSBHZXRMYW5lKFN1bU9mTGFuZXMoZW50cm9weV9sYW5lcykpOwor KyAgYS5lbnRyb3B5XyArPSBHZXRMYW5lKFN1bU9mTGFuZXMoZGYsIGVudHJvcHlfbGFuZXMpKTsK KyB9CisgCisgZmxvYXQgSGlzdG9ncmFtRGlzdGFuY2UoY29uc3QgSGlzdG9ncmFtJiBhLCBjb25z dCBIaXN0b2dyYW0mIGIpIHsKK0BAIC03MSw3ICs3MSw3IEBAIGZsb2F0IEhpc3RvZ3JhbURpc3Rh bmNlKGNvbnN0IEhpc3RvZ3JhbSYgYSwgY29uc3QgSGlzdG9ncmFtJiBiKSB7CisgICAgIGNvbnN0 IGF1dG8gY291bnRzID0gQ29udmVydFRvKGRmLCBhX2NvdW50cyArIGJfY291bnRzKTsKKyAgICAg ZGlzdGFuY2VfbGFuZXMgKz0gRW50cm9weShjb3VudHMsIGludl90b3QsIHRvdGFsKTsKKyAgIH0K Ky0gIGNvbnN0IGZsb2F0IHRvdGFsX2Rpc3RhbmNlID0gR2V0TGFuZShTdW1PZkxhbmVzKGRpc3Rh bmNlX2xhbmVzKSk7CisrICBjb25zdCBmbG9hdCB0b3RhbF9kaXN0YW5jZSA9IEdldExhbmUoU3Vt T2ZMYW5lcyhkZiwgZGlzdGFuY2VfbGFuZXMpKTsKKyAgIHJldHVybiB0b3RhbF9kaXN0YW5jZSAt IGEuZW50cm9weV8gLSBiLmVudHJvcHlfOworIH0KKyAKK2RpZmYgLS1naXQgYS9saWIvanhsL2Vu Y19lbnRyb3B5X2NvZGVyLmNjIGIvbGliL2p4bC9lbmNfZW50cm9weV9jb2Rlci5jYworaW5kZXgg MDk0NjMwMC4uMDdmZTVhMCAxMDA2NDQKKy0tLSBhL2xpYi9qeGwvZW5jX2VudHJvcHlfY29kZXIu Y2MKKysrKyBiL2xpYi9qeGwvZW5jX2VudHJvcHlfY29kZXIuY2MKK0BAIC04Niw3ICs4Niw3IEBA IGludDMyX3QgTnVtTm9uWmVyb0V4Y2VwdExMRihjb25zdCBzaXplX3QgY3gsIGNvbnN0IHNpemVf dCBjeSwKKyAKKyAgIC8vIFdlIHdhbnQgYXJlYSAtIHN1bV96ZXJvLCBhZGQgYmVjYXVzZSBuZWdf c3VtX3plcm8gaXMgYWxyZWFkeSBuZWdhdGVkLgorICAgY29uc3QgaW50MzJfdCBuemVyb3MgPQor LSAgICAgIGludDMyX3QoY3ggKiBjeSAqIGtEQ1RCbG9ja1NpemUpICsgR2V0TGFuZShTdW1PZkxh bmVzKG5lZ19zdW1femVybykpOworKyAgICAgIGludDMyX3QoY3ggKiBjeSAqIGtEQ1RCbG9ja1Np emUpICsgR2V0TGFuZShTdW1PZkxhbmVzKGRpLCBuZWdfc3VtX3plcm8pKTsKKyAKKyAgIGNvbnN0 IGludDMyX3Qgc2hpZnRlZF9uemVyb3MgPSBzdGF0aWNfY2FzdDxpbnQzMl90PigKKyAgICAgICAo bnplcm9zICsgY292ZXJlZF9ibG9ja3MgLSAxKSA+PiBsb2cyX2NvdmVyZWRfYmxvY2tzKTsKK0BA IC0xMzUsNyArMTM1LDcgQEAgaW50MzJfdCBOdW1Ob25aZXJvOHg4RXhjZXB0REMoY29uc3QgaW50 MzJfdCogSlhMX1JFU1RSSUNUIGJsb2NrLAorIAorICAgLy8gV2Ugd2FudCA2NCAtIHN1bV96ZXJv LCBhZGQgYmVjYXVzZSBuZWdfc3VtX3plcm8gaXMgYWxyZWFkeSBuZWdhdGVkLgorICAgY29uc3Qg aW50MzJfdCBuemVyb3MgPQorLSAgICAgIGludDMyX3Qoa0RDVEJsb2NrU2l6ZSkgKyBHZXRMYW5l KFN1bU9mTGFuZXMobmVnX3N1bV96ZXJvKSk7CisrICAgICAgaW50MzJfdChrRENUQmxvY2tTaXpl KSArIEdldExhbmUoU3VtT2ZMYW5lcyhkaSwgbmVnX3N1bV96ZXJvKSk7CisgCisgICAqbnplcm9z X3BvcyA9IG56ZXJvczsKKyAKK2RpZmYgLS1naXQgYS9saWIvanhsL2VuY19mYXN0X2hldXJpc3Rp Y3MuY2MgYi9saWIvanhsL2VuY19mYXN0X2hldXJpc3RpY3MuY2MKK2luZGV4IDE2Zjc2NzAuLjA1 NTE3ODIgMTAwNjQ0CistLS0gYS9saWIvanhsL2VuY19mYXN0X2hldXJpc3RpY3MuY2MKKysrKyBi L2xpYi9qeGwvZW5jX2Zhc3RfaGV1cmlzdGljcy5jYworQEAgLTk0LDggKzk0LDggQEAgU3RhdHVz IEhldXJpc3RpY3MoUGFzc2VzRW5jb2RlclN0YXRlKiBlbmNfc3RhdGUsCisgICAgICAgICAgICAg ICBjYiA9IE11bEFkZChhLCBiLCBjYik7CisgICAgICAgICAgICAgfQorICAgICAgICAgICB9Cist ICAgICAgICAgIGZsb2F0IGJlc3QgPQorLSAgICAgICAgICAgICAgLUdldExhbmUoU3VtT2ZMYW5l cyhjYikpIC8gKEdldExhbmUoU3VtT2ZMYW5lcyhjYSkpICsgMWUtOWYpOworKyAgICAgICAgICBm bG9hdCBiZXN0ID0gLUdldExhbmUoU3VtT2ZMYW5lcyhkZiwgY2IpKSAvCisrICAgICAgICAgICAg ICAgICAgICAgICAoR2V0TGFuZShTdW1PZkxhbmVzKGRmLCBjYSkpICsgMWUtOWYpOworICAgICAg ICAgICBpbnQ4X3QmIHJlcyA9IChjID09IDAgPyBzaGFyZWQuY21hcC55dG94X21hcCA6IHNoYXJl ZC5jbWFwLnl0b2JfbWFwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUm93KHR5KVt0 eF07CisgICAgICAgICAgIHJlcyA9IHN0ZDo6bWF4KC0xMjguMGYsIHN0ZDo6bWluKDEyNy4wZiwg cm91bmRmKGJlc3QpKSk7CitAQCAtMTI0LDggKzEyNCw4IEBAIFN0YXR1cyBIZXVyaXN0aWNzKFBh c3Nlc0VuY29kZXJTdGF0ZSogZW5jX3N0YXRlLAorICAgICAgICAgICAgICAgICBtYXggPSBJZlRo ZW5FbHNlKG1heCA+IG5uLCBtYXgsIG5uKTsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg ICB9CistICAgICAgICAgICAgcm93X291dF9hdmdbeF0gPSBHZXRMYW5lKFN1bU9mTGFuZXMoc3Vt KSk7CistICAgICAgICAgICAgcm93X291dFt4XSA9IEdldExhbmUoTWF4T2ZMYW5lcyhtYXgpKTsK KysgICAgICAgICAgICByb3dfb3V0X2F2Z1t4XSA9IEdldExhbmUoU3VtT2ZMYW5lcyhkZjQsIHN1 bSkpOworKyAgICAgICAgICAgIHJvd19vdXRbeF0gPSBHZXRMYW5lKE1heE9mTGFuZXMoZGY0LCBt YXgpKTsKKyAgICAgICAgICAgfQorICAgICAgICAgfQorICAgICAgIH0sCitkaWZmIC0tZ2l0IGEv bGliL2p4bC9nYXVzc19ibHVyLmNjIGIvbGliL2p4bC9nYXVzc19ibHVyLmNjCitpbmRleCBmOWJh YmU3Li5mMjRhNzRjIDEwMDY0NAorLS0tIGEvbGliL2p4bC9nYXVzc19ibHVyLmNjCisrKysgYi9s aWIvanhsL2dhdXNzX2JsdXIuY2MKK0BAIC00MjEsNyArNDIxLDcgQEAgSW1hZ2VGIENvbnZvbHZl WFNhbXBsZUFuZFRyYW5zcG9zZShjb25zdCBJbWFnZUYmIGluLAorICAgICAgIGZvciAoaW50IGkg PSAtcjsgaSA8PSByOyBpICs9IExhbmVzKGRmKSkgeworICAgICAgICAgc3VtID0gTXVsQWRkKExv YWRVKGRmLCByb3dwICsgeCArIGkpLCBMb2FkVShkZiwga2VybmVscCArIGkpLCBzdW0pOworICAg ICAgIH0KKy0gICAgICBvdXQuUm93KG94KVt5XSA9IEdldExhbmUoU3VtT2ZMYW5lcyhzdW0pKTsK KysgICAgICBvdXQuUm93KG94KVt5XSA9IEdldExhbmUoU3VtT2ZMYW5lcyhkZiwgc3VtKSk7Cisg ICAgIH0KKyAgICAgZm9yICg7IHggPCBpbi54c2l6ZSgpOyB4ICs9IHJlcywgKytveCkgeworICAg ICAgIGZsb2F0IHN1bSA9IDAuMGY7CitkaWZmIC0tZ2l0IGEvbGliL2p4bC9tb2R1bGFyL2VuY29k aW5nL2VuY19tYS5jYyBiL2xpYi9qeGwvbW9kdWxhci9lbmNvZGluZy9lbmNfbWEuY2MKK2luZGV4 IDBlMmVhYWMuLmQ0ODUxMjkgMTAwNjQ0CistLS0gYS9saWIvanhsL21vZHVsYXIvZW5jb2Rpbmcv ZW5jX21hLmNjCisrKysgYi9saWIvanhsL21vZHVsYXIvZW5jb2RpbmcvZW5jX21hLmNjCitAQCAt ODQsNyArODQsNyBAQCBmbG9hdCBFc3RpbWF0ZUJpdHMoY29uc3QgaW50MzJfdCAqY291bnRzLCBp bnQzMl90ICpyb3VuZGVkX2NvdW50cywKKyAgICAgYml0c19sYW5lcyAtPQorICAgICAgICAgSWZU aGVuRWxzZShjb3VudHNfdiA9PSB6ZXJvLCB6ZXJvLCBjb3VudHNfdiAqIEJpdENhc3QoZGYsIG5i cHMpKTsKKyAgIH0KKy0gIHJldHVybiBHZXRMYW5lKFN1bU9mTGFuZXMoYml0c19sYW5lcykpOwor KyAgcmV0dXJuIEdldExhbmUoU3VtT2ZMYW5lcyhkZiwgYml0c19sYW5lcykpOworIH0KKyAKKyB2 b2lkIE1ha2VTcGxpdE5vZGUoc2l6ZV90IHBvcywgaW50IHByb3BlcnR5LCBpbnQgc3BsaXR2YWws IFByZWRpY3RvciBscHJlZCwKK2RpZmYgLS1naXQgYS9saWIvanhsL3JhdGlvbmFsX3BvbHlub21p YWxfdGVzdC5jYyBiL2xpYi9qeGwvcmF0aW9uYWxfcG9seW5vbWlhbF90ZXN0LmNjCitpbmRleCA2 OTlhZmQwLi5mOTg1ZWIwIDEwMDY0NAorLS0tIGEvbGliL2p4bC9yYXRpb25hbF9wb2x5bm9taWFs X3Rlc3QuY2MKKysrKyBiL2xpYi9qeGwvcmF0aW9uYWxfcG9seW5vbWlhbF90ZXN0LmNjCitAQCAt NTEsNyArNTEsNyBAQCBzdHJ1Y3QgRXZhbExvZzIgeworICAgICBjb25zdCBIV1lfRlVMTChpbnQz Ml90KSBkaTsKKyAgICAgY29uc3QgYXV0byB4X2JpdHMgPSBCaXRDYXN0KGRpLCB2eCk7CisgICAg IC8vIENhbm5vdCBoYW5kbGUgbmVnYXRpdmUgbnVtYmVycyAvIE5hTi4KKy0gICAgSlhMX0RBU1NF UlQoQWxsVHJ1ZShBYnMoeF9iaXRzKSA9PSB4X2JpdHMpKTsKKysgICAgSlhMX0RBU1NFUlQoQWxs VHJ1ZShkaSwgQWJzKHhfYml0cykgPT0geF9iaXRzKSk7CisgCisgICAgIC8vIFJhbmdlIHJlZHVj dGlvbiB0byBbLTEvMywgMS8zXSAtIDMgaW50ZWdlciwgMiBmbG9hdCBvcHMKKyAgICAgY29uc3Qg YXV0byBleHBfYml0cyA9IHhfYml0cyAtIFNldChkaSwgMHgzZjJhYWFhYik7ICAvLyA9IDIvMwor ZGlmZiAtLWdpdCBhL2xpYi9qeGwvc3BsaW5lcy5jYyBiL2xpYi9qeGwvc3BsaW5lcy5jYworaW5k ZXggODY1MzQ0NS4uNWRjMjQwNCAxMDA2NDQKKy0tLSBhL2xpYi9qeGwvc3BsaW5lcy5jYworKysr IGIvbGliL2p4bC9zcGxpbmVzLmNjCitAQCAtNTIsNyArNTIsNyBAQCBmbG9hdCBDb250aW51b3Vz SURDVChjb25zdCBmbG9hdCBkY3RbMzJdLCBmbG9hdCB0KSB7CisgICAgIGF1dG8gbG9jYWxfcmVz ID0gTG9hZFUoZGYsIGRjdCArIGkpICogY29zOworICAgICByZXN1bHQgPSBNdWxBZGQoU2V0KGRm LCBzcXVhcmVfcm9vdDwyPjo6dmFsdWUpLCBsb2NhbF9yZXMsIHJlc3VsdCk7CisgICB9CistICBy ZXR1cm4gR2V0TGFuZShTdW1PZkxhbmVzKHJlc3VsdCkpOworKyAgcmV0dXJuIEdldExhbmUoU3Vt T2ZMYW5lcyhkZiwgcmVzdWx0KSk7CisgfQorIAorIHRlbXBsYXRlIDx0eXBlbmFtZSBERj4KK2Rp ZmYgLS1naXQgYS9saWIvanhsL3RyYW5zcG9zZS1pbmwuaCBiL2xpYi9qeGwvdHJhbnNwb3NlLWlu bC5oCitpbmRleCBkMTJiMTI5Li40Njc0NDIwIDEwMDY0NAorLS0tIGEvbGliL2p4bC90cmFuc3Bv c2UtaW5sLmgKKysrKyBiL2xpYi9qeGwvdHJhbnNwb3NlLWlubC5oCitAQCAtNzQsNTAgKzc0LDUx IEBAIEpYTF9JTkxJTkVfVFJBTlNQT1NFIHZvaWQgR2VuZXJpY1RyYW5zcG9zZUJsb2NrKFRyYW5z cG9zZVNpbWRUYWc8dHJ1ZT4sCisgICBzdGF0aWNfYXNzZXJ0KENPTFNfb3JfMCAlIDggPT0gMCwg IkludmFsaWQgbnVtYmVyIG9mIGNvbHVtbnMiKTsKKyAgIGZvciAoc2l6ZV90IG4gPSAwOyBuIDwg Uk9XUzsgbiArPSA4KSB7CisgICAgIGZvciAoc2l6ZV90IG0gPSAwOyBtIDwgQ09MUzsgbSArPSA4 KSB7CistICAgICAgYXV0byBpMCA9IGZyb20uTG9hZFBhcnQoQmxvY2tEZXNjPDg+KCksIG4gKyAw LCBtICsgMCk7CistICAgICAgYXV0byBpMSA9IGZyb20uTG9hZFBhcnQoQmxvY2tEZXNjPDg+KCks IG4gKyAxLCBtICsgMCk7CistICAgICAgYXV0byBpMiA9IGZyb20uTG9hZFBhcnQoQmxvY2tEZXNj PDg+KCksIG4gKyAyLCBtICsgMCk7CistICAgICAgYXV0byBpMyA9IGZyb20uTG9hZFBhcnQoQmxv Y2tEZXNjPDg+KCksIG4gKyAzLCBtICsgMCk7CistICAgICAgYXV0byBpNCA9IGZyb20uTG9hZFBh cnQoQmxvY2tEZXNjPDg+KCksIG4gKyA0LCBtICsgMCk7CistICAgICAgYXV0byBpNSA9IGZyb20u TG9hZFBhcnQoQmxvY2tEZXNjPDg+KCksIG4gKyA1LCBtICsgMCk7CistICAgICAgYXV0byBpNiA9 IGZyb20uTG9hZFBhcnQoQmxvY2tEZXNjPDg+KCksIG4gKyA2LCBtICsgMCk7CistICAgICAgYXV0 byBpNyA9IGZyb20uTG9hZFBhcnQoQmxvY2tEZXNjPDg+KCksIG4gKyA3LCBtICsgMCk7CisrICAg ICAgY29uc3QgQmxvY2tEZXNjPDg+IGQ7CisrICAgICAgYXV0byBpMCA9IGZyb20uTG9hZFBhcnQo ZCwgbiArIDAsIG0gKyAwKTsKKysgICAgICBhdXRvIGkxID0gZnJvbS5Mb2FkUGFydChkLCBuICsg MSwgbSArIDApOworKyAgICAgIGF1dG8gaTIgPSBmcm9tLkxvYWRQYXJ0KGQsIG4gKyAyLCBtICsg MCk7CisrICAgICAgYXV0byBpMyA9IGZyb20uTG9hZFBhcnQoZCwgbiArIDMsIG0gKyAwKTsKKysg ICAgICBhdXRvIGk0ID0gZnJvbS5Mb2FkUGFydChkLCBuICsgNCwgbSArIDApOworKyAgICAgIGF1 dG8gaTUgPSBmcm9tLkxvYWRQYXJ0KGQsIG4gKyA1LCBtICsgMCk7CisrICAgICAgYXV0byBpNiA9 IGZyb20uTG9hZFBhcnQoZCwgbiArIDYsIG0gKyAwKTsKKysgICAgICBhdXRvIGk3ID0gZnJvbS5M b2FkUGFydChkLCBuICsgNywgbSArIDApOworICAgICAgIC8vIFN1cnByaXNpbmdseSwgdGhpcyBz dHJhaWdodGZvcndhcmQgaW1wbGVtZW50YXRpb24gKDI0IGN5Y2xlcyBvbiBwb3J0NSkKKyAgICAg ICAvLyBpcyBmYXN0ZXIgdGhhbiBsb2FkMTI4K2luc2VydCBhbmQgTG9hZER1cDEyOCtDb25jYXRV cHBlckxvd2VyK2JsZW5kLgorLSAgICAgIGNvbnN0IGF1dG8gcTAgPSBJbnRlcmxlYXZlTG93ZXIo aTAsIGkyKTsKKy0gICAgICBjb25zdCBhdXRvIHExID0gSW50ZXJsZWF2ZUxvd2VyKGkxLCBpMyk7 CistICAgICAgY29uc3QgYXV0byBxMiA9IEludGVybGVhdmVVcHBlcihpMCwgaTIpOworLSAgICAg IGNvbnN0IGF1dG8gcTMgPSBJbnRlcmxlYXZlVXBwZXIoaTEsIGkzKTsKKy0gICAgICBjb25zdCBh dXRvIHE0ID0gSW50ZXJsZWF2ZUxvd2VyKGk0LCBpNik7CistICAgICAgY29uc3QgYXV0byBxNSA9 IEludGVybGVhdmVMb3dlcihpNSwgaTcpOworLSAgICAgIGNvbnN0IGF1dG8gcTYgPSBJbnRlcmxl YXZlVXBwZXIoaTQsIGk2KTsKKy0gICAgICBjb25zdCBhdXRvIHE3ID0gSW50ZXJsZWF2ZVVwcGVy KGk1LCBpNyk7CistCistICAgICAgY29uc3QgYXV0byByMCA9IEludGVybGVhdmVMb3dlcihxMCwg cTEpOworLSAgICAgIGNvbnN0IGF1dG8gcjEgPSBJbnRlcmxlYXZlVXBwZXIocTAsIHExKTsKKy0g ICAgICBjb25zdCBhdXRvIHIyID0gSW50ZXJsZWF2ZUxvd2VyKHEyLCBxMyk7CistICAgICAgY29u c3QgYXV0byByMyA9IEludGVybGVhdmVVcHBlcihxMiwgcTMpOworLSAgICAgIGNvbnN0IGF1dG8g cjQgPSBJbnRlcmxlYXZlTG93ZXIocTQsIHE1KTsKKy0gICAgICBjb25zdCBhdXRvIHI1ID0gSW50 ZXJsZWF2ZVVwcGVyKHE0LCBxNSk7CistICAgICAgY29uc3QgYXV0byByNiA9IEludGVybGVhdmVM b3dlcihxNiwgcTcpOworLSAgICAgIGNvbnN0IGF1dG8gcjcgPSBJbnRlcmxlYXZlVXBwZXIocTYs IHE3KTsKKy0KKy0gICAgICBpMCA9IENvbmNhdExvd2VyTG93ZXIocjQsIHIwKTsKKy0gICAgICBp MSA9IENvbmNhdExvd2VyTG93ZXIocjUsIHIxKTsKKy0gICAgICBpMiA9IENvbmNhdExvd2VyTG93 ZXIocjYsIHIyKTsKKy0gICAgICBpMyA9IENvbmNhdExvd2VyTG93ZXIocjcsIHIzKTsKKy0gICAg ICBpNCA9IENvbmNhdFVwcGVyVXBwZXIocjQsIHIwKTsKKy0gICAgICBpNSA9IENvbmNhdFVwcGVy VXBwZXIocjUsIHIxKTsKKy0gICAgICBpNiA9IENvbmNhdFVwcGVyVXBwZXIocjYsIHIyKTsKKy0g ICAgICBpNyA9IENvbmNhdFVwcGVyVXBwZXIocjcsIHIzKTsKKy0gICAgICB0by5TdG9yZVBhcnQo QmxvY2tEZXNjPDg+KCksIGkwLCBtICsgMCwgbiArIDApOworLSAgICAgIHRvLlN0b3JlUGFydChC bG9ja0Rlc2M8OD4oKSwgaTEsIG0gKyAxLCBuICsgMCk7CistICAgICAgdG8uU3RvcmVQYXJ0KEJs b2NrRGVzYzw4PigpLCBpMiwgbSArIDIsIG4gKyAwKTsKKy0gICAgICB0by5TdG9yZVBhcnQoQmxv Y2tEZXNjPDg+KCksIGkzLCBtICsgMywgbiArIDApOworLSAgICAgIHRvLlN0b3JlUGFydChCbG9j a0Rlc2M8OD4oKSwgaTQsIG0gKyA0LCBuICsgMCk7CistICAgICAgdG8uU3RvcmVQYXJ0KEJsb2Nr RGVzYzw4PigpLCBpNSwgbSArIDUsIG4gKyAwKTsKKy0gICAgICB0by5TdG9yZVBhcnQoQmxvY2tE ZXNjPDg+KCksIGk2LCBtICsgNiwgbiArIDApOworLSAgICAgIHRvLlN0b3JlUGFydChCbG9ja0Rl c2M8OD4oKSwgaTcsIG0gKyA3LCBuICsgMCk7CisrICAgICAgY29uc3QgYXV0byBxMCA9IEludGVy bGVhdmVMb3dlcihkLCBpMCwgaTIpOworKyAgICAgIGNvbnN0IGF1dG8gcTEgPSBJbnRlcmxlYXZl TG93ZXIoZCwgaTEsIGkzKTsKKysgICAgICBjb25zdCBhdXRvIHEyID0gSW50ZXJsZWF2ZVVwcGVy KGQsIGkwLCBpMik7CisrICAgICAgY29uc3QgYXV0byBxMyA9IEludGVybGVhdmVVcHBlcihkLCBp MSwgaTMpOworKyAgICAgIGNvbnN0IGF1dG8gcTQgPSBJbnRlcmxlYXZlTG93ZXIoZCwgaTQsIGk2 KTsKKysgICAgICBjb25zdCBhdXRvIHE1ID0gSW50ZXJsZWF2ZUxvd2VyKGQsIGk1LCBpNyk7Cisr ICAgICAgY29uc3QgYXV0byBxNiA9IEludGVybGVhdmVVcHBlcihkLCBpNCwgaTYpOworKyAgICAg IGNvbnN0IGF1dG8gcTcgPSBJbnRlcmxlYXZlVXBwZXIoZCwgaTUsIGk3KTsKKysKKysgICAgICBj b25zdCBhdXRvIHIwID0gSW50ZXJsZWF2ZUxvd2VyKGQsIHEwLCBxMSk7CisrICAgICAgY29uc3Qg YXV0byByMSA9IEludGVybGVhdmVVcHBlcihkLCBxMCwgcTEpOworKyAgICAgIGNvbnN0IGF1dG8g cjIgPSBJbnRlcmxlYXZlTG93ZXIoZCwgcTIsIHEzKTsKKysgICAgICBjb25zdCBhdXRvIHIzID0g SW50ZXJsZWF2ZVVwcGVyKGQsIHEyLCBxMyk7CisrICAgICAgY29uc3QgYXV0byByNCA9IEludGVy bGVhdmVMb3dlcihkLCBxNCwgcTUpOworKyAgICAgIGNvbnN0IGF1dG8gcjUgPSBJbnRlcmxlYXZl VXBwZXIoZCwgcTQsIHE1KTsKKysgICAgICBjb25zdCBhdXRvIHI2ID0gSW50ZXJsZWF2ZUxvd2Vy KGQsIHE2LCBxNyk7CisrICAgICAgY29uc3QgYXV0byByNyA9IEludGVybGVhdmVVcHBlcihkLCBx NiwgcTcpOworKworKyAgICAgIGkwID0gQ29uY2F0TG93ZXJMb3dlcihkLCByNCwgcjApOworKyAg ICAgIGkxID0gQ29uY2F0TG93ZXJMb3dlcihkLCByNSwgcjEpOworKyAgICAgIGkyID0gQ29uY2F0 TG93ZXJMb3dlcihkLCByNiwgcjIpOworKyAgICAgIGkzID0gQ29uY2F0TG93ZXJMb3dlcihkLCBy NywgcjMpOworKyAgICAgIGk0ID0gQ29uY2F0VXBwZXJVcHBlcihkLCByNCwgcjApOworKyAgICAg IGk1ID0gQ29uY2F0VXBwZXJVcHBlcihkLCByNSwgcjEpOworKyAgICAgIGk2ID0gQ29uY2F0VXBw ZXJVcHBlcihkLCByNiwgcjIpOworKyAgICAgIGk3ID0gQ29uY2F0VXBwZXJVcHBlcihkLCByNywg cjMpOworKyAgICAgIHRvLlN0b3JlUGFydChkLCBpMCwgbSArIDAsIG4gKyAwKTsKKysgICAgICB0 by5TdG9yZVBhcnQoZCwgaTEsIG0gKyAxLCBuICsgMCk7CisrICAgICAgdG8uU3RvcmVQYXJ0KGQs IGkyLCBtICsgMiwgbiArIDApOworKyAgICAgIHRvLlN0b3JlUGFydChkLCBpMywgbSArIDMsIG4g KyAwKTsKKysgICAgICB0by5TdG9yZVBhcnQoZCwgaTQsIG0gKyA0LCBuICsgMCk7CisrICAgICAg dG8uU3RvcmVQYXJ0KGQsIGk1LCBtICsgNSwgbiArIDApOworKyAgICAgIHRvLlN0b3JlUGFydChk LCBpNiwgbSArIDYsIG4gKyAwKTsKKysgICAgICB0by5TdG9yZVBhcnQoZCwgaTcsIG0gKyA3LCBu ICsgMCk7CisgICAgIH0KKyAgIH0KKyB9CitAQCAtMTM3LDI1ICsxMzgsMjYgQEAgSlhMX0lOTElO RV9UUkFOU1BPU0Ugdm9pZCBHZW5lcmljVHJhbnNwb3NlQmxvY2soVHJhbnNwb3NlU2ltZFRhZzx0 cnVlPiwKKyAgIHN0YXRpY19hc3NlcnQoQ09MU19vcl8wICUgNCA9PSAwLCAiSW52YWxpZCBudW1i ZXIgb2YgY29sdW1ucyIpOworICAgZm9yIChzaXplX3QgbiA9IDA7IG4gPCBST1dTOyBuICs9IDQp IHsKKyAgICAgZm9yIChzaXplX3QgbSA9IDA7IG0gPCBDT0xTOyBtICs9IDQpIHsKKy0gICAgICBj b25zdCBhdXRvIHAwID0gZnJvbS5Mb2FkUGFydChCbG9ja0Rlc2M8ND4oKSwgbiArIDAsIG0gKyAw KTsKKy0gICAgICBjb25zdCBhdXRvIHAxID0gZnJvbS5Mb2FkUGFydChCbG9ja0Rlc2M8ND4oKSwg biArIDEsIG0gKyAwKTsKKy0gICAgICBjb25zdCBhdXRvIHAyID0gZnJvbS5Mb2FkUGFydChCbG9j a0Rlc2M8ND4oKSwgbiArIDIsIG0gKyAwKTsKKy0gICAgICBjb25zdCBhdXRvIHAzID0gZnJvbS5M b2FkUGFydChCbG9ja0Rlc2M8ND4oKSwgbiArIDMsIG0gKyAwKTsKKy0KKy0gICAgICBjb25zdCBh dXRvIHEwID0gSW50ZXJsZWF2ZUxvd2VyKHAwLCBwMik7CistICAgICAgY29uc3QgYXV0byBxMSA9 IEludGVybGVhdmVMb3dlcihwMSwgcDMpOworLSAgICAgIGNvbnN0IGF1dG8gcTIgPSBJbnRlcmxl YXZlVXBwZXIocDAsIHAyKTsKKy0gICAgICBjb25zdCBhdXRvIHEzID0gSW50ZXJsZWF2ZVVwcGVy KHAxLCBwMyk7CistCistICAgICAgY29uc3QgYXV0byByMCA9IEludGVybGVhdmVMb3dlcihxMCwg cTEpOworLSAgICAgIGNvbnN0IGF1dG8gcjEgPSBJbnRlcmxlYXZlVXBwZXIocTAsIHExKTsKKy0g ICAgICBjb25zdCBhdXRvIHIyID0gSW50ZXJsZWF2ZUxvd2VyKHEyLCBxMyk7CistICAgICAgY29u c3QgYXV0byByMyA9IEludGVybGVhdmVVcHBlcihxMiwgcTMpOworLQorLSAgICAgIHRvLlN0b3Jl UGFydChCbG9ja0Rlc2M8ND4oKSwgcjAsIG0gKyAwLCBuICsgMCk7CistICAgICAgdG8uU3RvcmVQ YXJ0KEJsb2NrRGVzYzw0PigpLCByMSwgbSArIDEsIG4gKyAwKTsKKy0gICAgICB0by5TdG9yZVBh cnQoQmxvY2tEZXNjPDQ+KCksIHIyLCBtICsgMiwgbiArIDApOworLSAgICAgIHRvLlN0b3JlUGFy dChCbG9ja0Rlc2M8ND4oKSwgcjMsIG0gKyAzLCBuICsgMCk7CisrICAgICAgY29uc3QgQmxvY2tE ZXNjPDQ+IGQ7CisrICAgICAgY29uc3QgYXV0byBwMCA9IGZyb20uTG9hZFBhcnQoZCwgbiArIDAs IG0gKyAwKTsKKysgICAgICBjb25zdCBhdXRvIHAxID0gZnJvbS5Mb2FkUGFydChkLCBuICsgMSwg bSArIDApOworKyAgICAgIGNvbnN0IGF1dG8gcDIgPSBmcm9tLkxvYWRQYXJ0KGQsIG4gKyAyLCBt ICsgMCk7CisrICAgICAgY29uc3QgYXV0byBwMyA9IGZyb20uTG9hZFBhcnQoZCwgbiArIDMsIG0g KyAwKTsKKysKKysgICAgICBjb25zdCBhdXRvIHEwID0gSW50ZXJsZWF2ZUxvd2VyKGQsIHAwLCBw Mik7CisrICAgICAgY29uc3QgYXV0byBxMSA9IEludGVybGVhdmVMb3dlcihkLCBwMSwgcDMpOwor KyAgICAgIGNvbnN0IGF1dG8gcTIgPSBJbnRlcmxlYXZlVXBwZXIoZCwgcDAsIHAyKTsKKysgICAg ICBjb25zdCBhdXRvIHEzID0gSW50ZXJsZWF2ZVVwcGVyKGQsIHAxLCBwMyk7CisrCisrICAgICAg Y29uc3QgYXV0byByMCA9IEludGVybGVhdmVMb3dlcihkLCBxMCwgcTEpOworKyAgICAgIGNvbnN0 IGF1dG8gcjEgPSBJbnRlcmxlYXZlVXBwZXIoZCwgcTAsIHExKTsKKysgICAgICBjb25zdCBhdXRv IHIyID0gSW50ZXJsZWF2ZUxvd2VyKGQsIHEyLCBxMyk7CisrICAgICAgY29uc3QgYXV0byByMyA9 IEludGVybGVhdmVVcHBlcihkLCBxMiwgcTMpOworKworKyAgICAgIHRvLlN0b3JlUGFydChkLCBy MCwgbSArIDAsIG4gKyAwKTsKKysgICAgICB0by5TdG9yZVBhcnQoZCwgcjEsIG0gKyAxLCBuICsg MCk7CisrICAgICAgdG8uU3RvcmVQYXJ0KGQsIHIyLCBtICsgMiwgbiArIDApOworKyAgICAgIHRv LlN0b3JlUGFydChkLCByMywgbSArIDMsIG4gKyAwKTsKKyAgICAgfQorICAgfQorIH0KK2RpZmYg LS1naXQgYS9saWIvcHJvZmlsZXIvcHJvZmlsZXIuY2MgYi9saWIvcHJvZmlsZXIvcHJvZmlsZXIu Y2MKK2luZGV4IGQyMWVlMDkuLjE4NmZmMDYgMTAwNjQ0CistLS0gYS9saWIvcHJvZmlsZXIvcHJv ZmlsZXIuY2MKKysrKyBiL2xpYi9wcm9maWxlci9wcm9maWxlci5jYworQEAgLTEzOSw3ICsxMzks NyBAQCBjbGFzcyBSZXN1bHRzIHsKKyAgIHZvaWQgQW5hbHl6ZVBhY2tldHMoY29uc3QgUGFja2V0 KiBIV1lfUkVTVFJJQ1QgcGFja2V0cywKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2l6 ZV90IG51bV9wYWNrZXRzKSB7CisgICAgIC8vIEVuc3VyZXMgcHJpb3Igd2Vha2x5LW9yZGVyZWQg c3RyZWFtaW5nIHN0b3JlcyBhcmUgZ2xvYmFsbHkgdmlzaWJsZS4KKy0gICAgaHd5OjpTdG9yZUZl bmNlKCk7CisrICAgIGh3eTo6Rmx1c2hTdHJlYW0oKTsKKyAKKyAgICAgY29uc3QgdWludDY0X3Qg dDAgPSBUaWNrc0JlZm9yZSgpOworIAorQEAgLTM3MiwxMiArMzcyLDEyIEBAIHZvaWQgVGhyZWFk U3BlY2lmaWM6OkNvbXB1dGVPdmVyaGVhZCgpIHsKKyAgICAgICBjb25zdCBzaXplX3Qga1JlcHMg PSAxMDAwMDsKKyAgICAgICAvLyBBbmFseXNpcyB0aW1lIHNob3VsZCBub3QgYmUgaW5jbHVkZWQg PT4gbXVzdCBmaXQgd2l0aGluIGJ1ZmZlci4KKyAgICAgICBIV1lfQVNTRVJUKGtSZXBzICogMiA8 IG1heF9wYWNrZXRzXyk7CistICAgICAgaHd5OjpTdG9yZUZlbmNlKCk7CisrICAgICAgaHd5OjpG bHVzaFN0cmVhbSgpOworICAgICAgIGNvbnN0IHVpbnQ2NF90IHQwID0gVGlja3NCZWZvcmUoKTsK KyAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGtSZXBzOyArK2kpIHsKKyAgICAgICAgIFBS T0ZJTEVSX1pPTkUoIkR1bW15Iik7CisgICAgICAgfQorLSAgICAgIGh3eTo6U3RvcmVGZW5jZSgp OworKyAgICAgIGh3eTo6Rmx1c2hTdHJlYW0oKTsKKyAgICAgICBjb25zdCB1aW50NjRfdCB0MSA9 IFRpY2tzQWZ0ZXIoKTsKKyAgICAgICBIV1lfQVNTRVJUKG51bV9wYWNrZXRzXyArIGJ1ZmZlcl9z aXplXyA9PSBrUmVwcyAqIDIpOworICAgICAgIGJ1ZmZlcl9zaXplXyA9IDA7CmRpZmYgLS1naXQg YS9zcmNwa2dzL2xpYmp4bC90ZW1wbGF0ZSBiL3NyY3BrZ3MvbGlianhsL3RlbXBsYXRlCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZmI5ODA3NDYzYTEyCi0tLSAvZGV2 L251bGwKKysrIGIvc3JjcGtncy9saWJqeGwvdGVtcGxhdGUKQEAgLTAsMCArMSw3NiBAQAorIyBU ZW1wbGF0ZSBmaWxlIGZvciAnbGlianhsJworcGtnbmFtZT1saWJqeGwKK3ZlcnNpb249MC42LjEK K3JldmlzaW9uPTEKK2J1aWxkX3N0eWxlPWNtYWtlCitjb25maWd1cmVfYXJncz0iLURKUEVHWExf RU5BQkxFX0JFTkNITUFSSz1PRkYgLURKUEVHWExfRU5BQkxFX0VYQU1QTEVTPU9GRgorIC1ESlBF R1hMX0VOQUJMRV9TSlBFRz1PRkYgLURKUEVHWExfRU5BQkxFX1BMVUdJTlM9T04iCitob3N0bWFr ZWRlcGVuZHM9InRhciBwa2ctY29uZmlnIGFzY2lpZG9jIgorbWFrZWRlcGVuZHM9ImJyb3RsaS1k ZXZlbCBoaWdod2F5IGxpYnBuZy1kZXZlbCBnaWZsaWItZGV2ZWwgbGlianBlZy10dXJiby1kZXZl bAorIGxpYm9wZW5leHItZGV2ZWwgZ2RrLXBpeGJ1Zi1kZXZlbCBnaW1wLWRldmVsIGd0ZXN0LWRl dmVsIgorY2hlY2tkZXBlbmRzPSJ4ZGctdXRpbHMiCitzaG9ydF9kZXNjPSJKUEVHIFhMIGltYWdl IGZvcm1hdCByZWZlcmVuY2UgaW1wbGVtZW50YXRpb24iCittYWludGFpbmVyPSJKb3NodWEgS3LD pG1lciA8am9zaHVhQGtyYWVtZXIubGluaz4iCitsaWNlbnNlPSJCU0QtMy1DbGF1c2UsIGN1c3Rv bTpQYXRlbnQgZ3JhbnQiCitob21lcGFnZT0iaHR0cHM6Ly9qcGVnLm9yZy9qcGVneGwvIgorX2xv ZGVwbmdfaGFzaD00OGU1MzY0ZWY0OGVjMjQwOGY0NGM3Mjc2NTdhYzFiNjcwMzE4NWY4Citfc2tj bXNfaGFzaD02NDM3NDc1NmUwMzcwMGQ2NDlmODk3ZGJkOThjOTVlNzhjMzBjN2RhCitkaXN0Zmls ZXM9Imh0dHBzOi8vZ2l0aHViLmNvbS9saWJqeGwvbGlianhsL2FyY2hpdmUvdiR7dmVyc2lvbn0u dGFyLmd6CisgaHR0cHM6Ly9naXRodWIuY29tL2x2YW5kZXZlL2xvZGVwbmcvYXJjaGl2ZS8ke19s b2RlcG5nX2hhc2h9LnRhci5nej5sb2RlcG5nLSR7X2xvZGVwbmdfaGFzaH0udGFyLmd6CisgaHR0 cHM6Ly9za2lhLmdvb2dsZXNvdXJjZS5jb20vc2tjbXMvK2FyY2hpdmUvJHtfc2tjbXNfaGFzaH0u dGFyLmd6PnNrY21zLSR7X3NrY21zX2hhc2h9LnRhci5neiIKK2NoZWNrc3VtPSJjY2JkNWE3Mjlk NzMwMTUyMzAzYmUzOTlmMDMzYjkwNWU2MDgzMDlkNTgwMmQ3N2E2MWE5NWZhYTA5MjU5MmM1Cisg YzQ3YzQ4Yzc3YTIwNWYxYWY0ODRiN2I1YTg0NzI5MGFmNjVkZTNlYTZmMTU4MTdhYTI3YzVlYzdj YzUyMDhmZAorIEBhNjkyMzBjN2I2ZjAzYTE3OGM5M2FiYzZlZGM4MzJjMDQwZDZlMTk4MzQwMTkz YjI3YzNkMDRhZmVjZjhmNjE3Igorc2tpcF9leHRyYWN0aW9uPSJsb2RlcG5nLSR7X2xvZGVwbmdf aGFzaH0udGFyLmd6Cisgc2tjbXMtJHtfc2tjbXNfaGFzaH0udGFyLmd6IgorCitpZiBbICIkWEJQ U19UQVJHRVRfTk9fQVRPTUlDOCIgXTsgdGhlbgorCW1ha2VkZXBlbmRzKz0iIGxpYmF0b21pYy1k ZXZlbCIKKwlMSUJTPSItbGF0b21pYyIKK2ZpCisKKyMgVGVzdHMgZmFpbCBhZnRlciBidWlsZGlu ZyB3aXRoIDMyLWJpdCBnY2MgKGh0dHBzOi8vZ2l0aHViLmNvbS9saWJqeGwvbGlianhsL2lzc3Vl cy8xMzQwKQoraWYgWyAiJENST1NTX0JVSUxEIiAtbyAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiID0g Imk2ODYiIF07IHRoZW4KKwljb25maWd1cmVfYXJncys9IiAtREJVSUxEX1RFU1RJTkc9T0ZGIgor ZmkKKworcG9zdF9leHRyYWN0KCkgeworCWNkICR7WEJQU19TUkNESVNURElSfS9saWJqeGwtJHt2 ZXJzaW9ufQorCXRhciAteGYgbG9kZXBuZy0ke19sb2RlcG5nX2hhc2h9LnRhci5neiAtLXN0cmlw LWNvbXBvbmVudHM9MSAtQyAke3dya3NyY30vdGhpcmRfcGFydHkvbG9kZXBuZworCXRhciAteGYg c2tjbXMtJHtfc2tjbXNfaGFzaH0udGFyLmd6IC1DICR7d3Jrc3JjfS90aGlyZF9wYXJ0eS9za2Nt cworfQorCitwb3N0X2luc3RhbGwoKSB7CisJdmxpY2Vuc2UgTElDRU5TRQorCXZsaWNlbnNlIFBB VEVOVFMKK30KKworbGlianhsLWRldmVsX3BhY2thZ2UoKSB7CisJc2hvcnRfZGVzYys9IiAtIGRl dmVsb3BtZW50IGZpbGVzIgorCWRlcGVuZHM9ImxpYmp4bD49JHt2ZXJzaW9ufV8ke3JldmlzaW9u fSBoaWdod2F5IGJyb3RsaS1kZXZlbCIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgdXNyL2lu Y2x1ZGUKKwkJdm1vdmUgInVzci9saWIvKi5hIgorCQl2bW92ZSAidXNyL2xpYi8qLnNvIgorCQl2 bW92ZSB1c3IvbGliL3BrZ2NvbmZpZworCX0KK30KKworbGlianhsLXRvb2xzX3BhY2thZ2UoKSB7 CisJc2hvcnRfZGVzYys9IiAtIHRvb2xzIgorCXBrZ19pbnN0YWxsKCkgeworCQl2bW92ZSB1c3Iv YmluCisJCXZtb3ZlIHVzci9zaGFyZS9tYW4KKwl9Cit9CisKK2xpYmp4bC1wbHVnaW5zX3BhY2th Z2UoKSB7CisJc2hvcnRfZGVzYys9IiAtIHBsdWdpbnMiCisJZGVwZW5kcz0iZGVza3RvcC1maWxl LXV0aWxzIgorCXBrZ19pbnN0YWxsKCkgeworCQl2bW92ZSB1c3IvbGliL2dkay1waXhidWYtMi4w CisJCXZtb3ZlIHVzci9saWIvZ2ltcAorCQl2bW92ZSB1c3Ivc2hhcmUvbWltZQorCQl2bW92ZSB1 c3Ivc2hhcmUvdGh1bWJuYWlsZXJzCisJfQorfQoKRnJvbSBjZjgyNjIyN2RlNDNhYzU3NTExMGUz ZDA1Y2RlMjZjN2JhZDA1MWUxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKb3NodWEg PGpvc2h1YUBrcmFlbWVyLmxpbms+CkRhdGU6IFdlZCwgMzAgTWFyIDIwMjIgMjE6MjM6MTYgKzAy MDAKU3ViamVjdDogW1BBVENIIDMvM10ga2ltYWdlZm9ybWF0czogZW5hYmxlIEpQRUcgWEwgc3Vw cG9ydAoKLS0tCiBzcmNwa2dzL2tpbWFnZWZvcm1hdHMvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmls ZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv c3JjcGtncy9raW1hZ2Vmb3JtYXRzL3RlbXBsYXRlIGIvc3JjcGtncy9raW1hZ2Vmb3JtYXRzL3Rl bXBsYXRlCmluZGV4IGQ5NGViOTY4ZjFjNy4uNjk4NTZlN2QyZDlhIDEwMDY0NAotLS0gYS9zcmNw a2dzL2tpbWFnZWZvcm1hdHMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9raW1hZ2Vmb3JtYXRzL3Rl bXBsYXRlCkBAIC0xLDEyICsxLDEyIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdraW1hZ2Vmb3Jt YXRzJwogcGtnbmFtZT1raW1hZ2Vmb3JtYXRzCiB2ZXJzaW9uPTUuOTQuMAotcmV2aXNpb249MQor cmV2aXNpb249MgogYnVpbGRfc3R5bGU9Y21ha2UKIGNvbmZpZ3VyZV9hcmdzPSItREtJTUFHRUZP Uk1BVFNfSEVJRj1PTiIKIGhvc3RtYWtlZGVwZW5kcz0ia2NvcmVhZGRvbnMgZXh0cmEtY21ha2Ut bW9kdWxlcyBxdDUtcW1ha2UgcXQ1LWhvc3QtdG9vbHMKICBwa2ctY29uZmlnIgotbWFrZWRlcGVu ZHM9ImthcmNoaXZlLWRldmVsIGxpYm9wZW5leHItZGV2ZWwgbGliaGVpZi1kZXZlbCIKK21ha2Vk ZXBlbmRzPSJrYXJjaGl2ZS1kZXZlbCBsaWJvcGVuZXhyLWRldmVsIGxpYmhlaWYtZGV2ZWwgbGli anhsLWRldmVsIgogc2hvcnRfZGVzYz0iS0RFIFBsdWdpbnMgdG8gYWxsb3cgUUltYWdlIHRvIHN1 cHBvcnQgZXh0cmEgZmlsZSBmb3JtYXRzIgogbWFpbnRhaW5lcj0iSm9obiA8bWVAam9obm55bmF0 b3IuZGV2PiIKIGxpY2Vuc2U9IkxHUEwtMi4wLW9yLWxhdGVyIgo= --===============5244305636702513573==--