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 1sJx5w-007XnS-Hk for pgsql-hackers@arkaria.postgresql.org; Wed, 19 Jun 2024 15:19:33 +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 1sJx5u-000pwS-Au for pgsql-hackers@arkaria.postgresql.org; Wed, 19 Jun 2024 15:19:31 +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 1sJx5t-000pvi-PV for pgsql-hackers@lists.postgresql.org; Wed, 19 Jun 2024 15:19:30 +0000 Received: from mail-yw1-x1133.google.com ([2607:f8b0:4864:20::1133]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1sJx5r-002URU-Tw for pgsql-hackers@postgresql.org; Wed, 19 Jun 2024 15:19:30 +0000 Received: by mail-yw1-x1133.google.com with SMTP id 00721157ae682-63ba688bdc9so2961137b3.1 for ; Wed, 19 Jun 2024 08:19:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jeltef.nl; s=google; t=1718810366; x=1719415166; darn=postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=cU3DhkVeGt4K6g2hbII9qm61l+tIVvxEYpj9WFthwAY=; b=TNadPMfkLuD23rkGMmRv/O+NPLWfXKZLAz2EYtklNCO5QJuNtiYJHptkdnAvU/Huhh Xq8wc8Q4IDlpLEkTqdnR1fjEAKOmqYP10VPexoNKWM3e5CarO6dvLmpoynh+/DtkJBco 3d91HupWqC1t6XkxTiRC0irfTbk7xIFvQ3O03FpZlUUbII3O7A5L6lIWAQ6SIAxyq7uc THxsOsrISCqIee2yQCFJVPQVg5/2nCsI2sQVK69VAu9IofAoiUUt3GdFvla3x582rzUh Ndb/DbIMbvD7In3UspBn3mA4Cz6avjNnVMoXVs7FEY6kv1mpaDWXGe43ZcotydgcSY8h yUcg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718810366; x=1719415166; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=cU3DhkVeGt4K6g2hbII9qm61l+tIVvxEYpj9WFthwAY=; b=lit0sP3LO3qG1KaR3dGS9ZMgjoTK+nnezq73vk6uPb7Gbbq3OBZaifq41vjkCAxHJX z+bBX6uSbQFjpwBuzk03284nOngxYXuEFwpslrpk1+ZAV3xcDpoP1/z40VkDCprXETpS re4F3ubZNjii47ZMNOs1lYcImGi/aqyNkQGI1ioIjDCA0Bkn5+z1xDnfphuY3GAIhpc6 Xiwh2NiGNQYG6Iatusl50vm5m8Pl/qKeeB36USMQ7lTs9Vs4RdqqRQfOlvysz9YsXNhz 3X3Vr14SNE+QdHmB6MdLSCsepvcIu+HAJ2l8gldJHbdnzLdxQzhHoENffGaxyQ08lwdE luGQ== X-Gm-Message-State: AOJu0YyLcI5QF8ZPzOFr48bhdubOWIyYupxDoq7Za83qWkVKZ59z+mhw oZ+ot+PgDBeMw97rn//fiogiQvUBr8Flm5Uacn2cMlYmiKyEDypw1xdLv669GI18G8/0V+t9ZuH yEvc5Xe0eZtPILDzxPgNhhHV3gCFcSnTneC/X0g== X-Google-Smtp-Source: AGHT+IE4eSAc2zjHnEf52xkMxNIdba/tVYFc+pbI0Z2mZWOSlFHZK0OVXqJv+Q97fPMKrNpWSPepN8jCSF6EgzbuVY0= X-Received: by 2002:a25:dbce:0:b0:e02:c3a1:bb04 with SMTP id 3f1490d57ef6-e02c3a1be7cmr1943718276.22.1718810366050; Wed, 19 Jun 2024 08:19:26 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Jelte Fennema-Nio Date: Wed, 19 Jun 2024 17:19:14 +0200 Message-ID: Subject: Re: Extension security improvement: Add support for extensions with an owned schema To: Jeff Davis Cc: PostgreSQL-development Content-Type: multipart/mixed; boundary="0000000000004ea071061b3fb94f" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000004ea071061b3fb94f Content-Type: text/plain; charset="UTF-8" Attached is an updated version of this patch that fixes a few issues that CI reported (autoconf, compiler warnings and broken docs). I also think I changed the pg_upgrade to do the correct thing, but I'm not sure how to test this (even manually). Because part of it would only be relevant once we support upgrading from PG18. So for now the upgrade_code I haven't actually run. --0000000000004ea071061b3fb94f Content-Type: text/x-patch; charset="US-ASCII"; name="v2-0001-Add-support-for-extensions-with-an-owned-schema.patch" Content-Disposition: attachment; filename="v2-0001-Add-support-for-extensions-with-an-owned-schema.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lxlzao4v0 RnJvbSAzN2I2ZmE0NWJmODc3YmNjMTVjZTc2ZDdlMzQyMTk5YjdjYTc2ZDUwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWx0ZSBGZW5uZW1hLU5pbyA8amVsdGUuZmVubmVtYUBtaWNy b3NvZnQuY29tPgpEYXRlOiBGcmksIDMxIE1heSAyMDI0IDAyOjA0OjMxIC0wNzAwClN1YmplY3Q6 IFtQQVRDSCB2Ml0gQWRkIHN1cHBvcnQgZm9yIGV4dGVuc2lvbnMgd2l0aCBhbiBvd25lZCBzY2hl bWEKCldyaXRpbmcgdGhlIHNxbCBtaWdyYXRpb24gc2NyaXB0cyB0aGF0IGFyZSBydW4gYnkgQ1JF QVRFIEVYVEVOU0lPTiBhbmQKQUxURVIgRVhURU5TSU9OIFVQREFURSBhcmUgc2VjdXJpdHkgbWlu ZWZpZWxkcyBmb3IgZXh0ZW5zaW9uIGF1dGhvcnMuCk9uZSBiaWcgcmVhc29uIGZvciB0aGlzIGlz IHRoYXQgc2VhcmNoX3BhdGggaXMgc2V0IHRvIHRoZSBzY2hlbWEgb2YgdGhlCmV4dGVuc2lvbiB3 aGlsZSBydW5uaW5nIHRoZXNlIHNjcmlwdHMsIGFuZCB0aHVzIGlmIGEgdXNlciB3aXRoIGxvd2Vy CnByaXZpbGVnZXMgY2FuIGNyZWF0ZSBmdW5jdGlvbnMgb3Igb3BlcmF0b3JzIGluIHRoYXQgc2No ZW1hIHRoZXkgY2FuIGRvCmFsbCBraW5kcyBvZiBzZWFyY2hfcGF0aCBjb25mdXNpb24gYXR0YWNr cyBpZiBub3QgZXZlcnkgZnVuY3Rpb24gYW5kCm9wZXJhdG9yIHRoYXQgaXMgdXNlZCBpbiB0aGUg c2NyaXB0IGlzIHNjaGVtYSBxdWFsaWZpZWQuIFdoaWxlIGRvaW5nCnN1Y2ggc2NoZW1hIHF1YWxp ZmljYXRpb24gaXMgcG9zc2libGUsIGl0IHJlbGllcyBvbiB0aGUgYXV0aG9yIHRvIG5ldmVyCm1h a2UgYSBtaXN0YWtlIGluIGFueSBvZiB0aGUgc3FsIGZpbGVzLiBBbmQgc2FkbHkgaHVtYW5zIGhh dmUgYSB0ZW5kZW5jeQp0byBtYWtlIG1pc3Rha2VzLgoKVGhpcyBwYXRjaCBhZGRzIGEgbmV3ICJv d25lZF9zY2hlbWEiIG9wdGlvbiB0byB0aGUgZXh0ZW5zaW9uIGNvbnRyb2wKZmlsZSB0aGF0IGNh biBiZSBzZXQgdG8gdHJ1ZSB0byBpbmRpY2F0ZSB0aGF0IHRoaXMgZXh0ZW5zaW9uIHdhbnRzIHRv Cm93biB0aGUgc2NoZW1hIGluIHdoaWNoIGl0IGlzIGluc3RhbGxlZC4gV2hhdCB0aGF0IG1lYW5z IGlzIHRoYXQgdGhlCnNjaGVtYSBzaG91bGQgbm90IGV4aXN0IGJlZm9yZSBjcmVhdGluZyB0aGUg ZXh0ZW5zaW9uLCBhbmQgd2lsbCBiZQpjcmVhdGVkIGR1cmluZyBleHRlbnNpb24gY3JlYXRpb24u IFRoaXMgdGh1cyBnaXZlcyB0aGUgZXh0ZW5zaW9uIGF1dGhvcgphbiBlYXN5IHdheSB0byB1c2Ug YSBzYWZlIHNlYXJjaF9wYXRoLCB3aGlsZSBzdGlsbCBhbGxvd2luZyBhbGwgb2JqZWN0cwp0byBi ZSBncm91cGVkIHRvZ2V0aGVyIGluIGEgc2NoZW1hLiBUaGUgaW1wbGVtZW50YXRpb24gYWxzbyBo YXMgdGhlCnBsZWFzYW50IHNpZGUgZWZmZWN0IHRoYXQgdGhlIHNjaGVtYSB3aWxsIGJlIGF1dG9t YXRpY2FsbHkgZHJvcHBlZCB3aGVuCnRoZSBleHRlbnNpb24gaXMgZHJvcHBlZC4KLS0tCiBkb2Mv c3JjL3NnbWwvZXh0ZW5kLnNnbWwgICAgICAgICAgICAgICAgICAgICAgfCAgMTMgKysKIGRvYy9z cmMvc2dtbC9yZWYvY3JlYXRlX2V4dGVuc2lvbi5zZ21sICAgICAgICB8ICAgMyArLQogc3JjL2Jh Y2tlbmQvY29tbWFuZHMvZXh0ZW5zaW9uLmMgICAgICAgICAgICAgIHwgMTQxICsrKysrKysrKysr KystLS0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3BnX3VwZ3JhZGVfc3VwcG9ydC5jICAgIHwg IDIwICsrLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyAgICAgICAgICAgICAgICAgICAgIHwg IDE1ICstCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oICAgICAgICAgICAgICAgICAgICAgfCAg IDEgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19leHRlbnNpb24uaCAgICAgICAgICAgIHwgICAx ICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgICAgICAgICAgICAgICB8ICAgMiAr LQogc3JjL2luY2x1ZGUvY29tbWFuZHMvZXh0ZW5zaW9uLmggICAgICAgICAgICAgIHwgICA0ICst CiBzcmMvdGVzdC9tb2R1bGVzL3Rlc3RfZXh0ZW5zaW9ucy9NYWtlZmlsZSAgICAgfCAgIDcgKy0K IC4uLi9leHBlY3RlZC90ZXN0X2V4dGVuc2lvbnMub3V0ICAgICAgICAgICAgICB8ICA1MCArKysr KysrCiBzcmMvdGVzdC9tb2R1bGVzL3Rlc3RfZXh0ZW5zaW9ucy9tZXNvbi5idWlsZCAgfCAgIDQg KwogLi4uL3Rlc3RfZXh0ZW5zaW9ucy9zcWwvdGVzdF9leHRlbnNpb25zLnNxbCAgIHwgIDI3ICsr KysKIC4uLi90ZXN0X2V4dF9vd25lZF9zY2hlbWEtLTEuMC5zcWwgICAgICAgICAgICB8ICAgMiAr CiAuLi4vdGVzdF9leHRfb3duZWRfc2NoZW1hLmNvbnRyb2wgICAgICAgICAgICAgfCAgIDUgKwog Li4udGVzdF9leHRfb3duZWRfc2NoZW1hX3JlbG9jYXRhYmxlLS0xLjAuc3FsIHwgICAyICsKIC4u Li90ZXN0X2V4dF9vd25lZF9zY2hlbWFfcmVsb2NhdGFibGUuY29udHJvbCB8ICAgNCArCiAxNyBm aWxlcyBjaGFuZ2VkLCAyNDggaW5zZXJ0aW9ucygrKSwgNTMgZGVsZXRpb25zKC0pCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2V4dGVuc2lvbnMvdGVzdF9leHRfb3du ZWRfc2NoZW1hLS0xLjAuc3FsCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvbW9kdWxlcy90 ZXN0X2V4dGVuc2lvbnMvdGVzdF9leHRfb3duZWRfc2NoZW1hLmNvbnRyb2wKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmMvdGVzdC9tb2R1bGVzL3Rlc3RfZXh0ZW5zaW9ucy90ZXN0X2V4dF9vd25lZF9z Y2hlbWFfcmVsb2NhdGFibGUtLTEuMC5zcWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9t b2R1bGVzL3Rlc3RfZXh0ZW5zaW9ucy90ZXN0X2V4dF9vd25lZF9zY2hlbWFfcmVsb2NhdGFibGUu Y29udHJvbAoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9leHRlbmQuc2dtbCBiL2RvYy9zcmMv c2dtbC9leHRlbmQuc2dtbAppbmRleCAyMTg5NDBlZTVjZS4uMzZkYzY5MmFiZWYgMTAwNjQ0Ci0t LSBhL2RvYy9zcmMvc2dtbC9leHRlbmQuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZXh0ZW5kLnNn bWwKQEAgLTgwOSw2ICs4MDksMTkgQEAgUkVUVVJOUyBhbnljb21wYXRpYmxlIEFTIC4uLgogICAg ICAgPC9saXN0aXRlbT4KICAgICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgICAgPHZhcmxpc3RlbnRy eSBpZD0iZXh0ZW5kLWV4dGVuc2lvbnMtZmlsZXMtb3duZWQtc2NoZW1hIj4KKyAgICAgIDx0ZXJt Pjx2YXJuYW1lPm93bmVkX3NjaGVtYTwvdmFybmFtZT4gKDx0eXBlPmJvb2xlYW48L3R5cGU+KTwv dGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgQW4gZXh0ZW5z aW9uIGlzIDxmaXJzdHRlcm0+b3duZWRfc2NoZW1hPC9maXJzdHRlcm0+IGlmIGl0IHJlcXVpcmVz IGEKKyAgICAgICAgbmV3IGRlZGljYXRlZCBzY2hlbWEgZm9yIGl0cyBvYmplY3RzLiBTdWNoIGEg cmVxdWlyZW1lbnQgY2FuIG1ha2UKKyAgICAgICAgc2VjdXJpdHkgY29uY2VybnMgcmVsYXRlZCB0 byA8bGl0ZXJhbD5zZWFyY2hfcGF0aDwvbGl0ZXJhbD4gaW5qZWN0aW9uCisgICAgICAgIG11Y2gg ZWFzaWVyIHRvIHJlYXNvbiBhYm91dC4gVGhlIGRlZmF1bHQgaXMgPGxpdGVyYWw+ZmFsc2U8L2xp dGVyYWw+LAorICAgICAgICBpLmUuLCB0aGUgZXh0ZW5zaW9uIGNhbiBiZSBpbnN0YWxsZWQgaW50 byBhbiBleGlzdGluZyBzY2hlbWEuCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4K KyAgICAgPC92YXJsaXN0ZW50cnk+CisKICAgICAgPHZhcmxpc3RlbnRyeSBpZD0iZXh0ZW5kLWV4 dGVuc2lvbnMtZmlsZXMtc2NoZW1hIj4KICAgICAgIDx0ZXJtPjx2YXJuYW1lPnNjaGVtYTwvdmFy bmFtZT4gKDx0eXBlPnN0cmluZzwvdHlwZT4pPC90ZXJtPgogICAgICAgPGxpc3RpdGVtPgpkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfZXh0ZW5zaW9uLnNnbWwgYi9kb2Mvc3Jj L3NnbWwvcmVmL2NyZWF0ZV9leHRlbnNpb24uc2dtbAppbmRleCBjYTJiODBkNjY5Yy4uNmU3Njdj N2JmY2EgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2V4dGVuc2lvbi5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2V4dGVuc2lvbi5zZ21sCkBAIC0xMDIsNyAr MTAyLDggQEAgQ1JFQVRFIEVYVEVOU0lPTiBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+ZXh0ZW5zaW9uX25hbWUKICAgICAgICA8cGFyYT4KICAgICAgICAg VGhlIG5hbWUgb2YgdGhlIHNjaGVtYSBpbiB3aGljaCB0byBpbnN0YWxsIHRoZSBleHRlbnNpb24n cwogICAgICAgICBvYmplY3RzLCBnaXZlbiB0aGF0IHRoZSBleHRlbnNpb24gYWxsb3dzIGl0cyBj b250ZW50cyB0byBiZQotICAgICAgICByZWxvY2F0ZWQuICBUaGUgbmFtZWQgc2NoZW1hIG11c3Qg YWxyZWFkeSBleGlzdC4KKyAgICAgICAgcmVsb2NhdGVkLiAgVGhlIG5hbWVkIHNjaGVtYSBtdXN0 IGFscmVhZHkgZXhpc3QgaWYgdGhlIGV4dGVuc2lvbidzCisgICAgICAgIGNvbnRyb2wgZmlsZSBk b2VzIG5vdCBzcGVjaWZ5IDxsaXRlcmFsPm93bmVkX3NjaGVtYTwvbGl0ZXJhbD4uCiAgICAgICAg IElmIG5vdCBzcGVjaWZpZWQsIGFuZCB0aGUgZXh0ZW5zaW9uJ3MgY29udHJvbCBmaWxlIGRvZXMg bm90IHNwZWNpZnkgYQogICAgICAgICBzY2hlbWEgZWl0aGVyLCB0aGUgY3VycmVudCBkZWZhdWx0 IG9iamVjdCBjcmVhdGlvbiBzY2hlbWEgaXMgdXNlZC4KICAgICAgICA8L3BhcmE+CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9leHRlbnNpb24uYyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL2V4dGVuc2lvbi5jCmluZGV4IDE2NDNjOGM2OWEwLi5jOTU4NmFkNjJhMSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXh0ZW5zaW9uLmMKKysrIGIvc3JjL2JhY2tlbmQvY29t bWFuZHMvZXh0ZW5zaW9uLmMKQEAgLTgzLDYgKzgzLDggQEAgdHlwZWRlZiBzdHJ1Y3QgRXh0ZW5z aW9uQ29udHJvbEZpbGUKIAkJCQkJCQkJCSAqIE1PRFVMRV9QQVRITkFNRSAqLwogCWNoYXIJICAg KmNvbW1lbnQ7CQkvKiBjb21tZW50LCBpZiBhbnkgKi8KIAljaGFyCSAgICpzY2hlbWE7CQkJLyog dGFyZ2V0IHNjaGVtYSAoYWxsb3dlZCBpZiAhcmVsb2NhdGFibGUpICovCisJYm9vbAkJb3duZWRf c2NoZW1hOwkvKiBpZiB0aGUgc2NoZW1hIHNob3VsZCBiZSBvd25lZCBieSB0aGUKKwkJCQkJCQkJ ICogZXh0ZW5zaW9uICovCiAJYm9vbAkJcmVsb2NhdGFibGU7CS8qIGlzIEFMVEVSIEVYVEVOU0lP TiBTRVQgU0NIRU1BIHN1cHBvcnRlZD8gKi8KIAlib29sCQlzdXBlcnVzZXI7CQkvKiBtdXN0IGJl IHN1cGVydXNlciB0byBpbnN0YWxsPyAqLwogCWJvb2wJCXRydXN0ZWQ7CQkvKiBhbGxvdyBiZWNv bWluZyBzdXBlcnVzZXIgb24gdGhlIGZseT8gKi8KQEAgLTU2MSw2ICs1NjMsMTQgQEAgcGFyc2Vf ZXh0ZW5zaW9uX2NvbnRyb2xfZmlsZShFeHRlbnNpb25Db250cm9sRmlsZSAqY29udHJvbCwKIAkJ ewogCQkJY29udHJvbC0+c2NoZW1hID0gcHN0cmR1cChpdGVtLT52YWx1ZSk7CiAJCX0KKwkJZWxz ZSBpZiAoc3RyY21wKGl0ZW0tPm5hbWUsICJvd25lZF9zY2hlbWEiKSA9PSAwKQorCQl7CisJCQlp ZiAoIXBhcnNlX2Jvb2woaXRlbS0+dmFsdWUsICZjb250cm9sLT5vd25lZF9zY2hlbWEpKQorCQkJ CWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVS X1ZBTFVFKSwKKwkJCQkJCSBlcnJtc2coInBhcmFtZXRlciBcIiVzXCIgcmVxdWlyZXMgYSBCb29s ZWFuIHZhbHVlIiwKKwkJCQkJCQkJaXRlbS0+bmFtZSkpKTsKKwkJfQogCQllbHNlIGlmIChzdHJj bXAoaXRlbS0+bmFtZSwgInJlbG9jYXRhYmxlIikgPT0gMCkKIAkJewogCQkJaWYgKCFwYXJzZV9i b29sKGl0ZW0tPnZhbHVlLCAmY29udHJvbC0+cmVsb2NhdGFibGUpKQpAQCAtMTU0Nyw4ICsxNTU3 LDExIEBAIENyZWF0ZUV4dGVuc2lvbkludGVybmFsKGNoYXIgKmV4dGVuc2lvbk5hbWUsCiAJICov CiAJaWYgKHNjaGVtYU5hbWUpCiAJewotCQkvKiBJZiB0aGUgdXNlciBpcyBnaXZpbmcgdXMgdGhl IHNjaGVtYSBuYW1lLCBpdCBtdXN0IGV4aXN0IGFscmVhZHkuICovCi0JCXNjaGVtYU9pZCA9IGdl dF9uYW1lc3BhY2Vfb2lkKHNjaGVtYU5hbWUsIGZhbHNlKTsKKwkJLyoKKwkJICogSWYgdGhlIHVz ZXIgaXMgZ2l2aW5nIHVzIHRoZSBzY2hlbWEgbmFtZSwgaXQgbXVzdCBleGlzdCBhbHJlYWR5IGlm CisJCSAqIHRoZSBleHRlbnNpb24gZG9lcyBub3Qgd2FudCB0byBvd24gdGhlIHNjaGVtYQorCQkg Ki8KKwkJc2NoZW1hT2lkID0gZ2V0X25hbWVzcGFjZV9vaWQoc2NoZW1hTmFtZSwgY29udHJvbC0+ b3duZWRfc2NoZW1hKTsKIAl9CiAKIAlpZiAoY29udHJvbC0+c2NoZW1hICE9IE5VTEwpCkBAIC0x NTcwLDcgKzE1ODMsMTAgQEAgQ3JlYXRlRXh0ZW5zaW9uSW50ZXJuYWwoY2hhciAqZXh0ZW5zaW9u TmFtZSwKIAogCQkvKiBBbHdheXMgdXNlIHRoZSBzY2hlbWEgZnJvbSBjb250cm9sIGZpbGUgZm9y IGN1cnJlbnQgZXh0ZW5zaW9uLiAqLwogCQlzY2hlbWFOYW1lID0gY29udHJvbC0+c2NoZW1hOwor CX0KIAorCWlmIChzY2hlbWFOYW1lKQorCXsKIAkJLyogRmluZCBvciBjcmVhdGUgdGhlIHNjaGVt YSBpbiBjYXNlIGl0IGRvZXMgbm90IGV4aXN0LiAqLwogCQlzY2hlbWFPaWQgPSBnZXRfbmFtZXNw YWNlX29pZChzY2hlbWFOYW1lLCB0cnVlKTsKIApAQCAtMTU5MSw4ICsxNjA3LDIyIEBAIENyZWF0 ZUV4dGVuc2lvbkludGVybmFsKGNoYXIgKmV4dGVuc2lvbk5hbWUsCiAJCQkgKi8KIAkJCXNjaGVt YU9pZCA9IGdldF9uYW1lc3BhY2Vfb2lkKHNjaGVtYU5hbWUsIGZhbHNlKTsKIAkJfQorCQllbHNl IGlmIChjb250cm9sLT5vd25lZF9zY2hlbWEpCisJCXsKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJ CShlcnJjb2RlKEVSUkNPREVfRFVQTElDQVRFX1NDSEVNQSksCisJCQkJCSBlcnJtc2coInNjaGVt YSBcIiVzXCIgYWxyZWFkeSBleGlzdHMiLAorCQkJCQkJCXNjaGVtYU5hbWUpKSk7CisJCX0KKwog CX0KLQllbHNlIGlmICghT2lkSXNWYWxpZChzY2hlbWFPaWQpKQorCWVsc2UgaWYgKGNvbnRyb2wt Pm93bmVkX3NjaGVtYSkKKwl7CisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09E RV9VTkRFRklORURfU0NIRU1BKSwKKwkJCQkgZXJybXNnKCJubyBzY2hlbWEgaGFzIGJlZW4gc2Vs ZWN0ZWQgdG8gY3JlYXRlIGluIikpKTsKKwl9CisJZWxzZQogCXsKIAkJLyoKIAkJICogTmVpdGhl ciB1c2VyIG5vciBhdXRob3Igb2YgdGhlIGV4dGVuc2lvbiBzcGVjaWZpZWQgc2NoZW1hOyB1c2Ug dGhlCkBAIC0xNjU5LDYgKzE2ODksNyBAQCBDcmVhdGVFeHRlbnNpb25JbnRlcm5hbChjaGFyICpl eHRlbnNpb25OYW1lLAogCSAqLwogCWFkZHJlc3MgPSBJbnNlcnRFeHRlbnNpb25UdXBsZShjb250 cm9sLT5uYW1lLCBleHRvd25lciwKIAkJCQkJCQkJICAgc2NoZW1hT2lkLCBjb250cm9sLT5yZWxv Y2F0YWJsZSwKKwkJCQkJCQkJICAgY29udHJvbC0+b3duZWRfc2NoZW1hLAogCQkJCQkJCQkgICB2 ZXJzaW9uTmFtZSwKIAkJCQkJCQkJICAgUG9pbnRlckdldERhdHVtKE5VTEwpLAogCQkJCQkJCQkg ICBQb2ludGVyR2V0RGF0dW0oTlVMTCksCkBAIC0xNjcxLDYgKzE3MDIsMTYgQEAgQ3JlYXRlRXh0 ZW5zaW9uSW50ZXJuYWwoY2hhciAqZXh0ZW5zaW9uTmFtZSwKIAlpZiAoY29udHJvbC0+Y29tbWVu dCAhPSBOVUxMKQogCQlDcmVhdGVDb21tZW50cyhleHRlbnNpb25PaWQsIEV4dGVuc2lvblJlbGF0 aW9uSWQsIDAsIGNvbnRyb2wtPmNvbW1lbnQpOwogCisJaWYgKGNvbnRyb2wtPm93bmVkX3NjaGVt YSkKKwl7CisJCU9iamVjdEFkZHJlc3Mgc2NoZW1hQWRkcmVzcyA9IHsKKwkJCS5jbGFzc0lkID0g TmFtZXNwYWNlUmVsYXRpb25JZCwKKwkJCS5vYmplY3RJZCA9IHNjaGVtYU9pZCwKKwkJfTsKKwor CQlyZWNvcmREZXBlbmRlbmN5T24oJnNjaGVtYUFkZHJlc3MsICZhZGRyZXNzLCBERVBFTkRFTkNZ X0VYVEVOU0lPTik7CisJfQorCiAJLyoKIAkgKiBFeGVjdXRlIHRoZSBpbnN0YWxsYXRpb24gc2Ny aXB0IGZpbGUKIAkgKi8KQEAgLTE4NjQsNyArMTkwNSw4IEBAIENyZWF0ZUV4dGVuc2lvbihQYXJz ZVN0YXRlICpwc3RhdGUsIENyZWF0ZUV4dGVuc2lvblN0bXQgKnN0bXQpCiAgKi8KIE9iamVjdEFk ZHJlc3MKIEluc2VydEV4dGVuc2lvblR1cGxlKGNvbnN0IGNoYXIgKmV4dE5hbWUsIE9pZCBleHRP d25lciwKLQkJCQkJIE9pZCBzY2hlbWFPaWQsIGJvb2wgcmVsb2NhdGFibGUsIGNvbnN0IGNoYXIg KmV4dFZlcnNpb24sCisJCQkJCSBPaWQgc2NoZW1hT2lkLCBib29sIHJlbG9jYXRhYmxlLCBib29s IG93bmVkU2NoZW1hLAorCQkJCQkgY29uc3QgY2hhciAqZXh0VmVyc2lvbiwKIAkJCQkJIERhdHVt IGV4dENvbmZpZywgRGF0dW0gZXh0Q29uZGl0aW9uLAogCQkJCQkgTGlzdCAqcmVxdWlyZWRFeHRl bnNpb25zKQogewpAQCAtMTg5NCw2ICsxOTM2LDcgQEAgSW5zZXJ0RXh0ZW5zaW9uVHVwbGUoY29u c3QgY2hhciAqZXh0TmFtZSwgT2lkIGV4dE93bmVyLAogCXZhbHVlc1tBbnVtX3BnX2V4dGVuc2lv bl9leHRvd25lciAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShleHRPd25lcik7CiAJdmFsdWVzW0Fu dW1fcGdfZXh0ZW5zaW9uX2V4dG5hbWVzcGFjZSAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShzY2hl bWFPaWQpOwogCXZhbHVlc1tBbnVtX3BnX2V4dGVuc2lvbl9leHRyZWxvY2F0YWJsZSAtIDFdID0g Qm9vbEdldERhdHVtKHJlbG9jYXRhYmxlKTsKKwl2YWx1ZXNbQW51bV9wZ19leHRlbnNpb25fZXh0 b3duZWRzY2hlbWEgLSAxXSA9IEJvb2xHZXREYXR1bShvd25lZFNjaGVtYSk7CiAJdmFsdWVzW0Fu dW1fcGdfZXh0ZW5zaW9uX2V4dHZlcnNpb24gLSAxXSA9IENTdHJpbmdHZXRUZXh0RGF0dW0oZXh0 VmVyc2lvbik7CiAKIAlpZiAoZXh0Q29uZmlnID09IFBvaW50ZXJHZXREYXR1bShOVUxMKSkKQEAg LTI3ODUsMTEgKzI4MjgsMTAgQEAgQWx0ZXJFeHRlbnNpb25OYW1lc3BhY2UoY29uc3QgY2hhciAq ZXh0ZW5zaW9uTmFtZSwgY29uc3QgY2hhciAqbmV3c2NoZW1hLCBPaWQgKm8KIAlIZWFwVHVwbGUJ ZGVwVHVwOwogCU9iamVjdEFkZHJlc3NlcyAqb2Jqc01vdmVkOwogCU9iamVjdEFkZHJlc3MgZXh0 QWRkcjsKKwlib29sCQlvd25lZFNjaGVtYTsKIAogCWV4dGVuc2lvbk9pZCA9IGdldF9leHRlbnNp b25fb2lkKGV4dGVuc2lvbk5hbWUsIGZhbHNlKTsKIAotCW5zcE9pZCA9IExvb2t1cENyZWF0aW9u TmFtZXNwYWNlKG5ld3NjaGVtYSk7Ci0KIAkvKgogCSAqIFBlcm1pc3Npb24gY2hlY2s6IG11c3Qg b3duIGV4dGVuc2lvbi4gIE5vdGUgdGhhdCB3ZSBkb24ndCBib3RoZXIgdG8KIAkgKiBjaGVjayBv d25lcnNoaXAgb2YgdGhlIGluZGl2aWR1YWwgbWVtYmVyIG9iamVjdHMgLi4uCkBAIC0yNzk4LDIy ICsyODQwLDYgQEAgQWx0ZXJFeHRlbnNpb25OYW1lc3BhY2UoY29uc3QgY2hhciAqZXh0ZW5zaW9u TmFtZSwgY29uc3QgY2hhciAqbmV3c2NoZW1hLCBPaWQgKm8KIAkJYWNsY2hlY2tfZXJyb3IoQUNM Q0hFQ0tfTk9UX09XTkVSLCBPQkpFQ1RfRVhURU5TSU9OLAogCQkJCQkgICBleHRlbnNpb25OYW1l KTsKIAotCS8qIFBlcm1pc3Npb24gY2hlY2s6IG11c3QgaGF2ZSBjcmVhdGlvbiByaWdodHMgaW4g dGFyZ2V0IG5hbWVzcGFjZSAqLwotCWFjbHJlc3VsdCA9IG9iamVjdF9hY2xjaGVjayhOYW1lc3Bh Y2VSZWxhdGlvbklkLCBuc3BPaWQsIEdldFVzZXJJZCgpLCBBQ0xfQ1JFQVRFKTsKLQlpZiAoYWNs cmVzdWx0ICE9IEFDTENIRUNLX09LKQotCQlhY2xjaGVja19lcnJvcihhY2xyZXN1bHQsIE9CSkVD VF9TQ0hFTUEsIG5ld3NjaGVtYSk7Ci0KLQkvKgotCSAqIElmIHRoZSBzY2hlbWEgaXMgY3VycmVu dGx5IGEgbWVtYmVyIG9mIHRoZSBleHRlbnNpb24sIGRpc2FsbG93IG1vdmluZwotCSAqIHRoZSBl eHRlbnNpb24gaW50byB0aGUgc2NoZW1hLiAgVGhhdCB3b3VsZCBjcmVhdGUgYSBkZXBlbmRlbmN5 IGxvb3AuCi0JICovCi0JaWYgKGdldEV4dGVuc2lvbk9mT2JqZWN0KE5hbWVzcGFjZVJlbGF0aW9u SWQsIG5zcE9pZCkgPT0gZXh0ZW5zaW9uT2lkKQotCQllcmVwb3J0KEVSUk9SLAotCQkJCShlcnJj b2RlKEVSUkNPREVfT0JKRUNUX05PVF9JTl9QUkVSRVFVSVNJVEVfU1RBVEUpLAotCQkJCSBlcnJt c2coImNhbm5vdCBtb3ZlIGV4dGVuc2lvbiBcIiVzXCIgaW50byBzY2hlbWEgXCIlc1wiICIKLQkJ CQkJCSJiZWNhdXNlIHRoZSBleHRlbnNpb24gY29udGFpbnMgdGhlIHNjaGVtYSIsCi0JCQkJCQll eHRlbnNpb25OYW1lLCBuZXdzY2hlbWEpKSk7Ci0KIAkvKiBMb2NhdGUgdGhlIHBnX2V4dGVuc2lv biB0dXBsZSAqLwogCWV4dFJlbCA9IHRhYmxlX29wZW4oRXh0ZW5zaW9uUmVsYXRpb25JZCwgUm93 RXhjbHVzaXZlTG9jayk7CiAKQEAgLTI4MzcsMTQgKzI4NjMsMzggQEAgQWx0ZXJFeHRlbnNpb25O YW1lc3BhY2UoY29uc3QgY2hhciAqZXh0ZW5zaW9uTmFtZSwgY29uc3QgY2hhciAqbmV3c2NoZW1h LCBPaWQgKm8KIAogCXN5c3RhYmxlX2VuZHNjYW4oZXh0U2Nhbik7CiAKLQkvKgotCSAqIElmIHRo ZSBleHRlbnNpb24gaXMgYWxyZWFkeSBpbiB0aGUgdGFyZ2V0IHNjaGVtYSwganVzdCBzaWxlbnRs eSBkbwotCSAqIG5vdGhpbmcuCi0JICovCi0JaWYgKGV4dEZvcm0tPmV4dG5hbWVzcGFjZSA9PSBu c3BPaWQpCisJb3duZWRTY2hlbWEgPSBleHRGb3JtLT5leHRvd25lZHNjaGVtYTsKKworCWlmICgh b3duZWRTY2hlbWEpCiAJewotCQl0YWJsZV9jbG9zZShleHRSZWwsIFJvd0V4Y2x1c2l2ZUxvY2sp OwotCQlyZXR1cm4gSW52YWxpZE9iamVjdEFkZHJlc3M7CisJCW5zcE9pZCA9IExvb2t1cENyZWF0 aW9uTmFtZXNwYWNlKG5ld3NjaGVtYSk7CisKKwkJLyogUGVybWlzc2lvbiBjaGVjazogbXVzdCBo YXZlIGNyZWF0aW9uIHJpZ2h0cyBpbiB0YXJnZXQgbmFtZXNwYWNlICovCisJCWFjbHJlc3VsdCA9 IG9iamVjdF9hY2xjaGVjayhOYW1lc3BhY2VSZWxhdGlvbklkLCBuc3BPaWQsIEdldFVzZXJJZCgp LCBBQ0xfQ1JFQVRFKTsKKwkJaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19PSykKKwkJCWFjbGNo ZWNrX2Vycm9yKGFjbHJlc3VsdCwgT0JKRUNUX1NDSEVNQSwgbmV3c2NoZW1hKTsKKworCQkvKgor CQkgKiBJZiB0aGUgc2NoZW1hIGlzIGN1cnJlbnRseSBhIG1lbWJlciBvZiB0aGUgZXh0ZW5zaW9u LCBkaXNhbGxvdworCQkgKiBtb3ZpbmcgdGhlIGV4dGVuc2lvbiBpbnRvIHRoZSBzY2hlbWEuICBU aGF0IHdvdWxkIGNyZWF0ZSBhCisJCSAqIGRlcGVuZGVuY3kgbG9vcC4KKwkJICovCisJCWlmIChn ZXRFeHRlbnNpb25PZk9iamVjdChOYW1lc3BhY2VSZWxhdGlvbklkLCBuc3BPaWQpID09IGV4dGVu c2lvbk9pZCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfT0JKRUNU X05PVF9JTl9QUkVSRVFVSVNJVEVfU1RBVEUpLAorCQkJCQkgZXJybXNnKCJjYW5ub3QgbW92ZSBl eHRlbnNpb24gXCIlc1wiIGludG8gc2NoZW1hIFwiJXNcIiAiCisJCQkJCQkJImJlY2F1c2UgdGhl IGV4dGVuc2lvbiBjb250YWlucyB0aGUgc2NoZW1hIiwKKwkJCQkJCQlleHRlbnNpb25OYW1lLCBu ZXdzY2hlbWEpKSk7CisKKwkJLyoKKwkJICogSWYgdGhlIGV4dGVuc2lvbiBpcyBhbHJlYWR5IGlu IHRoZSB0YXJnZXQgc2NoZW1hLCBqdXN0IHNpbGVudGx5IGRvCisJCSAqIG5vdGhpbmcuCisJCSAq LworCQlpZiAoZXh0Rm9ybS0+ZXh0bmFtZXNwYWNlID09IG5zcE9pZCkKKwkJeworCQkJdGFibGVf Y2xvc2UoZXh0UmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKKwkJCXJldHVybiBJbnZhbGlkT2JqZWN0 QWRkcmVzczsKKwkJfQogCX0KIAogCS8qIENoZWNrIGV4dGVuc2lvbiBpcyBzdXBwb3NlZCB0byBi ZSByZWxvY2F0YWJsZSAqLwpAQCAtMjkxNyw2ICsyOTY3LDEzIEBAIEFsdGVyRXh0ZW5zaW9uTmFt ZXNwYWNlKGNvbnN0IGNoYXIgKmV4dGVuc2lvbk5hbWUsIGNvbnN0IGNoYXIgKm5ld3NjaGVtYSwg T2lkICpvCiAJCQl9CiAJCX0KIAorCQkvKgorCQkgKiBXZSBkb24ndCBhY3R1YWxseSBoYXZlIHRv IG1vdmUgYW55IG9iamVjdHMgYW55dGhpbmcgZm9yIG93bmVkCisJCSAqIHNjaGVtYXMsIGJlY2F1 c2Ugd2Ugc2ltcGx5IHJlbmFtZSB0aGUgc2NoZW1hLgorCQkgKi8KKwkJaWYgKG93bmVkU2NoZW1h KQorCQkJY29udGludWU7CisKIAkJLyoKIAkJICogT3RoZXJ3aXNlLCBpZ25vcmUgbm9uLW1lbWJl cnNoaXAgZGVwZW5kZW5jaWVzLiAgKEN1cnJlbnRseSwgdGhlCiAJCSAqIG9ubHkgb3RoZXIgY2Fz ZSB3ZSBjb3VsZCBzZWUgaGVyZSBpcyBhIG5vcm1hbCBkZXBlbmRlbmN5IGZyb20KQEAgLTI5NjAs MTggKzMwMTcsMjYgQEAgQWx0ZXJFeHRlbnNpb25OYW1lc3BhY2UoY29uc3QgY2hhciAqZXh0ZW5z aW9uTmFtZSwgY29uc3QgY2hhciAqbmV3c2NoZW1hLCBPaWQgKm8KIAogCXJlbGF0aW9uX2Nsb3Nl KGRlcFJlbCwgQWNjZXNzU2hhcmVMb2NrKTsKIAotCS8qIE5vdyBhZGp1c3QgcGdfZXh0ZW5zaW9u LmV4dG5hbWVzcGFjZSAqLwotCWV4dEZvcm0tPmV4dG5hbWVzcGFjZSA9IG5zcE9pZDsKKwlpZiAo b3duZWRTY2hlbWEpCisJeworCQlSZW5hbWVTY2hlbWEoZ2V0X25hbWVzcGFjZV9uYW1lKG9sZE5z cE9pZCksIG5ld3NjaGVtYSk7CisJCXRhYmxlX2Nsb3NlKGV4dFJlbCwgUm93RXhjbHVzaXZlTG9j ayk7CisJfQorCWVsc2UKKwl7CisJCS8qIE5vdyBhZGp1c3QgcGdfZXh0ZW5zaW9uLmV4dG5hbWVz cGFjZSAqLworCQlleHRGb3JtLT5leHRuYW1lc3BhY2UgPSBuc3BPaWQ7CiAKLQlDYXRhbG9nVHVw bGVVcGRhdGUoZXh0UmVsLCAmZXh0VHVwLT50X3NlbGYsIGV4dFR1cCk7CisJCUNhdGFsb2dUdXBs ZVVwZGF0ZShleHRSZWwsICZleHRUdXAtPnRfc2VsZiwgZXh0VHVwKTsKIAotCXRhYmxlX2Nsb3Nl KGV4dFJlbCwgUm93RXhjbHVzaXZlTG9jayk7CisJCXRhYmxlX2Nsb3NlKGV4dFJlbCwgUm93RXhj bHVzaXZlTG9jayk7CiAKLQkvKiB1cGRhdGUgZGVwZW5kZW5jeSB0byBwb2ludCB0byB0aGUgbmV3 IHNjaGVtYSAqLwotCWlmIChjaGFuZ2VEZXBlbmRlbmN5Rm9yKEV4dGVuc2lvblJlbGF0aW9uSWQs IGV4dGVuc2lvbk9pZCwKLQkJCQkJCQlOYW1lc3BhY2VSZWxhdGlvbklkLCBvbGROc3BPaWQsIG5z cE9pZCkgIT0gMSkKLQkJZWxvZyhFUlJPUiwgImNvdWxkIG5vdCBjaGFuZ2Ugc2NoZW1hIGRlcGVu ZGVuY3kgZm9yIGV4dGVuc2lvbiAlcyIsCi0JCQkgTmFtZVN0cihleHRGb3JtLT5leHRuYW1lKSk7 CisJCS8qIHVwZGF0ZSBkZXBlbmRlbmN5IHRvIHBvaW50IHRvIHRoZSBuZXcgc2NoZW1hICovCisJ CWlmIChjaGFuZ2VEZXBlbmRlbmN5Rm9yKEV4dGVuc2lvblJlbGF0aW9uSWQsIGV4dGVuc2lvbk9p ZCwKKwkJCQkJCQkJTmFtZXNwYWNlUmVsYXRpb25JZCwgb2xkTnNwT2lkLCBuc3BPaWQpICE9IDEp CisJCQllbG9nKEVSUk9SLCAiY291bGQgbm90IGNoYW5nZSBzY2hlbWEgZGVwZW5kZW5jeSBmb3Ig ZXh0ZW5zaW9uICVzIiwKKwkJCQkgTmFtZVN0cihleHRGb3JtLT5leHRuYW1lKSk7CisJfQogCiAJ SW52b2tlT2JqZWN0UG9zdEFsdGVySG9vayhFeHRlbnNpb25SZWxhdGlvbklkLCBleHRlbnNpb25P aWQsIDApOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdfdXBncmFkZV9z dXBwb3J0LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdfdXBncmFkZV9zdXBwb3J0LmMKaW5k ZXggYzU0YjA4ZmUxODAuLjQxMDM3ZDZlYzk4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGls cy9hZHQvcGdfdXBncmFkZV9zdXBwb3J0LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bn X3VwZ3JhZGVfc3VwcG9ydC5jCkBAIC0xODcsNiArMTg3LDcgQEAgYmluYXJ5X3VwZ3JhZGVfY3Jl YXRlX2VtcHR5X2V4dGVuc2lvbihQR19GVU5DVElPTl9BUkdTKQogCXRleHQJICAgKmV4dE5hbWU7 CiAJdGV4dAkgICAqc2NoZW1hTmFtZTsKIAlib29sCQlyZWxvY2F0YWJsZTsKKwlib29sCQlvd25l ZHNjaGVtYTsKIAl0ZXh0CSAgICpleHRWZXJzaW9uOwogCURhdHVtCQlleHRDb25maWc7CiAJRGF0 dW0JCWV4dENvbmRpdGlvbjsKQEAgLTE5OCwyOCArMTk5LDMwIEBAIGJpbmFyeV91cGdyYWRlX2Ny ZWF0ZV9lbXB0eV9leHRlbnNpb24oUEdfRlVOQ1RJT05fQVJHUykKIAlpZiAoUEdfQVJHSVNOVUxM KDApIHx8CiAJCVBHX0FSR0lTTlVMTCgxKSB8fAogCQlQR19BUkdJU05VTEwoMikgfHwKLQkJUEdf QVJHSVNOVUxMKDMpKQorCQlQR19BUkdJU05VTEwoMykgfHwKKwkJUEdfQVJHSVNOVUxMKDQpKQog CQllbG9nKEVSUk9SLCAibnVsbCBhcmd1bWVudCB0byBiaW5hcnlfdXBncmFkZV9jcmVhdGVfZW1w dHlfZXh0ZW5zaW9uIGlzIG5vdCBhbGxvd2VkIik7CiAKIAlleHROYW1lID0gUEdfR0VUQVJHX1RF WFRfUFAoMCk7CiAJc2NoZW1hTmFtZSA9IFBHX0dFVEFSR19URVhUX1BQKDEpOwogCXJlbG9jYXRh YmxlID0gUEdfR0VUQVJHX0JPT0woMik7Ci0JZXh0VmVyc2lvbiA9IFBHX0dFVEFSR19URVhUX1BQ KDMpOworCW93bmVkc2NoZW1hID0gUEdfR0VUQVJHX0JPT0woMyk7CisJZXh0VmVyc2lvbiA9IFBH X0dFVEFSR19URVhUX1BQKDQpOwogCi0JaWYgKFBHX0FSR0lTTlVMTCg0KSkKKwlpZiAoUEdfQVJH SVNOVUxMKDUpKQogCQlleHRDb25maWcgPSBQb2ludGVyR2V0RGF0dW0oTlVMTCk7CiAJZWxzZQot CQlleHRDb25maWcgPSBQR19HRVRBUkdfREFUVU0oNCk7CisJCWV4dENvbmZpZyA9IFBHX0dFVEFS R19EQVRVTSg1KTsKIAotCWlmIChQR19BUkdJU05VTEwoNSkpCisJaWYgKFBHX0FSR0lTTlVMTCg2 KSkKIAkJZXh0Q29uZGl0aW9uID0gUG9pbnRlckdldERhdHVtKE5VTEwpOwogCWVsc2UKLQkJZXh0 Q29uZGl0aW9uID0gUEdfR0VUQVJHX0RBVFVNKDUpOworCQlleHRDb25kaXRpb24gPSBQR19HRVRB UkdfREFUVU0oNik7CiAKIAlyZXF1aXJlZEV4dGVuc2lvbnMgPSBOSUw7Ci0JaWYgKCFQR19BUkdJ U05VTEwoNikpCisJaWYgKCFQR19BUkdJU05VTEwoNykpCiAJewotCQlBcnJheVR5cGUgICp0ZXh0 QXJyYXkgPSBQR19HRVRBUkdfQVJSQVlUWVBFX1AoNik7CisJCUFycmF5VHlwZSAgKnRleHRBcnJh eSA9IFBHX0dFVEFSR19BUlJBWVRZUEVfUCg3KTsKIAkJRGF0dW0JICAgKnRleHREYXR1bXM7CiAJ CWludAkJCW5kYXR1bXM7CiAJCWludAkJCWk7CkBAIC0yMzgsNiArMjQxLDcgQEAgYmluYXJ5X3Vw Z3JhZGVfY3JlYXRlX2VtcHR5X2V4dGVuc2lvbihQR19GVU5DVElPTl9BUkdTKQogCQkJCQkJIEdl dFVzZXJJZCgpLAogCQkJCQkJIGdldF9uYW1lc3BhY2Vfb2lkKHRleHRfdG9fY3N0cmluZyhzY2hl bWFOYW1lKSwgZmFsc2UpLAogCQkJCQkJIHJlbG9jYXRhYmxlLAorCQkJCQkJIG93bmVkc2NoZW1h LAogCQkJCQkJIHRleHRfdG9fY3N0cmluZyhleHRWZXJzaW9uKSwKIAkJCQkJCSBleHRDb25maWcs CiAJCQkJCQkgZXh0Q29uZGl0aW9uLApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1 bXAuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKaW5kZXggZTMyNDA3MDgyODQuLmM5ZWYw YjY4ZjE2IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCisrKyBiL3NyYy9i aW4vcGdfZHVtcC9wZ19kdW1wLmMKQEAgLTU3MDIsNiArNTcwMiw3IEBAIGdldEV4dGVuc2lvbnMo QXJjaGl2ZSAqZm91dCwgaW50ICpudW1FeHRlbnNpb25zKQogCWludAkJCWlfZXh0bmFtZTsKIAlp bnQJCQlpX25zcG5hbWU7CiAJaW50CQkJaV9leHRyZWxvY2F0YWJsZTsKKwlpbnQJCQlpX2V4dG93 bmVkc2NoZW1hOwogCWludAkJCWlfZXh0dmVyc2lvbjsKIAlpbnQJCQlpX2V4dGNvbmZpZzsKIAlp bnQJCQlpX2V4dGNvbmRpdGlvbjsKQEAgLTU3MDksOCArNTcxMCwxNSBAQCBnZXRFeHRlbnNpb25z KEFyY2hpdmUgKmZvdXQsIGludCAqbnVtRXh0ZW5zaW9ucykKIAlxdWVyeSA9IGNyZWF0ZVBRRXhw QnVmZmVyKCk7CiAKIAlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIlNFTEVDVCB4LnRhYmxl b2lkLCB4Lm9pZCwgIgotCQkJCQkJICJ4LmV4dG5hbWUsIG4ubnNwbmFtZSwgeC5leHRyZWxvY2F0 YWJsZSwgeC5leHR2ZXJzaW9uLCB4LmV4dGNvbmZpZywgeC5leHRjb25kaXRpb24gIgotCQkJCQkJ ICJGUk9NIHBnX2V4dGVuc2lvbiB4ICIKKwkJCQkJCSAieC5leHRuYW1lLCBuLm5zcG5hbWUsIHgu ZXh0cmVsb2NhdGFibGUsIHguZXh0b3duZWRzY2hlbWEsIHguZXh0dmVyc2lvbiwgeC5leHRjb25m aWcsIHguZXh0Y29uZGl0aW9uICIKKwkJKTsKKworCWlmIChmb3V0LT5yZW1vdGVWZXJzaW9uID49 IDE4MDAwMCkKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICIsIHguZXh0b3duZWRzY2hl bWEgIik7CisJZWxzZQorCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgImZhbHNlIEFTIGV4 dG93bmVkc2NoZW1hICIpOworCisJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICJGUk9NIHBn X2V4dGVuc2lvbiB4ICIKIAkJCQkJCSAiSk9JTiBwZ19uYW1lc3BhY2UgbiBPTiBuLm9pZCA9IHgu ZXh0bmFtZXNwYWNlIik7CiAKIAlyZXMgPSBFeGVjdXRlU3FsUXVlcnkoZm91dCwgcXVlcnktPmRh dGEsIFBHUkVTX1RVUExFU19PSyk7CkBAIC01NzI0LDYgKzU3MzIsNyBAQCBnZXRFeHRlbnNpb25z KEFyY2hpdmUgKmZvdXQsIGludCAqbnVtRXh0ZW5zaW9ucykKIAlpX2V4dG5hbWUgPSBQUWZudW1i ZXIocmVzLCAiZXh0bmFtZSIpOwogCWlfbnNwbmFtZSA9IFBRZm51bWJlcihyZXMsICJuc3BuYW1l Iik7CiAJaV9leHRyZWxvY2F0YWJsZSA9IFBRZm51bWJlcihyZXMsICJleHRyZWxvY2F0YWJsZSIp OworCWlfZXh0b3duZWRzY2hlbWEgPSBQUWZudW1iZXIocmVzLCAiZXh0b3duZWRzY2hlbWEiKTsK IAlpX2V4dHZlcnNpb24gPSBQUWZudW1iZXIocmVzLCAiZXh0dmVyc2lvbiIpOwogCWlfZXh0Y29u ZmlnID0gUFFmbnVtYmVyKHJlcywgImV4dGNvbmZpZyIpOwogCWlfZXh0Y29uZGl0aW9uID0gUFFm bnVtYmVyKHJlcywgImV4dGNvbmRpdGlvbiIpOwpAQCAtNTczNyw2ICs1NzQ2LDcgQEAgZ2V0RXh0 ZW5zaW9ucyhBcmNoaXZlICpmb3V0LCBpbnQgKm51bUV4dGVuc2lvbnMpCiAJCWV4dGluZm9baV0u ZG9iai5uYW1lID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX2V4dG5hbWUpKTsKIAkJ ZXh0aW5mb1tpXS5uYW1lc3BhY2UgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfbnNw bmFtZSkpOwogCQlleHRpbmZvW2ldLnJlbG9jYXRhYmxlID0gKihQUWdldHZhbHVlKHJlcywgaSwg aV9leHRyZWxvY2F0YWJsZSkpID09ICd0JzsKKwkJZXh0aW5mb1tpXS5vd25lZHNjaGVtYSA9ICoo UFFnZXR2YWx1ZShyZXMsIGksIGlfZXh0b3duZWRzY2hlbWEpKSA9PSAndCc7CiAJCWV4dGluZm9b aV0uZXh0dmVyc2lvbiA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV9leHR2ZXJzaW9u KSk7CiAJCWV4dGluZm9baV0uZXh0Y29uZmlnID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBp LCBpX2V4dGNvbmZpZykpOwogCQlleHRpbmZvW2ldLmV4dGNvbmRpdGlvbiA9IHBnX3N0cmR1cChQ UWdldHZhbHVlKHJlcywgaSwgaV9leHRjb25kaXRpb24pKTsKQEAgLTEwNzE5LDYgKzEwNzI5LDcg QEAgZHVtcEV4dGVuc2lvbihBcmNoaXZlICpmb3V0LCBjb25zdCBFeHRlbnNpb25JbmZvICpleHRp bmZvKQogCQlhcHBlbmRTdHJpbmdMaXRlcmFsQUgocSwgZXh0aW5mby0+bmFtZXNwYWNlLCBmb3V0 KTsKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocSwgIiwgIik7CiAJCWFwcGVuZFBRRXhwQnVmZmVy KHEsICIlcywgIiwgZXh0aW5mby0+cmVsb2NhdGFibGUgPyAidHJ1ZSIgOiAiZmFsc2UiKTsKKwkJ YXBwZW5kUFFFeHBCdWZmZXIocSwgIiVzLCAiLCBleHRpbmZvLT5vd25lZHNjaGVtYSA/ICJ0cnVl IiA6ICJmYWxzZSIpOwogCQlhcHBlbmRTdHJpbmdMaXRlcmFsQUgocSwgZXh0aW5mby0+ZXh0dmVy c2lvbiwgZm91dCk7CiAJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHEsICIsICIpOwogCmRpZmYgLS1n aXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAu aAppbmRleCA4NjU4MjM4NjhmMS4uNmM2ZWE2YTAxOTEgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wLmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaApAQCAtMTgxLDYg KzE4MSw3IEBAIHR5cGVkZWYgc3RydWN0IF9leHRlbnNpb25JbmZvCiAJRHVtcGFibGVPYmplY3Qg ZG9iajsKIAljaGFyCSAgICpuYW1lc3BhY2U7CQkvKiBzY2hlbWEgY29udGFpbmluZyBleHRlbnNp b24ncyBvYmplY3RzICovCiAJYm9vbAkJcmVsb2NhdGFibGU7CisJYm9vbAkJb3duZWRzY2hlbWE7 CiAJY2hhcgkgICAqZXh0dmVyc2lvbjsKIAljaGFyCSAgICpleHRjb25maWc7CQkvKiBpbmZvIGFi b3V0IGNvbmZpZ3VyYXRpb24gdGFibGVzICovCiAJY2hhcgkgICAqZXh0Y29uZGl0aW9uOwpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19leHRlbnNpb24uaCBiL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfZXh0ZW5zaW9uLmgKaW5kZXggY2RmYWNjMDkzMDMuLmFiMjBmZmY4OGVhIDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2V4dGVuc2lvbi5oCisrKyBiL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfZXh0ZW5zaW9uLmgKQEAgLTM0LDYgKzM0LDcgQEAgQ0FUQUxPRyhw Z19leHRlbnNpb24sMzA3OSxFeHRlbnNpb25SZWxhdGlvbklkKQogCU9pZAkJCWV4dG5hbWVzcGFj ZSBCS0lfTE9PS1VQKHBnX25hbWVzcGFjZSk7CS8qIG5hbWVzcGFjZSBvZgogCQkJCQkJCQkJCQkJ CQkgKiBjb250YWluZWQgb2JqZWN0cyAqLwogCWJvb2wJCWV4dHJlbG9jYXRhYmxlOyAvKiBpZiB0 cnVlLCBhbGxvdyBBTFRFUiBFWFRFTlNJT04gU0VUIFNDSEVNQSAqLworCWJvb2wJCWV4dG93bmVk c2NoZW1hOyAvKiBpZiB0cnVlLCBzY2hlbWEgaXMgb3duZWQgYnkgZXh0ZW5zaW9uICovCiAKICNp ZmRlZiBDQVRBTE9HX1ZBUkxFTgkJCS8qIHZhcmlhYmxlLWxlbmd0aCBmaWVsZHMgc3RhcnQgaGVy ZSAqLwogCS8qIGV4dHZlcnNpb24gbWF5IG5ldmVyIGJlIG51bGwsIGJ1dCB0aGUgb3RoZXJzIGNh biBiZS4gKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgYi9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CmluZGV4IDZhNTQ3NmQzYzRjLi5iODMxNGNj NDI4OCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAorKysgYi9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CkBAIC0xMTQyMCw3ICsxMTQyMCw3IEBACiB7 IG9pZCA9PiAnMzU5MScsIGRlc2NyID0+ICdmb3IgdXNlIGJ5IHBnX3VwZ3JhZGUnLAogICBwcm9u YW1lID0+ICdiaW5hcnlfdXBncmFkZV9jcmVhdGVfZW1wdHlfZXh0ZW5zaW9uJywgcHJvaXNzdHJp Y3QgPT4gJ2YnLAogICBwcm92b2xhdGlsZSA9PiAndicsIHByb3BhcmFsbGVsID0+ICd1JywgcHJv cmV0dHlwZSA9PiAndm9pZCcsCi0gIHByb2FyZ3R5cGVzID0+ICd0ZXh0IHRleHQgYm9vbCB0ZXh0 IF9vaWQgX3RleHQgX3RleHQnLAorICBwcm9hcmd0eXBlcyA9PiAndGV4dCB0ZXh0IGJvb2wgYm9v bCB0ZXh0IF9vaWQgX3RleHQgX3RleHQnLAogICBwcm9zcmMgPT4gJ2JpbmFyeV91cGdyYWRlX2Ny ZWF0ZV9lbXB0eV9leHRlbnNpb24nIH0sCiB7IG9pZCA9PiAnNDA4MycsIGRlc2NyID0+ICdmb3Ig dXNlIGJ5IHBnX3VwZ3JhZGUnLAogICBwcm9uYW1lID0+ICdiaW5hcnlfdXBncmFkZV9zZXRfcmVj b3JkX2luaXRfcHJpdnMnLCBwcm92b2xhdGlsZSA9PiAndicsCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9jb21tYW5kcy9leHRlbnNpb24uaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2V4dGVuc2lv bi5oCmluZGV4IGM2ZjNmODY3ZWI3Li44ZTdmYTU3NDAzMiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvY29tbWFuZHMvZXh0ZW5zaW9uLmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvZXh0ZW5z aW9uLmgKQEAgLTM2LDcgKzM2LDkgQEAgZXh0ZXJuIE9iamVjdEFkZHJlc3MgQ3JlYXRlRXh0ZW5z aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlRXh0ZW5zaW9uU3RtdCAqc3QKIGV4dGVybiB2 b2lkIFJlbW92ZUV4dGVuc2lvbkJ5SWQoT2lkIGV4dElkKTsKIAogZXh0ZXJuIE9iamVjdEFkZHJl c3MgSW5zZXJ0RXh0ZW5zaW9uVHVwbGUoY29uc3QgY2hhciAqZXh0TmFtZSwgT2lkIGV4dE93bmVy LAotCQkJCQkJCQkJCSAgT2lkIHNjaGVtYU9pZCwgYm9vbCByZWxvY2F0YWJsZSwgY29uc3QgY2hh ciAqZXh0VmVyc2lvbiwKKwkJCQkJCQkJCQkgIE9pZCBzY2hlbWFPaWQsIGJvb2wgcmVsb2NhdGFi bGUsCisJCQkJCQkJCQkJICBib29sIG93bmVkU2NoZW1hLAorCQkJCQkJCQkJCSAgY29uc3QgY2hh ciAqZXh0VmVyc2lvbiwKIAkJCQkJCQkJCQkgIERhdHVtIGV4dENvbmZpZywgRGF0dW0gZXh0Q29u ZGl0aW9uLAogCQkJCQkJCQkJCSAgTGlzdCAqcmVxdWlyZWRFeHRlbnNpb25zKTsKIApkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2V4dGVuc2lvbnMvTWFrZWZpbGUgYi9zcmMvdGVz dC9tb2R1bGVzL3Rlc3RfZXh0ZW5zaW9ucy9NYWtlZmlsZQppbmRleCAwNTI3MmU2YTQwYi4uMjhm MjAyOTAxOTAgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9leHRlbnNpb25zL01h a2VmaWxlCisrKyBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9leHRlbnNpb25zL01ha2VmaWxlCkBA IC05LDcgKzksOCBAQCBFWFRFTlNJT04gPSB0ZXN0X2V4dDEgdGVzdF9leHQyIHRlc3RfZXh0MyB0 ZXN0X2V4dDQgdGVzdF9leHQ1IHRlc3RfZXh0NiBcCiAgICAgICAgICAgICB0ZXN0X2V4dF9leHRz Y2hlbWEgXAogICAgICAgICAgICAgdGVzdF9leHRfZXZ0dHJpZyBcCiAgICAgICAgICAgICB0ZXN0 X2V4dF9zZXRfc2NoZW1hIFwKLSAgICAgICAgICAgIHRlc3RfZXh0X3JlcV9zY2hlbWExIHRlc3Rf ZXh0X3JlcV9zY2hlbWEyIHRlc3RfZXh0X3JlcV9zY2hlbWEzCisgICAgICAgICAgICB0ZXN0X2V4 dF9yZXFfc2NoZW1hMSB0ZXN0X2V4dF9yZXFfc2NoZW1hMiB0ZXN0X2V4dF9yZXFfc2NoZW1hMyBc CisgICAgICAgICAgICB0ZXN0X2V4dF9vd25lZF9zY2hlbWEgdGVzdF9leHRfb3duZWRfc2NoZW1h X3JlbG9jYXRhYmxlCiAKIERBVEEgPSB0ZXN0X2V4dDEtLTEuMC5zcWwgdGVzdF9leHQyLS0xLjAu c3FsIHRlc3RfZXh0My0tMS4wLnNxbCBcCiAgICAgICAgdGVzdF9leHQ0LS0xLjAuc3FsIHRlc3Rf ZXh0NS0tMS4wLnNxbCB0ZXN0X2V4dDYtLTEuMC5zcWwgXApAQCAtMjMsNyArMjQsOSBAQCBEQVRB ID0gdGVzdF9leHQxLS0xLjAuc3FsIHRlc3RfZXh0Mi0tMS4wLnNxbCB0ZXN0X2V4dDMtLTEuMC5z cWwgXAogICAgICAgIHRlc3RfZXh0X3NldF9zY2hlbWEtLTEuMC5zcWwgXAogICAgICAgIHRlc3Rf ZXh0X3JlcV9zY2hlbWExLS0xLjAuc3FsIFwKICAgICAgICB0ZXN0X2V4dF9yZXFfc2NoZW1hMi0t MS4wLnNxbCBcCi0gICAgICAgdGVzdF9leHRfcmVxX3NjaGVtYTMtLTEuMC5zcWwKKyAgICAgICB0 ZXN0X2V4dF9yZXFfc2NoZW1hMy0tMS4wLnNxbCBcCisgICAgICAgdGVzdF9leHRfb3duZWRfc2No ZW1hLS0xLjAuc3FsIFwKKyAgICAgICB0ZXN0X2V4dF9vd25lZF9zY2hlbWFfcmVsb2NhdGFibGUt LTEuMC5zcWwKIAogUkVHUkVTUyA9IHRlc3RfZXh0ZW5zaW9ucyB0ZXN0X2V4dGRlcGVuZAogCmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfZXh0ZW5zaW9ucy9leHBlY3RlZC90ZXN0 X2V4dGVuc2lvbnMub3V0IGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2V4dGVuc2lvbnMvZXhwZWN0 ZWQvdGVzdF9leHRlbnNpb25zLm91dAppbmRleCBmMzU3Y2MyMWFhYS4uYzBhMmI3YjMxNWUgMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9leHRlbnNpb25zL2V4cGVjdGVkL3Rlc3Rf ZXh0ZW5zaW9ucy5vdXQKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2V4dGVuc2lvbnMvZXhw ZWN0ZWQvdGVzdF9leHRlbnNpb25zLm91dApAQCAtNjI2LDMgKzYyNiw1MyBAQCBTRUxFQ1QgdGVz dF9zX2RlcC5kZXBfcmVxMigpOwogCiBEUk9QIEVYVEVOU0lPTiB0ZXN0X2V4dF9yZXFfc2NoZW1h MSBDQVNDQURFOwogTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byBleHRlbnNpb24gdGVzdF9leHRf cmVxX3NjaGVtYTIKKy0tCistLSBUZXN0IG93bmVkIHNjaGVtYSBleHRlbnNpb25zCistLQorQ1JF QVRFIFNDSEVNQSB0ZXN0X2V4dF9vd25lZF9zY2hlbWE7CistLSBGYWlscyBmb3IgYW4gYWxyZWFk eSBleGlzdGluZyBzY2hlbWEgdG8gYmUgcHJvdmlkZWQKK0NSRUFURSBFWFRFTlNJT04gdGVzdF9l eHRfb3duZWRfc2NoZW1hIFNDSEVNQSB0ZXN0X2V4dF9vd25lZF9zY2hlbWE7CitFUlJPUjogIHNj aGVtYSAidGVzdF9leHRfb3duZWRfc2NoZW1hIiBhbHJlYWR5IGV4aXN0cworLS0gRmFpbHMgYmVj YXVzZSBhIGRpZmZlcmVudCBzY2hlbWEgaXMgc2V0IGluIGNvbnRyb2wgZmlsZQorQ1JFQVRFIEVY VEVOU0lPTiB0ZXN0X2V4dF9vd25lZF9zY2hlbWEgU0NIRU1BIHRlc3Rfc2NoZW1hOworRVJST1I6 ICBleHRlbnNpb24gInRlc3RfZXh0X293bmVkX3NjaGVtYSIgbXVzdCBiZSBpbnN0YWxsZWQgaW4g c2NoZW1hICJ0ZXN0X2V4dF9vd25lZF9zY2hlbWEiCitEUk9QIFNDSEVNQSB0ZXN0X2V4dF9vd25l ZF9zY2hlbWE7CitDUkVBVEUgRVhURU5TSU9OIHRlc3RfZXh0X293bmVkX3NjaGVtYTsKK1xkeCsg dGVzdF9leHRfb3duZWRfc2NoZW1hOworT2JqZWN0cyBpbiBleHRlbnNpb24gInRlc3RfZXh0X293 bmVkX3NjaGVtYSIKKyAgICAgICAgICAgT2JqZWN0IGRlc2NyaXB0aW9uICAgICAgICAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGZ1bmN0aW9uIHRlc3Rf ZXh0X293bmVkX3NjaGVtYS5vd25lZDEoKQorIHNjaGVtYSB0ZXN0X2V4dF9vd25lZF9zY2hlbWEK KygyIHJvd3MpCisKK0RST1AgRVhURU5TSU9OIHRlc3RfZXh0X293bmVkX3NjaGVtYTsKK0NSRUFU RSBTQ0hFTUEgYWxyZWFkeV9leGlzdGluZzsKKy0tIEZhaWxzIGZvciBhbiBhbHJlYWR5IGV4aXN0 aW5nIHNjaGVtYSB0byBiZSBwcm92aWRlZAorQ1JFQVRFIEVYVEVOU0lPTiB0ZXN0X2V4dF9vd25l ZF9zY2hlbWFfcmVsb2NhdGFibGUgU0NIRU1BIGFscmVhZHlfZXhpc3Rpbmc7CitFUlJPUjogIHNj aGVtYSAiYWxyZWFkeV9leGlzdGluZyIgYWxyZWFkeSBleGlzdHMKKy0tIEZhaWxzIGJlY2F1c2Ug bm8gc2NoZW1hIGlzIHNldCBpbiBjb250cm9sIGZpbGUKK0NSRUFURSBFWFRFTlNJT04gdGVzdF9l eHRfb3duZWRfc2NoZW1hX3JlbG9jYXRhYmxlOworRVJST1I6ICBubyBzY2hlbWEgaGFzIGJlZW4g c2VsZWN0ZWQgdG8gY3JlYXRlIGluCitDUkVBVEUgRVhURU5TSU9OIHRlc3RfZXh0X293bmVkX3Nj aGVtYV9yZWxvY2F0YWJsZSBTQ0hFTUEgdGVzdF9zY2hlbWE7CitcZHgrIHRlc3RfZXh0X293bmVk X3NjaGVtYV9yZWxvY2F0YWJsZQorT2JqZWN0cyBpbiBleHRlbnNpb24gInRlc3RfZXh0X293bmVk X3NjaGVtYV9yZWxvY2F0YWJsZSIKKyAgICAgIE9iamVjdCBkZXNjcmlwdGlvbiAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBmdW5jdGlvbiB0ZXN0X3NjaGVtYS5vd25l ZDIoKQorIHNjaGVtYSB0ZXN0X3NjaGVtYQorKDIgcm93cykKKworLS0gRmFpbHMgYmVjYXVzZSBz Y2hlbWEgYWxyZWFkeSBleGlzdHMKK0FMVEVSIEVYVEVOU0lPTiB0ZXN0X2V4dF9vd25lZF9zY2hl bWFfcmVsb2NhdGFibGUgU0VUIFNDSEVNQSBhbHJlYWR5X2V4aXN0aW5nOworRVJST1I6ICBzY2hl bWEgImFscmVhZHlfZXhpc3RpbmciIGFscmVhZHkgZXhpc3RzCitBTFRFUiBFWFRFTlNJT04gdGVz dF9leHRfb3duZWRfc2NoZW1hX3JlbG9jYXRhYmxlIFNFVCBTQ0hFTUEgc29tZV9vdGhlcl9uYW1l OworXGR4KyB0ZXN0X2V4dF9vd25lZF9zY2hlbWFfcmVsb2NhdGFibGUKK09iamVjdHMgaW4gZXh0 ZW5zaW9uICJ0ZXN0X2V4dF9vd25lZF9zY2hlbWFfcmVsb2NhdGFibGUiCisgICAgICAgIE9iamVj dCBkZXNjcmlwdGlvbiAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyBmdW5jdGlvbiBzb21lX290aGVyX25hbWUub3duZWQyKCkKKyBzY2hlbWEgc29tZV9vdGhl cl9uYW1lCisoMiByb3dzKQorCitEUk9QIEVYVEVOU0lPTiB0ZXN0X2V4dF9vd25lZF9zY2hlbWFf cmVsb2NhdGFibGU7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfZXh0ZW5zaW9u cy9tZXNvbi5idWlsZCBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9leHRlbnNpb25zL21lc29uLmJ1 aWxkCmluZGV4IGM1ZjM0MjRkYTUxLi41MmU4ODQxNDgwYiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv bW9kdWxlcy90ZXN0X2V4dGVuc2lvbnMvbWVzb24uYnVpbGQKKysrIGIvc3JjL3Rlc3QvbW9kdWxl cy90ZXN0X2V4dGVuc2lvbnMvbWVzb24uYnVpbGQKQEAgLTQyLDYgKzQyLDEwIEBAIHRlc3RfaW5z dGFsbF9kYXRhICs9IGZpbGVzKAogICAndGVzdF9leHRfcmVxX3NjaGVtYTMuY29udHJvbCcsCiAg ICd0ZXN0X2V4dF9zZXRfc2NoZW1hLS0xLjAuc3FsJywKICAgJ3Rlc3RfZXh0X3NldF9zY2hlbWEu Y29udHJvbCcsCisgICd0ZXN0X2V4dF9vd25lZF9zY2hlbWEtLTEuMC5zcWwnLAorICAndGVzdF9l eHRfb3duZWRfc2NoZW1hLmNvbnRyb2wnLAorICAndGVzdF9leHRfb3duZWRfc2NoZW1hX3JlbG9j YXRhYmxlLS0xLjAuc3FsJywKKyAgJ3Rlc3RfZXh0X293bmVkX3NjaGVtYV9yZWxvY2F0YWJsZS5j b250cm9sJywKICkKIAogdGVzdHMgKz0gewpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy90 ZXN0X2V4dGVuc2lvbnMvc3FsL3Rlc3RfZXh0ZW5zaW9ucy5zcWwgYi9zcmMvdGVzdC9tb2R1bGVz L3Rlc3RfZXh0ZW5zaW9ucy9zcWwvdGVzdF9leHRlbnNpb25zLnNxbAppbmRleCA2NDJjODJmZjVk My4uMTM2OTY3ZGIzOTUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9leHRlbnNp b25zL3NxbC90ZXN0X2V4dGVuc2lvbnMuc3FsCisrKyBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9l eHRlbnNpb25zL3NxbC90ZXN0X2V4dGVuc2lvbnMuc3FsCkBAIC0yOTksMyArMjk5LDMwIEBAIEFM VEVSIEVYVEVOU0lPTiB0ZXN0X2V4dF9yZXFfc2NoZW1hMSBTRVQgU0NIRU1BIHRlc3Rfc19kZXAy OyAgLS0gbm93IG9rCiBTRUxFQ1QgdGVzdF9zX2RlcDIuZGVwX3JlcTEoKTsKIFNFTEVDVCB0ZXN0 X3NfZGVwLmRlcF9yZXEyKCk7CiBEUk9QIEVYVEVOU0lPTiB0ZXN0X2V4dF9yZXFfc2NoZW1hMSBD QVNDQURFOworCistLQorLS0gVGVzdCBvd25lZCBzY2hlbWEgZXh0ZW5zaW9ucworLS0KKworQ1JF QVRFIFNDSEVNQSB0ZXN0X2V4dF9vd25lZF9zY2hlbWE7CistLSBGYWlscyBmb3IgYW4gYWxyZWFk eSBleGlzdGluZyBzY2hlbWEgdG8gYmUgcHJvdmlkZWQKK0NSRUFURSBFWFRFTlNJT04gdGVzdF9l eHRfb3duZWRfc2NoZW1hIFNDSEVNQSB0ZXN0X2V4dF9vd25lZF9zY2hlbWE7CistLSBGYWlscyBi ZWNhdXNlIGEgZGlmZmVyZW50IHNjaGVtYSBpcyBzZXQgaW4gY29udHJvbCBmaWxlCitDUkVBVEUg RVhURU5TSU9OIHRlc3RfZXh0X293bmVkX3NjaGVtYSBTQ0hFTUEgdGVzdF9zY2hlbWE7CitEUk9Q IFNDSEVNQSB0ZXN0X2V4dF9vd25lZF9zY2hlbWE7CitDUkVBVEUgRVhURU5TSU9OIHRlc3RfZXh0 X293bmVkX3NjaGVtYTsKK1xkeCsgdGVzdF9leHRfb3duZWRfc2NoZW1hOworRFJPUCBFWFRFTlNJ T04gdGVzdF9leHRfb3duZWRfc2NoZW1hOworCitDUkVBVEUgU0NIRU1BIGFscmVhZHlfZXhpc3Rp bmc7CistLSBGYWlscyBmb3IgYW4gYWxyZWFkeSBleGlzdGluZyBzY2hlbWEgdG8gYmUgcHJvdmlk ZWQKK0NSRUFURSBFWFRFTlNJT04gdGVzdF9leHRfb3duZWRfc2NoZW1hX3JlbG9jYXRhYmxlIFND SEVNQSBhbHJlYWR5X2V4aXN0aW5nOworLS0gRmFpbHMgYmVjYXVzZSBubyBzY2hlbWEgaXMgc2V0 IGluIGNvbnRyb2wgZmlsZQorQ1JFQVRFIEVYVEVOU0lPTiB0ZXN0X2V4dF9vd25lZF9zY2hlbWFf cmVsb2NhdGFibGU7CitDUkVBVEUgRVhURU5TSU9OIHRlc3RfZXh0X293bmVkX3NjaGVtYV9yZWxv Y2F0YWJsZSBTQ0hFTUEgdGVzdF9zY2hlbWE7CitcZHgrIHRlc3RfZXh0X293bmVkX3NjaGVtYV9y ZWxvY2F0YWJsZQorLS0gRmFpbHMgYmVjYXVzZSBzY2hlbWEgYWxyZWFkeSBleGlzdHMKK0FMVEVS IEVYVEVOU0lPTiB0ZXN0X2V4dF9vd25lZF9zY2hlbWFfcmVsb2NhdGFibGUgU0VUIFNDSEVNQSBh bHJlYWR5X2V4aXN0aW5nOworQUxURVIgRVhURU5TSU9OIHRlc3RfZXh0X293bmVkX3NjaGVtYV9y ZWxvY2F0YWJsZSBTRVQgU0NIRU1BIHNvbWVfb3RoZXJfbmFtZTsKK1xkeCsgdGVzdF9leHRfb3du ZWRfc2NoZW1hX3JlbG9jYXRhYmxlCitEUk9QIEVYVEVOU0lPTiB0ZXN0X2V4dF9vd25lZF9zY2hl bWFfcmVsb2NhdGFibGU7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfZXh0ZW5z aW9ucy90ZXN0X2V4dF9vd25lZF9zY2hlbWEtLTEuMC5zcWwgYi9zcmMvdGVzdC9tb2R1bGVzL3Rl c3RfZXh0ZW5zaW9ucy90ZXN0X2V4dF9vd25lZF9zY2hlbWEtLTEuMC5zcWwKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjY3MmFiOGU2MDdmCi0tLSAvZGV2L251bGwKKysr IGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2V4dGVuc2lvbnMvdGVzdF9leHRfb3duZWRfc2NoZW1h LS0xLjAuc3FsCkBAIC0wLDAgKzEsMiBAQAorQ1JFQVRFIEZVTkNUSU9OIG93bmVkMSgpIFJFVFVS TlMgdGV4dAorTEFOR1VBR0UgU1FMIEFTICQkIFNFTEVDVCAxICQkOwpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvbW9kdWxlcy90ZXN0X2V4dGVuc2lvbnMvdGVzdF9leHRfb3duZWRfc2NoZW1hLmNvbnRy b2wgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfZXh0ZW5zaW9ucy90ZXN0X2V4dF9vd25lZF9zY2hl bWEuY29udHJvbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNTMxYzM4 ZGFlZmQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfZXh0ZW5zaW9u cy90ZXN0X2V4dF9vd25lZF9zY2hlbWEuY29udHJvbApAQCAtMCwwICsxLDUgQEAKK2NvbW1lbnQg PSAnVGVzdCBleHRlbnNpb24gd2l0aCBhbiBvd25lZCBzY2hlbWEnCitkZWZhdWx0X3ZlcnNpb24g PSAnMS4wJworcmVsb2NhdGFibGUgPSBmYWxzZQorc2NoZW1hID0gdGVzdF9leHRfb3duZWRfc2No ZW1hCitvd25lZF9zY2hlbWEgPSB0cnVlCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL3Rl c3RfZXh0ZW5zaW9ucy90ZXN0X2V4dF9vd25lZF9zY2hlbWFfcmVsb2NhdGFibGUtLTEuMC5zcWwg Yi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfZXh0ZW5zaW9ucy90ZXN0X2V4dF9vd25lZF9zY2hlbWFf cmVsb2NhdGFibGUtLTEuMC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAuLmJmY2NhZjRhZjgyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0 X2V4dGVuc2lvbnMvdGVzdF9leHRfb3duZWRfc2NoZW1hX3JlbG9jYXRhYmxlLS0xLjAuc3FsCkBA IC0wLDAgKzEsMiBAQAorQ1JFQVRFIEZVTkNUSU9OIG93bmVkMigpIFJFVFVSTlMgdGV4dAorTEFO R1VBR0UgU1FMIEFTICQkIFNFTEVDVCAxICQkOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxl cy90ZXN0X2V4dGVuc2lvbnMvdGVzdF9leHRfb3duZWRfc2NoZW1hX3JlbG9jYXRhYmxlLmNvbnRy b2wgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfZXh0ZW5zaW9ucy90ZXN0X2V4dF9vd25lZF9zY2hl bWFfcmVsb2NhdGFibGUuY29udHJvbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uM2NkYTFlMTIzNDEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9tb2R1bGVzL3Rl c3RfZXh0ZW5zaW9ucy90ZXN0X2V4dF9vd25lZF9zY2hlbWFfcmVsb2NhdGFibGUuY29udHJvbApA QCAtMCwwICsxLDQgQEAKK2NvbW1lbnQgPSAnVGVzdCBleHRlbnNpb24gd2l0aCBhbiBvd25lZCBz Y2hlbWEnCitkZWZhdWx0X3ZlcnNpb24gPSAnMS4wJworcmVsb2NhdGFibGUgPSB0cnVlCitvd25l ZF9zY2hlbWEgPSB0cnVlCgpiYXNlLWNvbW1pdDogMDNlYzIwMzE2NDExOWYxMWYwZWFiNGM4M2M5 N2E4NTI3ZTJiMTA4ZAotLSAKMi4zNC4xCgo= --0000000000004ea071061b3fb94f--