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 1vpLwT-006Hnl-0Q for pgsql-hackers@arkaria.postgresql.org; Mon, 09 Feb 2026 07:44:21 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vpLwS-009f4V-0l for pgsql-hackers@arkaria.postgresql.org; Mon, 09 Feb 2026 07:44:20 +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 1vpLwR-009f4M-1j for pgsql-hackers@lists.postgresql.org; Mon, 09 Feb 2026 07:44:19 +0000 Received: from mail-vk1-xa32.google.com ([2607:f8b0:4864:20::a32]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vpLwN-00000001F24-1tpO for pgsql-hackers@postgresql.org; Mon, 09 Feb 2026 07:44:18 +0000 Received: by mail-vk1-xa32.google.com with SMTP id 71dfb90a1353d-5664848545fso1542607e0c.3 for ; Sun, 08 Feb 2026 23:44:15 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1770623054; cv=none; d=google.com; s=arc-20240605; b=Q17ZX2N7vmG7hCVksXSXWkrkoUaC9ChTwFevSwk3jIKtTP8ND/6H546Y/69c786+n4 h3BjPXnyWhdZXwwHjdvK87a0VOWYGK5t2ZpwSWMTjDWTN+OgNZdYWqO7LEXY7z6VVxQC MVkYAfL+tm+Zrz34L/OT2p4XI/AM9zGd54GxXc3Bi9/1wWfyF6KmjsHYr+vJFhk+Mh9H dusAxDV/lOKLftcCPX4FwWAmkX3tU3wYQ3grexhTR73tRnyDkuG/TrHxK+HZwsanmMnV YlfjFWpuhUWX7ZWKXxy2eiKNZdj89Skdpez1XEv1mwC9eYk8SNaKFyd5eyoj5Slmkgd9 fyiw== 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=na18Nh6cskw062dTKqhL129iag9n/4joptucYVl4H6M=; fh=xNnSAjAXIBXBn44Ir8+/ZRZZp4+x9vEzXAJvvzbsebY=; b=Lx9kBFS74MBKqXL40gdgKu1e9lBBPyyF9L8JHoOtzRhQrPCKppIUcURdtrO0xWmtqY GngwtdULNOkSUW2/AIAnracst1CPtoU9IpZaMDhJ54KqZYQ8ak78YXMLbN4j4CzCvIf5 R3YD5+pFq6BtdM76NkbHmlGtrXovD2M5DVeBtfelKXFmbGlBBMLaJgnP2meqKaOfeTts YPquizmzO7MyIogsHNyoypdjvmhARJn20R7ncMaXAMehJSswLqacq2I3cX5IYmvc4OLl as8DPm6vI4NgylQTGfcZXP5SVZvSgfbtEzzoIwgM/DweM2Jx/m7YjyQslzr8J0PiHzE3 6lhA==; darn=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=20230601; t=1770623054; x=1771227854; darn=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=na18Nh6cskw062dTKqhL129iag9n/4joptucYVl4H6M=; b=grLf3T4V6R9QNrN55/D/dTr+o5MY1/5PU8/UzSvDOe3Sx57bOfIaFLWi5pLc6Wxjd/ zih0UhTK2NHhMoehmec4PrwH1eNoWH32IJtjK0GzMYzAb036rW0ZZsvmFdI+VEJ/itq3 Shs/VrISQOeIyHPaE32bMq0EQzR/5rWn7MkavmOUUzo8kAqYy1QEBeKlA+SR5YZEnKnk W+Q1gPEbbDnAFJ8J2lyWOhr8BaURfoWq0pZBwsI7BKvECJccPyFwVv8NL/BGlyc+vPUG PRlCe0Mrl8XaQcWHK4Zs/B28rGapYMWtwR90UTuSd4jtRATE2E2YTBWZtp6ZH9pjwoPM IkHw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770623054; x=1771227854; 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=na18Nh6cskw062dTKqhL129iag9n/4joptucYVl4H6M=; b=rTWqycOzcs/0FepxHz0Fv049VDimCvUN+uq2GRRyR+XvduOoPbYHArXyIF6GI+TUBj myfi1H1gSq8PohM/3KIwI7aIrz+tHq/T2n7NHwxwqbXEl110U2wdVp65ZPtrVzpf9CpU K4eFNQ9IrRoSriUXZIkSijRs4SNm9hDK3IkQKhplndPzHWv0CM4nDYMhm2gK6Z0nnsIz uPCkxDOan61mE+EnFYP8lEtCcQ/kDTvndKbjp3G5krdij1WwHVzi0R8HihPoUKTu3cSB 2Xg2KGkHlqSlBiqvOco5HHiZHlpwebbsS7ECMw9JGh/1ziF4OoBulmoz8EER/kIz5aZZ W2Jw== X-Forwarded-Encrypted: i=1; AJvYcCXwdnvUTo0UKzC0LqLsSqYsNeoSJsyXuRPn2i5077ZunXVHxQBgrgAUS9J7x7k4sEppyw8rTh+LBp6L7lh8@postgresql.org X-Gm-Message-State: AOJu0YwxFwECow4zbbAaJ5nF6QeBY77mtMJIP403DD30PY1SAS+gtCUS o2DJJ3UTJuZSpVqYb1TSOmJUMxg5GJNBALAhSoe8alDwv7lBWsYWUAwY+j7n0f0WHUkpv1jpajT XMaqGGunGNOt2BdkmQLPjIhDviDut3kc= X-Gm-Gg: AZuq6aKjs10lwDru3f3Y6XZjCySD/u8VwMTZxDknfXrekvb2PGy5Q4bPt7DscMO67Go YjEjcH6s/YOmv6NVEmIuZRT6OqkkkQtXJege/39gRKxvQzbny4fsuDNoYqBLmBuJzzE5wmZ+xgP L0bfwxJWP6MSGiLEYpxDYX4kdzQzEYGCE0XTl6ighLieueQKlTaZwuCr5BzBaaEk8amgjGUNPyF yCltQk9aOnNhEqepiuTClUBuDqydu+KJLwpP+q9w0T9MKKrDwB6QtvrJr/7YilT0slIKgr5QDX5 CmX7G7xZWtCHB7OjvyjpmIafpHhmOmCVCTcwTR0qhrwG7wjcmtLJI8CeTim9aEBqqp27VkcwmIt gbVbmOuaxfdp3LdT6qKcE7CCHeYXpXY6pDHohWGhKKAUQ4m+OyN2lSJKWu+p5xDpygctfPAzJrk bQOpP6qRmJRQ== X-Received: by 2002:a05:6122:1da1:b0:563:c3e7:6132 with SMTP id 71dfb90a1353d-56705fd477bmr2481281e0c.10.1770623054629; Sun, 08 Feb 2026 23:44:14 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: jian he Date: Mon, 9 Feb 2026 15:43:38 +0800 X-Gm-Features: AZwV_QgG0p3b53ihJS6T7E_GmQq1HYdSbUB3cFMsb82ByY7bs_d977LXMcA2WKk Message-ID: Subject: Re: CREATE TABLE LIKE INCLUDING TRIGGERS To: Zsolt Parragi Cc: Andrey Borodin , PostgreSQL-development Content-Type: multipart/mixed; boundary="00000000000033f5b0064a5f4e75" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000033f5b0064a5f4e75 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, Feb 6, 2026 at 10:49=E2=80=AFPM Zsolt Parragi wrote: > > This looks good to me, I only have two minor comments: > > 1. The test should drop main_table1 and some_t1 > > 2. there's a missing word in a comment (do -> to do) > > + char *trigcomment; /* comment to apply to trigger, or NULL */ > + bool transformed; /* true means no need do parse analysis for * > + * whenClause */ hi. The attached have addressed these two points. I still keep two separate patches, in case there are differing opinions abo= ut whether to copy the old table=E2=80=99s trigger tgenabled to the new table. Squashing them into a single patch is quite straightforward. -- jian https://www.enterprisedb.com/ --00000000000033f5b0064a5f4e75 Content-Type: text/x-patch; charset="US-ASCII"; name="v7-0002-CREATE-TABLE-LIKE-INCLUDING-TRIGGERS-copies-tgenabled.patch" Content-Disposition: attachment; filename="v7-0002-CREATE-TABLE-LIKE-INCLUDING-TRIGGERS-copies-tgenabled.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mlev76is0 RnJvbSAzNDI2NTA4YTY5ODgyZWFlZmY1MWE1YTM2M2IyNzdmZjUxNzQ2MzBmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgOSBGZWIgMjAyNiAxNTozNjozNSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjcg Mi8yXSBDUkVBVEUgVEFCTEUgTElLRSBJTkNMVURJTkcgVFJJR0dFUlMgY29waWVzIHRnZW5hYmxl ZAoKZGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQUNKdWZ4SEpBcjJGamJlQjZnaGdf LU41ZHhYNUpWbmpLU0xPVXhPeXQ0VGVhQVdRa2dAbWFpbC5nbWFpbC5jb20KY29tbWl0ZmVzdDog aHR0cHM6Ly9jb21taXRmZXN0LnBvc3RncmVzcWwub3JnL3BhdGNoLzYwODcKLS0tCiBzcmMvYmFj a2VuZC9jYXRhbG9nL2luZGV4LmMgICAgICAgICAgICB8ICAxICsKIHNyYy9iYWNrZW5kL2NvbW1h bmRzL3RhYmxlY21kcy5jICAgICAgIHwgIDQgKysrKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvdHJp Z2dlci5jICAgICAgICAgfCAgMSArCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAg ICAgICB8ICAyICsrCiBzcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYyAgICAgICAgICAgICB8IDEy ICsrKysrKysrLS0tLQogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgICAgfCAg MSArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3RyaWdnZXJzLm91dCB8ICA5ICsrKysrKyst LQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvdHJpZ2dlcnMuc3FsICAgICAgfCAgMyArKysKIDggZmls ZXMgY2hhbmdlZCwgMjcgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9jYXRhbG9nL2luZGV4LmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2luZGV4 LmMKaW5kZXggYjBiNWE4ODZmYTEuLmQ0NTcwNjI2ZTBiIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL2luZGV4LmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmRleC5jCkBAIC0y MDIxLDYgKzIwMjEsNyBAQCBpbmRleF9jb25zdHJhaW50X2NyZWF0ZShSZWxhdGlvbiBoZWFwUmVs YXRpb24sCiAJCUNyZWF0ZVRyaWdTdG10ICp0cmlnZ2VyID0gbWFrZU5vZGUoQ3JlYXRlVHJpZ1N0 bXQpOwogCiAJCXRyaWdnZXItPnJlcGxhY2UgPSBmYWxzZTsKKwkJdHJpZ2dlci0+dGdlbmFibGVk ID0gVFJJR0dFUl9GSVJFU19PTl9PUklHSU47CiAJCXRyaWdnZXItPmlzY29uc3RyYWludCA9IHRy dWU7CiAJCXRyaWdnZXItPnRyaWduYW1lID0gKGNvbnN0cmFpbnRUeXBlID09IENPTlNUUkFJTlRf UFJJTUFSWSkgPwogCQkJIlBLX0NvbnN0cmFpbnRUcmlnZ2VyIiA6CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxl Y21kcy5jCmluZGV4IDZhMjVmNmI3NTUzLi42YzUzZGYxZTU0YSAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFi bGVjbWRzLmMKQEAgLTEzODM5LDYgKzEzODM5LDcgQEAgQ3JlYXRlRktDaGVja1RyaWdnZXIoT2lk IG15UmVsT2lkLCBPaWQgcmVmUmVsT2lkLCBDb25zdHJhaW50ICpma2NvbnN0cmFpbnQsCiAJICov CiAJZmtfdHJpZ2dlciA9IG1ha2VOb2RlKENyZWF0ZVRyaWdTdG10KTsKIAlma190cmlnZ2VyLT5y ZXBsYWNlID0gZmFsc2U7CisJZmtfdHJpZ2dlci0+dGdlbmFibGVkID0gVFJJR0dFUl9GSVJFU19P Tl9PUklHSU47CiAJZmtfdHJpZ2dlci0+aXNjb25zdHJhaW50ID0gdHJ1ZTsKIAlma190cmlnZ2Vy LT50cmlnbmFtZSA9ICJSSV9Db25zdHJhaW50VHJpZ2dlcl9jIjsKIAlma190cmlnZ2VyLT5yZWxh dGlvbiA9IE5VTEw7CkBAIC0xMzkwMCw2ICsxMzkwMSw3IEBAIGNyZWF0ZUZvcmVpZ25LZXlBY3Rp b25UcmlnZ2VycyhPaWQgbXlSZWxPaWQsIE9pZCByZWZSZWxPaWQsIENvbnN0cmFpbnQgKmZrY29u c3RyCiAJICovCiAJZmtfdHJpZ2dlciA9IG1ha2VOb2RlKENyZWF0ZVRyaWdTdG10KTsKIAlma190 cmlnZ2VyLT5yZXBsYWNlID0gZmFsc2U7CisJZmtfdHJpZ2dlci0+dGdlbmFibGVkID0gVFJJR0dF Ul9GSVJFU19PTl9PUklHSU47CiAJZmtfdHJpZ2dlci0+aXNjb25zdHJhaW50ID0gdHJ1ZTsKIAlm a190cmlnZ2VyLT50cmlnbmFtZSA9ICJSSV9Db25zdHJhaW50VHJpZ2dlcl9hIjsKIAlma190cmln Z2VyLT5yZWxhdGlvbiA9IE5VTEw7CkBAIC0xMzk2Miw2ICsxMzk2NCw3IEBAIGNyZWF0ZUZvcmVp Z25LZXlBY3Rpb25UcmlnZ2VycyhPaWQgbXlSZWxPaWQsIE9pZCByZWZSZWxPaWQsIENvbnN0cmFp bnQgKmZrY29uc3RyCiAJICovCiAJZmtfdHJpZ2dlciA9IG1ha2VOb2RlKENyZWF0ZVRyaWdTdG10 KTsKIAlma190cmlnZ2VyLT5yZXBsYWNlID0gZmFsc2U7CisJZmtfdHJpZ2dlci0+dGdlbmFibGVk ID0gVFJJR0dFUl9GSVJFU19PTl9PUklHSU47CiAJZmtfdHJpZ2dlci0+aXNjb25zdHJhaW50ID0g dHJ1ZTsKIAlma190cmlnZ2VyLT50cmlnbmFtZSA9ICJSSV9Db25zdHJhaW50VHJpZ2dlcl9hIjsK IAlma190cmlnZ2VyLT5yZWxhdGlvbiA9IE5VTEw7CkBAIC0yMDkxMSw2ICsyMDkxNCw3IEBAIENs b25lUm93VHJpZ2dlcnNUb1BhcnRpdGlvbihSZWxhdGlvbiBwYXJlbnQsIFJlbGF0aW9uIHBhcnRp dGlvbikKIAogCQl0cmlnU3RtdCA9IG1ha2VOb2RlKENyZWF0ZVRyaWdTdG10KTsKIAkJdHJpZ1N0 bXQtPnJlcGxhY2UgPSBmYWxzZTsKKwkJdHJpZ1N0bXQtPnRnZW5hYmxlZCA9IHRyaWdGb3JtLT50 Z2VuYWJsZWQ7CiAJCXRyaWdTdG10LT5pc2NvbnN0cmFpbnQgPSBPaWRJc1ZhbGlkKHRyaWdGb3Jt LT50Z2NvbnN0cmFpbnQpOwogCQl0cmlnU3RtdC0+dHJpZ25hbWUgPSBOYW1lU3RyKHRyaWdGb3Jt LT50Z25hbWUpOwogCQl0cmlnU3RtdC0+cmVsYXRpb24gPSBOVUxMOwpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvdHJpZ2dlci5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHJpZ2dl ci5jCmluZGV4IGU5NDQyNjViZDlmLi4yODA0Mjc1NTlkNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvdHJpZ2dlci5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RyaWdnZXIu YwpAQCAtNjk0Nyw2ICs2OTQ3LDcgQEAgZ2VuZXJhdGVDbG9uZWRUcmlnZ2VyU3RtdChSYW5nZVZh ciAqaGVhcFJlbCwgT2lkIHNvdXJjZV90cmlnaWQsCiAKIAl0cmlnU3RtdCA9IG1ha2VOb2RlKENy ZWF0ZVRyaWdTdG10KTsKIAl0cmlnU3RtdC0+cmVwbGFjZSA9IGZhbHNlOworCXRyaWdTdG10LT50 Z2VuYWJsZWQgPSB0cmlnRm9ybS0+dGdlbmFibGVkOwogCXRyaWdTdG10LT5pc2NvbnN0cmFpbnQg PSBPaWRJc1ZhbGlkKHRyaWdGb3JtLT50Z2NvbnN0cmFpbnQpOwogCXRyaWdTdG10LT50cmlnbmFt ZSA9IHBzdHJkdXAoTmFtZVN0cih0cmlnRm9ybS0+dGduYW1lKSk7CiAJdHJpZ1N0bXQtPnJlbGF0 aW9uID0gaGVhcFJlbDsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9z cmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IGVlOWNiYmZjNmM0Li4yNGIyN2QyYzQ3ZCAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9w YXJzZXIvZ3JhbS55CkBAIC02MTM3LDYgKzYxMzcsNyBAQCBDcmVhdGVUcmlnU3RtdDoKIAkJCQkJ Q3JlYXRlVHJpZ1N0bXQgKm4gPSBtYWtlTm9kZShDcmVhdGVUcmlnU3RtdCk7CiAKIAkJCQkJbi0+ cmVwbGFjZSA9ICQyOworCQkJCQluLT50Z2VuYWJsZWQgPSBUUklHR0VSX0ZJUkVTX09OX09SSUdJ TjsKIAkJCQkJbi0+aXNjb25zdHJhaW50ID0gZmFsc2U7CiAJCQkJCW4tPnRyaWduYW1lID0gJDQ7 CiAJCQkJCW4tPnJlbGF0aW9uID0gJDg7CkBAIC02MTg4LDYgKzYxODksNyBAQCBDcmVhdGVUcmln U3RtdDoKIAkJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAog CQkJCQkJCQkgZXJybXNnKCJDUkVBVEUgT1IgUkVQTEFDRSBDT05TVFJBSU5UIFRSSUdHRVIgaXMg bm90IHN1cHBvcnRlZCIpLAogCQkJCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKEAxKSkpOworCQkJ CQluLT50Z2VuYWJsZWQgPSBUUklHR0VSX0ZJUkVTX09OX09SSUdJTjsKIAkJCQkJbi0+aXNjb25z dHJhaW50ID0gdHJ1ZTsKIAkJCQkJbi0+dHJpZ25hbWUgPSAkNTsKIAkJCQkJbi0+cmVsYXRpb24g PSAkOTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jIGIvc3JjL2JhY2tl bmQvdGNvcC91dGlsaXR5LmMKaW5kZXggMzRkZDZlMThkZjUuLmQyNDBlY2Q0MDc3IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYworKysgYi9zcmMvYmFja2VuZC90Y29wL3V0 aWxpdHkuYwpAQCAtMTcwMSwxMCArMTcwMSwxNCBAQCBQcm9jZXNzVXRpbGl0eVNsb3coUGFyc2VT dGF0ZSAqcHN0YXRlLAogCQkJCWJyZWFrOwogCiAJCQljYXNlIFRfQ3JlYXRlVHJpZ1N0bXQ6Ci0J CQkJYWRkcmVzcyA9IENyZWF0ZVRyaWdnZXIoKENyZWF0ZVRyaWdTdG10ICopIHBhcnNldHJlZSwK LQkJCQkJCQkJCQlxdWVyeVN0cmluZywgSW52YWxpZE9pZCwgSW52YWxpZE9pZCwKLQkJCQkJCQkJ CQlJbnZhbGlkT2lkLCBJbnZhbGlkT2lkLCBJbnZhbGlkT2lkLAotCQkJCQkJCQkJCUludmFsaWRP aWQsIE5VTEwsIGZhbHNlLCBmYWxzZSk7CisJCQkJeworCQkJCQlDcmVhdGVUcmlnU3RtdCAqc3Rt dCA9IChDcmVhdGVUcmlnU3RtdCAqKSBwYXJzZXRyZWU7CisKKwkJCQkJYWRkcmVzcyA9IENyZWF0 ZVRyaWdnZXJGaXJpbmdPbihzdG10LCBxdWVyeVN0cmluZywgSW52YWxpZE9pZCwgSW52YWxpZE9p ZCwKKwkJCQkJCQkJCQkJCQlJbnZhbGlkT2lkLCBJbnZhbGlkT2lkLCBJbnZhbGlkT2lkLAorCQkJ CQkJCQkJCQkJCUludmFsaWRPaWQsIE5VTEwsIGZhbHNlLAorCQkJCQkJCQkJCQkJCWZhbHNlLCBz dG10LT50Z2VuYWJsZWQpOworCQkJCX0KIAkJCQlicmVhazsKIAogCQkJY2FzZSBUX0NyZWF0ZVBM YW5nU3RtdDoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3Ny Yy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCA0N2U2ZGZiMmFiMi4uZTk4Y2M4YzI4 OWIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysgYi9zcmMv aW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTMxMzcsNiArMzEzNyw3IEBAIHR5cGVkZWYg c3RydWN0IENyZWF0ZVRyaWdTdG10CiB7CiAJTm9kZVRhZwkJdHlwZTsKIAlib29sCQlyZXBsYWNl OwkJLyogcmVwbGFjZSB0cmlnZ2VyIGlmIGFscmVhZHkgZXhpc3RzICovCisJY2hhcgkJdGdlbmFi bGVkOwkJLyogdHJpZ2dlcidzIGZpcmluZyBjb25maWd1cmF0aW9uICovCiAJYm9vbAkJaXNjb25z dHJhaW50OwkvKiBUaGlzIGlzIGEgY29uc3RyYWludCB0cmlnZ2VyICovCiAJY2hhcgkgICAqdHJp Z25hbWU7CQkvKiBUUklHR0VSJ3MgbmFtZSAqLwogCVJhbmdlVmFyICAgKnJlbGF0aW9uOwkJLyog cmVsYXRpb24gdHJpZ2dlciBpcyBvbiAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC90cmlnZ2Vycy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3RyaWdnZXJz Lm91dAppbmRleCBlOGVlZjIwMjJmMy4uOWY0MDVkZTgwN2QgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvdHJpZ2dlcnMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvdHJpZ2dlcnMub3V0CkBAIC00NzYsNiArNDc2LDkgQEAgTk9USUNFOiAgZHVtbXlfdXBk YXRlX2Z1bmMoYWZ0ZXJiKSBjYWxsZWQ6IGFjdGlvbiA9IFVQREFURSwgb2xkID0gKHQpLCBuZXcg PSAoZikKIFVQREFURSBzb21lX3QgU0VUIHNvbWVfY29sID0gVFJVRTsKIE5PVElDRTogIGR1bW15 X3VwZGF0ZV9mdW5jKGJlZm9yZSkgY2FsbGVkOiBhY3Rpb24gPSBVUERBVEUsIG9sZCA9IChmKSwg bmV3ID0gKHQpCiBOT1RJQ0U6ICBkdW1teV91cGRhdGVfZnVuYyhhZnRlcmEpIGNhbGxlZDogYWN0 aW9uID0gVVBEQVRFLCBvbGQgPSAoZiksIG5ldyA9ICh0KQorQUxURVIgVEFCTEUgc29tZV90IEVO QUJMRSBSRVBMSUNBIFRSSUdHRVIgc29tZV90cmlnX2FmdGVyYTsKK0FMVEVSIFRBQkxFIHNvbWVf dCBESVNBQkxFIFRSSUdHRVIgc29tZV90cmlnX2FmdGVyYjsKK0FMVEVSIFRBQkxFIHNvbWVfdCBF TkFCTEUgQUxXQVlTIFRSSUdHRVIgc29tZV90cmlnX2JlZm9yZTsKIENSRUFURSBUQUJMRSBzb21l X3QxIChjIElOVCwgTElLRSBzb21lX3QgSU5DTFVESU5HIFRSSUdHRVJTIElOQ0xVRElORyBDT01N RU5UUyk7CiBcZCsgc29tZV90MQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBU YWJsZSAicHVibGljLnNvbWVfdDEiCkBAIC00ODUsMTAgKzQ4OCwxMiBAQCBDUkVBVEUgVEFCTEUg c29tZV90MSAoYyBJTlQsIExJS0Ugc29tZV90IElOQ0xVRElORyBUUklHR0VSUyBJTkNMVURJTkcg Q09NTUVOVFMpOwogIHNvbWVfY29sIHwgYm9vbGVhbiB8ICAgICAgICAgICB8IG5vdCBudWxsIHwg ICAgICAgICB8IHBsYWluICAgfCAgICAgICAgICAgICAgfCAKIE5vdC1udWxsIGNvbnN0cmFpbnRz OgogICAgICJzb21lX3Rfc29tZV9jb2xfbm90X251bGwiIE5PVCBOVUxMICJzb21lX2NvbCIKLVRy aWdnZXJzOgotICAgIHNvbWVfdHJpZ19hZnRlcmEgQUZURVIgVVBEQVRFIE9OIHNvbWVfdDEgRk9S IEVBQ0ggUk9XIFdIRU4gKE5PVCBvbGQuc29tZV9jb2wgQU5EIG5ldy5zb21lX2NvbCkgRVhFQ1VU RSBGVU5DVElPTiBkdW1teV91cGRhdGVfZnVuYygnYWZ0ZXJhJykKK0Rpc2FibGVkIHVzZXIgdHJp Z2dlcnM6CiAgICAgc29tZV90cmlnX2FmdGVyYiBBRlRFUiBVUERBVEUgT04gc29tZV90MSBGT1Ig RUFDSCBST1cgV0hFTiAoTk9UIG5ldy5zb21lX2NvbCkgRVhFQ1VURSBGVU5DVElPTiBkdW1teV91 cGRhdGVfZnVuYygnYWZ0ZXJiJykKK1RyaWdnZXJzIGZpcmluZyBhbHdheXM6CiAgICAgc29tZV90 cmlnX2JlZm9yZSBCRUZPUkUgVVBEQVRFIE9OIHNvbWVfdDEgRk9SIEVBQ0ggUk9XIEVYRUNVVEUg RlVOQ1RJT04gZHVtbXlfdXBkYXRlX2Z1bmMoJ2JlZm9yZScpCitUcmlnZ2VycyBmaXJpbmcgb24g cmVwbGljYSBvbmx5OgorICAgIHNvbWVfdHJpZ19hZnRlcmEgQUZURVIgVVBEQVRFIE9OIHNvbWVf dDEgRk9SIEVBQ0ggUk9XIFdIRU4gKE5PVCBvbGQuc29tZV9jb2wgQU5EIG5ldy5zb21lX2NvbCkg RVhFQ1VURSBGVU5DVElPTiBkdW1teV91cGRhdGVfZnVuYygnYWZ0ZXJhJykKIAogRFJPUCBUQUJM RSBzb21lX3Q7CiBEUk9QIFRBQkxFIHNvbWVfdDE7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL3NxbC90cmlnZ2Vycy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC90cmlnZ2Vycy5zcWwK aW5kZXggMTllZjAzNTNjYjguLjE1NGQ5YjIyYWNhIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL3NxbC90cmlnZ2Vycy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvdHJpZ2dlcnMu c3FsCkBAIC0yODYsNiArMjg2LDkgQEAgSU5TRVJUIElOVE8gc29tZV90IFZBTFVFUyAoVFJVRSk7 CiBVUERBVEUgc29tZV90IFNFVCBzb21lX2NvbCA9IFRSVUU7CiBVUERBVEUgc29tZV90IFNFVCBz b21lX2NvbCA9IEZBTFNFOwogVVBEQVRFIHNvbWVfdCBTRVQgc29tZV9jb2wgPSBUUlVFOworQUxU RVIgVEFCTEUgc29tZV90IEVOQUJMRSBSRVBMSUNBIFRSSUdHRVIgc29tZV90cmlnX2FmdGVyYTsK K0FMVEVSIFRBQkxFIHNvbWVfdCBESVNBQkxFIFRSSUdHRVIgc29tZV90cmlnX2FmdGVyYjsKK0FM VEVSIFRBQkxFIHNvbWVfdCBFTkFCTEUgQUxXQVlTIFRSSUdHRVIgc29tZV90cmlnX2JlZm9yZTsK IENSRUFURSBUQUJMRSBzb21lX3QxIChjIElOVCwgTElLRSBzb21lX3QgSU5DTFVESU5HIFRSSUdH RVJTIElOQ0xVRElORyBDT01NRU5UUyk7CiBcZCsgc29tZV90MQogRFJPUCBUQUJMRSBzb21lX3Q7 Ci0tIAoyLjM0LjEKCg== --00000000000033f5b0064a5f4e75 Content-Type: text/x-patch; charset="US-ASCII"; name="v7-0001-CREATE-TABLE-LIKE-INCLUDING-TRIGGERS.patch" Content-Disposition: attachment; filename="v7-0001-CREATE-TABLE-LIKE-INCLUDING-TRIGGERS.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mlev76iz1 RnJvbSAwMTk3YjFmNTkzNDc3NmU2Y2JjYTYyZTUxN2Q0ZjVkN2Y1MTY5MDQ4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgOSBGZWIgMjAyNiAxNTozMzoxMyArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjcg MS8yXSBDUkVBVEUgVEFCTEUgTElLRSBJTkNMVURJTkcgVFJJR0dFUlMKClRoaXMgd2lsbCBjb3B5 IGFsbCBzb3VyY2UgdGFibGUncyB0cmlnZ2VyIHRvIHRoZSBuZXcgdGFibGUuIFRoaXMgZnVuY3Rp b25hbGl0eQphbHNvIGV4dGVuZHMgdG8gQ1JFQVRFIEZPUkVJR04gVEFCTEUgTElLRSBzdGF0ZW1l bnRzLgoKSW50ZXJuYWwgdHJpZ2dlciAoc3VjaCBhcyBmb3JlaWduIGtleSBhc3NvY2lhdGVkIHRy aWdnZXIpIHdvbid0IGJlaW5nIGNvcGllZCB0bwpuZXcgdGFibGUuIEhvd2V2ZXIgdGhpcyBjb21t YW5kIHdpbGwgZmFpbCBpZiB0aGUgc291cmNlIHRhYmxlJ3MgdHJpZ2dlciBjb250YWluCndob2xl LXJvdyByZWZlcmVuY2UuCgpJZiBJTkNMVURJTkcgQ09NTUVOVFMgaXMgc3BlY2lmaWVkLCB0cmln Z2VyIGNvbW1lbnRzIHdpbGwgYmUgY29waWVkIHRvIHRoZSBuZXcKdGFibGUuCgpBdXRob3I6IGpp YW4gaGUgPGppYW4udW5pdmVyc2FsaXR5QGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEFuZHJleSBC b3JvZGluIDx4NG1tbUB5YW5kZXgtdGVhbS5ydT4KUmV2aWV3ZWQtYnk6IFpzb2x0IFBhcnJhZ2kg PHpzb2x0LnBhcnJhZ2lAcGVyY29uYS5jb20+ClJldmlld2VkLWJ5OiBSb2JlcnQgSGFhcyA8cm9i ZXJ0bWhhYXNAZ21haWwuY29tPgoKZGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQUNK dWZ4SEpBcjJGamJlQjZnaGdfLU41ZHhYNUpWbmpLU0xPVXhPeXQ0VGVhQVdRa2dAbWFpbC5nbWFp bC5jb20KY29tbWl0ZmVzdDogaHR0cHM6Ly9jb21taXRmZXN0LnBvc3RncmVzcWwub3JnL3BhdGNo LzYwODcKLS0tCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9mb3JlaWduX3RhYmxlLnNnbWwgICAg fCAgMTEgKy0KIGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwgICAgICAgICAgICB8 ICAxMyArLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmRleC5jICAgICAgICAgICAgICAgICAgIHwg ICAyICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jICAgICAgICAgICAgICB8ICAg OCArCiBzcmMvYmFja2VuZC9jb21tYW5kcy90cmlnZ2VyLmMgICAgICAgICAgICAgICAgfCAyMzAg KysrKysrKysrKysrKysrKystCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAg ICAgICAgICAgfCAgIDkgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMgICAg ICAgICAgICB8ICAzNyArKy0KIHNyYy9pbmNsdWRlL2NvbW1hbmRzL3RyaWdnZXIuaCAgICAgICAg ICAgICAgICB8ICAgNCArCiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAg ICAgICAgfCAgIDQgKwogc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oICAgICAgICAgICAgICAg ICAgIHwgICAxICsKIC4uLi9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV90YWJsZV9saWtlLm91dCAg ICB8ICAxMCArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3RyaWdnZXJzLm91dCAgICAgICAg fCAxMzIgKysrKysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX3RhYmxlX2xpa2Uu c3FsICAgIHwgICA3ICsKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3RyaWdnZXJzLnNxbCAgICAgICAg ICAgICB8ICA3MCArKysrKy0KIDE0IGZpbGVzIGNoYW5nZWQsIDUyNCBpbnNlcnRpb25zKCspLCAx NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9mb3Jl aWduX3RhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9mb3JlaWduX3RhYmxlLnNn bWwKaW5kZXggMDhhOGNlZWFlNzUuLjY4ZDA2MDhiMGEzIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3Nn bWwvcmVmL2NyZWF0ZV9mb3JlaWduX3RhYmxlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9j cmVhdGVfZm9yZWlnbl90YWJsZS5zZ21sCkBAIC02MCw3ICs2MCw3IEBAIENSRUFURSBGT1JFSUdO IFRBQkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50 YWJsZV9uYW1lCiAKIDxwaHJhc2U+YW5kIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5s aWtlX29wdGlvbjwvcmVwbGFjZWFibGU+IGlzOjwvcGhyYXNlPgogCi17IElOQ0xVRElORyB8IEVY Q0xVRElORyB9IHsgQ09NTUVOVFMgfCBDT05TVFJBSU5UUyB8IERFRkFVTFRTIHwgR0VORVJBVEVE IHwgU1RBVElTVElDUyB8IEFMTCB9Cit7IElOQ0xVRElORyB8IEVYQ0xVRElORyB9IHsgQ09NTUVO VFMgfCBDT05TVFJBSU5UUyB8IERFRkFVTFRTIHwgR0VORVJBVEVEIHwgU1RBVElTVElDUyB8IFRS SUdHRVJTIHwgQUxMIH0KIAogPHBocmFzZT5hbmQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPnBhcnRpdGlvbl9ib3VuZF9zcGVjPC9yZXBsYWNlYWJsZT4gaXM6PC9waHJhc2U+CiAKQEAg LTI4NCw2ICsyODQsMTUgQEAgV0lUSCAoIE1PRFVMVVMgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPm51bWVyaWNfbGl0ZXJhbDwvcmVwbGFjZWFibGU+LCBSRU0KICAgICAgICAgPC9saXN0 aXRlbT4KICAgICAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgICAgIDx2YXJsaXN0ZW50cnk+Cisg ICAgICAgIDx0ZXJtPjxsaXRlcmFsPklOQ0xVRElORyBUUklHR0VSUzwvbGl0ZXJhbD48L3Rlcm0+ CisgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgIDxwYXJhPgorICAgICAgICAgIEFsbCBub24t aW50ZXJuYWwgdHJpZ2dlcnMgYXJlIGNvcGllZCB0byB0aGUgbmV3IHRhYmxlLgorICAgICAgICAg PC9wYXJhPgorICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgIDwvdmFybGlzdGVudHJ5PgorCiAg ICAgICAgPHZhcmxpc3RlbnRyeT4KICAgICAgICAgPHRlcm0+PGxpdGVyYWw+SU5DTFVESU5HIEFM TDwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgICAgIDxsaXN0aXRlbT4KZGlmZiAtLWdpdCBhL2RvYy9z cmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90 YWJsZS5zZ21sCmluZGV4IDc3YzVhNzYzZDQ1Li5jNmEwZjZkYWU5YiAxMDA2NDQKLS0tIGEvZG9j L3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2Ny ZWF0ZV90YWJsZS5zZ21sCkBAIC04OCw3ICs4OCw3IEBAIGNsYXNzPSJwYXJhbWV0ZXIiPnJlZmVy ZW50aWFsX2FjdGlvbjwvcmVwbGFjZWFibGU+IF0gWyBPTiBVUERBVEUgPHJlcGxhY2VhYmxlIGNs CiAKIDxwaHJhc2U+YW5kIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5saWtlX29wdGlv bjwvcmVwbGFjZWFibGU+IGlzOjwvcGhyYXNlPgogCi17IElOQ0xVRElORyB8IEVYQ0xVRElORyB9 IHsgQ09NTUVOVFMgfCBDT01QUkVTU0lPTiB8IENPTlNUUkFJTlRTIHwgREVGQVVMVFMgfCBHRU5F UkFURUQgfCBJREVOVElUWSB8IElOREVYRVMgfCBTVEFUSVNUSUNTIHwgU1RPUkFHRSB8IEFMTCB9 Cit7IElOQ0xVRElORyB8IEVYQ0xVRElORyB9IHsgQ09NTUVOVFMgfCBDT01QUkVTU0lPTiB8IENP TlNUUkFJTlRTIHwgREVGQVVMVFMgfCBHRU5FUkFURUQgfCBJREVOVElUWSB8IElOREVYRVMgfCBT VEFUSVNUSUNTIHwgU1RPUkFHRSB8IFRSSUdHRVJTIHwgQUxMIH0KIAogPHBocmFzZT5hbmQgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBhcnRpdGlvbl9ib3VuZF9zcGVjPC9yZXBsYWNl YWJsZT4gaXM6PC9waHJhc2U+CiAKQEAgLTY3Miw3ICs2NzIsNyBAQCBXSVRIICggTU9EVUxVUyA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bnVtZXJpY19saXRlcmFsPC9yZXBsYWNlYWJs ZT4sIFJFTQogICAgICAgICA8dGVybT48bGl0ZXJhbD5JTkNMVURJTkcgQ09NTUVOVFM8L2xpdGVy YWw+PC90ZXJtPgogICAgICAgICA8bGlzdGl0ZW0+CiAgICAgICAgICA8cGFyYT4KLSAgICAgICAg ICBDb21tZW50cyBmb3IgdGhlIGNvcGllZCBjb2x1bW5zLCBjb25zdHJhaW50cywgYW5kIGluZGV4 ZXMgd2lsbCBiZQorICAgICAgICAgIENvbW1lbnRzIGZvciB0aGUgY29waWVkIGNvbHVtbnMsIGNv bnN0cmFpbnRzLCBpbmRleGVzIGFuZCB0cmlnZ2VycyB3aWxsIGJlCiAgICAgICAgICAgY29waWVk LiAgVGhlIGRlZmF1bHQgYmVoYXZpb3IgaXMgdG8gZXhjbHVkZSBjb21tZW50cywgcmVzdWx0aW5n IGluCiAgICAgICAgICAgdGhlIGNvcGllZCBjb2x1bW5zIGFuZCBjb25zdHJhaW50cyBpbiB0aGUg bmV3IHRhYmxlIGhhdmluZyBubwogICAgICAgICAgIGNvbW1lbnRzLgpAQCAtNzc2LDYgKzc3Niwx NSBAQCBXSVRIICggTU9EVUxVUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bnVtZXJp Y19saXRlcmFsPC9yZXBsYWNlYWJsZT4sIFJFTQogICAgICAgICA8L2xpc3RpdGVtPgogICAgICAg IDwvdmFybGlzdGVudHJ5PgogCisgICAgICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXRh YmxlLXBhcm1zLWxpa2Utb3B0LXRyaWdnZXJzIj4KKyAgICAgICAgPHRlcm0+PGxpdGVyYWw+SU5D TFVESU5HIFRSSUdHRVJTPC9saXRlcmFsPjwvdGVybT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAg ICAgICAgPHBhcmE+CisgICAgICAgICAgQWxsIG5vbi1pbnRlcm5hbCB0cmlnZ2VycyBvbiB0aGUg b3JpZ2luYWwgdGFibGUgd2lsbCBiZSBjcmVhdGVkIG9uIHRoZSBuZXcgdGFibGUuCisgICAgICAg ICA8L3BhcmE+CisgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgPC92YXJsaXN0ZW50cnk+CisK ICAgICAgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRldGFibGUtcGFybXMtbGlrZS1vcHQt YWxsIj4KICAgICAgICAgPHRlcm0+PGxpdGVyYWw+SU5DTFVESU5HIEFMTDwvbGl0ZXJhbD48L3Rl cm0+CiAgICAgICAgIDxsaXN0aXRlbT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cv aW5kZXguYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvaW5kZXguYwppbmRleCA0M2RlNDJjZTM5ZS4u YjBiNWE4ODZmYTEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvaW5kZXguYworKysg Yi9zcmMvYmFja2VuZC9jYXRhbG9nL2luZGV4LmMKQEAgLTIwMzcsNiArMjAzNyw4IEBAIGluZGV4 X2NvbnN0cmFpbnRfY3JlYXRlKFJlbGF0aW9uIGhlYXBSZWxhdGlvbiwKIAkJdHJpZ2dlci0+ZGVm ZXJyYWJsZSA9IHRydWU7CiAJCXRyaWdnZXItPmluaXRkZWZlcnJlZCA9IGluaXRkZWZlcnJlZDsK IAkJdHJpZ2dlci0+Y29uc3RycmVsID0gTlVMTDsKKwkJdHJpZ2dlci0+dHJpZ2NvbW1lbnQgPSBO VUxMOworCQl0cmlnZ2VyLT50cmFuc2Zvcm1lZCA9IHRydWU7CiAKIAkJKHZvaWQpIENyZWF0ZVRy aWdnZXIodHJpZ2dlciwgTlVMTCwgUmVsYXRpb25HZXRSZWxpZChoZWFwUmVsYXRpb24pLAogCQkJ CQkJCSBJbnZhbGlkT2lkLCBjb25PaWQsIGluZGV4UmVsYXRpb25JZCwgSW52YWxpZE9pZCwKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvdGFibGVjbWRzLmMKaW5kZXggZjk3NmMwZTVjN2UuLjZhMjVmNmI3NTUzIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYworKysgYi9zcmMvYmFja2Vu ZC9jb21tYW5kcy90YWJsZWNtZHMuYwpAQCAtMTM4NjQsNiArMTM4NjQsOCBAQCBDcmVhdGVGS0No ZWNrVHJpZ2dlcihPaWQgbXlSZWxPaWQsIE9pZCByZWZSZWxPaWQsIENvbnN0cmFpbnQgKmZrY29u c3RyYWludCwKIAlma190cmlnZ2VyLT5kZWZlcnJhYmxlID0gZmtjb25zdHJhaW50LT5kZWZlcnJh YmxlOwogCWZrX3RyaWdnZXItPmluaXRkZWZlcnJlZCA9IGZrY29uc3RyYWludC0+aW5pdGRlZmVy cmVkOwogCWZrX3RyaWdnZXItPmNvbnN0cnJlbCA9IE5VTEw7CisJZmtfdHJpZ2dlci0+dHJpZ2Nv bW1lbnQgPSBOVUxMOworCWZrX3RyaWdnZXItPnRyYW5zZm9ybWVkID0gdHJ1ZTsKIAogCXRyaWdB ZGRyZXNzID0gQ3JlYXRlVHJpZ2dlcihma190cmlnZ2VyLCBOVUxMLCBteVJlbE9pZCwgcmVmUmVs T2lkLAogCQkJCQkJCQljb25zdHJhaW50T2lkLCBpbmRleE9pZCwgSW52YWxpZE9pZCwKQEAgLTEz OTA5LDYgKzEzOTExLDggQEAgY3JlYXRlRm9yZWlnbktleUFjdGlvblRyaWdnZXJzKE9pZCBteVJl bE9pZCwgT2lkIHJlZlJlbE9pZCwgQ29uc3RyYWludCAqZmtjb25zdHIKIAlma190cmlnZ2VyLT53 aGVuQ2xhdXNlID0gTlVMTDsKIAlma190cmlnZ2VyLT50cmFuc2l0aW9uUmVscyA9IE5JTDsKIAlm a190cmlnZ2VyLT5jb25zdHJyZWwgPSBOVUxMOworCWZrX3RyaWdnZXItPnRyaWdjb21tZW50ID0g TlVMTDsKKwlma190cmlnZ2VyLT50cmFuc2Zvcm1lZCA9IHRydWU7CiAKIAlzd2l0Y2ggKGZrY29u c3RyYWludC0+ZmtfZGVsX2FjdGlvbikKIAl7CkBAIC0xMzk2OSw2ICsxMzk3Myw4IEBAIGNyZWF0 ZUZvcmVpZ25LZXlBY3Rpb25UcmlnZ2VycyhPaWQgbXlSZWxPaWQsIE9pZCByZWZSZWxPaWQsIENv bnN0cmFpbnQgKmZrY29uc3RyCiAJZmtfdHJpZ2dlci0+d2hlbkNsYXVzZSA9IE5VTEw7CiAJZmtf dHJpZ2dlci0+dHJhbnNpdGlvblJlbHMgPSBOSUw7CiAJZmtfdHJpZ2dlci0+Y29uc3RycmVsID0g TlVMTDsKKwlma190cmlnZ2VyLT50cmlnY29tbWVudCA9IE5VTEw7CisJZmtfdHJpZ2dlci0+dHJh bnNmb3JtZWQgPSB0cnVlOwogCiAJc3dpdGNoIChma2NvbnN0cmFpbnQtPmZrX3VwZF9hY3Rpb24p CiAJewpAQCAtMjA5MTksNiArMjA5MjUsOCBAQCBDbG9uZVJvd1RyaWdnZXJzVG9QYXJ0aXRpb24o UmVsYXRpb24gcGFyZW50LCBSZWxhdGlvbiBwYXJ0aXRpb24pCiAJCXRyaWdTdG10LT5kZWZlcnJh YmxlID0gdHJpZ0Zvcm0tPnRnZGVmZXJyYWJsZTsKIAkJdHJpZ1N0bXQtPmluaXRkZWZlcnJlZCA9 IHRyaWdGb3JtLT50Z2luaXRkZWZlcnJlZDsKIAkJdHJpZ1N0bXQtPmNvbnN0cnJlbCA9IE5VTEw7 IC8qIHBhc3NlZCBzZXBhcmF0ZWx5ICovCisJCXRyaWdTdG10LT50cmlnY29tbWVudCA9IE5VTEw7 CisJCXRyaWdTdG10LT50cmFuc2Zvcm1lZCA9IHRydWU7CiAKIAkJQ3JlYXRlVHJpZ2dlckZpcmlu Z09uKHRyaWdTdG10LCBOVUxMLCBSZWxhdGlvbkdldFJlbGlkKHBhcnRpdGlvbiksCiAJCQkJCQkJ ICB0cmlnRm9ybS0+dGdjb25zdHJyZWxpZCwgSW52YWxpZE9pZCwgSW52YWxpZE9pZCwKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RyaWdnZXIuYyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3RyaWdnZXIuYwppbmRleCA4ZGY5MTVmNjNmYi4uZTk0NDI2NWJkOWYgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RyaWdnZXIuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5k cy90cmlnZ2VyLmMKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb2Mu aCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RyaWdnZXIuaCIKICNpbmNsdWRlICJjYXRhbG9nL3Bn X3R5cGUuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9jb21tZW50LmgiCiAjaW5jbHVkZSAiY29tbWFu ZHMvdHJpZ2dlci5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWN1dG9yLmgiCiAjaW5jbHVkZSAi bWlzY2FkbWluLmgiCkBAIC01ODksMTMgKzU5MCwyMSBAQCBDcmVhdGVUcmlnZ2VyRmlyaW5nT24o Q3JlYXRlVHJpZ1N0bXQgKnN0bXQsIGNvbnN0IGNoYXIgKnF1ZXJ5U3RyaW5nLAogCQkJCQkJCQkJ CQkgICBmYWxzZSwgZmFsc2UpOwogCQlhZGROU0l0ZW1Ub1F1ZXJ5KHBzdGF0ZSwgbnNpdGVtLCBm YWxzZSwgdHJ1ZSwgdHJ1ZSk7CiAKLQkJLyogVHJhbnNmb3JtIGV4cHJlc3Npb24uICBDb3B5IHRv IGJlIHN1cmUgd2UgZG9uJ3QgbW9kaWZ5IG9yaWdpbmFsICovCi0JCXdoZW5DbGF1c2UgPSB0cmFu c2Zvcm1XaGVyZUNsYXVzZShwc3RhdGUsCi0JCQkJCQkJCQkJICBjb3B5T2JqZWN0KHN0bXQtPndo ZW5DbGF1c2UpLAotCQkJCQkJCQkJCSAgRVhQUl9LSU5EX1RSSUdHRVJfV0hFTiwKLQkJCQkJCQkJ CQkgICJXSEVOIik7Ci0JCS8qIHdlIGhhdmUgdG8gZml4IGl0cyBjb2xsYXRpb25zIHRvbyAqLwot CQlhc3NpZ25fZXhwcl9jb2xsYXRpb25zKHBzdGF0ZSwgd2hlbkNsYXVzZSk7CisJCWlmIChzdG10 LT50cmFuc2Zvcm1lZCkKKwkJCXdoZW5DbGF1c2UgPSBzdG10LT53aGVuQ2xhdXNlOworCQllbHNl CisJCXsKKwkJCS8qIFRyYW5zZm9ybSBleHByZXNzaW9uLiAgQ29weSB0byBiZSBzdXJlIHdlIGRv bid0IG1vZGlmeSBvcmlnaW5hbCAqLworCQkJd2hlbkNsYXVzZSA9IHRyYW5zZm9ybVdoZXJlQ2xh dXNlKHBzdGF0ZSwKKwkJCQkJCQkJCQkJICBjb3B5T2JqZWN0KHN0bXQtPndoZW5DbGF1c2UpLAor CQkJCQkJCQkJCQkgIEVYUFJfS0lORF9UUklHR0VSX1dIRU4sCisJCQkJCQkJCQkJCSAgIldIRU4i KTsKKworCQkJLyogd2UgaGF2ZSB0byBmaXggaXRzIGNvbGxhdGlvbnMgdG9vICovCisJCQlhc3Np Z25fZXhwcl9jb2xsYXRpb25zKHBzdGF0ZSwgd2hlbkNsYXVzZSk7CisKKwkJCXN0bXQtPnRyYW5z Zm9ybWVkID0gdHJ1ZTsKKwkJfQogCiAJCS8qCiAJCSAqIENoZWNrIGZvciBkaXNhbGxvd2VkIHJl ZmVyZW5jZXMgdG8gT0xEL05FVy4KQEAgLTEyMDQsNiArMTIxMywxMSBAQCBDcmVhdGVUcmlnZ2Vy RmlyaW5nT24oQ3JlYXRlVHJpZ1N0bXQgKnN0bXQsIGNvbnN0IGNoYXIgKnF1ZXJ5U3RyaW5nLAog CS8qIEtlZXAgbG9jayBvbiB0YXJnZXQgcmVsIHVudGlsIGVuZCBvZiB4YWN0ICovCiAJdGFibGVf Y2xvc2UocmVsLCBOb0xvY2spOwogCisJLyogQWRkIGFueSByZXF1ZXN0ZWQgY29tbWVudCAqLwor CWlmIChzdG10LT50cmlnY29tbWVudCAhPSBOVUxMKQorCQlDcmVhdGVDb21tZW50cyh0cmlnb2lk LCBUcmlnZ2VyUmVsYXRpb25JZCwgMCwKKwkJCQkJICAgc3RtdC0+dHJpZ2NvbW1lbnQpOworCiAJ cmV0dXJuIG15c2VsZjsKIH0KIApAQCAtNjc1MywzICs2NzY3LDIwNSBAQCBjaGVja19tb2RpZmll ZF92aXJ0dWFsX2dlbmVyYXRlZChUdXBsZURlc2MgdHVwZGVzYywgSGVhcFR1cGxlIHR1cGxlKQog CiAJcmV0dXJuIHR1cGxlOwogfQorCisvKgorICogRHVwbGljYXRlIHRoZSB0cmlnZ2VyIGRlZmlu aXRpb24gZm9yIHRoZSBuZXcgcmVsYXRpb246IFVzZSB0aGUgc291cmNlIHRyaWdnZXIKKyAqIChz b3VyY2VfdHJpZ2lkIGZyb20gc291cmNlX3JlbCkgdG8gaW5pdGlhbGl6ZSBhIENyZWF0ZVRyaWdT dG10IGZvciB0aGUgdGFyZ2V0CisgKiByZWxhdGlvbiAoaGVhcFJlbCkuCisgKgorICogQXR0cmli dXRlIG51bWJlcnMgaW4gZXhwcmVzc2lvbiBWYXJzIGFyZSBhZGp1c3RlZCBhY2NvcmRpbmcgdG8g YXR0bWFwLgorICovCitDcmVhdGVUcmlnU3RtdCAqCitnZW5lcmF0ZUNsb25lZFRyaWdnZXJTdG10 KFJhbmdlVmFyICpoZWFwUmVsLCBPaWQgc291cmNlX3RyaWdpZCwKKwkJCQkJCSAgUmVsYXRpb24g c291cmNlX3JlbCwgY29uc3QgQXR0ck1hcCAqYXR0bWFwKQoreworCUhlYXBUdXBsZQl0cmlnZ2Vy VHVwbGU7CisJSGVhcFR1cGxlCXByb2N0dXA7CisJRm9ybV9wZ190cmlnZ2VyIHRyaWdGb3JtOwor CUZvcm1fcGdfcHJvYyBwcm9jZm9ybTsKKwlSZWxhdGlvbglwZ190cmlnZ2VyOworCVJhbmdlVmFy ICAgKmNvbnN0cnJlbCA9IE5VTEw7CisJU3lzU2NhbkRlc2MgdGdzY2FuOworCVNjYW5LZXlEYXRh IHNrZXlbMV07CisJRGF0dW0JCXZhbHVlOworCWJvb2wJCWlzbnVsbDsKKwlOb2RlCSAgICpxdWFs ID0gTlVMTDsKKwlMaXN0CSAgICp0cmlnYXJncyA9IE5JTDsKKwlMaXN0CSAgICpjb2xzID0gTklM OworCUxpc3QJICAgKmZ1bmNuYW1lID0gTklMOworCUxpc3QJICAgKnRyYW5zaXRpb25SZWxzID0g TklMOworCWNoYXIJICAgKmZ1bmNzY2hlbWE7CisJQ3JlYXRlVHJpZ1N0bXQgKnRyaWdTdG10Owor CisJcGdfdHJpZ2dlciA9IHRhYmxlX29wZW4oVHJpZ2dlclJlbGF0aW9uSWQsIEFjY2Vzc1NoYXJl TG9jayk7CisKKwkvKiBGaW5kIHRoZSB0cmlnZ2VyIHRvIGNvcHkgKi8KKwlTY2FuS2V5SW5pdCgm c2tleVswXSwKKwkJCQlBbnVtX3BnX3RyaWdnZXJfb2lkLAorCQkJCUJURXF1YWxTdHJhdGVneU51 bWJlciwgRl9PSURFUSwKKwkJCQlPYmplY3RJZEdldERhdHVtKHNvdXJjZV90cmlnaWQpKTsKKwor CXRnc2NhbiA9IHN5c3RhYmxlX2JlZ2luc2NhbihwZ190cmlnZ2VyLCBUcmlnZ2VyT2lkSW5kZXhJ ZCwgdHJ1ZSwKKwkJCQkJCQkJTlVMTCwgMSwgc2tleSk7CisKKwl0cmlnZ2VyVHVwbGUgPSBzeXN0 YWJsZV9nZXRuZXh0KHRnc2Nhbik7CisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHRyaWdnZXJUdXBs ZSkpCisJCWVsb2coRVJST1IsICJjb3VsZCBub3QgZmluZCB0dXBsZSBmb3IgdHJpZ2dlciAldSIs IHNvdXJjZV90cmlnaWQpOworCisJdHJpZ0Zvcm0gPSAoRm9ybV9wZ190cmlnZ2VyKSBHRVRTVFJV Q1QodHJpZ2dlclR1cGxlKTsKKworCS8qIFJlY29uc3RydWN0IHRyaWdnZXIgZnVuY3Rpb24gU3Ry aW5nIGxpc3QgKi8KKwlwcm9jdHVwID0gU2VhcmNoU3lzQ2FjaGUxKFBST0NPSUQsIE9iamVjdElk R2V0RGF0dW0odHJpZ0Zvcm0tPnRnZm9pZCkpOworCWlmICghSGVhcFR1cGxlSXNWYWxpZChwcm9j dHVwKSkKKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIGZ1bmN0aW9uICV1 IiwgdHJpZ0Zvcm0tPnRnZm9pZCk7CisJcHJvY2Zvcm0gPSAoRm9ybV9wZ19wcm9jKSBHRVRTVFJV Q1QocHJvY3R1cCk7CisKKwlmdW5jc2NoZW1hID0gZ2V0X25hbWVzcGFjZV9uYW1lKHByb2Nmb3Jt LT5wcm9uYW1lc3BhY2UpOworCWZ1bmNuYW1lID0gbGlzdF9tYWtlMihtYWtlU3RyaW5nKGZ1bmNz Y2hlbWEpLAorCQkJCQkJICBtYWtlU3RyaW5nKHBzdHJkdXAoTmFtZVN0cihwcm9jZm9ybS0+cHJv bmFtZSkpKSk7CisJUmVsZWFzZVN5c0NhY2hlKHByb2N0dXApOworCisJLyoKKwkgKiBJZiB0aGVy ZSBpcyBhIGNvbHVtbiBsaXN0LCB0cmFuc2Zvcm0gaXQgdG8gYSBsaXN0IG9mIGNvbHVtbiBuYW1l cy4gTm90ZQorCSAqIHdlIGRvbid0IG5lZWQgdG8gbWFwIHRoaXMgbGlzdCBpbiBhbnkgd2F5IC4u LgorCSAqLworCWlmICh0cmlnRm9ybS0+dGdhdHRyLmRpbTEgPiAwKQorCXsKKwkJZm9yIChpbnQg aSA9IDA7IGkgPCB0cmlnRm9ybS0+dGdhdHRyLmRpbTE7IGkrKykKKwkJeworCQkJRm9ybV9wZ19h dHRyaWJ1dGUgY29sOworCisJCQljb2wgPSBUdXBsZURlc2NBdHRyKFJlbGF0aW9uR2V0RGVzY3Io c291cmNlX3JlbCksCisJCQkJCQkJCXRyaWdGb3JtLT50Z2F0dHIudmFsdWVzW2ldIC0gMSk7CisJ CQljb2xzID0gbGFwcGVuZChjb2xzLAorCQkJCQkJICAgbWFrZVN0cmluZyhwc3RyZHVwKE5hbWVT dHIoY29sLT5hdHRuYW1lKSkpKTsKKwkJfQorCX0KKworCS8qIFJlY29uc3RydWN0IHRyaWdnZXIg YXJndW1lbnRzIGxpc3QgKi8KKwlpZiAodHJpZ0Zvcm0tPnRnbmFyZ3MgPiAwKQorCXsKKwkJYnl0 ZWEJICAgKnZhbDsKKwkJY2hhcgkgICAqcDsKKworCQl2YWwgPSBEYXR1bUdldEJ5dGVhUFAoZmFz dGdldGF0dHIodHJpZ2dlclR1cGxlLAorCQkJCQkJCQkJCSAgQW51bV9wZ190cmlnZ2VyX3RnYXJn cywKKwkJCQkJCQkJCQkgIFJlbGF0aW9uR2V0RGVzY3IocGdfdHJpZ2dlciksCisJCQkJCQkJCQkJ ICAmaXNudWxsKSk7CisJCWlmIChpc251bGwpCisJCQllbG9nKEVSUk9SLCAidGdhcmdzIGlzIG51 bGwgaW4gdHJpZ2dlciBcIiVzXCIgZm9yIHJlbGF0aW9uIFwiJXNcIiIsCisJCQkJIE5hbWVTdHIo dHJpZ0Zvcm0tPnRnbmFtZSksCisJCQkJIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHNvdXJjZV9y ZWwpKTsKKworCQlwID0gKGNoYXIgKikgVkFSREFUQV9BTlkodmFsKTsKKworCQlmb3IgKGludCBp ID0gMDsgaSA8IHRyaWdGb3JtLT50Z25hcmdzOyBpKyspCisJCXsKKwkJCXRyaWdhcmdzID0gbGFw cGVuZCh0cmlnYXJncywgbWFrZVN0cmluZyhwc3RyZHVwKHApKSk7CisJCQlwICs9IHN0cmxlbihw KSArIDE7CisJCX0KKwl9CisKKwkvKiBJZiB0aGUgdHJpZ2dlciBoYXMgYSBXSEVOIHF1YWxpZmlj YXRpb24sIGFkZCB0aGF0ICovCisJdmFsdWUgPSBmYXN0Z2V0YXR0cih0cmlnZ2VyVHVwbGUsIEFu dW1fcGdfdHJpZ2dlcl90Z3F1YWwsCisJCQkJCQlSZWxhdGlvbkdldERlc2NyKHBnX3RyaWdnZXIp LCAmaXNudWxsKTsKKwlpZiAoIWlzbnVsbCkKKwl7CisJCWJvb2wJCWZvdW5kX3dob2xlX3JvdzsK KworCQlxdWFsID0gc3RyaW5nVG9Ob2RlKFRleHREYXR1bUdldENTdHJpbmcodmFsdWUpKTsKKwor CQkvKiBBZGp1c3QgVmFycyB0byBtYXRjaCBuZXcgdGFibGUncyBjb2x1bW4gbnVtYmVyaW5nICov CisJCXF1YWwgPSBtYXBfdmFyaWFibGVfYXR0bm9zKHF1YWwsIFBSUzJfTkVXX1ZBUk5PLCAwLAor CQkJCQkJCQkgICBhdHRtYXAsCisJCQkJCQkJCSAgIEludmFsaWRPaWQsCisJCQkJCQkJCSAgICZm b3VuZF93aG9sZV9yb3cpOworCisJCS8qIEFzIGluIGV4cGFuZFRhYmxlTGlrZUNsYXVzZSwgcmVq ZWN0IHdob2xlLXJvdyB2YXJpYWJsZXMgKi8KKwkJaWYgKGZvdW5kX3dob2xlX3JvdykKKwkJCWVy ZXBvcnQoRVJST1IsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQp LAorCQkJCQllcnJtc2coImNhbm5vdCBjb252ZXJ0IHdob2xlLXJvdyB0YWJsZSByZWZlcmVuY2Ui KSwKKwkJCQkJZXJyZGV0YWlsKCJUcmlnZ2VyIFwiJXNcIiBjb250YWlucyBhIHdob2xlLXJvdyB0 YWJsZSByZWZlcmVuY2UuIiwKKwkJCQkJCQkgIE5hbWVTdHIodHJpZ0Zvcm0tPnRnbmFtZSkpKTsK KworCQlxdWFsID0gbWFwX3ZhcmlhYmxlX2F0dG5vcyhxdWFsLCBQUlMyX09MRF9WQVJOTywgMCwK KwkJCQkJCQkJICAgYXR0bWFwLAorCQkJCQkJCQkgICBJbnZhbGlkT2lkLAorCQkJCQkJCQkgICAm Zm91bmRfd2hvbGVfcm93KTsKKworCQkvKiBBcyBpbiBleHBhbmRUYWJsZUxpa2VDbGF1c2UsIHJl amVjdCB3aG9sZS1yb3cgdmFyaWFibGVzICovCisJCWlmIChmb3VuZF93aG9sZV9yb3cpCisJCQll cmVwb3J0KEVSUk9SLAorCQkJCQllcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVE KSwKKwkJCQkJZXJybXNnKCJjYW5ub3QgY29udmVydCB3aG9sZS1yb3cgdGFibGUgcmVmZXJlbmNl IiksCisJCQkJCWVycmRldGFpbCgiVHJpZ2dlciBcIiVzXCIgY29udGFpbnMgYSB3aG9sZS1yb3cg dGFibGUgcmVmZXJlbmNlLiIsCisJCQkJCQkJICBOYW1lU3RyKHRyaWdGb3JtLT50Z25hbWUpKSk7 CisJfQorCisJLyogUmVjb25zdHJ1Y3QgdHJpZ2dlciBvbGQgdHJhbnNpdGlvbiB0YWJsZSAqLwor CXZhbHVlID0gZmFzdGdldGF0dHIodHJpZ2dlclR1cGxlLCBBbnVtX3BnX3RyaWdnZXJfdGdvbGR0 YWJsZSwKKwkJCQkJCVJlbGF0aW9uR2V0RGVzY3IocGdfdHJpZ2dlciksICZpc251bGwpOworCWlm ICghaXNudWxsKQorCXsKKwkJVHJpZ2dlclRyYW5zaXRpb24gKm9sZCA9IG1ha2VOb2RlKFRyaWdn ZXJUcmFuc2l0aW9uKTsKKworCQlvbGQtPmlzTmV3ID0gZmFsc2U7CisJCW9sZC0+bmFtZSA9IHBz dHJkdXAoTmFtZVN0cigqRGF0dW1HZXROYW1lKHZhbHVlKSkpOworCQlvbGQtPmlzVGFibGUgPSB0 cnVlOworCQl0cmFuc2l0aW9uUmVscyA9IGxhcHBlbmQodHJhbnNpdGlvblJlbHMsIG9sZCk7CisJ fQorCisJLyogUmVjb25zdHJ1Y3QgdHJpZ2dlciBuZXcgdHJhbnNpdGlvbiB0YWJsZSAqLworCXZh bHVlID0gZmFzdGdldGF0dHIodHJpZ2dlclR1cGxlLCBBbnVtX3BnX3RyaWdnZXJfdGduZXd0YWJs ZSwKKwkJCQkJCVJlbGF0aW9uR2V0RGVzY3IocGdfdHJpZ2dlciksCisJCQkJCQkmaXNudWxsKTsK KwlpZiAoIWlzbnVsbCkKKwl7CisJCVRyaWdnZXJUcmFuc2l0aW9uICpuZXcgPSBtYWtlTm9kZShU cmlnZ2VyVHJhbnNpdGlvbik7CisKKwkJbmV3LT5pc05ldyA9IHRydWU7CisJCW5ldy0+bmFtZSA9 IHBzdHJkdXAoTmFtZVN0cigqRGF0dW1HZXROYW1lKHZhbHVlKSkpOworCQluZXctPmlzVGFibGUg PSB0cnVlOworCQl0cmFuc2l0aW9uUmVscyA9IGxhcHBlbmQodHJhbnNpdGlvblJlbHMsIG5ldyk7 CisJfQorCisJLyogUmVjb25zdHJ1Y3QgdHJpZ2dlciBjb25zdHJhaW50J3MgRlJPTSB0YWJsZSAq LworCWlmIChPaWRJc1ZhbGlkKHRyaWdGb3JtLT50Z2NvbnN0cnJlbGlkKSkKKwl7CisJCS8qCisJ CSAqIEFjcXVpcmUgdGhlIEFjY2Vzc1NoYXJlTG9jayBsb2NrIG9uIHRnY29uc3RycmVsaWQgbm93 LCBhcyBpdCB3aWxsCisJCSAqIGJlIHJlcXVpcmVkIGxhdGVyIGluIENyZWF0ZVRyaWdnZXJGaXJp bmdPbi4KKwkJICovCisJCUxvY2tSZWxhdGlvbk9pZCh0cmlnRm9ybS0+dGdjb25zdHJyZWxpZCwg QWNjZXNzU2hhcmVMb2NrKTsKKworCQljb25zdHJyZWwgPQorCQkJbWFrZVJhbmdlVmFyKGdldF9u YW1lc3BhY2VfbmFtZShnZXRfcmVsX25hbWVzcGFjZSh0cmlnRm9ybS0+dGdjb25zdHJyZWxpZCkp LAorCQkJCQkJIGdldF9yZWxfbmFtZSh0cmlnRm9ybS0+dGdjb25zdHJyZWxpZCksCisJCQkJCQkg LTEpOworCX0KKworCXRyaWdTdG10ID0gbWFrZU5vZGUoQ3JlYXRlVHJpZ1N0bXQpOworCXRyaWdT dG10LT5yZXBsYWNlID0gZmFsc2U7CisJdHJpZ1N0bXQtPmlzY29uc3RyYWludCA9IE9pZElzVmFs aWQodHJpZ0Zvcm0tPnRnY29uc3RyYWludCk7CisJdHJpZ1N0bXQtPnRyaWduYW1lID0gcHN0cmR1 cChOYW1lU3RyKHRyaWdGb3JtLT50Z25hbWUpKTsKKwl0cmlnU3RtdC0+cmVsYXRpb24gPSBoZWFw UmVsOworCXRyaWdTdG10LT5mdW5jbmFtZSA9IGZ1bmNuYW1lOworCXRyaWdTdG10LT5hcmdzID0g dHJpZ2FyZ3M7CisJdHJpZ1N0bXQtPnJvdyA9IFRSSUdHRVJfRk9SX1JPVyh0cmlnRm9ybS0+dGd0 eXBlKTsKKwl0cmlnU3RtdC0+dGltaW5nID0gdHJpZ0Zvcm0tPnRndHlwZSAmIFRSSUdHRVJfVFlQ RV9USU1JTkdfTUFTSzsKKwl0cmlnU3RtdC0+ZXZlbnRzID0gdHJpZ0Zvcm0tPnRndHlwZSAmIFRS SUdHRVJfVFlQRV9FVkVOVF9NQVNLOworCXRyaWdTdG10LT5jb2x1bW5zID0gY29sczsKKwl0cmln U3RtdC0+d2hlbkNsYXVzZSA9IHF1YWw7CisJdHJpZ1N0bXQtPnRyYW5zaXRpb25SZWxzID0gdHJh bnNpdGlvblJlbHM7CisJdHJpZ1N0bXQtPmRlZmVycmFibGUgPSB0cmlnRm9ybS0+dGdkZWZlcnJh YmxlOworCXRyaWdTdG10LT5pbml0ZGVmZXJyZWQgPSB0cmlnRm9ybS0+dGdpbml0ZGVmZXJyZWQ7 CisJdHJpZ1N0bXQtPmNvbnN0cnJlbCA9IGNvbnN0cnJlbDsKKwl0cmlnU3RtdC0+dHJpZ2NvbW1l bnQgPSBOVUxMOworCXRyaWdTdG10LT50cmFuc2Zvcm1lZCA9IHRydWU7CisKKwlzeXN0YWJsZV9l bmRzY2FuKHRnc2Nhbik7CisJdGFibGVfY2xvc2UocGdfdHJpZ2dlciwgQWNjZXNzU2hhcmVMb2Nr KTsKKworCXJldHVybiB0cmlnU3RtdDsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNl ci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IDcxM2VlNWMxMGEyLi5l ZTljYmJmYzZjNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9z cmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC03ODYsNyArNzg2LDcgQEAgc3RhdGljIE5vZGUg Km1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5v ZGUgKnF1ZXJ5KTsKIAogCVRBQkxFIFRBQkxFUyBUQUJMRVNBTVBMRSBUQUJMRVNQQUNFIFRBUkdF VCBURU1QIFRFTVBMQVRFIFRFTVBPUkFSWSBURVhUX1AgVEhFTgogCVRJRVMgVElNRSBUSU1FU1RB TVAgVE8gVFJBSUxJTkcgVFJBTlNBQ1RJT04gVFJBTlNGT1JNCi0JVFJFQVQgVFJJR0dFUiBUUklN IFRSVUVfUAorCVRSRUFUIFRSSUdHRVIgVFJJR0dFUlMgVFJJTSBUUlVFX1AKIAlUUlVOQ0FURSBU UlVTVEVEIFRZUEVfUCBUWVBFU19QCiAKIAlVRVNDQVBFIFVOQk9VTkRFRCBVTkNPTkRJVElPTkFM IFVOQ09NTUlUVEVEIFVORU5DUllQVEVEIFVOSU9OIFVOSVFVRSBVTktOT1dOCkBAIC00Mjk2LDYg KzQyOTYsNyBAQCBUYWJsZUxpa2VPcHRpb246CiAJCQkJfCBJTkRFWEVTCQkJeyAkJCA9IENSRUFU RV9UQUJMRV9MSUtFX0lOREVYRVM7IH0KIAkJCQl8IFNUQVRJU1RJQ1MJCXsgJCQgPSBDUkVBVEVf VEFCTEVfTElLRV9TVEFUSVNUSUNTOyB9CiAJCQkJfCBTVE9SQUdFCQkJeyAkJCA9IENSRUFURV9U QUJMRV9MSUtFX1NUT1JBR0U7IH0KKwkJCQl8IFRSSUdHRVJTCQkJeyAkJCA9IENSRUFURV9UQUJM RV9MSUtFX1RSSUdHRVJTOyB9CiAJCQkJfCBBTEwJCQkJeyAkJCA9IENSRUFURV9UQUJMRV9MSUtF X0FMTDsgfQogCQk7CiAKQEAgLTYxNTAsNiArNjE1MSw4IEBAIENyZWF0ZVRyaWdTdG10OgogCQkJ CQluLT5kZWZlcnJhYmxlID0gZmFsc2U7CiAJCQkJCW4tPmluaXRkZWZlcnJlZCA9IGZhbHNlOwog CQkJCQluLT5jb25zdHJyZWwgPSBOVUxMOworCQkJCQluLT50cmlnY29tbWVudCA9IE5VTEw7CisJ CQkJCW4tPnRyYW5zZm9ybWVkID0gZmFsc2U7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9 CiAJCSAgfCBDUkVBVEUgb3B0X29yX3JlcGxhY2UgQ09OU1RSQUlOVCBUUklHR0VSIG5hbWUgQUZU RVIgVHJpZ2dlckV2ZW50cyBPTgpAQCAtNjIwMCw2ICs2MjAzLDggQEAgQ3JlYXRlVHJpZ1N0bXQ6 CiAJCQkJCQkJCSAgICZuLT5kZWZlcnJhYmxlLCAmbi0+aW5pdGRlZmVycmVkLCAmZHVtbXksCiAJ CQkJCQkJCSAgIE5VTEwsIE5VTEwsIHl5c2Nhbm5lcik7CiAJCQkJCW4tPmNvbnN0cnJlbCA9ICQx MDsKKwkJCQkJbi0+dHJpZ2NvbW1lbnQgPSBOVUxMOworCQkJCQluLT50cmFuc2Zvcm1lZCA9IGZh bHNlOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQogCQk7CkBAIC0xODE5NCw2ICsxODE5 OSw3IEBAIHVucmVzZXJ2ZWRfa2V5d29yZDoKIAkJCXwgVFJBTlNBQ1RJT04KIAkJCXwgVFJBTlNG T1JNCiAJCQl8IFRSSUdHRVIKKwkJCXwgVFJJR0dFUlMKIAkJCXwgVFJVTkNBVEUKIAkJCXwgVFJV U1RFRAogCQkJfCBUWVBFX1AKQEAgLTE4ODQ3LDYgKzE4ODUzLDcgQEAgYmFyZV9sYWJlbF9rZXl3 b3JkOgogCQkJfCBUUkFOU0ZPUk0KIAkJCXwgVFJFQVQKIAkJCXwgVFJJR0dFUgorCQkJfCBUUklH R0VSUwogCQkJfCBUUklNCiAJCQl8IFRSVUVfUAogCQkJfCBUUlVOQ0FURQpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV91dGlsY21kLmMKaW5kZXggYjVmNGM3MjQ1OWQuLmNhNDQ2ZDVlMmQ2IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jCisrKyBiL3NyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV91dGlsY21kLmMKQEAgLTM5LDEyICszOSwxNCBAQAogI2luY2x1ZGUgImNhdGFs b2cvcGdfb3BjbGFzcy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfb3BlcmF0b3IuaCIKICNpbmNs dWRlICJjYXRhbG9nL3BnX3N0YXRpc3RpY19leHQuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3Ry aWdnZXIuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKICNpbmNsdWRlICJjb21tYW5k cy9jb21tZW50LmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGVmcmVtLmgiCiAjaW5jbHVkZSAiY29t bWFuZHMvc2VxdWVuY2UuaCIKICNpbmNsdWRlICJjb21tYW5kcy90YWJsZWNtZHMuaCIKICNpbmNs dWRlICJjb21tYW5kcy90YWJsZXNwYWNlLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvdHJpZ2dlci5o IgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgIm5vZGVzL21ha2VmdW5jcy5oIgog I2luY2x1ZGUgIm5vZGVzL25vZGVGdW5jcy5oIgpAQCAtMTMyMSw3ICsxMzIzLDggQEAgdHJhbnNm b3JtVGFibGVMaWtlQ2xhdXNlKENyZWF0ZVN0bXRDb250ZXh0ICpjeHQsIFRhYmxlTGlrZUNsYXVz ZSAqdGFibGVfbGlrZV9jbGEKIAkJIENSRUFURV9UQUJMRV9MSUtFX0dFTkVSQVRFRCB8CiAJCSBD UkVBVEVfVEFCTEVfTElLRV9DT05TVFJBSU5UUyB8CiAJCSBDUkVBVEVfVEFCTEVfTElLRV9JTkRF WEVTIHwKLQkJIENSRUFURV9UQUJMRV9MSUtFX1NUQVRJU1RJQ1MpKQorCQkgQ1JFQVRFX1RBQkxF X0xJS0VfU1RBVElTVElDUyB8CisJCSBDUkVBVEVfVEFCTEVfTElLRV9UUklHR0VSUykpCiAJewog CQl0YWJsZV9saWtlX2NsYXVzZS0+cmVsYXRpb25PaWQgPSBSZWxhdGlvbkdldFJlbGlkKHJlbGF0 aW9uKTsKIAkJY3h0LT5saWtlY2xhdXNlcyA9IGxhcHBlbmQoY3h0LT5saWtlY2xhdXNlcywgdGFi bGVfbGlrZV9jbGF1c2UpOwpAQCAtMTYyNSw2ICsxNjI4LDM4IEBAIGV4cGFuZFRhYmxlTGlrZUNs YXVzZShSYW5nZVZhciAqaGVhcFJlbCwgVGFibGVMaWtlQ2xhdXNlICp0YWJsZV9saWtlX2NsYXVz ZSkKIAkJbGlzdF9mcmVlKHBhcmVudF9leHRzdGF0cyk7CiAJfQogCisJLyogUHJvY2VzcyB0cmln Z2VycyBpZiByZXF1aXJlZCAqLworCWlmICgodGFibGVfbGlrZV9jbGF1c2UtPm9wdGlvbnMgJiBD UkVBVEVfVEFCTEVfTElLRV9UUklHR0VSUykgJiYKKwkJcmVsYXRpb24tPnRyaWdkZXNjICE9IE5V TEwpCisJeworCQlib29sCQlpbmNsdWRlX2NvbW1lbnRzID0gKHRhYmxlX2xpa2VfY2xhdXNlLT5v cHRpb25zICYgQ1JFQVRFX1RBQkxFX0xJS0VfQ09NTUVOVFMpOworCisJCWZvciAoaW50IG50ID0g MDsgbnQgPCByZWxhdGlvbi0+dHJpZ2Rlc2MtPm51bXRyaWdnZXJzOyBudCsrKQorCQl7CisJCQlU cmlnZ2VyICAgICp0cmlnID0gcmVsYXRpb24tPnRyaWdkZXNjLT50cmlnZ2VycyArIG50OworCQkJ T2lkCQkJdHJpZ29pZCA9IHRyaWctPnRnb2lkOworCQkJQ3JlYXRlVHJpZ1N0bXQgKnRyaWdfc3Rt dDsKKworCQkJLyogV2UgZG8gbm90IGNvcHkgaW50ZXJuYWwgdHJpZ2dlciB0byB0aGUgbmV3IHRh YmxlICovCisJCQlpZiAodHJpZy0+dGdpc2ludGVybmFsKQorCQkJCWNvbnRpbnVlOworCisJCQl0 cmlnX3N0bXQgPSBnZW5lcmF0ZUNsb25lZFRyaWdnZXJTdG10KGhlYXBSZWwsIHRyaWdvaWQsCisJ CQkJCQkJCQkJCQkgIHJlbGF0aW9uLCBhdHRtYXApOworCisJCQkvKiBDb3B5IGNvbW1lbnQgb24g dHJpZ2dlciwgaWYgcmVxdWVzdGVkICovCisJCQlpZiAoaW5jbHVkZV9jb21tZW50cykKKwkJCXsK KwkJCQljb21tZW50ID0gR2V0Q29tbWVudCh0cmlnb2lkLCBUcmlnZ2VyUmVsYXRpb25JZCwgMCk7 CisKKwkJCQkvKiBXZSBtYWtlIHVzZSBvZiBDcmVhdGVUcmlnU3RtdCdzIHRyaWdjb21tZW50IG9w dGlvbiAqLworCQkJCXRyaWdfc3RtdC0+dHJpZ2NvbW1lbnQgPSBjb21tZW50OworCQkJfQorCisJ CQlyZXN1bHQgPSBsYXBwZW5kKHJlc3VsdCwgdHJpZ19zdG10KTsKKwkJfQorCX0KKwogCS8qIERv bmUgd2l0aCBjaGlsZCByZWwgKi8KIAl0YWJsZV9jbG9zZShjaGlsZHJlbCwgTm9Mb2NrKTsKIApk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvdHJpZ2dlci5oIGIvc3JjL2luY2x1ZGUv Y29tbWFuZHMvdHJpZ2dlci5oCmluZGV4IDU1NmM4NmJmNWUxLi44NzBiYzIwNjgyMiAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvdHJpZ2dlci5oCisrKyBiL3NyYy9pbmNsdWRlL2Nv bW1hbmRzL3RyaWdnZXIuaApAQCAtMjY4LDYgKzI2OCwxMCBAQCBleHRlcm4gdm9pZCBBZnRlclRy aWdnZXJCZWdpblN1YlhhY3Qodm9pZCk7CiBleHRlcm4gdm9pZCBBZnRlclRyaWdnZXJFbmRTdWJY YWN0KGJvb2wgaXNDb21taXQpOwogZXh0ZXJuIHZvaWQgQWZ0ZXJUcmlnZ2VyU2V0U3RhdGUoQ29u c3RyYWludHNTZXRTdG10ICpzdG10KTsKIGV4dGVybiBib29sIEFmdGVyVHJpZ2dlclBlbmRpbmdP blJlbChPaWQgcmVsaWQpOworZXh0ZXJuIENyZWF0ZVRyaWdTdG10ICpnZW5lcmF0ZUNsb25lZFRy aWdnZXJTdG10KFJhbmdlVmFyICpoZWFwUmVsLAorCQkJCQkJCQkJCQkJIE9pZCBzb3VyY2VfdHJp Z2lkLAorCQkJCQkJCQkJCQkJIFJlbGF0aW9uIHNvdXJjZV9yZWwsCisJCQkJCQkJCQkJCQkgY29u c3QgQXR0ck1hcCAqYXR0bWFwKTsKIAogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9k ZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IDY0 NmQ2Y2VkNzYzLi40N2U2ZGZiMmFiMiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFy c2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtNzk1LDYg Kzc5NSw3IEBAIHR5cGVkZWYgZW51bSBUYWJsZUxpa2VPcHRpb24KIAlDUkVBVEVfVEFCTEVfTElL RV9JTkRFWEVTID0gMSA8PCA2LAogCUNSRUFURV9UQUJMRV9MSUtFX1NUQVRJU1RJQ1MgPSAxIDw8 IDcsCiAJQ1JFQVRFX1RBQkxFX0xJS0VfU1RPUkFHRSA9IDEgPDwgOCwKKwlDUkVBVEVfVEFCTEVf TElLRV9UUklHR0VSUyA9IDEgPDwgOSwKIAlDUkVBVEVfVEFCTEVfTElLRV9BTEwgPSBQR19JTlQz Ml9NQVgKIH0gVGFibGVMaWtlT3B0aW9uOwogCkBAIC0zMTU0LDYgKzMxNTUsOSBAQCB0eXBlZGVm IHN0cnVjdCBDcmVhdGVUcmlnU3RtdAogCWJvb2wJCWRlZmVycmFibGU7CQkvKiBbTk9UXSBERUZF UlJBQkxFICovCiAJYm9vbAkJaW5pdGRlZmVycmVkOwkvKiBJTklUSUFMTFkge0RFRkVSUkVEfElN TUVESUFURX0gKi8KIAlSYW5nZVZhciAgICpjb25zdHJyZWw7CQkvKiBvcHBvc2l0ZSByZWxhdGlv biwgaWYgUkkgdHJpZ2dlciAqLworCWNoYXIJICAgKnRyaWdjb21tZW50OwkvKiBjb21tZW50IHRv IGFwcGx5IHRvIHRyaWdnZXIsIG9yIE5VTEwgKi8KKwlib29sCQl0cmFuc2Zvcm1lZDsJLyogdHJ1 ZSBtZWFucyBubyBuZWVkIHRvIGRvIHBhcnNlIGFuYWx5c2lzIGZvcgorCQkJCQkJCQkgKiB3aGVu Q2xhdXNlICovCiB9IENyZWF0ZVRyaWdTdG10OwogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmggYi9zcmMvaW5jbHVkZS9w YXJzZXIva3dsaXN0LmgKaW5kZXggZjc3NTNjNWM4YTguLjAwYjg4MDNmNWFhIDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3 bGlzdC5oCkBAIC00NjQsNiArNDY0LDcgQEAgUEdfS0VZV09SRCgidHJhbnNhY3Rpb24iLCBUUkFO U0FDVElPTiwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgidHJh bnNmb3JtIiwgVFJBTlNGT1JNLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19L RVlXT1JEKCJ0cmVhdCIsIFRSRUFULCBDT0xfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdf S0VZV09SRCgidHJpZ2dlciIsIFRSSUdHRVIsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJF TCkKK1BHX0tFWVdPUkQoInRyaWdnZXJzIiwgVFJJR0dFUlMsIFVOUkVTRVJWRURfS0VZV09SRCwg QkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInRyaW0iLCBUUklNLCBDT0xfTkFNRV9LRVlXT1JELCBC QVJFX0xBQkVMKQogUEdfS0VZV09SRCgidHJ1ZSIsIFRSVUVfUCwgUkVTRVJWRURfS0VZV09SRCwg QkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInRydW5jYXRlIiwgVFJVTkNBVEUsIFVOUkVTRVJWRURf S0VZV09SRCwgQkFSRV9MQUJFTCkKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvY3JlYXRlX3RhYmxlX2xpa2Uub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVh dGVfdGFibGVfbGlrZS5vdXQKaW5kZXggZDNjMzVjMTQ4NDcuLjA2NjY1NTZlNWU2IDEwMDY0NAot LS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV90YWJsZV9saWtlLm91dAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV90YWJsZV9saWtlLm91dApAQCAtNjMx LDYgKzYzMSwxMyBAQCBOb3QtbnVsbCBjb25zdHJhaW50czoKICAgICAiY3RsX3RhYmxlX2Ffbm90 X251bGwiIE5PVCBOVUxMICJhIgogICAgICJjdGxfdGFibGVfZF9ub3RfbnVsbCIgTk9UIE5VTEwg ImQiCiAKKy0tIHRyaWdnZXJfZnVuYyB3YXMgY3JlYXRlZCBpbiB0cmlnZ2Vycy5zcWwKK0NSRUFU RSBUUklHR0VSIHRyaWd0ZXN0X2JlZm9yZV9zdG10IEJFRk9SRSBERUxFVEUgT1IgVVBEQVRFIE9O IGN0bF90YWJsZQorRk9SIEVBQ0ggUk9XIFdIRU4gKE9MRC5hID4gMCkKK0VYRUNVVEUgUFJPQ0VE VVJFIHRyaWdnZXJfZnVuYygndHJpZ3Rlc3RfYmVmb3JlX3N0bXQnKTsKK0NSRUFURSBUUklHR0VS IHRyaWd0ZXN0X2FmdGVyX3N0bXQgQUZURVIgVVBEQVRFIE9GIGEsIGIgT04gY3RsX3RhYmxlCitG T1IgRUFDSCBTVEFURU1FTlQKK0VYRUNVVEUgUFJPQ0VEVVJFIHRyaWdnZXJfZnVuYygndHJpZ3Rl c3RfYmVmb3JlX3N0bXQnKTsKIC0tIFRlc3QgRVhDTFVESU5HIEFMTAogQ1JFQVRFIEZPUkVJR04g VEFCTEUgY3RsX2ZvcmVpZ25fdGFibGUxKExJS0UgY3RsX3RhYmxlIEVYQ0xVRElORyBBTEwpIFNF UlZFUiBjdGxfczA7CiBcZCsgY3RsX2ZvcmVpZ25fdGFibGUxCkBAIC02NzksNiArNjg2LDkgQEAg U3RhdGlzdGljcyBvYmplY3RzOgogTm90LW51bGwgY29uc3RyYWludHM6CiAgICAgImN0bF90YWJs ZV9hX25vdF9udWxsIiBOT1QgTlVMTCAiYSIKICAgICAiY3RsX3RhYmxlX2Rfbm90X251bGwiIE5P VCBOVUxMICJkIgorVHJpZ2dlcnM6CisgICAgdHJpZ3Rlc3RfYWZ0ZXJfc3RtdCBBRlRFUiBVUERB VEUgT0YgYSwgYiBPTiBjdGxfZm9yZWlnbl90YWJsZTIgRk9SIEVBQ0ggU1RBVEVNRU5UIEVYRUNV VEUgRlVOQ1RJT04gdHJpZ2dlcl9mdW5jKCd0cmlndGVzdF9iZWZvcmVfc3RtdCcpCisgICAgdHJp Z3Rlc3RfYmVmb3JlX3N0bXQgQkVGT1JFIERFTEVURSBPUiBVUERBVEUgT04gY3RsX2ZvcmVpZ25f dGFibGUyIEZPUiBFQUNIIFJPVyBXSEVOIChvbGQuYSA+IDApIEVYRUNVVEUgRlVOQ1RJT04gdHJp Z2dlcl9mdW5jKCd0cmlndGVzdF9iZWZvcmVfc3RtdCcpCiBTZXJ2ZXI6IGN0bF9zMAogCiAtLSBc ZCsgZG9lcyBub3QgcmVwb3J0IHRoZSB2YWx1ZSBvZiBhdHRjb21wcmVzc2lvbiBmb3IgYSBmb3Jl aWduIHRhYmxlLCBzbwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC90cmln Z2Vycy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3RyaWdnZXJzLm91dAppbmRleCAx YWNkZDEyZDI5ZS4uZThlZWYyMDIyZjMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvdHJpZ2dlcnMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdHJpZ2dl cnMub3V0CkBAIC0xNjUsNiArMTY1LDcgQEAgZHJvcCB0YWJsZSB0cmlndGVzdDsKIENSRUFURSBU QUJMRSBsb2dfdGFibGUgKHRzdGFtcCB0aW1lc3RhbXAgZGVmYXVsdCB0aW1lb2ZkYXkoKTo6dGlt ZXN0YW1wKTsKIENSRUFURSBUQUJMRSBtYWluX3RhYmxlIChhIGludCB1bmlxdWUsIGIgaW50KTsK IENPUFkgbWFpbl90YWJsZSAoYSxiKSBGUk9NIHN0ZGluOworLS0gVGhpcyBmdW5jdGlvbiBhbHNv IHVzZWQgaW4gY3JlYXRlX3RhYmxlX2xpa2Uuc3FsLCBkb24ndCBkcm9wIGl0LgogQ1JFQVRFIEZV TkNUSU9OIHRyaWdnZXJfZnVuYygpIFJFVFVSTlMgdHJpZ2dlciBMQU5HVUFHRSBwbHBnc3FsIEFT ICcKIEJFR0lOCiAJUkFJU0UgTk9USUNFICcndHJpZ2dlcl9mdW5jKCUpIGNhbGxlZDogYWN0aW9u ID0gJSwgd2hlbiA9ICUsIGxldmVsID0gJScnLCBUR19BUkdWWzBdLCBUR19PUCwgVEdfV0hFTiwg VEdfTEVWRUw7CkBAIC0xNzQsNiArMTc1LDIwIEBAIENSRUFURSBUUklHR0VSIGJlZm9yZV9pbnNf c3RtdF90cmlnIEJFRk9SRSBJTlNFUlQgT04gbWFpbl90YWJsZQogRk9SIEVBQ0ggU1RBVEVNRU5U IEVYRUNVVEUgUFJPQ0VEVVJFIHRyaWdnZXJfZnVuYygnYmVmb3JlX2luc19zdG10Jyk7CiBDUkVB VEUgVFJJR0dFUiBhZnRlcl9pbnNfc3RtdF90cmlnIEFGVEVSIElOU0VSVCBPTiBtYWluX3RhYmxl CiBGT1IgRUFDSCBTVEFURU1FTlQgRVhFQ1VURSBQUk9DRURVUkUgdHJpZ2dlcl9mdW5jKCdhZnRl cl9pbnNfc3RtdCcpOworQ1JFQVRFIFRSSUdHRVIgd2hvbGV0cmlnIEJFRk9SRSBVUERBVEUgT04g bWFpbl90YWJsZSBGT1IgRUFDSCBST1cKK1dIRU4gKE9MRCBJUyBOT1QgTlVMTCkKK0VYRUNVVEUg UFJPQ0VEVVJFIHRyaWdnZXJfZnVuYygnbW9kaWZpZWRfYScpOworQ1JFQVRFIFRBQkxFIG1haW5f dGFibGUxKExJS0UgbWFpbl90YWJsZSBJTkNMVURJTkcgVFJJR0dFUlMpOyAtLWVycm9yLCB3aG9s ZXJvdyByZWZlcmVuY2UKK0VSUk9SOiAgY2Fubm90IGNvbnZlcnQgd2hvbGUtcm93IHRhYmxlIHJl ZmVyZW5jZQorREVUQUlMOiAgVHJpZ2dlciAid2hvbGV0cmlnIiBjb250YWlucyBhIHdob2xlLXJv dyB0YWJsZSByZWZlcmVuY2UuCitEUk9QIFRSSUdHRVIgd2hvbGV0cmlnIE9OIG1haW5fdGFibGU7 CitDUkVBVEUgVFJJR0dFUiB3aG9sZXRyaWcgQkVGT1JFIFVQREFURSBPTiBtYWluX3RhYmxlIEZP UiBFQUNIIFJPVworV0hFTiAoTkVXIElTIE5PVCBOVUxMKQorRVhFQ1VURSBQUk9DRURVUkUgdHJp Z2dlcl9mdW5jKCdtb2RpZmllZF9hJyk7CitDUkVBVEUgVEFCTEUgbWFpbl90YWJsZTEoTElLRSBt YWluX3RhYmxlIElOQ0xVRElORyBUUklHR0VSUyk7IC0tZXJyb3IsIHdob2xlcm93IHJlZmVyZW5j ZQorRVJST1I6ICBjYW5ub3QgY29udmVydCB3aG9sZS1yb3cgdGFibGUgcmVmZXJlbmNlCitERVRB SUw6ICBUcmlnZ2VyICJ3aG9sZXRyaWciIGNvbnRhaW5zIGEgd2hvbGUtcm93IHRhYmxlIHJlZmVy ZW5jZS4KK0RST1AgVFJJR0dFUiB3aG9sZXRyaWcgT04gbWFpbl90YWJsZTsKIC0tCiAtLSBpZiBu ZWl0aGVyICdGT1IgRUFDSCBST1cnIG5vciAnRk9SIEVBQ0ggU1RBVEVNRU5UJyB3YXMgc3BlY2lm aWVkLAogLS0gQ1JFQVRFIFRSSUdHRVIgc2hvdWxkIGRlZmF1bHQgdG8gJ0ZPUiBFQUNIIFNUQVRF TUVOVCcKQEAgLTM5NCw2ICs0MDksNDUgQEAgTk9USUNFOiAgdHJpZ2dlcl9mdW5jKGFmdGVyX3Vw ZF9hX2Jfcm93KSBjYWxsZWQ6IGFjdGlvbiA9IFVQREFURSwgd2hlbiA9IEFGVEVSLAogTk9USUNF OiAgdHJpZ2dlcl9mdW5jKGFmdGVyX3VwZF9iX3JvdykgY2FsbGVkOiBhY3Rpb24gPSBVUERBVEUs IHdoZW4gPSBBRlRFUiwgbGV2ZWwgPSBST1cKIE5PVElDRTogIHRyaWdnZXJfZnVuYyhhZnRlcl91 cGRfYl9zdG10KSBjYWxsZWQ6IGFjdGlvbiA9IFVQREFURSwgd2hlbiA9IEFGVEVSLCBsZXZlbCA9 IFNUQVRFTUVOVAogTk9USUNFOiAgdHJpZ2dlcl9mdW5jKGFmdGVyX3VwZF9zdG10KSBjYWxsZWQ6 IGFjdGlvbiA9IFVQREFURSwgd2hlbiA9IEFGVEVSLCBsZXZlbCA9IFNUQVRFTUVOVAorLS1DUkVB VEUgVEFCTEUgTElLRSBJTkNMVURJTkcgVFJJR0dFUlMgdGVzdHMKK0NPTU1FTlQgT04gVFJJR0dF UiBiZWZvcmVfaW5zX3N0bXRfdHJpZyBPTiBtYWluX3RhYmxlIElTICd0cmlnZ2VyIGJlZm9yZV9p bnNfc3RtdF90cmlnJzsKK0NSRUFURSBUQUJMRSBtYWluX3RhYmxlMShjIGludCwgTElLRSBtYWlu X3RhYmxlIElOQ0xVRElORyBUUklHR0VSUyBJTkNMVURJTkcgQ09NTUVOVFMpOworU0VMRUNUICBw Z19nZXRfdHJpZ2dlcmRlZihvaWQpCitGUk9NICAgIHBnX3RyaWdnZXIKK1dIRVJFIE5PVCB0Z2lz aW50ZXJuYWwgQU5EIHRncmVsaWQgSU4gKCdtYWluX3RhYmxlJzo6cmVnY2xhc3MsICdtYWluX3Rh YmxlMSc6OnJlZ2NsYXNzKQorT1JERVIgQlkgdGduYW1lLCB0Z3JlbGlkOjpyZWdjbGFzczo6dGV4 dCBDT0xMQVRFICJDIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHBnX2dldF90cmlnZ2VyZGVmICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQ1JFQVRFIFRSSUdHRVIgYWZ0ZXJf aW5zX3N0bXRfdHJpZyBBRlRFUiBJTlNFUlQgT04gcHVibGljLm1haW5fdGFibGUgRk9SIEVBQ0gg U1RBVEVNRU5UIEVYRUNVVEUgRlVOQ1RJT04gdHJpZ2dlcl9mdW5jKCdhZnRlcl9pbnNfc3RtdCcp CisgQ1JFQVRFIFRSSUdHRVIgYWZ0ZXJfaW5zX3N0bXRfdHJpZyBBRlRFUiBJTlNFUlQgT04gcHVi bGljLm1haW5fdGFibGUxIEZPUiBFQUNIIFNUQVRFTUVOVCBFWEVDVVRFIEZVTkNUSU9OIHRyaWdn ZXJfZnVuYygnYWZ0ZXJfaW5zX3N0bXQnKQorIENSRUFURSBUUklHR0VSIGFmdGVyX3VwZF9hX2Jf cm93X3RyaWcgQUZURVIgVVBEQVRFIE9GIGEsIGIgT04gcHVibGljLm1haW5fdGFibGUgRk9SIEVB Q0ggUk9XIEVYRUNVVEUgRlVOQ1RJT04gdHJpZ2dlcl9mdW5jKCdhZnRlcl91cGRfYV9iX3Jvdycp CisgQ1JFQVRFIFRSSUdHRVIgYWZ0ZXJfdXBkX2FfYl9yb3dfdHJpZyBBRlRFUiBVUERBVEUgT0Yg YSwgYiBPTiBwdWJsaWMubWFpbl90YWJsZTEgRk9SIEVBQ0ggUk9XIEVYRUNVVEUgRlVOQ1RJT04g dHJpZ2dlcl9mdW5jKCdhZnRlcl91cGRfYV9iX3JvdycpCisgQ1JFQVRFIFRSSUdHRVIgYWZ0ZXJf dXBkX2Jfcm93X3RyaWcgQUZURVIgVVBEQVRFIE9GIGIgT04gcHVibGljLm1haW5fdGFibGUgRk9S IEVBQ0ggUk9XIEVYRUNVVEUgRlVOQ1RJT04gdHJpZ2dlcl9mdW5jKCdhZnRlcl91cGRfYl9yb3cn KQorIENSRUFURSBUUklHR0VSIGFmdGVyX3VwZF9iX3Jvd190cmlnIEFGVEVSIFVQREFURSBPRiBi IE9OIHB1YmxpYy5tYWluX3RhYmxlMSBGT1IgRUFDSCBST1cgRVhFQ1VURSBGVU5DVElPTiB0cmln Z2VyX2Z1bmMoJ2FmdGVyX3VwZF9iX3JvdycpCisgQ1JFQVRFIFRSSUdHRVIgYWZ0ZXJfdXBkX2Jf c3RtdF90cmlnIEFGVEVSIFVQREFURSBPRiBiIE9OIHB1YmxpYy5tYWluX3RhYmxlIEZPUiBFQUNI IFNUQVRFTUVOVCBFWEVDVVRFIEZVTkNUSU9OIHRyaWdnZXJfZnVuYygnYWZ0ZXJfdXBkX2Jfc3Rt dCcpCisgQ1JFQVRFIFRSSUdHRVIgYWZ0ZXJfdXBkX2Jfc3RtdF90cmlnIEFGVEVSIFVQREFURSBP RiBiIE9OIHB1YmxpYy5tYWluX3RhYmxlMSBGT1IgRUFDSCBTVEFURU1FTlQgRVhFQ1VURSBGVU5D VElPTiB0cmlnZ2VyX2Z1bmMoJ2FmdGVyX3VwZF9iX3N0bXQnKQorIENSRUFURSBUUklHR0VSIGFm dGVyX3VwZF9zdG10X3RyaWcgQUZURVIgVVBEQVRFIE9OIHB1YmxpYy5tYWluX3RhYmxlIEZPUiBF QUNIIFNUQVRFTUVOVCBFWEVDVVRFIEZVTkNUSU9OIHRyaWdnZXJfZnVuYygnYWZ0ZXJfdXBkX3N0 bXQnKQorIENSRUFURSBUUklHR0VSIGFmdGVyX3VwZF9zdG10X3RyaWcgQUZURVIgVVBEQVRFIE9O IHB1YmxpYy5tYWluX3RhYmxlMSBGT1IgRUFDSCBTVEFURU1FTlQgRVhFQ1VURSBGVU5DVElPTiB0 cmlnZ2VyX2Z1bmMoJ2FmdGVyX3VwZF9zdG10JykKKyBDUkVBVEUgVFJJR0dFUiBiZWZvcmVfaW5z X3N0bXRfdHJpZyBCRUZPUkUgSU5TRVJUIE9OIHB1YmxpYy5tYWluX3RhYmxlIEZPUiBFQUNIIFNU QVRFTUVOVCBFWEVDVVRFIEZVTkNUSU9OIHRyaWdnZXJfZnVuYygnYmVmb3JlX2luc19zdG10JykK KyBDUkVBVEUgVFJJR0dFUiBiZWZvcmVfaW5zX3N0bXRfdHJpZyBCRUZPUkUgSU5TRVJUIE9OIHB1 YmxpYy5tYWluX3RhYmxlMSBGT1IgRUFDSCBTVEFURU1FTlQgRVhFQ1VURSBGVU5DVElPTiB0cmln Z2VyX2Z1bmMoJ2JlZm9yZV9pbnNfc3RtdCcpCisgQ1JFQVRFIFRSSUdHRVIgYmVmb3JlX3VwZF9h X3Jvd190cmlnIEJFRk9SRSBVUERBVEUgT0YgYSBPTiBwdWJsaWMubWFpbl90YWJsZSBGT1IgRUFD SCBST1cgRVhFQ1VURSBGVU5DVElPTiB0cmlnZ2VyX2Z1bmMoJ2JlZm9yZV91cGRfYV9yb3cnKQor IENSRUFURSBUUklHR0VSIGJlZm9yZV91cGRfYV9yb3dfdHJpZyBCRUZPUkUgVVBEQVRFIE9GIGEg T04gcHVibGljLm1haW5fdGFibGUxIEZPUiBFQUNIIFJPVyBFWEVDVVRFIEZVTkNUSU9OIHRyaWdn ZXJfZnVuYygnYmVmb3JlX3VwZF9hX3JvdycpCisgQ1JFQVRFIFRSSUdHRVIgYmVmb3JlX3VwZF9h X3N0bXRfdHJpZyBCRUZPUkUgVVBEQVRFIE9GIGEgT04gcHVibGljLm1haW5fdGFibGUgRk9SIEVB Q0ggU1RBVEVNRU5UIEVYRUNVVEUgRlVOQ1RJT04gdHJpZ2dlcl9mdW5jKCdiZWZvcmVfdXBkX2Ff c3RtdCcpCisgQ1JFQVRFIFRSSUdHRVIgYmVmb3JlX3VwZF9hX3N0bXRfdHJpZyBCRUZPUkUgVVBE QVRFIE9GIGEgT04gcHVibGljLm1haW5fdGFibGUxIEZPUiBFQUNIIFNUQVRFTUVOVCBFWEVDVVRF IEZVTkNUSU9OIHRyaWdnZXJfZnVuYygnYmVmb3JlX3VwZF9hX3N0bXQnKQorKDE2IHJvd3MpCisK K1NFTEVDVCAgcGMucmVsbmFtZSwgcGQudGduYW1lLCBvYmpfZGVzY3JpcHRpb24ocGQub2lkLCAn cGdfdHJpZ2dlcicpCitGUk9NICAgIHBnX3RyaWdnZXIgcGQgSk9JTiBwZ19jbGFzcyBwYworT04g ICAgICBwYy5vaWQgPSBwZC50Z3JlbGlkIEFORCBwZC50Z25hbWUgPSAnYmVmb3JlX2luc19zdG10 X3RyaWcnCitPUkRFUiBCWSAxOworICAgcmVsbmFtZSAgIHwgICAgICAgIHRnbmFtZSAgICAgICAg fCAgICAgICBvYmpfZGVzY3JpcHRpb24gICAgICAgIAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIG1haW5fdGFibGUg IHwgYmVmb3JlX2luc19zdG10X3RyaWcgfCB0cmlnZ2VyIGJlZm9yZV9pbnNfc3RtdF90cmlnCisg bWFpbl90YWJsZTEgfCBiZWZvcmVfaW5zX3N0bXRfdHJpZyB8IHRyaWdnZXIgYmVmb3JlX2luc19z dG10X3RyaWcKKygyIHJvd3MpCisKK0NPTU1FTlQgT04gVFJJR0dFUiBiZWZvcmVfaW5zX3N0bXRf dHJpZyBPTiBtYWluX3RhYmxlIElTIE5VTEw7CitEUk9QIFRBQkxFIG1haW5fdGFibGUxOwogLS0K IC0tIFRlc3QgY2FzZSBmb3IgYnVnIHdpdGggQkVGT1JFIHRyaWdnZXIgZm9sbG93ZWQgYnkgQUZU RVIgdHJpZ2dlciB3aXRoIFdIRU4KIC0tCkBAIC00MjIsNyArNDc2LDIyIEBAIE5PVElDRTogIGR1 bW15X3VwZGF0ZV9mdW5jKGFmdGVyYikgY2FsbGVkOiBhY3Rpb24gPSBVUERBVEUsIG9sZCA9ICh0 KSwgbmV3ID0gKGYpCiBVUERBVEUgc29tZV90IFNFVCBzb21lX2NvbCA9IFRSVUU7CiBOT1RJQ0U6 ICBkdW1teV91cGRhdGVfZnVuYyhiZWZvcmUpIGNhbGxlZDogYWN0aW9uID0gVVBEQVRFLCBvbGQg PSAoZiksIG5ldyA9ICh0KQogTk9USUNFOiAgZHVtbXlfdXBkYXRlX2Z1bmMoYWZ0ZXJhKSBjYWxs ZWQ6IGFjdGlvbiA9IFVQREFURSwgb2xkID0gKGYpLCBuZXcgPSAodCkKK0NSRUFURSBUQUJMRSBz b21lX3QxIChjIElOVCwgTElLRSBzb21lX3QgSU5DTFVESU5HIFRSSUdHRVJTIElOQ0xVRElORyBD T01NRU5UUyk7CitcZCsgc29tZV90MQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBUYWJsZSAicHVibGljLnNvbWVfdDEiCisgIENvbHVtbiAgfCAgVHlwZSAgIHwgQ29sbGF0aW9u IHwgTnVsbGFibGUgfCBEZWZhdWx0IHwgU3RvcmFnZSB8IFN0YXRzIHRhcmdldCB8IERlc2NyaXB0 aW9uIAorLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBjICAgICAgICB8IGlu dGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCBwbGFpbiAgIHwgICAgICAg ICAgICAgIHwgCisgc29tZV9jb2wgfCBib29sZWFuIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAg ICAgICAgIHwgcGxhaW4gICB8ICAgICAgICAgICAgICB8IAorTm90LW51bGwgY29uc3RyYWludHM6 CisgICAgInNvbWVfdF9zb21lX2NvbF9ub3RfbnVsbCIgTk9UIE5VTEwgInNvbWVfY29sIgorVHJp Z2dlcnM6CisgICAgc29tZV90cmlnX2FmdGVyYSBBRlRFUiBVUERBVEUgT04gc29tZV90MSBGT1Ig RUFDSCBST1cgV0hFTiAoTk9UIG9sZC5zb21lX2NvbCBBTkQgbmV3LnNvbWVfY29sKSBFWEVDVVRF IEZVTkNUSU9OIGR1bW15X3VwZGF0ZV9mdW5jKCdhZnRlcmEnKQorICAgIHNvbWVfdHJpZ19hZnRl cmIgQUZURVIgVVBEQVRFIE9OIHNvbWVfdDEgRk9SIEVBQ0ggUk9XIFdIRU4gKE5PVCBuZXcuc29t ZV9jb2wpIEVYRUNVVEUgRlVOQ1RJT04gZHVtbXlfdXBkYXRlX2Z1bmMoJ2FmdGVyYicpCisgICAg c29tZV90cmlnX2JlZm9yZSBCRUZPUkUgVVBEQVRFIE9OIHNvbWVfdDEgRk9SIEVBQ0ggUk9XIEVY RUNVVEUgRlVOQ1RJT04gZHVtbXlfdXBkYXRlX2Z1bmMoJ2JlZm9yZScpCisKIERST1AgVEFCTEUg c29tZV90OworRFJPUCBUQUJMRSBzb21lX3QxOwogLS0gYm9ndXMgY2FzZXMKIENSRUFURSBUUklH R0VSIGVycm9yX3VwZF9hbmRfY29sIEJFRk9SRSBVUERBVEUgT1IgVVBEQVRFIE9GIGEgT04gbWFp bl90YWJsZQogRk9SIEVBQ0ggUk9XIEVYRUNVVEUgUFJPQ0VEVVJFIHRyaWdnZXJfZnVuYygnZXJy b3JfdXBkX2FuZF9jb2wnKTsKQEAgLTg2MSw2ICs5MzAsOSBAQCBDUkVBVEUgVFJJR0dFUiBpbnN0 ZWFkX29mX3VwZGF0ZV90cmlnIElOU1RFQUQgT0YgVVBEQVRFIE9OIG1haW5fdmlldwogRk9SIEVB Q0ggUk9XIEVYRUNVVEUgUFJPQ0VEVVJFIHZpZXdfdHJpZ2dlcignaW5zdGVhZF9vZl91cGQnKTsK IENSRUFURSBUUklHR0VSIGluc3RlYWRfb2ZfZGVsZXRlX3RyaWcgSU5TVEVBRCBPRiBERUxFVEUg T04gbWFpbl92aWV3CiBGT1IgRUFDSCBST1cgRVhFQ1VURSBQUk9DRURVUkUgdmlld190cmlnZ2Vy KCdpbnN0ZWFkX29mX2RlbCcpOworQ1JFQVRFIFRBQkxFIG1haW5fdmlld190YWJsZShMSUtFIG1h aW5fdmlldyBJTkNMVURJTkcgVFJJR0dFUlMpOyAtLWVycm9yCitFUlJPUjogICJtYWluX3ZpZXdf dGFibGUiIGlzIGEgdGFibGUKK0RFVEFJTDogIFRhYmxlcyBjYW5ub3QgaGF2ZSBJTlNURUFEIE9G IHRyaWdnZXJzLgogLS0gVmFsaWQgQkVGT1JFIHN0YXRlbWVudCBWSUVXIHRyaWdnZXJzCiBDUkVB VEUgVFJJR0dFUiBiZWZvcmVfaW5zX3N0bXRfdHJpZyBCRUZPUkUgSU5TRVJUIE9OIG1haW5fdmll dwogRk9SIEVBQ0ggU1RBVEVNRU5UIEVYRUNVVEUgUFJPQ0VEVVJFIHZpZXdfdHJpZ2dlcignYmVm b3JlX3ZpZXdfaW5zX3N0bXQnKTsKQEAgLTE3NjksOSArMTg0MSwyMSBAQCBjcmVhdGUgdHJpZ2dl ciBteV90cmlnZ2VyIGFmdGVyIHVwZGF0ZSBvbiBteV92aWV3IHJlZmVyZW5jaW5nIG9sZCB0YWJs ZSBhcyBvbGRfdAogICAgZm9yIGVhY2ggc3RhdGVtZW50IGV4ZWN1dGUgcHJvY2VkdXJlIG15X3Ry aWdnZXJfZnVuY3Rpb24oKTsKIEVSUk9SOiAgIm15X3ZpZXciIGlzIGEgdmlldwogREVUQUlMOiAg VHJpZ2dlcnMgb24gdmlld3MgY2Fubm90IGhhdmUgdHJhbnNpdGlvbiB0YWJsZXMuCi1kcm9wIGZ1 bmN0aW9uIG15X3RyaWdnZXJfZnVuY3Rpb24oKTsKK2NyZWF0ZSB0cmlnZ2VyIG15X3RyaWdnZXIx IGJlZm9yZSB1cGRhdGUgb2YgaSBvbiBteV92aWV3CisgICBmb3IgZWFjaCBzdGF0ZW1lbnQgZXhl Y3V0ZSBwcm9jZWR1cmUgbXlfdHJpZ2dlcl9mdW5jdGlvbigpOworY3JlYXRlIHRhYmxlIG15X3Zp ZXdfY29weShMSUtFIG15X3ZpZXcgaW5jbHVkaW5nIHRyaWdnZXJzKTsKK1xkIG15X3ZpZXdfY29w eQorICAgICAgICAgICAgVGFibGUgInB1YmxpYy5teV92aWV3X2NvcHkiCisgQ29sdW1uIHwgIFR5 cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQorIGkgICAgICB8IGludGVnZXIgfCAg ICAgICAgICAgfCAgICAgICAgICB8IAorVHJpZ2dlcnM6CisgICAgbXlfdHJpZ2dlcjEgQkVGT1JF IFVQREFURSBPRiBpIE9OIG15X3ZpZXdfY29weSBGT1IgRUFDSCBTVEFURU1FTlQgRVhFQ1VURSBG VU5DVElPTiBteV90cmlnZ2VyX2Z1bmN0aW9uKCkKKwogZHJvcCB2aWV3IG15X3ZpZXc7CiBkcm9w IHRhYmxlIG15X3RhYmxlOworZHJvcCB0YWJsZSBteV92aWV3X2NvcHk7Citkcm9wIGZ1bmN0aW9u IG15X3RyaWdnZXJfZnVuY3Rpb24oKTsKIC0tCiAtLSBWZXJpZnkgY2FzZXMgdGhhdCBhcmUgdW5z dXBwb3J0ZWQgd2l0aCBwYXJ0aXRpb25lZCB0YWJsZXMKIC0tCkBAIC0yMzE4LDYgKzI0MDIsMjAg QEAgY3JlYXRlIGNvbnN0cmFpbnQgdHJpZ2dlciBwYXJ0ZWRfdHJpZ190d28gYWZ0ZXIgaW5zZXJ0 IG9uIHBhcnRlZF9jb25zdHIKICAgZGVmZXJyYWJsZSBpbml0aWFsbHkgZGVmZXJyZWQgZW5mb3Jj ZWQKICAgZm9yIGVhY2ggcm93IHdoZW4gKGJhcmsobmV3LmIpIEFORCBuZXcuYSAlIDIgPSAxKQog ICBleGVjdXRlIHByb2NlZHVyZSB0cmlnZ2VyX25vdGljZV9hYigpOworY3JlYXRlIHRhYmxlIHBh cnRlZF9jb25zdHJfY29weSAobGlrZSBwYXJ0ZWRfY29uc3RyIGluY2x1ZGluZyBhbGwpOworc2Vs ZWN0ICBwZ19nZXRfdHJpZ2dlcmRlZihvaWQpCitmcm9tICAgIHBnX3RyaWdnZXIKK3doZXJlICAg bm90IHRnaXNpbnRlcm5hbCBhbmQgdGdyZWxpZCBpbiAoJ3BhcnRlZF9jb25zdHJfY29weSc6OnJl Z2NsYXNzLCAncGFydGVkX2NvbnN0cic6OnJlZ2NsYXNzKQorb3JkZXIgYnkgdGduYW1lOworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZ19nZXRfdHJpZ2dlcmRlZiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIENSRUFURSBDT05TVFJBSU5UIFRSSUdHRVIgcGFydGVkX3RyaWcg QUZURVIgSU5TRVJUIE9OIHB1YmxpYy5wYXJ0ZWRfY29uc3RyIERFRkVSUkFCTEUgSU5JVElBTExZ IElNTUVESUFURSBGT1IgRUFDSCBST1cgRVhFQ1VURSBGVU5DVElPTiB0cmlnZ2VyX25vdGljZV9h YigpCisgQ1JFQVRFIENPTlNUUkFJTlQgVFJJR0dFUiBwYXJ0ZWRfdHJpZyBBRlRFUiBJTlNFUlQg T04gcHVibGljLnBhcnRlZF9jb25zdHJfY29weSBERUZFUlJBQkxFIElOSVRJQUxMWSBJTU1FRElB VEUgRk9SIEVBQ0ggUk9XIEVYRUNVVEUgRlVOQ1RJT04gdHJpZ2dlcl9ub3RpY2VfYWIoKQorIENS RUFURSBDT05TVFJBSU5UIFRSSUdHRVIgcGFydGVkX3RyaWdfdHdvIEFGVEVSIElOU0VSVCBPTiBw dWJsaWMucGFydGVkX2NvbnN0ciBERUZFUlJBQkxFIElOSVRJQUxMWSBERUZFUlJFRCBGT1IgRUFD SCBST1cgV0hFTiAoKGJhcmsobmV3LmIpIEFORCAoKG5ldy5hICUgMikgPSAxKSkpIEVYRUNVVEUg RlVOQ1RJT04gdHJpZ2dlcl9ub3RpY2VfYWIoKQorIENSRUFURSBDT05TVFJBSU5UIFRSSUdHRVIg cGFydGVkX3RyaWdfdHdvIEFGVEVSIElOU0VSVCBPTiBwdWJsaWMucGFydGVkX2NvbnN0cl9jb3B5 IERFRkVSUkFCTEUgSU5JVElBTExZIERFRkVSUkVEIEZPUiBFQUNIIFJPVyBXSEVOICgoYmFyayhu ZXcuYikgQU5EICgobmV3LmEgJSAyKSA9IDEpKSkgRVhFQ1VURSBGVU5DVElPTiB0cmlnZ2VyX25v dGljZV9hYigpCisoNCByb3dzKQorCitkcm9wIHRhYmxlIHBhcnRlZF9jb25zdHJfY29weTsKIC0t IFRoZSBpbW1lZGlhdGUgY29uc3RyYWludCBpcyBmaXJlZCBpbW1lZGlhdGVseTsgdGhlIFdIRU4g Y2xhdXNlIG9mIHRoZQogLS0gZGVmZXJyZWQgY29uc3RyYWludCBpcyBhbHNvIGNhbGxlZCBpbW1l ZGlhdGVseS4gIFRoZSBkZWZlcnJlZCBjb25zdHJhaW50CiAtLSBpcyBmaXJlZCBhdCBjb21taXQg dGltZS4KQEAgLTMwOTgsNiArMzE5NiwxOCBAQCBjcmVhdGUgdHJpZ2dlciBpb2NkdV90dF9wYXJ0 ZWRfaW5zZXJ0X3RyaWcKIGNyZWF0ZSB0cmlnZ2VyIGlvY2R1X3R0X3BhcnRlZF91cGRhdGVfdHJp ZwogICBhZnRlciB1cGRhdGUgb24gaW9jZHVfdHRfcGFydGVkIHJlZmVyZW5jaW5nIG9sZCB0YWJs ZSBhcyBvbGRfdGFibGUgbmV3IHRhYmxlIGFzIG5ld190YWJsZQogICBmb3IgZWFjaCBzdGF0ZW1l bnQgZXhlY3V0ZSBwcm9jZWR1cmUgZHVtcF91cGRhdGUoKTsKK0NSRUFURSBUQUJMRSBpb2NkdV90 dF9wYXJ0ZWRfY29weShMSUtFIGlvY2R1X3R0X3BhcnRlZCBJTkNMVURJTkcgVFJJR0dFUlMpOwor XGQgaW9jZHVfdHRfcGFydGVkX2NvcHkKKyAgICAgICAgVGFibGUgInB1YmxpYy5pb2NkdV90dF9w YXJ0ZWRfY29weSIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBE ZWZhdWx0IAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tCisgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCisgYiAgICAg IHwgdGV4dCAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCitUcmlnZ2VyczoKKyAgICBpb2Nk dV90dF9wYXJ0ZWRfaW5zZXJ0X3RyaWcgQUZURVIgSU5TRVJUIE9OIGlvY2R1X3R0X3BhcnRlZF9j b3B5IFJFRkVSRU5DSU5HIE5FVyBUQUJMRSBBUyBuZXdfdGFibGUgRk9SIEVBQ0ggU1RBVEVNRU5U IEVYRUNVVEUgRlVOQ1RJT04gZHVtcF9pbnNlcnQoKQorICAgIGlvY2R1X3R0X3BhcnRlZF91cGRh dGVfdHJpZyBBRlRFUiBVUERBVEUgT04gaW9jZHVfdHRfcGFydGVkX2NvcHkgUkVGRVJFTkNJTkcg T0xEIFRBQkxFIEFTIG9sZF90YWJsZSBORVcgVEFCTEUgQVMgbmV3X3RhYmxlIEZPUiBFQUNIIFNU QVRFTUVOVCBFWEVDVVRFIEZVTkNUSU9OIGR1bXBfdXBkYXRlKCkKKworRFJPUCBUQUJMRSBpb2Nk dV90dF9wYXJ0ZWRfY29weTsKIC0tIGluc2VydHMgb25seQogaW5zZXJ0IGludG8gaW9jZHVfdHRf cGFydGVkIHZhbHVlcyAoMSwgJ0FBQScpLCAoMiwgJ0JCQicpCiAgIG9uIGNvbmZsaWN0IChhKSBk bwpAQCAtMzU4MCw2ICszNjkwLDI2IEBAIGJlZ2luCiBlbmQ7CiAkJDsKIGFsdGVyIGZ1bmN0aW9u IHdob2FtaSgpIG93bmVyIHRvIHJlZ3Jlc3NfZm5fb3duZXI7CistLSBDUkVBVEUgVEFCTEUgTElL RSBJTkNMVURJTkcgVFJJR0dFUlMgZm9yIGNvbnN0cmFpbnQgdHJpZ2dlcgorY3JlYXRlIHNjaGVt YSB0ZXN0X3RyaWc7CitjcmVhdGUgdGFibGUgdGVzdF90cmlnLnRyaWdfdDEgKGlkIGludGVnZXIp OworY3JlYXRlIHRhYmxlIHRlc3RfdHJpZy50cmlnX3QyIChpZCBpbnRlZ2VyKTsKK2FsdGVyIGZ1 bmN0aW9uIHdob2FtaSgpIHNldCBzY2hlbWEgdGVzdF90cmlnOworY3JlYXRlIGNvbnN0cmFpbnQg dHJpZ2dlciBjb25fdHJpZ190ZXN0IGFmdGVyIGluc2VydCBvbiB0ZXN0X3RyaWcudHJpZ190MQor ZnJvbSB0ZXN0X3RyaWcudHJpZ190MgorZGVmZXJyYWJsZSBpbml0aWFsbHkgZGVmZXJyZWQKK2Zv ciBlYWNoIHJvdworZXhlY3V0ZSBmdW5jdGlvbiB0ZXN0X3RyaWcud2hvYW1pKCk7CitjcmVhdGUg dGFibGUgdHJpZ190MV9jb3B5KGxpa2UgdGVzdF90cmlnLnRyaWdfdDEgaW5jbHVkaW5nIHRyaWdn ZXJzKTsKK3NlbGVjdCBwZ19nZXRfdHJpZ2dlcmRlZihvaWQpIGZyb20gcGdfdHJpZ2dlciB3aGVy ZSB0Z3JlbGlkID0gJ3RyaWdfdDFfY29weSc6OnJlZ2NsYXNzOworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcGdfZ2V0X3RyaWdnZXJkZWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgQ1JFQVRFIENPTlNUUkFJTlQgVFJJR0dFUiBjb25fdHJpZ190ZXN0IEFGVEVSIElOU0VSVCBP TiBwdWJsaWMudHJpZ190MV9jb3B5IEZST00gdGVzdF90cmlnLnRyaWdfdDIgREVGRVJSQUJMRSBJ TklUSUFMTFkgREVGRVJSRUQgRk9SIEVBQ0ggUk9XIEVYRUNVVEUgRlVOQ1RJT04gdGVzdF90cmln Lndob2FtaSgpCisoMSByb3cpCisKK2FsdGVyIGZ1bmN0aW9uIHRlc3RfdHJpZy53aG9hbWkoKSBz ZXQgc2NoZW1hIHB1YmxpYzsKK2Ryb3AgdGFibGUgdGVzdF90cmlnLnRyaWdfdDEsIHRlc3RfdHJp Zy50cmlnX3QyLCB0cmlnX3QxX2NvcHk7Citkcm9wIHNjaGVtYSB0ZXN0X3RyaWc7CiBjcmVhdGUg dGFibGUgZGVmZXJfdHJpZyAoaWQgaW50ZWdlcik7CiBncmFudCBpbnNlcnQgb24gZGVmZXJfdHJp ZyB0byBwdWJsaWM7CiBjcmVhdGUgY29uc3RyYWludCB0cmlnZ2VyIHdob2FtaSBhZnRlciBpbnNl cnQgb24gZGVmZXJfdHJpZwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRl X3RhYmxlX2xpa2Uuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX3RhYmxlX2xpa2Uu c3FsCmluZGV4IDkzMzg5YjU3ZGJmLi43NDU3ZTdkOTYxZSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvY3JlYXRlX3RhYmxlX2xpa2Uuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL2NyZWF0ZV90YWJsZV9saWtlLnNxbApAQCAtMjU4LDYgKzI1OCwxMyBAQCBBTFRFUiBUQUJM RSBjdGxfdGFibGUgQUREIENPTlNUUkFJTlQgZm9vIENIRUNLIChiID0gJ3RleHQnKTsKIEFMVEVS IFRBQkxFIGN0bF90YWJsZSBBTFRFUiBDT0xVTU4gYiBTRVQgU1RPUkFHRSBNQUlOOwogCiBcZCsg Y3RsX3RhYmxlCistLSB0cmlnZ2VyX2Z1bmMgd2FzIGNyZWF0ZWQgaW4gdHJpZ2dlcnMuc3FsCitD UkVBVEUgVFJJR0dFUiB0cmlndGVzdF9iZWZvcmVfc3RtdCBCRUZPUkUgREVMRVRFIE9SIFVQREFU RSBPTiBjdGxfdGFibGUKK0ZPUiBFQUNIIFJPVyBXSEVOIChPTEQuYSA+IDApCitFWEVDVVRFIFBS T0NFRFVSRSB0cmlnZ2VyX2Z1bmMoJ3RyaWd0ZXN0X2JlZm9yZV9zdG10Jyk7CitDUkVBVEUgVFJJ R0dFUiB0cmlndGVzdF9hZnRlcl9zdG10IEFGVEVSIFVQREFURSBPRiBhLCBiIE9OIGN0bF90YWJs ZQorRk9SIEVBQ0ggU1RBVEVNRU5UCitFWEVDVVRFIFBST0NFRFVSRSB0cmlnZ2VyX2Z1bmMoJ3Ry aWd0ZXN0X2JlZm9yZV9zdG10Jyk7CiAKIC0tIFRlc3QgRVhDTFVESU5HIEFMTAogQ1JFQVRFIEZP UkVJR04gVEFCTEUgY3RsX2ZvcmVpZ25fdGFibGUxKExJS0UgY3RsX3RhYmxlIEVYQ0xVRElORyBB TEwpIFNFUlZFUiBjdGxfczA7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC90cmln Z2Vycy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC90cmlnZ2Vycy5zcWwKaW5kZXggY2M4Nzg0 NTVhY2UuLjE5ZWYwMzUzY2I4IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC90cmln Z2Vycy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvdHJpZ2dlcnMuc3FsCkBAIC0xMDgs NiArMTA4LDcgQEAgQ09QWSBtYWluX3RhYmxlIChhLGIpIEZST00gc3RkaW47CiA4MAkxNQogXC4K IAorLS0gVGhpcyBmdW5jdGlvbiBhbHNvIHVzZWQgaW4gY3JlYXRlX3RhYmxlX2xpa2Uuc3FsLCBk b24ndCBkcm9wIGl0LgogQ1JFQVRFIEZVTkNUSU9OIHRyaWdnZXJfZnVuYygpIFJFVFVSTlMgdHJp Z2dlciBMQU5HVUFHRSBwbHBnc3FsIEFTICcKIEJFR0lOCiAJUkFJU0UgTk9USUNFICcndHJpZ2dl cl9mdW5jKCUpIGNhbGxlZDogYWN0aW9uID0gJSwgd2hlbiA9ICUsIGxldmVsID0gJScnLCBUR19B UkdWWzBdLCBUR19PUCwgVEdfV0hFTiwgVEdfTEVWRUw7CkBAIC0xMjAsNiArMTIxLDE4IEBAIEZP UiBFQUNIIFNUQVRFTUVOVCBFWEVDVVRFIFBST0NFRFVSRSB0cmlnZ2VyX2Z1bmMoJ2JlZm9yZV9p bnNfc3RtdCcpOwogQ1JFQVRFIFRSSUdHRVIgYWZ0ZXJfaW5zX3N0bXRfdHJpZyBBRlRFUiBJTlNF UlQgT04gbWFpbl90YWJsZQogRk9SIEVBQ0ggU1RBVEVNRU5UIEVYRUNVVEUgUFJPQ0VEVVJFIHRy aWdnZXJfZnVuYygnYWZ0ZXJfaW5zX3N0bXQnKTsKIAorQ1JFQVRFIFRSSUdHRVIgd2hvbGV0cmln IEJFRk9SRSBVUERBVEUgT04gbWFpbl90YWJsZSBGT1IgRUFDSCBST1cKK1dIRU4gKE9MRCBJUyBO T1QgTlVMTCkKK0VYRUNVVEUgUFJPQ0VEVVJFIHRyaWdnZXJfZnVuYygnbW9kaWZpZWRfYScpOwor Q1JFQVRFIFRBQkxFIG1haW5fdGFibGUxKExJS0UgbWFpbl90YWJsZSBJTkNMVURJTkcgVFJJR0dF UlMpOyAtLWVycm9yLCB3aG9sZXJvdyByZWZlcmVuY2UKK0RST1AgVFJJR0dFUiB3aG9sZXRyaWcg T04gbWFpbl90YWJsZTsKKworQ1JFQVRFIFRSSUdHRVIgd2hvbGV0cmlnIEJFRk9SRSBVUERBVEUg T04gbWFpbl90YWJsZSBGT1IgRUFDSCBST1cKK1dIRU4gKE5FVyBJUyBOT1QgTlVMTCkKK0VYRUNV VEUgUFJPQ0VEVVJFIHRyaWdnZXJfZnVuYygnbW9kaWZpZWRfYScpOworQ1JFQVRFIFRBQkxFIG1h aW5fdGFibGUxKExJS0UgbWFpbl90YWJsZSBJTkNMVURJTkcgVFJJR0dFUlMpOyAtLWVycm9yLCB3 aG9sZXJvdyByZWZlcmVuY2UKK0RST1AgVFJJR0dFUiB3aG9sZXRyaWcgT04gbWFpbl90YWJsZTsK KwogLS0KIC0tIGlmIG5laXRoZXIgJ0ZPUiBFQUNIIFJPVycgbm9yICdGT1IgRUFDSCBTVEFURU1F TlQnIHdhcyBzcGVjaWZpZWQsCiAtLSBDUkVBVEUgVFJJR0dFUiBzaG91bGQgZGVmYXVsdCB0byAn Rk9SIEVBQ0ggU1RBVEVNRU5UJwpAQCAtMjM0LDYgKzI0NywyMSBAQCBTRUxFQ1QgcGdfZ2V0X3Ry aWdnZXJkZWYob2lkKSBGUk9NIHBnX3RyaWdnZXIgV0hFUkUgdGdyZWxpZCA9ICdtYWluX3RhYmxl Jzo6cmVnYwogVVBEQVRFIG1haW5fdGFibGUgU0VUIGEgPSA1MDsKIFVQREFURSBtYWluX3RhYmxl IFNFVCBiID0gMTA7CiAKKy0tQ1JFQVRFIFRBQkxFIExJS0UgSU5DTFVESU5HIFRSSUdHRVJTIHRl c3RzCitDT01NRU5UIE9OIFRSSUdHRVIgYmVmb3JlX2luc19zdG10X3RyaWcgT04gbWFpbl90YWJs ZSBJUyAndHJpZ2dlciBiZWZvcmVfaW5zX3N0bXRfdHJpZyc7CitDUkVBVEUgVEFCTEUgbWFpbl90 YWJsZTEoYyBpbnQsIExJS0UgbWFpbl90YWJsZSBJTkNMVURJTkcgVFJJR0dFUlMgSU5DTFVESU5H IENPTU1FTlRTKTsKK1NFTEVDVCAgcGdfZ2V0X3RyaWdnZXJkZWYob2lkKQorRlJPTSAgICBwZ190 cmlnZ2VyCitXSEVSRSBOT1QgdGdpc2ludGVybmFsIEFORCB0Z3JlbGlkIElOICgnbWFpbl90YWJs ZSc6OnJlZ2NsYXNzLCAnbWFpbl90YWJsZTEnOjpyZWdjbGFzcykKK09SREVSIEJZIHRnbmFtZSwg dGdyZWxpZDo6cmVnY2xhc3M6OnRleHQgQ09MTEFURSAiQyI7CitTRUxFQ1QgIHBjLnJlbG5hbWUs IHBkLnRnbmFtZSwgb2JqX2Rlc2NyaXB0aW9uKHBkLm9pZCwgJ3BnX3RyaWdnZXInKQorRlJPTSAg ICBwZ190cmlnZ2VyIHBkIEpPSU4gcGdfY2xhc3MgcGMKK09OICAgICAgcGMub2lkID0gcGQudGdy ZWxpZCBBTkQgcGQudGduYW1lID0gJ2JlZm9yZV9pbnNfc3RtdF90cmlnJworT1JERVIgQlkgMTsK K0NPTU1FTlQgT04gVFJJR0dFUiBiZWZvcmVfaW5zX3N0bXRfdHJpZyBPTiBtYWluX3RhYmxlIElT IE5VTEw7CisKK0RST1AgVEFCTEUgbWFpbl90YWJsZTE7CisKIC0tCiAtLSBUZXN0IGNhc2UgZm9y IGJ1ZyB3aXRoIEJFRk9SRSB0cmlnZ2VyIGZvbGxvd2VkIGJ5IEFGVEVSIHRyaWdnZXIgd2l0aCBX SEVOCiAtLQpAQCAtMjU4LDcgKzI4NiwxMCBAQCBJTlNFUlQgSU5UTyBzb21lX3QgVkFMVUVTIChU UlVFKTsKIFVQREFURSBzb21lX3QgU0VUIHNvbWVfY29sID0gVFJVRTsKIFVQREFURSBzb21lX3Qg U0VUIHNvbWVfY29sID0gRkFMU0U7CiBVUERBVEUgc29tZV90IFNFVCBzb21lX2NvbCA9IFRSVUU7 CitDUkVBVEUgVEFCTEUgc29tZV90MSAoYyBJTlQsIExJS0Ugc29tZV90IElOQ0xVRElORyBUUklH R0VSUyBJTkNMVURJTkcgQ09NTUVOVFMpOworXGQrIHNvbWVfdDEKIERST1AgVEFCTEUgc29tZV90 OworRFJPUCBUQUJMRSBzb21lX3QxOwogCiAtLSBib2d1cyBjYXNlcwogQ1JFQVRFIFRSSUdHRVIg ZXJyb3JfdXBkX2FuZF9jb2wgQkVGT1JFIFVQREFURSBPUiBVUERBVEUgT0YgYSBPTiBtYWluX3Rh YmxlCkBAIC02MjEsNiArNjUyLDggQEAgRk9SIEVBQ0ggUk9XIEVYRUNVVEUgUFJPQ0VEVVJFIHZp ZXdfdHJpZ2dlcignaW5zdGVhZF9vZl91cGQnKTsKIENSRUFURSBUUklHR0VSIGluc3RlYWRfb2Zf ZGVsZXRlX3RyaWcgSU5TVEVBRCBPRiBERUxFVEUgT04gbWFpbl92aWV3CiBGT1IgRUFDSCBST1cg RVhFQ1VURSBQUk9DRURVUkUgdmlld190cmlnZ2VyKCdpbnN0ZWFkX29mX2RlbCcpOwogCitDUkVB VEUgVEFCTEUgbWFpbl92aWV3X3RhYmxlKExJS0UgbWFpbl92aWV3IElOQ0xVRElORyBUUklHR0VS Uyk7IC0tZXJyb3IKKwogLS0gVmFsaWQgQkVGT1JFIHN0YXRlbWVudCBWSUVXIHRyaWdnZXJzCiBD UkVBVEUgVFJJR0dFUiBiZWZvcmVfaW5zX3N0bXRfdHJpZyBCRUZPUkUgSU5TRVJUIE9OIG1haW5f dmlldwogRk9SIEVBQ0ggU1RBVEVNRU5UIEVYRUNVVEUgUFJPQ0VEVVJFIHZpZXdfdHJpZ2dlcign YmVmb3JlX3ZpZXdfaW5zX3N0bXQnKTsKQEAgLTEyMTQsOSArMTI0NywxNCBAQCBjcmVhdGUgdmll dyBteV92aWV3IGFzIHNlbGVjdCAqIGZyb20gbXlfdGFibGU7CiBjcmVhdGUgZnVuY3Rpb24gbXlf dHJpZ2dlcl9mdW5jdGlvbigpIHJldHVybnMgdHJpZ2dlciBhcyAkJCBiZWdpbiBlbmQ7ICQkIGxh bmd1YWdlIHBscGdzcWw7CiBjcmVhdGUgdHJpZ2dlciBteV90cmlnZ2VyIGFmdGVyIHVwZGF0ZSBv biBteV92aWV3IHJlZmVyZW5jaW5nIG9sZCB0YWJsZSBhcyBvbGRfdGFibGUKICAgIGZvciBlYWNo IHN0YXRlbWVudCBleGVjdXRlIHByb2NlZHVyZSBteV90cmlnZ2VyX2Z1bmN0aW9uKCk7Ci1kcm9w IGZ1bmN0aW9uIG15X3RyaWdnZXJfZnVuY3Rpb24oKTsKK2NyZWF0ZSB0cmlnZ2VyIG15X3RyaWdn ZXIxIGJlZm9yZSB1cGRhdGUgb2YgaSBvbiBteV92aWV3CisgICBmb3IgZWFjaCBzdGF0ZW1lbnQg ZXhlY3V0ZSBwcm9jZWR1cmUgbXlfdHJpZ2dlcl9mdW5jdGlvbigpOworY3JlYXRlIHRhYmxlIG15 X3ZpZXdfY29weShMSUtFIG15X3ZpZXcgaW5jbHVkaW5nIHRyaWdnZXJzKTsKK1xkIG15X3ZpZXdf Y29weQogZHJvcCB2aWV3IG15X3ZpZXc7CiBkcm9wIHRhYmxlIG15X3RhYmxlOworZHJvcCB0YWJs ZSBteV92aWV3X2NvcHk7Citkcm9wIGZ1bmN0aW9uIG15X3RyaWdnZXJfZnVuY3Rpb24oKTsKIAog LS0KIC0tIFZlcmlmeSBjYXNlcyB0aGF0IGFyZSB1bnN1cHBvcnRlZCB3aXRoIHBhcnRpdGlvbmVk IHRhYmxlcwpAQCAtMTYwOCw2ICsxNjQ2LDEzIEBAIGNyZWF0ZSBjb25zdHJhaW50IHRyaWdnZXIg cGFydGVkX3RyaWdfdHdvIGFmdGVyIGluc2VydCBvbiBwYXJ0ZWRfY29uc3RyCiAgIGZvciBlYWNo IHJvdyB3aGVuIChiYXJrKG5ldy5iKSBBTkQgbmV3LmEgJSAyID0gMSkKICAgZXhlY3V0ZSBwcm9j ZWR1cmUgdHJpZ2dlcl9ub3RpY2VfYWIoKTsKIAorY3JlYXRlIHRhYmxlIHBhcnRlZF9jb25zdHJf Y29weSAobGlrZSBwYXJ0ZWRfY29uc3RyIGluY2x1ZGluZyBhbGwpOworc2VsZWN0ICBwZ19nZXRf dHJpZ2dlcmRlZihvaWQpCitmcm9tICAgIHBnX3RyaWdnZXIKK3doZXJlICAgbm90IHRnaXNpbnRl cm5hbCBhbmQgdGdyZWxpZCBpbiAoJ3BhcnRlZF9jb25zdHJfY29weSc6OnJlZ2NsYXNzLCAncGFy dGVkX2NvbnN0cic6OnJlZ2NsYXNzKQorb3JkZXIgYnkgdGduYW1lOworZHJvcCB0YWJsZSBwYXJ0 ZWRfY29uc3RyX2NvcHk7CisKIC0tIFRoZSBpbW1lZGlhdGUgY29uc3RyYWludCBpcyBmaXJlZCBp bW1lZGlhdGVseTsgdGhlIFdIRU4gY2xhdXNlIG9mIHRoZQogLS0gZGVmZXJyZWQgY29uc3RyYWlu dCBpcyBhbHNvIGNhbGxlZCBpbW1lZGlhdGVseS4gIFRoZSBkZWZlcnJlZCBjb25zdHJhaW50CiAt LSBpcyBmaXJlZCBhdCBjb21taXQgdGltZS4KQEAgLTIyODIsNiArMjMyNywxMCBAQCBjcmVhdGUg dHJpZ2dlciBpb2NkdV90dF9wYXJ0ZWRfdXBkYXRlX3RyaWcKICAgYWZ0ZXIgdXBkYXRlIG9uIGlv Y2R1X3R0X3BhcnRlZCByZWZlcmVuY2luZyBvbGQgdGFibGUgYXMgb2xkX3RhYmxlIG5ldyB0YWJs ZSBhcyBuZXdfdGFibGUKICAgZm9yIGVhY2ggc3RhdGVtZW50IGV4ZWN1dGUgcHJvY2VkdXJlIGR1 bXBfdXBkYXRlKCk7CiAKK0NSRUFURSBUQUJMRSBpb2NkdV90dF9wYXJ0ZWRfY29weShMSUtFIGlv Y2R1X3R0X3BhcnRlZCBJTkNMVURJTkcgVFJJR0dFUlMpOworXGQgaW9jZHVfdHRfcGFydGVkX2Nv cHkKK0RST1AgVEFCTEUgaW9jZHVfdHRfcGFydGVkX2NvcHk7CisKIC0tIGluc2VydHMgb25seQog aW5zZXJ0IGludG8gaW9jZHVfdHRfcGFydGVkIHZhbHVlcyAoMSwgJ0FBQScpLCAoMiwgJ0JCQicp CiAgIG9uIGNvbmZsaWN0IChhKSBkbwpAQCAtMjczOSw2ICsyNzg4LDI1IEBAIGVuZDsKICQkOwog YWx0ZXIgZnVuY3Rpb24gd2hvYW1pKCkgb3duZXIgdG8gcmVncmVzc19mbl9vd25lcjsKIAorLS0g Q1JFQVRFIFRBQkxFIExJS0UgSU5DTFVESU5HIFRSSUdHRVJTIGZvciBjb25zdHJhaW50IHRyaWdn ZXIKK2NyZWF0ZSBzY2hlbWEgdGVzdF90cmlnOworY3JlYXRlIHRhYmxlIHRlc3RfdHJpZy50cmln X3QxIChpZCBpbnRlZ2VyKTsKK2NyZWF0ZSB0YWJsZSB0ZXN0X3RyaWcudHJpZ190MiAoaWQgaW50 ZWdlcik7CithbHRlciBmdW5jdGlvbiB3aG9hbWkoKSBzZXQgc2NoZW1hIHRlc3RfdHJpZzsKKwor Y3JlYXRlIGNvbnN0cmFpbnQgdHJpZ2dlciBjb25fdHJpZ190ZXN0IGFmdGVyIGluc2VydCBvbiB0 ZXN0X3RyaWcudHJpZ190MQorZnJvbSB0ZXN0X3RyaWcudHJpZ190MgorZGVmZXJyYWJsZSBpbml0 aWFsbHkgZGVmZXJyZWQKK2ZvciBlYWNoIHJvdworZXhlY3V0ZSBmdW5jdGlvbiB0ZXN0X3RyaWcu d2hvYW1pKCk7CisKK2NyZWF0ZSB0YWJsZSB0cmlnX3QxX2NvcHkobGlrZSB0ZXN0X3RyaWcudHJp Z190MSBpbmNsdWRpbmcgdHJpZ2dlcnMpOworc2VsZWN0IHBnX2dldF90cmlnZ2VyZGVmKG9pZCkg ZnJvbSBwZ190cmlnZ2VyIHdoZXJlIHRncmVsaWQgPSAndHJpZ190MV9jb3B5Jzo6cmVnY2xhc3M7 CisKK2FsdGVyIGZ1bmN0aW9uIHRlc3RfdHJpZy53aG9hbWkoKSBzZXQgc2NoZW1hIHB1YmxpYzsK K2Ryb3AgdGFibGUgdGVzdF90cmlnLnRyaWdfdDEsIHRlc3RfdHJpZy50cmlnX3QyLCB0cmlnX3Qx X2NvcHk7Citkcm9wIHNjaGVtYSB0ZXN0X3RyaWc7CisKIGNyZWF0ZSB0YWJsZSBkZWZlcl90cmln IChpZCBpbnRlZ2VyKTsKIGdyYW50IGluc2VydCBvbiBkZWZlcl90cmlnIHRvIHB1YmxpYzsKIGNy ZWF0ZSBjb25zdHJhaW50IHRyaWdnZXIgd2hvYW1pIGFmdGVyIGluc2VydCBvbiBkZWZlcl90cmln Ci0tIAoyLjM0LjEKCg== --00000000000033f5b0064a5f4e75--