Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1q1821-00006Q-6W for pgsql-hackers@arkaria.postgresql.org; Mon, 22 May 2023 16:05:09 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1q181z-0005xW-DC for pgsql-hackers@arkaria.postgresql.org; Mon, 22 May 2023 16:05:07 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1q181y-0005xD-HR for pgsql-hackers@lists.postgresql.org; Mon, 22 May 2023 16:05:07 +0000 Received: from mail-qv1-xf2b.google.com ([2607:f8b0:4864:20::f2b]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1q181r-001ElN-Vq for pgsql-hackers@lists.postgresql.org; Mon, 22 May 2023 16:05:05 +0000 Received: by mail-qv1-xf2b.google.com with SMTP id 6a1803df08f44-6237c957c5aso24720116d6.2 for ; Mon, 22 May 2023 09:04:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=crunchydata.com; s=google; t=1684771499; x=1687363499; h=user-agent:mime-version:date:references:in-reply-to:cc:to:from :subject:message-id:from:to:cc:subject:date:message-id:reply-to; bh=p6QnpPSfO0qFMw7CRG2yLnTr10EVb9LUEf6/bA9ubUQ=; b=ncQ/b9xPjBhd0WzcGLsm1X2yJ92Jo2RUlMQ+W3GLNyPhkdbJz1XpOpuvCO8y1J2F2y jmwGI9JwpOOQaj6pCSHpa7MP6W09Spyt28ALRsyNyFq9Cwmz9ge9iOSZtghqipO5K94m uCO4N1E3GOOUVO/TWb7Aa4mALusVnbQKY+VE7acDnQo6iKtAphYwYf9/lv1WD1ffJrX0 NSpFn0/ttc9KjpihVtNVujJkIYHp17sEN/H9D0SOjIRoJXbLasLkPYeV5sSKJw09D2yK 5NucEseixzriEZBHWl1PCLaIcin0QrhZgREDVTg1MZr8THJGmpedYYchBrZrLEz2GsMK 7rtw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684771499; x=1687363499; h=user-agent:mime-version:date:references:in-reply-to:cc:to:from :subject:message-id:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=p6QnpPSfO0qFMw7CRG2yLnTr10EVb9LUEf6/bA9ubUQ=; b=X319FCMHZq3G81ZrsSsZur3ksvETPWoFqqg2DEOiNVeHrr1Qnx7uyzSHBSRovDz7gi vG5K4er8M9/TwS6+Mm7fDeSfLtIv6S75LfGrFoM4sgwcX2lcrfSQZXCYQTwiNvSgdGc9 d6+KPqBx2jSHWmHwXr5COs0wrN33eIvYSxUHjJh+jpmc9kCfMYishTx9yRkOCecsBT2s vH9+Bbj2h1+1Q5OtyUZ5lL1sSPKEWbEUwbfDg1PUS0XEZ86quZBOEnMjuqtWuzkpTs2p imZ+jv8aZHd02KnYdvevoyVyh4OM0xvPKVPOZNJiCi1PndZV5KcxJhWanMOhIrx2JaOG vUjA== X-Gm-Message-State: AC+VfDynV6OXQUFdCWEyh7/VE4lhc3oNe0dqXLzhGFecvtrb+jtLZmMJ V/lRU3JP556EPhDwRxI1ja6g1A== X-Google-Smtp-Source: ACHHUZ7qwZ5oi+iqaK9b9Xn0OAXfUtK8740JQ5PHBvkcsqEvGinFMZTgjaq8Tv2drCIjqY15Ej3sQA== X-Received: by 2002:a05:6214:dad:b0:623:1a2f:fe06 with SMTP id h13-20020a0562140dad00b006231a2ffe06mr21039464qvh.10.1684771498860; Mon, 22 May 2023 09:04:58 -0700 (PDT) Received: from raker.lan (cpe-24-163-71-136.nc.res.rr.com. [24.163.71.136]) by smtp.gmail.com with ESMTPSA id k12-20020a0cebcc000000b006039f5a247esm2041101qvq.78.2023.05.22.09.04.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 May 2023 09:04:58 -0700 (PDT) Message-ID: <4edafedc0f8acb12a2979088ac1317bd7dd42145.camel@crunchydata.com> Subject: Re: Add the ability to limit the amount of memory that can be allocated to backends. From: reid.thompson@crunchydata.com To: Arne Roland , Andres Freund Cc: vignesh C , "pgsql-hackers@lists.postgresql.org" , Justin Pryzby , Ibrar Ahmed , "stephen.frost" In-Reply-To: <7912c911af51d5cf28c611190bf3d463b9209343.camel@crunchydata.com> References: <20221206183244.howaxkwg4tm4bnkp@awork3.anarazel.de> <4816d81103c9360c51d0bc73f1dfb9992f10c9de.camel@crunchydata.com> <711c72e49919508d584e14f36a01119ef75d9ba5.camel@crunchydata.com> <9ab2e5e54b93651e9593342fc48d29fdd469bc99.camel@crunchydata.com> <20230123203128.wh2jjh4runhnalho@awork3.anarazel.de> <9b5226bf88ed5f09c7ae589a11c8fd147854eb98.camel@crunchydata.com> <20230214002627.7btgrc34forjkm2i@awork3.anarazel.de> <1a136d92e53eea52a4cde2163918ea91cf75e0b6.camel@crunchydata.com> <20230303002907.jktl5rddkvlazprp@alap3.anarazel.de> <457dd07b21810463d8dd282e48b99cd90c24a440.camel@crunchydata.com> <334ccda9d8790f2b80dc3fee787704b0621152da.camel@crunchydata.com> <94184680049d6bda0c85f1759af24d8127cfe895.camel@crunchydata.com> <7912c911af51d5cf28c611190bf3d463b9209343.camel@crunchydata.com> Content-Type: multipart/mixed; boundary="=-Yy+CVgCBbbbWOL4C12ja" Date: Mon, 22 May 2023 11:59:56 -0400 MIME-Version: 1.0 User-Agent: Evolution 3.45.1 Compiled: 2022-06-07 10:22:05 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=-Yy+CVgCBbbbWOL4C12ja Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, 2023-05-22 at 08:42 -0400, reid.thompson@crunchydata.com wrote: > On Wed, 2023-05-17 at 23:07 -0400, reid.thompson@crunchydata.com wrote: > > Thanks for the feedback. > >=20 > > I'm plannning to look at this.=20 > >=20 > > Is your benchmark something that I could utilize? I.E. is it a set of > > scripts or a standard test from somewhere that I can duplicate? > >=20 > > Thanks, > > Reid > >=20 Attach patches updated to master. Pulled from patch 2 back to patch 1 a change that was also pertinent to pat= ch 1. --=-Yy+CVgCBbbbWOL4C12ja Content-Disposition: attachment; filename="0001-Add-tracking-of-backend-memory-allocated.patch" Content-Type: text/x-patch; name="0001-Add-tracking-of-backend-memory-allocated.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBlNmY4NDk5ZTAyNzBmMjI5MTQ5NDI2MGJjMzQxZThhZDE0MTFjMmFlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSZWlkIFRob21wc29uIDxqcmVpZHRob21wc29uQG5jLnJyLmNv bT4KRGF0ZTogVGh1LCAxMSBBdWcgMjAyMiAxMjowMToyNSAtMDQwMApTdWJqZWN0OiBbUEFUQ0gg MS8yXSBBZGQgdHJhY2tpbmcgb2YgYmFja2VuZCBtZW1vcnkgYWxsb2NhdGVkCgpBZGQgdHJhY2tp bmcgb2YgYmFja2VuZCBtZW1vcnkgYWxsb2NhdGVkIGluIHRvdGFsIGFuZCBieSBhbGxvY2F0aW9u CnR5cGUgKGFzZXQsIGRzbSwgZ2VuZXJhdGlvbiwgc2xhYikgYnkgcHJvY2Vzcy4KCmFsbG9jYXRl ZF9ieXRlcyB0cmFja3MgdGhlIGN1cnJlbnQgYnl0ZXMgb2YgbWVtb3J5IGFsbG9jYXRlZCB0byB0 aGUKYmFja2VuZCBwcm9jZXNzLiBhc2V0X2FsbG9jYXRlZF9ieXRlcywgZHNtX2FsbG9jYXRlZF9i eXRlcywKZ2VuZXJhdGlvbl9hbGxvY2F0ZWRfYnl0ZXMgYW5kIHNsYWJfYWxsb2NhdGVkX2J5dGVz IHRyYWNrIHRoZQphbGxvY2F0aW9uIGJ5IHR5cGUgZm9yIHRoZSBiYWNrZW5kIHByb2Nlc3MuIFRo ZXkgYXJlIHVwZGF0ZWQgZm9yIHRoZQpwcm9jZXNzIGFzIG1lbW9yeSBpcyBtYWxsb2MnZC9mcmVl ZC4gIE1lbW9yeSBhbGxvY2F0ZWQgdG8gaXRlbXMgb24KdGhlIGZyZWVsaXN0IGlzIGluY2x1ZGVk LiAgRHluYW1pYyBzaGFyZWQgbWVtb3J5IGFsbG9jYXRpb25zIGFyZQppbmNsdWRlZCBvbmx5IGlu IHRoZSB2YWx1ZSBkaXNwbGF5ZWQgZm9yIHRoZSBiYWNrZW5kIHRoYXQgY3JlYXRlZAp0aGVtLCB0 aGV5IGFyZSBub3QgaW5jbHVkZWQgaW4gdGhlIHZhbHVlIGZvciBiYWNrZW5kcyB0aGF0IGFyZQph dHRhY2hlZCB0byB0aGVtIHRvIGF2b2lkIGRvdWJsZSBjb3VudGluZy4gRFNNIGFsbG9jYXRpb25z IHRoYXQgYXJlCm5vdCBkZXN0cm95ZWQgYnkgdGhlIGNyZWF0aW5nIHByb2Nlc3MgcHJpb3IgdG8g aXQncyBleGl0IGFyZQpjb25zaWRlcmVkIGxvbmcgbGl2ZWQgYW5kIGFyZSB0cmFja2VkIGluIGEg Z2xvYmFsIGNvdW50ZXIKZ2xvYmFsX2RzbV9hbGxvY2F0ZWRfYnl0ZXMuIFdlIGxpbWl0IHRoZSBm bG9vciBvZiBhbGxvY2F0aW9uCmNvdW50ZXJzIHRvIHplcm8uIENyZWF0ZWQgdmlld3MgcGdfc3Rh dF9nbG9iYWxfbWVtb3J5X2FsbG9jYXRpb24gYW5kCnBnX3N0YXRfbWVtb3J5X2FsbG9jYXRpb24g Zm9yIGFjY2VzcyB0byB0aGVzZSB0cmFja2Vycy4KLS0tCiBkb2Mvc3JjL3NnbWwvbW9uaXRvcmlu Zy5zZ21sICAgICAgICAgICAgICAgIHwgMjQ2ICsrKysrKysrKysrKysrKysrKysrCiBzcmMvYmFj a2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwgICAgICAgIHwgIDM0ICsrKwogc3JjL2JhY2tl bmQvc3RvcmFnZS9pcGMvZHNtLmMgICAgICAgICAgICAgICB8ICAxMSArLQogc3JjL2JhY2tlbmQv c3RvcmFnZS9pcGMvZHNtX2ltcGwuYyAgICAgICAgICB8ICA3OCArKysrKysrCiBzcmMvYmFja2Vu ZC9zdG9yYWdlL2xtZ3IvcHJvYy5jICAgICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL3V0 aWxzL2FjdGl2aXR5L2JhY2tlbmRfc3RhdHVzLmMgfCAxMTQgKysrKysrKysrCiBzcmMvYmFja2Vu ZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYyAgICAgICAgIHwgIDg0ICsrKysrKysKIHNyYy9iYWNr ZW5kL3V0aWxzL2luaXQvbWlzY2luaXQuYyAgICAgICAgICAgfCAgIDMgKwogc3JjL2JhY2tlbmQv dXRpbHMvbW1nci9hc2V0LmMgICAgICAgICAgICAgICB8ICAxNyArKwogc3JjL2JhY2tlbmQvdXRp bHMvbW1nci9nZW5lcmF0aW9uLmMgICAgICAgICB8ICAxNSArKwogc3JjL2JhY2tlbmQvdXRpbHMv bW1nci9zbGFiLmMgICAgICAgICAgICAgICB8ICAyMiArKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19wcm9jLmRhdCAgICAgICAgICAgICB8ICAxNyArKwogc3JjL2luY2x1ZGUvc3RvcmFnZS9wcm9j LmggICAgICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvaW5jbHVkZS91dGlscy9iYWNrZW5kX3N0 YXR1cy5oICAgICAgICAgIHwgMTQ0ICsrKysrKysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9ydWxlcy5vdXQgICAgICAgICB8ICAyNyArKysKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvc3RhdHMub3V0ICAgICAgICAgfCAgMzYgKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9zdGF0 cy5zcWwgICAgICAgICAgICAgIHwgIDIwICsrCiAxNyBmaWxlcyBjaGFuZ2VkLCA4NjkgaW5zZXJ0 aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvbW9uaXRv cmluZy5zZ21sIGIvZG9jL3NyYy9zZ21sL21vbml0b3Jpbmcuc2dtbAppbmRleCBkZjUyNDJmYTgw Li5jZmMyMjFmYjJlIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvbW9uaXRvcmluZy5zZ21sCisr KyBiL2RvYy9zcmMvc2dtbC9tb25pdG9yaW5nLnNnbWwKQEAgLTU3NTcsNiArNTc1NywyNTIgQEAg U0VMRUNUIHBpZCwgd2FpdF9ldmVudF90eXBlLCB3YWl0X2V2ZW50IEZST00gcGdfc3RhdF9hY3Rp dml0eSBXSEVSRSB3YWl0X2V2ZW50IGkKIAogIDwvc2VjdDI+CiAKKyA8c2VjdDIgaWQ9Im1vbml0 b3JpbmctcGctc3RhdC1tZW1vcnktYWxsb2NhdGlvbi12aWV3Ij4KKyAgPHRpdGxlPjxzdHJ1Y3Ru YW1lPnBnX3N0YXRfbWVtb3J5X2FsbG9jYXRpb248L3N0cnVjdG5hbWU+PC90aXRsZT4KKworICA8 aW5kZXh0ZXJtPgorICAgPHByaW1hcnk+cGdfc3RhdF9tZW1vcnlfYWxsb2NhdGlvbjwvcHJpbWFy eT4KKyAgPC9pbmRleHRlcm0+CisKKyAgPHBhcmE+CisgICBUaGUgPHN0cnVjdG5hbWU+cGdfc3Rh dF9tZW1vcnlfYWxsb2NhdGlvbjwvc3RydWN0bmFtZT4gdmlldyB3aWxsIGhhdmUgb25lCisgICBy b3cgcGVyIHNlcnZlciBwcm9jZXNzLCBzaG93aW5nIGluZm9ybWF0aW9uIHJlbGF0ZWQgdG8gdGhl IGN1cnJlbnQgbWVtb3J5CisgICBhbGxvY2F0aW9uIG9mIHRoYXQgcHJvY2VzcyBpbiB0b3RhbCBh bmQgYnkgYWxsb2NhdG9yIHR5cGUuIER1ZSB0byB0aGUKKyAgIGR5bmFtaWMgbmF0dXJlIG9mIG1l bW9yeSBhbGxvY2F0aW9ucyB0aGUgYWxsb2NhdGVkIGJ5dGVzIHZhbHVlcyBtYXkgbm90IGJlCisg ICBleGFjdCBidXQgc2hvdWxkIGJlIHN1ZmZpY2llbnQgZm9yIHRoZSBpbnRlbmRlZCBwdXJwb3Nl cy4gRHluYW1pYyBzaGFyZWQKKyAgIG1lbW9yeSBhbGxvY2F0aW9ucyBhcmUgaW5jbHVkZWQgb25s eSBpbiB0aGUgdmFsdWUgZGlzcGxheWVkIGZvciB0aGUgYmFja2VuZAorICAgdGhhdCBjcmVhdGVk IHRoZW0sIHRoZXkgYXJlIG5vdCBpbmNsdWRlZCBpbiB0aGUgdmFsdWUgZm9yIGJhY2tlbmRzIHRo YXQgYXJlCisgICBhdHRhY2hlZCB0byB0aGVtIHRvIGF2b2lkIGRvdWJsZSBjb3VudGluZy4gIFVz ZQorICAgPGZ1bmN0aW9uPnBnX3NpemVfcHJldHR5PC9mdW5jdGlvbj4gZGVzY3JpYmVkIGluCisg ICA8eHJlZiBsaW5rZW5kPSJmdW5jdGlvbnMtYWRtaW4tZGJzaXplIi8+IHRvIG1ha2UgdGhlc2Ug dmFsdWVzIG1vcmUgZWFzaWx5CisgICByZWFkYWJsZS4KKyAgPC9wYXJhPgorCisgIDx0YWJsZSBp ZD0icGctc3RhdC1tZW1vcnktYWxsb2NhdGlvbi12aWV3IiB4cmVmbGFiZWw9InBnX3N0YXRfbWVt b3J5X2FsbG9jYXRpb24iPgorICAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX3N0YXRfbWVtb3J5X2Fs bG9jYXRpb248L3N0cnVjdG5hbWU+IFZpZXc8L3RpdGxlPgorICAgPHRncm91cCBjb2xzPSIxIj4K KyAgICA8dGhlYWQ+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJs ZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIENvbHVtbiBU eXBlCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBEZXNjcmlwdGlvbgorICAg ICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGhlYWQ+CisKKyAgICA8dGJv ZHk+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+ PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5kYXRp ZDwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxw YXJhPgorICAgICAgIE9JRCBvZiB0aGUgZGF0YWJhc2UgdGhpcyBiYWNrZW5kIGlzIGNvbm5lY3Rl ZCB0bworICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+Cisg ICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1u X2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5waWQ8L3N0cnVjdGZpZWxkPiA8dHlw ZT5pbnRlZ2VyPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgUHJv Y2VzcyBJRCBvZiB0aGlzIGJhY2tlbmQKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jv dz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnki PjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+YWxs b2NhdGVkX2J5dGVzPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+YmlnaW50PC90eXBlPgorICAgICAgPC9w YXJhPgorICAgICA8cGFyYT4KKyAgICAgIE1lbW9yeSBjdXJyZW50bHkgYWxsb2NhdGVkIHRvIHRo aXMgYmFja2VuZCBpbiBieXRlcy4gVGhpcyBpcyB0aGUgYmFsYW5jZQorICAgICAgb2YgYnl0ZXMg YWxsb2NhdGVkIGFuZCBmcmVlZCBieSB0aGlzIGJhY2tlbmQuIER5bmFtaWMgc2hhcmVkIG1lbW9y eQorICAgICAgYWxsb2NhdGlvbnMgYXJlIGluY2x1ZGVkIG9ubHkgaW4gdGhlIHZhbHVlIGRpc3Bs YXllZCBmb3IgdGhlIGJhY2tlbmQgdGhhdAorICAgICAgY3JlYXRlZCB0aGVtLCB0aGV5IGFyZSBu b3QgaW5jbHVkZWQgaW4gdGhlIHZhbHVlIGZvciBiYWNrZW5kcyB0aGF0IGFyZQorICAgICAgYXR0 YWNoZWQgdG8gdGhlbSB0byBhdm9pZCBkb3VibGUgY291bnRpbmcuCisgICAgIDwvcGFyYT48L2Vu dHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFs b2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8 c3RydWN0ZmllbGQ+YXNldF9hbGxvY2F0ZWRfYnl0ZXM8L3N0cnVjdGZpZWxkPiA8dHlwZT5iaWdp bnQ8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBNZW1vcnkgY3Vy cmVudGx5IGFsbG9jYXRlZCB0byB0aGlzIGJhY2tlbmQgaW4gYnl0ZXMgdmlhIHRoZSBhbGxvY2F0 aW9uCisgICAgICAgc2V0IGFsbG9jYXRvci4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8 L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50 cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+ ZHNtX2FsbG9jYXRlZF9ieXRlczwvc3RydWN0ZmllbGQ+IDx0eXBlPmJpZ2ludDwvdHlwZT4KKyAg ICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIE1lbW9yeSBjdXJyZW50bHkgYWxsb2Nh dGVkIHRvIHRoaXMgYmFja2VuZCBpbiBieXRlcyB2aWEgdGhlIGR5bmFtaWMKKyAgICAgICBzaGFy ZWQgbWVtb3J5IGFsbG9jYXRvci4gVXBvbiBwcm9jZXNzIGV4aXQsIGRzbSBhbGxvY2F0aW9ucyB0 aGF0IGhhdmUKKyAgICAgICBub3QgYmVlbiBmcmVlZCBhcmUgY29uc2lkZXJlZCBsb25nIGxpdmVk IGFuZCBhZGRlZCB0bworICAgICAgIDxzdHJ1Y3RmaWVsZD5nbG9iYWxfZHNtX2FsbG9jYXRlZF9i eXRlczwvc3RydWN0ZmllbGQ+IGZvdW5kIGluIHRoZQorICAgICAgIDxsaW5rIGxpbmtlbmQ9Im1v bml0b3JpbmctcGctc3RhdC1nbG9iYWwtbWVtb3J5LWFsbG9jYXRpb24tdmlldyI+CisgICAgICAg PHN0cnVjdG5hbWU+cGdfc3RhdF9nbG9iYWxfbWVtb3J5X2FsbG9jYXRpb248L3N0cnVjdG5hbWU+ PC9saW5rPiB2aWV3LgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAg IDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9s ZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5nZW5lcmF0aW9uX2Fs bG9jYXRlZF9ieXRlczwvc3RydWN0ZmllbGQ+IDx0eXBlPmJpZ2ludDwvdHlwZT4KKyAgICAgIDwv cGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIE1lbW9yeSBjdXJyZW50bHkgYWxsb2NhdGVkIHRv IHRoaXMgYmFja2VuZCBpbiBieXRlcyB2aWEgdGhlIGdlbmVyYXRpb24KKyAgICAgICBhbGxvY2F0 b3IuCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAg ICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5f ZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnNsYWJfYWxsb2NhdGVkX2J5dGVzPC9z dHJ1Y3RmaWVsZD4gPHR5cGU+YmlnaW50PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBh cmE+CisgICAgICAgTWVtb3J5IGN1cnJlbnRseSBhbGxvY2F0ZWQgdG8gdGhpcyBiYWNrZW5kIGlu IGJ5dGVzIHZpYSB0aGUgc2xhYgorICAgICAgIGFsbG9jYXRvci4KKyAgICAgIDwvcGFyYT48L2Vu dHJ5PgorICAgICA8L3Jvdz4KKworICAgIDwvdGJvZHk+CisgICA8L3Rncm91cD4KKyAgPC90YWJs ZT4KKworIDwvc2VjdDI+CisKKyA8c2VjdDIgaWQ9Im1vbml0b3JpbmctcGctc3RhdC1nbG9iYWwt bWVtb3J5LWFsbG9jYXRpb24tdmlldyI+CisgIDx0aXRsZT48c3RydWN0bmFtZT5wZ19zdGF0X2ds b2JhbF9tZW1vcnlfYWxsb2NhdGlvbjwvc3RydWN0bmFtZT48L3RpdGxlPgorCisgIDxpbmRleHRl cm0+CisgICA8cHJpbWFyeT5wZ19zdGF0X2dsb2JhbC1tZW1vcnlfYWxsb2NhdGlvbjwvcHJpbWFy eT4KKyAgPC9pbmRleHRlcm0+CisKKyAgPHBhcmE+CisgICBUaGUgPHN0cnVjdG5hbWU+cGdfc3Rh dF9nbG9iYWxfbWVtb3J5X2FsbG9jYXRpb248L3N0cnVjdG5hbWU+IHZpZXcgd2lsbAorICAgaGF2 ZSBvbmUgcm93IHNob3dpbmcgaW5mb3JtYXRpb24gcmVsYXRlZCB0byBjdXJyZW50IHNoYXJlZCBt ZW1vcnkKKyAgIGFsbG9jYXRpb25zLiBEdWUgdG8gdGhlIGR5bmFtaWMgbmF0dXJlIG9mIG1lbW9y eSBhbGxvY2F0aW9ucyB0aGUgYWxsb2NhdGVkCisgICBieXRlcyB2YWx1ZXMgbWF5IG5vdCBiZSBl eGFjdCBidXQgc2hvdWxkIGJlIHN1ZmZpY2llbnQgZm9yIHRoZSBpbnRlbmRlZAorICAgcHVycG9z ZXMuIFVzZSA8ZnVuY3Rpb24+cGdfc2l6ZV9wcmV0dHk8L2Z1bmN0aW9uPiBkZXNjcmliZWQgaW4K KyAgIDx4cmVmIGxpbmtlbmQ9ImZ1bmN0aW9ucy1hZG1pbi1kYnNpemUiLz4gdG8gbWFrZSB0aGUg Ynl0ZSBwb3B1bGF0ZWQgdmFsdWVzCisgICBtb3JlIGVhc2lseSByZWFkYWJsZS4KKyAgPC9wYXJh PgorCisgIDx0YWJsZSBpZD0icGctc3RhdC1nbG9iYWwtbWVtb3J5LWFsbG9jYXRpb24tdmlldyIg eHJlZmxhYmVsPSJwZ19zdGF0X2dsb2JhbF9tZW1vcnlfYWxsb2NhdGlvbiI+CisgICA8dGl0bGU+ PHN0cnVjdG5hbWU+cGdfc3RhdF9nbG9iYWxfbWVtb3J5X2FsbG9jYXRpb248L3N0cnVjdG5hbWU+ IFZpZXc8L3RpdGxlPgorICAgPHRncm91cCBjb2xzPSIxIj4KKyAgICA8dGhlYWQ+CisgICAgIDxy b3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0i Y29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIENvbHVtbiBUeXBlCisgICAgICA8L3BhcmE+Cisg ICAgICA8cGFyYT4KKyAgICAgICBEZXNjcmlwdGlvbgorICAgICAgPC9wYXJhPjwvZW50cnk+Cisg ICAgIDwvcm93PgorICAgIDwvdGhlYWQ+CisKKyAgICA8dGJvZHk+CisgICAgIDxyb3c+CisgICAg ICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2Rl ZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5kYXRpZDwvc3RydWN0ZmllbGQ+IDx0eXBl Pm9pZDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIE9JRCBvZiB0 aGUgZGF0YWJhc2UgdGhpcyBiYWNrZW5kIGlzIGNvbm5lY3RlZCB0bworICAgICAgPC9wYXJhPjwv ZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0 YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAg IDxzdHJ1Y3RmaWVsZD5zaGFyZWRfbWVtb3J5X3NpemVfbWI8L3N0cnVjdGZpZWxkPiA8dHlwZT5p bnRlZ2VyPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgUmVwb3J0 cyB0aGUgc2l6ZSBvZiB0aGUgbWFpbiBzaGFyZWQgbWVtb3J5IGFyZWEsIHJvdW5kZWQgdXAgdG8g dGhlCisgICAgICAgbmVhcmVzdCBtZWdhYnl0ZS4gU2VlIDx4cmVmIGxpbmtlbmQ9Imd1Yy1zaGFy ZWQtbWVtb3J5LXNpemUiLz4uCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisK KyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFy YSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnNoYXJlZF9t ZW1vcnlfc2l6ZV9pbl9odWdlX3BhZ2VzPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+YmlnaW50PC90eXBl PgorICAgICAgPC9wYXJhPgorICAgICA8cGFyYT4KKyAgICAgIFJlcG9ydHMgdGhlIG51bWJlciBv ZiBodWdlIHBhZ2VzIHRoYXQgYXJlIG5lZWRlZCBmb3IgdGhlIG1haW4gc2hhcmVkCisgICAgICBt ZW1vcnkgYXJlYSBiYXNlZCBvbiB0aGUgc3BlY2lmaWVkIGh1Z2VfcGFnZV9zaXplLiBJZiBodWdl IHBhZ2VzIGFyZSBub3QKKyAgICAgIHN1cHBvcnRlZCwgdGhpcyB3aWxsIGJlIC0xLiBTZWUKKyAg ICAgIDx4cmVmIGxpbmtlbmQ9Imd1Yy1zaGFyZWQtbWVtb3J5LXNpemUtaW4taHVnZS1wYWdlcyIv Pi4KKyAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAg ICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2Rl ZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5nbG9iYWxfZHNtX2FsbG9jYXRlZF9ieXRl czwvc3RydWN0ZmllbGQ+IDx0eXBlPmJpZ2ludDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAg IDxwYXJhPgorICAgICAgIExvbmcgbGl2ZWQgZHluYW1pY2FsbHkgYWxsb2NhdGVkIG1lbW9yeSBj dXJyZW50bHkgYWxsb2NhdGVkIHRvIHRoZQorICAgICAgIGRhdGFiYXNlLiBVcG9uIHByb2Nlc3Mg ZXhpdCwgZHNtIGFsbG9jYXRpb25zIHRoYXQgaGF2ZSBub3QgYmVlbiBmcmVlZAorICAgICAgIGFy ZSBjb25zaWRlcmVkIGxvbmcgbGl2ZWQgYW5kIGFkZGVkIHRvCisgICAgICAgPHN0cnVjdGZpZWxk Pmdsb2JhbF9kc21fYWxsb2NhdGVkX2J5dGVzPC9zdHJ1Y3RmaWVsZD4uCisgICAgICA8L3BhcmE+ PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJj YXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAg ICAgPHN0cnVjdGZpZWxkPnRvdGFsX2FzZXRfYWxsb2NhdGVkX2J5dGVzPC9zdHJ1Y3RmaWVsZD4g PHR5cGU+YmlnaW50PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAg U3VtIHRvdGFsIG9mIDxzdHJ1Y3RmaWVsZD5hc2V0X2FsbG9jYXRlZF9ieXRlczwvc3RydWN0Zmll bGQ+IGZvciBhbGwKKyAgICAgICBiYWNrZW5kIHByb2Nlc3NlcyBmcm9tCisgICAgICAgPGxpbmsg bGlua2VuZD0ibW9uaXRvcmluZy1wZy1zdGF0LW1lbW9yeS1hbGxvY2F0aW9uLXZpZXciPgorICAg ICAgIDxzdHJ1Y3RuYW1lPnBnX3N0YXRfbWVtb3J5X2FsbG9jYXRpb248L3N0cnVjdG5hbWU+PC9s aW5rPiB2aWV3LgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxy b3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0i Y29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD50b3RhbF9kc21fYWxsb2Nh dGVkX2J5dGVzPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+YmlnaW50PC90eXBlPgorICAgICAgPC9wYXJh PgorICAgICAgPHBhcmE+CisgICAgICAgU3VtIHRvdGFsIG9mIDxzdHJ1Y3RmaWVsZD5kc21fYWxs b2NhdGVkX2J5dGVzPC9zdHJ1Y3RmaWVsZD4gZm9yIGFsbAorICAgICAgIGJhY2tlbmQgcHJvY2Vz c2VzIGZyb20KKyAgICAgICA8bGluayBsaW5rZW5kPSJtb25pdG9yaW5nLXBnLXN0YXQtbWVtb3J5 LWFsbG9jYXRpb24tdmlldyI+CisgICAgICAgPHN0cnVjdG5hbWU+cGdfc3RhdF9tZW1vcnlfYWxs b2NhdGlvbjwvc3RydWN0bmFtZT48L2xpbms+IHZpZXcuCisgICAgICA8L3BhcmE+PC9lbnRyeT4K KyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3Rh YmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVj dGZpZWxkPnRvdGFsX2dlbmVyYXRpb25fYWxsb2NhdGVkX2J5dGVzPC9zdHJ1Y3RmaWVsZD4gPHR5 cGU+YmlnaW50PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgU3Vt IHRvdGFsIG9mIDxzdHJ1Y3RmaWVsZD5nZW5lcmF0aW9uX2FsbG9jYXRlZF9ieXRlczwvc3RydWN0 ZmllbGQ+IGZvcgorICAgICAgIGFsbCBiYWNrZW5kIHByb2Nlc3NlcyBmcm9tCisgICAgICAgPGxp bmsgbGlua2VuZD0ibW9uaXRvcmluZy1wZy1zdGF0LW1lbW9yeS1hbGxvY2F0aW9uLXZpZXciPgor ICAgICAgIDxzdHJ1Y3RuYW1lPnBnX3N0YXRfbWVtb3J5X2FsbG9jYXRpb248L3N0cnVjdG5hbWU+ PC9saW5rPiB2aWV3LgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAg IDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9s ZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD50b3RhbF9zbGFiX2Fs bG9jYXRlZF9ieXRlczwvc3RydWN0ZmllbGQ+IDx0eXBlPmJpZ2ludDwvdHlwZT4KKyAgICAgIDwv cGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFN1bSB0b3RhbCBvZiA8c3RydWN0ZmllbGQ+c2xh Yl9hbGxvY2F0ZWRfYnl0ZXM8L3N0cnVjdGZpZWxkPiBmb3IgYWxsCisgICAgICAgYmFja2VuZCBw cm9jZXNzZXMgZnJvbQorICAgICAgIDxsaW5rIGxpbmtlbmQ9Im1vbml0b3JpbmctcGctc3RhdC1t ZW1vcnktYWxsb2NhdGlvbi12aWV3Ij4KKyAgICAgICA8c3RydWN0bmFtZT5wZ19zdGF0X21lbW9y eV9hbGxvY2F0aW9uPC9zdHJ1Y3RuYW1lPjwvbGluaz4gdmlldy4KKyAgICAgIDwvcGFyYT48L2Vu dHJ5PgorICAgICA8L3Jvdz4KKworICAgIDwvdGJvZHk+CisgICA8L3Rncm91cD4KKyAgPC90YWJs ZT4KKworIDwvc2VjdDI+CisKICA8c2VjdDIgaWQ9Im1vbml0b3Jpbmctc3RhdHMtZnVuY3Rpb25z Ij4KICAgPHRpdGxlPlN0YXRpc3RpY3MgRnVuY3Rpb25zPC90aXRsZT4KIApkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsIGIvc3JjL2JhY2tlbmQvY2F0YWxv Zy9zeXN0ZW1fdmlld3Muc3FsCmluZGV4IGMxOGZlYTgzNjIuLmNjODIxOWM2NjUgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbAorKysgYi9zcmMvYmFja2Vu ZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKQEAgLTEzNDEsMyArMTM0MSwzNyBAQCBDUkVBVEUg VklFVyBwZ19zdGF0X3N1YnNjcmlwdGlvbl9zdGF0cyBBUwogICAgICAgICBzcy5zdGF0c19yZXNl dAogICAgIEZST00gcGdfc3Vic2NyaXB0aW9uIGFzIHMsCiAgICAgICAgICBwZ19zdGF0X2dldF9z dWJzY3JpcHRpb25fc3RhdHMocy5vaWQpIGFzIHNzOworCitDUkVBVEUgVklFVyBwZ19zdGF0X21l bW9yeV9hbGxvY2F0aW9uIEFTCisgICAgU0VMRUNUCisgICAgICAgIFMuZGF0aWQgQVMgZGF0aWQs CisgICAgICAgIFMucGlkLAorICAgICAgICBTLmFsbG9jYXRlZF9ieXRlcywKKyAgICAgICAgUy5h c2V0X2FsbG9jYXRlZF9ieXRlcywKKyAgICAgICAgUy5kc21fYWxsb2NhdGVkX2J5dGVzLAorICAg ICAgICBTLmdlbmVyYXRpb25fYWxsb2NhdGVkX2J5dGVzLAorICAgICAgICBTLnNsYWJfYWxsb2Nh dGVkX2J5dGVzCisgICAgRlJPTSBwZ19zdGF0X2dldF9tZW1vcnlfYWxsb2NhdGlvbihOVUxMKSBB UyBTCisgICAgICAgIExFRlQgSk9JTiBwZ19kYXRhYmFzZSBBUyBEIE9OIChTLmRhdGlkID0gRC5v aWQpOworCitDUkVBVEUgVklFVyBwZ19zdGF0X2dsb2JhbF9tZW1vcnlfYWxsb2NhdGlvbiBBUwor V0lUSCBzdW1zIEFTICgKKyAgICBTRUxFQ1QKKyAgICAgICAgU1VNKGFzZXRfYWxsb2NhdGVkX2J5 dGVzKSBBUyB0b3RhbF9hc2V0X2FsbG9jYXRlZF9ieXRlcywKKyAgICAgICAgU1VNKGRzbV9hbGxv Y2F0ZWRfYnl0ZXMpIEFTIHRvdGFsX2RzbV9hbGxvY2F0ZWRfYnl0ZXMsCisgICAgICAgIFNVTShn ZW5lcmF0aW9uX2FsbG9jYXRlZF9ieXRlcykgQVMgdG90YWxfZ2VuZXJhdGlvbl9hbGxvY2F0ZWRf Ynl0ZXMsCisgICAgICAgIFNVTShzbGFiX2FsbG9jYXRlZF9ieXRlcykgQVMgdG90YWxfc2xhYl9h bGxvY2F0ZWRfYnl0ZXMKKyAgICBGUk9NCisgICAgICAgIHBnX3N0YXRfbWVtb3J5X2FsbG9jYXRp b24KKykKK1NFTEVDVAorICAgICAgICBTLmRhdGlkIEFTIGRhdGlkLAorICAgICAgICBjdXJyZW50 X3NldHRpbmcoJ3NoYXJlZF9tZW1vcnlfc2l6ZScsIHRydWUpIGFzIHNoYXJlZF9tZW1vcnlfc2l6 ZSwKKyAgICAgICAgKGN1cnJlbnRfc2V0dGluZygnc2hhcmVkX21lbW9yeV9zaXplX2luX2h1Z2Vf cGFnZXMnLCB0cnVlKSk6OmludGVnZXIgYXMgc2hhcmVkX21lbW9yeV9zaXplX2luX2h1Z2VfcGFn ZXMsCisgICAgICAgIFMuZ2xvYmFsX2RzbV9hbGxvY2F0ZWRfYnl0ZXMsCisgICAgICAgIHN1bXMu dG90YWxfYXNldF9hbGxvY2F0ZWRfYnl0ZXMsCisgICAgICAgIHN1bXMudG90YWxfZHNtX2FsbG9j YXRlZF9ieXRlcywKKyAgICAgICAgc3Vtcy50b3RhbF9nZW5lcmF0aW9uX2FsbG9jYXRlZF9ieXRl cywKKyAgICAgICAgc3Vtcy50b3RhbF9zbGFiX2FsbG9jYXRlZF9ieXRlcworICAgIEZST00gc3Vt cywgcGdfc3RhdF9nZXRfZ2xvYmFsX21lbW9yeV9hbGxvY2F0aW9uKCkgQVMgUworICAgICAgICBM RUZUIEpPSU4gcGdfZGF0YWJhc2UgQVMgRCBPTiAoUy5kYXRpZCA9IEQub2lkKTsKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL2RzbS5jIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9p cGMvZHNtLmMKaW5kZXggMTBiMDI5YmIxNi4uNjRiMWZlY2QxYyAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvc3RvcmFnZS9pcGMvZHNtLmMKKysrIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvZHNt LmMKQEAgLTc3NSw2ICs3NzUsMTUgQEAgZHNtX2RldGFjaF9hbGwodm9pZCkKIHZvaWQKIGRzbV9k ZXRhY2goZHNtX3NlZ21lbnQgKnNlZykKIHsKKwkvKgorCSAqIFJldGFpbiBtYXBwZWRfc2l6ZSB0 byBwYXNzIGludG8gZGVzdHJveSBjYWxsIGluIGNhc2VzIHdoZXJlIHRoZSBkZXRhY2gKKwkgKiBp cyB0aGUgbGFzdCByZWZlcmVuY2UuIG1hcHBlZF9zaXplIGlzIHplcm9lZCBhcyBwYXJ0IG9mIHRo ZSBkZXRhY2gKKwkgKiBwcm9jZXNzLCBidXQgaXMgbmVlZGVkIGxhdGVyIGluIHRoZXNlIGNhc2Vz IGZvciBkc21fYWxsb2NhdGVkX2J5dGVzCisJICogYWNjb3VudGluZy4KKwkgKi8KKwlTaXplCQls b2NhbF9zZWdfbWFwcGVkX3NpemUgPSBzZWctPm1hcHBlZF9zaXplOworCVNpemUJICAgKnB0cl9s b2NhbF9zZWdfbWFwcGVkX3NpemUgPSAmbG9jYWxfc2VnX21hcHBlZF9zaXplOworCiAJLyoKIAkg KiBJbnZva2UgcmVnaXN0ZXJlZCBjYWxsYmFja3MuICBKdXN0IGluIGNhc2Ugb25lIG9mIHRob3Nl IGNhbGxiYWNrcwogCSAqIHRocm93cyBhIGZ1cnRoZXIgZXJyb3IgdGhhdCBicmluZ3MgdXMgYmFj ayBoZXJlLCBwb3AgdGhlIGNhbGxiYWNrCkBAIC04NTUsNyArODY0LDcgQEAgZHNtX2RldGFjaChk c21fc2VnbWVudCAqc2VnKQogCQkJICovCiAJCQlpZiAoaXNfbWFpbl9yZWdpb25fZHNtX2hhbmRs ZShzZWctPmhhbmRsZSkgfHwKIAkJCQlkc21faW1wbF9vcChEU01fT1BfREVTVFJPWSwgc2VnLT5o YW5kbGUsIDAsICZzZWctPmltcGxfcHJpdmF0ZSwKLQkJCQkJCQkmc2VnLT5tYXBwZWRfYWRkcmVz cywgJnNlZy0+bWFwcGVkX3NpemUsIFdBUk5JTkcpKQorCQkJCQkJCSZzZWctPm1hcHBlZF9hZGRy ZXNzLCBwdHJfbG9jYWxfc2VnX21hcHBlZF9zaXplLCBXQVJOSU5HKSkKIAkJCXsKIAkJCQlMV0xv Y2tBY3F1aXJlKER5bmFtaWNTaGFyZWRNZW1vcnlDb250cm9sTG9jaywgTFdfRVhDTFVTSVZFKTsK IAkJCQlpZiAoaXNfbWFpbl9yZWdpb25fZHNtX2hhbmRsZShzZWctPmhhbmRsZSkpCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9kc21faW1wbC5jIGIvc3JjL2JhY2tlbmQvc3Rv cmFnZS9pcGMvZHNtX2ltcGwuYwppbmRleCA2Mzk5ZmEyYWQ1Li5mNDNiYWQ0NDM5IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9kc21faW1wbC5jCisrKyBiL3NyYy9iYWNrZW5k L3N0b3JhZ2UvaXBjL2RzbV9pbXBsLmMKQEAgLTY2LDYgKzY2LDcgQEAKICNpbmNsdWRlICJwb3N0 bWFzdGVyL3Bvc3RtYXN0ZXIuaCIKICNpbmNsdWRlICJzdG9yYWdlL2RzbV9pbXBsLmgiCiAjaW5j bHVkZSAic3RvcmFnZS9mZC5oIgorI2luY2x1ZGUgInV0aWxzL2JhY2tlbmRfc3RhdHVzLmgiCiAj aW5jbHVkZSAidXRpbHMvZ3VjLmgiCiAjaW5jbHVkZSAidXRpbHMvbWVtdXRpbHMuaCIKIApAQCAt MjMyLDYgKzIzMywxNCBAQCBkc21faW1wbF9wb3NpeChkc21fb3Agb3AsIGRzbV9oYW5kbGUgaGFu ZGxlLCBTaXplIHJlcXVlc3Rfc2l6ZSwKIAkJCQkJCQluYW1lKSkpOwogCQkJcmV0dXJuIGZhbHNl OwogCQl9CisKKwkJLyoKKwkJICogRGV0YWNoIGFuZCBkZXN0cm95IHBhc3MgdGhyb3VnaCBoZXJl LCBvbmx5IGRlY3JlYXNlIHRoZSBtZW1vcnkKKwkJICogc2hvd24gYWxsb2NhdGVkIGluIHBnX3N0 YXRfYWN0aXZpdHkgd2hlbiB0aGUgY3JlYXRvciBkZXN0cm95cyB0aGUKKwkJICogYWxsb2NhdGlv bi4KKwkJICovCisJCWlmIChvcCA9PSBEU01fT1BfREVTVFJPWSkKKwkJCXBnc3RhdF9yZXBvcnRf YWxsb2NhdGVkX2J5dGVzX2RlY3JlYXNlKCptYXBwZWRfc2l6ZSwgUEdfQUxMT0NfRFNNKTsKIAkJ Km1hcHBlZF9hZGRyZXNzID0gTlVMTDsKIAkJKm1hcHBlZF9zaXplID0gMDsKIAkJaWYgKG9wID09 IERTTV9PUF9ERVNUUk9ZICYmIHNobV91bmxpbmsobmFtZSkgIT0gMCkKQEAgLTMzMiw2ICszNDEs MzMgQEAgZHNtX2ltcGxfcG9zaXgoZHNtX29wIG9wLCBkc21faGFuZGxlIGhhbmRsZSwgU2l6ZSBy ZXF1ZXN0X3NpemUsCiAJCQkJCQluYW1lKSkpOwogCQlyZXR1cm4gZmFsc2U7CiAJfQorCisJLyoK KwkgKiBBdHRhY2ggYW5kIGNyZWF0ZSBwYXNzIHRocm91Z2ggaGVyZSwgb25seSB1cGRhdGUgYmFj a2VuZCBtZW1vcnkKKwkgKiBhbGxvY2F0ZWQgaW4gcGdfc3RhdF9hY3Rpdml0eSBmb3IgdGhlIGNy ZWF0b3IgcHJvY2Vzcy4KKwkgKi8KKwlpZiAob3AgPT0gRFNNX09QX0NSRUFURSkKKwl7CisJCS8q CisJCSAqIFBvc2l4IGNyZWF0aW9uIGNhbGxzIGRzbV9pbXBsX3Bvc2l4X3Jlc2l6ZSBpbXBseWlu ZyB0aGF0IHJlc2l6aW5nCisJCSAqIG9jY3VycyBvciBtYXkgYmUgYWRkZWQgaW4gdGhlIGZ1dHVy ZS4gQXMgaW1wbGVtZW50ZWQKKwkJICogZHNtX2ltcGxfcG9zaXhfcmVzaXplIHV0aWxpemVzIGZh bGxvY2F0ZSBvciB0cnVuY2F0ZSwgcGFzc2luZyB0aGUKKwkJICogd2hvbGUgbmV3IHNpemUgYXMg aW5wdXQsIGdyb3dpbmcgdGhlIGFsbG9jYXRpb24gYXMgbmVlZGVkIChvbmx5CisJCSAqIHRydW5j YXRlIHN1cHBvcnRzIHNocmlua2luZykuIFdlIHVwZGF0ZSBieSByZXBsYWNpbmcgdGhlIG9sZAor CQkgKiBhbGxvY2F0aW9uIHdpdGggdGhlIG5ldy4KKwkJICovCisjaWYgZGVmaW5lZChIQVZFX1BP U0lYX0ZBTExPQ0FURSkgJiYgZGVmaW5lZChfX2xpbnV4X18pCisJCS8qCisJCSAqIHBvc2l4X2Zh bGxvY2F0ZSBkb2VzIG5vdCBzaHJpbmsgYWxsb2NhdGlvbnMsIGFkanVzdCBvbmx5IG9uCisJCSAq IGFsbG9jYXRpb24gaW5jcmVhc2UuCisJCSAqLworCQlpZiAocmVxdWVzdF9zaXplID4gKm1hcHBl ZF9zaXplKQorCQkJcGdzdGF0X3JlcG9ydF9hbGxvY2F0ZWRfYnl0ZXNfaW5jcmVhc2UocmVxdWVz dF9zaXplIC0gKm1hcHBlZF9zaXplLCBQR19BTExPQ19EU00pOworI2Vsc2UKKwkJcGdzdGF0X3Jl cG9ydF9hbGxvY2F0ZWRfYnl0ZXNfZGVjcmVhc2UoKm1hcHBlZF9zaXplLCBQR19BTExPQ19EU00p OworCQlwZ3N0YXRfcmVwb3J0X2FsbG9jYXRlZF9ieXRlc19pbmNyZWFzZShyZXF1ZXN0X3NpemUs IFBHX0FMTE9DX0RTTSk7CisjZW5kaWYKKwl9CiAJKm1hcHBlZF9hZGRyZXNzID0gYWRkcmVzczsK IAkqbWFwcGVkX3NpemUgPSByZXF1ZXN0X3NpemU7CiAJY2xvc2UoZmQpOwpAQCAtNTM4LDYgKzU3 NCwxNCBAQCBkc21faW1wbF9zeXN2KGRzbV9vcCBvcCwgZHNtX2hhbmRsZSBoYW5kbGUsIFNpemUg cmVxdWVzdF9zaXplLAogCQkJCQkJCW5hbWUpKSk7CiAJCQlyZXR1cm4gZmFsc2U7CiAJCX0KKwor CQkvKgorCQkgKiBEZXRhY2ggYW5kIGRlc3Ryb3kgcGFzcyB0aHJvdWdoIGhlcmUsIG9ubHkgZGVj cmVhc2UgdGhlIG1lbW9yeQorCQkgKiBzaG93biBhbGxvY2F0ZWQgaW4gcGdfc3RhdF9hY3Rpdml0 eSB3aGVuIHRoZSBjcmVhdG9yIGRlc3Ryb3lzIHRoZQorCQkgKiBhbGxvY2F0aW9uLgorCQkgKi8K KwkJaWYgKG9wID09IERTTV9PUF9ERVNUUk9ZKQorCQkJcGdzdGF0X3JlcG9ydF9hbGxvY2F0ZWRf Ynl0ZXNfZGVjcmVhc2UoKm1hcHBlZF9zaXplLCBQR19BTExPQ19EU00pOwogCQkqbWFwcGVkX2Fk ZHJlc3MgPSBOVUxMOwogCQkqbWFwcGVkX3NpemUgPSAwOwogCQlpZiAob3AgPT0gRFNNX09QX0RF U1RST1kgJiYgc2htY3RsKGlkZW50LCBJUENfUk1JRCwgTlVMTCkgPCAwKQpAQCAtNTg1LDYgKzYy OSwxMyBAQCBkc21faW1wbF9zeXN2KGRzbV9vcCBvcCwgZHNtX2hhbmRsZSBoYW5kbGUsIFNpemUg cmVxdWVzdF9zaXplLAogCQkJCQkJbmFtZSkpKTsKIAkJcmV0dXJuIGZhbHNlOwogCX0KKworCS8q CisJICogQXR0YWNoIGFuZCBjcmVhdGUgcGFzcyB0aHJvdWdoIGhlcmUsIG9ubHkgdXBkYXRlIGJh Y2tlbmQgbWVtb3J5CisJICogYWxsb2NhdGVkIGluIHBnX3N0YXRfYWN0aXZpdHkgZm9yIHRoZSBj cmVhdG9yIHByb2Nlc3MuCisJICovCisJaWYgKG9wID09IERTTV9PUF9DUkVBVEUpCisJCXBnc3Rh dF9yZXBvcnRfYWxsb2NhdGVkX2J5dGVzX2luY3JlYXNlKHJlcXVlc3Rfc2l6ZSwgUEdfQUxMT0Nf RFNNKTsKIAkqbWFwcGVkX2FkZHJlc3MgPSBhZGRyZXNzOwogCSptYXBwZWRfc2l6ZSA9IHJlcXVl c3Rfc2l6ZTsKIApAQCAtNjUzLDYgKzcwNCwxMyBAQCBkc21faW1wbF93aW5kb3dzKGRzbV9vcCBv cCwgZHNtX2hhbmRsZSBoYW5kbGUsIFNpemUgcmVxdWVzdF9zaXplLAogCQkJcmV0dXJuIGZhbHNl OwogCQl9CiAKKwkJLyoKKwkJICogRGV0YWNoIGFuZCBkZXN0cm95IHBhc3MgdGhyb3VnaCBoZXJl LCBvbmx5IGRlY3JlYXNlIHRoZSBtZW1vcnkKKwkJICogc2hvd24gYWxsb2NhdGVkIGluIHBnX3N0 YXRfYWN0aXZpdHkgd2hlbiB0aGUgY3JlYXRvciBkZXN0cm95cyB0aGUKKwkJICogYWxsb2NhdGlv bi4KKwkJICovCisJCWlmIChvcCA9PSBEU01fT1BfREVTVFJPWSkKKwkJCXBnc3RhdF9yZXBvcnRf YWxsb2NhdGVkX2J5dGVzX2RlY3JlYXNlKCptYXBwZWRfc2l6ZSwgUEdfQUxMT0NfRFNNKTsKIAkJ KmltcGxfcHJpdmF0ZSA9IE5VTEw7CiAJCSptYXBwZWRfYWRkcmVzcyA9IE5VTEw7CiAJCSptYXBw ZWRfc2l6ZSA9IDA7CkBAIC03NjksNiArODI3LDEyIEBAIGRzbV9pbXBsX3dpbmRvd3MoZHNtX29w IG9wLCBkc21faGFuZGxlIGhhbmRsZSwgU2l6ZSByZXF1ZXN0X3NpemUsCiAJCXJldHVybiBmYWxz ZTsKIAl9CiAKKwkvKgorCSAqIEF0dGFjaCBhbmQgY3JlYXRlIHBhc3MgdGhyb3VnaCBoZXJlLCBv bmx5IHVwZGF0ZSBiYWNrZW5kIG1lbW9yeQorCSAqIGFsbG9jYXRlZCBpbiBwZ19zdGF0X2FjdGl2 aXR5IGZvciB0aGUgY3JlYXRvciBwcm9jZXNzLgorCSAqLworCWlmIChvcCA9PSBEU01fT1BfQ1JF QVRFKQorCQlwZ3N0YXRfcmVwb3J0X2FsbG9jYXRlZF9ieXRlc19pbmNyZWFzZShpbmZvLlJlZ2lv blNpemUsIFBHX0FMTE9DX0RTTSk7CiAJKm1hcHBlZF9hZGRyZXNzID0gYWRkcmVzczsKIAkqbWFw cGVkX3NpemUgPSBpbmZvLlJlZ2lvblNpemU7CiAJKmltcGxfcHJpdmF0ZSA9IGhtYXA7CkBAIC04 MTMsNiArODc3LDEzIEBAIGRzbV9pbXBsX21tYXAoZHNtX29wIG9wLCBkc21faGFuZGxlIGhhbmRs ZSwgU2l6ZSByZXF1ZXN0X3NpemUsCiAJCQkJCQkJbmFtZSkpKTsKIAkJCXJldHVybiBmYWxzZTsK IAkJfQorCisJCS8qCisJCSAqIERldGFjaCBhbmQgZGVzdHJveSBwYXNzIHRocm91Z2ggaGVyZSwg b25seSBkZWNyZWFzZSB0aGUgbWVtb3J5CisJCSAqIHNob3duIGFsbG9jYXRlZCBpbiBwZ19zdGF0 X2FjdGl2aXR5IHdoZW4gdGhlIGNyZWF0b3IgZGVzdHJveXMgdGhlCisJCSAqIGFsbG9jYXRpb24u CisJCSAqLworCQlwZ3N0YXRfcmVwb3J0X2FsbG9jYXRlZF9ieXRlc19kZWNyZWFzZSgqbWFwcGVk X3NpemUsIFBHX0FMTE9DX0RTTSk7CiAJCSptYXBwZWRfYWRkcmVzcyA9IE5VTEw7CiAJCSptYXBw ZWRfc2l6ZSA9IDA7CiAJCWlmIChvcCA9PSBEU01fT1BfREVTVFJPWSAmJiB1bmxpbmsobmFtZSkg IT0gMCkKQEAgLTkzNCw2ICsxMDA1LDEzIEBAIGRzbV9pbXBsX21tYXAoZHNtX29wIG9wLCBkc21f aGFuZGxlIGhhbmRsZSwgU2l6ZSByZXF1ZXN0X3NpemUsCiAJCQkJCQluYW1lKSkpOwogCQlyZXR1 cm4gZmFsc2U7CiAJfQorCisJLyoKKwkgKiBBdHRhY2ggYW5kIGNyZWF0ZSBwYXNzIHRocm91Z2gg aGVyZSwgb25seSB1cGRhdGUgYmFja2VuZCBtZW1vcnkKKwkgKiBhbGxvY2F0ZWQgaW4gcGdfc3Rh dF9hY3Rpdml0eSBmb3IgdGhlIGNyZWF0b3IgcHJvY2Vzcy4KKwkgKi8KKwlpZiAob3AgPT0gRFNN X09QX0NSRUFURSkKKwkJcGdzdGF0X3JlcG9ydF9hbGxvY2F0ZWRfYnl0ZXNfaW5jcmVhc2UocmVx dWVzdF9zaXplLCBQR19BTExPQ19EU00pOwogCSptYXBwZWRfYWRkcmVzcyA9IGFkZHJlc3M7CiAJ Km1hcHBlZF9zaXplID0gcmVxdWVzdF9zaXplOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9z dG9yYWdlL2xtZ3IvcHJvYy5jIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9sbWdyL3Byb2MuYwppbmRl eCBkYWM5MjEyMTlmLi5kNzk4YzA1MTgwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9zdG9yYWdl L2xtZ3IvcHJvYy5jCisrKyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9wcm9jLmMKQEAgLTE4 MCw2ICsxODAsNyBAQCBJbml0UHJvY0dsb2JhbCh2b2lkKQogCVByb2NHbG9iYWwtPmNoZWNrcG9p bnRlckxhdGNoID0gTlVMTDsKIAlwZ19hdG9taWNfaW5pdF91MzIoJlByb2NHbG9iYWwtPnByb2NB cnJheUdyb3VwRmlyc3QsIElOVkFMSURfUEdQUk9DTk8pOwogCXBnX2F0b21pY19pbml0X3UzMigm UHJvY0dsb2JhbC0+Y2xvZ0dyb3VwRmlyc3QsIElOVkFMSURfUEdQUk9DTk8pOworCXBnX2F0b21p Y19pbml0X3U2NCgmUHJvY0dsb2JhbC0+Z2xvYmFsX2RzbV9hbGxvY2F0aW9uLCAwKTsKIAogCS8q CiAJICogQ3JlYXRlIGFuZCBpbml0aWFsaXplIGFsbCB0aGUgUEdQUk9DIHN0cnVjdHVyZXMgd2Un bGwgbmVlZC4gIFRoZXJlIGFyZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZp dHkvYmFja2VuZF9zdGF0dXMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L2JhY2tlbmRf c3RhdHVzLmMKaW5kZXggMzhmOTFhNDk1Yi4uNTBiMzZiYTVmNyAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvdXRpbHMvYWN0aXZpdHkvYmFja2VuZF9zdGF0dXMuYworKysgYi9zcmMvYmFja2VuZC91 dGlscy9hY3Rpdml0eS9iYWNrZW5kX3N0YXR1cy5jCkBAIC00OSw2ICs0OSwyNCBAQCBpbnQJCQlw Z3N0YXRfdHJhY2tfYWN0aXZpdHlfcXVlcnlfc2l6ZSA9IDEwMjQ7CiAvKiBleHBvc2VkIHNvIHRo YXQgYmFja2VuZF9wcm9ncmVzcy5jIGNhbiBhY2Nlc3MgaXQgKi8KIFBnQmFja2VuZFN0YXR1cyAq TXlCRUVudHJ5ID0gTlVMTDsKIAorLyoKKyAqIE1lbW9yeSBhbGxvY2F0ZWQgdG8gdGhpcyBiYWNr ZW5kIHByaW9yIHRvIHBnc3RhdHMgaW5pdGlhbGl6YXRpb24uIE1pZ3JhdGVkIHRvCisgKiBzaGFy ZWQgbWVtb3J5IG9uIHBnc3RhdHMgaW5pdGlhbGl6YXRpb24uCisgKi8KK3VpbnQ2NAkJbG9jYWxf bXlfYWxsb2NhdGVkX2J5dGVzID0gMDsKK3VpbnQ2NAkgICAqbXlfYWxsb2NhdGVkX2J5dGVzID0g JmxvY2FsX215X2FsbG9jYXRlZF9ieXRlczsKKworLyogTWVtb3J5IGFsbG9jYXRlZCB0byB0aGlz IGJhY2tlbmQgYnkgdHlwZSBwcmlvciB0byBwZ3N0YXRzIGluaXRpYWxpemF0aW9uLgorICogTWln cmF0ZWQgdG8gc2hhcmVkIG1lbW9yeSBvbiBwZ3N0YXRzIGluaXRpYWxpemF0aW9uCisgKi8KK3Vp bnQ2NAkJbG9jYWxfbXlfYXNldF9hbGxvY2F0ZWRfYnl0ZXMgPSAwOwordWludDY0CSAgICpteV9h c2V0X2FsbG9jYXRlZF9ieXRlcyA9ICZsb2NhbF9teV9hc2V0X2FsbG9jYXRlZF9ieXRlczsKK3Vp bnQ2NAkJbG9jYWxfbXlfZHNtX2FsbG9jYXRlZF9ieXRlcyA9IDA7Cit1aW50NjQJICAgKm15X2Rz bV9hbGxvY2F0ZWRfYnl0ZXMgPSAmbG9jYWxfbXlfZHNtX2FsbG9jYXRlZF9ieXRlczsKK3VpbnQ2 NAkJbG9jYWxfbXlfZ2VuZXJhdGlvbl9hbGxvY2F0ZWRfYnl0ZXMgPSAwOwordWludDY0CSAgICpt eV9nZW5lcmF0aW9uX2FsbG9jYXRlZF9ieXRlcyA9ICZsb2NhbF9teV9nZW5lcmF0aW9uX2FsbG9j YXRlZF9ieXRlczsKK3VpbnQ2NAkJbG9jYWxfbXlfc2xhYl9hbGxvY2F0ZWRfYnl0ZXMgPSAwOwor dWludDY0CSAgICpteV9zbGFiX2FsbG9jYXRlZF9ieXRlcyA9ICZsb2NhbF9teV9zbGFiX2FsbG9j YXRlZF9ieXRlczsKIAogc3RhdGljIFBnQmFja2VuZFN0YXR1cyAqQmFja2VuZFN0YXR1c0FycmF5 ID0gTlVMTDsKIHN0YXRpYyBjaGFyICpCYWNrZW5kQXBwbmFtZUJ1ZmZlciA9IE5VTEw7CkBAIC00 MDEsNiArNDE5LDMyIEBAIHBnc3RhdF9iZXN0YXJ0KHZvaWQpCiAJbGJlZW50cnkuc3RfcHJvZ3Jl c3NfY29tbWFuZF90YXJnZXQgPSBJbnZhbGlkT2lkOwogCWxiZWVudHJ5LnN0X3F1ZXJ5X2lkID0g VUlOVDY0Q09OU1QoMCk7CiAKKwkvKiBBbHRlciBhbGxvY2F0aW9uIHJlcG9ydGluZyBmcm9tIGxv Y2FsIHN0b3JhZ2UgdG8gc2hhcmVkIG1lbW9yeSAqLworCXBnc3RhdF9zZXRfYWxsb2NhdGVkX2J5 dGVzX3N0b3JhZ2UoJk15QkVFbnRyeS0+YWxsb2NhdGVkX2J5dGVzLAorCQkJCQkJCQkJICAgJk15 QkVFbnRyeS0+YXNldF9hbGxvY2F0ZWRfYnl0ZXMsCisJCQkJCQkJCQkgICAmTXlCRUVudHJ5LT5k c21fYWxsb2NhdGVkX2J5dGVzLAorCQkJCQkJCQkJICAgJk15QkVFbnRyeS0+Z2VuZXJhdGlvbl9h bGxvY2F0ZWRfYnl0ZXMsCisJCQkJCQkJCQkgICAmTXlCRUVudHJ5LT5zbGFiX2FsbG9jYXRlZF9i eXRlcyk7CisKKwkvKgorCSAqIFBvcHVsYXRlIHN1bSBvZiBtZW1vcnkgYWxsb2NhdGVkIHByaW9y IHRvIHBnc3RhdHMgaW5pdGlhbGl6YXRpb24gdG8KKwkgKiBwZ3N0YXRzIGFuZCB6ZXJvIHRoZSBs b2NhbCB2YXJpYWJsZS4gVGhpcyBpcyBhICs9IGFzc2lnbm1lbnQgYmVjYXVzZQorCSAqIEluaXRQ b3N0Z3JlcyBhbGxvY2F0ZXMgbWVtb3J5IGFmdGVyIHBnc3RhdF9iZWluaXQgYnV0IHByaW9yIHRv CisJICogcGdzdGF0X2Jlc3RhcnQgc28gd2UgaGF2ZSBhbGxvY2F0aW9ucyB0byBib3RoIGxvY2Fs IGFuZCBzaGFyZWQgbWVtb3J5CisJICogdG8gY29tYmluZS4KKwkgKi8KKwlsYmVlbnRyeS5hbGxv Y2F0ZWRfYnl0ZXMgKz0gbG9jYWxfbXlfYWxsb2NhdGVkX2J5dGVzOworCWxvY2FsX215X2FsbG9j YXRlZF9ieXRlcyA9IDA7CisJbGJlZW50cnkuYXNldF9hbGxvY2F0ZWRfYnl0ZXMgKz0gbG9jYWxf bXlfYXNldF9hbGxvY2F0ZWRfYnl0ZXM7CisJbG9jYWxfbXlfYXNldF9hbGxvY2F0ZWRfYnl0ZXMg PSAwOworCisJbGJlZW50cnkuZHNtX2FsbG9jYXRlZF9ieXRlcyArPSBsb2NhbF9teV9kc21fYWxs b2NhdGVkX2J5dGVzOworCWxvY2FsX215X2RzbV9hbGxvY2F0ZWRfYnl0ZXMgPSAwOworCWxiZWVu dHJ5LmdlbmVyYXRpb25fYWxsb2NhdGVkX2J5dGVzICs9IGxvY2FsX215X2dlbmVyYXRpb25fYWxs b2NhdGVkX2J5dGVzOworCWxvY2FsX215X2dlbmVyYXRpb25fYWxsb2NhdGVkX2J5dGVzID0gMDsK KwlsYmVlbnRyeS5zbGFiX2FsbG9jYXRlZF9ieXRlcyArPSBsb2NhbF9teV9zbGFiX2FsbG9jYXRl ZF9ieXRlczsKKwlsb2NhbF9teV9zbGFiX2FsbG9jYXRlZF9ieXRlcyA9IDA7CisKIAkvKgogCSAq IHdlIGRvbid0IHplcm8gc3RfcHJvZ3Jlc3NfcGFyYW0gaGVyZSB0byBzYXZlIGN5Y2xlczsgbm9i b2R5IHNob3VsZAogCSAqIGV4YW1pbmUgaXQgdW50aWwgc3RfcHJvZ3Jlc3NfY29tbWFuZCBoYXMg YmVlbiBzZXQgdG8gc29tZXRoaW5nIG90aGVyCkBAIC00NjAsNiArNTA0LDkgQEAgcGdzdGF0X2Jl c2h1dGRvd25faG9vayhpbnQgY29kZSwgRGF0dW0gYXJnKQogewogCXZvbGF0aWxlIFBnQmFja2Vu ZFN0YXR1cyAqYmVlbnRyeSA9IE15QkVFbnRyeTsKIAorCS8qIFN0b3AgcmVwb3J0aW5nIG1lbW9y eSBhbGxvY2F0aW9uIGNoYW5nZXMgdG8gc2hhcmVkIG1lbW9yeSAqLworCXBnc3RhdF9yZXNldF9h bGxvY2F0ZWRfYnl0ZXNfc3RvcmFnZSgpOworCiAJLyoKIAkgKiBDbGVhciBteSBzdGF0dXMgZW50 cnksIGZvbGxvd2luZyB0aGUgcHJvdG9jb2wgb2YgYnVtcGluZyBzdF9jaGFuZ2Vjb3VudAogCSAq IGJlZm9yZSBhbmQgYWZ0ZXIuICBXZSB1c2UgYSB2b2xhdGlsZSBwb2ludGVyIGhlcmUgdG8gZW5z dXJlIHRoZQpAQCAtMTE5NSwzICsxMjQyLDcwIEBAIHBnc3RhdF9jbGlwX2FjdGl2aXR5KGNvbnN0 IGNoYXIgKnJhd19hY3Rpdml0eSkKIAogCXJldHVybiBhY3Rpdml0eTsKIH0KKworLyoKKyAqIENv bmZpZ3VyZSBieXRlcyBhbGxvY2F0ZWQgcmVwb3J0aW5nIHRvIHJlcG9ydCBhbGxvY2F0ZWQgYnl0 ZXMgdG8KKyAqIHNoYXJlZCBtZW1vcnkuCisgKgorICogRXhwZWN0ZWQgdG8gYmUgY2FsbGVkIGR1 cmluZyBiYWNrZW5kIHN0YXJ0dXAgKGluIHBnc3RhdF9iZXN0YXJ0KSwgdG8gcG9pbnQKKyAqIGFs bG9jYXRlZCBieXRlcyBhY2NvdW50aW5nIGludG8gc2hhcmVkIG1lbW9yeS4KKyAqLwordm9pZAor cGdzdGF0X3NldF9hbGxvY2F0ZWRfYnl0ZXNfc3RvcmFnZSh1aW50NjQgKmFsbG9jYXRlZF9ieXRl cywKKwkJCQkJCQkJICAgdWludDY0ICphc2V0X2FsbG9jYXRlZF9ieXRlcywKKwkJCQkJCQkJICAg dWludDY0ICpkc21fYWxsb2NhdGVkX2J5dGVzLAorCQkJCQkJCQkgICB1aW50NjQgKmdlbmVyYXRp b25fYWxsb2NhdGVkX2J5dGVzLAorCQkJCQkJCQkgICB1aW50NjQgKnNsYWJfYWxsb2NhdGVkX2J5 dGVzKQoreworCS8qIE1hcCBhbGxvY2F0aW9ucyB0byBzaGFyZWQgbWVtb3J5ICovCisJbXlfYWxs b2NhdGVkX2J5dGVzID0gYWxsb2NhdGVkX2J5dGVzOworCSphbGxvY2F0ZWRfYnl0ZXMgPSBsb2Nh bF9teV9hbGxvY2F0ZWRfYnl0ZXM7CisKKwlteV9hc2V0X2FsbG9jYXRlZF9ieXRlcyA9IGFzZXRf YWxsb2NhdGVkX2J5dGVzOworCSphc2V0X2FsbG9jYXRlZF9ieXRlcyA9IGxvY2FsX215X2FzZXRf YWxsb2NhdGVkX2J5dGVzOworCisJbXlfZHNtX2FsbG9jYXRlZF9ieXRlcyA9IGRzbV9hbGxvY2F0 ZWRfYnl0ZXM7CisJKmRzbV9hbGxvY2F0ZWRfYnl0ZXMgPSBsb2NhbF9teV9kc21fYWxsb2NhdGVk X2J5dGVzOworCisJbXlfZ2VuZXJhdGlvbl9hbGxvY2F0ZWRfYnl0ZXMgPSBnZW5lcmF0aW9uX2Fs bG9jYXRlZF9ieXRlczsKKwkqZ2VuZXJhdGlvbl9hbGxvY2F0ZWRfYnl0ZXMgPSBsb2NhbF9teV9n ZW5lcmF0aW9uX2FsbG9jYXRlZF9ieXRlczsKKworCW15X3NsYWJfYWxsb2NhdGVkX2J5dGVzID0g c2xhYl9hbGxvY2F0ZWRfYnl0ZXM7CisJKnNsYWJfYWxsb2NhdGVkX2J5dGVzID0gbG9jYWxfbXlf c2xhYl9hbGxvY2F0ZWRfYnl0ZXM7Cit9CisKKy8qCisgKiBSZXNldCBhbGxvY2F0ZWQgYnl0ZXMg c3RvcmFnZSBsb2NhdGlvbi4KKyAqCisgKiBFeHBlY3RlZCB0byBiZSBjYWxsZWQgZHVyaW5nIGJh Y2tlbmQgc2h1dGRvd24sIGJlZm9yZSB0aGUgbG9jYXRpb25zIHNldCB1cAorICogYnkgcGdzdGF0 X3NldF9hbGxvY2F0ZWRfYnl0ZXNfc3RvcmFnZSBiZWNvbWUgaW52YWxpZC4KKyAqLwordm9pZAor cGdzdGF0X3Jlc2V0X2FsbG9jYXRlZF9ieXRlc19zdG9yYWdlKHZvaWQpCit7CisJaWYgKFByb2NH bG9iYWwpCisJeworCQl2b2xhdGlsZSBQUk9DX0hEUiAqcHJvY2dsb2JhbCA9IFByb2NHbG9iYWw7 CisKKwkJLyoKKwkJICogQWRkIGRzbSBhbGxvY2F0aW9ucyB0aGF0IGhhdmUgbm90IGJlZW4gZnJl ZWQgdG8gZ2xvYmFsIGRzbQorCQkgKiBhY2NvdW50aW5nCisJCSAqLworCQlwZ19hdG9taWNfYWRk X2ZldGNoX3U2NCgmcHJvY2dsb2JhbC0+Z2xvYmFsX2RzbV9hbGxvY2F0aW9uLAorCQkJCQkJCQkq bXlfZHNtX2FsbG9jYXRlZF9ieXRlcyk7CisJfQorCisJLyogUmVzZXQgbWVtb3J5IGFsbG9jYXRp b24gdmFyaWFibGVzICovCisJKm15X2FsbG9jYXRlZF9ieXRlcyA9IGxvY2FsX215X2FsbG9jYXRl ZF9ieXRlcyA9IDA7CisJKm15X2FzZXRfYWxsb2NhdGVkX2J5dGVzID0gbG9jYWxfbXlfYXNldF9h bGxvY2F0ZWRfYnl0ZXMgPSAwOworCSpteV9kc21fYWxsb2NhdGVkX2J5dGVzID0gbG9jYWxfbXlf ZHNtX2FsbG9jYXRlZF9ieXRlcyA9IDA7CisJKm15X2dlbmVyYXRpb25fYWxsb2NhdGVkX2J5dGVz ID0gbG9jYWxfbXlfZ2VuZXJhdGlvbl9hbGxvY2F0ZWRfYnl0ZXMgPSAwOworCSpteV9zbGFiX2Fs bG9jYXRlZF9ieXRlcyA9IGxvY2FsX215X3NsYWJfYWxsb2NhdGVkX2J5dGVzID0gMDsKKworCS8q IFBvaW50IG15X3sqX31hbGxvY2F0ZWRfYnl0ZXMgZnJvbSBzaGFyZWQgbWVtb3J5IGJhY2sgdG8g bG9jYWwgKi8KKwlteV9hbGxvY2F0ZWRfYnl0ZXMgPSAmbG9jYWxfbXlfYWxsb2NhdGVkX2J5dGVz OworCW15X2FzZXRfYWxsb2NhdGVkX2J5dGVzID0gJmxvY2FsX215X2FzZXRfYWxsb2NhdGVkX2J5 dGVzOworCW15X2RzbV9hbGxvY2F0ZWRfYnl0ZXMgPSAmbG9jYWxfbXlfZHNtX2FsbG9jYXRlZF9i eXRlczsKKwlteV9nZW5lcmF0aW9uX2FsbG9jYXRlZF9ieXRlcyA9ICZsb2NhbF9teV9nZW5lcmF0 aW9uX2FsbG9jYXRlZF9ieXRlczsKKwlteV9zbGFiX2FsbG9jYXRlZF9ieXRlcyA9ICZsb2NhbF9t eV9zbGFiX2FsbG9jYXRlZF9ieXRlczsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9wZ3N0YXRmdW5jcy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMK aW5kZXggNDlhZGMzMTlmYy4uMzVmMmQyYmZmZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRp bHMvYWR0L3Bnc3RhdGZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1 bmNzLmMKQEAgLTIwNjIsMyArMjA2Miw4NyBAQCBwZ19zdGF0X2hhdmVfc3RhdHMoUEdfRlVOQ1RJ T05fQVJHUykKIAogCVBHX1JFVFVSTl9CT09MKHBnc3RhdF9oYXZlX2VudHJ5KGtpbmQsIGRib2lk LCBvYmpvaWQpKTsKIH0KKworLyoKKyAqIEdldCB0aGUgbWVtb3J5IGFsbG9jYXRpb24gb2YgUEcg YmFja2VuZHMuCisgKi8KK0RhdHVtCitwZ19zdGF0X2dldF9tZW1vcnlfYWxsb2NhdGlvbihQR19G VU5DVElPTl9BUkdTKQoreworI2RlZmluZSBQR19TVEFUX0dFVF9NRU1PUllfQUxMT0NBVElPTl9D T0xTCTcKKwlpbnQJCQludW1fYmFja2VuZHMgPSBwZ3N0YXRfZmV0Y2hfc3RhdF9udW1iYWNrZW5k cygpOworCWludAkJCWN1cnJfYmFja2VuZDsKKwlpbnQJCQlwaWQgPSBQR19BUkdJU05VTEwoMCkg PyAtMSA6IFBHX0dFVEFSR19JTlQzMigwKTsKKwlSZXR1cm5TZXRJbmZvICpyc2luZm8gPSAoUmV0 dXJuU2V0SW5mbyAqKSBmY2luZm8tPnJlc3VsdGluZm87CisKKwlJbml0TWF0ZXJpYWxpemVkU1JG KGZjaW5mbywgMCk7CisKKwkvKiAxLWJhc2VkIGluZGV4ICovCisJZm9yIChjdXJyX2JhY2tlbmQg PSAxOyBjdXJyX2JhY2tlbmQgPD0gbnVtX2JhY2tlbmRzOyBjdXJyX2JhY2tlbmQrKykKKwl7CisJ CS8qIGZvciBlYWNoIHJvdyAqLworCQlEYXR1bQkJdmFsdWVzW1BHX1NUQVRfR0VUX01FTU9SWV9B TExPQ0FUSU9OX0NPTFNdID0gezB9OworCQlib29sCQludWxsc1tQR19TVEFUX0dFVF9NRU1PUllf QUxMT0NBVElPTl9DT0xTXSA9IHswfTsKKwkJTG9jYWxQZ0JhY2tlbmRTdGF0dXMgKmxvY2FsX2Jl ZW50cnk7CisJCVBnQmFja2VuZFN0YXR1cyAqYmVlbnRyeTsKKworCQkvKiBHZXQgdGhlIG5leHQg b25lIGluIHRoZSBsaXN0ICovCisJCWxvY2FsX2JlZW50cnkgPSBwZ3N0YXRfZmV0Y2hfc3RhdF9s b2NhbF9iZWVudHJ5KGN1cnJfYmFja2VuZCk7CisJCWJlZW50cnkgPSAmbG9jYWxfYmVlbnRyeS0+ YmFja2VuZFN0YXR1czsKKworCQkvKiBJZiBsb29raW5nIGZvciBzcGVjaWZpYyBQSUQsIGlnbm9y ZSBhbGwgdGhlIG90aGVycyAqLworCQlpZiAocGlkICE9IC0xICYmIGJlZW50cnktPnN0X3Byb2Nw aWQgIT0gcGlkKQorCQkJY29udGludWU7CisKKwkJLyogVmFsdWVzIGF2YWlsYWJsZSB0byBhbGwg Y2FsbGVycyAqLworCQlpZiAoYmVlbnRyeS0+c3RfZGF0YWJhc2VpZCAhPSBJbnZhbGlkT2lkKQor CQkJdmFsdWVzWzBdID0gT2JqZWN0SWRHZXREYXR1bShiZWVudHJ5LT5zdF9kYXRhYmFzZWlkKTsK KwkJZWxzZQorCQkJbnVsbHNbMF0gPSB0cnVlOworCisJCXZhbHVlc1sxXSA9IEludDMyR2V0RGF0 dW0oYmVlbnRyeS0+c3RfcHJvY3BpZCk7CisJCXZhbHVlc1syXSA9IFVJbnQ2NEdldERhdHVtKGJl ZW50cnktPmFsbG9jYXRlZF9ieXRlcyk7CisJCXZhbHVlc1szXSA9IFVJbnQ2NEdldERhdHVtKGJl ZW50cnktPmFzZXRfYWxsb2NhdGVkX2J5dGVzKTsKKwkJdmFsdWVzWzRdID0gVUludDY0R2V0RGF0 dW0oYmVlbnRyeS0+ZHNtX2FsbG9jYXRlZF9ieXRlcyk7CisJCXZhbHVlc1s1XSA9IFVJbnQ2NEdl dERhdHVtKGJlZW50cnktPmdlbmVyYXRpb25fYWxsb2NhdGVkX2J5dGVzKTsKKwkJdmFsdWVzWzZd ID0gVUludDY0R2V0RGF0dW0oYmVlbnRyeS0+c2xhYl9hbGxvY2F0ZWRfYnl0ZXMpOworCisJCXR1 cGxlc3RvcmVfcHV0dmFsdWVzKHJzaW5mby0+c2V0UmVzdWx0LCByc2luZm8tPnNldERlc2MsIHZh bHVlcywgbnVsbHMpOworCisJCS8qIElmIG9ubHkgYSBzaW5nbGUgYmFja2VuZCB3YXMgcmVxdWVz dGVkLCBhbmQgd2UgZm91bmQgaXQsIGJyZWFrLiAqLworCQlpZiAocGlkICE9IC0xKQorCQkJYnJl YWs7CisJfQorCisJcmV0dXJuIChEYXR1bSkgMDsKK30KKworLyoKKyAqIEdldCB0aGUgZ2xvYmFs IG1lbW9yeSBhbGxvY2F0aW9uIHN0YXRpc3RpY3MuCisgKi8KK0RhdHVtCitwZ19zdGF0X2dldF9n bG9iYWxfbWVtb3J5X2FsbG9jYXRpb24oUEdfRlVOQ1RJT05fQVJHUykKK3sKKyNkZWZpbmUgUEdf U1RBVF9HRVRfR0xPQkFMX01FTU9SWV9BTExPQ0FUSU9OX0NPTFMJMgorCVR1cGxlRGVzYwl0dXBk ZXNjOworCURhdHVtCQl2YWx1ZXNbUEdfU1RBVF9HRVRfR0xPQkFMX01FTU9SWV9BTExPQ0FUSU9O X0NPTFNdID0gezB9OworCWJvb2wJCW51bGxzW1BHX1NUQVRfR0VUX0dMT0JBTF9NRU1PUllfQUxM T0NBVElPTl9DT0xTXSA9IHswfTsKKwl2b2xhdGlsZSBQUk9DX0hEUiAqcHJvY2dsb2JhbCA9IFBy b2NHbG9iYWw7CisKKwkvKiBJbml0aWFsaXNlIGF0dHJpYnV0ZXMgaW5mb3JtYXRpb24gaW4gdGhl IHR1cGxlIGRlc2NyaXB0b3IgKi8KKwl0dXBkZXNjID0gQ3JlYXRlVGVtcGxhdGVUdXBsZURlc2Mo UEdfU1RBVF9HRVRfR0xPQkFMX01FTU9SWV9BTExPQ0FUSU9OX0NPTFMpOworCVR1cGxlRGVzY0lu aXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgMSwgImRhdGlkIiwKKwkJCQkJICAgT0lET0lE LCAtMSwgMCk7CisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSAyLCAi Z2xvYmFsX2RzbV9hbGxvY2F0ZWRfYnl0ZXMiLAorCQkJCQkgICBJTlQ4T0lELCAtMSwgMCk7CisJ Qmxlc3NUdXBsZURlc2ModHVwZGVzYyk7CisKKwkvKiBkYXRpZCAqLworCXZhbHVlc1swXSA9IE9i amVjdElkR2V0RGF0dW0oTXlEYXRhYmFzZUlkKTsKKworCS8qIGdldCBnbG9iYWxfZHNtX2FsbG9j YXRlZF9ieXRlcyAqLworCXZhbHVlc1sxXSA9IEludDY0R2V0RGF0dW0ocGdfYXRvbWljX3JlYWRf dTY0KCZwcm9jZ2xvYmFsLT5nbG9iYWxfZHNtX2FsbG9jYXRpb24pKTsKKworCS8qIFJldHVybnMg dGhlIHJlY29yZCBhcyBEYXR1bSAqLworCVBHX1JFVFVSTl9EQVRVTShIZWFwVHVwbGVHZXREYXR1 bShoZWFwX2Zvcm1fdHVwbGUodHVwZGVzYywgdmFsdWVzLCBudWxscykpKTsKK30KZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3V0aWxzL2luaXQvbWlzY2luaXQuYyBiL3NyYy9iYWNrZW5kL3V0aWxz L2luaXQvbWlzY2luaXQuYwppbmRleCBhNjA0NDMyMTI2Li43YjhlZWI3ZGJiIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC91dGlscy9pbml0L21pc2Npbml0LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRp bHMvaW5pdC9taXNjaW5pdC5jCkBAIC0xNzEsNiArMTcxLDkgQEAgSW5pdFBvc3RtYXN0ZXJDaGls ZCh2b2lkKQogCQkJCShlcnJjb2RlX2Zvcl9zb2NrZXRfYWNjZXNzKCksCiAJCQkJIGVycm1zZ19p bnRlcm5hbCgiY291bGQgbm90IHNldCBwb3N0bWFzdGVyIGRlYXRoIG1vbml0b3JpbmcgcGlwZSB0 byBGRF9DTE9FWEVDIG1vZGU6ICVtIikpKTsKICNlbmRpZgorCisJLyogSW5pdCBhbGxvY2F0ZWQg Ynl0ZXMgdG8gYXZvaWQgZG91YmxlIGNvdW50aW5nIHBhcmVudCBhbGxvY2F0aW9uICovCisJcGdz dGF0X2luaXRfYWxsb2NhdGVkX2J5dGVzKCk7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC91dGlscy9tbWdyL2FzZXQuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL21tZ3IvYXNldC5jCmlu ZGV4IDBiYmJmOTM2NzIuLjQxNDY4MzFkNzUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxz L21tZ3IvYXNldC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21tZ3IvYXNldC5jCkBAIC00Nyw2 ICs0Nyw3IEBACiAjaW5jbHVkZSAicG9zdGdyZXMuaCIKIAogI2luY2x1ZGUgInBvcnQvcGdfYml0 dXRpbHMuaCIKKyNpbmNsdWRlICJ1dGlscy9iYWNrZW5kX3N0YXR1cy5oIgogI2luY2x1ZGUgInV0 aWxzL21lbWRlYnVnLmgiCiAjaW5jbHVkZSAidXRpbHMvbWVtdXRpbHMuaCIKICNpbmNsdWRlICJ1 dGlscy9tZW11dGlsc19tZW1vcnljaHVuay5oIgpAQCAtNTEzLDYgKzUxNCw3IEBAIEFsbG9jU2V0 Q29udGV4dENyZWF0ZUludGVybmFsKE1lbW9yeUNvbnRleHQgcGFyZW50LAogCQkJCQkJbmFtZSk7 CiAKIAkoKE1lbW9yeUNvbnRleHQpIHNldCktPm1lbV9hbGxvY2F0ZWQgPSBmaXJzdEJsb2NrU2l6 ZTsKKwlwZ3N0YXRfcmVwb3J0X2FsbG9jYXRlZF9ieXRlc19pbmNyZWFzZShmaXJzdEJsb2NrU2l6 ZSwgUEdfQUxMT0NfQVNFVCk7CiAKIAlyZXR1cm4gKE1lbW9yeUNvbnRleHQpIHNldDsKIH0KQEAg LTUzNSw2ICs1MzcsNyBAQCBBbGxvY1NldFJlc2V0KE1lbW9yeUNvbnRleHQgY29udGV4dCkKIAlB bGxvY1NldAlzZXQgPSAoQWxsb2NTZXQpIGNvbnRleHQ7CiAJQWxsb2NCbG9jawlibG9jazsKIAlT aXplCQlrZWVwZXJzaXplIFBHX1VTRURfRk9SX0FTU0VSVFNfT05MWTsKKwl1aW50NjQJCWRlYWxs b2NhdGlvbiA9IDA7CiAKIAlBc3NlcnQoQWxsb2NTZXRJc1ZhbGlkKHNldCkpOwogCkBAIC01Nzcs NiArNTgwLDcgQEAgQWxsb2NTZXRSZXNldChNZW1vcnlDb250ZXh0IGNvbnRleHQpCiAJCXsKIAkJ CS8qIE5vcm1hbCBjYXNlLCByZWxlYXNlIHRoZSBibG9jayAqLwogCQkJY29udGV4dC0+bWVtX2Fs bG9jYXRlZCAtPSBibG9jay0+ZW5kcHRyIC0gKChjaGFyICopIGJsb2NrKTsKKwkJCWRlYWxsb2Nh dGlvbiArPSBibG9jay0+ZW5kcHRyIC0gKChjaGFyICopIGJsb2NrKTsKIAogI2lmZGVmIENMT0JC RVJfRlJFRURfTUVNT1JZCiAJCQl3aXBlX21lbShibG9jaywgYmxvY2stPmZyZWVwdHIgLSAoKGNo YXIgKikgYmxvY2spKTsKQEAgLTU4Nyw2ICs1OTEsNyBAQCBBbGxvY1NldFJlc2V0KE1lbW9yeUNv bnRleHQgY29udGV4dCkKIAl9CiAKIAlBc3NlcnQoY29udGV4dC0+bWVtX2FsbG9jYXRlZCA9PSBr ZWVwZXJzaXplKTsKKwlwZ3N0YXRfcmVwb3J0X2FsbG9jYXRlZF9ieXRlc19kZWNyZWFzZShkZWFs bG9jYXRpb24sIFBHX0FMTE9DX0FTRVQpOwogCiAJLyogUmVzZXQgYmxvY2sgc2l6ZSBhbGxvY2F0 aW9uIHNlcXVlbmNlLCB0b28gKi8KIAlzZXQtPm5leHRCbG9ja1NpemUgPSBzZXQtPmluaXRCbG9j a1NpemU7CkBAIC02MDUsNiArNjEwLDcgQEAgQWxsb2NTZXREZWxldGUoTWVtb3J5Q29udGV4dCBj b250ZXh0KQogCUFsbG9jU2V0CXNldCA9IChBbGxvY1NldCkgY29udGV4dDsKIAlBbGxvY0Jsb2Nr CWJsb2NrID0gc2V0LT5ibG9ja3M7CiAJU2l6ZQkJa2VlcGVyc2l6ZSBQR19VU0VEX0ZPUl9BU1NF UlRTX09OTFk7CisJdWludDY0CQlkZWFsbG9jYXRpb24gPSAwOwogCiAJQXNzZXJ0KEFsbG9jU2V0 SXNWYWxpZChzZXQpKTsKIApAQCAtNjQzLDExICs2NDksMTMgQEAgQWxsb2NTZXREZWxldGUoTWVt b3J5Q29udGV4dCBjb250ZXh0KQogCiAJCQkJZnJlZWxpc3QtPmZpcnN0X2ZyZWUgPSAoQWxsb2NT ZXRDb250ZXh0ICopIG9sZHNldC0+aGVhZGVyLm5leHRjaGlsZDsKIAkJCQlmcmVlbGlzdC0+bnVt X2ZyZWUtLTsKKwkJCQlkZWFsbG9jYXRpb24gKz0gb2xkc2V0LT5oZWFkZXIubWVtX2FsbG9jYXRl ZDsKIAogCQkJCS8qIEFsbCB0aGF0IHJlbWFpbnMgaXMgdG8gZnJlZSB0aGUgaGVhZGVyL2luaXRp YWwgYmxvY2sgKi8KIAkJCQlmcmVlKG9sZHNldCk7CiAJCQl9CiAJCQlBc3NlcnQoZnJlZWxpc3Qt Pm51bV9mcmVlID09IDApOworCQkJcGdzdGF0X3JlcG9ydF9hbGxvY2F0ZWRfYnl0ZXNfZGVjcmVh c2UoZGVhbGxvY2F0aW9uLCBQR19BTExPQ19BU0VUKTsKIAkJfQogCiAJCS8qIE5vdyBhZGQgdGhl IGp1c3QtZGVsZXRlZCBjb250ZXh0IHRvIHRoZSBmcmVlbGlzdC4gKi8KQEAgLTY2NCw3ICs2NzIs MTAgQEAgQWxsb2NTZXREZWxldGUoTWVtb3J5Q29udGV4dCBjb250ZXh0KQogCQlBbGxvY0Jsb2Nr CW5leHQgPSBibG9jay0+bmV4dDsKIAogCQlpZiAoYmxvY2sgIT0gc2V0LT5rZWVwZXIpCisJCXsK IAkJCWNvbnRleHQtPm1lbV9hbGxvY2F0ZWQgLT0gYmxvY2stPmVuZHB0ciAtICgoY2hhciAqKSBi bG9jayk7CisJCQlkZWFsbG9jYXRpb24gKz0gYmxvY2stPmVuZHB0ciAtICgoY2hhciAqKSBibG9j ayk7CisJCX0KIAogI2lmZGVmIENMT0JCRVJfRlJFRURfTUVNT1JZCiAJCXdpcGVfbWVtKGJsb2Nr LCBibG9jay0+ZnJlZXB0ciAtICgoY2hhciAqKSBibG9jaykpOwpAQCAtNjc3LDYgKzY4OCw3IEBA IEFsbG9jU2V0RGVsZXRlKE1lbW9yeUNvbnRleHQgY29udGV4dCkKIAl9CiAKIAlBc3NlcnQoY29u dGV4dC0+bWVtX2FsbG9jYXRlZCA9PSBrZWVwZXJzaXplKTsKKwlwZ3N0YXRfcmVwb3J0X2FsbG9j YXRlZF9ieXRlc19kZWNyZWFzZShkZWFsbG9jYXRpb24gKyBjb250ZXh0LT5tZW1fYWxsb2NhdGVk LCBQR19BTExPQ19BU0VUKTsKIAogCS8qIEZpbmFsbHksIGZyZWUgdGhlIGNvbnRleHQgaGVhZGVy LCBpbmNsdWRpbmcgdGhlIGtlZXBlciBibG9jayAqLwogCWZyZWUoc2V0KTsKQEAgLTcyNiw2ICs3 MzgsNyBAQCBBbGxvY1NldEFsbG9jKE1lbW9yeUNvbnRleHQgY29udGV4dCwgU2l6ZSBzaXplKQog CQkJcmV0dXJuIE5VTEw7CiAKIAkJY29udGV4dC0+bWVtX2FsbG9jYXRlZCArPSBibGtzaXplOwor CQlwZ3N0YXRfcmVwb3J0X2FsbG9jYXRlZF9ieXRlc19pbmNyZWFzZShibGtzaXplLCBQR19BTExP Q19BU0VUKTsKIAogCQlibG9jay0+YXNldCA9IHNldDsKIAkJYmxvY2stPmZyZWVwdHIgPSBibG9j ay0+ZW5kcHRyID0gKChjaGFyICopIGJsb2NrKSArIGJsa3NpemU7CkBAIC05MzksNiArOTUyLDcg QEAgQWxsb2NTZXRBbGxvYyhNZW1vcnlDb250ZXh0IGNvbnRleHQsIFNpemUgc2l6ZSkKIAkJCXJl dHVybiBOVUxMOwogCiAJCWNvbnRleHQtPm1lbV9hbGxvY2F0ZWQgKz0gYmxrc2l6ZTsKKwkJcGdz dGF0X3JlcG9ydF9hbGxvY2F0ZWRfYnl0ZXNfaW5jcmVhc2UoYmxrc2l6ZSwgUEdfQUxMT0NfQVNF VCk7CiAKIAkJYmxvY2stPmFzZXQgPSBzZXQ7CiAJCWJsb2NrLT5mcmVlcHRyID0gKChjaGFyICop IGJsb2NrKSArIEFMTE9DX0JMT0NLSERSU1o7CkBAIC0xMDM2LDYgKzEwNTAsNyBAQCBBbGxvY1Nl dEZyZWUodm9pZCAqcG9pbnRlcikKIAkJCWJsb2NrLT5uZXh0LT5wcmV2ID0gYmxvY2stPnByZXY7 CiAKIAkJc2V0LT5oZWFkZXIubWVtX2FsbG9jYXRlZCAtPSBibG9jay0+ZW5kcHRyIC0gKChjaGFy ICopIGJsb2NrKTsKKwkJcGdzdGF0X3JlcG9ydF9hbGxvY2F0ZWRfYnl0ZXNfZGVjcmVhc2UoYmxv Y2stPmVuZHB0ciAtICgoY2hhciAqKSBibG9jayksIFBHX0FMTE9DX0FTRVQpOwogCiAjaWZkZWYg Q0xPQkJFUl9GUkVFRF9NRU1PUlkKIAkJd2lwZV9tZW0oYmxvY2ssIGJsb2NrLT5mcmVlcHRyIC0g KChjaGFyICopIGJsb2NrKSk7CkBAIC0xMTY2LDcgKzExODEsOSBAQCBBbGxvY1NldFJlYWxsb2Mo dm9pZCAqcG9pbnRlciwgU2l6ZSBzaXplKQogCiAJCS8qIHVwZGF0ZWQgc2VwYXJhdGVseSwgbm90 IHRvIHVuZGVyZmxvdyB3aGVuIChvbGRibGtzaXplID4gYmxrc2l6ZSkgKi8KIAkJc2V0LT5oZWFk ZXIubWVtX2FsbG9jYXRlZCAtPSBvbGRibGtzaXplOworCQlwZ3N0YXRfcmVwb3J0X2FsbG9jYXRl ZF9ieXRlc19kZWNyZWFzZShvbGRibGtzaXplLCBQR19BTExPQ19BU0VUKTsKIAkJc2V0LT5oZWFk ZXIubWVtX2FsbG9jYXRlZCArPSBibGtzaXplOworCQlwZ3N0YXRfcmVwb3J0X2FsbG9jYXRlZF9i eXRlc19pbmNyZWFzZShibGtzaXplLCBQR19BTExPQ19BU0VUKTsKIAogCQlibG9jay0+ZnJlZXB0 ciA9IGJsb2NrLT5lbmRwdHIgPSAoKGNoYXIgKikgYmxvY2spICsgYmxrc2l6ZTsKIApkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvbW1nci9nZW5lcmF0aW9uLmMgYi9zcmMvYmFja2VuZC91 dGlscy9tbWdyL2dlbmVyYXRpb24uYwppbmRleCA0ZmI4NjYzY2Q2Li41MDJmODc3ODU1IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9tbWdyL2dlbmVyYXRpb24uYworKysgYi9zcmMvYmFj a2VuZC91dGlscy9tbWdyL2dlbmVyYXRpb24uYwpAQCAtMzcsNiArMzcsNyBAQAogCiAjaW5jbHVk ZSAibGliL2lsaXN0LmgiCiAjaW5jbHVkZSAicG9ydC9wZ19iaXR1dGlscy5oIgorI2luY2x1ZGUg InV0aWxzL2JhY2tlbmRfc3RhdHVzLmgiCiAjaW5jbHVkZSAidXRpbHMvbWVtZGVidWcuaCIKICNp bmNsdWRlICJ1dGlscy9tZW11dGlscy5oIgogI2luY2x1ZGUgInV0aWxzL21lbXV0aWxzX21lbW9y eWNodW5rLmgiCkBAIC0yNTksNiArMjYwLDcgQEAgR2VuZXJhdGlvbkNvbnRleHRDcmVhdGUoTWVt b3J5Q29udGV4dCBwYXJlbnQsCiAJCQkJCQluYW1lKTsKIAogCSgoTWVtb3J5Q29udGV4dCkgc2V0 KS0+bWVtX2FsbG9jYXRlZCA9IGZpcnN0QmxvY2tTaXplOworCXBnc3RhdF9yZXBvcnRfYWxsb2Nh dGVkX2J5dGVzX2luY3JlYXNlKGZpcnN0QmxvY2tTaXplLCBQR19BTExPQ19HRU5FUkFUSU9OKTsK IAogCXJldHVybiAoTWVtb3J5Q29udGV4dCkgc2V0OwogfQpAQCAtMjc1LDYgKzI3Nyw3IEBAIEdl bmVyYXRpb25SZXNldChNZW1vcnlDb250ZXh0IGNvbnRleHQpCiB7CiAJR2VuZXJhdGlvbkNvbnRl eHQgKnNldCA9IChHZW5lcmF0aW9uQ29udGV4dCAqKSBjb250ZXh0OwogCWRsaXN0X211dGFibGVf aXRlciBtaXRlcjsKKwl1aW50NjQJCWRlYWxsb2NhdGlvbiA9IDA7CiAKIAlBc3NlcnQoR2VuZXJh dGlvbklzVmFsaWQoc2V0KSk7CiAKQEAgLTI5Nyw5ICszMDAsMTQgQEAgR2VuZXJhdGlvblJlc2V0 KE1lbW9yeUNvbnRleHQgY29udGV4dCkKIAkJaWYgKGJsb2NrID09IHNldC0+a2VlcGVyKQogCQkJ R2VuZXJhdGlvbkJsb2NrTWFya0VtcHR5KGJsb2NrKTsKIAkJZWxzZQorCQl7CisJCQlkZWFsbG9j YXRpb24gKz0gYmxvY2stPmJsa3NpemU7CiAJCQlHZW5lcmF0aW9uQmxvY2tGcmVlKHNldCwgYmxv Y2spOworCQl9CiAJfQogCisJcGdzdGF0X3JlcG9ydF9hbGxvY2F0ZWRfYnl0ZXNfZGVjcmVhc2Uo ZGVhbGxvY2F0aW9uLCBQR19BTExPQ19HRU5FUkFUSU9OKTsKKwogCS8qIHNldCBpdCBzbyBuZXcg YWxsb2NhdGlvbnMgdG8gbWFrZSB1c2Ugb2YgdGhlIGtlZXBlciBibG9jayAqLwogCXNldC0+Ymxv Y2sgPSBzZXQtPmtlZXBlcjsKIApAQCAtMzIwLDYgKzMyOCw5IEBAIEdlbmVyYXRpb25EZWxldGUo TWVtb3J5Q29udGV4dCBjb250ZXh0KQogewogCS8qIFJlc2V0IHRvIHJlbGVhc2UgYWxsIHJlbGVh c2FibGUgR2VuZXJhdGlvbkJsb2NrcyAqLwogCUdlbmVyYXRpb25SZXNldChjb250ZXh0KTsKKwor CXBnc3RhdF9yZXBvcnRfYWxsb2NhdGVkX2J5dGVzX2RlY3JlYXNlKGNvbnRleHQtPm1lbV9hbGxv Y2F0ZWQsIFBHX0FMTE9DX0dFTkVSQVRJT04pOworCiAJLyogQW5kIGZyZWUgdGhlIGNvbnRleHQg aGVhZGVyIGFuZCBrZWVwZXIgYmxvY2sgKi8KIAlmcmVlKGNvbnRleHQpOwogfQpAQCAtMzY2LDYg KzM3Nyw3IEBAIEdlbmVyYXRpb25BbGxvYyhNZW1vcnlDb250ZXh0IGNvbnRleHQsIFNpemUgc2l6 ZSkKIAkJCXJldHVybiBOVUxMOwogCiAJCWNvbnRleHQtPm1lbV9hbGxvY2F0ZWQgKz0gYmxrc2l6 ZTsKKwkJcGdzdGF0X3JlcG9ydF9hbGxvY2F0ZWRfYnl0ZXNfaW5jcmVhc2UoYmxrc2l6ZSwgUEdf QUxMT0NfR0VORVJBVElPTik7CiAKIAkJLyogYmxvY2sgd2l0aCBhIHNpbmdsZSAodXNlZCkgY2h1 bmsgKi8KIAkJYmxvY2stPmNvbnRleHQgPSBzZXQ7CkBAIC00NjksNiArNDgxLDcgQEAgR2VuZXJh dGlvbkFsbG9jKE1lbW9yeUNvbnRleHQgY29udGV4dCwgU2l6ZSBzaXplKQogCQkJCXJldHVybiBO VUxMOwogCiAJCQljb250ZXh0LT5tZW1fYWxsb2NhdGVkICs9IGJsa3NpemU7CisJCQlwZ3N0YXRf cmVwb3J0X2FsbG9jYXRlZF9ieXRlc19pbmNyZWFzZShibGtzaXplLCBQR19BTExPQ19HRU5FUkFU SU9OKTsKIAogCQkJLyogaW5pdGlhbGl6ZSB0aGUgbmV3IGJsb2NrICovCiAJCQlHZW5lcmF0aW9u QmxvY2tJbml0KHNldCwgYmxvY2ssIGJsa3NpemUpOwpAQCAtNzIxLDYgKzczNCw4IEBAIEdlbmVy YXRpb25GcmVlKHZvaWQgKnBvaW50ZXIpCiAJZGxpc3RfZGVsZXRlKCZibG9jay0+bm9kZSk7CiAK IAlzZXQtPmhlYWRlci5tZW1fYWxsb2NhdGVkIC09IGJsb2NrLT5ibGtzaXplOworCXBnc3RhdF9y ZXBvcnRfYWxsb2NhdGVkX2J5dGVzX2RlY3JlYXNlKGJsb2NrLT5ibGtzaXplLCBQR19BTExPQ19H RU5FUkFUSU9OKTsKKwogCWZyZWUoYmxvY2spOwogfQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC91dGlscy9tbWdyL3NsYWIuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL21tZ3Ivc2xhYi5jCmluZGV4 IDcxOGRkMmJhMDMuLjkxMzc4N2RiYTggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21t Z3Ivc2xhYi5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21tZ3Ivc2xhYi5jCkBAIC02OSw2ICs2 OSw3IEBACiAjaW5jbHVkZSAicG9zdGdyZXMuaCIKIAogI2luY2x1ZGUgImxpYi9pbGlzdC5oIgor I2luY2x1ZGUgInV0aWxzL2JhY2tlbmRfc3RhdHVzLmgiCiAjaW5jbHVkZSAidXRpbHMvbWVtZGVi dWcuaCIKICNpbmNsdWRlICJ1dGlscy9tZW11dGlscy5oIgogI2luY2x1ZGUgInV0aWxzL21lbXV0 aWxzX21lbW9yeWNodW5rLmgiCkBAIC00MTMsNiArNDE0LDEzIEBAIFNsYWJDb250ZXh0Q3JlYXRl KE1lbW9yeUNvbnRleHQgcGFyZW50LAogCQkJCQkJcGFyZW50LAogCQkJCQkJbmFtZSk7CiAKKwkv KgorCSAqIElmIFNsYWJDb250ZXh0Q3JlYXRlIGlzIHVwZGF0ZWQgdG8gYWRkIGNvbnRleHQgaGVh ZGVyIHNpemUgdG8KKwkgKiBjb250ZXh0LT5tZW1fYWxsb2NhdGVkLCB0aGVuIHVwZGF0ZSBoZXJl IGFuZCBTbGFiRGVsZXRlIGFwcHJvcHJpYXRlbHkKKwkgKi8KKwlwZ3N0YXRfcmVwb3J0X2FsbG9j YXRlZF9ieXRlc19pbmNyZWFzZShTbGFiX0NPTlRFWFRfSERSU1ooc2xhYi0+Y2h1bmtzUGVyQmxv Y2spLAorCQkJCQkJCQkJCSAgIFBHX0FMTE9DX1NMQUIpOworCiAJcmV0dXJuIChNZW1vcnlDb250 ZXh0KSBzbGFiOwogfQogCkBAIC00MjksNiArNDM3LDcgQEAgU2xhYlJlc2V0KE1lbW9yeUNvbnRl eHQgY29udGV4dCkKIAlTbGFiQ29udGV4dCAqc2xhYiA9IChTbGFiQ29udGV4dCAqKSBjb250ZXh0 OwogCWRsaXN0X211dGFibGVfaXRlciBtaXRlcjsKIAlpbnQJCQlpOworCXVpbnQ2NAkJZGVhbGxv Y2F0aW9uID0gMDsKIAogCUFzc2VydChTbGFiSXNWYWxpZChzbGFiKSk7CiAKQEAgLTQ0OSw2ICs0 NTgsNyBAQCBTbGFiUmVzZXQoTWVtb3J5Q29udGV4dCBjb250ZXh0KQogI2VuZGlmCiAJCWZyZWUo YmxvY2spOwogCQljb250ZXh0LT5tZW1fYWxsb2NhdGVkIC09IHNsYWItPmJsb2NrU2l6ZTsKKwkJ ZGVhbGxvY2F0aW9uICs9IHNsYWItPmJsb2NrU2l6ZTsKIAl9CiAKIAkvKiB3YWxrIG92ZXIgYmxv Y2tsaXN0IGFuZCBmcmVlIHRoZSBibG9ja3MgKi8KQEAgLTQ2NSw5ICs0NzUsMTEgQEAgU2xhYlJl c2V0KE1lbW9yeUNvbnRleHQgY29udGV4dCkKICNlbmRpZgogCQkJZnJlZShibG9jayk7CiAJCQlj b250ZXh0LT5tZW1fYWxsb2NhdGVkIC09IHNsYWItPmJsb2NrU2l6ZTsKKwkJCWRlYWxsb2NhdGlv biArPSBzbGFiLT5ibG9ja1NpemU7CiAJCX0KIAl9CiAKKwlwZ3N0YXRfcmVwb3J0X2FsbG9jYXRl ZF9ieXRlc19kZWNyZWFzZShkZWFsbG9jYXRpb24sIFBHX0FMTE9DX1NMQUIpOwogCXNsYWItPmN1 ckJsb2NrbGlzdEluZGV4ID0gMDsKIAogCUFzc2VydChjb250ZXh0LT5tZW1fYWxsb2NhdGVkID09 IDApOwpAQCAtNDgyLDYgKzQ5NCwxNCBAQCBTbGFiRGVsZXRlKE1lbW9yeUNvbnRleHQgY29udGV4 dCkKIHsKIAkvKiBSZXNldCB0byByZWxlYXNlIGFsbCB0aGUgU2xhYkJsb2NrcyAqLwogCVNsYWJS ZXNldChjb250ZXh0KTsKKworCS8qCisJICogVW50aWwgY29udGV4dCBoZWFkZXIgYWxsb2NhdGlv biBpcyBpbmNsdWRlZCBpbiBjb250ZXh0LT5tZW1fYWxsb2NhdGVkLAorCSAqIGNhc3QgdG8gc2xh YiBhbmQgZGVjcmVtZW50IHRoZSBoZWFkZXIgYWxsb2NhdGlvbgorCSAqLworCXBnc3RhdF9yZXBv cnRfYWxsb2NhdGVkX2J5dGVzX2RlY3JlYXNlKFNsYWJfQ09OVEVYVF9IRFJTWigoKFNsYWJDb250 ZXh0ICopIGNvbnRleHQpLT5jaHVua3NQZXJCbG9jayksCisJCQkJCQkJCQkJICAgUEdfQUxMT0Nf U0xBQik7CisKIAkvKiBBbmQgZnJlZSB0aGUgY29udGV4dCBoZWFkZXIgKi8KIAlmcmVlKGNvbnRl eHQpOwogfQpAQCAtNTQ2LDYgKzU2Niw3IEBAIFNsYWJBbGxvYyhNZW1vcnlDb250ZXh0IGNvbnRl eHQsIFNpemUgc2l6ZSkKIAogCQkJYmxvY2stPnNsYWIgPSBzbGFiOwogCQkJY29udGV4dC0+bWVt X2FsbG9jYXRlZCArPSBzbGFiLT5ibG9ja1NpemU7CisJCQlwZ3N0YXRfcmVwb3J0X2FsbG9jYXRl ZF9ieXRlc19pbmNyZWFzZShzbGFiLT5ibG9ja1NpemUsIFBHX0FMTE9DX1NMQUIpOwogCiAJCQkv KiB1c2UgdGhlIGZpcnN0IGNodW5rIGluIHRoZSBuZXcgYmxvY2sgKi8KIAkJCWNodW5rID0gU2xh YkJsb2NrR2V0Q2h1bmsoc2xhYiwgYmxvY2ssIDApOwpAQCAtNzQwLDYgKzc2MSw3IEBAIFNsYWJG cmVlKHZvaWQgKnBvaW50ZXIpCiAjZW5kaWYKIAkJCWZyZWUoYmxvY2spOwogCQkJc2xhYi0+aGVh ZGVyLm1lbV9hbGxvY2F0ZWQgLT0gc2xhYi0+YmxvY2tTaXplOworCQkJcGdzdGF0X3JlcG9ydF9h bGxvY2F0ZWRfYnl0ZXNfZGVjcmVhc2Uoc2xhYi0+YmxvY2tTaXplLCBQR19BTExPQ19TTEFCKTsK IAkJfQogCiAJCS8qCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0 IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCA2OTk2MDczOTg5Li5iMDk1 NzQwZjhhIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CisrKyBi L3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKQEAgLTU0MDgsNiArNTQwOCwyMyBAQAog ICBwcm9uYW1lID0+ICdwZ19zdGF0X2dldF9iYWNrZW5kX2lkc2V0JywgcHJvcm93cyA9PiAnMTAw JywgcHJvcmV0c2V0ID0+ICd0JywKICAgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9wYXJhbGxlbCA9 PiAncicsIHByb3JldHR5cGUgPT4gJ2ludDQnLAogICBwcm9hcmd0eXBlcyA9PiAnJywgcHJvc3Jj ID0+ICdwZ19zdGF0X2dldF9iYWNrZW5kX2lkc2V0JyB9LAoreyBvaWQgPT4gJzk4OTAnLAorICBk ZXNjciA9PiAnc3RhdGlzdGljczogbWVtb3J5IGFsbG9jYXRpb24gaW5mb3JtYXRpb24gZm9yIGJh Y2tlbmRzJywKKyAgcHJvbmFtZSA9PiAncGdfc3RhdF9nZXRfbWVtb3J5X2FsbG9jYXRpb24nLCBw cm9yb3dzID0+ICcxMDAnLCBwcm9pc3N0cmljdCA9PiAnZicsCisgIHByb3JldHNldCA9PiAndCcs IHByb3ZvbGF0aWxlID0+ICdzJywgcHJvcGFyYWxsZWwgPT4gJ3InLAorICBwcm9yZXR0eXBlID0+ ICdyZWNvcmQnLCBwcm9hcmd0eXBlcyA9PiAnaW50NCcsCisgIHByb2FsbGFyZ3R5cGVzID0+ICd7 aW50NCxvaWQsaW50NCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDh9JywKKyAgcHJvYXJnbW9kZXMg PT4gJ3tpLG8sbyxvLG8sbyxvLG99JywKKyAgcHJvYXJnbmFtZXMgPT4gJ3twaWQsZGF0aWQscGlk LGFsbG9jYXRlZF9ieXRlcyxhc2V0X2FsbG9jYXRlZF9ieXRlcyxkc21fYWxsb2NhdGVkX2J5dGVz LGdlbmVyYXRpb25fYWxsb2NhdGVkX2J5dGVzLHNsYWJfYWxsb2NhdGVkX2J5dGVzfScsCisgIHBy b3NyYyA9PiAncGdfc3RhdF9nZXRfbWVtb3J5X2FsbG9jYXRpb24nIH0sCit7IG9pZCA9PiAnOTg5 MScsCisgIGRlc2NyID0+ICdzdGF0aXN0aWNzOiBnbG9iYWwgbWVtb3J5IGFsbG9jYXRpb24gaW5m b3JtYXRpb24nLAorICBwcm9uYW1lID0+ICdwZ19zdGF0X2dldF9nbG9iYWxfbWVtb3J5X2FsbG9j YXRpb24nLCBwcm9pc3N0cmljdCA9PiAnZicsCisgIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvcGFy YWxsZWwgPT4gJ3InLCBwcm9yZXR0eXBlID0+ICdyZWNvcmQnLAorICBwcm9hcmd0eXBlcyA9PiAn JywgcHJvYWxsYXJndHlwZXMgPT4gJ3tvaWQsaW50OH0nLAorICBwcm9hcmdtb2RlcyA9PiAne28s b30nLAorICBwcm9hcmduYW1lcyA9PiAne2RhdGlkLGdsb2JhbF9kc21fYWxsb2NhdGVkX2J5dGVz fScsCisgIHByb3NyYyA9PidwZ19zdGF0X2dldF9nbG9iYWxfbWVtb3J5X2FsbG9jYXRpb24nIH0s CiB7IG9pZCA9PiAnMjAyMicsCiAgIGRlc2NyID0+ICdzdGF0aXN0aWNzOiBpbmZvcm1hdGlvbiBh Ym91dCBjdXJyZW50bHkgYWN0aXZlIGJhY2tlbmRzJywKICAgcHJvbmFtZSA9PiAncGdfc3RhdF9n ZXRfYWN0aXZpdHknLCBwcm9yb3dzID0+ICcxMDAnLCBwcm9pc3N0cmljdCA9PiAnZicsCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9zdG9yYWdlL3Byb2MuaCBiL3NyYy9pbmNsdWRlL3N0b3JhZ2Uv cHJvYy5oCmluZGV4IGVmNzRmMzI2OTMuLmU2YmU2N2RlMmEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL3N0b3JhZ2UvcHJvYy5oCisrKyBiL3NyYy9pbmNsdWRlL3N0b3JhZ2UvcHJvYy5oCkBAIC00 MDQsNiArNDA0LDggQEAgdHlwZWRlZiBzdHJ1Y3QgUFJPQ19IRFIKIAlpbnQJCQlzcGluc19wZXJf ZGVsYXk7CiAJLyogQnVmZmVyIGlkIG9mIHRoZSBidWZmZXIgdGhhdCBTdGFydHVwIHByb2Nlc3Mg d2FpdHMgZm9yIHBpbiBvbiwgb3IgLTEgKi8KIAlpbnQJCQlzdGFydHVwQnVmZmVyUGluV2FpdEJ1 ZklkOworCS8qIEdsb2JhbCBkc20gYWxsb2NhdGlvbnMgKi8KKwlwZ19hdG9taWNfdWludDY0IGds b2JhbF9kc21fYWxsb2NhdGlvbjsKIH0gUFJPQ19IRFI7CiAKIGV4dGVybiBQR0RMTElNUE9SVCBQ Uk9DX0hEUiAqUHJvY0dsb2JhbDsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL2JhY2tl bmRfc3RhdHVzLmggYi9zcmMvaW5jbHVkZS91dGlscy9iYWNrZW5kX3N0YXR1cy5oCmluZGV4IDE2 NTAwZDUzYjIuLjliNzVmYzUyMjMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL2JhY2tl bmRfc3RhdHVzLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvYmFja2VuZF9zdGF0dXMuaApAQCAt MTAsNiArMTAsNyBAQAogI2lmbmRlZiBCQUNLRU5EX1NUQVRVU19ICiAjZGVmaW5lIEJBQ0tFTkRf U1RBVFVTX0gKIAorI2luY2x1ZGUgImNvbW1vbi9pbnQuaCIKICNpbmNsdWRlICJkYXRhdHlwZS90 aW1lc3RhbXAuaCIKICNpbmNsdWRlICJsaWJwcS9wcWNvbW0uaCIKICNpbmNsdWRlICJtaXNjYWRt aW4uaCIJCQkvKiBmb3IgQmFja2VuZFR5cGUgKi8KQEAgLTMyLDYgKzMzLDE0IEBAIHR5cGVkZWYg ZW51bSBCYWNrZW5kU3RhdGUKIAlTVEFURV9ESVNBQkxFRAogfSBCYWNrZW5kU3RhdGU7CiAKKy8q IEVudW0gaGVscGVyIGZvciByZXBvcnRpbmcgbWVtb3J5IGFsbG9jYXRvciB0eXBlICovCitlbnVt IHBnX2FsbG9jYXRvcl90eXBlCit7CisJUEdfQUxMT0NfQVNFVCA9IDEsCisJUEdfQUxMT0NfRFNN LAorCVBHX0FMTE9DX0dFTkVSQVRJT04sCisJUEdfQUxMT0NfU0xBQgorfTsKIAogLyogLS0tLS0t LS0tLQogICogU2hhcmVkLW1lbW9yeSBkYXRhIHN0cnVjdHVyZXMKQEAgLTE3MCw2ICsxNzksMTUg QEAgdHlwZWRlZiBzdHJ1Y3QgUGdCYWNrZW5kU3RhdHVzCiAKIAkvKiBxdWVyeSBpZGVudGlmaWVy LCBvcHRpb25hbGx5IGNvbXB1dGVkIHVzaW5nIHBvc3RfcGFyc2VfYW5hbHl6ZV9ob29rICovCiAJ dWludDY0CQlzdF9xdWVyeV9pZDsKKworCS8qIEN1cnJlbnQgbWVtb3J5IGFsbG9jYXRlZCB0byB0 aGlzIGJhY2tlbmQgKi8KKwl1aW50NjQJCWFsbG9jYXRlZF9ieXRlczsKKworCS8qIEN1cnJlbnQg bWVtb3J5IGFsbG9jYXRlZCB0byB0aGlzIGJhY2tlbmQgYnkgdHlwZSAqLworCXVpbnQ2NAkJYXNl dF9hbGxvY2F0ZWRfYnl0ZXM7CisJdWludDY0CQlkc21fYWxsb2NhdGVkX2J5dGVzOworCXVpbnQ2 NAkJZ2VuZXJhdGlvbl9hbGxvY2F0ZWRfYnl0ZXM7CisJdWludDY0CQlzbGFiX2FsbG9jYXRlZF9i eXRlczsKIH0gUGdCYWNrZW5kU3RhdHVzOwogCiAKQEAgLTI5NCw2ICszMTIsMTEgQEAgZXh0ZXJu IFBHRExMSU1QT1JUIGludCBwZ3N0YXRfdHJhY2tfYWN0aXZpdHlfcXVlcnlfc2l6ZTsKICAqIC0t LS0tLS0tLS0KICAqLwogZXh0ZXJuIFBHRExMSU1QT1JUIFBnQmFja2VuZFN0YXR1cyAqTXlCRUVu dHJ5OworZXh0ZXJuIFBHRExMSU1QT1JUIHVpbnQ2NCAqbXlfYWxsb2NhdGVkX2J5dGVzOworZXh0 ZXJuIFBHRExMSU1QT1JUIHVpbnQ2NCAqbXlfYXNldF9hbGxvY2F0ZWRfYnl0ZXM7CitleHRlcm4g UEdETExJTVBPUlQgdWludDY0ICpteV9kc21fYWxsb2NhdGVkX2J5dGVzOworZXh0ZXJuIFBHRExM SU1QT1JUIHVpbnQ2NCAqbXlfZ2VuZXJhdGlvbl9hbGxvY2F0ZWRfYnl0ZXM7CitleHRlcm4gUEdE TExJTVBPUlQgdWludDY0ICpteV9zbGFiX2FsbG9jYXRlZF9ieXRlczsKIAogCiAvKiAtLS0tLS0t LS0tCkBAIC0zMjUsNyArMzQ4LDEyIEBAIGV4dGVybiBjb25zdCBjaGFyICpwZ3N0YXRfZ2V0X2Jh Y2tlbmRfY3VycmVudF9hY3Rpdml0eShpbnQgcGlkLCBib29sIGNoZWNrVXNlcik7CiBleHRlcm4g Y29uc3QgY2hhciAqcGdzdGF0X2dldF9jcmFzaGVkX2JhY2tlbmRfYWN0aXZpdHkoaW50IHBpZCwg Y2hhciAqYnVmZmVyLAogCQkJCQkJCQkJCQkJCSAgIGludCBidWZsZW4pOwogZXh0ZXJuIHVpbnQ2 NCBwZ3N0YXRfZ2V0X215X3F1ZXJ5X2lkKHZvaWQpOwotCitleHRlcm4gdm9pZCBwZ3N0YXRfc2V0 X2FsbG9jYXRlZF9ieXRlc19zdG9yYWdlKHVpbnQ2NCAqYWxsb2NhdGVkX2J5dGVzLAorCQkJCQkJ CQkJCQkgICB1aW50NjQgKmFzZXRfYWxsb2NhdGVkX2J5dGVzLAorCQkJCQkJCQkJCQkgICB1aW50 NjQgKmRzbV9hbGxvY2F0ZWRfYnl0ZXMsCisJCQkJCQkJCQkJCSAgIHVpbnQ2NCAqZ2VuZXJhdGlv bl9hbGxvY2F0ZWRfYnl0ZXMsCisJCQkJCQkJCQkJCSAgIHVpbnQ2NCAqc2xhYl9hbGxvY2F0ZWRf Ynl0ZXMpOworZXh0ZXJuIHZvaWQgcGdzdGF0X3Jlc2V0X2FsbG9jYXRlZF9ieXRlc19zdG9yYWdl KHZvaWQpOwogCiAvKiAtLS0tLS0tLS0tCiAgKiBTdXBwb3J0IGZ1bmN0aW9ucyBmb3IgdGhlIFNR TC1jYWxsYWJsZSBmdW5jdGlvbnMgdG8KQEAgLTMzNyw1ICszNjUsMTE5IEBAIGV4dGVybiBQZ0Jh Y2tlbmRTdGF0dXMgKnBnc3RhdF9mZXRjaF9zdGF0X2JlZW50cnkoQmFja2VuZElkIGJlaWQpOwog ZXh0ZXJuIExvY2FsUGdCYWNrZW5kU3RhdHVzICpwZ3N0YXRfZmV0Y2hfc3RhdF9sb2NhbF9iZWVu dHJ5KGludCBiZWlkKTsKIGV4dGVybiBjaGFyICpwZ3N0YXRfY2xpcF9hY3Rpdml0eShjb25zdCBj aGFyICpyYXdfYWN0aXZpdHkpOwogCisvKiAtLS0tLS0tLS0tCisgKiBwZ3N0YXRfcmVwb3J0X2Fs bG9jYXRlZF9ieXRlc19kZWNyZWFzZSgpIC0KKyAqICBDYWxsZWQgdG8gcmVwb3J0IGRlY3JlYXNl IGluIG1lbW9yeSBhbGxvY2F0ZWQgZm9yIHRoaXMgYmFja2VuZC4KKyAqCisgKiBteV97Kl99YWxs b2NhdGVkX2J5dGVzIGluaXRpYWxseSBwb2ludHMgdG8gbG9jYWwgbWVtb3J5LCBtYWtpbmcgaXQg c2FmZSB0bworICogY2FsbCB0aGlzIGJlZm9yZSBwZ3N0YXRzIGhhcyBiZWVuIGluaXRpYWxpemVk LgorICogLS0tLS0tLS0tLQorICovCitzdGF0aWMgaW5saW5lIHZvaWQKK3Bnc3RhdF9yZXBvcnRf YWxsb2NhdGVkX2J5dGVzX2RlY3JlYXNlKGludDY0IHByb2NfYWxsb2NhdGVkX2J5dGVzLAorCQkJ CQkJCQkJICAgaW50IHBnX2FsbG9jYXRvcl90eXBlKQoreworCXVpbnQ2NAkJdGVtcDsKKworCS8q IEF2b2lkIGFsbG9jYXRlZF9ieXRlcyB1bnNpZ25lZCBpbnRlZ2VyIG92ZXJmbG93IG9uIGRlY3Jl YXNlICovCisJaWYgKHBnX3N1Yl91NjRfb3ZlcmZsb3coKm15X2FsbG9jYXRlZF9ieXRlcywgcHJv Y19hbGxvY2F0ZWRfYnl0ZXMsICZ0ZW1wKSkKKwl7CisJCS8qIE9uIG92ZXJmbG93LCBzZXQgYWxs b2NhdGVkIGJ5dGVzIGFuZCBhbGxvY2F0b3IgdHlwZSBieXRlcyB0byB6ZXJvICovCisJCSpteV9h bGxvY2F0ZWRfYnl0ZXMgPSAwOworCQkqbXlfYXNldF9hbGxvY2F0ZWRfYnl0ZXMgPSAwOworCQkq bXlfZHNtX2FsbG9jYXRlZF9ieXRlcyA9IDA7CisJCSpteV9nZW5lcmF0aW9uX2FsbG9jYXRlZF9i eXRlcyA9IDA7CisJCSpteV9zbGFiX2FsbG9jYXRlZF9ieXRlcyA9IDA7CisJfQorCWVsc2UKKwl7 CisJCS8qIGRlY3JlYXNlIGFsbG9jYXRpb24gKi8KKwkJKm15X2FsbG9jYXRlZF9ieXRlcyAtPSBw cm9jX2FsbG9jYXRlZF9ieXRlczsKKworCQkvKiBEZWNyZWFzZSBhbGxvY2F0b3IgdHlwZSBhbGxv Y2F0ZWQgYnl0ZXMuICovCisJCXN3aXRjaCAocGdfYWxsb2NhdG9yX3R5cGUpCisJCXsKKwkJCWNh c2UgUEdfQUxMT0NfQVNFVDoKKwkJCQkqbXlfYXNldF9hbGxvY2F0ZWRfYnl0ZXMgLT0gcHJvY19h bGxvY2F0ZWRfYnl0ZXM7CisJCQkJYnJlYWs7CisJCQljYXNlIFBHX0FMTE9DX0RTTToKKworCQkJ CS8qCisJCQkJICogU29tZSBkc20gYWxsb2NhdGlvbnMgbGl2ZSBiZXlvbmQgcHJvY2VzcyBleGl0 LiBUaGVzZSBhcmUKKwkJCQkgKiBhY2NvdW50ZWQgZm9yIGluIGEgZ2xvYmFsIGNvdW50ZXIgaW4K KwkJCQkgKiBwZ3N0YXRfcmVzZXRfYWxsb2NhdGVkX2J5dGVzX3N0b3JhZ2UgYXQgcHJvY2VzcyBl eGl0LgorCQkJCSAqLworCQkJCSpteV9kc21fYWxsb2NhdGVkX2J5dGVzIC09IHByb2NfYWxsb2Nh dGVkX2J5dGVzOworCQkJCWJyZWFrOworCQkJY2FzZSBQR19BTExPQ19HRU5FUkFUSU9OOgorCQkJ CSpteV9nZW5lcmF0aW9uX2FsbG9jYXRlZF9ieXRlcyAtPSBwcm9jX2FsbG9jYXRlZF9ieXRlczsK KwkJCQlicmVhazsKKwkJCWNhc2UgUEdfQUxMT0NfU0xBQjoKKwkJCQkqbXlfc2xhYl9hbGxvY2F0 ZWRfYnl0ZXMgLT0gcHJvY19hbGxvY2F0ZWRfYnl0ZXM7CisJCQkJYnJlYWs7CisJCX0KKwl9CisK KwlyZXR1cm47Cit9CisKKy8qIC0tLS0tLS0tLS0KKyAqIHBnc3RhdF9yZXBvcnRfYWxsb2NhdGVk X2J5dGVzX2luY3JlYXNlKCkgLQorICogIENhbGxlZCB0byByZXBvcnQgaW5jcmVhc2UgaW4gbWVt b3J5IGFsbG9jYXRlZCBmb3IgdGhpcyBiYWNrZW5kLgorICoKKyAqIG15X2FsbG9jYXRlZF9ieXRl cyBpbml0aWFsbHkgcG9pbnRzIHRvIGxvY2FsIG1lbW9yeSwgbWFraW5nIGl0IHNhZmUgdG8gY2Fs bAorICogdGhpcyBiZWZvcmUgcGdzdGF0cyBoYXMgYmVlbiBpbml0aWFsaXplZC4KKyAqIC0tLS0t LS0tLS0KKyAqLworc3RhdGljIGlubGluZSB2b2lkCitwZ3N0YXRfcmVwb3J0X2FsbG9jYXRlZF9i eXRlc19pbmNyZWFzZShpbnQ2NCBwcm9jX2FsbG9jYXRlZF9ieXRlcywKKwkJCQkJCQkJCSAgIGlu dCBwZ19hbGxvY2F0b3JfdHlwZSkKK3sKKwkqbXlfYWxsb2NhdGVkX2J5dGVzICs9IHByb2NfYWxs b2NhdGVkX2J5dGVzOworCisJLyogSW5jcmVhc2UgYWxsb2NhdG9yIHR5cGUgYWxsb2NhdGVkIGJ5 dGVzICovCisJc3dpdGNoIChwZ19hbGxvY2F0b3JfdHlwZSkKKwl7CisJCWNhc2UgUEdfQUxMT0Nf QVNFVDoKKwkJCSpteV9hc2V0X2FsbG9jYXRlZF9ieXRlcyArPSBwcm9jX2FsbG9jYXRlZF9ieXRl czsKKwkJCWJyZWFrOworCQljYXNlIFBHX0FMTE9DX0RTTToKKworCQkJLyoKKwkJCSAqIFNvbWUg ZHNtIGFsbG9jYXRpb25zIGxpdmUgYmV5b25kIHByb2Nlc3MgZXhpdC4gVGhlc2UgYXJlCisJCQkg KiBhY2NvdW50ZWQgZm9yIGluIGEgZ2xvYmFsIGNvdW50ZXIgaW4KKwkJCSAqIHBnc3RhdF9yZXNl dF9hbGxvY2F0ZWRfYnl0ZXNfc3RvcmFnZSBhdCBwcm9jZXNzIGV4aXQuCisJCQkgKi8KKwkJCSpt eV9kc21fYWxsb2NhdGVkX2J5dGVzICs9IHByb2NfYWxsb2NhdGVkX2J5dGVzOworCQkJYnJlYWs7 CisJCWNhc2UgUEdfQUxMT0NfR0VORVJBVElPTjoKKwkJCSpteV9nZW5lcmF0aW9uX2FsbG9jYXRl ZF9ieXRlcyArPSBwcm9jX2FsbG9jYXRlZF9ieXRlczsKKwkJCWJyZWFrOworCQljYXNlIFBHX0FM TE9DX1NMQUI6CisJCQkqbXlfc2xhYl9hbGxvY2F0ZWRfYnl0ZXMgKz0gcHJvY19hbGxvY2F0ZWRf Ynl0ZXM7CisJCQlicmVhazsKKwl9CisKKwlyZXR1cm47Cit9CisKKy8qIC0tLS0tLS0tLQorICog cGdzdGF0X2luaXRfYWxsb2NhdGVkX2J5dGVzKCkgLQorICoKKyAqIENhbGxlZCB0byBpbml0aWFs aXplIGFsbG9jYXRlZCBieXRlcyB2YXJpYWJsZXMgYWZ0ZXIgZm9yayBhbmQgdG8KKyAqIGF2b2lk IGRvdWJsZSBjb3VudGluZyBhbGxvY2F0aW9ucy4KKyAqIC0tLS0tLS0tLQorICovCitzdGF0aWMg aW5saW5lIHZvaWQKK3Bnc3RhdF9pbml0X2FsbG9jYXRlZF9ieXRlcyh2b2lkKQoreworCSpteV9h bGxvY2F0ZWRfYnl0ZXMgPSAwOworCSpteV9hc2V0X2FsbG9jYXRlZF9ieXRlcyA9IDA7CisJKm15 X2RzbV9hbGxvY2F0ZWRfYnl0ZXMgPSAwOworCSpteV9nZW5lcmF0aW9uX2FsbG9jYXRlZF9ieXRl cyA9IDA7CisJKm15X3NsYWJfYWxsb2NhdGVkX2J5dGVzID0gMDsKKworCXJldHVybjsKK30KIAog I2VuZGlmCQkJCQkJCS8qIEJBQ0tFTkRfU1RBVFVTX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9y dWxlcy5vdXQKaW5kZXggN2ZkODFlNmE3ZC4uZmY3NmFhOTlhMiAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9ydWxlcy5vdXQKQEAgLTE4NzMsNiArMTg3MywyNCBAQCBwZ19zdGF0X2RhdGFiYXNlX2Nv bmZsaWN0c3wgU0VMRUNUIG9pZCBBUyBkYXRpZCwKICAgICBwZ19zdGF0X2dldF9kYl9jb25mbGlj dF9zdGFydHVwX2RlYWRsb2NrKG9pZCkgQVMgY29uZmxfZGVhZGxvY2ssCiAgICAgcGdfc3RhdF9n ZXRfZGJfY29uZmxpY3RfbG9naWNhbHNsb3Qob2lkKSBBUyBjb25mbF9hY3RpdmVfbG9naWNhbHNs b3QKICAgIEZST00gcGdfZGF0YWJhc2UgZDsKK3BnX3N0YXRfZ2xvYmFsX21lbW9yeV9hbGxvY2F0 aW9ufCBXSVRIIHN1bXMgQVMgKAorICAgICAgICAgU0VMRUNUIHN1bShwZ19zdGF0X21lbW9yeV9h bGxvY2F0aW9uLmFzZXRfYWxsb2NhdGVkX2J5dGVzKSBBUyB0b3RhbF9hc2V0X2FsbG9jYXRlZF9i eXRlcywKKyAgICAgICAgICAgIHN1bShwZ19zdGF0X21lbW9yeV9hbGxvY2F0aW9uLmRzbV9hbGxv Y2F0ZWRfYnl0ZXMpIEFTIHRvdGFsX2RzbV9hbGxvY2F0ZWRfYnl0ZXMsCisgICAgICAgICAgICBz dW0ocGdfc3RhdF9tZW1vcnlfYWxsb2NhdGlvbi5nZW5lcmF0aW9uX2FsbG9jYXRlZF9ieXRlcykg QVMgdG90YWxfZ2VuZXJhdGlvbl9hbGxvY2F0ZWRfYnl0ZXMsCisgICAgICAgICAgICBzdW0ocGdf c3RhdF9tZW1vcnlfYWxsb2NhdGlvbi5zbGFiX2FsbG9jYXRlZF9ieXRlcykgQVMgdG90YWxfc2xh Yl9hbGxvY2F0ZWRfYnl0ZXMKKyAgICAgICAgICAgRlJPTSBwZ19zdGF0X21lbW9yeV9hbGxvY2F0 aW9uCisgICAgICAgICkKKyBTRUxFQ1Qgcy5kYXRpZCwKKyAgICBjdXJyZW50X3NldHRpbmcoJ3No YXJlZF9tZW1vcnlfc2l6ZSc6OnRleHQsIHRydWUpIEFTIHNoYXJlZF9tZW1vcnlfc2l6ZSwKKyAg ICAoY3VycmVudF9zZXR0aW5nKCdzaGFyZWRfbWVtb3J5X3NpemVfaW5faHVnZV9wYWdlcyc6OnRl eHQsIHRydWUpKTo6aW50ZWdlciBBUyBzaGFyZWRfbWVtb3J5X3NpemVfaW5faHVnZV9wYWdlcywK KyAgICBzLmdsb2JhbF9kc21fYWxsb2NhdGVkX2J5dGVzLAorICAgIHN1bXMudG90YWxfYXNldF9h bGxvY2F0ZWRfYnl0ZXMsCisgICAgc3Vtcy50b3RhbF9kc21fYWxsb2NhdGVkX2J5dGVzLAorICAg IHN1bXMudG90YWxfZ2VuZXJhdGlvbl9hbGxvY2F0ZWRfYnl0ZXMsCisgICAgc3Vtcy50b3RhbF9z bGFiX2FsbG9jYXRlZF9ieXRlcworICAgRlJPTSBzdW1zLAorICAgIChwZ19zdGF0X2dldF9nbG9i YWxfbWVtb3J5X2FsbG9jYXRpb24oKSBzKGRhdGlkLCBnbG9iYWxfZHNtX2FsbG9jYXRlZF9ieXRl cykKKyAgICAgTEVGVCBKT0lOIHBnX2RhdGFiYXNlIGQgT04gKChzLmRhdGlkID0gZC5vaWQpKSk7 CiBwZ19zdGF0X2dzc2FwaXwgU0VMRUNUIHBpZCwKICAgICBnc3NfYXV0aCBBUyBnc3NfYXV0aGVu dGljYXRlZCwKICAgICBnc3NfcHJpbmMgQVMgcHJpbmNpcGFsLApAQCAtMTg5OSw2ICsxOTE3LDE1 IEBAIHBnX3N0YXRfaW98IFNFTEVDVCBiYWNrZW5kX3R5cGUsCiAgICAgZnN5bmNfdGltZSwKICAg ICBzdGF0c19yZXNldAogICAgRlJPTSBwZ19zdGF0X2dldF9pbygpIGIoYmFja2VuZF90eXBlLCBv YmplY3QsIGNvbnRleHQsIHJlYWRzLCByZWFkX3RpbWUsIHdyaXRlcywgd3JpdGVfdGltZSwgd3Jp dGViYWNrcywgd3JpdGViYWNrX3RpbWUsIGV4dGVuZHMsIGV4dGVuZF90aW1lLCBvcF9ieXRlcywg aGl0cywgZXZpY3Rpb25zLCByZXVzZXMsIGZzeW5jcywgZnN5bmNfdGltZSwgc3RhdHNfcmVzZXQp OworcGdfc3RhdF9tZW1vcnlfYWxsb2NhdGlvbnwgU0VMRUNUIHMuZGF0aWQsCisgICAgcy5waWQs CisgICAgcy5hbGxvY2F0ZWRfYnl0ZXMsCisgICAgcy5hc2V0X2FsbG9jYXRlZF9ieXRlcywKKyAg ICBzLmRzbV9hbGxvY2F0ZWRfYnl0ZXMsCisgICAgcy5nZW5lcmF0aW9uX2FsbG9jYXRlZF9ieXRl cywKKyAgICBzLnNsYWJfYWxsb2NhdGVkX2J5dGVzCisgICBGUk9NIChwZ19zdGF0X2dldF9tZW1v cnlfYWxsb2NhdGlvbihOVUxMOjppbnRlZ2VyKSBzKGRhdGlkLCBwaWQsIGFsbG9jYXRlZF9ieXRl cywgYXNldF9hbGxvY2F0ZWRfYnl0ZXMsIGRzbV9hbGxvY2F0ZWRfYnl0ZXMsIGdlbmVyYXRpb25f YWxsb2NhdGVkX2J5dGVzLCBzbGFiX2FsbG9jYXRlZF9ieXRlcykKKyAgICAgTEVGVCBKT0lOIHBn X2RhdGFiYXNlIGQgT04gKChzLmRhdGlkID0gZC5vaWQpKSk7CiBwZ19zdGF0X3Byb2dyZXNzX2Fu YWx5emV8IFNFTEVDVCBzLnBpZCwKICAgICBzLmRhdGlkLAogICAgIGQuZGF0bmFtZSwKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3RhdHMub3V0IGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9zdGF0cy5vdXQKaW5kZXggOGU2MzM0MDc4Mi4uNzQ4YzMzN2VlNyAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdGF0cy5vdXQKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9zdGF0cy5vdXQKQEAgLTE1NzIsNCArMTU3Miw0MCBAQCBTRUxF Q1QgQ09VTlQoKikgRlJPTSBicmluX2hvdF8zIFdIRVJFIGEgPSAyOwogCiBEUk9QIFRBQkxFIGJy aW5faG90XzM7CiBTRVQgZW5hYmxlX3NlcXNjYW4gPSBvbjsKKy0tIGVuc3VyZSB0aGF0IGFsbG9j YXRlZF9ieXRlcyBleGlzdCBmb3IgYmFja2VuZHMKK1NFTEVDVAorICAgIGFsbG9jYXRlZF9ieXRl cyA+IDAgQVMgcmVzdWx0CitGUk9NCisgICAgcGdfc3RhdF9hY3Rpdml0eSBwcworICAgIEpPSU4g cGdfc3RhdF9tZW1vcnlfYWxsb2NhdGlvbiBwYSBPTiAocGEucGlkID0gcHMucGlkKQorV0hFUkUK KyAgICBiYWNrZW5kX3R5cGUgSU4gKCdjaGVja3BvaW50ZXInLCAnYmFja2dyb3VuZCB3cml0ZXIn LCAnd2Fsd3JpdGVyJywgJ2F1dG92YWN1dW0gbGF1bmNoZXInKTsKKyByZXN1bHQgCistLS0tLS0t LQorIHQKKyB0CisgdAorIHQKKyg0IHJvd3MpCisKKy0tIGVuc3VyZSB0aGF0IHBnX3N0YXRfZ2xv YmFsX21lbW9yeV9hbGxvY2F0aW9uIHZpZXcgZXhpc3RzCitTRUxFQ1QKKyAgICBkYXRpZCA+IDAs IHBnX3NpemVfYnl0ZXMoc2hhcmVkX21lbW9yeV9zaXplKSA+PSAwLCBzaGFyZWRfbWVtb3J5X3Np emVfaW5faHVnZV9wYWdlcyA+PSAtMSwgZ2xvYmFsX2RzbV9hbGxvY2F0ZWRfYnl0ZXMgPj0gMAor RlJPTQorICAgIHBnX3N0YXRfZ2xvYmFsX21lbW9yeV9hbGxvY2F0aW9uOworID9jb2x1bW4/IHwg P2NvbHVtbj8gfCA/Y29sdW1uPyB8ID9jb2x1bW4/IAorLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0t LS0tLS0tLS0rLS0tLS0tLS0tLQorIHQgICAgICAgIHwgdCAgICAgICAgfCB0ICAgICAgICB8IHQK KygxIHJvdykKKworLS0gZW5zdXJlIHRoYXQgcGdfc3RhdF9tZW1vcnlfYWxsb2NhdGlvbiB2aWV3 IGV4aXN0cworU0VMRUNUCisgICAgcGlkID4gMCwgYWxsb2NhdGVkX2J5dGVzID49IDAsIGFzZXRf YWxsb2NhdGVkX2J5dGVzID49IDAsIGRzbV9hbGxvY2F0ZWRfYnl0ZXMgPj0gMCwgZ2VuZXJhdGlv bl9hbGxvY2F0ZWRfYnl0ZXMgPj0gMCwgc2xhYl9hbGxvY2F0ZWRfYnl0ZXMgPj0gMAorRlJPTQor ICAgIHBnX3N0YXRfbWVtb3J5X2FsbG9jYXRpb24gbGltaXQgMTsKKyA/Y29sdW1uPyB8ID9jb2x1 bW4/IHwgP2NvbHVtbj8gfCA/Y29sdW1uPyB8ID9jb2x1bW4/IHwgP2NvbHVtbj8gCistLS0tLS0t LS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0t LQorIHQgICAgICAgIHwgdCAgICAgICAgfCB0ICAgICAgICB8IHQgICAgICAgIHwgdCAgICAgICAg fCB0CisoMSByb3cpCisKIC0tIEVuZCBvZiBTdGF0cyBUZXN0CmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL3NxbC9zdGF0cy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zdGF0cy5zcWwK aW5kZXggZmRkZjVhODI3Ny4uYTAxZjI1NDViYSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVz cy9zcWwvc3RhdHMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3N0YXRzLnNxbApAQCAt ODA1LDQgKzgwNSwyNCBAQCBEUk9QIFRBQkxFIGJyaW5faG90XzM7CiAKIFNFVCBlbmFibGVfc2Vx c2NhbiA9IG9uOwogCistLSBlbnN1cmUgdGhhdCBhbGxvY2F0ZWRfYnl0ZXMgZXhpc3QgZm9yIGJh Y2tlbmRzCitTRUxFQ1QKKyAgICBhbGxvY2F0ZWRfYnl0ZXMgPiAwIEFTIHJlc3VsdAorRlJPTQor ICAgIHBnX3N0YXRfYWN0aXZpdHkgcHMKKyAgICBKT0lOIHBnX3N0YXRfbWVtb3J5X2FsbG9jYXRp b24gcGEgT04gKHBhLnBpZCA9IHBzLnBpZCkKK1dIRVJFCisgICAgYmFja2VuZF90eXBlIElOICgn Y2hlY2twb2ludGVyJywgJ2JhY2tncm91bmQgd3JpdGVyJywgJ3dhbHdyaXRlcicsICdhdXRvdmFj dXVtIGxhdW5jaGVyJyk7CisKKy0tIGVuc3VyZSB0aGF0IHBnX3N0YXRfZ2xvYmFsX21lbW9yeV9h bGxvY2F0aW9uIHZpZXcgZXhpc3RzCitTRUxFQ1QKKyAgICBkYXRpZCA+IDAsIHBnX3NpemVfYnl0 ZXMoc2hhcmVkX21lbW9yeV9zaXplKSA+PSAwLCBzaGFyZWRfbWVtb3J5X3NpemVfaW5faHVnZV9w YWdlcyA+PSAtMSwgZ2xvYmFsX2RzbV9hbGxvY2F0ZWRfYnl0ZXMgPj0gMAorRlJPTQorICAgIHBn X3N0YXRfZ2xvYmFsX21lbW9yeV9hbGxvY2F0aW9uOworCistLSBlbnN1cmUgdGhhdCBwZ19zdGF0 X21lbW9yeV9hbGxvY2F0aW9uIHZpZXcgZXhpc3RzCitTRUxFQ1QKKyAgICBwaWQgPiAwLCBhbGxv Y2F0ZWRfYnl0ZXMgPj0gMCwgYXNldF9hbGxvY2F0ZWRfYnl0ZXMgPj0gMCwgZHNtX2FsbG9jYXRl ZF9ieXRlcyA+PSAwLCBnZW5lcmF0aW9uX2FsbG9jYXRlZF9ieXRlcyA+PSAwLCBzbGFiX2FsbG9j YXRlZF9ieXRlcyA+PSAwCitGUk9NCisgICAgcGdfc3RhdF9tZW1vcnlfYWxsb2NhdGlvbiBsaW1p dCAxOwogLS0gRW5kIG9mIFN0YXRzIFRlc3QKLS0gCjIuMjUuMQoK --=-Yy+CVgCBbbbWOL4C12ja Content-Disposition: attachment; filename*0=0002-Add-the-ability-to-limit-the-amount-of-memory-that-c.pat; filename*1=ch Content-Type: text/x-patch; name="0002-Add-the-ability-to-limit-the-amount-of-memory-that-c.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBmNWE3YTJjY2ZkOTc1Y2IyOWI0N2FmNGZmZjU2Mzk0NzA4NWUxNzQ4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSZWlkIFRob21wc29uIDxqcmVpZHRob21wc29uQG5jLnJyLmNv bT4KRGF0ZTogU2F0LCA0IEp1biAyMDIyIDIyOjIzOjU5IC0wNDAwClN1YmplY3Q6IFtQQVRDSCAy LzJdIEFkZCB0aGUgYWJpbGl0eSB0byBsaW1pdCB0aGUgYW1vdW50IG9mIG1lbW9yeSB0aGF0IGNh biBiZQogYWxsb2NhdGVkIHRvIGJhY2tlbmRzLgoKVGhpcyBidWlsZHMgb24gdGhlIHdvcmsgdGhh dCBhZGRzIGJhY2tlbmQgbWVtb3J5IGFsbG9jYXRlZCB0cmFja2luZy4KCkFkZCBHVUMgdmFyaWFi bGUgbWF4X3RvdGFsX2JhY2tlbmRfbWVtb3J5LgoKU3BlY2lmaWVzIGEgbGltaXQgdG8gdGhlIGFt b3VudCBvZiBtZW1vcnkgKGluIE1CKSB0aGF0IG1heSBiZSBhbGxvY2F0ZWQgdG8KYmFja2VuZHMg aW4gdG90YWwgKGkuZS4gdGhpcyBpcyBub3QgYSBwZXIgdXNlciBvciBwZXIgYmFja2VuZCBsaW1p dCkuIElmIHVuc2V0LApvciBzZXQgdG8gMCBpdCBpcyBkaXNhYmxlZC4gSXQgaXMgaW50ZW5kZWQg YXMgYSByZXNvdXJjZSB0byBoZWxwIGF2b2lkIHRoZSBPT00Ka2lsbGVyIG9uIExJTlVYIGFuZCBt YW5hZ2UgcmVzb3VyY2VzIGluIGdlbmVyYWwuIEEgYmFja2VuZCByZXF1ZXN0IHRoYXQgd291bGQK ZXhoYXVzdCBtYXhfdG90YWxfYmFja2VuZF9tZW1vcnkgbWVtb3J5IHdpbGwgYmUgZGVuaWVkIHdp dGggYW4gb3V0IG9mIG1lbW9yeQplcnJvciBjYXVzaW5nIHRoYXQgYmFja2VuZCdzIGN1cnJlbnQg cXVlcnkvdHJhbnNhY3Rpb24gdG8gZmFpbC4gIEZ1cnRoZXIKcmVxdWVzdHMgd2lsbCBub3QgYmUg YWxsb2NhdGVkIHVudGlsIGRyb3BwaW5nIGJlbG93IHRoZSBsaW1pdC4gS2VlcCB0aGlzIGluCm1p bmQgd2hlbiBzZXR0aW5nIHRoaXMgdmFsdWUuIER1ZSB0byB0aGUgZHluYW1pYyBuYXR1cmUgb2Yg bWVtb3J5IGFsbG9jYXRpb25zLAp0aGlzIGxpbWl0IGlzIG5vdCBleGFjdC4gVGhpcyBsaW1pdCBk b2VzIG5vdCBhZmZlY3QgYXV4aWxpYXJ5IGJhY2tlbmQKcHJvY2Vzc2VzLiBCYWNrZW5kIG1lbW9y eSBhbGxvY2F0aW9ucyBhcmUgZGlzcGxheWVkIGluIHRoZQpwZ19zdGF0X21lbW9yeV9hbGxvY2F0 aW9uIGFuZCBwZ19zdGF0X2dsb2JhbF9tZW1vcnlfYWxsb2NhdGlvbiB2aWV3cy4KLS0tCiBkb2Mv c3JjL3NnbWwvY29uZmlnLnNnbWwgICAgICAgICAgICAgICAgICAgICAgfCAgMzAgKysrKwogZG9j L3NyYy9zZ21sL21vbml0b3Jpbmcuc2dtbCAgICAgICAgICAgICAgICAgIHwgIDM4ICsrKystCiBz cmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwgICAgICAgICAgfCAgIDIgKwogc3Jj L2JhY2tlbmQvcG9ydC9zeXN2X3NobWVtLmMgICAgICAgICAgICAgICAgIHwgICA5ICsrCiBzcmMv YmFja2VuZC9wb3N0bWFzdGVyL3Bvc3RtYXN0ZXIuYyAgICAgICAgICAgfCAgIDUgKwogc3JjL2Jh Y2tlbmQvc3RvcmFnZS9pcGMvZHNtX2ltcGwuYyAgICAgICAgICAgIHwgIDE4ICsrKwogc3JjL2Jh Y2tlbmQvc3RvcmFnZS9sbWdyL3Byb2MuYyAgICAgICAgICAgICAgIHwgIDQ1ICsrKysrKwogc3Jj L2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvYmFja2VuZF9zdGF0dXMuYyAgIHwgMTQ3ICsrKysrKysr KysrKysrKysrKwogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMgICAgICAgICAg IHwgIDE2ICstCiBzcmMvYmFja2VuZC91dGlscy9oYXNoL2R5bmFoYXNoLmMgICAgICAgICAgICAg fCAgIDMgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2luaXQvbWlzY2luaXQuYyAgICAgICAgICAgICB8 ICAgOCArCiBzcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYyAgICAgICAgICAgfCAg MTEgKysKIHNyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZSB8ICAg MyArCiBzcmMvYmFja2VuZC91dGlscy9tbWdyL2FzZXQuYyAgICAgICAgICAgICAgICAgfCAgMzMg KysrKwogc3JjL2JhY2tlbmQvdXRpbHMvbW1nci9nZW5lcmF0aW9uLmMgICAgICAgICAgIHwgIDE2 ICsrCiBzcmMvYmFja2VuZC91dGlscy9tbWdyL3NsYWIuYyAgICAgICAgICAgICAgICAgfCAgMTUg Ky0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgICAgICAgICAgICAgICB8ICAgNiAr LQogc3JjL2luY2x1ZGUvc3RvcmFnZS9wcm9jLmggICAgICAgICAgICAgICAgICAgIHwgICA3ICsK IHNyYy9pbmNsdWRlL3V0aWxzL2JhY2tlbmRfc3RhdHVzLmggICAgICAgICAgICB8IDEwMiArKysr KysrKysrKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0ICAgICAgICAgICB8 ICAgNCArLQogMjAgZmlsZXMgY2hhbmdlZCwgNDk4IGluc2VydGlvbnMoKyksIDIwIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbCBiL2RvYy9zcmMvc2dt bC9jb25maWcuc2dtbAppbmRleCA1ZGE3NGIzYzQwLi4zOTc2NjFkNGIyIDEwMDY0NAotLS0gYS9k b2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCkBA IC0yMTgwLDYgKzIxODAsMzYgQEAgaW5jbHVkZV9kaXIgJ2NvbmYuZCcKICAgICAgIDwvbGlzdGl0 ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5PgogCisgICAgIDx2YXJsaXN0ZW50cnkgaWQ9Imd1Yy1t YXgtdG90YWwtYmFja2VuZC1tZW1vcnkiIHhyZWZsYWJlbD0ibWF4X3RvdGFsX2JhY2tlbmRfbWVt b3J5Ij4KKyAgICAgIDx0ZXJtPjx2YXJuYW1lPm1heF90b3RhbF9iYWNrZW5kX21lbW9yeTwvdmFy bmFtZT4gKDx0eXBlPmludGVnZXI8L3R5cGU+KQorICAgICAgPGluZGV4dGVybT4KKyAgICAgICA8 cHJpbWFyeT48dmFybmFtZT5tYXhfdG90YWxfYmFja2VuZF9tZW1vcnk8L3Zhcm5hbWU+IGNvbmZp Z3VyYXRpb24gcGFyYW1ldGVyPC9wcmltYXJ5PgorICAgICAgPC9pbmRleHRlcm0+CisgICAgICA8 L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIFNwZWNpZmll cyBhIGxpbWl0IHRvIHRoZSBhbW91bnQgb2YgbWVtb3J5IChNQikgdGhhdCBtYXkgYmUgYWxsb2Nh dGVkIHRvCisgICAgICAgIGJhY2tlbmRzIGluIHRvdGFsIChpLmUuIHRoaXMgaXMgbm90IGEgcGVy IHVzZXIgb3IgcGVyIGJhY2tlbmQgbGltaXQpLgorICAgICAgICBJZiB1bnNldCwgb3Igc2V0IHRv IDAgaXQgaXMgZGlzYWJsZWQuICBBdCBkYXRhYnNlIHN0YXJ0dXAKKyAgICAgICAgbWF4X3RvdGFs X2JhY2tlbmRfbWVtb3J5IGlzIHJlZHVjZWQgYnkgc2hhcmVkX21lbW9yeV9zaXplX21iCisgICAg ICAgIChpbmNsdWRlcyBzaGFyZWQgYnVmZmVycyBhbmQgb3RoZXIgbWVtb3J5IHJlcXVpcmVkIGZv ciBpbml0aWFsaXphdGlvbikuCisgICAgICAgIEVhY2ggYmFja2VuZCBwcm9jZXNzIGlzIGludGlh bGl6ZWQgd2l0aCBhIDFNQiBsb2NhbCBhbGxvd2FuY2Ugd2hpY2gKKyAgICAgICAgYWxzbyByZWR1 Y2VzIHRvdGFsX2JrZW5kX21lbV9ieXRlc19hdmFpbGFibGUuIEtlZXAgdGhpcyBpbiBtaW5kIHdo ZW4KKyAgICAgICAgc2V0dGluZyB0aGlzIHZhbHVlLiBBIGJhY2tlbmQgcmVxdWVzdCB0aGF0IHdv dWxkIGV4aGF1c3QgdGhlIGxpbWl0IHdpbGwKKyAgICAgICAgYmUgZGVuaWVkIHdpdGggYW4gb3V0 IG9mIG1lbW9yeSBlcnJvciBjYXVzaW5nIHRoYXQgYmFja2VuZCdzIGN1cnJlbnQKKyAgICAgICAg cXVlcnkvdHJhbnNhY3Rpb24gdG8gZmFpbC4gRnVydGhlciByZXF1ZXN0cyB3aWxsIG5vdCBiZSBh bGxvY2F0ZWQgdW50aWwKKyAgICAgICAgZHJvcHBpbmcgYmVsb3cgdGhlIGxpbWl0LiAgVGhpcyBs aW1pdCBkb2VzIG5vdCBhZmZlY3QgYXV4aWxpYXJ5IGJhY2tlbmQKKyAgICAgICAgcHJvY2Vzc2Vz CisgICAgICAgIDx4cmVmIGxpbmtlbmQ9Imdsb3NzYXJ5LWF1eGlsaWFyeS1wcm9jIi8+IG9yIHRo ZSBwb3N0bWFzdGVyIHByb2Nlc3MuCisgICAgICAgIEJhY2tlbmQgbWVtb3J5IGFsbG9jYXRpb25z ICg8dmFybmFtZT5hbGxvY2F0ZWRfYnl0ZXM8L3Zhcm5hbWU+KSBhcmUKKyAgICAgICAgZGlzcGxh eWVkIGluIHRoZQorICAgICAgICA8bGluayBsaW5rZW5kPSJtb25pdG9yaW5nLXBnLXN0YXQtbWVt b3J5LWFsbG9jYXRpb24tdmlldyI+PHN0cnVjdG5hbWU+cGdfc3RhdF9tZW1vcnlfYWxsb2NhdGlv bjwvc3RydWN0bmFtZT48L2xpbms+CisgICAgICAgIHZpZXcuICBEdWUgdG8gdGhlIGR5bmFtaWMg bmF0dXJlIG9mIG1lbW9yeSBhbGxvY2F0aW9ucywgdGhpcyBsaW1pdCBpcworICAgICAgICBub3Qg ZXhhY3QuCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0 ZW50cnk+CisKICAgICAgPC92YXJpYWJsZWxpc3Q+CiAgICAgIDwvc2VjdDI+CiAKZGlmZiAtLWdp dCBhL2RvYy9zcmMvc2dtbC9tb25pdG9yaW5nLnNnbWwgYi9kb2Mvc3JjL3NnbWwvbW9uaXRvcmlu Zy5zZ21sCmluZGV4IGNmYzIyMWZiMmUuLmFhNTNlMGJlM2UgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMv c2dtbC9tb25pdG9yaW5nLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL21vbml0b3Jpbmcuc2dtbApA QCAtNTgxNywxMCArNTgxNyw3IEBAIFNFTEVDVCBwaWQsIHdhaXRfZXZlbnRfdHlwZSwgd2FpdF9l dmVudCBGUk9NIHBnX3N0YXRfYWN0aXZpdHkgV0hFUkUgd2FpdF9ldmVudCBpCiAgICAgICA8L3Bh cmE+CiAgICAgIDxwYXJhPgogICAgICAgTWVtb3J5IGN1cnJlbnRseSBhbGxvY2F0ZWQgdG8gdGhp cyBiYWNrZW5kIGluIGJ5dGVzLiBUaGlzIGlzIHRoZSBiYWxhbmNlCi0gICAgICBvZiBieXRlcyBh bGxvY2F0ZWQgYW5kIGZyZWVkIGJ5IHRoaXMgYmFja2VuZC4gRHluYW1pYyBzaGFyZWQgbWVtb3J5 Ci0gICAgICBhbGxvY2F0aW9ucyBhcmUgaW5jbHVkZWQgb25seSBpbiB0aGUgdmFsdWUgZGlzcGxh eWVkIGZvciB0aGUgYmFja2VuZCB0aGF0Ci0gICAgICBjcmVhdGVkIHRoZW0sIHRoZXkgYXJlIG5v dCBpbmNsdWRlZCBpbiB0aGUgdmFsdWUgZm9yIGJhY2tlbmRzIHRoYXQgYXJlCi0gICAgICBhdHRh Y2hlZCB0byB0aGVtIHRvIGF2b2lkIGRvdWJsZSBjb3VudGluZy4KKyAgICAgIG9mIGJ5dGVzIGFs bG9jYXRlZCBhbmQgZnJlZWQgYnkgdGhpcyBiYWNrZW5kLgogICAgICA8L3BhcmE+PC9lbnRyeT4K ICAgICAgPC9yb3c+CiAKQEAgLTU5MzcsNiArNTkzNCwzOSBAQCBTRUxFQ1QgcGlkLCB3YWl0X2V2 ZW50X3R5cGUsIHdhaXRfZXZlbnQgRlJPTSBwZ19zdGF0X2FjdGl2aXR5IFdIRVJFIHdhaXRfZXZl bnQgaQogICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAgPC9yb3c+CiAKKyAgICAgPHJvdz4KKyAg ICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5f ZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPm1heF90b3RhbF9iYWNrZW5kX21lbW9y eV9ieXRlczwvc3RydWN0ZmllbGQ+IDx0eXBlPmJpZ2ludDwvdHlwZT4KKyAgICAgIDwvcGFyYT4K KyAgICAgPHBhcmE+CisgICAgICBSZXBvcnRzIHRoZSB1c2VyIGRlZmluZWQgYmFja2VuZCBtYXhp bXVtIGFsbG93ZWQgc2hhcmVkIG1lbW9yeSBpbiBieXRlcy4KKyAgICAgIDAgaWYgZGlzYWJsZWQg b3Igbm90IHNldC4gU2VlCisgICAgICA8eHJlZiBsaW5rZW5kPSJndWMtbWF4LXRvdGFsLWJhY2tl bmQtbWVtb3J5Ii8+LgorICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAg PHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xl PSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnRvdGFsX2JrZW5kX21l bV9ieXRlc19hdmFpbGFibGU8L3N0cnVjdGZpZWxkPiA8dHlwZT5iaWdpbnQ8L3R5cGU+CisgICAg ICA8L3BhcmE+CisgICAgIDxwYXJhPgorICAgICAgVHJhY2tzIG1heF90b3RhbF9iYWNrZW5kX21l bW9yeSAoaW4gYnl0ZXMpIGF2YWlsYWJsZSBmb3IgYWxsb2NhdGlvbi4gQXQKKyAgICAgIGRhdGFi YXNlIHN0YXJ0dXAsIHRvdGFsX2JrZW5kX21lbV9ieXRlc19hdmFpbGFibGUgaXMgcmVkdWNlZCBi eSB0aGUKKyAgICAgIGJ5dGUgZXF1aXZhbGVudCBvZiBzaGFyZWRfbWVtb3J5X3NpemVfbWIuIEVh Y2ggYmFja2VuZCBwcm9jZXNzIGlzCisgICAgICBpbnRpYWxpemVkIHdpdGggYSAxTUIgbG9jYWwg YWxsb3dhbmNlIHdoaWNoIGFsc28gcmVkdWNlcworICAgICAgdG90YWxfYmtlbmRfbWVtX2J5dGVz X2F2YWlsYWJsZS4gQSBwcm9jZXNzJ3MgYWxsb2NhdGlvbiByZXF1ZXN0cyByZWR1Y2UKKyAgICAg IGl0J3MgbG9jYWwgYWxsb3dhbmNlLiBJZiBhIHByb2Nlc3MncyBhbGxvY2F0aW9uIHJlcXVlc3Qg ZXhjZWVkcyBpdCdzCisgICAgICByZW1haW5pbmcgYWxsb3dhbmNlLCBhbiBhdHRlbXB0IGlzIG1h ZGUgdG8gcmVmaWxsIHRoZSBsb2NhbCBhbGxvd2FuY2UKKyAgICAgIGZyb20gdG90YWxfYmtlbmRf bWVtX2J5dGVzX2F2YWlsYWJsZS4gSWYgdGhlIHJlZmlsbCByZXF1ZXN0IGZhaWxzLCB0aGVuCisg ICAgICB0aGUgcmVxdWVzdGluZyBwcm9jZXNzIHdpbGwgZmFpbCB3aXRoIGFuIG91dCBvZiBtZW1v cnkgZXJyb3IgcmVzdWx0aW5nCisgICAgICBpbiB0aGUgY2FuY2VsbGF0aW9uIG9mIHRoYXQgcHJv Y2VzcydzIGFjdGl2ZSBxdWVyeS90cmFuc2FjdGlvbi4gIFRoZQorICAgICAgZGVmYXVsdCByZWZp bGwgYWxsb2NhdGlvbiBxdWFudGl0eSBpcyAxTUIuICBJZiBhIHJlcXVlc3QgaXMgZ3JlYXRlciB0 aGFuCisgICAgICAxTUIsIGFuIGF0dGVtcHQgd2lsbCBiZSBtYWRlIHRvIGFsbG9jYXRlIHRoZSBm dWxsIGFtb3VudC4gSWYKKyAgICAgIG1heF90b3RhbF9iYWNrZW5kX21lbW9yeSBpcyBkaXNhYmxl ZCwgdGhpcyB3aWxsIGJlIC0xLgorICAgICAgPHhyZWYgbGlua2VuZD0iZ3VjLW1heC10b3RhbC1i YWNrZW5kLW1lbW9yeSIvPi4KKyAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCiAg ICAgIDxyb3c+CiAgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEg cm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgogICAgICAgIDxzdHJ1Y3RmaWVsZD5nbG9iYWxfZHNt X2FsbG9jYXRlZF9ieXRlczwvc3RydWN0ZmllbGQ+IDx0eXBlPmJpZ2ludDwvdHlwZT4KZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbCBiL3NyYy9iYWNrZW5k L2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbAppbmRleCBjYzgyMTljNjY1Li4wODMyMDI3NzI3IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKKysrIGIvc3Jj L2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCkBAIC0xMzY4LDYgKzEzNjgsOCBAQCBT RUxFQ1QKICAgICAgICAgUy5kYXRpZCBBUyBkYXRpZCwKICAgICAgICAgY3VycmVudF9zZXR0aW5n KCdzaGFyZWRfbWVtb3J5X3NpemUnLCB0cnVlKSBhcyBzaGFyZWRfbWVtb3J5X3NpemUsCiAgICAg ICAgIChjdXJyZW50X3NldHRpbmcoJ3NoYXJlZF9tZW1vcnlfc2l6ZV9pbl9odWdlX3BhZ2VzJywg dHJ1ZSkpOjppbnRlZ2VyIGFzIHNoYXJlZF9tZW1vcnlfc2l6ZV9pbl9odWdlX3BhZ2VzLAorICAg ICAgICBwZ19zaXplX2J5dGVzKGN1cnJlbnRfc2V0dGluZygnbWF4X3RvdGFsX2JhY2tlbmRfbWVt b3J5JywgdHJ1ZSkpIGFzIG1heF90b3RhbF9iYWNrZW5kX21lbW9yeV9ieXRlcywKKyAgICAgICAg Uy50b3RhbF9ia2VuZF9tZW1fYnl0ZXNfYXZhaWxhYmxlLAogICAgICAgICBTLmdsb2JhbF9kc21f YWxsb2NhdGVkX2J5dGVzLAogICAgICAgICBzdW1zLnRvdGFsX2FzZXRfYWxsb2NhdGVkX2J5dGVz LAogICAgICAgICBzdW1zLnRvdGFsX2RzbV9hbGxvY2F0ZWRfYnl0ZXMsCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9wb3J0L3N5c3Zfc2htZW0uYyBiL3NyYy9iYWNrZW5kL3BvcnQvc3lzdl9zaG1l bS5jCmluZGV4IGVhYmEyNDRiYzkuLjQ2M2JmMmU5MGYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3BvcnQvc3lzdl9zaG1lbS5jCisrKyBiL3NyYy9iYWNrZW5kL3BvcnQvc3lzdl9zaG1lbS5jCkBA IC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAic3RvcmFnZS9mZC5oIgogI2luY2x1ZGUgInN0b3Jh Z2UvaXBjLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9wZ19zaG1lbS5oIgorI2luY2x1ZGUgInV0aWxz L2JhY2tlbmRfc3RhdHVzLmgiCiAjaW5jbHVkZSAidXRpbHMvZ3VjX2hvb2tzLmgiCiAjaW5jbHVk ZSAidXRpbHMvcGlkZmlsZS5oIgogCkBAIC05MDMsNiArOTA0LDE0IEBAIFBHU2hhcmVkTWVtb3J5 UmVBdHRhY2godm9pZCkKIAlkc21fc2V0X2NvbnRyb2xfaGFuZGxlKGhkci0+ZHNtX2NvbnRyb2wp OwogCiAJVXNlZFNobWVtU2VnQWRkciA9IGhkcjsJCS8qIHByb2JhYmx5IHJlZHVuZGFudCAqLwor CisJLyoKKwkgKiBJbml0IGFsbG9jYXRlZCBieXRlcyB0byBhdm9pZCBkb3VibGUgY291bnRpbmcg cGFyZW50IGFsbG9jYXRpb24gZm9yCisJICogZm9yay9leGVjIHByb2Nlc3Nlcy4gRm9ya2VkIHBy b2Nlc3NlcyBwZXJmb3JtIHRoaXMgYWN0aW9uIGluCisJICogSW5pdFBvc3RtYXN0ZXJDaGlsZC4g Rm9yIEVYRUNfQkFDS0VORCBwcm9jZXNzZXMgd2UgaGF2ZSB0byB3YWl0IGZvcgorCSAqIHNoYXJl ZCBtZW1vcnkgdG8gYmUgcmVhdHRhY2hlZC4KKwkgKi8KKwlwZ3N0YXRfaW5pdF9hbGxvY2F0ZWRf Ynl0ZXMoKTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcG9z dG1hc3Rlci5jIGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wb3N0bWFzdGVyLmMKaW5kZXggNGM0 OTM5M2ZjNS4uMDZhNzczYzhiYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9w b3N0bWFzdGVyLmMKKysrIGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wb3N0bWFzdGVyLmMKQEAg LTU0MCw2ICs1NDAsNyBAQCB0eXBlZGVmIHN0cnVjdAogI2VuZGlmCiAJY2hhcgkJbXlfZXhlY19w YXRoW01BWFBHUEFUSF07CiAJY2hhcgkJcGtnbGliX3BhdGhbTUFYUEdQQVRIXTsKKwlpbnQJCQlt YXhfdG90YWxfYmtlbmRfbWVtOwogfSBCYWNrZW5kUGFyYW1ldGVyczsKIAogc3RhdGljIHZvaWQg cmVhZF9iYWNrZW5kX3ZhcmlhYmxlcyhjaGFyICppZCwgUG9ydCAqcG9ydCk7CkBAIC02MTIyLDYg KzYxMjMsOCBAQCBzYXZlX2JhY2tlbmRfdmFyaWFibGVzKEJhY2tlbmRQYXJhbWV0ZXJzICpwYXJh bSwgUG9ydCAqcG9ydCwKIAogCXN0cmxjcHkocGFyYW0tPnBrZ2xpYl9wYXRoLCBwa2dsaWJfcGF0 aCwgTUFYUEdQQVRIKTsKIAorCXBhcmFtLT5tYXhfdG90YWxfYmtlbmRfbWVtID0gbWF4X3RvdGFs X2JrZW5kX21lbTsKKwogCXJldHVybiB0cnVlOwogfQogCkBAIC02MzUyLDYgKzYzNTUsOCBAQCBy ZXN0b3JlX2JhY2tlbmRfdmFyaWFibGVzKEJhY2tlbmRQYXJhbWV0ZXJzICpwYXJhbSwgUG9ydCAq cG9ydCkKIAogCXN0cmxjcHkocGtnbGliX3BhdGgsIHBhcmFtLT5wa2dsaWJfcGF0aCwgTUFYUEdQ QVRIKTsKIAorCW1heF90b3RhbF9ia2VuZF9tZW0gPSBwYXJhbS0+bWF4X3RvdGFsX2JrZW5kX21l bTsKKwogCS8qCiAJICogV2UgbmVlZCB0byByZXN0b3JlIGZkLmMncyBjb3VudHMgb2YgZXh0ZXJu YWxseS1vcGVuZWQgRkRzOyB0byBhdm9pZAogCSAqIGNvbmZ1c2lvbiwgYmUgc3VyZSB0byBkbyB0 aGlzIGFmdGVyIHJlc3RvcmluZyBtYXhfc2FmZV9mZHMuICAoTm90ZToKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3N0b3JhZ2UvaXBjL2RzbV9pbXBsLmMgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2lw Yy9kc21faW1wbC5jCmluZGV4IGY0M2JhZDQ0MzkuLjQxZmZlNDhhYTMgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3N0b3JhZ2UvaXBjL2RzbV9pbXBsLmMKKysrIGIvc3JjL2JhY2tlbmQvc3RvcmFn ZS9pcGMvZHNtX2ltcGwuYwpAQCAtMjU0LDYgKzI1NCwxNiBAQCBkc21faW1wbF9wb3NpeChkc21f b3Agb3AsIGRzbV9oYW5kbGUgaGFuZGxlLCBTaXplIHJlcXVlc3Rfc2l6ZSwKIAkJcmV0dXJuIHRy dWU7CiAJfQogCisJLyogRG8gbm90IGV4Y2VlZCBtYXhpbXVtIGFsbG93ZWQgbWVtb3J5IGFsbG9j YXRpb24gKi8KKwlpZiAob3AgPT0gRFNNX09QX0NSRUFURSAmJiBleGNlZWRzX21heF90b3RhbF9i a2VuZF9tZW0ocmVxdWVzdF9zaXplKSkKKwl7CisJCWVyZXBvcnQoZWxldmVsLAorCQkJCShlcnJj b2RlX2Zvcl9keW5hbWljX3NoYXJlZF9tZW1vcnkoKSwKKwkJCQkgZXJybXNnKCJvdXQgb2YgbWVt b3J5IGZvciBzZWdtZW50IFwiJXNcIiAtIGV4Y2VlZHMgbWF4X3RvdGFsX2JhY2tlbmRfbWVtb3J5 OiAlbSIsCisJCQkJCQluYW1lKSkpOworCQlyZXR1cm4gZmFsc2U7CisJfQorCiAJLyoKIAkgKiBD cmVhdGUgbmV3IHNlZ21lbnQgb3Igb3BlbiBhbiBleGlzdGluZyBvbmUgZm9yIGF0dGFjaC4KIAkg KgpAQCAtNTIzLDYgKzUzMywxMCBAQCBkc21faW1wbF9zeXN2KGRzbV9vcCBvcCwgZHNtX2hhbmRs ZSBoYW5kbGUsIFNpemUgcmVxdWVzdF9zaXplLAogCQlpbnQJCQlmbGFncyA9IElQQ1Byb3RlY3Rp b247CiAJCXNpemVfdAkJc2Vnc2l6ZTsKIAorCQkvKiBEbyBub3QgZXhjZWVkIG1heGltdW0gYWxs b3dlZCBtZW1vcnkgYWxsb2NhdGlvbiAqLworCQlpZiAob3AgPT0gRFNNX09QX0NSRUFURSAmJiBl eGNlZWRzX21heF90b3RhbF9ia2VuZF9tZW0ocmVxdWVzdF9zaXplKSkKKwkJCXJldHVybiBmYWxz ZTsKKwogCQkvKgogCQkgKiBBbGxvY2F0ZSB0aGUgbWVtb3J5IEJFRk9SRSBhY3F1aXJpbmcgdGhl IHJlc291cmNlLCBzbyB0aGF0IHdlIGRvbid0CiAJCSAqIGxlYWsgdGhlIHJlc291cmNlIGlmIG1l bW9yeSBhbGxvY2F0aW9uIGZhaWxzLgpAQCAtNzE3LDYgKzczMSwxMCBAQCBkc21faW1wbF93aW5k b3dzKGRzbV9vcCBvcCwgZHNtX2hhbmRsZSBoYW5kbGUsIFNpemUgcmVxdWVzdF9zaXplLAogCQly ZXR1cm4gdHJ1ZTsKIAl9CiAKKwkvKiBEbyBub3QgZXhjZWVkIG1heGltdW0gYWxsb3dlZCBtZW1v cnkgYWxsb2NhdGlvbiAqLworCWlmIChvcCA9PSBEU01fT1BfQ1JFQVRFICYmIGV4Y2VlZHNfbWF4 X3RvdGFsX2JrZW5kX21lbShyZXF1ZXN0X3NpemUpKQorCQlyZXR1cm4gZmFsc2U7CisKIAkvKiBD cmVhdGUgbmV3IHNlZ21lbnQgb3Igb3BlbiBhbiBleGlzdGluZyBvbmUgZm9yIGF0dGFjaC4gKi8K IAlpZiAob3AgPT0gRFNNX09QX0NSRUFURSkKIAl7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9z dG9yYWdlL2xtZ3IvcHJvYy5jIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9sbWdyL3Byb2MuYwppbmRl eCBkNzk4YzA1MTgwLi44NDkzY2ExZGJmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9zdG9yYWdl L2xtZ3IvcHJvYy5jCisrKyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9wcm9jLmMKQEAgLTUx LDYgKzUxLDcgQEAKICNpbmNsdWRlICJzdG9yYWdlL3Byb2NzaWduYWwuaCIKICNpbmNsdWRlICJz dG9yYWdlL3NwaW4uaCIKICNpbmNsdWRlICJzdG9yYWdlL3N0YW5kYnkuaCIKKyNpbmNsdWRlICJ1 dGlscy9ndWMuaCIKICNpbmNsdWRlICJ1dGlscy90aW1lb3V0LmgiCiAjaW5jbHVkZSAidXRpbHMv dGltZXN0YW1wLmgiCiAKQEAgLTE4Miw2ICsxODMsNTAgQEAgSW5pdFByb2NHbG9iYWwodm9pZCkK IAlwZ19hdG9taWNfaW5pdF91MzIoJlByb2NHbG9iYWwtPmNsb2dHcm91cEZpcnN0LCBJTlZBTElE X1BHUFJPQ05PKTsKIAlwZ19hdG9taWNfaW5pdF91NjQoJlByb2NHbG9iYWwtPmdsb2JhbF9kc21f YWxsb2NhdGlvbiwgMCk7CiAKKwkvKiBTZXR1cCBiYWNrZW5kIG1lbW9yeSBsaW1pdGluZyBpZiBj b25maWd1cmVkICovCisJaWYgKG1heF90b3RhbF9ia2VuZF9tZW0gPiAwKQorCXsKKwkJLyoKKwkJ ICogQ29udmVydCBtYXhfdG90YWxfYmtlbmRfbWVtIHRvIGJ5dGVzLCBhY2NvdW50IGZvcgorCQkg KiBzaGFyZWRfbWVtb3J5X3NpemUsIGFuZCBpbml0aWFsaXplIHRvdGFsX2JrZW5kX21lbV9ieXRl cy4KKwkJICovCisJCWludAkJCXJlc3VsdCA9IDA7CisKKwkJLyogR2V0IGludGVnZXIgdmFsdWUg b2Ygc2hhcmVkX21lbW9yeV9zaXplICovCisJCWlmIChwYXJzZV9pbnQoR2V0Q29uZmlnT3B0aW9u KCJzaGFyZWRfbWVtb3J5X3NpemUiLCB0cnVlLCBmYWxzZSksICZyZXN1bHQsIDAsIE5VTEwpKQor CQl7CisJCQkvKgorCQkJICogRXJyb3Igb24gc3RhcnR1cCBpZiBiYWNrZW5kIG1lbW9yeSBsaW1p dCBpcyBsZXNzIHRoYW4gc2hhcmVkCisJCQkgKiBtZW1vcnkgc2l6ZS4gV2FybiBvbiBzdGFydHVw IGlmIGJhY2tlbmQgbWVtb3J5IGF2YWlsYWJsZSBpcworCQkJICogbGVzcyB0aGFuIGFyYml0cmFy aWx5IHBpY2tlZCB2YWx1ZSBvZiAxMDBNQi4KKwkJCSAqLworCisJCQlpZiAobWF4X3RvdGFsX2Jr ZW5kX21lbSAtIHJlc3VsdCA8PSAwKQorCQkJeworCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQll cnJtc2coImNvbmZpZ3VyZWQgbWF4X3RvdGFsX2JhY2tlbmRfbWVtb3J5ICVkTUIgaXMgPD0gc2hh cmVkX21lbW9yeV9zaXplICVkTUIiLAorCQkJCQkJCSAgIG1heF90b3RhbF9ia2VuZF9tZW0sIHJl c3VsdCksCisJCQkJCQllcnJoaW50KCJEaXNhYmxlIG9yIGluY3JlYXNlIHRoZSBjb25maWd1cmF0 aW9uIHBhcmFtZXRlciBcIm1heF90b3RhbF9iYWNrZW5kX21lbW9yeVwiLiIpKTsKKwkJCX0KKwkJ CWVsc2UgaWYgKG1heF90b3RhbF9ia2VuZF9tZW0gLSByZXN1bHQgPD0gMTAwKQorCQkJeworCQkJ CWVyZXBvcnQoV0FSTklORywKKwkJCQkJCWVycm1zZygibWF4X3RvdGFsX2JhY2tlbmRfbWVtb3J5 ICVkTUIgLSBzaGFyZWRfbWVtb3J5X3NpemUgJWRNQiBpcyA8PSAxMDBNQiIsCisJCQkJCQkJICAg bWF4X3RvdGFsX2JrZW5kX21lbSwgcmVzdWx0KSwKKwkJCQkJCWVycmhpbnQoIkNvbnNpZGVyIGlu Y3JlYXNpbmcgdGhlIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyIFwibWF4X3RvdGFsX2JhY2tlbmRf bWVtb3J5XCIuIikpOworCQkJfQorCisJCQkvKgorCQkJICogQWNjb3VudCBmb3Igc2hhcmVkIG1l bW9yeSBzaXplIGFuZCBpbml0aWFsaXplCisJCQkgKiB0b3RhbF9ia2VuZF9tZW1fYnl0ZXMuCisJ CQkgKi8KKwkJCXBnX2F0b21pY19pbml0X3U2NCgmUHJvY0dsb2JhbC0+dG90YWxfYmtlbmRfbWVt X2J5dGVzLAorCQkJCQkJCSAgICh1aW50NjQpIG1heF90b3RhbF9ia2VuZF9tZW0gKiAxMDI0ICog MTAyNCAtICh1aW50NjQpIHJlc3VsdCAqIDEwMjQgKiAxMDI0KTsKKwkJfQorCQllbHNlCisJCQll cmVwb3J0KEVSUk9SLCBlcnJtc2coIm1heF90b3RhbF9iYWNrZW5kX21lbW9yeSBpbml0aWFsaXph dGlvbiBpcyB1bmFibGUgdG8gcGFyc2Ugc2hhcmVkX21lbW9yeV9zaXplIikpOworCX0KKwogCS8q CiAJICogQ3JlYXRlIGFuZCBpbml0aWFsaXplIGFsbCB0aGUgUEdQUk9DIHN0cnVjdHVyZXMgd2Un bGwgbmVlZC4gIFRoZXJlIGFyZQogCSAqIGZpdmUgc2VwYXJhdGUgY29uc3VtZXJzOiAoMSkgbm9y bWFsIGJhY2tlbmRzLCAoMikgYXV0b3ZhY3V1bSB3b3JrZXJzCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC91dGlscy9hY3Rpdml0eS9iYWNrZW5kX3N0YXR1cy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMv YWN0aXZpdHkvYmFja2VuZF9zdGF0dXMuYwppbmRleCA1MGIzNmJhNWY3Li5jYWQ1MGIyYTA2IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9iYWNrZW5kX3N0YXR1cy5jCisr KyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L2JhY2tlbmRfc3RhdHVzLmMKQEAgLTQ1LDYg KzQ1LDEyIEBACiBib29sCQlwZ3N0YXRfdHJhY2tfYWN0aXZpdGllcyA9IGZhbHNlOwogaW50CQkJ cGdzdGF0X3RyYWNrX2FjdGl2aXR5X3F1ZXJ5X3NpemUgPSAxMDI0OwogCisvKgorICogTWF4IGJh Y2tlbmQgbWVtb3J5IGFsbG9jYXRpb24gYWxsb3dlZCAoTUIpLiAwID0gZGlzYWJsZWQuCisgKiBD ZW50cmFsaXplZCBidWNrZXQgUHJvY0dsb2JhbC0+bWF4X3RvdGFsX2JrZW5kX21lbSBpcyBpbml0 aWFsaXplZAorICogYXMgYSBieXRlIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgdmFsdWUgaW4gSW5p dFByb2NHbG9iYWwoKS4KKyAqLworaW50CQkJbWF4X3RvdGFsX2JrZW5kX21lbSA9IDA7CiAKIC8q IGV4cG9zZWQgc28gdGhhdCBiYWNrZW5kX3Byb2dyZXNzLmMgY2FuIGFjY2VzcyBpdCAqLwogUGdC YWNrZW5kU3RhdHVzICpNeUJFRW50cnkgPSBOVUxMOwpAQCAtNjgsNiArNzQsMzEgQEAgdWludDY0 CSAgICpteV9nZW5lcmF0aW9uX2FsbG9jYXRlZF9ieXRlcyA9ICZsb2NhbF9teV9nZW5lcmF0aW9u X2FsbG9jYXRlZF9ieXRlczsKIHVpbnQ2NAkJbG9jYWxfbXlfc2xhYl9hbGxvY2F0ZWRfYnl0ZXMg PSAwOwogdWludDY0CSAgICpteV9zbGFiX2FsbG9jYXRlZF9ieXRlcyA9ICZsb2NhbF9teV9zbGFi X2FsbG9jYXRlZF9ieXRlczsKIAorLyoKKyAqIERlZmluZSBpbml0aWFsIGFsbG9jYXRpb24gYWxs b3dhbmNlIGZvciBhIGJhY2tlbmQuCisgKgorICogTk9URTogaW5pdGlhbF9hbGxvY2F0aW9uX2Fs bG93YW5jZSAmJiBhbGxvY2F0aW9uX2FsbG93YW5jZV9yZWZpbGxfcXR5CisgKiBtYXkgYmUgY2Fu ZGlkYXRlcyBmb3IgZnV0dXJlIEdVQyB2YXJpYWJsZXMuIEFyYml0cmFyeSAxTUIgc2VsZWN0ZWQg aW5pdGlhbGx5LgorICovCit1aW50NjQJCWluaXRpYWxfYWxsb2NhdGlvbl9hbGxvd2FuY2UgPSAx MDI0ICogMTAyNDsKK3VpbnQ2NAkJYWxsb2NhdGlvbl9hbGxvd2FuY2VfcmVmaWxsX3F0eSA9IDEw MjQgKiAxMDI0OworCisvKgorICogTG9jYWwgY291bnRlciB0byBtYW5hZ2Ugc2hhcmVkIG1lbW9y eSBhbGxvY2F0aW9ucy4gQXQgYmFja2VuZCBzdGFydHVwLCBzZXQgdG8KKyAqIGluaXRpYWxfYWxs b2NhdGlvbl9hbGxvd2FuY2UgdmlhIHBnc3RhdF9pbml0X2FsbG9jYXRlZF9ieXRlcygpLiBEZWNy ZWFzZSBhcworICogbWVtb3J5IGlzIG1hbGxvYydkLiBXaGVuIGV4aGF1c3RlZCwgYXRvbWljYWxs eSByZWZpbGwgaWYgYXZhaWxhYmxlIGZyb20KKyAqIFByb2NHbG9iYWwtPm1heF90b3RhbF9ia2Vu ZF9tZW0gdmlhIGV4Y2VlZHNfbWF4X3RvdGFsX2JrZW5kX21lbSgpLgorICovCit1aW50NjQJCWFs bG9jYXRpb25fYWxsb3dhbmNlID0gMDsKKworLyoKKyAqIExvY2FsIGNvdW50ZXIgb2YgZnJlZSdk IHNoYXJlZCBtZW1vcnkuIFJldHVybiB0byBnbG9iYWwKKyAqIG1heF90b3RhbF9ia2VuZF9tZW0g d2hlbiByZXR1cm4gdGhyZXNob2xkIGlzIG1ldC4gQXJiaXRyYXJ5IDFNQiBieXRlcworICogc2Vs ZWN0ZWQgaW5pdGlhbGx5LgorICovCit1aW50NjQJCWFsbG9jYXRpb25fcmV0dXJuID0gMDsKK3Vp bnQ2NAkJYWxsb2NhdGlvbl9yZXR1cm5fdGhyZXNob2xkID0gMTAyNCAqIDEwMjQ7CisKIHN0YXRp YyBQZ0JhY2tlbmRTdGF0dXMgKkJhY2tlbmRTdGF0dXNBcnJheSA9IE5VTEw7CiBzdGF0aWMgY2hh ciAqQmFja2VuZEFwcG5hbWVCdWZmZXIgPSBOVUxMOwogc3RhdGljIGNoYXIgKkJhY2tlbmRDbGll bnRIb3N0bmFtZUJ1ZmZlciA9IE5VTEw7CkBAIC0xMjcyLDYgKzEzMDMsOCBAQCBwZ3N0YXRfc2V0 X2FsbG9jYXRlZF9ieXRlc19zdG9yYWdlKHVpbnQ2NCAqYWxsb2NhdGVkX2J5dGVzLAogCiAJbXlf c2xhYl9hbGxvY2F0ZWRfYnl0ZXMgPSBzbGFiX2FsbG9jYXRlZF9ieXRlczsKIAkqc2xhYl9hbGxv Y2F0ZWRfYnl0ZXMgPSBsb2NhbF9teV9zbGFiX2FsbG9jYXRlZF9ieXRlczsKKworCXJldHVybjsK IH0KIAogLyoKQEAgLTEyOTUsNiArMTMyOCwyMyBAQCBwZ3N0YXRfcmVzZXRfYWxsb2NhdGVkX2J5 dGVzX3N0b3JhZ2Uodm9pZCkKIAkJCQkJCQkJKm15X2RzbV9hbGxvY2F0ZWRfYnl0ZXMpOwogCX0K IAorCS8qCisJICogV2hlbiBsaW1pdGluZyBtYXhpbXVtIGJhY2tlbmQgbWVtb3J5LCByZXR1cm4g dGhpcyBiYWNrZW5kJ3MgbWVtb3J5CisJICogYWxsb2NhdGlvbnMgdG8gZ2xvYmFsLgorCSAqLwor CWlmIChtYXhfdG90YWxfYmtlbmRfbWVtKQorCXsKKwkJdm9sYXRpbGUgUFJPQ19IRFIgKnByb2Nn bG9iYWwgPSBQcm9jR2xvYmFsOworCisJCXBnX2F0b21pY19hZGRfZmV0Y2hfdTY0KCZwcm9jZ2xv YmFsLT50b3RhbF9ia2VuZF9tZW1fYnl0ZXMsCisJCQkJCQkJCSpteV9hbGxvY2F0ZWRfYnl0ZXMg KyBhbGxvY2F0aW9uX2FsbG93YW5jZSArCisJCQkJCQkJCWFsbG9jYXRpb25fcmV0dXJuKTsKKwor CQkvKiBSZXNldCBtZW1vcnkgYWxsb2NhdGlvbiB2YXJpYWJsZXMgKi8KKwkJYWxsb2NhdGlvbl9h bGxvd2FuY2UgPSAwOworCQlhbGxvY2F0aW9uX3JldHVybiA9IDA7CisJfQorCiAJLyogUmVzZXQg bWVtb3J5IGFsbG9jYXRpb24gdmFyaWFibGVzICovCiAJKm15X2FsbG9jYXRlZF9ieXRlcyA9IGxv Y2FsX215X2FsbG9jYXRlZF9ieXRlcyA9IDA7CiAJKm15X2FzZXRfYWxsb2NhdGVkX2J5dGVzID0g bG9jYWxfbXlfYXNldF9hbGxvY2F0ZWRfYnl0ZXMgPSAwOwpAQCAtMTMwOCw0ICsxMzU4LDEwMSBA QCBwZ3N0YXRfcmVzZXRfYWxsb2NhdGVkX2J5dGVzX3N0b3JhZ2Uodm9pZCkKIAlteV9kc21fYWxs b2NhdGVkX2J5dGVzID0gJmxvY2FsX215X2RzbV9hbGxvY2F0ZWRfYnl0ZXM7CiAJbXlfZ2VuZXJh dGlvbl9hbGxvY2F0ZWRfYnl0ZXMgPSAmbG9jYWxfbXlfZ2VuZXJhdGlvbl9hbGxvY2F0ZWRfYnl0 ZXM7CiAJbXlfc2xhYl9hbGxvY2F0ZWRfYnl0ZXMgPSAmbG9jYWxfbXlfc2xhYl9hbGxvY2F0ZWRf Ynl0ZXM7CisKKwlyZXR1cm47Cit9CisKKy8qCisgKiBEZXRlcm1pbmUgaWYgYWxsb2NhdGlvbiBy ZXF1ZXN0IHdpbGwgZXhjZWVkIG1heCBiYWNrZW5kIG1lbW9yeSBhbGxvd2VkLgorICogRG8gbm90 IGFwcGx5IHRvIGF1eGlsaWFyeSBwcm9jZXNzZXMuCisgKiBSZWZpbGwgYWxsb2NhdGlvbiByZXF1 ZXN0IGJ1Y2tldCB3aGVuIG5lZWRlZC9wb3NzaWJsZS4KKyAqLworYm9vbAorZXhjZWVkc19tYXhf dG90YWxfYmtlbmRfbWVtKHVpbnQ2NCBhbGxvY2F0aW9uX3JlcXVlc3QpCit7CisJYm9vbAkJcmVz dWx0ID0gZmFsc2U7CisKKwkvKgorCSAqIFdoZW4gbGltaXRpbmcgbWF4aW11bSBiYWNrZW5kIG1l bW9yeSwgYXR0ZW1wdCB0byByZWZpbGwgYWxsb2NhdGlvbgorCSAqIHJlcXVlc3QgYnVja2V0IGlm IG5lZWRlZC4KKwkgKi8KKwlpZiAobWF4X3RvdGFsX2JrZW5kX21lbSAmJiBhbGxvY2F0aW9uX3Jl cXVlc3QgPiBhbGxvY2F0aW9uX2FsbG93YW5jZSAmJgorCQlQcm9jR2xvYmFsICE9IE5VTEwpCisJ eworCQl2b2xhdGlsZSBQUk9DX0hEUiAqcHJvY2dsb2JhbCA9IFByb2NHbG9iYWw7CisJCXVpbnQ2 NAkJYXZhaWxhYmxlX21heF90b3RhbF9ia2VuZF9tZW0gPSAwOworCQlib29sCQlzdHMgPSBmYWxz ZTsKKworCQkvKgorCQkgKiBJZiBhbGxvY2F0aW9uIHJlcXVlc3QgaXMgbGFyZ2VyIHRoYW4gbWVt b3J5IHJlZmlsbCBxdWFudGl0eSB0aGVuCisJCSAqIGF0dGVtcHQgdG8gaW5jcmVhc2UgYWxsb2Nh dGlvbiBhbGxvd2FuY2Ugd2l0aCByZXF1ZXN0ZWQgYW1vdW50LAorCQkgKiBvdGhlcndpc2UgZmFs bCB0aHJvdWdoLiBJZiB0aGlzIHJlZmlsbCBmYWlscyB3ZSBkbyBub3QgaGF2ZSBlbm91Z2gKKwkJ ICogbWVtb3J5IHRvIG1lZXQgdGhlIHJlcXVlc3QuCisJCSAqLworCQlpZiAoYWxsb2NhdGlvbl9y ZXF1ZXN0ID49IGFsbG9jYXRpb25fYWxsb3dhbmNlX3JlZmlsbF9xdHkpCisJCXsKKwkJCXdoaWxl ICgoYXZhaWxhYmxlX21heF90b3RhbF9ia2VuZF9tZW0gPSBwZ19hdG9taWNfcmVhZF91NjQoJnBy b2NnbG9iYWwtPnRvdGFsX2JrZW5kX21lbV9ieXRlcykpID49IGFsbG9jYXRpb25fcmVxdWVzdCkK KwkJCXsKKwkJCQlpZiAoKHJlc3VsdCA9IHBnX2F0b21pY19jb21wYXJlX2V4Y2hhbmdlX3U2NCgm cHJvY2dsb2JhbC0+dG90YWxfYmtlbmRfbWVtX2J5dGVzLAorCQkJCQkJCQkJCQkJCQkJICZhdmFp bGFibGVfbWF4X3RvdGFsX2JrZW5kX21lbSwKKwkJCQkJCQkJCQkJCQkJCSBhdmFpbGFibGVfbWF4 X3RvdGFsX2JrZW5kX21lbSAtIGFsbG9jYXRpb25fcmVxdWVzdCkpKQorCQkJCXsKKwkJCQkJYWxs b2NhdGlvbl9hbGxvd2FuY2UgPSBhbGxvY2F0aW9uX2FsbG93YW5jZSArIGFsbG9jYXRpb25fcmVx dWVzdDsKKwkJCQkJYnJlYWs7CisJCQkJfQorCQkJfQorCisJCQkvKgorCQkJICogRXhjbHVkZSBh dXhpbGlhcnkgYW5kIFBvc3RtYXN0ZXIgcHJvY2Vzc2VzIGZyb20gdGhlIGNoZWNrLgorCQkJICog UmV0dXJuIGZhbHNlLiBXaGlsZSB3ZSB3YW50IHRvIGV4Y2x1ZGUgdGhlbSBmcm9tIHRoZSBjaGVj aywgd2UKKwkJCSAqIGRvIG5vdCB3YW50IHRvIGV4Y2x1ZGUgdGhlbSBmcm9tIHRoZSBhYm92ZSBh bGxvY2F0aW9uIGhhbmRsaW5nLgorCQkJICovCisJCQlpZiAoTXlBdXhQcm9jVHlwZSAhPSBOb3RB bkF1eFByb2Nlc3MgfHwgTXlQcm9jUGlkID09IFBvc3RtYXN0ZXJQaWQpCisJCQkJcmV0dXJuIGZh bHNlOworCisJCQkvKgorCQkJICogSWYgdGhlIGF0b21pYyBleGNoYW5nZSBmYWlscyAocmVzdWx0 ID09IGZhbHNlKSwgd2UgZG8gbm90IGhhdmUKKwkJCSAqIGVub3VnaCByZXNlcnZlIG1lbW9yeSB0 byBtZWV0IHRoZSByZXF1ZXN0LiBOZWdhdGUgcmVzdWx0IHRvCisJCQkgKiByZXR1cm4gdGhlIHBy b3BlciB2YWx1ZS4KKwkJCSAqLworCisJCQlyZXR1cm4gIXJlc3VsdDsKKwkJfQorCisJCS8qCisJ CSAqIEF0dGVtcHQgdG8gaW5jcmVhc2UgYWxsb2NhdGlvbiBhbGxvd2FuY2UgYnkgbWVtb3J5IHJl ZmlsbCBxdWFudGl0eS4KKwkJICogSWYgYXZhaWxhYmxlIG1lbW9yeSBpcy9iZWNvbWVzIGxlc3Mg dGhhbiBtZW1vcnkgcmVmaWxsIHF1YW50aXR5LAorCQkgKiBmYWxsIHRocm91Z2ggdG8gYXR0ZW1w dCB0byBhbGxvY2F0ZSByZW1haW5pbmcgYXZhaWxhYmxlIG1lbW9yeS4KKwkJICovCisJCXdoaWxl ICgoYXZhaWxhYmxlX21heF90b3RhbF9ia2VuZF9tZW0gPSBwZ19hdG9taWNfcmVhZF91NjQoJnBy b2NnbG9iYWwtPnRvdGFsX2JrZW5kX21lbV9ieXRlcykpID49IGFsbG9jYXRpb25fYWxsb3dhbmNl X3JlZmlsbF9xdHkpCisJCXsKKwkJCWlmICgoc3RzID0gcGdfYXRvbWljX2NvbXBhcmVfZXhjaGFu Z2VfdTY0KCZwcm9jZ2xvYmFsLT50b3RhbF9ia2VuZF9tZW1fYnl0ZXMsCisJCQkJCQkJCQkJCQkJ ICAmYXZhaWxhYmxlX21heF90b3RhbF9ia2VuZF9tZW0sCisJCQkJCQkJCQkJCQkJICBhdmFpbGFi bGVfbWF4X3RvdGFsX2JrZW5kX21lbSAtIGFsbG9jYXRpb25fYWxsb3dhbmNlX3JlZmlsbF9xdHkp KSkKKwkJCXsKKwkJCQlhbGxvY2F0aW9uX2FsbG93YW5jZSA9IGFsbG9jYXRpb25fYWxsb3dhbmNl ICsgYWxsb2NhdGlvbl9hbGxvd2FuY2VfcmVmaWxsX3F0eTsKKwkJCQlicmVhazsKKwkJCX0KKwkJ fQorCisJCS8qIERvIG5vdCBhdHRlbXB0IHRvIGluY3JlYXNlIGFsbG9jYXRpb24gaWYgYXZhaWxh YmxlIG1lbW9yeSBpcyBiZWxvdworCQkgKiBhbGxvY2F0aW9uX2FsbG93YW5jZV9yZWZpbGxfcXR5 IC4KKwkJICovCisKKwkJLyoKKwkJICogSWYgcmVmaWxsIGlzIG5vdCBzdWNjZXNzZnVsLCB3ZSBy ZXR1cm4gdHJ1ZSwgbWVtb3J5IGxpbWl0IGV4Y2VlZGVkCisJCSAqLworCQlpZiAoIXN0cykKKwkJ CXJlc3VsdCA9IHRydWU7CisJfQorCisJLyoKKwkgKiBFeGNsdWRlIGF1eGlsaWFyeSBhbmQgcG9z dG1hc3RlciBwcm9jZXNzZXMgZnJvbSB0aGUgY2hlY2suIFJldHVybiBmYWxzZS4KKwkgKiBXaGls ZSB3ZSB3YW50IHRvIGV4Y2x1ZGUgdGhlbSBmcm9tIHRoZSBjaGVjaywgd2UgZG8gbm90IHdhbnQg dG8gZXhjbHVkZQorCSAqIHRoZW0gZnJvbSB0aGUgYWJvdmUgYWxsb2NhdGlvbiBoYW5kbGluZy4K KwkgKi8KKwlpZiAoTXlBdXhQcm9jVHlwZSAhPSBOb3RBbkF1eFByb2Nlc3MgfHwgTXlQcm9jUGlk ID09IFBvc3RtYXN0ZXJQaWQpCisJCXJlc3VsdCA9IGZhbHNlOworCisJcmV0dXJuIHJlc3VsdDsK IH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jIGIvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMKaW5kZXggMzVmMmQyYmZmZS4uNGJjZGZj OTFiZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMKKysr IGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMKQEAgLTIxMjMsNyArMjEyMyw3 IEBAIHBnX3N0YXRfZ2V0X21lbW9yeV9hbGxvY2F0aW9uKFBHX0ZVTkNUSU9OX0FSR1MpCiBEYXR1 bQogcGdfc3RhdF9nZXRfZ2xvYmFsX21lbW9yeV9hbGxvY2F0aW9uKFBHX0ZVTkNUSU9OX0FSR1Mp CiB7Ci0jZGVmaW5lIFBHX1NUQVRfR0VUX0dMT0JBTF9NRU1PUllfQUxMT0NBVElPTl9DT0xTCTIK KyNkZWZpbmUgUEdfU1RBVF9HRVRfR0xPQkFMX01FTU9SWV9BTExPQ0FUSU9OX0NPTFMJMwogCVR1 cGxlRGVzYwl0dXBkZXNjOwogCURhdHVtCQl2YWx1ZXNbUEdfU1RBVF9HRVRfR0xPQkFMX01FTU9S WV9BTExPQ0FUSU9OX0NPTFNdID0gezB9OwogCWJvb2wJCW51bGxzW1BHX1NUQVRfR0VUX0dMT0JB TF9NRU1PUllfQUxMT0NBVElPTl9DT0xTXSA9IHswfTsKQEAgLTIxMzMsMTUgKzIxMzMsMjMgQEAg cGdfc3RhdF9nZXRfZ2xvYmFsX21lbW9yeV9hbGxvY2F0aW9uKFBHX0ZVTkNUSU9OX0FSR1MpCiAJ dHVwZGVzYyA9IENyZWF0ZVRlbXBsYXRlVHVwbGVEZXNjKFBHX1NUQVRfR0VUX0dMT0JBTF9NRU1P UllfQUxMT0NBVElPTl9DT0xTKTsKIAlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJO dW1iZXIpIDEsICJkYXRpZCIsCiAJCQkJCSAgIE9JRE9JRCwgLTEsIDApOwotCVR1cGxlRGVzY0lu aXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgMiwgImdsb2JhbF9kc21fYWxsb2NhdGVkX2J5 dGVzIiwKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpIDIsICJ0b3Rh bF9ia2VuZF9tZW1fYnl0ZXNfYXZhaWxhYmxlIiwKKwkJCQkJICAgSU5UOE9JRCwgLTEsIDApOwor CVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgMywgImdsb2JhbF9kc21f YWxsb2NhdGVkX2J5dGVzIiwKIAkJCQkJICAgSU5UOE9JRCwgLTEsIDApOwogCUJsZXNzVHVwbGVE ZXNjKHR1cGRlc2MpOwogCiAJLyogZGF0aWQgKi8KIAl2YWx1ZXNbMF0gPSBPYmplY3RJZEdldERh dHVtKE15RGF0YWJhc2VJZCk7CiAKLQkvKiBnZXQgZ2xvYmFsX2RzbV9hbGxvY2F0ZWRfYnl0ZXMg Ki8KLQl2YWx1ZXNbMV0gPSBJbnQ2NEdldERhdHVtKHBnX2F0b21pY19yZWFkX3U2NCgmcHJvY2ds b2JhbC0+Z2xvYmFsX2RzbV9hbGxvY2F0aW9uKSk7CisJLyogR2V0IHRvdGFsX2JrZW5kX21lbV9i eXRlcyAtIHJldHVybiAtMSBpZiBkaXNhYmxlZCAqLworCWlmIChtYXhfdG90YWxfYmtlbmRfbWVt ID09IDApCisJCXZhbHVlc1sxXSA9IEludDY0R2V0RGF0dW0oLTEpOworCWVsc2UKKwkJdmFsdWVz WzFdID0gSW50NjRHZXREYXR1bShwZ19hdG9taWNfcmVhZF91NjQoJnByb2NnbG9iYWwtPnRvdGFs X2JrZW5kX21lbV9ieXRlcykpOworCisJLyogR2V0IGdsb2JhbF9kc21fYWxsb2NhdGVkX2J5dGVz ICovCisJdmFsdWVzWzJdID0gSW50NjRHZXREYXR1bShwZ19hdG9taWNfcmVhZF91NjQoJnByb2Nn bG9iYWwtPmdsb2JhbF9kc21fYWxsb2NhdGlvbikpOwogCiAJLyogUmV0dXJucyB0aGUgcmVjb3Jk IGFzIERhdHVtICovCiAJUEdfUkVUVVJOX0RBVFVNKEhlYXBUdXBsZUdldERhdHVtKGhlYXBfZm9y bV90dXBsZSh0dXBkZXNjLCB2YWx1ZXMsIG51bGxzKSkpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvdXRpbHMvaGFzaC9keW5haGFzaC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvaGFzaC9keW5haGFz aC5jCmluZGV4IDAxMmQ0YTBiMWYuLmNkNjhlNTI2NWEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3V0aWxzL2hhc2gvZHluYWhhc2guYworKysgYi9zcmMvYmFja2VuZC91dGlscy9oYXNoL2R5bmFo YXNoLmMKQEAgLTEwNCw3ICsxMDQsNiBAQAogI2luY2x1ZGUgInV0aWxzL2R5bmFoYXNoLmgiCiAj aW5jbHVkZSAidXRpbHMvbWVtdXRpbHMuaCIKIAotCiAvKgogICogQ29uc3RhbnRzCiAgKgpAQCAt MzU5LDcgKzM1OCw2IEBAIGhhc2hfY3JlYXRlKGNvbnN0IGNoYXIgKnRhYm5hbWUsIGxvbmcgbmVs ZW0sIGNvbnN0IEhBU0hDVEwgKmluZm8sIGludCBmbGFncykKIAlBc3NlcnQoZmxhZ3MgJiBIQVNI X0VMRU0pOwogCUFzc2VydChpbmZvLT5rZXlzaXplID4gMCk7CiAJQXNzZXJ0KGluZm8tPmVudHJ5 c2l6ZSA+PSBpbmZvLT5rZXlzaXplKTsKLQogCS8qCiAJICogRm9yIHNoYXJlZCBoYXNoIHRhYmxl cywgd2UgaGF2ZSBhIGxvY2FsIGhhc2ggaGVhZGVyIChIVEFCIHN0cnVjdCkgdGhhdAogCSAqIHdl IGFsbG9jYXRlIGluIFRvcE1lbW9yeUNvbnRleHQ7IGFsbCBlbHNlIGlzIGluIHNoYXJlZCBtZW1v cnkuCkBAIC0zNzcsNiArMzc1LDcgQEAgaGFzaF9jcmVhdGUoY29uc3QgY2hhciAqdGFibmFtZSwg bG9uZyBuZWxlbSwgY29uc3QgSEFTSENUTCAqaW5mbywgaW50IGZsYWdzKQogCX0KIAllbHNlCiAJ eworCQkvKiBTZXQgdXAgdG8gYWxsb2NhdGUgdGhlIGhhc2ggaGVhZGVyICovCiAJCS8qIENyZWF0 ZSB0aGUgaGFzaCB0YWJsZSdzIHByaXZhdGUgbWVtb3J5IGNvbnRleHQgKi8KIAkJaWYgKGZsYWdz ICYgSEFTSF9DT05URVhUKQogCQkJQ3VycmVudER5bmFIYXNoQ3h0ID0gaW5mby0+aGN4dDsKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2luaXQvbWlzY2luaXQuYyBiL3NyYy9iYWNrZW5k L3V0aWxzL2luaXQvbWlzY2luaXQuYwppbmRleCA3YjhlZWI3ZGJiLi5hN2RmODAxZjc3IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9pbml0L21pc2Npbml0LmMKKysrIGIvc3JjL2JhY2tl bmQvdXRpbHMvaW5pdC9taXNjaW5pdC5jCkBAIC0xNzIsOCArMTcyLDE2IEBAIEluaXRQb3N0bWFz dGVyQ2hpbGQodm9pZCkKIAkJCQkgZXJybXNnX2ludGVybmFsKCJjb3VsZCBub3Qgc2V0IHBvc3Rt YXN0ZXIgZGVhdGggbW9uaXRvcmluZyBwaXBlIHRvIEZEX0NMT0VYRUMgbW9kZTogJW0iKSkpOwog I2VuZGlmCiAKKwkvKgorCSAqIEluaXQgcGdzdGF0IGFsbG9jYXRlZCBieXRlcyBjb3VudGVycyBo ZXJlIGZvciBmb3JrZWQgYmFja2VuZHMuCisJICogRm9yay9leGVjIGJhY2tlbmRzIGhhdmUgbm90 IHlldCByZWF0dGFjaGVkIHRvIHNoYXJlZCBtZW1vcnkgYXQgdGhpcworCSAqIHBvaW50LiBUaGV5 IHdpbGwgaW5pdCBwZ3N0YXQgYWxsb2NhdGVkIGJ5dGVzIGNvdW50ZXJzIGluCisJICogUEdTaGFy ZWRNZW1vcnlSZUF0dGFjaC4KKwkgKi8KKyNpZm5kZWYgRVhFQ19CQUNLRU5ECiAJLyogSW5pdCBh bGxvY2F0ZWQgYnl0ZXMgdG8gYXZvaWQgZG91YmxlIGNvdW50aW5nIHBhcmVudCBhbGxvY2F0aW9u ICovCiAJcGdzdGF0X2luaXRfYWxsb2NhdGVkX2J5dGVzKCk7CisjZW5kaWYKIH0KIAogLyoKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jIGIvc3JjL2JhY2tl bmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKaW5kZXggNjhhZWNhZDY2Zi4uZWFjZDFhNjA0MyAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKKysrIGIvc3Jj L2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKQEAgLTM1MTAsNiArMzUxMCwxNyBAQCBz dHJ1Y3QgY29uZmlnX2ludCBDb25maWd1cmVOYW1lc0ludFtdID0KIAkJTlVMTCwgTlVMTCwgTlVM TAogCX0sCiAKKwl7CisJCXsibWF4X3RvdGFsX2JhY2tlbmRfbWVtb3J5IiwgUEdDX1NVX0JBQ0tF TkQsIFJFU09VUkNFU19NRU0sCisJCQlnZXR0ZXh0X25vb3AoIlJlc3RyaWN0IHRvdGFsIGJhY2tl bmQgbWVtb3J5IGFsbG9jYXRpb25zIHRvIHRoaXMgbWF4LiIpLAorCQkJZ2V0dGV4dF9ub29wKCIw IHR1cm5zIHRoaXMgZmVhdHVyZSBvZmYuIiksCisJCQlHVUNfVU5JVF9NQgorCQl9LAorCQkmbWF4 X3RvdGFsX2JrZW5kX21lbSwKKwkJMCwgMCwgSU5UX01BWCwKKwkJTlVMTCwgTlVMTCwgTlVMTAor CX0sCisKIAkvKiBFbmQtb2YtbGlzdCBtYXJrZXIgKi8KIAl7CiAJCXtOVUxMLCAwLCAwLCBOVUxM LCBOVUxMfSwgTlVMTCwgMCwgMCwgMCwgTlVMTCwgTlVMTCwgTlVMTApkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlIGIvc3JjL2JhY2tlbmQv dXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCmluZGV4IGIwOTBlYzUyNDUuLjU0NjYy MzRkNjQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25m LnNhbXBsZQorKysgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1w bGUKQEAgLTE2MSw2ICsxNjEsOSBAQAogI3ZhY3V1bV9idWZmZXJfdXNhZ2VfbGltaXQgPSAyNTZr QgkjIHNpemUgb2YgdmFjdXVtIGFuZCBhbmFseXplIGJ1ZmZlciBhY2Nlc3Mgc3RyYXRlZ3kgcmlu Zy4KIAkJCQkJIyAwIHRvIGRpc2FibGUgdmFjdXVtIGJ1ZmZlciBhY2Nlc3Mgc3RyYXRlZ3kKIAkJ CQkJIyByYW5nZSAxMjhrQiB0byAxNkdCCisjbWF4X3RvdGFsX2JhY2tlbmRfbWVtb3J5ID0gME1C CQkjIFJlc3RyaWN0IHRvdGFsIGJhY2tlbmQgbWVtb3J5IGFsbG9jYXRpb25zCisJCQkJCQkJCQkj IHRvIHRoaXMgbWF4IChpbiBNQikuIDAgdHVybnMgdGhpcyBmZWF0dXJlCisJCQkJCQkJCQkjIG9m Zi4KIAogIyAtIERpc2sgLQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9tbWdyL2Fz ZXQuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL21tZ3IvYXNldC5jCmluZGV4IDQxNDY4MzFkNzUuLmEz ODkxYTYwN2IgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21tZ3IvYXNldC5jCisrKyBi L3NyYy9iYWNrZW5kL3V0aWxzL21tZ3IvYXNldC5jCkBAIC00MzIsNiArNDMyLDE4IEBAIEFsbG9j U2V0Q29udGV4dENyZWF0ZUludGVybmFsKE1lbW9yeUNvbnRleHQgcGFyZW50LAogCWVsc2UKIAkJ Zmlyc3RCbG9ja1NpemUgPSBNYXgoZmlyc3RCbG9ja1NpemUsIGluaXRCbG9ja1NpemUpOwogCisJ LyogRG8gbm90IGV4Y2VlZCBtYXhpbXVtIGFsbG93ZWQgbWVtb3J5IGFsbG9jYXRpb24gKi8KKwlp ZiAoZXhjZWVkc19tYXhfdG90YWxfYmtlbmRfbWVtKGZpcnN0QmxvY2tTaXplKSkKKwl7CisJCWlm IChUb3BNZW1vcnlDb250ZXh0KQorCQkJTWVtb3J5Q29udGV4dFN0YXRzKFRvcE1lbW9yeUNvbnRl eHQpOworCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfT1VUX09GX01FTU9S WSksCisJCQkJIGVycm1zZygib3V0IG9mIG1lbW9yeSAtIGV4Y2VlZHMgbWF4X3RvdGFsX2JhY2tl bmRfbWVtb3J5IiksCisJCQkJIGVycmRldGFpbCgiRmFpbGVkIHdoaWxlIGNyZWF0aW5nIG1lbW9y eSBjb250ZXh0IFwiJXNcIi4iLAorCQkJCQkJICAgbmFtZSkpKTsKKwl9CisKIAkvKgogCSAqIEFs bG9jYXRlIHRoZSBpbml0aWFsIGJsb2NrLiAgVW5saWtlIG90aGVyIGFzZXQuYyBibG9ja3MsIGl0 IHN0YXJ0cyB3aXRoCiAJICogdGhlIGNvbnRleHQgaGVhZGVyIGFuZCBpdHMgYmxvY2sgaGVhZGVy IGZvbGxvd3MgdGhhdC4KQEAgLTczMyw2ICs3NDUsMTEgQEAgQWxsb2NTZXRBbGxvYyhNZW1vcnlD b250ZXh0IGNvbnRleHQsIFNpemUgc2l6ZSkKICNlbmRpZgogCiAJCWJsa3NpemUgPSBjaHVua19z aXplICsgQUxMT0NfQkxPQ0tIRFJTWiArIEFMTE9DX0NIVU5LSERSU1o7CisKKwkJLyogRG8gbm90 IGV4Y2VlZCBtYXhpbXVtIGFsbG93ZWQgbWVtb3J5IGFsbG9jYXRpb24gKi8KKwkJaWYgKGV4Y2Vl ZHNfbWF4X3RvdGFsX2JrZW5kX21lbShibGtzaXplKSkKKwkJCXJldHVybiBOVUxMOworCiAJCWJs b2NrID0gKEFsbG9jQmxvY2spIG1hbGxvYyhibGtzaXplKTsKIAkJaWYgKGJsb2NrID09IE5VTEwp CiAJCQlyZXR1cm4gTlVMTDsKQEAgLTkzMyw2ICs5NTAsMTAgQEAgQWxsb2NTZXRBbGxvYyhNZW1v cnlDb250ZXh0IGNvbnRleHQsIFNpemUgc2l6ZSkKIAkJd2hpbGUgKGJsa3NpemUgPCByZXF1aXJl ZF9zaXplKQogCQkJYmxrc2l6ZSA8PD0gMTsKIAorCQkvKiBEbyBub3QgZXhjZWVkIG1heGltdW0g YWxsb3dlZCBtZW1vcnkgYWxsb2NhdGlvbiAqLworCQlpZiAoZXhjZWVkc19tYXhfdG90YWxfYmtl bmRfbWVtKGJsa3NpemUpKQorCQkJcmV0dXJuIE5VTEw7CisKIAkJLyogVHJ5IHRvIGFsbG9jYXRl IGl0ICovCiAJCWJsb2NrID0gKEFsbG9jQmxvY2spIG1hbGxvYyhibGtzaXplKTsKIApAQCAtMTE3 MSw2ICsxMTkyLDE4IEBAIEFsbG9jU2V0UmVhbGxvYyh2b2lkICpwb2ludGVyLCBTaXplIHNpemUp CiAJCWJsa3NpemUgPSBjaGtzaXplICsgQUxMT0NfQkxPQ0tIRFJTWiArIEFMTE9DX0NIVU5LSERS U1o7CiAJCW9sZGJsa3NpemUgPSBibG9jay0+ZW5kcHRyIC0gKChjaGFyICopIGJsb2NrKTsKIAor CQkvKgorCQkgKiBEbyBub3QgZXhjZWVkIG1heGltdW0gYWxsb3dlZCBtZW1vcnkgYWxsb2NhdGlv bi4gTk9URTogY2hlY2tpbmcgZm9yCisJCSAqIHRoZSBmdWxsIHNpemUgaGVyZSByYXRoZXIgdGhh biBqdXN0IHRoZSBhbW91bnQgb2YgaW5jcmVhc2VkCisJCSAqIGFsbG9jYXRpb24gdG8gcHJldmVu dCBhIHBvdGVudGlhbCB1bmRlcmZsb3cgb2YgKm15X2FsbG9jYXRpb24KKwkJICogYWxsb3dhbmNl IGluIGNhc2VzIHdoZXJlIGJsa3NpemUgLSBvbGRibGtzaXplIGRvZXMgbm90IHRyaWdnZXIgYQor CQkgKiByZWZpbGwgYnV0IGJsa3NpemUgaXMgZ3JlYXRlciB0aGFuICpteV9hbGxvY2F0aW9uX2Fs bG93YW5jZS4KKwkJICogVW5kZXJmbG93IHdvdWxkIG9jY3VyIHdpdGggdGhlIGNhbGwgYmVsb3cg dG8KKwkJICogcGdzdGF0X3JlcG9ydF9hbGxvY2F0ZWRfYnl0ZXNfaW5jcmVhc2UoKQorCQkgKi8K KwkJaWYgKGJsa3NpemUgPiBvbGRibGtzaXplICYmIGV4Y2VlZHNfbWF4X3RvdGFsX2JrZW5kX21l bShibGtzaXplKSkKKwkJCXJldHVybiBOVUxMOworCiAJCWJsb2NrID0gKEFsbG9jQmxvY2spIHJl YWxsb2MoYmxvY2ssIGJsa3NpemUpOwogCQlpZiAoYmxvY2sgPT0gTlVMTCkKIAkJewpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvbW1nci9nZW5lcmF0aW9uLmMgYi9zcmMvYmFja2VuZC91 dGlscy9tbWdyL2dlbmVyYXRpb24uYwppbmRleCA1MDJmODc3ODU1Li5iNGM5YjQwNzY2IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9tbWdyL2dlbmVyYXRpb24uYworKysgYi9zcmMvYmFj a2VuZC91dGlscy9tbWdyL2dlbmVyYXRpb24uYwpAQCAtMTkzLDYgKzE5MywxNiBAQCBHZW5lcmF0 aW9uQ29udGV4dENyZWF0ZShNZW1vcnlDb250ZXh0IHBhcmVudCwKIAllbHNlCiAJCWFsbG9jU2l6 ZSA9IE1heChhbGxvY1NpemUsIGluaXRCbG9ja1NpemUpOwogCisJaWYgKGV4Y2VlZHNfbWF4X3Rv dGFsX2JrZW5kX21lbShhbGxvY1NpemUpKQorCXsKKwkJTWVtb3J5Q29udGV4dFN0YXRzKFRvcE1l bW9yeUNvbnRleHQpOworCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfT1VU X09GX01FTU9SWSksCisJCQkJIGVycm1zZygib3V0IG9mIG1lbW9yeSAtIGV4Y2VlZHMgbWF4X3Rv dGFsX2JhY2tlbmRfbWVtb3J5IiksCisJCQkJIGVycmRldGFpbCgiRmFpbGVkIHdoaWxlIGNyZWF0 aW5nIG1lbW9yeSBjb250ZXh0IFwiJXNcIi4iLAorCQkJCQkJICAgbmFtZSkpKTsKKwl9CisKIAkv KgogCSAqIEFsbG9jYXRlIHRoZSBpbml0aWFsIGJsb2NrLiAgVW5saWtlIG90aGVyIGdlbmVyYXRp b24uYyBibG9ja3MsIGl0CiAJICogc3RhcnRzIHdpdGggdGhlIGNvbnRleHQgaGVhZGVyIGFuZCBp dHMgYmxvY2sgaGVhZGVyIGZvbGxvd3MgdGhhdC4KQEAgLTM3Miw2ICszODIsOSBAQCBHZW5lcmF0 aW9uQWxsb2MoTWVtb3J5Q29udGV4dCBjb250ZXh0LCBTaXplIHNpemUpCiAJewogCQlTaXplCQli bGtzaXplID0gcmVxdWlyZWRfc2l6ZSArIEdlbmVyYXRpb25fQkxPQ0tIRFJTWjsKIAorCQlpZiAo ZXhjZWVkc19tYXhfdG90YWxfYmtlbmRfbWVtKGJsa3NpemUpKQorCQkJcmV0dXJuIE5VTEw7CisK IAkJYmxvY2sgPSAoR2VuZXJhdGlvbkJsb2NrICopIG1hbGxvYyhibGtzaXplKTsKIAkJaWYgKGJs b2NrID09IE5VTEwpCiAJCQlyZXR1cm4gTlVMTDsKQEAgLTQ3NSw2ICs0ODgsOSBAQCBHZW5lcmF0 aW9uQWxsb2MoTWVtb3J5Q29udGV4dCBjb250ZXh0LCBTaXplIHNpemUpCiAJCQlpZiAoYmxrc2l6 ZSA8IHJlcXVpcmVkX3NpemUpCiAJCQkJYmxrc2l6ZSA9IHBnX25leHRwb3dlcjJfc2l6ZV90KHJl cXVpcmVkX3NpemUpOwogCisJCQlpZiAoZXhjZWVkc19tYXhfdG90YWxfYmtlbmRfbWVtKGJsa3Np emUpKQorCQkJCXJldHVybiBOVUxMOworCiAJCQlibG9jayA9IChHZW5lcmF0aW9uQmxvY2sgKikg bWFsbG9jKGJsa3NpemUpOwogCiAJCQlpZiAoYmxvY2sgPT0gTlVMTCkKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3V0aWxzL21tZ3Ivc2xhYi5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvbW1nci9zbGFi LmMKaW5kZXggOTEzNzg3ZGJhOC4uMDBhMTBmM2MxMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv dXRpbHMvbW1nci9zbGFiLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbW1nci9zbGFiLmMKQEAg LTM1Niw3ICszNTYsMTYgQEAgU2xhYkNvbnRleHRDcmVhdGUoTWVtb3J5Q29udGV4dCBwYXJlbnQs CiAJCWVsb2coRVJST1IsICJibG9jayBzaXplICV6dSBmb3Igc2xhYiBpcyB0b28gc21hbGwgZm9y ICV6dS1ieXRlIGNodW5rcyIsCiAJCQkgYmxvY2tTaXplLCBjaHVua1NpemUpOwogCi0KKwkvKiBE byBub3QgZXhjZWVkIG1heGltdW0gYWxsb3dlZCBtZW1vcnkgYWxsb2NhdGlvbiAqLworCWlmIChl eGNlZWRzX21heF90b3RhbF9ia2VuZF9tZW0oU2xhYl9DT05URVhUX0hEUlNaKGNodW5rc1BlckJs b2NrKSkpCisJeworCQlNZW1vcnlDb250ZXh0U3RhdHMoVG9wTWVtb3J5Q29udGV4dCk7CisJCWVy ZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9PVVRfT0ZfTUVNT1JZKSwKKwkJCQkg ZXJybXNnKCJvdXQgb2YgbWVtb3J5IC0gZXhjZWVkcyBtYXhfdG90YWxfYmFja2VuZF9tZW1vcnki KSwKKwkJCQkgZXJyZGV0YWlsKCJGYWlsZWQgd2hpbGUgY3JlYXRpbmcgbWVtb3J5IGNvbnRleHQg XCIlc1wiLiIsCisJCQkJCQkgICBuYW1lKSkpOworCX0KIAogCXNsYWIgPSAoU2xhYkNvbnRleHQg KikgbWFsbG9jKFNsYWJfQ09OVEVYVF9IRFJTWihjaHVua3NQZXJCbG9jaykpOwogCWlmIChzbGFi ID09IE5VTEwpCkBAIC01NTksNiArNTY4LDEwIEBAIFNsYWJBbGxvYyhNZW1vcnlDb250ZXh0IGNv bnRleHQsIFNpemUgc2l6ZSkKIAkJfQogCQllbHNlCiAJCXsKKwkJCS8qIERvIG5vdCBleGNlZWQg bWF4aW11bSBhbGxvd2VkIG1lbW9yeSBhbGxvY2F0aW9uICovCisJCQlpZiAoZXhjZWVkc19tYXhf dG90YWxfYmtlbmRfbWVtKHNsYWItPmJsb2NrU2l6ZSkpCisJCQkJcmV0dXJuIE5VTEw7CisKIAkJ CWJsb2NrID0gKFNsYWJCbG9jayAqKSBtYWxsb2Moc2xhYi0+YmxvY2tTaXplKTsKIAogCQkJaWYg KHVubGlrZWx5KGJsb2NrID09IE5VTEwpKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKaW5kZXggYjA5 NTc0MGY4YS4uNGJlZjFhYzQyOCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19w cm9jLmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CkBAIC01NDIxLDkg KzU0MjEsOSBAQAogICBkZXNjciA9PiAnc3RhdGlzdGljczogZ2xvYmFsIG1lbW9yeSBhbGxvY2F0 aW9uIGluZm9ybWF0aW9uJywKICAgcHJvbmFtZSA9PiAncGdfc3RhdF9nZXRfZ2xvYmFsX21lbW9y eV9hbGxvY2F0aW9uJywgcHJvaXNzdHJpY3QgPT4gJ2YnLAogICBwcm92b2xhdGlsZSA9PiAncycs IHByb3BhcmFsbGVsID0+ICdyJywgcHJvcmV0dHlwZSA9PiAncmVjb3JkJywKLSAgcHJvYXJndHlw ZXMgPT4gJycsIHByb2FsbGFyZ3R5cGVzID0+ICd7b2lkLGludDh9JywKLSAgcHJvYXJnbW9kZXMg PT4gJ3tvLG99JywKLSAgcHJvYXJnbmFtZXMgPT4gJ3tkYXRpZCxnbG9iYWxfZHNtX2FsbG9jYXRl ZF9ieXRlc30nLAorICBwcm9hcmd0eXBlcyA9PiAnJywgcHJvYWxsYXJndHlwZXMgPT4gJ3tvaWQs aW50OCxpbnQ4fScsCisgIHByb2FyZ21vZGVzID0+ICd7byxvLG99JywKKyAgcHJvYXJnbmFtZXMg PT4gJ3tkYXRpZCx0b3RhbF9ia2VuZF9tZW1fYnl0ZXNfYXZhaWxhYmxlLGdsb2JhbF9kc21fYWxs b2NhdGVkX2J5dGVzfScsCiAgIHByb3NyYyA9PidwZ19zdGF0X2dldF9nbG9iYWxfbWVtb3J5X2Fs bG9jYXRpb24nIH0sCiB7IG9pZCA9PiAnMjAyMicsCiAgIGRlc2NyID0+ICdzdGF0aXN0aWNzOiBp bmZvcm1hdGlvbiBhYm91dCBjdXJyZW50bHkgYWN0aXZlIGJhY2tlbmRzJywKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL3N0b3JhZ2UvcHJvYy5oIGIvc3JjL2luY2x1ZGUvc3RvcmFnZS9wcm9jLmgK aW5kZXggZTZiZTY3ZGUyYS4uZjYyZWExMzJmZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvc3Rv cmFnZS9wcm9jLmgKKysrIGIvc3JjL2luY2x1ZGUvc3RvcmFnZS9wcm9jLmgKQEAgLTQwNiw2ICs0 MDYsMTMgQEAgdHlwZWRlZiBzdHJ1Y3QgUFJPQ19IRFIKIAlpbnQJCQlzdGFydHVwQnVmZmVyUGlu V2FpdEJ1ZklkOwogCS8qIEdsb2JhbCBkc20gYWxsb2NhdGlvbnMgKi8KIAlwZ19hdG9taWNfdWlu dDY0IGdsb2JhbF9kc21fYWxsb2NhdGlvbjsKKworCS8qCisJICogTWF4IGJhY2tlbmQgbWVtb3J5 IGFsbG9jYXRpb24gdHJhY2tlci4gVXNlZC9Jbml0aWFsaXplZCB3aGVuCisJICogbWF4X3RvdGFs X2JrZW5kX21lbSA+IDAgYXMgbWF4X3RvdGFsX2JrZW5kX21lbSAoTUIpIGNvbnZlcnRlZCB0byBi eXRlcy4KKwkgKiBEZWNyZWFzZXMvaW5jcmVhc2VzIHdpdGggZnJlZS9tYWxsb2Mgb2YgYmFja2Vu ZCBtZW1vcnkuCisJICovCisJcGdfYXRvbWljX3VpbnQ2NCB0b3RhbF9ia2VuZF9tZW1fYnl0ZXM7 CiB9IFBST0NfSERSOwogCiBleHRlcm4gUEdETExJTVBPUlQgUFJPQ19IRFIgKlByb2NHbG9iYWw7 CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9iYWNrZW5kX3N0YXR1cy5oIGIvc3JjL2lu Y2x1ZGUvdXRpbHMvYmFja2VuZF9zdGF0dXMuaAppbmRleCA5Yjc1ZmM1MjIzLi4wNjhiOTZkZDA5 IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy9iYWNrZW5kX3N0YXR1cy5oCisrKyBiL3Ny Yy9pbmNsdWRlL3V0aWxzL2JhY2tlbmRfc3RhdHVzLmgKQEAgLTE1LDYgKzE1LDcgQEAKICNpbmNs dWRlICJsaWJwcS9wcWNvbW0uaCIKICNpbmNsdWRlICJtaXNjYWRtaW4uaCIJCQkvKiBmb3IgQmFj a2VuZFR5cGUgKi8KICNpbmNsdWRlICJzdG9yYWdlL2JhY2tlbmRpZC5oIgorI2luY2x1ZGUgInN0 b3JhZ2UvcHJvYy5oIgogI2luY2x1ZGUgInV0aWxzL2JhY2tlbmRfcHJvZ3Jlc3MuaCIKIAogCkBA IC0zMDUsNiArMzA2LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgTG9jYWxQZ0JhY2tlbmRTdGF0dXMKICAq LwogZXh0ZXJuIFBHRExMSU1QT1JUIGJvb2wgcGdzdGF0X3RyYWNrX2FjdGl2aXRpZXM7CiBleHRl cm4gUEdETExJTVBPUlQgaW50IHBnc3RhdF90cmFja19hY3Rpdml0eV9xdWVyeV9zaXplOworZXh0 ZXJuIFBHRExMSU1QT1JUIGludCBtYXhfdG90YWxfYmtlbmRfbWVtOwogCiAKIC8qIC0tLS0tLS0t LS0KQEAgLTMxNyw2ICszMTksMTAgQEAgZXh0ZXJuIFBHRExMSU1QT1JUIHVpbnQ2NCAqbXlfYXNl dF9hbGxvY2F0ZWRfYnl0ZXM7CiBleHRlcm4gUEdETExJTVBPUlQgdWludDY0ICpteV9kc21fYWxs b2NhdGVkX2J5dGVzOwogZXh0ZXJuIFBHRExMSU1QT1JUIHVpbnQ2NCAqbXlfZ2VuZXJhdGlvbl9h bGxvY2F0ZWRfYnl0ZXM7CiBleHRlcm4gUEdETExJTVBPUlQgdWludDY0ICpteV9zbGFiX2FsbG9j YXRlZF9ieXRlczsKK2V4dGVybiBQR0RMTElNUE9SVCB1aW50NjQgYWxsb2NhdGlvbl9hbGxvd2Fu Y2U7CitleHRlcm4gUEdETExJTVBPUlQgdWludDY0IGluaXRpYWxfYWxsb2NhdGlvbl9hbGxvd2Fu Y2U7CitleHRlcm4gUEdETExJTVBPUlQgdWludDY0IGFsbG9jYXRpb25fcmV0dXJuOworZXh0ZXJu IFBHRExMSU1QT1JUIHVpbnQ2NCBhbGxvY2F0aW9uX3JldHVybl90aHJlc2hvbGQ7CiAKIAogLyog LS0tLS0tLS0tLQpAQCAtMzY0LDYgKzM3MCw3IEBAIGV4dGVybiBpbnQJcGdzdGF0X2ZldGNoX3N0 YXRfbnVtYmFja2VuZHModm9pZCk7CiBleHRlcm4gUGdCYWNrZW5kU3RhdHVzICpwZ3N0YXRfZmV0 Y2hfc3RhdF9iZWVudHJ5KEJhY2tlbmRJZCBiZWlkKTsKIGV4dGVybiBMb2NhbFBnQmFja2VuZFN0 YXR1cyAqcGdzdGF0X2ZldGNoX3N0YXRfbG9jYWxfYmVlbnRyeShpbnQgYmVpZCk7CiBleHRlcm4g Y2hhciAqcGdzdGF0X2NsaXBfYWN0aXZpdHkoY29uc3QgY2hhciAqcmF3X2FjdGl2aXR5KTsKK2V4 dGVybiBib29sIGV4Y2VlZHNfbWF4X3RvdGFsX2JrZW5kX21lbSh1aW50NjQgYWxsb2NhdGlvbl9y ZXF1ZXN0KTsKIAogLyogLS0tLS0tLS0tLQogICogcGdzdGF0X3JlcG9ydF9hbGxvY2F0ZWRfYnl0 ZXNfZGVjcmVhc2UoKSAtCkBAIC0zNzksNyArMzg2LDcgQEAgcGdzdGF0X3JlcG9ydF9hbGxvY2F0 ZWRfYnl0ZXNfZGVjcmVhc2UoaW50NjQgcHJvY19hbGxvY2F0ZWRfYnl0ZXMsCiB7CiAJdWludDY0 CQl0ZW1wOwogCi0JLyogQXZvaWQgYWxsb2NhdGVkX2J5dGVzIHVuc2lnbmVkIGludGVnZXIgb3Zl cmZsb3cgb24gZGVjcmVhc2UgKi8KKwkvKiBTYW5pdHkgY2hlY2s6IG15IGFsbG9jYXRlZCBieXRl cyBzaG91bGQgbmV2ZXIgZHJvcCBiZWxvdyB6ZXJvICovCiAJaWYgKHBnX3N1Yl91NjRfb3ZlcmZs b3coKm15X2FsbG9jYXRlZF9ieXRlcywgcHJvY19hbGxvY2F0ZWRfYnl0ZXMsICZ0ZW1wKSkKIAl7 CiAJCS8qIE9uIG92ZXJmbG93LCBzZXQgYWxsb2NhdGVkIGJ5dGVzIGFuZCBhbGxvY2F0b3IgdHlw ZSBieXRlcyB0byB6ZXJvICovCkBAIC0zODgsMTMgKzM5NSwzNSBAQCBwZ3N0YXRfcmVwb3J0X2Fs bG9jYXRlZF9ieXRlc19kZWNyZWFzZShpbnQ2NCBwcm9jX2FsbG9jYXRlZF9ieXRlcywKIAkJKm15 X2RzbV9hbGxvY2F0ZWRfYnl0ZXMgPSAwOwogCQkqbXlfZ2VuZXJhdGlvbl9hbGxvY2F0ZWRfYnl0 ZXMgPSAwOwogCQkqbXlfc2xhYl9hbGxvY2F0ZWRfYnl0ZXMgPSAwOworCisJCS8qIEFkZCBmcmVl ZCBtZW1vcnkgdG8gYWxsb2NhdGlvbiByZXR1cm4gY291bnRlci4gKi8KKwkJYWxsb2NhdGlvbl9y ZXR1cm4gKz0gcHJvY19hbGxvY2F0ZWRfYnl0ZXM7CisKKwkJLyoKKwkJICogUmV0dXJuIGZyZWVk IG1lbW9yeSB0byB0aGUgZ2xvYmFsIGNvdW50ZXIgaWYgcmV0dXJuIHRocmVzaG9sZCBpcworCQkg KiBtZXQuCisJCSAqLworCQlpZiAobWF4X3RvdGFsX2JrZW5kX21lbSAmJiBhbGxvY2F0aW9uX3Jl dHVybiA+PSBhbGxvY2F0aW9uX3JldHVybl90aHJlc2hvbGQpCisJCXsKKwkJCWlmIChQcm9jR2xv YmFsKQorCQkJeworCQkJCXZvbGF0aWxlIFBST0NfSERSICpwcm9jZ2xvYmFsID0gUHJvY0dsb2Jh bDsKKworCQkJCS8qIEFkZCB0byBnbG9iYWwgdHJhY2tlciAqLworCQkJCXBnX2F0b21pY19hZGRf ZmV0Y2hfdTY0KCZwcm9jZ2xvYmFsLT50b3RhbF9ia2VuZF9tZW1fYnl0ZXMsCisJCQkJCQkJCQkJ YWxsb2NhdGlvbl9yZXR1cm4pOworCisJCQkJLyogUmVzdGFydCB0aGUgY291bnQgKi8KKwkJCQlh bGxvY2F0aW9uX3JldHVybiA9IDA7CisJCQl9CisJCX0KIAl9CiAJZWxzZQogCXsKLQkJLyogZGVj cmVhc2UgYWxsb2NhdGlvbiAqLwotCQkqbXlfYWxsb2NhdGVkX2J5dGVzIC09IHByb2NfYWxsb2Nh dGVkX2J5dGVzOworCQkvKiBBZGQgZnJlZWQgbWVtb3J5IHRvIGFsbG9jYXRpb24gcmV0dXJuIGNv dW50ZXIgKi8KKwkJYWxsb2NhdGlvbl9yZXR1cm4gKz0gcHJvY19hbGxvY2F0ZWRfYnl0ZXM7CiAK LQkJLyogRGVjcmVhc2UgYWxsb2NhdG9yIHR5cGUgYWxsb2NhdGVkIGJ5dGVzLiAqLworCQkvKiBE ZWNyZWFzZSBhbGxvY2F0b3IgdHlwZSBhbGxvY2F0ZWQgYnl0ZXMgKi8KIAkJc3dpdGNoIChwZ19h bGxvY2F0b3JfdHlwZSkKIAkJewogCQkJY2FzZSBQR19BTExPQ19BU0VUOgpAQCAtNDE2LDYgKzQ0 NSwzMCBAQCBwZ3N0YXRfcmVwb3J0X2FsbG9jYXRlZF9ieXRlc19kZWNyZWFzZShpbnQ2NCBwcm9j X2FsbG9jYXRlZF9ieXRlcywKIAkJCQkqbXlfc2xhYl9hbGxvY2F0ZWRfYnl0ZXMgLT0gcHJvY19h bGxvY2F0ZWRfYnl0ZXM7CiAJCQkJYnJlYWs7CiAJCX0KKworCQkvKiBkZWNyZWFzZSBhbGxvY2F0 aW9uICovCisJCSpteV9hbGxvY2F0ZWRfYnl0ZXMgPSAqbXlfYXNldF9hbGxvY2F0ZWRfYnl0ZXMg KworCQkJKm15X2RzbV9hbGxvY2F0ZWRfYnl0ZXMgKyAqbXlfZ2VuZXJhdGlvbl9hbGxvY2F0ZWRf Ynl0ZXMgKworCQkJKm15X3NsYWJfYWxsb2NhdGVkX2J5dGVzOworCisJCS8qCisJCSAqIFJldHVy biBmcmVlZCBtZW1vcnkgdG8gdGhlIGdsb2JhbCBjb3VudGVyIGlmIHJldHVybiB0aHJlc2hvbGQg aXMKKwkJICogbWV0LgorCQkgKi8KKwkJaWYgKG1heF90b3RhbF9ia2VuZF9tZW0gJiYgYWxsb2Nh dGlvbl9yZXR1cm4gPj0gYWxsb2NhdGlvbl9yZXR1cm5fdGhyZXNob2xkKQorCQl7CisJCQlpZiAo UHJvY0dsb2JhbCkKKwkJCXsKKwkJCQl2b2xhdGlsZSBQUk9DX0hEUiAqcHJvY2dsb2JhbCA9IFBy b2NHbG9iYWw7CisKKwkJCQkvKiBBZGQgdG8gZ2xvYmFsIHRyYWNrZXIgKi8KKwkJCQlwZ19hdG9t aWNfYWRkX2ZldGNoX3U2NCgmcHJvY2dsb2JhbC0+dG90YWxfYmtlbmRfbWVtX2J5dGVzLAorCQkJ CQkJCQkJCWFsbG9jYXRpb25fcmV0dXJuKTsKKworCQkJCS8qIFJlc3RhcnQgdGhlIGNvdW50ICov CisJCQkJYWxsb2NhdGlvbl9yZXR1cm4gPSAwOworCQkJfQorCQl9CiAJfQogCiAJcmV0dXJuOwpA QCAtNDMzLDcgKzQ4NiwxMyBAQCBzdGF0aWMgaW5saW5lIHZvaWQKIHBnc3RhdF9yZXBvcnRfYWxs b2NhdGVkX2J5dGVzX2luY3JlYXNlKGludDY0IHByb2NfYWxsb2NhdGVkX2J5dGVzLAogCQkJCQkJ CQkJICAgaW50IHBnX2FsbG9jYXRvcl90eXBlKQogewotCSpteV9hbGxvY2F0ZWRfYnl0ZXMgKz0g cHJvY19hbGxvY2F0ZWRfYnl0ZXM7CisJdWludDY0CQl0ZW1wOworCisJLyogU2FuaXR5IGNoZWNr OiBteSBhbGxvY2F0ZWQgYnl0ZXMgc2hvdWxkIG5ldmVyIGRyb3AgYmVsb3cgemVybyAqLworCWlm IChwZ19zdWJfdTY0X292ZXJmbG93KGFsbG9jYXRpb25fYWxsb3dhbmNlLCBwcm9jX2FsbG9jYXRl ZF9ieXRlcywgJnRlbXApKQorCQlhbGxvY2F0aW9uX2FsbG93YW5jZSA9IDA7CisJZWxzZQorCQlh bGxvY2F0aW9uX2FsbG93YW5jZSAtPSBwcm9jX2FsbG9jYXRlZF9ieXRlczsKIAogCS8qIEluY3Jl YXNlIGFsbG9jYXRvciB0eXBlIGFsbG9jYXRlZCBieXRlcyAqLwogCXN3aXRjaCAocGdfYWxsb2Nh dG9yX3R5cGUpCkBAIC00NTgsNiArNTE3LDkgQEAgcGdzdGF0X3JlcG9ydF9hbGxvY2F0ZWRfYnl0 ZXNfaW5jcmVhc2UoaW50NjQgcHJvY19hbGxvY2F0ZWRfYnl0ZXMsCiAJCQlicmVhazsKIAl9CiAK KwkqbXlfYWxsb2NhdGVkX2J5dGVzID0gKm15X2FzZXRfYWxsb2NhdGVkX2J5dGVzICsgKm15X2Rz bV9hbGxvY2F0ZWRfYnl0ZXMgKworCQkqbXlfZ2VuZXJhdGlvbl9hbGxvY2F0ZWRfYnl0ZXMgKyAq bXlfc2xhYl9hbGxvY2F0ZWRfYnl0ZXM7CisKIAlyZXR1cm47CiB9CiAKQEAgLTQ3Nyw2ICs1Mzks MzYgQEAgcGdzdGF0X2luaXRfYWxsb2NhdGVkX2J5dGVzKHZvaWQpCiAJKm15X2dlbmVyYXRpb25f YWxsb2NhdGVkX2J5dGVzID0gMDsKIAkqbXlfc2xhYl9hbGxvY2F0ZWRfYnl0ZXMgPSAwOwogCisJ LyogSWYgd2UncmUgbGltaXRpbmcgYmFja2VuZCBtZW1vcnkgKi8KKwlpZiAobWF4X3RvdGFsX2Jr ZW5kX21lbSkKKwl7CisJCXZvbGF0aWxlIFBST0NfSERSICpwcm9jZ2xvYmFsID0gUHJvY0dsb2Jh bDsKKwkJdWludDY0CQlhdmFpbGFibGVfbWF4X3RvdGFsX2JrZW5kX21lbSA9IDA7CisKKwkJYWxs b2NhdGlvbl9yZXR1cm4gPSAwOworCQlhbGxvY2F0aW9uX2FsbG93YW5jZSA9IDA7CisKKwkJLyog QWNjb3VudCBmb3IgdGhlIGluaXRpYWwgYWxsb2NhdGlvbiBhbGxvd2FuY2UgKi8KKwkJd2hpbGUg KChhdmFpbGFibGVfbWF4X3RvdGFsX2JrZW5kX21lbSA9IHBnX2F0b21pY19yZWFkX3U2NCgmcHJv Y2dsb2JhbC0+dG90YWxfYmtlbmRfbWVtX2J5dGVzKSkgPj0gaW5pdGlhbF9hbGxvY2F0aW9uX2Fs bG93YW5jZSkKKwkJeworCQkJLyoKKwkJCSAqIE9uIHN1Y2Nlc3MgcG9wdWxhdGUgYWxsb2NhdGlv bl9hbGxvd2FuY2UuIEZhaWx1cmUgaGVyZSB3aWxsCisJCQkgKiByZXN1bHQgaW4gdGhlIGJhY2tl bmQncyBmaXJzdCBpbnZvY2F0aW9uIG9mCisJCQkgKiBleGNlZWRzX21heF90b3RhbF9ia2VuZF9t ZW0gYWxsb2NhdGluZyByZXF1ZXN0ZWQsIGRlZmF1bHQsIG9yCisJCQkgKiBhdmFpbGFibGUgbWVt b3J5IG9yIHJlc3VsdCBpbiBhbiBvdXQgb2YgbWVtb3J5IGVycm9yLgorCQkJICovCisJCQlpZiAo cGdfYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2VfdTY0KCZwcm9jZ2xvYmFsLT50b3RhbF9ia2VuZF9t ZW1fYnl0ZXMsCisJCQkJCQkJCQkJCSAgICZhdmFpbGFibGVfbWF4X3RvdGFsX2JrZW5kX21lbSwK KwkJCQkJCQkJCQkJICAgYXZhaWxhYmxlX21heF90b3RhbF9ia2VuZF9tZW0gLQorCQkJCQkJCQkJ CQkgICBpbml0aWFsX2FsbG9jYXRpb25fYWxsb3dhbmNlKSkKKwkJCXsKKwkJCQlhbGxvY2F0aW9u X2FsbG93YW5jZSA9IGluaXRpYWxfYWxsb2NhdGlvbl9hbGxvd2FuY2U7CisKKwkJCQlicmVhazsK KwkJCX0KKwkJfQorCX0KKwogCXJldHVybjsKIH0KIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9ydWxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVz Lm91dAppbmRleCBmZjc2YWE5OWEyLi40Zjk2Y2Y0NDM2IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3J1bGVzLm91dApAQCAtMTg4MywxMyArMTg4MywxNSBAQCBwZ19zdGF0X2dsb2JhbF9tZW1vcnlf YWxsb2NhdGlvbnwgV0lUSCBzdW1zIEFTICgKICBTRUxFQ1Qgcy5kYXRpZCwKICAgICBjdXJyZW50 X3NldHRpbmcoJ3NoYXJlZF9tZW1vcnlfc2l6ZSc6OnRleHQsIHRydWUpIEFTIHNoYXJlZF9tZW1v cnlfc2l6ZSwKICAgICAoY3VycmVudF9zZXR0aW5nKCdzaGFyZWRfbWVtb3J5X3NpemVfaW5faHVn ZV9wYWdlcyc6OnRleHQsIHRydWUpKTo6aW50ZWdlciBBUyBzaGFyZWRfbWVtb3J5X3NpemVfaW5f aHVnZV9wYWdlcywKKyAgICBwZ19zaXplX2J5dGVzKGN1cnJlbnRfc2V0dGluZygnbWF4X3RvdGFs X2JhY2tlbmRfbWVtb3J5Jzo6dGV4dCwgdHJ1ZSkpIEFTIG1heF90b3RhbF9iYWNrZW5kX21lbW9y eV9ieXRlcywKKyAgICBzLnRvdGFsX2JrZW5kX21lbV9ieXRlc19hdmFpbGFibGUsCiAgICAgcy5n bG9iYWxfZHNtX2FsbG9jYXRlZF9ieXRlcywKICAgICBzdW1zLnRvdGFsX2FzZXRfYWxsb2NhdGVk X2J5dGVzLAogICAgIHN1bXMudG90YWxfZHNtX2FsbG9jYXRlZF9ieXRlcywKICAgICBzdW1zLnRv dGFsX2dlbmVyYXRpb25fYWxsb2NhdGVkX2J5dGVzLAogICAgIHN1bXMudG90YWxfc2xhYl9hbGxv Y2F0ZWRfYnl0ZXMKICAgIEZST00gc3VtcywKLSAgICAocGdfc3RhdF9nZXRfZ2xvYmFsX21lbW9y eV9hbGxvY2F0aW9uKCkgcyhkYXRpZCwgZ2xvYmFsX2RzbV9hbGxvY2F0ZWRfYnl0ZXMpCisgICAg KHBnX3N0YXRfZ2V0X2dsb2JhbF9tZW1vcnlfYWxsb2NhdGlvbigpIHMoZGF0aWQsIHRvdGFsX2Jr ZW5kX21lbV9ieXRlc19hdmFpbGFibGUsIGdsb2JhbF9kc21fYWxsb2NhdGVkX2J5dGVzKQogICAg ICBMRUZUIEpPSU4gcGdfZGF0YWJhc2UgZCBPTiAoKHMuZGF0aWQgPSBkLm9pZCkpKTsKIHBnX3N0 YXRfZ3NzYXBpfCBTRUxFQ1QgcGlkLAogICAgIGdzc19hdXRoIEFTIGdzc19hdXRoZW50aWNhdGVk LAotLSAKMi4yNS4xCgo= --=-Yy+CVgCBbbbWOL4C12ja--