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 1vODgF-00FOrd-0i for pgsql-bugs@arkaria.postgresql.org; Wed, 26 Nov 2025 11:27:27 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vODgD-00FuOT-2F for pgsql-bugs@arkaria.postgresql.org; Wed, 26 Nov 2025 11:27:26 +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 1vODgD-00FuOL-0C for pgsql-bugs@lists.postgresql.org; Wed, 26 Nov 2025 11:27:25 +0000 Received: from mail-pl1-x633.google.com ([2607:f8b0:4864:20::633]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vODgA-001YnN-2v for pgsql-bugs@lists.postgresql.org; Wed, 26 Nov 2025 11:27:24 +0000 Received: by mail-pl1-x633.google.com with SMTP id d9443c01a7336-29806bd47b5so40276175ad.3 for ; Wed, 26 Nov 2025 03:27:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1764156443; x=1764761243; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=zByTunous4XHTZ5SYBWuqQKmy1UIHspcJSMTAbU7o7o=; b=RW5ggBCBQ2r62odY4UImQCKTCwO5uBKdfllxIh58tESq/xUuLv3DYKd8nzJJjZfYJY LWfkpj2rad3ckSJbWxpXvlqm5fY2xssXoi97YRlASypBHS4fTi9Gi43B22ReOGdlcZeo JUVZ5qtEJjkYgB5J+UMU8uKYYBLwiAuv6+ANmT7rKQ+VrrdfO4evQQ8PB/NDOn5R2Vgv zlQDkDZmkH21bCjkBGHkbSiL/goSaTwfC9KJmA7zD/bLT2+4M3Ru/lz8OygpzQYcduip DwEV6sg+yqI87uvoEggIX0QPlD5NMDnZpyptg8ZsTWMQRaXj6DC831qyIE7kuMeMQwK7 ff9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764156443; x=1764761243; 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=zByTunous4XHTZ5SYBWuqQKmy1UIHspcJSMTAbU7o7o=; b=cxFcxIyQZ++MM8Fve6T7w+2Tp3Yb5yaV9MPwggvIrpDr+IETY5SP365DpvSYzuvL9d M+SFCa3IJOTMbIzllKgsMaZrgOjgC7kWMA5UbHwbR9bQYodrPUsLWXO26O4l3+52EWUS /aLN8HBTYjtcNkzebftF09fMurIeIy9B1J+50iGpcja5JQdKa2qaMsZsLpZ9sGLd/1UK yc9QOPfJbZVhCJjTaeGlpLwegsRe4nuDr5LBHXIUPTKPWyCeYuoXCnK9Ra9DuMfabOq2 i9jX52tB3VsXixS075p9GhvSsZCNTx38hHdqTNE4xIQzFqS459dDNzEtzbcbzpbf44Fx tNFQ== X-Forwarded-Encrypted: i=1; AJvYcCXh3eWJbmMYz0CABIyLaPxd1KrDH9mZQgXCftzz41IHVcg+5UE/BvpHJgVjEN+xOAha4S1sntd2Ss9c@lists.postgresql.org X-Gm-Message-State: AOJu0Yz3/ch91rMjMpFiAoCvinqUl0bbSnmhk+1COcYb7njVaZtsHKPH HAWtjDSH4McEeCPjlsM5wyq20o3CMESwhhBIMUfTbT6XMmsiQDw1XOlR1OBPaU24yowQ9PO24gT Vi4oFnNd6xiT3kb1ILJ5npaEOZQxVYA8= X-Gm-Gg: ASbGncvvgMinti2CDvWmmzxBPTG4gzfbFAKOVHVhKzAvZwEZhdq0I3Fzi5zRBqV+iv4 qtuExbDTFhzBeWwPnAqzoB3BodC8ocS7JJ4VlfqwUdqHF+HBV+uSrzz8bJBY2nNFQaqRAXJWBCQ 6sYLFrGRV9bIyWpLO3nYVTfizjfmfVMQSG4YmzVc9AB/IxvbvBLthwTE9RT2wqwozJMRSeXJbDP YQ+5nooqUyRYNdCx1ZsTlnUkPhqg9IZ5rGv2QYqjp3M4sXJqewtSq7mjOHx0qvbMRIw7bfF X-Google-Smtp-Source: AGHT+IFCME8NpRscKBnfyrrLAueAWwIj80EY/1tgPhbwJbPlDNDLKsvFYYvg1K7+ew6na0iyEv8VjdW1yLdPDFqSMvc= X-Received: by 2002:a17:903:1b03:b0:295:20c5:5453 with SMTP id d9443c01a7336-29b6c572526mr190755785ad.29.1764156442557; Wed, 26 Nov 2025 03:27:22 -0800 (PST) MIME-Version: 1.0 References: <19099-e05dcfa022fe553d@postgresql.org> <2960545.1761800903@sss.pgh.pa.us> <3017911.1761832112@sss.pgh.pa.us> In-Reply-To: From: Amit Langote Date: Wed, 26 Nov 2025 20:27:04 +0900 X-Gm-Features: AWmQ_bmUxHQgB6e94OSYg4RoLkCVKY2C-gTKmPE8qUoclmV1b_jUXiNyRpyL84Y Message-ID: Subject: Re: BUG #19099: Conditional DELETE from partitioned table with non-updatable partition raises internal error To: David Rowley Cc: Tom Lane , Kirill Reshke , Tender Wang , jian he , exclusion@gmail.com, pgsql-bugs@lists.postgresql.org Content-Type: multipart/mixed; boundary="00000000000016524f06447daeab" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000016524f06447daeab Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, Nov 6, 2025 at 7:00=E2=80=AFPM Amit Langote wrote: > Among those options, I considered the following block, which adds a > ctid for the partitioned root table when it=E2=80=99s the only target in = the > query after partition pruning removes all child tables due to the > WHERE false condition in the problematic case: > > /* > * Ordinarily, we expect that leaf result relation(s) will have added= some > * ROWID_VAR Vars to the query. However, it's possible that constrai= nt > * exclusion suppressed every leaf relation. The executor will get u= pset > * if the plan has no row identity columns at all, even though it wil= l > * certainly process no rows. Handle this edge case by re-opening th= e top > * result relation and adding the row identity columns it would have = used, > * as preprocess_targetlist() would have done if it weren't marked "i= nh". > * Then re-run build_base_rel_tlists() to ensure that the added colum= ns > * get propagated to the relation's reltarget. (This is a bit ugly, = but > * it seems better to confine the ugliness and extra cycles to this > * unusual corner case.) > */ > if (root->row_identity_vars =3D=3D NIL) > { > Relation target_relation; > > target_relation =3D table_open(target_rte->relid, NoLock); > add_row_identity_columns(root, result_relation, > target_rte, target_relation); > table_close(target_relation, NoLock); > build_base_rel_tlists(root, root->processed_tlist); > /* There are no ROWID_VAR Vars in this case, so we're done. */ > return; > } > > If enable_partition_pruning is off, root->row_identity_vars already > contains a RowIdentityVarInfo entry for the tableoid Var that was > added while processing the foreign-table child partition. Because of > that, the if (root->row_identity_vars =3D=3D NIL) block doesn=E2=80=99t r= un in > this case, so it won=E2=80=99t add any row identity columns such as ctid = for > the partitioned root table. > > In theory, we could prevent the planner from adding tableoid in the > first place when the child table doesn=E2=80=99t support any row identity > column -- or worse, doesn=E2=80=99t support the UPDATE/DELETE/MERGE comma= nd at > all -- but doing so would require changing the order in which tableoid > appears in root->processed_tlist. That would be too invasive for a > back-patch. I=E2=80=99ve implemented this alternative as well -- the version that preve= nts adding tableoid when no other row-identity columns are added for the child. That allows to keep root->row_identity_vars empty so the dummy-root path can add ctid as intended by the above code block of distribute_row_identity_vars(). This provides an alternative approach to compare against the other patch. --=20 Thanks, Amit Langote --00000000000016524f06447daeab Content-Type: application/octet-stream; name="0001-Fix-row-identity-handling-for-dummy-partitioned-resu.patch" Content-Disposition: attachment; filename="0001-Fix-row-identity-handling-for-dummy-partitioned-resu.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mifx0tsj0 RnJvbSBhMWMyZDU3OTczMTNjMmVmMTNhOGMzYjBhZTI1Mzk1Nzc3ODVlYmExIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbWl0IExhbmdvdGUgPGFtaXRsYW5AcG9zdGdyZXNxbC5vcmc+ CkRhdGU6IFdlZCwgMjYgTm92IDIwMjUgMjA6MTk6MjEgKzA5MDAKU3ViamVjdDogW1BBVENIXSBG aXggcm93LWlkZW50aXR5IGhhbmRsaW5nIGZvciBkdW1teSBwYXJ0aXRpb25lZCByZXN1bHRyZWxz Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYt OApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpTdG9wIGFkZGluZyB0YWJsZW9pZCBm b3IgY2hpbGQgcmVsYXRpb25zIHRoYXQgZG8gbm90IGhhdmUgYW55CnJvdy1pZGVudGl0eSBjb2x1 bW5zLiAgSW4gY2FzZXMgd2hlcmUgYWxsIHBhcnRpdGlvbnMgYXJlIGV4Y2x1ZGVkCmJ5IHBydW5p bmcgb3IgY29uc3RyYWludCBleGNsdXNpb24sIHRoaXMgYWxsb3dzCmRpc3RyaWJ1dGVfcm93X2lk ZW50aXR5X3ZhcnMoKSB0byBkZXRlY3QgdGhlIGVtcHR5IHN0YXRlCihyb290LT5yb3dfaWRlbnRp dHlfdmFycyA9PSBOSUwpIGFuZCBhZGQgdGhlIGFwcHJvcHJpYXRlIGN0aWQKY29sdW1uIGZvciB0 aGUgZHVtbXkgcGFydGl0aW9uZWQgcmVzdWx0IHJlbGF0aW9uLCBzYXRpc2Z5aW5nIHRoZQpleGVj dXRvcuKAmXMgcmVxdWlyZW1lbnQgdGhhdCBhIHJlc3VsdHJlbCBhbHdheXMgaGF2ZSBhIHJvdyBp ZGVudGl0eS4KCkFzIHBhcnQgb2YgdGhpcywgbWFrZSBhZGRfcm93X2lkZW50aXR5X2NvbHVtbnMo KSByZXR1cm4gYSBib29sZWFuCnRvIHJlcG9ydCB3aGV0aGVyIGFueSByb3ctaWRlbnRpdHkgY29s dW1ucyB3ZXJlIGFkZGVkLCBhbmQgc2tpcCBGRFcKY2hpbGRyZW4gdGhhdCBjYW5ub3Qgc3VwcG9y dCB0aGUgY3VycmVudCBjb21tYW5kLiAgQWRqdXN0IGV4cGVjdGVkCkVYUExBSU4gb3V0cHV0IGFj Y29yZGluZ2x5IGFuZCBleHRlbmQgZmlsZV9mZHcgdGVzdHMgdG8gY292ZXIKZHVtbXktcm9vdCBw bGFucyB3aXRoIGFuZCB3aXRob3V0IHBydW5pbmcuCi0tLQogY29udHJpYi9maWxlX2Zkdy9leHBl Y3RlZC9maWxlX2Zkdy5vdXQgICAgICAgIHwgNzUgKysrKysrKysrKysrKysrKysrKwogY29udHJp Yi9maWxlX2Zkdy9zcWwvZmlsZV9mZHcuc3FsICAgICAgICAgICAgIHwgMzQgKysrKysrKysrCiBz cmMvYmFja2VuZC9vcHRpbWl6ZXIvcHJlcC9wcmVwdGxpc3QuYyAgICAgICAgfCAgNCArLQogc3Jj L2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvYXBwZW5kaW5mby5jICAgICAgIHwgMTggKysrKy0KIHNy Yy9iYWNrZW5kL29wdGltaXplci91dGlsL2luaGVyaXQuYyAgICAgICAgICB8ICA2ICstCiBzcmMv aW5jbHVkZS9vcHRpbWl6ZXIvYXBwZW5kaW5mby5oICAgICAgICAgICAgfCAgMiArLQogc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9pbmhlcml0Lm91dCAgICAgICAgIHwgMTQgKystLQogc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9tZXJnZS5vdXQgICAgICAgICAgIHwgIDYgKy0KIHNyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFydGl0aW9uX3BydW5lLm91dCB8ICA0ICstCiBzcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3JldHVybmluZy5vdXQgICAgICAgfCAyNCArKystLS0KIHNyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvdXBkYXRhYmxlX3ZpZXdzLm91dCB8IDIwICsrLS0tCiBzcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3dpdGgub3V0ICAgICAgICAgICAgfCAxNCArKy0tCiAxMiBmaWxl cyBjaGFuZ2VkLCAxNzEgaW5zZXJ0aW9ucygrKSwgNTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvY29udHJpYi9maWxlX2Zkdy9leHBlY3RlZC9maWxlX2Zkdy5vdXQgYi9jb250cmliL2ZpbGVf ZmR3L2V4cGVjdGVkL2ZpbGVfZmR3Lm91dAppbmRleCA1MTIxZTI3ZGNlNS4uZTYwMTc3YWY4Yzgg MTAwNjQ0Ci0tLSBhL2NvbnRyaWIvZmlsZV9mZHcvZXhwZWN0ZWQvZmlsZV9mZHcub3V0CisrKyBi L2NvbnRyaWIvZmlsZV9mZHcvZXhwZWN0ZWQvZmlsZV9mZHcub3V0CkBAIC00NTcsNiArNDU3LDgx IEBAIFNFTEVDVCB0YWJsZW9pZDo6cmVnY2xhc3MsICogRlJPTSBwMjsKICBwMiAgICAgICB8IDIg fCB4eXp6eQogKDMgcm93cykKIAorLS0gVmVyaWZ5IHRoYXQgYSBkdW1teSByb290IHBhcnRpdGlv bmVkLXRhYmxlIHJlc3VsdCByZWxhdGlvbiB3b3JrcyB3aXRob3V0CistLSBlcnJvciB3aGVuIGFs bCBjaGlsZCBwYXJ0aXRpb25zIGFyZSBleGNsdWRlZCBmcm9tIHRoZSBwbGFuIChmb3IgZXhhbXBs ZSwKKy0tIGJ5IGNvbnN0cmFpbnQgZXhjbHVzaW9uIG9yIHBydW5pbmcpLiAgSW4gdGhpcyBjYXNl LCB0aGUgZXhlY3V0b3IgYWNjZXB0cworLS0gYSBtaXNzaW5nIGN0aWQgZm9yIHRoZSByb290IHJl c3VsdCByZWxhdGlvbiBzaW5jZSBubyByb3dzIGNhbiBiZSBwcm9kdWNlZC4KKy0tIFdoZW4gYSBm b3JlaWduLXRhYmxlIGNoaWxkIGlzIHByb2Nlc3NlZCBiZWZvcmUgZXhjbHVzaW9uLCBhIHRhYmxl b2lkIGp1bmsKKy0tIGNvbHVtbiBtYXkgc3RpbGwgYXBwZWFyIGluIHRoZSB0YXJnZXRsaXN0IGFu ZCBhbHNvIHdob2xlcm93IGZvciB1cGRhdGUuCistLSBEdW1teS1yb290IGNhc2VzIHdoZXJlIGFs bCBjaGlsZHJlbiBhcmUgZXhjbHVkZWQuCistLSBXaXRoIHBydW5pbmcgb2ZmLCB0aGUgZm9yZWln biBjaGlsZCBpcyBwcm9jZXNzZWQgZmlyc3QsIHRoZW4gZXhjbHVkZWQKKy0tIGJ5IGNvbnN0cmFp bnQgZXhjbHVzaW9uLiBFWFBMQUlOIHNob3dzIHRhYmxlb2lkIChyZXdyaXR0ZW4gdG8gTlVMTCks CistLSBhbmQgZm9yIFVQREFURSBhbHNvIHdob2xlcm93IGFzIE5VTEw6OnJlY29yZC4gTm8gY3Rp ZC4KK0RST1AgVEFCTEUgcDI7CitTRVQgZW5hYmxlX3BhcnRpdGlvbl9wcnVuaW5nIFRPIG9mZjsK K0VYUExBSU4gKENPU1RTIE9GRiwgVkVSQk9TRSkgREVMRVRFIEZST00gcHQgV0hFUkUgZmFsc2U7 CisgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyBEZWxldGUgb24gcHVibGljLnB0CisgICAtPiAgUmVzdWx0CisgICAgICAg ICBPdXRwdXQ6IHB0LmN0aWQKKyAgICAgICAgIFJlcGxhY2VzOiBTY2FuIG9uIHB0CisgICAgICAg ICBPbmUtVGltZSBGaWx0ZXI6IGZhbHNlCisoNSByb3dzKQorCistLSBhbHNvIGNvdmVyIHdob2xl cm93IGZvciBVUERBVEU7IGV4cGVjdCBOVUxMOjpvaWQgYW5kIE5VTEw6OnJlY29yZAorRVhQTEFJ TiAoQ09TVFMgT0ZGLCBWRVJCT1NFKSBVUERBVEUgcHQgU0VUIGIgPSAneCcgV0hFUkUgZmFsc2U7 CisgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIFVwZGF0ZSBvbiBwdWJsaWMucHQKKyAgIC0+ICBSZXN1bHQK KyAgICAgICAgIE91dHB1dDogJ3gnOjp0ZXh0LCBwdC5jdGlkCisgICAgICAgICBSZXBsYWNlczog U2NhbiBvbiBwdAorICAgICAgICAgT25lLVRpbWUgRmlsdGVyOiBmYWxzZQorKDUgcm93cykKKwor LS0gTUVSR0UgYmVoYXZlcyB0aGUgc2FtZSBoZXJlOyBleHBlY3QgTlVMTDo6b2lkCitFWFBMQUlO IChDT1NUUyBPRkYsIFZFUkJPU0UpIE1FUkdFIElOVE8gcHQgdCBVU0lORyAoVkFMVUVTICgxLCAn eCc6OnRleHQpKSBBUyBzKGEsIGIpCisgIE9OIGZhbHNlIFdIRU4gTUFUQ0hFRCBUSEVOIFVQREFU RSBTRVQgYiA9IHMuYjsKKyAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIE1lcmdlIG9uIHB1YmxpYy5wdCB0CisgICAtPiAg UmVzdWx0CisgICAgICAgICBPdXRwdXQ6IHQuY3RpZAorICAgICAgICAgUmVwbGFjZXM6IFNjYW4g b24gdAorICAgICAgICAgT25lLVRpbWUgRmlsdGVyOiBmYWxzZQorKDUgcm93cykKKworLS0gV2l0 aCBwcnVuaW5nIG9uLCB0aGUgZm9yZWlnbiBjaGlsZCBpcyBwcnVuZWQgZW50aXJlbHkuIFRoZSBw bGFuIGhhcyBvbmx5CistLSB0aGUgZHVtbXkgcm9vdCwgYW5kIEVYUExBSU4gc2hvd3MgY3RpZCAo YW5kIGZvciBVUERBVEUsIGN0aWQgcGx1cyB0YXJnZXQpLgorU0VUIGVuYWJsZV9wYXJ0aXRpb25f cHJ1bmluZyBUTyBvbjsKK0VYUExBSU4gKENPU1RTIE9GRiwgVkVSQk9TRSkgREVMRVRFIEZST00g cHQgV0hFUkUgZmFsc2U7CisgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBEZWxldGUgb24gcHVibGljLnB0CisgICAtPiAg UmVzdWx0CisgICAgICAgICBPdXRwdXQ6IGN0aWQKKyAgICAgICAgIFJlcGxhY2VzOiBTY2FuIG9u IHB0CisgICAgICAgICBPbmUtVGltZSBGaWx0ZXI6IGZhbHNlCisoNSByb3dzKQorCitFWFBMQUlO IChDT1NUUyBPRkYsIFZFUkJPU0UpIFVQREFURSBwdCBTRVQgYiA9ICd4JyBXSEVSRSBmYWxzZTsK KyAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgVXBkYXRlIG9uIHB1YmxpYy5wdAorICAgLT4gIFJlc3VsdAorICAgICAg ICAgT3V0cHV0OiAneCc6OnRleHQsIGN0aWQKKyAgICAgICAgIFJlcGxhY2VzOiBTY2FuIG9uIHB0 CisgICAgICAgICBPbmUtVGltZSBGaWx0ZXI6IGZhbHNlCisoNSByb3dzKQorCistLSBGb3JlaWdu IGNoaWxkIG5vdCBwcnVuZWQgYW5kIGl0IGRvZXMgbm90IHN1cHBvcnQgREVMRVRFOiBlcnJvci4K K0VYUExBSU4gKENPU1RTIE9GRiwgVkVSQk9TRSkgREVMRVRFIEZST00gcHQgV0hFUkUgYSA9IDE7 CitFUlJPUjogIGNhbm5vdCBkZWxldGUgZnJvbSBmb3JlaWduIHRhYmxlICJwMSIKKy0tIFJ1bnRp bWUgcHJ1bmluZyBpbmNsdWRlcyB0aGUgZm9yZWlnbiBjaGlsZCBpbiB0aGUgcGxhbjsgZXhlY3V0 b3IgZXJyb3JzCistLSBzaW5jZSB0aGUgZm9yZWlnbiBjaGlsZCBkb2VzIG5vdCBzdXBwb3J0IHRo ZSBjb21tYW5kLgorRVhQTEFJTiAoQ09TVFMgT0ZGLCBWRVJCT1NFKSBERUxFVEUgRlJPTSBwdCBX SEVSRSAoU0VMRUNUIGZhbHNlKTsKK0VSUk9SOiAgY2Fubm90IGRlbGV0ZSBmcm9tIGZvcmVpZ24g dGFibGUgInAxIgogRFJPUCBUQUJMRSBwdDsKIC0tIGdlbmVyYXRlZCBjb2x1bW4gdGVzdHMKIFxz ZXQgZmlsZW5hbWUgOmFic19zcmNkaXIgJy9kYXRhL2xpc3QxLmNzdicKZGlmZiAtLWdpdCBhL2Nv bnRyaWIvZmlsZV9mZHcvc3FsL2ZpbGVfZmR3LnNxbCBiL2NvbnRyaWIvZmlsZV9mZHcvc3FsL2Zp bGVfZmR3LnNxbAppbmRleCAxYTM5N2FkNGJkMS4uMjU2NThiMWYyZGMgMTAwNjQ0Ci0tLSBhL2Nv bnRyaWIvZmlsZV9mZHcvc3FsL2ZpbGVfZmR3LnNxbAorKysgYi9jb250cmliL2ZpbGVfZmR3L3Nx bC9maWxlX2Zkdy5zcWwKQEAgLTI0Miw2ICsyNDIsNDAgQEAgVVBEQVRFIHB0IHNldCBhID0gMSB3 aGVyZSBhID0gMjsgLS0gRVJST1IKIFNFTEVDVCB0YWJsZW9pZDo6cmVnY2xhc3MsICogRlJPTSBw dDsKIFNFTEVDVCB0YWJsZW9pZDo6cmVnY2xhc3MsICogRlJPTSBwMTsKIFNFTEVDVCB0YWJsZW9p ZDo6cmVnY2xhc3MsICogRlJPTSBwMjsKKworLS0gVmVyaWZ5IHRoYXQgYSBkdW1teSByb290IHBh cnRpdGlvbmVkLXRhYmxlIHJlc3VsdCByZWxhdGlvbiB3b3JrcyB3aXRob3V0CistLSBlcnJvciB3 aGVuIGFsbCBjaGlsZCBwYXJ0aXRpb25zIGFyZSBleGNsdWRlZCBmcm9tIHRoZSBwbGFuIChmb3Ig ZXhhbXBsZSwKKy0tIGJ5IGNvbnN0cmFpbnQgZXhjbHVzaW9uIG9yIHBydW5pbmcpLiAgSW4gdGhp cyBjYXNlLCB0aGUgZXhlY3V0b3IgYWNjZXB0cworLS0gYSBtaXNzaW5nIGN0aWQgZm9yIHRoZSBy b290IHJlc3VsdCByZWxhdGlvbiBzaW5jZSBubyByb3dzIGNhbiBiZSBwcm9kdWNlZC4KKy0tIFdo ZW4gYSBmb3JlaWduLXRhYmxlIGNoaWxkIGlzIHByb2Nlc3NlZCBiZWZvcmUgZXhjbHVzaW9uLCBh IHRhYmxlb2lkIGp1bmsKKy0tIGNvbHVtbiBtYXkgc3RpbGwgYXBwZWFyIGluIHRoZSB0YXJnZXRs aXN0IGFuZCBhbHNvIHdob2xlcm93IGZvciB1cGRhdGUuCisKKy0tIER1bW15LXJvb3QgY2FzZXMg d2hlcmUgYWxsIGNoaWxkcmVuIGFyZSBleGNsdWRlZC4KKy0tIFdpdGggcHJ1bmluZyBvZmYsIHRo ZSBmb3JlaWduIGNoaWxkIGlzIHByb2Nlc3NlZCBmaXJzdCwgdGhlbiBleGNsdWRlZAorLS0gYnkg Y29uc3RyYWludCBleGNsdXNpb24uIEVYUExBSU4gc2hvd3MgdGFibGVvaWQgKHJld3JpdHRlbiB0 byBOVUxMKSwKKy0tIGFuZCBmb3IgVVBEQVRFIGFsc28gd2hvbGVyb3cgYXMgTlVMTDo6cmVjb3Jk LiBObyBjdGlkLgorRFJPUCBUQUJMRSBwMjsKK1NFVCBlbmFibGVfcGFydGl0aW9uX3BydW5pbmcg VE8gb2ZmOworRVhQTEFJTiAoQ09TVFMgT0ZGLCBWRVJCT1NFKSBERUxFVEUgRlJPTSBwdCBXSEVS RSBmYWxzZTsKKy0tIGFsc28gY292ZXIgd2hvbGVyb3cgZm9yIFVQREFURTsgZXhwZWN0IE5VTEw6 Om9pZCBhbmQgTlVMTDo6cmVjb3JkCitFWFBMQUlOIChDT1NUUyBPRkYsIFZFUkJPU0UpIFVQREFU RSBwdCBTRVQgYiA9ICd4JyBXSEVSRSBmYWxzZTsKKy0tIE1FUkdFIGJlaGF2ZXMgdGhlIHNhbWUg aGVyZTsgZXhwZWN0IE5VTEw6Om9pZAorRVhQTEFJTiAoQ09TVFMgT0ZGLCBWRVJCT1NFKSBNRVJH RSBJTlRPIHB0IHQgVVNJTkcgKFZBTFVFUyAoMSwgJ3gnOjp0ZXh0KSkgQVMgcyhhLCBiKQorICBP TiBmYWxzZSBXSEVOIE1BVENIRUQgVEhFTiBVUERBVEUgU0VUIGIgPSBzLmI7CisKKy0tIFdpdGgg cHJ1bmluZyBvbiwgdGhlIGZvcmVpZ24gY2hpbGQgaXMgcHJ1bmVkIGVudGlyZWx5LiBUaGUgcGxh biBoYXMgb25seQorLS0gdGhlIGR1bW15IHJvb3QsIGFuZCBFWFBMQUlOIHNob3dzIGN0aWQgKGFu ZCBmb3IgVVBEQVRFLCBjdGlkIHBsdXMgdGFyZ2V0KS4KK1NFVCBlbmFibGVfcGFydGl0aW9uX3By dW5pbmcgVE8gb247CitFWFBMQUlOIChDT1NUUyBPRkYsIFZFUkJPU0UpIERFTEVURSBGUk9NIHB0 IFdIRVJFIGZhbHNlOworRVhQTEFJTiAoQ09TVFMgT0ZGLCBWRVJCT1NFKSBVUERBVEUgcHQgU0VU IGIgPSAneCcgV0hFUkUgZmFsc2U7CisKKy0tIEZvcmVpZ24gY2hpbGQgbm90IHBydW5lZCBhbmQg aXQgZG9lcyBub3Qgc3VwcG9ydCBERUxFVEU6IGVycm9yLgorRVhQTEFJTiAoQ09TVFMgT0ZGLCBW RVJCT1NFKSBERUxFVEUgRlJPTSBwdCBXSEVSRSBhID0gMTsKKworLS0gUnVudGltZSBwcnVuaW5n IGluY2x1ZGVzIHRoZSBmb3JlaWduIGNoaWxkIGluIHRoZSBwbGFuOyBleGVjdXRvciBlcnJvcnMK Ky0tIHNpbmNlIHRoZSBmb3JlaWduIGNoaWxkIGRvZXMgbm90IHN1cHBvcnQgdGhlIGNvbW1hbmQu CitFWFBMQUlOIChDT1NUUyBPRkYsIFZFUkJPU0UpIERFTEVURSBGUk9NIHB0IFdIRVJFIChTRUxF Q1QgZmFsc2UpOworCiBEUk9QIFRBQkxFIHB0OwogCiAtLSBnZW5lcmF0ZWQgY29sdW1uIHRlc3Rz CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcHJlcC9wcmVwdGxpc3QuYyBiL3Ny Yy9iYWNrZW5kL29wdGltaXplci9wcmVwL3ByZXB0bGlzdC5jCmluZGV4IGZmYzlkNmMzZjMwLi4y NjA5MGQ3MWRmZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3ByZXAvcHJlcHRs aXN0LmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3ByZXAvcHJlcHRsaXN0LmMKQEAgLTEy Miw4ICsxMjIsOCBAQCBwcmVwcm9jZXNzX3RhcmdldGxpc3QoUGxhbm5lckluZm8gKnJvb3QpCiAJ ewogCQkvKiByb3ctaWRlbnRpdHkgbG9naWMgZXhwZWN0cyB0byBhZGQgc3R1ZmYgdG8gcHJvY2Vz c2VkX3RsaXN0ICovCiAJCXJvb3QtPnByb2Nlc3NlZF90bGlzdCA9IHRsaXN0OwotCQlhZGRfcm93 X2lkZW50aXR5X2NvbHVtbnMocm9vdCwgcmVzdWx0X3JlbGF0aW9uLAotCQkJCQkJCQkgdGFyZ2V0 X3J0ZSwgdGFyZ2V0X3JlbGF0aW9uKTsKKwkJKHZvaWQpIGFkZF9yb3dfaWRlbnRpdHlfY29sdW1u cyhyb290LCByZXN1bHRfcmVsYXRpb24sCisJCQkJCQkJCQkJdGFyZ2V0X3J0ZSwgdGFyZ2V0X3Jl bGF0aW9uKTsKIAkJdGxpc3QgPSByb290LT5wcm9jZXNzZWRfdGxpc3Q7CiAJfQogCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9hcHBlbmRpbmZvLmMgYi9zcmMvYmFja2Vu ZC9vcHRpbWl6ZXIvdXRpbC9hcHBlbmRpbmZvLmMKaW5kZXggNjliOGIwYzJhZTAuLmY5NzdkZmRh MjA4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9hcHBlbmRpbmZvLmMK KysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvYXBwZW5kaW5mby5jCkBAIC05NTEsNyAr OTUxLDcgQEAgYWRkX3Jvd19pZGVudGl0eV92YXIoUGxhbm5lckluZm8gKnJvb3QsIFZhciAqb3Jp Z192YXIsCiAgKiBGRFdzIG1pZ2h0IGNhbGwgYWRkX3Jvd19pZGVudGl0eV92YXIoKSBmb3IgdGhl bXNlbHZlcyB0byBhZGQgbm9uc3RhbmRhcmQKICAqIGNvbHVtbnMuICAoRHVwbGljYXRlIHJlcXVl c3RzIGFyZSBmaW5lLikKICAqLwotdm9pZAorYm9vbAogYWRkX3Jvd19pZGVudGl0eV9jb2x1bW5z KFBsYW5uZXJJbmZvICpyb290LCBJbmRleCBydGluZGV4LAogCQkJCQkJIFJhbmdlVGJsRW50cnkg KnRhcmdldF9ydGUsCiAJCQkJCQkgUmVsYXRpb24gdGFyZ2V0X3JlbGF0aW9uKQpAQCAtOTc3LDYg Kzk3Nyw3IEBAIGFkZF9yb3dfaWRlbnRpdHlfY29sdW1ucyhQbGFubmVySW5mbyAqcm9vdCwgSW5k ZXggcnRpbmRleCwKIAkJCQkJICBJbnZhbGlkT2lkLAogCQkJCQkgIDApOwogCQlhZGRfcm93X2lk ZW50aXR5X3Zhcihyb290LCB2YXIsIHJ0aW5kZXgsICJjdGlkIik7CisJCXJldHVybiB0cnVlOwog CX0KIAllbHNlIGlmIChyZWxraW5kID09IFJFTEtJTkRfRk9SRUlHTl9UQUJMRSkKIAl7CkBAIC05 ODcsNiArOTg4LDEzIEBAIGFkZF9yb3dfaWRlbnRpdHlfY29sdW1ucyhQbGFubmVySW5mbyAqcm9v dCwgSW5kZXggcnRpbmRleCwKIAogCQlmZHdyb3V0aW5lID0gR2V0RmR3Um91dGluZUZvclJlbGF0 aW9uKHRhcmdldF9yZWxhdGlvbiwgZmFsc2UpOwogCisJCWlmIChjb21tYW5kVHlwZSA9PSBDTURf TUVSR0UgfHwKKwkJCShjb21tYW5kVHlwZSA9PSBDTURfVVBEQVRFICYmCisJCQkgZmR3cm91dGlu ZS0+RXhlY0ZvcmVpZ25VcGRhdGUgPT0gTlVMTCkgfHwKKwkJCShjb21tYW5kVHlwZSA9PSBDTURf REVMRVRFICYmCisJCQkgZmR3cm91dGluZS0+RXhlY0ZvcmVpZ25EZWxldGUgPT0gTlVMTCkpCisJ CQlyZXR1cm4gZmFsc2U7CisKIAkJaWYgKGZkd3JvdXRpbmUtPkFkZEZvcmVpZ25VcGRhdGVUYXJn ZXRzICE9IE5VTEwpCiAJCQlmZHdyb3V0aW5lLT5BZGRGb3JlaWduVXBkYXRlVGFyZ2V0cyhyb290 LCBydGluZGV4LAogCQkJCQkJCQkJCQkJdGFyZ2V0X3J0ZSwgdGFyZ2V0X3JlbGF0aW9uKTsKQEAg LTEwMTcsNyArMTAyNSwxMSBAQCBhZGRfcm93X2lkZW50aXR5X2NvbHVtbnMoUGxhbm5lckluZm8g KnJvb3QsIEluZGV4IHJ0aW5kZXgsCiAJCQkJCQkgIDApOwogCQkJYWRkX3Jvd19pZGVudGl0eV92 YXIocm9vdCwgdmFyLCBydGluZGV4LCAid2hvbGVyb3ciKTsKIAkJfQorCisJCXJldHVybiB0cnVl OwogCX0KKworCXJldHVybiBmYWxzZTsKIH0KIAogLyoKQEAgLTEwNzUsOCArMTA4Nyw4IEBAIGRp c3RyaWJ1dGVfcm93X2lkZW50aXR5X3ZhcnMoUGxhbm5lckluZm8gKnJvb3QpCiAJCVJlbGF0aW9u CXRhcmdldF9yZWxhdGlvbjsKIAogCQl0YXJnZXRfcmVsYXRpb24gPSB0YWJsZV9vcGVuKHRhcmdl dF9ydGUtPnJlbGlkLCBOb0xvY2spOwotCQlhZGRfcm93X2lkZW50aXR5X2NvbHVtbnMocm9vdCwg cmVzdWx0X3JlbGF0aW9uLAotCQkJCQkJCQkgdGFyZ2V0X3J0ZSwgdGFyZ2V0X3JlbGF0aW9uKTsK KwkJKHZvaWQpIGFkZF9yb3dfaWRlbnRpdHlfY29sdW1ucyhyb290LCByZXN1bHRfcmVsYXRpb24s CisJCQkJCQkJCQkJdGFyZ2V0X3J0ZSwgdGFyZ2V0X3JlbGF0aW9uKTsKIAkJdGFibGVfY2xvc2Uo dGFyZ2V0X3JlbGF0aW9uLCBOb0xvY2spOwogCQlidWlsZF9iYXNlX3JlbF90bGlzdHMocm9vdCwg cm9vdC0+cHJvY2Vzc2VkX3RsaXN0KTsKIAkJLyogVGhlcmUgYXJlIG5vIFJPV0lEX1ZBUiBWYXJz IGluIHRoaXMgY2FzZSwgc28gd2UncmUgZG9uZS4gKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L29wdGltaXplci91dGlsL2luaGVyaXQuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2lu aGVyaXQuYwppbmRleCA2ZDUyMjUwNzlmOC4uOTZjMjRhOGE1NTIgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL29wdGltaXplci91dGlsL2luaGVyaXQuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6 ZXIvdXRpbC9pbmhlcml0LmMKQEAgLTYzNCwxMSArNjM0LDExIEBAIGV4cGFuZF9zaW5nbGVfaW5o ZXJpdGFuY2VfY2hpbGQoUGxhbm5lckluZm8gKnJvb3QsIFJhbmdlVGJsRW50cnkgKnBhcmVudHJ0 ZSwKIAkJCQkJCQktMSwKIAkJCQkJCQlJbnZhbGlkT2lkLAogCQkJCQkJCTApOwotCQkJYWRkX3Jv d19pZGVudGl0eV92YXIocm9vdCwgcnJ2YXIsIGNoaWxkUlRpbmRleCwgInRhYmxlb2lkIik7CiAK IAkJCS8qIFJlZ2lzdGVyIGFueSByb3ctaWRlbnRpdHkgY29sdW1ucyBuZWVkZWQgYnkgdGhpcyBj aGlsZC4gKi8KLQkJCWFkZF9yb3dfaWRlbnRpdHlfY29sdW1ucyhyb290LCBjaGlsZFJUaW5kZXgs Ci0JCQkJCQkJCQkgY2hpbGRydGUsIGNoaWxkcmVsKTsKKwkJCWlmIChhZGRfcm93X2lkZW50aXR5 X2NvbHVtbnMocm9vdCwgY2hpbGRSVGluZGV4LAorCQkJCQkJCQkJCSBjaGlsZHJ0ZSwgY2hpbGRy ZWwpKQorCQkJCWFkZF9yb3dfaWRlbnRpdHlfdmFyKHJvb3QsIHJydmFyLCBjaGlsZFJUaW5kZXgs ICJ0YWJsZW9pZCIpOwogCQl9CiAJfQogfQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvb3B0aW1p emVyL2FwcGVuZGluZm8uaCBiL3NyYy9pbmNsdWRlL29wdGltaXplci9hcHBlbmRpbmZvLmgKaW5k ZXggZDA2ZjkzYjcyNjYuLjVmMzE2OGQ2MTJmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9vcHRp bWl6ZXIvYXBwZW5kaW5mby5oCisrKyBiL3NyYy9pbmNsdWRlL29wdGltaXplci9hcHBlbmRpbmZv LmgKQEAgLTQyLDcgKzQyLDcgQEAgZXh0ZXJuIEFwcGVuZFJlbEluZm8gKipmaW5kX2FwcGluZm9z X2J5X3JlbGlkcyhQbGFubmVySW5mbyAqcm9vdCwKIAkJCQkJCQkJCQkJICAgUmVsaWRzIHJlbGlk cywgaW50ICpuYXBwaW5mb3MpOwogZXh0ZXJuIHZvaWQgYWRkX3Jvd19pZGVudGl0eV92YXIoUGxh bm5lckluZm8gKnJvb3QsIFZhciAqb3JpZ192YXIsCiAJCQkJCQkJCSBJbmRleCBydGluZGV4LCBj b25zdCBjaGFyICpyb3dpZF9uYW1lKTsKLWV4dGVybiB2b2lkIGFkZF9yb3dfaWRlbnRpdHlfY29s dW1ucyhQbGFubmVySW5mbyAqcm9vdCwgSW5kZXggcnRpbmRleCwKK2V4dGVybiBib29sIGFkZF9y b3dfaWRlbnRpdHlfY29sdW1ucyhQbGFubmVySW5mbyAqcm9vdCwgSW5kZXggcnRpbmRleCwKIAkJ CQkJCQkJCSBSYW5nZVRibEVudHJ5ICp0YXJnZXRfcnRlLAogCQkJCQkJCQkJIFJlbGF0aW9uIHRh cmdldF9yZWxhdGlvbik7CiBleHRlcm4gdm9pZCBkaXN0cmlidXRlX3Jvd19pZGVudGl0eV92YXJz KFBsYW5uZXJJbmZvICpyb290KTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvaW5oZXJpdC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2luaGVyaXQub3V0Cmlu ZGV4IDA0OTBhNzQ2NTU1Li5lOGZjYWU2NTE0ZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9pbmhlcml0Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2lu aGVyaXQub3V0CkBAIC01NzksNyArNTc5LDcgQEAgdXBkYXRlIHNvbWVfdGFiIHNldCBhID0gYSAr IDEgd2hlcmUgZmFsc2U7CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQogIFVwZGF0ZSBvbiBwdWJsaWMuc29tZV90YWIKICAgIC0+ICBSZXN1 bHQKLSAgICAgICAgIE91dHB1dDogKHNvbWVfdGFiLmEgKyAxKSwgTlVMTDo6b2lkLCBOVUxMOjp0 aWQKKyAgICAgICAgIE91dHB1dDogKHNvbWVfdGFiLmEgKyAxKSwgTlVMTDo6dGlkLCBOVUxMOjpv aWQKICAgICAgICAgIFJlcGxhY2VzOiBTY2FuIG9uIHNvbWVfdGFiCiAgICAgICAgICBPbmUtVGlt ZSBGaWx0ZXI6IGZhbHNlCiAoNSByb3dzKQpAQCAtNTkyLDcgKzU5Miw3IEBAIHVwZGF0ZSBzb21l X3RhYiBzZXQgYSA9IGEgKyAxIHdoZXJlIGZhbHNlIHJldHVybmluZyBiLCBhOwogIFVwZGF0ZSBv biBwdWJsaWMuc29tZV90YWIKICAgIE91dHB1dDogc29tZV90YWIuYiwgc29tZV90YWIuYQogICAg LT4gIFJlc3VsdAotICAgICAgICAgT3V0cHV0OiAoc29tZV90YWIuYSArIDEpLCBOVUxMOjpvaWQs IE5VTEw6OnRpZAorICAgICAgICAgT3V0cHV0OiAoc29tZV90YWIuYSArIDEpLCBOVUxMOjp0aWQs IE5VTEw6Om9pZAogICAgICAgICAgUmVwbGFjZXM6IFNjYW4gb24gc29tZV90YWIKICAgICAgICAg IE9uZS1UaW1lIEZpbHRlcjogZmFsc2UKICg2IHJvd3MpCkBAIC0yMDU0LDEyICsyMDU0LDEyIEBA IHVwZGF0ZSBpbmhwYXIgaSBzZXQgKGYxLCBmMikgPSAoc2VsZWN0IGkuZjEsIGkuZjIgfHwgJy0n IGZyb20gaW50NF90YmwgbGltaXQgMSk7CiAgICBVcGRhdGUgb24gcHVibGljLmluaHBhciBpXzEK ICAgIFVwZGF0ZSBvbiBwdWJsaWMuaW5oY2xkIGlfMgogICAgLT4gIFJlc3VsdAotICAgICAgICAg T3V0cHV0OiAoU3ViUGxhbiBtdWx0aWV4cHJfMSkuY29sMSwgKFN1YlBsYW4gbXVsdGlleHByXzEp LmNvbDIsIChyZXNjYW4gU3ViUGxhbiBtdWx0aWV4cHJfMSksIGkudGFibGVvaWQsIGkuY3RpZAor ICAgICAgICAgT3V0cHV0OiAoU3ViUGxhbiBtdWx0aWV4cHJfMSkuY29sMSwgKFN1YlBsYW4gbXVs dGlleHByXzEpLmNvbDIsIChyZXNjYW4gU3ViUGxhbiBtdWx0aWV4cHJfMSksIGkuY3RpZCwgaS50 YWJsZW9pZAogICAgICAgICAgLT4gIEFwcGVuZAogICAgICAgICAgICAgICAgLT4gIFNlcSBTY2Fu IG9uIHB1YmxpYy5pbmhwYXIgaV8xCi0gICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IGlfMS5m MSwgaV8xLmYyLCBpXzEudGFibGVvaWQsIGlfMS5jdGlkCisgICAgICAgICAgICAgICAgICAgICBP dXRwdXQ6IGlfMS5mMSwgaV8xLmYyLCBpXzEuY3RpZCwgaV8xLnRhYmxlb2lkCiAgICAgICAgICAg ICAgICAtPiAgU2VxIFNjYW4gb24gcHVibGljLmluaGNsZCBpXzIKLSAgICAgICAgICAgICAgICAg ICAgIE91dHB1dDogaV8yLmYxLCBpXzIuZjIsIGlfMi50YWJsZW9pZCwgaV8yLmN0aWQKKyAgICAg ICAgICAgICAgICAgICAgIE91dHB1dDogaV8yLmYxLCBpXzIuZjIsIGlfMi5jdGlkLCBpXzIudGFi bGVvaWQKICAgICAgICAgIFN1YlBsYW4gbXVsdGlleHByXzEKICAgICAgICAgICAgLT4gIExpbWl0 CiAgICAgICAgICAgICAgICAgIE91dHB1dDogKGkuZjEpLCAoKChpLmYyKTo6dGV4dCB8fCAnLSc6 OnRleHQpKQpAQCAtMjEwMywxNCArMjEwMywxNCBAQCB1cGRhdGUgaW5ocGFyIGkgc2V0IChmMSwg ZjIpID0gKHNlbGVjdCBpLmYxLCBpLmYyIHx8ICctJyBmcm9tIGludDRfdGJsIGxpbWl0IDEpOwog ICAgVXBkYXRlIG9uIHB1YmxpYy5pbmhjbGQyIGlfMgogICAgLT4gIEFwcGVuZAogICAgICAgICAg LT4gIFNlcSBTY2FuIG9uIHB1YmxpYy5pbmhjbGQxIGlfMQotICAgICAgICAgICAgICAgT3V0cHV0 OiAoU3ViUGxhbiBtdWx0aWV4cHJfMSkuY29sMSwgKFN1YlBsYW4gbXVsdGlleHByXzEpLmNvbDIs IChyZXNjYW4gU3ViUGxhbiBtdWx0aWV4cHJfMSksIGlfMS50YWJsZW9pZCwgaV8xLmN0aWQKKyAg ICAgICAgICAgICAgIE91dHB1dDogKFN1YlBsYW4gbXVsdGlleHByXzEpLmNvbDEsIChTdWJQbGFu IG11bHRpZXhwcl8xKS5jb2wyLCAocmVzY2FuIFN1YlBsYW4gbXVsdGlleHByXzEpLCBpXzEuY3Rp ZCwgaV8xLnRhYmxlb2lkCiAgICAgICAgICAgICAgICBTdWJQbGFuIG11bHRpZXhwcl8xCiAgICAg ICAgICAgICAgICAgIC0+ICBMaW1pdAogICAgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IChp XzEuZjEpLCAoKChpXzEuZjIpOjp0ZXh0IHx8ICctJzo6dGV4dCkpCiAgICAgICAgICAgICAgICAg ICAgICAgIC0+ICBTZXEgU2NhbiBvbiBwdWJsaWMuaW50NF90YmwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgT3V0cHV0OiBpXzEuZjEsICgoaV8xLmYyKTo6dGV4dCB8fCAnLSc6OnRleHQp CiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcHVibGljLmluaGNsZDIgaV8yCi0gICAgICAgICAg ICAgICBPdXRwdXQ6IChTdWJQbGFuIG11bHRpZXhwcl8xKS5jb2wxLCAoU3ViUGxhbiBtdWx0aWV4 cHJfMSkuY29sMiwgKHJlc2NhbiBTdWJQbGFuIG11bHRpZXhwcl8xKSwgaV8yLnRhYmxlb2lkLCBp XzIuY3RpZAorICAgICAgICAgICAgICAgT3V0cHV0OiAoU3ViUGxhbiBtdWx0aWV4cHJfMSkuY29s MSwgKFN1YlBsYW4gbXVsdGlleHByXzEpLmNvbDIsIChyZXNjYW4gU3ViUGxhbiBtdWx0aWV4cHJf MSksIGlfMi5jdGlkLCBpXzIudGFibGVvaWQKICgxMyByb3dzKQogCiB1cGRhdGUgaW5ocGFyIGkg c2V0IChmMSwgZjIpID0gKHNlbGVjdCBpLmYxLCBpLmYyIHx8ICctJyBmcm9tIGludDRfdGJsIGxp bWl0IDEpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9tZXJnZS5vdXQg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL21lcmdlLm91dAppbmRleCA5Y2IxZDg3MDY2YS4u MTBiMjdiMDE1MzIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbWVyZ2Uu b3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbWVyZ2Uub3V0CkBAIC0yMzg3LDE1 ICsyMzg3LDE1IEBAIE1FUkdFIElOVE8gcGFfdGFyZ2V0IHQgVVNJTkcgcGFfc291cmNlIHMgT04g dC50aWQgPSBzLnNpZAogIE1lcmdlIG9uIHB1YmxpYy5wYV90YXJnZXQgdAogICAgTWVyZ2Ugb24g cHVibGljLnBhX3RhcmdldHAgdF8xCiAgICAtPiAgSGFzaCBMZWZ0IEpvaW4KLSAgICAgICAgIE91 dHB1dDogcy5zaWQsIHMuY3RpZCwgdF8xLnRhYmxlb2lkLCB0XzEuY3RpZAorICAgICAgICAgT3V0 cHV0OiBzLnNpZCwgcy5jdGlkLCB0XzEuY3RpZCwgdF8xLnRhYmxlb2lkCiAgICAgICAgICBJbm5l ciBVbmlxdWU6IHRydWUKICAgICAgICAgIEhhc2ggQ29uZDogKHMuc2lkID0gdF8xLnRpZCkKICAg ICAgICAgIC0+ICBTZXEgU2NhbiBvbiBwdWJsaWMucGFfc291cmNlIHMKICAgICAgICAgICAgICAg IE91dHB1dDogcy5zaWQsIHMuY3RpZAogICAgICAgICAgLT4gIEhhc2gKLSAgICAgICAgICAgICAg IE91dHB1dDogdF8xLnRpZCwgdF8xLnRhYmxlb2lkLCB0XzEuY3RpZAorICAgICAgICAgICAgICAg T3V0cHV0OiB0XzEudGlkLCB0XzEuY3RpZCwgdF8xLnRhYmxlb2lkCiAgICAgICAgICAgICAgICAt PiAgU2VxIFNjYW4gb24gcHVibGljLnBhX3RhcmdldHAgdF8xCi0gICAgICAgICAgICAgICAgICAg ICBPdXRwdXQ6IHRfMS50aWQsIHRfMS50YWJsZW9pZCwgdF8xLmN0aWQKKyAgICAgICAgICAgICAg ICAgICAgIE91dHB1dDogdF8xLnRpZCwgdF8xLmN0aWQsIHRfMS50YWJsZW9pZAogKDEyIHJvd3Mp CiAKIE1FUkdFIElOVE8gcGFfdGFyZ2V0IHQgVVNJTkcgcGFfc291cmNlIHMgT04gdC50aWQgPSBz LnNpZApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wYXJ0aXRpb25fcHJ1 bmUub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wYXJ0aXRpb25fcHJ1bmUub3V0Cmlu ZGV4IGRlYWNkZDc1ODA3Li4yNGM2YWM0MDhmMyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9wYXJ0aXRpb25fcHJ1bmUub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvcGFydGl0aW9uX3BydW5lLm91dApAQCAtNDU4NSw3ICs0NTg1LDcgQEAgZXhwbGFpbiAo dmVyYm9zZSwgY29zdHMgb2ZmKSBleGVjdXRlIHVwZGF0ZV9wYXJ0X2FiY192aWV3ICgxLCAnZCcp OwogICAgLT4gIEFwcGVuZAogICAgICAgICAgU3VicGxhbnMgUmVtb3ZlZDogMQogICAgICAgICAg LT4gIFNlcSBTY2FuIG9uIHB1YmxpYy5wYXJ0X2FiY18xCi0gICAgICAgICAgICAgICBPdXRwdXQ6 ICQyLCBwYXJ0X2FiY18xLnRhYmxlb2lkLCBwYXJ0X2FiY18xLmN0aWQKKyAgICAgICAgICAgICAg IE91dHB1dDogJDIsIHBhcnRfYWJjXzEuY3RpZCwgcGFydF9hYmNfMS50YWJsZW9pZAogICAgICAg ICAgICAgICAgRmlsdGVyOiAoKHBhcnRfYWJjXzEuYiA8PiAnYSc6OnRleHQpIEFORCAocGFydF9h YmNfMS5hID0gJDEpKQogKDggcm93cykKIApAQCAtNDYwNCw3ICs0NjA0LDcgQEAgZXhwbGFpbiAo dmVyYm9zZSwgY29zdHMgb2ZmKSBleGVjdXRlIHVwZGF0ZV9wYXJ0X2FiY192aWV3ICgyLCAnYScp OwogICAgLT4gIEFwcGVuZAogICAgICAgICAgU3VicGxhbnMgUmVtb3ZlZDogMQogICAgICAgICAg LT4gIFNlcSBTY2FuIG9uIHB1YmxpYy5wYXJ0X2FiY18yCi0gICAgICAgICAgICAgICBPdXRwdXQ6 ICQyLCBwYXJ0X2FiY18yLnRhYmxlb2lkLCBwYXJ0X2FiY18yLmN0aWQKKyAgICAgICAgICAgICAg IE91dHB1dDogJDIsIHBhcnRfYWJjXzIuY3RpZCwgcGFydF9hYmNfMi50YWJsZW9pZAogICAgICAg ICAgICAgICAgRmlsdGVyOiAoKHBhcnRfYWJjXzIuYiA8PiAnYSc6OnRleHQpIEFORCAocGFydF9h YmNfMi5hID0gJDEpKQogKDggcm93cykKIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9yZXR1cm5pbmcub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9yZXR1cm5p bmcub3V0CmluZGV4IGNmYWFmMDE1YmIzLi4yYjIxNjFmMjQ1YyAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9yZXR1cm5pbmcub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvcmV0dXJuaW5nLm91dApAQCAtNTA0LDkgKzUwNCw5IEBAIFVQREFURSBmb28gU0VU IGY0ID0gMTAwIFdIRVJFIGYxID0gNQogICAgT3V0cHV0OiAob2xkLnRhYmxlb2lkKTo6cmVnY2xh c3MsIG9sZC5jdGlkLCBvbGQuZjEsIG9sZC5mMiwgb2xkLmYzLCBvbGQuZjQsIG9sZC4qLCAobmV3 LnRhYmxlb2lkKTo6cmVnY2xhc3MsIG5ldy5jdGlkLCBuZXcuZjEsIG5ldy5mMiwgbmV3LmYzLCBu ZXcuZjQsIG5ldy4qLCAoKChvbGQuZjQpOjp0ZXh0IHx8ICctPic6OnRleHQpIHx8IChuZXcuZjQp Ojp0ZXh0KQogICAgVXBkYXRlIG9uIHBnX3RlbXAuZm9vIGZvb18xCiAgICAtPiAgUmVzdWx0Ci0g ICAgICAgICBPdXRwdXQ6ICcxMDAnOjpiaWdpbnQsIGZvb18xLnRhYmxlb2lkLCBmb29fMS5jdGlk CisgICAgICAgICBPdXRwdXQ6ICcxMDAnOjpiaWdpbnQsIGZvb18xLmN0aWQsIGZvb18xLnRhYmxl b2lkCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcGdfdGVtcC5mb28gZm9vXzEKLSAgICAgICAg ICAgICAgIE91dHB1dDogZm9vXzEudGFibGVvaWQsIGZvb18xLmN0aWQKKyAgICAgICAgICAgICAg IE91dHB1dDogZm9vXzEuY3RpZCwgZm9vXzEudGFibGVvaWQKICAgICAgICAgICAgICAgIEZpbHRl cjogKGZvb18xLmYxID0gNSkKICg4IHJvd3MpCiAKQEAgLTUzMCw3ICs1MzAsNyBAQCBERUxFVEUg RlJPTSBmb28gV0hFUkUgZjEgPSA1CiAgICBPdXRwdXQ6IChvbGQudGFibGVvaWQpOjpyZWdjbGFz cywgb2xkLmN0aWQsIG9sZC5mMSwgb2xkLmYyLCBvbGQuZjMsIG9sZC5mNCwgKG5ldy50YWJsZW9p ZCk6OnJlZ2NsYXNzLCBuZXcuY3RpZCwgbmV3LmYxLCBuZXcuZjIsIG5ldy5mMywgbmV3LmY0LCBm b29fMS5mMSwgZm9vXzEuZjIsIGZvb18xLmYzLCBmb29fMS5mNAogICAgRGVsZXRlIG9uIHBnX3Rl bXAuZm9vIGZvb18xCiAgICAtPiAgU2VxIFNjYW4gb24gcGdfdGVtcC5mb28gZm9vXzEKLSAgICAg ICAgIE91dHB1dDogZm9vXzEudGFibGVvaWQsIGZvb18xLmN0aWQKKyAgICAgICAgIE91dHB1dDog Zm9vXzEuY3RpZCwgZm9vXzEudGFibGVvaWQKICAgICAgICAgIEZpbHRlcjogKGZvb18xLmYxID0g NSkKICg2IHJvd3MpCiAKQEAgLTU4Niw5ICs1ODYsOSBAQCBVUERBVEUgZm9vIFNFVCBmNCA9IDEw MCBXSEVSRSBmMSA9IDUKICAgIE91dHB1dDogKFN1YlBsYW4gZXhwcl8xKSwgKFN1YlBsYW4gZXhw cl8yKSwgKFN1YlBsYW4gZXhwcl8zKQogICAgVXBkYXRlIG9uIHBnX3RlbXAuZm9vIGZvb18xCiAg ICAtPiAgUmVzdWx0Ci0gICAgICAgICBPdXRwdXQ6ICcxMDAnOjpiaWdpbnQsIGZvb18xLnRhYmxl b2lkLCBmb29fMS5jdGlkCisgICAgICAgICBPdXRwdXQ6ICcxMDAnOjpiaWdpbnQsIGZvb18xLmN0 aWQsIGZvb18xLnRhYmxlb2lkCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcGdfdGVtcC5mb28g Zm9vXzEKLSAgICAgICAgICAgICAgIE91dHB1dDogZm9vXzEudGFibGVvaWQsIGZvb18xLmN0aWQK KyAgICAgICAgICAgICAgIE91dHB1dDogZm9vXzEuY3RpZCwgZm9vXzEudGFibGVvaWQKICAgICAg ICAgICAgICAgIEZpbHRlcjogKGZvb18xLmYxID0gNSkKICAgIFN1YlBsYW4gZXhwcl8xCiAgICAg IC0+ICBSZXN1bHQKQEAgLTYyNiw3ICs2MjYsNyBAQCBERUxFVEUgRlJPTSBmb28gV0hFUkUgZjEg PSA1CiAgICBPdXRwdXQ6IChTdWJQbGFuIGV4cHJfMSksIChTdWJQbGFuIGV4cHJfMikKICAgIERl bGV0ZSBvbiBwZ190ZW1wLmZvbyBmb29fMQogICAgLT4gIFNlcSBTY2FuIG9uIHBnX3RlbXAuZm9v IGZvb18xCi0gICAgICAgICBPdXRwdXQ6IGZvb18xLnRhYmxlb2lkLCBmb29fMS5jdGlkCisgICAg ICAgICBPdXRwdXQ6IGZvb18xLmN0aWQsIGZvb18xLnRhYmxlb2lkCiAgICAgICAgICBGaWx0ZXI6 IChmb29fMS5mMSA9IDUpCiAgICBTdWJQbGFuIGV4cHJfMQogICAgICAtPiAgQWdncmVnYXRlCkBA IC02NjIsOSArNjYyLDkgQEAgREVMRVRFIEZST00gZm9vIFdIRVJFIGYxID0gNCBSRVRVUk5JTkcg b2xkLiosbmV3LiosICo7CiAgICBPdXRwdXQ6IG9sZC5mMSwgb2xkLmYyLCBvbGQuZjMsIG9sZC5m NCwgbmV3LmYxLCBuZXcuZjIsIG5ldy5mMywgbmV3LmY0LCBmb29fMi5mMSwgZm9vXzIuZjIsIGZv b18yLmYzLCBmb29fMi5mNAogICAgVXBkYXRlIG9uIHBnX3RlbXAuZm9vIGZvb18yCiAgICAtPiAg TmVzdGVkIExvb3AKLSAgICAgICAgIE91dHB1dDogKGZvb18yLmYyIHx8ICcgKGRlbGV0ZWQpJzo6 dGV4dCksICctMSc6OmludGVnZXIsICctMSc6OmJpZ2ludCwgZm9vXzEuY3RpZCwgZm9vXzEudGFi bGVvaWQsIGZvb18yLnRhYmxlb2lkLCBmb29fMi5jdGlkCisgICAgICAgICBPdXRwdXQ6IChmb29f Mi5mMiB8fCAnIChkZWxldGVkKSc6OnRleHQpLCAnLTEnOjppbnRlZ2VyLCAnLTEnOjpiaWdpbnQs IGZvb18xLmN0aWQsIGZvb18xLnRhYmxlb2lkLCBmb29fMi5jdGlkLCBmb29fMi50YWJsZW9pZAog ICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHBnX3RlbXAuZm9vIGZvb18yCi0gICAgICAgICAgICAg ICBPdXRwdXQ6IGZvb18yLmYyLCBmb29fMi5mMSwgZm9vXzIudGFibGVvaWQsIGZvb18yLmN0aWQK KyAgICAgICAgICAgICAgIE91dHB1dDogZm9vXzIuZjIsIGZvb18yLmYxLCBmb29fMi5jdGlkLCBm b29fMi50YWJsZW9pZAogICAgICAgICAgICAgICAgRmlsdGVyOiAoZm9vXzIuZjEgPSA0KQogICAg ICAgICAgLT4gIFNlcSBTY2FuIG9uIHBnX3RlbXAuZm9vIGZvb18xCiAgICAgICAgICAgICAgICBP dXRwdXQ6IGZvb18xLmN0aWQsIGZvb18xLmYxLCBmb29fMS50YWJsZW9pZApAQCAtNjg3LDE3ICs2 ODcsMTcgQEAgVVBEQVRFIGpvaW52aWV3IFNFVCBmMyA9IGYzICsgMSBXSEVSRSBmMyA9IDU3CiAg ICBPdXRwdXQ6IG9sZC5mMSwgb2xkLmYyLCBvbGQuZjMsIG9sZC5mNCwgam9pbm1lLm90aGVyLCBu ZXcuZjEsIG5ldy5mMiwgbmV3LmYzLCBuZXcuZjQsIGpvaW5tZS5vdGhlciwgZm9vXzEuZjEsIGZv b18xLmYyLCBmb29fMS5mMywgZm9vXzEuZjQsIGpvaW5tZS5vdGhlciwgKG5ldy5mMyAtIG9sZC5m MykKICAgIFVwZGF0ZSBvbiBwZ190ZW1wLmZvbyBmb29fMQogICAgLT4gIEhhc2ggSm9pbgotICAg ICAgICAgT3V0cHV0OiBmb29fMi5mMSwgKGZvb18yLmYzICsgMSksIGpvaW5tZS5jdGlkLCBmb29f Mi5jdGlkLCBqb2lubWVfMS5jdGlkLCBqb2lubWUub3RoZXIsIGZvb18xLnRhYmxlb2lkLCBmb29f MS5jdGlkLCBmb29fMi50YWJsZW9pZAorICAgICAgICAgT3V0cHV0OiBmb29fMi5mMSwgKGZvb18y LmYzICsgMSksIGpvaW5tZS5jdGlkLCBmb29fMi5jdGlkLCBqb2lubWVfMS5jdGlkLCBqb2lubWUu b3RoZXIsIGZvb18xLmN0aWQsIGZvb18xLnRhYmxlb2lkLCBmb29fMi50YWJsZW9pZAogICAgICAg ICAgSGFzaCBDb25kOiAoZm9vXzEuZjIgPSBqb2lubWUuZjJqKQogICAgICAgICAgLT4gIEhhc2gg Sm9pbgotICAgICAgICAgICAgICAgT3V0cHV0OiBmb29fMS5mMiwgZm9vXzEudGFibGVvaWQsIGZv b18xLmN0aWQsIGpvaW5tZV8xLmN0aWQsIGpvaW5tZV8xLmYyagorICAgICAgICAgICAgICAgT3V0 cHV0OiBmb29fMS5mMiwgZm9vXzEuY3RpZCwgZm9vXzEudGFibGVvaWQsIGpvaW5tZV8xLmN0aWQs IGpvaW5tZV8xLmYyagogICAgICAgICAgICAgICAgSGFzaCBDb25kOiAoam9pbm1lXzEuZjJqID0g Zm9vXzEuZjIpCiAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcGdfdGVtcC5qb2lubWUg am9pbm1lXzEKICAgICAgICAgICAgICAgICAgICAgIE91dHB1dDogam9pbm1lXzEuY3RpZCwgam9p bm1lXzEuZjJqCiAgICAgICAgICAgICAgICAtPiAgSGFzaAotICAgICAgICAgICAgICAgICAgICAg T3V0cHV0OiBmb29fMS5mMiwgZm9vXzEudGFibGVvaWQsIGZvb18xLmN0aWQKKyAgICAgICAgICAg ICAgICAgICAgIE91dHB1dDogZm9vXzEuZjIsIGZvb18xLmN0aWQsIGZvb18xLnRhYmxlb2lkCiAg ICAgICAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcGdfdGVtcC5mb28gZm9vXzEKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgIE91dHB1dDogZm9vXzEuZjIsIGZvb18xLnRhYmxlb2lk LCBmb29fMS5jdGlkCisgICAgICAgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IGZvb18xLmYy LCBmb29fMS5jdGlkLCBmb29fMS50YWJsZW9pZAogICAgICAgICAgLT4gIEhhc2gKICAgICAgICAg ICAgICAgIE91dHB1dDogam9pbm1lLmN0aWQsIGpvaW5tZS5vdGhlciwgam9pbm1lLmYyaiwgZm9v XzIuZjEsIGZvb18yLmYzLCBmb29fMi5jdGlkLCBmb29fMi5mMiwgZm9vXzIudGFibGVvaWQKICAg ICAgICAgICAgICAgIC0+ICBIYXNoIEpvaW4KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvdXBkYXRhYmxlX3ZpZXdzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv dXBkYXRhYmxlX3ZpZXdzLm91dAppbmRleCAwM2RmN2U3NWI3Yi4uZDA1OWU3MGUwYzUgMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdXBkYXRhYmxlX3ZpZXdzLm91dAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3VwZGF0YWJsZV92aWV3cy5vdXQKQEAgLTMyNDgs MTAgKzMyNDgsMTAgQEAgVVBEQVRFIHYxIFNFVCBhPTEwMCBXSEVSRSBzbm9vcChhKSBBTkQgbGVh a3Byb29mKGEpIEFORCBhIDwgNyBBTkQgYSAhPSA2OwogICAgVXBkYXRlIG9uIHB1YmxpYy50MTIg dDFfMwogICAgVXBkYXRlIG9uIHB1YmxpYy50MTExIHQxXzQKICAgIC0+ICBSZXN1bHQKLSAgICAg ICAgIE91dHB1dDogMTAwLCB0MS50YWJsZW9pZCwgdDEuY3RpZAorICAgICAgICAgT3V0cHV0OiAx MDAsIHQxLmN0aWQsIHQxLnRhYmxlb2lkCiAgICAgICAgICAtPiAgQXBwZW5kCiAgICAgICAgICAg ICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyB0MV9hX2lkeCBvbiBwdWJsaWMudDEgdDFfMQotICAg ICAgICAgICAgICAgICAgICAgT3V0cHV0OiB0MV8xLnRhYmxlb2lkLCB0MV8xLmN0aWQKKyAgICAg ICAgICAgICAgICAgICAgIE91dHB1dDogdDFfMS5jdGlkLCB0MV8xLnRhYmxlb2lkCiAgICAgICAg ICAgICAgICAgICAgICBJbmRleCBDb25kOiAoKHQxXzEuYSA+IDUpIEFORCAodDFfMS5hIDwgNykp CiAgICAgICAgICAgICAgICAgICAgICBGaWx0ZXI6ICgodDFfMS5hIDw+IDYpIEFORCBFWElTVFMo U3ViUGxhbiBleGlzdHNfMSkgQU5EIHNub29wKHQxXzEuYSkgQU5EIGxlYWtwcm9vZih0MV8xLmEp KQogICAgICAgICAgICAgICAgICAgICAgU3ViUGxhbiBleGlzdHNfMQpAQCAtMzI2MSwxNSArMzI2 MSwxNSBAQCBVUERBVEUgdjEgU0VUIGE9MTAwIFdIRVJFIHNub29wKGEpIEFORCBsZWFrcHJvb2Yo YSkgQU5EIGEgPCA3IEFORCBhICE9IDY7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0+ ICBTZXEgU2NhbiBvbiBwdWJsaWMudDExMSB0MTJfMgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBGaWx0ZXI6ICh0MTJfMi5hID0gdDFfMS5hKQogICAgICAgICAgICAgICAgLT4g IEluZGV4IFNjYW4gdXNpbmcgdDExX2FfaWR4IG9uIHB1YmxpYy50MTEgdDFfMgotICAgICAgICAg ICAgICAgICAgICAgT3V0cHV0OiB0MV8yLnRhYmxlb2lkLCB0MV8yLmN0aWQKKyAgICAgICAgICAg ICAgICAgICAgIE91dHB1dDogdDFfMi5jdGlkLCB0MV8yLnRhYmxlb2lkCiAgICAgICAgICAgICAg ICAgICAgICBJbmRleCBDb25kOiAoKHQxXzIuYSA+IDUpIEFORCAodDFfMi5hIDwgNykpCiAgICAg ICAgICAgICAgICAgICAgICBGaWx0ZXI6ICgodDFfMi5hIDw+IDYpIEFORCBFWElTVFMoU3ViUGxh biBleGlzdHNfMSkgQU5EIHNub29wKHQxXzIuYSkgQU5EIGxlYWtwcm9vZih0MV8yLmEpKQogICAg ICAgICAgICAgICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgdDEyX2FfaWR4IG9uIHB1YmxpYy50MTIg dDFfMwotICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiB0MV8zLnRhYmxlb2lkLCB0MV8zLmN0 aWQKKyAgICAgICAgICAgICAgICAgICAgIE91dHB1dDogdDFfMy5jdGlkLCB0MV8zLnRhYmxlb2lk CiAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoKHQxXzMuYSA+IDUpIEFORCAodDFf My5hIDwgNykpCiAgICAgICAgICAgICAgICAgICAgICBGaWx0ZXI6ICgodDFfMy5hIDw+IDYpIEFO RCBFWElTVFMoU3ViUGxhbiBleGlzdHNfMSkgQU5EIHNub29wKHQxXzMuYSkgQU5EIGxlYWtwcm9v Zih0MV8zLmEpKQogICAgICAgICAgICAgICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgdDExMV9hX2lk eCBvbiBwdWJsaWMudDExMSB0MV80Ci0gICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IHQxXzQu dGFibGVvaWQsIHQxXzQuY3RpZAorICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiB0MV80LmN0 aWQsIHQxXzQudGFibGVvaWQKICAgICAgICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6ICgodDFf NC5hID4gNSkgQU5EICh0MV80LmEgPCA3KSkKICAgICAgICAgICAgICAgICAgICAgIEZpbHRlcjog KCh0MV80LmEgPD4gNikgQU5EIEVYSVNUUyhTdWJQbGFuIGV4aXN0c18xKSBBTkQgc25vb3AodDFf NC5hKSBBTkQgbGVha3Byb29mKHQxXzQuYSkpCiAoMzAgcm93cykKQEAgLTMyOTUsMTAgKzMyOTUs MTAgQEAgVVBEQVRFIHYxIFNFVCBhPWErMSBXSEVSRSBzbm9vcChhKSBBTkQgbGVha3Byb29mKGEp IEFORCBhID0gODsKICAgIFVwZGF0ZSBvbiBwdWJsaWMudDEyIHQxXzMKICAgIFVwZGF0ZSBvbiBw dWJsaWMudDExMSB0MV80CiAgICAtPiAgUmVzdWx0Ci0gICAgICAgICBPdXRwdXQ6ICh0MS5hICsg MSksIHQxLnRhYmxlb2lkLCB0MS5jdGlkCisgICAgICAgICBPdXRwdXQ6ICh0MS5hICsgMSksIHQx LmN0aWQsIHQxLnRhYmxlb2lkCiAgICAgICAgICAtPiAgQXBwZW5kCiAgICAgICAgICAgICAgICAt PiAgSW5kZXggU2NhbiB1c2luZyB0MV9hX2lkeCBvbiBwdWJsaWMudDEgdDFfMQotICAgICAgICAg ICAgICAgICAgICAgT3V0cHV0OiB0MV8xLmEsIHQxXzEudGFibGVvaWQsIHQxXzEuY3RpZAorICAg ICAgICAgICAgICAgICAgICAgT3V0cHV0OiB0MV8xLmEsIHQxXzEuY3RpZCwgdDFfMS50YWJsZW9p ZAogICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKCh0MV8xLmEgPiA1KSBBTkQgKHQx XzEuYSA9IDgpKQogICAgICAgICAgICAgICAgICAgICAgRmlsdGVyOiAoRVhJU1RTKFN1YlBsYW4g ZXhpc3RzXzEpIEFORCBzbm9vcCh0MV8xLmEpIEFORCBsZWFrcHJvb2YodDFfMS5hKSkKICAgICAg ICAgICAgICAgICAgICAgIFN1YlBsYW4gZXhpc3RzXzEKQEAgLTMzMDgsMTUgKzMzMDgsMTUgQEAg VVBEQVRFIHYxIFNFVCBhPWErMSBXSEVSRSBzbm9vcChhKSBBTkQgbGVha3Byb29mKGEpIEFORCBh ID0gODsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHB1Ymxp Yy50MTExIHQxMl8yCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpbHRlcjog KHQxMl8yLmEgPSB0MV8xLmEpCiAgICAgICAgICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyB0 MTFfYV9pZHggb24gcHVibGljLnQxMSB0MV8yCi0gICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6 IHQxXzIuYSwgdDFfMi50YWJsZW9pZCwgdDFfMi5jdGlkCisgICAgICAgICAgICAgICAgICAgICBP dXRwdXQ6IHQxXzIuYSwgdDFfMi5jdGlkLCB0MV8yLnRhYmxlb2lkCiAgICAgICAgICAgICAgICAg ICAgICBJbmRleCBDb25kOiAoKHQxXzIuYSA+IDUpIEFORCAodDFfMi5hID0gOCkpCiAgICAgICAg ICAgICAgICAgICAgICBGaWx0ZXI6IChFWElTVFMoU3ViUGxhbiBleGlzdHNfMSkgQU5EIHNub29w KHQxXzIuYSkgQU5EIGxlYWtwcm9vZih0MV8yLmEpKQogICAgICAgICAgICAgICAgLT4gIEluZGV4 IFNjYW4gdXNpbmcgdDEyX2FfaWR4IG9uIHB1YmxpYy50MTIgdDFfMwotICAgICAgICAgICAgICAg ICAgICAgT3V0cHV0OiB0MV8zLmEsIHQxXzMudGFibGVvaWQsIHQxXzMuY3RpZAorICAgICAgICAg ICAgICAgICAgICAgT3V0cHV0OiB0MV8zLmEsIHQxXzMuY3RpZCwgdDFfMy50YWJsZW9pZAogICAg ICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKCh0MV8zLmEgPiA1KSBBTkQgKHQxXzMuYSA9 IDgpKQogICAgICAgICAgICAgICAgICAgICAgRmlsdGVyOiAoRVhJU1RTKFN1YlBsYW4gZXhpc3Rz XzEpIEFORCBzbm9vcCh0MV8zLmEpIEFORCBsZWFrcHJvb2YodDFfMy5hKSkKICAgICAgICAgICAg ICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIHQxMTFfYV9pZHggb24gcHVibGljLnQxMTEgdDFfNAot ICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiB0MV80LmEsIHQxXzQudGFibGVvaWQsIHQxXzQu Y3RpZAorICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiB0MV80LmEsIHQxXzQuY3RpZCwgdDFf NC50YWJsZW9pZAogICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKCh0MV80LmEgPiA1 KSBBTkQgKHQxXzQuYSA9IDgpKQogICAgICAgICAgICAgICAgICAgICAgRmlsdGVyOiAoRVhJU1RT KFN1YlBsYW4gZXhpc3RzXzEpIEFORCBzbm9vcCh0MV80LmEpIEFORCBsZWFrcHJvb2YodDFfNC5h KSkKICgzMCByb3dzKQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC93aXRo Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0aC5vdXQKaW5kZXggZjRjYWVkZjI3 MmYuLmI5NDljOTVhZTU4IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3dp dGgub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0aC5vdXQKQEAgLTM1OTcs MjEgKzM1OTcsMjEgQEAgREVMRVRFIEZST00gYV9zdGFyIFVTSU5HIHdjdGUgV0hFUkUgYWEgPSBx MjsKICAgICAgICAgICAgLT4gIFJlc3VsdAogICAgICAgICAgICAgICAgICBPdXRwdXQ6ICc0Mic6 OmJpZ2ludCwgJzQ3Jzo6YmlnaW50CiAgICAtPiAgSGFzaCBKb2luCi0gICAgICAgICBPdXRwdXQ6 IHdjdGUuKiwgYV9zdGFyLnRhYmxlb2lkLCBhX3N0YXIuY3RpZAorICAgICAgICAgT3V0cHV0OiB3 Y3RlLiosIGFfc3Rhci5jdGlkLCBhX3N0YXIudGFibGVvaWQKICAgICAgICAgIEhhc2ggQ29uZDog KGFfc3Rhci5hYSA9IHdjdGUucTIpCiAgICAgICAgICAtPiAgQXBwZW5kCiAgICAgICAgICAgICAg ICAtPiAgU2VxIFNjYW4gb24gcHVibGljLmFfc3RhciBhX3N0YXJfMQotICAgICAgICAgICAgICAg ICAgICAgT3V0cHV0OiBhX3N0YXJfMS5hYSwgYV9zdGFyXzEudGFibGVvaWQsIGFfc3Rhcl8xLmN0 aWQKKyAgICAgICAgICAgICAgICAgICAgIE91dHB1dDogYV9zdGFyXzEuYWEsIGFfc3Rhcl8xLmN0 aWQsIGFfc3Rhcl8xLnRhYmxlb2lkCiAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcHVi bGljLmJfc3RhciBhX3N0YXJfMgotICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiBhX3N0YXJf Mi5hYSwgYV9zdGFyXzIudGFibGVvaWQsIGFfc3Rhcl8yLmN0aWQKKyAgICAgICAgICAgICAgICAg ICAgIE91dHB1dDogYV9zdGFyXzIuYWEsIGFfc3Rhcl8yLmN0aWQsIGFfc3Rhcl8yLnRhYmxlb2lk CiAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcHVibGljLmNfc3RhciBhX3N0YXJfMwot ICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiBhX3N0YXJfMy5hYSwgYV9zdGFyXzMudGFibGVv aWQsIGFfc3Rhcl8zLmN0aWQKKyAgICAgICAgICAgICAgICAgICAgIE91dHB1dDogYV9zdGFyXzMu YWEsIGFfc3Rhcl8zLmN0aWQsIGFfc3Rhcl8zLnRhYmxlb2lkCiAgICAgICAgICAgICAgICAtPiAg U2VxIFNjYW4gb24gcHVibGljLmRfc3RhciBhX3N0YXJfNAotICAgICAgICAgICAgICAgICAgICAg T3V0cHV0OiBhX3N0YXJfNC5hYSwgYV9zdGFyXzQudGFibGVvaWQsIGFfc3Rhcl80LmN0aWQKKyAg ICAgICAgICAgICAgICAgICAgIE91dHB1dDogYV9zdGFyXzQuYWEsIGFfc3Rhcl80LmN0aWQsIGFf c3Rhcl80LnRhYmxlb2lkCiAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcHVibGljLmVf c3RhciBhX3N0YXJfNQotICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiBhX3N0YXJfNS5hYSwg YV9zdGFyXzUudGFibGVvaWQsIGFfc3Rhcl81LmN0aWQKKyAgICAgICAgICAgICAgICAgICAgIE91 dHB1dDogYV9zdGFyXzUuYWEsIGFfc3Rhcl81LmN0aWQsIGFfc3Rhcl81LnRhYmxlb2lkCiAgICAg ICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcHVibGljLmZfc3RhciBhX3N0YXJfNgotICAgICAg ICAgICAgICAgICAgICAgT3V0cHV0OiBhX3N0YXJfNi5hYSwgYV9zdGFyXzYudGFibGVvaWQsIGFf c3Rhcl82LmN0aWQKKyAgICAgICAgICAgICAgICAgICAgIE91dHB1dDogYV9zdGFyXzYuYWEsIGFf c3Rhcl82LmN0aWQsIGFfc3Rhcl82LnRhYmxlb2lkCiAgICAgICAgICAtPiAgSGFzaAogICAgICAg ICAgICAgICAgT3V0cHV0OiB3Y3RlLiosIHdjdGUucTIKICAgICAgICAgICAgICAgIC0+ICBDVEUg U2NhbiBvbiB3Y3RlCi0tIAoyLjQ3LjMKCg== --00000000000016524f06447daeab--