Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w5BQQ-002ywT-2A for pgsql-hackers@arkaria.postgresql.org; Tue, 24 Mar 2026 23:44:43 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w5BQP-009iLk-0R for pgsql-hackers@arkaria.postgresql.org; Tue, 24 Mar 2026 23:44:41 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w5BQO-009iLb-2F for pgsql-hackers@lists.postgresql.org; Tue, 24 Mar 2026 23:44:41 +0000 Received: from mail-ed1-x530.google.com ([2a00:1450:4864:20::530]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w5BQL-00000000xqw-3uHj for pgsql-hackers@lists.postgresql.org; Tue, 24 Mar 2026 23:44:40 +0000 Received: by mail-ed1-x530.google.com with SMTP id 4fb4d7f45d1cf-6686fbdbe2eso610676a12.1 for ; Tue, 24 Mar 2026 16:44:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1774395877; cv=none; d=google.com; s=arc-20240605; b=Tx6hWjoLyX4rxSrt4f/r1rg5MMjr03QQFIP5cX88BAJXSP/fdvQdQ7VuG9wcUqysMn 90gZxFRTNxef/OBAqXSIm83YmY8Amnsc9NO2HD6gyEzP4faeWHB6N8ZIxlmcdzS/9f8o EmJz8zwdPskpunlYfNW5MYp2JJvNGTxYbGQeq2wCJDlU5+iiFKC+2JlPPr9Jk4hGCfAX b+z6u0KtS+0zXdx8mE6TC4Dz3lRGuwQ7vimF2p7PPvrxeVsDEmKrsFbWjstIkFTXFijO e35TeNNS0CdlCpnBRefYmg2hlx9Qm9Z2lObMBglnSKNa9Ja9X7l7FBCAOFfds3yVO4eO d3VA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=SelX/FKsuXQoZubfraoGIsxJ+DyZ2kt+Stape1Pqv4Y=; fh=s6dG1LATMr0J/P+M3lRbW85P2tf3QyZ+KInrmT5ySZ8=; b=UuFn1FPrgUF5Li5sRmD/BPN+nKC0ACk4vnWwHBFQ58u3yG1kuAvw5Lz9yGNbqmpWmd 6yOz8eM6TZPGpYTuDilIAOcQVfK3d+JhFLz7qNZu/mB0vS/allnDgvBF1cQ6aEg9dJ2P J2qFu0c+0FWr1M3/kqo7BwL8tMbxhalqT1iZf9K6NLLsbZB0iskx1599FIA/rruvwk61 duWnNI8KNEGVFLJBCchJcvWcdtFe/jKcxZWYXfx0UC5if/HeBkq9PyJsZ3heiZ1iUi/p ySTyM+avZM4mHiIBcDpNusqZf5uuUhEGN6hyBsKRxozoDqnxMofK/Y/a82KUbcbGHgct OTGA==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1774395877; x=1775000677; 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=SelX/FKsuXQoZubfraoGIsxJ+DyZ2kt+Stape1Pqv4Y=; b=BFG4mTgOgQSBE0grFYraR97hoQ9912mise4dwUHKWh0tu6UbOYGhtnYIolKgqPFO+T WgP0cm4sJF76wX7VHHR5P7AWxf2FO4uAd1hscTamezBImoF73dD+djFXNAfrdX7jdP3J w/ICcg2kDm4lPUWQ701KwZR5ZLj/ro3TzRqFDw+T+7BfjwYCjKxF8+PDUwrMa8dsdk7O xFtWQhz4tymxBRTOas98J7qGHXa6G9EJl+CAr4DMGtOdMAU4dnPHV5fWN3zta5qzvDxm XYVofr9hxXQwym47E5R6nqVJ9sovalMO7VZwWeK9n3Fp/tU8+s7JEq0a46UJ5msjV+7t sCYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774395877; x=1775000677; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=SelX/FKsuXQoZubfraoGIsxJ+DyZ2kt+Stape1Pqv4Y=; b=QkraI+kKXfiYyYkW5cpt9+lETVPTerdwFavqAiFvjdwITPIuhl+hGZ2SCK3vn/5C4f JNIxZzq+xjXySDBRvOh3l7QfjLQw8rnAlQTvE9ndzFj7Zoga3H/NbsP6mQEXKKSUIwDI APgXF03YIeCDk1hofPwASvdrU2sRUB3cZIknEjajYvZxdVAZuE4xnfQ6rzFMZFA0wdIK xAuYrZbuLzYq12Avg7NwOGEGv27KdYRqAr0qk/C+CEPfmOkc1l4kSXvTWCWU6BW4ABYU w9Mkv5wzsH4YMd7E8DMq2hB/xLsTWHGnvQ/pj7SUNtUB87ZAVaZRKTX5HEf2XMd7w8Rf lwqg== X-Forwarded-Encrypted: i=1; AJvYcCVqUdXls4pGFg8bsZXKd9UulHloMu6twHD0NAC2jq9W43zD0He7t7iqsBynwwReMCsVyE47Kr1FulgO5qkc@lists.postgresql.org X-Gm-Message-State: AOJu0YxCi27GdSruV67EJSr5XH+KkseYOFPlyziQgus3ePGQ6e3aszWv GiZABsmPM95ce0pkEsmbF+87C2ilZgEXxp8XH9q7wbS8Jju858scW6dQA0Rfzr+yX2GusZMwyii weHsjuaOeI36qrGEsTWavCXWJ6DSd1ow= X-Gm-Gg: ATEYQzygW2/V3Wi4q4ZXOx9CZqpY/pTjADQzVGtGRFognVX97fYpZxBkZ+INyjAMcnZ RhAcCl5cc/sLY8+3KkPM8Q7NIu8T/k3Ombg9TUa+yG0rxFn6IY9Mbf394x3jdvLLW2AG+ykRNjq 4mpaxoXpGynTNemPmH6zB2mTrdnQrQXkuVUBh/4uGp3r3LIEqSHNPKvs94zJTs77fj6b1HJKrgf qvrus0oOYXMNY7UUdGG4kLmJ7mChArh1Wnyuv1da4TP0JTJozuLth++ZD4XW1uhV8rsVIPSiJmR t9N1G7KCAy6sLXshIo9vmCzvjOs4w6g/mIm492bVgX2aM6sB3lRp2AUTH5amp8l7cre3rJHJgY+ z8AVm9ZJD X-Received: by 2002:a05:6402:a00d:b0:660:f351:758d with SMTP id 4fb4d7f45d1cf-66a80bc3f2emr867233a12.7.1774395876867; Tue, 24 Mar 2026 16:44:36 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Melanie Plageman Date: Tue, 24 Mar 2026 19:44:24 -0400 X-Gm-Features: AQROBzDRti8IG0q0Jg2j3jN3JdTVKv55F4DgNx6u72EoZDOjEqQ2Ve5ih85mwVM Message-ID: Subject: Re: eliminate xl_heap_visible to reduce WAL (and eventually set VM on-access) To: Andres Freund Cc: Kirill Reshke , Chao Li , Andrey Borodin , Xuneng Zhou , Robert Haas , PostgreSQL Hackers , Heikki Linnakangas Content-Type: multipart/mixed; boundary="000000000000ef09e0064dcdbb4a" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000ef09e0064dcdbb4a Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Attached v45 is what remains in the patchset (I committed the rest). On Tue, Mar 24, 2026 at 1:53=E2=80=AFPM Andres Freund = wrote: > > On 2026-03-23 17:54:13 -0400, Melanie Plageman wrote: > > I've made some significant changes to 0006 and realized I need some > > help. 0006 tracks what relations are modified by a query. This new > > version (v44) uses relation oids instead of rt indexes to handle cases > > where the same relation appears more than once in the range table > > (e.g. INSERT INTO foo SELECT * FROM foo; foo appears twice). It > > computes modifiedRelOids (a list of relation OIDs modified by the > > query) in the planner and stores them in the PlannedStmt. There is one > > big issue I'm not sure how to solve: > > I'm not entirely sure this is something we need to catch and therefore no= t > sure that modifiedRelOids is worth the trouble over just having the RT > indexes. Do you see the disadvantage of saving the oids as the space? I guess it is also worse (from a semantic perspective) to use oids if the set is incomplete=E2=80=94for example, because of the insert into leaf partitio= n case. If they are RT indexes, then it is accurate to say that it includes all RT indexes for modified rels. For INSERT INTO foo SELECT * FROM foo, if the pages are mostly full, setting pages all-visible during the scan won't hurt because we will insert at the end of the table. And if there is freespace throughout, we won't do on-access pruning. So, I actually don't think we could end up setting and unsetting the VM for every page. In v45, I've gone back to RT indexes. - Melanie --000000000000ef09e0064dcdbb4a Content-Type: text/x-patch; charset="US-ASCII"; name="v45-0001-Track-which-relations-are-modified-by-a-query.patch" Content-Disposition: attachment; filename="v45-0001-Track-which-relations-are-modified-by-a-query.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn59ersh0 RnJvbSA2N2FjYzJlM2VhM2EzMjI3ZTY4YTg1YzUwMGVjODEwNGE4YzViODEyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDMgRGVjIDIwMjUgMTU6MDc6MjQgLTA1MDAKU3ViamVjdDogW1BB VENIIHY0NSAxLzVdIFRyYWNrIHdoaWNoIHJlbGF0aW9ucyBhcmUgbW9kaWZpZWQgYnkgYSBxdWVy eQoKU2F2ZSB0aGUgcmFuZ2UgdGFibGUgaW5kZXhlcyBvZiBtb2RpZmllZCByZWxhdGlvbnMgaW4g YSBCaXRtYXBzZXQgaW4gdGhlClBsYW5uZWRTdG10LiBBIGxhdGVyIGNvbW1pdCB3aWxsIHVzZSB0 aGlzIGluZm9ybWF0aW9uIGR1cmluZyBzY2FucyB0bwpjb250cm9sIHdoZXRoZXIgb3Igbm90IG9u LWFjY2VzcyBwcnVuaW5nIGlzIGFsbG93ZWQgdG8gc2V0IHRoZQp2aXNpYmlsaXR5IG1hcC4gU2V0 dGluZyB0aGUgdmlzaWJpbGl0eSBtYXAgZHVyaW5nIGEgc2NhbiBpcwpjb3VudGVycHJvZHVjdGl2 ZSBpZiB0aGUgcXVlcnkgaXMgZ29pbmcgdG8gbW9kaWZ5IHRoZSBwYWdlIGltbWVkaWF0ZWx5CmFm dGVyLgoKUmVsYXRpb25zIGFyZSBjb25zaWRlcmVkIG1vZGlmaWVkIGlmIHRoZXkgYXJlIHRoZSB0 YXJnZXQgb2YgSU5TRVJULApVUERBVEUsIERFTEVURSwgb3IgTUVSR0UsIG9yIGlmIHRoZXkgaGF2 ZSBhbnkgcm93IG1hcmsgKGluY2x1ZGluZyBTRUxFQ1QKRk9SIFVQREFURS9TSEFSRSkuIEFsbCBy b3cgbWFyayB0eXBlcyBhcmUgaW5jbHVkZWQsIGV2ZW4gdGhvc2Ugd2hpY2gKZG9uJ3QgYWN0dWFs bHkgbW9kaWZ5IHR1cGxlcywgYmVjYXVzZSB0aGlzIHNldCBpcyBvbmx5IHVzZWQgYXMgYSBoaW50 IHRvCmF2b2lkIHVubmVjZXNzYXJ5IHdvcmsuCgpBdXRob3I6IE1lbGFuaWUgUGxhZ2VtYW4gPG1l bGFuaWVwbGFnZW1hbkBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBBbmRyZXMgRnJldW5kIDxhbmRy ZXNAYW5hcmF6ZWwuZGU+ClJldmlld2VkLWJ5OiBDaGFvIExpIDxsaS5ldmFuLmNoYW9AZ21haWwu Y29tPgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0Y1Q0REMUI1LTYyOEMtNDRBMS05 Rjg1LTM5NThDNjI2RjZBOSU0MGdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4 ZWNQYXJhbGxlbC5jICAgIHwgIDEgKwogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUxvY2tSb3dz LmMgICAgfCAgMyArKysKIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVNb2RpZnlUYWJsZS5jIHwg MTQgKysrKysrKysrKysrKysKIHNyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYyAg IHwgMjEgKysrKysrKysrKysrKysrKysrKystCiBzcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMu aCAgICAgICAgICB8ICA2ICsrKysrKwogNSBmaWxlcyBjaGFuZ2VkLCA0NCBpbnNlcnRpb25zKCsp LCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1Bh cmFsbGVsLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUGFyYWxsZWwuYwppbmRleCBhYzg0 YWYyOTRjOS4uNGYzOTc2N2QwMzMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4 ZWNQYXJhbGxlbC5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJhbGxlbC5jCkBA IC0xODgsNiArMTg4LDcgQEAgRXhlY1NlcmlhbGl6ZVBsYW4oUGxhbiAqcGxhbiwgRVN0YXRlICpl c3RhdGUpCiAJcHN0bXQtPnBhcnRQcnVuZUluZm9zID0gZXN0YXRlLT5lc19wYXJ0X3BydW5lX2lu Zm9zOwogCXBzdG10LT5ydGFibGUgPSBlc3RhdGUtPmVzX3JhbmdlX3RhYmxlOwogCXBzdG10LT51 bnBydW5hYmxlUmVsaWRzID0gZXN0YXRlLT5lc191bnBydW5lZF9yZWxpZHM7CisJcHN0bXQtPm1v ZGlmaWVkUmVsaWRzID0gZXN0YXRlLT5lc19wbGFubmVkc3RtdC0+bW9kaWZpZWRSZWxpZHM7CiAJ cHN0bXQtPnBlcm1JbmZvcyA9IGVzdGF0ZS0+ZXNfcnRlcGVybWluZm9zOwogCXBzdG10LT5yZXN1 bHRSZWxhdGlvbnMgPSBOSUw7CiAJcHN0bXQtPmFwcGVuZFJlbGF0aW9ucyA9IE5JTDsKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVMb2NrUm93cy5jIGIvc3JjL2JhY2tlbmQv ZXhlY3V0b3Ivbm9kZUxvY2tSb3dzLmMKaW5kZXggOGQ4NjU0NzA3ODAuLjM4YTQzMzE1ZjExIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlTG9ja1Jvd3MuYworKysgYi9zcmMv YmFja2VuZC9leGVjdXRvci9ub2RlTG9ja1Jvd3MuYwpAQCAtMTEzLDYgKzExMyw5IEBAIGxuZXh0 OgogCQl9CiAJCWVybS0+ZXJtQWN0aXZlID0gdHJ1ZTsKIAorCQlBc3NlcnQoYm1zX2lzX21lbWJl cihlcm0tPnJ0aSwKKwkJCQkJCQkgZXN0YXRlLT5lc19wbGFubmVkc3RtdC0+bW9kaWZpZWRSZWxp ZHMpKTsKKwogCQkvKiBmZXRjaCB0aGUgdHVwbGUncyBjdGlkICovCiAJCWRhdHVtID0gRXhlY0dl dEp1bmtBdHRyaWJ1dGUoc2xvdCwKIAkJCQkJCQkJCSBhZXJtLT5jdGlkQXR0Tm8sCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlTW9kaWZ5VGFibGUuYyBiL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL25vZGVNb2RpZnlUYWJsZS5jCmluZGV4IDRjZDVlMjYyZTBmLi40YzY0NTg5YjQy MSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZU1vZGlmeVRhYmxlLmMKKysr IGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZU1vZGlmeVRhYmxlLmMKQEAgLTg5Niw2ICs4OTYs MTQgQEAgRXhlY0luc2VydChNb2RpZnlUYWJsZUNvbnRleHQgKmNvbnRleHQsCiAKIAlyZXN1bHRS ZWxhdGlvbkRlc2MgPSByZXN1bHRSZWxJbmZvLT5yaV9SZWxhdGlvbkRlc2M7CiAKKwkvKgorCSAq IElmIHRoaXMgaXMgYSBsZWFmIHBhcnRpdGlvbiB3ZSBqdXN0IGZvdW5kLCBpdCB3b24ndCBoYXZl IGEgdmFsaWQgcmFuZ2UKKwkgKiB0YWJsZSBpbmRleC4KKwkgKi8KKwlBc3NlcnQocmVzdWx0UmVs SW5mby0+cmlfUmFuZ2VUYWJsZUluZGV4ID09IDAgfHwKKwkJICAgYm1zX2lzX21lbWJlcihyZXN1 bHRSZWxJbmZvLT5yaV9SYW5nZVRhYmxlSW5kZXgsCisJCQkJCQkgZXN0YXRlLT5lc19wbGFubmVk c3RtdC0+bW9kaWZpZWRSZWxpZHMpKTsKKwogCS8qCiAJICogT3BlbiB0aGUgdGFibGUncyBpbmRl eGVzLCBpZiB3ZSBoYXZlIG5vdCBkb25lIHNvIGFscmVhZHksIHNvIHRoYXQgd2UKIAkgKiBjYW4g YWRkIG5ldyBpbmRleCBlbnRyaWVzIGZvciB0aGUgaW5zZXJ0ZWQgdHVwbGUuCkBAIC0xNTIzLDYg KzE1MzEsOSBAQCBFeGVjRGVsZXRlQWN0KE1vZGlmeVRhYmxlQ29udGV4dCAqY29udGV4dCwgUmVz dWx0UmVsSW5mbyAqcmVzdWx0UmVsSW5mbywKIHsKIAlFU3RhdGUJICAgKmVzdGF0ZSA9IGNvbnRl eHQtPmVzdGF0ZTsKIAorCUFzc2VydChibXNfaXNfbWVtYmVyKHJlc3VsdFJlbEluZm8tPnJpX1Jh bmdlVGFibGVJbmRleCwKKwkJCQkJCSBlc3RhdGUtPmVzX3BsYW5uZWRzdG10LT5tb2RpZmllZFJl bGlkcykpOworCiAJcmV0dXJuIHRhYmxlX3R1cGxlX2RlbGV0ZShyZXN1bHRSZWxJbmZvLT5yaV9S ZWxhdGlvbkRlc2MsIHR1cGxlaWQsCiAJCQkJCQkJICBlc3RhdGUtPmVzX291dHB1dF9jaWQsCiAJ CQkJCQkJICBlc3RhdGUtPmVzX3NuYXBzaG90LApAQCAtMjIwNSw2ICsyMjE2LDkgQEAgRXhlY1Vw ZGF0ZUFjdChNb2RpZnlUYWJsZUNvbnRleHQgKmNvbnRleHQsIFJlc3VsdFJlbEluZm8gKnJlc3Vs dFJlbEluZm8sCiAJYm9vbAkJcGFydGl0aW9uX2NvbnN0cmFpbnRfZmFpbGVkOwogCVRNX1Jlc3Vs dAlyZXN1bHQ7CiAKKwlBc3NlcnQoYm1zX2lzX21lbWJlcihyZXN1bHRSZWxJbmZvLT5yaV9SYW5n ZVRhYmxlSW5kZXgsCisJCQkJCQkgZXN0YXRlLT5lc19wbGFubmVkc3RtdC0+bW9kaWZpZWRSZWxp ZHMpKTsKKwogCXVwZGF0ZUN4dC0+Y3Jvc3NQYXJ0VXBkYXRlID0gZmFsc2U7CiAKIAkvKgpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jIGIvc3JjL2JhY2tl bmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jCmluZGV4IDQyNjA0YTBmNzVjLi44NmRlYTFjOWNi OCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jCisrKyBi L3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYwpAQCAtMzQwLDggKzM0MCwxMCBA QCBzdGFuZGFyZF9wbGFubmVyKFF1ZXJ5ICpwYXJzZSwgY29uc3QgY2hhciAqcXVlcnlfc3RyaW5n LCBpbnQgY3Vyc29yT3B0aW9ucywKIAlSZWxPcHRJbmZvICpmaW5hbF9yZWw7CiAJUGF0aAkgICAq YmVzdF9wYXRoOwogCVBsYW4JICAgKnRvcF9wbGFuOworCUJpdG1hcHNldCAgKm1vZGlmaWVkUmVs aWRzID0gTlVMTDsKIAlMaXN0Q2VsbCAgICpscCwKLQkJCSAgICpscjsKKwkJCSAgICpsciwKKwkJ CSAgICpsYzsKIAogCS8qCiAJICogU2V0IHVwIGdsb2JhbCBzdGF0ZSBmb3IgdGhpcyBwbGFubmVy IGludm9jYXRpb24uICBUaGlzIGRhdGEgaXMgbmVlZGVkCkBAIC02NjEsNiArNjYzLDIzIEBAIHN0 YW5kYXJkX3BsYW5uZXIoUXVlcnkgKnBhcnNlLCBjb25zdCBjaGFyICpxdWVyeV9zdHJpbmcsIGlu dCBjdXJzb3JPcHRpb25zLAogCXJlc3VsdC0+c3VicGxhbnMgPSBnbG9iLT5zdWJwbGFuczsKIAly ZXN1bHQtPnJld2luZFBsYW5JRHMgPSBnbG9iLT5yZXdpbmRQbGFuSURzOwogCXJlc3VsdC0+cm93 TWFya3MgPSBnbG9iLT5maW5hbHJvd21hcmtzOworCisJLyoKKwkgKiBDb21wdXRlIG1vZGlmaWVk UmVsaWRzIGZyb20gcmVzdWx0IHJlbGF0aW9ucyBhbmQgcm93IG1hcmtzLgorCSAqCisJICogVGhp cyBpc24ndCBleGFjdGx5IHdoYXQgdGhlIGV4ZWN1dG9yIHdpbGwgYWN0dWFsbHkgbW9kaWZ5L2xv Y2sgYXQKKwkgKiBydW50aW1lLiBSdW50aW1lIHBhcnRpdGlvbiBwcnVuaW5nIG1heSBlbGltaW5h dGUgc29tZSByZXN1bHQgcmVsYXRpb25zCisJICogYW5kIHBhcmVudCByb3cgbWFya3MgaW5jbHVk ZWQgaGVyZSBtYXkgYmUgc2tpcHBlZCBieSB0aGUgZXhlY3V0b3IuCisJICogQ29udmVyc2VseSwg bGVhZiBwYXJ0aXRpb25zIHdob3NlIHJlc3VsdCByZWxhdGlvbnMgYXJlIGNyZWF0ZWQgYXQgdGhl CisJICogdGltZSBvZiBpbnNlcnQgYXJlIG5vdCBpbmNsdWRlZCBoZXJlLgorCSAqLworCWZvcmVh Y2gobGMsIGdsb2ItPnJlc3VsdFJlbGF0aW9ucykKKwkJbW9kaWZpZWRSZWxpZHMgPSBibXNfYWRk X21lbWJlcihtb2RpZmllZFJlbGlkcywgbGZpcnN0X2ludChsYykpOworCWZvcmVhY2gobGMsIGds b2ItPmZpbmFscm93bWFya3MpCisJCW1vZGlmaWVkUmVsaWRzID0gYm1zX2FkZF9tZW1iZXIobW9k aWZpZWRSZWxpZHMsCisJCQkJCQkJCQkJKChQbGFuUm93TWFyayAqKSBsZmlyc3QobGMpKS0+cnRp KTsKKwlyZXN1bHQtPm1vZGlmaWVkUmVsaWRzID0gbW9kaWZpZWRSZWxpZHM7CisKIAlyZXN1bHQt PnJlbGF0aW9uT2lkcyA9IGdsb2ItPnJlbGF0aW9uT2lkczsKIAlyZXN1bHQtPmludmFsSXRlbXMg PSBnbG9iLT5pbnZhbEl0ZW1zOwogCXJlc3VsdC0+cGFyYW1FeGVjVHlwZXMgPSBnbG9iLT5wYXJh bUV4ZWNUeXBlczsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rlcy5oIGIv c3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmgKaW5kZXggYjYxODU4MjVmY2IuLmE5Y2Y5ZGQw ZjI5IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaAorKysgYi9zcmMv aW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaApAQCAtMTEyLDYgKzExMiwxMiBAQCB0eXBlZGVmIHN0 cnVjdCBQbGFubmVkU3RtdAogCSAqLwogCUJpdG1hcHNldCAgKnVucHJ1bmFibGVSZWxpZHM7CiAK KwkvKgorCSAqIFJUIGluZGV4ZXMgb2YgcmVsYXRpb25zIG1vZGlmaWVkIGJ5IHRoZSBxdWVyeSB0 aHJvdWdoCisJICogVVBEQVRFL0RFTEVURS9JTlNFUlQvTUVSR0Ugb3IgdGFyZ2V0ZWQgYnkgU0VM RUNUIEZPUiBVUERBVEUvU0hBUkUuCisJICovCisJQml0bWFwc2V0ICAqbW9kaWZpZWRSZWxpZHM7 CisKIAkvKgogCSAqIGxpc3Qgb2YgUlRFUGVybWlzc2lvbkluZm8gbm9kZXMgZm9yIHJ0YWJsZSBl bnRyaWVzIG5lZWRpbmcgb25lCiAJICovCi0tIAoyLjQzLjAKCg== --000000000000ef09e0064dcdbb4a Content-Type: text/x-patch; charset="US-ASCII"; name="v45-0002-Thread-flags-through-begin-scan-APIs.patch" Content-Disposition: attachment; filename="v45-0002-Thread-flags-through-begin-scan-APIs.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn59eua71 RnJvbSA4NGNmZGRlYTBhZDdiMjM2MmY2YzQ3YWM2ODU3NWYyZDAwNGVkYzU1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUaHUsIDE5IE1hciAyMDI2IDE3OjA1OjU1IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2NDUgMi81XSBUaHJlYWQgZmxhZ3MgdGhyb3VnaCBiZWdpbi1zY2FuIEFQSXMKCkFkZCBh IHVzZXItc2V0dGFibGUgZmxhZ3MgcGFyYW1ldGVyIHRvIHRoZSB0YWJsZV9iZWdpbnNjYW5fKiB3 cmFwcGVycywKaW5kZXhfYmVnaW5zY2FuKCksIHRhYmxlX2luZGV4X2ZldGNoX2JlZ2luKCksIGFu ZCB0aGUgdGFibGUKQU0gY2FsbGJhY2sgaW5kZXhfZmV0Y2hfYmVnaW4oKS4gVGhpcyBhbGxvd3Mg dXNlcnMgdG8gcGFzcyBhZGRpdGlvbmFsCmNvbnRleHQgdG8gYmUgdXNlZCB3aGVuIGJ1aWxkaW5n IHRoZSBzY2FuIGRlc2NyaXB0b3JzLgoKRm9yIGluZGV4IHNjYW5zLCBhIG5ldyB1aW50MzIgZmxh Z3MgZmllbGQgaXMgYWRkZWQgdG8KSW5kZXhGZXRjaFRhYmxlRGF0YSwgYW5kIHRoZSBoZWFwIEFN IHN0b3JlcyB0aGUgY2FsbGVyLXByb3ZpZGVkIGZsYWdzCnRoZXJlIGluIGhlYXBhbV9pbmRleF9m ZXRjaF9iZWdpbigpLgoKVGhpcyBpbnRyb2R1Y2VzIGFuIGV4dGVuc2lvbiBwb2ludCBmb3IgZm9s bG93LXVwIHdvcmsgdG8gcGFzcwpwZXItc2NhbiBpbmZvcm1hdGlvbiAoc3VjaCBhcyB3aGV0aGVy IHRoZSByZWxhdGlvbiBpcyByZWFkLW9ubHkgZm9yIHRoZQpjdXJyZW50IHF1ZXJ5KSBmcm9tIHRo ZSBleGVjdXRvciB0byB0aGUgQU0gbGF5ZXIuCgpBdXRob3I6IE1lbGFuaWUgUGxhZ2VtYW4gPG1l bGFuaWVwbGFnZW1hbkBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBBbmRyZXMgRnJldW5kIDxhbmRy ZXNAYW5hcmF6ZWwuZGU+ClJldmlld2VkLWJ5OiBDaGFvIExpIDxsaS5ldmFuLmNoYW9AZ21haWwu Y29tPgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0Y1Q0REMUI1LTYyOEMtNDRBMS05 Rjg1LTM5NThDNjI2RjZBOSU0MGdtYWlsLmNvbQotLS0KIGNvbnRyaWIvcGdyb3dsb2Nrcy9wZ3Jv d2xvY2tzLmMgICAgICAgICAgIHwgIDIgKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW4u YyAgICAgICAgICAgIHwgIDEgKwogc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9naW5pbnNlcnQuYyAg ICAgICAgfCAgMSArCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1faGFuZGxlci5jICB8 ICA5ICsrLQogc3JjL2JhY2tlbmQvYWNjZXNzL2luZGV4L2dlbmFtLmMgICAgICAgICAgfCAgMiAr CiBzcmMvYmFja2VuZC9hY2Nlc3MvaW5kZXgvaW5kZXhhbS5jICAgICAgICB8ICA2ICstCiBzcmMv YmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHNvcnQuYyAgICAgICB8ICAyICstCiBzcmMvYmFja2Vu ZC9hY2Nlc3MvdGFibGUvdGFibGVhbS5jICAgICAgICB8IDE5ICsrKystLS0KIHNyYy9iYWNrZW5k L2NvbW1hbmRzL2NvbnN0cmFpbnQuYyAgICAgICAgIHwgIDIgKy0KIHNyYy9iYWNrZW5kL2NvbW1h bmRzL2NvcHl0by5jICAgICAgICAgICAgIHwgIDIgKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3Rh YmxlY21kcy5jICAgICAgICAgIHwgIDkgKystCiBzcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21k cy5jICAgICAgICAgICB8ICA0ICstCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjSW5kZXhpbmcu YyAgICAgICB8ICAzICstCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjUmVwbGljYXRpb24uYyAg ICB8IDEyICsrLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVCaXRtYXBIZWFwc2Nhbi5jIHwg IDEgKwogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUluZGV4b25seXNjYW4uYyAgfCAgMyArCiBz cmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhzY2FuLmMgICAgICB8ICA0ICsrCiBzcmMvYmFj a2VuZC9leGVjdXRvci9ub2RlU2FtcGxlc2Nhbi5jICAgICB8ICAxICsKIHNyYy9iYWNrZW5kL2V4 ZWN1dG9yL25vZGVTZXFzY2FuLmMgICAgICAgIHwgIDYgKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9y L25vZGVUaWRyYW5nZXNjYW4uYyAgIHwgIDUgKy0KIHNyYy9iYWNrZW5kL3BhcnRpdGlvbmluZy9w YXJ0Ym91bmRzLmMgICAgIHwgIDIgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9zZWxmdW5jcy5j ICAgICAgICAgIHwgIDEgKwogc3JjL2luY2x1ZGUvYWNjZXNzL2dlbmFtLmggICAgICAgICAgICAg ICAgfCAgMiArCiBzcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmggICAgICAgICAgICAgICB8ICA1 ICstCiBzcmMvaW5jbHVkZS9hY2Nlc3MvcmVsc2Nhbi5oICAgICAgICAgICAgICB8ICAxICsKIHNy Yy9pbmNsdWRlL2FjY2Vzcy90YWJsZWFtLmggICAgICAgICAgICAgIHwgNjggKysrKysrKysrKysr KysrLS0tLS0tLS0KIDI2IGZpbGVzIGNoYW5nZWQsIDExMSBpbnNlcnRpb25zKCspLCA2MiBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb250cmliL3Bncm93bG9ja3MvcGdyb3dsb2Nrcy5jIGIv Y29udHJpYi9wZ3Jvd2xvY2tzL3Bncm93bG9ja3MuYwppbmRleCBmZjM2OTJjODdjNC4uOTVmYWQ2 MWZhOWUgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGdyb3dsb2Nrcy9wZ3Jvd2xvY2tzLmMKKysrIGIv Y29udHJpYi9wZ3Jvd2xvY2tzL3Bncm93bG9ja3MuYwpAQCAtMTE1LDcgKzExNSw3IEBAIHBncm93 bG9ja3MoUEdfRlVOQ1RJT05fQVJHUykKIAkJCQkJICAgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUo cmVsKSk7CiAKIAkvKiBTY2FuIHRoZSByZWxhdGlvbiAqLwotCXNjYW4gPSB0YWJsZV9iZWdpbnNj YW4ocmVsLCBHZXRBY3RpdmVTbmFwc2hvdCgpLCAwLCBOVUxMKTsKKwlzY2FuID0gdGFibGVfYmVn aW5zY2FuKHJlbCwgMCwgR2V0QWN0aXZlU25hcHNob3QoKSwgMCwgTlVMTCk7CiAJaHNjYW4gPSAo SGVhcFNjYW5EZXNjKSBzY2FuOwogCiAJYXR0aW5tZXRhID0gVHVwbGVEZXNjR2V0QXR0SW5NZXRh ZGF0YShyc2luZm8tPnNldERlc2MpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2Jy aW4vYnJpbi5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbi5jCmluZGV4IDJhMGY4Yzhl M2I4Li43OWE3OWJlYTFjNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJp bi5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW4uYwpAQCAtMjg0NCw2ICsyODQ0 LDcgQEAgX2JyaW5fcGFyYWxsZWxfc2Nhbl9hbmRfYnVpbGQoQnJpbkJ1aWxkU3RhdGUgKnN0YXRl LAogCWluZGV4SW5mby0+aWlfQ29uY3VycmVudCA9IGJyaW5zaGFyZWQtPmlzY29uY3VycmVudDsK IAogCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWwoaGVhcCwKKwkJCQkJCQkJCTAsCiAJ CQkJCQkJCQlQYXJhbGxlbFRhYmxlU2NhbkZyb21CcmluU2hhcmVkKGJyaW5zaGFyZWQpKTsKIAog CXJlbHR1cGxlcyA9IHRhYmxlX2luZGV4X2J1aWxkX3NjYW4oaGVhcCwgaW5kZXgsIGluZGV4SW5m bywgdHJ1ZSwgdHJ1ZSwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2luaW5z ZXJ0LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2luL2dpbmluc2VydC5jCmluZGV4IGU1NDc4MmQ5 ZGQ4Li4zMjE2N2QwMzEzNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9naW5p bnNlcnQuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2luL2dpbmluc2VydC5jCkBAIC0yMDY4 LDYgKzIwNjgsNyBAQCBfZ2luX3BhcmFsbGVsX3NjYW5fYW5kX2J1aWxkKEdpbkJ1aWxkU3RhdGUg KnN0YXRlLAogCWluZGV4SW5mby0+aWlfQ29uY3VycmVudCA9IGdpbnNoYXJlZC0+aXNjb25jdXJy ZW50OwogCiAJc2NhbiA9IHRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxlbChoZWFwLAorCQkJCQkJCQkJ MCwKIAkJCQkJCQkJCVBhcmFsbGVsVGFibGVTY2FuRnJvbUdpbkJ1aWxkU2hhcmVkKGdpbnNoYXJl ZCkpOwogCiAJcmVsdHVwbGVzID0gdGFibGVfaW5kZXhfYnVpbGRfc2NhbihoZWFwLCBpbmRleCwg aW5kZXhJbmZvLCB0cnVlLCBwcm9ncmVzcywKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vz cy9oZWFwL2hlYXBhbV9oYW5kbGVyLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1f aGFuZGxlci5jCmluZGV4IGQ0MDg3ODkyOGUxLi45NTEyNzNhNGQ3ZiAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX2hhbmRsZXIuYworKysgYi9zcmMvYmFja2VuZC9h Y2Nlc3MvaGVhcC9oZWFwYW1faGFuZGxlci5jCkBAIC04MSwxMSArODEsMTIgQEAgaGVhcGFtX3Ns b3RfY2FsbGJhY2tzKFJlbGF0aW9uIHJlbGF0aW9uKQogICovCiAKIHN0YXRpYyBJbmRleEZldGNo VGFibGVEYXRhICoKLWhlYXBhbV9pbmRleF9mZXRjaF9iZWdpbihSZWxhdGlvbiByZWwpCitoZWFw YW1faW5kZXhfZmV0Y2hfYmVnaW4oUmVsYXRpb24gcmVsLCB1aW50MzIgZmxhZ3MpCiB7CiAJSW5k ZXhGZXRjaEhlYXBEYXRhICpoc2NhbiA9IHBhbGxvYzBfb2JqZWN0KEluZGV4RmV0Y2hIZWFwRGF0 YSk7CiAKIAloc2Nhbi0+eHNfYmFzZS5yZWwgPSByZWw7CisJaHNjYW4tPnhzX2Jhc2UuZmxhZ3Mg PSBmbGFnczsKIAloc2Nhbi0+eHNfY2J1ZiA9IEludmFsaWRCdWZmZXI7CiAJaHNjYW4tPnhzX3Zt YnVmZmVyID0gSW52YWxpZEJ1ZmZlcjsKIApAQCAtNzYzLDcgKzc2NCw5IEBAIGhlYXBhbV9yZWxh dGlvbl9jb3B5X2Zvcl9jbHVzdGVyKFJlbGF0aW9uIE9sZEhlYXAsIFJlbGF0aW9uIE5ld0hlYXAs CiAKIAkJdGFibGVTY2FuID0gTlVMTDsKIAkJaGVhcFNjYW4gPSBOVUxMOwotCQlpbmRleFNjYW4g PSBpbmRleF9iZWdpbnNjYW4oT2xkSGVhcCwgT2xkSW5kZXgsIFNuYXBzaG90QW55LCBOVUxMLCAw LCAwKTsKKwkJaW5kZXhTY2FuID0gaW5kZXhfYmVnaW5zY2FuKE9sZEhlYXAsIE9sZEluZGV4LAor CQkJCQkJCQkJMCwJLyogZmxhZ3MgKi8KKwkJCQkJCQkJCVNuYXBzaG90QW55LCBOVUxMLCAwLCAw KTsKIAkJaW5kZXhfcmVzY2FuKGluZGV4U2NhbiwgTlVMTCwgMCwgTlVMTCwgMCk7CiAJfQogCWVs c2UKQEAgLTc3Miw3ICs3NzUsNyBAQCBoZWFwYW1fcmVsYXRpb25fY29weV9mb3JfY2x1c3RlcihS ZWxhdGlvbiBPbGRIZWFwLCBSZWxhdGlvbiBOZXdIZWFwLAogCQlwZ3N0YXRfcHJvZ3Jlc3NfdXBk YXRlX3BhcmFtKFBST0dSRVNTX1JFUEFDS19QSEFTRSwKIAkJCQkJCQkJCSBQUk9HUkVTU19SRVBB Q0tfUEhBU0VfU0VRX1NDQU5fSEVBUCk7CiAKLQkJdGFibGVTY2FuID0gdGFibGVfYmVnaW5zY2Fu KE9sZEhlYXAsIFNuYXBzaG90QW55LCAwLCAoU2NhbktleSkgTlVMTCk7CisJCXRhYmxlU2NhbiA9 IHRhYmxlX2JlZ2luc2NhbihPbGRIZWFwLCAwLCBTbmFwc2hvdEFueSwgMCwgKFNjYW5LZXkpIE5V TEwpOwogCQloZWFwU2NhbiA9IChIZWFwU2NhbkRlc2MpIHRhYmxlU2NhbjsKIAkJaW5kZXhTY2Fu ID0gTlVMTDsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2luZGV4L2dlbmFtLmMg Yi9zcmMvYmFja2VuZC9hY2Nlc3MvaW5kZXgvZ2VuYW0uYwppbmRleCA1ZTg5Yjg2YTYyYy4uYjA5 OWQ5NTZlNDEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9pbmRleC9nZW5hbS5jCisr KyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9pbmRleC9nZW5hbS5jCkBAIC00NTUsNiArNDU1LDcgQEAg c3lzdGFibGVfYmVnaW5zY2FuKFJlbGF0aW9uIGhlYXBSZWxhdGlvbiwKIAkJfQogCiAJCXN5c3Nj YW4tPmlzY2FuID0gaW5kZXhfYmVnaW5zY2FuKGhlYXBSZWxhdGlvbiwgaXJlbCwKKwkJCQkJCQkJ CQkgMCwgLyogZmxhZ3MgKi8KIAkJCQkJCQkJCQkgc25hcHNob3QsIE5VTEwsIG5rZXlzLCAwKTsK IAkJaW5kZXhfcmVzY2FuKHN5c3NjYW4tPmlzY2FuLCBpZHhrZXksIG5rZXlzLCBOVUxMLCAwKTsK IAkJc3lzc2Nhbi0+c2NhbiA9IE5VTEw7CkBAIC03MTYsNiArNzE3LDcgQEAgc3lzdGFibGVfYmVn aW5zY2FuX29yZGVyZWQoUmVsYXRpb24gaGVhcFJlbGF0aW9uLAogCQlic3lzc2NhbiA9IHRydWU7 CiAKIAlzeXNzY2FuLT5pc2NhbiA9IGluZGV4X2JlZ2luc2NhbihoZWFwUmVsYXRpb24sIGluZGV4 UmVsYXRpb24sCisJCQkJCQkJCQkgMCwgLyogZmxhZ3MgKi8KIAkJCQkJCQkJCSBzbmFwc2hvdCwg TlVMTCwgbmtleXMsIDApOwogCWluZGV4X3Jlc2NhbihzeXNzY2FuLT5pc2NhbiwgaWR4a2V5LCBu a2V5cywgTlVMTCwgMCk7CiAJc3lzc2Nhbi0+c2NhbiA9IE5VTEw7CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9hY2Nlc3MvaW5kZXgvaW5kZXhhbS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2luZGV4 L2luZGV4YW0uYwppbmRleCBmYmZjMzMxNTllYi4uYWU3NTQ1MDMwMDcgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9pbmRleC9pbmRleGFtLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNz L2luZGV4L2luZGV4YW0uYwpAQCAtMjU2LDYgKzI1Niw3IEBAIGluZGV4X2luc2VydF9jbGVhbnVw KFJlbGF0aW9uIGluZGV4UmVsYXRpb24sCiBJbmRleFNjYW5EZXNjCiBpbmRleF9iZWdpbnNjYW4o UmVsYXRpb24gaGVhcFJlbGF0aW9uLAogCQkJCVJlbGF0aW9uIGluZGV4UmVsYXRpb24sCisJCQkJ dWludDMyIGZsYWdzLAogCQkJCVNuYXBzaG90IHNuYXBzaG90LAogCQkJCUluZGV4U2Nhbkluc3Ry dW1lbnRhdGlvbiAqaW5zdHJ1bWVudCwKIAkJCQlpbnQgbmtleXMsIGludCBub3JkZXJieXMpCkBA IC0yODUsNyArMjg2LDcgQEAgaW5kZXhfYmVnaW5zY2FuKFJlbGF0aW9uIGhlYXBSZWxhdGlvbiwK IAlzY2FuLT5pbnN0cnVtZW50ID0gaW5zdHJ1bWVudDsKIAogCS8qIHByZXBhcmUgdG8gZmV0Y2gg aW5kZXggbWF0Y2hlcyBmcm9tIHRhYmxlICovCi0Jc2Nhbi0+eHNfaGVhcGZldGNoID0gdGFibGVf aW5kZXhfZmV0Y2hfYmVnaW4oaGVhcFJlbGF0aW9uKTsKKwlzY2FuLT54c19oZWFwZmV0Y2ggPSB0 YWJsZV9pbmRleF9mZXRjaF9iZWdpbihoZWFwUmVsYXRpb24sIGZsYWdzKTsKIAogCXJldHVybiBz Y2FuOwogfQpAQCAtNTkyLDYgKzU5Myw3IEBAIGluZGV4X3BhcmFsbGVscmVzY2FuKEluZGV4U2Nh bkRlc2Mgc2NhbikKICAqLwogSW5kZXhTY2FuRGVzYwogaW5kZXhfYmVnaW5zY2FuX3BhcmFsbGVs KFJlbGF0aW9uIGhlYXByZWwsIFJlbGF0aW9uIGluZGV4cmVsLAorCQkJCQkJIHVpbnQzMiBmbGFn cywKIAkJCQkJCSBJbmRleFNjYW5JbnN0cnVtZW50YXRpb24gKmluc3RydW1lbnQsCiAJCQkJCQkg aW50IG5rZXlzLCBpbnQgbm9yZGVyYnlzLAogCQkJCQkJIFBhcmFsbGVsSW5kZXhTY2FuRGVzYyBw c2NhbikKQEAgLTYxNiw3ICs2MTgsNyBAQCBpbmRleF9iZWdpbnNjYW5fcGFyYWxsZWwoUmVsYXRp b24gaGVhcHJlbCwgUmVsYXRpb24gaW5kZXhyZWwsCiAJc2Nhbi0+aW5zdHJ1bWVudCA9IGluc3Ry dW1lbnQ7CiAKIAkvKiBwcmVwYXJlIHRvIGZldGNoIGluZGV4IG1hdGNoZXMgZnJvbSB0YWJsZSAq LwotCXNjYW4tPnhzX2hlYXBmZXRjaCA9IHRhYmxlX2luZGV4X2ZldGNoX2JlZ2luKGhlYXByZWwp OworCXNjYW4tPnhzX2hlYXBmZXRjaCA9IHRhYmxlX2luZGV4X2ZldGNoX2JlZ2luKGhlYXByZWws IGZsYWdzKTsKIAogCXJldHVybiBzY2FuOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNj ZXNzL25idHJlZS9uYnRzb3J0LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHNvcnQu YwppbmRleCA0N2E5YmRhMzBjOS4uOThlOTQxMGM1NzkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2FjY2Vzcy9uYnRyZWUvbmJ0c29ydC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUv bmJ0c29ydC5jCkBAIC0xOTI4LDcgKzE5MjgsNyBAQCBfYnRfcGFyYWxsZWxfc2Nhbl9hbmRfc29y dChCVFNwb29sICpidHNwb29sLCBCVFNwb29sICpidHNwb29sMiwKIAlpbmRleEluZm8gPSBCdWls ZEluZGV4SW5mbyhidHNwb29sLT5pbmRleCk7CiAJaW5kZXhJbmZvLT5paV9Db25jdXJyZW50ID0g YnRzaGFyZWQtPmlzY29uY3VycmVudDsKIAlzY2FuID0gdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVs KGJ0c3Bvb2wtPmhlYXAsCi0JCQkJCQkJCQlQYXJhbGxlbFRhYmxlU2NhbkZyb21CVFNoYXJlZChi dHNoYXJlZCkpOworCQkJCQkJCQkJMCwgUGFyYWxsZWxUYWJsZVNjYW5Gcm9tQlRTaGFyZWQoYnRz aGFyZWQpKTsKIAlyZWx0dXBsZXMgPSB0YWJsZV9pbmRleF9idWlsZF9zY2FuKGJ0c3Bvb2wtPmhl YXAsIGJ0c3Bvb2wtPmluZGV4LCBpbmRleEluZm8sCiAJCQkJCQkJCQkgICB0cnVlLCBwcm9ncmVz cywgX2J0X2J1aWxkX2NhbGxiYWNrLAogCQkJCQkJCQkJICAgJmJ1aWxkc3RhdGUsIHNjYW4pOwpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RhYmxlL3RhYmxlYW0uYyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy90YWJsZS90YWJsZWFtLmMKaW5kZXggZGZkYTFhZjQxMmUuLjMyYmQzZmRiN2E1 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdGFibGUvdGFibGVhbS5jCisrKyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy90YWJsZS90YWJsZWFtLmMKQEAgLTExOCw3ICsxMTgsNyBAQCB0YWJs ZV9iZWdpbnNjYW5fY2F0YWxvZyhSZWxhdGlvbiByZWxhdGlvbiwgaW50IG5rZXlzLCBTY2FuS2V5 RGF0YSAqa2V5KQogCVNuYXBzaG90CXNuYXBzaG90ID0gUmVnaXN0ZXJTbmFwc2hvdChHZXRDYXRh bG9nU25hcHNob3QocmVsaWQpKTsKIAogCXJldHVybiB0YWJsZV9iZWdpbnNjYW5fY29tbW9uKHJl bGF0aW9uLCBzbmFwc2hvdCwgbmtleXMsIGtleSwKLQkJCQkJCQkJICBOVUxMLCBmbGFncyk7CisJ CQkJCQkJCSAgTlVMTCwgZmxhZ3MsIDApOwogfQogCiAKQEAgLTE2MywxMCArMTYzLDEwIEBAIHRh YmxlX3BhcmFsbGVsc2Nhbl9pbml0aWFsaXplKFJlbGF0aW9uIHJlbCwgUGFyYWxsZWxUYWJsZVNj YW5EZXNjIHBzY2FuLAogfQogCiBUYWJsZVNjYW5EZXNjCi10YWJsZV9iZWdpbnNjYW5fcGFyYWxs ZWwoUmVsYXRpb24gcmVsYXRpb24sIFBhcmFsbGVsVGFibGVTY2FuRGVzYyBwc2NhbikKK3RhYmxl X2JlZ2luc2Nhbl9wYXJhbGxlbChSZWxhdGlvbiByZWxhdGlvbiwgdWludDMyIGZsYWdzLCBQYXJh bGxlbFRhYmxlU2NhbkRlc2MgcHNjYW4pCiB7CiAJU25hcHNob3QJc25hcHNob3Q7Ci0JdWludDMy CQlmbGFncyA9IFNPX1RZUEVfU0VRU0NBTiB8CisJdWludDMyCQlpbnRlcm5hbF9mbGFncyA9IFNP X1RZUEVfU0VRU0NBTiB8CiAJCVNPX0FMTE9XX1NUUkFUIHwgU09fQUxMT1dfU1lOQyB8IFNPX0FM TE9XX1BBR0VNT0RFOwogCiAJQXNzZXJ0KFJlbEZpbGVMb2NhdG9yRXF1YWxzKHJlbGF0aW9uLT5y ZF9sb2NhdG9yLCBwc2Nhbi0+cGhzX2xvY2F0b3IpKTsKQEAgLTE3Niw3ICsxNzYsNyBAQCB0YWJs ZV9iZWdpbnNjYW5fcGFyYWxsZWwoUmVsYXRpb24gcmVsYXRpb24sIFBhcmFsbGVsVGFibGVTY2Fu RGVzYyBwc2NhbikKIAkJLyogU25hcHNob3Qgd2FzIHNlcmlhbGl6ZWQgLS0gcmVzdG9yZSBpdCAq LwogCQlzbmFwc2hvdCA9IFJlc3RvcmVTbmFwc2hvdCgoY2hhciAqKSBwc2NhbiArIHBzY2FuLT5w aHNfc25hcHNob3Rfb2ZmKTsKIAkJUmVnaXN0ZXJTbmFwc2hvdChzbmFwc2hvdCk7Ci0JCWZsYWdz IHw9IFNPX1RFTVBfU05BUFNIT1Q7CisJCWludGVybmFsX2ZsYWdzIHw9IFNPX1RFTVBfU05BUFNI T1Q7CiAJfQogCWVsc2UKIAl7CkBAIC0xODUsMTYgKzE4NSwxNyBAQCB0YWJsZV9iZWdpbnNjYW5f cGFyYWxsZWwoUmVsYXRpb24gcmVsYXRpb24sIFBhcmFsbGVsVGFibGVTY2FuRGVzYyBwc2NhbikK IAl9CiAKIAlyZXR1cm4gdGFibGVfYmVnaW5zY2FuX2NvbW1vbihyZWxhdGlvbiwgc25hcHNob3Qs IDAsIE5VTEwsCi0JCQkJCQkJCSAgcHNjYW4sIGZsYWdzKTsKKwkJCQkJCQkJICBwc2NhbiwgaW50 ZXJuYWxfZmxhZ3MsIGZsYWdzKTsKIH0KIAogVGFibGVTY2FuRGVzYwogdGFibGVfYmVnaW5zY2Fu X3BhcmFsbGVsX3RpZHJhbmdlKFJlbGF0aW9uIHJlbGF0aW9uLAorCQkJCQkJCQkgIHVpbnQzMiBm bGFncywKIAkJCQkJCQkJICBQYXJhbGxlbFRhYmxlU2NhbkRlc2MgcHNjYW4pCiB7CiAJU25hcHNo b3QJc25hcHNob3Q7Ci0JdWludDMyCQlmbGFncyA9IFNPX1RZUEVfVElEUkFOR0VTQ0FOIHwgU09f QUxMT1dfUEFHRU1PREU7CiAJVGFibGVTY2FuRGVzYyBzc2NhbjsKKwl1aW50MzIJCWludGVybmFs X2ZsYWdzID0gU09fVFlQRV9USURSQU5HRVNDQU4gfCBTT19BTExPV19QQUdFTU9ERTsKIAogCUFz c2VydChSZWxGaWxlTG9jYXRvckVxdWFscyhyZWxhdGlvbi0+cmRfbG9jYXRvciwgcHNjYW4tPnBo c19sb2NhdG9yKSk7CiAKQEAgLTIwNiw3ICsyMDcsNyBAQCB0YWJsZV9iZWdpbnNjYW5fcGFyYWxs ZWxfdGlkcmFuZ2UoUmVsYXRpb24gcmVsYXRpb24sCiAJCS8qIFNuYXBzaG90IHdhcyBzZXJpYWxp emVkIC0tIHJlc3RvcmUgaXQgKi8KIAkJc25hcHNob3QgPSBSZXN0b3JlU25hcHNob3QoKGNoYXIg KikgcHNjYW4gKyBwc2Nhbi0+cGhzX3NuYXBzaG90X29mZik7CiAJCVJlZ2lzdGVyU25hcHNob3Qo c25hcHNob3QpOwotCQlmbGFncyB8PSBTT19URU1QX1NOQVBTSE9UOworCQlpbnRlcm5hbF9mbGFn cyB8PSBTT19URU1QX1NOQVBTSE9UOwogCX0KIAllbHNlCiAJewpAQCAtMjE1LDcgKzIxNiw3IEBA IHRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxlbF90aWRyYW5nZShSZWxhdGlvbiByZWxhdGlvbiwKIAl9 CiAKIAlzc2NhbiA9IHRhYmxlX2JlZ2luc2Nhbl9jb21tb24ocmVsYXRpb24sIHNuYXBzaG90LCAw LCBOVUxMLAotCQkJCQkJCQkgICBwc2NhbiwgZmxhZ3MpOworCQkJCQkJCQkgICBwc2NhbiwgaW50 ZXJuYWxfZmxhZ3MsIGZsYWdzKTsKIAlyZXR1cm4gc3NjYW47CiB9CiAKQEAgLTI0OCw3ICsyNDks NyBAQCB0YWJsZV9pbmRleF9mZXRjaF90dXBsZV9jaGVjayhSZWxhdGlvbiByZWwsCiAJYm9vbAkJ Zm91bmQ7CiAKIAlzbG90ID0gdGFibGVfc2xvdF9jcmVhdGUocmVsLCBOVUxMKTsKLQlzY2FuID0g dGFibGVfaW5kZXhfZmV0Y2hfYmVnaW4ocmVsKTsKKwlzY2FuID0gdGFibGVfaW5kZXhfZmV0Y2hf YmVnaW4ocmVsLCAwKTsKIAlmb3VuZCA9IHRhYmxlX2luZGV4X2ZldGNoX3R1cGxlKHNjYW4sIHRp ZCwgc25hcHNob3QsIHNsb3QsICZjYWxsX2FnYWluLAogCQkJCQkJCQkJYWxsX2RlYWQpOwogCXRh YmxlX2luZGV4X2ZldGNoX2VuZChzY2FuKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL2NvbnN0cmFpbnQuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvbnN0cmFpbnQuYwppbmRl eCBjYzExYzQ3YjZmMi4uMzdjZmJkNjM5MzggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL2NvbnN0cmFpbnQuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9jb25zdHJhaW50LmMK QEAgLTEwNiw3ICsxMDYsNyBAQCB1bmlxdWVfa2V5X3JlY2hlY2soUEdfRlVOQ1RJT05fQVJHUykK IAkgKi8KIAl0bXB0aWQgPSBjaGVja3RpZDsKIAl7Ci0JCUluZGV4RmV0Y2hUYWJsZURhdGEgKnNj YW4gPSB0YWJsZV9pbmRleF9mZXRjaF9iZWdpbih0cmlnZGF0YS0+dGdfcmVsYXRpb24pOworCQlJ bmRleEZldGNoVGFibGVEYXRhICpzY2FuID0gdGFibGVfaW5kZXhfZmV0Y2hfYmVnaW4odHJpZ2Rh dGEtPnRnX3JlbGF0aW9uLCAwKTsKIAkJYm9vbAkJY2FsbF9hZ2FpbiA9IGZhbHNlOwogCiAJCWlm ICghdGFibGVfaW5kZXhfZmV0Y2hfdHVwbGUoc2NhbiwgJnRtcHRpZCwgU25hcHNob3RTZWxmLCBz bG90LApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weXRvLmMgYi9zcmMvYmFj a2VuZC9jb21tYW5kcy9jb3B5dG8uYwppbmRleCBmYWY2MmQ5NTliNC4uMzkwYjQyNjBhZGEgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHl0by5jCisrKyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL2NvcHl0by5jCkBAIC0xMzM2LDcgKzEzMzYsNyBAQCBDb3B5UmVsYXRpb25UbyhD b3B5VG9TdGF0ZSBjc3RhdGUsIFJlbGF0aW9uIHJlbCwgUmVsYXRpb24gcm9vdF9yZWwsIHVpbnQ2 NCAqcHJvYwogCUF0dHJNYXAgICAgKm1hcCA9IE5VTEw7CiAJVHVwbGVUYWJsZVNsb3QgKnJvb3Rf c2xvdCA9IE5VTEw7CiAKLQlzY2FuZGVzYyA9IHRhYmxlX2JlZ2luc2NhbihyZWwsIEdldEFjdGl2 ZVNuYXBzaG90KCksIDAsIE5VTEwpOworCXNjYW5kZXNjID0gdGFibGVfYmVnaW5zY2FuKHJlbCwg MCwgR2V0QWN0aXZlU25hcHNob3QoKSwgMCwgTlVMTCk7CiAJc2xvdCA9IHRhYmxlX3Nsb3RfY3Jl YXRlKHJlbCwgTlVMTCk7CiAKIAkvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv dGFibGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwppbmRleCBjNjlj MTJkYzAxNC4uMTRkODA4NjcxYzUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Rh YmxlY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCkBAIC02NDEx LDcgKzY0MTEsNyBAQCBBVFJld3JpdGVUYWJsZShBbHRlcmVkVGFibGVJbmZvICp0YWIsIE9pZCBP SUROZXdIZWFwKQogCQkgKiBjaGVja2luZyBhbGwgdGhlIGNvbnN0cmFpbnRzLgogCQkgKi8KIAkJ c25hcHNob3QgPSBSZWdpc3RlclNuYXBzaG90KEdldExhdGVzdFNuYXBzaG90KCkpOwotCQlzY2Fu ID0gdGFibGVfYmVnaW5zY2FuKG9sZHJlbCwgc25hcHNob3QsIDAsIE5VTEwpOworCQlzY2FuID0g dGFibGVfYmVnaW5zY2FuKG9sZHJlbCwgMCwgc25hcHNob3QsIDAsIE5VTEwpOwogCiAJCS8qCiAJ CSAqIFN3aXRjaCB0byBwZXItdHVwbGUgbWVtb3J5IGNvbnRleHQgYW5kIHJlc2V0IGl0IGZvciBl YWNoIHR1cGxlCkBAIC0xMzk4MCw4ICsxMzk4MCw3IEBAIHZhbGlkYXRlRm9yZWlnbktleUNvbnN0 cmFpbnQoY2hhciAqY29ubmFtZSwKIAkgKi8KIAlzbmFwc2hvdCA9IFJlZ2lzdGVyU25hcHNob3Qo R2V0TGF0ZXN0U25hcHNob3QoKSk7CiAJc2xvdCA9IHRhYmxlX3Nsb3RfY3JlYXRlKHJlbCwgTlVM TCk7Ci0Jc2NhbiA9IHRhYmxlX2JlZ2luc2NhbihyZWwsIHNuYXBzaG90LCAwLCBOVUxMKTsKLQor CXNjYW4gPSB0YWJsZV9iZWdpbnNjYW4ocmVsLCAwLCBzbmFwc2hvdCwgMCwgTlVMTCk7CiAJcGVy VHVwQ3h0ID0gQWxsb2NTZXRDb250ZXh0Q3JlYXRlKEN1cnJlbnRNZW1vcnlDb250ZXh0LAogCQkJ CQkJCQkJICAidmFsaWRhdGVGb3JlaWduS2V5Q29uc3RyYWludCIsCiAJCQkJCQkJCQkgIEFMTE9D U0VUX1NNQUxMX1NJWkVTKTsKQEAgLTIyODgyLDcgKzIyODgxLDcgQEAgTWVyZ2VQYXJ0aXRpb25z TW92ZVJvd3MoTGlzdCAqKndxdWV1ZSwgTGlzdCAqbWVyZ2luZ1BhcnRpdGlvbnMsIFJlbGF0aW9u IG5ld1BhcnQKIAogCQkvKiBTY2FuIHRocm91Z2ggdGhlIHJvd3MuICovCiAJCXNuYXBzaG90ID0g UmVnaXN0ZXJTbmFwc2hvdChHZXRMYXRlc3RTbmFwc2hvdCgpKTsKLQkJc2NhbiA9IHRhYmxlX2Jl Z2luc2NhbihtZXJnaW5nUGFydGl0aW9uLCBzbmFwc2hvdCwgMCwgTlVMTCk7CisJCXNjYW4gPSB0 YWJsZV9iZWdpbnNjYW4obWVyZ2luZ1BhcnRpdGlvbiwgMCwgc25hcHNob3QsIDAsIE5VTEwpOwog CiAJCS8qCiAJCSAqIFN3aXRjaCB0byBwZXItdHVwbGUgbWVtb3J5IGNvbnRleHQgYW5kIHJlc2V0 IGl0IGZvciBlYWNoIHR1cGxlCkBAIC0yMzM0Niw3ICsyMzM0NSw3IEBAIFNwbGl0UGFydGl0aW9u TW92ZVJvd3MoTGlzdCAqKndxdWV1ZSwgUmVsYXRpb24gcmVsLCBSZWxhdGlvbiBzcGxpdFJlbCwK IAogCS8qIFNjYW4gdGhyb3VnaCB0aGUgcm93cy4gKi8KIAlzbmFwc2hvdCA9IFJlZ2lzdGVyU25h cHNob3QoR2V0TGF0ZXN0U25hcHNob3QoKSk7Ci0Jc2NhbiA9IHRhYmxlX2JlZ2luc2NhbihzcGxp dFJlbCwgc25hcHNob3QsIDAsIE5VTEwpOworCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW4oc3BsaXRS ZWwsIDAsIHNuYXBzaG90LCAwLCBOVUxMKTsKIAogCS8qCiAJICogU3dpdGNoIHRvIHBlci10dXBs ZSBtZW1vcnkgY29udGV4dCBhbmQgcmVzZXQgaXQgZm9yIGVhY2ggdHVwbGUKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3R5cGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90 eXBlY21kcy5jCmluZGV4IDNkYWI2YmI1YTc5Li44YzVkNWU3MDhhMSAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvdHlwZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90 eXBlY21kcy5jCkBAIC0zMTg1LDcgKzMxODUsNyBAQCB2YWxpZGF0ZURvbWFpbk5vdE51bGxDb25z dHJhaW50KE9pZCBkb21haW5vaWQpCiAKIAkJLyogU2NhbiBhbGwgdHVwbGVzIGluIHRoaXMgcmVs YXRpb24gKi8KIAkJc25hcHNob3QgPSBSZWdpc3RlclNuYXBzaG90KEdldExhdGVzdFNuYXBzaG90 KCkpOwotCQlzY2FuID0gdGFibGVfYmVnaW5zY2FuKHRlc3RyZWwsIHNuYXBzaG90LCAwLCBOVUxM KTsKKwkJc2NhbiA9IHRhYmxlX2JlZ2luc2Nhbih0ZXN0cmVsLCAwLCBzbmFwc2hvdCwgMCwgTlVM TCk7CiAJCXNsb3QgPSB0YWJsZV9zbG90X2NyZWF0ZSh0ZXN0cmVsLCBOVUxMKTsKIAkJd2hpbGUg KHRhYmxlX3NjYW5fZ2V0bmV4dHNsb3Qoc2NhbiwgRm9yd2FyZFNjYW5EaXJlY3Rpb24sIHNsb3Qp KQogCQl7CkBAIC0zMjY2LDcgKzMyNjYsNyBAQCB2YWxpZGF0ZURvbWFpbkNoZWNrQ29uc3RyYWlu dChPaWQgZG9tYWlub2lkLCBjb25zdCBjaGFyICpjY2JpbiwgTE9DS01PREUgbG9ja21vZAogCiAJ CS8qIFNjYW4gYWxsIHR1cGxlcyBpbiB0aGlzIHJlbGF0aW9uICovCiAJCXNuYXBzaG90ID0gUmVn aXN0ZXJTbmFwc2hvdChHZXRMYXRlc3RTbmFwc2hvdCgpKTsKLQkJc2NhbiA9IHRhYmxlX2JlZ2lu c2Nhbih0ZXN0cmVsLCBzbmFwc2hvdCwgMCwgTlVMTCk7CisJCXNjYW4gPSB0YWJsZV9iZWdpbnNj YW4odGVzdHJlbCwgMCwgc25hcHNob3QsIDAsIE5VTEwpOwogCQlzbG90ID0gdGFibGVfc2xvdF9j cmVhdGUodGVzdHJlbCwgTlVMTCk7CiAJCXdoaWxlICh0YWJsZV9zY2FuX2dldG5leHRzbG90KHNj YW4sIEZvcndhcmRTY2FuRGlyZWN0aW9uLCBzbG90KSkKIAkJewpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvZXhlY3V0b3IvZXhlY0luZGV4aW5nLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVj SW5kZXhpbmcuYwppbmRleCA5ZDA3MWU0OTVjNi4uYzQ2YmVlZGViNzEgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNJbmRleGluZy5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL2V4ZWNJbmRleGluZy5jCkBAIC04MTUsNyArODE1LDggQEAgY2hlY2tfZXhjbHVzaW9uX29y X3VuaXF1ZV9jb25zdHJhaW50KFJlbGF0aW9uIGhlYXAsIFJlbGF0aW9uIGluZGV4LAogcmV0cnk6 CiAJY29uZmxpY3QgPSBmYWxzZTsKIAlmb3VuZF9zZWxmID0gZmFsc2U7Ci0JaW5kZXhfc2NhbiA9 IGluZGV4X2JlZ2luc2NhbihoZWFwLCBpbmRleCwgJkRpcnR5U25hcHNob3QsIE5VTEwsIGluZG5r ZXlhdHRzLCAwKTsKKwlpbmRleF9zY2FuID0gaW5kZXhfYmVnaW5zY2FuKGhlYXAsIGluZGV4LCAw LAkvKiBmbGFncyAqLworCQkJCQkJCQkgJkRpcnR5U25hcHNob3QsIE5VTEwsIGluZG5rZXlhdHRz LCAwKTsKIAlpbmRleF9yZXNjYW4oaW5kZXhfc2Nhbiwgc2NhbmtleXMsIGluZG5rZXlhdHRzLCBO VUxMLCAwKTsKIAogCXdoaWxlIChpbmRleF9nZXRuZXh0X3Nsb3QoaW5kZXhfc2NhbiwgRm9yd2Fy ZFNjYW5EaXJlY3Rpb24sIGV4aXN0aW5nX3Nsb3QpKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv ZXhlY3V0b3IvZXhlY1JlcGxpY2F0aW9uLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUmVw bGljYXRpb24uYwppbmRleCAyNDk3ZWU3ZWRjNS4uM2VmNGQ1ZDhiYjIgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSZXBsaWNhdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4 ZWN1dG9yL2V4ZWNSZXBsaWNhdGlvbi5jCkBAIC0yMDUsNyArMjA1LDkgQEAgUmVsYXRpb25GaW5k UmVwbFR1cGxlQnlJbmRleChSZWxhdGlvbiByZWwsIE9pZCBpZHhvaWQsCiAJc2tleV9hdHRvZmYg PSBidWlsZF9yZXBsaW5kZXhfc2Nhbl9rZXkoc2tleSwgcmVsLCBpZHhyZWwsIHNlYXJjaHNsb3Qp OwogCiAJLyogU3RhcnQgYW4gaW5kZXggc2Nhbi4gKi8KLQlzY2FuID0gaW5kZXhfYmVnaW5zY2Fu KHJlbCwgaWR4cmVsLCAmc25hcCwgTlVMTCwgc2tleV9hdHRvZmYsIDApOworCXNjYW4gPSBpbmRl eF9iZWdpbnNjYW4ocmVsLCBpZHhyZWwsCisJCQkJCQkgICAwLAkvKiBmbGFncyAqLworCQkJCQkJ ICAgJnNuYXAsIE5VTEwsIHNrZXlfYXR0b2ZmLCAwKTsKIAogcmV0cnk6CiAJZm91bmQgPSBmYWxz ZTsKQEAgLTM4Myw3ICszODUsNyBAQCBSZWxhdGlvbkZpbmRSZXBsVHVwbGVTZXEoUmVsYXRpb24g cmVsLCBMb2NrVHVwbGVNb2RlIGxvY2ttb2RlLAogCiAJLyogU3RhcnQgYSBoZWFwIHNjYW4uICov CiAJSW5pdERpcnR5U25hcHNob3Qoc25hcCk7Ci0Jc2NhbiA9IHRhYmxlX2JlZ2luc2NhbihyZWws ICZzbmFwLCAwLCBOVUxMKTsKKwlzY2FuID0gdGFibGVfYmVnaW5zY2FuKHJlbCwgMCwgJnNuYXAs IDAsIE5VTEwpOwogCXNjYW5zbG90ID0gdGFibGVfc2xvdF9jcmVhdGUocmVsLCBOVUxMKTsKIAog cmV0cnk6CkBAIC02MDIsNyArNjA0LDcgQEAgUmVsYXRpb25GaW5kRGVsZXRlZFR1cGxlSW5mb1Nl cShSZWxhdGlvbiByZWwsIFR1cGxlVGFibGVTbG90ICpzZWFyY2hzbG90LAogCSAqIG5vdCB5ZXQg Y29tbWl0dGVkIG9yIHRob3NlIGp1c3QgY29tbWl0dGVkIHByaW9yIHRvIHRoZSBzY2FuIGFyZQog CSAqIGV4Y2x1ZGVkIGluIHVwZGF0ZV9tb3N0X3JlY2VudF9kZWxldGlvbl9pbmZvKCkuCiAJICov Ci0Jc2NhbiA9IHRhYmxlX2JlZ2luc2NhbihyZWwsIFNuYXBzaG90QW55LCAwLCBOVUxMKTsKKwlz Y2FuID0gdGFibGVfYmVnaW5zY2FuKHJlbCwgMCwgU25hcHNob3RBbnksIDAsIE5VTEwpOwogCXNj YW5zbG90ID0gdGFibGVfc2xvdF9jcmVhdGUocmVsLCBOVUxMKTsKIAogCXRhYmxlX3Jlc2Nhbihz Y2FuLCBOVUxMKTsKQEAgLTY2Niw3ICs2NjgsOSBAQCBSZWxhdGlvbkZpbmREZWxldGVkVHVwbGVJ bmZvQnlJbmRleChSZWxhdGlvbiByZWwsIE9pZCBpZHhvaWQsCiAJICogbm90IHlldCBjb21taXR0 ZWQgb3IgdGhvc2UganVzdCBjb21taXR0ZWQgcHJpb3IgdG8gdGhlIHNjYW4gYXJlCiAJICogZXhj bHVkZWQgaW4gdXBkYXRlX21vc3RfcmVjZW50X2RlbGV0aW9uX2luZm8oKS4KIAkgKi8KLQlzY2Fu ID0gaW5kZXhfYmVnaW5zY2FuKHJlbCwgaWR4cmVsLCBTbmFwc2hvdEFueSwgTlVMTCwgc2tleV9h dHRvZmYsIDApOworCXNjYW4gPSBpbmRleF9iZWdpbnNjYW4ocmVsLCBpZHhyZWwsCisJCQkJCQkg ICAwLAkvKiBmbGFncyAqLworCQkJCQkJICAgU25hcHNob3RBbnksIE5VTEwsIHNrZXlfYXR0b2Zm LCAwKTsKIAogCWluZGV4X3Jlc2NhbihzY2FuLCBza2V5LCBza2V5X2F0dG9mZiwgTlVMTCwgMCk7 CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVCaXRtYXBIZWFwc2Nhbi5j IGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUJpdG1hcEhlYXBzY2FuLmMKaW5kZXggN2NmOGQy M2M3NDIuLjdlMmMxYjc0NjdiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2Rl Qml0bWFwSGVhcHNjYW4uYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlQml0bWFwSGVh cHNjYW4uYwpAQCAtMTQ2LDYgKzE0Niw3IEBAIEJpdG1hcFRhYmxlU2NhblNldHVwKEJpdG1hcEhl YXBTY2FuU3RhdGUgKm5vZGUpCiAJewogCQlub2RlLT5zcy5zc19jdXJyZW50U2NhbkRlc2MgPQog CQkJdGFibGVfYmVnaW5zY2FuX2JtKG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwKKwkJCQkJ CQkgICAwLAogCQkJCQkJCSAgIG5vZGUtPnNzLnBzLnN0YXRlLT5lc19zbmFwc2hvdCwKIAkJCQkJ CQkgICAwLAogCQkJCQkJCSAgIE5VTEwpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0 b3Ivbm9kZUluZGV4b25seXNjYW4uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleG9u bHlzY2FuLmMKaW5kZXggOWVhYjgxZmQxYzguLjVjYWNiNGIyMTVhIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhvbmx5c2Nhbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4 ZWN1dG9yL25vZGVJbmRleG9ubHlzY2FuLmMKQEAgLTkyLDYgKzkyLDcgQEAgSW5kZXhPbmx5TmV4 dChJbmRleE9ubHlTY2FuU3RhdGUgKm5vZGUpCiAJCSAqLwogCQlzY2FuZGVzYyA9IGluZGV4X2Jl Z2luc2Nhbihub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sCiAJCQkJCQkJCSAgIG5vZGUtPmlv c3NfUmVsYXRpb25EZXNjLAorCQkJCQkJCQkgICAwLAkvKiBmbGFncyAqLwogCQkJCQkJCQkgICBl c3RhdGUtPmVzX3NuYXBzaG90LAogCQkJCQkJCQkgICBub2RlLT5pb3NzX0luc3RydW1lbnQsCiAJ CQkJCQkJCSAgIG5vZGUtPmlvc3NfTnVtU2NhbktleXMsCkBAIC03OTEsNiArNzkyLDcgQEAgRXhl Y0luZGV4T25seVNjYW5Jbml0aWFsaXplRFNNKEluZGV4T25seVNjYW5TdGF0ZSAqbm9kZSwKIAlu b2RlLT5pb3NzX1NjYW5EZXNjID0KIAkJaW5kZXhfYmVnaW5zY2FuX3BhcmFsbGVsKG5vZGUtPnNz LnNzX2N1cnJlbnRSZWxhdGlvbiwKIAkJCQkJCQkJIG5vZGUtPmlvc3NfUmVsYXRpb25EZXNjLAor CQkJCQkJCQkgMCwgLyogZmxhZ3MgKi8KIAkJCQkJCQkJIG5vZGUtPmlvc3NfSW5zdHJ1bWVudCwK IAkJCQkJCQkJIG5vZGUtPmlvc3NfTnVtU2NhbktleXMsCiAJCQkJCQkJCSBub2RlLT5pb3NzX051 bU9yZGVyQnlLZXlzLApAQCAtODU3LDYgKzg1OSw3IEBAIEV4ZWNJbmRleE9ubHlTY2FuSW5pdGlh bGl6ZVdvcmtlcihJbmRleE9ubHlTY2FuU3RhdGUgKm5vZGUsCiAJbm9kZS0+aW9zc19TY2FuRGVz YyA9CiAJCWluZGV4X2JlZ2luc2Nhbl9wYXJhbGxlbChub2RlLT5zcy5zc19jdXJyZW50UmVsYXRp b24sCiAJCQkJCQkJCSBub2RlLT5pb3NzX1JlbGF0aW9uRGVzYywKKwkJCQkJCQkJIDAsIC8qIGZs YWdzICovCiAJCQkJCQkJCSBub2RlLT5pb3NzX0luc3RydW1lbnQsCiAJCQkJCQkJCSBub2RlLT5p b3NzX051bVNjYW5LZXlzLAogCQkJCQkJCQkgbm9kZS0+aW9zc19OdW1PcmRlckJ5S2V5cywKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleHNjYW4uYyBiL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL25vZGVJbmRleHNjYW4uYwppbmRleCAwNjE0M2U5NGM1YS4uYWFlZjMxZGJi YWQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleHNjYW4uYworKysg Yi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhzY2FuLmMKQEAgLTExMCw2ICsxMTAsNyBA QCBJbmRleE5leHQoSW5kZXhTY2FuU3RhdGUgKm5vZGUpCiAJCSAqLwogCQlzY2FuZGVzYyA9IGlu ZGV4X2JlZ2luc2Nhbihub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sCiAJCQkJCQkJCSAgIG5v ZGUtPmlzc19SZWxhdGlvbkRlc2MsCisJCQkJCQkJCSAgIDAsCS8qIGZsYWdzICovCiAJCQkJCQkJ CSAgIGVzdGF0ZS0+ZXNfc25hcHNob3QsCiAJCQkJCQkJCSAgIG5vZGUtPmlzc19JbnN0cnVtZW50 LAogCQkJCQkJCQkgICBub2RlLT5pc3NfTnVtU2NhbktleXMsCkBAIC0yMDYsNiArMjA3LDcgQEAg SW5kZXhOZXh0V2l0aFJlb3JkZXIoSW5kZXhTY2FuU3RhdGUgKm5vZGUpCiAJCSAqLwogCQlzY2Fu ZGVzYyA9IGluZGV4X2JlZ2luc2Nhbihub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sCiAJCQkJ CQkJCSAgIG5vZGUtPmlzc19SZWxhdGlvbkRlc2MsCisJCQkJCQkJCSAgIDAsCS8qIGZsYWdzICov CiAJCQkJCQkJCSAgIGVzdGF0ZS0+ZXNfc25hcHNob3QsCiAJCQkJCQkJCSAgIG5vZGUtPmlzc19J bnN0cnVtZW50LAogCQkJCQkJCQkgICBub2RlLT5pc3NfTnVtU2NhbktleXMsCkBAIC0xNzI3LDYg KzE3MjksNyBAQCBFeGVjSW5kZXhTY2FuSW5pdGlhbGl6ZURTTShJbmRleFNjYW5TdGF0ZSAqbm9k ZSwKIAlub2RlLT5pc3NfU2NhbkRlc2MgPQogCQlpbmRleF9iZWdpbnNjYW5fcGFyYWxsZWwobm9k ZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLAogCQkJCQkJCQkgbm9kZS0+aXNzX1JlbGF0aW9uRGVz YywKKwkJCQkJCQkJIDAsIC8qIGZsYWdzICovCiAJCQkJCQkJCSBub2RlLT5pc3NfSW5zdHJ1bWVu dCwKIAkJCQkJCQkJIG5vZGUtPmlzc19OdW1TY2FuS2V5cywKIAkJCQkJCQkJIG5vZGUtPmlzc19O dW1PcmRlckJ5S2V5cywKQEAgLTE3OTEsNiArMTc5NCw3IEBAIEV4ZWNJbmRleFNjYW5Jbml0aWFs aXplV29ya2VyKEluZGV4U2NhblN0YXRlICpub2RlLAogCW5vZGUtPmlzc19TY2FuRGVzYyA9CiAJ CWluZGV4X2JlZ2luc2Nhbl9wYXJhbGxlbChub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sCiAJ CQkJCQkJCSBub2RlLT5pc3NfUmVsYXRpb25EZXNjLAorCQkJCQkJCQkgMCwgLyogZmxhZ3MgKi8K IAkJCQkJCQkJIG5vZGUtPmlzc19JbnN0cnVtZW50LAogCQkJCQkJCQkgbm9kZS0+aXNzX051bVNj YW5LZXlzLAogCQkJCQkJCQkgbm9kZS0+aXNzX051bU9yZGVyQnlLZXlzLApkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVNhbXBsZXNjYW4uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL25vZGVTYW1wbGVzY2FuLmMKaW5kZXggNmIwZDY1Zjc1MmYuLmNmNGRkNmExNmI0IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlU2FtcGxlc2Nhbi5jCisrKyBiL3NyYy9i YWNrZW5kL2V4ZWN1dG9yL25vZGVTYW1wbGVzY2FuLmMKQEAgLTI5NCw2ICsyOTQsNyBAQCB0YWJs ZXNhbXBsZV9pbml0KFNhbXBsZVNjYW5TdGF0ZSAqc2NhbnN0YXRlKQogCXsKIAkJc2NhbnN0YXRl LT5zcy5zc19jdXJyZW50U2NhbkRlc2MgPQogCQkJdGFibGVfYmVnaW5zY2FuX3NhbXBsaW5nKHNj YW5zdGF0ZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLAorCQkJCQkJCQkJIDAsCiAJCQkJCQkJCQkg c2NhbnN0YXRlLT5zcy5wcy5zdGF0ZS0+ZXNfc25hcHNob3QsCiAJCQkJCQkJCQkgMCwgTlVMTCwK IAkJCQkJCQkJCSBzY2Fuc3RhdGUtPnVzZV9idWxrcmVhZCwKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL25vZGVTZXFzY2FuLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlU2Vx c2Nhbi5jCmluZGV4IDhmMjE5ZjYwYTkzLi4zNzZlODc3ZTg3YyAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvZXhlY3V0b3Ivbm9kZVNlcXNjYW4uYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9u b2RlU2Vxc2Nhbi5jCkBAIC03MCw3ICs3MCw3IEBAIFNlcU5leHQoU2VxU2NhblN0YXRlICpub2Rl KQogCQkgKiBleGVjdXRpbmcgYSBzY2FuIHRoYXQgd2FzIHBsYW5uZWQgdG8gYmUgcGFyYWxsZWwu CiAJCSAqLwogCQlzY2FuZGVzYyA9IHRhYmxlX2JlZ2luc2Nhbihub2RlLT5zcy5zc19jdXJyZW50 UmVsYXRpb24sCi0JCQkJCQkJCSAgIGVzdGF0ZS0+ZXNfc25hcHNob3QsCisJCQkJCQkJCSAgIDAs IGVzdGF0ZS0+ZXNfc25hcHNob3QsCiAJCQkJCQkJCSAgIDAsIE5VTEwpOwogCQlub2RlLT5zcy5z c19jdXJyZW50U2NhbkRlc2MgPSBzY2FuZGVzYzsKIAl9CkBAIC0zNzUsNyArMzc1LDcgQEAgRXhl Y1NlcVNjYW5Jbml0aWFsaXplRFNNKFNlcVNjYW5TdGF0ZSAqbm9kZSwKIAkJCQkJCQkJICBlc3Rh dGUtPmVzX3NuYXBzaG90KTsKIAlzaG1fdG9jX2luc2VydChwY3h0LT50b2MsIG5vZGUtPnNzLnBz LnBsYW4tPnBsYW5fbm9kZV9pZCwgcHNjYW4pOwogCW5vZGUtPnNzLnNzX2N1cnJlbnRTY2FuRGVz YyA9Ci0JCXRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxlbChub2RlLT5zcy5zc19jdXJyZW50UmVsYXRp b24sIHBzY2FuKTsKKwkJdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsKG5vZGUtPnNzLnNzX2N1cnJl bnRSZWxhdGlvbiwgMCwgcHNjYW4pOwogfQogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC00MDgsNSArNDA4LDUg QEAgRXhlY1NlcVNjYW5Jbml0aWFsaXplV29ya2VyKFNlcVNjYW5TdGF0ZSAqbm9kZSwKIAogCXBz Y2FuID0gc2htX3RvY19sb29rdXAocHdjeHQtPnRvYywgbm9kZS0+c3MucHMucGxhbi0+cGxhbl9u b2RlX2lkLCBmYWxzZSk7CiAJbm9kZS0+c3Muc3NfY3VycmVudFNjYW5EZXNjID0KLQkJdGFibGVf YmVnaW5zY2FuX3BhcmFsbGVsKG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwgcHNjYW4pOwor CQl0YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWwobm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLCAw LCBwc2Nhbik7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlVGlkcmFu Z2VzY2FuLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlVGlkcmFuZ2VzY2FuLmMKaW5kZXgg NjE3NzEzYmRlMDQuLmJhY2Q3YWE1YmM0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRv ci9ub2RlVGlkcmFuZ2VzY2FuLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVRpZHJh bmdlc2Nhbi5jCkBAIC0yNDMsNiArMjQzLDcgQEAgVGlkUmFuZ2VOZXh0KFRpZFJhbmdlU2NhblN0 YXRlICpub2RlKQogCQlpZiAoc2NhbmRlc2MgPT0gTlVMTCkKIAkJewogCQkJc2NhbmRlc2MgPSB0 YWJsZV9iZWdpbnNjYW5fdGlkcmFuZ2Uobm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLAorCQkJ CQkJCQkJCQkJMCwKIAkJCQkJCQkJCQkJCWVzdGF0ZS0+ZXNfc25hcHNob3QsCiAJCQkJCQkJCQkJ CQkmbm9kZS0+dHJzc19taW50aWQsCiAJCQkJCQkJCQkJCQkmbm9kZS0+dHJzc19tYXh0aWQpOwpA QCAtNDYwLDcgKzQ2MSw3IEBAIEV4ZWNUaWRSYW5nZVNjYW5Jbml0aWFsaXplRFNNKFRpZFJhbmdl U2NhblN0YXRlICpub2RlLCBQYXJhbGxlbENvbnRleHQgKnBjeHQpCiAJc2htX3RvY19pbnNlcnQo cGN4dC0+dG9jLCBub2RlLT5zcy5wcy5wbGFuLT5wbGFuX25vZGVfaWQsIHBzY2FuKTsKIAlub2Rl LT5zcy5zc19jdXJyZW50U2NhbkRlc2MgPQogCQl0YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWxfdGlk cmFuZ2Uobm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLAotCQkJCQkJCQkJCSAgcHNjYW4pOwor CQkJCQkJCQkJCSAgMCwgcHNjYW4pOwogfQogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC00OTQsNSArNDk1LDUg QEAgRXhlY1RpZFJhbmdlU2NhbkluaXRpYWxpemVXb3JrZXIoVGlkUmFuZ2VTY2FuU3RhdGUgKm5v ZGUsCiAJcHNjYW4gPSBzaG1fdG9jX2xvb2t1cChwd2N4dC0+dG9jLCBub2RlLT5zcy5wcy5wbGFu LT5wbGFuX25vZGVfaWQsIGZhbHNlKTsKIAlub2RlLT5zcy5zc19jdXJyZW50U2NhbkRlc2MgPQog CQl0YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWxfdGlkcmFuZ2Uobm9kZS0+c3Muc3NfY3VycmVudFJl bGF0aW9uLAotCQkJCQkJCQkJCSAgcHNjYW4pOworCQkJCQkJCQkJCSAgMCwgcHNjYW4pOwogfQpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFydGl0aW9uaW5nL3BhcnRib3VuZHMuYyBiL3NyYy9i YWNrZW5kL3BhcnRpdGlvbmluZy9wYXJ0Ym91bmRzLmMKaW5kZXggMGNhMzEyYWMyN2QuLjkxOWRm NWVlZjBhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJ0aXRpb25pbmcvcGFydGJvdW5kcy5j CisrKyBiL3NyYy9iYWNrZW5kL3BhcnRpdGlvbmluZy9wYXJ0Ym91bmRzLmMKQEAgLTMzNjIsNyAr MzM2Miw3IEBAIGNoZWNrX2RlZmF1bHRfcGFydGl0aW9uX2NvbnRlbnRzKFJlbGF0aW9uIHBhcmVu dCwgUmVsYXRpb24gZGVmYXVsdF9yZWwsCiAJCWVjb250ZXh0ID0gR2V0UGVyVHVwbGVFeHByQ29u dGV4dChlc3RhdGUpOwogCQlzbmFwc2hvdCA9IFJlZ2lzdGVyU25hcHNob3QoR2V0TGF0ZXN0U25h cHNob3QoKSk7CiAJCXR1cHNsb3QgPSB0YWJsZV9zbG90X2NyZWF0ZShwYXJ0X3JlbCwgJmVzdGF0 ZS0+ZXNfdHVwbGVUYWJsZSk7Ci0JCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW4ocGFydF9yZWwsIHNu YXBzaG90LCAwLCBOVUxMKTsKKwkJc2NhbiA9IHRhYmxlX2JlZ2luc2NhbihwYXJ0X3JlbCwgMCwg c25hcHNob3QsIDAsIE5VTEwpOwogCiAJCS8qCiAJCSAqIFN3aXRjaCB0byBwZXItdHVwbGUgbWVt b3J5IGNvbnRleHQgYW5kIHJlc2V0IGl0IGZvciBlYWNoIHR1cGxlCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC91dGlscy9hZHQvc2VsZnVuY3MuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9zZWxm dW5jcy5jCmluZGV4IDUzZjg1Y2NkZTAxLi4wNTI4ZjgxNjZkOCAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L3NlbGZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Nl bGZ1bmNzLmMKQEAgLTcxNzcsNiArNzE3Nyw3IEBAIGdldF9hY3R1YWxfdmFyaWFibGVfZW5kcG9p bnQoUmVsYXRpb24gaGVhcFJlbCwKIAkJCQkJCQkgIEdsb2JhbFZpc1Rlc3RGb3IoaGVhcFJlbCkp OwogCiAJaW5kZXhfc2NhbiA9IGluZGV4X2JlZ2luc2NhbihoZWFwUmVsLCBpbmRleFJlbCwKKwkJ CQkJCQkJIDAsIC8qIGZsYWdzICovCiAJCQkJCQkJCSAmU25hcHNob3ROb25WYWN1dW1hYmxlLCBO VUxMLAogCQkJCQkJCQkgMSwgMCk7CiAJLyogU2V0IGl0IHVwIGZvciBpbmRleC1vbmx5IHNjYW4g Ki8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9nZW5hbS5oIGIvc3JjL2luY2x1ZGUv YWNjZXNzL2dlbmFtLmgKaW5kZXggMWEyN2JmMDYwYjMuLjI0YjJmZGE1MWRmIDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9hY2Nlc3MvZ2VuYW0uaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvZ2Vu YW0uaApAQCAtMTU2LDYgKzE1Niw3IEBAIGV4dGVybiB2b2lkIGluZGV4X2luc2VydF9jbGVhbnVw KFJlbGF0aW9uIGluZGV4UmVsYXRpb24sCiAKIGV4dGVybiBJbmRleFNjYW5EZXNjIGluZGV4X2Jl Z2luc2NhbihSZWxhdGlvbiBoZWFwUmVsYXRpb24sCiAJCQkJCQkJCQkgUmVsYXRpb24gaW5kZXhS ZWxhdGlvbiwKKwkJCQkJCQkJCSB1aW50MzIgZmxhZ3MsCiAJCQkJCQkJCQkgU25hcHNob3Qgc25h cHNob3QsCiAJCQkJCQkJCQkgSW5kZXhTY2FuSW5zdHJ1bWVudGF0aW9uICppbnN0cnVtZW50LAog CQkJCQkJCQkJIGludCBua2V5cywgaW50IG5vcmRlcmJ5cyk7CkBAIC0xODIsNiArMTgzLDcgQEAg ZXh0ZXJuIHZvaWQgaW5kZXhfcGFyYWxsZWxzY2FuX2luaXRpYWxpemUoUmVsYXRpb24gaGVhcFJl bGF0aW9uLAogZXh0ZXJuIHZvaWQgaW5kZXhfcGFyYWxsZWxyZXNjYW4oSW5kZXhTY2FuRGVzYyBz Y2FuKTsKIGV4dGVybiBJbmRleFNjYW5EZXNjIGluZGV4X2JlZ2luc2Nhbl9wYXJhbGxlbChSZWxh dGlvbiBoZWFwcmVsLAogCQkJCQkJCQkJCQkgIFJlbGF0aW9uIGluZGV4cmVsLAorCQkJCQkJCQkJ CQkgIHVpbnQzMiBmbGFncywKIAkJCQkJCQkJCQkJICBJbmRleFNjYW5JbnN0cnVtZW50YXRpb24g Kmluc3RydW1lbnQsCiAJCQkJCQkJCQkJCSAgaW50IG5rZXlzLCBpbnQgbm9yZGVyYnlzLAogCQkJ CQkJCQkJCQkgIFBhcmFsbGVsSW5kZXhTY2FuRGVzYyBwc2Nhbik7CmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmgKaW5k ZXggOWI0MDMyMDMwMDYuLmUyZTA3MzQ4ZjM3IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nl c3MvaGVhcGFtLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oCkBAIC05NSwxMCAr OTUsNyBAQCB0eXBlZGVmIHN0cnVjdCBIZWFwU2NhbkRlc2NEYXRhCiAJICovCiAJUGFyYWxsZWxC bG9ja1RhYmxlU2NhbldvcmtlckRhdGEgKnJzX3BhcmFsbGVsd29ya2VyZGF0YTsKIAotCS8qCi0J ICogRm9yIHNlcXVlbnRpYWwgc2NhbnMgYW5kIGJpdG1hcCBoZWFwIHNjYW5zLiBUaGUgY3VycmVu dCBoZWFwIGJsb2NrJ3MKLQkgKiBjb3JyZXNwb25kaW5nIHBhZ2UgaW4gdGhlIHZpc2liaWxpdHkg bWFwLgotCSAqLworCS8qIEN1cnJlbnQgaGVhcCBibG9jaydzIGNvcnJlc3BvbmRpbmcgcGFnZSBp biB0aGUgdmlzaWJpbGl0eSBtYXAgKi8KIAlCdWZmZXIJCXJzX3ZtYnVmZmVyOwogCiAJLyogdGhl c2UgZmllbGRzIG9ubHkgdXNlZCBpbiBwYWdlLWF0LWEtdGltZSBtb2RlIGFuZCBmb3IgYml0bWFw IHNjYW5zICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvcmVsc2Nhbi5oIGIvc3Jj L2luY2x1ZGUvYWNjZXNzL3JlbHNjYW4uaAppbmRleCBjZTM0MGMwNzZmOC4uODBlYTBiNDM3ZDEg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9yZWxzY2FuLmgKKysrIGIvc3JjL2luY2x1 ZGUvYWNjZXNzL3JlbHNjYW4uaApAQCAtMTIyLDYgKzEyMiw3IEBAIHR5cGVkZWYgc3RydWN0IFBh cmFsbGVsQmxvY2tUYWJsZVNjYW5Xb3JrZXJEYXRhICpQYXJhbGxlbEJsb2NrVGFibGVTY2FuV29y a2VyOwogdHlwZWRlZiBzdHJ1Y3QgSW5kZXhGZXRjaFRhYmxlRGF0YQogewogCVJlbGF0aW9uCXJl bDsKKwl1aW50MzIJCWZsYWdzOwogfSBJbmRleEZldGNoVGFibGVEYXRhOwogCiBzdHJ1Y3QgSW5k ZXhTY2FuSW5zdHJ1bWVudGF0aW9uOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3Rh YmxlYW0uaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy90YWJsZWFtLmgKaW5kZXggMDYwODQ3NTIyNDUu LmUxZjkwZjJiNmE3IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvdGFibGVhbS5oCisr KyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy90YWJsZWFtLmgKQEAgLTY1LDYgKzY1LDE2IEBAIHR5cGVk ZWYgZW51bSBTY2FuT3B0aW9ucwogCVNPX1RFTVBfU05BUFNIT1QgPSAxIDw8IDksCiB9CQkJU2Nh bk9wdGlvbnM7CiAKKy8qCisgKiBNYXNrIG9mIGZsYWdzIHRoYXQgYXJlIHNldCBpbnRlcm5hbGx5 IGJ5IHRoZSB0YWJsZV9iZWdpbnNjYW5fKiBmdW5jdGlvbnMKKyAqIGFuZCBtdXN0IG5vdCBiZSBw YXNzZWQgYnkgY2FsbGVycy4KKyAqLworI2RlZmluZSBTT19JTlRFUk5BTF9GTEFHUyBcCisJKFNP X1RZUEVfU0VRU0NBTiB8IFNPX1RZUEVfQklUTUFQU0NBTiB8IFNPX1RZUEVfU0FNUExFU0NBTiB8 IFwKKwkgU09fVFlQRV9USURTQ0FOIHwgU09fVFlQRV9USURSQU5HRVNDQU4gfCBTT19UWVBFX0FO QUxZWkUgfCBcCisJIFNPX0FMTE9XX1NUUkFUIHwgU09fQUxMT1dfU1lOQyB8IFNPX0FMTE9XX1BB R0VNT0RFIHwgXAorCSBTT19URU1QX1NOQVBTSE9UKQorCiAvKgogICogUmVzdWx0IGNvZGVzIGZv ciB0YWJsZV97dXBkYXRlLGRlbGV0ZSxsb2NrX3R1cGxlfSwgYW5kIGZvciB2aXNpYmlsaXR5CiAg KiByb3V0aW5lcyBpbnNpZGUgdGFibGUgQU1zLgpAQCAtNDIwLDcgKzQzMCw3IEBAIHR5cGVkZWYg c3RydWN0IFRhYmxlQW1Sb3V0aW5lCiAJICoKIAkgKiBUdXBsZXMgZm9yIGFuIGluZGV4IHNjYW4g Y2FuIHRoZW4gYmUgZmV0Y2hlZCB2aWEgaW5kZXhfZmV0Y2hfdHVwbGUuCiAJICovCi0Jc3RydWN0 IEluZGV4RmV0Y2hUYWJsZURhdGEgKigqaW5kZXhfZmV0Y2hfYmVnaW4pIChSZWxhdGlvbiByZWwp OworCXN0cnVjdCBJbmRleEZldGNoVGFibGVEYXRhICooKmluZGV4X2ZldGNoX2JlZ2luKSAoUmVs YXRpb24gcmVsLCB1aW50MzIgZmxhZ3MpOwogCiAJLyoKIAkgKiBSZXNldCBpbmRleCBmZXRjaC4g VHlwaWNhbGx5IHRoaXMgd2lsbCByZWxlYXNlIGNyb3NzIGluZGV4IGZldGNoCkBAIC04NzEsMTIg Kzg4MSwxOCBAQCBleHRlcm4gVHVwbGVUYWJsZVNsb3QgKnRhYmxlX3Nsb3RfY3JlYXRlKFJlbGF0 aW9uIHJlbGF0aW9uLCBMaXN0ICoqcmVnbGlzdCk7CiAgKiBBIHdyYXBwZXIgYXJvdW5kIHRoZSBU YWJsZSBBY2Nlc3MgTWV0aG9kIHNjYW5fYmVnaW4gY2FsbGJhY2ssIHRvIGNlbnRyYWxpemUKICAq IGVycm9yIGNoZWNraW5nLiBBbGwgY2FsbHMgdG8gLT5zY2FuX2JlZ2luKCkgc2hvdWxkIGdvIHRo cm91Z2ggdGhpcwogICogZnVuY3Rpb24uCisgKgorICogVGhlIGNhbGxlci1wcm92aWRlZCB1c2Vy X2ZsYWdzIGFyZSB2YWxpZGF0ZWQgYWdhaW5zdCBTT19JTlRFUk5BTF9GTEFHUyB0bworICogY2F0 Y2ggY2FsbGVycyB0aGF0IGFjY2lkZW50YWxseSBwYXNzIHNjYW4tdHlwZSBvciBvdGhlciBpbnRl cm5hbCBmbGFncy4KICAqLwogc3RhdGljIFRhYmxlU2NhbkRlc2MKIHRhYmxlX2JlZ2luc2Nhbl9j b21tb24oUmVsYXRpb24gcmVsLCBTbmFwc2hvdCBzbmFwc2hvdCwgaW50IG5rZXlzLAogCQkJCQkg ICBTY2FuS2V5RGF0YSAqa2V5LCBQYXJhbGxlbFRhYmxlU2NhbkRlc2MgcHNjYW4sCi0JCQkJCSAg IHVpbnQzMiBmbGFncykKKwkJCQkJICAgdWludDMyIGZsYWdzLCB1aW50MzIgdXNlcl9mbGFncykK IHsKKwlBc3NlcnQoKHVzZXJfZmxhZ3MgJiBTT19JTlRFUk5BTF9GTEFHUykgPT0gMCk7CisJZmxh Z3MgfD0gdXNlcl9mbGFnczsKKwogCS8qCiAJICogV2UgZG9uJ3QgYWxsb3cgc2NhbnMgdG8gYmUg c3RhcnRlZCB3aGlsZSBDaGVja1hpZEFsaXZlIGlzIHNldCwgZXhjZXB0CiAJICogdmlhIHN5c3Rh YmxlX2JlZ2luc2NhbigpIGV0IGFsLiAgU2VlIGRldGFpbGVkIGNvbW1lbnRzIGluIHhhY3QuYyB3 aGVyZQpAQCAtODkzLDEzICs5MDksMTQgQEAgdGFibGVfYmVnaW5zY2FuX2NvbW1vbihSZWxhdGlv biByZWwsIFNuYXBzaG90IHNuYXBzaG90LCBpbnQgbmtleXMsCiAgKiBgc25hcHNob3RgLCBhbmQg aWYgbmtleXMgIT0gMCwgdGhlIHJlc3VsdHMgYXJlIGZpbHRlcmVkIGJ5IHRob3NlIHNjYW4ga2V5 cy4KICAqLwogc3RhdGljIGlubGluZSBUYWJsZVNjYW5EZXNjCi10YWJsZV9iZWdpbnNjYW4oUmVs YXRpb24gcmVsLCBTbmFwc2hvdCBzbmFwc2hvdCwKK3RhYmxlX2JlZ2luc2NhbihSZWxhdGlvbiBy ZWwsIHVpbnQzMiBmbGFncywgU25hcHNob3Qgc25hcHNob3QsCiAJCQkJaW50IG5rZXlzLCBTY2Fu S2V5RGF0YSAqa2V5KQogewotCXVpbnQzMgkJZmxhZ3MgPSBTT19UWVBFX1NFUVNDQU4gfAorCXVp bnQzMgkJaW50ZXJuYWxfZmxhZ3MgPSBTT19UWVBFX1NFUVNDQU4gfAogCQlTT19BTExPV19TVFJB VCB8IFNPX0FMTE9XX1NZTkMgfCBTT19BTExPV19QQUdFTU9ERTsKIAotCXJldHVybiB0YWJsZV9i ZWdpbnNjYW5fY29tbW9uKHJlbCwgc25hcHNob3QsIG5rZXlzLCBrZXksIE5VTEwsIGZsYWdzKTsK KwlyZXR1cm4gdGFibGVfYmVnaW5zY2FuX2NvbW1vbihyZWwsIHNuYXBzaG90LCBua2V5cywga2V5 LCBOVUxMLAorCQkJCQkJCQkgIGludGVybmFsX2ZsYWdzLCBmbGFncyk7CiB9CiAKIC8qCkBAIC05 MjgsNyArOTQ1LDcgQEAgdGFibGVfYmVnaW5zY2FuX3N0cmF0KFJlbGF0aW9uIHJlbCwgU25hcHNo b3Qgc25hcHNob3QsCiAJaWYgKGFsbG93X3N5bmMpCiAJCWZsYWdzIHw9IFNPX0FMTE9XX1NZTkM7 CiAKLQlyZXR1cm4gdGFibGVfYmVnaW5zY2FuX2NvbW1vbihyZWwsIHNuYXBzaG90LCBua2V5cywg a2V5LCBOVUxMLCBmbGFncyk7CisJcmV0dXJuIHRhYmxlX2JlZ2luc2Nhbl9jb21tb24ocmVsLCBz bmFwc2hvdCwgbmtleXMsIGtleSwgTlVMTCwgZmxhZ3MsIDApOwogfQogCiAvKgpAQCAtOTM4LDEy ICs5NTUsMTMgQEAgdGFibGVfYmVnaW5zY2FuX3N0cmF0KFJlbGF0aW9uIHJlbCwgU25hcHNob3Qg c25hcHNob3QsCiAgKiBtYWtlIGl0IHdvcnRoIHVzaW5nIHRoZSBzYW1lIGRhdGEgc3RydWN0dXJl LgogICovCiBzdGF0aWMgaW5saW5lIFRhYmxlU2NhbkRlc2MKLXRhYmxlX2JlZ2luc2Nhbl9ibShS ZWxhdGlvbiByZWwsIFNuYXBzaG90IHNuYXBzaG90LAordGFibGVfYmVnaW5zY2FuX2JtKFJlbGF0 aW9uIHJlbCwgdWludDMyIGZsYWdzLCBTbmFwc2hvdCBzbmFwc2hvdCwKIAkJCQkgICBpbnQgbmtl eXMsIFNjYW5LZXlEYXRhICprZXkpCiB7Ci0JdWludDMyCQlmbGFncyA9IFNPX1RZUEVfQklUTUFQ U0NBTiB8IFNPX0FMTE9XX1BBR0VNT0RFOworCXVpbnQzMgkJaW50ZXJuYWxfZmxhZ3MgPSBTT19U WVBFX0JJVE1BUFNDQU4gfCBTT19BTExPV19QQUdFTU9ERTsKIAotCXJldHVybiB0YWJsZV9iZWdp bnNjYW5fY29tbW9uKHJlbCwgc25hcHNob3QsIG5rZXlzLCBrZXksIE5VTEwsIGZsYWdzKTsKKwly ZXR1cm4gdGFibGVfYmVnaW5zY2FuX2NvbW1vbihyZWwsIHNuYXBzaG90LCBua2V5cywga2V5LCBO VUxMLAorCQkJCQkJCQkgIGludGVybmFsX2ZsYWdzLCBmbGFncyk7CiB9CiAKIC8qCkBAIC05NTQs MjEgKzk3MiwyMiBAQCB0YWJsZV9iZWdpbnNjYW5fYm0oUmVsYXRpb24gcmVsLCBTbmFwc2hvdCBz bmFwc2hvdCwKICAqIGFsc28gYWxsb3dzIGNvbnRyb2wgb2Ygd2hldGhlciBwYWdlLW1vZGUgdmlz aWJpbGl0eSBjaGVja2luZyBpcyB1c2VkLgogICovCiBzdGF0aWMgaW5saW5lIFRhYmxlU2NhbkRl c2MKLXRhYmxlX2JlZ2luc2Nhbl9zYW1wbGluZyhSZWxhdGlvbiByZWwsIFNuYXBzaG90IHNuYXBz aG90LAordGFibGVfYmVnaW5zY2FuX3NhbXBsaW5nKFJlbGF0aW9uIHJlbCwgdWludDMyIGZsYWdz LCBTbmFwc2hvdCBzbmFwc2hvdCwKIAkJCQkJCSBpbnQgbmtleXMsIFNjYW5LZXlEYXRhICprZXks CiAJCQkJCQkgYm9vbCBhbGxvd19zdHJhdCwgYm9vbCBhbGxvd19zeW5jLAogCQkJCQkJIGJvb2wg YWxsb3dfcGFnZW1vZGUpCiB7Ci0JdWludDMyCQlmbGFncyA9IFNPX1RZUEVfU0FNUExFU0NBTjsK Kwl1aW50MzIJCWludGVybmFsX2ZsYWdzID0gU09fVFlQRV9TQU1QTEVTQ0FOOwogCiAJaWYgKGFs bG93X3N0cmF0KQotCQlmbGFncyB8PSBTT19BTExPV19TVFJBVDsKKwkJaW50ZXJuYWxfZmxhZ3Mg fD0gU09fQUxMT1dfU1RSQVQ7CiAJaWYgKGFsbG93X3N5bmMpCi0JCWZsYWdzIHw9IFNPX0FMTE9X X1NZTkM7CisJCWludGVybmFsX2ZsYWdzIHw9IFNPX0FMTE9XX1NZTkM7CiAJaWYgKGFsbG93X3Bh Z2Vtb2RlKQotCQlmbGFncyB8PSBTT19BTExPV19QQUdFTU9ERTsKKwkJaW50ZXJuYWxfZmxhZ3Mg fD0gU09fQUxMT1dfUEFHRU1PREU7CiAKLQlyZXR1cm4gdGFibGVfYmVnaW5zY2FuX2NvbW1vbihy ZWwsIHNuYXBzaG90LCBua2V5cywga2V5LCBOVUxMLCBmbGFncyk7CisJcmV0dXJuIHRhYmxlX2Jl Z2luc2Nhbl9jb21tb24ocmVsLCBzbmFwc2hvdCwgbmtleXMsIGtleSwgTlVMTCwKKwkJCQkJCQkJ ICBpbnRlcm5hbF9mbGFncywgZmxhZ3MpOwogfQogCiAvKgpAQCAtOTgxLDcgKzEwMDAsNyBAQCB0 YWJsZV9iZWdpbnNjYW5fdGlkKFJlbGF0aW9uIHJlbCwgU25hcHNob3Qgc25hcHNob3QpCiB7CiAJ dWludDMyCQlmbGFncyA9IFNPX1RZUEVfVElEU0NBTjsKIAotCXJldHVybiB0YWJsZV9iZWdpbnNj YW5fY29tbW9uKHJlbCwgc25hcHNob3QsIDAsIE5VTEwsIE5VTEwsIGZsYWdzKTsKKwlyZXR1cm4g dGFibGVfYmVnaW5zY2FuX2NvbW1vbihyZWwsIHNuYXBzaG90LCAwLCBOVUxMLCBOVUxMLCBmbGFn cywgMCk7CiB9CiAKIC8qCkBAIC05OTQsNyArMTAxMyw3IEBAIHRhYmxlX2JlZ2luc2Nhbl9hbmFs eXplKFJlbGF0aW9uIHJlbCkKIHsKIAl1aW50MzIJCWZsYWdzID0gU09fVFlQRV9BTkFMWVpFOwog Ci0JcmV0dXJuIHRhYmxlX2JlZ2luc2Nhbl9jb21tb24ocmVsLCBOVUxMLCAwLCBOVUxMLCBOVUxM LCBmbGFncyk7CisJcmV0dXJuIHRhYmxlX2JlZ2luc2Nhbl9jb21tb24ocmVsLCBOVUxMLCAwLCBO VUxMLCBOVUxMLCBmbGFncywgMCk7CiB9CiAKIC8qCkBAIC0xMDU3LDE0ICsxMDc2LDE1IEBAIHRh YmxlX3NjYW5fZ2V0bmV4dHNsb3QoVGFibGVTY2FuRGVzYyBzc2NhbiwgU2NhbkRpcmVjdGlvbiBk aXJlY3Rpb24sIFR1cGxlVGFibGVTCiAgKiBmb3IgYSBUSUQgcmFuZ2Ugc2Nhbi4KICAqLwogc3Rh dGljIGlubGluZSBUYWJsZVNjYW5EZXNjCi10YWJsZV9iZWdpbnNjYW5fdGlkcmFuZ2UoUmVsYXRp b24gcmVsLCBTbmFwc2hvdCBzbmFwc2hvdCwKK3RhYmxlX2JlZ2luc2Nhbl90aWRyYW5nZShSZWxh dGlvbiByZWwsIHVpbnQzMiBmbGFncywgU25hcHNob3Qgc25hcHNob3QsCiAJCQkJCQkgSXRlbVBv aW50ZXIgbWludGlkLAogCQkJCQkJIEl0ZW1Qb2ludGVyIG1heHRpZCkKIHsKIAlUYWJsZVNjYW5E ZXNjIHNzY2FuOwotCXVpbnQzMgkJZmxhZ3MgPSBTT19UWVBFX1RJRFJBTkdFU0NBTiB8IFNPX0FM TE9XX1BBR0VNT0RFOworCXVpbnQzMgkJaW50ZXJuYWxfZmxhZ3MgPSBTT19UWVBFX1RJRFJBTkdF U0NBTiB8IFNPX0FMTE9XX1BBR0VNT0RFOwogCi0Jc3NjYW4gPSB0YWJsZV9iZWdpbnNjYW5fY29t bW9uKHJlbCwgc25hcHNob3QsIDAsIE5VTEwsIE5VTEwsIGZsYWdzKTsKKwlzc2NhbiA9IHRhYmxl X2JlZ2luc2Nhbl9jb21tb24ocmVsLCBzbmFwc2hvdCwgMCwgTlVMTCwgTlVMTCwKKwkJCQkJCQkJ ICAgaW50ZXJuYWxfZmxhZ3MsIGZsYWdzKTsKIAogCS8qIFNldCB0aGUgcmFuZ2Ugb2YgVElEcyB0 byBzY2FuICovCiAJc3NjYW4tPnJzX3JkLT5yZF90YWJsZWFtLT5zY2FuX3NldF90aWRyYW5nZShz c2NhbiwgbWludGlkLCBtYXh0aWQpOwpAQCAtMTEzOSw2ICsxMTU5LDcgQEAgZXh0ZXJuIHZvaWQg dGFibGVfcGFyYWxsZWxzY2FuX2luaXRpYWxpemUoUmVsYXRpb24gcmVsLAogICogQ2FsbGVyIG11 c3QgaG9sZCBhIHN1aXRhYmxlIGxvY2sgb24gdGhlIHJlbGF0aW9uLgogICovCiBleHRlcm4gVGFi bGVTY2FuRGVzYyB0YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWwoUmVsYXRpb24gcmVsYXRpb24sCisJ CQkJCQkJCQkJCSAgdWludDMyIGZsYWdzLAogCQkJCQkJCQkJCQkgIFBhcmFsbGVsVGFibGVTY2Fu RGVzYyBwc2Nhbik7CiAKIC8qCkBAIC0xMTQ5LDYgKzExNzAsNyBAQCBleHRlcm4gVGFibGVTY2Fu RGVzYyB0YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWwoUmVsYXRpb24gcmVsYXRpb24sCiAgKiBDYWxs ZXIgbXVzdCBob2xkIGEgc3VpdGFibGUgbG9jayBvbiB0aGUgcmVsYXRpb24uCiAgKi8KIGV4dGVy biBUYWJsZVNjYW5EZXNjIHRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxlbF90aWRyYW5nZShSZWxhdGlv biByZWxhdGlvbiwKKwkJCQkJCQkJCQkJCQkgICB1aW50MzIgZmxhZ3MsCiAJCQkJCQkJCQkJCQkJ ICAgUGFyYWxsZWxUYWJsZVNjYW5EZXNjIHBzY2FuKTsKIAogLyoKQEAgLTExNzUsOCArMTE5Nywx MCBAQCB0YWJsZV9wYXJhbGxlbHNjYW5fcmVpbml0aWFsaXplKFJlbGF0aW9uIHJlbCwgUGFyYWxs ZWxUYWJsZVNjYW5EZXNjIHBzY2FuKQogICogVHVwbGVzIGZvciBhbiBpbmRleCBzY2FuIGNhbiB0 aGVuIGJlIGZldGNoZWQgdmlhIHRhYmxlX2luZGV4X2ZldGNoX3R1cGxlKCkuCiAgKi8KIHN0YXRp YyBpbmxpbmUgSW5kZXhGZXRjaFRhYmxlRGF0YSAqCi10YWJsZV9pbmRleF9mZXRjaF9iZWdpbihS ZWxhdGlvbiByZWwpCit0YWJsZV9pbmRleF9mZXRjaF9iZWdpbihSZWxhdGlvbiByZWwsIHVpbnQz MiBmbGFncykKIHsKKwlBc3NlcnQoKGZsYWdzICYgU09fSU5URVJOQUxfRkxBR1MpID09IDApOwor CiAJLyoKIAkgKiBXZSBkb24ndCBhbGxvdyBzY2FucyB0byBiZSBzdGFydGVkIHdoaWxlIENoZWNr WGlkQWxpdmUgaXMgc2V0LCBleGNlcHQKIAkgKiB2aWEgc3lzdGFibGVfYmVnaW5zY2FuKCkgZXQg YWwuICBTZWUgZGV0YWlsZWQgY29tbWVudHMgaW4geGFjdC5jIHdoZXJlCkBAIC0xMTg1LDcgKzEy MDksNyBAQCB0YWJsZV9pbmRleF9mZXRjaF9iZWdpbihSZWxhdGlvbiByZWwpCiAJaWYgKHVubGlr ZWx5KFRyYW5zYWN0aW9uSWRJc1ZhbGlkKENoZWNrWGlkQWxpdmUpICYmICFic3lzc2NhbikpCiAJ CWVsb2coRVJST1IsICJzY2FuIHN0YXJ0ZWQgZHVyaW5nIGxvZ2ljYWwgZGVjb2RpbmciKTsKIAot CXJldHVybiByZWwtPnJkX3RhYmxlYW0tPmluZGV4X2ZldGNoX2JlZ2luKHJlbCk7CisJcmV0dXJu IHJlbC0+cmRfdGFibGVhbS0+aW5kZXhfZmV0Y2hfYmVnaW4ocmVsLCBmbGFncyk7CiB9CiAKIC8q Ci0tIAoyLjQzLjAKCg== --000000000000ef09e0064dcdbb4a Content-Type: text/x-patch; charset="US-ASCII"; name="v45-0003-Pass-down-information-on-table-modification-to-s.patch" Content-Disposition: attachment; filename="v45-0003-Pass-down-information-on-table-modification-to-s.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn59ex442 RnJvbSA3YjQwMGU5Y2NkN2Q4ZDgzMzU4YmQ1MDNiNzIwOWM4ZWQxZWM3ZWEzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBNb24sIDIgTWFyIDIwMjYgMTY6MzE6MzMgLTA1MDAKU3ViamVjdDogW1BB VENIIHY0NSAzLzVdIFBhc3MgZG93biBpbmZvcm1hdGlvbiBvbiB0YWJsZSBtb2RpZmljYXRpb24g dG8gc2Nhbgogbm9kZQoKUGFzcyBkb3duIGluZm9ybWF0aW9uIHRvIHNlcXVlbnRpYWwgc2Nhbiwg aW5kZXggW29ubHldIHNjYW4sIGJpdG1hcAp0YWJsZSBzY2FuLCBzYW1wbGUgc2NhbiwgYW5kIFRJ RCByYW5nZSBzY2FuIG5vZGVzIG9uIHdoZXRoZXIgb3Igbm90IHRoZQpxdWVyeSBtb2RpZmllcyB0 aGUgcmVsYXRpb24gYmVpbmcgc2Nhbm5lZC4gQSBsYXRlciBjb21taXQgd2lsbCB1c2UgdGhpcwpp bmZvcm1hdGlvbiB0byB1cGRhdGUgdGhlIFZNIGR1cmluZyBvbi1hY2Nlc3MgcHJ1bmluZyBvbmx5 IGlmIHRoZQpyZWxhdGlvbiBpcyBub3QgbW9kaWZpZWQgYnkgdGhlIHF1ZXJ5LgoKQXV0aG9yOiBN ZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21haWwuY29tPgpSZXZpZXdlZC1ieTog QW5kcmVzIEZyZXVuZCA8YW5kcmVzQGFuYXJhemVsLmRlPgpSZXZpZXdlZC1ieTogQW5kcmV5IEJv cm9kaW4gPHg0bW1tQHlhbmRleC10ZWFtLnJ1PgpSZXZpZXdlZC1ieTogQ2hhbyBMaSA8bGkuZXZh bi5jaGFvQGdtYWlsLmNvbT4KRGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS80Mzc5RkRB My05NDQ2LTRFMkMtOUMxNS0zMkVGRThENEYzMUIlNDB5YW5kZXgtdGVhbS5ydQotLS0KIHNyYy9i YWNrZW5kL2V4ZWN1dG9yL2V4ZWNVdGlscy5jICAgICAgICAgIHwgIDggKysrKysrKysKIHNyYy9i YWNrZW5kL2V4ZWN1dG9yL25vZGVCaXRtYXBIZWFwc2Nhbi5jIHwgIDUgKysrKy0KIHNyYy9iYWNr ZW5kL2V4ZWN1dG9yL25vZGVJbmRleG9ubHlzY2FuLmMgIHwgMTEgKysrKysrKystLS0KIHNyYy9i YWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleHNjYW4uYyAgICAgIHwgMTYgKysrKysrKysrKysrLS0t LQogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVNhbXBsZXNjYW4uYyAgICAgfCAgNSArKysrLQog c3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVNlcXNjYW4uYyAgICAgICAgfCAxNCArKysrKysrKysr Ky0tLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVRpZHJhbmdlc2Nhbi5jICAgfCAxNSArKysr KysrKysrKystLS0KIHNyYy9pbmNsdWRlL2FjY2Vzcy90YWJsZWFtLmggICAgICAgICAgICAgIHwg IDMgKysrCiBzcmMvaW5jbHVkZS9leGVjdXRvci9leGVjdXRvci5oICAgICAgICAgICB8ICAyICsr CiA5IGZpbGVzIGNoYW5nZWQsIDY0IGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNVdGlscy5jIGIvc3JjL2JhY2tlbmQv ZXhlY3V0b3IvZXhlY1V0aWxzLmMKaW5kZXggOTg4NmFiMDZiNjkuLmQyZmZlMjhlMDEwIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjVXRpbHMuYworKysgYi9zcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjVXRpbHMuYwpAQCAtNzM2LDYgKzczNiwxNCBAQCBFeGVjUmVsYXRpb25J c1RhcmdldFJlbGF0aW9uKEVTdGF0ZSAqZXN0YXRlLCBJbmRleCBzY2FucmVsaWQpCiAJcmV0dXJu IGxpc3RfbWVtYmVyX2ludChlc3RhdGUtPmVzX3BsYW5uZWRzdG10LT5yZXN1bHRSZWxhdGlvbnMs IHNjYW5yZWxpZCk7CiB9CiAKKy8qIFJldHVybiB0cnVlIGlmIHRoZSBzY2FuIG5vZGUncyByZWxh dGlvbiBpcyBub3QgbW9kaWZpZWQgYnkgdGhlIHF1ZXJ5ICovCitib29sCitTY2FuUmVsSXNSZWFk T25seShTY2FuU3RhdGUgKnNzKQoreworCXJldHVybiAhYm1zX2lzX21lbWJlcigoKFNjYW4gKikg c3MtPnBzLnBsYW4pLT5zY2FucmVsaWQsCisJCQkJCQkgIHNzLT5wcy5zdGF0ZS0+ZXNfcGxhbm5l ZHN0bXQtPm1vZGlmaWVkUmVsaWRzKTsKK30KKwogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoJCUV4ZWNPcGVuU2Nh blJlbGF0aW9uCiAgKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUJpdG1h cEhlYXBzY2FuLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlQml0bWFwSGVhcHNjYW4uYwpp bmRleCA3ZTJjMWI3NDY3Yi4uZGJhNmMzMWQxODggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4 ZWN1dG9yL25vZGVCaXRtYXBIZWFwc2Nhbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25v ZGVCaXRtYXBIZWFwc2Nhbi5jCkBAIC0xNDQsOSArMTQ0LDEyIEBAIEJpdG1hcFRhYmxlU2NhblNl dHVwKEJpdG1hcEhlYXBTY2FuU3RhdGUgKm5vZGUpCiAJICovCiAJaWYgKCFub2RlLT5zcy5zc19j dXJyZW50U2NhbkRlc2MpCiAJeworCQl1aW50MzIJCWZsYWdzID0gU2NhblJlbElzUmVhZE9ubHko Jm5vZGUtPnNzKSA/CisJCQlTT19ISU5UX1JFTF9SRUFEX09OTFkgOiAwOworCiAJCW5vZGUtPnNz LnNzX2N1cnJlbnRTY2FuRGVzYyA9CiAJCQl0YWJsZV9iZWdpbnNjYW5fYm0obm9kZS0+c3Muc3Nf Y3VycmVudFJlbGF0aW9uLAotCQkJCQkJCSAgIDAsCisJCQkJCQkJICAgZmxhZ3MsCiAJCQkJCQkJ ICAgbm9kZS0+c3MucHMuc3RhdGUtPmVzX3NuYXBzaG90LAogCQkJCQkJCSAgIDAsCiAJCQkJCQkJ ICAgTlVMTCk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhvbmx5 c2Nhbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUluZGV4b25seXNjYW4uYwppbmRleCA1 Y2FjYjRiMjE1YS4uODg0OTEyNDlhOWEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L25vZGVJbmRleG9ubHlzY2FuLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUluZGV4 b25seXNjYW4uYwpAQCAtODUsNiArODUsOSBAQCBJbmRleE9ubHlOZXh0KEluZGV4T25seVNjYW5T dGF0ZSAqbm9kZSkKIAogCWlmIChzY2FuZGVzYyA9PSBOVUxMKQogCXsKKwkJdWludDMyCQlmbGFn cyA9IFNjYW5SZWxJc1JlYWRPbmx5KCZub2RlLT5zcykgPworCQkJU09fSElOVF9SRUxfUkVBRF9P TkxZIDogMDsKKwogCQkvKgogCQkgKiBXZSByZWFjaCBoZXJlIGlmIHRoZSBpbmRleCBvbmx5IHNj YW4gaXMgbm90IHBhcmFsbGVsLCBvciBpZiB3ZSdyZQogCQkgKiBzZXJpYWxseSBleGVjdXRpbmcg YW4gaW5kZXggb25seSBzY2FuIHRoYXQgd2FzIHBsYW5uZWQgdG8gYmUKQEAgLTkyLDcgKzk1LDcg QEAgSW5kZXhPbmx5TmV4dChJbmRleE9ubHlTY2FuU3RhdGUgKm5vZGUpCiAJCSAqLwogCQlzY2Fu ZGVzYyA9IGluZGV4X2JlZ2luc2Nhbihub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sCiAJCQkJ CQkJCSAgIG5vZGUtPmlvc3NfUmVsYXRpb25EZXNjLAotCQkJCQkJCQkgICAwLAkvKiBmbGFncyAq LworCQkJCQkJCQkgICBmbGFncywKIAkJCQkJCQkJICAgZXN0YXRlLT5lc19zbmFwc2hvdCwKIAkJ CQkJCQkJICAgbm9kZS0+aW9zc19JbnN0cnVtZW50LAogCQkJCQkJCQkgICBub2RlLT5pb3NzX051 bVNjYW5LZXlzLApAQCAtNzkyLDcgKzc5NSw4IEBAIEV4ZWNJbmRleE9ubHlTY2FuSW5pdGlhbGl6 ZURTTShJbmRleE9ubHlTY2FuU3RhdGUgKm5vZGUsCiAJbm9kZS0+aW9zc19TY2FuRGVzYyA9CiAJ CWluZGV4X2JlZ2luc2Nhbl9wYXJhbGxlbChub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sCiAJ CQkJCQkJCSBub2RlLT5pb3NzX1JlbGF0aW9uRGVzYywKLQkJCQkJCQkJIDAsIC8qIGZsYWdzICov CisJCQkJCQkJCSBTY2FuUmVsSXNSZWFkT25seSgmbm9kZS0+c3MpID8KKwkJCQkJCQkJIFNPX0hJ TlRfUkVMX1JFQURfT05MWSA6IDAsCiAJCQkJCQkJCSBub2RlLT5pb3NzX0luc3RydW1lbnQsCiAJ CQkJCQkJCSBub2RlLT5pb3NzX051bVNjYW5LZXlzLAogCQkJCQkJCQkgbm9kZS0+aW9zc19OdW1P cmRlckJ5S2V5cywKQEAgLTg1OSw3ICs4NjMsOCBAQCBFeGVjSW5kZXhPbmx5U2NhbkluaXRpYWxp emVXb3JrZXIoSW5kZXhPbmx5U2NhblN0YXRlICpub2RlLAogCW5vZGUtPmlvc3NfU2NhbkRlc2Mg PQogCQlpbmRleF9iZWdpbnNjYW5fcGFyYWxsZWwobm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9u LAogCQkJCQkJCQkgbm9kZS0+aW9zc19SZWxhdGlvbkRlc2MsCi0JCQkJCQkJCSAwLCAvKiBmbGFn cyAqLworCQkJCQkJCQkgU2NhblJlbElzUmVhZE9ubHkoJm5vZGUtPnNzKSA/CisJCQkJCQkJCSBT T19ISU5UX1JFTF9SRUFEX09OTFkgOiAwLAogCQkJCQkJCQkgbm9kZS0+aW9zc19JbnN0cnVtZW50 LAogCQkJCQkJCQkgbm9kZS0+aW9zc19OdW1TY2FuS2V5cywKIAkJCQkJCQkJIG5vZGUtPmlvc3Nf TnVtT3JkZXJCeUtleXMsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5k ZXhzY2FuLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhzY2FuLmMKaW5kZXggYWFl ZjMxZGJiYWQuLjE2ZWM0NTVhOTY0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9u b2RlSW5kZXhzY2FuLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUluZGV4c2Nhbi5j CkBAIC0xMDQsMTMgKzEwNCwxNiBAQCBJbmRleE5leHQoSW5kZXhTY2FuU3RhdGUgKm5vZGUpCiAK IAlpZiAoc2NhbmRlc2MgPT0gTlVMTCkKIAl7CisJCXVpbnQzMgkJZmxhZ3MgPSBTY2FuUmVsSXNS ZWFkT25seSgmbm9kZS0+c3MpID8KKwkJCVNPX0hJTlRfUkVMX1JFQURfT05MWSA6IDA7CisKIAkJ LyoKIAkJICogV2UgcmVhY2ggaGVyZSBpZiB0aGUgaW5kZXggc2NhbiBpcyBub3QgcGFyYWxsZWws IG9yIGlmIHdlJ3JlCiAJCSAqIHNlcmlhbGx5IGV4ZWN1dGluZyBhbiBpbmRleCBzY2FuIHRoYXQg d2FzIHBsYW5uZWQgdG8gYmUgcGFyYWxsZWwuCiAJCSAqLwogCQlzY2FuZGVzYyA9IGluZGV4X2Jl Z2luc2Nhbihub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sCiAJCQkJCQkJCSAgIG5vZGUtPmlz c19SZWxhdGlvbkRlc2MsCi0JCQkJCQkJCSAgIDAsCS8qIGZsYWdzICovCisJCQkJCQkJCSAgIGZs YWdzLAogCQkJCQkJCQkgICBlc3RhdGUtPmVzX3NuYXBzaG90LAogCQkJCQkJCQkgICBub2RlLT5p c3NfSW5zdHJ1bWVudCwKIAkJCQkJCQkJICAgbm9kZS0+aXNzX051bVNjYW5LZXlzLApAQCAtMjAx LDEzICsyMDQsMTYgQEAgSW5kZXhOZXh0V2l0aFJlb3JkZXIoSW5kZXhTY2FuU3RhdGUgKm5vZGUp CiAKIAlpZiAoc2NhbmRlc2MgPT0gTlVMTCkKIAl7CisJCXVpbnQzMgkJZmxhZ3MgPSBTY2FuUmVs SXNSZWFkT25seSgmbm9kZS0+c3MpID8KKwkJCVNPX0hJTlRfUkVMX1JFQURfT05MWSA6IDA7CisK IAkJLyoKIAkJICogV2UgcmVhY2ggaGVyZSBpZiB0aGUgaW5kZXggc2NhbiBpcyBub3QgcGFyYWxs ZWwsIG9yIGlmIHdlJ3JlCiAJCSAqIHNlcmlhbGx5IGV4ZWN1dGluZyBhbiBpbmRleCBzY2FuIHRo YXQgd2FzIHBsYW5uZWQgdG8gYmUgcGFyYWxsZWwuCiAJCSAqLwogCQlzY2FuZGVzYyA9IGluZGV4 X2JlZ2luc2Nhbihub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sCiAJCQkJCQkJCSAgIG5vZGUt Pmlzc19SZWxhdGlvbkRlc2MsCi0JCQkJCQkJCSAgIDAsCS8qIGZsYWdzICovCisJCQkJCQkJCSAg IGZsYWdzLAogCQkJCQkJCQkgICBlc3RhdGUtPmVzX3NuYXBzaG90LAogCQkJCQkJCQkgICBub2Rl LT5pc3NfSW5zdHJ1bWVudCwKIAkJCQkJCQkJICAgbm9kZS0+aXNzX051bVNjYW5LZXlzLApAQCAt MTcyOSw3ICsxNzM1LDggQEAgRXhlY0luZGV4U2NhbkluaXRpYWxpemVEU00oSW5kZXhTY2FuU3Rh dGUgKm5vZGUsCiAJbm9kZS0+aXNzX1NjYW5EZXNjID0KIAkJaW5kZXhfYmVnaW5zY2FuX3BhcmFs bGVsKG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwKIAkJCQkJCQkJIG5vZGUtPmlzc19SZWxh dGlvbkRlc2MsCi0JCQkJCQkJCSAwLCAvKiBmbGFncyAqLworCQkJCQkJCQkgU2NhblJlbElzUmVh ZE9ubHkoJm5vZGUtPnNzKSA/CisJCQkJCQkJCSBTT19ISU5UX1JFTF9SRUFEX09OTFkgOiAwLAog CQkJCQkJCQkgbm9kZS0+aXNzX0luc3RydW1lbnQsCiAJCQkJCQkJCSBub2RlLT5pc3NfTnVtU2Nh bktleXMsCiAJCQkJCQkJCSBub2RlLT5pc3NfTnVtT3JkZXJCeUtleXMsCkBAIC0xNzk0LDcgKzE4 MDEsOCBAQCBFeGVjSW5kZXhTY2FuSW5pdGlhbGl6ZVdvcmtlcihJbmRleFNjYW5TdGF0ZSAqbm9k ZSwKIAlub2RlLT5pc3NfU2NhbkRlc2MgPQogCQlpbmRleF9iZWdpbnNjYW5fcGFyYWxsZWwobm9k ZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLAogCQkJCQkJCQkgbm9kZS0+aXNzX1JlbGF0aW9uRGVz YywKLQkJCQkJCQkJIDAsIC8qIGZsYWdzICovCisJCQkJCQkJCSBTY2FuUmVsSXNSZWFkT25seSgm bm9kZS0+c3MpID8KKwkJCQkJCQkJIFNPX0hJTlRfUkVMX1JFQURfT05MWSA6IDAsCiAJCQkJCQkJ CSBub2RlLT5pc3NfSW5zdHJ1bWVudCwKIAkJCQkJCQkJIG5vZGUtPmlzc19OdW1TY2FuS2V5cywK IAkJCQkJCQkJIG5vZGUtPmlzc19OdW1PcmRlckJ5S2V5cywKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL25vZGVTYW1wbGVzY2FuLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2Rl U2FtcGxlc2Nhbi5jCmluZGV4IGNmNGRkNmExNmI0Li5iNmEwMjA3MmRhNSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVNhbXBsZXNjYW4uYworKysgYi9zcmMvYmFja2VuZC9l eGVjdXRvci9ub2RlU2FtcGxlc2Nhbi5jCkBAIC0yOTIsOSArMjkyLDEyIEBAIHRhYmxlc2FtcGxl X2luaXQoU2FtcGxlU2NhblN0YXRlICpzY2Fuc3RhdGUpCiAJLyogTm93IHdlIGNhbiBjcmVhdGUg b3IgcmVzZXQgdGhlIEhlYXBTY2FuRGVzYyAqLwogCWlmIChzY2Fuc3RhdGUtPnNzLnNzX2N1cnJl bnRTY2FuRGVzYyA9PSBOVUxMKQogCXsKKwkJdWludDMyCQlmbGFncyA9IFNjYW5SZWxJc1JlYWRP bmx5KCZzY2Fuc3RhdGUtPnNzKSA/CisJCQlTT19ISU5UX1JFTF9SRUFEX09OTFkgOiAwOworCiAJ CXNjYW5zdGF0ZS0+c3Muc3NfY3VycmVudFNjYW5EZXNjID0KIAkJCXRhYmxlX2JlZ2luc2Nhbl9z YW1wbGluZyhzY2Fuc3RhdGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwKLQkJCQkJCQkJCSAwLAor CQkJCQkJCQkJIGZsYWdzLAogCQkJCQkJCQkJIHNjYW5zdGF0ZS0+c3MucHMuc3RhdGUtPmVzX3Nu YXBzaG90LAogCQkJCQkJCQkJIDAsIE5VTEwsCiAJCQkJCQkJCQkgc2NhbnN0YXRlLT51c2VfYnVs a3JlYWQsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlU2Vxc2Nhbi5jIGIv c3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVNlcXNjYW4uYwppbmRleCAzNzZlODc3ZTg3Yy4uMmQw OTkzYTgzZjQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVTZXFzY2FuLmMK KysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVNlcXNjYW4uYwpAQCAtNjUsMTIgKzY1LDE1 IEBAIFNlcU5leHQoU2VxU2NhblN0YXRlICpub2RlKQogCiAJaWYgKHNjYW5kZXNjID09IE5VTEwp CiAJeworCQl1aW50MzIJCWZsYWdzID0gU2NhblJlbElzUmVhZE9ubHkoJm5vZGUtPnNzKSA/CisJ CQlTT19ISU5UX1JFTF9SRUFEX09OTFkgOiAwOworCiAJCS8qCiAJCSAqIFdlIHJlYWNoIGhlcmUg aWYgdGhlIHNjYW4gaXMgbm90IHBhcmFsbGVsLCBvciBpZiB3ZSdyZSBzZXJpYWxseQogCQkgKiBl eGVjdXRpbmcgYSBzY2FuIHRoYXQgd2FzIHBsYW5uZWQgdG8gYmUgcGFyYWxsZWwuCiAJCSAqLwog CQlzY2FuZGVzYyA9IHRhYmxlX2JlZ2luc2Nhbihub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24s Ci0JCQkJCQkJCSAgIDAsIGVzdGF0ZS0+ZXNfc25hcHNob3QsCisJCQkJCQkJCSAgIGZsYWdzLCBl c3RhdGUtPmVzX3NuYXBzaG90LAogCQkJCQkJCQkgICAwLCBOVUxMKTsKIAkJbm9kZS0+c3Muc3Nf Y3VycmVudFNjYW5EZXNjID0gc2NhbmRlc2M7CiAJfQpAQCAtMzY4LDE0ICszNzEsMTcgQEAgRXhl Y1NlcVNjYW5Jbml0aWFsaXplRFNNKFNlcVNjYW5TdGF0ZSAqbm9kZSwKIHsKIAlFU3RhdGUJICAg KmVzdGF0ZSA9IG5vZGUtPnNzLnBzLnN0YXRlOwogCVBhcmFsbGVsVGFibGVTY2FuRGVzYyBwc2Nh bjsKKwl1aW50MzIJCWZsYWdzID0gU2NhblJlbElzUmVhZE9ubHkoJm5vZGUtPnNzKSA/CisJCVNP X0hJTlRfUkVMX1JFQURfT05MWSA6IDA7CiAKIAlwc2NhbiA9IHNobV90b2NfYWxsb2NhdGUocGN4 dC0+dG9jLCBub2RlLT5wc2Nhbl9sZW4pOwogCXRhYmxlX3BhcmFsbGVsc2Nhbl9pbml0aWFsaXpl KG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwKIAkJCQkJCQkJICBwc2NhbiwKIAkJCQkJCQkJ ICBlc3RhdGUtPmVzX3NuYXBzaG90KTsKIAlzaG1fdG9jX2luc2VydChwY3h0LT50b2MsIG5vZGUt PnNzLnBzLnBsYW4tPnBsYW5fbm9kZV9pZCwgcHNjYW4pOworCiAJbm9kZS0+c3Muc3NfY3VycmVu dFNjYW5EZXNjID0KLQkJdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsKG5vZGUtPnNzLnNzX2N1cnJl bnRSZWxhdGlvbiwgMCwgcHNjYW4pOworCQl0YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWwobm9kZS0+ c3Muc3NfY3VycmVudFJlbGF0aW9uLCBmbGFncywgcHNjYW4pOwogfQogCiAvKiAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBA IC00MDUsOCArNDExLDEwIEBAIEV4ZWNTZXFTY2FuSW5pdGlhbGl6ZVdvcmtlcihTZXFTY2FuU3Rh dGUgKm5vZGUsCiAJCQkJCQkJUGFyYWxsZWxXb3JrZXJDb250ZXh0ICpwd2N4dCkKIHsKIAlQYXJh bGxlbFRhYmxlU2NhbkRlc2MgcHNjYW47CisJdWludDMyCQlmbGFncyA9IFNjYW5SZWxJc1JlYWRP bmx5KCZub2RlLT5zcykgPworCQlTT19ISU5UX1JFTF9SRUFEX09OTFkgOiAwOwogCiAJcHNjYW4g PSBzaG1fdG9jX2xvb2t1cChwd2N4dC0+dG9jLCBub2RlLT5zcy5wcy5wbGFuLT5wbGFuX25vZGVf aWQsIGZhbHNlKTsKIAlub2RlLT5zcy5zc19jdXJyZW50U2NhbkRlc2MgPQotCQl0YWJsZV9iZWdp bnNjYW5fcGFyYWxsZWwobm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLCAwLCBwc2Nhbik7CisJ CXRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxlbChub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sIGZs YWdzLCBwc2Nhbik7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlVGlk cmFuZ2VzY2FuLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlVGlkcmFuZ2VzY2FuLmMKaW5k ZXggYmFjZDdhYTViYzQuLjA1ZWQ1MzY0MjM4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVj dXRvci9ub2RlVGlkcmFuZ2VzY2FuLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVRp ZHJhbmdlc2Nhbi5jCkBAIC0yNDIsOCArMjQyLDExIEBAIFRpZFJhbmdlTmV4dChUaWRSYW5nZVNj YW5TdGF0ZSAqbm9kZSkKIAogCQlpZiAoc2NhbmRlc2MgPT0gTlVMTCkKIAkJeworCQkJdWludDMy CQlmbGFncyA9IFNjYW5SZWxJc1JlYWRPbmx5KCZub2RlLT5zcykgPworCQkJCVNPX0hJTlRfUkVM X1JFQURfT05MWSA6IDA7CisKIAkJCXNjYW5kZXNjID0gdGFibGVfYmVnaW5zY2FuX3RpZHJhbmdl KG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwKLQkJCQkJCQkJCQkJCTAsCisJCQkJCQkJCQkJ CQlmbGFncywKIAkJCQkJCQkJCQkJCWVzdGF0ZS0+ZXNfc25hcHNob3QsCiAJCQkJCQkJCQkJCQkm bm9kZS0+dHJzc19taW50aWQsCiAJCQkJCQkJCQkJCQkmbm9kZS0+dHJzc19tYXh0aWQpOwpAQCAt NDUzLDE1ICs0NTYsMTggQEAgRXhlY1RpZFJhbmdlU2NhbkluaXRpYWxpemVEU00oVGlkUmFuZ2VT Y2FuU3RhdGUgKm5vZGUsIFBhcmFsbGVsQ29udGV4dCAqcGN4dCkKIHsKIAlFU3RhdGUJICAgKmVz dGF0ZSA9IG5vZGUtPnNzLnBzLnN0YXRlOwogCVBhcmFsbGVsVGFibGVTY2FuRGVzYyBwc2NhbjsK Kwl1aW50MzIJCWZsYWdzID0gU2NhblJlbElzUmVhZE9ubHkoJm5vZGUtPnNzKSA/CisJCVNPX0hJ TlRfUkVMX1JFQURfT05MWSA6IDA7CiAKIAlwc2NhbiA9IHNobV90b2NfYWxsb2NhdGUocGN4dC0+ dG9jLCBub2RlLT50cnNzX3BzY2FubGVuKTsKIAl0YWJsZV9wYXJhbGxlbHNjYW5faW5pdGlhbGl6 ZShub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sCiAJCQkJCQkJCSAgcHNjYW4sCiAJCQkJCQkJ CSAgZXN0YXRlLT5lc19zbmFwc2hvdCk7CiAJc2htX3RvY19pbnNlcnQocGN4dC0+dG9jLCBub2Rl LT5zcy5wcy5wbGFuLT5wbGFuX25vZGVfaWQsIHBzY2FuKTsKKwogCW5vZGUtPnNzLnNzX2N1cnJl bnRTY2FuRGVzYyA9CiAJCXRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxlbF90aWRyYW5nZShub2RlLT5z cy5zc19jdXJyZW50UmVsYXRpb24sCi0JCQkJCQkJCQkJICAwLCBwc2Nhbik7CisJCQkJCQkJCQkJ ICBmbGFncywgcHNjYW4pOwogfQogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC00OTEsOSArNDk3LDEyIEBAIEV4 ZWNUaWRSYW5nZVNjYW5Jbml0aWFsaXplV29ya2VyKFRpZFJhbmdlU2NhblN0YXRlICpub2RlLAog CQkJCQkJCQkgUGFyYWxsZWxXb3JrZXJDb250ZXh0ICpwd2N4dCkKIHsKIAlQYXJhbGxlbFRhYmxl U2NhbkRlc2MgcHNjYW47CisJdWludDMyCQlmbGFncyA9IFNjYW5SZWxJc1JlYWRPbmx5KCZub2Rl LT5zcykgPworCQlTT19ISU5UX1JFTF9SRUFEX09OTFkgOiAwOwogCiAJcHNjYW4gPSBzaG1fdG9j X2xvb2t1cChwd2N4dC0+dG9jLCBub2RlLT5zcy5wcy5wbGFuLT5wbGFuX25vZGVfaWQsIGZhbHNl KTsKKwogCW5vZGUtPnNzLnNzX2N1cnJlbnRTY2FuRGVzYyA9CiAJCXRhYmxlX2JlZ2luc2Nhbl9w YXJhbGxlbF90aWRyYW5nZShub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sCi0JCQkJCQkJCQkJ ICAwLCBwc2Nhbik7CisJCQkJCQkJCQkJICBmbGFncywgcHNjYW4pOwogfQpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvYWNjZXNzL3RhYmxlYW0uaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy90YWJsZWFt LmgKaW5kZXggZTFmOTBmMmI2YTcuLmE4ZmQ4ZjBkNDVjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9hY2Nlc3MvdGFibGVhbS5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy90YWJsZWFtLmgKQEAg LTYzLDYgKzYzLDkgQEAgdHlwZWRlZiBlbnVtIFNjYW5PcHRpb25zCiAKIAkvKiB1bnJlZ2lzdGVy IHNuYXBzaG90IGF0IHNjYW4gZW5kPyAqLwogCVNPX1RFTVBfU05BUFNIT1QgPSAxIDw8IDksCisK KwkvKiBzZXQgaWYgdGhlIHF1ZXJ5IGRvZXNuJ3QgbW9kaWZ5IHRoZSByZWxhdGlvbiAqLworCVNP X0hJTlRfUkVMX1JFQURfT05MWSA9IDEgPDwgMTAsCiB9CQkJU2Nhbk9wdGlvbnM7CiAKIC8qCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjdXRvci5oIGIvc3JjL2luY2x1ZGUv ZXhlY3V0b3IvZXhlY3V0b3IuaAppbmRleCAwN2Y0YjFmNzQ5MC4uNzk3OWExN2U0ZWMgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWN1dG9yLmgKKysrIGIvc3JjL2luY2x1ZGUv ZXhlY3V0b3IvZXhlY3V0b3IuaApAQCAtNjkwLDYgKzY5MCw4IEBAIGV4dGVybiB2b2lkIEV4ZWND cmVhdGVTY2FuU2xvdEZyb21PdXRlclBsYW4oRVN0YXRlICplc3RhdGUsCiAKIGV4dGVybiBib29s IEV4ZWNSZWxhdGlvbklzVGFyZ2V0UmVsYXRpb24oRVN0YXRlICplc3RhdGUsIEluZGV4IHNjYW5y ZWxpZCk7CiAKK2V4dGVybiBib29sIFNjYW5SZWxJc1JlYWRPbmx5KFNjYW5TdGF0ZSAqc3MpOwor CiBleHRlcm4gUmVsYXRpb24gRXhlY09wZW5TY2FuUmVsYXRpb24oRVN0YXRlICplc3RhdGUsIElu ZGV4IHNjYW5yZWxpZCwgaW50IGVmbGFncyk7CiAKIGV4dGVybiB2b2lkIEV4ZWNJbml0UmFuZ2VU YWJsZShFU3RhdGUgKmVzdGF0ZSwgTGlzdCAqcmFuZ2VUYWJsZSwgTGlzdCAqcGVybUluZm9zLAot LSAKMi40My4wCgo= --000000000000ef09e0064dcdbb4a Content-Type: text/x-patch; charset="US-ASCII"; name="v45-0004-Allow-on-access-pruning-to-set-pages-all-visible.patch" Content-Disposition: attachment; filename="v45-0004-Allow-on-access-pruning-to-set-pages-all-visible.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn59f2p13 RnJvbSA5MDJhODUyMmYyMTNmZmQwYjVhYWU0ODY3NDBkYTNkNjE0MWM5OGIzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBGcmksIDI3IEZlYiAyMDI2IDE2OjMzOjQwIC0wNTAwClN1YmplY3Q6IFtQ QVRDSCB2NDUgNC81XSBBbGxvdyBvbi1hY2Nlc3MgcHJ1bmluZyB0byBzZXQgcGFnZXMgYWxsLXZp c2libGUKCk1hbnkgcXVlcmllcyBkbyBub3QgbW9kaWZ5IHRoZSB1bmRlcmx5aW5nIHJlbGF0aW9u LiBGb3Igc3VjaCBxdWVyaWVzLCBpZgpvbi1hY2Nlc3MgcHJ1bmluZyBvY2N1cnMgZHVyaW5nIHRo ZSBzY2FuLCB3ZSBjYW4gY2hlY2sgd2hldGhlciB0aGUgcGFnZQpoYXMgYmVjb21lIGFsbC12aXNp YmxlIGFuZCB1cGRhdGUgdGhlIHZpc2liaWxpdHkgbWFwIGFjY29yZGluZ2x5LgpQcmV2aW91c2x5 LCBvbmx5IHZhY3V1bSBhbmQgQ09QWSBGUkVFWkUgbWFya2VkIHBhZ2VzIGFzIGFsbC12aXNpYmxl IG9yCmFsbC1mcm96ZW4uCgpUaGlzIGNvbW1pdCBpbXBsZW1lbnRzIG9uLWFjY2VzcyBWTSBzZXR0 aW5nIGZvciBzZXF1ZW50aWFsIHNjYW5zIGFzIHdlbGwKYXMgZm9yIHRoZSB1bmRlcmx5aW5nIGhl YXAgcmVsYXRpb24gaW4gaW5kZXggc2NhbnMgYW5kIGJpdG1hcCBoZWFwCnNjYW5zLgoKU2V0dGlu ZyB0aGUgdmlzaWJpbGl0eSBtYXAgb24tYWNjZXNzIGNhbiBhdm9pZCB3cml0ZSBhbXBsaWZpY2F0 aW9uCmNhdXNlZCBieSB2YWN1dW0gbGF0ZXIgbmVlZGluZyB0byBzZXQgdGhlIHBhZ2UgYWxsLXZp c2libGUsIHRyaWdnZXIgYQp3cml0ZSBhbmQgcG90ZW50aWFsbHkgRlBJLiBJdCBhbHNvIGFsbG93 cyBtb3JlIGZyZXF1ZW50IGluZGV4LW9ubHkKc2NhbnMsIHNpbmNlIHRoZXkgcmVxdWlyZSBwYWdl cyB0byBiZSBtYXJrZWQgYWxsLXZpc2libGUgaW4gdGhlIFZNLgoKQXV0aG9yOiBNZWxhbmllIFBs YWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQW5kcmVzIEZy ZXVuZCA8YW5kcmVzQGFuYXJhemVsLmRlPgpSZXZpZXdlZC1ieTogS2lyaWxsIFJlc2hrZSA8cmVz aGtla2lyaWxsQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IENoYW8gTGkgPGxpLmV2YW4uY2hhb0Bn bWFpbC5jb20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vZmxhdC9DQUFLUnVfWk13 Nk5wZF9xbTJLTSUyQkZ3UTNjTU9NeDFEaDNWTWhwOC1WN1NPTHhkSzktZyU0MG1haWwuZ21haWwu Y29tCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMgICAgICAgICB8ICAzICst CiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1faGFuZGxlci5jIHwgIDYgKystLQogc3Jj L2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMgICAgICB8IDQ2ICsrKysrKysrKysrKysr KysrLS0tLS0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jICAgICB8ICAy ICstCiBzcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmggICAgICAgICAgICAgIHwgMTYgKysrKysr Ky0tCiA1IGZpbGVzIGNoYW5nZWQsIDU0IGluc2VydGlvbnMoKyksIDE5IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jIGIvc3JjL2JhY2tl bmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKaW5kZXggMDQ0ZjM4NWU0NzcuLmRiZGY2NTIxYzQyIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYworKysgYi9zcmMvYmFj a2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYwpAQCAtNjMzLDcgKzYzMyw4IEBAIGhlYXBfcHJlcGFy ZV9wYWdlc2NhbihUYWJsZVNjYW5EZXNjIHNzY2FuKQogCS8qCiAJICogUHJ1bmUgYW5kIHJlcGFp ciBmcmFnbWVudGF0aW9uIGZvciB0aGUgd2hvbGUgcGFnZSwgaWYgcG9zc2libGUuCiAJICovCi0J aGVhcF9wYWdlX3BydW5lX29wdChzY2FuLT5yc19iYXNlLnJzX3JkLCBidWZmZXIsICZzY2FuLT5y c192bWJ1ZmZlcik7CisJaGVhcF9wYWdlX3BydW5lX29wdChzY2FuLT5yc19iYXNlLnJzX3JkLCBi dWZmZXIsICZzY2FuLT5yc192bWJ1ZmZlciwKKwkJCQkJCShzc2Nhbi0+cnNfZmxhZ3MgJiBTT19I SU5UX1JFTF9SRUFEX09OTFkpKTsKIAogCS8qCiAJICogV2UgbXVzdCBob2xkIHNoYXJlIGxvY2sg b24gdGhlIGJ1ZmZlciBjb250ZW50IHdoaWxlIGV4YW1pbmluZyB0dXBsZQpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX2hhbmRsZXIuYyBiL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9oZWFwL2hlYXBhbV9oYW5kbGVyLmMKaW5kZXggOTUxMjczYTRkN2YuLjVjMmZhYWYyMzQw IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1faGFuZGxlci5jCisr KyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV9oYW5kbGVyLmMKQEAgLTE0OSw3ICsx NDksOCBAQCBoZWFwYW1faW5kZXhfZmV0Y2hfdHVwbGUoc3RydWN0IEluZGV4RmV0Y2hUYWJsZURh dGEgKnNjYW4sCiAJCSAqLwogCQlpZiAocHJldl9idWYgIT0gaHNjYW4tPnhzX2NidWYpCiAJCQlo ZWFwX3BhZ2VfcHJ1bmVfb3B0KGhzY2FuLT54c19iYXNlLnJlbCwgaHNjYW4tPnhzX2NidWYsCi0J CQkJCQkJCSZoc2Nhbi0+eHNfdm1idWZmZXIpOworCQkJCQkJCQkmaHNjYW4tPnhzX3ZtYnVmZmVy LAorCQkJCQkJCQkoaHNjYW4tPnhzX2Jhc2UuZmxhZ3MgJiBTT19ISU5UX1JFTF9SRUFEX09OTFkp KTsKIAl9CiAKIAkvKiBPYnRhaW4gc2hhcmUtbG9jayBvbiB0aGUgYnVmZmVyIHNvIHdlIGNhbiBl eGFtaW5lIHZpc2liaWxpdHkgKi8KQEAgLTI1NDYsNyArMjU0Nyw4IEBAIEJpdG1hcEhlYXBTY2Fu TmV4dEJsb2NrKFRhYmxlU2NhbkRlc2Mgc2NhbiwKIAkvKgogCSAqIFBydW5lIGFuZCByZXBhaXIg ZnJhZ21lbnRhdGlvbiBmb3IgdGhlIHdob2xlIHBhZ2UsIGlmIHBvc3NpYmxlLgogCSAqLwotCWhl YXBfcGFnZV9wcnVuZV9vcHQoc2Nhbi0+cnNfcmQsIGJ1ZmZlciwgJmhzY2FuLT5yc192bWJ1ZmZl cik7CisJaGVhcF9wYWdlX3BydW5lX29wdChzY2FuLT5yc19yZCwgYnVmZmVyLCAmaHNjYW4tPnJz X3ZtYnVmZmVyLAorCQkJCQkJc2Nhbi0+cnNfZmxhZ3MgJiBTT19ISU5UX1JFTF9SRUFEX09OTFkp OwogCiAJLyoKIAkgKiBXZSBtdXN0IGhvbGQgc2hhcmUgbG9jayBvbiB0aGUgYnVmZmVyIGNvbnRl bnQgd2hpbGUgZXhhbWluaW5nIHR1cGxlCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3Mv aGVhcC9wcnVuZWhlYXAuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCmlu ZGV4IDY2OTNhZjhkYTdmLi5kODNmZDI2YjI3NCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNj ZXNzL2hlYXAvcHJ1bmVoZWFwLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVo ZWFwLmMKQEAgLTQ0LDYgKzQ0LDggQEAgdHlwZWRlZiBzdHJ1Y3QKIAlib29sCQltYXJrX3VudXNl ZF9ub3c7CiAJLyogd2hldGhlciB0byBhdHRlbXB0IGZyZWV6aW5nIHR1cGxlcyAqLwogCWJvb2wJ CWF0dGVtcHRfZnJlZXplOworCS8qIHdoZXRoZXIgdG8gYXR0ZW1wdCBzZXR0aW5nIHRoZSBWTSAq LworCWJvb2wJCWF0dGVtcHRfc2V0X3ZtOwogCXN0cnVjdCBWYWN1dW1DdXRvZmZzICpjdXRvZmZz OwogCVJlbGF0aW9uCXJlbGF0aW9uOwogCkBAIC0yMzIsNyArMjM0LDggQEAgc3RhdGljIHZvaWQg cGFnZV92ZXJpZnlfcmVkaXJlY3RzKFBhZ2UgcGFnZSk7CiAKIHN0YXRpYyBib29sIGhlYXBfcGFn ZV93aWxsX2ZyZWV6ZShib29sIGRpZF90dXBsZV9oaW50X2ZwaSwgYm9vbCBkb19wcnVuZSwgYm9v bCBkb19oaW50X3BydW5lLAogCQkJCQkJCQkgIFBydW5lU3RhdGUgKnByc3RhdGUpOwotc3RhdGlj IGJvb2wgaGVhcF9wYWdlX3dpbGxfc2V0X3ZtKFBydW5lU3RhdGUgKnByc3RhdGUsIFBydW5lUmVh c29uIHJlYXNvbik7CitzdGF0aWMgYm9vbCBoZWFwX3BhZ2Vfd2lsbF9zZXRfdm0oUHJ1bmVTdGF0 ZSAqcHJzdGF0ZSwgUHJ1bmVSZWFzb24gcmVhc29uLAorCQkJCQkJCQkgIGJvb2wgZG9fcHJ1bmUs IGJvb2wgZG9fZnJlZXplKTsKIAogCiAvKgpAQCAtMjUzLDcgKzI1Niw4IEBAIHN0YXRpYyBib29s IGhlYXBfcGFnZV93aWxsX3NldF92bShQcnVuZVN0YXRlICpwcnN0YXRlLCBQcnVuZVJlYXNvbiBy ZWFzb24pOwogICogdW5waW5uaW5nICp2bWJ1ZmZlci4KICAqLwogdm9pZAotaGVhcF9wYWdlX3By dW5lX29wdChSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwgQnVmZmVyICp2bWJ1ZmZl cikKK2hlYXBfcGFnZV9wcnVuZV9vcHQoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIs IEJ1ZmZlciAqdm1idWZmZXIsCisJCQkJCWJvb2wgcmVsX3JlYWRfb25seSkKIHsKIAlQYWdlCQlw YWdlID0gQnVmZmVyR2V0UGFnZShidWZmZXIpOwogCVRyYW5zYWN0aW9uSWQgcHJ1bmVfeGlkOwpA QCAtMzM2LDYgKzM0MCw4IEBAIGhlYXBfcGFnZV9wcnVuZV9vcHQoUmVsYXRpb24gcmVsYXRpb24s IEJ1ZmZlciBidWZmZXIsIEJ1ZmZlciAqdm1idWZmZXIpCiAJCQkgKiBjdXJyZW50IGltcGxlbWVu dGF0aW9uLgogCQkJICovCiAJCQlwYXJhbXMub3B0aW9ucyA9IEhFQVBfUEFHRV9QUlVORV9BTExP V19GQVNUX1BBVEg7CisJCQlpZiAocmVsX3JlYWRfb25seSkKKwkJCQlwYXJhbXMub3B0aW9ucyB8 PSBIRUFQX1BBR0VfUFJVTkVfU0VUX1ZNOwogCiAJCQloZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6 ZSgmcGFyYW1zLCAmcHJlc3VsdCwgJmR1bW15X29mZl9sb2MsCiAJCQkJCQkJCQkgICBOVUxMLCBO VUxMKTsKQEAgLTM5Miw2ICszOTgsNyBAQCBwcnVuZV9mcmVlemVfc2V0dXAoUHJ1bmVGcmVlemVQ YXJhbXMgKnBhcmFtcywKIAkvKiBjdXRvZmZzIG11c3QgYmUgcHJvdmlkZWQgaWYgd2Ugd2lsbCBh dHRlbXB0IGZyZWV6aW5nICovCiAJQXNzZXJ0KCEocGFyYW1zLT5vcHRpb25zICYgSEVBUF9QQUdF X1BSVU5FX0ZSRUVaRSkgfHwgcGFyYW1zLT5jdXRvZmZzKTsKIAlwcnN0YXRlLT5hdHRlbXB0X2Zy ZWV6ZSA9IChwYXJhbXMtPm9wdGlvbnMgJiBIRUFQX1BBR0VfUFJVTkVfRlJFRVpFKSAhPSAwOwor CXByc3RhdGUtPmF0dGVtcHRfc2V0X3ZtID0gKHBhcmFtcy0+b3B0aW9ucyAmIEhFQVBfUEFHRV9Q UlVORV9TRVRfVk0pICE9IDA7CiAJcHJzdGF0ZS0+Y3V0b2ZmcyA9IHBhcmFtcy0+Y3V0b2ZmczsK IAlwcnN0YXRlLT5yZWxhdGlvbiA9IHBhcmFtcy0+cmVsYXRpb247CiAJcHJzdGF0ZS0+YmxvY2sg PSBCdWZmZXJHZXRCbG9ja051bWJlcihwYXJhbXMtPmJ1ZmZlcik7CkBAIC00NjEsOSArNDY4LDgg QEAgcHJ1bmVfZnJlZXplX3NldHVwKFBydW5lRnJlZXplUGFyYW1zICpwYXJhbXMsCiAJICogV2Ug dHJhY2sgd2hldGhlciB0aGUgcGFnZSB3aWxsIGJlIGFsbC12aXNpYmxlL2FsbC1mcm96ZW4gYXQg dGhlIGVuZCBvZgogCSAqIHBydW5pbmcgYW5kIGZyZWV6aW5nLiBXaGlsZSBleGFtaW5pbmcgdHVw bGUgdmlzaWJpbGl0eSwgd2UnbGwgc2V0CiAJICogc2V0X2FsbF92aXNpYmxlIHRvIGZhbHNlIGlm IHRoZXJlIGFyZSB0dXBsZXMgb24gdGhlIHBhZ2Ugbm90IHZpc2libGUgdG8KLQkgKiBhbGwgcnVu bmluZyBhbmQgZnV0dXJlIHRyYW5zYWN0aW9ucy4gc2V0X2FsbF92aXNpYmxlIGlzIGFsd2F5cwot CSAqIG1haW50YWluZWQgYnV0IG9ubHkgVkFDVVVNIHdpbGwgc2V0IHRoZSBWTSBpZiB0aGUgcGFn ZSBlbmRzIHVwIGJlaW5nCi0JICogYWxsLXZpc2libGUuCisJICogYWxsIHJ1bm5pbmcgYW5kIGZ1 dHVyZSB0cmFuc2FjdGlvbnMuIElmIGVuYWJsZWQgZm9yIHRoaXMgc2Nhbiwgd2Ugd2lsbAorCSAq IHNldCB0aGUgVk0gaWYgdGhlIHBhZ2UgZW5kcyB1cCBiZWluZyBhbGwtdmlzaWJsZS4KIAkgKgog CSAqIFdlIGFsc28ga2VlcCB0cmFjayBvZiB0aGUgbmV3ZXN0IGxpdmUgWElELCB3aGljaCBpcyB1 c2VkIHRvIGNhbGN1bGF0ZQogCSAqIHRoZSBzbmFwc2hvdCBjb25mbGljdCBob3Jpem9uIGZvciBh IFdBTCByZWNvcmQgc2V0dGluZyB0aGUgVk0uCkBAIC05MjAsMjEgKzkyNiwzNyBAQCBoZWFwX3Bh Z2VfZml4X3ZtX2NvcnJ1cHRpb24oUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwgT2Zmc2V0TnVtYmVyIG9m Zm51bSwKICAqIFRoaXMgZnVuY3Rpb24gZG9lcyBub3QgYWN0dWFsbHkgc2V0IHRoZSBWTSBiaXRz IG9yIHBhZ2UtbGV2ZWwgdmlzaWJpbGl0eQogICogaGludCwgUERfQUxMX1ZJU0lCTEUuCiAgKgor ICogVGhpcyBzaG91bGQgYmUgY2FsbGVkIG9ubHkgYWZ0ZXIgZG9fZnJlZXplIGhhcyBiZWVuIGRl Y2lkZWQgKGFuZCBkb19wcnVuZQorICogaGFzIGJlZW4gc2V0KSwgYXMgdGhlc2UgZmFjdG9yIGlu dG8gb3VyIGhldXJpc3RpYy1iYXNlZCBkZWNpc2lvbi4KKyAqCiAgKiBSZXR1cm5zIHRydWUgaWYg b25lIG9yIGJvdGggVk0gYml0cyBzaG91bGQgYmUgc2V0IGFuZCBmYWxzZSBvdGhlcndpc2UuCiAg Ki8KIHN0YXRpYyBib29sCi1oZWFwX3BhZ2Vfd2lsbF9zZXRfdm0oUHJ1bmVTdGF0ZSAqcHJzdGF0 ZSwgUHJ1bmVSZWFzb24gcmVhc29uKQoraGVhcF9wYWdlX3dpbGxfc2V0X3ZtKFBydW5lU3RhdGUg KnByc3RhdGUsIFBydW5lUmVhc29uIHJlYXNvbiwKKwkJCQkJICBib29sIGRvX3BydW5lLCBib29s IGRvX2ZyZWV6ZSkKIHsKLQkvKgotCSAqIFRob3VnaCBvbi1hY2Nlc3MgcHJ1bmluZyBtYWludGFp bnMgcHJzdGF0ZS0+c2V0X2FsbF92aXNpYmxlLCB3ZSBkb24ndAotCSAqIHNldCB0aGUgVk0gb24t YWNjZXNzIGZvciBub3cuCi0JICovCi0JaWYgKHJlYXNvbiA9PSBQUlVORV9PTl9BQ0NFU1MpCisJ aWYgKCFwcnN0YXRlLT5hdHRlbXB0X3NldF92bSkKIAkJcmV0dXJuIGZhbHNlOwogCiAJaWYgKCFw cnN0YXRlLT5zZXRfYWxsX3Zpc2libGUpCiAJCXJldHVybiBmYWxzZTsKIAorCS8qCisJICogSWYg dGhpcyBpcyBhbiBvbi1hY2Nlc3MgY2FsbCBhbmQgd2UncmUgbm90IGFjdHVhbGx5IHBydW5pbmcs IGF2b2lkCisJICogc2V0dGluZyB0aGUgdmlzaWJpbGl0eSBtYXAgaWYgaXQgd291bGQgbmV3bHkg ZGlydHkgdGhlIGhlYXAgcGFnZSBvciwgaWYKKwkgKiB0aGUgcGFnZSBpcyBhbHJlYWR5IGRpcnR5 LCBpZiBkb2luZyBzbyB3b3VsZCByZXF1aXJlIGluY2x1ZGluZyBhCisJICogZnVsbC1wYWdlIGlt YWdlIChGUEkpIG9mIHRoZSBoZWFwIHBhZ2UgaW4gdGhlIFdBTC4gVGhpcyBzaXR1YXRpb24KKwkg KiBzaG91bGQgYmUgcmFyZSwgYXMgb24tYWNjZXNzIHBydW5pbmcgaXMgb25seSBhdHRlbXB0ZWQg d2hlbgorCSAqIHBkX3BydW5lX3hpZCBpcyB2YWxpZC4KKwkgKi8KKwlpZiAocmVhc29uID09IFBS VU5FX09OX0FDQ0VTUyAmJiAhZG9fcHJ1bmUgJiYgIWRvX2ZyZWV6ZSAmJgorCQkoIUJ1ZmZlcklz RGlydHkocHJzdGF0ZS0+YnVmZmVyKSB8fCBYTG9nQ2hlY2tCdWZmZXJOZWVkc0JhY2t1cChwcnN0 YXRlLT5idWZmZXIpKSkKKwl7CisJCXByc3RhdGUtPnNldF9hbGxfdmlzaWJsZSA9IGZhbHNlOwor CQlwcnN0YXRlLT5zZXRfYWxsX2Zyb3plbiA9IGZhbHNlOworCQlyZXR1cm4gZmFsc2U7CisJfQor CiAJcHJzdGF0ZS0+bmV3X3ZtYml0cyA9IFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEU7CiAKIAlp ZiAocHJzdGF0ZS0+c2V0X2FsbF9mcm96ZW4pCkBAIC0xMTY3LDcgKzExODksNyBAQCBoZWFwX3Bh Z2VfcHJ1bmVfYW5kX2ZyZWV6ZShQcnVuZUZyZWV6ZVBhcmFtcyAqcGFyYW1zLAogCUFzc2VydCgh cHJzdGF0ZS5zZXRfYWxsX2Zyb3plbiB8fCBwcnN0YXRlLnNldF9hbGxfdmlzaWJsZSk7CiAJQXNz ZXJ0KCFwcnN0YXRlLnNldF9hbGxfdmlzaWJsZSB8fCAocHJzdGF0ZS5scGRlYWRfaXRlbXMgPT0g MCkpOwogCi0JZG9fc2V0X3ZtID0gaGVhcF9wYWdlX3dpbGxfc2V0X3ZtKCZwcnN0YXRlLCBwYXJh bXMtPnJlYXNvbik7CisJZG9fc2V0X3ZtID0gaGVhcF9wYWdlX3dpbGxfc2V0X3ZtKCZwcnN0YXRl LCBwYXJhbXMtPnJlYXNvbiwgZG9fcHJ1bmUsIGRvX2ZyZWV6ZSk7CiAKIAkvKgogCSAqIG5ld192 bWJpdHMgc2hvdWxkIGJlIDAgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIG9yIG5vdCB0aGUgcGFnZSBp cwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jIGIvc3Jj L2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCmluZGV4IGY2OThjMmQ4OTliLi4yNDAw MWIyNzM4NyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5j CisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwpAQCAtMjAyMSw3ICsy MDIxLDcgQEAgbGF6eV9zY2FuX3BydW5lKExWUmVsU3RhdGUgKnZhY3JlbCwKIAkJLmJ1ZmZlciA9 IGJ1ZiwKIAkJLnZtYnVmZmVyID0gdm1idWZmZXIsCiAJCS5yZWFzb24gPSBQUlVORV9WQUNVVU1f U0NBTiwKLQkJLm9wdGlvbnMgPSBIRUFQX1BBR0VfUFJVTkVfRlJFRVpFLAorCQkub3B0aW9ucyA9 IEhFQVBfUEFHRV9QUlVORV9GUkVFWkUgfCBIRUFQX1BBR0VfUFJVTkVfU0VUX1ZNLAogCQkudmlz dGVzdCA9IHZhY3JlbC0+dmlzdGVzdCwKIAkJLmN1dG9mZnMgPSAmdmFjcmVsLT5jdXRvZmZzLAog CX07CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmggYi9zcmMvaW5jbHVk ZS9hY2Nlc3MvaGVhcGFtLmgKaW5kZXggZTJlMDczNDhmMzcuLjJmYzQ0NjIwNTBhIDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNz L2hlYXBhbS5oCkBAIC00Myw2ICs0Myw3IEBACiAjZGVmaW5lIEhFQVBfUEFHRV9QUlVORV9NQVJL X1VOVVNFRF9OT1cJCSgxIDw8IDApCiAjZGVmaW5lIEhFQVBfUEFHRV9QUlVORV9GUkVFWkUJCQkJ KDEgPDwgMSkKICNkZWZpbmUgSEVBUF9QQUdFX1BSVU5FX0FMTE9XX0ZBU1RfUEFUSAkJKDEgPDwg MikKKyNkZWZpbmUgSEVBUF9QQUdFX1BSVU5FX1NFVF9WTQkJCQkoMSA8PCAzKQogCiB0eXBlZGVm IHN0cnVjdCBCdWxrSW5zZXJ0U3RhdGVEYXRhICpCdWxrSW5zZXJ0U3RhdGU7CiB0eXBlZGVmIHN0 cnVjdCBHbG9iYWxWaXNTdGF0ZSBHbG9iYWxWaXNTdGF0ZTsKQEAgLTk1LDcgKzk2LDEyIEBAIHR5 cGVkZWYgc3RydWN0IEhlYXBTY2FuRGVzY0RhdGEKIAkgKi8KIAlQYXJhbGxlbEJsb2NrVGFibGVT Y2FuV29ya2VyRGF0YSAqcnNfcGFyYWxsZWx3b3JrZXJkYXRhOwogCi0JLyogQ3VycmVudCBoZWFw IGJsb2NrJ3MgY29ycmVzcG9uZGluZyBwYWdlIGluIHRoZSB2aXNpYmlsaXR5IG1hcCAqLworCS8q CisJICogRm9yIHNlcXVlbnRpYWwgc2NhbnMsIGJpdG1hcCBoZWFwIHNjYW5zLCBUSUQgcmFuZ2Ug c2NhbnMsIGFuZCBzYW1wbGUKKwkgKiBzY2Fucy4gVGhlIGN1cnJlbnQgaGVhcCBibG9jaydzIGNv cnJlc3BvbmRpbmcgcGFnZSBpbiB0aGUgdmlzaWJpbGl0eQorCSAqIG1hcC4gSWYgdGhlIHJlbGF0 aW9uIGlzIG5vdCBtb2RpZmllZCBieSB0aGUgcXVlcnksIG9uLWFjY2VzcyBwcnVuaW5nCisJICog bWF5IHNldCB0aGUgVk0uCisJICovCiAJQnVmZmVyCQlyc192bWJ1ZmZlcjsKIAogCS8qIHRoZXNl IGZpZWxkcyBvbmx5IHVzZWQgaW4gcGFnZS1hdC1hLXRpbWUgbW9kZSBhbmQgZm9yIGJpdG1hcCBz Y2FucyAqLwpAQCAtMTI2LDcgKzEzMiwxMSBAQCB0eXBlZGVmIHN0cnVjdCBJbmRleEZldGNoSGVh cERhdGEKIAkgKi8KIAlCdWZmZXIJCXhzX2NidWY7CiAKLQkvKiBDdXJyZW50IGhlYXAgYmxvY2sn cyBjb3JyZXNwb25kaW5nIHBhZ2UgaW4gdGhlIHZpc2liaWxpdHkgbWFwICovCisJLyoKKwkgKiBD dXJyZW50IGhlYXAgYmxvY2sncyBjb3JyZXNwb25kaW5nIHBhZ2UgaW4gdGhlIHZpc2liaWxpdHkg bWFwLiBGb3IKKwkgKiBpbmRleCBzY2FucyB0aGF0IGRvIG5vdCBtb2RpZnkgdGhlIHVuZGVybHlp bmcgaGVhcCB0YWJsZSwgb24tYWNjZXNzCisJICogcHJ1bmluZyBtYXkgc2V0IHRoZSBWTSBvbi1h Y2Nlc3MuCisJICovCiAJQnVmZmVyCQl4c192bWJ1ZmZlcjsKIH0gSW5kZXhGZXRjaEhlYXBEYXRh OwogCkBAIC00MzEsNyArNDQxLDcgQEAgZXh0ZXJuIFRyYW5zYWN0aW9uSWQgaGVhcF9pbmRleF9k ZWxldGVfdHVwbGVzKFJlbGF0aW9uIHJlbCwKIAogLyogaW4gaGVhcC9wcnVuZWhlYXAuYyAqLwog ZXh0ZXJuIHZvaWQgaGVhcF9wYWdlX3BydW5lX29wdChSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVy IGJ1ZmZlciwKLQkJCQkJCQkJQnVmZmVyICp2bWJ1ZmZlcik7CisJCQkJCQkJCUJ1ZmZlciAqdm1i dWZmZXIsIGJvb2wgcmVsX3JlYWRfb25seSk7CiBleHRlcm4gdm9pZCBoZWFwX3BhZ2VfcHJ1bmVf YW5kX2ZyZWV6ZShQcnVuZUZyZWV6ZVBhcmFtcyAqcGFyYW1zLAogCQkJCQkJCQkJICAgUHJ1bmVG cmVlemVSZXN1bHQgKnByZXN1bHQsCiAJCQkJCQkJCQkgICBPZmZzZXROdW1iZXIgKm9mZl9sb2Ms Ci0tIAoyLjQzLjAKCg== --000000000000ef09e0064dcdbb4a Content-Type: text/x-patch; charset="UTF-8"; name="v45-0005-Set-pd_prune_xid-on-insert.patch" Content-Disposition: attachment; filename="v45-0005-Set-pd_prune_xid-on-insert.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn59f6vj4 RnJvbSA3NjMzMDczYTY4NjZkNGNiOTRjODcyMmE1NDdiYTQ5ZTY4OTUwYmIwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDI5IEp1bCAyMDI1IDE2OjEyOjU2IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2NDUgNS81XSBTZXQgcGRfcHJ1bmVfeGlkIG9uIGluc2VydApNSU1FLVZlcnNpb246IDEu MApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zl ci1FbmNvZGluZzogOGJpdAoKTm93IHRoYXQgdmlzaWJpbGl0eSBtYXAgKFZNKSB1cGRhdGVzIGNh biBvY2N1ciBkdXJpbmcgcmVhZC1vbmx5IHF1ZXJpZXMsCml0IG1ha2VzIHNlbnNlIHRvIGFsc28g c2V0IHRoZSBwYWdl4oCZcyBwZF9wcnVuZV94aWQgaGludCBkdXJpbmcgaW5zZXJ0cwphbmQgb24g dGhlIG5ldyBwYWdlIGR1cmluZyB1cGRhdGVzLgoKVGhpcyBlbmFibGVzIGhlYXBfcGFnZV9wcnVu ZV9hbmRfZnJlZXplKCkgdG8gc2V0IHRoZSBWTSBhbGwtdmlzaWJsZQphZnRlciBhIHBhZ2UgaXMg ZmlsbGVkIHdpdGggbmV3bHkgaW5zZXJ0ZWQgdHVwbGVzIHRoZSBmaXJzdCB0aW1lIGl0IGlzCnJl YWQuIFRoaXMgbWVhbnMgdGhlIHBhZ2Ugd2lsbCBnZXQgc2V0IGFsbC12aXNpYmxlIHdoZW4gaXQg aXMgc3RpbGwgaW4Kc2hhcmVkIGJ1ZmZlcnMgYW5kIGF2b2lkIHBvdGVudGlhbCBJL08gYW1wbGlm aWNhdGlvbiB3aGVuIHZhY3V1bSBsYXRlcgpoYXMgdG8gc2NhbiB0aGUgcGFnZSBhbmQgc2V0IGl0 IGFsbC12aXNpYmxlLiBJdCBhbHNvIGVuYWJsZXMgaW5kZXgtb25seQpzY2FucyBvZiBuZXdseSBp bnNlcnRlZCBkYXRhIG11Y2ggc29vbmVyLgoKVGhpcyBjaGFuZ2UgYWxzbyBhZGRyZXNzZXMgYSBs b25nLXN0YW5kaW5nIG5vdGUgaW4gaGVhcF9pbnNlcnQoKSBhbmQKaGVhcF9tdWx0aV9pbnNlcnQo KSwgd2hpY2ggb2JzZXJ2ZWQgdGhhdCBzZXR0aW5nIHBkX3BydW5lX3hpZCB3b3VsZApoZWxwIGNs ZWFuIHVwIGFib3J0ZWQgaW5zZXJ0aW9ucyBzb29uZXIuIFdpdGhvdXQgaXQsIHN1Y2ggdHVwbGVz IG1pZ2h0CmxpbmdlciB1bnRpbCBWQUNVVU0sIHdoZXJlYXMgbm93IHRoZXkgY2FuIGJlIHBydW5l ZCBlYXJsaWVyLgoKQXV0aG9yOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpSZXZpZXdlZC1ieTogQW5kcmVzIEZyZXVuZCA8YW5kcmVzQGFuYXJhemVsLmRlPgpS ZXZpZXdlZC1ieTogQ2hhbyBMaSA8bGkuZXZhbi5jaGFvQGdtYWlsLmNvbT4KRGlzY3Vzc2lvbjog aHR0cHM6Ly9wb3N0Z3IuZXMvbS9mbGF0L0NBQUtSdV9aTXc2TnBkX3FtMktNJTJCRndRM2NNT014 MURoM1ZNaHA4LVY3U09MeGRLOS1nJTQwbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC9h Y2Nlc3MvaGVhcC9oZWFwYW0uYyAgICAgIHwgMzkgKysrKysrKysrKysrKysrKystLS0tLS0tLS0t CiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5jIHwgMTkgKysrKysrKysrKysr LQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMgICB8IDE4ICsrKysrKy0tLS0t LS0KIDMgZmlsZXMgY2hhbmdlZCwgNTEgaW5zZXJ0aW9ucygrKSwgMjUgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMgYi9zcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYwppbmRleCBkYmRmNjUyMWM0Mi4uY2RhZjU3ZTNmMTIgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCisrKyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCkBAIC0yMTU2LDYgKzIxNTYsNyBAQCBoZWFwX2luc2Vy dChSZWxhdGlvbiByZWxhdGlvbiwgSGVhcFR1cGxlIHR1cCwgQ29tbWFuZElkIGNpZCwKIAlUcmFu c2FjdGlvbklkIHhpZCA9IEdldEN1cnJlbnRUcmFuc2FjdGlvbklkKCk7CiAJSGVhcFR1cGxlCWhl YXB0dXA7CiAJQnVmZmVyCQlidWZmZXI7CisJUGFnZQkJcGFnZTsKIAlCdWZmZXIJCXZtYnVmZmVy ID0gSW52YWxpZEJ1ZmZlcjsKIAlib29sCQlhbGxfdmlzaWJsZV9jbGVhcmVkID0gZmFsc2U7CiAK QEAgLTIxODIsNiArMjE4Myw4IEBAIGhlYXBfaW5zZXJ0KFJlbGF0aW9uIHJlbGF0aW9uLCBIZWFw VHVwbGUgdHVwLCBDb21tYW5kSWQgY2lkLAogCQkJCQkJCQkJICAgJnZtYnVmZmVyLCBOVUxMLAog CQkJCQkJCQkJICAgMCk7CiAKKwlwYWdlID0gQnVmZmVyR2V0UGFnZShidWZmZXIpOworCiAJLyoK IAkgKiBXZSdyZSBhYm91dCB0byBkbyB0aGUgYWN0dWFsIGluc2VydCAtLSBidXQgY2hlY2sgZm9y IGNvbmZsaWN0IGZpcnN0LCB0bwogCSAqIGF2b2lkIHBvc3NpYmx5IGhhdmluZyB0byByb2xsIGJh Y2sgd29yayB3ZSd2ZSBqdXN0IGRvbmUuCkBAIC0yMjA1LDI1ICsyMjA4LDMwIEBAIGhlYXBfaW5z ZXJ0KFJlbGF0aW9uIHJlbGF0aW9uLCBIZWFwVHVwbGUgdHVwLCBDb21tYW5kSWQgY2lkLAogCVJl bGF0aW9uUHV0SGVhcFR1cGxlKHJlbGF0aW9uLCBidWZmZXIsIGhlYXB0dXAsCiAJCQkJCQkgKG9w dGlvbnMgJiBIRUFQX0lOU0VSVF9TUEVDVUxBVElWRSkgIT0gMCk7CiAKLQlpZiAoUGFnZUlzQWxs VmlzaWJsZShCdWZmZXJHZXRQYWdlKGJ1ZmZlcikpKQorCWlmIChQYWdlSXNBbGxWaXNpYmxlKHBh Z2UpKQogCXsKIAkJYWxsX3Zpc2libGVfY2xlYXJlZCA9IHRydWU7Ci0JCVBhZ2VDbGVhckFsbFZp c2libGUoQnVmZmVyR2V0UGFnZShidWZmZXIpKTsKKwkJUGFnZUNsZWFyQWxsVmlzaWJsZShwYWdl KTsKIAkJdmlzaWJpbGl0eW1hcF9jbGVhcihyZWxhdGlvbiwKIAkJCQkJCQlJdGVtUG9pbnRlckdl dEJsb2NrTnVtYmVyKCYoaGVhcHR1cC0+dF9zZWxmKSksCiAJCQkJCQkJdm1idWZmZXIsIFZJU0lC SUxJVFlNQVBfVkFMSURfQklUUyk7CiAJfQogCiAJLyoKLQkgKiBYWFggU2hvdWxkIHdlIHNldCBQ YWdlU2V0UHJ1bmFibGUgb24gdGhpcyBwYWdlID8KKwkgKiBTZXQgcGRfcHJ1bmVfeGlkIHRvIHRy aWdnZXIgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoKSBvbmNlIHRoZSBwYWdlCisJICogaXMg ZnVsbCBzbyB0aGF0IHdlIGNhbiBzZXQgdGhlIHBhZ2UgYWxsLXZpc2libGUgaW4gdGhlIFZNIG9u IHRoZSBuZXh0CisJICogcGFnZSBhY2Nlc3MuCiAJICoKLQkgKiBUaGUgaW5zZXJ0aW5nIHRyYW5z YWN0aW9uIG1heSBldmVudHVhbGx5IGFib3J0IHRodXMgbWFraW5nIHRoaXMgdHVwbGUKLQkgKiBE RUFEIGFuZCBoZW5jZSBhdmFpbGFibGUgZm9yIHBydW5pbmcuIFRob3VnaCB3ZSBkb24ndCB3YW50 IHRvIG9wdGltaXplCi0JICogZm9yIGFib3J0cywgaWYgbm8gb3RoZXIgdHVwbGUgaW4gdGhpcyBw YWdlIGlzIFVQREFURWQvREVMRVRFZCwgdGhlCi0JICogYWJvcnRlZCB0dXBsZSB3aWxsIG5ldmVy IGJlIHBydW5lZCB1bnRpbCBuZXh0IHZhY3V1bSBpcyB0cmlnZ2VyZWQuCisJICogU2V0dGluZyBw ZF9wcnVuZV94aWQgaXMgYWxzbyBoYW5keSBpZiB0aGUgaW5zZXJ0aW5nIHRyYW5zYWN0aW9uCisJ ICogZXZlbnR1YWxseSBhYm9ydHMgbWFraW5nIHRoaXMgdHVwbGUgREVBRCBhbmQgaGVuY2UgYXZh aWxhYmxlIGZvcgorCSAqIHBydW5pbmcuIElmIG5vIG90aGVyIHR1cGxlIGluIHRoaXMgcGFnZSBp cyBVUERBVEVkL0RFTEVURWQsIHRoZSBhYm9ydGVkCisJICogdHVwbGUgd291bGQgbmV2ZXIgb3Ro ZXJ3aXNlIGJlIHBydW5lZCB1bnRpbCBuZXh0IHZhY3V1bSBpcyB0cmlnZ2VyZWQuCiAJICoKLQkg KiBJZiB5b3UgZG8gYWRkIFBhZ2VTZXRQcnVuYWJsZSBoZXJlLCBhZGQgaXQgaW4gaGVhcF94bG9n X2luc2VydCB0b28uCisJICogRG9uJ3Qgc2V0IGl0IGlmIHdlIGFyZSBpbiBib290c3RyYXAgbW9k ZSBvciB3ZSBhcmUgaW5zZXJ0aW5nIGEgZnJvemVuCisJICogdHVwbGUsIGFzIHRoZXJlIGlzIG5v IGZ1cnRoZXIgcHJ1bmluZy9mcmVlemluZyBuZWVkZWQgaW4gdGhvc2UgY2FzZXMuCiAJICovCisJ aWYgKFRyYW5zYWN0aW9uSWRJc05vcm1hbCh4aWQpICYmICEob3B0aW9ucyAmIEhFQVBfSU5TRVJU X0ZST1pFTikpCisJCVBhZ2VTZXRQcnVuYWJsZShwYWdlLCB4aWQpOwogCiAJTWFya0J1ZmZlckRp cnR5KGJ1ZmZlcik7CiAKQEAgLTIyMzMsNyArMjI0MSw2IEBAIGhlYXBfaW5zZXJ0KFJlbGF0aW9u IHJlbGF0aW9uLCBIZWFwVHVwbGUgdHVwLCBDb21tYW5kSWQgY2lkLAogCQl4bF9oZWFwX2luc2Vy dCB4bHJlYzsKIAkJeGxfaGVhcF9oZWFkZXIgeGxoZHI7CiAJCVhMb2dSZWNQdHIJcmVjcHRyOwot CQlQYWdlCQlwYWdlID0gQnVmZmVyR2V0UGFnZShidWZmZXIpOwogCQl1aW50OAkJaW5mbyA9IFhM T0dfSEVBUF9JTlNFUlQ7CiAJCWludAkJCWJ1ZmZsYWdzID0gMDsKIApAQCAtMjU5OCw4ICsyNjA1 LDEyIEBAIGhlYXBfbXVsdGlfaW5zZXJ0KFJlbGF0aW9uIHJlbGF0aW9uLCBUdXBsZVRhYmxlU2xv dCAqKnNsb3RzLCBpbnQgbnR1cGxlcywKIAkJfQogCiAJCS8qCi0JCSAqIFhYWCBTaG91bGQgd2Ug c2V0IFBhZ2VTZXRQcnVuYWJsZSBvbiB0aGlzIHBhZ2UgPyBTZWUgaGVhcF9pbnNlcnQoKQorCQkg KiBTZXQgcGRfcHJ1bmVfeGlkLiBTZWUgaGVhcF9pbnNlcnQoKSBmb3IgbW9yZSBvbiB3aHkgd2Ug ZG8gdGhpcyB3aGVuCisJCSAqIGluc2VydGluZyB0dXBsZXMuIFRoaXMgb25seSBtYWtlcyBzZW5z ZSBpZiB3ZSBhcmVuJ3QgYWxyZWFkeQorCQkgKiBzZXR0aW5nIHRoZSBwYWdlIGZyb3plbiBpbiB0 aGUgVk0gYW5kIHdlJ3JlIG5vdCBpbiBib290c3RyYXAgbW9kZS4KIAkJICovCisJCWlmICghYWxs X2Zyb3plbl9zZXQgJiYgVHJhbnNhY3Rpb25JZElzTm9ybWFsKHhpZCkpCisJCQlQYWdlU2V0UHJ1 bmFibGUocGFnZSwgeGlkKTsKIAogCQlNYXJrQnVmZmVyRGlydHkoYnVmZmVyKTsKIApAQCAtNDE0 MSwxMiArNDE1MiwxMiBAQCBsMjoKIAkgKiB0aGUgc3Vic2VxdWVudCBwYWdlIHBydW5pbmcgd2ls bCBiZSBhIG5vLW9wIGFuZCB0aGUgaGludCB3aWxsIGJlCiAJICogY2xlYXJlZC4KIAkgKgotCSAq IFhYWCBTaG91bGQgd2Ugc2V0IGhpbnQgb24gbmV3YnVmIGFzIHdlbGw/ICBJZiB0aGUgdHJhbnNh Y3Rpb24gYWJvcnRzLAotCSAqIHRoZXJlIHdvdWxkIGJlIGEgcHJ1bmFibGUgdHVwbGUgaW4gdGhl IG5ld2J1ZjsgYnV0IGZvciBub3cgd2UgY2hvb3NlCi0JICogbm90IHRvIG9wdGltaXplIGZvciBh Ym9ydHMuICBOb3RlIHRoYXQgaGVhcF94bG9nX3VwZGF0ZSBtdXN0IGJlIGtlcHQgaW4KLQkgKiBz eW5jIGlmIHRoaXMgZGVjaXNpb24gY2hhbmdlcy4KKwkgKiBXZSBzZXQgdGhlIG5ldyBwYWdlIHBy dW5hYmxlIGFzIHdlbGwuIFNlZSBoZWFwX2luc2VydCgpIGZvciBtb3JlIG9uIHdoeQorCSAqIHdl IGRvIHRoaXMgd2hlbiBpbnNlcnRpbmcgdHVwbGVzLgogCSAqLwogCVBhZ2VTZXRQcnVuYWJsZShw YWdlLCB4aWQpOworCWlmIChuZXdidWYgIT0gYnVmZmVyKQorCQlQYWdlU2V0UHJ1bmFibGUobmV3 cGFnZSwgeGlkKTsKIAogCWlmICh1c2VfaG90X3VwZGF0ZSkKIAl7CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hl YXAvaGVhcGFtX3hsb2cuYwppbmRleCAxMzAyYmIxM2UxOC4uZjNmNDE5ZDNkYzEgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV94bG9nLmMKKysrIGIvc3JjL2JhY2tl bmQvYWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cuYwpAQCAtNDUwLDYgKzQ1MCwxNCBAQCBoZWFwX3hs b2dfaW5zZXJ0KFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCiAJCWZyZWVzcGFjZSA9IFBhZ2VH ZXRIZWFwRnJlZVNwYWNlKHBhZ2UpOyAvKiBuZWVkZWQgdG8gdXBkYXRlIEZTTSBiZWxvdyAqLwog CisJCS8qCisJCSAqIFNldCB0aGUgcGFnZSBwcnVuYWJsZSB0byB0cmlnZ2VyIG9uLWFjY2VzcyBw cnVuaW5nIGxhdGVyLCB3aGljaCBtYXkKKwkJICogc2V0IHRoZSBwYWdlIGFsbC12aXNpYmxlIGlu IHRoZSBWTS4gU2VlIGNvbW1lbnRzIGluIGhlYXBfaW5zZXJ0KCkuCisJCSAqLworCQlpZiAoVHJh bnNhY3Rpb25JZElzTm9ybWFsKFhMb2dSZWNHZXRYaWQocmVjb3JkKSkgJiYKKwkJCSFIZWFwVHVw bGVIZWFkZXJYbWluRnJvemVuKGh0dXApKQorCQkJUGFnZVNldFBydW5hYmxlKHBhZ2UsIFhMb2dS ZWNHZXRYaWQocmVjb3JkKSk7CisKIAkJUGFnZVNldExTTihwYWdlLCBsc24pOwogCiAJCWlmICh4 bHJlYy0+ZmxhZ3MgJiBYTEhfSU5TRVJUX0FMTF9WSVNJQkxFX0NMRUFSRUQpCkBAIC01OTksMTIg KzYwNywxOSBAQCBoZWFwX3hsb2dfbXVsdGlfaW5zZXJ0KFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3Jk KQogCQlpZiAoeGxyZWMtPmZsYWdzICYgWExIX0lOU0VSVF9BTExfVklTSUJMRV9DTEVBUkVEKQog CQkJUGFnZUNsZWFyQWxsVmlzaWJsZShwYWdlKTsKIAotCQkvKiBYTEhfSU5TRVJUX0FMTF9GUk9a RU5fU0VUIGltcGxpZXMgdGhhdCBhbGwgdHVwbGVzIGFyZSB2aXNpYmxlICovCisJCS8qCisJCSAq IFhMSF9JTlNFUlRfQUxMX0ZST1pFTl9TRVQgaW1wbGllcyB0aGF0IGFsbCB0dXBsZXMgYXJlIHZp c2libGUuIElmCisJCSAqIHdlIGFyZSBub3Qgc2V0dGluZyB0aGUgcGFnZSBmcm96ZW4sIHRoZW4g c2V0IHRoZSBwYWdlJ3MgcHJ1bmFibGUKKwkJICogaGludCBzbyB0aGF0IHdlIHRyaWdnZXIgb24t YWNjZXNzIHBydW5pbmcgbGF0ZXIgd2hpY2ggbWF5IHNldCB0aGUKKwkJICogcGFnZSBhbGwtdmlz aWJsZSBpbiB0aGUgVk0uCisJCSAqLwogCQlpZiAoeGxyZWMtPmZsYWdzICYgWExIX0lOU0VSVF9B TExfRlJPWkVOX1NFVCkKIAkJewogCQkJUGFnZVNldEFsbFZpc2libGUocGFnZSk7CiAJCQlQYWdl Q2xlYXJQcnVuYWJsZShwYWdlKTsKIAkJfQorCQllbHNlCisJCQlQYWdlU2V0UHJ1bmFibGUocGFn ZSwgWExvZ1JlY0dldFhpZChyZWNvcmQpKTsKIAogCQlNYXJrQnVmZmVyRGlydHkoYnVmZmVyKTsK IAl9CkBAIC05MjEsNiArOTM2LDggQEAgaGVhcF94bG9nX3VwZGF0ZShYTG9nUmVhZGVyU3RhdGUg KnJlY29yZCwgYm9vbCBob3RfdXBkYXRlKQogCQlmcmVlc3BhY2UgPSBQYWdlR2V0SGVhcEZyZWVT cGFjZShucGFnZSk7CiAKIAkJUGFnZVNldExTTihucGFnZSwgbHNuKTsKKwkJLyogU2VlIGhlYXBf aW5zZXJ0KCkgZm9yIHdoeSB3ZSBzZXQgcGRfcHJ1bmVfeGlkIG9uIGluc2VydCAqLworCQlQYWdl U2V0UHJ1bmFibGUobnBhZ2UsIFhMb2dSZWNHZXRYaWQocmVjb3JkKSk7CiAJCU1hcmtCdWZmZXJE aXJ0eShuYnVmZmVyKTsKIAl9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L3BydW5laGVhcC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKaW5kZXgg ZDgzZmQyNmIyNzQuLmJiMzY0ZjUzYTQ0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mv aGVhcC9wcnVuZWhlYXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAu YwpAQCAtMjc1LDcgKzI3NSw4IEBAIGhlYXBfcGFnZV9wcnVuZV9vcHQoUmVsYXRpb24gcmVsYXRp b24sIEJ1ZmZlciBidWZmZXIsIEJ1ZmZlciAqdm1idWZmZXIsCiAJLyoKIAkgKiBGaXJzdCBjaGVj ayB3aGV0aGVyIHRoZXJlJ3MgYW55IGNoYW5jZSB0aGVyZSdzIHNvbWV0aGluZyB0byBwcnVuZSwK IAkgKiBkZXRlcm1pbmluZyB0aGUgYXBwcm9wcmlhdGUgaG9yaXpvbiBpcyBhIHdhc3RlIGlmIHRo ZXJlJ3Mgbm8gcHJ1bmVfeGlkCi0JICogKGkuZS4gbm8gdXBkYXRlcy9kZWxldGVzIGxlZnQgcG90 ZW50aWFsbHkgZGVhZCB0dXBsZXMgYXJvdW5kKS4KKwkgKiAoaS5lLiBubyB1cGRhdGVzL2RlbGV0 ZXMgbGVmdCBwb3RlbnRpYWxseSBkZWFkIHR1cGxlcyBhcm91bmQgYW5kIG5vCisJICogaW5zZXJ0 cyBpbnNlcnRlZCBuZXcgdHVwbGVzIHRoYXQgbWF5IGJlIHZpc2libGUgdG8gYWxsKS4KIAkgKi8K IAlwcnVuZV94aWQgPSBQYWdlR2V0UHJ1bmVYaWQocGFnZSk7CiAJaWYgKCFUcmFuc2FjdGlvbklk SXNWYWxpZChwcnVuZV94aWQpKQpAQCAtMTkxOCwxNyArMTkxOSwxNCBAQCBoZWFwX3BydW5lX3Jl Y29yZF91bmNoYW5nZWRfbHBfbm9ybWFsKFBydW5lU3RhdGUgKnByc3RhdGUsIE9mZnNldE51bWJl ciBvZmZudW0pCiAJCQlwcnN0YXRlLT5zZXRfYWxsX3Zpc2libGUgPSBmYWxzZTsKIAkJCXByc3Rh dGUtPnNldF9hbGxfZnJvemVuID0gZmFsc2U7CiAKLQkJCS8qIFRoZSBwYWdlIHNob3VsZCBub3Qg YmUgbWFya2VkIGFsbC12aXNpYmxlICovCi0JCQlpZiAoUGFnZUlzQWxsVmlzaWJsZShwYWdlKSkK LQkJCQloZWFwX3BhZ2VfZml4X3ZtX2NvcnJ1cHRpb24ocHJzdGF0ZSwgb2ZmbnVtLAotCQkJCQkJ CQkJCQlWTV9DT1JSVVBUX1RVUExFX1ZJU0lCSUxJVFkpOwotCiAJCQkvKgotCQkJICogSWYgd2Ug d2FudGVkIHRvIG9wdGltaXplIGZvciBhYm9ydHMsIHdlIG1pZ2h0IGNvbnNpZGVyIG1hcmtpbmcK LQkJCSAqIHRoZSBwYWdlIHBydW5hYmxlIHdoZW4gd2Ugc2VlIElOU0VSVF9JTl9QUk9HUkVTUy4g IEJ1dCB3ZQotCQkJICogZG9uJ3QuICBTZWUgcmVsYXRlZCBkZWNpc2lvbnMgYWJvdXQgd2hlbiB0 byBtYXJrIHRoZSBwYWdlCi0JCQkgKiBwcnVuYWJsZSBpbiBoZWFwYW0uYy4KKwkJCSAqIFRob3Vn aCB0aGVyZSBpcyBub3RoaW5nICJwcnVuYWJsZSIgb24gdGhlIHBhZ2UsIHdlIG1haW50YWluCisJ CQkgKiBwZF9wcnVuZV94aWQgZm9yIGluc2VydHMgc28gdGhhdCB3ZSBoYXZlIHRoZSBvcHBvcnR1 bml0eSB0bworCQkJICogbWFyayB0aGVtIGFsbC12aXNpYmxlIGR1cmluZyB0aGUgbmV4dCByb3Vu ZCBvZiBwcnVuaW5nLgogCQkJICovCisJCQloZWFwX3BydW5lX3JlY29yZF9wcnVuYWJsZShwcnN0 YXRlLAorCQkJCQkJCQkJICAgSGVhcFR1cGxlSGVhZGVyR2V0WG1pbihodHVwKSwKKwkJCQkJCQkJ CSAgIG9mZm51bSk7CiAJCQlicmVhazsKIAogCQljYXNlIEhFQVBUVVBMRV9ERUxFVEVfSU5fUFJP R1JFU1M6Ci0tIAoyLjQzLjAKCg== --000000000000ef09e0064dcdbb4a--