Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w8ABq-000GbA-0C for pgsql-hackers@arkaria.postgresql.org; Thu, 02 Apr 2026 05:01:58 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w8ABn-0040PP-32 for pgsql-hackers@arkaria.postgresql.org; Thu, 02 Apr 2026 05:01:56 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w8ABn-0040PH-0a for pgsql-hackers@lists.postgresql.org; Thu, 02 Apr 2026 05:01:56 +0000 Received: from mail-oo1-xc2e.google.com ([2607:f8b0:4864:20::c2e]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w8ABk-0000000081x-0bvc for pgsql-hackers@lists.postgresql.org; Thu, 02 Apr 2026 05:01:54 +0000 Received: by mail-oo1-xc2e.google.com with SMTP id 006d021491bc7-67bad873c3eso280777eaf.3 for ; Wed, 01 Apr 2026 22:01:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1775106111; cv=none; d=google.com; s=arc-20240605; b=gAUFyu6nALxC9pAXyOQg26LyJ55+nA0f7FPM4dzwD6564V4KWCseQAaKySyYqmXKUq oixlmaD6NX7rDzxebkkaTSnVlV/Tg3cOz7ONUaLY5Z0juAnpVmQzFYPJmQHCLA1Tf76k BiOOrODBkky3YzLJpEyop+qzI+S3UL5JVYCX/EfTkwvnmCqapQHurO3RdSEIrR7jhkZY ta2A1ctZATNKTilZ4YXW9/zGqn+cH5N/Wpd1JaPaLI6r3vfnRwaJCrczrFkj8tjhYfen xjrCwS5lpXbUkkaJcoP7b8+OefCTzMyDceww3HiR7uQEvy9Ss4d/kcn+dJKQzXi/7RNT yz/g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=YiG02ldfTFuN714c/L5PN6juYRMq3CsEWm4cCHKEhbo=; fh=sly29ksPNZwD+USKC9uhgW2CS6cWsaZIA9r3pdyqIa0=; b=OxrWXGa/hehQXYzWe1YUT4LkNTdWKP0f3wDrqLA8/MSxcxfCNkYAZ6LGjy127Enco/ aO0e0gMSA/0Bm3VmcgMtlO4s/3tWpTyDXE4FQ3+qtZ2iQVaSWAiT8323JoPmFmP0Yj98 9TtFdzKJbrEX+rougHr3J190W/H91iZGqHou1RdearOGJtot0yvcsj/oNY7WnXvlKwlf +I3hhG+K+DN752rFYRJnWy4f2LlDdkMhQXYV0gBk18yOeT/S6lz6NVRJFB3UC6CWKkuN KT+TxJ3yWgGGCMlbeRhQ81qO6jD3c0B7xEWNXU9yYalAwX864F+Nrx/m+f7J2IdTiPZi opkw==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775106111; x=1775710911; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=YiG02ldfTFuN714c/L5PN6juYRMq3CsEWm4cCHKEhbo=; b=hmZn18OEhh93+DvFhEesyToshXvo1tuT9CaoXUIgidyockCD80/GFcxHrnZGruwAlJ ZZYL16rL1WL+DQJydZ9C3lbhYtq60WpyOtVqImJ4GkOJPrnGM9olG+O+nr8/KzwsgClk kh0oWB9ElAMbU7XZwXKqZLkb80VT4tknmO/4mb3ObJHX7e72hG1EzPbm1BKjkm7mWF/N BrG3oEuT3fWDY88pqrCD27ooSxKvrAT8bhRFMGr1Qil1WGho5h4q7Cd5Dj1+eF+8Lmku QNJ+wcKg2cYCSPfsynQRnvMvNa65bNRnVosRYq5+pG3kUMPFt9KO5KWr6VYVmIPu3s0n 2mDQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775106111; x=1775710911; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=YiG02ldfTFuN714c/L5PN6juYRMq3CsEWm4cCHKEhbo=; b=cwbdRjir37BcIfUiTqVJYmfYsaK/lEhuYHbzhh/uhZqpJGLisF5IG7DHV1wzouJu/m zHhT8WGFKyhYBj36fHawrH0qA1+9kpZQw0KVSHGo3pjGOCJ5uCMLg8jsWVWqir1zlyQp c4Ho0syCdwasnR+Rbq+aygz6VQRe3qKWTvH2BTV4LkN+W32gk5vg18es3KfuNkZlE0fD B3l8ps+mGSa2pDUC9ZNem8OBurwo833yaBBkjaWZapEHYKX4lovnArXWpz6c5KdpjH3P mmQhzr3LLMgTvojVAWHWuqSKEwgI7/oY409Dv4sX62kcJdgJvSHP/VsdsGqsyiEBhqW2 bOWQ== X-Forwarded-Encrypted: i=1; AJvYcCVpsZM8TMkB2HSDWhPpiAy6DJsJPxo+FLhr8HJpPxANt0I3SjYDBbWvA/4MVDXbjZLpuZ+60fmj0m+dcd3V@lists.postgresql.org X-Gm-Message-State: AOJu0Yw++433lmJxzav7ooCu4Tb9vYIBWzmj60RgCZX2zBFwpX9CMK0t pP79mP0bfn8o7IgZQairrjD8rePtOB+zMZsbhat5DtjJ57BdmXt/0yUcPcNYVfZoefOElOPxQfp d2sGbREc+4oNg/sMkJBhCwxzpNR3E0qg= X-Gm-Gg: ATEYQzy0jKYwsuQZXQ9L+Q0kIKiJFHK6h1oomOkfLQu3Lj3OCV4QXUf4Y2bNck240lQ +zO+o53Vp6AjPl4anUrsaVc6bgO1gyBlepxQHf9yvJGk9ORnpZDZ2IfTdXFbNCckkupl03UogVA 8QRfe1iWWg5hV6S9u7UlV5qIXOCLHfLy0d/hyPpgnmA9xBOvsZh0dqx+ZbXW7I2sXRFYKU5t5Wu 5wNG2qsYtmqFblbSA68l614tlBpNs0XVhCsXxgZ+x9iT2AKifGGWJ+L51FDf8wOB8eo/WVo3eEL sYjbSHnr19SCve2dw8nd39FyXlW6bmtce2JeEJ9M X-Received: by 2002:a05:6820:2286:b0:67e:1a8d:8780 with SMTP id 006d021491bc7-67fabc98063mr3036217eaf.36.1775106111127; Wed, 01 Apr 2026 22:01:51 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Fujii Masao Date: Thu, 2 Apr 2026 14:01:37 +0900 X-Gm-Features: AQROBzDehclsRxtDt4Q424PJooMoZXttzbpjtBLQvd_O3_fuXDOnXH1p_hc1CtE Message-ID: Subject: Re: Use SIGTERM instead of SIGUSR1 for slotsync worker to exit during promotion? To: Nisha Moond Cc: "Zhijie Hou (Fujitsu)" , shveta malik , Amit Kapila , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="00000000000031848d064e7319a6" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000031848d064e7319a6 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, Apr 1, 2026 at 8:11=E2=80=AFPM Nisha Moond wrote: > > As for backpatching, this looks like it should go back to v17, where sl= otsync > > was introduced. Thought? > > Right, the issue exists in v17 as well. > > Attached the updated patch. Thanks for updating the patch! LGTM. I noticed that commit 1362bc33e02 updated the slotsync code so that a backe= nd performing slot synchronization is signaled on promotion, but it was applie= d only to master. I=E2=80=99m not sure why it wasn=E2=80=99t backpatched to v= 17 and v18, but it seems we need to backpatch it first before backpatching this patch. Thought? I've prepared patches for v18 and v17 and attached them. For the patch for master, I only updated the commit message. For v18 and v17, commit 1362bc33e02 needs to be applied first. I haven't tested the v18 and v17 patches yet. I'll do that next. Regards, --=20 Fujii Masao --00000000000031848d064e7319a6 Content-Type: text/plain; charset="US-ASCII"; name="v9-0001-pg17-Fix-slotsync-worker-blocking-promotion-when-stuck.txt" Content-Disposition: attachment; filename="v9-0001-pg17-Fix-slotsync-worker-blocking-promotion-when-stuck.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnh0c3kg1 RnJvbSA5OThiNzQzZWZhZDUzMjA1NGFjOWNhZTVkZjdiOWZmYzBkZGU4NzgxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaXNoYSBNb29uZCA8bmlzaGEubW9vbmQ0MTJAZ21haWwuY29t PgpEYXRlOiBXZWQsIDI1IE1hciAyMDI2IDE4OjA0OjEyICswNTMwClN1YmplY3Q6IFtQQVRDSCB2 OV0gRml4IHNsb3RzeW5jIHdvcmtlciBibG9ja2luZyBwcm9tb3Rpb24gd2hlbiBzdHVjayBpbiB3 YWl0CgpQcmV2aW91c2x5LCBvbiBzdGFuZGJ5IHByb21vdGlvbiwgdGhlIHN0YXJ0dXAgcHJvY2Vz cyBzZW50IFNJR1VTUjEgdG8KdGhlIHNsb3RzeW5jIHdvcmtlciAob3IgYSBiYWNrZW5kIHBlcmZv cm1pbmcgc2xvdCBzeW5jaHJvbml6YXRpb24pIGFuZAp3YWl0ZWQgZm9yIGl0IHRvIGV4aXQuIFRo aXMgd29ya2VkIGluIG1vc3QgY2FzZXMsIGJ1dCBpZiB0aGUgcHJvY2VzcyB3YXMKYmxvY2tlZCB3 YWl0aW5nIGZvciBhIHJlc3BvbnNlIGZyb20gdGhlIHByaW1hcnkgKGUuZy4sIGR1ZSB0byBhIG5l dHdvcmsKZmFpbHVyZSksIFNJR1VTUjEgd291bGQgbm90IGludGVycnVwdCB0aGUgd2FpdC4gQXMg YSByZXN1bHQsIHRoZSBwcm9jZXNzCmNvdWxkIHJlbWFpbiBzdHVjaywgY2F1c2luZyB0aGUgc3Rh cnR1cCBwcm9jZXNzIHRvIHdhaXQgZm9yIGEgbG9uZyB0aW1lCmFuZCBkZWxheWluZyBwcm9tb3Rp b24uCgpUaGlzIGNvbW1pdCBmaXhlcyB0aGUgaXNzdWUgYnkgaW50cm9kdWNpbmcgYSBuZXcgcHJv Y3NpZ25hbCByZWFzb24sClBST0NTSUdfU0xPVFNZTkNfTUVTU0FHRS4gT24gcHJvbW90aW9uLCB0 aGUgc3RhcnR1cCBwcm9jZXNzCnNlbmRzIHRoaXMgc2lnbmFsLCBhbmQgdGhlIGhhbmRsZXIgc2V0 cyBpbnRlcnJ1cHQgZmxhZ3Mgc28gdGhlIHByb2Nlc3MKZXhpdHMgKG9yIGVycm9ycyBvdXQpIHBy b21wdGx5IGF0IENIRUNLX0ZPUl9JTlRFUlJVUFRTKCksIGFsbG93aW5nCnByb21vdGlvbiB0byBj b21wbGV0ZSB3aXRob3V0IGRlbGF5LgoKQmFja3BhdGNoIHRvIHYxNywgd2hlcmUgc2xvdHN5bmMg d2FzIGludHJvZHVjZWQuCgpBdXRob3I6IE5pc2hhIE1vb25kIDxuaXNoYS5tb29uZDQxMkBnbWFp bC5jb20+ClJldmlld2VkLWJ5OiBzaHZldGEgbWFsaWsgPHNodmV0YS5tYWxpa0BnbWFpbC5jb20+ ClJldmlld2VkLWJ5OiBBbWl0IEthcGlsYSA8YW1pdC5rYXBpbGExNkBnbWFpbC5jb20+ClJldmll d2VkLWJ5OiBaaGlqaWUgSG91IDxob3V6ai5mbnN0QGZ1aml0c3UuY29tPgpSZXZpZXdlZC1ieTog RnVqaWkgTWFzYW8gPG1hc2FvLmZ1amlpQGdtYWlsLmNvbT4KRGlzY3Vzc2lvbjogaHR0cHM6Ly9w b3N0Z3IuZXMvbS9DQUhHUUd3RnpOWXJvQXhTb3lKaHFUVS1wSD10NEVqNlJ5dmhWbUJaOTFFeGpf VFBNTVFAbWFpbC5nbWFpbC5jb20KQmFja3BhdGNoLXRocm91Z2g6IDE3Ci0tLQogc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vbG9naWNhbC9zbG90c3luYy5jIHwgMTM4ICsrKysrKysrKysrKysrLS0t LS0tLQogc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY3NpZ25hbC5jICAgICAgIHwgICA0ICsK IHNyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYyAgICAgICAgICAgICAgICB8ICAgNCArCiBzcmMv aW5jbHVkZS9yZXBsaWNhdGlvbi9zbG90c3luYy5oICAgICAgICAgfCAgIDcgKysKIHNyYy9pbmNs dWRlL3N0b3JhZ2UvcHJvY3NpZ25hbC5oICAgICAgICAgICB8ICAgMSArCiA1IGZpbGVzIGNoYW5n ZWQsIDExMSBpbnNlcnRpb25zKCspLCA0MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3Nsb3RzeW5jLmMgYi9zcmMvYmFja2VuZC9yZXBs aWNhdGlvbi9sb2dpY2FsL3Nsb3RzeW5jLmMKaW5kZXggOWNlNjE2MGRjZmEuLjBiNDhmNTVkMDU3 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3Nsb3RzeW5jLmMK KysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9zbG90c3luYy5jCkBAIC03NSwx OCArNzUsMTkgQEAKICAqIFN0cnVjdCBmb3Igc2hhcmluZyBpbmZvcm1hdGlvbiB0byBjb250cm9s IHNsb3Qgc3luY2hyb25pemF0aW9uLgogICoKICAqIFRoZSAncGlkJyBpcyBlaXRoZXIgdGhlIHNs b3Qgc3luYyB3b3JrZXIncyBwaWQgb3IgdGhlIGJhY2tlbmQncyBwaWQgcnVubmluZwotICogdGhl IFNRTCBmdW5jdGlvbiBwZ19zeW5jX3JlcGxpY2F0aW9uX3Nsb3RzKCkuIFdoZW4gdGhlIHN0YXJ0 dXAgcHJvY2VzcyBzZXRzCi0gKiAnc3RvcFNpZ25hbGVkJyBkdXJpbmcgcHJvbW90aW9uLCBpdCB1 c2VzIHRoaXMgJ3BpZCcgdG8gd2FrZSB1cCB0aGUgY3VycmVudGx5Ci0gKiBzeW5jaHJvbml6aW5n IHByb2Nlc3Mgc28gdGhhdCB0aGUgcHJvY2VzcyBjYW4gaW1tZWRpYXRlbHkgc3RvcCBpdHMKLSAq IHN5bmNocm9uaXppbmcgd29yayBvbiBzZWVpbmcgJ3N0b3BTaWduYWxlZCcgc2V0LgotICogU2V0 dGluZyAnc3RvcFNpZ25hbGVkJyBpcyBhbHNvIHVzZWQgdG8gaGFuZGxlIHRoZSByYWNlIGNvbmRp dGlvbiB3aGVuIHRoZQotICogcG9zdG1hc3RlciBoYXMgbm90IG5vdGljZWQgdGhlIHByb21vdGlv biB5ZXQgYW5kIHRodXMgbWF5IGVuZCB1cCByZXN0YXJ0aW5nCi0gKiB0aGUgc2xvdCBzeW5jIHdv cmtlci4gSWYgJ3N0b3BTaWduYWxlZCcgaXMgc2V0LCB0aGUgd29ya2VyIHdpbGwgZXhpdCBpbiBz dWNoIGEKLSAqIGNhc2UuIFRoZSBTUUwgZnVuY3Rpb24gcGdfc3luY19yZXBsaWNhdGlvbl9zbG90 cygpIHdpbGwgYWxzbyBlcnJvciBvdXQgaWYKLSAqIHRoaXMgZmxhZyBpcyBzZXQuIE5vdGUgdGhh dCB3ZSBkb24ndCBuZWVkIHRvIHJlc2V0IHRoaXMgdmFyaWFibGUgYXMgYWZ0ZXIKLSAqIHByb21v dGlvbiB0aGUgc2xvdCBzeW5jIHdvcmtlciB3b24ndCBiZSByZXN0YXJ0ZWQgYmVjYXVzZSB0aGUg cG1TdGF0ZQotICogY2hhbmdlcyB0byBQTV9SVU4gZnJvbSBQTV9IT1RfU1RBTkRCWSBhbmQgd2Ug ZG9uJ3Qgc3VwcG9ydCBkZW1vdGluZwotICogcHJpbWFyeSB3aXRob3V0IHJlc3RhcnRpbmcgdGhl IHNlcnZlci4gU2VlIE1heWJlU3RhcnRTbG90U3luY1dvcmtlci4KKyAqIHRoZSBTUUwgZnVuY3Rp b24gcGdfc3luY19yZXBsaWNhdGlvbl9zbG90cygpLiBPbiBwcm9tb3Rpb24sIHRoZSBzdGFydHVw CisgKiBwcm9jZXNzIHNldHMgJ3N0b3BTaWduYWxlZCcgYW5kIHVzZXMgdGhpcyAncGlkJyB0byBz aWduYWwgdGhlIHN5bmNocm9uaXppbmcKKyAqIHByb2Nlc3Mgd2l0aCBQUk9DU0lHX1NMT1RTWU5D X01FU1NBR0UgYW5kIGFsc28gdG8gd2FrZSBpdCB1cCBzbyB0aGF0IHRoZQorICogcHJvY2VzcyBj YW4gaW1tZWRpYXRlbHkgc3RvcCBpdHMgc3luY2hyb25pemluZyB3b3JrLgorICogU2V0dGluZyAn c3RvcFNpZ25hbGVkJyBvbiB0aGUgb3RoZXIgaGFuZCBpcyB1c2VkIHRvIGhhbmRsZSB0aGUgcmFj ZQorICogY29uZGl0aW9uIHdoZW4gdGhlIHBvc3RtYXN0ZXIgaGFzIG5vdCBub3RpY2VkIHRoZSBw cm9tb3Rpb24geWV0IGFuZCB0aHVzIG1heQorICogZW5kIHVwIHJlc3RhcnRpbmcgdGhlIHNsb3Qg c3luYyB3b3JrZXIuIElmICdzdG9wU2lnbmFsZWQnIGlzIHNldCwgdGhlIHdvcmtlcgorICogd2ls bCBleGl0IGluIHN1Y2ggYSBjYXNlLiBUaGUgU1FMIGZ1bmN0aW9uIHBnX3N5bmNfcmVwbGljYXRp b25fc2xvdHMoKSB3aWxsCisgKiBhbHNvIGVycm9yIG91dCBpZiB0aGlzIGZsYWcgaXMgc2V0LiBO b3RlIHRoYXQgd2UgZG9uJ3QgbmVlZCB0byByZXNldCB0aGlzCisgKiB2YXJpYWJsZSBhcyBhZnRl ciBwcm9tb3Rpb24gdGhlIHNsb3Qgc3luYyB3b3JrZXIgd29uJ3QgYmUgcmVzdGFydGVkIGJlY2F1 c2UKKyAqIHRoZSBwbVN0YXRlIGNoYW5nZXMgdG8gUE1fUlVOIGZyb20gUE1fSE9UX1NUQU5EQlkg YW5kIHdlIGRvbid0IHN1cHBvcnQKKyAqIGRlbW90aW5nIHByaW1hcnkgd2l0aG91dCByZXN0YXJ0 aW5nIHRoZSBzZXJ2ZXIuCisgKiBTZWUgTWF5YmVTdGFydFNsb3RTeW5jV29ya2VyLgogICoKICAq IFRoZSAnc3luY2luZycgZmxhZyBpcyBuZWVkZWQgdG8gcHJldmVudCBjb25jdXJyZW50IHNsb3Qg c3luY3MgdG8gYXZvaWQgc2xvdAogICogb3ZlcndyaXRlcy4KQEAgLTEzMSw2ICsxMzIsMTMgQEAg c3RhdGljIGxvbmcgc2xlZXBfbXMgPSBNSU5fU0xPVFNZTkNfV09SS0VSX05BUFRJTUVfTVM7CiAg Ki8KIHN0YXRpYyBib29sIHN5bmNpbmdfc2xvdHMgPSBmYWxzZTsKIAorLyoKKyAqIEludGVycnVw dCBmbGFnIHNldCB3aGVuIFBST0NTSUdfU0xPVFNZTkNfTUVTU0FHRSBpcyByZWNlaXZlZCwgYXNr aW5nIHRoZQorICogc2xvdHN5bmMgd29ya2VyIG9yIHBnX3N5bmNfcmVwbGljYXRpb25fc2xvdHMo KSB0byBzdG9wIGJlY2F1c2UKKyAqIHN0YW5kYnkgcHJvbW90aW9uIGhhcyBiZWVuIHRyaWdnZXJl ZC4KKyAqLwordm9sYXRpbGUgc2lnX2F0b21pY190IFNsb3RTeW5jU2h1dGRvd25QZW5kaW5nID0g ZmFsc2U7CisKIC8qCiAgKiBTdHJ1Y3R1cmUgdG8gaG9sZCBpbmZvcm1hdGlvbiBmZXRjaGVkIGZy b20gdGhlIHByaW1hcnkgc2VydmVyIGFib3V0IGEgbG9naWNhbAogICogcmVwbGljYXRpb24gc2xv dC4KQEAgLTExODYsMzYgKzExOTQsNTIgQEAgc2xvdHN5bmNfcmVyZWFkX2NvbmZpZyh2b2lkKQog fQogCiAvKgotICogSW50ZXJydXB0IGhhbmRsZXIgZm9yIHByb2Nlc3MgcGVyZm9ybWluZyBzbG90 IHN5bmNocm9uaXphdGlvbi4KKyAqIEhhbmRsZSByZWNlaXB0IG9mIGFuIGludGVycnVwdCBpbmRp Y2F0aW5nIGEgc2xvdHN5bmMgc2h1dGRvd24gbWVzc2FnZS4KKyAqCisgKiBUaGlzIGlzIGNhbGxl ZCB3aXRoaW4gdGhlIFNJR1VTUjEgaGFuZGxlci4gIEFsbCB3ZSBkbyBoZXJlIGlzIHNldCBhIGZs YWcKKyAqIHRoYXQgd2lsbCBjYXVzZSB0aGUgbmV4dCBDSEVDS19GT1JfSU5URVJSVVBUUygpIHRv IGludm9rZQorICogUHJvY2Vzc1Nsb3RTeW5jTWVzc2FnZSgpLgogICovCi1zdGF0aWMgdm9pZAot UHJvY2Vzc1Nsb3RTeW5jSW50ZXJydXB0cyhXYWxSZWNlaXZlckNvbm4gKndyY29ubikKK3ZvaWQK K0hhbmRsZVNsb3RTeW5jTWVzc2FnZUludGVycnVwdCh2b2lkKQogewotCUNIRUNLX0ZPUl9JTlRF UlJVUFRTKCk7CisJSW50ZXJydXB0UGVuZGluZyA9IHRydWU7CisJU2xvdFN5bmNTaHV0ZG93blBl bmRpbmcgPSB0cnVlOworCS8qIGxhdGNoIHdpbGwgYmUgc2V0IGJ5IHByb2NzaWduYWxfc2lndXNy MV9oYW5kbGVyICovCit9CiAKLQlpZiAoU2xvdFN5bmNDdHgtPnN0b3BTaWduYWxlZCkKLQl7Ci0J CWlmIChBbUxvZ2ljYWxTbG90U3luY1dvcmtlclByb2Nlc3MoKSkKLQkJewotCQkJZXJlcG9ydChM T0csCi0JCQkJCWVycm1zZygicmVwbGljYXRpb24gc2xvdCBzeW5jaHJvbml6YXRpb24gd29ya2Vy IHdpbGwgc3RvcCBiZWNhdXNlIHByb21vdGlvbiBpcyB0cmlnZ2VyZWQiKSk7CisvKgorICogSGFu ZGxlIGEgUFJPQ1NJR19TTE9UU1lOQ19NRVNTQUdFIHNpZ25hbCwgY2FsbGVkIGZyb20gUHJvY2Vz c0ludGVycnVwdHMoKS4KKyAqCisgKiBJZiB0aGUgY3VycmVudCBwcm9jZXNzIGlzIHRoZSBzbG90 c3luYyBiYWNrZ3JvdW5kIHdvcmtlciwgbG9nIGEgbWVzc2FnZQorICogYW5kIGV4aXQgY2xlYW5s eS4gIElmIGl0IGlzIGEgYmFja2VuZCBleGVjdXRpbmcgcGdfc3luY19yZXBsaWNhdGlvbl9zbG90 cygpLAorICogcmFpc2UgYW4gZXJyb3IsIHVubGVzcyB0aGUgc3luYyBoYXMgYWxyZWFkeSBmaW5p c2hlZCwgaW4gd2hpY2ggY2FzZSB0aGVyZQorICogaXMgbm8gbmVlZCB0byBpbnRlcnJ1cHQgdGhl IGNhbGxlci4KKyAqLwordm9pZAorUHJvY2Vzc1Nsb3RTeW5jTWVzc2FnZSh2b2lkKQoreworCVNs b3RTeW5jU2h1dGRvd25QZW5kaW5nID0gZmFsc2U7CiAKLQkJCXByb2NfZXhpdCgwKTsKLQkJfQot CQllbHNlCi0JCXsKLQkJCS8qCi0JCQkgKiBGb3IgdGhlIGJhY2tlbmQgZXhlY3V0aW5nIFNRTCBm dW5jdGlvbgotCQkJICogcGdfc3luY19yZXBsaWNhdGlvbl9zbG90cygpLgotCQkJICovCi0JCQll cmVwb3J0KEVSUk9SLAotCQkJCQllcnJjb2RlKEVSUkNPREVfT0JKRUNUX05PVF9JTl9QUkVSRVFV SVNJVEVfU1RBVEUpLAotCQkJCQllcnJtc2coInJlcGxpY2F0aW9uIHNsb3Qgc3luY2hyb25pemF0 aW9uIHdpbGwgc3RvcCBiZWNhdXNlIHByb21vdGlvbiBpcyB0cmlnZ2VyZWQiKSk7Ci0JCX0KKwlp ZiAoQW1Mb2dpY2FsU2xvdFN5bmNXb3JrZXJQcm9jZXNzKCkpCisJeworCQllcmVwb3J0KExPRywK KwkJCQllcnJtc2coInJlcGxpY2F0aW9uIHNsb3Qgc3luY2hyb25pemF0aW9uIHdvcmtlciB3aWxs IHN0b3AgYmVjYXVzZSBwcm9tb3Rpb24gaXMgdHJpZ2dlcmVkIikpOworCQlwcm9jX2V4aXQoMCk7 CiAJfQorCWVsc2UKKwl7CisJCS8qCisJCSAqIElmIHN5bmMgaGFzIGFscmVhZHkgY29tcGxldGVk LCB0aGVyZSBpcyBubyBuZWVkIHRvIGludGVycnVwdCB0aGUKKwkJICogY2FsbGVyIHdpdGggYW4g ZXJyb3IuCisJCSAqLworCQlpZiAoIUlzU3luY2luZ1JlcGxpY2F0aW9uU2xvdHMoKSkKKwkJCXJl dHVybjsKIAotCWlmIChDb25maWdSZWxvYWRQZW5kaW5nKQotCQlzbG90c3luY19yZXJlYWRfY29u ZmlnKCk7CisJCWVyZXBvcnQoRVJST1IsCisJCQkJZXJyY29kZShFUlJDT0RFX09CSkVDVF9OT1Rf SU5fUFJFUkVRVUlTSVRFX1NUQVRFKSwKKwkJCQllcnJtc2coInJlcGxpY2F0aW9uIHNsb3Qgc3lu Y2hyb25pemF0aW9uIHdpbGwgc3RvcCBiZWNhdXNlIHByb21vdGlvbiBpcyB0cmlnZ2VyZWQiKSk7 CisJfQogfQogCiAvKgpAQCAtMTMyMiw2ICsxMzQ2LDM0IEBAIGNoZWNrX2FuZF9zZXRfc3luY19p bmZvKHBpZF90IHN5bmNfcHJvY2Vzc19waWQpCiB7CiAJU3BpbkxvY2tBY3F1aXJlKCZTbG90U3lu Y0N0eC0+bXV0ZXgpOwogCisJLyoKKwkgKiBFeGl0IGltbWVkaWF0ZWx5IGlmIHByb21vdGlvbiBo YXMgYmVlbiB0cmlnZ2VyZWQuICBUaGlzIGd1YXJkcyBhZ2FpbnN0CisJICogYSBuZXcgd29ya2Vy IChvciBhIGNhbGwgdG8gcGdfc3luY19yZXBsaWNhdGlvbl9zbG90cygpKSB0aGF0IHN0YXJ0cwor CSAqIGFmdGVyIHRoZSBvbGQgd29ya2VyIHdhcyBzdG9wcGVkIGJ5IFNodXREb3duU2xvdFN5bmMo KS4KKwkgKi8KKwlpZiAoU2xvdFN5bmNDdHgtPnN0b3BTaWduYWxlZCkKKwl7CisJCVNwaW5Mb2Nr UmVsZWFzZSgmU2xvdFN5bmNDdHgtPm11dGV4KTsKKworCQlpZiAoQW1Mb2dpY2FsU2xvdFN5bmNX b3JrZXJQcm9jZXNzKCkpCisJCXsKKwkJCWVyZXBvcnQoREVCVUcxLAorCQkJCQllcnJtc2coInJl cGxpY2F0aW9uIHNsb3Qgc3luY2hyb25pemF0aW9uIHdvcmtlciB3aWxsIG5vdCBzdGFydCBiZWNh dXNlIHByb21vdGlvbiB3YXMgdHJpZ2dlcmVkIikpOworCisJCQlwcm9jX2V4aXQoMCk7CisJCX0K KwkJZWxzZQorCQl7CisJCQkvKgorCQkJICogRm9yIHRoZSBiYWNrZW5kIGV4ZWN1dGluZyBTUUwg ZnVuY3Rpb24KKwkJCSAqIHBnX3N5bmNfcmVwbGljYXRpb25fc2xvdHMoKS4KKwkJCSAqLworCQkJ ZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX09CSkVDVF9OT1RfSU5fUFJFUkVR VUlTSVRFX1NUQVRFKSwKKwkJCQkJZXJybXNnKCJyZXBsaWNhdGlvbiBzbG90IHN5bmNocm9uaXph dGlvbiB3aWxsIG5vdCBzdGFydCBiZWNhdXNlIHByb21vdGlvbiB3YXMgdHJpZ2dlcmVkIikpOwor CQl9CisJfQorCiAJaWYgKFNsb3RTeW5jQ3R4LT5zeW5jaW5nKQogCXsKIAkJU3BpbkxvY2tSZWxl YXNlKCZTbG90U3luY0N0eC0+bXV0ZXgpOwpAQCAtMTUyNSw3ICsxNTc3LDEwIEBAIFJlcGxTbG90 U3luY1dvcmtlck1haW4oY2hhciAqc3RhcnR1cF9kYXRhLCBzaXplX3Qgc3RhcnR1cF9kYXRhX2xl bikKIAl7CiAJCWJvb2wJCXNvbWVfc2xvdF91cGRhdGVkID0gZmFsc2U7CiAKLQkJUHJvY2Vzc1Ns b3RTeW5jSW50ZXJydXB0cyh3cmNvbm4pOworCQlDSEVDS19GT1JfSU5URVJSVVBUUygpOworCisJ CWlmIChDb25maWdSZWxvYWRQZW5kaW5nKQorCQkJc2xvdHN5bmNfcmVyZWFkX2NvbmZpZygpOwog CiAJCXNvbWVfc2xvdF91cGRhdGVkID0gc3luY2hyb25pemVfc2xvdHMod3Jjb25uKTsKIApAQCAt MTYyNSwxMSArMTY4MCwxMSBAQCBTaHV0RG93blNsb3RTeW5jKHZvaWQpCiAJU3BpbkxvY2tSZWxl YXNlKCZTbG90U3luY0N0eC0+bXV0ZXgpOwogCiAJLyoKLQkgKiBTaWduYWwgcHJvY2VzcyBkb2lu ZyBzbG90c3luYywgaWYgYW55LiBUaGUgcHJvY2VzcyB3aWxsIHN0b3AgdXBvbgotCSAqIGRldGVj dGluZyB0aGF0IHRoZSBzdG9wU2lnbmFsZWQgZmxhZyBpcyBzZXQgdG8gdHJ1ZS4KKwkgKiBTaWdu YWwgcHJvY2VzcyBkb2luZyBzbG90c3luYywgaWYgYW55LCBhc2tpbmcgaXQgdG8gc3RvcC4KIAkg Ki8KIAlpZiAoc3luY19wcm9jZXNzX3BpZCAhPSBJbnZhbGlkUGlkKQotCQlraWxsKHN5bmNfcHJv Y2Vzc19waWQsIFNJR1VTUjEpOworCQlTZW5kUHJvY1NpZ25hbChzeW5jX3Byb2Nlc3NfcGlkLCBQ Uk9DU0lHX1NMT1RTWU5DX01FU1NBR0UsCisJCQkJCSAgIElOVkFMSURfUFJPQ19OVU1CRVIpOwog CiAJLyogV2FpdCBmb3Igc2xvdCBzeW5jIHRvIGVuZCAqLwogCWZvciAoOzspCkBAIC0xNzc0LDkg KzE4MjksNiBAQCBTeW5jUmVwbGljYXRpb25TbG90cyhXYWxSZWNlaXZlckNvbm4gKndyY29ubikK IAl7CiAJCWNoZWNrX2FuZF9zZXRfc3luY19pbmZvKE15UHJvY1BpZCk7CiAKLQkJLyogQ2hlY2sg Zm9yIGludGVycnVwdHMgYW5kIGNvbmZpZyBjaGFuZ2VzICovCi0JCVByb2Nlc3NTbG90U3luY0lu dGVycnVwdHMoKTsKLQogCQl2YWxpZGF0ZV9yZW1vdGVfaW5mbyh3cmNvbm4pOwogCiAJCXN5bmNo cm9uaXplX3Nsb3RzKHdyY29ubik7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9zdG9yYWdlL2lw Yy9wcm9jc2lnbmFsLmMgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jc2lnbmFsLmMKaW5k ZXggNGVkOWNlZGNkZDQuLmQ2ODU3ZjVhOGJiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9zdG9y YWdlL2lwYy9wcm9jc2lnbmFsLmMKKysrIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY3Np Z25hbC5jCkBAIC0yMyw2ICsyMyw3IEBACiAjaW5jbHVkZSAicGdzdGF0LmgiCiAjaW5jbHVkZSAi cG9ydC9wZ19iaXR1dGlscy5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL2xvZ2ljYWx3b3JrZXIu aCIKKyNpbmNsdWRlICJyZXBsaWNhdGlvbi9zbG90c3luYy5oIgogI2luY2x1ZGUgInJlcGxpY2F0 aW9uL3dhbHNlbmRlci5oIgogI2luY2x1ZGUgInN0b3JhZ2UvY29uZGl0aW9uX3ZhcmlhYmxlLmgi CiAjaW5jbHVkZSAic3RvcmFnZS9pcGMuaCIKQEAgLTY1NSw2ICs2NTYsOSBAQCBwcm9jc2lnbmFs X3NpZ3VzcjFfaGFuZGxlcihTSUdOQUxfQVJHUykKIAlpZiAoQ2hlY2tQcm9jU2lnbmFsKFBST0NT SUdfUEFSQUxMRUxfQVBQTFlfTUVTU0FHRSkpCiAJCUhhbmRsZVBhcmFsbGVsQXBwbHlNZXNzYWdl SW50ZXJydXB0KCk7CiAKKwlpZiAoQ2hlY2tQcm9jU2lnbmFsKFBST0NTSUdfU0xPVFNZTkNfTUVT U0FHRSkpCisJCUhhbmRsZVNsb3RTeW5jTWVzc2FnZUludGVycnVwdCgpOworCiAJaWYgKENoZWNr UHJvY1NpZ25hbChQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX0RBVEFCQVNFKSkKIAkJSGFuZGxl UmVjb3ZlcnlDb25mbGljdEludGVycnVwdChQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX0RBVEFC QVNFKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jIGIvc3JjL2Jh Y2tlbmQvdGNvcC9wb3N0Z3Jlcy5jCmluZGV4IDljZDFkMGFiZTM1Li4wMGQ0MDczYzA4OSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jCisrKyBiL3NyYy9iYWNrZW5kL3Rj b3AvcG9zdGdyZXMuYwpAQCAtNTgsNiArNTgsNyBAQAogI2luY2x1ZGUgInBvc3RtYXN0ZXIvcG9z dG1hc3Rlci5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL2xvZ2ljYWxsYXVuY2hlci5oIgogI2lu Y2x1ZGUgInJlcGxpY2F0aW9uL2xvZ2ljYWx3b3JrZXIuaCIKKyNpbmNsdWRlICJyZXBsaWNhdGlv bi9zbG90c3luYy5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL3Nsb3QuaCIKICNpbmNsdWRlICJy ZXBsaWNhdGlvbi93YWxzZW5kZXIuaCIKICNpbmNsdWRlICJyZXdyaXRlL3Jld3JpdGVIYW5kbGVy LmgiCkBAIC0zNDk3LDYgKzM0OTgsOSBAQCBQcm9jZXNzSW50ZXJydXB0cyh2b2lkKQogCiAJaWYg KFBhcmFsbGVsQXBwbHlNZXNzYWdlUGVuZGluZykKIAkJSGFuZGxlUGFyYWxsZWxBcHBseU1lc3Nh Z2VzKCk7CisKKwlpZiAoU2xvdFN5bmNTaHV0ZG93blBlbmRpbmcpCisJCVByb2Nlc3NTbG90U3lu Y01lc3NhZ2UoKTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9u L3Nsb3RzeW5jLmggYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9zbG90c3luYy5oCmluZGV4IGUw M2MyYTAwNWE0Li5jN2E5Mzc5MTEwNCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcmVwbGljYXRp b24vc2xvdHN5bmMuaAorKysgYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9zbG90c3luYy5oCkBA IC0xMiwxMCArMTIsMTUgQEAKICNpZm5kZWYgU0xPVFNZTkNfSAogI2RlZmluZSBTTE9UU1lOQ19I CiAKKyNpbmNsdWRlIDxzaWduYWwuaD4KKwogI2luY2x1ZGUgInJlcGxpY2F0aW9uL3dhbHJlY2Vp dmVyLmgiCiAKIGV4dGVybiBQR0RMTElNUE9SVCBib29sIHN5bmNfcmVwbGljYXRpb25fc2xvdHM7 CiAKKy8qIEludGVycnVwdCBmbGFnIHNldCBieSBIYW5kbGVTbG90U3luY01lc3NhZ2VJbnRlcnJ1 cHQoKSAqLworZXh0ZXJuIFBHRExMSU1QT1JUIHZvbGF0aWxlIHNpZ19hdG9taWNfdCBTbG90U3lu Y1NodXRkb3duUGVuZGluZzsKKwogLyoKICAqIEdVQ3MgbmVlZGVkIGJ5IHNsb3Qgc3luYyB3b3Jr ZXIgdG8gY29ubmVjdCB0byB0aGUgcHJpbWFyeQogICogc2VydmVyIGFuZCBjYXJyeSBvbiB3aXRo IHNsb3RzIHN5bmNocm9uaXphdGlvbi4KQEAgLTM0LDUgKzM5LDcgQEAgZXh0ZXJuIGJvb2wgSXNT eW5jaW5nUmVwbGljYXRpb25TbG90cyh2b2lkKTsKIGV4dGVybiBTaXplIFNsb3RTeW5jU2htZW1T aXplKHZvaWQpOwogZXh0ZXJuIHZvaWQgU2xvdFN5bmNTaG1lbUluaXQodm9pZCk7CiBleHRlcm4g dm9pZCBTeW5jUmVwbGljYXRpb25TbG90cyhXYWxSZWNlaXZlckNvbm4gKndyY29ubik7CitleHRl cm4gdm9pZCBIYW5kbGVTbG90U3luY01lc3NhZ2VJbnRlcnJ1cHQodm9pZCk7CitleHRlcm4gdm9p ZCBQcm9jZXNzU2xvdFN5bmNNZXNzYWdlKHZvaWQpOwogCiAjZW5kaWYJCQkJCQkJLyogU0xPVFNZ TkNfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvc3RvcmFnZS9wcm9jc2lnbmFsLmggYi9z cmMvaW5jbHVkZS9zdG9yYWdlL3Byb2NzaWduYWwuaAppbmRleCA3ZDI5MGVhN2QwNS4uMTI2YzQ0 YmNmMWQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3N0b3JhZ2UvcHJvY3NpZ25hbC5oCisrKyBi L3NyYy9pbmNsdWRlL3N0b3JhZ2UvcHJvY3NpZ25hbC5oCkBAIC0zNiw2ICszNiw3IEBAIHR5cGVk ZWYgZW51bQogCVBST0NTSUdfQkFSUklFUiwJCQkvKiBnbG9iYWwgYmFycmllciBpbnRlcnJ1cHQg ICovCiAJUFJPQ1NJR19MT0dfTUVNT1JZX0NPTlRFWFQsIC8qIGFzayBiYWNrZW5kIHRvIGxvZyB0 aGUgbWVtb3J5IGNvbnRleHRzICovCiAJUFJPQ1NJR19QQVJBTExFTF9BUFBMWV9NRVNTQUdFLCAv KiBNZXNzYWdlIGZyb20gcGFyYWxsZWwgYXBwbHkgd29ya2VycyAqLworCVBST0NTSUdfU0xPVFNZ TkNfTUVTU0FHRSwJLyogYXNrIHNsb3Qgc3luY2hyb25pemF0aW9uIHRvIHN0b3AgKi8KIAogCS8q IFJlY292ZXJ5IGNvbmZsaWN0IHJlYXNvbnMgKi8KIAlQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNU X0ZJUlNULAotLSAKMi41MS4yCgo= --00000000000031848d064e7319a6 Content-Type: text/plain; charset="US-ASCII"; name="v9-0001-pg18-Fix-slotsync-worker-blocking-promotion-when-stuck.txt" Content-Disposition: attachment; filename="v9-0001-pg18-Fix-slotsync-worker-blocking-promotion-when-stuck.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnh0c3kq2 RnJvbSBhZjkwNzU5NTYyZTg2ODA3ZmFkMDBhMzhiMDlkZjYzOTUxMzZiODU5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaXNoYSBNb29uZCA8bmlzaGEubW9vbmQ0MTJAZ21haWwuY29t PgpEYXRlOiBXZWQsIDI1IE1hciAyMDI2IDE4OjA0OjEyICswNTMwClN1YmplY3Q6IFtQQVRDSCB2 OV0gRml4IHNsb3RzeW5jIHdvcmtlciBibG9ja2luZyBwcm9tb3Rpb24gd2hlbiBzdHVjayBpbiB3 YWl0CgpQcmV2aW91c2x5LCBvbiBzdGFuZGJ5IHByb21vdGlvbiwgdGhlIHN0YXJ0dXAgcHJvY2Vz cyBzZW50IFNJR1VTUjEgdG8KdGhlIHNsb3RzeW5jIHdvcmtlciAob3IgYSBiYWNrZW5kIHBlcmZv cm1pbmcgc2xvdCBzeW5jaHJvbml6YXRpb24pIGFuZAp3YWl0ZWQgZm9yIGl0IHRvIGV4aXQuIFRo aXMgd29ya2VkIGluIG1vc3QgY2FzZXMsIGJ1dCBpZiB0aGUgcHJvY2VzcyB3YXMKYmxvY2tlZCB3 YWl0aW5nIGZvciBhIHJlc3BvbnNlIGZyb20gdGhlIHByaW1hcnkgKGUuZy4sIGR1ZSB0byBhIG5l dHdvcmsKZmFpbHVyZSksIFNJR1VTUjEgd291bGQgbm90IGludGVycnVwdCB0aGUgd2FpdC4gQXMg YSByZXN1bHQsIHRoZSBwcm9jZXNzCmNvdWxkIHJlbWFpbiBzdHVjaywgY2F1c2luZyB0aGUgc3Rh cnR1cCBwcm9jZXNzIHRvIHdhaXQgZm9yIGEgbG9uZyB0aW1lCmFuZCBkZWxheWluZyBwcm9tb3Rp b24uCgpUaGlzIGNvbW1pdCBmaXhlcyB0aGUgaXNzdWUgYnkgaW50cm9kdWNpbmcgYSBuZXcgcHJv Y3NpZ25hbCByZWFzb24sClBST0NTSUdfU0xPVFNZTkNfTUVTU0FHRS4gT24gcHJvbW90aW9uLCB0 aGUgc3RhcnR1cCBwcm9jZXNzCnNlbmRzIHRoaXMgc2lnbmFsLCBhbmQgdGhlIGhhbmRsZXIgc2V0 cyBpbnRlcnJ1cHQgZmxhZ3Mgc28gdGhlIHByb2Nlc3MKZXhpdHMgKG9yIGVycm9ycyBvdXQpIHBy b21wdGx5IGF0IENIRUNLX0ZPUl9JTlRFUlJVUFRTKCksIGFsbG93aW5nCnByb21vdGlvbiB0byBj b21wbGV0ZSB3aXRob3V0IGRlbGF5LgoKQmFja3BhdGNoIHRvIHYxNywgd2hlcmUgc2xvdHN5bmMg d2FzIGludHJvZHVjZWQuCgpBdXRob3I6IE5pc2hhIE1vb25kIDxuaXNoYS5tb29uZDQxMkBnbWFp bC5jb20+ClJldmlld2VkLWJ5OiBzaHZldGEgbWFsaWsgPHNodmV0YS5tYWxpa0BnbWFpbC5jb20+ ClJldmlld2VkLWJ5OiBBbWl0IEthcGlsYSA8YW1pdC5rYXBpbGExNkBnbWFpbC5jb20+ClJldmll d2VkLWJ5OiBaaGlqaWUgSG91IDxob3V6ai5mbnN0QGZ1aml0c3UuY29tPgpSZXZpZXdlZC1ieTog RnVqaWkgTWFzYW8gPG1hc2FvLmZ1amlpQGdtYWlsLmNvbT4KRGlzY3Vzc2lvbjogaHR0cHM6Ly9w b3N0Z3IuZXMvbS9DQUhHUUd3RnpOWXJvQXhTb3lKaHFUVS1wSD10NEVqNlJ5dmhWbUJaOTFFeGpf VFBNTVFAbWFpbC5nbWFpbC5jb20KQmFja3BhdGNoLXRocm91Z2g6IDE3Ci0tLQogc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vbG9naWNhbC9zbG90c3luYy5jIHwgMTM4ICsrKysrKysrKysrKysrLS0t LS0tLQogc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY3NpZ25hbC5jICAgICAgIHwgICA0ICsK IHNyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYyAgICAgICAgICAgICAgICB8ICAgNCArCiBzcmMv aW5jbHVkZS9yZXBsaWNhdGlvbi9zbG90c3luYy5oICAgICAgICAgfCAgIDcgKysKIHNyYy9pbmNs dWRlL3N0b3JhZ2UvcHJvY3NpZ25hbC5oICAgICAgICAgICB8ICAgMSArCiA1IGZpbGVzIGNoYW5n ZWQsIDExMSBpbnNlcnRpb25zKCspLCA0MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3Nsb3RzeW5jLmMgYi9zcmMvYmFja2VuZC9yZXBs aWNhdGlvbi9sb2dpY2FsL3Nsb3RzeW5jLmMKaW5kZXggYjAwNDM5YjY0MWYuLjRjYmVlMTk3ZGRi IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3Nsb3RzeW5jLmMK KysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9zbG90c3luYy5jCkBAIC03Mywx OCArNzMsMTkgQEAKICAqIFN0cnVjdCBmb3Igc2hhcmluZyBpbmZvcm1hdGlvbiB0byBjb250cm9s IHNsb3Qgc3luY2hyb25pemF0aW9uLgogICoKICAqIFRoZSAncGlkJyBpcyBlaXRoZXIgdGhlIHNs b3Qgc3luYyB3b3JrZXIncyBwaWQgb3IgdGhlIGJhY2tlbmQncyBwaWQgcnVubmluZwotICogdGhl IFNRTCBmdW5jdGlvbiBwZ19zeW5jX3JlcGxpY2F0aW9uX3Nsb3RzKCkuIFdoZW4gdGhlIHN0YXJ0 dXAgcHJvY2VzcyBzZXRzCi0gKiAnc3RvcFNpZ25hbGVkJyBkdXJpbmcgcHJvbW90aW9uLCBpdCB1 c2VzIHRoaXMgJ3BpZCcgdG8gd2FrZSB1cCB0aGUgY3VycmVudGx5Ci0gKiBzeW5jaHJvbml6aW5n IHByb2Nlc3Mgc28gdGhhdCB0aGUgcHJvY2VzcyBjYW4gaW1tZWRpYXRlbHkgc3RvcCBpdHMKLSAq IHN5bmNocm9uaXppbmcgd29yayBvbiBzZWVpbmcgJ3N0b3BTaWduYWxlZCcgc2V0LgotICogU2V0 dGluZyAnc3RvcFNpZ25hbGVkJyBpcyBhbHNvIHVzZWQgdG8gaGFuZGxlIHRoZSByYWNlIGNvbmRp dGlvbiB3aGVuIHRoZQotICogcG9zdG1hc3RlciBoYXMgbm90IG5vdGljZWQgdGhlIHByb21vdGlv biB5ZXQgYW5kIHRodXMgbWF5IGVuZCB1cCByZXN0YXJ0aW5nCi0gKiB0aGUgc2xvdCBzeW5jIHdv cmtlci4gSWYgJ3N0b3BTaWduYWxlZCcgaXMgc2V0LCB0aGUgd29ya2VyIHdpbGwgZXhpdCBpbiBz dWNoIGEKLSAqIGNhc2UuIFRoZSBTUUwgZnVuY3Rpb24gcGdfc3luY19yZXBsaWNhdGlvbl9zbG90 cygpIHdpbGwgYWxzbyBlcnJvciBvdXQgaWYKLSAqIHRoaXMgZmxhZyBpcyBzZXQuIE5vdGUgdGhh dCB3ZSBkb24ndCBuZWVkIHRvIHJlc2V0IHRoaXMgdmFyaWFibGUgYXMgYWZ0ZXIKLSAqIHByb21v dGlvbiB0aGUgc2xvdCBzeW5jIHdvcmtlciB3b24ndCBiZSByZXN0YXJ0ZWQgYmVjYXVzZSB0aGUg cG1TdGF0ZQotICogY2hhbmdlcyB0byBQTV9SVU4gZnJvbSBQTV9IT1RfU1RBTkRCWSBhbmQgd2Ug ZG9uJ3Qgc3VwcG9ydCBkZW1vdGluZwotICogcHJpbWFyeSB3aXRob3V0IHJlc3RhcnRpbmcgdGhl IHNlcnZlci4gU2VlIExhdW5jaE1pc3NpbmdCYWNrZ3JvdW5kUHJvY2Vzc2VzLgorICogdGhlIFNR TCBmdW5jdGlvbiBwZ19zeW5jX3JlcGxpY2F0aW9uX3Nsb3RzKCkuIE9uIHByb21vdGlvbiwgdGhl IHN0YXJ0dXAKKyAqIHByb2Nlc3Mgc2V0cyAnc3RvcFNpZ25hbGVkJyBhbmQgdXNlcyB0aGlzICdw aWQnIHRvIHNpZ25hbCB0aGUgc3luY2hyb25pemluZworICogcHJvY2VzcyB3aXRoIFBST0NTSUdf U0xPVFNZTkNfTUVTU0FHRSBhbmQgYWxzbyB0byB3YWtlIGl0IHVwIHNvIHRoYXQgdGhlCisgKiBw cm9jZXNzIGNhbiBpbW1lZGlhdGVseSBzdG9wIGl0cyBzeW5jaHJvbml6aW5nIHdvcmsuCisgKiBT ZXR0aW5nICdzdG9wU2lnbmFsZWQnIG9uIHRoZSBvdGhlciBoYW5kIGlzIHVzZWQgdG8gaGFuZGxl IHRoZSByYWNlCisgKiBjb25kaXRpb24gd2hlbiB0aGUgcG9zdG1hc3RlciBoYXMgbm90IG5vdGlj ZWQgdGhlIHByb21vdGlvbiB5ZXQgYW5kIHRodXMgbWF5CisgKiBlbmQgdXAgcmVzdGFydGluZyB0 aGUgc2xvdCBzeW5jIHdvcmtlci4gSWYgJ3N0b3BTaWduYWxlZCcgaXMgc2V0LCB0aGUgd29ya2Vy CisgKiB3aWxsIGV4aXQgaW4gc3VjaCBhIGNhc2UuIFRoZSBTUUwgZnVuY3Rpb24gcGdfc3luY19y ZXBsaWNhdGlvbl9zbG90cygpIHdpbGwKKyAqIGFsc28gZXJyb3Igb3V0IGlmIHRoaXMgZmxhZyBp cyBzZXQuIE5vdGUgdGhhdCB3ZSBkb24ndCBuZWVkIHRvIHJlc2V0IHRoaXMKKyAqIHZhcmlhYmxl IGFzIGFmdGVyIHByb21vdGlvbiB0aGUgc2xvdCBzeW5jIHdvcmtlciB3b24ndCBiZSByZXN0YXJ0 ZWQgYmVjYXVzZQorICogdGhlIHBtU3RhdGUgY2hhbmdlcyB0byBQTV9SVU4gZnJvbSBQTV9IT1Rf U1RBTkRCWSBhbmQgd2UgZG9uJ3Qgc3VwcG9ydAorICogZGVtb3RpbmcgcHJpbWFyeSB3aXRob3V0 IHJlc3RhcnRpbmcgdGhlIHNlcnZlci4KKyAqIFNlZSBMYXVuY2hNaXNzaW5nQmFja2dyb3VuZFBy b2Nlc3Nlcy4KICAqCiAgKiBUaGUgJ3N5bmNpbmcnIGZsYWcgaXMgbmVlZGVkIHRvIHByZXZlbnQg Y29uY3VycmVudCBzbG90IHN5bmNzIHRvIGF2b2lkIHNsb3QKICAqIG92ZXJ3cml0ZXMuCkBAIC0x MjksNiArMTMwLDEzIEBAIHN0YXRpYyBsb25nIHNsZWVwX21zID0gTUlOX1NMT1RTWU5DX1dPUktF Ul9OQVBUSU1FX01TOwogICovCiBzdGF0aWMgYm9vbCBzeW5jaW5nX3Nsb3RzID0gZmFsc2U7CiAK Ky8qCisgKiBJbnRlcnJ1cHQgZmxhZyBzZXQgd2hlbiBQUk9DU0lHX1NMT1RTWU5DX01FU1NBR0Ug aXMgcmVjZWl2ZWQsIGFza2luZyB0aGUKKyAqIHNsb3RzeW5jIHdvcmtlciBvciBwZ19zeW5jX3Jl cGxpY2F0aW9uX3Nsb3RzKCkgdG8gc3RvcCBiZWNhdXNlCisgKiBzdGFuZGJ5IHByb21vdGlvbiBo YXMgYmVlbiB0cmlnZ2VyZWQuCisgKi8KK3ZvbGF0aWxlIHNpZ19hdG9taWNfdCBTbG90U3luY1No dXRkb3duUGVuZGluZyA9IGZhbHNlOworCiAvKgogICogU3RydWN0dXJlIHRvIGhvbGQgaW5mb3Jt YXRpb24gZmV0Y2hlZCBmcm9tIHRoZSBwcmltYXJ5IHNlcnZlciBhYm91dCBhIGxvZ2ljYWwKICAq IHJlcGxpY2F0aW9uIHNsb3QuCkBAIC0xMjA1LDM2ICsxMjEzLDUyIEBAIHNsb3RzeW5jX3JlcmVh ZF9jb25maWcodm9pZCkKIH0KIAogLyoKLSAqIEludGVycnVwdCBoYW5kbGVyIGZvciBwcm9jZXNz IHBlcmZvcm1pbmcgc2xvdCBzeW5jaHJvbml6YXRpb24uCisgKiBIYW5kbGUgcmVjZWlwdCBvZiBh biBpbnRlcnJ1cHQgaW5kaWNhdGluZyBhIHNsb3RzeW5jIHNodXRkb3duIG1lc3NhZ2UuCisgKgor ICogVGhpcyBpcyBjYWxsZWQgd2l0aGluIHRoZSBTSUdVU1IxIGhhbmRsZXIuICBBbGwgd2UgZG8g aGVyZSBpcyBzZXQgYSBmbGFnCisgKiB0aGF0IHdpbGwgY2F1c2UgdGhlIG5leHQgQ0hFQ0tfRk9S X0lOVEVSUlVQVFMoKSB0byBpbnZva2UKKyAqIFByb2Nlc3NTbG90U3luY01lc3NhZ2UoKS4KICAq Lwotc3RhdGljIHZvaWQKLVByb2Nlc3NTbG90U3luY0ludGVycnVwdHMoV2FsUmVjZWl2ZXJDb25u ICp3cmNvbm4pCit2b2lkCitIYW5kbGVTbG90U3luY01lc3NhZ2VJbnRlcnJ1cHQodm9pZCkKIHsK LQlDSEVDS19GT1JfSU5URVJSVVBUUygpOworCUludGVycnVwdFBlbmRpbmcgPSB0cnVlOworCVNs b3RTeW5jU2h1dGRvd25QZW5kaW5nID0gdHJ1ZTsKKwkvKiBsYXRjaCB3aWxsIGJlIHNldCBieSBw cm9jc2lnbmFsX3NpZ3VzcjFfaGFuZGxlciAqLworfQogCi0JaWYgKFNsb3RTeW5jQ3R4LT5zdG9w U2lnbmFsZWQpCi0JewotCQlpZiAoQW1Mb2dpY2FsU2xvdFN5bmNXb3JrZXJQcm9jZXNzKCkpCi0J CXsKLQkJCWVyZXBvcnQoTE9HLAotCQkJCQllcnJtc2coInJlcGxpY2F0aW9uIHNsb3Qgc3luY2hy b25pemF0aW9uIHdvcmtlciB3aWxsIHN0b3AgYmVjYXVzZSBwcm9tb3Rpb24gaXMgdHJpZ2dlcmVk IikpOworLyoKKyAqIEhhbmRsZSBhIFBST0NTSUdfU0xPVFNZTkNfTUVTU0FHRSBzaWduYWwsIGNh bGxlZCBmcm9tIFByb2Nlc3NJbnRlcnJ1cHRzKCkuCisgKgorICogSWYgdGhlIGN1cnJlbnQgcHJv Y2VzcyBpcyB0aGUgc2xvdHN5bmMgYmFja2dyb3VuZCB3b3JrZXIsIGxvZyBhIG1lc3NhZ2UKKyAq IGFuZCBleGl0IGNsZWFubHkuICBJZiBpdCBpcyBhIGJhY2tlbmQgZXhlY3V0aW5nIHBnX3N5bmNf cmVwbGljYXRpb25fc2xvdHMoKSwKKyAqIHJhaXNlIGFuIGVycm9yLCB1bmxlc3MgdGhlIHN5bmMg aGFzIGFscmVhZHkgZmluaXNoZWQsIGluIHdoaWNoIGNhc2UgdGhlcmUKKyAqIGlzIG5vIG5lZWQg dG8gaW50ZXJydXB0IHRoZSBjYWxsZXIuCisgKi8KK3ZvaWQKK1Byb2Nlc3NTbG90U3luY01lc3Nh Z2Uodm9pZCkKK3sKKwlTbG90U3luY1NodXRkb3duUGVuZGluZyA9IGZhbHNlOwogCi0JCQlwcm9j X2V4aXQoMCk7Ci0JCX0KLQkJZWxzZQotCQl7Ci0JCQkvKgotCQkJICogRm9yIHRoZSBiYWNrZW5k IGV4ZWN1dGluZyBTUUwgZnVuY3Rpb24KLQkJCSAqIHBnX3N5bmNfcmVwbGljYXRpb25fc2xvdHMo KS4KLQkJCSAqLwotCQkJZXJlcG9ydChFUlJPUiwKLQkJCQkJZXJyY29kZShFUlJDT0RFX09CSkVD VF9OT1RfSU5fUFJFUkVRVUlTSVRFX1NUQVRFKSwKLQkJCQkJZXJybXNnKCJyZXBsaWNhdGlvbiBz bG90IHN5bmNocm9uaXphdGlvbiB3aWxsIHN0b3AgYmVjYXVzZSBwcm9tb3Rpb24gaXMgdHJpZ2dl cmVkIikpOwotCQl9CisJaWYgKEFtTG9naWNhbFNsb3RTeW5jV29ya2VyUHJvY2VzcygpKQorCXsK KwkJZXJlcG9ydChMT0csCisJCQkJZXJybXNnKCJyZXBsaWNhdGlvbiBzbG90IHN5bmNocm9uaXph dGlvbiB3b3JrZXIgd2lsbCBzdG9wIGJlY2F1c2UgcHJvbW90aW9uIGlzIHRyaWdnZXJlZCIpKTsK KwkJcHJvY19leGl0KDApOwogCX0KKwllbHNlCisJeworCQkvKgorCQkgKiBJZiBzeW5jIGhhcyBh bHJlYWR5IGNvbXBsZXRlZCwgdGhlcmUgaXMgbm8gbmVlZCB0byBpbnRlcnJ1cHQgdGhlCisJCSAq IGNhbGxlciB3aXRoIGFuIGVycm9yLgorCQkgKi8KKwkJaWYgKCFJc1N5bmNpbmdSZXBsaWNhdGlv blNsb3RzKCkpCisJCQlyZXR1cm47CiAKLQlpZiAoQ29uZmlnUmVsb2FkUGVuZGluZykKLQkJc2xv dHN5bmNfcmVyZWFkX2NvbmZpZygpOworCQllcmVwb3J0KEVSUk9SLAorCQkJCWVycmNvZGUoRVJS Q09ERV9PQkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lURV9TVEFURSksCisJCQkJZXJybXNnKCJyZXBs aWNhdGlvbiBzbG90IHN5bmNocm9uaXphdGlvbiB3aWxsIHN0b3AgYmVjYXVzZSBwcm9tb3Rpb24g aXMgdHJpZ2dlcmVkIikpOworCX0KIH0KIAogLyoKQEAgLTEzNDEsNiArMTM2NSwzNCBAQCBjaGVj a19hbmRfc2V0X3N5bmNfaW5mbyhwaWRfdCBzeW5jX3Byb2Nlc3NfcGlkKQogewogCVNwaW5Mb2Nr QWNxdWlyZSgmU2xvdFN5bmNDdHgtPm11dGV4KTsKIAorCS8qCisJICogRXhpdCBpbW1lZGlhdGVs eSBpZiBwcm9tb3Rpb24gaGFzIGJlZW4gdHJpZ2dlcmVkLiAgVGhpcyBndWFyZHMgYWdhaW5zdAor CSAqIGEgbmV3IHdvcmtlciAob3IgYSBjYWxsIHRvIHBnX3N5bmNfcmVwbGljYXRpb25fc2xvdHMo KSkgdGhhdCBzdGFydHMKKwkgKiBhZnRlciB0aGUgb2xkIHdvcmtlciB3YXMgc3RvcHBlZCBieSBT aHV0RG93blNsb3RTeW5jKCkuCisJICovCisJaWYgKFNsb3RTeW5jQ3R4LT5zdG9wU2lnbmFsZWQp CisJeworCQlTcGluTG9ja1JlbGVhc2UoJlNsb3RTeW5jQ3R4LT5tdXRleCk7CisKKwkJaWYgKEFt TG9naWNhbFNsb3RTeW5jV29ya2VyUHJvY2VzcygpKQorCQl7CisJCQllcmVwb3J0KERFQlVHMSwK KwkJCQkJZXJybXNnKCJyZXBsaWNhdGlvbiBzbG90IHN5bmNocm9uaXphdGlvbiB3b3JrZXIgd2ls bCBub3Qgc3RhcnQgYmVjYXVzZSBwcm9tb3Rpb24gd2FzIHRyaWdnZXJlZCIpKTsKKworCQkJcHJv Y19leGl0KDApOworCQl9CisJCWVsc2UKKwkJeworCQkJLyoKKwkJCSAqIEZvciB0aGUgYmFja2Vu ZCBleGVjdXRpbmcgU1FMIGZ1bmN0aW9uCisJCQkgKiBwZ19zeW5jX3JlcGxpY2F0aW9uX3Nsb3Rz KCkuCisJCQkgKi8KKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9PQkpF Q1RfTk9UX0lOX1BSRVJFUVVJU0lURV9TVEFURSksCisJCQkJCWVycm1zZygicmVwbGljYXRpb24g c2xvdCBzeW5jaHJvbml6YXRpb24gd2lsbCBub3Qgc3RhcnQgYmVjYXVzZSBwcm9tb3Rpb24gd2Fz IHRyaWdnZXJlZCIpKTsKKwkJfQorCX0KKwogCWlmIChTbG90U3luY0N0eC0+c3luY2luZykKIAl7 CiAJCVNwaW5Mb2NrUmVsZWFzZSgmU2xvdFN5bmNDdHgtPm11dGV4KTsKQEAgLTE1NDYsNyArMTU5 OCwxMCBAQCBSZXBsU2xvdFN5bmNXb3JrZXJNYWluKGNvbnN0IHZvaWQgKnN0YXJ0dXBfZGF0YSwg c2l6ZV90IHN0YXJ0dXBfZGF0YV9sZW4pCiAJewogCQlib29sCQlzb21lX3Nsb3RfdXBkYXRlZCA9 IGZhbHNlOwogCi0JCVByb2Nlc3NTbG90U3luY0ludGVycnVwdHMod3Jjb25uKTsKKwkJQ0hFQ0tf Rk9SX0lOVEVSUlVQVFMoKTsKKworCQlpZiAoQ29uZmlnUmVsb2FkUGVuZGluZykKKwkJCXNsb3Rz eW5jX3JlcmVhZF9jb25maWcoKTsKIAogCQlzb21lX3Nsb3RfdXBkYXRlZCA9IHN5bmNocm9uaXpl X3Nsb3RzKHdyY29ubik7CiAKQEAgLTE2NDQsMTEgKzE2OTksMTEgQEAgU2h1dERvd25TbG90U3lu Yyh2b2lkKQogCVNwaW5Mb2NrUmVsZWFzZSgmU2xvdFN5bmNDdHgtPm11dGV4KTsKIAogCS8qCi0J ICogU2lnbmFsIHByb2Nlc3MgZG9pbmcgc2xvdHN5bmMsIGlmIGFueS4gVGhlIHByb2Nlc3Mgd2ls bCBzdG9wIHVwb24KLQkgKiBkZXRlY3RpbmcgdGhhdCB0aGUgc3RvcFNpZ25hbGVkIGZsYWcgaXMg c2V0IHRvIHRydWUuCisJICogU2lnbmFsIHByb2Nlc3MgZG9pbmcgc2xvdHN5bmMsIGlmIGFueSwg YXNraW5nIGl0IHRvIHN0b3AuCiAJICovCiAJaWYgKHN5bmNfcHJvY2Vzc19waWQgIT0gSW52YWxp ZFBpZCkKLQkJa2lsbChzeW5jX3Byb2Nlc3NfcGlkLCBTSUdVU1IxKTsKKwkJU2VuZFByb2NTaWdu YWwoc3luY19wcm9jZXNzX3BpZCwgUFJPQ1NJR19TTE9UU1lOQ19NRVNTQUdFLAorCQkJCQkgICBJ TlZBTElEX1BST0NfTlVNQkVSKTsKIAogCS8qIFdhaXQgZm9yIHNsb3Qgc3luYyB0byBlbmQgKi8K IAlmb3IgKDs7KQpAQCAtMTc5Myw5ICsxODQ4LDYgQEAgU3luY1JlcGxpY2F0aW9uU2xvdHMoV2Fs UmVjZWl2ZXJDb25uICp3cmNvbm4pCiAJewogCQljaGVja19hbmRfc2V0X3N5bmNfaW5mbyhNeVBy b2NQaWQpOwogCi0JCS8qIENoZWNrIGZvciBpbnRlcnJ1cHRzIGFuZCBjb25maWcgY2hhbmdlcyAq LwotCQlQcm9jZXNzU2xvdFN5bmNJbnRlcnJ1cHRzKCk7Ci0KIAkJdmFsaWRhdGVfcmVtb3RlX2lu Zm8od3Jjb25uKTsKIAogCQlzeW5jaHJvbml6ZV9zbG90cyh3cmNvbm4pOwpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY3NpZ25hbC5jIGIvc3JjL2JhY2tlbmQvc3RvcmFn ZS9pcGMvcHJvY3NpZ25hbC5jCmluZGV4IDA4NzgyMTMxMWNjLi4wNWQ5OWI0NTJjMyAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY3NpZ25hbC5jCisrKyBiL3NyYy9iYWNr ZW5kL3N0b3JhZ2UvaXBjL3Byb2NzaWduYWwuYwpAQCAtMjMsNiArMjMsNyBAQAogI2luY2x1ZGUg InBnc3RhdC5oIgogI2luY2x1ZGUgInBvcnQvcGdfYml0dXRpbHMuaCIKICNpbmNsdWRlICJyZXBs aWNhdGlvbi9sb2dpY2Fsd29ya2VyLmgiCisjaW5jbHVkZSAicmVwbGljYXRpb24vc2xvdHN5bmMu aCIKICNpbmNsdWRlICJyZXBsaWNhdGlvbi93YWxzZW5kZXIuaCIKICNpbmNsdWRlICJzdG9yYWdl L2NvbmRpdGlvbl92YXJpYWJsZS5oIgogI2luY2x1ZGUgInN0b3JhZ2UvaXBjLmgiCkBAIC02OTQs NiArNjk1LDkgQEAgcHJvY3NpZ25hbF9zaWd1c3IxX2hhbmRsZXIoU0lHTkFMX0FSR1MpCiAJaWYg KENoZWNrUHJvY1NpZ25hbChQUk9DU0lHX1BBUkFMTEVMX0FQUExZX01FU1NBR0UpKQogCQlIYW5k bGVQYXJhbGxlbEFwcGx5TWVzc2FnZUludGVycnVwdCgpOwogCisJaWYgKENoZWNrUHJvY1NpZ25h bChQUk9DU0lHX1NMT1RTWU5DX01FU1NBR0UpKQorCQlIYW5kbGVTbG90U3luY01lc3NhZ2VJbnRl cnJ1cHQoKTsKKwogCWlmIChDaGVja1Byb2NTaWduYWwoUFJPQ1NJR19SRUNPVkVSWV9DT05GTElD VF9EQVRBQkFTRSkpCiAJCUhhbmRsZVJlY292ZXJ5Q29uZmxpY3RJbnRlcnJ1cHQoUFJPQ1NJR19S RUNPVkVSWV9DT05GTElDVF9EQVRBQkFTRSk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rj b3AvcG9zdGdyZXMuYyBiL3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYwppbmRleCAyZjhjM2Q1 ZjkxOC4uMTE1YTYzNGM2NDEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMu YworKysgYi9zcmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMKQEAgLTU3LDYgKzU3LDcgQEAKICNp bmNsdWRlICJwb3N0bWFzdGVyL3Bvc3RtYXN0ZXIuaCIKICNpbmNsdWRlICJyZXBsaWNhdGlvbi9s b2dpY2FsbGF1bmNoZXIuaCIKICNpbmNsdWRlICJyZXBsaWNhdGlvbi9sb2dpY2Fsd29ya2VyLmgi CisjaW5jbHVkZSAicmVwbGljYXRpb24vc2xvdHN5bmMuaCIKICNpbmNsdWRlICJyZXBsaWNhdGlv bi9zbG90LmgiCiAjaW5jbHVkZSAicmVwbGljYXRpb24vd2Fsc2VuZGVyLmgiCiAjaW5jbHVkZSAi cmV3cml0ZS9yZXdyaXRlSGFuZGxlci5oIgpAQCAtMzUzNSw2ICszNTM2LDkgQEAgUHJvY2Vzc0lu dGVycnVwdHModm9pZCkKIAogCWlmIChQYXJhbGxlbEFwcGx5TWVzc2FnZVBlbmRpbmcpCiAJCVBy b2Nlc3NQYXJhbGxlbEFwcGx5TWVzc2FnZXMoKTsKKworCWlmIChTbG90U3luY1NodXRkb3duUGVu ZGluZykKKwkJUHJvY2Vzc1Nsb3RTeW5jTWVzc2FnZSgpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvcmVwbGljYXRpb24vc2xvdHN5bmMuaCBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0 aW9uL3Nsb3RzeW5jLmgKaW5kZXggMTZiNzIxNDYzZGQuLjg4MmM0NjU4MWIzIDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9zbG90c3luYy5oCisrKyBiL3NyYy9pbmNsdWRlL3Jl cGxpY2F0aW9uL3Nsb3RzeW5jLmgKQEAgLTEyLDEwICsxMiwxNSBAQAogI2lmbmRlZiBTTE9UU1lO Q19ICiAjZGVmaW5lIFNMT1RTWU5DX0gKIAorI2luY2x1ZGUgPHNpZ25hbC5oPgorCiAjaW5jbHVk ZSAicmVwbGljYXRpb24vd2FscmVjZWl2ZXIuaCIKIAogZXh0ZXJuIFBHRExMSU1QT1JUIGJvb2wg c3luY19yZXBsaWNhdGlvbl9zbG90czsKIAorLyogSW50ZXJydXB0IGZsYWcgc2V0IGJ5IEhhbmRs ZVNsb3RTeW5jTWVzc2FnZUludGVycnVwdCgpICovCitleHRlcm4gUEdETExJTVBPUlQgdm9sYXRp bGUgc2lnX2F0b21pY190IFNsb3RTeW5jU2h1dGRvd25QZW5kaW5nOworCiAvKgogICogR1VDcyBu ZWVkZWQgYnkgc2xvdCBzeW5jIHdvcmtlciB0byBjb25uZWN0IHRvIHRoZSBwcmltYXJ5CiAgKiBz ZXJ2ZXIgYW5kIGNhcnJ5IG9uIHdpdGggc2xvdHMgc3luY2hyb25pemF0aW9uLgpAQCAtMzQsNSAr MzksNyBAQCBleHRlcm4gYm9vbCBJc1N5bmNpbmdSZXBsaWNhdGlvblNsb3RzKHZvaWQpOwogZXh0 ZXJuIFNpemUgU2xvdFN5bmNTaG1lbVNpemUodm9pZCk7CiBleHRlcm4gdm9pZCBTbG90U3luY1No bWVtSW5pdCh2b2lkKTsKIGV4dGVybiB2b2lkIFN5bmNSZXBsaWNhdGlvblNsb3RzKFdhbFJlY2Vp dmVyQ29ubiAqd3Jjb25uKTsKK2V4dGVybiB2b2lkIEhhbmRsZVNsb3RTeW5jTWVzc2FnZUludGVy cnVwdCh2b2lkKTsKK2V4dGVybiB2b2lkIFByb2Nlc3NTbG90U3luY01lc3NhZ2Uodm9pZCk7CiAK ICNlbmRpZgkJCQkJCQkvKiBTTE9UU1lOQ19IICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9z dG9yYWdlL3Byb2NzaWduYWwuaCBiL3NyYy9pbmNsdWRlL3N0b3JhZ2UvcHJvY3NpZ25hbC5oCmlu ZGV4IGFmZWViMWNhMDE5Li5jNGE1OTMyNTYwNCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvc3Rv cmFnZS9wcm9jc2lnbmFsLmgKKysrIGIvc3JjL2luY2x1ZGUvc3RvcmFnZS9wcm9jc2lnbmFsLmgK QEAgLTM2LDYgKzM2LDcgQEAgdHlwZWRlZiBlbnVtCiAJUFJPQ1NJR19CQVJSSUVSLAkJCS8qIGds b2JhbCBiYXJyaWVyIGludGVycnVwdCAgKi8KIAlQUk9DU0lHX0xPR19NRU1PUllfQ09OVEVYVCwg LyogYXNrIGJhY2tlbmQgdG8gbG9nIHRoZSBtZW1vcnkgY29udGV4dHMgKi8KIAlQUk9DU0lHX1BB UkFMTEVMX0FQUExZX01FU1NBR0UsIC8qIE1lc3NhZ2UgZnJvbSBwYXJhbGxlbCBhcHBseSB3b3Jr ZXJzICovCisJUFJPQ1NJR19TTE9UU1lOQ19NRVNTQUdFLAkvKiBhc2sgc2xvdCBzeW5jaHJvbml6 YXRpb24gdG8gc3RvcCAqLwogCiAJLyogUmVjb3ZlcnkgY29uZmxpY3QgcmVhc29ucyAqLwogCVBS T0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfRklSU1QsCi0tIAoyLjUxLjIKCg== --00000000000031848d064e7319a6 Content-Type: application/octet-stream; name="v9-0001-Fix-slotsync-worker-blocking-promotion-when-stuck.patch" Content-Disposition: attachment; filename="v9-0001-Fix-slotsync-worker-blocking-promotion-when-stuck.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnh0c3k30 RnJvbSBjZjc3OTk1OWM0NGYzZGZjOTVmNGFlNzkzNzBiYWI2NjhlMjYwMGQwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaXNoYSBNb29uZCA8bmlzaGEubW9vbmQ0MTJAZ21haWwuY29t PgpEYXRlOiBXZWQsIDI1IE1hciAyMDI2IDE4OjA0OjEyICswNTMwClN1YmplY3Q6IFtQQVRDSCB2 OV0gRml4IHNsb3RzeW5jIHdvcmtlciBibG9ja2luZyBwcm9tb3Rpb24gd2hlbiBzdHVjayBpbiB3 YWl0CgpQcmV2aW91c2x5LCBvbiBzdGFuZGJ5IHByb21vdGlvbiwgdGhlIHN0YXJ0dXAgcHJvY2Vz cyBzZW50IFNJR1VTUjEgdG8KdGhlIHNsb3RzeW5jIHdvcmtlciAob3IgYSBiYWNrZW5kIHBlcmZv cm1pbmcgc2xvdCBzeW5jaHJvbml6YXRpb24pIGFuZAp3YWl0ZWQgZm9yIGl0IHRvIGV4aXQuIFRo aXMgd29ya2VkIGluIG1vc3QgY2FzZXMsIGJ1dCBpZiB0aGUgcHJvY2VzcyB3YXMKYmxvY2tlZCB3 YWl0aW5nIGZvciBhIHJlc3BvbnNlIGZyb20gdGhlIHByaW1hcnkgKGUuZy4sIGR1ZSB0byBhIG5l dHdvcmsKZmFpbHVyZSksIFNJR1VTUjEgd291bGQgbm90IGludGVycnVwdCB0aGUgd2FpdC4gQXMg YSByZXN1bHQsIHRoZSBwcm9jZXNzCmNvdWxkIHJlbWFpbiBzdHVjaywgY2F1c2luZyB0aGUgc3Rh cnR1cCBwcm9jZXNzIHRvIHdhaXQgZm9yIGEgbG9uZyB0aW1lCmFuZCBkZWxheWluZyBwcm9tb3Rp b24uCgpUaGlzIGNvbW1pdCBmaXhlcyB0aGUgaXNzdWUgYnkgaW50cm9kdWNpbmcgYSBuZXcgcHJv Y3NpZ25hbCByZWFzb24sClBST0NTSUdfU0xPVFNZTkNfTUVTU0FHRS4gT24gcHJvbW90aW9uLCB0 aGUgc3RhcnR1cCBwcm9jZXNzCnNlbmRzIHRoaXMgc2lnbmFsLCBhbmQgdGhlIGhhbmRsZXIgc2V0 cyBpbnRlcnJ1cHQgZmxhZ3Mgc28gdGhlIHByb2Nlc3MKZXhpdHMgKG9yIGVycm9ycyBvdXQpIHBy b21wdGx5IGF0IENIRUNLX0ZPUl9JTlRFUlJVUFRTKCksIGFsbG93aW5nCnByb21vdGlvbiB0byBj b21wbGV0ZSB3aXRob3V0IGRlbGF5LgoKQmFja3BhdGNoIHRvIHYxNywgd2hlcmUgc2xvdHN5bmMg d2FzIGludHJvZHVjZWQuCgpBdXRob3I6IE5pc2hhIE1vb25kIDxuaXNoYS5tb29uZDQxMkBnbWFp bC5jb20+ClJldmlld2VkLWJ5OiBzaHZldGEgbWFsaWsgPHNodmV0YS5tYWxpa0BnbWFpbC5jb20+ ClJldmlld2VkLWJ5OiBBbWl0IEthcGlsYSA8YW1pdC5rYXBpbGExNkBnbWFpbC5jb20+ClJldmll d2VkLWJ5OiBaaGlqaWUgSG91IDxob3V6ai5mbnN0QGZ1aml0c3UuY29tPgpSZXZpZXdlZC1ieTog RnVqaWkgTWFzYW8gPG1hc2FvLmZ1amlpQGdtYWlsLmNvbT4KRGlzY3Vzc2lvbjogaHR0cHM6Ly9w b3N0Z3IuZXMvbS9DQUhHUUd3RnpOWXJvQXhTb3lKaHFUVS1wSD10NEVqNlJ5dmhWbUJaOTFFeGpf VFBNTVFAbWFpbC5nbWFpbC5jb20KQmFja3BhdGNoLXRocm91Z2g6IDE3Ci0tLQogc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vbG9naWNhbC9zbG90c3luYy5jIHwgMTQzICsrKysrKysrKysrKysrLS0t LS0tLQogc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY3NpZ25hbC5jICAgICAgIHwgICA0ICsK IHNyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYyAgICAgICAgICAgICAgICB8ICAgNCArCiBzcmMv aW5jbHVkZS9yZXBsaWNhdGlvbi9zbG90c3luYy5oICAgICAgICAgfCAgIDcgKwogc3JjL2luY2x1 ZGUvc3RvcmFnZS9wcm9jc2lnbmFsLmggICAgICAgICAgIHwgICAxICsKIDUgZmlsZXMgY2hhbmdl ZCwgMTE1IGluc2VydGlvbnMoKyksIDQ0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvc2xvdHN5bmMuYyBiL3NyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL2xvZ2ljYWwvc2xvdHN5bmMuYwppbmRleCBlNzVkYjY5ZTNmNi4uYzUyYzUxMzUzNjAg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvc2xvdHN5bmMuYwor KysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3Nsb3RzeW5jLmMKQEAgLTg1LDE4 ICs4NSwxOSBAQAogICogU3RydWN0IGZvciBzaGFyaW5nIGluZm9ybWF0aW9uIHRvIGNvbnRyb2wg c2xvdCBzeW5jaHJvbml6YXRpb24uCiAgKgogICogVGhlICdwaWQnIGlzIGVpdGhlciB0aGUgc2xv dCBzeW5jIHdvcmtlcidzIHBpZCBvciB0aGUgYmFja2VuZCdzIHBpZCBydW5uaW5nCi0gKiB0aGUg U1FMIGZ1bmN0aW9uIHBnX3N5bmNfcmVwbGljYXRpb25fc2xvdHMoKS4gV2hlbiB0aGUgc3RhcnR1 cCBwcm9jZXNzIHNldHMKLSAqICdzdG9wU2lnbmFsZWQnIGR1cmluZyBwcm9tb3Rpb24sIGl0IHVz ZXMgdGhpcyAncGlkJyB0byB3YWtlIHVwIHRoZSBjdXJyZW50bHkKLSAqIHN5bmNocm9uaXppbmcg cHJvY2VzcyBzbyB0aGF0IHRoZSBwcm9jZXNzIGNhbiBpbW1lZGlhdGVseSBzdG9wIGl0cwotICog c3luY2hyb25pemluZyB3b3JrIG9uIHNlZWluZyAnc3RvcFNpZ25hbGVkJyBzZXQuCi0gKiBTZXR0 aW5nICdzdG9wU2lnbmFsZWQnIGlzIGFsc28gdXNlZCB0byBoYW5kbGUgdGhlIHJhY2UgY29uZGl0 aW9uIHdoZW4gdGhlCi0gKiBwb3N0bWFzdGVyIGhhcyBub3Qgbm90aWNlZCB0aGUgcHJvbW90aW9u IHlldCBhbmQgdGh1cyBtYXkgZW5kIHVwIHJlc3RhcnRpbmcKLSAqIHRoZSBzbG90IHN5bmMgd29y a2VyLiBJZiAnc3RvcFNpZ25hbGVkJyBpcyBzZXQsIHRoZSB3b3JrZXIgd2lsbCBleGl0IGluIHN1 Y2ggYQotICogY2FzZS4gVGhlIFNRTCBmdW5jdGlvbiBwZ19zeW5jX3JlcGxpY2F0aW9uX3Nsb3Rz KCkgd2lsbCBhbHNvIGVycm9yIG91dCBpZgotICogdGhpcyBmbGFnIGlzIHNldC4gTm90ZSB0aGF0 IHdlIGRvbid0IG5lZWQgdG8gcmVzZXQgdGhpcyB2YXJpYWJsZSBhcyBhZnRlcgotICogcHJvbW90 aW9uIHRoZSBzbG90IHN5bmMgd29ya2VyIHdvbid0IGJlIHJlc3RhcnRlZCBiZWNhdXNlIHRoZSBw bVN0YXRlCi0gKiBjaGFuZ2VzIHRvIFBNX1JVTiBmcm9tIFBNX0hPVF9TVEFOREJZIGFuZCB3ZSBk b24ndCBzdXBwb3J0IGRlbW90aW5nCi0gKiBwcmltYXJ5IHdpdGhvdXQgcmVzdGFydGluZyB0aGUg c2VydmVyLiBTZWUgTGF1bmNoTWlzc2luZ0JhY2tncm91bmRQcm9jZXNzZXMuCisgKiB0aGUgU1FM IGZ1bmN0aW9uIHBnX3N5bmNfcmVwbGljYXRpb25fc2xvdHMoKS4gT24gcHJvbW90aW9uLCB0aGUg c3RhcnR1cAorICogcHJvY2VzcyBzZXRzICdzdG9wU2lnbmFsZWQnIGFuZCB1c2VzIHRoaXMgJ3Bp ZCcgdG8gc2lnbmFsIHRoZSBzeW5jaHJvbml6aW5nCisgKiBwcm9jZXNzIHdpdGggUFJPQ1NJR19T TE9UU1lOQ19NRVNTQUdFIGFuZCBhbHNvIHRvIHdha2UgaXQgdXAgc28gdGhhdCB0aGUKKyAqIHBy b2Nlc3MgY2FuIGltbWVkaWF0ZWx5IHN0b3AgaXRzIHN5bmNocm9uaXppbmcgd29yay4KKyAqIFNl dHRpbmcgJ3N0b3BTaWduYWxlZCcgb24gdGhlIG90aGVyIGhhbmQgaXMgdXNlZCB0byBoYW5kbGUg dGhlIHJhY2UKKyAqIGNvbmRpdGlvbiB3aGVuIHRoZSBwb3N0bWFzdGVyIGhhcyBub3Qgbm90aWNl ZCB0aGUgcHJvbW90aW9uIHlldCBhbmQgdGh1cyBtYXkKKyAqIGVuZCB1cCByZXN0YXJ0aW5nIHRo ZSBzbG90IHN5bmMgd29ya2VyLiBJZiAnc3RvcFNpZ25hbGVkJyBpcyBzZXQsIHRoZSB3b3JrZXIK KyAqIHdpbGwgZXhpdCBpbiBzdWNoIGEgY2FzZS4gVGhlIFNRTCBmdW5jdGlvbiBwZ19zeW5jX3Jl cGxpY2F0aW9uX3Nsb3RzKCkgd2lsbAorICogYWxzbyBlcnJvciBvdXQgaWYgdGhpcyBmbGFnIGlz IHNldC4gTm90ZSB0aGF0IHdlIGRvbid0IG5lZWQgdG8gcmVzZXQgdGhpcworICogdmFyaWFibGUg YXMgYWZ0ZXIgcHJvbW90aW9uIHRoZSBzbG90IHN5bmMgd29ya2VyIHdvbid0IGJlIHJlc3RhcnRl ZCBiZWNhdXNlCisgKiB0aGUgcG1TdGF0ZSBjaGFuZ2VzIHRvIFBNX1JVTiBmcm9tIFBNX0hPVF9T VEFOREJZIGFuZCB3ZSBkb24ndCBzdXBwb3J0CisgKiBkZW1vdGluZyBwcmltYXJ5IHdpdGhvdXQg cmVzdGFydGluZyB0aGUgc2VydmVyLgorICogU2VlIExhdW5jaE1pc3NpbmdCYWNrZ3JvdW5kUHJv Y2Vzc2VzLgogICoKICAqIFRoZSAnc3luY2luZycgZmxhZyBpcyBuZWVkZWQgdG8gcHJldmVudCBj b25jdXJyZW50IHNsb3Qgc3luY3MgdG8gYXZvaWQgc2xvdAogICogb3ZlcndyaXRlcy4KQEAgLTE0 MSw2ICsxNDIsMTMgQEAgc3RhdGljIGxvbmcgc2xlZXBfbXMgPSBNSU5fU0xPVFNZTkNfV09SS0VS X05BUFRJTUVfTVM7CiAgKi8KIHN0YXRpYyBib29sIHN5bmNpbmdfc2xvdHMgPSBmYWxzZTsKIAor LyoKKyAqIEludGVycnVwdCBmbGFnIHNldCB3aGVuIFBST0NTSUdfU0xPVFNZTkNfTUVTU0FHRSBp cyByZWNlaXZlZCwgYXNraW5nIHRoZQorICogc2xvdHN5bmMgd29ya2VyIG9yIHBnX3N5bmNfcmVw bGljYXRpb25fc2xvdHMoKSB0byBzdG9wIGJlY2F1c2UKKyAqIHN0YW5kYnkgcHJvbW90aW9uIGhh cyBiZWVuIHRyaWdnZXJlZC4KKyAqLwordm9sYXRpbGUgc2lnX2F0b21pY190IFNsb3RTeW5jU2h1 dGRvd25QZW5kaW5nID0gZmFsc2U7CisKIC8qCiAgKiBTdHJ1Y3R1cmUgdG8gaG9sZCBpbmZvcm1h dGlvbiBmZXRjaGVkIGZyb20gdGhlIHByaW1hcnkgc2VydmVyIGFib3V0IGEgbG9naWNhbAogICog cmVwbGljYXRpb24gc2xvdC4KQEAgLTEyOTEsMzYgKzEyOTksNTIgQEAgc2xvdHN5bmNfcmVyZWFk X2NvbmZpZyh2b2lkKQogfQogCiAvKgotICogSW50ZXJydXB0IGhhbmRsZXIgZm9yIHByb2Nlc3Mg cGVyZm9ybWluZyBzbG90IHN5bmNocm9uaXphdGlvbi4KKyAqIEhhbmRsZSByZWNlaXB0IG9mIGFu IGludGVycnVwdCBpbmRpY2F0aW5nIGEgc2xvdHN5bmMgc2h1dGRvd24gbWVzc2FnZS4KKyAqCisg KiBUaGlzIGlzIGNhbGxlZCB3aXRoaW4gdGhlIFNJR1VTUjEgaGFuZGxlci4gIEFsbCB3ZSBkbyBo ZXJlIGlzIHNldCBhIGZsYWcKKyAqIHRoYXQgd2lsbCBjYXVzZSB0aGUgbmV4dCBDSEVDS19GT1Jf SU5URVJSVVBUUygpIHRvIGludm9rZQorICogUHJvY2Vzc1Nsb3RTeW5jTWVzc2FnZSgpLgogICov Ci1zdGF0aWMgdm9pZAotUHJvY2Vzc1Nsb3RTeW5jSW50ZXJydXB0cyh2b2lkKQordm9pZAorSGFu ZGxlU2xvdFN5bmNNZXNzYWdlSW50ZXJydXB0KHZvaWQpCiB7Ci0JQ0hFQ0tfRk9SX0lOVEVSUlVQ VFMoKTsKKwlJbnRlcnJ1cHRQZW5kaW5nID0gdHJ1ZTsKKwlTbG90U3luY1NodXRkb3duUGVuZGlu ZyA9IHRydWU7CisJLyogbGF0Y2ggd2lsbCBiZSBzZXQgYnkgcHJvY3NpZ25hbF9zaWd1c3IxX2hh bmRsZXIgKi8KK30KIAotCWlmIChTbG90U3luY0N0eC0+c3RvcFNpZ25hbGVkKQotCXsKLQkJaWYg KEFtTG9naWNhbFNsb3RTeW5jV29ya2VyUHJvY2VzcygpKQotCQl7Ci0JCQllcmVwb3J0KExPRywK LQkJCQkJZXJybXNnKCJyZXBsaWNhdGlvbiBzbG90IHN5bmNocm9uaXphdGlvbiB3b3JrZXIgd2ls bCBzdG9wIGJlY2F1c2UgcHJvbW90aW9uIGlzIHRyaWdnZXJlZCIpKTsKKy8qCisgKiBIYW5kbGUg YSBQUk9DU0lHX1NMT1RTWU5DX01FU1NBR0Ugc2lnbmFsLCBjYWxsZWQgZnJvbSBQcm9jZXNzSW50 ZXJydXB0cygpLgorICoKKyAqIElmIHRoZSBjdXJyZW50IHByb2Nlc3MgaXMgdGhlIHNsb3RzeW5j IGJhY2tncm91bmQgd29ya2VyLCBsb2cgYSBtZXNzYWdlCisgKiBhbmQgZXhpdCBjbGVhbmx5LiAg SWYgaXQgaXMgYSBiYWNrZW5kIGV4ZWN1dGluZyBwZ19zeW5jX3JlcGxpY2F0aW9uX3Nsb3RzKCks CisgKiByYWlzZSBhbiBlcnJvciwgdW5sZXNzIHRoZSBzeW5jIGhhcyBhbHJlYWR5IGZpbmlzaGVk LCBpbiB3aGljaCBjYXNlIHRoZXJlCisgKiBpcyBubyBuZWVkIHRvIGludGVycnVwdCB0aGUgY2Fs bGVyLgorICovCit2b2lkCitQcm9jZXNzU2xvdFN5bmNNZXNzYWdlKHZvaWQpCit7CisJU2xvdFN5 bmNTaHV0ZG93blBlbmRpbmcgPSBmYWxzZTsKIAotCQkJcHJvY19leGl0KDApOwotCQl9Ci0JCWVs c2UKLQkJewotCQkJLyoKLQkJCSAqIEZvciB0aGUgYmFja2VuZCBleGVjdXRpbmcgU1FMIGZ1bmN0 aW9uCi0JCQkgKiBwZ19zeW5jX3JlcGxpY2F0aW9uX3Nsb3RzKCkuCi0JCQkgKi8KLQkJCWVyZXBv cnQoRVJST1IsCi0JCQkJCWVycmNvZGUoRVJSQ09ERV9PQkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lU RV9TVEFURSksCi0JCQkJCWVycm1zZygicmVwbGljYXRpb24gc2xvdCBzeW5jaHJvbml6YXRpb24g d2lsbCBzdG9wIGJlY2F1c2UgcHJvbW90aW9uIGlzIHRyaWdnZXJlZCIpKTsKLQkJfQorCWlmIChB bUxvZ2ljYWxTbG90U3luY1dvcmtlclByb2Nlc3MoKSkKKwl7CisJCWVyZXBvcnQoTE9HLAorCQkJ CWVycm1zZygicmVwbGljYXRpb24gc2xvdCBzeW5jaHJvbml6YXRpb24gd29ya2VyIHdpbGwgc3Rv cCBiZWNhdXNlIHByb21vdGlvbiBpcyB0cmlnZ2VyZWQiKSk7CisJCXByb2NfZXhpdCgwKTsKIAl9 CisJZWxzZQorCXsKKwkJLyoKKwkJICogSWYgc3luYyBoYXMgYWxyZWFkeSBjb21wbGV0ZWQsIHRo ZXJlIGlzIG5vIG5lZWQgdG8gaW50ZXJydXB0IHRoZQorCQkgKiBjYWxsZXIgd2l0aCBhbiBlcnJv ci4KKwkJICovCisJCWlmICghSXNTeW5jaW5nUmVwbGljYXRpb25TbG90cygpKQorCQkJcmV0dXJu OwogCi0JaWYgKENvbmZpZ1JlbG9hZFBlbmRpbmcpCi0JCXNsb3RzeW5jX3JlcmVhZF9jb25maWco KTsKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQllcnJjb2RlKEVSUkNPREVfT0JKRUNUX05PVF9JTl9Q UkVSRVFVSVNJVEVfU1RBVEUpLAorCQkJCWVycm1zZygicmVwbGljYXRpb24gc2xvdCBzeW5jaHJv bml6YXRpb24gd2lsbCBzdG9wIGJlY2F1c2UgcHJvbW90aW9uIGlzIHRyaWdnZXJlZCIpKTsKKwl9 CiB9CiAKIC8qCkBAIC0xNDI3LDYgKzE0NTEsMzQgQEAgY2hlY2tfYW5kX3NldF9zeW5jX2luZm8o cGlkX3Qgc3luY19wcm9jZXNzX3BpZCkKIHsKIAlTcGluTG9ja0FjcXVpcmUoJlNsb3RTeW5jQ3R4 LT5tdXRleCk7CiAKKwkvKgorCSAqIEV4aXQgaW1tZWRpYXRlbHkgaWYgcHJvbW90aW9uIGhhcyBi ZWVuIHRyaWdnZXJlZC4gIFRoaXMgZ3VhcmRzIGFnYWluc3QKKwkgKiBhIG5ldyB3b3JrZXIgKG9y IGEgY2FsbCB0byBwZ19zeW5jX3JlcGxpY2F0aW9uX3Nsb3RzKCkpIHRoYXQgc3RhcnRzCisJICog YWZ0ZXIgdGhlIG9sZCB3b3JrZXIgd2FzIHN0b3BwZWQgYnkgU2h1dERvd25TbG90U3luYygpLgor CSAqLworCWlmIChTbG90U3luY0N0eC0+c3RvcFNpZ25hbGVkKQorCXsKKwkJU3BpbkxvY2tSZWxl YXNlKCZTbG90U3luY0N0eC0+bXV0ZXgpOworCisJCWlmIChBbUxvZ2ljYWxTbG90U3luY1dvcmtl clByb2Nlc3MoKSkKKwkJeworCQkJZXJlcG9ydChERUJVRzEsCisJCQkJCWVycm1zZygicmVwbGlj YXRpb24gc2xvdCBzeW5jaHJvbml6YXRpb24gd29ya2VyIHdpbGwgbm90IHN0YXJ0IGJlY2F1c2Ug cHJvbW90aW9uIHdhcyB0cmlnZ2VyZWQiKSk7CisKKwkJCXByb2NfZXhpdCgwKTsKKwkJfQorCQll bHNlCisJCXsKKwkJCS8qCisJCQkgKiBGb3IgdGhlIGJhY2tlbmQgZXhlY3V0aW5nIFNRTCBmdW5j dGlvbgorCQkJICogcGdfc3luY19yZXBsaWNhdGlvbl9zbG90cygpLgorCQkJICovCisJCQllcmVw b3J0KEVSUk9SLAorCQkJCQllcnJjb2RlKEVSUkNPREVfT0JKRUNUX05PVF9JTl9QUkVSRVFVSVNJ VEVfU1RBVEUpLAorCQkJCQllcnJtc2coInJlcGxpY2F0aW9uIHNsb3Qgc3luY2hyb25pemF0aW9u IHdpbGwgbm90IHN0YXJ0IGJlY2F1c2UgcHJvbW90aW9uIHdhcyB0cmlnZ2VyZWQiKSk7CisJCX0K Kwl9CisKIAlpZiAoU2xvdFN5bmNDdHgtPnN5bmNpbmcpCiAJewogCQlTcGluTG9ja1JlbGVhc2Uo JlNsb3RTeW5jQ3R4LT5tdXRleCk7CkBAIC0xNjM1LDcgKzE2ODcsMTAgQEAgUmVwbFNsb3RTeW5j V29ya2VyTWFpbihjb25zdCB2b2lkICpzdGFydHVwX2RhdGEsIHNpemVfdCBzdGFydHVwX2RhdGFf bGVuKQogCQlib29sCQlzdGFydGVkX3R4ID0gZmFsc2U7CiAJCUxpc3QJICAgKnJlbW90ZV9zbG90 czsKIAotCQlQcm9jZXNzU2xvdFN5bmNJbnRlcnJ1cHRzKCk7CisJCUNIRUNLX0ZPUl9JTlRFUlJV UFRTKCk7CisKKwkJaWYgKENvbmZpZ1JlbG9hZFBlbmRpbmcpCisJCQlzbG90c3luY19yZXJlYWRf Y29uZmlnKCk7CiAKIAkJLyoKIAkJICogVGhlIHN5c2NhY2hlIGFjY2VzcyBpbiBmZXRjaF9yZW1v dGVfc2xvdHMoKSBuZWVkcyBhIHRyYW5zYWN0aW9uCkBAIC0xNzQ4LDExICsxODAzLDExIEBAIFNo dXREb3duU2xvdFN5bmModm9pZCkKIAlTcGluTG9ja1JlbGVhc2UoJlNsb3RTeW5jQ3R4LT5tdXRl eCk7CiAKIAkvKgotCSAqIFNpZ25hbCBwcm9jZXNzIGRvaW5nIHNsb3RzeW5jLCBpZiBhbnkuIFRo ZSBwcm9jZXNzIHdpbGwgc3RvcCB1cG9uCi0JICogZGV0ZWN0aW5nIHRoYXQgdGhlIHN0b3BTaWdu YWxlZCBmbGFnIGlzIHNldCB0byB0cnVlLgorCSAqIFNpZ25hbCBwcm9jZXNzIGRvaW5nIHNsb3Rz eW5jLCBpZiBhbnksIGFza2luZyBpdCB0byBzdG9wLgogCSAqLwogCWlmIChzeW5jX3Byb2Nlc3Nf cGlkICE9IEludmFsaWRQaWQpCi0JCWtpbGwoc3luY19wcm9jZXNzX3BpZCwgU0lHVVNSMSk7CisJ CVNlbmRQcm9jU2lnbmFsKHN5bmNfcHJvY2Vzc19waWQsIFBST0NTSUdfU0xPVFNZTkNfTUVTU0FH RSwKKwkJCQkJICAgSU5WQUxJRF9QUk9DX05VTUJFUik7CiAKIAkvKiBXYWl0IGZvciBzbG90IHN5 bmMgdG8gZW5kICovCiAJZm9yICg7OykKQEAgLTE5MzEsOSArMTk4Niw2IEBAIFN5bmNSZXBsaWNh dGlvblNsb3RzKFdhbFJlY2VpdmVyQ29ubiAqd3Jjb25uKQogCiAJCWNoZWNrX2FuZF9zZXRfc3lu Y19pbmZvKE15UHJvY1BpZCk7CiAKLQkJLyogQ2hlY2sgZm9yIGludGVycnVwdHMgYW5kIGNvbmZp ZyBjaGFuZ2VzICovCi0JCVByb2Nlc3NTbG90U3luY0ludGVycnVwdHMoKTsKLQogCQl2YWxpZGF0 ZV9yZW1vdGVfaW5mbyh3cmNvbm4pOwogCiAJCS8qIFJldHJ5IHVudGlsIGFsbCB0aGUgc2xvdHMg YXJlIHN5bmMtcmVhZHkgKi8KQEAgLTE5NDMsNyArMTk5NSwxMCBAQCBTeW5jUmVwbGljYXRpb25T bG90cyhXYWxSZWNlaXZlckNvbm4gKndyY29ubikKIAkJCWJvb2wJCXNvbWVfc2xvdF91cGRhdGVk ID0gZmFsc2U7CiAKIAkJCS8qIENoZWNrIGZvciBpbnRlcnJ1cHRzIGFuZCBjb25maWcgY2hhbmdl cyAqLwotCQkJUHJvY2Vzc1Nsb3RTeW5jSW50ZXJydXB0cygpOworCQkJQ0hFQ0tfRk9SX0lOVEVS UlVQVFMoKTsKKworCQkJaWYgKENvbmZpZ1JlbG9hZFBlbmRpbmcpCisJCQkJc2xvdHN5bmNfcmVy ZWFkX2NvbmZpZygpOwogCiAJCQkvKiBXZSBtdXN0IGJlIGluIGEgdmFsaWQgdHJhbnNhY3Rpb24g c3RhdGUgKi8KIAkJCUFzc2VydChJc1RyYW5zYWN0aW9uU3RhdGUoKSk7CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jc2lnbmFsLmMgYi9zcmMvYmFja2VuZC9zdG9yYWdl L2lwYy9wcm9jc2lnbmFsLmMKaW5kZXggN2UwMTdjOGQ1M2IuLjk5NzkyYjEzNzYwIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jc2lnbmFsLmMKKysrIGIvc3JjL2JhY2tl bmQvc3RvcmFnZS9pcGMvcHJvY3NpZ25hbC5jCkBAIC0yNCw2ICsyNCw3IEBACiAjaW5jbHVkZSAi cG9ydC9wZ19iaXR1dGlscy5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL2xvZ2ljYWxjdGwuaCIK ICNpbmNsdWRlICJyZXBsaWNhdGlvbi9sb2dpY2Fsd29ya2VyLmgiCisjaW5jbHVkZSAicmVwbGlj YXRpb24vc2xvdHN5bmMuaCIKICNpbmNsdWRlICJyZXBsaWNhdGlvbi93YWxzZW5kZXIuaCIKICNp bmNsdWRlICJzdG9yYWdlL2NvbmRpdGlvbl92YXJpYWJsZS5oIgogI2luY2x1ZGUgInN0b3JhZ2Uv aXBjLmgiCkBAIC03MDAsNiArNzAxLDkgQEAgcHJvY3NpZ25hbF9zaWd1c3IxX2hhbmRsZXIoU0lH TkFMX0FSR1MpCiAJaWYgKENoZWNrUHJvY1NpZ25hbChQUk9DU0lHX1BBUkFMTEVMX0FQUExZX01F U1NBR0UpKQogCQlIYW5kbGVQYXJhbGxlbEFwcGx5TWVzc2FnZUludGVycnVwdCgpOwogCisJaWYg KENoZWNrUHJvY1NpZ25hbChQUk9DU0lHX1NMT1RTWU5DX01FU1NBR0UpKQorCQlIYW5kbGVTbG90 U3luY01lc3NhZ2VJbnRlcnJ1cHQoKTsKKwogCWlmIChDaGVja1Byb2NTaWduYWwoUFJPQ1NJR19S RUNPVkVSWV9DT05GTElDVCkpCiAJCUhhbmRsZVJlY292ZXJ5Q29uZmxpY3RJbnRlcnJ1cHQoKTsK IApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jIGIvc3JjL2JhY2tlbmQv dGNvcC9wb3N0Z3Jlcy5jCmluZGV4IDEwYmU2MDAxMWFkLi5iM2NmNTNiNTA5ZiAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jCisrKyBiL3NyYy9iYWNrZW5kL3Rjb3AvcG9z dGdyZXMuYwpAQCAtNTgsNiArNTgsNyBAQAogI2luY2x1ZGUgInBvc3RtYXN0ZXIvcG9zdG1hc3Rl ci5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL2xvZ2ljYWxsYXVuY2hlci5oIgogI2luY2x1ZGUg InJlcGxpY2F0aW9uL2xvZ2ljYWx3b3JrZXIuaCIKKyNpbmNsdWRlICJyZXBsaWNhdGlvbi9zbG90 c3luYy5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL3Nsb3QuaCIKICNpbmNsdWRlICJyZXBsaWNh dGlvbi93YWxzZW5kZXIuaCIKICNpbmNsdWRlICJyZXdyaXRlL3Jld3JpdGVIYW5kbGVyLmgiCkBA IC0zNTc2LDYgKzM1NzcsOSBAQCBQcm9jZXNzSW50ZXJydXB0cyh2b2lkKQogCiAJaWYgKFBhcmFs bGVsQXBwbHlNZXNzYWdlUGVuZGluZykKIAkJUHJvY2Vzc1BhcmFsbGVsQXBwbHlNZXNzYWdlcygp OworCisJaWYgKFNsb3RTeW5jU2h1dGRvd25QZW5kaW5nKQorCQlQcm9jZXNzU2xvdFN5bmNNZXNz YWdlKCk7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9zbG90 c3luYy5oIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vc2xvdHN5bmMuaAppbmRleCBlNTQ2ZDBk MDUwZC4uMzU4MzUwODcxMjggMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Ns b3RzeW5jLmgKKysrIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vc2xvdHN5bmMuaApAQCAtMTIs MTAgKzEyLDE1IEBACiAjaWZuZGVmIFNMT1RTWU5DX0gKICNkZWZpbmUgU0xPVFNZTkNfSAogCisj aW5jbHVkZSA8c2lnbmFsLmg+CisKICNpbmNsdWRlICJyZXBsaWNhdGlvbi93YWxyZWNlaXZlci5o IgogCiBleHRlcm4gUEdETExJTVBPUlQgYm9vbCBzeW5jX3JlcGxpY2F0aW9uX3Nsb3RzOwogCisv KiBJbnRlcnJ1cHQgZmxhZyBzZXQgYnkgSGFuZGxlU2xvdFN5bmNNZXNzYWdlSW50ZXJydXB0KCkg Ki8KK2V4dGVybiBQR0RMTElNUE9SVCB2b2xhdGlsZSBzaWdfYXRvbWljX3QgU2xvdFN5bmNTaHV0 ZG93blBlbmRpbmc7CisKIC8qCiAgKiBHVUNzIG5lZWRlZCBieSBzbG90IHN5bmMgd29ya2VyIHRv IGNvbm5lY3QgdG8gdGhlIHByaW1hcnkKICAqIHNlcnZlciBhbmQgY2Fycnkgb24gd2l0aCBzbG90 cyBzeW5jaHJvbml6YXRpb24uCkBAIC0zNCw1ICszOSw3IEBAIGV4dGVybiBib29sIElzU3luY2lu Z1JlcGxpY2F0aW9uU2xvdHModm9pZCk7CiBleHRlcm4gU2l6ZSBTbG90U3luY1NobWVtU2l6ZSh2 b2lkKTsKIGV4dGVybiB2b2lkIFNsb3RTeW5jU2htZW1Jbml0KHZvaWQpOwogZXh0ZXJuIHZvaWQg U3luY1JlcGxpY2F0aW9uU2xvdHMoV2FsUmVjZWl2ZXJDb25uICp3cmNvbm4pOworZXh0ZXJuIHZv aWQgSGFuZGxlU2xvdFN5bmNNZXNzYWdlSW50ZXJydXB0KHZvaWQpOworZXh0ZXJuIHZvaWQgUHJv Y2Vzc1Nsb3RTeW5jTWVzc2FnZSh2b2lkKTsKIAogI2VuZGlmCQkJCQkJCS8qIFNMT1RTWU5DX0gg Ki8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3N0b3JhZ2UvcHJvY3NpZ25hbC5oIGIvc3JjL2lu Y2x1ZGUvc3RvcmFnZS9wcm9jc2lnbmFsLmgKaW5kZXggMzQ4ZmJhNTNhOTMuLjliYmY1ZGI2N2Zh IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9zdG9yYWdlL3Byb2NzaWduYWwuaAorKysgYi9zcmMv aW5jbHVkZS9zdG9yYWdlL3Byb2NzaWduYWwuaApAQCAtMzYsNiArMzYsNyBAQCB0eXBlZGVmIGVu dW0KIAlQUk9DU0lHX0JBUlJJRVIsCQkJLyogZ2xvYmFsIGJhcnJpZXIgaW50ZXJydXB0ICAqLwog CVBST0NTSUdfTE9HX01FTU9SWV9DT05URVhULCAvKiBhc2sgYmFja2VuZCB0byBsb2cgdGhlIG1l bW9yeSBjb250ZXh0cyAqLwogCVBST0NTSUdfUEFSQUxMRUxfQVBQTFlfTUVTU0FHRSwgLyogTWVz c2FnZSBmcm9tIHBhcmFsbGVsIGFwcGx5IHdvcmtlcnMgKi8KKwlQUk9DU0lHX1NMT1RTWU5DX01F U1NBR0UsCS8qIGFzayBzbG90IHN5bmNocm9uaXphdGlvbiB0byBzdG9wICovCiAJUFJPQ1NJR19S RUNPVkVSWV9DT05GTElDVCwJLyogYmFja2VuZCBpcyBibG9ja2luZyByZWNvdmVyeSwgY2hlY2sK IAkJCQkJCQkJICogUEdQUk9DLT5wZW5kaW5nUmVjb3ZlcnlDb25mbGljdHMgZm9yIHRoZQogCQkJ CQkJCQkgKiByZWFzb24gKi8KLS0gCjIuNTEuMgoK --00000000000031848d064e7319a6--