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 1tqVuX-00644y-7E for pgsql-hackers@arkaria.postgresql.org; Fri, 07 Mar 2025 11:30:37 +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 1tqVuV-000HCp-MG for pgsql-hackers@arkaria.postgresql.org; Fri, 07 Mar 2025 11:30:35 +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 1tqVuV-000HCg-5S for pgsql-hackers@lists.postgresql.org; Fri, 07 Mar 2025 11:30:35 +0000 Received: from mail-ed1-x52b.google.com ([2a00:1450:4864:20::52b]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1tqVuR-001UPZ-0A for pgsql-hackers@lists.postgresql.org; Fri, 07 Mar 2025 11:30:34 +0000 Received: by mail-ed1-x52b.google.com with SMTP id 4fb4d7f45d1cf-5e52bf5eb0fso214276a12.2 for ; Fri, 07 Mar 2025 03:30:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741347031; x=1741951831; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=pqUpFtDg+R3yl2whtGPEht1g9pajyLRoH68a/JayEns=; b=jL5zsTQxgztv/G478+8cghcR/p6In5w6RK2hD83iXpPe4MYISIPesa6U9uC9eBEL5Q BWGZeYT2kLgRxHEIzC6b6CwQVLq+aolr2WMUs1pQZBgYJDLhT3H2iEERmpSCQ4IGnuvJ DYQ/B7yp7Gb8O4r6aVAXzMwqmfkBncxt32oFM406zEpPTe1D1UkfskftP/dwMUxG9YDC fqC02XQu84RLQlLAHhmuQS6DAB+aSk/UgPKr3aB0xmshRn7yU2t87AFCk9f8kw390HVu qpg3Dy+C6WdlqXoJq0CPj+xTmhMEGNKVrFWu7Y0lJv5gUtgu/SpfS/UC7JXgqvrh3iZ6 DnAw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741347031; x=1741951831; 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=pqUpFtDg+R3yl2whtGPEht1g9pajyLRoH68a/JayEns=; b=REEUtw+8MuiGsCshYWq4LNisqbgxNb1TCkGT8i8actmB4HyKkM8UnYbE1o9zGutYcx rFk53xjNtY7EdBuCmJEszZOUpNyrVGFkA64aotUvcDwHQ098crp+GpOGfBf3l1CrMYCD X0uiXHjQ8IUJjAuvFEJ3yL+jwv+OTYzEy9ywvS7Hn7VIZxTcgxQCZFV97zGxi3lVdhSU BlkzNrWzFLf7MzKRy+cDvjMh26R6zZ/iD7FaTUNgi4n6SzTrfK9D5mpEHHw/RHZey/h5 BHPIc7jUTRXWhrmF2UfCRRBkMOD+3pZBtg4purci14PA/7dz8W7qEoPMtscXRGugz2Cz iRsA== X-Forwarded-Encrypted: i=1; AJvYcCVzA6DOa7Dw7d8hbKrO6a5OIUkYuAot1d/JmHTxevqf/Bj2mvLuNeb74OvSMng+YU3jW8UfrtZ39YUWBaMW@lists.postgresql.org X-Gm-Message-State: AOJu0YyMfX2gHzvxevDPfzMz4D2/qfz8fEJkFKAZmfKxJmpYYggwNmbX dTA7gXHGUDsEFgCcx95vYYyLaF9f910IOmz5u75l/PsMV7RaRiOmtjPq6nRVFDHOkLRRtYLQvkd zUB/PUbgC41kaL+5iOoQFZasFQjY= X-Gm-Gg: ASbGncuhSnj/DKUeIuZVeTKLnKZtNScSIp0QBS5sMlngr/hjiHpnBjjBnE3fFUGnXXf UVEnzkk3D3roy/kUoa9jn78WWMl/BYVvs5rgIYkFKX9IueUDQb9g7fEMplU2N74rQZvxS9T1gbb IHwJ3IdSo5kXSpy6EK2W475WkXhXs= X-Google-Smtp-Source: AGHT+IE4xZIIIeWeEnSmvQaWipGRclViUIa6VmsIypmyEl+dsop07BEMB1lCmFrG8+5y2ClB4/5vQJ1qqo9xHrdqfvc= X-Received: by 2002:a17:907:7f12:b0:ac2:166f:42f8 with SMTP id a640c23a62f3a-ac252e98f46mr144209366b.8.1741347030448; Fri, 07 Mar 2025 03:30:30 -0800 (PST) MIME-Version: 1.0 References: <5ecc35f5-1111-47fc-8a02-36d89490a50d@iki.fi> <24b3deb6-a732-4256-847a-560f4bf39d59@iki.fi> <4535f3aa-3220-4760-b1f5-2bc91f248e03@iki.fi> <2bc58592-9d74-4af0-bdd1-1a88e8683f7c@iki.fi> In-Reply-To: From: Maxim Orlov Date: Fri, 7 Mar 2025 14:30:17 +0300 X-Gm-Features: AQ5f1Jo6rswZacZzbVC9M8YFE_ybVGf80WdvmkjR2vywibpG8POGZGlUPY1qD20 Message-ID: Subject: Re: POC: make mxidoff 64 bits To: wenhui qiu Cc: Heikki Linnakangas , Alexander Korotkov , Postgres hackers Content-Type: multipart/mixed; boundary="0000000000002ec161062fbef3d0" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000002ec161062fbef3d0 Content-Type: multipart/alternative; boundary="0000000000002ec15e062fbef3ce" --0000000000002ec15e062fbef3ce Content-Type: text/plain; charset="UTF-8" Here is a rebase, v14. -- Best regards, Maxim Orlov. --0000000000002ec15e062fbef3ce Content-Type: text/html; charset="UTF-8"
Here is a rebase, v14.

--
Best regards,
Maxim Orlov.
--0000000000002ec15e062fbef3ce-- --0000000000002ec161062fbef3d0 Content-Type: text/plain; charset="US-ASCII"; name="v14-0005-TEST-initdb-option-to-initialize-cluster-with-no.patch.txt" Content-Disposition: attachment; filename="v14-0005-TEST-initdb-option-to-initialize-cluster-with-no.patch.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m7yp1uft4 RnJvbSBlZTRiM2IzYzNhZDMyOTM0NjBlYjFmMDQxOGQ4N2EwNjViOWE1ODliIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbSBPcmxvdiA8bS5vcmxvdkBwb3N0Z3Jlc3Byby5ydT4K RGF0ZTogV2VkLCA0IE1heSAyMDIyIDE1OjUzOjM2ICswMzAwClN1YmplY3Q6IFtQQVRDSCB2MTQg NS83XSBURVNUOiBpbml0ZGIgb3B0aW9uIHRvIGluaXRpYWxpemUgY2x1c3RlciB3aXRoCiBub24t c3RhbmRhcmQgeGlkL214aWQvbXhvZmYKClRvIGRhdGUgdGVzdGluZyBkYXRhYmFzZSBjbHVzdGVy IHdyYXBhcnVuZCB3YXMgbm90IGVhc3kgYXMgaW5pdGRiIGhhcyBhbHdheXMKaW5pdGVkIGl0IHdp dGggZGVmYXVsdCB4aWQvbXhpZC9teG9mZi4gVGhlIG9wdGlvbiB0byBzcGVjaWZ5IGFueSB2YWxp ZAp4aWQvbXhpZC9teG9mZiBhdCBjbHVzdGVyIHN0YXJ0dXAgd2lsbCBtYWtlIHRoZXNlIHRoaW5n cyBlYXNpZXIuCgpBdXRob3I6IE1heGltIE9ybG92IDxvcmxvdm1nQGdtYWlsLmNvbT4KQXV0aG9y OiBQYXZlbCBCb3Jpc292IDxwYXNoa2luLmVsZmVAZ21haWwuY29tPgpBdXRob3I6IFN2ZXRsYW5h IERlcmV2eWFua28gPHMuZGVyZXZ5YW5rb0Bwb3N0Z3Jlc3Byby5ydT4KRGlzY3Vzc2lvbjogaHR0 cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvbWVzc2FnZS1pZC9mbGF0L0NBQ0clM0RlemFhNHZxWWpK MTZ5b3hncnBhLSUzRGdYbmYwVnYzRXk5YmpHclJSRk4yWXlXRlElNDBtYWlsLmdtYWlsLmNvbQot LS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL2Nsb2cuYyAgICAgIHwgIDIxICsrKysrCiBz cmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9tdWx0aXhhY3QuYyB8ICA1MyArKysrKysrKysrKysK IHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3N1YnRyYW5zLmMgIHwgICA4ICstCiBzcmMvYmFj a2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMgICAgICB8ICAxNSArKy0tCiBzcmMvYmFja2VuZC9i b290c3RyYXAvYm9vdHN0cmFwLmMgICAgICB8ICA1MCArKysrKysrKysrKy0KIHNyYy9iYWNrZW5k L21haW4vbWFpbi5jICAgICAgICAgICAgICAgIHwgICA2ICsrCiBzcmMvYmFja2VuZC9wb3N0bWFz dGVyL3Bvc3RtYXN0ZXIuYyAgICB8ICAxNCArKystCiBzcmMvYmFja2VuZC90Y29wL3Bvc3RncmVz LmMgICAgICAgICAgICB8ICA1MyArKysrKysrKysrKy0KIHNyYy9iaW4vaW5pdGRiL2luaXRkYi5j ICAgICAgICAgICAgICAgIHwgMTA3ICsrKysrKysrKysrKysrKysrKysrKysrKy0KIHNyYy9iaW4v aW5pdGRiL3QvMDAxX2luaXRkYi5wbCAgICAgICAgIHwgIDYwICsrKysrKysrKysrKysrCiBzcmMv aW5jbHVkZS9hY2Nlc3MveGxvZy5oICAgICAgICAgICAgICB8ICAgMyArCiBzcmMvaW5jbHVkZS9j LmggICAgICAgICAgICAgICAgICAgICAgICB8ICAgNCArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X2NsYXNzLmggICAgICAgICB8ICAgMiArLQogMTMgZmlsZXMgY2hhbmdlZCwgMzgyIGluc2VydGlv bnMoKyksIDE0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90 cmFuc2FtL2Nsb2cuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL2Nsb2cuYwppbmRleCA0 OGYxMGJlYzkxLi5lYjhhOTc5MWFiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJh bnNhbS9jbG9nLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vY2xvZy5jCkBAIC04 MzQsNiArODM0LDcgQEAgQm9vdFN0cmFwQ0xPRyh2b2lkKQogewogCWludAkJCXNsb3RubzsKIAlM V0xvY2sJICAgKmxvY2sgPSBTaW1wbGVMcnVHZXRCYW5rTG9jayhYYWN0Q3RsLCAwKTsKKwlpbnQ2 NAkJcGFnZW5vOwogCiAJTFdMb2NrQWNxdWlyZShsb2NrLCBMV19FWENMVVNJVkUpOwogCkBAIC04 NDQsNiArODQ1LDI2IEBAIEJvb3RTdHJhcENMT0codm9pZCkKIAlTaW1wbGVMcnVXcml0ZVBhZ2Uo WGFjdEN0bCwgc2xvdG5vKTsKIAlBc3NlcnQoIVhhY3RDdGwtPnNoYXJlZC0+cGFnZV9kaXJ0eVtz bG90bm9dKTsKIAorCXBhZ2VubyA9IFRyYW5zYWN0aW9uSWRUb1BhZ2UoWGlkRnJvbUZ1bGxUcmFu c2FjdGlvbklkKFRyYW5zYW1WYXJpYWJsZXMtPm5leHRYaWQpKTsKKwlpZiAocGFnZW5vICE9IDAp CisJeworCQlMV0xvY2sgKm5leHRsb2NrID0gU2ltcGxlTHJ1R2V0QmFua0xvY2soWGFjdEN0bCwg cGFnZW5vKTsKKworCQlpZiAobmV4dGxvY2sgIT0gbG9jaykKKwkJeworCQkJTFdMb2NrUmVsZWFz ZShsb2NrKTsKKwkJCUxXTG9ja0FjcXVpcmUobmV4dGxvY2ssIExXX0VYQ0xVU0lWRSk7CisJCQls b2NrID0gbmV4dGxvY2s7CisJCX0KKworCQkvKiBDcmVhdGUgYW5kIHplcm8gdGhlIGZpcnN0IHBh Z2Ugb2YgdGhlIGNvbW1pdCBsb2cgKi8KKwkJc2xvdG5vID0gWmVyb0NMT0dQYWdlKHBhZ2Vubywg ZmFsc2UpOworCisJCS8qIE1ha2Ugc3VyZSBpdCdzIHdyaXR0ZW4gb3V0ICovCisJCVNpbXBsZUxy dVdyaXRlUGFnZShYYWN0Q3RsLCBzbG90bm8pOworCQlBc3NlcnQoIVhhY3RDdGwtPnNoYXJlZC0+ cGFnZV9kaXJ0eVtzbG90bm9dKTsKKwl9CisKIAlMV0xvY2tSZWxlYXNlKGxvY2spOwogfQogCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9tdWx0aXhhY3QuYyBiL3NyYy9i YWNrZW5kL2FjY2Vzcy90cmFuc2FtL211bHRpeGFjdC5jCmluZGV4IDRkYWU4ZjQ3OTkuLmFjNjhi ZWNmOGIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL211bHRpeGFjdC5j CisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL211bHRpeGFjdC5jCkBAIC0xOTU1LDYg KzE5NTUsNyBAQCBCb290U3RyYXBNdWx0aVhhY3Qodm9pZCkKIHsKIAlpbnQJCQlzbG90bm87CiAJ TFdMb2NrCSAgICpsb2NrOworCWludDY0CQlwYWdlbm87CiAKIAlsb2NrID0gU2ltcGxlTHJ1R2V0 QmFua0xvY2soTXVsdGlYYWN0T2Zmc2V0Q3RsLCAwKTsKIAlMV0xvY2tBY3F1aXJlKGxvY2ssIExX X0VYQ0xVU0lWRSk7CkBAIC0xOTY2LDYgKzE5NjcsMjYgQEAgQm9vdFN0cmFwTXVsdGlYYWN0KHZv aWQpCiAJU2ltcGxlTHJ1V3JpdGVQYWdlKE11bHRpWGFjdE9mZnNldEN0bCwgc2xvdG5vKTsKIAlB c3NlcnQoIU11bHRpWGFjdE9mZnNldEN0bC0+c2hhcmVkLT5wYWdlX2RpcnR5W3Nsb3Rub10pOwog CisJcGFnZW5vID0gTXVsdGlYYWN0SWRUb09mZnNldFBhZ2UoTXVsdGlYYWN0U3RhdGUtPm5leHRN WGFjdCk7CisJaWYgKHBhZ2VubyAhPSAwKQorCXsKKwkJTFdMb2NrICpuZXh0bG9jayA9IFNpbXBs ZUxydUdldEJhbmtMb2NrKE11bHRpWGFjdE9mZnNldEN0bCwgcGFnZW5vKTsKKworCQlpZiAobmV4 dGxvY2sgIT0gbG9jaykKKwkJeworCQkJTFdMb2NrUmVsZWFzZShsb2NrKTsKKwkJCUxXTG9ja0Fj cXVpcmUobmV4dGxvY2ssIExXX0VYQ0xVU0lWRSk7CisJCQlsb2NrID0gbmV4dGxvY2s7CisJCX0K KworCQkvKiBDcmVhdGUgYW5kIHplcm8gdGhlIGZpcnN0IHBhZ2Ugb2YgdGhlIG9mZnNldHMgbG9n ICovCisJCXNsb3RubyA9IFplcm9NdWx0aVhhY3RPZmZzZXRQYWdlKHBhZ2VubywgZmFsc2UpOwor CisJCS8qIE1ha2Ugc3VyZSBpdCdzIHdyaXR0ZW4gb3V0ICovCisJCVNpbXBsZUxydVdyaXRlUGFn ZShNdWx0aVhhY3RPZmZzZXRDdGwsIHNsb3Rubyk7CisJCUFzc2VydCghTXVsdGlYYWN0T2Zmc2V0 Q3RsLT5zaGFyZWQtPnBhZ2VfZGlydHlbc2xvdG5vXSk7CisJfQorCiAJTFdMb2NrUmVsZWFzZShs b2NrKTsKIAogCWxvY2sgPSBTaW1wbGVMcnVHZXRCYW5rTG9jayhNdWx0aVhhY3RNZW1iZXJDdGws IDApOwpAQCAtMTk3OCw3ICsxOTk5LDM5IEBAIEJvb3RTdHJhcE11bHRpWGFjdCh2b2lkKQogCVNp bXBsZUxydVdyaXRlUGFnZShNdWx0aVhhY3RNZW1iZXJDdGwsIHNsb3Rubyk7CiAJQXNzZXJ0KCFN dWx0aVhhY3RNZW1iZXJDdGwtPnNoYXJlZC0+cGFnZV9kaXJ0eVtzbG90bm9dKTsKIAorCXBhZ2Vu byA9IE1YT2Zmc2V0VG9NZW1iZXJQYWdlKE11bHRpWGFjdFN0YXRlLT5uZXh0T2Zmc2V0KTsKKwlp ZiAocGFnZW5vICE9IDApCisJeworCQlMV0xvY2sgKm5leHRsb2NrID0gU2ltcGxlTHJ1R2V0QmFu a0xvY2soTXVsdGlYYWN0TWVtYmVyQ3RsLCBwYWdlbm8pOworCisJCWlmIChuZXh0bG9jayAhPSBs b2NrKQorCQl7CisJCQlMV0xvY2tSZWxlYXNlKGxvY2spOworCQkJTFdMb2NrQWNxdWlyZShuZXh0 bG9jaywgTFdfRVhDTFVTSVZFKTsKKwkJCWxvY2sgPSBuZXh0bG9jazsKKwkJfQorCisJCS8qIENy ZWF0ZSBhbmQgemVybyB0aGUgZmlyc3QgcGFnZSBvZiB0aGUgbWVtYmVycyBsb2cgKi8KKwkJc2xv dG5vID0gWmVyb011bHRpWGFjdE1lbWJlclBhZ2UocGFnZW5vLCBmYWxzZSk7CisKKwkJLyogTWFr ZSBzdXJlIGl0J3Mgd3JpdHRlbiBvdXQgKi8KKwkJU2ltcGxlTHJ1V3JpdGVQYWdlKE11bHRpWGFj dE1lbWJlckN0bCwgc2xvdG5vKTsKKwkJQXNzZXJ0KCFNdWx0aVhhY3RNZW1iZXJDdGwtPnNoYXJl ZC0+cGFnZV9kaXJ0eVtzbG90bm9dKTsKKwl9CisKIAlMV0xvY2tSZWxlYXNlKGxvY2spOworCisJ LyoKKwkgKiBJZiB3ZSdyZSBzdGFydGluZyBub3QgZnJvbSB6ZXJvIG9mZnNldCwgaW5pdGlsaXpl IGR1bW15IG11bHRpeGFjdCB0bworCSAqIGV2YWRlIHRvbyBsb25nIGxvb3AgaW4gUGVyZm9ybU1l bWJlcnNUcnVuY2F0aW9uKCkuCisJICovCisJaWYgKE11bHRpWGFjdFN0YXRlLT5uZXh0T2Zmc2V0 ID4gMCAmJiBNdWx0aVhhY3RTdGF0ZS0+bmV4dE1YYWN0ID4gMCkKKwl7CisJCVJlY29yZE5ld011 bHRpWGFjdChGaXJzdE11bHRpWGFjdElkLAorCQkJCQkJICAgTXVsdGlYYWN0U3RhdGUtPm5leHRP ZmZzZXQsIDAsIE5VTEwpOworCQlSZWNvcmROZXdNdWx0aVhhY3QoTXVsdGlYYWN0U3RhdGUtPm5l eHRNWGFjdCwKKwkJCQkJCSAgIE11bHRpWGFjdFN0YXRlLT5uZXh0T2Zmc2V0LCAwLCBOVUxMKTsK Kwl9CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9zdWJ0 cmFucy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vc3VidHJhbnMuYwppbmRleCAxNTE1 MzYxOGZhLi4yMTg2NzVmYTYwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNh bS9zdWJ0cmFucy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3N1YnRyYW5zLmMK QEAgLTI3MCwxMiArMjcwLDE2IEBAIHZvaWQKIEJvb3RTdHJhcFNVQlRSQU5TKHZvaWQpCiB7CiAJ aW50CQkJc2xvdG5vOwotCUxXTG9jawkgICAqbG9jayA9IFNpbXBsZUxydUdldEJhbmtMb2NrKFN1 YlRyYW5zQ3RsLCAwKTsKKwlMV0xvY2sJICAgKmxvY2s7CisJaW50NjQJCXBhZ2VubzsKKworCXBh Z2VubyA9IFRyYW5zYWN0aW9uSWRUb1BhZ2UoWGlkRnJvbUZ1bGxUcmFuc2FjdGlvbklkKFRyYW5z YW1WYXJpYWJsZXMtPm5leHRYaWQpKTsKKwlsb2NrID0gU2ltcGxlTHJ1R2V0QmFua0xvY2soU3Vi VHJhbnNDdGwsIHBhZ2Vubyk7CiAKIAlMV0xvY2tBY3F1aXJlKGxvY2ssIExXX0VYQ0xVU0lWRSk7 CiAKIAkvKiBDcmVhdGUgYW5kIHplcm8gdGhlIGZpcnN0IHBhZ2Ugb2YgdGhlIHN1YnRyYW5zIGxv ZyAqLwotCXNsb3RubyA9IFplcm9TVUJUUkFOU1BhZ2UoMCk7CisJc2xvdG5vID0gWmVyb1NVQlRS QU5TUGFnZShwYWdlbm8pOwogCiAJLyogTWFrZSBzdXJlIGl0J3Mgd3JpdHRlbiBvdXQgKi8KIAlT aW1wbGVMcnVXcml0ZVBhZ2UoU3ViVHJhbnNDdGwsIHNsb3Rubyk7CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNh bS94bG9nLmMKaW5kZXggNzk5ZmM3MzllMS4uY2VkOWQ1Y2QyNiAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFu c2FtL3hsb2cuYwpAQCAtMTM2LDYgKzEzNiwxMCBAQCBpbnQJCQltYXhfc2xvdF93YWxfa2VlcF9z aXplX21iID0gLTE7CiBpbnQJCQl3YWxfZGVjb2RlX2J1ZmZlcl9zaXplID0gNTEyICogMTAyNDsK IGJvb2wJCXRyYWNrX3dhbF9pb190aW1pbmcgPSBmYWxzZTsKIAorVHJhbnNhY3Rpb25JZAkJc3Rh cnRfeGlkID0gRmlyc3ROb3JtYWxUcmFuc2FjdGlvbklkOworTXVsdGlYYWN0SWQJCQlzdGFydF9t eGlkID0gRmlyc3RNdWx0aVhhY3RJZDsKK011bHRpWGFjdE9mZnNldAkJc3RhcnRfbXhvZmYgPSAw OworCiAjaWZkZWYgV0FMX0RFQlVHCiBib29sCQlYTE9HX0RFQlVHID0gZmFsc2U7CiAjZW5kaWYK QEAgLTUxMjYsMTMgKzUxMzAsMTQgQEAgQm9vdFN0cmFwWExPRyh1aW50MzIgZGF0YV9jaGVja3N1 bV92ZXJzaW9uKQogCWNoZWNrUG9pbnQuZnVsbFBhZ2VXcml0ZXMgPSBmdWxsUGFnZVdyaXRlczsK IAljaGVja1BvaW50LndhbF9sZXZlbCA9IHdhbF9sZXZlbDsKIAljaGVja1BvaW50Lm5leHRYaWQg PQotCQlGdWxsVHJhbnNhY3Rpb25JZEZyb21FcG9jaEFuZFhpZCgwLCBGaXJzdE5vcm1hbFRyYW5z YWN0aW9uSWQpOworCQlGdWxsVHJhbnNhY3Rpb25JZEZyb21FcG9jaEFuZFhpZCgwLCBNYXgoRmly c3ROb3JtYWxUcmFuc2FjdGlvbklkLAorCQkJCQkJCQkJCQkJc3RhcnRfeGlkKSk7CiAJY2hlY2tQ b2ludC5uZXh0T2lkID0gRmlyc3RHZW5ia2lPYmplY3RJZDsKLQljaGVja1BvaW50Lm5leHRNdWx0 aSA9IEZpcnN0TXVsdGlYYWN0SWQ7Ci0JY2hlY2tQb2ludC5uZXh0TXVsdGlPZmZzZXQgPSAwOwot CWNoZWNrUG9pbnQub2xkZXN0WGlkID0gRmlyc3ROb3JtYWxUcmFuc2FjdGlvbklkOworCWNoZWNr UG9pbnQubmV4dE11bHRpID0gTWF4KEZpcnN0TXVsdGlYYWN0SWQsIHN0YXJ0X214aWQpOworCWNo ZWNrUG9pbnQubmV4dE11bHRpT2Zmc2V0ID0gc3RhcnRfbXhvZmY7CisJY2hlY2tQb2ludC5vbGRl c3RYaWQgPSBYaWRGcm9tRnVsbFRyYW5zYWN0aW9uSWQoY2hlY2tQb2ludC5uZXh0WGlkKTsKIAlj aGVja1BvaW50Lm9sZGVzdFhpZERCID0gVGVtcGxhdGUxRGJPaWQ7Ci0JY2hlY2tQb2ludC5vbGRl c3RNdWx0aSA9IEZpcnN0TXVsdGlYYWN0SWQ7CisJY2hlY2tQb2ludC5vbGRlc3RNdWx0aSA9IGNo ZWNrUG9pbnQubmV4dE11bHRpOwogCWNoZWNrUG9pbnQub2xkZXN0TXVsdGlEQiA9IFRlbXBsYXRl MURiT2lkOwogCWNoZWNrUG9pbnQub2xkZXN0Q29tbWl0VHNYaWQgPSBJbnZhbGlkVHJhbnNhY3Rp b25JZDsKIAljaGVja1BvaW50Lm5ld2VzdENvbW1pdFRzWGlkID0gSW52YWxpZFRyYW5zYWN0aW9u SWQ7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9ib290c3RyYXAvYm9vdHN0cmFwLmMgYi9zcmMv YmFja2VuZC9ib290c3RyYXAvYm9vdHN0cmFwLmMKaW5kZXggNmRiODY0ODkyZC4uNDU4ZGMzZWIy OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYm9vdHN0cmFwL2Jvb3RzdHJhcC5jCisrKyBiL3Ny Yy9iYWNrZW5kL2Jvb3RzdHJhcC9ib290c3RyYXAuYwpAQCAtMjE4LDcgKzIxOCw3IEBAIEJvb3Rz dHJhcE1vZGVNYWluKGludCBhcmdjLCBjaGFyICphcmd2W10sIGJvb2wgY2hlY2tfb25seSkKIAlh cmd2Kys7CiAJYXJnYy0tOwogCi0Jd2hpbGUgKChmbGFnID0gZ2V0b3B0KGFyZ2MsIGFyZ3YsICJC OmM6ZDpEOkZrcjpYOi06IikpICE9IC0xKQorCXdoaWxlICgoZmxhZyA9IGdldG9wdChhcmdjLCBh cmd2LCAiQjpjOmQ6RDpGa206bzpyOlg6eDotOiIpKSAhPSAtMSkKIAl7CiAJCXN3aXRjaCAoZmxh ZykKIAkJewpAQCAtMjg2LDEyICsyODYsNjAgQEAgQm9vdHN0cmFwTW9kZU1haW4oaW50IGFyZ2Ms IGNoYXIgKmFyZ3ZbXSwgYm9vbCBjaGVja19vbmx5KQogCQkJY2FzZSAnayc6CiAJCQkJYm9vdHN0 cmFwX2RhdGFfY2hlY2tzdW1fdmVyc2lvbiA9IFBHX0RBVEFfQ0hFQ0tTVU1fVkVSU0lPTjsKIAkJ CQlicmVhazsKKwkJCWNhc2UgJ20nOgorCQkJCXsKKwkJCQkJY2hhcgkgICAqZW5kcHRyOworCisJ CQkJCWVycm5vID0gMDsKKwkJCQkJc3RhcnRfbXhpZCA9IHN0cnRvdTY0KG9wdGFyZywgJmVuZHB0 ciwgMCk7CisKKwkJCQkJaWYgKGVuZHB0ciA9PSBvcHRhcmcgfHwgKmVuZHB0ciAhPSAnXDAnIHx8 IGVycm5vICE9IDAgfHwKKwkJCQkJCSFTdGFydE11bHRpWGFjdElkSXNWYWxpZChzdGFydF9teGlk KSkKKwkJCQkJeworCQkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkJKGVycmNvZGUoRVJSQ09E RV9TWU5UQVhfRVJST1IpLAorCQkJCQkJCQkgZXJybXNnKCJpbnZhbGlkIGluaXRpYWwgZGF0YWJh c2UgY2x1c3RlciBtdWx0aXhhY3QgaWQiKSkpOworCQkJCQl9CisJCQkJfQorCQkJCWJyZWFrOwor CQkJY2FzZSAnbyc6CisJCQkJeworCQkJCQljaGFyCSAgICplbmRwdHI7CisKKwkJCQkJZXJybm8g PSAwOworCQkJCQlzdGFydF9teG9mZiA9IHN0cnRvdTY0KG9wdGFyZywgJmVuZHB0ciwgMCk7CisK KwkJCQkJaWYgKGVuZHB0ciA9PSBvcHRhcmcgfHwgKmVuZHB0ciAhPSAnXDAnIHx8IGVycm5vICE9 IDAgfHwKKwkJCQkJCSFTdGFydE11bHRpWGFjdE9mZnNldElzVmFsaWQoc3RhcnRfbXhvZmYpKQor CQkJCQl7CisJCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZ TlRBWF9FUlJPUiksCisJCQkJCQkJCSBlcnJtc2coImludmFsaWQgaW5pdGlhbCBkYXRhYmFzZSBj bHVzdGVyIG11bHRpeGFjdCBvZmZzZXQiKSkpOworCQkJCQl9CisJCQkJfQorCQkJCWJyZWFrOwog CQkJY2FzZSAncic6CiAJCQkJc3RybGNweShPdXRwdXRGaWxlTmFtZSwgb3B0YXJnLCBNQVhQR1BB VEgpOwogCQkJCWJyZWFrOwogCQkJY2FzZSAnWCc6CiAJCQkJU2V0Q29uZmlnT3B0aW9uKCJ3YWxf c2VnbWVudF9zaXplIiwgb3B0YXJnLCBQR0NfSU5URVJOQUwsIFBHQ19TX0RZTkFNSUNfREVGQVVM VCk7CiAJCQkJYnJlYWs7CisJCQljYXNlICd4JzoKKwkJCQl7CisJCQkJCWNoYXIJICAgKmVuZHB0 cjsKKworCQkJCQllcnJubyA9IDA7CisJCQkJCXN0YXJ0X3hpZCA9IHN0cnRvdTY0KG9wdGFyZywg JmVuZHB0ciwgMCk7CisKKwkJCQkJaWYgKGVuZHB0ciA9PSBvcHRhcmcgfHwgKmVuZHB0ciAhPSAn XDAnIHx8IGVycm5vICE9IDAgfHwKKwkJCQkJCSFTdGFydFRyYW5zYWN0aW9uSWRJc1ZhbGlkKHN0 YXJ0X3hpZCkpCisJCQkJCXsKKwkJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJCShlcnJjb2Rl KEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJCQkJIGVycm1zZygiaW52YWxpZCBpbml0aWFs IGRhdGFiYXNlIGNsdXN0ZXIgeGlkIHZhbHVlIikpKTsKKwkJCQkJfQorCQkJCX0KKwkJCQlicmVh azsKIAkJCWRlZmF1bHQ6CiAJCQkJd3JpdGVfc3RkZXJyKCJUcnkgXCIlcyAtLWhlbHBcIiBmb3Ig bW9yZSBpbmZvcm1hdGlvbi5cbiIsCiAJCQkJCQkJIHByb2duYW1lKTsKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL21haW4vbWFpbi5jIGIvc3JjL2JhY2tlbmQvbWFpbi9tYWluLmMKaW5kZXggZThl ZmZlNTAyNC4uZmYyNTJkZmZiZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbWFpbi9tYWluLmMK KysrIGIvc3JjL2JhY2tlbmQvbWFpbi9tYWluLmMKQEAgLTQyNiwxMiArNDI2LDE4IEBAIGhlbHAo Y29uc3QgY2hhciAqcHJvZ25hbWUpCiAJcHJpbnRmKF8oIiAgLUUgICAgICAgICAgICAgICAgIGVj aG8gc3RhdGVtZW50IGJlZm9yZSBleGVjdXRpb25cbiIpKTsKIAlwcmludGYoXygiICAtaiAgICAg ICAgICAgICAgICAgZG8gbm90IHVzZSBuZXdsaW5lIGFzIGludGVyYWN0aXZlIHF1ZXJ5IGRlbGlt aXRlclxuIikpOwogCXByaW50ZihfKCIgIC1yIEZJTEVOQU1FICAgICAgICBzZW5kIHN0ZG91dCBh bmQgc3RkZXJyIHRvIGdpdmVuIGZpbGVcbiIpKTsKKwlwcmludGYoXygiICAtbSBTVEFSVF9NWElE ICAgICAgc2V0IGluaXRpYWwgZGF0YWJhc2UgY2x1c3RlciBtdWx0aXhhY3QgaWRcbiIpKTsKKwlw cmludGYoXygiICAtbyBTVEFSVF9NWE9GRiAgICAgc2V0IGluaXRpYWwgZGF0YWJhc2UgY2x1c3Rl ciBtdWx0aXhhY3Qgb2Zmc2V0XG4iKSk7CisJcHJpbnRmKF8oIiAgLXggU1RBUlRfWElEICAgICAg IHNldCBpbml0aWFsIGRhdGFiYXNlIGNsdXN0ZXIgeGlkXG4iKSk7CiAKIAlwcmludGYoXygiXG5P cHRpb25zIGZvciBib290c3RyYXBwaW5nIG1vZGU6XG4iKSk7CiAJcHJpbnRmKF8oIiAgLS1ib290 ICAgICAgICAgICAgIHNlbGVjdHMgYm9vdHN0cmFwcGluZyBtb2RlIChtdXN0IGJlIGZpcnN0IGFy Z3VtZW50KVxuIikpOwogCXByaW50ZihfKCIgIC0tY2hlY2sgICAgICAgICAgICBzZWxlY3RzIGNo ZWNrIG1vZGUgKG11c3QgYmUgZmlyc3QgYXJndW1lbnQpXG4iKSk7CiAJcHJpbnRmKF8oIiAgREJO QU1FICAgICAgICAgICAgIGRhdGFiYXNlIG5hbWUgKG1hbmRhdG9yeSBhcmd1bWVudCBpbiBib290 c3RyYXBwaW5nIG1vZGUpXG4iKSk7CiAJcHJpbnRmKF8oIiAgLXIgRklMRU5BTUUgICAgICAgIHNl bmQgc3Rkb3V0IGFuZCBzdGRlcnIgdG8gZ2l2ZW4gZmlsZVxuIikpOworCXByaW50ZihfKCIgIC1t IFNUQVJUX01YSUQgICAgICBzZXQgaW5pdGlhbCBkYXRhYmFzZSBjbHVzdGVyIG11bHRpeGFjdCBp ZFxuIikpOworCXByaW50ZihfKCIgIC1vIFNUQVJUX01YT0ZGICAgICBzZXQgaW5pdGlhbCBkYXRh YmFzZSBjbHVzdGVyIG11bHRpeGFjdCBvZmZzZXRcbiIpKTsKKwlwcmludGYoXygiICAteCBTVEFS VF9YSUQgICAgICAgc2V0IGluaXRpYWwgZGF0YWJhc2UgY2x1c3RlciB4aWRcbiIpKTsKIAogCXBy aW50ZihfKCJcblBsZWFzZSByZWFkIHRoZSBkb2N1bWVudGF0aW9uIGZvciB0aGUgY29tcGxldGUg bGlzdCBvZiBydW4tdGltZVxuIgogCQkJICJjb25maWd1cmF0aW9uIHNldHRpbmdzIGFuZCBob3cg dG8gc2V0IHRoZW0gb24gdGhlIGNvbW1hbmQgbGluZSBvciBpblxuIgpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvcG9zdG1hc3Rlci9wb3N0bWFzdGVyLmMgYi9zcmMvYmFja2VuZC9wb3N0bWFzdGVy L3Bvc3RtYXN0ZXIuYwppbmRleCA1ZGQzYjZhNGZkLi5kMTY2YzI2ZjRjIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bvc3RtYXN0ZXIuYworKysgYi9zcmMvYmFja2VuZC9wb3N0 bWFzdGVyL3Bvc3RtYXN0ZXIuYwpAQCAtNTg1LDcgKzU4NSw3IEBAIFBvc3RtYXN0ZXJNYWluKGlu dCBhcmdjLCBjaGFyICphcmd2W10pCiAJICogdGNvcC9wb3N0Z3Jlcy5jICh0aGUgb3B0aW9uIHNl dHMgc2hvdWxkIG5vdCBjb25mbGljdCkgYW5kIHdpdGggdGhlCiAJICogY29tbW9uIGhlbHAoKSBm dW5jdGlvbiBpbiBtYWluL21haW4uYy4KIAkgKi8KLQl3aGlsZSAoKG9wdCA9IGdldG9wdChhcmdj LCBhcmd2LCAiQjpiQzpjOkQ6ZDpFZUZmOmg6aWprOmxOOk9QcDpyOlM6c1R0Olc6LToiKSkgIT0g LTEpCisJd2hpbGUgKChvcHQgPSBnZXRvcHQoYXJnYywgYXJndiwgIkI6YkM6YzpEOmQ6RWVGZjpo OmlqazpsbTpOOk9vOlBwOnI6UzpzVHQ6Vzp4Oi06IikpICE9IC0xKQogCXsKIAkJc3dpdGNoIChv cHQpCiAJCXsKQEAgLTY5NSwxMCArNjk1LDE4IEBAIFBvc3RtYXN0ZXJNYWluKGludCBhcmdjLCBj aGFyICphcmd2W10pCiAJCQkJU2V0Q29uZmlnT3B0aW9uKCJtYXhfY29ubmVjdGlvbnMiLCBvcHRh cmcsIFBHQ19QT1NUTUFTVEVSLCBQR0NfU19BUkdWKTsKIAkJCQlicmVhazsKIAorCQkJY2FzZSAn bSc6CisJCQkJLyogb25seSB1c2VkIGJ5IHNpbmdsZS11c2VyIGJhY2tlbmQgKi8KKwkJCQlicmVh azsKKwogCQkJY2FzZSAnTyc6CiAJCQkJU2V0Q29uZmlnT3B0aW9uKCJhbGxvd19zeXN0ZW1fdGFi bGVfbW9kcyIsICJ0cnVlIiwgUEdDX1BPU1RNQVNURVIsIFBHQ19TX0FSR1YpOwogCQkJCWJyZWFr OwogCisJCQljYXNlICdvJzoKKwkJCQkvKiBvbmx5IHVzZWQgYnkgc2luZ2xlLXVzZXIgYmFja2Vu ZCAqLworCQkJCWJyZWFrOworCiAJCQljYXNlICdQJzoKIAkJCQlTZXRDb25maWdPcHRpb24oImln bm9yZV9zeXN0ZW1faW5kZXhlcyIsICJ0cnVlIiwgUEdDX1BPU1RNQVNURVIsIFBHQ19TX0FSR1Yp OwogCQkJCWJyZWFrOwpAQCAtNzQ5LDYgKzc1NywxMCBAQCBQb3N0bWFzdGVyTWFpbihpbnQgYXJn YywgY2hhciAqYXJndltdKQogCQkJCVNldENvbmZpZ09wdGlvbigicG9zdF9hdXRoX2RlbGF5Iiwg b3B0YXJnLCBQR0NfUE9TVE1BU1RFUiwgUEdDX1NfQVJHVik7CiAJCQkJYnJlYWs7CiAKKwkJCWNh c2UgJ3gnOgorCQkJCS8qIG9ubHkgdXNlZCBieSBzaW5nbGUtdXNlciBiYWNrZW5kICovCisJCQkJ YnJlYWs7CisKIAkJCWRlZmF1bHQ6CiAJCQkJd3JpdGVfc3RkZXJyKCJUcnkgXCIlcyAtLWhlbHBc IiBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiIsCiAJCQkJCQkJIHByb2duYW1lKTsKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYyBiL3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdy ZXMuYwppbmRleCBmMmY3NWFhMGY4Li45YjgzMjZlZDZhIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC90Y29wL3Bvc3RncmVzLmMKKysrIGIvc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jCkBAIC0z NzkwLDcgKzM3OTAsNyBAQCBwcm9jZXNzX3Bvc3RncmVzX3N3aXRjaGVzKGludCBhcmdjLCBjaGFy ICphcmd2W10sIEd1Y0NvbnRleHQgY3R4LAogCSAqIHBvc3RtYXN0ZXIvcG9zdG1hc3Rlci5jICh0 aGUgb3B0aW9uIHNldHMgc2hvdWxkIG5vdCBjb25mbGljdCkgYW5kIHdpdGgKIAkgKiB0aGUgY29t bW9uIGhlbHAoKSBmdW5jdGlvbiBpbiBtYWluL21haW4uYy4KIAkgKi8KLQl3aGlsZSAoKGZsYWcg PSBnZXRvcHQoYXJnYywgYXJndiwgIkI6YkM6YzpEOmQ6RWVGZjpoOmlqazpsTjpuT1BwOnI6Uzpz VHQ6djpXOi06IikpICE9IC0xKQorCXdoaWxlICgoZmxhZyA9IGdldG9wdChhcmdjLCBhcmd2LCAi QjpiQzpjOkQ6ZDpFZUZmOmg6aWprOmxtOk46bk9vOlBwOnI6UzpzVHQ6djpXOng6LToiKSkgIT0g LTEpCiAJewogCQlzd2l0Y2ggKGZsYWcpCiAJCXsKQEAgLTM4OTUsNiArMzg5NSwyMyBAQCBwcm9j ZXNzX3Bvc3RncmVzX3N3aXRjaGVzKGludCBhcmdjLCBjaGFyICphcmd2W10sIEd1Y0NvbnRleHQg Y3R4LAogCQkJCVNldENvbmZpZ09wdGlvbigic3NsIiwgInRydWUiLCBjdHgsIGd1Y3NvdXJjZSk7 CiAJCQkJYnJlYWs7CiAKKwkJCWNhc2UgJ20nOgorCQkJCXsKKwkJCQkJY2hhcgkgICAqZW5kcHRy OworCisJCQkJCWVycm5vID0gMDsKKwkJCQkJc3RhcnRfbXhpZCA9IHN0cnRvdTY0KG9wdGFyZywg JmVuZHB0ciwgMCk7CisKKwkJCQkJaWYgKGVuZHB0ciA9PSBvcHRhcmcgfHwgKmVuZHB0ciAhPSAn XDAnIHx8IGVycm5vICE9IDAgfHwKKwkJCQkJCSFTdGFydE11bHRpWGFjdElkSXNWYWxpZChzdGFy dF9teGlkKSkKKwkJCQkJeworCQkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkJKGVycmNvZGUo RVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCQkJCQkgZXJybXNnKCJpbnZhbGlkIGluaXRpYWwg ZGF0YWJhc2UgY2x1c3RlciBtdWx0aXhhY3QgaWQiKSkpOworCQkJCQl9CisJCQkJfQorCQkJCWJy ZWFrOworCiAJCQljYXNlICdOJzoKIAkJCQlTZXRDb25maWdPcHRpb24oIm1heF9jb25uZWN0aW9u cyIsIG9wdGFyZywgY3R4LCBndWNzb3VyY2UpOwogCQkJCWJyZWFrOwpAQCAtMzkwNyw2ICszOTI0 LDIzIEBAIHByb2Nlc3NfcG9zdGdyZXNfc3dpdGNoZXMoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSwg R3VjQ29udGV4dCBjdHgsCiAJCQkJU2V0Q29uZmlnT3B0aW9uKCJhbGxvd19zeXN0ZW1fdGFibGVf bW9kcyIsICJ0cnVlIiwgY3R4LCBndWNzb3VyY2UpOwogCQkJCWJyZWFrOwogCisJCQljYXNlICdv JzoKKwkJCQl7CisJCQkJCWNoYXIJICAgKmVuZHB0cjsKKworCQkJCQllcnJubyA9IDA7CisJCQkJ CXN0YXJ0X214b2ZmID0gc3RydG91NjQob3B0YXJnLCAmZW5kcHRyLCAwKTsKKworCQkJCQlpZiAo ZW5kcHRyID09IG9wdGFyZyB8fCAqZW5kcHRyICE9ICdcMCcgfHwgZXJybm8gIT0gMCB8fAorCQkJ CQkJIVN0YXJ0TXVsdGlYYWN0T2Zmc2V0SXNWYWxpZChzdGFydF9teG9mZikpCisJCQkJCXsKKwkJ CQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9S KSwKKwkJCQkJCQkJIGVycm1zZygiaW52YWxpZCBpbml0aWFsIGRhdGFiYXNlIGNsdXN0ZXIgbXVs dGl4YWN0IG9mZnNldCIpKSk7CisJCQkJCX0KKwkJCQl9CisJCQkJYnJlYWs7CisKIAkJCWNhc2Ug J1AnOgogCQkJCVNldENvbmZpZ09wdGlvbigiaWdub3JlX3N5c3RlbV9pbmRleGVzIiwgInRydWUi LCBjdHgsIGd1Y3NvdXJjZSk7CiAJCQkJYnJlYWs7CkBAIC0zOTYxLDYgKzM5OTUsMjMgQEAgcHJv Y2Vzc19wb3N0Z3Jlc19zd2l0Y2hlcyhpbnQgYXJnYywgY2hhciAqYXJndltdLCBHdWNDb250ZXh0 IGN0eCwKIAkJCQlTZXRDb25maWdPcHRpb24oInBvc3RfYXV0aF9kZWxheSIsIG9wdGFyZywgY3R4 LCBndWNzb3VyY2UpOwogCQkJCWJyZWFrOwogCisJCQljYXNlICd4JzoKKwkJCQl7CisJCQkJCWNo YXIJICAgKmVuZHB0cjsKKworCQkJCQllcnJubyA9IDA7CisJCQkJCXN0YXJ0X3hpZCA9IHN0cnRv dTY0KG9wdGFyZywgJmVuZHB0ciwgMCk7CisKKwkJCQkJaWYgKGVuZHB0ciA9PSBvcHRhcmcgfHwg KmVuZHB0ciAhPSAnXDAnIHx8IGVycm5vICE9IDAgfHwKKwkJCQkJCSFTdGFydFRyYW5zYWN0aW9u SWRJc1ZhbGlkKHN0YXJ0X3hpZCkpCisJCQkJCXsKKwkJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJ CQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJCQkJIGVycm1zZygiaW52 YWxpZCBpbml0aWFsIGRhdGFiYXNlIGNsdXN0ZXIgeGlkIikpKTsKKwkJCQkJfQorCQkJCX0KKwkJ CQlicmVhazsKKwogCQkJZGVmYXVsdDoKIAkJCQllcnJzKys7CiAJCQkJYnJlYWs7CmRpZmYgLS1n aXQgYS9zcmMvYmluL2luaXRkYi9pbml0ZGIuYyBiL3NyYy9iaW4vaW5pdGRiL2luaXRkYi5jCmlu ZGV4IDIxYTBmZTNlY2QuLjA0ZDU2Y2NhNGYgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vaW5pdGRiL2lu aXRkYi5jCisrKyBiL3NyYy9iaW4vaW5pdGRiL2luaXRkYi5jCkBAIC0xNjgsNiArMTY4LDkgQEAg c3RhdGljIGJvb2wgZGF0YV9jaGVja3N1bXMgPSB0cnVlOwogc3RhdGljIGNoYXIgKnhsb2dfZGly ID0gTlVMTDsKIHN0YXRpYyBpbnQJd2FsX3NlZ21lbnRfc2l6ZV9tYiA9IChERUZBVUxUX1hMT0df U0VHX1NJWkUpIC8gKDEwMjQgKiAxMDI0KTsKIHN0YXRpYyBEYXRhRGlyU3luY01ldGhvZCBzeW5j X21ldGhvZCA9IERBVEFfRElSX1NZTkNfTUVUSE9EX0ZTWU5DOworc3RhdGljIFRyYW5zYWN0aW9u SWQgc3RhcnRfeGlkID0gMDsKK3N0YXRpYyBNdWx0aVhhY3RJZCBzdGFydF9teGlkID0gMDsKK3N0 YXRpYyBNdWx0aVhhY3RPZmZzZXQgc3RhcnRfbXhvZmYgPSAwOwogCiAKIC8qIGludGVybmFsIHZh cnMgKi8KQEAgLTE1OTgsNiArMTYwMSwxMSBAQCBib290c3RyYXBfdGVtcGxhdGUxKHZvaWQpCiAJ YmtpX2xpbmVzID0gcmVwbGFjZV90b2tlbihia2lfbGluZXMsICJQT1NUR1JFUyIsCiAJCQkJCQkJ ICBlc2NhcGVfcXVvdGVzX2JraSh1c2VybmFtZSkpOwogCisJLyogcmVsZnJvemVueGlkIG11c3Qg bm90IGJlIGxlc3MgdGhhbiBGaXJzdE5vcm1hbFRyYW5zYWN0aW9uSWQgKi8KKwlzcHJpbnRmKGJ1 ZiwgIiVsbHUiLCAodW5zaWduZWQgbG9uZyBsb25nKSBNYXgoc3RhcnRfeGlkLCAzKSk7CisJYmtp X2xpbmVzID0gcmVwbGFjZV90b2tlbihia2lfbGluZXMsICJSRUNFTlRYTUlOIiwKKwkJCQkJCQkg IGJ1Zik7CisKIAlia2lfbGluZXMgPSByZXBsYWNlX3Rva2VuKGJraV9saW5lcywgIkVOQ09ESU5H IiwKIAkJCQkJCQkgIGVuY29kaW5naWRfdG9fc3RyaW5nKGVuY29kaW5naWQpKTsKIApAQCAtMTYy Myw2ICsxNjMxLDkgQEAgYm9vdHN0cmFwX3RlbXBsYXRlMSh2b2lkKQogCiAJcHJpbnRmUFFFeHBC dWZmZXIoJmNtZCwgIlwiJXNcIiAtLWJvb3QgJXMgJXMiLCBiYWNrZW5kX2V4ZWMsIGJvb3Rfb3B0 aW9ucywgZXh0cmFfb3B0aW9ucyk7CiAJYXBwZW5kUFFFeHBCdWZmZXIoJmNtZCwgIiAtWCAlZCIs IHdhbF9zZWdtZW50X3NpemVfbWIgKiAoMTAyNCAqIDEwMjQpKTsKKwlhcHBlbmRQUUV4cEJ1ZmZl cigmY21kLCAiIC1tICVsbHUiLCAodW5zaWduZWQgbG9uZyBsb25nKSBzdGFydF9teGlkKTsKKwlh cHBlbmRQUUV4cEJ1ZmZlcigmY21kLCAiIC1vICVsbHUiLCAodW5zaWduZWQgbG9uZyBsb25nKSBz dGFydF9teG9mZik7CisJYXBwZW5kUFFFeHBCdWZmZXIoJmNtZCwgIiAteCAlbGx1IiwgKHVuc2ln bmVkIGxvbmcgbG9uZykgc3RhcnRfeGlkKTsKIAlpZiAoZGF0YV9jaGVja3N1bXMpCiAJCWFwcGVu ZFBRRXhwQnVmZmVyKCZjbWQsICIgLWsiKTsKIAlpZiAoZGVidWcpCkBAIC0yNTY0LDEyICsyNTc1 LDIwIEBAIHVzYWdlKGNvbnN0IGNoYXIgKnByb2duYW1lKQogCXByaW50ZihfKCIgIC1kLCAtLWRl YnVnICAgICAgICAgICAgICAgZ2VuZXJhdGUgbG90cyBvZiBkZWJ1Z2dpbmcgb3V0cHV0XG4iKSk7 CiAJcHJpbnRmKF8oIiAgICAgIC0tZGlzY2FyZC1jYWNoZXMgICAgICBzZXQgZGVidWdfZGlzY2Fy ZF9jYWNoZXM9MVxuIikpOwogCXByaW50ZihfKCIgIC1MIERJUkVDVE9SWSAgICAgICAgICAgICAg d2hlcmUgdG8gZmluZCB0aGUgaW5wdXQgZmlsZXNcbiIpKTsKKwlwcmludGYoXygiICAtbSwgLS1t dWx0aXhhY3QtaWQ9U1RBUlRfTVhJRFxuIgorCQkJICIgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2V0IGluaXRpYWwgZGF0YWJhc2UgY2x1c3RlciBtdWx0aXhhY3QgaWRcbiIKKwkJCSAiICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG1heCB2YWx1ZSBpcyAyXjYyLTFcbiIpKTsKIAlwcmlu dGYoXygiICAtbiwgLS1uby1jbGVhbiAgICAgICAgICAgIGRvIG5vdCBjbGVhbiB1cCBhZnRlciBl cnJvcnNcbiIpKTsKIAlwcmludGYoXygiICAtTiwgLS1uby1zeW5jICAgICAgICAgICAgIGRvIG5v dCB3YWl0IGZvciBjaGFuZ2VzIHRvIGJlIHdyaXR0ZW4gc2FmZWx5IHRvIGRpc2tcbiIpKTsKIAlw cmludGYoXygiICAgICAgLS1uby1pbnN0cnVjdGlvbnMgICAgIGRvIG5vdCBwcmludCBpbnN0cnVj dGlvbnMgZm9yIG5leHQgc3RlcHNcbiIpKTsKKwlwcmludGYoXygiICAtbywgLS1tdWx0aXhhY3Qt b2Zmc2V0PVNUQVJUX01YT0ZGXG4iCisJCQkgIiAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZXQgaW5pdGlhbCBkYXRhYmFzZSBjbHVzdGVyIG11bHRpeGFjdCBvZmZzZXRcbiIKKwkJCSAiICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG1heCB2YWx1ZSBpcyAyXjYyLTFcbiIpKTsKIAlwcmlu dGYoXygiICAtcywgLS1zaG93ICAgICAgICAgICAgICAgIHNob3cgaW50ZXJuYWwgc2V0dGluZ3Ms IHRoZW4gZXhpdFxuIikpOwogCXByaW50ZihfKCIgICAgICAtLXN5bmMtbWV0aG9kPU1FVEhPRCAg c2V0IG1ldGhvZCBmb3Igc3luY2luZyBmaWxlcyB0byBkaXNrXG4iKSk7CiAJcHJpbnRmKF8oIiAg LVMsIC0tc3luYy1vbmx5ICAgICAgICAgICBvbmx5IHN5bmMgZGF0YWJhc2UgZmlsZXMgdG8gZGlz aywgdGhlbiBleGl0XG4iKSk7CisJcHJpbnRmKF8oIiAgLXgsIC0teGlkPVNUQVJUX1hJRCAgICAg ICBzZXQgaW5pdGlhbCBkYXRhYmFzZSBjbHVzdGVyIHhpZFxuIgorCQkJICIgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbWF4IHZhbHVlIGlzIDJeNjItMVxuIikpOwogCXByaW50ZihfKCJcbk90 aGVyIG9wdGlvbnM6XG4iKSk7CiAJcHJpbnRmKF8oIiAgLVYsIC0tdmVyc2lvbiAgICAgICAgICAg ICBvdXRwdXQgdmVyc2lvbiBpbmZvcm1hdGlvbiwgdGhlbiBleGl0XG4iKSk7CiAJcHJpbnRmKF8o IiAgLT8sIC0taGVscCAgICAgICAgICAgICAgICBzaG93IHRoaXMgaGVscCwgdGhlbiBleGl0XG4i KSk7CkBAIC0zMTA0LDYgKzMxMjMsMTggQEAgaW5pdGlhbGl6ZV9kYXRhX2RpcmVjdG9yeSh2b2lk KQogCS8qIE5vdyBjcmVhdGUgYWxsIHRoZSB0ZXh0IGNvbmZpZyBmaWxlcyAqLwogCXNldHVwX2Nv bmZpZygpOwogCisJaWYgKHN0YXJ0X214aWQgIT0gMCkKKwkJcHJpbnRmKF8oInNlbGVjdGluZyBp bml0aWFsIG11bHRpeGFjdCBpZCAuLi4gJWxsdVxuIiksCisJCQkJICh1bnNpZ25lZCBsb25nIGxv bmcpIHN0YXJ0X214aWQpOworCisJaWYgKHN0YXJ0X214b2ZmICE9IDApCisJCXByaW50ZihfKCJz ZWxlY3RpbmcgaW5pdGlhbCBtdWx0aXhhY3Qgb2Zmc2V0IC4uLiAlbGx1XG4iKSwKKwkJCQkgKHVu c2lnbmVkIGxvbmcgbG9uZykgc3RhcnRfbXhvZmYpOworCisJaWYgKHN0YXJ0X3hpZCAhPSAwKQor CQlwcmludGYoXygic2VsZWN0aW5nIGluaXRpYWwgeGlkIC4uLiAlbGx1XG4iKSwKKwkJCQkgKHVu c2lnbmVkIGxvbmcgbG9uZykgc3RhcnRfeGlkKTsKKwogCS8qIEJvb3RzdHJhcCB0ZW1wbGF0ZTEg Ki8KIAlib290c3RyYXBfdGVtcGxhdGUxKCk7CiAKQEAgLTMxMjAsOCArMzE1MSwxMiBAQCBpbml0 aWFsaXplX2RhdGFfZGlyZWN0b3J5KHZvaWQpCiAJZmZsdXNoKHN0ZG91dCk7CiAKIAlpbml0UFFF eHBCdWZmZXIoJmNtZCk7Ci0JcHJpbnRmUFFFeHBCdWZmZXIoJmNtZCwgIlwiJXNcIiAlcyAlcyB0 ZW1wbGF0ZTEgPiVzIiwKLQkJCQkJICBiYWNrZW5kX2V4ZWMsIGJhY2tlbmRfb3B0aW9ucywgZXh0 cmFfb3B0aW9ucywgREVWTlVMTCk7CisJcHJpbnRmUFFFeHBCdWZmZXIoJmNtZCwgIlwiJXNcIiAl cyAlcyIsCisJCQkJCSAgYmFja2VuZF9leGVjLCBiYWNrZW5kX29wdGlvbnMsIGV4dHJhX29wdGlv bnMpOworCWFwcGVuZFBRRXhwQnVmZmVyKCZjbWQsICIgLW0gJWxsdSIsICh1bnNpZ25lZCBsb25n IGxvbmcpIHN0YXJ0X214aWQpOworCWFwcGVuZFBRRXhwQnVmZmVyKCZjbWQsICIgLW8gJWxsdSIs ICh1bnNpZ25lZCBsb25nIGxvbmcpIHN0YXJ0X214b2ZmKTsKKwlhcHBlbmRQUUV4cEJ1ZmZlcigm Y21kLCAiIC14ICVsbHUiLCAodW5zaWduZWQgbG9uZyBsb25nKSBzdGFydF94aWQpOworCWFwcGVu ZFBRRXhwQnVmZmVyKCZjbWQsICIgdGVtcGxhdGUxID4lcyIsIERFVk5VTEwpOwogCiAJUEdfQ01E X09QRU4oY21kLmRhdGEpOwogCkBAIC0zMjA4LDYgKzMyNDMsOSBAQCBtYWluKGludCBhcmdjLCBj aGFyICphcmd2W10pCiAJCXsiaWN1LXJ1bGVzIiwgcmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsIDE4 fSwKIAkJeyJzeW5jLW1ldGhvZCIsIHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxMLCAxOX0sCiAJCXsi bm8tZGF0YS1jaGVja3N1bXMiLCBub19hcmd1bWVudCwgTlVMTCwgMjB9LAorCQl7InhpZCIsIHJl cXVpcmVkX2FyZ3VtZW50LCBOVUxMLCAneCd9LAorCQl7Im11bHRpeGFjdC1pZCIsIHJlcXVpcmVk X2FyZ3VtZW50LCBOVUxMLCAnbSd9LAorCQl7Im11bHRpeGFjdC1vZmZzZXQiLCByZXF1aXJlZF9h cmd1bWVudCwgTlVMTCwgJ28nfSwKIAkJe05VTEwsIDAsIE5VTEwsIDB9CiAJfTsKIApAQCAtMzI0 OSw3ICszMjg3LDcgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogCiAJLyogcHJvY2Vz cyBjb21tYW5kLWxpbmUgb3B0aW9ucyAqLwogCi0Jd2hpbGUgKChjID0gZ2V0b3B0X2xvbmcoYXJn YywgYXJndiwgIkE6YzpkRDpFOmdrTDpuTnNTVDpVOldYOiIsCisJd2hpbGUgKChjID0gZ2V0b3B0 X2xvbmcoYXJnYywgYXJndiwgIkE6YzpkRDpFOmdrTDptOm5ObzpzU1Q6VTpXeDpYOiIsCiAJCQkJ CQkJbG9uZ19vcHRpb25zLCAmb3B0aW9uX2luZGV4KSkgIT0gLTEpCiAJewogCQlzd2l0Y2ggKGMp CkBAIC0zMzA3LDYgKzMzNDUsMzAgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogCQkJ CWRlYnVnID0gdHJ1ZTsKIAkJCQlwcmludGYoXygiUnVubmluZyBpbiBkZWJ1ZyBtb2RlLlxuIikp OwogCQkJCWJyZWFrOworCQkJY2FzZSAnbSc6CisJCQkJeworCQkJCQljaGFyCSAgICplbmRwdHI7 CisKKwkJCQkJZXJybm8gPSAwOworCQkJCQlzdGFydF9teGlkID0gc3RydG91NjQob3B0YXJnLCAm ZW5kcHRyLCAwKTsKKworCQkJCQlpZiAoZW5kcHRyID09IG9wdGFyZyB8fCAqZW5kcHRyICE9ICdc MCcgfHwgZXJybm8gIT0gMCB8fAorCQkJCQkJIVN0YXJ0TXVsdGlYYWN0SWRJc1ZhbGlkKHN0YXJ0 X214aWQpKQorCQkJCQl7CisJCQkJCQlwZ19sb2dfZXJyb3IoImludmFsaWQgaW5pdGlhbCBkYXRh YmFzZSBjbHVzdGVyIG11bHRpeGFjdCBpZCIpOworCQkJCQkJZXhpdCgxKTsKKwkJCQkJfQorCQkJ CQllbHNlIGlmIChzdGFydF9teGlkIDwgMSkgLyogRmlyc3RNdWx0aVhhY3RJZCAqLworCQkJCQl7 CisJCQkJCQkvKgorCQkJCQkJICogV2UgYXZvaWQgbXhpZCB0byBiZSBzaWxlbnRseSBzZXQgdG8K KwkJCQkJCSAqIEZpcnN0TXVsdGlYYWN0SWQsIHRob3VnaCBpdCBkb2VzIG5vdCBoYXJtLgorCQkJ CQkJICovCisJCQkJCQlwZ19sb2dfZXJyb3IoIm11bHRpeGFjdCBpZCBzaG91bGQgYmUgZ3JlYXRl ciB0aGFuIDAiKTsKKwkJCQkJCWV4aXQoMSk7CisJCQkJCX0KKwkJCQl9CisJCQkJYnJlYWs7CiAJ CQljYXNlICduJzoKIAkJCQlub2NsZWFuID0gdHJ1ZTsKIAkJCQlwcmludGYoXygiUnVubmluZyBp biBuby1jbGVhbiBtb2RlLiAgTWlzdGFrZXMgd2lsbCBub3QgYmUgY2xlYW5lZCB1cC5cbiIpKTsK QEAgLTMzMTQsNiArMzM3NiwyMSBAQCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAJCQlj YXNlICdOJzoKIAkJCQlkb19zeW5jID0gZmFsc2U7CiAJCQkJYnJlYWs7CisJCQljYXNlICdvJzoK KwkJCQl7CisJCQkJCWNoYXIJICAgKmVuZHB0cjsKKworCQkJCQllcnJubyA9IDA7CisJCQkJCXN0 YXJ0X214b2ZmID0gc3RydG91NjQob3B0YXJnLCAmZW5kcHRyLCAwKTsKKworCQkJCQlpZiAoZW5k cHRyID09IG9wdGFyZyB8fCAqZW5kcHRyICE9ICdcMCcgfHwgZXJybm8gIT0gMCB8fAorCQkJCQkJ IVN0YXJ0TXVsdGlYYWN0T2Zmc2V0SXNWYWxpZChzdGFydF9teG9mZikpCisJCQkJCXsKKwkJCQkJ CXBnX2xvZ19lcnJvcigiaW52YWxpZCBpbml0aWFsIGRhdGFiYXNlIGNsdXN0ZXIgbXVsdGl4YWN0 IG9mZnNldCIpOworCQkJCQkJZXhpdCgxKTsKKwkJCQkJfQorCQkJCX0KKwkJCQlicmVhazsKIAkJ CWNhc2UgJ1MnOgogCQkJCXN5bmNfb25seSA9IHRydWU7CiAJCQkJYnJlYWs7CkBAIC0zNDAyLDYg KzM0NzksMzAgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogCQkJY2FzZSAyMDoKIAkJ CQlkYXRhX2NoZWNrc3VtcyA9IGZhbHNlOwogCQkJCWJyZWFrOworCQkJY2FzZSAneCc6CisJCQkJ eworCQkJCQljaGFyCSAgICplbmRwdHI7CisKKwkJCQkJZXJybm8gPSAwOworCQkJCQlzdGFydF94 aWQgPSBzdHJ0b3U2NChvcHRhcmcsICZlbmRwdHIsIDApOworCisJCQkJCWlmIChlbmRwdHIgPT0g b3B0YXJnIHx8ICplbmRwdHIgIT0gJ1wwJyB8fCBlcnJubyAhPSAwIHx8CisJCQkJCQkhU3RhcnRU cmFuc2FjdGlvbklkSXNWYWxpZChzdGFydF94aWQpKQorCQkJCQl7CisJCQkJCQlwZ19sb2dfZXJy b3IoImludmFsaWQgdmFsdWUgZm9yIGluaXRpYWwgZGF0YWJhc2UgY2x1c3RlciB4aWQiKTsKKwkJ CQkJCWV4aXQoMSk7CisJCQkJCX0KKwkJCQkJZWxzZSBpZiAoc3RhcnRfeGlkIDwgMykgLyogRmly c3ROb3JtYWxUcmFuc2FjdGlvbklkICovCisJCQkJCXsKKwkJCQkJCS8qCisJCQkJCQkgKiBXZSBh dm9pZCB4aWQgdG8gYmUgc2lsZW50bHkgc2V0IHRvCisJCQkJCQkgKiBGaXJzdE5vcm1hbFRyYW5z YWN0aW9uSWQsIHRob3VnaCBpdCBkb2VzIG5vdCBoYXJtLgorCQkJCQkJICovCisJCQkJCQlwZ19s b2dfZXJyb3IoInhpZCBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIDIiKTsKKwkJCQkJCWV4aXQoMSk7 CisJCQkJCX0KKwkJCQl9CisJCQkJYnJlYWs7CiAJCQlkZWZhdWx0OgogCQkJCS8qIGdldG9wdF9s b25nIGFscmVhZHkgZW1pdHRlZCBhIGNvbXBsYWludCAqLwogCQkJCXBnX2xvZ19lcnJvcl9oaW50 KCJUcnkgXCIlcyAtLWhlbHBcIiBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iLCBwcm9nbmFtZSk7CmRp ZmYgLS1naXQgYS9zcmMvYmluL2luaXRkYi90LzAwMV9pbml0ZGIucGwgYi9zcmMvYmluL2luaXRk Yi90LzAwMV9pbml0ZGIucGwKaW5kZXggMDFjYzRhMTYwMi4uOGIwMTdlYjkwNyAxMDA2NDQKLS0t IGEvc3JjL2Jpbi9pbml0ZGIvdC8wMDFfaW5pdGRiLnBsCisrKyBiL3NyYy9iaW4vaW5pdGRiL3Qv MDAxX2luaXRkYi5wbApAQCAtMzI5LDQgKzMyOSw2NCBAQCBjb21tYW5kX2ZhaWxzKAogCVsgJ3Bn X2NoZWNrc3VtcycsICctLXBnZGF0YScgPT4gJGRhdGFkaXJfbm9jaGVja3N1bXMgXSwKIAkicGdf Y2hlY2tzdW1zIGZhaWxzIHdpdGggZGF0YSBjaGVja3N1bSBkaXNhYmxlZCIpOwogCisjIFNldCBu b24tc3RhbmRhcmQgaW5pdGlhbCBteGlkL214b2ZmL3hpZC4KK2NvbW1hbmRfZmFpbHNfbGlrZSgK KwlbICdpbml0ZGInLCAnLW0nLCAnc2V2ZW4nLCAkZGF0YWRpciBdLAorCXFyL2luaXRkYjogZXJy b3I6IGludmFsaWQgaW5pdGlhbCBkYXRhYmFzZSBjbHVzdGVyIG11bHRpeGFjdCBpZC8sCisJJ2Zh aWxzIGZvciBpbnZhbGlkIGluaXRpYWwgZGF0YWJhc2UgY2x1c3RlciBtdWx0aXhhY3QgaWQnKTsK K2NvbW1hbmRfZmFpbHNfbGlrZSgKKwlbICdpbml0ZGInLCAnLW8nLCAnc2V2ZW4nLCAkZGF0YWRp ciBdLAorCXFyL2luaXRkYjogZXJyb3I6IGludmFsaWQgaW5pdGlhbCBkYXRhYmFzZSBjbHVzdGVy IG11bHRpeGFjdCBvZmZzZXQvLAorCSdmYWlscyBmb3IgaW52YWxpZCBpbml0aWFsIGRhdGFiYXNl IGNsdXN0ZXIgbXVsdGl4YWN0IG9mZnNldCcpOworY29tbWFuZF9mYWlsc19saWtlKAorCVsgJ2lu aXRkYicsICcteCcsICdzZXZlbicsICRkYXRhZGlyIF0sCisJcXIvaW5pdGRiOiBlcnJvcjogaW52 YWxpZCB2YWx1ZSBmb3IgaW5pdGlhbCBkYXRhYmFzZSBjbHVzdGVyIHhpZC8sCisJJ2ZhaWxzIGZv ciBpbnZhbGlkIGluaXRpYWwgZGF0YWJhc2UgY2x1c3RlciB4aWQnKTsKKworY29tbWFuZF9jaGVj a3NfYWxsKAorCVsgJ2luaXRkYicsICctbScsICc2NTUzNScsICIkdGVtcGRpci9kYXRhLW02NTUz NSIgXSwKKwkwLAorCVtxci9zZWxlY3RpbmcgaW5pdGlhbCBtdWx0aXhhY3QgaWQgLi4uIDY1NTM1 L10sCisJW10sCisJJ3NlbGVjdGluZyBpbml0aWFsIG11bHRpeGFjdCBpZCcpOworY29tbWFuZF9j aGVja3NfYWxsKAorCVsgJ2luaXRkYicsICctbycsICc2NTUzNScsICIkdGVtcGRpci9kYXRhLW82 NTUzNSIgXSwKKwkwLAorCVtxci9zZWxlY3RpbmcgaW5pdGlhbCBtdWx0aXhhY3Qgb2Zmc2V0IC4u LiA2NTUzNS9dLAorCVtdLAorCSdzZWxlY3RpbmcgaW5pdGlhbCBtdWx0aXhhY3Qgb2Zmc2V0Jyk7 Citjb21tYW5kX2NoZWNrc19hbGwoCisJWyAnaW5pdGRiJywgJy14JywgJzY1NTM1JywgIiR0ZW1w ZGlyL2RhdGEteDY1NTM1IiBdLAorCTAsCisJW3FyL3NlbGVjdGluZyBpbml0aWFsIHhpZCAuLi4g NjU1MzUvXSwKKwlbXSwKKwknc2VsZWN0aW5nIGluaXRpYWwgeGlkJyk7CisKKyMgU2V0dXAgbmV3 IGNsdXN0ZXIgd2l0aCBnaXZlbiBteGlkL214b2ZmL3hpZC4KK215ICRub2RlOworbXkgJHJlc3Vs dDsKKworJG5vZGUgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ3Rlc3QtbXhpZCcp OworJG5vZGUtPmluaXQoZXh0cmEgPT4gWyctbScsICcxNjc3NzIxNSddKTsgIyAweEZGRkZGRgor JG5vZGUtPnN0YXJ0OworJHJlc3VsdCA9ICRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNF TEVDVCBuZXh0X211bHRpeGFjdF9pZCBGUk9NIHBnX2NvbnRyb2xfY2hlY2twb2ludCgpOyIpOwor b2soJHJlc3VsdCA+PSAxNjc3NzIxNSwgJ3NldHVwIGNsdXN0ZXIgd2l0aCBnaXZlbiBteGlkJyk7 Ciskbm9kZS0+c3RvcDsKKworJG5vZGUgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXco J3Rlc3QtbXhvZmYnKTsKKyRub2RlLT5pbml0KGV4dHJhID0+IFsnLW8nLCAnMTY3NzcyMTUnXSk7 ICMgMHhGRkZGRkYKKyRub2RlLT5zdGFydDsKKyRyZXN1bHQgPSAkbm9kZS0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsICJTRUxFQ1QgbmV4dF9tdWx0aV9vZmZzZXQgRlJPTSBwZ19jb250cm9sX2NoZWNr cG9pbnQoKTsiKTsKK29rKCRyZXN1bHQgPj0gMTY3NzcyMTUsICdzZXR1cCBjbHVzdGVyIHdpdGgg Z2l2ZW4gbXhvZmYnKTsKKyRub2RlLT5zdG9wOworCiskbm9kZSA9IFBvc3RncmVTUUw6OlRlc3Q6 OkNsdXN0ZXItPm5ldygndGVzdC14aWQnKTsKKyRub2RlLT5pbml0KGV4dHJhID0+IFsnLXgnLCAn MTY3NzcyMTUnXSk7ICMgMHhGRkZGRkYKKyRub2RlLT5zdGFydDsKKyRyZXN1bHQgPSAkbm9kZS0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgdHhpZF9jdXJyZW50KCk7Iik7CitvaygkcmVz dWx0ID49IDE2Nzc3MjE1LCAnc2V0dXAgY2x1c3RlciB3aXRoIGdpdmVuIHhpZCAtIGNoZWNrIDEn KTsKKyRyZXN1bHQgPSAkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1Qgb2xkZXN0 X3hpZCBGUk9NIHBnX2NvbnRyb2xfY2hlY2twb2ludCgpOyIpOworb2soJHJlc3VsdCA+PSAxNjc3 NzIxNSwgJ3NldHVwIGNsdXN0ZXIgd2l0aCBnaXZlbiB4aWQgLSBjaGVjayAyJyk7Ciskbm9kZS0+ c3RvcDsKKwogZG9uZV90ZXN0aW5nKCk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3Mv eGxvZy5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3hsb2cuaAppbmRleCBkMzEzMDk5YzAyLi4yM2I4 ZGQwMzc1IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MveGxvZy5oCisrKyBiL3NyYy9p bmNsdWRlL2FjY2Vzcy94bG9nLmgKQEAgLTk0LDYgKzk0LDkgQEAgdHlwZWRlZiBlbnVtIFJlY292 ZXJ5U3RhdGUKIH0gUmVjb3ZlcnlTdGF0ZTsKIAogZXh0ZXJuIFBHRExMSU1QT1JUIGludCB3YWxf bGV2ZWw7CitleHRlcm4gUEdETExJTVBPUlQgVHJhbnNhY3Rpb25JZCBzdGFydF94aWQ7CitleHRl cm4gUEdETExJTVBPUlQgTXVsdGlYYWN0SWQgc3RhcnRfbXhpZDsKK2V4dGVybiBQR0RMTElNUE9S VCBNdWx0aVhhY3RPZmZzZXQgc3RhcnRfbXhvZmY7CiAKIC8qIElzIFdBTCBhcmNoaXZpbmcgZW5h YmxlZCAoYWx3YXlzIG9yIG9ubHkgd2hpbGUgc2VydmVyIGlzIHJ1bm5pbmcgbm9ybWFsbHkpPyAq LwogI2RlZmluZSBYTG9nQXJjaGl2aW5nQWN0aXZlKCkgXApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvYy5oIGIvc3JjL2luY2x1ZGUvYy5oCmluZGV4IDMxODE5NGY3OGQuLjRmMmI1NDMyZTUgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2MuaAorKysgYi9zcmMvaW5jbHVkZS9jLmgKQEAgLTYyMiw2 ICs2MjIsMTAgQEAgdHlwZWRlZiB1aW50NjQgTXVsdGlYYWN0T2Zmc2V0OwogCiB0eXBlZGVmIHVp bnQzMiBDb21tYW5kSWQ7CiAKKyNkZWZpbmUgU3RhcnRUcmFuc2FjdGlvbklkSXNWYWxpZCh4aWQp CQkJKCh4aWQpIDw9IDB4RkZGRkZGRkYpCisjZGVmaW5lIFN0YXJ0TXVsdGlYYWN0SWRJc1ZhbGlk KG14aWQpCQkJKChteGlkKSA8PSAweEZGRkZGRkZGKQorI2RlZmluZSBTdGFydE11bHRpWGFjdE9m ZnNldElzVmFsaWQob2Zmc2V0KQkJKChvZmZzZXQpIDw9IDB4RkZGRkZGRkYpCisKICNkZWZpbmUg Rmlyc3RDb21tYW5kSWQJKChDb21tYW5kSWQpIDApCiAjZGVmaW5lIEludmFsaWRDb21tYW5kSWQJ KH4oQ29tbWFuZElkKTApCiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY2xh c3MuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY2xhc3MuaAppbmRleCBmYTk2YmEwN2JmLi40 NGMyZjljZGY5IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NsYXNzLmgKKysr IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jbGFzcy5oCkBAIC0xMjYsNyArMTI2LDcgQEAgQ0FU QUxPRyhwZ19jbGFzcywxMjU5LFJlbGF0aW9uUmVsYXRpb25JZCkgQktJX0JPT1RTVFJBUCBCS0lf Uk9XVFlQRV9PSUQoODMsUmVsYXQKIAlPaWQJCQlyZWxyZXdyaXRlIEJLSV9ERUZBVUxUKDApIEJL SV9MT09LVVBfT1BUKHBnX2NsYXNzKTsKIAogCS8qIGFsbCBYaWRzIDwgdGhpcyBhcmUgZnJvemVu IGluIHRoaXMgcmVsICovCi0JVHJhbnNhY3Rpb25JZCByZWxmcm96ZW54aWQgQktJX0RFRkFVTFQo Myk7CS8qIEZpcnN0Tm9ybWFsVHJhbnNhY3Rpb25JZCAqLworCVRyYW5zYWN0aW9uSWQgcmVsZnJv emVueGlkIEJLSV9ERUZBVUxUKFJFQ0VOVFhNSU4pOwkvKiBGaXJzdE5vcm1hbFRyYW5zYWN0aW9u SWQgKi8KIAogCS8qIGFsbCBtdWx0aXhhY3RzIGluIHRoaXMgcmVsIGFyZSA+PSB0aGlzOyBpdCBp cyByZWFsbHkgYSBNdWx0aVhhY3RJZCAqLwogCVRyYW5zYWN0aW9uSWQgcmVsbWlubXhpZCBCS0lf REVGQVVMVCgxKTsJLyogRmlyc3RNdWx0aVhhY3RJZCAqLwotLSAKMi40My4wCgo= --0000000000002ec161062fbef3d0 Content-Type: application/octet-stream; name="v14-0001-Use-64-bit-format-output-for-multixact-offsets.patch" Content-Disposition: attachment; filename="v14-0001-Use-64-bit-format-output-for-multixact-offsets.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m7yp1uf80 RnJvbSBmZWNjMGM5NDBkZjc2N2M3OGQzYmIyNDY0MGE0MjFkZGU3MDdkN2RhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbSBPcmxvdiA8b3Jsb3ZtZ0BnbWFpbC5jb20+CkRhdGU6 IFdlZCwgNyBBdWcgMjAyNCAxNjozNToyMiArMDMwMApTdWJqZWN0OiBbUEFUQ0ggdjE0IDEvN10g VXNlIDY0LWJpdCBmb3JtYXQgb3V0cHV0IGZvciBtdWx0aXhhY3Qgb2Zmc2V0cwoKQXV0aG9yOiBN YXhpbSBPcmxvdiA8b3Jsb3ZtZ0BnbWFpbC5jb20+Ci0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL3Jt Z3JkZXNjL214YWN0ZGVzYy5jICAgfCAgOSArKysrLS0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL3Jt Z3JkZXNjL3hsb2dkZXNjLmMgICAgfCAgNCArKy0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNh bS9tdWx0aXhhY3QuYyAgICB8IDI2ICsrKysrKysrKysrKystLS0tLS0tLS0tCiBzcmMvYmFja2Vu ZC9hY2Nlc3MvdHJhbnNhbS94bG9ncmVjb3ZlcnkuYyB8ICA1ICsrKy0tCiBzcmMvYmluL3BnX2Nv bnRyb2xkYXRhL3BnX2NvbnRyb2xkYXRhLmMgICB8ICA0ICsrLS0KIHNyYy9iaW4vcGdfcmVzZXR3 YWwvcGdfcmVzZXR3YWwuYyAgICAgICAgIHwgIDggKysrLS0tLQogNiBmaWxlcyBjaGFuZ2VkLCAz MSBpbnNlcnRpb25zKCspLCAyNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9hY2Nlc3Mvcm1ncmRlc2MvbXhhY3RkZXNjLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRl c2MvbXhhY3RkZXNjLmMKaW5kZXggOGJkM2Q1YjYzYy4uYjc5MmU5ZDkzOSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvYWNjZXNzL3JtZ3JkZXNjL214YWN0ZGVzYy5jCisrKyBiL3NyYy9iYWNrZW5k L2FjY2Vzcy9ybWdyZGVzYy9teGFjdGRlc2MuYwpAQCAtNjUsOCArNjUsOCBAQCBtdWx0aXhhY3Rf ZGVzYyhTdHJpbmdJbmZvIGJ1ZiwgWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJCXhsX211bHRp eGFjdF9jcmVhdGUgKnhscmVjID0gKHhsX211bHRpeGFjdF9jcmVhdGUgKikgcmVjOwogCQlpbnQJ CQlpOwogCi0JCWFwcGVuZFN0cmluZ0luZm8oYnVmLCAiJXUgb2Zmc2V0ICV1IG5tZW1iZXJzICVk OiAiLCB4bHJlYy0+bWlkLAotCQkJCQkJIHhscmVjLT5tb2ZmLCB4bHJlYy0+bm1lbWJlcnMpOwor CQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgIiV1IG9mZnNldCAlbGx1IG5tZW1iZXJzICVkOiAiLCB4 bHJlYy0+bWlkLAorCQkJCQkJICh1bnNpZ25lZCBsb25nIGxvbmcpIHhscmVjLT5tb2ZmLCB4bHJl Yy0+bm1lbWJlcnMpOwogCQlmb3IgKGkgPSAwOyBpIDwgeGxyZWMtPm5tZW1iZXJzOyBpKyspCiAJ CQlvdXRfbWVtYmVyKGJ1ZiwgJnhscmVjLT5tZW1iZXJzW2ldKTsKIAl9CkBAIC03NCw5ICs3NCwx MCBAQCBtdWx0aXhhY3RfZGVzYyhTdHJpbmdJbmZvIGJ1ZiwgWExvZ1JlYWRlclN0YXRlICpyZWNv cmQpCiAJewogCQl4bF9tdWx0aXhhY3RfdHJ1bmNhdGUgKnhscmVjID0gKHhsX211bHRpeGFjdF90 cnVuY2F0ZSAqKSByZWM7CiAKLQkJYXBwZW5kU3RyaW5nSW5mbyhidWYsICJvZmZzZXRzIFsldSwg JXUpLCBtZW1iZXJzIFsldSwgJXUpIiwKKwkJYXBwZW5kU3RyaW5nSW5mbyhidWYsICJvZmZzZXRz IFsldSwgJXUpLCBtZW1iZXJzIFslbGx1LCAlbGx1KSIsCiAJCQkJCQkgeGxyZWMtPnN0YXJ0VHJ1 bmNPZmYsIHhscmVjLT5lbmRUcnVuY09mZiwKLQkJCQkJCSB4bHJlYy0+c3RhcnRUcnVuY01lbWIs IHhscmVjLT5lbmRUcnVuY01lbWIpOworCQkJCQkJICh1bnNpZ25lZCBsb25nIGxvbmcpIHhscmVj LT5zdGFydFRydW5jTWVtYiwKKwkJCQkJCSAodW5zaWduZWQgbG9uZyBsb25nKSB4bHJlYy0+ZW5k VHJ1bmNNZW1iKTsKIAl9CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9ybWdy ZGVzYy94bG9nZGVzYy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3JtZ3JkZXNjL3hsb2dkZXNjLmMK aW5kZXggNTgwNDBmMjg2NS4uZTUyYTU2MjVhOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNj ZXNzL3JtZ3JkZXNjL3hsb2dkZXNjLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3JtZ3JkZXNj L3hsb2dkZXNjLmMKQEAgLTY2LDcgKzY2LDcgQEAgeGxvZ19kZXNjKFN0cmluZ0luZm8gYnVmLCBY TG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAkJQ2hlY2tQb2ludCAqY2hlY2twb2ludCA9IChDaGVj a1BvaW50ICopIHJlYzsKIAogCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgInJlZG8gJVgvJVg7ICIK LQkJCQkJCSAidGxpICV1OyBwcmV2IHRsaSAldTsgZnB3ICVzOyB3YWxfbGV2ZWwgJXM7IHhpZCAl dToldTsgb2lkICV1OyBtdWx0aSAldTsgb2Zmc2V0ICV1OyAiCisJCQkJCQkgInRsaSAldTsgcHJl diB0bGkgJXU7IGZwdyAlczsgd2FsX2xldmVsICVzOyB4aWQgJXU6JXU7IG9pZCAldTsgbXVsdGkg JXU7IG9mZnNldCAlbGx1OyAiCiAJCQkJCQkgIm9sZGVzdCB4aWQgJXUgaW4gREIgJXU7IG9sZGVz dCBtdWx0aSAldSBpbiBEQiAldTsgIgogCQkJCQkJICJvbGRlc3QvbmV3ZXN0IGNvbW1pdCB0aW1l c3RhbXAgeGlkOiAldS8ldTsgIgogCQkJCQkJICJvbGRlc3QgcnVubmluZyB4aWQgJXU7ICVzIiwK QEAgLTc5LDcgKzc5LDcgQEAgeGxvZ19kZXNjKFN0cmluZ0luZm8gYnVmLCBYTG9nUmVhZGVyU3Rh dGUgKnJlY29yZCkKIAkJCQkJCSBYaWRGcm9tRnVsbFRyYW5zYWN0aW9uSWQoY2hlY2twb2ludC0+ bmV4dFhpZCksCiAJCQkJCQkgY2hlY2twb2ludC0+bmV4dE9pZCwKIAkJCQkJCSBjaGVja3BvaW50 LT5uZXh0TXVsdGksCi0JCQkJCQkgY2hlY2twb2ludC0+bmV4dE11bHRpT2Zmc2V0LAorCQkJCQkJ ICh1bnNpZ25lZCBsb25nIGxvbmcpIGNoZWNrcG9pbnQtPm5leHRNdWx0aU9mZnNldCwKIAkJCQkJ CSBjaGVja3BvaW50LT5vbGRlc3RYaWQsCiAJCQkJCQkgY2hlY2twb2ludC0+b2xkZXN0WGlkREIs CiAJCQkJCQkgY2hlY2twb2ludC0+b2xkZXN0TXVsdGksCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvdHJhbnNhbS9tdWx0aXhhY3QuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2Ft L211bHRpeGFjdC5jCmluZGV4IGMxZTJjNDJlMWIuLjgzYjA5NTZkYmMgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL211bHRpeGFjdC5jCisrKyBiL3NyYy9iYWNrZW5kL2Fj Y2Vzcy90cmFuc2FtL211bHRpeGFjdC5jCkBAIC0xMjY0LDcgKzEyNjQsOCBAQCBHZXROZXdNdWx0 aVhhY3RJZChpbnQgbm1lbWJlcnMsIE11bHRpWGFjdE9mZnNldCAqb2Zmc2V0KQogCiAJTFdMb2Nr UmVsZWFzZShNdWx0aVhhY3RHZW5Mb2NrKTsKIAotCWRlYnVnX2Vsb2c0KERFQlVHMiwgIkdldE5l dzogcmV0dXJuaW5nICV1IG9mZnNldCAldSIsIHJlc3VsdCwgKm9mZnNldCk7CisJZGVidWdfZWxv ZzQoREVCVUcyLCAiR2V0TmV3OiByZXR1cm5pbmcgJXUgb2Zmc2V0ICVsbHUiLCByZXN1bHQsCisJ CQkJKHVuc2lnbmVkIGxvbmcgbG9uZykgKm9mZnNldCk7CiAJcmV0dXJuIHJlc3VsdDsKIH0KIApA QCAtMjI5Myw4ICsyMjk0LDkgQEAgTXVsdGlYYWN0R2V0Q2hlY2twdE11bHRpKGJvb2wgaXNfc2h1 dGRvd24sCiAJTFdMb2NrUmVsZWFzZShNdWx0aVhhY3RHZW5Mb2NrKTsKIAogCWRlYnVnX2Vsb2c2 KERFQlVHMiwKLQkJCQkiTXVsdGlYYWN0OiBjaGVja3BvaW50IGlzIG5leHRNdWx0aSAldSwgbmV4 dE9mZnNldCAldSwgb2xkZXN0TXVsdGkgJXUgaW4gREIgJXUiLAotCQkJCSpuZXh0TXVsdGksICpu ZXh0TXVsdGlPZmZzZXQsICpvbGRlc3RNdWx0aSwgKm9sZGVzdE11bHRpREIpOworCQkJCSJNdWx0 aVhhY3Q6IGNoZWNrcG9pbnQgaXMgbmV4dE11bHRpICV1LCBuZXh0T2Zmc2V0ICVsbHUsIG9sZGVz dE11bHRpICV1IGluIERCICV1IiwKKwkJCQkqbmV4dE11bHRpLCAodW5zaWduZWQgbG9uZyBsb25n KSAqbmV4dE11bHRpT2Zmc2V0LCAqb2xkZXN0TXVsdGksCisJCQkJKm9sZGVzdE11bHRpREIpOwog fQogCiAvKgpAQCAtMjMyOCw4ICsyMzMwLDggQEAgdm9pZAogTXVsdGlYYWN0U2V0TmV4dE1YYWN0 KE11bHRpWGFjdElkIG5leHRNdWx0aSwKIAkJCQkJICBNdWx0aVhhY3RPZmZzZXQgbmV4dE11bHRp T2Zmc2V0KQogewotCWRlYnVnX2Vsb2c0KERFQlVHMiwgIk11bHRpWGFjdDogc2V0dGluZyBuZXh0 IG11bHRpIHRvICV1IG9mZnNldCAldSIsCi0JCQkJbmV4dE11bHRpLCBuZXh0TXVsdGlPZmZzZXQp OworCWRlYnVnX2Vsb2c0KERFQlVHMiwgIk11bHRpWGFjdDogc2V0dGluZyBuZXh0IG11bHRpIHRv ICV1IG9mZnNldCAlbGx1IiwKKwkJCQluZXh0TXVsdGksICh1bnNpZ25lZCBsb25nIGxvbmcpIG5l eHRNdWx0aU9mZnNldCk7CiAJTFdMb2NrQWNxdWlyZShNdWx0aVhhY3RHZW5Mb2NrLCBMV19FWENM VVNJVkUpOwogCU11bHRpWGFjdFN0YXRlLT5uZXh0TVhhY3QgPSBuZXh0TXVsdGk7CiAJTXVsdGlY YWN0U3RhdGUtPm5leHRPZmZzZXQgPSBuZXh0TXVsdGlPZmZzZXQ7CkBAIC0yNTE5LDggKzI1MjEs OCBAQCBNdWx0aVhhY3RBZHZhbmNlTmV4dE1YYWN0KE11bHRpWGFjdElkIG1pbk11bHRpLAogCX0K IAlpZiAoTXVsdGlYYWN0T2Zmc2V0UHJlY2VkZXMoTXVsdGlYYWN0U3RhdGUtPm5leHRPZmZzZXQs IG1pbk11bHRpT2Zmc2V0KSkKIAl7Ci0JCWRlYnVnX2Vsb2czKERFQlVHMiwgIk11bHRpWGFjdDog c2V0dGluZyBuZXh0IG9mZnNldCB0byAldSIsCi0JCQkJCW1pbk11bHRpT2Zmc2V0KTsKKwkJZGVi dWdfZWxvZzMoREVCVUcyLCAiTXVsdGlYYWN0OiBzZXR0aW5nIG5leHQgb2Zmc2V0IHRvICVsbHUi LAorCQkJCQkodW5zaWduZWQgbG9uZyBsb25nKSBtaW5NdWx0aU9mZnNldCk7CiAJCU11bHRpWGFj dFN0YXRlLT5uZXh0T2Zmc2V0ID0gbWluTXVsdGlPZmZzZXQ7CiAJfQogCUxXTG9ja1JlbGVhc2Uo TXVsdGlYYWN0R2VuTG9jayk7CkBAIC0zMjExLDExICszMjEzLDEyIEBAIFRydW5jYXRlTXVsdGlY YWN0KE11bHRpWGFjdElkIG5ld09sZGVzdE11bHRpLCBPaWQgbmV3T2xkZXN0TXVsdGlEQikKIAog CWVsb2coREVCVUcxLCAicGVyZm9ybWluZyBtdWx0aXhhY3QgdHJ1bmNhdGlvbjogIgogCQkgIm9m ZnNldHMgWyV1LCAldSksIG9mZnNldHMgc2VnbWVudHMgWyVsbHgsICVsbHgpLCAiCi0JCSAibWVt YmVycyBbJXUsICV1KSwgbWVtYmVycyBzZWdtZW50cyBbJWxseCwgJWxseCkiLAorCQkgIm1lbWJl cnMgWyVsbHUsICVsbHUpLCBtZW1iZXJzIHNlZ21lbnRzIFslbGx4LCAlbGx4KSIsCiAJCSBvbGRl c3RNdWx0aSwgbmV3T2xkZXN0TXVsdGksCiAJCSAodW5zaWduZWQgbG9uZyBsb25nKSBNdWx0aVhh Y3RJZFRvT2Zmc2V0U2VnbWVudChvbGRlc3RNdWx0aSksCiAJCSAodW5zaWduZWQgbG9uZyBsb25n KSBNdWx0aVhhY3RJZFRvT2Zmc2V0U2VnbWVudChuZXdPbGRlc3RNdWx0aSksCi0JCSBvbGRlc3RP ZmZzZXQsIG5ld09sZGVzdE9mZnNldCwKKwkJICh1bnNpZ25lZCBsb25nIGxvbmcpIG9sZGVzdE9m ZnNldCwKKwkJICh1bnNpZ25lZCBsb25nIGxvbmcpIG5ld09sZGVzdE9mZnNldCwKIAkJICh1bnNp Z25lZCBsb25nIGxvbmcpIE1YT2Zmc2V0VG9NZW1iZXJTZWdtZW50KG9sZGVzdE9mZnNldCksCiAJ CSAodW5zaWduZWQgbG9uZyBsb25nKSBNWE9mZnNldFRvTWVtYmVyU2VnbWVudChuZXdPbGRlc3RP ZmZzZXQpKTsKIApAQCAtMzQ3MSwxMSArMzQ3NCwxMiBAQCBtdWx0aXhhY3RfcmVkbyhYTG9nUmVh ZGVyU3RhdGUgKnJlY29yZCkKIAogCQllbG9nKERFQlVHMSwgInJlcGxheWluZyBtdWx0aXhhY3Qg dHJ1bmNhdGlvbjogIgogCQkJICJvZmZzZXRzIFsldSwgJXUpLCBvZmZzZXRzIHNlZ21lbnRzIFsl bGx4LCAlbGx4KSwgIgotCQkJICJtZW1iZXJzIFsldSwgJXUpLCBtZW1iZXJzIHNlZ21lbnRzIFsl bGx4LCAlbGx4KSIsCisJCQkgIm1lbWJlcnMgWyVsbHUsICVsbHUpLCBtZW1iZXJzIHNlZ21lbnRz IFslbGx4LCAlbGx4KSIsCiAJCQkgeGxyZWMuc3RhcnRUcnVuY09mZiwgeGxyZWMuZW5kVHJ1bmNP ZmYsCiAJCQkgKHVuc2lnbmVkIGxvbmcgbG9uZykgTXVsdGlYYWN0SWRUb09mZnNldFNlZ21lbnQo eGxyZWMuc3RhcnRUcnVuY09mZiksCiAJCQkgKHVuc2lnbmVkIGxvbmcgbG9uZykgTXVsdGlYYWN0 SWRUb09mZnNldFNlZ21lbnQoeGxyZWMuZW5kVHJ1bmNPZmYpLAotCQkJIHhscmVjLnN0YXJ0VHJ1 bmNNZW1iLCB4bHJlYy5lbmRUcnVuY01lbWIsCisJCQkgKHVuc2lnbmVkIGxvbmcgbG9uZykgeGxy ZWMuc3RhcnRUcnVuY01lbWIsCisJCQkgKHVuc2lnbmVkIGxvbmcgbG9uZykgeGxyZWMuZW5kVHJ1 bmNNZW1iLAogCQkJICh1bnNpZ25lZCBsb25nIGxvbmcpIE1YT2Zmc2V0VG9NZW1iZXJTZWdtZW50 KHhscmVjLnN0YXJ0VHJ1bmNNZW1iKSwKIAkJCSAodW5zaWduZWQgbG9uZyBsb25nKSBNWE9mZnNl dFRvTWVtYmVyU2VnbWVudCh4bHJlYy5lbmRUcnVuY01lbWIpKTsKIApkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ3JlY292ZXJ5LmMgYi9zcmMvYmFja2VuZC9hY2Nl c3MvdHJhbnNhbS94bG9ncmVjb3ZlcnkuYwppbmRleCA1MmY1M2ZhMTJlLi41ODIwYjE4YWYwIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9ncmVjb3ZlcnkuYworKysg Yi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9ncmVjb3ZlcnkuYwpAQCAtODc5LDggKzg3 OSw5IEBAIEluaXRXYWxSZWNvdmVyeShDb250cm9sRmlsZURhdGEgKkNvbnRyb2xGaWxlLCBib29s ICp3YXNTaHV0ZG93bl9wdHIsCiAJCQkJCQkJIFU2NEZyb21GdWxsVHJhbnNhY3Rpb25JZChjaGVj a1BvaW50Lm5leHRYaWQpLAogCQkJCQkJCSBjaGVja1BvaW50Lm5leHRPaWQpKSk7CiAJZXJlcG9y dChERUJVRzEsCi0JCQkoZXJybXNnX2ludGVybmFsKCJuZXh0IE11bHRpWGFjdElkOiAldTsgbmV4 dCBNdWx0aVhhY3RPZmZzZXQ6ICV1IiwKLQkJCQkJCQkgY2hlY2tQb2ludC5uZXh0TXVsdGksIGNo ZWNrUG9pbnQubmV4dE11bHRpT2Zmc2V0KSkpOworCQkJKGVycm1zZ19pbnRlcm5hbCgibmV4dCBN dWx0aVhhY3RJZDogJXU7IG5leHQgTXVsdGlYYWN0T2Zmc2V0OiAlbGx1IiwKKwkJCQkJCQkgY2hl Y2tQb2ludC5uZXh0TXVsdGksCisJCQkJCQkJICh1bnNpZ25lZCBsb25nIGxvbmcpIGNoZWNrUG9p bnQubmV4dE11bHRpT2Zmc2V0KSkpOwogCWVyZXBvcnQoREVCVUcxLAogCQkJKGVycm1zZ19pbnRl cm5hbCgib2xkZXN0IHVuZnJvemVuIHRyYW5zYWN0aW9uIElEOiAldSwgaW4gZGF0YWJhc2UgJXUi LAogCQkJCQkJCSBjaGVja1BvaW50Lm9sZGVzdFhpZCwgY2hlY2tQb2ludC5vbGRlc3RYaWREQikp KTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfY29udHJvbGRhdGEvcGdfY29udHJvbGRhdGEuYyBi L3NyYy9iaW4vcGdfY29udHJvbGRhdGEvcGdfY29udHJvbGRhdGEuYwppbmRleCBiZWE3NzllZWY5 Li5lZGQ2MzVjYjJkIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2NvbnRyb2xkYXRhL3BnX2NvbnRy b2xkYXRhLmMKKysrIGIvc3JjL2Jpbi9wZ19jb250cm9sZGF0YS9wZ19jb250cm9sZGF0YS5jCkBA IC0yNjQsOCArMjY0LDggQEAgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogCQkgICBDb250 cm9sRmlsZS0+Y2hlY2tQb2ludENvcHkubmV4dE9pZCk7CiAJcHJpbnRmKF8oIkxhdGVzdCBjaGVj a3BvaW50J3MgTmV4dE11bHRpWGFjdElkOiAgJXVcbiIpLAogCQkgICBDb250cm9sRmlsZS0+Y2hl Y2tQb2ludENvcHkubmV4dE11bHRpKTsKLQlwcmludGYoXygiTGF0ZXN0IGNoZWNrcG9pbnQncyBO ZXh0TXVsdGlPZmZzZXQ6ICAldVxuIiksCi0JCSAgIENvbnRyb2xGaWxlLT5jaGVja1BvaW50Q29w eS5uZXh0TXVsdGlPZmZzZXQpOworCXByaW50ZihfKCJMYXRlc3QgY2hlY2twb2ludCdzIE5leHRN dWx0aU9mZnNldDogICVsbHVcbiIpLAorCQkgICAodW5zaWduZWQgbG9uZyBsb25nKSBDb250cm9s RmlsZS0+Y2hlY2tQb2ludENvcHkubmV4dE11bHRpT2Zmc2V0KTsKIAlwcmludGYoXygiTGF0ZXN0 IGNoZWNrcG9pbnQncyBvbGRlc3RYSUQ6ICAgICAgICAldVxuIiksCiAJCSAgIENvbnRyb2xGaWxl LT5jaGVja1BvaW50Q29weS5vbGRlc3RYaWQpOwogCXByaW50ZihfKCJMYXRlc3QgY2hlY2twb2lu dCdzIG9sZGVzdFhJRCdzIERCOiAgICV1XG4iKSwKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfcmVz ZXR3YWwvcGdfcmVzZXR3YWwuYyBiL3NyYy9iaW4vcGdfcmVzZXR3YWwvcGdfcmVzZXR3YWwuYwpp bmRleCAzMWJjMGFiZmYxLi5jYTlmMDFjMTBiIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3Jlc2V0 d2FsL3BnX3Jlc2V0d2FsLmMKKysrIGIvc3JjL2Jpbi9wZ19yZXNldHdhbC9wZ19yZXNldHdhbC5j CkBAIC03NTksOCArNzU5LDggQEAgUHJpbnRDb250cm9sVmFsdWVzKGJvb2wgZ3Vlc3NlZCkKIAkJ ICAgQ29udHJvbEZpbGUuY2hlY2tQb2ludENvcHkubmV4dE9pZCk7CiAJcHJpbnRmKF8oIkxhdGVz dCBjaGVja3BvaW50J3MgTmV4dE11bHRpWGFjdElkOiAgJXVcbiIpLAogCQkgICBDb250cm9sRmls ZS5jaGVja1BvaW50Q29weS5uZXh0TXVsdGkpOwotCXByaW50ZihfKCJMYXRlc3QgY2hlY2twb2lu dCdzIE5leHRNdWx0aU9mZnNldDogICV1XG4iKSwKLQkJICAgQ29udHJvbEZpbGUuY2hlY2tQb2lu dENvcHkubmV4dE11bHRpT2Zmc2V0KTsKKwlwcmludGYoXygiTGF0ZXN0IGNoZWNrcG9pbnQncyBO ZXh0TXVsdGlPZmZzZXQ6ICAlbGx1XG4iKSwKKwkJICAgKHVuc2lnbmVkIGxvbmcgbG9uZykgQ29u dHJvbEZpbGUuY2hlY2tQb2ludENvcHkubmV4dE11bHRpT2Zmc2V0KTsKIAlwcmludGYoXygiTGF0 ZXN0IGNoZWNrcG9pbnQncyBvbGRlc3RYSUQ6ICAgICAgICAldVxuIiksCiAJCSAgIENvbnRyb2xG aWxlLmNoZWNrUG9pbnRDb3B5Lm9sZGVzdFhpZCk7CiAJcHJpbnRmKF8oIkxhdGVzdCBjaGVja3Bv aW50J3Mgb2xkZXN0WElEJ3MgREI6ICAgJXVcbiIpLApAQCAtODMzLDggKzgzMyw4IEBAIFByaW50 TmV3Q29udHJvbFZhbHVlcyh2b2lkKQogCiAJaWYgKHNldF9teG9mZiAhPSAtMSkKIAl7Ci0JCXBy aW50ZihfKCJOZXh0TXVsdGlPZmZzZXQ6ICAgICAgICAgICAgICAgICAgICAgICV1XG4iKSwKLQkJ CSAgIENvbnRyb2xGaWxlLmNoZWNrUG9pbnRDb3B5Lm5leHRNdWx0aU9mZnNldCk7CisJCXByaW50 ZihfKCJOZXh0TXVsdGlPZmZzZXQ6ICAgICAgICAgICAgICAgICAgICAgICVsbHVcbiIpLAorCQkJ ICAgKHVuc2lnbmVkIGxvbmcgbG9uZykgQ29udHJvbEZpbGUuY2hlY2tQb2ludENvcHkubmV4dE11 bHRpT2Zmc2V0KTsKIAl9CiAKIAlpZiAoc2V0X29pZCAhPSAwKQotLSAKMi40My4wCgo= --0000000000002ec161062fbef3d0 Content-Type: application/octet-stream; name="v14-0004-Get-rid-of-MultiXactMemberFreezeThreshold-call.patch" Content-Disposition: attachment; filename="v14-0004-Get-rid-of-MultiXactMemberFreezeThreshold-call.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m7yp1ufp3 RnJvbSA3NWVlZWU4YTM3MzFhY2FkNTY0MzZiYTM1YzVhMmY1NWM5ZGNmZTlhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbSBPcmxvdiA8b3Jsb3ZtZ0BnbWFpbC5jb20+CkRhdGU6 IFdlZCwgMjMgT2N0IDIwMjQgMTg6MjM6MzkgKzAzMDAKU3ViamVjdDogW1BBVENIIHYxNCA0Lzdd IEdldCByaWQgb2YgTXVsdGlYYWN0TWVtYmVyRnJlZXplVGhyZXNob2xkIGNhbGwuCgpTaW5jZSBN YXhNdWx0aVhhY3RPZmZzZXQgYXJlIFVJTlQ2NF9NQVggbm93LCBNVUxUSVhBQ1RfTUVNQkVSX1NB RkVfVEhSRVNIT0xEIGFuZApNVUxUSVhBQ1RfTUVNQkVSX0RBTkdFUl9USFJFU0hPTEQgdmFsdWVz IGFyZSBub3QgbWVhbmluZ2Z1bCBhbnkgbW9yZS4gVGh1cywKTXVsdGlYYWN0TWVtYmVyRnJlZXpl VGhyZXNob2xkIGlzIG5vdCBuZWVkZWQgdG9vLgoKSW5zdGVhZCwgc3dpdGNoIHRvIE1VTFRJWEFD VF9NRU1CRVJfQVVUT1ZBQ19USFJFU0hPTEQgKGVxIDJeMzIpIG1lbWJlcnMKdGhyZXNob2xkLiBJ dCBpcyB1c2VkIHRvIGRldGVybWluZSBpZiB3ZSBuZWVkIHRvIGZvcmNlIGF1dG92YWN1dW0gb3Ig bm90LgoKQXV0aG9yOiBNYXhpbSBPcmxvdiA8b3Jsb3ZtZ0BnbWFpbC5jb20+Ci0tLQogc3JjL2Jh Y2tlbmQvYWNjZXNzL3RyYW5zYW0vbXVsdGl4YWN0LmMgfCAxMTcgKysrLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtLmMgICAgICAgICAgfCAgIDIgKy0K IHNyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYXV0b3ZhY3V1bS5jICAgIHwgICA0ICstCiBzcmMvaW5j bHVkZS9hY2Nlc3MvbXVsdGl4YWN0LmggICAgICAgICB8ICAgMSAtCiA0IGZpbGVzIGNoYW5nZWQs IDE1IGluc2VydGlvbnMoKyksIDEwOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9hY2Nlc3MvdHJhbnNhbS9tdWx0aXhhY3QuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFu c2FtL211bHRpeGFjdC5jCmluZGV4IDI1OWFiYzk5MjIuLjRkYWU4ZjQ3OTkgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL211bHRpeGFjdC5jCisrKyBiL3NyYy9iYWNrZW5k L2FjY2Vzcy90cmFuc2FtL211bHRpeGFjdC5jCkBAIC0yMDQsMTAgKzIwNCwxNCBAQCBNWE9mZnNl dFRvTWVtYmVyT2Zmc2V0KE11bHRpWGFjdE9mZnNldCBvZmZzZXQpCiAJCW1lbWJlcl9pbl9ncm91 cCAqIHNpemVvZihUcmFuc2FjdGlvbklkKTsKIH0KIAotLyogTXVsdGl4YWN0IG1lbWJlcnMgd3Jh cGFyb3VuZCB0aHJlc2hvbGRzLiAqLwotI2RlZmluZSBNVUxUSVhBQ1RfTUVNQkVSX1NBRkVfVEhS RVNIT0xECQkoTWF4TXVsdGlYYWN0T2Zmc2V0IC8gMikKLSNkZWZpbmUgTVVMVElYQUNUX01FTUJF Ul9EQU5HRVJfVEhSRVNIT0xECVwKLQkoTWF4TXVsdGlYYWN0T2Zmc2V0IC0gTWF4TXVsdGlYYWN0 T2Zmc2V0IC8gNCkKKy8qCisgKiBNdWx0aXhhY3QgbWVtYmVycyB3YXJuaW5nIHRocmVzaG9sZC4K KyAqCisgKiBJZiBkaWZmZXJlbmNlIGJldHR3ZWVuIG5leHRPZmZzZXQgYW5kIG9sZGVzdE9mZnNl dCBleGNlZWQgdGhpcyB2YWx1ZSwgd2UKKyAqIHRyaWdnZXIgYXV0b3ZhY3V1bWluIG9yZGVyIHRv IHJlbGVhc2UgdGhlIGRpc2sgc3BhY2UsIHJlZHVjZSB0YWJsZSBibG9hdCBpZgorICogcG9zc2li bGUuCisgKi8KKyNkZWZpbmUgTVVMVElYQUNUX01FTUJFUl9BVVRPVkFDX1RIUkVTSE9MRAkJVUlO VDY0Q09OU1QoMHhGRkZGRkZGRikKIAogc3RhdGljIGlubGluZSBNdWx0aVhhY3RJZAogUHJldmlv dXNNdWx0aVhhY3RJZChNdWx0aVhhY3RJZCBtdWx0aSkKQEAgLTI2MTYsMTUgKzI2MjAsMTMgQEAg R2V0T2xkZXN0TXVsdGlYYWN0SWQodm9pZCkKIH0KIAogLyoKLSAqIERldGVybWluZSBob3cgYWdn cmVzc2l2ZWx5IHdlIG5lZWQgdG8gdmFjdXVtIGluIG9yZGVyIHRvIHByZXZlbnQgbWVtYmVyCi0g KiB3cmFwYXJvdW5kLgorICogRGV0ZXJtaW5lIGlmIHdlIG5lZWQgdG8gdmFjdXVtIGZvciBtZW1i ZXIgb3Igbm90LgogICoKICAqIFRvIGRvIHNvIGRldGVybWluZSB3aGF0J3MgdGhlIG9sZGVzdCBt ZW1iZXIgb2Zmc2V0IGFuZCBpbnN0YWxsIHRoZSBsaW1pdAogICogaW5mbyBpbiBNdWx0aVhhY3RT dGF0ZSwgd2hlcmUgaXQgY2FuIGJlIHVzZWQgdG8gcHJldmVudCBvdmVycnVuIG9mIG9sZCBkYXRh CiAgKiBpbiB0aGUgbWVtYmVycyBTTFJVIGFyZWEuCiAgKgotICogVGhlIHJldHVybiB2YWx1ZSBp cyB0cnVlIGlmIGVtZXJnZW5jeSBhdXRvdmFjdXVtIGlzIHJlcXVpcmVkIGFuZCBmYWxzZQotICog b3RoZXJ3aXNlLgorICogVGhlIHJldHVybiB2YWx1ZSBpcyB0cnVlIGlmIGF1dG92YWN1dW0gaXMg cmVxdWlyZWQgYW5kIGZhbHNlIG90aGVyd2lzZS4KICAqLwogc3RhdGljIGJvb2wKIFNldE9mZnNl dFZhY3V1bUxpbWl0KGJvb2wgaXNfc3RhcnR1cCkKQEAgLTI3MTIsMTAgKzI3MTQsMTAgQEAgU2V0 T2Zmc2V0VmFjdXVtTGltaXQoYm9vbCBpc19zdGFydHVwKQogCUxXTG9ja1JlbGVhc2UoTXVsdGlY YWN0R2VuTG9jayk7CiAKIAkvKgotCSAqIERvIHdlIG5lZWQgYW4gZW1lcmdlbmN5IGF1dG92YWN1 dW0/CUlmIHdlJ3JlIG5vdCBzdXJlLCBhc3N1bWUgeWVzLgorCSAqIERvIHdlIG5lZWQgYXV0b3Zh Y3V1bT8JSWYgd2UncmUgbm90IHN1cmUsIGFzc3VtZSB5ZXMuCiAJICovCiAJcmV0dXJuICFvbGRl c3RPZmZzZXRLbm93biB8fAotCQkobmV4dE9mZnNldCAtIG9sZGVzdE9mZnNldCA+IE1VTFRJWEFD VF9NRU1CRVJfU0FGRV9USFJFU0hPTEQpOworCQkobmV4dE9mZnNldCAtIG9sZGVzdE9mZnNldCA+ IE1VTFRJWEFDVF9NRU1CRVJfQVVUT1ZBQ19USFJFU0hPTEQpOwogfQogCiAvKgpAQCAtMjc2MSwx MDEgKzI3NjMsNiBAQCBmaW5kX211bHRpeGFjdF9zdGFydChNdWx0aVhhY3RJZCBtdWx0aSwgTXVs dGlYYWN0T2Zmc2V0ICpyZXN1bHQpCiAJcmV0dXJuIHRydWU7CiB9CiAKLS8qCi0gKiBEZXRlcm1p bmUgaG93IG1hbnkgbXVsdGl4YWN0cywgYW5kIGhvdyBtYW55IG11bHRpeGFjdCBtZW1iZXJzLCBj dXJyZW50bHkKLSAqIGV4aXN0LiAgUmV0dXJuIGZhbHNlIGlmIHVuYWJsZSB0byBkZXRlcm1pbmUu Ci0gKi8KLXN0YXRpYyBib29sCi1SZWFkTXVsdGlYYWN0Q291bnRzKHVpbnQzMiAqbXVsdGl4YWN0 cywgTXVsdGlYYWN0T2Zmc2V0ICptZW1iZXJzKQotewotCU11bHRpWGFjdE9mZnNldCBuZXh0T2Zm c2V0OwotCU11bHRpWGFjdE9mZnNldCBvbGRlc3RPZmZzZXQ7Ci0JTXVsdGlYYWN0SWQgb2xkZXN0 TXVsdGlYYWN0SWQ7Ci0JTXVsdGlYYWN0SWQgbmV4dE11bHRpWGFjdElkOwotCWJvb2wJCW9sZGVz dE9mZnNldEtub3duOwotCi0JTFdMb2NrQWNxdWlyZShNdWx0aVhhY3RHZW5Mb2NrLCBMV19TSEFS RUQpOwotCW5leHRPZmZzZXQgPSBNdWx0aVhhY3RTdGF0ZS0+bmV4dE9mZnNldDsKLQlvbGRlc3RN dWx0aVhhY3RJZCA9IE11bHRpWGFjdFN0YXRlLT5vbGRlc3RNdWx0aVhhY3RJZDsKLQluZXh0TXVs dGlYYWN0SWQgPSBNdWx0aVhhY3RTdGF0ZS0+bmV4dE1YYWN0OwotCW9sZGVzdE9mZnNldCA9IE11 bHRpWGFjdFN0YXRlLT5vbGRlc3RPZmZzZXQ7Ci0Jb2xkZXN0T2Zmc2V0S25vd24gPSBNdWx0aVhh Y3RTdGF0ZS0+b2xkZXN0T2Zmc2V0S25vd247Ci0JTFdMb2NrUmVsZWFzZShNdWx0aVhhY3RHZW5M b2NrKTsKLQotCWlmICghb2xkZXN0T2Zmc2V0S25vd24pCi0JCXJldHVybiBmYWxzZTsKLQotCSpt ZW1iZXJzID0gbmV4dE9mZnNldCAtIG9sZGVzdE9mZnNldDsKLQkqbXVsdGl4YWN0cyA9IG5leHRN dWx0aVhhY3RJZCAtIG9sZGVzdE11bHRpWGFjdElkOwotCXJldHVybiB0cnVlOwotfQotCi0vKgot ICogTXVsdGl4YWN0IG1lbWJlcnMgY2FuIGJlIHJlbW92ZWQgb25jZSB0aGUgbXVsdGl4YWN0cyB0 aGF0IHJlZmVyIHRvIHRoZW0KLSAqIGFyZSBvbGRlciB0aGFuIGV2ZXJ5IGRhdG1pbm14aWQuICBh dXRvdmFjdXVtX211bHRpeGFjdF9mcmVlemVfbWF4X2FnZSBhbmQKLSAqIHZhY3V1bV9tdWx0aXhh Y3RfZnJlZXplX3RhYmxlX2FnZSB3b3JrIHRvZ2V0aGVyIHRvIG1ha2Ugc3VyZSB3ZSBuZXZlciBo YXZlCi0gKiB0b28gbWFueSBtdWx0aXhhY3RzOyB3ZSBob3BlIHRoYXQsIGF0IGxlYXN0IHVuZGVy IG5vcm1hbCBjaXJjdW1zdGFuY2VzLAotICogdGhpcyB3aWxsIGFsc28gYmUgc3VmZmljaWVudCB0 byBrZWVwIHVzIGZyb20gdXNpbmcgdG9vIG1hbnkgb2Zmc2V0cy4KLSAqIEhvd2V2ZXIsIGlmIHRo ZSBhdmVyYWdlIG11bHRpeGFjdCBoYXMgbWFueSBtZW1iZXJzLCB3ZSBtaWdodCBleGhhdXN0IHRo ZQotICogbWVtYmVycyBzcGFjZSB3aGlsZSBzdGlsbCB1c2luZyBmZXcgZW5vdWdoIG1lbWJlcnMg dGhhdCB0aGVzZSBsaW1pdHMgZmFpbAotICogdG8gdHJpZ2dlciByZWxtaW5teGlkIGFkdmFuY2Vt ZW50IGJ5IFZBQ1VVTS4gIEF0IHRoYXQgcG9pbnQsIHdlJ2QgaGF2ZSBubwotICogY2hvaWNlIGJ1 dCB0byBzdGFydCBmYWlsaW5nIG11bHRpeGFjdC1jcmVhdGluZyBvcGVyYXRpb25zIHdpdGggYW4g ZXJyb3IuCi0gKgotICogVG8gcHJldmVudCB0aGF0LCBpZiBtb3JlIHRoYW4gYSB0aHJlc2hvbGQg cG9ydGlvbiBvZiB0aGUgbWVtYmVycyBzcGFjZSBpcwotICogdXNlZCwgd2UgZWZmZWN0aXZlbHkg cmVkdWNlIGF1dG92YWN1dW1fbXVsdGl4YWN0X2ZyZWV6ZV9tYXhfYWdlIGFuZAotICogdG8gYSB2 YWx1ZSBqdXN0IGxlc3MgdGhhbiB0aGUgbnVtYmVyIG9mIG11bHRpeGFjdHMgaW4gdXNlLiAgV2Ug aG9wZSB0aGF0Ci0gKiB0aGlzIHdpbGwgcXVpY2tseSB0cmlnZ2VyIGF1dG92YWN1dW1pbmcgb24g dGhlIHRhYmxlIG9yIHRhYmxlcyB3aXRoIHRoZQotICogb2xkZXN0IHJlbG1pbm14aWQsIHRodXMg YWxsb3dpbmcgZGF0bWlubXhpZCB2YWx1ZXMgdG8gYWR2YW5jZSBhbmQgcmVtb3ZpbmcKLSAqIHNv bWUgbWVtYmVycy4KLSAqCi0gKiBBcyB0aGUgZnJhY3Rpb24gb2YgdGhlIG1lbWJlciBzcGFjZSBj dXJyZW50bHkgaW4gdXNlIGdyb3dzLCB3ZSBiZWNvbWUKLSAqIG1vcmUgYWdncmVzc2l2ZSBpbiBj bGFtcGluZyB0aGlzIHZhbHVlLiAgVGhhdCBub3Qgb25seSBjYXVzZXMgYXV0b3ZhY3V1bQotICog dG8gcmFtcCB1cCwgYnV0IGFsc28gbWFrZXMgYW55IG1hbnVhbCB2YWN1dW1zIHRoZSB1c2VyIGlz c3VlcyBtb3JlCi0gKiBhZ2dyZXNzaXZlLiAgVGhpcyBoYXBwZW5zIGJlY2F1c2UgdmFjdXVtX2dl dF9jdXRvZmZzKCkgd2lsbCBjbGFtcCB0aGUKLSAqIGZyZWV6ZSB0YWJsZSBhbmQgdGhlIG1pbmlt dW0gZnJlZXplIGFnZSBjdXRvZmZzIGJhc2VkIG9uIHRoZSBlZmZlY3RpdmUKLSAqIGF1dG92YWN1 dW1fbXVsdGl4YWN0X2ZyZWV6ZV9tYXhfYWdlIHRoaXMgZnVuY3Rpb24gcmV0dXJucy4gIEluIHRo ZSB3b3JzdAotICogY2FzZSwgd2UnbGwgY2xhaW0gdGhlIGZyZWV6ZV9tYXhfYWdlIHRvIHplcm8s IGFuZCBldmVyeSB2YWN1dW0gb2YgYW55Ci0gKiB0YWJsZSB3aWxsIGZyZWV6ZSBldmVyeSBtdWx0 aXhhY3QuCi0gKi8KLWludAotTXVsdGlYYWN0TWVtYmVyRnJlZXplVGhyZXNob2xkKHZvaWQpCi17 Ci0JTXVsdGlYYWN0T2Zmc2V0IG1lbWJlcnM7Ci0JdWludDMyCQltdWx0aXhhY3RzOwotCXVpbnQz MgkJdmljdGltX211bHRpeGFjdHM7Ci0JZG91YmxlCQlmcmFjdGlvbjsKLQlpbnQJCQlyZXN1bHQ7 Ci0KLQkvKiBJZiB3ZSBjYW4ndCBkZXRlcm1pbmUgbWVtYmVyIHNwYWNlIHV0aWxpemF0aW9uLCBh c3N1bWUgdGhlIHdvcnN0LiAqLwotCWlmICghUmVhZE11bHRpWGFjdENvdW50cygmbXVsdGl4YWN0 cywgJm1lbWJlcnMpKQotCQlyZXR1cm4gMDsKLQotCS8qIElmIG1lbWJlciBzcGFjZSB1dGlsaXph dGlvbiBpcyBsb3csIG5vIHNwZWNpYWwgYWN0aW9uIGlzIHJlcXVpcmVkLiAqLwotCWlmIChtZW1i ZXJzIDw9IE1VTFRJWEFDVF9NRU1CRVJfU0FGRV9USFJFU0hPTEQpCi0JCXJldHVybiBhdXRvdmFj dXVtX211bHRpeGFjdF9mcmVlemVfbWF4X2FnZTsKLQotCS8qCi0JICogQ29tcHV0ZSBhIHRhcmdl dCBmb3IgcmVsbWlubXhpZCBhZHZhbmNlbWVudC4gIFRoZSBudW1iZXIgb2YgbXVsdGl4YWN0cwot CSAqIHdlIHRyeSB0byBlbGltaW5hdGUgZnJvbSB0aGUgc3lzdGVtIGlzIGJhc2VkIG9uIGhvdyBm YXIgd2UgYXJlIHBhc3QKLQkgKiBNVUxUSVhBQ1RfTUVNQkVSX1NBRkVfVEhSRVNIT0xELgotCSAq LwotCWZyYWN0aW9uID0gKGRvdWJsZSkgKG1lbWJlcnMgLSBNVUxUSVhBQ1RfTUVNQkVSX1NBRkVf VEhSRVNIT0xEKTsKLQlmcmFjdGlvbiAvPSAoZG91YmxlKSAoTVVMVElYQUNUX01FTUJFUl9EQU5H RVJfVEhSRVNIT0xEIC0gTVVMVElYQUNUX01FTUJFUl9TQUZFX1RIUkVTSE9MRCk7Ci0KLQl2aWN0 aW1fbXVsdGl4YWN0cyA9IG11bHRpeGFjdHMgKiBmcmFjdGlvbjsKLQotCS8qIGZyYWN0aW9uIGNv dWxkIGJlID4gMS4wLCBidXQgbG93ZXN0IHBvc3NpYmxlIGZyZWV6ZSBhZ2UgaXMgemVybyAqLwot CWlmICh2aWN0aW1fbXVsdGl4YWN0cyA+IG11bHRpeGFjdHMpCi0JCXJldHVybiAwOwotCXJlc3Vs dCA9IG11bHRpeGFjdHMgLSB2aWN0aW1fbXVsdGl4YWN0czsKLQotCS8qCi0JICogQ2xhbXAgdG8g YXV0b3ZhY3V1bV9tdWx0aXhhY3RfZnJlZXplX21heF9hZ2UsIHNvIHRoYXQgd2UgbmV2ZXIgbWFr ZQotCSAqIGF1dG92YWN1dW0gbGVzcyBhZ2dyZXNzaXZlIHRoYW4gaXQgd291bGQgb3RoZXJ3aXNl IGJlLgotCSAqLwotCXJldHVybiBNaW4ocmVzdWx0LCBhdXRvdmFjdXVtX211bHRpeGFjdF9mcmVl emVfbWF4X2FnZSk7Ci19Ci0KIHR5cGVkZWYgc3RydWN0IG14dHJ1bmNpbmZvCiB7CiAJaW50NjQJ CWVhcmxpZXN0RXhpc3RpbmdQYWdlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv dmFjdXVtLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW0uYwppbmRleCBlODFjOWE4YWJh Li5kYTljM2QyZjExIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW0uYwor KysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW0uYwpAQCAtMTE1MSw3ICsxMTUxLDcgQEAg dmFjdXVtX2dldF9jdXRvZmZzKFJlbGF0aW9uIHJlbCwgY29uc3QgVmFjdXVtUGFyYW1zICpwYXJh bXMsCiAJICogbm9ybWFsbHkgYXV0b3ZhY3V1bV9tdWx0aXhhY3RfZnJlZXplX21heF9hZ2UsIGJ1 dCBtYXkgYmUgbGVzcyBpZiB3ZSBhcmUKIAkgKiBzaG9ydCBvZiBtdWx0aXhhY3QgbWVtYmVyIHNw YWNlLgogCSAqLwotCWVmZmVjdGl2ZV9tdWx0aXhhY3RfZnJlZXplX21heF9hZ2UgPSBNdWx0aVhh Y3RNZW1iZXJGcmVlemVUaHJlc2hvbGQoKTsKKwllZmZlY3RpdmVfbXVsdGl4YWN0X2ZyZWV6ZV9t YXhfYWdlID0gYXV0b3ZhY3V1bV9tdWx0aXhhY3RfZnJlZXplX21heF9hZ2U7CiAKIAkvKgogCSAq IEFsbW9zdCByZWFkeSB0byBzZXQgZnJlZXplIG91dHB1dCBwYXJhbWV0ZXJzOyBjaGVjayBpZiBP bGRlc3RYbWluIG9yCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL2F1dG92YWN1 dW0uYyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYXV0b3ZhY3V1bS5jCmluZGV4IGRmYjhkMDY4 ZWMuLjQxNjVjMzVlYjcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYXV0b3Zh Y3V1bS5jCisrKyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYXV0b3ZhY3V1bS5jCkBAIC0xMTM1 LDcgKzExMzUsNyBAQCBkb19zdGFydF93b3JrZXIodm9pZCkKIAogCS8qIEFsc28gZGV0ZXJtaW5l IHRoZSBvbGRlc3QgZGF0bWlubXhpZCB3ZSB3aWxsIGNvbnNpZGVyLiAqLwogCXJlY2VudE11bHRp ID0gUmVhZE5leHRNdWx0aVhhY3RJZCgpOwotCW11bHRpRm9yY2VMaW1pdCA9IHJlY2VudE11bHRp IC0gTXVsdGlYYWN0TWVtYmVyRnJlZXplVGhyZXNob2xkKCk7CisJbXVsdGlGb3JjZUxpbWl0ID0g cmVjZW50TXVsdGkgLSBhdXRvdmFjdXVtX211bHRpeGFjdF9mcmVlemVfbWF4X2FnZTsKIAlpZiAo bXVsdGlGb3JjZUxpbWl0IDwgRmlyc3RNdWx0aVhhY3RJZCkKIAkJbXVsdGlGb3JjZUxpbWl0IC09 IEZpcnN0TXVsdGlYYWN0SWQ7CiAKQEAgLTE5MjMsNyArMTkyMyw3IEBAIGRvX2F1dG92YWN1dW0o dm9pZCkKIAkgKiBub3JtYWxseSBhdXRvdmFjdXVtX211bHRpeGFjdF9mcmVlemVfbWF4X2FnZSwg YnV0IG1heSBiZSBsZXNzIGlmIHdlIGFyZQogCSAqIHNob3J0IG9mIG11bHRpeGFjdCBtZW1iZXIg c3BhY2UuCiAJICovCi0JZWZmZWN0aXZlX211bHRpeGFjdF9mcmVlemVfbWF4X2FnZSA9IE11bHRp WGFjdE1lbWJlckZyZWV6ZVRocmVzaG9sZCgpOworCWVmZmVjdGl2ZV9tdWx0aXhhY3RfZnJlZXpl X21heF9hZ2UgPSBhdXRvdmFjdXVtX211bHRpeGFjdF9mcmVlemVfbWF4X2FnZTsKIAogCS8qCiAJ ICogRmluZCB0aGUgcGdfZGF0YWJhc2UgZW50cnkgYW5kIHNlbGVjdCB0aGUgZGVmYXVsdCBmcmVl emUgYWdlcy4gV2UgdXNlCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvbXVsdGl4YWN0 LmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvbXVsdGl4YWN0LmgKaW5kZXggYjE1MTA1MzJlZS4uNWVl NjMyZGZlNiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL211bHRpeGFjdC5oCisrKyBi L3NyYy9pbmNsdWRlL2FjY2Vzcy9tdWx0aXhhY3QuaApAQCAtMTQzLDcgKzE0Myw2IEBAIGV4dGVy biB2b2lkIE11bHRpWGFjdFNldE5leHRNWGFjdChNdWx0aVhhY3RJZCBuZXh0TXVsdGksCiBleHRl cm4gdm9pZCBNdWx0aVhhY3RBZHZhbmNlTmV4dE1YYWN0KE11bHRpWGFjdElkIG1pbk11bHRpLAog CQkJCQkJCQkJICBNdWx0aVhhY3RPZmZzZXQgbWluTXVsdGlPZmZzZXQpOwogZXh0ZXJuIHZvaWQg TXVsdGlYYWN0QWR2YW5jZU9sZGVzdChNdWx0aVhhY3RJZCBvbGRlc3RNdWx0aSwgT2lkIG9sZGVz dE11bHRpREIpOwotZXh0ZXJuIGludAlNdWx0aVhhY3RNZW1iZXJGcmVlemVUaHJlc2hvbGQodm9p ZCk7CiAKIGV4dGVybiB2b2lkIG11bHRpeGFjdF90d29waGFzZV9yZWNvdmVyKFRyYW5zYWN0aW9u SWQgeGlkLCB1aW50MTYgaW5mbywKIAkJCQkJCQkJCSAgIHZvaWQgKnJlY2RhdGEsIHVpbnQzMiBs ZW4pOwotLSAKMi40My4wCgo= --0000000000002ec161062fbef3d0 Content-Type: application/octet-stream; name="v14-0002-Use-64-bit-multixact-offsets.patch" Content-Disposition: attachment; filename="v14-0002-Use-64-bit-multixact-offsets.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m7yp1ufj1 RnJvbSBkNmNmMmZjYjRkNTYxNmRjNzdiYmE2N2FkOWUwNmJkZWQ4ZmIxZjM1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbSBPcmxvdiA8bS5vcmxvdkBwb3N0Z3Jlc3Byby5ydT4K RGF0ZTogV2VkLCA2IE1hciAyMDI0IDExOjExOjMzICswMzAwClN1YmplY3Q6IFtQQVRDSCB2MTQg Mi83XSBVc2UgNjQtYml0IG11bHRpeGFjdCBvZmZzZXRzLgoKQXV0aG9yOiBNYXhpbSBPcmxvdiA8 b3Jsb3ZtZ0BnbWFpbC5jb20+Ci0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vbXVsdGl4 YWN0LmMgfCAxNzAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogc3JjL2Jpbi9wZ19yZXNldHdh bC9wZ19yZXNldHdhbC5jICAgICAgfCAgIDIgKy0KIHNyYy9iaW4vcGdfcmVzZXR3YWwvdC8wMDFf YmFzaWMucGwgICAgIHwgICAyICstCiBzcmMvaW5jbHVkZS9hY2Nlc3MvbXVsdGl4YWN0LmggICAg ICAgICB8ICAgMiArLQogc3JjL2luY2x1ZGUvYy5oICAgICAgICAgICAgICAgICAgICAgICAgfCAg IDIgKy0KIDUgZmlsZXMgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgMTY4IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL211bHRpeGFjdC5jIGIv c3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vbXVsdGl4YWN0LmMKaW5kZXggODNiMDk1NmRiYy4u MjU5YWJjOTkyMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vbXVsdGl4 YWN0LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vbXVsdGl4YWN0LmMKQEAgLTk2 LDE0ICs5Niw2IEBACiAvKgogICogRGVmaW5lcyBmb3IgTXVsdGlYYWN0T2Zmc2V0IHBhZ2Ugc2l6 ZXMuICBBIHBhZ2UgaXMgdGhlIHNhbWUgQkxDS1NaIGFzIGlzCiAgKiB1c2VkIGV2ZXJ5d2hlcmUg ZWxzZSBpbiBQb3N0Z3Jlcy4KLSAqCi0gKiBOb3RlOiBiZWNhdXNlIE11bHRpWGFjdE9mZnNldHMg YXJlIDMyIGJpdHMgYW5kIHdyYXAgYXJvdW5kIGF0IDB4RkZGRkZGRkYsCi0gKiBNdWx0aVhhY3Qg cGFnZSBudW1iZXJpbmcgYWxzbyB3cmFwcyBhcm91bmQgYXQKLSAqIDB4RkZGRkZGRkYvTVVMVElY QUNUX09GRlNFVFNfUEVSX1BBR0UsIGFuZCBzZWdtZW50IG51bWJlcmluZyBhdAotICogMHhGRkZG RkZGRi9NVUxUSVhBQ1RfT0ZGU0VUU19QRVJfUEFHRS9TTFJVX1BBR0VTX1BFUl9TRUdNRU5ULiAg V2UgbmVlZAotICogdGFrZSBubyBleHBsaWNpdCBub3RpY2Ugb2YgdGhhdCBmYWN0IGluIHRoaXMg bW9kdWxlLCBleGNlcHQgd2hlbiBjb21wYXJpbmcKLSAqIHNlZ21lbnQgYW5kIHBhZ2UgbnVtYmVy cyBpbiBUcnVuY2F0ZU11bHRpWGFjdCAoc2VlCi0gKiBNdWx0aVhhY3RPZmZzZXRQYWdlUHJlY2Vk ZXMpLgogICovCiAKIC8qIFdlIG5lZWQgZm91ciBieXRlcyBwZXIgb2Zmc2V0ICovCkBAIC0yNzIs OSArMjY0LDYgQEAgdHlwZWRlZiBzdHJ1Y3QgTXVsdGlYYWN0U3RhdGVEYXRhCiAJTXVsdGlYYWN0 SWQgbXVsdGlTdG9wTGltaXQ7CiAJTXVsdGlYYWN0SWQgbXVsdGlXcmFwTGltaXQ7CiAKLQkvKiBz dXBwb3J0IGZvciBtZW1iZXJzIGFudGktd3JhcGFyb3VuZCBtZWFzdXJlcyAqLwotCU11bHRpWGFj dE9mZnNldCBvZmZzZXRTdG9wTGltaXQ7CS8qIGtub3duIGlmIG9sZGVzdE9mZnNldEtub3duICov Ci0KIAkvKgogCSAqIFRoaXMgaXMgdXNlZCB0byBzbGVlcCB1bnRpbCBhIG11bHRpeGFjdCBvZmZz ZXQgaXMgd3JpdHRlbiB3aGVuIHdlIHdhbnQKIAkgKiB0byBjcmVhdGUgdGhlIG5leHQgb25lLgpA QCAtNDA5LDggKzM5OCw2IEBAIHN0YXRpYyBib29sIE11bHRpWGFjdE9mZnNldFByZWNlZGVzKE11 bHRpWGFjdE9mZnNldCBvZmZzZXQxLAogCQkJCQkJCQkJTXVsdGlYYWN0T2Zmc2V0IG9mZnNldDIp Owogc3RhdGljIHZvaWQgRXh0ZW5kTXVsdGlYYWN0T2Zmc2V0KE11bHRpWGFjdElkIG11bHRpKTsK IHN0YXRpYyB2b2lkIEV4dGVuZE11bHRpWGFjdE1lbWJlcihNdWx0aVhhY3RPZmZzZXQgb2Zmc2V0 LCBpbnQgbm1lbWJlcnMpOwotc3RhdGljIGJvb2wgTXVsdGlYYWN0T2Zmc2V0V291bGRXcmFwKE11 bHRpWGFjdE9mZnNldCBib3VuZGFyeSwKLQkJCQkJCQkJCSBNdWx0aVhhY3RPZmZzZXQgc3RhcnQs IHVpbnQzMiBkaXN0YW5jZSk7CiBzdGF0aWMgYm9vbCBTZXRPZmZzZXRWYWN1dW1MaW1pdChib29s IGlzX3N0YXJ0dXApOwogc3RhdGljIGJvb2wgZmluZF9tdWx0aXhhY3Rfc3RhcnQoTXVsdGlYYWN0 SWQgbXVsdGksIE11bHRpWGFjdE9mZnNldCAqcmVzdWx0KTsKIHN0YXRpYyB2b2lkIFdyaXRlTVpl cm9QYWdlWGxvZ1JlYyhpbnQ2NCBwYWdlbm8sIHVpbnQ4IGluZm8pOwpAQCAtMTE2NCw3OCArMTE1 MSw2IEBAIEdldE5ld011bHRpWGFjdElkKGludCBubWVtYmVycywgTXVsdGlYYWN0T2Zmc2V0ICpv ZmZzZXQpCiAJZWxzZQogCQkqb2Zmc2V0ID0gbmV4dE9mZnNldDsKIAotCS8qLS0tLS0tLS0tLQot CSAqIFByb3RlY3QgYWdhaW5zdCBvdmVycnVuIG9mIHRoZSBtZW1iZXJzIHNwYWNlIGFzIHdlbGws IHdpdGggdGhlCi0JICogZm9sbG93aW5nIHJ1bGVzOgotCSAqCi0JICogSWYgd2UncmUgcGFzdCBv ZmZzZXRTdG9wTGltaXQsIHJlZnVzZSB0byBnZW5lcmF0ZSBtb3JlIG11bHRpcy4KLQkgKiBJZiB3 ZSdyZSBjbG9zZSB0byBvZmZzZXRTdG9wTGltaXQsIGVtaXQgYSB3YXJuaW5nLgotCSAqCi0JICog QXJiaXRyYXJpbHksIHdlIHN0YXJ0IGVtaXR0aW5nIHdhcm5pbmdzIHdoZW4gd2UncmUgMjAgc2Vn bWVudHMgb3IgbGVzcwotCSAqIGZyb20gb2Zmc2V0U3RvcExpbWl0LgotCSAqCi0JICogTm90ZSB3 ZSBoYXZlbid0IHVwZGF0ZWQgdGhlIHNoYXJlZCBzdGF0ZSB5ZXQsIHNvIGlmIHdlIGZhaWwgYXQg dGhpcwotCSAqIHBvaW50LCB0aGUgbXVsdGl4YWN0IElEIHdlIGdyYWJiZWQgY2FuIHN0aWxsIGJl IHVzZWQgYnkgdGhlIG5leHQgZ3V5LgotCSAqCi0JICogTm90ZSB0aGF0IHRoZXJlIGlzIG5vIHBv aW50IGluIGZvcmNpbmcgYXV0b3ZhY3V1bSBydW5zIGhlcmU6IHRoZQotCSAqIG11bHRpeGFjdCBm cmVlemUgc2V0dGluZ3Mgd291bGQgaGF2ZSB0byBiZSByZWR1Y2VkIGZvciB0aGF0IHRvIGhhdmUg YW55Ci0JICogZWZmZWN0LgotCSAqLS0tLS0tLS0tLQotCSAqLwotI2RlZmluZSBPRkZTRVRfV0FS Tl9TRUdNRU5UUwkyMAotCWlmIChNdWx0aVhhY3RTdGF0ZS0+b2xkZXN0T2Zmc2V0S25vd24gJiYK LQkJTXVsdGlYYWN0T2Zmc2V0V291bGRXcmFwKE11bHRpWGFjdFN0YXRlLT5vZmZzZXRTdG9wTGlt aXQsIG5leHRPZmZzZXQsCi0JCQkJCQkJCSBubWVtYmVycykpCi0JewotCQkvKiBzZWUgY29tbWVu dCBpbiB0aGUgY29ycmVzcG9uZGluZyBvZmZzZXRzIHdyYXBhcm91bmQgY2FzZSAqLwotCQlTZW5k UG9zdG1hc3RlclNpZ25hbChQTVNJR05BTF9TVEFSVF9BVVRPVkFDX0xBVU5DSEVSKTsKLQotCQll cmVwb3J0KEVSUk9SLAotCQkJCShlcnJjb2RlKEVSUkNPREVfUFJPR1JBTV9MSU1JVF9FWENFRURF RCksCi0JCQkJIGVycm1zZygibXVsdGl4YWN0IFwibWVtYmVyc1wiIGxpbWl0IGV4Y2VlZGVkIiks Ci0JCQkJIGVycmRldGFpbF9wbHVyYWwoIlRoaXMgY29tbWFuZCB3b3VsZCBjcmVhdGUgYSBtdWx0 aXhhY3Qgd2l0aCAldSBtZW1iZXJzLCBidXQgdGhlIHJlbWFpbmluZyBzcGFjZSBpcyBvbmx5IGVu b3VnaCBmb3IgJXUgbWVtYmVyLiIsCi0JCQkJCQkJCSAgIlRoaXMgY29tbWFuZCB3b3VsZCBjcmVh dGUgYSBtdWx0aXhhY3Qgd2l0aCAldSBtZW1iZXJzLCBidXQgdGhlIHJlbWFpbmluZyBzcGFjZSBp cyBvbmx5IGVub3VnaCBmb3IgJXUgbWVtYmVycy4iLAotCQkJCQkJCQkgIE11bHRpWGFjdFN0YXRl LT5vZmZzZXRTdG9wTGltaXQgLSBuZXh0T2Zmc2V0IC0gMSwKLQkJCQkJCQkJICBubWVtYmVycywK LQkJCQkJCQkJICBNdWx0aVhhY3RTdGF0ZS0+b2Zmc2V0U3RvcExpbWl0IC0gbmV4dE9mZnNldCAt IDEpLAotCQkJCSBlcnJoaW50KCJFeGVjdXRlIGEgZGF0YWJhc2Utd2lkZSBWQUNVVU0gaW4gZGF0 YWJhc2Ugd2l0aCBPSUQgJXUgd2l0aCByZWR1Y2VkIFwidmFjdXVtX211bHRpeGFjdF9mcmVlemVf bWluX2FnZVwiIGFuZCBcInZhY3V1bV9tdWx0aXhhY3RfZnJlZXplX3RhYmxlX2FnZVwiIHNldHRp bmdzLiIsCi0JCQkJCQkgTXVsdGlYYWN0U3RhdGUtPm9sZGVzdE11bHRpWGFjdERCKSkpOwotCX0K LQotCS8qCi0JICogQ2hlY2sgd2hldGhlciB3ZSBzaG91bGQga2ljayBhdXRvdmFjdXVtIGludG8g YWN0aW9uLCB0byBwcmV2ZW50IG1lbWJlcnMKLQkgKiB3cmFwYXJvdW5kLiBOQiB3ZSB1c2UgYSBt dWNoIGxhcmdlciB3aW5kb3cgdG8gdHJpZ2dlciBhdXRvdmFjdXVtIHRoYW4KLQkgKiBqdXN0IHRo ZSB3YXJuaW5nIGxpbWl0LiBUaGUgd2FybmluZyBpcyBqdXN0IGEgbWVhc3VyZSBvZiBsYXN0IHJl c29ydCAtCi0JICogdGhpcyBpcyBpbiBsaW5lIHdpdGggR2V0TmV3VHJhbnNhY3Rpb25JZCdzIGJl aGF2aW91ci4KLQkgKi8KLQlpZiAoIU11bHRpWGFjdFN0YXRlLT5vbGRlc3RPZmZzZXRLbm93biB8 fAotCQkoTXVsdGlYYWN0U3RhdGUtPm5leHRPZmZzZXQgLSBNdWx0aVhhY3RTdGF0ZS0+b2xkZXN0 T2Zmc2V0Ci0JCSA+IE1VTFRJWEFDVF9NRU1CRVJfU0FGRV9USFJFU0hPTEQpKQotCXsKLQkJLyoK LQkJICogVG8gYXZvaWQgc3dhbXBpbmcgdGhlIHBvc3RtYXN0ZXIgd2l0aCBzaWduYWxzLCB3ZSBp c3N1ZSB0aGUgYXV0b3ZhYwotCQkgKiByZXF1ZXN0IG9ubHkgd2hlbiBjcm9zc2luZyBhIHNlZ21l bnQgYm91bmRhcnkuIFdpdGggZGVmYXVsdAotCQkgKiBjb21waWxhdGlvbiBzZXR0aW5ncyB0aGF0 J3Mgcm91Z2hseSBhZnRlciA1MGsgbWVtYmVycy4gIFRoaXMgc3RpbGwKLQkJICogZ2l2ZXMgcGxl bnR5IG9mIGNoYW5jZXMgYmVmb3JlIHdlIGdldCBpbnRvIHJlYWwgdHJvdWJsZS4KLQkJICovCi0J CWlmICgoTVhPZmZzZXRUb01lbWJlclBhZ2UobmV4dE9mZnNldCkgLyBTTFJVX1BBR0VTX1BFUl9T RUdNRU5UKSAhPQotCQkJKE1YT2Zmc2V0VG9NZW1iZXJQYWdlKG5leHRPZmZzZXQgKyBubWVtYmVy cykgLyBTTFJVX1BBR0VTX1BFUl9TRUdNRU5UKSkKLQkJCVNlbmRQb3N0bWFzdGVyU2lnbmFsKFBN U0lHTkFMX1NUQVJUX0FVVE9WQUNfTEFVTkNIRVIpOwotCX0KLQotCWlmIChNdWx0aVhhY3RTdGF0 ZS0+b2xkZXN0T2Zmc2V0S25vd24gJiYKLQkJTXVsdGlYYWN0T2Zmc2V0V291bGRXcmFwKE11bHRp WGFjdFN0YXRlLT5vZmZzZXRTdG9wTGltaXQsCi0JCQkJCQkJCSBuZXh0T2Zmc2V0LAotCQkJCQkJ CQkgbm1lbWJlcnMgKyBNVUxUSVhBQ1RfTUVNQkVSU19QRVJfUEFHRSAqIFNMUlVfUEFHRVNfUEVS X1NFR01FTlQgKiBPRkZTRVRfV0FSTl9TRUdNRU5UUykpCi0JCWVyZXBvcnQoV0FSTklORywKLQkJ CQkoZXJyY29kZShFUlJDT0RFX1BST0dSQU1fTElNSVRfRVhDRUVERUQpLAotCQkJCSBlcnJtc2df cGx1cmFsKCJkYXRhYmFzZSB3aXRoIE9JRCAldSBtdXN0IGJlIHZhY3V1bWVkIGJlZm9yZSAlZCBt b3JlIG11bHRpeGFjdCBtZW1iZXIgaXMgdXNlZCIsCi0JCQkJCQkJICAgImRhdGFiYXNlIHdpdGgg T0lEICV1IG11c3QgYmUgdmFjdXVtZWQgYmVmb3JlICVkIG1vcmUgbXVsdGl4YWN0IG1lbWJlcnMg YXJlIHVzZWQiLAotCQkJCQkJCSAgIE11bHRpWGFjdFN0YXRlLT5vZmZzZXRTdG9wTGltaXQgLSBu ZXh0T2Zmc2V0ICsgbm1lbWJlcnMsCi0JCQkJCQkJICAgTXVsdGlYYWN0U3RhdGUtPm9sZGVzdE11 bHRpWGFjdERCLAotCQkJCQkJCSAgIE11bHRpWGFjdFN0YXRlLT5vZmZzZXRTdG9wTGltaXQgLSBu ZXh0T2Zmc2V0ICsgbm1lbWJlcnMpLAotCQkJCSBlcnJoaW50KCJFeGVjdXRlIGEgZGF0YWJhc2Ut d2lkZSBWQUNVVU0gaW4gdGhhdCBkYXRhYmFzZSB3aXRoIHJlZHVjZWQgXCJ2YWN1dW1fbXVsdGl4 YWN0X2ZyZWV6ZV9taW5fYWdlXCIgYW5kIFwidmFjdXVtX211bHRpeGFjdF9mcmVlemVfdGFibGVf YWdlXCIgc2V0dGluZ3MuIikpKTsKLQogCUV4dGVuZE11bHRpWGFjdE1lbWJlcihuZXh0T2Zmc2V0 LCBubWVtYmVycyk7CiAKIAkvKgpAQCAtMjcyMSw4ICsyNjM2LDYgQEAgU2V0T2Zmc2V0VmFjdXVt TGltaXQoYm9vbCBpc19zdGFydHVwKQogCU11bHRpWGFjdE9mZnNldCBuZXh0T2Zmc2V0OwogCWJv b2wJCW9sZGVzdE9mZnNldEtub3duID0gZmFsc2U7CiAJYm9vbAkJcHJldk9sZGVzdE9mZnNldEtu b3duOwotCU11bHRpWGFjdE9mZnNldCBvZmZzZXRTdG9wTGltaXQgPSAwOwotCU11bHRpWGFjdE9m ZnNldCBwcmV2T2Zmc2V0U3RvcExpbWl0OwogCiAJLyoKIAkgKiBOQjogSGF2ZSB0byBwcmV2ZW50 IGNvbmN1cnJlbnQgdHJ1bmNhdGlvbiwgd2UgbWlnaHQgb3RoZXJ3aXNlIHRyeSB0bwpAQCAtMjcz Nyw3ICsyNjUwLDYgQEAgU2V0T2Zmc2V0VmFjdXVtTGltaXQoYm9vbCBpc19zdGFydHVwKQogCW5l eHRPZmZzZXQgPSBNdWx0aVhhY3RTdGF0ZS0+bmV4dE9mZnNldDsKIAlwcmV2T2xkZXN0T2Zmc2V0 S25vd24gPSBNdWx0aVhhY3RTdGF0ZS0+b2xkZXN0T2Zmc2V0S25vd247CiAJcHJldk9sZGVzdE9m ZnNldCA9IE11bHRpWGFjdFN0YXRlLT5vbGRlc3RPZmZzZXQ7Ci0JcHJldk9mZnNldFN0b3BMaW1p dCA9IE11bHRpWGFjdFN0YXRlLT5vZmZzZXRTdG9wTGltaXQ7CiAJQXNzZXJ0KE11bHRpWGFjdFN0 YXRlLT5maW5pc2hlZFN0YXJ0dXApOwogCUxXTG9ja1JlbGVhc2UoTXVsdGlYYWN0R2VuTG9jayk7 CiAKQEAgLTI3NjgsMTEgKzI2ODAsNyBAQCBTZXRPZmZzZXRWYWN1dW1MaW1pdChib29sIGlzX3N0 YXJ0dXApCiAJCW9sZGVzdE9mZnNldEtub3duID0KIAkJCWZpbmRfbXVsdGl4YWN0X3N0YXJ0KG9s ZGVzdE11bHRpWGFjdElkLCAmb2xkZXN0T2Zmc2V0KTsKIAotCQlpZiAob2xkZXN0T2Zmc2V0S25v d24pCi0JCQllcmVwb3J0KERFQlVHMSwKLQkJCQkJKGVycm1zZ19pbnRlcm5hbCgib2xkZXN0IE11 bHRpWGFjdElkIG1lbWJlciBpcyBhdCBvZmZzZXQgJXUiLAotCQkJCQkJCQkJIG9sZGVzdE9mZnNl dCkpKTsKLQkJZWxzZQorCQlpZiAoIW9sZGVzdE9mZnNldEtub3duKQogCQkJZXJlcG9ydChMT0cs CiAJCQkJCShlcnJtc2coIk11bHRpWGFjdCBtZW1iZXIgd3JhcGFyb3VuZCBwcm90ZWN0aW9ucyBh cmUgZGlzYWJsZWQgYmVjYXVzZSBvbGRlc3QgY2hlY2twb2ludGVkIE11bHRpWGFjdCAldSBkb2Vz IG5vdCBleGlzdCBvbiBkaXNrIiwKIAkJCQkJCQlvbGRlc3RNdWx0aVhhY3RJZCkpKTsKQEAgLTI3 ODUsMjQgKzI2OTMsNyBAQCBTZXRPZmZzZXRWYWN1dW1MaW1pdChib29sIGlzX3N0YXJ0dXApCiAJ ICogb3ZlcnJ1biBvZiBvbGQgZGF0YSBpbiB0aGUgbWVtYmVycyBTTFJVIGFyZWEuIFdlIGNhbiBv bmx5IGRvIHNvIGlmIHRoZQogCSAqIG9sZGVzdCBvZmZzZXQgaXMga25vd24gdGhvdWdoLgogCSAq LwotCWlmIChvbGRlc3RPZmZzZXRLbm93bikKLQl7Ci0JCS8qIG1vdmUgYmFjayB0byBzdGFydCBv ZiB0aGUgY29ycmVzcG9uZGluZyBzZWdtZW50ICovCi0JCW9mZnNldFN0b3BMaW1pdCA9IG9sZGVz dE9mZnNldCAtIChvbGRlc3RPZmZzZXQgJQotCQkJCQkJCQkJCSAgKE1VTFRJWEFDVF9NRU1CRVJT X1BFUl9QQUdFICogU0xSVV9QQUdFU19QRVJfU0VHTUVOVCkpOwotCi0JCS8qIGFsd2F5cyBsZWF2 ZSBvbmUgc2VnbWVudCBiZWZvcmUgdGhlIHdyYXBhcm91bmQgcG9pbnQgKi8KLQkJb2Zmc2V0U3Rv cExpbWl0IC09IChNVUxUSVhBQ1RfTUVNQkVSU19QRVJfUEFHRSAqIFNMUlVfUEFHRVNfUEVSX1NF R01FTlQpOwotCi0JCWlmICghcHJldk9sZGVzdE9mZnNldEtub3duICYmICFpc19zdGFydHVwKQot CQkJZXJlcG9ydChMT0csCi0JCQkJCShlcnJtc2coIk11bHRpWGFjdCBtZW1iZXIgd3JhcGFyb3Vu ZCBwcm90ZWN0aW9ucyBhcmUgbm93IGVuYWJsZWQiKSkpOwotCi0JCWVyZXBvcnQoREVCVUcxLAot CQkJCShlcnJtc2dfaW50ZXJuYWwoIk11bHRpWGFjdCBtZW1iZXIgc3RvcCBsaW1pdCBpcyBub3cg JXUgYmFzZWQgb24gTXVsdGlYYWN0ICV1IiwKLQkJCQkJCQkJIG9mZnNldFN0b3BMaW1pdCwgb2xk ZXN0TXVsdGlYYWN0SWQpKSk7Ci0JfQotCWVsc2UgaWYgKHByZXZPbGRlc3RPZmZzZXRLbm93bikK KwlpZiAocHJldk9sZGVzdE9mZnNldEtub3duKQogCXsKIAkJLyoKIAkJICogSWYgd2UgZmFpbGVk IHRvIGdldCB0aGUgb2xkZXN0IG9mZnNldCB0aGlzIHRpbWUsIGJ1dCB3ZSBoYXZlIGEKQEAgLTI4 MTIsMTQgKzI3MDMsMTIgQEAgU2V0T2Zmc2V0VmFjdXVtTGltaXQoYm9vbCBpc19zdGFydHVwKQog CQkgKi8KIAkJb2xkZXN0T2Zmc2V0ID0gcHJldk9sZGVzdE9mZnNldDsKIAkJb2xkZXN0T2Zmc2V0 S25vd24gPSB0cnVlOwotCQlvZmZzZXRTdG9wTGltaXQgPSBwcmV2T2Zmc2V0U3RvcExpbWl0Owog CX0KIAogCS8qIEluc3RhbGwgdGhlIGNvbXB1dGVkIHZhbHVlcyAqLwogCUxXTG9ja0FjcXVpcmUo TXVsdGlYYWN0R2VuTG9jaywgTFdfRVhDTFVTSVZFKTsKIAlNdWx0aVhhY3RTdGF0ZS0+b2xkZXN0 T2Zmc2V0ID0gb2xkZXN0T2Zmc2V0OwogCU11bHRpWGFjdFN0YXRlLT5vbGRlc3RPZmZzZXRLbm93 biA9IG9sZGVzdE9mZnNldEtub3duOwotCU11bHRpWGFjdFN0YXRlLT5vZmZzZXRTdG9wTGltaXQg PSBvZmZzZXRTdG9wTGltaXQ7CiAJTFdMb2NrUmVsZWFzZShNdWx0aVhhY3RHZW5Mb2NrKTsKIAog CS8qCkBAIC0yODI5LDU0ICsyNzE4LDYgQEAgU2V0T2Zmc2V0VmFjdXVtTGltaXQoYm9vbCBpc19z dGFydHVwKQogCQkobmV4dE9mZnNldCAtIG9sZGVzdE9mZnNldCA+IE1VTFRJWEFDVF9NRU1CRVJf U0FGRV9USFJFU0hPTEQpOwogfQogCi0vKgotICogUmV0dXJuIHdoZXRoZXIgYWRkaW5nICJkaXN0 YW5jZSIgdG8gInN0YXJ0IiB3b3VsZCBtb3ZlIHBhc3QgImJvdW5kYXJ5Ii4KLSAqCi0gKiBXZSB1 c2UgdGhpcyB0byBkZXRlcm1pbmUgd2hldGhlciB0aGUgYWRkaXRpb24gaXMgIndyYXBwaW5nIGFy b3VuZCIgdGhlCi0gKiBib3VuZGFyeSBwb2ludCwgaGVuY2UgdGhlIG5hbWUuICBUaGUgcmVhc29u IHdlIGRvbid0IHdhbnQgdG8gdXNlIHRoZSByZWd1bGFyCi0gKiAyXjMxLW1vZHVsbyBhcml0aG1l dGljIGhlcmUgaXMgdGhhdCB3ZSB3YW50IHRvIGJlIGFibGUgdG8gdXNlIHRoZSB3aG9sZSBvZgot ICogdGhlIDJeMzItMSBzcGFjZSBoZXJlLCBhbGxvd2luZyBmb3IgbW9yZSBtdWx0aXhhY3RzIHRo YW4gd291bGQgZml0Ci0gKiBvdGhlcndpc2UuCi0gKi8KLXN0YXRpYyBib29sCi1NdWx0aVhhY3RP ZmZzZXRXb3VsZFdyYXAoTXVsdGlYYWN0T2Zmc2V0IGJvdW5kYXJ5LCBNdWx0aVhhY3RPZmZzZXQg c3RhcnQsCi0JCQkJCQkgdWludDMyIGRpc3RhbmNlKQotewotCU11bHRpWGFjdE9mZnNldCBmaW5p c2g7Ci0KLQkvKgotCSAqIE5vdGUgdGhhdCBvZmZzZXQgbnVtYmVyIDAgaXMgbm90IHVzZWQgKHNl ZSBHZXRNdWx0aVhhY3RJZE1lbWJlcnMpLCBzbwotCSAqIGlmIHRoZSBhZGRpdGlvbiB3cmFwcyBh cm91bmQgdGhlIFVJTlRfTUFYIGJvdW5kYXJ5LCBza2lwIHRoYXQgdmFsdWUuCi0JICovCi0JZmlu aXNoID0gc3RhcnQgKyBkaXN0YW5jZTsKLQlpZiAoZmluaXNoIDwgc3RhcnQpCi0JCWZpbmlzaCsr OwotCi0JLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCSAqIFdoZW4gdGhlIGJvdW5kYXJ5IGlzIG51bWVyaWNh bGx5IGdyZWF0ZXIgdGhhbiB0aGUgc3RhcnRpbmcgcG9pbnQsIGFueQotCSAqIHZhbHVlIG51bWVy aWNhbGx5IGJldHdlZW4gdGhlIHR3byBpcyBub3Qgd3JhcHBlZDoKLQkgKgotCSAqCTwtLS0tUy0t LS1CLS0tLT4KLQkgKglbLS0tKQkJCSA9IEYgd3JhcHBlZCBwYXN0IEIgKGFuZCBVSU5UX01BWCkK LQkgKgkJIFstLS0pCQkgPSBGIG5vdCB3cmFwcGVkCi0JICoJCQkgIFstLS0tXSA9IEYgd3JhcHBl ZCBwYXN0IEIKLQkgKgotCSAqIFdoZW4gdGhlIGJvdW5kYXJ5IGlzIG51bWVyaWNhbGx5IGxlc3Mg dGhhbiB0aGUgc3RhcnRpbmcgcG9pbnQgKGkuZS4gdGhlCi0JICogVUlOVF9NQVggd3JhcGFyb3Vu ZCBvY2N1cnMgc29tZXdoZXJlIGluIGJldHdlZW4pIHRoZW4gYWxsIHZhbHVlcyBpbgotCSAqIGJl dHdlZW4gYXJlIHdyYXBwZWQ6Ci0JICoKLQkgKgk8LS0tLUItLS0tUy0tLS0+Ci0JICoJWy0tLSkJ CQkgPSBGIG5vdCB3cmFwcGVkIHBhc3QgQiAoYnV0IHdyYXBwZWQgcGFzdCBVSU5UX01BWCkKLQkg KgkJIFstLS0pCQkgPSBGIHdyYXBwZWQgcGFzdCBCIChhbmQgVUlOVF9NQVgpCi0JICoJCQkgIFst LS0tXSA9IEYgbm90IHdyYXBwZWQKLQkgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0JICovCi0JaWYgKHN0YXJ0 IDwgYm91bmRhcnkpCi0JCXJldHVybiBmaW5pc2ggPj0gYm91bmRhcnkgfHwgZmluaXNoIDwgc3Rh cnQ7Ci0JZWxzZQotCQlyZXR1cm4gZmluaXNoID49IGJvdW5kYXJ5ICYmIGZpbmlzaCA8IHN0YXJ0 OwotfQotCiAvKgogICogRmluZCB0aGUgc3RhcnRpbmcgb2Zmc2V0IG9mIHRoZSBnaXZlbiBNdWx0 aVhhY3RJZC4KICAqCkBAIC0yOTk4LDggKzI4MzksOSBAQCBNdWx0aVhhY3RNZW1iZXJGcmVlemVU aHJlc2hvbGQodm9pZCkKIAkgKiB3ZSB0cnkgdG8gZWxpbWluYXRlIGZyb20gdGhlIHN5c3RlbSBp cyBiYXNlZCBvbiBob3cgZmFyIHdlIGFyZSBwYXN0CiAJICogTVVMVElYQUNUX01FTUJFUl9TQUZF X1RIUkVTSE9MRC4KIAkgKi8KLQlmcmFjdGlvbiA9IChkb3VibGUpIChtZW1iZXJzIC0gTVVMVElY QUNUX01FTUJFUl9TQUZFX1RIUkVTSE9MRCkgLwotCQkoTVVMVElYQUNUX01FTUJFUl9EQU5HRVJf VEhSRVNIT0xEIC0gTVVMVElYQUNUX01FTUJFUl9TQUZFX1RIUkVTSE9MRCk7CisJZnJhY3Rpb24g PSAoZG91YmxlKSAobWVtYmVycyAtIE1VTFRJWEFDVF9NRU1CRVJfU0FGRV9USFJFU0hPTEQpOwor CWZyYWN0aW9uIC89IChkb3VibGUpIChNVUxUSVhBQ1RfTUVNQkVSX0RBTkdFUl9USFJFU0hPTEQg LSBNVUxUSVhBQ1RfTUVNQkVSX1NBRkVfVEhSRVNIT0xEKTsKKwogCXZpY3RpbV9tdWx0aXhhY3Rz ID0gbXVsdGl4YWN0cyAqIGZyYWN0aW9uOwogCiAJLyogZnJhY3Rpb24gY291bGQgYmUgPiAxLjAs IGJ1dCBsb3dlc3QgcG9zc2libGUgZnJlZXplIGFnZSBpcyB6ZXJvICovCkBAIC0zMzQ1LDcgKzMx ODcsNyBAQCBNdWx0aVhhY3RJZFByZWNlZGVzT3JFcXVhbHMoTXVsdGlYYWN0SWQgbXVsdGkxLCBN dWx0aVhhY3RJZCBtdWx0aTIpCiBzdGF0aWMgYm9vbAogTXVsdGlYYWN0T2Zmc2V0UHJlY2VkZXMo TXVsdGlYYWN0T2Zmc2V0IG9mZnNldDEsIE11bHRpWGFjdE9mZnNldCBvZmZzZXQyKQogewotCWlu dDMyCQlkaWZmID0gKGludDMyKSAob2Zmc2V0MSAtIG9mZnNldDIpOworCWludDY0CQlkaWZmID0g KGludDY0KSAob2Zmc2V0MSAtIG9mZnNldDIpOwogCiAJcmV0dXJuIChkaWZmIDwgMCk7CiB9CmRp ZmYgLS1naXQgYS9zcmMvYmluL3BnX3Jlc2V0d2FsL3BnX3Jlc2V0d2FsLmMgYi9zcmMvYmluL3Bn X3Jlc2V0d2FsL3BnX3Jlc2V0d2FsLmMKaW5kZXggY2E5ZjAxYzEwYi4uZTdhY2Y1NGNmMyAxMDA2 NDQKLS0tIGEvc3JjL2Jpbi9wZ19yZXNldHdhbC9wZ19yZXNldHdhbC5jCisrKyBiL3NyYy9iaW4v cGdfcmVzZXR3YWwvcGdfcmVzZXR3YWwuYwpAQCAtMjY2LDcgKzI2Niw3IEBAIG1haW4oaW50IGFy Z2MsIGNoYXIgKmFyZ3ZbXSkKIAogCQkJY2FzZSAnTyc6CiAJCQkJZXJybm8gPSAwOwotCQkJCXNl dF9teG9mZiA9IHN0cnRvdWwob3B0YXJnLCAmZW5kcHRyLCAwKTsKKwkJCQlzZXRfbXhvZmYgPSBz dHJ0b3U2NChvcHRhcmcsICZlbmRwdHIsIDApOwogCQkJCWlmIChlbmRwdHIgPT0gb3B0YXJnIHx8 ICplbmRwdHIgIT0gJ1wwJyB8fCBlcnJubyAhPSAwKQogCQkJCXsKIAkJCQkJcGdfbG9nX2Vycm9y KCJpbnZhbGlkIGFyZ3VtZW50IGZvciBvcHRpb24gJXMiLCAiLU8iKTsKZGlmZiAtLWdpdCBhL3Ny Yy9iaW4vcGdfcmVzZXR3YWwvdC8wMDFfYmFzaWMucGwgYi9zcmMvYmluL3BnX3Jlc2V0d2FsL3Qv MDAxX2Jhc2ljLnBsCmluZGV4IGQ2YmJiZDBjZWQuLmNjODllMDc2NGEgMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcGdfcmVzZXR3YWwvdC8wMDFfYmFzaWMucGwKKysrIGIvc3JjL2Jpbi9wZ19yZXNldHdh bC90LzAwMV9iYXNpYy5wbApAQCAtMjEzLDcgKzIxMyw3IEBAIHB1c2ggQGNtZCwKICAgc3ByaW50 ZigiJWQsJWQiLCBoZXgoJGZpbGVzWzBdKSA9PSAwID8gMyA6IGhleCgkZmlsZXNbMF0pLCBoZXgo JGZpbGVzWy0xXSkpOwogCiBAZmlsZXMgPSBnZXRfc2xydV9maWxlcygncGdfbXVsdGl4YWN0L29m ZnNldHMnKTsKLSRtdWx0ID0gMzIgKiAkYmxja3N6IC8gNDsKKyRtdWx0ID0gMzIgKiAkYmxja3N6 IC8gODsKICMgLS1tdWx0aXhhY3QtaWRzIGFyZ3VtZW50IGlzICJuZXcsb2xkIgogcHVzaCBAY21k LAogICAnLS1tdWx0aXhhY3QtaWRzJyA9PiBzcHJpbnRmKCIlZCwlZCIsCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9hY2Nlc3MvbXVsdGl4YWN0LmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvbXVsdGl4 YWN0LmgKaW5kZXggNGU2YjBlZWMyZi4uYjE1MTA1MzJlZSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvYWNjZXNzL211bHRpeGFjdC5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9tdWx0aXhhY3Qu aApAQCAtMjcsNyArMjcsNyBAQAogCiAjZGVmaW5lIE11bHRpWGFjdElkSXNWYWxpZChtdWx0aSkg KChtdWx0aSkgIT0gSW52YWxpZE11bHRpWGFjdElkKQogCi0jZGVmaW5lIE1heE11bHRpWGFjdE9m ZnNldAkoKE11bHRpWGFjdE9mZnNldCkgMHhGRkZGRkZGRikKKyNkZWZpbmUgTWF4TXVsdGlYYWN0 T2Zmc2V0CVVJTlQ2NENPTlNUKDB4RkZGRkZGRkZGRkZGRkZGRikKIAogLyoKICAqIFBvc3NpYmxl IG11bHRpeGFjdCBsb2NrIG1vZGVzICgic3RhdHVzIikuICBUaGUgZmlyc3QgZm91ciBtb2RlcyBh cmUgZm9yCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jLmggYi9zcmMvaW5jbHVkZS9jLmgKaW5k ZXggYTE0YzYzMTUxNi4uMzE4MTk0Zjc4ZCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYy5oCisr KyBiL3NyYy9pbmNsdWRlL2MuaApAQCAtNjE4LDcgKzYxOCw3IEBAIHR5cGVkZWYgdWludDMyIFN1 YlRyYW5zYWN0aW9uSWQ7CiAvKiBNdWx0aVhhY3RJZCBtdXN0IGJlIGVxdWl2YWxlbnQgdG8gVHJh bnNhY3Rpb25JZCwgdG8gZml0IGluIHRfeG1heCAqLwogdHlwZWRlZiBUcmFuc2FjdGlvbklkIE11 bHRpWGFjdElkOwogCi10eXBlZGVmIHVpbnQzMiBNdWx0aVhhY3RPZmZzZXQ7Cit0eXBlZGVmIHVp bnQ2NCBNdWx0aVhhY3RPZmZzZXQ7CiAKIHR5cGVkZWYgdWludDMyIENvbW1hbmRJZDsKIAotLSAK Mi40My4wCgo= --0000000000002ec161062fbef3d0 Content-Type: application/octet-stream; name="v14-0003-Make-pg_upgrade-convert-multixact-offsets.patch" Content-Disposition: attachment; filename="v14-0003-Make-pg_upgrade-convert-multixact-offsets.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m7yp1ufm2 RnJvbSBkYWZjM2FlNjBhMWY0YjNmOWYxNDFmYjMwN2JmZGU1MjBjNzdmZTMyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbSBPcmxvdiA8bS5vcmxvdkBwb3N0Z3Jlc3Byby5ydT4K RGF0ZTogVHVlLCAxMyBBdWcgMjAyNCAxNDo0NDo1MCArMDMwMApTdWJqZWN0OiBbUEFUQ0ggdjE0 IDMvN10gTWFrZSBwZ191cGdyYWRlIGNvbnZlcnQgbXVsdGl4YWN0IG9mZnNldHMuCgpBdXRob3I6 IE1heGltIE9ybG92IDxvcmxvdm1nQGdtYWlsLmNvbT4KQXV0aG9yOiBZdXJhIFNva29sb3YgPHku c29rb2xvdkBwb3N0Z3Jlc3Byby5ydT4KLS0tCiBzcmMvYmluL3BnX3VwZ3JhZGUvTWFrZWZpbGUg ICAgIHwgICAxICsKIHNyYy9iaW4vcGdfdXBncmFkZS9tZXNvbi5idWlsZCAgfCAgIDEgKwogc3Jj L2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuYyB8ICA0MiArKy0KIHNyYy9iaW4vcGdfdXBncmFk ZS9wZ191cGdyYWRlLmggfCAgMTQgKy0KIHNyYy9iaW4vcGdfdXBncmFkZS9zZWdyZXNpemUuYyAg fCA1MjcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDUgZmlsZXMgY2hhbmdlZCwg NTgwIGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj L2Jpbi9wZ191cGdyYWRlL3NlZ3Jlc2l6ZS5jCgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ191cGdy YWRlL01ha2VmaWxlIGIvc3JjL2Jpbi9wZ191cGdyYWRlL01ha2VmaWxlCmluZGV4IGY4M2QyYjVk MzAuLjcwOTA4ZDYzYTMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfdXBncmFkZS9NYWtlZmlsZQor KysgYi9zcmMvYmluL3BnX3VwZ3JhZGUvTWFrZWZpbGUKQEAgLTIxLDYgKzIxLDcgQEAgT0JKUyA9 IFwKIAlpbmZvLm8gXAogCW9wdGlvbi5vIFwKIAlwYXJhbGxlbC5vIFwKKwlzZWdyZXNpemUubyBc CiAJcGdfdXBncmFkZS5vIFwKIAlyZWxmaWxlbnVtYmVyLm8gXAogCXNlcnZlci5vIFwKZGlmZiAt LWdpdCBhL3NyYy9iaW4vcGdfdXBncmFkZS9tZXNvbi5idWlsZCBiL3NyYy9iaW4vcGdfdXBncmFk ZS9tZXNvbi5idWlsZAppbmRleCBkYTg0MzQ0OTY2Li5hMDYyMzZmMmEzIDEwMDY0NAotLS0gYS9z cmMvYmluL3BnX3VwZ3JhZGUvbWVzb24uYnVpbGQKKysrIGIvc3JjL2Jpbi9wZ191cGdyYWRlL21l c29uLmJ1aWxkCkBAIC0xMCw2ICsxMCw3IEBAIHBnX3VwZ3JhZGVfc291cmNlcyA9IGZpbGVzKAog ICAnaW5mby5jJywKICAgJ29wdGlvbi5jJywKICAgJ3BhcmFsbGVsLmMnLAorICAnc2VncmVzaXpl LmMnLAogICAncGdfdXBncmFkZS5jJywKICAgJ3JlbGZpbGVudW1iZXIuYycsCiAgICdzZXJ2ZXIu YycsCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5jIGIvc3JjL2Jp bi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuYwppbmRleCAxNzRjZDkyMDg0Li41Y2M2MjgzNDk0IDEw MDY0NAotLS0gYS9zcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5jCisrKyBiL3NyYy9iaW4v cGdfdXBncmFkZS9wZ191cGdyYWRlLmMKQEAgLTc4Myw4ICs3ODMsNDIgQEAgY29weV94YWN0X3hs b2dfeGlkKHZvaWQpCiAJaWYgKG9sZF9jbHVzdGVyLmNvbnRyb2xkYXRhLmNhdF92ZXIgPj0gTVVM VElYQUNUX0ZPUk1BVENIQU5HRV9DQVRfVkVSICYmCiAJCW5ld19jbHVzdGVyLmNvbnRyb2xkYXRh LmNhdF92ZXIgPj0gTVVMVElYQUNUX0ZPUk1BVENIQU5HRV9DQVRfVkVSKQogCXsKLQkJY29weV9z dWJkaXJfZmlsZXMoInBnX211bHRpeGFjdC9vZmZzZXRzIiwgInBnX211bHRpeGFjdC9vZmZzZXRz Iik7Ci0JCWNvcHlfc3ViZGlyX2ZpbGVzKCJwZ19tdWx0aXhhY3QvbWVtYmVycyIsICJwZ19tdWx0 aXhhY3QvbWVtYmVycyIpOworCQkvKgorCQkgKiBJZiB0aGUgb2xkIHNlcnZlciBpcyBiZWZvcmUg dGhlIE1VTFRJWEFDVE9GRlNFVF9GT1JNQVRDSEFOR0VfQ0FUX1ZFUgorCQkgKiBpdCBtdXN0IGhh dmUgMzItYml0IG11bHRpeGlkIG9mZnNldHMsIHRodXMgaXQgc2hvdWxkIGJlIGNvbnZlcnRlZC4K KwkJICovCisJCWlmIChvbGRfY2x1c3Rlci5jb250cm9sZGF0YS5jYXRfdmVyIDwgTVVMVElYQUNU T0ZGU0VUX0ZPUk1BVENIQU5HRV9DQVRfVkVSICYmCisJCQluZXdfY2x1c3Rlci5jb250cm9sZGF0 YS5jYXRfdmVyID49IE1VTFRJWEFDVE9GRlNFVF9GT1JNQVRDSEFOR0VfQ0FUX1ZFUikKKwkJewor CQkJTXVsdGlYYWN0T2Zmc2V0CQlvbGRlc3Rfb2Zmc2V0LAorCQkJCQkJCQluZXh0X29mZnNldDsK KworCQkJcmVtb3ZlX25ld19zdWJkaXIoInBnX211bHRpeGFjdC9vZmZzZXRzIiwgZmFsc2UpOwor CQkJcHJlcF9zdGF0dXMoIkNvbnZlcnRpbmcgcGdfbXVsdGl4YWN0L29mZnNldHMgdG8gNjQtYml0 Iik7CisJCQlvbGRlc3Rfb2Zmc2V0ID0gY29udmVydF9tdWx0aXhhY3Rfb2Zmc2V0cygpOworCQkJ Y2hlY2tfb2soKTsKKworCQkJcmVtb3ZlX25ld19zdWJkaXIoInBnX211bHRpeGFjdC9tZW1iZXJz IiwgZmFsc2UpOworCQkJcHJlcF9zdGF0dXMoIkNvbnZlcnRpbmcgcGdfbXVsdGl4YWN0L21lbWJl cnMiKTsKKwkJCWNvbnZlcnRfbXVsdGl4YWN0X21lbWJlcnMob2xkZXN0X29mZnNldCk7CisJCQlj aGVja19vaygpOworCisJCQluZXh0X29mZnNldCA9IG9sZF9jbHVzdGVyLmNvbnRyb2xkYXRhLmNo a3BudF9ueHRteG9mZjsKKwkJCWlmIChvbGRlc3Rfb2Zmc2V0KQorCQkJeworCQkJCWlmIChuZXh0 X29mZnNldCA8IG9sZGVzdF9vZmZzZXQpCisJCQkJCW5leHRfb2Zmc2V0ICs9ICgoTXVsdGlYYWN0 T2Zmc2V0KSAxIDw8IDMyKSAtIDE7CisKKwkJCQluZXh0X29mZnNldCAtPSBvbGRlc3Rfb2Zmc2V0 IC0gMTsKKworCQkJCW9sZF9jbHVzdGVyLmNvbnRyb2xkYXRhLmNoa3BudF9ueHRteG9mZiA9IG5l eHRfb2Zmc2V0OworCQkJfQorCQl9CisJCWVsc2UKKwkJeworCQkJY29weV9zdWJkaXJfZmlsZXMo InBnX211bHRpeGFjdC9vZmZzZXRzIiwgInBnX211bHRpeGFjdC9vZmZzZXRzIik7CisJCQljb3B5 X3N1YmRpcl9maWxlcygicGdfbXVsdGl4YWN0L21lbWJlcnMiLCAicGdfbXVsdGl4YWN0L21lbWJl cnMiKTsKKwkJfQogCiAJCXByZXBfc3RhdHVzKCJTZXR0aW5nIG5leHQgbXVsdGl4YWN0IElEIGFu ZCBvZmZzZXQgZm9yIG5ldyBjbHVzdGVyIik7CiAKQEAgLTc5Myw5ICs4MjcsOSBAQCBjb3B5X3hh Y3RfeGxvZ194aWQodm9pZCkKIAkJICogY291bnRlcnMgaGVyZSBhbmQgdGhlIG9sZGVzdCBtdWx0 aSBwcmVzZW50IG9uIHN5c3RlbS4KIAkJICovCiAJCWV4ZWNfcHJvZyhVVElMSVRZX0xPR19GSUxF LCBOVUxMLCB0cnVlLCB0cnVlLAotCQkJCSAgIlwiJXMvcGdfcmVzZXR3YWxcIiAtTyAldSAtbSAl dSwldSBcIiVzXCIiLAorCQkJCSAgIlwiJXMvcGdfcmVzZXR3YWxcIiAtTyAlbGx1IC1tICV1LCV1 IFwiJXNcIiIsCiAJCQkJICBuZXdfY2x1c3Rlci5iaW5kaXIsCi0JCQkJICBvbGRfY2x1c3Rlci5j b250cm9sZGF0YS5jaGtwbnRfbnh0bXhvZmYsCisJCQkJICAodW5zaWduZWQgbG9uZyBsb25nKSBv bGRfY2x1c3Rlci5jb250cm9sZGF0YS5jaGtwbnRfbnh0bXhvZmYsCiAJCQkJICBvbGRfY2x1c3Rl ci5jb250cm9sZGF0YS5jaGtwbnRfbnh0bXVsdGksCiAJCQkJICBvbGRfY2x1c3Rlci5jb250cm9s ZGF0YS5jaGtwbnRfb2xkc3RNdWx0aSwKIAkJCQkgIG5ld19jbHVzdGVyLnBnZGF0YSk7CmRpZmYg LS1naXQgYS9zcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5oIGIvc3JjL2Jpbi9wZ191cGdy YWRlL3BnX3VwZ3JhZGUuaAppbmRleCBmNGUzNzVkMjdjLi4xYWRlYTczYmQzIDEwMDY0NAotLS0g YS9zcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5oCisrKyBiL3NyYy9iaW4vcGdfdXBncmFk ZS9wZ191cGdyYWRlLmgKQEAgLTExNCw2ICsxMTQsMTMgQEAgZXh0ZXJuIGNoYXIgKm91dHB1dF9m aWxlc1tdOwogICovCiAjZGVmaW5lIE1VTFRJWEFDVF9GT1JNQVRDSEFOR0VfQ0FUX1ZFUiAyMDEz MDEyMzEKIAorLyoKKyAqIFN3aWN0aCBmcm9tIDMyLWJpdCB0byA2NC1iaXQgZm9yIG11bHRpeGlk IG9mZnNldHMuCisgKgorICogWFhYOiBzaG91bGQgYmUgY2hhbmdlZCB0byB0aGUgYWN0dWFsIENB VEFMT0dfVkVSU0lPTl9OTyBvbiBjb21taXQuCisgKi8KKyNkZWZpbmUgTVVMVElYQUNUT0ZGU0VU X0ZPUk1BVENIQU5HRV9DQVRfVkVSIDIwMjQwOTA0MQorCiAvKgogICogbGFyZ2Ugb2JqZWN0IGNo dW5rIHNpemUgYWRkZWQgdG8gcGdfY29udHJvbGRhdGEsCiAgKiBjb21taXQgNWY5M2MzNzgwNWU3 NDg1NDg4NDgwOTE2YjQ1ODVlMDk4ZDNjYzg4MwpAQCAtMjM1LDcgKzI0Miw3IEBAIHR5cGVkZWYg c3RydWN0CiAJdWludDMyCQljaGtwbnRfbnh0ZXBvY2g7CiAJdWludDMyCQljaGtwbnRfbnh0b2lk OwogCXVpbnQzMgkJY2hrcG50X254dG11bHRpOwotCXVpbnQzMgkJY2hrcG50X254dG14b2ZmOwor CXVpbnQ2NAkJY2hrcG50X254dG14b2ZmOwogCXVpbnQzMgkJY2hrcG50X29sZHN0TXVsdGk7CiAJ dWludDMyCQljaGtwbnRfb2xkc3R4aWQ7CiAJdWludDMyCQlhbGlnbjsKQEAgLTUyNSwzICs1MzIs OCBAQCB0eXBlZGVmIHN0cnVjdAogCUZJTEUJICAgKmZpbGU7CiAJY2hhcgkJcGF0aFtNQVhQR1BB VEhdOwogfSBVcGdyYWRlVGFza1JlcG9ydDsKKworLyogc2VncmVzaXplLmMgKi8KKworTXVsdGlY YWN0T2Zmc2V0CQljb252ZXJ0X211bHRpeGFjdF9vZmZzZXRzKHZvaWQpOwordm9pZAkJCQljb252 ZXJ0X211bHRpeGFjdF9tZW1iZXJzKE11bHRpWGFjdE9mZnNldCBvbGRlc3Rfb2Zmc2V0KTsKZGlm ZiAtLWdpdCBhL3NyYy9iaW4vcGdfdXBncmFkZS9zZWdyZXNpemUuYyBiL3NyYy9iaW4vcGdfdXBn cmFkZS9zZWdyZXNpemUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi43 MzA2NGM3N2RlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2Jpbi9wZ191cGdyYWRlL3NlZ3Jlc2l6 ZS5jCkBAIC0wLDAgKzEsNTI3IEBACisvKgorICoJc2VncmVzaXplLmMKKyAqCisgKglTTFJVIHNl Z21lbnQgcmVzaXplIHV0aWxpdHkKKyAqCisgKglDb3B5cmlnaHQgKGMpIDIwMjQsIFBvc3RncmVT UUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKglzcmMvYmluL3BnX3VwZ3JhZGUvc2VncmVz aXplLmMKKyAqLworCisjaW5jbHVkZSAicG9zdGdyZXNfZmUuaCIKKworI2luY2x1ZGUgInBnX3Vw Z3JhZGUuaCIKKyNpbmNsdWRlICJhY2Nlc3MvbXVsdGl4YWN0LmgiCisKKy8qIFNlZSBzbHJ1Lmgg Ki8KKyNkZWZpbmUgU0xSVV9QQUdFU19QRVJfU0VHTUVOVAkJMzIKKworLyoKKyAqIFNvbWUga2lu ZCBvZiBpdGVyYXRvciBhc3NvY2lhdGVkIHdpdGggYSBwYXJ0aWN1bGFyIFNMUlUgc2VnbWVudC4g IFRoZSBpZGVhIGlzCisgKiB0byBzcGVjaWZ5IHRoZSBzZWdtZW50IGFuZCBwYWdlIG51bWJlciBh bmQgdGhlbiBtb3ZlIHRocm91Z2ggdGhlIHBhZ2VzLgorICovCit0eXBlZGVmIHN0cnVjdCBTbHJ1 U2VnU3RhdGUKK3sKKwljaGFyCSAgICpkaXI7CisJY2hhcgkgICAqZm47CisJRklMRQkgICAqZmls ZTsKKwlpbnQ2NAkJc2Vnbm87CisJdWludDY0CQlwYWdlbm87CisJYm9vbAkJbGVhZGluZ19nYXA7 Cit9IFNscnVTZWdTdGF0ZTsKKworLyoKKyAqIE1pcnJvcnMgdGhlIFNscnVGaWxlTmFtZSBmcm9t IHNscnUuYworICovCitzdGF0aWMgaW5saW5lIGNoYXIgKgorU2xydUZpbGVOYW1lKFNscnVTZWdT dGF0ZSAqc3RhdGUpCit7CisJQXNzZXJ0KHN0YXRlLT5zZWdubyA+PSAwICYmIHN0YXRlLT5zZWdu byA8PSBJTlQ2NENPTlNUKDB4RkZGRkZGKSk7CisJcmV0dXJuIHBzcHJpbnRmKCIlcy8lMDRYIiwg c3RhdGUtPmRpciwgKHVuc2lnbmVkIGludCkgc3RhdGUtPnNlZ25vKTsKK30KKworLyoKKyAqIENy ZWF0ZSBuZXcgU0xSVSBzZWdtZW50IGZpbGUuCisgKi8KK3N0YXRpYyB2b2lkCitjcmVhdGVfc2Vn bWVudChTbHJ1U2VnU3RhdGUgKnN0YXRlKQoreworCUFzc2VydChzdGF0ZS0+Zm4gPT0gTlVMTCk7 CisJQXNzZXJ0KHN0YXRlLT5maWxlID09IE5VTEwpOworCisJc3RhdGUtPmZuID0gU2xydUZpbGVO YW1lKHN0YXRlKTsKKwlzdGF0ZS0+ZmlsZSA9IGZvcGVuKHN0YXRlLT5mbiwgIndiIik7CisJaWYg KCFzdGF0ZS0+ZmlsZSkKKwkJcGdfZmF0YWwoImNvdWxkIG5vdCBjcmVhdGUgZmlsZSBcIiVzXCI6 ICVtIiwgc3RhdGUtPmZuKTsKK30KKworLyoKKyAqIE9wZW4gZXhpc3RpbmcgU0xSVSBzZWdtZW50 IGZpbGUuCisgKi8KK3N0YXRpYyB2b2lkCitvcGVuX3NlZ21lbnQoU2xydVNlZ1N0YXRlICpzdGF0 ZSkKK3sKKwlBc3NlcnQoc3RhdGUtPmZuID09IE5VTEwpOworCUFzc2VydChzdGF0ZS0+ZmlsZSA9 PSBOVUxMKTsKKworCXN0YXRlLT5mbiA9IFNscnVGaWxlTmFtZShzdGF0ZSk7CisJc3RhdGUtPmZp bGUgPSBmb3BlbihzdGF0ZS0+Zm4sICJyYiIpOworCWlmICghc3RhdGUtPmZpbGUpCisJCXBnX2Zh dGFsKCJjb3VsZCBub3Qgb3BlbiBmaWxlIFwiJXNcIjogJW0iLCBzdGF0ZS0+Zm4pOworfQorCisv KgorICogQ2xvc2UgU0xSVSBzZWdtZW50IGZpbGUuCisgKi8KK3N0YXRpYyB2b2lkCitjbG9zZV9z ZWdtZW50KFNscnVTZWdTdGF0ZSAqc3RhdGUpCit7CisJaWYgKHN0YXRlLT5maWxlKQorCXsKKwkJ ZmNsb3NlKHN0YXRlLT5maWxlKTsKKwkJc3RhdGUtPmZpbGUgPSBOVUxMOworCX0KKworCWlmIChz dGF0ZS0+Zm4pCisJeworCQlwZnJlZShzdGF0ZS0+Zm4pOworCQlzdGF0ZS0+Zm4gPSBOVUxMOwor CX0KK30KKworLyoKKyAqIFJlYWQgbmV4dCBwYWdlIGZyb20gdGhlIG9sZCAzMi1iaXQgb2Zmc2V0 IHNlZ21lbnQgZmlsZS4KKyAqLworc3RhdGljIGludAorcmVhZF9vbGRfc2VnbWVudF9wYWdlKFNs cnVTZWdTdGF0ZSAqc3RhdGUsIHZvaWQgKmJ1ZiwgYm9vbCAqZW1wdHkpCit7CisJaW50CQlsZW47 CisKKwkvKiBPcGVuIG5leHQgc2VnbWVudCBmaWxlLCBpZiBuZWVkZWQuICovCisJaWYgKCFzdGF0 ZS0+Zm4pCisJeworCQlpZiAoIXN0YXRlLT5zZWdubykKKwkJCXN0YXRlLT5sZWFkaW5nX2dhcCA9 IHRydWU7CisKKwkJb3Blbl9zZWdtZW50KHN0YXRlKTsKKworCQkvKiBTZXQgcG9zaXRpb24gdG8g dGhlIG5lZWRlZCBwYWdlLiAqLworCQlpZiAoc3RhdGUtPnBhZ2VubyA+IDAgJiYKKwkJCWZzZWVr KHN0YXRlLT5maWxlLCBzdGF0ZS0+cGFnZW5vICogQkxDS1NaLCBTRUVLX1NFVCkpCisJCXsKKwkJ CWNsb3NlX3NlZ21lbnQoc3RhdGUpOworCQl9CisJfQorCisJaWYgKHN0YXRlLT5maWxlKQorCXsK KwkJLyogU2VnbWVudCBmaWxlIGRvIGV4aXN0cywgcmVhZCBwYWdlIGZyb20gaXQuICovCisJCXN0 YXRlLT5sZWFkaW5nX2dhcCA9IGZhbHNlOworCisJCWxlbiA9IGZyZWFkKGJ1Ziwgc2l6ZW9mKGNo YXIpLCBCTENLU1osIHN0YXRlLT5maWxlKTsKKworCQkvKiBBcmUgd2UgZG9uZSBvciB3YXMgdGhl cmUgYW4gZXJyb3I/ICovCisJCWlmIChsZW4gPD0gMCkKKwkJeworCQkJaWYgKGZlcnJvcihzdGF0 ZS0+ZmlsZSkpCisJCQkJcGdfZmF0YWwoImVycm9yIHJlYWRpbmcgZmlsZSBcIiVzXCI6ICVtIiwg c3RhdGUtPmZuKTsKKworCQkJaWYgKGZlb2Yoc3RhdGUtPmZpbGUpKQorCQkJeworCQkJCSplbXB0 eSA9IHRydWU7CisJCQkJbGVuID0gLTE7CisKKwkJCQljbG9zZV9zZWdtZW50KHN0YXRlKTsKKwkJ CX0KKwkJfQorCQllbHNlCisJCQkqZW1wdHkgPSBmYWxzZTsKKwl9CisJZWxzZSBpZiAoIXN0YXRl LT5sZWFkaW5nX2dhcCkKKwl7CisJCS8qIFdlIHJlYWNoZWQgdGhlIGxhc3Qgc2VnbWVudC4gKi8K KwkJbGVuID0gLTE7CisJCSplbXB0eSA9IHRydWU7CisJfQorCWVsc2UKKwl7CisJCS8qIFNraXAg ZmV3IGZpcnN0IHNlZ21lbnRzIGlmIHRoZXkgd2VyZSBmcm96ZW4gYW5kIHJlbW92ZWQuICovCisJ CWxlbiA9IEJMQ0tTWjsKKwkJKmVtcHR5ID0gdHJ1ZTsKKwl9CisKKwlpZiAoKytzdGF0ZS0+cGFn ZW5vID49IFNMUlVfUEFHRVNfUEVSX1NFR01FTlQpCisJeworCQkvKiBTdGFydCBhIG5ldyBzZWdt ZW50LiAqLworCQlzdGF0ZS0+c2Vnbm8rKzsKKwkJc3RhdGUtPnBhZ2VubyA9IDA7CisKKwkJY2xv c2Vfc2VnbWVudChzdGF0ZSk7CisJfQorCisJcmV0dXJuIGxlbjsKK30KKworLyoKKyAqIFdyaXRl IG5leHQgcGFnZSB0byB0aGUgbmV3IDY0LWJpdCBvZmZzZXQgc2VnbWVudCBmaWxlLgorICovCitz dGF0aWMgdm9pZAord3JpdGVfbmV3X3NlZ21lbnRfcGFnZShTbHJ1U2VnU3RhdGUgKnN0YXRlLCB2 b2lkICpidWYpCit7CisJLyoKKwkgKiBDcmVhdGUgYSBuZXcgc2VnbWVudCBmaWxlIGlmIHdlIHN0 aWxsIGRpZG4ndC4gIENyZWF0aW9uIGlzCisJICogcG9zdHBvbmVkIHVudGlsIHRoZSBmaXJzdCBu b24tZW1wdHkgcGFnZSBpcyBmb3VuZC4gIFRoaXMgaGVscHMKKwkgKiBub3QgdG8gY3JlYXRlIGNv bXBsZXRlbHkgZW1wdHkgc2VnbWVudHMuCisJICovCisJaWYgKCFzdGF0ZS0+ZmlsZSkKKwl7CisJ CWNyZWF0ZV9zZWdtZW50KHN0YXRlKTsKKworCQkvKiBXcml0ZSB6ZXJvZXMgdG8gdGhlIHByZXZp b3VzbHkgc2tpcHBlZCBwcmVmaXguICovCisJCWlmIChzdGF0ZS0+cGFnZW5vID4gMCkKKwkJewor CQkJY2hhcgkJemVyb2J1ZltCTENLU1pdID0gezB9OworCisJCQlmb3IgKGludDY0IGkgPSAwOyBp IDwgc3RhdGUtPnBhZ2VubzsgaSsrKQorCQkJeworCQkJCWlmIChmd3JpdGUoemVyb2J1Ziwgc2l6 ZW9mKGNoYXIpLCBCTENLU1osIHN0YXRlLT5maWxlKSAhPSBCTENLU1opCisJCQkJCXBnX2ZhdGFs KCJjb3VsZCBub3Qgd3JpdGUgZmlsZSBcIiVzXCI6ICVtIiwgc3RhdGUtPmZuKTsKKwkJCX0KKwkJ fQorCX0KKworCS8qIFdyaXRlIHBhZ2UgdG8gdGhlIG5ldyBzZWdtZW50IChpZiBpdCB3YXMgY3Jl YXRlZCkuICovCisJaWYgKHN0YXRlLT5maWxlKQorCXsKKwkJaWYgKGZ3cml0ZShidWYsIHNpemVv ZihjaGFyKSwgQkxDS1NaLCBzdGF0ZS0+ZmlsZSkgIT0gQkxDS1NaKQorCQkJcGdfZmF0YWwoImNv dWxkIG5vdCB3cml0ZSBmaWxlIFwiJXNcIjogJW0iLCBzdGF0ZS0+Zm4pOworCX0KKworCS8qCisJ ICogRGlkIHdlIHJlYWNoIHRoZSBtYXhpbXVtIHBhZ2UgbnVtYmVyPyAgVGhlbiBjbG9zZSBzZWdt ZW50IGZpbGUKKwkgKiBhbmQgY3JlYXRlIGEgbmV3IG9uZSBvbiB0aGUgbmV4dCBpdGVyYXRpb24u CisJICovCisJaWYgKCsrc3RhdGUtPnBhZ2VubyA+PSBTTFJVX1BBR0VTX1BFUl9TRUdNRU5UKQor CXsKKwkJLyogU3RhcnQgYSBuZXcgc2VnbWVudC4gKi8KKwkJc3RhdGUtPnNlZ25vKys7CisJCXN0 YXRlLT5wYWdlbm8gPSAwOworCisJCWNsb3NlX3NlZ21lbnQoc3RhdGUpOworCX0KK30KKwordHlw ZWRlZiB1aW50MzIgTXVsdGlYYWN0T2Zmc2V0T2xkOworCisjZGVmaW5lIE1heE11bHRpWGFjdE9m ZnNldE9sZAkoKE11bHRpWGFjdE9mZnNldE9sZCkgMHhGRkZGRkZGRikKKworI2RlZmluZSBNVUxU SVhBQ1RfT0ZGU0VUU19QRVJfUEFHRV9PTEQgKEJMQ0tTWiAvIHNpemVvZihNdWx0aVhhY3RPZmZz ZXRPbGQpKQorI2RlZmluZSBNVUxUSVhBQ1RfT0ZGU0VUU19QRVJfUEFHRV9ORVcgKEJMQ0tTWiAv IHNpemVvZihNdWx0aVhhY3RPZmZzZXQpKQorCisvKgorICogQ29udmVydCBwZ19tdWx0aXhhY3Qv b2Zmc2V0cyBzZWdtZW50cyBhbmQgcmV0dXJuIG9sZGVzdCBtdWx0aSBvZmZzZXQuCisgKi8KK011 bHRpWGFjdE9mZnNldAorY29udmVydF9tdWx0aXhhY3Rfb2Zmc2V0cyh2b2lkKQoreworCVNscnVT ZWdTdGF0ZQkJb2xkc2VnID0gezB9LAorCQkJCQkJbmV3c2VnID0gezB9OworCU11bHRpWGFjdE9m ZnNldE9sZAlvbGRidWZbTVVMVElYQUNUX09GRlNFVFNfUEVSX1BBR0VfT0xEXSA9IHswfTsKKwlN dWx0aVhhY3RPZmZzZXQJCW5ld2J1ZltNVUxUSVhBQ1RfT0ZGU0VUU19QRVJfUEFHRV9ORVddID0g ezB9LAorCQkJCQkJb2xkZXN0X29mZnNldCA9IDA7CisJdWludDY0CQkJCW9sZGVzdF9tdWx0aSA9 IG9sZF9jbHVzdGVyLmNvbnRyb2xkYXRhLmNoa3BudF9vbGRzdE11bHRpLAorCQkJCQkJbmV4dF9t dWx0aSA9IG9sZF9jbHVzdGVyLmNvbnRyb2xkYXRhLmNoa3BudF9ueHRtdWx0aSwKKwkJCQkJCW11 bHRpLAorCQkJCQkJb2xkX2VudHJ5LAorCQkJCQkJbmV3X2VudHJ5OworCWJvb2wJCQkJb2xkZXN0 X29mZnNldF9rbm93biA9IGZhbHNlOworCisJb2xkc2VnLmRpciA9IHBzcHJpbnRmKCIlcy9wZ19t dWx0aXhhY3Qvb2Zmc2V0cyIsIG9sZF9jbHVzdGVyLnBnZGF0YSk7CisJbmV3c2VnLmRpciA9IHBz cHJpbnRmKCIlcy9wZ19tdWx0aXhhY3Qvb2Zmc2V0cyIsIG5ld19jbHVzdGVyLnBnZGF0YSk7CisK KwlvbGRfZW50cnkgPSBvbGRlc3RfbXVsdGkgJSBNVUxUSVhBQ1RfT0ZGU0VUU19QRVJfUEFHRV9P TEQ7CisJb2xkc2VnLnBhZ2VubyA9IG9sZGVzdF9tdWx0aSAvIE1VTFRJWEFDVF9PRkZTRVRTX1BF Ul9QQUdFX09MRDsKKwlvbGRzZWcuc2Vnbm8gPSBvbGRzZWcucGFnZW5vIC8gU0xSVV9QQUdFU19Q RVJfU0VHTUVOVDsKKwlvbGRzZWcucGFnZW5vICU9IFNMUlVfUEFHRVNfUEVSX1NFR01FTlQ7CisK KwluZXdfZW50cnkgPSBvbGRlc3RfbXVsdGkgJSBNVUxUSVhBQ1RfT0ZGU0VUU19QRVJfUEFHRV9O RVc7CisJbmV3c2VnLnBhZ2VubyA9IG9sZGVzdF9tdWx0aSAvIE1VTFRJWEFDVF9PRkZTRVRTX1BF Ul9QQUdFX05FVzsKKwluZXdzZWcuc2Vnbm8gPSBuZXdzZWcucGFnZW5vIC8gU0xSVV9QQUdFU19Q RVJfU0VHTUVOVDsKKwluZXdzZWcucGFnZW5vICU9IFNMUlVfUEFHRVNfUEVSX1NFR01FTlQ7CisK KwlpZiAobmV4dF9tdWx0aSA8IG9sZGVzdF9tdWx0aSkKKwkJbmV4dF9tdWx0aSArPSAodWludDY0 KSAxIDw8IDMyOwkvKiB3cmFwYXJvdW5kICovCisKKwkvKiBDb3B5IG11bHRpIG9mZnNldHMgcmVh ZGluZyBvbmx5IG5lZWRlZCBzZWdtZW50IHBhZ2VzICovCisJZm9yIChtdWx0aSA9IG9sZGVzdF9t dWx0aTsgbXVsdGkgPCBuZXh0X211bHRpOyBvbGRfZW50cnkgPSAwKQorCXsKKwkJaW50CQlvbGRs ZW47CisJCWJvb2wJZW1wdHk7CisKKwkJLyogSGFuZGxlIHBvc3NpYmxlIHNlZ21lbnQgd3JhcGFy b3VuZCAqLworI2RlZmluZSBPTERfT0ZGU0VUX1NFR05PX01BWAlcCisJKE1heE11bHRpWGFjdElk IC8gTVVMVElYQUNUX09GRlNFVFNfUEVSX1BBR0VfT0xEIC8gU0xSVV9QQUdFU19QRVJfU0VHTUVO VCkKKwkJaWYgKG9sZHNlZy5zZWdubyA+IE9MRF9PRkZTRVRfU0VHTk9fTUFYKQorCQl7CisJCQlv bGRzZWcuc2Vnbm8gPSAwOworCQkJb2xkc2VnLnBhZ2VubyA9IDA7CisJCX0KKworCQlvbGRsZW4g PSByZWFkX29sZF9zZWdtZW50X3BhZ2UoJm9sZHNlZywgb2xkYnVmLCAmZW1wdHkpOworCQlpZiAo ZW1wdHkgfHwgb2xkbGVuICE9IEJMQ0tTWikKKwkJCXBnX2ZhdGFsKCJjYW5ub3QgcmVhZCBwYWdl ICVsbHUgZnJvbSBmaWxlIFwiJXNcIjogJW0iLAorCQkJCQkgKHVuc2lnbmVkIGxvbmcgbG9uZykg b2xkc2VnLnBhZ2Vubywgb2xkc2VnLmZuKTsKKworCQkvKiBTYXZlIG9sZGVzdCBtdWx0aSBvZmZz ZXQgKi8KKwkJaWYgKCFvbGRlc3Rfb2Zmc2V0X2tub3duKQorCQl7CisJCQlvbGRlc3Rfb2Zmc2V0 ID0gb2xkYnVmW29sZF9lbnRyeV07CisJCQlvbGRlc3Rfb2Zmc2V0X2tub3duID0gdHJ1ZTsKKwkJ fQorCisJCS8qIFNraXAgd3JhcHBlZC1hcm91bmQgaW52YWxpZCBNdWx0aVhhY3RJZHMgKi8KKwkJ aWYgKG11bHRpID09ICh1aW50NjQpIDEgPDwgMzIpCisJCXsKKwkJCUFzc2VydChvbGRzZWcuc2Vn bm8gPT0gMCk7CisJCQlBc3NlcnQob2xkc2VnLnBhZ2VubyA9PSAxKTsKKwkJCUFzc2VydChvbGRf ZW50cnkgPT0gMCk7CisJCQlBc3NlcnQobmV3X2VudHJ5ID09IDApOworCisJCQltdWx0aSArPSBG aXJzdE11bHRpWGFjdElkOworCQkJb2xkX2VudHJ5ID0gRmlyc3RNdWx0aVhhY3RJZDsKKwkJCW5l d19lbnRyeSA9IEZpcnN0TXVsdGlYYWN0SWQ7CisJCX0KKworCQkvKiBDb3B5IGVudHJpZXMgdG8g dGhlIG5ldyBwYWdlICovCisJCWZvciAoOyBtdWx0aSA8IG5leHRfbXVsdGkgJiYgb2xkX2VudHJ5 IDwgTVVMVElYQUNUX09GRlNFVFNfUEVSX1BBR0VfT0xEOworCQkJIG11bHRpKyssIG9sZF9lbnRy eSsrKQorCQl7CisJCQlNdWx0aVhhY3RPZmZzZXQgb2Zmc2V0ID0gb2xkYnVmW29sZF9lbnRyeV07 CisKKwkJCS8qIEhhbmRsZSBwb3NzaWJsZSBvZmZzZXQgd3JhcGFyb3VuZCAoMSBiZWNvbWVzIDJe MzIpICovCisJCQlpZiAob2Zmc2V0IDwgb2xkZXN0X29mZnNldCkKKwkJCQlvZmZzZXQgKz0gKCh1 aW50NjQpIDEgPDwgMzIpIC0gMTsKKworCQkJLyogU3VidHJhY3Qgb2xkZXN0X29mZnNldCwgc28g bmV3IG9mZnNldHMgd2lsbCBzdGFydCBmcm9tIDEgKi8KKwkJCW5ld2J1ZltuZXdfZW50cnkrK10g PSBvZmZzZXQgLSBvbGRlc3Rfb2Zmc2V0ICsgMTsKKworCQkJaWYgKG5ld19lbnRyeSA+PSBNVUxU SVhBQ1RfT0ZGU0VUU19QRVJfUEFHRV9ORVcpCisJCQl7CisJCQkJLyogSGFuZGxlIHBvc3NpYmxl IHNlZ21lbnQgd3JhcGFyb3VuZCAqLworI2RlZmluZSBORVdfT0ZGU0VUX1NFR05PX01BWAlcCisJ KE1heE11bHRpWGFjdElkIC8gTVVMVElYQUNUX09GRlNFVFNfUEVSX1BBR0VfTkVXIC8gU0xSVV9Q QUdFU19QRVJfU0VHTUVOVCkKKwkJCQlpZiAobmV3c2VnLnNlZ25vID4gTkVXX09GRlNFVF9TRUdO T19NQVgpCisJCQkJeworCQkJCQluZXdzZWcuc2Vnbm8gPSAwOworCQkJCQluZXdzZWcucGFnZW5v ID0gMDsKKwkJCQl9CisKKwkJCQkvKiBXcml0ZSBuZXcgcGFnZSAqLworCQkJCXdyaXRlX25ld19z ZWdtZW50X3BhZ2UoJm5ld3NlZywgbmV3YnVmKTsKKwkJCQluZXdfZW50cnkgPSAwOworCQkJfQor CQl9CisJfQorCisJLyogV3JpdGUgdGhlIGxhc3QgaW5jb21wbGV0ZSBwYWdlICovCisJaWYgKG5l d19lbnRyeSA+IDAgfHwgb2xkZXN0X211bHRpID09IG5leHRfbXVsdGkpCisJeworCQltZW1zZXQo Jm5ld2J1ZltuZXdfZW50cnldLCAwLAorCQkJICAgc2l6ZW9mKG5ld2J1ZlswXSkgKiAoTVVMVElY QUNUX09GRlNFVFNfUEVSX1BBR0VfTkVXIC0gbmV3X2VudHJ5KSk7CisJCXdyaXRlX25ld19zZWdt ZW50X3BhZ2UoJm5ld3NlZywgbmV3YnVmKTsKKwl9CisKKwkvKiBVc2UgbmV4dF9vZmZzZXQgYXMg b2xkZXN0X29mZnNldCwgaWYgb2xkZXN0X211bHRpID09IG5leHRfbXVsdGkgKi8KKwlpZiAoIW9s ZGVzdF9vZmZzZXRfa25vd24pCisJeworCQlBc3NlcnQob2xkZXN0X211bHRpID09IG5leHRfbXVs dGkpOworCQlvbGRlc3Rfb2Zmc2V0ID0gKE11bHRpWGFjdE9mZnNldCkgb2xkX2NsdXN0ZXIuY29u dHJvbGRhdGEuY2hrcG50X254dG14b2ZmOworCX0KKworCS8qIFJlbGVhc2UgcmVzb3VyY2VzICov CisJY2xvc2Vfc2VnbWVudCgmb2xkc2VnKTsKKwljbG9zZV9zZWdtZW50KCZuZXdzZWcpOworCisJ cGZyZWUob2xkc2VnLmRpcik7CisJcGZyZWUobmV3c2VnLmRpcik7CisKKwlyZXR1cm4gb2xkZXN0 X29mZnNldDsKK30KKworI2RlZmluZSBNWEFDVF9NRU1CRVJTX0ZMQUdfQllURVMJCQkxCisKKyNk ZWZpbmUgTVVMVElYQUNUX01FTUJFUlNfUEVSX0dST1VQCQkJNAorI2RlZmluZSBNVUxUSVhBQ1Rf TUVNQkVSR1JPVVBfU0laRQkJCVwKKwkoTVVMVElYQUNUX01FTUJFUlNfUEVSX0dST1VQICogKHNp emVvZihUcmFuc2FjdGlvbklkKSArIE1YQUNUX01FTUJFUlNfRkxBR19CWVRFUykpCisjZGVmaW5l IE1VTFRJWEFDVF9NRU1CRVJHUk9VUFNfUEVSX1BBR0UJCVwKKwkoQkxDS1NaIC8gTVVMVElYQUNU X01FTUJFUkdST1VQX1NJWkUpCisKKyNkZWZpbmUgTVVMVElYQUNUX01FTUJFUlNfUEVSX1BBR0UJ CQkJXAorCShNVUxUSVhBQ1RfTUVNQkVSU19QRVJfR1JPVVAgKiBNVUxUSVhBQ1RfTUVNQkVSR1JP VVBTX1BFUl9QQUdFKQorI2RlZmluZSBNVUxUSVhBQ1RfTUVNQkVSX0ZMQUdfQllURVNfUEVSX0dS T1VQCVwKKwkoTVhBQ1RfTUVNQkVSU19GTEFHX0JZVEVTICogTVVMVElYQUNUX01FTUJFUlNfUEVS X0dST1VQKQorCit0eXBlZGVmIHN0cnVjdCBNdWx0aVhhY3RNZW1iZXJzQ3R4Cit7CisJU2xydVNl Z1N0YXRlCXNlZzsKKwljaGFyCQkJYnVmW0JMQ0tTWl07CisJaW50CQkJCWdyb3VwOworCWludAkJ CQltZW1iZXI7CisJY2hhcgkJICAgKmZsYWc7CisJVHJhbnNhY3Rpb25JZCAgKnhpZDsKK30gTXVs dGlYYWN0TWVtYmVyc0N0eDsKKworc3RhdGljIHZvaWQKK011bHRpWGFjdE1lbWJlcnNDdHhJbml0 KE11bHRpWGFjdE1lbWJlcnNDdHggKmN0eCkKK3sKKwljdHgtPnNlZy5kaXIgPSBwc3ByaW50Zigi JXMvcGdfbXVsdGl4YWN0L21lbWJlcnMiLCBuZXdfY2x1c3Rlci5wZ2RhdGEpOworCisJY3R4LT5n cm91cCA9IDA7CisJY3R4LT5tZW1iZXIgPSAxOwkJLyogc2tpcCBpbnZhbGlkIHplcm8gb2Zmc2V0 ICovCisKKwljdHgtPmZsYWcgPSAoY2hhciAqKSBjdHgtPmJ1ZiArIGN0eC0+Z3JvdXAgKiBNVUxU SVhBQ1RfTUVNQkVSR1JPVVBfU0laRTsKKwljdHgtPnhpZCA9IChUcmFuc2FjdGlvbklkICopKGN0 eC0+ZmxhZyArIE1YQUNUX01FTUJFUlNfRkxBR19CWVRFUyAqIE1VTFRJWEFDVF9NRU1CRVJTX1BF Ul9HUk9VUCk7CisKKwljdHgtPmZsYWcgKz0gY3R4LT5tZW1iZXI7CisJY3R4LT54aWQgKz0gY3R4 LT5tZW1iZXI7Cit9CisKK3N0YXRpYyB2b2lkCitNdWx0aVhhY3RNZW1iZXJzQ3R4QWRkKE11bHRp WGFjdE1lbWJlcnNDdHggKmN0eCwgY2hhciBmbGFnLCBUcmFuc2FjdGlvbklkIHhpZCkKK3sKKwkv KiBDb3B5IG1lbWJlcidzIHhpZCBhbmQgZmxhZ3MgdG8gdGhlIG5ldyBwYWdlICovCisJKmN0eC0+ ZmxhZysrID0gZmxhZzsKKwkqY3R4LT54aWQrKyA9IHhpZDsKKworCWlmICgrK2N0eC0+bWVtYmVy IDwgTVVMVElYQUNUX01FTUJFUlNfUEVSX0dST1VQKQorCQlyZXR1cm47CisKKwkvKiBTdGFydCBu ZXh0IG1lbWJlciBncm91cCAqLworCWN0eC0+bWVtYmVyID0gMDsKKworCWlmICgrK2N0eC0+Z3Jv dXAgPj0gTVVMVElYQUNUX01FTUJFUkdST1VQU19QRVJfUEFHRSkKKwl7CisJCS8qIFdyaXRlIGN1 cnJlbnQgcGFnZSBhbmQgc3RhcnQgbmV3ICovCisJCXdyaXRlX25ld19zZWdtZW50X3BhZ2UoJmN0 eC0+c2VnLCBjdHgtPmJ1Zik7CisKKwkJY3R4LT5ncm91cCA9IDA7CisJCW1lbXNldChjdHgtPmJ1 ZiwgMCwgQkxDS1NaKTsKKwl9CisKKwljdHgtPmZsYWcgPSAoY2hhciAqKSBjdHgtPmJ1ZiArIGN0 eC0+Z3JvdXAgKiBNVUxUSVhBQ1RfTUVNQkVSR1JPVVBfU0laRTsKKwljdHgtPnhpZCA9IChUcmFu c2FjdGlvbklkICopKGN0eC0+ZmxhZyArIE1YQUNUX01FTUJFUlNfRkxBR19CWVRFUyAqIE1VTFRJ WEFDVF9NRU1CRVJTX1BFUl9HUk9VUCk7Cit9CisKK3N0YXRpYyB2b2lkCitNdWx0aVhhY3RNZW1i ZXJzQ3R4RmluaXQoTXVsdGlYYWN0TWVtYmVyc0N0eCAqY3R4KQoreworCWlmIChjdHgtPmZsYWcg PiAoY2hhciAqKSBjdHgtPmJ1ZikKKwkJd3JpdGVfbmV3X3NlZ21lbnRfcGFnZSgmY3R4LT5zZWcs IGN0eC0+YnVmKTsKKworCWNsb3NlX3NlZ21lbnQoJmN0eC0+c2VnKTsKKworCXBmcmVlKGN0eC0+ c2VnLmRpcik7Cit9CisKKy8qCisgKiBDb252ZXJ0IHBnX211bHRpeGFjdC9tZW1iZXJzIHNlZ21l bnRzLCBvZmZzZXRzIHdpbGwgc3RhcnQgZnJvbSAxLgorICoKKyAqLwordm9pZAorY29udmVydF9t dWx0aXhhY3RfbWVtYmVycyhNdWx0aVhhY3RPZmZzZXQgb2xkZXN0X29mZnNldCkKK3sKKwlNdWx0 aVhhY3RPZmZzZXQJCQluZXh0X29mZnNldCwKKwkJCQkJCQlvZmZzZXQ7CisJU2xydVNlZ1N0YXRl CQkJb2xkc2VnID0gezB9OworCWNoYXIJCQkJCW9sZGJ1ZltCTENLU1pdID0gezB9OworCWludAkJ CQkJCW9sZGlkeDsKKwlNdWx0aVhhY3RNZW1iZXJzQ3R4CQluZXdjdHggPSB7MH07CisKKwlvbGRz ZWcuZGlyID0gcHNwcmludGYoIiVzL3BnX211bHRpeGFjdC9tZW1iZXJzIiwgb2xkX2NsdXN0ZXIu cGdkYXRhKTsKKworCW5leHRfb2Zmc2V0ID0gKE11bHRpWGFjdE9mZnNldCkgb2xkX2NsdXN0ZXIu Y29udHJvbGRhdGEuY2hrcG50X254dG14b2ZmOworCWlmIChuZXh0X29mZnNldCA8IG9sZGVzdF9v ZmZzZXQpCisJCW5leHRfb2Zmc2V0ICs9ICgodWludDY0KSAxIDw8IDMyKSAtIDE7CisKKwkvKiBJ bml0aWFsaXplIHRoZSBvbGQgc3RhcnRpbmcgcG9zaXRpb24gKi8KKwlvbGRzZWcucGFnZW5vID0g b2xkZXN0X29mZnNldCAvIE1VTFRJWEFDVF9NRU1CRVJTX1BFUl9QQUdFOworCW9sZHNlZy5zZWdu byA9IG9sZHNlZy5wYWdlbm8gLyBTTFJVX1BBR0VTX1BFUl9TRUdNRU5UOworCW9sZHNlZy5wYWdl bm8gJT0gU0xSVV9QQUdFU19QRVJfU0VHTUVOVDsKKworCS8qIEluaXRpYWxpemUgbmV3IHN0YXJ0 aW5nIHBvc2l0aW9uICovCisJTXVsdGlYYWN0TWVtYmVyc0N0eEluaXQoJm5ld2N0eCk7CisKKwkv KiBJdGVyYXRlIHRocm91Z2ggdGhlIG9yaWdpbmFsIGRpcmVjdG9yeSAqLworCW9sZGlkeCA9IG9s ZGVzdF9vZmZzZXQgJSBNVUxUSVhBQ1RfTUVNQkVSU19QRVJfUEFHRTsKKwlmb3IgKG9mZnNldCA9 IG9sZGVzdF9vZmZzZXQ7IG9mZnNldCA8IG5leHRfb2Zmc2V0OykKKwl7CisJCWJvb2wJZW1wdHk7 CisJCWludAkJb2xkbGVuOworCQlpbnQJCW5ncm91cHM7CisJCWludAkJb2xkZ3JvdXA7CisJCWlu dAkJb2xkbWVtYmVyOworCisJCW9sZGxlbiA9IHJlYWRfb2xkX3NlZ21lbnRfcGFnZSgmb2xkc2Vn LCBvbGRidWYsICZlbXB0eSk7CisJCWlmIChlbXB0eSB8fCBvbGRsZW4gIT0gQkxDS1NaKQorCQkJ cGdfZmF0YWwoImNhbm5vdCByZWFkIHBhZ2UgJWxsdSBmcm9tIGZpbGUgXCIlc1wiOiAlbSIsCisJ CQkJCSAodW5zaWduZWQgbG9uZyBsb25nKSBvbGRzZWcucGFnZW5vLCBvbGRzZWcuZm4pOworCisJ CS8qIEl0ZXJhdGUgdGhyb3VnaCB0aGUgb2xkIG1lbWJlciBncm91cHMgKi8KKwkJbmdyb3VwcyA9 IG9sZGxlbiAvIE1VTFRJWEFDVF9NRU1CRVJHUk9VUF9TSVpFOworCQlvbGRtZW1iZXIgPSBvbGRp ZHggJSBNVUxUSVhBQ1RfTUVNQkVSU19QRVJfR1JPVVA7CisJCW9sZGdyb3VwID0gb2xkaWR4IC8g TVVMVElYQUNUX01FTUJFUlNfUEVSX0dST1VQOworCQl3aGlsZSAob2xkZ3JvdXAgPCBuZ3JvdXBz ICYmIG9mZnNldCA8IG5leHRfb2Zmc2V0KQorCQl7CisJCQljaGFyCQkgICAqb2xkZmxhZzsKKwkJ CVRyYW5zYWN0aW9uSWQgICpvbGR4aWQ7CisJCQlpbnQJCQkJaTsKKworCQkJb2xkZmxhZyA9IChj aGFyICopIG9sZGJ1ZiArIG9sZGdyb3VwICogTVVMVElYQUNUX01FTUJFUkdST1VQX1NJWkU7CisJ CQlvbGR4aWQgPSAoVHJhbnNhY3Rpb25JZCAqKShvbGRmbGFnICsgTVVMVElYQUNUX01FTUJFUl9G TEFHX0JZVEVTX1BFUl9HUk9VUCk7CisKKwkJCW9sZHhpZCArPSBvbGRtZW1iZXI7CisJCQlvbGRm bGFnICs9IG9sZG1lbWJlcjsKKworCQkJLyogSXRlcmF0ZSB0aHJvdWdoIHRoZSBvbGQgbWVtYmVy cyAqLworCQkJZm9yIChpID0gb2xkbWVtYmVyOworCQkJCSBpIDwgTVVMVElYQUNUX01FTUJFUlNf UEVSX0dST1VQICYmIG9mZnNldCA8IG5leHRfb2Zmc2V0OworCQkJCSBpKyspCisJCQl7CisJCQkJ TXVsdGlYYWN0TWVtYmVyc0N0eEFkZCgmbmV3Y3R4LCAqb2xkZmxhZysrLCAqb2xkeGlkKyspOwor CisJCQkJaWYgKCsrb2Zmc2V0ID09ICh1aW50NjQpIDEgPDwgMzIpCisJCQkJeworCQkJCQlBc3Nl cnQoaSA9PSBNYXhNdWx0aVhhY3RPZmZzZXRPbGQgJSBNVUxUSVhBQ1RfTUVNQkVSU19QRVJfR1JP VVApOworCQkJCQlnb3RvIHdyYXBhcm91bmQ7CisJCQkJfQorCQkJfQorCisJCQlvbGRncm91cCsr OworCQkJb2xkbWVtYmVyID0gMDsKKwkJfQorCisJCW9sZGlkeCA9IDA7CisKKwkJY29udGludWU7 CisKK3dyYXBhcm91bmQ6CisjZGVmaW5lIFNFR05PX01BWAlNYXhNdWx0aVhhY3RPZmZzZXRPbGQg LyBNVUxUSVhBQ1RfTUVNQkVSU19QRVJfUEFHRSAvIFNMUlVfUEFHRVNfUEVSX1NFR01FTlQKKyNk ZWZpbmUgUEFHRU5PX01BWAlNYXhNdWx0aVhhY3RPZmZzZXRPbGQgLyBNVUxUSVhBQ1RfTUVNQkVS U19QRVJfUEFHRSAlIFNMUlVfUEFHRVNfUEVSX1NFR01FTlQKKwkJQXNzZXJ0KChvbGRzZWcuc2Vn bm8gPT0gU0VHTk9fTUFYICYmIG9sZHNlZy5wYWdlbm8gPT0gUEFHRU5PX01BWCArIDEpIHx8CisJ CQkgICAob2xkc2VnLnNlZ25vID09IFNFR05PX01BWCArIDEgJiYgb2xkc2VnLnBhZ2VubyA9PSAw KSk7CisKKwkJLyogU3dpdGNoIHRvIHNlZ21lbnQgMDAwMCAqLworCQljbG9zZV9zZWdtZW50KCZv bGRzZWcpOworCQlvbGRzZWcuc2Vnbm8gPSAwOworCQlvbGRzZWcucGFnZW5vID0gMDsKKworCQkv KiBza2lwIGludmFsaWQgemVybyBtdWx0aSBvZmZzZXQgKi8KKwkJb2xkaWR4ID0gMTsKKwl9CisK KwlNdWx0aVhhY3RNZW1iZXJzQ3R4RmluaXQoJm5ld2N0eCk7CisKKwkvKiBSZWxlYXNlIHJlc291 cmNlcyAqLworCWNsb3NlX3NlZ21lbnQoJm9sZHNlZyk7CisKKwlwZnJlZShvbGRzZWcuZGlyKTsK K30KLS0gCjIuNDMuMAoK --0000000000002ec161062fbef3d0 Content-Type: text/plain; charset="US-ASCII"; name="v14-0006-TEST-add-src-bin-pg_upgrade-t-006_offset.pl.patch.txt" Content-Disposition: attachment; filename="v14-0006-TEST-add-src-bin-pg_upgrade-t-006_offset.pl.patch.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m7yp1ufv5 RnJvbSAzMjU2MTJmYzYxYTVmNDcyOGI2MjA3MDE2OWViMmRkMDEzYmFhMTE5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbSBPcmxvdiA8b3Jsb3ZtZ0BnbWFpbC5jb20+CkRhdGU6 IFR1ZSwgMTkgTm92IDIwMjQgMTc6MDg6MTAgKzAzMDAKU3ViamVjdDogW1BBVENIIHYxNCA2Lzdd IFRFU1Q6IGFkZCBzcmMvYmluL3BnX3VwZ3JhZGUvdC8wMDZfb2Zmc2V0LnBsCgotLS0KIHNyYy9i aW4vcGdfdXBncmFkZS90LzAwNl9vZmZzZXQucGwgfCA1NjIgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCA1NjIgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyYy9iaW4vcGdfdXBncmFkZS90LzAwNl9vZmZzZXQucGwKCmRpZmYgLS1naXQgYS9z cmMvYmluL3BnX3VwZ3JhZGUvdC8wMDZfb2Zmc2V0LnBsIGIvc3JjL2Jpbi9wZ191cGdyYWRlL3Qv MDA2X29mZnNldC5wbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5mNWRj NzMzYTMwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2Jpbi9wZ191cGdyYWRlL3QvMDA2X29mZnNl dC5wbApAQCAtMCwwICsxLDU2MiBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMjQsIFBvc3RncmVTUUwg R2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisKK3VzZSBzdHJpY3Q7Cit1c2Ugd2FybmluZ3MgRkFU QUwgPT4gJ2FsbCc7CisKK3VzZSBGaWxlOjpGaW5kIHF3KGZpbmQpOworCit1c2UgUG9zdGdyZVNR TDo6VGVzdDo6Q2x1c3RlcjsKK3VzZSBQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczsKK3VzZSBUZXN0 OjpNb3JlOworCisjIFRoaXMgcGFpciBvZiBjYWxscyB3aWxsIGNyZWF0ZSBzaWduaWZpY2FudGx5 IG1vcmUgbWVtYmVyIHNlZ21lbnRzIHRoYW4gb2Zmc2V0CisjIHNlZ21lbnRzLgorc3ViIHByZXAK K3sKKwlteSAkbm9kZSA9IHNoaWZ0OworCW15ICR0YmwgPSBzaGlmdDsKKworCSRub2RlLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywKKwkJIkNSRUFURSBUQUJMRSAke3RibH0gKEkgSU5UIFBSSU1BUlkg S0VZLCBOX1VQREFURUQgSU5UKSAiIC4KKwkJIiAgICAgICBXSVRIIChBVVRPVkFDVVVNX0VOQUJM RUQ9RkFMU0UpOyIgLgorCQkiSU5TRVJUIElOVE8gJHt0Ymx9IFNFTEVDVCBHLCAwIEZST00gR0VO RVJBVEVfU0VSSUVTKDEsIDUwKSBHOyIpOworfQorCitzdWIgZmlsbAoreworCW15ICRub2RlID0g c2hpZnQ7CisJbXkgJHRibCA9IHNoaWZ0OworCisJbXkgJG5jbGllbnRzID0gNTA7CisJbXkgJHVw ZGF0ZV9ldmVyeSA9IDkwOworCW15IEBjb25uZWN0aW9ucyA9ICgpOworCisJZm9yICgwLi4kbmNs aWVudHMpCisJeworCQlteSAkY29ubiA9ICRub2RlLT5iYWNrZ3JvdW5kX3BzcWwoJ3Bvc3RncmVz Jyk7CisJCSRjb25uLT5xdWVyeV9zYWZlKCJCRUdJTiIpOworCisJCXB1c2goQGNvbm5lY3Rpb25z LCAkY29ubik7CisJfQorCisJZm9yIChteSAkaSA9IDA7ICRpIDwgMjAwMDA7ICRpKyspCisJewor CQlteSAkY29ubiA9ICRjb25uZWN0aW9uc1skaSAlICRuY2xpZW50c107CisKKwkJJGNvbm4tPnF1 ZXJ5X3NhZmUoIkNPTU1JVDsiKTsKKwkJJGNvbm4tPnF1ZXJ5X3NhZmUoIkJFR0lOIik7CisKKwkJ aWYgKCRpICUgJHVwZGF0ZV9ldmVyeSA9PSAwKQorCQl7CisJCQkkY29ubi0+cXVlcnlfc2FmZSgK KwkJCQkiVVBEQVRFICR7dGJsfSBTRVQgIiAuCisJCQkJIk5fVVBEQVRFRCA9IE5fVVBEQVRFRCAr IDEgIiAuCisJCQkJIldIRVJFIEkgPSAke2l9ICUgNTAiKTsKKwkJfQorCQllbHNlCisJCXsKKwkJ CSRjb25uLT5xdWVyeV9zYWZlKAorCQkJCSJTRUxFQ1QgKiBGUk9NICR7dGJsfSBGT1IgS0VZIFNI QVJFIik7CisJCX0KKwl9CisKKwlmb3IgbXkgJGNvbm4gKEBjb25uZWN0aW9ucykKKwl7CisJCSRj b25uLT5xdWl0KCk7CisJfQorfQorCisjIFRoaXMgcGFpciBvZiBjYWxscyB3aWxsIGNyZWF0ZSBt b3JlIG9yIGxlc3MgdGhlIHNhbWUgYW1vdW50IG9mIG1lbWJzZXJzIGFuZAorIyBvZmZzZXRzIHNl Z21lbnRzLgorc3ViIHByZXAyCit7CisJbXkgJG5vZGUgPSBzaGlmdDsKKwlteSAkdGJsID0gc2hp ZnQ7CisKKwkkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJCSJDUkVBVEUgVEFCTEUgJHt0 Ymx9KEJBUiBJTlQgUFJJTUFSWSBLRVksIEJBWiBJTlQpOyAiIC4KKwkJIkNSRUFURSBPUiBSRVBM QUNFIFBST0NFRFVSRSBNWElERklMTEVSKE5fU1RFUFMgSU5UIERFRkFVTFQgMTAwMCkgIiAuCisJ CSJMQU5HVUFHRSBQTFBHU1FMICIgLgorCQkiQVMgXCRcJCAiIC4KKwkJIkJFR0lOICIgLgorCQki CUZPUiBJIElOIDEuLk5fU1RFUFMgTE9PUCAiIC4KKwkJIgkJVVBEQVRFICR7dGJsfSBTRVQgQkFa ID0gUkFORE9NKDEsIDEwMDApICIgLgorCQkiCQlXSEVSRSBCQVIgSU4gKFNFTEVDVCBCQVIgRlJP TSAke3RibH0gIiAuCisJCSIJCQkJCQlUQUJMRVNBTVBMRSBCRVJOT1VMTEkoODApKTsgIiAuCisJ CSIJCUNPTU1JVDsgIiAuCisJCSIJRU5EIExPT1A7ICIgLgorCQkiRU5EOyBcJFwkOyAiIC4KKwkJ IklOU0VSVCBJTlRPICR7dGJsfSAoQkFSLCBCQVopICIgLgorCQkiU0VMRUNUIElELCBJRCBGUk9N IEdFTkVSQVRFX1NFUklFUygxLCAxMDI0KSBJRDsiKTsKK30KKworc3ViIGZpbGwyCit7CisJbXkg JG5vZGUgPSBzaGlmdDsKKwlteSAkdGJsID0gc2hpZnQ7CisJbXkgJHNjYWxlID0gc2hpZnQgLy8g MTsKKworCSRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkJIkJFR0lOOyAiIC4KKwkJIlNF TEVDVCAqIEZST00gJHt0Ymx9IEZPUiBLRVkgU0hBUkU7ICIgLgorCQkiUFJFUEFSRSBUUkFOU0FD VElPTiAnQSc7ICIgLgorCQkiQ0FMTCBNWElERklMTEVSKCgzNjUgKiAke3NjYWxlfSk6OmludCk7 ICIgLgorCQkiQ09NTUlUIFBSRVBBUkVEICdBJzsiKTsKK30KKworCisjIGdlbmVyYXRlIGFyb3Vu ZCAyIG9mZnNldCBzZWdtZW50cyBhbmQgNTUgbWVtYmVyIHNlZ21lbnRzCitzdWIgbXhpZF9nZW4x Cit7CisJbXkgJG5vZGUgPSBzaGlmdDsKKwlteSAkdGJsID0gc2hpZnQ7CisKKwlwcmVwKCRub2Rl LCAkdGJsKTsKKwlmaWxsKCRub2RlLCAkdGJsKTsKKworCSRub2RlLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywgcShDSEVDS1BPSU5UKSk7Cit9CisKKyMgZ2VuZXJhdGUgYXJvdW5kIDEwIG9mZnNldCBz ZWdtZW50cyBhbmQgMTIgbWVtYmVyIHNlZ21lbnRzCitzdWIgbXhpZF9nZW4yCit7CisJbXkgJG5v ZGUgPSBzaGlmdDsKKwlteSAkdGJsID0gc2hpZnQ7CisJbXkgJHNjYWxlID0gc2hpZnQgLy8gMTsK KworCXByZXAyKCRub2RlLCAkdGJsKTsKKwlmaWxsMigkbm9kZSwgJHRibCwgJHNjYWxlKTsKKwor CSRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcShDSEVDS1BPSU5UKSk7Cit9CisKKyMgRmV0 Y2ggbGF0ZXN0IG11bHRpeGFjdCBjaGVja3BvaW50IHZhbHVlcy4KK3N1YiBtdWx0aV9ib3VuZHMK K3sKKwlteSAoJG5vZGUpID0gQF87CisJbXkgJHBhdGggPSAkbm9kZS0+Y29uZmlnX2RhdGEoJy0t YmluZGlyJyk7CisJbXkgKCRzdGRvdXQsICRzdGRlcnIpID0gcnVuX2NvbW1hbmQoWworCQkJCQkJ CQkJJHBhdGggLiAnL3BnX2NvbnRyb2xkYXRhJywKKwkJCQkJCQkJCSRub2RlLT5kYXRhX2Rpcgor CQkJCQkJCQldKTsKKwlteSBAY29udHJvbF9kYXRhID0gc3BsaXQoIlxuIiwgJHN0ZG91dCk7CisJ bXkgJG5leHQgPSB1bmRlZjsKKwlteSAkb2xkZXN0ID0gdW5kZWY7CisJbXkgJG5leHRfb2Zmc2V0 ID0gdW5kZWY7CisKKwlmb3JlYWNoIChAY29udHJvbF9kYXRhKQorCXsKKwkJaWYgKCRfID1+IC9e TGF0ZXN0IGNoZWNrcG9pbnQncyBOZXh0TXVsdGlYYWN0SWQ6XHMqKC4qKSQvbWcpCisJCXsKKwkJ CSRuZXh0ID0gJDE7CisJCQlwcmludCAiPj4+IEAgbm9kZSAiLiAkbm9kZS0+bmFtZSAuICIsICIg LiAkXyAuICJcbiI7CisJCX0KKworCQlpZiAoJF8gPX4gL15MYXRlc3QgY2hlY2twb2ludCdzIG9s ZGVzdE11bHRpWGlkOlxzKiguKikkL21nKQorCQl7CisJCQkkb2xkZXN0ID0gJDE7CisJCQlwcmlu dCAiPj4+IEAgbm9kZSAiLiAkbm9kZS0+bmFtZSAuICIsICIgLiAkXyAuICJcbiI7CisJCX0KKwor CQlpZiAoJF8gPX4gL15MYXRlc3QgY2hlY2twb2ludCdzIE5leHRNdWx0aU9mZnNldDpccyooLiop JC9tZykKKwkJeworCQkJJG5leHRfb2Zmc2V0ID0gJDE7CisJCQlwcmludCAiPj4+IEAgbm9kZSAi LiAkbm9kZS0+bmFtZSAuICIsICIgLiAkXyAuICJcbiI7CisJCX0KKworCQlpZiAoZGVmaW5lZCgk b2xkZXN0KSAmJiBkZWZpbmVkKCRuZXh0KSAmJiBkZWZpbmVkKCRuZXh0X29mZnNldCkpCisJCXsK KwkJCWxhc3Q7CisJCX0KKwl9CisKKwlkaWUgIkxhdGVzdCBjaGVja3BvaW50J3MgTmV4dE11bHRp WGFjdElkIG5vdCBmb3VuZCBpbiBjb250cm9sIGZpbGUhXG4iCisJdW5sZXNzIGRlZmluZWQoJG5l eHQpOworCisJZGllICJMYXRlc3QgY2hlY2twb2ludCdzIG9sZGVzdE11bHRpWGlkIG5vdCBmb3Vu ZCBpbiBjb250cm9sIGZpbGUhXG4iCisJdW5sZXNzIGRlZmluZWQoJG9sZGVzdCk7CisKKwlkaWUg IkxhdGVzdCBjaGVja3BvaW50J3MgTmV4dE11bHRpT2Zmc2V0IG5vdCBmb3VuZCBpbiBjb250cm9s IGZpbGUhXG4iCisJdW5sZXNzIGRlZmluZWQoJG5leHRfb2Zmc2V0KTsKKworCXJldHVybiAoJG9s ZGVzdCwgJG5leHQsICRuZXh0X29mZnNldCk7Cit9CisKKyMgQ3JlYXRlIG5vZGUgZnJvbSBleGlz dGluZyBiaW5zLgorc3ViIGNyZWF0ZV9uZXdfbm9kZQoreworCW15ICgkbmFtZSwgJXBhcmFtcykg PSBAXzsKKworCWNyZWF0ZV9ub2RlKDAsIEBfKTsKK30KKworIyBDcmVhdGUgbm9kZSBmcm9tIEVO ViBvbGRpbnN0YWxsCitzdWIgY3JlYXRlX29sZF9ub2RlCit7CisJbXkgKCRuYW1lLCAlcGFyYW1z KSA9IEBfOworCisJaWYgKCFkZWZpbmVkKCRFTlZ7b2xkaW5zdGFsbH0pKQorCXsKKwkJZGllICJv bGRpbnN0YWxsIGlzIG5vdCBkZWZpbmVkIjsKKwl9CisKKwljcmVhdGVfbm9kZSgxLCBAXyk7Cit9 CisKK3N1YiBjcmVhdGVfbm9kZQoreworCW15ICgkaW5zdGFsbF9wYXRoX2Zyb21fZW52LCAkbmFt ZSwgJXBhcmFtcykgPSBAXzsKKwlteSAkc2NhbGUgPSBkZWZpbmVkICRwYXJhbXN7c2NhbGV9ID8g JHBhcmFtc3tzY2FsZX0gOiAxOworCW15ICRtdWx0aSA9IGRlZmluZWQgJHBhcmFtc3ttdWx0aX0g PyAkcGFyYW1ze211bHRpfSA6IHVuZGVmOworCW15ICRvZmZzZXQgPSBkZWZpbmVkICRwYXJhbXN7 b2Zmc2V0fSA/ICRwYXJhbXN7b2Zmc2V0fSA6IHVuZGVmOworCisJbXkgJG5vZGUgPQorCQkkaW5z dGFsbF9wYXRoX2Zyb21fZW52ID8KKwkJCVBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygk bmFtZSwKKwkJCQkJaW5zdGFsbF9wYXRoID0+ICRFTlZ7b2xkaW5zdGFsbH0pIDoKKwkJCVBvc3Rn cmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygkbmFtZSk7CisKKwkkbm9kZS0+aW5pdChmb3JjZV9p bml0ZGIgPT4gMSwKKwkJZXh0cmEgPT4gWworCQkJJG11bHRpID8gKCctbScsICRtdWx0aSkgOiAo KSwKKwkJCSRvZmZzZXQgPyAoJy1vJywgJG9mZnNldCkgOiAoKSwKKwkJXSk7CisKKwkjIEZpeHVw IE1PWCBwYXRjaCBxdWlyaworCWlmICgkbXVsdGkpCisJeworCQl1bmxpbmsgJG5vZGUtPmRhdGFf ZGlyIC4gJy9wZ19tdWx0aXhhY3Qvb2Zmc2V0cy8wMDAwJzsKKwl9CisJaWYgKCRvZmZzZXQpCisJ eworCQl1bmxpbmsgJG5vZGUtPmRhdGFfZGlyIC4gJy9wZ19tdWx0aXhhY3QvbWVtYmVycy8wMDAw JzsKKwl9CisKKwkkbm9kZS0+YXBwZW5kX2NvbmYoJ2ZzeW5jJywgJ29mZicpOworCSRub2RlLT5h cHBlbmRfY29uZigncG9zdGdyZXNxbC5jb25mJywgJ21heF9wcmVwYXJlZF90cmFuc2FjdGlvbnMg PSAyJyk7CisKKwkkbm9kZS0+c3RhcnQoKTsKKwlteGlkX2dlbjIoJG5vZGUsICdGT08nLCAkc2Nh bGUpOworCW14aWRfZ2VuMSgkbm9kZSwgJ0JBUicsICRzY2FsZSk7CisJJG5vZGUtPnJlc3RhcnQo KTsKKwkkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHEoU0VMRUNUICogRlJPTSBGT08pKTsJ CSMganVzdCBpbiBjYXNlLi4uCisJJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxKFNFTEVD VCAqIEZST00gQkFSKSk7CisJJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxKENIRUNLUE9J TlQpKTsKKwkkbm9kZS0+c3RvcCgpOworCisJcmV0dXJuICRub2RlOworfQorCitzdWIgZG9fdXBn cmFkZQoreworCW15ICgkb2xkbm9kZSwgJG5ld25vZGUpID0gQF87CisKKwljb21tYW5kX29rKAor CQlbCisJCQkncGdfdXBncmFkZScsICctLW5vLXN5bmMnLAorCQkJJy1kJywgJG9sZG5vZGUtPmRh dGFfZGlyLAorCQkJJy1EJywgJG5ld25vZGUtPmRhdGFfZGlyLAorCQkJJy1iJywgJG9sZG5vZGUt PmNvbmZpZ19kYXRhKCctLWJpbmRpcicpLAorCQkJJy1CJywgJG5ld25vZGUtPmNvbmZpZ19kYXRh KCctLWJpbmRpcicpLAorCQkJJy1zJywgJG5ld25vZGUtPmhvc3QsCisJCQknLXAnLCAkb2xkbm9k ZS0+cG9ydCwKKwkJCSctUCcsICRuZXdub2RlLT5wb3J0LAorCQkJJy0tY2hlY2snCisJCV0sCisJ CSdydW4gb2YgcGdfdXBncmFkZScpOworCisJY29tbWFuZF9vaygKKwkJWworCQkJJ3BnX3VwZ3Jh ZGUnLCAnLS1uby1zeW5jJywKKwkJCSctZCcsICRvbGRub2RlLT5kYXRhX2RpciwKKwkJCSctRCcs ICRuZXdub2RlLT5kYXRhX2RpciwKKwkJCSctYicsICRvbGRub2RlLT5jb25maWdfZGF0YSgnLS1i aW5kaXInKSwKKwkJCSctQicsICRuZXdub2RlLT5jb25maWdfZGF0YSgnLS1iaW5kaXInKSwKKwkJ CSctcycsICRuZXdub2RlLT5ob3N0LAorCQkJJy1wJywgJG9sZG5vZGUtPnBvcnQsCisJCQknLVAn LCAkbmV3bm9kZS0+cG9ydCwKKwkJCSctLWNvcHknCisJCV0sCisJCSdydW4gb2YgcGdfdXBncmFk ZScpOworCisJJG9sZG5vZGUtPnN0YXJ0KCk7CisJJG5ld25vZGUtPnN0YXJ0KCk7CisKKwlteSAk b2xkZm9vID0gJG9sZG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxKFNFTEVDVCAqIEZST00g Rk9PKSk7CisJbXkgJG5ld2ZvbyA9ICRuZXdub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcShT RUxFQ1QgKiBGUk9NIEZPTykpOworCWlzKCRvbGRmb28sICRuZXdmb28sICJzZWxlY3QgZm9vIGVx Iik7CisKKwlteSAkb2xkYmFyID0gJG9sZG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxKFNF TEVDVCAqIEZST00gQkFSKSk7CisJbXkgJG5ld2JhciA9ICRuZXdub2RlLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywgcShTRUxFQ1QgKiBGUk9NIEJBUikpOworCWlzKCRvbGRiYXIsICRuZXdiYXIsICJz ZWxlY3QgYmFyIGVxIik7CisKKwkkb2xkbm9kZS0+c3RvcCgpOworCSRuZXdub2RlLT5zdG9wKCk7 CisKKwltdWx0aV9ib3VuZHMoJG9sZG5vZGUpOworCW11bHRpX2JvdW5kcygkbmV3bm9kZSk7Cit9 CisKK215IEBURVNUUyA9ICgKKwkjIHRlc3RzIHdpdGhvdXQgRU5WIG9sZGluc3RhbGwKKwkjMCwg MSwgMiwgMywgNCwgNSwgNiwKKwkjIHRlc3RzIHdpdGggInJlYWwiIHBnX3VwZ3JhZGUKKwkjMTAw LCAxMDEsIDEwMiwgMTAzLCAxMDQsIDEwNSwgMTA2LAorCSMgc2VsZiB1cGdyYWRlCisJMTAwMCwK Kyk7CisKKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyMgQmFzaWMgc2FuaXR5IHRlc3RzIG9uIGEg TkVXIGJpbgorIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisjIHN0YXJ0cyBmcm9tIHRoZSB6ZXJv CitTS0lQOgoreworCW15ICRURVNUX05PID0gMDsKKwlza2lwICJkbyBub3QgdGVzdCBjYXNlICRU RVNUX05PIiwgMQorCQl1bmxlc3MgKCBncmVwKCAvXiRURVNUX05PJC8sIEBURVNUUyApICk7CisK KwlteSAkbm9kZSA9IGNyZWF0ZV9uZXdfbm9kZSgnc2ltcGxlX21vJywKKwkJCQkJCXNjYWxlID0+ IDEpOworCW11bHRpX2JvdW5kcygkbm9kZSk7CisJb2soMSwgIlRFU1QgJFRFU1RfTk8gUEFTU0VE Iik7Cit9CisKKyMgbXVsdGkgc3RhcnRzIGZyb20gdGhlIHZhbHVlCitTS0lQOgoreworCW15ICRU RVNUX05PID0gMTsKKwlza2lwICJkbyBub3QgdGVzdCBjYXNlICRURVNUX05PIiwgMQorCQl1bmxl c3MgKCBncmVwKCAvXiRURVNUX05PJC8sIEBURVNUUyApICk7CisKKwlteSAkbm9kZSA9IGNyZWF0 ZV9uZXdfbm9kZSgnc2ltcGxlX01vJywKKwkJCQkJCXNjYWxlID0+IDEuMTUsCisJCQkJCQltdWx0 aSA9PiAnMHgxMjM0MDAnKTsKKwltdWx0aV9ib3VuZHMoJG5vZGUpOworCW9rKDEsICJURVNUICRU RVNUX05PIFBBU1NFRCIpOworfQorCisjIG9mZnNldHMgc3RhcnRzIGZyb20gdGhlIHZhbHVlCitT S0lQOgoreworCW15ICRURVNUX05PID0gMjsKKwlza2lwICJkbyBub3QgdGVzdCBjYXNlICRURVNU X05PIiwgMQorCQl1bmxlc3MgKCBncmVwKCAvXiRURVNUX05PJC8sIEBURVNUUyApICk7CisKKwlt eSAkbm9kZSA9IGNyZWF0ZV9uZXdfbm9kZSgnc2ltcGxlX21PJywKKwkJCQkJCXNjYWxlID0+IDEu MTUsCisJCQkJCQlvZmZzZXQgPT4gJzB4NDMyMTAwJyk7CisJbXVsdGlfYm91bmRzKCRub2RlKTsK KwlvaygxLCAiVEVTVCAkVEVTVF9OTyBQQVNTRUQiKTsKK30KKworIyBtdWx0aSBhbmQgb2Zmc2V0 cyBzdGFydHMgZnJvbSB0aGUgdmFsdWUKK1NLSVA6Cit7CisJbXkgJFRFU1RfTk8gPSAzOworCXNr aXAgImRvIG5vdCB0ZXN0IGNhc2UgJFRFU1RfTk8iLCAxCisJCXVubGVzcyAoIGdyZXAoIC9eJFRF U1RfTk8kLywgQFRFU1RTICkgKTsKKworCW15ICRub2RlID0gY3JlYXRlX25ld19ub2RlKCdzaW1w bGVfTU8nLAorCQkJCQkJc2NhbGUgPT4gMS4xNSwKKwkJCQkJCW11bHRpID0+ICcweERFQUQwMCcs IG9mZnNldCA9PiAnMHhCRUVGMDAnKTsKKwltdWx0aV9ib3VuZHMoJG5vZGUpOworCW9rKDEsICJU RVNUICRURVNUX05PIFBBU1NFRCIpOworfQorCisjIG11bHRpIHN0YXJ0cyBmcm9tIHRoZSB2YWx1 ZSwgbXVsdGkgd3JhcAorU0tJUDoKK3sKKwlteSAkVEVTVF9OTyA9IDQ7CisJc2tpcCAiZG8gbm90 IHRlc3QgY2FzZSAkVEVTVF9OTyIsIDEKKwkJdW5sZXNzICggZ3JlcCggL14kVEVTVF9OTyQvLCBA VEVTVFMgKSApOworCisJbXkgJG5vZGUgPSBjcmVhdGVfbmV3X25vZGUoJ3NpbXBsZV9Nb193cmFw JywKKwkJCQkJCXNjYWxlID0+IDEuMTUsCisJCQkJCQltdWx0aSA9PiAnMHhGRkZGNzAwMCcpOwor CW11bHRpX2JvdW5kcygkbm9kZSk7CisJb2soMSwgIlRFU1QgJFRFU1RfTk8gUEFTU0VEIik7Cit9 CisKKyMgb2Zmc2V0cyBzdGFydHMgZnJvbSB0aGUgdmFsdWUsIG9mZnNldHMgd3JhcAorU0tJUDoK K3sKKwlteSAkVEVTVF9OTyA9IDU7CisJc2tpcCAiZG8gbm90IHRlc3QgY2FzZSAkVEVTVF9OTyIs IDEKKwkJdW5sZXNzICggZ3JlcCggL14kVEVTVF9OTyQvLCBAVEVTVFMgKSApOworCisJbXkgJG5v ZGUgPSBjcmVhdGVfbmV3X25vZGUoJ3NpbXBsZV9tT193cmFwJywKKwkJCQkJCXNjYWxlID0+IDEu MTUsCisJCQkJCQlvZmZzZXQgPT4gJzB4RkZGRkZDMDAnKTsKKwltdWx0aV9ib3VuZHMoJG5vZGUp OworCW9rKDEsICJURVNUICRURVNUX05PIFBBU1NFRCIpOworfQorCisjIG11bHRpIHN0YXJ0cyBm cm9tIHRoZSB2YWx1ZSwgb2Zmc2V0cyBzdGFydHMgZnJvbSB0aGUgdmFsdWUsCisjIG11bHRpIHdy YXAsIG9mZnNldHMgd3JhcAorU0tJUDoKK3sKKwlteSAkVEVTVF9OTyA9IDY7CisJc2tpcCAiZG8g bm90IHRlc3QgY2FzZSAkVEVTVF9OTyIsIDEKKwkJdW5sZXNzICggZ3JlcCggL14kVEVTVF9OTyQv LCBAVEVTVFMgKSApOworCisJbXkgJG5vZGUgPSBjcmVhdGVfbmV3X25vZGUoJ3NpbXBsZV9NT193 cmFwJywKKwkJCQkJCXNjYWxlID0+IDEuMTUsCisJCQkJCQltdWx0aSA9PiAnMHhGRkZGNzAwMCcs IG9mZnNldCA9PiAnMHhGRkZGRkMwMCcpOworCW11bHRpX2JvdW5kcygkbm9kZSk7CisJb2soMSwg IlRFU1QgJFRFU1RfTk8gUEFTU0VEIik7Cit9CisKKyMgPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyMg cGdfdXBnYXJkZSB0ZXN0cworIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisjIHN0YXJ0cyBmcm9t IHRoZSB6ZXJvCitTS0lQOgoreworCW15ICRURVNUX05PID0gMTAwOworCXNraXAgImRvIG5vdCB0 ZXN0IGNhc2UgJFRFU1RfTk8iLCAxCisJCXVubGVzcyAoIGdyZXAoIC9eJFRFU1RfTk8kLywgQFRF U1RTICkgKTsKKworCW15ICRkYm5hbWUgPSAnbW8nOworCW15ICRvbGRub2RlID0gY3JlYXRlX29s ZF9ub2RlKCJvbGRfJGRibmFtZSIsCisJCQkJCQlzY2FsZSA9PiAxKTsKKwlteSAkbmV3bm9kZSA9 IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygibmV3XyRkYm5hbWUiKTsKKwkkbmV3bm9k ZS0+aW5pdCgpOworCisJZG9fdXBncmFkZSgkb2xkbm9kZSwgJG5ld25vZGUpOworCW9rKDEsICJU RVNUICRURVNUX05PIFBBU1NFRCIpOworfQorCisjIG11bHRpIHN0YXJ0cyBmcm9tIHRoZSB2YWx1 ZQorU0tJUDoKK3sKKwlteSAkVEVTVF9OTyA9IDEwMTsKKwlza2lwICJkbyBub3QgdGVzdCBjYXNl ICRURVNUX05PIiwgMQorCQl1bmxlc3MgKCBncmVwKCAvXiRURVNUX05PJC8sIEBURVNUUyApICk7 CisKKwlteSAkZGJuYW1lID0gJ01vJzsKKwlteSAkb2xkbm9kZSA9IGNyZWF0ZV9vbGRfbm9kZSgi b2xkXyRkYm5hbWUiLAorCQkJCQkJc2NhbGUgPT4gMS4yLAorCQkJCQkJbXVsdGkgPT4gJzB4MTIz NDAwJyk7CisJbXkgJG5ld25vZGUgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoIm5l d18kZGJuYW1lIik7CisJJG5ld25vZGUtPmluaXQoKTsKKworCWRvX3VwZ3JhZGUoJG9sZG5vZGUs ICRuZXdub2RlKTsKKwlvaygxLCAiVEVTVCAkVEVTVF9OTyBQQVNTRUQiKTsKK30KKworIyBvZmZz ZXRzIHN0YXJ0cyBmcm9tIHRoZSB2YWx1ZQorU0tJUDoKK3sKKwlteSAkVEVTVF9OTyA9IDEwMjsK Kwlza2lwICJkbyBub3QgdGVzdCBjYXNlICRURVNUX05PIiwgMQorCQl1bmxlc3MgKCBncmVwKCAv XiRURVNUX05PJC8sIEBURVNUUyApICk7CisKKwlteSAkZGJuYW1lID0gJ21PJzsKKwlteSAkb2xk bm9kZSA9IGNyZWF0ZV9vbGRfbm9kZSgib2xkXyRkYm5hbWUiLAorCQkJCQkJc2NhbGUgPT4gMS4y LAorCQkJCQkJb2Zmc2V0ID0+ICcweDQzMjEwMCcpOworCW15ICRuZXdub2RlID0gUG9zdGdyZVNR TDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCJuZXdfJGRibmFtZSIpOworCSRuZXdub2RlLT5pbml0KCk7 CisKKwlkb191cGdyYWRlKCRvbGRub2RlLCAkbmV3bm9kZSk7CisJb2soMSwgIlRFU1QgJFRFU1Rf Tk8gUEFTU0VEIik7Cit9CisKKyMgbXVsdGkgYW5kIG9mZnNldHMgc3RhcnRzIGZyb20gdGhlIHZh bHVlCitTS0lQOgoreworCW15ICRURVNUX05PID0gMTAzOworCXNraXAgImRvIG5vdCB0ZXN0IGNh c2UgJFRFU1RfTk8iLCAxCisJCXVubGVzcyAoIGdyZXAoIC9eJFRFU1RfTk8kLywgQFRFU1RTICkg KTsKKworCW15ICRkYm5hbWUgPSAnTU8nOworCW15ICRvbGRub2RlID0gY3JlYXRlX29sZF9ub2Rl KCJvbGRfJGRibmFtZSIsCisJCQkJCQlzY2FsZSA9PiAxLjIsCisJCQkJCQltdWx0aSA9PiAnMHhE RUFEMDAnLCBvZmZzZXQgPT4gJzB4QkVFRjAwJyk7CisJbXkgJG5ld25vZGUgPSBQb3N0Z3JlU1FM OjpUZXN0OjpDbHVzdGVyLT5uZXcoIm5ld18kZGJuYW1lIik7CisJJG5ld25vZGUtPmluaXQoKTsK KworCWRvX3VwZ3JhZGUoJG9sZG5vZGUsICRuZXdub2RlKTsKKwlvaygxLCAiVEVTVCAkVEVTVF9O TyBQQVNTRUQiKTsKK30KKworIyBtdWx0aSBzdGFydHMgZnJvbSB0aGUgdmFsdWUsIG11bHRpIHdy YXAKK1NLSVA6Cit7CisJbXkgJFRFU1RfTk8gPSAxMDQ7CisJc2tpcCAiZG8gbm90IHRlc3QgY2Fz ZSAkVEVTVF9OTyIsIDEKKwkJdW5sZXNzICggZ3JlcCggL14kVEVTVF9OTyQvLCBAVEVTVFMgKSAp OworCisJbXkgJGRibmFtZSA9ICdNb193cmFwJzsKKwlteSAkb2xkbm9kZSA9IGNyZWF0ZV9vbGRf bm9kZSgib2xkXyRkYm5hbWUiLAorCQkJCQkJc2NhbGUgPT4gMS4yLAorCQkJCQkJbXVsdGkgPT4g JzB4RkZGRjcwMDAnKTsKKwlteSAkbmV3bm9kZSA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXIt Pm5ldygibmV3XyRkYm5hbWUiKTsKKwkkbmV3bm9kZS0+aW5pdCgpOworCisJZG9fdXBncmFkZSgk b2xkbm9kZSwgJG5ld25vZGUpOworCW9rKDEsICJURVNUICRURVNUX05PIFBBU1NFRCIpOworfQor CisjIG9mZnNldHMgc3RhcnRzIGZyb20gdGhlIHZhbHVlLCBvZmZzZXRzIHdyYXAKK1NLSVA6Cit7 CisJbXkgJFRFU1RfTk8gPSAxMDU7CisJc2tpcCAiZG8gbm90IHRlc3QgY2FzZSAkVEVTVF9OTyIs IDEKKwkJdW5sZXNzICggZ3JlcCggL14kVEVTVF9OTyQvLCBAVEVTVFMgKSApOworCisJbXkgJGRi bmFtZSA9ICdtT193cmFwJzsKKwlteSAkb2xkbm9kZSA9IGNyZWF0ZV9vbGRfbm9kZSgib2xkXyRk Ym5hbWUiLAorCQkJCQkJc2NhbGUgPT4gMS4yLAorCQkJCQkJb2Zmc2V0ID0+ICcweEZGRkZGQzAw Jyk7CisJbXkgJG5ld25vZGUgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoIm5ld18k ZGJuYW1lIik7CisJJG5ld25vZGUtPmluaXQoKTsKKworCWRvX3VwZ3JhZGUoJG9sZG5vZGUsICRu ZXdub2RlKTsKKwlvaygxLCAiVEVTVCAkVEVTVF9OTyBQQVNTRUQiKTsKK30KKworIyBtdWx0aSBz dGFydHMgZnJvbSB0aGUgdmFsdWUsIG9mZnNldHMgc3RhcnRzIGZyb20gdGhlIHZhbHVlLAorIyBt dWx0aSB3cmFwLCBvZmZzZXRzIHdyYXAKK1NLSVA6Cit7CisJbXkgJFRFU1RfTk8gPSAxMDY7CisJ c2tpcCAiZG8gbm90IHRlc3QgY2FzZSAkVEVTVF9OTyIsIDEKKwkJdW5sZXNzICggZ3JlcCggL14k VEVTVF9OTyQvLCBAVEVTVFMgKSApOworCisJbXkgJGRibmFtZSA9ICdNT193cmFwJzsKKwlteSAk b2xkbm9kZSA9IGNyZWF0ZV9vbGRfbm9kZSgib2xkXyRkYm5hbWUiLAorCQkJCQkJc2NhbGUgPT4g MS4yLAorCQkJCQkJbXVsdGkgPT4gJzB4RkZGRjcwMDAnLCBvZmZzZXQgPT4gJzB4RkZGRkZDMDAn KTsKKwlteSAkbmV3bm9kZSA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygibmV3XyRk Ym5hbWUiKTsKKwkkbmV3bm9kZS0+aW5pdCgpOworCisJZG9fdXBncmFkZSgkb2xkbm9kZSwgJG5l d25vZGUpOworCW9rKDEsICJURVNUICRURVNUX05PIFBBU1NFRCIpOworfQorCisjID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CisjIFNlbGYgdXBncmFkZQorIyA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisj IHN0YXJ0cyBmcm9tIHRoZSB6ZXJvCitTS0lQOgoreworCW15ICRURVNUX05PID0gMTAwMDsKKwlz a2lwICJkbyBub3QgdGVzdCBjYXNlICRURVNUX05PIiwgMQorCQl1bmxlc3MgKCBncmVwKCAvXiRU RVNUX05PJC8sIEBURVNUUyApICk7CisKKwlteSAkZGJuYW1lID0gJ3NlbGZfdXBncmFkZSc7CisJ bXkgJG9sZG5vZGUgPSBjcmVhdGVfbmV3X25vZGUoIm9sZF8kZGJuYW1lIiwKKwkJCQkJCXNjYWxl ID0+IDEpOworCW15ICRuZXdub2RlID0gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCJu ZXdfJGRibmFtZSIpOworCSRuZXdub2RlLT5pbml0KCk7CisKKwlkb191cGdyYWRlKCRvbGRub2Rl LCAkbmV3bm9kZSk7CisJb2soMSwgIlRFU1QgJFRFU1RfTk8gUEFTU0VEIik7Cit9CisKK2RvbmVf dGVzdGluZygpOwotLSAKMi40My4wCgo= --0000000000002ec161062fbef3d0 Content-Type: text/plain; charset="US-ASCII"; name="v14-0007-TEST-bump-catver.patch.txt" Content-Disposition: attachment; filename="v14-0007-TEST-bump-catver.patch.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m7yp1ufx6 RnJvbSBiODAzMjBkMDdhZGUxZmJhM2ZjZTk0MzI2YmQyZTVlMDZhOWU3ZjU4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbSBPcmxvdiA8b3Jsb3ZtZ0BnbWFpbC5jb20+CkRhdGU6 IFdlZCwgMTMgTm92IDIwMjQgMTY6MzQ6MzQgKzAzMDAKU3ViamVjdDogW1BBVENIIHYxNCA3Lzdd IFRFU1Q6IGJ1bXAgY2F0dmVyCgotLS0KIHNyYy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmgg IHwgMiArLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9jYXR2ZXJzaW9uLmggfCAyICstCiAyIGZpbGVz IGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5oIGIvc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3Vw Z3JhZGUuaAppbmRleCAxYWRlYTczYmQzLi4xNGQ0OWJlMDQwIDEwMDY0NAotLS0gYS9zcmMvYmlu L3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5oCisrKyBiL3NyYy9iaW4vcGdfdXBncmFkZS9wZ191cGdy YWRlLmgKQEAgLTExOSw3ICsxMTksNyBAQCBleHRlcm4gY2hhciAqb3V0cHV0X2ZpbGVzW107CiAg KgogICogWFhYOiBzaG91bGQgYmUgY2hhbmdlZCB0byB0aGUgYWN0dWFsIENBVEFMT0dfVkVSU0lP Tl9OTyBvbiBjb21taXQuCiAgKi8KLSNkZWZpbmUgTVVMVElYQUNUT0ZGU0VUX0ZPUk1BVENIQU5H RV9DQVRfVkVSIDIwMjQwOTA0MQorI2RlZmluZSBNVUxUSVhBQ1RPRkZTRVRfRk9STUFUQ0hBTkdF X0NBVF9WRVIgMjAyNTAzMDMyCiAKIC8qCiAgKiBsYXJnZSBvYmplY3QgY2h1bmsgc2l6ZSBhZGRl ZCB0byBwZ19jb250cm9sZGF0YSwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvY2F0 dmVyc2lvbi5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9jYXR2ZXJzaW9uLmgKaW5kZXggZjA5NjJl MTdiMy4uYzk1MmUxMjJmMiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9jYXR2ZXJz aW9uLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9jYXR2ZXJzaW9uLmgKQEAgLTU3LDYgKzU3 LDYgQEAKICAqLwogCiAvKgkJCQkJCQl5eXl5bW1kZE4gKi8KLSNkZWZpbmUgQ0FUQUxPR19WRVJT SU9OX05PCTIwMjUwMzAzMQorI2RlZmluZSBDQVRBTE9HX1ZFUlNJT05fTk8JMjAyNTAzMDMyCiAK ICNlbmRpZgotLSAKMi40My4wCgo= --0000000000002ec161062fbef3d0--