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.94.2) (envelope-from ) id 1uggkI-006KWg-97 for pgsql-hackers@arkaria.postgresql.org; Tue, 29 Jul 2025 09:35:44 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1uggkH-00Gzms-EF for pgsql-hackers@arkaria.postgresql.org; Tue, 29 Jul 2025 09:35:41 +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.94.2) (envelope-from ) id 1uggkG-00Gzmk-VJ for pgsql-hackers@lists.postgresql.org; Tue, 29 Jul 2025 09:35:41 +0000 Received: from mail-ej1-x62b.google.com ([2a00:1450:4864:20::62b]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1uggkD-001STn-33 for pgsql-hackers@postgresql.org; Tue, 29 Jul 2025 09:35:40 +0000 Received: by mail-ej1-x62b.google.com with SMTP id a640c23a62f3a-ae3b336e936so1088626866b.3 for ; Tue, 29 Jul 2025 02:35:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jeltef.nl; s=google; t=1753781738; x=1754386538; darn=postgresql.org; h=in-reply-to:references:from:to:subject:cc:message-id:date :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=0r0oUSP2WaSLTLYYw3BBpms6k1b5PhfUm5PAdeV90xg=; b=f7XvKZ4PRbzTtfM9JFMR097fJfbvG7sU78HjM67+MW8lGxCgDm0T86RAaq0YnZ6Aoo djO9tw6AAjfvlaKxBG2avNT+gRqzQReDW0x/KpHZ65RKCscDWkJBXRMX5Xcp7NWngB7D ywQu9p+2k6L9pU9S+nYt3ZQzwRU5Ac4oou4J3jiUtrg3rKWCluygqYOQQ58Xt/Aih+WS jSk8RcQixVwxZdRkV+m/E4GV7iCg9DBdJ7pcnIUJqgrSRssPhgP20YeizHZBkuYiuT1E 506nnbyK3joou/4y1T1AzIa4zSxvuRzUPYz+rLxtKTJlVxv74Fkdad36xxuHZQTYSvL2 OGvQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753781738; x=1754386538; h=in-reply-to:references:from:to:subject:cc:message-id:date :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=0r0oUSP2WaSLTLYYw3BBpms6k1b5PhfUm5PAdeV90xg=; b=qvFqExKZiHIDqCocallmY6FGPWiy4YM5RVJ0JP83JCdUnWZ0WkGPPy6m/KtKCZ6/Zm GkQ628aWmV4jMqYQBt1WTE0I4ycrMazx4nA1PTR/i9JDxXThseXvZDoCCWv+R2igrdyy yeyejjdq8xDYuU/AAsG65OnLc19uCEwa7K6Z4B9CqDAG9LlxYb7Ll6yd+bW+xyNXKgTn Ghmv5c56gbkiqyWorhwpaYpOYB6xNO624Mn0mPL0gBTMe/vvjd3tXe0UiH1Cu6BPAfyR UMmoUJgdxRSQpDOyzexdFP7sQyITkbBCV5f804Dl6n6rVDFoCLjWs82zp1pnUupnlquZ PqFQ== X-Forwarded-Encrypted: i=1; AJvYcCVxyE85KdWRflytORr51BMrBZGPkGAV2VVA/yiKT/koDoY69oiLZS+tcUC6cvMDtvARVsBF8I10sT5+KTZF@postgresql.org X-Gm-Message-State: AOJu0YyEA7Su+WY/YFV0KZTIfb+c64E6sFLbK+eVO1fFll/lMwisBAah hlDI4lAn4uIyTJ24xf2KiMHLd3hoIddAUPVHRz0+kGMzO9igTXouNtEmDR/xWf6WBIg= X-Gm-Gg: ASbGncv/qFYl93sJuHCyDaYO3QSOKSDavLgpgJB1lU4T0WkayCbB+f2b0ENDABPB/ZI YwZFIe7G2dbjPCyXsaIl84fZueUf0MG0hdtrx6OEwiicYTxcDUl9RbOFWna+EhCTy5IMNsXEONc GHYg0gZ7tVD8dNNmnm3AM6pwlmQZFDcxmt7+DiGnZQPR8kAy8ZqNkBDiiz5D0Qaxg0f7nXquyEY zCfaFrYpvp++Ynsf/kz1lkNW/kh8e3wcYvaSNcMzVbs4PUdtHJr1wV47rnf1Mk49vCCUbnV7BN+ O5RZM7GDqRwpdq02O3v1Ett7tn0TUcWvl7pdf9SkziyCy+D6HJX9erUgGWBzvGdQOMtGrPUl4ex 4cdL6tFPyUVZvgsJS+xbK/dwGIuwPuWlR7nVsOKzp6XNEJco= X-Google-Smtp-Source: AGHT+IH1eMUW0XaAUIPzWJ7qp8e49h0os3a5TbfglAxcTo5D+9NnnIcgzBUL8bsdVK/4kKPdLatoSw== X-Received: by 2002:a17:907:3e1d:b0:ade:4593:d7cd with SMTP id a640c23a62f3a-af61c8a6743mr1722313366b.13.1753781737896; Tue, 29 Jul 2025 02:35:37 -0700 (PDT) Received: from localhost (145-53-221-196.fixed.kpn.net. [145.53.221.196]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-af6358d2fa9sm559918366b.62.2025.07.29.02.35.36 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 29 Jul 2025 02:35:36 -0700 (PDT) Content-Type: multipart/mixed; boundary=d47389abb422c89623842a6fa5632a014e3e75f3984ce2f2ad15ac2265bd Mime-Version: 1.0 Date: Tue, 29 Jul 2025 11:35:36 +0200 Message-Id: Cc: "Tomas Vondra" , "David G. Johnston" , "Jeff Davis" , "PostgreSQL-development" Subject: Re: Extension security improvement: Add support for extensions with an owned schema To: "Artem Gavrilov" , "Jelte Fennema-Nio" From: "Jelte Fennema-Nio" X-Mailer: aerc 0.20.1-31-gf6db7c329ce0 References: <585e996c-a5c6-4e61-acc4-d92b7a1458ea@vondra.me> In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --d47389abb422c89623842a6fa5632a014e3e75f3984ce2f2ad15ac2265bd Content-Type: multipart/alternative; boundary=89a8f273ee0a3a26e57ed8637f44d09f5e69023e12a00737e2a1368e2b6c --89a8f273ee0a3a26e57ed8637f44d09f5e69023e12a00737e2a1368e2b6c Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Content-Type: text/plain; charset=UTF-8; format=Flowed On Wed Jul 23, 2025 at 7:12 PM CEST, Artem Gavrilov wrote: > Hello Jelte, > > 1) I noticed that pg_dump changes weren't covered with tests. > > 2) I assume these error messages may be confusing, especially first one: Attached is an updated version that addresses these issues. --89a8f273ee0a3a26e57ed8637f44d09f5e69023e12a00737e2a1368e2b6c-- --d47389abb422c89623842a6fa5632a014e3e75f3984ce2f2ad15ac2265bd Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v5-0001-Add-support-for-extensions-with-an-owned-schema.patch Content-Type: text/x-patch; charset=utf-8; name=v5-0001-Add-support-for-extensions-with-an-owned-schema.patch RnJvbSA3Y2M1NWM0ZTNhMWZlMmI1ZDk1OGE2YzVmYzk0ZGVmYTA0ZGEyOWFjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWx0ZSBGZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5s PgpEYXRlOiBGcmksIDQgT2N0IDIwMjQgMjI6MzQ6NTEgKzAyMDAKU3ViamVjdDogW1BBVENIIHY1 XSBBZGQgc3VwcG9ydCBmb3IgZXh0ZW5zaW9ucyB3aXRoIGFuIG93bmVkIHNjaGVtYQoKV3JpdGlu ZyB0aGUgc3FsIG1pZ3JhdGlvbiBzY3JpcHRzIHRoYXQgYXJlIHJ1biBieSBDUkVBVEUgRVhURU5T SU9OIGFuZApBTFRFUiBFWFRFTlNJT04gVVBEQVRFIGFyZSBzZWN1cml0eSBtaW5lZmllbGRzIGZv ciBleHRlbnNpb24gYXV0aG9ycy4KT25lIGJpZyByZWFzb24gZm9yIHRoaXMgaXMgdGhhdCBzZWFy Y2hfcGF0aCBpcyBzZXQgdG8gdGhlIHNjaGVtYSBvZiB0aGUKZXh0ZW5zaW9uIHdoaWxlIHJ1bm5p bmcgdGhlc2Ugc2NyaXB0cywgYW5kIHRodXMgaWYgYSB1c2VyIHdpdGggbG93ZXIKcHJpdmlsZWdl cyBjYW4gY3JlYXRlIGZ1bmN0aW9ucyBvciBvcGVyYXRvcnMgaW4gdGhhdCBzY2hlbWEgdGhleSBj YW4gZG8KYWxsIGtpbmRzIG9mIHNlYXJjaF9wYXRoIGNvbmZ1c2lvbiBhdHRhY2tzIGlmIG5vdCBl dmVyeSBmdW5jdGlvbiBhbmQKb3BlcmF0b3IgdGhhdCBpcyB1c2VkIGluIHRoZSBzY3JpcHQgaXMg c2NoZW1hIHF1YWxpZmllZC4gV2hpbGUgZG9pbmcKc3VjaCBzY2hlbWEgcXVhbGlmaWNhdGlvbiBp cyBwb3NzaWJsZSwgaXQgcmVsaWVzIG9uIHRoZSBhdXRob3IgdG8gbmV2ZXIKbWFrZSBhIG1pc3Rh a2UgaW4gYW55IG9mIHRoZSBzcWwgZmlsZXMuIEFuZCBzYWRseSBodW1hbnMgaGF2ZSBhIHRlbmRl bmN5CnRvIG1ha2UgbWlzdGFrZXMuCgpUaGlzIHBhdGNoIGFkZHMgYSBuZXcgIm93bmVkX3NjaGVt YSIgb3B0aW9uIHRvIHRoZSBleHRlbnNpb24gY29udHJvbApmaWxlIHRoYXQgY2FuIGJlIHNldCB0 byB0cnVlIHRvIGluZGljYXRlIHRoYXQgdGhpcyBleHRlbnNpb24gd2FudHMgdG8Kb3duIHRoZSBz Y2hlbWEgaW4gd2hpY2ggaXQgaXMgaW5zdGFsbGVkLiBXaGF0IHRoYXQgbWVhbnMgaXMgdGhhdCB0 aGUKc2NoZW1hIHNob3VsZCBub3QgZXhpc3QgYmVmb3JlIGNyZWF0aW5nIHRoZSBleHRlbnNpb24s IGFuZCB3aWxsIGJlCmNyZWF0ZWQgZHVyaW5nIGV4dGVuc2lvbiBjcmVhdGlvbi4gVGhpcyB0aHVz IGdpdmVzIHRoZSBleHRlbnNpb24gYXV0aG9yCmFuIGVhc3kgd2F5IHRvIHVzZSBhIHNhZmUgc2Vh cmNoX3BhdGgsIHdoaWxlIHN0aWxsIGFsbG93aW5nIGFsbCBvYmplY3RzCnRvIGJlIGdyb3VwZWQg dG9nZXRoZXIgaW4gYSBzY2hlbWEuIFRoZSBpbXBsZW1lbnRhdGlvbiBhbHNvIGhhcyB0aGUKcGxl YXNhbnQgc2lkZSBlZmZlY3QgdGhhdCB0aGUgc2NoZW1hIHdpbGwgYmUgYXV0b21hdGljYWxseSBk cm9wcGVkIHdoZW4KdGhlIGV4dGVuc2lvbiBpcyBkcm9wcGVkLgotLS0KIGRvYy9zcmMvc2dtbC9l eHRlbmQuc2dtbCAgICAgICAgICAgICAgICAgICAgICB8ICAzNCArKysrCiBkb2Mvc3JjL3NnbWwv cmVmL2NyZWF0ZV9leHRlbnNpb24uc2dtbCAgICAgICAgfCAgIDQgKy0KIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL2V4dGVuc2lvbi5jICAgICAgICAgICAgICB8IDE0OCArKysrKysrKysrKysrLS0tLS0K IHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ191cGdyYWRlX3N1cHBvcnQuYyAgICB8ICA0NSArKysr LS0KIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgICAgICB8ICA1NCAr KysrKystCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oICAgICAgICAgICAgICAgICAgICAgfCAg IDEgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19leHRlbnNpb24uaCAgICAgICAgICAgIHwgICAx ICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgICAgICAgICAgICAgICB8ICAgMiAr LQogc3JjL2luY2x1ZGUvY29tbWFuZHMvZXh0ZW5zaW9uLmggICAgICAgICAgICAgIHwgICA0ICst CiBzcmMvdGVzdC9tb2R1bGVzL3Rlc3RfZXh0ZW5zaW9ucy9NYWtlZmlsZSAgICAgfCAgIDcgKy0K IC4uLi9leHBlY3RlZC90ZXN0X2V4dGVuc2lvbnMub3V0ICAgICAgICAgICAgICB8ICA1NCArKysr KysrCiBzcmMvdGVzdC9tb2R1bGVzL3Rlc3RfZXh0ZW5zaW9ucy9tZXNvbi5idWlsZCAgfCAgIDQg KwogLi4uL3Rlc3RfZXh0ZW5zaW9ucy9zcWwvdGVzdF9leHRlbnNpb25zLnNxbCAgIHwgIDI3ICsr KysKIC4uLi90ZXN0X2V4dF9vd25lZF9zY2hlbWEtLTEuMC5zcWwgICAgICAgICAgICB8ICAgMiAr CiAuLi4vdGVzdF9leHRfb3duZWRfc2NoZW1hLmNvbnRyb2wgICAgICAgICAgICAgfCAgIDUgKwog Li4udGVzdF9leHRfb3duZWRfc2NoZW1hX3JlbG9jYXRhYmxlLS0xLjAuc3FsIHwgICAyICsKIC4u Li90ZXN0X2V4dF9vd25lZF9zY2hlbWFfcmVsb2NhdGFibGUuY29udHJvbCB8ICAgNCArCiBzcmMv dGVzdC9tb2R1bGVzL3Rlc3RfcGdfZHVtcC90LzAwMV9iYXNlLnBsICAgfCAgMzIgKysrKwogMTgg ZmlsZXMgY2hhbmdlZCwgMzY2IGluc2VydGlvbnMoKyksIDY0IGRlbGV0aW9ucygtKQogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyYy90ZXN0L21vZHVsZXMvdGVzdF9leHRlbnNpb25zL3Rlc3RfZXh0X293 bmVkX3NjaGVtYS0tMS4wLnNxbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L21vZHVsZXMv dGVzdF9leHRlbnNpb25zL3Rlc3RfZXh0X293bmVkX3NjaGVtYS5jb250cm9sCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2V4dGVuc2lvbnMvdGVzdF9leHRfb3duZWRf c2NoZW1hX3JlbG9jYXRhYmxlLS0xLjAuc3FsCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3Qv bW9kdWxlcy90ZXN0X2V4dGVuc2lvbnMvdGVzdF9leHRfb3duZWRfc2NoZW1hX3JlbG9jYXRhYmxl LmNvbnRyb2wKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZXh0ZW5kLnNnbWwgYi9kb2Mvc3Jj L3NnbWwvZXh0ZW5kLnNnbWwKaW5kZXggNjNjNWVjNmQxZWIuLmRkZmI0ZWJmYmY1IDEwMDY0NAot LS0gYS9kb2Mvc3JjL3NnbWwvZXh0ZW5kLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2V4dGVuZC5z Z21sCkBAIC04MTQsNiArODE0LDQwIEBAIFJFVFVSTlMgYW55Y29tcGF0aWJsZSBBUyAuLi4KICAg ICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5PgogCisgICAgIDx2YXJsaXN0ZW50 cnkgaWQ9ImV4dGVuZC1leHRlbnNpb25zLWZpbGVzLW93bmVkLXNjaGVtYSI+CisgICAgICA8dGVy bT48dmFybmFtZT5vd25lZF9zY2hlbWE8L3Zhcm5hbWU+ICg8dHlwZT5ib29sZWFuPC90eXBlPik8 L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIEFuIGV4dGVu c2lvbiBzaG91bGQgc2V0IDxmaXJzdHRlcm0+b3duZWRfc2NoZW1hPC9maXJzdHRlcm0+IHRvCisg ICAgICAgIDxsaXRlcmFsPnRydWU8L2xpdGVyYWw+IGluIGl0cyBjb250cm9sIGZpbGUgaWYgdGhl IGV4dGVuc2lvbiB3YW50cyBhCisgICAgICAgIGRlZGljYXRlZCBzY2hlbWEgZm9yIGl0cyBvYmpl Y3RzLiBTdWNoIGEgc2NoZW1hIHNob3VsZCBub3QgZXhpc3QgeWV0IGF0CisgICAgICAgIHRoZSB0 aW1lIG9mIGV4dGVuc2lvbiBjcmVhdGlvbiwgYW5kIHdpbGwgYmUgY3JlYXRlZCBhdXRvbWF0aWNh bGx5IGJ5CisgICAgICAgIDxsaXRlcmFsPkNSRUFURSBFWFRFTlNJT048L2xpdGVyYWw+LiBUaGUg ZGVmYXVsdCBpcworICAgICAgICA8bGl0ZXJhbD5mYWxzZTwvbGl0ZXJhbD4sIGkuZS4sIHRoZSBl eHRlbnNpb24gY2FuIGJlIGluc3RhbGxlZCBpbnRvIGFuCisgICAgICAgIGV4aXN0aW5nIHNjaGVt YS4KKyAgICAgICA8L3BhcmE+CisgICAgICAgPHBhcmE+CisgICAgICAgIEhhdmluZyBhIHNjaGVt YSBvd25lZCBieSB0aGUgZXh0ZW5zaW9uIGNhbiBtYWtlIGl0IG11Y2ggZWFzaWVyIHRvCisgICAg ICAgIHJlYXNvbiBhYm91dCBwb3NzaWJsZSA8bGl0ZXJhbD5zZWFyY2hfcGF0aDwvbGl0ZXJhbD4g aW5qZWN0aW9uIGF0dGFja3MuCisgICAgICAgIEZvciBpbnN0YW5jZSB3aXRoIGFuIG93bmVkIHNj aGVtYSwgaXQgaXMgZ2VuZXJhbGx5IHNhZmUgdG8gc2V0IHRoZQorICAgICAgICA8bGl0ZXJhbD5z ZWFyY2hfcGF0aDwvbGl0ZXJhbD4gb2YgYSA8bGl0ZXJhbD5TRUNVUklUWSBERUZJTkVSPC9saXRl cmFsPgorICAgICAgICBmdW5jdGlvbiB0byB0aGUgc2NoZW1hIG9mIHRoZSBleHRlbnNpb24uIFdo aWxlIHdpdGhvdXQgYW4gb3duZWQgc2NoZW1hCisgICAgICAgIGl0IG1pZ2h0IG5vdCBiZSBzYWZl IHRvIGRvIHNvLCBiZWNhdXNlIGEgbWFsaWNpb3VzIHVzZXIgY291bGQgaW5zZXJ0CisgICAgICAg IG9iamVjdHMgaW4gdGhhdCBzY2hlbWEgYW5kIHRodXMgPGxpbmsKKyAgICAgICAgbGlua2VuZD0i c3FsLWNyZWF0ZWZ1bmN0aW9uLXNlY3VyaXR5Ij4gY2F1c2UgbWFsaWNpb3VzIHRvIGJlIGV4ZWN1 dGVkCisgICAgICAgIGFzIHN1cGVydXNlcjwvbGluaz4uIFNpbWlsYXJseSwgaGF2aW5nIGFuIG93 bmVkIHNjaGVtYSBjYW4gbWFrZSBpdCBzYWZlCisgICAgICAgIGJ5IGRlZmF1bHQgdG8gZXhlY3V0 ZSBnZW5lcmFsLXB1cnBvc2UgU1FMIGluIHRoZSBleHRlbnNpb24gc2NyaXB0LAorICAgICAgICBi ZWNhdXNlIHRoZSBzZWFyY2hfcGF0aCBub3cgb25seSBjb250YWlucyB0cnVzdGVkIHNjaGVtYXMu IFdpdGhvdXQgYW4KKyAgICAgICAgb3duZWQgc2NoZW1hIGl0J3MgPGxpbmsgbGlua2VuZD0iZXh0 ZW5kLWV4dGVuc2lvbnMtc2VjdXJpdHktc2NyaXB0cyI+CisgICAgICAgIHJlY29tbWVuZGVkIHRv IG1hbnVhbGx5IGNoYW5nZSB0aGUgc2VhcmNoX3BhdGg8L2xpbms+LgorICAgICAgIDwvcGFyYT4K KyAgICAgICA8cGFyYT4KKyAgICAgICAgQXBhcnQgZnJvbSB0aGUgc2VjdXJpdHkgY29uc2lkZXJh dGlvbnMsIGhhdmluZyBhbiBvd25lZCBzY2hlbWEgY2FuIGhlbHAKKyAgICAgICAgcHJldmVudCBu YW1pbmcgY29uZmxpY3RzIGJldHdlZW4gb2JqZWN0cyBvZiBkaWZmZXJlbnQgZXh0ZW5zaW9ucy4K KyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4K KwogICAgICA8dmFybGlzdGVudHJ5IGlkPSJleHRlbmQtZXh0ZW5zaW9ucy1maWxlcy1zY2hlbWEi PgogICAgICAgPHRlcm0+PHZhcm5hbWU+c2NoZW1hPC92YXJuYW1lPiAoPHR5cGU+c3RyaW5nPC90 eXBlPik8L3Rlcm0+CiAgICAgICA8bGlzdGl0ZW0+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwv cmVmL2NyZWF0ZV9leHRlbnNpb24uc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2V4dGVu c2lvbi5zZ21sCmluZGV4IDcxM2FiZDljNDk0Li45ZmQyYzM0MjllOCAxMDA2NDQKLS0tIGEvZG9j L3NyYy9zZ21sL3JlZi9jcmVhdGVfZXh0ZW5zaW9uLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3Jl Zi9jcmVhdGVfZXh0ZW5zaW9uLnNnbWwKQEAgLTEwNCw3ICsxMDQsOSBAQCBDUkVBVEUgRVhURU5T SU9OIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5leHRl bnNpb25fbmFtZQogICAgICAgIDxwYXJhPgogICAgICAgICBUaGUgbmFtZSBvZiB0aGUgc2NoZW1h IGluIHdoaWNoIHRvIGluc3RhbGwgdGhlIGV4dGVuc2lvbidzCiAgICAgICAgIG9iamVjdHMsIGdp dmVuIHRoYXQgdGhlIGV4dGVuc2lvbiBhbGxvd3MgaXRzIGNvbnRlbnRzIHRvIGJlCi0gICAgICAg IHJlbG9jYXRlZC4gIFRoZSBuYW1lZCBzY2hlbWEgbXVzdCBhbHJlYWR5IGV4aXN0LgorICAgICAg ICByZWxvY2F0ZWQuICBUaGUgbmFtZWQgc2NoZW1hIG11c3QgYWxyZWFkeSBleGlzdCwgdW5sZXNz CisgICAgICAgIDxsaXRlcmFsPm93bmVkX3NjaGVtYTwvbGl0ZXJhbD4gaXMgc2V0IHRvIDxsaXRl cmFsPnRydWU8L2xpdGVyYWw+IGluCisgICAgICAgIHRoZSBjb250cm9sIGZpbGUsIHRoZW4gdGhl IHNjaGVtYSBtdXN0IG5vdCBleGlzdC4KICAgICAgICAgSWYgbm90IHNwZWNpZmllZCwgYW5kIHRo ZSBleHRlbnNpb24ncyBjb250cm9sIGZpbGUgZG9lcyBub3Qgc3BlY2lmeSBhCiAgICAgICAgIHNj aGVtYSBlaXRoZXIsIHRoZSBjdXJyZW50IGRlZmF1bHQgb2JqZWN0IGNyZWF0aW9uIHNjaGVtYSBp cyB1c2VkLgogICAgICAgIDwvcGFyYT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRz L2V4dGVuc2lvbi5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXh0ZW5zaW9uLmMKaW5kZXggZTZm OWFiNmRmZDYuLjk1ZWFmZWNjMDZmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9l eHRlbnNpb24uYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9leHRlbnNpb24uYwpAQCAtOTIs NiArOTIsOCBAQCB0eXBlZGVmIHN0cnVjdCBFeHRlbnNpb25Db250cm9sRmlsZQogCQkJCQkJCQkJ ICogTU9EVUxFX1BBVEhOQU1FICovCiAJY2hhcgkgICAqY29tbWVudDsJCS8qIGNvbW1lbnQsIGlm IGFueSAqLwogCWNoYXIJICAgKnNjaGVtYTsJCQkvKiB0YXJnZXQgc2NoZW1hIChhbGxvd2VkIGlm ICFyZWxvY2F0YWJsZSkgKi8KKwlib29sCQlvd25lZF9zY2hlbWE7CS8qIGlmIHRoZSBzY2hlbWEg c2hvdWxkIGJlIG93bmVkIGJ5IHRoZQorCQkJCQkJCQkgKiBleHRlbnNpb24gKi8KIAlib29sCQly ZWxvY2F0YWJsZTsJLyogaXMgQUxURVIgRVhURU5TSU9OIFNFVCBTQ0hFTUEgc3VwcG9ydGVkPyAq LwogCWJvb2wJCXN1cGVydXNlcjsJCS8qIG11c3QgYmUgc3VwZXJ1c2VyIHRvIGluc3RhbGw/ICov CiAJYm9vbAkJdHJ1c3RlZDsJCS8qIGFsbG93IGJlY29taW5nIHN1cGVydXNlciBvbiB0aGUgZmx5 PyAqLwpAQCAtNjEzLDYgKzYxNSwxNCBAQCBwYXJzZV9leHRlbnNpb25fY29udHJvbF9maWxlKEV4 dGVuc2lvbkNvbnRyb2xGaWxlICpjb250cm9sLAogCQl7CiAJCQljb250cm9sLT5zY2hlbWEgPSBw c3RyZHVwKGl0ZW0tPnZhbHVlKTsKIAkJfQorCQllbHNlIGlmIChzdHJjbXAoaXRlbS0+bmFtZSwg Im93bmVkX3NjaGVtYSIpID09IDApCisJCXsKKwkJCWlmICghcGFyc2VfYm9vbChpdGVtLT52YWx1 ZSwgJmNvbnRyb2wtPm93bmVkX3NjaGVtYSkpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShl cnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAorCQkJCQkJIGVycm1zZygi cGFyYW1ldGVyIFwiJXNcIiByZXF1aXJlcyBhIEJvb2xlYW4gdmFsdWUiLAorCQkJCQkJCQlpdGVt LT5uYW1lKSkpOworCQl9CiAJCWVsc2UgaWYgKHN0cmNtcChpdGVtLT5uYW1lLCAicmVsb2NhdGFi bGUiKSA9PSAwKQogCQl7CiAJCQlpZiAoIXBhcnNlX2Jvb2woaXRlbS0+dmFsdWUsICZjb250cm9s LT5yZWxvY2F0YWJsZSkpCkBAIC0xNzQ0LDggKzE3NTQsMTEgQEAgQ3JlYXRlRXh0ZW5zaW9uSW50 ZXJuYWwoY2hhciAqZXh0ZW5zaW9uTmFtZSwKIAkgKi8KIAlpZiAoc2NoZW1hTmFtZSkKIAl7Ci0J CS8qIElmIHRoZSB1c2VyIGlzIGdpdmluZyB1cyB0aGUgc2NoZW1hIG5hbWUsIGl0IG11c3QgZXhp c3QgYWxyZWFkeS4gKi8KLQkJc2NoZW1hT2lkID0gZ2V0X25hbWVzcGFjZV9vaWQoc2NoZW1hTmFt ZSwgZmFsc2UpOworCQkvKgorCQkgKiBJZiB0aGUgdXNlciBpcyBnaXZpbmcgdXMgdGhlIHNjaGVt YSBuYW1lLCBpdCBtdXN0IGV4aXN0IGFscmVhZHkgaWYKKwkJICogdGhlIGV4dGVuc2lvbiBkb2Vz IG5vdCB3YW50IHRvIG93biB0aGUgc2NoZW1hCisJCSAqLworCQlzY2hlbWFPaWQgPSBnZXRfbmFt ZXNwYWNlX29pZChzY2hlbWFOYW1lLCBjb250cm9sLT5vd25lZF9zY2hlbWEpOwogCX0KIAogCWlm IChjb250cm9sLT5zY2hlbWEgIT0gTlVMTCkKQEAgLTE3NjMsMTEgKzE3NzYsMTUgQEAgQ3JlYXRl RXh0ZW5zaW9uSW50ZXJuYWwoY2hhciAqZXh0ZW5zaW9uTmFtZSwKIAkJCQkJKGVycmNvZGUoRVJS Q09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCQkgZXJybXNnKCJleHRlbnNpb24gXCIl c1wiIG11c3QgYmUgaW5zdGFsbGVkIGluIHNjaGVtYSBcIiVzXCIiLAogCQkJCQkJCWNvbnRyb2wt Pm5hbWUsCi0JCQkJCQkJY29udHJvbC0+c2NoZW1hKSkpOworCQkJCQkJCWNvbnRyb2wtPnNjaGVt YSksCisJCQkJCSBlcnJoaW50KCJEbyBub3Qgc3BlY2lmeSBTQ0hFTUEgd2hlbiBydW5uaW5nIENS RUFURSBFWFRFTlNJT04gZm9yIGV4dGVuc2lvbiBcIiVzXCIiLCBjb250cm9sLT5uYW1lKSkpOwog CiAJCS8qIEFsd2F5cyB1c2UgdGhlIHNjaGVtYSBmcm9tIGNvbnRyb2wgZmlsZSBmb3IgY3VycmVu dCBleHRlbnNpb24uICovCiAJCXNjaGVtYU5hbWUgPSBjb250cm9sLT5zY2hlbWE7CisJfQogCisJ aWYgKHNjaGVtYU5hbWUpCisJewogCQkvKiBGaW5kIG9yIGNyZWF0ZSB0aGUgc2NoZW1hIGluIGNh c2UgaXQgZG9lcyBub3QgZXhpc3QuICovCiAJCXNjaGVtYU9pZCA9IGdldF9uYW1lc3BhY2Vfb2lk KHNjaGVtYU5hbWUsIHRydWUpOwogCkBAIC0xNzg4LDggKzE4MDUsMjMgQEAgQ3JlYXRlRXh0ZW5z aW9uSW50ZXJuYWwoY2hhciAqZXh0ZW5zaW9uTmFtZSwKIAkJCSAqLwogCQkJc2NoZW1hT2lkID0g Z2V0X25hbWVzcGFjZV9vaWQoc2NoZW1hTmFtZSwgZmFsc2UpOwogCQl9CisJCWVsc2UgaWYgKGNv bnRyb2wtPm93bmVkX3NjaGVtYSkKKwkJeworCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNv ZGUoRVJSQ09ERV9EVVBMSUNBVEVfU0NIRU1BKSwKKwkJCQkJIGVycm1zZygic2NoZW1hIFwiJXNc IiBhbHJlYWR5IGV4aXN0cyBidXQgdGhlIGV4dGVuc2lvbiBuZWVkcyB0byBjcmVhdGUgaXQiLAor CQkJCQkJCXNjaGVtYU5hbWUpLAorCQkJCQkgZXJyaGludCgiRHJvcCBzY2hlbWEgXCIlc1wiIG9y IHNwZWNpZnkgYW5vdGhlciBzY2hlbWEgdXNpbmcgQ1JFQVRFIEVYVEVOU0lPTiAuLi4gU0NIRU1B IC4uLiIsIHNjaGVtYU5hbWUpKSk7CisJCX0KKwogCX0KLQllbHNlIGlmICghT2lkSXNWYWxpZChz Y2hlbWFPaWQpKQorCWVsc2UgaWYgKGNvbnRyb2wtPm93bmVkX3NjaGVtYSkKKwl7CisJCWVyZXBv cnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfU0NIRU1BKSwKKwkJCQkg ZXJybXNnKCJubyBzY2hlbWEgaGFzIGJlZW4gc2VsZWN0ZWQgdG8gY3JlYXRlIGluIikpKTsKKwl9 CisJZWxzZQogCXsKIAkJLyoKIAkJICogTmVpdGhlciB1c2VyIG5vciBhdXRob3Igb2YgdGhlIGV4 dGVuc2lvbiBzcGVjaWZpZWQgc2NoZW1hOyB1c2UgdGhlCkBAIC0xODU2LDYgKzE4ODgsNyBAQCBD cmVhdGVFeHRlbnNpb25JbnRlcm5hbChjaGFyICpleHRlbnNpb25OYW1lLAogCSAqLwogCWFkZHJl c3MgPSBJbnNlcnRFeHRlbnNpb25UdXBsZShjb250cm9sLT5uYW1lLCBleHRvd25lciwKIAkJCQkJ CQkJICAgc2NoZW1hT2lkLCBjb250cm9sLT5yZWxvY2F0YWJsZSwKKwkJCQkJCQkJICAgY29udHJv bC0+b3duZWRfc2NoZW1hLAogCQkJCQkJCQkgICB2ZXJzaW9uTmFtZSwKIAkJCQkJCQkJICAgUG9p bnRlckdldERhdHVtKE5VTEwpLAogCQkJCQkJCQkgICBQb2ludGVyR2V0RGF0dW0oTlVMTCksCkBA IC0yMDYxLDcgKzIwOTQsOCBAQCBDcmVhdGVFeHRlbnNpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBD cmVhdGVFeHRlbnNpb25TdG10ICpzdG10KQogICovCiBPYmplY3RBZGRyZXNzCiBJbnNlcnRFeHRl bnNpb25UdXBsZShjb25zdCBjaGFyICpleHROYW1lLCBPaWQgZXh0T3duZXIsCi0JCQkJCSBPaWQg c2NoZW1hT2lkLCBib29sIHJlbG9jYXRhYmxlLCBjb25zdCBjaGFyICpleHRWZXJzaW9uLAorCQkJ CQkgT2lkIHNjaGVtYU9pZCwgYm9vbCByZWxvY2F0YWJsZSwgYm9vbCBvd25lZFNjaGVtYSwKKwkJ CQkJIGNvbnN0IGNoYXIgKmV4dFZlcnNpb24sCiAJCQkJCSBEYXR1bSBleHRDb25maWcsIERhdHVt IGV4dENvbmRpdGlvbiwKIAkJCQkJIExpc3QgKnJlcXVpcmVkRXh0ZW5zaW9ucykKIHsKQEAgLTIw OTEsNiArMjEyNSw3IEBAIEluc2VydEV4dGVuc2lvblR1cGxlKGNvbnN0IGNoYXIgKmV4dE5hbWUs IE9pZCBleHRPd25lciwKIAl2YWx1ZXNbQW51bV9wZ19leHRlbnNpb25fZXh0b3duZXIgLSAxXSA9 IE9iamVjdElkR2V0RGF0dW0oZXh0T3duZXIpOwogCXZhbHVlc1tBbnVtX3BnX2V4dGVuc2lvbl9l eHRuYW1lc3BhY2UgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0oc2NoZW1hT2lkKTsKIAl2YWx1ZXNb QW51bV9wZ19leHRlbnNpb25fZXh0cmVsb2NhdGFibGUgLSAxXSA9IEJvb2xHZXREYXR1bShyZWxv Y2F0YWJsZSk7CisJdmFsdWVzW0FudW1fcGdfZXh0ZW5zaW9uX2V4dG93bmVkc2NoZW1hIC0gMV0g PSBCb29sR2V0RGF0dW0ob3duZWRTY2hlbWEpOwogCXZhbHVlc1tBbnVtX3BnX2V4dGVuc2lvbl9l eHR2ZXJzaW9uIC0gMV0gPSBDU3RyaW5nR2V0VGV4dERhdHVtKGV4dFZlcnNpb24pOwogCiAJaWYg KGV4dENvbmZpZyA9PSBQb2ludGVyR2V0RGF0dW0oTlVMTCkpCkBAIC0yMTM1LDYgKzIxNzAsMTcg QEAgSW5zZXJ0RXh0ZW5zaW9uVHVwbGUoY29uc3QgY2hhciAqZXh0TmFtZSwgT2lkIGV4dE93bmVy LAogCXJlY29yZF9vYmplY3RfYWRkcmVzc19kZXBlbmRlbmNpZXMoJm15c2VsZiwgcmVmb2Jqcywg REVQRU5ERU5DWV9OT1JNQUwpOwogCWZyZWVfb2JqZWN0X2FkZHJlc3NlcyhyZWZvYmpzKTsKIAor CWlmIChvd25lZFNjaGVtYSkKKwl7CisJCU9iamVjdEFkZHJlc3Mgc2NoZW1hQWRkcmVzcyA9IHsK KwkJCS5jbGFzc0lkID0gTmFtZXNwYWNlUmVsYXRpb25JZCwKKwkJCS5vYmplY3RJZCA9IHNjaGVt YU9pZCwKKwkJfTsKKworCQlyZWNvcmREZXBlbmRlbmN5T24oJnNjaGVtYUFkZHJlc3MsICZteXNl bGYsIERFUEVOREVOQ1lfRVhURU5TSU9OKTsKKwl9CisKKwogCS8qIFBvc3QgY3JlYXRpb24gaG9v ayBmb3IgbmV3IGV4dGVuc2lvbiAqLwogCUludm9rZU9iamVjdFBvc3RDcmVhdGVIb29rKEV4dGVu c2lvblJlbGF0aW9uSWQsIGV4dGVuc2lvbk9pZCwgMCk7CiAKQEAgLTMwNDAsNyArMzA4Niw3IEBA IE9iamVjdEFkZHJlc3MKIEFsdGVyRXh0ZW5zaW9uTmFtZXNwYWNlKGNvbnN0IGNoYXIgKmV4dGVu c2lvbk5hbWUsIGNvbnN0IGNoYXIgKm5ld3NjaGVtYSwgT2lkICpvbGRzY2hlbWEpCiB7CiAJT2lk CQkJZXh0ZW5zaW9uT2lkOwotCU9pZAkJCW5zcE9pZDsKKwlPaWQJCQluc3BPaWQgPSBJbnZhbGlk T2lkOwogCU9pZAkJCW9sZE5zcE9pZDsKIAlBY2xSZXN1bHQJYWNscmVzdWx0OwogCVJlbGF0aW9u CWV4dFJlbDsKQEAgLTMwNTMsMTEgKzMwOTksMTAgQEAgQWx0ZXJFeHRlbnNpb25OYW1lc3BhY2Uo Y29uc3QgY2hhciAqZXh0ZW5zaW9uTmFtZSwgY29uc3QgY2hhciAqbmV3c2NoZW1hLCBPaWQgKm8K IAlIZWFwVHVwbGUJZGVwVHVwOwogCU9iamVjdEFkZHJlc3NlcyAqb2Jqc01vdmVkOwogCU9iamVj dEFkZHJlc3MgZXh0QWRkcjsKKwlib29sCQlvd25lZFNjaGVtYTsKIAogCWV4dGVuc2lvbk9pZCA9 IGdldF9leHRlbnNpb25fb2lkKGV4dGVuc2lvbk5hbWUsIGZhbHNlKTsKIAotCW5zcE9pZCA9IExv b2t1cENyZWF0aW9uTmFtZXNwYWNlKG5ld3NjaGVtYSk7Ci0KIAkvKgogCSAqIFBlcm1pc3Npb24g Y2hlY2s6IG11c3Qgb3duIGV4dGVuc2lvbi4gIE5vdGUgdGhhdCB3ZSBkb24ndCBib3RoZXIgdG8K IAkgKiBjaGVjayBvd25lcnNoaXAgb2YgdGhlIGluZGl2aWR1YWwgbWVtYmVyIG9iamVjdHMgLi4u CkBAIC0zMDY2LDIyICszMTExLDYgQEAgQWx0ZXJFeHRlbnNpb25OYW1lc3BhY2UoY29uc3QgY2hh ciAqZXh0ZW5zaW9uTmFtZSwgY29uc3QgY2hhciAqbmV3c2NoZW1hLCBPaWQgKm8KIAkJYWNsY2hl Y2tfZXJyb3IoQUNMQ0hFQ0tfTk9UX09XTkVSLCBPQkpFQ1RfRVhURU5TSU9OLAogCQkJCQkgICBl eHRlbnNpb25OYW1lKTsKIAotCS8qIFBlcm1pc3Npb24gY2hlY2s6IG11c3QgaGF2ZSBjcmVhdGlv biByaWdodHMgaW4gdGFyZ2V0IG5hbWVzcGFjZSAqLwotCWFjbHJlc3VsdCA9IG9iamVjdF9hY2xj aGVjayhOYW1lc3BhY2VSZWxhdGlvbklkLCBuc3BPaWQsIEdldFVzZXJJZCgpLCBBQ0xfQ1JFQVRF KTsKLQlpZiAoYWNscmVzdWx0ICE9IEFDTENIRUNLX09LKQotCQlhY2xjaGVja19lcnJvcihhY2xy ZXN1bHQsIE9CSkVDVF9TQ0hFTUEsIG5ld3NjaGVtYSk7Ci0KLQkvKgotCSAqIElmIHRoZSBzY2hl bWEgaXMgY3VycmVudGx5IGEgbWVtYmVyIG9mIHRoZSBleHRlbnNpb24sIGRpc2FsbG93IG1vdmlu ZwotCSAqIHRoZSBleHRlbnNpb24gaW50byB0aGUgc2NoZW1hLiAgVGhhdCB3b3VsZCBjcmVhdGUg YSBkZXBlbmRlbmN5IGxvb3AuCi0JICovCi0JaWYgKGdldEV4dGVuc2lvbk9mT2JqZWN0KE5hbWVz cGFjZVJlbGF0aW9uSWQsIG5zcE9pZCkgPT0gZXh0ZW5zaW9uT2lkKQotCQllcmVwb3J0KEVSUk9S LAotCQkJCShlcnJjb2RlKEVSUkNPREVfT0JKRUNUX05PVF9JTl9QUkVSRVFVSVNJVEVfU1RBVEUp LAotCQkJCSBlcnJtc2coImNhbm5vdCBtb3ZlIGV4dGVuc2lvbiBcIiVzXCIgaW50byBzY2hlbWEg XCIlc1wiICIKLQkJCQkJCSJiZWNhdXNlIHRoZSBleHRlbnNpb24gY29udGFpbnMgdGhlIHNjaGVt YSIsCi0JCQkJCQlleHRlbnNpb25OYW1lLCBuZXdzY2hlbWEpKSk7Ci0KIAkvKiBMb2NhdGUgdGhl IHBnX2V4dGVuc2lvbiB0dXBsZSAqLwogCWV4dFJlbCA9IHRhYmxlX29wZW4oRXh0ZW5zaW9uUmVs YXRpb25JZCwgUm93RXhjbHVzaXZlTG9jayk7CiAKQEAgLTMxMDUsMTQgKzMxMzQsMzggQEAgQWx0 ZXJFeHRlbnNpb25OYW1lc3BhY2UoY29uc3QgY2hhciAqZXh0ZW5zaW9uTmFtZSwgY29uc3QgY2hh ciAqbmV3c2NoZW1hLCBPaWQgKm8KIAogCXN5c3RhYmxlX2VuZHNjYW4oZXh0U2Nhbik7CiAKLQkv KgotCSAqIElmIHRoZSBleHRlbnNpb24gaXMgYWxyZWFkeSBpbiB0aGUgdGFyZ2V0IHNjaGVtYSwg anVzdCBzaWxlbnRseSBkbwotCSAqIG5vdGhpbmcuCi0JICovCi0JaWYgKGV4dEZvcm0tPmV4dG5h bWVzcGFjZSA9PSBuc3BPaWQpCisJb3duZWRTY2hlbWEgPSBleHRGb3JtLT5leHRvd25lZHNjaGVt YTsKKworCWlmICghb3duZWRTY2hlbWEpCiAJewotCQl0YWJsZV9jbG9zZShleHRSZWwsIFJvd0V4 Y2x1c2l2ZUxvY2spOwotCQlyZXR1cm4gSW52YWxpZE9iamVjdEFkZHJlc3M7CisJCW5zcE9pZCA9 IExvb2t1cENyZWF0aW9uTmFtZXNwYWNlKG5ld3NjaGVtYSk7CisKKwkJLyogUGVybWlzc2lvbiBj aGVjazogbXVzdCBoYXZlIGNyZWF0aW9uIHJpZ2h0cyBpbiB0YXJnZXQgbmFtZXNwYWNlICovCisJ CWFjbHJlc3VsdCA9IG9iamVjdF9hY2xjaGVjayhOYW1lc3BhY2VSZWxhdGlvbklkLCBuc3BPaWQs IEdldFVzZXJJZCgpLCBBQ0xfQ1JFQVRFKTsKKwkJaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19P SykKKwkJCWFjbGNoZWNrX2Vycm9yKGFjbHJlc3VsdCwgT0JKRUNUX1NDSEVNQSwgbmV3c2NoZW1h KTsKKworCQkvKgorCQkgKiBJZiB0aGUgc2NoZW1hIGlzIGN1cnJlbnRseSBhIG1lbWJlciBvZiB0 aGUgZXh0ZW5zaW9uLCBkaXNhbGxvdworCQkgKiBtb3ZpbmcgdGhlIGV4dGVuc2lvbiBpbnRvIHRo ZSBzY2hlbWEuICBUaGF0IHdvdWxkIGNyZWF0ZSBhCisJCSAqIGRlcGVuZGVuY3kgbG9vcC4KKwkJ ICovCisJCWlmIChnZXRFeHRlbnNpb25PZk9iamVjdChOYW1lc3BhY2VSZWxhdGlvbklkLCBuc3BP aWQpID09IGV4dGVuc2lvbk9pZCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVS UkNPREVfT0JKRUNUX05PVF9JTl9QUkVSRVFVSVNJVEVfU1RBVEUpLAorCQkJCQkgZXJybXNnKCJj YW5ub3QgbW92ZSBleHRlbnNpb24gXCIlc1wiIGludG8gc2NoZW1hIFwiJXNcIiAiCisJCQkJCQkJ ImJlY2F1c2UgdGhlIGV4dGVuc2lvbiBjb250YWlucyB0aGUgc2NoZW1hIiwKKwkJCQkJCQlleHRl bnNpb25OYW1lLCBuZXdzY2hlbWEpKSk7CisKKwkJLyoKKwkJICogSWYgdGhlIGV4dGVuc2lvbiBp cyBhbHJlYWR5IGluIHRoZSB0YXJnZXQgc2NoZW1hLCBqdXN0IHNpbGVudGx5IGRvCisJCSAqIG5v dGhpbmcuCisJCSAqLworCQlpZiAoZXh0Rm9ybS0+ZXh0bmFtZXNwYWNlID09IG5zcE9pZCkKKwkJ eworCQkJdGFibGVfY2xvc2UoZXh0UmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKKwkJCXJldHVybiBJ bnZhbGlkT2JqZWN0QWRkcmVzczsKKwkJfQogCX0KIAogCS8qIENoZWNrIGV4dGVuc2lvbiBpcyBz dXBwb3NlZCB0byBiZSByZWxvY2F0YWJsZSAqLwpAQCAtMzE4NSw2ICszMjM4LDEzIEBAIEFsdGVy RXh0ZW5zaW9uTmFtZXNwYWNlKGNvbnN0IGNoYXIgKmV4dGVuc2lvbk5hbWUsIGNvbnN0IGNoYXIg Km5ld3NjaGVtYSwgT2lkICpvCiAJCQl9CiAJCX0KIAorCQkvKgorCQkgKiBXZSBkb24ndCBhY3R1 YWxseSBoYXZlIHRvIG1vdmUgYW55IG9iamVjdHMgYW55dGhpbmcgZm9yIG93bmVkCisJCSAqIHNj aGVtYXMsIGJlY2F1c2Ugd2Ugc2ltcGx5IHJlbmFtZSB0aGUgc2NoZW1hLgorCQkgKi8KKwkJaWYg KG93bmVkU2NoZW1hKQorCQkJY29udGludWU7CisKIAkJLyoKIAkJICogT3RoZXJ3aXNlLCBpZ25v cmUgbm9uLW1lbWJlcnNoaXAgZGVwZW5kZW5jaWVzLiAgKEN1cnJlbnRseSwgdGhlCiAJCSAqIG9u bHkgb3RoZXIgY2FzZSB3ZSBjb3VsZCBzZWUgaGVyZSBpcyBhIG5vcm1hbCBkZXBlbmRlbmN5IGZy b20KQEAgLTMyMjgsMTggKzMyODgsMjYgQEAgQWx0ZXJFeHRlbnNpb25OYW1lc3BhY2UoY29uc3Qg Y2hhciAqZXh0ZW5zaW9uTmFtZSwgY29uc3QgY2hhciAqbmV3c2NoZW1hLCBPaWQgKm8KIAogCXJl bGF0aW9uX2Nsb3NlKGRlcFJlbCwgQWNjZXNzU2hhcmVMb2NrKTsKIAotCS8qIE5vdyBhZGp1c3Qg cGdfZXh0ZW5zaW9uLmV4dG5hbWVzcGFjZSAqLwotCWV4dEZvcm0tPmV4dG5hbWVzcGFjZSA9IG5z cE9pZDsKKwlpZiAob3duZWRTY2hlbWEpCisJeworCQlSZW5hbWVTY2hlbWEoZ2V0X25hbWVzcGFj ZV9uYW1lKG9sZE5zcE9pZCksIG5ld3NjaGVtYSk7CisJCXRhYmxlX2Nsb3NlKGV4dFJlbCwgUm93 RXhjbHVzaXZlTG9jayk7CisJfQorCWVsc2UKKwl7CisJCS8qIE5vdyBhZGp1c3QgcGdfZXh0ZW5z aW9uLmV4dG5hbWVzcGFjZSAqLworCQlleHRGb3JtLT5leHRuYW1lc3BhY2UgPSBuc3BPaWQ7CiAK LQlDYXRhbG9nVHVwbGVVcGRhdGUoZXh0UmVsLCAmZXh0VHVwLT50X3NlbGYsIGV4dFR1cCk7CisJ CUNhdGFsb2dUdXBsZVVwZGF0ZShleHRSZWwsICZleHRUdXAtPnRfc2VsZiwgZXh0VHVwKTsKIAot CXRhYmxlX2Nsb3NlKGV4dFJlbCwgUm93RXhjbHVzaXZlTG9jayk7CisJCXRhYmxlX2Nsb3NlKGV4 dFJlbCwgUm93RXhjbHVzaXZlTG9jayk7CiAKLQkvKiB1cGRhdGUgZGVwZW5kZW5jeSB0byBwb2lu dCB0byB0aGUgbmV3IHNjaGVtYSAqLwotCWlmIChjaGFuZ2VEZXBlbmRlbmN5Rm9yKEV4dGVuc2lv blJlbGF0aW9uSWQsIGV4dGVuc2lvbk9pZCwKLQkJCQkJCQlOYW1lc3BhY2VSZWxhdGlvbklkLCBv bGROc3BPaWQsIG5zcE9pZCkgIT0gMSkKLQkJZWxvZyhFUlJPUiwgImNvdWxkIG5vdCBjaGFuZ2Ug c2NoZW1hIGRlcGVuZGVuY3kgZm9yIGV4dGVuc2lvbiAlcyIsCi0JCQkgTmFtZVN0cihleHRGb3Jt LT5leHRuYW1lKSk7CisJCS8qIHVwZGF0ZSBkZXBlbmRlbmN5IHRvIHBvaW50IHRvIHRoZSBuZXcg c2NoZW1hICovCisJCWlmIChjaGFuZ2VEZXBlbmRlbmN5Rm9yKEV4dGVuc2lvblJlbGF0aW9uSWQs IGV4dGVuc2lvbk9pZCwKKwkJCQkJCQkJTmFtZXNwYWNlUmVsYXRpb25JZCwgb2xkTnNwT2lkLCBu c3BPaWQpICE9IDEpCisJCQllbG9nKEVSUk9SLCAiY291bGQgbm90IGNoYW5nZSBzY2hlbWEgZGVw ZW5kZW5jeSBmb3IgZXh0ZW5zaW9uICVzIiwKKwkJCQkgTmFtZVN0cihleHRGb3JtLT5leHRuYW1l KSk7CisJfQogCiAJSW52b2tlT2JqZWN0UG9zdEFsdGVySG9vayhFeHRlbnNpb25SZWxhdGlvbklk LCBleHRlbnNpb25PaWQsIDApOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQv cGdfdXBncmFkZV9zdXBwb3J0LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdfdXBncmFkZV9z dXBwb3J0LmMKaW5kZXggYTRmOGI0ZmFhOTAuLjE1YmQyNjUzNzVjIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC91dGlscy9hZHQvcGdfdXBncmFkZV9zdXBwb3J0LmMKKysrIGIvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L3BnX3VwZ3JhZGVfc3VwcG9ydC5jCkBAIC0xOSw2ICsxOSw3IEBACiAjaW5jbHVk ZSAiY2F0YWxvZy9wZ19zdWJzY3JpcHRpb25fcmVsLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190 eXBlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZXh0ZW5zaW9uLmgiCisjaW5jbHVkZSAiY29tbWFu ZHMvc2NoZW1hY21kcy5oIgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgInJlcGxp Y2F0aW9uL2xvZ2ljYWwuaCIKICNpbmNsdWRlICJyZXBsaWNhdGlvbi9sb2dpY2FsbGF1bmNoZXIu aCIKQEAgLTE4NSwxMiArMTg2LDE0IEBAIERhdHVtCiBiaW5hcnlfdXBncmFkZV9jcmVhdGVfZW1w dHlfZXh0ZW5zaW9uKFBHX0ZVTkNUSU9OX0FSR1MpCiB7CiAJdGV4dAkgICAqZXh0TmFtZTsKLQl0 ZXh0CSAgICpzY2hlbWFOYW1lOworCWNoYXIJICAgKnNjaGVtYU5hbWU7CiAJYm9vbAkJcmVsb2Nh dGFibGU7CisJYm9vbAkJb3duZWRzY2hlbWE7CiAJdGV4dAkgICAqZXh0VmVyc2lvbjsKIAlEYXR1 bQkJZXh0Q29uZmlnOwogCURhdHVtCQlleHRDb25kaXRpb247CiAJTGlzdAkgICAqcmVxdWlyZWRF eHRlbnNpb25zOworCU9pZAkJCXNjaGVtYU9pZDsKIAogCUNIRUNLX0lTX0JJTkFSWV9VUEdSQURF OwogCkBAIC0xOTgsMjggKzIwMSwzMCBAQCBiaW5hcnlfdXBncmFkZV9jcmVhdGVfZW1wdHlfZXh0 ZW5zaW9uKFBHX0ZVTkNUSU9OX0FSR1MpCiAJaWYgKFBHX0FSR0lTTlVMTCgwKSB8fAogCQlQR19B UkdJU05VTEwoMSkgfHwKIAkJUEdfQVJHSVNOVUxMKDIpIHx8Ci0JCVBHX0FSR0lTTlVMTCgzKSkK KwkJUEdfQVJHSVNOVUxMKDMpIHx8CisJCVBHX0FSR0lTTlVMTCg0KSkKIAkJZWxvZyhFUlJPUiwg Im51bGwgYXJndW1lbnQgdG8gYmluYXJ5X3VwZ3JhZGVfY3JlYXRlX2VtcHR5X2V4dGVuc2lvbiBp cyBub3QgYWxsb3dlZCIpOwogCiAJZXh0TmFtZSA9IFBHX0dFVEFSR19URVhUX1BQKDApOwotCXNj aGVtYU5hbWUgPSBQR19HRVRBUkdfVEVYVF9QUCgxKTsKKwlzY2hlbWFOYW1lID0gdGV4dF90b19j c3RyaW5nKFBHX0dFVEFSR19URVhUX1BQKDEpKTsKIAlyZWxvY2F0YWJsZSA9IFBHX0dFVEFSR19C T09MKDIpOwotCWV4dFZlcnNpb24gPSBQR19HRVRBUkdfVEVYVF9QUCgzKTsKKwlvd25lZHNjaGVt YSA9IFBHX0dFVEFSR19CT09MKDMpOworCWV4dFZlcnNpb24gPSBQR19HRVRBUkdfVEVYVF9QUCg0 KTsKIAotCWlmIChQR19BUkdJU05VTEwoNCkpCisJaWYgKFBHX0FSR0lTTlVMTCg1KSkKIAkJZXh0 Q29uZmlnID0gUG9pbnRlckdldERhdHVtKE5VTEwpOwogCWVsc2UKLQkJZXh0Q29uZmlnID0gUEdf R0VUQVJHX0RBVFVNKDQpOworCQlleHRDb25maWcgPSBQR19HRVRBUkdfREFUVU0oNSk7CiAKLQlp ZiAoUEdfQVJHSVNOVUxMKDUpKQorCWlmIChQR19BUkdJU05VTEwoNikpCiAJCWV4dENvbmRpdGlv biA9IFBvaW50ZXJHZXREYXR1bShOVUxMKTsKIAllbHNlCi0JCWV4dENvbmRpdGlvbiA9IFBHX0dF VEFSR19EQVRVTSg1KTsKKwkJZXh0Q29uZGl0aW9uID0gUEdfR0VUQVJHX0RBVFVNKDYpOwogCiAJ cmVxdWlyZWRFeHRlbnNpb25zID0gTklMOwotCWlmICghUEdfQVJHSVNOVUxMKDYpKQorCWlmICgh UEdfQVJHSVNOVUxMKDcpKQogCXsKLQkJQXJyYXlUeXBlICAqdGV4dEFycmF5ID0gUEdfR0VUQVJH X0FSUkFZVFlQRV9QKDYpOworCQlBcnJheVR5cGUgICp0ZXh0QXJyYXkgPSBQR19HRVRBUkdfQVJS QVlUWVBFX1AoNyk7CiAJCURhdHVtCSAgICp0ZXh0RGF0dW1zOwogCQlpbnQJCQluZGF0dW1zOwog CQlpbnQJCQlpOwpAQCAtMjM0LDEwICsyMzksMjggQEAgYmluYXJ5X3VwZ3JhZGVfY3JlYXRlX2Vt cHR5X2V4dGVuc2lvbihQR19GVU5DVElPTl9BUkdTKQogCQl9CiAJfQogCisJaWYgKG93bmVkc2No ZW1hKQorCXsKKwkJQ3JlYXRlU2NoZW1hU3RtdCAqY3NzdG10ID0gbWFrZU5vZGUoQ3JlYXRlU2No ZW1hU3RtdCk7CisKKwkJY3NzdG10LT5zY2hlbWFuYW1lID0gc2NoZW1hTmFtZTsKKwkJY3NzdG10 LT5hdXRocm9sZSA9IE5VTEw7CS8qIHdpbGwgYmUgY3JlYXRlZCBieSBjdXJyZW50IHVzZXIgKi8K KwkJY3NzdG10LT5zY2hlbWFFbHRzID0gTklMOworCQljc3N0bXQtPmlmX25vdF9leGlzdHMgPSBm YWxzZTsKKwkJc2NoZW1hT2lkID0gQ3JlYXRlU2NoZW1hQ29tbWFuZChjc3N0bXQsICIoZ2VuZXJh dGVkIENSRUFURSBTQ0hFTUEgY29tbWFuZCkiLAorCQkJCQkJCQkJCS0xLCAtMSk7CisKKwl9CisJ ZWxzZQorCXsKKwkJc2NoZW1hT2lkID0gZ2V0X25hbWVzcGFjZV9vaWQoc2NoZW1hTmFtZSwgZmFs c2UpOworCX0KKwogCUluc2VydEV4dGVuc2lvblR1cGxlKHRleHRfdG9fY3N0cmluZyhleHROYW1l KSwKIAkJCQkJCSBHZXRVc2VySWQoKSwKLQkJCQkJCSBnZXRfbmFtZXNwYWNlX29pZCh0ZXh0X3Rv X2NzdHJpbmcoc2NoZW1hTmFtZSksIGZhbHNlKSwKKwkJCQkJCSBzY2hlbWFPaWQsCiAJCQkJCQkg cmVsb2NhdGFibGUsCisJCQkJCQkgb3duZWRzY2hlbWEsCiAJCQkJCQkgdGV4dF90b19jc3RyaW5n KGV4dFZlcnNpb24pLAogCQkJCQkJIGV4dENvbmZpZywKIAkJCQkJCSBleHRDb25kaXRpb24sCmRp ZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3Bn X2R1bXAuYwppbmRleCA2Mjk4ZWRiMjZiNS4uYzJjZDgxZTFlMzggMTAwNjQ0Ci0tLSBhL3NyYy9i aW4vcGdfZHVtcC9wZ19kdW1wLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAt MTkxMiw2ICsxOTEyLDE5IEBAIGNoZWNrRXh0ZW5zaW9uTWVtYmVyc2hpcChEdW1wYWJsZU9iamVj dCAqZG9iaiwgQXJjaGl2ZSAqZm91dCkKIAlpZiAoZXh0ID09IE5VTEwpCiAJCXJldHVybiBmYWxz ZTsKIAorCS8qCisJICogSWYgdGhpcyBpcyB0aGUgIm93bmVkX3NjaGVtYSIgb2YgdGhlIGV4dGVu c2lvbiwgdGhlbiB3ZSBkb24ndCB3YW50IHRvCisJICogY3JlYXRlIGl0IG1hbnVhbGx5LCBiZWNh dXNlIGl0IGdldHMgY3JlYXRlZCB0b2dldGhlciB3aXRoIHRoZQorCSAqIGV4dGVuc2lvbi4KKwkg Ki8KKwlpZiAoZG9iai0+b2JqVHlwZSA9PSBET19OQU1FU1BBQ0UgJiYKKwkJZXh0LT5vd25lZHNj aGVtYSAmJiBzdHJjbXAoZXh0LT5uYW1lc3BhY2UsIGRvYmotPm5hbWUpID09IDApCisJeworCQlO YW1lc3BhY2VJbmZvICpuc2luZm8gPSAoTmFtZXNwYWNlSW5mbyAqKSBkb2JqOworCisJCW5zaW5m by0+Y3JlYXRlID0gZmFsc2U7CisJfQorCiAJZG9iai0+ZXh0X21lbWJlciA9IHRydWU7CiAKIAkv KiBSZWNvcmQgZGVwZW5kZW5jeSBzbyB0aGF0IGdldERlcGVuZGVuY2llcyBuZWVkbid0IGRlYWwg d2l0aCB0aGF0ICovCkBAIC01ODM2LDcgKzU4NDksNyBAQCBiaW5hcnlfdXBncmFkZV9leHRlbnNp b25fbWVtYmVyKFBRRXhwQnVmZmVyIHVwZ3JhZGVfYnVmZmVyLAogCQkJCQkJCQljb25zdCBjaGFy ICpvYmpuYW1lLAogCQkJCQkJCQljb25zdCBjaGFyICpvYmpuYW1lc3BhY2UpCiB7Ci0JRHVtcGFi bGVPYmplY3QgKmV4dG9iaiA9IE5VTEw7CisJRXh0ZW5zaW9uSW5mbyAqZXh0ID0gTlVMTDsKIAlp bnQJCQlpOwogCiAJaWYgKCFkb2JqLT5leHRfbWVtYmVyKQpAQCAtNTg1MCwxOSArNTg2MywzMyBA QCBiaW5hcnlfdXBncmFkZV9leHRlbnNpb25fbWVtYmVyKFBRRXhwQnVmZmVyIHVwZ3JhZGVfYnVm ZmVyLAogCSAqLwogCWZvciAoaSA9IDA7IGkgPCBkb2JqLT5uRGVwczsgaSsrKQogCXsKLQkJZXh0 b2JqID0gZmluZE9iamVjdEJ5RHVtcElkKGRvYmotPmRlcGVuZGVuY2llc1tpXSk7CisJCUR1bXBh YmxlT2JqZWN0ICpleHRvYmogPSBmaW5kT2JqZWN0QnlEdW1wSWQoZG9iai0+ZGVwZW5kZW5jaWVz W2ldKTsKKwogCQlpZiAoZXh0b2JqICYmIGV4dG9iai0+b2JqVHlwZSA9PSBET19FWFRFTlNJT04p CisJCXsKKwkJCWV4dCA9IChFeHRlbnNpb25JbmZvICopIGV4dG9iajsKIAkJCWJyZWFrOwotCQll eHRvYmogPSBOVUxMOworCQl9CiAJfQotCWlmIChleHRvYmogPT0gTlVMTCkKKwlpZiAoZXh0ID09 IE5VTEwpCiAJCXBnX2ZhdGFsKCJjb3VsZCBub3QgZmluZCBwYXJlbnQgZXh0ZW5zaW9uIGZvciAl cyAlcyIsCiAJCQkJIG9ianR5cGUsIG9iam5hbWUpOwogCisJLyoKKwkgKiBJZiB0aGUgb2JqZWN0 IGlzIHRoZSAib3duZWRfc2NoZW1hIiBvZiB0aGUgZXh0ZW5zaW9uLCB3ZSBkb24ndCBuZWVkIHRv CisJICogYWRkIGl0IHRvIHRoZSBleHRlbnNpb24gYmVjYXVzZSBpdCB3YXMgYWxyZWFkeSBtYWRl IGEgbWVtYmVyIG9mIHRoZQorCSAqIGV4dGVuc2lvbiB3aGVuIHRoZSBleHRlbnNpb24gd2FzIGNy ZWF0ZWQuCisJICovCisJaWYgKGRvYmotPm9ialR5cGUgPT0gRE9fTkFNRVNQQUNFICYmCisJCWV4 dC0+b3duZWRzY2hlbWEgJiYgc3RyY21wKGV4dC0+bmFtZXNwYWNlLCBkb2JqLT5uYW1lKSA9PSAw KQorCXsKKwkJcmV0dXJuOworCX0KKwogCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHVwZ3JhZGVfYnVm ZmVyLAogCQkJCQkJICJcbi0tIEZvciBiaW5hcnkgdXBncmFkZSwgaGFuZGxlIGV4dGVuc2lvbiBt ZW1iZXJzaGlwIHRoZSBoYXJkIHdheVxuIik7CiAJYXBwZW5kUFFFeHBCdWZmZXIodXBncmFkZV9i dWZmZXIsICJBTFRFUiBFWFRFTlNJT04gJXMgQUREICVzICIsCi0JCQkJCSAgZm10SWQoZXh0b2Jq LT5uYW1lKSwKKwkJCQkJICBmbXRJZChleHQtPmRvYmoubmFtZSksCiAJCQkJCSAgb2JqdHlwZSk7 CiAJaWYgKG9iam5hbWVzcGFjZSAmJiAqb2JqbmFtZXNwYWNlKQogCQlhcHBlbmRQUUV4cEJ1ZmZl cih1cGdyYWRlX2J1ZmZlciwgIiVzLiIsIGZtdElkKG9iam5hbWVzcGFjZSkpOwpAQCAtNjAxOSw2 ICs2MDQ2LDcgQEAgZ2V0RXh0ZW5zaW9ucyhBcmNoaXZlICpmb3V0LCBpbnQgKm51bUV4dGVuc2lv bnMpCiAJaW50CQkJaV9leHRuYW1lOwogCWludAkJCWlfbnNwbmFtZTsKIAlpbnQJCQlpX2V4dHJl bG9jYXRhYmxlOworCWludAkJCWlfZXh0b3duZWRzY2hlbWE7CiAJaW50CQkJaV9leHR2ZXJzaW9u OwogCWludAkJCWlfZXh0Y29uZmlnOwogCWludAkJCWlfZXh0Y29uZGl0aW9uOwpAQCAtNjAyNyw3 ICs2MDU1LDE0IEBAIGdldEV4dGVuc2lvbnMoQXJjaGl2ZSAqZm91dCwgaW50ICpudW1FeHRlbnNp b25zKQogCiAJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICJTRUxFQ1QgeC50YWJsZW9pZCwg eC5vaWQsICIKIAkJCQkJCSAieC5leHRuYW1lLCBuLm5zcG5hbWUsIHguZXh0cmVsb2NhdGFibGUs IHguZXh0dmVyc2lvbiwgeC5leHRjb25maWcsIHguZXh0Y29uZGl0aW9uICIKLQkJCQkJCSAiRlJP TSBwZ19leHRlbnNpb24geCAiCisJCSk7CisKKwlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA+PSAx ODAwMDApCisJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiLCB4LmV4dG93bmVkc2NoZW1h ICIpOworCWVsc2UKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICIsIGZhbHNlIEFTIGV4 dG93bmVkc2NoZW1hICIpOworCisJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICJGUk9NIHBn X2V4dGVuc2lvbiB4ICIKIAkJCQkJCSAiSk9JTiBwZ19uYW1lc3BhY2UgbiBPTiBuLm9pZCA9IHgu ZXh0bmFtZXNwYWNlIik7CiAKIAlyZXMgPSBFeGVjdXRlU3FsUXVlcnkoZm91dCwgcXVlcnktPmRh dGEsIFBHUkVTX1RVUExFU19PSyk7CkBAIC02MDQzLDYgKzYwNzgsNyBAQCBnZXRFeHRlbnNpb25z KEFyY2hpdmUgKmZvdXQsIGludCAqbnVtRXh0ZW5zaW9ucykKIAlpX2V4dG5hbWUgPSBQUWZudW1i ZXIocmVzLCAiZXh0bmFtZSIpOwogCWlfbnNwbmFtZSA9IFBRZm51bWJlcihyZXMsICJuc3BuYW1l Iik7CiAJaV9leHRyZWxvY2F0YWJsZSA9IFBRZm51bWJlcihyZXMsICJleHRyZWxvY2F0YWJsZSIp OworCWlfZXh0b3duZWRzY2hlbWEgPSBQUWZudW1iZXIocmVzLCAiZXh0b3duZWRzY2hlbWEiKTsK IAlpX2V4dHZlcnNpb24gPSBQUWZudW1iZXIocmVzLCAiZXh0dmVyc2lvbiIpOwogCWlfZXh0Y29u ZmlnID0gUFFmbnVtYmVyKHJlcywgImV4dGNvbmZpZyIpOwogCWlfZXh0Y29uZGl0aW9uID0gUFFm bnVtYmVyKHJlcywgImV4dGNvbmRpdGlvbiIpOwpAQCAtNjA1Niw2ICs2MDkyLDcgQEAgZ2V0RXh0 ZW5zaW9ucyhBcmNoaXZlICpmb3V0LCBpbnQgKm51bUV4dGVuc2lvbnMpCiAJCWV4dGluZm9baV0u ZG9iai5uYW1lID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX2V4dG5hbWUpKTsKIAkJ ZXh0aW5mb1tpXS5uYW1lc3BhY2UgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfbnNw bmFtZSkpOwogCQlleHRpbmZvW2ldLnJlbG9jYXRhYmxlID0gKihQUWdldHZhbHVlKHJlcywgaSwg aV9leHRyZWxvY2F0YWJsZSkpID09ICd0JzsKKwkJZXh0aW5mb1tpXS5vd25lZHNjaGVtYSA9ICoo UFFnZXR2YWx1ZShyZXMsIGksIGlfZXh0b3duZWRzY2hlbWEpKSA9PSAndCc7CiAJCWV4dGluZm9b aV0uZXh0dmVyc2lvbiA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV9leHR2ZXJzaW9u KSk7CiAJCWV4dGluZm9baV0uZXh0Y29uZmlnID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBp LCBpX2V4dGNvbmZpZykpOwogCQlleHRpbmZvW2ldLmV4dGNvbmRpdGlvbiA9IHBnX3N0cmR1cChQ UWdldHZhbHVlKHJlcywgaSwgaV9leHRjb25kaXRpb24pKTsKQEAgLTExNzMzLDkgKzExNzcwLDkg QEAgZHVtcE5hbWVzcGFjZShBcmNoaXZlICpmb3V0LCBjb25zdCBOYW1lc3BhY2VJbmZvICpuc3Bp bmZvKQogCXsKIAkJLyogc2VlIHNlbGVjdER1bXBhYmxlTmFtZXNwYWNlKCkgKi8KIAkJYXBwZW5k UFFFeHBCdWZmZXJTdHIoZGVscSwKLQkJCQkJCQkgIi0tICpub3QqIGRyb3BwaW5nIHNjaGVtYSwg c2luY2UgaW5pdGRiIGNyZWF0ZXMgaXRcbiIpOworCQkJCQkJCSAiLS0gKm5vdCogZHJvcHBpbmcg c2NoZW1hLCBzaW5jZSBpbml0ZGIgb3IgQ1JFQVRFIEVYVEVOU0lPTiBjcmVhdGVzIGl0XG4iKTsK IAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocSwKLQkJCQkJCQkgIi0tICpub3QqIGNyZWF0aW5nIHNj aGVtYSwgc2luY2UgaW5pdGRiIGNyZWF0ZXMgaXRcbiIpOworCQkJCQkJCSAiLS0gKm5vdCogY3Jl YXRpbmcgc2NoZW1hLCBzaW5jZSBpbml0ZGIgb3IgQ1JFQVRFIEVYVEVOU0lPTiBjcmVhdGVzIGl0 XG4iKTsKIAl9CiAKIAlpZiAoZG9wdC0+YmluYXJ5X3VwZ3JhZGUpCkBAIC0xMTg0Nyw2ICsxMTg4 NCw3IEBAIGR1bXBFeHRlbnNpb24oQXJjaGl2ZSAqZm91dCwgY29uc3QgRXh0ZW5zaW9uSW5mbyAq ZXh0aW5mbykKIAkJYXBwZW5kU3RyaW5nTGl0ZXJhbEFIKHEsIGV4dGluZm8tPm5hbWVzcGFjZSwg Zm91dCk7CiAJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHEsICIsICIpOwogCQlhcHBlbmRQUUV4cEJ1 ZmZlcihxLCAiJXMsICIsIGV4dGluZm8tPnJlbG9jYXRhYmxlID8gInRydWUiIDogImZhbHNlIik7 CisJCWFwcGVuZFBRRXhwQnVmZmVyKHEsICIlcywgIiwgZXh0aW5mby0+b3duZWRzY2hlbWEgPyAi dHJ1ZSIgOiAiZmFsc2UiKTsKIAkJYXBwZW5kU3RyaW5nTGl0ZXJhbEFIKHEsIGV4dGluZm8tPmV4 dHZlcnNpb24sIGZvdXQpOwogCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxLCAiLCAiKTsKIApkaWZm IC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCBiL3NyYy9iaW4vcGdfZHVtcC9wZ19k dW1wLmgKaW5kZXggOTNhNDQ3NWQ1MWIuLjU4ZTJiZTc1MWIzIDEwMDY0NAotLS0gYS9zcmMvYmlu L3BnX2R1bXAvcGdfZHVtcC5oCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKQEAgLTE5 NSw2ICsxOTUsNyBAQCB0eXBlZGVmIHN0cnVjdCBfZXh0ZW5zaW9uSW5mbwogCUR1bXBhYmxlT2Jq ZWN0IGRvYmo7CiAJY2hhcgkgICAqbmFtZXNwYWNlOwkJLyogc2NoZW1hIGNvbnRhaW5pbmcgZXh0 ZW5zaW9uJ3Mgb2JqZWN0cyAqLwogCWJvb2wJCXJlbG9jYXRhYmxlOworCWJvb2wJCW93bmVkc2No ZW1hOwogCWNoYXIJICAgKmV4dHZlcnNpb247CiAJY2hhcgkgICAqZXh0Y29uZmlnOwkJLyogaW5m byBhYm91dCBjb25maWd1cmF0aW9uIHRhYmxlcyAqLwogCWNoYXIJICAgKmV4dGNvbmRpdGlvbjsK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfZXh0ZW5zaW9uLmggYi9zcmMvaW5j bHVkZS9jYXRhbG9nL3BnX2V4dGVuc2lvbi5oCmluZGV4IDkyMTRlYmVkYWZhLi4wMjJiZDZkZDky YiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19leHRlbnNpb24uaAorKysgYi9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX2V4dGVuc2lvbi5oCkBAIC0zNCw2ICszNCw3IEBAIENBVEFM T0cocGdfZXh0ZW5zaW9uLDMwNzksRXh0ZW5zaW9uUmVsYXRpb25JZCkKIAlPaWQJCQlleHRuYW1l c3BhY2UgQktJX0xPT0tVUChwZ19uYW1lc3BhY2UpOwkvKiBuYW1lc3BhY2Ugb2YKIAkJCQkJCQkJ CQkJCQkJICogY29udGFpbmVkIG9iamVjdHMgKi8KIAlib29sCQlleHRyZWxvY2F0YWJsZTsgLyog aWYgdHJ1ZSwgYWxsb3cgQUxURVIgRVhURU5TSU9OIFNFVCBTQ0hFTUEgKi8KKwlib29sCQlleHRv d25lZHNjaGVtYTsgLyogaWYgdHJ1ZSwgc2NoZW1hIGlzIG93bmVkIGJ5IGV4dGVuc2lvbiAqLwog CiAjaWZkZWYgQ0FUQUxPR19WQVJMRU4JCQkvKiB2YXJpYWJsZS1sZW5ndGggZmllbGRzIHN0YXJ0 IGhlcmUgKi8KIAkvKiBleHR2ZXJzaW9uIG1heSBuZXZlciBiZSBudWxsLCBidXQgdGhlIG90aGVy cyBjYW4gYmUuICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0 IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCAzZWU4ZmVkN2U1My4uMjAx ZDA0ZTk4Y2YgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKKysr IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAtMTE3NjEsNyArMTE3NjEsNyBA QAogeyBvaWQgPT4gJzM1OTEnLCBkZXNjciA9PiAnZm9yIHVzZSBieSBwZ191cGdyYWRlJywKICAg cHJvbmFtZSA9PiAnYmluYXJ5X3VwZ3JhZGVfY3JlYXRlX2VtcHR5X2V4dGVuc2lvbicsIHByb2lz c3RyaWN0ID0+ICdmJywKICAgcHJvdm9sYXRpbGUgPT4gJ3YnLCBwcm9wYXJhbGxlbCA9PiAndScs IHByb3JldHR5cGUgPT4gJ3ZvaWQnLAotICBwcm9hcmd0eXBlcyA9PiAndGV4dCB0ZXh0IGJvb2wg dGV4dCBfb2lkIF90ZXh0IF90ZXh0JywKKyAgcHJvYXJndHlwZXMgPT4gJ3RleHQgdGV4dCBib29s IGJvb2wgdGV4dCBfb2lkIF90ZXh0IF90ZXh0JywKICAgcHJvc3JjID0+ICdiaW5hcnlfdXBncmFk ZV9jcmVhdGVfZW1wdHlfZXh0ZW5zaW9uJyB9LAogeyBvaWQgPT4gJzQwODMnLCBkZXNjciA9PiAn Zm9yIHVzZSBieSBwZ191cGdyYWRlJywKICAgcHJvbmFtZSA9PiAnYmluYXJ5X3VwZ3JhZGVfc2V0 X3JlY29yZF9pbml0X3ByaXZzJywgcHJvdm9sYXRpbGUgPT4gJ3YnLApkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvY29tbWFuZHMvZXh0ZW5zaW9uLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9leHRl bnNpb24uaAppbmRleCAyNDQxOWJmYjVjOS4uMjA1YzVjNzI0NWYgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL2NvbW1hbmRzL2V4dGVuc2lvbi5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2V4 dGVuc2lvbi5oCkBAIC0zOCw3ICszOCw5IEBAIGV4dGVybiBPYmplY3RBZGRyZXNzIENyZWF0ZUV4 dGVuc2lvbihQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZUV4dGVuc2lvblN0bXQgKnN0CiBleHRl cm4gdm9pZCBSZW1vdmVFeHRlbnNpb25CeUlkKE9pZCBleHRJZCk7CiAKIGV4dGVybiBPYmplY3RB ZGRyZXNzIEluc2VydEV4dGVuc2lvblR1cGxlKGNvbnN0IGNoYXIgKmV4dE5hbWUsIE9pZCBleHRP d25lciwKLQkJCQkJCQkJCQkgIE9pZCBzY2hlbWFPaWQsIGJvb2wgcmVsb2NhdGFibGUsIGNvbnN0 IGNoYXIgKmV4dFZlcnNpb24sCisJCQkJCQkJCQkJICBPaWQgc2NoZW1hT2lkLCBib29sIHJlbG9j YXRhYmxlLAorCQkJCQkJCQkJCSAgYm9vbCBvd25lZFNjaGVtYSwKKwkJCQkJCQkJCQkgIGNvbnN0 IGNoYXIgKmV4dFZlcnNpb24sCiAJCQkJCQkJCQkJICBEYXR1bSBleHRDb25maWcsIERhdHVtIGV4 dENvbmRpdGlvbiwKIAkJCQkJCQkJCQkgIExpc3QgKnJlcXVpcmVkRXh0ZW5zaW9ucyk7CiAKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9leHRlbnNpb25zL01ha2VmaWxlIGIvc3Jj L3Rlc3QvbW9kdWxlcy90ZXN0X2V4dGVuc2lvbnMvTWFrZWZpbGUKaW5kZXggYTM1OTFiZjNkMmYu LmE2NTk0YzE5ZDdlIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfZXh0ZW5zaW9u cy9NYWtlZmlsZQorKysgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfZXh0ZW5zaW9ucy9NYWtlZmls ZQpAQCAtOSw3ICs5LDggQEAgRVhURU5TSU9OID0gdGVzdF9leHQxIHRlc3RfZXh0MiB0ZXN0X2V4 dDMgdGVzdF9leHQ0IHRlc3RfZXh0NSB0ZXN0X2V4dDYgXAogICAgICAgICAgICAgdGVzdF9leHRf ZXh0c2NoZW1hIFwKICAgICAgICAgICAgIHRlc3RfZXh0X2V2dHRyaWcgXAogICAgICAgICAgICAg dGVzdF9leHRfc2V0X3NjaGVtYSBcCi0gICAgICAgICAgICB0ZXN0X2V4dF9yZXFfc2NoZW1hMSB0 ZXN0X2V4dF9yZXFfc2NoZW1hMiB0ZXN0X2V4dF9yZXFfc2NoZW1hMworICAgICAgICAgICAgdGVz dF9leHRfcmVxX3NjaGVtYTEgdGVzdF9leHRfcmVxX3NjaGVtYTIgdGVzdF9leHRfcmVxX3NjaGVt YTMgXAorICAgICAgICAgICAgdGVzdF9leHRfb3duZWRfc2NoZW1hIHRlc3RfZXh0X293bmVkX3Nj aGVtYV9yZWxvY2F0YWJsZQogCiBEQVRBID0gdGVzdF9leHQxLS0xLjAuc3FsIHRlc3RfZXh0Mi0t MS4wLnNxbCB0ZXN0X2V4dDMtLTEuMC5zcWwgXAogICAgICAgIHRlc3RfZXh0NC0tMS4wLnNxbCB0 ZXN0X2V4dDUtLTEuMC5zcWwgdGVzdF9leHQ2LS0xLjAuc3FsIFwKQEAgLTI1LDcgKzI2LDkgQEAg REFUQSA9IHRlc3RfZXh0MS0tMS4wLnNxbCB0ZXN0X2V4dDItLTEuMC5zcWwgdGVzdF9leHQzLS0x LjAuc3FsIFwKICAgICAgICB0ZXN0X2V4dF9zZXRfc2NoZW1hLS0xLjAuc3FsIFwKICAgICAgICB0 ZXN0X2V4dF9yZXFfc2NoZW1hMS0tMS4wLnNxbCBcCiAgICAgICAgdGVzdF9leHRfcmVxX3NjaGVt YTItLTEuMC5zcWwgXAotICAgICAgIHRlc3RfZXh0X3JlcV9zY2hlbWEzLS0xLjAuc3FsCisgICAg ICAgdGVzdF9leHRfcmVxX3NjaGVtYTMtLTEuMC5zcWwgXAorICAgICAgIHRlc3RfZXh0X293bmVk X3NjaGVtYS0tMS4wLnNxbCBcCisgICAgICAgdGVzdF9leHRfb3duZWRfc2NoZW1hX3JlbG9jYXRh YmxlLS0xLjAuc3FsCiAKIFJFR1JFU1MgPSB0ZXN0X2V4dGVuc2lvbnMgdGVzdF9leHRkZXBlbmQK IFRBUF9URVNUUyA9IDEKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9leHRlbnNp b25zL2V4cGVjdGVkL3Rlc3RfZXh0ZW5zaW9ucy5vdXQgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3Rf ZXh0ZW5zaW9ucy9leHBlY3RlZC90ZXN0X2V4dGVuc2lvbnMub3V0CmluZGV4IDcyYmFlMWJmMjU0 Li5iZjlmYzI5NTI4MCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2V4dGVuc2lv bnMvZXhwZWN0ZWQvdGVzdF9leHRlbnNpb25zLm91dAorKysgYi9zcmMvdGVzdC9tb2R1bGVzL3Rl c3RfZXh0ZW5zaW9ucy9leHBlY3RlZC90ZXN0X2V4dGVuc2lvbnMub3V0CkBAIC05LDYgKzksNyBA QCBDUkVBVEUgRVhURU5TSU9OIHRlc3RfZXh0MSBTQ0hFTUEgdGVzdF9leHQ7CiBFUlJPUjogIHNj aGVtYSAidGVzdF9leHQiIGRvZXMgbm90IGV4aXN0CiBDUkVBVEUgRVhURU5TSU9OIHRlc3RfZXh0 MSBTQ0hFTUEgaGFzJGRvbGxhcjsKIEVSUk9SOiAgZXh0ZW5zaW9uICJ0ZXN0X2V4dDEiIG11c3Qg YmUgaW5zdGFsbGVkIGluIHNjaGVtYSAidGVzdF9leHQxIgorSElOVDogIERvIG5vdCBzcGVjaWZ5 IFNDSEVNQSB3aGVuIHJ1bm5pbmcgQ1JFQVRFIEVYVEVOU0lPTiBmb3IgZXh0ZW5zaW9uICJ0ZXN0 X2V4dDEiCiAtLSBmaW5hbGx5IHN1Y2Nlc3MKIENSRUFURSBFWFRFTlNJT04gdGVzdF9leHQxIFND SEVNQSBoYXMkZG9sbGFyIENBU0NBREU7CiBOT1RJQ0U6ICBpbnN0YWxsaW5nIHJlcXVpcmVkIGV4 dGVuc2lvbiAidGVzdF9leHQyIgpAQCAtNjY4LDMgKzY2OSw1NiBAQCBTRUxFQ1QgdGVzdF9zX2Rl cC5kZXBfcmVxMigpOwogCiBEUk9QIEVYVEVOU0lPTiB0ZXN0X2V4dF9yZXFfc2NoZW1hMSBDQVND QURFOwogTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byBleHRlbnNpb24gdGVzdF9leHRfcmVxX3Nj aGVtYTIKKy0tCistLSBUZXN0IG93bmVkIHNjaGVtYSBleHRlbnNpb25zCistLQorQ1JFQVRFIFND SEVNQSB0ZXN0X2V4dF9vd25lZF9zY2hlbWE7CistLSBGYWlscyBmb3IgYW4gYWxyZWFkeSBleGlz dGluZyBzY2hlbWEgdG8gYmUgcHJvdmlkZWQKK0NSRUFURSBFWFRFTlNJT04gdGVzdF9leHRfb3du ZWRfc2NoZW1hIFNDSEVNQSB0ZXN0X2V4dF9vd25lZF9zY2hlbWE7CitFUlJPUjogIHNjaGVtYSAi dGVzdF9leHRfb3duZWRfc2NoZW1hIiBhbHJlYWR5IGV4aXN0cyBidXQgdGhlIGV4dGVuc2lvbiBu ZWVkcyB0byBjcmVhdGUgaXQKK0hJTlQ6ICBEcm9wIHNjaGVtYSAidGVzdF9leHRfb3duZWRfc2No ZW1hIiBvciBzcGVjaWZ5IGFub3RoZXIgc2NoZW1hIHVzaW5nIENSRUFURSBFWFRFTlNJT04gLi4u IFNDSEVNQSAuLi4KKy0tIEZhaWxzIGJlY2F1c2UgYSBkaWZmZXJlbnQgc2NoZW1hIGlzIHNldCBp biBjb250cm9sIGZpbGUKK0NSRUFURSBFWFRFTlNJT04gdGVzdF9leHRfb3duZWRfc2NoZW1hIFND SEVNQSB0ZXN0X3NjaGVtYTsKK0VSUk9SOiAgZXh0ZW5zaW9uICJ0ZXN0X2V4dF9vd25lZF9zY2hl bWEiIG11c3QgYmUgaW5zdGFsbGVkIGluIHNjaGVtYSAidGVzdF9leHRfb3duZWRfc2NoZW1hIgor SElOVDogIERvIG5vdCBzcGVjaWZ5IFNDSEVNQSB3aGVuIHJ1bm5pbmcgQ1JFQVRFIEVYVEVOU0lP TiBmb3IgZXh0ZW5zaW9uICJ0ZXN0X2V4dF9vd25lZF9zY2hlbWEiCitEUk9QIFNDSEVNQSB0ZXN0 X2V4dF9vd25lZF9zY2hlbWE7CitDUkVBVEUgRVhURU5TSU9OIHRlc3RfZXh0X293bmVkX3NjaGVt YTsKK1xkeCsgdGVzdF9leHRfb3duZWRfc2NoZW1hOworT2JqZWN0cyBpbiBleHRlbnNpb24gInRl c3RfZXh0X293bmVkX3NjaGVtYSIKKyAgICAgICAgICAgT2JqZWN0IGRlc2NyaXB0aW9uICAgICAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGZ1bmN0 aW9uIHRlc3RfZXh0X293bmVkX3NjaGVtYS5vd25lZDEoKQorIHNjaGVtYSB0ZXN0X2V4dF9vd25l ZF9zY2hlbWEKKygyIHJvd3MpCisKK0RST1AgRVhURU5TSU9OIHRlc3RfZXh0X293bmVkX3NjaGVt YTsKK0NSRUFURSBTQ0hFTUEgYWxyZWFkeV9leGlzdGluZzsKKy0tIEZhaWxzIGZvciBhbiBhbHJl YWR5IGV4aXN0aW5nIHNjaGVtYSB0byBiZSBwcm92aWRlZAorQ1JFQVRFIEVYVEVOU0lPTiB0ZXN0 X2V4dF9vd25lZF9zY2hlbWFfcmVsb2NhdGFibGUgU0NIRU1BIGFscmVhZHlfZXhpc3Rpbmc7CitF UlJPUjogIHNjaGVtYSAiYWxyZWFkeV9leGlzdGluZyIgYWxyZWFkeSBleGlzdHMgYnV0IHRoZSBl eHRlbnNpb24gbmVlZHMgdG8gY3JlYXRlIGl0CitISU5UOiAgRHJvcCBzY2hlbWEgImFscmVhZHlf ZXhpc3RpbmciIG9yIHNwZWNpZnkgYW5vdGhlciBzY2hlbWEgdXNpbmcgQ1JFQVRFIEVYVEVOU0lP TiAuLi4gU0NIRU1BIC4uLgorLS0gRmFpbHMgYmVjYXVzZSBubyBzY2hlbWEgaXMgc2V0IGluIGNv bnRyb2wgZmlsZQorQ1JFQVRFIEVYVEVOU0lPTiB0ZXN0X2V4dF9vd25lZF9zY2hlbWFfcmVsb2Nh dGFibGU7CitFUlJPUjogIG5vIHNjaGVtYSBoYXMgYmVlbiBzZWxlY3RlZCB0byBjcmVhdGUgaW4K K0NSRUFURSBFWFRFTlNJT04gdGVzdF9leHRfb3duZWRfc2NoZW1hX3JlbG9jYXRhYmxlIFNDSEVN QSB0ZXN0X3NjaGVtYTsKK1xkeCsgdGVzdF9leHRfb3duZWRfc2NoZW1hX3JlbG9jYXRhYmxlCitP YmplY3RzIGluIGV4dGVuc2lvbiAidGVzdF9leHRfb3duZWRfc2NoZW1hX3JlbG9jYXRhYmxlIgor ICAgICAgT2JqZWN0IGRlc2NyaXB0aW9uICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIGZ1bmN0aW9uIHRlc3Rfc2NoZW1hLm93bmVkMigpCisgc2NoZW1hIHRlc3Rfc2No ZW1hCisoMiByb3dzKQorCistLSBGYWlscyBiZWNhdXNlIHNjaGVtYSBhbHJlYWR5IGV4aXN0cwor QUxURVIgRVhURU5TSU9OIHRlc3RfZXh0X293bmVkX3NjaGVtYV9yZWxvY2F0YWJsZSBTRVQgU0NI RU1BIGFscmVhZHlfZXhpc3Rpbmc7CitFUlJPUjogIHNjaGVtYSAiYWxyZWFkeV9leGlzdGluZyIg YWxyZWFkeSBleGlzdHMKK0FMVEVSIEVYVEVOU0lPTiB0ZXN0X2V4dF9vd25lZF9zY2hlbWFfcmVs b2NhdGFibGUgU0VUIFNDSEVNQSBzb21lX290aGVyX25hbWU7CitcZHgrIHRlc3RfZXh0X293bmVk X3NjaGVtYV9yZWxvY2F0YWJsZQorT2JqZWN0cyBpbiBleHRlbnNpb24gInRlc3RfZXh0X293bmVk X3NjaGVtYV9yZWxvY2F0YWJsZSIKKyAgICAgICAgT2JqZWN0IGRlc2NyaXB0aW9uICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGZ1bmN0aW9uIHNvbWVfb3Ro ZXJfbmFtZS5vd25lZDIoKQorIHNjaGVtYSBzb21lX290aGVyX25hbWUKKygyIHJvd3MpCisKK0RS T1AgRVhURU5TSU9OIHRlc3RfZXh0X293bmVkX3NjaGVtYV9yZWxvY2F0YWJsZTsKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9leHRlbnNpb25zL21lc29uLmJ1aWxkIGIvc3JjL3Rl c3QvbW9kdWxlcy90ZXN0X2V4dGVuc2lvbnMvbWVzb24uYnVpbGQKaW5kZXggM2M3ZTM3OGJmMzUu LmM0OTEzZmI5Yzg2IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfZXh0ZW5zaW9u cy9tZXNvbi5idWlsZAorKysgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfZXh0ZW5zaW9ucy9tZXNv bi5idWlsZApAQCAtNDQsNiArNDQsMTAgQEAgdGVzdF9pbnN0YWxsX2RhdGEgKz0gZmlsZXMoCiAg ICd0ZXN0X2V4dF9yZXFfc2NoZW1hMy5jb250cm9sJywKICAgJ3Rlc3RfZXh0X3NldF9zY2hlbWEt LTEuMC5zcWwnLAogICAndGVzdF9leHRfc2V0X3NjaGVtYS5jb250cm9sJywKKyAgJ3Rlc3RfZXh0 X293bmVkX3NjaGVtYS0tMS4wLnNxbCcsCisgICd0ZXN0X2V4dF9vd25lZF9zY2hlbWEuY29udHJv bCcsCisgICd0ZXN0X2V4dF9vd25lZF9zY2hlbWFfcmVsb2NhdGFibGUtLTEuMC5zcWwnLAorICAn dGVzdF9leHRfb3duZWRfc2NoZW1hX3JlbG9jYXRhYmxlLmNvbnRyb2wnLAogKQogCiB0ZXN0cyAr PSB7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfZXh0ZW5zaW9ucy9zcWwvdGVz dF9leHRlbnNpb25zLnNxbCBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9leHRlbnNpb25zL3NxbC90 ZXN0X2V4dGVuc2lvbnMuc3FsCmluZGV4IGI1ODc4ZjZmODBmLi5hOTc4NjZkMDBlYSAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2V4dGVuc2lvbnMvc3FsL3Rlc3RfZXh0ZW5zaW9u cy5zcWwKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2V4dGVuc2lvbnMvc3FsL3Rlc3RfZXh0 ZW5zaW9ucy5zcWwKQEAgLTMwMywzICszMDMsMzAgQEAgQUxURVIgRVhURU5TSU9OIHRlc3RfZXh0 X3JlcV9zY2hlbWExIFNFVCBTQ0hFTUEgdGVzdF9zX2RlcDI7ICAtLSBub3cgb2sKIFNFTEVDVCB0 ZXN0X3NfZGVwMi5kZXBfcmVxMSgpOwogU0VMRUNUIHRlc3Rfc19kZXAuZGVwX3JlcTIoKTsKIERS T1AgRVhURU5TSU9OIHRlc3RfZXh0X3JlcV9zY2hlbWExIENBU0NBREU7CisKKy0tCistLSBUZXN0 IG93bmVkIHNjaGVtYSBleHRlbnNpb25zCistLQorCitDUkVBVEUgU0NIRU1BIHRlc3RfZXh0X293 bmVkX3NjaGVtYTsKKy0tIEZhaWxzIGZvciBhbiBhbHJlYWR5IGV4aXN0aW5nIHNjaGVtYSB0byBi ZSBwcm92aWRlZAorQ1JFQVRFIEVYVEVOU0lPTiB0ZXN0X2V4dF9vd25lZF9zY2hlbWEgU0NIRU1B IHRlc3RfZXh0X293bmVkX3NjaGVtYTsKKy0tIEZhaWxzIGJlY2F1c2UgYSBkaWZmZXJlbnQgc2No ZW1hIGlzIHNldCBpbiBjb250cm9sIGZpbGUKK0NSRUFURSBFWFRFTlNJT04gdGVzdF9leHRfb3du ZWRfc2NoZW1hIFNDSEVNQSB0ZXN0X3NjaGVtYTsKK0RST1AgU0NIRU1BIHRlc3RfZXh0X293bmVk X3NjaGVtYTsKK0NSRUFURSBFWFRFTlNJT04gdGVzdF9leHRfb3duZWRfc2NoZW1hOworXGR4KyB0 ZXN0X2V4dF9vd25lZF9zY2hlbWE7CitEUk9QIEVYVEVOU0lPTiB0ZXN0X2V4dF9vd25lZF9zY2hl bWE7CisKK0NSRUFURSBTQ0hFTUEgYWxyZWFkeV9leGlzdGluZzsKKy0tIEZhaWxzIGZvciBhbiBh bHJlYWR5IGV4aXN0aW5nIHNjaGVtYSB0byBiZSBwcm92aWRlZAorQ1JFQVRFIEVYVEVOU0lPTiB0 ZXN0X2V4dF9vd25lZF9zY2hlbWFfcmVsb2NhdGFibGUgU0NIRU1BIGFscmVhZHlfZXhpc3Rpbmc7 CistLSBGYWlscyBiZWNhdXNlIG5vIHNjaGVtYSBpcyBzZXQgaW4gY29udHJvbCBmaWxlCitDUkVB VEUgRVhURU5TSU9OIHRlc3RfZXh0X293bmVkX3NjaGVtYV9yZWxvY2F0YWJsZTsKK0NSRUFURSBF WFRFTlNJT04gdGVzdF9leHRfb3duZWRfc2NoZW1hX3JlbG9jYXRhYmxlIFNDSEVNQSB0ZXN0X3Nj aGVtYTsKK1xkeCsgdGVzdF9leHRfb3duZWRfc2NoZW1hX3JlbG9jYXRhYmxlCistLSBGYWlscyBi ZWNhdXNlIHNjaGVtYSBhbHJlYWR5IGV4aXN0cworQUxURVIgRVhURU5TSU9OIHRlc3RfZXh0X293 bmVkX3NjaGVtYV9yZWxvY2F0YWJsZSBTRVQgU0NIRU1BIGFscmVhZHlfZXhpc3Rpbmc7CitBTFRF UiBFWFRFTlNJT04gdGVzdF9leHRfb3duZWRfc2NoZW1hX3JlbG9jYXRhYmxlIFNFVCBTQ0hFTUEg c29tZV9vdGhlcl9uYW1lOworXGR4KyB0ZXN0X2V4dF9vd25lZF9zY2hlbWFfcmVsb2NhdGFibGUK K0RST1AgRVhURU5TSU9OIHRlc3RfZXh0X293bmVkX3NjaGVtYV9yZWxvY2F0YWJsZTsKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9leHRlbnNpb25zL3Rlc3RfZXh0X293bmVkX3Nj aGVtYS0tMS4wLnNxbCBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9leHRlbnNpb25zL3Rlc3RfZXh0 X293bmVkX3NjaGVtYS0tMS4wLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uNjcyYWI4ZTYwN2YKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9tb2R1bGVzL3Rl c3RfZXh0ZW5zaW9ucy90ZXN0X2V4dF9vd25lZF9zY2hlbWEtLTEuMC5zcWwKQEAgLTAsMCArMSwy IEBACitDUkVBVEUgRlVOQ1RJT04gb3duZWQxKCkgUkVUVVJOUyB0ZXh0CitMQU5HVUFHRSBTUUwg QVMgJCQgU0VMRUNUIDEgJCQ7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfZXh0 ZW5zaW9ucy90ZXN0X2V4dF9vd25lZF9zY2hlbWEuY29udHJvbCBiL3NyYy90ZXN0L21vZHVsZXMv dGVzdF9leHRlbnNpb25zL3Rlc3RfZXh0X293bmVkX3NjaGVtYS5jb250cm9sCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41MzFjMzhkYWVmZAotLS0gL2Rldi9udWxsCisr KyBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9leHRlbnNpb25zL3Rlc3RfZXh0X293bmVkX3NjaGVt YS5jb250cm9sCkBAIC0wLDAgKzEsNSBAQAorY29tbWVudCA9ICdUZXN0IGV4dGVuc2lvbiB3aXRo IGFuIG93bmVkIHNjaGVtYScKK2RlZmF1bHRfdmVyc2lvbiA9ICcxLjAnCityZWxvY2F0YWJsZSA9 IGZhbHNlCitzY2hlbWEgPSB0ZXN0X2V4dF9vd25lZF9zY2hlbWEKK293bmVkX3NjaGVtYSA9IHRy dWUKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9leHRlbnNpb25zL3Rlc3RfZXh0 X293bmVkX3NjaGVtYV9yZWxvY2F0YWJsZS0tMS4wLnNxbCBiL3NyYy90ZXN0L21vZHVsZXMvdGVz dF9leHRlbnNpb25zL3Rlc3RfZXh0X293bmVkX3NjaGVtYV9yZWxvY2F0YWJsZS0tMS4wLnNxbApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYmZjY2FmNGFmODIKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfZXh0ZW5zaW9ucy90ZXN0X2V4dF9v d25lZF9zY2hlbWFfcmVsb2NhdGFibGUtLTEuMC5zcWwKQEAgLTAsMCArMSwyIEBACitDUkVBVEUg RlVOQ1RJT04gb3duZWQyKCkgUkVUVVJOUyB0ZXh0CitMQU5HVUFHRSBTUUwgQVMgJCQgU0VMRUNU IDEgJCQ7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfZXh0ZW5zaW9ucy90ZXN0 X2V4dF9vd25lZF9zY2hlbWFfcmVsb2NhdGFibGUuY29udHJvbCBiL3NyYy90ZXN0L21vZHVsZXMv dGVzdF9leHRlbnNpb25zL3Rlc3RfZXh0X293bmVkX3NjaGVtYV9yZWxvY2F0YWJsZS5jb250cm9s Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zY2RhMWUxMjM0MQotLS0g L2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9leHRlbnNpb25zL3Rlc3RfZXh0 X293bmVkX3NjaGVtYV9yZWxvY2F0YWJsZS5jb250cm9sCkBAIC0wLDAgKzEsNCBAQAorY29tbWVu dCA9ICdUZXN0IGV4dGVuc2lvbiB3aXRoIGFuIG93bmVkIHNjaGVtYScKK2RlZmF1bHRfdmVyc2lv biA9ICcxLjAnCityZWxvY2F0YWJsZSA9IHRydWUKK293bmVkX3NjaGVtYSA9IHRydWUKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9wZ19kdW1wL3QvMDAxX2Jhc2UucGwgYi9zcmMv dGVzdC9tb2R1bGVzL3Rlc3RfcGdfZHVtcC90LzAwMV9iYXNlLnBsCmluZGV4IGFkY2FhNDE5NjE2 Li5iYjdkNDE0ZGExNiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X3BnX2R1bXAv dC8wMDFfYmFzZS5wbAorKysgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfcGdfZHVtcC90LzAwMV9i YXNlLnBsCkBAIC0zODEsNiArMzgxLDM4IEBAIG15ICV0ZXN0cyA9ICgKIAkJfSwKIAl9LAogCisJ J0NSRUFURSBFWFRFTlNJT04gdGVzdF9leHRfb3duZWRfc2NoZW1hJyA9PiB7CisJCWNyZWF0ZV9v cmRlciA9PiAxLAorCQljcmVhdGVfc3FsID0+ICdDUkVBVEUgRVhURU5TSU9OIHRlc3RfZXh0X293 bmVkX3NjaGVtYTsnLAorCQlyZWdleHAgPT4gcXIvXgorCQkJXFFDUkVBVEUgRVhURU5TSU9OIElG IE5PVCBFWElTVFMgdGVzdF9leHRfb3duZWRfc2NoZW1hIFdJVEggU0NIRU1BIHRlc3RfZXh0X293 bmVkX3NjaGVtYTtcRQorCQkJXG4veG0sCisJCWxpa2UgPT4geworCQkJJWZ1bGxfcnVucywKKwkJ CXNjaGVtYV9vbmx5ID0+IDEsCisJCQlzZWN0aW9uX3ByZV9kYXRhID0+IDEsCisJCX0sCisJCXVu bGlrZSA9PiB7CisJCQliaW5hcnlfdXBncmFkZSA9PiAxLAorCQkJd2l0aF9leHRlbnNpb24gPT4g MSwKKwkJCXdpdGhvdXRfZXh0ZW5zaW9uID0+IDEKKwkJfQorCX0sCisKKwknQ1JFQVRFIFNDSEVN QSB0ZXN0X2V4dF9vd25lZF9zY2hlbWEnID0+IHsKKwkJcmVnZXhwID0+IHFyL14KKwkJCVxRQ1JF QVRFIFNDSEVNQSB0ZXN0X2V4dF9vd25lZF9zY2hlbWE7XEUKKwkJCVxuL3htLAorCQlsaWtlID0+ IHt9LAorCX0sCisKKwknQUxURVIgRVhURU5TSU9OIHRlc3RfZXh0X293bmVkX3NjaGVtYSBBREQg U0NIRU1BIHRlc3RfZXh0X293bmVkX3NjaGVtYScgPT4geworCQlyZWdleHAgPT4gcXIvXgorCQkJ XFFBTFRFUiBFWFRFTlNJT04gdGVzdF9leHRfb3duZWRfc2NoZW1hIEFERCBTQ0hFTUEgdGVzdF9l eHRfb3duZWRfc2NoZW1hO1xFCisJCQlcbi94bSwKKwkJbGlrZSA9PiB7fSwKKwl9LAorCiAJJ0NS RUFURSBST0xFIHJlZ3Jlc3NfZHVtcF90ZXN0X3JvbGUnID0+IHsKIAkJY3JlYXRlX29yZGVyID0+ IDEsCiAJCWNyZWF0ZV9zcWwgPT4gJ0NSRUFURSBST0xFIHJlZ3Jlc3NfZHVtcF90ZXN0X3JvbGU7 JywKCmJhc2UtY29tbWl0OiAyNThiZjBhMmVhOGZmODYyNTdmNzUwMDE4YmZkNDQzOTdjZTdlNTU0 Ci0tIAoyLjQzLjAKCg== --d47389abb422c89623842a6fa5632a014e3e75f3984ce2f2ad15ac2265bd--