From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 98793A00C5 for ; Tue, 21 Jun 2022 12:49:27 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 8F29E4069C; Tue, 21 Jun 2022 12:49:27 +0200 (CEST) Received: from mail-pj1-f97.google.com (mail-pj1-f97.google.com [209.85.216.97]) by mails.dpdk.org (Postfix) with ESMTP id 115CA40151 for ; Tue, 21 Jun 2022 12:49:26 +0200 (CEST) Received: by mail-pj1-f97.google.com with SMTP id cv13so9991424pjb.4 for ; Tue, 21 Jun 2022 03:49:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=iol.unh.edu; s=unh-iol; h=mime-version:subject:from:to:cc:message-id:date; bh=ID6bs8pLJy0y4R9qj/G6LCgV0DIHpB+/hOARyIDJrWU=; b=cY/CkH9bPX96JG/9uvuY9XoW949rAgt9t1kBfPyrRpHjJt1qSefKEtx+80OOxWi57d NTBUKShUlvAH6QVuOSLuZ/emutXEmjWrzuyBSKX9A+1zpxgEE/YsCDcgeAPR5F+jFbDe PiTyzQkiz9UCIr7XQ4oFkx6m390Hqk0GCZPUY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:subject:from:to:cc:message-id:date; bh=ID6bs8pLJy0y4R9qj/G6LCgV0DIHpB+/hOARyIDJrWU=; b=8MgcL7FVSkOvk23C5bREnVNgZAdUF311gfSLfANvx1O3tPMOPUAirs7Giay7T++yk1 aMSZgQAyuWjXCHxgdTvAnIVJbXkiQ2th9L5KLyZyV64od/ZLrL89uB1fJZ2mekgoRz8W jZ1CBt4IquvUP49Bqx8U7+F5C4BjS/D1mW86sMkkxvnIdh8bDsKMvHaFdf9aaX5SdsSx yahZ9A9NbhBYGIWpqZs2dJcsFSfvnqgt6bRsRQZmCIJ/RK4SmSXOvoK6gBK+TxDy+W1U y+mQi/YU/60fGdDJLm+KXW5uc/vCcrJKqQ4ms+KGcQQhjqaWXip+ZtLFl34qTKyLowOA uOZQ== X-Gm-Message-State: AJIora+AZl5Bd86I/YL0R8FVAqdMjmyLTjRiYXjHZomggrP15+RxQEjt DsiN/kjflsdzPWzHA3owjDBVutTKXnIrfwc9W0eK0UUwXdXAzw== X-Google-Smtp-Source: AGRyM1u3fMQ352llgTG1LcX/uX4R6E2gvJYg14Jbkqf4ccCEsMgXqYXNfBz0sfb2TuLK9N+yHcxt+0FRV/uf X-Received: by 2002:a17:90a:5e0e:b0:1ec:aa3f:8dc1 with SMTP id w14-20020a17090a5e0e00b001ecaa3f8dc1mr10488996pjf.145.1655808565261; Tue, 21 Jun 2022 03:49:25 -0700 (PDT) Received: from postal.iol.unh.edu (postal.iol.unh.edu. [132.177.123.84]) by smtp-relay.gmail.com with ESMTPS id z15-20020a17090a398f00b001ecbb48d4fbsm286256pjb.13.2022.06.21.03.49.25 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 21 Jun 2022 03:49:25 -0700 (PDT) X-Relaying-Domain: iol.unh.edu Received: from noxus.dpdklab.iol.unh.edu (unknown [IPv6:2606:4100:3880:1722::4]) by postal.iol.unh.edu (Postfix) with ESMTP id 88E6F605247D; Tue, 21 Jun 2022 06:49:24 -0400 (EDT) Received: from noxus.dpdklab.iol.unh.edu (localhost [IPv6:::1]) by noxus.dpdklab.iol.unh.edu (Postfix) with ESMTP id 57617B370; Tue, 21 Jun 2022 06:49:24 -0400 (EDT) Content-Type: multipart/mixed; boundary="===============8551658016818826669==" MIME-Version: 1.0 Subject: |WARNING| pw113157-113168 [PATCH] [v2, 12/12] net/nfp: add flower PF rxtx logic From: dpdklab@iol.unh.edu To: test-report@dpdk.org Cc: dpdk-test-reports@iol.unh.edu Message-Id: <20220621104924.57617B370@noxus.dpdklab.iol.unh.edu> Date: Tue, 21 Jun 2022 06:49:24 -0400 (EDT) X-BeenThere: test-report@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: automatic DPDK test reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: test-report-bounces@dpdk.org --===============8551658016818826669== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGVzdC1MYWJlbDogaW9sLXRlc3RpbmcKVGVzdC1TdGF0dXM6IFdBUk5JTkcKaHR0cDovL2RwZGsu b3JnL3BhdGNoLzExMzE1NwoKX2FwcGx5IHBhdGNoIGZhaWx1cmVfCgpTdWJtaXR0ZXI6IENoYW95 b25nIEhlIDxjaGFveW9uZy5oZUBjb3JpZ2luZS5jb20+CkRhdGU6IFR1ZXNkYXksIEp1bmUgMjEg MjAyMiAxMDozMzowOCAKQXBwbGllZCBvbjogQ29tbWl0SUQ6YTFiMmFmZTQzMWQ4MGFiNjViMmVk OTg4OWE2MWVhZDMzNWU1MzI5OQpBcHBseSBwYXRjaCBzZXQgMTEzMTU3LTExMzE2OCBmYWlsZWQ6 CgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9uZnAvbmZwX2NvbW1vbi5oLi4uCkh1bmsgIzEg c3VjY2VlZGVkIGF0IDEwNCAob2Zmc2V0IC03IGxpbmVzKS4KSHVuayAjMiBzdWNjZWVkZWQgYXQg MTIyIChvZmZzZXQgLTcgbGluZXMpLgpIdW5rICMzIHN1Y2NlZWRlZCBhdCAxNTQgKG9mZnNldCAt NyBsaW5lcykuCkh1bmsgIzQgc3VjY2VlZGVkIGF0IDE2MiAob2Zmc2V0IC03IGxpbmVzKS4KSHVu ayAjNSBzdWNjZWVkZWQgYXQgNDIyIChvZmZzZXQgLTI0IGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2gg ZHJpdmVycy9uZXQvbmZwL25mcF9ldGhkZXYuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZv cjoKI2luY2x1ZGUgIm5mcF9jcHBfYnJpZGdlLmgiCgpzdGF0aWMgaW50Cm5mcF9uZXRfcGZfcmVh ZF9tYWMoc3RydWN0IG5mcF9wZl9kZXYgKnBmX2RldiwgaW50IHBvcnQpCnsKCXN0cnVjdCBuZnBf ZXRoX3RhYmxlICpuZnBfZXRoX3RhYmxlOwoJc3RydWN0IG5mcF9uZXRfaHcgKmh3ID0gTlVMTDsK CgkvKiBHcmFiIGEgcG9pbnRlciB0byB0aGUgY29ycmVjdCBwaHlzaWNhbCBwb3J0ICovCglodyA9 IHBmX2Rldi0+cG9ydHNbcG9ydF07CgoJbmZwX2V0aF90YWJsZSA9IG5mcF9ldGhfcmVhZF9wb3J0 cyhwZl9kZXYtPmNwcCk7CgoJbmZwX2V0aF9jb3B5X21hYygodWludDhfdCAqKSZody0+bWFjX2Fk ZHIsCgkJCSAodWludDhfdCAqKSZuZnBfZXRoX3RhYmxlLT5wb3J0c1twb3J0XS5tYWNfYWRkcik7 CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9uZnAvbmZwX2V0aGRldi5jOjM5Ckh1 bmsgIzIgc3VjY2VlZGVkIGF0IDg2IChvZmZzZXQgMjIgbGluZXMpLgpIdW5rICMzIHN1Y2NlZWRl ZCBhdCA5NCAob2Zmc2V0IDIyIGxpbmVzKS4KSHVuayAjNCBzdWNjZWVkZWQgYXQgMTA2IChvZmZz ZXQgMjIgbGluZXMpLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCXN0cnVjdCBuZnBfbmV0 X2h3ICpodzsKCXN0cnVjdCBydGVfcGNpX2RldmljZSAqcGNpX2RldjsKCXN0cnVjdCBuZnBfcGZf ZGV2ICpwZl9kZXY7CglpbnQgaTsKCglpZiAocnRlX2VhbF9wcm9jZXNzX3R5cGUoKSAhPSBSVEVf UFJPQ19QUklNQVJZKQoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvbmZwL25mcF9l dGhkZXYuYzoyNTAKSHVuayAjNiBzdWNjZWVkZWQgYXQgMjkyIChvZmZzZXQgMjkgbGluZXMpLgpI dW5rICM3IHN1Y2NlZWRlZCBhdCAzMjEgKG9mZnNldCAzNyBsaW5lcykuCkh1bmsgIzggc3VjY2Vl ZGVkIGF0IDMzNyAob2Zmc2V0IDM3IGxpbmVzKS4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6 CnsKCXN0cnVjdCBydGVfcGNpX2RldmljZSAqcGNpX2RldjsKCXN0cnVjdCBuZnBfcGZfZGV2ICpw Zl9kZXY7CglzdHJ1Y3QgbmZwX25ldF9odyAqaHc7CglzdHJ1Y3QgcnRlX2V0aGVyX2FkZHIgKnRt cF9ldGhlcl9hZGRyOwoJdWludDY0X3QgcnhfYmFyX29mZiA9IDA7CgplcnJvcjogcGF0Y2ggZmFp bGVkOiBkcml2ZXJzL25ldC9uZnAvbmZwX2V0aGRldi5jOjQwNAplcnJvcjogd2hpbGUgc2VhcmNo aW5nIGZvcjoKCS8qIFVzZSBiYWNrcG9pbnRlciBoZXJlIHRvIHRoZSBQRiBvZiB0aGlzIGV0aF9k ZXYgKi8KCXBmX2RldiA9IE5GUF9ORVRfREVWX1BSSVZBVEVfVE9fUEYoZXRoX2Rldi0+ZGF0YS0+ ZGV2X3ByaXZhdGUpOwoKCS8qIE5GUCBjYW4gbm90IGhhbmRsZSBETUEgYWRkcmVzc2VzIHJlcXVp cmluZyBtb3JlIHRoYW4gNDAgYml0cyAqLwoJaWYgKHJ0ZV9tZW1fY2hlY2tfZG1hX21hc2soNDAp KSB7CgkJUlRFX0xPRyhFUlIsIFBNRCwKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0 L25mcC9uZnBfZXRoZGV2LmM6NDIwCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJICogVXNl IFBGIGFycmF5IG9mIHBoeXNpY2FsIHBvcnRzIHRvIGdldCBwb2ludGVyIHRvCgkgKiB0aGlzIHNw ZWNpZmljIHBvcnQKCSAqLwoJaHcgPSBwZl9kZXYtPnBvcnRzW3BvcnRdOwoKCVBNRF9JTklUX0xP RyhERUJVRywgIldvcmtpbmcgd2l0aCBwaHlzaWNhbCBwb3J0IG51bWJlcjogJWQsICIKCQkJIk5G UCBpbnRlcm5hbCBwb3J0IG51bWJlcjogJWQiLCBwb3J0LCBody0+bmZwX2lkeCk7CgplcnJvcjog cGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9uZnAvbmZwX2V0aGRldi5jOjQzOApIdW5rICMxMiBz dWNjZWVkZWQgYXQgNTU2IChvZmZzZXQgLTIxIGxpbmVzKS4KZXJyb3I6IHdoaWxlIHNlYXJjaGlu ZyBmb3I6Cn0KCnN0YXRpYyBpbnQKbmZwX2luaXRfcGh5cG9ydHMoc3RydWN0IG5mcF9wZl9kZXYg KnBmX2RldikKewoJaW50IGk7CglpbnQgcmV0ID0gMDsKCXN0cnVjdCBuZnBfbmV0X2h3ICpodzsK CXN0cnVjdCBydGVfZXRoX2RldiAqZXRoX2RldjsKCXN0cnVjdCBuZnBfZXRoX3RhYmxlICpuZnBf ZXRoX3RhYmxlOwoKCW5mcF9ldGhfdGFibGUgPSBuZnBfZXRoX3JlYWRfcG9ydHMocGZfZGV2LT5j cHApOwoJaWYgKG5mcF9ldGhfdGFibGUgPT0gTlVMTCkgewoJCVBNRF9JTklUX0xPRyhFUlIsICJF cnJvciByZWFkaW5nIE5GUCBldGhlcm5ldCB0YWJsZSIpOwoJCXJldHVybiAtRUlPOwoJfQoKCS8q IExvb3AgdGhyb3VnaCBhbGwgcGh5c2ljYWwgcG9ydHMgb24gUEYgKi8KCWZvciAoaSA9IDA7IGkg PCBwZl9kZXYtPnRvdGFsX3BoeXBvcnRzOyBpKyspIHsKCQljb25zdCB1bnNpZ25lZCBpbnQgbnVt YV9ub2RlID0gcnRlX3NvY2tldF9pZCgpOwoJCWNoYXIgcG9ydF9uYW1lW1JURV9FVEhfTkFNRV9N QVhfTEVOXTsKCgkJc25wcmludGYocG9ydF9uYW1lLCBzaXplb2YocG9ydF9uYW1lKSwgIiVzX3Bv cnQlZCIsCgkJCSBwZl9kZXYtPnBjaV9kZXYtPmRldmljZS5uYW1lLCBpKTsKCgplcnJvcjogcGF0 Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9uZnAvbmZwX2V0aGRldi5jOjcxOApIdW5rICMxNCBzdWNj ZWVkZWQgYXQgNzQ4IChvZmZzZXQgLTYzIGxpbmVzKS4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBm b3I6CgkJcnRlX2V0aF9kZXZfcHJvYmluZ19maW5pc2goZXRoX2Rldik7CgoJfSAvKiBFbmQgbG9v cCwgYWxsIHBvcnRzIG9uIHRoaXMgUEYgKi8KCXJldCA9IDA7Cglnb3RvIGV0aF90YWJsZV9jbGVh bnVwOwoKcG9ydF9jbGVhbnVwOgoJZm9yIChpID0gMDsgaSA8IHBmX2Rldi0+dG90YWxfcGh5cG9y dHM7IGkrKykgewoJCWlmIChwZl9kZXYtPnBvcnRzW2ldICYmIHBmX2Rldi0+cG9ydHNbaV0tPmV0 aF9kZXYpIHsKCQkJc3RydWN0IHJ0ZV9ldGhfZGV2ICp0bXBfZGV2OwoJCQl0bXBfZGV2ID0gcGZf ZGV2LT5wb3J0c1tpXS0+ZXRoX2RldjsKCQkJcnRlX2V0aF9kZXZfcmVsZWFzZV9wb3J0KHRtcF9k ZXYpOwoJCQlwZl9kZXYtPnBvcnRzW2ldID0gTlVMTDsKCQl9Cgl9CmV0aF90YWJsZV9jbGVhbnVw OgoJZnJlZShuZnBfZXRoX3RhYmxlKTsKCglyZXR1cm4gcmV0Owp9CgplcnJvcjogcGF0Y2ggZmFp bGVkOiBkcml2ZXJzL25ldC9uZnAvbmZwX2V0aGRldi5jOjc4MwplcnJvcjogd2hpbGUgc2VhcmNo aW5nIGZvcjoKc3RhdGljIGludApuZnBfcGZfaW5pdChzdHJ1Y3QgcnRlX3BjaV9kZXZpY2UgKnBj aV9kZXYpCnsKCWludCBlcnI7CglpbnQgcmV0ID0gMDsKCXVpbnQ2NF90IGFkZHI7CglpbnQgdG90 YWxfcG9ydHM7CglzdHJ1Y3QgbmZwX2NwcCAqY3BwOwoJc3RydWN0IG5mcF9wZl9kZXYgKnBmX2Rl djsKCXN0cnVjdCBuZnBfaHdpbmZvICpod2luZm87CgljaGFyIG5hbWVbUlRFX0VUSF9OQU1FX01B WF9MRU5dOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvbmZwL25mcF9ldGhkZXYu Yzo4MDQKZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CglpZiAoaHdpbmZvID09IE5VTEwpIHsK CQlQTURfSU5JVF9MT0coRVJSLCAiRXJyb3IgcmVhZGluZyBod2luZm8gdGFibGUiKTsKCQlyZXQg PSAtRUlPOwoJCWdvdG8gZXJyb3I7Cgl9CgoJbmZwX2V0aF90YWJsZSA9IG5mcF9ldGhfcmVhZF9w b3J0cyhjcHApOwoJaWYgKG5mcF9ldGhfdGFibGUgPT0gTlVMTCkgewoJCVBNRF9JTklUX0xPRyhF UlIsICJFcnJvciByZWFkaW5nIE5GUCBldGhlcm5ldCB0YWJsZSIpOwoKZXJyb3I6IHBhdGNoIGZh aWxlZDogZHJpdmVycy9uZXQvbmZwL25mcF9ldGhkZXYuYzo4NDAKSHVuayAjMTggc3VjY2VlZGVk IGF0IDg1MiAob2Zmc2V0IC02NiBsaW5lcykuCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJ fQoKCS8qIFBvcHVsYXRlIHRoZSBuZXdseSBjcmVhdGVkIFBGIGRldmljZSAqLwoJcGZfZGV2LT5j cHAgPSBjcHA7CglwZl9kZXYtPmh3aW5mbyA9IGh3aW5mbzsKCXBmX2Rldi0+c3ltX3RibCA9IHN5 bV90Ymw7CglwZl9kZXYtPnRvdGFsX3BoeXBvcnRzID0gdG90YWxfcG9ydHM7CgoJaWYgKHRvdGFs X3BvcnRzID4gMSkKCQlwZl9kZXYtPm11bHRpcG9ydCA9IHRydWU7CgoJcGZfZGV2LT5wY2lfZGV2 ID0gcGNpX2RldjsKCgkvKiBNYXAgdGhlIHN5bWJvbCB0YWJsZSAqLwoJcGZfZGV2LT5jdHJsX2Jh ciA9IG5mcF9ydHN5bV9tYXAocGZfZGV2LT5zeW1fdGJsLCAiX3BmMF9uZXRfYmFyMCIsCgkJCXBm X2Rldi0+dG90YWxfcGh5cG9ydHMgKiAzMjc2OCwgJnBmX2Rldi0+Y3RybF9hcmVhKTsKCWlmIChw Zl9kZXYtPmN0cmxfYmFyID09IE5VTEwpIHsKCQlQTURfSU5JVF9MT0coRVJSLCAibmZwX3J0c3lt X21hcCBmYWlscyBmb3IgX3BmMF9uZXRfY3RybF9iYXIiKTsKCQlyZXQgPSAtRUlPOwoJCWdvdG8g cGZfY2xlYW51cDsKCX0KCglQTURfSU5JVF9MT0coREVCVUcsICJjdHJsIGJhcjogJXAiLCBwZl9k ZXYtPmN0cmxfYmFyKTsKCgkvKiBjb25maWd1cmUgYWNjZXNzIHRvIHR4L3J4IHZOSUMgQkFScyAq LwoJc3dpdGNoIChwY2lfZGV2LT5pZC5kZXZpY2VfaWQpIHsKCWNhc2UgUENJX0RFVklDRV9JRF9O RlAzODAwX1BGX05JQzoKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L25mcC9uZnBf ZXRoZGV2LmM6ODg4CmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJZGVmYXVsdDoKCQlQTURf SU5JVF9MT0coRVJSLCAibmZwX25ldDogbm8gZGV2aWNlIElEIG1hdGNoaW5nIik7CgkJZXJyID0g LUVOT0RFVjsKCQlnb3RvIGN0cmxfYXJlYV9jbGVhbnVwOwoJfQoKCXBmX2Rldi0+aHdfcXVldWVz ID0gbmZwX2NwcF9tYXBfYXJlYShwZl9kZXYtPmNwcCwgMCwgMCwKCmVycm9yOiBwYXRjaCBmYWls ZWQ6IGRyaXZlcnMvbmV0L25mcC9uZnBfZXRoZGV2LmM6OTIzCmVycm9yOiB3aGlsZSBzZWFyY2hp bmcgZm9yOgoJaWYgKHBmX2Rldi0+aHdfcXVldWVzID09IE5VTEwpIHsKCQlQTURfSU5JVF9MT0co RVJSLCAibmZwX3J0c3ltX21hcCBmYWlscyBmb3IgbmV0LnFjIik7CgkJcmV0ID0gLUVJTzsKCQln b3RvIGN0cmxfYXJlYV9jbGVhbnVwOwoJfQoKCVBNRF9JTklUX0xPRyhERUJVRywgInR4L3J4IGJh ciBhZGRyZXNzOiAweCVwIiwgcGZfZGV2LT5od19xdWV1ZXMpOwoKCS8qCgkgKiBJbml0aWFsaXpl IGFuZCBwcmVwIHBoeXNpY2FsIHBvcnRzIG5vdwoJICogVGhpcyB3aWxsIGxvb3AgdGhyb3VnaCBh bGwgcGh5c2ljYWwgcG9ydHMKCSAqLwoJcmV0ID0gbmZwX2luaXRfcGh5cG9ydHMocGZfZGV2KTsK CWlmIChyZXQpIHsKCQlQTURfSU5JVF9MT0coRVJSLCAiQ291bGQgbm90IGNyZWF0ZSBwaHlzaWNh bCBwb3J0cyIpOwoJCWdvdG8gaHdxdWV1ZXNfY2xlYW51cDsKCX0KCgplcnJvcjogcGF0Y2ggZmFp bGVkOiBkcml2ZXJzL25ldC9uZnAvbmZwX2V0aGRldi5jOjkzMgpIdW5rICMyMiBzdWNjZWVkZWQg YXQgOTIwIChvZmZzZXQgLTc1IGxpbmVzKS4KSHVuayAjMjMgc3VjY2VlZGVkIGF0IDkyOCAob2Zm c2V0IC03NSBsaW5lcykuCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgpuZnBfcGZfc2Vjb25k YXJ5X2luaXQoc3RydWN0IHJ0ZV9wY2lfZGV2aWNlICpwY2lfZGV2KQp7CglpbnQgaTsKCWludCBl cnI7CglpbnQgdG90YWxfcG9ydHM7CglzdHJ1Y3QgbmZwX2NwcCAqY3BwOwoJc3RydWN0IG5mcF9u ZXRfaHcgKmh3OwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvbmZwL25mcF9ldGhk ZXYuYzo5NzcKSHVuayAjMjUgc3VjY2VlZGVkIGF0IDk3OSAob2Zmc2V0IC03OCBsaW5lcykuCmVy cm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCWlmIChldGhfZGV2ID09IE5VTEwpIHsKCQkJUlRF X0xPRyhFUlIsIEVBTCwKCQkJCSJzZWNvbmRhcnkgcHJvY2VzcyBhdHRhY2ggZmFpbGVkLCBldGhk ZXYgZG9lc24ndCBleGlzdCIpOwoJCQlyZXR1cm4gLUVOT0RFVjsKCQl9CgoJCWh3ID0gTkZQX05F VF9ERVZfUFJJVkFURV9UT19IVyhldGhfZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZSk7CgplcnJvcjog cGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9uZnAvbmZwX2V0aGRldi5jOjEwMjgKZXJyb3I6IHdo aWxlIHNlYXJjaGluZyBmb3I6CgkJcnRlX2V0aF9kZXZfcHJvYmluZ19maW5pc2goZXRoX2Rldik7 Cgl9CgoJLyogUmVnaXN0ZXIgdGhlIENQUCBicmlkZ2Ugc2VydmljZSBmb3IgdGhlIHNlY29uZGFy eSB0b28gKi8KCW5mcF9yZWdpc3Rlcl9jcHBfc2VydmljZShjcHApOwoKCXJldHVybiAwOwp9Cgpz dGF0aWMgaW50CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9uZnAvbmZwX2V0aGRl di5jOjEwNDEKQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9uZnAvbmZwX2NvbW1vbi5oIGNsZWFu bHkuCkFwcGx5aW5nIHBhdGNoIGRyaXZlcnMvbmV0L25mcC9uZnBfZXRoZGV2LmMgd2l0aCAxNSBy ZWplY3RzLi4uClJlamVjdGVkIGh1bmsgIzEuCkh1bmsgIzIgYXBwbGllZCBjbGVhbmx5LgpIdW5r ICMzIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNCBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVkIGh1 bmsgIzUuCkh1bmsgIzYgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM3IGFwcGxpZWQgY2xlYW5seS4K SHVuayAjOCBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzkuClJlamVjdGVkIGh1bmsg IzEwLgpSZWplY3RlZCBodW5rICMxMS4KSHVuayAjMTIgYXBwbGllZCBjbGVhbmx5LgpSZWplY3Rl ZCBodW5rICMxMy4KSHVuayAjMTQgYXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5rICMxNS4K UmVqZWN0ZWQgaHVuayAjMTYuClJlamVjdGVkIGh1bmsgIzE3LgpIdW5rICMxOCBhcHBsaWVkIGNs ZWFubHkuClJlamVjdGVkIGh1bmsgIzE5LgpSZWplY3RlZCBodW5rICMyMC4KUmVqZWN0ZWQgaHVu ayAjMjEuCkh1bmsgIzIyIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMjMgYXBwbGllZCBjbGVhbmx5 LgpSZWplY3RlZCBodW5rICMyNC4KSHVuayAjMjUgYXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBo dW5rICMyNi4KUmVqZWN0ZWQgaHVuayAjMjcuCmRpZmYgYS9kcml2ZXJzL25ldC9uZnAvbmZwX2V0 aGRldi5jIGIvZHJpdmVycy9uZXQvbmZwL25mcF9ldGhkZXYuYwkocmVqZWN0ZWQgaHVua3MpCkBA IC0zOSwxNSArMzksMTUgQEAKICNpbmNsdWRlICJuZnBfY3BwX2JyaWRnZS5oIgogCiBzdGF0aWMg aW50Ci1uZnBfbmV0X3BmX3JlYWRfbWFjKHN0cnVjdCBuZnBfcGZfZGV2ICpwZl9kZXYsIGludCBw b3J0KQorbmZwX25ldF9wZl9yZWFkX21hYyhzdHJ1Y3QgbmZwX2FwcF9uaWMgKmFwcF9uaWMsIGlu dCBwb3J0KQogewogCXN0cnVjdCBuZnBfZXRoX3RhYmxlICpuZnBfZXRoX3RhYmxlOwogCXN0cnVj dCBuZnBfbmV0X2h3ICpodyA9IE5VTEw7CiAKIAkvKiBHcmFiIGEgcG9pbnRlciB0byB0aGUgY29y cmVjdCBwaHlzaWNhbCBwb3J0ICovCi0JaHcgPSBwZl9kZXYtPnBvcnRzW3BvcnRdOworCWh3ID0g YXBwX25pYy0+cG9ydHNbcG9ydF07CiAKLQluZnBfZXRoX3RhYmxlID0gbmZwX2V0aF9yZWFkX3Bv cnRzKHBmX2Rldi0+Y3BwKTsKKwluZnBfZXRoX3RhYmxlID0gbmZwX2V0aF9yZWFkX3BvcnRzKGFw cF9uaWMtPnBmX2Rldi0+Y3BwKTsKIAogCW5mcF9ldGhfY29weV9tYWMoKHVpbnQ4X3QgKikmaHct Pm1hY19hZGRyLAogCQkJICh1aW50OF90ICopJm5mcF9ldGhfdGFibGUtPnBvcnRzW3BvcnRdLm1h Y19hZGRyKTsKQEAgLTI1MCw2ICsyNTIsNyBAQAogCXN0cnVjdCBuZnBfbmV0X2h3ICpodzsKIAlz dHJ1Y3QgcnRlX3BjaV9kZXZpY2UgKnBjaV9kZXY7CiAJc3RydWN0IG5mcF9wZl9kZXYgKnBmX2Rl djsKKwlzdHJ1Y3QgbmZwX2FwcF9uaWMgKmFwcF9uaWM7CiAJaW50IGk7CiAKIAlpZiAocnRlX2Vh bF9wcm9jZXNzX3R5cGUoKSAhPSBSVEVfUFJPQ19QUklNQVJZKQpAQCAtNDA0LDYgKzQwOSw3IEBA CiB7CiAJc3RydWN0IHJ0ZV9wY2lfZGV2aWNlICpwY2lfZGV2OwogCXN0cnVjdCBuZnBfcGZfZGV2 ICpwZl9kZXY7CisJc3RydWN0IG5mcF9hcHBfbmljICphcHBfbmljOwogCXN0cnVjdCBuZnBfbmV0 X2h3ICpodzsKIAlzdHJ1Y3QgcnRlX2V0aGVyX2FkZHIgKnRtcF9ldGhlcl9hZGRyOwogCXVpbnQ2 NF90IHJ4X2Jhcl9vZmYgPSAwOwpAQCAtNDIwLDYgKzQyNiw5IEBACiAJLyogVXNlIGJhY2twb2lu dGVyIGhlcmUgdG8gdGhlIFBGIG9mIHRoaXMgZXRoX2RldiAqLwogCXBmX2RldiA9IE5GUF9ORVRf REVWX1BSSVZBVEVfVE9fUEYoZXRoX2Rldi0+ZGF0YS0+ZGV2X3ByaXZhdGUpOwogCisJLyogVXNl IGJhY2twb2ludGVyIHRvIHRoZSBDb3JlTklDIGFwcCBzdHJ1Y3QgKi8KKwlhcHBfbmljID0gTkZQ X0FQUF9QUklWX1RPX0FQUF9OSUMocGZfZGV2LT5hcHBfcHJpdik7CisKIAkvKiBORlAgY2FuIG5v dCBoYW5kbGUgRE1BIGFkZHJlc3NlcyByZXF1aXJpbmcgbW9yZSB0aGFuIDQwIGJpdHMgKi8KIAlp ZiAocnRlX21lbV9jaGVja19kbWFfbWFzayg0MCkpIHsKIAkJUlRFX0xPRyhFUlIsIFBNRCwKQEAg LTQzOCw3ICs0NDcsNyBAQAogCSAqIFVzZSBQRiBhcnJheSBvZiBwaHlzaWNhbCBwb3J0cyB0byBn ZXQgcG9pbnRlciB0bwogCSAqIHRoaXMgc3BlY2lmaWMgcG9ydAogCSAqLwotCWh3ID0gcGZfZGV2 LT5wb3J0c1twb3J0XTsKKwlodyA9IGFwcF9uaWMtPnBvcnRzW3BvcnRdOwogCiAJUE1EX0lOSVRf TE9HKERFQlVHLCAiV29ya2luZyB3aXRoIHBoeXNpY2FsIHBvcnQgbnVtYmVyOiAlZCwgIgogCQkJ Ik5GUCBpbnRlcm5hbCBwb3J0IG51bWJlcjogJWQiLCBwb3J0LCBody0+bmZwX2lkeCk7CkBAIC03 MTgsMjUgKzcyNyw2NyBAQAogfQogCiBzdGF0aWMgaW50Ci1uZnBfaW5pdF9waHlwb3J0cyhzdHJ1 Y3QgbmZwX3BmX2RldiAqcGZfZGV2KQorbmZwX2luaXRfYXBwX25pYyhzdHJ1Y3QgbmZwX3BmX2Rl diAqcGZfZGV2LAorCQlzdHJ1Y3QgbmZwX2V0aF90YWJsZSAqbmZwX2V0aF90YWJsZSkKIHsKIAlp bnQgaTsKLQlpbnQgcmV0ID0gMDsKKwlpbnQgcmV0OworCWludCBlcnIgPSAwOworCWludCB0b3Rh bF92bmljczsKIAlzdHJ1Y3QgbmZwX25ldF9odyAqaHc7CisJdW5zaWduZWQgaW50IG51bWFfbm9k ZTsKIAlzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXY7Ci0Jc3RydWN0IG5mcF9ldGhfdGFibGUg Km5mcF9ldGhfdGFibGU7CisJc3RydWN0IG5mcF9hcHBfbmljICphcHBfbmljOworCWNoYXIgcG9y dF9uYW1lW1JURV9FVEhfTkFNRV9NQVhfTEVOXTsKIAotCW5mcF9ldGhfdGFibGUgPSBuZnBfZXRo X3JlYWRfcG9ydHMocGZfZGV2LT5jcHApOwotCWlmIChuZnBfZXRoX3RhYmxlID09IE5VTEwpIHsK LQkJUE1EX0lOSVRfTE9HKEVSUiwgIkVycm9yIHJlYWRpbmcgTkZQIGV0aGVybmV0IHRhYmxlIik7 Ci0JCXJldHVybiAtRUlPOworCVBNRF9JTklUX0xPRyhJTkZPLCAiVG90YWwgcGh5c2ljYWwgcG9y dHM6ICVkIiwgbmZwX2V0aF90YWJsZS0+Y291bnQpOworCisJLyogQWxsb2NhdGUgbWVtb3J5IGZv ciB0aGUgQ29yZU5JQyBhcHAgKi8KKwlhcHBfbmljID0gcnRlX3ptYWxsb2MoIm5mcF9hcHBfbmlj Iiwgc2l6ZW9mKCphcHBfbmljKSwgMCk7CisJaWYgKGFwcF9uaWMgPT0gTlVMTCkKKwkJcmV0dXJu IC1FTk9NRU07CisKKwkvKiBQb2ludCB0aGUgYXBwX3ByaXYgcG9pbnRlciBpbiB0aGUgUEYgdG8g dGhlIGNvcmVOSUMgYXBwICovCisJcGZfZGV2LT5hcHBfcHJpdiA9IGFwcF9uaWM7CisKKwkvKiBS ZWFkIHRoZSBudW1iZXIgb2Ygdk5JQydzIGNyZWF0ZWQgZm9yIHRoZSBQRiAqLworCXRvdGFsX3Zu aWNzID0gbmZwX3J0c3ltX3JlYWRfbGUocGZfZGV2LT5zeW1fdGJsLCAibmZkX2NmZ19wZjBfbnVt X3BvcnRzIiwgJmVycik7CisJaWYgKGVyciB8fCB0b3RhbF92bmljcyA8PSAwIHx8IHRvdGFsX3Zu aWNzID4gOCkgeworCQlQTURfSU5JVF9MT0coRVJSLCAibmZkX2NmZ19wZjBfbnVtX3BvcnRzIHN5 bWJvbCB3aXRoIHdyb25nIHZhbHVlIik7CisJCXJldCA9IC1FTk9ERVY7CisJCWdvdG8gYXBwX2Ns ZWFudXA7CiAJfQogCi0JLyogTG9vcCB0aHJvdWdoIGFsbCBwaHlzaWNhbCBwb3J0cyBvbiBQRiAq LwotCWZvciAoaSA9IDA7IGkgPCBwZl9kZXYtPnRvdGFsX3BoeXBvcnRzOyBpKyspIHsKLQkJY29u c3QgdW5zaWduZWQgaW50IG51bWFfbm9kZSA9IHJ0ZV9zb2NrZXRfaWQoKTsKLQkJY2hhciBwb3J0 X25hbWVbUlRFX0VUSF9OQU1FX01BWF9MRU5dOworCS8qCisJICogRm9yIGNvcmVOSUMgdGhlIG51 bWJlciBvZiB2TklDcyBleHBvc2VkIHNob3VsZCBiZSB0aGUgc2FtZSBhcyB0aGUKKwkgKiBudW1i ZXIgb2YgcGh5c2ljYWwgcG9ydHMKKwkgKi8KKwlpZiAodG90YWxfdm5pY3MgIT0gKGludCluZnBf ZXRoX3RhYmxlLT5jb3VudCkgeworCQlQTURfSU5JVF9MT0coRVJSLCAiVG90YWwgcGh5c2ljYWwg cG9ydHMgZG8gbm90IG1hdGNoIG51bWJlciBvZiB2TklDcyIpOworCQlyZXQgPSAtRU5PREVWOwor CQlnb3RvIGFwcF9jbGVhbnVwOworCX0KIAorCS8qIFBvcHVsYXRlIGNvcmVOSUMgYXBwIHByb3Bl cnRpZXMqLworCWFwcF9uaWMtPnRvdGFsX3BoeXBvcnRzID0gdG90YWxfdm5pY3M7CisJYXBwX25p Yy0+cGZfZGV2ID0gcGZfZGV2OworCWlmICh0b3RhbF92bmljcyA+IDEpCisJCWFwcF9uaWMtPm11 bHRpcG9ydCA9IHRydWU7CisKKwkvKiBNYXAgdGhlIHN5bWJvbCB0YWJsZSAqLworCXBmX2Rldi0+ Y3RybF9iYXIgPSBuZnBfcnRzeW1fbWFwKHBmX2Rldi0+c3ltX3RibCwgIl9wZjBfbmV0X2JhcjAi LAorCQkJYXBwX25pYy0+dG90YWxfcGh5cG9ydHMgKiAzMjc2OCwgJnBmX2Rldi0+Y3RybF9hcmVh KTsKKwlpZiAocGZfZGV2LT5jdHJsX2JhciA9PSBOVUxMKSB7CisJCVBNRF9JTklUX0xPRyhFUlIs ICJuZnBfcnRzeW1fbWFwIGZhaWxzIGZvciBfcGYwX25ldF9jdHJsX2JhciIpOworCQlyZXQgPSAt RUlPOworCQlnb3RvIGFwcF9jbGVhbnVwOworCX0KKworCVBNRF9JTklUX0xPRyhERUJVRywgImN0 cmwgYmFyOiAlcCIsIHBmX2Rldi0+Y3RybF9iYXIpOworCisJLyogTG9vcCB0aHJvdWdoIGFsbCBw aHlzaWNhbCBwb3J0cyBvbiBQRiAqLworCW51bWFfbm9kZSA9IHJ0ZV9zb2NrZXRfaWQoKTsKKwlm b3IgKGkgPSAwOyBpIDwgYXBwX25pYy0+dG90YWxfcGh5cG9ydHM7IGkrKykgewogCQlzbnByaW50 Zihwb3J0X25hbWUsIHNpemVvZihwb3J0X25hbWUpLCAiJXNfcG9ydCVkIiwKIAkJCSBwZl9kZXYt PnBjaV9kZXYtPmRldmljZS5uYW1lLCBpKTsKIApAQCAtNzgzLDIwICs4MzQsMjEgQEAKIAkJcnRl X2V0aF9kZXZfcHJvYmluZ19maW5pc2goZXRoX2Rldik7CiAKIAl9IC8qIEVuZCBsb29wLCBhbGwg cG9ydHMgb24gdGhpcyBQRiAqLwotCXJldCA9IDA7Ci0JZ290byBldGhfdGFibGVfY2xlYW51cDsK KworCXJldHVybiAwOwogCiBwb3J0X2NsZWFudXA6Ci0JZm9yIChpID0gMDsgaSA8IHBmX2Rldi0+ dG90YWxfcGh5cG9ydHM7IGkrKykgewotCQlpZiAocGZfZGV2LT5wb3J0c1tpXSAmJiBwZl9kZXYt PnBvcnRzW2ldLT5ldGhfZGV2KSB7CisJZm9yIChpID0gMDsgaSA8IGFwcF9uaWMtPnRvdGFsX3Bo eXBvcnRzOyBpKyspIHsKKwkJaWYgKGFwcF9uaWMtPnBvcnRzW2ldICYmIGFwcF9uaWMtPnBvcnRz W2ldLT5ldGhfZGV2KSB7CiAJCQlzdHJ1Y3QgcnRlX2V0aF9kZXYgKnRtcF9kZXY7Ci0JCQl0bXBf ZGV2ID0gcGZfZGV2LT5wb3J0c1tpXS0+ZXRoX2RldjsKKwkJCXRtcF9kZXYgPSBhcHBfbmljLT5w b3J0c1tpXS0+ZXRoX2RldjsKIAkJCXJ0ZV9ldGhfZGV2X3JlbGVhc2VfcG9ydCh0bXBfZGV2KTsK LQkJCXBmX2Rldi0+cG9ydHNbaV0gPSBOVUxMOworCQkJYXBwX25pYy0+cG9ydHNbaV0gPSBOVUxM OwogCQl9CiAJfQotZXRoX3RhYmxlX2NsZWFudXA6Ci0JZnJlZShuZnBfZXRoX3RhYmxlKTsKKwlu ZnBfY3BwX2FyZWFfZnJlZShwZl9kZXYtPmN0cmxfYXJlYSk7CithcHBfY2xlYW51cDoKKwlydGVf ZnJlZShhcHBfbmljKTsKIAogCXJldHVybiByZXQ7CiB9CkBAIC04MDQsMTEgKzg1NiwxMSBAQAog c3RhdGljIGludAogbmZwX3BmX2luaXQoc3RydWN0IHJ0ZV9wY2lfZGV2aWNlICpwY2lfZGV2KQog ewotCWludCBlcnI7Ci0JaW50IHJldCA9IDA7CisJaW50IHJldDsKKwlpbnQgZXJyID0gMDsKIAl1 aW50NjRfdCBhZGRyOwotCWludCB0b3RhbF9wb3J0czsKIAlzdHJ1Y3QgbmZwX2NwcCAqY3BwOwor CWVudW0gbmZwX2FwcF9pZCBhcHBfaWQ7CiAJc3RydWN0IG5mcF9wZl9kZXYgKnBmX2RldjsKIAlz dHJ1Y3QgbmZwX2h3aW5mbyAqaHdpbmZvOwogCWNoYXIgbmFtZVtSVEVfRVRIX05BTUVfTUFYX0xF Tl07CkBAIC04NDAsOSArODkyLDEwIEBACiAJaWYgKGh3aW5mbyA9PSBOVUxMKSB7CiAJCVBNRF9J TklUX0xPRyhFUlIsICJFcnJvciByZWFkaW5nIGh3aW5mbyB0YWJsZSIpOwogCQlyZXQgPSAtRUlP OwotCQlnb3RvIGVycm9yOworCQlnb3RvIGNwcF9jbGVhbnVwOwogCX0KIAorCS8qIFJlYWQgdGhl IG51bWJlciBvZiBwaHlzaWNhbCBwb3J0cyBmcm9tIGhhcmR3YXJlICovCiAJbmZwX2V0aF90YWJs ZSA9IG5mcF9ldGhfcmVhZF9wb3J0cyhjcHApOwogCWlmIChuZnBfZXRoX3RhYmxlID09IE5VTEwp IHsKIAkJUE1EX0lOSVRfTE9HKEVSUiwgIkVycm9yIHJlYWRpbmcgTkZQIGV0aGVybmV0IHRhYmxl Iik7CkBAIC04ODgsMjcgKzkzNSwxMiBAQAogCX0KIAogCS8qIFBvcHVsYXRlIHRoZSBuZXdseSBj cmVhdGVkIFBGIGRldmljZSAqLworCXBmX2Rldi0+YXBwX2lkID0gYXBwX2lkOwogCXBmX2Rldi0+ Y3BwID0gY3BwOwogCXBmX2Rldi0+aHdpbmZvID0gaHdpbmZvOwogCXBmX2Rldi0+c3ltX3RibCA9 IHN5bV90Ymw7Ci0JcGZfZGV2LT50b3RhbF9waHlwb3J0cyA9IHRvdGFsX3BvcnRzOwotCi0JaWYg KHRvdGFsX3BvcnRzID4gMSkKLQkJcGZfZGV2LT5tdWx0aXBvcnQgPSB0cnVlOwotCiAJcGZfZGV2 LT5wY2lfZGV2ID0gcGNpX2RldjsKIAotCS8qIE1hcCB0aGUgc3ltYm9sIHRhYmxlICovCi0JcGZf ZGV2LT5jdHJsX2JhciA9IG5mcF9ydHN5bV9tYXAocGZfZGV2LT5zeW1fdGJsLCAiX3BmMF9uZXRf YmFyMCIsCi0JCQlwZl9kZXYtPnRvdGFsX3BoeXBvcnRzICogMzI3NjgsICZwZl9kZXYtPmN0cmxf YXJlYSk7Ci0JaWYgKHBmX2Rldi0+Y3RybF9iYXIgPT0gTlVMTCkgewotCQlQTURfSU5JVF9MT0co RVJSLCAibmZwX3J0c3ltX21hcCBmYWlscyBmb3IgX3BmMF9uZXRfY3RybF9iYXIiKTsKLQkJcmV0 ID0gLUVJTzsKLQkJZ290byBwZl9jbGVhbnVwOwotCX0KLQotCVBNRF9JTklUX0xPRyhERUJVRywg ImN0cmwgYmFyOiAlcCIsIHBmX2Rldi0+Y3RybF9iYXIpOwotCiAJLyogY29uZmlndXJlIGFjY2Vz cyB0byB0eC9yeCB2TklDIEJBUnMgKi8KIAlzd2l0Y2ggKHBjaV9kZXYtPmlkLmRldmljZV9pZCkg ewogCWNhc2UgUENJX0RFVklDRV9JRF9ORlAzODAwX1BGX05JQzoKQEAgLTkyMyw3ICs5NTUsNyBA QAogCWRlZmF1bHQ6CiAJCVBNRF9JTklUX0xPRyhFUlIsICJuZnBfbmV0OiBubyBkZXZpY2UgSUQg bWF0Y2hpbmciKTsKIAkJZXJyID0gLUVOT0RFVjsKLQkJZ290byBjdHJsX2FyZWFfY2xlYW51cDsK KwkJZ290byBwZl9jbGVhbnVwOwogCX0KIAogCXBmX2Rldi0+aHdfcXVldWVzID0gbmZwX2NwcF9t YXBfYXJlYShwZl9kZXYtPmNwcCwgMCwgMCwKQEAgLTkzMiwxOCArOTY0LDI3IEBACiAJaWYgKHBm X2Rldi0+aHdfcXVldWVzID09IE5VTEwpIHsKIAkJUE1EX0lOSVRfTE9HKEVSUiwgIm5mcF9ydHN5 bV9tYXAgZmFpbHMgZm9yIG5ldC5xYyIpOwogCQlyZXQgPSAtRUlPOwotCQlnb3RvIGN0cmxfYXJl YV9jbGVhbnVwOworCQlnb3RvIHBmX2NsZWFudXA7CiAJfQogCiAJUE1EX0lOSVRfTE9HKERFQlVH LCAidHgvcnggYmFyIGFkZHJlc3M6IDB4JXAiLCBwZl9kZXYtPmh3X3F1ZXVlcyk7CiAKIAkvKgot CSAqIEluaXRpYWxpemUgYW5kIHByZXAgcGh5c2ljYWwgcG9ydHMgbm93Ci0JICogVGhpcyB3aWxs IGxvb3AgdGhyb3VnaCBhbGwgcGh5c2ljYWwgcG9ydHMKKwkgKiBQRiBpbml0aWFsaXphdGlvbiBo YXMgYmVlbiBkb25lIGF0IHRoaXMgcG9pbnQuIENhbGwgYXBwIHNwZWNpZmljCisJICogaW5pdCBj b2RlIG5vdwogCSAqLwotCXJldCA9IG5mcF9pbml0X3BoeXBvcnRzKHBmX2Rldik7Ci0JaWYgKHJl dCkgewotCQlQTURfSU5JVF9MT0coRVJSLCAiQ291bGQgbm90IGNyZWF0ZSBwaHlzaWNhbCBwb3J0 cyIpOworCXN3aXRjaCAocGZfZGV2LT5hcHBfaWQpIHsKKwljYXNlIE5GUF9BUFBfQ09SRV9OSUM6 CisJCVBNRF9JTklUX0xPRyhJTkZPLCAiSW5pdGlhbGl6aW5nIGNvcmVOSUMiKTsKKwkJcmV0ID0g bmZwX2luaXRfYXBwX25pYyhwZl9kZXYsIG5mcF9ldGhfdGFibGUpOworCQlpZiAocmV0KSB7CisJ CQlQTURfSU5JVF9MT0coRVJSLCAiQ291bGQgbm90IGluaXRpYWxpemUgY29yZU5JQyEiKTsKKwkJ CWdvdG8gaHdxdWV1ZXNfY2xlYW51cDsKKwkJfQorCQlicmVhazsKKwlkZWZhdWx0OgorCQlQTURf SU5JVF9MT0coRVJSLCAiVW5zdXBwb3J0ZWQgRmlybXdhcmUgbG9hZGVkIik7CisJCXJldCA9IC1F SU5WQUw7CiAJCWdvdG8gaHdxdWV1ZXNfY2xlYW51cDsKIAl9CiAKQEAgLTk3Nyw3ICsxMDE4LDgg QEAKIG5mcF9wZl9zZWNvbmRhcnlfaW5pdChzdHJ1Y3QgcnRlX3BjaV9kZXZpY2UgKnBjaV9kZXYp CiB7CiAJaW50IGk7Ci0JaW50IGVycjsKKwlpbnQgZXJyID0gMDsKKwlpbnQgcmV0ID0gMDsKIAlp bnQgdG90YWxfcG9ydHM7CiAJc3RydWN0IG5mcF9jcHAgKmNwcDsKIAlzdHJ1Y3QgbmZwX25ldF9o dyAqaHc7CkBAIC0xMDI4LDcgKzEwNzUsOCBAQAogCQlpZiAoZXRoX2RldiA9PSBOVUxMKSB7CiAJ CQlSVEVfTE9HKEVSUiwgRUFMLAogCQkJCSJzZWNvbmRhcnkgcHJvY2VzcyBhdHRhY2ggZmFpbGVk LCBldGhkZXYgZG9lc24ndCBleGlzdCIpOwotCQkJcmV0dXJuIC1FTk9ERVY7CisJCQlyZXQgPSAt RU5PREVWOworCQkJYnJlYWs7CiAJCX0KIAogCQlodyA9IE5GUF9ORVRfREVWX1BSSVZBVEVfVE9f SFcoZXRoX2Rldi0+ZGF0YS0+ZGV2X3ByaXZhdGUpOwpAQCAtMTA0MSwxMCArMTA4OSwxNiBAQAog CQlydGVfZXRoX2Rldl9wcm9iaW5nX2ZpbmlzaChldGhfZGV2KTsKIAl9CiAKKwlpZiAocmV0KQor CQlnb3RvIHN5bV90YmxfY2xlYW51cDsKKwogCS8qIFJlZ2lzdGVyIHRoZSBDUFAgYnJpZGdlIHNl cnZpY2UgZm9yIHRoZSBzZWNvbmRhcnkgdG9vICovCiAJbmZwX3JlZ2lzdGVyX2NwcF9zZXJ2aWNl KGNwcCk7CiAKLQlyZXR1cm4gMDsKK3N5bV90YmxfY2xlYW51cDoKKwlmcmVlKHN5bV90YmwpOwor CisJcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIGludApDaGVja2luZyBwYXRjaCBkcml2ZXJzL25l dC9uZnAvbmZwX2NvbW1vbi5oLi4uCmVycm9yOiBkcml2ZXJzL25ldC9uZnAvbmZwX2NvbW1vbi5o OiBkb2VzIG5vdCBtYXRjaCBpbmRleApDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9uZnAvbmZw X2V0aGRldi5jLi4uCmVycm9yOiBkcml2ZXJzL25ldC9uZnAvbmZwX2V0aGRldi5jOiBkb2VzIG5v dCBtYXRjaCBpbmRleApDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9uZnAvbmZwX2V0aGRldi5j Li4uCmVycm9yOiBkcml2ZXJzL25ldC9uZnAvbmZwX2V0aGRldi5jOiBkb2VzIG5vdCBtYXRjaCBp bmRleApDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9uZnAvZmxvd2VyL25mcF9mbG93ZXIuYy4u LgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9uZnAvZmxvd2VyL25mcF9mbG93ZXIuaC4uLgpD aGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9uZnAvbWVzb24uYnVpbGQuLi4KQ2hlY2tpbmcgcGF0 Y2ggZHJpdmVycy9uZXQvbmZwL25mcF9jcHBfYnJpZGdlLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJp dmVycy9uZXQvbmZwL25mcF9jcHBfYnJpZGdlLmguLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9u ZXQvbmZwL25mcF9ldGhkZXYuYy4uLgplcnJvcjogZHJpdmVycy9uZXQvbmZwL25mcF9ldGhkZXYu YzogZG9lcyBub3QgbWF0Y2ggaW5kZXgKQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9uZnAvZmxv d2VyL25mcF9mbG93ZXIuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L25mcC9m bG93ZXIvbmZwX2Zsb3dlci5oIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvbmZw L21lc29uLmJ1aWxkIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvbmZwL25mcF9j cHBfYnJpZGdlLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9uZnAvbmZwX2Nw cF9icmlkZ2UuaCBjbGVhbmx5LgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9uZnAvZmxvd2Vy L25mcF9mbG93ZXIuYy4uLgplcnJvcjogZHJpdmVycy9uZXQvbmZwL2Zsb3dlci9uZnBfZmxvd2Vy LmM6IGRvZXMgbm90IGV4aXN0IGluIGluZGV4CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L25m cC9mbG93ZXIvbmZwX2Zsb3dlci5oLi4uCmVycm9yOiBkcml2ZXJzL25ldC9uZnAvZmxvd2VyL25m cF9mbG93ZXIuaDogZG9lcyBub3QgZXhpc3QgaW4gaW5kZXgKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVy cy9uZXQvbmZwL2Zsb3dlci9uZnBfZmxvd2VyX292c19jb21wYXQuaC4uLgpDaGVja2luZyBwYXRj aCBkcml2ZXJzL25ldC9uZnAvbmZwX2NvbW1vbi5oLi4uCmVycm9yOiBkcml2ZXJzL25ldC9uZnAv bmZwX2NvbW1vbi5oOiBkb2VzIG5vdCBtYXRjaCBpbmRleApBcHBsaWVkIHBhdGNoIGRyaXZlcnMv bmV0L25mcC9mbG93ZXIvbmZwX2Zsb3dlcl9vdnNfY29tcGF0LmggY2xlYW5seS4KQ2hlY2tpbmcg cGF0Y2ggZHJpdmVycy9uZXQvbmZwL2Zsb3dlci9uZnBfZmxvd2VyLmMuLi4KZXJyb3I6IGRyaXZl cnMvbmV0L25mcC9mbG93ZXIvbmZwX2Zsb3dlci5jOiBkb2VzIG5vdCBleGlzdCBpbiBpbmRleApD aGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9uZnAvZmxvd2VyL25mcF9mbG93ZXIuYy4uLgplcnJv cjogZHJpdmVycy9uZXQvbmZwL2Zsb3dlci9uZnBfZmxvd2VyLmM6IGRvZXMgbm90IGV4aXN0IGlu IGluZGV4CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L25mcC9mbG93ZXIvbmZwX2Zsb3dlci5o Li4uCmVycm9yOiBkcml2ZXJzL25ldC9uZnAvZmxvd2VyL25mcF9mbG93ZXIuaDogZG9lcyBub3Qg ZXhpc3QgaW4gaW5kZXgKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbmZwL25mcF9yeHR4LmMu Li4KSHVuayAjMSBzdWNjZWVkZWQgYXQgMTM0IChvZmZzZXQgMTggbGluZXMpLgpIdW5rICMyIHN1 Y2NlZWRlZCBhdCA1OTUgKG9mZnNldCAxOCBsaW5lcykuCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcg Zm9yOgoJcmV0dXJuIDA7Cn0KCi8qIExlYXZpbmcgYWx3YXlzIGZyZWUgZGVzY3JpcHRvcnMgZm9y IGF2b2lkaW5nIHdyYXBwaW5nIGNvbmZ1c2lvbiAqLwpzdGF0aWMgaW5saW5lCnVpbnQzMl90IG5m cF9uZXRfbmZkM19mcmVlX3R4X2Rlc2Moc3RydWN0IG5mcF9uZXRfdHhxICp0eHEpCnsKCWlmICh0 eHEtPndyX3AgPj0gdHhxLT5yZF9wKQoJCXJldHVybiB0eHEtPnR4X2NvdW50IC0gKHR4cS0+d3Jf cCAtIHR4cS0+cmRfcCkgLSA4OwoJZWxzZQoJCXJldHVybiB0eHEtPnJkX3AgLSB0eHEtPndyX3Ag LSA4Owp9CgovKgogKiBuZnBfbmV0X3R4cV9mdWxsIC0gQ2hlY2sgaWYgdGhlIFRYIHF1ZXVlIGZy ZWUgZGVzY3JpcHRvcnMKICogaXMgYmVsb3cgdHhfZnJlZV90aHJlc2hvbGQKICoKICogQHR4cTog VFggcXVldWUgdG8gY2hlY2sKICoKICogVGhpcyBmdW5jdGlvbiB1c2VzIHRoZSBob3N0IGNvcHkq IG9mIHJlYWQvd3JpdGUgcG9pbnRlcnMKICovCnN0YXRpYyBpbmxpbmUKdWludDMyX3QgbmZwX25l dF9uZmQzX3R4cV9mdWxsKHN0cnVjdCBuZnBfbmV0X3R4cSAqdHhxKQp7CglyZXR1cm4gKG5mcF9u ZXRfbmZkM19mcmVlX3R4X2Rlc2ModHhxKSA8IHR4cS0+dHhfZnJlZV90aHJlc2gpOwp9CgovKiBu ZnBfbmV0X3R4X3RzbyAtIFNldCBUWCBkZXNjcmlwdG9yIGZvciBUU08gKi8Kc3RhdGljIGlubGlu ZSB2b2lkCm5mcF9uZXRfbmZkM190eF90c28oc3RydWN0IG5mcF9uZXRfdHhxICp0eHEsIHN0cnVj dCBuZnBfbmV0X25mZDNfdHhfZGVzYyAqdHhkLAoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVy cy9uZXQvbmZwL25mcF9yeHR4LmM6Nzc0CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L25mcC9u ZnBfcnh0eC5oLi4uCkh1bmsgIzEgc3VjY2VlZGVkIGF0IDI3NCAob2Zmc2V0IC01NiBsaW5lcyku CmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgp1aW50MTZfdCBuZnBfbmV0X25mZGtfeG1pdF9w a3RzKHZvaWQgKnR4X3F1ZXVlLAoJCXN0cnVjdCBydGVfbWJ1ZiAqKnR4X3BrdHMsCgkJdWludDE2 X3QgbmJfcGt0cyk7CgojZW5kaWYgLyogX05GUF9SWFRYX0hfICovCi8qCgplcnJvcjogcGF0Y2gg ZmFpbGVkOiBkcml2ZXJzL25ldC9uZnAvbmZwX3J4dHguaDozNTUKQXBwbHlpbmcgcGF0Y2ggZHJp dmVycy9uZXQvbmZwL25mcF9yeHR4LmMgd2l0aCAxIHJlamVjdC4uLgpIdW5rICMxIGFwcGxpZWQg Y2xlYW5seS4KSHVuayAjMiBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzMuCkFwcGx5 aW5nIHBhdGNoIGRyaXZlcnMvbmV0L25mcC9uZnBfcnh0eC5oIHdpdGggMSByZWplY3QuLi4KSHVu ayAjMSBhcHBsaWVkIGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzIuCmRpZmYgYS9kcml2ZXJzL25l dC9uZnAvbmZwX3J4dHguYyBiL2RyaXZlcnMvbmV0L25mcC9uZnBfcnh0eC5jCShyZWplY3RlZCBo dW5rcykKQEAgLTc3NCwzMCArNzY4LDYgQEAKIAlyZXR1cm4gMDsKIH0KIAotLyogTGVhdmluZyBh bHdheXMgZnJlZSBkZXNjcmlwdG9ycyBmb3IgYXZvaWRpbmcgd3JhcHBpbmcgY29uZnVzaW9uICov Ci1zdGF0aWMgaW5saW5lCi11aW50MzJfdCBuZnBfbmV0X25mZDNfZnJlZV90eF9kZXNjKHN0cnVj dCBuZnBfbmV0X3R4cSAqdHhxKQotewotCWlmICh0eHEtPndyX3AgPj0gdHhxLT5yZF9wKQotCQly ZXR1cm4gdHhxLT50eF9jb3VudCAtICh0eHEtPndyX3AgLSB0eHEtPnJkX3ApIC0gODsKLQllbHNl Ci0JCXJldHVybiB0eHEtPnJkX3AgLSB0eHEtPndyX3AgLSA4OwotfQotCi0vKgotICogbmZwX25l dF90eHFfZnVsbCAtIENoZWNrIGlmIHRoZSBUWCBxdWV1ZSBmcmVlIGRlc2NyaXB0b3JzCi0gKiBp cyBiZWxvdyB0eF9mcmVlX3RocmVzaG9sZAotICoKLSAqIEB0eHE6IFRYIHF1ZXVlIHRvIGNoZWNr Ci0gKgotICogVGhpcyBmdW5jdGlvbiB1c2VzIHRoZSBob3N0IGNvcHkqIG9mIHJlYWQvd3JpdGUg cG9pbnRlcnMKLSAqLwotc3RhdGljIGlubGluZQotdWludDMyX3QgbmZwX25ldF9uZmQzX3R4cV9m dWxsKHN0cnVjdCBuZnBfbmV0X3R4cSAqdHhxKQotewotCXJldHVybiAobmZwX25ldF9uZmQzX2Zy ZWVfdHhfZGVzYyh0eHEpIDwgdHhxLT50eF9mcmVlX3RocmVzaCk7Ci19Ci0KIC8qIG5mcF9uZXRf dHhfdHNvIC0gU2V0IFRYIGRlc2NyaXB0b3IgZm9yIFRTTyAqLwogc3RhdGljIGlubGluZSB2b2lk CiBuZnBfbmV0X25mZDNfdHhfdHNvKHN0cnVjdCBuZnBfbmV0X3R4cSAqdHhxLCBzdHJ1Y3QgbmZw X25ldF9uZmQzX3R4X2Rlc2MgKnR4ZCwKZGlmZiBhL2RyaXZlcnMvbmV0L25mcC9uZnBfcnh0eC5o IGIvZHJpdmVycy9uZXQvbmZwL25mcF9yeHR4LmgJKHJlamVjdGVkIGh1bmtzKQpAQCAtMzU1LDYg KzM4NSw3IEBAIGludCBuZnBfbmV0X25mZGtfdHhfcXVldWVfc2V0dXAoc3RydWN0IHJ0ZV9ldGhf ZGV2ICpkZXYsCiB1aW50MTZfdCBuZnBfbmV0X25mZGtfeG1pdF9wa3RzKHZvaWQgKnR4X3F1ZXVl LAogCQlzdHJ1Y3QgcnRlX21idWYgKip0eF9wa3RzLAogCQl1aW50MTZfdCBuYl9wa3RzKTsKK2lu dCBuZnBfbmV0X3R4X2ZyZWVfYnVmcyhzdHJ1Y3QgbmZwX25ldF90eHEgKnR4cSk7CiAKICNlbmRp ZiAvKiBfTkZQX1JYVFhfSF8gKi8KIC8qCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L25mcC9m bG93ZXIvbmZwX2Zsb3dlci5jLi4uCmVycm9yOiBkcml2ZXJzL25ldC9uZnAvZmxvd2VyL25mcF9m bG93ZXIuYzogZG9lcyBub3QgZXhpc3QgaW4gaW5kZXgKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9u ZXQvbmZwL2Zsb3dlci9uZnBfZmxvd2VyLmguLi4KZXJyb3I6IGRyaXZlcnMvbmV0L25mcC9mbG93 ZXIvbmZwX2Zsb3dlci5oOiBkb2VzIG5vdCBleGlzdCBpbiBpbmRleApDaGVja2luZyBwYXRjaCBk cml2ZXJzL25ldC9uZnAvZmxvd2VyL25mcF9mbG93ZXJfY3RybC5jLi4uCkNoZWNraW5nIHBhdGNo IGRyaXZlcnMvbmV0L25mcC9mbG93ZXIvbmZwX2Zsb3dlcl9jdHJsLmguLi4KQ2hlY2tpbmcgcGF0 Y2ggZHJpdmVycy9uZXQvbmZwL21lc29uLmJ1aWxkLi4uCmVycm9yOiBkcml2ZXJzL25ldC9uZnAv bWVzb24uYnVpbGQ6IGRvZXMgbm90IG1hdGNoIGluZGV4CkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9u ZXQvbmZwL2Zsb3dlci9uZnBfZmxvd2VyX2N0cmwuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRy aXZlcnMvbmV0L25mcC9mbG93ZXIvbmZwX2Zsb3dlcl9jdHJsLmggY2xlYW5seS4KQ2hlY2tpbmcg cGF0Y2ggZHJpdmVycy9uZXQvbmZwL2Zsb3dlci9uZnBfZmxvd2VyLmMuLi4KZXJyb3I6IGRyaXZl cnMvbmV0L25mcC9mbG93ZXIvbmZwX2Zsb3dlci5jOiBkb2VzIG5vdCBleGlzdCBpbiBpbmRleApD aGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9uZnAvZmxvd2VyL25mcF9mbG93ZXIuaC4uLgplcnJv cjogZHJpdmVycy9uZXQvbmZwL2Zsb3dlci9uZnBfZmxvd2VyLmg6IGRvZXMgbm90IGV4aXN0IGlu IGluZGV4CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L25mcC9mbG93ZXIvbmZwX2Zsb3dlcl9j bXNnLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbmZwL2Zsb3dlci9uZnBfZmxvd2Vy X2Ntc2cuaC4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9uZnAvZmxvd2VyL25mcF9mbG93 ZXJfcmVwcmVzZW50b3IuYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9uZnAvZmxvd2Vy L25mcF9mbG93ZXJfcmVwcmVzZW50b3IuaC4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9u ZnAvbWVzb24uYnVpbGQuLi4KZXJyb3I6IGRyaXZlcnMvbmV0L25mcC9tZXNvbi5idWlsZDogZG9l cyBub3QgbWF0Y2ggaW5kZXgKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbmZwL25mcGNvcmUv bmZwX2NwcF9wY2llX29wcy5jLi4uCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvbmZwL2Zsb3dl ci9uZnBfZmxvd2VyX2Ntc2cuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L25m cC9mbG93ZXIvbmZwX2Zsb3dlcl9jbXNnLmggY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJz L25ldC9uZnAvZmxvd2VyL25mcF9mbG93ZXJfcmVwcmVzZW50b3IuYyBjbGVhbmx5LgpBcHBsaWVk IHBhdGNoIGRyaXZlcnMvbmV0L25mcC9mbG93ZXIvbmZwX2Zsb3dlcl9yZXByZXNlbnRvci5oIGNs ZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvbmZwL25mcGNvcmUvbmZwX2NwcF9wY2ll X29wcy5jIGNsZWFubHkuCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L25mcC9uZnBfY29tbW9u LmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbmZwL25mcF9ldGhkZXYuYy4uLgplcnJv cjogZHJpdmVycy9uZXQvbmZwL25mcF9ldGhkZXYuYzogZG9lcyBub3QgbWF0Y2ggaW5kZXgKQ2hl Y2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbmZwL25mcF9ldGhkZXZfdmYuYy4uLgplcnJvcjogd2hp bGUgc2VhcmNoaW5nIGZvcjoKI2luY2x1ZGUgIm5mcGNvcmUvbmZwX3J0c3ltLmgiCgojaW5jbHVk ZSAibmZwX2NvbW1vbi5oIgojaW5jbHVkZSAibmZwX3J4dHguaCIKI2luY2x1ZGUgIm5mcF9sb2dz LmgiCiNpbmNsdWRlICJuZnBfY3RybC5oIgoKc3RhdGljIHZvaWQKbmZwX25ldHZmX3JlYWRfbWFj KHN0cnVjdCBuZnBfbmV0X2h3ICpodykKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0 L25mcC9uZnBfZXRoZGV2X3ZmLmM6MTkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbmZwL25m cF9yeHR4LmMuLi4KZXJyb3I6IGRyaXZlcnMvbmV0L25mcC9uZnBfcnh0eC5jOiBkb2VzIG5vdCBt YXRjaCBpbmRleApDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9uZnAvbmZwX3J4dHguaC4uLgpl cnJvcjogZHJpdmVycy9uZXQvbmZwL25mcF9yeHR4Lmg6IGRvZXMgbm90IG1hdGNoIGluZGV4CkFw cGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvbmZwL25mcF9jb21tb24uYyBjbGVhbmx5LgpBcHBseWlu ZyBwYXRjaCBkcml2ZXJzL25ldC9uZnAvbmZwX2V0aGRldl92Zi5jIHdpdGggMSByZWplY3QuLi4K UmVqZWN0ZWQgaHVuayAjMS4KZGlmZiBhL2RyaXZlcnMvbmV0L25mcC9uZnBfZXRoZGV2X3ZmLmMg Yi9kcml2ZXJzL25ldC9uZnAvbmZwX2V0aGRldl92Zi5jCShyZWplY3RlZCBodW5rcykKQEAgLTE5 LDkgKzE5LDkgQEAKICNpbmNsdWRlICJuZnBjb3JlL25mcF9ydHN5bS5oIgogCiAjaW5jbHVkZSAi bmZwX2NvbW1vbi5oIgorI2luY2x1ZGUgIm5mcF9jdHJsLmgiCiAjaW5jbHVkZSAibmZwX3J4dHgu aCIKICNpbmNsdWRlICJuZnBfbG9ncy5oIgotI2luY2x1ZGUgIm5mcF9jdHJsLmgiCiAKIHN0YXRp YyB2b2lkCiBuZnBfbmV0dmZfcmVhZF9tYWMoc3RydWN0IG5mcF9uZXRfaHcgKmh3KQpDaGVja2lu ZyBwYXRjaCBkcml2ZXJzL25ldC9uZnAvZmxvd2VyL25mcF9mbG93ZXIuYy4uLgplcnJvcjogZHJp dmVycy9uZXQvbmZwL2Zsb3dlci9uZnBfZmxvd2VyLmM6IGRvZXMgbm90IGV4aXN0IGluIGluZGV4 CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L25mcC9mbG93ZXIvbmZwX2Zsb3dlci5oLi4uCmVy cm9yOiBkcml2ZXJzL25ldC9uZnAvZmxvd2VyL25mcF9mbG93ZXIuaDogZG9lcyBub3QgZXhpc3Qg aW4gaW5kZXgKCmh0dHBzOi8vbGFiLmRwZGsub3JnL3Jlc3VsdHMvZGFzaGJvYXJkL3BhdGNoc2V0 cy8yMjcxNS8KClVOSC1JT0wgRFBESyBDb21tdW5pdHkgTGFiCg== --===============8551658016818826669==--