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 1vVL4S-000inI-1t for pgsql-hackers@arkaria.postgresql.org; Tue, 16 Dec 2025 02:45:53 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vVL4Q-003gTa-0y for pgsql-hackers@arkaria.postgresql.org; Tue, 16 Dec 2025 02:45:51 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vVL4P-003gTL-32 for pgsql-hackers@lists.postgresql.org; Tue, 16 Dec 2025 02:45:50 +0000 Received: from mail-vs1-xe2e.google.com ([2607:f8b0:4864:20::e2e]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vVL4I-000yER-28 for pgsql-hackers@postgresql.org; Tue, 16 Dec 2025 02:45:45 +0000 Received: by mail-vs1-xe2e.google.com with SMTP id ada2fe7eead31-5dfd4a02638so1121800137.2 for ; Mon, 15 Dec 2025 18:45:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765853140; x=1766457940; 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=51EjXYlQPD9uaPwZrT4XLkgOgqM+6GNcVoz9aab8oLU=; b=GKulwjpFpxNNh/6IwlvTdIK7lKXQFrvBDu178iPIEbzPKraHaXMuIJIVuc1wo+I1po Bn6X430VoN1L8x+tIl+MU2rI7DI4PLwTGlV/MmLizMNbzNDNrCkhTiqJfqjq/nENHL5z 9FYmO282D88tBP80uIGDZTarAdtnz1b82LxOJ70cKbdRFudblLYD6hzPlzt6msxoSqdm 0kVyUnxWdyTg8y0gHq4nP8zv32qXwNvEQ/awa+HlNikG9yjRhDgF2WPz1iqMKO+kXakI S3E3cNTLCBpHbbVLzCtxBMCTF2pGaf0fszR2pPUGH1vEc6O7vSvOqVPWzFRAViFpcNvc ZzGQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765853140; x=1766457940; 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=51EjXYlQPD9uaPwZrT4XLkgOgqM+6GNcVoz9aab8oLU=; b=CiQvkt0qDGrQ16f50G0j4/ssLiIWfwVTEWv6wUwMP+lnWNBJ1P80gIaJtfVipqfTXz GLLNWUdOvvz/QCjOluFvPkx9D4kmTCPAvkp2RJBykHpNhUl4q/MoTk6BSeabdGGhIZg8 PwFClFpgJWYqwIr6wLj+iSGACBLH0mgpKOIcVn3g34veta3a8qy+rZWK9zYrnS9KB0DO /ycJgMTPKe8gyPuHyXtR9LyEZf415ZfCVp6zSzHNpqYiV00Pr1AULlcnd4PD+fP/uZRJ LNLYl9dobH38BFw0u4dQUeyY1OdWcFQy9x8DIKf6UKfIz5wJ+//+QxmYyrbOWu0CZAYv Mkng== X-Forwarded-Encrypted: i=1; AJvYcCWt3DZ4UiYPWyBPC3e6AvfRTZeHRtSLj6K2B7vHwasZCQDm/1cwh0wvWoWqEDwjPvFBUuTkPFboUXOJLvmw@postgresql.org X-Gm-Message-State: AOJu0YyPhLqrYeaiYisTEjBEcaOzVAmGzwhngPnS9rJrKdeWK5TpUi7S gX5FyX9W+AZTse8HF1UDZ/jY2CkgLlkROSUoWJL1nwc4akRP2I9GmVJKe0RE2L6aUhqHX+zwTeu JpXtu/nDtEyb4weKBDxxDo7ppdO5dbLW84PJCwTDvXQ== X-Gm-Gg: AY/fxX5+bA73PgeFC6zUKP8MlRhkwppgzdafKv+B00ZDcKwwEyaD296Rbj0J6PhAGd8 KZd4Ta504WR0/dufCZ2XfsO7aBaBOpdW3KzjAY/nSdj3DmVEazgWo5GdS46aF0gA4O/62cbmB4F wWwSsr/IJDxqH1GF73LwlAQXYXl9qwKH0WJpusYnGAw3Vhp8+aP1KJ6+vfDRnQF73buOiBDFYjI SsVYpsrjBfqISJajmQnbvzq1yd5sqKIt7OCwG/0LAfqUTnthWGOdVxFDyj1DvpWGDBtgA5CMmkK RbSCe6+EL0+qAvRdVKerDJ90s0mO3o0dGAPL2VdmHYKEyw4PVrnrGi9uVjKguCfbeUHNZN0cfmp T6CMvYUsogZF/iewECQ1CA2MaNhBmPtuRsG+FMZy9Y0ofS2Aqz86lEHO6jxHIEgXvWoouS9+lo9 52A7ILK01+ X-Google-Smtp-Source: AGHT+IGsuGNxnXkSSnbNNvNYa3lYakcT1m+7vPr+/So3cK8cjecQVkfqDmaHtm1SYlVJOFP9PkReerBE9SNB9lVpGHM= X-Received: by 2002:a05:6102:6b0a:b0:5db:f440:f1b7 with SMTP id ada2fe7eead31-5e8277e3863mr4331945137.32.1765853140179; Mon, 15 Dec 2025 18:45:40 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: jian he Date: Tue, 16 Dec 2025 10:45:04 +0800 X-Gm-Features: AQt7F2ofIbOXSo4e4rXUHCBVi9xr1ykMY-xd4c2pwcfBBPQlAJ6Z3uNqFB8wYQQ Message-ID: Subject: Re: create table like including storage parameter To: Euler Taveira Cc: Nathan Bossart , "David G. Johnston" , pgsql-hackers Content-Type: multipart/mixed; boundary="0000000000002579c6064608b940" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000002579c6064608b940 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Dec 16, 2025 at 1:52=E2=80=AFAM Euler Taveira w= rote: > > I started reviewing this patch. Why don't you reuse untransformRelOptions= ()? > Even if this function is used by various extensions [1][2], that's not an > excuse to duplicate code. yech, duplicate code is not good. I encountered the same issue in the CAST DEFAULT patch. I guess I was posting it in the "post early post often" spi= rit for the rebase. > This v6 is your v5 plus my suggestions. > your suggestions are great. I have incorporated all the changes you proposed. in transformTableLikeClause, we have: if (relation->rd_rel->relkind !=3D RELKIND_RELATION && relation->rd_rel->relkind !=3D RELKIND_VIEW && relation->rd_rel->relkind !=3D RELKIND_MATVIEW && relation->rd_rel->relkind !=3D RELKIND_COMPOSITE_TYPE && relation->rd_rel->relkind !=3D RELKIND_FOREIGN_TABLE && relation->rd_rel->relkind !=3D RELKIND_PARTITIONED_TABLE) ereport(ERROR, (errcode(ERRCODE_WRONG_OBJECT_TYPE), errmsg("relation \"%s\" is invalid in LIKE clause", RelationGetRelationName(relation)), errdetail_relkind_not_supported(relation->rd_rel->relkind)= )); except RELKIND_RELATION, RELKIND_MATVIEW can also specify storage parameter= s, I added a test for it too. to test CREATE FOREIGN LIKE will silently ignore INCLUDING PARAMETERS, i al= so slightly modified create_table_like.sql. The last SELECT query output is too wide, to make it more readable, I have to use \gx. Below is the commit message I have drafted: ---------------------------------- Add INCLUDING PARAMETERS to CREATE TABLE LIKE Introduce the PARAMETERS option to copy parameters when using CREATE TABLE = LIKE. Currently, this primarily applies to the storage parameters, but in the fut= ure, it may encompass other kind parameters in the table. Since storage parameters are not in the standard, INCLUDING PARAMETERS does= not comply with the standard. Also because foreign tables cannot specify stora= ge parameters, CREATE FOREIGN TABLE LIKE will silently ignore INCLUDING PARAME= TERS. This makes creating a new table via CREATE TABLE LIKE more convenient, as t= he user would otherwise have to manually specify every storage parameter. It i= s a further step toward making a new table created with CREATE TABLE LIKE more identical to the original table. Author: jian he Reviewed-by: Euler Taveira Reviewed-by: Nathan Bossart Reviewed-by: David G. Johnston (delete this line later) commitfest: https://commitfest.postgresql.org/patch/6088 discussion: https://postgr.es/m/CACJufxHr=3DnKEsS66M7rTHgB+mXdQ948=3D_eJ1jz= tAc7PT-eJefA@mail.gmail.com ---------------------------------- -- jian https://www.enterprisedb.com/ --0000000000002579c6064608b940 Content-Type: text/x-patch; charset="US-ASCII"; name="v7-0001-Add-INCLUDING-PARAMETERS-to-CREATE-TABLE-LIKE.patch" Content-Disposition: attachment; filename="v7-0001-Add-INCLUDING-PARAMETERS-to-CREATE-TABLE-LIKE.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mj7z6crd0 RnJvbSAwYTFiYmUxNDAyMTMxNjhkYzhkZjBiNjRlMjlkN2E4MTRjZGVjZDA2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMTYgRGVjIDIwMjUgMTA6MzY6NTAgKzA4MDAKU3ViamVjdDogW1BBVENIIHY3 IDEvMV0gQWRkIElOQ0xVRElORyBQQVJBTUVURVJTIHRvIENSRUFURSBUQUJMRSBMSUtFCgpJbnRy b2R1Y2UgdGhlIFBBUkFNRVRFUlMgb3B0aW9uIHRvIGNvcHkgcGFyYW1ldGVycyB3aGVuIHVzaW5n IENSRUFURSBUQUJMRSBMSUtFLgpDdXJyZW50bHksIHRoaXMgcHJpbWFyaWx5IGFwcGxpZXMgdG8g dGhlIHN0b3JhZ2UgcGFyYW1ldGVycywgYnV0IGluIHRoZSBmdXR1cmUsCml0IG1heSBlbmNvbXBh c3Mgb3RoZXIga2luZCBwYXJhbWV0ZXJzIGluIHRoZSB0YWJsZS4KClNpbmNlIHN0b3JhZ2UgcGFy YW1ldGVycyBhcmUgbm90IGluIHRoZSBzdGFuZGFyZCwgSU5DTFVESU5HIFBBUkFNRVRFUlMgZG9l cyBub3QKY29tcGx5IHdpdGggdGhlIHN0YW5kYXJkLiAgQWxzbyBiZWNhdXNlIGZvcmVpZ24gdGFi bGVzIGNhbm5vdCBzcGVjaWZ5IHN0b3JhZ2UKcGFyYW1ldGVycywgQ1JFQVRFIEZPUkVJR04gVEFC TEUgTElLRSB3aWxsIHNpbGVudGx5IGlnbm9yZSBJTkNMVURJTkcgUEFSQU1FVEVSUy4KClRoaXMg bWFrZXMgY3JlYXRpbmcgYSBuZXcgdGFibGUgdmlhIENSRUFURSBUQUJMRSBMSUtFIG1vcmUgY29u dmVuaWVudCwgYXMgdGhlCnVzZXIgd291bGQgb3RoZXJ3aXNlIGhhdmUgdG8gbWFudWFsbHkgc3Bl Y2lmeSBldmVyeSBzdG9yYWdlIHBhcmFtZXRlci4gSXQgaXMgYQpmdXJ0aGVyIHN0ZXAgdG93YXJk IG1ha2luZyBhIG5ldyB0YWJsZSBjcmVhdGVkIHdpdGggQ1JFQVRFIFRBQkxFIExJS0UgbW9yZQpp ZGVudGljYWwgdG8gdGhlIG9yaWdpbmFsIHRhYmxlLgoKQXV0aG9yOiBqaWFuIGhlIDxqaWFuLnVu aXZlcnNhbGl0eUBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBFdWxlciBUYXZlaXJhIDxldWxlckBl dWxlcnRvLmNvbT4KUmV2aWV3ZWQtYnk6IE5hdGhhbiBCb3NzYXJ0IDxuYXRoYW5kYm9zc2FydEBn bWFpbC5jb20+ClJldmlld2VkLWJ5OiBEYXZpZCBHLiBKb2huc3RvbiA8ZGF2aWQuZy5qb2huc3Rv bkBnbWFpbC5jb20+CgooZGVsZXRlIHRoaXMgbGluZSBsYXRlcikgY29tbWl0ZmVzdDogaHR0cHM6 Ly9jb21taXRmZXN0LnBvc3RncmVzcWwub3JnL3BhdGNoLzYwODgKZGlzY3Vzc2lvbjogaHR0cHM6 Ly9wb3N0Z3IuZXMvbS9DQUNKdWZ4SHI9bktFc1M2Nk03clRIZ0IrbVhkUTk0OD1fZUoxanp0QWM3 UFQtZUplZkFAbWFpbC5nbWFpbC5jb20KLS0tCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJs ZS5zZ21sICAgICAgICAgICAgfCAxNCArKystCiBzcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3Jl bG9wdGlvbnMuYyAgICAgICAgfCAxNyArKystCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAg ICAgICAgICAgICAgICAgICAgfCAgNSArLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxj bWQuYyAgICAgICAgICAgIHwgNzcgKysrKysrKysrKysrKysrKysrLQogc3JjL2luY2x1ZGUvYWNj ZXNzL3JlbG9wdGlvbnMuaCAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL2luY2x1ZGUvbm9kZXMv cGFyc2Vub2Rlcy5oICAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL2luY2x1ZGUvcGFyc2VyL2t3 bGlzdC5oICAgICAgICAgICAgICAgICAgIHwgIDEgKwogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvY3Jl YXRlX3RhYmxlX2xpa2Uub3V0ICAgIHwgNTUgKysrKysrKysrKysrLQogc3JjL3Rlc3QvcmVncmVz cy9zcWwvY3JlYXRlX3RhYmxlX2xpa2Uuc3FsICAgIHwgMzkgKysrKysrKysrLQogOSBmaWxlcyBj aGFuZ2VkLCAyMDEgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVh dGVfdGFibGUuc2dtbAppbmRleCA3N2M1YTc2M2Q0NS4uZDY0NWFiNGVkMzEgMTAwNjQ0Ci0tLSBh L2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3Jl Zi9jcmVhdGVfdGFibGUuc2dtbApAQCAtODgsNyArODgsNyBAQCBjbGFzcz0icGFyYW1ldGVyIj5y ZWZlcmVudGlhbF9hY3Rpb248L3JlcGxhY2VhYmxlPiBdIFsgT04gVVBEQVRFIDxyZXBsYWNlYWJs ZSBjbAogCiA8cGhyYXNlPmFuZCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bGlrZV9v cHRpb248L3JlcGxhY2VhYmxlPiBpczo8L3BocmFzZT4KIAoteyBJTkNMVURJTkcgfCBFWENMVURJ TkcgfSB7IENPTU1FTlRTIHwgQ09NUFJFU1NJT04gfCBDT05TVFJBSU5UUyB8IERFRkFVTFRTIHwg R0VORVJBVEVEIHwgSURFTlRJVFkgfCBJTkRFWEVTIHwgU1RBVElTVElDUyB8IFNUT1JBR0UgfCBB TEwgfQoreyBJTkNMVURJTkcgfCBFWENMVURJTkcgfSB7IENPTU1FTlRTIHwgQ09NUFJFU1NJT04g fCBDT05TVFJBSU5UUyB8IERFRkFVTFRTIHwgR0VORVJBVEVEIHwgSURFTlRJVFkgfCBJTkRFWEVT IHwgU1RBVElTVElDUyB8IFNUT1JBR0UgfCBQQVJBTUVURVJTIHwgQUxMIH0KIAogPHBocmFzZT5h bmQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBhcnRpdGlvbl9ib3VuZF9zcGVjPC9y ZXBsYWNlYWJsZT4gaXM6PC9waHJhc2U+CiAKQEAgLTc1Myw2ICs3NTMsMTggQEAgV0lUSCAoIE1P RFVMVVMgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm51bWVyaWNfbGl0ZXJhbDwvcmVw bGFjZWFibGU+LCBSRU0KICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgICA8L3Zhcmxpc3RlbnRy eT4KIAorICAgICAgIDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1jcmVhdGV0YWJsZS1wYXJtcy1saWtl LW9wdC1zdG9yYWdlLXBhcmFtdGVyIj4KKyAgICAgICAgPHRlcm0+PGxpdGVyYWw+SU5DTFVESU5H IFBBUkFNRVRFUlM8L2xpdGVyYWw+PC90ZXJtPgorICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAg ICA8cGFyYT4KKyAgICAgICAgICBBbGwgdGFibGUgcGFyYW1ldGVycywgc3VjaCBhcyB0aGUgPGxp dGVyYWw+c3RvcmFnZSBwYXJhbWV0ZXI8L2xpdGVyYWw+CisgICAgICAgICAgc2V0dGluZ3Mgb2Yg dGhlIHNvdXJjZSB0YWJsZSwgd2lsbCBiZSBjb3BpZWQuICBGb3IgdGFibGUgc3RvcmFnZQorICAg ICAgICAgIHBhcmFtZXRlcnMsIHNlZSA8eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRldGFibGUtc3Rv cmFnZS1wYXJhbWV0ZXJzIi8+CisgICAgICAgICAgYmVsb3cgZm9yIG1vcmUgaW5mb3JtYXRpb24u CisgICAgICAgICA8L3BhcmE+CisgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgPC92YXJsaXN0 ZW50cnk+CisKICAgICAgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRldGFibGUtcGFybXMt bGlrZS1vcHQtc3RhdGlzdGljcyI+CiAgICAgICAgIDx0ZXJtPjxsaXRlcmFsPklOQ0xVRElORyBT VEFUSVNUSUNTPC9saXRlcmFsPjwvdGVybT4KICAgICAgICAgPGxpc3RpdGVtPgpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9yZWxvcHRpb25zLmMgYi9zcmMvYmFja2VuZC9h Y2Nlc3MvY29tbW9uL3JlbG9wdGlvbnMuYwppbmRleCAzMTkyNmQ4YTM2OC4uNTdjMzM3Mzc3ZjUg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vcmVsb3B0aW9ucy5jCisrKyBi L3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vcmVsb3B0aW9ucy5jCkBAIC0xMzU4LDYgKzEzNTgs MTUgQEAgdHJhbnNmb3JtUmVsT3B0aW9ucyhEYXR1bSBvbGRPcHRpb25zLCBMaXN0ICpkZWZMaXN0 LCBjb25zdCBjaGFyICpuYW1lU3BhY2UsCiAgKi8KIExpc3QgKgogdW50cmFuc2Zvcm1SZWxPcHRp b25zKERhdHVtIG9wdGlvbnMpCit7CisJcmV0dXJuIHVudHJhbnNmb3JtUmVsT3B0aW9uc0V4dGVu ZGVkKG9wdGlvbnMsIE5VTEwpOworfQorCisvKgorICogU2FtZSBhcyB1bnRyYW5zZm9ybVJlbE9w dGlvbnMoKSBidXQgaW5jbHVkZXMgYSBuYW1lc3BhY2UgaW50byBEZWZFbGVtLgorICovCitMaXN0 ICoKK3VudHJhbnNmb3JtUmVsT3B0aW9uc0V4dGVuZGVkKERhdHVtIG9wdGlvbnMsIGNoYXIgKm5h bWVTcGFjZSkKIHsKIAlMaXN0CSAgICpyZXN1bHQgPSBOSUw7CiAJQXJyYXlUeXBlICAqYXJyYXk7 CkBAIC0xMzg2LDcgKzEzOTUsMTMgQEAgdW50cmFuc2Zvcm1SZWxPcHRpb25zKERhdHVtIG9wdGlv bnMpCiAJCQkqcCsrID0gJ1wwJzsKIAkJCXZhbCA9IChOb2RlICopIG1ha2VTdHJpbmcocCk7CiAJ CX0KLQkJcmVzdWx0ID0gbGFwcGVuZChyZXN1bHQsIG1ha2VEZWZFbGVtKHMsIHZhbCwgLTEpKTsK KworCQlpZiAobmFtZVNwYWNlID09IE5VTEwpCisJCQlyZXN1bHQgPSBsYXBwZW5kKHJlc3VsdCwg bWFrZURlZkVsZW0ocywgdmFsLCAtMSkpOworCQllbHNlCisJCQlyZXN1bHQgPSBsYXBwZW5kKHJl c3VsdCwgbWFrZURlZkVsZW1FeHRlbmRlZChuYW1lU3BhY2UsIHMsIHZhbCwKKwkJCQkJCQkJCQkJ CQkJIERFRkVMRU1fVU5TUEVDLAorCQkJCQkJCQkJCQkJCQkgLTEpKTsKIAl9CiAKIAlyZXR1cm4g cmVzdWx0OwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNr ZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggMjhmNGUxMWUzMGYuLjczMmNiZThkYmFiIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9n cmFtLnkKQEAgLTc2NSw3ICs3NjUsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdT ZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCU9SREVS IE9SRElOQUxJVFkgT1RIRVJTIE9VVF9QIE9VVEVSX1AKIAlPVkVSIE9WRVJMQVBTIE9WRVJMQVkg T1ZFUlJJRElORyBPV05FRCBPV05FUgogCi0JUEFSQUxMRUwgUEFSQU1FVEVSIFBBUlNFUiBQQVJU SUFMIFBBUlRJVElPTiBQQVJUSVRJT05TIFBBU1NJTkcgUEFTU1dPUkQgUEFUSAorCVBBUkFMTEVM IFBBUkFNRVRFUiBQQVJBTUVURVJTIFBBUlNFUiBQQVJUSUFMIFBBUlRJVElPTiBQQVJUSVRJT05T IFBBU1NJTkcgUEFTU1dPUkQgUEFUSAogCVBFUklPRCBQTEFDSU5HIFBMQU4gUExBTlMgUE9MSUNZ CiAJUE9TSVRJT04gUFJFQ0VESU5HIFBSRUNJU0lPTiBQUkVTRVJWRSBQUkVQQVJFIFBSRVBBUkVE IFBSSU1BUlkKIAlQUklPUiBQUklWSUxFR0VTIFBST0NFRFVSQUwgUFJPQ0VEVVJFIFBST0NFRFVS RVMgUFJPR1JBTSBQVUJMSUNBVElPTgpAQCAtNDI5Niw2ICs0Mjk2LDcgQEAgVGFibGVMaWtlT3B0 aW9uOgogCQkJCXwgSU5ERVhFUwkJCXsgJCQgPSBDUkVBVEVfVEFCTEVfTElLRV9JTkRFWEVTOyB9 CiAJCQkJfCBTVEFUSVNUSUNTCQl7ICQkID0gQ1JFQVRFX1RBQkxFX0xJS0VfU1RBVElTVElDUzsg fQogCQkJCXwgU1RPUkFHRQkJCXsgJCQgPSBDUkVBVEVfVEFCTEVfTElLRV9TVE9SQUdFOyB9CisJ CQkJfCBQQVJBTUVURVJTIAkJeyAkJCA9IENSRUFURV9UQUJMRV9MSUtFX1BBUkFNRVRFUlM7IH0K IAkJCQl8IEFMTAkJCQl7ICQkID0gQ1JFQVRFX1RBQkxFX0xJS0VfQUxMOyB9CiAJCTsKIApAQCAt MTgwODcsNiArMTgwODgsNyBAQCB1bnJlc2VydmVkX2tleXdvcmQ6CiAJCQl8IE9XTkVSCiAJCQl8 IFBBUkFMTEVMCiAJCQl8IFBBUkFNRVRFUgorCQkJfCBQQVJBTUVURVJTCiAJCQl8IFBBUlNFUgog CQkJfCBQQVJUSUFMCiAJCQl8IFBBUlRJVElPTgpAQCAtMTg3MTksNiArMTg3MjEsNyBAQCBiYXJl X2xhYmVsX2tleXdvcmQ6CiAJCQl8IE9XTkVSCiAJCQl8IFBBUkFMTEVMCiAJCQl8IFBBUkFNRVRF UgorCQkJfCBQQVJBTUVURVJTCiAJCQl8IFBBUlNFUgogCQkJfCBQQVJUSUFMCiAJCQl8IFBBUlRJ VElPTgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYyBiL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMKaW5kZXggMzc1YjQwYjI5YWYuLmM5MDU2 YzRmMjJlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jCisr KyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMKQEAgLTg4LDYgKzg4LDggQEAg dHlwZWRlZiBzdHJ1Y3QKIAlMaXN0CSAgICpma2NvbnN0cmFpbnRzOwkvKiBGT1JFSUdOIEtFWSBj b25zdHJhaW50cyAqLwogCUxpc3QJICAgKml4Y29uc3RyYWludHM7CS8qIGluZGV4LWNyZWF0aW5n IGNvbnN0cmFpbnRzICovCiAJTGlzdAkgICAqbGlrZWNsYXVzZXM7CS8qIExJS0UgY2xhdXNlcyB0 aGF0IG5lZWQgcG9zdC1wcm9jZXNzaW5nICovCisJTGlzdAkgICAqb3B0aW9uczsJCS8qIG9wdGlv bnMgZnJvbSBXSVRIIGNsYXVzZSwgdGFibGUgQU0gc3BlY2lmaWMKKwkJCQkJCQkJICogcGFyYW1l dGVycyAqLwogCUxpc3QJICAgKmJsaXN0OwkJCS8qICJiZWZvcmUgbGlzdCIgb2YgdGhpbmdzIHRv IGRvIGJlZm9yZQogCQkJCQkJCQkgKiBjcmVhdGluZyB0aGUgdGFibGUgKi8KIAlMaXN0CSAgICph bGlzdDsJCQkvKiAiYWZ0ZXIgbGlzdCIgb2YgdGhpbmdzIHRvIGRvIGFmdGVyIGNyZWF0aW5nCkBA IC0yNDgsNiArMjUwLDcgQEAgdHJhbnNmb3JtQ3JlYXRlU3RtdChDcmVhdGVTdG10ICpzdG10LCBj b25zdCBjaGFyICpxdWVyeVN0cmluZykKIAljeHQuZmtjb25zdHJhaW50cyA9IE5JTDsKIAljeHQu aXhjb25zdHJhaW50cyA9IE5JTDsKIAljeHQubGlrZWNsYXVzZXMgPSBOSUw7CisJY3h0Lm9wdGlv bnMgPSBzdG10LT5vcHRpb25zOwogCWN4dC5ibGlzdCA9IE5JTDsKIAljeHQuYWxpc3QgPSBOSUw7 CiAJY3h0LnBrZXkgPSBOVUxMOwpAQCAtMzcyLDYgKzM3NSw3IEBAIHRyYW5zZm9ybUNyZWF0ZVN0 bXQoQ3JlYXRlU3RtdCAqc3RtdCwgY29uc3QgY2hhciAqcXVlcnlTdHJpbmcpCiAJc3RtdC0+dGFi bGVFbHRzID0gY3h0LmNvbHVtbnM7CiAJc3RtdC0+Y29uc3RyYWludHMgPSBjeHQuY2tjb25zdHJh aW50czsKIAlzdG10LT5ubmNvbnN0cmFpbnRzID0gY3h0Lm5uY29uc3RyYWludHM7CisJc3RtdC0+ b3B0aW9ucyA9IGN4dC5vcHRpb25zOwogCiAJcmVzdWx0ID0gbGFwcGVuZChjeHQuYmxpc3QsIHN0 bXQpOwogCXJlc3VsdCA9IGxpc3RfY29uY2F0KHJlc3VsdCwgY3h0LmFsaXN0KTsKQEAgLTExMjIs OCArMTEyNiw4IEBAIHRyYW5zZm9ybVRhYmxlQ29uc3RyYWludChDcmVhdGVTdG10Q29udGV4dCAq Y3h0LCBDb25zdHJhaW50ICpjb25zdHJhaW50KQogICogdGFibGUgaGFzIGJlZW4gY3JlYXRlZC4K ICAqCiAgKiBTb21lIG9wdGlvbnMgYXJlIGlnbm9yZWQuICBGb3IgZXhhbXBsZSwgYXMgZm9yZWln biB0YWJsZXMgaGF2ZSBubyBzdG9yYWdlLAotICogdGhlc2UgSU5DTFVESU5HIG9wdGlvbnMgaGF2 ZSBubyBlZmZlY3Q6IFNUT1JBR0UsIENPTVBSRVNTSU9OLCBJREVOVElUWQotICogYW5kIElOREVY RVMuICBTaW1pbGFybHksIElOQ0xVRElORyBJTkRFWEVTIGlzIGlnbm9yZWQgZnJvbSBhIHZpZXcu CisgKiB0aGVzZSBJTkNMVURJTkcgb3B0aW9ucyBoYXZlIG5vIGVmZmVjdDogU1RPUkFHRSwgQ09N UFJFU1NJT04sIElERU5USVRZLAorICogSU5ERVhFUyBhbmQgUEFSQU1FVEVSUy4gIFNpbWlsYXJs eSwgSU5DTFVESU5HIElOREVYRVMgaXMgaWdub3JlZCBmcm9tIGEgdmlldy4KICAqLwogc3RhdGlj IHZvaWQKIHRyYW5zZm9ybVRhYmxlTGlrZUNsYXVzZShDcmVhdGVTdG10Q29udGV4dCAqY3h0LCBU YWJsZUxpa2VDbGF1c2UgKnRhYmxlX2xpa2VfY2xhdXNlKQpAQCAtMTI3MSw2ICsxMjc1LDc0IEBA IHRyYW5zZm9ybVRhYmxlTGlrZUNsYXVzZShDcmVhdGVTdG10Q29udGV4dCAqY3h0LCBUYWJsZUxp a2VDbGF1c2UgKnRhYmxlX2xpa2VfY2xhCiAJCX0KIAl9CiAKKwkvKiBMaWtld2lzZSwgY29weSBz dG9yYWdlIHBhcmFtZXRlcnMgaWYgcmVxdWVzdGVkICovCisJaWYgKCh0YWJsZV9saWtlX2NsYXVz ZS0+b3B0aW9ucyAmIENSRUFURV9UQUJMRV9MSUtFX1BBUkFNRVRFUlMpICYmCisJCSFjeHQtPmlz Zm9yZWlnbikKKwl7CisJCUhlYXBUdXBsZQl0dXBsZTsKKwkJRGF0dW0JCXJlbG9wdGlvbnM7CisJ CWJvb2wJCWlzbnVsbDsKKwkJT2lkCQkJcmVsaWQ7CisJCUxpc3QJICAgKm9sZG9wdGlvbnMgPSBO SUw7CisJCUxpc3QJICAgKm9sZHRvYXN0b3B0aW9ucyA9IE5JTDsKKworCQlyZWxpZCA9IFJlbGF0 aW9uR2V0UmVsaWQocmVsYXRpb24pOworCQl0dXBsZSA9IFNlYXJjaFN5c0NhY2hlMShSRUxPSUQs IE9iamVjdElkR2V0RGF0dW0ocmVsaWQpKTsKKworCQlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVw bGUpKQorCQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHJlbGF0aW9uICV1 IiwgcmVsaWQpOworCisJCXJlbG9wdGlvbnMgPSBTeXNDYWNoZUdldEF0dHIoUkVMT0lELCB0dXBs ZSwKKwkJCQkJCQkJCSBBbnVtX3BnX2NsYXNzX3JlbG9wdGlvbnMsICZpc251bGwpOworCQlpZiAo IWlzbnVsbCkKKwkJeworCQkJb2xkb3B0aW9ucyA9IHVudHJhbnNmb3JtUmVsT3B0aW9ucyhyZWxv cHRpb25zKTsKKworCQkJZm9yZWFjaF9ub2RlKERlZkVsZW0sIG9wdGlvbiwgb2xkb3B0aW9ucykK KwkJCQljeHQtPm9wdGlvbnMgPSBsYXBwZW5kKGN4dC0+b3B0aW9ucywgb3B0aW9uKTsKKwkJfQor CisJCVJlbGVhc2VTeXNDYWNoZSh0dXBsZSk7CisKKwkJLyogZ2V0IHRoZSB0b2FzdCByZWxhdGlv bidzIHJlbG9wdGlvbnMgKi8KKwkJaWYgKE9pZElzVmFsaWQocmVsYXRpb24tPnJkX3JlbC0+cmVs dG9hc3RyZWxpZCkpCisJCXsKKwkJCVJlbGF0aW9uCXRvYXN0cmVsOworCQkJT2lkCQkJdG9hc3Rp ZCA9IHJlbGF0aW9uLT5yZF9yZWwtPnJlbHRvYXN0cmVsaWQ7CisKKwkJCS8qCisJCQkgKiBUaGUg cmVmZXJlbmNlZCB0YWJsZSBpcyBhbHJlYWR5IGxvY2tlZDsgYWNxdWlyZSB0aGUgbG9jayBvbiBp dHMKKwkJCSAqIGFzc29jaWF0ZWQgVE9BU1QgcmVsYXRpb24gbm93LgorCQkJICovCisJCQl0b2Fz dHJlbCA9IHRhYmxlX29wZW4odG9hc3RpZCwgQWNjZXNzU2hhcmVMb2NrKTsKKworCQkJdHVwbGUg PSBTZWFyY2hTeXNDYWNoZTEoUkVMT0lELCBPYmplY3RJZEdldERhdHVtKHRvYXN0aWQpKTsKKwor CQkJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cGxlKSkKKwkJCQllbG9nKEVSUk9SLCAiY2FjaGUg bG9va3VwIGZhaWxlZCBmb3IgcmVsYXRpb24gJXUiLCB0b2FzdGlkKTsKKworCQkJcmVsb3B0aW9u cyA9IFN5c0NhY2hlR2V0QXR0cihSRUxPSUQsIHR1cGxlLCBBbnVtX3BnX2NsYXNzX3JlbG9wdGlv bnMsCisJCQkJCQkJCQkJICZpc251bGwpOworCQkJaWYgKCFpc251bGwpCisJCQl7CisJCQkJb2xk dG9hc3RvcHRpb25zID0gdW50cmFuc2Zvcm1SZWxPcHRpb25zRXh0ZW5kZWQocmVsb3B0aW9ucywg InRvYXN0Iik7CisKKwkJCQlmb3JlYWNoX25vZGUoRGVmRWxlbSwgb3B0aW9uLCBvbGR0b2FzdG9w dGlvbnMpCisJCQkJCWN4dC0+b3B0aW9ucyA9IGxhcHBlbmQoY3h0LT5vcHRpb25zLCBvcHRpb24p OworCQkJfQorCisJCQlSZWxlYXNlU3lzQ2FjaGUodHVwbGUpOworCisJCQkvKgorCQkJICogQ2xv c2UgdGhlIHRvYXN0IHJlbGF0aW9uLCBidXQga2VlcCBvdXIgQWNjZXNzU2hhcmVMb2NrIG9uIGl0 CisJCQkgKiB1bnRpbCB4YWN0IGNvbW1pdC4gIFRoYXQgd2lsbCBwcmV2ZW50IHNvbWVvbmUgZWxz ZSBmcm9tCisJCQkgKiBkZWxldGluZyBvciBBTFRFUmluZyB0aGUgcGFyZW50IFRPQVNUIGJlZm9y ZSB3ZSBjYW4gcnVuCisJCQkgKiBleHBhbmRUYWJsZUxpa2VDbGF1c2UuCisJCQkgKi8KKwkJCXRh YmxlX2Nsb3NlKHRvYXN0cmVsLCBOb0xvY2spOworCQl9CisJfQorCiAJLyoKIAkgKiBSZXByb2R1 Y2Ugbm90LW51bGwgY29uc3RyYWludHMsIGlmIGFueSwgYnkgY29weWluZyB0aGVtLiAgV2UgZG8g dGhpcwogCSAqIHJlZ2FyZGxlc3Mgb2Ygb3B0aW9ucyBnaXZlbi4KQEAgLTM4NjAsNiArMzkzMiw3 IEBAIHRyYW5zZm9ybUFsdGVyVGFibGVTdG10KE9pZCByZWxpZCwgQWx0ZXJUYWJsZVN0bXQgKnN0 bXQsCiAJY3h0LmZrY29uc3RyYWludHMgPSBOSUw7CiAJY3h0Lml4Y29uc3RyYWludHMgPSBOSUw7 CiAJY3h0Lmxpa2VjbGF1c2VzID0gTklMOworCWN4dC5vcHRpb25zID0gTklMOwogCWN4dC5ibGlz dCA9IE5JTDsKIAljeHQuYWxpc3QgPSBOSUw7CiAJY3h0LnBrZXkgPSBOVUxMOwpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3JlbG9wdGlvbnMuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9y ZWxvcHRpb25zLmgKaW5kZXggYTYwNGE0NzAyYzMuLjBjMjlmNWRmMjI5IDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9hY2Nlc3MvcmVsb3B0aW9ucy5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9y ZWxvcHRpb25zLmgKQEAgLTIzNiw2ICsyMzYsNyBAQCBleHRlcm4gRGF0dW0gdHJhbnNmb3JtUmVs T3B0aW9ucyhEYXR1bSBvbGRPcHRpb25zLCBMaXN0ICpkZWZMaXN0LAogCQkJCQkJCQkgY29uc3Qg Y2hhciAqbmFtZVNwYWNlLCBjb25zdCBjaGFyICpjb25zdCB2YWxpZG5zcHNbXSwKIAkJCQkJCQkJ IGJvb2wgYWNjZXB0T2lkc09mZiwgYm9vbCBpc1Jlc2V0KTsKIGV4dGVybiBMaXN0ICp1bnRyYW5z Zm9ybVJlbE9wdGlvbnMoRGF0dW0gb3B0aW9ucyk7CitleHRlcm4gTGlzdCAqdW50cmFuc2Zvcm1S ZWxPcHRpb25zRXh0ZW5kZWQoRGF0dW0gb3B0aW9ucywgY2hhciAqbmFtZVNwYWNlKTsKIGV4dGVy biBieXRlYSAqZXh0cmFjdFJlbE9wdGlvbnMoSGVhcFR1cGxlIHR1cGxlLCBUdXBsZURlc2MgdHVw ZGVzYywKIAkJCQkJCQkJYW1vcHRpb25zX2Z1bmN0aW9uIGFtb3B0aW9ucyk7CiBleHRlcm4gdm9p ZCAqYnVpbGRfcmVsb3B0aW9ucyhEYXR1bSByZWxvcHRpb25zLCBib29sIHZhbGlkYXRlLApkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9k ZXMvcGFyc2Vub2Rlcy5oCmluZGV4IGJjN2FkYmE0YTBmLi45ZTAyOTZhZWUzOSAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVz L3BhcnNlbm9kZXMuaApAQCAtNzk1LDYgKzc5NSw3IEBAIHR5cGVkZWYgZW51bSBUYWJsZUxpa2VP cHRpb24KIAlDUkVBVEVfVEFCTEVfTElLRV9JTkRFWEVTID0gMSA8PCA2LAogCUNSRUFURV9UQUJM RV9MSUtFX1NUQVRJU1RJQ1MgPSAxIDw8IDcsCiAJQ1JFQVRFX1RBQkxFX0xJS0VfU1RPUkFHRSA9 IDEgPDwgOCwKKwlDUkVBVEVfVEFCTEVfTElLRV9QQVJBTUVURVJTID0gMSA8PCA5LAogCUNSRUFU RV9UQUJMRV9MSUtFX0FMTCA9IFBHX0lOVDMyX01BWAogfSBUYWJsZUxpa2VPcHRpb247CiAKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCBiL3NyYy9pbmNsdWRlL3BhcnNl ci9rd2xpc3QuaAppbmRleCA5ZmRlNThmNTQxYy4uYWFkNjRlN2NjY2EgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0 LmgKQEAgLTMzNiw2ICszMzYsNyBAQCBQR19LRVlXT1JEKCJvd25lZCIsIE9XTkVELCBVTlJFU0VS VkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJvd25lciIsIE9XTkVSLCBVTlJF U0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJwYXJhbGxlbCIsIFBBUkFM TEVMLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJwYXJhbWV0 ZXIiLCBQQVJBTUVURVIsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKK1BHX0tFWVdP UkQoInBhcmFtZXRlcnMiLCBQQVJBTUVURVJTLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFC RUwpCiBQR19LRVlXT1JEKCJwYXJzZXIiLCBQQVJTRVIsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFS RV9MQUJFTCkKIFBHX0tFWVdPUkQoInBhcnRpYWwiLCBQQVJUSUFMLCBVTlJFU0VSVkVEX0tFWVdP UkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJwYXJ0aXRpb24iLCBQQVJUSVRJT04sIFVOUkVT RVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvY3JlYXRlX3RhYmxlX2xpa2Uub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9jcmVhdGVfdGFibGVfbGlrZS5vdXQKaW5kZXggZDNjMzVjMTQ4NDcuLmRkODkyOGJiMjYyIDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV90YWJsZV9saWtlLm91 dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV90YWJsZV9saWtlLm91dApA QCAtNjA1LDcgKzYwNSw4IEBAIENSRUFURSBUQUJMRSBjdGxfdGFibGUoYSBpbnQgUFJJTUFSWSBL RVksCiAgIGIgdmFyY2hhciBDT01QUkVTU0lPTiBwZ2x6LAogICBjIGludCBHRU5FUkFURUQgQUxX QVlTIEFTIChhICogMikgU1RPUkVELAogICBkIGJpZ2ludCBHRU5FUkFURUQgQUxXQVlTIEFTIElE RU5USVRZLAotICBlIGludCBERUZBVUxUIDEpOworICBlIGludCBERUZBVUxUIDEpCisgIFdJVEgg KGZpbGxmYWN0b3IgPSAxMDApOwogQ1JFQVRFIElOREVYIGN0bF90YWJsZV9hX2tleSBPTiBjdGxf dGFibGUoYSk7CiBDT01NRU5UIE9OIENPTFVNTiBjdGxfdGFibGUuYiBJUyAnQ29sdW1uIGInOwog Q1JFQVRFIFNUQVRJU1RJQ1MgY3RsX3RhYmxlX3N0YXQgT04gYSxiIEZST00gY3RsX3RhYmxlOwpA QCAtNjMwLDYgKzYzMSw3IEBAIFN0YXRpc3RpY3Mgb2JqZWN0czoKIE5vdC1udWxsIGNvbnN0cmFp bnRzOgogICAgICJjdGxfdGFibGVfYV9ub3RfbnVsbCIgTk9UIE5VTEwgImEiCiAgICAgImN0bF90 YWJsZV9kX25vdF9udWxsIiBOT1QgTlVMTCAiZCIKK09wdGlvbnM6IGZpbGxmYWN0b3I9MTAwCiAK IC0tIFRlc3QgRVhDTFVESU5HIEFMTAogQ1JFQVRFIEZPUkVJR04gVEFCTEUgY3RsX2ZvcmVpZ25f dGFibGUxKExJS0UgY3RsX3RhYmxlIEVYQ0xVRElORyBBTEwpIFNFUlZFUiBjdGxfczA7CkBAIC02 NjEsNyArNjYzLDcgQEAgU0VMRUNUIGF0dG5hbWUsIGF0dGNvbXByZXNzaW9uIEZST00gcGdfYXR0 cmlidXRlCiAoNSByb3dzKQogCiAtLSBUZXN0IElOQ0xVRElORyBBTEwKLS0tIElOREVYRVMsIElE RU5USVRZLCBDT01QUkVTU0lPTiwgU1RPUkFHRSBhcmUgbm90IGNvcGllZC4KKy0tIElOREVYRVMs IElERU5USVRZLCBDT01QUkVTU0lPTiwgU1RPUkFHRSwgUEFSQU1FVEVSUyBhcmUgbm90IGNvcGll ZC4KIENSRUFURSBGT1JFSUdOIFRBQkxFIGN0bF9mb3JlaWduX3RhYmxlMihMSUtFIGN0bF90YWJs ZSBJTkNMVURJTkcgQUxMKSBTRVJWRVIgY3RsX3MwOwogXGQrIGN0bF9mb3JlaWduX3RhYmxlMgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGb3JlaWdu IHRhYmxlICJwdWJsaWMuY3RsX2ZvcmVpZ25fdGFibGUyIgpAQCAtNjk5LDMgKzcwMSw1MiBAQCBE Uk9QIEZPUkVJR04gVEFCTEUgY3RsX2ZvcmVpZ25fdGFibGUxOwogRFJPUCBGT1JFSUdOIFRBQkxF IGN0bF9mb3JlaWduX3RhYmxlMjsKIERST1AgRk9SRUlHTiBEQVRBIFdSQVBQRVIgY3RsX2R1bW15 IENBU0NBREU7CiBOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIHNlcnZlciBjdGxfczAKKy0tQ1JF QVRFIFRBQkxFIExJS0Ugd2l0aCBQQVJBTUVURVJTCitDUkVBVEUgVEFCTEUgdF9zcCAoYSB0ZXh0 KSBXSVRIICgKKyAgZmlsbGZhY3RvciA9IDEwMCwKKyAgdG9hc3RfdHVwbGVfdGFyZ2V0ID0gMTI4 LAorICB2YWN1dW1faW5kZXhfY2xlYW51cCA9IGF1dG8sCisgIHRvYXN0LnZhY3V1bV9pbmRleF9j bGVhbnVwID0gYXV0bywKKyAgdmFjdXVtX3RydW5jYXRlID0gdHJ1ZSwKKyAgdG9hc3QudmFjdXVt X3RydW5jYXRlID0gZmFsc2UsCisgIGxvZ19hdXRvdmFjdXVtX21pbl9kdXJhdGlvbiA9IDEwMCwK KyAgdG9hc3QubG9nX2F1dG92YWN1dW1fbWluX2R1cmF0aW9uID0gMTAwKTsKK0NSRUFURSBUQUJM RSB0X3NwMSAoTElLRSB0X3NwIElOQ0xVRElORyBQQVJBTUVURVJTKSBXSVRIIChmaWxsZmFjdG9y ID0gMTAwKTsgLS0gZmFpbAorRVJST1I6ICBwYXJhbWV0ZXIgImZpbGxmYWN0b3IiIHNwZWNpZmll ZCBtb3JlIHRoYW4gb25jZQorQ1JFQVRFIFRBQkxFIFRfc3AxIChMSUtFIHRfc3AgRVhDTFVESU5H IFBBUkFNRVRFUlMpIFdJVEggKGZpbGxmYWN0b3IgPSAxMDApOyAtLSBvaworXGQrIHRfc3AxCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy50X3NwMSIKKyBD b2x1bW4gfCBUeXBlIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IHwgU3RvcmFnZSAg fCBTdGF0cyB0YXJnZXQgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0KKyBhICAgICAgfCB0ZXh0IHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwg ZXh0ZW5kZWQgfCAgICAgICAgICAgICAgfCAKK09wdGlvbnM6IGZpbGxmYWN0b3I9MTAwCisKK0NS RUFURSBUQUJMRSB0X3NwMiAoTElLRSB0X3NwIElOQ0xVRElORyBQQVJBTUVURVJTKSBXSVRIICgK KyAgcGFyYWxsZWxfd29ya2VycyA9IDMsCisgIHRvYXN0LmF1dG92YWN1dW1fdmFjdXVtX3RocmVz aG9sZCA9IDEwMSwKKyAgdG9hc3QuYXV0b3ZhY3V1bV92YWN1dW1fc2NhbGVfZmFjdG9yID0gMC4z KTsKK1NFTEVDVCBjLnJlbG5hbWUsIGMucmVsb3B0aW9ucywgdC5yZWxvcHRpb25zIGFzIHRvYXN0 X3JlbG9wdGlvbnMKKyAgRlJPTSBwZ19jYXRhbG9nLnBnX2NsYXNzIGMKKyAgTEVGVCBKT0lOIHBn X2NhdGFsb2cucGdfY2xhc3MgdCBPTiAoYy5yZWx0b2FzdHJlbGlkID0gdC5vaWQpCisgIFdIRVJF IGMucmVsbmFtZSBJTiAoJ3Rfc3AxJywgJ3Rfc3AyJykKKyAgT1JERVIgQlkgYy5yZWxuYW1lIFxn eAorLVsgUkVDT1JEIDEgXS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K K3JlbG5hbWUgICAgICAgICAgfCB0X3NwMQorcmVsb3B0aW9ucyAgICAgICB8IHtmaWxsZmFjdG9y PTEwMH0KK3RvYXN0X3JlbG9wdGlvbnMgfCAKKy1bIFJFQ09SRCAyIF0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCityZWxuYW1lICAgICAgICAgIHwgdF9zcDIKK3JlbG9w dGlvbnMgICAgICAgfCB7cGFyYWxsZWxfd29ya2Vycz0zLGZpbGxmYWN0b3I9MTAwLHRvYXN0X3R1 cGxlX3RhcmdldD0xMjgsdmFjdXVtX2luZGV4X2NsZWFudXA9YXV0byx2YWN1dW1fdHJ1bmNhdGU9 dHJ1ZSxsb2dfYXV0b3ZhY3V1bV9taW5fZHVyYXRpb249MTAwfQordG9hc3RfcmVsb3B0aW9ucyB8 IHthdXRvdmFjdXVtX3ZhY3V1bV90aHJlc2hvbGQ9MTAxLGF1dG92YWN1dW1fdmFjdXVtX3NjYWxl X2ZhY3Rvcj0wLjMsdmFjdXVtX2luZGV4X2NsZWFudXA9YXV0byx2YWN1dW1fdHJ1bmNhdGU9ZmFs c2UsbG9nX2F1dG92YWN1dW1fbWluX2R1cmF0aW9uPTEwMH0KKworQ1JFQVRFIE1BVEVSSUFMSVpF RCBWSUVXIG12X2R1bW15IFdJVEggKGZpbGxmYWN0b3IgPSAxMCkgQVMgU0VMRUNUIDEgQVMgYTsK K0NSRUFURSBUQUJMRSB0X3NwMyAoTElLRSBtdl9kdW1teSBJTkNMVURJTkcgUEFSQU1FVEVSUyk7 CitcZCsgdF9zcDMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFibGUgInB1 YmxpYy50X3NwMyIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBE ZWZhdWx0IHwgU3RvcmFnZSB8IFN0YXRzIHRhcmdldCB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8 ICAgICAgICAgIHwgICAgICAgICB8IHBsYWluICAgfCAgICAgICAgICAgICAgfCAKK09wdGlvbnM6 IGZpbGxmYWN0b3I9MTAKKworRFJPUCBNQVRFUklBTElaRUQgVklFVyBtdl9kdW1teTsKK0RST1Ag VEFCTEUgdF9zcCwgdF9zcDEsIHRfc3AyLCB0X3NwMzsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL2NyZWF0ZV90YWJsZV9saWtlLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Ny ZWF0ZV90YWJsZV9saWtlLnNxbAppbmRleCA5MzM4OWI1N2RiZi4uMjhmMmQyM2Y4NGMgMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV90YWJsZV9saWtlLnNxbAorKysgYi9z cmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfdGFibGVfbGlrZS5zcWwKQEAgLTI0OSw3ICsyNDks OCBAQCBDUkVBVEUgVEFCTEUgY3RsX3RhYmxlKGEgaW50IFBSSU1BUlkgS0VZLAogICBiIHZhcmNo YXIgQ09NUFJFU1NJT04gcGdseiwKICAgYyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIp IFNUT1JFRCwKICAgZCBiaWdpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyBJREVOVElUWSwKLSAgZSBp bnQgREVGQVVMVCAxKTsKKyAgZSBpbnQgREVGQVVMVCAxKQorICBXSVRIIChmaWxsZmFjdG9yID0g MTAwKTsKIAogQ1JFQVRFIElOREVYIGN0bF90YWJsZV9hX2tleSBPTiBjdGxfdGFibGUoYSk7CiBD T01NRU5UIE9OIENPTFVNTiBjdGxfdGFibGUuYiBJUyAnQ29sdW1uIGInOwpAQCAtMjY4LDcgKzI2 OSw3IEBAIFNFTEVDVCBhdHRuYW1lLCBhdHRjb21wcmVzc2lvbiBGUk9NIHBnX2F0dHJpYnV0ZQog ICBXSEVSRSBhdHRyZWxpZCA9ICdjdGxfZm9yZWlnbl90YWJsZTEnOjpyZWdjbGFzcyBhbmQgYXR0 bnVtID4gMCBPUkRFUiBCWSBhdHRudW07CiAKIC0tIFRlc3QgSU5DTFVESU5HIEFMTAotLS0gSU5E RVhFUywgSURFTlRJVFksIENPTVBSRVNTSU9OLCBTVE9SQUdFIGFyZSBub3QgY29waWVkLgorLS0g SU5ERVhFUywgSURFTlRJVFksIENPTVBSRVNTSU9OLCBTVE9SQUdFLCBQQVJBTUVURVJTIGFyZSBu b3QgY29waWVkLgogQ1JFQVRFIEZPUkVJR04gVEFCTEUgY3RsX2ZvcmVpZ25fdGFibGUyKExJS0Ug Y3RsX3RhYmxlIElOQ0xVRElORyBBTEwpIFNFUlZFUiBjdGxfczA7CiBcZCsgY3RsX2ZvcmVpZ25f dGFibGUyCiAtLSBcZCsgZG9lcyBub3QgcmVwb3J0IHRoZSB2YWx1ZSBvZiBhdHRjb21wcmVzc2lv biBmb3IgYSBmb3JlaWduIHRhYmxlLCBzbwpAQCAtMjgwLDMgKzI4MSwzNyBAQCBEUk9QIFRBQkxF IGN0bF90YWJsZTsKIERST1AgRk9SRUlHTiBUQUJMRSBjdGxfZm9yZWlnbl90YWJsZTE7CiBEUk9Q IEZPUkVJR04gVEFCTEUgY3RsX2ZvcmVpZ25fdGFibGUyOwogRFJPUCBGT1JFSUdOIERBVEEgV1JB UFBFUiBjdGxfZHVtbXkgQ0FTQ0FERTsKKworLS1DUkVBVEUgVEFCTEUgTElLRSB3aXRoIFBBUkFN RVRFUlMKK0NSRUFURSBUQUJMRSB0X3NwIChhIHRleHQpIFdJVEggKAorICBmaWxsZmFjdG9yID0g MTAwLAorICB0b2FzdF90dXBsZV90YXJnZXQgPSAxMjgsCisgIHZhY3V1bV9pbmRleF9jbGVhbnVw ID0gYXV0bywKKyAgdG9hc3QudmFjdXVtX2luZGV4X2NsZWFudXAgPSBhdXRvLAorICB2YWN1dW1f dHJ1bmNhdGUgPSB0cnVlLAorICB0b2FzdC52YWN1dW1fdHJ1bmNhdGUgPSBmYWxzZSwKKyAgbG9n X2F1dG92YWN1dW1fbWluX2R1cmF0aW9uID0gMTAwLAorICB0b2FzdC5sb2dfYXV0b3ZhY3V1bV9t aW5fZHVyYXRpb24gPSAxMDApOworCitDUkVBVEUgVEFCTEUgdF9zcDEgKExJS0UgdF9zcCBJTkNM VURJTkcgUEFSQU1FVEVSUykgV0lUSCAoZmlsbGZhY3RvciA9IDEwMCk7IC0tIGZhaWwKK0NSRUFU RSBUQUJMRSBUX3NwMSAoTElLRSB0X3NwIEVYQ0xVRElORyBQQVJBTUVURVJTKSBXSVRIIChmaWxs ZmFjdG9yID0gMTAwKTsgLS0gb2sKK1xkKyB0X3NwMQorCitDUkVBVEUgVEFCTEUgdF9zcDIgKExJ S0UgdF9zcCBJTkNMVURJTkcgUEFSQU1FVEVSUykgV0lUSCAoCisgIHBhcmFsbGVsX3dvcmtlcnMg PSAzLAorICB0b2FzdC5hdXRvdmFjdXVtX3ZhY3V1bV90aHJlc2hvbGQgPSAxMDEsCisgIHRvYXN0 LmF1dG92YWN1dW1fdmFjdXVtX3NjYWxlX2ZhY3RvciA9IDAuMyk7CisKK1NFTEVDVCBjLnJlbG5h bWUsIGMucmVsb3B0aW9ucywgdC5yZWxvcHRpb25zIGFzIHRvYXN0X3JlbG9wdGlvbnMKKyAgRlJP TSBwZ19jYXRhbG9nLnBnX2NsYXNzIGMKKyAgTEVGVCBKT0lOIHBnX2NhdGFsb2cucGdfY2xhc3Mg dCBPTiAoYy5yZWx0b2FzdHJlbGlkID0gdC5vaWQpCisgIFdIRVJFIGMucmVsbmFtZSBJTiAoJ3Rf c3AxJywgJ3Rfc3AyJykKKyAgT1JERVIgQlkgYy5yZWxuYW1lIFxneAorCitDUkVBVEUgTUFURVJJ QUxJWkVEIFZJRVcgbXZfZHVtbXkgV0lUSCAoZmlsbGZhY3RvciA9IDEwKSBBUyBTRUxFQ1QgMSBB UyBhOworCitDUkVBVEUgVEFCTEUgdF9zcDMgKExJS0UgbXZfZHVtbXkgSU5DTFVESU5HIFBBUkFN RVRFUlMpOworXGQrIHRfc3AzCisKK0RST1AgTUFURVJJQUxJWkVEIFZJRVcgbXZfZHVtbXk7CitE Uk9QIFRBQkxFIHRfc3AsIHRfc3AxLCB0X3NwMiwgdF9zcDM7Ci0tIAoyLjM0LjEKCg== --0000000000002579c6064608b940--