Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uw48g-005c55-Rg for pgsql-hackers@arkaria.postgresql.org; Tue, 09 Sep 2025 19:36:28 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1uw48f-00EDwK-OC for pgsql-hackers@arkaria.postgresql.org; Tue, 09 Sep 2025 19:36:26 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uw48f-00EDwC-7y for pgsql-hackers@lists.postgresql.org; Tue, 09 Sep 2025 19:36:25 +0000 Received: from mail-qk1-x72d.google.com ([2607:f8b0:4864:20::72d]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1uw48c-001Zpe-0C for pgsql-hackers@lists.postgresql.org; Tue, 09 Sep 2025 19:36:25 +0000 Received: by mail-qk1-x72d.google.com with SMTP id af79cd13be357-8072bb631daso559264585a.1 for ; Tue, 09 Sep 2025 12:36:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fittl.com; s=google; t=1757446580; x=1758051380; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=FmZeBMppqLJ/CkSonh+isNrBLDtoBruxmyLBp428hTQ=; b=IgTOUdzA0eoaMZUVCgyAgalYH0whJrdk1kkAeZoDkwe7byamNsAaNNA5XtE2IVlCOh d1SC1QLsg0rqnUy/sEHn0+fWw+OQb5swSx7cHxVrRM+FSj+2aH6YW0OiXVm0bONJpova KKesMS+Ha/jBTB2nqJoHxEHxTWNZSNREn2po4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757446580; x=1758051380; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=FmZeBMppqLJ/CkSonh+isNrBLDtoBruxmyLBp428hTQ=; b=AZh88N0Hs6kdHZkL4DyL0I9XN8+i5fsS2h8LlsZ5A0NoQ+EJsBL/8buKIXFvyjYVw7 dmF0CcWHkQHhBnC1wd9sDl29MpwYcKVO9JFUOJRvyTXCoIqU7krHG71KAv2aH0pcheNj sabNC3TxZXRRhgJT83j+u/cycfi1QsNlE+vwoVY+4rHihjI13xOF9xyPUwxMfpwR1MJ7 PSg+wb7yQGcS3rNRZFDLkM0MSqzSeJNmhP/VmeS7ktvhpoX0830WOqaC8Lmi+yfOGHZK owJ8yUZIALh8qeV7vS3Fy9y8TG/0NrynkEwHwuIQxrl6ex0+IxIsoNX5W4Ipojq8tUIt XPlQ== X-Gm-Message-State: AOJu0YzpMO3569Oax1ilz3uMdukSFV+Ia3dhto5bUwmHuIt1MIXEfK6K 7ZEhL23puP28GGLzHslEdg2lAwEYck2Zv/JruFKR8SgE55fKy0A5TSxbXZ3ppI3ujg/X+6xh8FA PCw/Y4DCUWwMaXJAle2gEXP26rTnle9D63jLxx3oaL5KTV5XrGiw= X-Gm-Gg: ASbGncsFwg8sHxI+AuK9J1LnWpYqxYS7q4jxEg9jlWYAyJ76PDCOa+kmgVTbij8XKAo jHSXijP42Lrr4D+L71tEeU788eRNH0lW/r6yOdxyAYy6eiLISdPAOSF9MAW1kQHiy5YESOmb5// xJXbVZoFoXkSZrJryOEZaW1sbvDjhLrgi8Bzlu4EqB7Hu/yacCeZ3rKv+WZqvUvuHQj/WWfTA5f t6qR+j2Pij94VIQDZFxWIv6WNQxDVFczNR6k5o= X-Google-Smtp-Source: AGHT+IGDzifac/Mh3BFjC5RKuBgVXjHX02hQLyJeUNqmWoXLuQy8O1HhVJr+r0TLc4MUC316TTTNZ9rkMAe+HnD1Cs4= X-Received: by 2002:a05:620a:4310:b0:80b:c6fe:d034 with SMTP id af79cd13be357-813c1c9d15amr1182639385a.53.1757446579573; Tue, 09 Sep 2025 12:36:19 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Lukas Fittl Date: Tue, 9 Sep 2025 12:35:43 -0700 X-Gm-Features: Ac12FXxN1wqUiaRoQrvjKRmxgAATVsLzJXU7auXUDq9oiBwSMRibakImDuD3e7Y Message-ID: Subject: Re: Stack-based tracking of per-node WAL/buffer usage To: Andres Freund Cc: PostgreSQL Hackers Content-Type: multipart/mixed; boundary="00000000000017b5fe063e636bfe" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000017b5fe063e636bfe Content-Type: multipart/alternative; boundary="00000000000017b5fc063e636bfc" --00000000000017b5fc063e636bfc Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi Andres, Thanks for the review! Attached an updated patch set that addresses the feedback, and also adds the complete removal of the global pgBufferUsage variable in later patches (0005-0007), to avoid counting both the stack and the variable. FWIW, pgWalUsage would also be nice to remove, but it has some interesting interactions with the cumulative statistics system and heap_page_prune_and_freeze, and seems less performance critical. On Thu, Sep 4, 2025 at 1:23=E2=80=AFPM Andres Freund w= rote: > > 0001: Separate node instrumentation from other use of Instrumentation > struct > ... > It's mildly odd that the two types of instrumentation have a different > definition of 'total' (one double, one instr_time). > Yeah, agreed. I added in a new 0001 patch that changes this to instr_time consistently. I don't see a good reason to keep the transformation to seconds in the Instrumentation logic, since all in-tree callers convert it to milliseconds anyway. > > 0003: Introduce stack for tracking per-node WAL/buffer usage > > Why are we doing Instr{Start,Stop}Query when not using instrumentation? > Resowner stuff ain't free, so I'd skip them when not necessary. > Makes sense, I've adjusted that to be conditional (in the now renamed 0004 patch). In the updated patch I've also decided to piggyback on QueryDesc totaltime as the "owning" Instrumentation here for the query's lifetime. It seems simpler that way and avoids having special purpose methods. To go along with that I've changed the general purpose Instrumentation struct to use stack-based instrumentation at the same time. > diff --git a/src/backend/executor/execProcnode.c > b/src/backend/executor/execProcnode.c > > index d286471254b..7436f307994 100644 > > --- a/src/backend/executor/execProcnode.c > > +++ b/src/backend/executor/execProcnode.c > > @@ -823,8 +823,17 @@ ExecShutdownNode_walker(PlanState *node, void > *context) > ... > > + InstrNodeAddToCurrent(&node->instrument->stack); > ... > > Can we rely on this being reached? Note that ExecutePlan() calls > ExecShutdownNode() conditionally: You are of course correct, I didn't consider cursors correctly here. It seems there isn't an existing executor node walk that could be repurposed, so I added a new one in ExecutorFinish ("ExecAccumNodeInstrumentation"). From my read of the code there are no use cases where we need aggregated instrumentation data before ExecutorFinish. > +static void > > +ResOwnerReleaseInstrStack(Datum res) > > +{ > > + /* > > + * XXX: Registered resources are *not* called in reverse order, > i.e. we'll > > + * get what was first registered first at shutdown. To avoid > handling > > + * that, we are resetting the stack here on abort (instead of > recovering > > + * to previous). > > + */ > > + pgInstrStack =3D NULL; > > +} > > Hm, doesn't that mean we loose track of instrumentation if you e.g. do an > EXPLAIN ANALYZE of a query that executes a function, which internally > triggers > an error and catches it? > > I wonder if the solution could be to walk the stack and search for the > to-be-released element. > Yes, good point, I did not consider that case. I've addressed this by only updating the current stack if its not already a parent of the element being released. We are also always adding the element's statistics to the (updated) active stack element at abort. Thanks, Lukas --=20 Lukas Fittl --00000000000017b5fc063e636bfc Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Andres,

Thanks for the review!

Attached an updated patch set that addresses the fe= edback, and also adds the complete removal of the global pgBufferUsage vari= able in later patches (0005-0007), to avoid counting both the stack and the= variable.

FWIW, pgWalUsage would also be nice to = remove, but it has some interesting interactions with the cumulative statis= tics system and=C2=A0heap_page_prune_and_freeze, and seems less performance= critical.

On Thu, Sep 4, 2025 at 1:23=E2=80=AFPM Andres Fr= eund <andres@ana= razel.de> wrote:
> 0001: Separate node instrumentation from other use of Instrume= ntation struct
...
It's mildly odd that the two types of instrumentation have a different<= br> definition of 'total' (one double, one instr_time).

Yeah, agreed. I added in a new 0001 patch that changes= this to=C2=A0instr_time consistently. I don't see a good reason to kee= p the transformation to seconds in the Instrumentation logic, since all in-= tree callers convert it to milliseconds anyway.
=C2=A0
> 0003: Introduce stack for tracking per-node WAL/buffer usage

Why are we doing Instr{Start,Stop}Query when not using instrumentation?
Resowner stuff ain't free, so I'd skip them when not necessary.
=

Makes sense, I've adjusted that to be = conditional (in the now renamed 0004 patch).

In th= e updated patch I've also decided to piggyback on QueryDesc totaltime a= s the "owning" Instrumentation here for the query's lifetime.= It seems simpler that way and avoids having special purpose methods. To go= along with that I've changed the general purpose=20 Instrumentation struct to use stack-based instrumentation at the same=20 time.

> diff --git a/src/backend/executor/execProcnode.c b/src/backend/executo= r/execProcnode.c
> index d286471254b..7436f307994 100644
> --- a/src/backend/executor/execProcnode.c
> +++ b/src/backend/executor/execProcnode.c
> @@ -823,8 +823,17 @@ ExecShutdownNode_walker(PlanState *node, void *co= ntext)
...
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0InstrNodeAddToCurrent= (&node->instrument->stack);
...

Can we rely on this being reached? Note that ExecutePlan() calls
ExecShutdownNode() conditionally:

You are o= f course correct, I didn't consider cursors correctly here.
<= br>
It seems there isn't an existing executor node walk that = could be repurposed, so I added a new one in ExecutorFinish ("ExecAccu= mNodeInstrumentation"). From my read of the code there are no use case= s where we need aggregated instrumentation data before ExecutorFinish.

> +static void
> +ResOwnerReleaseInstrStack(Datum res)
> +{
> +=C2=A0 =C2=A0 =C2=A0/*
> +=C2=A0 =C2=A0 =C2=A0 * XXX: Registered resources are *not* called in = reverse order, i.e. we'll
> +=C2=A0 =C2=A0 =C2=A0 * get what was first registered first at shutdow= n. To avoid handling
> +=C2=A0 =C2=A0 =C2=A0 * that, we are resetting the stack here on abort= (instead of recovering
> +=C2=A0 =C2=A0 =C2=A0 * to previous).
> +=C2=A0 =C2=A0 =C2=A0 */
> +=C2=A0 =C2=A0 =C2=A0pgInstrStack =3D NULL;
> +}

Hm, doesn't that mean we loose track of instrumentation if you e.g. do = an
EXPLAIN ANALYZE of a query that executes a function, which internally trigg= ers
an error and catches it?

I wonder if the solution could be to walk the stack and search for the
to-be-released element.

Yes, good point= , I did not consider that case. I've addressed this by only updating th= e current stack if its not already a parent of the element being released. = We are also always adding the element's statistics to the (updated) act= ive stack element at abort.

Thanks,
Lukas
--
Lukas Fittl
--00000000000017b5fc063e636bfc-- --00000000000017b5fe063e636bfe Content-Type: application/octet-stream; name="v2-0006-Introduce-alternate-Instrumentation-stack-mechani.patch" Content-Disposition: attachment; filename="v2-0006-Introduce-alternate-Instrumentation-stack-mechani.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfcy89rx2 RnJvbSAwNzE4ODdjYjc5NzliNjUzN2NhOTE4MzRjY2ZlOGRiYzkyYmMzNGQyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWthcyBGaXR0bCA8bHVrYXNAZml0dGwuY29tPgpEYXRlOiBU dWUsIDkgU2VwIDIwMjUgMDI6MjY6MDIgLTA3MDAKU3ViamVjdDogW1BBVENIIHYyIDYvN10gSW50 cm9kdWNlIGFsdGVybmF0ZSBJbnN0cnVtZW50YXRpb24gc3RhY2sgbWVjaGFuaXNtCiByZWx5aW5n IG9uIFBHX0ZJTkFMTFkKClRoZSByZXNvdXJjZSBvd25lci1iYXNlZCBJbnN0cnVtZW50YXRpb24g c3RhY2sgY2Fubm90IGhhbmRsZSB3cmFwcGluZwpjZXJ0YWluIHV0aWxpdHkgY29tbWFuZHMgdGhh dCBjbG9zZSBhbmQgcmUtb3BlbiB0aGUgdG9wLWxldmVsIHRyYW5zYWN0aW9uLApsaWtlIHRoZSBD TFVTVEVSIGNvbW1hbmQuIFRoaXMgaXMgYSBwcm9ibGVtIGZvciBwZ19zdGF0X3N0YXRlbWVudHMg dHJhY2tpbmcKb2YgdXRpbGl0eSBjb21tYW5kcyBzcGVjaWZpY2FsbHkuIFRvIHN1cHBvcnQgdHJh Y2tpbmcgc3VjaCBhY3Rpdml0eSwgYWxsb3cKaXNzdWluZyBleHBsaWNpdCBJbnN0clB1c2hTdGFj ay9JbnN0clBvcFN0YWNrIGNvbW1hbmRzIHRvIG1vZGlmeSB0aGUgc3RhY2ssCndpdGggdGhlIElu c3RyUG9wU3RhY2sgaW4gYSBQR19GSU5BTExZIHRvIGVuc3VyZSBjbGVhbnVwIG9uIGFib3J0Lgot LS0KIC4uLi9wZ19zdGF0X3N0YXRlbWVudHMvcGdfc3RhdF9zdGF0ZW1lbnRzLmMgICB8IDUwICsr KysrLS0tLS0tLS0tLS0tLS0KIHNyYy9pbmNsdWRlL2V4ZWN1dG9yL2luc3RydW1lbnQuaCAgICAg ICAgICAgICB8ICAzICsrCiAyIGZpbGVzIGNoYW5nZWQsIDE1IGluc2VydGlvbnMoKyksIDM4IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL3BnX3N0 YXRfc3RhdGVtZW50cy5jIGIvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvcGdfc3RhdF9zdGF0 ZW1lbnRzLmMKaW5kZXggZGViNmQ0M2E0N2YuLjJkMjFkZmJmY2ZiIDEwMDY0NAotLS0gYS9jb250 cmliL3BnX3N0YXRfc3RhdGVtZW50cy9wZ19zdGF0X3N0YXRlbWVudHMuYworKysgYi9jb250cmli L3BnX3N0YXRfc3RhdGVtZW50cy9wZ19zdGF0X3N0YXRlbWVudHMuYwpAQCAtOTA5LDIxICs5MDks MTMgQEAgcGdzc19wbGFubmVyKFF1ZXJ5ICpwYXJzZSwKIAl7CiAJCWluc3RyX3RpbWUJc3RhcnQ7 CiAJCWluc3RyX3RpbWUJZHVyYXRpb247Ci0JCUJ1ZmZlclVzYWdlIGJ1ZnVzYWdlX3N0YXJ0LAot CQkJCQlidWZ1c2FnZTsKLQkJV2FsVXNhZ2UJd2FsdXNhZ2Vfc3RhcnQsCi0JCQkJCXdhbHVzYWdl OworCQlJbnN0clN0YWNrICpzdGFjazsKIAotCQkvKiBXZSBuZWVkIHRvIHRyYWNrIGJ1ZmZlciB1 c2FnZSBhcyB0aGUgcGxhbm5lciBjYW4gYWNjZXNzIHRoZW0uICovCi0JCWJ1ZnVzYWdlX3N0YXJ0 ID0gcGdCdWZmZXJVc2FnZTsKLQotCQkvKgotCQkgKiBTaW1pbGFybHkgdGhlIHBsYW5uZXIgY291 bGQgd3JpdGUgc29tZSBXQUwgcmVjb3JkcyBpbiBzb21lIGNhc2VzCi0JCSAqIChlLmcuIHNldHRp bmcgYSBoaW50IGJpdCB3aXRoIHRob3NlIGJlaW5nIFdBTC1sb2dnZWQpCi0JCSAqLwotCQl3YWx1 c2FnZV9zdGFydCA9IHBnV2FsVXNhZ2U7CiAJCUlOU1RSX1RJTUVfU0VUX0NVUlJFTlQoc3RhcnQp OwogCisJCS8qIFdlIG5lZWQgdG8gdHJhY2sgYnVmZmVyL1dBTCB1c2FnZSBhcyB0aGUgcGxhbm5l ciBjYW4gYWNjZXNzIHRoZW0uICovCisJCXN0YWNrID0gSW5zdHJQdXNoU3RhY2soKTsKKwogCQlu ZXN0aW5nX2xldmVsKys7CiAJCVBHX1RSWSgpOwogCQl7CkBAIC05MzYsNiArOTI4LDcgQEAgcGdz c19wbGFubmVyKFF1ZXJ5ICpwYXJzZSwKIAkJfQogCQlQR19GSU5BTExZKCk7CiAJCXsKKwkJCUlu c3RyUG9wU3RhY2soc3RhY2spOwogCQkJbmVzdGluZ19sZXZlbC0tOwogCQl9CiAJCVBHX0VORF9U UlkoKTsKQEAgLTk0MywxNCArOTM2LDYgQEAgcGdzc19wbGFubmVyKFF1ZXJ5ICpwYXJzZSwKIAkJ SU5TVFJfVElNRV9TRVRfQ1VSUkVOVChkdXJhdGlvbik7CiAJCUlOU1RSX1RJTUVfU1VCVFJBQ1Qo ZHVyYXRpb24sIHN0YXJ0KTsKIAotCQkvKiBjYWxjIGRpZmZlcmVuY2VzIG9mIGJ1ZmZlciBjb3Vu dGVycy4gKi8KLQkJbWVtc2V0KCZidWZ1c2FnZSwgMCwgc2l6ZW9mKEJ1ZmZlclVzYWdlKSk7Ci0J CUJ1ZmZlclVzYWdlQWNjdW1EaWZmKCZidWZ1c2FnZSwgJnBnQnVmZmVyVXNhZ2UsICZidWZ1c2Fn ZV9zdGFydCk7Ci0KLQkJLyogY2FsYyBkaWZmZXJlbmNlcyBvZiBXQUwgY291bnRlcnMuICovCi0J CW1lbXNldCgmd2FsdXNhZ2UsIDAsIHNpemVvZihXYWxVc2FnZSkpOwotCQlXYWxVc2FnZUFjY3Vt RGlmZigmd2FsdXNhZ2UsICZwZ1dhbFVzYWdlLCAmd2FsdXNhZ2Vfc3RhcnQpOwotCiAJCXBnc3Nf c3RvcmUocXVlcnlfc3RyaW5nLAogCQkJCSAgIHBhcnNlLT5xdWVyeUlkLAogCQkJCSAgIHBhcnNl LT5zdG10X2xvY2F0aW9uLApAQCAtOTU4LDggKzk0Myw4IEBAIHBnc3NfcGxhbm5lcihRdWVyeSAq cGFyc2UsCiAJCQkJICAgUEdTU19QTEFOLAogCQkJCSAgIElOU1RSX1RJTUVfR0VUX01JTExJU0VD KGR1cmF0aW9uKSwKIAkJCQkgICAwLAotCQkJCSAgICZidWZ1c2FnZSwKLQkJCQkgICAmd2FsdXNh Z2UsCisJCQkJICAgJnN0YWNrLT5idWZ1c2FnZSwKKwkJCQkgICAmc3RhY2stPndhbHVzYWdlLAog CQkJCSAgIE5VTEwsCiAJCQkJICAgTlVMTCwKIAkJCQkgICAwLApAQCAtMTE1NSwxNCArMTE0MCwx MCBAQCBwZ3NzX1Byb2Nlc3NVdGlsaXR5KFBsYW5uZWRTdG10ICpwc3RtdCwgY29uc3QgY2hhciAq cXVlcnlTdHJpbmcsCiAJCWluc3RyX3RpbWUJc3RhcnQ7CiAJCWluc3RyX3RpbWUJZHVyYXRpb247 CiAJCXVpbnQ2NAkJcm93czsKLQkJQnVmZmVyVXNhZ2UgYnVmdXNhZ2Vfc3RhcnQsCi0JCQkJCWJ1 ZnVzYWdlOwotCQlXYWxVc2FnZQl3YWx1c2FnZV9zdGFydCwKLQkJCQkJd2FsdXNhZ2U7CisJCUlu c3RyU3RhY2sgKnN0YWNrOwogCi0JCWJ1ZnVzYWdlX3N0YXJ0ID0gcGdCdWZmZXJVc2FnZTsKLQkJ d2FsdXNhZ2Vfc3RhcnQgPSBwZ1dhbFVzYWdlOwogCQlJTlNUUl9USU1FX1NFVF9DVVJSRU5UKHN0 YXJ0KTsKKwkJc3RhY2sgPSBJbnN0clB1c2hTdGFjaygpOwogCiAJCW5lc3RpbmdfbGV2ZWwrKzsK IAkJUEdfVFJZKCk7CkBAIC0xMTc4LDYgKzExNTksNyBAQCBwZ3NzX1Byb2Nlc3NVdGlsaXR5KFBs YW5uZWRTdG10ICpwc3RtdCwgY29uc3QgY2hhciAqcXVlcnlTdHJpbmcsCiAJCX0KIAkJUEdfRklO QUxMWSgpOwogCQl7CisJCQlJbnN0clBvcFN0YWNrKHN0YWNrKTsKIAkJCW5lc3RpbmdfbGV2ZWwt LTsKIAkJfQogCQlQR19FTkRfVFJZKCk7CkBAIC0xMjA2LDE0ICsxMTg4LDYgQEAgcGdzc19Qcm9j ZXNzVXRpbGl0eShQbGFubmVkU3RtdCAqcHN0bXQsIGNvbnN0IGNoYXIgKnF1ZXJ5U3RyaW5nLAog CQkJCQkgICBxYy0+Y29tbWFuZFRhZyA9PSBDTURUQUdfUkVGUkVTSF9NQVRFUklBTElaRURfVklF VykpID8KIAkJCXFjLT5ucHJvY2Vzc2VkIDogMDsKIAotCQkvKiBjYWxjIGRpZmZlcmVuY2VzIG9m IGJ1ZmZlciBjb3VudGVycy4gKi8KLQkJbWVtc2V0KCZidWZ1c2FnZSwgMCwgc2l6ZW9mKEJ1ZmZl clVzYWdlKSk7Ci0JCUJ1ZmZlclVzYWdlQWNjdW1EaWZmKCZidWZ1c2FnZSwgJnBnQnVmZmVyVXNh Z2UsICZidWZ1c2FnZV9zdGFydCk7Ci0KLQkJLyogY2FsYyBkaWZmZXJlbmNlcyBvZiBXQUwgY291 bnRlcnMuICovCi0JCW1lbXNldCgmd2FsdXNhZ2UsIDAsIHNpemVvZihXYWxVc2FnZSkpOwotCQlX YWxVc2FnZUFjY3VtRGlmZigmd2FsdXNhZ2UsICZwZ1dhbFVzYWdlLCAmd2FsdXNhZ2Vfc3RhcnQp OwotCiAJCXBnc3Nfc3RvcmUocXVlcnlTdHJpbmcsCiAJCQkJICAgc2F2ZWRfcXVlcnlJZCwKIAkJ CQkgICBzYXZlZF9zdG10X2xvY2F0aW9uLApAQCAtMTIyMSw4ICsxMTk1LDggQEAgcGdzc19Qcm9j ZXNzVXRpbGl0eShQbGFubmVkU3RtdCAqcHN0bXQsIGNvbnN0IGNoYXIgKnF1ZXJ5U3RyaW5nLAog CQkJCSAgIFBHU1NfRVhFQywKIAkJCQkgICBJTlNUUl9USU1FX0dFVF9NSUxMSVNFQyhkdXJhdGlv biksCiAJCQkJICAgcm93cywKLQkJCQkgICAmYnVmdXNhZ2UsCi0JCQkJICAgJndhbHVzYWdlLAor CQkJCSAgICZzdGFjay0+YnVmdXNhZ2UsCisJCQkJICAgJnN0YWNrLT53YWx1c2FnZSwKIAkJCQkg ICBOVUxMLAogCQkJCSAgIE5VTEwsCiAJCQkJICAgMCwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L2V4ZWN1dG9yL2luc3RydW1lbnQuaCBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2luc3RydW1lbnQu aAppbmRleCBiZjc2NjcwNjU4MC4uODgwNGVlNjQzMTEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L2V4ZWN1dG9yL2luc3RydW1lbnQuaAorKysgYi9zcmMvaW5jbHVkZS9leGVjdXRvci9pbnN0cnVt ZW50LmgKQEAgLTE0Nyw2ICsxNDcsOSBAQCBleHRlcm4gSW5zdHJ1bWVudGF0aW9uICpJbnN0ckFs bG9jKGludCBuLCBpbnQgaW5zdHJ1bWVudF9vcHRpb25zKTsKIGV4dGVybiB2b2lkIEluc3RyU3Rh cnQoSW5zdHJ1bWVudGF0aW9uICppbnN0cik7CiBleHRlcm4gdm9pZCBJbnN0clN0b3AoSW5zdHJ1 bWVudGF0aW9uICppbnN0ciwgZG91YmxlIG5UdXBsZXMsIGJvb2wgZmluYWxpemUpOwogCitleHRl cm4gSW5zdHJTdGFjayAqIEluc3RyUHVzaFN0YWNrKHZvaWQpOworZXh0ZXJuIHZvaWQgSW5zdHJQ b3BTdGFjayhJbnN0clN0YWNrICogcmVzKTsKKwogZXh0ZXJuIE5vZGVJbnN0cnVtZW50YXRpb24g KiBJbnN0ckFsbG9jTm9kZShpbnQgbiwgaW50IGluc3RydW1lbnRfb3B0aW9ucywKIAkJCQkJCQkJ CQkJYm9vbCBhc3luY19tb2RlKTsKIGV4dGVybiB2b2lkIEluc3RySW5pdE5vZGUoTm9kZUluc3Ry dW1lbnRhdGlvbiAqIGluc3RyLCBpbnQgaW5zdHJ1bWVudF9vcHRpb25zKTsKLS0gCjIuNDcuMQoK --00000000000017b5fe063e636bfe Content-Type: application/octet-stream; name="v2-0007-Convert-remaining-users-of-pgBufferUsage-to-use-I.patch" Content-Disposition: attachment; filename="v2-0007-Convert-remaining-users-of-pgBufferUsage-to-use-I.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfcy89rv1 RnJvbSA1NjI2YjRhMzVmOTA4MjZlNzgzNWE0ZjA0N2I5OWZkNDE2NDhlNzI0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWthcyBGaXR0bCA8bHVrYXNAZml0dGwuY29tPgpEYXRlOiBU dWUsIDkgU2VwIDIwMjUgMDI6MjY6NTYgLTA3MDAKU3ViamVjdDogW1BBVENIIHYyIDcvN10gQ29u dmVydCByZW1haW5pbmcgdXNlcnMgb2YgcGdCdWZmZXJVc2FnZSB0byB1c2UKIEluc3RyU3RhcnQv SW5zdHJTdG9wLCBkcm9wIHRoZSBnbG9iYWwKCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAv dmFjdXVtbGF6eS5jIHwgMzUgKysrKysrKystLS0tLS0tLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRz L2FuYWx5emUuYyAgICAgICB8IDM1ICsrKysrKysrLS0tLS0tLS0tCiBzcmMvYmFja2VuZC9jb21t YW5kcy9leHBsYWluLmMgICAgICAgfCAyNiArKysrKy0tLS0tLS0tCiBzcmMvYmFja2VuZC9jb21t YW5kcy9leHBsYWluX2RyLmMgICAgfCAzMSArKysrKysrKy0tLS0tLS0KIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL3ByZXBhcmUuYyAgICAgICB8IDI2ICsrKysrLS0tLS0tLS0KIHNyYy9iYWNrZW5kL2V4 ZWN1dG9yL2luc3RydW1lbnQuYyAgICB8IDU2ICsrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0K IHNyYy9pbmNsdWRlL2V4ZWN1dG9yL2luc3RydW1lbnQuaCAgICB8ICA4ICstLS0KIDcgZmlsZXMg Y2hhbmdlZCwgOTAgaW5zZXJ0aW9ucygrKSwgMTI3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vz cy9oZWFwL3ZhY3V1bWxhenkuYwppbmRleCA5ODFkOTM4MGE5Mi4uYjc5NzhiMzg1ZjMgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYworKysgYi9zcmMvYmFj a2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKQEAgLTYyOCw4ICs2MjgsNyBAQCBoZWFwX3Zh Y3V1bV9yZWwoUmVsYXRpb24gcmVsLCBjb25zdCBWYWN1dW1QYXJhbXMgcGFyYW1zLAogCVRpbWVz dGFtcFR6IHN0YXJ0dGltZSA9IDA7CiAJUGdTdGF0X0NvdW50ZXIgc3RhcnRyZWFkdGltZSA9IDAs CiAJCQkJc3RhcnR3cml0ZXRpbWUgPSAwOwotCVdhbFVzYWdlCXN0YXJ0d2FsdXNhZ2UgPSBwZ1dh bFVzYWdlOwotCUJ1ZmZlclVzYWdlIHN0YXJ0YnVmZmVydXNhZ2UgPSBwZ0J1ZmZlclVzYWdlOwor CUluc3RydW1lbnRhdGlvbiAqaW5zdHIgPSBOVUxMOwogCUVycm9yQ29udGV4dENhbGxiYWNrIGVy cmNhbGxiYWNrOwogCWNoYXIJICAqKmluZG5hbWVzID0gTlVMTDsKIApAQCAtNjQ0LDYgKzY0Myw4 IEBAIGhlYXBfdmFjdXVtX3JlbChSZWxhdGlvbiByZWwsIGNvbnN0IFZhY3V1bVBhcmFtcyBwYXJh bXMsCiAJCQlzdGFydHJlYWR0aW1lID0gcGdTdGF0QmxvY2tSZWFkVGltZTsKIAkJCXN0YXJ0d3Jp dGV0aW1lID0gcGdTdGF0QmxvY2tXcml0ZVRpbWU7CiAJCX0KKwkJaW5zdHIgPSBJbnN0ckFsbG9j KDEsIElOU1RSVU1FTlRfQlVGRkVSUyB8IElOU1RSVU1FTlRfV0FMKTsKKwkJSW5zdHJTdGFydChp bnN0cik7CiAJfQogCiAJLyogVXNlZCBmb3IgaW5zdHJ1bWVudGF0aW9uIGFuZCBzdGF0cyByZXBv cnQgKi8KQEAgLTk0NiwxNCArOTQ3LDE0IEBAIGhlYXBfdmFjdXVtX3JlbChSZWxhdGlvbiByZWws IGNvbnN0IFZhY3V1bVBhcmFtcyBwYXJhbXMsCiAJewogCQlUaW1lc3RhbXBUeiBlbmR0aW1lID0g R2V0Q3VycmVudFRpbWVzdGFtcCgpOwogCisJCUluc3RyU3RvcChpbnN0ciwgMCwgdHJ1ZSk7CisK IAkJaWYgKHZlcmJvc2UgfHwgcGFyYW1zLmxvZ19taW5fZHVyYXRpb24gPT0gMCB8fAogCQkJVGlt ZXN0YW1wRGlmZmVyZW5jZUV4Y2VlZHMoc3RhcnR0aW1lLCBlbmR0aW1lLAogCQkJCQkJCQkJICAg cGFyYW1zLmxvZ19taW5fZHVyYXRpb24pKQogCQl7CiAJCQlsb25nCQlzZWNzX2R1cjsKIAkJCWlu dAkJCXVzZWNzX2R1cjsKLQkJCVdhbFVzYWdlCXdhbHVzYWdlOwotCQkJQnVmZmVyVXNhZ2UgYnVm ZmVydXNhZ2U7CiAJCQlTdHJpbmdJbmZvRGF0YSBidWY7CiAJCQljaGFyCSAgICptc2dmbXQ7CiAJ CQlpbnQzMgkJZGlmZjsKQEAgLTk2NCwxNyArOTY1LDEzIEBAIGhlYXBfdmFjdXVtX3JlbChSZWxh dGlvbiByZWwsIGNvbnN0IFZhY3V1bVBhcmFtcyBwYXJhbXMsCiAJCQlpbnQ2NAkJdG90YWxfYmxr c19kaXJ0aWVkOwogCiAJCQlUaW1lc3RhbXBEaWZmZXJlbmNlKHN0YXJ0dGltZSwgZW5kdGltZSwg JnNlY3NfZHVyLCAmdXNlY3NfZHVyKTsKLQkJCW1lbXNldCgmd2FsdXNhZ2UsIDAsIHNpemVvZihX YWxVc2FnZSkpOwotCQkJV2FsVXNhZ2VBY2N1bURpZmYoJndhbHVzYWdlLCAmcGdXYWxVc2FnZSwg JnN0YXJ0d2FsdXNhZ2UpOwotCQkJbWVtc2V0KCZidWZmZXJ1c2FnZSwgMCwgc2l6ZW9mKEJ1ZmZl clVzYWdlKSk7Ci0JCQlCdWZmZXJVc2FnZUFjY3VtRGlmZigmYnVmZmVydXNhZ2UsICZwZ0J1ZmZl clVzYWdlLCAmc3RhcnRidWZmZXJ1c2FnZSk7Ci0KLQkJCXRvdGFsX2Jsa3NfaGl0ID0gYnVmZmVy dXNhZ2Uuc2hhcmVkX2Jsa3NfaGl0ICsKLQkJCQlidWZmZXJ1c2FnZS5sb2NhbF9ibGtzX2hpdDsK LQkJCXRvdGFsX2Jsa3NfcmVhZCA9IGJ1ZmZlcnVzYWdlLnNoYXJlZF9ibGtzX3JlYWQgKwotCQkJ CWJ1ZmZlcnVzYWdlLmxvY2FsX2Jsa3NfcmVhZDsKLQkJCXRvdGFsX2Jsa3NfZGlydGllZCA9IGJ1 ZmZlcnVzYWdlLnNoYXJlZF9ibGtzX2RpcnRpZWQgKwotCQkJCWJ1ZmZlcnVzYWdlLmxvY2FsX2Js a3NfZGlydGllZDsKKworCQkJdG90YWxfYmxrc19oaXQgPSBJTlNUUl9HRVRfQlVGVVNBR0UoaW5z dHIpLnNoYXJlZF9ibGtzX2hpdCArCisJCQkJSU5TVFJfR0VUX0JVRlVTQUdFKGluc3RyKS5sb2Nh bF9ibGtzX2hpdDsKKwkJCXRvdGFsX2Jsa3NfcmVhZCA9IElOU1RSX0dFVF9CVUZVU0FHRShpbnN0 cikuc2hhcmVkX2Jsa3NfcmVhZCArCisJCQkJSU5TVFJfR0VUX0JVRlVTQUdFKGluc3RyKS5sb2Nh bF9ibGtzX3JlYWQ7CisJCQl0b3RhbF9ibGtzX2RpcnRpZWQgPSBJTlNUUl9HRVRfQlVGVVNBR0Uo aW5zdHIpLnNoYXJlZF9ibGtzX2RpcnRpZWQgKworCQkJCUlOU1RSX0dFVF9CVUZVU0FHRShpbnN0 cikubG9jYWxfYmxrc19kaXJ0aWVkOwogCiAJCQlpbml0U3RyaW5nSW5mbygmYnVmKTsKIAkJCWlm ICh2ZXJib3NlKQpAQCAtMTEzNiwxMCArMTEzMywxMCBAQCBoZWFwX3ZhY3V1bV9yZWwoUmVsYXRp b24gcmVsLCBjb25zdCBWYWN1dW1QYXJhbXMgcGFyYW1zLAogCQkJCQkJCSB0b3RhbF9ibGtzX2Rp cnRpZWQpOwogCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmLAogCQkJCQkJCSBfKCJXQUwgdXNhZ2U6 ICUiIFBSSWQ2NCAiIHJlY29yZHMsICUiIFBSSWQ2NCAiIGZ1bGwgcGFnZSBpbWFnZXMsICUiIFBS SXU2NCAiIGJ5dGVzLCAlIiBQUklkNjQgIiBidWZmZXJzIGZ1bGxcbiIpLAotCQkJCQkJCSB3YWx1 c2FnZS53YWxfcmVjb3JkcywKLQkJCQkJCQkgd2FsdXNhZ2Uud2FsX2ZwaSwKLQkJCQkJCQkgd2Fs dXNhZ2Uud2FsX2J5dGVzLAotCQkJCQkJCSB3YWx1c2FnZS53YWxfYnVmZmVyc19mdWxsKTsKKwkJ CQkJCQkgSU5TVFJfR0VUX1dBTFVTQUdFKGluc3RyKS53YWxfcmVjb3JkcywKKwkJCQkJCQkgSU5T VFJfR0VUX1dBTFVTQUdFKGluc3RyKS53YWxfZnBpLAorCQkJCQkJCSBJTlNUUl9HRVRfV0FMVVNB R0UoaW5zdHIpLndhbF9ieXRlcywKKwkJCQkJCQkgSU5TVFJfR0VUX1dBTFVTQUdFKGluc3RyKS53 YWxfYnVmZmVyc19mdWxsKTsKIAkJCWFwcGVuZFN0cmluZ0luZm8oJmJ1ZiwgXygic3lzdGVtIHVz YWdlOiAlcyIpLCBwZ19ydXNhZ2Vfc2hvdygmcnUwKSk7CiAKIAkJCWVyZXBvcnQodmVyYm9zZSA/ IElORk8gOiBMT0csCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9hbmFseXplLmMg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy9hbmFseXplLmMKaW5kZXggOGVhMjkxM2Q5MDYuLmE0MDdk ODVmODY0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9hbmFseXplLmMKKysrIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvYW5hbHl6ZS5jCkBAIC0zMDIsOSArMzAyLDcgQEAgZG9fYW5h bHl6ZV9yZWwoUmVsYXRpb24gb25lcmVsLCBjb25zdCBWYWN1dW1QYXJhbXMgcGFyYW1zLAogCU9p ZAkJCXNhdmVfdXNlcmlkOwogCWludAkJCXNhdmVfc2VjX2NvbnRleHQ7CiAJaW50CQkJc2F2ZV9u ZXN0bGV2ZWw7Ci0JV2FsVXNhZ2UJc3RhcnR3YWx1c2FnZSA9IHBnV2FsVXNhZ2U7Ci0JQnVmZmVy VXNhZ2Ugc3RhcnRidWZmZXJ1c2FnZSA9IHBnQnVmZmVyVXNhZ2U7Ci0JQnVmZmVyVXNhZ2UgYnVm ZmVydXNhZ2U7CisJSW5zdHJ1bWVudGF0aW9uICppbnN0ciA9IE5VTEw7CiAJUGdTdGF0X0NvdW50 ZXIgc3RhcnRyZWFkdGltZSA9IDA7CiAJUGdTdGF0X0NvdW50ZXIgc3RhcnR3cml0ZXRpbWUgPSAw OwogCkBAIC0zNTUsNiArMzUzLDkgQEAgZG9fYW5hbHl6ZV9yZWwoUmVsYXRpb24gb25lcmVsLCBj b25zdCBWYWN1dW1QYXJhbXMgcGFyYW1zLAogCQl9CiAKIAkJcGdfcnVzYWdlX2luaXQoJnJ1MCk7 CisKKwkJaW5zdHIgPSBJbnN0ckFsbG9jKDEsIElOU1RSVU1FTlRfQlVGRkVSUyB8IElOU1RSVU1F TlRfV0FMKTsKKwkJSW5zdHJTdGFydChpbnN0cik7CiAJfQogCiAJLyogVXNlZCBmb3IgaW5zdHJ1 bWVudGF0aW9uIGFuZCBzdGF0cyByZXBvcnQgKi8KQEAgLTczNSwxMiArNzM2LDEzIEBAIGRvX2Fu YWx5emVfcmVsKFJlbGF0aW9uIG9uZXJlbCwgY29uc3QgVmFjdXVtUGFyYW1zIHBhcmFtcywKIAl7 CiAJCVRpbWVzdGFtcFR6IGVuZHRpbWUgPSBHZXRDdXJyZW50VGltZXN0YW1wKCk7CiAKKwkJSW5z dHJTdG9wKGluc3RyLCAwLCB0cnVlKTsKKwogCQlpZiAodmVyYm9zZSB8fCBwYXJhbXMubG9nX21p bl9kdXJhdGlvbiA9PSAwIHx8CiAJCQlUaW1lc3RhbXBEaWZmZXJlbmNlRXhjZWVkcyhzdGFydHRp bWUsIGVuZHRpbWUsCiAJCQkJCQkJCQkgICBwYXJhbXMubG9nX21pbl9kdXJhdGlvbikpCiAJCXsK IAkJCWxvbmcJCWRlbGF5X2luX21zOwotCQkJV2FsVXNhZ2UJd2FsdXNhZ2U7CiAJCQlkb3VibGUJ CXJlYWRfcmF0ZSA9IDA7CiAJCQlkb3VibGUJCXdyaXRlX3JhdGUgPSAwOwogCQkJY2hhcgkgICAq bXNnZm10OwpAQCAtNzQ5LDE3ICs3NTEsMTIgQEAgZG9fYW5hbHl6ZV9yZWwoUmVsYXRpb24gb25l cmVsLCBjb25zdCBWYWN1dW1QYXJhbXMgcGFyYW1zLAogCQkJaW50NjQJCXRvdGFsX2Jsa3NfcmVh ZDsKIAkJCWludDY0CQl0b3RhbF9ibGtzX2RpcnRpZWQ7CiAKLQkJCW1lbXNldCgmYnVmZmVydXNh Z2UsIDAsIHNpemVvZihCdWZmZXJVc2FnZSkpOwotCQkJQnVmZmVyVXNhZ2VBY2N1bURpZmYoJmJ1 ZmZlcnVzYWdlLCAmcGdCdWZmZXJVc2FnZSwgJnN0YXJ0YnVmZmVydXNhZ2UpOwotCQkJbWVtc2V0 KCZ3YWx1c2FnZSwgMCwgc2l6ZW9mKFdhbFVzYWdlKSk7Ci0JCQlXYWxVc2FnZUFjY3VtRGlmZigm d2FsdXNhZ2UsICZwZ1dhbFVzYWdlLCAmc3RhcnR3YWx1c2FnZSk7Ci0KLQkJCXRvdGFsX2Jsa3Nf aGl0ID0gYnVmZmVydXNhZ2Uuc2hhcmVkX2Jsa3NfaGl0ICsKLQkJCQlidWZmZXJ1c2FnZS5sb2Nh bF9ibGtzX2hpdDsKLQkJCXRvdGFsX2Jsa3NfcmVhZCA9IGJ1ZmZlcnVzYWdlLnNoYXJlZF9ibGtz X3JlYWQgKwotCQkJCWJ1ZmZlcnVzYWdlLmxvY2FsX2Jsa3NfcmVhZDsKLQkJCXRvdGFsX2Jsa3Nf ZGlydGllZCA9IGJ1ZmZlcnVzYWdlLnNoYXJlZF9ibGtzX2RpcnRpZWQgKwotCQkJCWJ1ZmZlcnVz YWdlLmxvY2FsX2Jsa3NfZGlydGllZDsKKwkJCXRvdGFsX2Jsa3NfaGl0ID0gSU5TVFJfR0VUX0JV RlVTQUdFKGluc3RyKS5zaGFyZWRfYmxrc19oaXQgKworCQkJCUlOU1RSX0dFVF9CVUZVU0FHRShp bnN0cikubG9jYWxfYmxrc19oaXQ7CisJCQl0b3RhbF9ibGtzX3JlYWQgPSBJTlNUUl9HRVRfQlVG VVNBR0UoaW5zdHIpLnNoYXJlZF9ibGtzX3JlYWQgKworCQkJCUlOU1RSX0dFVF9CVUZVU0FHRShp bnN0cikubG9jYWxfYmxrc19yZWFkOworCQkJdG90YWxfYmxrc19kaXJ0aWVkID0gSU5TVFJfR0VU X0JVRlVTQUdFKGluc3RyKS5zaGFyZWRfYmxrc19kaXJ0aWVkICsKKwkJCQlJTlNUUl9HRVRfQlVG VVNBR0UoaW5zdHIpLmxvY2FsX2Jsa3NfZGlydGllZDsKIAogCQkJLyoKIAkJCSAqIFdlIGRvIG5v dCBleHBlY3QgYW4gYW5hbHl6ZSB0byB0YWtlID4gMjUgZGF5cyBhbmQgaXQgc2ltcGxpZmllcwpA QCAtODMyLDEwICs4MjksMTAgQEAgZG9fYW5hbHl6ZV9yZWwoUmVsYXRpb24gb25lcmVsLCBjb25z dCBWYWN1dW1QYXJhbXMgcGFyYW1zLAogCQkJCQkJCSB0b3RhbF9ibGtzX2RpcnRpZWQpOwogCQkJ YXBwZW5kU3RyaW5nSW5mbygmYnVmLAogCQkJCQkJCSBfKCJXQUwgdXNhZ2U6ICUiIFBSSWQ2NCAi IHJlY29yZHMsICUiIFBSSWQ2NCAiIGZ1bGwgcGFnZSBpbWFnZXMsICUiIFBSSXU2NCAiIGJ5dGVz LCAlIiBQUklkNjQgIiBidWZmZXJzIGZ1bGxcbiIpLAotCQkJCQkJCSB3YWx1c2FnZS53YWxfcmVj b3JkcywKLQkJCQkJCQkgd2FsdXNhZ2Uud2FsX2ZwaSwKLQkJCQkJCQkgd2FsdXNhZ2Uud2FsX2J5 dGVzLAotCQkJCQkJCSB3YWx1c2FnZS53YWxfYnVmZmVyc19mdWxsKTsKKwkJCQkJCQkgSU5TVFJf R0VUX1dBTFVTQUdFKGluc3RyKS53YWxfcmVjb3JkcywKKwkJCQkJCQkgSU5TVFJfR0VUX1dBTFVT QUdFKGluc3RyKS53YWxfZnBpLAorCQkJCQkJCSBJTlNUUl9HRVRfV0FMVVNBR0UoaW5zdHIpLndh bF9ieXRlcywKKwkJCQkJCQkgSU5TVFJfR0VUX1dBTFVTQUdFKGluc3RyKS53YWxfYnVmZmVyc19m dWxsKTsKIAkJCWFwcGVuZFN0cmluZ0luZm8oJmJ1ZiwgXygic3lzdGVtIHVzYWdlOiAlcyIpLCBw Z19ydXNhZ2Vfc2hvdygmcnUwKSk7CiAKIAkJCWVyZXBvcnQodmVyYm9zZSA/IElORk8gOiBMT0cs CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMgYi9zcmMvYmFja2Vu ZC9jb21tYW5kcy9leHBsYWluLmMKaW5kZXggMWM0ZDBlMTQzMzQuLmFhYmI1ZTFkZDA4IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMKKysrIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvZXhwbGFpbi5jCkBAIC0zMjEsMTQgKzMyMSwxNiBAQCBzdGFuZGFyZF9FeHBsYWlu T25lUXVlcnkoUXVlcnkgKnF1ZXJ5LCBpbnQgY3Vyc29yT3B0aW9ucywKIAkJCQkJCSBRdWVyeUVu dmlyb25tZW50ICpxdWVyeUVudikKIHsKIAlQbGFubmVkU3RtdCAqcGxhbjsKLQlpbnN0cl90aW1l CXBsYW5zdGFydCwKLQkJCQlwbGFuZHVyYXRpb247Ci0JQnVmZmVyVXNhZ2UgYnVmdXNhZ2Vfc3Rh cnQsCi0JCQkJYnVmdXNhZ2U7CisJSW5zdHJ1bWVudGF0aW9uICppbnN0ciA9IE5VTEw7CiAJTWVt b3J5Q29udGV4dENvdW50ZXJzIG1lbV9jb3VudGVyczsKIAlNZW1vcnlDb250ZXh0IHBsYW5uZXJf Y3R4ID0gTlVMTDsKIAlNZW1vcnlDb250ZXh0IHNhdmVkX2N0eCA9IE5VTEw7CiAKKwlpZiAoZXMt PmJ1ZmZlcnMpCisJCWluc3RyID0gSW5zdHJBbGxvYygxLCBJTlNUUlVNRU5UX1RJTUVSIHwgSU5T VFJVTUVOVF9CVUZGRVJTKTsKKwllbHNlCisJCWluc3RyID0gSW5zdHJBbGxvYygxLCBJTlNUUlVN RU5UX1RJTUVSKTsKKwogCWlmIChlcy0+bWVtb3J5KQogCXsKIAkJLyoKQEAgLTM0NSwxNSArMzQ3 LDEyIEBAIHN0YW5kYXJkX0V4cGxhaW5PbmVRdWVyeShRdWVyeSAqcXVlcnksIGludCBjdXJzb3JP cHRpb25zLAogCQlzYXZlZF9jdHggPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8ocGxhbm5lcl9jdHgp OwogCX0KIAotCWlmIChlcy0+YnVmZmVycykKLQkJYnVmdXNhZ2Vfc3RhcnQgPSBwZ0J1ZmZlclVz YWdlOwotCUlOU1RSX1RJTUVfU0VUX0NVUlJFTlQocGxhbnN0YXJ0KTsKKwlJbnN0clN0YXJ0KGlu c3RyKTsKIAogCS8qIHBsYW4gdGhlIHF1ZXJ5ICovCiAJcGxhbiA9IHBnX3BsYW5fcXVlcnkocXVl cnksIHF1ZXJ5U3RyaW5nLCBjdXJzb3JPcHRpb25zLCBwYXJhbXMpOwogCi0JSU5TVFJfVElNRV9T RVRfQ1VSUkVOVChwbGFuZHVyYXRpb24pOwotCUlOU1RSX1RJTUVfU1VCVFJBQ1QocGxhbmR1cmF0 aW9uLCBwbGFuc3RhcnQpOworCUluc3RyU3RvcChpbnN0ciwgMCwgdHJ1ZSk7CiAKIAlpZiAoZXMt Pm1lbW9yeSkKIAl7CkBAIC0zNjEsMTYgKzM2MCw5IEBAIHN0YW5kYXJkX0V4cGxhaW5PbmVRdWVy eShRdWVyeSAqcXVlcnksIGludCBjdXJzb3JPcHRpb25zLAogCQlNZW1vcnlDb250ZXh0TWVtQ29u c3VtZWQocGxhbm5lcl9jdHgsICZtZW1fY291bnRlcnMpOwogCX0KIAotCS8qIGNhbGMgZGlmZmVy ZW5jZXMgb2YgYnVmZmVyIGNvdW50ZXJzLiAqLwotCWlmIChlcy0+YnVmZmVycykKLQl7Ci0JCW1l bXNldCgmYnVmdXNhZ2UsIDAsIHNpemVvZihCdWZmZXJVc2FnZSkpOwotCQlCdWZmZXJVc2FnZUFj Y3VtRGlmZigmYnVmdXNhZ2UsICZwZ0J1ZmZlclVzYWdlLCAmYnVmdXNhZ2Vfc3RhcnQpOwotCX0K LQogCS8qIHJ1biBpdCAoaWYgbmVlZGVkKSBhbmQgcHJvZHVjZSBvdXRwdXQgKi8KIAlFeHBsYWlu T25lUGxhbihwbGFuLCBpbnRvLCBlcywgcXVlcnlTdHJpbmcsIHBhcmFtcywgcXVlcnlFbnYsCi0J CQkJICAgJnBsYW5kdXJhdGlvbiwgKGVzLT5idWZmZXJzID8gJmJ1ZnVzYWdlIDogTlVMTCksCisJ CQkJICAgJmluc3RyLT50b3RhbCwgKGVzLT5idWZmZXJzID8gJklOU1RSX0dFVF9CVUZVU0FHRShp bnN0cikgOiBOVUxMKSwKIAkJCQkgICBlcy0+bWVtb3J5ID8gJm1lbV9jb3VudGVycyA6IE5VTEwp OwogfQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluX2RyLmMgYi9z cmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluX2RyLmMKaW5kZXggNTcxNTU0NmNmNDMuLjUxZjQ5 OGFhMWI0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluX2RyLmMKKysr IGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbl9kci5jCkBAIC0xMDksMTUgKzEwOSwyMCBA QCBzZXJpYWxpemVBbmFseXplUmVjZWl2ZShUdXBsZVRhYmxlU2xvdCAqc2xvdCwgRGVzdFJlY2Vp dmVyICpzZWxmKQogCU1lbW9yeUNvbnRleHQgb2xkY29udGV4dDsKIAlTdHJpbmdJbmZvCWJ1ZiA9 ICZteVN0YXRlLT5idWY7CiAJaW50CQkJbmF0dHMgPSB0eXBlaW5mby0+bmF0dHM7Ci0JaW5zdHJf dGltZQlzdGFydCwKLQkJCQllbmQ7Ci0JQnVmZmVyVXNhZ2UgaW5zdHJfc3RhcnQ7CisJSW5zdHJ1 bWVudGF0aW9uICppbnN0ciA9IE5VTEw7CiAKIAkvKiBvbmx5IG1lYXN1cmUgdGltZSwgYnVmZmVy cyBpZiByZXF1ZXN0ZWQgKi8KLQlpZiAobXlTdGF0ZS0+ZXMtPnRpbWluZykKLQkJSU5TVFJfVElN RV9TRVRfQ1VSUkVOVChzdGFydCk7Ci0JaWYgKG15U3RhdGUtPmVzLT5idWZmZXJzKQotCQlpbnN0 cl9zdGFydCA9IHBnQnVmZmVyVXNhZ2U7CisJaWYgKG15U3RhdGUtPmVzLT50aW1pbmcgfHwgbXlT dGF0ZS0+ZXMtPmJ1ZmZlcnMpCisJeworCQlJbnN0cnVtZW50T3B0aW9uIGluc3RydW1lbnRfb3B0 aW9ucyA9IDA7CisKKwkJaWYgKG15U3RhdGUtPmVzLT50aW1pbmcpCisJCQlpbnN0cnVtZW50X29w dGlvbnMgfD0gSU5TVFJVTUVOVF9USU1FUjsKKwkJaWYgKG15U3RhdGUtPmVzLT5idWZmZXJzKQor CQkJaW5zdHJ1bWVudF9vcHRpb25zIHw9IElOU1RSVU1FTlRfQlVGRkVSUzsKKwkJaW5zdHIgPSBJ bnN0ckFsbG9jKDEsIGluc3RydW1lbnRfb3B0aW9ucyk7CisJCUluc3RyU3RhcnQoaW5zdHIpOwor CX0KIAogCS8qIFNldCBvciB1cGRhdGUgbXkgZGVyaXZlZCBhdHRyaWJ1dGUgaW5mbywgaWYgbmVl ZGVkICovCiAJaWYgKG15U3RhdGUtPmF0dHJpbmZvICE9IHR5cGVpbmZvIHx8IG15U3RhdGUtPm5h dHRycyAhPSBuYXR0cykKQEAgLTE4NSwxOCArMTkwLDE2IEBAIHNlcmlhbGl6ZUFuYWx5emVSZWNl aXZlKFR1cGxlVGFibGVTbG90ICpzbG90LCBEZXN0UmVjZWl2ZXIgKnNlbGYpCiAJTWVtb3J5Q29u dGV4dFN3aXRjaFRvKG9sZGNvbnRleHQpOwogCU1lbW9yeUNvbnRleHRSZXNldChteVN0YXRlLT50 bXBjb250ZXh0KTsKIAorCWlmIChteVN0YXRlLT5lcy0+dGltaW5nIHx8IG15U3RhdGUtPmVzLT5i dWZmZXJzKQorCQlJbnN0clN0b3AoaW5zdHIsIDAsIHRydWUpOworCiAJLyogVXBkYXRlIHRpbWlu ZyBkYXRhICovCiAJaWYgKG15U3RhdGUtPmVzLT50aW1pbmcpCi0JewotCQlJTlNUUl9USU1FX1NF VF9DVVJSRU5UKGVuZCk7Ci0JCUlOU1RSX1RJTUVfQUNDVU1fRElGRihteVN0YXRlLT5tZXRyaWNz LnRpbWVTcGVudCwgZW5kLCBzdGFydCk7Ci0JfQorCQlJTlNUUl9USU1FX0FERChteVN0YXRlLT5t ZXRyaWNzLnRpbWVTcGVudCwgaW5zdHItPnRvdGFsKTsKIAogCS8qIFVwZGF0ZSBidWZmZXIgbWV0 cmljcyAqLwogCWlmIChteVN0YXRlLT5lcy0+YnVmZmVycykKLQkJQnVmZmVyVXNhZ2VBY2N1bURp ZmYoJm15U3RhdGUtPm1ldHJpY3MuYnVmZmVyVXNhZ2UsCi0JCQkJCQkJICZwZ0J1ZmZlclVzYWdl LAotCQkJCQkJCSAmaW5zdHJfc3RhcnQpOworCQlCdWZmZXJVc2FnZUFkZCgmbXlTdGF0ZS0+bWV0 cmljcy5idWZmZXJVc2FnZSwgJklOU1RSX0dFVF9CVUZVU0FHRShpbnN0cikpOwogCiAJcmV0dXJu IHRydWU7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9wcmVwYXJlLmMgYi9z cmMvYmFja2VuZC9jb21tYW5kcy9wcmVwYXJlLmMKaW5kZXggMzRiNjQxMGQ2YTIuLmQ5MmFlYjZh MWRmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9wcmVwYXJlLmMKKysrIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jCkBAIC01NzgsMTQgKzU3OCwxNiBAQCBFeHBsYWlu RXhlY3V0ZVF1ZXJ5KEV4ZWN1dGVTdG10ICpleGVjc3RtdCwgSW50b0NsYXVzZSAqaW50bywgRXhw bGFpblN0YXRlICplcywKIAlMaXN0Q2VsbCAgICpwOwogCVBhcmFtTGlzdEluZm8gcGFyYW1MSSA9 IE5VTEw7CiAJRVN0YXRlCSAgICplc3RhdGUgPSBOVUxMOwotCWluc3RyX3RpbWUJcGxhbnN0YXJ0 OwotCWluc3RyX3RpbWUJcGxhbmR1cmF0aW9uOwotCUJ1ZmZlclVzYWdlIGJ1ZnVzYWdlX3N0YXJ0 LAotCQkJCWJ1ZnVzYWdlOworCUluc3RydW1lbnRhdGlvbiAqaW5zdHIgPSBOVUxMOwogCU1lbW9y eUNvbnRleHRDb3VudGVycyBtZW1fY291bnRlcnM7CiAJTWVtb3J5Q29udGV4dCBwbGFubmVyX2N0 eCA9IE5VTEw7CiAJTWVtb3J5Q29udGV4dCBzYXZlZF9jdHggPSBOVUxMOwogCisJaWYgKGVzLT5i dWZmZXJzKQorCQlpbnN0ciA9IEluc3RyQWxsb2MoMSwgSU5TVFJVTUVOVF9USU1FUiB8IElOU1RS VU1FTlRfQlVGRkVSUyk7CisJZWxzZQorCQlpbnN0ciA9IEluc3RyQWxsb2MoMSwgSU5TVFJVTUVO VF9USU1FUik7CisKIAlpZiAoZXMtPm1lbW9yeSkKIAl7CiAJCS8qIFNlZSBFeHBsYWluT25lUXVl cnkgYWJvdXQgdGhpcyAqLwpAQCAtNTk2LDkgKzU5OCw3IEBAIEV4cGxhaW5FeGVjdXRlUXVlcnko RXhlY3V0ZVN0bXQgKmV4ZWNzdG10LCBJbnRvQ2xhdXNlICppbnRvLCBFeHBsYWluU3RhdGUgKmVz LAogCQlzYXZlZF9jdHggPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8ocGxhbm5lcl9jdHgpOwogCX0K IAotCWlmIChlcy0+YnVmZmVycykKLQkJYnVmdXNhZ2Vfc3RhcnQgPSBwZ0J1ZmZlclVzYWdlOwot CUlOU1RSX1RJTUVfU0VUX0NVUlJFTlQocGxhbnN0YXJ0KTsKKwlJbnN0clN0YXJ0KGluc3RyKTsK IAogCS8qIExvb2sgaXQgdXAgaW4gdGhlIGhhc2ggdGFibGUgKi8KIAllbnRyeSA9IEZldGNoUHJl cGFyZWRTdGF0ZW1lbnQoZXhlY3N0bXQtPm5hbWUsIHRydWUpOwpAQCAtNjMzLDggKzYzMyw3IEBA IEV4cGxhaW5FeGVjdXRlUXVlcnkoRXhlY3V0ZVN0bXQgKmV4ZWNzdG10LCBJbnRvQ2xhdXNlICpp bnRvLCBFeHBsYWluU3RhdGUgKmVzLAogCWNwbGFuID0gR2V0Q2FjaGVkUGxhbihlbnRyeS0+cGxh bnNvdXJjZSwgcGFyYW1MSSwKIAkJCQkJCSAgQ3VycmVudFJlc291cmNlT3duZXIsIHBzdGF0ZS0+ cF9xdWVyeUVudik7CiAKLQlJTlNUUl9USU1FX1NFVF9DVVJSRU5UKHBsYW5kdXJhdGlvbik7Ci0J SU5TVFJfVElNRV9TVUJUUkFDVChwbGFuZHVyYXRpb24sIHBsYW5zdGFydCk7CisJSW5zdHJTdG9w KGluc3RyLCAwLCB0cnVlKTsKIAogCWlmIChlcy0+bWVtb3J5KQogCXsKQEAgLTY0MiwxMyArNjQx LDYgQEAgRXhwbGFpbkV4ZWN1dGVRdWVyeShFeGVjdXRlU3RtdCAqZXhlY3N0bXQsIEludG9DbGF1 c2UgKmludG8sIEV4cGxhaW5TdGF0ZSAqZXMsCiAJCU1lbW9yeUNvbnRleHRNZW1Db25zdW1lZChw bGFubmVyX2N0eCwgJm1lbV9jb3VudGVycyk7CiAJfQogCi0JLyogY2FsYyBkaWZmZXJlbmNlcyBv ZiBidWZmZXIgY291bnRlcnMuICovCi0JaWYgKGVzLT5idWZmZXJzKQotCXsKLQkJbWVtc2V0KCZi dWZ1c2FnZSwgMCwgc2l6ZW9mKEJ1ZmZlclVzYWdlKSk7Ci0JCUJ1ZmZlclVzYWdlQWNjdW1EaWZm KCZidWZ1c2FnZSwgJnBnQnVmZmVyVXNhZ2UsICZidWZ1c2FnZV9zdGFydCk7Ci0JfQotCiAJcGxh bl9saXN0ID0gY3BsYW4tPnN0bXRfbGlzdDsKIAogCS8qIEV4cGxhaW4gZWFjaCBxdWVyeSAqLwpA QCAtNjU4LDcgKzY1MCw3IEBAIEV4cGxhaW5FeGVjdXRlUXVlcnkoRXhlY3V0ZVN0bXQgKmV4ZWNz dG10LCBJbnRvQ2xhdXNlICppbnRvLCBFeHBsYWluU3RhdGUgKmVzLAogCiAJCWlmIChwc3RtdC0+ Y29tbWFuZFR5cGUgIT0gQ01EX1VUSUxJVFkpCiAJCQlFeHBsYWluT25lUGxhbihwc3RtdCwgaW50 bywgZXMsIHF1ZXJ5X3N0cmluZywgcGFyYW1MSSwgcHN0YXRlLT5wX3F1ZXJ5RW52LAotCQkJCQkJ ICAgJnBsYW5kdXJhdGlvbiwgKGVzLT5idWZmZXJzID8gJmJ1ZnVzYWdlIDogTlVMTCksCisJCQkJ CQkgICAmaW5zdHItPnRvdGFsLCAoZXMtPmJ1ZmZlcnMgPyAmSU5TVFJfR0VUX0JVRlVTQUdFKGlu c3RyKSA6IE5VTEwpLAogCQkJCQkJICAgZXMtPm1lbW9yeSA/ICZtZW1fY291bnRlcnMgOiBOVUxM KTsKIAkJZWxzZQogCQkJRXhwbGFpbk9uZVV0aWxpdHkocHN0bXQtPnV0aWxpdHlTdG10LCBpbnRv LCBlcywgcHN0YXRlLCBwYXJhbUxJKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L2luc3RydW1lbnQuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2luc3RydW1lbnQuYwppbmRleCBk NWZkYmVjYjAyNS4uZDYxODMwYTdmZDggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L2luc3RydW1lbnQuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9pbnN0cnVtZW50LmMKQEAg LTE4LDExICsxOCw5IEBACiAjaW5jbHVkZSAiZXhlY3V0b3IvaW5zdHJ1bWVudC5oIgogI2luY2x1 ZGUgInV0aWxzL21lbXV0aWxzLmgiCiAKLUJ1ZmZlclVzYWdlIHBnQnVmZmVyVXNhZ2U7CiBXYWxV c2FnZQlwZ1dhbFVzYWdlOwogSW5zdHJTdGFjayAqcGdJbnN0clN0YWNrID0gTlVMTDsKIAotc3Rh dGljIHZvaWQgQnVmZmVyVXNhZ2VBZGQoQnVmZmVyVXNhZ2UgKmRzdCwgY29uc3QgQnVmZmVyVXNh Z2UgKmFkZCk7CiBzdGF0aWMgdm9pZCBXYWxVc2FnZUFkZChXYWxVc2FnZSAqZHN0LCBXYWxVc2Fn ZSAqYWRkKTsKIAogLyoKQEAgLTExMyw2ICsxMTEsMjcgQEAgUmVzT3duZXJSZWxlYXNlSW5zdHJ1 bWVudGF0aW9uKERhdHVtIHJlcykKIAlpbnN0ci0+ZmluYWxpemVkID0gdHJ1ZTsKIH0KIAorSW5z dHJTdGFjayAqCitJbnN0clB1c2hTdGFjaygpCit7CisJSW5zdHJTdGFjayAqc3RhY2sgPSBwYWxs b2MwKHNpemVvZihJbnN0clN0YWNrKSk7CisKKwlzdGFjay0+cHJldmlvdXMgPSBwZ0luc3RyU3Rh Y2s7CisJcGdJbnN0clN0YWNrID0gc3RhY2s7CisKKwlyZXR1cm4gc3RhY2s7Cit9CisKK3ZvaWQK K0luc3RyUG9wU3RhY2soSW5zdHJTdGFjayAqIHN0YWNrKQoreworCUFzc2VydChzdGFjayAhPSBO VUxMKTsKKworCXBnSW5zdHJTdGFjayA9IHN0YWNrLT5wcmV2aW91czsKKwlpZiAocGdJbnN0clN0 YWNrKQorCQlJbnN0clN0YWNrQWRkKHBnSW5zdHJTdGFjaywgc3RhY2spOworfQorCiAvKiBHZW5l cmFsIHB1cnBvc2UgaW5zdHJ1bWVudGF0aW9uIGhhbmRsaW5nICovCiBJbnN0cnVtZW50YXRpb24g KgogSW5zdHJBbGxvYyhpbnQgbiwgaW50IGluc3RydW1lbnRfb3B0aW9ucykKQEAgLTM5MywxMiAr NDEyLDExIEBAIEluc3RyQWNjdW1QYXJhbGxlbFF1ZXJ5KEJ1ZmZlclVzYWdlICpidWZ1c2FnZSwg V2FsVXNhZ2UgKndhbHVzYWdlKQogCQlXYWxVc2FnZUFkZCgmZHN0LT53YWx1c2FnZSwgd2FsdXNh Z2UpOwogCX0KIAotCUJ1ZmZlclVzYWdlQWRkKCZwZ0J1ZmZlclVzYWdlLCBidWZ1c2FnZSk7CiAJ V2FsVXNhZ2VBZGQoJnBnV2FsVXNhZ2UsIHdhbHVzYWdlKTsKIH0KIAogLyogZHN0ICs9IGFkZCAq Lwotc3RhdGljIHZvaWQKK3ZvaWQKIEJ1ZmZlclVzYWdlQWRkKEJ1ZmZlclVzYWdlICpkc3QsIGNv bnN0IEJ1ZmZlclVzYWdlICphZGQpCiB7CiAJZHN0LT5zaGFyZWRfYmxrc19oaXQgKz0gYWRkLT5z aGFyZWRfYmxrc19oaXQ7CkBAIC00MTksMzYgKzQzNyw2IEBAIEJ1ZmZlclVzYWdlQWRkKEJ1ZmZl clVzYWdlICpkc3QsIGNvbnN0IEJ1ZmZlclVzYWdlICphZGQpCiAJSU5TVFJfVElNRV9BREQoZHN0 LT50ZW1wX2Jsa193cml0ZV90aW1lLCBhZGQtPnRlbXBfYmxrX3dyaXRlX3RpbWUpOwogfQogCi0v KiBkc3QgKz0gYWRkIC0gc3ViICovCi12b2lkCi1CdWZmZXJVc2FnZUFjY3VtRGlmZihCdWZmZXJV c2FnZSAqZHN0LAotCQkJCQkgY29uc3QgQnVmZmVyVXNhZ2UgKmFkZCwKLQkJCQkJIGNvbnN0IEJ1 ZmZlclVzYWdlICpzdWIpCi17Ci0JZHN0LT5zaGFyZWRfYmxrc19oaXQgKz0gYWRkLT5zaGFyZWRf Ymxrc19oaXQgLSBzdWItPnNoYXJlZF9ibGtzX2hpdDsKLQlkc3QtPnNoYXJlZF9ibGtzX3JlYWQg Kz0gYWRkLT5zaGFyZWRfYmxrc19yZWFkIC0gc3ViLT5zaGFyZWRfYmxrc19yZWFkOwotCWRzdC0+ c2hhcmVkX2Jsa3NfZGlydGllZCArPSBhZGQtPnNoYXJlZF9ibGtzX2RpcnRpZWQgLSBzdWItPnNo YXJlZF9ibGtzX2RpcnRpZWQ7Ci0JZHN0LT5zaGFyZWRfYmxrc193cml0dGVuICs9IGFkZC0+c2hh cmVkX2Jsa3Nfd3JpdHRlbiAtIHN1Yi0+c2hhcmVkX2Jsa3Nfd3JpdHRlbjsKLQlkc3QtPmxvY2Fs X2Jsa3NfaGl0ICs9IGFkZC0+bG9jYWxfYmxrc19oaXQgLSBzdWItPmxvY2FsX2Jsa3NfaGl0Owot CWRzdC0+bG9jYWxfYmxrc19yZWFkICs9IGFkZC0+bG9jYWxfYmxrc19yZWFkIC0gc3ViLT5sb2Nh bF9ibGtzX3JlYWQ7Ci0JZHN0LT5sb2NhbF9ibGtzX2RpcnRpZWQgKz0gYWRkLT5sb2NhbF9ibGtz X2RpcnRpZWQgLSBzdWItPmxvY2FsX2Jsa3NfZGlydGllZDsKLQlkc3QtPmxvY2FsX2Jsa3Nfd3Jp dHRlbiArPSBhZGQtPmxvY2FsX2Jsa3Nfd3JpdHRlbiAtIHN1Yi0+bG9jYWxfYmxrc193cml0dGVu OwotCWRzdC0+dGVtcF9ibGtzX3JlYWQgKz0gYWRkLT50ZW1wX2Jsa3NfcmVhZCAtIHN1Yi0+dGVt cF9ibGtzX3JlYWQ7Ci0JZHN0LT50ZW1wX2Jsa3Nfd3JpdHRlbiArPSBhZGQtPnRlbXBfYmxrc193 cml0dGVuIC0gc3ViLT50ZW1wX2Jsa3Nfd3JpdHRlbjsKLQlJTlNUUl9USU1FX0FDQ1VNX0RJRkYo ZHN0LT5zaGFyZWRfYmxrX3JlYWRfdGltZSwKLQkJCQkJCSAgYWRkLT5zaGFyZWRfYmxrX3JlYWRf dGltZSwgc3ViLT5zaGFyZWRfYmxrX3JlYWRfdGltZSk7Ci0JSU5TVFJfVElNRV9BQ0NVTV9ESUZG KGRzdC0+c2hhcmVkX2Jsa193cml0ZV90aW1lLAotCQkJCQkJICBhZGQtPnNoYXJlZF9ibGtfd3Jp dGVfdGltZSwgc3ViLT5zaGFyZWRfYmxrX3dyaXRlX3RpbWUpOwotCUlOU1RSX1RJTUVfQUNDVU1f RElGRihkc3QtPmxvY2FsX2Jsa19yZWFkX3RpbWUsCi0JCQkJCQkgIGFkZC0+bG9jYWxfYmxrX3Jl YWRfdGltZSwgc3ViLT5sb2NhbF9ibGtfcmVhZF90aW1lKTsKLQlJTlNUUl9USU1FX0FDQ1VNX0RJ RkYoZHN0LT5sb2NhbF9ibGtfd3JpdGVfdGltZSwKLQkJCQkJCSAgYWRkLT5sb2NhbF9ibGtfd3Jp dGVfdGltZSwgc3ViLT5sb2NhbF9ibGtfd3JpdGVfdGltZSk7Ci0JSU5TVFJfVElNRV9BQ0NVTV9E SUZGKGRzdC0+dGVtcF9ibGtfcmVhZF90aW1lLAotCQkJCQkJICBhZGQtPnRlbXBfYmxrX3JlYWRf dGltZSwgc3ViLT50ZW1wX2Jsa19yZWFkX3RpbWUpOwotCUlOU1RSX1RJTUVfQUNDVU1fRElGRihk c3QtPnRlbXBfYmxrX3dyaXRlX3RpbWUsCi0JCQkJCQkgIGFkZC0+dGVtcF9ibGtfd3JpdGVfdGlt ZSwgc3ViLT50ZW1wX2Jsa193cml0ZV90aW1lKTsKLX0KLQogLyogaGVscGVyIGZ1bmN0aW9ucyBm b3IgV0FMIHVzYWdlIGFjY3VtdWxhdGlvbiAqLwogc3RhdGljIHZvaWQKIFdhbFVzYWdlQWRkKFdh bFVzYWdlICpkc3QsIFdhbFVzYWdlICphZGQpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9leGVj dXRvci9pbnN0cnVtZW50LmggYi9zcmMvaW5jbHVkZS9leGVjdXRvci9pbnN0cnVtZW50LmgKaW5k ZXggODgwNGVlNjQzMTEuLmU0NWM0NTJiYzc5IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9leGVj dXRvci9pbnN0cnVtZW50LmgKKysrIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3IvaW5zdHJ1bWVudC5o CkBAIC0xMzksNyArMTM5LDYgQEAgdHlwZWRlZiBzdHJ1Y3QgV29ya2VySW5zdHJ1bWVudGF0aW9u CiAJTm9kZUluc3RydW1lbnRhdGlvbiBpbnN0cnVtZW50W0ZMRVhJQkxFX0FSUkFZX01FTUJFUl07 CiB9IFdvcmtlckluc3RydW1lbnRhdGlvbjsKIAotZXh0ZXJuIFBHRExMSU1QT1JUIEJ1ZmZlclVz YWdlIHBnQnVmZmVyVXNhZ2U7CiBleHRlcm4gUEdETExJTVBPUlQgV2FsVXNhZ2UgcGdXYWxVc2Fn ZTsKIGV4dGVybiBQR0RMTElNUE9SVCBJbnN0clN0YWNrICogcGdJbnN0clN0YWNrOwogCkBAIC0x NjIsOSArMTYxLDggQEAgZXh0ZXJuIHZvaWQgSW5zdHJBZ2dOb2RlKE5vZGVJbnN0cnVtZW50YXRp b24gKiBkc3QsIE5vZGVJbnN0cnVtZW50YXRpb24gKiBhZGQpOwogZXh0ZXJuIEluc3RydW1lbnRh dGlvbiAqSW5zdHJTdGFydFBhcmFsbGVsUXVlcnkodm9pZCk7CiBleHRlcm4gdm9pZCBJbnN0ckVu ZFBhcmFsbGVsUXVlcnkoSW5zdHJ1bWVudGF0aW9uICppbnN0ciwgQnVmZmVyVXNhZ2UgKmJ1ZnVz YWdlLCBXYWxVc2FnZSAqd2FsdXNhZ2UpOwogZXh0ZXJuIHZvaWQgSW5zdHJBY2N1bVBhcmFsbGVs UXVlcnkoQnVmZmVyVXNhZ2UgKmJ1ZnVzYWdlLCBXYWxVc2FnZSAqd2FsdXNhZ2UpOwotZXh0ZXJu IHZvaWQgQnVmZmVyVXNhZ2VBY2N1bURpZmYoQnVmZmVyVXNhZ2UgKmRzdCwKLQkJCQkJCQkJIGNv bnN0IEJ1ZmZlclVzYWdlICphZGQsIGNvbnN0IEJ1ZmZlclVzYWdlICpzdWIpOwogZXh0ZXJuIHZv aWQgSW5zdHJTdGFja0FkZChJbnN0clN0YWNrICogZHN0LCBJbnN0clN0YWNrICogYWRkKTsKK2V4 dGVybiB2b2lkIEJ1ZmZlclVzYWdlQWRkKEJ1ZmZlclVzYWdlICpkc3QsIGNvbnN0IEJ1ZmZlclVz YWdlICphZGQpOwogZXh0ZXJuIHZvaWQgV2FsVXNhZ2VBY2N1bURpZmYoV2FsVXNhZ2UgKmRzdCwg Y29uc3QgV2FsVXNhZ2UgKmFkZCwKIAkJCQkJCQkgIGNvbnN0IFdhbFVzYWdlICpzdWIpOwogCkBA IC0xNzUsMjIgKzE3MywxOCBAQCBleHRlcm4gdm9pZCBXYWxVc2FnZUFjY3VtRGlmZihXYWxVc2Fn ZSAqZHN0LCBjb25zdCBXYWxVc2FnZSAqYWRkLAogCWluc3RyLT5zdGFjay53YWx1c2FnZQogCiAj ZGVmaW5lIElOU1RSX0JVRlVTQUdFX0lOQ1IoZmxkKSBkbyB7IFwKLQkJcGdCdWZmZXJVc2FnZS5m bGQrKzsgXAogCQlpZiAocGdJbnN0clN0YWNrKSBcCiAJCQlwZ0luc3RyU3RhY2stPmJ1ZnVzYWdl LmZsZCsrOyBcCiAJfSB3aGlsZSgwKQogI2RlZmluZSBJTlNUUl9CVUZVU0FHRV9BREQoZmxkLHZh bCkgZG8geyBcCi0JCXBnQnVmZmVyVXNhZ2UuZmxkICs9IHZhbDsgXAogCQlpZiAocGdJbnN0clN0 YWNrKSBcCiAJCQlwZ0luc3RyU3RhY2stPmJ1ZnVzYWdlLmZsZCArPSB2YWw7IFwKIAl9IHdoaWxl KDApCiAjZGVmaW5lIElOU1RSX0JVRlVTQUdFX1RJTUVfQUREKGZsZCx2YWwpIGRvIHsgXAotCUlO U1RSX1RJTUVfQUREKHBnQnVmZmVyVXNhZ2UuZmxkLCB2YWwpOyBcCiAJaWYgKHBnSW5zdHJTdGFj aykgXAogCQlJTlNUUl9USU1FX0FERChwZ0luc3RyU3RhY2stPmJ1ZnVzYWdlLmZsZCwgdmFsKTsg XAogCX0gd2hpbGUgKDApCiAjZGVmaW5lIElOU1RSX0JVRlVTQUdFX1RJTUVfQUNDVU1fRElGRihm bGQsZW5kdmFsLHN0YXJ0dmFsKSBkbyB7IFwKLQlJTlNUUl9USU1FX0FDQ1VNX0RJRkYocGdCdWZm ZXJVc2FnZS5mbGQsIGVuZHZhbCwgc3RhcnR2YWwpOyBcCiAJaWYgKHBnSW5zdHJTdGFjaykgXAog CQlJTlNUUl9USU1FX0FDQ1VNX0RJRkYocGdJbnN0clN0YWNrLT5idWZ1c2FnZS5mbGQsIGVuZHZh bCwgc3RhcnR2YWwpOyBcCiAJfSB3aGlsZSAoMCkKLS0gCjIuNDcuMQoK --00000000000017b5fe063e636bfe Content-Type: application/octet-stream; name="v2-0001-Instrumentation-Keep-time-fields-as-instrtime-req.patch" Content-Disposition: attachment; filename="v2-0001-Instrumentation-Keep-time-fields-as-instrtime-req.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfcy89rs0 RnJvbSBiODc0NjM4MTMxYzRkMjJiNzQ2YmQ2MzVkY2IxZTMwMzRiOWVmNWRjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWthcyBGaXR0bCA8bHVrYXNAZml0dGwuY29tPgpEYXRlOiBT dW4sIDMxIEF1ZyAyMDI1IDE2OjM3OjA1IC0wNzAwClN1YmplY3Q6IFtQQVRDSCB2MiAxLzddIElu c3RydW1lbnRhdGlvbjogS2VlcCB0aW1lIGZpZWxkcyBhcyBpbnN0cnRpbWUsCiByZXF1aXJlIGNh bGxlciB0byBjb252ZXJ0CgpQcmV2aW91c2x5IHRoZSBJbnN0cnVtZW50YXRpb24gbG9naWMgYWx3 YXlzIGNvbnZlcnRlZCB0byBzZWNvbmRzLCBvbmx5IGZvciBtYW55Cm9mIHRoZSBjYWxsZXJzIHRv IGRvIHVubmVjZXNzYXJ5IGRpdmlzaW9uIHRvIGdldCB0byBtaWxsaXNlY29uZHMuIFNpbmNlIGFu IHVwY29taW5nCnJlZmFjdG9yaW5nIHdpbGwgc3BsaXQgdGhlIEluc3RydW1lbnRhdGlvbiBzdHJ1 Y3QsIHV0aWxpemUgaW5zdHJ0aW1lIGFsd2F5cyB0bwprZWVwIHRoaW5ncyBzaW1wbGVyLgotLS0K IGNvbnRyaWIvYXV0b19leHBsYWluL2F1dG9fZXhwbGFpbi5jICAgICAgICAgICB8ICAyICstCiAu Li4vcGdfc3RhdF9zdGF0ZW1lbnRzL3BnX3N0YXRfc3RhdGVtZW50cy5jICAgfCAgMiArLQogc3Jj L2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jICAgICAgICAgICAgICAgIHwgIDggKysrKy0tLS0K IHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2luc3RydW1lbnQuYyAgICAgICAgICAgICB8IDIwICsrKysr KysrLS0tLS0tLS0tLS0KIHNyYy9pbmNsdWRlL2V4ZWN1dG9yL2luc3RydW1lbnQuaCAgICAgICAg ICAgICB8ICA2ICsrKy0tLQogc3JjL2luY2x1ZGUvcG9ydGFiaWxpdHkvaW5zdHJfdGltZS5oICAg ICAgICAgIHwgIDIgKysKIDYgZmlsZXMgY2hhbmdlZCwgMTkgaW5zZXJ0aW9ucygrKSwgMjEgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29udHJpYi9hdXRvX2V4cGxhaW4vYXV0b19leHBsYWlu LmMgYi9jb250cmliL2F1dG9fZXhwbGFpbi9hdXRvX2V4cGxhaW4uYwppbmRleCAxZjRiYWRiNDky OC4uYzEwZjJmYzBmMjUgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvYXV0b19leHBsYWluL2F1dG9fZXhw bGFpbi5jCisrKyBiL2NvbnRyaWIvYXV0b19leHBsYWluL2F1dG9fZXhwbGFpbi5jCkBAIC0zODgs NyArMzg4LDcgQEAgZXhwbGFpbl9FeGVjdXRvckVuZChRdWVyeURlc2MgKnF1ZXJ5RGVzYykKIAkJ SW5zdHJFbmRMb29wKHF1ZXJ5RGVzYy0+dG90YWx0aW1lKTsKIAogCQkvKiBMb2cgcGxhbiBpZiBk dXJhdGlvbiBpcyBleGNlZWRlZC4gKi8KLQkJbXNlYyA9IHF1ZXJ5RGVzYy0+dG90YWx0aW1lLT50 b3RhbCAqIDEwMDAuMDsKKwkJbXNlYyA9IElOU1RSX1RJTUVfR0VUX01JTExJU0VDKHF1ZXJ5RGVz Yy0+dG90YWx0aW1lLT50b3RhbCk7CiAJCWlmIChtc2VjID49IGF1dG9fZXhwbGFpbl9sb2dfbWlu X2R1cmF0aW9uKQogCQl7CiAJCQlFeHBsYWluU3RhdGUgKmVzID0gTmV3RXhwbGFpblN0YXRlKCk7 CmRpZmYgLS1naXQgYS9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9wZ19zdGF0X3N0YXRlbWVu dHMuYyBiL2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL3BnX3N0YXRfc3RhdGVtZW50cy5jCmlu ZGV4IDFjYjM2OGM4NTkwLi5iOWM5NzFkZTFlNSAxMDA2NDQKLS0tIGEvY29udHJpYi9wZ19zdGF0 X3N0YXRlbWVudHMvcGdfc3RhdF9zdGF0ZW1lbnRzLmMKKysrIGIvY29udHJpYi9wZ19zdGF0X3N0 YXRlbWVudHMvcGdfc3RhdF9zdGF0ZW1lbnRzLmMKQEAgLTEwOTEsNyArMTA5MSw3IEBAIHBnc3Nf RXhlY3V0b3JFbmQoUXVlcnlEZXNjICpxdWVyeURlc2MpCiAJCQkJICAgcXVlcnlEZXNjLT5wbGFu bmVkc3RtdC0+c3RtdF9sb2NhdGlvbiwKIAkJCQkgICBxdWVyeURlc2MtPnBsYW5uZWRzdG10LT5z dG10X2xlbiwKIAkJCQkgICBQR1NTX0VYRUMsCi0JCQkJICAgcXVlcnlEZXNjLT50b3RhbHRpbWUt PnRvdGFsICogMTAwMC4wLAkvKiBjb252ZXJ0IHRvIG1zZWMgKi8KKwkJCQkgICBJTlNUUl9USU1F X0dFVF9NSUxMSVNFQyhxdWVyeURlc2MtPnRvdGFsdGltZS0+dG90YWwpLAogCQkJCSAgIHF1ZXJ5 RGVzYy0+ZXN0YXRlLT5lc190b3RhbF9wcm9jZXNzZWQsCiAJCQkJICAgJnF1ZXJ5RGVzYy0+dG90 YWx0aW1lLT5idWZ1c2FnZSwKIAkJCQkgICAmcXVlcnlEZXNjLT50b3RhbHRpbWUtPndhbHVzYWdl LApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvZXhwbGFpbi5jCmluZGV4IDgzNDViYzAyNjRiLi45NWI3YTlkMjI3ZiAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jCisrKyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL2V4cGxhaW4uYwpAQCAtMTgzMCw4ICsxODMwLDggQEAgRXhwbGFpbk5vZGUoUGxh blN0YXRlICpwbGFuc3RhdGUsIExpc3QgKmFuY2VzdG9ycywKIAkJcGxhbnN0YXRlLT5pbnN0cnVt ZW50ICYmIHBsYW5zdGF0ZS0+aW5zdHJ1bWVudC0+bmxvb3BzID4gMCkKIAl7CiAJCWRvdWJsZQkJ bmxvb3BzID0gcGxhbnN0YXRlLT5pbnN0cnVtZW50LT5ubG9vcHM7Ci0JCWRvdWJsZQkJc3RhcnR1 cF9tcyA9IDEwMDAuMCAqIHBsYW5zdGF0ZS0+aW5zdHJ1bWVudC0+c3RhcnR1cCAvIG5sb29wczsK LQkJZG91YmxlCQl0b3RhbF9tcyA9IDEwMDAuMCAqIHBsYW5zdGF0ZS0+aW5zdHJ1bWVudC0+dG90 YWwgLyBubG9vcHM7CisJCWRvdWJsZQkJc3RhcnR1cF9tcyA9IElOU1RSX1RJTUVfR0VUX01JTExJ U0VDKHBsYW5zdGF0ZS0+aW5zdHJ1bWVudC0+c3RhcnR1cCkgLyBubG9vcHM7CisJCWRvdWJsZQkJ dG90YWxfbXMgPSBJTlNUUl9USU1FX0dFVF9NSUxMSVNFQyhwbGFuc3RhdGUtPmluc3RydW1lbnQt PnRvdGFsKSAvIG5sb29wczsKIAkJZG91YmxlCQlyb3dzID0gcGxhbnN0YXRlLT5pbnN0cnVtZW50 LT5udHVwbGVzIC8gbmxvb3BzOwogCiAJCWlmIChlcy0+Zm9ybWF0ID09IEVYUExBSU5fRk9STUFU X1RFWFQpCkBAIC0xODk2LDggKzE4OTYsOCBAQCBFeHBsYWluTm9kZShQbGFuU3RhdGUgKnBsYW5z dGF0ZSwgTGlzdCAqYW5jZXN0b3JzLAogCiAJCQlpZiAobmxvb3BzIDw9IDApCiAJCQkJY29udGlu dWU7Ci0JCQlzdGFydHVwX21zID0gMTAwMC4wICogaW5zdHJ1bWVudC0+c3RhcnR1cCAvIG5sb29w czsKLQkJCXRvdGFsX21zID0gMTAwMC4wICogaW5zdHJ1bWVudC0+dG90YWwgLyBubG9vcHM7CisJ CQlzdGFydHVwX21zID0gSU5TVFJfVElNRV9HRVRfTUlMTElTRUMoaW5zdHJ1bWVudC0+c3RhcnR1 cCkgLyBubG9vcHM7CisJCQl0b3RhbF9tcyA9IElOU1RSX1RJTUVfR0VUX01JTExJU0VDKGluc3Ry dW1lbnQtPnRvdGFsKSAvIG5sb29wczsKIAkJCXJvd3MgPSBpbnN0cnVtZW50LT5udHVwbGVzIC8g bmxvb3BzOwogCiAJCQlFeHBsYWluT3BlbldvcmtlcihuLCBlcyk7CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9leGVjdXRvci9pbnN0cnVtZW50LmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9pbnN0 cnVtZW50LmMKaW5kZXggNTZlNjM1ZjQ3MDAuLjFjOTJhYmU2NzYxIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9leGVjdXRvci9pbnN0cnVtZW50LmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv aW5zdHJ1bWVudC5jCkBAIC0xMTQsNyArMTE0LDcgQEAgSW5zdHJTdG9wTm9kZShJbnN0cnVtZW50 YXRpb24gKmluc3RyLCBkb3VibGUgblR1cGxlcykKIAlpZiAoIWluc3RyLT5ydW5uaW5nKQogCXsK IAkJaW5zdHItPnJ1bm5pbmcgPSB0cnVlOwotCQlpbnN0ci0+Zmlyc3R0dXBsZSA9IElOU1RSX1RJ TUVfR0VUX0RPVUJMRShpbnN0ci0+Y291bnRlcik7CisJCWluc3RyLT5maXJzdHR1cGxlID0gaW5z dHItPmNvdW50ZXI7CiAJfQogCWVsc2UKIAl7CkBAIC0xMjMsNyArMTIzLDcgQEAgSW5zdHJTdG9w Tm9kZShJbnN0cnVtZW50YXRpb24gKmluc3RyLCBkb3VibGUgblR1cGxlcykKIAkJICogdGhpcyBt aWdodCBiZSB0aGUgZmlyc3QgdHVwbGUKIAkJICovCiAJCWlmIChpbnN0ci0+YXN5bmNfbW9kZSAm JiBzYXZlX3R1cGxlY291bnQgPCAxLjApCi0JCQlpbnN0ci0+Zmlyc3R0dXBsZSA9IElOU1RSX1RJ TUVfR0VUX0RPVUJMRShpbnN0ci0+Y291bnRlcik7CisJCQlpbnN0ci0+Zmlyc3R0dXBsZSA9IGlu c3RyLT5jb3VudGVyOwogCX0KIH0KIApAQCAtMTM5LDggKzEzOSw2IEBAIEluc3RyVXBkYXRlVHVw bGVDb3VudChJbnN0cnVtZW50YXRpb24gKmluc3RyLCBkb3VibGUgblR1cGxlcykKIHZvaWQKIElu c3RyRW5kTG9vcChJbnN0cnVtZW50YXRpb24gKmluc3RyKQogewotCWRvdWJsZQkJdG90YWx0aW1l OwotCiAJLyogU2tpcCBpZiBub3RoaW5nIGhhcyBoYXBwZW5lZCwgb3IgYWxyZWFkeSBzaHV0IGRv d24gKi8KIAlpZiAoIWluc3RyLT5ydW5uaW5nKQogCQlyZXR1cm47CkBAIC0xNDksMTAgKzE0Nyw4 IEBAIEluc3RyRW5kTG9vcChJbnN0cnVtZW50YXRpb24gKmluc3RyKQogCQllbG9nKEVSUk9SLCAi SW5zdHJFbmRMb29wIGNhbGxlZCBvbiBydW5uaW5nIG5vZGUiKTsKIAogCS8qIEFjY3VtdWxhdGUg cGVyLWN5Y2xlIHN0YXRpc3RpY3MgaW50byB0b3RhbHMgKi8KLQl0b3RhbHRpbWUgPSBJTlNUUl9U SU1FX0dFVF9ET1VCTEUoaW5zdHItPmNvdW50ZXIpOwotCi0JaW5zdHItPnN0YXJ0dXAgKz0gaW5z dHItPmZpcnN0dHVwbGU7Ci0JaW5zdHItPnRvdGFsICs9IHRvdGFsdGltZTsKKwlJTlNUUl9USU1F X0FERChpbnN0ci0+c3RhcnR1cCwgaW5zdHItPmZpcnN0dHVwbGUpOworCUlOU1RSX1RJTUVfQURE KGluc3RyLT50b3RhbCwgaW5zdHItPmNvdW50ZXIpOwogCWluc3RyLT5udHVwbGVzICs9IGluc3Ry LT50dXBsZWNvdW50OwogCWluc3RyLT5ubG9vcHMgKz0gMTsKIApAQCAtMTYwLDcgKzE1Niw3IEBA IEluc3RyRW5kTG9vcChJbnN0cnVtZW50YXRpb24gKmluc3RyKQogCWluc3RyLT5ydW5uaW5nID0g ZmFsc2U7CiAJSU5TVFJfVElNRV9TRVRfWkVSTyhpbnN0ci0+c3RhcnR0aW1lKTsKIAlJTlNUUl9U SU1FX1NFVF9aRVJPKGluc3RyLT5jb3VudGVyKTsKLQlpbnN0ci0+Zmlyc3R0dXBsZSA9IDA7CisJ SU5TVFJfVElNRV9TRVRfWkVSTyhpbnN0ci0+Zmlyc3R0dXBsZSk7CiAJaW5zdHItPnR1cGxlY291 bnQgPSAwOwogfQogCkBAIC0xNzMsMTQgKzE2OSwxNCBAQCBJbnN0ckFnZ05vZGUoSW5zdHJ1bWVu dGF0aW9uICpkc3QsIEluc3RydW1lbnRhdGlvbiAqYWRkKQogCQlkc3QtPnJ1bm5pbmcgPSB0cnVl OwogCQlkc3QtPmZpcnN0dHVwbGUgPSBhZGQtPmZpcnN0dHVwbGU7CiAJfQotCWVsc2UgaWYgKGRz dC0+cnVubmluZyAmJiBhZGQtPnJ1bm5pbmcgJiYgZHN0LT5maXJzdHR1cGxlID4gYWRkLT5maXJz dHR1cGxlKQorCWVsc2UgaWYgKGRzdC0+cnVubmluZyAmJiBhZGQtPnJ1bm5pbmcgJiYgSU5TVFJf VElNRV9DTVBfTFQoZHN0LT5maXJzdHR1cGxlLCBhZGQtPmZpcnN0dHVwbGUpKQogCQlkc3QtPmZp cnN0dHVwbGUgPSBhZGQtPmZpcnN0dHVwbGU7CiAKIAlJTlNUUl9USU1FX0FERChkc3QtPmNvdW50 ZXIsIGFkZC0+Y291bnRlcik7CiAKIAlkc3QtPnR1cGxlY291bnQgKz0gYWRkLT50dXBsZWNvdW50 OwotCWRzdC0+c3RhcnR1cCArPSBhZGQtPnN0YXJ0dXA7Ci0JZHN0LT50b3RhbCArPSBhZGQtPnRv dGFsOworCUlOU1RSX1RJTUVfQUREKGRzdC0+c3RhcnR1cCwgYWRkLT5zdGFydHVwKTsKKwlJTlNU Ul9USU1FX0FERChkc3QtPnRvdGFsLCBhZGQtPnRvdGFsKTsKIAlkc3QtPm50dXBsZXMgKz0gYWRk LT5udHVwbGVzOwogCWRzdC0+bnR1cGxlczIgKz0gYWRkLT5udHVwbGVzMjsKIAlkc3QtPm5sb29w cyArPSBhZGQtPm5sb29wczsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2luc3Ry dW1lbnQuaCBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2luc3RydW1lbnQuaAppbmRleCAwMzY1M2Fi NmM2Yy4uYmE1Yzk4NjkwN2UgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2luc3Ry dW1lbnQuaAorKysgYi9zcmMvaW5jbHVkZS9leGVjdXRvci9pbnN0cnVtZW50LmgKQEAgLTc3LDEz ICs3NywxMyBAQCB0eXBlZGVmIHN0cnVjdCBJbnN0cnVtZW50YXRpb24KIAlib29sCQlydW5uaW5n OwkJLyogdHJ1ZSBpZiB3ZSd2ZSBjb21wbGV0ZWQgZmlyc3QgdHVwbGUgKi8KIAlpbnN0cl90aW1l CXN0YXJ0dGltZTsJCS8qIHN0YXJ0IHRpbWUgb2YgY3VycmVudCBpdGVyYXRpb24gb2Ygbm9kZSAq LwogCWluc3RyX3RpbWUJY291bnRlcjsJCS8qIGFjY3VtdWxhdGVkIHJ1bnRpbWUgZm9yIHRoaXMg bm9kZSAqLwotCWRvdWJsZQkJZmlyc3R0dXBsZTsJCS8qIHRpbWUgZm9yIGZpcnN0IHR1cGxlIG9m IHRoaXMgY3ljbGUgKi8KKwlpbnN0cl90aW1lCWZpcnN0dHVwbGU7CQkvKiB0aW1lIGZvciBmaXJz dCB0dXBsZSBvZiB0aGlzIGN5Y2xlICovCiAJZG91YmxlCQl0dXBsZWNvdW50OwkJLyogIyBvZiB0 dXBsZXMgZW1pdHRlZCBzbyBmYXIgdGhpcyBjeWNsZSAqLwogCUJ1ZmZlclVzYWdlIGJ1ZnVzYWdl X3N0YXJ0OyAvKiBidWZmZXIgdXNhZ2UgYXQgc3RhcnQgKi8KIAlXYWxVc2FnZQl3YWx1c2FnZV9z dGFydDsgLyogV0FMIHVzYWdlIGF0IHN0YXJ0ICovCiAJLyogQWNjdW11bGF0ZWQgc3RhdGlzdGlj cyBhY3Jvc3MgYWxsIGNvbXBsZXRlZCBjeWNsZXM6ICovCi0JZG91YmxlCQlzdGFydHVwOwkJLyog dG90YWwgc3RhcnR1cCB0aW1lIChpbiBzZWNvbmRzKSAqLwotCWRvdWJsZQkJdG90YWw7CQkJLyog dG90YWwgdGltZSAoaW4gc2Vjb25kcykgKi8KKwlpbnN0cl90aW1lCXN0YXJ0dXA7CQkvKiB0b3Rh bCBzdGFydHVwIHRpbWUgKi8KKwlpbnN0cl90aW1lCXRvdGFsOwkJCS8qIHRvdGFsIHRpbWUgKi8K IAlkb3VibGUJCW50dXBsZXM7CQkvKiB0b3RhbCB0dXBsZXMgcHJvZHVjZWQgKi8KIAlkb3VibGUJ CW50dXBsZXMyOwkJLyogc2Vjb25kYXJ5IG5vZGUtc3BlY2lmaWMgdHVwbGUgY291bnRlciAqLwog CWRvdWJsZQkJbmxvb3BzOwkJCS8qICMgb2YgcnVuIGN5Y2xlcyBmb3IgdGhpcyBub2RlICovCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wb3J0YWJpbGl0eS9pbnN0cl90aW1lLmggYi9zcmMvaW5j bHVkZS9wb3J0YWJpbGl0eS9pbnN0cl90aW1lLmgKaW5kZXggZjcxYTg1MWIxOGQuLjY0NjkzNDAy MGQxIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wb3J0YWJpbGl0eS9pbnN0cl90aW1lLmgKKysr IGIvc3JjL2luY2x1ZGUvcG9ydGFiaWxpdHkvaW5zdHJfdGltZS5oCkBAIC0xODQsNiArMTg0LDgg QEAgR2V0VGltZXJGcmVxdWVuY3kodm9pZCkKICNkZWZpbmUgSU5TVFJfVElNRV9BQ0NVTV9ESUZG KHgseSx6KSBcCiAJKCh4KS50aWNrcyArPSAoeSkudGlja3MgLSAoeikudGlja3MpCiAKKyNkZWZp bmUgSU5TVFJfVElNRV9DTVBfTFQoeCx5KSBcCisJKCh4KS50aWNrcyA+ICh5KS50aWNrcykKIAog I2RlZmluZSBJTlNUUl9USU1FX0dFVF9ET1VCTEUodCkgXAogCSgoZG91YmxlKSBJTlNUUl9USU1F X0dFVF9OQU5PU0VDKHQpIC8gTlNfUEVSX1MpCi0tIAoyLjQ3LjEKCg== --00000000000017b5fe063e636bfe Content-Type: application/octet-stream; name="v2-0005-Use-Instrumentation-stack-for-parallel-query-aggr.patch" Content-Disposition: attachment; filename="v2-0005-Use-Instrumentation-stack-for-parallel-query-aggr.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfcy89rx3 RnJvbSBmNTJjMDY3ZGMzNTAyOTlmYjhiZDIwZTNlMDgwMjVmNzQ1YjhlMjE1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWthcyBGaXR0bCA8bHVrYXNAZml0dGwuY29tPgpEYXRlOiBU dWUsIDkgU2VwIDIwMjUgMDI6MjQ6NDkgLTA3MDAKU3ViamVjdDogW1BBVENIIHYyIDUvN10gVXNl IEluc3RydW1lbnRhdGlvbiBzdGFjayBmb3IgcGFyYWxsZWwgcXVlcnkKIGFnZ3JlZ2F0aW9uIGlu IHdvcmtlcnMKCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbi5jICAgICAgICB8ICA2 ICsrKystLQogc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9naW5pbnNlcnQuYyAgICB8ICA2ICsrKyst LQogc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRzb3J0LmMgICB8ICA2ICsrKystLQogc3Jj L2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYyB8ICA2ICsrKystLQogc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmMgICB8ICA2ICsrKystLQogc3JjL2JhY2tlbmQvZXhl Y3V0b3IvaW5zdHJ1bWVudC5jICAgICB8IDIxICsrKysrKysrKystLS0tLS0tLS0tLQogc3JjL2lu Y2x1ZGUvZXhlY3V0b3IvaW5zdHJ1bWVudC5oICAgICB8ICA0ICsrLS0KIDcgZmlsZXMgY2hhbmdl ZCwgMzIgaW5zZXJ0aW9ucygrKSwgMjMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvYWNjZXNzL2JyaW4vYnJpbi5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbi5j CmluZGV4IDdmZjc0NjdlNDYyLi40NjI2MDkzMTE2ZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv YWNjZXNzL2JyaW4vYnJpbi5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW4uYwpA QCAtMjg3MCw2ICsyODcwLDcgQEAgX2JyaW5fcGFyYWxsZWxfYnVpbGRfbWFpbihkc21fc2VnbWVu dCAqc2VnLCBzaG1fdG9jICp0b2MpCiAJUmVsYXRpb24JaW5kZXhSZWw7CiAJTE9DS01PREUJaGVh cExvY2ttb2RlOwogCUxPQ0tNT0RFCWluZGV4TG9ja21vZGU7CisJSW5zdHJ1bWVudGF0aW9uICpp bnN0cjsKIAlXYWxVc2FnZSAgICp3YWx1c2FnZTsKIAlCdWZmZXJVc2FnZSAqYnVmZmVydXNhZ2U7 CiAJaW50CQkJc29ydG1lbTsKQEAgLTI5MTksNyArMjkyMCw3IEBAIF9icmluX3BhcmFsbGVsX2J1 aWxkX21haW4oZHNtX3NlZ21lbnQgKnNlZywgc2htX3RvYyAqdG9jKQogCXR1cGxlc29ydF9hdHRh Y2hfc2hhcmVkKHNoYXJlZHNvcnQsIHNlZyk7CiAKIAkvKiBQcmVwYXJlIHRvIHRyYWNrIGJ1ZmZl ciB1c2FnZSBkdXJpbmcgcGFyYWxsZWwgZXhlY3V0aW9uICovCi0JSW5zdHJTdGFydFBhcmFsbGVs UXVlcnkoKTsKKwlpbnN0ciA9IEluc3RyU3RhcnRQYXJhbGxlbFF1ZXJ5KCk7CiAKIAkvKgogCSAq IE1pZ2h0IGFzIHdlbGwgdXNlIHJlbGlhYmxlIGZpZ3VyZSB3aGVuIGRvbGluZyBvdXQgbWFpbnRl bmFuY2Vfd29ya19tZW0KQEAgLTI5MzQsNyArMjkzNSw4IEBAIF9icmluX3BhcmFsbGVsX2J1aWxk X21haW4oZHNtX3NlZ21lbnQgKnNlZywgc2htX3RvYyAqdG9jKQogCS8qIFJlcG9ydCBXQUwvYnVm ZmVyIHVzYWdlIGR1cmluZyBwYXJhbGxlbCBleGVjdXRpb24gKi8KIAlidWZmZXJ1c2FnZSA9IHNo bV90b2NfbG9va3VwKHRvYywgUEFSQUxMRUxfS0VZX0JVRkZFUl9VU0FHRSwgZmFsc2UpOwogCXdh bHVzYWdlID0gc2htX3RvY19sb29rdXAodG9jLCBQQVJBTExFTF9LRVlfV0FMX1VTQUdFLCBmYWxz ZSk7Ci0JSW5zdHJFbmRQYXJhbGxlbFF1ZXJ5KCZidWZmZXJ1c2FnZVtQYXJhbGxlbFdvcmtlck51 bWJlcl0sCisJSW5zdHJFbmRQYXJhbGxlbFF1ZXJ5KGluc3RyLAorCQkJCQkJICAmYnVmZmVydXNh Z2VbUGFyYWxsZWxXb3JrZXJOdW1iZXJdLAogCQkJCQkJICAmd2FsdXNhZ2VbUGFyYWxsZWxXb3Jr ZXJOdW1iZXJdKTsKIAogCWluZGV4X2Nsb3NlKGluZGV4UmVsLCBpbmRleExvY2ttb2RlKTsKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2luaW5zZXJ0LmMgYi9zcmMvYmFja2Vu ZC9hY2Nlc3MvZ2luL2dpbmluc2VydC5jCmluZGV4IGU5ZDRiMjc0MjdlLi4wMjIwODVjYTY0NSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9naW5pbnNlcnQuYworKysgYi9zcmMv YmFja2VuZC9hY2Nlc3MvZ2luL2dpbmluc2VydC5jCkBAIC0yMDc5LDYgKzIwNzksNyBAQCBfZ2lu X3BhcmFsbGVsX2J1aWxkX21haW4oZHNtX3NlZ21lbnQgKnNlZywgc2htX3RvYyAqdG9jKQogCVJl bGF0aW9uCWluZGV4UmVsOwogCUxPQ0tNT0RFCWhlYXBMb2NrbW9kZTsKIAlMT0NLTU9ERQlpbmRl eExvY2ttb2RlOworCUluc3RydW1lbnRhdGlvbiAqaW5zdHI7CiAJV2FsVXNhZ2UgICAqd2FsdXNh Z2U7CiAJQnVmZmVyVXNhZ2UgKmJ1ZmZlcnVzYWdlOwogCWludAkJCXNvcnRtZW07CkBAIC0yMTQ3 LDcgKzIxNDgsNyBAQCBfZ2luX3BhcmFsbGVsX2J1aWxkX21haW4oZHNtX3NlZ21lbnQgKnNlZywg c2htX3RvYyAqdG9jKQogCXR1cGxlc29ydF9hdHRhY2hfc2hhcmVkKHNoYXJlZHNvcnQsIHNlZyk7 CiAKIAkvKiBQcmVwYXJlIHRvIHRyYWNrIGJ1ZmZlciB1c2FnZSBkdXJpbmcgcGFyYWxsZWwgZXhl Y3V0aW9uICovCi0JSW5zdHJTdGFydFBhcmFsbGVsUXVlcnkoKTsKKwlpbnN0ciA9IEluc3RyU3Rh cnRQYXJhbGxlbFF1ZXJ5KCk7CiAKIAkvKgogCSAqIE1pZ2h0IGFzIHdlbGwgdXNlIHJlbGlhYmxl IGZpZ3VyZSB3aGVuIGRvbGluZyBvdXQgbWFpbnRlbmFuY2Vfd29ya19tZW0KQEAgLTIxNjIsNyAr MjE2Myw4IEBAIF9naW5fcGFyYWxsZWxfYnVpbGRfbWFpbihkc21fc2VnbWVudCAqc2VnLCBzaG1f dG9jICp0b2MpCiAJLyogUmVwb3J0IFdBTC9idWZmZXIgdXNhZ2UgZHVyaW5nIHBhcmFsbGVsIGV4 ZWN1dGlvbiAqLwogCWJ1ZmZlcnVzYWdlID0gc2htX3RvY19sb29rdXAodG9jLCBQQVJBTExFTF9L RVlfQlVGRkVSX1VTQUdFLCBmYWxzZSk7CiAJd2FsdXNhZ2UgPSBzaG1fdG9jX2xvb2t1cCh0b2Ms IFBBUkFMTEVMX0tFWV9XQUxfVVNBR0UsIGZhbHNlKTsKLQlJbnN0ckVuZFBhcmFsbGVsUXVlcnko JmJ1ZmZlcnVzYWdlW1BhcmFsbGVsV29ya2VyTnVtYmVyXSwKKwlJbnN0ckVuZFBhcmFsbGVsUXVl cnkoaW5zdHIsCisJCQkJCQkgICZidWZmZXJ1c2FnZVtQYXJhbGxlbFdvcmtlck51bWJlcl0sCiAJ CQkJCQkgICZ3YWx1c2FnZVtQYXJhbGxlbFdvcmtlck51bWJlcl0pOwogCiAJaW5kZXhfY2xvc2Uo aW5kZXhSZWwsIGluZGV4TG9ja21vZGUpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNz L25idHJlZS9uYnRzb3J0LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHNvcnQuYwpp bmRleCA4ODI4YTdhOGY4OS4uNjE1ZmQxZTAzZjcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9uYnRyZWUvbmJ0c29ydC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0 c29ydC5jCkBAIC0xNzUyLDYgKzE3NTIsNyBAQCBfYnRfcGFyYWxsZWxfYnVpbGRfbWFpbihkc21f c2VnbWVudCAqc2VnLCBzaG1fdG9jICp0b2MpCiAJUmVsYXRpb24JaW5kZXhSZWw7CiAJTE9DS01P REUJaGVhcExvY2ttb2RlOwogCUxPQ0tNT0RFCWluZGV4TG9ja21vZGU7CisJSW5zdHJ1bWVudGF0 aW9uICppbnN0cjsKIAlXYWxVc2FnZSAgICp3YWx1c2FnZTsKIAlCdWZmZXJVc2FnZSAqYnVmZmVy dXNhZ2U7CiAJaW50CQkJc29ydG1lbTsKQEAgLTE4MjcsNyArMTgyOCw3IEBAIF9idF9wYXJhbGxl bF9idWlsZF9tYWluKGRzbV9zZWdtZW50ICpzZWcsIHNobV90b2MgKnRvYykKIAl9CiAKIAkvKiBQ cmVwYXJlIHRvIHRyYWNrIGJ1ZmZlciB1c2FnZSBkdXJpbmcgcGFyYWxsZWwgZXhlY3V0aW9uICov Ci0JSW5zdHJTdGFydFBhcmFsbGVsUXVlcnkoKTsKKwlpbnN0ciA9IEluc3RyU3RhcnRQYXJhbGxl bFF1ZXJ5KCk7CiAKIAkvKiBQZXJmb3JtIHNvcnRpbmcgb2Ygc3Bvb2wsIGFuZCBwb3NzaWJseSBh IHNwb29sMiAqLwogCXNvcnRtZW0gPSBtYWludGVuYW5jZV93b3JrX21lbSAvIGJ0c2hhcmVkLT5z Y2FudHVwbGVzb3J0c3RhdGVzOwpAQCAtMTgzNyw3ICsxODM4LDggQEAgX2J0X3BhcmFsbGVsX2J1 aWxkX21haW4oZHNtX3NlZ21lbnQgKnNlZywgc2htX3RvYyAqdG9jKQogCS8qIFJlcG9ydCBXQUwv YnVmZmVyIHVzYWdlIGR1cmluZyBwYXJhbGxlbCBleGVjdXRpb24gKi8KIAlidWZmZXJ1c2FnZSA9 IHNobV90b2NfbG9va3VwKHRvYywgUEFSQUxMRUxfS0VZX0JVRkZFUl9VU0FHRSwgZmFsc2UpOwog CXdhbHVzYWdlID0gc2htX3RvY19sb29rdXAodG9jLCBQQVJBTExFTF9LRVlfV0FMX1VTQUdFLCBm YWxzZSk7Ci0JSW5zdHJFbmRQYXJhbGxlbFF1ZXJ5KCZidWZmZXJ1c2FnZVtQYXJhbGxlbFdvcmtl ck51bWJlcl0sCisJSW5zdHJFbmRQYXJhbGxlbFF1ZXJ5KGluc3RyLAorCQkJCQkJICAmYnVmZmVy dXNhZ2VbUGFyYWxsZWxXb3JrZXJOdW1iZXJdLAogCQkJCQkJICAmd2FsdXNhZ2VbUGFyYWxsZWxX b3JrZXJOdW1iZXJdKTsKIAogI2lmZGVmIEJUUkVFX0JVSUxEX1NUQVRTCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5jIGIvc3JjL2JhY2tlbmQvY29tbWFu ZHMvdmFjdXVtcGFyYWxsZWwuYwppbmRleCAwZmVlYTFkMzBlYy4uYzUzMDlhMDE1ZTYgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMKKysrIGIvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYwpAQCAtOTk0LDYgKzk5NCw3IEBAIHBhcmFs bGVsX3ZhY3V1bV9tYWluKGRzbV9zZWdtZW50ICpzZWcsIHNobV90b2MgKnRvYykKIAlQVkluZFN0 YXRzICppbmRzdGF0czsKIAlQVlNoYXJlZCAgICpzaGFyZWQ7CiAJVGlkU3RvcmUgICAqZGVhZF9p dGVtczsKKwlJbnN0cnVtZW50YXRpb24gKmluc3RyOwogCUJ1ZmZlclVzYWdlICpidWZmZXJfdXNh Z2U7CiAJV2FsVXNhZ2UgICAqd2FsX3VzYWdlOwogCWludAkJCW5pbmRleGVzOwpAQCAtMTA4Myw3 ICsxMDg0LDcgQEAgcGFyYWxsZWxfdmFjdXVtX21haW4oZHNtX3NlZ21lbnQgKnNlZywgc2htX3Rv YyAqdG9jKQogCWVycm9yX2NvbnRleHRfc3RhY2sgPSAmZXJyY2FsbGJhY2s7CiAKIAkvKiBQcmVw YXJlIHRvIHRyYWNrIGJ1ZmZlciB1c2FnZSBkdXJpbmcgcGFyYWxsZWwgZXhlY3V0aW9uICovCi0J SW5zdHJTdGFydFBhcmFsbGVsUXVlcnkoKTsKKwlpbnN0ciA9IEluc3RyU3RhcnRQYXJhbGxlbFF1 ZXJ5KCk7CiAKIAkvKiBQcm9jZXNzIGluZGV4ZXMgdG8gcGVyZm9ybSB2YWN1dW0vY2xlYW51cCAq LwogCXBhcmFsbGVsX3ZhY3V1bV9wcm9jZXNzX3NhZmVfaW5kZXhlcygmcHZzKTsKQEAgLTEwOTEs NyArMTA5Miw4IEBAIHBhcmFsbGVsX3ZhY3V1bV9tYWluKGRzbV9zZWdtZW50ICpzZWcsIHNobV90 b2MgKnRvYykKIAkvKiBSZXBvcnQgYnVmZmVyL1dBTCB1c2FnZSBkdXJpbmcgcGFyYWxsZWwgZXhl Y3V0aW9uICovCiAJYnVmZmVyX3VzYWdlID0gc2htX3RvY19sb29rdXAodG9jLCBQQVJBTExFTF9W QUNVVU1fS0VZX0JVRkZFUl9VU0FHRSwgZmFsc2UpOwogCXdhbF91c2FnZSA9IHNobV90b2NfbG9v a3VwKHRvYywgUEFSQUxMRUxfVkFDVVVNX0tFWV9XQUxfVVNBR0UsIGZhbHNlKTsKLQlJbnN0ckVu ZFBhcmFsbGVsUXVlcnkoJmJ1ZmZlcl91c2FnZVtQYXJhbGxlbFdvcmtlck51bWJlcl0sCisJSW5z dHJFbmRQYXJhbGxlbFF1ZXJ5KGluc3RyLAorCQkJCQkJICAmYnVmZmVyX3VzYWdlW1BhcmFsbGVs V29ya2VyTnVtYmVyXSwKIAkJCQkJCSAgJndhbF91c2FnZVtQYXJhbGxlbFdvcmtlck51bWJlcl0p OwogCiAJLyogUmVwb3J0IGFueSByZW1haW5pbmcgY29zdC1iYXNlZCB2YWN1dW0gZGVsYXkgdGlt ZSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmMgYi9z cmMvYmFja2VuZC9leGVjdXRvci9leGVjUGFyYWxsZWwuYwppbmRleCBlODc4MTBkMjkyZS4uMDYx YzZhNGFhNjkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJhbGxlbC5j CisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJhbGxlbC5jCkBAIC0xNDM0LDYgKzE0 MzQsNyBAQCB2b2lkCiBQYXJhbGxlbFF1ZXJ5TWFpbihkc21fc2VnbWVudCAqc2VnLCBzaG1fdG9j ICp0b2MpCiB7CiAJRml4ZWRQYXJhbGxlbEV4ZWN1dG9yU3RhdGUgKmZwZXM7CisJSW5zdHJ1bWVu dGF0aW9uICppbnN0cjsKIAlCdWZmZXJVc2FnZSAqYnVmZmVyX3VzYWdlOwogCVdhbFVzYWdlICAg KndhbF91c2FnZTsKIAlEZXN0UmVjZWl2ZXIgKnJlY2VpdmVyOwpAQCAtMTQ5NCw3ICsxNDk1LDcg QEAgUGFyYWxsZWxRdWVyeU1haW4oZHNtX3NlZ21lbnQgKnNlZywgc2htX3RvYyAqdG9jKQogCSAq IGxlYWRlciwgd2hpY2ggYWxzbyBkb2Vzbid0IGNvdW50IGJ1ZmZlciBhY2Nlc3NlcyBhbmQgV0FM IGFjdGl2aXR5IHRoYXQKIAkgKiBvY2N1ciBkdXJpbmcgZXhlY3V0b3Igc3RhcnR1cC4KIAkgKi8K LQlJbnN0clN0YXJ0UGFyYWxsZWxRdWVyeSgpOworCWluc3RyID0gSW5zdHJTdGFydFBhcmFsbGVs UXVlcnkoKTsKIAogCS8qCiAJICogUnVuIHRoZSBwbGFuLiAgSWYgd2Ugc3BlY2lmaWVkIGEgdHVw bGUgYm91bmQsIGJlIGNhcmVmdWwgbm90IHRvIGRlbWFuZApAQCAtMTUxMCw3ICsxNTExLDggQEAg UGFyYWxsZWxRdWVyeU1haW4oZHNtX3NlZ21lbnQgKnNlZywgc2htX3RvYyAqdG9jKQogCS8qIFJl cG9ydCBidWZmZXIvV0FMIHVzYWdlIGR1cmluZyBwYXJhbGxlbCBleGVjdXRpb24uICovCiAJYnVm ZmVyX3VzYWdlID0gc2htX3RvY19sb29rdXAodG9jLCBQQVJBTExFTF9LRVlfQlVGRkVSX1VTQUdF LCBmYWxzZSk7CiAJd2FsX3VzYWdlID0gc2htX3RvY19sb29rdXAodG9jLCBQQVJBTExFTF9LRVlf V0FMX1VTQUdFLCBmYWxzZSk7Ci0JSW5zdHJFbmRQYXJhbGxlbFF1ZXJ5KCZidWZmZXJfdXNhZ2Vb UGFyYWxsZWxXb3JrZXJOdW1iZXJdLAorCUluc3RyRW5kUGFyYWxsZWxRdWVyeShpbnN0ciwKKwkJ CQkJCSAgJmJ1ZmZlcl91c2FnZVtQYXJhbGxlbFdvcmtlck51bWJlcl0sCiAJCQkJCQkgICZ3YWxf dXNhZ2VbUGFyYWxsZWxXb3JrZXJOdW1iZXJdKTsKIAogCS8qIFJlcG9ydCBpbnN0cnVtZW50YXRp b24gZGF0YSBpZiBhbnkgaW5zdHJ1bWVudGF0aW9uIG9wdGlvbnMgYXJlIHNldC4gKi8KZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2luc3RydW1lbnQuYyBiL3NyYy9iYWNrZW5kL2V4 ZWN1dG9yL2luc3RydW1lbnQuYwppbmRleCA4ZWY2MjY3MjFmMy4uZDVmZGJlY2IwMjUgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2luc3RydW1lbnQuYworKysgYi9zcmMvYmFja2Vu ZC9leGVjdXRvci9pbnN0cnVtZW50LmMKQEAgLTE5LDEwICsxOSw4IEBACiAjaW5jbHVkZSAidXRp bHMvbWVtdXRpbHMuaCIKIAogQnVmZmVyVXNhZ2UgcGdCdWZmZXJVc2FnZTsKLXN0YXRpYyBCdWZm ZXJVc2FnZSBzYXZlX3BnQnVmZmVyVXNhZ2U7CiBXYWxVc2FnZQlwZ1dhbFVzYWdlOwogSW5zdHJT dGFjayAqcGdJbnN0clN0YWNrID0gTlVMTDsKLXN0YXRpYyBXYWxVc2FnZSBzYXZlX3BnV2FsVXNh Z2U7CiAKIHN0YXRpYyB2b2lkIEJ1ZmZlclVzYWdlQWRkKEJ1ZmZlclVzYWdlICpkc3QsIGNvbnN0 IEJ1ZmZlclVzYWdlICphZGQpOwogc3RhdGljIHZvaWQgV2FsVXNhZ2VBZGQoV2FsVXNhZ2UgKmRz dCwgV2FsVXNhZ2UgKmFkZCk7CkBAIC0zNjQsMjIgKzM2MiwyMyBAQCBJbnN0clN0YWNrQWRkKElu c3RyU3RhY2sgKiBkc3QsIEluc3RyU3RhY2sgKiBhZGQpCiAJV2FsVXNhZ2VBZGQoJmRzdC0+d2Fs dXNhZ2UsICZhZGQtPndhbHVzYWdlKTsKIH0KIAotLyogbm90ZSBjdXJyZW50IHZhbHVlcyBkdXJp bmcgcGFyYWxsZWwgZXhlY3V0b3Igc3RhcnR1cCAqLwotdm9pZAorLyogc3RhcnQgaW5zdHJ1bWVu dGF0aW9uIGR1cmluZyBwYXJhbGxlbCBleGVjdXRvciBzdGFydHVwICovCitJbnN0cnVtZW50YXRp b24gKgogSW5zdHJTdGFydFBhcmFsbGVsUXVlcnkodm9pZCkKIHsKLQlzYXZlX3BnQnVmZmVyVXNh Z2UgPSBwZ0J1ZmZlclVzYWdlOwotCXNhdmVfcGdXYWxVc2FnZSA9IHBnV2FsVXNhZ2U7CisJSW5z dHJ1bWVudGF0aW9uICppbnN0ciA9IEluc3RyQWxsb2MoMSwgSU5TVFJVTUVOVF9CVUZGRVJTIHwg SU5TVFJVTUVOVF9XQUwpOworCisJSW5zdHJTdGFydChpbnN0cik7CisJcmV0dXJuIGluc3RyOwog fQogCiAvKiByZXBvcnQgdXNhZ2UgYWZ0ZXIgcGFyYWxsZWwgZXhlY3V0b3Igc2h1dGRvd24gKi8K IHZvaWQKLUluc3RyRW5kUGFyYWxsZWxRdWVyeShCdWZmZXJVc2FnZSAqYnVmdXNhZ2UsIFdhbFVz YWdlICp3YWx1c2FnZSkKK0luc3RyRW5kUGFyYWxsZWxRdWVyeShJbnN0cnVtZW50YXRpb24gKmlu c3RyLCBCdWZmZXJVc2FnZSAqYnVmdXNhZ2UsIFdhbFVzYWdlICp3YWx1c2FnZSkKIHsKLQltZW1z ZXQoYnVmdXNhZ2UsIDAsIHNpemVvZihCdWZmZXJVc2FnZSkpOwotCUJ1ZmZlclVzYWdlQWNjdW1E aWZmKGJ1ZnVzYWdlLCAmcGdCdWZmZXJVc2FnZSwgJnNhdmVfcGdCdWZmZXJVc2FnZSk7Ci0JbWVt c2V0KHdhbHVzYWdlLCAwLCBzaXplb2YoV2FsVXNhZ2UpKTsKLQlXYWxVc2FnZUFjY3VtRGlmZih3 YWx1c2FnZSwgJnBnV2FsVXNhZ2UsICZzYXZlX3BnV2FsVXNhZ2UpOworCUluc3RyU3RvcChpbnN0 ciwgMCwgdHJ1ZSk7CisJbWVtY3B5KGJ1ZnVzYWdlLCAmSU5TVFJfR0VUX0JVRlVTQUdFKGluc3Ry KSwgc2l6ZW9mKEJ1ZmZlclVzYWdlKSk7CisJbWVtY3B5KHdhbHVzYWdlLCAmSU5TVFJfR0VUX1dB TFVTQUdFKGluc3RyKSwgc2l6ZW9mKFdhbFVzYWdlKSk7CiB9CiAKIC8qIGFjY3VtdWxhdGUgd29y ayBkb25lIGJ5IHdvcmtlcnMgaW4gbGVhZGVyJ3Mgc3RhdHMgKi8KZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL2V4ZWN1dG9yL2luc3RydW1lbnQuaCBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2luc3Ry dW1lbnQuaAppbmRleCBkMDQ2MDdjZTQwYy4uYmY3NjY3MDY1ODAgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL2V4ZWN1dG9yL2luc3RydW1lbnQuaAorKysgYi9zcmMvaW5jbHVkZS9leGVjdXRvci9p bnN0cnVtZW50LmgKQEAgLTE1Niw4ICsxNTYsOCBAQCBleHRlcm4gdm9pZCBJbnN0clVwZGF0ZVR1 cGxlQ291bnQoTm9kZUluc3RydW1lbnRhdGlvbiAqIGluc3RyLCBkb3VibGUgblR1cGxlcyk7CiBl eHRlcm4gdm9pZCBJbnN0ckVuZExvb3AoTm9kZUluc3RydW1lbnRhdGlvbiAqIGluc3RyKTsKIGV4 dGVybiB2b2lkIEluc3RyQWdnTm9kZShOb2RlSW5zdHJ1bWVudGF0aW9uICogZHN0LCBOb2RlSW5z dHJ1bWVudGF0aW9uICogYWRkKTsKIAotZXh0ZXJuIHZvaWQgSW5zdHJTdGFydFBhcmFsbGVsUXVl cnkodm9pZCk7Ci1leHRlcm4gdm9pZCBJbnN0ckVuZFBhcmFsbGVsUXVlcnkoQnVmZmVyVXNhZ2Ug KmJ1ZnVzYWdlLCBXYWxVc2FnZSAqd2FsdXNhZ2UpOworZXh0ZXJuIEluc3RydW1lbnRhdGlvbiAq SW5zdHJTdGFydFBhcmFsbGVsUXVlcnkodm9pZCk7CitleHRlcm4gdm9pZCBJbnN0ckVuZFBhcmFs bGVsUXVlcnkoSW5zdHJ1bWVudGF0aW9uICppbnN0ciwgQnVmZmVyVXNhZ2UgKmJ1ZnVzYWdlLCBX YWxVc2FnZSAqd2FsdXNhZ2UpOwogZXh0ZXJuIHZvaWQgSW5zdHJBY2N1bVBhcmFsbGVsUXVlcnko QnVmZmVyVXNhZ2UgKmJ1ZnVzYWdlLCBXYWxVc2FnZSAqd2FsdXNhZ2UpOwogZXh0ZXJuIHZvaWQg QnVmZmVyVXNhZ2VBY2N1bURpZmYoQnVmZmVyVXNhZ2UgKmRzdCwKIAkJCQkJCQkJIGNvbnN0IEJ1 ZmZlclVzYWdlICphZGQsIGNvbnN0IEJ1ZmZlclVzYWdlICpzdWIpOwotLSAKMi40Ny4xCgo= --00000000000017b5fe063e636bfe Content-Type: application/octet-stream; name="v2-0004-Introduce-stack-for-tracking-per-node-WAL-buffer-.patch" Content-Disposition: attachment; filename="v2-0004-Introduce-stack-for-tracking-per-node-WAL-buffer-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfcy89ry4 RnJvbSAzOWU0YTdjYWU4ZWRjMjZiZmNjOWVjOTk3NTZhZDAxY2QyZjU4N2I5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWthcyBGaXR0bCA8bHVrYXNAZml0dGwuY29tPgpEYXRlOiBU dWUsIDkgU2VwIDIwMjUgMDI6MTY6NTkgLTA3MDAKU3ViamVjdDogW1BBVENIIHYyIDQvN10gSW50 cm9kdWNlIHN0YWNrIGZvciB0cmFja2luZyBwZXItbm9kZSBXQUwvYnVmZmVyIHVzYWdlCgotLS0K IC4uLi9wZ19zdGF0X3N0YXRlbWVudHMvcGdfc3RhdF9zdGF0ZW1lbnRzLmMgICB8ICAgNCArLQog c3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jICAgICAgICAgICAgICAgIHwgICA4ICstCiBz cmMvYmFja2VuZC9jb21tYW5kcy90cmlnZ2VyLmMgICAgICAgICAgICAgICAgfCAgIDQgKy0KIHNy Yy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMgICAgICAgICAgICAgICB8ICAyNSArKy0KIHNy Yy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQcm9jbm9kZS5jICAgICAgICAgICB8ICAyOSArKysKIHNy Yy9iYWNrZW5kL2V4ZWN1dG9yL2luc3RydW1lbnQuYyAgICAgICAgICAgICB8IDE5OSArKysrKysr KysrKysrKy0tLS0KIHNyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWN1dG9yLmggICAgICAgICAgICAg ICB8ICAgMSArCiBzcmMvaW5jbHVkZS9leGVjdXRvci9pbnN0cnVtZW50LmggICAgICAgICAgICAg fCAgNTMgKysrKy0KIDggZmlsZXMgY2hhbmdlZCwgMjYwIGluc2VydGlvbnMoKyksIDYzIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL3BnX3N0YXRf c3RhdGVtZW50cy5jIGIvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvcGdfc3RhdF9zdGF0ZW1l bnRzLmMKaW5kZXggNGVjMzNmYmY0NzAuLmRlYjZkNDNhNDdmIDEwMDY0NAotLS0gYS9jb250cmli L3BnX3N0YXRfc3RhdGVtZW50cy9wZ19zdGF0X3N0YXRlbWVudHMuYworKysgYi9jb250cmliL3Bn X3N0YXRfc3RhdGVtZW50cy9wZ19zdGF0X3N0YXRlbWVudHMuYwpAQCAtMTA4Nyw4ICsxMDg3LDgg QEAgcGdzc19FeGVjdXRvckVuZChRdWVyeURlc2MgKnF1ZXJ5RGVzYykKIAkJCQkgICBQR1NTX0VY RUMsCiAJCQkJICAgSU5TVFJfVElNRV9HRVRfTUlMTElTRUMocXVlcnlEZXNjLT50b3RhbHRpbWUt PnRvdGFsKSwKIAkJCQkgICBxdWVyeURlc2MtPmVzdGF0ZS0+ZXNfdG90YWxfcHJvY2Vzc2VkLAot CQkJCSAgICZxdWVyeURlc2MtPnRvdGFsdGltZS0+YnVmdXNhZ2UsCi0JCQkJICAgJnF1ZXJ5RGVz Yy0+dG90YWx0aW1lLT53YWx1c2FnZSwKKwkJCQkgICAmSU5TVFJfR0VUX0JVRlVTQUdFKHF1ZXJ5 RGVzYy0+dG90YWx0aW1lKSwKKwkJCQkgICAmSU5TVFJfR0VUX1dBTFVTQUdFKHF1ZXJ5RGVzYy0+ dG90YWx0aW1lKSwKIAkJCQkgICBxdWVyeURlc2MtPmVzdGF0ZS0+ZXNfaml0ID8gJnF1ZXJ5RGVz Yy0+ZXN0YXRlLT5lc19qaXQtPmluc3RyIDogTlVMTCwKIAkJCQkgICBOVUxMLAogCQkJCSAgIHF1 ZXJ5RGVzYy0+ZXN0YXRlLT5lc19wYXJhbGxlbF93b3JrZXJzX3RvX2xhdW5jaCwKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4uYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L2V4cGxhaW4uYwppbmRleCBkMDA1ZmNkYmM5OC4uMWM0ZDBlMTQzMzQgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4uYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9l eHBsYWluLmMKQEAgLTIyODAsOSArMjI4MCw5IEBAIEV4cGxhaW5Ob2RlKFBsYW5TdGF0ZSAqcGxh bnN0YXRlLCBMaXN0ICphbmNlc3RvcnMsCiAKIAkvKiBTaG93IGJ1ZmZlci9XQUwgdXNhZ2UgKi8K IAlpZiAoZXMtPmJ1ZmZlcnMgJiYgcGxhbnN0YXRlLT5pbnN0cnVtZW50KQotCQlzaG93X2J1ZmZl cl91c2FnZShlcywgJnBsYW5zdGF0ZS0+aW5zdHJ1bWVudC0+YnVmdXNhZ2UpOworCQlzaG93X2J1 ZmZlcl91c2FnZShlcywgJnBsYW5zdGF0ZS0+aW5zdHJ1bWVudC0+c3RhY2suYnVmdXNhZ2UpOwog CWlmIChlcy0+d2FsICYmIHBsYW5zdGF0ZS0+aW5zdHJ1bWVudCkKLQkJc2hvd193YWxfdXNhZ2Uo ZXMsICZwbGFuc3RhdGUtPmluc3RydW1lbnQtPndhbHVzYWdlKTsKKwkJc2hvd193YWxfdXNhZ2Uo ZXMsICZwbGFuc3RhdGUtPmluc3RydW1lbnQtPnN0YWNrLndhbHVzYWdlKTsKIAogCS8qIFByZXBh cmUgcGVyLXdvcmtlciBidWZmZXIvV0FMIHVzYWdlICovCiAJaWYgKGVzLT53b3JrZXJzX3N0YXRl ICYmIChlcy0+YnVmZmVycyB8fCBlcy0+d2FsKSAmJiBlcy0+dmVyYm9zZSkKQEAgLTIyOTksOSAr MjI5OSw5IEBAIEV4cGxhaW5Ob2RlKFBsYW5TdGF0ZSAqcGxhbnN0YXRlLCBMaXN0ICphbmNlc3Rv cnMsCiAKIAkJCUV4cGxhaW5PcGVuV29ya2VyKG4sIGVzKTsKIAkJCWlmIChlcy0+YnVmZmVycykK LQkJCQlzaG93X2J1ZmZlcl91c2FnZShlcywgJmluc3RydW1lbnQtPmJ1ZnVzYWdlKTsKKwkJCQlz aG93X2J1ZmZlcl91c2FnZShlcywgJmluc3RydW1lbnQtPnN0YWNrLmJ1ZnVzYWdlKTsKIAkJCWlm IChlcy0+d2FsKQotCQkJCXNob3dfd2FsX3VzYWdlKGVzLCAmaW5zdHJ1bWVudC0+d2FsdXNhZ2Up OworCQkJCXNob3dfd2FsX3VzYWdlKGVzLCAmaW5zdHJ1bWVudC0+c3RhY2sud2FsdXNhZ2UpOwog CQkJRXhwbGFpbkNsb3NlV29ya2VyKG4sIGVzKTsKIAkJfQogCX0KZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3RyaWdnZXIuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RyaWdnZXIu YwppbmRleCA5YjUzZGQ5OWU5OS4uNjdhMmZkZDAzNGEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3RyaWdnZXIuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90cmlnZ2VyLmMK QEAgLTIzOTIsNyArMjM5Miw3IEBAIEV4ZWNDYWxsVHJpZ2dlckZ1bmMoVHJpZ2dlckRhdGEgKnRy aWdkYXRhLAogCSAqIG9uZSAidHVwbGUgcmV0dXJuZWQiIChyZWFsbHkgdGhlIG51bWJlciBvZiBm aXJpbmdzKS4KIAkgKi8KIAlpZiAoaW5zdHIpCi0JCUluc3RyU3RvcChpbnN0ciArIHRnaW5keCwg MSk7CisJCUluc3RyU3RvcChpbnN0ciArIHRnaW5keCwgMSwgZmFsc2UpOwogCiAJcmV0dXJuIChI ZWFwVHVwbGUpIERhdHVtR2V0UG9pbnRlcihyZXN1bHQpOwogfQpAQCAtNDYwNyw3ICs0NjA3LDcg QEAgQWZ0ZXJUcmlnZ2VyRXhlY3V0ZShFU3RhdGUgKmVzdGF0ZSwKIAkgKiBvbmUgInR1cGxlIHJl dHVybmVkIiAocmVhbGx5IHRoZSBudW1iZXIgb2YgZmlyaW5ncykuCiAJICovCiAJaWYgKGluc3Ry KQotCQlJbnN0clN0b3AoaW5zdHIgKyB0Z2luZHgsIDEpOworCQlJbnN0clN0b3AoaW5zdHIgKyB0 Z2luZHgsIDEsIGZhbHNlKTsKIH0KIAogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRv ci9leGVjTWFpbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYwppbmRleCBlNDU5 YjNhYTc5Ny4uMzdmMDAwMjZkYzYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4 ZWNNYWluLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYwpAQCAtMzI5LDYg KzMyOSwxMyBAQCBzdGFuZGFyZF9FeGVjdXRvclJ1bihRdWVyeURlc2MgKnF1ZXJ5RGVzYywKIAkg Ki8KIAlvbGRjb250ZXh0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKGVzdGF0ZS0+ZXNfcXVlcnlf Y3h0KTsKIAorCS8qCisJICogU3RhcnQgdXAgcmVxdWlyZWQgdG9wLWxldmVsIGluc3RydW1lbnRh dGlvbiBzdGFjayBmb3IgV0FML2J1ZmZlcgorCSAqIHRyYWNraW5nCisJICovCisJaWYgKCFxdWVy eURlc2MtPnRvdGFsdGltZSAmJiAoZXN0YXRlLT5lc19pbnN0cnVtZW50ICYgKElOU1RSVU1FTlRf QlVGRkVSUyB8IElOU1RSVU1FTlRfV0FMKSkpCisJCXF1ZXJ5RGVzYy0+dG90YWx0aW1lID0gSW5z dHJBbGxvYygxLCBlc3RhdGUtPmVzX2luc3RydW1lbnQpOworCiAJLyogQWxsb3cgaW5zdHJ1bWVu dGF0aW9uIG9mIEV4ZWN1dG9yIG92ZXJhbGwgcnVudGltZSAqLwogCWlmIChxdWVyeURlc2MtPnRv dGFsdGltZSkKIAkJSW5zdHJTdGFydChxdWVyeURlc2MtPnRvdGFsdGltZSk7CkBAIC0zODMsNyAr MzkwLDcgQEAgc3RhbmRhcmRfRXhlY3V0b3JSdW4oUXVlcnlEZXNjICpxdWVyeURlc2MsCiAJCWRl c3QtPnJTaHV0ZG93bihkZXN0KTsKIAogCWlmIChxdWVyeURlc2MtPnRvdGFsdGltZSkKLQkJSW5z dHJTdG9wKHF1ZXJ5RGVzYy0+dG90YWx0aW1lLCBlc3RhdGUtPmVzX3Byb2Nlc3NlZCk7CisJCUlu c3RyU3RvcChxdWVyeURlc2MtPnRvdGFsdGltZSwgZXN0YXRlLT5lc19wcm9jZXNzZWQsIGZhbHNl KTsKIAogCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjb250ZXh0KTsKIH0KQEAgLTQ0Miw4ICs0 NDksMTUgQEAgc3RhbmRhcmRfRXhlY3V0b3JGaW5pc2goUXVlcnlEZXNjICpxdWVyeURlc2MpCiAJ aWYgKCEoZXN0YXRlLT5lc190b3BfZWZsYWdzICYgRVhFQ19GTEFHX1NLSVBfVFJJR0dFUlMpKQog CQlBZnRlclRyaWdnZXJFbmRRdWVyeShlc3RhdGUpOwogCisJLyoKKwkgKiBBY2N1bXVsYXRlIHBl ciBub2RlIHN0YXRpc3RpY3MsIGFuZCB0aGVuIHNodXQgZG93biBpbnN0cnVtZW50YXRpb24KKwkg KiBzdGFjaworCSAqLworCWlmIChxdWVyeURlc2MtPnRvdGFsdGltZSAmJiBlc3RhdGUtPmVzX2lu c3RydW1lbnQpCisJCUV4ZWNBY2N1bU5vZGVJbnN0cnVtZW50YXRpb24ocXVlcnlEZXNjLT5wbGFu c3RhdGUpOworCiAJaWYgKHF1ZXJ5RGVzYy0+dG90YWx0aW1lKQotCQlJbnN0clN0b3AocXVlcnlE ZXNjLT50b3RhbHRpbWUsIDApOworCQlJbnN0clN0b3AocXVlcnlEZXNjLT50b3RhbHRpbWUsIDAs IHRydWUpOwogCiAJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGNvbnRleHQpOwogCkBAIC0xMjY2 LDcgKzEyODAsMTIgQEAgSW5pdFJlc3VsdFJlbEluZm8oUmVzdWx0UmVsSW5mbyAqcmVzdWx0UmVs SW5mbywKIAkJcmVzdWx0UmVsSW5mby0+cmlfVHJpZ1doZW5FeHBycyA9IChFeHByU3RhdGUgKiop CiAJCQlwYWxsb2MwKG4gKiBzaXplb2YoRXhwclN0YXRlICopKTsKIAkJaWYgKGluc3RydW1lbnRf b3B0aW9ucykKLQkJCXJlc3VsdFJlbEluZm8tPnJpX1RyaWdJbnN0cnVtZW50ID0gSW5zdHJBbGxv YyhuLCBpbnN0cnVtZW50X29wdGlvbnMpOworCQl7CisJCQlpZiAoKGluc3RydW1lbnRfb3B0aW9u cyAmIElOU1RSVU1FTlRfVElNRVIpICE9IDApCisJCQkJcmVzdWx0UmVsSW5mby0+cmlfVHJpZ0lu c3RydW1lbnQgPSBJbnN0ckFsbG9jKG4sIElOU1RSVU1FTlRfVElNRVIpOworCQkJZWxzZQorCQkJ CXJlc3VsdFJlbEluZm8tPnJpX1RyaWdJbnN0cnVtZW50ID0gSW5zdHJBbGxvYyhuLCBJTlNUUlVN RU5UX1JPV1MpOworCQl9CiAJfQogCWVsc2UKIAl7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9l eGVjdXRvci9leGVjUHJvY25vZGUuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQcm9jbm9k ZS5jCmluZGV4IGQyODY0NzEyNTRiLi4xYjNiMzkyMjJhOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY1Byb2Nub2RlLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhl Y1Byb2Nub2RlLmMKQEAgLTEyMiw2ICsxMjIsNyBAQAogc3RhdGljIFR1cGxlVGFibGVTbG90ICpF eGVjUHJvY05vZGVGaXJzdChQbGFuU3RhdGUgKm5vZGUpOwogc3RhdGljIFR1cGxlVGFibGVTbG90 ICpFeGVjUHJvY05vZGVJbnN0cihQbGFuU3RhdGUgKm5vZGUpOwogc3RhdGljIGJvb2wgRXhlY1No dXRkb3duTm9kZV93YWxrZXIoUGxhblN0YXRlICpub2RlLCB2b2lkICpjb250ZXh0KTsKK3N0YXRp YyBib29sIEV4ZWNBY2N1bU5vZGVJbnN0cnVtZW50YXRpb25fd2Fsa2VyKFBsYW5TdGF0ZSAqbm9k ZSwgdm9pZCAqY29udGV4dCk7CiAKIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC04MjgsNiArODI5 LDM0IEBAIEV4ZWNTaHV0ZG93bk5vZGVfd2Fsa2VyKFBsYW5TdGF0ZSAqbm9kZSwgdm9pZCAqY29u dGV4dCkKIAlyZXR1cm4gZmFsc2U7CiB9CiAKKy8qCisgKiBFeGVjQWNjdW1Ob2RlSW5zdHJ1bWVu dGF0aW9uCisgKgorICogQWNjdW11bGF0ZSBpbnN0cnVtZW50YXRpb24gc3RhdHMgZnJvbSBhbGwg ZXhlY3V0aW9uIG5vZGVzIHRvIHRoZWlyIHJlc3BlY3RpdmUKKyAqIHBhcmVudHMgKG9yIHRoZSBv cmlnaW5hbCBwYXJlbnQgaW5zdHJ1bWVudGF0aW9uIHN0YWNrKS4KKyAqLwordm9pZAorRXhlY0Fj Y3VtTm9kZUluc3RydW1lbnRhdGlvbihQbGFuU3RhdGUgKm5vZGUpCit7CisJKHZvaWQpIEV4ZWNB Y2N1bU5vZGVJbnN0cnVtZW50YXRpb25fd2Fsa2VyKG5vZGUsIE5VTEwpOworfQorCitzdGF0aWMg Ym9vbAorRXhlY0FjY3VtTm9kZUluc3RydW1lbnRhdGlvbl93YWxrZXIoUGxhblN0YXRlICpub2Rl LCB2b2lkICpjb250ZXh0KQoreworCWlmIChub2RlID09IE5VTEwpCisJCXJldHVybiBmYWxzZTsK KworCWNoZWNrX3N0YWNrX2RlcHRoKCk7CisKKwlwbGFuc3RhdGVfdHJlZV93YWxrZXIobm9kZSwg RXhlY0FjY3VtTm9kZUluc3RydW1lbnRhdGlvbl93YWxrZXIsIGNvbnRleHQpOworCisJaWYgKG5v ZGUtPmluc3RydW1lbnQgJiYgbm9kZS0+aW5zdHJ1bWVudC0+c3RhY2sucHJldmlvdXMpCisJCUlu c3RyU3RhY2tBZGQobm9kZS0+aW5zdHJ1bWVudC0+c3RhY2sucHJldmlvdXMsICZub2RlLT5pbnN0 cnVtZW50LT5zdGFjayk7CisKKwlyZXR1cm4gZmFsc2U7Cit9CisKIC8qCiAgKiBFeGVjU2V0VHVw bGVCb3VuZAogICoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2luc3RydW1lbnQu YyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2luc3RydW1lbnQuYwppbmRleCAxZmUwZjQyMDRlNS4u OGVmNjI2NzIxZjMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2luc3RydW1lbnQu YworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9pbnN0cnVtZW50LmMKQEAgLTE2LDU2ICsxNiwx NTAgQEAKICNpbmNsdWRlIDx1bmlzdGQuaD4KIAogI2luY2x1ZGUgImV4ZWN1dG9yL2luc3RydW1l bnQuaCIKKyNpbmNsdWRlICJ1dGlscy9tZW11dGlscy5oIgogCiBCdWZmZXJVc2FnZSBwZ0J1ZmZl clVzYWdlOwogc3RhdGljIEJ1ZmZlclVzYWdlIHNhdmVfcGdCdWZmZXJVc2FnZTsKIFdhbFVzYWdl CXBnV2FsVXNhZ2U7CitJbnN0clN0YWNrICpwZ0luc3RyU3RhY2sgPSBOVUxMOwogc3RhdGljIFdh bFVzYWdlIHNhdmVfcGdXYWxVc2FnZTsKIAogc3RhdGljIHZvaWQgQnVmZmVyVXNhZ2VBZGQoQnVm ZmVyVXNhZ2UgKmRzdCwgY29uc3QgQnVmZmVyVXNhZ2UgKmFkZCk7CiBzdGF0aWMgdm9pZCBXYWxV c2FnZUFkZChXYWxVc2FnZSAqZHN0LCBXYWxVc2FnZSAqYWRkKTsKIAorLyoKKyAqIFVzZSBSZXNv dXJjZU93bmVyIG1lY2hhbmlzbSB0byBjb3JyZWN0bHkgcmVzZXQgcGdJbnN0clN0YWNrIG9uIGFi b3J0LgorICovCitzdGF0aWMgdm9pZCBSZXNPd25lclJlbGVhc2VJbnN0cnVtZW50YXRpb24oRGF0 dW0gcmVzKTsKK3N0YXRpYyBjb25zdCBSZXNvdXJjZU93bmVyRGVzYyBpbnN0cnVtZW50YXRpb25f cmVzb3duZXJfZGVzYyA9Cit7CisJLm5hbWUgPSAiaW5zdHJ1bWVudGF0aW9uIiwKKwkucmVsZWFz ZV9waGFzZSA9IFJFU09VUkNFX1JFTEVBU0VfQkVGT1JFX0xPQ0tTLAorCS5yZWxlYXNlX3ByaW9y aXR5ID0gUkVMRUFTRV9QUklPX0ZJUlNULAorCS5SZWxlYXNlUmVzb3VyY2UgPSBSZXNPd25lclJl bGVhc2VJbnN0cnVtZW50YXRpb24sCisJLkRlYnVnUHJpbnQgPSBOVUxMLAkJCS8qIGRlZmF1bHQg bWVzc2FnZSBpcyBmaW5lICovCit9OworCitzdGF0aWMgaW5saW5lIHZvaWQKK1Jlc291cmNlT3du ZXJSZW1lbWJlckluc3RyU3RhY2soUmVzb3VyY2VPd25lciBvd25lciwgSW5zdHJ1bWVudGF0aW9u ICppbnN0cikKK3sKKwlSZXNvdXJjZU93bmVyUmVtZW1iZXIob3duZXIsIFBvaW50ZXJHZXREYXR1 bShpbnN0ciksICZpbnN0cnVtZW50YXRpb25fcmVzb3duZXJfZGVzYyk7Cit9CisKK3N0YXRpYyBp bmxpbmUgdm9pZAorUmVzb3VyY2VPd25lckZvcmdldEluc3RyU3RhY2soUmVzb3VyY2VPd25lciBv d25lciwgSW5zdHJ1bWVudGF0aW9uICppbnN0cikKK3sKKwlSZXNvdXJjZU93bmVyRm9yZ2V0KG93 bmVyLCBQb2ludGVyR2V0RGF0dW0oaW5zdHIpLCAmaW5zdHJ1bWVudGF0aW9uX3Jlc293bmVyX2Rl c2MpOworfQorCitzdGF0aWMgdm9pZAorSW5zdHJQdXNoU3RhY2tSZXNvdXJjZShJbnN0cnVtZW50 YXRpb24gKnJlcykKK3sKKwlSZXNvdXJjZU93bmVyIG93bmVyID0gQ3VycmVudFJlc291cmNlT3du ZXI7CisKKwlBc3NlcnQob3duZXIgIT0gTlVMTCk7CisKKwlyZXMtPm93bmVyID0gb3duZXI7CisK KwlSZXNvdXJjZU93bmVyRW5sYXJnZShvd25lcik7CisJUmVzb3VyY2VPd25lclJlbWVtYmVySW5z dHJTdGFjayhvd25lciwgcmVzKTsKKworCXJlcy0+c3RhY2sucHJldmlvdXMgPSBwZ0luc3RyU3Rh Y2s7CisJcGdJbnN0clN0YWNrID0gJnJlcy0+c3RhY2s7Cit9CisKK3N0YXRpYyB2b2lkCitJbnN0 clBvcFN0YWNrUmVzb3VyY2UoSW5zdHJ1bWVudGF0aW9uICpyZXMpCit7CisJQXNzZXJ0KHJlcyAh PSBOVUxMKTsKKwlBc3NlcnQocmVzLT5vd25lciAhPSBOVUxMKTsKKworCXBnSW5zdHJTdGFjayA9 IHJlcy0+c3RhY2sucHJldmlvdXM7CisKKwlSZXNvdXJjZU93bmVyRm9yZ2V0SW5zdHJTdGFjayhy ZXMtPm93bmVyLCByZXMpOworfQorCitzdGF0aWMgYm9vbAorU3RhY2tJc1BhcmVudChJbnN0clN0 YWNrICogc3RhY2ssIEluc3RyU3RhY2sgKiBlbnRyeSkKK3sKKwlpZiAoZW50cnktPnByZXZpb3Vz ID09IE5VTEwpCisJCXJldHVybiBmYWxzZTsKKworCWlmIChlbnRyeS0+cHJldmlvdXMgPT0gc3Rh Y2spCisJCXJldHVybiB0cnVlOworCisJcmV0dXJuIFN0YWNrSXNQYXJlbnQoc3RhY2ssIGVudHJ5 LT5wcmV2aW91cyk7Cit9CisKK3N0YXRpYyB2b2lkCitSZXNPd25lclJlbGVhc2VJbnN0cnVtZW50 YXRpb24oRGF0dW0gcmVzKQoreworCUluc3RydW1lbnRhdGlvbiAqaW5zdHIgPSAoSW5zdHJ1bWVu dGF0aW9uICopIERhdHVtR2V0UG9pbnRlcihyZXMpOworCisJLyoKKwkgKiBCZWNhdXNlIHJlZ2lz dGVyZWQgcmVzb3VyY2VzIGFyZSAqbm90KiBjYWxsZWQgaW4gcmV2ZXJzZSBvcmRlciwgd2UnbGwK KwkgKiBnZXQgd2hhdCB3YXMgZmlyc3QgcmVnaXN0ZXJlZCBmaXJzdCBhdCBzaHV0ZG93bi4gVGh1 cywgb24gYW55IGxhdGVyCisJICogcmVzb3VyY2VzIHdlIG5lZWQgdG8gbm90IGNoYW5nZSB0aGUg c3RhY2ssIHdoaWNoIHdhcyBhbHJlYWR5IHNldCB0byB0aGUKKwkgKiBjb3JyZWN0IHByZXZpb3Vz IGVudHJ5LgorCSAqLworCWlmIChwZ0luc3RyU3RhY2sgJiYgIVN0YWNrSXNQYXJlbnQocGdJbnN0 clN0YWNrLCAmaW5zdHItPnN0YWNrKSkKKwkJcGdJbnN0clN0YWNrID0gaW5zdHItPnN0YWNrLnBy ZXZpb3VzOworCisJLyoKKwkgKiBBbHdheXMgYWNjdW11bGF0ZSBhbGwgY29sbGVjdGVkIHN0YXRz IGJlZm9yZSB0aGUgYWJvcnQsIGV2ZW4gaWYgd2UKKwkgKiBhbHJlYWR5IHdhbGtlZCB1cCB0aGUg c3RhY2sgd2l0aCBhbiBlYXJsaWVyIHJlc291cmNlLgorCSAqLworCWlmIChwZ0luc3RyU3RhY2sp CisJCUluc3RyU3RhY2tBZGQocGdJbnN0clN0YWNrLCAmaW5zdHItPnN0YWNrKTsKKworCWluc3Ry LT5maW5hbGl6ZWQgPSB0cnVlOworfQogCiAvKiBHZW5lcmFsIHB1cnBvc2UgaW5zdHJ1bWVudGF0 aW9uIGhhbmRsaW5nICovCiBJbnN0cnVtZW50YXRpb24gKgogSW5zdHJBbGxvYyhpbnQgbiwgaW50 IGluc3RydW1lbnRfb3B0aW9ucykKIHsKLQlJbnN0cnVtZW50YXRpb24gKmluc3RyOworCUluc3Ry dW1lbnRhdGlvbiAqaW5zdHIgPSBOVUxMOworCWJvb2wJCW5lZWRfYnVmZmVycyA9IChpbnN0cnVt ZW50X29wdGlvbnMgJiBJTlNUUlVNRU5UX0JVRkZFUlMpICE9IDA7CisJYm9vbAkJbmVlZF93YWwg PSAoaW5zdHJ1bWVudF9vcHRpb25zICYgSU5TVFJVTUVOVF9XQUwpICE9IDA7CisJYm9vbAkJbmVl ZF90aW1lciA9IChpbnN0cnVtZW50X29wdGlvbnMgJiBJTlNUUlVNRU5UX1RJTUVSKSAhPSAwOwor CWludAkJCWk7CisKKwkvKgorCSAqIElmIHJlc291cmNlIG93bmVyIHdpbGwgYmUgdXNlZCwgd2Ug bXVzdCBhbGxvY2F0ZSBpbiB0aGUgdHJhbnNhY3Rpb24KKwkgKiBjb250ZXh0IChub3QgdGhlIGNh bGxpbmcgY29udGV4dCwgdXN1YWxseSBhIGxvd2VyIGNvbnRleHQpLCBiZWNhdXNlIHRoZQorCSAq IG1lbW9yeSBtaWdodCBvdGhlcndpc2UgYmUgZnJlZWQgdG9vIGVhcmx5IGluIGFuIGFib3J0IHNp dHVhdGlvbi4KKwkgKi8KKwlpZiAobmVlZF9idWZmZXJzIHx8IG5lZWRfd2FsKQorCQlpbnN0ciA9 IE1lbW9yeUNvbnRleHRBbGxvY1plcm8oQ3VyVHJhbnNhY3Rpb25Db250ZXh0LCBuICogc2l6ZW9m KEluc3RydW1lbnRhdGlvbikpOworCWVsc2UKKwkJaW5zdHIgPSBwYWxsb2MwKG4gKiBzaXplb2Yo SW5zdHJ1bWVudGF0aW9uKSk7CiAKLQkvKiBpbml0aWFsaXplIGFsbCBmaWVsZHMgdG8gemVyb2Vz LCB0aGVuIG1vZGlmeSBhcyBuZWVkZWQgKi8KLQlpbnN0ciA9IHBhbGxvYzAobiAqIHNpemVvZihJ bnN0cnVtZW50YXRpb24pKTsKLQlpZiAoaW5zdHJ1bWVudF9vcHRpb25zICYgKElOU1RSVU1FTlRf QlVGRkVSUyB8IElOU1RSVU1FTlRfVElNRVIgfCBJTlNUUlVNRU5UX1dBTCkpCisJZm9yIChpID0g MDsgaSA8IG47IGkrKykKIAl7Ci0JCWJvb2wJCW5lZWRfYnVmZmVycyA9IChpbnN0cnVtZW50X29w dGlvbnMgJiBJTlNUUlVNRU5UX0JVRkZFUlMpICE9IDA7Ci0JCWJvb2wJCW5lZWRfd2FsID0gKGlu c3RydW1lbnRfb3B0aW9ucyAmIElOU1RSVU1FTlRfV0FMKSAhPSAwOwotCQlib29sCQluZWVkX3Rp bWVyID0gKGluc3RydW1lbnRfb3B0aW9ucyAmIElOU1RSVU1FTlRfVElNRVIpICE9IDA7Ci0JCWlu dAkJCWk7Ci0KLQkJZm9yIChpID0gMDsgaSA8IG47IGkrKykKLQkJewotCQkJaW5zdHJbaV0ubmVl ZF9idWZ1c2FnZSA9IG5lZWRfYnVmZmVyczsKLQkJCWluc3RyW2ldLm5lZWRfd2FsdXNhZ2UgPSBu ZWVkX3dhbDsKLQkJCWluc3RyW2ldLm5lZWRfdGltZXIgPSBuZWVkX3RpbWVyOwotCQl9CisJCWlu c3RyW2ldLm5lZWRfYnVmdXNhZ2UgPSBuZWVkX2J1ZmZlcnM7CisJCWluc3RyW2ldLm5lZWRfd2Fs dXNhZ2UgPSBuZWVkX3dhbDsKKwkJaW5zdHJbaV0ubmVlZF90aW1lciA9IG5lZWRfdGltZXI7CiAJ fQogCiAJcmV0dXJuIGluc3RyOwogfQorCiB2b2lkCiBJbnN0clN0YXJ0KEluc3RydW1lbnRhdGlv biAqaW5zdHIpCiB7CisJQXNzZXJ0KCFpbnN0ci0+ZmluYWxpemVkKTsKKwogCWlmIChpbnN0ci0+ bmVlZF90aW1lciAmJgogCQkhSU5TVFJfVElNRV9TRVRfQ1VSUkVOVF9MQVpZKGluc3RyLT5zdGFy dHRpbWUpKQogCQllbG9nKEVSUk9SLCAiSW5zdHJTdGFydCBjYWxsZWQgdHdpY2UgaW4gYSByb3ci KTsKIAotCWlmIChpbnN0ci0+bmVlZF9idWZ1c2FnZSkKLQkJaW5zdHItPmJ1ZnVzYWdlX3N0YXJ0 ID0gcGdCdWZmZXJVc2FnZTsKLQotCWlmIChpbnN0ci0+bmVlZF93YWx1c2FnZSkKLQkJaW5zdHIt PndhbHVzYWdlX3N0YXJ0ID0gcGdXYWxVc2FnZTsKKwlpZiAoaW5zdHItPm5lZWRfYnVmdXNhZ2Ug fHwgaW5zdHItPm5lZWRfd2FsdXNhZ2UpCisJCUluc3RyUHVzaFN0YWNrUmVzb3VyY2UoaW5zdHIp OwogfQorCiB2b2lkCi1JbnN0clN0b3AoSW5zdHJ1bWVudGF0aW9uICppbnN0ciwgZG91YmxlIG5U dXBsZXMpCitJbnN0clN0b3AoSW5zdHJ1bWVudGF0aW9uICppbnN0ciwgZG91YmxlIG5UdXBsZXMs IGJvb2wgZmluYWxpemUpCiB7CiAJaW5zdHJfdGltZQllbmR0aW1lOwogCkBAIC04NCwxNCArMTc4 LDE1IEBAIEluc3RyU3RvcChJbnN0cnVtZW50YXRpb24gKmluc3RyLCBkb3VibGUgblR1cGxlcykK IAkJSU5TVFJfVElNRV9TRVRfWkVSTyhpbnN0ci0+c3RhcnR0aW1lKTsKIAl9CiAKLQkvKiBBZGQg ZGVsdGEgb2YgYnVmZmVyIHVzYWdlIHNpbmNlIGVudHJ5IHRvIG5vZGUncyB0b3RhbHMgKi8KLQlp ZiAoaW5zdHItPm5lZWRfYnVmdXNhZ2UpCi0JCUJ1ZmZlclVzYWdlQWNjdW1EaWZmKCZpbnN0ci0+ YnVmdXNhZ2UsCi0JCQkJCQkJICZwZ0J1ZmZlclVzYWdlLCAmaW5zdHItPmJ1ZnVzYWdlX3N0YXJ0 KTsKKwlpZiAoaW5zdHItPm5lZWRfYnVmdXNhZ2UgfHwgaW5zdHItPm5lZWRfd2FsdXNhZ2UpCisJ CUluc3RyUG9wU3RhY2tSZXNvdXJjZShpbnN0cik7CiAKLQlpZiAoaW5zdHItPm5lZWRfd2FsdXNh Z2UpCi0JCVdhbFVzYWdlQWNjdW1EaWZmKCZpbnN0ci0+d2FsdXNhZ2UsCi0JCQkJCQkgICZwZ1dh bFVzYWdlLCAmaW5zdHItPndhbHVzYWdlX3N0YXJ0KTsKKwlpZiAoZmluYWxpemUpCisJeworCQlp bnN0ci0+ZmluYWxpemVkID0gdHJ1ZTsKKwkJaWYgKHBnSW5zdHJTdGFjaykKKwkJCUluc3RyU3Rh Y2tBZGQocGdJbnN0clN0YWNrLCAmaW5zdHItPnN0YWNrKTsKKwl9CiB9CiAKIC8qIEFsbG9jYXRl IG5ldyBub2RlIGluc3RydW1lbnRhdGlvbiBzdHJ1Y3R1cmUocykgKi8KQEAgLTEzOSwxMiArMjM0 LDE0IEBAIEluc3RyU3RhcnROb2RlKE5vZGVJbnN0cnVtZW50YXRpb24gKiBpbnN0cikKIAkJIUlO U1RSX1RJTUVfU0VUX0NVUlJFTlRfTEFaWShpbnN0ci0+c3RhcnR0aW1lKSkKIAkJZWxvZyhFUlJP UiwgIkluc3RyU3RhcnROb2RlIGNhbGxlZCB0d2ljZSBpbiBhIHJvdyIpOwogCi0JLyogc2F2ZSBi dWZmZXIgdXNhZ2UgdG90YWxzIGF0IG5vZGUgZW50cnksIGlmIG5lZWRlZCAqLwotCWlmIChpbnN0 ci0+bmVlZF9idWZ1c2FnZSkKLQkJaW5zdHItPmJ1ZnVzYWdlX3N0YXJ0ID0gcGdCdWZmZXJVc2Fn ZTsKKwlpZiAoaW5zdHItPm5lZWRfYnVmdXNhZ2UgfHwgaW5zdHItPm5lZWRfd2FsdXNhZ2UpCisJ eworCQkvKiBFbnN1cmUgdGhhdCB3ZSBhbHdheXMgaGF2ZSBhIHBhcmVudCwgZXZlbiBhdCB0aGUg dG9wIG1vc3Qgbm9kZSAqLworCQlBc3NlcnQocGdJbnN0clN0YWNrICE9IE5VTEwpOwogCi0JaWYg KGluc3RyLT5uZWVkX3dhbHVzYWdlKQotCQlpbnN0ci0+d2FsdXNhZ2Vfc3RhcnQgPSBwZ1dhbFVz YWdlOworCQlpbnN0ci0+c3RhY2sucHJldmlvdXMgPSBwZ0luc3RyU3RhY2s7CisJCXBnSW5zdHJT dGFjayA9ICZpbnN0ci0+c3RhY2s7CisJfQogfQogCiAvKiBFeGl0IGZyb20gYSBwbGFuIG5vZGUg Ki8KQEAgLTE2OSwxNCArMjY2LDEyIEBAIEluc3RyU3RvcE5vZGUoTm9kZUluc3RydW1lbnRhdGlv biAqIGluc3RyLCBkb3VibGUgblR1cGxlcykKIAkJSU5TVFJfVElNRV9TRVRfWkVSTyhpbnN0ci0+ c3RhcnR0aW1lKTsKIAl9CiAKLQkvKiBBZGQgZGVsdGEgb2YgYnVmZmVyIHVzYWdlIHNpbmNlIGVu dHJ5IHRvIG5vZGUncyB0b3RhbHMgKi8KLQlpZiAoaW5zdHItPm5lZWRfYnVmdXNhZ2UpCi0JCUJ1 ZmZlclVzYWdlQWNjdW1EaWZmKCZpbnN0ci0+YnVmdXNhZ2UsCi0JCQkJCQkJICZwZ0J1ZmZlclVz YWdlLCAmaW5zdHItPmJ1ZnVzYWdlX3N0YXJ0KTsKLQotCWlmIChpbnN0ci0+bmVlZF93YWx1c2Fn ZSkKLQkJV2FsVXNhZ2VBY2N1bURpZmYoJmluc3RyLT53YWx1c2FnZSwKLQkJCQkJCSAgJnBnV2Fs VXNhZ2UsICZpbnN0ci0+d2FsdXNhZ2Vfc3RhcnQpOworCWlmIChpbnN0ci0+bmVlZF9idWZ1c2Fn ZSB8fCBpbnN0ci0+bmVlZF93YWx1c2FnZSkKKwl7CisJCS8qIEVuc3VyZSB0aGF0IHdlIGFsd2F5 cyBoYXZlIGEgcGFyZW50LCBldmVuIGF0IHRoZSB0b3AgbW9zdCBub2RlICovCisJCUFzc2VydChp bnN0ci0+c3RhY2sucHJldmlvdXMgIT0gTlVMTCk7CisJCXBnSW5zdHJTdGFjayA9IGluc3RyLT5z dGFjay5wcmV2aW91czsKKwl9CiAKIAkvKiBJcyB0aGlzIHRoZSBmaXJzdCB0dXBsZSBvZiB0aGlz IGN5Y2xlPyAqLwogCWlmICghaW5zdHItPnJ1bm5pbmcpCkBAIC0yNTMsMTAgKzM0OCwyMCBAQCBJ bnN0ckFnZ05vZGUoTm9kZUluc3RydW1lbnRhdGlvbiAqIGRzdCwgTm9kZUluc3RydW1lbnRhdGlv biAqIGFkZCkKIAogCS8qIEFkZCBkZWx0YSBvZiBidWZmZXIgdXNhZ2Ugc2luY2UgZW50cnkgdG8g bm9kZSdzIHRvdGFscyAqLwogCWlmIChkc3QtPm5lZWRfYnVmdXNhZ2UpCi0JCUJ1ZmZlclVzYWdl QWRkKCZkc3QtPmJ1ZnVzYWdlLCAmYWRkLT5idWZ1c2FnZSk7CisJCUJ1ZmZlclVzYWdlQWRkKCZk c3QtPnN0YWNrLmJ1ZnVzYWdlLCAmYWRkLT5zdGFjay5idWZ1c2FnZSk7CiAKIAlpZiAoZHN0LT5u ZWVkX3dhbHVzYWdlKQotCQlXYWxVc2FnZUFkZCgmZHN0LT53YWx1c2FnZSwgJmFkZC0+d2FsdXNh Z2UpOworCQlXYWxVc2FnZUFkZCgmZHN0LT5zdGFjay53YWx1c2FnZSwgJmFkZC0+c3RhY2sud2Fs dXNhZ2UpOworfQorCit2b2lkCitJbnN0clN0YWNrQWRkKEluc3RyU3RhY2sgKiBkc3QsIEluc3Ry U3RhY2sgKiBhZGQpCit7CisJQXNzZXJ0KGRzdCAhPSBOVUxMKTsKKwlBc3NlcnQoYWRkICE9IE5V TEwpOworCisJQnVmZmVyVXNhZ2VBZGQoJmRzdC0+YnVmdXNhZ2UsICZhZGQtPmJ1ZnVzYWdlKTsK KwlXYWxVc2FnZUFkZCgmZHN0LT53YWx1c2FnZSwgJmFkZC0+d2FsdXNhZ2UpOwogfQogCiAvKiBu b3RlIGN1cnJlbnQgdmFsdWVzIGR1cmluZyBwYXJhbGxlbCBleGVjdXRvciBzdGFydHVwICovCkBA IC0yODEsNiArMzg2LDE0IEBAIEluc3RyRW5kUGFyYWxsZWxRdWVyeShCdWZmZXJVc2FnZSAqYnVm dXNhZ2UsIFdhbFVzYWdlICp3YWx1c2FnZSkKIHZvaWQKIEluc3RyQWNjdW1QYXJhbGxlbFF1ZXJ5 KEJ1ZmZlclVzYWdlICpidWZ1c2FnZSwgV2FsVXNhZ2UgKndhbHVzYWdlKQogeworCWlmIChwZ0lu c3RyU3RhY2sgIT0gTlVMTCkKKwl7CisJCUluc3RyU3RhY2sgKmRzdCA9IHBnSW5zdHJTdGFjazsK KworCQlCdWZmZXJVc2FnZUFkZCgmZHN0LT5idWZ1c2FnZSwgYnVmdXNhZ2UpOworCQlXYWxVc2Fn ZUFkZCgmZHN0LT53YWx1c2FnZSwgd2FsdXNhZ2UpOworCX0KKwogCUJ1ZmZlclVzYWdlQWRkKCZw Z0J1ZmZlclVzYWdlLCBidWZ1c2FnZSk7CiAJV2FsVXNhZ2VBZGQoJnBnV2FsVXNhZ2UsIHdhbHVz YWdlKTsKIH0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWN1dG9yLmggYi9z cmMvaW5jbHVkZS9leGVjdXRvci9leGVjdXRvci5oCmluZGV4IDMxMTMzNTE0ZTg0Li5iYTc2YTM3 MGQzZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY3V0b3IuaAorKysgYi9z cmMvaW5jbHVkZS9leGVjdXRvci9leGVjdXRvci5oCkBAIC0yOTcsNiArMjk3LDcgQEAgZXh0ZXJu IHZvaWQgRXhlY1NldEV4ZWNQcm9jTm9kZShQbGFuU3RhdGUgKm5vZGUsIEV4ZWNQcm9jTm9kZU10 ZCBmdW5jdGlvbik7CiBleHRlcm4gTm9kZSAqTXVsdGlFeGVjUHJvY05vZGUoUGxhblN0YXRlICpu b2RlKTsKIGV4dGVybiB2b2lkIEV4ZWNFbmROb2RlKFBsYW5TdGF0ZSAqbm9kZSk7CiBleHRlcm4g dm9pZCBFeGVjU2h1dGRvd25Ob2RlKFBsYW5TdGF0ZSAqbm9kZSk7CitleHRlcm4gdm9pZCBFeGVj QWNjdW1Ob2RlSW5zdHJ1bWVudGF0aW9uKFBsYW5TdGF0ZSAqbm9kZSk7CiBleHRlcm4gdm9pZCBF eGVjU2V0VHVwbGVCb3VuZChpbnQ2NCB0dXBsZXNfbmVlZGVkLCBQbGFuU3RhdGUgKmNoaWxkX25v ZGUpOwogCiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2luc3RydW1lbnQuaCBi L3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2luc3RydW1lbnQuaAppbmRleCA3OGQzNjUzOTk3Yi4uZDA0 NjA3Y2U0MGMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2luc3RydW1lbnQuaAor KysgYi9zcmMvaW5jbHVkZS9leGVjdXRvci9pbnN0cnVtZW50LmgKQEAgLTE0LDYgKzE0LDcgQEAK ICNkZWZpbmUgSU5TVFJVTUVOVF9ICiAKICNpbmNsdWRlICJwb3J0YWJpbGl0eS9pbnN0cl90aW1l LmgiCisjaW5jbHVkZSAidXRpbHMvcmVzb3duZXIuaCIKIAogCiAvKgpAQCAtNjYsMTEgKzY3LDIz IEBAIHR5cGVkZWYgZW51bSBJbnN0cnVtZW50T3B0aW9uCiAJSU5TVFJVTUVOVF9BTEwgPSBQR19J TlQzMl9NQVgKIH0gSW5zdHJ1bWVudE9wdGlvbjsKIAorLyogU3RhY2sgb2YgV0FML2J1ZmZlciB1 c2FnZSB1c2VkIGZvciBwZXItbm9kZSBpbnN0cnVtZW50YXRpb24gKi8KK3R5cGVkZWYgc3RydWN0 IEluc3RyU3RhY2sKK3sKKwlzdHJ1Y3QgSW5zdHJTdGFjayAqcHJldmlvdXM7CisJQnVmZmVyVXNh Z2UgYnVmdXNhZ2U7CisJV2FsVXNhZ2UJd2FsdXNhZ2U7Cit9CQkJSW5zdHJTdGFjazsKKwogLyoK ICAqIEdlbmVyYWwgcHVycG9zZSBpbnN0cnVtZW50YXRpb24gdGhhdCBjYW4gY2FwdHVyZSB0aW1l LCBXQUwvYnVmZmVyIHVzYWdlIGFuZCB0dXBsZXMKICAqCiAgKiBJbml0aWFsaXplZCB0aHJvdWdo IEluc3RyQWxsb2MsIGZvbGxvd2VkIGJ5IG9uZSBvciBtb3JlIGNhbGxzIHRvIGEgcGFpciBvZgog ICogSW5zdHJTdGFydC9JbnN0clN0b3AgKGFjdGl2aXR5IGlzIG1lYXN1cmVkIGluYmV0d2Vlbiku CisgKgorICogVXNlcyByZXNvdXJjZSBvd25lciBtZWNoYW5pc20gZm9yIGhhbmRsaW5nIGFib3J0 cywgYXMgc3VjaCwgdGhlIGNhbGxlciAqbXVzdCogbm90IGV4aXQgb3V0IG9mCisgKiB0b3AgbGV2 ZWwgdHJhbnNhY3Rpb24gYmV0d2VlbiBJbnN0clN0YXJ0L0luc3RyU3RvcCBjYWxscyBpbiByZWd1 bGFyIGV4ZWN1dGlvbi4gSWYgdGhpcyBpcyBuZWVkZWQsCisgKiBkaXJlY3RseSB1c2UgSW5zdHJQ dXNoU3RhY2svSW5zdHJQb3BTdGFjayBpbiBhIFBHX1RSWS9QR19GSU5BTExZIGJsb2NrIGluc3Rl YWQuCiAgKi8KIHR5cGVkZWYgc3RydWN0IEluc3RydW1lbnRhdGlvbgogewpAQCAtNzksMTggKzky LDIyIEBAIHR5cGVkZWYgc3RydWN0IEluc3RydW1lbnRhdGlvbgogCWJvb2wJCW5lZWRfYnVmdXNh Z2U7CS8qIHRydWUgaWYgd2UgbmVlZCBidWZmZXIgdXNhZ2UgZGF0YSAqLwogCWJvb2wJCW5lZWRf d2FsdXNhZ2U7CS8qIHRydWUgaWYgd2UgbmVlZCBXQUwgdXNhZ2UgZGF0YSAqLwogCS8qIEludGVy bmFsIHN0YXRlIGtlZXBpbmc6ICovCisJYm9vbAkJZmluYWxpemVkOwkJLyogdHJ1ZSBpZiBubyBt b3JlIEluc3RyU3RhcnQgY2FsbHMgYXJlCisJCQkJCQkJCSAqIGFsbG93ZWQgKi8KIAlpbnN0cl90 aW1lCXN0YXJ0dGltZTsJCS8qIHN0YXJ0IHRpbWUgb2YgbGFzdCBJbnN0clN0YXJ0ICovCi0JQnVm ZmVyVXNhZ2UgYnVmdXNhZ2Vfc3RhcnQ7IC8qIGJ1ZmZlciB1c2FnZSBhdCBzdGFydCAqLwotCVdh bFVzYWdlCXdhbHVzYWdlX3N0YXJ0OyAvKiBXQUwgdXNhZ2UgYXQgc3RhcnQgKi8KIAkvKiBBY2N1 bXVsYXRlZCBzdGF0aXN0aWNzOiAqLwogCWluc3RyX3RpbWUJdG90YWw7CQkJLyogdG90YWwgcnVu dGltZSAqLwogCWRvdWJsZQkJbnR1cGxlczsJCS8qIHRvdGFsIHR1cGxlcyBjb3VudGVkIGluIElu c3RyU3RvcCAqLwotCUJ1ZmZlclVzYWdlIGJ1ZnVzYWdlOwkJLyogdG90YWwgYnVmZmVyIHVzYWdl ICovCi0JV2FsVXNhZ2UJd2FsdXNhZ2U7CQkvKiB0b3RhbCBXQUwgdXNhZ2UgKi8KKwlJbnN0clN0 YWNrCXN0YWNrOwkJCS8qIHN0YWNrIHRyYWNraW5nIGJ1ZmZlci9XQUwgdXNhZ2UgKi8KKwlSZXNv dXJjZU93bmVyIG93bmVyOwogfSBJbnN0cnVtZW50YXRpb247CiAKIC8qCiAgKiBTcGVjaWFsaXpl ZCBpbnN0cnVtZW50YXRpb24gZm9yIHBlci1ub2RlIGV4ZWN1dGlvbiBzdGF0aXN0aWNzCisgKgor ICogUmVxdWlyZXMgdXNlIG9mIGFuIG91dGVyIEluc3RyU3RhcnQvSW5zdHJTdG9wIHRvIGhhbmRs ZSB0aGUgc3RhY2sgdXNlZCBmb3IgV0FML2J1ZmZlcgorICogdXNhZ2Ugc3RhdGlzdGljcywgYW5k IHJlbGllcyBvbiBpdCBmb3IgbWFuYWdpbmcgYWJvcnRzLiBTb2xlbHkgaW50ZW5kZWQgZm9yCisg KiB0aGUgZXhlY3V0b3IgYW5kIGFueW9uZSByZXBvcnRpbmcgYWJvdXQgaXRzIGFjdGl2aXRpZXMg KGUuZy4gRVhQTEFJTiBBTkFMWVpFKS4KICAqLwogdHlwZWRlZiBzdHJ1Y3QgTm9kZUluc3RydW1l bnRhdGlvbgogewpAQCAtMTA1LDggKzEyMiw2IEBAIHR5cGVkZWYgc3RydWN0IE5vZGVJbnN0cnVt ZW50YXRpb24KIAlpbnN0cl90aW1lCWNvdW50ZXI7CQkvKiBhY2N1bXVsYXRlZCBydW50aW1lIGZv ciB0aGlzIG5vZGUgKi8KIAlpbnN0cl90aW1lCWZpcnN0dHVwbGU7CQkvKiB0aW1lIGZvciBmaXJz dCB0dXBsZSBvZiB0aGlzIGN5Y2xlICovCiAJZG91YmxlCQl0dXBsZWNvdW50OwkJLyogIyBvZiB0 dXBsZXMgZW1pdHRlZCBzbyBmYXIgdGhpcyBjeWNsZSAqLwotCUJ1ZmZlclVzYWdlIGJ1ZnVzYWdl X3N0YXJ0OyAvKiBidWZmZXIgdXNhZ2UgYXQgc3RhcnQgKi8KLQlXYWxVc2FnZQl3YWx1c2FnZV9z dGFydDsgLyogV0FMIHVzYWdlIGF0IHN0YXJ0ICovCiAJLyogQWNjdW11bGF0ZWQgc3RhdGlzdGlj cyBhY3Jvc3MgYWxsIGNvbXBsZXRlZCBjeWNsZXM6ICovCiAJaW5zdHJfdGltZQlzdGFydHVwOwkJ LyogdG90YWwgc3RhcnR1cCB0aW1lICovCiAJaW5zdHJfdGltZQl0b3RhbDsJCQkvKiB0b3RhbCB0 aW1lICovCkBAIC0xMTUsOCArMTMwLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgTm9kZUluc3RydW1lbnRh dGlvbgogCWRvdWJsZQkJbmxvb3BzOwkJCS8qICMgb2YgcnVuIGN5Y2xlcyBmb3IgdGhpcyBub2Rl ICovCiAJZG91YmxlCQluZmlsdGVyZWQxOwkJLyogIyBvZiB0dXBsZXMgcmVtb3ZlZCBieSBzY2Fu cXVhbCBvciBqb2lucXVhbCAqLwogCWRvdWJsZQkJbmZpbHRlcmVkMjsJCS8qICMgb2YgdHVwbGVz IHJlbW92ZWQgYnkgIm90aGVyIiBxdWFscyAqLwotCUJ1ZmZlclVzYWdlIGJ1ZnVzYWdlOwkJLyog dG90YWwgYnVmZmVyIHVzYWdlICovCi0JV2FsVXNhZ2UJd2FsdXNhZ2U7CQkvKiB0b3RhbCBXQUwg dXNhZ2UgKi8KKwlJbnN0clN0YWNrCXN0YWNrOwkJCS8qIHN0YWNrIHRyYWNraW5nIGJ1ZmZlci9X QUwgdXNhZ2UgKi8KIH0JCQlOb2RlSW5zdHJ1bWVudGF0aW9uOwogCiB0eXBlZGVmIHN0cnVjdCBX b3JrZXJJbnN0cnVtZW50YXRpb24KQEAgLTEyNywxMCArMTQxLDExIEBAIHR5cGVkZWYgc3RydWN0 IFdvcmtlckluc3RydW1lbnRhdGlvbgogCiBleHRlcm4gUEdETExJTVBPUlQgQnVmZmVyVXNhZ2Ug cGdCdWZmZXJVc2FnZTsKIGV4dGVybiBQR0RMTElNUE9SVCBXYWxVc2FnZSBwZ1dhbFVzYWdlOwor ZXh0ZXJuIFBHRExMSU1QT1JUIEluc3RyU3RhY2sgKiBwZ0luc3RyU3RhY2s7CiAKIGV4dGVybiBJ bnN0cnVtZW50YXRpb24gKkluc3RyQWxsb2MoaW50IG4sIGludCBpbnN0cnVtZW50X29wdGlvbnMp OwogZXh0ZXJuIHZvaWQgSW5zdHJTdGFydChJbnN0cnVtZW50YXRpb24gKmluc3RyKTsKLWV4dGVy biB2b2lkIEluc3RyU3RvcChJbnN0cnVtZW50YXRpb24gKmluc3RyLCBkb3VibGUgblR1cGxlcyk7 CitleHRlcm4gdm9pZCBJbnN0clN0b3AoSW5zdHJ1bWVudGF0aW9uICppbnN0ciwgZG91YmxlIG5U dXBsZXMsIGJvb2wgZmluYWxpemUpOwogCiBleHRlcm4gTm9kZUluc3RydW1lbnRhdGlvbiAqIElu c3RyQWxsb2NOb2RlKGludCBuLCBpbnQgaW5zdHJ1bWVudF9vcHRpb25zLAogCQkJCQkJCQkJCQli b29sIGFzeW5jX21vZGUpOwpAQCAtMTQ2LDI2ICsxNjEsNDYgQEAgZXh0ZXJuIHZvaWQgSW5zdHJF bmRQYXJhbGxlbFF1ZXJ5KEJ1ZmZlclVzYWdlICpidWZ1c2FnZSwgV2FsVXNhZ2UgKndhbHVzYWdl KTsKIGV4dGVybiB2b2lkIEluc3RyQWNjdW1QYXJhbGxlbFF1ZXJ5KEJ1ZmZlclVzYWdlICpidWZ1 c2FnZSwgV2FsVXNhZ2UgKndhbHVzYWdlKTsKIGV4dGVybiB2b2lkIEJ1ZmZlclVzYWdlQWNjdW1E aWZmKEJ1ZmZlclVzYWdlICpkc3QsCiAJCQkJCQkJCSBjb25zdCBCdWZmZXJVc2FnZSAqYWRkLCBj b25zdCBCdWZmZXJVc2FnZSAqc3ViKTsKK2V4dGVybiB2b2lkIEluc3RyU3RhY2tBZGQoSW5zdHJT dGFjayAqIGRzdCwgSW5zdHJTdGFjayAqIGFkZCk7CiBleHRlcm4gdm9pZCBXYWxVc2FnZUFjY3Vt RGlmZihXYWxVc2FnZSAqZHN0LCBjb25zdCBXYWxVc2FnZSAqYWRkLAogCQkJCQkJCSAgY29uc3Qg V2FsVXNhZ2UgKnN1Yik7CiAKKyNkZWZpbmUgSU5TVFJfR0VUX0JVRlVTQUdFKGluc3RyKSBcCisJ aW5zdHItPnN0YWNrLmJ1ZnVzYWdlCisKKyNkZWZpbmUgSU5TVFJfR0VUX1dBTFVTQUdFKGluc3Ry KSBcCisJaW5zdHItPnN0YWNrLndhbHVzYWdlCisKICNkZWZpbmUgSU5TVFJfQlVGVVNBR0VfSU5D UihmbGQpIGRvIHsgXAogCQlwZ0J1ZmZlclVzYWdlLmZsZCsrOyBcCisJCWlmIChwZ0luc3RyU3Rh Y2spIFwKKwkJCXBnSW5zdHJTdGFjay0+YnVmdXNhZ2UuZmxkKys7IFwKIAl9IHdoaWxlKDApCiAj ZGVmaW5lIElOU1RSX0JVRlVTQUdFX0FERChmbGQsdmFsKSBkbyB7IFwKIAkJcGdCdWZmZXJVc2Fn ZS5mbGQgKz0gdmFsOyBcCisJCWlmIChwZ0luc3RyU3RhY2spIFwKKwkJCXBnSW5zdHJTdGFjay0+ YnVmdXNhZ2UuZmxkICs9IHZhbDsgXAogCX0gd2hpbGUoMCkKICNkZWZpbmUgSU5TVFJfQlVGVVNB R0VfVElNRV9BREQoZmxkLHZhbCkgZG8geyBcCiAJSU5TVFJfVElNRV9BREQocGdCdWZmZXJVc2Fn ZS5mbGQsIHZhbCk7IFwKKwlpZiAocGdJbnN0clN0YWNrKSBcCisJCUlOU1RSX1RJTUVfQUREKHBn SW5zdHJTdGFjay0+YnVmdXNhZ2UuZmxkLCB2YWwpOyBcCiAJfSB3aGlsZSAoMCkKICNkZWZpbmUg SU5TVFJfQlVGVVNBR0VfVElNRV9BQ0NVTV9ESUZGKGZsZCxlbmR2YWwsc3RhcnR2YWwpIGRvIHsg XAogCUlOU1RSX1RJTUVfQUNDVU1fRElGRihwZ0J1ZmZlclVzYWdlLmZsZCwgZW5kdmFsLCBzdGFy dHZhbCk7IFwKKwlpZiAocGdJbnN0clN0YWNrKSBcCisJCUlOU1RSX1RJTUVfQUNDVU1fRElGRihw Z0luc3RyU3RhY2stPmJ1ZnVzYWdlLmZsZCwgZW5kdmFsLCBzdGFydHZhbCk7IFwKIAl9IHdoaWxl ICgwKQorCiAjZGVmaW5lIElOU1RSX1dBTFVTQUdFX0lOQ1IoZmxkKSBkbyB7IFwKIAkJcGdXYWxV c2FnZS5mbGQrKzsgXAorCQlpZiAocGdJbnN0clN0YWNrKSBcCisJCQlwZ0luc3RyU3RhY2stPndh bHVzYWdlLmZsZCsrOyBcCiAJfSB3aGlsZSgwKQogI2RlZmluZSBJTlNUUl9XQUxVU0FHRV9BREQo ZmxkLHZhbCkgZG8geyBcCiAJCXBnV2FsVXNhZ2UuZmxkICs9IHZhbDsgXAorCQlpZiAocGdJbnN0 clN0YWNrKSBcCisJCQlwZ0luc3RyU3RhY2stPndhbHVzYWdlLmZsZCArPSB2YWw7IFwKIAl9IHdo aWxlKDApCiAKICNlbmRpZgkJCQkJCQkvKiBJTlNUUlVNRU5UX0ggKi8KLS0gCjIuNDcuMQoK --00000000000017b5fe063e636bfe Content-Type: application/octet-stream; name="v2-0003-Replace-direct-changes-of-pgBufferUsage-pgWalUsag.patch" Content-Disposition: attachment; filename="v2-0003-Replace-direct-changes-of-pgBufferUsage-pgWalUsag.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfcy89ry5 RnJvbSA0ZjJiYjMwNDIxM2I2MDBjN2YzNjhkMTY1NDdjYmE1MjY0MTE1N2RiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWthcyBGaXR0bCA8bHVrYXNAZml0dGwuY29tPgpEYXRlOiBT dW4sIDMxIEF1ZyAyMDI1IDE2OjM0OjQyIC0wNzAwClN1YmplY3Q6IFtQQVRDSCB2MiAzLzddIFJl cGxhY2UgZGlyZWN0IGNoYW5nZXMgb2YgcGdCdWZmZXJVc2FnZS9wZ1dhbFVzYWdlCiB3aXRoIElO U1RSXyogbWFjcm9zCgpUaGlzIGVuY2Fwc3VsYXRlcyB0aGUgb3duZXJzaGlwIG9mIHRoZXNlIGds b2JhbHMgYmV0dGVyLCBhbmQgd2lsbCBhbGxvdwphIHN1YnNlcXVlbnQgcmVmYWN0b3JpbmcuCi0t LQogc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jICAgICAgfCAgOCArKysrLS0tLQog c3JjL2JhY2tlbmQvc3RvcmFnZS9idWZmZXIvYnVmbWdyLmMgICAgfCAyNCArKysrKysrKysrKyst LS0tLS0tLS0tLS0KIHNyYy9iYWNrZW5kL3N0b3JhZ2UvYnVmZmVyL2xvY2FsYnVmLmMgIHwgIDYg KysrLS0tCiBzcmMvYmFja2VuZC9zdG9yYWdlL2ZpbGUvYnVmZmlsZS5jICAgICB8ICA4ICsrKyst LS0tCiBzcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfaW8uYyB8ICA4ICsrKystLS0t CiBzcmMvaW5jbHVkZS9leGVjdXRvci9pbnN0cnVtZW50LmggICAgICB8IDE5ICsrKysrKysrKysr KysrKysrKysKIDYgZmlsZXMgY2hhbmdlZCwgNDYgaW5zZXJ0aW9ucygrKSwgMjcgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jIGIvc3Jj L2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jCmluZGV4IDdmZmIyMTc5MTUxLi42MTUxNmYz NTY3NiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jCisrKyBi L3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYwpAQCAtMTA3OCw5ICsxMDc4LDkgQEAg WExvZ0luc2VydFJlY29yZChYTG9nUmVjRGF0YSAqcmRhdGEsCiAJLyogUmVwb3J0IFdBTCB0cmFm ZmljIHRvIHRoZSBpbnN0cnVtZW50YXRpb24uICovCiAJaWYgKGluc2VydGVkKQogCXsKLQkJcGdX YWxVc2FnZS53YWxfYnl0ZXMgKz0gcmVjaGRyLT54bF90b3RfbGVuOwotCQlwZ1dhbFVzYWdlLndh bF9yZWNvcmRzKys7Ci0JCXBnV2FsVXNhZ2Uud2FsX2ZwaSArPSBudW1fZnBpOworCQlJTlNUUl9X QUxVU0FHRV9BREQod2FsX2J5dGVzLCByZWNoZHItPnhsX3RvdF9sZW4pOworCQlJTlNUUl9XQUxV U0FHRV9JTkNSKHdhbF9yZWNvcmRzKTsKKwkJSU5TVFJfV0FMVVNBR0VfQUREKHdhbF9mcGksIG51 bV9mcGkpOwogCiAJCS8qIFJlcXVpcmVkIGZvciB0aGUgZmx1c2ggb2YgcGVuZGluZyBzdGF0cyBX QUwgZGF0YSAqLwogCQlwZ3N0YXRfcmVwb3J0X2ZpeGVkID0gdHJ1ZTsKQEAgLTIwNjAsNyArMjA2 MCw3IEBAIEFkdmFuY2VYTEluc2VydEJ1ZmZlcihYTG9nUmVjUHRyIHVwdG8sIFRpbWVMaW5lSUQg dGxpLCBib29sIG9wcG9ydHVuaXN0aWMpCiAJCQkJCVdyaXRlUnFzdC5GbHVzaCA9IDA7CiAJCQkJ CVhMb2dXcml0ZShXcml0ZVJxc3QsIHRsaSwgZmFsc2UpOwogCQkJCQlMV0xvY2tSZWxlYXNlKFdB TFdyaXRlTG9jayk7Ci0JCQkJCXBnV2FsVXNhZ2Uud2FsX2J1ZmZlcnNfZnVsbCsrOworCQkJCQlJ TlNUUl9XQUxVU0FHRV9JTkNSKHdhbF9idWZmZXJzX2Z1bGwpOwogCQkJCQlUUkFDRV9QT1NUR1JF U1FMX1dBTF9CVUZGRVJfV1JJVEVfRElSVFlfRE9ORSgpOwogCiAJCQkJCS8qCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9zdG9yYWdlL2J1ZmZlci9idWZtZ3IuYyBiL3NyYy9iYWNrZW5kL3N0b3Jh Z2UvYnVmZmVyL2J1Zm1nci5jCmluZGV4IGZlNDcwZGU2M2YyLi5kODcyZDllZmI5MyAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9idWZmZXIvYnVmbWdyLmMKKysrIGIvc3JjL2JhY2tl bmQvc3RvcmFnZS9idWZmZXIvYnVmbWdyLmMKQEAgLTcwNSw3ICs3MDUsNyBAQCBSZWFkUmVjZW50 QnVmZmVyKFJlbEZpbGVMb2NhdG9yIHJsb2NhdG9yLCBGb3JrTnVtYmVyIGZvcmtOdW0sIEJsb2Nr TnVtYmVyIGJsb2NrTgogCQl7CiAJCQlQaW5Mb2NhbEJ1ZmZlcihidWZIZHIsIHRydWUpOwogCi0J CQlwZ0J1ZmZlclVzYWdlLmxvY2FsX2Jsa3NfaGl0Kys7CisJCQlJTlNUUl9CVUZVU0FHRV9JTkNS KGxvY2FsX2Jsa3NfaGl0KTsKIAogCQkJcmV0dXJuIHRydWU7CiAJCX0KQEAgLTczNyw3ICs3Mzcs NyBAQCBSZWFkUmVjZW50QnVmZmVyKFJlbEZpbGVMb2NhdG9yIHJsb2NhdG9yLCBGb3JrTnVtYmVy IGZvcmtOdW0sIEJsb2NrTnVtYmVyIGJsb2NrTgogCQkJZWxzZQogCQkJCVBpbkJ1ZmZlcl9Mb2Nr ZWQoYnVmSGRyKTsJLyogcGluIGZvciBmaXJzdCB0aW1lICovCiAKLQkJCXBnQnVmZmVyVXNhZ2Uu c2hhcmVkX2Jsa3NfaGl0Kys7CisJCQlJTlNUUl9CVUZVU0FHRV9JTkNSKHNoYXJlZF9ibGtzX2hp dCk7CiAKIAkJCXJldHVybiB0cnVlOwogCQl9CkBAIC0xMTQ3LDE0ICsxMTQ3LDE0IEBAIFBpbkJ1 ZmZlckZvckJsb2NrKFJlbGF0aW9uIHJlbCwKIAl7CiAJCWJ1ZkhkciA9IExvY2FsQnVmZmVyQWxs b2Moc21nciwgZm9ya051bSwgYmxvY2tOdW0sIGZvdW5kUHRyKTsKIAkJaWYgKCpmb3VuZFB0cikK LQkJCXBnQnVmZmVyVXNhZ2UubG9jYWxfYmxrc19oaXQrKzsKKwkJCUlOU1RSX0JVRlVTQUdFX0lO Q1IobG9jYWxfYmxrc19oaXQpOwogCX0KIAllbHNlCiAJewogCQlidWZIZHIgPSBCdWZmZXJBbGxv YyhzbWdyLCBwZXJzaXN0ZW5jZSwgZm9ya051bSwgYmxvY2tOdW0sCiAJCQkJCQkJIHN0cmF0ZWd5 LCBmb3VuZFB0ciwgaW9fY29udGV4dCk7CiAJCWlmICgqZm91bmRQdHIpCi0JCQlwZ0J1ZmZlclVz YWdlLnNoYXJlZF9ibGtzX2hpdCsrOworCQkJSU5TVFJfQlVGVVNBR0VfSU5DUihzaGFyZWRfYmxr c19oaXQpOwogCX0KIAlpZiAocmVsKQogCXsKQEAgLTE4ODgsOSArMTg4OCw5IEBAIEFzeW5jUmVh ZEJ1ZmZlcnMoUmVhZEJ1ZmZlcnNPcGVyYXRpb24gKm9wZXJhdGlvbiwgaW50ICpuYmxvY2tzX3By b2dyZXNzKQogCQkJCQkJCQkJCSAgdHJ1ZSk7CiAKIAkJaWYgKHBlcnNpc3RlbmNlID09IFJFTFBF UlNJU1RFTkNFX1RFTVApCi0JCQlwZ0J1ZmZlclVzYWdlLmxvY2FsX2Jsa3NfaGl0ICs9IDE7CisJ CQlJTlNUUl9CVUZVU0FHRV9JTkNSKGxvY2FsX2Jsa3NfaGl0KTsKIAkJZWxzZQotCQkJcGdCdWZm ZXJVc2FnZS5zaGFyZWRfYmxrc19oaXQgKz0gMTsKKwkJCUlOU1RSX0JVRlVTQUdFX0lOQ1Ioc2hh cmVkX2Jsa3NfaGl0KTsKIAogCQlpZiAob3BlcmF0aW9uLT5yZWwpCiAJCQlwZ3N0YXRfY291bnRf YnVmZmVyX2hpdChvcGVyYXRpb24tPnJlbCk7CkBAIC0xOTU4LDkgKzE5NTgsOSBAQCBBc3luY1Jl YWRCdWZmZXJzKFJlYWRCdWZmZXJzT3BlcmF0aW9uICpvcGVyYXRpb24sIGludCAqbmJsb2Nrc19w cm9ncmVzcykKIAkJCQkJCQkJaW9fc3RhcnQsIDEsIGlvX2J1ZmZlcnNfbGVuICogQkxDS1NaKTsK IAogCQlpZiAocGVyc2lzdGVuY2UgPT0gUkVMUEVSU0lTVEVOQ0VfVEVNUCkKLQkJCXBnQnVmZmVy VXNhZ2UubG9jYWxfYmxrc19yZWFkICs9IGlvX2J1ZmZlcnNfbGVuOworCQkJSU5TVFJfQlVGVVNB R0VfQUREKGxvY2FsX2Jsa3NfcmVhZCwgaW9fYnVmZmVyc19sZW4pOwogCQllbHNlCi0JCQlwZ0J1 ZmZlclVzYWdlLnNoYXJlZF9ibGtzX3JlYWQgKz0gaW9fYnVmZmVyc19sZW47CisJCQlJTlNUUl9C VUZVU0FHRV9BREQoc2hhcmVkX2Jsa3NfcmVhZCwgaW9fYnVmZmVyc19sZW4pOwogCiAJCS8qCiAJ CSAqIFRyYWNrIHZhY3V1bSBjb3N0IHdoZW4gaXNzdWluZyBJTywgbm90IGFmdGVyIHdhaXRpbmcg Zm9yIGl0LgpAQCAtMjg0Miw3ICsyODQyLDcgQEAgRXh0ZW5kQnVmZmVyZWRSZWxTaGFyZWQoQnVm ZmVyTWFuYWdlclJlbGF0aW9uIGJtciwKIAkJVGVybWluYXRlQnVmZmVySU8oYnVmX2hkciwgZmFs c2UsIEJNX1ZBTElELCB0cnVlLCBmYWxzZSk7CiAJfQogCi0JcGdCdWZmZXJVc2FnZS5zaGFyZWRf Ymxrc193cml0dGVuICs9IGV4dGVuZF9ieTsKKwlJTlNUUl9CVUZVU0FHRV9BREQoc2hhcmVkX2Js a3Nfd3JpdHRlbiwgZXh0ZW5kX2J5KTsKIAogCSpleHRlbmRlZF9ieSA9IGV4dGVuZF9ieTsKIApA QCAtMjk2MCw3ICsyOTYwLDcgQEAgTWFya0J1ZmZlckRpcnR5KEJ1ZmZlciBidWZmZXIpCiAJICov CiAJaWYgKCEob2xkX2J1Zl9zdGF0ZSAmIEJNX0RJUlRZKSkKIAl7Ci0JCXBnQnVmZmVyVXNhZ2Uu c2hhcmVkX2Jsa3NfZGlydGllZCsrOworCQlJTlNUUl9CVUZVU0FHRV9JTkNSKHNoYXJlZF9ibGtz X2RpcnRpZWQpOwogCQlpZiAoVmFjdXVtQ29zdEFjdGl2ZSkKIAkJCVZhY3V1bUNvc3RCYWxhbmNl ICs9IFZhY3V1bUNvc3RQYWdlRGlydHk7CiAJfQpAQCAtNDM2OCw3ICs0MzY4LDcgQEAgRmx1c2hC dWZmZXIoQnVmZmVyRGVzYyAqYnVmLCBTTWdyUmVsYXRpb24gcmVsbiwgSU9PYmplY3QgaW9fb2Jq ZWN0LAogCXBnc3RhdF9jb3VudF9pb19vcF90aW1lKElPT0JKRUNUX1JFTEFUSU9OLCBpb19jb250 ZXh0LAogCQkJCQkJCUlPT1BfV1JJVEUsIGlvX3N0YXJ0LCAxLCBCTENLU1opOwogCi0JcGdCdWZm ZXJVc2FnZS5zaGFyZWRfYmxrc193cml0dGVuKys7CisJSU5TVFJfQlVGVVNBR0VfSU5DUihzaGFy ZWRfYmxrc193cml0dGVuKTsKIAogCS8qCiAJICogTWFyayB0aGUgYnVmZmVyIGFzIGNsZWFuICh1 bmxlc3MgQk1fSlVTVF9ESVJUSUVEIGhhcyBiZWNvbWUgc2V0KSBhbmQKQEAgLTU1MjQsNyArNTUy NCw3IEBAIE1hcmtCdWZmZXJEaXJ0eUhpbnQoQnVmZmVyIGJ1ZmZlciwgYm9vbCBidWZmZXJfc3Rk KQogCiAJCWlmIChkaXJ0aWVkKQogCQl7Ci0JCQlwZ0J1ZmZlclVzYWdlLnNoYXJlZF9ibGtzX2Rp cnRpZWQrKzsKKwkJCUlOU1RSX0JVRlVTQUdFX0lOQ1Ioc2hhcmVkX2Jsa3NfZGlydGllZCk7CiAJ CQlpZiAoVmFjdXVtQ29zdEFjdGl2ZSkKIAkJCQlWYWN1dW1Db3N0QmFsYW5jZSArPSBWYWN1dW1D b3N0UGFnZURpcnR5OwogCQl9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9zdG9yYWdlL2J1ZmZl ci9sb2NhbGJ1Zi5jIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9idWZmZXIvbG9jYWxidWYuYwppbmRl eCAwNGZlZjEzNDA5Yi4uNzRjOTVhM2ZjNTkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3Jh Z2UvYnVmZmVyL2xvY2FsYnVmLmMKKysrIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9idWZmZXIvbG9j YWxidWYuYwpAQCAtMjE2LDcgKzIxNiw3IEBAIEZsdXNoTG9jYWxCdWZmZXIoQnVmZmVyRGVzYyAq YnVmSGRyLCBTTWdyUmVsYXRpb24gcmVsbikKIAkvKiBNYXJrIG5vdC1kaXJ0eSAqLwogCVRlcm1p bmF0ZUxvY2FsQnVmZmVySU8oYnVmSGRyLCB0cnVlLCAwLCBmYWxzZSk7CiAKLQlwZ0J1ZmZlclVz YWdlLmxvY2FsX2Jsa3Nfd3JpdHRlbisrOworCUlOU1RSX0JVRlVTQUdFX0lOQ1IobG9jYWxfYmxr c193cml0dGVuKTsKIH0KIAogc3RhdGljIEJ1ZmZlcgpAQCAtNDc2LDcgKzQ3Niw3IEBAIEV4dGVu ZEJ1ZmZlcmVkUmVsTG9jYWwoQnVmZmVyTWFuYWdlclJlbGF0aW9uIGJtciwKIAogCSpleHRlbmRl ZF9ieSA9IGV4dGVuZF9ieTsKIAotCXBnQnVmZmVyVXNhZ2UubG9jYWxfYmxrc193cml0dGVuICs9 IGV4dGVuZF9ieTsKKwlJTlNUUl9CVUZVU0FHRV9BREQobG9jYWxfYmxrc193cml0dGVuLCBleHRl bmRfYnkpOwogCiAJcmV0dXJuIGZpcnN0X2Jsb2NrOwogfQpAQCAtNTA3LDcgKzUwNyw3IEBAIE1h cmtMb2NhbEJ1ZmZlckRpcnR5KEJ1ZmZlciBidWZmZXIpCiAJYnVmX3N0YXRlID0gcGdfYXRvbWlj X3JlYWRfdTMyKCZidWZIZHItPnN0YXRlKTsKIAogCWlmICghKGJ1Zl9zdGF0ZSAmIEJNX0RJUlRZ KSkKLQkJcGdCdWZmZXJVc2FnZS5sb2NhbF9ibGtzX2RpcnRpZWQrKzsKKwkJSU5TVFJfQlVGVVNB R0VfSU5DUihsb2NhbF9ibGtzX2RpcnRpZWQpOwogCiAJYnVmX3N0YXRlIHw9IEJNX0RJUlRZOwog CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9zdG9yYWdlL2ZpbGUvYnVmZmlsZS5jIGIvc3JjL2Jh Y2tlbmQvc3RvcmFnZS9maWxlL2J1ZmZpbGUuYwppbmRleCAzNjZkNzBkMzhhMS4uOWQzOWRmOTk4 Y2IgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvZmlsZS9idWZmaWxlLmMKKysrIGIv c3JjL2JhY2tlbmQvc3RvcmFnZS9maWxlL2J1ZmZpbGUuYwpAQCAtNDc0LDEzICs0NzQsMTMgQEAg QnVmRmlsZUxvYWRCdWZmZXIoQnVmRmlsZSAqZmlsZSkKIAlpZiAodHJhY2tfaW9fdGltaW5nKQog CXsKIAkJSU5TVFJfVElNRV9TRVRfQ1VSUkVOVChpb190aW1lKTsKLQkJSU5TVFJfVElNRV9BQ0NV TV9ESUZGKHBnQnVmZmVyVXNhZ2UudGVtcF9ibGtfcmVhZF90aW1lLCBpb190aW1lLCBpb19zdGFy dCk7CisJCUlOU1RSX0JVRlVTQUdFX1RJTUVfQUNDVU1fRElGRih0ZW1wX2Jsa19yZWFkX3RpbWUs IGlvX3RpbWUsIGlvX3N0YXJ0KTsKIAl9CiAKIAkvKiB3ZSBjaG9vc2Ugbm90IHRvIGFkdmFuY2Ug Y3VyT2Zmc2V0IGhlcmUgKi8KIAogCWlmIChmaWxlLT5uYnl0ZXMgPiAwKQotCQlwZ0J1ZmZlclVz YWdlLnRlbXBfYmxrc19yZWFkKys7CisJCUlOU1RSX0JVRlVTQUdFX0lOQ1IodGVtcF9ibGtzX3Jl YWQpOwogfQogCiAvKgpAQCAtNTQ4LDEzICs1NDgsMTMgQEAgQnVmRmlsZUR1bXBCdWZmZXIoQnVm RmlsZSAqZmlsZSkKIAkJaWYgKHRyYWNrX2lvX3RpbWluZykKIAkJewogCQkJSU5TVFJfVElNRV9T RVRfQ1VSUkVOVChpb190aW1lKTsKLQkJCUlOU1RSX1RJTUVfQUNDVU1fRElGRihwZ0J1ZmZlclVz YWdlLnRlbXBfYmxrX3dyaXRlX3RpbWUsIGlvX3RpbWUsIGlvX3N0YXJ0KTsKKwkJCUlOU1RSX0JV RlVTQUdFX1RJTUVfQUNDVU1fRElGRih0ZW1wX2Jsa193cml0ZV90aW1lLCBpb190aW1lLCBpb19z dGFydCk7CiAJCX0KIAogCQlmaWxlLT5jdXJPZmZzZXQgKz0gYnl0ZXN0b3dyaXRlOwogCQl3cG9z ICs9IGJ5dGVzdG93cml0ZTsKIAotCQlwZ0J1ZmZlclVzYWdlLnRlbXBfYmxrc193cml0dGVuKys7 CisJCUlOU1RSX0JVRlVTQUdFX0lOQ1IodGVtcF9ibGtzX3dyaXR0ZW4pOwogCX0KIAlmaWxlLT5k aXJ0eSA9IGZhbHNlOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9w Z3N0YXRfaW8uYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9pby5jCmluZGV4 IDEzYWU1N2VkNjQ5Li40ZjYyNzRlYjU3MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMv YWN0aXZpdHkvcGdzdGF0X2lvLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdz dGF0X2lvLmMKQEAgLTEzNSwxNyArMTM1LDE3IEBAIHBnc3RhdF9jb3VudF9pb19vcF90aW1lKElP T2JqZWN0IGlvX29iamVjdCwgSU9Db250ZXh0IGlvX2NvbnRleHQsIElPT3AgaW9fb3AsCiAJCQl7 CiAJCQkJcGdzdGF0X2NvdW50X2J1ZmZlcl93cml0ZV90aW1lKElOU1RSX1RJTUVfR0VUX01JQ1JP U0VDKGlvX3RpbWUpKTsKIAkJCQlpZiAoaW9fb2JqZWN0ID09IElPT0JKRUNUX1JFTEFUSU9OKQot CQkJCQlJTlNUUl9USU1FX0FERChwZ0J1ZmZlclVzYWdlLnNoYXJlZF9ibGtfd3JpdGVfdGltZSwg aW9fdGltZSk7CisJCQkJCUlOU1RSX0JVRlVTQUdFX1RJTUVfQUREKHNoYXJlZF9ibGtfd3JpdGVf dGltZSwgaW9fdGltZSk7CiAJCQkJZWxzZSBpZiAoaW9fb2JqZWN0ID09IElPT0JKRUNUX1RFTVBf UkVMQVRJT04pCi0JCQkJCUlOU1RSX1RJTUVfQUREKHBnQnVmZmVyVXNhZ2UubG9jYWxfYmxrX3dy aXRlX3RpbWUsIGlvX3RpbWUpOworCQkJCQlJTlNUUl9CVUZVU0FHRV9USU1FX0FERChsb2NhbF9i bGtfd3JpdGVfdGltZSwgaW9fdGltZSk7CiAJCQl9CiAJCQllbHNlIGlmIChpb19vcCA9PSBJT09Q X1JFQUQpCiAJCQl7CiAJCQkJcGdzdGF0X2NvdW50X2J1ZmZlcl9yZWFkX3RpbWUoSU5TVFJfVElN RV9HRVRfTUlDUk9TRUMoaW9fdGltZSkpOwogCQkJCWlmIChpb19vYmplY3QgPT0gSU9PQkpFQ1Rf UkVMQVRJT04pCi0JCQkJCUlOU1RSX1RJTUVfQUREKHBnQnVmZmVyVXNhZ2Uuc2hhcmVkX2Jsa19y ZWFkX3RpbWUsIGlvX3RpbWUpOworCQkJCQlJTlNUUl9CVUZVU0FHRV9USU1FX0FERChzaGFyZWRf YmxrX3JlYWRfdGltZSwgaW9fdGltZSk7CiAJCQkJZWxzZSBpZiAoaW9fb2JqZWN0ID09IElPT0JK RUNUX1RFTVBfUkVMQVRJT04pCi0JCQkJCUlOU1RSX1RJTUVfQUREKHBnQnVmZmVyVXNhZ2UubG9j YWxfYmxrX3JlYWRfdGltZSwgaW9fdGltZSk7CisJCQkJCUlOU1RSX0JVRlVTQUdFX1RJTUVfQURE KGxvY2FsX2Jsa19yZWFkX3RpbWUsIGlvX3RpbWUpOwogCQkJfQogCQl9CiAKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2luc3RydW1lbnQuaCBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9y L2luc3RydW1lbnQuaAppbmRleCAxYWU1MzNmNjcwNC4uNzhkMzY1Mzk5N2IgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2luc3RydW1lbnQuaAorKysgYi9zcmMvaW5jbHVkZS9leGVj dXRvci9pbnN0cnVtZW50LmgKQEAgLTE0OSw0ICsxNDksMjMgQEAgZXh0ZXJuIHZvaWQgQnVmZmVy VXNhZ2VBY2N1bURpZmYoQnVmZmVyVXNhZ2UgKmRzdCwKIGV4dGVybiB2b2lkIFdhbFVzYWdlQWNj dW1EaWZmKFdhbFVzYWdlICpkc3QsIGNvbnN0IFdhbFVzYWdlICphZGQsCiAJCQkJCQkJICBjb25z dCBXYWxVc2FnZSAqc3ViKTsKIAorI2RlZmluZSBJTlNUUl9CVUZVU0FHRV9JTkNSKGZsZCkgZG8g eyBcCisJCXBnQnVmZmVyVXNhZ2UuZmxkKys7IFwKKwl9IHdoaWxlKDApCisjZGVmaW5lIElOU1RS X0JVRlVTQUdFX0FERChmbGQsdmFsKSBkbyB7IFwKKwkJcGdCdWZmZXJVc2FnZS5mbGQgKz0gdmFs OyBcCisJfSB3aGlsZSgwKQorI2RlZmluZSBJTlNUUl9CVUZVU0FHRV9USU1FX0FERChmbGQsdmFs KSBkbyB7IFwKKwlJTlNUUl9USU1FX0FERChwZ0J1ZmZlclVzYWdlLmZsZCwgdmFsKTsgXAorCX0g d2hpbGUgKDApCisjZGVmaW5lIElOU1RSX0JVRlVTQUdFX1RJTUVfQUNDVU1fRElGRihmbGQsZW5k dmFsLHN0YXJ0dmFsKSBkbyB7IFwKKwlJTlNUUl9USU1FX0FDQ1VNX0RJRkYocGdCdWZmZXJVc2Fn ZS5mbGQsIGVuZHZhbCwgc3RhcnR2YWwpOyBcCisJfSB3aGlsZSAoMCkKKyNkZWZpbmUgSU5TVFJf V0FMVVNBR0VfSU5DUihmbGQpIGRvIHsgXAorCQlwZ1dhbFVzYWdlLmZsZCsrOyBcCisJfSB3aGls ZSgwKQorI2RlZmluZSBJTlNUUl9XQUxVU0FHRV9BREQoZmxkLHZhbCkgZG8geyBcCisJCXBnV2Fs VXNhZ2UuZmxkICs9IHZhbDsgXAorCX0gd2hpbGUoMCkKKwogI2VuZGlmCQkJCQkJCS8qIElOU1RS VU1FTlRfSCAqLwotLSAKMi40Ny4xCgo= --00000000000017b5fe063e636bfe Content-Type: application/octet-stream; name="v2-0002-Separate-node-instrumentation-from-other-use-of-I.patch" Content-Disposition: attachment; filename="v2-0002-Separate-node-instrumentation-from-other-use-of-I.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfcy89rz6 RnJvbSBhNjg5MzAzNjE2M2RiNjc4MzljMGNmMmE0MGQwMDMyODU4MDMyNDI0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWthcyBGaXR0bCA8bHVrYXNAZml0dGwuY29tPgpEYXRlOiBT YXQsIDEgTWFyIDIwMjUgMTk6MzE6MzAgLTA4MDAKU3ViamVjdDogW1BBVENIIHYyIDIvN10gU2Vw YXJhdGUgbm9kZSBpbnN0cnVtZW50YXRpb24gZnJvbSBvdGhlciB1c2Ugb2YKIEluc3RydW1lbnRh dGlvbiBzdHJ1Y3QKClByZXZpb3VzbHkgZGlmZmVyZW50IHBsYWNlcyAoZS5nLiBxdWVyeSAidG90 YWwgdGltZSIpIHdlcmUgcmVwdXJwb3NpbmcKdGhlIEluc3RydW1lbnRhdGlvbiBzdHJ1Y3QgaW5p dGlhbGx5IGludHJvZHVjZWQgZm9yIGNhcHR1cmluZyBwZXItbm9kZQpzdGF0aXN0aWNzIGR1cmlu ZyBleGVjdXRpb24uIFRoaXMgZHVhbCB1c2Ugb2YgdGhlIHN0cnVjdCBpcyBjb25mdXNpbmcsCmUu Zy4gYnkgY2x1dHRlcmluZyBjYWxscyBvZiBJbnN0clN0YXJ0Tm9kZS9JbnN0clN0b3BOb2RlIGlu IHVucmVsYXRlZApjb2RlIHBhdGhzLCBhbmQgcHJldmVudHMgZnV0dXJlIHJlZmFjdG9yaW5ncy4K Ckluc3RlYWQsIHNpbXBsaWZ5IHRoZSBJbnN0cnVtZW50YXRpb24gc3RydWN0IHRvIG9ubHkgdHJh Y2sgdGltZSwKV0FML2J1ZmZlciB1c2FnZSwgYW5kIHR1cGxlIGNvdW50cy4gU2ltaWxhcmx5LCBk cm9wIHRoZSB1c2Ugb2YgSW5zdHJFbmRMb29wCm91dHNpZGUgb2YgcGVyLW5vZGUgaW5zdHJ1bWVu dGF0aW9uLiBJbnRyb2R1Y2UgdGhlIE5vZGVJbnN0cnVtZW50YXRpb24Kc3RydWN0IHRvIGNhcnJ5 IGZvcndhcmQgdGhlIHBlci1ub2RlIGluc3RydW1lbnRhdGlvbiBpbmZvcm1hdGlvbi4KLS0tCiBj b250cmliL2F1dG9fZXhwbGFpbi9hdXRvX2V4cGxhaW4uYyAgICAgICAgICAgfCAgOCArLQogLi4u L3BnX3N0YXRfc3RhdGVtZW50cy9wZ19zdGF0X3N0YXRlbWVudHMuYyAgIHwgIDggKy0KIGNvbnRy aWIvcG9zdGdyZXNfZmR3L3Bvc3RncmVzX2Zkdy5jICAgICAgICAgICB8ICAyICstCiBzcmMvYmFj a2VuZC9jb21tYW5kcy9leHBsYWluLmMgICAgICAgICAgICAgICAgfCAxMSArLS0KIHNyYy9iYWNr ZW5kL2NvbW1hbmRzL3RyaWdnZXIuYyAgICAgICAgICAgICAgICB8ICA4ICstCiBzcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjTWFpbi5jICAgICAgICAgICAgICAgfCAxMCArLS0KIHNyYy9iYWNrZW5k L2V4ZWN1dG9yL2V4ZWNQYXJhbGxlbC5jICAgICAgICAgICB8IDIyICsrKy0tCiBzcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjUHJvY25vZGUuYyAgICAgICAgICAgfCAgNCArLQogc3JjL2JhY2tlbmQv ZXhlY3V0b3IvaW5zdHJ1bWVudC5jICAgICAgICAgICAgIHwgODYgKysrKysrKysrKysrKysrKyst LQogc3JjL2luY2x1ZGUvZXhlY3V0b3IvaW5zdHJ1bWVudC5oICAgICAgICAgICAgIHwgNTEgKysr KysrKystLS0KIHNyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oICAgICAgICAgICAgICAgICB8 ICAzICstCiAxMSBmaWxlcyBjaGFuZ2VkLCAxNTEgaW5zZXJ0aW9ucygrKSwgNjIgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvY29udHJpYi9hdXRvX2V4cGxhaW4vYXV0b19leHBsYWluLmMgYi9j b250cmliL2F1dG9fZXhwbGFpbi9hdXRvX2V4cGxhaW4uYwppbmRleCBjMTBmMmZjMGYyNS4uZWUw YzNiNGM5MWIgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvYXV0b19leHBsYWluL2F1dG9fZXhwbGFpbi5j CisrKyBiL2NvbnRyaWIvYXV0b19leHBsYWluL2F1dG9fZXhwbGFpbi5jCkBAIC0zMTUsNyArMzE1 LDcgQEAgZXhwbGFpbl9FeGVjdXRvclN0YXJ0KFF1ZXJ5RGVzYyAqcXVlcnlEZXNjLCBpbnQgZWZs YWdzKQogCQkJTWVtb3J5Q29udGV4dCBvbGRjeHQ7CiAKIAkJCW9sZGN4dCA9IE1lbW9yeUNvbnRl eHRTd2l0Y2hUbyhxdWVyeURlc2MtPmVzdGF0ZS0+ZXNfcXVlcnlfY3h0KTsKLQkJCXF1ZXJ5RGVz Yy0+dG90YWx0aW1lID0gSW5zdHJBbGxvYygxLCBJTlNUUlVNRU5UX0FMTCwgZmFsc2UpOworCQkJ cXVlcnlEZXNjLT50b3RhbHRpbWUgPSBJbnN0ckFsbG9jKDEsIElOU1RSVU1FTlRfQUxMKTsKIAkJ CU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjeHQpOwogCQl9CiAJfQpAQCAtMzgxLDEyICszODEs NiBAQCBleHBsYWluX0V4ZWN1dG9yRW5kKFF1ZXJ5RGVzYyAqcXVlcnlEZXNjKQogCQkgKi8KIAkJ b2xkY3h0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKHF1ZXJ5RGVzYy0+ZXN0YXRlLT5lc19xdWVy eV9jeHQpOwogCi0JCS8qCi0JCSAqIE1ha2Ugc3VyZSBzdGF0cyBhY2N1bXVsYXRpb24gaXMgZG9u ZS4gIChOb3RlOiBpdCdzIG9rYXkgaWYgc2V2ZXJhbAotCQkgKiBsZXZlbHMgb2YgaG9vayBhbGwg ZG8gdGhpcy4pCi0JCSAqLwotCQlJbnN0ckVuZExvb3AocXVlcnlEZXNjLT50b3RhbHRpbWUpOwot CiAJCS8qIExvZyBwbGFuIGlmIGR1cmF0aW9uIGlzIGV4Y2VlZGVkLiAqLwogCQltc2VjID0gSU5T VFJfVElNRV9HRVRfTUlMTElTRUMocXVlcnlEZXNjLT50b3RhbHRpbWUtPnRvdGFsKTsKIAkJaWYg KG1zZWMgPj0gYXV0b19leHBsYWluX2xvZ19taW5fZHVyYXRpb24pCmRpZmYgLS1naXQgYS9jb250 cmliL3BnX3N0YXRfc3RhdGVtZW50cy9wZ19zdGF0X3N0YXRlbWVudHMuYyBiL2NvbnRyaWIvcGdf c3RhdF9zdGF0ZW1lbnRzL3BnX3N0YXRfc3RhdGVtZW50cy5jCmluZGV4IGI5Yzk3MWRlMWU1Li40 ZWMzM2ZiZjQ3MCAxMDA2NDQKLS0tIGEvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvcGdfc3Rh dF9zdGF0ZW1lbnRzLmMKKysrIGIvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvcGdfc3RhdF9z dGF0ZW1lbnRzLmMKQEAgLTEwMjEsNyArMTAyMSw3IEBAIHBnc3NfRXhlY3V0b3JTdGFydChRdWVy eURlc2MgKnF1ZXJ5RGVzYywgaW50IGVmbGFncykKIAkJCU1lbW9yeUNvbnRleHQgb2xkY3h0Owog CiAJCQlvbGRjeHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8ocXVlcnlEZXNjLT5lc3RhdGUtPmVz X3F1ZXJ5X2N4dCk7Ci0JCQlxdWVyeURlc2MtPnRvdGFsdGltZSA9IEluc3RyQWxsb2MoMSwgSU5T VFJVTUVOVF9BTEwsIGZhbHNlKTsKKwkJCXF1ZXJ5RGVzYy0+dG90YWx0aW1lID0gSW5zdHJBbGxv YygxLCBJTlNUUlVNRU5UX0FMTCk7CiAJCQlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY3h0KTsK IAkJfQogCX0KQEAgLTEwODAsMTIgKzEwODAsNiBAQCBwZ3NzX0V4ZWN1dG9yRW5kKFF1ZXJ5RGVz YyAqcXVlcnlEZXNjKQogCWlmIChxdWVyeUlkICE9IElOVDY0Q09OU1QoMCkgJiYgcXVlcnlEZXNj LT50b3RhbHRpbWUgJiYKIAkJcGdzc19lbmFibGVkKG5lc3RpbmdfbGV2ZWwpKQogCXsKLQkJLyoK LQkJICogTWFrZSBzdXJlIHN0YXRzIGFjY3VtdWxhdGlvbiBpcyBkb25lLiAgKE5vdGU6IGl0J3Mg b2theSBpZiBzZXZlcmFsCi0JCSAqIGxldmVscyBvZiBob29rIGFsbCBkbyB0aGlzLikKLQkJICov Ci0JCUluc3RyRW5kTG9vcChxdWVyeURlc2MtPnRvdGFsdGltZSk7Ci0KIAkJcGdzc19zdG9yZShx dWVyeURlc2MtPnNvdXJjZVRleHQsCiAJCQkJICAgcXVlcnlJZCwKIAkJCQkgICBxdWVyeURlc2Mt PnBsYW5uZWRzdG10LT5zdG10X2xvY2F0aW9uLApkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3N0Z3Jl c19mZHcvcG9zdGdyZXNfZmR3LmMgYi9jb250cmliL3Bvc3RncmVzX2Zkdy9wb3N0Z3Jlc19mZHcu YwppbmRleCA0NTZiMjY3ZjcwYi4uNzYxOWFjNDg2YzAgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcG9z dGdyZXNfZmR3L3Bvc3RncmVzX2Zkdy5jCisrKyBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L3Bvc3Rn cmVzX2Zkdy5jCkBAIC0yNzc4LDcgKzI3NzgsNyBAQCBwb3N0Z3Jlc0l0ZXJhdGVEaXJlY3RNb2Rp ZnkoRm9yZWlnblNjYW5TdGF0ZSAqbm9kZSkKIAlpZiAoIXJlc3VsdFJlbEluZm8tPnJpX3Byb2pl Y3RSZXR1cm5pbmcpCiAJewogCQlUdXBsZVRhYmxlU2xvdCAqc2xvdCA9IG5vZGUtPnNzLnNzX1Nj YW5UdXBsZVNsb3Q7Ci0JCUluc3RydW1lbnRhdGlvbiAqaW5zdHIgPSBub2RlLT5zcy5wcy5pbnN0 cnVtZW50OworCQlOb2RlSW5zdHJ1bWVudGF0aW9uICppbnN0ciA9IG5vZGUtPnNzLnBzLmluc3Ry dW1lbnQ7CiAKIAkJQXNzZXJ0KCFkbXN0YXRlLT5oYXNfcmV0dXJuaW5nKTsKIApkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMv ZXhwbGFpbi5jCmluZGV4IDk1YjdhOWQyMjdmLi5kMDA1ZmNkYmM5OCAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4 cGxhaW4uYwpAQCAtMTEwMiw5ICsxMTAyLDYgQEAgcmVwb3J0X3RyaWdnZXJzKFJlc3VsdFJlbElu Zm8gKnJJbmZvLCBib29sIHNob3dfcmVsbmFtZSwgRXhwbGFpblN0YXRlICplcykKIAkJY2hhcgkg ICAqcmVsbmFtZTsKIAkJY2hhcgkgICAqY29ubmFtZSA9IE5VTEw7CiAKLQkJLyogTXVzdCBjbGVh biB1cCBpbnN0cnVtZW50YXRpb24gc3RhdGUgKi8KLQkJSW5zdHJFbmRMb29wKGluc3RyKTsKLQog CQkvKgogCQkgKiBXZSBpZ25vcmUgdHJpZ2dlcnMgdGhhdCB3ZXJlIG5ldmVyIGludm9rZWQ7IHRo ZXkgbGlrZWx5IGFyZW4ndAogCQkgKiByZWxldmFudCB0byB0aGUgY3VycmVudCBxdWVyeSB0eXBl LgpAQCAtMTEzNSw3ICsxMTMyLDcgQEAgcmVwb3J0X3RyaWdnZXJzKFJlc3VsdFJlbEluZm8gKnJJ bmZvLCBib29sIHNob3dfcmVsbmFtZSwgRXhwbGFpblN0YXRlICplcykKIAkJCQlhcHBlbmRTdHJp bmdJbmZvKGVzLT5zdHIsICIgb24gJXMiLCByZWxuYW1lKTsKIAkJCWlmIChlcy0+dGltaW5nKQog CQkJCWFwcGVuZFN0cmluZ0luZm8oZXMtPnN0ciwgIjogdGltZT0lLjNmIGNhbGxzPSUuMGZcbiIs Ci0JCQkJCQkJCSAxMDAwLjAgKiBpbnN0ci0+dG90YWwsIGluc3RyLT5udHVwbGVzKTsKKwkJCQkJ CQkJIDEwMDAuMCAqIElOU1RSX1RJTUVfR0VUX0RPVUJMRShpbnN0ci0+dG90YWwpLCBpbnN0ci0+ bnR1cGxlcyk7CiAJCQllbHNlCiAJCQkJYXBwZW5kU3RyaW5nSW5mbyhlcy0+c3RyLCAiOiBjYWxs cz0lLjBmXG4iLCBpbnN0ci0+bnR1cGxlcyk7CiAJCX0KQEAgLTExNDYsNyArMTE0Myw3IEBAIHJl cG9ydF90cmlnZ2VycyhSZXN1bHRSZWxJbmZvICpySW5mbywgYm9vbCBzaG93X3JlbG5hbWUsIEV4 cGxhaW5TdGF0ZSAqZXMpCiAJCQkJRXhwbGFpblByb3BlcnR5VGV4dCgiQ29uc3RyYWludCBOYW1l IiwgY29ubmFtZSwgZXMpOwogCQkJRXhwbGFpblByb3BlcnR5VGV4dCgiUmVsYXRpb24iLCByZWxu YW1lLCBlcyk7CiAJCQlpZiAoZXMtPnRpbWluZykKLQkJCQlFeHBsYWluUHJvcGVydHlGbG9hdCgi VGltZSIsICJtcyIsIDEwMDAuMCAqIGluc3RyLT50b3RhbCwgMywKKwkJCQlFeHBsYWluUHJvcGVy dHlGbG9hdCgiVGltZSIsICJtcyIsIDEwMDAuMCAqIElOU1RSX1RJTUVfR0VUX0RPVUJMRShpbnN0 ci0+dG90YWwpLCAzLAogCQkJCQkJCQkJIGVzKTsKIAkJCUV4cGxhaW5Qcm9wZXJ0eUZsb2F0KCJD YWxscyIsIE5VTEwsIGluc3RyLT5udHVwbGVzLCAwLCBlcyk7CiAJCX0KQEAgLTE4ODgsNyArMTg4 NSw3IEBAIEV4cGxhaW5Ob2RlKFBsYW5TdGF0ZSAqcGxhbnN0YXRlLCBMaXN0ICphbmNlc3RvcnMs CiAKIAkJZm9yIChpbnQgbiA9IDA7IG4gPCB3LT5udW1fd29ya2VyczsgbisrKQogCQl7Ci0JCQlJ bnN0cnVtZW50YXRpb24gKmluc3RydW1lbnQgPSAmdy0+aW5zdHJ1bWVudFtuXTsKKwkJCU5vZGVJ bnN0cnVtZW50YXRpb24gKmluc3RydW1lbnQgPSAmdy0+aW5zdHJ1bWVudFtuXTsKIAkJCWRvdWJs ZQkJbmxvb3BzID0gaW5zdHJ1bWVudC0+bmxvb3BzOwogCQkJZG91YmxlCQlzdGFydHVwX21zOwog CQkJZG91YmxlCQl0b3RhbF9tczsKQEAgLTIyOTQsNyArMjI5MSw3IEBAIEV4cGxhaW5Ob2RlKFBs YW5TdGF0ZSAqcGxhbnN0YXRlLCBMaXN0ICphbmNlc3RvcnMsCiAKIAkJZm9yIChpbnQgbiA9IDA7 IG4gPCB3LT5udW1fd29ya2VyczsgbisrKQogCQl7Ci0JCQlJbnN0cnVtZW50YXRpb24gKmluc3Ry dW1lbnQgPSAmdy0+aW5zdHJ1bWVudFtuXTsKKwkJCU5vZGVJbnN0cnVtZW50YXRpb24gKmluc3Ry dW1lbnQgPSAmdy0+aW5zdHJ1bWVudFtuXTsKIAkJCWRvdWJsZQkJbmxvb3BzID0gaW5zdHJ1bWVu dC0+bmxvb3BzOwogCiAJCQlpZiAobmxvb3BzIDw9IDApCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy90cmlnZ2VyLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90cmlnZ2VyLmMKaW5k ZXggNTc5YWM4ZDc2YWUuLjliNTNkZDk5ZTk5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21t YW5kcy90cmlnZ2VyLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHJpZ2dlci5jCkBAIC0y MzQ0LDcgKzIzNDQsNyBAQCBFeGVjQ2FsbFRyaWdnZXJGdW5jKFRyaWdnZXJEYXRhICp0cmlnZGF0 YSwKIAkgKiBJZiBkb2luZyBFWFBMQUlOIEFOQUxZWkUsIHN0YXJ0IGNoYXJnaW5nIHRpbWUgdG8g dGhpcyB0cmlnZ2VyLgogCSAqLwogCWlmIChpbnN0cikKLQkJSW5zdHJTdGFydE5vZGUoaW5zdHIg KyB0Z2luZHgpOworCQlJbnN0clN0YXJ0KGluc3RyICsgdGdpbmR4KTsKIAogCS8qCiAJICogRG8g dGhlIGZ1bmN0aW9uIGV2YWx1YXRpb24gaW4gdGhlIHBlci10dXBsZSBtZW1vcnkgY29udGV4dCwg c28gdGhhdApAQCAtMjM5Miw3ICsyMzkyLDcgQEAgRXhlY0NhbGxUcmlnZ2VyRnVuYyhUcmlnZ2Vy RGF0YSAqdHJpZ2RhdGEsCiAJICogb25lICJ0dXBsZSByZXR1cm5lZCIgKHJlYWxseSB0aGUgbnVt YmVyIG9mIGZpcmluZ3MpLgogCSAqLwogCWlmIChpbnN0cikKLQkJSW5zdHJTdG9wTm9kZShpbnN0 ciArIHRnaW5keCwgMSk7CisJCUluc3RyU3RvcChpbnN0ciArIHRnaW5keCwgMSk7CiAKIAlyZXR1 cm4gKEhlYXBUdXBsZSkgRGF0dW1HZXRQb2ludGVyKHJlc3VsdCk7CiB9CkBAIC00MzgxLDcgKzQz ODEsNyBAQCBBZnRlclRyaWdnZXJFeGVjdXRlKEVTdGF0ZSAqZXN0YXRlLAogCSAqIHRvIGluY2x1 ZGUgdGltZSBzcGVudCByZS1mZXRjaGluZyB0dXBsZXMgaW4gdGhlIHRyaWdnZXIgY29zdC4KIAkg Ki8KIAlpZiAoaW5zdHIpCi0JCUluc3RyU3RhcnROb2RlKGluc3RyICsgdGdpbmR4KTsKKwkJSW5z dHJTdGFydChpbnN0ciArIHRnaW5keCk7CiAKIAkvKgogCSAqIEZldGNoIHRoZSByZXF1aXJlZCB0 dXBsZShzKS4KQEAgLTQ2MDcsNyArNDYwNyw3IEBAIEFmdGVyVHJpZ2dlckV4ZWN1dGUoRVN0YXRl ICplc3RhdGUsCiAJICogb25lICJ0dXBsZSByZXR1cm5lZCIgKHJlYWxseSB0aGUgbnVtYmVyIG9m IGZpcmluZ3MpLgogCSAqLwogCWlmIChpbnN0cikKLQkJSW5zdHJTdG9wTm9kZShpbnN0ciArIHRn aW5keCwgMSk7CisJCUluc3RyU3RvcChpbnN0ciArIHRnaW5keCwgMSk7CiB9CiAKIApkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL2V4ZWNNYWluLmMKaW5kZXggZmYxMmUyZTEzNjQuLmU0NTliM2FhNzk3IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL2V4ZWNNYWluLmMKQEAgLTMzMSw3ICszMzEsNyBAQCBzdGFuZGFyZF9FeGVjdXRvclJ1bihR dWVyeURlc2MgKnF1ZXJ5RGVzYywKIAogCS8qIEFsbG93IGluc3RydW1lbnRhdGlvbiBvZiBFeGVj dXRvciBvdmVyYWxsIHJ1bnRpbWUgKi8KIAlpZiAocXVlcnlEZXNjLT50b3RhbHRpbWUpCi0JCUlu c3RyU3RhcnROb2RlKHF1ZXJ5RGVzYy0+dG90YWx0aW1lKTsKKwkJSW5zdHJTdGFydChxdWVyeURl c2MtPnRvdGFsdGltZSk7CiAKIAkvKgogCSAqIGV4dHJhY3QgaW5mb3JtYXRpb24gZnJvbSB0aGUg cXVlcnkgZGVzY3JpcHRvciBhbmQgdGhlIHF1ZXJ5IGZlYXR1cmUuCkBAIC0zODMsNyArMzgzLDcg QEAgc3RhbmRhcmRfRXhlY3V0b3JSdW4oUXVlcnlEZXNjICpxdWVyeURlc2MsCiAJCWRlc3QtPnJT aHV0ZG93bihkZXN0KTsKIAogCWlmIChxdWVyeURlc2MtPnRvdGFsdGltZSkKLQkJSW5zdHJTdG9w Tm9kZShxdWVyeURlc2MtPnRvdGFsdGltZSwgZXN0YXRlLT5lc19wcm9jZXNzZWQpOworCQlJbnN0 clN0b3AocXVlcnlEZXNjLT50b3RhbHRpbWUsIGVzdGF0ZS0+ZXNfcHJvY2Vzc2VkKTsKIAogCU1l bW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjb250ZXh0KTsKIH0KQEAgLTQzMyw3ICs0MzMsNyBAQCBz dGFuZGFyZF9FeGVjdXRvckZpbmlzaChRdWVyeURlc2MgKnF1ZXJ5RGVzYykKIAogCS8qIEFsbG93 IGluc3RydW1lbnRhdGlvbiBvZiBFeGVjdXRvciBvdmVyYWxsIHJ1bnRpbWUgKi8KIAlpZiAocXVl cnlEZXNjLT50b3RhbHRpbWUpCi0JCUluc3RyU3RhcnROb2RlKHF1ZXJ5RGVzYy0+dG90YWx0aW1l KTsKKwkJSW5zdHJTdGFydChxdWVyeURlc2MtPnRvdGFsdGltZSk7CiAKIAkvKiBSdW4gTW9kaWZ5 VGFibGUgbm9kZXMgdG8gY29tcGxldGlvbiAqLwogCUV4ZWNQb3N0cHJvY2Vzc1BsYW4oZXN0YXRl KTsKQEAgLTQ0Myw3ICs0NDMsNyBAQCBzdGFuZGFyZF9FeGVjdXRvckZpbmlzaChRdWVyeURlc2Mg KnF1ZXJ5RGVzYykKIAkJQWZ0ZXJUcmlnZ2VyRW5kUXVlcnkoZXN0YXRlKTsKIAogCWlmIChxdWVy eURlc2MtPnRvdGFsdGltZSkKLQkJSW5zdHJTdG9wTm9kZShxdWVyeURlc2MtPnRvdGFsdGltZSwg MCk7CisJCUluc3RyU3RvcChxdWVyeURlc2MtPnRvdGFsdGltZSwgMCk7CiAKIAlNZW1vcnlDb250 ZXh0U3dpdGNoVG8ob2xkY29udGV4dCk7CiAKQEAgLTEyNjYsNyArMTI2Niw3IEBAIEluaXRSZXN1 bHRSZWxJbmZvKFJlc3VsdFJlbEluZm8gKnJlc3VsdFJlbEluZm8sCiAJCXJlc3VsdFJlbEluZm8t PnJpX1RyaWdXaGVuRXhwcnMgPSAoRXhwclN0YXRlICoqKQogCQkJcGFsbG9jMChuICogc2l6ZW9m KEV4cHJTdGF0ZSAqKSk7CiAJCWlmIChpbnN0cnVtZW50X29wdGlvbnMpCi0JCQlyZXN1bHRSZWxJ bmZvLT5yaV9UcmlnSW5zdHJ1bWVudCA9IEluc3RyQWxsb2MobiwgaW5zdHJ1bWVudF9vcHRpb25z LCBmYWxzZSk7CisJCQlyZXN1bHRSZWxJbmZvLT5yaV9UcmlnSW5zdHJ1bWVudCA9IEluc3RyQWxs b2MobiwgaW5zdHJ1bWVudF9vcHRpb25zKTsKIAl9CiAJZWxzZQogCXsKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJhbGxlbC5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv ZXhlY1BhcmFsbGVsLmMKaW5kZXggZjA5OGE1NTU3Y2YuLmU4NzgxMGQyOTJlIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUGFyYWxsZWwuYworKysgYi9zcmMvYmFja2VuZC9l eGVjdXRvci9leGVjUGFyYWxsZWwuYwpAQCAtODUsNyArODUsNyBAQCB0eXBlZGVmIHN0cnVjdCBG aXhlZFBhcmFsbGVsRXhlY3V0b3JTdGF0ZQogICogaW5zdHJ1bWVudF9vcHRpb25zOiBTYW1lIG1l YW5pbmcgaGVyZSBhcyBpbiBpbnN0cnVtZW50LmMuCiAgKgogICogaW5zdHJ1bWVudF9vZmZzZXQ6 IE9mZnNldCwgcmVsYXRpdmUgdG8gdGhlIHN0YXJ0IG9mIHRoaXMgc3RydWN0dXJlLAotICogb2Yg dGhlIGZpcnN0IEluc3RydW1lbnRhdGlvbiBvYmplY3QuICBUaGlzIHdpbGwgZGVwZW5kIG9uIHRo ZSBsZW5ndGggb2YKKyAqIG9mIHRoZSBmaXJzdCBOb2RlSW5zdHJ1bWVudGF0aW9uIG9iamVjdC4g IFRoaXMgd2lsbCBkZXBlbmQgb24gdGhlIGxlbmd0aCBvZgogICogdGhlIHBsYW5fbm9kZV9pZCBh cnJheS4KICAqCiAgKiBudW1fd29ya2VyczogTnVtYmVyIG9mIHdvcmtlcnMuCkBAIC0xMDIsMTEg KzEwMiwxNSBAQCBzdHJ1Y3QgU2hhcmVkRXhlY3V0b3JJbnN0cnVtZW50YXRpb24KIAlpbnQJCQlu dW1fd29ya2VyczsKIAlpbnQJCQludW1fcGxhbl9ub2RlczsKIAlpbnQJCQlwbGFuX25vZGVfaWRb RkxFWElCTEVfQVJSQVlfTUVNQkVSXTsKLQkvKiBhcnJheSBvZiBudW1fcGxhbl9ub2RlcyAqIG51 bV93b3JrZXJzIEluc3RydW1lbnRhdGlvbiBvYmplY3RzIGZvbGxvd3MgKi8KKworCS8qCisJICog YXJyYXkgb2YgbnVtX3BsYW5fbm9kZXMgKiBudW1fd29ya2VycyBOb2RlSW5zdHJ1bWVudGF0aW9u IG9iamVjdHMKKwkgKiBmb2xsb3dzCisJICovCiB9OwogI2RlZmluZSBHZXRJbnN0cnVtZW50YXRp b25BcnJheShzZWkpIFwKIAkoQXNzZXJ0VmFyaWFibGVJc09mVHlwZU1hY3JvKHNlaSwgU2hhcmVk RXhlY3V0b3JJbnN0cnVtZW50YXRpb24gKiksIFwKLQkgKEluc3RydW1lbnRhdGlvbiAqKSAoKChj aGFyICopIHNlaSkgKyBzZWktPmluc3RydW1lbnRfb2Zmc2V0KSkKKwkgKE5vZGVJbnN0cnVtZW50 YXRpb24gKikgKCgoY2hhciAqKSBzZWkpICsgc2VpLT5pbnN0cnVtZW50X29mZnNldCkpCiAKIC8q IENvbnRleHQgb2JqZWN0IGZvciBFeGVjUGFyYWxsZWxFc3RpbWF0ZS4gKi8KIHR5cGVkZWYgc3Ry dWN0IEV4ZWNQYXJhbGxlbEVzdGltYXRlQ29udGV4dApAQCAtNzEzLDcgKzcxNyw3IEBAIEV4ZWNJ bml0UGFyYWxsZWxQbGFuKFBsYW5TdGF0ZSAqcGxhbnN0YXRlLCBFU3RhdGUgKmVzdGF0ZSwKIAkJ aW5zdHJ1bWVudGF0aW9uX2xlbiA9IE1BWEFMSUdOKGluc3RydW1lbnRhdGlvbl9sZW4pOwogCQlp bnN0cnVtZW50X29mZnNldCA9IGluc3RydW1lbnRhdGlvbl9sZW47CiAJCWluc3RydW1lbnRhdGlv bl9sZW4gKz0KLQkJCW11bF9zaXplKHNpemVvZihJbnN0cnVtZW50YXRpb24pLAorCQkJbXVsX3Np emUoc2l6ZW9mKE5vZGVJbnN0cnVtZW50YXRpb24pLAogCQkJCQkgbXVsX3NpemUoZS5ubm9kZXMs IG53b3JrZXJzKSk7CiAJCXNobV90b2NfZXN0aW1hdGVfY2h1bmsoJnBjeHQtPmVzdGltYXRvciwg aW5zdHJ1bWVudGF0aW9uX2xlbik7CiAJCXNobV90b2NfZXN0aW1hdGVfa2V5cygmcGN4dC0+ZXN0 aW1hdG9yLCAxKTsKQEAgLTc5OSw3ICs4MDMsNyBAQCBFeGVjSW5pdFBhcmFsbGVsUGxhbihQbGFu U3RhdGUgKnBsYW5zdGF0ZSwgRVN0YXRlICplc3RhdGUsCiAJICovCiAJaWYgKGVzdGF0ZS0+ZXNf aW5zdHJ1bWVudCkKIAl7Ci0JCUluc3RydW1lbnRhdGlvbiAqaW5zdHJ1bWVudDsKKwkJTm9kZUlu c3RydW1lbnRhdGlvbiAqaW5zdHJ1bWVudDsKIAkJaW50CQkJaTsKIAogCQlpbnN0cnVtZW50YXRp b24gPSBzaG1fdG9jX2FsbG9jYXRlKHBjeHQtPnRvYywgaW5zdHJ1bWVudGF0aW9uX2xlbik7CkBA IC04MDksNyArODEzLDcgQEAgRXhlY0luaXRQYXJhbGxlbFBsYW4oUGxhblN0YXRlICpwbGFuc3Rh dGUsIEVTdGF0ZSAqZXN0YXRlLAogCQlpbnN0cnVtZW50YXRpb24tPm51bV9wbGFuX25vZGVzID0g ZS5ubm9kZXM7CiAJCWluc3RydW1lbnQgPSBHZXRJbnN0cnVtZW50YXRpb25BcnJheShpbnN0cnVt ZW50YXRpb24pOwogCQlmb3IgKGkgPSAwOyBpIDwgbndvcmtlcnMgKiBlLm5ub2RlczsgKytpKQot CQkJSW5zdHJJbml0KCZpbnN0cnVtZW50W2ldLCBlc3RhdGUtPmVzX2luc3RydW1lbnQpOworCQkJ SW5zdHJJbml0Tm9kZSgmaW5zdHJ1bWVudFtpXSwgZXN0YXRlLT5lc19pbnN0cnVtZW50KTsKIAkJ c2htX3RvY19pbnNlcnQocGN4dC0+dG9jLCBQQVJBTExFTF9LRVlfSU5TVFJVTUVOVEFUSU9OLAog CQkJCQkgICBpbnN0cnVtZW50YXRpb24pOwogCQlwZWktPmluc3RydW1lbnRhdGlvbiA9IGluc3Ry dW1lbnRhdGlvbjsKQEAgLTEwMzYsNyArMTA0MCw3IEBAIHN0YXRpYyBib29sCiBFeGVjUGFyYWxs ZWxSZXRyaWV2ZUluc3RydW1lbnRhdGlvbihQbGFuU3RhdGUgKnBsYW5zdGF0ZSwKIAkJCQkJCQkJ CVNoYXJlZEV4ZWN1dG9ySW5zdHJ1bWVudGF0aW9uICppbnN0cnVtZW50YXRpb24pCiB7Ci0JSW5z dHJ1bWVudGF0aW9uICppbnN0cnVtZW50OworCU5vZGVJbnN0cnVtZW50YXRpb24gKmluc3RydW1l bnQ7CiAJaW50CQkJaTsKIAlpbnQJCQluOwogCWludAkJCWlieXRlczsKQEAgLTEwNjQsNyArMTA2 OCw3IEBAIEV4ZWNQYXJhbGxlbFJldHJpZXZlSW5zdHJ1bWVudGF0aW9uKFBsYW5TdGF0ZSAqcGxh bnN0YXRlLAogCSAqIFN3aXRjaCBpbnRvIHBlci1xdWVyeSBtZW1vcnkgY29udGV4dC4KIAkgKi8K IAlvbGRjb250ZXh0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKHBsYW5zdGF0ZS0+c3RhdGUtPmVz X3F1ZXJ5X2N4dCk7Ci0JaWJ5dGVzID0gbXVsX3NpemUoaW5zdHJ1bWVudGF0aW9uLT5udW1fd29y a2Vycywgc2l6ZW9mKEluc3RydW1lbnRhdGlvbikpOworCWlieXRlcyA9IG11bF9zaXplKGluc3Ry dW1lbnRhdGlvbi0+bnVtX3dvcmtlcnMsIHNpemVvZihOb2RlSW5zdHJ1bWVudGF0aW9uKSk7CiAJ cGxhbnN0YXRlLT53b3JrZXJfaW5zdHJ1bWVudCA9CiAJCXBhbGxvYyhpYnl0ZXMgKyBvZmZzZXRv ZihXb3JrZXJJbnN0cnVtZW50YXRpb24sIGluc3RydW1lbnQpKTsKIAlNZW1vcnlDb250ZXh0U3dp dGNoVG8ob2xkY29udGV4dCk7CkBAIC0xMjk2LDcgKzEzMDAsNyBAQCBFeGVjUGFyYWxsZWxSZXBv cnRJbnN0cnVtZW50YXRpb24oUGxhblN0YXRlICpwbGFuc3RhdGUsCiB7CiAJaW50CQkJaTsKIAlp bnQJCQlwbGFuX25vZGVfaWQgPSBwbGFuc3RhdGUtPnBsYW4tPnBsYW5fbm9kZV9pZDsKLQlJbnN0 cnVtZW50YXRpb24gKmluc3RydW1lbnQ7CisJTm9kZUluc3RydW1lbnRhdGlvbiAqaW5zdHJ1bWVu dDsKIAogCUluc3RyRW5kTG9vcChwbGFuc3RhdGUtPmluc3RydW1lbnQpOwogCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUHJvY25vZGUuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL2V4ZWNQcm9jbm9kZS5jCmluZGV4IGY1ZjljZmJlZWFkLi5kMjg2NDcxMjU0YiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1Byb2Nub2RlLmMKKysrIGIvc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY1Byb2Nub2RlLmMKQEAgLTQxMyw4ICs0MTMsOCBAQCBFeGVjSW5pdE5v ZGUoUGxhbiAqbm9kZSwgRVN0YXRlICplc3RhdGUsIGludCBlZmxhZ3MpCiAKIAkvKiBTZXQgdXAg aW5zdHJ1bWVudGF0aW9uIGZvciB0aGlzIG5vZGUgaWYgcmVxdWVzdGVkICovCiAJaWYgKGVzdGF0 ZS0+ZXNfaW5zdHJ1bWVudCkKLQkJcmVzdWx0LT5pbnN0cnVtZW50ID0gSW5zdHJBbGxvYygxLCBl c3RhdGUtPmVzX2luc3RydW1lbnQsCi0JCQkJCQkJCQkJcmVzdWx0LT5hc3luY19jYXBhYmxlKTsK KwkJcmVzdWx0LT5pbnN0cnVtZW50ID0gSW5zdHJBbGxvY05vZGUoMSwgZXN0YXRlLT5lc19pbnN0 cnVtZW50LAorCQkJCQkJCQkJCQlyZXN1bHQtPmFzeW5jX2NhcGFibGUpOwogCiAJcmV0dXJuIHJl c3VsdDsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2luc3RydW1lbnQuYyBi L3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2luc3RydW1lbnQuYwppbmRleCAxYzkyYWJlNjc2MS4uMWZl MGY0MjA0ZTUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2luc3RydW1lbnQuYwor KysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9pbnN0cnVtZW50LmMKQEAgLTI2LDkgKzI2LDkgQEAg c3RhdGljIHZvaWQgQnVmZmVyVXNhZ2VBZGQoQnVmZmVyVXNhZ2UgKmRzdCwgY29uc3QgQnVmZmVy VXNhZ2UgKmFkZCk7CiBzdGF0aWMgdm9pZCBXYWxVc2FnZUFkZChXYWxVc2FnZSAqZHN0LCBXYWxV c2FnZSAqYWRkKTsKIAogCi0vKiBBbGxvY2F0ZSBuZXcgaW5zdHJ1bWVudGF0aW9uIHN0cnVjdHVy ZShzKSAqLworLyogR2VuZXJhbCBwdXJwb3NlIGluc3RydW1lbnRhdGlvbiBoYW5kbGluZyAqLwog SW5zdHJ1bWVudGF0aW9uICoKLUluc3RyQWxsb2MoaW50IG4sIGludCBpbnN0cnVtZW50X29wdGlv bnMsIGJvb2wgYXN5bmNfbW9kZSkKK0luc3RyQWxsb2MoaW50IG4sIGludCBpbnN0cnVtZW50X29w dGlvbnMpCiB7CiAJSW5zdHJ1bWVudGF0aW9uICppbnN0cjsKIApAQCAtNDEsNiArNDEsNzQgQEAg SW5zdHJBbGxvYyhpbnQgbiwgaW50IGluc3RydW1lbnRfb3B0aW9ucywgYm9vbCBhc3luY19tb2Rl KQogCQlib29sCQluZWVkX3RpbWVyID0gKGluc3RydW1lbnRfb3B0aW9ucyAmIElOU1RSVU1FTlRf VElNRVIpICE9IDA7CiAJCWludAkJCWk7CiAKKwkJZm9yIChpID0gMDsgaSA8IG47IGkrKykKKwkJ eworCQkJaW5zdHJbaV0ubmVlZF9idWZ1c2FnZSA9IG5lZWRfYnVmZmVyczsKKwkJCWluc3RyW2ld Lm5lZWRfd2FsdXNhZ2UgPSBuZWVkX3dhbDsKKwkJCWluc3RyW2ldLm5lZWRfdGltZXIgPSBuZWVk X3RpbWVyOworCQl9CisJfQorCisJcmV0dXJuIGluc3RyOworfQordm9pZAorSW5zdHJTdGFydChJ bnN0cnVtZW50YXRpb24gKmluc3RyKQoreworCWlmIChpbnN0ci0+bmVlZF90aW1lciAmJgorCQkh SU5TVFJfVElNRV9TRVRfQ1VSUkVOVF9MQVpZKGluc3RyLT5zdGFydHRpbWUpKQorCQllbG9nKEVS Uk9SLCAiSW5zdHJTdGFydCBjYWxsZWQgdHdpY2UgaW4gYSByb3ciKTsKKworCWlmIChpbnN0ci0+ bmVlZF9idWZ1c2FnZSkKKwkJaW5zdHItPmJ1ZnVzYWdlX3N0YXJ0ID0gcGdCdWZmZXJVc2FnZTsK KworCWlmIChpbnN0ci0+bmVlZF93YWx1c2FnZSkKKwkJaW5zdHItPndhbHVzYWdlX3N0YXJ0ID0g cGdXYWxVc2FnZTsKK30KK3ZvaWQKK0luc3RyU3RvcChJbnN0cnVtZW50YXRpb24gKmluc3RyLCBk b3VibGUgblR1cGxlcykKK3sKKwlpbnN0cl90aW1lCWVuZHRpbWU7CisKKwkvKiBjb3VudCB0aGUg c3BlY2lmaWVkIHR1cGxlcyAqLworCWluc3RyLT5udHVwbGVzICs9IG5UdXBsZXM7CisKKwkvKiBs ZXQncyB1cGRhdGUgdGhlIHRpbWUgb25seSBpZiB0aGUgdGltZXIgd2FzIHJlcXVlc3RlZCAqLwor CWlmIChpbnN0ci0+bmVlZF90aW1lcikKKwl7CisJCWlmIChJTlNUUl9USU1FX0lTX1pFUk8oaW5z dHItPnN0YXJ0dGltZSkpCisJCQllbG9nKEVSUk9SLCAiSW5zdHJTdG9wIGNhbGxlZCB3aXRob3V0 IHN0YXJ0Iik7CisKKwkJSU5TVFJfVElNRV9TRVRfQ1VSUkVOVChlbmR0aW1lKTsKKwkJSU5TVFJf VElNRV9BQ0NVTV9ESUZGKGluc3RyLT50b3RhbCwgZW5kdGltZSwgaW5zdHItPnN0YXJ0dGltZSk7 CisKKwkJSU5TVFJfVElNRV9TRVRfWkVSTyhpbnN0ci0+c3RhcnR0aW1lKTsKKwl9CisKKwkvKiBB ZGQgZGVsdGEgb2YgYnVmZmVyIHVzYWdlIHNpbmNlIGVudHJ5IHRvIG5vZGUncyB0b3RhbHMgKi8K KwlpZiAoaW5zdHItPm5lZWRfYnVmdXNhZ2UpCisJCUJ1ZmZlclVzYWdlQWNjdW1EaWZmKCZpbnN0 ci0+YnVmdXNhZ2UsCisJCQkJCQkJICZwZ0J1ZmZlclVzYWdlLCAmaW5zdHItPmJ1ZnVzYWdlX3N0 YXJ0KTsKKworCWlmIChpbnN0ci0+bmVlZF93YWx1c2FnZSkKKwkJV2FsVXNhZ2VBY2N1bURpZmYo Jmluc3RyLT53YWx1c2FnZSwKKwkJCQkJCSAgJnBnV2FsVXNhZ2UsICZpbnN0ci0+d2FsdXNhZ2Vf c3RhcnQpOworfQorCisvKiBBbGxvY2F0ZSBuZXcgbm9kZSBpbnN0cnVtZW50YXRpb24gc3RydWN0 dXJlKHMpICovCitOb2RlSW5zdHJ1bWVudGF0aW9uICoKK0luc3RyQWxsb2NOb2RlKGludCBuLCBp bnQgaW5zdHJ1bWVudF9vcHRpb25zLCBib29sIGFzeW5jX21vZGUpCit7CisJTm9kZUluc3RydW1l bnRhdGlvbiAqaW5zdHI7CisKKwkvKiBpbml0aWFsaXplIGFsbCBmaWVsZHMgdG8gemVyb2VzLCB0 aGVuIG1vZGlmeSBhcyBuZWVkZWQgKi8KKwlpbnN0ciA9IHBhbGxvYzAobiAqIHNpemVvZihOb2Rl SW5zdHJ1bWVudGF0aW9uKSk7CisJaWYgKGluc3RydW1lbnRfb3B0aW9ucyAmIChJTlNUUlVNRU5U X0JVRkZFUlMgfCBJTlNUUlVNRU5UX1RJTUVSIHwgSU5TVFJVTUVOVF9XQUwpKQorCXsKKwkJYm9v bAkJbmVlZF9idWZmZXJzID0gKGluc3RydW1lbnRfb3B0aW9ucyAmIElOU1RSVU1FTlRfQlVGRkVS UykgIT0gMDsKKwkJYm9vbAkJbmVlZF93YWwgPSAoaW5zdHJ1bWVudF9vcHRpb25zICYgSU5TVFJV TUVOVF9XQUwpICE9IDA7CisJCWJvb2wJCW5lZWRfdGltZXIgPSAoaW5zdHJ1bWVudF9vcHRpb25z ICYgSU5TVFJVTUVOVF9USU1FUikgIT0gMDsKKwkJaW50CQkJaTsKKwogCQlmb3IgKGkgPSAwOyBp IDwgbjsgaSsrKQogCQl7CiAJCQlpbnN0cltpXS5uZWVkX2J1ZnVzYWdlID0gbmVlZF9idWZmZXJz OwpAQCAtNTUsOSArMTIzLDkgQEAgSW5zdHJBbGxvYyhpbnQgbiwgaW50IGluc3RydW1lbnRfb3B0 aW9ucywgYm9vbCBhc3luY19tb2RlKQogCiAvKiBJbml0aWFsaXplIGEgcHJlLWFsbG9jYXRlZCBp bnN0cnVtZW50YXRpb24gc3RydWN0dXJlLiAqLwogdm9pZAotSW5zdHJJbml0KEluc3RydW1lbnRh dGlvbiAqaW5zdHIsIGludCBpbnN0cnVtZW50X29wdGlvbnMpCitJbnN0ckluaXROb2RlKE5vZGVJ bnN0cnVtZW50YXRpb24gKiBpbnN0ciwgaW50IGluc3RydW1lbnRfb3B0aW9ucykKIHsKLQltZW1z ZXQoaW5zdHIsIDAsIHNpemVvZihJbnN0cnVtZW50YXRpb24pKTsKKwltZW1zZXQoaW5zdHIsIDAs IHNpemVvZihOb2RlSW5zdHJ1bWVudGF0aW9uKSk7CiAJaW5zdHItPm5lZWRfYnVmdXNhZ2UgPSAo aW5zdHJ1bWVudF9vcHRpb25zICYgSU5TVFJVTUVOVF9CVUZGRVJTKSAhPSAwOwogCWluc3RyLT5u ZWVkX3dhbHVzYWdlID0gKGluc3RydW1lbnRfb3B0aW9ucyAmIElOU1RSVU1FTlRfV0FMKSAhPSAw OwogCWluc3RyLT5uZWVkX3RpbWVyID0gKGluc3RydW1lbnRfb3B0aW9ucyAmIElOU1RSVU1FTlRf VElNRVIpICE9IDA7CkBAIC02NSw3ICsxMzMsNyBAQCBJbnN0ckluaXQoSW5zdHJ1bWVudGF0aW9u ICppbnN0ciwgaW50IGluc3RydW1lbnRfb3B0aW9ucykKIAogLyogRW50cnkgdG8gYSBwbGFuIG5v ZGUgKi8KIHZvaWQKLUluc3RyU3RhcnROb2RlKEluc3RydW1lbnRhdGlvbiAqaW5zdHIpCitJbnN0 clN0YXJ0Tm9kZShOb2RlSW5zdHJ1bWVudGF0aW9uICogaW5zdHIpCiB7CiAJaWYgKGluc3RyLT5u ZWVkX3RpbWVyICYmCiAJCSFJTlNUUl9USU1FX1NFVF9DVVJSRU5UX0xBWlkoaW5zdHItPnN0YXJ0 dGltZSkpCkBAIC04MSw3ICsxNDksNyBAQCBJbnN0clN0YXJ0Tm9kZShJbnN0cnVtZW50YXRpb24g Kmluc3RyKQogCiAvKiBFeGl0IGZyb20gYSBwbGFuIG5vZGUgKi8KIHZvaWQKLUluc3RyU3RvcE5v ZGUoSW5zdHJ1bWVudGF0aW9uICppbnN0ciwgZG91YmxlIG5UdXBsZXMpCitJbnN0clN0b3BOb2Rl KE5vZGVJbnN0cnVtZW50YXRpb24gKiBpbnN0ciwgZG91YmxlIG5UdXBsZXMpCiB7CiAJZG91Ymxl CQlzYXZlX3R1cGxlY291bnQgPSBpbnN0ci0+dHVwbGVjb3VudDsKIAlpbnN0cl90aW1lCWVuZHRp bWU7CkBAIC0xMjksNyArMTk3LDcgQEAgSW5zdHJTdG9wTm9kZShJbnN0cnVtZW50YXRpb24gKmlu c3RyLCBkb3VibGUgblR1cGxlcykKIAogLyogVXBkYXRlIHR1cGxlIGNvdW50ICovCiB2b2lkCi1J bnN0clVwZGF0ZVR1cGxlQ291bnQoSW5zdHJ1bWVudGF0aW9uICppbnN0ciwgZG91YmxlIG5UdXBs ZXMpCitJbnN0clVwZGF0ZVR1cGxlQ291bnQoTm9kZUluc3RydW1lbnRhdGlvbiAqIGluc3RyLCBk b3VibGUgblR1cGxlcykKIHsKIAkvKiBjb3VudCB0aGUgcmV0dXJuZWQgdHVwbGVzICovCiAJaW5z dHItPnR1cGxlY291bnQgKz0gblR1cGxlczsKQEAgLTEzNyw3ICsyMDUsNyBAQCBJbnN0clVwZGF0 ZVR1cGxlQ291bnQoSW5zdHJ1bWVudGF0aW9uICppbnN0ciwgZG91YmxlIG5UdXBsZXMpCiAKIC8q IEZpbmlzaCBhIHJ1biBjeWNsZSBmb3IgYSBwbGFuIG5vZGUgKi8KIHZvaWQKLUluc3RyRW5kTG9v cChJbnN0cnVtZW50YXRpb24gKmluc3RyKQorSW5zdHJFbmRMb29wKE5vZGVJbnN0cnVtZW50YXRp b24gKiBpbnN0cikKIHsKIAkvKiBTa2lwIGlmIG5vdGhpbmcgaGFzIGhhcHBlbmVkLCBvciBhbHJl YWR5IHNodXQgZG93biAqLwogCWlmICghaW5zdHItPnJ1bm5pbmcpCkBAIC0xNjIsNyArMjMwLDcg QEAgSW5zdHJFbmRMb29wKEluc3RydW1lbnRhdGlvbiAqaW5zdHIpCiAKIC8qIGFnZ3JlZ2F0ZSBp bnN0cnVtZW50YXRpb24gaW5mb3JtYXRpb24gKi8KIHZvaWQKLUluc3RyQWdnTm9kZShJbnN0cnVt ZW50YXRpb24gKmRzdCwgSW5zdHJ1bWVudGF0aW9uICphZGQpCitJbnN0ckFnZ05vZGUoTm9kZUlu c3RydW1lbnRhdGlvbiAqIGRzdCwgTm9kZUluc3RydW1lbnRhdGlvbiAqIGFkZCkKIHsKIAlpZiAo IWRzdC0+cnVubmluZyAmJiBhZGQtPnJ1bm5pbmcpCiAJewpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvZXhlY3V0b3IvaW5zdHJ1bWVudC5oIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3IvaW5zdHJ1bWVu dC5oCmluZGV4IGJhNWM5ODY5MDdlLi4xYWU1MzNmNjcwNCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvZXhlY3V0b3IvaW5zdHJ1bWVudC5oCisrKyBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2luc3Ry dW1lbnQuaApAQCAtNjYsNyArNjYsMzMgQEAgdHlwZWRlZiBlbnVtIEluc3RydW1lbnRPcHRpb24K IAlJTlNUUlVNRU5UX0FMTCA9IFBHX0lOVDMyX01BWAogfSBJbnN0cnVtZW50T3B0aW9uOwogCisv KgorICogR2VuZXJhbCBwdXJwb3NlIGluc3RydW1lbnRhdGlvbiB0aGF0IGNhbiBjYXB0dXJlIHRp bWUsIFdBTC9idWZmZXIgdXNhZ2UgYW5kIHR1cGxlcworICoKKyAqIEluaXRpYWxpemVkIHRocm91 Z2ggSW5zdHJBbGxvYywgZm9sbG93ZWQgYnkgb25lIG9yIG1vcmUgY2FsbHMgdG8gYSBwYWlyIG9m CisgKiBJbnN0clN0YXJ0L0luc3RyU3RvcCAoYWN0aXZpdHkgaXMgbWVhc3VyZWQgaW5iZXR3ZWVu KS4KKyAqLwogdHlwZWRlZiBzdHJ1Y3QgSW5zdHJ1bWVudGF0aW9uCit7CisJLyogUGFyYW1ldGVy cyBzZXQgYXQgY3JlYXRpb246ICovCisJYm9vbAkJbmVlZF90aW1lcjsJCS8qIHRydWUgaWYgd2Ug bmVlZCB0aW1lciBkYXRhICovCisJYm9vbAkJbmVlZF9idWZ1c2FnZTsJLyogdHJ1ZSBpZiB3ZSBu ZWVkIGJ1ZmZlciB1c2FnZSBkYXRhICovCisJYm9vbAkJbmVlZF93YWx1c2FnZTsJLyogdHJ1ZSBp ZiB3ZSBuZWVkIFdBTCB1c2FnZSBkYXRhICovCisJLyogSW50ZXJuYWwgc3RhdGUga2VlcGluZzog Ki8KKwlpbnN0cl90aW1lCXN0YXJ0dGltZTsJCS8qIHN0YXJ0IHRpbWUgb2YgbGFzdCBJbnN0clN0 YXJ0ICovCisJQnVmZmVyVXNhZ2UgYnVmdXNhZ2Vfc3RhcnQ7IC8qIGJ1ZmZlciB1c2FnZSBhdCBz dGFydCAqLworCVdhbFVzYWdlCXdhbHVzYWdlX3N0YXJ0OyAvKiBXQUwgdXNhZ2UgYXQgc3RhcnQg Ki8KKwkvKiBBY2N1bXVsYXRlZCBzdGF0aXN0aWNzOiAqLworCWluc3RyX3RpbWUJdG90YWw7CQkJ LyogdG90YWwgcnVudGltZSAqLworCWRvdWJsZQkJbnR1cGxlczsJCS8qIHRvdGFsIHR1cGxlcyBj b3VudGVkIGluIEluc3RyU3RvcCAqLworCUJ1ZmZlclVzYWdlIGJ1ZnVzYWdlOwkJLyogdG90YWwg YnVmZmVyIHVzYWdlICovCisJV2FsVXNhZ2UJd2FsdXNhZ2U7CQkvKiB0b3RhbCBXQUwgdXNhZ2Ug Ki8KK30gSW5zdHJ1bWVudGF0aW9uOworCisvKgorICogU3BlY2lhbGl6ZWQgaW5zdHJ1bWVudGF0 aW9uIGZvciBwZXItbm9kZSBleGVjdXRpb24gc3RhdGlzdGljcworICovCit0eXBlZGVmIHN0cnVj dCBOb2RlSW5zdHJ1bWVudGF0aW9uCiB7CiAJLyogUGFyYW1ldGVycyBzZXQgYXQgbm9kZSBjcmVh dGlvbjogKi8KIAlib29sCQluZWVkX3RpbWVyOwkJLyogdHJ1ZSBpZiB3ZSBuZWVkIHRpbWVyIGRh dGEgKi8KQEAgLTkxLDI1ICsxMTcsMzAgQEAgdHlwZWRlZiBzdHJ1Y3QgSW5zdHJ1bWVudGF0aW9u CiAJZG91YmxlCQluZmlsdGVyZWQyOwkJLyogIyBvZiB0dXBsZXMgcmVtb3ZlZCBieSAib3RoZXIi IHF1YWxzICovCiAJQnVmZmVyVXNhZ2UgYnVmdXNhZ2U7CQkvKiB0b3RhbCBidWZmZXIgdXNhZ2Ug Ki8KIAlXYWxVc2FnZQl3YWx1c2FnZTsJCS8qIHRvdGFsIFdBTCB1c2FnZSAqLwotfSBJbnN0cnVt ZW50YXRpb247Cit9CQkJTm9kZUluc3RydW1lbnRhdGlvbjsKIAogdHlwZWRlZiBzdHJ1Y3QgV29y a2VySW5zdHJ1bWVudGF0aW9uCiB7CiAJaW50CQkJbnVtX3dvcmtlcnM7CS8qICMgb2Ygc3RydWN0 dXJlcyB0aGF0IGZvbGxvdyAqLwotCUluc3RydW1lbnRhdGlvbiBpbnN0cnVtZW50W0ZMRVhJQkxF X0FSUkFZX01FTUJFUl07CisJTm9kZUluc3RydW1lbnRhdGlvbiBpbnN0cnVtZW50W0ZMRVhJQkxF X0FSUkFZX01FTUJFUl07CiB9IFdvcmtlckluc3RydW1lbnRhdGlvbjsKIAogZXh0ZXJuIFBHRExM SU1QT1JUIEJ1ZmZlclVzYWdlIHBnQnVmZmVyVXNhZ2U7CiBleHRlcm4gUEdETExJTVBPUlQgV2Fs VXNhZ2UgcGdXYWxVc2FnZTsKIAotZXh0ZXJuIEluc3RydW1lbnRhdGlvbiAqSW5zdHJBbGxvYyhp bnQgbiwgaW50IGluc3RydW1lbnRfb3B0aW9ucywKLQkJCQkJCQkJICAgYm9vbCBhc3luY19tb2Rl KTsKLWV4dGVybiB2b2lkIEluc3RySW5pdChJbnN0cnVtZW50YXRpb24gKmluc3RyLCBpbnQgaW5z dHJ1bWVudF9vcHRpb25zKTsKLWV4dGVybiB2b2lkIEluc3RyU3RhcnROb2RlKEluc3RydW1lbnRh dGlvbiAqaW5zdHIpOwotZXh0ZXJuIHZvaWQgSW5zdHJTdG9wTm9kZShJbnN0cnVtZW50YXRpb24g Kmluc3RyLCBkb3VibGUgblR1cGxlcyk7Ci1leHRlcm4gdm9pZCBJbnN0clVwZGF0ZVR1cGxlQ291 bnQoSW5zdHJ1bWVudGF0aW9uICppbnN0ciwgZG91YmxlIG5UdXBsZXMpOwotZXh0ZXJuIHZvaWQg SW5zdHJFbmRMb29wKEluc3RydW1lbnRhdGlvbiAqaW5zdHIpOwotZXh0ZXJuIHZvaWQgSW5zdHJB Z2dOb2RlKEluc3RydW1lbnRhdGlvbiAqZHN0LCBJbnN0cnVtZW50YXRpb24gKmFkZCk7CitleHRl cm4gSW5zdHJ1bWVudGF0aW9uICpJbnN0ckFsbG9jKGludCBuLCBpbnQgaW5zdHJ1bWVudF9vcHRp b25zKTsKK2V4dGVybiB2b2lkIEluc3RyU3RhcnQoSW5zdHJ1bWVudGF0aW9uICppbnN0cik7Citl eHRlcm4gdm9pZCBJbnN0clN0b3AoSW5zdHJ1bWVudGF0aW9uICppbnN0ciwgZG91YmxlIG5UdXBs ZXMpOworCitleHRlcm4gTm9kZUluc3RydW1lbnRhdGlvbiAqIEluc3RyQWxsb2NOb2RlKGludCBu LCBpbnQgaW5zdHJ1bWVudF9vcHRpb25zLAorCQkJCQkJCQkJCQlib29sIGFzeW5jX21vZGUpOwor ZXh0ZXJuIHZvaWQgSW5zdHJJbml0Tm9kZShOb2RlSW5zdHJ1bWVudGF0aW9uICogaW5zdHIsIGlu dCBpbnN0cnVtZW50X29wdGlvbnMpOworZXh0ZXJuIHZvaWQgSW5zdHJTdGFydE5vZGUoTm9kZUlu c3RydW1lbnRhdGlvbiAqIGluc3RyKTsKK2V4dGVybiB2b2lkIEluc3RyU3RvcE5vZGUoTm9kZUlu c3RydW1lbnRhdGlvbiAqIGluc3RyLCBkb3VibGUgblR1cGxlcyk7CitleHRlcm4gdm9pZCBJbnN0 clVwZGF0ZVR1cGxlQ291bnQoTm9kZUluc3RydW1lbnRhdGlvbiAqIGluc3RyLCBkb3VibGUgblR1 cGxlcyk7CitleHRlcm4gdm9pZCBJbnN0ckVuZExvb3AoTm9kZUluc3RydW1lbnRhdGlvbiAqIGlu c3RyKTsKK2V4dGVybiB2b2lkIEluc3RyQWdnTm9kZShOb2RlSW5zdHJ1bWVudGF0aW9uICogZHN0 LCBOb2RlSW5zdHJ1bWVudGF0aW9uICogYWRkKTsKKwogZXh0ZXJuIHZvaWQgSW5zdHJTdGFydFBh cmFsbGVsUXVlcnkodm9pZCk7CiBleHRlcm4gdm9pZCBJbnN0ckVuZFBhcmFsbGVsUXVlcnkoQnVm ZmVyVXNhZ2UgKmJ1ZnVzYWdlLCBXYWxVc2FnZSAqd2FsdXNhZ2UpOwogZXh0ZXJuIHZvaWQgSW5z dHJBY2N1bVBhcmFsbGVsUXVlcnkoQnVmZmVyVXNhZ2UgKmJ1ZnVzYWdlLCBXYWxVc2FnZSAqd2Fs dXNhZ2UpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmggYi9zcmMv aW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaAppbmRleCBkZTc4MjAxNGIyZC4uOWIzYmQ2NmQ0MDEg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCisrKyBiL3NyYy9pbmNs dWRlL25vZGVzL2V4ZWNub2Rlcy5oCkBAIC0xMTY5LDcgKzExNjksOCBAQCB0eXBlZGVmIHN0cnVj dCBQbGFuU3RhdGUKIAlFeGVjUHJvY05vZGVNdGQgRXhlY1Byb2NOb2RlUmVhbDsJLyogYWN0dWFs IGZ1bmN0aW9uLCBpZiBhYm92ZSBpcyBhCiAJCQkJCQkJCQkJICogd3JhcHBlciAqLwogCi0JSW5z dHJ1bWVudGF0aW9uICppbnN0cnVtZW50OwkvKiBPcHRpb25hbCBydW50aW1lIHN0YXRzIGZvciB0 aGlzIG5vZGUgKi8KKwlOb2RlSW5zdHJ1bWVudGF0aW9uICppbnN0cnVtZW50OwkvKiBPcHRpb25h bCBydW50aW1lIHN0YXRzIGZvciB0aGlzCisJCQkJCQkJCQkJICogbm9kZSAqLwogCVdvcmtlcklu c3RydW1lbnRhdGlvbiAqd29ya2VyX2luc3RydW1lbnQ7CS8qIHBlci13b3JrZXIgaW5zdHJ1bWVu dGF0aW9uICovCiAKIAkvKiBQZXItd29ya2VyIEpJVCBpbnN0cnVtZW50YXRpb24gKi8KLS0gCjIu NDcuMQoK --00000000000017b5fe063e636bfe--