Return-path: Received: from mail-vk0-f43.google.com ([209.85.213.43]:32921 "EHLO mail-vk0-f43.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752579AbbHaVAK (ORCPT ); Mon, 31 Aug 2015 17:00:10 -0400 Received: by vkbf67 with SMTP id f67so39973828vkb.0 for ; Mon, 31 Aug 2015 14:00:08 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: <2520663.ftp6yqfzU7@bentobox> References: <2520663.ftp6yqfzU7@bentobox> Date: Mon, 31 Aug 2015 16:52:54 -0400 Message-ID: (sfid-20150831_230023_902824_827CE5C5) Subject: Fwd: CT firmware and linux kernel patches for OpenWRT( ar71xx - Tp-Link 1750AC ) From: s prasad To: Sven Eckelmann Cc: ath10k , linux-wireless Content-Type: multipart/mixed; boundary=bcaec548a4e919259e051ea19ecb Sender: linux-wireless-owner@vger.kernel.org List-ID: --bcaec548a4e919259e051ea19ecb Content-Type: text/plain; charset=UTF-8 Hi Sven, Thank you for your patch. I applied that patch and tried to test by executing sending deauth command using aireplay-ng. However, I got following error. root@OpenWrt:/# aireplay-ng -0 1 -a 10:C3:7B:DF:EA:54 -c 9C:F3:87:49:96:7e wlan0 [ 286.183915] device wlan0 entered promiscuous mode 22:15:55 Waiting for beacon frame (BSSID: 10:C3:7B:DF:EA:54) on channel 36 [ 286.369861] ------------[ cut here ]------------ [ 286.374611] WARNING: CPU: 0 PID: 1150 at /home/openwrt/ct/openwrt/build_dir/target-mips_34kc_uClibc-0.9.33.2/linux-ar71xx_generic/compat-wireless-2015-06-22/drivers/net/wireless/ath/ath10k/mac.c:3695 0x87204cec() [ 286.393771] Modules linked in: pppoe ppp_async iptable_nat ath9k pppox ppp_generic nf_nat_ipv4 nf_conntrack_ipv6 nf_conntrack_ipv4 ipt_REJECT ipt_MASQUERADE ath9k_common xt_time xt_tcpudp xt_state xt_nat xt_multiport xt_mark xt_mac xt_limit xt_id xt_conntrack xt_comment xt_TCPMSS xt_REDIRECT xt_LOG xt_CT slhc nf_reject_ipv4 nf_nat_redirect nf_nat_masquerade_ipv4 nf_nat_ftp nf_nat nf_log_ipv4 nf_defrag_ipv6 nf_defrag_ipv4 nf_conntrack_rtcache nf_conntrack_ftp nf_conntrack iptable_raw iptable_mangle iptable_filter ip_tables crc_ccitt ath9k_hw ath10k_pci ath10k_core ath mac80211 cfg80211 compat ledtrig_usbdev ip6t_REJECT nf_reject_ipv6 nf_log_ipv6 nf_log_common ip6table_raw ip6table_mangle ip6table_filter ip6_tables x_tables ipv6 arc4 crypto_blkcipher ohci_platform ohci_hcd ehci_platform ehci_hcd gpio_button_hotplug usbcore nls_base usb_common [ 286.469918] CPU: 0 PID: 1150 Comm: aireplay-ng Not tainted 4.1.2 #6 [ 286.476273] Stack : 803c42b2 00000037 00000000 00000001 80318d80 80371f03 878f5ba0 0000047e 803c3510 00000001 00000000 00000000 871d0000 800a6564 00000003 8031e0f4 00000e6f 00000001 8031c608 86623a84 871d0000 800a4b74 803c42b2 000000c8 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ... [ 286.512635] Call Trace: [ 286.515127] [<80071be8>] show_stack+0x48/0x70 [ 286.519554] [<8008188c>] warn_slowpath_common+0xa0/0xd0 [ 286.524867] [<80081944>] warn_slowpath_null+0x18/0x24 [ 286.530024] [<87204cec>] 0x87204cec [ 286.533568] [ 286.535076] ---[ end trace d3f6cfc1171daefd ]--- Please let me know if I need to do any. I need to send De-authentication command in monitor mode. Thanks and Regards, S Prasad ---------- Forwarded message ---------- From: Sven Eckelmann Date: Fri, Aug 28, 2015 at 8:48 AM Subject: Re: CT firmware and linux kernel patches for OpenWRT( ar71xx - Tp-Link 1750AC ) To: s prasad [mailing lists removed - see other mail. please continue discussion on mailing list] On Wednesday 26 August 2015 18:59:51 s prasad wrote: > Does anybody have patches for CT firmware testing using OpenWRT environment. > I tried to create patch, however OpenWRT patches supporting only for > kernel versions 3.18 and 4.1 at the same time CT Kernels supporting > 3.17_dev, 4.0.4 and 4.2.x. Both are miss matching. > > Can somebody help me if they have patches or to create patches. Attached is the patch with the changes for mac80211. You still have to select the "Firmware from Candelatech" under ath10k. Don't select "Firmware optimized for AP operation (v10.1 / API v2)". I know that this selection should be done more cleanly but I only needed it for testing :) Also an example patch for the mentioned iw hack is attached. You just have to checkout openwrt r46435 (in git 113f685179b34015d615530575c73e61fc913039), apply these two patches, select your device, enable ath10k, enable the Candelatech firmware and build it. Kind regards, Sven -- S Prasad Kandregula --bcaec548a4e919259e051ea19ecb Content-Type: text/x-patch; charset=UTF-8; name="0001-openwrt_r46435_ct14_test.patch" Content-Disposition: attachment; filename="0001-openwrt_r46435_ct14_test.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: cd9a03766adb31dc_0.1 RnJvbSAzZGUzNDdjMWY4M2IwOWYxYWM0MTkwYTY2ZDUzOTkyMTE2ZmE2NmQyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQ0KRnJvbTogU3ZlbiBFY2tlbG1hbm4gPHN2ZW5Ab3Blbi1tZXNoLmNvbT4N CkRhdGU6IE1vbiwgMTYgTWFyIDIwMTUgMTc6Mjg6MzkgKzAxMDANClN1YmplY3Q6IFtQQVRDSF0g aXc6IEhhcmRjb2RlIFZIVCBjaGFubmVsIDM2IGluIGl3IGZvciB0ZXN0aW5nDQoNCi0tLQ0KZGlm ZiAtLWdpdCBhL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL01ha2VmaWxlIGIvcGFja2FnZS9rZXJu ZWwvbWFjODAyMTEvTWFrZWZpbGUNCmluZGV4IGNjOThmYjcuLjU3ZGI3NmYgMTAwNjQ0DQotLS0g YS9wYWNrYWdlL2tlcm5lbC9tYWM4MDIxMS9NYWtlZmlsZQ0KKysrIGIvcGFja2FnZS9rZXJuZWwv bWFjODAyMTEvTWFrZWZpbGUNCkBAIC0xNDQsNiArMTQ0LDE2IEBAIGRlZmluZSBEb3dubG9hZC9h dGgxMGstZmlybXdhcmUNCiBlbmRlZg0KICQoZXZhbCAkKGNhbGwgRG93bmxvYWQsYXRoMTBrLWZp cm13YXJlKSkNCiANCitBVEgxMEtfQ1RfRlc6PWZpcm13YXJlLTItY3QtZnVsbC1jb21tdW5pdHkt MTQuYmluDQorDQorZGVmaW5lIERvd25sb2FkL2F0aDEway1maXJtd2FyZS1jdA0KKyAgRklMRTo9 JChBVEgxMEtfQ1RfRlcpDQorICBVUkw6PWh0dHA6Ly93d3cuY2FuZGVsYXRlY2guY29tL2Rvd25s b2Fkcy8NCisgIE1ENVNVTTo9ODAwNzk5NDU5YzIwYzE2ODMxMzhjNzRiM2JhNThmMjUNCitlbmRl Zg0KKyQoZXZhbCAkKGNhbGwgRG93bmxvYWQsYXRoMTBrLWZpcm13YXJlLWN0KSkNCisNCisNCiAj IFByaXNtNTQgZHJpdmVycw0KIFA1NFBDSUZXOj0yLjEzLjEyLjAuYXJtDQogUDU0VVNCRlc6PTIu MTMuMjQuMC5sbTg3LmFybQ0KQEAgLTYzMCw2ICs2NDAsMTQgQEAgZGVmaW5lIEtlcm5lbFBhY2th Z2UvYXRoMTBrL2NvbmZpZw0KIAkJICBVc2UgdGhlIGF0aDEwayBmaXJtd2FyZSBmcm9tIHRoZSAx MC4xIFNESyB1c2luZyBBUEkgdjIgb3B0aW1pemVkDQogCQkgIGZvciBhY2Nlc3MgcG9pbnQgb3Bl cmF0aW9uIGlmIHRoZSBkZWZhdWx0IGZpcm13YXJlIGtlZXBzIGNyYXNoaW5nLg0KIA0KKwljb25m aWcgQVRIMTBLX0NUX0ZXDQorCQlib29sICJGaXJtd2FyZSBmcm9tIENhbmRlbGF0ZWNoIg0KKwkJ ZGVmYXVsdCBuDQorCQlkZXBlbmRzIG9uICFBVEgxMEtfU1RBX0ZXDQorCQloZWxwDQorCQkgIFVz ZSB0aGUgYXRoMTBrIGZpcm13YXJlIG9wdGltaXplZCBmb3IgSUJTUyBhbmQgYWNjZXNzIHBvaW50 DQorCQkgIG9wZXJhdGlvbi4NCisNCiAgIGVuZGlmDQogZW5kZWYNCiANCkBAIC0xODYyLDEwICsx ODgwLDE4IEBAIGlmZXEgKCQoQ09ORklHX0FUSDEwS19BUEkyX0ZXKSx5KQ0KIAkJJChQS0dfQlVJ TERfRElSKS8kKFBLR19BVEgxMEtfTElOVVhfRklSTVdBUkVfU1VCRElSKS8xMC4xL2Zpcm13YXJl LTIuYmluXzEwLjEuNDY3LjItMSBcDQogCQkkKDEpL2xpYi9maXJtd2FyZS9hdGgxMGsvUUNBOTg4 WC9odzIuMC9maXJtd2FyZS0yLmJpbg0KIGVsc2UNCisNCitpZmVxICgkKENPTkZJR19BVEgxMEtf Q1RfRlcpLHkpDQorCSQoSU5TVEFMTF9EQVRBKSBcDQorCQkkKERMX0RJUikvJChBVEgxMEtfQ1Rf RlcpIFwNCisJCSQoMSkvbGliL2Zpcm13YXJlL2F0aDEway9RQ0E5ODhYL2h3Mi4wL2Zpcm13YXJl LTIuYmluDQorZWxzZQ0KIAkkKElOU1RBTExfREFUQSkgXA0KIAkJJChQS0dfQlVJTERfRElSKS8k KFBLR19BVEgxMEtfTElOVVhfRklSTVdBUkVfU1VCRElSKS8xMC4yLjQvdW50ZXN0ZWQvZmlybXdh cmUtNS5iaW5fMTAuMi40LjcwLTIgXA0KIAkJJCgxKS9saWIvZmlybXdhcmUvYXRoMTBrL1FDQTk4 OFgvaHcyLjAvZmlybXdhcmUtNS5iaW4NCiBlbmRpZg0KKw0KK2VuZGlmDQogZW5kZWYNCiANCiBk ZWZpbmUgS2VybmVsUGFja2FnZS9td2w4ay9pbnN0YWxsDQpkaWZmIC0tZ2l0IGEvcGFja2FnZS9r ZXJuZWwvbWFjODAyMTEvcGF0Y2hlcy85OTktMDAwMS1hdGgtQWRkLXRpbWUtc3RhbXAtdG8tZGVi dWctbWVzc2FnZXMucGF0Y2ggYi9wYWNrYWdlL2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0w MDAxLWF0aC1BZGQtdGltZS1zdGFtcC10by1kZWJ1Zy1tZXNzYWdlcy5wYXRjaA0KbmV3IGZpbGUg bW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAuLmE3NWVkY2INCi0tLSAvZGV2L251bGwNCisrKyBi L3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAwMDEtYXRoLUFkZC10aW1lLXN0 YW1wLXRvLWRlYnVnLW1lc3NhZ2VzLnBhdGNoDQpAQCAtMCwwICsxLDQzIEBADQorRnJvbTogQmVu IEdyZWVhciA8Z3JlZWFyYkBjYW5kZWxhdGVjaC5jb20+DQorRGF0ZTogV2VkLCAxMyBOb3YgMjAx MyAxMDoxNDo1NCAtMDgwMA0KK1N1YmplY3Q6IFtQQVRDSF0gYXRoOiBBZGQgdGltZS1zdGFtcCB0 byBkZWJ1ZyBtZXNzYWdlcy4NCisNCitkbWVzZyBoYXMgbm8gdGltZS1zdGFtcHMsIGFuZCB2YXIv bG9nL21lc3NhZ2VzIGRvZXNuJ3QgaGF2ZQ0KK2hpZ2gtcHJlY2lzaW9uIChhdCBsZWFzdCBieSBk ZWZhdWx0KSwgdG8gZXhwbGljaXRseSBhZGQgc3RhbXBzDQordG8gYXRoIGRlYnVnIG1lc3NhZ2Vz Lg0KKy0tLQ0KKyBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvbWFpbi5jIHwgMTEgKysrKysrKyst LS0NCisgMSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkNCisN CitkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL21haW4uYyBiL2RyaXZlcnMv bmV0L3dpcmVsZXNzL2F0aC9tYWluLmMNCitpbmRleCAzMzhkNzIzMzc2MDQuLjBhMmNjNWJlZjg5 ZSAxMDA2NDQNCistLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvbWFpbi5jDQorKysrIGIv ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL21haW4uYw0KK0BAIC03MSw2ICs3MSw3IEBAIEVYUE9S VF9TWU1CT0woYXRoX2lzX215YmVhY29uKTsNCisgdm9pZCBhdGhfcHJpbnRrKGNvbnN0IGNoYXIg KmxldmVsLCBjb25zdCBzdHJ1Y3QgYXRoX2NvbW1vbiogY29tbW9uLA0KKyAJCWNvbnN0IGNoYXIg KmZtdCwgLi4uKQ0KKyB7DQorKwlzdHJ1Y3QgdGltZXZhbCB0djsNCisgCXN0cnVjdCB2YV9mb3Jt YXQgdmFmOw0KKyAJdmFfbGlzdCBhcmdzOw0KKyANCitAQCAtNzksMTIgKzgwLDE2IEBAIHZvaWQg YXRoX3ByaW50ayhjb25zdCBjaGFyICpsZXZlbCwgY29uc3Qgc3RydWN0IGF0aF9jb21tb24qIGNv bW1vbiwNCisgCXZhZi5mbXQgPSBmbXQ7DQorIAl2YWYudmEgPSAmYXJnczsNCisgDQorKwlkb19n ZXR0aW1lb2ZkYXkoJnR2KTsNCisrDQorIAlpZiAoY29tbW9uICYmIGNvbW1vbi0+aHcgJiYgY29t bW9uLT5ody0+d2lwaHkpIHsNCistCQlwcmludGsoIiVzYXRoOiAlczogJXBWIiwNCistCQkgICAg ICAgbGV2ZWwsIHdpcGh5X25hbWUoY29tbW9uLT5ody0+d2lwaHkpLCAmdmFmKTsNCisrCQlwcmlu dGsoIiVzYXRoOiAlbHUuJWx1ICVzOiAlcFYiLA0KKysJCSAgICAgICBsZXZlbCwgdHYudHZfc2Vj LCB0di50dl91c2VjLA0KKysJCSAgICAgICB3aXBoeV9uYW1lKGNvbW1vbi0+aHctPndpcGh5KSwg JnZhZik7DQorIAkJdHJhY2VfYXRoX2xvZyhjb21tb24tPmh3LT53aXBoeSwgJnZhZik7DQorIAl9 IGVsc2Ugew0KKy0JCXByaW50aygiJXNhdGg6ICVwViIsIGxldmVsLCAmdmFmKTsNCisrCQlwcmlu dGsoIiVzYXRoOiAlbHUuJWx1ICVwViIsDQorKwkJICAgICAgIGxldmVsLCB0di50dl9zZWMsIHR2 LnR2X3VzZWMsICZ2YWYpOw0KKyAJfQ0KKyANCisgCXZhX2VuZChhcmdzKTsNCmRpZmYgLS1naXQg YS9wYWNrYWdlL2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDAyLWF0aC1tYWtlLWVhc2ll ci10by1lbmFibGUtbW9yZS12ZXJib3NlLXJlZ2RvbS1sb2dnaW4ucGF0Y2ggYi9wYWNrYWdlL2tl cm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDAyLWF0aC1tYWtlLWVhc2llci10by1lbmFibGUt bW9yZS12ZXJib3NlLXJlZ2RvbS1sb2dnaW4ucGF0Y2gNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQpp bmRleCAwMDAwMDAwLi45YzNlYTIxDQotLS0gL2Rldi9udWxsDQorKysgYi9wYWNrYWdlL2tlcm5l bC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDAyLWF0aC1tYWtlLWVhc2llci10by1lbmFibGUtbW9y ZS12ZXJib3NlLXJlZ2RvbS1sb2dnaW4ucGF0Y2gNCkBAIC0wLDAgKzEsMTI5IEBADQorRnJvbTog QmVuIEdyZWVhciA8Z3JlZWFyYkBjYW5kZWxhdGVjaC5jb20+DQorRGF0ZTogV2VkLCAyNCBTZXAg MjAxNCAxMzozNDowOCAtMDcwMA0KK1N1YmplY3Q6IFtQQVRDSF0gYXRoOiBtYWtlIGVhc2llciB0 byBlbmFibGUgbW9yZSB2ZXJib3NlIHJlZ2RvbSBsb2dnaW5nLg0KKw0KK0dvb2QgZm9yIGRldmVs b3BlcnMgd2hvIGFyZSBkZWJ1Z2dpbmcgcmVnZG9tYWluIGlzc3Vlcy4NCisNCitTaWduZWQtb2Zm LWJ5OiBCZW4gR3JlZWFyIDxncmVlYXJiQGNhbmRlbGF0ZWNoLmNvbT4NCistLS0NCisgZHJpdmVy cy9uZXQvd2lyZWxlc3MvYXRoL3JlZ2QuYyB8IDI5ICsrKysrKysrKysrKysrKystLS0tLS0tLS0t LS0tDQorIDEgZmlsZSBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkN CisNCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL3JlZ2QuYyBiL2RyaXZl cnMvbmV0L3dpcmVsZXNzL2F0aC9yZWdkLmMNCitpbmRleCAwNmVhNmNjOWUzMGEuLjQ1ZTU4NGRk ODI4NSAxMDA2NDQNCistLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvcmVnZC5jDQorKysr IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL3JlZ2QuYw0KK0BAIC0yMyw2ICsyMyw5IEBADQor ICNpbmNsdWRlICJyZWdkLmgiDQorICNpbmNsdWRlICJyZWdkX2NvbW1vbi5oIg0KKyANCisrI2Rl ZmluZSBLRVJOX0RCR19MVkwgS0VSTl9ERUJVRw0KKysvKiNkZWZpbmUgS0VSTl9EQkdfTFZMIEtF Uk5fSU5GTyovDQorKw0KKyBzdGF0aWMgaW50IF9fYXRoX3JlZ2RfaW5pdChzdHJ1Y3QgYXRoX3Jl Z3VsYXRvcnkgKnJlZyk7DQorIA0KKyAvKg0KK0BAIC00OTIsNyArNDk1LDcgQEAgc3RhdGljIHZv aWQgYXRoX3JlZ19keW5fY291bnRyeShzdHJ1Y3Qgd2lwaHkgKndpcGh5LA0KKyAJaWYgKF9fYXRo X3JlZ19keW5fY291bnRyeSh3aXBoeSwgcmVnLCByZXF1ZXN0KSkNCisgCQlyZXR1cm47DQorIA0K Ky0JcHJpbnRrKEtFUk5fREVCVUcgImF0aDogcmVnZG9tYWluIDB4JTB4ICINCisrCXByaW50ayhL RVJOX0RCR19MVkwgImF0aDogcmVnZG9tYWluIDB4JTB4ICINCisgCQkJICAiZHluYW1pY2FsbHkg dXBkYXRlZCBieSAlc1xuIiwNCisgCSAgICAgICByZWctPmN1cnJlbnRfcmQsDQorIAkgICAgICAg cmVnX2luaXRpYXRvcl9uYW1lKHJlcXVlc3QtPmluaXRpYXRvcikpOw0KK0BAIC01NDksNyArNTUy LDcgQEAgc3RhdGljIGJvb2wgYXRoX3JlZ2RfaXNfZWVwcm9tX3ZhbGlkKHN0cnVjdCBhdGhfcmVn dWxhdG9yeSAqcmVnKQ0KKyAJaWYgKHJkICYgQ09VTlRSWV9FUkRfRkxBRykgew0KKyAJCS8qIEVF UFJPTSB2YWx1ZSBpcyBhIGNvdW50cnkgY29kZSAqLw0KKyAJCXUxNiBjYyA9IHJkICYgfkNPVU5U UllfRVJEX0ZMQUc7DQorLQkJcHJpbnRrKEtFUk5fREVCVUcNCisrCQlwcmludGsoS0VSTl9EQkdf TFZMDQorIAkJICAgICAgICJhdGg6IEVFUFJPTSBpbmRpY2F0ZXMgd2Ugc2hvdWxkIGV4cGVjdCAi DQorIAkJCSJhIGNvdW50cnkgY29kZVxuIik7DQorIAkJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJ WkUoYWxsQ291bnRyaWVzKTsgaSsrKQ0KK0BAIC01NTgsMTMgKzU2MSwxMyBAQCBzdGF0aWMgYm9v bCBhdGhfcmVnZF9pc19lZXByb21fdmFsaWQoc3RydWN0IGF0aF9yZWd1bGF0b3J5ICpyZWcpDQor IAl9IGVsc2Ugew0KKyAJCS8qIEVFUFJPTSB2YWx1ZSBpcyBhIHJlZ3BhaXIgdmFsdWUgKi8NCisg CQlpZiAocmQgIT0gQ1RSWV9ERUZBVUxUKQ0KKy0JCQlwcmludGsoS0VSTl9ERUJVRyAiYXRoOiBF RVBST00gaW5kaWNhdGVzIHdlICINCisrCQkJcHJpbnRrKEtFUk5fREJHX0xWTCAiYXRoOiBFRVBS T00gaW5kaWNhdGVzIHdlICINCisgCQkJICAgICAgICJzaG91bGQgZXhwZWN0IGEgZGlyZWN0IHJl Z3BhaXIgbWFwXG4iKTsNCisgCQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShyZWdEb21haW5Q YWlycyk7IGkrKykNCisgCQkJaWYgKHJlZ0RvbWFpblBhaXJzW2ldLnJlZ19kb21haW4gPT0gcmQp DQorIAkJCQlyZXR1cm4gdHJ1ZTsNCisgCX0NCistCXByaW50ayhLRVJOX0RFQlVHDQorKwlwcmlu dGsoS0VSTl9EQkdfTFZMDQorIAkJICJhdGg6IGludmFsaWQgcmVndWxhdG9yeSBkb21haW4vY291 bnRyeSBjb2RlIDB4JXhcbiIsIHJkKTsNCisgCXJldHVybiBmYWxzZTsNCisgfQ0KK0BAIC02Njks NyArNjcyLDcgQEAgc3RhdGljIHZvaWQgYXRoX3JlZ2Rfc2FuaXRpemUoc3RydWN0IGF0aF9yZWd1 bGF0b3J5ICpyZWcpDQorIHsNCisgCWlmIChyZWctPmN1cnJlbnRfcmQgIT0gQ09VTlRSWV9FUkRf RkxBRykNCisgCQlyZXR1cm47DQorLQlwcmludGsoS0VSTl9ERUJVRyAiYXRoOiBFRVBST00gcmVn ZG9tYWluIHNhbml0aXplZFxuIik7DQorKwlwcmludGsoS0VSTl9EQkdfTFZMICJhdGg6IEVFUFJP TSByZWdkb21haW4gc2FuaXRpemVkXG4iKTsNCisgCXJlZy0+Y3VycmVudF9yZCA9IDB4NjQ7DQor IH0NCisgDQorQEAgLTY4Myw3ICs2ODYsNyBAQCBzdGF0aWMgaW50IF9fYXRoX3JlZ2RfaW5pdChz dHJ1Y3QgYXRoX3JlZ3VsYXRvcnkgKnJlZykNCisgDQorIAlhdGhfcmVnZF9zYW5pdGl6ZShyZWcp Ow0KKyANCistCXByaW50ayhLRVJOX0RFQlVHICJhdGg6IEVFUFJPTSByZWdkb21haW46IDB4JTB4 XG4iLCByZWctPmN1cnJlbnRfcmQpOw0KKysJcHJpbnRrKEtFUk5fREJHX0xWTCAiYXRoOiBFRVBS T00gcmVnZG9tYWluOiAweCUweFxuIiwgcmVnLT5jdXJyZW50X3JkKTsNCisgDQorIAlpZiAoIWF0 aF9yZWdkX2lzX2VlcHJvbV92YWxpZChyZWcpKSB7DQorIAkJcHJfZXJyKCJJbnZhbGlkIEVFUFJP TSBjb250ZW50c1xuIik7DQorQEAgLTY5NSw3ICs2OTgsNyBAQCBzdGF0aWMgaW50IF9fYXRoX3Jl Z2RfaW5pdChzdHJ1Y3QgYXRoX3JlZ3VsYXRvcnkgKnJlZykNCisgDQorIAlpZiAocmVnLT5jb3Vu dHJ5X2NvZGUgPT0gQ1RSWV9ERUZBVUxUICYmDQorIAkgICAgcmVnZG1uID09IENUUllfREVGQVVM VCkgew0KKy0JCXByaW50ayhLRVJOX0RFQlVHICJhdGg6IEVFUFJPTSBpbmRpY2F0ZXMgZGVmYXVs dCAiDQorKwkJcHJpbnRrKEtFUk5fREJHX0xWTCAiYXRoOiBFRVBST00gaW5kaWNhdGVzIGRlZmF1 bHQgIg0KKyAJCSAgICAgICAiY291bnRyeSBjb2RlIHNob3VsZCBiZSB1c2VkXG4iKTsNCisgCQly ZWctPmNvdW50cnlfY29kZSA9IENUUllfVU5JVEVEX1NUQVRFUzsNCisgCX0NCitAQCAtNzAzLDE4 ICs3MDYsMTggQEAgc3RhdGljIGludCBfX2F0aF9yZWdkX2luaXQoc3RydWN0IGF0aF9yZWd1bGF0 b3J5ICpyZWcpDQorIAlpZiAocmVnLT5jb3VudHJ5X2NvZGUgPT0gQ1RSWV9ERUZBVUxUKSB7DQor IAkJY291bnRyeSA9IE5VTEw7DQorIAl9IGVsc2Ugew0KKy0JCXByaW50ayhLRVJOX0RFQlVHICJh dGg6IGRvaW5nIEVFUFJPTSBjb3VudHJ5LT5yZWdkbW4gIg0KKysJCXByaW50ayhLRVJOX0RCR19M VkwgImF0aDogZG9pbmcgRUVQUk9NIGNvdW50cnktPnJlZ2RtbiAiDQorIAkJICAgICAgICJtYXAg c2VhcmNoXG4iKTsNCisgCQljb3VudHJ5ID0gYXRoX3JlZ2RfZmluZF9jb3VudHJ5KHJlZy0+Y291 bnRyeV9jb2RlKTsNCisgCQlpZiAoY291bnRyeSA9PSBOVUxMKSB7DQorLQkJCXByaW50ayhLRVJO X0RFQlVHDQorKwkJCXByaW50ayhLRVJOX0RCR19MVkwNCisgCQkJCSJhdGg6IG5vIHZhbGlkIGNv dW50cnkgbWFwcyBmb3VuZCBmb3IgIg0KKyAJCQkJImNvdW50cnkgY29kZTogMHglMHhcbiIsDQor IAkJCQlyZWctPmNvdW50cnlfY29kZSk7DQorIAkJCXJldHVybiAtRUlOVkFMOw0KKyAJCX0gZWxz ZSB7DQorIAkJCXJlZ2RtbiA9IGNvdW50cnktPnJlZ0RtbkVudW07DQorLQkJCXByaW50ayhLRVJO X0RFQlVHICJhdGg6IGNvdW50cnkgbWFwcyB0byAiDQorKwkJCXByaW50ayhLRVJOX0RCR19MVkwg ImF0aDogY291bnRyeSBtYXBzIHRvICINCisgCQkJICAgICAgICJyZWdkbW4gY29kZTogMHglMHhc biIsDQorIAkJCSAgICAgICByZWdkbW4pOw0KKyAJCX0NCitAQCAtNzIzLDcgKzcyNiw3IEBAIHN0 YXRpYyBpbnQgX19hdGhfcmVnZF9pbml0KHN0cnVjdCBhdGhfcmVndWxhdG9yeSAqcmVnKQ0KKyAJ cmVnLT5yZWdwYWlyID0gYXRoX2dldF9yZWdwYWlyKHJlZ2Rtbik7DQorIA0KKyAJaWYgKCFyZWct PnJlZ3BhaXIpIHsNCistCQlwcmludGsoS0VSTl9ERUJVRyAiYXRoOiAiDQorKwkJcHJpbnRrKEtF Uk5fREJHX0xWTCAiYXRoOiAiDQorIAkJCSJObyByZWd1bGF0b3J5IGRvbWFpbiBwYWlyIGZvdW5k LCBjYW5ub3QgY29udGludWVcbiIpOw0KKyAJCXJldHVybiAtRUlOVkFMOw0KKyAJfQ0KK0BAIC03 MzksOSArNzQyLDkgQEAgc3RhdGljIGludCBfX2F0aF9yZWdkX2luaXQoc3RydWN0IGF0aF9yZWd1 bGF0b3J5ICpyZWcpDQorIAkJcmVnLT5hbHBoYTJbMV0gPSAnMCc7DQorIAl9DQorIA0KKy0JcHJp bnRrKEtFUk5fREVCVUcgImF0aDogQ291bnRyeSBhbHBoYTIgYmVpbmcgdXNlZDogJWMlY1xuIiwN CisrCXByaW50ayhLRVJOX0RCR19MVkwgImF0aDogQ291bnRyeSBhbHBoYTIgYmVpbmcgdXNlZDog JWMlY1xuIiwNCisgCQlyZWctPmFscGhhMlswXSwgcmVnLT5hbHBoYTJbMV0pOw0KKy0JcHJpbnRr KEtFUk5fREVCVUcgImF0aDogUmVncGFpciB1c2VkOiAweCUweFxuIiwNCisrCXByaW50ayhLRVJO X0RCR19MVkwgImF0aDogUmVncGFpciB1c2VkOiAweCUweFxuIiwNCisgCQlyZWctPnJlZ3BhaXIt PnJlZ19kb21haW4pOw0KKyANCisgCXJldHVybiAwOw0KZGlmZiAtLWdpdCBhL3BhY2thZ2Uva2Vy bmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAwMDMtd2lyZWxlc3MtUHJpbnQtZXJyb3ItbG9ncy1m b3ItRUlOVkFMLXNjYW4tZmFpbHVyZXMucGF0Y2ggYi9wYWNrYWdlL2tlcm5lbC9tYWM4MDIxMS9w YXRjaGVzLzk5OS0wMDAzLXdpcmVsZXNzLVByaW50LWVycm9yLWxvZ3MtZm9yLUVJTlZBTC1zY2Fu LWZhaWx1cmVzLnBhdGNoDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMC4uYzRh NTc3Yg0KLS0tIC9kZXYvbnVsbA0KKysrIGIvcGFja2FnZS9rZXJuZWwvbWFjODAyMTEvcGF0Y2hl cy85OTktMDAwMy13aXJlbGVzcy1QcmludC1lcnJvci1sb2dzLWZvci1FSU5WQUwtc2Nhbi1mYWls dXJlcy5wYXRjaA0KQEAgLTAsMCArMSwxMDMgQEANCitGcm9tOiBCZW4gR3JlZWFyIDxncmVlYXJi QGNhbmRlbGF0ZWNoLmNvbT4NCitEYXRlOiBNb24sIDI0IE1hciAyMDE0IDE0OjAyOjMyIC0wNzAw DQorU3ViamVjdDogW1BBVENIXSB3aXJlbGVzczogUHJpbnQgZXJyb3IgbG9ncyBmb3IgRUlOVkFM IHNjYW4gZmFpbHVyZXMuDQorDQorVGhlcmUgaXMgbm8gb3RoZXIgZWFzeSB3YXkgdG8gdGVsbCB3 aHkgc2NhbnMgZmFpbCB3aXRoDQorRUlOVkFMIHNpbmNlIHRoZXJlIGFyZSBzbyBtYW55IGRpZmZl cmVudCBlcnJvcnMgdGhhdA0KK3JldHVybiB0aGUgc2FtZSBlcnJvciBjb2RlLg0KKw0KK1NpZ25l ZC1vZmYtYnk6IEJlbiBHcmVlYXIgPGdyZWVhcmJAY2FuZGVsYXRlY2guY29tPg0KKy0tLQ0KKyBu ZXQvd2lyZWxlc3Mvbmw4MDIxMS5jIHwgMjEgKysrKysrKysrKysrKysrKysrKy0tDQorIDEgZmls ZSBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQ0KKw0KK2RpZmYgLS1n aXQgYS9uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jIGIvbmV0L3dpcmVsZXNzL25sODAyMTEuYw0KK2lu ZGV4IGMyNjRlZmZkMDBhNi4uOTk5MTA4MGM3ZTYyIDEwMDY0NA0KKy0tLSBhL25ldC93aXJlbGVz cy9ubDgwMjExLmMNCisrKysgYi9uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jDQorQEAgLTU2OTIsOCAr NTY5MiwxMSBAQCBzdGF0aWMgaW50IHZhbGlkYXRlX3NjYW5fZnJlcXMoc3RydWN0IG5sYXR0ciAq ZnJlcXMpDQorIAkJICovDQorIAkJbmxhX2Zvcl9lYWNoX25lc3RlZChhdHRyMiwgZnJlcXMsIHRt cDIpDQorIAkJCWlmIChhdHRyMSAhPSBhdHRyMiAmJg0KKy0JCQkgICAgbmxhX2dldF91MzIoYXR0 cjEpID09IG5sYV9nZXRfdTMyKGF0dHIyKSkNCisrCQkJICAgIG5sYV9nZXRfdTMyKGF0dHIxKSA9 PSBubGFfZ2V0X3UzMihhdHRyMikpIHsNCisrCQkJCXByX2Vycigic2NhbjogIER1cGxpY2F0ZSBm cmVxIHJlcXVlc3RlZDogJWRcbiIsDQorKwkJCQkgICAgICAgbmxhX2dldF91MzIoYXR0cjEpKTsN CisgCQkJCXJldHVybiAwOw0KKysJCQl9DQorIAl9DQorIA0KKyAJcmV0dXJuIG5fY2hhbm5lbHM7 DQorQEAgLTU3NDYsOCArNTc0OSwxMCBAQCBzdGF0aWMgaW50IG5sODAyMTFfdHJpZ2dlcl9zY2Fu KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pDQorIAlpbnQgZXJy LCB0bXAsIG5fc3NpZHMgPSAwLCBuX2NoYW5uZWxzLCBpOw0KKyAJc2l6ZV90IGllX2xlbjsNCisg DQorLQlpZiAoIWlzX3ZhbGlkX2llX2F0dHIoaW5mby0+YXR0cnNbTkw4MDIxMV9BVFRSX0lFXSkp DQorKwlpZiAoIWlzX3ZhbGlkX2llX2F0dHIoaW5mby0+YXR0cnNbTkw4MDIxMV9BVFRSX0lFXSkp IHsNCisrCQlwcl9lcnIoInNjYW46ICBJbnZhbGlkIEFUVFJfSUVcbiIpOw0KKyAJCXJldHVybiAt RUlOVkFMOw0KKysJfQ0KKyANCisgCXdpcGh5ID0gJnJkZXYtPndpcGh5Ow0KKyANCitAQCAtNTc2 Myw2ICs1NzY4LDcgQEAgc3RhdGljIGludCBubDgwMjExX3RyaWdnZXJfc2NhbihzdHJ1Y3Qgc2tf YnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKQ0KKyAJCW5fY2hhbm5lbHMgPSB2YWxp ZGF0ZV9zY2FuX2ZyZXFzKA0KKyAJCQkJaW5mby0+YXR0cnNbTkw4MDIxMV9BVFRSX1NDQU5fRlJF UVVFTkNJRVNdKTsNCisgCQlpZiAoIW5fY2hhbm5lbHMpIHsNCisrCQkJcHJfZXJyKCJzY2FuOiAg dmFsaWRhdGVfc2Nhbl9mcmVxcyBmYWlsZWQsIGR1cGxpY2F0ZSBmcmVxP1xuIik7DQorIAkJCWVy ciA9IC1FSU5WQUw7DQorIAkJCWdvdG8gdW5sb2NrOw0KKyAJCX0NCitAQCAtNTc3NSw2ICs1Nzgx LDggQEAgc3RhdGljIGludCBubDgwMjExX3RyaWdnZXJfc2NhbihzdHJ1Y3Qgc2tfYnVmZiAqc2ti LCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKQ0KKyAJCQluX3NzaWRzKys7DQorIA0KKyAJaWYgKG5f c3NpZHMgPiB3aXBoeS0+bWF4X3NjYW5fc3NpZHMpIHsNCisrCQlwcl9lcnIoInNjYW46ICB0b28g bWFueSBzc2lkcywgcmVxOiAlZCAgc3VwcG9ydHM6ICVkXG4iLA0KKysJCSAgICAgICBuX3NzaWRz LCB3aXBoeS0+bWF4X3NjYW5fc3NpZHMpOw0KKyAJCWVyciA9IC1FSU5WQUw7DQorIAkJZ290byB1 bmxvY2s7DQorIAl9DQorQEAgLTU3ODUsNiArNTc5Myw4IEBAIHN0YXRpYyBpbnQgbmw4MDIxMV90 cmlnZ2VyX3NjYW4oc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbykN CisgCQlpZV9sZW4gPSAwOw0KKyANCisgCWlmIChpZV9sZW4gPiB3aXBoeS0+bWF4X3NjYW5faWVf bGVuKSB7DQorKwkJcHJfZXJyKCJzY2FuOiBpZS1sZW4gdG9vIGxhcmdlOiAlemQgIG1heDogJWRc biIsDQorKwkJICAgICAgIGllX2xlbiwgd2lwaHktPm1heF9zY2FuX2llX2xlbik7DQorIAkJZXJy ID0gLUVJTlZBTDsNCisgCQlnb3RvIHVubG9jazsNCisgCX0NCitAQCAtNTgxNyw2ICs1ODI3LDgg QEAgc3RhdGljIGludCBubDgwMjExX3RyaWdnZXJfc2NhbihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBz dHJ1Y3QgZ2VubF9pbmZvICppbmZvKQ0KKyAJCQljaGFuID0gaWVlZTgwMjExX2dldF9jaGFubmVs KHdpcGh5LCBubGFfZ2V0X3UzMihhdHRyKSk7DQorIA0KKyAJCQlpZiAoIWNoYW4pIHsNCisrCQkJ CXByX2Vycigic2NhbjogIENoYW5uZWwgJWQgaXMgbm90IHN1cHBvcnRlZC5cbiIsDQorKwkJCQkg ICAgICAgbmxhX2dldF91MzIoYXR0cikpOw0KKyAJCQkJZXJyID0gLUVJTlZBTDsNCisgCQkJCWdv dG8gb3V0X2ZyZWU7DQorIAkJCX0NCitAQCAtNTg1MSw2ICs1ODYzLDcgQEAgc3RhdGljIGludCBu bDgwMjExX3RyaWdnZXJfc2NhbihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZv ICppbmZvKQ0KKyAJfQ0KKyANCisgCWlmICghaSkgew0KKysJCXByX2Vycigic2NhbjogIE5vIHNj YW5uYWJsZSBjaGFubmVscyBmb3VuZC5cbiIpOw0KKyAJCWVyciA9IC1FSU5WQUw7DQorIAkJZ290 byBvdXRfZnJlZTsNCisgCX0NCitAQCAtNTg2MSw2ICs1ODc0LDggQEAgc3RhdGljIGludCBubDgw MjExX3RyaWdnZXJfc2NhbihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICpp bmZvKQ0KKyAJaWYgKG5fc3NpZHMpIHsNCisgCQlubGFfZm9yX2VhY2hfbmVzdGVkKGF0dHIsIGlu Zm8tPmF0dHJzW05MODAyMTFfQVRUUl9TQ0FOX1NTSURTXSwgdG1wKSB7DQorIAkJCWlmIChubGFf bGVuKGF0dHIpID4gSUVFRTgwMjExX01BWF9TU0lEX0xFTikgew0KKysJCQkJcHJfZXJyKCJzY2Fu OiBzc2lkLWxlbiB0b28gbGFyZ2U6ICVkICBtYXg6ICVkXG4iLA0KKysJCQkJICAgICAgIG5sYV9s ZW4oYXR0ciksIElFRUU4MDIxMV9NQVhfU1NJRF9MRU4pOw0KKyAJCQkJZXJyID0gLUVJTlZBTDsN CisgCQkJCWdvdG8gb3V0X2ZyZWU7DQorIAkJCX0NCitAQCAtNTg4OSw2ICs1OTA0LDggQEAgc3Rh dGljIGludCBubDgwMjExX3RyaWdnZXJfc2NhbihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qg Z2VubF9pbmZvICppbmZvKQ0KKyAJCQllbnVtIGllZWU4MDIxMV9iYW5kIGJhbmQgPSBubGFfdHlw ZShhdHRyKTsNCisgDQorIAkJCWlmIChiYW5kIDwgMCB8fCBiYW5kID49IElFRUU4MDIxMV9OVU1f QkFORFMpIHsNCisrCQkJCXByX2Vycigic2NhbjogIGJhbmQgJWQgb3V0IG9mIHJhbmdlLCBudW0t YmFuZHM6ICVkXG4iLA0KKysJCQkJICAgICAgIGJhbmQsIElFRUU4MDIxMV9OVU1fQkFORFMpOw0K KyAJCQkJZXJyID0gLUVJTlZBTDsNCisgCQkJCWdvdG8gb3V0X2ZyZWU7DQorIAkJCX0NCmRpZmYg LS1naXQgYS9wYWNrYWdlL2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDA0LW1hYzgwMjEx LUV4dHJhLWRlYnVnLWluZm8tZm9yLXN0YXRpb24tY2xlYW51cC1jYXNlLnBhdGNoIGIvcGFja2Fn ZS9rZXJuZWwvbWFjODAyMTEvcGF0Y2hlcy85OTktMDAwNC1tYWM4MDIxMS1FeHRyYS1kZWJ1Zy1p bmZvLWZvci1zdGF0aW9uLWNsZWFudXAtY2FzZS5wYXRjaA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQN CmluZGV4IDAwMDAwMDAuLjhlMDM4ODQNCi0tLSAvZGV2L251bGwNCisrKyBiL3BhY2thZ2Uva2Vy bmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAwMDQtbWFjODAyMTEtRXh0cmEtZGVidWctaW5mby1m b3Itc3RhdGlvbi1jbGVhbnVwLWNhc2UucGF0Y2gNCkBAIC0wLDAgKzEsMjIgQEANCitGcm9tOiBC ZW4gR3JlZWFyIDxncmVlYXJiQGNhbmRlbGF0ZWNoLmNvbT4NCitEYXRlOiBXZWQsIDIzIE9jdCAy MDEzIDEzOjU0OjEzIC0wNzAwDQorU3ViamVjdDogW1BBVENIXSBtYWM4MDIxMTogRXh0cmEgZGVi dWcgaW5mbyBmb3Igc3RhdGlvbiBjbGVhbnVwIGNhc2UuDQorLS0tDQorIG5ldC9tYWM4MDIxMS9z dGFfaW5mby5jIHwgNCArKystDQorIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDEg ZGVsZXRpb24oLSkNCisNCitkaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL3N0YV9pbmZvLmMgYi9u ZXQvbWFjODAyMTEvc3RhX2luZm8uYw0KK2luZGV4IDQ5NDQyMjcyOTEzMi4uNjlhOGE5ZDBjNzE0 IDEwMDY0NA0KKy0tLSBhL25ldC9tYWM4MDIxMS9zdGFfaW5mby5jDQorKysrIGIvbmV0L21hYzgw MjExL3N0YV9pbmZvLmMNCitAQCAtOTI0LDcgKzkyNCw5IEBAIHN0YXRpYyB2b2lkIF9fc3RhX2lu Zm9fZGVzdHJveV9wYXJ0MihzdHJ1Y3Qgc3RhX2luZm8gKnN0YSkNCisgCWlmIChzdGEtPnVwbG9h ZGVkKSB7DQorIAkJcmV0ID0gZHJ2X3N0YV9zdGF0ZShsb2NhbCwgc2RhdGEsIHN0YSwgSUVFRTgw MjExX1NUQV9OT05FLA0KKyAJCQkJICAgIElFRUU4MDIxMV9TVEFfTk9URVhJU1QpOw0KKy0JCVdB Uk5fT05fT05DRShyZXQgIT0gMCk7DQorKwkJaWYgKFdBUk5fT05fT05DRShyZXQgIT0gMCkpDQor KwkJCXNkYXRhX2luZm8oc2RhdGEsICJzdGEtaW5mby1kZXN0cm95OiBkcnYtc3RhLXN0YXRlIGVy cm9yOiAlaSwgc3RhOiAlcE1cbiIsDQorKwkJCQkgICByZXQsIHN0YS0+c3RhLmFkZHIpOw0KKyAJ fQ0KKyANCisgCXN0YV9kYmcoc2RhdGEsICJSZW1vdmVkIFNUQSAlcE1cbiIsIHN0YS0+c3RhLmFk ZHIpOw0KZGlmZiAtLWdpdCBhL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAw MDUtd2lyZWxlc3MtYWRkLXByLWVyci1jYWxscy1pbi1ERlMtY29kZS5wYXRjaCBiL3BhY2thZ2Uv a2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAwMDUtd2lyZWxlc3MtYWRkLXByLWVyci1jYWxs cy1pbi1ERlMtY29kZS5wYXRjaA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAu LmIwZmNmM2QNCi0tLSAvZGV2L251bGwNCisrKyBiL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3Bh dGNoZXMvOTk5LTAwMDUtd2lyZWxlc3MtYWRkLXByLWVyci1jYWxscy1pbi1ERlMtY29kZS5wYXRj aA0KQEAgLTAsMCArMSw4NCBAQA0KK0Zyb206IEJlbiBHcmVlYXIgPGdyZWVhcmJAY2FuZGVsYXRl Y2guY29tPg0KK0RhdGU6IFdlZCwgMTEgSnVuIDIwMTQgMTI6NDg6NDQgLTA3MDANCitTdWJqZWN0 OiBbUEFUQ0hdIHdpcmVsZXNzOiBhZGQgcHItZXJyIGNhbGxzIGluIERGUyBjb2RlLg0KKw0KK0hl bHBzIGRldGVybWluZSB3aHkgREZTIGNhbm5vdCBiZSBzdGFydGVkLg0KKw0KK1NpZ25lZC1vZmYt Ynk6IEJlbiBHcmVlYXIgPGdyZWVhcmJAY2FuZGVsYXRlY2guY29tPg0KKy0tLQ0KKyBuZXQvd2ly ZWxlc3Mvbmw4MDIxMS5jIHwgMzYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0t DQorIDEgZmlsZSBjaGFuZ2VkLCAyOCBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQ0KKw0K K2RpZmYgLS1naXQgYS9uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jIGIvbmV0L3dpcmVsZXNzL25sODAy MTEuYw0KK2luZGV4IDk5OTEwODBjN2U2Mi4uNGMxOGM0ZjBjOTU0IDEwMDY0NA0KKy0tLSBhL25l dC93aXJlbGVzcy9ubDgwMjExLmMNCisrKysgYi9uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jDQorQEAg LTYzMzIsMzIgKzYzMzIsNDggQEAgc3RhdGljIGludCBubDgwMjExX3N0YXJ0X3JhZGFyX2RldGVj dGlvbihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLA0KKyAJaW50IGVycjsNCisgDQorIAlkZnNfcmVnaW9u ID0gcmVnX2dldF9kZnNfcmVnaW9uKHdkZXYtPndpcGh5KTsNCistCWlmIChkZnNfcmVnaW9uID09 IE5MODAyMTFfREZTX1VOU0VUKQ0KKysJaWYgKGRmc19yZWdpb24gPT0gTkw4MDIxMV9ERlNfVU5T RVQpIHsNCisrCQlwcl9lcnIoInN0YXJ0LXJhZGFyOiBkZnNfcmVnaW9uID09IERGU19VTlNFVFxu Iik7DQorIAkJcmV0dXJuIC1FSU5WQUw7DQorKwl9DQorIA0KKyAJZXJyID0gbmw4MDIxMV9wYXJz ZV9jaGFuZGVmKHJkZXYsIGluZm8sICZjaGFuZGVmKTsNCistCWlmIChlcnIpDQorKwlpZiAoZXJy KSB7DQorKwkJcHJfZXJyKCJzdGFydC1yYWRhcjogcGFyc2UtY2hhbmRlZiBmYWlsZWRcbiIpOw0K KyAJCXJldHVybiBlcnI7DQorKwl9DQorIA0KKy0JaWYgKG5ldGlmX2NhcnJpZXJfb2soZGV2KSkN CisrCWlmIChuZXRpZl9jYXJyaWVyX29rKGRldikpIHsNCisrCQlwcl9lcnIoInN0YXJ0LXJhZGFy OiBjYXJyaWVyLW9rXG4iKTsNCisgCQlyZXR1cm4gLUVCVVNZOw0KKysJfQ0KKyANCistCWlmICh3 ZGV2LT5jYWNfc3RhcnRlZCkNCisrCWlmICh3ZGV2LT5jYWNfc3RhcnRlZCkgew0KKysJCXByX2Vy cigic3RhcnQtcmFkYXI6IGNhYy1zdGFydGVkXG4iKTsNCisgCQlyZXR1cm4gLUVCVVNZOw0KKysJ fQ0KKyANCisgCWVyciA9IGNmZzgwMjExX2NoYW5kZWZfZGZzX3JlcXVpcmVkKHdkZXYtPndpcGh5 LCAmY2hhbmRlZiwNCisgCQkJCQkgICAgd2Rldi0+aWZ0eXBlKTsNCistCWlmIChlcnIgPCAwKQ0K KysJaWYgKGVyciA8IDApIHsNCisrCQlwcl9lcnIoInN0YXJ0LXJhZGFyOiBkZnMtcmVxdWlyZWRc biIpOw0KKyAJCXJldHVybiBlcnI7DQorKwl9DQorIA0KKy0JaWYgKGVyciA9PSAwKQ0KKysJaWYg KGVyciA9PSAwKSB7DQorKwkJcHJfZXJyKCJzdGFydC1yYWRhcjogZGZzLXJlcXVpcmVkIChlcnIg PT0gMClcbiIpOw0KKyAJCXJldHVybiAtRUlOVkFMOw0KKysJfQ0KKyANCistCWlmICghY2ZnODAy MTFfY2hhbmRlZl9kZnNfdXNhYmxlKHdkZXYtPndpcGh5LCAmY2hhbmRlZikpDQorKwlpZiAoIWNm ZzgwMjExX2NoYW5kZWZfZGZzX3VzYWJsZSh3ZGV2LT53aXBoeSwgJmNoYW5kZWYpKSB7DQorKwkJ cHJfZXJyKCJzdGFydC1yYWRhcjogZGZzIG5vdCB1c2FibGVcbiIpOw0KKyAJCXJldHVybiAtRUlO VkFMOw0KKysJfQ0KKyANCistCWlmICghcmRldi0+b3BzLT5zdGFydF9yYWRhcl9kZXRlY3Rpb24p DQorKwlpZiAoIXJkZXYtPm9wcy0+c3RhcnRfcmFkYXJfZGV0ZWN0aW9uKSB7DQorKwkJcHJfZXJy KCJzdGFydC1yYWRhcjogb3BzIG5vdCBhdmFpbGFibGVcbiIpOw0KKyAJCXJldHVybiAtRU9QTk9U U1VQUDsNCisrCX0NCisgDQorIAljYWNfdGltZV9tcyA9IGNmZzgwMjExX2NoYW5kZWZfZGZzX2Nh Y190aW1lKCZyZGV2LT53aXBoeSwgJmNoYW5kZWYpOw0KKyAJaWYgKFdBUk5fT04oIWNhY190aW1l X21zKSkNCitAQCAtNjM3MCw3ICs2Mzg2LDExIEBAIHN0YXRpYyBpbnQgbmw4MDIxMV9zdGFydF9y YWRhcl9kZXRlY3Rpb24oc3RydWN0IHNrX2J1ZmYgKnNrYiwNCisgCQl3ZGV2LT5jYWNfc3RhcnRl ZCA9IHRydWU7DQorIAkJd2Rldi0+Y2FjX3N0YXJ0X3RpbWUgPSBqaWZmaWVzOw0KKyAJCXdkZXYt PmNhY190aW1lX21zID0gY2FjX3RpbWVfbXM7DQorKwl9IGVsc2Ugew0KKysJCXByX2Vycigic3Rh cnQtcmFkYXI6IG9wcy0+c3RhcnQtcmFkYXItZGV0ZWN0aW9uIGZhaWxlZDogJWlcbiIsDQorKwkJ ICAgICAgIGVycik7DQorIAl9DQorKw0KKyAJcmV0dXJuIGVycjsNCisgfQ0KKyANCmRpZmYgLS1n aXQgYS9wYWNrYWdlL2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDA2LXdpcmVsZXNzLWFk ZC1wci1pbmZvLWRlYnVnZ2luZy1yZWxhdGVkLXRvLXJlZ3VsYXRvcnkucGF0Y2ggYi9wYWNrYWdl L2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDA2LXdpcmVsZXNzLWFkZC1wci1pbmZvLWRl YnVnZ2luZy1yZWxhdGVkLXRvLXJlZ3VsYXRvcnkucGF0Y2gNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 DQppbmRleCAwMDAwMDAwLi4xM2YzZWQ3DQotLS0gL2Rldi9udWxsDQorKysgYi9wYWNrYWdlL2tl cm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDA2LXdpcmVsZXNzLWFkZC1wci1pbmZvLWRlYnVn Z2luZy1yZWxhdGVkLXRvLXJlZ3VsYXRvcnkucGF0Y2gNCkBAIC0wLDAgKzEsMjA0IEBADQorRnJv bTogQmVuIEdyZWVhciA8Z3JlZWFyYkBjYW5kZWxhdGVjaC5jb20+DQorRGF0ZTogV2VkLCAxMSBK dW4gMjAxNCAxMzowMDozMSAtMDcwMA0KK1N1YmplY3Q6IFtQQVRDSF0gd2lyZWxlc3M6IGFkZCBw ci1pbmZvIGRlYnVnZ2luZyByZWxhdGVkIHRvIHJlZ3VsYXRvcnkgZG9tYWlucy4NCisNCitIYWQg YWxsIHNvcnRzIG9mIHRyb3VibGUgZmlndXJpbmcgb3V0IHdoeSByZWd1bGF0b3J5IHdhcyBhY3Rp bmcNCit3ZWlyZCBvbiBtZS4gIFR1cm5zIG91dCwgcHJvYmFibHkgd2FzIGJhZCByZWd1bGF0b3J5 LmJpbiwNCitidXQgdGhpcyBkZWJ1ZyBzaG91bGQgaGVscCBuZXh0IHRpbWUgdGhlcmUgYXJlIGlz c3Vlcy4NCisNCitTaWduZWQtb2ZmLWJ5OiBCZW4gR3JlZWFyIDxncmVlYXJiQGNhbmRlbGF0ZWNo LmNvbT4NCistLS0NCisgbmV0L3dpcmVsZXNzL3JlZy5jIHwgNzAgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tDQorIDEgZmlsZSBjaGFuZ2VkLCA1 NCBpbnNlcnRpb25zKCspLCAxNiBkZWxldGlvbnMoLSkNCisNCitkaWZmIC0tZ2l0IGEvbmV0L3dp cmVsZXNzL3JlZy5jIGIvbmV0L3dpcmVsZXNzL3JlZy5jDQoraW5kZXggZDM1OWUwNjEwMTk4Li42 YjFmYmIwYjhkMmQgMTAwNjQ0DQorLS0tIGEvbmV0L3dpcmVsZXNzL3JlZy5jDQorKysrIGIvbmV0 L3dpcmVsZXNzL3JlZy5jDQorQEAgLTc4NSw2ICs3ODUsMTAgQEAgc3RhdGljIGludCByZWdfcnVs ZXNfaW50ZXJzZWN0KGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfcmVnZG9tYWluICpyZDEsDQorIAlz dHJ1Y3QgaWVlZTgwMjExX3Bvd2VyX3J1bGUgKnBvd2VyX3J1bGU7DQorIAl1MzIgZnJlcV9kaWZm LCBtYXhfYmFuZHdpZHRoMSwgbWF4X2JhbmR3aWR0aDI7DQorIA0KKysJcHJfaW5mbygicmVnLXJ1 bGVzLWludGVyc2VjdCwgJWMlYyAgJWMlY1xuIiwNCisrCQlyZDEtPmFscGhhMlswXSwgcmQxLT5h bHBoYTJbMV0sDQorKwkJcmQyLT5hbHBoYTJbMF0sIHJkMi0+YWxwaGEyWzFdKTsNCisrDQorIAlm cmVxX3JhbmdlMSA9ICZydWxlMS0+ZnJlcV9yYW5nZTsNCisgCWZyZXFfcmFuZ2UyID0gJnJ1bGUy LT5mcmVxX3JhbmdlOw0KKyAJZnJlcV9yYW5nZSA9ICZpbnRlcnNlY3RlZF9ydWxlLT5mcmVxX3Jh bmdlOw0KK0BAIC05MTcsOSArOTIxLDE2IEBAIHJlZ2RvbV9pbnRlcnNlY3QoY29uc3Qgc3RydWN0 IGllZWU4MDIxMV9yZWdkb21haW4gKnJkMSwNCisgCXN0cnVjdCBpZWVlODAyMTFfcmVnX3J1bGUg aW50ZXJzZWN0ZWRfcnVsZTsNCisgCXN0cnVjdCBpZWVlODAyMTFfcmVnZG9tYWluICpyZDsNCisg DQorKwlwcl9pbmZvKCJyZWdkb20taW50ZXJzZWN0LCByZDE6ICVwICByZDI6ICVwXG4iLA0KKysJ CXJkMSwgcmQyKTsNCisrDQorIAlpZiAoIXJkMSB8fCAhcmQyKQ0KKyAJCXJldHVybiBOVUxMOw0K KyANCisrCXByX2luZm8oInJlZ2RvbS1pbnRlcnNlY3QsIHJkMTogJWMlYyAgcmQyOiAlYyVjXG4i LA0KKysJCXJkMS0+YWxwaGEyWzBdLCByZDEtPmFscGhhMlsxXSwNCisrCQlyZDItPmFscGhhMlsw XSwgcmQyLT5hbHBoYTJbMV0pOw0KKysNCisgCS8qDQorIAkgKiBGaXJzdCB3ZSBnZXQgYSBjb3Vu dCBvZiB0aGUgcnVsZXMgd2UnbGwgbmVlZCwgdGhlbiB3ZSBhY3R1YWxseQ0KKyAJICogYnVpbGQg dGhlbS4gVGhpcyBpcyB0byBzbyB3ZSBjYW4gbWFsbG9jKCkgYW5kIGZyZWUoKSBhDQorQEAgLTkz OCwxNSArOTQ5LDE5IEBAIHJlZ2RvbV9pbnRlcnNlY3QoY29uc3Qgc3RydWN0IGllZWU4MDIxMV9y ZWdkb21haW4gKnJkMSwNCisgCQl9DQorIAl9DQorIA0KKy0JaWYgKCFudW1fcnVsZXMpDQorKwlp ZiAoIW51bV9ydWxlcykgew0KKysJCXByX2luZm8oInJlZ2RvbS1pbnRlcnNlY3Q6IG51bS1ydWxl cyBpcyB6ZXJvXG4iKTsNCisgCQlyZXR1cm4gTlVMTDsNCisrCX0NCisgDQorIAlzaXplX29mX3Jl Z2QgPSBzaXplb2Yoc3RydWN0IGllZWU4MDIxMV9yZWdkb21haW4pICsNCisgCQkgICAgICAgbnVt X3J1bGVzICogc2l6ZW9mKHN0cnVjdCBpZWVlODAyMTFfcmVnX3J1bGUpOw0KKyANCisgCXJkID0g a3phbGxvYyhzaXplX29mX3JlZ2QsIEdGUF9LRVJORUwpOw0KKy0JaWYgKCFyZCkNCisrCWlmICgh cmQpIHsNCisrCQlwcl9pbmZvKCJyZWdkb20taW50ZXJzZWN0OiBDb3VsZCBub3QgYWxsb2NhdGUg cmVnZFxuIik7DQorIAkJcmV0dXJuIE5VTEw7DQorKwl9DQorIA0KKyAJZm9yICh4ID0gMDsgeCA8 IHJkMS0+bl9yZWdfcnVsZXM7IHgrKykgew0KKyAJCXJ1bGUxID0gJnJkMS0+cmVnX3J1bGVzW3hd Ow0KK0BAIC0yNzI3LDggKzI3NDIsOCBAQCBib29sIHJlZ19zdXBwb3J0ZWRfZGZzX3JlZ2lvbihl bnVtIG5sODAyMTFfZGZzX3JlZ2lvbnMgZGZzX3JlZ2lvbikNCisgCWNhc2UgTkw4MDIxMV9ERlNf SlA6DQorIAkJcmV0dXJuIHRydWU7DQorIAlkZWZhdWx0Og0KKy0JCVJFR19EQkdfUFJJTlQoIkln bm9yaW5nIHVrbm93biBERlMgbWFzdGVyIHJlZ2lvbjogJWRcbiIsDQorLQkJCSAgICAgIGRmc19y ZWdpb24pOw0KKysJCXByX2luZm8oIklnbm9yaW5nIHVrbm93biBERlMgbWFzdGVyIHJlZ2lvbjog JWRcbiIsDQorKwkJCWRmc19yZWdpb24pOw0KKyAJCXJldHVybiBmYWxzZTsNCisgCX0NCisgfQ0K K0BAIC0yNzY4LDEwICsyNzgzLDEyIEBAIHN0YXRpYyB2b2lkIHByaW50X3JlZ2RvbWFpbihjb25z dCBzdHJ1Y3QgaWVlZTgwMjExX3JlZ2RvbWFpbiAqcmQpDQorIAlwcmludF9yZF9ydWxlcyhyZCk7 DQorIH0NCisgDQorLXN0YXRpYyB2b2lkIHByaW50X3JlZ2RvbWFpbl9pbmZvKGNvbnN0IHN0cnVj dCBpZWVlODAyMTFfcmVnZG9tYWluICpyZCkNCisrc3RhdGljIHZvaWQgcHJpbnRfcmVnZG9tYWlu X2luZm8oY29uc3Qgc3RydWN0IGllZWU4MDIxMV9yZWdkb21haW4gKnJkLCBjb25zdCBjaGFyKiBk YmcpDQorIHsNCistCXByX2luZm8oIlJlZ3VsYXRvcnkgZG9tYWluOiAlYyVjXG4iLCByZC0+YWxw aGEyWzBdLCByZC0+YWxwaGEyWzFdKTsNCisrCXByX2luZm8oIlJlZ3VsYXRvcnkgZG9tYWluICgl cyk6ICVjJWMgIERGUzogJXNcbiIsDQorKwkJZGJnLCByZC0+YWxwaGEyWzBdLCByZC0+YWxwaGEy WzFdLCByZWdfZGZzX3JlZ2lvbl9zdHIocmQtPmRmc19yZWdpb24pKTsNCisgCXByaW50X3JkX3J1 bGVzKHJkKTsNCisrCXByX2luZm8oIkRvbmUgd2l0aCByZWcgZG9tYWluXG5cbiIpOw0KKyB9DQor IA0KKyBzdGF0aWMgaW50IHJlZ19zZXRfcmRfY29yZShjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3Jl Z2RvbWFpbiAqcmQpDQorQEAgLTI3ODcsMjMgKzI4MDQsMzAgQEAgc3RhdGljIGludCByZWdfc2V0 X3JkX3VzZXIoY29uc3Qgc3RydWN0IGllZWU4MDIxMV9yZWdkb21haW4gKnJkLA0KKyB7DQorIAlj b25zdCBzdHJ1Y3QgaWVlZTgwMjExX3JlZ2RvbWFpbiAqaW50ZXJzZWN0ZWRfcmQgPSBOVUxMOw0K KyANCistCWlmICghcmVnZG9tX2NoYW5nZXMocmQtPmFscGhhMikpDQorKwlwcl9pbmZvKCJzZXQt cmQtdXNlciBjYWxsZWQuLi5cbiIpOw0KKysNCisrCWlmICghcmVnZG9tX2NoYW5nZXMocmQtPmFs cGhhMikpIHsNCisrCQlwcl9pbmZvKCJzZXQtcmQtdXNlcjogIE5vIGNoYW5nZSBpbiByZWctZG9t YWluLlxuIik7DQorIAkJcmV0dXJuIC1FQUxSRUFEWTsNCisrCX0NCisgDQorIAlpZiAoIWlzX3Zh bGlkX3JkKHJkKSkgew0KKyAJCXByX2VycigiSW52YWxpZCByZWd1bGF0b3J5IGRvbWFpbiBkZXRl Y3RlZDpcbiIpOw0KKy0JCXByaW50X3JlZ2RvbWFpbl9pbmZvKHJkKTsNCisrCQlwcmludF9yZWdk b21haW5faW5mbyhyZCwgInNldC1yZC11c2VyLCBpbnZhbGlkIHJlZ2RvbWFpbiIpOw0KKyAJCXJl dHVybiAtRUlOVkFMOw0KKyAJfQ0KKyANCisgCWlmICghdXNlcl9yZXF1ZXN0LT5pbnRlcnNlY3Qp IHsNCisrCQlwcl9pbmZvKCJzZXQtcmQtdXNlcjogIE5vIGludGVyc2VjdCByZXF1ZXN0ZWQuXG4i KTsNCisgCQlyZXNldF9yZWdkb21haW5zKGZhbHNlLCByZCk7DQorIAkJcmV0dXJuIDA7DQorIAl9 DQorIA0KKyAJaW50ZXJzZWN0ZWRfcmQgPSByZWdkb21faW50ZXJzZWN0KHJkLCBnZXRfY2ZnODAy MTFfcmVnZG9tKCkpOw0KKy0JaWYgKCFpbnRlcnNlY3RlZF9yZCkNCisrCWlmICghaW50ZXJzZWN0 ZWRfcmQpIHsNCisrCQlwcl9pbmZvKCJzZXQtcmQtdXNlcjogIHJlZ2RvbV9pbnRlcnNlY3QgcmV0 dXJuZWQgTlVMTC5cbiIpOw0KKyAJCXJldHVybiAtRUlOVkFMOw0KKysJfQ0KKyANCisgCWtmcmVl KHJkKTsNCisgCXJkID0gTlVMTDsNCitAQCAtMjgyMCwzMiArMjg0NCw0MiBAQCBzdGF0aWMgaW50 IHJlZ19zZXRfcmRfZHJpdmVyKGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfcmVnZG9tYWluICpyZCwN CisgCWNvbnN0IHN0cnVjdCBpZWVlODAyMTFfcmVnZG9tYWluICp0bXA7DQorIAlzdHJ1Y3Qgd2lw aHkgKnJlcXVlc3Rfd2lwaHk7DQorIA0KKy0JaWYgKGlzX3dvcmxkX3JlZ2RvbShyZC0+YWxwaGEy KSkNCisrCWlmIChpc193b3JsZF9yZWdkb20ocmQtPmFscGhhMikpIHsNCisrCQlwcl9pbmZvKCJz ZXQtcmQtZHJpdmVyLCByZCBpcyBXT1JMRC5cbiIpOw0KKyAJCXJldHVybiAtRUlOVkFMOw0KKysJ fQ0KKyANCistCWlmICghcmVnZG9tX2NoYW5nZXMocmQtPmFscGhhMikpDQorKwlpZiAoIXJlZ2Rv bV9jaGFuZ2VzKHJkLT5hbHBoYTIpKSB7DQorKwkJcHJfaW5mbygic2V0LXJkLWRyaXZlciwgbm8g Y2hhbmdlLlxuIik7DQorIAkJcmV0dXJuIC1FQUxSRUFEWTsNCisrCX0NCisgDQorIAlpZiAoIWlz X3ZhbGlkX3JkKHJkKSkgew0KKyAJCXByX2VycigiSW52YWxpZCByZWd1bGF0b3J5IGRvbWFpbiBk ZXRlY3RlZDpcbiIpOw0KKy0JCXByaW50X3JlZ2RvbWFpbl9pbmZvKHJkKTsNCisrCQlwcmludF9y ZWdkb21haW5faW5mbyhyZCwgInNldC1yZC1kcml2ZXIsIGludmFsaWQgZG9tYWluIik7DQorIAkJ cmV0dXJuIC1FSU5WQUw7DQorIAl9DQorIA0KKyAJcmVxdWVzdF93aXBoeSA9IHdpcGh5X2lkeF90 b193aXBoeShkcml2ZXJfcmVxdWVzdC0+d2lwaHlfaWR4KTsNCisgCWlmICghcmVxdWVzdF93aXBo eSkgew0KKysJCXByX2luZm8oInNldC1yZC1kcml2ZXI6ICBDYW5ub3QgZmluZCByZXF1ZXN0IHdp cGh5LlxuIik7DQorIAkJcXVldWVfZGVsYXllZF93b3JrKHN5c3RlbV9wb3dlcl9lZmZpY2llbnRf d3EsDQorIAkJCQkgICAmcmVnX3RpbWVvdXQsIDApOw0KKyAJCXJldHVybiAtRU5PREVWOw0KKyAJ fQ0KKyANCisgCWlmICghZHJpdmVyX3JlcXVlc3QtPmludGVyc2VjdCkgew0KKy0JCWlmIChyZXF1 ZXN0X3dpcGh5LT5yZWdkKQ0KKysJCXByX2luZm8oInNldC1yZC1kcml2ZXIsIG5vIGludGVyc2Vj dCByZXF1ZXN0ZWQuXG4iKTsNCisrCQlpZiAocmVxdWVzdF93aXBoeS0+cmVnZCkgew0KKysJCQlw cl9pbmZvKCJzZXQtcmQtZHJpdmVyLCBubyBpbnRlcnNlY3QsIGhhcyByZCBhbHJlYWR5LlxuIik7 DQorIAkJCXJldHVybiAtRUFMUkVBRFk7DQorKwkJfQ0KKyANCisgCQlyZWdkID0gcmVnX2NvcHlf cmVnZChyZCk7DQorLQkJaWYgKElTX0VSUihyZWdkKSkNCisrCQlpZiAoSVNfRVJSKHJlZ2QpKSB7 DQorKwkJCXByX2luZm8oInNldC1yZC1kcml2ZXIsIG5vIGludGVyc2VjdCwgY29weSBmYWlsZWQu XG4iKTsNCisgCQkJcmV0dXJuIFBUUl9FUlIocmVnZCk7DQorKwkJfQ0KKyANCisgCQlyY3VfYXNz aWduX3BvaW50ZXIocmVxdWVzdF93aXBoeS0+cmVnZCwgcmVnZCk7DQorIAkJcmVzZXRfcmVnZG9t YWlucyhmYWxzZSwgcmQpOw0KK0BAIC0yODg5LDcgKzI5MjMsNyBAQCBzdGF0aWMgaW50IHJlZ19z ZXRfcmRfY291bnRyeV9pZShjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3JlZ2RvbWFpbiAqcmQsDQor IA0KKyAJaWYgKCFpc192YWxpZF9yZChyZCkpIHsNCisgCQlwcl9lcnIoIkludmFsaWQgcmVndWxh dG9yeSBkb21haW4gZGV0ZWN0ZWQ6XG4iKTsNCistCQlwcmludF9yZWdkb21haW5faW5mbyhyZCk7 DQorKwkJcHJpbnRfcmVnZG9tYWluX2luZm8ocmQsICJzZXQtcmQtY291bnRyeS1pZSwgaW52YWxp ZCByZWdkb21haW4iKTsNCisgCQlyZXR1cm4gLUVJTlZBTDsNCisgCX0NCisgDQorQEAgLTI5Mjks NiArMjk2MywxMCBAQCBpbnQgc2V0X3JlZ2RvbShjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3JlZ2Rv bWFpbiAqcmQsDQorIA0KKyAJbHIgPSBnZXRfbGFzdF9yZXF1ZXN0KCk7DQorIA0KKysJcHJfaW5m bygic2V0LXJlZ2RvbSwgbHItPmluaXRpYXRvcjogJWQgZG9tYWluOiAlYyVjXG4iLA0KKysJCWxy LT5pbml0aWF0b3IsIHJkLT5hbHBoYTJbMF0sIHJkLT5hbHBoYTJbMV0pOw0KKysJcHJpbnRfcmVn ZG9tYWluX2luZm8ocmQsICJzZXQtcmVnZG9tIik7DQorKw0KKyAJLyogTm90ZSB0aGF0IHRoaXMg ZG9lc24ndCB1cGRhdGUgdGhlIHdpcGh5cywgdGhpcyBpcyBkb25lIGJlbG93ICovDQorIAlzd2l0 Y2ggKGxyLT5pbml0aWF0b3IpIHsNCisgCWNhc2UgTkw4MDIxMV9SRUdET01fU0VUX0JZX0NPUkU6 DQorQEAgLTI5OTQsNyArMzAzMiw3IEBAIHN0YXRpYyBpbnQgX19yZWd1bGF0b3J5X3NldF93aXBo eV9yZWdkKHN0cnVjdCB3aXBoeSAqd2lwaHksDQorIAkJcmV0dXJuIC1FUEVSTTsNCisgDQorIAlp ZiAoV0FSTighaXNfdmFsaWRfcmQocmQpLCAiSW52YWxpZCByZWd1bGF0b3J5IGRvbWFpbiBkZXRl Y3RlZFxuIikpIHsNCistCQlwcmludF9yZWdkb21haW5faW5mbyhyZCk7DQorKwkJcHJpbnRfcmVn ZG9tYWluX2luZm8ocmQsICJpbnZhbGlkIHJlZ3VsYXRvcnkgZGV0ZWN0ZWQiKTsNCisgCQlyZXR1 cm4gLUVJTlZBTDsNCisgCX0NCisgDQpkaWZmIC0tZ2l0IGEvcGFja2FnZS9rZXJuZWwvbWFjODAy MTEvcGF0Y2hlcy85OTktMDAwNy13aXJlbGVzcy1pbXByb3ZlLWRmcy1yZWdpb24taW50ZXJzZWN0 aW9uLnBhdGNoIGIvcGFja2FnZS9rZXJuZWwvbWFjODAyMTEvcGF0Y2hlcy85OTktMDAwNy13aXJl bGVzcy1pbXByb3ZlLWRmcy1yZWdpb24taW50ZXJzZWN0aW9uLnBhdGNoDQpuZXcgZmlsZSBtb2Rl IDEwMDY0NA0KaW5kZXggMDAwMDAwMC4uYmE4NjMzYQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIvcGFj a2FnZS9rZXJuZWwvbWFjODAyMTEvcGF0Y2hlcy85OTktMDAwNy13aXJlbGVzcy1pbXByb3ZlLWRm cy1yZWdpb24taW50ZXJzZWN0aW9uLnBhdGNoDQpAQCAtMCwwICsxLDMzIEBADQorRnJvbTogQmVu IEdyZWVhciA8Z3JlZWFyYkBjYW5kZWxhdGVjaC5jb20+DQorRGF0ZTogV2VkLCAxMSBKdW4gMjAx NCAxMzowNToxMyAtMDcwMA0KK1N1YmplY3Q6IFtQQVRDSF0gd2lyZWxlc3M6IGltcHJvdmUgZGZz LXJlZ2lvbiBpbnRlcnNlY3Rpb24uDQorDQorSWYgb25lIGlzIFVOLVNFVCwgdXNlIHRoZSBvdGhl ci4gIFNlZW1zIHRoaXMgd291bGQNCitiZSBtb3JlIGNvcnJlY3QgdGhhdCB3aGF0IHdlIGhhdmUg bm93Lg0KKw0KK1NpZ25lZC1vZmYtYnk6IEJlbiBHcmVlYXIgPGdyZWVhcmJAY2FuZGVsYXRlY2gu Y29tPg0KKy0tLQ0KKyBuZXQvd2lyZWxlc3MvcmVnLmMgfCA5ICsrKysrKysrLQ0KKyAxIGZpbGUg Y2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pDQorDQorZGlmZiAtLWdpdCBh L25ldC93aXJlbGVzcy9yZWcuYyBiL25ldC93aXJlbGVzcy9yZWcuYw0KK2luZGV4IDZiMWZiYjBi OGQyZC4uY2FkMDI5YWRmMDU4IDEwMDY0NA0KKy0tLSBhL25ldC93aXJlbGVzcy9yZWcuYw0KKysr KyBiL25ldC93aXJlbGVzcy9yZWcuYw0KK0BAIC03NjQsOCArNzY0LDE1IEBAIHN0YXRpYyBlbnVt IG5sODAyMTFfZGZzX3JlZ2lvbnMNCisgcmVnX2ludGVyc2VjdF9kZnNfcmVnaW9uKGNvbnN0IGVu dW0gbmw4MDIxMV9kZnNfcmVnaW9ucyBkZnNfcmVnaW9uMSwNCisgCQkJIGNvbnN0IGVudW0gbmw4 MDIxMV9kZnNfcmVnaW9ucyBkZnNfcmVnaW9uMikNCisgew0KKy0JaWYgKGRmc19yZWdpb24xICE9 IGRmc19yZWdpb24yKQ0KKysJaWYgKGRmc19yZWdpb24xICE9IGRmc19yZWdpb24yKSB7DQorKwkJ cHJfaW5mbygiaW50ZXJzZWN0LWRmcy1yZWdpb24sIHJlZ2lvbjE6ICVkICByZWdpb24yOiAlZFxu IiwNCisrCQkJZGZzX3JlZ2lvbjEsIGRmc19yZWdpb24yKTsNCisrCQlpZiAoZGZzX3JlZ2lvbjEg PT0gTkw4MDIxMV9ERlNfVU5TRVQpDQorKwkJCXJldHVybiBkZnNfcmVnaW9uMjsNCisrCQlpZiAo ZGZzX3JlZ2lvbjIgPT0gTkw4MDIxMV9ERlNfVU5TRVQpDQorKwkJCXJldHVybiBkZnNfcmVnaW9u MTsNCisgCQlyZXR1cm4gTkw4MDIxMV9ERlNfVU5TRVQ7DQorKwl9DQorIAlyZXR1cm4gZGZzX3Jl Z2lvbjE7DQorIH0NCisgDQpkaWZmIC0tZ2l0IGEvcGFja2FnZS9rZXJuZWwvbWFjODAyMTEvcGF0 Y2hlcy85OTktMDAwOC13aXJlbGVzcy1BbGxvdy1keW5hbWljLWludGVyZmFjZS1jb21iaW5hdGlv bnMucGF0Y2ggYi9wYWNrYWdlL2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDA4LXdpcmVs ZXNzLUFsbG93LWR5bmFtaWMtaW50ZXJmYWNlLWNvbWJpbmF0aW9ucy5wYXRjaA0KbmV3IGZpbGUg bW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAuLmU0NGNjMzkNCi0tLSAvZGV2L251bGwNCisrKyBi L3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAwMDgtd2lyZWxlc3MtQWxsb3ct ZHluYW1pYy1pbnRlcmZhY2UtY29tYmluYXRpb25zLnBhdGNoDQpAQCAtMCwwICsxLDI3IEBADQor RnJvbTogQmVuIEdyZWVhciA8Z3JlZWFyYkBjYW5kZWxhdGVjaC5jb20+DQorRGF0ZTogVGh1LCAy NiBKdW4gMjAxNCAxMTozMjo0NyAtMDcwMA0KK1N1YmplY3Q6IFtQQVRDSF0gd2lyZWxlc3M6IEFs bG93IGR5bmFtaWMgaW50ZXJmYWNlIGNvbWJpbmF0aW9ucy4NCisNCitEZXBlbmRpbmcgb24gZmly bXdhcmUgYW5kL29yIG1vZHVsZSBwYXJhbWV0ZXJzLCB0aGUNCitudW1iZXIgb2YgdmRldnMgc3Vw cG9ydGVkIG1heSBjaGFuZ2UuICBSZW1vdmUgY29uc3QNCittb2RpZmllciBzbyB0aGF0IGNvZGUg Y2FuIGNoYW5nZSB0aGUgdmFsdWVzIGFjY29yZGluZ2x5DQorYXQgcnVuLXRpbWUuDQorDQorU2ln bmVkLW9mZi1ieTogQmVuIEdyZWVhciA8Z3JlZWFyYkBjYW5kZWxhdGVjaC5jb20+DQorLS0tDQor IGluY2x1ZGUvbmV0L2NmZzgwMjExLmggfCAyICstDQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2Vy dGlvbigrKSwgMSBkZWxldGlvbigtKQ0KKw0KK2RpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9jZmc4 MDIxMS5oIGIvaW5jbHVkZS9uZXQvY2ZnODAyMTEuaA0KK2luZGV4IGE3NDE2NzhmMjRhMi4uMzQ4 YzAyZGExNDI2IDEwMDY0NA0KKy0tLSBhL2luY2x1ZGUvbmV0L2NmZzgwMjExLmgNCisrKysgYi9p bmNsdWRlL25ldC9jZmc4MDIxMS5oDQorQEAgLTI4NTgsNyArMjg1OCw3IEBAIHN0cnVjdCBpZWVl ODAyMTFfaWZhY2VfbGltaXQgew0KKyAgKiAgfTsNCisgICovDQorIHN0cnVjdCBpZWVlODAyMTFf aWZhY2VfY29tYmluYXRpb24gew0KKy0JY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9saW1p dCAqbGltaXRzOw0KKysJc3RydWN0IGllZWU4MDIxMV9pZmFjZV9saW1pdCAqbGltaXRzOw0KKyAJ dTMyIG51bV9kaWZmZXJlbnRfY2hhbm5lbHM7DQorIAl1MTYgbWF4X2ludGVyZmFjZXM7DQorIAl1 OCBuX2xpbWl0czsNCmRpZmYgLS1naXQgYS9wYWNrYWdlL2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVz Lzk5OS0wMDA5LW1hYzgwMjExLU1ha2UtU1RBLWRpc2Nvbm5lY3QtbWVzc2FnZXMtd2Fybi1pbnN0 ZWFkLW8ucGF0Y2ggYi9wYWNrYWdlL2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDA5LW1h YzgwMjExLU1ha2UtU1RBLWRpc2Nvbm5lY3QtbWVzc2FnZXMtd2Fybi1pbnN0ZWFkLW8ucGF0Y2gN Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwLi5iOGNiNDkxDQotLS0gL2Rldi9u dWxsDQorKysgYi9wYWNrYWdlL2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDA5LW1hYzgw MjExLU1ha2UtU1RBLWRpc2Nvbm5lY3QtbWVzc2FnZXMtd2Fybi1pbnN0ZWFkLW8ucGF0Y2gNCkBA IC0wLDAgKzEsNjYgQEANCitGcm9tOiBCZW4gR3JlZWFyIDxncmVlYXJiQGNhbmRlbGF0ZWNoLmNv bT4NCitEYXRlOiBXZWQsIDYgRmViIDIwMTMgMDk6MDg6MzAgLTA4MDANCitTdWJqZWN0OiBbUEFU Q0hdIG1hYzgwMjExOiBNYWtlIFNUQSBkaXNjb25uZWN0IG1lc3NhZ2VzIHdhcm4gaW5zdGVhZCBv ZiBkZWJ1Zy4NCisNCitUaGlzIG1ha2VzIHRoZW0gbW9yZSBlYXNpbHkgc2VlbiBpbiAvdmFyL2xv Zy9tZXNzYWdlcw0KK2FuZCB0aGUgY29uc29sZSwgZm9yIGluc3RhbmNlLg0KKw0KK1NpZ25lZC1v ZmYtYnk6IEJlbiBHcmVlYXIgPGdyZWVhcmJAY2FuZGVsYXRlY2guY29tPg0KKy0tLQ0KKyBuZXQv bWFjODAyMTEvZGVidWcuaCB8ICAzICsrKw0KKyBuZXQvbWFjODAyMTEvbWxtZS5jICB8IDE0ICsr KysrKystLS0tLS0tDQorIDIgZmlsZXMgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgNyBkZWxl dGlvbnMoLSkNCisNCitkaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL2RlYnVnLmggYi9uZXQvbWFj ODAyMTEvZGVidWcuaA0KK2luZGV4IDE5NTZiMzExNWRkNS4uZWQ4Y2UyZDI4NDA4IDEwMDY0NA0K Ky0tLSBhL25ldC9tYWM4MDIxMS9kZWJ1Zy5oDQorKysrIGIvbmV0L21hYzgwMjExL2RlYnVnLmgN CitAQCAtMTkzLDYgKzE5Myw5IEBAIGRvIHsJCQkJCQkJCQlcDQorIAlfc2RhdGFfZGJnKE1BQzgw MjExX01MTUVfREVCVUcsCQkJCQlcDQorIAkJICAgc2RhdGEsIGZtdCwgIyNfX1ZBX0FSR1NfXykN CisgDQorKyNkZWZpbmUgbWxtZV93cm4oc2RhdGEsIGZtdCwgLi4uKQkJCQkJXA0KKysJX3NkYXRh X2VycihzZGF0YSwgZm10LCAjI19fVkFfQVJHU19fKQ0KKysNCisgI2RlZmluZSBtbG1lX2RiZ19y YXRlbGltaXRlZChzZGF0YSwgZm10LCAuLi4pCQkJCVwNCisgCV9zZGF0YV9kYmcoTUFDODAyMTFf TUxNRV9ERUJVRyAmJiBuZXRfcmF0ZWxpbWl0KCksCQlcDQorIAkJICAgc2RhdGEsIGZtdCwgIyNf X1ZBX0FSR1NfXykNCitkaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL21sbWUuYyBiL25ldC9tYWM4 MDIxMS9tbG1lLmMNCitpbmRleCA2MzMyZmY3MDVlYzMuLmQyN2Q5NjcyNWMyZiAxMDA2NDQNCist LS0gYS9uZXQvbWFjODAyMTEvbWxtZS5jDQorKysrIGIvbmV0L21hYzgwMjExL21sbWUuYw0KK0BA IC0zOTMwLDcgKzM5MzAsNyBAQCB2b2lkIGllZWU4MDIxMV9zdGFfd29yayhzdHJ1Y3QgaWVlZTgw MjExX3N1Yl9pZl9kYXRhICpzZGF0YSkNCisgCQkJCQkgbWF4X3RyaWVzKTsNCisgCQkJCWllZWU4 MDIxMV9tZ2RfcHJvYmVfYXBfc2VuZChzZGF0YSk7DQorIAkJCX0gZWxzZSB7DQorLQkJCQltbG1l X2RiZyhzZGF0YSwNCisrCQkJCW1sbWVfd3JuKHNkYXRhLA0KKyAJCQkJCSAiTm8gYWNrIGZvciBu dWxsZnVuYyBmcmFtZSB0byBBUCAlcE0sIGRpc2Nvbm5lY3RpbmcuXG4iLA0KKyAJCQkJCSBic3Np ZCk7DQorIAkJCQlpZWVlODAyMTFfc3RhX2Nvbm5lY3Rpb25fbG9zdChzZGF0YSwgYnNzaWQsDQor QEAgLTM5NDAsNyArMzk0MCw3IEBAIHZvaWQgaWVlZTgwMjExX3N0YV93b3JrKHN0cnVjdCBpZWVl ODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhKQ0KKyAJCX0gZWxzZSBpZiAodGltZV9pc19hZnRlcl9q aWZmaWVzKGlmbWdkLT5wcm9iZV90aW1lb3V0KSkNCisgCQkJcnVuX2FnYWluKHNkYXRhLCBpZm1n ZC0+cHJvYmVfdGltZW91dCk7DQorIAkJZWxzZSBpZiAoaWVlZTgwMjExX2h3X2NoZWNrKCZsb2Nh bC0+aHcsIFJFUE9SVFNfVFhfQUNLX1NUQVRVUykpIHsNCistCQkJbWxtZV9kYmcoc2RhdGEsDQor KwkJCW1sbWVfd3JuKHNkYXRhLA0KKyAJCQkJICJGYWlsZWQgdG8gc2VuZCBudWxsZnVuYyB0byBB UCAlcE0gYWZ0ZXIgJWRtcywgZGlzY29ubmVjdGluZ1xuIiwNCisgCQkJCSBic3NpZCwgcHJvYmVf d2FpdF9tcyk7DQorIAkJCWllZWU4MDIxMV9zdGFfY29ubmVjdGlvbl9sb3N0KHNkYXRhLCBic3Np ZCwNCitAQCAtMzk1NiwxMSArMzk1NiwxMSBAQCB2b2lkIGllZWU4MDIxMV9zdGFfd29yayhzdHJ1 Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSkNCisgCQkJICogV2UgYWN0dWFsbHkgbG9z dCB0aGUgY29ubmVjdGlvbiAuLi4gb3IgZGlkIHdlPw0KKyAJCQkgKiBMZXQncyBtYWtlIHN1cmUh DQorIAkJCSAqLw0KKy0JCQl3aXBoeV9kZWJ1Zyhsb2NhbC0+aHcud2lwaHksDQorLQkJCQkgICAg IiVzOiBObyBwcm9iZSByZXNwb25zZSBmcm9tIEFQICVwTSINCistCQkJCSAgICAiIGFmdGVyICVk bXMsIGRpc2Nvbm5lY3RpbmcuXG4iLA0KKy0JCQkJICAgIHNkYXRhLT5uYW1lLA0KKy0JCQkJICAg IGJzc2lkLCBwcm9iZV93YWl0X21zKTsNCisrCQkJd2lwaHlfd2Fybihsb2NhbC0+aHcud2lwaHks DQorKwkJCQkgICAiJXM6IE5vIHByb2JlIHJlc3BvbnNlIGZyb20gQVAgJXBNIg0KKysJCQkJICAg IiBhZnRlciAlZG1zLCBkaXNjb25uZWN0aW5nLlxuIiwNCisrCQkJCSAgIHNkYXRhLT5uYW1lLA0K KysJCQkJICAgYnNzaWQsIHByb2JlX3dhaXRfbXMpOw0KKyANCisgCQkJaWVlZTgwMjExX3N0YV9j b25uZWN0aW9uX2xvc3Qoc2RhdGEsIGJzc2lkLA0KKyAJCQkJV0xBTl9SRUFTT05fRElTQVNTT0Nf RFVFX1RPX0lOQUNUSVZJVFksIGZhbHNlKTsNCmRpZmYgLS1naXQgYS9wYWNrYWdlL2tlcm5lbC9t YWM4MDIxMS9wYXRjaGVzLzk5OS0wMDEwLXdpZmktV2Fybi1pZi1jYW5ub3QtYWRkLXN0YXRpb24t ZGVidWdmcy1lbnRyaWVzLnBhdGNoIGIvcGFja2FnZS9rZXJuZWwvbWFjODAyMTEvcGF0Y2hlcy85 OTktMDAxMC13aWZpLVdhcm4taWYtY2Fubm90LWFkZC1zdGF0aW9uLWRlYnVnZnMtZW50cmllcy5w YXRjaA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAuLjI1YTQ4ZjINCi0tLSAv ZGV2L251bGwNCisrKyBiL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAwMTAt d2lmaS1XYXJuLWlmLWNhbm5vdC1hZGQtc3RhdGlvbi1kZWJ1Z2ZzLWVudHJpZXMucGF0Y2gNCkBA IC0wLDAgKzEsMzkgQEANCitGcm9tOiBCZW4gR3JlZWFyIDxncmVlYXJiQGNhbmRlbGF0ZWNoLmNv bT4NCitEYXRlOiBUaHUsIDkgTWF5IDIwMTMgMTE6NTY6MTkgLTA3MDANCitTdWJqZWN0OiBbUEFU Q0hdIHdpZmk6IFdhcm4gaWYgY2Fubm90IGFkZCBzdGF0aW9uIGRlYnVnZnMgZW50cmllcy4NCisN CitTaWduZWQtb2ZmLWJ5OiBCZW4gR3JlZWFyIDxncmVlYXJiQGNhbmRlbGF0ZWNoLmNvbT4NCist LS0NCisgbmV0L21hYzgwMjExL2RlYnVnZnNfc3RhLmMgfCAxMCArKysrKysrKy0tDQorIDEgZmls ZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pDQorDQorZGlmZiAtLWdp dCBhL25ldC9tYWM4MDIxMS9kZWJ1Z2ZzX3N0YS5jIGIvbmV0L21hYzgwMjExL2RlYnVnZnNfc3Rh LmMNCitpbmRleCAwNmQ1MjkzNTAzNmQuLmQ0MGQyMjcxMzkwOCAxMDA2NDQNCistLS0gYS9uZXQv bWFjODAyMTEvZGVidWdmc19zdGEuYw0KKysrKyBiL25ldC9tYWM4MDIxMS9kZWJ1Z2ZzX3N0YS5j DQorQEAgLTM0Miw4ICszNDIsMTEgQEAgdm9pZCBpZWVlODAyMTFfc3RhX2RlYnVnZnNfYWRkKHN0 cnVjdCBzdGFfaW5mbyAqc3RhKQ0KKyANCisgCXN0YS0+ZGVidWdmcy5hZGRfaGFzX3J1biA9IHRy dWU7DQorIA0KKy0JaWYgKCFzdGF0aW9uc19kaXIpDQorKwlpZiAoIXN0YXRpb25zX2Rpcikgew0K KysJCXByaW50aygiJXM6IHN0YV9kZWJ1Z2ZzX2FkZDogc3RhdGlvbnNfZGlyIGlzIE5VTExcbiIs DQorKwkJCXN0YS0+c2RhdGEtPm5hbWUpOw0KKyAJCXJldHVybjsNCisrCX0NCisgDQorIAlzbnBy aW50ZihtYWMsIHNpemVvZihtYWMpLCAiJXBNIiwgc3RhLT5zdGEuYWRkcik7DQorIA0KK0BAIC0z NTcsOCArMzYwLDExIEBAIHZvaWQgaWVlZTgwMjExX3N0YV9kZWJ1Z2ZzX2FkZChzdHJ1Y3Qgc3Rh X2luZm8gKnN0YSkNCisgCSAqIGRpciBtaWdodCBzdGlsbCBiZSBhcm91bmQuDQorIAkgKi8NCisg CXN0YS0+ZGVidWdmcy5kaXIgPSBkZWJ1Z2ZzX2NyZWF0ZV9kaXIobWFjLCBzdGF0aW9uc19kaXIp Ow0KKy0JaWYgKCFzdGEtPmRlYnVnZnMuZGlyKQ0KKysJaWYgKCFzdGEtPmRlYnVnZnMuZGlyKSB7 DQorKwkJcHJpbnRrKCIlczogc3RhX2RlYnVnZnNfYWRkOiBGYWlsZWQgdG8gY3JlYXRlIHN0YS0+ ZGVidWdmcy5kaXJcbiIsDQorKwkJCXN0YS0+c2RhdGEtPm5hbWUpOw0KKyAJCXJldHVybjsNCisr CX0NCisgDQorIAlERUJVR0ZTX0FERChmbGFncyk7DQorIAlERUJVR0ZTX0FERChudW1fcHNfYnVm X2ZyYW1lcyk7DQpkaWZmIC0tZ2l0IGEvcGFja2FnZS9rZXJuZWwvbWFjODAyMTEvcGF0Y2hlcy85 OTktMDAxMS13aWZpLURvbi10LXNwYW0tbG9ncy13aXRoLUZvdW5kLW5ldy1iZWFjb24tbWVzc2Fn ZXMucGF0Y2ggYi9wYWNrYWdlL2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDExLXdpZmkt RG9uLXQtc3BhbS1sb2dzLXdpdGgtRm91bmQtbmV3LWJlYWNvbi1tZXNzYWdlcy5wYXRjaA0KbmV3 IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAuLmI5MWIzMWQNCi0tLSAvZGV2L251bGwN CisrKyBiL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAwMTEtd2lmaS1Eb24t dC1zcGFtLWxvZ3Mtd2l0aC1Gb3VuZC1uZXctYmVhY29uLW1lc3NhZ2VzLnBhdGNoDQpAQCAtMCww ICsxLDQ0IEBADQorRnJvbTogQmVuIEdyZWVhciA8Z3JlZWFyYkBjYW5kZWxhdGVjaC5jb20+DQor RGF0ZTogVGh1LCA5IE1heSAyMDEzIDExOjU2OjIxIC0wNzAwDQorU3ViamVjdDogW1BBVENIXSB3 aWZpOiBEb24ndCBzcGFtIGxvZ3Mgd2l0aCAnRm91bmQgbmV3IGJlYWNvbicgbWVzc2FnZXMuDQor DQorV2Ugc2F3IGxvZ3MgZmlsbCB3aXRoIHRoaXMgKGF0IHZlcnkgaGlnaCBzcGVlZHMpOg0KKw0K K2NmZzgwMjExOiBGb3VuZCBuZXcgYmVhY29uIG9uIGZyZXF1ZW5jeTogNTc0NSBNSHogKENoIDE0 OSkgb24gd2lwaHkwDQorY2ZnODAyMTE6IEZvdW5kIG5ldyBiZWFjb24gb24gZnJlcXVlbmN5OiA1 NzQ1IE1IeiAoQ2ggMTQ5KSBvbiB3aXBoeTANCitjZmc4MDIxMTogRm91bmQgbmV3IGJlYWNvbiBv biBmcmVxdWVuY3k6IDU3NDUgTUh6IChDaCAxNDkpIG9uIHdpcGh5MA0KK2NmZzgwMjExOiBGb3Vu ZCBuZXcgYmVhY29uIG9uIGZyZXF1ZW5jeTogNTc0NSBNSHogKENoIDE0OSkgb24gd2lwaHkwDQor Y2ZnODAyMTE6IEZvdW5kIG5ldyBiZWFjb24gb24gZnJlcXVlbmN5OiA1NzQ1IE1IeiAoQ2ggMTQ5 KSBvbiB3aXBoeTANCitjZmc4MDIxMTogRm91bmQgbmV3IGJlYWNvbiBvbiBmcmVxdWVuY3k6IDU3 NDUgTUh6IChDaCAxNDkpIG9uIHdpcGh5MA0KK2NmZzgwMjExOiBGb3VuZCBuZXcgYmVhY29uIG9u IGZyZXF1ZW5jeTogNTc0NSBNSHogKENoIDE0OSkgb24gd2lwaHkwDQorY2ZnODAyMTE6IEZvdW5k IG5ldyBiZWFjb24gb24gZnJlcXVlbmN5OiA1NzQ1IE1IeiAoQ2ggMTQ5KSBvbiB3aXBoeTANCitj Zmc4MDIxMTogRm91bmQgbmV3IGJlYWNvbiBvbiBmcmVxdWVuY3k6IDU3NDUgTUh6IChDaCAxNDkp IG9uIHdpcGh5MA0KK2NmZzgwMjExOiBGb3VuZCBuZXcgYmVhY29uIG9uIGZyZXF1ZW5jeTogNTc0 NSBNSHogKENoIDE0OSkgb24gd2lwaHkwDQorY2ZnODAyMTE6IEZvdW5kIG5ldyBiZWFjb24gb24g ZnJlcXVlbmN5OiA1NzQ1IE1IeiAoQ2ggMTQ5KSBvbiB3aXBoeTANCitjZmc4MDIxMTogRm91bmQg bmV3IGJlYWNvbiBvbiBmcmVxdWVuY3k6IDU3NDUgTUh6IChDaCAxNDkpIG9uIHdpcGh5MA0KKw0K K1NpZ25lZC1vZmYtYnk6IEJlbiBHcmVlYXIgPGdyZWVhcmJAY2FuZGVsYXRlY2guY29tPg0KKy0t LQ0KKyBuZXQvd2lyZWxlc3MvcmVnLmMgfCA5ICsrKysrLS0tLQ0KKyAxIGZpbGUgY2hhbmdlZCwg NSBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQ0KKw0KK2RpZmYgLS1naXQgYS9uZXQvd2ly ZWxlc3MvcmVnLmMgYi9uZXQvd2lyZWxlc3MvcmVnLmMNCitpbmRleCBjYWQwMjlhZGYwNTguLjE5 ODQ0ZmRkMGVmOSAxMDA2NDQNCistLS0gYS9uZXQvd2lyZWxlc3MvcmVnLmMNCisrKysgYi9uZXQv d2lyZWxlc3MvcmVnLmMNCitAQCAtMjY2NywxMCArMjY2NywxMSBAQCBpbnQgcmVndWxhdG9yeV9o aW50X2ZvdW5kX2JlYWNvbihzdHJ1Y3Qgd2lwaHkgKndpcGh5LA0KKyAJaWYgKCFyZWdfYmVhY29u KQ0KKyAJCXJldHVybiAtRU5PTUVNOw0KKyANCistCVJFR19EQkdfUFJJTlQoIkZvdW5kIG5ldyBi ZWFjb24gb24gZnJlcXVlbmN5OiAlZCBNSHogKENoICVkKSBvbiAlc1xuIiwNCistCQkgICAgICBi ZWFjb25fY2hhbi0+Y2VudGVyX2ZyZXEsDQorLQkJICAgICAgaWVlZTgwMjExX2ZyZXF1ZW5jeV90 b19jaGFubmVsKGJlYWNvbl9jaGFuLT5jZW50ZXJfZnJlcSksDQorLQkJICAgICAgd2lwaHlfbmFt ZSh3aXBoeSkpOw0KKysJaWYgKHByaW50a19yYXRlbGltaXQoKSkNCisrCQlSRUdfREJHX1BSSU5U KCJGb3VuZCBuZXcgYmVhY29uIG9uIGZyZXF1ZW5jeTogJWQgTUh6IChDaCAlZCkgb24gJXNcbiIs DQorKwkJCSAgICAgIGJlYWNvbl9jaGFuLT5jZW50ZXJfZnJlcSwNCisrCQkJICAgICAgaWVlZTgw MjExX2ZyZXF1ZW5jeV90b19jaGFubmVsKGJlYWNvbl9jaGFuLT5jZW50ZXJfZnJlcSksDQorKwkJ CSAgICAgIHdpcGh5X25hbWUod2lwaHkpKTsNCisgDQorIAltZW1jcHkoJnJlZ19iZWFjb24tPmNo YW4sIGJlYWNvbl9jaGFuLA0KKyAJICAgICAgIHNpemVvZihzdHJ1Y3QgaWVlZTgwMjExX2NoYW5u ZWwpKTsNCmRpZmYgLS1naXQgYS9wYWNrYWdlL2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0w MDEyLW1hYzgwMjExLUxpbWl0LW51bWJlci1vZi1wZW5kaW5nLXNrYnMucGF0Y2ggYi9wYWNrYWdl L2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDEyLW1hYzgwMjExLUxpbWl0LW51bWJlci1v Zi1wZW5kaW5nLXNrYnMucGF0Y2gNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAw Li41ZjgzZGU3DQotLS0gL2Rldi9udWxsDQorKysgYi9wYWNrYWdlL2tlcm5lbC9tYWM4MDIxMS9w YXRjaGVzLzk5OS0wMDEyLW1hYzgwMjExLUxpbWl0LW51bWJlci1vZi1wZW5kaW5nLXNrYnMucGF0 Y2gNCkBAIC0wLDAgKzEsNzMgQEANCitGcm9tOiBCZW4gR3JlZWFyIDxncmVlYXJiQGNhbmRlbGF0 ZWNoLmNvbT4NCitEYXRlOiBUaHUsIDkgTWF5IDIwMTMgMTE6NTY6MjIgLTA3MDANCitTdWJqZWN0 OiBbUEFUQ0hdIG1hYzgwMjExOiBMaW1pdCBudW1iZXIgb2YgcGVuZGluZyBza2JzLg0KKw0KK0N1 cnJlbnQgY29kZSB3aWxsIGFsbG93IGFueSBudW1iZXIgb2YgcGVuZGluZyBza2JzLCBhbmQNCit0 aGlzIGNhbiBPT00gdGhlIHN5c3RlbSB3aGVuIHVzZWQgd2l0aCBzb21ldGhpbmcgbGlrZQ0KK3Ro ZSBwa3RnZW4gdG9vbCAod2hpY2ggbWF5IG5vdCBiYWNrIG9mZiBwcm9wZXJseSBpZg0KK3F1ZXVl IGlzIHN0b3BwZWQpLg0KKw0KK1Bvc3NpYmx5IHRoaXMgaXMganVzdCBhIGJ1ZyBpbiBvdXIgdmVy c2lvbiBvZiBwa3RnZW4sDQorYnV0IGVpdGhlciB3YXksIGl0IHNlZW1zIHJlYXNvbmFibGUgdG8g YWRkIGEgbGltaXQNCitzbyB0aGF0IGl0IGlzIG5vdCBwb3NzaWJsZSB0byBnbyBPT00gaW4gdGhp cyBtYW5uZXIuDQorDQorU2lnbmVkLW9mZi1ieTogQmVuIEdyZWVhciA8Z3JlZWFyYkBjYW5kZWxh dGVjaC5jb20+DQorLS0tDQorIG5ldC9tYWM4MDIxMS90eC5jIHwgMzIgKysrKysrKysrKysrKysr KysrKysrKysrKysrKy0tLS0NCisgMSBmaWxlIGNoYW5nZWQsIDI4IGluc2VydGlvbnMoKyksIDQg ZGVsZXRpb25zKC0pDQorDQorZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIxMS90eC5jIGIvbmV0L21h YzgwMjExL3R4LmMNCitpbmRleCA5NDg5YjVkYTVhNDYuLmUzZGRmOTlkYzk1NiAxMDA2NDQNCist LS0gYS9uZXQvbWFjODAyMTEvdHguYw0KKysrKyBiL25ldC9tYWM4MDIxMS90eC5jDQorQEAgLTM0 LDYgKzM0LDE3IEBADQorICNpbmNsdWRlICJ3cGEuaCINCisgI2luY2x1ZGUgIndtZS5oIg0KKyAj aW5jbHVkZSAicmF0ZS5oIg0KKysjaW5jbHVkZSA8bGludXgvbW9kdWxlcGFyYW0uaD4NCisrDQor Ky8qDQorKyAqIE1heGltdW0gbnVtYmVyIG9mIHNrYnMgdGhhdCBtYXkgYmUgcXVldWVkIGluIGEg cGVuZGluZw0KKysgKiBxdWV1ZS4gIEFmdGVyIHRoYXQsIHBhY2tldHMgd2lsbCBqdXN0IGJlIGRy b3BwZWQuDQorKyAqLw0KKytzdGF0aWMgaW50IG1heF9wZW5kaW5nX3FzaXplID0gMTAwMDsNCisr bW9kdWxlX3BhcmFtKG1heF9wZW5kaW5nX3FzaXplLCBpbnQsIDA2NDQpOw0KKytNT0RVTEVfUEFS TV9ERVNDKG1heF9wZW5kaW5nX3FzaXplLA0KKysJCSAiTWF4aW11bSBudW1iZXIgb2Ygc2ticyB0 aGF0IG1heSBiZSBxdWV1ZWQgaW4gYSBwZW5kaW5nIHF1ZXVlLiIpOw0KKysNCisgDQorIC8qIG1p c2MgdXRpbHMgKi8NCisgDQorQEAgLTEzNjgsMTUgKzEzNzksMjggQEAgc3RhdGljIGJvb2wgaWVl ZTgwMjExX3R4X2ZyYWdzKHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsLA0KKyAJCQkJICog bGF0ZXIgdHJhbnNtaXNzaW9uIGZyb20gdGhlIHR4LXBlbmRpbmcNCisgCQkJCSAqIHRhc2tsZXQg d2hlbiB0aGUgcXVldWUgaXMgd29rZW4gYWdhaW4uDQorIAkJCQkgKi8NCistCQkJCWlmICh0eHBl bmRpbmcpDQorKwkJCQlib29sIGRvX2ZyZWUgPSBmYWxzZTsNCisrCQkJCWlmICh0eHBlbmRpbmcp IHsNCisgCQkJCQlza2JfcXVldWVfc3BsaWNlX2luaXQoc2ticywNCisgCQkJCQkJCSAgICAgICZs b2NhbC0+cGVuZGluZ1txXSk7DQorLQkJCQllbHNlDQorLQkJCQkJc2tiX3F1ZXVlX3NwbGljZV90 YWlsX2luaXQoc2ticywNCistCQkJCQkJCQkgICAmbG9jYWwtPnBlbmRpbmdbcV0pOw0KKysJCQkJ fSBlbHNlIHsNCisrCQkJCQl1MzIgbGVuID0gc2tiX3F1ZXVlX2xlbigmbG9jYWwtPnBlbmRpbmdb cV0pOw0KKysJCQkJCWlmIChsZW4gPj0gbWF4X3BlbmRpbmdfcXNpemUpIHsNCisrCQkJCQkJX19z a2JfdW5saW5rKHNrYiwgc2ticyk7DQorKwkJCQkJCWRvX2ZyZWUgPSB0cnVlOw0KKysJCQkJCX0g ZWxzZSB7DQorKwkJCQkJCXNrYl9xdWV1ZV9zcGxpY2VfdGFpbF9pbml0KHNrYnMsDQorKwkJCQkJ CQkJCSAgICZsb2NhbC0+cGVuZGluZ1txXSk7DQorKwkJCQkJfQ0KKysJCQkJfQ0KKyANCisgCQkJ CXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmxvY2FsLT5xdWV1ZV9zdG9wX3JlYXNvbl9sb2NrLA0K KyAJCQkJCQkgICAgICAgZmxhZ3MpOw0KKysJCQkJaWYgKGRvX2ZyZWUpIHsNCisrCQkJCQlkZXZf a2ZyZWVfc2tiX2FueShza2IpOw0KKysJCQkJCS8qIFRPRE86ICBBZGQgY291bnRlciBmb3IgdGhp cyAqLw0KKysJCQkJfQ0KKysNCisgCQkJCXJldHVybiBmYWxzZTsNCisgCQkJfQ0KKyAJCX0NCmRp ZmYgLS1naXQgYS9wYWNrYWdlL2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDEzLW1hYzgw MjExLU1ha2UtdW4tZm91bmQtcmF0ZS1zcGxhdC1hLXdhcm4tb25jZS5wYXRjaCBiL3BhY2thZ2Uv a2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAwMTMtbWFjODAyMTEtTWFrZS11bi1mb3VuZC1y YXRlLXNwbGF0LWEtd2Fybi1vbmNlLnBhdGNoDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXgg MDAwMDAwMC4uNGQ3N2YxOQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIvcGFja2FnZS9rZXJuZWwvbWFj ODAyMTEvcGF0Y2hlcy85OTktMDAxMy1tYWM4MDIxMS1NYWtlLXVuLWZvdW5kLXJhdGUtc3BsYXQt YS13YXJuLW9uY2UucGF0Y2gNCkBAIC0wLDAgKzEsNTEgQEANCitGcm9tOiBCZW4gR3JlZWFyIDxn cmVlYXJiQGNhbmRlbGF0ZWNoLmNvbT4NCitEYXRlOiBUaHUsIDkgTWF5IDIwMTMgMTE6NTY6MzAg LTA3MDANCitTdWJqZWN0OiBbUEFUQ0hdIG1hYzgwMjExOiBNYWtlIHVuLWZvdW5kLXJhdGUgc3Bs YXQgYSB3YXJuLW9uY2UuDQorDQorQWZ0ZXIgdGhhdCwgcHJpbnQgaXQgb3V0IHdpdGggbmV0X3Jh dGVsaW1pdC4gIFdlIHNhdyBhIHN5c3RlbQ0KK2NvbnRpbnVhbGx5IGhpdCB0aGlzIHdhcm5pbmcs IGZvciByZWFzb25zIHVua25vd24sIGFuZCBpdA0KK3NlZW1zIGl0IGJvZ2dlZCB0aGUgc3lzdGVt IGRvd24gZW5vdWdoIHRvIG1ha2UgaXQgZ28gT09NLg0KKw0KK1NpZ25lZC1vZmYtYnk6IEJlbiBH cmVlYXIgPGdyZWVhcmJAY2FuZGVsYXRlY2guY29tPg0KKy0tLQ0KKyBuZXQvbWFjODAyMTEvdHgu YyB8IDI2ICsrKysrKysrKysrKysrKysrKystLS0tLS0tDQorIDEgZmlsZSBjaGFuZ2VkLCAxOSBp bnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQ0KKw0KK2RpZmYgLS1naXQgYS9uZXQvbWFjODAy MTEvdHguYyBiL25ldC9tYWM4MDIxMS90eC5jDQoraW5kZXggZTNkZGY5OWRjOTU2Li45M2Q2YmU1 MzAyN2QgMTAwNjQ0DQorLS0tIGEvbmV0L21hYzgwMjExL3R4LmMNCisrKysgYi9uZXQvbWFjODAy MTEvdHguYw0KK0BAIC03MjcsMTQgKzcyNywyNiBAQCBpZWVlODAyMTFfdHhfaF9yYXRlX2N0cmwo c3RydWN0IGllZWU4MDIxMV90eF9kYXRhICp0eCkNCisgCSAqIExldHMgbm90IGJvdGhlciByYXRl IGNvbnRyb2wgaWYgd2UncmUgYXNzb2NpYXRlZCBhbmQgY2Fubm90DQorIAkgKiB0YWxrIHRvIHRo ZSBzdGEuIFRoaXMgc2hvdWxkIG5vdCBoYXBwZW4uDQorIAkgKi8NCistCWlmIChXQVJOKHRlc3Rf Yml0KFNDQU5fU1dfU0NBTk5JTkcsICZ0eC0+bG9jYWwtPnNjYW5uaW5nKSAmJiBhc3NvYyAmJg0K Ky0JCSAhcmF0ZV91c2FibGVfaW5kZXhfZXhpc3RzKHNiYW5kLCAmdHgtPnN0YS0+c3RhKSwNCist CQkgIiVzOiBEcm9wcGVkIGRhdGEgZnJhbWUgYXMgbm8gdXNhYmxlIGJpdHJhdGUgZm91bmQgd2hp bGUgIg0KKy0JCSAic2Nhbm5pbmcgYW5kIGFzc29jaWF0ZWQuIFRhcmdldCBzdGF0aW9uOiAiDQor LQkJICIlcE0gb24gJWQgR0h6IGJhbmRcbiIsDQorLQkJIHR4LT5zZGF0YS0+bmFtZSwgaGRyLT5h ZGRyMSwNCistCQkgaW5mby0+YmFuZCA/IDUgOiAyKSkNCisrCWlmICh0ZXN0X2JpdChTQ0FOX1NX X1NDQU5OSU5HLCAmdHgtPmxvY2FsLT5zY2FubmluZykgJiYgYXNzb2MgJiYNCisrCSAgICAhcmF0 ZV91c2FibGVfaW5kZXhfZXhpc3RzKHNiYW5kLCAmdHgtPnN0YS0+c3RhKSkgew0KKysJCXN0YXRp YyBib29sIGRvX29uY2UgPSB0cnVlOw0KKysJCWlmIChkb19vbmNlKSB7DQorKwkJCVdBUk4oMSwg IiVzOiBEcm9wcGVkIGRhdGEgZnJhbWUgYXMgbm8gdXNhYmxlIGJpdHJhdGUgZm91bmQgd2hpbGUg Ig0KKysJCQkgICAgICJzY2FubmluZyBhbmQgYXNzb2NpYXRlZC4gVGFyZ2V0IHN0YXRpb246ICIN CisrCQkJICAgICAiJXBNIG9uICVkIEdIeiBiYW5kXG4iLA0KKysJCQkgICAgIHR4LT5zZGF0YS0+ bmFtZSwgaGRyLT5hZGRyMSwNCisrCQkJICAgICBpbmZvLT5iYW5kID8gNSA6IDIpOw0KKysJCQlk b19vbmNlID0gZmFsc2U7DQorKwkJfQ0KKysJCWVsc2Ugew0KKysJCQluZXRfaW5mb19yYXRlbGlt aXRlZCgiJXM6IERyb3BwZWQgZGF0YSBmcmFtZSBhcyBubyB1c2FibGUgYml0cmF0ZSBmb3VuZCB3 aGlsZSAiDQorKwkJCQkJICAgICAic2Nhbm5pbmcgYW5kIGFzc29jaWF0ZWQuIFRhcmdldCBzdGF0 aW9uOiAiDQorKwkJCQkJICAgICAiJXBNIG9uICVkIEdIeiBiYW5kXG4iLA0KKysJCQkJCSAgICAg dHgtPnNkYXRhLT5uYW1lLCBoZHItPmFkZHIxLA0KKysJCQkJCSAgICAgaW5mby0+YmFuZCA/IDUg OiAyKTsNCisrCQl9DQorIAkJcmV0dXJuIFRYX0RST1A7DQorKwl9DQorIA0KKyAJLyoNCisgCSAq IElmIHdlJ3JlIGFzc29jaWF0ZWQgd2l0aCB0aGUgc3RhIGF0IHRoaXMgcG9pbnQgd2Uga25vdyB3 ZSBjYW4gYXQNCmRpZmYgLS1naXQgYS9wYWNrYWdlL2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5 OS0wMDE0LW1hYzgwMjExLUdldC1ldGh0b29sLXN0YXRzLWZyZXF1ZW5jeS1tb3JlLW9mdGVuLnBh dGNoIGIvcGFja2FnZS9rZXJuZWwvbWFjODAyMTEvcGF0Y2hlcy85OTktMDAxNC1tYWM4MDIxMS1H ZXQtZXRodG9vbC1zdGF0cy1mcmVxdWVuY3ktbW9yZS1vZnRlbi5wYXRjaA0KbmV3IGZpbGUgbW9k ZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAuLjZkMjk5NzENCi0tLSAvZGV2L251bGwNCisrKyBiL3Bh Y2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAwMTQtbWFjODAyMTEtR2V0LWV0aHRv b2wtc3RhdHMtZnJlcXVlbmN5LW1vcmUtb2Z0ZW4ucGF0Y2gNCkBAIC0wLDAgKzEsMzYgQEANCitG cm9tOiBCZW4gR3JlZWFyIDxncmVlYXJiQGNhbmRlbGF0ZWNoLmNvbT4NCitEYXRlOiBUdWUsIDIx IE1heSAyMDEzIDE2OjA4OjMwIC0wNzAwDQorU3ViamVjdDogW1BBVENIXSBtYWM4MDIxMTogR2V0 IGV0aHRvb2wtc3RhdHMgZnJlcXVlbmN5IG1vcmUgb2Z0ZW4uDQorDQorU29tZSBOSUNzIChhdGg5 a19odGMpIGRvbid0IHVzZSBjaGFuY3R4X2NvbmYsIGl0DQorc2VlbXMsIHNvIGxvb2sgYXQgbG9j YWwtPmh3LmNvbmYuY2hhbm5lbC0+Y2VudGVyX2ZyZXENCitpbiB0aGF0IGNhc2UuDQorDQorU2ln bmVkLW9mZi1ieTogQmVuIEdyZWVhciA8Z3JlZWFyYkBjYW5kZWxhdGVjaC5jb20+DQorLS0tDQor IG5ldC9tYWM4MDIxMS9ldGh0b29sLmMgfCAxMiArKysrKysrKy0tLS0NCisgMSBmaWxlIGNoYW5n ZWQsIDggaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkNCisNCitkaWZmIC0tZ2l0IGEvbmV0 L21hYzgwMjExL2V0aHRvb2wuYyBiL25ldC9tYWM4MDIxMS9ldGh0b29sLmMNCitpbmRleCAxODhm YWFiMTFjMjQuLjE1NjdlZWEzZmFiNyAxMDA2NDQNCistLS0gYS9uZXQvbWFjODAyMTEvZXRodG9v bC5jDQorKysrIGIvbmV0L21hYzgwMjExL2V0aHRvb2wuYw0KK0BAIC0xNjYsMTAgKzE2NiwxNCBA QCBkb19zdXJ2ZXk6DQorIAkJfSB3aGlsZSAoY2hhbm5lbCAhPSBzdXJ2ZXkuY2hhbm5lbCk7DQor IAl9DQorIA0KKy0JaWYgKHN1cnZleS5maWxsZWQpDQorLQkJZGF0YVtpKytdID0gc3VydmV5LmNo YW5uZWwtPmNlbnRlcl9mcmVxOw0KKy0JZWxzZQ0KKy0JCWRhdGFbaSsrXSA9IDA7DQorKwlpZiAo Y2hhbm5lbCkgew0KKysJCWRhdGFbaSsrXSA9IGNoYW5uZWwtPmNlbnRlcl9mcmVxOw0KKysJfSBl bHNlIHsNCisrCQlpZiAobG9jYWwtPl9vcGVyX2NoYW5kZWYuY2hhbikNCisrCQkJZGF0YVtpKytd ID0gbG9jYWwtPl9vcGVyX2NoYW5kZWYuY2hhbi0+Y2VudGVyX2ZyZXE7DQorKwkJZWxzZQ0KKysJ CQlkYXRhW2krK10gPSAwOw0KKysJfQ0KKyAJaWYgKHN1cnZleS5maWxsZWQgJiBTVVJWRVlfSU5G T19OT0lTRV9EQk0pDQorIAkJZGF0YVtpKytdID0gKHU4KXN1cnZleS5ub2lzZTsNCisgCWVsc2UN CmRpZmYgLS1naXQgYS9wYWNrYWdlL2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDE1LW1h YzgwMjExLURlYnVnZ2luZy1mb3ItY2hhbnR4LXdhcm5pbmdzLnBhdGNoIGIvcGFja2FnZS9rZXJu ZWwvbWFjODAyMTEvcGF0Y2hlcy85OTktMDAxNS1tYWM4MDIxMS1EZWJ1Z2dpbmctZm9yLWNoYW50 eC13YXJuaW5ncy5wYXRjaA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAuLjQ5 ZmQxMWYNCi0tLSAvZGV2L251bGwNCisrKyBiL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNo ZXMvOTk5LTAwMTUtbWFjODAyMTEtRGVidWdnaW5nLWZvci1jaGFudHgtd2FybmluZ3MucGF0Y2gN CkBAIC0wLDAgKzEsMjQgQEANCitGcm9tOiBCZW4gR3JlZWFyIDxncmVlYXJiQGNhbmRlbGF0ZWNo LmNvbT4NCitEYXRlOiBUdWUsIDIxIE1heSAyMDEzIDE2OjA4OjMwIC0wNzAwDQorU3ViamVjdDog W1BBVENIXSBtYWM4MDIxMTogRGVidWdnaW5nIGZvciBjaGFudHggd2FybmluZ3MuDQorLS0tDQor IG5ldC9tYWM4MDIxMS9jaGFuLmMgfCA1ICsrKystDQorIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2Vy dGlvbnMoKyksIDEgZGVsZXRpb24oLSkNCisNCitkaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL2No YW4uYyBiL25ldC9tYWM4MDIxMS9jaGFuLmMNCitpbmRleCAxZDFiOWI3YmRlZmUuLjQyNzVlZWFl MWI0YyAxMDA2NDQNCistLS0gYS9uZXQvbWFjODAyMTEvY2hhbi5jDQorKysrIGIvbmV0L21hYzgw MjExL2NoYW4uYw0KK0BAIC01ODcsOCArNTg3LDExIEBAIHZvaWQgaWVlZTgwMjExX3JlY2FsY19j aGFuY3R4X2NoYW50eXBlKHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsLA0KKyANCisgCQlj b21wYXQgPSBjZmc4MDIxMV9jaGFuZGVmX2NvbXBhdGlibGUoDQorIAkJCQkmc2RhdGEtPnZpZi5i c3NfY29uZi5jaGFuZGVmLCBjb21wYXQpOw0KKy0JCWlmIChXQVJOX09OX09OQ0UoIWNvbXBhdCkp DQorKwkJaWYgKFdBUk5fT05fT05DRSghY29tcGF0KSkgew0KKysJCQlwcmludGsoImNvbXBhdCB3 YXMgTlVMTCBpbiBjaGFuY3R4X2NoYW50eXBlLCBkZXY6ICVzXG4iLA0KKysJCQkgICAgICAgc2Rh dGEtPm5hbWUpOw0KKyAJCQlicmVhazsNCisrCQl9DQorIAl9DQorIA0KKyAJLyogVERMUyBwZWVy cyBjYW4gc29tZXRpbWVzIGFmZmVjdCB0aGUgY2hhbmRlZiB3aWR0aCAqLw0KZGlmZiAtLWdpdCBh L3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAwMTYtbWFjODAyMTEtRml4LXBr dGdlbi1vbi13aWZpLWludGVyZmFjZXMucGF0Y2ggYi9wYWNrYWdlL2tlcm5lbC9tYWM4MDIxMS9w YXRjaGVzLzk5OS0wMDE2LW1hYzgwMjExLUZpeC1wa3RnZW4tb24td2lmaS1pbnRlcmZhY2VzLnBh dGNoDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMC4uNzFlMzM4NQ0KLS0tIC9k ZXYvbnVsbA0KKysrIGIvcGFja2FnZS9rZXJuZWwvbWFjODAyMTEvcGF0Y2hlcy85OTktMDAxNi1t YWM4MDIxMS1GaXgtcGt0Z2VuLW9uLXdpZmktaW50ZXJmYWNlcy5wYXRjaA0KQEAgLTAsMCArMSwz MyBAQA0KK0Zyb206IEJlbiBHcmVlYXIgPGdyZWVhcmJAY2FuZGVsYXRlY2guY29tPg0KK0RhdGU6 IFRodSwgMzAgTWF5IDIwMTMgMTE6NDc6MjMgLTA3MDANCitTdWJqZWN0OiBbUEFUQ0hdIG1hYzgw MjExOiBGaXggcGt0Z2VuIG9uIHdpZmkgaW50ZXJmYWNlcy4NCisNCitPdGhlcndpc2UsIHlvdSBn ZXQgcXVldWUtbWlzbWF0Y2ggc3BsYXRzIGFuZCBzdHVjaw0KK3F1ZXVlcyBpbiBhdGg5ay4NCist LS0NCisgbmV0L21hYzgwMjExL3R4LmMgfCAxMiArKysrKysrKysrKysNCisgMSBmaWxlIGNoYW5n ZWQsIDEyIGluc2VydGlvbnMoKykNCisNCitkaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL3R4LmMg Yi9uZXQvbWFjODAyMTEvdHguYw0KK2luZGV4IDkzZDZiZTUzMDI3ZC4uMmNmMDVmMDMxN2IzIDEw MDY0NA0KKy0tLSBhL25ldC9tYWM4MDIxMS90eC5jDQorKysrIGIvbmV0L21hYzgwMjExL3R4LmMN CitAQCAtMTY5OSw2ICsxNjk5LDE4IEBAIHZvaWQgaWVlZTgwMjExX3htaXQoc3RydWN0IGllZWU4 MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsDQorIAkJfQ0KKyAJfQ0KKyANCisrCS8qIFRoaXMgY2hl Y2sgbmVlZHMgdG8gZ28gaW4gYmVmb3JlIHRoZSBRb1MgaGVhZGVyIGlzIHNldCBiZWxvdy4gKi8N CisrCWlmIChza2ItPnByaW9yaXR5ID4gNyB8fA0KKysJICAgIHNrYi0+cXVldWVfbWFwcGluZyAh PSBpZWVlODAyXzFkX3RvX2FjW3NrYi0+cHJpb3JpdHldKSB7DQorKwkJV0FSTl9PTkNFKDEsICJJ bnZhbGlkIHF1ZXVlLW1hcHBpbmcsIHByaW9yaXR5OiAlaSAgcXVldWUtbWFwcGluZzogJWkuICBU aGlzIGlzIGFuIGV4cGVjdGVkIHdhcm5pbmcgaWYgeW91IGFyZSB1c2luZyBwa3RnZW4sIGJ1dCBv dGhlcndpc2UgbWF5IGluZGljYXRlIGEgYnVnLlxuIiwNCisrCQkJICAoaW50KShza2ItPnByaW9y aXR5KSwgKGludCkoc2tiLT5xdWV1ZV9tYXBwaW5nKSk7DQorKwkJLyogQWRqdXN0IHF1ZXVlLW1h cHBpbmcgdG8gbWF0Y2ggd2hhdCB0aGUgd2lmaSBzdGFjayBleHBlY3RzLg0KKysJCSAqIHBrdGdl biB3aWxsIGp1c3QgaGF2ZSB0byBzZXQgUW9TIGJpdHMgYWNjb3JkaW5nbHkgaW5zdGVhZA0KKysJ CSAqIG9mIHRyeWluZyB0byBzZXQgdGhlIHF1ZXVlX21hcHBpbmcgZGlyZWN0bHkuDQorKwkJICov DQorKwkJc2tiX3NldF9xdWV1ZV9tYXBwaW5nKHNrYiwgaWVlZTgwMjExX3NlbGVjdF9xdWV1ZShz ZGF0YSwgc2tiKSk7DQorKwl9DQorKw0KKyAJaWVlZTgwMjExX3NldF9xb3NfaGRyKHNkYXRhLCBz a2IpOw0KKyAJaWVlZTgwMjExX3R4KHNkYXRhLCBzdGEsIHNrYiwgZmFsc2UpOw0KKyB9DQpkaWZm IC0tZ2l0IGEvcGFja2FnZS9rZXJuZWwvbWFjODAyMTEvcGF0Y2hlcy85OTktMDAxNy1tYWM4MDIx MS1UZWxsLXVzZXItd2h5LWJlYWNvbnMtZmFpbC10by1wYXJzZS5wYXRjaCBiL3BhY2thZ2Uva2Vy bmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAwMTctbWFjODAyMTEtVGVsbC11c2VyLXdoeS1iZWFj b25zLWZhaWwtdG8tcGFyc2UucGF0Y2gNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAw MDAwLi5mMmMwMmNiDQotLS0gL2Rldi9udWxsDQorKysgYi9wYWNrYWdlL2tlcm5lbC9tYWM4MDIx MS9wYXRjaGVzLzk5OS0wMDE3LW1hYzgwMjExLVRlbGwtdXNlci13aHktYmVhY29ucy1mYWlsLXRv LXBhcnNlLnBhdGNoDQpAQCAtMCwwICsxLDIzMyBAQA0KK0Zyb206IEJlbiBHcmVlYXIgPGdyZWVh cmJAY2FuZGVsYXRlY2guY29tPg0KK0RhdGU6IFNhdCwgMjkgSnVuIDIwMTMgMTU6Mjk6MzggLTA3 MDANCitTdWJqZWN0OiBbUEFUQ0hdIG1hYzgwMjExOiBUZWxsIHVzZXIgd2h5IGJlYWNvbnMgZmFp bCB0byBwYXJzZS4NCisNCitTaG91bGQgaGVscCBiZXR0ZXIgZGVidWcgZG9kZ3kgQVBzIGFuZCBz dWNoLg0KKw0KK1NpZ25lZC1vZmYtYnk6IEJlbiBHcmVlYXIgPGdyZWVhcmJAY2FuZGVsYXRlY2gu Y29tPg0KKy0tLQ0KKyBuZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaCB8ICAyICsrDQorIG5ldC9t YWM4MDIxMS9tbG1lLmMgICAgICAgIHwgIDQgKy0tDQorIG5ldC9tYWM4MDIxMS9zY2FuLmMgICAg ICAgIHwgIDYgKysrKw0KKyBuZXQvbWFjODAyMTEvdXRpbC5jICAgICAgICB8IDc5ICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0NCisgNCBmaWxlcyBjaGFuZ2Vk LCA4MSBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkNCisNCitkaWZmIC0tZ2l0IGEvbmV0 L21hYzgwMjExL2llZWU4MDIxMV9pLmggYi9uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaA0KK2lu ZGV4IGRkMTMxZTliNDFkNy4uNzAxYjNkY2YwZGI3IDEwMDY0NA0KKy0tLSBhL25ldC9tYWM4MDIx MS9pZWVlODAyMTFfaS5oDQorKysrIGIvbmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgNCitAQCAt MTIwLDYgKzEyMCw3IEBAIHN0cnVjdCBpZWVlODAyMTFfYnNzIHsNCisgDQorIAkvKiBLZWVwIHRy YWNrIG9mIHdoYXQgYml0cyBvZiBpbmZvcm1hdGlvbiB3ZSBoYXZlIHZhbGlkIGluZm8gZm9yLiAq Lw0KKyAJdTggdmFsaWRfZGF0YTsNCisrCWNoYXIgY29ycnVwdF9lbGVtc19tc2dbODBdOw0KKyB9 Ow0KKyANCisgLyoqDQorQEAgLTE0MzksNiArMTQ0MCw3IEBAIHN0cnVjdCBpZWVlODAyXzExX2Vs ZW1zIHsNCisgDQorIAkvKiB3aGV0aGVyIGEgcGFyc2UgZXJyb3Igb2NjdXJyZWQgd2hpbGUgcmV0 cmlldmluZyB0aGVzZSBlbGVtZW50cyAqLw0KKyAJYm9vbCBwYXJzZV9lcnJvcjsNCisrCWNoYXIg cGFyc2VfZXJyX21zZ1s4MF07DQorIH07DQorIA0KKyBzdGF0aWMgaW5saW5lIHN0cnVjdCBpZWVl ODAyMTFfbG9jYWwgKmh3X3RvX2xvY2FsKA0KK2RpZmYgLS1naXQgYS9uZXQvbWFjODAyMTEvbWxt ZS5jIGIvbmV0L21hYzgwMjExL21sbWUuYw0KK2luZGV4IGQyN2Q5NjcyNWMyZi4uOTg1MDBjMTZi MTZmIDEwMDY0NA0KKy0tLSBhL25ldC9tYWM4MDIxMS9tbG1lLmMNCisrKysgYi9uZXQvbWFjODAy MTEvbWxtZS5jDQorQEAgLTQ5MzYsOCArNDkzNiw4IEBAIGludCBpZWVlODAyMTFfbWdkX2Fzc29j KHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLA0KKyAJCQkJY29ycnVwdF90eXBl ID0gImJlYWNvbiI7DQorIAkJfSBlbHNlIGlmIChic3MtPmNvcnJ1cHRfZGF0YSAmIElFRUU4MDIx MV9CU1NfQ09SUlVQVF9QUk9CRV9SRVNQKQ0KKyAJCQljb3JydXB0X3R5cGUgPSAicHJvYmUgcmVz cG9uc2UiOw0KKy0JCXNkYXRhX2luZm8oc2RhdGEsICJhc3NvY2lhdGluZyB3aXRoIEFQIHdpdGgg Y29ycnVwdCAlc1xuIiwNCistCQkJICAgY29ycnVwdF90eXBlKTsNCisrCQlzZGF0YV9pbmZvKHNk YXRhLCAiYXNzb2NpYXRpbmcgd2l0aCBBUCB3aXRoIGNvcnJ1cHQgJXMsIHJlYXNvbjogJXNcbiIs DQorKwkJCSAgIGNvcnJ1cHRfdHlwZSwgYnNzLT5jb3JydXB0X2VsZW1zX21zZyk7DQorIAl9DQor IA0KKyAJcmV0dXJuIDA7DQorZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIxMS9zY2FuLmMgYi9uZXQv bWFjODAyMTEvc2Nhbi5jDQoraW5kZXggMTFkMDkwMWViYjdiLi42ZTg1N2QxNTc1OTIgMTAwNjQ0 DQorLS0tIGEvbmV0L21hYzgwMjExL3NjYW4uYw0KKysrKyBiL25ldC9tYWM4MDIxMS9zY2FuLmMN CitAQCAtMTAxLDYgKzEwMSw4IEBAIGllZWU4MDIxMV9ic3NfaW5mb191cGRhdGUoc3RydWN0IGll ZWU4MDIxMV9sb2NhbCAqbG9jYWwsDQorIAkJYnNzLT5kZXZpY2VfdHNfcHJlc3AgPSByeF9zdGF0 dXMtPmRldmljZV90aW1lc3RhbXA7DQorIA0KKyAJaWYgKGVsZW1zLT5wYXJzZV9lcnJvcikgew0K KysJCXN0cm5jcHkoYnNzLT5jb3JydXB0X2VsZW1zX21zZywgZWxlbXMtPnBhcnNlX2Vycl9tc2cs DQorKwkJCXNpemVvZihic3MtPmNvcnJ1cHRfZWxlbXNfbXNnKSk7DQorIAkJaWYgKGJlYWNvbikN CisgCQkJYnNzLT5jb3JydXB0X2RhdGEgfD0gSUVFRTgwMjExX0JTU19DT1JSVVBUX0JFQUNPTjsN CisgCQllbHNlDQorQEAgLTExMCw2ICsxMTIsMTAgQEAgaWVlZTgwMjExX2Jzc19pbmZvX3VwZGF0 ZShzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCwNCisgCQkJYnNzLT5jb3JydXB0X2RhdGEg Jj0gfklFRUU4MDIxMV9CU1NfQ09SUlVQVF9CRUFDT047DQorIAkJZWxzZQ0KKyAJCQlic3MtPmNv cnJ1cHRfZGF0YSAmPSB+SUVFRTgwMjExX0JTU19DT1JSVVBUX1BST0JFX1JFU1A7DQorKwkJaWYg KCEoYnNzLT5jb3JydXB0X2RhdGEgJg0KKysJCSAgICAgIChJRUVFODAyMTFfQlNTX0NPUlJVUFRf QkVBQ09OIHwNCisrCQkgICAgICAgSUVFRTgwMjExX0JTU19DT1JSVVBUX1BST0JFX1JFU1ApKSkN CisrCQkJYnNzLT5jb3JydXB0X2VsZW1zX21zZ1swXSA9IDA7DQorIAl9DQorIA0KKyAJLyogc2F2 ZSB0aGUgRVJQIHZhbHVlIHNvIHRoYXQgaXQgaXMgYXZhaWxhYmxlIGF0IGFzc29jaWF0aW9uIHRp bWUgKi8NCitkaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL3V0aWwuYyBiL25ldC9tYWM4MDIxMS91 dGlsLmMNCitpbmRleCBlNTQ1OTZmOTU2NjMuLmJmODM0MTNlNjA2MSAxMDA2NDQNCistLS0gYS9u ZXQvbWFjODAyMTEvdXRpbC5jDQorKysrIGIvbmV0L21hYzgwMjExL3V0aWwuYw0KK0BAIC03ODYs NiArNzg2LDEwIEBAIHUzMiBpZWVlODAyXzExX3BhcnNlX2VsZW1zX2NyYyhjb25zdCB1OCAqc3Rh cnQsIHNpemVfdCBsZW4sIGJvb2wgYWN0aW9uLA0KKyANCisgCQlpZiAoZWxlbiA+IGxlZnQpIHsN CisgCQkJZWxlbXMtPnBhcnNlX2Vycm9yID0gdHJ1ZTsNCisrCQkJc25wcmludGYoZWxlbXMtPnBh cnNlX2Vycl9tc2csDQorKwkJCQkgc2l6ZW9mKGVsZW1zLT5wYXJzZV9lcnJfbXNnKSwNCisrCQkJ CSAiZWxlbjogJWhodSA+IGxlZnQ6ICV6dSIsDQorKwkJCQkgZWxlbiwgbGVmdCk7DQorIAkJCWJy ZWFrOw0KKyAJCX0NCisgDQorQEAgLTgyOSw2ICs4MzMsOSBAQCB1MzIgaWVlZTgwMl8xMV9wYXJz ZV9lbGVtc19jcmMoY29uc3QgdTggKnN0YXJ0LCBzaXplX3QgbGVuLCBib29sIGFjdGlvbiwNCisg CQkgKi8NCisgCQkJaWYgKHRlc3RfYml0KGlkLCBzZWVuX2VsZW1zKSkgew0KKyAJCQkJZWxlbXMt PnBhcnNlX2Vycm9yID0gdHJ1ZTsNCisrCQkJCXNucHJpbnRmKGVsZW1zLT5wYXJzZV9lcnJfbXNn LA0KKysJCQkJCSBzaXplb2YoZWxlbXMtPnBhcnNlX2Vycl9tc2cpLA0KKysJCQkJCSAic2VlbiBp ZDogJWkgYWxyZWFkeSIsIGlkKTsNCisgCQkJCWxlZnQgLT0gZWxlbjsNCisgCQkJCXBvcyArPSBl bGVuOw0KKyAJCQkJY29udGludWU7DQorQEAgLTg3OCw4ICs4ODUsMTQgQEAgdTMyIGllZWU4MDJf MTFfcGFyc2VfZWxlbXNfY3JjKGNvbnN0IHU4ICpzdGFydCwgc2l6ZV90IGxlbiwgYm9vbCBhY3Rp b24sDQorIAkJCWlmIChlbGVuID49IHNpemVvZihzdHJ1Y3QgaWVlZTgwMjExX3RpbV9pZSkpIHsN CisgCQkJCWVsZW1zLT50aW0gPSAodm9pZCAqKXBvczsNCisgCQkJCWVsZW1zLT50aW1fbGVuID0g ZWxlbjsNCistCQkJfSBlbHNlDQorKwkJCX0gZWxzZSB7DQorIAkJCQllbGVtX3BhcnNlX2ZhaWxl ZCA9IHRydWU7DQorKwkJCQlzbnByaW50ZihlbGVtcy0+cGFyc2VfZXJyX21zZywNCisrCQkJCQkg c2l6ZW9mKGVsZW1zLT5wYXJzZV9lcnJfbXNnKSwNCisrCQkJCQkgIkVJRF9USU0gc2l6ZSB3cm9u ZywgZWxlbjogJWhodSAgc2l6ZW9mKHRpbV9pZSk6ICV6dSIsDQorKwkJCQkJIGVsZW4sDQorKwkJ CQkJIHNpemVvZihzdHJ1Y3QgaWVlZTgwMjExX3RpbV9pZSkpOw0KKysJCQl9DQorIAkJCWJyZWFr Ow0KKyAJCWNhc2UgV0xBTl9FSURfQ0hBTExFTkdFOg0KKyAJCQllbGVtcy0+Y2hhbGxlbmdlID0g cG9zOw0KK0BAIC05MjIsMzIgKzkzNSw2MSBAQCB1MzIgaWVlZTgwMl8xMV9wYXJzZV9lbGVtc19j cmMoY29uc3QgdTggKnN0YXJ0LCBzaXplX3QgbGVuLCBib29sIGFjdGlvbiwNCisgCQljYXNlIFdM QU5fRUlEX0hUX0NBUEFCSUxJVFk6DQorIAkJCWlmIChlbGVuID49IHNpemVvZihzdHJ1Y3QgaWVl ZTgwMjExX2h0X2NhcCkpDQorIAkJCQllbGVtcy0+aHRfY2FwX2VsZW0gPSAodm9pZCAqKXBvczsN CistCQkJZWxzZQ0KKysJCQllbHNlIHsNCisgCQkJCWVsZW1fcGFyc2VfZmFpbGVkID0gdHJ1ZTsN CisrCQkJCXNucHJpbnRmKGVsZW1zLT5wYXJzZV9lcnJfbXNnLA0KKysJCQkJCSBzaXplb2YoZWxl bXMtPnBhcnNlX2Vycl9tc2cpLA0KKysJCQkJCSAiSFRfQ0FQQUIgc2l6ZSB3cm9uZywgZWxlbjog JWhodSAgc2l6ZW9mKGh0X2NhcCk6ICV6dSIsDQorKwkJCQkJIGVsZW4sDQorKwkJCQkJIHNpemVv ZihzdHJ1Y3QgaWVlZTgwMjExX2h0X2NhcCkpOw0KKysJCQl9DQorIAkJCWJyZWFrOw0KKyAJCWNh c2UgV0xBTl9FSURfSFRfT1BFUkFUSU9OOg0KKyAJCQlpZiAoZWxlbiA+PSBzaXplb2Yoc3RydWN0 IGllZWU4MDIxMV9odF9vcGVyYXRpb24pKQ0KKyAJCQkJZWxlbXMtPmh0X29wZXJhdGlvbiA9ICh2 b2lkICopcG9zOw0KKy0JCQllbHNlDQorKwkJCWVsc2Ugew0KKyAJCQkJZWxlbV9wYXJzZV9mYWls ZWQgPSB0cnVlOw0KKysJCQkJc25wcmludGYoZWxlbXMtPnBhcnNlX2Vycl9tc2csDQorKwkJCQkJ IHNpemVvZihlbGVtcy0+cGFyc2VfZXJyX21zZyksDQorKwkJCQkJICJIVF9PUEVSIHNpemUgd3Jv bmcsIGVsZW46ICVoaHUgIHNpemVvZihodF9vcGVyKTogJXp1IiwNCisrCQkJCQkgZWxlbiwNCisr CQkJCQkgc2l6ZW9mKHN0cnVjdCBpZWVlODAyMTFfaHRfb3BlcmF0aW9uKSk7DQorKwkJCX0NCisg CQkJYnJlYWs7DQorIAkJY2FzZSBXTEFOX0VJRF9WSFRfQ0FQQUJJTElUWToNCisgCQkJaWYgKGVs ZW4gPj0gc2l6ZW9mKHN0cnVjdCBpZWVlODAyMTFfdmh0X2NhcCkpDQorIAkJCQllbGVtcy0+dmh0 X2NhcF9lbGVtID0gKHZvaWQgKilwb3M7DQorLQkJCWVsc2UNCisrCQkJZWxzZSB7DQorIAkJCQll bGVtX3BhcnNlX2ZhaWxlZCA9IHRydWU7DQorKwkJCQlzbnByaW50ZihlbGVtcy0+cGFyc2VfZXJy X21zZywNCisrCQkJCQkgc2l6ZW9mKGVsZW1zLT5wYXJzZV9lcnJfbXNnKSwNCisrCQkJCQkgIkVJ RF9WSFQgc2l6ZSB3cm9uZywgZWxlbjogJWhodSAgc2l6ZW9mKHZodF9jYXApOiAlenUiLA0KKysJ CQkJCSBlbGVuLA0KKysJCQkJCSBzaXplb2Yoc3RydWN0IGllZWU4MDIxMV92aHRfY2FwKSk7DQor KwkJCX0NCisgCQkJYnJlYWs7DQorIAkJY2FzZSBXTEFOX0VJRF9WSFRfT1BFUkFUSU9OOg0KKyAJ CQlpZiAoZWxlbiA+PSBzaXplb2Yoc3RydWN0IGllZWU4MDIxMV92aHRfb3BlcmF0aW9uKSkNCisg CQkJCWVsZW1zLT52aHRfb3BlcmF0aW9uID0gKHZvaWQgKilwb3M7DQorLQkJCWVsc2UNCisrCQkJ ZWxzZSB7DQorIAkJCQllbGVtX3BhcnNlX2ZhaWxlZCA9IHRydWU7DQorKwkJCQlzbnByaW50Zihl bGVtcy0+cGFyc2VfZXJyX21zZywNCisrCQkJCQkgc2l6ZW9mKGVsZW1zLT5wYXJzZV9lcnJfbXNn KSwNCisrCQkJCQkgIlZIVF9PUEVSIHNpemUgd3JvbmcsIGVsZW46ICVoaHUgIHNpemVvZih2aHRf b3Blcik6ICV6dSIsDQorKwkJCQkJIGVsZW4sDQorKwkJCQkJIHNpemVvZihzdHJ1Y3QgaWVlZTgw MjExX3ZodF9vcGVyYXRpb24pKTsNCisrCQkJfQ0KKyAJCQlicmVhazsNCisgCQljYXNlIFdMQU5f RUlEX09QTU9ERV9OT1RJRjoNCisgCQkJaWYgKGVsZW4gPiAwKQ0KKyAJCQkJZWxlbXMtPm9wbW9k ZV9ub3RpZiA9IHBvczsNCistCQkJZWxzZQ0KKysJCQllbHNlIHsNCisgCQkJCWVsZW1fcGFyc2Vf ZmFpbGVkID0gdHJ1ZTsNCisrCQkJCXNucHJpbnRmKGVsZW1zLT5wYXJzZV9lcnJfbXNnLA0KKysJ CQkJCSBzaXplb2YoZWxlbXMtPnBhcnNlX2Vycl9tc2cpLA0KKysJCQkJCSAiT1BNT0RFX05PVElG IGhhcyBlbGVuID4gMDogJWhodSIsDQorKwkJCQkJIGVsZW4pOw0KKysJCQl9DQorIAkJCWJyZWFr Ow0KKyAJCWNhc2UgV0xBTl9FSURfTUVTSF9JRDoNCisgCQkJZWxlbXMtPm1lc2hfaWQgPSBwb3M7 DQorQEAgLTk1Niw4ICs5OTgsMTQgQEAgdTMyIGllZWU4MDJfMTFfcGFyc2VfZWxlbXNfY3JjKGNv bnN0IHU4ICpzdGFydCwgc2l6ZV90IGxlbiwgYm9vbCBhY3Rpb24sDQorIAkJY2FzZSBXTEFOX0VJ RF9NRVNIX0NPTkZJRzoNCisgCQkJaWYgKGVsZW4gPj0gc2l6ZW9mKHN0cnVjdCBpZWVlODAyMTFf bWVzaGNvbmZfaWUpKQ0KKyAJCQkJZWxlbXMtPm1lc2hfY29uZmlnID0gKHZvaWQgKilwb3M7DQor LQkJCWVsc2UNCisrCQkJZWxzZSB7DQorIAkJCQllbGVtX3BhcnNlX2ZhaWxlZCA9IHRydWU7DQor KwkJCQlzbnByaW50ZihlbGVtcy0+cGFyc2VfZXJyX21zZywNCisrCQkJCQkgc2l6ZW9mKGVsZW1z LT5wYXJzZV9lcnJfbXNnKSwNCisrCQkJCQkgIk1FU0hfQ09ORklHIHNpemUgd3JvbmcsIGVsZW46 ICVoaHUgIHNpemVvZihtZXNoY29uZl9pZSk6ICV6dSIsDQorKwkJCQkJIGVsZW4sDQorKwkJCQkJ IHNpemVvZihzdHJ1Y3QgaWVlZTgwMjExX21lc2hjb25mX2llKSk7DQorKwkJCX0NCisgCQkJYnJl YWs7DQorIAkJY2FzZSBXTEFOX0VJRF9QRUVSX01HTVQ6DQorIAkJCWVsZW1zLT5wZWVyaW5nID0g cG9zOw0KK0BAIC05ODIsMTIgKzEwMzAsMjMgQEAgdTMyIGllZWU4MDJfMTFfcGFyc2VfZWxlbXNf Y3JjKGNvbnN0IHU4ICpzdGFydCwgc2l6ZV90IGxlbiwgYm9vbCBhY3Rpb24sDQorIAkJY2FzZSBX TEFOX0VJRF9SQU5OOg0KKyAJCQlpZiAoZWxlbiA+PSBzaXplb2Yoc3RydWN0IGllZWU4MDIxMV9y YW5uX2llKSkNCisgCQkJCWVsZW1zLT5yYW5uID0gKHZvaWQgKilwb3M7DQorLQkJCWVsc2UNCisr CQkJZWxzZSB7DQorIAkJCQllbGVtX3BhcnNlX2ZhaWxlZCA9IHRydWU7DQorKwkJCQlzbnByaW50 ZihlbGVtcy0+cGFyc2VfZXJyX21zZywNCisrCQkJCQkgc2l6ZW9mKGVsZW1zLT5wYXJzZV9lcnJf bXNnKSwNCisrCQkJCQkgIkVJRF9SQU5OIHNpemUgd3JvbmcsIGVsZW46ICVoaHUgIHNpemVvZihy YW5uX2llKTogJXp1IiwNCisrCQkJCQkgZWxlbiwNCisrCQkJCQkgc2l6ZW9mKHN0cnVjdCBpZWVl ODAyMTFfcmFubl9pZSkpOw0KKysJCQl9DQorIAkJCWJyZWFrOw0KKyAJCWNhc2UgV0xBTl9FSURf Q0hBTk5FTF9TV0lUQ0g6DQorIAkJCWlmIChlbGVuICE9IHNpemVvZihzdHJ1Y3QgaWVlZTgwMjEx X2NoYW5uZWxfc3dfaWUpKSB7DQorIAkJCQllbGVtX3BhcnNlX2ZhaWxlZCA9IHRydWU7DQorKwkJ CQlzbnByaW50ZihlbGVtcy0+cGFyc2VfZXJyX21zZywNCisrCQkJCQkgc2l6ZW9mKGVsZW1zLT5w YXJzZV9lcnJfbXNnKSwNCisrCQkJCQkgIkNIX1NXSVRDSCBzaXplIHdyb25nLCBlbGVuOiAlaGh1 ICBzaXplb2Yoc3dfaWUpOiAlenUiLA0KKysJCQkJCSBlbGVuLA0KKysJCQkJCSBzaXplb2Yoc3Ry dWN0IGllZWU4MDIxMV9jaGFubmVsX3N3X2llKSk7DQorIAkJCQlicmVhazsNCisgCQkJfQ0KKyAJ CQllbGVtcy0+Y2hfc3dpdGNoX2llID0gKHZvaWQgKilwb3M7DQorQEAgLTEwNDksNiArMTEwOCwx MCBAQCB1MzIgaWVlZTgwMl8xMV9wYXJzZV9lbGVtc19jcmMoY29uc3QgdTggKnN0YXJ0LCBzaXpl X3QgbGVuLCBib29sIGFjdGlvbiwNCisgCQljYXNlIFdMQU5fRUlEX1BXUl9DT05TVFJBSU5UOg0K KyAJCQlpZiAoZWxlbiAhPSAxKSB7DQorIAkJCQllbGVtX3BhcnNlX2ZhaWxlZCA9IHRydWU7DQor KwkJCQlzbnByaW50ZihlbGVtcy0+cGFyc2VfZXJyX21zZywNCisrCQkJCQkgc2l6ZW9mKGVsZW1z LT5wYXJzZV9lcnJfbXNnKSwNCisrCQkJCQkgIlBXUl9DT05TVFJBSU5UIHNpemUgbm90IDEsIGVs ZW46ICVoaHUiLA0KKysJCQkJCSBlbGVuKTsNCisgCQkJCWJyZWFrOw0KKyAJCQl9DQorIAkJCWVs ZW1zLT5wd3JfY29uc3RyX2VsZW0gPSBwb3M7DQpkaWZmIC0tZ2l0IGEvcGFja2FnZS9rZXJuZWwv bWFjODAyMTEvcGF0Y2hlcy85OTktMDAxOC1tYWM4MDIxMS1BZGQtcHJlY2lzZS10aW1lLXN0YW1w cy10by1hc3NvY2lhdGlvbi1sb2dnLnBhdGNoIGIvcGFja2FnZS9rZXJuZWwvbWFjODAyMTEvcGF0 Y2hlcy85OTktMDAxOC1tYWM4MDIxMS1BZGQtcHJlY2lzZS10aW1lLXN0YW1wcy10by1hc3NvY2lh dGlvbi1sb2dnLnBhdGNoDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMC4uYmFj ZThhYQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIvcGFja2FnZS9rZXJuZWwvbWFjODAyMTEvcGF0Y2hl cy85OTktMDAxOC1tYWM4MDIxMS1BZGQtcHJlY2lzZS10aW1lLXN0YW1wcy10by1hc3NvY2lhdGlv bi1sb2dnLnBhdGNoDQpAQCAtMCwwICsxLDExNiBAQA0KK0Zyb206IEJlbiBHcmVlYXIgPGdyZWVh cmJAY2FuZGVsYXRlY2guY29tPg0KK0RhdGU6IFdlZCwgMTMgTm92IDIwMTMgMTA6MTU6MTIgLTA4 MDANCitTdWJqZWN0OiBbUEFUQ0hdIG1hYzgwMjExOiBBZGQgcHJlY2lzZSB0aW1lLXN0YW1wcyB0 byBhc3NvY2lhdGlvbiBsb2dnaW5nLg0KKw0KK1RoaXMgaGVscHMgdW5kZXJzdGFuZCBleGFjdGx5 IGhvdyBsb25nIGl0IHRha2VzIHRvIGNvbm5lY3QNCit0byBBUHMuDQorDQorU2lnbmVkLW9mZi1i eTogQmVuIEdyZWVhciA8Z3JlZWFyYkBjYW5kZWxhdGVjaC5jb20+DQorLS0tDQorIG5ldC9tYWM4 MDIxMS9tbG1lLmMgfCA1OCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Ky0tLS0tLS0tLS0tLQ0KKyAxIGZpbGUgY2hhbmdlZCwgNDUgaW5zZXJ0aW9ucygrKSwgMTMgZGVs ZXRpb25zKC0pDQorDQorZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIxMS9tbG1lLmMgYi9uZXQvbWFj ODAyMTEvbWxtZS5jDQoraW5kZXggOTg1MDBjMTZiMTZmLi42ODkwOGY4MWFmOTUgMTAwNjQ0DQor LS0tIGEvbmV0L21hYzgwMjExL21sbWUuYw0KKysrKyBiL25ldC9tYWM4MDIxMS9tbG1lLmMNCitA QCAtMjYyNCw3ICsyNjI0LDE0IEBAIHN0YXRpYyB2b2lkIGllZWU4MDIxMV9yeF9tZ210X2F1dGgo c3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsDQorIA0KKyAJZXZlbnQudS5tbG1l LnN0YXR1cyA9IE1MTUVfU1VDQ0VTUzsNCisgCWRydl9ldmVudF9jYWxsYmFjayhzZGF0YS0+bG9j YWwsIHNkYXRhLCAmZXZlbnQpOw0KKy0Jc2RhdGFfaW5mbyhzZGF0YSwgImF1dGhlbnRpY2F0ZWRc biIpOw0KKysNCisrCXsNCisrCQlzdHJ1Y3QgdGltZXZhbCB0djsNCisrCQlkb19nZXR0aW1lb2Zk YXkoJnR2KTsNCisrCQlzZGF0YV9pbmZvKHNkYXRhLCAiYXV0aGVudGljYXRlZCBhdDogJWx1LiVs dVxuIiwNCisrCQkJICAgdHYudHZfc2VjLCB0di50dl91c2VjKTsNCisrCX0NCisrDQorIAlpZm1n ZC0+YXV0aF9kYXRhLT5kb25lID0gdHJ1ZTsNCisgCWlmbWdkLT5hdXRoX2RhdGEtPnRpbWVvdXQg PSBqaWZmaWVzICsgSUVFRTgwMjExX0FVVEhfV0FJVF9BU1NPQzsNCisgCWlmbWdkLT5hdXRoX2Rh dGEtPnRpbWVvdXRfc3RhcnRlZCA9IHRydWU7DQorQEAgLTMxMTQsMTAgKzMxMjEsMTYgQEAgc3Rh dGljIHZvaWQgaWVlZTgwMjExX3J4X21nbXRfYXNzb2NfcmVzcChzdHJ1Y3QgaWVlZTgwMjExX3N1 Yl9pZl9kYXRhICpzZGF0YSwNCisgCXN0YXR1c19jb2RlID0gbGUxNl90b19jcHUobWdtdC0+dS5h c3NvY19yZXNwLnN0YXR1c19jb2RlKTsNCisgCWFpZCA9IGxlMTZfdG9fY3B1KG1nbXQtPnUuYXNz b2NfcmVzcC5haWQpOw0KKyANCistCXNkYXRhX2luZm8oc2RhdGEsDQorLQkJICAgIlJYICVzc3Nv Y1Jlc3AgZnJvbSAlcE0gKGNhcGFiPTB4JXggc3RhdHVzPSVkIGFpZD0lZClcbiIsDQorLQkJICAg cmVhc3NvYyA/ICJSZWEiIDogIkEiLCBtZ210LT5zYSwNCistCQkgICBjYXBhYl9pbmZvLCBzdGF0 dXNfY29kZSwgKHUxNikoYWlkICYgfihCSVQoMTUpIHwgQklUKDE0KSkpKTsNCisrCXsNCisrCQlz dHJ1Y3QgdGltZXZhbCB0djsNCisrCQlkb19nZXR0aW1lb2ZkYXkoJnR2KTsNCisrCQlzZGF0YV9p bmZvKHNkYXRhLA0KKysJCQkgICAiUlggJXNzc29jUmVzcCBmcm9tICVwTSAoY2FwYWI9MHgleCBz dGF0dXM9JWQgYWlkPSVkKSBhdDogJWx1LiVsdVxuIiwNCisrCQkJICAgcmVhc3NvYyA/ICJSZWEi IDogIkEiLCBtZ210LT5zYSwNCisrCQkJICAgY2FwYWJfaW5mbywgc3RhdHVzX2NvZGUsDQorKwkJ CSAgICh1MTYpKGFpZCAmIH4oQklUKDE1KSB8IEJJVCgxNCkpKSwgdHYudHZfc2VjLA0KKysJCQkg ICB0di50dl91c2VjKTsNCisrCX0NCisgDQorIAlwb3MgPSBtZ210LT51LmFzc29jX3Jlc3AudmFy aWFibGU7DQorIAlpZWVlODAyXzExX3BhcnNlX2VsZW1zKHBvcywgbGVuIC0gKHBvcyAtICh1OCAq KSBtZ210KSwgZmFsc2UsICZlbGVtcyk7DQorQEAgLTMxNTYsNyArMzE2OSwxMiBAQCBzdGF0aWMg dm9pZCBpZWVlODAyMTFfcnhfbWdtdF9hc3NvY19yZXNwKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lm X2RhdGEgKnNkYXRhLA0KKyAJCX0NCisgCQlldmVudC51Lm1sbWUuc3RhdHVzID0gTUxNRV9TVUND RVNTOw0KKyAJCWRydl9ldmVudF9jYWxsYmFjayhzZGF0YS0+bG9jYWwsIHNkYXRhLCAmZXZlbnQp Ow0KKy0JCXNkYXRhX2luZm8oc2RhdGEsICJhc3NvY2lhdGVkXG4iKTsNCisrCQl7DQorKwkJCXN0 cnVjdCB0aW1ldmFsIHR2Ow0KKysJCQlkb19nZXR0aW1lb2ZkYXkoJnR2KTsNCisrCQkJc2RhdGFf aW5mbyhzZGF0YSwgImFzc29jaWF0ZWQgYXQ6ICVsdS4lbHVcbiIsDQorKwkJCQkgICB0di50dl9z ZWMsIHR2LnR2X3VzZWMpOw0KKysJCX0NCisgDQorIAkJLyoNCisgCQkgKiBkZXN0cm95IGFzc29j X2RhdGEgYWZ0ZXJ3YXJkcywgYXMgb3RoZXJ3aXNlIGFuIGlkbGUNCitAQCAtMzcxNSw5ICszNzMz LDE0IEBAIHN0YXRpYyBpbnQgaWVlZTgwMjExX3Byb2JlX2F1dGgoc3RydWN0IGllZWU4MDIxMV9z dWJfaWZfZGF0YSAqc2RhdGEpDQorIAkJdTE2IHRyYW5zID0gMTsNCisgCQl1MTYgc3RhdHVzID0g MDsNCisgDQorLQkJc2RhdGFfaW5mbyhzZGF0YSwgInNlbmQgYXV0aCB0byAlcE0gKHRyeSAlZC8l ZClcbiIsDQorLQkJCSAgIGF1dGhfZGF0YS0+YnNzLT5ic3NpZCwgYXV0aF9kYXRhLT50cmllcywN CistCQkJICAgSUVFRTgwMjExX0FVVEhfTUFYX1RSSUVTKTsNCisrCQl7DQorKwkJCXN0cnVjdCB0 aW1ldmFsIHR2Ow0KKysJCQlkb19nZXR0aW1lb2ZkYXkoJnR2KTsNCisrCQkJc2RhdGFfaW5mbyhz ZGF0YSwgInNlbmQgYXV0aCB0byAlcE0gKHRyeSAlZC8lZCkgYXQ6ICVsdS4lbHVcbiIsDQorKwkJ CQkgICBhdXRoX2RhdGEtPmJzcy0+YnNzaWQsIGF1dGhfZGF0YS0+dHJpZXMsDQorKwkJCQkgICBJ RUVFODAyMTFfQVVUSF9NQVhfVFJJRVMsIHR2LnR2X3NlYywNCisrCQkJCSAgIHR2LnR2X3VzZWMp Ow0KKysJCX0NCisgDQorIAkJYXV0aF9kYXRhLT5leHBlY3RlZF90cmFuc2FjdGlvbiA9IDI7DQor IA0KK0BAIC0zNzk1LDkgKzM4MTgsMTMgQEAgc3RhdGljIGludCBpZWVlODAyMTFfZG9fYXNzb2Mo c3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEpDQorIAkJcmV0dXJuIC1FVElNRURP VVQ7DQorIAl9DQorIA0KKy0Jc2RhdGFfaW5mbyhzZGF0YSwgImFzc29jaWF0ZSB3aXRoICVwTSAo dHJ5ICVkLyVkKVxuIiwNCistCQkgICBhc3NvY19kYXRhLT5ic3MtPmJzc2lkLCBhc3NvY19kYXRh LT50cmllcywNCistCQkgICBJRUVFODAyMTFfQVNTT0NfTUFYX1RSSUVTKTsNCisrCXsNCisrCQlz dHJ1Y3QgdGltZXZhbCB0djsNCisrCQlkb19nZXR0aW1lb2ZkYXkoJnR2KTsNCisrCQlzZGF0YV9p bmZvKHNkYXRhLCAiYXNzb2NpYXRlIHdpdGggJXBNICh0cnkgJWQvJWQpLCBhdDogJWx1LiVsdVxu IiwNCisrCQkJICAgYXNzb2NfZGF0YS0+YnNzLT5ic3NpZCwgYXNzb2NfZGF0YS0+dHJpZXMsDQor KwkJCSAgIElFRUU4MDIxMV9BU1NPQ19NQVhfVFJJRVMsIHR2LnR2X3NlYywgdHYudHZfdXNlYyk7 DQorKwl9DQorIAlpZWVlODAyMTFfc2VuZF9hc3NvYyhzZGF0YSk7DQorIA0KKyAJaWYgKCFpZWVl ODAyMTFfaHdfY2hlY2soJmxvY2FsLT5odywgUkVQT1JUU19UWF9BQ0tfU1RBVFVTKSkgew0KK0BA IC00NTU2LDcgKzQ1ODMsMTIgQEAgaW50IGllZWU4MDIxMV9tZ2RfYXV0aChzdHJ1Y3QgaWVlZTgw MjExX3N1Yl9pZl9kYXRhICpzZGF0YSwNCisgCQkJCQkgICAgV0xBTl9SRUFTT05fVU5TUEVDSUZJ RUQpOw0KKyAJfQ0KKyANCistCXNkYXRhX2luZm8oc2RhdGEsICJhdXRoZW50aWNhdGUgd2l0aCAl cE1cbiIsIHJlcS0+YnNzLT5ic3NpZCk7DQorKwl7DQorKwkJc3RydWN0IHRpbWV2YWwgdHY7DQor KwkJZG9fZ2V0dGltZW9mZGF5KCZ0dik7DQorKwkJc2RhdGFfaW5mbyhzZGF0YSwgImF1dGhlbnRp Y2F0ZSB3aXRoICVwTSBhdDogJWx1LiVsdVxuIiwNCisrCQkJICAgcmVxLT5ic3MtPmJzc2lkLCB0 di50dl9zZWMsIHR2LnR2X3VzZWMpOw0KKysJfQ0KKyANCisgCWVyciA9IGllZWU4MDIxMV9wcmVw X2Nvbm5lY3Rpb24oc2RhdGEsIHJlcS0+YnNzLCBmYWxzZSwgZmFsc2UpOw0KKyAJaWYgKGVycikN CmRpZmYgLS1naXQgYS9wYWNrYWdlL2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDE5LXdp cmVsZXNzLWJldHRlci1yZWdkb21haW4tbG9nZ2luZy5wYXRjaCBiL3BhY2thZ2Uva2VybmVsL21h YzgwMjExL3BhdGNoZXMvOTk5LTAwMTktd2lyZWxlc3MtYmV0dGVyLXJlZ2RvbWFpbi1sb2dnaW5n LnBhdGNoDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMC4uNTA4NDc2NA0KLS0t IC9kZXYvbnVsbA0KKysrIGIvcGFja2FnZS9rZXJuZWwvbWFjODAyMTEvcGF0Y2hlcy85OTktMDAx OS13aXJlbGVzcy1iZXR0ZXItcmVnZG9tYWluLWxvZ2dpbmcucGF0Y2gNCkBAIC0wLDAgKzEsMjkg QEANCitGcm9tOiBCZW4gR3JlZWFyIDxncmVlYXJiQGNhbmRlbGF0ZWNoLmNvbT4NCitEYXRlOiBX ZWQsIDI0IFNlcCAyMDE0IDEzOjM1OjU1IC0wNzAwDQorU3ViamVjdDogW1BBVENIXSB3aXJlbGVz czogYmV0dGVyIHJlZ2RvbWFpbiBsb2dnaW5nLg0KKw0KK1NpZ25lZC1vZmYtYnk6IEJlbiBHcmVl YXIgPGdyZWVhcmJAY2FuZGVsYXRlY2guY29tPg0KKy0tLQ0KKyBuZXQvd2lyZWxlc3MvcmVnLmMg fCA5ICsrKysrKysrKw0KKyAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspDQorDQorZGlm ZiAtLWdpdCBhL25ldC93aXJlbGVzcy9yZWcuYyBiL25ldC93aXJlbGVzcy9yZWcuYw0KK2luZGV4 IDE5ODQ0ZmRkMGVmOS4uNGExZGY2NWY0OTA2IDEwMDY0NA0KKy0tLSBhL25ldC93aXJlbGVzcy9y ZWcuYw0KKysrKyBiL25ldC93aXJlbGVzcy9yZWcuYw0KK0BAIC0xNjgzLDYgKzE2ODMsMTUgQEAg c3RhdGljIHZvaWQgd2lwaHlfdXBkYXRlX3JlZ3VsYXRvcnkoc3RydWN0IHdpcGh5ICp3aXBoeSwN CisgCQlyZXR1cm47DQorIAl9DQorIA0KKysJcHJfaW5mbygiU2V0dGluZyBERlMgTWFzdGVyIHJl Z2lvbiBpbiB1cGRhdGVfcmVndWxhdG9yeSwgd2FzOiAlYyVjICVzLCBuZXc6ICVjJWMgJXMgIGxy OiAlcCAgcmVnZG9tOiAlcFxuIiwNCisrCQlsci0+YWxwaGEyWzBdLA0KKysJCWxyLT5hbHBoYTJb MV0sDQorKwkJcmVnX2Rmc19yZWdpb25fc3RyKGxyLT5kZnNfcmVnaW9uKSwNCisrCQlnZXRfY2Zn ODAyMTFfcmVnZG9tKCktPmFscGhhMlswXSwNCisrCQlnZXRfY2ZnODAyMTFfcmVnZG9tKCktPmFs cGhhMlsxXSwNCisrCQlyZWdfZGZzX3JlZ2lvbl9zdHIoZ2V0X2NmZzgwMjExX3JlZ2RvbSgpLT5k ZnNfcmVnaW9uKSwNCisrCQlsciwgZ2V0X2NmZzgwMjExX3JlZ2RvbSgpKTsNCisrDQorIAlsci0+ ZGZzX3JlZ2lvbiA9IGdldF9jZmc4MDIxMV9yZWdkb20oKS0+ZGZzX3JlZ2lvbjsNCisgDQorIAlm b3IgKGJhbmQgPSAwOyBiYW5kIDwgSUVFRTgwMjExX05VTV9CQU5EUzsgYmFuZCsrKQ0KZGlmZiAt LWdpdCBhL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAwMjAtbWFjODAyMTEt cHJpbnQtbWFjLWFkZHItd2hlbi1hdXRoZW50aWNhdGluZy5wYXRjaCBiL3BhY2thZ2Uva2VybmVs L21hYzgwMjExL3BhdGNoZXMvOTk5LTAwMjAtbWFjODAyMTEtcHJpbnQtbWFjLWFkZHItd2hlbi1h dXRoZW50aWNhdGluZy5wYXRjaA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAu LmQ4Y2Y5MzYNCi0tLSAvZGV2L251bGwNCisrKyBiL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3Bh dGNoZXMvOTk5LTAwMjAtbWFjODAyMTEtcHJpbnQtbWFjLWFkZHItd2hlbi1hdXRoZW50aWNhdGlu Zy5wYXRjaA0KQEAgLTAsMCArMSwyOCBAQA0KK0Zyb206IEJlbiBHcmVlYXIgPGdyZWVhcmJAY2Fu ZGVsYXRlY2guY29tPg0KK0RhdGU6IFR1ZSwgNCBOb3YgMjAxNCAxNToyNjo1OCAtMDgwMA0KK1N1 YmplY3Q6IFtQQVRDSF0gbWFjODAyMTE6IHByaW50IG1hYyBhZGRyIHdoZW4gYXV0aGVudGljYXRp bmcuDQorDQorSGVscHMgY29tcGFyZSB3aXRoIGxvZ2dpbmcgaW5mbyBpbiBkcml2ZXJzIHdoZW4g dXNpbmcNCittdWx0aXBsZSB2aWZzLg0KKw0KK1NpZ25lZC1vZmYtYnk6IEJlbiBHcmVlYXIgPGdy ZWVhcmJAY2FuZGVsYXRlY2guY29tPg0KKy0tLQ0KKyBuZXQvbWFjODAyMTEvbWxtZS5jIHwgNSAr KystLQ0KKyAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQ0K Kw0KK2RpZmYgLS1naXQgYS9uZXQvbWFjODAyMTEvbWxtZS5jIGIvbmV0L21hYzgwMjExL21sbWUu Yw0KK2luZGV4IDY4OTA4ZjgxYWY5NS4uMzg0N2Q3NjJlZTAzIDEwMDY0NA0KKy0tLSBhL25ldC9t YWM4MDIxMS9tbG1lLmMNCisrKysgYi9uZXQvbWFjODAyMTEvbWxtZS5jDQorQEAgLTQ1ODYsOCAr NDU4Niw5IEBAIGludCBpZWVlODAyMTFfbWdkX2F1dGgoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZf ZGF0YSAqc2RhdGEsDQorIAl7DQorIAkJc3RydWN0IHRpbWV2YWwgdHY7DQorIAkJZG9fZ2V0dGlt ZW9mZGF5KCZ0dik7DQorLQkJc2RhdGFfaW5mbyhzZGF0YSwgImF1dGhlbnRpY2F0ZSB3aXRoICVw TSBhdDogJWx1LiVsdVxuIiwNCistCQkJICAgcmVxLT5ic3MtPmJzc2lkLCB0di50dl9zZWMsIHR2 LnR2X3VzZWMpOw0KKysJCXNkYXRhX2luZm8oc2RhdGEsICIlcE0gYXV0aGVudGljYXRlIHdpdGgg JXBNIGF0OiAlbHUuJWx1XG4iLA0KKysJCQkgICBzZGF0YS0+ZGV2LT5kZXZfYWRkciwgcmVxLT5i c3MtPmJzc2lkLA0KKysJCQkgICB0di50dl9zZWMsIHR2LnR2X3VzZWMpOw0KKyAJfQ0KKyANCisg CWVyciA9IGllZWU4MDIxMV9wcmVwX2Nvbm5lY3Rpb24oc2RhdGEsIHJlcS0+YnNzLCBmYWxzZSwg ZmFsc2UpOw0KZGlmZiAtLWdpdCBhL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5 LTAwMjEtbWFjODAyMTEtcHJpbnQta2VybmVsLWxvZ3MtZm9yLWlic3Mtam9pbi1mYWlsdXJlcy5w YXRjaCBiL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAwMjEtbWFjODAyMTEt cHJpbnQta2VybmVsLWxvZ3MtZm9yLWlic3Mtam9pbi1mYWlsdXJlcy5wYXRjaA0KbmV3IGZpbGUg bW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAuLjZjMGJkYzkNCi0tLSAvZGV2L251bGwNCisrKyBi L3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAwMjEtbWFjODAyMTEtcHJpbnQt a2VybmVsLWxvZ3MtZm9yLWlic3Mtam9pbi1mYWlsdXJlcy5wYXRjaA0KQEAgLTAsMCArMSw0NiBA QA0KK0Zyb206IEJlbiBHcmVlYXIgPGdyZWVhcmJAY2FuZGVsYXRlY2guY29tPg0KK0RhdGU6IEZy aSwgMjEgTm92IDIwMTQgMTM6NTk6NDUgLTA1MDANCitTdWJqZWN0OiBbUEFUQ0hdIG1hYzgwMjEx OiBwcmludCBrZXJuZWwgbG9ncyBmb3IgaWJzcyBqb2luIGZhaWx1cmVzLg0KKw0KK0hlbHBzIHVz ZXIga25vdyB3aGF0IGlzIHdyb25nIHdpdGggY29uZmlnIGFuZC9vciBkcml2ZXIuDQorDQorU2ln bmVkLW9mZi1ieTogQmVuIEdyZWVhciA8Z3JlZWFyYkBjYW5kZWxhdGVjaC5jb20+DQorLS0tDQor IG5ldC9tYWM4MDIxMS9pYnNzLmMgfCAxMiArKysrKysrKystLS0NCisgMSBmaWxlIGNoYW5nZWQs IDkgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkNCisNCitkaWZmIC0tZ2l0IGEvbmV0L21h YzgwMjExL2lic3MuYyBiL25ldC9tYWM4MDIxMS9pYnNzLmMNCitpbmRleCA3ZjcyYmM5YmFlMmUu Ljg3NzMxMjBmMGY0MyAxMDA2NDQNCistLS0gYS9uZXQvbWFjODAyMTEvaWJzcy5jDQorKysrIGIv bmV0L21hYzgwMjExL2lic3MuYw0KK0BAIC0xNzUwLDEyICsxNzUwLDE2IEBAIGludCBpZWVlODAy MTFfaWJzc19qb2luKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLA0KKyAJcmV0 ID0gY2ZnODAyMTFfY2hhbmRlZl9kZnNfcmVxdWlyZWQobG9jYWwtPmh3LndpcGh5LA0KKyAJCQkJ CSAgICAmcGFyYW1zLT5jaGFuZGVmLA0KKyAJCQkJCSAgICBzZGF0YS0+d2Rldi5pZnR5cGUpOw0K Ky0JaWYgKHJldCA8IDApDQorKwlpZiAocmV0IDwgMCkgew0KKysJCXNkYXRhX2luZm8oc2RhdGEs ICJpYnNzLWpvaW46IGNoYW5kZWYtZGZzLXJlcXVpcmVkIGZhaWxlZC5cbiIpOw0KKyAJCXJldHVy biByZXQ7DQorKwl9DQorIA0KKyAJaWYgKHJldCA+IDApIHsNCistCQlpZiAoIXBhcmFtcy0+dXNl cnNwYWNlX2hhbmRsZXNfZGZzKQ0KKysJCWlmICghcGFyYW1zLT51c2Vyc3BhY2VfaGFuZGxlc19k ZnMpIHsNCisrCQkJc2RhdGFfaW5mbyhzZGF0YSwgImlic3Mtam9pbjogTm8gdXNlcnNwYWNlLWhh bmRsZXMtZGZzIHNldC5cbiIpOw0KKyAJCQlyZXR1cm4gLUVJTlZBTDsNCisrCQl9DQorIAkJcmFk YXJfZGV0ZWN0X3dpZHRoID0gQklUKHBhcmFtcy0+Y2hhbmRlZi53aWR0aCk7DQorIAl9DQorIA0K K0BAIC0xNzY2LDggKzE3NzAsMTAgQEAgaW50IGllZWU4MDIxMV9pYnNzX2pvaW4oc3RydWN0IGll ZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsDQorIAlyZXQgPSBpZWVlODAyMTFfY2hlY2tfY29t YmluYXRpb25zKHNkYXRhLCAmcGFyYW1zLT5jaGFuZGVmLCBjaGFubW9kZSwNCisgCQkJCQkgICBy YWRhcl9kZXRlY3Rfd2lkdGgpOw0KKyAJbXV0ZXhfdW5sb2NrKCZsb2NhbC0+Y2hhbmN0eF9tdHgp Ow0KKy0JaWYgKHJldCA8IDApDQorKwlpZiAocmV0IDwgMCkgew0KKysJCXNkYXRhX2luZm8oc2Rh dGEsICJpYnNzLWpvaW46ICBGYWlsZWQgaWZhY2UgY29tYmluYXRpb24gY2hlY2suXG4iKTsNCisg CQlyZXR1cm4gcmV0Ow0KKysJfQ0KKyANCisgCWlmIChwYXJhbXMtPmJzc2lkKSB7DQorIAkJbWVt Y3B5KHNkYXRhLT51Lmlic3MuYnNzaWQsIHBhcmFtcy0+YnNzaWQsIEVUSF9BTEVOKTsNCmRpZmYg LS1naXQgYS9wYWNrYWdlL2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDIyLWNmZzgwMjEx LXByaW50LXJlYXNvbnMtZm9yLWlic3Mtam9pbi1mYWlsdXJlcy10by1rZXIucGF0Y2ggYi9wYWNr YWdlL2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDIyLWNmZzgwMjExLXByaW50LXJlYXNv bnMtZm9yLWlic3Mtam9pbi1mYWlsdXJlcy10by1rZXIucGF0Y2gNCm5ldyBmaWxlIG1vZGUgMTAw NjQ0DQppbmRleCAwMDAwMDAwLi4yNGZkOTM4DQotLS0gL2Rldi9udWxsDQorKysgYi9wYWNrYWdl L2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDIyLWNmZzgwMjExLXByaW50LXJlYXNvbnMt Zm9yLWlic3Mtam9pbi1mYWlsdXJlcy10by1rZXIucGF0Y2gNCkBAIC0wLDAgKzEsMjI3IEBADQor RnJvbTogQmVuIEdyZWVhciA8Z3JlZWFyYkBjYW5kZWxhdGVjaC5jb20+DQorRGF0ZTogRnJpLCAy MSBOb3YgMjAxNCAxNDowMDoyOSAtMDUwMA0KK1N1YmplY3Q6IFtQQVRDSF0gY2ZnODAyMTE6IHBy aW50IHJlYXNvbnMgZm9yIGlic3Mgam9pbiBmYWlsdXJlcyB0byBrZXJuZWwgbG9ncy4NCisNCitI ZWxwcyB1c2VycyBrbm93IHdoYXQgaXMgd3Jvbmcgd2l0aCB0aGVpciBzdXBwbGljYW50IGNvbmZp Zw0KK2FuZCBwZXJoYXBzIHdoeSBkcml2ZXIgZmFpbHMgdG8gcHJvcGVybHkgZG8gYW4gaWJzcyBq b2luLg0KKw0KK1NpZ25lZC1vZmYtYnk6IEJlbiBHcmVlYXIgPGdyZWVhcmJAY2FuZGVsYXRlY2gu Y29tPg0KKy0tLQ0KKyBuZXQvd2lyZWxlc3Mvbmw4MDIxMS5jIHwgODEgKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0NCisgMSBmaWxlIGNoYW5nZWQsIDYz IGluc2VydGlvbnMoKyksIDE4IGRlbGV0aW9ucygtKQ0KKw0KK2RpZmYgLS1naXQgYS9uZXQvd2ly ZWxlc3Mvbmw4MDIxMS5jIGIvbmV0L3dpcmVsZXNzL25sODAyMTEuYw0KK2luZGV4IDRjMThjNGYw Yzk1NC4uYTQ1ZTE3ZTRjMjdkIDEwMDY0NA0KKy0tLSBhL25ldC93aXJlbGVzcy9ubDgwMjExLmMN CisrKysgYi9uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jDQorQEAgLTE5MjEsOCArMTkyMSwxMCBAQCBz dGF0aWMgaW50IG5sODAyMTFfcGFyc2VfY2hhbmRlZihzdHJ1Y3QgY2ZnODAyMTFfcmVnaXN0ZXJl ZF9kZXZpY2UgKnJkZXYsDQorIHsNCisgCXUzMiBjb250cm9sX2ZyZXE7DQorIA0KKy0JaWYgKCFp bmZvLT5hdHRyc1tOTDgwMjExX0FUVFJfV0lQSFlfRlJFUV0pDQorKwlpZiAoIWluZm8tPmF0dHJz W05MODAyMTFfQVRUUl9XSVBIWV9GUkVRXSkgew0KKysJCXByX2VycigicGFyc2UtY2hhbmRlZjog IG5vIEZSRVEgZGVmaW5lZC5cbiIpOw0KKyAJCXJldHVybiAtRUlOVkFMOw0KKysJfQ0KKyANCisg CWNvbnRyb2xfZnJlcSA9IG5sYV9nZXRfdTMyKGluZm8tPmF0dHJzW05MODAyMTFfQVRUUl9XSVBI WV9GUkVRXSk7DQorIA0KK0BAIC0xOTMyLDggKzE5MzQsMTEgQEAgc3RhdGljIGludCBubDgwMjEx X3BhcnNlX2NoYW5kZWYoc3RydWN0IGNmZzgwMjExX3JlZ2lzdGVyZWRfZGV2aWNlICpyZGV2LA0K KyAJY2hhbmRlZi0+Y2VudGVyX2ZyZXEyID0gMDsNCisgDQorIAkvKiBQcmltYXJ5IGNoYW5uZWwg bm90IGFsbG93ZWQgKi8NCistCWlmICghY2hhbmRlZi0+Y2hhbiB8fCBjaGFuZGVmLT5jaGFuLT5m bGFncyAmIElFRUU4MDIxMV9DSEFOX0RJU0FCTEVEKQ0KKysJaWYgKCFjaGFuZGVmLT5jaGFuIHx8 IGNoYW5kZWYtPmNoYW4tPmZsYWdzICYgSUVFRTgwMjExX0NIQU5fRElTQUJMRUQpIHsNCisrCQlw cl9lcnIoInBhcnNlLWNoYW5kZWY6IFByaW1hcnkgY2hhbm5lbCBub3QgYWxsb3dlZDogY2hhbjog JXAgIGZyZXE6ICVkXG4iLA0KKysJCSAgICAgICBjaGFuZGVmLT5jaGFuLCBjb250cm9sX2ZyZXEp Ow0KKyAJCXJldHVybiAtRUlOVkFMOw0KKysJfQ0KKyANCisgCWlmIChpbmZvLT5hdHRyc1tOTDgw MjExX0FUVFJfV0lQSFlfQ0hBTk5FTF9UWVBFXSkgew0KKyAJCWVudW0gbmw4MDIxMV9jaGFubmVs X3R5cGUgY2hhbnR5cGU7DQorQEAgLTE5NTAsNiArMTk1NSw4IEBAIHN0YXRpYyBpbnQgbmw4MDIx MV9wYXJzZV9jaGFuZGVmKHN0cnVjdCBjZmc4MDIxMV9yZWdpc3RlcmVkX2RldmljZSAqcmRldiwN CisgCQkJCQkJY2hhbnR5cGUpOw0KKyAJCQlicmVhazsNCisgCQlkZWZhdWx0Og0KKysJCQlwcl9l cnIoInBhcnNlLWNoYW5kZWYsIGludmFsaWQgY2hhbnR5cGU6ICVkXG4iLA0KKysJCQkgICAgICAg Y2hhbnR5cGUpOw0KKyAJCQlyZXR1cm4gLUVJTlZBTDsNCisgCQl9DQorIAl9IGVsc2UgaWYgKGlu Zm8tPmF0dHJzW05MODAyMTFfQVRUUl9DSEFOTkVMX1dJRFRIXSkgew0KK0BAIC0xOTY1LDE3ICsx OTcyLDIzIEBAIHN0YXRpYyBpbnQgbmw4MDIxMV9wYXJzZV9jaGFuZGVmKHN0cnVjdCBjZmc4MDIx MV9yZWdpc3RlcmVkX2RldmljZSAqcmRldiwNCisgCQkJCQlpbmZvLT5hdHRyc1tOTDgwMjExX0FU VFJfQ0VOVEVSX0ZSRVEyXSk7DQorIAl9DQorIA0KKy0JaWYgKCFjZmc4MDIxMV9jaGFuZGVmX3Zh bGlkKGNoYW5kZWYpKQ0KKysJaWYgKCFjZmc4MDIxMV9jaGFuZGVmX3ZhbGlkKGNoYW5kZWYpKSB7 DQorKwkJcHJfZXJyKCJwYXJzZS1jaGFuZGVmOiAgY2hhbmRlZiBpcyBub3QgdmFsaWRcbiIpOw0K KyAJCXJldHVybiAtRUlOVkFMOw0KKysJfQ0KKyANCisgCWlmICghY2ZnODAyMTFfY2hhbmRlZl91 c2FibGUoJnJkZXYtPndpcGh5LCBjaGFuZGVmLA0KKy0JCQkJICAgICBJRUVFODAyMTFfQ0hBTl9E SVNBQkxFRCkpDQorKwkJCQkgICAgIElFRUU4MDIxMV9DSEFOX0RJU0FCTEVEKSkgew0KKysJCXBy X2VycigicGFyc2UtY2hhbmRlZjogY2hhbmRlZiBpcyBub3QgdXNhYmxlLlxuIik7DQorIAkJcmV0 dXJuIC1FSU5WQUw7DQorKwl9DQorIA0KKyAJaWYgKChjaGFuZGVmLT53aWR0aCA9PSBOTDgwMjEx X0NIQU5fV0lEVEhfNSB8fA0KKyAJICAgICBjaGFuZGVmLT53aWR0aCA9PSBOTDgwMjExX0NIQU5f V0lEVEhfMTApICYmDQorLQkgICAgIShyZGV2LT53aXBoeS5mbGFncyAmIFdJUEhZX0ZMQUdfU1VQ UE9SVFNfNV8xMF9NSFopKQ0KKysJICAgICEocmRldi0+d2lwaHkuZmxhZ3MgJiBXSVBIWV9GTEFH X1NVUFBPUlRTXzVfMTBfTUhaKSkgew0KKysJCXByX2VycigicGFyc2UtY2hhbmRlZjogIDUvMTAg TWh6IGlzIG5vdCBzdXBwb3J0ZWQuXG4iKTsNCisgCQlyZXR1cm4gLUVJTlZBTDsNCisrCX0NCisg DQorIAlyZXR1cm4gMDsNCisgfQ0KK0BAIC03MjcxLDM1ICs3Mjg0LDQ5IEBAIHN0YXRpYyBpbnQg bmw4MDIxMV9qb2luX2lic3Moc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAq aW5mbykNCisgDQorIAltZW1zZXQoJmlic3MsIDAsIHNpemVvZihpYnNzKSk7DQorIA0KKy0JaWYg KCFpc192YWxpZF9pZV9hdHRyKGluZm8tPmF0dHJzW05MODAyMTFfQVRUUl9JRV0pKQ0KKysJaWYg KCFpc192YWxpZF9pZV9hdHRyKGluZm8tPmF0dHJzW05MODAyMTFfQVRUUl9JRV0pKSB7DQorKwkJ cHJfZXJyKCJqb2luLWlic3M6ICBBVFRSX0lFIGlzIG5vdCB2YWxpZC5cbiIpOw0KKyAJCXJldHVy biAtRUlOVkFMOw0KKysJfQ0KKyANCisgCWlmICghaW5mby0+YXR0cnNbTkw4MDIxMV9BVFRSX1NT SURdIHx8DQorLQkgICAgIW5sYV9sZW4oaW5mby0+YXR0cnNbTkw4MDIxMV9BVFRSX1NTSURdKSkN CisrCSAgICAhbmxhX2xlbihpbmZvLT5hdHRyc1tOTDgwMjExX0FUVFJfU1NJRF0pKSB7DQorKwkJ cHJfZXJyKCJqb2luLWlic3M6IEFUVFJfU1NJRCBpcyBub3QgdmFsaWQuXG4iKTsNCisgCQlyZXR1 cm4gLUVJTlZBTDsNCisrCX0NCisgDQorIAlpYnNzLmJlYWNvbl9pbnRlcnZhbCA9IDEwMDsNCisg DQorIAlpZiAoaW5mby0+YXR0cnNbTkw4MDIxMV9BVFRSX0JFQUNPTl9JTlRFUlZBTF0pIHsNCisg CQlpYnNzLmJlYWNvbl9pbnRlcnZhbCA9DQorIAkJCW5sYV9nZXRfdTMyKGluZm8tPmF0dHJzW05M ODAyMTFfQVRUUl9CRUFDT05fSU5URVJWQUxdKTsNCistCQlpZiAoaWJzcy5iZWFjb25faW50ZXJ2 YWwgPCAxIHx8IGlic3MuYmVhY29uX2ludGVydmFsID4gMTAwMDApDQorKwkJaWYgKGlic3MuYmVh Y29uX2ludGVydmFsIDwgMSB8fCBpYnNzLmJlYWNvbl9pbnRlcnZhbCA+IDEwMDAwKSB7DQorKwkJ CXByX2Vycigiam9pbi1pYnNzOiBCZWFjb24gaW50ZXJ2YWwgaXMgYmFkOiAlZFxuIiwNCisrCQkJ ICAgICAgIGlic3MuYmVhY29uX2ludGVydmFsKTsNCisgCQkJcmV0dXJuIC1FSU5WQUw7DQorKwkJ fQ0KKyAJfQ0KKyANCistCWlmICghcmRldi0+b3BzLT5qb2luX2lic3MpDQorKwlpZiAoIXJkZXYt Pm9wcy0+am9pbl9pYnNzKSB7DQorKwkJcHJfZXJyKCJqb2luLWlic3M6ICBubyBqb2luX2lic3Mg b3BzIGluIGRyaXZlci5cbiIpOw0KKyAJCXJldHVybiAtRU9QTk9UU1VQUDsNCisrCX0NCisgDQor LQlpZiAoZGV2LT5pZWVlODAyMTFfcHRyLT5pZnR5cGUgIT0gTkw4MDIxMV9JRlRZUEVfQURIT0Mp DQorKwlpZiAoZGV2LT5pZWVlODAyMTFfcHRyLT5pZnR5cGUgIT0gTkw4MDIxMV9JRlRZUEVfQURI T0MpIHsNCisrCQlwcl9lcnIoImpvaW4taWJzczogaWZ0eXBlIGlzIGludmFsaWQuXG4iKTsNCisg CQlyZXR1cm4gLUVPUE5PVFNVUFA7DQorKwl9DQorIA0KKyAJd2lwaHkgPSAmcmRldi0+d2lwaHk7 DQorIA0KKyAJaWYgKGluZm8tPmF0dHJzW05MODAyMTFfQVRUUl9NQUNdKSB7DQorIAkJaWJzcy5i c3NpZCA9IG5sYV9kYXRhKGluZm8tPmF0dHJzW05MODAyMTFfQVRUUl9NQUNdKTsNCisgDQorLQkJ aWYgKCFpc192YWxpZF9ldGhlcl9hZGRyKGlic3MuYnNzaWQpKQ0KKysJCWlmICghaXNfdmFsaWRf ZXRoZXJfYWRkcihpYnNzLmJzc2lkKSkgew0KKysJCQlwcl9lcnIoImpvaW4taWJzczogaWJzcyBi c3NpZCBpcyBpbnZhbGlkOiAlcE1cbiIsDQorKwkJCSAgICAgICBpYnNzLmJzc2lkKTsNCisgCQkJ cmV0dXJuIC1FSU5WQUw7DQorKwkJfQ0KKyAJfQ0KKyAJaWJzcy5zc2lkID0gbmxhX2RhdGEoaW5m by0+YXR0cnNbTkw4MDIxMV9BVFRSX1NTSURdKTsNCisgCWlic3Muc3NpZF9sZW4gPSBubGFfbGVu KGluZm8tPmF0dHJzW05MODAyMTFfQVRUUl9TU0lEXSk7DQorQEAgLTczMTAsMTIgKzczMzcsMTYg QEAgc3RhdGljIGludCBubDgwMjExX2pvaW5faWJzcyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1 Y3QgZ2VubF9pbmZvICppbmZvKQ0KKyAJfQ0KKyANCisgCWVyciA9IG5sODAyMTFfcGFyc2VfY2hh bmRlZihyZGV2LCBpbmZvLCAmaWJzcy5jaGFuZGVmKTsNCistCWlmIChlcnIpDQorKwlpZiAoZXJy KSB7DQorKwkJcHJfZXJyKCJqb2luLWlic3M6ICBwYXJzZS1jaGFuZGVmIGZhaWxzLlxuIik7DQor IAkJcmV0dXJuIGVycjsNCisrCX0NCisgDQorIAlpZiAoIWNmZzgwMjExX3JlZ19jYW5fYmVhY29u KCZyZGV2LT53aXBoeSwgJmlic3MuY2hhbmRlZiwNCistCQkJCSAgICAgTkw4MDIxMV9JRlRZUEVf QURIT0MpKQ0KKysJCQkJICAgICBOTDgwMjExX0lGVFlQRV9BREhPQykpIHsNCisrCQlwcl9lcnIo ImpvaW4taWJzczogYWRob2MgY2Fubm90IGJlYWNvbi5cbiIpOw0KKyAJCXJldHVybiAtRUlOVkFM Ow0KKysJfQ0KKyANCisgCXN3aXRjaCAoaWJzcy5jaGFuZGVmLndpZHRoKSB7DQorIAljYXNlIE5M ODAyMTFfQ0hBTl9XSURUSF81Og0KK0BAIC03MzM3LDYgKzczNjgsOCBAQCBzdGF0aWMgaW50IG5s ODAyMTFfam9pbl9pYnNzKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmlu Zm8pDQorIAkJCXJldHVybiAtRUlOVkFMOw0KKyAJCWJyZWFrOw0KKyAJZGVmYXVsdDoNCisrCQlw cl9lcnIoImpvaW4taWJzczogIEludmFsaWQgY2hhbmRlZiB3aWR0aDogJWQgKGZlYXR1cmVzOiAw eCV4KVxuIiwNCisrCQkgICAgICAgaWJzcy5jaGFuZGVmLndpZHRoLCByZGV2LT53aXBoeS5mZWF0 dXJlcyk7DQorIAkJcmV0dXJuIC1FSU5WQUw7DQorIAl9DQorIA0KK0BAIC03MzUzLDggKzczODYs MTAgQEAgc3RhdGljIGludCBubDgwMjExX2pvaW5faWJzcyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBz dHJ1Y3QgZ2VubF9pbmZvICppbmZvKQ0KKyANCisgCQllcnIgPSBpZWVlODAyMTFfZ2V0X3JhdGVt YXNrKHNiYW5kLCByYXRlcywgbl9yYXRlcywNCisgCQkJCQkgICAgICZpYnNzLmJhc2ljX3JhdGVz KTsNCistCQlpZiAoZXJyKQ0KKysJCWlmIChlcnIpIHsNCisrCQkJcHJfZXJyKCJqb2luLWlic3M6 IGdldC1yYXRlbWFzayBmYWlsZWQuXG4iKTsNCisgCQkJcmV0dXJuIGVycjsNCisrCQl9DQorIAl9 DQorIA0KKyAJaWYgKGluZm8tPmF0dHJzW05MODAyMTFfQVRUUl9IVF9DQVBBQklMSVRZX01BU0td KQ0KK0BAIC03MzYzLDggKzczOTgsMTAgQEAgc3RhdGljIGludCBubDgwMjExX2pvaW5faWJzcyhz dHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKQ0KKyAJCSAgICAgICBz aXplb2YoaWJzcy5odF9jYXBhX21hc2spKTsNCisgDQorIAlpZiAoaW5mby0+YXR0cnNbTkw4MDIx MV9BVFRSX0hUX0NBUEFCSUxJVFldKSB7DQorLQkJaWYgKCFpbmZvLT5hdHRyc1tOTDgwMjExX0FU VFJfSFRfQ0FQQUJJTElUWV9NQVNLXSkNCisrCQlpZiAoIWluZm8tPmF0dHJzW05MODAyMTFfQVRU Ul9IVF9DQVBBQklMSVRZX01BU0tdKSB7DQorKwkJCXByX2Vycigiam9pbi1pYnNzOiBubyBIVCBj YXBhYmlsaXR5IG1hc2suXG4iKTsNCisgCQkJcmV0dXJuIC1FSU5WQUw7DQorKwkJfQ0KKyAJCW1l bWNweSgmaWJzcy5odF9jYXBhLA0KKyAJCSAgICAgICBubGFfZGF0YShpbmZvLT5hdHRyc1tOTDgw MjExX0FUVFJfSFRfQ0FQQUJJTElUWV0pLA0KKyAJCSAgICAgICBzaXplb2YoaWJzcy5odF9jYXBh KSk7DQorQEAgLTczNzIsOCArNzQwOSwxMCBAQCBzdGF0aWMgaW50IG5sODAyMTFfam9pbl9pYnNz KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pDQorIA0KKyAJaWYg KGluZm8tPmF0dHJzW05MODAyMTFfQVRUUl9NQ0FTVF9SQVRFXSAmJg0KKyAJICAgICFubDgwMjEx X3BhcnNlX21jYXN0X3JhdGUocmRldiwgaWJzcy5tY2FzdF9yYXRlLA0KKy0JCQlubGFfZ2V0X3Uz MihpbmZvLT5hdHRyc1tOTDgwMjExX0FUVFJfTUNBU1RfUkFURV0pKSkNCisrCQkJbmxhX2dldF91 MzIoaW5mby0+YXR0cnNbTkw4MDIxMV9BVFRSX01DQVNUX1JBVEVdKSkpIHsNCisrCQlwcl9lcnIo ImpvaW4taWJzczogZmFpbHVyZSB0byBwYXJzZSBtY2FzdCByYXRlLlxuIik7DQorIAkJcmV0dXJu IC1FSU5WQUw7DQorKwl9DQorIA0KKyAJaWYgKGlic3MucHJpdmFjeSAmJiBpbmZvLT5hdHRyc1tO TDgwMjExX0FUVFJfS0VZU10pIHsNCisgCQlib29sIG5vX2h0ID0gZmFsc2U7DQorQEAgLTczODEs MTIgKzc0MjAsMTYgQEAgc3RhdGljIGludCBubDgwMjExX2pvaW5faWJzcyhzdHJ1Y3Qgc2tfYnVm ZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKQ0KKyAJCWNvbm5rZXlzID0gbmw4MDIxMV9w YXJzZV9jb25ua2V5cyhyZGV2LA0KKyAJCQkJCSAgaW5mby0+YXR0cnNbTkw4MDIxMV9BVFRSX0tF WVNdLA0KKyAJCQkJCSAgJm5vX2h0KTsNCistCQlpZiAoSVNfRVJSKGNvbm5rZXlzKSkNCisrCQlp ZiAoSVNfRVJSKGNvbm5rZXlzKSkgew0KKysJCQlwcl9lcnIoImpvaW4taWJzczogIGNvbm5rZXlz IGlzIGJhZC5cbiIpOw0KKyAJCQlyZXR1cm4gUFRSX0VSUihjb25ua2V5cyk7DQorKwkJfQ0KKyAN CisgCQlpZiAoKGlic3MuY2hhbmRlZi53aWR0aCAhPSBOTDgwMjExX0NIQU5fV0lEVEhfMjBfTk9I VCkgJiYNCisgCQkgICAgbm9faHQpIHsNCisgCQkJa2ZyZWUoY29ubmtleXMpOw0KKysJCQlwcl9l cnIoImpvaW4taWJzczogY2hhbmRlZiBkb2VzIG5vdCBtYXRjaCBIVDogJWQgbm8taHQ6ICVkXG4i LA0KKysJCQkgICAgICAgaWJzcy5jaGFuZGVmLndpZHRoLCAoaW50KShub19odCkpOw0KKyAJCQly ZXR1cm4gLUVJTlZBTDsNCisgCQl9DQorIAl9DQorQEAgLTczOTgsOCArNzQ0MSwxMCBAQCBzdGF0 aWMgaW50IG5sODAyMTFfam9pbl9pYnNzKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5s X2luZm8gKmluZm8pDQorIAkJbmxhX2dldF9mbGFnKGluZm8tPmF0dHJzW05MODAyMTFfQVRUUl9I QU5ETEVfREZTXSk7DQorIA0KKyAJZXJyID0gY2ZnODAyMTFfam9pbl9pYnNzKHJkZXYsIGRldiwg Jmlic3MsIGNvbm5rZXlzKTsNCistCWlmIChlcnIpDQorKwlpZiAoZXJyKSB7DQorKwkJcHJfZXJy KCJqb2luLWlic3M6IGNmZy1qb2luLWlic3MgZmFpbGVkLlxuIik7DQorIAkJa3pmcmVlKGNvbm5r ZXlzKTsNCisrCX0NCisgCXJldHVybiBlcnI7DQorIH0NCisgDQpkaWZmIC0tZ2l0IGEvcGFja2Fn ZS9rZXJuZWwvbWFjODAyMTEvcGF0Y2hlcy85OTktMDAyNC1hdGg5ay1EZXRlY3QtYW5kLXdvcmst YXJvdW5kLXR4LXF1ZXVlLWhhbmcucGF0Y2ggYi9wYWNrYWdlL2tlcm5lbC9tYWM4MDIxMS9wYXRj aGVzLzk5OS0wMDI0LWF0aDlrLURldGVjdC1hbmQtd29yay1hcm91bmQtdHgtcXVldWUtaGFuZy5w YXRjaA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAuLmZkZGM4NjUNCi0tLSAv ZGV2L251bGwNCisrKyBiL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAwMjQt YXRoOWstRGV0ZWN0LWFuZC13b3JrLWFyb3VuZC10eC1xdWV1ZS1oYW5nLnBhdGNoDQpAQCAtMCww ICsxLDE3NCBAQA0KK0Zyb206IEJlbiBHcmVlYXIgPGdyZWVhcmJAY2FuZGVsYXRlY2guY29tPg0K K0RhdGU6IE1vbiwgMTEgQXVnIDIwMTQgMTM6MzY6MjMgLTA3MDANCitTdWJqZWN0OiBbUEFUQ0hd IGF0aDlrOiBEZXRlY3QgYW5kIHdvcmstYXJvdW5kIHR4LXF1ZXVlIGhhbmcuDQorDQorV2Ugc2Vl IFRYIGxvY2t1cHMgb24gYXI5MzgwIE5JQ3Mgd2hlbiBydW5uaW5nIDMyIHN0YXRpb25zDQorZWFj aCB3aXRoIGEgNTZrYnBzIHN0cmVhbSBvZiBNVFUgc2l6ZWQgVURQIHBhY2tldHMuDQorV2Ugc2Vl IGxvY2t1cHMgb24gdGhlIEFQIGFuZCBhbHNvIG9uIHRoZSBzdGF0aW9uLCBzZWVtcw0KK3JhbmRv bSB3aGljaCBoaXRzIGZpcnN0Lg0KKw0KK1RoZSB0ZXN0IGNhc2UgZnVydGhlciBpbnZvbHZlcyBh IHByb2dyYW1tYWJsZSBhdHRlbnVhdG9yLA0KK2FuZCB0aGUgYXR0ZW51YXRpb24gaXMgdGFrZW4g ZnJvbSAtMzAgdG8gLTg1IHNpZ25hbCBsZXZlbA0KK2luIHN0ZXBzIG9mIDEwZGIuICBFYWNoIHN0 ZXAgcnVucyBmb3IgMSBtaW51dGUgYmVmb3JlDQoraW5jcmVhc2luZyB0aGUgYXR0ZW51YXRpb24u ICBUaGUgcHJvYmxlbSBub3JtYWxseQ0KK3Nob3dzIHVwIGFyb3VuZCBzaWduYWwgbGV2ZWwgb2Yg LTcwIChub2lzZSBpcyByZXBvcnRlZA0KK2FzIGFyb3VuZCAtOTUpLg0KKw0KK1doZW4gdGhlIGxv Y2t1cCBoaXRzLCBpdCBpcyB0eXBpY2FsbHkgb24gYSBzaW5nbGUgcXVldWUNCisoQkUpLiAgVGhl IHN5bXB0b20gaXMgdGhhdCB0aGVyZSBpcyBubyBvYnZpb3VzIHRyYW5zbWl0DQorYWN0aXZpdHkg b24gdGhhdCBxdWV1ZSwgdGhlIGFjcS1kZXB0aCBhbmQgYXhxLWFtcGR1LWRlcHRoDQorYXJlIHpl cm8sIHRoZSBxdWV1ZSBpcyBzdG9wcGVkLCBhbmQgdGhlIHBlbmRpbmctZnJhbWVzIGlzDQorYXQg b3IgYWJvdmUgdGhlIG1heGltdW0gYWxsb3dlZC4gIFRoZSBWTyBxdWV1ZSBjb250aW51ZXMNCit0 byBmdW5jdGlvbiwgYW5kIFJYIGxvZ2ljIGZ1bmN0aW9ucyBmaW5lLg0KKw0KK0p1c3QgcmVzZXR0 aW5nIHRoZSBjaGlwIGRvZXMgbm90IGZpeCB0aGUgcHJvYmxlbTogIFRoZQ0KK3BlbmRpbmctZnJh bWVzIHVzdWFsbHkgc3RheXMgYXQgbWF4LiAgU28sIHRoaXMgcGF0Y2ggYWxzbw0KK2FkZHMgaGFj a3MgdG8gZm9yY2UgcGVuZGluZy1mcmFtZXMgdG8gemVyby4gIEl0IGFsc28NCitxdWlldGVucyBz b21lIHdhcm5pbmdzIGFib3V0IHBlbmRpbmctZnJhbWUgdW5kZXJydW5zDQorYmVjYXVzZSBzb21l dGltZXMsIHRoZSB0eCBzdGF0dXMgZG9lcyBhcHBlYXIgbWFueSBzZWNvbmRzDQorbGF0ZXIuDQor DQorRmluYWxseSwgdGhlIHJlc2V0IGZpeHVwIGNvZGUgaXMgbG9nZ2VkIGF0IGF0aF9lcnIgYmVj YXVzZQ0KK0kgdGhpbmsgZXZlcnlvbmUgc2hvdWxkIGJlIGF3YXJlIG9mIGV2ZW50cyBsaWtlIHRo aXMuDQorDQorV2Ugc2VlIHRoZSBzYW1lIHByb2JsZW0gd2l0aCBhdGg5ayByYXRlIGNvbnRyb2wg YW5kDQorbWluc3RyZWwtaHQuICBXZSBoYXZlIG5vdCB0ZXN0ZWQgb3RoZXIgYXRoOWsgY2hpcHNl dHMNCitpbiB0aGlzIG1hbm5lci4NCisNCitTbWFsbCBudW1iZXJzIG9mIGhpZ2gtc3BlZWQgc3Rh dGlvbnMgZG8gbm90IGhpdCB0aGlzDQorcHJvYmxlbSwgb3IgYXQgbGVhc3Qgbm90IGluIG91ciB0 ZXN0IGNhc2VzLg0KKw0KK1NpZ25lZC1vZmYtYnk6IEJlbiBHcmVlYXIgPGdyZWVhcmJAY2FuZGVs YXRlY2guY29tPg0KKy0tLQ0KKyBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXRoOWsu aCB8ICAzICsrLQ0KKyBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvbGluay5jICB8IDMz ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLQ0KKyBkcml2ZXJzL25ldC93aXJlbGVz cy9hdGgvYXRoOWsveG1pdC5jICB8IDIzICsrKysrKysrKysrKysrKysrKy0tLS0tDQorIDMgZmls ZXMgY2hhbmdlZCwgNDkgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pDQorDQorZGlmZiAt LWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hdGg5ay5oIGIvZHJpdmVycy9u ZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2F0aDlrLmgNCitpbmRleCBhN2E4MWIzOTY5Y2UuLjJmZTFm M2Q3ZGNjMSAxMDA2NDQNCistLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXRo OWsuaA0KKysrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hdGg5ay5oDQorQEAg LTE2Myw4ICsxNjMsOSBAQCBzdHJ1Y3QgYXRoX3R4cSB7DQorIAlzcGlubG9ja190IGF4cV9sb2Nr Ow0KKyAJdTMyIGF4cV9kZXB0aDsNCisgCXUzMiBheHFfYW1wZHVfZGVwdGg7DQorKwl1OCBheHFf dHhfaW5wcm9ncmVzczsNCisgCWJvb2wgc3RvcHBlZDsNCistCWJvb2wgYXhxX3R4X2lucHJvZ3Jl c3M7DQorKwlib29sIGNsZWFyX3BlbmRpbmdfZnJhbWVzX29uX2ZsdXNoOw0KKyAJc3RydWN0IGxp c3RfaGVhZCB0eHFfZmlmb1tBVEhfVFhGSUZPX0RFUFRIXTsNCisgCXU4IHR4cV9oZWFkaWR4Ow0K KyAJdTggdHhxX3RhaWxpZHg7DQorZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0 aC9hdGg5ay9saW5rLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvbGluay5jDQor aW5kZXggOTA2MzFkNzY4YTYwLi5iY2ZjNTUxMGM1NmQgMTAwNjQ0DQorLS0tIGEvZHJpdmVycy9u ZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2xpbmsuYw0KKysrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNz L2F0aC9hdGg5ay9saW5rLmMNCitAQCAtNDAsMjAgKzQwLDQ1IEBAIHZvaWQgYXRoX3R4X2NvbXBs ZXRlX3BvbGxfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspDQorIA0KKyAJCWF0aF90eHFf bG9jayhzYywgdHhxKTsNCisgCQlpZiAodHhxLT5heHFfZGVwdGgpIHsNCistCQkJaWYgKHR4cS0+ YXhxX3R4X2lucHJvZ3Jlc3MpIHsNCisrCQkJaWYgKHR4cS0+YXhxX3R4X2lucHJvZ3Jlc3MgPiAx KSB7DQorIAkJCQluZWVkcmVzZXQgPSB0cnVlOw0KKysJCQkJYXRoX2VycihhdGg5a19od19jb21t b24oc2MtPnNjX2FoKSwNCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJ0eCBodW5nLCBxdWV1ZTogJWkgYXhxLWRlcHRoOiAlaSwgYW1wZHUtZGVwdGg6ICVpIHJlc2V0 dGluZyB0aGUgY2hpcFxuIiwNCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGksIHR4cS0+YXhxX2RlcHRoLA0KKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdHhxLT5heHFfYW1wZHVfZGVwdGgpOw0KKyAJCQkJYXRoX3R4cV91bmxvY2soc2Ms IHR4cSk7DQorIAkJCQlicmVhazsNCisgCQkJfSBlbHNlIHsNCistCQkJCXR4cS0+YXhxX3R4X2lu cHJvZ3Jlc3MgPSB0cnVlOw0KKysJCQkJdHhxLT5heHFfdHhfaW5wcm9ncmVzcysrOw0KKysJCQl9 DQorKwkJfSBlbHNlIHsNCisrCQkJLyogQ2hlY2sgZm9yIHNvZnR3YXJlIFRYIGhhbmcuICBJdCBz ZWVtcw0KKysJCQkgKiBzb21ldGltZXMgcGVuZGluZy1mcmFtZXMgaXMgbm90IHByb3Blcmx5DQor KwkJCSAqIGRlY3JlbWVudGVkLCBhbmQgdGhlIHR4IHF1ZXVlIGhhbmdzLg0KKysJCQkgKiBDb25z aWRlcmVkIGh1bmcgaWY6ICBheHEtZGVwdGggaXMgemVybywNCisrCQkJICogIGFtcGR1LWRlcHRo IGlzIHplcm8sIHF1ZXVlLWlzLXN0b3BwZWQsDQorKwkJCSAqICBhbmQgd2UgaGF2ZSBwZW5kaW5n IGZyYW1lcy4NCisrCQkJICovDQorKwkJCWlmICh0eHEtPnN0b3BwZWQgJiYNCisrCQkJICAgICh0 eHEtPmF4cV9hbXBkdV9kZXB0aCA9PSAwKSAmJg0KKysJCQkgICAgKHR4cS0+cGVuZGluZ19mcmFt ZXMgPiAwKSkgew0KKysJCQkJaWYgKHR4cS0+YXhxX3R4X2lucHJvZ3Jlc3MgPiAxKSB7DQorKwkJ CQkJYXRoX2VycihhdGg5a19od19jb21tb24oc2MtPnNjX2FoKSwNCisrCQkJCQkJInNvZnQgdHgg aGFuZzogcXVldWU6ICVpIHBlbmRpbmctZnJhbWVzOiAlaSwgcmVzZXR0aW5nIGNoaXBcbiIsDQor KwkJCQkJCWksIHR4cS0+cGVuZGluZ19mcmFtZXMpOw0KKysJCQkJCW5lZWRyZXNldCA9IHRydWU7 DQorKwkJCQkJdHhxLT5jbGVhcl9wZW5kaW5nX2ZyYW1lc19vbl9mbHVzaCA9IHRydWU7DQorKwkJ CQkJYXRoX3R4cV91bmxvY2soc2MsIHR4cSk7DQorKwkJCQkJYnJlYWs7DQorKwkJCQl9IGVsc2Ug ew0KKysJCQkJCXR4cS0+YXhxX3R4X2lucHJvZ3Jlc3MrKzsNCisrCQkJCX0NCisgCQkJfQ0KKyAJ CX0NCisgCQlhdGhfdHhxX3VubG9jayhzYywgdHhxKTsNCisgCX0NCisgDQorIAlpZiAobmVlZHJl c2V0KSB7DQorLQkJYXRoX2RiZyhhdGg5a19od19jb21tb24oc2MtPnNjX2FoKSwgUkVTRVQsDQor LQkJCSJ0eCBodW5nLCByZXNldHRpbmcgdGhlIGNoaXBcbiIpOw0KKyAJCWF0aDlrX3F1ZXVlX3Jl c2V0KHNjLCBSRVNFVF9UWVBFX1RYX0hBTkcpOw0KKyAJCXJldHVybjsNCisgCX0NCitkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYyBiL2RyaXZlcnMvbmV0 L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMNCitpbmRleCAzYWQ3OWJiNGYyYzIuLjMxMDBjZmE3 NjA4MyAxMDA2NDQNCistLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5j DQorKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYw0KK0BAIC0xNjMs OSArMTYzLDEzIEBAIHN0YXRpYyB2b2lkIGF0aF90eHFfc2tiX2RvbmUoc3RydWN0IGF0aF9zb2Z0 YyAqc2MsIHN0cnVjdCBhdGhfdHhxICp0eHEsDQorIAlpZiAocSA8IDApDQorIAkJcmV0dXJuOw0K KyANCistCXR4cSA9IHNjLT50eC50eHFfbWFwW3FdOw0KKy0JaWYgKFdBUk5fT04oLS10eHEtPnBl bmRpbmdfZnJhbWVzIDwgMCkpDQorKwlpZiAoLS10eHEtPnBlbmRpbmdfZnJhbWVzIDwgMCkgew0K KysJCXN0cnVjdCBhdGhfY29tbW9uICpjb21tb24gPSBhdGg5a19od19jb21tb24oc2MtPnNjX2Fo KTsNCisrCQlpZiAobmV0X3JhdGVsaW1pdCgpKQ0KKysJCQlhdGhfZXJyKGNvbW1vbiwgInR4cTog JXAgaGFkIG5lZ2F0aXZlIHBlbmRpbmdfZnJhbWVzLCBxOiAlaVxuIiwNCisrCQkJCXR4cSwgcSk7 DQorIAkJdHhxLT5wZW5kaW5nX2ZyYW1lcyA9IDA7DQorKwl9DQorIA0KKyAJaWYgKHR4cS0+c3Rv cHBlZCAmJg0KKyAJICAgIHR4cS0+cGVuZGluZ19mcmFtZXMgPCBzYy0+dHgudHhxX21heF9wZW5k aW5nW3FdKSB7DQorQEAgLTY4MCw3ICs2ODQsNyBAQCBzdGF0aWMgdm9pZCBhdGhfdHhfcHJvY2Vz c19idWZmZXIoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfdHhxICp0eHEsDQorIA0K KyAJdHhvayA9ICEodHMtPnRzX3N0YXR1cyAmIEFUSDlLX1RYRVJSX01BU0spOw0KKyAJZmx1c2gg PSAhISh0cy0+dHNfc3RhdHVzICYgQVRIOUtfVFhfRkxVU0gpOw0KKy0JdHhxLT5heHFfdHhfaW5w cm9ncmVzcyA9IGZhbHNlOw0KKysJdHhxLT5heHFfdHhfaW5wcm9ncmVzcyA9IDA7DQorIA0KKyAJ dHhxLT5heHFfZGVwdGgtLTsNCisgCWlmIChiZl9pc19hbXBkdV9ub3RfcHJvYmluZyhiZikpDQor QEAgLTE3NTEsNyArMTc1NSw3IEBAIHN0cnVjdCBhdGhfdHhxICphdGhfdHhxX3NldHVwKHN0cnVj dCBhdGhfc29mdGMgKnNjLCBpbnQgcXR5cGUsIGludCBzdWJ0eXBlKQ0KKyAJCXNwaW5fbG9ja19p bml0KCZ0eHEtPmF4cV9sb2NrKTsNCisgCQl0eHEtPmF4cV9kZXB0aCA9IDA7DQorIAkJdHhxLT5h eHFfYW1wZHVfZGVwdGggPSAwOw0KKy0JCXR4cS0+YXhxX3R4X2lucHJvZ3Jlc3MgPSBmYWxzZTsN CisrCQl0eHEtPmF4cV90eF9pbnByb2dyZXNzID0gMDsNCisgCQlzYy0+dHgudHhxc2V0dXAgfD0g MTw8YXhxX3FudW07DQorIA0KKyAJCXR4cS0+dHhxX2hlYWRpZHggPSB0eHEtPnR4cV90YWlsaWR4 ID0gMDsNCitAQCAtMTg1Miw5ICsxODU2LDE4IEBAIHZvaWQgYXRoX2RyYWludHhxKHN0cnVjdCBh dGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX3R4cSAqdHhxKQ0KKyAJfQ0KKyANCisgCXR4cS0+YXhx X2xpbmsgPSBOVUxMOw0KKy0JdHhxLT5heHFfdHhfaW5wcm9ncmVzcyA9IGZhbHNlOw0KKysJdHhx LT5heHFfdHhfaW5wcm9ncmVzcyA9IDA7DQorIAlhdGhfZHJhaW5fdHhxX2xpc3Qoc2MsIHR4cSwg JnR4cS0+YXhxX3EpOw0KKyANCisrCWlmICh0eHEtPmNsZWFyX3BlbmRpbmdfZnJhbWVzX29uX2Zs dXNoICYmICh0eHEtPnBlbmRpbmdfZnJhbWVzICE9IDApKSB7DQorKwkJYXRoX2VycihhdGg5a19o d19jb21tb24oc2MtPnNjX2FoKSwNCisrCQkJIlBlbmRpbmcgZnJhbWVzIHN0aWxsIGV4aXN0IG9u IHR4cTogJWkgYWZ0ZXIgZHJhaW46ICVpICBheHEtZGVwdGg6ICVpICBhbXBkdS1kZXB0aDogJWlc biIsDQorKwkJCXR4cS0+bWFjODAyMTFfcW51bSwgdHhxLT5wZW5kaW5nX2ZyYW1lcywgdHhxLT5h eHFfZGVwdGgsDQorKwkJCXR4cS0+YXhxX2FtcGR1X2RlcHRoKTsNCisrCQl0eHEtPnBlbmRpbmdf ZnJhbWVzID0gMDsNCisrCX0NCisrCXR4cS0+Y2xlYXJfcGVuZGluZ19mcmFtZXNfb25fZmx1c2gg PSBmYWxzZTsNCisrDQorIAlhdGhfdHhxX3VubG9ja19jb21wbGV0ZShzYywgdHhxKTsNCisgfQ0K KyANCmRpZmYgLS1naXQgYS9wYWNrYWdlL2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDI1 LWF0aDlrLVBhdGNoLWZyb20tRXJpYy1EdW1hemV0Lm1pZ2h0LWZpeC10Y3AtY29sbGFwc2UucGF0 Y2ggYi9wYWNrYWdlL2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDI1LWF0aDlrLVBhdGNo LWZyb20tRXJpYy1EdW1hemV0Lm1pZ2h0LWZpeC10Y3AtY29sbGFwc2UucGF0Y2gNCm5ldyBmaWxl IG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwLi4zZDM2ZDUwDQotLS0gL2Rldi9udWxsDQorKysg Yi9wYWNrYWdlL2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDI1LWF0aDlrLVBhdGNoLWZy b20tRXJpYy1EdW1hemV0Lm1pZ2h0LWZpeC10Y3AtY29sbGFwc2UucGF0Y2gNCkBAIC0wLDAgKzEs MjMgQEANCitGcm9tOiBCZW4gR3JlZWFyIDxncmVlYXJiQGNhbmRlbGF0ZWNoLmNvbT4NCitEYXRl OiBNb24sIDggSnVsIDIwMTMgMTM6MjE6MDcgLTA3MDANCitTdWJqZWN0OiBbUEFUQ0hdIGF0aDlr OiBQYXRjaCBmcm9tIEVyaWMgRHVtYXpldC4ubWlnaHQgZml4IHRjcC1jb2xsYXBzZSBpc3N1ZS4N CisNCitTaWduZWQtb2ZmLWJ5OiBCZW4gR3JlZWFyIDxncmVlYXJiQGNhbmRlbGF0ZWNoLmNvbT4N CistLS0NCisgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3JlY3YuYyB8IDMgKystDQor IDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkNCisNCitkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3JlY3YuYyBiL2RyaXZlcnMv bmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9yZWN2LmMNCitpbmRleCA2Yzc1ZmIxYWI3N2QuLmI1ZDUz ZDQxMDE0ZCAxMDA2NDQNCistLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvcmVj di5jDQorKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3JlY3YuYw0KK0BAIC0x MTA3LDcgKzExMDcsOCBAQCBpbnQgYXRoX3J4X3Rhc2tsZXQoc3RydWN0IGF0aF9zb2Z0YyAqc2Ms IGludCBmbHVzaCwgYm9vbCBocCkNCisgCQlpZiAoc2MtPnJ4LmZyYWcpIHsNCisgCQkJaW50IHNw YWNlID0gc2tiLT5sZW4gLSBza2JfdGFpbHJvb20oaGRyX3NrYik7DQorIA0KKy0JCQlpZiAocHNr Yl9leHBhbmRfaGVhZChoZHJfc2tiLCAwLCBzcGFjZSwgR0ZQX0FUT01JQykgPCAwKSB7DQorKwkJ CWlmIChzcGFjZSA+IDAgJiYNCisrCQkJICAgIHBza2JfZXhwYW5kX2hlYWQoaGRyX3NrYiwgMCwg c3BhY2UsIEdGUF9BVE9NSUMpIDwgMCkgew0KKyAJCQkJZGV2X2tmcmVlX3NrYihza2IpOw0KKyAJ CQkJUlhfU1RBVF9JTkMocnhfb29tX2Vycik7DQorIAkJCQlnb3RvIHJlcXVldWVfZHJvcF9mcmFn Ow0KZGlmZiAtLWdpdCBhL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAwMjYt YXRoOWstQW5vdGhlci1kZWJ1Z2dpbmctcGF0Y2gucGF0Y2ggYi9wYWNrYWdlL2tlcm5lbC9tYWM4 MDIxMS9wYXRjaGVzLzk5OS0wMDI2LWF0aDlrLUFub3RoZXItZGVidWdnaW5nLXBhdGNoLnBhdGNo DQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMC4uNjY4NzIzNw0KLS0tIC9kZXYv bnVsbA0KKysrIGIvcGFja2FnZS9rZXJuZWwvbWFjODAyMTEvcGF0Y2hlcy85OTktMDAyNi1hdGg5 ay1Bbm90aGVyLWRlYnVnZ2luZy1wYXRjaC5wYXRjaA0KQEAgLTAsMCArMSwyNSBAQA0KK0Zyb206 IEJlbiBHcmVlYXIgPGdyZWVhcmJAY2FuZGVsYXRlY2guY29tPg0KK0RhdGU6IE1vbiwgOCBKdWwg MjAxMyAxNTo1NjoxNSAtMDcwMA0KK1N1YmplY3Q6IFtQQVRDSF0gYXRoOWs6IEFub3RoZXIgZGVi dWdnaW5nIHBhdGNoLg0KKw0KK0hhcm1sZXNzLCBhbmQgdW5saWtlbHkgdG8gaGl0IEkgdGhpbmsu ICBCdXQgaWYgaXQgZGlkLA0KK2l0IG1pZ2h0IGV4cGxhaW4gdGhlIHRjcC1jb2xsYXBzZSBidWcu DQorDQorU2lnbmVkLW9mZi1ieTogQmVuIEdyZWVhciA8Z3JlZWFyYkBjYW5kZWxhdGVjaC5jb20+ DQorLS0tDQorIGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9yZWN2LmMgfCAyICsrDQor IDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKykNCisNCitkaWZmIC0tZ2l0IGEvZHJpdmVy cy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3JlY3YuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0 aC9hdGg5ay9yZWN2LmMNCitpbmRleCBiNWQ1M2Q0MTAxNGQuLjY0ZTA2OGYzOTYwMiAxMDA2NDQN CistLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvcmVjdi5jDQorKysrIGIvZHJp dmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3JlY3YuYw0KK0BAIC0xMTA3LDYgKzExMDcsOCBA QCBpbnQgYXRoX3J4X3Rhc2tsZXQoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIGludCBmbHVzaCwgYm9v bCBocCkNCisgCQlpZiAoc2MtPnJ4LmZyYWcpIHsNCisgCQkJaW50IHNwYWNlID0gc2tiLT5sZW4g LSBza2JfdGFpbHJvb20oaGRyX3NrYik7DQorIA0KKysJCQlXQVJOX09OX09OQ0Uoc3BhY2UgPCAw KTsNCisrDQorIAkJCWlmIChzcGFjZSA+IDAgJiYNCisgCQkJICAgIHBza2JfZXhwYW5kX2hlYWQo aGRyX3NrYiwgMCwgc3BhY2UsIEdGUF9BVE9NSUMpIDwgMCkgew0KKyAJCQkJZGV2X2tmcmVlX3Nr Yihza2IpOw0KZGlmZiAtLWdpdCBhL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5 LTAwMjctYXRoMTBrLWZpeC10eXBvLWluLWxvZ2dpbmctbWVzc2FnZS5wYXRjaCBiL3BhY2thZ2Uv a2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAwMjctYXRoMTBrLWZpeC10eXBvLWluLWxvZ2dp bmctbWVzc2FnZS5wYXRjaA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAuLjlj NmMyMGUNCi0tLSAvZGV2L251bGwNCisrKyBiL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNo ZXMvOTk5LTAwMjctYXRoMTBrLWZpeC10eXBvLWluLWxvZ2dpbmctbWVzc2FnZS5wYXRjaA0KQEAg LTAsMCArMSwyMiBAQA0KK0Zyb206IEJlbiBHcmVlYXIgPGdyZWVhcmJAY2FuZGVsYXRlY2guY29t Pg0KK0RhdGU6IFdlZCwgMzEgRGVjIDIwMTQgMTA6Mzg6MDkgLTA4MDANCitTdWJqZWN0OiBbUEFU Q0hdIGF0aDEwazogZml4IHR5cG8gaW4gbG9nZ2luZyBtZXNzYWdlDQorDQorU2lnbmVkLW9mZi1i eTogQmVuIEdyZWVhciA8Z3JlZWFyYkBjYW5kZWxhdGVjaC5jb20+DQorLS0tDQorIGRyaXZlcnMv bmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvbWFjLmMgfCAyICstDQorIDEgZmlsZSBjaGFuZ2VkLCAx IGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQ0KKw0KK2RpZmYgLS1naXQgYS9kcml2ZXJzL25l dC93aXJlbGVzcy9hdGgvYXRoMTBrL21hYy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0 aDEway9tYWMuYw0KK2luZGV4IDRmMzZkYmZmYzljNC4uMmY0MDQ1ZmNhODMzIDEwMDY0NA0KKy0t LSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvbWFjLmMNCisrKysgYi9kcml2ZXJz L25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL21hYy5jDQorQEAgLTI2NjUsNyArMjY2NSw3IEBAIHN0 YXRpYyB2b2lkIGF0aDEwa19ic3NfZGlzYXNzb2Moc3RydWN0IGllZWU4MDIxMV9odyAqaHcsDQor IA0KKyAJcmV0ID0gYXRoMTBrX3dtaV92ZGV2X2Rvd24oYXIsIGFydmlmLT52ZGV2X2lkKTsNCisg CWlmIChyZXQpDQorLQkJYXRoMTBrX3dhcm4oYXIsICJmYWllbGQgdG8gZG93biB2ZGV2ICVpOiAl ZFxuIiwNCisrCQlhdGgxMGtfd2FybihhciwgImZhaWxlZCB0byBkb3duIHZkZXYgJWk6ICVkXG4i LA0KKyAJCQkgICAgYXJ2aWYtPnZkZXZfaWQsIHJldCk7DQorIA0KKyAJYXJ2aWYtPmRlZl93ZXBf a2V5X2lkeCA9IC0xOw0KZGlmZiAtLWdpdCBhL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNo ZXMvOTk5LTAwMjgtYXRoMTBrLXN1cHBvcnQtQ1QtZmlybXdhcmUtZmxhZy5wYXRjaCBiL3BhY2th Z2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAwMjgtYXRoMTBrLXN1cHBvcnQtQ1QtZmly bXdhcmUtZmxhZy5wYXRjaA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAuLmM2 YzkxZTMNCi0tLSAvZGV2L251bGwNCisrKyBiL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNo ZXMvOTk5LTAwMjgtYXRoMTBrLXN1cHBvcnQtQ1QtZmlybXdhcmUtZmxhZy5wYXRjaA0KQEAgLTAs MCArMSwyNiBAQA0KK0Zyb206IEJlbiBHcmVlYXIgPGdyZWVhcmJAY2FuZGVsYXRlY2guY29tPg0K K0RhdGU6IEZyaSwgMTkgU2VwIDIwMTQgMTA6MDM6NDkgLTA3MDANCitTdWJqZWN0OiBbUEFUQ0hd IGF0aDEwazogc3VwcG9ydCBDVCBmaXJtd2FyZSBmbGFnLg0KKw0KK0FkZCBwbGFjZWhvbGRlciBz byBDVCBmaXJtd2FyZSBjYW4gbW9yZSBlYXNpbHkgY28tZXhpc3Qgd2l0aCB1cHN0cmVhbQ0KK2tl cm5lbC4NCisNCitTaWduZWQtb2ZmLWJ5OiBCZW4gR3JlZWFyIDxncmVlYXJiQGNhbmRlbGF0ZWNo LmNvbT4NCistLS0NCisgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9jb3JlLmggfCAz ICsrKw0KKyAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspDQorDQorZGlmZiAtLWdpdCBh L2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvY29yZS5oIGIvZHJpdmVycy9uZXQvd2ly ZWxlc3MvYXRoL2F0aDEway9jb3JlLmgNCitpbmRleCA3ODA5NGYyM2M5ZGQuLjYxMWNhNzZhMjI0 ZCAxMDA2NDQNCistLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2NvcmUuaA0K KysrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvY29yZS5oDQorQEAgLTQ2Miw2 ICs0NjIsOSBAQCBlbnVtIGF0aDEwa19md19mZWF0dXJlcyB7DQorIAkvKiBGaXJtd2FyZSBzdXBw b3J0cyBieXBhc3NpbmcgUExMIHNldHRpbmcgb24gaW5pdC4gKi8NCisgCUFUSDEwS19GV19GRUFU VVJFX1NVUFBPUlRTX1NLSVBfQ0xPQ0tfSU5JVCA9IDksDQorIA0KKysJLyogRmlybXdhcmUgZnJv bSBDYW5kZWxhIFRlY2hub2xvZ2llcywgZW5hYmxlcyBtb3JlIFZJRnMsIGV0YyAqLw0KKysJQVRI MTBLX0ZXX0ZFQVRVUkVfV01JXzEwWF9DVCA9IDMxLA0KKysNCisgCS8qIGtlZXAgbGFzdCAqLw0K KyAJQVRIMTBLX0ZXX0ZFQVRVUkVfQ09VTlQsDQorIH07DQpkaWZmIC0tZ2l0IGEvcGFja2FnZS9r ZXJuZWwvbWFjODAyMTEvcGF0Y2hlcy85OTktMDAyOS1hdGgxMGstU3VwcG9ydC0zMi1zdGF0aW9u cy5wYXRjaCBiL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAwMjktYXRoMTBr LVN1cHBvcnQtMzItc3RhdGlvbnMucGF0Y2gNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAw MDAwMDAwLi4wNmI5MDI5DQotLS0gL2Rldi9udWxsDQorKysgYi9wYWNrYWdlL2tlcm5lbC9tYWM4 MDIxMS9wYXRjaGVzLzk5OS0wMDI5LWF0aDEway1TdXBwb3J0LTMyLXN0YXRpb25zLnBhdGNoDQpA QCAtMCwwICsxLDE2MiBAQA0KK0Zyb206IEJlbiBHcmVlYXIgPGdyZWVhcmJAY2FuZGVsYXRlY2gu Y29tPg0KK0RhdGU6IFR1ZSwgMjEgSmFuIDIwMTQgMTY6MjM6NDYgLTA4MDANCitTdWJqZWN0OiBb UEFUQ0hdIGF0aDEwazogU3VwcG9ydCAzMisgc3RhdGlvbnMuDQorDQorU3VwcG9ydCB1cCB0byAz MiBzdGF0aW9ucyB3aGVuIHVzaW5nIENUIGZpcm13YXJlLg0KKw0KK1NpZ25lZC1vZmYtYnk6IEJl biBHcmVlYXIgPGdyZWVhcmJAY2FuZGVsYXRlY2guY29tPg0KKy0tLQ0KKyBkcml2ZXJzL25ldC93 aXJlbGVzcy9hdGgvYXRoMTBrL2NvcmUuYyB8IDEyICsrKysrKysrKysNCisgZHJpdmVycy9uZXQv d2lyZWxlc3MvYXRoL2F0aDEway9ody5oICAgfCAgNiArKysrKw0KKyBkcml2ZXJzL25ldC93aXJl bGVzcy9hdGgvYXRoMTBrL21hYy5jICB8IDQyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysNCisgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWkuYyAgfCAxOSArKysr KysrKysrKy0tLS0NCisgNCBmaWxlcyBjaGFuZ2VkLCA3NCBpbnNlcnRpb25zKCspLCA1IGRlbGV0 aW9ucygtKQ0KKw0KK2RpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBr L2NvcmUuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvY29yZS5jDQoraW5kZXgg NTk0OTZhOTBhZDVlLi5lOTA3MGZkYTdjNmUgMTAwNjQ0DQorLS0tIGEvZHJpdmVycy9uZXQvd2ly ZWxlc3MvYXRoL2F0aDEway9jb3JlLmMNCisrKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgv YXRoMTBrL2NvcmUuYw0KK0BAIC0xMDE2LDYgKzEwMTYsMTggQEAgc3RhdGljIGludCBhdGgxMGtf Y29yZV9pbml0X2Zpcm13YXJlX2ZlYXR1cmVzKHN0cnVjdCBhdGgxMGsgKmFyKQ0KKyAJCQlXTUlf U1RBVF9QRUVSOw0KKyAJCWJyZWFrOw0KKyAJY2FzZSBBVEgxMEtfRldfV01JX09QX1ZFUlNJT05f MTBfMToNCisrCQlpZiAodGVzdF9iaXQoQVRIMTBLX0ZXX0ZFQVRVUkVfV01JXzEwWF9DVCwgYXIt PmZ3X2ZlYXR1cmVzKSkgew0KKysJCQlhci0+bWF4X251bV9wZWVycyA9IFRBUkdFVF8xMFhfTlVN X1BFRVJTX0NUOw0KKysJCQlhci0+bWF4X251bV9zdGF0aW9ucyA9IFRBUkdFVF8xMFhfTlVNX1NU QVRJT05TOw0KKysJCQlhci0+bWF4X251bV92ZGV2cyA9IFRBUkdFVF8xMFhfTlVNX1ZERVZTX0NU Ow0KKysJCX0gZWxzZSB7DQorKwkJCWFyLT5tYXhfbnVtX3BlZXJzID0gVEFSR0VUXzEwWF9OVU1f UEVFUlM7DQorKwkJCWFyLT5tYXhfbnVtX3N0YXRpb25zID0gVEFSR0VUXzEwWF9OVU1fU1RBVElP TlM7DQorKwkJCWFyLT5tYXhfbnVtX3ZkZXZzID0gVEFSR0VUXzEwWF9OVU1fVkRFVlM7DQorKwkJ fQ0KKysJCWFyLT5odHQubWF4X251bV9wZW5kaW5nX3R4ID0gVEFSR0VUXzEwWF9OVU1fTVNEVV9E RVNDOw0KKysJCWFyLT5md19zdGF0c19yZXFfbWFzayA9IFdNSV9TVEFUX1BFRVI7DQorKwkJYnJl YWs7DQorIAljYXNlIEFUSDEwS19GV19XTUlfT1BfVkVSU0lPTl8xMF8yOg0KKyAJY2FzZSBBVEgx MEtfRldfV01JX09QX1ZFUlNJT05fMTBfMl80Og0KKyAJCWFyLT5tYXhfbnVtX3BlZXJzID0gVEFS R0VUXzEwWF9OVU1fUEVFUlM7DQorZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0 aC9hdGgxMGsvaHcuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvaHcuaA0KK2lu ZGV4IDg1Y2NhMjkzNzVmZS4uYjMzNGZmNjU0MjM4IDEwMDY0NA0KKy0tLSBhL2RyaXZlcnMvbmV0 L3dpcmVsZXNzL2F0aC9hdGgxMGsvaHcuaA0KKysrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0 aC9hdGgxMGsvaHcuaA0KK0BAIC0yNzMsNiArMjczLDEyIEBAIGVudW0gYXRoMTBrX2h3X3JhdGVf Y2NrIHsNCisgI2RlZmluZSBUQVJHRVRfMTBYX05VTV9TVEFUSU9OUwkJCTEyOA0KKyAjZGVmaW5l IFRBUkdFVF8xMFhfTlVNX1BFRVJTCQkJKChUQVJHRVRfMTBYX05VTV9TVEFUSU9OUykgKyBcDQor IAkJCQkJCSAoVEFSR0VUXzEwWF9OVU1fVkRFVlMpKQ0KKysNCisrLyogT3Zlci1yaWRlcyBmb3Ig Q2FuZGVsYSBUZWNobm9sb2dpZXMgZmlybXdhcmUgKi8NCisrI2RlZmluZSBUQVJHRVRfMTBYX05V TV9WREVWU19DVAkJCTMyDQorKyNkZWZpbmUgVEFSR0VUXzEwWF9OVU1fUEVFUlNfQ1QJCQkoMzIg KyAoVEFSR0VUXzEwWF9OVU1fVkRFVlNfQ1QpKQ0KKysjZGVmaW5lIFRBUkdFVF8xMFhfQVNUX1NL SURfTElNSVRfQ1QJCShUQVJHRVRfMTBYX05VTV9QRUVSU19DVCAqIFRBUkdFVF8xMFhfTlVNX1BF RVJfQVNUKQ0KKysNCisgI2RlZmluZSBUQVJHRVRfMTBYX05VTV9PRkZMT0FEX1BFRVJTCQkwDQor ICNkZWZpbmUgVEFSR0VUXzEwWF9OVU1fT0ZGTE9BRF9SRU9SREVSX0JVRlMJMA0KKyAjZGVmaW5l IFRBUkdFVF8xMFhfTlVNX1BFRVJfS0VZUwkJMg0KK2RpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93 aXJlbGVzcy9hdGgvYXRoMTBrL21hYy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEw ay9tYWMuYw0KK2luZGV4IDJmNDA0NWZjYTgzMy4uMDZkNWE0NGNlZjUwIDEwMDY0NA0KKy0tLSBh L2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvbWFjLmMNCisrKysgYi9kcml2ZXJzL25l dC93aXJlbGVzcy9hdGgvYXRoMTBrL21hYy5jDQorQEAgLTY1MzYsNiArNjUzNiwyMiBAQCBzdGF0 aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9saW1pdCBhdGgxMGtfMTB4X2lmX2xpbWl0 c1tdID0gew0KKyAJfSwNCisgfTsNCisgDQorK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjEx X2lmYWNlX2xpbWl0IGF0aDEwa18xMHhfY3RfaWZfbGltaXRzW10gPSB7DQorKwl7DQorKwkubWF4 CT0gVEFSR0VUXzEwWF9OVU1fVkRFVlNfQ1QsDQorKwkudHlwZXMJPSBCSVQoTkw4MDIxMV9JRlRZ UEVfU1RBVElPTikNCisrCQl8IEJJVChOTDgwMjExX0lGVFlQRV9QMlBfQ0xJRU5UKQ0KKysJfSwN CisrCXsNCisrCS5tYXgJPSAzLA0KKysJLnR5cGVzCT0gQklUKE5MODAyMTFfSUZUWVBFX1AyUF9H TykNCisrCX0sDQorKwl7DQorKwkubWF4CT0gNywNCisrCS50eXBlcwk9IEJJVChOTDgwMjExX0lG VFlQRV9BUCkNCisrCX0sDQorK307DQorKw0KKyBzdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIx MV9pZmFjZV9jb21iaW5hdGlvbiBhdGgxMGtfaWZfY29tYltdID0gew0KKyAJew0KKyAJCS5saW1p dHMgPSBhdGgxMGtfaWZfbGltaXRzLA0KK0BAIC02NjIwLDYgKzY2MzYsMjIgQEAgc3RhdGljIHN0 cnVjdCBpZWVlODAyMTFfaWZhY2VfY29tYmluYXRpb24gYXRoMTBrX3Rsdl9xY3NfaWZfY29tYltd ID0gew0KKyAJfSwNCisgfTsNCisgDQorK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX2lm YWNlX2NvbWJpbmF0aW9uIGF0aDEwa18xMHhfY3RfaWZfY29tYltdID0gew0KKysJew0KKysJCS5s aW1pdHMgPSBhdGgxMGtfMTB4X2N0X2lmX2xpbWl0cywNCisrCQkubl9saW1pdHMgPSBBUlJBWV9T SVpFKGF0aDEwa18xMHhfY3RfaWZfbGltaXRzKSwNCisrCQkubWF4X2ludGVyZmFjZXMgPSBUQVJH RVRfMTBYX05VTV9WREVWU19DVCwNCisrCQkubnVtX2RpZmZlcmVudF9jaGFubmVscyA9IDEsDQor KwkJLmJlYWNvbl9pbnRfaW5mcmFfbWF0Y2ggPSB0cnVlLA0KKysjaWZkZWYgQ1BUQ0ZHX0FUSDEw S19ERlNfQ0VSVElGSUVEDQorKwkJLnJhZGFyX2RldGVjdF93aWR0aHMgPQlCSVQoTkw4MDIxMV9D SEFOX1dJRFRIXzIwX05PSFQpIHwNCisrCQkJCQlCSVQoTkw4MDIxMV9DSEFOX1dJRFRIXzIwKSB8 DQorKwkJCQkJQklUKE5MODAyMTFfQ0hBTl9XSURUSF80MCkgfA0KKysJCQkJCUJJVChOTDgwMjEx X0NIQU5fV0lEVEhfODApLA0KKysjZW5kaWYNCisrCX0sDQorK307DQorKw0KKyBzdGF0aWMgc3Ry dWN0IGllZWU4MDIxMV9zdGFfdmh0X2NhcCBhdGgxMGtfY3JlYXRlX3ZodF9jYXAoc3RydWN0IGF0 aDEwayAqYXIpDQorIHsNCisgCXN0cnVjdCBpZWVlODAyMTFfc3RhX3ZodF9jYXAgdmh0X2NhcCA9 IHswfTsNCitAQCAtNjkzNiw2ICs2OTY4LDE2IEBAIGludCBhdGgxMGtfbWFjX3JlZ2lzdGVyKHN0 cnVjdCBhdGgxMGsgKmFyKQ0KKyAJCWFyLT5ody0+d2lwaHktPmludGVyZmFjZV9tb2RlcyB8PSBC SVQoTkw4MDIxMV9JRlRZUEVfQURIT0MpOw0KKyAJCWJyZWFrOw0KKyAJY2FzZSBBVEgxMEtfRldf V01JX09QX1ZFUlNJT05fMTBfMToNCisrCQlpZiAodGVzdF9iaXQoQVRIMTBLX0ZXX0ZFQVRVUkVf V01JXzEwWF9DVCwgYXItPmZ3X2ZlYXR1cmVzKSkgew0KKysJCQlhci0+aHctPndpcGh5LT5pZmFj ZV9jb21iaW5hdGlvbnMgPSBhdGgxMGtfMTB4X2N0X2lmX2NvbWI7DQorKwkJCWFyLT5ody0+d2lw aHktPm5faWZhY2VfY29tYmluYXRpb25zID0NCisrCQkJCUFSUkFZX1NJWkUoYXRoMTBrXzEweF9j dF9pZl9jb21iKTsNCisrCQl9IGVsc2Ugew0KKysJCQlhci0+aHctPndpcGh5LT5pZmFjZV9jb21i aW5hdGlvbnMgPSBhdGgxMGtfMTB4X2lmX2NvbWI7DQorKwkJCWFyLT5ody0+d2lwaHktPm5faWZh Y2VfY29tYmluYXRpb25zID0NCisrCQkJCUFSUkFZX1NJWkUoYXRoMTBrXzEweF9pZl9jb21iKTsN CisrCQl9DQorKwkJYnJlYWs7DQorIAljYXNlIEFUSDEwS19GV19XTUlfT1BfVkVSU0lPTl8xMF8y Og0KKyAJY2FzZSBBVEgxMEtfRldfV01JX09QX1ZFUlNJT05fMTBfMl80Og0KKyAJCWFyLT5ody0+ d2lwaHktPmlmYWNlX2NvbWJpbmF0aW9ucyA9IGF0aDEwa18xMHhfaWZfY29tYjsNCitkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWkuYyBiL2RyaXZlcnMvbmV0 L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLmMNCitpbmRleCA2YzA0NmMyNDQ3MDUuLjc3ZTQ1MWNj NTNhNyAxMDA2NDQNCistLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS5j DQorKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWkuYw0KK0BAIC0zMTEy LDkgKzMxMTIsOSBAQCB2b2lkIGF0aDEwa193bWlfZXZlbnRfc2VydmljZV9yZWFkeShzdHJ1Y3Qg YXRoMTBrICphciwgc3RydWN0IHNrX2J1ZmYgKnNrYikNCisgCQkJICogcGVlcnMsIDEgZXh0cmEg Zm9yIHNlbGYgcGVlciBvbiB0YXJnZXQgKi8NCisgCQkJLyogdGhpcyBuZWVkcyB0byBiZSB0aWVk LCBob3N0IGFuZCB0YXJnZXQNCisgCQkJICogY2FuIGdldCBvdXQgb2Ygc3luYyAqLw0KKy0JCQlu dW1fdW5pdHMgPSBUQVJHRVRfMTBYX05VTV9QRUVSUyArIDE7DQorKwkJCW51bV91bml0cyA9IGFy LT5tYXhfbnVtX3BlZXJzICsgMTsNCisgCQllbHNlIGlmIChudW1fdW5pdF9pbmZvICYgTlVNX1VO SVRTX0lTX05VTV9WREVWUykNCistCQkJbnVtX3VuaXRzID0gVEFSR0VUXzEwWF9OVU1fVkRFVlMg KyAxOw0KKysJCQludW1fdW5pdHMgPSBhci0+bWF4X251bV92ZGV2cyArIDE7DQorIA0KKyAJCWF0 aDEwa19kYmcoYXIsIEFUSDEwS19EQkdfV01JLA0KKyAJCQkgICAid21pIG1lbV9yZXFfaWQgJWQg bnVtX3VuaXRzICVkIG51bV91bml0X2luZm8gJWQgdW5pdCBzaXplICVkIGFjdHVhbCB1bml0cyAl ZFxuIiwNCitAQCAtMzgxOSwxMiArMzgxOSwyMSBAQCBzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKmF0 aDEwa193bWlfMTBfMV9vcF9nZW5faW5pdChzdHJ1Y3QgYXRoMTBrICphcikNCisgCXN0cnVjdCBz a19idWZmICpidWY7DQorIAlzdHJ1Y3Qgd21pX3Jlc291cmNlX2NvbmZpZ18xMHggY29uZmlnID0g e307DQorIAl1MzIgbGVuLCB2YWw7DQorKwl1MzIgc2tpZF9saW1pdDsNCisrDQorKwlpZiAodGVz dF9iaXQoQVRIMTBLX0ZXX0ZFQVRVUkVfV01JXzEwWF9DVCwgYXItPmZ3X2ZlYXR1cmVzKSkgew0K KysJCWNvbmZpZy5udW1fdmRldnMgPSBfX2NwdV90b19sZTMyKFRBUkdFVF8xMFhfTlVNX1ZERVZT X0NUKTsNCisrCQljb25maWcubnVtX3BlZXJzID0gX19jcHVfdG9fbGUzMihUQVJHRVRfMTBYX05V TV9QRUVSU19DVCk7DQorKwkJc2tpZF9saW1pdCA9IFRBUkdFVF8xMFhfQVNUX1NLSURfTElNSVRf Q1Q7DQorKwl9IGVsc2Ugew0KKysJCWNvbmZpZy5udW1fdmRldnMgPSBfX2NwdV90b19sZTMyKFRB UkdFVF8xMFhfTlVNX1ZERVZTKTsNCisrCQljb25maWcubnVtX3BlZXJzID0gX19jcHVfdG9fbGUz MihUQVJHRVRfMTBYX05VTV9QRUVSUyk7DQorKwkJc2tpZF9saW1pdCA9IFRBUkdFVF8xMFhfQVNU X1NLSURfTElNSVQ7DQorKwl9DQorKwljb25maWcuYXN0X3NraWRfbGltaXQgPSBfX2NwdV90b19s ZTMyKHNraWRfbGltaXQpOw0KKyANCistCWNvbmZpZy5udW1fdmRldnMgPSBfX2NwdV90b19sZTMy KFRBUkdFVF8xMFhfTlVNX1ZERVZTKTsNCistCWNvbmZpZy5udW1fcGVlcnMgPSBfX2NwdV90b19s ZTMyKFRBUkdFVF8xMFhfTlVNX1BFRVJTKTsNCisgCWNvbmZpZy5udW1fcGVlcl9rZXlzID0gX19j cHVfdG9fbGUzMihUQVJHRVRfMTBYX05VTV9QRUVSX0tFWVMpOw0KKyAJY29uZmlnLm51bV90aWRz ID0gX19jcHVfdG9fbGUzMihUQVJHRVRfMTBYX05VTV9USURTKTsNCistCWNvbmZpZy5hc3Rfc2tp ZF9saW1pdCA9IF9fY3B1X3RvX2xlMzIoVEFSR0VUXzEwWF9BU1RfU0tJRF9MSU1JVCk7DQorIAlj b25maWcudHhfY2hhaW5fbWFzayA9IF9fY3B1X3RvX2xlMzIoVEFSR0VUXzEwWF9UWF9DSEFJTl9N QVNLKTsNCisgCWNvbmZpZy5yeF9jaGFpbl9tYXNrID0gX19jcHVfdG9fbGUzMihUQVJHRVRfMTBY X1JYX0NIQUlOX01BU0spOw0KKyAJY29uZmlnLnJ4X3RpbWVvdXRfcHJpX3ZvID0gX19jcHVfdG9f bGUzMihUQVJHRVRfMTBYX1JYX1RJTUVPVVRfTE9fUFJJKTsNCmRpZmYgLS1naXQgYS9wYWNrYWdl L2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDMwLWF0aDEway1hZGQtaGVscGVyLW1ldGhv ZC10by1ncmFiLWRlYnVnLXN0YXRzLnBhdGNoIGIvcGFja2FnZS9rZXJuZWwvbWFjODAyMTEvcGF0 Y2hlcy85OTktMDAzMC1hdGgxMGstYWRkLWhlbHBlci1tZXRob2QtdG8tZ3JhYi1kZWJ1Zy1zdGF0 cy5wYXRjaA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAuLjg3NzM5YzMNCi0t LSAvZGV2L251bGwNCisrKyBiL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAw MzAtYXRoMTBrLWFkZC1oZWxwZXItbWV0aG9kLXRvLWdyYWItZGVidWctc3RhdHMucGF0Y2gNCkBA IC0wLDAgKzEsODkgQEANCitGcm9tOiBCZW4gR3JlZWFyIDxncmVlYXJiQGNhbmRlbGF0ZWNoLmNv bT4NCitEYXRlOiBUaHUsIDIwIE1hciAyMDE0IDE2OjE4OjMyIC0wNzAwDQorU3ViamVjdDogW1BB VENIXSBhdGgxMGs6IGFkZCBoZWxwZXIgbWV0aG9kIHRvIGdyYWIgZGVidWcgc3RhdHMuDQorDQor SXQgY2FuIGJlIG5pY2UgdG8gdXBkYXRlIHRoZSBmaXJtd2FyZSdzIHN0YXRzIHdoaWxlDQorZGVi dWdnaW5nIG90aGVyIGJpdHMgb2YgdGhlIGRyaXZlciwgc28gYWRkIGhlbHBlciBtZXRob2QNCit0 byBkbyB0aGlzLg0KKw0KK1NpZ25lZC1vZmYtYnk6IEJlbiBHcmVlYXIgPGdyZWVhcmJAY2FuZGVs YXRlY2guY29tPg0KKy0tLQ0KKyBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2RlYnVn LmMgfCAzNyArKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0NCisgZHJpdmVycy9uZXQv d2lyZWxlc3MvYXRoL2F0aDEway9kZWJ1Zy5oIHwgIDMgKysrDQorIDIgZmlsZXMgY2hhbmdlZCwg MjcgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pDQorDQorZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvZGVidWcuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNz L2F0aC9hdGgxMGsvZGVidWcuYw0KK2luZGV4IDhmYTYwNmE5YzRkZC4uYjNkNjk0YTM3YzRlIDEw MDY0NA0KKy0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvZGVidWcuYw0KKysr KyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvZGVidWcuYw0KK0BAIC0zODQsNyAr Mzg0LDcgQEAgdW5sb2NrOg0KKyANCisgc3RhdGljIGludCBhdGgxMGtfZGVidWdfZndfc3RhdHNf cmVxdWVzdChzdHJ1Y3QgYXRoMTBrICphcikNCisgew0KKy0JdW5zaWduZWQgbG9uZyB0aW1lb3V0 LCB0aW1lX2xlZnQ7DQorKwl1bnNpZ25lZCBsb25nIHRpbWVvdXQ7DQorIAlpbnQgcmV0Ow0KKyAN CisgCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmFyLT5jb25mX211dGV4KTsNCitAQCAtMzk3LDE5ICsz OTcsOSBAQCBzdGF0aWMgaW50IGF0aDEwa19kZWJ1Z19md19zdGF0c19yZXF1ZXN0KHN0cnVjdCBh dGgxMGsgKmFyKQ0KKyAJCWlmICh0aW1lX2FmdGVyKGppZmZpZXMsIHRpbWVvdXQpKQ0KKyAJCQly ZXR1cm4gLUVUSU1FRE9VVDsNCisgDQorLQkJcmVpbml0X2NvbXBsZXRpb24oJmFyLT5kZWJ1Zy5m d19zdGF0c19jb21wbGV0ZSk7DQorLQ0KKy0JCXJldCA9IGF0aDEwa193bWlfcmVxdWVzdF9zdGF0 cyhhciwgYXItPmZ3X3N0YXRzX3JlcV9tYXNrKTsNCistCQlpZiAocmV0KSB7DQorLQkJCWF0aDEw a193YXJuKGFyLCAiY291bGQgbm90IHJlcXVlc3Qgc3RhdHMgKCVkKVxuIiwgcmV0KTsNCisrCQly ZXQgPSBhdGgxMGtfcmVmcmVzaF9wZWVyX3N0YXRzKGFyKTsNCisrCQlpZiAocmV0KQ0KKyAJCQly ZXR1cm4gcmV0Ow0KKy0JCX0NCistDQorLQkJdGltZV9sZWZ0ID0NCistCQl3YWl0X2Zvcl9jb21w bGV0aW9uX3RpbWVvdXQoJmFyLT5kZWJ1Zy5md19zdGF0c19jb21wbGV0ZSwNCistCQkJCQkgICAg MSAqIEhaKTsNCistCQlpZiAoIXRpbWVfbGVmdCkNCistCQkJcmV0dXJuIC1FVElNRURPVVQ7DQor IA0KKyAJCXNwaW5fbG9ja19iaCgmYXItPmRhdGFfbG9jayk7DQorIAkJaWYgKGFyLT5kZWJ1Zy5m d19zdGF0c19kb25lKSB7DQorQEAgLTcwMiw2ICs2OTIsMjcgQEAgc3RhdGljIGludCBhdGgxMGtf Zndfc3RhdHNfcmVsZWFzZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkN CisgCXJldHVybiAwOw0KKyB9DQorIA0KKytpbnQgYXRoMTBrX3JlZnJlc2hfcGVlcl9zdGF0cyhz dHJ1Y3QgYXRoMTBrICphcikNCisrew0KKysJaW50IHJldDsNCisrCXVuc2lnbmVkIGxvbmcgdGlt ZV9sZWZ0Ow0KKysNCisrCXJlaW5pdF9jb21wbGV0aW9uKCZhci0+ZGVidWcuZndfc3RhdHNfY29t cGxldGUpOw0KKysJcmV0ID0gYXRoMTBrX3dtaV9yZXF1ZXN0X3N0YXRzKGFyLCBhci0+Zndfc3Rh dHNfcmVxX21hc2spOw0KKysJaWYgKHJldCkgew0KKysJCWF0aDEwa193YXJuKGFyLCAiY291bGQg bm90IHJlcXVlc3Qgc3RhdHMgKCVkKVxuIiwgcmV0KTsNCisrCQlyZXR1cm4gcmV0Ow0KKysJfQ0K KysNCisrCS8qIHJldCBtZWFucyAndGltZS1sZWZ0JyBoZXJlICovDQorKwl0aW1lX2xlZnQgPQ0K KysJCXdhaXRfZm9yX2NvbXBsZXRpb25fdGltZW91dCgmYXItPmRlYnVnLmZ3X3N0YXRzX2NvbXBs ZXRlLCAxKkhaKTsNCisrCWlmICh0aW1lX2xlZnQgPT0gMCkNCisrCQlyZXR1cm4gLUVUSU1FRE9V VDsNCisrDQorKwlyZXR1cm4gMDsNCisrfQ0KKysNCisgc3RhdGljIHNzaXplX3QgYXRoMTBrX2Z3 X3N0YXRzX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsIGNoYXIgX191c2VyICp1c2VyX2J1ZiwNCisg CQkJCSAgICBzaXplX3QgY291bnQsIGxvZmZfdCAqcHBvcykNCisgew0KK2RpZmYgLS1naXQgYS9k cml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2RlYnVnLmggYi9kcml2ZXJzL25ldC93aXJl bGVzcy9hdGgvYXRoMTBrL2RlYnVnLmgNCitpbmRleCA1M2JkNmExOWVhYjYuLmY2MWIyZTZkOWM1 ZCAxMDA2NDQNCistLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2RlYnVnLmgN CisrKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2RlYnVnLmgNCitAQCAtMTY0 LDQgKzE2NCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBhdGgxMGtfZGJnX2R1bXAoc3RydWN0IGF0 aDEwayAqYXIsDQorIHsNCisgfQ0KKyAjZW5kaWYgLyogQ1BUQ0ZHX0FUSDEwS19ERUJVRyAqLw0K KysNCisraW50IGF0aDEwa19yZWZyZXNoX3BlZXJfc3RhdHMoc3RydWN0IGF0aDEwayAqYXIpOw0K KysNCisgI2VuZGlmIC8qIF9ERUJVR19IXyAqLw0KZGlmZiAtLWdpdCBhL3BhY2thZ2Uva2VybmVs L21hYzgwMjExL3BhdGNoZXMvOTk5LTAwMzEtYXRoMTBrLXJlcXVlc3QtZmlybXdhcmUtZmx1c2gt aW4tYXRoMTBrX2ZsdXNoLnBhdGNoIGIvcGFja2FnZS9rZXJuZWwvbWFjODAyMTEvcGF0Y2hlcy85 OTktMDAzMS1hdGgxMGstcmVxdWVzdC1maXJtd2FyZS1mbHVzaC1pbi1hdGgxMGtfZmx1c2gucGF0 Y2gNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwLi45ZjA4NzIzDQotLS0gL2Rl di9udWxsDQorKysgYi9wYWNrYWdlL2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDMxLWF0 aDEway1yZXF1ZXN0LWZpcm13YXJlLWZsdXNoLWluLWF0aDEwa19mbHVzaC5wYXRjaA0KQEAgLTAs MCArMSwzOCBAQA0KK0Zyb206IEJlbiBHcmVlYXIgPGdyZWVhcmJAY2FuZGVsYXRlY2guY29tPg0K K0RhdGU6IFRodSwgNSBKdW4gMjAxNCAxNDoyMDo0NSAtMDcwMA0KK1N1YmplY3Q6IFtQQVRDSF0g YXRoMTBrOiByZXF1ZXN0IGZpcm13YXJlIGZsdXNoIGluIGF0aDEwa19mbHVzaC4NCisNCitDVCBm aXJtd2FyZSBub3cgc3VwcG9ydHMgZmx1c2hpbmcgYWxsIHRpZHMgZm9yIGFsbA0KK3BlZXJzIGZv ciBhbGwgdmRldnMuICBUaGlzIGFwcGVhcnMgdG8gaGVscCB0aGUgYXRoMTBrX2ZsdXNoDQorbG9n aWMgd29yayBmYXN0ZXIgYW5kIG5vdCBjYXVzZSB0aW1lb3V0cy4NCisNCitTaWduZWQtb2ZmLWJ5 OiBCZW4gR3JlZWFyIDxncmVlYXJiQGNhbmRlbGF0ZWNoLmNvbT4NCistLS0NCisgZHJpdmVycy9u ZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMuYyB8IDcgKysrKysrKw0KKyAxIGZpbGUgY2hhbmdl ZCwgNyBpbnNlcnRpb25zKCspDQorDQorZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNz L2F0aC9hdGgxMGsvbWFjLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL21hYy5j DQoraW5kZXggMDZkNWE0NGNlZjUwLi44MDg3NDY5OGQ3MGQgMTAwNjQ0DQorLS0tIGEvZHJpdmVy cy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMuYw0KKysrKyBiL2RyaXZlcnMvbmV0L3dpcmVs ZXNzL2F0aC9hdGgxMGsvbWFjLmMNCitAQCAtNTU2Nyw2ICs1NTY3LDcgQEAgc3RhdGljIHZvaWQg YXRoMTBrX2ZsdXNoKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3Zp ZiAqdmlmLA0KKyAJc3RydWN0IGF0aDEwayAqYXIgPSBody0+cHJpdjsNCisgCWJvb2wgc2tpcDsN CisgCWludCByZXQ7DQorKwl1OCBwZWVyX2FkZHJbRVRIX0FMRU5dID0gezB9Ow0KKyANCisgCS8q IG1hYzgwMjExIGRvZXNuJ3QgY2FyZSBpZiB3ZSByZWFsbHkgeG1pdCBxdWV1ZWQgZnJhbWVzIG9y IG5vdA0KKyAJICogd2UnbGwgY29sbGVjdCB0aG9zZSBmcmFtZXMgZWl0aGVyIHdheSBpZiB3ZSBz dG9wL2RlbGV0ZSB2ZGV2cyAqLw0KK0BAIC01NTc4LDYgKzU1NzksMTIgQEAgc3RhdGljIHZvaWQg YXRoMTBrX2ZsdXNoKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3Zp ZiAqdmlmLA0KKyAJaWYgKGFyLT5zdGF0ZSA9PSBBVEgxMEtfU1RBVEVfV0VER0VEKQ0KKyAJCWdv dG8gc2tpcDsNCisgDQorKwkvKiBJZiB3ZSBhcmUgQ1QgZmlybXdhcmUsIGFzayBpdCB0byBmbHVz aCBhbGwgdGlkcyBvbiBhbGwgcGVlcnMgb24NCisrCSAqIGFsbCB2ZGV2cy4gIE5vcm1hbCBmaXJt d2FyZSB3aWxsIGp1c3QgY3Jhc2ggaWYgeW91IGRvIHRoaXMuDQorKwkgKi8NCisrCWlmICh0ZXN0 X2JpdChBVEgxMEtfRldfRkVBVFVSRV9XTUlfMTBYX0NULCBhci0+ZndfZmVhdHVyZXMpKQ0KKysJ CWF0aDEwa193bWlfcGVlcl9mbHVzaChhciwgMHhGRkZGRkZGRiwgcGVlcl9hZGRyLCAweEZGRkZG RkZGKTsNCisrDQorIAlyZXQgPSB3YWl0X2V2ZW50X3RpbWVvdXQoYXItPmh0dC5lbXB0eV90eF93 cSwgKHsNCisgCQkJYm9vbCBlbXB0eTsNCisgDQpkaWZmIC0tZ2l0IGEvcGFja2FnZS9rZXJuZWwv bWFjODAyMTEvcGF0Y2hlcy85OTktMDAzMi1hdGgxMGstc2F2ZS1maXJtd2FyZS1kZWJ1Zy1sb2ct bWVzc2FnZXMucGF0Y2ggYi9wYWNrYWdlL2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDMy LWF0aDEway1zYXZlLWZpcm13YXJlLWRlYnVnLWxvZy1tZXNzYWdlcy5wYXRjaA0KbmV3IGZpbGUg bW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAuLmQ4MzMyMWYNCi0tLSAvZGV2L251bGwNCisrKyBi L3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAwMzItYXRoMTBrLXNhdmUtZmly bXdhcmUtZGVidWctbG9nLW1lc3NhZ2VzLnBhdGNoDQpAQCAtMCwwICsxLDQyMSBAQA0KK0Zyb206 IEJlbiBHcmVlYXIgPGdyZWVhcmJAY2FuZGVsYXRlY2guY29tPg0KK0RhdGU6IFdlZCwgMjMgT2N0 IDIwMTMgMTU6Mjg6NTQgLTA3MDANCitTdWJqZWN0OiBbUEFUQ0hdIGF0aDEwazogc2F2ZSBmaXJt d2FyZSBkZWJ1ZyBsb2cgbWVzc2FnZXMuDQorDQorVGhleSBtYXkgYmUgZHVtcGVkIHRocm91Z2gg dGhlIGZpcm13YXJlIGR1bXAgZGVidWdmcw0KK2ZpbGUuDQorDQorU2lnbmVkLW9mZi1ieTogQmVu IEdyZWVhciA8Z3JlZWFyYkBjYW5kZWxhdGVjaC5jb20+DQorLS0tDQorIGRyaXZlcnMvbmV0L3dp cmVsZXNzL2F0aC9hdGgxMGsvY29yZS5oICB8IDE4ICsrKysrKw0KKyBkcml2ZXJzL25ldC93aXJl bGVzcy9hdGgvYXRoMTBrL2RlYnVnLmMgfCA5NyArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrLQ0KKyBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2RlYnVnLmggfCAgNSArKw0K KyBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2h3LmggICAgfCAyMSArKysrKysrDQor IGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvcGNpLmMgICB8IDk5ICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKw0KKyBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBr L3dtaS5jICAgfCAxMyArKysrKw0KKyBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dt aS5oICAgfCAgNiArKw0KKyA3IGZpbGVzIGNoYW5nZWQsIDI1NyBpbnNlcnRpb25zKCspLCAyIGRl bGV0aW9ucygtKQ0KKw0KK2RpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRo MTBrL2NvcmUuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvY29yZS5oDQoraW5k ZXggNjExY2E3NmEyMjRkLi4xNGExNzk4NDdhZGIgMTAwNjQ0DQorLS0tIGEvZHJpdmVycy9uZXQv d2lyZWxlc3MvYXRoL2F0aDEway9jb3JlLmgNCisrKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9h dGgvYXRoMTBrL2NvcmUuaA0KK0BAIC0zNTMsNiArMzUzLDIyIEBAIHN0cnVjdCBhdGgxMGtfdmlm X2l0ZXIgew0KKyAJc3RydWN0IGF0aDEwa192aWYgKmFydmlmOw0KKyB9Ow0KKyANCisrLyogVGhp cyB3aWxsIHN0b3JlIGF0IGxlYXN0IHRoZSBsYXN0IDEyOCBlbnRyaWVzLiAgRWFjaCBkYmdsb2cg bWVzc2FnZQ0KKysgKiBpcyBhIG1heCBvZiA3IDMyLWJpdCBpbnRlZ2VycyBpbiBsZW5ndGgsIGJ1 dCB0aGUgbGVuZ3RoIGNhbiBiZSBsZXNzDQorKyAqIHRoYW4gdGhhdCBhcyB3ZWxsLg0KKysgKi8N CisrI2RlZmluZSBBVEgxMEtfREJHTE9HX0RBVEFfTEVOICgxMjggKiA3KQ0KKytzdHJ1Y3QgYXRo MTBrX2RiZ2xvZ19lbnRyeV9zdG9yYWdlIHsNCisrCXUzMiBoZWFkX2lkeDsgLyogV2hlcmUgdG8g d3JpdGUgbmV4dCBjaHVuayBvZiBkYXRhICovDQorKwl1MzIgdGFpbF9pZHg7IC8qIEluZGV4IG9m IGZpcnN0IG1zZyAqLw0KKysJX19sZTMyIGRhdGFbQVRIMTBLX0RCR0xPR19EQVRBX0xFTl07DQor K307DQorKw0KKysvKiBKdXN0IGVub3VnaCBpbmZvIHRvIGRlY29kZSBmaXJtd2FyZSBkZWJ1Zy1s b2cgYXJndW1lbnQgbGVuZ3RoICovDQorKyNkZWZpbmUgREJHTE9HX05VTV9BUkdTX09GRlNFVCAg ICAgICAgICAgMjYNCisrI2RlZmluZSBEQkdMT0dfTlVNX0FSR1NfTUFTSyAgICAgICAgICAgICAw eEZDMDAwMDAwIC8qIEJpdCAyNi0zMSAqLw0KKysjZGVmaW5lIERCR0xPR19OVU1fQVJHU19NQVgg ICAgICAgICAgICAgIDUgLyogZmlybXdhcmUgdG9vbCBjaGFpbiBsaW1pdCAqLw0KKysNCisgLyog dXNlZCBmb3IgY3Jhc2gtZHVtcCBzdG9yYWdlLCBwcm90ZWN0ZWQgYnkgZGF0YS1sb2NrICovDQor IHN0cnVjdCBhdGgxMGtfZndfY3Jhc2hfZGF0YSB7DQorIAlib29sIGNyYXNoZWRfc2luY2VfcmVh ZDsNCitAQCAtMzg0LDYgKzQwMCw4IEBAIHN0cnVjdCBhdGgxMGtfZGVidWcgew0KKyAJdTggaHR0 X21heF9hbXNkdTsNCisgCXU4IGh0dF9tYXhfYW1wZHU7DQorIA0KKysJc3RydWN0IGF0aDEwa19k Ymdsb2dfZW50cnlfc3RvcmFnZSBkYmdsb2dfZW50cnlfZGF0YTsNCisrDQorIAlzdHJ1Y3QgYXRo MTBrX2Z3X2NyYXNoX2RhdGEgKmZ3X2NyYXNoX2RhdGE7DQorIH07DQorIA0KK2RpZmYgLS1naXQg YS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2RlYnVnLmMgYi9kcml2ZXJzL25ldC93 aXJlbGVzcy9hdGgvYXRoMTBrL2RlYnVnLmMNCitpbmRleCBiM2Q2OTRhMzdjNGUuLmU2NzJmY2U1 OGQ5MCAxMDA2NDQNCistLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2RlYnVn LmMNCisrKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2RlYnVnLmMNCitAQCAt MzMsMTAgKzMzLDExIEBADQorIC8qKg0KKyAgKiBlbnVtIGF0aDEwa19md19jcmFzaF9kdW1wX3R5 cGUgLSB0eXBlcyBvZiBkYXRhIGluIHRoZSBkdW1wIGZpbGUNCisgICogQEFUSDEwS19GV19DUkFT SF9EVU1QX1JFR0RVTVA6IFJlZ2lzdGVyIGNyYXNoIGR1bXAgaW4gYmluYXJ5IGZvcm1hdA0KKysg KiBAQVRIMTBLX0ZXX0VSUk9SX0RVTVBfREJHTE9HOiAgUmVjZW50IGZpcm13YXJlIGRlYnVnIGxv ZyBlbnRyaWVzDQorICAqLw0KKyBlbnVtIGF0aDEwa19md19jcmFzaF9kdW1wX3R5cGUgew0KKyAJ QVRIMTBLX0ZXX0NSQVNIX0RVTVBfUkVHSVNURVJTID0gMCwNCistDQorKwlBVEgxMEtfRldfQ1JB U0hfRFVNUF9EQkdMT0cgPSAxLA0KKyAJQVRIMTBLX0ZXX0NSQVNIX0RVTVBfTUFYLA0KKyB9Ow0K KyANCitAQCAtMTA3LDYgKzEwOCwxMiBAQCBzdHJ1Y3QgYXRoMTBrX2R1bXBfZmlsZV9kYXRhIHsN CisgCXU4IGRhdGFbMF07DQorIH0gX19wYWNrZWQ7DQorIA0KKytzdHJ1Y3QgYXRoMTBrX2RiZ2xv Z19lbnRyeV9zdG9yYWdlX3VzZXIgew0KKysJX19sZTMyIGhlYWRfaWR4OyAvKiBXaGVyZSB0byB3 cml0ZSBuZXh0IGNodW5rIG9mIGRhdGEgKi8NCisrCV9fbGUzMiB0YWlsX2lkeDsgLyogSW5kZXgg b2YgZmlyc3QgbXNnICovDQorKwlfX2xlMzIgZGF0YVtBVEgxMEtfREJHTE9HX0RBVEFfTEVOXTsN CisrfSBfX3BhY2tlZDsNCisrDQorIHZvaWQgYXRoMTBrX2luZm8oc3RydWN0IGF0aDEwayAqYXIs IGNvbnN0IGNoYXIgKmZtdCwgLi4uKQ0KKyB7DQorIAlzdHJ1Y3QgdmFfZm9ybWF0IHZhZiA9IHsN CitAQCAtOTA4LDcgKzkxNSw2IEBAIGF0aDEwa19kZWJ1Z19nZXRfbmV3X2Z3X2NyYXNoX2RhdGEo c3RydWN0IGF0aDEwayAqYXIpDQorIA0KKyAJbG9ja2RlcF9hc3NlcnRfaGVsZCgmYXItPmRhdGFf bG9jayk7DQorIA0KKy0JY3Jhc2hfZGF0YS0+Y3Jhc2hlZF9zaW5jZV9yZWFkID0gdHJ1ZTsNCisg CXV1aWRfbGVfZ2VuKCZjcmFzaF9kYXRhLT51dWlkKTsNCisgCWdldG5zdGltZW9mZGF5KCZjcmFz aF9kYXRhLT50aW1lc3RhbXApOw0KKyANCitAQCAtOTE2LDE3ICs5MjIsODcgQEAgYXRoMTBrX2Rl YnVnX2dldF9uZXdfZndfY3Jhc2hfZGF0YShzdHJ1Y3QgYXRoMTBrICphcikNCisgfQ0KKyBFWFBP UlRfU1lNQk9MKGF0aDEwa19kZWJ1Z19nZXRfbmV3X2Z3X2NyYXNoX2RhdGEpOw0KKyANCisrc3Rh dGljIHZvaWQgYXRoMTBrX2RiZ19kcm9wX2RiZ19idWZmZXIoc3RydWN0IGF0aDEwayAqYXIpDQor K3sNCisrCS8qIEZpbmQgbmV4dCBtZXNzYWdlIGJvdW5kYXJ5ICovDQorKwl1MzIgbGdfaGRyOw0K KysJaW50IGFjbnQ7DQorKwlpbnQgdGFpbF9pZHggPSBhci0+ZGVidWcuZGJnbG9nX2VudHJ5X2Rh dGEudGFpbF9pZHg7DQorKwlpbnQgaF9pZHggPSAodGFpbF9pZHggKyAxKSAlIEFUSDEwS19EQkdM T0dfREFUQV9MRU47DQorKw0KKysJbG9ja2RlcF9hc3NlcnRfaGVsZCgmYXItPmRhdGFfbG9jayk7 DQorKw0KKysJLyogTG9nIGhlYWRlciBpcyBzZWNvbmQgMzItYml0IHdvcmQgKi8NCisrCWxnX2hk ciA9IGxlMzJfdG9fY3B1KGFyLT5kZWJ1Zy5kYmdsb2dfZW50cnlfZGF0YS5kYXRhW2hfaWR4XSk7 DQorKw0KKysJYWNudCA9IChsZ19oZHIgJiBEQkdMT0dfTlVNX0FSR1NfTUFTSykgPj4gREJHTE9H X05VTV9BUkdTX09GRlNFVDsNCisrDQorKwlpZiAoYWNudCA+IERCR0xPR19OVU1fQVJHU19NQVgp IHsNCisrCQkvKiBTb21lIHNvcnQgb2YgY29ycnVwdGlvbiBpdCBzZWVtcywgcmVjb3ZlciBhcyBi ZXN0IHdlIGNhbi4gKi8NCisrCQlhdGgxMGtfZXJyKGFyLCAiaW52YWxpZCBkYmdsb2cgYXJnLWNv dW50OiAlaSAlaSAlaVxuIiwNCisrCQkJICAgYWNudCwgYXItPmRlYnVnLmRiZ2xvZ19lbnRyeV9k YXRhLnRhaWxfaWR4LA0KKysJCQkgICBhci0+ZGVidWcuZGJnbG9nX2VudHJ5X2RhdGEuaGVhZF9p ZHgpOw0KKysJCWFyLT5kZWJ1Zy5kYmdsb2dfZW50cnlfZGF0YS50YWlsX2lkeCA9DQorKwkJCWFy LT5kZWJ1Zy5kYmdsb2dfZW50cnlfZGF0YS5oZWFkX2lkeDsNCisrCQlyZXR1cm47DQorKwl9DQor Kw0KKysJLyogTW92ZSBmb3J3YXJkIG92ZXIgdGhlIGFyZ3MgYW5kIHRoZSB0d28gaGVhZGVyIGZp ZWxkcyAqLw0KKysJYXItPmRlYnVnLmRiZ2xvZ19lbnRyeV9kYXRhLnRhaWxfaWR4ID0NCisrCQko dGFpbF9pZHggKyBhY250ICsgMikgJSBBVEgxMEtfREJHTE9HX0RBVEFfTEVOOw0KKyt9DQorKw0K Kyt2b2lkIGF0aDEwa19kYmdfc2F2ZV9md19kYmdfYnVmZmVyKHN0cnVjdCBhdGgxMGsgKmFyLCBf X2xlMzIgKmJ1ZmZlciwgaW50IGxlbikNCisrew0KKysJaW50IGk7DQorKwlpbnQgejsNCisrDQor Kwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZhci0+ZGF0YV9sb2NrKTsNCisrDQorKwl6ID0gYXItPmRl YnVnLmRiZ2xvZ19lbnRyeV9kYXRhLmhlYWRfaWR4Ow0KKysNCisrCS8qIERvbid0IHNhdmUgYW55 IG5ldyBsb2dzIHVudGlsIHVzZXItc3BhY2UgcmVhZHMgdGhpcy4gKi8NCisrCWlmIChhci0+ZGVi dWcuZndfY3Jhc2hfZGF0YSAmJg0KKysJICAgIGFyLT5kZWJ1Zy5md19jcmFzaF9kYXRhLT5jcmFz aGVkX3NpbmNlX3JlYWQpIHsNCisrCQlhdGgxMGtfd2FybihhciwgImRyb3BwaW5nIGRiZyBidWZm ZXIgZHVlIHRvIGNyYXNoIHNpbmNlIHJlYWRcbiIpOw0KKysJCXJldHVybjsNCisrCX0NCisrDQor Kwlmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspIHsNCisrCQlhci0+ZGVidWcuZGJnbG9nX2VudHJ5 X2RhdGEuZGF0YVt6XSA9IGJ1ZmZlcltpXTsNCisrCQl6Kys7DQorKwkJaWYgKHogPj0gQVRIMTBL X0RCR0xPR19EQVRBX0xFTikNCisrCQkJeiA9IDA7DQorKw0KKysJCS8qIElmIHdlIGFyZSBhYm91 dCB0byBvdmVyLXdyaXRlIGFuIG9sZCBtZXNzYWdlLCBtb3ZlIHRoZQ0KKysJCSAqIHRhaWxfaWR4 IHRvIHRoZSBuZXh0IG1lc3NhZ2UuICBJZiBpZHgncyBhcmUgc2FtZSwgd2UNCisrCQkgKiBhcmUg ZW1wdHkuDQorKwkJICovDQorKwkJaWYgKHogPT0gYXItPmRlYnVnLmRiZ2xvZ19lbnRyeV9kYXRh LnRhaWxfaWR4KQ0KKysJCQlhdGgxMGtfZGJnX2Ryb3BfZGJnX2J1ZmZlcihhcik7DQorKw0KKysJ CWFyLT5kZWJ1Zy5kYmdsb2dfZW50cnlfZGF0YS5oZWFkX2lkeCA9IHo7DQorKwl9DQorK30NCisr RVhQT1JUX1NZTUJPTChhdGgxMGtfZGJnX3NhdmVfZndfZGJnX2J1ZmZlcik7DQorKw0KKyBzdGF0 aWMgc3RydWN0IGF0aDEwa19kdW1wX2ZpbGVfZGF0YSAqYXRoMTBrX2J1aWxkX2R1bXBfZmlsZShz dHJ1Y3QgYXRoMTBrICphcikNCisgew0KKyAJc3RydWN0IGF0aDEwa19md19jcmFzaF9kYXRhICpj cmFzaF9kYXRhID0gYXItPmRlYnVnLmZ3X2NyYXNoX2RhdGE7DQorIAlzdHJ1Y3QgYXRoMTBrX2R1 bXBfZmlsZV9kYXRhICpkdW1wX2RhdGE7DQorIAlzdHJ1Y3QgYXRoMTBrX3Rsdl9kdW1wX2RhdGEg KmR1bXBfdGx2Ow0KKysJc3RydWN0IGF0aDEwa19kYmdsb2dfZW50cnlfc3RvcmFnZV91c2VyICpk Ymdsb2dfc3RvcmFnZTsNCisgCWludCBoZHJfbGVuID0gc2l6ZW9mKCpkdW1wX2RhdGEpOw0KKyAJ dW5zaWduZWQgaW50IGxlbiwgc29mYXIgPSAwOw0KKyAJdW5zaWduZWQgY2hhciAqYnVmOw0KKysJ aW50IHRtcDsNCisrDQorKwlCVUlMRF9CVUdfT04oc2l6ZW9mKHN0cnVjdCBhdGgxMGtfZGJnbG9n X2VudHJ5X3N0b3JhZ2UpICE9DQorKwkJICAgICBzaXplb2Yoc3RydWN0IGF0aDEwa19kYmdsb2df ZW50cnlfc3RvcmFnZV91c2VyKSk7DQorIA0KKyAJbGVuID0gaGRyX2xlbjsNCisgCWxlbiArPSBz aXplb2YoKmR1bXBfdGx2KSArIHNpemVvZihjcmFzaF9kYXRhLT5yZWdpc3RlcnMpOw0KKysJbGVu ICs9IHNpemVvZigqZHVtcF90bHYpICsgc2l6ZW9mKGFyLT5kZWJ1Zy5kYmdsb2dfZW50cnlfZGF0 YSk7DQorIA0KKyAJc29mYXIgKz0gaGRyX2xlbjsNCisgDQorQEAgLTk4NSw4ICsxMDYxLDI1IEBA IHN0YXRpYyBzdHJ1Y3QgYXRoMTBrX2R1bXBfZmlsZV9kYXRhICphdGgxMGtfYnVpbGRfZHVtcF9m aWxlKHN0cnVjdCBhdGgxMGsgKmFyKQ0KKyAJICAgICAgIHNpemVvZihjcmFzaF9kYXRhLT5yZWdp c3RlcnMpKTsNCisgCXNvZmFyICs9IHNpemVvZigqZHVtcF90bHYpICsgc2l6ZW9mKGNyYXNoX2Rh dGEtPnJlZ2lzdGVycyk7DQorIA0KKysJLyogR2F0aGVyIGRiZy1sb2cgKi8NCisrCXRtcCA9IHNp emVvZihhci0+ZGVidWcuZGJnbG9nX2VudHJ5X2RhdGEpOw0KKysJZHVtcF90bHYgPSAoc3RydWN0 IGF0aDEwa190bHZfZHVtcF9kYXRhICopKGJ1ZiArIHNvZmFyKTsNCisrCWR1bXBfdGx2LT50eXBl ID0gY3B1X3RvX2xlMzIoQVRIMTBLX0ZXX0NSQVNIX0RVTVBfREJHTE9HKTsNCisrCWR1bXBfdGx2 LT50bHZfbGVuID0gY3B1X3RvX2xlMzIodG1wKTsNCisrCWRiZ2xvZ19zdG9yYWdlID0NCisrCQko c3RydWN0IGF0aDEwa19kYmdsb2dfZW50cnlfc3RvcmFnZV91c2VyICopKGR1bXBfdGx2LT50bHZf ZGF0YSk7DQorKwltZW1jcHkoZGJnbG9nX3N0b3JhZ2UtPmRhdGEsIGFyLT5kZWJ1Zy5kYmdsb2df ZW50cnlfZGF0YS5kYXRhLA0KKysJICAgICAgIHNpemVvZihkYmdsb2dfc3RvcmFnZS0+ZGF0YSkp Ow0KKysJZGJnbG9nX3N0b3JhZ2UtPmhlYWRfaWR4ID0NCisrCQljcHVfdG9fbGUzMihhci0+ZGVi dWcuZGJnbG9nX2VudHJ5X2RhdGEuaGVhZF9pZHgpOw0KKysJZGJnbG9nX3N0b3JhZ2UtPnRhaWxf aWR4ID0NCisrCQljcHVfdG9fbGUzMihhci0+ZGVidWcuZGJnbG9nX2VudHJ5X2RhdGEudGFpbF9p ZHgpOw0KKysNCisrCXNvZmFyICs9IHNpemVvZigqZHVtcF90bHYpICsgdG1wOw0KKysNCisgCWFy LT5kZWJ1Zy5md19jcmFzaF9kYXRhLT5jcmFzaGVkX3NpbmNlX3JlYWQgPSBmYWxzZTsNCisgDQor KwlXQVJOX09OKHNvZmFyICE9IGxlbik7DQorIAlzcGluX3VubG9ja19iaCgmYXItPmRhdGFfbG9j ayk7DQorIA0KKyAJcmV0dXJuIGR1bXBfZGF0YTsNCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQv d2lyZWxlc3MvYXRoL2F0aDEway9kZWJ1Zy5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0 aDEway9kZWJ1Zy5oDQoraW5kZXggZjYxYjJlNmQ5YzVkLi42YTJlMDAzNDhiYWIgMTAwNjQ0DQor LS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9kZWJ1Zy5oDQorKysrIGIvZHJp dmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9kZWJ1Zy5oDQorQEAgLTE0OCw2ICsxNDgsNyBA QCB2b2lkIGF0aDEwa19kYmdfZHVtcChzdHJ1Y3QgYXRoMTBrICphciwNCisgCQkgICAgIGVudW0g YXRoMTBrX2RlYnVnX21hc2sgbWFzaywNCisgCQkgICAgIGNvbnN0IGNoYXIgKm1zZywgY29uc3Qg Y2hhciAqcHJlZml4LA0KKyAJCSAgICAgY29uc3Qgdm9pZCAqYnVmLCBzaXplX3QgbGVuKTsNCisr dm9pZCBhdGgxMGtfZGJnX3NhdmVfZndfZGJnX2J1ZmZlcihzdHJ1Y3QgYXRoMTBrICphciwgX19s ZTMyICpidWZmZXIsIGludCBsZW4pOw0KKyAjZWxzZSAvKiBDUFRDRkdfQVRIMTBLX0RFQlVHICov DQorIA0KKyBzdGF0aWMgaW5saW5lIGludCBhdGgxMGtfZGJnKHN0cnVjdCBhdGgxMGsgKmFyLA0K K0BAIC0xNjMsNiArMTY0LDEwIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBhdGgxMGtfZGJnX2R1bXAo c3RydWN0IGF0aDEwayAqYXIsDQorIAkJCQkgICBjb25zdCB2b2lkICpidWYsIHNpemVfdCBsZW4p DQorIHsNCisgfQ0KKytzdGF0aWMgaW5saW5lIHZvaWQgYXRoMTBrX2RiZ19zYXZlX2Z3X2RiZ19i dWZmZXIoc3RydWN0IGF0aDEwayAqYXIsDQorKwkJCQkJCSBfX2xlMzIgKmJ1ZmZlciwgaW50IGxl bikNCisrew0KKyt9DQorICNlbmRpZiAvKiBDUFRDRkdfQVRIMTBLX0RFQlVHICovDQorIA0KKyBp bnQgYXRoMTBrX3JlZnJlc2hfcGVlcl9zdGF0cyhzdHJ1Y3QgYXRoMTBrICphcik7DQorZGlmZiAt LWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvaHcuaCBiL2RyaXZlcnMvbmV0 L3dpcmVsZXNzL2F0aC9hdGgxMGsvaHcuaA0KK2luZGV4IGIzMzRmZjY1NDIzOC4uM2UxMTgwMDA4 OTcxIDEwMDY0NA0KKy0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvaHcuaA0K KysrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvaHcuaA0KK0BAIC01NDEsNCAr NTQxLDI1IEBAIGVudW0gYXRoMTBrX2h3X3JhdGVfY2NrIHsNCisgDQorICNkZWZpbmUgUlRDX1NU QVRFX1ZfR0VUKHgpICgoKHgpICYgUlRDX1NUQVRFX1ZfTUFTSykgPj4gUlRDX1NUQVRFX1ZfTFNC KQ0KKyANCisrLyogVGFyZ2V0IGRlYnVnIGxvZyByZWxhdGVkIGRlZmluZXMgYW5kIHN0cnVjdHMg Ki8NCisrDQorKy8qIFRhcmdldCBpcyAzMi1iaXQgQ1BVLCBzbyB3ZSBqdXN0IHVzZSB1MzIgZm9y DQorKyAqIHRoZSBwb2ludGVycy4gIFRoZSBtZW1vcnkgc3BhY2UgaXMgcmVsYXRpdmUgdG8gdGhl DQorKyAqIHRhcmdldCwgbm90IHRoZSBob3N0LiAgVmFsdWVzIGFyZSBjb252ZXJ0ZWQgdG8gaG9z dA0KKysgKiBieXRlIG9yZGVyIHdoZW4gcmVhZGluZyBmcm9tIGZpcm13YXJlLg0KKysgKi8NCisr c3RydWN0IGF0aDEwa19md19kYmdsb2dfYnVmIHsNCisrCV9fbGUzMiBuZXh0OyAvKiBwb2ludGVy IHRvIGF0aDEwa19md19kYmdsb2dfYnVmLiAqLw0KKysJX19sZTMyIGJ1ZmZlcjsgLyogcG9pbnRl ciB0byB1OCBidWZmZXIgKi8NCisrCV9fbGUzMiBidWZzaXplOw0KKysJX19sZTMyIGxlbmd0aDsN CisrCV9fbGUzMiBjb3VudDsNCisrCV9fbGUzMiBmcmVlOw0KKyt9IF9fcGFja2VkOw0KKysNCisr c3RydWN0IGF0aDEwa19md19kYmdsb2dfaGRyIHsNCisrCV9fbGUzMiBkYnVmOyAvKiBwb2ludGVy IHRvIGF0aDEwa19md19kYmdsb2dfYnVmICovDQorKwlfX2xlMzIgZHJvcHBlZDsNCisrfSBfX3Bh Y2tlZDsNCisrDQorICNlbmRpZiAvKiBfSFdfSF8gKi8NCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvd2lyZWxlc3MvYXRoL2F0aDEway9wY2kuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9h dGgxMGsvcGNpLmMNCitpbmRleCBlYTY1NmUwMTFhOTYuLmI1NmQ3YTk0OWJlMSAxMDA2NDQNCist LS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3BjaS5jDQorKysrIGIvZHJpdmVy cy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9wY2kuYw0KK0BAIC0xMTgzLDYgKzExODMsMTAyIEBA IHN0YXRpYyB2b2lkIGF0aDEwa19wY2lfZHVtcF9yZWdpc3RlcnMoc3RydWN0IGF0aDEwayAqYXIs DQorIAkJY3Jhc2hfZGF0YS0+cmVnaXN0ZXJzW2ldID0gcmVnX2R1bXBfdmFsdWVzW2ldOw0KKyB9 DQorIA0KKysvKioNCisrICogUmVhZCBhbnkgbm90LXlldC1kZWxpdmVyZWQgZGVidWctbG9nIGJ1 ZmZlcnMgb24gdGhlIHRhcmdldA0KKysgKiBhbmQgc2F2ZSB0aGVtIHRvIHN0b3JhZ2UgaW4gdGhl IGhvc3QgZHJpdmVyLiAgVHlwaWNhbGx5DQorKyAqIG9ubHkgZG9uZSBvbiBjcmFzaCwgYXMgZmly bXdhcmUgd2lsbCBub3JtYWxseSBkZWxpdmVyDQorKyAqIGxvZ3MgcGVyaW9kaWNhbGx5IG9uIGl0 cyBvd24gaWYgaXQgaXMgZnVuY3Rpb25pbmcNCisrICogcHJvcGVybHkuDQorKyAqLw0KKytzdGF0 aWMgdm9pZCBhdGgxMGtfcGNpX2R1bXBfZGJnbG9nKHN0cnVjdCBhdGgxMGsgKmFyKQ0KKyt7DQor KwlzdHJ1Y3QgYXRoMTBrX2Z3X2RiZ2xvZ19oZHIgZGJnX2hkcjsNCisrCXUzMiBkYnVmcDsgLyog cG9pbnRlciBpbiB0YXJnZXQgbWVtb3J5IHNwYWNlICovDQorKwlzdHJ1Y3QgYXRoMTBrX2Z3X2Ri Z2xvZ19idWYgZGJ1ZjsNCisrCXU4ICpidWZmZXI7DQorKwlpbnQgcmV0Ow0KKysJaW50IGk7DQor KwlpbnQgbGVuOw0KKysNCisrCXJldCA9IGF0aDEwa19wY2lfZGlhZ19yZWFkX2hpKGFyLCAmZGJn X2hkciwgaGlfZGJnbG9nX2hkciwNCisrCQkJCSAgICAgIHNpemVvZihkYmdfaGRyKSk7DQorKwlp ZiAocmV0ICE9IDApIHsNCisrCQlhdGgxMGtfZXJyKGFyLCAiZmFpbGVkIHRvIGR1bXAgZGVidWcg bG9nIGFyZWE6ICVkXG4iLCByZXQpOw0KKysJCXJldHVybjsNCisrCX0NCisrDQorKwlhdGgxMGtf ZGJnKGFyLCBBVEgxMEtfREJHX1BDSSwNCisrCQkgICAiZGVidWcgbG9nIGhlYWRlciwgZGJ1Zjog MHgleCAgZHJvcHBlZDogJWlcbiIsDQorKwkJICAgbGUzMl90b19jcHUoZGJnX2hkci5kYnVmKSwg bGUzMl90b19jcHUoZGJnX2hkci5kcm9wcGVkKSk7DQorKwlkYnVmcCA9IGxlMzJfdG9fY3B1KGRi Z19oZHIuZGJ1Zik7DQorKw0KKysJLyogaSBpcyBmb3IgbG9nZ2luZyBwdXJwb3NlcyBhbmQgc2Fu aXR5IGNoZWNrIGluIGNhc2UgZmlybXdhcmUgYnVmZmVycw0KKysJICogYXJlIGNvcnJ1cHRlZCBh bmQgd2lsbCBub3QgcHJvcGVybHkgdGVybWluYXRlIHRoZSBsaXN0Lg0KKysJICogSW4gc3RhbmRh cmQgZmlybXdhcmUsIGl0IGFwcGVhcnMgdGhlcmUgYXJlIG5vIG1vcmUgdGhhbiAyDQorKwkgKiBi dWZmZXJzLCBzbyAxMCBzaG91bGQgYmUgc2FmZSB1cHBlciBsaW1pdCBldmVuIGlmIGZpcm13YXJl DQorKwkgKiBjaGFuZ2VzIHF1aXRlIGEgYml0Lg0KKysJICovDQorKwlpID0gMDsNCisrCXdoaWxl IChkYnVmcCAmJiBpIDwgMTApIHsNCisrCQlyZXQgPSBhdGgxMGtfcGNpX2RpYWdfcmVhZF9tZW0o YXIsIGRidWZwLCAmZGJ1Ziwgc2l6ZW9mKGRidWYpKTsNCisrCQlpZiAocmV0ICE9IDApIHsNCisr CQkJYXRoMTBrX2VycihhciwgImZhaWxlZCB0byByZWFkIGRlYnVnIGxvZyBhcmVhOiAlZCAoYWRk ciAweCV4KVxuIiwNCisrCQkJCSAgIHJldCwgZGJ1ZnApOw0KKysJCQlyZXR1cm47DQorKwkJfQ0K KysNCisrCQlsZW4gPSBsZTMyX3RvX2NwdShkYnVmLmxlbmd0aCk7DQorKw0KKysJCWF0aDEwa19k YmcoYXIsIEFUSDEwS19EQkdfUENJLA0KKysJCQkgICAiWyVpXSBuZXh0OiAweCV4IGJ1ZjogMHgl eCBzejogJWkgbGVuOiAlaSBjb3VudDogJWkgZnJlZTogJWlcbiIsDQorKwkJCSAgIGksIGxlMzJf dG9fY3B1KGRidWYubmV4dCksIGxlMzJfdG9fY3B1KGRidWYuYnVmZmVyKSwNCisrCQkJICAgbGUz Ml90b19jcHUoZGJ1Zi5idWZzaXplKSwgbGVuLA0KKysJCQkgICBsZTMyX3RvX2NwdShkYnVmLmNv dW50KSwgbGUzMl90b19jcHUoZGJ1Zi5mcmVlKSk7DQorKwkJaWYgKGRidWYuYnVmZmVyID09IDAg fHwgbGVuID09IDApDQorKwkJCWdvdG8gbmV4dDsNCisrDQorKwkJLyogUGljayBhcmJpdHJhcnkg dXBwZXIgYm91bmQgaW4gY2FzZSBmaXJtd2FyZSBpcyBjb3JydXB0ZWQgZm9yDQorKwkJICogd2hh dGV2ZXIgcmVhc29uLg0KKysJCSAqLw0KKysJCWlmIChsZW4gPiA0MDk2KSB7DQorKwkJCWF0aDEw a19lcnIoYXIsDQorKwkJCQkgICAiZGVidWdsb2cgYnVmIGxlbmd0aCBpcyBvdXQgb2YgYm91bmRz OiAlZFxuIiwNCisrCQkJCSAgIGxlbik7DQorKwkJCS8qIERvIG5vdCB0cnVzdCB0aGUgbmV4dCBw b2ludGVyIGVpdGhlci4uLiAqLw0KKysJCQlyZXR1cm47DQorKwkJfQ0KKysNCisrCQlidWZmZXIg PSBrbWFsbG9jKGxlbiwgR0ZQX0FUT01JQyk7DQorKw0KKysJCWlmICghYnVmZmVyKQ0KKysJCQln b3RvIG5leHQ7DQorKw0KKysJCXJldCA9IGF0aDEwa19wY2lfZGlhZ19yZWFkX21lbShhciwgbGUz Ml90b19jcHUoZGJ1Zi5idWZmZXIpLA0KKysJCQkJCSAgICAgICBidWZmZXIsIGxlbik7DQorKwkJ aWYgKHJldCAhPSAwKSB7DQorKwkJCWF0aDEwa19lcnIoYXIsICJmYWlsZWQgdG8gcmVhZCBkZWJ1 ZyBsb2cgYnVmZmVyOiAlZCAoYWRkciAweCV4KVxuIiwNCisrCQkJCSAgIHJldCwgbGUzMl90b19j cHUoZGJ1Zi5idWZmZXIpKTsNCisrCQkJa2ZyZWUoYnVmZmVyKTsNCisrCQkJcmV0dXJuOw0KKysJ CX0NCisrDQorKwkJV0FSTl9PTihsZW4gJiAweDMpOw0KKysNCisrCQlhdGgxMGtfZGJnX3NhdmVf ZndfZGJnX2J1ZmZlcihhciwgKF9fbGUzMiAqKShidWZmZXIpLCBsZW4gPj4gMik7DQorKwkJa2Zy ZWUoYnVmZmVyKTsNCisrDQorK25leHQ6DQorKwkJZGJ1ZnAgPSBsZTMyX3RvX2NwdShkYnVmLm5l eHQpOw0KKysJCWlmIChkYnVmcCA9PSBsZTMyX3RvX2NwdShkYmdfaGRyLmRidWYpKSB7DQorKwkJ CS8qIEl0IGlzIGEgY2lyY3VsYXIgYnVmZmVyIGl0IHNlZW1zLCBiYWlsIGlmIG5leHQNCisrCQkJ ICogaXMgaGVhZA0KKysJCQkgKi8NCisrCQkJYnJlYWs7DQorKwkJfQ0KKysJCWkrKzsNCisrCX0g LyogV2hpbGUgd2UgaGF2ZSBhIGRlYnVnIGJ1ZmZlciB0byByZWFkICovDQorK30NCisrDQorIHN0 YXRpYyB2b2lkIGF0aDEwa19wY2lfZndfY3Jhc2hlZF9kdW1wKHN0cnVjdCBhdGgxMGsgKmFyKQ0K KyB7DQorIAlzdHJ1Y3QgYXRoMTBrX2Z3X2NyYXNoX2RhdGEgKmNyYXNoX2RhdGE7DQorQEAgLTEy MDIsNiArMTI5OCw5IEBAIHN0YXRpYyB2b2lkIGF0aDEwa19wY2lfZndfY3Jhc2hlZF9kdW1wKHN0 cnVjdCBhdGgxMGsgKmFyKQ0KKyAJYXRoMTBrX2VycihhciwgImZpcm13YXJlIGNyYXNoZWQhICh1 dWlkICVzKVxuIiwgdXVpZCk7DQorIAlhdGgxMGtfcHJpbnRfZHJpdmVyX2luZm8oYXIpOw0KKyAJ YXRoMTBrX3BjaV9kdW1wX3JlZ2lzdGVycyhhciwgY3Jhc2hfZGF0YSk7DQorKwlhdGgxMGtfcGNp X2R1bXBfZGJnbG9nKGFyKTsNCisrCWlmIChjcmFzaF9kYXRhKQ0KKysJCWNyYXNoX2RhdGEtPmNy YXNoZWRfc2luY2VfcmVhZCA9IHRydWU7DQorIA0KKyAJc3Bpbl91bmxvY2tfYmgoJmFyLT5kYXRh X2xvY2spOw0KKyANCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEw ay93bWkuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLmMNCitpbmRleCA3 N2U0NTFjYzUzYTcuLjc1ZTJmZDRkZWRiNCAxMDA2NDQNCistLS0gYS9kcml2ZXJzL25ldC93aXJl bGVzcy9hdGgvYXRoMTBrL3dtaS5jDQorKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0 aDEway93bWkuYw0KK0BAIC0xNjcwLDEwICsxNjcwLDIzIEBAIHZvaWQgYXRoMTBrX3dtaV9ldmVu dF9lY2hvKHN0cnVjdCBhdGgxMGsgKmFyLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQ0KKyANCisgaW50 IGF0aDEwa193bWlfZXZlbnRfZGVidWdfbWVzZyhzdHJ1Y3QgYXRoMTBrICphciwgc3RydWN0IHNr X2J1ZmYgKnNrYikNCisgew0KKysJc3RydWN0IGF0aDEwa19md19kYmdsb2dfcmVwb3J0ICpldjsN CisrDQorIAlhdGgxMGtfZGJnKGFyLCBBVEgxMEtfREJHX1dNSSwgIndtaSBldmVudCBkZWJ1ZyBt ZXNnIGxlbiAlZFxuIiwNCisgCQkgICBza2ItPmxlbik7DQorIA0KKyAJdHJhY2VfYXRoMTBrX3dt aV9kYmdsb2coYXIsIHNrYi0+ZGF0YSwgc2tiLT5sZW4pOw0KKysJZXYgPSAoc3RydWN0IGF0aDEw a19md19kYmdsb2dfcmVwb3J0ICopc2tiLT5kYXRhOw0KKysNCisrCXNwaW5fbG9ja19iaCgmYXIt PmRhdGFfbG9jayk7DQorKwkvKiBGaXJzdCA0IGJ5dGVzIGFyZSBhIG1lc3NhZ2VzLWRyb3BwZWQt ZHVlLXRvLW92ZXJmbG93IGNvdW50ZXIsDQorKwkgKiBhbmQgc2hvdWxkIG5vdCBiZSByZWNvcmRl ZCBpbiB0aGUgZGJnbG9nIGJ1ZmZlciwgc28gd2Ugc2tpcA0KKysJICogdGhlbS4NCisrCSAqLw0K KysJV0FSTl9PTihza2ItPmxlbiAmIDB4Myk7DQorKwlhdGgxMGtfZGJnX3NhdmVfZndfZGJnX2J1 ZmZlcihhciwgZXYtPm1lc3NhZ2VzLA0KKysJCQkJICAgICAgKHNrYi0+bGVuIC0gNCkvc2l6ZW9m KF9fbGUzMikpOw0KKysJc3Bpbl91bmxvY2tfYmgoJmFyLT5kYXRhX2xvY2spOw0KKyANCisgCXJl dHVybiAwOw0KKyB9DQorZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgx MGsvd21pLmggYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS5oDQoraW5kZXgg Y2Y0NGEzZDA4MGEzLi4xYjRiMDE5YTgxMDIgMTAwNjQ0DQorLS0tIGEvZHJpdmVycy9uZXQvd2ly ZWxlc3MvYXRoL2F0aDEway93bWkuaA0KKysrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9h dGgxMGsvd21pLmgNCitAQCAtNDg4NCw2ICs0ODg0LDEyIEBAIHN0cnVjdCB3bWlfc3ZjX3JkeV9l dl9hcmcgew0KKyAJY29uc3Qgc3RydWN0IHdsYW5faG9zdF9tZW1fcmVxICptZW1fcmVxc1tXTUlf TUFYX01FTV9SRVFTXTsNCisgfTsNCisgDQorK3N0cnVjdCBhdGgxMGtfZndfZGJnbG9nX3JlcG9y dCB7DQorKwlfX2xlMzIgZHJvcHBlZF9jb3VudDsNCisrCV9fbGUzMiBtZXNzYWdlc1tdOw0KKyt9 IF9fcGFja2VkOw0KKysNCisrDQorIHN0cnVjdCB3bWlfcmR5X2V2X2FyZyB7DQorIAlfX2xlMzIg c3dfdmVyc2lvbjsNCisgCV9fbGUzMiBhYmlfdmVyc2lvbjsNCmRpZmYgLS1naXQgYS9wYWNrYWdl L2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDMzLWF0aDEway1zYXZlLWZpcm13YXJlLXN0 YWNrcy11cG9uLWZpcm13YXJlLWNyYXNoLnBhdGNoIGIvcGFja2FnZS9rZXJuZWwvbWFjODAyMTEv cGF0Y2hlcy85OTktMDAzMy1hdGgxMGstc2F2ZS1maXJtd2FyZS1zdGFja3MtdXBvbi1maXJtd2Fy ZS1jcmFzaC5wYXRjaA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAuLjRkZTY2 MzUNCi0tLSAvZGV2L251bGwNCisrKyBiL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMv OTk5LTAwMzMtYXRoMTBrLXNhdmUtZmlybXdhcmUtc3RhY2tzLXVwb24tZmlybXdhcmUtY3Jhc2gu cGF0Y2gNCkBAIC0wLDAgKzEsMjAyIEBADQorRnJvbTogQmVuIEdyZWVhciA8Z3JlZWFyYkBjYW5k ZWxhdGVjaC5jb20+DQorRGF0ZTogVGh1LCAyOCBBdWcgMjAxNCAwOToyNTozOSAtMDcwMA0KK1N1 YmplY3Q6IFtQQVRDSF0gYXRoMTBrOiBzYXZlIGZpcm13YXJlIHN0YWNrcyB1cG9uIGZpcm13YXJl IGNyYXNoDQorDQorU2hvdWxkIGhlbHAgZGVidWcgZmlybXdhcmUgY3Jhc2hlcywgYW5kIGdpdmUg dXNlcnMgYSB3YXkNCit0byBwcm92aWRlIHNvbWUgdXNlZnVsIGRlYnVnIHJlcG9ydHMgdG8gZmly bXdhcmUgZGV2ZWxvcGVycy4NCisNCitTaWduZWQtb2ZmLWJ5OiBCZW4gR3JlZWFyIDxncmVlYXJi QGNhbmRlbGF0ZWNoLmNvbT4NCitTaWduZWQtb2ZmLWJ5OiBLYWxsZSBWYWxvIDxrdmFsb0BxY2Eu cXVhbGNvbW0uY29tPg0KKy0tLQ0KKyBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2Nv cmUuaCAgfCAgNCArKysNCisgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9kZWJ1Zy5j IHwgMjkgKysrKysrKysrKysrKysrKystDQorIGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgx MGsvaHcuaCAgICB8ICAyICsrDQorIGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvcGNp LmMgICB8IDUyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KKyA0IGZpbGVzIGNo YW5nZWQsIDg2IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkNCisNCitkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9jb3JlLmggYi9kcml2ZXJzL25ldC93aXJl bGVzcy9hdGgvYXRoMTBrL2NvcmUuaA0KK2luZGV4IDE0YTE3OTg0N2FkYi4uZDUwNDU2NmQzNGVh IDEwMDY0NA0KKy0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvY29yZS5oDQor KysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9jb3JlLmgNCitAQCAtMzc2LDYg KzM3NiwxMCBAQCBzdHJ1Y3QgYXRoMTBrX2Z3X2NyYXNoX2RhdGEgew0KKyAJdXVpZF9sZSB1dWlk Ow0KKyAJc3RydWN0IHRpbWVzcGVjIHRpbWVzdGFtcDsNCisgCV9fbGUzMiByZWdpc3RlcnNbUkVH X0RVTVBfQ09VTlRfUUNBOTg4WF07DQorKwlfX2xlMzIgc3RhY2tfYnVmW0FUSDEwS19GV19TVEFD S19TSVpFIC8gc2l6ZW9mKF9fbGUzMildOw0KKysJX19sZTMyIGV4Y19zdGFja19idWZbQVRIMTBL X0ZXX1NUQUNLX1NJWkUgLyBzaXplb2YoX19sZTMyKV07DQorKwlfX2xlMzIgc3RhY2tfYWRkcjsN CisrCV9fbGUzMiBleGNfc3RhY2tfYWRkcjsNCisgfTsNCisgDQorIHN0cnVjdCBhdGgxMGtfZGVi dWcgew0KK2RpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2RlYnVn LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2RlYnVnLmMNCitpbmRleCBlNjcy ZmNlNThkOTAuLmUyYjdlYTlmM2FhOCAxMDA2NDQNCistLS0gYS9kcml2ZXJzL25ldC93aXJlbGVz cy9hdGgvYXRoMTBrL2RlYnVnLmMNCisrKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRo MTBrL2RlYnVnLmMNCitAQCAtMzQsMTAgKzM0LDE1IEBADQorICAqIGVudW0gYXRoMTBrX2Z3X2Ny YXNoX2R1bXBfdHlwZSAtIHR5cGVzIG9mIGRhdGEgaW4gdGhlIGR1bXAgZmlsZQ0KKyAgKiBAQVRI MTBLX0ZXX0NSQVNIX0RVTVBfUkVHRFVNUDogUmVnaXN0ZXIgY3Jhc2ggZHVtcCBpbiBiaW5hcnkg Zm9ybWF0DQorICAqIEBBVEgxMEtfRldfRVJST1JfRFVNUF9EQkdMT0c6ICBSZWNlbnQgZmlybXdh cmUgZGVidWcgbG9nIGVudHJpZXMNCisrICogQEFUSDEwS19GV19DUkFTSF9EVU1QX1NUQUNLOiAg IFN0YWNrIG1lbW9yeSBjb250ZW50cy4NCisrICogQEFUSDEwS19GV19DUkFTSF9EVU1QX0VYQ19T VEFDSzogICBFeGNlcHRpb24gc3RhY2sgbWVtb3J5IGNvbnRlbnRzLg0KKyAgKi8NCisgZW51bSBh dGgxMGtfZndfY3Jhc2hfZHVtcF90eXBlIHsNCisgCUFUSDEwS19GV19DUkFTSF9EVU1QX1JFR0lT VEVSUyA9IDAsDQorIAlBVEgxMEtfRldfQ1JBU0hfRFVNUF9EQkdMT0cgPSAxLA0KKysJQVRIMTBL X0ZXX0NSQVNIX0RVTVBfU1RBQ0sgPSAyLA0KKysJQVRIMTBLX0ZXX0NSQVNIX0RVTVBfRVhDX1NU QUNLID0gMywNCisrDQorIAlBVEgxMEtfRldfQ1JBU0hfRFVNUF9NQVgsDQorIH07DQorIA0KK0BA IC0xMDEsOCArMTA2LDExIEBAIHN0cnVjdCBhdGgxMGtfZHVtcF9maWxlX2RhdGEgew0KKyAJLyog VkVSTUFHSUNfU1RSSU5HICovDQorIAljaGFyIGtlcm5lbF92ZXJbNjRdOw0KKyANCisrCV9fbGUz MiBzdGFja19hZGRyOw0KKysJX19sZTMyIGV4Y19zdGFja19hZGRyOw0KKysNCisgCS8qIHJvb20g Zm9yIGdyb3d0aCB3L291dCBjaGFuZ2luZyBiaW5hcnkgZm9ybWF0ICovDQorLQl1OCB1bnVzZWRb MTI4XTsNCisrCXU4IHVudXNlZFsxMjBdOw0KKyANCisgCS8qIHN0cnVjdCBhdGgxMGtfdGx2X2R1 bXBfZGF0YSArIG1vcmUgKi8NCisgCXU4IGRhdGFbMF07DQorQEAgLTEwMDMsNiArMTAxMSw4IEBA IHN0YXRpYyBzdHJ1Y3QgYXRoMTBrX2R1bXBfZmlsZV9kYXRhICphdGgxMGtfYnVpbGRfZHVtcF9m aWxlKHN0cnVjdCBhdGgxMGsgKmFyKQ0KKyAJbGVuID0gaGRyX2xlbjsNCisgCWxlbiArPSBzaXpl b2YoKmR1bXBfdGx2KSArIHNpemVvZihjcmFzaF9kYXRhLT5yZWdpc3RlcnMpOw0KKyAJbGVuICs9 IHNpemVvZigqZHVtcF90bHYpICsgc2l6ZW9mKGFyLT5kZWJ1Zy5kYmdsb2dfZW50cnlfZGF0YSk7 DQorKwlsZW4gKz0gc2l6ZW9mKCpkdW1wX3RsdikgKyBzaXplb2YoY3Jhc2hfZGF0YS0+c3RhY2tf YnVmKTsNCisrCWxlbiArPSBzaXplb2YoKmR1bXBfdGx2KSArIHNpemVvZihjcmFzaF9kYXRhLT5l eGNfc3RhY2tfYnVmKTsNCisgDQorIAlzb2ZhciArPSBoZHJfbGVuOw0KKyANCitAQCAtMTA0Miw2 ICsxMDUyLDggQEAgc3RhdGljIHN0cnVjdCBhdGgxMGtfZHVtcF9maWxlX2RhdGEgKmF0aDEwa19i dWlsZF9kdW1wX2ZpbGUoc3RydWN0IGF0aDEwayAqYXIpDQorIAlkdW1wX2RhdGEtPmh0X2NhcF9p bmZvID0gY3B1X3RvX2xlMzIoYXItPmh0X2NhcF9pbmZvKTsNCisgCWR1bXBfZGF0YS0+dmh0X2Nh cF9pbmZvID0gY3B1X3RvX2xlMzIoYXItPnZodF9jYXBfaW5mbyk7DQorIAlkdW1wX2RhdGEtPm51 bV9yZl9jaGFpbnMgPSBjcHVfdG9fbGUzMihhci0+bnVtX3JmX2NoYWlucyk7DQorKwlkdW1wX2Rh dGEtPnN0YWNrX2FkZHIgPSBjcHVfdG9fbGUzMihjcmFzaF9kYXRhLT5zdGFja19hZGRyKTsNCisr CWR1bXBfZGF0YS0+ZXhjX3N0YWNrX2FkZHIgPSBjcHVfdG9fbGUzMihjcmFzaF9kYXRhLT5leGNf c3RhY2tfYWRkcik7DQorIA0KKyAJc3RybGNweShkdW1wX2RhdGEtPmZ3X3ZlciwgYXItPmh3LT53 aXBoeS0+ZndfdmVyc2lvbiwNCisgCQlzaXplb2YoZHVtcF9kYXRhLT5md192ZXIpKTsNCitAQCAt MTA3NCw3ICsxMDg2LDIyIEBAIHN0YXRpYyBzdHJ1Y3QgYXRoMTBrX2R1bXBfZmlsZV9kYXRhICph dGgxMGtfYnVpbGRfZHVtcF9maWxlKHN0cnVjdCBhdGgxMGsgKmFyKQ0KKyAJCWNwdV90b19sZTMy KGFyLT5kZWJ1Zy5kYmdsb2dfZW50cnlfZGF0YS5oZWFkX2lkeCk7DQorIAlkYmdsb2dfc3RvcmFn ZS0+dGFpbF9pZHggPQ0KKyAJCWNwdV90b19sZTMyKGFyLT5kZWJ1Zy5kYmdsb2dfZW50cnlfZGF0 YS50YWlsX2lkeCk7DQorKwlzb2ZhciArPSBzaXplb2YoKmR1bXBfdGx2KSArIHRtcDsNCisgDQor KwkvKiBHYXRoZXIgZmlybXdhcmUgc3RhY2sgZHVtcCAqLw0KKysJdG1wID0gc2l6ZW9mKGNyYXNo X2RhdGEtPnN0YWNrX2J1Zik7DQorKwlkdW1wX3RsdiA9IChzdHJ1Y3QgYXRoMTBrX3Rsdl9kdW1w X2RhdGEgKikoYnVmICsgc29mYXIpOw0KKysJZHVtcF90bHYtPnR5cGUgPSBjcHVfdG9fbGUzMihB VEgxMEtfRldfQ1JBU0hfRFVNUF9TVEFDSyk7DQorKwlkdW1wX3Rsdi0+dGx2X2xlbiA9IGNwdV90 b19sZTMyKHRtcCk7DQorKwltZW1jcHkoZHVtcF90bHYtPnRsdl9kYXRhLCBjcmFzaF9kYXRhLT5z dGFja19idWYsIHRtcCk7DQorKwlzb2ZhciArPSBzaXplb2YoKmR1bXBfdGx2KSArIHRtcDsNCisr DQorKwkvKiBHYXRoZXIgZmlybXdhcmUgZXhjZXB0aW9uIHN0YWNrIGR1bXAgKi8NCisrCXRtcCA9 IHNpemVvZihjcmFzaF9kYXRhLT5leGNfc3RhY2tfYnVmKTsNCisrCWR1bXBfdGx2ID0gKHN0cnVj dCBhdGgxMGtfdGx2X2R1bXBfZGF0YSAqKShidWYgKyBzb2Zhcik7DQorKwlkdW1wX3Rsdi0+dHlw ZSA9IGNwdV90b19sZTMyKEFUSDEwS19GV19DUkFTSF9EVU1QX0VYQ19TVEFDSyk7DQorKwlkdW1w X3Rsdi0+dGx2X2xlbiA9IGNwdV90b19sZTMyKHRtcCk7DQorKwltZW1jcHkoZHVtcF90bHYtPnRs dl9kYXRhLCBjcmFzaF9kYXRhLT5leGNfc3RhY2tfYnVmLCB0bXApOw0KKyAJc29mYXIgKz0gc2l6 ZW9mKCpkdW1wX3RsdikgKyB0bXA7DQorIA0KKyAJYXItPmRlYnVnLmZ3X2NyYXNoX2RhdGEtPmNy YXNoZWRfc2luY2VfcmVhZCA9IGZhbHNlOw0KK2RpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJl bGVzcy9hdGgvYXRoMTBrL2h3LmggYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2h3 LmgNCitpbmRleCAzZTExODAwMDg5NzEuLmI2ZjMxZWE1NTc0YSAxMDA2NDQNCistLS0gYS9kcml2 ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2h3LmgNCisrKysgYi9kcml2ZXJzL25ldC93aXJl bGVzcy9hdGgvYXRoMTBrL2h3LmgNCitAQCAtOTAsNiArOTAsOCBAQCBlbnVtIHFjYTYxNzRfY2hp cF9pZF9yZXYgew0KKyANCisgI2RlZmluZSBRQ0E5ODhYX0NBTF9EQVRBX0xFTgkJMjExNg0KKyAN CisrI2RlZmluZSBBVEgxMEtfRldfU1RBQ0tfU0laRSA0MDk2DQorKw0KKyBzdHJ1Y3QgYXRoMTBr X2Z3X2llIHsNCisgCV9fbGUzMiBpZDsNCisgCV9fbGUzMiBsZW47DQorZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvcGNpLmMgYi9kcml2ZXJzL25ldC93aXJlbGVz cy9hdGgvYXRoMTBrL3BjaS5jDQoraW5kZXggYjU2ZDdhOTQ5YmUxLi4yNDViZTk4NjBiZGEgMTAw NjQ0DQorLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9wY2kuYw0KKysrKyBi L2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvcGNpLmMNCitAQCAtODIzLDYgKzgyMywy MiBAQCBzdGF0aWMgaW50IGF0aDEwa19wY2lfZGlhZ19yZWFkMzIoc3RydWN0IGF0aDEwayAqYXIs IHUzMiBhZGRyZXNzLCB1MzIgKnZhbHVlKQ0KKyAJcmV0dXJuIHJldDsNCisgfQ0KKyANCisrc3Rh dGljIGludCBfX2F0aDEwa19wY2lfZGlhZ19yZWFkX2hpX2FkZHIoc3RydWN0IGF0aDEwayAqYXIs IF9fbGUzMiAqZGVzdCwNCisrCQkJCQkgIHUzMiBzcmMpDQorK3sNCisrCXUzMiBob3N0X2FkZHI7 DQorKwlpbnQgcmV0Ow0KKysNCisrCWhvc3RfYWRkciA9IGhvc3RfaW50ZXJlc3RfaXRlbV9hZGRy ZXNzKHNyYyk7DQorKw0KKysJcmV0ID0gYXRoMTBrX3BjaV9kaWFnX3JlYWQzMihhciwgaG9zdF9h ZGRyLCBkZXN0KTsNCisrCWlmIChyZXQgIT0gMCkgew0KKysJCWF0aDEwa193YXJuKGFyLCAiZmFp bGVkIHRvIGdldCBtZW1jcHkgaGkgYWRkcmVzcyBmb3IgZmlybXdhcmUgYWRkcmVzcyAlZDogJWRc biIsDQorKwkJCSAgICBzcmMsIHJldCk7DQorKwl9DQorKwlyZXR1cm4gcmV0Ow0KKyt9DQorKw0K KyBzdGF0aWMgaW50IF9fYXRoMTBrX3BjaV9kaWFnX3JlYWRfaGkoc3RydWN0IGF0aDEwayAqYXIs IHZvaWQgKmRlc3QsDQorIAkJCQkgICAgIHUzMiBzcmMsIHUzMiBsZW4pDQorIHsNCitAQCAtODUx LDYgKzg2Nyw5IEBAIHN0YXRpYyBpbnQgX19hdGgxMGtfcGNpX2RpYWdfcmVhZF9oaShzdHJ1Y3Qg YXRoMTBrICphciwgdm9pZCAqZGVzdCwNCisgI2RlZmluZSBhdGgxMGtfcGNpX2RpYWdfcmVhZF9o aShhciwgZGVzdCwgc3JjLCBsZW4pCQlcDQorIAlfX2F0aDEwa19wY2lfZGlhZ19yZWFkX2hpKGFy LCBkZXN0LCBISV9JVEVNKHNyYyksIGxlbikNCisgDQorKyNkZWZpbmUgYXRoMTBrX3BjaV9kaWFn X3JlYWRfaGlfYWRkcihhciwgZGVzdCwgc3JjKQkJXA0KKysJX19hdGgxMGtfcGNpX2RpYWdfcmVh ZF9oaV9hZGRyKGFyLCBkZXN0LCBISV9JVEVNKHNyYykpDQorKw0KKyBzdGF0aWMgaW50IGF0aDEw a19wY2lfZGlhZ193cml0ZV9tZW0oc3RydWN0IGF0aDEwayAqYXIsIHUzMiBhZGRyZXNzLA0KKyAJ CQkJICAgICBjb25zdCB2b2lkICpkYXRhLCBpbnQgbmJ5dGVzKQ0KKyB7DQorQEAgLTExNDksNiAr MTE2OCwzNyBAQCBzdGF0aWMgdTE2IGF0aDEwa19wY2lfaGlmX2dldF9mcmVlX3F1ZXVlX251bWJl cihzdHJ1Y3QgYXRoMTBrICphciwgdTggcGlwZSkNCisgCXJldHVybiBhdGgxMGtfY2VfbnVtX2Zy ZWVfc3JjX2VudHJpZXMoYXJfcGNpLT5waXBlX2luZm9bcGlwZV0uY2VfaGRsKTsNCisgfQ0KKyAN CisrLyogU2F2ZSB0aGUgbWFpbiBmaXJtd2FyZSBzdGFjayAqLw0KKytzdGF0aWMgdm9pZCBhdGgx MGtfcGNpX2R1bXBfc3RhY2soc3RydWN0IGF0aDEwayAqYXIsDQorKwkJCQkgIHN0cnVjdCBhdGgx MGtfZndfY3Jhc2hfZGF0YSAqY3Jhc2hfZGF0YSkNCisrew0KKysJaWYgKCFjcmFzaF9kYXRhKQ0K KysJCXJldHVybjsNCisrDQorKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZhci0+ZGF0YV9sb2NrKTsN CisrCUJVSUxEX0JVR19PTihBVEgxMEtfRldfU1RBQ0tfU0laRSAlIDQpOw0KKysNCisrCWF0aDEw a19wY2lfZGlhZ19yZWFkX2hpKGFyLCBjcmFzaF9kYXRhLT5zdGFja19idWYsDQorKwkJCQloaV9z dGFjaywgQVRIMTBLX0ZXX1NUQUNLX1NJWkUpOw0KKysJYXRoMTBrX3BjaV9kaWFnX3JlYWRfaGlf YWRkcihhciwgJmNyYXNoX2RhdGEtPnN0YWNrX2FkZHIsIGhpX3N0YWNrKTsNCisrfQ0KKysNCisr LyogU2F2ZSB0aGUgZXhjZXB0aW9uIGZpcm13YXJlIHN0YWNrICovDQorK3N0YXRpYyB2b2lkIGF0 aDEwa19wY2lfZHVtcF9leGNfc3RhY2soc3RydWN0IGF0aDEwayAqYXIsDQorKwkJCQkgICAgICBz dHJ1Y3QgYXRoMTBrX2Z3X2NyYXNoX2RhdGEgKmNyYXNoX2RhdGEpDQorK3sNCisrCWlmICghY3Jh c2hfZGF0YSkNCisrCQlyZXR1cm47DQorKw0KKysJbG9ja2RlcF9hc3NlcnRfaGVsZCgmYXItPmRh dGFfbG9jayk7DQorKw0KKysJYXRoMTBrX3BjaV9kaWFnX3JlYWRfaGkoYXIsIGNyYXNoX2RhdGEt PmV4Y19zdGFja19idWYsDQorKwkJCQloaV9lcnJfc3RhY2ssIEFUSDEwS19GV19TVEFDS19TSVpF KTsNCisrDQorKwlhdGgxMGtfcGNpX2RpYWdfcmVhZF9oaV9hZGRyKGFyLCAmY3Jhc2hfZGF0YS0+ ZXhjX3N0YWNrX2FkZHIsDQorKwkJCQkgICAgIGhpX2Vycl9zdGFjayk7DQorK30NCisrDQorIHN0 YXRpYyB2b2lkIGF0aDEwa19wY2lfZHVtcF9yZWdpc3RlcnMoc3RydWN0IGF0aDEwayAqYXIsDQor IAkJCQkgICAgICBzdHJ1Y3QgYXRoMTBrX2Z3X2NyYXNoX2RhdGEgKmNyYXNoX2RhdGEpDQorIHsN CitAQCAtMTI5OSw2ICsxMzQ5LDggQEAgc3RhdGljIHZvaWQgYXRoMTBrX3BjaV9md19jcmFzaGVk X2R1bXAoc3RydWN0IGF0aDEwayAqYXIpDQorIAlhdGgxMGtfcHJpbnRfZHJpdmVyX2luZm8oYXIp Ow0KKyAJYXRoMTBrX3BjaV9kdW1wX3JlZ2lzdGVycyhhciwgY3Jhc2hfZGF0YSk7DQorIAlhdGgx MGtfcGNpX2R1bXBfZGJnbG9nKGFyKTsNCisrCWF0aDEwa19wY2lfZHVtcF9zdGFjayhhciwgY3Jh c2hfZGF0YSk7DQorKwlhdGgxMGtfcGNpX2R1bXBfZXhjX3N0YWNrKGFyLCBjcmFzaF9kYXRhKTsN CisgCWlmIChjcmFzaF9kYXRhKQ0KKyAJCWNyYXNoX2RhdGEtPmNyYXNoZWRfc2luY2VfcmVhZCA9 IHRydWU7DQorIA0KZGlmZiAtLWdpdCBhL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMv OTk5LTAwMzQtYXRoMTBrLXNhdmUtZmlybXdhcmUtUkFNLWFuZC1ST00tQlNTLXNlY3Rpb25zLW9u LWNyYS5wYXRjaCBiL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAwMzQtYXRo MTBrLXNhdmUtZmlybXdhcmUtUkFNLWFuZC1ST00tQlNTLXNlY3Rpb25zLW9uLWNyYS5wYXRjaA0K bmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAuLmJhODFhOGUNCi0tLSAvZGV2L251 bGwNCisrKyBiL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAwMzQtYXRoMTBr LXNhdmUtZmlybXdhcmUtUkFNLWFuZC1ST00tQlNTLXNlY3Rpb25zLW9uLWNyYS5wYXRjaA0KQEAg LTAsMCArMSwzMDcgQEANCitGcm9tOiBCZW4gR3JlZWFyIDxncmVlYXJiQGNhbmRlbGF0ZWNoLmNv bT4NCitEYXRlOiBUaHUsIDI4IEF1ZyAyMDE0IDEyOjIyOjM0IC0wNzAwDQorU3ViamVjdDogW1BB VENIXSBhdGgxMGs6IHNhdmUgZmlybXdhcmUgUkFNIGFuZCBST00gQlNTIHNlY3Rpb25zIG9uIGNy YXNoDQorDQorVGhpcyBjYW4gYmUgdXNlZCB0byBnZXQgYSB1c2VmdWwgYmFjayB0cmFjZSBvdXQg b2YgYSBmaXJtd2FyZQ0KK2NyYXNoIHRoYXQgaW52b2x2ZXMgYW4gaW50ZXJydXB0IGhhbmRsZXIu ICBGb3IgaW5zdGFuY2UsIGENCitudWxsLXBvaW50ZXItZXhjZXB0aW9uIHdvdWxkIGJlIHRoaXMg a2luZCBvZiB0cmFjZS4gIEEgdXNlci1zcGFjZQ0KK3Rvb2wgY2FuIHJlYWQgdGhlIGRlYnVnZnMg ZmlsZSBhbmQgZGVjb2RlIHRoaW5ncyBhcyB3aXNoZWQuDQorDQorVGhpcyByZXF1aXJlcyBhIHBh Y2thZ2VkIGZpcm13YXJlIHdpdGggYSBuZXcgSUUgdG8gZGVzY3JpYmUgdGhlDQorQlNTIHNlY3Rp b24gc3RhcnRzIGFuZCBsZW5ndGguDQorDQorU2lnbmVkLW9mZi1ieTogQmVuIEdyZWVhciA8Z3Jl ZWFyYkBjYW5kZWxhdGVjaC5jb20+DQorU2lnbmVkLW9mZi1ieTogS2FsbGUgVmFsbyA8a3ZhbG9A cWNhLnF1YWxjb21tLmNvbT4NCistLS0NCisgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEw ay9jb3JlLmMgIHwgNDggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQorIGRyaXZlcnMv bmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvY29yZS5oICB8IDE2ICsrKysrKysrKysNCisgZHJpdmVy cy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9kZWJ1Zy5jIHwgMzQgKysrKysrKysrKysrKysrKysr KystDQorIGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvaHcuaCAgICB8ICAyICsrDQor IGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvcGNpLmMgICB8IDUyICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKw0KKyA1IGZpbGVzIGNoYW5nZWQsIDE1MSBpbnNlcnRpb25z KCspLCAxIGRlbGV0aW9uKC0pDQorDQorZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNz L2F0aC9hdGgxMGsvY29yZS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9jb3Jl LmMNCitpbmRleCBlOTA3MGZkYTdjNmUuLmI2Yjk3OWJjYzY2OSAxMDA2NDQNCistLS0gYS9kcml2 ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2NvcmUuYw0KKysrKyBiL2RyaXZlcnMvbmV0L3dp cmVsZXNzL2F0aC9hdGgxMGsvY29yZS5jDQorQEAgLTU5NCw2ICs1OTQsMTMgQEAgZXJyOg0KKyAJ cmV0dXJuIHJldDsNCisgfQ0KKyANCisrc3RydWN0IGF0aDEwa19ic3Nfcm9tX2llIHsNCisrCV9f bGUzMiByYW1fYWRkcjsNCisrCV9fbGUzMiByYW1fbGVuOw0KKysJX19sZTMyIHJvbV9hZGRyOw0K KysJX19sZTMyIHJvbV9sZW47DQorK30gX19wYWNrZWQ7DQorKw0KKyBzdGF0aWMgaW50IGF0aDEw a19jb3JlX2ZldGNoX2Zpcm13YXJlX2FwaV9uKHN0cnVjdCBhdGgxMGsgKmFyLCBjb25zdCBjaGFy ICpuYW1lKQ0KKyB7DQorIAlzaXplX3QgbWFnaWNfbGVuLCBsZW4sIGllX2xlbjsNCitAQCAtNjAx LDYgKzYwOCw3IEBAIHN0YXRpYyBpbnQgYXRoMTBrX2NvcmVfZmV0Y2hfZmlybXdhcmVfYXBpX24o c3RydWN0IGF0aDEwayAqYXIsIGNvbnN0IGNoYXIgKm5hbWUpDQorIAlzdHJ1Y3QgYXRoMTBrX2Z3 X2llICpoZHI7DQorIAljb25zdCB1OCAqZGF0YTsNCisgCV9fbGUzMiAqdGltZXN0YW1wLCAqdmVy c2lvbjsNCisrCXN0cnVjdCBhdGgxMGtfYnNzX3JvbV9pZSAqYnNzOw0KKyANCisgCS8qIGZpcnN0 IGZldGNoIHRoZSBmaXJtd2FyZSBmaWxlIChmaXJtd2FyZS0qLmJpbikgKi8NCisgCWFyLT5maXJt d2FyZSA9IGF0aDEwa19mZXRjaF9md19maWxlKGFyLCBhci0+aHdfcGFyYW1zLmZ3LmRpciwgbmFt ZSk7DQorQEAgLTcxNiw2ICs3MjQsMTIgQEAgc3RhdGljIGludCBhdGgxMGtfY29yZV9mZXRjaF9m aXJtd2FyZV9hcGlfbihzdHJ1Y3QgYXRoMTBrICphciwgY29uc3QgY2hhciAqbmFtZSkNCisgDQor IAkJCWJyZWFrOw0KKyAJCWNhc2UgQVRIMTBLX0ZXX0lFX1dNSV9PUF9WRVJTSU9OOg0KKysJCQkv KiBVcHN0cmVhbSBzdG9sZSB0aGUgSUQgQ1QgZmlybXdhcmUgd2FzIHVzaW5nLCBzbyBhZGQNCisr CQkJICogaGFjay1hcm91bmQgdG8gZGVhbCB3aXRoIGJhY2t3YXJkcy1jb21wYXQuIC0tQmVuDQor KwkJCSAqLw0KKysJCQlpZiAoaWVfbGVuID49IHNpemVvZigqYnNzKSkNCisrCQkJCWdvdG8gZndf aWVfYnNzX2luZm9fY3Q7DQorKw0KKyAJCQlpZiAoaWVfbGVuICE9IHNpemVvZih1MzIpKQ0KKyAJ CQkJYnJlYWs7DQorIA0KK0BAIC03MzcsNiArNzUxLDQwIEBAIHN0YXRpYyBpbnQgYXRoMTBrX2Nv cmVfZmV0Y2hfZmlybXdhcmVfYXBpX24oc3RydWN0IGF0aDEwayAqYXIsIGNvbnN0IGNoYXIgKm5h bWUpDQorIAkJCWF0aDEwa19kYmcoYXIsIEFUSDEwS19EQkdfQk9PVCwgImZvdW5kIGZ3IGllIGh0 dCBvcCB2ZXJzaW9uICVkXG4iLA0KKyAJCQkJICAgYXItPmh0dC5vcF92ZXJzaW9uKTsNCisgCQkJ YnJlYWs7DQorKwkJY2FzZSBBVEgxMEtfRldfSUVfQlNTX0lORk9fQ1Q6DQorK2Z3X2llX2Jzc19p bmZvX2N0Og0KKysJCQlpZiAoaWVfbGVuIDwgc2l6ZW9mKCpic3MpKSB7DQorKwkJCQlhdGgxMGtf d2FybihhciwgImludmFsaWQgaWUgbGVuIGZvciBic3MtaW5mbyAoJXpkKVxuIiwNCisrCQkJCQkg ICAgaWVfbGVuKTsNCisrCQkJCWJyZWFrOw0KKysJCQl9DQorKwkJCWJzcyA9IChzdHJ1Y3QgYXRo MTBrX2Jzc19yb21faWUgKikoZGF0YSk7DQorKw0KKysJCQlhci0+ZncucmFtX2Jzc19hZGRyID0g bGUzMl90b19jcHUoYnNzLT5yYW1fYWRkcik7DQorKwkJCWFyLT5mdy5yYW1fYnNzX2xlbiA9IGxl MzJfdG9fY3B1KGJzcy0+cmFtX2xlbik7DQorKwkJCWF0aDEwa19kYmcoYXIsIEFUSDEwS19EQkdf Qk9PVCwNCisrCQkJCSAgICJmb3VuZCBSQU0gQlNTIGFkZHIgMHgleCBsZW5ndGggJWRcbiIsDQor KwkJCQkgICBhci0+ZncucmFtX2Jzc19hZGRyLCBhci0+ZncucmFtX2Jzc19sZW4pOw0KKysNCisr CQkJaWYgKGFyLT5mdy5yYW1fYnNzX2xlbiA+IEFUSDEwS19SQU1fQlNTX0JVRl9MRU4pIHsNCisr CQkJCWF0aDEwa193YXJuKGFyLCAidG9vIGxvbmcgZmlybXdhcmUgUkFNIEJTUyBsZW5ndGg6ICVk XG4iLA0KKysJCQkJCSAgICBhci0+ZncucmFtX2Jzc19sZW4pOw0KKysJCQkJYXItPmZ3LnJhbV9i c3NfbGVuID0gMDsNCisrCQkJfQ0KKysNCisrCQkJYXItPmZ3LnJvbV9ic3NfYWRkciA9IGxlMzJf dG9fY3B1KGJzcy0+cm9tX2FkZHIpOw0KKysJCQlhci0+Zncucm9tX2Jzc19sZW4gPSBsZTMyX3Rv X2NwdShic3MtPnJvbV9sZW4pOw0KKysJCQlhdGgxMGtfZGJnKGFyLCBBVEgxMEtfREJHX0JPT1Qs DQorKwkJCQkgICAiZm91bmQgUk9NIEJTUyBhZGRyIDB4JXggbGVuZ3RoICVkXG4iLA0KKysJCQkJ ICAgYXItPmZ3LnJvbV9ic3NfYWRkciwgYXItPmZ3LnJvbV9ic3NfbGVuKTsNCisrDQorKwkJCWlm IChhci0+Zncucm9tX2Jzc19sZW4gPiBBVEgxMEtfUk9NX0JTU19CVUZfTEVOKSB7DQorKwkJCQlh dGgxMGtfd2FybihhciwgInRvbyBsb25nIGZpcm13YXJlIFJPTSBCU1MgbGVuZ3RoOiAlZFxuIiwN CisrCQkJCQkgICAgYXItPmZ3LnJvbV9ic3NfbGVuKTsNCisrCQkJCWFyLT5mdy5yb21fYnNzX2xl biA9IDA7DQorKwkJCX0NCisrDQorKwkJCWJyZWFrOw0KKyAJCWRlZmF1bHQ6DQorIAkJCWF0aDEw a193YXJuKGFyLCAiVW5rbm93biBGVyBJRTogJXVcbiIsDQorIAkJCQkgICAgbGUzMl90b19jcHUo aGRyLT5pZCkpOw0KK2RpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBr L2NvcmUuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvY29yZS5oDQoraW5kZXgg ZDUwNDU2NmQzNGVhLi5jZmEyZWM3ZWIyNGEgMTAwNjQ0DQorLS0tIGEvZHJpdmVycy9uZXQvd2ly ZWxlc3MvYXRoL2F0aDEway9jb3JlLmgNCisrKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgv YXRoMTBrL2NvcmUuaA0KK0BAIC0zNjksNiArMzY5LDEwIEBAIHN0cnVjdCBhdGgxMGtfZGJnbG9n X2VudHJ5X3N0b3JhZ2Ugew0KKyAjZGVmaW5lIERCR0xPR19OVU1fQVJHU19NQVNLICAgICAgICAg ICAgIDB4RkMwMDAwMDAgLyogQml0IDI2LTMxICovDQorICNkZWZpbmUgREJHTE9HX05VTV9BUkdT X01BWCAgICAgICAgICAgICAgNSAvKiBmaXJtd2FyZSB0b29sIGNoYWluIGxpbWl0ICovDQorIA0K KysvKiBlc3RpbWF0ZWQgdmFsdWVzLCBob3BlZnVsbHkgdGhlc2UgYXJlIGVub3VnaCAqLw0KKysj ZGVmaW5lIEFUSDEwS19ST01fQlNTX0JVRl9MRU4gMzAwMDANCisrI2RlZmluZSBBVEgxMEtfUkFN X0JTU19CVUZfTEVOIDEwMDAwDQorKw0KKyAvKiB1c2VkIGZvciBjcmFzaC1kdW1wIHN0b3JhZ2Us IHByb3RlY3RlZCBieSBkYXRhLWxvY2sgKi8NCisgc3RydWN0IGF0aDEwa19md19jcmFzaF9kYXRh IHsNCisgCWJvb2wgY3Jhc2hlZF9zaW5jZV9yZWFkOw0KK0BAIC0zODAsNiArMzg0LDggQEAgc3Ry dWN0IGF0aDEwa19md19jcmFzaF9kYXRhIHsNCisgCV9fbGUzMiBleGNfc3RhY2tfYnVmW0FUSDEw S19GV19TVEFDS19TSVpFIC8gc2l6ZW9mKF9fbGUzMildOw0KKyAJX19sZTMyIHN0YWNrX2FkZHI7 DQorIAlfX2xlMzIgZXhjX3N0YWNrX2FkZHI7DQorKwlfX2xlMzIgcm9tX2Jzc19idWZbQVRIMTBL X1JPTV9CU1NfQlVGX0xFTiAvIHNpemVvZihfX2xlMzIpXTsNCisrCV9fbGUzMiByYW1fYnNzX2J1 ZltBVEgxMEtfUkFNX0JTU19CVUZfTEVOIC8gc2l6ZW9mKF9fbGUzMildOw0KKyB9Ow0KKyANCisg c3RydWN0IGF0aDEwa19kZWJ1ZyB7DQorQEAgLTYxMyw2ICs2MTksMTYgQEAgc3RydWN0IGF0aDEw ayB7DQorIAkJfSBmdzsNCisgCX0gaHdfcGFyYW1zOw0KKyANCisrCS8qIFRoZXNlIGFyZSB3cml0 dGVuIHRvIG9ubHkgZHVyaW5nIGZpcnN0IGZpcm13YXJlIGxvYWQgZnJvbSB1c2VyDQorKwkgKiBz cGFjZSBzbyBubyBuZWVkIGZvciBhbnkgbG9ja2luZy4NCisrCSAqLw0KKysJc3RydWN0IHsNCisr CQl1MzIgcmFtX2Jzc19hZGRyOw0KKysJCXUzMiByYW1fYnNzX2xlbjsNCisrCQl1MzIgcm9tX2Jz c19hZGRyOw0KKysJCXUzMiByb21fYnNzX2xlbjsNCisrCX0gZnc7DQorKw0KKyAJY29uc3Qgc3Ry dWN0IGZpcm13YXJlICpib2FyZDsNCisgCWNvbnN0IHZvaWQgKmJvYXJkX2RhdGE7DQorIAlzaXpl X3QgYm9hcmRfbGVuOw0KK2RpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRo MTBrL2RlYnVnLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2RlYnVnLmMNCitp bmRleCBlMmI3ZWE5ZjNhYTguLmVmZjBmMzlmMTM4NCAxMDA2NDQNCistLS0gYS9kcml2ZXJzL25l dC93aXJlbGVzcy9hdGgvYXRoMTBrL2RlYnVnLmMNCisrKysgYi9kcml2ZXJzL25ldC93aXJlbGVz cy9hdGgvYXRoMTBrL2RlYnVnLmMNCitAQCAtMzYsMTIgKzM2LDE2IEBADQorICAqIEBBVEgxMEtf RldfRVJST1JfRFVNUF9EQkdMT0c6ICBSZWNlbnQgZmlybXdhcmUgZGVidWcgbG9nIGVudHJpZXMN CisgICogQEFUSDEwS19GV19DUkFTSF9EVU1QX1NUQUNLOiAgIFN0YWNrIG1lbW9yeSBjb250ZW50 cy4NCisgICogQEFUSDEwS19GV19DUkFTSF9EVU1QX0VYQ19TVEFDSzogICBFeGNlcHRpb24gc3Rh Y2sgbWVtb3J5IGNvbnRlbnRzLg0KKysgKiBAQVRIMTBLX0ZXX0NSQVNIX0RVTVBfUkFNX0JTUzog IEJTUyBhcmVhIGZvciBSQU0gY29kZQ0KKysgKiBAQVRIMTBLX0ZXX0NSQVNIX0RVTVBfUk9NX0JT UzogIEJTUyBhcmVhIGZvciBST00gY29kZQ0KKyAgKi8NCisgZW51bSBhdGgxMGtfZndfY3Jhc2hf ZHVtcF90eXBlIHsNCisgCUFUSDEwS19GV19DUkFTSF9EVU1QX1JFR0lTVEVSUyA9IDAsDQorIAlB VEgxMEtfRldfQ1JBU0hfRFVNUF9EQkdMT0cgPSAxLA0KKyAJQVRIMTBLX0ZXX0NSQVNIX0RVTVBf U1RBQ0sgPSAyLA0KKyAJQVRIMTBLX0ZXX0NSQVNIX0RVTVBfRVhDX1NUQUNLID0gMywNCisrCUFU SDEwS19GV19DUkFTSF9EVU1QX1JBTV9CU1MgPSA0LA0KKysJQVRIMTBLX0ZXX0NSQVNIX0RVTVBf Uk9NX0JTUyA9IDUsDQorIA0KKyAJQVRIMTBLX0ZXX0NSQVNIX0RVTVBfTUFYLA0KKyB9Ow0KK0BA IC0xMDgsOSArMTEyLDExIEBAIHN0cnVjdCBhdGgxMGtfZHVtcF9maWxlX2RhdGEgew0KKyANCisg CV9fbGUzMiBzdGFja19hZGRyOw0KKyAJX19sZTMyIGV4Y19zdGFja19hZGRyOw0KKysJX19sZTMy IHJvbV9ic3NfYWRkcjsNCisrCV9fbGUzMiByYW1fYnNzX2FkZHI7DQorIA0KKyAJLyogcm9vbSBm b3IgZ3Jvd3RoIHcvb3V0IGNoYW5naW5nIGJpbmFyeSBmb3JtYXQgKi8NCistCXU4IHVudXNlZFsx MjBdOw0KKysJdTggdW51c2VkWzExMl07DQorIA0KKyAJLyogc3RydWN0IGF0aDEwa190bHZfZHVt cF9kYXRhICsgbW9yZSAqLw0KKyAJdTggZGF0YVswXTsNCitAQCAtMTAxNCw2ICsxMDIwLDEyIEBA IHN0YXRpYyBzdHJ1Y3QgYXRoMTBrX2R1bXBfZmlsZV9kYXRhICphdGgxMGtfYnVpbGRfZHVtcF9m aWxlKHN0cnVjdCBhdGgxMGsgKmFyKQ0KKyAJbGVuICs9IHNpemVvZigqZHVtcF90bHYpICsgc2l6 ZW9mKGNyYXNoX2RhdGEtPnN0YWNrX2J1Zik7DQorIAlsZW4gKz0gc2l6ZW9mKCpkdW1wX3Rsdikg KyBzaXplb2YoY3Jhc2hfZGF0YS0+ZXhjX3N0YWNrX2J1Zik7DQorIA0KKysJaWYgKGFyLT5mdy5y YW1fYnNzX2FkZHIgJiYgYXItPmZ3LnJhbV9ic3NfbGVuKQ0KKysJCWxlbiArPSBzaXplb2YoKmR1 bXBfdGx2KSArIGFyLT5mdy5yYW1fYnNzX2xlbjsNCisrDQorKwlpZiAoYXItPmZ3LnJvbV9ic3Nf YWRkciAmJiBhci0+Zncucm9tX2Jzc19sZW4pDQorKwkJbGVuICs9IHNpemVvZigqZHVtcF90bHYp ICsgYXItPmZ3LnJvbV9ic3NfbGVuOw0KKysNCisgCXNvZmFyICs9IGhkcl9sZW47DQorIA0KKyAJ LyogVGhpcyBpcyBnb2luZyB0byBnZXQgYmlnIHdoZW4gd2Ugc3RhcnQgZHVtcGluZyBGVyBSQU0g YW5kIHN1Y2gsDQorQEAgLTEwNTQsNiArMTA2Niw4IEBAIHN0YXRpYyBzdHJ1Y3QgYXRoMTBrX2R1 bXBfZmlsZV9kYXRhICphdGgxMGtfYnVpbGRfZHVtcF9maWxlKHN0cnVjdCBhdGgxMGsgKmFyKQ0K KyAJZHVtcF9kYXRhLT5udW1fcmZfY2hhaW5zID0gY3B1X3RvX2xlMzIoYXItPm51bV9yZl9jaGFp bnMpOw0KKyAJZHVtcF9kYXRhLT5zdGFja19hZGRyID0gY3B1X3RvX2xlMzIoY3Jhc2hfZGF0YS0+ c3RhY2tfYWRkcik7DQorIAlkdW1wX2RhdGEtPmV4Y19zdGFja19hZGRyID0gY3B1X3RvX2xlMzIo Y3Jhc2hfZGF0YS0+ZXhjX3N0YWNrX2FkZHIpOw0KKysJZHVtcF9kYXRhLT5yb21fYnNzX2FkZHIg PSBjcHVfdG9fbGUzMihhci0+Zncucm9tX2Jzc19hZGRyKTsNCisrCWR1bXBfZGF0YS0+cmFtX2Jz c19hZGRyID0gY3B1X3RvX2xlMzIoYXItPmZ3LnJhbV9ic3NfYWRkcik7DQorIA0KKyAJc3RybGNw eShkdW1wX2RhdGEtPmZ3X3ZlciwgYXItPmh3LT53aXBoeS0+ZndfdmVyc2lvbiwNCisgCQlzaXpl b2YoZHVtcF9kYXRhLT5md192ZXIpKTsNCitAQCAtMTEwNCw2ICsxMTE4LDI0IEBAIHN0YXRpYyBz dHJ1Y3QgYXRoMTBrX2R1bXBfZmlsZV9kYXRhICphdGgxMGtfYnVpbGRfZHVtcF9maWxlKHN0cnVj dCBhdGgxMGsgKmFyKQ0KKyAJbWVtY3B5KGR1bXBfdGx2LT50bHZfZGF0YSwgY3Jhc2hfZGF0YS0+ ZXhjX3N0YWNrX2J1ZiwgdG1wKTsNCisgCXNvZmFyICs9IHNpemVvZigqZHVtcF90bHYpICsgdG1w Ow0KKyANCisrCWlmIChhci0+ZncucmFtX2Jzc19hZGRyICYmIGFyLT5mdy5yYW1fYnNzX2xlbikg ew0KKysJCXRtcCA9IGFyLT5mdy5yYW1fYnNzX2xlbjsNCisrCQlkdW1wX3RsdiA9IChzdHJ1Y3Qg YXRoMTBrX3Rsdl9kdW1wX2RhdGEgKikoYnVmICsgc29mYXIpOw0KKysJCWR1bXBfdGx2LT50eXBl ID0gY3B1X3RvX2xlMzIoQVRIMTBLX0ZXX0NSQVNIX0RVTVBfUkFNX0JTUyk7DQorKwkJZHVtcF90 bHYtPnRsdl9sZW4gPSBjcHVfdG9fbGUzMih0bXApOw0KKysJCW1lbWNweShkdW1wX3Rsdi0+dGx2 X2RhdGEsIGNyYXNoX2RhdGEtPnJhbV9ic3NfYnVmLCB0bXApOw0KKysJCXNvZmFyICs9IHNpemVv ZigqZHVtcF90bHYpICsgdG1wOw0KKysJfQ0KKysNCisrCWlmIChhci0+Zncucm9tX2Jzc19hZGRy ICYmIGFyLT5mdy5yb21fYnNzX2xlbikgew0KKysJCXRtcCA9IGFyLT5mdy5yb21fYnNzX2xlbjsN CisrCQlkdW1wX3RsdiA9IChzdHJ1Y3QgYXRoMTBrX3Rsdl9kdW1wX2RhdGEgKikoYnVmICsgc29m YXIpOw0KKysJCWR1bXBfdGx2LT50eXBlID0gY3B1X3RvX2xlMzIoQVRIMTBLX0ZXX0NSQVNIX0RV TVBfUk9NX0JTUyk7DQorKwkJZHVtcF90bHYtPnRsdl9sZW4gPSBjcHVfdG9fbGUzMih0bXApOw0K KysJCW1lbWNweShkdW1wX3Rsdi0+dGx2X2RhdGEsIGNyYXNoX2RhdGEtPnJvbV9ic3NfYnVmLCB0 bXApOw0KKysJCXNvZmFyICs9IHNpemVvZigqZHVtcF90bHYpICsgdG1wOw0KKysJfQ0KKysNCisg CWFyLT5kZWJ1Zy5md19jcmFzaF9kYXRhLT5jcmFzaGVkX3NpbmNlX3JlYWQgPSBmYWxzZTsNCisg DQorIAlXQVJOX09OKHNvZmFyICE9IGxlbik7DQorZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dp cmVsZXNzL2F0aC9hdGgxMGsvaHcuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsv aHcuaA0KK2luZGV4IGI2ZjMxZWE1NTc0YS4uMTJjNWQ5YzhjYTM0IDEwMDY0NA0KKy0tLSBhL2Ry aXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvaHcuaA0KKysrKyBiL2RyaXZlcnMvbmV0L3dp cmVsZXNzL2F0aC9hdGgxMGsvaHcuaA0KK0BAIC0xMTQsNiArMTE0LDggQEAgZW51bSBhdGgxMGtf ZndfaWVfdHlwZSB7DQorIAkgKiBGVyBBUEkgNSBhbmQgYWJvdmUuDQorIAkgKi8NCisgCUFUSDEw S19GV19JRV9IVFRfT1BfVkVSU0lPTiA9IDYsDQorKw0KKysJQVRIMTBLX0ZXX0lFX0JTU19JTkZP X0NUID0gMzAsDQorIH07DQorIA0KKyBlbnVtIGF0aDEwa19md193bWlfb3BfdmVyc2lvbiB7DQor ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvcGNpLmMgYi9kcml2 ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3BjaS5jDQoraW5kZXggMjQ1YmU5ODYwYmRhLi4w MGFlOWExZGFmYjQgMTAwNjQ0DQorLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEw ay9wY2kuYw0KKysrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvcGNpLmMNCitA QCAtMTE2OCw2ICsxMTY4LDU2IEBAIHN0YXRpYyB1MTYgYXRoMTBrX3BjaV9oaWZfZ2V0X2ZyZWVf cXVldWVfbnVtYmVyKHN0cnVjdCBhdGgxMGsgKmFyLCB1OCBwaXBlKQ0KKyAJcmV0dXJuIGF0aDEw a19jZV9udW1fZnJlZV9zcmNfZW50cmllcyhhcl9wY2ktPnBpcGVfaW5mb1twaXBlXS5jZV9oZGwp Ow0KKyB9DQorIA0KKytzdGF0aWMgdm9pZCBhdGgxMGtfcGNpX2R1bXBfYnNzX3JhbShzdHJ1Y3Qg YXRoMTBrICphciwNCisrCQkJCSAgICBzdHJ1Y3QgYXRoMTBrX2Z3X2NyYXNoX2RhdGEgKmNyYXNo X2RhdGEpDQorK3sNCisrCWludCByZXQ7DQorKw0KKysJaWYgKCFjcmFzaF9kYXRhKQ0KKysJCXJl dHVybjsNCisrDQorKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZhci0+ZGF0YV9sb2NrKTsNCisrDQor KwlpZiAoIWFyLT5mdy5yYW1fYnNzX2FkZHIpDQorKwkJcmV0dXJuOw0KKysNCisrCWlmICghYXIt PmZ3LnJhbV9ic3NfbGVuKQ0KKysJCXJldHVybjsNCisrDQorKwlyZXQgPSBhdGgxMGtfcGNpX2Rp YWdfcmVhZF9tZW0oYXIsIGFyLT5mdy5yYW1fYnNzX2FkZHIsDQorKwkJCQkgICAgICAgY3Jhc2hf ZGF0YS0+cmFtX2Jzc19idWYsDQorKwkJCQkgICAgICAgYXItPmZ3LnJhbV9ic3NfbGVuKTsNCisr CWlmIChyZXQpDQorKwkJYXRoMTBrX3dhcm4oYXIsDQorKwkJCSAgICAiZmFpbGVkIHRvIHJlYWQg ZmlybXdhcmUgUkFNIEJTUyBtZW1vcnkgZnJvbSAlZCAoJWQgQik6ICVkXG4iLA0KKysJCQkgICAg YXItPmZ3LnJhbV9ic3NfYWRkciwgYXItPmZ3LnJhbV9ic3NfbGVuLCByZXQpOw0KKyt9DQorKw0K KytzdGF0aWMgdm9pZCBhdGgxMGtfcGNpX2R1bXBfYnNzX3JvbShzdHJ1Y3QgYXRoMTBrICphciwN CisrCQkJCSAgICBzdHJ1Y3QgYXRoMTBrX2Z3X2NyYXNoX2RhdGEgKmNyYXNoX2RhdGEpDQorK3sN CisrCWludCByZXQ7DQorKw0KKysJaWYgKCFjcmFzaF9kYXRhKQ0KKysJCXJldHVybjsNCisrDQor Kwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZhci0+ZGF0YV9sb2NrKTsNCisrDQorKwlpZiAoIWFyLT5m dy5yb21fYnNzX2FkZHIpDQorKwkJcmV0dXJuOw0KKysNCisrCWlmICghYXItPmZ3LnJvbV9ic3Nf bGVuKQ0KKysJCXJldHVybjsNCisrDQorKwlyZXQgPSBhdGgxMGtfcGNpX2RpYWdfcmVhZF9tZW0o YXIsIGFyLT5mdy5yb21fYnNzX2FkZHIsDQorKwkJCQkgICAgICAgY3Jhc2hfZGF0YS0+cm9tX2Jz c19idWYsDQorKwkJCQkgICAgICAgYXItPmZ3LnJvbV9ic3NfbGVuKTsNCisrCWlmIChyZXQpDQor KwkJYXRoMTBrX3dhcm4oYXIsDQorKwkJCSAgICAiZmFpbGVkIHRvIHJlYWQgZmlybXdhcmUgUk9N IEJTUyBtZW1vcnkgZnJvbSAlZCAoJWQgQik6ICVkXG4iLA0KKysJCQkgICAgYXItPmZ3LnJvbV9i c3NfYWRkciwgYXItPmZ3LnJvbV9ic3NfbGVuLCByZXQpOw0KKyt9DQorKw0KKyAvKiBTYXZlIHRo ZSBtYWluIGZpcm13YXJlIHN0YWNrICovDQorIHN0YXRpYyB2b2lkIGF0aDEwa19wY2lfZHVtcF9z dGFjayhzdHJ1Y3QgYXRoMTBrICphciwNCisgCQkJCSAgc3RydWN0IGF0aDEwa19md19jcmFzaF9k YXRhICpjcmFzaF9kYXRhKQ0KK0BAIC0xMzUxLDYgKzE0MDEsOCBAQCBzdGF0aWMgdm9pZCBhdGgx MGtfcGNpX2Z3X2NyYXNoZWRfZHVtcChzdHJ1Y3QgYXRoMTBrICphcikNCisgCWF0aDEwa19wY2lf ZHVtcF9kYmdsb2coYXIpOw0KKyAJYXRoMTBrX3BjaV9kdW1wX3N0YWNrKGFyLCBjcmFzaF9kYXRh KTsNCisgCWF0aDEwa19wY2lfZHVtcF9leGNfc3RhY2soYXIsIGNyYXNoX2RhdGEpOw0KKysJYXRo MTBrX3BjaV9kdW1wX2Jzc19yYW0oYXIsIGNyYXNoX2RhdGEpOw0KKysJYXRoMTBrX3BjaV9kdW1w X2Jzc19yb20oYXIsIGNyYXNoX2RhdGEpOw0KKyAJaWYgKGNyYXNoX2RhdGEpDQorIAkJY3Jhc2hf ZGF0YS0+Y3Jhc2hlZF9zaW5jZV9yZWFkID0gdHJ1ZTsNCisgDQpkaWZmIC0tZ2l0IGEvcGFja2Fn ZS9rZXJuZWwvbWFjODAyMTEvcGF0Y2hlcy85OTktMDAzNS1hdGgxMGstc3VwcG9ydC1yeC1zb2Z0 d2FyZS1jcnlwdC1tb2RlLnBhdGNoIGIvcGFja2FnZS9rZXJuZWwvbWFjODAyMTEvcGF0Y2hlcy85 OTktMDAzNS1hdGgxMGstc3VwcG9ydC1yeC1zb2Z0d2FyZS1jcnlwdC1tb2RlLnBhdGNoDQpuZXcg ZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMC4uYzFhZGE1MQ0KLS0tIC9kZXYvbnVsbA0K KysrIGIvcGFja2FnZS9rZXJuZWwvbWFjODAyMTEvcGF0Y2hlcy85OTktMDAzNS1hdGgxMGstc3Vw cG9ydC1yeC1zb2Z0d2FyZS1jcnlwdC1tb2RlLnBhdGNoDQpAQCAtMCwwICsxLDE4NiBAQA0KK0Zy b206IEJlbiBHcmVlYXIgPGdyZWVhcmJAY2FuZGVsYXRlY2guY29tPg0KK0RhdGU6IFR1ZSwgNSBB dWcgMjAxNCAxMzoyNDo0OCAtMDcwMA0KK1N1YmplY3Q6IFtQQVRDSF0gYXRoMTBrOiBzdXBwb3J0 IHJ4LXNvZnR3YXJlLWNyeXB0IG1vZGUuDQorDQorV2l0aCBhcHByb3ByaWF0ZSBmaXJtd2FyZSAo b25seSBDVCBmaXJtd2FyZSBhdCB0aGlzIHRpbWUpDQordGhpcyBhbGxvd3MgZW5hYmxpbmcgcngt c29mdHdhcmUtY3J5cHQgbW9kZS4gIFRoaXMgdGVsbHMgdGhlDQorZmlybXdhcmUgdG8gbm90IGRl Y3J5cHQgYW55IHBhY2tldHMgcmVjZWl2ZWQsIGJ1dCBkbyBlbmNyeXB0DQorKGFzIG5lZWRlZCkg YW55IHBhY2tldHMgb24gdHJhbnNtaXQuICBUaGlzIGlzIGltcGxlbWVudGVkIHRvIGdldA0KK2Fy b3VuZCBoYXJkd2FyZSBpc3N1ZXMgdGhhdCBwcmVjbHVkZSB1c2luZyB0d28gc3RhdGlvbnMgdG8N Citjb25uZWN0IHRvIHRoZSBzYW1lIEFQIHdoaWxlIHVzaW5nIGVuY3J5cHRpb24uDQorDQorQWx3 YXlzIGhhdmUgdG8gaWdub3JlIEZDUyB3aGVuIGFjdHVhbGx5IHVzaW5nIGVuY3J5cHRpb24gc2lu Y2UNCitmaXJtd2FyZSBtYXJrcyBkZWNyeXB0IGVycm9ycyBhcyBGQ1MgZXJyb3JzLiAgRGVjcnlw dCBsb2dpYw0KK3Nob3VsZCBjYXRjaCBhbnkgcmVhbCBwcm9ibGVtcy4NCisNCitBZGQgZmlybXdh cmUgZmVhdHVyZSBmbGFnIHRvIHNwZWNpZnkgaWYgZmlybXdhcmUgc3VwcG9ydHMNCit0aGlzIGZl YXR1cmUuDQorDQorU2lnbmVkLW9mZi1ieTogQmVuIEdyZWVhciA8Z3JlZWFyYkBjYW5kZWxhdGVj aC5jb20+DQorLS0tDQorIGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvY29yZS5oICAg fCAgNiArKysrKysNCisgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9odHRfcnguYyB8 IDEyICsrKysrKysrKysrKw0KKyBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL21hYy5j ICAgIHwgIDggKysrKysrKysNCisgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMu aCAgICB8ICAyICsrDQorIGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLmMgICAg fCAxNiArKysrKysrKysrKysrKystDQorIGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsv d21pLmggICAgfCAxNSArKysrKysrKysrKysrKysNCisgNiBmaWxlcyBjaGFuZ2VkLCA1OCBpbnNl cnRpb25zKCspLCAxIGRlbGV0aW9uKC0pDQorDQorZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dp cmVsZXNzL2F0aC9hdGgxMGsvY29yZS5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEw ay9jb3JlLmgNCitpbmRleCBjZmEyZWM3ZWIyNGEuLjEwODk1MzFjOTFkNCAxMDA2NDQNCistLS0g YS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2NvcmUuaA0KKysrKyBiL2RyaXZlcnMv bmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvY29yZS5oDQorQEAgLTQ5Myw2ICs0OTMsMTEgQEAgZW51 bSBhdGgxMGtfZndfZmVhdHVyZXMgew0KKyAJLyogRmlybXdhcmUgZnJvbSBDYW5kZWxhIFRlY2hu b2xvZ2llcywgZW5hYmxlcyBtb3JlIFZJRnMsIGV0YyAqLw0KKyAJQVRIMTBLX0ZXX0ZFQVRVUkVf V01JXzEwWF9DVCA9IDMxLA0KKyANCisrCS8qIEZpcm13YXJlIGZyb20gQ2FuZGVsYSBUZWNobm9s b2dpZXMgd2l0aCByeC1zb2Z0d2FyZS1jcnlwdC4NCisrCSAqIFJlcXVpcmVkIGZvciBtdWx0aXBs ZSBzdGF0aW9ucyBjb25uZWN0ZWQgdG8gc2FtZSBBUCB3aGVuIHVzaW5nDQorKwkgKiBlbmNyeXB0 aW9uIChpZSwgY29tbWVyY2lhbCB2ZXJzaW9uIG9mIENUIGZpcm13YXJlKSAqLw0KKysJQVRIMTBL X0ZXX0ZFQVRVUkVfQ1RfUlhTV0NSWVBUID0gMzIsDQorKw0KKyAJLyoga2VlcCBsYXN0ICovDQor IAlBVEgxMEtfRldfRkVBVFVSRV9DT1VOVCwNCisgfTsNCitAQCAtNTY2LDYgKzU3MSw3IEBAIHN0 cnVjdCBhdGgxMGsgew0KKyAJdTMyIGNoaXBfaWQ7DQorIAl1MzIgdGFyZ2V0X3ZlcnNpb247DQor IAl1OCBmd192ZXJzaW9uX21ham9yOw0KKysJYm9vbCB1c2Vfc3djcnlwdDsgLyogRmlybXdhcmUg KGFuZCBkcml2ZXIpIHN1cHBvcnRzIHJ4LXN3LWNyeXB0PyAqLw0KKyAJdTMyIGZ3X3ZlcnNpb25f bWlub3I7DQorIAl1MTYgZndfdmVyc2lvbl9yZWxlYXNlOw0KKyAJdTE2IGZ3X3ZlcnNpb25fYnVp bGQ7DQorZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvaHR0X3J4 LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2h0dF9yeC5jDQoraW5kZXggODll YjE2YjMwZmM0Li43MDY4MmVjZWMxZmYgMTAwNjQ0DQorLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxl c3MvYXRoL2F0aDEway9odHRfcnguYw0KKysrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9h dGgxMGsvaHR0X3J4LmMNCitAQCAtMTIxOSw2ICsxMjE5LDEyIEBAIHN0YXRpYyB2b2lkIGF0aDEw a19odHRfcnhfaF91bmRlY2FwKHN0cnVjdCBhdGgxMGsgKmFyLA0KKyAJZGVjYXAgPSBNUyhfX2xl MzJfdG9fY3B1KHJ4ZC0+bXNkdV9zdGFydC5pbmZvMSksDQorIAkJICAgUlhfTVNEVV9TVEFSVF9J TkZPMV9ERUNBUF9GT1JNQVQpOw0KKyANCisrCS8qDQorKwkgIGF0aDEwa19kYmcoYXIsIEFUSDEw S19EQkdfSFRULA0KKysJCSAgICJyeC11bmRlY2FwOiBtc2R1LWxlbjogJWQgIGRlY2FwOiAlZCAg aXAtc3VtbWVkOiAlZCBkZWNyeXB0ZWQ6ICVkIGVuY3R5cGU6ICVkXG4iLA0KKysJCSAgIG1zZHUt PmxlbiwgZGVjYXAsIG1zZHUtPmlwX3N1bW1lZCwgaXNfZGVjcnlwdGVkLCBlbmN0eXBlKTsNCisr CSovDQorKw0KKyAJc3dpdGNoIChkZWNhcCkgew0KKyAJY2FzZSBSWF9NU0RVX0RFQ0FQX1JBVzoN CisgCQlhdGgxMGtfaHR0X3J4X2hfdW5kZWNhcF9yYXcoYXIsIG1zZHUsIHN0YXR1cywgZW5jdHlw ZSwNCitAQCAtMTM1Miw2ICsxMzU4LDEyIEBAIHN0YXRpYyB2b2lkIGF0aDEwa19odHRfcnhfaF9t cGR1KHN0cnVjdCBhdGgxMGsgKmFyLA0KKyAJCQkJUlhfRkxBR19JVl9TVFJJUFBFRCB8DQorIAkJ CQlSWF9GTEFHX01NSUNfU1RSSVBQRUQ7DQorIA0KKysJLyoNCisrCWF0aDEwa19kYmcoYXIsIEFU SDEwS19EQkdfSFRULA0KKysJCSAgICJyeC1tcGR1OiBmaXJzdC1sZW46ICVkICBmY3MtZXJyOiAl aSAgdGtpcC1lcnI6ICVpIGRlY3J5cHRlZDogJWkgY3J5cHRvLWVycjogJWkgIHBlZXItaWR4LWlu dmFsOiAlaSAgZW5jdHlwZTogJWlcbiIsDQorKwkJICAgZmlyc3QtPmxlbiwgaGFzX2Zjc19lcnIs IGhhc190a2lwX2VyciwgaXNfZGVjcnlwdGVkLCBoYXNfY3J5cHRvX2VyciwNCisrCQkgICBoYXNf cGVlcl9pZHhfaW52YWxpZCwgZW5jdHlwZSk7DQorKwkqLw0KKyAJc2tiX3F1ZXVlX3dhbGsoYW1z ZHUsIG1zZHUpIHsNCisgCQlhdGgxMGtfaHR0X3J4X2hfY3N1bV9vZmZsb2FkKG1zZHUpOw0KKyAJ CWF0aDEwa19odHRfcnhfaF91bmRlY2FwKGFyLCBtc2R1LCBzdGF0dXMsIGZpcnN0X2hkciwgZW5j dHlwZSwNCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMu YyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvbWFjLmMNCitpbmRleCA4MDg3NDY5 OGQ3MGQuLmQ3NjAwNzFhNTY3OSAxMDA2NDQNCistLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9h dGgvYXRoMTBrL21hYy5jDQorKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9t YWMuYw0KK0BAIC0xOSw2ICsxOSw3IEBADQorIA0KKyAjaW5jbHVkZSA8bmV0L21hYzgwMjExLmg+ DQorICNpbmNsdWRlIDxsaW51eC9ldGhlcmRldmljZS5oPg0KKysjaW5jbHVkZSA8bGludXgvbW9k dWxlLmg+DQorIA0KKyAjaW5jbHVkZSAiaGlmLmgiDQorICNpbmNsdWRlICJjb3JlLmgiDQorQEAg LTE1NCw2ICsxNTUsMTMgQEAgYXRoMTBrX21hY19tYXhfdmh0X25zcyhjb25zdCB1MTYgdmh0X21j c19tYXNrW05MODAyMTFfVkhUX05TU19NQVhdKQ0KKyAJcmV0dXJuIDE7DQorIH0NCisgDQorKy8q IDA6ICBGdWxsIGhhcmR3YXJlIGNyeXB0DQorKyAqIDE6ICBUeCBoYXJkd2FyZSBjcnlwdCwgYnV0 IGV4cGVjdCByeCBzb2Z0d2FyZSBjcnlwdCAodXNlIG5hdGl2ZSB3aWZpIHR4IHR5cGUpDQorKyAq Lw0KKytpbnQgYXRoMTBrX21vZHBhcmFtX25vaHdjcnlwdDsNCisrbW9kdWxlX3BhcmFtX25hbWVk KG5vaHdjcnlwdCwgYXRoMTBrX21vZHBhcmFtX25vaHdjcnlwdCwgaW50LCAwNDQ0KTsNCisrTU9E VUxFX1BBUk1fREVTQyhub2h3Y3J5cHQsICJEaXNhYmxlIGhhcmR3YXJlIHJ4IGRlY3J5cHQgZmVh dHVyZSIpOw0KKysNCisgLyoqKioqKioqKiovDQorIC8qIENyeXB0byAqLw0KKyAvKioqKioqKioq Ki8NCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMuaCBi L2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvbWFjLmgNCitpbmRleCBiMjkxZjA2Mzcw NWMuLjAzODUyYjFmNDJmMSAxMDA2NDQNCistLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgv YXRoMTBrL21hYy5oDQorKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMu aA0KK0BAIC0yNiw2ICsyNiw4IEBADQorIGVudW0gd21pX3Rsdl90eF9wYXVzZV9pZDsNCisgZW51 bSB3bWlfdGx2X3R4X3BhdXNlX2FjdGlvbjsNCisgDQorK2V4dGVybiBpbnQgYXRoMTBrX21vZHBh cmFtX25vaHdjcnlwdDsNCisrDQorIHN0cnVjdCBhdGgxMGtfZ2VuZXJpY19pdGVyIHsNCisgCXN0 cnVjdCBhdGgxMGsgKmFyOw0KKyAJaW50IHJldDsNCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQv d2lyZWxlc3MvYXRoL2F0aDEway93bWkuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgx MGsvd21pLmMNCitpbmRleCA3NWUyZmQ0ZGVkYjQuLjQzZWI0OGYwNDhjZiAxMDA2NDQNCistLS0g YS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS5jDQorKysrIGIvZHJpdmVycy9u ZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWkuYw0KK0BAIC0zODM0LDEwICszODM0LDI1IEBAIHN0 YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqYXRoMTBrX3dtaV8xMF8xX29wX2dlbl9pbml0KHN0cnVjdCBh dGgxMGsgKmFyKQ0KKyAJdTMyIGxlbiwgdmFsOw0KKyAJdTMyIHNraWRfbGltaXQ7DQorIA0KKysJ Y29uZmlnLnJ4X2RlY2FwX21vZGUgPSBfX2NwdV90b19sZTMyKFRBUkdFVF8xMFhfUlhfREVDQVBf TU9ERSk7DQorKw0KKyAJaWYgKHRlc3RfYml0KEFUSDEwS19GV19GRUFUVVJFX1dNSV8xMFhfQ1Qs IGFyLT5md19mZWF0dXJlcykpIHsNCisgCQljb25maWcubnVtX3ZkZXZzID0gX19jcHVfdG9fbGUz MihUQVJHRVRfMTBYX05VTV9WREVWU19DVCk7DQorIAkJY29uZmlnLm51bV9wZWVycyA9IF9fY3B1 X3RvX2xlMzIoVEFSR0VUXzEwWF9OVU1fUEVFUlNfQ1QpOw0KKyAJCXNraWRfbGltaXQgPSBUQVJH RVRfMTBYX0FTVF9TS0lEX0xJTUlUX0NUOw0KKysJCWlmICh0ZXN0X2JpdChBVEgxMEtfRldfRkVB VFVSRV9DVF9SWFNXQ1JZUFQsIGFyLT5md19mZWF0dXJlcykgJiYNCisrCQkgICAgYXRoMTBrX21v ZHBhcmFtX25vaHdjcnlwdCkgew0KKysJCQkvKiBUaGlzIHdpbGwgZGlzYWJsZSByeCBkZWNyeXB0 aW9uIGluIGhhcmR3YXJlLCBlbmFibGUgcmF3DQorKwkJCSAqIHJ4IG1vZGUsIGFuZCBuYXRpdmUt d2lmaSB0eCBtb2RlLiAgUmVxdWlyZXMgJ0NUJyBmaXJtd2FyZS4NCisrCQkJICovDQorKwkJCWNv bmZpZy5yeF9kZWNhcF9tb2RlID0gX19jcHVfdG9fbGUzMihBVEgxMEtfSFdfVFhSWF9SQVcgfA0K KysJCQkJCQkJICAgICBBVEgxMGtfVVNFX1NXX1JYX0NSWVBUKTsNCisrCQkJYXItPnVzZV9zd2Ny eXB0ID0gdHJ1ZTsNCisrCQkJYXRoMTBrX2VycihhciwgInVzaW5nIHJ4IHN3Y3J5cHRcbiIpOw0K KysJCX0NCisrCQllbHNlIGlmIChhdGgxMGtfbW9kcGFyYW1fbm9od2NyeXB0KSB7DQorKwkJCWF0 aDEwa19lcnIoYXIsICJtb2R1bGUgcGFyYW0gbm9od2NyeXB0IGVuYWJsZWQsIGJ1dCBmaXJtd2Fy ZSBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgZmVhdHVyZS4gIERpc2FibGluZyBzd2NyeXB0LlxuIik7 DQorKwkJfQ0KKyAJfSBlbHNlIHsNCisgCQljb25maWcubnVtX3ZkZXZzID0gX19jcHVfdG9fbGUz MihUQVJHRVRfMTBYX05VTV9WREVWUyk7DQorIAkJY29uZmlnLm51bV9wZWVycyA9IF9fY3B1X3Rv X2xlMzIoVEFSR0VUXzEwWF9OVU1fUEVFUlMpOw0KK0BAIC0zODUzLDcgKzM4NjgsNiBAQCBzdGF0 aWMgc3RydWN0IHNrX2J1ZmYgKmF0aDEwa193bWlfMTBfMV9vcF9nZW5faW5pdChzdHJ1Y3QgYXRo MTBrICphcikNCisgCWNvbmZpZy5yeF90aW1lb3V0X3ByaV92aSA9IF9fY3B1X3RvX2xlMzIoVEFS R0VUXzEwWF9SWF9USU1FT1VUX0xPX1BSSSk7DQorIAljb25maWcucnhfdGltZW91dF9wcmlfYmUg PSBfX2NwdV90b19sZTMyKFRBUkdFVF8xMFhfUlhfVElNRU9VVF9MT19QUkkpOw0KKyAJY29uZmln LnJ4X3RpbWVvdXRfcHJpX2JrID0gX19jcHVfdG9fbGUzMihUQVJHRVRfMTBYX1JYX1RJTUVPVVRf SElfUFJJKTsNCistCWNvbmZpZy5yeF9kZWNhcF9tb2RlID0gX19jcHVfdG9fbGUzMihUQVJHRVRf MTBYX1JYX0RFQ0FQX01PREUpOw0KKyANCisgCWNvbmZpZy5zY2FuX21heF9wZW5kaW5nX3JlcXMg PQ0KKyAJCV9fY3B1X3RvX2xlMzIoVEFSR0VUXzEwWF9TQ0FOX01BWF9QRU5ESU5HX1JFUVMpOw0K K2RpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS5oIGIvZHJp dmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWkuaA0KK2luZGV4IDFiNGIwMTlhODEwMi4u MmNkZDM2ZGNhNTI5IDEwMDY0NA0KKy0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgx MGsvd21pLmgNCisrKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS5oDQor QEAgLTE2NjMsNyArMTY2MywyMiBAQCBzdHJ1Y3Qgd21pX3Jlc291cmNlX2NvbmZpZyB7DQorIAkg KiAgIE1BQyBjYW4gZGVjYXAgdG8gUkFXIChubyBkZWNhcCksIG5hdGl2ZSB3aWZpIG9yIEV0aGVy bmV0IHR5cGVzDQorIAkgKiAgIFRIaXMgc2V0dGluZyBhbHNvIGRldGVybWluZXMgdGhlIGRlZmF1 bHQgVFggYmVoYXZpb3IsIGhvd2V2ZXIgVFgNCisgCSAqICAgYmVoYXZpb3IgY2FuIGJlIG1vZGlm aWVkIG9uIGEgcGVyIFZBUCBiYXNpcyBkdXJpbmcgVkFQIGluaXQNCisrCSAqDQorKwkgKiAgTk9U RTogIFN0ZWFsaW5nIHNvbWUgb2YgdGhpcyBmaWVsZCBmb3IgZmxhZ3MsIG9ubHkgdXNhYmxlIHdo ZW4NCisrCSAqICAgICAgICAgcnVubmluZyAiQ1QiIGZpcm13YXJlLg0KKysJICogICBmaXJzdCBi eXRlOiByeF9kZWNhcF9tb2RlDQorKwkgKiAgIHNlY29uZCBieXRlOiAgcmVzZXJ2ZWQNCisgCSAq Lw0KKysJI2RlZmluZSBBVEgxMEtfUlhfREVDQVBfTU9ERV9NQVNLIDB4ZmYNCisrCS8qICBVc2Ug c29mdHdhcmUgcnggY3J5cHQuICBUaGlzIGRpc2FibGVzIHJ4IGNoZWNrc3VtbWluZw0KKysJICog IGFuZCBtYXkgdHVybiBvZmYgc29tZSBmaXJtd2FyZS9oYXJkd2FyZSBvcHRpbWl6YXRpb25zIGZv cg0KKysJICogIG5vcm1hbCB1c2UgY2FzZS4gIEJVVCwgaXQgZG9lcyBhbGxvdyB1cyB0byBydW4g bXVsdGlwbGUNCisrCSAqICBzdGF0aW9ucyBjb25uZWN0ZWQgdG8gdGhlIHNhbWUgQVAuICBUaGlz IGZsYWcgY2F1c2VzDQorKwkgKiAgcnggZW5jYXBzdWxhdGlvbiB0byBiZSAncmF3JywgYW5kIHR4 IG1vZGUgdG8gYmUgbmF0aXZlLXdpZmkuDQorKwkgKiAgWW91IHNob3VsZCBwcm9iYWJseSBub3Qg ZW5hYmxlIHRoaXMgdW5sZXNzIHlvdSBuZWVkIHRvDQorKwkgKiAgY29ubmVjdCBtdWx0aXBsZSBz dGF0aW9ucyB0byBzYW1lIEFQLg0KKysJICovDQorKwkjZGVmaW5lIEFUSDEwa19VU0VfU1dfUlhf Q1JZUFQgMHgxMDAwMA0KKyAJX19sZTMyIHJ4X2RlY2FwX21vZGU7DQorIA0KKyAJLyogd2hhdCBp cyB0aGUgbWF4aW11bSBudW1iZXIgb2Ygc2NhbiByZXF1ZXN0cyB0aGF0IGNhbiBiZSBxdWV1ZWQg Ki8NCmRpZmYgLS1naXQgYS9wYWNrYWdlL2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDM2 LWF0aDEway1SZW1vdmUtcm9hbWluZy1vZmZsb2FkLWZvci1DVC1maXJtd2FyZS5wYXRjaCBiL3Bh Y2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAwMzYtYXRoMTBrLVJlbW92ZS1yb2Ft aW5nLW9mZmxvYWQtZm9yLUNULWZpcm13YXJlLnBhdGNoDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0K aW5kZXggMDAwMDAwMC4uMDg4ZmY0NQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIvcGFja2FnZS9rZXJu ZWwvbWFjODAyMTEvcGF0Y2hlcy85OTktMDAzNi1hdGgxMGstUmVtb3ZlLXJvYW1pbmctb2ZmbG9h ZC1mb3ItQ1QtZmlybXdhcmUucGF0Y2gNCkBAIC0wLDAgKzEsNDggQEANCitGcm9tOiBCZW4gR3Jl ZWFyIDxncmVlYXJiQGNhbmRlbGF0ZWNoLmNvbT4NCitEYXRlOiBUdWUsIDI4IEphbiAyMDE0IDE0 OjM0OjM0IC0wODAwDQorU3ViamVjdDogW1BBVENIXSBhdGgxMGs6IFJlbW92ZSByb2FtaW5nIG9m ZmxvYWQgZm9yIENUIGZpcm13YXJlLg0KKw0KK0xvb2tzIGxpa2UgYSB1c2VsZXNzIGZlYXR1cmUg dG8gbWUsIGxldCBzdXBwbGljYW50DQorb3Igc29tZXRoaW5nIGVsc2UgZGVhbCB3aXRoIHJvYW1p bmcuICBTYXZlcyBzb21lDQorbWVtb3J5IGluIGZpcm13YXJlIGlmIHdlIGRpc2FibGUgdGhpcy4N CisNCitTaWduZWQtb2ZmLWJ5OiBCZW4gR3JlZWFyIDxncmVlYXJiQGNhbmRlbGF0ZWNoLmNvbT4N CistLS0NCisgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWkuYyB8IDEzICsrKysr KystLS0tLS0NCisgMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMo LSkNCisNCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWku YyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLmMNCitpbmRleCA0M2ViNDhm MDQ4Y2YuLmVmZGUyNjYxNDY2OSAxMDA2NDQNCistLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9h dGgvYXRoMTBrL3dtaS5jDQorKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93 bWkuYw0KK0BAIC0zODUzLDEwICszODUzLDE3IEBAIHN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqYXRo MTBrX3dtaV8xMF8xX29wX2dlbl9pbml0KHN0cnVjdCBhdGgxMGsgKmFyKQ0KKyAJCWVsc2UgaWYg KGF0aDEwa19tb2RwYXJhbV9ub2h3Y3J5cHQpIHsNCisgCQkJYXRoMTBrX2VycihhciwgIm1vZHVs ZSBwYXJhbSBub2h3Y3J5cHQgZW5hYmxlZCwgYnV0IGZpcm13YXJlIGRvZXMgbm90IHN1cHBvcnQg dGhpcyBmZWF0dXJlLiAgRGlzYWJsaW5nIHN3Y3J5cHQuXG4iKTsNCisgCQl9DQorKwkJY29uZmln LnJvYW1fb2ZmbG9hZF9tYXhfdmRldiA9IDA7IC8qIGRpc2FibGUgcm9hbWluZyAqLw0KKysJCWNv bmZpZy5yb2FtX29mZmxvYWRfbWF4X2FwX3Byb2ZpbGVzID0gMDsgLyogZGlzYWJsZSByb2FtaW5n ICovDQorIAl9IGVsc2Ugew0KKyAJCWNvbmZpZy5udW1fdmRldnMgPSBfX2NwdV90b19sZTMyKFRB UkdFVF8xMFhfTlVNX1ZERVZTKTsNCisgCQljb25maWcubnVtX3BlZXJzID0gX19jcHVfdG9fbGUz MihUQVJHRVRfMTBYX05VTV9QRUVSUyk7DQorIAkJc2tpZF9saW1pdCA9IFRBUkdFVF8xMFhfQVNU X1NLSURfTElNSVQ7DQorKwkJY29uZmlnLnJvYW1fb2ZmbG9hZF9tYXhfdmRldiA9DQorKwkJCV9f Y3B1X3RvX2xlMzIoVEFSR0VUXzEwWF9ST0FNX09GRkxPQURfTUFYX1ZERVYpOw0KKysNCisrCQlj b25maWcucm9hbV9vZmZsb2FkX21heF9hcF9wcm9maWxlcyA9DQorKwkJCV9fY3B1X3RvX2xlMzIo VEFSR0VUXzEwWF9ST0FNX09GRkxPQURfTUFYX0FQX1BST0ZJTEVTKTsNCisgCX0NCisgCWNvbmZp Zy5hc3Rfc2tpZF9saW1pdCA9IF9fY3B1X3RvX2xlMzIoc2tpZF9saW1pdCk7DQorIA0KK0BAIC0z ODc1LDEyICszODgyLDYgQEAgc3RhdGljIHN0cnVjdCBza19idWZmICphdGgxMGtfd21pXzEwXzFf b3BfZ2VuX2luaXQoc3RydWN0IGF0aDEwayAqYXIpDQorIAljb25maWcuYm1pc3Nfb2ZmbG9hZF9t YXhfdmRldiA9DQorIAkJX19jcHVfdG9fbGUzMihUQVJHRVRfMTBYX0JNSVNTX09GRkxPQURfTUFY X1ZERVYpOw0KKyANCistCWNvbmZpZy5yb2FtX29mZmxvYWRfbWF4X3ZkZXYgPQ0KKy0JCV9fY3B1 X3RvX2xlMzIoVEFSR0VUXzEwWF9ST0FNX09GRkxPQURfTUFYX1ZERVYpOw0KKy0NCistCWNvbmZp Zy5yb2FtX29mZmxvYWRfbWF4X2FwX3Byb2ZpbGVzID0NCistCQlfX2NwdV90b19sZTMyKFRBUkdF VF8xMFhfUk9BTV9PRkZMT0FEX01BWF9BUF9QUk9GSUxFUyk7DQorLQ0KKyAJY29uZmlnLm51bV9t Y2FzdF9ncm91cHMgPSBfX2NwdV90b19sZTMyKFRBUkdFVF8xMFhfTlVNX01DQVNUX0dST1VQUyk7 DQorIAljb25maWcubnVtX21jYXN0X3RhYmxlX2VsZW1zID0NCisgCQlfX2NwdV90b19sZTMyKFRB UkdFVF8xMFhfTlVNX01DQVNUX1RBQkxFX0VMRU1TKTsNCmRpZmYgLS1naXQgYS9wYWNrYWdlL2tl cm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDM3LWF0aDEway1FbmFibGUtZGV0ZWN0aW5nLWZh aWx1cmUtdG8taW5zdGFsbC1rZXktaW4tZmkucGF0Y2ggYi9wYWNrYWdlL2tlcm5lbC9tYWM4MDIx MS9wYXRjaGVzLzk5OS0wMDM3LWF0aDEway1FbmFibGUtZGV0ZWN0aW5nLWZhaWx1cmUtdG8taW5z dGFsbC1rZXktaW4tZmkucGF0Y2gNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAw Li5jOTMwMDNhDQotLS0gL2Rldi9udWxsDQorKysgYi9wYWNrYWdlL2tlcm5lbC9tYWM4MDIxMS9w YXRjaGVzLzk5OS0wMDM3LWF0aDEway1FbmFibGUtZGV0ZWN0aW5nLWZhaWx1cmUtdG8taW5zdGFs bC1rZXktaW4tZmkucGF0Y2gNCkBAIC0wLDAgKzEsMTAyIEBADQorRnJvbTogQmVuIEdyZWVhciA8 Z3JlZWFyYkBjYW5kZWxhdGVjaC5jb20+DQorRGF0ZTogVGh1LCAxMyBGZWIgMjAxNCAxMDoyMToz NCAtMDgwMA0KK1N1YmplY3Q6IFtQQVRDSF0gYXRoMTBrOiBFbmFibGUgZGV0ZWN0aW5nIGZhaWx1 cmUgdG8gaW5zdGFsbCBrZXkgaW4gZmlybXdhcmUgKENUKS4NCisNCitDVCBmaXJtd2FyZSBoYXMg YmVlbiBtb2RpZmllZCBzbyB0aGF0IGl0IHdpbGwgYWx3YXlzIHJldHVybg0KK2EgcmVzcG9uc2Ug bWVzc2FnZSB3aGVuIHVzZXIgcmVxdWVzdHMgdG8gYWRkIGEga2V5LCBldmVuIGlmDQordGhlIGtl eSBjb3VsZCBub3QgYWN0dWFsbHkgYmUgYWRkZWQuICBVcHN0cmVhbSBmaXJtd2FyZSBtYXkNCith c3NlcnQgb3IganVzdCBub3QgcmVzcG9uZCBpbiBhIGZhaWx1cmUgY2FzZS4NCisNCitUaGlzIGNo YW5nZSBzaG91bGQgYmUgY29tcGF0aWJsZSB3aXRoIG5vbiBDVCBmaXJtd2FyZS4NCisNCitTaWdu ZWQtb2ZmLWJ5OiBCZW4gR3JlZWFyIDxncmVlYXJiQGNhbmRlbGF0ZWNoLmNvbT4NCistLS0NCisg ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9jb3JlLmggICB8ICAxICsNCisgZHJpdmVy cy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9odHQuaCAgICB8ICA3ICsrKysrLS0NCisgZHJpdmVy cy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9odHRfcnguYyB8IDIwICsrKysrKysrKysrKysrKysr LS0tDQorIGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvbWFjLmMgICAgfCAgMyArKy0N CisgNCBmaWxlcyBjaGFuZ2VkLCAyNSBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQ0KKw0K K2RpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2NvcmUuaCBiL2Ry aXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvY29yZS5oDQoraW5kZXggMTA4OTUzMWM5MWQ0 Li45NjdiOWJlYzI4MjQgMTAwNjQ0DQorLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0 aDEway9jb3JlLmgNCisrKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2NvcmUu aA0KK0BAIC02ODcsNiArNjg3LDcgQEAgc3RydWN0IGF0aDEwayB7DQorIAl1bnNpZ25lZCBpbnQg ZmlsdGVyX2ZsYWdzOw0KKyAJdW5zaWduZWQgbG9uZyBkZXZfZmxhZ3M7DQorIAl1MzIgZGZzX2Js b2NrX3JhZGFyX2V2ZW50czsNCisrCWludCBpbnN0YWxsX2tleV9ydjsgLyogU3RvcmUgZXJyb3Ig Y29kZSBmcm9tIGtleS1pbnN0YWxsICovDQorIA0KKyAJLyogcHJvdGVjdGVkIGJ5IGNvbmZfbXV0 ZXggKi8NCisgCWJvb2wgcmFkYXJfZW5hYmxlZDsNCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQv d2lyZWxlc3MvYXRoL2F0aDEway9odHQuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgx MGsvaHR0LmgNCitpbmRleCA3ZThhMGQ4MzU2NjMuLjgwOGMxMWY0Y2NjMiAxMDA2NDQNCistLS0g YS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2h0dC5oDQorKysrIGIvZHJpdmVycy9u ZXQvd2lyZWxlc3MvYXRoL2F0aDEway9odHQuaA0KK0BAIC02MjQsOCArNjI0LDkgQEAgZW51bSBo dHRfc2VjdXJpdHlfdHlwZXMgew0KKyB9Ow0KKyANCisgZW51bSBodHRfc2VjdXJpdHlfZmxhZ3Mg ew0KKy0jZGVmaW5lIEhUVF9TRUNVUklUWV9UWVBFX01BU0sgMHg3Rg0KKysjZGVmaW5lIEhUVF9T RUNVUklUWV9UWVBFX01BU0sgMHgzRg0KKyAjZGVmaW5lIEhUVF9TRUNVUklUWV9UWVBFX0xTQiAg MA0KKysJSFRUX1NFQ1VSSVRZX0lTX0ZBSUxVUkUgPSAxIDw8IDYsIC8qIENUIGZpcm13YXJlIG9u bHkgKi8NCisgCUhUVF9TRUNVUklUWV9JU19VTklDQVNUID0gMSA8PCA3DQorIH07DQorIA0KK0BA IC02MzQsNyArNjM1LDkgQEAgc3RydWN0IGh0dF9zZWN1cml0eV9pbmRpY2F0aW9uIHsNCisgCQkv KiBkb250IHVzZSBiaXRmaWVsZHM7IHVuZGVmaW5lZCBiZWhhdmlvdXIgKi8NCisgCQl1OCBmbGFn czsgLyogJWh0dF9zZWN1cml0eV9mbGFncyAqLw0KKyAJCXN0cnVjdCB7DQorLQkJCXU4IHNlY3Vy aXR5X3R5cGU6NywgLyogJWh0dF9zZWN1cml0eV90eXBlcyAqLw0KKysJCQl1OCBzZWN1cml0eV90 eXBlOjYsIC8qICVodHRfc2VjdXJpdHlfdHlwZXMgKi8NCisrCQkJICAgaXNfZmFpbHVyZToxLCAv KiBkb2VzIHRoaXMgcmVzcG9uc2UgaW5kaWNhdGUgZmFpbHVyZQ0KKysJCQkJCSAgICAoQ1QgRmly bXdhcmUpICovDQorIAkJCSAgIGlzX3VuaWNhc3Q6MTsNCisgCQl9IF9fcGFja2VkOw0KKyAJfSBf X3BhY2tlZDsNCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9o dHRfcnguYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvaHR0X3J4LmMNCitpbmRl eCA3MDY4MmVjZWMxZmYuLjc0NTRiZjViYmRkNyAxMDA2NDQNCistLS0gYS9kcml2ZXJzL25ldC93 aXJlbGVzcy9hdGgvYXRoMTBrL2h0dF9yeC5jDQorKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3Mv YXRoL2F0aDEway9odHRfcnguYw0KK0BAIC0yMDI5LDkgKzIwMjksMjMgQEAgdm9pZCBhdGgxMGtf aHR0X3QyaF9tc2dfaGFuZGxlcihzdHJ1Y3QgYXRoMTBrICphciwgc3RydWN0IHNrX2J1ZmYgKnNr YikNCisgDQorIAkJYXRoMTBrX2RiZyhhciwgQVRIMTBLX0RCR19IVFQsDQorIAkJCSAgICJzZWMg aW5kIHBlZXJfaWQgJWQgdW5pY2FzdCAlZCB0eXBlICVkXG4iLA0KKy0JCQkgIF9fbGUxNl90b19j cHUoZXYtPnBlZXJfaWQpLA0KKy0JCQkgICEhKGV2LT5mbGFncyAmIEhUVF9TRUNVUklUWV9JU19V TklDQVNUKSwNCistCQkJICBNUyhldi0+ZmxhZ3MsIEhUVF9TRUNVUklUWV9UWVBFKSk7DQorKwkJ CSAgIF9fbGUxNl90b19jcHUoZXYtPnBlZXJfaWQpLA0KKysJCQkgICAhIShldi0+ZmxhZ3MgJiBI VFRfU0VDVVJJVFlfSVNfVU5JQ0FTVCksDQorKwkJCSAgIE1TKGV2LT5mbGFncywgSFRUX1NFQ1VS SVRZX1RZUEUpKTsNCisrDQorKwkJLyogQ1QgZmlybXdhcmUgYWRkcyB3YXkgdG8gZGV0ZXJtaW5l IGZhaWx1cmUgb2Yga2V5IHNldCwgd2l0aG91dA0KKysJCSAqIGp1c3QgdGltaW5nIHRoaW5ncyBv dXQuICBJbmRpY2F0aW9uIG9mIGZhaWx1cmUgaXMgZGV0ZXJtaW5lZA0KKysJCSAqIGJ5IHRoZSA2 dGggYml0IG9mIHRoZSBzZWN1cml0eS10eXBlIGJlaW5nIHNldC4NCisrCQkgKi8NCisrCQlpZiAo ZXYtPmZsYWdzICYgSFRUX1NFQ1VSSVRZX0lTX0ZBSUxVUkUpIHsNCisrCQkJYXRoMTBrX3dhcm4o YXIsICJGaXJtd2FyZSBmYWlsZWQgdG8gc2V0IHNlY3VyaXR5IGtleSwgcGVlcl9pZDogJWQgdW5p Y2FzdCAlZCB0eXBlICVkXG4iLA0KKysJCQkJICAgIF9fbGUxNl90b19jcHUoZXYtPnBlZXJfaWQp LA0KKysJCQkJICAgICEhKGV2LT5mbGFncyAmIEhUVF9TRUNVUklUWV9JU19VTklDQVNUKSwNCisr CQkJCSAgICBNUyhldi0+ZmxhZ3MsIEhUVF9TRUNVUklUWV9UWVBFKSk7DQorKwkJCWFyLT5pbnN0 YWxsX2tleV9ydiA9IC1FSU5WQUw7DQorKwkJfSBlbHNlIHsNCisrCQkJYXItPmluc3RhbGxfa2V5 X3J2ID0gMDsNCisrCQl9DQorIAkJY29tcGxldGUoJmFyLT5pbnN0YWxsX2tleV9kb25lKTsNCisg CQlicmVhazsNCisgCX0NCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0 aDEway9tYWMuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvbWFjLmMNCitpbmRl eCBkNzYwMDcxYTU2NzkuLmIwNzMyYjllMzUzNyAxMDA2NDQNCistLS0gYS9kcml2ZXJzL25ldC93 aXJlbGVzcy9hdGgvYXRoMTBrL21hYy5jDQorKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRo L2F0aDEway9tYWMuYw0KK0BAIC0yMzQsNyArMjM0LDggQEAgc3RhdGljIGludCBhdGgxMGtfaW5z dGFsbF9rZXkoc3RydWN0IGF0aDEwa192aWYgKmFydmlmLA0KKyAJaWYgKHRpbWVfbGVmdCA9PSAw KQ0KKyAJCXJldHVybiAtRVRJTUVET1VUOw0KKyANCistCXJldHVybiAwOw0KKysJcmV0ID0gYXIt Pmluc3RhbGxfa2V5X3J2Ow0KKysJcmV0dXJuIHJldDsNCisgfQ0KKyANCisgc3RhdGljIGludCBh dGgxMGtfaW5zdGFsbF9wZWVyX3dlcF9rZXlzKHN0cnVjdCBhdGgxMGtfdmlmICphcnZpZiwNCmRp ZmYgLS1naXQgYS9wYWNrYWdlL2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDM4LWF0aDEw ay1tYWtlLVRBUkdFVF9OVU1fUEVFUlMtbWF0Y2gtV01JX01BWF9LRVlfSU5ERVgucGF0Y2ggYi9w YWNrYWdlL2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDM4LWF0aDEway1tYWtlLVRBUkdF VF9OVU1fUEVFUlMtbWF0Y2gtV01JX01BWF9LRVlfSU5ERVgucGF0Y2gNCm5ldyBmaWxlIG1vZGUg MTAwNjQ0DQppbmRleCAwMDAwMDAwLi42OGFiNTRiDQotLS0gL2Rldi9udWxsDQorKysgYi9wYWNr YWdlL2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDM4LWF0aDEway1tYWtlLVRBUkdFVF9O VU1fUEVFUlMtbWF0Y2gtV01JX01BWF9LRVlfSU5ERVgucGF0Y2gNCkBAIC0wLDAgKzEsNTAgQEAN CitGcm9tOiBCZW4gR3JlZWFyIDxncmVlYXJiQGNhbmRlbGF0ZWNoLmNvbT4NCitEYXRlOiBUdWUs IDE4IEZlYiAyMDE0IDA4OjUzOjUzIC0wODAwDQorU3ViamVjdDogW1BBVENIXSBhdGgxMGs6IG1h a2UgVEFSR0VUX05VTV9QRUVSUyBtYXRjaCBXTUlfTUFYX0tFWV9JTkRFWC4NCisNCitUaGlzIGFw cGVhcnMgdG8gZml4IHRoZSBwcm9ibGVtIG9mIHJ1bm5pbmcgb3V0IG9mIGtleXMNCitpbiB0aGUg ZmlybXdhcmUuICBQb3NzaWJseSBpdCBvbmx5IGhpZGVzIHRoZSBwcm9ibGVtLA0KK2hvd2V2ZXIu DQorDQorU2lnbmVkLW9mZi1ieTogQmVuIEdyZWVhciA8Z3JlZWFyYkBjYW5kZWxhdGVjaC5jb20+ DQorLS0tDQorIGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvaHcuaCAgfCAxICsNCisg ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWkuYyB8IDQgKystLQ0KKyAyIGZpbGVz IGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkNCisNCitkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9ody5oIGIvZHJpdmVycy9uZXQvd2ly ZWxlc3MvYXRoL2F0aDEway9ody5oDQoraW5kZXggMTJjNWQ5YzhjYTM0Li40NjIyNGQyNzM0YzYg MTAwNjQ0DQorLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9ody5oDQorKysr IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9ody5oDQorQEAgLTI4Miw2ICsyODIs NyBAQCBlbnVtIGF0aDEwa19od19yYXRlX2NjayB7DQorICNkZWZpbmUgVEFSR0VUXzEwWF9OVU1f VkRFVlNfQ1QJCQkzMg0KKyAjZGVmaW5lIFRBUkdFVF8xMFhfTlVNX1BFRVJTX0NUCQkJKDMyICsg KFRBUkdFVF8xMFhfTlVNX1ZERVZTX0NUKSkNCisgI2RlZmluZSBUQVJHRVRfMTBYX0FTVF9TS0lE X0xJTUlUX0NUCQkoVEFSR0VUXzEwWF9OVU1fUEVFUlNfQ1QgKiBUQVJHRVRfMTBYX05VTV9QRUVS X0FTVCkNCisrI2RlZmluZSBUQVJHRVRfMTBYX05VTV9QRUVSX0tFWVNfQ1QgICAgICAgICAgICAg KFdNSV9NQVhfS0VZX0lOREVYICsgMSkgLyogNCAqLw0KKyANCisgI2RlZmluZSBUQVJHRVRfMTBY X05VTV9PRkZMT0FEX1BFRVJTCQkwDQorICNkZWZpbmUgVEFSR0VUXzEwWF9OVU1fT0ZGTE9BRF9S RU9SREVSX0JVRlMJMA0KK2RpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRo MTBrL3dtaS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWkuYw0KK2luZGV4 IGVmZGUyNjYxNDY2OS4uZTkxYjg2ZDM5MmQ4IDEwMDY0NA0KKy0tLSBhL2RyaXZlcnMvbmV0L3dp cmVsZXNzL2F0aC9hdGgxMGsvd21pLmMNCisrKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgv YXRoMTBrL3dtaS5jDQorQEAgLTM4NTUsNiArMzg1NSw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc2tfYnVm ZiAqYXRoMTBrX3dtaV8xMF8xX29wX2dlbl9pbml0KHN0cnVjdCBhdGgxMGsgKmFyKQ0KKyAJCX0N CisgCQljb25maWcucm9hbV9vZmZsb2FkX21heF92ZGV2ID0gMDsgLyogZGlzYWJsZSByb2FtaW5n ICovDQorIAkJY29uZmlnLnJvYW1fb2ZmbG9hZF9tYXhfYXBfcHJvZmlsZXMgPSAwOyAvKiBkaXNh YmxlIHJvYW1pbmcgKi8NCisrCQljb25maWcubnVtX3BlZXJfa2V5cyA9IF9fY3B1X3RvX2xlMzIo VEFSR0VUXzEwWF9OVU1fUEVFUl9LRVlTX0NUKTsNCisgCX0gZWxzZSB7DQorIAkJY29uZmlnLm51 bV92ZGV2cyA9IF9fY3B1X3RvX2xlMzIoVEFSR0VUXzEwWF9OVU1fVkRFVlMpOw0KKyAJCWNvbmZp Zy5udW1fcGVlcnMgPSBfX2NwdV90b19sZTMyKFRBUkdFVF8xMFhfTlVNX1BFRVJTKTsNCitAQCAt Mzg2NCwxMCArMzg2NSw5IEBAIHN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqYXRoMTBrX3dtaV8xMF8x X29wX2dlbl9pbml0KHN0cnVjdCBhdGgxMGsgKmFyKQ0KKyANCisgCQljb25maWcucm9hbV9vZmZs b2FkX21heF9hcF9wcm9maWxlcyA9DQorIAkJCV9fY3B1X3RvX2xlMzIoVEFSR0VUXzEwWF9ST0FN X09GRkxPQURfTUFYX0FQX1BST0ZJTEVTKTsNCisrCQljb25maWcubnVtX3BlZXJfa2V5cyA9IF9f Y3B1X3RvX2xlMzIoVEFSR0VUXzEwWF9OVU1fUEVFUl9LRVlTKTsNCisgCX0NCisgCWNvbmZpZy5h c3Rfc2tpZF9saW1pdCA9IF9fY3B1X3RvX2xlMzIoc2tpZF9saW1pdCk7DQorLQ0KKy0JY29uZmln Lm51bV9wZWVyX2tleXMgPSBfX2NwdV90b19sZTMyKFRBUkdFVF8xMFhfTlVNX1BFRVJfS0VZUyk7 DQorIAljb25maWcubnVtX3RpZHMgPSBfX2NwdV90b19sZTMyKFRBUkdFVF8xMFhfTlVNX1RJRFMp Ow0KKyAJY29uZmlnLnR4X2NoYWluX21hc2sgPSBfX2NwdV90b19sZTMyKFRBUkdFVF8xMFhfVFhf Q0hBSU5fTUFTSyk7DQorIAljb25maWcucnhfY2hhaW5fbWFzayA9IF9fY3B1X3RvX2xlMzIoVEFS R0VUXzEwWF9SWF9DSEFJTl9NQVNLKTsNCmRpZmYgLS1naXQgYS9wYWNrYWdlL2tlcm5lbC9tYWM4 MDIxMS9wYXRjaGVzLzk5OS0wMDM5LWF0aDEway1PVFAtZGVidWdnaW5nLWZvci1DVC1maXJtd2Fy ZS5wYXRjaCBiL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAwMzktYXRoMTBr LU9UUC1kZWJ1Z2dpbmctZm9yLUNULWZpcm13YXJlLnBhdGNoDQpuZXcgZmlsZSBtb2RlIDEwMDY0 NA0KaW5kZXggMDAwMDAwMC4uYWU3NTg5Yw0KLS0tIC9kZXYvbnVsbA0KKysrIGIvcGFja2FnZS9r ZXJuZWwvbWFjODAyMTEvcGF0Y2hlcy85OTktMDAzOS1hdGgxMGstT1RQLWRlYnVnZ2luZy1mb3It Q1QtZmlybXdhcmUucGF0Y2gNCkBAIC0wLDAgKzEsMTQ0IEBADQorRnJvbTogQmVuIEdyZWVhciA8 Z3JlZWFyYkBjYW5kZWxhdGVjaC5jb20+DQorRGF0ZTogTW9uLCAyNCBGZWIgMjAxNCAxNTo0ODoy NiAtMDgwMA0KK1N1YmplY3Q6IFtQQVRDSF0gYXRoMTBrOiBPVFAgZGVidWdnaW5nIGZvciBDVCBm aXJtd2FyZS4NCisNCitPVFAgZmlybXdhcmUgaW1hZ2UgZG9lcyBub3QgaGF2ZSBhbnkgbG9nZ2lu ZyBzdXBwb3J0IG9yDQorb3RoZXIgZGVidWdnaW5nIG9uIG5vcm1hbCBoYXJkd2FyZS4NCisNCitX aXRoIHRoZSBDVCBmaXJtd2FyZSwgdGhlIE9UUCBtYXkgY2hvb3NlIHRvIHJldHVybiBhIHBvaW50 ZXINCit0byBpdCdzIG1lbW9yeSBsb2NhdGlvbiB0aGF0IGNvbnRhaW5zIGRlYnVnIGluZm9ybWF0 aW9uLg0KKw0KK1RoaXMgcGF0Y2ggZW5hYmxlcyB0aGUgZHJpdmVyIHRvIHJlYWQgdGhpcyBtZW1v cnkgYWZ0ZXINCit0aGUgT1RQIGhhcyBleGl0ZWQgdG8gYWlkIGRlYnVnZ2luZy4NCisNCitTaWdu ZWQtb2ZmLWJ5OiBCZW4gR3JlZWFyIDxncmVlYXJiQGNhbmRlbGF0ZWNoLmNvbT4NCistLS0NCisg ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9jb3JlLmMgfCA1OSArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrDQorIGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsv aGlmLmggIHwgMTAgKysrKysrDQorIGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvcGNp LmMgIHwgIDggKysrKysNCisgMyBmaWxlcyBjaGFuZ2VkLCA3NyBpbnNlcnRpb25zKCspDQorDQor ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvY29yZS5jIGIvZHJp dmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9jb3JlLmMNCitpbmRleCBiNmI5NzliY2M2Njku LjljMWVmYTk2NGQ3NSAxMDA2NDQNCistLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRo MTBrL2NvcmUuYw0KKysrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvY29yZS5j DQorQEAgLTM4OCw2ICszODgsNjUgQEAgc3RhdGljIGludCBhdGgxMGtfZG93bmxvYWRfYW5kX3J1 bl9vdHAoc3RydWN0IGF0aDEwayAqYXIpDQorIA0KKyAJYXRoMTBrX2RiZyhhciwgQVRIMTBLX0RC R19CT09ULCAiYm9vdCBvdHAgZXhlY3V0ZSByZXN1bHQgJWRcbiIsIHJlc3VsdCk7DQorIA0KKysJ LyogSWYgd2UgYXJlICdDVCcgZmlybXdhcmUsIHRoZW4gd2UgaGF2ZSBhIGJhY2stZG9vciB3YXkg dG8gZGVidWcNCisrCSAqIHRoZSBPVFAgYmluYXJ5IHNpbmNlIGl0IGRvZXMgbm90IGhhdmUgbm9y bWFsIGRlYnVnbG9nIGZ1bmN0aW9uYWxpdHkuDQorKwkgKiBSZXR1cm4gY29kZSBpczogMHg4MDAw MDAwIHwgbWVtb3J5LWFkZHJlc3Mtb2YtZGVidWctc3RydWN0Lg0KKysJICogSSBkb3VidCB0aGlz IGlzIGd1YXJhbnRlZWQgdG8gd29yay4uYnV0IGl0IGFwcGVhcnMgdG8gd29yayBtb3N0IG9mDQor KwkgKiB0aGUgdGltZSBzbyBpdCdzIGdvb2QgZW5vdWdoIGZvciBub3cuDQorKwkgKi8NCisrCWlm IChyZXN1bHQgJiAweDgwMDAwMDApIHsNCisrLyojZGVmaW5lIERFQlVHX09UUCAqLw0KKysjZGVm aW5lIFBSSU5URl9NU0dfQlVGTEVOIDEwMjQNCisrI2RlZmluZSBPVFBfREJHX0JVRkxFTiAyMDQ4 DQorKwkJc3RydWN0IG90cF9kZWJ1Z19jdCB7DQorKwkJCWNoYXIgZGVidWdfbXNnW1BSSU5URl9N U0dfQlVGTEVOXTsNCisrCQkJdTMyIHJlYWxfcmV0X2NvZGU7DQorKwkJCXUzMiBtc2dfbGVuOw0K KysJCQl1bnNpZ25lZCBjaGFyIG90cFtPVFBfREJHX0JVRkxFTl07DQorKwkJCXVuc2lnbmVkIGlu dCBvdHBfbGVuOw0KKysJCX07DQorKwkJc3RydWN0IG90cF9kZWJ1Z19jdCAqZGJnID0ga3phbGxv YyhzaXplb2YoKmRiZyksIEdGUF9BVE9NSUMpOw0KKysJCXUzMiB0YXJnX2FkZHIgPSByZXN1bHQg JiB+MHg4MDAwMDAwOw0KKysjaWZkZWYgREVCVUdfT1RQDQorKwkJaW50IGlsZW47DQorKwkJdTMy ICp1aXB0cjsNCisrCQlpbnQgaTsNCisrI2VuZGlmDQorKw0KKysJCWlmICghZGJnKSB7DQorKwkJ CS8qIEFzc3VtZSByZWFsIHJlc3VsdCBpcyBPSyAqLw0KKysJCQlyZXN1bHQgPSAwOw0KKysJCQln b3RvIGV4aXQ7DQorKwkJfQ0KKysNCisrCQkvKiBhdGgxMGtfZXJyKCJvdHAgZGVidWcgbG9jYXRp b246IDB4JXhcbiIsIHRhcmdfYWRkcik7ICovDQorKw0KKysJCWF0aDEwa19oaWZfcmVhZF90YXJn ZXRfbWVtKGFyLCB0YXJnX2FkZHIsIGRiZywgc2l6ZW9mKCpkYmcpKTsNCisrI2lmZGVmIERFQlVH X09UUA0KKysJCXVpcHRyID0gKHUzMiopKCYoZGJnLT5vdHBbMF0pKTsNCisrDQorKwkJLyogVmVy Ym9zZSBkZWJ1Z2dpbmcgbWVzc2FnZXMgZnJvbSBPVFAgcnVuIG9uIGZpcm13YXJlICovDQorKwkJ YXRoMTBrX2Vycigib3RwIGRlYnVnOiAlc1xuIiwgZGJnLT5kZWJ1Z19tc2cpOw0KKysJCWF0aDEw a19lcnIoIm90cCByZWFsLXJldC1jb2RlOiAweCV4XG4iLCBkYmctPnJlYWxfcmV0X2NvZGUpOw0K KysJCWF0aDEwa19lcnIoIm90cCBtc2ctbGVuOiAlaVxuIiwgZGJnLT5tc2dfbGVuKTsNCisrCQlh dGgxMGtfZXJyKCJvdHAgb3RwLWxlbjogJWlcbiIsIGRiZy0+b3RwX2xlbik7DQorKwkJYXRoMTBr X2Vycigib3RwIGRhdGE6XG4iKTsNCisrDQorKwkJaWxlbiA9IG1pbihkYmctPm90cF9sZW4sICh1 bnNpZ25lZCBpbnQpKE9UUF9EQkdfQlVGTEVOKSk7DQorKwkJaWYgKGlsZW4gJiAweDMpDQorKwkJ CWlsZW4gKz0gNDsgLyogbWFrZSBzdXJlIHdlIHJlYWQgdGhhdCBsYXN0IGZldyBieXRlcyAqLw0K KysJCWlsZW4gPSBpbGVuIC8gNDsNCisrCQlmb3IgKGkgPSAwOyBpIDwgaWxlbjsgaSsrKSB7DQor KwkJCWF0aDEwa19lcnIoIm90cCBbJTA0ZF06ICUwOFhcbiIsDQorKwkJCQkgICBpICogNCwNCisr CQkJCSAgIHVpcHRyW2ldKTsNCisrCQl9DQorKyNlbmRpZg0KKysJCXJlc3VsdCA9IGRiZy0+cmVh bF9yZXRfY29kZTsNCisrCQlrZnJlZShkYmcpOw0KKysJfQ0KKysNCisrZXhpdDoNCisgCWlmICgh KHNraXBfb3RwIHx8IHRlc3RfYml0KEFUSDEwS19GV19GRUFUVVJFX0lHTk9SRV9PVFBfUkVTVUxU LA0KKyAJCQkJICAgYXItPmZ3X2ZlYXR1cmVzKSkNCisgCSAgICAmJiByZXN1bHQgIT0gMCkgew0K K2RpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2hpZi5oIGIvZHJp dmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9oaWYuaA0KK2luZGV4IDBjOTJlMDI1MWU4NC4u NjJmNDFmN2I3OWRjIDEwMDY0NA0KKy0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgx MGsvaGlmLmgNCisrKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2hpZi5oDQor QEAgLTk4LDYgKzk4LDEwIEBAIHN0cnVjdCBhdGgxMGtfaGlmX29wcyB7DQorIA0KKyAJaW50ICgq c3VzcGVuZCkoc3RydWN0IGF0aDEwayAqYXIpOw0KKyAJaW50ICgqcmVzdW1lKShzdHJ1Y3QgYXRo MTBrICphcik7DQorKw0KKysJLyogUmVhZCB0YXJnZXQgbWVtb3J5IGludG8gc3BlY2lmaWVkIGRl c3RpbmF0aW9uLiAgVXNlZCBmb3INCisrICAgICAgICAgKiBkZWJ1Z2dpbmcgY3VycmVudGx5LiAq Lw0KKysgICAgICAgIGludCAoKnJlYWRfdGFyZ2V0X21lbSkoc3RydWN0IGF0aDEwayAqYXIsIHUz MiB0YXJnX2FkZHIsIHZvaWQqIGRzdCwgaW50IGxlbik7DQorIH07DQorIA0KKyBzdGF0aWMgaW5s aW5lIGludCBhdGgxMGtfaGlmX3R4X3NnKHN0cnVjdCBhdGgxMGsgKmFyLCB1OCBwaXBlX2lkLA0K K0BAIC0xNTEsNiArMTU1LDEyIEBAIHN0YXRpYyBpbmxpbmUgaW50IGF0aDEwa19oaWZfbWFwX3Nl cnZpY2VfdG9fcGlwZShzdHJ1Y3QgYXRoMTBrICphciwNCisgCQkJCQkJdWxfaXNfcG9sbGVkLCBk bF9pc19wb2xsZWQpOw0KKyB9DQorIA0KKytzdGF0aWMgaW5saW5lIGludCBhdGgxMGtfaGlmX3Jl YWRfdGFyZ2V0X21lbShzdHJ1Y3QgYXRoMTBrICphciwgdTMyIHRhcmdfYWRkciwNCisrCQkJCQkg ICAgIHZvaWQqIGRzdCwgaW50IGxlbikNCisrew0KKysJcmV0dXJuIGFyLT5oaWYub3BzLT5yZWFk X3RhcmdldF9tZW0oYXIsIHRhcmdfYWRkciwgZHN0LCBsZW4pOw0KKyt9DQorKw0KKyBzdGF0aWMg aW5saW5lIHZvaWQgYXRoMTBrX2hpZl9nZXRfZGVmYXVsdF9waXBlKHN0cnVjdCBhdGgxMGsgKmFy LA0KKyAJCQkJCSAgICAgICB1OCAqdWxfcGlwZSwgdTggKmRsX3BpcGUpDQorIHsNCitkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9wY2kuYyBiL2RyaXZlcnMvbmV0 L3dpcmVsZXNzL2F0aC9hdGgxMGsvcGNpLmMNCitpbmRleCAwMGFlOWExZGFmYjQuLmVhNzRmNWI2 MjQ1OSAxMDA2NDQNCistLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3BjaS5j DQorKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9wY2kuYw0KK0BAIC0xNDEx LDYgKzE0MTEsMTMgQEAgc3RhdGljIHZvaWQgYXRoMTBrX3BjaV9md19jcmFzaGVkX2R1bXAoc3Ry dWN0IGF0aDEwayAqYXIpDQorIAlxdWV1ZV93b3JrKGFyLT53b3JrcXVldWUsICZhci0+cmVzdGFy dF93b3JrKTsNCisgfQ0KKyANCisrc3RhdGljIGludCBhdGgxMGtfcGNpX2hpZl9yZWFkX3Rhcmdl dF9tZW0oc3RydWN0IGF0aDEwayAqYXIsIHUzMiB0YXJnX2FkZHIsDQorKwkJCQkJICB2b2lkKiBk c3QsIGludCBsZW4pDQorK3sNCisrCWF0aDEwa19wY2lfd2FrZShhcik7DQorKwlyZXR1cm4gYXRo MTBrX3BjaV9kaWFnX3JlYWRfbWVtKGFyLCB0YXJnX2FkZHIsIGRzdCwgbGVuKTsNCisrfQ0KKysN Cisgc3RhdGljIHZvaWQgYXRoMTBrX3BjaV9oaWZfc2VuZF9jb21wbGV0ZV9jaGVjayhzdHJ1Y3Qg YXRoMTBrICphciwgdTggcGlwZSwNCisgCQkJCQkgICAgICAgaW50IGZvcmNlKQ0KKyB7DQorQEAg LTI0NTgsNiArMjQ2NSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYXRoMTBrX2hpZl9vcHMgYXRo MTBrX3BjaV9oaWZfb3BzID0gew0KKyAJLnN1c3BlbmQJCT0gYXRoMTBrX3BjaV9oaWZfc3VzcGVu ZCwNCisgCS5yZXN1bWUJCQk9IGF0aDEwa19wY2lfaGlmX3Jlc3VtZSwNCisgI2VuZGlmDQorKwku cmVhZF90YXJnZXRfbWVtICAgICAgICA9IGF0aDEwa19wY2lfaGlmX3JlYWRfdGFyZ2V0X21lbSwN CisgfTsNCisgDQorIHN0YXRpYyB2b2lkIGF0aDEwa19wY2lfY2VfdGFza2xldCh1bnNpZ25lZCBs b25nIHB0cikNCmRpZmYgLS1naXQgYS9wYWNrYWdlL2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5 OS0wMDQwLWF0aDEway1yZXBvcnQtdHgtcmF0ZS13aGVuLXVzaW5nLUNULWZpcm13YXJlLnBhdGNo IGIvcGFja2FnZS9rZXJuZWwvbWFjODAyMTEvcGF0Y2hlcy85OTktMDA0MC1hdGgxMGstcmVwb3J0 LXR4LXJhdGUtd2hlbi11c2luZy1DVC1maXJtd2FyZS5wYXRjaA0KbmV3IGZpbGUgbW9kZSAxMDA2 NDQNCmluZGV4IDAwMDAwMDAuLmY2N2U0NGU2DQotLS0gL2Rldi9udWxsDQorKysgYi9wYWNrYWdl L2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDQwLWF0aDEway1yZXBvcnQtdHgtcmF0ZS13 aGVuLXVzaW5nLUNULWZpcm13YXJlLnBhdGNoDQpAQCAtMCwwICsxLDI3MyBAQA0KK0Zyb206IEJl biBHcmVlYXIgPGdyZWVhcmJAY2FuZGVsYXRlY2guY29tPg0KK0RhdGU6IE1vbiwgMiBKdW4gMjAx NCAxMjowMjozNSAtMDcwMA0KK1N1YmplY3Q6IFtQQVRDSF0gYXRoMTBrOiByZXBvcnQgdHgtcmF0 ZSB3aGVuIHVzaW5nIENUIGZpcm13YXJlLg0KKw0KK1RoaXMgdGFrZXMgdGhlIHR4LXJhdGUtY29k ZSBhbmQgdHgtcmF0ZS1mbGFncyByZXBvcnRlZA0KK2J5IHRoZSBDVCBmaXJtd2FyZSBhbmQgZGVj b2RlcyBpdC4gIEkgc3VzcGVjdCB0aGUgaW5kZXgNCittaWdodCBuZWVkIHNwZWNpYWwgbWFwcGlu ZyBmcm9tIGZpcm13YXJlJ3MgaWRlYSBvZiB0aGUNCityYXRlIGluZGV4IHRvIHRoZSBsaW51eCdz IGlkZWEuICBCdXQsIGl0IHNlZW1zIHRvIGF0DQorbGVhc3QgcGFydGlhbGx5IHdvcmsgYXMgaXMu DQorDQorU2lnbmVkLW9mZi1ieTogQmVuIEdyZWVhciA8Z3JlZWFyYkBjYW5kZWxhdGVjaC5jb20+ DQorLS0tDQorIGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvY29yZS5jICAgfCAgMyAr Ky0NCisgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9odHQuaCAgICB8IDM3ICsrKysr KysrKysrKysrKysrKysrKysrKysrLQ0KKyBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBr L2h0dF9yeC5jIHwgMjQgKysrKysrKysrKysrKystLS0NCisgZHJpdmVycy9uZXQvd2lyZWxlc3Mv YXRoL2F0aDEway9ody5oICAgICB8ICAyICsrDQorIGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9h dGgxMGsvdHhyeC5jICAgfCA0NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KKyBk cml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS5jICAgIHwgIDggKysrKystDQorIGRy aXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLmggICAgfCAgNCArKy0NCisgNyBmaWxl cyBjaGFuZ2VkLCAxMTQgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkNCisNCitkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9jb3JlLmMgYi9kcml2ZXJzL25l dC93aXJlbGVzcy9hdGgvYXRoMTBrL2NvcmUuYw0KK2luZGV4IDljMWVmYTk2NGQ3NS4uNDEwNGZj ZTYyYWYzIDEwMDY0NA0KKy0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvY29y ZS5jDQorKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9jb3JlLmMNCitAQCAt MTEyNywxMiArMTEyNywxMyBAQCBzdGF0aWMgaW50IGF0aDEwa19jb3JlX2luaXRfZmlybXdhcmVf ZmVhdHVyZXMoc3RydWN0IGF0aDEwayAqYXIpDQorIAkJCWFyLT5tYXhfbnVtX3BlZXJzID0gVEFS R0VUXzEwWF9OVU1fUEVFUlNfQ1Q7DQorIAkJCWFyLT5tYXhfbnVtX3N0YXRpb25zID0gVEFSR0VU XzEwWF9OVU1fU1RBVElPTlM7DQorIAkJCWFyLT5tYXhfbnVtX3ZkZXZzID0gVEFSR0VUXzEwWF9O VU1fVkRFVlNfQ1Q7DQorKwkJCWFyLT5odHQubWF4X251bV9wZW5kaW5nX3R4ID0gVEFSR0VUXzEw WF9OVU1fTVNEVV9ERVNDX0NUOw0KKyAJCX0gZWxzZSB7DQorIAkJCWFyLT5tYXhfbnVtX3BlZXJz ID0gVEFSR0VUXzEwWF9OVU1fUEVFUlM7DQorIAkJCWFyLT5tYXhfbnVtX3N0YXRpb25zID0gVEFS R0VUXzEwWF9OVU1fU1RBVElPTlM7DQorIAkJCWFyLT5tYXhfbnVtX3ZkZXZzID0gVEFSR0VUXzEw WF9OVU1fVkRFVlM7DQorKwkJCWFyLT5odHQubWF4X251bV9wZW5kaW5nX3R4ID0gVEFSR0VUXzEw WF9OVU1fTVNEVV9ERVNDOw0KKyAJCX0NCistCQlhci0+aHR0Lm1heF9udW1fcGVuZGluZ190eCA9 IFRBUkdFVF8xMFhfTlVNX01TRFVfREVTQzsNCisgCQlhci0+Zndfc3RhdHNfcmVxX21hc2sgPSBX TUlfU1RBVF9QRUVSOw0KKyAJCWJyZWFrOw0KKyAJY2FzZSBBVEgxMEtfRldfV01JX09QX1ZFUlNJ T05fMTBfMjoNCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9o dHQuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvaHR0LmgNCitpbmRleCA4MDhj MTFmNGNjYzIuLmQ5YzUwZjM2YmY2NSAxMDA2NDQNCistLS0gYS9kcml2ZXJzL25ldC93aXJlbGVz cy9hdGgvYXRoMTBrL2h0dC5oDQorKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEw ay9odHQuaA0KK0BAIC02OTMsNiArNjkzLDI2IEBAIHN0cnVjdCBodHRfZGF0YV90eF9jb21wbGV0 aW9uIHsNCisgCV9fbGUxNiBtc2R1c1swXTsgLyogdmFyaWFibGUgbGVuZ3RoIGJhc2VkIG9uICVu dW1fbXNkdXMgKi8NCisgfSBfX3BhY2tlZDsNCisgDQorK3N0cnVjdCBtc2R1X3J4X2NvbXBsX2lu Zm9fY3Qgew0KKysJX19sZTE2IGlkOyAvKiBtc2R1IGlkICovDQorKwl1OCB0eF9yYXRlX2NvZGU7 IC8qIHdoYXQgcmF0ZSBpbmRleCB0aGUgZmlybXdhcmUgcmVwb3J0cyB0cmFuc21pdHRpbmcgYXQu ICovDQorKwl1OCB0eF9yYXRlX2ZsYWdzOyAvKiB3aGF0IHJhdGUgZmxhZ3MsIFNlZSBBVEgxMEtf UkNfRkxBR19TR0ksIGV0YyAqLw0KKyt9Ow0KKysNCisrc3RydWN0IGh0dF9kYXRhX3R4X2NvbXBs ZXRpb25fY3Qgew0KKysJdW5pb24gew0KKysJCXU4IGZsYWdzOw0KKysJCXN0cnVjdCB7DQorKwkJ CXU4IHN0YXR1czozLA0KKysJCQkgICB0aWQ6NCwNCisrCQkJICAgdGlkX2ludmFsaWQ6MTsNCisr CQl9IF9fcGFja2VkOw0KKysJfSBfX3BhY2tlZDsNCisrCXU4IG51bV9tc2R1czsNCisrCXU4IHJz dmQwOw0KKysJc3RydWN0IG1zZHVfcnhfY29tcGxfaW5mb19jdCBtc2R1c1swXTsgLyogdmFyaWFi bGUgbGVuZ3RoIGJhc2VkIG9uICVudW1fbXNkdXMgKi8NCisrfSBfX3BhY2tlZDsNCisrDQorIHN0 cnVjdCBodHRfdHhfY29tcGxfaW5kX2Jhc2Ugew0KKyAJdTMyIGhkcjsNCisgCXUxNiBwYXlsb2Fk WzEvKm9yIG1vcmUqL107DQorQEAgLTEyNzYsNiArMTI5Niw3IEBAIHN0cnVjdCBodHRfcmVzcCB7 DQorIAkJc3RydWN0IGh0dF92ZXJfcmVzcCB2ZXJfcmVzcDsNCisgCQlzdHJ1Y3QgaHR0X21nbXRf dHhfY29tcGxldGlvbiBtZ210X3R4X2NvbXBsZXRpb247DQorIAkJc3RydWN0IGh0dF9kYXRhX3R4 X2NvbXBsZXRpb24gZGF0YV90eF9jb21wbGV0aW9uOw0KKysJCXN0cnVjdCBodHRfZGF0YV90eF9j b21wbGV0aW9uX2N0IGRhdGFfdHhfY29tcGxldGlvbl9jdDsNCisgCQlzdHJ1Y3QgaHR0X3J4X2lu ZGljYXRpb24gcnhfaW5kOw0KKyAJCXN0cnVjdCBodHRfcnhfZnJhZ21lbnRfaW5kaWNhdGlvbiBy eF9mcmFnX2luZDsNCisgCQlzdHJ1Y3QgaHR0X3J4X3BlZXJfbWFwIHBlZXJfbWFwOw0KK0BAIC0x Mjk2LDggKzEzMTcsMjIgQEAgc3RydWN0IGh0dF9yZXNwIHsNCisgDQorIC8qKiogaG9zdCBzaWRl IHN0cnVjdHVyZXMgZm9sbG93ICoqKi8NCisgDQorKy8qIHR4LXJhdGUgZmxhZ3MgZmllbGQgZGVm aW5pdGlvbnMgKi8NCisrI2RlZmluZSBBVEgxMEtfUkNfRkxBR19DSEFJTl9NQVNLIDB4MDcgLyog aWRlbnRpZmllcyB0eCBjaGFpbiBjb25maWcgKDEsNSw3KSAqLw0KKysjZGVmaW5lIEFUSDEwS19S Q19GTEFHX09ORV9DSEFJTiAgICAgMQ0KKysjZGVmaW5lIEFUSDEwS19SQ19GTEFHX1RXT19DSEFJ TiAgICAgNQ0KKysjZGVmaW5lIEFUSDEwS19SQ19GTEFHX1RIUkVFX0NIQUlOICAgNw0KKysjZGVm aW5lIEFUSDEwS19SQ19GTEFHX1NHSSAgICAgICAgMHgwOCAvKiB1c2UgSFQgU0dJIGlmIHNldCAq Lw0KKysjZGVmaW5lIEFUSDEwS19SQ19GTEFHX1NUQkMgICAgICAgMHgxMCAvKiB1c2UgSFQgU1RC QyBpZiBzZXQgKi8NCisrI2RlZmluZSBBVEgxMEtfUkNfRkxBR180ME1IWiAgICAgIDB4MjAgLyog NDAgbWh6IG1vZGUgKi8NCisrI2RlZmluZSBBVEgxMEtfUkNfRkxBR184ME1IWiAgICAgIDB4NDAg LyogODAgbWh6IG1vZGUgKi8NCisrI2RlZmluZSBBVEgxMEtfUkNfRkxBR18xNjBNSFogICAgIDB4 ODAgLyogMTYwIG1oeiBtb2RlICovDQorKw0KKysNCisgc3RydWN0IGh0dF90eF9kb25lIHsNCist CXUzMiBtc2R1X2lkOw0KKysJdTE2IG1zZHVfaWQ7DQorKwl1OCB0eF9yYXRlX2NvZGU7IC8qIENU IGZpcm13YXJlIG9ubHkgKi8NCisrCXU4IHR4X3JhdGVfZmxhZ3M7IC8qIENUIGZpcm13YXJlIG9u bHkgKi8NCisgCWJvb2wgZGlzY2FyZDsNCisgCWJvb2wgbm9fYWNrOw0KKyAJYm9vbCBzdWNjZXNz Ow0KK2RpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2h0dF9yeC5j IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9odHRfcnguYw0KK2luZGV4IDc0NTRi ZjViYmRkNy4uOTUzYWIzNDBiNGIwIDEwMDY0NA0KKy0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNz L2F0aC9hdGgxMGsvaHR0X3J4LmMNCisrKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRo MTBrL2h0dF9yeC5jDQorQEAgLTE2NjgsMTAgKzE2NjgsMjQgQEAgc3RhdGljIHZvaWQgYXRoMTBr X2h0dF9yeF9mcm1fdHhfY29tcGwoc3RydWN0IGF0aDEwayAqYXIsDQorIAlhdGgxMGtfZGJnKGFy LCBBVEgxMEtfREJHX0hUVCwgImh0dCB0eCBjb21wbGV0aW9uIG51bV9tc2R1cyAlZFxuIiwNCisg CQkgICByZXNwLT5kYXRhX3R4X2NvbXBsZXRpb24ubnVtX21zZHVzKTsNCisgDQorLQlmb3IgKGkg PSAwOyBpIDwgcmVzcC0+ZGF0YV90eF9jb21wbGV0aW9uLm51bV9tc2R1czsgaSsrKSB7DQorLQkJ bXNkdV9pZCA9IHJlc3AtPmRhdGFfdHhfY29tcGxldGlvbi5tc2R1c1tpXTsNCistCQl0eF9kb25l Lm1zZHVfaWQgPSBfX2xlMTZfdG9fY3B1KG1zZHVfaWQpOw0KKy0JCWF0aDEwa190eHJ4X3R4X3Vu cmVmKGh0dCwgJnR4X2RvbmUpOw0KKysJaWYgKHRlc3RfYml0KEFUSDEwS19GV19GRUFUVVJFX1dN SV8xMFhfQ1QsIGFyLT5md19mZWF0dXJlcykpIHsNCisrCQkvKiBDVCBmaXJtd2FyZSByZXBvcnRz IHR4LXJhdGUta2JwcyBhcyB3ZWxsIGFzIHRoZSBtc2R1IGlkICovDQorKwkJZm9yIChpID0gMDsg aSA8IHJlc3AtPmRhdGFfdHhfY29tcGxldGlvbl9jdC5udW1fbXNkdXM7IGkrKykgew0KKysJCQlt c2R1X2lkID0gcmVzcC0+ZGF0YV90eF9jb21wbGV0aW9uX2N0Lm1zZHVzW2ldLmlkOw0KKysJCQl0 eF9kb25lLm1zZHVfaWQgPSBfX2xlMTZfdG9fY3B1KG1zZHVfaWQpOw0KKysJCQl0eF9kb25lLnR4 X3JhdGVfY29kZSA9IHJlc3AtPmRhdGFfdHhfY29tcGxldGlvbl9jdC5tc2R1c1tpXS50eF9yYXRl X2NvZGU7DQorKwkJCXR4X2RvbmUudHhfcmF0ZV9mbGFncyA9IHJlc3AtPmRhdGFfdHhfY29tcGxl dGlvbl9jdC5tc2R1c1tpXS50eF9yYXRlX2ZsYWdzOw0KKysJCQlhdGgxMGtfdHhyeF90eF91bnJl ZihodHQsICZ0eF9kb25lKTsNCisrCQl9DQorKwl9IGVsc2Ugew0KKysJCS8qIFVwdHJlYW0gZmly bXdhcmUgZG9lcyBub3QgcmVwb3J0IGFueSB0eC1yYXRlICovDQorKwkJdHhfZG9uZS50eF9yYXRl X2NvZGUgPSAwOw0KKysJCXR4X2RvbmUudHhfcmF0ZV9mbGFncyA9IDA7DQorKwkJZm9yIChpID0g MDsgaSA8IHJlc3AtPmRhdGFfdHhfY29tcGxldGlvbi5udW1fbXNkdXM7IGkrKykgew0KKysJCQlt c2R1X2lkID0gcmVzcC0+ZGF0YV90eF9jb21wbGV0aW9uLm1zZHVzW2ldOw0KKysJCQl0eF9kb25l Lm1zZHVfaWQgPSBfX2xlMTZfdG9fY3B1KG1zZHVfaWQpOw0KKysJCQlhdGgxMGtfdHhyeF90eF91 bnJlZihodHQsICZ0eF9kb25lKTsNCisrCQl9DQorIAl9DQorIH0NCisgDQorQEAgLTE5OTksNiAr MjAxMyw4IEBAIHZvaWQgYXRoMTBrX2h0dF90MmhfbXNnX2hhbmRsZXIoc3RydWN0IGF0aDEwayAq YXIsIHN0cnVjdCBza19idWZmICpza2IpDQorIA0KKyAJCXR4X2RvbmUubXNkdV9pZCA9DQorIAkJ CV9fbGUzMl90b19jcHUocmVzcC0+bWdtdF90eF9jb21wbGV0aW9uLmRlc2NfaWQpOw0KKysJCXR4 X2RvbmUudHhfcmF0ZV9jb2RlID0gMDsNCisrCQl0eF9kb25lLnR4X3JhdGVfZmxhZ3MgPSAwOw0K KyANCisgCQlzd2l0Y2ggKHN0YXR1cykgew0KKyAJCWNhc2UgSFRUX01HTVRfVFhfU1RBVFVTX09L Og0KK2RpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2h3LmggYi9k cml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2h3LmgNCitpbmRleCA0NjIyNGQyNzM0YzYu LjkyY2M1NzVjZjAwYyAxMDA2NDQNCistLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRo MTBrL2h3LmgNCisrKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2h3LmgNCitA QCAtMjgzLDYgKzI4Myw4IEBAIGVudW0gYXRoMTBrX2h3X3JhdGVfY2NrIHsNCisgI2RlZmluZSBU QVJHRVRfMTBYX05VTV9QRUVSU19DVAkJCSgzMiArIChUQVJHRVRfMTBYX05VTV9WREVWU19DVCkp DQorICNkZWZpbmUgVEFSR0VUXzEwWF9BU1RfU0tJRF9MSU1JVF9DVAkJKFRBUkdFVF8xMFhfTlVN X1BFRVJTX0NUICogVEFSR0VUXzEwWF9OVU1fUEVFUl9BU1QpDQorICNkZWZpbmUgVEFSR0VUXzEw WF9OVU1fUEVFUl9LRVlTX0NUICAgICAgICAgICAgIChXTUlfTUFYX0tFWV9JTkRFWCArIDEpIC8q IDQgKi8NCisrLyogVGhlc2UgZWF0IGEgZmFpciBjaHVuayBvZiBtZW1vcnkgb24gdGhlIGZpcm13 YXJlLCBzbyBkZWNyZWFzZSBpdCBhIGJpdC4gKi8NCisrI2RlZmluZSBUQVJHRVRfMTBYX05VTV9N U0RVX0RFU0NfQ1QJCTgwOCAvKiBtdXN0IGJlIG11bHRpcGxlIG9mIDggKi8NCisgDQorICNkZWZp bmUgVEFSR0VUXzEwWF9OVU1fT0ZGTE9BRF9QRUVSUwkJMA0KKyAjZGVmaW5lIFRBUkdFVF8xMFhf TlVNX09GRkxPQURfUkVPUkRFUl9CVUZTCTANCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2ly ZWxlc3MvYXRoL2F0aDEway90eHJ4LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBr L3R4cnguYw0KK2luZGV4IDgyNjUwMGJiMmIxYi4uNmYwZjhjNGYxOWY0IDEwMDY0NA0KKy0tLSBh L2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdHhyeC5jDQorKysrIGIvZHJpdmVycy9u ZXQvd2lyZWxlc3MvYXRoL2F0aDEway90eHJ4LmMNCitAQCAtNDQsNiArNDQsNDQgQEAgb3V0Og0K KyAJc3Bpbl91bmxvY2tfYmgoJmFyLT5kYXRhX2xvY2spOw0KKyB9DQorIA0KKytzdGF0aWMgdm9p ZCBhdGgxMGtfc2V0X3R4X3JhdGVfc3RhdHVzKHN0cnVjdCBpZWVlODAyMTFfdHhfcmF0ZSAqcmF0 ZSwNCisrCQkJCSAgICAgIGNvbnN0IHN0cnVjdCBodHRfdHhfZG9uZSAqdHhfZG9uZSkNCisrew0K KysJdTggbnNzID0gKHR4X2RvbmUtPnR4X3JhdGVfY29kZSA+PiA0KSAmIDB4MzsNCisrCXU4IHJh dGVfaWR4ID0gdHhfZG9uZS0+dHhfcmF0ZV9jb2RlICYgMHhGOw0KKysNCisrCXJhdGUtPmNvdW50 ID0gMTsNCisrCXJhdGUtPmlkeCA9IHJhdGVfaWR4OyAvKiBUT0RPOiAgTm90IHN1cmUgdGhpcyBp cyBjb3JyZWN0LiAqLw0KKysNCisrCWlmICgoKHR4X2RvbmUtPnR4X3JhdGVfY29kZSA+PiA2KSAm IDB4MykgPT0gMSkgew0KKysJCS8qIENDSyAqLw0KKysJCS8qIFRPRE86ICBOb3Qgc3VyZSBhYm91 dCB0aGlzLiAqLw0KKysJCS8qIHJhdGUtPmZsYWdzIHw9IElFRUU4MDIxMV9UWF9SQ19NQ1M7ICov DQorKwl9DQorKw0KKysJaWYgKCh0eF9kb25lLT50eF9yYXRlX2NvZGUgJiAweGNjKSA9PSAweDQ0 KQ0KKysJCXJhdGUtPmZsYWdzIHw9IElFRUU4MDIxMV9UWF9SQ19VU0VfU0hPUlRfUFJFQU1CTEU7 DQorKw0KKysJaWYgKCh0eF9kb25lLT50eF9yYXRlX2NvZGUgJiAweGMwKSA9PSAweDgwKQ0KKysJ CXJhdGUtPmZsYWdzIHw9IElFRUU4MDIxMV9UWF9SQ19NQ1M7DQorKw0KKysJaWYgKCh0eF9kb25l LT50eF9yYXRlX2NvZGUgJiAweGMwKSA9PSAweGMwKSB7DQorKwkJcmF0ZS0+ZmxhZ3MgfD0gSUVF RTgwMjExX1RYX1JDX1ZIVF9NQ1M7DQorKwkJLyogVE9ETy1CRU46ICBOb3Qgc3VyZSB0aGlzIGlz IGNvcnJlY3QuICovDQorKwkJcmF0ZS0+aWR4ID0gKG5zcyA8PCA0KSB8IHJhdGVfaWR4Ow0KKysJ fQ0KKysNCisrCWlmICh0eF9kb25lLT50eF9yYXRlX2ZsYWdzICYgQVRIMTBLX1JDX0ZMQUdfNDBN SFopDQorKwkJcmF0ZS0+ZmxhZ3MgfD0gSUVFRTgwMjExX1RYX1JDXzQwX01IWl9XSURUSDsNCisr CWlmICh0eF9kb25lLT50eF9yYXRlX2ZsYWdzICYgQVRIMTBLX1JDX0ZMQUdfODBNSFopDQorKwkJ cmF0ZS0+ZmxhZ3MgfD0gSUVFRTgwMjExX1RYX1JDXzgwX01IWl9XSURUSDsNCisrCWlmICh0eF9k b25lLT50eF9yYXRlX2ZsYWdzICYgQVRIMTBLX1JDX0ZMQUdfMTYwTUhaKQ0KKysJCXJhdGUtPmZs YWdzIHw9IElFRUU4MDIxMV9UWF9SQ18xNjBfTUhaX1dJRFRIOw0KKysJaWYgKHR4X2RvbmUtPnR4 X3JhdGVfZmxhZ3MgJiBBVEgxMEtfUkNfRkxBR19TR0kpDQorKwkJcmF0ZS0+ZmxhZ3MgfD0gSUVF RTgwMjExX1RYX1JDX1NIT1JUX0dJOw0KKyt9DQorKw0KKysNCisgdm9pZCBhdGgxMGtfdHhyeF90 eF91bnJlZihzdHJ1Y3QgYXRoMTBrX2h0dCAqaHR0LA0KKyAJCQkgIGNvbnN0IHN0cnVjdCBodHRf dHhfZG9uZSAqdHhfZG9uZSkNCisgew0KK0BAIC0xMDIsNiArMTQwLDEyIEBAIHZvaWQgYXRoMTBr X3R4cnhfdHhfdW5yZWYoc3RydWN0IGF0aDEwa19odHQgKmh0dCwNCisgCWlmICh0eF9kb25lLT5z dWNjZXNzICYmIChpbmZvLT5mbGFncyAmIElFRUU4MDIxMV9UWF9DVExfTk9fQUNLKSkNCisgCQlp bmZvLT5mbGFncyB8PSBJRUVFODAyMTFfVFhfU1RBVF9OT0FDS19UUkFOU01JVFRFRDsNCisgDQor KwlpZiAodHhfZG9uZS0+dHhfcmF0ZV9jb2RlIHx8IHR4X2RvbmUtPnR4X3JhdGVfZmxhZ3MpIHsN CisrCQlhdGgxMGtfc2V0X3R4X3JhdGVfc3RhdHVzKCZpbmZvLT5zdGF0dXMucmF0ZXNbMF0sIHR4 X2RvbmUpOw0KKysJfSBlbHNlIHsNCisrCQlpbmZvLT5zdGF0dXMucmF0ZXNbMF0uaWR4ID0gLTE7 DQorKwl9DQorKw0KKyAJaWVlZTgwMjExX3R4X3N0YXR1cyhodHQtPmFyLT5odywgbXNkdSk7DQor IAkvKiB3ZSBkbyBub3Qgb3duIHRoZSBtc2R1IGFueW1vcmUgKi8NCisgDQorZGlmZiAtLWdpdCBh L2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLmMgYi9kcml2ZXJzL25ldC93aXJl bGVzcy9hdGgvYXRoMTBrL3dtaS5jDQoraW5kZXggZTkxYjg2ZDM5MmQ4Li42MzIyMTFlZmVlNWEg MTAwNjQ0DQorLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWkuYw0KKysr KyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLmMNCitAQCAtMzg1Myw5ICsz ODUzLDExIEBAIHN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqYXRoMTBrX3dtaV8xMF8xX29wX2dlbl9p bml0KHN0cnVjdCBhdGgxMGsgKmFyKQ0KKyAJCWVsc2UgaWYgKGF0aDEwa19tb2RwYXJhbV9ub2h3 Y3J5cHQpIHsNCisgCQkJYXRoMTBrX2VycihhciwgIm1vZHVsZSBwYXJhbSBub2h3Y3J5cHQgZW5h YmxlZCwgYnV0IGZpcm13YXJlIGRvZXMgbm90IHN1cHBvcnQgdGhpcyBmZWF0dXJlLiAgRGlzYWJs aW5nIHN3Y3J5cHQuXG4iKTsNCisgCQl9DQorKwkJY29uZmlnLnJ4X2RlY2FwX21vZGUgfD0gX19j cHVfdG9fbGUzMihBVEgxMGtfVVNFX1RYQ09NUExfVFhSQVRFKTsNCisgCQljb25maWcucm9hbV9v ZmZsb2FkX21heF92ZGV2ID0gMDsgLyogZGlzYWJsZSByb2FtaW5nICovDQorIAkJY29uZmlnLnJv YW1fb2ZmbG9hZF9tYXhfYXBfcHJvZmlsZXMgPSAwOyAvKiBkaXNhYmxlIHJvYW1pbmcgKi8NCisg CQljb25maWcubnVtX3BlZXJfa2V5cyA9IF9fY3B1X3RvX2xlMzIoVEFSR0VUXzEwWF9OVU1fUEVF Ul9LRVlTX0NUKTsNCisrCQljb25maWcubnVtX21zZHVfZGVzYyA9IF9fY3B1X3RvX2xlMzIoVEFS R0VUXzEwWF9OVU1fTVNEVV9ERVNDX0NUKTsNCisgCX0gZWxzZSB7DQorIAkJY29uZmlnLm51bV92 ZGV2cyA9IF9fY3B1X3RvX2xlMzIoVEFSR0VUXzEwWF9OVU1fVkRFVlMpOw0KKyAJCWNvbmZpZy5u dW1fcGVlcnMgPSBfX2NwdV90b19sZTMyKFRBUkdFVF8xMFhfTlVNX1BFRVJTKTsNCitAQCAtMzg2 Niw4ICszODY4LDEzIEBAIHN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqYXRoMTBrX3dtaV8xMF8xX29w X2dlbl9pbml0KHN0cnVjdCBhdGgxMGsgKmFyKQ0KKyAJCWNvbmZpZy5yb2FtX29mZmxvYWRfbWF4 X2FwX3Byb2ZpbGVzID0NCisgCQkJX19jcHVfdG9fbGUzMihUQVJHRVRfMTBYX1JPQU1fT0ZGTE9B RF9NQVhfQVBfUFJPRklMRVMpOw0KKyAJCWNvbmZpZy5udW1fcGVlcl9rZXlzID0gX19jcHVfdG9f bGUzMihUQVJHRVRfMTBYX05VTV9QRUVSX0tFWVMpOw0KKysJCWNvbmZpZy5udW1fbXNkdV9kZXNj ID0gX19jcHVfdG9fbGUzMihUQVJHRVRfMTBYX05VTV9NU0RVX0RFU0MpOw0KKyAJfQ0KKyAJY29u ZmlnLmFzdF9za2lkX2xpbWl0ID0gX19jcHVfdG9fbGUzMihza2lkX2xpbWl0KTsNCisrDQorKwkv KiBGaXJtd2FyZSB3aWxsIGNyYXNoIGlmIHRoaXMgaXMgbm90IGV2ZW4gbXVsdGlwbGUgb2YgOCAq Lw0KKysJQlVHX09OKGNvbmZpZy5udW1fbXNkdV9kZXNjICYgMHg3KTsNCisrDQorIAljb25maWcu bnVtX3RpZHMgPSBfX2NwdV90b19sZTMyKFRBUkdFVF8xMFhfTlVNX1RJRFMpOw0KKyAJY29uZmln LnR4X2NoYWluX21hc2sgPSBfX2NwdV90b19sZTMyKFRBUkdFVF8xMFhfVFhfQ0hBSU5fTUFTSyk7 DQorIAljb25maWcucnhfY2hhaW5fbWFzayA9IF9fY3B1X3RvX2xlMzIoVEFSR0VUXzEwWF9SWF9D SEFJTl9NQVNLKTsNCitAQCAtMzg5Nyw3ICszOTA0LDYgQEAgc3RhdGljIHN0cnVjdCBza19idWZm ICphdGgxMGtfd21pXzEwXzFfb3BfZ2VuX2luaXQoc3RydWN0IGF0aDEwayAqYXIpDQorIA0KKyAJ Y29uZmlnLnZvd19jb25maWcgPSBfX2NwdV90b19sZTMyKFRBUkdFVF8xMFhfVk9XX0NPTkZJRyk7 DQorIA0KKy0JY29uZmlnLm51bV9tc2R1X2Rlc2MgPSBfX2NwdV90b19sZTMyKFRBUkdFVF8xMFhf TlVNX01TRFVfREVTQyk7DQorIAljb25maWcubWF4X2ZyYWdfZW50cmllcyA9IF9fY3B1X3RvX2xl MzIoVEFSR0VUXzEwWF9NQVhfRlJBR19FTlRSSUVTKTsNCisgDQorIAlsZW4gPSBzaXplb2YoKmNt ZCkgKw0KK2RpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS5o IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWkuaA0KK2luZGV4IDJjZGQzNmRj YTUyOS4uNDNhYzI1ZWUxN2FlIDEwMDY0NA0KKy0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0 aC9hdGgxMGsvd21pLmgNCisrKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dt aS5oDQorQEAgLTE2NzgsNyArMTY3OCw5IEBAIHN0cnVjdCB3bWlfcmVzb3VyY2VfY29uZmlnIHsN CisgCSAqICBZb3Ugc2hvdWxkIHByb2JhYmx5IG5vdCBlbmFibGUgdGhpcyB1bmxlc3MgeW91IG5l ZWQgdG8NCisgCSAqICBjb25uZWN0IG11bHRpcGxlIHN0YXRpb25zIHRvIHNhbWUgQVAuDQorIAkg Ki8NCistCSNkZWZpbmUgQVRIMTBrX1VTRV9TV19SWF9DUllQVCAweDEwMDAwDQorKwkjZGVmaW5l IEFUSDEwa19VU0VfU1dfUlhfQ1JZUFQgICAgMHgxMDAwMA0KKysJLyogQXNrIGZpcm13YXJlIHRv IGluY2x1ZGUgdHgtcmF0ZSBpbiBjb21wbGV0aW9uIG1lc3NhZ2VzLiAqLw0KKysJI2RlZmluZSBB VEgxMGtfVVNFX1RYQ09NUExfVFhSQVRFIDB4MjAwMDANCisgCV9fbGUzMiByeF9kZWNhcF9tb2Rl Ow0KKyANCisgCS8qIHdoYXQgaXMgdGhlIG1heGltdW0gbnVtYmVyIG9mIHNjYW4gcmVxdWVzdHMg dGhhdCBjYW4gYmUgcXVldWVkICovDQpkaWZmIC0tZ2l0IGEvcGFja2FnZS9rZXJuZWwvbWFjODAy MTEvcGF0Y2hlcy85OTktMDA0MS1hdGgxMGstU3VwcG9ydC1jb25maWd1cmluZy1odGMtYnVmZmVy cy5wYXRjaCBiL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAwNDEtYXRoMTBr LVN1cHBvcnQtY29uZmlndXJpbmctaHRjLWJ1ZmZlcnMucGF0Y2gNCm5ldyBmaWxlIG1vZGUgMTAw NjQ0DQppbmRleCAwMDAwMDAwLi4zNGFhZDM0DQotLS0gL2Rldi9udWxsDQorKysgYi9wYWNrYWdl L2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDQxLWF0aDEway1TdXBwb3J0LWNvbmZpZ3Vy aW5nLWh0Yy1idWZmZXJzLnBhdGNoDQpAQCAtMCwwICsxLDc4IEBADQorRnJvbTogQmVuIEdyZWVh ciA8Z3JlZWFyYkBjYW5kZWxhdGVjaC5jb20+DQorRGF0ZTogVGh1LCAxNyBBcHIgMjAxNCAxMToy Mjo1NiAtMDcwMA0KK1N1YmplY3Q6IFtQQVRDSF0gYXRoMTBrOiBTdXBwb3J0IGNvbmZpZ3VyaW5n IGh0YyBidWZmZXJzLg0KKw0KK1NvbWUgb2YgdGhpcyBpcyBDVCBmaXJtd2FyZSBvbmx5LCBhbmQg aW4gcGFydGljdWxhciwNCitldmVuIHRoZSBub24gQ1Qgc3BlY2lmaWMgaHRjIHNldHRpbmdzIG1h eSBub3QgZnVsbHkNCit3b3JrIGFzIGV4cGVjdGVkIG9uIHVwc3RyZWFtIGZpcm13YXJlLg0KKy0t LQ0KKyBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2NvcmUuYyAgICAgIHwgMTYgKysr KysrKysrKysrKysrKw0KKyBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2h3LmggICAg ICAgIHwgMTAgKysrKysrKysrKw0KKyBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3Rh cmdhZGRycy5oIHwgIDYgKysrKysrDQorIDMgZmlsZXMgY2hhbmdlZCwgMzIgaW5zZXJ0aW9ucygr KQ0KKw0KK2RpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2NvcmUu YyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvY29yZS5jDQoraW5kZXggNDEwNGZj ZTYyYWYzLi4xMDNmZmE0NjcwMGUgMTAwNjQ0DQorLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3Mv YXRoL2F0aDEway9jb3JlLmMNCisrKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBr L2NvcmUuYw0KK0BAIC0xMjMsNiArMTIzLDIyIEBAIHN0YXRpYyBpbnQgYXRoMTBrX2luaXRfY29u ZmlndXJlX3RhcmdldChzdHJ1Y3QgYXRoMTBrICphcikNCisgCQlyZXR1cm4gcmV0Ow0KKyAJfQ0K KyANCisrCS8qIENvbmZpZ3VyZSBIVEMgY3JlZGl0cyBsb2dpYy4gKi8NCisrCXBhcmFtX2hvc3Qg PSAoVEFSR0VUX0hUQ19NQVhfQ09OVFJPTF9CVUZGRVJTIDw8IDE2KTsNCisrCXBhcmFtX2hvc3Qg fD0gKFRBUkdFVF9IVENfTUFYX1BFTkRJTkdfVFhDUkVESVRTX1JQVFMgPDwgMjApOw0KKysNCisr CS8qIE1heCB0eCBidWZmZXJzICh0eC1jcmVkaXRzKSwgQ1QgZmlybXdhcmUgb25seS4NCisrCSAq IGJ1dCBub3JtYWwgLjQ4NyBmaXJtd2FyZSB3aWxsIGp1c3QgaWdub3JlIGl0IGZpbmUuDQorKwkg Ki8NCisrCXBhcmFtX2hvc3QgfD0gKFRBUkdFVF9IVENfTUFYX1RYX0NSRURJVFNfQ1QgPDwgMjQp Ow0KKysNCisrCXJldCA9IGF0aDEwa19ibWlfd3JpdGUzMihhciwgaGlfbWJveF9pb19ibG9ja19z eiwNCisrCQkJCSBwYXJhbV9ob3N0KTsNCisrCWlmIChyZXQpIHsNCisrCQlhdGgxMGtfZXJyKGFy LCAiZmFpbGVkIHNldHRpbmcgSFRDIG1ib3gtaW8tYmxvY2stc3pcbiIpOw0KKysJCXJldHVybiBy ZXQ7DQorKwl9DQorKw0KKyAJLyogc2V0IHRoZSBmaXJtd2FyZSBtb2RlIHRvIFNUQS9JQlNTL0FQ ICovDQorIAlyZXQgPSBhdGgxMGtfYm1pX3JlYWQzMihhciwgaGlfb3B0aW9uX2ZsYWcsICZwYXJh bV9ob3N0KTsNCisgCWlmIChyZXQpIHsNCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxl c3MvYXRoL2F0aDEway9ody5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9ody5o DQoraW5kZXggOTJjYzU3NWNmMDBjLi4yMmJiODU4MGZjMDIgMTAwNjQ0DQorLS0tIGEvZHJpdmVy cy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9ody5oDQorKysrIGIvZHJpdmVycy9uZXQvd2lyZWxl c3MvYXRoL2F0aDEway9ody5oDQorQEAgLTI4Niw2ICsyODYsMTYgQEAgZW51bSBhdGgxMGtfaHdf cmF0ZV9jY2sgew0KKyAvKiBUaGVzZSBlYXQgYSBmYWlyIGNodW5rIG9mIG1lbW9yeSBvbiB0aGUg ZmlybXdhcmUsIHNvIGRlY3JlYXNlIGl0IGEgYml0LiAqLw0KKyAjZGVmaW5lIFRBUkdFVF8xMFhf TlVNX01TRFVfREVTQ19DVAkJODA4IC8qIG11c3QgYmUgbXVsdGlwbGUgb2YgOCAqLw0KKyANCisr LyogUmVsYXRlZCB0byBIVEMgYnVmZmVycyAqLw0KKysgLyogcmV0dXJuIGFueSBjcmVkaXQgaW1t ZWRpYXRlbHkgKi8NCisrI2RlZmluZSBUQVJHRVRfSFRDX01BWF9QRU5ESU5HX1RYQ1JFRElUU19S UFRTICAgMQ0KKysvKiA4IGN0cmwgYnVmZmVycyBmb3Igc2VuZGluZyBpbmZvIHRvIGhvc3QgKi8N CisrI2RlZmluZSBUQVJHRVRfSFRDX01BWF9DT05UUk9MX0JVRkZFUlMgICAgICAgICAgOA0KKysv KiBPbmx5IENUIGZpcm13YXJlIHdpbGwgYWN0dWFsbHkgdXNlIHRoaXMgdmFsdWUuICBFYWNoIGJ1 ZmZlciBpcyBjbG9zZSB0byAySw0KKysgKiBvZiBmaXJtd2FyZSBSQU0sIHNvIG5vdCBzdXJlIGlm IGluY3JlYXNpbmcgdGhpcyBpcyB3b3J0aCB0aGUgUkFNIGNvc3QuDQorKyAqLw0KKysjZGVmaW5l IFRBUkdFVF9IVENfTUFYX1RYX0NSRURJVFNfQ1QgICAgICAgICAgICAyDQorKw0KKyAjZGVmaW5l IFRBUkdFVF8xMFhfTlVNX09GRkxPQURfUEVFUlMJCTANCisgI2RlZmluZSBUQVJHRVRfMTBYX05V TV9PRkZMT0FEX1JFT1JERVJfQlVGUwkwDQorICNkZWZpbmUgVEFSR0VUXzEwWF9OVU1fUEVFUl9L RVlTCQkyDQorZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdGFy Z2FkZHJzLmggYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3RhcmdhZGRycy5oDQor aW5kZXggYTQxN2FhZTUyNjIzLi43OGU4NjllYjZlMzMgMTAwNjQ0DQorLS0tIGEvZHJpdmVycy9u ZXQvd2lyZWxlc3MvYXRoL2F0aDEway90YXJnYWRkcnMuaA0KKysrKyBiL2RyaXZlcnMvbmV0L3dp cmVsZXNzL2F0aC9hdGgxMGsvdGFyZ2FkZHJzLmgNCitAQCAtMTA5LDYgKzEwOSwxMiBAQCBzdHJ1 Y3QgaG9zdF9pbnRlcmVzdCB7DQorIAl1MzIgaGlfZGVzaXJlZF9iYXVkX3JhdGU7CQkJLyogMHg2 MCAqLw0KKyAJdTMyIGhpX2RiZ2xvZ19jb25maWc7CQkJCS8qIDB4NjQgKi8NCisgCXUzMiBoaV9l bmRfcmFtX3Jlc2VydmVfc3o7CQkJLyogMHg2OCAqLw0KKysJLyogVGhpcyBjb250cm9scyB0aGUg SFRDIHBpcGUgaW5pdCBzZXR1cC4NCisrCSAqIDB4MEYwMDAwICggeCA+PiAxNiAmIDB4ZikgaXMg bWFzayBvZiBjdHJsLWJ1ZmZlcnMtYWxsb2NhdGVkLg0KKysJICogMHhGMDAwMDAgKCB4ID4+IDIw ICYgMHhmKSBpcyBtYXNrIG9mIG1heC1lcC1wZW5kaW5nLWNyZWRpdC1ycHRzLg0KKysJICogMHhG RjAwMDAwMCAoeCA+PiAyNCAmIDB4ZmYpIGlzIHR4LWNyZWRpdHMgaW4gQ1QgZmlybXdhcmUgb25s eS4NCisrCSAqIFRoZSByZXN0IGFwcGVhcnMgdW4tdXNlZC4NCisrCSAqLw0KKyAJdTMyIGhpX21i b3hfaW9fYmxvY2tfc3o7CQkJLyogMHg2YyAqLw0KKyANCisgCXUzMiBoaV9udW1fYnBhdGNoX3N0 cmVhbXM7CQkJLyogMHg3MCAtLSB1bnVzZWQgKi8NCmRpZmYgLS1naXQgYS9wYWNrYWdlL2tlcm5l bC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDQyLWF0aDEway1TdXBwb3J0LWR1bXBpbmctY2VydGFp bi10YXJnZXQtcmVnaXN0ZXJzLnBhdGNoIGIvcGFja2FnZS9rZXJuZWwvbWFjODAyMTEvcGF0Y2hl cy85OTktMDA0Mi1hdGgxMGstU3VwcG9ydC1kdW1waW5nLWNlcnRhaW4tdGFyZ2V0LXJlZ2lzdGVy cy5wYXRjaA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAuLjJjM2IyNGINCi0t LSAvZGV2L251bGwNCisrKyBiL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAw NDItYXRoMTBrLVN1cHBvcnQtZHVtcGluZy1jZXJ0YWluLXRhcmdldC1yZWdpc3RlcnMucGF0Y2gN CkBAIC0wLDAgKzEsMzQ3IEBADQorRnJvbTogQmVuIEdyZWVhciA8Z3JlZWFyYkBjYW5kZWxhdGVj aC5jb20+DQorRGF0ZTogV2VkLCAzMSBEZWMgMjAxNCAxMzo0MDowNyAtMDgwMA0KK1N1YmplY3Q6 IFtQQVRDSF0gYXRoMTBrOiBTdXBwb3J0IGR1bXBpbmcgY2VydGFpbiB0YXJnZXQgcmVnaXN0ZXJz Lg0KKw0KK0hlbHBzIGRlYnVnIGZpcm13YXJlIGlzc3Vlcy4NCisNCitmdy1wb3dlcnVwLWZhaWwg Z2l2ZXMgdXNlci1zcGFjZSBhIG5vcm1hbC1pc2ggd2F5IHRvIGRldGVjdCB0aGF0DQorZmlybXdh cmUgaGFzIGZhaWxlZCB0byBzdGFydCBhbmQgdGhhdCBhIHJlYm9vdCBpcw0KK3Byb2JhYmx5IHJl cXVpcmVkLg0KKw0KK1NpZ25lZC1vZmYtYnk6IEJlbiBHcmVlYXIgPGdyZWVhcmJAY2FuZGVsYXRl Y2guY29tPg0KKy0tLQ0KKyBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2NvcmUuaCAg fCAgMjEgKysrKw0KKyBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2RlYnVnLmMgfCAx OTEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0NCisgZHJpdmVycy9uZXQvd2lyZWxl c3MvYXRoL2F0aDEway93bWkuaCAgIHwgIDM4ICsrKysrKysNCisgMyBmaWxlcyBjaGFuZ2VkLCAy NDcgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkNCisNCitkaWZmIC0tZ2l0IGEvZHJpdmVy cy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9jb3JlLmggYi9kcml2ZXJzL25ldC93aXJlbGVzcy9h dGgvYXRoMTBrL2NvcmUuaA0KK2luZGV4IDk2N2I5YmVjMjgyNC4uOTNhMDhiZDNiMjJjIDEwMDY0 NA0KKy0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvY29yZS5oDQorKysrIGIv ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9jb3JlLmgNCitAQCAtMjQ1LDYgKzI0NSwy NyBAQCBzdHJ1Y3QgYXRoMTBrX2Z3X3N0YXRzIHsNCisgCXN0cnVjdCBsaXN0X2hlYWQgcGRldnM7 DQorIAlzdHJ1Y3QgbGlzdF9oZWFkIHZkZXZzOw0KKyAJc3RydWN0IGxpc3RfaGVhZCBwZWVyczsN CisrDQorKwkvKiBSZWdpc3RlciBhbmQgcmVsYXRlZCBkdW1wLCBDVCBmaXJtd2FyZSBvbmx5LiAq Lw0KKysJdTMyIG1hY19maWx0ZXJfYWRkcl9sMzI7DQorKwl1MzIgbWFjX2ZpbHRlcl9hZGRyX3Ux NjsNCisrCXUzMiBkY3Vfc2xvdF90aW1lOw0KKysJdTMyIHBoeV9iYl9tb2RlX3NlbGVjdDsNCisr CXUzMiBwY3VfYnNzaWRfbDMyOw0KKysJdTMyIHBjdV9ic3NpZF91MTY7DQorKwl1MzIgcGN1X2Jz c2lkMl9sMzI7DQorKwl1MzIgcGN1X2Jzc2lkMl91MTY7DQorKwl1MzIgcGN1X3N0YV9hZGRyX2wz MjsNCisrCXUzMiBwY3Vfc3RhX2FkZHJfdTE2Ow0KKysJdTMyIG1hY19kbWFfY2ZnOw0KKysJdTMy IG1hY19kbWFfdHhjZmc7DQorKwl1MzIgcGN1X3J4ZmlsdGVyOw0KKysJdTMyIHBoeV9iYl9nZW5f Y29udHJvbHM7DQorKwl1MzIgc3dfcG93ZXJtb2RlOw0KKysJdTE2IHN3X2NoYWlubWFza190eDsN CisrCXUxNiBzd19jaGFpbm1hc2tfcng7DQorKwl1MzIgc3dfb3Btb2RlOw0KKysJdTMyIHN3X3J4 ZmlsdGVyOw0KKyB9Ow0KKyANCisgc3RydWN0IGF0aDEwa19kZnNfc3RhdHMgew0KK2RpZmYgLS1n aXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2RlYnVnLmMgYi9kcml2ZXJzL25l dC93aXJlbGVzcy9hdGgvYXRoMTBrL2RlYnVnLmMNCitpbmRleCBlZmYwZjM5ZjEzODQuLjVhNmQ1 OWE2OWUxYiAxMDA2NDQNCistLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2Rl YnVnLmMNCisrKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2RlYnVnLmMNCitA QCAtMzI3LDEyICszMjcsODQgQEAgdm9pZCBhdGgxMGtfZGVidWdfZndfc3RhdHNfcHJvY2Vzcyhz dHJ1Y3QgYXRoMTBrICphciwgc3RydWN0IHNrX2J1ZmYgKnNrYikNCisgCXNpemVfdCBudW1fcGVl cnM7DQorIAlzaXplX3QgbnVtX3ZkZXZzOw0KKyAJaW50IHJldDsNCisrCWNvbnN0IHN0cnVjdCB3 bWlfc3RhdHNfZXZlbnQgKmV2ID0gKHZvaWQgKilza2ItPmRhdGE7DQorIA0KKyAJSU5JVF9MSVNU X0hFQUQoJnN0YXRzLnBkZXZzKTsNCisgCUlOSVRfTElTVF9IRUFEKCZzdGF0cy52ZGV2cyk7DQor IAlJTklUX0xJU1RfSEVBRCgmc3RhdHMucGVlcnMpOw0KKyANCisgCXNwaW5fbG9ja19iaCgmYXIt PmRhdGFfbG9jayk7DQorKw0KKysJLyogQ1QgRmlybXdhcmUgb25seSAqLw0KKysJaWYgKF9fbGUz Ml90b19jcHUoZXYtPnN0YXRzX2lkKSA9PSBXTUlfUkVRVUVTVF9SRUdJU1RFUl9EVU1QKSB7DQor KwkJc3RydWN0IGF0aDEwa19yZWdfZHVtcCogcmVnZHVtcCA9IChzdHJ1Y3QgYXRoMTBrX3JlZ19k dW1wKikoZXYtPmRhdGEpOw0KKysJCXN0cnVjdCBhdGgxMGtfZndfc3RhdHMqIHNwdHIgPSAmYXIt PmRlYnVnLmZ3X3N0YXRzOw0KKysJCWludCBpOw0KKysJCWZvciAoaSA9IDA7IGkgPCBfX2xlMTZf dG9fY3B1KHJlZ2R1bXAtPmNvdW50KTsgaSsrKSB7DQorKwkJCXN3aXRjaCAoX19sZTE2X3RvX2Nw dShyZWdkdW1wLT5yZWdwYWlyW2ldLnJlZ19pZCkpIHsNCisrCQkJY2FzZSBSRUdfRFVNUF9OT05F Og0KKysJCQkJYnJlYWs7DQorKwkJCWNhc2UgTUFDX0ZJTFRFUl9BRERSX0wzMjoNCisrCQkJCXNw dHItPm1hY19maWx0ZXJfYWRkcl9sMzIgPSBfX2xlMzJfdG9fY3B1KHJlZ2R1bXAtPnJlZ3BhaXJb aV0ucmVnX3ZhbCk7DQorKwkJCQlicmVhazsNCisrCQkJY2FzZSBNQUNfRklMVEVSX0FERFJfVTE2 Og0KKysJCQkJc3B0ci0+bWFjX2ZpbHRlcl9hZGRyX3UxNiA9IF9fbGUzMl90b19jcHUocmVnZHVt cC0+cmVncGFpcltpXS5yZWdfdmFsKTsNCisrCQkJCWJyZWFrOw0KKysJCQljYXNlIERDVV9TTE9U X1RJTUU6DQorKwkJCQlzcHRyLT5kY3Vfc2xvdF90aW1lID0gX19sZTMyX3RvX2NwdShyZWdkdW1w LT5yZWdwYWlyW2ldLnJlZ192YWwpOw0KKysJCQkJYnJlYWs7DQorKwkJCWNhc2UgUEhZX0JCX01P REVfU0VMRUNUOg0KKysJCQkJc3B0ci0+cGh5X2JiX21vZGVfc2VsZWN0ID0gX19sZTMyX3RvX2Nw dShyZWdkdW1wLT5yZWdwYWlyW2ldLnJlZ192YWwpOw0KKysJCQkJYnJlYWs7DQorKwkJCWNhc2Ug UENVX0JTU0lEX0wzMjoNCisrCQkJCXNwdHItPnBjdV9ic3NpZF9sMzIgPSBfX2xlMzJfdG9fY3B1 KHJlZ2R1bXAtPnJlZ3BhaXJbaV0ucmVnX3ZhbCk7DQorKwkJCQlicmVhazsNCisrCQkJY2FzZSBQ Q1VfQlNTSURfVTE2Og0KKysJCQkJc3B0ci0+cGN1X2Jzc2lkX3UxNiA9IF9fbGUzMl90b19jcHUo cmVnZHVtcC0+cmVncGFpcltpXS5yZWdfdmFsKTsNCisrCQkJCWJyZWFrOw0KKysJCQljYXNlIFBD VV9CU1NJRDJfTDMyOg0KKysJCQkJc3B0ci0+cGN1X2Jzc2lkX2wzMiA9IF9fbGUzMl90b19jcHUo cmVnZHVtcC0+cmVncGFpcltpXS5yZWdfdmFsKTsNCisrCQkJCWJyZWFrOw0KKysJCQljYXNlIFBD VV9CU1NJRDJfVTE2Og0KKysJCQkJc3B0ci0+cGN1X2Jzc2lkX3UxNiA9IF9fbGUzMl90b19jcHUo cmVnZHVtcC0+cmVncGFpcltpXS5yZWdfdmFsKTsNCisrCQkJCWJyZWFrOw0KKysJCQljYXNlIFBD VV9TVEFfQUREUl9VMTY6DQorKwkJCQlzcHRyLT5wY3Vfc3RhX2FkZHJfdTE2ID0gX19sZTMyX3Rv X2NwdShyZWdkdW1wLT5yZWdwYWlyW2ldLnJlZ192YWwpOw0KKysJCQkJYnJlYWs7DQorKwkJCWNh c2UgTUFDX0RNQV9DRkc6DQorKwkJCQlzcHRyLT5tYWNfZG1hX2NmZyA9IF9fbGUzMl90b19jcHUo cmVnZHVtcC0+cmVncGFpcltpXS5yZWdfdmFsKTsNCisrCQkJCWJyZWFrOw0KKysJCQljYXNlIE1B Q19ETUFfVFhDRkc6DQorKwkJCQlzcHRyLT5tYWNfZG1hX3R4Y2ZnID0gX19sZTMyX3RvX2NwdShy ZWdkdW1wLT5yZWdwYWlyW2ldLnJlZ192YWwpOw0KKysJCQkJYnJlYWs7DQorKwkJCWNhc2UgUENV X1NUQV9BRERSX0wzMjoNCisrCQkJCXNwdHItPnBjdV9zdGFfYWRkcl9sMzIgPSBfX2xlMzJfdG9f Y3B1KHJlZ2R1bXAtPnJlZ3BhaXJbaV0ucmVnX3ZhbCk7DQorKwkJCQlicmVhazsNCisrCQkJY2Fz ZSBQQ1VfUlhGSUxURVI6DQorKwkJCQlzcHRyLT5wY3VfcnhmaWx0ZXIgPSBfX2xlMzJfdG9fY3B1 KHJlZ2R1bXAtPnJlZ3BhaXJbaV0ucmVnX3ZhbCk7DQorKwkJCQlicmVhazsNCisrCQkJY2FzZSBQ SFlfQkJfR0VOX0NPTlRST0xTOg0KKysJCQkJc3B0ci0+cGh5X2JiX2dlbl9jb250cm9scyA9IF9f bGUzMl90b19jcHUocmVnZHVtcC0+cmVncGFpcltpXS5yZWdfdmFsKTsNCisrCQkJCWJyZWFrOw0K KysJCQljYXNlIFNXX1BPV0VSTU9ERToNCisrCQkJCXNwdHItPnN3X3Bvd2VybW9kZSA9IF9fbGUz Ml90b19jcHUocmVnZHVtcC0+cmVncGFpcltpXS5yZWdfdmFsKTsNCisrCQkJCWJyZWFrOw0KKysJ CQljYXNlIFNXX0NIQUlOTUFTSzoNCisrCQkJCXNwdHItPnN3X2NoYWlubWFza190eCA9IChfX2xl MzJfdG9fY3B1KHJlZ2R1bXAtPnJlZ3BhaXJbaV0ucmVnX3ZhbCkgPj4gMTYpOw0KKysJCQkJc3B0 ci0+c3dfY2hhaW5tYXNrX3J4ID0gX19sZTMyX3RvX2NwdShyZWdkdW1wLT5yZWdwYWlyW2ldLnJl Z192YWwpOw0KKysJCQkJYnJlYWs7DQorKwkJCWNhc2UgU1dfT1BNT0RFOg0KKysJCQkJc3B0ci0+ c3dfb3Btb2RlID0gX19sZTMyX3RvX2NwdShyZWdkdW1wLT5yZWdwYWlyW2ldLnJlZ192YWwpOw0K KysJCQkJYnJlYWs7DQorKwkJCWNhc2UgU1dfUlhGSUxURVI6DQorKwkJCQlzcHRyLT5zd19yeGZp bHRlciA9IF9fbGUzMl90b19jcHUocmVnZHVtcC0+cmVncGFpcltpXS5yZWdfdmFsKTsNCisrCQkJ CWJyZWFrOw0KKysJCQl9Lyogc3dpdGNoICovDQorKwkJfQ0KKysJCWNvbXBsZXRlKCZhci0+ZGVi dWcuZndfc3RhdHNfY29tcGxldGUpOw0KKysJCWdvdG8gdW5sb2NrOw0KKysJfQ0KKysNCisgCXJl dCA9IGF0aDEwa193bWlfcHVsbF9md19zdGF0cyhhciwgc2tiLCAmc3RhdHMpOw0KKyAJaWYgKHJl dCkgew0KKyAJCWF0aDEwa193YXJuKGFyLCAiZmFpbGVkIHRvIHB1bGwgZncgc3RhdHM6ICVkXG4i LCByZXQpOw0KK0BAIC03MTMsMTUgKzc4NSwxNyBAQCBzdGF0aWMgaW50IGF0aDEwa19md19zdGF0 c19yZWxlYXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQ0KKyAJcmV0 dXJuIDA7DQorIH0NCisgDQorLWludCBhdGgxMGtfcmVmcmVzaF9wZWVyX3N0YXRzKHN0cnVjdCBh dGgxMGsgKmFyKQ0KKytpbnQgYXRoMTBrX3JlZnJlc2hfcGVlcl9zdGF0c190KHN0cnVjdCBhdGgx MGsgKmFyLCB1MzIgdHlwZSkNCisgew0KKyAJaW50IHJldDsNCisgCXVuc2lnbmVkIGxvbmcgdGlt ZV9sZWZ0Ow0KKyANCisgCXJlaW5pdF9jb21wbGV0aW9uKCZhci0+ZGVidWcuZndfc3RhdHNfY29t cGxldGUpOw0KKy0JcmV0ID0gYXRoMTBrX3dtaV9yZXF1ZXN0X3N0YXRzKGFyLCBhci0+Zndfc3Rh dHNfcmVxX21hc2spOw0KKysJcmV0ID0gYXRoMTBrX3dtaV9yZXF1ZXN0X3N0YXRzKGFyLCB0eXBl KTsNCisrDQorIAlpZiAocmV0KSB7DQorLQkJYXRoMTBrX3dhcm4oYXIsICJjb3VsZCBub3QgcmVx dWVzdCBzdGF0cyAoJWQpXG4iLCByZXQpOw0KKysJCWF0aDEwa193YXJuKGFyLCAiY291bGQgbm90 IHJlcXVlc3Qgc3RhdHMgKHR5cGUgJWQgcmV0ICVkKVxuIiwNCisrCQkJICAgIHR5cGUsIHJldCk7 DQorIAkJcmV0dXJuIHJldDsNCisgCX0NCisgDQorQEAgLTczNCw2ICs4MDgsMTA3IEBAIGludCBh dGgxMGtfcmVmcmVzaF9wZWVyX3N0YXRzKHN0cnVjdCBhdGgxMGsgKmFyKQ0KKyAJcmV0dXJuIDA7 DQorIH0NCisgDQorK2ludCBhdGgxMGtfcmVmcmVzaF9wZWVyX3N0YXRzKHN0cnVjdCBhdGgxMGsg KmFyKQ0KKyt7DQorKwlyZXR1cm4gYXRoMTBrX3JlZnJlc2hfcGVlcl9zdGF0c190KGFyLCBhci0+ Zndfc3RhdHNfcmVxX21hc2spOw0KKyt9DQorKw0KKytpbnQgYXRoMTBrX3JlZnJlc2hfdGFyZ2V0 X3JlZ3Moc3RydWN0IGF0aDEwayAqYXIpDQorK3sNCisrCWlmICh0ZXN0X2JpdChBVEgxMEtfRldf RkVBVFVSRV9XTUlfMTBYX0NULA0KKysJCSAgICAgYXItPmZ3X2ZlYXR1cmVzKSkNCisrCQlyZXR1 cm4gYXRoMTBrX3JlZnJlc2hfcGVlcl9zdGF0c190KGFyLCBXTUlfUkVRVUVTVF9SRUdJU1RFUl9E VU1QKTsNCisrCXJldHVybiAwOyAvKiBmYWlsIHNpbGVudGx5IGlmIGZpcm13YXJlIGRvZXMgbm90 IHN1cHBvcnQgdGhpcyBvcHRpb24uICovDQorK30NCisrDQorKw0KKytzdGF0aWMgc3NpemVfdCBh dGgxMGtfcmVhZF9md19yZWdzKHN0cnVjdCBmaWxlICpmaWxlLCBjaGFyIF9fdXNlciAqdXNlcl9i dWYsDQorKwkJCQkgICBzaXplX3QgY291bnQsIGxvZmZfdCAqcHBvcykNCisrew0KKysJc3RydWN0 IGF0aDEwayAqYXIgPSBmaWxlLT5wcml2YXRlX2RhdGE7DQorKwlzdHJ1Y3QgYXRoMTBrX2Z3X3N0 YXRzICpmd19yZWdzOw0KKysJY2hhciAqYnVmID0gTlVMTDsNCisrCXVuc2lnbmVkIGludCBsZW4g PSAwLCBidWZfbGVuID0gODAwMDsNCisrCXNzaXplX3QgcmV0X2NudCA9IDA7DQorKwlpbnQgcmV0 Ow0KKysNCisrCWZ3X3JlZ3MgPSAmYXItPmRlYnVnLmZ3X3N0YXRzOw0KKysNCisrCW11dGV4X2xv Y2soJmFyLT5jb25mX211dGV4KTsNCisrDQorKwlpZiAoYXItPnN0YXRlICE9IEFUSDEwS19TVEFU RV9PTikNCisrCQlnb3RvIGV4aXQ7DQorKw0KKysJYnVmID0ga3phbGxvYyhidWZfbGVuLCBHRlBf S0VSTkVMKTsNCisrCWlmICghYnVmKQ0KKysJCWdvdG8gZXhpdDsNCisrDQorKwlyZXQgPSBhdGgx MGtfcmVmcmVzaF90YXJnZXRfcmVncyhhcik7DQorKwlpZiAocmV0KQ0KKysJCWdvdG8gZXhpdDsN CisrDQorKwlzcGluX2xvY2tfYmgoJmFyLT5kYXRhX2xvY2spOw0KKysJbGVuICs9IHNjbnByaW50 ZihidWYgKyBsZW4sIGJ1Zl9sZW4gLSBsZW4sICJcbiIpOw0KKysJbGVuICs9IHNjbnByaW50Zihi dWYgKyBsZW4sIGJ1Zl9sZW4gLSBsZW4sICIlMzBzXG4iLA0KKysJCQkgImF0aDEwayBUYXJnZXQg UmVnaXN0ZXIgRHVtcCIpOw0KKysJbGVuICs9IHNjbnByaW50ZihidWYgKyBsZW4sIGJ1Zl9sZW4g LSBsZW4sICIlMzBzXG5cbiIsDQorKwkJCQkgIj09PT09PT09PT09PT09PT09Iik7DQorKw0KKysJ bGVuICs9IHNjbnByaW50ZihidWYgKyBsZW4sIGJ1Zl9sZW4gLSBsZW4sICIlMzBzIDB4JTA4eFxu IiwNCisrCQkJICJNQUMtRklMVEVSLUFERFItTDMyIiwgZndfcmVncy0+bWFjX2ZpbHRlcl9hZGRy X2wzMik7DQorKwlsZW4gKz0gc2NucHJpbnRmKGJ1ZiArIGxlbiwgYnVmX2xlbiAtIGxlbiwgIiUz MHMgMHglMDh4XG4iLA0KKysJCQkgIk1BQy1GSUxURVItQUREUi1VMTYiLCBmd19yZWdzLT5tYWNf ZmlsdGVyX2FkZHJfdTE2KTsNCisrCWxlbiArPSBzY25wcmludGYoYnVmICsgbGVuLCBidWZfbGVu IC0gbGVuLCAiJTMwcyAweCUwOHhcbiIsDQorKwkJCSAiRENVLVNMT1QtVElNRSIsIGZ3X3JlZ3Mt PmRjdV9zbG90X3RpbWUpOw0KKysJbGVuICs9IHNjbnByaW50ZihidWYgKyBsZW4sIGJ1Zl9sZW4g LSBsZW4sICIlMzBzIDB4JTA4eFxuIiwNCisrCQkJICJQSFktTU9ERS1TRUxFQ1QiLCBmd19yZWdz LT5waHlfYmJfbW9kZV9zZWxlY3QpOw0KKysJbGVuICs9IHNjbnByaW50ZihidWYgKyBsZW4sIGJ1 Zl9sZW4gLSBsZW4sICIlMzBzIDB4JTA4eFxuIiwNCisrCQkJICJQSFktQkItR0VOLUNPTlRST0xT IiwgZndfcmVncy0+cGh5X2JiX2dlbl9jb250cm9scyk7DQorKwlsZW4gKz0gc2NucHJpbnRmKGJ1 ZiArIGxlbiwgYnVmX2xlbiAtIGxlbiwgIiUzMHMgMHglMDh4XG4iLA0KKysJCQkgIlBDVS1CU1NJ RC1MMzIiLCBmd19yZWdzLT5wY3VfYnNzaWRfbDMyKTsNCisrCWxlbiArPSBzY25wcmludGYoYnVm ICsgbGVuLCBidWZfbGVuIC0gbGVuLCAiJTMwcyAweCUwOHhcbiIsDQorKwkJCSAiUENVLUJTU0lE LVUxNiIsIGZ3X3JlZ3MtPnBjdV9ic3NpZF91MTYpOw0KKysJbGVuICs9IHNjbnByaW50ZihidWYg KyBsZW4sIGJ1Zl9sZW4gLSBsZW4sICIlMzBzIDB4JTA4eFxuIiwNCisrCQkJICJQQ1UtQlNTSUQy LUwzMiIsIGZ3X3JlZ3MtPnBjdV9ic3NpZDJfbDMyKTsNCisrCWxlbiArPSBzY25wcmludGYoYnVm ICsgbGVuLCBidWZfbGVuIC0gbGVuLCAiJTMwcyAweCUwOHhcbiIsDQorKwkJCSAiUENVLUJTU0lE Mi1VMTYiLCBmd19yZWdzLT5wY3VfYnNzaWQyX3UxNik7DQorKwlsZW4gKz0gc2NucHJpbnRmKGJ1 ZiArIGxlbiwgYnVmX2xlbiAtIGxlbiwgIiUzMHMgMHglMDh4XG4iLA0KKysJCQkgIlBDVS1TVEEt QUREUi1MMzIiLCBmd19yZWdzLT5wY3Vfc3RhX2FkZHJfbDMyKTsNCisrCWxlbiArPSBzY25wcmlu dGYoYnVmICsgbGVuLCBidWZfbGVuIC0gbGVuLCAiJTMwcyAweCUwOHhcbiIsDQorKwkJCSAiUENV LVNUQS1BRERSLVUxNiIsIGZ3X3JlZ3MtPnBjdV9zdGFfYWRkcl91MTYpOw0KKysJbGVuICs9IHNj bnByaW50ZihidWYgKyBsZW4sIGJ1Zl9sZW4gLSBsZW4sICIlMzBzIDB4JTA4eFxuIiwNCisrCQkJ ICJNQUMtRE1BLUNGRyIsIGZ3X3JlZ3MtPm1hY19kbWFfY2ZnKTsNCisrCWxlbiArPSBzY25wcmlu dGYoYnVmICsgbGVuLCBidWZfbGVuIC0gbGVuLCAiJTMwcyAweCUwOHhcbiIsDQorKwkJCSAiTUFD LURNQS1UWENGRyIsIGZ3X3JlZ3MtPm1hY19kbWFfdHhjZmcpOw0KKysNCisrCWxlbiArPSBzY25w cmludGYoYnVmICsgbGVuLCBidWZfbGVuIC0gbGVuLCAiJTMwcyAweCUwOHhcbiIsDQorKwkJCSAi U1ctUE9XRVJNT0RFIiwgZndfcmVncy0+c3dfcG93ZXJtb2RlKTsNCisrCWxlbiArPSBzY25wcmlu dGYoYnVmICsgbGVuLCBidWZfbGVuIC0gbGVuLCAiJTMwcyAweCUwOHhcbiIsDQorKwkJCSAiU1ct Q0hBSU5NQVNLLVRYIiwgKHUzMikoZndfcmVncy0+c3dfY2hhaW5tYXNrX3R4KSk7DQorKwlsZW4g Kz0gc2NucHJpbnRmKGJ1ZiArIGxlbiwgYnVmX2xlbiAtIGxlbiwgIiUzMHMgMHglMDh4XG4iLA0K KysJCQkgIlNXLUNIQUlOTUFTSy1SWCIsICh1MzIpKGZ3X3JlZ3MtPnN3X2NoYWlubWFza19yeCkp Ow0KKysJbGVuICs9IHNjbnByaW50ZihidWYgKyBsZW4sIGJ1Zl9sZW4gLSBsZW4sICIlMzBzIDB4 JTA4eFxuIiwNCisrCQkJICJTVy1PUE1PREUiLCBmd19yZWdzLT5zd19vcG1vZGUpOw0KKysNCisr CWxlbiArPSBzY25wcmludGYoYnVmICsgbGVuLCBidWZfbGVuIC0gbGVuLCAiJTMwcyAweCUwOHhc biIsDQorKwkJCSAiTUFDLVBDVS1SWEZJTFRFUiIsIGZ3X3JlZ3MtPnBjdV9yeGZpbHRlcik7DQor KwlsZW4gKz0gc2NucHJpbnRmKGJ1ZiArIGxlbiwgYnVmX2xlbiAtIGxlbiwgIiUzMHMgMHglMDh4 XG4iLA0KKysJCQkgIlNXLVJYRklMVEVSIiwgZndfcmVncy0+c3dfcnhmaWx0ZXIpOw0KKysNCisr CXNwaW5fdW5sb2NrX2JoKCZhci0+ZGF0YV9sb2NrKTsNCisrDQorKwlpZiAobGVuID4gYnVmX2xl bikNCisrCQlsZW4gPSBidWZfbGVuOw0KKysNCisrCXJldF9jbnQgPSBzaW1wbGVfcmVhZF9mcm9t X2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgbGVuKTsNCisrDQorK2V4aXQ6DQor KwltdXRleF91bmxvY2soJmFyLT5jb25mX211dGV4KTsNCisrCWtmcmVlKGJ1Zik7DQorKwlyZXR1 cm4gcmV0X2NudDsNCisrfQ0KKysNCisrDQorIHN0YXRpYyBzc2l6ZV90IGF0aDEwa19md19zdGF0 c19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLCBjaGFyIF9fdXNlciAqdXNlcl9idWYsDQorIAkJCQkg ICAgc2l6ZV90IGNvdW50LCBsb2ZmX3QgKnBwb3MpDQorIHsNCitAQCAtODEyLDYgKzk4NywxMyBA QCBzdGF0aWMgaW50IGF0aDEwa19kZWJ1Z19md19hc3NlcnQoc3RydWN0IGF0aDEwayAqYXIpDQor IAkJCQkgICBhci0+d21pLmNtZC0+dmRldl9pbnN0YWxsX2tleV9jbWRpZCk7DQorIH0NCisgDQor K3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGZvcHNfZndfcmVncyA9IHsNCisr CS5yZWFkID0gYXRoMTBrX3JlYWRfZndfcmVncywNCisrCS5vcGVuID0gc2ltcGxlX29wZW4sDQor Kwkub3duZXIgPSBUSElTX01PRFVMRSwNCisrCS5sbHNlZWsgPSBkZWZhdWx0X2xsc2VlaywNCisr fTsNCisrDQorIHN0YXRpYyBzc2l6ZV90IGF0aDEwa19yZWFkX3NpbXVsYXRlX2Z3X2NyYXNoKHN0 cnVjdCBmaWxlICpmaWxlLA0KKyAJCQkJCSAgICAgY2hhciBfX3VzZXIgKnVzZXJfYnVmLA0KKyAJ CQkJCSAgICAgc2l6ZV90IGNvdW50LCBsb2ZmX3QgKnBwb3MpDQorQEAgLTIyOTgsNiArMjQ4MCw5 IEBAIGludCBhdGgxMGtfZGVidWdfcmVnaXN0ZXIoc3RydWN0IGF0aDEwayAqYXIpDQorIAlkZWJ1 Z2ZzX2NyZWF0ZV9maWxlKCJmd19yZXNldF9zdGF0cyIsIFNfSVJVU1IsIGFyLT5kZWJ1Zy5kZWJ1 Z2ZzX3BoeSwNCisgCQkJICAgIGFyLCAmZm9wc19md19yZXNldF9zdGF0cyk7DQorIA0KKysJZGVi dWdmc19jcmVhdGVfZmlsZSgiZndfcmVncyIsIFNfSVJVU1IsIGFyLT5kZWJ1Zy5kZWJ1Z2ZzX3Bo eSwgYXIsDQorKwkJCSAgICAmZm9wc19md19yZWdzKTsNCisrDQorIAlkZWJ1Z2ZzX2NyZWF0ZV9m aWxlKCJ3bWlfc2VydmljZXMiLCBTX0lSVVNSLCBhci0+ZGVidWcuZGVidWdmc19waHksIGFyLA0K KyAJCQkgICAgJmZvcHNfd21pX3NlcnZpY2VzKTsNCisgDQorZGlmZiAtLWdpdCBhL2RyaXZlcnMv bmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLmggYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgv YXRoMTBrL3dtaS5oDQoraW5kZXggNDNhYzI1ZWUxN2FlLi5iMDYyYzM2MjczNGEgMTAwNjQ0DQor LS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWkuaA0KKysrKyBiL2RyaXZl cnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLmgNCitAQCAtMzA4OCw2ICszMDg4LDQzIEBA IHN0cnVjdCB3bWlfcGRldl9zdGF0c19wZWVyIHsNCisgCV9fbGUzMiBkdW1teTsNCisgfSBfX3Bh Y2tlZDsNCisgDQorKw0KKysjZGVmaW5lIFJFR19EVU1QX05PTkUgICAgICAgICAwDQorKyNkZWZp bmUgTUFDX0ZJTFRFUl9BRERSX0wzMiAgIDENCisrI2RlZmluZSBNQUNfRklMVEVSX0FERFJfVTE2 ICAgMg0KKysjZGVmaW5lIERDVV9TTE9UX1RJTUUgICAgICAgICAzDQorKyNkZWZpbmUgUEhZX0JC X01PREVfU0VMRUNUICAgIDQNCisrI2RlZmluZSBQQ1VfQlNTSURfTDMyICAgICAgICAgNQ0KKysj ZGVmaW5lIFBDVV9CU1NJRF9VMTYgICAgICAgICA2DQorKyNkZWZpbmUgUENVX0JTU0lEMl9MMzIg ICAgICAgIDcNCisrI2RlZmluZSBQQ1VfQlNTSUQyX1UxNiAgICAgICAgOA0KKysjZGVmaW5lIFBD VV9TVEFfQUREUl9VMTYgICAgICA5DQorKyNkZWZpbmUgTUFDX0RNQV9DRkcgICAgICAgICAgMTAN CisrI2RlZmluZSBNQUNfRE1BX1RYQ0ZHICAgICAgICAxMQ0KKysjZGVmaW5lIFBDVV9TVEFfQURE Ul9MMzIgICAgIDEyDQorKyNkZWZpbmUgUENVX1JYRklMVEVSICAgICAgICAgMTMNCisrI2RlZmlu ZSBQSFlfQkJfR0VOX0NPTlRST0xTICAxNA0KKysjZGVmaW5lIFNXX1BPV0VSTU9ERSAgICAgICAg IDE3DQorKyNkZWZpbmUgU1dfQ0hBSU5NQVNLICAgICAgICAgMTggLyogdHggaXMgaGlnaCAxNiBi aXRzLCByeCBpcyBsb3cgMTYgYml0cyAqLw0KKysjZGVmaW5lIFNXX09QTU9ERSAgICAgICAgICAg IDE5DQorKyNkZWZpbmUgU1dfUlhGSUxURVIgICAgICAgICAgMjANCisrDQorKyNkZWZpbmUgUkVH X0RVTVBfQ09VTlQgICAgICAgMjAgLyogbWF4IG51bWJlciBvZiByZWdpc3RlcnMgdG8gZHVtcCBh dCBvbmNlLiAqLw0KKysNCisrc3RydWN0IGF0aDEwa19yZWdfZHVtcF9wYWlyIHsNCisrCV9fbGUz MiByZWdfaWQ7DQorKwlfX2xlMzIgcmVnX3ZhbDsNCisrfTsNCisrDQorK3N0cnVjdCBhdGgxMGtf cmVnX2R1bXAgew0KKysJX19sZTE2IGNvdW50Ow0KKysJX19sZTE2IHVudXNlZDsNCisrCXN0cnVj dCBhdGgxMGtfcmVnX2R1bXBfcGFpciByZWdwYWlyW1JFR19EVU1QX0NPVU5UXTsNCisrfTsNCisr DQorKy8qIFRoZXNlIHZhbHVlcyBhcmUgYSBiaXRtYXAsIGJ1dCAxMC4xLnggKGF0IGxlYXN0KSBm aXJtd2FyZSB3aWxsIG5vdCBwcm9wZXJseQ0KKysgKiBoYW5kbGUgbXVsdGlwbGUgdmFsdWVzIE9S J2QgdG9nZXRoZXIuDQorKyAqLw0KKyBlbnVtIHdtaV9zdGF0c19pZCB7DQorIAlXTUlfU1RBVF9Q RUVSID0gQklUKDApLA0KKyAJV01JX1NUQVRfQVAgPSBCSVQoMSksDQorQEAgLTMwOTUsNiArMzEz Miw3IEBAIGVudW0gd21pX3N0YXRzX2lkIHsNCisgCVdNSV9TVEFUX1ZERVYgPSBCSVQoMyksDQor IAlXTUlfU1RBVF9CQ05GTFQgPSBCSVQoNCksDQorIAlXTUlfU1RBVF9WREVWX1JBVEUgPSBCSVQo NSksDQorKwlXTUlfUkVRVUVTVF9SRUdJU1RFUl9EVU1QID0gQklUKDcpLCAvKiAweDgwLCBDVCBG aXJtd2FyZSBvbmx5LCByZXF1ZXN0IHJlZ2lzdGVyIGR1bXAuICovDQorIH07DQorIA0KKyBzdHJ1 Y3Qgd2xhbl9pbnN0X3Jzc2lfYXJncyB7DQpkaWZmIC0tZ2l0IGEvcGFja2FnZS9rZXJuZWwvbWFj ODAyMTEvcGF0Y2hlcy85OTktMDA0My1hdGgxMGstYWRkLWZ3LXBvd2VyZnVwLWZhaWwtdG8tZXRo dG9vbC1zdGF0cy5wYXRjaCBiL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAw NDMtYXRoMTBrLWFkZC1mdy1wb3dlcmZ1cC1mYWlsLXRvLWV0aHRvb2wtc3RhdHMucGF0Y2gNCm5l dyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwLi45MWY1ZjFhDQotLS0gL2Rldi9udWxs DQorKysgYi9wYWNrYWdlL2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDQzLWF0aDEway1h ZGQtZnctcG93ZXJmdXAtZmFpbC10by1ldGh0b29sLXN0YXRzLnBhdGNoDQpAQCAtMCwwICsxLDY0 IEBADQorRnJvbTogQmVuIEdyZWVhciA8Z3JlZWFyYkBjYW5kZWxhdGVjaC5jb20+DQorRGF0ZTog V2VkLCAzMSBEZWMgMjAxNCAxMzo0NTo1NSAtMDgwMA0KK1N1YmplY3Q6IFtQQVRDSF0gYXRoMTBr OiBhZGQgZnctcG93ZXJmdXAtZmFpbCB0byBldGh0b29sIHN0YXRzLg0KKw0KK1RoaXMgZ2l2ZXMg dXNlci1zcGFjZSBhIG5vcm1hbC1pc2ggd2F5IHRvIGRldGVjdCB0aGF0DQorZmlybXdhcmUgaGFz IGZhaWxlZCB0byBzdGFydCBhbmQgdGhhdCBhIHJlYm9vdCBpcw0KK3Byb2JhYmx5IHJlcXVpcmVk Lg0KKw0KK1NpZ25lZC1vZmYtYnk6IEJlbiBHcmVlYXIgPGdyZWVhcmJAY2FuZGVsYXRlY2guY29t Pg0KKy0tLQ0KKyBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2NvcmUuaCAgfCAxICsN CisgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9kZWJ1Zy5jIHwgMiArKw0KKyBkcml2 ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3BjaS5jICAgfCAyICsrDQorIDMgZmlsZXMgY2hh bmdlZCwgNSBpbnNlcnRpb25zKCspDQorDQorZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVs ZXNzL2F0aC9hdGgxMGsvY29yZS5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9j b3JlLmgNCitpbmRleCA5M2EwOGJkM2IyMmMuLmRiZmJjZmZmY2E0YyAxMDA2NDQNCistLS0gYS9k cml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2NvcmUuaA0KKysrKyBiL2RyaXZlcnMvbmV0 L3dpcmVsZXNzL2F0aC9hdGgxMGsvY29yZS5oDQorQEAgLTU4OSw2ICs1ODksNyBAQCBzdHJ1Y3Qg YXRoMTBrIHsNCisgCXU4IG1hY19hZGRyW0VUSF9BTEVOXTsNCisgDQorIAllbnVtIGF0aDEwa19o d19yZXYgaHdfcmV2Ow0KKysJYm9vbCBmd19wb3dlcnVwX2ZhaWxlZDsgLyogSWYgdHJ1ZSwgbWln aHQgdGFrZSByZWJvb3QgdG8gcmVjb3Zlci4gKi8NCisgCXUzMiBjaGlwX2lkOw0KKyAJdTMyIHRh cmdldF92ZXJzaW9uOw0KKyAJdTggZndfdmVyc2lvbl9tYWpvcjsNCitkaWZmIC0tZ2l0IGEvZHJp dmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9kZWJ1Zy5jIGIvZHJpdmVycy9uZXQvd2lyZWxl c3MvYXRoL2F0aDEway9kZWJ1Zy5jDQoraW5kZXggNWE2ZDU5YTY5ZTFiLi44OTFhMjlkNGFkYTkg MTAwNjQ0DQorLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9kZWJ1Zy5jDQor KysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9kZWJ1Zy5jDQorQEAgLTE4NzAs NiArMTg3MCw3IEBAIHN0YXRpYyBjb25zdCBjaGFyIGF0aDEwa19nc3RyaW5nc19zdGF0c1tdW0VU SF9HU1RSSU5HX0xFTl0gPSB7DQorIAkiZF9md19jcmFzaF9jb3VudCIsDQorIAkiZF9md193YXJt X3Jlc2V0X2NvdW50IiwNCisgCSJkX2Z3X2NvbGRfcmVzZXRfY291bnQiLA0KKysJImRfZndfcG93 ZXJ1cF9mYWlsZWQiLCAvKiBib29sZWFuICovDQorIH07DQorIA0KKyAjZGVmaW5lIEFUSDEwS19T U1RBVFNfTEVOIEFSUkFZX1NJWkUoYXRoMTBrX2dzdHJpbmdzX3N0YXRzKQ0KK0BAIC0xOTY5LDYg KzE5NzAsNyBAQCB2b2lkIGF0aDEwa19kZWJ1Z19nZXRfZXRfc3RhdHMoc3RydWN0IGllZWU4MDIx MV9odyAqaHcsDQorIAlkYXRhW2krK10gPSBhci0+c3RhdHMuZndfY3Jhc2hfY291bnRlcjsNCisg CWRhdGFbaSsrXSA9IGFyLT5zdGF0cy5md193YXJtX3Jlc2V0X2NvdW50ZXI7DQorIAlkYXRhW2kr K10gPSBhci0+c3RhdHMuZndfY29sZF9yZXNldF9jb3VudGVyOw0KKysJZGF0YVtpKytdID0gYXIt PmZ3X3Bvd2VydXBfZmFpbGVkOw0KKyANCisgCXNwaW5fdW5sb2NrX2JoKCZhci0+ZGF0YV9sb2Nr KTsNCisgDQorZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvcGNp LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3BjaS5jDQoraW5kZXggZWE3NGY1 YjYyNDU5Li45NmRhYTM1NzA1YmEgMTAwNjQ0DQorLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3Mv YXRoL2F0aDEway9wY2kuYw0KKysrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsv cGNpLmMNCitAQCAtMjM5NCwxMCArMjM5NCwxMiBAQCBzdGF0aWMgaW50IGF0aDEwa19wY2lfaGlm X3Bvd2VyX3VwKHN0cnVjdCBhdGgxMGsgKmFyKQ0KKyAJCWdvdG8gZXJyX2NlOw0KKyAJfQ0KKyAN CisrCWFyLT5md19wb3dlcnVwX2ZhaWxlZCA9IGZhbHNlOw0KKyAJcmV0dXJuIDA7DQorIA0KKyBl cnJfY2U6DQorIAlhdGgxMGtfcGNpX2NlX2RlaW5pdChhcik7DQorKwlhci0+ZndfcG93ZXJ1cF9m YWlsZWQgPSB0cnVlOw0KKyANCisgZXJyX3NsZWVwOg0KKyAJcmV0dXJuIHJldDsNCmRpZmYgLS1n aXQgYS9wYWNrYWdlL2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDQ0LWF0aDEway1SZXF1 ZXN0LU9UUC10by1yZXR1cm4tZGVidWctY29kZS5wYXRjaCBiL3BhY2thZ2Uva2VybmVsL21hYzgw MjExL3BhdGNoZXMvOTk5LTAwNDQtYXRoMTBrLVJlcXVlc3QtT1RQLXRvLXJldHVybi1kZWJ1Zy1j b2RlLnBhdGNoDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMC4uNWJjODI1Mg0K LS0tIC9kZXYvbnVsbA0KKysrIGIvcGFja2FnZS9rZXJuZWwvbWFjODAyMTEvcGF0Y2hlcy85OTkt MDA0NC1hdGgxMGstUmVxdWVzdC1PVFAtdG8tcmV0dXJuLWRlYnVnLWNvZGUucGF0Y2gNCkBAIC0w LDAgKzEsMjUgQEANCitGcm9tOiBCZW4gR3JlZWFyIDxncmVlYXJiQGNhbmRlbGF0ZWNoLmNvbT4N CitEYXRlOiBGcmksIDIgTWF5IDIwMTQgMDY6MTg6MTggLTA3MDANCitTdWJqZWN0OiBbUEFUQ0hd IGF0aDEwazogUmVxdWVzdCBPVFAgdG8gcmV0dXJuIGRlYnVnIGNvZGUuDQorDQorTm9ybWFsIGZp cm13YXJlIHdpbGwgaWdub3JlIHRoaXMsIGJ1dCBDVCBmaXJtd2FyZSB3aWxsDQorcmV0dXJuIGRl YnVnZ2luZyBpbmZvIGluIGl0J3MgcmV0dXJuIGNvZGUuDQorDQorU2lnbmVkLW9mZi1ieTogQmVu IEdyZWVhciA8Z3JlZWFyYkBjYW5kZWxhdGVjaC5jb20+DQorLS0tDQorIGRyaXZlcnMvbmV0L3dp cmVsZXNzL2F0aC9hdGgxMGsvY29yZS5jIHwgMiArLQ0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNl cnRpb24oKyksIDEgZGVsZXRpb24oLSkNCisNCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2ly ZWxlc3MvYXRoL2F0aDEway9jb3JlLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBr L2NvcmUuYw0KK2luZGV4IDEwM2ZmYTQ2NzAwZS4uMWRiOWIwYWJhMjRmIDEwMDY0NA0KKy0tLSBh L2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvY29yZS5jDQorKysrIGIvZHJpdmVycy9u ZXQvd2lyZWxlc3MvYXRoL2F0aDEway9jb3JlLmMNCitAQCAtMzk2LDcgKzM5Niw3IEBAIHN0YXRp YyBpbnQgYXRoMTBrX2Rvd25sb2FkX2FuZF9ydW5fb3RwKHN0cnVjdCBhdGgxMGsgKmFyKQ0KKyAJ CXJldHVybiByZXQ7DQorIAl9DQorIA0KKy0JcmV0ID0gYXRoMTBrX2JtaV9leGVjdXRlKGFyLCBh ZGRyZXNzLCAwLCAmcmVzdWx0KTsNCisrCXJldCA9IGF0aDEwa19ibWlfZXhlY3V0ZShhciwgYWRk cmVzcywgMHg4ODg4ODg4OCwgJnJlc3VsdCk7DQorIAlpZiAocmV0KSB7DQorIAkJYXRoMTBrX2Vy cihhciwgImNvdWxkIG5vdCBleGVjdXRlIG90cCAoJWQpXG4iLCByZXQpOw0KKyAJCXJldHVybiBy ZXQ7DQpkaWZmIC0tZ2l0IGEvcGFja2FnZS9rZXJuZWwvbWFjODAyMTEvcGF0Y2hlcy85OTktMDA0 NS1hdGgxMGstU3VwcG9ydC11cC10by0zNi1zdGF0aW9uLXZpZnMtd2l0aC1DVC1maXJtd2FyLnBh dGNoIGIvcGFja2FnZS9rZXJuZWwvbWFjODAyMTEvcGF0Y2hlcy85OTktMDA0NS1hdGgxMGstU3Vw cG9ydC11cC10by0zNi1zdGF0aW9uLXZpZnMtd2l0aC1DVC1maXJtd2FyLnBhdGNoDQpuZXcgZmls ZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMC4uMGMyNTgzNg0KLS0tIC9kZXYvbnVsbA0KKysr IGIvcGFja2FnZS9rZXJuZWwvbWFjODAyMTEvcGF0Y2hlcy85OTktMDA0NS1hdGgxMGstU3VwcG9y dC11cC10by0zNi1zdGF0aW9uLXZpZnMtd2l0aC1DVC1maXJtd2FyLnBhdGNoDQpAQCAtMCwwICsx LDM5IEBADQorRnJvbTogQmVuIEdyZWVhciA8Z3JlZWFyYkBjYW5kZWxhdGVjaC5jb20+DQorRGF0 ZTogRnJpLCA5IE1heSAyMDE0IDE0OjU5OjM3IC0wNzAwDQorU3ViamVjdDogW1BBVENIXSBhdGgx MGs6IFN1cHBvcnQgdXAgdG8gMzYgc3RhdGlvbiB2aWZzIHdpdGggQ1QgZmlybXdhcmUuDQorDQor TmVlZCB0byBzb21laG93IGZyZWUgdXAgbW9yZSBtZW1vcnkgaW4gbWFpbiBSQU0gaW4gb3JkZXIg dG8NCitpbmNyZWFzZSB0aGlzIGZ1cnRoZXIuDQorDQorU2lnbmVkLW9mZi1ieTogQmVuIEdyZWVh ciA8Z3JlZWFyYkBjYW5kZWxhdGVjaC5jb20+DQorLS0tDQorIGRyaXZlcnMvbmV0L3dpcmVsZXNz L2F0aC9hdGgxMGsvaHcuaCB8IDggKysrKy0tLS0NCisgMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0 aW9ucygrKSwgNCBkZWxldGlvbnMoLSkNCisNCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2ly ZWxlc3MvYXRoL2F0aDEway9ody5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9o dy5oDQoraW5kZXggMjJiYjg1ODBmYzAyLi4wYTgxOGUwN2EzMzAgMTAwNjQ0DQorLS0tIGEvZHJp dmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9ody5oDQorKysrIGIvZHJpdmVycy9uZXQvd2ly ZWxlc3MvYXRoL2F0aDEway9ody5oDQorQEAgLTI3OSwxOCArMjc5LDE4IEBAIGVudW0gYXRoMTBr X2h3X3JhdGVfY2NrIHsNCisgCQkJCQkJIChUQVJHRVRfMTBYX05VTV9WREVWUykpDQorIA0KKyAv KiBPdmVyLXJpZGVzIGZvciBDYW5kZWxhIFRlY2hub2xvZ2llcyBmaXJtd2FyZSAqLw0KKy0jZGVm aW5lIFRBUkdFVF8xMFhfTlVNX1ZERVZTX0NUCQkJMzINCistI2RlZmluZSBUQVJHRVRfMTBYX05V TV9QRUVSU19DVAkJCSgzMiArIChUQVJHRVRfMTBYX05VTV9WREVWU19DVCkpDQorKyNkZWZpbmUg VEFSR0VUXzEwWF9OVU1fVkRFVlNfQ1QJCQkzNg0KKysjZGVmaW5lIFRBUkdFVF8xMFhfTlVNX1BF RVJTX0NUCQkJKDIgKiBUQVJHRVRfMTBYX05VTV9WREVWU19DVCkNCisgI2RlZmluZSBUQVJHRVRf MTBYX0FTVF9TS0lEX0xJTUlUX0NUCQkoVEFSR0VUXzEwWF9OVU1fUEVFUlNfQ1QgKiBUQVJHRVRf MTBYX05VTV9QRUVSX0FTVCkNCisgI2RlZmluZSBUQVJHRVRfMTBYX05VTV9QRUVSX0tFWVNfQ1Qg ICAgICAgICAgICAgKFdNSV9NQVhfS0VZX0lOREVYICsgMSkgLyogNCAqLw0KKyAvKiBUaGVzZSBl YXQgYSBmYWlyIGNodW5rIG9mIG1lbW9yeSBvbiB0aGUgZmlybXdhcmUsIHNvIGRlY3JlYXNlIGl0 IGEgYml0LiAqLw0KKyAjZGVmaW5lIFRBUkdFVF8xMFhfTlVNX01TRFVfREVTQ19DVAkJODA4IC8q IG11c3QgYmUgbXVsdGlwbGUgb2YgOCAqLw0KKyANCisgLyogUmVsYXRlZCB0byBIVEMgYnVmZmVy cyAqLw0KKy0gLyogcmV0dXJuIGFueSBjcmVkaXQgaW1tZWRpYXRlbHkgKi8NCisrLyogcmV0dXJu IGFueSBjcmVkaXQgaW1tZWRpYXRlbHkgKi8NCisgI2RlZmluZSBUQVJHRVRfSFRDX01BWF9QRU5E SU5HX1RYQ1JFRElUU19SUFRTICAgMQ0KKyAvKiA4IGN0cmwgYnVmZmVycyBmb3Igc2VuZGluZyBp bmZvIHRvIGhvc3QgKi8NCistI2RlZmluZSBUQVJHRVRfSFRDX01BWF9DT05UUk9MX0JVRkZFUlMg ICAgICAgICAgOA0KKysjZGVmaW5lIFRBUkdFVF9IVENfTUFYX0NPTlRST0xfQlVGRkVSUyAgICAg ICAgICA2DQorIC8qIE9ubHkgQ1QgZmlybXdhcmUgd2lsbCBhY3R1YWxseSB1c2UgdGhpcyB2YWx1 ZS4gIEVhY2ggYnVmZmVyIGlzIGNsb3NlIHRvIDJLDQorICAqIG9mIGZpcm13YXJlIFJBTSwgc28g bm90IHN1cmUgaWYgaW5jcmVhc2luZyB0aGlzIGlzIHdvcnRoIHRoZSBSQU0gY29zdC4NCisgICov DQpkaWZmIC0tZ2l0IGEvcGFja2FnZS9rZXJuZWwvbWFjODAyMTEvcGF0Y2hlcy85OTktMDA0Ni1h dGgxMGstTm90ZS1saW1pdGF0aW9uLW9uLWJlYWNvbmluZy12ZGV2cy5wYXRjaCBiL3BhY2thZ2Uv a2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAwNDYtYXRoMTBrLU5vdGUtbGltaXRhdGlvbi1v bi1iZWFjb25pbmctdmRldnMucGF0Y2gNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAw MDAwLi40MzNhNWQ2DQotLS0gL2Rldi9udWxsDQorKysgYi9wYWNrYWdlL2tlcm5lbC9tYWM4MDIx MS9wYXRjaGVzLzk5OS0wMDQ2LWF0aDEway1Ob3RlLWxpbWl0YXRpb24tb24tYmVhY29uaW5nLXZk ZXZzLnBhdGNoDQpAQCAtMCwwICsxLDM5IEBADQorRnJvbTogQmVuIEdyZWVhciA8Z3JlZWFyYkBj YW5kZWxhdGVjaC5jb20+DQorRGF0ZTogVHVlLCAxMyBNYXkgMjAxNCAxMTo0NDo0NSAtMDcwMA0K K1N1YmplY3Q6IFtQQVRDSF0gYXRoMTBrOiBOb3RlIGxpbWl0YXRpb24gb24gYmVhY29uaW5nIHZk ZXZzLg0KKw0KK1RoaXMgb25seSBwZXJ0YWlucyB0byBDVCBmaXJtd2FyZSwgYXMgc3RhbmRhcmQg ZmlybXdhcmUNCitjYW4ndCBkbyBhbnl3aGVyZSBuZWFyIHRoaXMgbWFueSB2ZGV2cyBhbnl3YXku DQorDQorU2lnbmVkLW9mZi1ieTogQmVuIEdyZWVhciA8Z3JlZWFyYkBjYW5kZWxhdGVjaC5jb20+ DQorLS0tDQorIGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvbWFjLmMgfCAxNiArKysr KysrKysrKysrKysrDQorIDEgZmlsZSBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspDQorDQorZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvbWFjLmMgYi9kcml2ZXJz L25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL21hYy5jDQoraW5kZXggYjA3MzJiOWUzNTM3Li4yY2Y2 NDVmMzhhY2YgMTAwNjQ0DQorLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9t YWMuYw0KKysrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvbWFjLmMNCitAQCAt MTI3OCw2ICsxMjc4LDIyIEBAIHN0YXRpYyBpbnQgYXRoMTBrX3ZkZXZfc3RhcnRfcmVzdGFydChz dHJ1Y3QgYXRoMTBrX3ZpZiAqYXJ2aWYsDQorIAlhcmcuY2hhbm5lbC5tYXhfcmVnX3Bvd2VyID0g Y2hhbmRlZi0+Y2hhbi0+bWF4X3JlZ19wb3dlciAqIDI7DQorIAlhcmcuY2hhbm5lbC5tYXhfYW50 ZW5uYV9nYWluID0gY2hhbmRlZi0+Y2hhbi0+bWF4X2FudGVubmFfZ2FpbiAqIDI7DQorIA0KKysJ LyogQ1QgRmlybXdhcmUgY2FuIHN1cHBvcnQgMzIrIFZERVZTLCBidXQgY2FuIG9ubHkgc3VwcG9y dA0KKysJICogYmVhY29uLWluZyBkZXZzIHdpdGggZGV2IGlkcyAwIC0gMzEgZHVlIHRvIGZpcm13 YXJlIGxpbWl0YXRpb25zLg0KKysJICogQ3JlYXRlIFZBUHMgZmlyc3QgYW5kIGFsbCBzaG91bGQg YmUgd2VsbC4uLmxpa2VseSBtb3N0IHBlb3BsZQ0KKysJICogd29uJ3QgZXZlciBoaXQgdGhpcyBh bnl3YXksIGJ1dCBzb21lIGRheSB0aGUgdmRldiBJRCBhbGxvY2F0aW9uDQorKwkgKiBjb3VsZCBi ZSBtYWRlIHNtYXJ0ZXIgdG8gbWFrZSBpdCBtb3JlIGxpa2VseSB0byB3b3JrIG5vIG1hdHRlciB0 aGUNCisrCSAqIG9yZGVyIHRoZSB2ZGV2cyBhcmUgY3JlYXRlZC4gLS1CZW4NCisrCSAqLw0KKysJ aWYgKChhcnZpZi0+dmRldl90eXBlID09IFdNSV9WREVWX1RZUEVfQVApIHx8DQorKwkgICAgKGFy dmlmLT52ZGV2X3R5cGUgPT0gV01JX1ZERVZfVFlQRV9JQlNTKSkgew0KKysJCWlmIChhcmcudmRl dl9pZCA+IDMxKSB7DQorKwkJCWF0aDEwa193YXJuKGFyLCAiZmFpbGVkIHRvIHN0YXJ0IHZkZXYg JWkgIEJlYWNvbmluZyBWSUZTIG11c3QgaGF2ZSBJRHMgPD0gMzEgdG8gd29yay1hcm91bmQgZmly bXdhcmUgbGltaXRhdGlvbnMuXG4iLA0KKysJCQkJICAgIGFyZy52ZGV2X2lkKTsNCisrCQkJcmV0 dXJuIC1FSU5WQUw7DQorKwkJfQ0KKysJfQ0KKysNCisgCWlmIChhcnZpZi0+dmRldl90eXBlID09 IFdNSV9WREVWX1RZUEVfQVApIHsNCisgCQlhcmcuc3NpZCA9IGFydmlmLT51LmFwLnNzaWQ7DQor IAkJYXJnLnNzaWRfbGVuID0gYXJ2aWYtPnUuYXAuc3NpZF9sZW47DQpkaWZmIC0tZ2l0IGEvcGFj a2FnZS9rZXJuZWwvbWFjODAyMTEvcGF0Y2hlcy85OTktMDA0Ny1hdGgxMGstQWxsb3ctb3Zlci1y aWRpbmctcmVndWxhdG9yeS1kb21haW4ucGF0Y2ggYi9wYWNrYWdlL2tlcm5lbC9tYWM4MDIxMS9w YXRjaGVzLzk5OS0wMDQ3LWF0aDEway1BbGxvdy1vdmVyLXJpZGluZy1yZWd1bGF0b3J5LWRvbWFp bi5wYXRjaA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAuLjcyZWQwNGYNCi0t LSAvZGV2L251bGwNCisrKyBiL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAw NDctYXRoMTBrLUFsbG93LW92ZXItcmlkaW5nLXJlZ3VsYXRvcnktZG9tYWluLnBhdGNoDQpAQCAt MCwwICsxLDU4IEBADQorRnJvbTogQmVuIEdyZWVhciA8Z3JlZWFyYkBjYW5kZWxhdGVjaC5jb20+ DQorRGF0ZTogV2VkLCAzMSBEZWMgMjAxNCAxMzo1MToyOSAtMDgwMA0KK1N1YmplY3Q6IFtQQVRD SF0gYXRoMTBrOiBBbGxvdyBvdmVyLXJpZGluZyByZWd1bGF0b3J5IGRvbWFpbi4NCisNCitVc2Vz IGF0aDEwa19jb3JlIG1vZHVsZSBwYXJhbWV0ZXIgJ292ZXJyaWRlX2VlcHJvbV9yZWdkb21haW4n DQorDQorU2lnbmVkLW9mZi1ieTogQmVuIEdyZWVhciA8Z3JlZWFyYkBjYW5kZWxhdGVjaC5jb20+ DQorLS0tDQorIGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLmMgfCAyMiArKysr KysrKysrKysrKysrKysrKysrDQorIDEgZmlsZSBjaGFuZ2VkLCAyMiBpbnNlcnRpb25zKCspDQor DQorZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLmMgYi9k cml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS5jDQoraW5kZXggNjMyMjExZWZlZTVh Li5lNTE3ZWFmOTcwYmIgMTAwNjQ0DQorLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0 aDEway93bWkuYw0KKysrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLmMN CitAQCAtMTcsNiArMTcsNyBAQA0KKyANCisgI2luY2x1ZGUgPGxpbnV4L3NrYnVmZi5oPg0KKyAj aW5jbHVkZSA8bGludXgvY3R5cGUuaD4NCisrI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPg0KKyAN CisgI2luY2x1ZGUgImNvcmUuaCINCisgI2luY2x1ZGUgImh0Yy5oIg0KK0BAIC0yOSw2ICszMCwx MiBAQA0KKyAjaW5jbHVkZSAicDJwLmgiDQorICNpbmNsdWRlICJody5oIg0KKyANCisrc3RhdGlj IGludCBtb2RwYXJhbV9vdmVycmlkZV9lZXByb21fcmVnZG9tYWluID0gLTE7DQorK21vZHVsZV9w YXJhbV9uYW1lZChvdmVycmlkZV9lZXByb21fcmVnZG9tYWluLA0KKysJCSAgIG1vZHBhcmFtX292 ZXJyaWRlX2VlcHJvbV9yZWdkb21haW4sIGludCwgMDQ0NCk7DQorK01PRFVMRV9QQVJNX0RFU0Mo b3ZlcnJpZGVfZWVwcm9tX3JlZ2RvbWFpbiwgIk92ZXJyaWRlIHJlZ2RvbWFpbiBoYXJkY29kZWQg aW4gRUVQUk9NIHdpdGggdGhpcyB2YWx1ZSAoREFOR0VST1VTKS4iKTsNCisrDQorKw0KKyAvKiBN QUlOIFdNSSBjbWQgdHJhY2sgKi8NCisgc3RhdGljIHN0cnVjdCB3bWlfY21kX21hcCB3bWlfY21k X21hcCA9IHsNCisgCS5pbml0X2NtZGlkID0gV01JX0lOSVRfQ01ESUQsDQorQEAgLTMxMDcsNiAr MzExNCwyMSBAQCB2b2lkIGF0aDEwa193bWlfZXZlbnRfc2VydmljZV9yZWFkeShzdHJ1Y3QgYXRo MTBrICphciwgc3RydWN0IHNrX2J1ZmYgKnNrYikNCisgCQkJIGFyLT5md192ZXJzaW9uX2J1aWxk KTsNCisgCX0NCisgDQorKwlpZiAoKG1vZHBhcmFtX292ZXJyaWRlX2VlcHJvbV9yZWdkb21haW4g IT0gLTEpICYmDQorKwkgICAgKG1vZHBhcmFtX292ZXJyaWRlX2VlcHJvbV9yZWdkb21haW4gIT0g YXItPmF0aF9jb21tb24ucmVndWxhdG9yeS5jdXJyZW50X3JkKSkgew0KKysJCXN0YXRpYyBpbnQg ZG9fb25jZSA9IDE7DQorKwkJaWYgKGRvX29uY2UpIHsNCisrCQkJYXRoMTBrX2VycihhciwgIkRB TkdFUiEgWW91J3JlIG92ZXJyaWRpbmcgRUVQUk9NLWRlZmluZWQgcmVndWxhdG9yeSBkb21haW4s Ig0KKysJCQkJICAgIlxuZnJvbTogMHgleCB0byAweCV4XG4iLA0KKysJCQkJICAgYXItPmF0aF9j b21tb24ucmVndWxhdG9yeS5jdXJyZW50X3JkLCBtb2RwYXJhbV9vdmVycmlkZV9lZXByb21fcmVn ZG9tYWluKTsNCisrCQkJYXRoMTBrX2VycihhciwgIllvdXIgY2FyZCB3YXMgbm90IGNlcnRpZmll ZCB0byBvcGVyYXRlIGluIHRoZSBkb21haW4geW91IGNob3NlLlxuIik7DQorKwkJCWF0aDEwa19l cnIoYXIsICJUaGlzIG1pZ2h0IHJlc3VsdCBpbiBhIHZpb2xhdGlvbiBvZiB5b3VyIGxvY2FsIHJl Z3VsYXRvcnkgcnVsZXMuXG4iKTsNCisrCQkJYXRoMTBrX2VycihhciwgIkRvIG5vdCBldmVyIGRv IHRoaXMgdW5sZXNzIHlvdSByZWFsbHkga25vdyB3aGF0IHlvdSBhcmUgZG9pbmchXG4iKTsNCisr CQkJZG9fb25jZSA9IDA7DQorKwkJfQ0KKysJCWFyLT5hdGhfY29tbW9uLnJlZ3VsYXRvcnkuY3Vy cmVudF9yZCA9IG1vZHBhcmFtX292ZXJyaWRlX2VlcHJvbV9yZWdkb21haW4gfCBDT1VOVFJZX0VS RF9GTEFHOw0KKysJfQ0KKysNCisgCW51bV9tZW1fcmVxcyA9IF9fbGUzMl90b19jcHUoYXJnLm51 bV9tZW1fcmVxcyk7DQorIAlpZiAobnVtX21lbV9yZXFzID4gV01JX01BWF9NRU1fUkVRUykgew0K KyAJCWF0aDEwa193YXJuKGFyLCAicmVxdWVzdGVkIG1lbW9yeSBjaHVua3MgbnVtYmVyICglZCkg ZXhjZWVkcyB0aGUgbGltaXRcbiIsDQpkaWZmIC0tZ2l0IGEvcGFja2FnZS9rZXJuZWwvbWFjODAy MTEvcGF0Y2hlcy85OTktMDA0OC1hdGgxMGstZG8tbm90LXJhdGVsaW1pdC1hdGgxMGtfd2Fybi1t ZXNzYWdlcy5wYXRjaCBiL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAwNDgt YXRoMTBrLWRvLW5vdC1yYXRlbGltaXQtYXRoMTBrX3dhcm4tbWVzc2FnZXMucGF0Y2gNCm5ldyBm aWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwLi43MTQ5ZDZkDQotLS0gL2Rldi9udWxsDQor KysgYi9wYWNrYWdlL2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDQ4LWF0aDEway1kby1u b3QtcmF0ZWxpbWl0LWF0aDEwa193YXJuLW1lc3NhZ2VzLnBhdGNoDQpAQCAtMCwwICsxLDI2IEBA DQorRnJvbTogQmVuIEdyZWVhciA8Z3JlZWFyYkBjYW5kZWxhdGVjaC5jb20+DQorRGF0ZTogV2Vk LCAxMiBGZWIgMjAxNCAxNzo1Mjo1NiAtMDgwMA0KK1N1YmplY3Q6IFtQQVRDSF0gYXRoMTBrOiBk byBub3QgcmF0ZWxpbWl0IGF0aDEwa193YXJuIG1lc3NhZ2VzDQorDQorVGhlc2UgYXJlIHRvbyBp bXBvcnRhbnQgdG8gbWlzcywgYW5kIGlmIHdlIGV2ZXIgZG8gaGF2ZSBzb21lDQordGhhdCBhcmUg b3Zlcmx5IHZlcmJvc2UsIGNvdWxkIHJhdGVsaW1pdCB0aGUgY2FsbCB0byBhdGgxMGtfd2Fybg0K K2luc3RlYWQgb2YgZG9pbmcgdGhlIHJhdGVsaW1pdCBpbnNpZGUgb2YgYXRoMTBrX3dhcm4uDQor DQorU2lnbmVkLW9mZi1ieTogQmVuIEdyZWVhciA8Z3JlZWFyYkBjYW5kZWxhdGVjaC5jb20+DQor LS0tDQorIGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvZGVidWcuYyB8IDIgKy0NCisg MSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pDQorDQorZGlmZiAt LWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvZGVidWcuYyBiL2RyaXZlcnMv bmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvZGVidWcuYw0KK2luZGV4IDg5MWEyOWQ0YWRhOS4uN2E5 MzBkZjUxMTI4IDEwMDY0NA0KKy0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsv ZGVidWcuYw0KKysrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvZGVidWcuYw0K K0BAIC0xOTMsNyArMTkzLDcgQEAgdm9pZCBhdGgxMGtfd2FybihzdHJ1Y3QgYXRoMTBrICphciwg Y29uc3QgY2hhciAqZm10LCAuLi4pDQorIA0KKyAJdmFfc3RhcnQoYXJncywgZm10KTsNCisgCXZh Zi52YSA9ICZhcmdzOw0KKy0JZGV2X3dhcm5fcmF0ZWxpbWl0ZWQoYXItPmRldiwgIiVwViIsICZ2 YWYpOw0KKysJZGV2X3dhcm4oYXItPmRldiwgIiVwViIsICZ2YWYpOw0KKyAJdHJhY2VfYXRoMTBr X2xvZ193YXJuKGFyLCAmdmFmKTsNCisgDQorIAl2YV9lbmQoYXJncyk7DQpkaWZmIC0tZ2l0IGEv cGFja2FnZS9rZXJuZWwvbWFjODAyMTEvcGF0Y2hlcy85OTktMDA0OS1hdGgxMGstTW9kdWxlLXBh cmFtLXRvLWNvbmZpZy1udW1iZXItb2YtdmRldnMucGF0Y2ggYi9wYWNrYWdlL2tlcm5lbC9tYWM4 MDIxMS9wYXRjaGVzLzk5OS0wMDQ5LWF0aDEway1Nb2R1bGUtcGFyYW0tdG8tY29uZmlnLW51bWJl ci1vZi12ZGV2cy5wYXRjaA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAuLmFh ODkzZDENCi0tLSAvZGV2L251bGwNCisrKyBiL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNo ZXMvOTk5LTAwNDktYXRoMTBrLU1vZHVsZS1wYXJhbS10by1jb25maWctbnVtYmVyLW9mLXZkZXZz LnBhdGNoDQpAQCAtMCwwICsxLDE4MSBAQA0KK0Zyb206IEJlbiBHcmVlYXIgPGdyZWVhcmJAY2Fu ZGVsYXRlY2guY29tPg0KK0RhdGU6IFRodSwgMjYgSnVuIDIwMTQgMTE6MzQ6MDcgLTA3MDANCitT dWJqZWN0OiBbUEFUQ0hdIGF0aDEwazogTW9kdWxlIHBhcmFtIHRvIGNvbmZpZyBudW1iZXIgb2Yg dmRldnMuDQorDQorRGVwZW5kaW5nIG9uIHZlcnNpb24gb2YgZmlybXdhcmUsIGRpZmZlcmVudCBu dW1iZXJzDQorb2YgdmRldnMgY2FuIGJlIHN1cHBvcnRlZC4gIEFsbG93IHVzZXIgdG8gb3Zlci1y aWRlDQorZGVmYXVsdHMgZm9yIENUIGZpcm13YXJlLiAgT3RoZXIgZmlybXdhcmUgd2lsbCBub3QN CitiZSBhZmZlY3RlZCBieSB0aGlzIGNoYW5nZS4NCisNCitTaWduZWQtb2ZmLWJ5OiBCZW4gR3Jl ZWFyIDxncmVlYXJiQGNhbmRlbGF0ZWNoLmNvbT4NCistLS0NCisgZHJpdmVycy9uZXQvd2lyZWxl c3MvYXRoL2F0aDEway9jb3JlLmMgfCAgMiArLQ0KKyBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgv YXRoMTBrL2h3LmggICB8ICA1ICsrKy0tDQorIGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgx MGsvbWFjLmMgIHwgMjMgKysrKysrKysrKysrKysrKy0tLS0tLS0NCisgZHJpdmVycy9uZXQvd2ly ZWxlc3MvYXRoL2F0aDEway9tYWMuaCAgfCAgMSArDQorIGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0 aC9hdGgxMGsvd21pLmMgIHwgMTQgKysrKysrLS0tLS0tLS0NCisgNSBmaWxlcyBjaGFuZ2VkLCAy NyBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSkNCisNCitkaWZmIC0tZ2l0IGEvZHJpdmVy cy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9jb3JlLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9h dGgvYXRoMTBrL2NvcmUuYw0KK2luZGV4IDFkYjliMGFiYTI0Zi4uZTQ5ODdmM2U0ODA4IDEwMDY0 NA0KKy0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvY29yZS5jDQorKysrIGIv ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9jb3JlLmMNCitAQCAtMTE0Miw3ICsxMTQy LDcgQEAgc3RhdGljIGludCBhdGgxMGtfY29yZV9pbml0X2Zpcm13YXJlX2ZlYXR1cmVzKHN0cnVj dCBhdGgxMGsgKmFyKQ0KKyAJCWlmICh0ZXN0X2JpdChBVEgxMEtfRldfRkVBVFVSRV9XTUlfMTBY X0NULCBhci0+ZndfZmVhdHVyZXMpKSB7DQorIAkJCWFyLT5tYXhfbnVtX3BlZXJzID0gVEFSR0VU XzEwWF9OVU1fUEVFUlNfQ1Q7DQorIAkJCWFyLT5tYXhfbnVtX3N0YXRpb25zID0gVEFSR0VUXzEw WF9OVU1fU1RBVElPTlM7DQorLQkJCWFyLT5tYXhfbnVtX3ZkZXZzID0gVEFSR0VUXzEwWF9OVU1f VkRFVlNfQ1Q7DQorKwkJCWFyLT5tYXhfbnVtX3ZkZXZzID0gYXRoMTBrX21vZHBhcmFtX3Rhcmdl dF9udW1fdmRldnNfY3Q7DQorIAkJCWFyLT5odHQubWF4X251bV9wZW5kaW5nX3R4ID0gVEFSR0VU XzEwWF9OVU1fTVNEVV9ERVNDX0NUOw0KKyAJCX0gZWxzZSB7DQorIAkJCWFyLT5tYXhfbnVtX3Bl ZXJzID0gVEFSR0VUXzEwWF9OVU1fUEVFUlM7DQorZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dp cmVsZXNzL2F0aC9hdGgxMGsvaHcuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsv aHcuaA0KK2luZGV4IDBhODE4ZTA3YTMzMC4uMDA3N2Y4NzA2MGM1IDEwMDY0NA0KKy0tLSBhL2Ry aXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvaHcuaA0KKysrKyBiL2RyaXZlcnMvbmV0L3dp cmVsZXNzL2F0aC9hdGgxMGsvaHcuaA0KK0BAIC0yNzksOCArMjc5LDkgQEAgZW51bSBhdGgxMGtf aHdfcmF0ZV9jY2sgew0KKyAJCQkJCQkgKFRBUkdFVF8xMFhfTlVNX1ZERVZTKSkNCisgDQorIC8q IE92ZXItcmlkZXMgZm9yIENhbmRlbGEgVGVjaG5vbG9naWVzIGZpcm13YXJlICovDQorLSNkZWZp bmUgVEFSR0VUXzEwWF9OVU1fVkRFVlNfQ1QJCQkzNg0KKy0jZGVmaW5lIFRBUkdFVF8xMFhfTlVN X1BFRVJTX0NUCQkJKDIgKiBUQVJHRVRfMTBYX05VTV9WREVWU19DVCkNCisrI2RlZmluZSBERUZf VEFSR0VUXzEwWF9OVU1fVkRFVlNfQ1QJCTM2IC8qIG5ld2VyIENUIGZpcm13YXJlIHN1cHBvcnQg bW9yZSwNCisrCQkJCQkJICAgICogb3ZlcnJpZGUgdy9tb2R1bGUgcGFybSAqLw0KKysjZGVmaW5l IFRBUkdFVF8xMFhfTlVNX1BFRVJTX0NUCQkJKDIgKiBhdGgxMGtfbW9kcGFyYW1fdGFyZ2V0X251 bV92ZGV2c19jdCkNCisgI2RlZmluZSBUQVJHRVRfMTBYX0FTVF9TS0lEX0xJTUlUX0NUCQkoVEFS R0VUXzEwWF9OVU1fUEVFUlNfQ1QgKiBUQVJHRVRfMTBYX05VTV9QRUVSX0FTVCkNCisgI2RlZmlu ZSBUQVJHRVRfMTBYX05VTV9QRUVSX0tFWVNfQ1QgICAgICAgICAgICAgKFdNSV9NQVhfS0VZX0lO REVYICsgMSkgLyogNCAqLw0KKyAvKiBUaGVzZSBlYXQgYSBmYWlyIGNodW5rIG9mIG1lbW9yeSBv biB0aGUgZmlybXdhcmUsIHNvIGRlY3JlYXNlIGl0IGEgYml0LiAqLw0KK2RpZmYgLS1naXQgYS9k cml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL21hYy5jIGIvZHJpdmVycy9uZXQvd2lyZWxl c3MvYXRoL2F0aDEway9tYWMuYw0KK2luZGV4IDJjZjY0NWYzOGFjZi4uOTBkMjQ1OGM5OGM3IDEw MDY0NA0KKy0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvbWFjLmMNCisrKysg Yi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL21hYy5jDQorQEAgLTE2MSw2ICsxNjEs OSBAQCBhdGgxMGtfbWFjX21heF92aHRfbnNzKGNvbnN0IHUxNiB2aHRfbWNzX21hc2tbTkw4MDIx MV9WSFRfTlNTX01BWF0pDQorIGludCBhdGgxMGtfbW9kcGFyYW1fbm9od2NyeXB0Ow0KKyBtb2R1 bGVfcGFyYW1fbmFtZWQobm9od2NyeXB0LCBhdGgxMGtfbW9kcGFyYW1fbm9od2NyeXB0LCBpbnQs IDA0NDQpOw0KKyBNT0RVTEVfUEFSTV9ERVNDKG5vaHdjcnlwdCwgIkRpc2FibGUgaGFyZHdhcmUg cnggZGVjcnlwdCBmZWF0dXJlIik7DQorK2ludCBhdGgxMGtfbW9kcGFyYW1fdGFyZ2V0X251bV92 ZGV2c19jdCA9IERFRl9UQVJHRVRfMTBYX05VTV9WREVWU19DVDsNCisrbW9kdWxlX3BhcmFtX25h bWVkKG51bV92ZGV2c19jdCwgYXRoMTBrX21vZHBhcmFtX3RhcmdldF9udW1fdmRldnNfY3QsIGlu dCwgMDQ0NCk7DQorK01PRFVMRV9QQVJNX0RFU0MobnVtX3ZkZXZzX2N0LCAiTWF4aW11bSB2ZGV2 cyB0byByZXF1ZXN0IGZyb20gZmlybXdhcmUiKTsNCisgDQorIC8qKioqKioqKioqLw0KKyAvKiBD cnlwdG8gKi8NCitAQCAtNjU2OCw5ICs2NTcxLDkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpZWVl ODAyMTFfaWZhY2VfbGltaXQgYXRoMTBrXzEweF9pZl9saW1pdHNbXSA9IHsNCisgCX0sDQorIH07 DQorIA0KKy1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9saW1pdCBhdGgxMGtf MTB4X2N0X2lmX2xpbWl0c1tdID0gew0KKytzdGF0aWMgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9s aW1pdCBhdGgxMGtfMTB4X2N0X2lmX2xpbWl0c1tdID0gew0KKyAJew0KKy0JLm1heAk9IFRBUkdF VF8xMFhfTlVNX1ZERVZTX0NULA0KKysJLm1heAk9IERFRl9UQVJHRVRfMTBYX05VTV9WREVWU19D VCwNCisgCS50eXBlcwk9IEJJVChOTDgwMjExX0lGVFlQRV9TVEFUSU9OKQ0KKyAJCXwgQklUKE5M ODAyMTFfSUZUWVBFX1AyUF9DTElFTlQpDQorIAl9LA0KK0BAIC02NTg0LDcgKzY1ODcsNyBAQCBz dGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9saW1pdCBhdGgxMGtfMTB4X2N0X2lm X2xpbWl0c1tdID0gew0KKyAJfSwNCisgfTsNCisgDQorLXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVl ZTgwMjExX2lmYWNlX2NvbWJpbmF0aW9uIGF0aDEwa19pZl9jb21iW10gPSB7DQorK3N0YXRpYyBz dHJ1Y3QgaWVlZTgwMjExX2lmYWNlX2NvbWJpbmF0aW9uIGF0aDEwa19pZl9jb21iW10gPSB7DQor IAl7DQorIAkJLmxpbWl0cyA9IGF0aDEwa19pZl9saW1pdHMsDQorIAkJLm5fbGltaXRzID0gQVJS QVlfU0laRShhdGgxMGtfaWZfbGltaXRzKSwNCitAQCAtNjU5NCw3ICs2NTk3LDcgQEAgc3RhdGlj IGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfaWZhY2VfY29tYmluYXRpb24gYXRoMTBrX2lmX2NvbWJb XSA9IHsNCisgCX0sDQorIH07DQorIA0KKy1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9p ZmFjZV9jb21iaW5hdGlvbiBhdGgxMGtfMTB4X2lmX2NvbWJbXSA9IHsNCisrc3RhdGljIHN0cnVj dCBpZWVlODAyMTFfaWZhY2VfY29tYmluYXRpb24gYXRoMTBrXzEweF9pZl9jb21iW10gPSB7DQor IAl7DQorIAkJLmxpbWl0cyA9IGF0aDEwa18xMHhfaWZfbGltaXRzLA0KKyAJCS5uX2xpbWl0cyA9 IEFSUkFZX1NJWkUoYXRoMTBrXzEweF9pZl9saW1pdHMpLA0KK0BAIC02NjY4LDExICs2NjcxLDEx IEBAIHN0YXRpYyBzdHJ1Y3QgaWVlZTgwMjExX2lmYWNlX2NvbWJpbmF0aW9uIGF0aDEwa190bHZf cWNzX2lmX2NvbWJbXSA9IHsNCisgCX0sDQorIH07DQorIA0KKy1zdGF0aWMgY29uc3Qgc3RydWN0 IGllZWU4MDIxMV9pZmFjZV9jb21iaW5hdGlvbiBhdGgxMGtfMTB4X2N0X2lmX2NvbWJbXSA9IHsN Cisrc3RhdGljIHN0cnVjdCBpZWVlODAyMTFfaWZhY2VfY29tYmluYXRpb24gYXRoMTBrXzEweF9j dF9pZl9jb21iW10gPSB7DQorIAl7DQorIAkJLmxpbWl0cyA9IGF0aDEwa18xMHhfY3RfaWZfbGlt aXRzLA0KKyAJCS5uX2xpbWl0cyA9IEFSUkFZX1NJWkUoYXRoMTBrXzEweF9jdF9pZl9saW1pdHMp LA0KKy0JCS5tYXhfaW50ZXJmYWNlcyA9IFRBUkdFVF8xMFhfTlVNX1ZERVZTX0NULA0KKysJCS5t YXhfaW50ZXJmYWNlcyA9IERFRl9UQVJHRVRfMTBYX05VTV9WREVWU19DVCwNCisgCQkubnVtX2Rp ZmZlcmVudF9jaGFubmVscyA9IDEsDQorIAkJLmJlYWNvbl9pbnRfaW5mcmFfbWF0Y2ggPSB0cnVl LA0KKyAjaWZkZWYgQ1BUQ0ZHX0FUSDEwS19ERlNfQ0VSVElGSUVEDQorQEAgLTcwMDEsNyArNzAw NCwxMyBAQCBpbnQgYXRoMTBrX21hY19yZWdpc3RlcihzdHJ1Y3QgYXRoMTBrICphcikNCisgCQli cmVhazsNCisgCWNhc2UgQVRIMTBLX0ZXX1dNSV9PUF9WRVJTSU9OXzEwXzE6DQorIAkJaWYgKHRl c3RfYml0KEFUSDEwS19GV19GRUFUVVJFX1dNSV8xMFhfQ1QsIGFyLT5md19mZWF0dXJlcykpIHsN CistCQkJYXItPmh3LT53aXBoeS0+aWZhY2VfY29tYmluYXRpb25zID0gYXRoMTBrXzEweF9jdF9p Zl9jb21iOw0KKysJCQlhdGgxMGtfMTB4X2N0X2lmX2NvbWJbMF0ubGltaXRzWzBdLm1heCA9DQor KwkJCQlhci0+bWF4X251bV92ZGV2czsNCisrCQkJYXRoMTBrXzEweF9jdF9pZl9jb21iWzBdLm1h eF9pbnRlcmZhY2VzID0NCisrCQkJCWFyLT5tYXhfbnVtX3ZkZXZzOw0KKysNCisrCQkJYXItPmh3 LT53aXBoeS0+aWZhY2VfY29tYmluYXRpb25zID0NCisrCQkJCWF0aDEwa18xMHhfY3RfaWZfY29t YjsNCisgCQkJYXItPmh3LT53aXBoeS0+bl9pZmFjZV9jb21iaW5hdGlvbnMgPQ0KKyAJCQkJQVJS QVlfU0laRShhdGgxMGtfMTB4X2N0X2lmX2NvbWIpOw0KKyAJCX0gZWxzZSB7DQorZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvbWFjLmggYi9kcml2ZXJzL25ldC93 aXJlbGVzcy9hdGgvYXRoMTBrL21hYy5oDQoraW5kZXggMDM4NTJiMWY0MmYxLi4zNTgwNDE3MzQy YjMgMTAwNjQ0DQorLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMuaA0K KysrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvbWFjLmgNCitAQCAtMjcsNiAr MjcsNyBAQCBlbnVtIHdtaV90bHZfdHhfcGF1c2VfaWQ7DQorIGVudW0gd21pX3Rsdl90eF9wYXVz ZV9hY3Rpb247DQorIA0KKyBleHRlcm4gaW50IGF0aDEwa19tb2RwYXJhbV9ub2h3Y3J5cHQ7DQor K2V4dGVybiBpbnQgYXRoMTBrX21vZHBhcmFtX3RhcmdldF9udW1fdmRldnNfY3Q7DQorIA0KKyBz dHJ1Y3QgYXRoMTBrX2dlbmVyaWNfaXRlciB7DQorIAlzdHJ1Y3QgYXRoMTBrICphcjsNCitkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWkuYyBiL2RyaXZlcnMv bmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLmMNCitpbmRleCBlNTE3ZWFmOTcwYmIuLjNkNWIy N2NiZTI4NiAxMDA2NDQNCistLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dt aS5jDQorKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWkuYw0KK0BAIC0z NzgxLDggKzM3ODEsOCBAQCBzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKmF0aDEwa193bWlfb3BfZ2Vu X2luaXQoc3RydWN0IGF0aDEwayAqYXIpDQorIAlzdHJ1Y3Qgd21pX3Jlc291cmNlX2NvbmZpZyBj b25maWcgPSB7fTsNCisgCXUzMiBsZW4sIHZhbDsNCisgDQorLQljb25maWcubnVtX3ZkZXZzID0g X19jcHVfdG9fbGUzMihUQVJHRVRfTlVNX1ZERVZTKTsNCistCWNvbmZpZy5udW1fcGVlcnMgPSBf X2NwdV90b19sZTMyKFRBUkdFVF9OVU1fUEVFUlMpOw0KKysJY29uZmlnLm51bV92ZGV2cyA9IF9f Y3B1X3RvX2xlMzIoYXItPm1heF9udW1fdmRldnMpOw0KKysJY29uZmlnLm51bV9wZWVycyA9IF9f Y3B1X3RvX2xlMzIoYXItPm1heF9udW1fcGVlcnMpOw0KKyAJY29uZmlnLm51bV9vZmZsb2FkX3Bl ZXJzID0gX19jcHVfdG9fbGUzMihUQVJHRVRfTlVNX09GRkxPQURfUEVFUlMpOw0KKyANCisgCWNv bmZpZy5udW1fb2ZmbG9hZF9yZW9yZGVyX2J1ZnMgPQ0KK0BAIC0zODU4LDkgKzM4NTgsMTAgQEAg c3RhdGljIHN0cnVjdCBza19idWZmICphdGgxMGtfd21pXzEwXzFfb3BfZ2VuX2luaXQoc3RydWN0 IGF0aDEwayAqYXIpDQorIA0KKyAJY29uZmlnLnJ4X2RlY2FwX21vZGUgPSBfX2NwdV90b19sZTMy KFRBUkdFVF8xMFhfUlhfREVDQVBfTU9ERSk7DQorIA0KKysJY29uZmlnLm51bV92ZGV2cyA9IF9f Y3B1X3RvX2xlMzIoYXItPm1heF9udW1fdmRldnMpOw0KKysJY29uZmlnLm51bV9wZWVycyA9IF9f Y3B1X3RvX2xlMzIoYXItPm1heF9udW1fcGVlcnMpOw0KKysNCisgCWlmICh0ZXN0X2JpdChBVEgx MEtfRldfRkVBVFVSRV9XTUlfMTBYX0NULCBhci0+ZndfZmVhdHVyZXMpKSB7DQorLQkJY29uZmln Lm51bV92ZGV2cyA9IF9fY3B1X3RvX2xlMzIoVEFSR0VUXzEwWF9OVU1fVkRFVlNfQ1QpOw0KKy0J CWNvbmZpZy5udW1fcGVlcnMgPSBfX2NwdV90b19sZTMyKFRBUkdFVF8xMFhfTlVNX1BFRVJTX0NU KTsNCisgCQlza2lkX2xpbWl0ID0gVEFSR0VUXzEwWF9BU1RfU0tJRF9MSU1JVF9DVDsNCisgCQlp ZiAodGVzdF9iaXQoQVRIMTBLX0ZXX0ZFQVRVUkVfQ1RfUlhTV0NSWVBULCBhci0+ZndfZmVhdHVy ZXMpICYmDQorIAkJICAgIGF0aDEwa19tb2RwYXJhbV9ub2h3Y3J5cHQpIHsNCitAQCAtMzg3OSwx MCArMzg4MCw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqYXRoMTBrX3dtaV8xMF8xX29wX2dl bl9pbml0KHN0cnVjdCBhdGgxMGsgKmFyKQ0KKyAJCWNvbmZpZy5yb2FtX29mZmxvYWRfbWF4X3Zk ZXYgPSAwOyAvKiBkaXNhYmxlIHJvYW1pbmcgKi8NCisgCQljb25maWcucm9hbV9vZmZsb2FkX21h eF9hcF9wcm9maWxlcyA9IDA7IC8qIGRpc2FibGUgcm9hbWluZyAqLw0KKyAJCWNvbmZpZy5udW1f cGVlcl9rZXlzID0gX19jcHVfdG9fbGUzMihUQVJHRVRfMTBYX05VTV9QRUVSX0tFWVNfQ1QpOw0K Ky0JCWNvbmZpZy5udW1fbXNkdV9kZXNjID0gX19jcHVfdG9fbGUzMihUQVJHRVRfMTBYX05VTV9N U0RVX0RFU0NfQ1QpOw0KKyAJfSBlbHNlIHsNCistCQljb25maWcubnVtX3ZkZXZzID0gX19jcHVf dG9fbGUzMihUQVJHRVRfMTBYX05VTV9WREVWUyk7DQorLQkJY29uZmlnLm51bV9wZWVycyA9IF9f Y3B1X3RvX2xlMzIoVEFSR0VUXzEwWF9OVU1fUEVFUlMpOw0KKyAJCXNraWRfbGltaXQgPSBUQVJH RVRfMTBYX0FTVF9TS0lEX0xJTUlUOw0KKyAJCWNvbmZpZy5yb2FtX29mZmxvYWRfbWF4X3ZkZXYg PQ0KKyAJCQlfX2NwdV90b19sZTMyKFRBUkdFVF8xMFhfUk9BTV9PRkZMT0FEX01BWF9WREVWKTsN CitAQCAtMzg5MCw4ICszODg4LDggQEAgc3RhdGljIHN0cnVjdCBza19idWZmICphdGgxMGtfd21p XzEwXzFfb3BfZ2VuX2luaXQoc3RydWN0IGF0aDEwayAqYXIpDQorIAkJY29uZmlnLnJvYW1fb2Zm bG9hZF9tYXhfYXBfcHJvZmlsZXMgPQ0KKyAJCQlfX2NwdV90b19sZTMyKFRBUkdFVF8xMFhfUk9B TV9PRkZMT0FEX01BWF9BUF9QUk9GSUxFUyk7DQorIAkJY29uZmlnLm51bV9wZWVyX2tleXMgPSBf X2NwdV90b19sZTMyKFRBUkdFVF8xMFhfTlVNX1BFRVJfS0VZUyk7DQorLQkJY29uZmlnLm51bV9t c2R1X2Rlc2MgPSBfX2NwdV90b19sZTMyKFRBUkdFVF8xMFhfTlVNX01TRFVfREVTQyk7DQorIAl9 DQorKwljb25maWcubnVtX21zZHVfZGVzYyA9IF9fY3B1X3RvX2xlMzIoYXItPmh0dC5tYXhfbnVt X3BlbmRpbmdfdHgpOw0KKyAJY29uZmlnLmFzdF9za2lkX2xpbWl0ID0gX19jcHVfdG9fbGUzMihz a2lkX2xpbWl0KTsNCisgDQorIAkvKiBGaXJtd2FyZSB3aWxsIGNyYXNoIGlmIHRoaXMgaXMgbm90 IGV2ZW4gbXVsdGlwbGUgb2YgOCAqLw0KZGlmZiAtLWdpdCBhL3BhY2thZ2Uva2VybmVsL21hYzgw MjExL3BhdGNoZXMvOTk5LTAwNTAtYXRoMTBrLUFsbG93LWRpc2FibGluZy1Xb1ctaW4tZmlybXdh cmUucGF0Y2ggYi9wYWNrYWdlL2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDUwLWF0aDEw ay1BbGxvdy1kaXNhYmxpbmctV29XLWluLWZpcm13YXJlLnBhdGNoDQpuZXcgZmlsZSBtb2RlIDEw MDY0NA0KaW5kZXggMDAwMDAwMC4uZjczNzNkNg0KLS0tIC9kZXYvbnVsbA0KKysrIGIvcGFja2Fn ZS9rZXJuZWwvbWFjODAyMTEvcGF0Y2hlcy85OTktMDA1MC1hdGgxMGstQWxsb3ctZGlzYWJsaW5n LVdvVy1pbi1maXJtd2FyZS5wYXRjaA0KQEAgLTAsMCArMSw0MCBAQA0KK0Zyb206IEJlbiBHcmVl YXIgPGdyZWVhcmJAY2FuZGVsYXRlY2guY29tPg0KK0RhdGU6IFR1ZSwgMSBKdWwgMjAxNCAwNzoz MDozOCAtMDcwMA0KK1N1YmplY3Q6IFtQQVRDSF0gYXRoMTBrOiBBbGxvdyBkaXNhYmxpbmcgV29X IGluIGZpcm13YXJlLg0KKw0KK1NhdmVzIGFib3V0IDIuNWsgb2YgUkFNIGluIGZpcm13YXJlLiAg UmVxdWlyZXMgQ1QgZmlybXdhcmUuDQorDQorU2lnbmVkLW9mZi1ieTogQmVuIEdyZWVhciA8Z3Jl ZWFyYkBjYW5kZWxhdGVjaC5jb20+DQorLS0tDQorIGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9h dGgxMGsvd21pLmMgfCAyICsrDQorIGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21p LmggfCA0ICsrKysNCisgMiBmaWxlcyBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKykNCisNCitkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWkuYyBiL2RyaXZlcnMv bmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLmMNCitpbmRleCAzZDViMjdjYmUyODYuLjVmYzkz YzRiMjFkOSAxMDA2NDQNCistLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dt aS5jDQorKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWkuYw0KK0BAIC0z ODc3LDYgKzM4NzcsOCBAQCBzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKmF0aDEwa193bWlfMTBfMV9v cF9nZW5faW5pdChzdHJ1Y3QgYXRoMTBrICphcikNCisgCQkJYXRoMTBrX2VycihhciwgIm1vZHVs ZSBwYXJhbSBub2h3Y3J5cHQgZW5hYmxlZCwgYnV0IGZpcm13YXJlIGRvZXMgbm90IHN1cHBvcnQg dGhpcyBmZWF0dXJlLiAgRGlzYWJsaW5nIHN3Y3J5cHQuXG4iKTsNCisgCQl9DQorIAkJY29uZmln LnJ4X2RlY2FwX21vZGUgfD0gX19jcHVfdG9fbGUzMihBVEgxMGtfVVNFX1RYQ09NUExfVFhSQVRF KTsNCisrCQkvKiBEaXNhYmxlIFdvVyBpbiBmaXJtd2FyZSwgY291bGQgbWFrZSB0aGlzIG1vZHVs ZSBvcHRpb24gcGVyaGFwcz8gKi8NCisrCQljb25maWcucnhfZGVjYXBfbW9kZSB8PSBfX2NwdV90 b19sZTMyKEFUSDEwa19ESVNBQkxFX1dPVyk7DQorIAkJY29uZmlnLnJvYW1fb2ZmbG9hZF9tYXhf dmRldiA9IDA7IC8qIGRpc2FibGUgcm9hbWluZyAqLw0KKyAJCWNvbmZpZy5yb2FtX29mZmxvYWRf bWF4X2FwX3Byb2ZpbGVzID0gMDsgLyogZGlzYWJsZSByb2FtaW5nICovDQorIAkJY29uZmlnLm51 bV9wZWVyX2tleXMgPSBfX2NwdV90b19sZTMyKFRBUkdFVF8xMFhfTlVNX1BFRVJfS0VZU19DVCk7 DQorZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLmggYi9k cml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS5oDQoraW5kZXggYjA2MmMzNjI3MzRh Li4zODI2NzgzYjg2MDIgMTAwNjQ0DQorLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0 aDEway93bWkuaA0KKysrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLmgN CitAQCAtMTY4MSw2ICsxNjgxLDEwIEBAIHN0cnVjdCB3bWlfcmVzb3VyY2VfY29uZmlnIHsNCisg CSNkZWZpbmUgQVRIMTBrX1VTRV9TV19SWF9DUllQVCAgICAweDEwMDAwDQorIAkvKiBBc2sgZmly bXdhcmUgdG8gaW5jbHVkZSB0eC1yYXRlIGluIGNvbXBsZXRpb24gbWVzc2FnZXMuICovDQorIAkj ZGVmaW5lIEFUSDEwa19VU0VfVFhDT01QTF9UWFJBVEUgMHgyMDAwMA0KKysJLyogRGlzYWJsZSBX YWtlLW9uLVdpcmVsZXNzIGxvZ2ljLiAgU2F2ZXMgc29tZSBSQU0sIGZvciB0aG9zZQ0KKysJICog dGhhdCBkbyBub3QgbmVlZCBXb1cuDQorKwkgKi8NCisrCSNkZWZpbmUgQVRIMTBrX0RJU0FCTEVf V09XICAgICAgICAweDQwMDAwDQorIAlfX2xlMzIgcnhfZGVjYXBfbW9kZTsNCisgDQorIAkvKiB3 aGF0IGlzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBzY2FuIHJlcXVlc3RzIHRoYXQgY2FuIGJlIHF1 ZXVlZCAqLw0KZGlmZiAtLWdpdCBhL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5 LTAwNTEtYXRoMTBrLURpc2FibGUtYmVhY29uLW1pc3MtZmlybXdhcmUtbG9naWMucGF0Y2ggYi9w YWNrYWdlL2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDUxLWF0aDEway1EaXNhYmxlLWJl YWNvbi1taXNzLWZpcm13YXJlLWxvZ2ljLnBhdGNoDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5k ZXggMDAwMDAwMC4uZWVkOGQ2NA0KLS0tIC9kZXYvbnVsbA0KKysrIGIvcGFja2FnZS9rZXJuZWwv bWFjODAyMTEvcGF0Y2hlcy85OTktMDA1MS1hdGgxMGstRGlzYWJsZS1iZWFjb24tbWlzcy1maXJt d2FyZS1sb2dpYy5wYXRjaA0KQEAgLTAsMCArMSw1MSBAQA0KK0Zyb206IEJlbiBHcmVlYXIgPGdy ZWVhcmJAY2FuZGVsYXRlY2guY29tPg0KK0RhdGU6IFNhdCwgNSBKdWwgMjAxNCAwOTowNjozOCAt MDcwMA0KK1N1YmplY3Q6IFtQQVRDSF0gYXRoMTBrOiBEaXNhYmxlIGJlYWNvbi1taXNzIGZpcm13 YXJlIGxvZ2ljLg0KKw0KK05vdCBzdXJlIGl0IHdvcmtzIGFsbCB0aGF0IHdlbGwgaW4gbXVsdGkt dmRldg0KK2Vudmlyb25tZW50cyBhbnl3YXksIHNpbmNlIGl0IG9ubHkgbG9vayBhdCAyIHZkZXZz Pw0KKw0KK05lZWRzIHNvbWUgdGVzdGluZywgYW5kIG1heWJlIGZ1cnRoZXIgaW1wcm92ZW1lbnRz IHRvDQorZG8gdXNlZnVsIGJlYWNvbi1sb3NzIGRldGVjdGlvbiB3aXRoIG11bHRpcGxlIHZkZXZz Lg0KKw0KK1NpZ25lZC1vZmYtYnk6IEJlbiBHcmVlYXIgPGdyZWVhcmJAY2FuZGVsYXRlY2guY29t Pg0KKy0tLQ0KKyBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS5jIHwgMTEgKysr KysrKystLS0NCisgMSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMo LSkNCisNCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWku YyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLmMNCitpbmRleCA1ZmM5M2M0 YjIxZDkuLjVmOWE1NTJmYjA0OSAxMDA2NDQNCistLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9h dGgvYXRoMTBrL3dtaS5jDQorKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93 bWkuYw0KK0BAIC0zODgyLDYgKzM4ODIsMTEgQEAgc3RhdGljIHN0cnVjdCBza19idWZmICphdGgx MGtfd21pXzEwXzFfb3BfZ2VuX2luaXQoc3RydWN0IGF0aDEwayAqYXIpDQorIAkJY29uZmlnLnJv YW1fb2ZmbG9hZF9tYXhfdmRldiA9IDA7IC8qIGRpc2FibGUgcm9hbWluZyAqLw0KKyAJCWNvbmZp Zy5yb2FtX29mZmxvYWRfbWF4X2FwX3Byb2ZpbGVzID0gMDsgLyogZGlzYWJsZSByb2FtaW5nICov DQorIAkJY29uZmlnLm51bV9wZWVyX2tleXMgPSBfX2NwdV90b19sZTMyKFRBUkdFVF8xMFhfTlVN X1BFRVJfS0VZU19DVCk7DQorKw0KKysJCS8qIERpc2FibGUgYmVhY29uLW1pc3MgbG9naWMsIG9s ZCBjb2RlIGhhZCBpdCBhdCAyIHZkZXZzLCB3aGljaCBpcyBub3QNCisrCQkgKiBuZWFybHkgZW5v dWdoIGZvciB1cyBhbnl3YXkuLg0KKysJCSAqLw0KKysJCWNvbmZpZy5ibWlzc19vZmZsb2FkX21h eF92ZGV2ID0gMDsNCisgCX0gZWxzZSB7DQorIAkJc2tpZF9saW1pdCA9IFRBUkdFVF8xMFhfQVNU X1NLSURfTElNSVQ7DQorIAkJY29uZmlnLnJvYW1fb2ZmbG9hZF9tYXhfdmRldiA9DQorQEAgLTM4 OTAsNiArMzg5NSw5IEBAIHN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqYXRoMTBrX3dtaV8xMF8xX29w X2dlbl9pbml0KHN0cnVjdCBhdGgxMGsgKmFyKQ0KKyAJCWNvbmZpZy5yb2FtX29mZmxvYWRfbWF4 X2FwX3Byb2ZpbGVzID0NCisgCQkJX19jcHVfdG9fbGUzMihUQVJHRVRfMTBYX1JPQU1fT0ZGTE9B RF9NQVhfQVBfUFJPRklMRVMpOw0KKyAJCWNvbmZpZy5udW1fcGVlcl9rZXlzID0gX19jcHVfdG9f bGUzMihUQVJHRVRfMTBYX05VTV9QRUVSX0tFWVMpOw0KKysJCWNvbmZpZy5ibWlzc19vZmZsb2Fk X21heF92ZGV2ID0NCisrCQkJX19jcHVfdG9fbGUzMihUQVJHRVRfMTBYX0JNSVNTX09GRkxPQURf TUFYX1ZERVYpOw0KKysNCisgCX0NCisgCWNvbmZpZy5udW1fbXNkdV9kZXNjID0gX19jcHVfdG9f bGUzMihhci0+aHR0Lm1heF9udW1fcGVuZGluZ190eCk7DQorIAljb25maWcuYXN0X3NraWRfbGlt aXQgPSBfX2NwdV90b19sZTMyKHNraWRfbGltaXQpOw0KK0BAIC0zOTA4LDkgKzM5MTYsNiBAQCBz dGF0aWMgc3RydWN0IHNrX2J1ZmYgKmF0aDEwa193bWlfMTBfMV9vcF9nZW5faW5pdChzdHJ1Y3Qg YXRoMTBrICphcikNCisgCWNvbmZpZy5zY2FuX21heF9wZW5kaW5nX3JlcXMgPQ0KKyAJCV9fY3B1 X3RvX2xlMzIoVEFSR0VUXzEwWF9TQ0FOX01BWF9QRU5ESU5HX1JFUVMpOw0KKyANCistCWNvbmZp Zy5ibWlzc19vZmZsb2FkX21heF92ZGV2ID0NCistCQlfX2NwdV90b19sZTMyKFRBUkdFVF8xMFhf Qk1JU1NfT0ZGTE9BRF9NQVhfVkRFVik7DQorLQ0KKyAJY29uZmlnLm51bV9tY2FzdF9ncm91cHMg PSBfX2NwdV90b19sZTMyKFRBUkdFVF8xMFhfTlVNX01DQVNUX0dST1VQUyk7DQorIAljb25maWcu bnVtX21jYXN0X3RhYmxlX2VsZW1zID0NCisgCQlfX2NwdV90b19sZTMyKFRBUkdFVF8xMFhfTlVN X01DQVNUX1RBQkxFX0VMRU1TKTsNCmRpZmYgLS1naXQgYS9wYWNrYWdlL2tlcm5lbC9tYWM4MDIx MS9wYXRjaGVzLzk5OS0wMDUyLWF0aDEway1TdXBwb3J0LXVwLXRvLTY0LXZkZXZzLnBhdGNoIGIv cGFja2FnZS9rZXJuZWwvbWFjODAyMTEvcGF0Y2hlcy85OTktMDA1Mi1hdGgxMGstU3VwcG9ydC11 cC10by02NC12ZGV2cy5wYXRjaA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAu LjU4MzdlYTkNCi0tLSAvZGV2L251bGwNCisrKyBiL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3Bh dGNoZXMvOTk5LTAwNTItYXRoMTBrLVN1cHBvcnQtdXAtdG8tNjQtdmRldnMucGF0Y2gNCkBAIC0w LDAgKzEsMzIgQEANCitGcm9tOiBCZW4gR3JlZWFyIDxncmVlYXJiQGNhbmRlbGF0ZWNoLmNvbT4N CitEYXRlOiBXZWQsIDE2IEp1bCAyMDE0IDA0OjE3OjAxIC0wNzAwDQorU3ViamVjdDogW1BBVENI XSBhdGgxMGs6IFN1cHBvcnQgdXAgdG8gNjQgdmRldnMuDQorDQorVGhlICgxIDw8IHgpIC0gMSB0 cmljayB3b24ndCB3b3JrIHdoZW4geW91DQorYXJlIHRyeWluZyB0byBmaWxsIHVwIGFsbCA2NCBi aXRzLCBzbyBhZGQgc3BlY2lhbA0KK2Nhc2UgZm9yIHRoYXQuDQorDQorQW5kLCBtb3ZlIHRoZSBs aW1pdHMgdG8gdGhlIHBlci1uaWMgc3RydWN0dXJlIGluc3RlYWQNCitvZiBwZXItZHJpdmVyIHRv IGFsbG93IGJldHRlciBkeW5hbWljIHVzZSBvZiB0aGUgbGltaXRzLg0KKw0KK1NpZ25lZC1vZmYt Ynk6IEJlbiBHcmVlYXIgPGdyZWVhcmJAY2FuZGVsYXRlY2guY29tPg0KKy0tLQ0KKyBkcml2ZXJz L25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2NvcmUuYyB8IDUgKysrKy0NCisgMSBmaWxlIGNoYW5n ZWQsIDQgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQ0KKw0KK2RpZmYgLS1naXQgYS9kcml2 ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2NvcmUuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNz L2F0aC9hdGgxMGsvY29yZS5jDQoraW5kZXggZTQ5ODdmM2U0ODA4Li4wNTY1YjFkODJkNTMgMTAw NjQ0DQorLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9jb3JlLmMNCisrKysg Yi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2NvcmUuYw0KK0BAIC0xMzYzLDcgKzEz NjMsMTAgQEAgaW50IGF0aDEwa19jb3JlX3N0YXJ0KHN0cnVjdCBhdGgxMGsgKmFyLCBlbnVtIGF0 aDEwa19maXJtd2FyZV9tb2RlIG1vZGUpDQorIAlpZiAoc3RhdHVzKQ0KKyAJCWdvdG8gZXJyX2hp Zl9zdG9wOw0KKyANCistCWFyLT5mcmVlX3ZkZXZfbWFwID0gKDFMTCA8PCBhci0+bWF4X251bV92 ZGV2cykgLSAxOw0KKysJaWYgKGFyLT5tYXhfbnVtX3ZkZXZzID49IDY0KQ0KKysJCWFyLT5mcmVl X3ZkZXZfbWFwID0gMHhGRkZGRkZGRkZGRkZGRkZGTEw7DQorKwllbHNlDQorKwkJYXItPmZyZWVf dmRldl9tYXAgPSAoMUxMIDw8IGFyLT5tYXhfbnVtX3ZkZXZzKSAtIDE7DQorIA0KKyAJSU5JVF9M SVNUX0hFQUQoJmFyLT5hcnZpZnMpOw0KKyANCmRpZmYgLS1naXQgYS9wYWNrYWdlL2tlcm5lbC9t YWM4MDIxMS9wYXRjaGVzLzk5OS0wMDUzLWF0aDEway1wcmludC1mdy1kZWJ1Zy1tZXNzYWdlcy1p bi1oZXgucGF0Y2ggYi9wYWNrYWdlL2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDUzLWF0 aDEway1wcmludC1mdy1kZWJ1Zy1tZXNzYWdlcy1pbi1oZXgucGF0Y2gNCm5ldyBmaWxlIG1vZGUg MTAwNjQ0DQppbmRleCAwMDAwMDAwLi44NTAyNWVkDQotLS0gL2Rldi9udWxsDQorKysgYi9wYWNr YWdlL2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDUzLWF0aDEway1wcmludC1mdy1kZWJ1 Zy1tZXNzYWdlcy1pbi1oZXgucGF0Y2gNCkBAIC0wLDAgKzEsMTM2IEBADQorRnJvbTogQmVuIEdy ZWVhciA8Z3JlZWFyYkBjYW5kZWxhdGVjaC5jb20+DQorRGF0ZTogTW9uLCAyMiBTZXAgMjAxNCAx MDoxMDozMCAtMDcwMA0KK1N1YmplY3Q6IFtQQVRDSF0gYXRoMTBrOiBwcmludCBmdyBkZWJ1ZyBt ZXNzYWdlcyBpbiBoZXguDQorDQorVGhpcyBhbGxvd3MgdXNlci1zcGFjZSB0b29scyB0byBkZWNv ZGUgZGVidWctbG9nDQorbWVzc2FnZXMgYnkgcGFyc2luZyBkbWVzZyBvciAvdmFyL2xvZy9tZXNz YWdlcy4NCisNCitTaWduZWQtb2ZmLWJ5OiBCZW4gR3JlZWFyIDxncmVlYXJiQGNhbmRlbGF0ZWNo LmNvbT4NCistLS0NCisgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9kZWJ1Zy5jIHwg NzIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQorIGRyaXZlcnMvbmV0L3dpcmVs ZXNzL2F0aC9hdGgxMGsvZGVidWcuaCB8ICAyICsNCisgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRo L2F0aDEway9wY2kuYyAgIHwgIDMgKysNCisgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEw ay93bWkuYyAgIHwgIDQgKy0NCisgNCBmaWxlcyBjaGFuZ2VkLCA4MCBpbnNlcnRpb25zKCspLCAx IGRlbGV0aW9uKC0pDQorDQorZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9h dGgxMGsvZGVidWcuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvZGVidWcuYw0K K2luZGV4IDdhOTMwZGY1MTEyOC4uODNiN2I3YjBiNDQ4IDEwMDY0NA0KKy0tLSBhL2RyaXZlcnMv bmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvZGVidWcuYw0KKysrKyBiL2RyaXZlcnMvbmV0L3dpcmVs ZXNzL2F0aC9hdGgxMGsvZGVidWcuYw0KK0BAIC0yNjEwLDMgKzI2MTAsNzUgQEAgdm9pZCBhdGgx MGtfZGJnX2R1bXAoc3RydWN0IGF0aDEwayAqYXIsDQorIEVYUE9SVF9TWU1CT0woYXRoMTBrX2Ri Z19kdW1wKTsNCisgDQorICNlbmRpZiAvKiBDUFRDRkdfQVRIMTBLX0RFQlVHICovDQorKw0KKyt2 b2lkIGF0aDEwa19kYmdfcHJpbnRfZndfZGJnX2J1ZmZlcihzdHJ1Y3QgYXRoMTBrICphciwgX19s ZTMyICppYnVmLCBpbnQgbGVuLA0KKysJCQkJICAgIGNvbnN0IGNoYXIqIGx2bCkNCisrew0KKysJ LyogUHJpbnQgb3V0IHJhdyBoZXgsIGV4dGVybmFsIHRvb2xzIGNhbiBkZWNvZGUgaWYNCisrCSAq IHRoZXkgY2FyZS4NCisrCSAqIFRPRE86ICBBZGQgYXIgaWRlbnRpZmllciB0byBtZXNzYWdlcy4N CisrCSAqLw0KKysJaW50IHEgPSAwOw0KKysNCisrCXByaW50aygiJXNBVEgxMEtfREJHX0JVRkZF UjpcbiIsIGx2bCk7DQorKwl3aGlsZSAocSA8IGxlbikgew0KKysJCWlmIChxICsgOCA8PSBsZW4p IHsNCisrCQkJcHJpbnRrKCIlc2F0aDEwazogWyUwNGRdOiAlMDhYICUwOFggJTA4WCAlMDhYICUw OFggJTA4WCAlMDhYICUwOFhcbiIsDQorKwkJCSAgICAgICBsdmwsIHEsDQorKwkJCSAgICAgICBp YnVmW3FdLCBpYnVmW3ErMV0sIGlidWZbcSsyXSwgaWJ1ZltxKzNdLA0KKysJCQkgICAgICAgaWJ1 ZltxKzRdLCBpYnVmW3ErNV0sIGlidWZbcSs2XSwgaWJ1ZltxKzddKTsNCisrCQkJcSArPSA4Ow0K KysJCX0NCisrCQllbHNlIGlmIChxICsgNyA8PSBsZW4pIHsNCisrCQkJcHJpbnRrKCIlc2F0aDEw azogWyUwNGRdOiAlMDhYICUwOFggJTA4WCAlMDhYICUwOFggJTA4WCAlMDhYXG4iLA0KKysJCQkg ICAgICAgbHZsLCBxLA0KKysJCQkgICAgICAgaWJ1ZltxXSwgaWJ1ZltxKzFdLCBpYnVmW3ErMl0s IGlidWZbcSszXSwNCisrCQkJICAgICAgIGlidWZbcSs0XSwgaWJ1ZltxKzVdLCBpYnVmW3ErNl0p Ow0KKysJCQlxICs9IDc7DQorKwkJfQ0KKysJCWVsc2UgaWYgKHEgKyA2IDw9IGxlbikgew0KKysJ CQlwcmludGsoIiVzYXRoMTBrOiBbJTA0ZF06ICUwOFggJTA4WCAlMDhYICUwOFggJTA4WCAlMDhY XG4iLA0KKysJCQkgICAgICAgbHZsLCBxLA0KKysJCQkgICAgICAgaWJ1ZltxXSwgaWJ1ZltxKzFd LCBpYnVmW3ErMl0sIGlidWZbcSszXSwNCisrCQkJICAgICAgIGlidWZbcSs0XSwgaWJ1ZltxKzVd KTsNCisrCQkJcSArPSA2Ow0KKysJCX0NCisrCQllbHNlIGlmIChxICsgNSA8PSBsZW4pIHsNCisr CQkJcHJpbnRrKCIlc2F0aDEwazogWyUwNGRdOiAlMDhYICUwOFggJTA4WCAlMDhYICUwOFhcbiIs DQorKwkJCSAgICAgICBsdmwsIHEsDQorKwkJCSAgICAgICBpYnVmW3FdLCBpYnVmW3ErMV0sIGli dWZbcSsyXSwgaWJ1ZltxKzNdLA0KKysJCQkgICAgICAgaWJ1ZltxKzRdKTsNCisrCQkJcSArPSA1 Ow0KKysJCX0NCisrCQllbHNlIGlmIChxICsgNCA8PSBsZW4pIHsNCisrCQkJcHJpbnRrKCIlc2F0 aDEwazogWyUwNGRdOiAlMDhYICUwOFggJTA4WCAlMDhYXG4iLA0KKysJCQkgICAgICAgbHZsLCBx LA0KKysJCQkgICAgICAgaWJ1ZltxXSwgaWJ1ZltxKzFdLCBpYnVmW3ErMl0sIGlidWZbcSszXSk7 DQorKwkJCXEgKz0gNDsNCisrCQl9DQorKwkJZWxzZSBpZiAocSArIDMgPD0gbGVuKSB7DQorKwkJ CXByaW50aygiJXNhdGgxMGs6IFslMDRkXTogJTA4WCAlMDhYICUwOFhcbiIsDQorKwkJCSAgICAg ICBsdmwsIHEsDQorKwkJCSAgICAgICBpYnVmW3FdLCBpYnVmW3ErMV0sIGlidWZbcSsyXSk7DQor KwkJCXEgKz0gMzsNCisrCQl9DQorKwkJZWxzZSBpZiAocSArIDIgPD0gbGVuKSB7DQorKwkJCXBy aW50aygiJXNhdGgxMGs6IFslMDRkXTogJTA4WCAlMDhYXG4iLA0KKysJCQkgICAgICAgbHZsLCBx LA0KKysJCQkgICAgICAgaWJ1ZltxXSwgaWJ1ZltxKzFdKTsNCisrCQkJcSArPSAyOw0KKysJCX0N CisrCQllbHNlIGlmIChxICsgMSA8PSBsZW4pIHsNCisrCQkJcHJpbnRrKCIlc2F0aDEwazogWyUw NGRdOiAlMDhYXG4iLA0KKysJCQkgICAgICAgbHZsLCBxLA0KKysJCQkgICAgICAgaWJ1ZltxXSk7 DQorKwkJCXEgKz0gMTsNCisrCQl9DQorKwkJZWxzZSB7DQorKwkJCWJyZWFrOw0KKysJCX0NCisr CX0vKiB3aGlsZSAqLw0KKysNCisrCXByaW50aygiJXNBVEgxMEtfRU5EXG4iLCBsdmwpOw0KKyt9 DQorK0VYUE9SVF9TWU1CT0woYXRoMTBrX2RiZ19wcmludF9md19kYmdfYnVmZmVyKTsNCitkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9kZWJ1Zy5oIGIvZHJpdmVy cy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9kZWJ1Zy5oDQoraW5kZXggNmEyZTAwMzQ4YmFiLi5i ZGFlNDA0Mzc3YzMgMTAwNjQ0DQorLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEw ay9kZWJ1Zy5oDQorKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9kZWJ1Zy5o DQorQEAgLTE3MSw1ICsxNzEsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYXRoMTBrX2RiZ19zYXZl X2Z3X2RiZ19idWZmZXIoc3RydWN0IGF0aDEwayAqYXIsDQorICNlbmRpZiAvKiBDUFRDRkdfQVRI MTBLX0RFQlVHICovDQorIA0KKyBpbnQgYXRoMTBrX3JlZnJlc2hfcGVlcl9zdGF0cyhzdHJ1Y3Qg YXRoMTBrICphcik7DQorK3ZvaWQgYXRoMTBrX2RiZ19wcmludF9md19kYmdfYnVmZmVyKHN0cnVj dCBhdGgxMGsgKmFyLCBfX2xlMzIgKmJ1ZmZlciwNCisrCQkJCSAgICBpbnQgbGVuLCBjb25zdCBj aGFyKiBsdmwpOw0KKyANCisgI2VuZGlmIC8qIF9ERUJVR19IXyAqLw0KK2RpZmYgLS1naXQgYS9k cml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3BjaS5jIGIvZHJpdmVycy9uZXQvd2lyZWxl c3MvYXRoL2F0aDEway9wY2kuYw0KK2luZGV4IDk2ZGFhMzU3MDViYS4uNzg0NjllZGVmYzY4IDEw MDY0NA0KKy0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvcGNpLmMNCisrKysg Yi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3BjaS5jDQorQEAgLTEzNjUsNiArMTM2 NSw5IEBAIHN0YXRpYyB2b2lkIGF0aDEwa19wY2lfZHVtcF9kYmdsb2coc3RydWN0IGF0aDEwayAq YXIpDQorIAkJV0FSTl9PTihsZW4gJiAweDMpOw0KKyANCisgCQlhdGgxMGtfZGJnX3NhdmVfZndf ZGJnX2J1ZmZlcihhciwgKF9fbGUzMiAqKShidWZmZXIpLCBsZW4gPj4gMik7DQorKwkJYXRoMTBr X2RiZ19wcmludF9md19kYmdfYnVmZmVyKGFyLCAoX19sZTMyICopKGJ1ZmZlciksDQorKwkJCQkJ ICAgICAgIGRidWYubGVuZ3RoL3NpemVvZihfX2xlMzIpLA0KKysJCQkJCSAgICAgICBLRVJOX0VS Uik7DQorIAkJa2ZyZWUoYnVmZmVyKTsNCisgDQorIG5leHQ6DQorZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9h dGgvYXRoMTBrL3dtaS5jDQoraW5kZXggNWY5YTU1MmZiMDQ5Li5jZWMyOWI4ZDg5YTkgMTAwNjQ0 DQorLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWkuYw0KKysrKyBiL2Ry aXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLmMNCitAQCAtMTY5NCw3ICsxNjk0LDkg QEAgaW50IGF0aDEwa193bWlfZXZlbnRfZGVidWdfbWVzZyhzdHJ1Y3QgYXRoMTBrICphciwgc3Ry dWN0IHNrX2J1ZmYgKnNrYikNCisgCWF0aDEwa19kYmdfc2F2ZV9md19kYmdfYnVmZmVyKGFyLCBl di0+bWVzc2FnZXMsDQorIAkJCQkgICAgICAoc2tiLT5sZW4gLSA0KS9zaXplb2YoX19sZTMyKSk7 DQorIAlzcGluX3VubG9ja19iaCgmYXItPmRhdGFfbG9jayk7DQorLQ0KKysJYXRoMTBrX2RiZ19w cmludF9md19kYmdfYnVmZmVyKGFyLCBldi0+bWVzc2FnZXMsDQorKwkJCQkgICAgICAgKHNrYi0+ bGVuIC0gNCkvc2l6ZW9mKF9fbGUzMiksDQorKwkJCQkgICAgICAgS0VSTl9JTkZPKTsNCisgCXJl dHVybiAwOw0KKyB9DQorIA0KZGlmZiAtLWdpdCBhL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3Bh dGNoZXMvOTk5LTAwNTQtYXRoMTBrLW1ha2UtZmlybXdhcmUtdGV4dC1kZWJ1Zy1tZXNzYWdlcy1t b3JlLXZlcmJvcy5wYXRjaCBiL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAw NTQtYXRoMTBrLW1ha2UtZmlybXdhcmUtdGV4dC1kZWJ1Zy1tZXNzYWdlcy1tb3JlLXZlcmJvcy5w YXRjaA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAuLmMzYTdkODINCi0tLSAv ZGV2L251bGwNCisrKyBiL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAwNTQt YXRoMTBrLW1ha2UtZmlybXdhcmUtdGV4dC1kZWJ1Zy1tZXNzYWdlcy1tb3JlLXZlcmJvcy5wYXRj aA0KQEAgLTAsMCArMSwyNiBAQA0KK0Zyb206IEJlbiBHcmVlYXIgPGdyZWVhcmJAY2FuZGVsYXRl Y2guY29tPg0KK0RhdGU6IE1vbiwgMjIgU2VwIDIwMTQgMTM6NDY6NDYgLTA3MDANCitTdWJqZWN0 OiBbUEFUQ0hdIGF0aDEwazogbWFrZSBmaXJtd2FyZSB0ZXh0IGRlYnVnIG1lc3NhZ2VzIG1vcmUg dmVyYm9zZS4NCisNCitUaGVyZSBhcmUgbm90IG1hbnkgb2YgdGhlc2UgbWVzc2FnZXMgcHJvZHVj dGVkIGJ5IHRoZQ0KK2Zpcm13YXJlLCBidXQgdGhleSBhcmUgZ2VuZXJhbGx5IGZhaXJseSB1c2Vm dWwsIHNvIHByaW50DQordGhlbSBhdCBpbmZvIGxldmVsLg0KKw0KK1NpZ25lZC1vZmYtYnk6IEJl biBHcmVlYXIgPGdyZWVhcmJAY2FuZGVsYXRlY2guY29tPg0KKy0tLQ0KKyBkcml2ZXJzL25ldC93 aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS5jIHwgMiArLQ0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNl cnRpb24oKyksIDEgZGVsZXRpb24oLSkNCisNCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2ly ZWxlc3MvYXRoL2F0aDEway93bWkuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsv d21pLmMNCitpbmRleCBjZWMyOWI4ZDg5YTkuLjdjOGY0MGMxMjQ1OSAxMDA2NDQNCistLS0gYS9k cml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS5jDQorKysrIGIvZHJpdmVycy9uZXQv d2lyZWxlc3MvYXRoL2F0aDEway93bWkuYw0KK0BAIC0yODUzLDcgKzI4NTMsNyBAQCB2b2lkIGF0 aDEwa193bWlfZXZlbnRfZGVidWdfcHJpbnQoc3RydWN0IGF0aDEwayAqYXIsIHN0cnVjdCBza19i dWZmICpza2IpDQorIAkvKiB0aGUgbGFzdCBieXRlIGlzIGFsd2F5cyByZXNlcnZlZCBmb3IgdGhl IG51bGwgY2hhcmFjdGVyICovDQorIAlidWZbaV0gPSAnXDAnOw0KKyANCistCWF0aDEwa19kYmco YXIsIEFUSDEwS19EQkdfV01JX1BSSU5ULCAid21pIHByaW50ICclcydcbiIsIGJ1Zik7DQorKwlh dGgxMGtfaW5mbyhhciwgIndtaSBwcmludCAnJXMnXG4iLCBidWYpOw0KKyB9DQorIA0KKyB2b2lk IGF0aDEwa193bWlfZXZlbnRfcGRldl9xdml0KHN0cnVjdCBhdGgxMGsgKmFyLCBzdHJ1Y3Qgc2tf YnVmZiAqc2tiKQ0KZGlmZiAtLWdpdCBhL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMv OTk5LTAwNTUtYXRoMTBrLWFkZC1hZGRpdGlvbmFsLXJlZ3VsYXRvcnktZG9tYWluLWRlYnVnLW1l c3NhZy5wYXRjaCBiL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAwNTUtYXRo MTBrLWFkZC1hZGRpdGlvbmFsLXJlZ3VsYXRvcnktZG9tYWluLWRlYnVnLW1lc3NhZy5wYXRjaA0K bmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAuLmNjYWQ4ZGQNCi0tLSAvZGV2L251 bGwNCisrKyBiL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAwNTUtYXRoMTBr LWFkZC1hZGRpdGlvbmFsLXJlZ3VsYXRvcnktZG9tYWluLWRlYnVnLW1lc3NhZy5wYXRjaA0KQEAg LTAsMCArMSwzMCBAQA0KK0Zyb206IEJlbiBHcmVlYXIgPGdyZWVhcmJAY2FuZGVsYXRlY2guY29t Pg0KK0RhdGU6IFdlZCwgMjQgU2VwIDIwMTQgMTM6MzE6NTMgLTA3MDANCitTdWJqZWN0OiBbUEFU Q0hdIGF0aDEwazogYWRkIGFkZGl0aW9uYWwgcmVndWxhdG9yeSBkb21haW4gZGVidWcgbWVzc2Fn ZXMuDQorDQorTWlnaHQgaGVscCB0aGUgbmV4dCBwZXJzb24gd2hvIGhhcyB0byBkZWFsIHdpdGgg cmVnZG9tDQoraXNzdWVzIGZpbmQgdGhlIHByb2JsZW0gcXVpY2tlci4NCisNCitTaWduZWQtb2Zm LWJ5OiBCZW4gR3JlZWFyIDxncmVlYXJiQGNhbmRlbGF0ZWNoLmNvbT4NCistLS0NCisgZHJpdmVy cy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMuYyB8IDUgKysrKysNCisgMSBmaWxlIGNoYW5n ZWQsIDUgaW5zZXJ0aW9ucygrKQ0KKw0KK2RpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVz cy9hdGgvYXRoMTBrL21hYy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMu Yw0KK2luZGV4IDkwZDI0NThjOThjNy4uZTFhMWVmMDE0MjAzIDEwMDY0NA0KKy0tLSBhL2RyaXZl cnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvbWFjLmMNCisrKysgYi9kcml2ZXJzL25ldC93aXJl bGVzcy9hdGgvYXRoMTBrL21hYy5jDQorQEAgLTI5NDIsOCArMjk0MiwxMyBAQCBzdGF0aWMgdm9p ZCBhdGgxMGtfcmVnZF91cGRhdGUoc3RydWN0IGF0aDEwayAqYXIpDQorIAlpZiAoY29uZmlnX2Vu YWJsZWQoQ1BUQ0ZHX0FUSDEwS19ERlNfQ0VSVElGSUVEKSAmJiBhci0+ZGZzX2RldGVjdG9yKSB7 DQorIAkJbmxfZGZzX3JlZyA9IGFyLT5kZnNfZGV0ZWN0b3ItPnJlZ2lvbjsNCisgCQl3bWlfZGZz X3JlZyA9IGF0aDEwa19tYWNfZ2V0X2Rmc19yZWdpb24obmxfZGZzX3JlZyk7DQorKwkJYXRoMTBr X2RiZyhhciwgQVRIMTBLX0RCR19SRUdVTEFUT1JZLA0KKysJCQkgICAibmxfZGZzX3JlZzogJWkg IHdtaV9kZnNfcmVnOiAlaVxuIiwNCisrCQkJICAgIG5sX2Rmc19yZWcsIHdtaV9kZnNfcmVnKTsN CisgCX0gZWxzZSB7DQorIAkJd21pX2Rmc19yZWcgPSBXTUlfVU5JTklUX0RGU19ET01BSU47DQor KwkJYXRoMTBrX2RiZyhhciwgQVRIMTBLX0RCR19SRUdVTEFUT1JZLA0KKysJCQkgICAibm90IERG U19DRVJUSUZJRUQgb3Igbm8gZGZzX2RldGVjdG9yLlxuIik7DQorIAl9DQorIA0KKyAJLyogVGFy Z2V0IGFsbG93cyBzZXR0aW5nIHVwIHBlci1iYW5kIHJlZ2RvbWFpbiBidXQgYXRoX2NvbW1vbiBw cm92aWRlcw0KZGlmZiAtLWdpdCBhL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5 LTAwNTYtYXRoMTBrLW1vcmUtcmVnZG9tLWRlYnVnZ2luZy1pbmZvcm1hdGlvbi5wYXRjaCBiL3Bh Y2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAwNTYtYXRoMTBrLW1vcmUtcmVnZG9t LWRlYnVnZ2luZy1pbmZvcm1hdGlvbi5wYXRjaA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4 IDAwMDAwMDAuLmZhNjBmYTMNCi0tLSAvZGV2L251bGwNCisrKyBiL3BhY2thZ2Uva2VybmVsL21h YzgwMjExL3BhdGNoZXMvOTk5LTAwNTYtYXRoMTBrLW1vcmUtcmVnZG9tLWRlYnVnZ2luZy1pbmZv cm1hdGlvbi5wYXRjaA0KQEAgLTAsMCArMSwyMiBAQA0KK0Zyb206IEJlbiBHcmVlYXIgPGdyZWVh cmJAY2FuZGVsYXRlY2guY29tPg0KK0RhdGU6IFdlZCwgMjQgU2VwIDIwMTQgMTM6MzU6MTkgLTA3 MDANCitTdWJqZWN0OiBbUEFUQ0hdIGF0aDEwazogbW9yZSByZWdkb20gZGVidWdnaW5nIGluZm9y bWF0aW9uLg0KKw0KK1NpZ25lZC1vZmYtYnk6IEJlbiBHcmVlYXIgPGdyZWVhcmJAY2FuZGVsYXRl Y2guY29tPg0KKy0tLQ0KKyBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL21hYy5jIHwg MiArLQ0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkNCisN CitkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMuYyBiL2Ry aXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvbWFjLmMNCitpbmRleCBlMWExZWYwMTQyMDMu Ljg5OTQxY2Y2YTJiZSAxMDA2NDQNCistLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRo MTBrL21hYy5jDQorKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMuYw0K K0BAIC0yOTc0LDcgKzI5NzQsNyBAQCBzdGF0aWMgdm9pZCBhdGgxMGtfcmVnX25vdGlmaWVyKHN0 cnVjdCB3aXBoeSAqd2lwaHksDQorIAlhdGhfcmVnX25vdGlmaWVyX2FwcGx5KHdpcGh5LCByZXF1 ZXN0LCAmYXItPmF0aF9jb21tb24ucmVndWxhdG9yeSk7DQorIA0KKyAJaWYgKGNvbmZpZ19lbmFi bGVkKENQVENGR19BVEgxMEtfREZTX0NFUlRJRklFRCkgJiYgYXItPmRmc19kZXRlY3Rvcikgew0K Ky0JCWF0aDEwa19kYmcoYXIsIEFUSDEwS19EQkdfUkVHVUxBVE9SWSwgImRmcyByZWdpb24gMHgl eFxuIiwNCisrCQlhdGgxMGtfZGJnKGFyLCBBVEgxMEtfREJHX1JFR1VMQVRPUlksICJyZWctbm90 aWZpZXI6IGRmcyByZWdpb24gMHgleFxuIiwNCisgCQkJICAgcmVxdWVzdC0+ZGZzX3JlZ2lvbik7 DQorIAkJcmVzdWx0ID0gYXItPmRmc19kZXRlY3Rvci0+c2V0X2Rmc19kb21haW4oYXItPmRmc19k ZXRlY3RvciwNCisgCQkJCQkJCSAgcmVxdWVzdC0+ZGZzX3JlZ2lvbik7DQpkaWZmIC0tZ2l0IGEv cGFja2FnZS9rZXJuZWwvbWFjODAyMTEvcGF0Y2hlcy85OTktMDA1Ny1hdGgxMGstZGVjcmVhc2Ut Y29uc29sZS1zcGFtbWluZy1mb3ItZmlybXdhcmUtZGVidWcucGF0Y2ggYi9wYWNrYWdlL2tlcm5l bC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDU3LWF0aDEway1kZWNyZWFzZS1jb25zb2xlLXNwYW1t aW5nLWZvci1maXJtd2FyZS1kZWJ1Zy5wYXRjaA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4 IDAwMDAwMDAuLjhhNDgxZjgNCi0tLSAvZGV2L251bGwNCisrKyBiL3BhY2thZ2Uva2VybmVsL21h YzgwMjExL3BhdGNoZXMvOTk5LTAwNTctYXRoMTBrLWRlY3JlYXNlLWNvbnNvbGUtc3BhbW1pbmct Zm9yLWZpcm13YXJlLWRlYnVnLnBhdGNoDQpAQCAtMCwwICsxLDQ5IEBADQorRnJvbTogQmVuIEdy ZWVhciA8Z3JlZWFyYkBjYW5kZWxhdGVjaC5jb20+DQorRGF0ZTogVHVlLCA0IE5vdiAyMDE0IDE5 OjU4OjM2IC0wNTAwDQorU3ViamVjdDogW1BBVENIXSBhdGgxMGs6IGRlY3JlYXNlIGNvbnNvbGUg c3BhbW1pbmcgZm9yIGZpcm13YXJlIGRlYnVnDQorDQorT25seSBzcGFtIHRoZSBjb25zb2xlIGlm IHRoZSBEQkdfRlcgZmxhZyBpcyBlbmFibGVkLA0KK290aGVyd2lzZSBqdXN0IHB1dCBpdCB0byAn ZG1lc2cnIG91dHB1dC4NCisNCitTaWduZWQtb2ZmLWJ5OiBCZW4gR3JlZWFyIDxncmVlYXJiQGNh bmRlbGF0ZWNoLmNvbT4NCistLS0NCisgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9k ZWJ1Zy5oIHwgIDEgKw0KKyBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS5jICAg fCAxMyArKysrKysrKysrLS0tDQorIDIgZmlsZXMgY2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygrKSwg MyBkZWxldGlvbnMoLSkNCisNCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRo L2F0aDEway9kZWJ1Zy5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9kZWJ1Zy5o DQoraW5kZXggYmRhZTQwNDM3N2MzLi40MzFhZjU1YjA1MzYgMTAwNjQ0DQorLS0tIGEvZHJpdmVy cy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9kZWJ1Zy5oDQorKysrIGIvZHJpdmVycy9uZXQvd2ly ZWxlc3MvYXRoL2F0aDEway9kZWJ1Zy5oDQorQEAgLTM3LDYgKzM3LDcgQEAgZW51bSBhdGgxMGtf ZGVidWdfbWFzayB7DQorIAlBVEgxMEtfREJHX1RFU1RNT0RFCT0gMHgwMDAwMTAwMCwNCisgCUFU SDEwS19EQkdfV01JX1BSSU5UCT0gMHgwMDAwMjAwMCwNCisgCUFUSDEwS19EQkdfUENJX1BTCT0g MHgwMDAwNDAwMCwNCisrCUFUSDEwS19EQkdfRlcJCT0gMHg4MDAwMDAwMCwNCisgCUFUSDEwS19E QkdfQU5ZCQk9IDB4ZmZmZmZmZmYsDQorIH07DQorIA0KK2RpZmYgLS1naXQgYS9kcml2ZXJzL25l dC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0 aDEway93bWkuYw0KK2luZGV4IDdjOGY0MGMxMjQ1OS4uM2YwNTA4OWUyYzVhIDEwMDY0NA0KKy0t LSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLmMNCisrKysgYi9kcml2ZXJz L25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS5jDQorQEAgLTE2OTQsOSArMTY5NCwxNiBAQCBp bnQgYXRoMTBrX3dtaV9ldmVudF9kZWJ1Z19tZXNnKHN0cnVjdCBhdGgxMGsgKmFyLCBzdHJ1Y3Qg c2tfYnVmZiAqc2tiKQ0KKyAJYXRoMTBrX2RiZ19zYXZlX2Z3X2RiZ19idWZmZXIoYXIsIGV2LT5t ZXNzYWdlcywNCisgCQkJCSAgICAgIChza2ItPmxlbiAtIDQpL3NpemVvZihfX2xlMzIpKTsNCisg CXNwaW5fdW5sb2NrX2JoKCZhci0+ZGF0YV9sb2NrKTsNCistCWF0aDEwa19kYmdfcHJpbnRfZndf ZGJnX2J1ZmZlcihhciwgZXYtPm1lc3NhZ2VzLA0KKy0JCQkJICAgICAgIChza2ItPmxlbiAtIDQp L3NpemVvZihfX2xlMzIpLA0KKy0JCQkJICAgICAgIEtFUk5fSU5GTyk7DQorKw0KKysJaWYgKGF0 aDEwa19kZWJ1Z19tYXNrICYgQVRIMTBLX0RCR19GVykNCisrCQlhdGgxMGtfZGJnX3ByaW50X2Z3 X2RiZ19idWZmZXIoYXIsIGV2LT5tZXNzYWdlcywNCisrCQkJCQkgICAgICAgKHNrYi0+bGVuIC0g NCkvc2l6ZW9mKF9fbGUzMiksDQorKwkJCQkJICAgICAgIEtFUk5fSU5GTyk7DQorKwllbHNlDQor KwkJYXRoMTBrX2RiZ19wcmludF9md19kYmdfYnVmZmVyKGFyLCBldi0+bWVzc2FnZXMsDQorKwkJ CQkJICAgICAgIChza2ItPmxlbiAtIDQpL3NpemVvZihfX2xlMzIpLA0KKysJCQkJCSAgICAgICBL RVJOX0RFQlVHKTsNCisrDQorIAlyZXR1cm4gMDsNCisgfQ0KKyANCmRpZmYgLS1naXQgYS9wYWNr YWdlL2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDU4LWF0aDEway1zdXBwb3J0LWxvZ2dp bmctYXRoMTBrX2luZm8tYXMtS0VSTl9ERUJVRy5wYXRjaCBiL3BhY2thZ2Uva2VybmVsL21hYzgw MjExL3BhdGNoZXMvOTk5LTAwNTgtYXRoMTBrLXN1cHBvcnQtbG9nZ2luZy1hdGgxMGtfaW5mby1h cy1LRVJOX0RFQlVHLnBhdGNoDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMC4u NGFlZTM2ZQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIvcGFja2FnZS9rZXJuZWwvbWFjODAyMTEvcGF0 Y2hlcy85OTktMDA1OC1hdGgxMGstc3VwcG9ydC1sb2dnaW5nLWF0aDEwa19pbmZvLWFzLUtFUk5f REVCVUcucGF0Y2gNCkBAIC0wLDAgKzEsNTMgQEANCitGcm9tOiBCZW4gR3JlZWFyIDxncmVlYXJi QGNhbmRlbGF0ZWNoLmNvbT4NCitEYXRlOiBXZWQsIDUgTm92IDIwMTQgMjA6MDA6MTIgLTA1MDAN CitTdWJqZWN0OiBbUEFUQ0hdIGF0aDEwazogc3VwcG9ydCBsb2dnaW5nIGF0aDEwa19pbmZvIGFz IEtFUk5fREVCVUcNCisNCitIZWxwcyBrZWVwIG1lc3NhZ2VzIG9mZiBvZiAoc2VyaWFsKSBjb25z b2xlIHdoZW4NCit0aGF0IGlzIGRlc2lyZWQuDQorDQorU2lnbmVkLW9mZi1ieTogQmVuIEdyZWVh ciA8Z3JlZWFyYkBjYW5kZWxhdGVjaC5jb20+DQorLS0tDQorIGRyaXZlcnMvbmV0L3dpcmVsZXNz L2F0aC9hdGgxMGsvZGVidWcuYyB8IDUgKysrKy0NCisgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRo L2F0aDEway9kZWJ1Zy5oIHwgNiArKysrKysNCisgMiBmaWxlcyBjaGFuZ2VkLCAxMCBpbnNlcnRp b25zKCspLCAxIGRlbGV0aW9uKC0pDQorDQorZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVs ZXNzL2F0aC9hdGgxMGsvZGVidWcuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsv ZGVidWcuYw0KK2luZGV4IDgzYjdiN2IwYjQ0OC4uOWFkNTg4NWQwZTRjIDEwMDY0NA0KKy0tLSBh L2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvZGVidWcuYw0KKysrKyBiL2RyaXZlcnMv bmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvZGVidWcuYw0KK0BAIC0xMzcsNyArMTM3LDEwIEBAIHZv aWQgYXRoMTBrX2luZm8oc3RydWN0IGF0aDEwayAqYXIsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKQ0K KyANCisgCXZhX3N0YXJ0KGFyZ3MsIGZtdCk7DQorIAl2YWYudmEgPSAmYXJnczsNCistCWRldl9p bmZvKGFyLT5kZXYsICIlcFYiLCAmdmFmKTsNCisrCWlmIChhdGgxMGtfZGVidWdfbWFzayAmIEFU SDEwS19EQkdfSU5GT19BU19EQkcpDQorKwkJZGV2X3ByaW50ayhLRVJOX0RFQlVHLCBhci0+ZGV2 LCAiJXBWIiwgJnZhZik7DQorKwllbHNlDQorKwkJZGV2X2luZm8oYXItPmRldiwgIiVwViIsICZ2 YWYpOw0KKyAJdHJhY2VfYXRoMTBrX2xvZ19pbmZvKGFyLCAmdmFmKTsNCisgCXZhX2VuZChhcmdz KTsNCisgfQ0KK2RpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2Rl YnVnLmggYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2RlYnVnLmgNCitpbmRleCA0 MzFhZjU1YjA1MzYuLjZhNmY3NmI3ZTQ0YiAxMDA2NDQNCistLS0gYS9kcml2ZXJzL25ldC93aXJl bGVzcy9hdGgvYXRoMTBrL2RlYnVnLmgNCisrKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgv YXRoMTBrL2RlYnVnLmgNCitAQCAtMjEsNiArMjEsMTAgQEANCisgI2luY2x1ZGUgPGxpbnV4L3R5 cGVzLmg+DQorICNpbmNsdWRlICJ0cmFjZS5oIg0KKyANCisrLyoqDQorKyAqIEFUSDEwS19EQkdf SU5GT19BU19EQkc6IHVzZSBkZXZfZGJnIGluc3RlYWQgb2YgZGV2X2luZm8NCisrICogICAgICAg Zm9yIGF0aDEwa19pbmZvIG1lc3NhZ2VzDQorKyAqLw0KKyBlbnVtIGF0aDEwa19kZWJ1Z19tYXNr IHsNCisgCUFUSDEwS19EQkdfUENJCQk9IDB4MDAwMDAwMDEsDQorIAlBVEgxMEtfREJHX1dNSQkJ PSAweDAwMDAwMDAyLA0KK0BAIC0zNyw2ICs0MSw4IEBAIGVudW0gYXRoMTBrX2RlYnVnX21hc2sg ew0KKyAJQVRIMTBLX0RCR19URVNUTU9ERQk9IDB4MDAwMDEwMDAsDQorIAlBVEgxMEtfREJHX1dN SV9QUklOVAk9IDB4MDAwMDIwMDAsDQorIAlBVEgxMEtfREJHX1BDSV9QUwk9IDB4MDAwMDQwMDAs DQorKw0KKysJQVRIMTBLX0RCR19JTkZPX0FTX0RCRwk9IDB4NDAwMDAwMDAsDQorIAlBVEgxMEtf REJHX0ZXCQk9IDB4ODAwMDAwMDAsDQorIAlBVEgxMEtfREJHX0FOWQkJPSAweGZmZmZmZmZmLA0K KyB9Ow0KZGlmZiAtLWdpdCBhL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAw NTktYXRoMTBrLXN1cHBvcnQtZGlzYWJsaW5nLWNoLXJlc291cmNlLXJlc2VydmF0aW9uLnBhdGNo IGIvcGFja2FnZS9rZXJuZWwvbWFjODAyMTEvcGF0Y2hlcy85OTktMDA1OS1hdGgxMGstc3VwcG9y dC1kaXNhYmxpbmctY2gtcmVzb3VyY2UtcmVzZXJ2YXRpb24ucGF0Y2gNCm5ldyBmaWxlIG1vZGUg MTAwNjQ0DQppbmRleCAwMDAwMDAwLi45NTJiNWNmDQotLS0gL2Rldi9udWxsDQorKysgYi9wYWNr YWdlL2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDU5LWF0aDEway1zdXBwb3J0LWRpc2Fi bGluZy1jaC1yZXNvdXJjZS1yZXNlcnZhdGlvbi5wYXRjaA0KQEAgLTAsMCArMSwxNDEgQEANCitG cm9tOiBCZW4gR3JlZWFyIDxncmVlYXJiQGNhbmRlbGF0ZWNoLmNvbT4NCitEYXRlOiBXZWQsIDMx IERlYyAyMDE0IDEzOjU5OjE2IC0wODAwDQorU3ViamVjdDogW1BBVENIXSBhdGgxMGs6IHN1cHBv cnQgZGlzYWJsaW5nIGNoIHJlc291cmNlIHJlc2VydmF0aW9uLg0KKw0KK0NUIGZpcm13YXJlIHN1 cHBvcnRzIGRpc2FibGluZyBjaGFubmVsIHJlc291cmNlIHJlc2VydmF0aW9uIHdoZW4NCitzdGFy dGluZyB2ZGV2cy4gIFRoaXMgc2F2ZXMgMjAwK21zIHdoZW4gc3RhcnRpbmcgYSBzZWNvbmQgc3Rh dGlvbg0KK3ZkZXYuDQorDQorU2lnbmVkLW9mZi1ieTogIEJlbiBHcmVlYXIgPGdyZWVhcmJAY2Fu ZGVsYXRlY2guY29tPg0KKy0tLQ0KKyBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dt aS10bHYuYyB8ICA0ICstLQ0KKyBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS5j ICAgICB8IDQxICsrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0NCisgZHJpdmVycy9uZXQv d2lyZWxlc3MvYXRoL2F0aDEway93bWkuaCAgICAgfCAxMyArKysrKysrKy0tDQorIDMgZmlsZXMg Y2hhbmdlZCwgNTAgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkNCisNCitkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWktdGx2LmMgYi9kcml2ZXJzL25l dC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS10bHYuYw0KK2luZGV4IDhmZGJhMzg2NWM5Ni4uYTJk NTE1NzIwMWE4IDEwMDY0NA0KKy0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsv d21pLXRsdi5jDQorKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWktdGx2 LmMNCitAQCAtMTYxMCw3ICsxNjEwLDcgQEAgYXRoMTBrX3dtaV90bHZfb3BfZ2VuX3ZkZXZfc3Rh cnQoc3RydWN0IGF0aDEwayAqYXIsDQorIAl0bHYtPnRhZyA9IF9fY3B1X3RvX2xlMTYoV01JX1RM Vl9UQUdfU1RSVUNUX0NIQU5ORUwpOw0KKyAJdGx2LT5sZW4gPSBfX2NwdV90b19sZTE2KHNpemVv ZigqY2gpKTsNCisgCWNoID0gKHZvaWQgKil0bHYtPnZhbHVlOw0KKy0JYXRoMTBrX3dtaV9wdXRf d21pX2NoYW5uZWwoY2gsICZhcmctPmNoYW5uZWwpOw0KKysJYXRoMTBrX3dtaV9wdXRfd21pX2No YW5uZWwoYXIsIGNoLCAmYXJnLT5jaGFubmVsLCBhcmctPnZkZXZfaWQpOw0KKyANCisgCXB0ciAr PSBzaXplb2YoKnRsdik7DQorIAlwdHIgKz0gc2l6ZW9mKCpjaCk7DQorQEAgLTIyNDYsNyArMjI0 Niw3IEBAIGF0aDEwa193bWlfdGx2X29wX2dlbl9zY2FuX2NoYW5fbGlzdChzdHJ1Y3QgYXRoMTBr ICphciwNCisgCQl0bHYtPmxlbiA9IF9fY3B1X3RvX2xlMTYoc2l6ZW9mKCpjaSkpOw0KKyAJCWNp ID0gKHZvaWQgKil0bHYtPnZhbHVlOw0KKyANCistCQlhdGgxMGtfd21pX3B1dF93bWlfY2hhbm5l bChjaSwgY2gpOw0KKysJCWF0aDEwa193bWlfcHV0X3dtaV9jaGFubmVsKGFyLCBjaSwgY2gsIDB4 RkZGRkZGRkYpOw0KKyANCisgCQljaGFucyArPSBzaXplb2YoKnRsdik7DQorIAkJY2hhbnMgKz0g c2l6ZW9mKCpjaSk7DQorZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgx MGsvd21pLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS5jDQoraW5kZXgg M2YwNTA4OWUyYzVhLi5mNzNiZmMzNTJjZDggMTAwNjQ0DQorLS0tIGEvZHJpdmVycy9uZXQvd2ly ZWxlc3MvYXRoL2F0aDEway93bWkuYw0KKysrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9h dGgxMGsvd21pLmMNCitAQCAtODU4LDggKzg1OCwzNyBAQCBzdGF0aWMgc3RydWN0IHdtaV9jbWRf bWFwIHdtaV8xMF8yX2NtZF9tYXAgPSB7DQorIAkucGRldl9nZXRfdGVtcGVyYXR1cmVfY21kaWQg PSBXTUlfQ01EX1VOU1VQUE9SVEVELA0KKyB9Ow0KKyANCistdm9pZCBhdGgxMGtfd21pX3B1dF93 bWlfY2hhbm5lbChzdHJ1Y3Qgd21pX2NoYW5uZWwgKmNoLA0KKy0JCQkJY29uc3Qgc3RydWN0IHdt aV9jaGFubmVsX2FyZyAqYXJnKQ0KKytzdGF0aWMgYm9vbCBhdGgxMGtfb2tfc2tpcF9jaF9yZXNl cnZhdGlvbihzdHJ1Y3QgYXRoMTBrICphciwgdTMyIHZkZXZfaWQpDQorK3sNCisrCXN0cnVjdCBh dGgxMGtfdmlmICphcnZpZjsNCisrCWJvb2wgcnYgPSBmYWxzZTsNCisrDQorKwlpZiAoISB0ZXN0 X2JpdChBVEgxMEtfRldfRkVBVFVSRV9XTUlfMTBYX0NULCBhci0+ZndfZmVhdHVyZXMpKQ0KKysJ CXJldHVybiBydjsNCisrDQorKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGFydmlmLCAmYXItPmFydmlm cywgbGlzdCkgew0KKysJCWlmICghYXJ2aWYtPmlzX3VwKQ0KKysJCQljb250aW51ZTsNCisrDQor KwkJaWYgKGFydmlmLT52ZGV2X2lkID09IHZkZXZfaWQpIHsNCisrCQkJaWYgKGFydmlmLT52ZGV2 X3R5cGUgIT0gV01JX1ZERVZfVFlQRV9TVEEpDQorKwkJCQlyZXR1cm4gZmFsc2U7DQorKwkJCWNv bnRpbnVlOw0KKysJCX0NCisrDQorKwkJLyogSWYgdGhlcmUgaXMgYW5vdGhlciBzdGF0aW9uIHVw LCB0aGVuIGFzc3VtZQ0KKysJCSAqIHJlcXVlc3RlZCBzdGF0aW9uIG11c3QgdXNlIHNhbWUgY2hh bm5lbC4NCisrCQkgKi8NCisrCQlpZiAoYXJ2aWYtPnZkZXZfdHlwZSA9PSBXTUlfVkRFVl9UWVBF X1NUQSkNCisrCQkJcnYgPSB0cnVlOw0KKysJfQ0KKysJcmV0dXJuIHJ2Ow0KKyt9DQorKw0KKyt2 b2lkIGF0aDEwa193bWlfcHV0X3dtaV9jaGFubmVsKHN0cnVjdCBhdGgxMGsgKmFyLA0KKysJCQkJ c3RydWN0IHdtaV9jaGFubmVsICpjaCwNCisrCQkJCWNvbnN0IHN0cnVjdCB3bWlfY2hhbm5lbF9h cmcgKmFyZywNCisrCQkJCXUzMiB2ZGV2X2lkKQ0KKyB7DQorIAl1MzIgZmxhZ3MgPSAwOw0KKyAN CitAQCAtODc4LDYgKzkwNywxMCBAQCB2b2lkIGF0aDEwa193bWlfcHV0X3dtaV9jaGFubmVsKHN0 cnVjdCB3bWlfY2hhbm5lbCAqY2gsDQorIAlpZiAoYXJnLT5jaGFuX3JhZGFyKQ0KKyAJCWZsYWdz IHw9IFdNSV9DSEFOX0ZMQUdfREZTOw0KKyANCisrCWlmIChhdGgxMGtfb2tfc2tpcF9jaF9yZXNl cnZhdGlvbihhciwgdmRldl9pZCkpDQorKwkJLyogRGlzYWJsZSBoYXZpbmcgZmlybXdhcmUgcmVx dWVzdCBvbi1jaGFubmVsIHJlc2VydmF0aW9uICovDQorKwkJZmxhZ3MgfD0gV01JX0NIQU5fRkxB R19OT19SRVNFUlZFX0NIOw0KKysNCisgCWNoLT5taHogPSBfX2NwdV90b19sZTMyKGFyZy0+ZnJl cSk7DQorIAljaC0+YmFuZF9jZW50ZXJfZnJlcTEgPSBfX2NwdV90b19sZTMyKGFyZy0+YmFuZF9j ZW50ZXJfZnJlcTEpOw0KKyAJY2gtPmJhbmRfY2VudGVyX2ZyZXEyID0gMDsNCitAQCAtNDM3OSw3 ICs0NDEyLDcgQEAgYXRoMTBrX3dtaV9vcF9nZW5fdmRldl9zdGFydChzdHJ1Y3QgYXRoMTBrICph ciwNCisgCQltZW1jcHkoY21kLT5zc2lkLnNzaWQsIGFyZy0+c3NpZCwgYXJnLT5zc2lkX2xlbik7 DQorIAl9DQorIA0KKy0JYXRoMTBrX3dtaV9wdXRfd21pX2NoYW5uZWwoJmNtZC0+Y2hhbiwgJmFy Zy0+Y2hhbm5lbCk7DQorKwlhdGgxMGtfd21pX3B1dF93bWlfY2hhbm5lbChhciwgJmNtZC0+Y2hh biwgJmFyZy0+Y2hhbm5lbCwgYXJnLT52ZGV2X2lkKTsNCisgDQorIAlhdGgxMGtfZGJnKGFyLCBB VEgxMEtfREJHX1dNSSwNCisgCQkgICAid21pIHZkZXYgJXMgaWQgMHgleCBmbGFnczogMHglMFgs IGZyZXEgJWQsIG1vZGUgJWQsIGNoX2ZsYWdzOiAweCUwWCwgbWF4X3Bvd2VyOiAlZFxuIiwNCitA QCAtNDc1MCw3ICs0NzgzLDcgQEAgYXRoMTBrX3dtaV9vcF9nZW5fc2Nhbl9jaGFuX2xpc3Qoc3Ry dWN0IGF0aDEwayAqYXIsDQorIAkJY2ggPSAmYXJnLT5jaGFubmVsc1tpXTsNCisgCQljaSA9ICZj bWQtPmNoYW5faW5mb1tpXTsNCisgDQorLQkJYXRoMTBrX3dtaV9wdXRfd21pX2NoYW5uZWwoY2ks IGNoKTsNCisrCQlhdGgxMGtfd21pX3B1dF93bWlfY2hhbm5lbChhciwgY2ksIGNoLCAtMSk7DQor IAl9DQorIA0KKyAJcmV0dXJuIHNrYjsNCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxl c3MvYXRoL2F0aDEway93bWkuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21p LmgNCitpbmRleCAzODI2NzgzYjg2MDIuLjI5ZGNjMTE0Y2VkOSAxMDA2NDQNCistLS0gYS9kcml2 ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS5oDQorKysrIGIvZHJpdmVycy9uZXQvd2ly ZWxlc3MvYXRoL2F0aDEway93bWkuaA0KK0BAIC0xMzQ1LDYgKzEzNDUsMTMgQEAgZW51bSB3bWlf Y2hhbm5lbF9jaGFuZ2VfY2F1c2Ugew0KKyAjZGVmaW5lIFdNSV9DSEFOX0ZMQUdfREZTICAgICAg ICAgICAgKDEgPDwgMTApDQorICNkZWZpbmUgV01JX0NIQU5fRkxBR19BTExPV19IVCAgICAgICAo MSA8PCAxMSkNCisgI2RlZmluZSBXTUlfQ0hBTl9GTEFHX0FMTE9XX1ZIVCAgICAgICgxIDw8IDEy KQ0KKysjZGVmaW5lIFdNSV9DSEFOX0ZMQUdfSEFMRiAgICAgICAgICAgKDEgPDwgMTMpDQorKyNk ZWZpbmUgV01JX0NIQU5fRkxBR19RVUFSVEVSICAgICAgICAoMSA8PCAxNCkNCisrI2RlZmluZSBX TUlfQ0hBTl9GTEFHX05PX1JFU0VSVkVfQ0ggICgxIDw8IDMxKSAvKiBDVCBmaXJtd2FyZSBvbmx5 LCBkbyBub3QgcmVzZXJ2ZSBjaGFubmVsLg0KKysJCQkJCQkqIFRha2VzIDIwMCttcyB0byBncmFi IHJlc2VydmF0aW9uIHdoZW4gc3RhcnRpbmcNCisrCQkJCQkJKiB2ZGV2LCBhbmQgSSB0aGluayBp dCBpcyBoYW5kbGVkIGVsc2V3aGVyZSBieSB0aGUNCisrCQkJCQkJKiBzdGFjayBhbmQvb3Igc3Vw cGxpY2FudCBhbnl3YXkuIC0tQmVuDQorKwkJCQkJCSovDQorIA0KKyAvKiBJbmRpY2F0ZSByZWFz b24gZm9yIGNoYW5uZWwgc3dpdGNoICovDQorICNkZWZpbmUgV01JX0NIQU5ORUxfQ0hBTkdFX0NB VVNFX0NTQSAoMSA8PCAxMykNCitAQCAtNTE4NSw4ICs1MTkyLDEwIEBAIHZvaWQgYXRoMTBrX3dt aV9wdXRfc3RhcnRfc2Nhbl9jb21tb24oc3RydWN0IHdtaV9zdGFydF9zY2FuX2NvbW1vbiAqY21u LA0KKyAJCQkJICAgICAgY29uc3Qgc3RydWN0IHdtaV9zdGFydF9zY2FuX2FyZyAqYXJnKTsNCisg dm9pZCBhdGgxMGtfd21pX3NldF93bW1fcGFyYW0oc3RydWN0IHdtaV93bW1fcGFyYW1zICpwYXJh bXMsDQorIAkJCSAgICAgIGNvbnN0IHN0cnVjdCB3bWlfd21tX3BhcmFtc19hcmcgKmFyZyk7DQor LXZvaWQgYXRoMTBrX3dtaV9wdXRfd21pX2NoYW5uZWwoc3RydWN0IHdtaV9jaGFubmVsICpjaCwN CistCQkJCWNvbnN0IHN0cnVjdCB3bWlfY2hhbm5lbF9hcmcgKmFyZyk7DQorK3ZvaWQgYXRoMTBr X3dtaV9wdXRfd21pX2NoYW5uZWwoc3RydWN0IGF0aDEwayAqYXIsDQorKwkJCQlzdHJ1Y3Qgd21p X2NoYW5uZWwgKmNoLA0KKysJCQkJY29uc3Qgc3RydWN0IHdtaV9jaGFubmVsX2FyZyAqYXJnLA0K KysJCQkJdTMyIHZkZXZfaWQpOw0KKyBpbnQgYXRoMTBrX3dtaV9zdGFydF9zY2FuX3ZlcmlmeShj b25zdCBzdHJ1Y3Qgd21pX3N0YXJ0X3NjYW5fYXJnICphcmcpOw0KKyANCisgaW50IGF0aDEwa193 bWlfZXZlbnRfc2NhbihzdHJ1Y3QgYXRoMTBrICphciwgc3RydWN0IHNrX2J1ZmYgKnNrYik7DQpk aWZmIC0tZ2l0IGEvcGFja2FnZS9rZXJuZWwvbWFjODAyMTEvcGF0Y2hlcy85OTktMDA2MC1hdGgx MGstRW5hYmxlLWFkaG9jLW1vZGUtZm9yLUNULWZpcm13YXJlLnBhdGNoIGIvcGFja2FnZS9rZXJu ZWwvbWFjODAyMTEvcGF0Y2hlcy85OTktMDA2MC1hdGgxMGstRW5hYmxlLWFkaG9jLW1vZGUtZm9y LUNULWZpcm13YXJlLnBhdGNoDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMC4u ODVkMjE1ZQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIvcGFja2FnZS9rZXJuZWwvbWFjODAyMTEvcGF0 Y2hlcy85OTktMDA2MC1hdGgxMGstRW5hYmxlLWFkaG9jLW1vZGUtZm9yLUNULWZpcm13YXJlLnBh dGNoDQpAQCAtMCwwICsxLDMyIEBADQorRnJvbTogQmVuIEdyZWVhciA8Z3JlZWFyYkBjYW5kZWxh dGVjaC5jb20+DQorRGF0ZTogRnJpLCAyMSBOb3YgMjAxNCAxMzo1NToyMCAtMDUwMA0KK1N1Ympl Y3Q6IFtQQVRDSF0gYXRoMTBrOiBFbmFibGUgYWRob2MgbW9kZSBmb3IgQ1QgZmlybXdhcmUuDQor DQorRG9lc24ndCBhY3R1YWxseSB3b3JrIHlldCwgYnV0IGhvcGVmdWxseSBpdCB3aWxsIHNvb24u DQorLS0tDQorIGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvbWFjLmMgfCA1ICsrKysr DQorIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKykNCisNCitkaWZmIC0tZ2l0IGEvZHJp dmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNz L2F0aC9hdGgxMGsvbWFjLmMNCitpbmRleCA4OTk0MWNmNmEyYmUuLjY5YTA0NDQ4OGRhMiAxMDA2 NDQNCistLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL21hYy5jDQorKysrIGIv ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMuYw0KK0BAIC02NTkwLDYgKzY1OTAs MTAgQEAgc3RhdGljIHN0cnVjdCBpZWVlODAyMTFfaWZhY2VfbGltaXQgYXRoMTBrXzEweF9jdF9p Zl9saW1pdHNbXSA9IHsNCisgCS5tYXgJPSA3LA0KKyAJLnR5cGVzCT0gQklUKE5MODAyMTFfSUZU WVBFX0FQKQ0KKyAJfSwNCisrCXsNCisrCS5tYXgJPSAxLA0KKysJLnR5cGVzCT0gQklUKE5MODAy MTFfSUZUWVBFX0FESE9DKQ0KKysJfSwNCisgfTsNCisgDQorIHN0YXRpYyBzdHJ1Y3QgaWVlZTgw MjExX2lmYWNlX2NvbWJpbmF0aW9uIGF0aDEwa19pZl9jb21iW10gPSB7DQorQEAgLTcwMTgsNiAr NzAyMiw3IEBAIGludCBhdGgxMGtfbWFjX3JlZ2lzdGVyKHN0cnVjdCBhdGgxMGsgKmFyKQ0KKyAJ CQkJYXRoMTBrXzEweF9jdF9pZl9jb21iOw0KKyAJCQlhci0+aHctPndpcGh5LT5uX2lmYWNlX2Nv bWJpbmF0aW9ucyA9DQorIAkJCQlBUlJBWV9TSVpFKGF0aDEwa18xMHhfY3RfaWZfY29tYik7DQor KwkJCWFyLT5ody0+d2lwaHktPmludGVyZmFjZV9tb2RlcyB8PSBCSVQoTkw4MDIxMV9JRlRZUEVf QURIT0MpOw0KKyAJCX0gZWxzZSB7DQorIAkJCWFyLT5ody0+d2lwaHktPmlmYWNlX2NvbWJpbmF0 aW9ucyA9IGF0aDEwa18xMHhfaWZfY29tYjsNCisgCQkJYXItPmh3LT53aXBoeS0+bl9pZmFjZV9j b21iaW5hdGlvbnMgPQ0KZGlmZiAtLWdpdCBhL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNo ZXMvOTk5LTAwNjEtYXRoMTBrLWFkZC1pcnEtcmVnaXN0ZXJzLXRvLXJlZ2lzdGVyLWR1bXAucGF0 Y2ggYi9wYWNrYWdlL2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDYxLWF0aDEway1hZGQt aXJxLXJlZ2lzdGVycy10by1yZWdpc3Rlci1kdW1wLnBhdGNoDQpuZXcgZmlsZSBtb2RlIDEwMDY0 NA0KaW5kZXggMDAwMDAwMC4uMmYwYWRlYw0KLS0tIC9kZXYvbnVsbA0KKysrIGIvcGFja2FnZS9r ZXJuZWwvbWFjODAyMTEvcGF0Y2hlcy85OTktMDA2MS1hdGgxMGstYWRkLWlycS1yZWdpc3RlcnMt dG8tcmVnaXN0ZXItZHVtcC5wYXRjaA0KQEAgLTAsMCArMSw2NyBAQA0KK0Zyb206IEJlbiBHcmVl YXIgPGdyZWVhcmJAY2FuZGVsYXRlY2guY29tPg0KK0RhdGU6IFR1ZSwgMjUgTm92IDIwMTQgMTk6 NDc6NTAgLTA1MDANCitTdWJqZWN0OiBbUEFUQ0hdIGF0aDEwazogYWRkIGlycSByZWdpc3RlcnMg dG8gcmVnaXN0ZXIgZHVtcC4NCisNCitIZWxwcyB0byBmaWd1cmUgb3V0IGN1cnJlbnQgaGFyZHdh cmUgc3RhdGUuDQorDQorU2lnbmVkLW9mZi1ieTogQmVuIEdyZWVhciA8Z3JlZWFyYkBjYW5kZWxh dGVjaC5jb20+DQorLS0tDQorIGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvY29yZS5o ICB8ICAyICsrDQorIGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvZGVidWcuYyB8IDEw ICsrKysrKysrKysNCisgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWkuaCAgIHwg IDIgKysNCisgMyBmaWxlcyBjaGFuZ2VkLCAxNCBpbnNlcnRpb25zKCspDQorDQorZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvY29yZS5oIGIvZHJpdmVycy9uZXQv d2lyZWxlc3MvYXRoL2F0aDEway9jb3JlLmgNCitpbmRleCBkYmZiY2ZmZmNhNGMuLjgxN2IzMjAy N2I5YyAxMDA2NDQNCistLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2NvcmUu aA0KKysrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvY29yZS5oDQorQEAgLTI2 MSw2ICsyNjEsOCBAQCBzdHJ1Y3QgYXRoMTBrX2Z3X3N0YXRzIHsNCisgCXUzMiBtYWNfZG1hX3R4 Y2ZnOw0KKyAJdTMyIHBjdV9yeGZpbHRlcjsNCisgCXUzMiBwaHlfYmJfZ2VuX2NvbnRyb2xzOw0K KysJdTMyIGRtYV9pbXI7DQorKwl1MzIgZG1hX3R4cnhfaW1yOw0KKyAJdTMyIHN3X3Bvd2VybW9k ZTsNCisgCXUxNiBzd19jaGFpbm1hc2tfdHg7DQorIAl1MTYgc3dfY2hhaW5tYXNrX3J4Ow0KK2Rp ZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2RlYnVnLmMgYi9kcml2 ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2RlYnVnLmMNCitpbmRleCA5YWQ1ODg1ZDBlNGMu LjM3ZTEyODYzNmEzYSAxMDA2NDQNCistLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRo MTBrL2RlYnVnLmMNCisrKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2RlYnVn LmMNCitAQCAtMzg5LDYgKzM4OSwxMiBAQCB2b2lkIGF0aDEwa19kZWJ1Z19md19zdGF0c19wcm9j ZXNzKHN0cnVjdCBhdGgxMGsgKmFyLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQ0KKyAJCQljYXNlIFBI WV9CQl9HRU5fQ09OVFJPTFM6DQorIAkJCQlzcHRyLT5waHlfYmJfZ2VuX2NvbnRyb2xzID0gX19s ZTMyX3RvX2NwdShyZWdkdW1wLT5yZWdwYWlyW2ldLnJlZ192YWwpOw0KKyAJCQkJYnJlYWs7DQor KwkJCWNhc2UgRE1BX0lNUjoNCisrCQkJCXNwdHItPmRtYV9pbXIgPSBfX2xlMzJfdG9fY3B1KHJl Z2R1bXAtPnJlZ3BhaXJbaV0ucmVnX3ZhbCk7DQorKwkJCQlicmVhazsNCisrCQkJY2FzZSBETUFf VFhSWF9JTVI6DQorKwkJCQlzcHRyLT5kbWFfdHhyeF9pbXIgPSBfX2xlMzJfdG9fY3B1KHJlZ2R1 bXAtPnJlZ3BhaXJbaV0ucmVnX3ZhbCk7DQorKwkJCQlicmVhazsNCisgCQkJY2FzZSBTV19QT1dF Uk1PREU6DQorIAkJCQlzcHRyLT5zd19wb3dlcm1vZGUgPSBfX2xlMzJfdG9fY3B1KHJlZ2R1bXAt PnJlZ3BhaXJbaV0ucmVnX3ZhbCk7DQorIAkJCQlicmVhazsNCitAQCAtODY4LDYgKzg3NCwxMCBA QCBzdGF0aWMgc3NpemVfdCBhdGgxMGtfcmVhZF9md19yZWdzKHN0cnVjdCBmaWxlICpmaWxlLCBj aGFyIF9fdXNlciAqdXNlcl9idWYsDQorIAlsZW4gKz0gc2NucHJpbnRmKGJ1ZiArIGxlbiwgYnVm X2xlbiAtIGxlbiwgIiUzMHMgMHglMDh4XG4iLA0KKyAJCQkgIlBIWS1CQi1HRU4tQ09OVFJPTFMi LCBmd19yZWdzLT5waHlfYmJfZ2VuX2NvbnRyb2xzKTsNCisgCWxlbiArPSBzY25wcmludGYoYnVm ICsgbGVuLCBidWZfbGVuIC0gbGVuLCAiJTMwcyAweCUwOHhcbiIsDQorKwkJCSAiRE1BLUlNUiIs IGZ3X3JlZ3MtPmRtYV9pbXIpOw0KKysJbGVuICs9IHNjbnByaW50ZihidWYgKyBsZW4sIGJ1Zl9s ZW4gLSBsZW4sICIlMzBzIDB4JTA4eFxuIiwNCisrCQkJICJETUEtVFhSWC1JTVIiLCBmd19yZWdz LT5kbWFfdHhyeF9pbXIpOw0KKysJbGVuICs9IHNjbnByaW50ZihidWYgKyBsZW4sIGJ1Zl9sZW4g LSBsZW4sICIlMzBzIDB4JTA4eFxuIiwNCisgCQkJICJQQ1UtQlNTSUQtTDMyIiwgZndfcmVncy0+ cGN1X2Jzc2lkX2wzMik7DQorIAlsZW4gKz0gc2NucHJpbnRmKGJ1ZiArIGxlbiwgYnVmX2xlbiAt IGxlbiwgIiUzMHMgMHglMDh4XG4iLA0KKyAJCQkgIlBDVS1CU1NJRC1VMTYiLCBmd19yZWdzLT5w Y3VfYnNzaWRfdTE2KTsNCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0 aDEway93bWkuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLmgNCitpbmRl eCAyOWRjYzExNGNlZDkuLjk3MzMxMWIyN2I0YiAxMDA2NDQNCistLS0gYS9kcml2ZXJzL25ldC93 aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS5oDQorKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRo L2F0aDEway93bWkuaA0KK0BAIC0zMTE1LDYgKzMxMTUsOCBAQCBzdHJ1Y3Qgd21pX3BkZXZfc3Rh dHNfcGVlciB7DQorICNkZWZpbmUgUENVX1NUQV9BRERSX0wzMiAgICAgMTINCisgI2RlZmluZSBQ Q1VfUlhGSUxURVIgICAgICAgICAxMw0KKyAjZGVmaW5lIFBIWV9CQl9HRU5fQ09OVFJPTFMgIDE0 DQorKyNkZWZpbmUgRE1BX0lNUiAgICAgICAgICAgICAgMTUNCisrI2RlZmluZSBETUFfVFhSWF9J TVIgICAgICAgICAxNg0KKyAjZGVmaW5lIFNXX1BPV0VSTU9ERSAgICAgICAgIDE3DQorICNkZWZp bmUgU1dfQ0hBSU5NQVNLICAgICAgICAgMTggLyogdHggaXMgaGlnaCAxNiBiaXRzLCByeCBpcyBs b3cgMTYgYml0cyAqLw0KKyAjZGVmaW5lIFNXX09QTU9ERSAgICAgICAgICAgIDE5DQpkaWZmIC0t Z2l0IGEvcGFja2FnZS9rZXJuZWwvbWFjODAyMTEvcGF0Y2hlcy85OTktMDA2Mi1hdGgxMGstYWRk LXdtaS1pZC10by1odGMtY3JlZGl0cy1kZWJ1Z2dpbmcucGF0Y2ggYi9wYWNrYWdlL2tlcm5lbC9t YWM4MDIxMS9wYXRjaGVzLzk5OS0wMDYyLWF0aDEway1hZGQtd21pLWlkLXRvLWh0Yy1jcmVkaXRz LWRlYnVnZ2luZy5wYXRjaA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAuLjU5 MTRjOGQNCi0tLSAvZGV2L251bGwNCisrKyBiL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNo ZXMvOTk5LTAwNjItYXRoMTBrLWFkZC13bWktaWQtdG8taHRjLWNyZWRpdHMtZGVidWdnaW5nLnBh dGNoDQpAQCAtMCwwICsxLDM2IEBADQorRnJvbTogQmVuIEdyZWVhciA8Z3JlZWFyYkBjYW5kZWxh dGVjaC5jb20+DQorRGF0ZTogVGh1LCA4IEphbiAyMDE1IDE2OjAyOjU5IC0wODAwDQorU3ViamVj dDogW1BBVENIXSBhdGgxMGs6IGFkZCB3bWktaWQgdG8gaHRjIGNyZWRpdHMgZGVidWdnaW5nLg0K Kw0KK1RoaXMgaGVscHMgd2hlbiB0cnlpbmcgdG8gZmlndXJlIG91dCBleGFjdGx5IHdoaWNoIGNv bW1hbmRzDQorYXJlIGNvbnN1bWluZyBjcmVkaXRzIHdoZW4gdHJ5aW5nIHRvIGRlYnVnIHdtaSBj cmVkaXQgaGFuZ3MuDQorLS0tDQorIGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvaHRj LmMgfCAxNSArKysrKysrKysrKystLS0NCisgMSBmaWxlIGNoYW5nZWQsIDEyIGluc2VydGlvbnMo KyksIDMgZGVsZXRpb25zKC0pDQorDQorZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNz L2F0aC9hdGgxMGsvaHRjLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2h0Yy5j DQoraW5kZXggODViZmEyYWNiODAxLi5lYzVmN2U1YmIwYTkgMTAwNjQ0DQorLS0tIGEvZHJpdmVy cy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9odGMuYw0KKysrKyBiL2RyaXZlcnMvbmV0L3dpcmVs ZXNzL2F0aC9hdGgxMGsvaHRjLmMNCitAQCAtMTM0LDkgKzEzNCwxOCBAQCBpbnQgYXRoMTBrX2h0 Y19zZW5kKHN0cnVjdCBhdGgxMGtfaHRjICpodGMsDQorIAkJCWdvdG8gZXJyX3B1bGw7DQorIAkJ fQ0KKyAJCWVwLT50eF9jcmVkaXRzIC09IGNyZWRpdHM7DQorLQkJYXRoMTBrX2RiZyhhciwgQVRI MTBLX0RCR19IVEMsDQorLQkJCSAgICJodGMgZXAgJWQgY29uc3VtZWQgJWQgY3JlZGl0cyAodG90 YWwgJWQpXG4iLA0KKy0JCQkgICBlaWQsIGNyZWRpdHMsIGVwLT50eF9jcmVkaXRzKTsNCisrCQlp ZiAoZWlkID09IGFyLT53bWkuZWlkKSB7DQorKwkJCXN0cnVjdCB3bWlfY21kX2hkciogaGRyOw0K KysJCQloZHIgPSAoc3RydWN0IHdtaV9jbWRfaGRyKikoc2tiLT5kYXRhICsgc2l6ZW9mKHN0cnVj dCBhdGgxMGtfaHRjX2hkcikpOw0KKysJCQlhdGgxMGtfZGJnKGFyLCBBVEgxMEtfREJHX0hUQywN CisrCQkJCSAgICJodGMgZXAgJWQgY29uc3VtZWQgJWQgY3JlZGl0cyAodG90YWwgJWQsIHdtaS1j bWQgMHgleClcbiIsDQorKwkJCQkgICBlaWQsIGNyZWRpdHMsIGVwLT50eF9jcmVkaXRzLCBfX2xl MzJfdG9fY3B1KGhkci0+Y21kX2lkKSk7DQorKwkJfQ0KKysJCWVsc2Ugew0KKysJCQlhdGgxMGtf ZGJnKGFyLCBBVEgxMEtfREJHX0hUQywNCisrCQkJCSAgICJodGMgZXAgJWQgY29uc3VtZWQgJWQg Y3JlZGl0cyAodG90YWwgJWQpXG4iLA0KKysJCQkJICAgZWlkLCBjcmVkaXRzLCBlcC0+dHhfY3Jl ZGl0cyk7DQorKwkJfQ0KKyAJCXNwaW5fdW5sb2NrX2JoKCZodGMtPnR4X2xvY2spOw0KKyAJfQ0K KyANCmRpZmYgLS1naXQgYS9wYWNrYWdlL2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDYz LWF0aDEway1tYWtlLWRiZ2xvZy1kZWJ1Zy1tZXNzYWdlcy1iZS13YXJuLWxldmVsLnBhdGNoIGIv cGFja2FnZS9rZXJuZWwvbWFjODAyMTEvcGF0Y2hlcy85OTktMDA2My1hdGgxMGstbWFrZS1kYmds b2ctZGVidWctbWVzc2FnZXMtYmUtd2Fybi1sZXZlbC5wYXRjaA0KbmV3IGZpbGUgbW9kZSAxMDA2 NDQNCmluZGV4IDAwMDAwMDAuLmIwY2YzOTcNCi0tLSAvZGV2L251bGwNCisrKyBiL3BhY2thZ2Uv a2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAwNjMtYXRoMTBrLW1ha2UtZGJnbG9nLWRlYnVn LW1lc3NhZ2VzLWJlLXdhcm4tbGV2ZWwucGF0Y2gNCkBAIC0wLDAgKzEsNDUgQEANCitGcm9tOiBC ZW4gR3JlZWFyIDxncmVlYXJiQGNhbmRlbGF0ZWNoLmNvbT4NCitEYXRlOiBUaHUsIDggSmFuIDIw MTUgMTY6MDY6MzUgLTA4MDANCitTdWJqZWN0OiBbUEFUQ0hdIGF0aDEwazogbWFrZSBkYmdsb2cg ZGVidWcgbWVzc2FnZXMgYmUgJ3dhcm4nIGxldmVsLg0KKw0KK1RoaXMgb25seSBoYXBwZW5zIG9u IGZpcm13YXJlIGNyYXNoLCBhbmQgaXQgYXBwZWFycyB0aGlzDQorbG9naWMgaXMgbm90IGFsd2F5 cyBwZXJmZWN0LCBzbyBtYWtlIHN1cmUgdGhlIGluZm9ybWF0aW9uDQoraXMgcHJpbnRlZCB0byBs b2dzIGF0IGhpZ2hlciBsZXZlbC4NCisNCitTaWduZWQtb2ZmLWJ5OiBCZW4gR3JlZWFyIDxncmVl YXJiQGNhbmRlbGF0ZWNoLmNvbT4NCistLS0NCisgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0 aDEway9wY2kuYyB8IDE0ICsrKysrKy0tLS0tLS0tDQorIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2Vy dGlvbnMoKyksIDggZGVsZXRpb25zKC0pDQorDQorZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dp cmVsZXNzL2F0aC9hdGgxMGsvcGNpLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBr L3BjaS5jDQoraW5kZXggNzg0NjllZGVmYzY4Li4zZjBjOTlkM2Y0OGUgMTAwNjQ0DQorLS0tIGEv ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9wY2kuYw0KKysrKyBiL2RyaXZlcnMvbmV0 L3dpcmVsZXNzL2F0aC9hdGgxMGsvcGNpLmMNCitAQCAtMTMwNyw5ICsxMzA3LDggQEAgc3RhdGlj IHZvaWQgYXRoMTBrX3BjaV9kdW1wX2RiZ2xvZyhzdHJ1Y3QgYXRoMTBrICphcikNCisgCQlyZXR1 cm47DQorIAl9DQorIA0KKy0JYXRoMTBrX2RiZyhhciwgQVRIMTBLX0RCR19QQ0ksDQorLQkJICAg ImRlYnVnIGxvZyBoZWFkZXIsIGRidWY6IDB4JXggIGRyb3BwZWQ6ICVpXG4iLA0KKy0JCSAgIGxl MzJfdG9fY3B1KGRiZ19oZHIuZGJ1ZiksIGxlMzJfdG9fY3B1KGRiZ19oZHIuZHJvcHBlZCkpOw0K KysJYXRoMTBrX3dhcm4oYXIsICJkZWJ1ZyBsb2cgaGVhZGVyLCBkYnVmOiAweCV4ICBkcm9wcGVk OiAlaVxuIiwNCisrCQkgICAgbGUzMl90b19jcHUoZGJnX2hkci5kYnVmKSwgbGUzMl90b19jcHUo ZGJnX2hkci5kcm9wcGVkKSk7DQorIAlkYnVmcCA9IGxlMzJfdG9fY3B1KGRiZ19oZHIuZGJ1Zik7 DQorIA0KKyAJLyogaSBpcyBmb3IgbG9nZ2luZyBwdXJwb3NlcyBhbmQgc2FuaXR5IGNoZWNrIGlu IGNhc2UgZmlybXdhcmUgYnVmZmVycw0KK0BAIC0xMzI5LDExICsxMzI4LDEwIEBAIHN0YXRpYyB2 b2lkIGF0aDEwa19wY2lfZHVtcF9kYmdsb2coc3RydWN0IGF0aDEwayAqYXIpDQorIA0KKyAJCWxl biA9IGxlMzJfdG9fY3B1KGRidWYubGVuZ3RoKTsNCisgDQorLQkJYXRoMTBrX2RiZyhhciwgQVRI MTBLX0RCR19QQ0ksDQorLQkJCSAgICJbJWldIG5leHQ6IDB4JXggYnVmOiAweCV4IHN6OiAlaSBs ZW46ICVpIGNvdW50OiAlaSBmcmVlOiAlaVxuIiwNCistCQkJICAgaSwgbGUzMl90b19jcHUoZGJ1 Zi5uZXh0KSwgbGUzMl90b19jcHUoZGJ1Zi5idWZmZXIpLA0KKy0JCQkgICBsZTMyX3RvX2NwdShk YnVmLmJ1ZnNpemUpLCBsZW4sDQorLQkJCSAgIGxlMzJfdG9fY3B1KGRidWYuY291bnQpLCBsZTMy X3RvX2NwdShkYnVmLmZyZWUpKTsNCisrCQlhdGgxMGtfd2FybihhciwgIlslaV0gbmV4dDogMHgl eCBidWY6IDB4JXggc3o6ICVpIGxlbjogJWkgY291bnQ6ICVpIGZyZWU6ICVpXG4iLA0KKysJCQkg ICAgaSwgbGUzMl90b19jcHUoZGJ1Zi5uZXh0KSwgbGUzMl90b19jcHUoZGJ1Zi5idWZmZXIpLA0K KysJCQkgICAgbGUzMl90b19jcHUoZGJ1Zi5idWZzaXplKSwgbGVuLA0KKysJCQkgICAgbGUzMl90 b19jcHUoZGJ1Zi5jb3VudCksIGxlMzJfdG9fY3B1KGRidWYuZnJlZSkpOw0KKyAJCWlmIChkYnVm LmJ1ZmZlciA9PSAwIHx8IGxlbiA9PSAwKQ0KKyAJCQlnb3RvIG5leHQ7DQorIA0KZGlmZiAtLWdp dCBhL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAwNjQtYXRoMTBrLWFkZC1m aXJtd2FyZS13bWkta2VlcC1hbGl2ZS1tZXNzYWdlLnBhdGNoIGIvcGFja2FnZS9rZXJuZWwvbWFj ODAyMTEvcGF0Y2hlcy85OTktMDA2NC1hdGgxMGstYWRkLWZpcm13YXJlLXdtaS1rZWVwLWFsaXZl LW1lc3NhZ2UucGF0Y2gNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwLi4xNzY1 NGQ5DQotLS0gL2Rldi9udWxsDQorKysgYi9wYWNrYWdlL2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVz Lzk5OS0wMDY0LWF0aDEway1hZGQtZmlybXdhcmUtd21pLWtlZXAtYWxpdmUtbWVzc2FnZS5wYXRj aA0KQEAgLTAsMCArMSwxNjcgQEANCitGcm9tOiBCZW4gR3JlZWFyIDxncmVlYXJiQGNhbmRlbGF0 ZWNoLmNvbT4NCitEYXRlOiBUaHUsIDggSmFuIDIwMTUgMTY6MDg6NDEgLTA4MDANCitTdWJqZWN0 OiBbUEFUQ0hdIGF0aDEwazogYWRkIGZpcm13YXJlIHdtaSBrZWVwLWFsaXZlIG1lc3NhZ2UuDQor DQorT25seSB1c2VmdWwgZm9yIENUIGZpcm13YXJlLg0KKw0KK1RoaXMgc2VuZHMgYSB3bWkgbWVz c2FnZSB0byB0aGUgZmlybXdhcmUgZXZlcnkgMiBzZWNvbmRzIG9yIHNvLg0KK09uY2UgQ1QgZmly bXdhcmUgcmVjZWl2ZXMgb25lIG9mIHRoZXNlIG1lc3NhZ2VzLCBpdCB3aWxsIGFzc2VydA0KK2lm IGl0IGRvZXMgbm90IHJlY2VpdmUgbW9yZSB3aXRoaW4gYSAxMCBzZWNvbmQgd2luZG93Lg0KKw0K K1RoaXMgaGVscHMgZGVidWcgYW5kIHdvcmstYXJvdW5kIHdtaSB0cmFuc3BvcnQgaGFuZ3MuDQor DQorU2lnbmVkLW9mZi1ieTogQmVuIEdyZWVhciA8Z3JlZWFyYkBjYW5kZWxhdGVjaC5jb20+DQor LS0tDQorIGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvY29yZS5oICB8ICAyICsrDQor IGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvZGVidWcuYyB8IDI5ICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrDQorIGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21p LmMgICB8IDMyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQorIGRyaXZlcnMvbmV0 L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLmggICB8ICA3ICsrKysrKysNCisgNCBmaWxlcyBjaGFu Z2VkLCA3MCBpbnNlcnRpb25zKCspDQorDQorZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVs ZXNzL2F0aC9hdGgxMGsvY29yZS5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9j b3JlLmgNCitpbmRleCA4MTdiMzIwMjdiOWMuLmUxZDg1YzczZDcxNyAxMDA2NDQNCistLS0gYS9k cml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2NvcmUuaA0KKysrKyBiL2RyaXZlcnMvbmV0 L3dpcmVsZXNzL2F0aC9hdGgxMGsvY29yZS5oDQorQEAgLTQyMCw2ICs0MjAsNyBAQCBzdHJ1Y3Qg YXRoMTBrX2RlYnVnIHsNCisgDQorIAl1bnNpZ25lZCBsb25nIGh0dF9zdGF0c19tYXNrOw0KKyAJ c3RydWN0IGRlbGF5ZWRfd29yayBodHRfc3RhdHNfZHdvcms7DQorKwlzdHJ1Y3QgZGVsYXllZF93 b3JrIG5vcF9kd29yazsNCisgCXN0cnVjdCBhdGgxMGtfZGZzX3N0YXRzIGRmc19zdGF0czsNCisg CXN0cnVjdCBhdGhfZGZzX3Bvb2xfc3RhdHMgZGZzX3Bvb2xfc3RhdHM7DQorIA0KK0BAIC00Mjks NiArNDMwLDcgQEAgc3RydWN0IGF0aDEwa19kZWJ1ZyB7DQorIAl1MzIgcGt0bG9nX2ZpbHRlcjsN CisgCXUzMiByZWdfYWRkcjsNCisgCXUzMiBuZl9jYWxfcGVyaW9kOw0KKysJdTMyIG5vcF9pZDsN CisgDQorIAl1OCBodHRfbWF4X2Ftc2R1Ow0KKyAJdTggaHR0X21heF9hbXBkdTsNCitkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9kZWJ1Zy5jIGIvZHJpdmVycy9u ZXQvd2lyZWxlc3MvYXRoL2F0aDEway9kZWJ1Zy5jDQoraW5kZXggMzdlMTI4NjM2YTNhLi4yMzA1 NjQ5ZTg3NmEgMTAwNjQ0DQorLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9k ZWJ1Zy5jDQorKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9kZWJ1Zy5jDQor QEAgLTI4LDYgKzI4LDggQEANCisgLyogbXMgKi8NCisgI2RlZmluZSBBVEgxMEtfREVCVUdfSFRU X1NUQVRTX0lOVEVSVkFMIDEwMDANCisgDQorKyNkZWZpbmUgQVRIMTBLX0RFQlVHX05PUF9JTlRF UlZBTCAyMDAwIC8qIG1zICovDQorKw0KKyAjZGVmaW5lIEFUSDEwS19GV19DUkFTSF9EVU1QX1ZF UlNJT04gMQ0KKyANCisgLyoqDQorQEAgLTE2NTEsNiArMTY1MywyNyBAQCBzdGF0aWMgdm9pZCBh dGgxMGtfZGVidWdfaHR0X3N0YXRzX2R3b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykNCisg CW11dGV4X3VubG9jaygmYXItPmNvbmZfbXV0ZXgpOw0KKyB9DQorIA0KKytzdGF0aWMgdm9pZCBh dGgxMGtfZGVidWdfbm9wX2R3b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykNCisrew0KKysJ c3RydWN0IGF0aDEwayAqYXIgPSBjb250YWluZXJfb2Yod29yaywgc3RydWN0IGF0aDEwaywNCisr CQkJCQkgZGVidWcubm9wX2R3b3JrLndvcmspOw0KKysNCisrCW11dGV4X2xvY2soJmFyLT5jb25m X211dGV4KTsNCisrDQorKwlpZiAoYXItPnN0YXRlID09IEFUSDEwS19TVEFURV9PTikgew0KKysJ CWludCByZXQgPSBhdGgxMGtfd21pX3JlcXVlc3Rfbm9wKGFyKTsNCisrCQlpZiAocmV0KSB7DQor KwkJCWF0aDEwa193YXJuKGFyLCAiZmFpbGVkIHRvIHNlbmQgd21pIG5vcDogJWRcbiIsIHJldCk7 DQorKwkJfQ0KKysJfQ0KKysNCisrCS8qIFJlLWFybSBwZXJpb2RpYyB3b3JrLiAqLw0KKysJcXVl dWVfZGVsYXllZF93b3JrKGFyLT53b3JrcXVldWUsICZhci0+ZGVidWcubm9wX2R3b3JrLA0KKysJ CQkgICBtc2Vjc190b19qaWZmaWVzKEFUSDEwS19ERUJVR19OT1BfSU5URVJWQUwpKTsNCisrDQor KwltdXRleF91bmxvY2soJmFyLT5jb25mX211dGV4KTsNCisrfQ0KKysNCisgc3RhdGljIHNzaXpl X3QgYXRoMTBrX3JlYWRfaHR0X3N0YXRzX21hc2soc3RydWN0IGZpbGUgKmZpbGUsDQorIAkJCQkJ ICBjaGFyIF9fdXNlciAqdXNlcl9idWYsDQorIAkJCQkJICBzaXplX3QgY291bnQsIGxvZmZfdCAq cHBvcykNCitAQCAtMjQ4NCw2ICsyNTA3LDExIEBAIGludCBhdGgxMGtfZGVidWdfcmVnaXN0ZXIo c3RydWN0IGF0aDEwayAqYXIpDQorIAkJcmV0dXJuIC1FTk9NRU07DQorIAl9DQorIA0KKysJSU5J VF9ERUxBWUVEX1dPUksoJmFyLT5kZWJ1Zy5ub3BfZHdvcmssIGF0aDEwa19kZWJ1Z19ub3BfZHdv cmspOw0KKysNCisrCXF1ZXVlX2RlbGF5ZWRfd29yayhhci0+d29ya3F1ZXVlLCAmYXItPmRlYnVn Lm5vcF9kd29yaywNCisrCQkJICAgbXNlY3NfdG9famlmZmllcyhBVEgxMEtfREVCVUdfTk9QX0lO VEVSVkFMKSk7DQorKw0KKyAJSU5JVF9ERUxBWUVEX1dPUksoJmFyLT5kZWJ1Zy5odHRfc3RhdHNf ZHdvcmssDQorIAkJCSAgYXRoMTBrX2RlYnVnX2h0dF9zdGF0c19kd29yayk7DQorIA0KK0BAIC0y NTYzLDYgKzI1OTEsNyBAQCBpbnQgYXRoMTBrX2RlYnVnX3JlZ2lzdGVyKHN0cnVjdCBhdGgxMGsg KmFyKQ0KKyANCisgdm9pZCBhdGgxMGtfZGVidWdfdW5yZWdpc3RlcihzdHJ1Y3QgYXRoMTBrICph cikNCisgew0KKysJY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZhci0+ZGVidWcubm9wX2R3b3Jr KTsNCisgCWNhbmNlbF9kZWxheWVkX3dvcmtfc3luYygmYXItPmRlYnVnLmh0dF9zdGF0c19kd29y ayk7DQorIH0NCisgDQorZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgx MGsvd21pLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS5jDQoraW5kZXgg ZjczYmZjMzUyY2Q4Li41ZWIzZDc4NWVjOGEgMTAwNjQ0DQorLS0tIGEvZHJpdmVycy9uZXQvd2ly ZWxlc3MvYXRoL2F0aDEway93bWkuYw0KKysrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9h dGgxMGsvd21pLmMNCitAQCAtNDQyMyw2ICs0NDIzLDM4IEBAIGF0aDEwa193bWlfb3BfZ2VuX3Zk ZXZfc3RhcnQoc3RydWN0IGF0aDEwayAqYXIsDQorIAlyZXR1cm4gc2tiOw0KKyB9DQorIA0KKysj aWZkZWYgQ1BUQ0ZHX0FUSDEwS19ERUJVRw0KKysvKiBDVCBmaXJtd2FyZSBvbmx5Og0KKysgKiAo cmUpIHN0YXJ0IHdtaSBrZWVwLWFsaXZlIHRpbWVyIGluIGZpcm13YXJlLiAgT25jZSB3ZSBzdGFy dA0KKysgKiBzZW5kaW5nIHRoZXNlLCBmaXJtd2FyZSB3aWxsIGFzc2VydCBpZiBpdCBkb2VzIG5v dCByZWNlaXZlIG9uZQ0KKysgKiBhZnRlciBhYm91dCAxMCBzZWNvbmRzLg0KKysgKi8NCisrDQor K3N0cnVjdCB3bWlfcmVxdWVzdF9ub3BfY21kIHsNCisrCXUzMiBub3BfaWQ7IC8qIGZvciBkZWJ1 Z2dpbmcgcHVycG9zZXMgKi8NCisrfTsNCisrDQorK2ludCBhdGgxMGtfd21pX3JlcXVlc3Rfbm9w KHN0cnVjdCBhdGgxMGsgKmFyKQ0KKyt7DQorKwlzdHJ1Y3Qgd21pX3JlcXVlc3Rfbm9wX2NtZCAq Y21kOw0KKysJc3RydWN0IHNrX2J1ZmYgKnNrYjsNCisrDQorKwlpZiAoISB0ZXN0X2JpdChBVEgx MEtfRldfRkVBVFVSRV9XTUlfMTBYX0NULCBhci0+ZndfZmVhdHVyZXMpKQ0KKysJCXJldHVybiAw Ow0KKysNCisrCXNrYiA9IGF0aDEwa193bWlfYWxsb2Nfc2tiKGFyLCBzaXplb2YoKmNtZCkpOw0K KysJaWYgKCFza2IpDQorKwkJcmV0dXJuIC1FTk9NRU07DQorKw0KKysJY21kID0gKHN0cnVjdCB3 bWlfcmVxdWVzdF9ub3BfY21kICopc2tiLT5kYXRhOw0KKysJY21kLT5ub3BfaWQgPSBfX2NwdV90 b19sZTMyKGFyLT5kZWJ1Zy5ub3BfaWQrKyk7DQorKw0KKysJYXRoMTBrX2RiZyhhciwgQVRIMTBL X0RCR19XTUksICJ3bWkgcmVxdWVzdCBub3AgKGlkICVkKVxuIiwNCisrCQkgICBhci0+ZGVidWcu bm9wX2lkIC0gMSk7DQorKwlyZXR1cm4gYXRoMTBrX3dtaV9jbWRfc2VuZChhciwgc2tiLCBXTUlf Tk9QKTsNCisrfQ0KKysjZW5kaWYNCisrDQorIHN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqDQorIGF0 aDEwa193bWlfb3BfZ2VuX3ZkZXZfc3RvcChzdHJ1Y3QgYXRoMTBrICphciwgdTMyIHZkZXZfaWQp DQorIHsNCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWku aCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLmgNCitpbmRleCA5NzMzMTFi MjdiNGIuLmIxYzk4NzAzNWJlOSAxMDA2NDQNCistLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9h dGgvYXRoMTBrL3dtaS5oDQorKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93 bWkuaA0KK0BAIC05OTQsNiArOTk0LDggQEAgZW51bSB3bWlfMTB4X2NtZF9pZCB7DQorIAlXTUlf MTBYX0dQSU9fQ1BUQ0ZHX0NNRElELA0KKyAJV01JXzEwWF9HUElPX09VVFBVVF9DTURJRCwNCisg DQorKwlXTUlfTk9QID0gV01JXzEwWF9FTkRfQ01ESUQgLSAxMDAsIC8qIENUIG9ubHk6ICB3bWkg dHJhbnNwb3J0IGtlZXAtYWxpdmUsIGJhc2ljYWxseSAqLw0KKysNCisgCVdNSV8xMFhfUERFVl9V VEZfQ01ESUQgPSBXTUlfMTBYX0VORF9DTURJRCAtIDEsDQorIH07DQorIA0KK0BAIC01MjQ0LDQg KzUyNDYsOSBAQCB2b2lkIGF0aDEwa193bWlfZXZlbnRfdmRldl9yZXN1bWVfcmVxKHN0cnVjdCBh dGgxMGsgKmFyLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKTsNCisgdm9pZCBhdGgxMGtfd21pX2V2ZW50 X3NlcnZpY2VfcmVhZHkoc3RydWN0IGF0aDEwayAqYXIsIHN0cnVjdCBza19idWZmICpza2IpOw0K KyBpbnQgYXRoMTBrX3dtaV9ldmVudF9yZWFkeShzdHJ1Y3QgYXRoMTBrICphciwgc3RydWN0IHNr X2J1ZmYgKnNrYik7DQorIA0KKysjaWZkZWYgQ1BUQ0ZHX0FUSDEwS19ERUJVRw0KKysvKiBDVCBG aXJtd2FyZSBvbmx5ICovDQorK2ludCBhdGgxMGtfd21pX3JlcXVlc3Rfbm9wKHN0cnVjdCBhdGgx MGsgKmFyKTsNCisrI2VuZGlmDQorKw0KKyAjZW5kaWYgLyogX1dNSV9IXyAqLw0KZGlmZiAtLWdp dCBhL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAwNjUtYXRoMTBrLWFkZC1t b2R1bGUtcGFyYW0tdG8tY29uZmlndXJlLW51bWJlci1vZi1wZWVycy5wYXRjaCBiL3BhY2thZ2Uv a2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAwNjUtYXRoMTBrLWFkZC1tb2R1bGUtcGFyYW0t dG8tY29uZmlndXJlLW51bWJlci1vZi1wZWVycy5wYXRjaA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQN CmluZGV4IDAwMDAwMDAuLjQ4YjUzZmINCi0tLSAvZGV2L251bGwNCisrKyBiL3BhY2thZ2Uva2Vy bmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAwNjUtYXRoMTBrLWFkZC1tb2R1bGUtcGFyYW0tdG8t Y29uZmlndXJlLW51bWJlci1vZi1wZWVycy5wYXRjaA0KQEAgLTAsMCArMSw3MiBAQA0KK0Zyb206 IEJlbiBHcmVlYXIgPGdyZWVhcmJAY2FuZGVsYXRlY2guY29tPg0KK0RhdGU6IFR1ZSwgMyBGZWIg MjAxNSAwODozMjowMSAtMDgwMA0KK1N1YmplY3Q6IFtQQVRDSF0gYXRoMTBrOiBhZGQgbW9kdWxl LXBhcmFtIHRvIGNvbmZpZ3VyZSBudW1iZXIgb2YgcGVlcnMuDQorDQorQWxsb3cgdXNlcnMgb2Yg Q1QgZmlybXdhcmUgdG8gYWRqdXN0IHBlZXIgY291bnQgdG8NCit0byBkZXNpcmVkIHZhbHVlIGlu c3RlYWQgb2YgY2FsY3VsYXRpbmcgYmFzZWQgb24gbnVtYmVyDQorb2YgdmRldnMsIGV0Yy4NCisN CitUb3RhbCBzdXBwb3J0ZWQgZGVwZW5kcyBvbiBudW1iZXIgb2YgdmRldnM6ICBmZXdlciB2ZGV2 cw0KK2dpdmVzIG1vcmUgbWVtb3J5IGZvciBwZWVycy4NCisNCitTaWduZWQtb2ZmLWJ5OiBCZW4g R3JlZWFyIDxncmVlYXJiQGNhbmRlbGF0ZWNoLmNvbT4NCistLS0NCisgZHJpdmVycy9uZXQvd2ly ZWxlc3MvYXRoL2F0aDEway9jb3JlLmMgfCAyICstDQorIGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0 aC9hdGgxMGsvaHcuaCAgIHwgMyArLS0NCisgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEw ay9tYWMuYyAgfCAzICsrKw0KKyBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL21hYy5o ICB8IDEgKw0KKyA0IGZpbGVzIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMo LSkNCisNCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9jb3Jl LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2NvcmUuYw0KK2luZGV4IDA1NjVi MWQ4MmQ1My4uMTc1NWIyMjI4MThjIDEwMDY0NA0KKy0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNz L2F0aC9hdGgxMGsvY29yZS5jDQorKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEw ay9jb3JlLmMNCitAQCAtMTE0MCw3ICsxMTQwLDcgQEAgc3RhdGljIGludCBhdGgxMGtfY29yZV9p bml0X2Zpcm13YXJlX2ZlYXR1cmVzKHN0cnVjdCBhdGgxMGsgKmFyKQ0KKyAJCWJyZWFrOw0KKyAJ Y2FzZSBBVEgxMEtfRldfV01JX09QX1ZFUlNJT05fMTBfMToNCisgCQlpZiAodGVzdF9iaXQoQVRI MTBLX0ZXX0ZFQVRVUkVfV01JXzEwWF9DVCwgYXItPmZ3X2ZlYXR1cmVzKSkgew0KKy0JCQlhci0+ bWF4X251bV9wZWVycyA9IFRBUkdFVF8xMFhfTlVNX1BFRVJTX0NUOw0KKysJCQlhci0+bWF4X251 bV9wZWVycyA9IGF0aDEwa19tb2RwYXJhbV90YXJnZXRfbnVtX3BlZXJzX2N0Ow0KKyAJCQlhci0+ bWF4X251bV9zdGF0aW9ucyA9IFRBUkdFVF8xMFhfTlVNX1NUQVRJT05TOw0KKyAJCQlhci0+bWF4 X251bV92ZGV2cyA9IGF0aDEwa19tb2RwYXJhbV90YXJnZXRfbnVtX3ZkZXZzX2N0Ow0KKyAJCQlh ci0+aHR0Lm1heF9udW1fcGVuZGluZ190eCA9IFRBUkdFVF8xMFhfTlVNX01TRFVfREVTQ19DVDsN CitkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9ody5oIGIvZHJp dmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9ody5oDQoraW5kZXggMDA3N2Y4NzA2MGM1Li4y YzZlMDEyN2ZmZDMgMTAwNjQ0DQorLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEw ay9ody5oDQorKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9ody5oDQorQEAg LTI4MSw4ICsyODEsNyBAQCBlbnVtIGF0aDEwa19od19yYXRlX2NjayB7DQorIC8qIE92ZXItcmlk ZXMgZm9yIENhbmRlbGEgVGVjaG5vbG9naWVzIGZpcm13YXJlICovDQorICNkZWZpbmUgREVGX1RB UkdFVF8xMFhfTlVNX1ZERVZTX0NUCQkzNiAvKiBuZXdlciBDVCBmaXJtd2FyZSBzdXBwb3J0IG1v cmUsDQorIAkJCQkJCSAgICAqIG92ZXJyaWRlIHcvbW9kdWxlIHBhcm0gKi8NCistI2RlZmluZSBU QVJHRVRfMTBYX05VTV9QRUVSU19DVAkJCSgyICogYXRoMTBrX21vZHBhcmFtX3RhcmdldF9udW1f dmRldnNfY3QpDQorLSNkZWZpbmUgVEFSR0VUXzEwWF9BU1RfU0tJRF9MSU1JVF9DVAkJKFRBUkdF VF8xMFhfTlVNX1BFRVJTX0NUICogVEFSR0VUXzEwWF9OVU1fUEVFUl9BU1QpDQorKyNkZWZpbmUg VEFSR0VUXzEwWF9BU1RfU0tJRF9MSU1JVF9DVAkJKGF0aDEwa19tb2RwYXJhbV90YXJnZXRfbnVt X3BlZXJzX2N0ICogVEFSR0VUXzEwWF9OVU1fUEVFUl9BU1QpDQorICNkZWZpbmUgVEFSR0VUXzEw WF9OVU1fUEVFUl9LRVlTX0NUICAgICAgICAgICAgIChXTUlfTUFYX0tFWV9JTkRFWCArIDEpIC8q IDQgKi8NCisgLyogVGhlc2UgZWF0IGEgZmFpciBjaHVuayBvZiBtZW1vcnkgb24gdGhlIGZpcm13 YXJlLCBzbyBkZWNyZWFzZSBpdCBhIGJpdC4gKi8NCisgI2RlZmluZSBUQVJHRVRfMTBYX05VTV9N U0RVX0RFU0NfQ1QJCTgwOCAvKiBtdXN0IGJlIG11bHRpcGxlIG9mIDggKi8NCitkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMuYyBiL2RyaXZlcnMvbmV0L3dp cmVsZXNzL2F0aC9hdGgxMGsvbWFjLmMNCitpbmRleCA2OWEwNDQ0ODhkYTIuLjMxNzBjMWFkZWNk MCAxMDA2NDQNCistLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL21hYy5jDQor KysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMuYw0KK0BAIC0xNjQsNiAr MTY0LDkgQEAgTU9EVUxFX1BBUk1fREVTQyhub2h3Y3J5cHQsICJEaXNhYmxlIGhhcmR3YXJlIHJ4 IGRlY3J5cHQgZmVhdHVyZSIpOw0KKyBpbnQgYXRoMTBrX21vZHBhcmFtX3RhcmdldF9udW1fdmRl dnNfY3QgPSBERUZfVEFSR0VUXzEwWF9OVU1fVkRFVlNfQ1Q7DQorIG1vZHVsZV9wYXJhbV9uYW1l ZChudW1fdmRldnNfY3QsIGF0aDEwa19tb2RwYXJhbV90YXJnZXRfbnVtX3ZkZXZzX2N0LCBpbnQs IDA0NDQpOw0KKyBNT0RVTEVfUEFSTV9ERVNDKG51bV92ZGV2c19jdCwgIk1heGltdW0gdmRldnMg dG8gcmVxdWVzdCBmcm9tIGZpcm13YXJlIik7DQorK2ludCBhdGgxMGtfbW9kcGFyYW1fdGFyZ2V0 X251bV9wZWVyc19jdCA9IDEyODsNCisrbW9kdWxlX3BhcmFtX25hbWVkKG51bV9wZWVyc19jdCwg YXRoMTBrX21vZHBhcmFtX3RhcmdldF9udW1fcGVlcnNfY3QsIGludCwgMDQ0NCk7DQorK01PRFVM RV9QQVJNX0RFU0MobnVtX3BlZXJzX2N0LCAiTWF4aW11bSBwZWVycyB0byByZXF1ZXN0IGZyb20g ZmlybXdhcmUiKTsNCisgDQorIC8qKioqKioqKioqLw0KKyAvKiBDcnlwdG8gKi8NCitkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMuaCBiL2RyaXZlcnMvbmV0 L3dpcmVsZXNzL2F0aC9hdGgxMGsvbWFjLmgNCitpbmRleCAzNTgwNDE3MzQyYjMuLjZkYjQwYmQ3 ZDA5OCAxMDA2NDQNCistLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL21hYy5o DQorKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMuaA0KK0BAIC0yOCw2 ICsyOCw3IEBAIGVudW0gd21pX3Rsdl90eF9wYXVzZV9hY3Rpb247DQorIA0KKyBleHRlcm4gaW50 IGF0aDEwa19tb2RwYXJhbV9ub2h3Y3J5cHQ7DQorIGV4dGVybiBpbnQgYXRoMTBrX21vZHBhcmFt X3RhcmdldF9udW1fdmRldnNfY3Q7DQorK2V4dGVybiBpbnQgYXRoMTBrX21vZHBhcmFtX3Rhcmdl dF9udW1fcGVlcnNfY3Q7DQorIA0KKyBzdHJ1Y3QgYXRoMTBrX2dlbmVyaWNfaXRlciB7DQorIAlz dHJ1Y3QgYXRoMTBrICphcjsNCmRpZmYgLS1naXQgYS9wYWNrYWdlL2tlcm5lbC9tYWM4MDIxMS9w YXRjaGVzLzk5OS0wMDY2LWF0aDEway1yYXRlLWxpbWl0LXBhY2tldC10eC1lcnJvcnMucGF0Y2gg Yi9wYWNrYWdlL2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDY2LWF0aDEway1yYXRlLWxp bWl0LXBhY2tldC10eC1lcnJvcnMucGF0Y2gNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAw MDAwMDAwLi5mMGQxOGVlDQotLS0gL2Rldi9udWxsDQorKysgYi9wYWNrYWdlL2tlcm5lbC9tYWM4 MDIxMS9wYXRjaGVzLzk5OS0wMDY2LWF0aDEway1yYXRlLWxpbWl0LXBhY2tldC10eC1lcnJvcnMu cGF0Y2gNCkBAIC0wLDAgKzEsNDQgQEANCitGcm9tOiBCZW4gR3JlZWFyIDxncmVlYXJiQGNhbmRl bGF0ZWNoLmNvbT4NCitEYXRlOiBUdWUsIDMgRmViIDIwMTUgMTU6MTA6MTAgLTA4MDANCitTdWJq ZWN0OiBbUEFUQ0hdIGF0aDEwazogcmF0ZS1saW1pdCBwYWNrZXQgdHggZXJyb3JzDQorDQorV2hl biBmaXJtd2FyZSBjcmFzaGVzLCBzdGFjayBjYW4gY29udGludWUgdG8gc2VuZCBwYWNrZXRzDQor Zm9yIGEgYml0LCBhbmQgZXhpc3RpbmcgY29kZSB3YXMgc3BhbW1pbmcgbG9ncy4NCisNCitTbywg cmF0ZS1saW1pdCB0aGUgZXJyb3IgbWVzc2FnZSBmb3IgdHggZmFpbHVyZXMuDQorDQorU2lnbmVk LW9mZi1ieTogQmVuIEdyZWVhciA8Z3JlZWFyYkBjYW5kZWxhdGVjaC5jb20+DQorLS0tDQorIGRy aXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvbWFjLmMgICAgIHwgNSArKystLQ0KKyBkcml2 ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS10bHYuYyB8IDIgKy0NCisgMiBmaWxlcyBj aGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pDQorDQorZGlmZiAtLWdpdCBh L2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvbWFjLmMgYi9kcml2ZXJzL25ldC93aXJl bGVzcy9hdGgvYXRoMTBrL21hYy5jDQoraW5kZXggMzE3MGMxYWRlY2QwLi4zN2MxM2I2MTFkNjAg MTAwNjQ0DQorLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMuYw0KKysr KyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvbWFjLmMNCitAQCAtMzM0OCw4ICsz MzQ4LDkgQEAgc3RhdGljIHZvaWQgYXRoMTBrX21hY190eChzdHJ1Y3QgYXRoMTBrICphciwgc3Ry dWN0IHNrX2J1ZmYgKnNrYikNCisgCX0NCisgDQorIAlpZiAocmV0KSB7DQorLQkJYXRoMTBrX3dh cm4oYXIsICJmYWlsZWQgdG8gdHJhbnNtaXQgcGFja2V0LCBkcm9wcGluZzogJWRcbiIsDQorLQkJ CSAgICByZXQpOw0KKysJCWlmIChuZXRfcmF0ZWxpbWl0KCkpDQorKwkJCWF0aDEwa193YXJuKGFy LCAiZmFpbGVkIHRvIHRyYW5zbWl0IHBhY2tldCwgZHJvcHBpbmc6ICVkXG4iLA0KKysJCQkJICAg IHJldCk7DQorIAkJaWVlZTgwMjExX2ZyZWVfdHhza2IoYXItPmh3LCBza2IpOw0KKyAJfQ0KKyB9 DQorZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLXRsdi5j IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWktdGx2LmMNCitpbmRleCBhMmQ1 MTU3MjAxYTguLmU5OTU3MWIxOTQ1ZiAxMDA2NDQNCistLS0gYS9kcml2ZXJzL25ldC93aXJlbGVz cy9hdGgvYXRoMTBrL3dtaS10bHYuYw0KKysrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9h dGgxMGsvd21pLXRsdi5jDQorQEAgLTI3ODAsNyArMjc4MCw3IEBAIGF0aDEwa193bWlfdGx2X29w X2dlbl90ZGxzX3BlZXJfdXBkYXRlKHN0cnVjdCBhdGgxMGsgKmFyLA0KKyAJCXRsdi0+dGFnID0g X19jcHVfdG9fbGUxNihXTUlfVExWX1RBR19TVFJVQ1RfQ0hBTk5FTCk7DQorIAkJdGx2LT5sZW4g PSBfX2NwdV90b19sZTE2KHNpemVvZigqY2hhbikpOw0KKyAJCWNoYW4gPSAodm9pZCAqKXRsdi0+ dmFsdWU7DQorLQkJYXRoMTBrX3dtaV9wdXRfd21pX2NoYW5uZWwoY2hhbiwgJmNoYW5fYXJnW2ld KTsNCisrCQlhdGgxMGtfd21pX3B1dF93bWlfY2hhbm5lbChhciwgY2hhbiwgJmNoYW5fYXJnW2ld LCBhcmctPnZkZXZfaWQpOw0KKyANCisgCQlwdHIgKz0gc2l6ZW9mKCp0bHYpOw0KKyAJCXB0ciAr PSBzaXplb2YoKmNoYW4pOw0KZGlmZiAtLWdpdCBhL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3Bh dGNoZXMvOTk5LTAwNjctYXRoMTBrLXJlYWQtZmlybXdhcmUtY3Jhc2gtb3Zlci1pb3JlYWQzMi1p Zi1DRS1mYWlscy5wYXRjaCBiL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAw NjctYXRoMTBrLXJlYWQtZmlybXdhcmUtY3Jhc2gtb3Zlci1pb3JlYWQzMi1pZi1DRS1mYWlscy5w YXRjaA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAuLmQ1MjdhZTANCi0tLSAv ZGV2L251bGwNCisrKyBiL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAwNjct YXRoMTBrLXJlYWQtZmlybXdhcmUtY3Jhc2gtb3Zlci1pb3JlYWQzMi1pZi1DRS1mYWlscy5wYXRj aA0KQEAgLTAsMCArMSwxMTIgQEANCitGcm9tOiBCZW4gR3JlZWFyIDxncmVlYXJiQGNhbmRlbGF0 ZWNoLmNvbT4NCitEYXRlOiBUdWUsIDMgRmViIDIwMTUgMjA6MTQ6NTkgLTA4MDANCitTdWJqZWN0 OiBbUEFUQ0hdIGF0aDEwazogcmVhZCBmaXJtd2FyZSBjcmFzaCBvdmVyIGlvcmVhZDMyIGlmIENF IGZhaWxzLg0KKw0KK1RoaXMgbWlnaHQgd29yayBhcm91bmQgcHJvYmxlbSB3aGVyZSBzb21ldGlt ZXMgaG9zdCBjYW5ub3QNCithY2Nlc3MgZmlybXdhcmUgY3Jhc2ggb3ZlciBub3JtYWwgQ0UgdHJh bnNwb3J0Lg0KKw0KK1JlcXVpcmVzIENUIGZpcm13YXJlIHdpdGggbWF0Y2hpbmcgbG9naWMgaW4g aXQncyBhc3NlcnQNCitoYW5kbGVyICgtMTMgYW5kIGhpZ2hlciByZWxlYXNlcykuDQorDQorU2ln bmVkLW9mZi1ieTogQmVuIEdyZWVhciA8Z3JlZWFyYkBjYW5kZWxhdGVjaC5jb20+DQorLS0tDQor IGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvaHcuaCAgfCAgNSArKysrDQorIGRyaXZl cnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvcGNpLmMgfCA1NSArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrLQ0KKyAyIGZpbGVzIGNoYW5nZWQsIDU5IGluc2VydGlvbnMoKyksIDEg ZGVsZXRpb24oLSkNCisNCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0 aDEway9ody5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9ody5oDQoraW5kZXgg MmM2ZTAxMjdmZmQzLi4zMTVlZWQ0NWRkMTEgMTAwNjQ0DQorLS0tIGEvZHJpdmVycy9uZXQvd2ly ZWxlc3MvYXRoL2F0aDEway9ody5oDQorKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0 aDEway9ody5oDQorQEAgLTQ3Miw2ICs0NzIsNyBAQCBlbnVtIGF0aDEwa19od19yYXRlX2NjayB7 DQorICNkZWZpbmUgUENJRV9JTlRSX0VOQUJMRV9BRERSRVNTCQkweDAwMDgNCisgI2RlZmluZSBQ Q0lFX0lOVFJfQ0FVU0VfQUREUkVTUwkJCTB4MDAwYw0KKyAjZGVmaW5lIFBDSUVfSU5UUl9DTFJf QUREUkVTUwkJCTB4MDAxNA0KKysjZGVmaW5lIFNDUkFUQ0hfMl9BRERSRVNTICAgICAgICAgICAg ICAgICAgICAgICAweDAwMmMNCisgI2RlZmluZSBTQ1JBVENIXzNfQUREUkVTUwkJCWFyLT5yZWdz LT5zY3JhdGNoXzNfYWRkcmVzcw0KKyAjZGVmaW5lIENQVV9JTlRSX0FERFJFU1MJCQkweDAwMTAN CisgDQorQEAgLTQ4Myw2ICs0ODQsMTAgQEAgZW51bSBhdGgxMGtfaHdfcmF0ZV9jY2sgew0KKyAj ZGVmaW5lIEZXX0lORF9FVkVOVF9QRU5ESU5HCQkJMQ0KKyAjZGVmaW5lIEZXX0lORF9JTklUSUFM SVpFRAkJCTINCisgDQorKy8qIENUIGZpcm13YXJlIG9ubHkgKi8NCisrI2RlZmluZSBGV19JTkRf U0NSQVRDSDJfV1IgICAgICAoMTw8MTQpIC8qIHNjcmF0Y2gyIGhhcyBkYXRhIHdyaXR0ZW4gdG8g aXQgKi8NCisrI2RlZmluZSBGV19JTkRfU0NSQVRDSDJfUkQgICAgICAoMTw8MTUpIC8qIHNjcmF0 Y2gyIGhhcyBiZWVuIHJlYWQgKGJ5IGhvc3QpICovDQorKw0KKyAvKiBIT1NUX1JFRyBpbnRlcnJ1 cHQgZnJvbSBmaXJtd2FyZSAqLw0KKyAjZGVmaW5lIFBDSUVfSU5UUl9GSVJNV0FSRV9NQVNLCQkJ MHgwMDAwMDQwMA0KKyAjZGVmaW5lIFBDSUVfSU5UUl9DRV9NQVNLX0FMTAkJCTB4MDAwN2Y4MDAN CitkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9wY2kuYyBiL2Ry aXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvcGNpLmMNCitpbmRleCAzZjBjOTlkM2Y0OGUu LjA1MzE2MmQ3NTczMyAxMDA2NDQNCistLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRo MTBrL3BjaS5jDQorKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9wY2kuYw0K K0BAIC0xMjQ5LDYgKzEyNDksNTMgQEAgc3RhdGljIHZvaWQgYXRoMTBrX3BjaV9kdW1wX2V4Y19z dGFjayhzdHJ1Y3QgYXRoMTBrICphciwNCisgCQkJCSAgICAgaGlfZXJyX3N0YWNrKTsNCisgfQ0K KyANCisrLyogT25seSBDVCBmaXJtd2FyZSBjYW4gZG8gdGhpcy4gIEF0dGVtcHQgdG8gcmVhZCBj cmFzaCBkdW1wIG92ZXIgcGNpDQorKyAqIHJlZ2lzdGVycyBzaW5jZSBub3JtYWwgQ0UgdHJhbnNw b3J0IGlzIG5vdCB3b3JraW5nLg0KKysgKi8NCisrc3RhdGljIGludCBhdGgxMGtfY3RfZndfY3Jh c2hfcmVnc19oYXJkZXIoc3RydWN0IGF0aDEwayAqYXIsDQorKwkJCQkJICBfX2xlMzIgKnJlZ19k dW1wX3ZhbHVlcywNCisrCQkJCQkgIGludCBsZW4pDQorK3sNCisrCXUzMiB2YWw7DQorKwlpbnQg aTsNCisrCWludCBxOw0KKysjZGVmaW5lIE1BWF9TUElOX1RSSUVTIDEwMDAwMDANCisrDQorKwlp ZiAoIXRlc3RfYml0KEFUSDEwS19GV19GRUFUVVJFX1dNSV8xMFhfQ1QsIGFyLT5md19mZWF0dXJl cykpIHsNCisrCQlyZXR1cm4gLUVJTlZBTDsNCisrCX0NCisrDQorKwlmb3IgKGkgPSAwOyBpPE1B WF9TUElOX1RSSUVTOyBpKyspIHsNCisrCQl2YWwgPSBhdGgxMGtfcGNpX3JlYWQzMihhciwgRldf SU5ESUNBVE9SX0FERFJFU1MpOw0KKysJCWlmICh2YWwgJiBGV19JTkRfU0NSQVRDSDJfV1IpDQor KwkJCWdvdG8gcGluZ3Bvbmc7DQorKwl9DQorKwlyZXR1cm4gLUVCVVNZOw0KKysNCisrcGluZ3Bv bmc6DQorKwlhdGgxMGtfd2FybihhciwgIlRyeWluZyB0byByZWFkIGNyYXNoIGR1bXAgb3ZlciBw aW5ncG9uZyByZWdpc3RlcnMuXG4iKTsNCisrCS8qIEZpcm13YXJlIGlzIHRyeWluZyB0byBzZW5k IHVzIGluZm8gaXQgc2VlbXMuICovDQorKwlmb3IgKHEgPSAwOyBxPGxlbjsgcSsrKSB7DQorKwkJ cmVnX2R1bXBfdmFsdWVzW3FdID0gYXRoMTBrX3BjaV9yZWFkMzIoYXIsIFNPQ19DT1JFX0JBU0Vf QUREUkVTUyArIFNDUkFUQ0hfMl9BRERSRVNTKTsNCisrCQl2YWwgPSBhdGgxMGtfcGNpX3JlYWQz MihhciwgRldfSU5ESUNBVE9SX0FERFJFU1MpOw0KKysJCXZhbCB8PSBGV19JTkRfU0NSQVRDSDJf UkQ7IC8qIHRlbGwgZmlybXdhcmUgd2UgcmVhZCBpdCAqLw0KKysJCXZhbCAmPSB+RldfSU5EX1ND UkFUQ0gyX1dSOyAvKiBjbGVhciBmaXJtd2FyZSdzIHdyaXRlIGZsYWcgKi8NCisrCQlhdGgxMGtf cGNpX3dyaXRlMzIoYXIsIEZXX0lORElDQVRPUl9BRERSRVNTLCB2YWwpOw0KKysNCisrCQlmb3Ig KGkgPSAwOyBpPE1BWF9TUElOX1RSSUVTOyBpKyspIHsNCisrCQkJdmFsID0gYXRoMTBrX3BjaV9y ZWFkMzIoYXIsIEZXX0lORElDQVRPUl9BRERSRVNTKTsNCisrCQkJaWYgKHZhbCAmIEZXX0lORF9T Q1JBVENIMl9XUikNCisrCQkJCWJyZWFrOw0KKysJCX0NCisrCQlpZiAoISh2YWwgJiBGV19JTkRf U0NSQVRDSDJfV1IpKSB7DQorKwkJCWF0aDEwa19lcnIoYXIsICJmYWlsZWQgdG8gcmVhZCByZWcg JWkgdmlhIHBpbmdwb25nIG1ldGhvZC5cbiIsDQorKwkJCQkgICBxKTsNCisrCQkJcmV0dXJuIDA7 IC8vIHBhcnRpYWwgcmVhZCBpcyBiZXR0ZXIgdGhhbiBub3RoaW5nIEkgZ3Vlc3MNCisrCQl9DQor Kwl9DQorKwlyZXR1cm4gMDsNCisrfQ0KKysNCisgc3RhdGljIHZvaWQgYXRoMTBrX3BjaV9kdW1w X3JlZ2lzdGVycyhzdHJ1Y3QgYXRoMTBrICphciwNCisgCQkJCSAgICAgIHN0cnVjdCBhdGgxMGtf ZndfY3Jhc2hfZGF0YSAqY3Jhc2hfZGF0YSkNCisgew0KK0BAIC0xMjYyLDcgKzEzMDksMTMgQEAg c3RhdGljIHZvaWQgYXRoMTBrX3BjaV9kdW1wX3JlZ2lzdGVycyhzdHJ1Y3QgYXRoMTBrICphciwN CisgCQkJCSAgICAgIFJFR19EVU1QX0NPVU5UX1FDQTk4OFggKiBzaXplb2YoX19sZTMyKSk7DQor IAlpZiAocmV0KSB7DQorIAkJYXRoMTBrX2VycihhciwgImZhaWxlZCB0byByZWFkIGZpcm13YXJl IGR1bXAgYXJlYTogJWRcbiIsIHJldCk7DQorLQkJcmV0dXJuOw0KKysNCisrCQkvKiBUcnkgdG8g cmVhZCB0aGlzIGRpcmVjdGx5IG92ZXIgcmVnaXN0ZXJzLi4ub25seSB3b3JrcyBvbiBuZXcNCisr CQkgKiBDVCBmaXJtd2FyZS4NCisrCQkgKi8NCisrCQlyZXQgPSBhdGgxMGtfY3RfZndfY3Jhc2hf cmVnc19oYXJkZXIoYXIsIHJlZ19kdW1wX3ZhbHVlcywgUkVHX0RVTVBfQ09VTlRfUUNBOTg4WCk7 DQorKwkJaWYgKHJldCkNCisrCQkJcmV0dXJuOw0KKyAJfQ0KKyANCisgCUJVSUxEX0JVR19PTihS RUdfRFVNUF9DT1VOVF9RQ0E5ODhYICUgNCk7DQpkaWZmIC0tZ2l0IGEvcGFja2FnZS9rZXJuZWwv bWFjODAyMTEvcGF0Y2hlcy85OTktMDA2OC13aXJlbGVzcy1qdXN0LWZhaWwtaWYtdXNlci1yZXF1 ZXN0cy10by1jcmVhdGUtd2l0aC1iLnBhdGNoIGIvcGFja2FnZS9rZXJuZWwvbWFjODAyMTEvcGF0 Y2hlcy85OTktMDA2OC13aXJlbGVzcy1qdXN0LWZhaWwtaWYtdXNlci1yZXF1ZXN0cy10by1jcmVh dGUtd2l0aC1iLnBhdGNoDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMC4uOTcy NTk3MQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIvcGFja2FnZS9rZXJuZWwvbWFjODAyMTEvcGF0Y2hl cy85OTktMDA2OC13aXJlbGVzcy1qdXN0LWZhaWwtaWYtdXNlci1yZXF1ZXN0cy10by1jcmVhdGUt d2l0aC1iLnBhdGNoDQpAQCAtMCwwICsxLDc2IEBADQorRnJvbTogQmVuIEdyZWVhciA8Z3JlZWFy YkBjYW5kZWxhdGVjaC5jb20+DQorRGF0ZTogVGh1LCAxMiBGZWIgMjAxNSAxNjo0Mzo0OCAtMDgw MA0KK1N1YmplY3Q6IFtQQVRDSF0gd2lyZWxlc3M6IGp1c3QgZmFpbCBpZiB1c2VyIHJlcXVlc3Rz IHRvIGNyZWF0ZSB3aXRoIGJhZCBuYW1lLg0KKw0KK0l0IGlzIGRpZmZpY3VsdCBmb3IgdXNlci1z cGFjZSB0byBkZWFsIHdpdGggZmFpbHVyZXMgd2hlbiB0aGUNCitrZXJuZWwganVzdCBzaWxlbnRs eSBjcmVhdGVzIHNvbWV0aGluZyBuYW1lZCB0aGUgd3JvbmcgdGhpbmcsDQorc28gaW5zdGVhZCBq dXN0IGZhaWwgdGhlIGNyZWF0aW9uIGVudGlyZWx5IGlmIHRoZSBuYW1lIGlzDQorc3BlY2lmaWVk IGFuZCBpbmNvcnJlY3QgKGJhZCBmb3JtYXQsIGFscmVhZHkgaW4gdXNlLCBldGMpLg0KKw0KK1Np Z25lZC1vZmYtYnk6IEJlbiBHcmVlYXIgPGdyZWVhcmJAY2FuZGVsYXRlY2guY29tPg0KKy0tLQ0K KyBuZXQvd2lyZWxlc3MvY29yZS5jIHwgMjMgKysrKysrKysrKystLS0tLS0tLS0tLS0NCisgMSBm aWxlIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQ0KKw0KK2RpZmYg LS1naXQgYS9uZXQvd2lyZWxlc3MvY29yZS5jIGIvbmV0L3dpcmVsZXNzL2NvcmUuYw0KK2luZGV4 IDJhMGJiZDIyODU0Yi4uMDkwODM1MDY2ZGIwIDEwMDY0NA0KKy0tLSBhL25ldC93aXJlbGVzcy9j b3JlLmMNCisrKysgYi9uZXQvd2lyZWxlc3MvY29yZS5jDQorQEAgLTM2MywxMiArMzYzLDkgQEAg c3RydWN0IHdpcGh5ICp3aXBoeV9uZXdfbm0oY29uc3Qgc3RydWN0IGNmZzgwMjExX29wcyAqb3Bz LCBpbnQgc2l6ZW9mX3ByaXYsDQorIA0KKyAJcmRldi0+d2lwaHlfaWR4ID0gYXRvbWljX2luY19y ZXR1cm4oJndpcGh5X2NvdW50ZXIpOw0KKyANCistCWlmICh1bmxpa2VseShyZGV2LT53aXBoeV9p ZHggPCAwKSkgew0KKysJaWYgKHVubGlrZWx5KHJkZXYtPndpcGh5X2lkeCA8IDApKQ0KKyAJCS8q IHVnaCwgd3JhcHBlZCEgKi8NCistCQlhdG9taWNfZGVjKCZ3aXBoeV9jb3VudGVyKTsNCistCQlr ZnJlZShyZGV2KTsNCistCQlyZXR1cm4gTlVMTDsNCistCX0NCisrCQlnb3RvIGVycl9leGl0Ow0K KyANCisgCS8qIGF0b21pY19pbmNfcmV0dXJuIG1ha2VzIGl0IHN0YXJ0IGF0IDEsIG1ha2UgaXQg c3RhcnQgYXQgMCAqLw0KKyAJcmRldi0+d2lwaHlfaWR4LS07DQorQEAgLTM4MiwxNSArMzc5LDE0 IEBAIHN0cnVjdCB3aXBoeSAqd2lwaHlfbmV3X25tKGNvbnN0IHN0cnVjdCBjZmc4MDIxMV9vcHMg Km9wcywgaW50IHNpemVvZl9wcml2LA0KKyANCisgCQlpZiAocnYgPCAwKSB7DQorIAkJCXJ0bmxf dW5sb2NrKCk7DQorLQkJCWdvdG8gdXNlX2RlZmF1bHRfbmFtZTsNCisrCQkJZ290byBlcnJfZXhp dDsNCisgCQl9DQorIA0KKyAJCXJ2ID0gZGV2X3NldF9uYW1lKCZyZGV2LT53aXBoeS5kZXYsICIl cyIsIHJlcXVlc3RlZF9uYW1lKTsNCisgCQlydG5sX3VubG9jaygpOw0KKyAJCWlmIChydikNCist CQkJZ290byB1c2VfZGVmYXVsdF9uYW1lOw0KKysJCQlnb3RvIGVycl9leGl0Ow0KKyAJfSBlbHNl IHsNCistdXNlX2RlZmF1bHRfbmFtZToNCisgCQkvKiBOT1RFOiAgVGhpcyBpcyAqcHJvYmFibHkq IHNhZmUgdy9vdXQgaG9sZGluZyBydG5sIGJlY2F1c2Ugb2YNCisgCQkgKiB0aGUgcmVzdHJpY3Rp b25zIG9uIHBoeSBuYW1lcy4gIFByb2JhYmx5IHRoaXMgY2FsbCBjb3VsZA0KKyAJCSAqIGZhaWwg aWYgc29tZSBvdGhlciBwYXJ0IG9mIHRoZSBrZXJuZWwgKHJlKW5hbWVkIGEgZGV2aWNlDQorQEAg LTQzMywxMCArNDI5LDggQEAgdXNlX2RlZmF1bHRfbmFtZToNCisgCQkJCSAgICZyZGV2LT53aXBo eS5kZXYsIFJGS0lMTF9UWVBFX1dMQU4sDQorIAkJCQkgICAmcmRldi0+cmZraWxsX29wcywgcmRl dik7DQorIA0KKy0JaWYgKCFyZGV2LT5yZmtpbGwpIHsNCistCQlrZnJlZShyZGV2KTsNCistCQly ZXR1cm4gTlVMTDsNCistCX0NCisrCWlmICghcmRldi0+cmZraWxsKQ0KKysJCWdvdG8gZXJyX2V4 aXQ7DQorIA0KKyAJSU5JVF9XT1JLKCZyZGV2LT5yZmtpbGxfc3luYywgY2ZnODAyMTFfcmZraWxs X3N5bmNfd29yayk7DQorIAlJTklUX1dPUksoJnJkZXYtPmNvbm5fd29yaywgY2ZnODAyMTFfY29u bl93b3JrKTsNCitAQCAtNDU4LDYgKzQ1MiwxMSBAQCB1c2VfZGVmYXVsdF9uYW1lOg0KKyAJcmRl di0+d2lwaHkubWF4X251bV9jc2FfY291bnRlcnMgPSAxOw0KKyANCisgCXJldHVybiAmcmRldi0+ d2lwaHk7DQorKw0KKytlcnJfZXhpdDoNCisrCWF0b21pY19kZWMoJndpcGh5X2NvdW50ZXIpOw0K KysJa2ZyZWUocmRldik7DQorKwlyZXR1cm4gTlVMTDsNCisgfQ0KKyBFWFBPUlRfU1lNQk9MKHdp cGh5X25ld19ubSk7DQorIA0KZGlmZiAtLWdpdCBhL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3Bh dGNoZXMvOTk5LTAwNjktYXRoMTBrLVJlcG9ydC10eC1yZXRyeS1mYWlsdXJlcy13aGVuLXVzaW5n LUNULWZpcm13YS5wYXRjaCBiL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAw NjktYXRoMTBrLVJlcG9ydC10eC1yZXRyeS1mYWlsdXJlcy13aGVuLXVzaW5nLUNULWZpcm13YS5w YXRjaA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAuLmU3NzY0MDENCi0tLSAv ZGV2L251bGwNCisrKyBiL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAwNjkt YXRoMTBrLVJlcG9ydC10eC1yZXRyeS1mYWlsdXJlcy13aGVuLXVzaW5nLUNULWZpcm13YS5wYXRj aA0KQEAgLTAsMCArMSwxMDQgQEANCitGcm9tOiBCZW4gR3JlZWFyIDxncmVlYXJiQGNhbmRlbGF0 ZWNoLmNvbT4NCitEYXRlOiBGcmksIDI3IEZlYiAyMDE1IDE5OjE1OjA1IC0wODAwDQorU3ViamVj dDogW1BBVENIXSBhdGgxMGs6IFJlcG9ydCB0eC1yZXRyeS1mYWlsdXJlcyB3aGVuIHVzaW5nIENU IGZpcm13YXJlLg0KKw0KK1dlIHN0ZWFsIDIgYml0cyBmcm9tIHRoZSB0eC1yYXRlLWZsYWdzIGFu ZCB1c2UgdGhhdCB0byBwYXNzDQorYmFjayB0aGUgdHgtY29tcGxldGlvbiBjb2RlIGZyb20gdGhl IGZpcm13YXJlLg0KKw0KK1JlcXVpcmVzIHZlcnNpb24gMTQgb3IgbGF0ZXIgb2YgdGhlIENUIGZp cm13YXJlLg0KKw0KK1NpZ25lZC1vZmYtYnk6IEJlbiBHcmVlYXIgPGdyZWVhcmJAY2FuZGVsYXRl Y2guY29tPg0KKy0tLQ0KKyBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2h0dC5oICB8 IDE1ICsrKysrKysrLS0tLS0tLQ0KKyBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3R4 cnguYyB8IDE1ICsrKysrKysrKysrLS0tLQ0KKyBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRo MTBrL3R4cnguaCB8ICAyICstDQorIDMgZmlsZXMgY2hhbmdlZCwgMjAgaW5zZXJ0aW9ucygrKSwg MTIgZGVsZXRpb25zKC0pDQorDQorZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0 aC9hdGgxMGsvaHR0LmggYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2h0dC5oDQor aW5kZXggZDljNTBmMzZiZjY1Li5iYjk0ZGI1OTg3OGEgMTAwNjQ0DQorLS0tIGEvZHJpdmVycy9u ZXQvd2lyZWxlc3MvYXRoL2F0aDEway9odHQuaA0KKysrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNz L2F0aC9hdGgxMGsvaHR0LmgNCitAQCAtMTMxNywxMSArMTMxNywxMiBAQCBzdHJ1Y3QgaHR0X3Jl c3Agew0KKyANCisgLyoqKiBob3N0IHNpZGUgc3RydWN0dXJlcyBmb2xsb3cgKioqLw0KKyANCist LyogdHgtcmF0ZSBmbGFncyBmaWVsZCBkZWZpbml0aW9ucyAqLw0KKy0jZGVmaW5lIEFUSDEwS19S Q19GTEFHX0NIQUlOX01BU0sgMHgwNyAvKiBpZGVudGlmaWVzIHR4IGNoYWluIGNvbmZpZyAoMSw1 LDcpICovDQorLSNkZWZpbmUgQVRIMTBLX1JDX0ZMQUdfT05FX0NIQUlOICAgICAxDQorLSNkZWZp bmUgQVRIMTBLX1JDX0ZMQUdfVFdPX0NIQUlOICAgICA1DQorLSNkZWZpbmUgQVRIMTBLX1JDX0ZM QUdfVEhSRUVfQ0hBSU4gICA3DQorKy8qIHR4LXJhdGUgZmxhZ3MgZmllbGQgZGVmaW5pdGlvbnMs IHNlZSBmaXJtd2FyZSB3aGFsX2Rlc2MuaCAqLw0KKysvKiBGaXJzdCB0d28gYml0cyBhcmUgZm9y IHR4LWNvbXBsZXRpb24gcmVwb3J0LiAqLw0KKysjZGVmaW5lIEFUSDEwS19SQ19GTEFHX1RYT0sg ICAgICAgMHgwMCAvKiBQa3QgdHJhbnNtaXR0ZWQgT0sgKi8NCisrI2RlZmluZSBBVEgxMEtfUkNf RkxBR19YUkVUUlkgICAgIDB4MDEgLyogUGt0IGZhaWxlZCB0byB0cmFuc21pdCwgdG9vIG1hbnkg cmV0cmllcy4gKi8NCisrI2RlZmluZSBBVEgxMEtfUkNfRkxBR19EUk9QICAgICAgIDB4MDIgLyog RHJvcHBlZCBkdWUgdG8gdGlkIGZsdXNoLCBsb2NhbCBidWZmZXIgZXhoYXVzdGlvbiwgZXRjLiAq Lw0KKysNCisgI2RlZmluZSBBVEgxMEtfUkNfRkxBR19TR0kgICAgICAgIDB4MDggLyogdXNlIEhU IFNHSSBpZiBzZXQgKi8NCisgI2RlZmluZSBBVEgxMEtfUkNfRkxBR19TVEJDICAgICAgIDB4MTAg LyogdXNlIEhUIFNUQkMgaWYgc2V0ICovDQorICNkZWZpbmUgQVRIMTBLX1JDX0ZMQUdfNDBNSFog ICAgICAweDIwIC8qIDQwIG1oeiBtb2RlICovDQorQEAgLTEzMzEsOCArMTMzMiw4IEBAIHN0cnVj dCBodHRfcmVzcCB7DQorIA0KKyBzdHJ1Y3QgaHR0X3R4X2RvbmUgew0KKyAJdTE2IG1zZHVfaWQ7 DQorLQl1OCB0eF9yYXRlX2NvZGU7IC8qIENUIGZpcm13YXJlIG9ubHkgKi8NCistCXU4IHR4X3Jh dGVfZmxhZ3M7IC8qIENUIGZpcm13YXJlIG9ubHkgKi8NCisrCXU4IHR4X3JhdGVfY29kZTsgLyog Q1QgZmlybXdhcmUgb25seSwgc2VlIGZpcm13YXJlIGFyX2Rlc2Nfd2lmaV9pcDAxLmggKHNlYXJj aCBmb3IgMHg0NCkgKi8NCisrCXU4IHR4X3JhdGVfZmxhZ3M7IC8qIENUIGZpcm13YXJlIG9ubHks IHNlZSBmbGFnIGRlZnMgYWJvdmUgKi8NCisgCWJvb2wgZGlzY2FyZDsNCisgCWJvb2wgbm9fYWNr Ow0KKyAJYm9vbCBzdWNjZXNzOw0KK2RpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9h dGgvYXRoMTBrL3R4cnguYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvdHhyeC5j DQoraW5kZXggNmYwZjhjNGYxOWY0Li4wOGZkNWI5MDFmNTQgMTAwNjQ0DQorLS0tIGEvZHJpdmVy cy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway90eHJ4LmMNCisrKysgYi9kcml2ZXJzL25ldC93aXJl bGVzcy9hdGgvYXRoMTBrL3R4cnguYw0KK0BAIC04Myw3ICs4Myw3IEBAIHN0YXRpYyB2b2lkIGF0 aDEwa19zZXRfdHhfcmF0ZV9zdGF0dXMoc3RydWN0IGllZWU4MDIxMV90eF9yYXRlICpyYXRlLA0K KyANCisgDQorIHZvaWQgYXRoMTBrX3R4cnhfdHhfdW5yZWYoc3RydWN0IGF0aDEwa19odHQgKmh0 dCwNCistCQkJICBjb25zdCBzdHJ1Y3QgaHR0X3R4X2RvbmUgKnR4X2RvbmUpDQorKwkJCSAgc3Ry dWN0IGh0dF90eF9kb25lICp0eF9kb25lKQ0KKyB7DQorIAlzdHJ1Y3QgYXRoMTBrICphciA9IGh0 dC0+YXI7DQorIAlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBhci0+ZGV2Ow0KK0BAIC0xMzQsMTggKzEz NCwyNSBAQCB2b2lkIGF0aDEwa190eHJ4X3R4X3VucmVmKHN0cnVjdCBhdGgxMGtfaHR0ICpodHQs DQorIAlpZiAoIShpbmZvLT5mbGFncyAmIElFRUU4MDIxMV9UWF9DVExfTk9fQUNLKSkNCisgCQlp bmZvLT5mbGFncyB8PSBJRUVFODAyMTFfVFhfU1RBVF9BQ0s7DQorIA0KKy0JaWYgKHR4X2RvbmUt Pm5vX2FjaykNCistCQlpbmZvLT5mbGFncyAmPSB+SUVFRTgwMjExX1RYX1NUQVRfQUNLOw0KKy0N CisgCWlmICh0eF9kb25lLT5zdWNjZXNzICYmIChpbmZvLT5mbGFncyAmIElFRUU4MDIxMV9UWF9D VExfTk9fQUNLKSkNCisgCQlpbmZvLT5mbGFncyB8PSBJRUVFODAyMTFfVFhfU1RBVF9OT0FDS19U UkFOU01JVFRFRDsNCisgDQorIAlpZiAodHhfZG9uZS0+dHhfcmF0ZV9jb2RlIHx8IHR4X2RvbmUt PnR4X3JhdGVfZmxhZ3MpIHsNCisgCQlhdGgxMGtfc2V0X3R4X3JhdGVfc3RhdHVzKCZpbmZvLT5z dGF0dXMucmF0ZXNbMF0sIHR4X2RvbmUpOw0KKysNCisrCQkvKiBEZWFsIHdpdGggdHgtY29tcGxl dGlvbiBzdGF0dXMgKi8NCisrCQlpZiAoKHR4X2RvbmUtPnR4X3JhdGVfZmxhZ3MgJiAweDMpID09 IEFUSDEwS19SQ19GTEFHX1hSRVRSWSkNCisrCQkJdHhfZG9uZS0+bm9fYWNrID0gdHJ1ZTsNCisr CQkvKiBUT0RPOiAgUmVwb3J0IGRyb3BzIGRpZmZlcmVudGx5LiAqLw0KKysJCWlmICgodHhfZG9u ZS0+dHhfcmF0ZV9mbGFncyAmIDB4MykgPT0gQVRIMTBLX1JDX0ZMQUdfRFJPUCkNCisrCQkJdHhf ZG9uZS0+bm9fYWNrID0gdHJ1ZTsNCisgCX0gZWxzZSB7DQorIAkJaW5mby0+c3RhdHVzLnJhdGVz WzBdLmlkeCA9IC0xOw0KKyAJfQ0KKyANCisrCWlmICh0eF9kb25lLT5ub19hY2spDQorKwkJaW5m by0+ZmxhZ3MgJj0gfklFRUU4MDIxMV9UWF9TVEFUX0FDSzsNCisrDQorIAlpZWVlODAyMTFfdHhf c3RhdHVzKGh0dC0+YXItPmh3LCBtc2R1KTsNCisgCS8qIHdlIGRvIG5vdCBvd24gdGhlIG1zZHUg YW55bW9yZSAqLw0KKyANCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0 aDEway90eHJ4LmggYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3R4cnguaA0KK2lu ZGV4IGE5MGUwOWY1YzdmMi4uOGM3MTUxYjYzYTAxIDEwMDY0NA0KKy0tLSBhL2RyaXZlcnMvbmV0 L3dpcmVsZXNzL2F0aC9hdGgxMGsvdHhyeC5oDQorKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3Mv YXRoL2F0aDEway90eHJ4LmgNCitAQCAtMjAsNyArMjAsNyBAQA0KKyAjaW5jbHVkZSAiaHR0Lmgi DQorIA0KKyB2b2lkIGF0aDEwa190eHJ4X3R4X3VucmVmKHN0cnVjdCBhdGgxMGtfaHR0ICpodHQs DQorLQkJCSAgY29uc3Qgc3RydWN0IGh0dF90eF9kb25lICp0eF9kb25lKTsNCisrCQkJICBzdHJ1 Y3QgaHR0X3R4X2RvbmUgKnR4X2RvbmUpOw0KKyANCisgc3RydWN0IGF0aDEwa19wZWVyICphdGgx MGtfcGVlcl9maW5kKHN0cnVjdCBhdGgxMGsgKmFyLCBpbnQgdmRldl9pZCwNCisgCQkJCSAgICAg Y29uc3QgdTggKmFkZHIpOw0KZGlmZiAtLWdpdCBhL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3Bh dGNoZXMvOTk5LTAwNzAtYXRoMTBrLUZpeC1jb21waWxlLXdoZW4tQVRIMTBLX0RFQlVHLW9wdGlv bi1pcy1ub3QtZS5wYXRjaCBiL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAw NzAtYXRoMTBrLUZpeC1jb21waWxlLXdoZW4tQVRIMTBLX0RFQlVHLW9wdGlvbi1pcy1ub3QtZS5w YXRjaA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAuLjZjODBmYTcNCi0tLSAv ZGV2L251bGwNCisrKyBiL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAwNzAt YXRoMTBrLUZpeC1jb21waWxlLXdoZW4tQVRIMTBLX0RFQlVHLW9wdGlvbi1pcy1ub3QtZS5wYXRj aA0KQEAgLTAsMCArMSw4NiBAQA0KK0Zyb206IEJlbiBHcmVlYXIgPGdyZWVhcmJAY2FuZGVsYXRl Y2guY29tPg0KK0RhdGU6IFRodSwgNSBNYXIgMjAxNSAxNzozNzowNSAtMDgwMA0KK1N1YmplY3Q6 IFtQQVRDSF0gYXRoMTBrOiBGaXggY29tcGlsZSB3aGVuIEFUSDEwS19ERUJVRyBvcHRpb24gaXMg bm90IGVuYWJsZWQuDQorDQorQWxzbywgYWRkIGNvbXBpbGUgdGltZSB3YXJuaW5nIGlmIGNvbXBp bGluZyB3L291dCBBVEgxMEtfREVCVUdGUw0KK3NpbmNlIENUIGZpcm13YXJlIHdpbGwgYmUgbWlz c2luZyB0aGUgV01JIGtlZXBhbGl2ZSAoYW5kIGFiaWxpdHkNCit0byBkbyB1c2VmdWwgZGVidWdn aW5nIG9mIGNyYXNoZXMpIHdpdGggdGhpcyBkaXNhYmxlZC4NCisNCitCYXNlZCBvbiBwYXRjaGVz IGJ5IGpvc2UuZGVsZ2Fkb0Bhb2lmZXMuY29tDQorDQorU2lnbmVkLW9mZi1ieTogQmVuIEdyZWVh ciA8Z3JlZWFyYkBjYW5kZWxhdGVjaC5jb20+DQorLS0tDQorIGRyaXZlcnMvbmV0L3dpcmVsZXNz L2F0aC9hdGgxMGsvZGVidWcuaCB8IDExICsrKysrKy0tLS0tDQorIGRyaXZlcnMvbmV0L3dpcmVs ZXNzL2F0aC9hdGgxMGsvd21pLmMgICB8ICAzICsrLQ0KKyBkcml2ZXJzL25ldC93aXJlbGVzcy9h dGgvYXRoMTBrL3dtaS5oICAgfCAgNSArKysrLQ0KKyAzIGZpbGVzIGNoYW5nZWQsIDEyIGluc2Vy dGlvbnMoKyksIDcgZGVsZXRpb25zKC0pDQorDQorZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dp cmVsZXNzL2F0aC9hdGgxMGsvZGVidWcuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgx MGsvZGVidWcuaA0KK2luZGV4IDZhNmY3NmI3ZTQ0Yi4uZjg1Yjk3MGUxYTEwIDEwMDY0NA0KKy0t LSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvZGVidWcuaA0KKysrKyBiL2RyaXZl cnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvZGVidWcuaA0KK0BAIC05MSw3ICs5MSwxMyBAQCBp bnQgYXRoMTBrX2RlYnVnX2dldF9ldF9zc2V0X2NvdW50KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3 LA0KKyB2b2lkIGF0aDEwa19kZWJ1Z19nZXRfZXRfc3RhdHMoc3RydWN0IGllZWU4MDIxMV9odyAq aHcsDQorIAkJCSAgICAgICBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLA0KKyAJCQkgICAgICAg c3RydWN0IGV0aHRvb2xfc3RhdHMgKnN0YXRzLCB1NjQgKmRhdGEpOw0KKysNCisrdm9pZCBhdGgx MGtfZGJnX3NhdmVfZndfZGJnX2J1ZmZlcihzdHJ1Y3QgYXRoMTBrICphciwgX19sZTMyICpidWZm ZXIsIGludCBsZW4pOw0KKyAjZWxzZQ0KKytzdGF0aWMgaW5saW5lIHZvaWQgYXRoMTBrX2RiZ19z YXZlX2Z3X2RiZ19idWZmZXIoc3RydWN0IGF0aDEwayAqYXIsDQorKwkJCQkJCSBfX2xlMzIgKmJ1 ZmZlciwgaW50IGxlbikNCisrew0KKyt9DQorIHN0YXRpYyBpbmxpbmUgaW50IGF0aDEwa19kZWJ1 Z19zdGFydChzdHJ1Y3QgYXRoMTBrICphcikNCisgew0KKyAJcmV0dXJuIDA7DQorQEAgLTE1NSw3 ICsxNjEsNiBAQCB2b2lkIGF0aDEwa19kYmdfZHVtcChzdHJ1Y3QgYXRoMTBrICphciwNCisgCQkg ICAgIGVudW0gYXRoMTBrX2RlYnVnX21hc2sgbWFzaywNCisgCQkgICAgIGNvbnN0IGNoYXIgKm1z ZywgY29uc3QgY2hhciAqcHJlZml4LA0KKyAJCSAgICAgY29uc3Qgdm9pZCAqYnVmLCBzaXplX3Qg bGVuKTsNCistdm9pZCBhdGgxMGtfZGJnX3NhdmVfZndfZGJnX2J1ZmZlcihzdHJ1Y3QgYXRoMTBr ICphciwgX19sZTMyICpidWZmZXIsIGludCBsZW4pOw0KKyAjZWxzZSAvKiBDUFRDRkdfQVRIMTBL X0RFQlVHICovDQorIA0KKyBzdGF0aWMgaW5saW5lIGludCBhdGgxMGtfZGJnKHN0cnVjdCBhdGgx MGsgKmFyLA0KK0BAIC0xNzEsMTAgKzE3Niw2IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBhdGgxMGtf ZGJnX2R1bXAoc3RydWN0IGF0aDEwayAqYXIsDQorIAkJCQkgICBjb25zdCB2b2lkICpidWYsIHNp emVfdCBsZW4pDQorIHsNCisgfQ0KKy1zdGF0aWMgaW5saW5lIHZvaWQgYXRoMTBrX2RiZ19zYXZl X2Z3X2RiZ19idWZmZXIoc3RydWN0IGF0aDEwayAqYXIsDQorLQkJCQkJCSBfX2xlMzIgKmJ1ZmZl ciwgaW50IGxlbikNCistew0KKy19DQorICNlbmRpZiAvKiBDUFRDRkdfQVRIMTBLX0RFQlVHICov DQorIA0KKyBpbnQgYXRoMTBrX3JlZnJlc2hfcGVlcl9zdGF0cyhzdHJ1Y3QgYXRoMTBrICphcik7 DQorZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLmMgYi9k cml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS5jDQoraW5kZXggNWViM2Q3ODVlYzhh Li4zZmQwNjdiM2MxN2EgMTAwNjQ0DQorLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0 aDEway93bWkuYw0KKysrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLmMN CitAQCAtNDQyMyw3ICs0NDIzLDggQEAgYXRoMTBrX3dtaV9vcF9nZW5fdmRldl9zdGFydChzdHJ1 Y3QgYXRoMTBrICphciwNCisgCXJldHVybiBza2I7DQorIH0NCisgDQorLSNpZmRlZiBDUFRDRkdf QVRIMTBLX0RFQlVHDQorKyNpZmRlZiBDUFRDRkdfQVRIMTBLX0RFQlVHRlMNCisrLyogVE9ETzog IFNob3VsZCByZWFsbHkgZW5hYmxlIHRoaXMgYWxsIHRoZSB0aW1lLCBub3QganVzdCB3aGVuIERF QlVHRlMgaXMgZW5hYmxlZC4gLS1CZW4gKi8NCisgLyogQ1QgZmlybXdhcmUgb25seToNCisgICog KHJlKSBzdGFydCB3bWkga2VlcC1hbGl2ZSB0aW1lciBpbiBmaXJtd2FyZS4gIE9uY2Ugd2Ugc3Rh cnQNCisgICogc2VuZGluZyB0aGVzZSwgZmlybXdhcmUgd2lsbCBhc3NlcnQgaWYgaXQgZG9lcyBu b3QgcmVjZWl2ZSBvbmUNCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0 aDEway93bWkuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLmgNCitpbmRl eCBiMWM5ODcwMzViZTkuLjIyNDczOWU5Mjc3MiAxMDA2NDQNCistLS0gYS9kcml2ZXJzL25ldC93 aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS5oDQorKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRo L2F0aDEway93bWkuaA0KK0BAIC01MjQ2LDkgKzUyNDYsMTIgQEAgdm9pZCBhdGgxMGtfd21pX2V2 ZW50X3ZkZXZfcmVzdW1lX3JlcShzdHJ1Y3QgYXRoMTBrICphciwgc3RydWN0IHNrX2J1ZmYgKnNr Yik7DQorIHZvaWQgYXRoMTBrX3dtaV9ldmVudF9zZXJ2aWNlX3JlYWR5KHN0cnVjdCBhdGgxMGsg KmFyLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKTsNCisgaW50IGF0aDEwa193bWlfZXZlbnRfcmVhZHko c3RydWN0IGF0aDEwayAqYXIsIHN0cnVjdCBza19idWZmICpza2IpOw0KKyANCistI2lmZGVmIENQ VENGR19BVEgxMEtfREVCVUcNCisrI2lmZGVmIENQVENGR19BVEgxMEtfREVCVUdGUw0KKysvKiBU T0RPOiAgU2hvdWxkIHJlYWxseSBlbmFibGUgdGhpcyBhbGwgdGhlIHRpbWUsIG5vdCBqdXN0IHdo ZW4gREVCVUdGUyBpcyBlbmFibGVkLiAtLUJlbiAqLw0KKyAvKiBDVCBGaXJtd2FyZSBvbmx5ICov DQorIGludCBhdGgxMGtfd21pX3JlcXVlc3Rfbm9wKHN0cnVjdCBhdGgxMGsgKmFyKTsNCisrI2Vs c2UNCisrI3dhcm5pbmcgUGxlYXNlIGVuYWJsZSBBVEgxMEstREVCVUdGUyBrZXJuZWwgb3B0aW9u IGZvciBvcHRpbWFsIHN1cHBvcnQgZm9yIENUIGZpcm13YXJlLg0KKyAjZW5kaWYNCisgDQorICNl bmRpZiAvKiBfV01JX0hfICovDQpkaWZmIC0tZ2l0IGEvcGFja2FnZS9rZXJuZWwvbWFjODAyMTEv cGF0Y2hlcy85OTktMDA3MS1hdGgxMGstVXNlLW5ldy1DVC1mZWF0dXJlLWZsYWctdG8tZW5hYmxl LW5vLWFjay1yZXBvLnBhdGNoIGIvcGFja2FnZS9rZXJuZWwvbWFjODAyMTEvcGF0Y2hlcy85OTkt MDA3MS1hdGgxMGstVXNlLW5ldy1DVC1mZWF0dXJlLWZsYWctdG8tZW5hYmxlLW5vLWFjay1yZXBv LnBhdGNoDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMC4uZDZlZjc5Ng0KLS0t IC9kZXYvbnVsbA0KKysrIGIvcGFja2FnZS9rZXJuZWwvbWFjODAyMTEvcGF0Y2hlcy85OTktMDA3 MS1hdGgxMGstVXNlLW5ldy1DVC1mZWF0dXJlLWZsYWctdG8tZW5hYmxlLW5vLWFjay1yZXBvLnBh dGNoDQpAQCAtMCwwICsxLDUzIEBADQorRnJvbTogQmVuIEdyZWVhciA8Z3JlZWFyYkBjYW5kZWxh dGVjaC5jb20+DQorRGF0ZTogRnJpLCA2IE1hciAyMDE1IDIyOjE0OjIzIC0wODAwDQorU3ViamVj dDogW1BBVENIXSBhdGgxMGs6IFVzZSBuZXcgQ1QgZmVhdHVyZSBmbGFnIHRvIGVuYWJsZSBuby1h Y2sgcmVwb3J0aW5nLg0KKw0KK1RoaXMgd2F5LCB3ZSBjYW4gYmUgYmFja3dhcmRzIGNvbXBhdCB3 aXRoIG9sZGVyIGZpcm13YXJlIHRoYXQNCitkbyBub3QgcmVwb3J0IHRoZSB0eC1zdGF0dXMgaW4g cXVpdGUgdGhlIHNhbWUgd2F5Lg0KKw0KK1NpZ25lZC1vZmYtYnk6IEJlbiBHcmVlYXIgPGdyZWVh cmJAY2FuZGVsYXRlY2guY29tPg0KKy0tLQ0KKyBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRo MTBrL2NvcmUuaCB8ICAzICsrKw0KKyBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3R4 cnguYyB8IDE1ICsrKysrKysrKy0tLS0tLQ0KKyAyIGZpbGVzIGNoYW5nZWQsIDEyIGluc2VydGlv bnMoKyksIDYgZGVsZXRpb25zKC0pDQorDQorZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVs ZXNzL2F0aC9hdGgxMGsvY29yZS5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9j b3JlLmgNCitpbmRleCBlMWQ4NWM3M2Q3MTcuLjFjZDg4MWQ0OGFiNiAxMDA2NDQNCistLS0gYS9k cml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2NvcmUuaA0KKysrKyBiL2RyaXZlcnMvbmV0 L3dpcmVsZXNzL2F0aC9hdGgxMGsvY29yZS5oDQorQEAgLTUyMyw2ICs1MjMsOSBAQCBlbnVtIGF0 aDEwa19md19mZWF0dXJlcyB7DQorIAkgKiBlbmNyeXB0aW9uIChpZSwgY29tbWVyY2lhbCB2ZXJz aW9uIG9mIENUIGZpcm13YXJlKSAqLw0KKyAJQVRIMTBLX0ZXX0ZFQVRVUkVfQ1RfUlhTV0NSWVBU ID0gMzIsDQorIA0KKysJLyogdHgtc3RhdHVzIGhhcyB0aGUgbm9hY2sgYml0cyAoQ1QgZmlybXdh cmUgdmVyc2lvbiAxNCBhbmQgaGlnaGVyICkgKi8NCisrCUFUSDEwS19GV19GRUFUVVJFX0hBU19U WFNUQVRVU19OT0FDSyA9IDMzLA0KKysNCisgCS8qIGtlZXAgbGFzdCAqLw0KKyAJQVRIMTBLX0ZX X0ZFQVRVUkVfQ09VTlQsDQorIH07DQorZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNz L2F0aC9hdGgxMGsvdHhyeC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway90eHJ4 LmMNCitpbmRleCAwOGZkNWI5MDFmNTQuLjBiNDU1YWU2YWNhYyAxMDA2NDQNCistLS0gYS9kcml2 ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3R4cnguYw0KKysrKyBiL2RyaXZlcnMvbmV0L3dp cmVsZXNzL2F0aC9hdGgxMGsvdHhyeC5jDQorQEAgLTE0MCwxMiArMTQwLDE1IEBAIHZvaWQgYXRo MTBrX3R4cnhfdHhfdW5yZWYoc3RydWN0IGF0aDEwa19odHQgKmh0dCwNCisgCWlmICh0eF9kb25l LT50eF9yYXRlX2NvZGUgfHwgdHhfZG9uZS0+dHhfcmF0ZV9mbGFncykgew0KKyAJCWF0aDEwa19z ZXRfdHhfcmF0ZV9zdGF0dXMoJmluZm8tPnN0YXR1cy5yYXRlc1swXSwgdHhfZG9uZSk7DQorIA0K Ky0JCS8qIERlYWwgd2l0aCB0eC1jb21wbGV0aW9uIHN0YXR1cyAqLw0KKy0JCWlmICgodHhfZG9u ZS0+dHhfcmF0ZV9mbGFncyAmIDB4MykgPT0gQVRIMTBLX1JDX0ZMQUdfWFJFVFJZKQ0KKy0JCQl0 eF9kb25lLT5ub19hY2sgPSB0cnVlOw0KKy0JCS8qIFRPRE86ICBSZXBvcnQgZHJvcHMgZGlmZmVy ZW50bHkuICovDQorLQkJaWYgKCh0eF9kb25lLT50eF9yYXRlX2ZsYWdzICYgMHgzKSA9PSBBVEgx MEtfUkNfRkxBR19EUk9QKQ0KKy0JCQl0eF9kb25lLT5ub19hY2sgPSB0cnVlOw0KKysJCS8qIE9u bHkgaW4gdmVyc2lvbiAxNCBhbmQgaGlnaGVyIG9mIENUIGZpcm13YXJlICovDQorKwkJaWYgKHRl c3RfYml0KEFUSDEwS19GV19GRUFUVVJFX0hBU19UWFNUQVRVU19OT0FDSywgYXItPmZ3X2ZlYXR1 cmVzKSkgew0KKysJCQkvKiBEZWFsIHdpdGggdHgtY29tcGxldGlvbiBzdGF0dXMgKi8NCisrCQkJ aWYgKCh0eF9kb25lLT50eF9yYXRlX2ZsYWdzICYgMHgzKSA9PSBBVEgxMEtfUkNfRkxBR19YUkVU UlkpDQorKwkJCQl0eF9kb25lLT5ub19hY2sgPSB0cnVlOw0KKysJCQkvKiBUT0RPOiAgUmVwb3J0 IGRyb3BzIGRpZmZlcmVudGx5LiAqLw0KKysJCQlpZiAoKHR4X2RvbmUtPnR4X3JhdGVfZmxhZ3Mg JiAweDMpID09IEFUSDEwS19SQ19GTEFHX0RST1ApDQorKwkJCQl0eF9kb25lLT5ub19hY2sgPSB0 cnVlOw0KKysJCX0NCisgCX0gZWxzZSB7DQorIAkJaW5mby0+c3RhdHVzLnJhdGVzWzBdLmlkeCA9 IC0xOw0KKyAJfQ0KZGlmZiAtLWdpdCBhL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMv OTk5LTAwNzItYXRoMTBrLUFsbG93LXNldHRpbmctYmNhc3QtbWNhc3QtbWd0LWZpeGVkLXR4LXJh dGVzLnBhdGNoIGIvcGFja2FnZS9rZXJuZWwvbWFjODAyMTEvcGF0Y2hlcy85OTktMDA3Mi1hdGgx MGstQWxsb3ctc2V0dGluZy1iY2FzdC1tY2FzdC1tZ3QtZml4ZWQtdHgtcmF0ZXMucGF0Y2gNCm5l dyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwLi45Zjg4OTdlDQotLS0gL2Rldi9udWxs DQorKysgYi9wYWNrYWdlL2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDcyLWF0aDEway1B bGxvdy1zZXR0aW5nLWJjYXN0LW1jYXN0LW1ndC1maXhlZC10eC1yYXRlcy5wYXRjaA0KQEAgLTAs MCArMSwxOTQgQEANCitGcm9tOiBCZW4gR3JlZWFyIDxncmVlYXJiQGNhbmRlbGF0ZWNoLmNvbT4N CitEYXRlOiBUaHUsIDEyIE1hciAyMDE1IDE0OjQxOjI3IC0wNzAwDQorU3ViamVjdDogW1BBVENI XSBhdGgxMGs6IEFsbG93IHNldHRpbmcgYmNhc3QsIG1jYXN0LCBtZ3QgZml4ZWQgdHggcmF0ZXMu DQorDQorVGhlIGRlZmF1bHQgYmVoYXZpb3VyIHdoZW4gc2V0dGluZyBhIGZpeGVkIHRyYW5zbWl0 IHJhdGUgaW4gYXRoMTBrDQoraXMgdG8gb25seSBzZXQgdGhlICd1Y2FzdCcgcmF0ZS4gIFRoaXMg ZG9lcyBub3QgYWZmZWN0IGJlYWNvbnMsDQorbXVsdGljYXN0LCBvciBicm9hZGNhc3QgdHJhZmZp Yy4NCisNCitJbiBvcmRlciB0byBhbGxvdyBhIGJhY2stZG9vciB3YXkgdG8gc2V0IHRoZXNlIG90 aGVyIHR5cGVzIG9mDQordHJhZmZpYyBhcyB3ZWxsLCBwcm92aWRlIGEgZGVidWdmcyBmaWxlIHRo YXQgY2FuIHNldCB0aGUNCit0cmFmZmljIHR5cGUuICBUaGVuLCB1c2UgY2FuIHVzZSB0aGUgbm9y bWFsICdpdycgY29tbWFuZHMgdG8NCitzZXQgdGhlIHJhdGUgdG8gdGhlIGRlc2lyZWQgdmFsdWUu DQorDQorVXBzdHJlYW0gZmlybXdhcmUgKnNob3VsZCogc3VwcG9ydCBhbGwgb2YgdGhpcywgYnV0 IGF0IGxlYXN0DQorMTAuMSBkb2VzIE5PVCBoYXZlIHN1cHBvcnQgZm9yIHRoZSBXTUlfMTBYX1ZE RVZfUEFSQU1fTUdNVF9SQVRFDQorcGFyYW1ldGVyLiAgSSBhZGRlZCB0aGlzIHRvIHRoZSBDVCBm aXJtd2FyZSBzbyBpdCB3b3JrcyB0aGVyZS4NCisNCitQb3NzaWJseSBvdGhlciB1cHN0cmVhbSBm aXJtd2FyZSBoYXZlIGZpeGVkIHRoaXMgYXMgd2VsbC4NCisNCitTaWduZWQtb2ZmLWJ5OiBCZW4g R3JlZWFyIDxncmVlYXJiQGNhbmRlbGF0ZWNoLmNvbT4NCistLS0NCisgZHJpdmVycy9uZXQvd2ly ZWxlc3MvYXRoL2F0aDEway9jb3JlLmggIHwgICAxICsNCisgZHJpdmVycy9uZXQvd2lyZWxlc3Mv YXRoL2F0aDEway9kZWJ1Zy5jIHwgMTAyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr DQorIGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvbWFjLmMgICB8ICAxOSArKysrLS0N CisgMyBmaWxlcyBjaGFuZ2VkLCAxMTcgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkNCisN CitkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9jb3JlLmggYi9k cml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2NvcmUuaA0KK2luZGV4IDFjZDg4MWQ0OGFi Ni4uNjhlNDljZjI0N2RkIDEwMDY0NA0KKy0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9h dGgxMGsvY29yZS5oDQorKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9jb3Jl LmgNCitAQCAtNjEzLDYgKzYxMyw3IEBAIHN0cnVjdCBhdGgxMGsgew0KKyAJdTMyIG51bV9yZl9j aGFpbnM7DQorIAkvKiBwcm90ZWN0ZWQgYnkgY29uZl9tdXRleCAqLw0KKyAJYm9vbCBhbmlfZW5h YmxlZDsNCisrCXUzMiBzZXRfcmF0ZV90eXBlOyAvKiBvdmVycmlkZSBmb3Igc2V0LXJhdGUgYmVo YXZpb3VyICovDQorIA0KKyAJREVDTEFSRV9CSVRNQVAoZndfZmVhdHVyZXMsIEFUSDEwS19GV19G RUFUVVJFX0NPVU5UKTsNCisgDQorZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0 aC9hdGgxMGsvZGVidWcuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvZGVidWcu Yw0KK2luZGV4IDIzMDU2NDllODc2YS4uMzA2YjIxZDMxNzA3IDEwMDY0NA0KKy0tLSBhL2RyaXZl cnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvZGVidWcuYw0KKysrKyBiL2RyaXZlcnMvbmV0L3dp cmVsZXNzL2F0aC9hdGgxMGsvZGVidWcuYw0KK0BAIC0xMTAwLDYgKzExMDAsMTA1IEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGZvcHNfc2ltdWxhdGVfZndfY3Jhc2ggPSB7 DQorIAkubGxzZWVrID0gZGVmYXVsdF9sbHNlZWssDQorIH07DQorIA0KKytzdGF0aWMgc3NpemVf dCBhdGgxMGtfcmVhZF9zZXRfcmF0ZXMoc3RydWN0IGZpbGUgKmZpbGUsDQorKwkJCQkgICAgIGNo YXIgX191c2VyICp1c2VyX2J1ZiwNCisrCQkJCSAgICAgc2l6ZV90IGNvdW50LCBsb2ZmX3QgKnBw b3MpDQorK3sNCisrCXN0cnVjdCBhdGgxMGsgKmFyID0gZmlsZS0+cHJpdmF0ZV9kYXRhOw0KKysJ Y29uc3QgY2hhciBidWZbXSA9DQorKwkJIlRvIHNldCB1bmljYXN0LCBiZWFjb24vbWd0LCBtdWx0 aWNhc3QsIGFuZCBicm9hZGNhc3QsXG4iDQorKwkJInNlbGVjdCBhIHR5cGUgYmVsb3cgYW5kIHRo ZW4gdXNlICdpdycgYXMgbm9ybWFsIHRvIHNldFxuIg0KKysJCSJ0aGUgZGVzaXJlZCByYXRlLlxu Ig0KKysJCSJiZWFjb24gICAjIEJlYWNvbnMgYW5kIG1hbmFnZW1lbnQgZnJhbWVzXG4iDQorKwkJ ImJjYXN0ICAgICMgQnJvYWRjYXN0IGZyYW1lc1xuIg0KKysJCSJtY2FzdCAgICAjIE11bHRpY2Fz dCBmcmFtZXNcbiINCisrCQkidWNhc3QgICAgIyBVbmljYXN0IGZyYW1lcyAobm9ybWFsIHRyYWZm aWMsIGRlZmF1bHQpXG4iOw0KKysNCisrCWNoYXIgdG1wYnVmW3N0cmxlbihidWYpICsgODBdOw0K KysJY2hhciogc3RyID0gInVjYXN0IjsNCisrDQorKwlpZiAoYXItPnNldF9yYXRlX3R5cGUgPT0g YXItPndtaS52ZGV2X3BhcmFtLT5tZ210X3JhdGUpIHsNCisrCQlzdHIgPSAiYmVhY29uIjsNCisr CX0NCisrCWVsc2UgaWYgKGFyLT5zZXRfcmF0ZV90eXBlID09IGFyLT53bWkudmRldl9wYXJhbS0+ YmNhc3RfZGF0YV9yYXRlKSB7DQorKwkJc3RyID0gImJjYXN0IjsNCisrCX0NCisrCWVsc2UgaWYg KGFyLT5zZXRfcmF0ZV90eXBlID09IGFyLT53bWkudmRldl9wYXJhbS0+bWNhc3RfZGF0YV9yYXRl KSB7DQorKwkJc3RyID0gIm1jYXN0IjsNCisrCX0NCisrCXNwcmludGYodG1wYnVmLCAiJXNDdXJy ZW50OiAlc1xuIiwgYnVmLCBzdHIpOw0KKysNCisrCXJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1 ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIHRtcGJ1Ziwgc3RybGVuKHRtcGJ1ZikpOw0KKyt9 DQorKw0KKysvKiBTZXQgdGhlIHJhdGVzIGZvciBzcGVjaWZpYyB0eXBlcyBvZiB0cmFmZmljLg0K KysgKi8NCisrc3RhdGljIHNzaXplX3QgYXRoMTBrX3dyaXRlX3NldF9yYXRlcyhzdHJ1Y3QgZmls ZSAqZmlsZSwNCisrCQkJCSAgICAgIGNvbnN0IGNoYXIgX191c2VyICp1c2VyX2J1ZiwNCisrCQkJ CSAgICAgIHNpemVfdCBjb3VudCwgbG9mZl90ICpwcG9zKQ0KKyt7DQorKwlzdHJ1Y3QgYXRoMTBr ICphciA9IGZpbGUtPnByaXZhdGVfZGF0YTsNCisrCWNoYXIgYnVmWzMyXTsNCisrCWludCByZXQ7 DQorKw0KKysJbXV0ZXhfbG9jaygmYXItPmNvbmZfbXV0ZXgpOw0KKysNCisrCW1lbXNldChidWYs IDAsIHNpemVvZihidWYpKTsNCisrDQorKwlzaW1wbGVfd3JpdGVfdG9fYnVmZmVyKGJ1Ziwgc2l6 ZW9mKGJ1ZikgLSAxLCBwcG9zLCB1c2VyX2J1ZiwgY291bnQpOw0KKysNCisrCS8qIG1ha2Ugc3Vy ZSB0aGF0IGJ1ZiBpcyBudWxsIHRlcm1pbmF0ZWQgKi8NCisrCWJ1ZltzaXplb2YoYnVmKSAtIDFd ID0gMDsNCisrDQorKwkvKiBkcm9wIHRoZSBwb3NzaWJsZSAnXG4nIGZyb20gdGhlIGVuZCAqLw0K KysJaWYgKGJ1Zltjb3VudCAtIDFdID09ICdcbicpDQorKwkJYnVmW2NvdW50IC0gMV0gPSAwOw0K KysNCisrCS8qIElnbm9yZSBlbXB0eSBsaW5lcywgJ2VjaG8nIGFwcGVuZHMgdGhlbSBzb21ldGlt ZXMgYXQgbGVhc3QuICovDQorKwlpZiAoYnVmWzBdID09IDApIHsNCisrCQlyZXQgPSBjb3VudDsN CisrCQlnb3RvIGV4aXQ7DQorKwl9DQorKw0KKysJaWYgKGFyLT5zdGF0ZSAhPSBBVEgxMEtfU1RB VEVfT04gJiYNCisrCSAgICBhci0+c3RhdGUgIT0gQVRIMTBLX1NUQVRFX1JFU1RBUlRFRCkgew0K KysJCXJldCA9IC1FTkVURE9XTjsNCisrCQlnb3RvIGV4aXQ7DQorKwl9DQorKw0KKysJaWYgKHN0 cm5jbXAoYnVmLCAiYmVhY29uIiwgc3RybGVuKCJiZWFjb24iKSkgPT0gMCkgew0KKysJCWFyLT5z ZXRfcmF0ZV90eXBlID0gYXItPndtaS52ZGV2X3BhcmFtLT5tZ210X3JhdGU7DQorKwl9DQorKwll bHNlIGlmIChzdHJuY21wKGJ1ZiwgImJjYXN0Iiwgc3RybGVuKCJiY2FzdCIpKSA9PSAwKSB7DQor KwkJYXItPnNldF9yYXRlX3R5cGUgPSBhci0+d21pLnZkZXZfcGFyYW0tPmJjYXN0X2RhdGFfcmF0 ZTsNCisrCX0NCisrCWVsc2UgaWYgKHN0cm5jbXAoYnVmLCAibWNhc3QiLCBzdHJsZW4oIm1jYXN0 IikpID09IDApIHsNCisrCQlhci0+c2V0X3JhdGVfdHlwZSA9IGFyLT53bWkudmRldl9wYXJhbS0+ bWNhc3RfZGF0YV9yYXRlOw0KKysJfQ0KKysJZWxzZSBpZiAoc3RybmNtcChidWYsICJ1Y2FzdCIs IHN0cmxlbigidWNhc3QiKSkgPT0gMCkgew0KKysJCWFyLT5zZXRfcmF0ZV90eXBlID0gMDsNCisr CX0NCisrCWVsc2Ugew0KKysJCWF0aDEwa193YXJuKGFyLCAic2V0LXJhdGUsIGludmFsaWQgcmF0 ZSB0eXBlOiAlcyAgY291bnQ6ICVkICAlMDJoeDolMDJoeDolMDJoeDolMDJoeFxuIiwNCisrCQkJ ICAgIGJ1ZiwgKGludCljb3VudCwgKGludCkoYnVmWzBdKSwgKGludCkoYnVmWzFdKSwgKGludCko YnVmWzJdKSwgKGludCkoYnVmWzNdKSk7DQorKwkJcmV0ID0gLUVJTlZBTDsNCisrCQlnb3RvIGV4 aXQ7DQorKwl9DQorKwlyZXQgPSBjb3VudDsNCisrDQorK2V4aXQ6DQorKwltdXRleF91bmxvY2so JmFyLT5jb25mX211dGV4KTsNCisrCXJldHVybiByZXQ7DQorK30NCisrDQorK3N0YXRpYyBjb25z dCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGZvcHNfc2V0X3JhdGVzID0gew0KKysJLnJlYWQgPSBh dGgxMGtfcmVhZF9zZXRfcmF0ZXMsDQorKwkud3JpdGUgPSBhdGgxMGtfd3JpdGVfc2V0X3JhdGVz LA0KKysJLm9wZW4gPSBzaW1wbGVfb3BlbiwNCisrCS5vd25lciA9IFRISVNfTU9EVUxFLA0KKysJ Lmxsc2VlayA9IGRlZmF1bHRfbGxzZWVrLA0KKyt9Ow0KKysNCisgc3RhdGljIHNzaXplX3QgYXRo MTBrX3JlYWRfY2hpcF9pZChzdHJ1Y3QgZmlsZSAqZmlsZSwgY2hhciBfX3VzZXIgKnVzZXJfYnVm LA0KKyAJCQkJICAgc2l6ZV90IGNvdW50LCBsb2ZmX3QgKnBwb3MpDQorIHsNCitAQCAtMjUyOSw2 ICsyNjI4LDkgQEAgaW50IGF0aDEwa19kZWJ1Z19yZWdpc3RlcihzdHJ1Y3QgYXRoMTBrICphcikN CisgCWRlYnVnZnNfY3JlYXRlX2ZpbGUoIndtaV9zZXJ2aWNlcyIsIFNfSVJVU1IsIGFyLT5kZWJ1 Zy5kZWJ1Z2ZzX3BoeSwgYXIsDQorIAkJCSAgICAmZm9wc193bWlfc2VydmljZXMpOw0KKyANCisr CWRlYnVnZnNfY3JlYXRlX2ZpbGUoInNldF9yYXRlcyIsIFNfSVJVU1IsIGFyLT5kZWJ1Zy5kZWJ1 Z2ZzX3BoeSwNCisrCQkJICAgIGFyLCAmZm9wc19zZXRfcmF0ZXMpOw0KKysNCisgCWRlYnVnZnNf Y3JlYXRlX2ZpbGUoInNpbXVsYXRlX2Z3X2NyYXNoIiwgU19JUlVTUiwgYXItPmRlYnVnLmRlYnVn ZnNfcGh5LA0KKyAJCQkgICAgYXIsICZmb3BzX3NpbXVsYXRlX2Z3X2NyYXNoKTsNCisgDQorZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvbWFjLmMgYi9kcml2ZXJz L25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL21hYy5jDQoraW5kZXggMzdjMTNiNjExZDYwLi44OTg5 ZGY1MjMyZTkgMTAwNjQ0DQorLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9t YWMuYw0KKysrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvbWFjLmMNCitAQCAt NTg0NiwxNyArNTg0NiwyNiBAQCBzdGF0aWMgaW50IGF0aDEwa19tYWNfc2V0X2ZpeGVkX3JhdGVf cGFyYW1zKHN0cnVjdCBhdGgxMGtfdmlmICphcnZpZiwNCisgDQorIAlsb2NrZGVwX2Fzc2VydF9o ZWxkKCZhci0+Y29uZl9tdXRleCk7DQorIA0KKy0JYXRoMTBrX2RiZyhhciwgQVRIMTBLX0RCR19N QUMsICJtYWMgc2V0IGZpeGVkIHJhdGUgcGFyYW1zIHZkZXYgJWkgcmF0ZSAweCUwMmhoeCBuc3Mg JWhodSBzZ2kgJWhodVxuIiwNCistCQkgICBhcnZpZi0+dmRldl9pZCwgcmF0ZSwgbnNzLCBzZ2kp Ow0KKysJYXRoMTBrX2RiZyhhciwgQVRIMTBLX0RCR19NQUMsICJtYWMgc2V0IGZpeGVkIHJhdGUg cGFyYW1zIHZkZXYgJWkgcmF0ZSAweCUwMmhoeCBuc3MgJWhodSBzZ2kgJWhodSBzZXQtcmF0ZS10 eXBlOiAlZFxuIiwNCisrCQkgICBhcnZpZi0+dmRldl9pZCwgcmF0ZSwgbnNzLCBzZ2ksIGFyLT5z ZXRfcmF0ZV90eXBlKTsNCisgDQorLQl2ZGV2X3BhcmFtID0gYXItPndtaS52ZGV2X3BhcmFtLT5m aXhlZF9yYXRlOw0KKysJaWYgKGFyLT5zZXRfcmF0ZV90eXBlKQ0KKysJCXZkZXZfcGFyYW0gPSBh ci0+c2V0X3JhdGVfdHlwZTsNCisrCWVsc2UNCisrCQl2ZGV2X3BhcmFtID0gYXItPndtaS52ZGV2 X3BhcmFtLT5maXhlZF9yYXRlOw0KKyAJcmV0ID0gYXRoMTBrX3dtaV92ZGV2X3NldF9wYXJhbShh ciwgYXJ2aWYtPnZkZXZfaWQsIHZkZXZfcGFyYW0sIHJhdGUpOw0KKyAJaWYgKHJldCkgew0KKy0J CWF0aDEwa193YXJuKGFyLCAiZmFpbGVkIHRvIHNldCBmaXhlZCByYXRlIHBhcmFtIDB4JTAyeDog JWRcbiIsDQorLQkJCSAgICByYXRlLCByZXQpOw0KKysJCWF0aDEwa193YXJuKGFyLCAidmRldiAl aSBmYWlsZWQgdG8gc2V0IGZpeGVkIHJhdGUsIHBhcmFtIDB4JXggcmF0ZSAweCUwMnggbnNzICVo aHUgc2dpICVoaHU6ICVkXG4iLA0KKysJCQkgICAgYXJ2aWYtPnZkZXZfaWQsIHZkZXZfcGFyYW0s IHJhdGUsIG5zcywgc2dpLCByZXQpOw0KKyAJCXJldHVybiByZXQ7DQorIAl9DQorIA0KKysJLyog SWYgd2UgYXJlIHNldHRpbmcgb25lIG9mIHRoZSBzcGVjaWFsaXplZCByYXRlcyAobWdtdCwgdWNh c3QsIGJjYXN0KQ0KKysJICogdGhlbiB3ZSBkbyBub3QgbmVlZCB0byBzZXQgdGhlIG90aGVyIHZh bHVlcywgc28gc2tpcCB0byBleGl0Lg0KKysJICovDQorKwlpZiAoYXItPnNldF9yYXRlX3R5cGUg IT0gMCkNCisrCQlyZXR1cm4gMDsNCisrDQorIAl2ZGV2X3BhcmFtID0gYXItPndtaS52ZGV2X3Bh cmFtLT5uc3M7DQorIAlyZXQgPSBhdGgxMGtfd21pX3ZkZXZfc2V0X3BhcmFtKGFyLCBhcnZpZi0+ dmRldl9pZCwgdmRldl9wYXJhbSwgbnNzKTsNCisgCWlmIChyZXQpIHsNCmRpZmYgLS1naXQgYS9w YWNrYWdlL2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDczLWF0aDEway1tb3JlLWxvZ2dp bmctZm9yLWNyYXNoLW92ZXItUENJLXJlZ2lzdGVycy5wYXRjaCBiL3BhY2thZ2Uva2VybmVsL21h YzgwMjExL3BhdGNoZXMvOTk5LTAwNzMtYXRoMTBrLW1vcmUtbG9nZ2luZy1mb3ItY3Jhc2gtb3Zl ci1QQ0ktcmVnaXN0ZXJzLnBhdGNoDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAw MC4uZTBmNTEyZg0KLS0tIC9kZXYvbnVsbA0KKysrIGIvcGFja2FnZS9rZXJuZWwvbWFjODAyMTEv cGF0Y2hlcy85OTktMDA3My1hdGgxMGstbW9yZS1sb2dnaW5nLWZvci1jcmFzaC1vdmVyLVBDSS1y ZWdpc3RlcnMucGF0Y2gNCkBAIC0wLDAgKzEsMzMgQEANCitGcm9tOiBCZW4gR3JlZWFyIDxncmVl YXJiQGNhbmRlbGF0ZWNoLmNvbT4NCitEYXRlOiBUdWUsIDMxIE1hciAyMDE1IDEwOjMxOjIxIC0w NzAwDQorU3ViamVjdDogW1BBVENIXSBhdGgxMGs6IG1vcmUgbG9nZ2luZyBmb3IgY3Jhc2gtb3Zl ci1QQ0ktcmVnaXN0ZXJzLg0KKw0KK0hlbHAgdXMga25vdyBob3cgdGhlIGxvZ2ljIGlzIGZhaWxp bmcgaWYgaXQgZG9lcyBmYWlsLg0KKw0KK1NpZ25lZC1vZmYtYnk6IEJlbiBHcmVlYXIgPGdyZWVh cmJAY2FuZGVsYXRlY2guY29tPg0KKy0tLQ0KKyBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRo MTBrL3BjaS5jIHwgNCArKysrDQorIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKykNCisN CitkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9wY2kuYyBiL2Ry aXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvcGNpLmMNCitpbmRleCAwNTMxNjJkNzU3MzMu LjIzOTgxODYwNTE4YyAxMDA2NDQNCistLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRo MTBrL3BjaS5jDQorKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9wY2kuYw0K K0BAIC0xMjYxLDYgKzEyNjEsOCBAQCBzdGF0aWMgaW50IGF0aDEwa19jdF9md19jcmFzaF9yZWdz X2hhcmRlcihzdHJ1Y3QgYXRoMTBrICphciwNCisgCWludCBxOw0KKyAjZGVmaW5lIE1BWF9TUElO X1RSSUVTIDEwMDAwMDANCisgDQorKwlhdGgxMGtfd2FybihhciwgImluIGNyYXNoLXJlZ3MtaGFy ZGVyXG4iKTsNCisrDQorIAlpZiAoIXRlc3RfYml0KEFUSDEwS19GV19GRUFUVVJFX1dNSV8xMFhf Q1QsIGFyLT5md19mZWF0dXJlcykpIHsNCisgCQlyZXR1cm4gLUVJTlZBTDsNCisgCX0NCitAQCAt MTI3MCw2ICsxMjcyLDggQEAgc3RhdGljIGludCBhdGgxMGtfY3RfZndfY3Jhc2hfcmVnc19oYXJk ZXIoc3RydWN0IGF0aDEwayAqYXIsDQorIAkJaWYgKHZhbCAmIEZXX0lORF9TQ1JBVENIMl9XUikN CisgCQkJZ290byBwaW5ncG9uZzsNCisgCX0NCisrDQorKwlhdGgxMGtfd2FybihhciwgImluIGNy YXNoLXJlZ3MtaGFyZGVyLCBmaXJtd2FyZSBkaWQgbm90IHByb3ZpZGUgaW5kaWNhdG9yOiAweCV4 XG4iLCB2YWwpOw0KKyAJcmV0dXJuIC1FQlVTWTsNCisgDQorIHBpbmdwb25nOg0KZGlmZiAtLWdp dCBhL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAwNzQtYXRoMTBrLUFsbG93 LW1heC1tc2R1LXRvLWJlLWNvbmZpZ3VyZWQtd2l0aC1tb2QtcGFyYS5wYXRjaCBiL3BhY2thZ2Uv a2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAwNzQtYXRoMTBrLUFsbG93LW1heC1tc2R1LXRv LWJlLWNvbmZpZ3VyZWQtd2l0aC1tb2QtcGFyYS5wYXRjaA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQN CmluZGV4IDAwMDAwMDAuLjMwYjNmNTkNCi0tLSAvZGV2L251bGwNCisrKyBiL3BhY2thZ2Uva2Vy bmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAwNzQtYXRoMTBrLUFsbG93LW1heC1tc2R1LXRvLWJl LWNvbmZpZ3VyZWQtd2l0aC1tb2QtcGFyYS5wYXRjaA0KQEAgLTAsMCArMSw3MiBAQA0KK0Zyb206 IEJlbiBHcmVlYXIgPGdyZWVhcmJAY2FuZGVsYXRlY2guY29tPg0KK0RhdGU6IFR1ZSwgMzEgTWFy IDIwMTUgMTQ6MDc6MTIgLTA3MDANCitTdWJqZWN0OiBbUEFUQ0hdIGF0aDEwazogQWxsb3cgbWF4 LW1zZHUgdG8gYmUgY29uZmlndXJlZCB3aXRoIG1vZC1wYXJhbS4NCisNCitUaGUgNC4wIGtlcm5l bCBpcyB1c2luZyBtb3JlIGZpcm13YXJlIFJBTSwgcHJvYmFibHkgYmVjYXVzZQ0KK29mIGxhcmdl ciBodGMgYnVmZmVycy4gIFRvIHN0aWxsIHN1cHBvcnQgNjQgdmRldnMsIEkgbmVlZA0KK3RvIHNh dmUgYSBiaXQgb2YgUkFNLiAgRG8gdGhhdCBieSBkZWNyZWFzaW5nIHRoZSBkZWZhdWx0DQordmFs dWUgZm9yIG1zZHUtZGVzYyBjb3VudC4gIEl0IG1heSBiZSBhZGp1c3RlZCB3aXRoIG1vZHVsZQ0K K3BhcmFtZXRlciBhcyBkZXNpcmVkIGJ5IHRoZSB1c2VyLg0KKw0KK1NpZ25lZC1vZmYtYnk6IEJl biBHcmVlYXIgPGdyZWVhcmJAY2FuZGVsYXRlY2guY29tPg0KKy0tLQ0KKyBkcml2ZXJzL25ldC93 aXJlbGVzcy9hdGgvYXRoMTBrL2NvcmUuYyB8IDIgKy0NCisgZHJpdmVycy9uZXQvd2lyZWxlc3Mv YXRoL2F0aDEway9ody5oICAgfCAyIC0tDQorIGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgx MGsvbWFjLmMgIHwgNSArKysrKw0KKyBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL21h Yy5oICB8IDEgKw0KKyA0IGZpbGVzIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlv bnMoLSkNCisNCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9j b3JlLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2NvcmUuYw0KK2luZGV4IDE3 NTViMjIyODE4Yy4uOThjMTM5YTg4YjYxIDEwMDY0NA0KKy0tLSBhL2RyaXZlcnMvbmV0L3dpcmVs ZXNzL2F0aC9hdGgxMGsvY29yZS5jDQorKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0 aDEway9jb3JlLmMNCitAQCAtMTE0Myw3ICsxMTQzLDcgQEAgc3RhdGljIGludCBhdGgxMGtfY29y ZV9pbml0X2Zpcm13YXJlX2ZlYXR1cmVzKHN0cnVjdCBhdGgxMGsgKmFyKQ0KKyAJCQlhci0+bWF4 X251bV9wZWVycyA9IGF0aDEwa19tb2RwYXJhbV90YXJnZXRfbnVtX3BlZXJzX2N0Ow0KKyAJCQlh ci0+bWF4X251bV9zdGF0aW9ucyA9IFRBUkdFVF8xMFhfTlVNX1NUQVRJT05TOw0KKyAJCQlhci0+ bWF4X251bV92ZGV2cyA9IGF0aDEwa19tb2RwYXJhbV90YXJnZXRfbnVtX3ZkZXZzX2N0Ow0KKy0J CQlhci0+aHR0Lm1heF9udW1fcGVuZGluZ190eCA9IFRBUkdFVF8xMFhfTlVNX01TRFVfREVTQ19D VDsNCisrCQkJYXItPmh0dC5tYXhfbnVtX3BlbmRpbmdfdHggPSBhdGgxMGtfbW9kcGFyYW1fdGFy Z2V0X251bV9tc2R1X2Rlc2NfY3Q7DQorIAkJfSBlbHNlIHsNCisgCQkJYXItPm1heF9udW1fcGVl cnMgPSBUQVJHRVRfMTBYX05VTV9QRUVSUzsNCisgCQkJYXItPm1heF9udW1fc3RhdGlvbnMgPSBU QVJHRVRfMTBYX05VTV9TVEFUSU9OUzsNCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxl c3MvYXRoL2F0aDEway9ody5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9ody5o DQoraW5kZXggMzE1ZWVkNDVkZDExLi43OTk2OTljNjk4NjYgMTAwNjQ0DQorLS0tIGEvZHJpdmVy cy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9ody5oDQorKysrIGIvZHJpdmVycy9uZXQvd2lyZWxl c3MvYXRoL2F0aDEway9ody5oDQorQEAgLTI4Myw4ICsyODMsNiBAQCBlbnVtIGF0aDEwa19od19y YXRlX2NjayB7DQorIAkJCQkJCSAgICAqIG92ZXJyaWRlIHcvbW9kdWxlIHBhcm0gKi8NCisgI2Rl ZmluZSBUQVJHRVRfMTBYX0FTVF9TS0lEX0xJTUlUX0NUCQkoYXRoMTBrX21vZHBhcmFtX3Rhcmdl dF9udW1fcGVlcnNfY3QgKiBUQVJHRVRfMTBYX05VTV9QRUVSX0FTVCkNCisgI2RlZmluZSBUQVJH RVRfMTBYX05VTV9QRUVSX0tFWVNfQ1QgICAgICAgICAgICAgKFdNSV9NQVhfS0VZX0lOREVYICsg MSkgLyogNCAqLw0KKy0vKiBUaGVzZSBlYXQgYSBmYWlyIGNodW5rIG9mIG1lbW9yeSBvbiB0aGUg ZmlybXdhcmUsIHNvIGRlY3JlYXNlIGl0IGEgYml0LiAqLw0KKy0jZGVmaW5lIFRBUkdFVF8xMFhf TlVNX01TRFVfREVTQ19DVAkJODA4IC8qIG11c3QgYmUgbXVsdGlwbGUgb2YgOCAqLw0KKyANCisg LyogUmVsYXRlZCB0byBIVEMgYnVmZmVycyAqLw0KKyAvKiByZXR1cm4gYW55IGNyZWRpdCBpbW1l ZGlhdGVseSAqLw0KK2RpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBr L21hYy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMuYw0KK2luZGV4IDg5 ODlkZjUyMzJlOS4uYWVkNmYwMDhmODE1IDEwMDY0NA0KKy0tLSBhL2RyaXZlcnMvbmV0L3dpcmVs ZXNzL2F0aC9hdGgxMGsvbWFjLmMNCisrKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRo MTBrL21hYy5jDQorQEAgLTE2OCw2ICsxNjgsMTEgQEAgaW50IGF0aDEwa19tb2RwYXJhbV90YXJn ZXRfbnVtX3BlZXJzX2N0ID0gMTI4Ow0KKyBtb2R1bGVfcGFyYW1fbmFtZWQobnVtX3BlZXJzX2N0 LCBhdGgxMGtfbW9kcGFyYW1fdGFyZ2V0X251bV9wZWVyc19jdCwgaW50LCAwNDQ0KTsNCisgTU9E VUxFX1BBUk1fREVTQyhudW1fcGVlcnNfY3QsICJNYXhpbXVtIHBlZXJzIHRvIHJlcXVlc3QgZnJv bSBmaXJtd2FyZSIpOw0KKyANCisrLyogVGhlc2UgY29uc3VtZSBhIGZhaXIgYml0IG9mIFJBTSBv biB0YXJnZXQuICovDQorK2ludCBhdGgxMGtfbW9kcGFyYW1fdGFyZ2V0X251bV9tc2R1X2Rlc2Nf Y3QgPSA2ODA7DQorK21vZHVsZV9wYXJhbV9uYW1lZChudW1fbXNkdV9kZXNjX2N0LCBhdGgxMGtf bW9kcGFyYW1fdGFyZ2V0X251bV9tc2R1X2Rlc2NfY3QsIGludCwgMDQ0NCk7DQorK01PRFVMRV9Q QVJNX0RFU0MobnVtX21zZHVfZGVzY19jdCwgIk1heGltdW0gTVNEVSBEZXNjcmlwdG9ycyBpbiBm aXJtd2FyZSAobXVzdCBiZSBtdWx0aXBsZSBvZiA4KSIpOw0KKysNCisgLyoqKioqKioqKiovDQor IC8qIENyeXB0byAqLw0KKyAvKioqKioqKioqKi8NCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQv d2lyZWxlc3MvYXRoL2F0aDEway9tYWMuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgx MGsvbWFjLmgNCitpbmRleCA2ZGI0MGJkN2QwOTguLjQ0OTcwMDJlOWQzMSAxMDA2NDQNCistLS0g YS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL21hYy5oDQorKysrIGIvZHJpdmVycy9u ZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMuaA0KK0BAIC0yOSw2ICsyOSw3IEBAIGVudW0gd21p X3Rsdl90eF9wYXVzZV9hY3Rpb247DQorIGV4dGVybiBpbnQgYXRoMTBrX21vZHBhcmFtX25vaHdj cnlwdDsNCisgZXh0ZXJuIGludCBhdGgxMGtfbW9kcGFyYW1fdGFyZ2V0X251bV92ZGV2c19jdDsN CisgZXh0ZXJuIGludCBhdGgxMGtfbW9kcGFyYW1fdGFyZ2V0X251bV9wZWVyc19jdDsNCisrZXh0 ZXJuIGludCBhdGgxMGtfbW9kcGFyYW1fdGFyZ2V0X251bV9tc2R1X2Rlc2NfY3Q7DQorIA0KKyBz dHJ1Y3QgYXRoMTBrX2dlbmVyaWNfaXRlciB7DQorIAlzdHJ1Y3QgYXRoMTBrICphcjsNCmRpZmYg LS1naXQgYS9wYWNrYWdlL2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDc1LWF0aDEway1y ZWdpc3Rlci1hcy1zdy1jcnlwdC1jYXBhYmxlLWlmLXVzaW5nLXByb3Blci0ucGF0Y2ggYi9wYWNr YWdlL2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDc1LWF0aDEway1yZWdpc3Rlci1hcy1z dy1jcnlwdC1jYXBhYmxlLWlmLXVzaW5nLXByb3Blci0ucGF0Y2gNCm5ldyBmaWxlIG1vZGUgMTAw NjQ0DQppbmRleCAwMDAwMDAwLi5lNWUyMDI4DQotLS0gL2Rldi9udWxsDQorKysgYi9wYWNrYWdl L2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDc1LWF0aDEway1yZWdpc3Rlci1hcy1zdy1j cnlwdC1jYXBhYmxlLWlmLXVzaW5nLXByb3Blci0ucGF0Y2gNCkBAIC0wLDAgKzEsNDEgQEANCitG cm9tOiBCZW4gR3JlZWFyIDxncmVlYXJiQGNhbmRlbGF0ZWNoLmNvbT4NCitEYXRlOiBUdWUsIDMx IE1hciAyMDE1IDE1OjE2OjM1IC0wNzAwDQorU3ViamVjdDogW1BBVENIXSBhdGgxMGs6IHJlZ2lz dGVyIGFzIHN3LWNyeXB0IGNhcGFibGUgaWYgdXNpbmcgcHJvcGVyIENUIGZpcm13YXJlLg0KKw0K K1RoaXMgbGV0cyB1cyBkbyBTVy1jcnlwdCBhcyB3ZSBjb3VsZCBpbiBwcmV2aW91cyBrZXJuZWxz Lg0KKw0KK1NpZ25lZC1vZmYtYnk6IEJlbiBHcmVlYXIgPGdyZWVhcmJAY2FuZGVsYXRlY2guY29t Pg0KKy0tLQ0KKyBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL21hYy5jIHwgMTEgKysr KysrKysrKy0NCisgMSBmaWxlIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24o LSkNCisNCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMu YyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvbWFjLmMNCitpbmRleCBhZWQ2ZjAw OGY4MTUuLjgwNGZiNDQ1NjU1ZCAxMDA2NDQNCistLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9h dGgvYXRoMTBrL21hYy5jDQorKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9t YWMuYw0KK0BAIC00NzkzLDggKzQ3OTMsMTIgQEAgc3RhdGljIGludCBhdGgxMGtfc2V0X2tleShz dHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgZW51bSBzZXRfa2V5X2NtZCBjbWQsDQorIAlpZiAoa2V5 LT5jaXBoZXIgPT0gV0xBTl9DSVBIRVJfU1VJVEVfQUVTX0NNQUMpDQorIAkJcmV0dXJuIDE7DQor IA0KKy0JaWYgKGtleS0+a2V5aWR4ID4gV01JX01BWF9LRVlfSU5ERVgpDQorKwlpZiAoa2V5LT5r ZXlpZHggPiBXTUlfTUFYX0tFWV9JTkRFWCkgew0KKysJCWlmIChjbWQgIT0gRElTQUJMRV9LRVkp DQorKwkJCWF0aDEwa193YXJuKGFyLCAiZmFpbGVkIHRvIGluc3RhbGwga2V5LCBpZHggb3V0IG9m IHJhbmdlOiAlZCA+ICVkLCB2ZGV2OiAlZFxuIiwNCisrCQkJCSAgICBrZXktPmtleWlkeCwgV01J X01BWF9LRVlfSU5ERVgsIGFydmlmLT52ZGV2X2lkKTsNCisgCQlyZXR1cm4gLUVOT1NQQzsNCisr CX0NCisgDQorIAltdXRleF9sb2NrKCZhci0+Y29uZl9tdXRleCk7DQorIA0KK0BAIC03MDQxLDYg KzcwNDUsMTEgQEAgaW50IGF0aDEwa19tYWNfcmVnaXN0ZXIoc3RydWN0IGF0aDEwayAqYXIpDQor IAkJCWFyLT5ody0+d2lwaHktPm5faWZhY2VfY29tYmluYXRpb25zID0NCisgCQkJCUFSUkFZX1NJ WkUoYXRoMTBrXzEweF9jdF9pZl9jb21iKTsNCisgCQkJYXItPmh3LT53aXBoeS0+aW50ZXJmYWNl X21vZGVzIHw9IEJJVChOTDgwMjExX0lGVFlQRV9BREhPQyk7DQorKw0KKysJCQkvKiBDVCBmaXJt d2FyZSBjYW4gZG8gdHgtc3ctY3J5cHQgaWYgcHJvcGVybHkgY29uZmlndXJlZCAqLw0KKysJCQlp ZiAodGVzdF9iaXQoQVRIMTBLX0ZXX0ZFQVRVUkVfQ1RfUlhTV0NSWVBULCBhci0+ZndfZmVhdHVy ZXMpICYmDQorKwkJCSAgICBhdGgxMGtfbW9kcGFyYW1fbm9od2NyeXB0KQ0KKysJCQkJX19jbGVh cl9iaXQoSUVFRTgwMjExX0hXX1NXX0NSWVBUT19DT05UUk9MLCBhci0+aHctPmZsYWdzKTsNCisg CQl9IGVsc2Ugew0KKyAJCQlhci0+aHctPndpcGh5LT5pZmFjZV9jb21iaW5hdGlvbnMgPSBhdGgx MGtfMTB4X2lmX2NvbWI7DQorIAkJCWFyLT5ody0+d2lwaHktPm5faWZhY2VfY29tYmluYXRpb25z ID0NCmRpZmYgLS1naXQgYS9wYWNrYWdlL2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDc2 LXdpcmVsZXNzLWFkZC1wcl9pbmZvLWRlYnVnZ2luZy1mb3Ita2V5LWFuZC1pZi1jb21iby0ucGF0 Y2ggYi9wYWNrYWdlL2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDc2LXdpcmVsZXNzLWFk ZC1wcl9pbmZvLWRlYnVnZ2luZy1mb3Ita2V5LWFuZC1pZi1jb21iby0ucGF0Y2gNCm5ldyBmaWxl IG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwLi40NjA5ODRiDQotLS0gL2Rldi9udWxsDQorKysg Yi9wYWNrYWdlL2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDc2LXdpcmVsZXNzLWFkZC1w cl9pbmZvLWRlYnVnZ2luZy1mb3Ita2V5LWFuZC1pZi1jb21iby0ucGF0Y2gNCkBAIC0wLDAgKzEs MTk3IEBADQorRnJvbTogQmVuIEdyZWVhciA8Z3JlZWFyYkBjYW5kZWxhdGVjaC5jb20+DQorRGF0 ZTogRnJpLCAxMCBBcHIgMjAxNSAwOTo1Nzo0MCAtMDcwMA0KK1N1YmplY3Q6IFtQQVRDSF0gd2ly ZWxlc3M6IGFkZCBwcl9pbmZvIGRlYnVnZ2luZyBmb3Iga2V5IGFuZCBpZi1jb21ibyBlcnJvcnMu DQorDQorVGhpcyBtYWtlcyBpdCBlYXNpZXIgZm9yIHVzZXJzIHRvIGtub3cgd2h5IGNlcnRhaW4g QVBJIGNhbGxzDQorZmFpbGVkLg0KKw0KK1NpZ25lZC1vZmYtYnk6IEJlbiBHcmVlYXIgPGdyZWVh cmJAY2FuZGVsYXRlY2guY29tPg0KKy0tLQ0KKyBuZXQvd2lyZWxlc3MvdXRpbC5jIHwgODIgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0NCisgMSBm aWxlIGNoYW5nZWQsIDY1IGluc2VydGlvbnMoKyksIDE3IGRlbGV0aW9ucygtKQ0KKw0KK2RpZmYg LS1naXQgYS9uZXQvd2lyZWxlc3MvdXRpbC5jIGIvbmV0L3dpcmVsZXNzL3V0aWwuYw0KK2luZGV4 IGJhZjcyMThjZWMxNS4uNGIwMjE1ZmU4MzBmIDEwMDY0NA0KKy0tLSBhL25ldC93aXJlbGVzcy91 dGlsLmMNCisrKysgYi9uZXQvd2lyZWxlc3MvdXRpbC5jDQorQEAgLTIxOCwxNCArMjE4LDIxIEBA IGludCBjZmc4MDIxMV92YWxpZGF0ZV9rZXlfc2V0dGluZ3Moc3RydWN0IGNmZzgwMjExX3JlZ2lz dGVyZWRfZGV2aWNlICpyZGV2LA0KKyAJCQkJICAgc3RydWN0IGtleV9wYXJhbXMgKnBhcmFtcywg aW50IGtleV9pZHgsDQorIAkJCQkgICBib29sIHBhaXJ3aXNlLCBjb25zdCB1OCAqbWFjX2FkZHIp DQorIHsNCistCWlmIChrZXlfaWR4ID4gNSkNCisrCWlmIChrZXlfaWR4ID4gNSkgew0KKysJCXBy X2luZm8oInZhbGlkYXRlLWtleTogIGlkeCBpcyA+IDU6ICVkXG4iLCBrZXlfaWR4KTsNCisgCQly ZXR1cm4gLUVJTlZBTDsNCisrCX0NCisgDQorLQlpZiAoIXBhaXJ3aXNlICYmIG1hY19hZGRyICYm ICEocmRldi0+d2lwaHkuZmxhZ3MgJiBXSVBIWV9GTEFHX0lCU1NfUlNOKSkNCisrCWlmICghcGFp cndpc2UgJiYgbWFjX2FkZHIgJiYgIShyZGV2LT53aXBoeS5mbGFncyAmIFdJUEhZX0ZMQUdfSUJT U19SU04pKSB7DQorKwkJcHJfaW5mbygidmFsaWRhdGUta2V5OiAgcGFpcndpc2U6ICVkICBtYWNf YWRkcjogJXBNICByZGV2LT5mbGFnczogMHgleFxuIiwNCisrCQkJKGludClwYWlyd2lzZSwgbWFj X2FkZHIsIHJkZXYtPndpcGh5LmZsYWdzKTsNCisgCQlyZXR1cm4gLUVJTlZBTDsNCisrCX0NCisg DQorLQlpZiAocGFpcndpc2UgJiYgIW1hY19hZGRyKQ0KKysJaWYgKHBhaXJ3aXNlICYmICFtYWNf YWRkcikgew0KKysJCXByX2luZm8oInZhbGlkYXRlLWtleTogcGFpcndpc2UgYW5kIE5PVCBtYWMt YWRkci5cbiIpOw0KKyAJCXJldHVybiAtRUlOVkFMOw0KKysJfQ0KKyANCisgCXN3aXRjaCAocGFy YW1zLT5jaXBoZXIpIHsNCisgCWNhc2UgV0xBTl9DSVBIRVJfU1VJVEVfVEtJUDoNCitAQCAtMjM5 LDE2ICsyNDYsMjAgQEAgaW50IGNmZzgwMjExX3ZhbGlkYXRlX2tleV9zZXR0aW5ncyhzdHJ1Y3Qg Y2ZnODAyMTFfcmVnaXN0ZXJlZF9kZXZpY2UgKnJkZXYsDQorIAkJICogc3BlY2lmaWMgY2lwaGVy cyB0aGlzIHNob3VsZCBiZSB2YWxpZGF0ZWQgaW4gdGhlIGRyaXZlciBvcg0KKyAJCSAqIGhhcmR3 YXJlIGxldmVsIC0gYnV0IDgwMi4xMWkgY2xlYXJseSBzcGVjaWZpZXMgdG8gdXNlIHplcm8pDQor IAkJICovDQorLQkJaWYgKHBhaXJ3aXNlICYmIGtleV9pZHgpDQorKwkJaWYgKHBhaXJ3aXNlICYm IGtleV9pZHgpIHsNCisrCQkJcHJfaW5mbygidmFsaWRhdGUta2V5OiAgcGFpcndpc2UgJiYga2V5 LWlkeCwgZm9yIFRLSVAvW0NHXUNNUCpcbiIpOw0KKyAJCQlyZXR1cm4gLUVJTlZBTDsNCisrCQl9 DQorIAkJYnJlYWs7DQorIAljYXNlIFdMQU5fQ0lQSEVSX1NVSVRFX0FFU19DTUFDOg0KKyAJY2Fz ZSBXTEFOX0NJUEhFUl9TVUlURV9CSVBfQ01BQ18yNTY6DQorIAljYXNlIFdMQU5fQ0lQSEVSX1NV SVRFX0JJUF9HTUFDXzEyODoNCisgCWNhc2UgV0xBTl9DSVBIRVJfU1VJVEVfQklQX0dNQUNfMjU2 Og0KKyAJCS8qIERpc2FsbG93IEJJUCAoZ3JvdXAtb25seSkgY2lwaGVyIGFzIHBhaXJ3aXNlIGNp cGhlciAqLw0KKy0JCWlmIChwYWlyd2lzZSkNCisrCQlpZiAocGFpcndpc2UpIHsNCisrCQkJcHJf aW5mbygidmFsaWRhdGUta2V5OiBCSVAgYXMgcGFpcndpc2UgY2lwaGVyXG4iKTsNCisgCQkJcmV0 dXJuIC1FSU5WQUw7DQorKwkJfQ0KKyAJCWJyZWFrOw0KKyAJZGVmYXVsdDoNCisgCQlicmVhazsN CitAQCAtMzE1LDYgKzMyNiw3IEBAIGludCBjZmc4MDIxMV92YWxpZGF0ZV9rZXlfc2V0dGluZ3Mo c3RydWN0IGNmZzgwMjExX3JlZ2lzdGVyZWRfZGV2aWNlICpyZGV2LA0KKyAJCWNhc2UgV0xBTl9D SVBIRVJfU1VJVEVfV0VQNDA6DQorIAkJY2FzZSBXTEFOX0NJUEhFUl9TVUlURV9XRVAxMDQ6DQor IAkJCS8qIFRoZXNlIGNpcGhlcnMgZG8gbm90IHVzZSBrZXkgc2VxdWVuY2UgKi8NCisrCQkJcHJf aW5mbygidmFsaWRhdGUta2V5OiAgV0VQIGhhZCBwYXJhbXMtPmNpcGhlclxuIik7DQorIAkJCXJl dHVybiAtRUlOVkFMOw0KKyAJCWNhc2UgV0xBTl9DSVBIRVJfU1VJVEVfVEtJUDoNCisgCQljYXNl IFdMQU5fQ0lQSEVSX1NVSVRFX0NDTVA6DQorQEAgLTMyNSwxNCArMzM3LDE4IEBAIGludCBjZmc4 MDIxMV92YWxpZGF0ZV9rZXlfc2V0dGluZ3Moc3RydWN0IGNmZzgwMjExX3JlZ2lzdGVyZWRfZGV2 aWNlICpyZGV2LA0KKyAJCWNhc2UgV0xBTl9DSVBIRVJfU1VJVEVfQklQX0NNQUNfMjU2Og0KKyAJ CWNhc2UgV0xBTl9DSVBIRVJfU1VJVEVfQklQX0dNQUNfMTI4Og0KKyAJCWNhc2UgV0xBTl9DSVBI RVJfU1VJVEVfQklQX0dNQUNfMjU2Og0KKy0JCQlpZiAocGFyYW1zLT5zZXFfbGVuICE9IDYpDQor KwkJCWlmIChwYXJhbXMtPnNlcV9sZW4gIT0gNikgew0KKysJCQkJcHJfaW5mbygidmFsaWRhdGUt a2V5OiAgSW52YWxpZCBzZXEtbGVuOiAlZCAhPSA2XG4iLCBwYXJhbXMtPnNlcV9sZW4pOw0KKyAJ CQkJcmV0dXJuIC1FSU5WQUw7DQorKwkJCX0NCisgCQkJYnJlYWs7DQorIAkJfQ0KKyAJfQ0KKyAN CistCWlmICghY2ZnODAyMTFfc3VwcG9ydGVkX2NpcGhlcl9zdWl0ZSgmcmRldi0+d2lwaHksIHBh cmFtcy0+Y2lwaGVyKSkNCisrCWlmICghY2ZnODAyMTFfc3VwcG9ydGVkX2NpcGhlcl9zdWl0ZSgm cmRldi0+d2lwaHksIHBhcmFtcy0+Y2lwaGVyKSkgew0KKysJCXByX2luZm8oInZhbGlkYXRlLWtl eTogIGNpcGhlciBzdWl0ZSBub3Qgc3VwcG9ydGVkOiAlZFxuIiwgcGFyYW1zLT5jaXBoZXIpOw0K KyAJCXJldHVybiAtRUlOVkFMOw0KKysJfQ0KKyANCisgCXJldHVybiAwOw0KKyB9DQorQEAgLTE1 MzUsNiArMTU1MSwxMCBAQCBpbnQgY2ZnODAyMTFfaXRlcl9jb21iaW5hdGlvbnMoc3RydWN0IHdp cGh5ICp3aXBoeSwNCisgCQkJdXNlZF9pZnR5cGVzIHw9IEJJVChpZnR5cGUpOw0KKyAJfQ0KKyAN CisrCS8qcHJfaW5mbygiJXM6IGl0ZXItY29tYiwgcmFkYXItZGV0ZWN0OiAlZCAgY29tYmluYXRp b25zOiAlZCAgbnVtX2ludGVyZmFjZXM6ICVkXG4iLA0KKysJCXdpcGh5X25hbWUod2lwaHkpLCBy YWRhcl9kZXRlY3QsIHdpcGh5LT5uX2lmYWNlX2NvbWJpbmF0aW9ucywNCisrCQludW1faW50ZXJm YWNlcyk7DQorKwkqLw0KKyAJZm9yIChpID0gMDsgaSA8IHdpcGh5LT5uX2lmYWNlX2NvbWJpbmF0 aW9uczsgaSsrKSB7DQorIAkJY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9jb21iaW5hdGlv biAqYzsNCisgCQlzdHJ1Y3QgaWVlZTgwMjExX2lmYWNlX2xpbWl0ICpsaW1pdHM7DQorQEAgLTE1 NDIsMTAgKzE1NjIsMTcgQEAgaW50IGNmZzgwMjExX2l0ZXJfY29tYmluYXRpb25zKHN0cnVjdCB3 aXBoeSAqd2lwaHksDQorIA0KKyAJCWMgPSAmd2lwaHktPmlmYWNlX2NvbWJpbmF0aW9uc1tpXTsN CisgDQorLQkJaWYgKG51bV9pbnRlcmZhY2VzID4gYy0+bWF4X2ludGVyZmFjZXMpDQorKwkJaWYg KG51bV9pbnRlcmZhY2VzID4gYy0+bWF4X2ludGVyZmFjZXMpIHsNCisrCQkJcHJfaW5mbygiJWk6 IGl0ZXItY29tYiwgbnVtID4gbWF4OiAlZCA+ICVkXG4iLA0KKysJCQkgIGksIG51bV9pbnRlcmZh Y2VzLCBjLT5tYXhfaW50ZXJmYWNlcyk7DQorIAkJCWNvbnRpbnVlOw0KKy0JCWlmIChudW1fZGlm ZmVyZW50X2NoYW5uZWxzID4gYy0+bnVtX2RpZmZlcmVudF9jaGFubmVscykNCisrCQl9DQorKw0K KysJCWlmIChudW1fZGlmZmVyZW50X2NoYW5uZWxzID4gYy0+bnVtX2RpZmZlcmVudF9jaGFubmVs cykgew0KKysJCQlwcl9pbmZvKCIlaTogaXRlci1jb21iLCBjaGFubmVscyBkaWZmZXI6ICVkID4g JWRcbiIsDQorKwkJCQlpLCBudW1fZGlmZmVyZW50X2NoYW5uZWxzLCBjLT5udW1fZGlmZmVyZW50 X2NoYW5uZWxzKTsNCisgCQkJY29udGludWU7DQorKwkJfQ0KKyANCisgCQlsaW1pdHMgPSBrbWVt ZHVwKGMtPmxpbWl0cywgc2l6ZW9mKGxpbWl0c1swXSkgKiBjLT5uX2xpbWl0cywNCisgCQkJCSBH RlBfS0VSTkVMKTsNCitAQCAtMTU1MywzMiArMTU4MCw0OSBAQCBpbnQgY2ZnODAyMTFfaXRlcl9j b21iaW5hdGlvbnMoc3RydWN0IHdpcGh5ICp3aXBoeSwNCisgCQkJcmV0dXJuIC1FTk9NRU07DQor IA0KKyAJCWZvciAoaWZ0eXBlID0gMDsgaWZ0eXBlIDwgTlVNX05MODAyMTFfSUZUWVBFUzsgaWZ0 eXBlKyspIHsNCistCQkJaWYgKHdpcGh5LT5zb2Z0d2FyZV9pZnR5cGVzICYgQklUKGlmdHlwZSkp DQorKwkJCWlmICh3aXBoeS0+c29mdHdhcmVfaWZ0eXBlcyAmIEJJVChpZnR5cGUpKSB7DQorKwkJ CQkvKnByX2luZm8oIiVpOiB0eXBlOiAlZCAgc3ctaWZ0eXBlczogMHgleFxuIiwNCisrCQkJCSAg aSwgaWZ0eXBlLCB3aXBoeS0+c29mdHdhcmVfaWZ0eXBlcyk7Ki8NCisgCQkJCWNvbnRpbnVlOw0K KysJCQl9DQorIAkJCWZvciAoaiA9IDA7IGogPCBjLT5uX2xpbWl0czsgaisrKSB7DQorIAkJCQlh bGxfaWZ0eXBlcyB8PSBsaW1pdHNbal0udHlwZXM7DQorLQkJCQlpZiAoIShsaW1pdHNbal0udHlw ZXMgJiBCSVQoaWZ0eXBlKSkpDQorKwkJCQlpZiAoIShsaW1pdHNbal0udHlwZXMgJiBCSVQoaWZ0 eXBlKSkpIHsNCisrCQkJCQkvKnByX2luZm8oIiVpOiB0eXBlOiAlaSAlaTogIGxpbWl0cy10eXBl czogMHgleFxuIiwNCisrCQkJCQkgIGksIGlmdHlwZSwgaiwgbGltaXRzW2pdLnR5cGVzKTsqLw0K KyAJCQkJCWNvbnRpbnVlOw0KKy0JCQkJaWYgKGxpbWl0c1tqXS5tYXggPCBpZnR5cGVfbnVtW2lm dHlwZV0pDQorKwkJCQl9DQorKwkJCQlpZiAobGltaXRzW2pdLm1heCA8IGlmdHlwZV9udW1baWZ0 eXBlXSkgew0KKysJCQkJCXByX2luZm8oIiVpOiAlaTogbGltaXQtbWF4OiAlZCAgaWZ0eXBlLW51 bTogJWRcbiIsDQorKwkJCQkJCWksIGosIGxpbWl0c1tqXS5tYXgsIGlmdHlwZV9udW1baWZ0eXBl XSk7DQorIAkJCQkJZ290byBjb250Ow0KKysJCQkJfQ0KKyAJCQkJbGltaXRzW2pdLm1heCAtPSBp ZnR5cGVfbnVtW2lmdHlwZV07DQorIAkJCX0NCisgCQl9DQorIA0KKy0JCWlmIChyYWRhcl9kZXRl Y3QgIT0gKGMtPnJhZGFyX2RldGVjdF93aWR0aHMgJiByYWRhcl9kZXRlY3QpKQ0KKysJCWlmIChy YWRhcl9kZXRlY3QgIT0gKGMtPnJhZGFyX2RldGVjdF93aWR0aHMgJiByYWRhcl9kZXRlY3QpKSB7 DQorKwkJCXByX2luZm8oIiVpOiBpdGVyLWNvbWIgcmFkYXItZGV0ZWN0OiAlZCAgJWRcbiIsDQor KwkJCQlpLCByYWRhcl9kZXRlY3QsIGMtPnJhZGFyX2RldGVjdF93aWR0aHMpOw0KKyAJCQlnb3Rv IGNvbnQ7DQorKwkJfQ0KKyANCisgCQlpZiAocmFkYXJfZGV0ZWN0ICYmIGMtPnJhZGFyX2RldGVj dF9yZWdpb25zICYmDQorLQkJICAgICEoYy0+cmFkYXJfZGV0ZWN0X3JlZ2lvbnMgJiBCSVQocmVn aW9uKSkpDQorKwkJICAgICEoYy0+cmFkYXJfZGV0ZWN0X3JlZ2lvbnMgJiBCSVQocmVnaW9uKSkp IHsNCisrCQkJcHJfaW5mbygiJWk6IGl0ZXItY29tYiwgcmFkYXIgZGV0ZWN0IHJlZ2lvbnMgbWlz bWF0Y2hcbiIsIGkpOw0KKyAJCQlnb3RvIGNvbnQ7DQorKwkJfQ0KKyANCisgCQkvKiBGaW5hbGx5 IGNoZWNrIHRoYXQgYWxsIGlmdHlwZXMgdGhhdCB3ZSdyZSBjdXJyZW50bHkNCisgCQkgKiB1c2lu ZyBhcmUgYWN0dWFsbHkgcGFydCBvZiB0aGlzIGNvbWJpbmF0aW9uLiBJZiB0aGV5DQorIAkJICog YXJlbid0IHRoZW4gd2UgY2FuJ3QgdXNlIHRoaXMgY29tYmluYXRpb24gYW5kIGhhdmUNCisgCQkg KiB0byBjb250aW51ZSB0byB0aGUgbmV4dC4NCisgCQkgKi8NCistCQlpZiAoKGFsbF9pZnR5cGVz ICYgdXNlZF9pZnR5cGVzKSAhPSB1c2VkX2lmdHlwZXMpDQorKwkJaWYgKChhbGxfaWZ0eXBlcyAm IHVzZWRfaWZ0eXBlcykgIT0gdXNlZF9pZnR5cGVzKSB7DQorKwkJCS8qcHJfaW5mbygiJWk6IGFs bC1pZnR5cGVzOiAlZCAgdXNlZC1pZnR5cGVzOiAlZFxuIiwNCisrCQkJICBpLCBhbGxfaWZ0eXBl cywgdXNlZF9pZnR5cGVzKTsqLw0KKyAJCQlnb3RvIGNvbnQ7DQorKwkJfQ0KKyANCisgCQkvKiBU aGlzIGNvbWJpbmF0aW9uIGNvdmVyZWQgYWxsIGludGVyZmFjZSB0eXBlcyBhbmQNCisgCQkgKiBz dXBwb3J0ZWQgdGhlIHJlcXVlc3RlZCBudW1iZXJzLCBzbyB3ZSdyZSBnb29kLg0KK0BAIC0xNjEx LDEwICsxNjU1LDE0IEBAIGludCBjZmc4MDIxMV9jaGVja19jb21iaW5hdGlvbnMoc3RydWN0IHdp cGh5ICp3aXBoeSwNCisgCWVyciA9IGNmZzgwMjExX2l0ZXJfY29tYmluYXRpb25zKHdpcGh5LCBu dW1fZGlmZmVyZW50X2NoYW5uZWxzLA0KKyAJCQkJCSByYWRhcl9kZXRlY3QsIGlmdHlwZV9udW0s DQorIAkJCQkJIGNmZzgwMjExX2l0ZXJfc3VtX2lmY29tYnMsICZudW0pOw0KKy0JaWYgKGVycikN CisrCWlmIChlcnIpIHsNCisrCQlwcl9pbmZvKCJjZmctY29tYi1jaGVjazogZmFpbGVkIHRvIGl0 ZXJhdGUgY29tYmluYXRpb25zXG4iKTsNCisgCQlyZXR1cm4gZXJyOw0KKy0JaWYgKG51bSA9PSAw KQ0KKysJfQ0KKysJaWYgKG51bSA9PSAwKSB7DQorKwkJcHJfaW5mbygiY2ZnLWNvbWItY2hlY2s6 IGl0ZXItY29tYmluYXRpb25zIHJldHVybmVkIG51bT09MFxuIik7DQorIAkJcmV0dXJuIC1FQlVT WTsNCisrCX0NCisgDQorIAlyZXR1cm4gMDsNCisgfQ0KZGlmZiAtLWdpdCBhL3BhY2thZ2Uva2Vy bmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAwNzctd2lyZWxlc3MtYWRkLXByX2luZm8tZGVidWdn aW5nLWZvci1rZXlzLWFuZC1pZi1jb21iby5wYXRjaCBiL3BhY2thZ2Uva2VybmVsL21hYzgwMjEx L3BhdGNoZXMvOTk5LTAwNzctd2lyZWxlc3MtYWRkLXByX2luZm8tZGVidWdnaW5nLWZvci1rZXlz LWFuZC1pZi1jb21iby5wYXRjaA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAu LjQ4NDE2MTANCi0tLSAvZGV2L251bGwNCisrKyBiL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3Bh dGNoZXMvOTk5LTAwNzctd2lyZWxlc3MtYWRkLXByX2luZm8tZGVidWdnaW5nLWZvci1rZXlzLWFu ZC1pZi1jb21iby5wYXRjaA0KQEAgLTAsMCArMSwxNDIgQEANCitGcm9tOiBCZW4gR3JlZWFyIDxn cmVlYXJiQGNhbmRlbGF0ZWNoLmNvbT4NCitEYXRlOiBGcmksIDEwIEFwciAyMDE1IDA5OjU5OjEx IC0wNzAwDQorU3ViamVjdDogW1BBVENIXSB3aXJlbGVzczogYWRkIHByX2luZm8gZGVidWdnaW5n IGZvciBrZXlzIGFuZCBpZi1jb21ibyBpc3N1ZXMuDQorDQorSGVscHMgdXNlcnMga25vdyB3aHkg Y2VydGFpbiBBUEkgY2FsbHMgZmFpbC4NCisNCitTaWduZWQtb2ZmLWJ5OiBCZW4gR3JlZWFyIDxn cmVlYXJiQGNhbmRlbGF0ZWNoLmNvbT4NCistLS0NCisgbmV0L3dpcmVsZXNzL25sODAyMTEuYyB8 IDUzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tDQor IDEgZmlsZSBjaGFuZ2VkLCA0MSBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkNCisNCitk aWZmIC0tZ2l0IGEvbmV0L3dpcmVsZXNzL25sODAyMTEuYyBiL25ldC93aXJlbGVzcy9ubDgwMjEx LmMNCitpbmRleCBhNDVlMTdlNGMyN2QuLmM2MzI4MjI3NTgzMyAxMDA2NDQNCistLS0gYS9uZXQv d2lyZWxlc3Mvbmw4MDIxMS5jDQorKysrIGIvbmV0L3dpcmVsZXNzL25sODAyMTEuYw0KK0BAIC0y OTM1LDE1ICsyOTM1LDIxIEBAIHN0YXRpYyBpbnQgbmw4MDIxMV9zZXRfa2V5KHN0cnVjdCBza19i dWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pDQorIAlzdHJ1Y3QgbmV0X2RldmljZSAq ZGV2ID0gaW5mby0+dXNlcl9wdHJbMV07DQorIA0KKyAJZXJyID0gbmw4MDIxMV9wYXJzZV9rZXko aW5mbywgJmtleSk7DQorLQlpZiAoZXJyKQ0KKysJaWYgKGVycikgew0KKysJCXByX2luZm8oInNl dC1rZXk6ICBGYWlsZWQgdG8gcGFyc2U6ICVkXG4iLCBlcnIpOw0KKyAJCXJldHVybiBlcnI7DQor Kwl9DQorIA0KKy0JaWYgKGtleS5pZHggPCAwKQ0KKysJaWYgKGtleS5pZHggPCAwKSB7DQorKwkJ cHJfaW5mbygic2V0LWtleSwgaWR4IGlzIG5lZ2F0aXZlOiAlZFxuIiwga2V5LmlkeCk7DQorIAkJ cmV0dXJuIC1FSU5WQUw7DQorKwl9DQorIA0KKyAJLyogb25seSBzdXBwb3J0IHNldHRpbmcgZGVm YXVsdCBrZXkgKi8NCistCWlmICgha2V5LmRlZiAmJiAha2V5LmRlZm1nbXQpDQorKwlpZiAoIWtl eS5kZWYgJiYgIWtleS5kZWZtZ210KSB7DQorKwkJcHJfaW5mbygic2V0LWtleTogdHJpZWQgdG8g c2V0IG5vbi1kZWZhdWx0IGtleS5cbiIpOw0KKyAJCXJldHVybiAtRUlOVkFMOw0KKysJfQ0KKyAN CisgCXdkZXZfbG9jayhkZXYtPmllZWU4MDIxMV9wdHIpOw0KKyANCitAQCAtMjk1NCwyMCArMjk2 MCwyNiBAQCBzdGF0aWMgaW50IG5sODAyMTFfc2V0X2tleShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBz dHJ1Y3QgZ2VubF9pbmZvICppbmZvKQ0KKyAJCX0NCisgDQorIAkJZXJyID0gbmw4MDIxMV9rZXlf YWxsb3dlZChkZXYtPmllZWU4MDIxMV9wdHIpOw0KKy0JCWlmIChlcnIpDQorKwkJaWYgKGVycikg ew0KKysJCQlwcl9pbmZvKCJzZXQta2V5OiAga2V5IGlzIG5vdCBhbGxvd2VkOiAlZFxuIiwgZXJy KTsNCisgCQkJZ290byBvdXQ7DQorKwkJfQ0KKyANCisgCQllcnIgPSByZGV2X3NldF9kZWZhdWx0 X2tleShyZGV2LCBkZXYsIGtleS5pZHgsDQorIAkJCQkJCSBrZXkuZGVmX3VuaSwga2V5LmRlZl9t dWx0aSk7DQorIA0KKy0JCWlmIChlcnIpDQorKwkJaWYgKGVycikgew0KKysJCQlwcl9pbmZvKCJz ZXQtZGVmYXVsdC1rZXkgaGFkIGVycm9yOiAlZFxuIiwgZXJyKTsNCisgCQkJZ290byBvdXQ7DQor KwkJfQ0KKyANCisgI2lmZGVmIENQVENGR19DRkc4MDIxMV9XRVhUDQorIAkJZGV2LT5pZWVlODAy MTFfcHRyLT53ZXh0LmRlZmF1bHRfa2V5ID0ga2V5LmlkeDsNCisgI2VuZGlmDQorIAl9IGVsc2Ug ew0KKyAJCWlmIChrZXkuZGVmX3VuaSB8fCAha2V5LmRlZl9tdWx0aSkgew0KKysJCQlwcl9pbmZv KCJzZXQta2V5LCB1bmk6ICVkIG9yIG5vdCBtdWx0aTogJWRcbiIsDQorKwkJCQlrZXkuZGVmX3Vu aSwga2V5LmRlZl9tdWx0aSk7DQorIAkJCWVyciA9IC1FSU5WQUw7DQorIAkJCWdvdG8gb3V0Ow0K KyAJCX0NCitAQCAtMjk3OCwxMiArMjk5MCwxNiBAQCBzdGF0aWMgaW50IG5sODAyMTFfc2V0X2tl eShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKQ0KKyAJCX0NCisg DQorIAkJZXJyID0gbmw4MDIxMV9rZXlfYWxsb3dlZChkZXYtPmllZWU4MDIxMV9wdHIpOw0KKy0J CWlmIChlcnIpDQorKwkJaWYgKGVycikgew0KKysJCQlwcl9pbmZvKCJzZXQta2V5OiBrZXkgaXMg bm90IGFsbG93ZWQgKCFrZXkuZGVmKSwgZXJyOiAlZFxuIiwgZXJyKTsNCisgCQkJZ290byBvdXQ7 DQorKwkJfQ0KKyANCisgCQllcnIgPSByZGV2X3NldF9kZWZhdWx0X21nbXRfa2V5KHJkZXYsIGRl diwga2V5LmlkeCk7DQorLQkJaWYgKGVycikNCisrCQlpZiAoZXJyKSB7DQorKwkJCXByX2luZm8o InNldC1rZXksIHJkZXYtc2V0LWRlZmF1bHQtbWd0LWtleSBoYWQgZmFpbHVyZWQ6ICVkXG4iLCBl cnIpOw0KKyAJCQlnb3RvIG91dDsNCisrCQl9DQorIA0KKyAjaWZkZWYgQ1BUQ0ZHX0NGRzgwMjEx X1dFWFQNCisgCQlkZXYtPmllZWU4MDIxMV9wdHItPndleHQuZGVmYXVsdF9tZ210X2tleSA9IGtl eS5pZHg7DQorQEAgLTMwMDUsMTEgKzMwMjEsMTUgQEAgc3RhdGljIGludCBubDgwMjExX25ld19r ZXkoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbykNCisgCWNvbnN0 IHU4ICptYWNfYWRkciA9IE5VTEw7DQorIA0KKyAJZXJyID0gbmw4MDIxMV9wYXJzZV9rZXkoaW5m bywgJmtleSk7DQorLQlpZiAoZXJyKQ0KKysJaWYgKGVycikgew0KKysJCXByX2luZm8oIm5ldy1r ZXk6ICBwYXJzZSBmYWlsZWQ6ICVkXG4iLCBlcnIpOw0KKyAJCXJldHVybiBlcnI7DQorKwl9DQor IA0KKy0JaWYgKCFrZXkucC5rZXkpDQorKwlpZiAoIWtleS5wLmtleSkgew0KKysJCXByX2luZm8o Im5ldy1rZXk6ICBrZXkucC5rZXkgaXMgTlVMTFxuIik7DQorIAkJcmV0dXJuIC1FSU5WQUw7DQor Kwl9DQorIA0KKyAJaWYgKGluZm8tPmF0dHJzW05MODAyMTFfQVRUUl9NQUNdKQ0KKyAJCW1hY19h ZGRyID0gbmxhX2RhdGEoaW5mby0+YXR0cnNbTkw4MDIxMV9BVFRSX01BQ10pOw0KK0BAIC0zMDIz LDIzICszMDQzLDMyIEBAIHN0YXRpYyBpbnQgbmw4MDIxMV9uZXdfa2V5KHN0cnVjdCBza19idWZm ICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pDQorIA0KKyAJLyogZm9yIG5vdyAqLw0KKyAJ aWYgKGtleS50eXBlICE9IE5MODAyMTFfS0VZVFlQRV9QQUlSV0lTRSAmJg0KKy0JICAgIGtleS50 eXBlICE9IE5MODAyMTFfS0VZVFlQRV9HUk9VUCkNCisrCSAgICBrZXkudHlwZSAhPSBOTDgwMjEx X0tFWVRZUEVfR1JPVVApIHsNCisrCQlwcl9pbmZvKCJuZXcta2V5OiBpbnZhbGlkIGtleSB0eXBl OiAlZFxuIiwga2V5LnR5cGUpOw0KKyAJCXJldHVybiAtRUlOVkFMOw0KKysJfQ0KKyANCisgCWlm ICghcmRldi0+b3BzLT5hZGRfa2V5KQ0KKyAJCXJldHVybiAtRU9QTk9UU1VQUDsNCisgDQorIAlp ZiAoY2ZnODAyMTFfdmFsaWRhdGVfa2V5X3NldHRpbmdzKHJkZXYsICZrZXkucCwga2V5LmlkeCwN CisgCQkJCQkgICBrZXkudHlwZSA9PSBOTDgwMjExX0tFWVRZUEVfUEFJUldJU0UsDQorLQkJCQkJ ICAgbWFjX2FkZHIpKQ0KKysJCQkJCSAgIG1hY19hZGRyKSkgew0KKysJCXByX2luZm8oIm5ldy1r ZXk6ICB2YWxpZGF0ZSBzZXR0aW5ncyBmYWlsZWRcbiIpOw0KKyAJCXJldHVybiAtRUlOVkFMOw0K KysJfQ0KKyANCisgCXdkZXZfbG9jayhkZXYtPmllZWU4MDIxMV9wdHIpOw0KKyAJZXJyID0gbmw4 MDIxMV9rZXlfYWxsb3dlZChkZXYtPmllZWU4MDIxMV9wdHIpOw0KKy0JaWYgKCFlcnIpDQorKwlp ZiAoIWVycikgew0KKyAJCWVyciA9IHJkZXZfYWRkX2tleShyZGV2LCBkZXYsIGtleS5pZHgsDQor IAkJCQkgICBrZXkudHlwZSA9PSBOTDgwMjExX0tFWVRZUEVfUEFJUldJU0UsDQorIAkJCQkgICAg bWFjX2FkZHIsICZrZXkucCk7DQorKwkJaWYgKGVycikNCisrCQkJcHJfaW5mbygibmV3LWtleTog IHJkZXYtYWRkLWtleSBmYWlsZWQ6ICVkXG4iLCBlcnIpOw0KKysJfSBlbHNlIHsNCisrCQlwcl9p bmZvKCJuZXcta2V5OiAga2V5LWFsbG93ZWQgZmFpbGVkOiAlZFxuIiwgZXJyKTsNCisrCX0NCisg CXdkZXZfdW5sb2NrKGRldi0+aWVlZTgwMjExX3B0cik7DQorIA0KKyAJcmV0dXJuIGVycjsNCmRp ZmYgLS1naXQgYS9wYWNrYWdlL2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDc4LWF0aDEw ay1pbXByb3ZlLXdtaS1kZWJ1Z2dpbmcucGF0Y2ggYi9wYWNrYWdlL2tlcm5lbC9tYWM4MDIxMS9w YXRjaGVzLzk5OS0wMDc4LWF0aDEway1pbXByb3ZlLXdtaS1kZWJ1Z2dpbmcucGF0Y2gNCm5ldyBm aWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwLi4wNGUxMmRmDQotLS0gL2Rldi9udWxsDQor KysgYi9wYWNrYWdlL2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDc4LWF0aDEway1pbXBy b3ZlLXdtaS1kZWJ1Z2dpbmcucGF0Y2gNCkBAIC0wLDAgKzEsNDEgQEANCitGcm9tOiBCZW4gR3Jl ZWFyIDxncmVlYXJiQGNhbmRlbGF0ZWNoLmNvbT4NCitEYXRlOiBGcmksIDEwIEFwciAyMDE1IDEw OjA0OjQ2IC0wNzAwDQorU3ViamVjdDogW1BBVENIXSBhdGgxMGs6IGltcHJvdmUgd21pIGRlYnVn Z2luZy4NCisNCitIZWxwcyBmaWd1cmUgb3V0IHdoYXQgaXMgZ29pbmcgb24gd2l0aCBrZXlzIGFu ZCBzb21lDQorcmVsYXRlZCBjYWxscy4NCisNCitTaWduZWQtb2ZmLWJ5OiBCZW4gR3JlZWFyIDxn cmVlYXJiQGNhbmRlbGF0ZWNoLmNvbT4NCistLS0NCisgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRo L2F0aDEway93bWkuYyB8IDEwICsrKysrKy0tLS0NCisgMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0 aW9ucygrKSwgNCBkZWxldGlvbnMoLSkNCisNCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2ly ZWxlc3MvYXRoL2F0aDEway93bWkuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsv d21pLmMNCitpbmRleCAzZmQwNjdiM2MxN2EuLmMyZjc5YzBjZTllOCAxMDA2NDQNCistLS0gYS9k cml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS5jDQorKysrIGIvZHJpdmVycy9uZXQv d2lyZWxlc3MvYXRoL2F0aDEway93bWkuYw0KK0BAIC00NTczLDggKzQ1NzMsOSBAQCBhdGgxMGtf d21pX29wX2dlbl92ZGV2X2luc3RhbGxfa2V5KHN0cnVjdCBhdGgxMGsgKmFyLA0KKyAJCW1lbWNw eShjbWQtPmtleV9kYXRhLCBhcmctPmtleV9kYXRhLCBhcmctPmtleV9sZW4pOw0KKyANCisgCWF0 aDEwa19kYmcoYXIsIEFUSDEwS19EQkdfV01JLA0KKy0JCSAgICJ3bWkgdmRldiBpbnN0YWxsIGtl eSBpZHggJWQgY2lwaGVyICVkIGxlbiAlZFxuIiwNCistCQkgICBhcmctPmtleV9pZHgsIGFyZy0+ a2V5X2NpcGhlciwgYXJnLT5rZXlfbGVuKTsNCisrCQkgICAid21pIHZkZXYgJWQgaW5zdGFsbCBr ZXkgcGVlciAlcE0gaWR4ICVkIGNpcGhlciAlZCBsZW4gJWQgZmxhZ3MgMHgleFxuIiwNCisrCQkg ICBhcmctPnZkZXZfaWQsIGFyZy0+bWFjYWRkciwgYXJnLT5rZXlfaWR4LCBhcmctPmtleV9jaXBo ZXIsIGFyZy0+a2V5X2xlbiwNCisrCQkgICBhcmctPmtleV9mbGFncyk7DQorIAlyZXR1cm4gc2ti Ow0KKyB9DQorIA0KK0BAIC00OTU3LDkgKzQ5NTgsMTAgQEAgYXRoMTBrX3dtaV8xMF8xX29wX2dl bl9wZWVyX2Fzc29jKHN0cnVjdCBhdGgxMGsgKmFyLA0KKyAJYXRoMTBrX3dtaV9wZWVyX2Fzc29j X2ZpbGxfMTBfMShhciwgc2tiLT5kYXRhLCBhcmcpOw0KKyANCisgCWF0aDEwa19kYmcoYXIsIEFU SDEwS19EQkdfV01JLA0KKy0JCSAgICJ3bWkgcGVlciBhc3NvYyB2ZGV2ICVkIGFkZHIgJXBNICgl cylcbiIsDQorKwkJICAgIndtaSBwZWVyIGFzc29jIHZkZXYgJWQgYWRkciAlcE0gKCVzKSBmbGFn cyAweCV4XG4iLA0KKyAJCSAgIGFyZy0+dmRldl9pZCwgYXJnLT5hZGRyLA0KKy0JCSAgIGFyZy0+ cGVlcl9yZWFzc29jID8gInJlYXNzb2NpYXRlIiA6ICJuZXciKTsNCisrCQkgICBhcmctPnBlZXJf cmVhc3NvYyA/ICJyZWFzc29jaWF0ZSIgOiAibmV3IiwNCisrCQkgICBhcmctPnBlZXJfZmxhZ3Mp Ow0KKyAJcmV0dXJuIHNrYjsNCisgfQ0KKyANCmRpZmYgLS1naXQgYS9wYWNrYWdlL2tlcm5lbC9t YWM4MDIxMS9wYXRjaGVzLzk5OS0wMDc5LW1hYzgwMjExLWRlYnVnLW1lc3NhZ2VzLXJlbGF0ZWQt dG8taWYtY29tYmluYXRpb25zLnBhdGNoIGIvcGFja2FnZS9rZXJuZWwvbWFjODAyMTEvcGF0Y2hl cy85OTktMDA3OS1tYWM4MDIxMS1kZWJ1Zy1tZXNzYWdlcy1yZWxhdGVkLXRvLWlmLWNvbWJpbmF0 aW9ucy5wYXRjaA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAuLmU5YWM1NTQN Ci0tLSAvZGV2L251bGwNCisrKyBiL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5 LTAwNzktbWFjODAyMTEtZGVidWctbWVzc2FnZXMtcmVsYXRlZC10by1pZi1jb21iaW5hdGlvbnMu cGF0Y2gNCkBAIC0wLDAgKzEsNjIgQEANCitGcm9tOiBCZW4gR3JlZWFyIDxncmVlYXJiQGNhbmRl bGF0ZWNoLmNvbT4NCitEYXRlOiBGcmksIDEwIEFwciAyMDE1IDEwOjA2OjQ2IC0wNzAwDQorU3Vi amVjdDogW1BBVENIXSBtYWM4MDIxMTogZGVidWcgbWVzc2FnZXMgcmVsYXRlZCB0byBpZi1jb21i aW5hdGlvbnMuDQorDQorSGVscHMgdXNlciB1bmRlcnN0YW5kIHdoeSBBUEkgY2FsbHMgYXJlIGZh aWxpbmcuDQorDQorU2lnbmVkLW9mZi1ieTogQmVuIEdyZWVhciA8Z3JlZWFyYkBjYW5kZWxhdGVj aC5jb20+DQorLS0tDQorIG5ldC9tYWM4MDIxMS91dGlsLmMgfCAyMCArKysrKysrKysrKysrKysr LS0tLQ0KKyAxIGZpbGUgY2hhbmdlZCwgMTYgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkN CisNCitkaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL3V0aWwuYyBiL25ldC9tYWM4MDIxMS91dGls LmMNCitpbmRleCBiZjgzNDEzZTYwNjEuLjE3MTI5NzE1YmRjMCAxMDA2NDQNCistLS0gYS9uZXQv bWFjODAyMTEvdXRpbC5jDQorKysrIGIvbmV0L21hYzgwMjExL3V0aWwuYw0KK0BAIC0zMjIwLDIz ICszMjIwLDMzIEBAIGludCBpZWVlODAyMTFfY2hlY2tfY29tYmluYXRpb25zKHN0cnVjdCBpZWVl ODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLA0KKyANCisgCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmxv Y2FsLT5jaGFuY3R4X210eCk7DQorIA0KKy0JaWYgKFdBUk5fT04oaHdlaWdodDMyKHJhZGFyX2Rl dGVjdCkgPiAxKSkNCisrCWlmIChXQVJOX09OKGh3ZWlnaHQzMihyYWRhcl9kZXRlY3QpID4gMSkp IHsNCisrCQlzZGF0YV9pbmZvKHNkYXRhLCAiY29tYi1jaGVjazogZmFpbGVkIHJhZGFyLWRldGVj dDogJWRcbiIsDQorKwkJCSAgIChpbnQpKHJhZGFyX2RldGVjdCkpOw0KKyAJCXJldHVybiAtRUlO VkFMOw0KKysJfQ0KKyANCisgCWlmIChXQVJOX09OKGNoYW5kZWYgJiYgY2hhbm1vZGUgPT0gSUVF RTgwMjExX0NIQU5DVFhfU0hBUkVEICYmDQorLQkJICAgICFjaGFuZGVmLT5jaGFuKSkNCisrCQkg ICAgIWNoYW5kZWYtPmNoYW4pKSB7DQorKwkJc2RhdGFfaW5mbyhzZGF0YSwgImNvbWItY2hlY2s6 IGZhaWxlZCBjaGFudHgtc2hhcmVkIGNoZWNrXG4iKTsNCisgCQlyZXR1cm4gLUVJTlZBTDsNCisr CX0NCisgDQorIAlpZiAoY2hhbmRlZikNCisgCQludW1fZGlmZmVyZW50X2NoYW5uZWxzID0gMTsN CisgDQorLQlpZiAoV0FSTl9PTihpZnR5cGUgPj0gTlVNX05MODAyMTFfSUZUWVBFUykpDQorKwlp ZiAoV0FSTl9PTihpZnR5cGUgPj0gTlVNX05MODAyMTFfSUZUWVBFUykpIHsNCisrCQlzZGF0YV9p bmZvKHNkYXRhLCAiY29tYi1jaGVjazogZmFpbGVkIGlmdHlwZSBjaGVjazogJWRcbiIsDQorKwkJ CSAgIChpbnQpKGlmdHlwZSkpOw0KKyAJCXJldHVybiAtRUlOVkFMOw0KKysJfQ0KKyANCisgCS8q IEFsd2F5cyBhbGxvdyBzb2Z0d2FyZSBpZnR5cGVzICovDQorIAlpZiAobG9jYWwtPmh3LndpcGh5 LT5zb2Z0d2FyZV9pZnR5cGVzICYgQklUKGlmdHlwZSkpIHsNCistCQlpZiAocmFkYXJfZGV0ZWN0 KQ0KKysJCWlmIChyYWRhcl9kZXRlY3QpIHsNCisrCQkJc2RhdGFfaW5mbyhzZGF0YSwgImNvbWIt Y2hlY2s6IGZhaWxlZCBzb2Z0d2FyZS10eXBlICsgcmFkYXItZGV0ZWN0XG4iKTsNCisgCQkJcmV0 dXJuIC1FSU5WQUw7DQorKwkJfQ0KKyAJCXJldHVybiAwOw0KKyAJfQ0KKyANCitAQCAtMzI3MCw2 ICszMjgwLDggQEAgaW50IGllZWU4MDIxMV9jaGVja19jb21iaW5hdGlvbnMoc3RydWN0IGllZWU4 MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsDQorIAkJICAgIGxvY2FsLT5ody53aXBoeS0+c29mdHdh cmVfaWZ0eXBlcyAmIEJJVCh3ZGV2X2l0ZXItPmlmdHlwZSkpDQorIAkJCWNvbnRpbnVlOw0KKyAN CisrCQkvKnNkYXRhX2luZm8oc2RhdGEsICJzZGF0YV9pdGVyOiAlcyAgdHlwZTogJWQgIGlzIGFj dGl2ZVxuIiwNCisrCQkgIHNkYXRhX2l0ZXItPm5hbWUsIHdkZXZfaXRlci0+aWZ0eXBlKTsqLw0K KyAJCW51bVt3ZGV2X2l0ZXItPmlmdHlwZV0rKzsNCisgCQl0b3RhbCsrOw0KKyAJfQ0KZGlmZiAt LWdpdCBhL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAwODEtYXRoMTBrLUFk ZC10eC1yeC1ieXRlcy1jb3VudGVyLXRvLWV0aHRvb2wtc3RhdHMucGF0Y2ggYi9wYWNrYWdlL2tl cm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDgxLWF0aDEway1BZGQtdHgtcngtYnl0ZXMtY291 bnRlci10by1ldGh0b29sLXN0YXRzLnBhdGNoDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXgg MDAwMDAwMC4uYThhMGMxMw0KLS0tIC9kZXYvbnVsbA0KKysrIGIvcGFja2FnZS9rZXJuZWwvbWFj ODAyMTEvcGF0Y2hlcy85OTktMDA4MS1hdGgxMGstQWRkLXR4LXJ4LWJ5dGVzLWNvdW50ZXItdG8t ZXRodG9vbC1zdGF0cy5wYXRjaA0KQEAgLTAsMCArMSwxMTEgQEANCitGcm9tOiBCZW4gR3JlZWFy IDxncmVlYXJiQGNhbmRlbGF0ZWNoLmNvbT4NCitEYXRlOiBGcmksIDggTWF5IDIwMTUgMTI6MTg6 MjAgLTA3MDANCitTdWJqZWN0OiBbUEFUQ0hdIGF0aDEwazogQWRkIHR4L3J4IGJ5dGVzIGNvdW50 ZXIgdG8gZXRodG9vbCBzdGF0cy4NCisNCitUaGUgZmlybXdhcmUgZG9lcyBub3Qgb2ZmZXIgdGhp cyBjb3VudGVyLCBzbyBqdXN0IGtlZXAgdHJhY2sgb2YNCitpdCBpbiB0aGUgZHJpdmVyLg0KKw0K K1NpZ25lZC1vZmYtYnk6IEJlbiBHcmVlYXIgPGdyZWVhcmJAY2FuZGVsYXRlY2guY29tPg0KKy0t LQ0KKyBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2NvcmUuaCAgIHwgIDMgKysrDQor IGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvZGVidWcuYyAgfCAgOCArKysrLS0tLQ0K KyBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2h0dF9yeC5jIHwgIDMgKysrDQorIGRy aXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvaHR0X3R4LmMgfCAxMCArKysrKysrKy0tDQor IDQgZmlsZXMgY2hhbmdlZCwgMTggaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkNCisNCitk aWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9jb3JlLmggYi9kcml2 ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2NvcmUuaA0KK2luZGV4IDY4ZTQ5Y2YyNDdkZC4u Nzg0ZGZhMmI5M2I5IDEwMDY0NA0KKy0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgx MGsvY29yZS5oDQorKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9jb3JlLmgN CitAQCAtNDM4LDYgKzQzOCw5IEBAIHN0cnVjdCBhdGgxMGtfZGVidWcgew0KKyAJc3RydWN0IGF0 aDEwa19kYmdsb2dfZW50cnlfc3RvcmFnZSBkYmdsb2dfZW50cnlfZGF0YTsNCisgDQorIAlzdHJ1 Y3QgYXRoMTBrX2Z3X2NyYXNoX2RhdGEgKmZ3X2NyYXNoX2RhdGE7DQorKw0KKysJdTY0IHR4X2J5 dGVzOyAvKiBjb3VudGVyLCBmaXJtd2FyZSBkb2VzIG5vdCBvZmZlciB0aGlzIHN0YXQgKi8NCisr CXU2NCByeF9ieXRlczsgLyogY291bnRlciwgZmlybXdhcmUgZG9lcyBub3Qgb2ZmZXIgdGhpcyBz dGF0ICovDQorIH07DQorIA0KKyBlbnVtIGF0aDEwa19zdGF0ZSB7DQorZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvZGVidWcuYyBiL2RyaXZlcnMvbmV0L3dpcmVs ZXNzL2F0aC9hdGgxMGsvZGVidWcuYw0KK2luZGV4IDMwNmIyMWQzMTcwNy4uODkxYTQyYThiNWQ5 IDEwMDY0NA0KKy0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvZGVidWcuYw0K KysrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvZGVidWcuYw0KK0BAIC0xOTYw LDkgKzE5NjAsOSBAQCBleGl0Og0KKyAvKiBUaGlzIGdlbmVyYWxseSBjb29yZXNwb25kcyB0byB0 aGUgZGVidWdmcyBmd19zdGF0cyBmaWxlICovDQorIHN0YXRpYyBjb25zdCBjaGFyIGF0aDEwa19n c3RyaW5nc19zdGF0c1tdW0VUSF9HU1RSSU5HX0xFTl0gPSB7DQorIAkidHhfcGt0c19uaWMiLA0K Ky0JInR4X2J5dGVzX25pYyIsDQorKwkidHhfYnl0ZXNfbmljIiwgLy8gZnJvbSBkcml2ZXIsIGZp cm13YXJlIGRvZXMgbm90IGtlZXAgdGhpcyBzdGF0Lg0KKyAJInJ4X3BrdHNfbmljIiwNCistCSJy eF9ieXRlc19uaWMiLA0KKysJInJ4X2J5dGVzX25pYyIsIC8vIGZyb20gZHJpdmVyLCBmaXJtd2Fy ZSBkb2VzIG5vdCBrZWVwIHRoaXMgc3RhdC4NCisgCSJkX25vaXNlX2Zsb29yIiwNCisgCSJkX2N5 Y2xlX2NvdW50IiwNCisgCSJkX3BoeV9lcnJvciIsDQorQEAgLTIwNjAsOSArMjA2MCw5IEBAIHZv aWQgYXRoMTBrX2RlYnVnX2dldF9ldF9zdGF0cyhzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywNCisg CXNwaW5fbG9ja19iaCgmYXItPmRhdGFfbG9jayk7DQorIA0KKyAJZGF0YVtpKytdID0gcGRldl9z dGF0cy0+aHdfcmVhcGVkOyAvKiBwcGR1IHJlYXBlZCAqLw0KKy0JZGF0YVtpKytdID0gMDsgLyog dHggYnl0ZXMgKi8NCisrCWRhdGFbaSsrXSA9IGFyLT5kZWJ1Zy50eF9ieXRlczsNCisgCWRhdGFb aSsrXSA9IHBkZXZfc3RhdHMtPmh0dF9tcGR1czsNCistCWRhdGFbaSsrXSA9IDA7IC8qIHJ4IGJ5 dGVzICovDQorKwlkYXRhW2krK10gPSBhci0+ZGVidWcucnhfYnl0ZXM7DQorIAlkYXRhW2krK10g PSBwZGV2X3N0YXRzLT5jaF9ub2lzZV9mbG9vcjsNCisgCWRhdGFbaSsrXSA9IHBkZXZfc3RhdHMt PmN5Y2xlX2NvdW50Ow0KKyAJZGF0YVtpKytdID0gcGRldl9zdGF0cy0+cGh5X2Vycl9jb3VudDsN CitkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9odHRfcnguYyBi L2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvaHR0X3J4LmMNCitpbmRleCA5NTNhYjM0 MGI0YjAuLjUyMWY5NTYwOTM0NSAxMDA2NDQNCistLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9h dGgvYXRoMTBrL2h0dF9yeC5jDQorKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEw ay9odHRfcnguYw0KK0BAIC0xMzY1LDYgKzEzNjUsOSBAQCBzdGF0aWMgdm9pZCBhdGgxMGtfaHR0 X3J4X2hfbXBkdShzdHJ1Y3QgYXRoMTBrICphciwNCisgCQkgICBoYXNfcGVlcl9pZHhfaW52YWxp ZCwgZW5jdHlwZSk7DQorIAkqLw0KKyAJc2tiX3F1ZXVlX3dhbGsoYW1zZHUsIG1zZHUpIHsNCisr I2lmZGVmIENQVENGR19BVEgxMEtfREVCVUdGUw0KKysJCWFyLT5kZWJ1Zy5yeF9ieXRlcyArPSBt c2R1LT5sZW47DQorKyNlbmRpZg0KKyAJCWF0aDEwa19odHRfcnhfaF9jc3VtX29mZmxvYWQobXNk dSk7DQorIAkJYXRoMTBrX2h0dF9yeF9oX3VuZGVjYXAoYXIsIG1zZHUsIHN0YXR1cywgZmlyc3Rf aGRyLCBlbmN0eXBlLA0KKyAJCQkJCWlzX2RlY3J5cHRlZCk7DQorZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvaHR0X3R4LmMgYi9kcml2ZXJzL25ldC93aXJlbGVz cy9hdGgvYXRoMTBrL2h0dF90eC5jDQoraW5kZXggYTYwZWY3ZDFkNWZjLi4zOTZjODMxNzYwMzYg MTAwNjQ0DQorLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9odHRfdHguYw0K KysrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvaHR0X3R4LmMNCitAQCAtNDIy LDYgKzQyMiw3IEBAIGludCBhdGgxMGtfaHR0X3R4KHN0cnVjdCBhdGgxMGtfaHR0ICpodHQsIHN0 cnVjdCBza19idWZmICptc2R1KQ0KKyAJdTE2IG1zZHVfaWQsIGZsYWdzMSA9IDA7DQorIAlkbWFf YWRkcl90IHBhZGRyID0gMDsNCisgCXUzMiBmcmFnc19wYWRkciA9IDA7DQorKwlpbnQgc2tiX2xl bjsNCisgDQorIAlyZXMgPSBhdGgxMGtfaHR0X3R4X2luY19wZW5kaW5nKGh0dCk7DQorIAlpZiAo cmVzKQ0KK0BAIC01MzMsMTMgKzUzNCwxNCBAQCBpbnQgYXRoMTBrX2h0dF90eChzdHJ1Y3QgYXRo MTBrX2h0dCAqaHR0LCBzdHJ1Y3Qgc2tfYnVmZiAqbXNkdSkNCisgCXNrYl9jYi0+aHR0LnR4YnVm LT5jbWRfdHgucGVlcmlkID0gX19jcHVfdG9fbGUxNihIVFRfSU5WQUxJRF9QRUVSSUQpOw0KKyAJ c2tiX2NiLT5odHQudHhidWYtPmNtZF90eC5mcmVxID0gX19jcHVfdG9fbGUxNihza2JfY2ItPmh0 dC5mcmVxKTsNCisgDQorKwlza2JfbGVuID0gbXNkdS0+bGVuOw0KKyAJdHJhY2VfYXRoMTBrX2h0 dF90eChhciwgbXNkdV9pZCwgbXNkdS0+bGVuLCB2ZGV2X2lkLCB0aWQpOw0KKyAJYXRoMTBrX2Ri ZyhhciwgQVRIMTBLX0RCR19IVFQsDQorIAkJICAgImh0dCB0eCBmbGFnczAgJWhodSBmbGFnczEg JWh1IGxlbiAlZCBpZCAlaHUgZnJhZ3NfcGFkZHIgJTA4eCwgbXNkdV9wYWRkciAlMDh4IHZkZXYg JWhodSB0aWQgJWhodSBmcmVxICVodVxuIiwNCistCQkgICBmbGFnczAsIGZsYWdzMSwgbXNkdS0+ bGVuLCBtc2R1X2lkLCBmcmFnc19wYWRkciwNCisrCQkgICBmbGFnczAsIGZsYWdzMSwgc2tiX2xl biwgbXNkdV9pZCwgZnJhZ3NfcGFkZHIsDQorIAkJICAgKHUzMilza2JfY2ItPnBhZGRyLCB2ZGV2 X2lkLCB0aWQsIHNrYl9jYi0+aHR0LmZyZXEpOw0KKyAJYXRoMTBrX2RiZ19kdW1wKGFyLCBBVEgx MEtfREJHX0hUVF9EVU1QLCBOVUxMLCAiaHR0IHR4IG1zZHU6ICIsDQorLQkJCW1zZHUtPmRhdGEs IG1zZHUtPmxlbik7DQorKwkJCW1zZHUtPmRhdGEsIHNrYl9sZW4pOw0KKyAJdHJhY2VfYXRoMTBr X3R4X2hkcihhciwgbXNkdS0+ZGF0YSwgbXNkdS0+bGVuKTsNCisgCXRyYWNlX2F0aDEwa190eF9w YXlsb2FkKGFyLCBtc2R1LT5kYXRhLCBtc2R1LT5sZW4pOw0KKyANCitAQCAtNTY0LDYgKzU2Niwx MCBAQCBpbnQgYXRoMTBrX2h0dF90eChzdHJ1Y3QgYXRoMTBrX2h0dCAqaHR0LCBzdHJ1Y3Qgc2tf YnVmZiAqbXNkdSkNCisgCWlmIChyZXMpDQorIAkJZ290byBlcnJfdW5tYXBfbXNkdTsNCisgDQor KyNpZmRlZiBDUFRDRkdfQVRIMTBLX0RFQlVHRlMNCisrCWFyLT5kZWJ1Zy50eF9ieXRlcyArPSBz a2JfbGVuOw0KKysjZW5kaWYNCisrDQorIAlyZXR1cm4gMDsNCisgDQorIGVycl91bm1hcF9tc2R1 Og0KZGlmZiAtLWdpdCBhL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAwODIt YXRoMTBrLURvY3VtZW50LWN5Y2xlLWNvdW50LXJlbGF0ZWQtY291bnRlcnMucGF0Y2ggYi9wYWNr YWdlL2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDgyLWF0aDEway1Eb2N1bWVudC1jeWNs ZS1jb3VudC1yZWxhdGVkLWNvdW50ZXJzLnBhdGNoDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5k ZXggMDAwMDAwMC4uOGY2NzQxYw0KLS0tIC9kZXYvbnVsbA0KKysrIGIvcGFja2FnZS9rZXJuZWwv bWFjODAyMTEvcGF0Y2hlcy85OTktMDA4Mi1hdGgxMGstRG9jdW1lbnQtY3ljbGUtY291bnQtcmVs YXRlZC1jb3VudGVycy5wYXRjaA0KQEAgLTAsMCArMSwzMSBAQA0KK0Zyb206IEJlbiBHcmVlYXIg PGdyZWVhcmJAY2FuZGVsYXRlY2guY29tPg0KK0RhdGU6IEZyaSwgNSBKdW4gMjAxNSAxMzo0Mjoz MiAtMDcwMA0KK1N1YmplY3Q6IFtQQVRDSF0gYXRoMTBrOiBEb2N1bWVudCBjeWNsZSBjb3VudCBy ZWxhdGVkIGNvdW50ZXJzLg0KKw0KK1RoZXkgYXJlIG5vdCBuZWNlc3NhcmlseSBuYW1lZCBpbiBh biBpbnR1aXRpdmUgbWFubmVyLA0KK3NvIGF0IGxlYXN0IGFkZCBzb21lIGNvbW1lbnRzIHRvIGhl bHAgdGhlIG5leHQgcGVyc29uLg0KKw0KK1NpZ25lZC1vZmYtYnk6IEJlbiBHcmVlYXIgPGdyZWVh cmJAY2FuZGVsYXRlY2guY29tPg0KKy0tLQ0KKyBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRo MTBrL2NvcmUuaCB8IDggKysrKy0tLS0NCisgMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygr KSwgNCBkZWxldGlvbnMoLSkNCisNCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3Mv YXRoL2F0aDEway9jb3JlLmggYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2NvcmUu aA0KK2luZGV4IDc4NGRmYTJiOTNiOS4uYzQzMzc1NGUxYWM0IDEwMDY0NA0KKy0tLSBhL2RyaXZl cnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvY29yZS5oDQorKysrIGIvZHJpdmVycy9uZXQvd2ly ZWxlc3MvYXRoL2F0aDEway9jb3JlLmgNCitAQCAtMTg3LDEwICsxODcsMTAgQEAgc3RydWN0IGF0 aDEwa19md19zdGF0c19wZGV2IHsNCisgDQorIAkvKiBQREVWIHN0YXRzICovDQorIAlzMzIgY2hf bm9pc2VfZmxvb3I7DQorLQl1MzIgdHhfZnJhbWVfY291bnQ7DQorLQl1MzIgcnhfZnJhbWVfY291 bnQ7DQorLQl1MzIgcnhfY2xlYXJfY291bnQ7DQorLQl1MzIgY3ljbGVfY291bnQ7DQorKwl1MzIg dHhfZnJhbWVfY291bnQ7IC8qIGN5Y2xlcyBzcGVudCB0cmFuc21pdHRpbmcgZnJhbWVzICovDQor Kwl1MzIgcnhfZnJhbWVfY291bnQ7IC8qIGN5Y2xlcyBzcGVudCByZWNlaXZpbmcgZnJhbWVzICov DQorKwl1MzIgcnhfY2xlYXJfY291bnQ7IC8qIFRvdGFsIGNoYW5uZWwgYnVzeSB0aW1lLCBldmlk ZW50bHkgKi8NCisrCXUzMiBjeWNsZV9jb3VudDsgLyogVG90YWwgb24tY2hhbm5lbCB0aW1lICov DQorIAl1MzIgcGh5X2Vycl9jb3VudDsNCisgCXUzMiBjaGFuX3R4X3Bvd2VyOw0KKyAJdTMyIGFj a19yeF9iYWQ7DQpkaWZmIC0tZ2l0IGEvcGFja2FnZS9rZXJuZWwvbWFjODAyMTEvcGF0Y2hlcy85 OTktMDA4My1hdGgxMGstSW1wcm92ZS1ldGh0b29sLXN0YXRzLXRvLXJldHVybi1jeWNsZS1jb3Vu dGVyLnBhdGNoIGIvcGFja2FnZS9rZXJuZWwvbWFjODAyMTEvcGF0Y2hlcy85OTktMDA4My1hdGgx MGstSW1wcm92ZS1ldGh0b29sLXN0YXRzLXRvLXJldHVybi1jeWNsZS1jb3VudGVyLnBhdGNoDQpu ZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMC4uMmRjZDIyNA0KLS0tIC9kZXYvbnVs bA0KKysrIGIvcGFja2FnZS9rZXJuZWwvbWFjODAyMTEvcGF0Y2hlcy85OTktMDA4My1hdGgxMGst SW1wcm92ZS1ldGh0b29sLXN0YXRzLXRvLXJldHVybi1jeWNsZS1jb3VudGVyLnBhdGNoDQpAQCAt MCwwICsxLDc0IEBADQorRnJvbTogQmVuIEdyZWVhciA8Z3JlZWFyYkBjYW5kZWxhdGVjaC5jb20+ DQorRGF0ZTogRnJpLCA1IEp1biAyMDE1IDEzOjQzOjU1IC0wNzAwDQorU3ViamVjdDogW1BBVENI XSBhdGgxMGs6IEltcHJvdmUgZXRodG9vbCBzdGF0cyB0byByZXR1cm4gY3ljbGUtY291bnRlcnMu DQorDQorTm90ZSB0aGVzZSBjb3VudGVycyBhcmUgc2luY2UgdGhlIGNoaXAgcmVzZXQsIHRob3Vn aCB0aGUgY291bnRlcnMNCit3cmFwIG9mdGVuLiAgV2hlbiBjeWNsZS1jb3VudGVycyBjb3VudGVy IG92ZXJmbG93cyBvbg0KK2NlcnRhaW4gaGFyZHdhcmUsIGl0IHdpbGwgcmlnaHQgc2hpZnQgYWxs IDQgb2YgdGhlDQorcmVsYXRlZCByZWdpc3RlcnMgdG8gdGhlIHJpZ2h0IGJ5IG9uZSBiaXQgKGJh c2ljYWxseSwNCitkaXZpZGUgYnkgdHdvKS4gIFNpbmNlIHlvdSBoYXZlIG5vIGlkZWEgd2hhdCB0 aGUgb3RoZXJzDQord2VyZSBhdCB3aGVuIGN5Y2xlLWNvdW50ZXIgd3JhcHBlZCwgeW91IG11c3Qg c2ltcGx5DQoraWdub3JlIGFueSBzYW1wbGUgd2hlcmUgY3ljbGUtY291bnRlciB3cmFwcywgYW5k IHNldA0KK25ldyBiYXNlbGluZSB2YWx1ZXMgdG8gY2FsY3VsYXRlIGRpZmZzIGFnYWluc3QgbmV4 dA0KK3RpbWUuDQorDQorSGFyZHdhcmUgd2l0aCB0aGlzIGZ1bm55IHdyYXAgbG9naWMgd2lsbCBj YXVzZSB0aGUNCitkX2ZsYWdzICdjb3VudGVyJyB0byBoYXZlIGJpdCAweDEgc2V0LCBzbyB0aGF0 IGlzIGhvdw0KK3VzZXItc3BhY2UgY2FuIGtub3cgaG93IHRvIGRlYWwgd2l0aCB0aGlzLg0KKw0K K1NpZ25lZC1vZmYtYnk6IEJlbiBHcmVlYXIgPGdyZWVhcmJAY2FuZGVsYXRlY2guY29tPg0KKy0t LQ0KKyBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2RlYnVnLmMgfCAxOCArKysrKysr KysrKysrKystLS0NCisgMSBmaWxlIGNoYW5nZWQsIDE1IGluc2VydGlvbnMoKyksIDMgZGVsZXRp b25zKC0pDQorDQorZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsv ZGVidWcuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvZGVidWcuYw0KK2luZGV4 IDg5MWE0MmE4YjVkOS4uOWY4NDBlYTljNTczIDEwMDY0NA0KKy0tLSBhL2RyaXZlcnMvbmV0L3dp cmVsZXNzL2F0aC9hdGgxMGsvZGVidWcuYw0KKysrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0 aC9hdGgxMGsvZGVidWcuYw0KK0BAIC0xOTYwLDExICsxOTYwLDE1IEBAIGV4aXQ6DQorIC8qIFRo aXMgZ2VuZXJhbGx5IGNvb3Jlc3BvbmRzIHRvIHRoZSBkZWJ1Z2ZzIGZ3X3N0YXRzIGZpbGUgKi8N Cisgc3RhdGljIGNvbnN0IGNoYXIgYXRoMTBrX2dzdHJpbmdzX3N0YXRzW11bRVRIX0dTVFJJTkdf TEVOXSA9IHsNCisgCSJ0eF9wa3RzX25pYyIsDQorLQkidHhfYnl0ZXNfbmljIiwgLy8gZnJvbSBk cml2ZXIsIGZpcm13YXJlIGRvZXMgbm90IGtlZXAgdGhpcyBzdGF0Lg0KKysJInR4X2J5dGVzX25p YyIsIC8qIGZyb20gZHJpdmVyLCBmaXJtd2FyZSBkb2VzIG5vdCBrZWVwIHRoaXMgc3RhdC4gKi8N CisgCSJyeF9wa3RzX25pYyIsDQorLQkicnhfYnl0ZXNfbmljIiwgLy8gZnJvbSBkcml2ZXIsIGZp cm13YXJlIGRvZXMgbm90IGtlZXAgdGhpcyBzdGF0Lg0KKysJInJ4X2J5dGVzX25pYyIsIC8qIGZy b20gZHJpdmVyLCBmaXJtd2FyZSBkb2VzIG5vdCBrZWVwIHRoaXMgc3RhdC4gKi8NCisgCSJkX25v aXNlX2Zsb29yIiwNCistCSJkX2N5Y2xlX2NvdW50IiwNCisrCSJkX2N5Y2xlX2NvdW50IiwgLyog dGhpcyBpcyBkdXR5IGN5Y2xlIGNvdW50ZXIsIGJhc2ljYWxseSBjaGFubmVsLXRpbWUuIDg4TUh6 IGNsb2NrICovDQorKwkiZF90eF9jeWNsZV9jb3VudCIsIC8qIHR4IGN5Y2xlIGNvdW50ICovDQor KwkiZF9yeF9jeWNsZV9jb3VudCIsIC8qIHJ4IGN5Y2xlIGNvdW50ICovDQorKwkiZF9idXN5X2Nv dW50IiwgLyogVG90YWwgY2hhbm5lbCBidXN5IHRpbWUgY3ljbGVzIChjYWxsZWQgJ2NsZWFyJyBi eSBmaXJtd2FyZSkgKi8NCisrCSJkX2ZsYWdzIiwgLyogMHgxOiAgaHcgaGFzIHNoaWZ0ZWQgY3lj bGUtY291bnQgd3JhcCwgc2VlIGF0aDEwa19od19maWxsX3N1cnZleV90aW1lICovDQorIAkiZF9w aHlfZXJyb3IiLA0KKyAJImRfcnRzX2JhZCIsDQorIAkiZF9ydHNfZ29vZCIsDQorQEAgLTIwMzYs NiArMjA0MCw3IEBAIHZvaWQgYXRoMTBrX2RlYnVnX2dldF9ldF9zdGF0cyhzdHJ1Y3QgaWVlZTgw MjExX2h3ICpodywNCisgCXN0YXRpYyBjb25zdCBzdHJ1Y3QgYXRoMTBrX2Z3X3N0YXRzX3BkZXYg emVyb19zdGF0cyA9IHt9Ow0KKyAJY29uc3Qgc3RydWN0IGF0aDEwa19md19zdGF0c19wZGV2ICpw ZGV2X3N0YXRzOw0KKyAJaW50IGkgPSAwLCByZXQ7DQorKwl1NjQgZF9mbGFncyA9IDA7DQorIA0K KyAJbXV0ZXhfbG9jaygmYXItPmNvbmZfbXV0ZXgpOw0KKyANCitAQCAtMjA1OSwxMiArMjA2NCwx OSBAQCB2b2lkIGF0aDEwa19kZWJ1Z19nZXRfZXRfc3RhdHMoc3RydWN0IGllZWU4MDIxMV9odyAq aHcsDQorIA0KKyAJc3Bpbl9sb2NrX2JoKCZhci0+ZGF0YV9sb2NrKTsNCisgDQorKwlpZiAoYXIt Pmh3X3BhcmFtcy5oYXNfc2hpZnRlZF9jY193cmFwYXJvdW5kKQ0KKysJCWRfZmxhZ3MgfD0gMHgx Ow0KKysNCisgCWRhdGFbaSsrXSA9IHBkZXZfc3RhdHMtPmh3X3JlYXBlZDsgLyogcHBkdSByZWFw ZWQgKi8NCisgCWRhdGFbaSsrXSA9IGFyLT5kZWJ1Zy50eF9ieXRlczsNCisgCWRhdGFbaSsrXSA9 IHBkZXZfc3RhdHMtPmh0dF9tcGR1czsNCisgCWRhdGFbaSsrXSA9IGFyLT5kZWJ1Zy5yeF9ieXRl czsNCisgCWRhdGFbaSsrXSA9IHBkZXZfc3RhdHMtPmNoX25vaXNlX2Zsb29yOw0KKyAJZGF0YVtp KytdID0gcGRldl9zdGF0cy0+Y3ljbGVfY291bnQ7DQorKwlkYXRhW2krK10gPSBwZGV2X3N0YXRz LT50eF9mcmFtZV9jb3VudDsNCisrCWRhdGFbaSsrXSA9IHBkZXZfc3RhdHMtPnJ4X2ZyYW1lX2Nv dW50Ow0KKysJZGF0YVtpKytdID0gcGRldl9zdGF0cy0+cnhfY2xlYXJfY291bnQ7IC8qIHllcywg dGhpcyBhcHBlYXJzIHRvIGFjdHVhbGx5IGJlICdidXN5JyBjb3VudCAqLw0KKysJZGF0YVtpKytd ID0gZF9mbGFnczsgLyogZ2l2ZSB1c2VyLXNwYWNlIGEgY2hhbmNlIHRvIGRlY29kZSBjeWNsZSBj b3VudGVycyAqLw0KKyAJZGF0YVtpKytdID0gcGRldl9zdGF0cy0+cGh5X2Vycl9jb3VudDsNCisg CWRhdGFbaSsrXSA9IHBkZXZfc3RhdHMtPnJ0c19iYWQ7DQorIAlkYXRhW2krK10gPSBwZGV2X3N0 YXRzLT5ydHNfZ29vZDsNCmRpZmYgLS1naXQgYS9wYWNrYWdlL2tlcm5lbC9tYWM4MDIxMS9wYXRj aGVzLzk5OS0wMDg0LXdpcmVsZXNzLUFkZC1pZm5hbWUtdG8tU1RPUF9BUC1ldmVudC5wYXRjaCBi L3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAwODQtd2lyZWxlc3MtQWRkLWlm bmFtZS10by1TVE9QX0FQLWV2ZW50LnBhdGNoDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXgg MDAwMDAwMC4uOWRlYTYzZg0KLS0tIC9kZXYvbnVsbA0KKysrIGIvcGFja2FnZS9rZXJuZWwvbWFj ODAyMTEvcGF0Y2hlcy85OTktMDA4NC13aXJlbGVzcy1BZGQtaWZuYW1lLXRvLVNUT1BfQVAtZXZl bnQucGF0Y2gNCkBAIC0wLDAgKzEsMjcgQEANCitGcm9tOiBCZW4gR3JlZWFyIDxncmVlYXJiQGNh bmRlbGF0ZWNoLmNvbT4NCitEYXRlOiBXZWQsIDEwIEp1biAyMDE1IDE1OjA3OjU2IC0wNzAwDQor U3ViamVjdDogW1BBVENIXSB3aXJlbGVzczogQWRkIGlmbmFtZSB0byBTVE9QX0FQIGV2ZW50Lg0K Kw0KK0luIGNhc2UgdXNlci1zcGFjZSB3YW50cyB0byBrbm93IHRoZSBuYW1lIG9mIHRoZQ0KK2Rl dmljZSwgdGhpcyB3aWxsIHNhdmUgYSBuYW1lIGxvb2t1cCBieSBpbmRleCwgYW5kDQoraW4gY2Fz ZSB3aGVyZSBrZXJuZWwgbWFuYWdlcyB0byBmdWxseSBkZWxldGUgdGhlDQoraW50ZXJmYWNlIGJl Zm9yZSB1c2VyLXNwYWNlIGNhbiBkZXRlcm1pbmUgdGhlIG5hbWUsDQordGhpcyB3aWxsIGVuc3Vy ZSB1c2VyLXNwYWNlIGhhcyBwcm9wZXIgbmFtZS4NCisNCitTaWduZWQtb2ZmLWJ5OiBCZW4gR3Jl ZWFyIDxncmVlYXJiQGNhbmRlbGF0ZWNoLmNvbT4NCistLS0NCisgbmV0L3dpcmVsZXNzL25sODAy MTEuYyB8IDEgKw0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykNCisNCitkaWZmIC0t Z2l0IGEvbmV0L3dpcmVsZXNzL25sODAyMTEuYyBiL25ldC93aXJlbGVzcy9ubDgwMjExLmMNCitp bmRleCBjNjMyODIyNzU4MzMuLmIxYTk0YzQ5OGQxMSAxMDA2NDQNCistLS0gYS9uZXQvd2lyZWxl c3Mvbmw4MDIxMS5jDQorKysrIGIvbmV0L3dpcmVsZXNzL25sODAyMTEuYw0KK0BAIC0xMzA1NSw2 ICsxMzA1NSw3IEBAIHZvaWQgbmw4MDIxMV9zZW5kX2FwX3N0b3BwZWQoc3RydWN0IHdpcmVsZXNz X2RldiAqd2RldikNCisgCQlnb3RvIG91dDsNCisgDQorIAlpZiAobmxhX3B1dF91MzIobXNnLCBO TDgwMjExX0FUVFJfV0lQSFksIHJkZXYtPndpcGh5X2lkeCkgfHwNCisrCSAgICBubGFfcHV0X3N0 cmluZyhtc2csIE5MODAyMTFfQVRUUl9JRk5BTUUsIHdkZXYtPm5ldGRldi0+bmFtZSkgfHwNCisg CSAgICBubGFfcHV0X3UzMihtc2csIE5MODAyMTFfQVRUUl9JRklOREVYLCB3ZGV2LT5uZXRkZXYt PmlmaW5kZXgpIHx8DQorIAkgICAgbmxhX3B1dF91NjQobXNnLCBOTDgwMjExX0FUVFJfV0RFViwg d2Rldl9pZCh3ZGV2KSkpDQorIAkJZ290byBvdXQ7DQpkaWZmIC0tZ2l0IGEvcGFja2FnZS9rZXJu ZWwvbWFjODAyMTEvcGF0Y2hlcy85OTktMDA4NS1hdGgxMGstVXNlLW5vbi1xb3MtVElELWZvci1u dWxsZnVuYy1mcmFtZXMucGF0Y2ggYi9wYWNrYWdlL2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5 OS0wMDg1LWF0aDEway1Vc2Utbm9uLXFvcy1USUQtZm9yLW51bGxmdW5jLWZyYW1lcy5wYXRjaA0K bmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAuLjg3ZTM1OTANCi0tLSAvZGV2L251 bGwNCisrKyBiL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAwODUtYXRoMTBr LVVzZS1ub24tcW9zLVRJRC1mb3ItbnVsbGZ1bmMtZnJhbWVzLnBhdGNoDQpAQCAtMCwwICsxLDI5 IEBADQorRnJvbTogQmVuIEdyZWVhciA8Z3JlZWFyYkBjYW5kZWxhdGVjaC5jb20+DQorRGF0ZTog TW9uLCAxNSBKdW4gMjAxNSAxMzoyMzowNiAtMDcwMA0KK1N1YmplY3Q6IFtQQVRDSF0gYXRoMTBr OiBVc2Ugbm9uLXFvcyBUSUQgZm9yIG51bGxmdW5jIGZyYW1lcy4NCisNCitUaGlzIGdpdmVzIGZp cm13YXJlIGEgY2hhbmNlIHRvIHNlbmQgdGhlIGZyYW1lcyBhcyBub24tcW9zDQorcGFja2V0cy4g IE90aGVyd2lzZSwgYXQgbGVhc3Qgc29tZSBmaXJtd2FyZSB2ZXJzaW9ucyB3aWxsDQordHJlYXQg dGhpcyBhcyBub3JtYWwgUW9TIGRhdGEgdGhhdCBjYW4gdXNlIGJsb2NrLWFjaywgYW5kDQorZW5k IHJlc3VsdCBpcyB0aGF0IG51bGwtZnVuYyBwcm9iZXMgb2Z0ZW4gZmFpbCBiZWNhdXNlDQorYWNr IGlzIG5vdCByZWNlaXZlZCBpbiB0aW1lLg0KKw0KK1NpZ25lZC1vZmYtYnk6IEJlbiBHcmVlYXIg PGdyZWVhcmJAY2FuZGVsYXRlY2guY29tPg0KKy0tLQ0KKyBkcml2ZXJzL25ldC93aXJlbGVzcy9h dGgvYXRoMTBrL21hYy5jIHwgMyArKysNCisgMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygr KQ0KKw0KK2RpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL21hYy5j IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMuYw0KK2luZGV4IDgwNGZiNDQ1 NjU1ZC4uNjI0NWM1M2UwNTIxIDEwMDY0NA0KKy0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0 aC9hdGgxMGsvbWFjLmMNCisrKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL21h Yy5jDQorQEAgLTMxNDksNiArMzE0OSw5IEBAIHN0YXRpYyB1OCBhdGgxMGtfdHhfaF9nZXRfdGlk KHN0cnVjdCBpZWVlODAyMTFfaGRyICpoZHIpDQorIAlpZiAoaWVlZTgwMjExX2lzX21nbXQoaGRy LT5mcmFtZV9jb250cm9sKSkNCisgCQlyZXR1cm4gSFRUX0RBVEFfVFhfRVhUX1RJRF9NR01UOw0K KyANCisrCWlmIChpZWVlODAyMTFfaXNfbnVsbGZ1bmMoaGRyLT5mcmFtZV9jb250cm9sKSkNCisr CQlyZXR1cm4gSFRUX0RBVEFfVFhfRVhUX1RJRF9OT05fUU9TX01DQVNUX0JDQVNUOw0KKysNCisg CWlmICghaWVlZTgwMjExX2lzX2RhdGFfcW9zKGhkci0+ZnJhbWVfY29udHJvbCkpDQorIAkJcmV0 dXJuIEhUVF9EQVRBX1RYX0VYVF9USURfTk9OX1FPU19NQ0FTVF9CQ0FTVDsNCisgDQpkaWZmIC0t Z2l0IGEvcGFja2FnZS9rZXJuZWwvbWFjODAyMTEvcGF0Y2hlcy85OTktMDA4Ni1hdGgxMGstRGVm YXVsdC10by0xMjctcGVlcnMucGF0Y2ggYi9wYWNrYWdlL2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVz Lzk5OS0wMDg2LWF0aDEway1EZWZhdWx0LXRvLTEyNy1wZWVycy5wYXRjaA0KbmV3IGZpbGUgbW9k ZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAuLmRkMTM4ZmENCi0tLSAvZGV2L251bGwNCisrKyBiL3Bh Y2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAwODYtYXRoMTBrLURlZmF1bHQtdG8t MTI3LXBlZXJzLnBhdGNoDQpAQCAtMCwwICsxLDMxIEBADQorRnJvbTogQmVuIEdyZWVhciA8Z3Jl ZWFyYkBjYW5kZWxhdGVjaC5jb20+DQorRGF0ZTogVHVlLCAxNiBKdW4gMjAxNSAxNjo0NjozMiAt MDcwMA0KK1N1YmplY3Q6IFtQQVRDSF0gYXRoMTBrOiBEZWZhdWx0IHRvIDEyNyBwZWVycy4NCisN CitXaGVuIHVzaW5nIG5vcm1hbCBody1jcnlwdCwgbW9yZSB0aGFuIDEyNyBzdGF0aW9ucyBicmVh a3MgV1BBLTENCitjb21tdW5pY2F0aW9uIGluIHN0YXRpb24gbW9kZSB3aXRoIENUIGZpcm13YXJl LiAgSXQgbW9zdCBsaWtlbHkNCitjYXVzZXMgcHJvYmxlbXMgd2l0aCBvdGhlciBlbmNyeXB0aW9u IHNjaGVtZXMgYXMgd2VsbC4NCisNCitTbywgZGVmYXVsdCB0byAxMjcuDQorDQorUmVwb3J0ZWQt Ynk6IFNldmVybiBUc3VpIDxzZXZlcm5AcHJhdmFsYS5jb20+DQorU2lnbmVkLW9mZi1ieTogQmVu IEdyZWVhciA8Z3JlZWFyYkBjYW5kZWxhdGVjaC5jb20+DQorLS0tDQorIGRyaXZlcnMvbmV0L3dp cmVsZXNzL2F0aC9hdGgxMGsvbWFjLmMgfCA0ICsrKy0NCisgMSBmaWxlIGNoYW5nZWQsIDMgaW5z ZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQ0KKw0KK2RpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93 aXJlbGVzcy9hdGgvYXRoMTBrL21hYy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEw ay9tYWMuYw0KK2luZGV4IDYyNDVjNTNlMDUyMS4uYjBkMWVkNTg1NDJkIDEwMDY0NA0KKy0tLSBh L2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvbWFjLmMNCisrKysgYi9kcml2ZXJzL25l dC93aXJlbGVzcy9hdGgvYXRoMTBrL21hYy5jDQorQEAgLTE2NCw3ICsxNjQsOSBAQCBNT0RVTEVf UEFSTV9ERVNDKG5vaHdjcnlwdCwgIkRpc2FibGUgaGFyZHdhcmUgcnggZGVjcnlwdCBmZWF0dXJl Iik7DQorIGludCBhdGgxMGtfbW9kcGFyYW1fdGFyZ2V0X251bV92ZGV2c19jdCA9IERFRl9UQVJH RVRfMTBYX05VTV9WREVWU19DVDsNCisgbW9kdWxlX3BhcmFtX25hbWVkKG51bV92ZGV2c19jdCwg YXRoMTBrX21vZHBhcmFtX3RhcmdldF9udW1fdmRldnNfY3QsIGludCwgMDQ0NCk7DQorIE1PRFVM RV9QQVJNX0RFU0MobnVtX3ZkZXZzX2N0LCAiTWF4aW11bSB2ZGV2cyB0byByZXF1ZXN0IGZyb20g ZmlybXdhcmUiKTsNCistaW50IGF0aDEwa19tb2RwYXJhbV90YXJnZXRfbnVtX3BlZXJzX2N0ID0g MTI4Ow0KKysNCisrLyogTW9yZSB0aGFuIDEyNyBzZWVtcyB0byBjYXVzZSBpc3N1ZXMgd2hlbiB1 c2luZyBIVyBkZS1jcnlwdCwgc28gZGVmYXVsdCB0byAxMjcuICovDQorK2ludCBhdGgxMGtfbW9k cGFyYW1fdGFyZ2V0X251bV9wZWVyc19jdCA9IDEyNzsNCisgbW9kdWxlX3BhcmFtX25hbWVkKG51 bV9wZWVyc19jdCwgYXRoMTBrX21vZHBhcmFtX3RhcmdldF9udW1fcGVlcnNfY3QsIGludCwgMDQ0 NCk7DQorIE1PRFVMRV9QQVJNX0RFU0MobnVtX3BlZXJzX2N0LCAiTWF4aW11bSBwZWVycyB0byBy ZXF1ZXN0IGZyb20gZmlybXdhcmUiKTsNCisgDQpkaWZmIC0tZ2l0IGEvcGFja2FnZS9rZXJuZWwv bWFjODAyMTEvcGF0Y2hlcy85OTktMDA4Ny1hdGgxMGstU3VwcG9ydC1zcGVjaWFsLXBkZXYtY21k LWlkLnBhdGNoIGIvcGFja2FnZS9rZXJuZWwvbWFjODAyMTEvcGF0Y2hlcy85OTktMDA4Ny1hdGgx MGstU3VwcG9ydC1zcGVjaWFsLXBkZXYtY21kLWlkLnBhdGNoDQpuZXcgZmlsZSBtb2RlIDEwMDY0 NA0KaW5kZXggMDAwMDAwMC4uNWMyNDAyNQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIvcGFja2FnZS9r ZXJuZWwvbWFjODAyMTEvcGF0Y2hlcy85OTktMDA4Ny1hdGgxMGstU3VwcG9ydC1zcGVjaWFsLXBk ZXYtY21kLWlkLnBhdGNoDQpAQCAtMCwwICsxLDE4OCBAQA0KK0Zyb206IEJlbiBHcmVlYXIgPGdy ZWVhcmJAY2FuZGVsYXRlY2guY29tPg0KK0RhdGU6IFN1biwgMjggSnVuIDIwMTUgMDk6MDY6NTYg LTA3MDANCitTdWJqZWN0OiBbUEFUQ0hdIGF0aDEwazogU3VwcG9ydCAnc3BlY2lhbCcgcGRldiBj bWQtaWQuDQorDQorVGhpcyBpcyBmb3IgQ1QgZmlybXdhcmUgb25seS4gIFN1cHBvcnRzIHNvbWUg cmVnaXN0ZXINCitvdmVycmlkZXMgKHRocmVzaDYyX2V4dCwgYWNrIHRpbWluZywgZXRjKS4NCisN CitkZWJ1Z2ZzIGludGVyZmFjZSBpcyBhZGRlZCB0byBtb2RpZnkgdGhyZXNoNjJfZXh0DQordmFs dWUuDQorDQorU2lnbmVkLW9mZi1ieTogQmVuIEdyZWVhciA8Z3JlZWFyYkBjYW5kZWxhdGVjaC5j b20+DQorLS0tDQorIGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvY29yZS5jICB8ICA4 ICsrKysrKw0KKyBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2NvcmUuaCAgfCAgMiAr Kw0KKyBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2RlYnVnLmMgfCA0NCArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysNCisgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0 aDEway93bWkuYyAgIHwgMjYgKysrKysrKysrKysrKysrKysrKw0KKyBkcml2ZXJzL25ldC93aXJl bGVzcy9hdGgvYXRoMTBrL3dtaS5oICAgfCAyMCArKysrKysrKysrKysrKysNCisgNSBmaWxlcyBj aGFuZ2VkLCAxMDAgaW5zZXJ0aW9ucygrKQ0KKw0KK2RpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93 aXJlbGVzcy9hdGgvYXRoMTBrL2NvcmUuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgx MGsvY29yZS5jDQoraW5kZXggOThjMTM5YTg4YjYxLi4zOTBhYTYyNTYyMzkgMTAwNjQ0DQorLS0t IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9jb3JlLmMNCisrKysgYi9kcml2ZXJz L25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2NvcmUuYw0KK0BAIC0xMzYzLDYgKzEzNjMsMTQgQEAg aW50IGF0aDEwa19jb3JlX3N0YXJ0KHN0cnVjdCBhdGgxMGsgKmFyLCBlbnVtIGF0aDEwa19maXJt d2FyZV9tb2RlIG1vZGUpDQorIAlpZiAoc3RhdHVzKQ0KKyAJCWdvdG8gZXJyX2hpZl9zdG9wOw0K KyANCisrCS8qIEFwcGx5IHVzZXItc3VwcGxpZWQgY29uZmlndXJhdGlvbiBjaGFuZ2VzLiAqLw0K KysJaWYgKGFyLT5hdGgxMGtfdGhyZXNoNjJfZXh0KSB7DQorKwkJLyogRG9uJ3Qgd29ycnkgYWJv dXQgZmFpbHVyZXMuLm5vdCBtdWNoIHdlIGNhbiBkbywgYW5kIG5vdCB3b3J0aCBmYWlsaW5nIGlu aXQgZXZlbg0KKysJCSAqIGlmIHRoaXMgZmFpbHMuDQorKwkJICovDQorKwkJYXRoMTBrX3dtaV9w ZGV2X3NldF9zcGVjaWFsKGFyLCBTRVRfU1BFQ0lBTF9JRF9USFJFU0g2Ml9FWFQsIGFyLT5hdGgx MGtfdGhyZXNoNjJfZXh0KTsNCisrCX0NCisrDQorIAlpZiAoYXItPm1heF9udW1fdmRldnMgPj0g NjQpDQorIAkJYXItPmZyZWVfdmRldl9tYXAgPSAweEZGRkZGRkZGRkZGRkZGRkZMTDsNCisgCWVs c2UNCitkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9jb3JlLmgg Yi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2NvcmUuaA0KK2luZGV4IGM0MzM3NTRl MWFjNC4uMzA2YTVjMDhlNGE2IDEwMDY0NA0KKy0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0 aC9hdGgxMGsvY29yZS5oDQorKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9j b3JlLmgNCitAQCAtODIxLDYgKzgyMSw4IEBAIHN0cnVjdCBhdGgxMGsgew0KKyAJc3RydWN0IGF0 aDEwa190aGVybWFsIHRoZXJtYWw7DQorIAlzdHJ1Y3QgYXRoMTBrX3dvdyB3b3c7DQorIA0KKysJ dTggYXRoMTBrX3RocmVzaDYyX2V4dDsgLyogYmUgc3VyZSB0byBmbHVzaCB0aGlzIHRvIGZpcm13 YXJlIGFmdGVyIHJlc2V0cyAqLw0KKysNCisgCS8qIG11c3QgYmUgbGFzdCAqLw0KKyAJdTggZHJ2 X3ByaXZbMF0gX19hbGlnbmVkKHNpemVvZih2b2lkICopKTsNCisgfTsNCitkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9kZWJ1Zy5jIGIvZHJpdmVycy9uZXQvd2ly ZWxlc3MvYXRoL2F0aDEway9kZWJ1Zy5jDQoraW5kZXggOWY4NDBlYTljNTczLi4wYzA0MzM4ODIx YzkgMTAwNjQ0DQorLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9kZWJ1Zy5j DQorKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9kZWJ1Zy5jDQorQEAgLTI1 NDIsNiArMjU0Miw0NyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBmb3Bz X3BrdGxvZ19maWx0ZXIgPSB7DQorIAkub3BlbiA9IHNpbXBsZV9vcGVuDQorIH07DQorIA0KKytz dGF0aWMgc3NpemVfdCBhdGgxMGtfd3JpdGVfdGhyZXNoNjJfZXh0KHN0cnVjdCBmaWxlICpmaWxl LA0KKysJCQkJCSBjb25zdCBjaGFyIF9fdXNlciAqdWJ1ZiwNCisrCQkJCQkgc2l6ZV90IGNvdW50 LCBsb2ZmX3QgKnBwb3MpDQorK3sNCisrCXN0cnVjdCBhdGgxMGsgKmFyID0gZmlsZS0+cHJpdmF0 ZV9kYXRhOw0KKysJdTggZW5hYmxlOw0KKysJaW50IHJldCA9IDA7DQorKw0KKysJaWYgKGtzdHJ0 b3U4X2Zyb21fdXNlcih1YnVmLCBjb3VudCwgMCwgJmVuYWJsZSkpDQorKwkJcmV0dXJuIC1FSU5W QUw7DQorKw0KKysJbXV0ZXhfbG9jaygmYXItPmNvbmZfbXV0ZXgpOw0KKysJYXItPmF0aDEwa190 aHJlc2g2Ml9leHQgPSBlbmFibGU7DQorKwlyZXQgPSBhdGgxMGtfd21pX3BkZXZfc2V0X3NwZWNp YWwoYXIsIFNFVF9TUEVDSUFMX0lEX1RIUkVTSDYyX0VYVCwgZW5hYmxlKTsNCisrCW11dGV4X3Vu bG9jaygmYXItPmNvbmZfbXV0ZXgpOw0KKysNCisrCXJldHVybiByZXQgPzogY291bnQ7DQorK30N CisrDQorK3N0YXRpYyBzc2l6ZV90IGF0aDEwa19yZWFkX3RocmVzaDYyX2V4dChzdHJ1Y3QgZmls ZSAqZmlsZSwNCisrCQkJCQljaGFyIF9fdXNlciAqdWJ1ZiwNCisrCQkJCQlzaXplX3QgY291bnQs IGxvZmZfdCAqcHBvcykNCisrew0KKysJY2hhciBidWZbMzJdOw0KKysJc3RydWN0IGF0aDEwayAq YXIgPSBmaWxlLT5wcml2YXRlX2RhdGE7DQorKwlpbnQgbGVuID0gMDsNCisrDQorKwltdXRleF9s b2NrKCZhci0+Y29uZl9tdXRleCk7DQorKwlsZW4gPSBzY25wcmludGYoYnVmLCBzaXplb2YoYnVm KSAtIGxlbiwgIiVkXG4iLA0KKysJCQlhci0+YXRoMTBrX3RocmVzaDYyX2V4dCk7DQorKwltdXRl eF91bmxvY2soJmFyLT5jb25mX211dGV4KTsNCisrDQorKwlyZXR1cm4gc2ltcGxlX3JlYWRfZnJv bV9idWZmZXIodWJ1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgbGVuKTsNCisrfQ0KKysNCisrc3RhdGlj IGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgZm9wc190aHJlc2g2Ml9leHQgPSB7DQorKwku cmVhZCA9IGF0aDEwa19yZWFkX3RocmVzaDYyX2V4dCwNCisrCS53cml0ZSA9IGF0aDEwa193cml0 ZV90aHJlc2g2Ml9leHQsDQorKwkub3BlbiA9IHNpbXBsZV9vcGVuDQorK307DQorKw0KKyBzdGF0 aWMgc3NpemVfdCBhdGgxMGtfd3JpdGVfcXVpZXRfcGVyaW9kKHN0cnVjdCBmaWxlICpmaWxlLA0K KyAJCQkJCSBjb25zdCBjaGFyIF9fdXNlciAqdWJ1ZiwNCisgCQkJCQkgc2l6ZV90IGNvdW50LCBs b2ZmX3QgKnBwb3MpDQorQEAgLTI3MDAsNiArMjc0MSw5IEBAIGludCBhdGgxMGtfZGVidWdfcmVn aXN0ZXIoc3RydWN0IGF0aDEwayAqYXIpDQorIAlkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJxdWlldF9w ZXJpb2QiLCBTX0lSVUdPIHwgU19JV1VTUiwNCisgCQkJICAgIGFyLT5kZWJ1Zy5kZWJ1Z2ZzX3Bo eSwgYXIsICZmb3BzX3F1aWV0X3BlcmlvZCk7DQorIA0KKysJZGVidWdmc19jcmVhdGVfZmlsZSgi dGhyZXNoNjJfZXh0IiwgU19JUlVHTyB8IFNfSVdVU1IsDQorKwkJCSAgICBhci0+ZGVidWcuZGVi dWdmc19waHksIGFyLCAmZm9wc190aHJlc2g2Ml9leHQpOw0KKysNCisgCXJldHVybiAwOw0KKyB9 DQorIA0KK2RpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS5j IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWkuYw0KK2luZGV4IGMyZjc5YzBj ZTllOC4uYmEwY2RiMTdmNDY4IDEwMDY0NA0KKy0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0 aC9hdGgxMGsvd21pLmMNCisrKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dt aS5jDQorQEAgLTUzMDcsNiArNTMwNywzMiBAQCBhdGgxMGtfd21pX29wX2dlbl9kZWxiYV9zZW5k KHN0cnVjdCBhdGgxMGsgKmFyLCB1MzIgdmRldl9pZCwgY29uc3QgdTggKm1hYywNCisgCXJldHVy biBza2I7DQorIH0NCisgDQorK2ludCBhdGgxMGtfd21pX3BkZXZfc2V0X3NwZWNpYWwoc3RydWN0 IGF0aDEwayAqYXIsIHUzMiBpZCwgdTMyIHZhbCkNCisrew0KKysJc3RydWN0IHdtaV9wZGV2X3Nl dF9zcGVjaWFsX2NtZCAqY21kOw0KKysJc3RydWN0IHNrX2J1ZmYgKnNrYjsNCisrDQorKwlpZiAo IXRlc3RfYml0KEFUSDEwS19GV19GRUFUVVJFX1dNSV8xMFhfQ1QsIGFyLT5md19mZWF0dXJlcykp IHsNCisrCQlhdGgxMGtfd2FybihhciwgIk9ubHkgQ1QgZmlybXdhcmUgKGJ1aWx0IGFmdGVyIEp1 bmUgMjYsIDIwMTUpIHN1cHBvcnRzIHRoaXMgbWV0aG9kIG9mIHNldHRpbmcgdGhyZXNoNjJfZXh0 LlxuIik7DQorKwkJcmV0dXJuIC1FTk9UU1VQUDsNCisrCX0NCisrDQorKwlza2IgPSBhdGgxMGtf d21pX2FsbG9jX3NrYihhciwgc2l6ZW9mKCpjbWQpKTsNCisrCWlmICghc2tiKQ0KKysJCXJldHVy biAtRU5PTUVNOw0KKysNCisrCWNtZCA9IChzdHJ1Y3Qgd21pX3BkZXZfc2V0X3NwZWNpYWxfY21k ICopc2tiLT5kYXRhOw0KKysJbWVtc2V0KGNtZCwgMCwgc2l6ZW9mKCpjbWQpKTsNCisrDQorKwlj bWQtPmlkID0gX19jcHVfdG9fbGUzMihpZCk7DQorKwljbWQtPnZhbCA9IF9fY3B1X3RvX2xlMzIo dmFsKTsNCisrDQorKwlhdGgxMGtfZGJnKGFyLCBBVEgxMEtfREJHX1dNSSwNCisrCQkgICAid21p IHBkZXYgc2V0IHNwZWNpYWwgaWQ6JWQgdmFsOiAlZFxuIiwNCisrCQkgICBpZCwgdmFsKTsNCisr CXJldHVybiBhdGgxMGtfd21pX2NtZF9zZW5kKGFyLCBza2IsIFdNSV9QREVWX1NFVF9TUEVDSUFM X0NNRElEKTsNCisrfQ0KKysNCisgc3RhdGljIGNvbnN0IHN0cnVjdCB3bWlfb3BzIHdtaV9vcHMg PSB7DQorIAkucnggPSBhdGgxMGtfd21pX29wX3J4LA0KKyAJLm1hcF9zdmMgPSB3bWlfbWFpbl9z dmNfbWFwLA0KK2RpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dt aS5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway93bWkuaA0KK2luZGV4IDIyNDcz OWU5Mjc3Mi4uNjMzNDQyNzIwYmRmIDEwMDY0NA0KKy0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNz L2F0aC9hdGgxMGsvd21pLmgNCisrKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBr L3dtaS5oDQorQEAgLTk5NCw2ICs5OTQsNyBAQCBlbnVtIHdtaV8xMHhfY21kX2lkIHsNCisgCVdN SV8xMFhfR1BJT19DUFRDRkdfQ01ESUQsDQorIAlXTUlfMTBYX0dQSU9fT1VUUFVUX0NNRElELA0K KyANCisrCVdNSV9QREVWX1NFVF9TUEVDSUFMX0NNRElEID0gV01JXzEwWF9FTkRfQ01ESUQgLSAx MDEsIC8qIENUIG9ubHk6ICBzcGVjaWFsIGhhY2sgKGN0cy9zbG90L2NpZnMvYWNrIHRpbWVycywg ZXRjKSAqLw0KKyAJV01JX05PUCA9IFdNSV8xMFhfRU5EX0NNRElEIC0gMTAwLCAvKiBDVCBvbmx5 OiAgd21pIHRyYW5zcG9ydCBrZWVwLWFsaXZlLCBiYXNpY2FsbHkgKi8NCisgDQorIAlXTUlfMTBY X1BERVZfVVRGX0NNRElEID0gV01JXzEwWF9FTkRfQ01ESUQgLSAxLA0KK0BAIC00OTc4LDYgKzQ5 NzksMjUgQEAgc3RydWN0IHdtaV9wZGV2X3RlbXBlcmF0dXJlX2V2ZW50IHsNCisgCV9fbGUzMiB0 ZW1wZXJhdHVyZTsNCisgfSBfX3BhY2tlZDsNCisgDQorKy8qIENUIGZpcm13YXJlIG9ubHksIGFu ZCBvbmx5IGJ1aWxkcyBhZnRlciBKdW5lIDI2LCAyMDE1ICovDQorK3N0cnVjdCB3bWlfcGRldl9z ZXRfc3BlY2lhbF9jbWQgew0KKysjZGVmaW5lIFNFVF9TUEVDSUFMX0lEX0FDS19DVFMgMCAvKiBz ZXQgYWNrLWN0cy10aW1lb3V0IHJlZ2lzdGVyICovDQorKyNkZWZpbmUgU0VUX1NQRUNJQUxfSURf U0xPVCAgICAxIC8qIHNldCBzbG90LWR1cmF0aW9uIHJlZ2lzdGVyICovDQorKyNkZWZpbmUgU0VU X1NQRUNJQUxfSURfU0lGUyAgICAyIC8qIHNldCBzaWZzLWR1cmF0aW9uIHJlZ2lzdGVyICovDQor KyNkZWZpbmUgU0VUX1NQRUNJQUxfSURfVEhSRVNINjJfRVhUIDMgLyogc2V0IFBIWV9CQl9FWFRf Q0hBTl9QV1JfVEhSXzFfVEhSRVNINjJfRVhUIHJlZ2lzdGVyIGZpZWxkLi4uDQorKwkJCQkgICAg ICAgKiBpbmNyZWFzaW5nIHRoaXMgdG8gNDIgaGVscHMgYXQgbGVhc3QNCisrCQkJCSAgICAgICAq IG9uZSBjdXN0b21lciBwYXNzIHJlZ3VsYXRvcnkgdGVzdGluZywgZm9yIGluc3RhbmNlLiAgVGhp cyBpcw0KKysJCQkJICAgICAgICogc2FtZSByZWdpc3Rlci9maWVsZCBhczogUEhZX0JCX0VYVF9D SEFOX1BXUl9USFJfMV9USFJfQ0NBX0VYVDQwDQorKwkJCQkgICAgICAgKiB0aGlzIGlzIGFuIDgt Yml0IHZhbHVlLg0KKysJCQkJICAgICAgICovDQorKw0KKysgICAgX19sZTMyIGlkOw0KKysgICAg X19sZTMyIHZhbDsNCisrICAgIF9fbGUzMiBleHRyYTE7DQorKyAgICBfX2xlMzIgZXh0cmEyOw0K Kyt9Ow0KKytpbnQgYXRoMTBrX3dtaV9wZGV2X3NldF9zcGVjaWFsKHN0cnVjdCBhdGgxMGsgKmFy LCB1MzIgaWQsIHUzMiB2YWwpOw0KKysNCisgLyogV09XIHN0cnVjdHVyZXMgKi8NCisgZW51bSB3 bWlfd293X3dha2V1cF9ldmVudCB7DQorIAlXT1dfQk1JU1NfRVZFTlQgPSAwLA0KZGlmZiAtLWdp dCBhL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTAwODgtYXRoMTBrLUFkZC1j b21wYXRpYmlsaXR5LXdpdGgtb2xkZXItQ1QtZmlybXdhcmUucGF0Y2ggYi9wYWNrYWdlL2tlcm5l bC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDg4LWF0aDEway1BZGQtY29tcGF0aWJpbGl0eS13aXRo LW9sZGVyLUNULWZpcm13YXJlLnBhdGNoDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAw MDAwMC4uNzcyMDI3MA0KLS0tIC9kZXYvbnVsbA0KKysrIGIvcGFja2FnZS9rZXJuZWwvbWFjODAy MTEvcGF0Y2hlcy85OTktMDA4OC1hdGgxMGstQWRkLWNvbXBhdGliaWxpdHktd2l0aC1vbGRlci1D VC1maXJtd2FyZS5wYXRjaA0KQEAgLTAsMCArMSw2MCBAQA0KK0Zyb206IEJlbiBHcmVlYXIgPGdy ZWVhcmJAY2FuZGVsYXRlY2guY29tPg0KK0RhdGU6IE1vbiwgMyBBdWcgMjAxNSAxNjoxMTo0MiAt MDcwMA0KK1N1YmplY3Q6IFtQQVRDSF0gYXRoMTBrOiAgQWRkIGNvbXBhdGliaWxpdHkgd2l0aCBv bGRlciBDVCBmaXJtd2FyZS4NCisNCitBbmQgZml4IGEgbWlzLXBvcnRlZCBGVyBmZWF0dXJlIHRv IG1hdGNoIGV4aXN0aW5nDQorKGFuZCBmdXR1cmUpIGZpcm13YXJlLg0KKw0KK1NpZ25lZC1vZmYt Ynk6IEJlbiBHcmVlYXIgPGdyZWVhcmJAY2FuZGVsYXRlY2guY29tPg0KKy0tLQ0KKyBkcml2ZXJz L25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2NvcmUuYyB8IDEyICsrKysrKysrKysrKw0KKyBkcml2 ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2NvcmUuaCB8ICA2ICsrKy0tLQ0KKyAyIGZpbGVz IGNoYW5nZWQsIDE1IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pDQorDQorZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvY29yZS5jIGIvZHJpdmVycy9uZXQv d2lyZWxlc3MvYXRoL2F0aDEway9jb3JlLmMNCitpbmRleCAzOTBhYTYyNTYyMzkuLjMwNzg5MmI3 ODgwMyAxMDA2NDQNCistLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2NvcmUu Yw0KKysrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvY29yZS5jDQorQEAgLTg4 MCw2ICs4ODAsMTggQEAgZndfaWVfYnNzX2luZm9fY3Q6DQorIAkJZ290byBlcnI7DQorIAl9DQor IA0KKysJLyogT25seSBDVCBmaXJtd2FyZSBoYXMgQlNTIHN0dWZmLCBzbyB3ZSBjYW4gdXNlIHRo aXMgdG8gZml4IHVwDQorKwkgKiBmbGFncyBmb3IgYmFja3dhcmRzIGFuZCBmb3J3YXJkcyBjb21w YXQgd2l0aCBvbGRlci9uZXdlciBDVCBmaXJtd2FyZS4NCisrCSAqICh1cHN0cmVhbSBzdG9sZSBz b21lIGJpdHMgaXQgd2FzIHVzaW5nKQ0KKysJICovDQorKwlpZiAoYXItPmZ3LnJvbV9ic3NfYWRk cikgew0KKysJCWlmICh0ZXN0X2JpdCg1LCBhci0+ZndfZmVhdHVyZXMpKQ0KKysJCQlfX3NldF9i aXQoQVRIMTBLX0ZXX0ZFQVRVUkVfV01JXzEwWF9DVCwgYXItPmZ3X2ZlYXR1cmVzKTsNCisrDQor KwkJaWYgKHRlc3RfYml0KDYsIGFyLT5md19mZWF0dXJlcykpDQorKwkJCV9fc2V0X2JpdChBVEgx MEtfRldfRkVBVFVSRV9DVF9SWFNXQ1JZUFQsIGFyLT5md19mZWF0dXJlcyk7DQorKwl9DQorKw0K KyAJcmV0dXJuIDA7DQorIA0KKyBlcnI6DQorZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVs ZXNzL2F0aC9hdGgxMGsvY29yZS5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9j b3JlLmgNCitpbmRleCAzMDZhNWMwOGU0YTYuLjRlMTk5Njk4OTYxMiAxMDA2NDQNCistLS0gYS9k cml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2NvcmUuaA0KKysrKyBiL2RyaXZlcnMvbmV0 L3dpcmVsZXNzL2F0aC9hdGgxMGsvY29yZS5oDQorQEAgLTUxOCw2ICs1MTgsOSBAQCBlbnVtIGF0 aDEwa19md19mZWF0dXJlcyB7DQorIAkvKiBGaXJtd2FyZSBzdXBwb3J0cyBieXBhc3NpbmcgUExM IHNldHRpbmcgb24gaW5pdC4gKi8NCisgCUFUSDEwS19GV19GRUFUVVJFX1NVUFBPUlRTX1NLSVBf Q0xPQ0tfSU5JVCA9IDksDQorIA0KKysJLyogdHgtc3RhdHVzIGhhcyB0aGUgbm9hY2sgYml0cyAo Q1QgZmlybXdhcmUgdmVyc2lvbiAxNCBhbmQgaGlnaGVyICkgKi8NCisrCUFUSDEwS19GV19GRUFU VVJFX0hBU19UWFNUQVRVU19OT0FDSyA9IDMwLA0KKysNCisgCS8qIEZpcm13YXJlIGZyb20gQ2Fu ZGVsYSBUZWNobm9sb2dpZXMsIGVuYWJsZXMgbW9yZSBWSUZzLCBldGMgKi8NCisgCUFUSDEwS19G V19GRUFUVVJFX1dNSV8xMFhfQ1QgPSAzMSwNCisgDQorQEAgLTUyNiw5ICs1MjksNiBAQCBlbnVt IGF0aDEwa19md19mZWF0dXJlcyB7DQorIAkgKiBlbmNyeXB0aW9uIChpZSwgY29tbWVyY2lhbCB2 ZXJzaW9uIG9mIENUIGZpcm13YXJlKSAqLw0KKyAJQVRIMTBLX0ZXX0ZFQVRVUkVfQ1RfUlhTV0NS WVBUID0gMzIsDQorIA0KKy0JLyogdHgtc3RhdHVzIGhhcyB0aGUgbm9hY2sgYml0cyAoQ1QgZmly bXdhcmUgdmVyc2lvbiAxNCBhbmQgaGlnaGVyICkgKi8NCistCUFUSDEwS19GV19GRUFUVVJFX0hB U19UWFNUQVRVU19OT0FDSyA9IDMzLA0KKy0NCisgCS8qIGtlZXAgbGFzdCAqLw0KKyAJQVRIMTBL X0ZXX0ZFQVRVUkVfQ09VTlQsDQorIH07DQpkaWZmIC0tZ2l0IGEvcGFja2FnZS9rZXJuZWwvbWFj ODAyMTEvcGF0Y2hlcy85OTktMDA4OS1hdGgxMGstU3VwcG9ydC1DVC1maXJtd2FyZS1tYW5hZ2Vt ZW50LW92ZXItaHR0LnBhdGNoIGIvcGFja2FnZS9rZXJuZWwvbWFjODAyMTEvcGF0Y2hlcy85OTkt MDA4OS1hdGgxMGstU3VwcG9ydC1DVC1maXJtd2FyZS1tYW5hZ2VtZW50LW92ZXItaHR0LnBhdGNo DQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMC4uMGI0ZWNiOQ0KLS0tIC9kZXYv bnVsbA0KKysrIGIvcGFja2FnZS9rZXJuZWwvbWFjODAyMTEvcGF0Y2hlcy85OTktMDA4OS1hdGgx MGstU3VwcG9ydC1DVC1maXJtd2FyZS1tYW5hZ2VtZW50LW92ZXItaHR0LnBhdGNoDQpAQCAtMCww ICsxLDc1IEBADQorRnJvbTogQmVuIEdyZWVhciA8Z3JlZWFyYkBjYW5kZWxhdGVjaC5jb20+DQor RGF0ZTogTW9uLCAxMyBKdWwgMjAxNSAxMTo1ODo0NSAtMDcwMA0KK1N1YmplY3Q6IFtQQVRDSF0g YXRoMTBrOiBTdXBwb3J0IENUIGZpcm13YXJlIG1hbmFnZW1lbnQtb3Zlci1odHQuDQorDQorQ1Qg ZmlybXdhcmUgbm93IGFsc28gY29tZXMgaW4gJ2h0dC1tZ3QnIHZhcmlhbnRzLiAgVGhlc2UgYnVt cA0KK3RoZSBIVFQgdmVyc2lvbiB0byAyLjIgKGZyb20gMi4xKSBhbmQgc3VwcG9ydCBtYW5hZ2Vt ZW50IGZyYW1lcw0KK292ZXIgbm9ybWFsIGh0dCB0cmFuc3BvcnQuDQorDQorVGhpcyBwYXRjaCBl bmFibGVzIHRoaXMgZmlybXdhcmUgdG8gd29yayBwcm9wZXJseS4NCisNCitTaWduZWQtb2ZmLWJ5 OiBCZW4gR3JlZWFyIDxncmVlYXJiQGNhbmRlbGF0ZWNoLmNvbT4NCistLS0NCisgZHJpdmVycy9u ZXQvd2lyZWxlc3MvYXRoL2F0aDEway9jb3JlLmggICB8ICAxICsNCisgZHJpdmVycy9uZXQvd2ly ZWxlc3MvYXRoL2F0aDEway9odHRfcnguYyB8IDEwICsrKysrKysrKysNCisgZHJpdmVycy9uZXQv d2lyZWxlc3MvYXRoL2F0aDEway9tYWMuYyAgICB8ICA3ICsrKysrKysNCisgMyBmaWxlcyBjaGFu Z2VkLCAxOCBpbnNlcnRpb25zKCspDQorDQorZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVs ZXNzL2F0aC9hdGgxMGsvY29yZS5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9j b3JlLmgNCitpbmRleCA0ZTE5OTY5ODk2MTIuLmQwYjY0MDYwNmQyZSAxMDA2NDQNCistLS0gYS9k cml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2NvcmUuaA0KKysrKyBiL2RyaXZlcnMvbmV0 L3dpcmVsZXNzL2F0aC9hdGgxMGsvY29yZS5oDQorQEAgLTYyMSw2ICs2MjEsNyBAQCBzdHJ1Y3Qg YXRoMTBrIHsNCisgCURFQ0xBUkVfQklUTUFQKGZ3X2ZlYXR1cmVzLCBBVEgxMEtfRldfRkVBVFVS RV9DT1VOVCk7DQorIA0KKyAJYm9vbCBwMnA7DQorKwlib29sIGN0X2FsbF9wa3RzX2h0dDsgLyog Q1QgZmlybXdhcmUgb25seTogbmF0aXZlLXdpZmkgZm9yIGFsbCBwa3RzICovDQorIA0KKyAJc3Ry dWN0IHsNCisgCQllbnVtIGF0aDEwa19idXMgYnVzOw0KK2RpZmYgLS1naXQgYS9kcml2ZXJzL25l dC93aXJlbGVzcy9hdGgvYXRoMTBrL2h0dF9yeC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRo L2F0aDEway9odHRfcnguYw0KK2luZGV4IDUyMWY5NTYwOTM0NS4uY2EzZmYxY2NlNTNhIDEwMDY0 NA0KKy0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvaHR0X3J4LmMNCisrKysg Yi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2h0dF9yeC5jDQorQEAgLTE5ODUsNiAr MTk4NSwxNiBAQCB2b2lkIGF0aDEwa19odHRfdDJoX21zZ19oYW5kbGVyKHN0cnVjdCBhdGgxMGsg KmFyLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQ0KKyAJY2FzZSBIVFRfVDJIX01TR19UWVBFX1ZFUlNJ T05fQ09ORjogew0KKyAJCWh0dC0+dGFyZ2V0X3ZlcnNpb25fbWFqb3IgPSByZXNwLT52ZXJfcmVz cC5tYWpvcjsNCisgCQlodHQtPnRhcmdldF92ZXJzaW9uX21pbm9yID0gcmVzcC0+dmVyX3Jlc3Au bWlub3I7DQorKw0KKysJCS8qIENUIGZpcm13YXJlIHdpdGggSFRULU1HVD8gIE5vIG9mZmljaWFs IGZpcm13YXJlIGhhcyB0aGlzDQorKwkJICogaHR0IHZlcnNpb24gY29tYmluYXRpb24gYXMgZmFy IGFzIEkgYW0gYXdhcmUuIC0tQmVuDQorKwkJICovDQorKwkJaWYgKChodHQtPnRhcmdldF92ZXJz aW9uX21ham9yID09IDIgJiYNCisrCQkgICAgIGh0dC0+dGFyZ2V0X3ZlcnNpb25fbWlub3IgPT0g MikpDQorKwkJCWFyLT5jdF9hbGxfcGt0c19odHQgPSB0cnVlOw0KKysJCWVsc2UNCisrCQkJYXIt PmN0X2FsbF9wa3RzX2h0dCA9IGZhbHNlOw0KKysNCisgCQljb21wbGV0ZSgmaHR0LT50YXJnZXRf dmVyc2lvbl9yZWNlaXZlZCk7DQorIAkJYnJlYWs7DQorIAl9DQorZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvbWFjLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9h dGgvYXRoMTBrL21hYy5jDQoraW5kZXggYjBkMWVkNTg1NDJkLi5kOWU0MTZlZDE4OGYgMTAwNjQ0 DQorLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9tYWMuYw0KKysrKyBiL2Ry aXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvbWFjLmMNCitAQCAtMzE4NSw2ICszMTg1LDEy IEBAIGF0aDEwa190eF9oX2dldF90eG1vZGUoc3RydWN0IGF0aDEwayAqYXIsIHN0cnVjdCBpZWVl ODAyMTFfdmlmICp2aWYsDQorIAlpZiAoIXZpZiB8fCB2aWYtPnR5cGUgPT0gTkw4MDIxMV9JRlRZ UEVfTU9OSVRPUikNCisgCQlyZXR1cm4gQVRIMTBLX0hXX1RYUlhfUkFXOw0KKyANCisrCS8qIENU IEZpcm13YXJlIHdpdGggSFRULVRYIHN1cHBvcnQgc2VuZHMgYWxsIGZyYW1lcywgaW5jbHVkaW5n DQorKwkgKiBtYW5hZ2VtZW50IGZyYW1lcywgb3ZlciBIVFQgaW4gTkFUSVZFLVdJRkkgZm9ybWF0 Lg0KKysJICovDQorKwlpZiAoYXItPmN0X2FsbF9wa3RzX2h0dCkNCisrCQlnb3RvIGRvX25hdGl2 ZV9tZ3RfY3Q7DQorKw0KKyAJaWYgKGllZWU4MDIxMV9pc19tZ210KGZjKSkNCisgCQlyZXR1cm4g QVRIMTBLX0hXX1RYUlhfTUdNVDsNCisgDQorQEAgLTMyMTUsNiArMzIyMSw3IEBAIGF0aDEwa190 eF9oX2dldF90eG1vZGUoc3RydWN0IGF0aDEwayAqYXIsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2 aWYsDQorIAkgKiBOYXRpdmVXaWZpIHR4bW9kZSAtIGl0IHNlbGVjdHMgQVAga2V5IGluc3RlYWQg b2YgcGVlciBrZXkuIEl0IHNlZW1zDQorIAkgKiB0byB3b3JrIHdpdGggRXRoZXJuZXQgdHhtb2Rl IHNvIHVzZSBpdC4NCisgCSAqLw0KKytkb19uYXRpdmVfbWd0X2N0Og0KKyAJaWYgKGllZWU4MDIx MV9pc19kYXRhX3ByZXNlbnQoZmMpICYmIHN0YSAmJiBzdGEtPnRkbHMpDQorIAkJcmV0dXJuIEFU SDEwS19IV19UWFJYX0VUSEVSTkVUOw0KKyANCmRpZmYgLS1naXQgYS9wYWNrYWdlL2tlcm5lbC9t YWM4MDIxMS9wYXRjaGVzLzk5OS0wMDkwLWF0aDEway1maXJtd2FyZS1kYmdsb2ctbm93LXByaW50 cy1wY2ktaWQucGF0Y2ggYi9wYWNrYWdlL2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDkw LWF0aDEway1maXJtd2FyZS1kYmdsb2ctbm93LXByaW50cy1wY2ktaWQucGF0Y2gNCm5ldyBmaWxl IG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwLi4wZjI4Mjg0DQotLS0gL2Rldi9udWxsDQorKysg Yi9wYWNrYWdlL2tlcm5lbC9tYWM4MDIxMS9wYXRjaGVzLzk5OS0wMDkwLWF0aDEway1maXJtd2Fy ZS1kYmdsb2ctbm93LXByaW50cy1wY2ktaWQucGF0Y2gNCkBAIC0wLDAgKzEsNDkgQEANCitGcm9t OiBCZW4gR3JlZWFyIDxncmVlYXJiQGNhbmRlbGF0ZWNoLmNvbT4NCitEYXRlOiBUaHUsIDMwIEp1 bCAyMDE1IDE2OjE0OjM3IC0wNzAwDQorU3ViamVjdDogW1BBVENIXSBhdGgxMGs6IGZpcm13YXJl IGRiZ2xvZyBub3cgcHJpbnRzIHBjaS1pZC4NCisNCitBbHNvLCBwcmludCB3YXJuaW5nIGlmIGZp cm13YXJlIHJlcG9ydHMgYSBkcm9wcGVkDQorZGVidWctYnVmZmVyLCBhbmQgZml4IGEgY29tcGls ZSB3YXJuaW5nIGZyb20gYSBwcmV2aW91cw0KK2NvbW1pdC4NCisNCitTaWduZWQtb2ZmLWJ5OiBC ZW4gR3JlZWFyIDxncmVlYXJiQGNhbmRlbGF0ZWNoLmNvbT4NCistLS0NCisgZHJpdmVycy9uZXQv d2lyZWxlc3MvYXRoL2F0aDEway9kZWJ1Zy5jIHwgNCArKy0tDQorIGRyaXZlcnMvbmV0L3dpcmVs ZXNzL2F0aC9hdGgxMGsvd21pLmMgICB8IDMgKysrDQorIDIgZmlsZXMgY2hhbmdlZCwgNSBpbnNl cnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQ0KKw0KK2RpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93 aXJlbGVzcy9hdGgvYXRoMTBrL2RlYnVnLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRo MTBrL2RlYnVnLmMNCitpbmRleCAwYzA0MzM4ODIxYzkuLmIwMjYyZWVjMWUwZSAxMDA2NDQNCist LS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2RlYnVnLmMNCisrKysgYi9kcml2 ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2RlYnVnLmMNCitAQCAtMjgyMCw3ICsyODIwLDcg QEAgdm9pZCBhdGgxMGtfZGJnX3ByaW50X2Z3X2RiZ19idWZmZXIoc3RydWN0IGF0aDEwayAqYXIs IF9fbGUzMiAqaWJ1ZiwgaW50IGxlbiwNCisgCSAqLw0KKyAJaW50IHEgPSAwOw0KKyANCistCXBy aW50aygiJXNBVEgxMEtfREJHX0JVRkZFUjpcbiIsIGx2bCk7DQorKwlkZXZfcHJpbnRrKGx2bCwg YXItPmRldiwgImF0aDEwa19wY2kgQVRIMTBLX0RCR19CVUZGRVI6XG4iKTsNCisgCXdoaWxlIChx IDwgbGVuKSB7DQorIAkJaWYgKHEgKyA4IDw9IGxlbikgew0KKyAJCQlwcmludGsoIiVzYXRoMTBr OiBbJTA0ZF06ICUwOFggJTA4WCAlMDhYICUwOFggJTA4WCAlMDhYICUwOFggJTA4WFxuIiwNCitA QCAtMjg3OSw2ICsyODc5LDYgQEAgdm9pZCBhdGgxMGtfZGJnX3ByaW50X2Z3X2RiZ19idWZmZXIo c3RydWN0IGF0aDEwayAqYXIsIF9fbGUzMiAqaWJ1ZiwgaW50IGxlbiwNCisgCQl9DQorIAl9Lyog d2hpbGUgKi8NCisgDQorLQlwcmludGsoIiVzQVRIMTBLX0VORFxuIiwgbHZsKTsNCisrCWRldl9w cmludGsobHZsLCBhci0+ZGV2LCAiQVRIMTBLX0VORFxuIik7DQorIH0NCisgRVhQT1JUX1NZTUJP TChhdGgxMGtfZGJnX3ByaW50X2Z3X2RiZ19idWZmZXIpOw0KK2RpZmYgLS1naXQgYS9kcml2ZXJz L25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRo L2F0aDEway93bWkuYw0KK2luZGV4IGJhMGNkYjE3ZjQ2OC4uZDEyZGQ0Y2UxNGQ4IDEwMDY0NA0K Ky0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvd21pLmMNCisrKysgYi9kcml2 ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3dtaS5jDQorQEAgLTE3MjgsNiArMTcyOCw5IEBA IGludCBhdGgxMGtfd21pX2V2ZW50X2RlYnVnX21lc2coc3RydWN0IGF0aDEwayAqYXIsIHN0cnVj dCBza19idWZmICpza2IpDQorIAkJCQkgICAgICAoc2tiLT5sZW4gLSA0KS9zaXplb2YoX19sZTMy KSk7DQorIAlzcGluX3VubG9ja19iaCgmYXItPmRhdGFfbG9jayk7DQorIA0KKysJaWYgKGV2LT5k cm9wcGVkX2NvdW50KQ0KKysJCWF0aDEwa193YXJuKGFyLCAiV0FSTklORzogRHJvcHBlZCBkYmds b2cgYnVmZmVyczogJWRcbiIsIF9fbGUzMl90b19jcHUoZXYtPmRyb3BwZWRfY291bnQpKTsNCisr DQorIAlpZiAoYXRoMTBrX2RlYnVnX21hc2sgJiBBVEgxMEtfREJHX0ZXKQ0KKyAJCWF0aDEwa19k YmdfcHJpbnRfZndfZGJnX2J1ZmZlcihhciwgZXYtPm1lc3NhZ2VzLA0KKyAJCQkJCSAgICAgICAo c2tiLT5sZW4gLSA0KS9zaXplb2YoX19sZTMyKSwNCmRpZmYgLS1naXQgYS9wYWNrYWdlL2tlcm5l bC9tYWM4MDIxMS9wYXRjaGVzLzk5OS05MDAxLWF0aDEway1FbmFibGUtVkhULXN1cHBvcnQtaW4t SUJTUy1tb2RlLnBhdGNoIGIvcGFja2FnZS9rZXJuZWwvbWFjODAyMTEvcGF0Y2hlcy85OTktOTAw MS1hdGgxMGstRW5hYmxlLVZIVC1zdXBwb3J0LWluLUlCU1MtbW9kZS5wYXRjaA0KbmV3IGZpbGUg bW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAuLjI0ZmVjYmMNCi0tLSAvZGV2L251bGwNCisrKyBi L3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTkwMDEtYXRoMTBrLUVuYWJsZS1W SFQtc3VwcG9ydC1pbi1JQlNTLW1vZGUucGF0Y2gNCkBAIC0wLDAgKzEsMjAgQEANCitGcm9tOiBT dmVuIEVja2VsbWFubiA8c3ZlbkBuYXJmYXRpb24ub3JnPg0KK0RhdGU6IE1vbiwgMTYgTWFyIDIw MTUgMTY6NTY6NDYgKzAxMDANCitTdWJqZWN0OiBbUEFUQ0hdIGF0aDEwazogRW5hYmxlIFZIVCBz dXBwb3J0IGluIElCU1MgbW9kZQ0KKy0tLQ0KKyBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRo MTBrL21hYy5jIHwgMiArKw0KKyAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspDQorDQor ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvbWFjLmMgYi9kcml2 ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL21hYy5jDQoraW5kZXggZjg0ZjdhOTE4OTYyLi4y NDQ5NzFiZjI5ZDUgMTAwNjQ0DQorLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEw ay9tYWMuYw0KKysrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvbWFjLmMNCitA QCAtNzAyOCw2ICs3MDI4LDggQEAgaW50IGF0aDEwa19tYWNfcmVnaXN0ZXIoc3RydWN0IGF0aDEw ayAqYXIpDQorIAkJZ290byBlcnJfZnJlZTsNCisgCX0NCisgDQorKwl3aXBoeV9leHRfZmVhdHVy ZV9zZXQoYXItPmh3LT53aXBoeSwgTkw4MDIxMV9FWFRfRkVBVFVSRV9WSFRfSUJTUyk7DQorKw0K KyAJLyoNCisgCSAqIG9uIExMIGhhcmR3YXJlIHF1ZXVlcyBhcmUgbWFuYWdlZCBlbnRpcmVseSBi eSB0aGUgRlcNCisgCSAqIHNvIHdlIG9ubHkgYWR2ZXJ0aXNlIHRvIG1hYyB3ZSBjYW4gZG8gdGhl IHF1ZXVlcyB0aGluZw0KZGlmZiAtLWdpdCBhL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNo ZXMvOTk5LTkwMDItYXRoMTBrLURpc2FibGUtc3RhdGljLVNNUFMtZm9yLUhULU1DUy03LXRlc3Qt d2l0aC1hdC5wYXRjaCBiL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTkwMDIt YXRoMTBrLURpc2FibGUtc3RhdGljLVNNUFMtZm9yLUhULU1DUy03LXRlc3Qtd2l0aC1hdC5wYXRj aA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAuLjdlYmM4OTENCi0tLSAvZGV2 L251bGwNCisrKyBiL3BhY2thZ2Uva2VybmVsL21hYzgwMjExL3BhdGNoZXMvOTk5LTkwMDItYXRo MTBrLURpc2FibGUtc3RhdGljLVNNUFMtZm9yLUhULU1DUy03LXRlc3Qtd2l0aC1hdC5wYXRjaA0K QEAgLTAsMCArMSw2MSBAQA0KK0Zyb206IFN2ZW4gRWNrZWxtYW5uIDxzdmVuQG5hcmZhdGlvbi5v cmc+DQorRGF0ZTogVHVlLCAxNyBNYXIgMjAxNSAxODoxMDoyNyArMDEwMA0KK1N1YmplY3Q6IFtQ QVRDSF0gYXRoMTBrOiBEaXNhYmxlIHN0YXRpYyBTTVBTIGZvciBIVC1NQ1MgPiA3IHRlc3Qgd2l0 aCBhdGg5aw0KKw0KK3N0YXRpYyBTTVBTIGxpbWl0cyByYXRlIGNvbnRyb2wgKG1pbnN0cmVsX2h0 KSB0byBvbmUgc3RyZWFtDQorLS0tDQorIGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsv bWFjLmMgfCAxMyArKysrKysrKysrKysrDQorIDEgZmlsZSBjaGFuZ2VkLCAxMyBpbnNlcnRpb25z KCspDQorDQorZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvbWFj LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL21hYy5jDQoraW5kZXggMjQ0OTcx YmYyOWQ1Li5lNmRlNjljMmVmODQgMTAwNjQ0DQorLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3Mv YXRoL2F0aDEway9tYWMuYw0KKysrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsv bWFjLmMNCitAQCAtNjc4NSw3ICs2Nzg1LDkgQEAgc3RhdGljIHN0cnVjdCBpZWVlODAyMTFfc3Rh X2h0X2NhcCBhdGgxMGtfZ2V0X2h0X2NhcChzdHJ1Y3QgYXRoMTBrICphcikNCisgCWh0X2NhcC5h bXBkdV9kZW5zaXR5ID0gSUVFRTgwMjExX0hUX01QRFVfREVOU0lUWV84Ow0KKyAJaHRfY2FwLmNh cCB8PSBJRUVFODAyMTFfSFRfQ0FQX1NVUF9XSURUSF8yMF80MDsNCisgCWh0X2NhcC5jYXAgfD0g SUVFRTgwMjExX0hUX0NBUF9EU1NTQ0NLNDA7DQorKyNpZiAwDQorIAlodF9jYXAuY2FwIHw9IFdM QU5fSFRfQ0FQX1NNX1BTX1NUQVRJQyA8PCBJRUVFODAyMTFfSFRfQ0FQX1NNX1BTX1NISUZUOw0K KysjZW5kaWYNCisgDQorIAlpZiAoYXItPmh0X2NhcF9pbmZvICYgV01JX0hUX0NBUF9IVDIwX1NH SSkNCisgCQlodF9jYXAuY2FwIHw9IElFRUU4MDIxMV9IVF9DQVBfU0dJXzIwOw0KK0BAIC02Nzkz LDE0ICs2Nzk1LDIwIEBAIHN0YXRpYyBzdHJ1Y3QgaWVlZTgwMjExX3N0YV9odF9jYXAgYXRoMTBr X2dldF9odF9jYXAoc3RydWN0IGF0aDEwayAqYXIpDQorIAlpZiAoYXItPmh0X2NhcF9pbmZvICYg V01JX0hUX0NBUF9IVDQwX1NHSSkNCisgCQlodF9jYXAuY2FwIHw9IElFRUU4MDIxMV9IVF9DQVBf U0dJXzQwOw0KKyANCisrI2lmIDANCisgCWlmIChhci0+aHRfY2FwX2luZm8gJiBXTUlfSFRfQ0FQ X0RZTkFNSUNfU01QUykgew0KKyAJCXUzMiBzbXBzOw0KKyANCisrCQkvKiBUT0RPICovDQorIAkJ c21wcyAgID0gV0xBTl9IVF9DQVBfU01fUFNfRFlOQU1JQzsNCisgCQlzbXBzIDw8PSBJRUVFODAy MTFfSFRfQ0FQX1NNX1BTX1NISUZUOw0KKyANCisgCQlodF9jYXAuY2FwIHw9IHNtcHM7DQorIAl9 DQorKyNlbHNlDQorKwkvKiBkaXNhYmxlIHNtX3BzIGJlY2F1c2UgaXQgbGltaXRzIHJhdGVzIHRv IHNpbmdsZSBzdHJlYW0gKi8NCisrCWh0X2NhcC5jYXAgfD0gSUVFRTgwMjExX0hUX0NBUF9TTV9Q UzsNCisrI2VuZGlmDQorIA0KKyAJaWYgKGFyLT5odF9jYXBfaW5mbyAmIFdNSV9IVF9DQVBfVFhf U1RCQykNCisgCQlodF9jYXAuY2FwIHw9IElFRUU4MDIxMV9IVF9DQVBfVFhfU1RCQzsNCitAQCAt Njk3OCwxMSArNjk4NiwxNiBAQCBpbnQgYXRoMTBrX21hY19yZWdpc3RlcihzdHJ1Y3QgYXRoMTBr ICphcikNCisgCWllZWU4MDIxMV9od19zZXQoYXItPmh3LCBRVUVVRV9DT05UUk9MKTsNCisgCWll ZWU4MDIxMV9od19zZXQoYXItPmh3LCBTVVBQT1JUX0ZBU1RfWE1JVCk7DQorIA0KKysjaWYgMA0K KysJLyogVE9ETyAqLw0KKyAJYXItPmh3LT53aXBoeS0+ZmVhdHVyZXMgfD0gTkw4MDIxMV9GRUFU VVJFX1NUQVRJQ19TTVBTOw0KKysjZW5kaWYNCisgCWFyLT5ody0+d2lwaHktPmZsYWdzIHw9IFdJ UEhZX0ZMQUdfSUJTU19SU047DQorIA0KKysjaWYgMA0KKyAJaWYgKGFyLT5odF9jYXBfaW5mbyAm IFdNSV9IVF9DQVBfRFlOQU1JQ19TTVBTKQ0KKyAJCWFyLT5ody0+d2lwaHktPmZlYXR1cmVzIHw9 IE5MODAyMTFfRkVBVFVSRV9EWU5BTUlDX1NNUFM7DQorKyNlbmRpZg0KKyANCisgCWlmIChhci0+ aHRfY2FwX2luZm8gJiBXTUlfSFRfQ0FQX0VOQUJMRUQpIHsNCisgCQlpZWVlODAyMTFfaHdfc2V0 KGFyLT5odywgQU1QRFVfQUdHUkVHQVRJT04pOw0KZGlmZiAtLWdpdCBhL3RhcmdldC9saW51eC9n ZW5lcmljL3BhdGNoZXMtNC4xLzk5OS1icmlkZ2UtRG8tbm90LWVuYWJsZS1QUk9NSVNDLW1vZGUt d2hlbi1hZGRpbmctQVAucGF0Y2ggYi90YXJnZXQvbGludXgvZ2VuZXJpYy9wYXRjaGVzLTQuMS85 OTktYnJpZGdlLURvLW5vdC1lbmFibGUtUFJPTUlTQy1tb2RlLXdoZW4tYWRkaW5nLUFQLnBhdGNo DQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMC4uYTAyNGQ0Mg0KLS0tIC9kZXYv bnVsbA0KKysrIGIvdGFyZ2V0L2xpbnV4L2dlbmVyaWMvcGF0Y2hlcy00LjEvOTk5LWJyaWRnZS1E by1ub3QtZW5hYmxlLVBST01JU0MtbW9kZS13aGVuLWFkZGluZy1BUC5wYXRjaA0KQEAgLTAsMCAr MSw1MyBAQA0KK0Zyb206IEJlbiBHcmVlYXIgPGdyZWVhcmJAY2FuZGVsYXRlY2guY29tPg0KK0Rh dGU6IE1vbiwgMTMgSnVsIDIwMTUgMTY6MDc6NDAgLTA3MDANCitTdWJqZWN0OiBbUEFUQ0hdIGJy aWRnZTogRG8gbm90IGVuYWJsZSBQUk9NSVNDIG1vZGUgd2hlbiBhZGRpbmcgQVAuDQorDQorVGhp cyBmaXhlcyBhdGgxMGsgaW5zdGFiaWxpdHkgaW4gUFJPTUlTQyBtb2RlLCBhbmQgc2hvdWxkDQor aW1wcm92ZSBicmlkZ2VkIEFQIHBlcmZvcm1hbmNlIGluIGJ1c3kgZW52aXJvbm1lbnRzLg0KKw0K K1NlZSB0aGlzIGZvciBvcmlnaW5hbCBpZGVhIGFuZCBkZXNjcmlwdGlvbjoNCisNCitodHRwOi8v bGlzdHMuY2VsaW51eGZvcnVtLm9yZy9waXBlcm1haWwvYnJpZGdlLzIwMDgtSnVuZS8wMDU5MDYu aHRtbA0KKw0KK1NpZ25lZC1vZmYtYnk6IEJlbiBHcmVlYXIgPGdyZWVhcmJAY2FuZGVsYXRlY2gu Y29tPg0KKy0tLQ0KKyBuZXQvYnJpZGdlL2JyX2lmLmMgfCAxMiArKysrKysrKy0tLS0NCisgMSBm aWxlIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkNCisNCitkaWZmIC0t Z2l0IGEvbmV0L2JyaWRnZS9icl9pZi5jIGIvbmV0L2JyaWRnZS9icl9pZi5jDQoraW5kZXggMTg0 OWQ5NmIzYzkxLi43ZGRiMTAyM2U5ZjQgMTAwNjQ0DQorLS0tIGEvbmV0L2JyaWRnZS9icl9pZi5j DQorKysrIGIvbmV0L2JyaWRnZS9icl9pZi5jDQorQEAgLTkyLDcgKzkyLDggQEAgc3RhdGljIHZv aWQgYnJfcG9ydF9zZXRfcHJvbWlzYyhzdHJ1Y3QgbmV0X2JyaWRnZV9wb3J0ICpwKQ0KKyAJaWYg KGJyX3Byb21pc2NfcG9ydChwKSkNCisgCQlyZXR1cm47DQorIA0KKy0JZXJyID0gZGV2X3NldF9w cm9taXNjdWl0eShwLT5kZXYsIDEpOw0KKysJaWYgKCFwLT5kZXYtPmllZWU4MDIxMV9wdHIpDQor KwkJZXJyID0gZGV2X3NldF9wcm9taXNjdWl0eShwLT5kZXYsIDEpOw0KKyAJaWYgKGVycikNCisg CQlyZXR1cm47DQorIA0KK0BAIC0xMTksNyArMTIwLDggQEAgc3RhdGljIHZvaWQgYnJfcG9ydF9j bGVhcl9wcm9taXNjKHN0cnVjdCBuZXRfYnJpZGdlX3BvcnQgKnApDQorIAlpZiAoZXJyKQ0KKyAJ CXJldHVybjsNCisgDQorLQlkZXZfc2V0X3Byb21pc2N1aXR5KHAtPmRldiwgLTEpOw0KKysJaWYg KCFwLT5kZXYtPmllZWU4MDIxMV9wdHIpDQorKwkJZGV2X3NldF9wcm9taXNjdWl0eShwLT5kZXYs IC0xKTsNCisgCXAtPmZsYWdzICY9IH5CUl9QUk9NSVNDOw0KKyB9DQorIA0KK0BAIC0xODQsOCAr MTg2LDEwIEBAIHN0YXRpYyB2b2lkIG5icF9kZWxldGVfcHJvbWlzYyhzdHJ1Y3QgbmV0X2JyaWRn ZV9wb3J0ICpwKQ0KKyAJICogZnJvbSBpdC4NCisgCSAqLw0KKyAJZGV2X3NldF9hbGxtdWx0aShw LT5kZXYsIC0xKTsNCistCWlmIChicl9wcm9taXNjX3BvcnQocCkpDQorLQkJZGV2X3NldF9wcm9t aXNjdWl0eShwLT5kZXYsIC0xKTsNCisrCWlmIChicl9wcm9taXNjX3BvcnQocCkpIHsNCisrCQlp ZiAoIXAtPmRldi0+aWVlZTgwMjExX3B0cikNCisrCQkJZGV2X3NldF9wcm9taXNjdWl0eShwLT5k ZXYsIC0xKTsNCisrCX0NCisgCWVsc2UNCisgCQlicl9mZGJfdW5zeW5jX3N0YXRpYyhwLT5iciwg cCk7DQorIH0NCg== --bcaec548a4e919259e051ea19ecb Content-Type: text/x-patch; charset=UTF-8; name="0002-iw-Hardcode-VHT-channel-36-in-iw-for-testing.patch" Content-Disposition: attachment; filename="0002-iw-Hardcode-VHT-channel-36-in-iw-for-testing.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: cd9a03766adb31dc_0.2 RnJvbSAzZGUzNDdjMWY4M2IwOWYxYWM0MTkwYTY2ZDUzOTkyMTE2ZmE2NmQyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQ0KRnJvbTogU3ZlbiBFY2tlbG1hbm4gPHN2ZW5Ab3Blbi1tZXNoLmNvbT4N CkRhdGU6IE1vbiwgMTYgTWFyIDIwMTUgMTc6Mjg6MzkgKzAxMDANClN1YmplY3Q6IFtQQVRDSF0g aXc6IEhhcmRjb2RlIFZIVCBjaGFubmVsIDM2IGluIGl3IGZvciB0ZXN0aW5nDQoNCi0tLQ0KIC4u Li9pdy9wYXRjaGVzLzMwMC1oYXJkY29kZS12aHQ4MC1jaGFuMzYucGF0Y2ggICAgIHwgMjcgKysr KysrKysrKysrKysrKysrKysrKw0KIDEgZmlsZSBjaGFuZ2VkLCAyNyBpbnNlcnRpb25zKCspDQog Y3JlYXRlIG1vZGUgMTAwNjQ0IHBhY2thZ2UvbmV0d29yay91dGlscy9pdy9wYXRjaGVzLzMwMC1o YXJkY29kZS12aHQ4MC1jaGFuMzYucGF0Y2gNCg0KZGlmZiAtLWdpdCBhL3BhY2thZ2UvbmV0d29y ay91dGlscy9pdy9wYXRjaGVzLzMwMC1oYXJkY29kZS12aHQ4MC1jaGFuMzYucGF0Y2ggYi9wYWNr YWdlL25ldHdvcmsvdXRpbHMvaXcvcGF0Y2hlcy8zMDAtaGFyZGNvZGUtdmh0ODAtY2hhbjM2LnBh dGNoDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMC4uMGNjMzQyNQ0KLS0tIC9k ZXYvbnVsbA0KKysrIGIvcGFja2FnZS9uZXR3b3JrL3V0aWxzL2l3L3BhdGNoZXMvMzAwLWhhcmRj b2RlLXZodDgwLWNoYW4zNi5wYXRjaA0KQEAgLTAsMCArMSwyNyBAQA0KK2RpZmYgLS1naXQgYS9p YnNzLmMgYi9pYnNzLmMNCitpbmRleCAxYmYxYmFiLi42ZjMzMmNlIDEwMDY0NA0KKy0tLSBhL2li c3MuYw0KKysrKyBiL2lic3MuYw0KK0BAIC04OSwxMCArODksMTAgQEAgc3RhdGljIGludCBqb2lu X2lic3Moc3RydWN0IG5sODAyMTFfc3RhdGUgKnN0YXRlLA0KKyAJCX0NCisgCQlpZiAoY2hhbm1v ZGVfc2VsZWN0ZWQpIHsNCisgCQkJTkxBX1BVVF9VMzIobXNnLCBOTDgwMjExX0FUVFJfQ0hBTk5F TF9XSURUSCwNCistCQkJCSAgICBjaGFubW9kZV9zZWxlY3RlZC0+d2lkdGgpOw0KKysJCQkJICAg Tkw4MDIxMV9DSEFOX1dJRFRIXzgwKTsNCisgCQkJTkxBX1BVVF9VMzIobXNnLCBOTDgwMjExX0FU VFJfQ0VOVEVSX0ZSRVExLA0KKy0JCQkJICAgIGZyZXEgKyBjaGFubW9kZV9zZWxlY3RlZC0+ZnJl cTFfZGlmZik7DQorLQkJCWlmIChjaGFubW9kZV9zZWxlY3RlZC0+Y2hhbnR5cGUgIT0gLTEpDQor KwkJCQkgICAgNTIxMCk7DQorKwkJCWlmIChjaGFubW9kZV9zZWxlY3RlZC0+Y2hhbnR5cGUgIT0g LTEgJiYgMCkNCisgCQkJCU5MQV9QVVRfVTMyKG1zZywNCisgCQkJCQkgICAgTkw4MDIxMV9BVFRS X1dJUEhZX0NIQU5ORUxfVFlQRSwNCisgCQkJCQkgICAgY2hhbm1vZGVfc2VsZWN0ZWQtPmNoYW50 eXBlKTsNCitAQCAtMTk0LDcgKzE5NCw3IEBAIENPTU1BTkQoaWJzcywgbGVhdmUsIE5VTEwsDQor IAlOTDgwMjExX0NNRF9MRUFWRV9JQlNTLCAwLCBDSUJfTkVUREVWLCBsZWF2ZV9pYnNzLA0KKyAJ IkxlYXZlIHRoZSBjdXJyZW50IElCU1MgY2VsbC4iKTsNCisgQ09NTUFORChpYnNzLCBqb2luLA0K Ky0JIjxTU0lEPiA8ZnJlcSBpbiBNSHo+IFtIVDIwfEhUNDArfEhUNDAtfE5PSFR8NU1IWnwxME1I Wl0gW2ZpeGVkLWZyZXFdIFs8Zml4ZWQgYnNzaWQ+XSBbYmVhY29uLWludGVydmFsIDxUVT5dIg0K KysJIjxTU0lEPiA8ZnJlcSBpbiBNSHo+IFtIVDIwfEhUNDArfEhUNDAtfEhUODB8SFQ4MCs4MHxI VDE2MHxOT0hUfDVNSFp8MTBNSFpdIFtmaXhlZC1mcmVxXSBbPGZpeGVkIGJzc2lkPl0gW2JlYWNv bi1pbnRlcnZhbCA8VFU+XSINCisgCSIgW2Jhc2ljLXJhdGVzIDxyYXRlIGluIE1icHMscmF0ZTIs Li4uPl0gW21jYXN0LXJhdGUgPHJhdGUgaW4gTWJwcz5dICINCisgCSJba2V5IGQ6MDphYmNkZV0i LA0KKyAJTkw4MDIxMV9DTURfSk9JTl9JQlNTLCAwLCBDSUJfTkVUREVWLCBqb2luX2lic3MsDQot LSANCjIuNS4wDQoNCg== --bcaec548a4e919259e051ea19ecb--