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=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 17211 invoked from network); 4 Apr 2021 07:16:48 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 4 Apr 2021 07:16:48 -0000 Content-Type: multipart/mixed; boundary="===============5177798085500572941==" MIME-Version: 1.0 Subject: =?utf8?q?=5BPR_PATCH=5D_k2pdfopt=3A_remove_package?= To: ml@inbox.vuxu.org From: sgn Reply-to: ml@inbox.vuxu.org Message-ID: Date: Sun, 04 Apr 2021 09:16:46 +0200 List-Id: GitHub notification mails are now in MIME to allow UTF8. --===============5177798085500572941== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYSBuZXcgcHVsbCByZXF1ZXN0IGJ5IHNnbiBhZ2FpbnN0IG1hc3RlciBvbiB0aGUg dm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20vc2duL3ZvaWQtcGFj a2FnZXMgazJwZGZvcHQKaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdl cy9wdWxsLzI5OTg4CgprMnBkZm9wdDogcmVtb3ZlIHBhY2thZ2UKKiBXZSd2ZSBuZXZlciBzaGlw cGVkIHRoaXMgcGFja2FnZSwgdGhlIGJ1aWxkIHdhcyBhbHdheXMgYnJva2VuLg0KKiBCdWlsZCBm YWlsIGNvbnRpbm91c2x5DQoqIEV2ZW4gdGhlIHN1Y2Nlc3NmdWwgYnVpbGQgd2lsbCBjcmFzaCBi ZWNhdXNlIHN0YWNrIHNtYXNoZWQuDQoNCjwhLS0gTWFyayBpdGVtcyB3aXRoIFt4XSB3aGVyZSBh cHBsaWNhYmxlIC0tPg0KDQojIyMjIEdlbmVyYWwNCi0gWyBdIFRoaXMgaXMgYSBuZXcgcGFja2Fn ZSBhbmQgaXQgY29uZm9ybXMgdG8gdGhlIFtxdWFsaXR5IHJlcXVpcmVtZW50c10oaHR0cHM6Ly9n aXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9ibG9iL21hc3Rlci9NYW51YWwubWQj cXVhbGl0eS1yZXF1aXJlbWVudHMpDQoNCiMjIyMgSGF2ZSB0aGUgcmVzdWx0cyBvZiB0aGUgcHJv cG9zZWQgY2hhbmdlcyBiZWVuIHRlc3RlZD8NCi0gWyBdIEkgdXNlIHRoZSBwYWNrYWdlcyBhZmZl Y3RlZCBieSB0aGUgcHJvcG9zZWQgY2hhbmdlcyBvbiBhIHJlZ3VsYXIgYmFzaXMgYW5kIGNvbmZp cm0gdGhpcyBQUiB3b3JrcyBmb3IgbWUNCi0gWyBdIEkgZ2VuZXJhbGx5IGRvbid0IHVzZSB0aGUg YWZmZWN0ZWQgcGFja2FnZXMgYnV0IGJyaWVmbHkgdGVzdGVkIHRoaXMgUFINCg0KPCEtLQ0KSWYg R2l0SHViIENJIGNhbm5vdCBiZSB1c2VkIHRvIHZhbGlkYXRlIHRoZSBidWlsZCByZXN1bHQgKGZv ciBleGFtcGxlLCBpZiB0aGUNCmJ1aWxkIGlzIGxpa2VseSB0byB0YWtlIHNldmVyYWwgaG91cnMp LCBtYWtlIHN1cmUgdG8NCltza2lwIENJXShodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92 b2lkLXBhY2thZ2VzL2Jsb2IvbWFzdGVyL0NPTlRSSUJVVElORy5tZCNjb250aW51b3VzLWludGVn cmF0aW9uKS4NCldoZW4gc2tpcHBpbmcgQ0ksIHVuY29tbWVudCBhbmQgZmlsbCBvdXQgdGhlIGZv bGxvd2luZyBzZWN0aW9uLg0KTm90ZTogZm9yIGJ1aWxkcyB0aGF0IGFyZSBsaWtlbHkgdG8gY29t cGxldGUgaW4gbGVzcyB0aGFuIDIgaG91cnMsIGl0IGlzIG5vdA0KYWNjZXB0YWJsZSB0byBza2lw IENJLg0KLS0+DQo8IS0tIA0KIyMjIyBEb2VzIGl0IGJ1aWxkIGFuZCBydW4gc3VjY2Vzc2Z1bGx5 PyANCihQbGVhc2UgY2hvb3NlIGF0IGxlYXN0IG9uZSBuYXRpdmUgYnVpbGQgYW5kLCBpZiBzdXBw b3J0ZWQsIGF0IGxlYXN0IG9uZSBjcm9zcyBidWlsZC4gTW9yZSBhcmUgYmV0dGVyLikNCi0gWyBd IEkgYnVpbHQgdGhpcyBQUiBsb2NhbGx5IGZvciBteSBuYXRpdmUgYXJjaGl0ZWN0dXJlLCAoQVJD SC1MSUJDKQ0KLSBbIF0gSSBidWlsdCB0aGlzIFBSIGxvY2FsbHkgZm9yIHRoZXNlIGFyY2hpdGVj dHVyZXMgKGlmIHN1cHBvcnRlZC4gbWFyayBjcm9zc2J1aWxkcyk6DQogIC0gWyBdIGFhcmNoNjQt bXVzbA0KICAtIFsgXSBhcm12N2wNCiAgLSBbIF0gYXJtdjZsLW11c2wNCi0tPg0KCgpBIHBhdGNo IGZpbGUgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1 bGwvMjk5ODgucGF0Y2ggaXMgYXR0YWNoZWQ= --===============5177798085500572941== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-k2pdfopt-29988.patch" RnJvbSAxMzgyZjBlMmI4NDc5YmY0YzE4Y2RmNzVmMmNhMTVjNzllMWM5YjgxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1B N249MjBDPUMzPUI0bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogV2Vk LCAxNyBNYXIgMjAyMSAwODo0MjoxNyArMDcwMApTdWJqZWN0OiBbUEFUQ0hdIGsycGRmb3B0OiBy ZW1vdmUgcGFja2FnZQoKKiBXZSd2ZSBuZXZlciBzaGlwcGVkIHRoaXMgcGFja2FnZSwgdGhlIGJ1 aWxkIHdhcyBhbHdheXMgYnJva2VuLgoqIEJ1aWxkIGZhaWwgY29udGlub3VzbHkKKiBFdmVuIHRo ZSBzdWNjZXNzZnVsIGJ1aWxkIHdpbGwgY3Jhc2ggYmVjYXVzZSBzdGFjayBzbWFzaGVkLgotLS0K IC4uLi9wYXRjaGVzLzAxLUNNYWtlTGlzdHMudHh0LWZpeGVzLnBhdGNoICAgICB8ICA4NyAtLS0t LS0KIC4uLi9rMnBkZm9wdC9wYXRjaGVzLzAyLWhlYWRlci1maXhlcy5wYXRjaCAgICB8ICA4MyAt LS0tLS0KIC4uLi8wMy13aWxsdXNsaWItb2NydGVzcy5jLXRlc3NjYXBpLWZpeC5wYXRjaCB8IDI2 MiAtLS0tLS0tLS0tLS0tLS0tLS0KIC4uLi8wNC13aWxsdXNsaWItd211cGRmaW5mby5jLW11cGRm LWZpeC5wYXRjaCB8ICAyNiAtLQogLi4uL3BhdGNoZXMvMDUtd2lsbHVzbGliLWJtcG11cGRmLmMt Zml4LnBhdGNoIHwgICA4IC0KIHNyY3BrZ3MvazJwZGZvcHQvdGVtcGxhdGUgICAgICAgICAgICAg ICAgICAgICB8ICAxOCAtLQogNiBmaWxlcyBjaGFuZ2VkLCA0ODQgZGVsZXRpb25zKC0pCiBkZWxl dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9rMnBkZm9wdC9wYXRjaGVzLzAxLUNNYWtlTGlzdHMudHh0 LWZpeGVzLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9rMnBkZm9wdC9wYXRjaGVz LzAyLWhlYWRlci1maXhlcy5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvazJwZGZv cHQvcGF0Y2hlcy8wMy13aWxsdXNsaWItb2NydGVzcy5jLXRlc3NjYXBpLWZpeC5wYXRjaAogZGVs ZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvazJwZGZvcHQvcGF0Y2hlcy8wNC13aWxsdXNsaWItd211 cGRmaW5mby5jLW11cGRmLWZpeC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvazJw ZGZvcHQvcGF0Y2hlcy8wNS13aWxsdXNsaWItYm1wbXVwZGYuYy1maXgucGF0Y2gKIGRlbGV0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL2sycGRmb3B0L3RlbXBsYXRlCgpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9rMnBkZm9wdC9wYXRjaGVzLzAxLUNNYWtlTGlzdHMudHh0LWZpeGVzLnBhdGNoIGIvc3JjcGtn cy9rMnBkZm9wdC9wYXRjaGVzLzAxLUNNYWtlTGlzdHMudHh0LWZpeGVzLnBhdGNoCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNzkzMWRkNDM0NzAuLjAwMDAwMDAwMDAwMAotLS0gYS9z cmNwa2dzL2sycGRmb3B0L3BhdGNoZXMvMDEtQ01ha2VMaXN0cy50eHQtZml4ZXMucGF0Y2gKKysr IC9kZXYvbnVsbApAQCAtMSw4NyArMCwwIEBACi1kaWZmIC0tZ2l0IENNYWtlTGlzdHMudHh0IENN YWtlTGlzdHMudHh0Ci1pbmRleCA0YTIzNzhiNWU5Li4yZWQwY2NjYTRiIDEwMDY0NAotLS0tIENN YWtlTGlzdHMudHh0Ci0rKysgQ01ha2VMaXN0cy50eHQKLUBAIC01NCwwICs1NSBAQAotKyAgc2V0 KEsyUERGT1BUX0xJQiAke0syUERGT1BUX0xJQn0gJHtKQVNQRVJfTElCUkFSWX0pCi1AQCAtNTcs MTEgKzU4IEBACi0tIyBwYXRocyBmcm9tIHdpbGx1c2xpYi93Z3MuYwotLWZpbmRfcHJvZ3JhbShH SE9TVFNDUklQVF9FWEVDVVRBQkxFIGdzCi0tIyAgUEFUSFMgL3Vzci9iaW4gL3Vzci9zaGFyZS9n cyAvdXNyL2xvY2FsL2dzIC9vcHQvZ3MgCi0tIyAgICAvdXNyL3NoYXJlL2dzKiAvdXNyL2xvY2Fs L2dzKiAvb3B0L2dzKgotLSkKLS1pZihHSE9TVFNDUklQVF9FWEVDVVRBQkxFKQotLSAgc2V0KEhB VkVfR0hPU1RTQ1JJUFQgMSkKLS0gIG1lc3NhZ2UoU1RBVFVTICJGb3VuZCBnaG9zdHNjcmlwdCBl eGVjdXRhYmxlIikKLS1lbHNlKCkKLS0gIG1lc3NhZ2UoU1RBVFVTICJDb3VsZCBOT1QgZmluZCBn aG9zdHNjcmlwdCBleGVjdXRhYmxlIikKLS1lbmRpZihHSE9TVFNDUklQVF9FWEVDVVRBQkxFKQot K3NldChIQVZFX0dIT1NUU0NSSVBUIDEpCi1AQCAtNzAgKzYwLDAgQEAKLS0jIEhBVkVfR1NMX0xJ QgotQEAgLTcxLDAgKzYyLDYgQEAKLStwa2dfY2hlY2tfbW9kdWxlcyhHU0wgZ3NsKQotK2lmKEdT TF9GT1VORCkKLSsgIHNldChIQVZFX0dTTF9MSUIgMSkKLSsgIGluY2x1ZGVfZGlyZWN0b3JpZXMo U1lTVEVNICR7R1NMX0lOQ0xVREVESVJ9KQotKyAgc2V0KEsyUERGT1BUX0xJQiAke0syUERGT1BU X0xJQn0gJHtHU0xfTERGTEFHU30pCi0rZW5kaWYoR1NMX0ZPVU5EKQotQEAgLTc2LDIgKzcxLDAg QEAKLS1wa2dfY2hlY2tfbW9kdWxlcyhNVVBERiBtdXBkZikKLS1pZihNVVBERl9GT1VORCkKLUBA IC03OSw3ICs3MyBAQAotLSAgIyAoaW5jbHVkZXMgamJpZzJkZWMsIG9wZW5qcGVnLCBmcmVldHlw ZSkKLS0gIGluY2x1ZGVfZGlyZWN0b3JpZXMoU1lTVEVNICR7TVVQREZfSU5DTFVERURJUn0pCi0t ICBtZXNzYWdlKFNUQVRVUyAibXVwZGYgbGlicmFyaWVzOiAke01VUERGX0xERkxBR1N9IikKLS0g IHNldChLMlBERk9QVF9MSUIgJHtLMlBERk9QVF9MSUJ9ICR7TVVQREZfTERGTEFHU30gCi0tICAg IC1sbXVwZGYtanMtbm9uZSAtbG9wZW5qcGVnIC1samJpZzJkZWMgLWxqcGVnIC1sZnJlZXR5cGUK LS0gICkKLS1lbmRpZihNVVBERl9GT1VORCkKLStzZXQoSzJQREZPUFRfTElCICR7SzJQREZPUFRf TElCfSAtcHRocmVhZCAtbG11cGRmIC1sbXVwZGYtdGhpcmQgLWxvcGVuanAyIC1samJpZzJkZWMg LWxmcmVldHlwZSAtbGhhcmZidXp6KQotQEAgLTk1LDIgKzkxLDE0IEBACi0tIyBIQVZFX0xFUFRP TklDQV9MSUIKLS0jIEhBVkVfVEVTU0VSQUNUX0xJQgotKwotK3BrZ19jaGVja19tb2R1bGVzKExF UFRPTklDQSBsZXB0KQotK2lmKExFUFRPTklDQV9GT1VORCkKLSsgIHNldChIQVZFX0xFUFRPTklD QV9MSUIgMSkKLSsgIGluY2x1ZGVfZGlyZWN0b3JpZXMoU1lTVEVNICR7TEVQVE9OSUNBX0lOQ0xV REVESVJ9KQotKyAgc2V0KEsyUERGT1BUX0xJQiAke0syUERGT1BUX0xJQn0gJHtMRVBUT05JQ0Ff TERGTEFHU30gJHtMRVBUT05JQ0FfTElCUkFSSUVTfSkKLStlbmRpZihMRVBUT05JQ0FfRk9VTkQp Ci0rCi0rcGtnX2NoZWNrX21vZHVsZXMoVEVTU0VSQUNUIHRlc3NlcmFjdCkKLStpZihURVNTRVJB Q1RfRk9VTkQpCi0rICBzZXQoSEFWRV9URVNTRVJBQ1RfTElCIDEpCi0rICBpbmNsdWRlX2RpcmVj dG9yaWVzKFNZU1RFTSAke1RFU1NFUkFDVF9JTkNMVURFRElSfSkKLSsgIHNldChLMlBERk9QVF9M SUIgJHtLMlBERk9QVF9MSUJ9ICR7VEVTU0VSQUNUX0xERkxBR1N9KQotK2VuZGlmKFRFU1NFUkFD VF9GT1VORCkKLUBAIC0xMDAgKzEwOCBAQAotLVNFVChDTUFLRV9DX0ZMQUdTICIke0NNQUtFX0Nf RkxBR1N9IC1EVVNFX0NNQUtFIC1XYWxsIikKLStTRVQoQ01BS0VfQ19GTEFHUyAiJHtDTUFLRV9D X0ZMQUdTfSAtRFVTRV9DTUFLRSAtV2FsbCAtV2V4dHJhIikKLUBAIC0xMDgsMCArMTE3LDIgQEAK LStpbmNsdWRlX2RpcmVjdG9yaWVzKCR7UFJPSkVDVF9CSU5BUllfRElSfSkKLSsKLUBAIC0xMTIg KzEyMSwwIEBACi0tIyBtcwotQEAgLTExNCArMTIzIEBACi0tdGFyZ2V0X2xpbmtfbGlicmFyaWVz IChrMnBkZm9wdCBrMnBkZm9wdGxpYiB3aWxsdXNsaWIgJHtLMlBERk9QVF9MSUJ9KQotK3Rhcmdl dF9saW5rX2xpYnJhcmllcyhrMnBkZm9wdCBrMnBkZm9wdGxpYiB3aWxsdXNsaWIgJHtLMlBERk9Q VF9MSUJ9KQotQEAgLTExNSwwICsxMjUgQEAKLStpbnN0YWxsKFRBUkdFVFMgazJwZGZvcHQgUlVO VElNRSBERVNUSU5BVElPTiBiaW4pCi1kaWZmIC0tZ2l0IHdpbGx1c2xpYi9DTWFrZUxpc3RzLnR4 dCB3aWxsdXNsaWIvQ01ha2VMaXN0cy50eHQKLWluZGV4IDQ2M2JiYzk1ZTcuLjEwNGQwMmUzNjAg MTAwNjQ0Ci0tLS0gd2lsbHVzbGliL0NNYWtlTGlzdHMudHh0Ci0rKysgd2lsbHVzbGliL0NNYWtl TGlzdHMudHh0Ci1AQCAtOSArOSBAQAotLSAgICBvY3Jqb2NyLmMgb2NydGVzcy5jIHBkZndyaXRl LmMgcG9pbnQyZC5jIHJlbmRlci5jIHN0cmJ1Zi5jIHN0cmluZy5jCi0rICAgIG9jcmdvY3IuYyBv Y3J0ZXNzLmMgcGRmd3JpdGUuYyBwb2ludDJkLmMgcmVuZGVyLmMgc3RyYnVmLmMgc3RyaW5nLmMK LUBAIC0yNCwwICsyNSw0IEBACi0raWYoVEVTU0VSQUNUX0ZPVU5EKQotKyAgc2V0KFdJTExVU0xJ Ql9TUkMgJHtXSUxMVVNMSUJfU1JDfSBvY3J0ZXNzLmMpCi0rZW5kaWYoVEVTU0VSQUNUX0ZPVU5E KQotKwotQEAgLTI5LDMgKzMzIEBACi0tIyBIQVZFX0dPQ1JfTElCOiBvY3Jqb2NyLmMKLS0jIEhB VkVfVEVTU0VSQUNUX0xJQjogb2NydGVzcy5jIAotLQotKyMgSEFWRV9HT0NSX0xJQjogb2NyZ29j ci5jCmRpZmYgLS1naXQgYS9zcmNwa2dzL2sycGRmb3B0L3BhdGNoZXMvMDItaGVhZGVyLWZpeGVz LnBhdGNoIGIvc3JjcGtncy9rMnBkZm9wdC9wYXRjaGVzLzAyLWhlYWRlci1maXhlcy5wYXRjaApk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWI1NjY3ZmMwOWNhLi4wMDAwMDAwMDAwMDAK LS0tIGEvc3JjcGtncy9rMnBkZm9wdC9wYXRjaGVzLzAyLWhlYWRlci1maXhlcy5wYXRjaAorKysg L2Rldi9udWxsCkBAIC0xLDgzICswLDAgQEAKLWRpZmYgLS1naXQgd2lsbHVzbGliL2dzbHBvbHlm aXQuYyB3aWxsdXNsaWIvZ3NscG9seWZpdC5jCi1pbmRleCA1ZDJiNmZiYjg1Li5mMTI3YmYwNTRm IDEwMDY0NAotLS0tIHdpbGx1c2xpYi9nc2xwb2x5Zml0LmMKLSsrKyB3aWxsdXNsaWIvZ3NscG9s eWZpdC5jCi1AQCAtMjQsNyArMjQsMTAgQEAKLSAjaW5jbHVkZSA8c3RkbGliLmg+Ci0gI2luY2x1 ZGUgIndpbGx1cy5oIgotICNpZmRlZiBIQVZFX0dTTF9MSUIKLS0jaW5jbHVkZSA8Z3NsLmg+Ci0r I2luY2x1ZGUgPGdzbC9nc2xfcG9seS5oPgotKyNpbmNsdWRlIDxnc2wvZ3NsX3ZlY3Rvci5oPgot KyNpbmNsdWRlIDxnc2wvZ3NsX211bHRpZml0Lmg+Ci0rI2luY2x1ZGUgPGdzbC9nc2xfbWF0cml4 Lmg+Ci0gI2VuZGlmCi0gCi0gdm9pZCBnc2xwb2x5Zml0KGRvdWJsZSAqeCxkb3VibGUgKnkwLGlu dCBuLGludCBkLGRvdWJsZSAqYzApCi1kaWZmIC0tZ2l0IHdpbGx1c2xpYi9ibXAuYyB3aWxsdXNs aWIvYm1wLmMKLWluZGV4IDU4MzY0NGQ1NjUuLmIyYzM2ZDU2NzMgMTAwNjQ0Ci0tLS0gd2lsbHVz bGliL2JtcC5jCi0rKysgd2lsbHVzbGliL2JtcC5jCi1AQCAtMzcsNyArMzcsNyBAQAotICNpbmNs dWRlIDxqcGVnbGliLmg+Ci0gI2VuZGlmCi0gI2lmZGVmIEhBVkVfSkFTUEVSX0xJQgotLSNpbmNs dWRlIDxqYXNwZXIuaD4KLSsjaW5jbHVkZSA8amFzcGVyL2phc3Blci5oPgotICNlbmRpZgotIAot ICNkZWZpbmUgQk9VTkQoeCx4bWluLHhtYXgpICBpZiAoKHgpPCh4bWluKSkgKHgpPSh4bWluKTsg ZWxzZSB7IGlmICgoeCk+KHhtYXgpKSAoeCk9KHhtYXgpOyB9Ci1kaWZmIC0tZ2l0IHdpbGx1c2xp Yi9vY3J0ZXNzLmMgd2lsbHVzbGliL29jcnRlc3MuYwotaW5kZXggZTEzNjZlMWFhYi4uNThhYWY5 N2ZiOSAxMDA2NDQKLS0tLSB3aWxsdXNsaWIvb2NydGVzcy5jCi0rKysgd2lsbHVzbGliL29jcnRl c3MuYwotQEAgLTI0LDggKzI0LDkgQEAKLSAjaW5jbHVkZSA8c3RkbGliLmg+Ci0gI2luY2x1ZGUg PHN0cmluZy5oPgotICNpbmNsdWRlIDxjdHlwZS5oPgotLSNpbmNsdWRlIDxsZXB0b25pY2EuaD4K LS0jaW5jbHVkZSA8dGVzc2VyYWN0Lmg+Ci0rI2luY2x1ZGUgPGxvY2FsZS5oPgotKyNpbmNsdWRl IDxsZXB0b25pY2EvYWxsaGVhZGVycy5oPgotKyNpbmNsdWRlIDx0ZXNzZXJhY3QvY2FwaS5oPgot ICNpbmNsdWRlICJ3aWxsdXMuaCIKLSAKLSAKLWRpZmYgLS1naXQgd2lsbHVzbGliL3dsZXB0b25p Y2EuYyB3aWxsdXNsaWIvd2xlcHRvbmljYS5jCi1pbmRleCBhNGUzY2ZkNjFkLi5hODViZTA5NDlk IDEwMDY0NAotLS0tIHdpbGx1c2xpYi93bGVwdG9uaWNhLmMKLSsrKyB3aWxsdXNsaWIvd2xlcHRv bmljYS5jCi1AQCAtMjMsNyArMjMsNyBAQAotICNpbmNsdWRlICJ3aWxsdXMuaCIKLSAKLSAjaWZk ZWYgSEFWRV9MRVBUT05JQ0FfTElCCi0tI2luY2x1ZGUgPGxlcHRvbmljYS5oPgotKyNpbmNsdWRl IDxsZXB0b25pY2EvYWxsaGVhZGVycy5oPgotIAotIHN0YXRpYyB2b2lkIHdsZXB0X3BpeF9mcm9t X2JtcChQSVggKipwaXhwdHIsV0lMTFVTQklUTUFQICpibXApOwotIHN0YXRpYyB2b2lkIHdsZXB0 X2JtcF9mcm9tX3BpeChXSUxMVVNCSVRNQVAgKmJtcCxQSVggKnBpeCk7Ci1AQCAtMTM1LDcgKzEz NSw3IEBAIHBpeFdyaXRlKCJwaXhiLnBuZyIscGl4YixJRkZfUE5HKTsKLSAgICAgZGV3MT1kZXdh cnBDcmVhdGUocGl4YiwxKTsKLSAgICAgcGl4RGVzdHJveSgmcGl4Yik7Ci0gICAgIGRld2FycGFJ bnNlcnREZXdhcnAoZGV3YSxkZXcxKTsKLS0gICAgZGV3YXJwQnVpbGRQYWdlTW9kZWxfZXgoZGV3 MSxkZWJ1ZyxmaXRfb3JkZXIpOwotKyAgICBkZXdhcnBCdWlsZFBhZ2VNb2RlbChkZXcxLGRlYnVn KTsKLSAgICAgaWYgKGJtcDEhPU5VTEwpCi0gICAgICAgICB7Ci0gICAgICAgICBQSVggKnBpeDIs KnBpeDJkOwotCi1kaWZmIC0tZ2l0IHdpbGx1c2xpYi93bXVwZGYuYyB3aWxsdXNsaWIvd211cGRm LmMKLWluZGV4IDgxNjI3ZWZkNGMuLmZjYWI4NGMxZGIgMTAwNjQ0Ci0tLS0gd2lsbHVzbGliL3dt dXBkZi5jCi0rKysgd2lsbHVzbGliL3dtdXBkZi5jCi1AQCAtMTg5LDggKzE4OSw4IEBAIGludCB3 bXVwZGZfcmVtYWtlX3BkZihjaGFyICppbmZpbGUsY2hhciAqb3V0ZmlsZSxXUERGUEFHRUlORk8g KnBhZ2VpbmZvLGludCB1c2VfCi0gICAgIHBkZl93cml0ZV9vcHRzLmRvX2NvbXByZXNzPTE7Ci0g ICAgIHBkZl93cml0ZV9vcHRzLmRvX2xpbmVhcj0wOwotICAgICBwZGZfd3JpdGVfb3B0cy5kb19n YXJiYWdlPTE7IC8qIDIgYW5kIDMgZG9uJ3Qgd29yayBmb3IgdGhpcy4gKi8KLS0gICAgcGRmX3dy aXRlX29wdHMuY29udGludWVfb25fZXJyb3I9MDsKLS0gICAgcGRmX3dyaXRlX29wdHMuZXJyb3Jz PU5VTEw7Ci0rICAgIC8vcGRmX3dyaXRlX29wdHMuY29udGludWVfb25fZXJyb3I9MDsKLSsgICAg Ly9wZGZfd3JpdGVfb3B0cy5lcnJvcnM9TlVMTDsKLSAgICAgd3JpdGVfZmFpbGVkPTA7Ci0gICAg IHdwZGZwYWdlaW5mb19zb3J0KHBhZ2VpbmZvKTsKLSAgICAgeHJlZj1OVUxMOwpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9rMnBkZm9wdC9wYXRjaGVzLzAzLXdpbGx1c2xpYi1vY3J0ZXNzLmMtdGVzc2Nh cGktZml4LnBhdGNoIGIvc3JjcGtncy9rMnBkZm9wdC9wYXRjaGVzLzAzLXdpbGx1c2xpYi1vY3J0 ZXNzLmMtdGVzc2NhcGktZml4LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBh ZGM3NmM4Mzg2NmYuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2sycGRmb3B0L3BhdGNoZXMv MDMtd2lsbHVzbGliLW9jcnRlc3MuYy10ZXNzY2FwaS1maXgucGF0Y2gKKysrIC9kZXYvbnVsbApA QCAtMSwyNjIgKzAsMCBAQAotZGlmZiAtciAtdTAgd2lsbHVzbGliL29jcnRlc3MuYyB3aWxsdXNs aWIvb2NydGVzcy5jCi0tLS0gd2lsbHVzbGliL29jcnRlc3MuYwkyMDE4LTEyLTMxIDE5OjU5OjU4 LjAwMDAwMDAwMCArMDEwMAotKysrIHdpbGx1c2xpYi9vY3J0ZXNzLmMJMjAxOS0wNy0yNyAxODo0 NzowNi43MDY3NjU3MzMgKzAyMDAKLUBAIC0yOSwwICszMCwyNTggQEAKLSsKLSsKLSsvKgotKyoq IG9jcl90eXBlPTA6ICBPRU1fREVGQVVMVAotKyoqIG9jcl90eXBlPTE6ICBPRU1fVEVTU0VSQUNU X09OTFkKLSsqKiBvY3JfdHlwZT0yOiAgT0VNX0xTVE1fT05MWQotKyoqIG9jcl90eXBlPTM6ICBP RU1fVEVTU0VSQUNUX0xTVE1fQ09NQklORUQKLSsqLwotK3ZvaWQgKnRlc3NfY2FwaV9pbml0KGNo YXIgKmRhdGFwYXRoLGNoYXIgKmxhbmd1YWdlLGludCBvY3JfdHlwZSxGSUxFICpvdXQsCi0rICAg ICAgICAgICAgICAgICAgICAgY2hhciAqaW5pdHN0cixpbnQgbWF4bGVuLGludCAqc3RhdHVzKQot KwotKyAgICB7Ci0rICAgIGNoYXIgb3JpZ2luYWxfbG9jYWxlWzI1Nl07Ci0rICAgIFRlc3NCYXNl QVBJICphcGkgPSBUZXNzQmFzZUFQSUNyZWF0ZSgpOwotKwotKyAgICAvKiB3aWxsdXMgbW9kLCAx MS0yNC0xNiAqLwotKyAgICAvKiBUZXNzZXJhY3QgbmVlZHMgIkMiIGxvY2FsZSB0byBjb3JyZWN0 bHkgcGFyc2UgYWxsIGRhdGEgLnRyYWluZWRkYXRhIGZpbGVzLiAqLwotKwotKyAgICBzdHJuY3B5 KG9yaWdpbmFsX2xvY2FsZSxzZXRsb2NhbGUoTENfQUxMLE5VTEwpLDI1NSk7Ci0rICAgIG9yaWdp bmFsX2xvY2FsZVsyNTVdPSdcMCc7Ci0rICAgIHNldGxvY2FsZShMQ19BTEwsIkMiKTsKLSsKLSsg ICAgLy8gTWFrZSB0aGUgb3JkZXIgb2YgYXJncyBhIGJpdCBtb3JlIGZvcmdpdmluZyB0aGFuIGl0 IHVzZWQgdG8gYmUuCi0rICAgIGNvbnN0IGNoYXIqIGxhbmcgPSAiZW5nIjsKLSsgICAgVGVzc1Bh Z2VTZWdNb2RlIHBhZ2VzZWdtb2RlID0gUFNNX1NJTkdMRV9CTE9DSzsKLSsgICAgaWYgKGxhbmd1 YWdlIT1OVUxMICYmIGxhbmd1YWdlWzBdIT0nXDAnKQotKyAgICAgICAgbGFuZyA9IGxhbmd1YWdl OwotKyAKLSsvKgotK3Y0LjAwIGxvYWRzIGVpdGhlciBURVNTRVJBQ1QgZW5naW5lciwgTFNUTSBl bmdpbmUsIG9yIGJvdGguICBObyBDVUJFLgotKyovCi0rICAgIG9jcl90eXBlPTA7IC8qIElnbm9y ZSBzcGVjaWZpZWQgYW5kIHVzZSBkZWZhdWx0ICovCi0rICAgIFRlc3NCYXNlQVBJU2V0T3V0cHV0 TmFtZShhcGksIE5VTEwpOwotKyAgICAoKnN0YXR1cyk9VGVzc0Jhc2VBUElJbml0MihhcGksIGRh dGFwYXRoLGxhbmcsCi0rICAgICAgICAgICAgICBvY3JfdHlwZT09MCA/IE9FTV9ERUZBVUxUIDoK LSsgICAgICAgICAgICAgICAgKG9jcl90eXBlPT0xID8gT0VNX1RFU1NFUkFDVF9PTkxZIDoKLSsg ICAgICAgICAgICAgICAgICAgKG9jcl90eXBlPT0yID8gT0VNX0xTVE1fT05MWSA6Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChPRU1fVEVTU0VSQUNUX0xTVE1fQ09NQklORUQp KSkpOwotKyAgICBpZiAoKCpzdGF0dXMpIT0wKQotKyAgICAgICAgewotKyAgICAgICAgLyogd2ls bHVzIG1vZCwgMTEtMjQtMTYgKi8KLSsgICAgICAgIHNldGxvY2FsZShMQ19BTEwsb3JpZ2luYWxf bG9jYWxlKTsKLSsgICAgICAgIFRlc3NCYXNlQVBJRW5kKGFwaSk7Ci0rICAgICAgICBUZXNzQmFz ZUFQSURlbGV0ZShhcGkpOwotKyAgICAgICAgcmV0dXJuKE5VTEwpOwotKyAgICAgICAgfQotKyAg ICAvKgotKyAgICBhcGkuSW5pdCgidGVzc2NhcGkiLGxhbmcsdGVzc2VyYWN0OjpPRU1fREVGQVVM VCwKLSsgICAgICAgICAgICYoYXJndlthcmddKSwgYXJnYyAtIGFyZywgTlVMTCwgTlVMTCwgZmFs c2UpOwotKyAgICAqLwotKyAgICAvLyBXZSBoYXZlIDIgcG9zc2libGUgc291cmNlcyBvZiBwYWdl c2VnbW9kZTogYSBjb25maWcgZmlsZSBhbmQKLSsgICAgLy8gdGhlIGNvbW1hbmQgbGluZS4gRm9y IGJhY2t3YXJkcyBjb21wYXRhYmlsaXR5IHJlYXNvbnMsIHRoZQotKyAgICAvLyBkZWZhdWx0IGlu IHRlc3NlcmFjdCBpcyB0ZXNzZXJhY3Q6OlBTTV9TSU5HTEVfQkxPQ0ssIGJ1dCB0aGUKLSsgICAg Ly8gZGVmYXVsdCBmb3IgdGhpcyBwcm9ncmFtIGlzIHRlc3NlcmFjdDo6UFNNX0FVVE8uIFdlIHdp bGwgbGV0Ci0rICAgIC8vIHRoZSBjb25maWcgZmlsZSB0YWtlIHByaW9yaXR5LCBzbyB0aGUgY29t bWFuZC1saW5lIGRlZmF1bHQKLSsgICAgLy8gY2FuIHRha2UgcHJpb3JpdHkgb3ZlciB0aGUgdGVz c2VyYWN0IGRlZmF1bHQsIHNvIHdlIHVzZSB0aGUKLSsgICAgLy8gdmFsdWUgZnJvbSB0aGUgY29t bWFuZCBsaW5lIG9ubHkgaWYgdGhlIHJldHJpZXZlZCBtb2RlCi0rICAgIC8vIGlzIHN0aWxsIHRl c3NlcmFjdDo6UFNNX1NJTkdMRV9CTE9DSywgaW5kaWNhdGluZyBubyBjaGFuZ2UKLSsgICAgLy8g aW4gYW55IGNvbmZpZyBmaWxlLiBUaGVyZWZvcmUgdGhlIG9ubHkgd2F5IHRvIGZvcmNlCi0rICAg IC8vIHRlc3NlcmFjdDo6UFNNX1NJTkdMRV9CTE9DSyBpcyBmcm9tIHRoZSBjb21tYW5kIGxpbmUu Ci0rICAgIC8vIEl0IHdvdWxkIGJlIHNpbXBsZXIgaWYgd2UgY291bGQgc2V0IHRoZSB2YWx1ZSBi ZWZvcmUgSW5pdCwKLSsgICAgLy8gYnV0IHRoYXQgZG9lc24ndCB3b3JrLgotKyAgICBpZiAoVGVz c0Jhc2VBUElHZXRQYWdlU2VnTW9kZShhcGkpID09IFBTTV9TSU5HTEVfQkxPQ0spCi0rICAgICAg ICBUZXNzQmFzZUFQSVNldFBhZ2VTZWdNb2RlKGFwaSwgcGFnZXNlZ21vZGUpOwotKwotKyAgICAv KgotKyAgICAqKiBJbml0aWFsaXphdGlvbiBtZXNzYWdlCi0rICAgICovCi0rICAgIHsKLSsgICAg Y2hhciBpc3RyWzEwMjRdOwotKwotKy8vIHByaW50ZigidGVzc2VkaXRfb2NyX2VuZ2luZV9tb2Rl ID0gJWRcbiIsdGVzc2VkaXRfb2NyX2VuZ2luZV9tb2RlKTsKLSsgICAgc3ByaW50Zihpc3RyLCIl cyIsVGVzc1ZlcnNpb24oKSk7Ci0rICAgIHNwcmludGYoJmlzdHJbc3RybGVuKGlzdHIpXSwiXG4g ICAgVGVzc2VyYWN0IGRhdGEgZm9sZGVyID0gJyVzJyIsZGF0YXBhdGg9PU5VTEw/Z2V0ZW52KCJU RVNTREFUQV9QUkVGSVgiKTpkYXRhcGF0aCk7Ci0rICAgIHN0cmNhdChpc3RyLCJcbiAgICBUZXNz ZXJhY3QgbGFuZ3VhZ2VzOiAiKTsKLSsgICAgY2hhcioqIGxhbmd1YWdlcyA9IFRlc3NCYXNlQVBJ R2V0QXZhaWxhYmxlTGFuZ3VhZ2VzQXNWZWN0b3IoYXBpKTsKLSsvKgotK3ByaW50ZigiT0VNPSVk XG4iLGFwaS0+b2VtKCkpOwotK3ByaW50ZigiTGFuZ3M9JyVzJ1xuIixhcGktPkdldEluaXRMYW5n dWFnZXNBc1N0cmluZygpKTsKLStwcmludGYoIkFueVRlc3NMYW5nKCk9JWRcbiIsKGludClhcGkt PnRlc3NlcmFjdCgpLT5BbnlUZXNzTGFuZygpKTsKLStwcmludGYoIkFueUxTVE1MYW5nKCk9JWRc biIsKGludClhcGktPnRlc3NlcmFjdCgpLT5BbnlMU1RNTGFuZygpKTsKLStwcmludGYoIm51bV9z dWJfbGFuZ3MoKT0lZFxuIixhcGktPnRlc3NlcmFjdCgpLT5udW1fc3ViX2xhbmdzKCkpOwotK3By aW50ZigibGFuZ3VhZ2VzLnNpemUoKT0lZFxuIiwoaW50KWxhbmd1YWdlcy5zaXplKCkpOwotKyov Ci0rICAgIGNoYXIqIGwgPSBsYW5ndWFnZXM7Ci0rICAgIGludCBlbmcgPSAwOwotKyAgICBUZXNz QmFzZUFQSSAqbGFuZzE7IAotKyAgICB3aGlsZSAobCAhPSBOVUxMKQotKyAgICAgICAgewotKyAg ICAgICAgICAgIGVuZz0oaW50KVRlc3NCYXNlQVBJT2VtKGFwaSk7Ci0rICAgICAgICAgICAgc3By aW50ZigmaXN0cltzdHJsZW4oaXN0cildLCIlcyVzIFslc10iLGw9PWxhbmd1YWdlcz8iIjoiLCAi LGwsCi0rICAgICAgICAgICAgICAgICAgICBlbmc9PTI/IkxTVE0rVGVzcyI6KGVuZz09MT8iTFNU TSI6IlRlc3MiKSk7Ci0rICAgICAgICAgICAgbCsrOwotKyAgICAgICAgfQotKyAgICAKLSsgICAg VGVzc0RlbGV0ZVRleHRBcnJheShsYW5ndWFnZXMpOwotKwotKyAgICAvKgotKyAgICBpZiAob2Ny X3R5cGU9PTAgfHwgb2NyX3R5cGU9PTMpCi0rICAgICAgICBzcHJpbnRmKCZpc3RyW3N0cmxlbihp c3RyKV0sIltMU1RNK10gKGxhbmc9Iik7Ci0rICAgIGVsc2UgaWYgKG9jcl90eXBlPT0yKQotKyAg ICAgICAgc3ByaW50ZigmaXN0cltzdHJsZW4oaXN0cildLCJbTFNUTV0gKGxhbmc9Iik7Ci0rICAg IHN0cm5jcHkoJmlzdHJbc3RybGVuKGlzdHIpXSxsYW5ndWFnZSwyNTMtc3RybGVuKGlzdHIpKTsK LSsgICAgaXN0clsyNTNdPSdcMCc7Ci0rICAgIHN0cmNhdChpc3RyLCIpIik7Ci0rICAgICovCi0r ICAgIGlmIChvdXQhPU5VTEwpCi0rICAgICAgICBmcHJpbnRmKG91dCwiJXNcbiIsaXN0cik7Ci0r ICAgIGlmIChpbml0c3RyIT1OVUxMKQotKyAgICAgICAgewotKyAgICAgICAgc3RybmNweShpbml0 c3RyLGlzdHIsbWF4bGVuLTEpOwotKyAgICAgICAgaW5pdHN0clttYXhsZW4tMV09J1wwJzsKLSsg ICAgICAgIH0KLSsgICAgfQotKwotKwotKyAgICAvKiBUdXJuIG9mZiBMU1RNIGRlYnVnZ2luZyBv dXRwdXQgKi8KLSsgICAgVGVzc0Jhc2VBUElTZXRWYXJpYWJsZShhcGksImxzdG1fZGVidWdfbGV2 ZWwiLCIwIik7Ci0rI2lmIChXSUxMVVNERUJVRyAmIDEpCi0rICAgIFRlc3NCYXNlQVBJU2V0VmFy aWFibGUoYXBpLCJsc3RtX2RlYnVnX2xldmVsIiwiOSIpOwotKyAgICBUZXNzQmFzZUFQSVNldFZh cmlhYmxlKGFwaSwicGFyYWdyYXBoX2RlYnVnX2xldmVsIiwiOSIpOwotKyAgICBUZXNzQmFzZUFQ SVNldFZhcmlhYmxlKGFwaSwidGVzc2RhdGFfbWFuYWdlcl9kZWJ1Z19sZXZlbCIsIjkiKTsKLSsg ICAgVGVzc0Jhc2VBUElTZXRWYXJpYWJsZShhcGksInRvc3BfZGVidWdfbGV2ZWwiLCI5Iik7Ci0r ICAgIFRlc3NCYXNlQVBJU2V0VmFyaWFibGUoYXBpLCJ3b3JkcmVjX2RlYnVnX2xldmVsIiwiOSIp OwotKyAgICBUZXNzQmFzZUFQSVNldFZhcmlhYmxlKGFwaSwic2Vnc2VhcmNoX2RlYnVnX2xldmVs IiwiOSIpOwotKyNlbmRpZgotKyAgICAvKiB3aWxsdXMgbW9kLCAxMS0yNC0xNiAqLwotKyAgICBz ZXRsb2NhbGUoTENfQUxMLG9yaWdpbmFsX2xvY2FsZSk7Ci0rICAgIHJldHVybigodm9pZCAqKWFw aSk7Ci0rICAgIH0KLSsKLSsKLStpbnQgdGVzc19jYXBpX2dldF9vY3Iodm9pZCAqdmFwaSxQSVgg KnBpeCxjaGFyICpvdXRzdHIsaW50IG1heGxlbixpbnQgc2VnbW9kZSxGSUxFICpvdXQpCi0rCi0r ICAgIHsKLSsgICAgVGVzc0Jhc2VBUEkgKmFwaTsKLSsgICAgc3RhdGljIGludCBvbGRfc2VnbW9k ZT0tMTsKLSsKLSsgICAgYXBpPShUZXNzQmFzZUFQSSAqKXZhcGk7Ci0rICAgIGlmIChvbGRfc2Vn bW9kZSAhPSBzZWdtb2RlKQotKyAgICAgICAgewotKyAgICAgICAgb2xkX3NlZ21vZGU9c2VnbW9k ZTsKLSsgICAgICAgIFRlc3NCYXNlQVBJU2V0UGFnZVNlZ01vZGUoYXBpLCAoVGVzc1BhZ2VTZWdN b2RlKXNlZ21vZGUpOwotKyAgICAgICAgfQotKyAgICBpZiAoIVRlc3NCYXNlQVBJUHJvY2Vzc1Bh Z2UoYXBpLHBpeCwwLE5VTEwsTlVMTCwwLE5VTEwpKQotKyAgICAgICAgewotKyAgICAgICAgLyog cGl4RGVzdHJveSgmcGl4KTsgKi8KLSsgICAgICAgIGlmIChvdXQhPU5VTEwpCi0rICAgICAgICAg ICAgZnByaW50ZihvdXQsInRlc3NjYXBpOiAgRXJyb3IgZHVyaW5nIGJpdG1hcCBwcm9jZXNzaW5n LlxuIik7Ci0rICAgICAgICBUZXNzQmFzZUFQSUNsZWFyKGFwaSk7Ci0rICAgICAgICByZXR1cm4o LTEpOwotKyAgICAgICAgfQotKyAgICBjaGFyKiB0ZXh0ID0gVGVzc0Jhc2VBUElHZXRVVEY4VGV4 dChhcGkpOwotKyAgICBzdHJuY3B5KG91dHN0cix0ZXh0LG1heGxlbi0xKTsKLSsgICAgb3V0c3Ry W21heGxlbi0xXT0nXDAnOwotKyAgICBUZXNzRGVsZXRlVGV4dCh0ZXh0KTsKLSsgICAgVGVzc0Jh c2VBUElDbGVhcihhcGkpOwotKyAgICByZXR1cm4oMCk7Ci0rICAgIH0KLSsKLSsKLStpbnQgdGVz c19jYXBpX2dldF9vY3JfbXVsdGl3b3JkKHZvaWQgKnZhcGksUElYICpwaXgsaW50IHNlZ21vZGUs Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKipsZWZ0LGludCAqKnRvcCxp bnQgKipyaWdodCxpbnQgKipib3R0b20sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpbnQgKip5YmFzZSxjaGFyICoqdGV4dCxpbnQgKm53LAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgRklMRSAqb3V0KQotKwotKyAgICB7Ci0rICAgIFRlc3NCYXNlQVBJICphcGk7 Ci0rICAgIHN0YXRpYyBpbnQgb2xkX3NlZ21vZGU9LTE7Ci0rCi0rICAgIGFwaT0oVGVzc0Jhc2VB UEkgKil2YXBpOwotKyAgICBpZiAob2xkX3NlZ21vZGUgIT0gc2VnbW9kZSkKLSsgICAgICAgIHsK LSsgICAgICAgIG9sZF9zZWdtb2RlPXNlZ21vZGU7Ci0rICAgICAgICBUZXNzQmFzZUFQSVNldFBh Z2VTZWdNb2RlKGFwaSwgKFRlc3NQYWdlU2VnTW9kZSlzZWdtb2RlKTsKLSsgICAgICAgIH0KLSsg ICAgaWYgKCFUZXNzQmFzZUFQSVByb2Nlc3NQYWdlKGFwaSxwaXgsMCxOVUxMLE5VTEwsMCxOVUxM KSkKLSsgICAgICAgIHsKLSsgICAgICAgIGlmIChvdXQhPU5VTEwpCi0rICAgICAgICAgICAgZnBy aW50ZihvdXQsInRlc3NjYXBpOiAgRXJyb3IgZHVyaW5nIGJpdG1hcCBwcm9jZXNzaW5nLlxuIik7 Ci0rICAgICAgICBUZXNzQmFzZUFQSUNsZWFyKGFwaSk7Ci0rICAgICAgICAoKm53KT0wOwotKyAg ICAgICAgcmV0dXJuKC0xKTsKLSsgICAgICAgIH0KLSsgICAgCi0rICAgIC8vKCpudyk9YXBpLT5H ZXRPQ1JXb3JkcyhsZWZ0LHRvcCxyaWdodCxib3R0b20seWJhc2UsdGV4dCk7Ci0rICAgIAotKyAg ICBpbnQgaXdvcmQsbndvcmRzLHRvdGxlbixpdDg7Ci0rICAgIGludCAqeDAsKnkwLCp4MSwqeTEs KnliYXNlbGluZTsKLSsgICAgY2hhciAqdHV0Zjg7Ci0rCi0rICAgIFRlc3NSZXN1bHRJdGVyYXRv ciAqcmVzX2l0ID0gVGVzc0Jhc2VBUElHZXRJdGVyYXRvcihhcGkpOwotKyAgICAvKiBDb3VudCB3 b3JkcyAqLwotKyAgICBpd29yZD0wOwotKyAgICB0b3RsZW49MDsKLSsgICAgd2hpbGUoVGVzc1Jl c3VsdEl0ZXJhdG9yTmV4dChyZXNfaXQsIFJJTF9CTE9DSykpCi0rICAgICAgICB7Ci0rICAgICAg ICBpZighVGVzc1Jlc3VsdEl0ZXJhdG9yTmV4dChyZXNfaXQsIFJJTF9XT1JEKSkKLSsgICAgICAg ICAgICB7Ci0rICAgICAgICAgICAgY29udGludWU7Ci0rICAgICAgICAgICAgfQotKyAgICAgICAg aXdvcmQrKzsKLSsgICAgICAgIGNoYXIqIHRleHRzdHIgPSBUZXNzUmVzdWx0SXRlcmF0b3JHZXRV VEY4VGV4dChyZXNfaXQsIFJJTF9XT1JEKTsKLSsgICAgICAgIHRvdGxlbis9c3RybGVuKHRleHRz dHIpKzE7Ci0rICAgICAgICB9Ci0rICAgIG53b3JkcyA9IGl3b3JkOwotKyAgICAKLSsgICAgeDA9 KCpsZWZ0KT0oaW50ICopbWFsbG9jKHNpemVvZihpbnQpKjUqbndvcmRzKTsKLSsgICAgeTA9KCp0 b3ApPSZ4MFtud29yZHNdOwotKyAgICB4MT0oKnJpZ2h0KT0meTBbbndvcmRzXTsKLSsgICAgeTE9 KCpib3R0b20pPSZ4MVtud29yZHNdOwotKyAgICB5YmFzZWxpbmU9KCp5YmFzZSk9JnkxW253b3Jk c107Ci0rICAgIHR1dGY4PSgqdGV4dCk9KGNoYXIgKiltYWxsb2ModG90bGVuKTsKLSsgICAgaXdv cmQ9MDsKLSsgICAgaXQ4PTA7Ci0rICAgIFRlc3NQYWdlSXRlcmF0b3JCZWdpbiggKFRlc3NQYWdl SXRlcmF0b3IgKikgcmVzX2l0KTsKLSsgICAgd2hpbGUgKFRlc3NSZXN1bHRJdGVyYXRvck5leHQo cmVzX2l0LCBSSUxfQkxPQ0spKQotKyAgICAgICAgewotKyAgICAgICAgaWYgKCFUZXNzUmVzdWx0 SXRlcmF0b3JOZXh0KHJlc19pdCwgUklMX1dPUkQpKQotKyAgICAgICAgICAgIHsKLSsgICAgICAg ICAgICBjb250aW51ZTsKLSsgICAgICAgICAgICB9Ci0rICAgICAgICBjaGFyKiB0ZXh0c3RyID0g VGVzc1Jlc3VsdEl0ZXJhdG9yR2V0VVRGOFRleHQocmVzX2l0LCBSSUxfV09SRCk7Ci0rICAgICAg ICBzdHJjcHkoJnR1dGY4W2l0OF0sdGV4dHN0cik7Ci0rICAgICAgICBpdDggKz0gc3RybGVuKCZ0 dXRmOFtpdDhdKSsxOwotKyAgICAgICAgCi0rICAgICAgICBpbnQgYmJsZWZ0LCBiYnRvcCwgYmJy aWdodCwgYmJib3R0b207Ci0rICAgICAgICBpbnQgdTEsdjEsdTIsdjI7Ci0rICAgICAgICBUZXNz UGFnZUl0ZXJhdG9yQm91bmRpbmdCb3goIChUZXNzUGFnZUl0ZXJhdG9yICopIHJlc19pdCwgUklM X1dPUkQsICZiYmxlZnQsICZiYnRvcCwgJmJicmlnaHQsICZiYmJvdHRvbSk7Ci0rICAgICAgICBU ZXNzUGFnZUl0ZXJhdG9yQmFzZWxpbmUoIChUZXNzUGFnZUl0ZXJhdG9yICopIHJlc19pdCwgUklM X1dPUkQsICZ1MSwgJnYxLCAmdTIsICZ2Mik7Ci0rICAgICAgICB4MFtpd29yZF09YmJsZWZ0Owot KyAgICAgICAgeDFbaXdvcmRdPWJicmlnaHQ7Ci0rICAgICAgICB5MFtpd29yZF09YmJ0b3A7Ci0r ICAgICAgICB5MVtpd29yZF09YmJib3R0b207Ci0rICAgICAgICB5YmFzZWxpbmVbaXdvcmRdPSh2 MSt2MikvMjsKLSsgICAgICAgIGl3b3JkKys7Ci0rICAgICAgICB9Ci0rICAgICAgICAKLSsgICAg VGVzc1Jlc3VsdEl0ZXJhdG9yRGVsZXRlKHJlc19pdCk7Ci0rICAgIAotKyAgICAoKm53KSA9IGl3 b3JkOwotKyAgICAKLSsgICAgVGVzc0Jhc2VBUElDbGVhcihhcGkpOwotKyAgICByZXR1cm4oMCk7 Ci0rICAgIH0KLSsKLSsKLSt2b2lkIHRlc3NfY2FwaV9lbmQodm9pZCAqdmFwaSkKLSsKLSsgICAg ewotKyAgICBUZXNzQmFzZUFQSSAqYXBpOwotKwotKyAgICBpZiAodmFwaT09TlVMTCkKLSsgICAg ICAgIHJldHVybjsKLSsgICAgYXBpPShUZXNzQmFzZUFQSSAqKXZhcGk7Ci0rICAgIFRlc3NCYXNl QVBJRW5kKGFwaSk7Ci0rICAgIFRlc3NCYXNlQVBJRGVsZXRlKGFwaSk7Ci0rICAgIH0KZGlmZiAt LWdpdCBhL3NyY3BrZ3MvazJwZGZvcHQvcGF0Y2hlcy8wNC13aWxsdXNsaWItd211cGRmaW5mby5j LW11cGRmLWZpeC5wYXRjaCBiL3NyY3BrZ3MvazJwZGZvcHQvcGF0Y2hlcy8wNC13aWxsdXNsaWIt d211cGRmaW5mby5jLW11cGRmLWZpeC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMWIzYmY0ZDA1N2FkLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9rMnBkZm9wdC9wYXRj aGVzLzA0LXdpbGx1c2xpYi13bXVwZGZpbmZvLmMtbXVwZGYtZml4LnBhdGNoCisrKyAvZGV2L251 bGwKQEAgLTEsMjYgKzAsMCBAQAotZGlmZiAtciAtdyAtdTAgd2lsbHVzbGliL3dtdXBkZmluZm8u YyB3aWxsdXNsaWIvd211cGRmaW5mby5jCi0tLS0gd2lsbHVzbGliL3dtdXBkZmluZm8uYwkyMDE4 LTExLTIxIDEwOjA1OjIyLjAwMDAwMDAwMCArMDEwMAotKysrIHdpbGx1c2xpYi93bXVwZGZpbmZv LmMJMjAxOS0wNy0yNyAxOTo1NjoyMy40MTg1OTUyNzUgKzAyMDAKLUBAIC0yMTcgKzIxNyBAQAot LQkJcGRmX3ByaW50X29iaihjdHgsIG91dCwgcGRmX3Jlc29sdmVfaW5kaXJlY3QoY3R4LCBvYmop LCAxKTsKLSsJCXBkZl9wcmludF9vYmooY3R4LCBvdXQsIHBkZl9yZXNvbHZlX2luZGlyZWN0KGN0 eCwgb2JqKSwgMSwgMSk7Ci1AQCAtMjI0ICsyMjQgQEAKLS0JCXBkZl9wcmludF9vYmooY3R4LCBv dXQsIHBkZl9yZXNvbHZlX2luZGlyZWN0KGN0eCwgb2JqKSwgMSk7Ci0rCQlwZGZfcHJpbnRfb2Jq KGN0eCwgb3V0LCBwZGZfcmVzb2x2ZV9pbmRpcmVjdChjdHgsIG9iaiksIDEsIDEpOwotQEAgLTI0 MCArMjQwIEBACi0tICAgICAgICBuPXBkZl9zcHJpbnRfb2JqKGN0eCxOVUxMLDAscm9iaiwxKTsK LSsgICAgICAgIGNoYXIqIGYgPSBwZGZfc3ByaW50X29iaihjdHgsTlVMTCwwLCZuLHJvYmosMSwx KTsKLUBAIC0yNDUgKzI0NSBAQAotLQkJICAgIHBkZl9wcmludF9vYmooY3R4LG91dCxyb2JqLDEp OwotKwkJICAgIHBkZl9wcmludF9vYmooY3R4LG91dCxyb2JqLDEsMSk7Ci1AQCAtMjQ5ICsyNDks MiBAQAotLSAgICAgICAgICAgIHBkZl9zcHJpbnRfb2JqKGN0eCxidWYsbisyLHJvYmosMSk7Ci0r ICAgICAgICAgICAgaW50IGxlbiA9IDA7Ci0rICAgICAgICAgICAgY2hhciogZCA9IHBkZl9zcHJp bnRfb2JqKGN0eCxidWYsbisyLCZsZW4scm9iaiwxLDEpOwotQEAgLTI1NiwwICsyNTggQEAKLSsg ICAgICAgICAgICBmel9mcmVlKGN0eCwgZCk7Ci1AQCAtMjU3LDAgKzI2MCBAQAotKyAgICAgICAg ZnpfZnJlZShjdHgsIGYpOwotQEAgLTI3OCArMjgxIEBACi0tCQlwZGZfcHJpbnRfb2JqKGN0eCxv dXQsIHBkZl9yZXNvbHZlX2luZGlyZWN0KGN0eCxvYmopLCAxKTsKLSsJCXBkZl9wcmludF9vYmoo Y3R4LG91dCwgcGRmX3Jlc29sdmVfaW5kaXJlY3QoY3R4LG9iaiksIDEsIDEpOwpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9rMnBkZm9wdC9wYXRjaGVzLzA1LXdpbGx1c2xpYi1ibXBtdXBkZi5jLWZpeC5w YXRjaCBiL3NyY3BrZ3MvazJwZGZvcHQvcGF0Y2hlcy8wNS13aWxsdXNsaWItYm1wbXVwZGYuYy1m aXgucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdlZDQ1MjhlOGZhZi4uMDAw MDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvazJwZGZvcHQvcGF0Y2hlcy8wNS13aWxsdXNsaWItYm1w bXVwZGYuYy1maXgucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLWRpZmYgLXIg LXcgLXUwIHdpbGx1c2xpYi9ibXBtdXBkZi5jIHdpbGx1c2xpYi9ibXBtdXBkZi5jCi0tLS0gd2ls bHVzbGliL2JtcG11cGRmLmMJMjAxOC0xMS0yMCAyMToxMzoxMi4wMDAwMDAwMDAgKzAxMDAKLSsr KyB3aWxsdXNsaWIvYm1wbXVwZGYuYwkyMDE5LTA3LTI3IDIwOjEyOjM3LjM4NjU1NTMzNCArMDIw MAotQEAgLTI4ICsyOCwzIEBACi0tdm9pZCBwZGZfaW5zdGFsbF9sb2FkX3N5c3RlbV9mb250X2Z1 bmNzKGZ6X2NvbnRleHQgKmN0eCk7Ci0rdm9pZCBwZGZfaW5zdGFsbF9sb2FkX3N5c3RlbV9mb250 X2Z1bmNzKGZ6X2NvbnRleHQgKmN0eCkKLSt7Ci0rfQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9rMnBk Zm9wdC90ZW1wbGF0ZSBiL3NyY3BrZ3MvazJwZGZvcHQvdGVtcGxhdGUKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IGEwOTk5NjJhODA2My4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3Mv azJwZGZvcHQvdGVtcGxhdGUKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi0jIFRlbXBs YXRlIGZpbGUgZm9yICdrMnBkZm9wdCcKLXBrZ25hbWU9azJwZGZvcHQKLXZlcnNpb249Mi41MQot cmV2aXNpb249MQotd3Jrc3JjPSIke3BrZ25hbWV9X3Yke3ZlcnNpb259IgotYnVpbGRfc3R5bGU9 Y21ha2UKLWhvc3RtYWtlZGVwZW5kcz0icGtnY29uZiB1bnppcCIKLW1ha2VkZXBlbmRzPSJ6bGli LWRldmVsIGxpYnBuZy1kZXZlbCBsaWJqcGVnLXR1cmJvLWRldmVsIGphc3Blci1kZXZlbAotIGZy ZWV0eXBlLWRldmVsIGxpYm9wZW5qcGVnMi1kZXZlbCBqYmlnMmRlYy1kZXZlbCBkanZ1bGlicmUt ZGV2ZWwKLSB0ZXNzZXJhY3Qtb2NyLWRldmVsIGxlcHRvbmljYS1kZXZlbCBnc2wtZGV2ZWwgbXVw ZGYtZGV2ZWwgaGFyZmJ1enotZGV2ZWwiCi1kZXBlbmRzPSJnaG9zdHNjcmlwdCIKLXNob3J0X2Rl c2M9Ik9wdGltaXplIFBERi9ESlZVIGZpbGVzIGZvciBtb2JpbGUgZS1yZWFkZXJzIGFuZCBzbWFy dHBob25lcyIKLW1haW50YWluZXI9IkpvaG4gRWlyYSA8am9obi5laXJhQHdlYi5kZT4iCi1saWNl bnNlPSJHUEwtMy4wLW9yLWxhdGVyIgotaG9tZXBhZ2U9Imh0dHBzOi8vd2lsbHVzLmNvbS9rMnBk Zm9wdC8iCi1kaXN0ZmlsZXM9Imh0dHA6Ly93aWxsdXMuY29tL2sycGRmb3B0L3NyYy9rMnBkZm9w dF92JHt2ZXJzaW9ufV9zcmMuemlwIgotY2hlY2tzdW09IjNlNmU0ZDdhYWM5YzliZWQ0Yzc4NTQ4 ODhhNmE5MTIxM2JlMTAxMjFiZTc2ZTE3ZjgzZTA4MGU4MjlhYzVmZGUiCi1icm9rZW49Imh0dHBz Oi8vYnVpbGQudm9pZGxpbnV4Lm9yZy9idWlsZGVycy94ODZfNjQtbXVzbF9idWlsZGVyL2J1aWxk cy8yMjM0My9zdGVwcy9zaGVsbF8zL2xvZ3Mvc3RkaW8iCg== --===============5177798085500572941==--