Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w2n8A-000bnd-2d for pgsql-hackers@arkaria.postgresql.org; Wed, 18 Mar 2026 09:23:59 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w2n89-0094hp-1K for pgsql-hackers@arkaria.postgresql.org; Wed, 18 Mar 2026 09:23:57 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from <3danissimo@gmail.com>) id 1w2n88-0094hg-36 for pgsql-hackers@lists.postgresql.org; Wed, 18 Mar 2026 09:23:57 +0000 Received: from mail-yw1-x112d.google.com ([2607:f8b0:4864:20::112d]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from <3danissimo@gmail.com>) id 1w2n85-00000000uAa-2Qx0 for pgsql-hackers@lists.postgresql.org; Wed, 18 Mar 2026 09:23:56 +0000 Received: by mail-yw1-x112d.google.com with SMTP id 00721157ae682-79a3e2e64f4so21011447b3.1 for ; Wed, 18 Mar 2026 02:23:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1773825832; cv=none; d=google.com; s=arc-20240605; b=MTyWiHxeDkF0LLh/yNEg2pVCN8nQLs3b2xvO3m2WhN48ZIBPL7V3NvPu1vKnjEpAcs qiCUY1C1cuF2BIiP9DScdcZkzsZtetufG2mqPGSeJttnKBVp4kS4hFSzT0TpJGk8LvEv X4vL+ovQDKDQj1TAlNtWHdVVrYV6ibjDR69rnHTH4UPbQlpUwLZNty6sJsMyIP1tGdP5 3Oc1WFGAZrWuQiZ+yJSiAQ7jHe4H7sqlKzeSWA6KtqeaaEHuurfeem5Ddtvsa5qZ/b51 +GjEOju127eEp4L2HN9WYDXnoGibJnGD5W6Y/YxfQv7B7FPRnrMKOMPyn8dOqWj2YM+f 3xQg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=GzmaKequYf+jza/EEpVGzCRjLL1JXQXiTtrOYbRoZcU=; fh=drRehjnFy8LdjbqU9dKQ59zmjqhF11SHI37SvUzlBOg=; b=iedeyg81phZZYpyVryoOVE1rYY+rQFT+Gx9zEJUDgPbLtVzt7Rkjggo+XuDDtZbBAc JRs1gyCN1pHKZ9l6loeXs4tkzT6vYtnBs6NSHtikkvtJCxvmkqk3k4275iL1fBUWG9cY Xf1dQFoc96CYuLMvMXUDe0GIGgyTcY8AoZJ3Oopmf411/Nm2CHCY00CbgmRtawl93q2S eULa/9HlQd7mAv890Ly9r+2ZT4K143F+JoASGAPXR2D+AZROS6j1AQdqpARfD3ZmnCh6 Pt9qndPLBURYmX3shoqcRasOv6OMTc7Aq/940RMYAnAcY+3R1UoRK604vX5oPgZh2cHZ 8ZjQ==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773825832; x=1774430632; 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=GzmaKequYf+jza/EEpVGzCRjLL1JXQXiTtrOYbRoZcU=; b=JXVmdgU4TwMfmbxSCCZsmavL6nRhnqhElxaSxm3Ezkv5zXnTLoWSnBzkyMxsDi0d4K TbrAw4cYstjBuk+QbeuukuvE9Ond7WnrGQ9sHAVPg7t1J3E4j7qY7aBoXfQtEreyY53I okDCuPwNi2Kb4TsDXqhN9UyiZSchc8QaHCWzhEu6F2aEd30YmjMhLxSB0lC04fzCDbDk I9jXrny5nU9lCOzvasMwVnqd3YFKDCVnUI06vWd4xLQRbG/YJEAMwl76i1b4fdadDInU dB4MIRjLcJ9BeEeZsiBQ499DxKLEOLFWrJ3R9aT6zzQqHr+uf447NT+kiiw1mo/Y+QAO 6Xcw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773825832; x=1774430632; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=GzmaKequYf+jza/EEpVGzCRjLL1JXQXiTtrOYbRoZcU=; b=Zb89W3QcpzLxd5p5mBXeLu5aiQUAI27Sw3trSpyBvVXXI9W3dL5d/xFnC/31YBkBvy 6LOYZOudUQu8aSZ0pwjyLt9jYWketRbrlMkuhx8XcscEHiA7ZqyD6Je5cRJ1wyURUl18 GADIv5KZa5RfjWOcvw3JRct1mEVR8xsO0KVBBCt5JcVD5dtuBGllukXTGEs7aDqbx378 /kHyHrGsg+qmK2ws+1KcwJMm0HXISnbJyMiBT/sniNsoYcwoEY7AjwRo0BJnYI5Lur0+ VXHH9ZHFXA/mZOfbg6Ty7trwRyE4jySvaalazwX54jj65r9KuhwVoFy4p6iab61qHtZs 6/cg== X-Forwarded-Encrypted: i=1; AJvYcCXZFvkBG7DLxFXvpneNAAX0qR59O4M5lMsRLU7FwF/CHTjA+fYWUY0MtOlnu8/D3E7V6rsdgvbczaT968AG@lists.postgresql.org X-Gm-Message-State: AOJu0Yxao3NH8S4QfmXthKN8RMp2Yk8T1Xhc0m1E0oNAg45XPjQvfa18 HlIjnAAKQPTNFIf/lhDcSUht2B0S0g1XbASQwH8gCldQUO5ZB/LogIq9wR+42EazZDXmNLQZdro 3rqed9TKxYjWpog1114rA/5M8tyoXGvc= X-Gm-Gg: ATEYQzxcip3eOb5hGw/naQGDXkvBFnMK4ugDiqzthjlVLWIUAgvj6j7E3voOlJA+uNR N3otHrP+HuFo4KdVHlYod+dp1mu+CQ4BZeyef34UTtPyV4Bq99wJFIGgCCq1G4FJ0aspLPqo6+W +O45ietMqdqNI1wlDW4ZWKdrtPLYCIVdHIfnYW97xso6miMaUZy6OZS5T5EnE46q40MK4a/nEp8 abuiUUeq/5i4uOY7uuH+ei8AYOmH9/KtvaI+1UDuh2ECnw6DndKLQw4UQmM00qIjVqpCsAI4fll O+eRDZP5 X-Received: by 2002:a05:690c:6381:b0:79a:4b22:5e35 with SMTP id 00721157ae682-79a71cb2306mr24388217b3.58.1773825831712; Wed, 18 Mar 2026 02:23:51 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Daniil Davydov <3danissimo@gmail.com> Date: Wed, 18 Mar 2026 16:23:39 +0700 X-Gm-Features: AaiRm53QdFv3XWPbR2wMlcXxbGSNvQbvHcjCx5US82IvMoz1Lt9jiyoOmWfUDXE Message-ID: Subject: Re: POC: Parallel processing of indexes in autovacuum To: Masahiko Sawada Cc: Sami Imseih , Alexander Korotkov , Matheus Alcantara , Maxim Orlov , Postgres hackers Content-Type: multipart/mixed; boundary="000000000000982b9b064d490276" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000982b9b064d490276 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, On Tue, Mar 17, 2026 at 11:51=E2=80=AFPM Masahiko Sawada wrote: > > I find the current behavior of the autovacuum_parallel_workers storage > parameter somewhat unintuitive for users. The documentation currently > states: > > + > + Sets the maximum number of parallel autovacuum workers that can pr= ocess > + indexes of this table. > + The default value is -1, which means no parallel index vacuuming f= or > + this table. If value is 0 then parallel degree will computed based= on > + number of indexes. > + Note that the computed number of workers may not actually be avail= able at > + run time. If this occurs, the autovacuum will run with fewer worke= rs > + than expected. > + > > It is quite confusing that setting the value to 0 does not actually > disable the parallel vacuum. In many other PostgreSQL parameters, 0 > typically means "off" or "no workers." I think that this parameter > should behave as follows: > > -1: Use the value of autovacuum_max_parallel_workers (GUC) as the > limit (fallback). > >=3D0: Use the specified value as the limit, capped by autovacuum_max_par= allel_workers. (Specifically, setting this to 0 would disable parallel vacu= um for the table). > Actually we have several places in the code where "-1" means disabled and "= 0" means choosing a parallel degree based on the number of indexes. Since this is an inner logic, I agree that we should make our parameter more intuitive to the user. But this will make the code a bit confusing. > Currently, the patch implements parallel autovacuum as an "opt-in" > style. That is, even after setting the GUC to >0, users must manually > set the storage parameter for each table. This assumes that users > already know exactly which tables need parallel vacuum. > > However, I believe it would be more intuitive to let the system decide > which tables are eligible for parallel vacuum based on index size and > count (via min_parallel_index_scan_size, etc.), rather than forcing > manual per-table configuration. Therefore, I'm thinking we might want > to make it "opt-out" style by default instead: > > - Set the default value of the storage parameter to -1 (i.e., fallback to= GUC). > - the default value of the GUC autovacuum_max_parallel_workers at 0. > > With this configuration: > > - Parallel autovacuum is disabled by default. > - Users can enable it globally by simply setting the GUC to >0. > - Users can still disable it for specific tables by setting the > storage parameter to 0. > > What do you think? I'm afraid that I can't agree with you here. As I wrote above [1], the parallel a/v feature will be useful when a user has a few huge tables with a big amount of indexes. Only these tables require parallel processing and = a user knows about it. If we implement the feature as you suggested, then after setting the av_max_parallel_workers to N > 0, the user will have to manually disable processing for all tables except the largest ones. This will need to be don= e to ensure that parallel workers are launched specifically to process the largest tables and not wasting on the processing of little ones. I.e. I'm proposing a design that will require manual actions to *enable* parallel a/v for several large tables rather than *disable* it for all of the rest tables in the cluster. I'm sure that's what users want. Allowing the system to decide which tables to process in parallel is a good way from a design perspective. But I'm thinking of the following example : Imagine that we have a threshold, when exceeded, parallel a/v is used. Several a/v workers encounter tables which exceed this threshold by 1_000 a= nd each of these workers decides to launch a few parallel workers. Another a/v worker encounters a table which is beyond this threshold by 1_000_000 and tries to launch N parallel workers, but facing the max_parallel_workers shortage. Thus, processing of this table will take a very long time to complete due to lack of resources. The only way for users to avoid it is to disable parallel a/v for all tables, which exceeds the threshold and are no= t of particular interest. I cannot imagine how our heuristics can handle such situations. IMHO the situation will come down to the fact that users will manually disable parallel a/v for a big amount of tables. I guess it can be pretty frustrati= ng. What do you think? > > +{ name =3D> 'autovacuum_max_parallel_workers', type =3D> 'int', context > =3D> 'PGC_SIGHUP', group =3D> 'VACUUM_AUTOVACUUM', > + short_desc =3D> 'Maximum number of parallel workers that a single > autovacuum worker can take from bgworkers pool.', > + variable =3D> 'autovacuum_max_parallel_workers', > + boot_val =3D> '2', > + min =3D> '0', > + max =3D> 'MAX_BACKENDS', > +}, > > How about rephrasing the short description to "Maximum number of > parallel processes per autovacuum operation."? I'm not sure if this phrase will be understandable to the user. I don't see any places where we would define the "autovacuum operation" concept, so I suppose it could be ambiguous. What about "Maximum number of parallel processes per autovacuuming of one table"? > > The maximum value should be MAX_PARALLEL_WORKER_LIMIT. > Sure! > > I think that it's better to rename PVWorkersStats and PVWorkersUsage > to PVWorkerStats and PVWorkerUsage (making Worker singular). > > I've attached the patch for minor fixes including the above comments. > I agree with all proposed fixes. Thank you! > > + if (AmAutoVacuumWorkerProcess()) > + elog(DEBUG2, > + ngettext("autovacuum worker: finished > parallel index processing with %d parallel worker", > + "autovacuum worker: > finished parallel index processing with %d parallel workers", > + nworkers), > + nworkers); > > Now that having planned and launched logs in autovacuum logs is > straightforward, let's use these logs in the tests instead and make it > the first patch. We can apply it independently. > OK, I agree. > We check only the server logs throughout the new tap tests. I think we > should also confirm that the autovacuum successfully completes. I've > attached the proposed change to the tap tests. > I agree with proposed changes. BTW, don't we need to reduce the strings length to 80 characters in the tests? In some tests, this rule is followed, and in some it is not. -- Thank you very much for the review and proposed patches! Please, see an updated set of patches. Note that the "logging for autovacuu= m" is considered as the first patch now. [1] https://www.postgresql.org/message-id/CAJDiXghaazbrQMZZS08d9Ffh2y4w05Tg= H9dpBhqChv1qNTp%2BxA%40mail.gmail.com -- Best regards, Daniil Davydov --000000000000982b9b064d490276 Content-Type: text/x-patch; charset="US-ASCII"; name="v29-0005-Documentation-for-parallel-autovacuum.patch" Content-Disposition: attachment; filename="v29-0005-Documentation-for-parallel-autovacuum.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmvttlky0 RnJvbSBhMTNhNWIyNjlhYzUxYmZiYTY2MzU0MTIzYThiZThiMGVmNWNmNjRhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5paWwgRGF2aWRvdiA8ZC5kYXZ5ZG92QHBvc3RncmVzcHJv LnJ1PgpEYXRlOiBUdWUsIDE3IE1hciAyMDI2IDAzOjIzOjM4ICswNzAwClN1YmplY3Q6IFtQQVRD SCB2MjkgNS81XSBEb2N1bWVudGF0aW9uIGZvciBwYXJhbGxlbCBhdXRvdmFjdXVtCgotLS0KIGRv Yy9zcmMvc2dtbC9jb25maWcuc2dtbCAgICAgICAgICAgfCAxOCArKysrKysrKysrKysrKysrKysK IGRvYy9zcmMvc2dtbC9tYWludGVuYW5jZS5zZ21sICAgICAgfCAxMiArKysrKysrKysrKysKIGRv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwgfCAyMSArKysrKysrKysrKysrKysrKysr KysKIDMgZmlsZXMgY2hhbmdlZCwgNTEgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RvYy9z cmMvc2dtbC9jb25maWcuc2dtbCBiL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbAppbmRleCA4Y2Rk ODI2ZmJkMy4uNzc0MTc5NmM2YjAgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9jb25maWcuc2dt bAorKysgYi9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKQEAgLTI5MTgsNiArMjkxOCw3IEBAIGlu Y2x1ZGVfZGlyICdjb25mLmQnCiAgICAgICAgIDxwYXJhPgogICAgICAgICAgV2hlbiBjaGFuZ2lu ZyB0aGlzIHZhbHVlLCBjb25zaWRlciBhbHNvIGFkanVzdGluZwogICAgICAgICAgPHhyZWYgbGlu a2VuZD0iZ3VjLW1heC1wYXJhbGxlbC13b3JrZXJzIi8+LAorICAgICAgICAgPHhyZWYgbGlua2Vu ZD0iZ3VjLWF1dG92YWN1dW0tbWF4LXBhcmFsbGVsLXdvcmtlcnMiLz4sCiAgICAgICAgICA8eHJl ZiBsaW5rZW5kPSJndWMtbWF4LXBhcmFsbGVsLW1haW50ZW5hbmNlLXdvcmtlcnMiLz4sIGFuZAog ICAgICAgICAgPHhyZWYgbGlua2VuZD0iZ3VjLW1heC1wYXJhbGxlbC13b3JrZXJzLXBlci1nYXRo ZXIiLz4uCiAgICAgICAgIDwvcGFyYT4KQEAgLTkzOTUsNiArOTM5NiwyMyBAQCBDT1BZIHBvc3Rn cmVzX2xvZyBGUk9NICcvZnVsbC9wYXRoL3RvL2xvZ2ZpbGUuY3N2JyBXSVRIIGNzdjsKICAgICAg ICA8L2xpc3RpdGVtPgogICAgICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgICAgIDx2YXJsaXN0ZW50 cnkgaWQ9Imd1Yy1hdXRvdmFjdXVtLW1heC1wYXJhbGxlbC13b3JrZXJzIiB4cmVmbGFiZWw9ImF1 dG92YWN1dW1fbWF4X3BhcmFsbGVsX3dvcmtlcnMiPgorICAgICAgICA8dGVybT48dmFybmFtZT5h dXRvdmFjdXVtX21heF9wYXJhbGxlbF93b3JrZXJzPC92YXJuYW1lPiAoPHR5cGU+aW50ZWdlcjwv dHlwZT4pCisgICAgICAgIDxpbmRleHRlcm0+CisgICAgICAgICA8cHJpbWFyeT48dmFybmFtZT5h dXRvdmFjdXVtX21heF9wYXJhbGxlbF93b3JrZXJzPC92YXJuYW1lPjwvcHJpbWFyeT4KKyAgICAg ICAgIDxzZWNvbmRhcnk+Y29uZmlndXJhdGlvbiBwYXJhbWV0ZXI8L3NlY29uZGFyeT4KKyAgICAg ICAgPC9pbmRleHRlcm0+CisgICAgICAgIDwvdGVybT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAg ICAgICAgPHBhcmE+CisgICAgICAgICAgU2V0cyB0aGUgbWF4aW11bSBudW1iZXIgb2YgcGFyYWxs ZWwgYXV0b3ZhY3V1bSB3b3JrZXJzIHRoYXQKKyAgICAgICAgICBjYW4gYmUgdXNlZCBmb3IgcGFy YWxsZWwgaW5kZXggdmFjdXVtaW5nIGF0IG9uZSB0aW1lIGJ5IGEgc2luZ2xlCisgICAgICAgICAg YXV0b3ZhY3V1bSB3b3JrZXIuIElzIGNhcHBlZCBieSA8eHJlZiBsaW5rZW5kPSJndWMtbWF4LXBh cmFsbGVsLXdvcmtlcnMiLz4uCisgICAgICAgICAgVGhlIGRlZmF1bHQgaXMgMi4KKyAgICAgICAg IDwvcGFyYT4KKyAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisKICAg ICAgPC92YXJpYWJsZWxpc3Q+CiAgICAgPC9zZWN0Mj4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9z Z21sL21haW50ZW5hbmNlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvbWFpbnRlbmFuY2Uuc2dtbAppbmRl eCA3Yzk1OGIwNjI3My4uZjJhMjgwZGI1NjkgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9tYWlu dGVuYW5jZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9tYWludGVuYW5jZS5zZ21sCkBAIC05MjYs NiArOTI2LDE4IEBAIEhJTlQ6ICBFeGVjdXRlIGEgZGF0YWJhc2Utd2lkZSBWQUNVVU0gaW4gdGhh dCBkYXRhYmFzZS4KICAgICBhdXRvdmFjdXVtIHdvcmtlcnMnIGFjdGl2aXR5LgogICAgPC9wYXJh PgogCisgICA8cGFyYT4KKyAgICBJZiBhbiBhdXRvdmFjdXVtIHdvcmtlciBwcm9jZXNzIGNvbWVz IGFjcm9zcyBhIHRhYmxlIHdpdGggdGhlIGVuYWJsZWQKKyAgICA8eHJlZiBsaW5rZW5kPSJyZWxv cHRpb24tYXV0b3ZhY3V1bS1wYXJhbGxlbC13b3JrZXJzIi8+IHN0b3JhZ2UgcGFyYW1ldGVyLAor ICAgIGl0IHdpbGwgbGF1bmNoIHBhcmFsbGVsIHdvcmtlcnMgaW4gb3JkZXIgdG8gdmFjdXVtIGlu ZGV4ZXMgb2YgdGhpcyB0YWJsZQorICAgIGluIGEgcGFyYWxsZWwgbW9kZS4gUGFyYWxsZWwgd29y a2VycyBhcmUgdGFrZW4gZnJvbSB0aGUgcG9vbCBvZiBwcm9jZXNzZXMKKyAgICBlc3RhYmxpc2hl ZCBieSA8eHJlZiBsaW5rZW5kPSJndWMtbWF4LXdvcmtlci1wcm9jZXNzZXMiLz4sIGxpbWl0ZWQg YnkKKyAgICA8eHJlZiBsaW5rZW5kPSJndWMtbWF4LXBhcmFsbGVsLXdvcmtlcnMiLz4uCisgICAg VGhlIG51bWJlciBvZiBwYXJhbGxlbCB3b3JrZXJzIHRoYXQgY2FuIGJlIHRha2VuIGZyb20gcG9v bCBieSBhIHNpbmdsZQorICAgIGF1dG92YWN1dW0gd29ya2VyIGlzIGxpbWl0ZWQgYnkgdGhlIDx4 cmVmIGxpbmtlbmQ9Imd1Yy1hdXRvdmFjdXVtLW1heC1wYXJhbGxlbC13b3JrZXJzIi8+CisgICAg Y29uZmlndXJhdGlvbiBwYXJhbWV0ZXIuCisgICA8L3BhcmE+CisKICAgIDxwYXJhPgogICAgIElm IHNldmVyYWwgbGFyZ2UgdGFibGVzIGFsbCBiZWNvbWUgZWxpZ2libGUgZm9yIHZhY3V1bWluZyBp biBhIHNob3J0CiAgICAgYW1vdW50IG9mIHRpbWUsIGFsbCBhdXRvdmFjdXVtIHdvcmtlcnMgbWln aHQgYmVjb21lIG9jY3VwaWVkIHdpdGgKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3Jl YXRlX3RhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21sCmluZGV4 IDk4MjUzMmZlNzI1Li5lMzY3MzEwYTU3MSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9j cmVhdGVfdGFibGUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21s CkBAIC0xNzE4LDYgKzE3MTgsMjcgQEAgV0lUSCAoIE1PRFVMVVMgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPm51bWVyaWNfbGl0ZXJhbDwvcmVwbGFjZWFibGU+LCBSRU0KICAgICA8L2xp c3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgPHZhcmxpc3RlbnRyeSBpZD0icmVsb3B0 aW9uLWF1dG92YWN1dW0tcGFyYWxsZWwtd29ya2VycyIgeHJlZmxhYmVsPSJhdXRvdmFjdXVtX3Bh cmFsbGVsX3dvcmtlcnMiPgorICAgIDx0ZXJtPjxsaXRlcmFsPmF1dG92YWN1dW1fcGFyYWxsZWxf d29ya2VyczwvbGl0ZXJhbD4gKDx0eXBlPmludGVnZXI8L3R5cGU+KQorICAgIDxpbmRleHRlcm0+ CisgICAgIDxwcmltYXJ5Pjx2YXJuYW1lPmF1dG92YWN1dW1fcGFyYWxsZWxfd29ya2VyczwvdmFy bmFtZT4gc3RvcmFnZSBwYXJhbWV0ZXI8L3ByaW1hcnk+CisgICAgPC9pbmRleHRlcm0+CisgICAg PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBTZXRzIHRoZSBtYXhp bXVtIG51bWJlciBvZiBwYXJhbGxlbCBhdXRvdmFjdXVtIHdvcmtlcnMgdGhhdCBjYW4gcHJvY2Vz cworICAgICAgaW5kZXhlcyBvZiB0aGlzIHRhYmxlLgorICAgICAgVGhlIGRlZmF1bHQgdmFsdWUg aXMgMCwgd2hpY2ggbWVhbnMgbm8gcGFyYWxsZWwgaW5kZXggdmFjdXVtaW5nIGZvcgorICAgICAg dGhpcyB0YWJsZS4gSWYgdmFsdWUgaXMgLTEgdGhlbiBwYXJhbGxlbCBkZWdyZWUgd2lsbCBjb21w dXRlZCBiYXNlZCBvbgorICAgICAgbnVtYmVyIG9mIGluZGV4ZXMgYW5kIGxpbWl0ZWQgYnkgdGhl IDx4cmVmIGxpbmtlbmQ9Imd1Yy1hdXRvdmFjdXVtLW1heC1wYXJhbGxlbC13b3JrZXJzIi8+Cisg ICAgICBwYXJhbWV0ZXIuCisgICAgICBOb3RlIHRoYXQgdGhlIGNvbXB1dGVkIG51bWJlciBvZiB3 b3JrZXJzIG1heSBub3QgYWN0dWFsbHkgYmUgYXZhaWxhYmxlIGF0CisgICAgICBydW4gdGltZS4g SWYgdGhpcyBvY2N1cnMsIHRoZSBhdXRvdmFjdXVtIHdpbGwgcnVuIHdpdGggZmV3ZXIgd29ya2Vy cworICAgICAgdGhhbiBleHBlY3RlZC4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+Cisg ICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgPHZhcmxpc3RlbnRyeSBpZD0icmVsb3B0aW9uLWF1dG92 YWN1dW0tdmFjdXVtLXRocmVzaG9sZCIgeHJlZmxhYmVsPSJhdXRvdmFjdXVtX3ZhY3V1bV90aHJl c2hvbGQiPgogICAgIDx0ZXJtPjxsaXRlcmFsPmF1dG92YWN1dW1fdmFjdXVtX3RocmVzaG9sZDwv bGl0ZXJhbD4sIDxsaXRlcmFsPnRvYXN0LmF1dG92YWN1dW1fdmFjdXVtX3RocmVzaG9sZDwvbGl0 ZXJhbD4gKDx0eXBlPmludGVnZXI8L3R5cGU+KQogICAgIDxpbmRleHRlcm0+Ci0tIAoyLjQzLjAK Cg== --000000000000982b9b064d490276 Content-Type: text/x-patch; charset="US-ASCII"; name="v29-0003-Cost-based-parameters-propagation-for-parallel-a.patch" Content-Disposition: attachment; filename="v29-0003-Cost-based-parameters-propagation-for-parallel-a.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmvttllx2 RnJvbSBjYmUwZWEwOGQ3MDBmMTQxYTUwNzE3MjgzYjI4NzQ1Nzk2MWYzZWIzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5paWwgRGF2aWRvdiA8ZC5kYXZ5ZG92QHBvc3RncmVzcHJv LnJ1PgpEYXRlOiBUaHUsIDE1IEphbiAyMDI2IDIzOjE1OjQ4ICswNzAwClN1YmplY3Q6IFtQQVRD SCB2MjkgMy81XSBDb3N0IGJhc2VkIHBhcmFtZXRlcnMgcHJvcGFnYXRpb24gZm9yIHBhcmFsbGVs CiBhdXRvdmFjdXVtCgotLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bS5jICAgICAgICAg fCAgMjEgKysrLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYyB8IDE2MyAr KysrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9hdXRvdmFj dXVtLmMgICB8ICAgMiArLQogc3JjL2luY2x1ZGUvY29tbWFuZHMvdmFjdXVtLmggICAgICAgICB8 ICAgMiArCiBzcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCAgICAgIHwgICAxICsKIDUg ZmlsZXMgY2hhbmdlZCwgMTg2IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtLmMgYi9zcmMvYmFja2VuZC9jb21tYW5k cy92YWN1dW0uYwppbmRleCBiY2UzYTJkYWEyNC4uMWI1YmEzY2UxZWYgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Zh Y3V1bS5jCkBAIC0yNDM1LDggKzI0MzUsMTkgQEAgdmFjdXVtX2RlbGF5X3BvaW50KGJvb2wgaXNf YW5hbHl6ZSkKIAkvKiBBbHdheXMgY2hlY2sgZm9yIGludGVycnVwdHMgKi8KIAlDSEVDS19GT1Jf SU5URVJSVVBUUygpOwogCi0JaWYgKEludGVycnVwdFBlbmRpbmcgfHwKLQkJKCFWYWN1dW1Db3N0 QWN0aXZlICYmICFDb25maWdSZWxvYWRQZW5kaW5nKSkKKwlpZiAoSW50ZXJydXB0UGVuZGluZykK KwkJcmV0dXJuOworCisJaWYgKElzUGFyYWxsZWxXb3JrZXIoKSkKKwl7CisJCS8qCisJCSAqIFVw ZGF0ZSBjb3N0LWJhc2VkIHZhY3V1bSBkZWxheSBwYXJhbWV0ZXJzIGZvciBhIHBhcmFsbGVsIGF1 dG92YWN1dW0KKwkJICogd29ya2VyIGlmIGFueSBjaGFuZ2VzIGFyZSBkZXRlY3RlZC4KKwkJICov CisJCXBhcmFsbGVsX3ZhY3V1bV91cGRhdGVfc2hhcmVkX2RlbGF5X3BhcmFtcygpOworCX0KKwor CWlmICghVmFjdXVtQ29zdEFjdGl2ZSAmJiAhQ29uZmlnUmVsb2FkUGVuZGluZykKIAkJcmV0dXJu OwogCiAJLyoKQEAgLTI0NTAsNiArMjQ2MSwxMiBAQCB2YWN1dW1fZGVsYXlfcG9pbnQoYm9vbCBp c19hbmFseXplKQogCQlDb25maWdSZWxvYWRQZW5kaW5nID0gZmFsc2U7CiAJCVByb2Nlc3NDb25m aWdGaWxlKFBHQ19TSUdIVVApOwogCQlWYWN1dW1VcGRhdGVDb3N0cygpOworCisJCS8qCisJCSAq IFByb3BhZ2F0ZSBjb3N0LWJhc2VkIHZhY3V1bSBkZWxheSBwYXJhbWV0ZXJzIHRvIHNoYXJlZCBt ZW1vcnkgaWYKKwkJICogYW55IG9mIHRoZW0gaGF2ZSBjaGFuZ2VkIGR1cmluZyB0aGUgY29uZmln IHJlbG9hZC4KKwkJICovCisJCXBhcmFsbGVsX3ZhY3V1bV9wcm9wYWdhdGVfc2hhcmVkX2RlbGF5 X3BhcmFtcygpOwogCX0KIAogCS8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy92 YWN1dW1wYXJhbGxlbC5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYwpp bmRleCBiN2ZmZDg1NDAwOS4uOThhZWI2NmVlYzQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVt cGFyYWxsZWwuYwpAQCAtMTgsNiArMTgsMTMgQEAKICAqIHRoZSBwYXJhbGxlbCBjb250ZXh0IGlz IHJlLWluaXRpYWxpemVkIHNvIHRoYXQgdGhlIHNhbWUgRFNNIGNhbiBiZSB1c2VkIGZvcgogICog bXVsdGlwbGUgcGFzc2VzIG9mIGluZGV4IGJ1bGstZGVsZXRpb24gYW5kIGluZGV4IGNsZWFudXAu CiAgKgorICogRm9yIHBhcmFsbGVsIGF1dG92YWN1dW0sIHdlIG5lZWQgdG8gcHJvcGFnYXRlIGNv c3QtYmFzZWQgdmFjdXVtIGRlbGF5CisgKiBwYXJhbWV0ZXJzIGZyb20gdGhlIGxlYWRlciB0byBp dHMgd29ya2VycywgYXMgdGhlIGxlYWRlcidzIHBhcmFtZXRlcnMgY2FuCisgKiBjaGFuZ2UgZXZl biB3aGlsZSBwcm9jZXNzaW5nIGEgdGFibGUgKGUuZy4sIGR1ZSB0byBhIGNvbmZpZyByZWxvYWQp LgorICogVGhlIFBWU2hhcmVkQ29zdFBhcmFtcyBzdHJ1Y3QgbWFuYWdlcyB0aGVzZSBwYXJhbWV0 ZXJzIHVzaW5nIGEKKyAqIGdlbmVyYXRpb24gY291bnRlci4gRWFjaCBwYXJhbGxlbCB3b3JrZXIg cG9sbHMgdGhpcyBzaGFyZWQgc3RhdGUgYW5kCisgKiByZWZyZXNoZXMgaXRzIGxvY2FsIGRlbGF5 IHBhcmFtZXRlcnMgd2hlbmV2ZXIgYSBjaGFuZ2UgaXMgZGV0ZWN0ZWQuCisgKgogICogUG9ydGlv bnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjYsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50 IEdyb3VwCiAgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVu aXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQogICoKQEAgLTUzLDYgKzYwLDMxIEBACiAjZGVmaW5lIFBB UkFMTEVMX1ZBQ1VVTV9LRVlfV0FMX1VTQUdFCQk0CiAjZGVmaW5lIFBBUkFMTEVMX1ZBQ1VVTV9L RVlfSU5ERVhfU1RBVFMJCTUKIAorLyoKKyAqIFN0cnVjdCBmb3IgY29zdC1iYXNlZCB2YWN1dW0g ZGVsYXkgcmVsYXRlZCBwYXJhbWV0ZXJzIHRvIHNoYXJlIGFtb25nIGFuCisgKiBhdXRvdmFjdXVt IHdvcmtlciBhbmQgaXRzIHBhcmFsbGVsIHZhY3V1bSB3b3JrZXJzLgorICovCit0eXBlZGVmIHN0 cnVjdCBQVlNoYXJlZENvc3RQYXJhbXMKK3sKKwkvKgorCSAqIFRoZSBnZW5lcmF0aW9uIGNvdW50 ZXIgaXMgaW5jcmVtZW50ZWQgYnkgdGhlIGxlYWRlciBwcm9jZXNzIGVhY2ggdGltZQorCSAqIGl0 IHVwZGF0ZXMgdGhlIHNoYXJlZCBjb3N0LWJhc2VkIHZhY3V1bSBkZWxheSBwYXJhbWV0ZXJzLiBQ YXJhbGVsbAorCSAqIHZhY3V1bSB3b3JrZXJzIGNvbXBhcmVzIGl0IHdpdGggdGhlaXIgbG9jYWwg Z2VuZXJhdGlvbiwKKwkgKiBzaGFyZWRfcGFyYW1zX2dlbmVyYXRpb25fbG9jYWwsIHRvIGRldGVj dCB3aGV0aGVyIHRoZXkgbmVlZCB0byByZWZyZXNoCisJICogdGhlaXIgbG9jYWwgcGFyYW1ldGVy cy4KKwkgKi8KKwlwZ19hdG9taWNfdWludDMyIGdlbmVyYXRpb247CisKKwlzbG9ja190CQltdXRl eDsJCQkvKiBwcm90ZWN0cyBhbGwgZmllbGRzIGJlbG93ICovCisKKwkvKiBQYXJhbWV0ZXJzIHRv IHNoYXJlIHdpdGggcGFyYWxsZWwgd29ya2VycyAqLworCWRvdWJsZQkJY29zdF9kZWxheTsKKwlp bnQJCQljb3N0X2xpbWl0OworCWludAkJCWNvc3RfcGFnZV9kaXJ0eTsKKwlpbnQJCQljb3N0X3Bh Z2VfaGl0OworCWludAkJCWNvc3RfcGFnZV9taXNzOworfSBQVlNoYXJlZENvc3RQYXJhbXM7CisK IC8qCiAgKiBTaGFyZWQgaW5mb3JtYXRpb24gYW1vbmcgcGFyYWxsZWwgd29ya2Vycy4gIFNvIHRo aXMgaXMgYWxsb2NhdGVkIGluIHRoZSBEU00KICAqIHNlZ21lbnQuCkBAIC0xMjIsNiArMTU0LDE4 IEBAIHR5cGVkZWYgc3RydWN0IFBWU2hhcmVkCiAKIAkvKiBTdGF0aXN0aWNzIG9mIHNoYXJlZCBk ZWFkIGl0ZW1zICovCiAJVmFjRGVhZEl0ZW1zSW5mbyBkZWFkX2l0ZW1zX2luZm87CisKKwkvKgor CSAqIElmICd0cnVlJyB0aGVuIHdlIGFyZSBydW5uaW5nIHBhcmFsbGVsIGF1dG92YWN1dW0uIE90 aGVyd2lzZSwgd2UgYXJlCisJICogcnVubmluZyBwYXJhbGxlbCBtYWludGVuZW5jZSBWQUNVVU0u CisJICovCisJYm9vbAkJaXNfYXV0b3ZhY3V1bTsKKworCS8qCisJICogU3RydWN0IGZvciBzeW5j aW5nIGNvc3QtYmFzZWQgdmFjdXVtIGRlbGF5IHBhcmFtZXRlcnMgYmV0d2VlbgorCSAqIHN1cHBv cnRpdmUgcGFyYWxsZWwgYXV0b3ZhY3V1bSB3b3JrZXJzIHdpdGggbGVhZGVyIHdvcmtlci4KKwkg Ki8KKwlQVlNoYXJlZENvc3RQYXJhbXMgY29zdF9wYXJhbXM7CiB9IFBWU2hhcmVkOwogCiAvKiBT dGF0dXMgdXNlZCBkdXJpbmcgcGFyYWxsZWwgaW5kZXggdmFjdXVtIG9yIGNsZWFudXAgKi8KQEAg LTIyNCw2ICsyNjgsMTEgQEAgc3RydWN0IFBhcmFsbGVsVmFjdXVtU3RhdGUKIAlQVkluZFZhY1N0 YXR1cyBzdGF0dXM7CiB9OwogCitzdGF0aWMgUFZTaGFyZWRDb3N0UGFyYW1zICpwdl9zaGFyZWRf Y29zdF9wYXJhbXMgPSBOVUxMOworCisvKiBTZWUgY29tbWVudHMgaW4gdGhlIFBWU2hhcmVkQ29z dFBhcmFtcyBmb3IgdGhlIGRldGFpbHMgKi8KK3N0YXRpYyB1aW50MzIgc2hhcmVkX3BhcmFtc19n ZW5lcmF0aW9uX2xvY2FsID0gMDsKKwogc3RhdGljIGludAlwYXJhbGxlbF92YWN1dW1fY29tcHV0 ZV93b3JrZXJzKFJlbGF0aW9uICppbmRyZWxzLCBpbnQgbmluZGV4ZXMsIGludCBucmVxdWVzdGVk LAogCQkJCQkJCQkJCQlib29sICp3aWxsX3BhcmFsbGVsX3ZhY3V1bSk7CiBzdGF0aWMgdm9pZCBw YXJhbGxlbF92YWN1dW1fcHJvY2Vzc19hbGxfaW5kZXhlcyhQYXJhbGxlbFZhY3V1bVN0YXRlICpw dnMsIGludCBudW1faW5kZXhfc2NhbnMsCkBAIC0yMzUsNiArMjg0LDcgQEAgc3RhdGljIHZvaWQg cGFyYWxsZWxfdmFjdXVtX3Byb2Nlc3Nfb25lX2luZGV4KFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2 cywgUmVsYXRpb24KIHN0YXRpYyBib29sIHBhcmFsbGVsX3ZhY3V1bV9pbmRleF9pc19wYXJhbGxl bF9zYWZlKFJlbGF0aW9uIGluZHJlbCwgaW50IG51bV9pbmRleF9zY2FucywKIAkJCQkJCQkJCQkJ CSAgIGJvb2wgdmFjdXVtKTsKIHN0YXRpYyB2b2lkIHBhcmFsbGVsX3ZhY3V1bV9lcnJvcl9jYWxs YmFjayh2b2lkICphcmcpOworc3RhdGljIGlubGluZSB2b2lkIHBhcmFsbGVsX3ZhY3V1bV9zZXRf Y29zdF9wYXJhbWV0ZXJzKFBWU2hhcmVkQ29zdFBhcmFtcyAqcGFyYW1zKTsKIAogLyoKICAqIFRy eSB0byBlbnRlciBwYXJhbGxlbCBtb2RlIGFuZCBjcmVhdGUgYSBwYXJhbGxlbCBjb250ZXh0LiAg VGhlbiBpbml0aWFsaXplCkBAIC0zOTUsNiArNDQ1LDIxIEBAIHBhcmFsbGVsX3ZhY3V1bV9pbml0 KFJlbGF0aW9uIHJlbCwgUmVsYXRpb24gKmluZHJlbHMsIGludCBuaW5kZXhlcywKIAlwZ19hdG9t aWNfaW5pdF91MzIoJihzaGFyZWQtPmFjdGl2ZV9ud29ya2VycyksIDApOwogCXBnX2F0b21pY19p bml0X3UzMigmKHNoYXJlZC0+aWR4KSwgMCk7CiAKKwlzaGFyZWQtPmlzX2F1dG92YWN1dW0gPSBB bUF1dG9WYWN1dW1Xb3JrZXJQcm9jZXNzKCk7CisKKwkvKgorCSAqIEluaXRpYWxpemUgc2hhcmVk IGNvc3QtYmFzZWQgdmFjdXVtIGRlbGF5IHBhcmFtZXRlcnMgaWYgaXQncyBmb3IKKwkgKiBhdXRv dmFjdXVtLgorCSAqLworCWlmIChzaGFyZWQtPmlzX2F1dG92YWN1dW0pCisJeworCQlwYXJhbGxl bF92YWN1dW1fc2V0X2Nvc3RfcGFyYW1ldGVycygmc2hhcmVkLT5jb3N0X3BhcmFtcyk7CisJCXBn X2F0b21pY19pbml0X3UzMigmc2hhcmVkLT5jb3N0X3BhcmFtcy5nZW5lcmF0aW9uLCAwKTsKKwkJ U3BpbkxvY2tJbml0KCZzaGFyZWQtPmNvc3RfcGFyYW1zLm11dGV4KTsKKworCQlwdl9zaGFyZWRf Y29zdF9wYXJhbXMgPSAmKHNoYXJlZC0+Y29zdF9wYXJhbXMpOworCX0KKwogCXNobV90b2NfaW5z ZXJ0KHBjeHQtPnRvYywgUEFSQUxMRUxfVkFDVVVNX0tFWV9TSEFSRUQsIHNoYXJlZCk7CiAJcHZz LT5zaGFyZWQgPSBzaGFyZWQ7CiAKQEAgLTQ2MCw2ICs1MjUsOSBAQCBwYXJhbGxlbF92YWN1dW1f ZW5kKFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2cywgSW5kZXhCdWxrRGVsZXRlUmVzdWx0ICoqaXN0 YXRzKQogCURlc3Ryb3lQYXJhbGxlbENvbnRleHQocHZzLT5wY3h0KTsKIAlFeGl0UGFyYWxsZWxN b2RlKCk7CiAKKwlpZiAoQW1BdXRvVmFjdXVtV29ya2VyUHJvY2VzcygpKQorCQlwdl9zaGFyZWRf Y29zdF9wYXJhbXMgPSBOVUxMOworCiAJcGZyZWUocHZzLT53aWxsX3BhcmFsbGVsX3ZhY3V1bSk7 CiAJcGZyZWUocHZzKTsKIH0KQEAgLTUzNyw2ICs2MDUsOTUgQEAgcGFyYWxsZWxfdmFjdXVtX2Ns ZWFudXBfYWxsX2luZGV4ZXMoUGFyYWxsZWxWYWN1dW1TdGF0ZSAqcHZzLCBsb25nIG51bV90YWJs ZV90dXAKIAlwYXJhbGxlbF92YWN1dW1fcHJvY2Vzc19hbGxfaW5kZXhlcyhwdnMsIG51bV9pbmRl eF9zY2FucywgZmFsc2UsIHdzdGF0cyk7CiB9CiAKKy8qCisgKiBGaWxsIGluIHRoZSBnaXZlbiBz dHJ1Y3R1cmUgd2l0aCBjb3N0LWJhc2VkIHZhY3V1bSBkZWxheSBwYXJhbWV0ZXIgdmFsdWVzLgor ICovCitzdGF0aWMgaW5saW5lIHZvaWQKK3BhcmFsbGVsX3ZhY3V1bV9zZXRfY29zdF9wYXJhbWV0 ZXJzKFBWU2hhcmVkQ29zdFBhcmFtcyAqcGFyYW1zKQoreworCXBhcmFtcy0+Y29zdF9kZWxheSA9 IHZhY3V1bV9jb3N0X2RlbGF5OworCXBhcmFtcy0+Y29zdF9saW1pdCA9IHZhY3V1bV9jb3N0X2xp bWl0OworCXBhcmFtcy0+Y29zdF9wYWdlX2RpcnR5ID0gVmFjdXVtQ29zdFBhZ2VEaXJ0eTsKKwlw YXJhbXMtPmNvc3RfcGFnZV9oaXQgPSBWYWN1dW1Db3N0UGFnZUhpdDsKKwlwYXJhbXMtPmNvc3Rf cGFnZV9taXNzID0gVmFjdXVtQ29zdFBhZ2VNaXNzOworfQorCisvKgorICogVXBkYXRlcyB0aGUg Y29zdC1iYXNlZCB2YWN1dW0gZGVsYXkgcGFyYW1ldGVycyBmb3IgcGFyYWxsZWwgYXV0b3ZhY3V1 bQorICogd29ya2Vycy4KKyAqCisgKiBGb3Igbm9uLWF1dG92YWN1dW0gcGFyYWxsZWwgd29ya2Vy IHRoaXMgZnVuY3Rpb24gd2lsbCBoYXZlIG5vIGVmZmVjdC4KKyAqLwordm9pZAorcGFyYWxsZWxf dmFjdXVtX3VwZGF0ZV9zaGFyZWRfZGVsYXlfcGFyYW1zKHZvaWQpCit7CisJdWludDMyCQlwYXJh bXNfZ2VuZXJhdGlvbjsKKworCUFzc2VydChJc1BhcmFsbGVsV29ya2VyKCkpOworCisJLyogUXVp Y2sgcmV0dXJuIGlmIHRoZSB3b2tyZXIgaXMgbm90IHJ1bm5pbmcgZm9yIHRoZSBhdXRvdmFjdXVt ICovCisJaWYgKHB2X3NoYXJlZF9jb3N0X3BhcmFtcyA9PSBOVUxMKQorCQlyZXR1cm47CisKKwlw YXJhbXNfZ2VuZXJhdGlvbiA9IHBnX2F0b21pY19yZWFkX3UzMigmcHZfc2hhcmVkX2Nvc3RfcGFy YW1zLT5nZW5lcmF0aW9uKTsKKwlBc3NlcnQoc2hhcmVkX3BhcmFtc19nZW5lcmF0aW9uX2xvY2Fs IDw9IHBhcmFtc19nZW5lcmF0aW9uKTsKKworCS8qIFJldHVybiBpZiBwYXJhbWV0ZXJzIGhhZCBu b3QgY2hhbmdlZCBpbiB0aGUgbGVhZGVyICovCisJaWYgKHBhcmFtc19nZW5lcmF0aW9uID09IHNo YXJlZF9wYXJhbXNfZ2VuZXJhdGlvbl9sb2NhbCkKKwkJcmV0dXJuOworCisJU3BpbkxvY2tBY3F1 aXJlKCZwdl9zaGFyZWRfY29zdF9wYXJhbXMtPm11dGV4KTsKKwlWYWN1dW1Db3N0RGVsYXkgPSBw dl9zaGFyZWRfY29zdF9wYXJhbXMtPmNvc3RfZGVsYXk7CisJVmFjdXVtQ29zdExpbWl0ID0gcHZf c2hhcmVkX2Nvc3RfcGFyYW1zLT5jb3N0X2xpbWl0OworCVZhY3V1bUNvc3RQYWdlRGlydHkgPSBw dl9zaGFyZWRfY29zdF9wYXJhbXMtPmNvc3RfcGFnZV9kaXJ0eTsKKwlWYWN1dW1Db3N0UGFnZUhp dCA9IHB2X3NoYXJlZF9jb3N0X3BhcmFtcy0+Y29zdF9wYWdlX2hpdDsKKwlWYWN1dW1Db3N0UGFn ZU1pc3MgPSBwdl9zaGFyZWRfY29zdF9wYXJhbXMtPmNvc3RfcGFnZV9taXNzOworCVNwaW5Mb2Nr UmVsZWFzZSgmcHZfc2hhcmVkX2Nvc3RfcGFyYW1zLT5tdXRleCk7CisKKwlWYWN1dW1VcGRhdGVD b3N0cygpOworCisJc2hhcmVkX3BhcmFtc19nZW5lcmF0aW9uX2xvY2FsID0gcGFyYW1zX2dlbmVy YXRpb247Cit9CisKKy8qCisgKiBTdG9yZSB0aGUgY29zdC1iYXNlZCB2YWN1dW0gZGVsYXkgcGFy YW1ldGVycyBpbiB0aGUgc2hhcmVkIG1lbW9yeSBzbyB0aGF0CisgKiBwYXJhbGxlbCB2YWN1dW0g d29ya2VycyBjYW4gY29uc3VtZSB0aGVtIChzZWUKKyAqIHBhcmFsbGVsX3ZhY3V1bV91cGRhdGVf c2hhcmVkX2RlbGF5X3BhcmFtcygpKS4KKyAqLwordm9pZAorcGFyYWxsZWxfdmFjdXVtX3Byb3Bh Z2F0ZV9zaGFyZWRfZGVsYXlfcGFyYW1zKHZvaWQpCit7CisJQXNzZXJ0KEFtQXV0b1ZhY3V1bVdv cmtlclByb2Nlc3MoKSk7CisKKwkvKgorCSAqIFF1aWNrIHJldHVybiBpZiB0aGUgbGVhZGVyIHBy b2Nlc3MgaXMgbm90IHNoYXJpbmcgdGhlIGRlbGF5IHBhcmFtZXRlcnMuCisJICovCisJaWYgKHB2 X3NoYXJlZF9jb3N0X3BhcmFtcyA9PSBOVUxMKQorCQlyZXR1cm47CisKKwkvKgorCSAqIENoZWNr IGlmIGFueSBkZWxheSBwYXJhbWV0ZXJzIGhhcyBjaGFuZ2VkLiBXZSBjYW4gcmVhZCB0aGVtIHdp dGhvdXQKKwkgKiBsb2NrcyBhcyBvbmx5IHRoZSBsZWFkZXIgY2FuIG1vZGlmeSB0aGVtLgorCSAq LworCWlmICh2YWN1dW1fY29zdF9kZWxheSA9PSBwdl9zaGFyZWRfY29zdF9wYXJhbXMtPmNvc3Rf ZGVsYXkgJiYKKwkJdmFjdXVtX2Nvc3RfbGltaXQgPT0gcHZfc2hhcmVkX2Nvc3RfcGFyYW1zLT5j b3N0X2xpbWl0ICYmCisJCVZhY3V1bUNvc3RQYWdlRGlydHkgPT0gcHZfc2hhcmVkX2Nvc3RfcGFy YW1zLT5jb3N0X3BhZ2VfZGlydHkgJiYKKwkJVmFjdXVtQ29zdFBhZ2VIaXQgPT0gcHZfc2hhcmVk X2Nvc3RfcGFyYW1zLT5jb3N0X3BhZ2VfaGl0ICYmCisJCVZhY3V1bUNvc3RQYWdlTWlzcyA9PSBw dl9zaGFyZWRfY29zdF9wYXJhbXMtPmNvc3RfcGFnZV9taXNzKQorCQlyZXR1cm47CisKKwkvKiBV cGRhdGUgdGhlIHNoYXJlZCBkZWxheSBwYXJhbWV0ZXJzICovCisJU3BpbkxvY2tBY3F1aXJlKCZw dl9zaGFyZWRfY29zdF9wYXJhbXMtPm11dGV4KTsKKwlwYXJhbGxlbF92YWN1dW1fc2V0X2Nvc3Rf cGFyYW1ldGVycyhwdl9zaGFyZWRfY29zdF9wYXJhbXMpOworCVNwaW5Mb2NrUmVsZWFzZSgmcHZf c2hhcmVkX2Nvc3RfcGFyYW1zLT5tdXRleCk7CisKKwkvKgorCSAqIEluY3JlbWVudCB0aGUgZ2Vu ZXJhdGlvbiBvZiB0aGUgcGFyYW1ldGVycywgaS5lLiBsZXQgcGFyYWxsZWwgd29ya2VycworCSAq IGtub3cgdGhhdCB0aGV5IHNob3VsZCByZS1yZWFkIHNoYXJlZCBjb3N0IHBhcmFtcy4KKwkgKi8K KwlwZ19hdG9taWNfZmV0Y2hfYWRkX3UzMigmcHZfc2hhcmVkX2Nvc3RfcGFyYW1zLT5nZW5lcmF0 aW9uLCAxKTsKK30KKwogLyoKICAqIENvbXB1dGUgdGhlIG51bWJlciBvZiBwYXJhbGxlbCB3b3Jr ZXIgcHJvY2Vzc2VzIHRvIHJlcXVlc3QuICBCb3RoIGluZGV4CiAgKiB2YWN1dW0gYW5kIGluZGV4 IGNsZWFudXAgY2FuIGJlIGV4ZWN1dGVkIHdpdGggcGFyYWxsZWwgd29ya2Vycy4KQEAgLTEwNzgs NiArMTIzNSw5IEBAIHBhcmFsbGVsX3ZhY3V1bV9tYWluKGRzbV9zZWdtZW50ICpzZWcsIHNobV90 b2MgKnRvYykKIAlWYWN1dW1TaGFyZWRDb3N0QmFsYW5jZSA9ICYoc2hhcmVkLT5jb3N0X2JhbGFu Y2UpOwogCVZhY3V1bUFjdGl2ZU5Xb3JrZXJzID0gJihzaGFyZWQtPmFjdGl2ZV9ud29ya2Vycyk7 CiAKKwlpZiAoc2hhcmVkLT5pc19hdXRvdmFjdXVtKQorCQlwdl9zaGFyZWRfY29zdF9wYXJhbXMg PSAmKHNoYXJlZC0+Y29zdF9wYXJhbXMpOworCiAJLyogU2V0IHBhcmFsbGVsIHZhY3V1bSBzdGF0 ZSAqLwogCXB2cy5pbmRyZWxzID0gaW5kcmVsczsKIAlwdnMubmluZGV4ZXMgPSBuaW5kZXhlczsK QEAgLTExMjcsNiArMTI4Nyw5IEBAIHBhcmFsbGVsX3ZhY3V1bV9tYWluKGRzbV9zZWdtZW50ICpz ZWcsIHNobV90b2MgKnRvYykKIAl2YWNfY2xvc2VfaW5kZXhlcyhuaW5kZXhlcywgaW5kcmVscywg Um93RXhjbHVzaXZlTG9jayk7CiAJdGFibGVfY2xvc2UocmVsLCBTaGFyZVVwZGF0ZUV4Y2x1c2l2 ZUxvY2spOwogCUZyZWVBY2Nlc3NTdHJhdGVneShwdnMuYnN0cmF0ZWd5KTsKKworCWlmIChzaGFy ZWQtPmlzX2F1dG92YWN1dW0pCisJCXB2X3NoYXJlZF9jb3N0X3BhcmFtcyA9IE5VTEw7CiB9CiAK IC8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL2F1dG92YWN1dW0uYyBiL3Ny Yy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYXV0b3ZhY3V1bS5jCmluZGV4IGZmNTdkOGZjYTJhLi5hZGNj ZmEwNjc3NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9hdXRvdmFjdXVtLmMK KysrIGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9hdXRvdmFjdXVtLmMKQEAgLTE2NTksNyArMTY1 OSw3IEBAIFZhY3V1bVVwZGF0ZUNvc3RzKHZvaWQpCiAJfQogCWVsc2UKIAl7Ci0JCS8qIE11c3Qg YmUgZXhwbGljaXQgVkFDVVVNIG9yIEFOQUxZWkUgKi8KKwkJLyogTXVzdCBiZSBleHBsaWNpdCBW QUNVVU0gb3IgQU5BTFlaRSBvciBwYXJhbGxlbCBhdXRvdmFjdXVtIHdvcmtlciAqLwogCQl2YWN1 dW1fY29zdF9kZWxheSA9IFZhY3V1bUNvc3REZWxheTsKIAkJdmFjdXVtX2Nvc3RfbGltaXQgPSBW YWN1dW1Db3N0TGltaXQ7CiAJfQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvdmFj dXVtLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy92YWN1dW0uaAppbmRleCA5NTNhNTA2MTgxZS4u Y2MxNTQ3MzcxMTUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3ZhY3V1bS5oCisr KyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3ZhY3V1bS5oCkBAIC00MjMsNiArNDIzLDggQEAgZXh0 ZXJuIHZvaWQgcGFyYWxsZWxfdmFjdXVtX2NsZWFudXBfYWxsX2luZGV4ZXMoUGFyYWxsZWxWYWN1 dW1TdGF0ZSAqcHZzLAogCQkJCQkJCQkJCQkJaW50IG51bV9pbmRleF9zY2FucywKIAkJCQkJCQkJ CQkJCWJvb2wgZXN0aW1hdGVkX2NvdW50LAogCQkJCQkJCQkJCQkJUFZXb3JrZXJTdGF0cyAqd3N0 YXRzKTsKK2V4dGVybiB2b2lkIHBhcmFsbGVsX3ZhY3V1bV91cGRhdGVfc2hhcmVkX2RlbGF5X3Bh cmFtcyh2b2lkKTsKK2V4dGVybiB2b2lkIHBhcmFsbGVsX3ZhY3V1bV9wcm9wYWdhdGVfc2hhcmVk X2RlbGF5X3BhcmFtcyh2b2lkKTsKIGV4dGVybiB2b2lkIHBhcmFsbGVsX3ZhY3V1bV9tYWluKGRz bV9zZWdtZW50ICpzZWcsIHNobV90b2MgKnRvYyk7CiAKIC8qIGluIGNvbW1hbmRzL2FuYWx5emUu YyAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMv dG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAppbmRleCA0YzIzMGVlMzhjYS4uY2E5OTk1M2Rm MjcgMTAwNjQ0Ci0tLSBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3Ny Yy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CkBAIC0yMDg4LDYgKzIwODgsNyBAQCBQVklu ZFN0YXRzCiBQVkluZFZhY1N0YXR1cwogUFZPSUQKIFBWU2hhcmVkCitQVlNoYXJlZENvc3RQYXJh bXMKIFBWV29ya2VyVXNhZ2UKIFBWV29ya2VyU3RhdHMKIFBYX0FsaWFzCi0tIAoyLjQzLjAKCg== --000000000000982b9b064d490276 Content-Type: text/x-patch; charset="US-ASCII"; name="v29-0002-Parallel-autovacuum.patch" Content-Disposition: attachment; filename="v29-0002-Parallel-autovacuum.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmvttlm93 RnJvbSA4NGIyMjBmOTk4NjYzNDNlZmI1ZDVjZWNlNWIwMzkyMTUzMDQzZjFlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5paWwgRGF2aWRvdiA8ZC5kYXZ5ZG92QHBvc3RncmVzcHJv LnJ1PgpEYXRlOiBUdWUsIDE3IE1hciAyMDI2IDAyOjE4OjA5ICswNzAwClN1YmplY3Q6IFtQQVRD SCB2MjkgMi81XSBQYXJhbGxlbCBhdXRvdmFjdXVtCgotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9j b21tb24vcmVsb3B0aW9ucy5jICAgICAgICB8IDExICsrKysrKysrKysKIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMgICAgICAgICB8IDIwICsrKysrKysrKysrKystLS0tLS0K IHNyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYXV0b3ZhY3V1bS5jICAgICAgICAgICB8IDE0ICsrKysr KysrKysrLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2luaXQvZ2xvYmFscy5jICAgICAgICAgICAgICB8 ICAxICsKIHNyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjLmMgICAgICAgICAgICAgICAgICB8ICA4 ICsrKysrKy0tCiBzcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y19wYXJhbWV0ZXJzLmRhdCAgICAg fCAgOCArKysrKysrKwogc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2Ft cGxlIHwgIDEgKwogc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jICAgICAgICAgICAgICAg IHwgIDEgKwogc3JjL2luY2x1ZGUvbWlzY2FkbWluLmggICAgICAgICAgICAgICAgICAgICAgIHwg IDEgKwogc3JjL2luY2x1ZGUvdXRpbHMvcmVsLmggICAgICAgICAgICAgICAgICAgICAgIHwgIDkg KysrKysrKysrCiAxMCBmaWxlcyBjaGFuZ2VkLCA2NCBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3JlbG9wdGlvbnMu YyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vcmVsb3B0aW9ucy5jCmluZGV4IDIzN2FiOGQw ZWQ5Li4wNTU1ODVjMzhmMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9y ZWxvcHRpb25zLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9yZWxvcHRpb25zLmMK QEAgLTIzNSw2ICsyMzUsMTUgQEAgc3RhdGljIHJlbG9wdF9pbnQgaW50UmVsT3B0c1tdID0KIAkJ fSwKIAkJU1BHSVNUX0RFRkFVTFRfRklMTEZBQ1RPUiwgU1BHSVNUX01JTl9GSUxMRkFDVE9SLCAx MDAKIAl9LAorCXsKKwkJeworCQkJImF1dG92YWN1dW1fcGFyYWxsZWxfd29ya2VycyIsCisJCQki TWF4aW11bSBudW1iZXIgb2YgcGFyYWxsZWwgYXV0b3ZhY3V1bSB3b3JrZXJzIHRoYXQgY2FuIGJl IHVzZWQgZm9yIHByb2Nlc3NpbmcgdGhpcyB0YWJsZS4iLAorCQkJUkVMT1BUX0tJTkRfSEVBUCwK KwkJCVNoYXJlVXBkYXRlRXhjbHVzaXZlTG9jaworCQl9LAorCQkwLCAtMSwgMTAyNAorCX0sCiAJ ewogCQl7CiAJCQkiYXV0b3ZhY3V1bV92YWN1dW1fdGhyZXNob2xkIiwKQEAgLTE5NjgsNiArMTk3 Nyw4IEBAIGRlZmF1bHRfcmVsb3B0aW9ucyhEYXR1bSByZWxvcHRpb25zLCBib29sIHZhbGlkYXRl LCByZWxvcHRfa2luZCBraW5kKQogCQl7ImZpbGxmYWN0b3IiLCBSRUxPUFRfVFlQRV9JTlQsIG9m ZnNldG9mKFN0ZFJkT3B0aW9ucywgZmlsbGZhY3Rvcil9LAogCQl7ImF1dG92YWN1dW1fZW5hYmxl ZCIsIFJFTE9QVF9UWVBFX0JPT0wsCiAJCW9mZnNldG9mKFN0ZFJkT3B0aW9ucywgYXV0b3ZhY3V1 bSkgKyBvZmZzZXRvZihBdXRvVmFjT3B0cywgZW5hYmxlZCl9LAorCQl7ImF1dG92YWN1dW1fcGFy YWxsZWxfd29ya2VycyIsIFJFTE9QVF9UWVBFX0lOVCwKKwkJb2Zmc2V0b2YoU3RkUmRPcHRpb25z LCBhdXRvdmFjdXVtKSArIG9mZnNldG9mKEF1dG9WYWNPcHRzLCBhdXRvdmFjdXVtX3BhcmFsbGVs X3dvcmtlcnMpfSwKIAkJeyJhdXRvdmFjdXVtX3ZhY3V1bV90aHJlc2hvbGQiLCBSRUxPUFRfVFlQ RV9JTlQsCiAJCW9mZnNldG9mKFN0ZFJkT3B0aW9ucywgYXV0b3ZhY3V1bSkgKyBvZmZzZXRvZihB dXRvVmFjT3B0cywgdmFjdXVtX3RocmVzaG9sZCl9LAogCQl7ImF1dG92YWN1dW1fdmFjdXVtX21h eF90aHJlc2hvbGQiLCBSRUxPUFRfVFlQRV9JTlQsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9j b21tYW5kcy92YWN1dW1wYXJhbGxlbC5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFy YWxsZWwuYwppbmRleCA3NzgzNGI5NmEyMS4uYjdmZmQ4NTQwMDkgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFu ZHMvdmFjdXVtcGFyYWxsZWwuYwpAQCAtMSw3ICsxLDkgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog ICoKICAqIHZhY3V1bXBhcmFsbGVsLmMKLSAqCSAgU3VwcG9ydCByb3V0aW5lcyBmb3IgcGFyYWxs ZWwgdmFjdXVtIGV4ZWN1dGlvbi4KKyAqCSAgU3VwcG9ydCByb3V0aW5lcyBmb3IgcGFyYWxsZWwg dmFjdXVtIGFuZCBhdXRvdmFjdXVtIGV4ZWN1dGlvbi4gSW4gdGhlCisgKgkgIGNvbW1lbnRzIGJl bG93LCB0aGUgd29yZCAidmFjdXVtIiB3aWxsIHJlZmVyIHRvIGJvdGggdmFjdXVtIGFuZAorICoJ ICBhdXRvdmFjdXVtLgogICoKICAqIFRoaXMgZmlsZSBjb250YWlucyByb3V0aW5lcyB0aGF0IGFy ZSBpbnRlbmRlZCB0byBzdXBwb3J0IHNldHRpbmcgdXAsIHVzaW5nLAogICogYW5kIHRlYXJpbmcg ZG93biBhIFBhcmFsbGVsVmFjdXVtU3RhdGUuCkBAIC0zNzQsOCArMzc2LDkgQEAgcGFyYWxsZWxf dmFjdXVtX2luaXQoUmVsYXRpb24gcmVsLCBSZWxhdGlvbiAqaW5kcmVscywgaW50IG5pbmRleGVz LAogCXNoYXJlZC0+cXVlcnlpZCA9IHBnc3RhdF9nZXRfbXlfcXVlcnlfaWQoKTsKIAlzaGFyZWQt Pm1haW50ZW5hbmNlX3dvcmtfbWVtX3dvcmtlciA9CiAJCShuaW5kZXhlc19td20gPiAwKSA/Ci0J CW1haW50ZW5hbmNlX3dvcmtfbWVtIC8gTWluKHBhcmFsbGVsX3dvcmtlcnMsIG5pbmRleGVzX213 bSkgOgotCQltYWludGVuYW5jZV93b3JrX21lbTsKKwkJdmFjX3dvcmtfbWVtIC8gTWluKHBhcmFs bGVsX3dvcmtlcnMsIG5pbmRleGVzX213bSkgOgorCQl2YWNfd29ya19tZW07CisKIAlzaGFyZWQt PmRlYWRfaXRlbXNfaW5mby5tYXhfYnl0ZXMgPSB2YWNfd29ya19tZW0gKiAoc2l6ZV90KSAxMDI0 OwogCiAJLyogUHJlcGFyZSBEU0Egc3BhY2UgZm9yIGRlYWQgaXRlbXMgKi8KQEAgLTU1NSwxMiAr NTU4LDE3IEBAIHBhcmFsbGVsX3ZhY3V1bV9jb21wdXRlX3dvcmtlcnMoUmVsYXRpb24gKmluZHJl bHMsIGludCBuaW5kZXhlcywgaW50IG5yZXF1ZXN0ZWQsCiAJaW50CQkJbmluZGV4ZXNfcGFyYWxs ZWxfYnVsa2RlbCA9IDA7CiAJaW50CQkJbmluZGV4ZXNfcGFyYWxsZWxfY2xlYW51cCA9IDA7CiAJ aW50CQkJcGFyYWxsZWxfd29ya2VyczsKKwlpbnQJCQltYXhfd29ya2VyczsKKworCW1heF93b3Jr ZXJzID0gQW1BdXRvVmFjdXVtV29ya2VyUHJvY2VzcygpID8KKwkJYXV0b3ZhY3V1bV9tYXhfcGFy YWxsZWxfd29ya2VycyA6CisJCW1heF9wYXJhbGxlbF9tYWludGVuYW5jZV93b3JrZXJzOwogCiAJ LyoKIAkgKiBXZSBkb24ndCBhbGxvdyBwZXJmb3JtaW5nIHBhcmFsbGVsIG9wZXJhdGlvbiBpbiBz dGFuZGFsb25lIGJhY2tlbmQgb3IKIAkgKiB3aGVuIHBhcmFsbGVsaXNtIGlzIGRpc2FibGVkLgog CSAqLwotCWlmICghSXNVbmRlclBvc3RtYXN0ZXIgfHwgbWF4X3BhcmFsbGVsX21haW50ZW5hbmNl X3dvcmtlcnMgPT0gMCkKKwlpZiAoIUlzVW5kZXJQb3N0bWFzdGVyIHx8IG1heF93b3JrZXJzID09 IDApCiAJCXJldHVybiAwOwogCiAJLyoKQEAgLTU5OSw4ICs2MDcsOCBAQCBwYXJhbGxlbF92YWN1 dW1fY29tcHV0ZV93b3JrZXJzKFJlbGF0aW9uICppbmRyZWxzLCBpbnQgbmluZGV4ZXMsIGludCBu cmVxdWVzdGVkLAogCXBhcmFsbGVsX3dvcmtlcnMgPSAobnJlcXVlc3RlZCA+IDApID8KIAkJTWlu KG5yZXF1ZXN0ZWQsIG5pbmRleGVzX3BhcmFsbGVsKSA6IG5pbmRleGVzX3BhcmFsbGVsOwogCi0J LyogQ2FwIGJ5IG1heF9wYXJhbGxlbF9tYWludGVuYW5jZV93b3JrZXJzICovCi0JcGFyYWxsZWxf d29ya2VycyA9IE1pbihwYXJhbGxlbF93b3JrZXJzLCBtYXhfcGFyYWxsZWxfbWFpbnRlbmFuY2Vf d29ya2Vycyk7CisJLyogQ2FwIGJ5IEdVQyB2YXJpYWJsZSAqLworCXBhcmFsbGVsX3dvcmtlcnMg PSBNaW4ocGFyYWxsZWxfd29ya2VycywgbWF4X3dvcmtlcnMpOwogCiAJcmV0dXJuIHBhcmFsbGVs X3dvcmtlcnM7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL2F1dG92YWN1 dW0uYyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYXV0b3ZhY3V1bS5jCmluZGV4IDIxOTY3M2Ri OTMwLi5mZjU3ZDhmY2EyYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9hdXRv dmFjdXVtLmMKKysrIGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9hdXRvdmFjdXVtLmMKQEAgLTI3 OTgsNiArMjc5OCw3IEBAIHRhYmxlX3JlY2hlY2tfYXV0b3ZhYyhPaWQgcmVsaWQsIEhUQUIgKnRh YmxlX3RvYXN0X21hcCwKIAkJaW50CQkJbXVsdGl4YWN0X2ZyZWV6ZV90YWJsZV9hZ2U7CiAJCWlu dAkJCWxvZ192YWN1dW1fbWluX2R1cmF0aW9uOwogCQlpbnQJCQlsb2dfYW5hbHl6ZV9taW5fZHVy YXRpb247CisJCWludAkJCW5wYXJhbGxlbF93b3JrZXJzID0gLTE7IC8qIGRpc2FibGVkIGJ5IGRl ZmF1bHQgKi8KIAogCQkvKgogCQkgKiBDYWxjdWxhdGUgdGhlIHZhY3V1bSBjb3N0IHBhcmFtZXRl cnMgYW5kIHRoZSBmcmVlemUgYWdlcy4gIElmIHRoZXJlCkBAIC0yODU4LDggKzI4NTksMTYgQEAg dGFibGVfcmVjaGVja19hdXRvdmFjKE9pZCByZWxpZCwgSFRBQiAqdGFibGVfdG9hc3RfbWFwLAog CQkgKi8KIAkJdGFiLT5hdF9wYXJhbXMuaW5kZXhfY2xlYW51cCA9IFZBQ09QVFZBTFVFX1VOU1BF Q0lGSUVEOwogCQl0YWItPmF0X3BhcmFtcy50cnVuY2F0ZSA9IFZBQ09QVFZBTFVFX1VOU1BFQ0lG SUVEOwotCQkvKiBBcyBvZiBub3csIHdlIGRvbid0IHN1cHBvcnQgcGFyYWxsZWwgdmFjdXVtIGZv ciBhdXRvdmFjdXVtICovCi0JCXRhYi0+YXRfcGFyYW1zLm53b3JrZXJzID0gLTE7CisKKwkJLyog RGVjaWRlIHdoZXRoZXIgd2UgbmVlZCB0byBwcm9jZXNzIGluZGV4ZXMgb2YgdGFibGUgaW4gcGFy YWxsZWwuICovCisJCWlmIChhdm9wdHMpCisJCXsKKwkJCWlmIChhdm9wdHMtPmF1dG92YWN1dW1f cGFyYWxsZWxfd29ya2VycyA+IDApCisJCQkJbnBhcmFsbGVsX3dvcmtlcnMgPSBhdm9wdHMtPmF1 dG92YWN1dW1fcGFyYWxsZWxfd29ya2VyczsKKwkJCWVsc2UgaWYgKGF2b3B0cy0+YXV0b3ZhY3V1 bV9wYXJhbGxlbF93b3JrZXJzID09IC0xKQorCQkJCW5wYXJhbGxlbF93b3JrZXJzID0gMDsKKwkJ fQorCiAJCXRhYi0+YXRfcGFyYW1zLmZyZWV6ZV9taW5fYWdlID0gZnJlZXplX21pbl9hZ2U7CiAJ CXRhYi0+YXRfcGFyYW1zLmZyZWV6ZV90YWJsZV9hZ2UgPSBmcmVlemVfdGFibGVfYWdlOwogCQl0 YWItPmF0X3BhcmFtcy5tdWx0aXhhY3RfZnJlZXplX21pbl9hZ2UgPSBtdWx0aXhhY3RfZnJlZXpl X21pbl9hZ2U7CkBAIC0yODY4LDYgKzI4NzcsNyBAQCB0YWJsZV9yZWNoZWNrX2F1dG92YWMoT2lk IHJlbGlkLCBIVEFCICp0YWJsZV90b2FzdF9tYXAsCiAJCXRhYi0+YXRfcGFyYW1zLmxvZ192YWN1 dW1fbWluX2R1cmF0aW9uID0gbG9nX3ZhY3V1bV9taW5fZHVyYXRpb247CiAJCXRhYi0+YXRfcGFy YW1zLmxvZ19hbmFseXplX21pbl9kdXJhdGlvbiA9IGxvZ19hbmFseXplX21pbl9kdXJhdGlvbjsK IAkJdGFiLT5hdF9wYXJhbXMudG9hc3RfcGFyZW50ID0gSW52YWxpZE9pZDsKKwkJdGFiLT5hdF9w YXJhbXMubndvcmtlcnMgPSBucGFyYWxsZWxfd29ya2VyczsKIAogCQkvKgogCQkgKiBMYXRlciwg aW4gdmFjdXVtX3JlbCgpLCB3ZSBjaGVjayByZWxvcHRpb25zIGZvciBhbnkKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3V0aWxzL2luaXQvZ2xvYmFscy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvaW5p dC9nbG9iYWxzLmMKaW5kZXggMzZhZDcwOGIzNjAuLjgyNjVhODJiNjM5IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC91dGlscy9pbml0L2dsb2JhbHMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9p bml0L2dsb2JhbHMuYwpAQCAtMTQzLDYgKzE0Myw3IEBAIGludAkJCU5CdWZmZXJzID0gMTYzODQ7 CiBpbnQJCQlNYXhDb25uZWN0aW9ucyA9IDEwMDsKIGludAkJCW1heF93b3JrZXJfcHJvY2Vzc2Vz ID0gODsKIGludAkJCW1heF9wYXJhbGxlbF93b3JrZXJzID0gODsKK2ludAkJCWF1dG92YWN1dW1f bWF4X3BhcmFsbGVsX3dvcmtlcnMgPSAyOwogaW50CQkJTWF4QmFja2VuZHMgPSAwOwogCiAvKiBH VUMgcGFyYW1ldGVycyBmb3IgdmFjdXVtICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGls cy9taXNjL2d1Yy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWMuYwppbmRleCBkNzc1MDI4 MzhjNC4uNTM0ZTU4YTM5OGMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3Vj LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWMuYwpAQCAtMzMyNiw5ICszMzI2LDEz IEBAIHNldF9jb25maWdfd2l0aF9oYW5kbGUoY29uc3QgY2hhciAqbmFtZSwgY29uZmlnX2hhbmRs ZSAqaGFuZGxlLAogCSAqCiAJICogQWxzbyBhbGxvdyBub3JtYWwgc2V0dGluZyBpZiB0aGUgR1VD IGlzIG1hcmtlZCBHVUNfQUxMT1dfSU5fUEFSQUxMRUwuCiAJICoKLQkgKiBPdGhlciBjaGFuZ2Vz IG1pZ2h0IG5lZWQgdG8gYWZmZWN0IG90aGVyIHdvcmtlcnMsIHNvIGZvcmJpZCB0aGVtLgorCSAq IE90aGVyIGNoYW5nZXMgbWlnaHQgbmVlZCB0byBhZmZlY3Qgb3RoZXIgd29ya2Vycywgc28gZm9y YmlkIHRoZW0uIE5vdGUsCisJICogdGhhdCBwYXJhbGxlbCBhdXRvdmFjdXVtIGxlYWRlciBpcyBh biBleGNlcHRpb24sIGJlY2F1c2Ugb25seQorCSAqIGNvc3QtYmFzZWQgZGVsYXlzIG5lZWQgdG8g YmUgYWZmZWN0ZWQgYWxzbyB0byBwYXJhbGxlbCBhdXRvdmFjdXVtCisJICogd29ya2VycywgYW5k IHdlIHdpbGwgaGFuZGxlIGl0IGVsc2V3aGVyZSBpZiBhcHByb3ByaWF0ZS4KIAkgKi8KLQlpZiAo SXNJblBhcmFsbGVsTW9kZSgpICYmIGNoYW5nZVZhbCAmJiBhY3Rpb24gIT0gR1VDX0FDVElPTl9T QVZFICYmCisJaWYgKElzSW5QYXJhbGxlbE1vZGUoKSAmJiAhQW1BdXRvVmFjdXVtV29ya2VyUHJv Y2VzcygpICYmIGNoYW5nZVZhbCAmJgorCQlhY3Rpb24gIT0gR1VDX0FDVElPTl9TQVZFICYmCiAJ CShyZWNvcmQtPmZsYWdzICYgR1VDX0FMTE9XX0lOX1BBUkFMTEVMKSA9PSAwKQogCXsKIAkJZXJl cG9ydChlbGV2ZWwsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y19wYXJh bWV0ZXJzLmRhdCBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3BhcmFtZXRlcnMuZGF0Cmlu ZGV4IGE1YTBlZGYyNTM0Li45YmQxNTVlOTlmNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRp bHMvbWlzYy9ndWNfcGFyYW1ldGVycy5kYXQKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9n dWNfcGFyYW1ldGVycy5kYXQKQEAgLTE1NCw2ICsxNTQsMTQgQEAKICAgbWF4ID0+ICcyMDAwMDAw MDAwJywKIH0sCiAKK3sgbmFtZSA9PiAnYXV0b3ZhY3V1bV9tYXhfcGFyYWxsZWxfd29ya2Vycycs IHR5cGUgPT4gJ2ludCcsIGNvbnRleHQgPT4gJ1BHQ19TSUdIVVAnLCBncm91cCA9PiAnVkFDVVVN X0FVVE9WQUNVVU0nLAorICBzaG9ydF9kZXNjID0+ICdNYXhpbXVtIG51bWJlciBvZiBwYXJhbGxl bCBwcm9jZXNzZXMgcGVyIGF1dG92YWN1dW1pbmcgb2Ygb25lIHRhYmxlLicsCisgIHZhcmlhYmxl ID0+ICdhdXRvdmFjdXVtX21heF9wYXJhbGxlbF93b3JrZXJzJywKKyAgYm9vdF92YWwgPT4gJzIn LAorICBtaW4gPT4gJzAnLAorICBtYXggPT4gJ01BWF9QQVJBTExFTF9XT1JLRVJfTElNSVQnLAor fSwKKwogeyBuYW1lID0+ICdhdXRvdmFjdXVtX21heF93b3JrZXJzJywgdHlwZSA9PiAnaW50Jywg Y29udGV4dCA9PiAnUEdDX1NJR0hVUCcsIGdyb3VwID0+ICdWQUNVVU1fQVVUT1ZBQ1VVTScsCiAg IHNob3J0X2Rlc2MgPT4gJ1NldHMgdGhlIG1heGltdW0gbnVtYmVyIG9mIHNpbXVsdGFuZW91c2x5 IHJ1bm5pbmcgYXV0b3ZhY3V1bSB3b3JrZXIgcHJvY2Vzc2VzLicsCiAgIHZhcmlhYmxlID0+ICdh dXRvdmFjdXVtX21heF93b3JrZXJzJywKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21p c2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZSBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdy ZXNxbC5jb25mLnNhbXBsZQppbmRleCBlNjg2ZDg4YWZjNC4uNWUxYzYyZDYxNmMgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZQorKysgYi9z cmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUKQEAgLTcxMCw2ICs3 MTAsNyBAQAogI2F1dG92YWN1dW1fd29ya2VyX3Nsb3RzID0gMTYgICAgICAgICAgICMgYXV0b3Zh Y3V1bSB3b3JrZXIgc2xvdHMgdG8gYWxsb2NhdGUKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAjIChjaGFuZ2UgcmVxdWlyZXMgcmVzdGFydCkKICNhdXRvdmFjdXVtX21h eF93b3JrZXJzID0gMyAgICAgICAgICAgICAjIG1heCBudW1iZXIgb2YgYXV0b3ZhY3V1bSBzdWJw cm9jZXNzZXMKKyNhdXRvdmFjdXVtX21heF9wYXJhbGxlbF93b3JrZXJzID0gMiAgICAjIGxpbWl0 ZWQgYnkgbWF4X3BhcmFsbGVsX3dvcmtlcnMKICNhdXRvdmFjdXVtX25hcHRpbWUgPSAxbWluICAg ICAgICAgICAgICAjIHRpbWUgYmV0d2VlbiBhdXRvdmFjdXVtIHJ1bnMKICNhdXRvdmFjdXVtX3Zh Y3V1bV90aHJlc2hvbGQgPSA1MCAgICAgICAjIG1pbiBudW1iZXIgb2Ygcm93IHVwZGF0ZXMgYmVm b3JlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyB2YWN1dW0KZGlm ZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyBiL3NyYy9iaW4vcHNxbC90 YWItY29tcGxldGUuaW4uYwppbmRleCA1YmRiZjE1MzBhMi4uMjkxNzFlZmJjMWIgMTAwNjQ0Ci0t LSBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYworKysgYi9zcmMvYmluL3BzcWwvdGFi LWNvbXBsZXRlLmluLmMKQEAgLTE0MzIsNiArMTQzMiw3IEBAIHN0YXRpYyBjb25zdCBjaGFyICpj b25zdCB0YWJsZV9zdG9yYWdlX3BhcmFtZXRlcnNbXSA9IHsKIAkiYXV0b3ZhY3V1bV9tdWx0aXhh Y3RfZnJlZXplX21heF9hZ2UiLAogCSJhdXRvdmFjdXVtX211bHRpeGFjdF9mcmVlemVfbWluX2Fn ZSIsCiAJImF1dG92YWN1dW1fbXVsdGl4YWN0X2ZyZWV6ZV90YWJsZV9hZ2UiLAorCSJhdXRvdmFj dXVtX3BhcmFsbGVsX3dvcmtlcnMiLAogCSJhdXRvdmFjdXVtX3ZhY3V1bV9jb3N0X2RlbGF5IiwK IAkiYXV0b3ZhY3V1bV92YWN1dW1fY29zdF9saW1pdCIsCiAJImF1dG92YWN1dW1fdmFjdXVtX2lu c2VydF9zY2FsZV9mYWN0b3IiLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbWlzY2FkbWluLmgg Yi9zcmMvaW5jbHVkZS9taXNjYWRtaW4uaAppbmRleCBmMTZmMzU2NTliOS4uMDAxOTBjNjdlY2Yg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL21pc2NhZG1pbi5oCisrKyBiL3NyYy9pbmNsdWRlL21p c2NhZG1pbi5oCkBAIC0xNzgsNiArMTc4LDcgQEAgZXh0ZXJuIFBHRExMSU1QT1JUIGludCBNYXhC YWNrZW5kczsKIGV4dGVybiBQR0RMTElNUE9SVCBpbnQgTWF4Q29ubmVjdGlvbnM7CiBleHRlcm4g UEdETExJTVBPUlQgaW50IG1heF93b3JrZXJfcHJvY2Vzc2VzOwogZXh0ZXJuIFBHRExMSU1QT1JU IGludCBtYXhfcGFyYWxsZWxfd29ya2VyczsKK2V4dGVybiBQR0RMTElNUE9SVCBpbnQgYXV0b3Zh Y3V1bV9tYXhfcGFyYWxsZWxfd29ya2VyczsKIAogZXh0ZXJuIFBHRExMSU1QT1JUIGludCBjb21t aXRfdGltZXN0YW1wX2J1ZmZlcnM7CiBleHRlcm4gUEdETExJTVBPUlQgaW50IG11bHRpeGFjdF9t ZW1iZXJfYnVmZmVyczsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL3JlbC5oIGIvc3Jj L2luY2x1ZGUvdXRpbHMvcmVsLmgKaW5kZXggMjM2ODMwZjZiOTMuLjE5ODE5NTQwMDhlIDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy9yZWwuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9y ZWwuaApAQCAtMzExLDYgKzMxMSwxNSBAQCB0eXBlZGVmIHN0cnVjdCBGb3JlaWduS2V5Q2FjaGVJ bmZvCiB0eXBlZGVmIHN0cnVjdCBBdXRvVmFjT3B0cwogewogCWJvb2wJCWVuYWJsZWQ7CisKKwkv KgorCSAqIFRhcmdldCBudW1iZXIgb2YgcGFyYWxsZWwgYXV0b3ZhY3V1bSB3b3JrZXJzLiAwIGJ5 IGRlZmF1bHQgZGlzYWJsZXMKKwkgKiBwYXJhbGxlbCB2YWN1dW0gZHVyaW5nIGF1dG92YWN1dW0u IC0xIG1lYW5zIGNob29zZSB0aGUgcGFyYWxsZWwgZGVncmVlCisJICogYmFzZWQgb24gdGhlIG51 bWJlciBvZiBpbmRleGVzICh0aGUgYXV0b3ZhY3V1bV9tYXhfcGFyYWxsZWxfd29ya2VycworCSAq IHBhcmFtZXRlciB3aWxsIGJlIHVzZWQgYXMgYSBsaW1pdCkuCisJICovCisJaW50CQkJYXV0b3Zh Y3V1bV9wYXJhbGxlbF93b3JrZXJzOworCiAJaW50CQkJdmFjdXVtX3RocmVzaG9sZDsKIAlpbnQJ CQl2YWN1dW1fbWF4X3RocmVzaG9sZDsKIAlpbnQJCQl2YWN1dW1faW5zX3RocmVzaG9sZDsKLS0g CjIuNDMuMAoK --000000000000982b9b064d490276 Content-Type: text/x-patch; charset="US-ASCII"; name="v29-0004-Tests-for-parallel-autovacuum.patch" Content-Disposition: attachment; filename="v29-0004-Tests-for-parallel-autovacuum.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmvttllm1 RnJvbSAxYTdhOWFmY2U1ZWQ2YmM2YTA5ZjI3YjhiNDVkYmU5YTY3YjA4OTc4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5paWwgRGF2aWRvdiA8ZC5kYXZ5ZG92QHBvc3RncmVzcHJv LnJ1PgpEYXRlOiBUdWUsIDE3IE1hciAyMDI2IDAyOjUwOjIzICswNzAwClN1YmplY3Q6IFtQQVRD SCB2MjkgNC81XSBUZXN0cyBmb3IgcGFyYWxsZWwgYXV0b3ZhY3V1bQoKLS0tCiBzcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgICAgICAgICAgfCAgIDkgKwogc3JjL2JhY2tlbmQv Y29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYyAgICAgICAgIHwgIDE4ICsrCiBzcmMvdGVzdC9tb2R1 bGVzL01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL3Rlc3QvbW9kdWxl cy9tZXNvbi5idWlsZCAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy90ZXN0L21vZHVsZXMv dGVzdF9hdXRvdmFjdXVtLy5naXRpZ25vcmUgICB8ICAgMiArCiBzcmMvdGVzdC9tb2R1bGVzL3Rl c3RfYXV0b3ZhY3V1bS9NYWtlZmlsZSAgICAgfCAgMjAgKysKIHNyYy90ZXN0L21vZHVsZXMvdGVz dF9hdXRvdmFjdXVtL21lc29uLmJ1aWxkICB8ICAxNSArKwogLi4uL3QvMDAxX3BhcmFsbGVsX2F1 dG92YWN1dW0ucGwgICAgICAgICAgICAgIHwgMTgwICsrKysrKysrKysrKysrKysrKwogOCBmaWxl cyBjaGFuZ2VkLCAyNDYgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0 L21vZHVsZXMvdGVzdF9hdXRvdmFjdXVtLy5naXRpZ25vcmUKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0b3ZhY3V1bS9NYWtlZmlsZQogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyYy90ZXN0L21vZHVsZXMvdGVzdF9hdXRvdmFjdXVtL21lc29uLmJ1aWxkCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0vdC8wMDFfcGFyYWxs ZWxfYXV0b3ZhY3V1bS5wbAoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zh Y3V1bWxhenkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwppbmRleCBj NTc0MzI2NzBlNy4uOGQyOTgwZjNlZjAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL3ZhY3V1bWxhenkuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5 LmMKQEAgLTE1Miw2ICsxNTIsNyBAQAogI2luY2x1ZGUgInN0b3JhZ2UvbGF0Y2guaCIKICNpbmNs dWRlICJzdG9yYWdlL2xtZ3IuaCIKICNpbmNsdWRlICJzdG9yYWdlL3JlYWRfc3RyZWFtLmgiCisj aW5jbHVkZSAidXRpbHMvaW5qZWN0aW9uX3BvaW50LmgiCiAjaW5jbHVkZSAidXRpbHMvbHN5c2Nh Y2hlLmgiCiAjaW5jbHVkZSAidXRpbHMvcGdfcnVzYWdlLmgiCiAjaW5jbHVkZSAidXRpbHMvdGlt ZXN0YW1wLmgiCkBAIC04NzMsNiArODc0LDE0IEBAIGhlYXBfdmFjdXVtX3JlbChSZWxhdGlvbiBy ZWwsIGNvbnN0IFZhY3V1bVBhcmFtcyBwYXJhbXMsCiAJbGF6eV9jaGVja193cmFwYXJvdW5kX2Zh aWxzYWZlKHZhY3JlbCk7CiAJZGVhZF9pdGVtc19hbGxvYyh2YWNyZWwsIHBhcmFtcy5ud29ya2Vy cyk7CiAKKyNpZmRlZiBVU0VfSU5KRUNUSU9OX1BPSU5UUworCS8qCisJICogVHJpZ2dlciBpbmpl Y3Rpb24gcG9pbnQsIGlmIHBhcmFsbGVsIGF1dG92YWN1dW0gaXMgYWJvdXQgdG8gYmUgc3RhcnRl ZC4KKwkgKi8KKwlpZiAoQW1BdXRvVmFjdXVtV29ya2VyUHJvY2VzcygpICYmIFBhcmFsbGVsVmFj dXVtSXNBY3RpdmUodmFjcmVsKSkKKwkJSU5KRUNUSU9OX1BPSU5UKCJhdXRvdmFjdXVtLXN0YXJ0 LXBhcmFsbGVsLXZhY3V1bSIsIE5VTEwpOworI2VuZGlmCisKIAkvKgogCSAqIENhbGwgbGF6eV9z Y2FuX2hlYXAgdG8gcGVyZm9ybSBhbGwgcmVxdWlyZWQgaGVhcCBwcnVuaW5nLCBpbmRleAogCSAq IHZhY3V1bWluZywgYW5kIGhlYXAgdmFjdXVtaW5nIChwbHVzIHJlbGF0ZWQgcHJvY2Vzc2luZykK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMgYi9zcmMv YmFja2VuZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5jCmluZGV4IDk4YWViNjZlZWM0Li42MmI2 ZjUwYjUzOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwu YworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5jCkBAIC00Niw2ICs0 Niw3IEBACiAjaW5jbHVkZSAic3RvcmFnZS9idWZtZ3IuaCIKICNpbmNsdWRlICJzdG9yYWdlL3By b2MuaCIKICNpbmNsdWRlICJ0Y29wL3Rjb3Bwcm90LmgiCisjaW5jbHVkZSAidXRpbHMvaW5qZWN0 aW9uX3BvaW50LmgiCiAjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCiAjaW5jbHVkZSAidXRp bHMvcmVsLmgiCiAKQEAgLTY1Myw2ICs2NTQsMTQgQEAgcGFyYWxsZWxfdmFjdXVtX3VwZGF0ZV9z aGFyZWRfZGVsYXlfcGFyYW1zKHZvaWQpCiAJVmFjdXVtVXBkYXRlQ29zdHMoKTsKIAogCXNoYXJl ZF9wYXJhbXNfZ2VuZXJhdGlvbl9sb2NhbCA9IHBhcmFtc19nZW5lcmF0aW9uOworCisJZWxvZyhE RUJVRzIsCisJCSAicGFyYWxsZWwgYXV0b3ZhY3V1bSB3b3JrZXIgdXBkYXRlZCBjb3N0IHBhcmFt czogY29zdF9saW1pdD0lZCwgY29zdF9kZWxheT0lZywgY29zdF9wYWdlX21pc3M9JWQsIGNvc3Rf cGFnZV9kaXJ0eT0lZCwgY29zdF9wYWdlX2hpdD0lZCIsCisJCSB2YWN1dW1fY29zdF9saW1pdCwK KwkJIHZhY3V1bV9jb3N0X2RlbGF5LAorCQkgVmFjdXVtQ29zdFBhZ2VNaXNzLAorCQkgVmFjdXVt Q29zdFBhZ2VEaXJ0eSwKKwkJIFZhY3V1bUNvc3RQYWdlSGl0KTsKIH0KIAogLyoKQEAgLTg5NSw2 ICs5MDQsMTUgQEAgcGFyYWxsZWxfdmFjdXVtX3Byb2Nlc3NfYWxsX2luZGV4ZXMoUGFyYWxsZWxW YWN1dW1TdGF0ZSAqcHZzLCBpbnQgbnVtX2luZGV4X3NjYW4KIAkJCQkJCQlwdnMtPnBjeHQtPm53 b3JrZXJzX2xhdW5jaGVkLCBud29ya2VycykpKTsKIAl9CiAKKyNpZmRlZiBVU0VfSU5KRUNUSU9O X1BPSU5UUworCS8qCisJICogVGhpcyBpbmplY3Rpb24gcG9pbnQgaXMgdXNlZCB0byB3YWl0IHVu dGlsIHBhcmFsbGVsIGF1dG92YWN1dW0gd29ya2VycworCSAqIGZpbmlzaGVzIHRoZWlyIHBhcnQg b2YgaW5kZXggcHJvY2Vzc2luZy4KKwkgKi8KKwlpZiAobndvcmtlcnMgPiAwKQorCQlJTkpFQ1RJ T05fUE9JTlQoImF1dG92YWN1dW0tbGVhZGVyLWJlZm9yZS1pbmRleGVzLXByb2Nlc3NpbmciLCBO VUxMKTsKKyNlbmRpZgorCiAJLyogVmFjdXVtIHRoZSBpbmRleGVzIHRoYXQgY2FuIGJlIHByb2Nl c3NlZCBieSBvbmx5IGxlYWRlciBwcm9jZXNzICovCiAJcGFyYWxsZWxfdmFjdXVtX3Byb2Nlc3Nf dW5zYWZlX2luZGV4ZXMocHZzKTsKIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy9NYWtl ZmlsZSBiL3NyYy90ZXN0L21vZHVsZXMvTWFrZWZpbGUKaW5kZXggNGFjNWM4NGRiNDMuLjAxZmUw MDQxYzk3IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9tb2R1bGVzL01ha2VmaWxlCisrKyBiL3NyYy90 ZXN0L21vZHVsZXMvTWFrZWZpbGUKQEAgLTE2LDYgKzE2LDcgQEAgU1VCRElSUyA9IFwKIAkJICBw bHNhbXBsZSBcCiAJCSAgc3BnaXN0X25hbWVfb3BzIFwKIAkJICB0ZXN0X2FpbyBcCisJCSAgdGVz dF9hdXRvdmFjdXVtIFwKIAkJICB0ZXN0X2JpbmFyeWhlYXAgXAogCQkgIHRlc3RfYml0bWFwc2V0 IFwKIAkJICB0ZXN0X2Jsb29tZmlsdGVyIFwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMv bWVzb24uYnVpbGQgYi9zcmMvdGVzdC9tb2R1bGVzL21lc29uLmJ1aWxkCmluZGV4IGUyYjNlZWY0 MTM2Li45ZGNkYzY4YmM4NyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvbW9kdWxlcy9tZXNvbi5idWls ZAorKysgYi9zcmMvdGVzdC9tb2R1bGVzL21lc29uLmJ1aWxkCkBAIC0xNiw2ICsxNiw3IEBAIHN1 YmRpcigncGxzYW1wbGUnKQogc3ViZGlyKCdzcGdpc3RfbmFtZV9vcHMnKQogc3ViZGlyKCdzc2xf cGFzc3BocmFzZV9jYWxsYmFjaycpCiBzdWJkaXIoJ3Rlc3RfYWlvJykKK3N1YmRpcigndGVzdF9h dXRvdmFjdXVtJykKIHN1YmRpcigndGVzdF9iaW5hcnloZWFwJykKIHN1YmRpcigndGVzdF9iaXRt YXBzZXQnKQogc3ViZGlyKCd0ZXN0X2Jsb29tZmlsdGVyJykKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L21vZHVsZXMvdGVzdF9hdXRvdmFjdXVtLy5naXRpZ25vcmUgYi9zcmMvdGVzdC9tb2R1bGVzL3Rl c3RfYXV0b3ZhY3V1bS8uZ2l0aWdub3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwLi43MTZlMTdmNWEyYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L21vZHVsZXMv dGVzdF9hdXRvdmFjdXVtLy5naXRpZ25vcmUKQEAgLTAsMCArMSwyIEBACisjIEdlbmVyYXRlZCBz dWJkaXJlY3RvcmllcworL3RtcF9jaGVjay8KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMv dGVzdF9hdXRvdmFjdXVtL01ha2VmaWxlIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1 dW0vTWFrZWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjE4OGVj OWY5NmEyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1 dW0vTWFrZWZpbGUKQEAgLTAsMCArMSwyMCBAQAorIyBzcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0 b3ZhY3V1bS9NYWtlZmlsZQorCitQR0ZJTEVERVNDID0gInRlc3RfYXV0b3ZhY3V1bSAtIHRlc3Qg Y29kZSBmb3IgcGFyYWxsZWwgYXV0b3ZhY3V1bSIKKworVEFQX1RFU1RTID0gMQorCitFWFRSQV9J TlNUQUxMID0gc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzCisKK2V4cG9ydCBlbmFi bGVfaW5qZWN0aW9uX3BvaW50cworCitpZmRlZiBVU0VfUEdYUworUEdfQ09ORklHID0gcGdfY29u ZmlnCitQR1hTIDo9ICQoc2hlbGwgJChQR19DT05GSUcpIC0tcGd4cykKK2luY2x1ZGUgJChQR1hT KQorZWxzZQorc3ViZGlyID0gc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0KK3RvcF9i dWlsZGRpciA9IC4uLy4uLy4uLy4uCitpbmNsdWRlICQodG9wX2J1aWxkZGlyKS9zcmMvTWFrZWZp bGUuZ2xvYmFsCitpbmNsdWRlICQodG9wX3NyY2RpcikvY29udHJpYi9jb250cmliLWdsb2JhbC5t aworZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9hdXRvdmFjdXVtL21l c29uLmJ1aWxkIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0vbWVzb24uYnVpbGQK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjg2ZTM5MmJjMGRlCi0tLSAv ZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0vbWVzb24uYnVp bGQKQEAgLTAsMCArMSwxNSBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMjQtMjAyNiwgUG9zdGdyZVNR TCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKwordGVzdHMgKz0geworICAnbmFtZSc6ICd0ZXN0 X2F1dG92YWN1dW0nLAorICAnc2QnOiBtZXNvbi5jdXJyZW50X3NvdXJjZV9kaXIoKSwKKyAgJ2Jk JzogbWVzb24uY3VycmVudF9idWlsZF9kaXIoKSwKKyAgJ3RhcCc6IHsKKyAgICAnZW52Jzogewor ICAgICAgICdlbmFibGVfaW5qZWN0aW9uX3BvaW50cyc6IGdldF9vcHRpb24oJ2luamVjdGlvbl9w b2ludHMnKSA/ICd5ZXMnIDogJ25vJywKKyAgICB9LAorICAgICd0ZXN0cyc6IFsKKyAgICAgICd0 LzAwMV9wYXJhbGxlbF9hdXRvdmFjdXVtLnBsJywKKyAgICBdLAorICB9LAorfQpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0vdC8wMDFfcGFyYWxsZWxfYXV0b3Zh Y3V1bS5wbCBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9hdXRvdmFjdXVtL3QvMDAxX3BhcmFsbGVs X2F1dG92YWN1dW0ucGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjJm MzQ5OTlkMjVlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92 YWN1dW0vdC8wMDFfcGFyYWxsZWxfYXV0b3ZhY3V1bS5wbApAQCAtMCwwICsxLDE4MCBAQAorIyBU ZXN0IHBhcmFsbGVsIGF1dG92YWN1dW0gYmVoYXZpb3IKKwordXNlIHdhcm5pbmdzIEZBVEFMID0+ ICdhbGwnOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI7Cit1c2UgUG9zdGdyZVNRTDo6 VGVzdDo6VXRpbHM7Cit1c2UgVGVzdDo6TW9yZTsKKworaWYgKCRFTlZ7ZW5hYmxlX2luamVjdGlv bl9wb2ludHN9IG5lICd5ZXMnKQoreworCXBsYW4gc2tpcF9hbGwgPT4gJ0luamVjdGlvbiBwb2lu dHMgbm90IHN1cHBvcnRlZCBieSB0aGlzIGJ1aWxkJzsKK30KKworIyBCZWZvcmUgZWFjaCB0ZXN0 IHdlIHNob3VsZCBkaXNhYmxlIGF1dG92YWN1dW0gZm9yICd0ZXN0X2F1dG92YWMnIHRhYmxlIGFu ZAorIyBnZW5lcmF0ZSBzb21lIGRlYWQgdHVwbGVzIGluIGl0LiBSZXR1cm5zIHRoZSBjdXJyZW50 IGF1dG92YWN1dW1fY291bnQgb2YKKyMgdGhlIHRhYmxlIHRzZXRfYXV0b3ZhYy4KK3N1YiBwcmVw YXJlX2Zvcl9uZXh0X3Rlc3QKK3sKKwlteSAoJG5vZGUsICR0ZXN0X251bWJlcikgPSBAXzsKKwor CSRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXF7CisJCUFMVEVSIFRBQkxFIHRlc3RfYXV0 b3ZhYyBTRVQgKGF1dG92YWN1dW1fZW5hYmxlZCA9IGZhbHNlKTsKKwkJVVBEQVRFIHRlc3RfYXV0 b3ZhYyBTRVQgY29sXzEgPSAkdGVzdF9udW1iZXI7CisJfSk7CisKKwlteSAkY291bnQgPSAkbm9k ZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxeworCQlTRUxFQ1QgYXV0b3ZhY3V1bV9jb3VudCBG Uk9NIHBnX3N0YXRfdXNlcl90YWJsZXMgV0hFUkUgcmVsbmFtZSA9ICd0ZXN0X2F1dG92YWMnCisJ fSk7CisKKwlyZXR1cm4gJGNvdW50OworfQorCisjIFdhaXQgZm9yIHRoZSB0YWJsZSB0byBiZSB2 YWN1dW1lZCBieSBhbiBhdXRvdmFjdXVtIHdvcmtlci4KK3N1YiB3YWl0X2Zvcl9hdXRvdmFjdXVt X2NvbXBsZXRlCit7CisJbXkgKCRub2RlLCAkb2xkX2NvdW50KSA9IEBfOworCisJJG5vZGUtPnBv bGxfcXVlcnlfdW50aWwoJ3Bvc3RncmVzJywgcXF7CisJCVNFTEVDVCBhdXRvdmFjdXVtX2NvdW50 ID4gJG9sZF9jb3VudCBGUk9NIHBnX3N0YXRfdXNlcl90YWJsZXMgV0hFUkUgcmVsbmFtZSA9ICd0 ZXN0X2F1dG92YWMnCisJfSk7Cit9CisKK215ICRwc3FsX291dDsKKworbXkgJG5vZGUgPSBQb3N0 Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ21haW4nKTsKKyRub2RlLT5pbml0OworCisjIENv bmZpZ3VyZSBwb3N0Z3Jlcywgc28gaXQgY2FuIGxhdW5jaCBwYXJhbGxlbCBhdXRvdmFjdXVtIHdv cmtlcnMsIGxvZyBhbGwKKyMgaW5mb3JtYXRpb24gd2UgYXJlIGludGVyZXN0ZWQgaW4gYW5kIGF1 dG92YWN1dW0gd29ya3MgZnJlcXVlbnRseQorJG5vZGUtPmFwcGVuZF9jb25mKCdwb3N0Z3Jlc3Fs LmNvbmYnLCBxcXsKKwltYXhfd29ya2VyX3Byb2Nlc3NlcyA9IDIwCisJbWF4X3BhcmFsbGVsX3dv cmtlcnMgPSAyMAorCWF1dG92YWN1dW1fbWF4X3BhcmFsbGVsX3dvcmtlcnMgPSA0CisJbG9nX21p bl9tZXNzYWdlcyA9IGRlYnVnMgorCWF1dG92YWN1dW1fbmFwdGltZSA9ICcxcycKKwltaW5fcGFy YWxsZWxfaW5kZXhfc2Nhbl9zaXplID0gMAorfSk7Ciskbm9kZS0+c3RhcnQ7CisKKyMgQ2hlY2sg aWYgdGhlIGV4dGVuc2lvbiBpbmplY3Rpb25fcG9pbnRzIGlzIGF2YWlsYWJsZSwgYXMgaXQgbWF5 IGJlCisjIHBvc3NpYmxlIHRoYXQgdGhpcyBzY3JpcHQgaXMgcnVuIHdpdGggaW5zdGFsbGNoZWNr LCB3aGVyZSB0aGUgbW9kdWxlCisjIHdvdWxkIG5vdCBiZSBpbnN0YWxsZWQgYnkgZGVmYXVsdC4K K2lmICghJG5vZGUtPmNoZWNrX2V4dGVuc2lvbignaW5qZWN0aW9uX3BvaW50cycpKQoreworCXBs YW4gc2tpcF9hbGwgPT4gJ0V4dGVuc2lvbiBpbmplY3Rpb25fcG9pbnRzIG5vdCBpbnN0YWxsZWQn OworfQorCisjIENyZWF0ZSBhbGwgZnVuY3Rpb25zIG5lZWRlZCBmb3IgdGVzdGluZworJG5vZGUt PnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxcXsKKwlDUkVBVEUgRVhURU5TSU9OIGluamVjdGlvbl9w b2ludHM7Cit9KTsKKworbXkgJGluZGV4ZXNfbnVtID0gMzsKK215ICRpbml0aWFsX3Jvd3NfbnVt ID0gMTBfMDAwOworbXkgJGF1dG92YWN1dW1fcGFyYWxsZWxfd29ya2VycyA9IDI7CisKKyMgQ3Jl YXRlIHRhYmxlIGFuZCBmaWxsIGl0IHdpdGggc29tZSBkYXRhCiskbm9kZS0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsIHFxeworCUNSRUFURSBUQUJMRSB0ZXN0X2F1dG92YWMgKAorCQlpZCBTRVJJQUwg UFJJTUFSWSBLRVksCisJCWNvbF8xIElOVEVHRVIsICBjb2xfMiBJTlRFR0VSLCAgY29sXzMgSU5U RUdFUiwgIGNvbF80IElOVEVHRVIKKwkpIFdJVEggKGF1dG92YWN1dW1fcGFyYWxsZWxfd29ya2Vy cyA9ICRhdXRvdmFjdXVtX3BhcmFsbGVsX3dvcmtlcnMsCisJCQlsb2dfYXV0b3ZhY3V1bV9taW5f ZHVyYXRpb24gPSAwKTsKKworCUlOU0VSVCBJTlRPIHRlc3RfYXV0b3ZhYworCVNFTEVDVAorCQln IEFTIGNvbDEsCisJCWcgKyAxIEFTIGNvbDIsCisJCWcgKyAyIEFTIGNvbDMsCisJCWcgKyAzIEFT IGNvbDQKKwlGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAkaW5pdGlhbF9yb3dzX251bSkgQVMgZzsK K30pOworCisjIENyZWF0ZSBzcGVjaWZpZWQgbnVtYmVyIG9mIGItdHJlZSBpbmRleGVzIG9uIHRo ZSB0YWJsZQorJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxcXsKKwlETyBcJFwkCisJREVD TEFSRQorCQlpIElOVEVHRVI7CisJQkVHSU4KKwkJRk9SIGkgSU4gMS4uJGluZGV4ZXNfbnVtIExP T1AKKwkJCUVYRUNVVEUgZm9ybWF0KCdDUkVBVEUgSU5ERVggaWR4X2NvbF9cJXMgT04gdGVzdF9h dXRvdmFjIChjb2xfXCVzKTsnLCBpLCBpKTsKKwkJRU5EIExPT1A7CisJRU5EIFwkXCQ7Cit9KTsK KworIyBUZXN0IDEgOgorIyBPdXIgdGFibGUgaGFzIGVub3VnaCBpbmRleGVzIGFuZCBhcHByb3By aWF0ZSByZWxvcHRpb25zLCBzbyBhdXRvdmFjdXVtIG11c3QKKyMgYmUgYWJsZSB0byBwcm9jZXNz IGl0IGluIHBhcmFsbGVsIG1vZGUuIEp1c3QgY2hlY2sgaWYgaXQgY2FuIGRvIGl0LgorCitteSAk YXZfY291bnQgPSBwcmVwYXJlX2Zvcl9uZXh0X3Rlc3QoJG5vZGUsIDEpOworbXkgJGxvZ19vZmZz ZXQgPSAtcyAkbm9kZS0+bG9nZmlsZTsKKworJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBx cXsKKwlBTFRFUiBUQUJMRSB0ZXN0X2F1dG92YWMgU0VUIChhdXRvdmFjdXVtX2VuYWJsZWQgPSB0 cnVlKTsKK30pOworCisjIFdhaXQgdW50aWwgdGhlIHBhcmFsbGVsIGF1dG92YWN1dW0gb24gdGFi bGUgaXMgY29tcGxldGVkLiBBdCB0aGUgc2FtZSB0aW1lLAorIyB3ZSBjaGVjayB0aGF0IHRoZSBy ZXF1aXJlZCBudW1iZXIgb2YgcGFyYWxsZWwgd29ya2VycyBoYXMgYmVlbiBzdGFydGVkLgord2Fp dF9mb3JfYXV0b3ZhY3V1bV9jb21wbGV0ZSgkbm9kZSwgJGF2X2NvdW50KTsKK29rKCRub2RlLT5s b2dfY29udGFpbnMocXIvcGFyYWxsZWwgd29ya2VyczogaW5kZXggdmFjdXVtOiAyIHBsYW5uZWQs IDIgbGF1bmNoZWQgaW4gdG90YWwvLAorCQkJCQkgICAkbG9nX29mZnNldCkpOworCisjIFRlc3Qg MjoKKyMgQ2hlY2sgd2hldGhlciBwYXJhbGxlbCBhdXRvdmFjdXVtIGxlYWRlciBjYW4gcHJvcGFn YXRlIGNvc3QtYmFzZWQgcGFyYW1ldGVycworIyB0byB0aGUgcGFyYWxsZWwgd29ya2Vycy4KKwor JGF2X2NvdW50ID0gcHJlcGFyZV9mb3JfbmV4dF90ZXN0KCRub2RlLCAyKTsKKyRsb2dfb2Zmc2V0 ID0gLXMgJG5vZGUtPmxvZ2ZpbGU7CisKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXF7 CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfYXR0YWNoKCdhdXRvdmFjdXVtLXN0YXJ0LXBhcmFs bGVsLXZhY3V1bScsICd3YWl0Jyk7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfYXR0YWNoKCdh dXRvdmFjdXVtLWxlYWRlci1iZWZvcmUtaW5kZXhlcy1wcm9jZXNzaW5nJywgJ3dhaXQnKTsKKwor CUFMVEVSIFRBQkxFIHRlc3RfYXV0b3ZhYyBTRVQgKGF1dG92YWN1dW1fcGFyYWxsZWxfd29ya2Vy cyA9IDEsIGF1dG92YWN1dW1fZW5hYmxlZCA9IHRydWUpOworfSk7CisKKyMgV2FpdCB1bnRpbCBw YXJhbGxlbCBhdXRvdmFjdXVtIGlzIGluaXRlZAorJG5vZGUtPndhaXRfZm9yX2V2ZW50KAorCSdh dXRvdmFjdXVtIHdvcmtlcicsCisJJ2F1dG92YWN1dW0tc3RhcnQtcGFyYWxsZWwtdmFjdXVtJwor KTsKKworIyBVcGRhdGUgdGhlIHNoYXJlZCBjb3N0LWJhc2VkIGRlbGF5IHBhcmFtZXRlcnMuCisk bm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxeworCUFMVEVSIFNZU1RFTSBTRVQgdmFjdXVt X2Nvc3RfbGltaXQgPSA1MDA7CisJQUxURVIgU1lTVEVNIFNFVCB2YWN1dW1fY29zdF9wYWdlX21p c3MgPSAxMDsKKwlBTFRFUiBTWVNURU0gU0VUIHZhY3V1bV9jb3N0X3BhZ2VfZGlydHkgPSAxMDsK KwlBTFRFUiBTWVNURU0gU0VUIHZhY3V1bV9jb3N0X3BhZ2VfaGl0ID0gMTA7CisJU0VMRUNUIHBn X3JlbG9hZF9jb25mKCk7Cit9KTsKKworIyBSZXN1bWUgdGhlIGxlYWRlciBwcm9jZXNzIHRvIHVw ZGF0ZSB0aGUgc2hhcmVkIHBhcmFtZXRlcnMgZHVyaW5nIGhlYXAgc2NhbiAoaS5lLgorIyB2YWN1 dW1fZGVsYXlfcG9pbnQoKSBpcyBjYWxsZWQpIGFuZCBsYXVuY2ggYSBwYXJhbGxlbCB2YWN1dW0g d29ya2VyLCBidXQgaXQgc3RvcHMKKyMgYmVmb3JlIHZhY3V1bWluZyBpbmRleGVzIGR1ZSB0byB0 aGUgaW5qZWN0aW9uIHBvaW50LgorJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxcXsKKwlT RUxFQ1QgaW5qZWN0aW9uX3BvaW50c193YWtldXAoJ2F1dG92YWN1dW0tc3RhcnQtcGFyYWxsZWwt dmFjdXVtJyk7Cit9KTsKKyRub2RlLT53YWl0X2Zvcl9ldmVudCgKKwknYXV0b3ZhY3V1bSB3b3Jr ZXInLAorCSdhdXRvdmFjdXVtLWxlYWRlci1iZWZvcmUtaW5kZXhlcy1wcm9jZXNzaW5nJworKTsK KworIyBDaGVjayB3aGV0aGVyIHBhcmFsbGVsIHdvcmtlciBzdWNjZXNzZnVsbHkgdXBkYXRlZCBh bGwgcGFyYW1ldGVycyBkdXJpbmcKKyMgaW5kZXggcHJvY2Vzc2luZworJG5vZGUtPndhaXRfZm9y X2xvZyhxci9wYXJhbGxlbCBhdXRvdmFjdXVtIHdvcmtlciB1cGRhdGVkIGNvc3QgcGFyYW1zOiBj b3N0X2xpbWl0PTUwMCwgY29zdF9kZWxheT0yLCBjb3N0X3BhZ2VfbWlzcz0xMCwgY29zdF9wYWdl X2RpcnR5PTEwLCBjb3N0X3BhZ2VfaGl0PTEwLywKKwkJCQkJJGxvZ19vZmZzZXQpOworCiskbm9k ZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxeworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3dh a2V1cCgnYXV0b3ZhY3V1bS1sZWFkZXItYmVmb3JlLWluZGV4ZXMtcHJvY2Vzc2luZycpOworfSk7 CisKK3dhaXRfZm9yX2F1dG92YWN1dW1fY29tcGxldGUoJG5vZGUsICRhdl9jb3VudCk7CisKKyMg Q2xlYW51cAorJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxcXsKKwlTRUxFQ1QgaW5qZWN0 aW9uX3BvaW50c19kZXRhY2goJ2F1dG92YWN1dW0tc3RhcnQtcGFyYWxsZWwtdmFjdXVtJyk7CisJ U0VMRUNUIGluamVjdGlvbl9wb2ludHNfZGV0YWNoKCdhdXRvdmFjdXVtLWxlYWRlci1iZWZvcmUt aW5kZXhlcy1wcm9jZXNzaW5nJyk7Cit9KTsKKworJG5vZGUtPnN0b3A7Citkb25lX3Rlc3Rpbmco KTsKLS0gCjIuNDMuMAoK --000000000000982b9b064d490276 Content-Type: text/x-patch; charset="US-ASCII"; name="v29-0001-Logging-for-parallel-autovacuum.patch" Content-Disposition: attachment; filename="v29-0001-Logging-for-parallel-autovacuum.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmvttlmj4 RnJvbSA3MDI5ODYzMzczYmJiNjE2MDdlYmU1YjcwNzBiZjJjZDcwZGUzMDkxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5paWwgRGF2aWRvdiA8ZC5kYXZ5ZG92QHBvc3RncmVzcHJv LnJ1PgpEYXRlOiBNb24sIDE2IE1hciAyMDI2IDE5OjAxOjA1ICswNzAwClN1YmplY3Q6IFtQQVRD SCB2MjkgMS81XSBMb2dnaW5nIGZvciBwYXJhbGxlbCBhdXRvdmFjdXVtCgotLS0KIHNyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyAgfCAzMSArKysrKysrKysrKysrKysrKysrKysr KysrLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMgfCAyMyArKysrKysr KysrKysrKy0tLS0tLQogc3JjL2luY2x1ZGUvY29tbWFuZHMvdmFjdXVtLmggICAgICAgICB8IDI4 ICsrKysrKysrKysrKysrKysrKysrKystLQogc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxp c3QgICAgICB8ICAyICsrCiA0IGZpbGVzIGNoYW5nZWQsIDc0IGluc2VydGlvbnMoKyksIDEwIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxh enkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwppbmRleCA4MmM1YjI4 ZTBhZC4uYzU3NDMyNjcwZTcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zh Y3V1bWxhenkuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKQEAg LTM0Myw2ICszNDMsMTMgQEAgdHlwZWRlZiBzdHJ1Y3QgTFZSZWxTdGF0ZQogCWludAkJCW51bV9p bmRleF9zY2FuczsKIAlpbnQJCQludW1fZGVhZF9pdGVtc19yZXNldHM7CiAJU2l6ZQkJdG90YWxf ZGVhZF9pdGVtc19ieXRlczsKKworCS8qCisJICogVG90YWwgbnVtYmVyIG9mIHBsYW5uZWQgYW5k IGFjdHVhbGx5IGxhdW5jaGVkIHBhcmFsbGVsIHdvcmtlcnMgZm9yCisJICogaW5kZXggdmFjdXVt aW5nIGFuZCBpbmRleCBjbGVhbnVwLgorCSAqLworCVBWV29ya2VyVXNhZ2Ugd29ya2VyX3VzYWdl OworCiAJLyogQ291bnRlcnMgdGhhdCBmb2xsb3cgYXJlIG9ubHkgZm9yIHNjYW5uZWRfcGFnZXMg Ki8KIAlpbnQ2NAkJdHVwbGVzX2RlbGV0ZWQ7IC8qICMgZGVsZXRlZCBmcm9tIHRhYmxlICovCiAJ aW50NjQJCXR1cGxlc19mcm96ZW47CS8qICMgbmV3bHkgZnJvemVuICovCkBAIC03ODEsNiArNzg4 LDExIEBAIGhlYXBfdmFjdXVtX3JlbChSZWxhdGlvbiByZWwsIGNvbnN0IFZhY3V1bVBhcmFtcyBw YXJhbXMsCiAJdmFjcmVsLT5uZXdfYWxsX3Zpc2libGVfYWxsX2Zyb3plbl9wYWdlcyA9IDA7CiAJ dmFjcmVsLT5uZXdfYWxsX2Zyb3plbl9wYWdlcyA9IDA7CiAKKwl2YWNyZWwtPndvcmtlcl91c2Fn ZS52YWN1dW0ubmxhdW5jaGVkID0gMDsKKwl2YWNyZWwtPndvcmtlcl91c2FnZS52YWN1dW0ubnBs YW5uZWQgPSAwOworCXZhY3JlbC0+d29ya2VyX3VzYWdlLmNsZWFudXAubmxhdW5jaGVkID0gMDsK Kwl2YWNyZWwtPndvcmtlcl91c2FnZS5jbGVhbnVwLm5wbGFubmVkID0gMDsKKwogCS8qCiAJICog R2V0IGN1dG9mZnMgdGhhdCBkZXRlcm1pbmUgd2hpY2ggZGVsZXRlZCB0dXBsZXMgYXJlIGNvbnNp ZGVyZWQgREVBRCwKIAkgKiBub3QganVzdCBSRUNFTlRMWV9ERUFELCBhbmQgd2hpY2ggWElEcy9N WElEcyB0byBmcmVlemUuICBUaGVuIGRldGVybWluZQpAQCAtMTEyMyw2ICsxMTM1LDE5IEBAIGhl YXBfdmFjdXVtX3JlbChSZWxhdGlvbiByZWwsIGNvbnN0IFZhY3V1bVBhcmFtcyBwYXJhbXMsCiAJ CQkJCQkJIG9yaWdfcmVsX3BhZ2VzID09IDAgPyAxMDAuMCA6CiAJCQkJCQkJIDEwMC4wICogdmFj cmVsLT5scGRlYWRfaXRlbV9wYWdlcyAvIG9yaWdfcmVsX3BhZ2VzLAogCQkJCQkJCSB2YWNyZWwt PmxwZGVhZF9pdGVtcyk7CisKKwkJCWlmICh2YWNyZWwtPndvcmtlcl91c2FnZS52YWN1dW0ubnBs YW5uZWQgPiAwKQorCQkJCWFwcGVuZFN0cmluZ0luZm8oJmJ1ZiwKKwkJCQkJCQkJIF8oInBhcmFs bGVsIHdvcmtlcnM6IGluZGV4IHZhY3V1bTogJWQgcGxhbm5lZCwgJWQgbGF1bmNoZWQgaW4gdG90 YWxcbiIpLAorCQkJCQkJCQkgdmFjcmVsLT53b3JrZXJfdXNhZ2UudmFjdXVtLm5wbGFubmVkLAor CQkJCQkJCQkgdmFjcmVsLT53b3JrZXJfdXNhZ2UudmFjdXVtLm5sYXVuY2hlZCk7CisKKwkJCWlm ICh2YWNyZWwtPndvcmtlcl91c2FnZS5jbGVhbnVwLm5wbGFubmVkID4gMCkKKwkJCQlhcHBlbmRT dHJpbmdJbmZvKCZidWYsCisJCQkJCQkJCSBfKCJwYXJhbGxlbCB3b3JrZXJzOiBpbmRleCBjbGVh bnVwOiAlZCBwbGFubmVkLCAlZCBsYXVuY2hlZFxuIiksCisJCQkJCQkJCSB2YWNyZWwtPndvcmtl cl91c2FnZS5jbGVhbnVwLm5wbGFubmVkLAorCQkJCQkJCQkgdmFjcmVsLT53b3JrZXJfdXNhZ2Uu Y2xlYW51cC5ubGF1bmNoZWQpOworCiAJCQlmb3IgKGludCBpID0gMDsgaSA8IHZhY3JlbC0+bmlu ZGV4ZXM7IGkrKykKIAkJCXsKIAkJCQlJbmRleEJ1bGtEZWxldGVSZXN1bHQgKmlzdGF0ID0gdmFj cmVsLT5pbmRzdGF0c1tpXTsKQEAgLTI2NjksNyArMjY5NCw4IEBAIGxhenlfdmFjdXVtX2FsbF9p bmRleGVzKExWUmVsU3RhdGUgKnZhY3JlbCkKIAl7CiAJCS8qIE91dHNvdXJjZSBldmVyeXRoaW5n IHRvIHBhcmFsbGVsIHZhcmlhbnQgKi8KIAkJcGFyYWxsZWxfdmFjdXVtX2J1bGtkZWxfYWxsX2lu ZGV4ZXModmFjcmVsLT5wdnMsIG9sZF9saXZlX3R1cGxlcywKLQkJCQkJCQkJCQkJdmFjcmVsLT5u dW1faW5kZXhfc2NhbnMpOworCQkJCQkJCQkJCQl2YWNyZWwtPm51bV9pbmRleF9zY2FucywKKwkJ CQkJCQkJCQkJJih2YWNyZWwtPndvcmtlcl91c2FnZS52YWN1dW0pKTsKIAogCQkvKgogCQkgKiBE byBhIHBvc3RjaGVjayB0byBjb25zaWRlciBhcHBseWluZyB3cmFwYXJvdW5kIGZhaWxzYWZlIG5v dy4gIE5vdGUKQEAgLTMxMDMsNyArMzEyOSw4IEBAIGxhenlfY2xlYW51cF9hbGxfaW5kZXhlcyhM VlJlbFN0YXRlICp2YWNyZWwpCiAJCS8qIE91dHNvdXJjZSBldmVyeXRoaW5nIHRvIHBhcmFsbGVs IHZhcmlhbnQgKi8KIAkJcGFyYWxsZWxfdmFjdXVtX2NsZWFudXBfYWxsX2luZGV4ZXModmFjcmVs LT5wdnMsIHJlbHR1cGxlcywKIAkJCQkJCQkJCQkJdmFjcmVsLT5udW1faW5kZXhfc2NhbnMsCi0J CQkJCQkJCQkJCWVzdGltYXRlZF9jb3VudCk7CisJCQkJCQkJCQkJCWVzdGltYXRlZF9jb3VudCwK KwkJCQkJCQkJCQkJJih2YWNyZWwtPndvcmtlcl91c2FnZS5jbGVhbnVwKSk7CiAJfQogCiAJLyog UmVzZXQgdGhlIHByb2dyZXNzIGNvdW50ZXJzICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9j b21tYW5kcy92YWN1dW1wYXJhbGxlbC5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFy YWxsZWwuYwppbmRleCAyNzkxMDhjYTg5Zi4uNzc4MzRiOTZhMjEgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFu ZHMvdmFjdXVtcGFyYWxsZWwuYwpAQCAtMjI1LDcgKzIyNSw3IEBAIHN0cnVjdCBQYXJhbGxlbFZh Y3V1bVN0YXRlCiBzdGF0aWMgaW50CXBhcmFsbGVsX3ZhY3V1bV9jb21wdXRlX3dvcmtlcnMoUmVs YXRpb24gKmluZHJlbHMsIGludCBuaW5kZXhlcywgaW50IG5yZXF1ZXN0ZWQsCiAJCQkJCQkJCQkJ CWJvb2wgKndpbGxfcGFyYWxsZWxfdmFjdXVtKTsKIHN0YXRpYyB2b2lkIHBhcmFsbGVsX3ZhY3V1 bV9wcm9jZXNzX2FsbF9pbmRleGVzKFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2cywgaW50IG51bV9p bmRleF9zY2FucywKLQkJCQkJCQkJCQkJCWJvb2wgdmFjdXVtKTsKKwkJCQkJCQkJCQkJCWJvb2wg dmFjdXVtLCBQVldvcmtlclN0YXRzICp3c3RhdHMpOwogc3RhdGljIHZvaWQgcGFyYWxsZWxfdmFj dXVtX3Byb2Nlc3Nfc2FmZV9pbmRleGVzKFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2cyk7CiBzdGF0 aWMgdm9pZCBwYXJhbGxlbF92YWN1dW1fcHJvY2Vzc191bnNhZmVfaW5kZXhlcyhQYXJhbGxlbFZh Y3V1bVN0YXRlICpwdnMpOwogc3RhdGljIHZvaWQgcGFyYWxsZWxfdmFjdXVtX3Byb2Nlc3Nfb25l X2luZGV4KFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2cywgUmVsYXRpb24gaW5kcmVsLApAQCAtNDk5 LDcgKzQ5OSw3IEBAIHBhcmFsbGVsX3ZhY3V1bV9yZXNldF9kZWFkX2l0ZW1zKFBhcmFsbGVsVmFj dXVtU3RhdGUgKnB2cykKICAqLwogdm9pZAogcGFyYWxsZWxfdmFjdXVtX2J1bGtkZWxfYWxsX2lu ZGV4ZXMoUGFyYWxsZWxWYWN1dW1TdGF0ZSAqcHZzLCBsb25nIG51bV90YWJsZV90dXBsZXMsCi0J CQkJCQkJCQlpbnQgbnVtX2luZGV4X3NjYW5zKQorCQkJCQkJCQkJaW50IG51bV9pbmRleF9zY2Fu cywgUFZXb3JrZXJTdGF0cyAqd3N0YXRzKQogewogCUFzc2VydCghSXNQYXJhbGxlbFdvcmtlcigp KTsKIApAQCAtNTEwLDcgKzUxMCw3IEBAIHBhcmFsbGVsX3ZhY3V1bV9idWxrZGVsX2FsbF9pbmRl eGVzKFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2cywgbG9uZyBudW1fdGFibGVfdHVwCiAJcHZzLT5z aGFyZWQtPnJlbHR1cGxlcyA9IG51bV90YWJsZV90dXBsZXM7CiAJcHZzLT5zaGFyZWQtPmVzdGlt YXRlZF9jb3VudCA9IHRydWU7CiAKLQlwYXJhbGxlbF92YWN1dW1fcHJvY2Vzc19hbGxfaW5kZXhl cyhwdnMsIG51bV9pbmRleF9zY2FucywgdHJ1ZSk7CisJcGFyYWxsZWxfdmFjdXVtX3Byb2Nlc3Nf YWxsX2luZGV4ZXMocHZzLCBudW1faW5kZXhfc2NhbnMsIHRydWUsIHdzdGF0cyk7CiB9CiAKIC8q CkBAIC01MTgsNyArNTE4LDggQEAgcGFyYWxsZWxfdmFjdXVtX2J1bGtkZWxfYWxsX2luZGV4ZXMo UGFyYWxsZWxWYWN1dW1TdGF0ZSAqcHZzLCBsb25nIG51bV90YWJsZV90dXAKICAqLwogdm9pZAog cGFyYWxsZWxfdmFjdXVtX2NsZWFudXBfYWxsX2luZGV4ZXMoUGFyYWxsZWxWYWN1dW1TdGF0ZSAq cHZzLCBsb25nIG51bV90YWJsZV90dXBsZXMsCi0JCQkJCQkJCQlpbnQgbnVtX2luZGV4X3NjYW5z LCBib29sIGVzdGltYXRlZF9jb3VudCkKKwkJCQkJCQkJCWludCBudW1faW5kZXhfc2NhbnMsIGJv b2wgZXN0aW1hdGVkX2NvdW50LAorCQkJCQkJCQkJUFZXb3JrZXJTdGF0cyAqd3N0YXRzKQogewog CUFzc2VydCghSXNQYXJhbGxlbFdvcmtlcigpKTsKIApAQCAtNTMwLDcgKzUzMSw3IEBAIHBhcmFs bGVsX3ZhY3V1bV9jbGVhbnVwX2FsbF9pbmRleGVzKFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2cywg bG9uZyBudW1fdGFibGVfdHVwCiAJcHZzLT5zaGFyZWQtPnJlbHR1cGxlcyA9IG51bV90YWJsZV90 dXBsZXM7CiAJcHZzLT5zaGFyZWQtPmVzdGltYXRlZF9jb3VudCA9IGVzdGltYXRlZF9jb3VudDsK IAotCXBhcmFsbGVsX3ZhY3V1bV9wcm9jZXNzX2FsbF9pbmRleGVzKHB2cywgbnVtX2luZGV4X3Nj YW5zLCBmYWxzZSk7CisJcGFyYWxsZWxfdmFjdXVtX3Byb2Nlc3NfYWxsX2luZGV4ZXMocHZzLCBu dW1faW5kZXhfc2NhbnMsIGZhbHNlLCB3c3RhdHMpOwogfQogCiAvKgpAQCAtNjA3LDEwICs2MDgs MTIgQEAgcGFyYWxsZWxfdmFjdXVtX2NvbXB1dGVfd29ya2VycyhSZWxhdGlvbiAqaW5kcmVscywg aW50IG5pbmRleGVzLCBpbnQgbnJlcXVlc3RlZCwKIC8qCiAgKiBQZXJmb3JtIGluZGV4IHZhY3V1 bSBvciBpbmRleCBjbGVhbnVwIHdpdGggcGFyYWxsZWwgd29ya2Vycy4gIFRoaXMgZnVuY3Rpb24K ICAqIG11c3QgYmUgdXNlZCBieSB0aGUgcGFyYWxsZWwgdmFjdXVtIGxlYWRlciBwcm9jZXNzLgor ICoKKyAqIElmIHdzdGF0cyBpcyBub3QgTlVMTCwgdGhlIHBhcmFsbGVsIHdvcmtlciBzdGF0aXN0 aWNzIGFyZSB1cGRhdGVkLgogICovCiBzdGF0aWMgdm9pZAogcGFyYWxsZWxfdmFjdXVtX3Byb2Nl c3NfYWxsX2luZGV4ZXMoUGFyYWxsZWxWYWN1dW1TdGF0ZSAqcHZzLCBpbnQgbnVtX2luZGV4X3Nj YW5zLAotCQkJCQkJCQkJYm9vbCB2YWN1dW0pCisJCQkJCQkJCQlib29sIHZhY3V1bSwgUFZXb3Jr ZXJTdGF0cyAqd3N0YXRzKQogewogCWludAkJCW53b3JrZXJzOwogCVBWSW5kVmFjU3RhdHVzIG5l d19zdGF0dXM7CkBAIC02NDcsNiArNjUwLDEwIEBAIHBhcmFsbGVsX3ZhY3V1bV9wcm9jZXNzX2Fs bF9pbmRleGVzKFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2cywgaW50IG51bV9pbmRleF9zY2FuCiAJ ICovCiAJbndvcmtlcnMgPSBNaW4obndvcmtlcnMsIHB2cy0+cGN4dC0+bndvcmtlcnMpOwogCisJ LyogVXBkYXRlIHRoZSBzdGF0aXN0aWNzLCBpZiB3ZSBhc2tlZCB0byAqLworCWlmICh3c3RhdHMg IT0gTlVMTCAmJiBud29ya2VycyA+IDApCisJCXdzdGF0cy0+bnBsYW5uZWQgKz0gbndvcmtlcnM7 CisKIAkvKgogCSAqIFNldCBpbmRleCB2YWN1dW0gc3RhdHVzIGFuZCBtYXJrIHdoZXRoZXIgcGFy YWxsZWwgdmFjdXVtIHdvcmtlciBjYW4KIAkgKiBwcm9jZXNzIGl0LgpAQCAtNzAzLDYgKzcxMCwx MCBAQCBwYXJhbGxlbF92YWN1dW1fcHJvY2Vzc19hbGxfaW5kZXhlcyhQYXJhbGxlbFZhY3V1bVN0 YXRlICpwdnMsIGludCBudW1faW5kZXhfc2NhbgogCQkJLyogRW5hYmxlIHNoYXJlZCBjb3N0IGJh bGFuY2UgZm9yIGxlYWRlciBiYWNrZW5kICovCiAJCQlWYWN1dW1TaGFyZWRDb3N0QmFsYW5jZSA9 ICYocHZzLT5zaGFyZWQtPmNvc3RfYmFsYW5jZSk7CiAJCQlWYWN1dW1BY3RpdmVOV29ya2VycyA9 ICYocHZzLT5zaGFyZWQtPmFjdGl2ZV9ud29ya2Vycyk7CisKKwkJCS8qIFVwZGF0ZSB0aGUgc3Rh dGlzdGljcywgaWYgd2UgYXNrZWQgdG8gKi8KKwkJCWlmICh3c3RhdHMgIT0gTlVMTCkKKwkJCQl3 c3RhdHMtPm5sYXVuY2hlZCArPSBwdnMtPnBjeHQtPm53b3JrZXJzX2xhdW5jaGVkOwogCQl9CiAK IAkJaWYgKHZhY3V1bSkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3ZhY3V1bS5o IGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvdmFjdXVtLmgKaW5kZXggZTg4NWE0YjljNzcuLjk1M2E1 MDYxODFlIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy92YWN1dW0uaAorKysgYi9z cmMvaW5jbHVkZS9jb21tYW5kcy92YWN1dW0uaApAQCAtMzAwLDYgKzMwMCwyOCBAQCB0eXBlZGVm IHN0cnVjdCBWYWNEZWFkSXRlbXNJbmZvCiAJaW50NjQJCW51bV9pdGVtczsJCS8qIGN1cnJlbnQg IyBvZiBlbnRyaWVzICovCiB9IFZhY0RlYWRJdGVtc0luZm87CiAKKy8qCisgKiBTdGF0aXN0aWNz IGZvciBwYXJhbGxlbCB2YWN1dW0gd29ya2VycyAocGxhbm5lZCB2cy4gYWN0dWFsKQorICovCit0 eXBlZGVmIHN0cnVjdCBQVldvcmtlclN0YXRzCit7CisJLyogTnVtYmVyIG9mIHBhcmFsbGVsIHdv cmtlcnMgcGxhbm5lZCB0byBsYXVuY2ggKi8KKwlpbnQJCQlucGxhbm5lZDsKKworCS8qIE51bWJl ciBvZiBwYXJhbGxlbCB3b3JrZXJzIHRoYXQgd2VyZSBzdWNjZXNzZnVsbHkgbGF1bmNoZWQgKi8K KwlpbnQJCQlubGF1bmNoZWQ7Cit9IFBWV29ya2VyU3RhdHM7CisKKy8qCisgKiBQVldvcmtlclVz YWdlIHN0b3JlcyBpbmZvcm1hdGlvbiBhYm91dCB0b3RhbCBudW1iZXIgb2YgbGF1bmNoZWQgYW5k CisgKiBwbGFubmVkIHdvcmtlcnMgZHVyaW5nIHBhcmFsbGVsIHZhY3V1bSAoYm90aCBmb3IgaW5k ZXggdmFjdXVtIGFuZCBjbGVhbnVwKS4KKyAqLwordHlwZWRlZiBzdHJ1Y3QgUFZXb3JrZXJVc2Fn ZQoreworCVBWV29ya2VyU3RhdHMgdmFjdXVtOworCVBWV29ya2VyU3RhdHMgY2xlYW51cDsKK30g UFZXb3JrZXJVc2FnZTsKKwogLyogR1VDIHBhcmFtZXRlcnMgKi8KIGV4dGVybiBQR0RMTElNUE9S VCBpbnQgZGVmYXVsdF9zdGF0aXN0aWNzX3RhcmdldDsJLyogUEdETExJTVBPUlQgZm9yIFBvc3RH SVMgKi8KIGV4dGVybiBQR0RMTElNUE9SVCBpbnQgdmFjdXVtX2ZyZWV6ZV9taW5fYWdlOwpAQCAt Mzk0LDExICs0MTYsMTMgQEAgZXh0ZXJuIFRpZFN0b3JlICpwYXJhbGxlbF92YWN1dW1fZ2V0X2Rl YWRfaXRlbXMoUGFyYWxsZWxWYWN1dW1TdGF0ZSAqcHZzLAogZXh0ZXJuIHZvaWQgcGFyYWxsZWxf dmFjdXVtX3Jlc2V0X2RlYWRfaXRlbXMoUGFyYWxsZWxWYWN1dW1TdGF0ZSAqcHZzKTsKIGV4dGVy biB2b2lkIHBhcmFsbGVsX3ZhY3V1bV9idWxrZGVsX2FsbF9pbmRleGVzKFBhcmFsbGVsVmFjdXVt U3RhdGUgKnB2cywKIAkJCQkJCQkJCQkJCWxvbmcgbnVtX3RhYmxlX3R1cGxlcywKLQkJCQkJCQkJ CQkJCWludCBudW1faW5kZXhfc2NhbnMpOworCQkJCQkJCQkJCQkJaW50IG51bV9pbmRleF9zY2Fu cywKKwkJCQkJCQkJCQkJCVBWV29ya2VyU3RhdHMgKndzdGF0cyk7CiBleHRlcm4gdm9pZCBwYXJh bGxlbF92YWN1dW1fY2xlYW51cF9hbGxfaW5kZXhlcyhQYXJhbGxlbFZhY3V1bVN0YXRlICpwdnMs CiAJCQkJCQkJCQkJCQlsb25nIG51bV90YWJsZV90dXBsZXMsCiAJCQkJCQkJCQkJCQlpbnQgbnVt X2luZGV4X3NjYW5zLAotCQkJCQkJCQkJCQkJYm9vbCBlc3RpbWF0ZWRfY291bnQpOworCQkJCQkJ CQkJCQkJYm9vbCBlc3RpbWF0ZWRfY291bnQsCisJCQkJCQkJCQkJCQlQVldvcmtlclN0YXRzICp3 c3RhdHMpOwogZXh0ZXJuIHZvaWQgcGFyYWxsZWxfdmFjdXVtX21haW4oZHNtX3NlZ21lbnQgKnNl Zywgc2htX3RvYyAqdG9jKTsKIAogLyogaW4gY29tbWFuZHMvYW5hbHl6ZS5jICovCmRpZmYgLS1n aXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCBiL3NyYy90b29scy9wZ2luZGVu dC90eXBlZGVmcy5saXN0CmluZGV4IDUyZjg2MDNhN2JlLi40YzIzMGVlMzhjYSAxMDA2NDQKLS0t IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKKysrIGIvc3JjL3Rvb2xzL3BnaW5k ZW50L3R5cGVkZWZzLmxpc3QKQEAgLTIwODgsNiArMjA4OCw4IEBAIFBWSW5kU3RhdHMKIFBWSW5k VmFjU3RhdHVzCiBQVk9JRAogUFZTaGFyZWQKK1BWV29ya2VyVXNhZ2UKK1BWV29ya2VyU3RhdHMK IFBYX0FsaWFzCiBQWF9DaXBoZXIKIFBYX0NvbWJvCi0tIAoyLjQzLjAKCg== --000000000000982b9b064d490276 Content-Type: text/x-patch; charset="US-ASCII"; name="v28--v29-diff-for-0002.patch" Content-Disposition: attachment; filename="v28--v29-diff-for-0002.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmvttt2t7 RnJvbSBmYWUzZGQxZjZiZDk3YWNiNjI2YTg1MTIwYmIwOWUyYjE4Yjc2Zjk4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5paWwgRGF2aWRvdiA8ZC5kYXZ5ZG92QHBvc3RncmVzcHJv LnJ1PgpEYXRlOiBXZWQsIDE4IE1hciAyMDI2IDE1OjAzOjMxICswNzAwClN1YmplY3Q6IFtQQVRD SCA0LzldIGZpeHVwIGZvciBwYXJhbGxlbCBhdXRvdmFjdXVtIGNvcmUKCi0tLQogc3JjL2JhY2tl bmQvYWNjZXNzL2NvbW1vbi9yZWxvcHRpb25zLmMgICAgfCAgMiArLQogc3JjL2JhY2tlbmQvcG9z dG1hc3Rlci9hdXRvdmFjdXVtLmMgICAgICAgfCAxMiArKysrKysrKystLS0KIHNyYy9iYWNrZW5k L3V0aWxzL21pc2MvZ3VjX3BhcmFtZXRlcnMuZGF0IHwgIDQgKystLQogc3JjL2luY2x1ZGUvdXRp bHMvcmVsLmggICAgICAgICAgICAgICAgICAgfCAgNyArKysrLS0tCiA0IGZpbGVzIGNoYW5nZWQs IDE2IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvYWNjZXNzL2NvbW1vbi9yZWxvcHRpb25zLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9u L3JlbG9wdGlvbnMuYwppbmRleCA5NDU5YTAxMGNjMy4uMDU1NTg1YzM4ZjMgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vcmVsb3B0aW9ucy5jCisrKyBiL3NyYy9iYWNrZW5k L2FjY2Vzcy9jb21tb24vcmVsb3B0aW9ucy5jCkBAIC0yNDIsNyArMjQyLDcgQEAgc3RhdGljIHJl bG9wdF9pbnQgaW50UmVsT3B0c1tdID0KIAkJCVJFTE9QVF9LSU5EX0hFQVAsCiAJCQlTaGFyZVVw ZGF0ZUV4Y2x1c2l2ZUxvY2sKIAkJfSwKLQkJLTEsIC0xLCAxMDI0CisJCTAsIC0xLCAxMDI0CiAJ fSwKIAl7CiAJCXsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYXV0b3ZhY3V1 bS5jIGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9hdXRvdmFjdXVtLmMKaW5kZXggZjE1M2QwMzQz YzguLmZmNTdkOGZjYTJhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL2F1dG92 YWN1dW0uYworKysgYi9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL2F1dG92YWN1dW0uYwpAQCAtMjc5 OCw2ICsyNzk4LDcgQEAgdGFibGVfcmVjaGVja19hdXRvdmFjKE9pZCByZWxpZCwgSFRBQiAqdGFi bGVfdG9hc3RfbWFwLAogCQlpbnQJCQltdWx0aXhhY3RfZnJlZXplX3RhYmxlX2FnZTsKIAkJaW50 CQkJbG9nX3ZhY3V1bV9taW5fZHVyYXRpb247CiAJCWludAkJCWxvZ19hbmFseXplX21pbl9kdXJh dGlvbjsKKwkJaW50CQkJbnBhcmFsbGVsX3dvcmtlcnMgPSAtMTsgLyogZGlzYWJsZWQgYnkgZGVm YXVsdCAqLwogCiAJCS8qCiAJCSAqIENhbGN1bGF0ZSB0aGUgdmFjdXVtIGNvc3QgcGFyYW1ldGVy cyBhbmQgdGhlIGZyZWV6ZSBhZ2VzLiAgSWYgdGhlcmUKQEAgLTI4NjAsOSArMjg2MSwxMyBAQCB0 YWJsZV9yZWNoZWNrX2F1dG92YWMoT2lkIHJlbGlkLCBIVEFCICp0YWJsZV90b2FzdF9tYXAsCiAJ CXRhYi0+YXRfcGFyYW1zLnRydW5jYXRlID0gVkFDT1BUVkFMVUVfVU5TUEVDSUZJRUQ7CiAKIAkJ LyogRGVjaWRlIHdoZXRoZXIgd2UgbmVlZCB0byBwcm9jZXNzIGluZGV4ZXMgb2YgdGFibGUgaW4g cGFyYWxsZWwuICovCi0JCXRhYi0+YXRfcGFyYW1zLm53b3JrZXJzID0gYXZvcHRzCi0JCQk/IGF2 b3B0cy0+YXV0b3ZhY3V1bV9wYXJhbGxlbF93b3JrZXJzCi0JCQk6IC0xOworCQlpZiAoYXZvcHRz KQorCQl7CisJCQlpZiAoYXZvcHRzLT5hdXRvdmFjdXVtX3BhcmFsbGVsX3dvcmtlcnMgPiAwKQor CQkJCW5wYXJhbGxlbF93b3JrZXJzID0gYXZvcHRzLT5hdXRvdmFjdXVtX3BhcmFsbGVsX3dvcmtl cnM7CisJCQllbHNlIGlmIChhdm9wdHMtPmF1dG92YWN1dW1fcGFyYWxsZWxfd29ya2VycyA9PSAt MSkKKwkJCQlucGFyYWxsZWxfd29ya2VycyA9IDA7CisJCX0KIAogCQl0YWItPmF0X3BhcmFtcy5m cmVlemVfbWluX2FnZSA9IGZyZWV6ZV9taW5fYWdlOwogCQl0YWItPmF0X3BhcmFtcy5mcmVlemVf dGFibGVfYWdlID0gZnJlZXplX3RhYmxlX2FnZTsKQEAgLTI4NzIsNiArMjg3Nyw3IEBAIHRhYmxl X3JlY2hlY2tfYXV0b3ZhYyhPaWQgcmVsaWQsIEhUQUIgKnRhYmxlX3RvYXN0X21hcCwKIAkJdGFi LT5hdF9wYXJhbXMubG9nX3ZhY3V1bV9taW5fZHVyYXRpb24gPSBsb2dfdmFjdXVtX21pbl9kdXJh dGlvbjsKIAkJdGFiLT5hdF9wYXJhbXMubG9nX2FuYWx5emVfbWluX2R1cmF0aW9uID0gbG9nX2Fu YWx5emVfbWluX2R1cmF0aW9uOwogCQl0YWItPmF0X3BhcmFtcy50b2FzdF9wYXJlbnQgPSBJbnZh bGlkT2lkOworCQl0YWItPmF0X3BhcmFtcy5ud29ya2VycyA9IG5wYXJhbGxlbF93b3JrZXJzOwog CiAJCS8qCiAJCSAqIExhdGVyLCBpbiB2YWN1dW1fcmVsKCksIHdlIGNoZWNrIHJlbG9wdGlvbnMg Zm9yIGFueQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfcGFyYW1ldGVy cy5kYXQgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y19wYXJhbWV0ZXJzLmRhdAppbmRleCAx MjM5M2MxMjE0Yi4uOWJkMTU1ZTk5ZjYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21p c2MvZ3VjX3BhcmFtZXRlcnMuZGF0CisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3Bh cmFtZXRlcnMuZGF0CkBAIC0xNTUsMTEgKzE1NSwxMSBAQAogfSwKIAogeyBuYW1lID0+ICdhdXRv dmFjdXVtX21heF9wYXJhbGxlbF93b3JrZXJzJywgdHlwZSA9PiAnaW50JywgY29udGV4dCA9PiAn UEdDX1NJR0hVUCcsIGdyb3VwID0+ICdWQUNVVU1fQVVUT1ZBQ1VVTScsCi0gIHNob3J0X2Rlc2Mg PT4gJ01heGltdW0gbnVtYmVyIG9mIHBhcmFsbGVsIHdvcmtlcnMgdGhhdCBhIHNpbmdsZSBhdXRv dmFjdXVtIHdvcmtlciBjYW4gdGFrZSBmcm9tIGJnd29ya2VycyBwb29sLicsCisgIHNob3J0X2Rl c2MgPT4gJ01heGltdW0gbnVtYmVyIG9mIHBhcmFsbGVsIHByb2Nlc3NlcyBwZXIgYXV0b3ZhY3V1 bWluZyBvZiBvbmUgdGFibGUuJywKICAgdmFyaWFibGUgPT4gJ2F1dG92YWN1dW1fbWF4X3BhcmFs bGVsX3dvcmtlcnMnLAogICBib290X3ZhbCA9PiAnMicsCiAgIG1pbiA9PiAnMCcsCi0gIG1heCA9 PiAnTUFYX0JBQ0tFTkRTJywKKyAgbWF4ID0+ICdNQVhfUEFSQUxMRUxfV09SS0VSX0xJTUlUJywK IH0sCiAKIHsgbmFtZSA9PiAnYXV0b3ZhY3V1bV9tYXhfd29ya2VycycsIHR5cGUgPT4gJ2ludCcs IGNvbnRleHQgPT4gJ1BHQ19TSUdIVVAnLCBncm91cCA9PiAnVkFDVVVNX0FVVE9WQUNVVU0nLApk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvcmVsLmggYi9zcmMvaW5jbHVkZS91dGlscy9y ZWwuaAppbmRleCAxMWRkM2FlYmM2Yy4uMTk4MTk1NDAwOGUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL3V0aWxzL3JlbC5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL3JlbC5oCkBAIC0zMTMsOSAr MzEzLDEwIEBAIHR5cGVkZWYgc3RydWN0IEF1dG9WYWNPcHRzCiAJYm9vbAkJZW5hYmxlZDsKIAog CS8qCi0JICogVGFyZ2V0IG51bWJlciBvZiBwYXJhbGxlbCBhdXRvdmFjdXVtIHdvcmtlcnMuIC0x IGJ5IGRlZmF1bHQgZGlzYWJsZXMKLQkgKiBwYXJhbGxlbCB2YWN1dW0gZHVyaW5nIGF1dG92YWN1 dW0uIDAgbWVhbnMgY2hvb3NlIHRoZSBwYXJhbGxlbCBkZWdyZWUKLQkgKiBiYXNlZCBvbiB0aGUg bnVtYmVyIG9mIGluZGV4ZXMuCisJICogVGFyZ2V0IG51bWJlciBvZiBwYXJhbGxlbCBhdXRvdmFj dXVtIHdvcmtlcnMuIDAgYnkgZGVmYXVsdCBkaXNhYmxlcworCSAqIHBhcmFsbGVsIHZhY3V1bSBk dXJpbmcgYXV0b3ZhY3V1bS4gLTEgbWVhbnMgY2hvb3NlIHRoZSBwYXJhbGxlbCBkZWdyZWUKKwkg KiBiYXNlZCBvbiB0aGUgbnVtYmVyIG9mIGluZGV4ZXMgKHRoZSBhdXRvdmFjdXVtX21heF9wYXJh bGxlbF93b3JrZXJzCisJICogcGFyYW1ldGVyIHdpbGwgYmUgdXNlZCBhcyBhIGxpbWl0KS4KIAkg Ki8KIAlpbnQJCQlhdXRvdmFjdXVtX3BhcmFsbGVsX3dvcmtlcnM7CiAKLS0gCjIuNDMuMAoK --000000000000982b9b064d490276 Content-Type: text/x-patch; charset="US-ASCII"; name="v28--v29-diff-for-0005.patch" Content-Disposition: attachment; filename="v28--v29-diff-for-0005.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmvttt265 RnJvbSA3ZGU5MGFiMDFhNzExYTU0NTEwYzFmNDE5MzQ1NTVlZDJmYjRjOWU0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5paWwgRGF2aWRvdiA8ZC5kYXZ5ZG92QHBvc3RncmVzcHJv LnJ1PgpEYXRlOiBXZWQsIDE4IE1hciAyMDI2IDE1OjQxOjU1ICswNzAwClN1YmplY3Q6IFtQQVRD SCA5LzldIGRvY3VtZW50YXRpb24gZml4ZXMKCi0tLQogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVf dGFibGUuc2dtbCB8IDcgKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwg MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJs ZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbAppbmRleCA0ODk0ZGUw MjFjZC4uZTM2NzMxMGE1NzEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3Rh YmxlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbApAQCAtMTcy OCw5ICsxNzI4LDEwIEBAIFdJVEggKCBNT0RVTFVTIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5udW1lcmljX2xpdGVyYWw8L3JlcGxhY2VhYmxlPiwgUkVNCiAgICAgIDxwYXJhPgogICAg ICAgU2V0cyB0aGUgbWF4aW11bSBudW1iZXIgb2YgcGFyYWxsZWwgYXV0b3ZhY3V1bSB3b3JrZXJz IHRoYXQgY2FuIHByb2Nlc3MKICAgICAgIGluZGV4ZXMgb2YgdGhpcyB0YWJsZS4KLSAgICAgIFRo ZSBkZWZhdWx0IHZhbHVlIGlzIC0xLCB3aGljaCBtZWFucyBubyBwYXJhbGxlbCBpbmRleCB2YWN1 dW1pbmcgZm9yCi0gICAgICB0aGlzIHRhYmxlLiBJZiB2YWx1ZSBpcyAwIHRoZW4gcGFyYWxsZWwg ZGVncmVlIHdpbGwgY29tcHV0ZWQgYmFzZWQgb24KLSAgICAgIG51bWJlciBvZiBpbmRleGVzLgor ICAgICAgVGhlIGRlZmF1bHQgdmFsdWUgaXMgMCwgd2hpY2ggbWVhbnMgbm8gcGFyYWxsZWwgaW5k ZXggdmFjdXVtaW5nIGZvcgorICAgICAgdGhpcyB0YWJsZS4gSWYgdmFsdWUgaXMgLTEgdGhlbiBw YXJhbGxlbCBkZWdyZWUgd2lsbCBjb21wdXRlZCBiYXNlZCBvbgorICAgICAgbnVtYmVyIG9mIGlu ZGV4ZXMgYW5kIGxpbWl0ZWQgYnkgdGhlIDx4cmVmIGxpbmtlbmQ9Imd1Yy1hdXRvdmFjdXVtLW1h eC1wYXJhbGxlbC13b3JrZXJzIi8+CisgICAgICBwYXJhbWV0ZXIuCiAgICAgICBOb3RlIHRoYXQg dGhlIGNvbXB1dGVkIG51bWJlciBvZiB3b3JrZXJzIG1heSBub3QgYWN0dWFsbHkgYmUgYXZhaWxh YmxlIGF0CiAgICAgICBydW4gdGltZS4gSWYgdGhpcyBvY2N1cnMsIHRoZSBhdXRvdmFjdXVtIHdp bGwgcnVuIHdpdGggZmV3ZXIgd29ya2VycwogICAgICAgdGhhbiBleHBlY3RlZC4KLS0gCjIuNDMu MAoK --000000000000982b9b064d490276 Content-Type: text/x-patch; charset="US-ASCII"; name="v28--v29-diff-for-0001.patch" Content-Disposition: attachment; filename="v28--v29-diff-for-0001.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmvttt348 RnJvbSAxNTcxYjdhMmViN2RhY2JkODBjNjk3YWFiOTM3ZTM5OGMwZjcwZGFmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXNhaGlrbyBTYXdhZGEgPHNhd2FkYS5tc2hrQGdtYWlsLmNv bT4KRGF0ZTogTW9uLCAxNiBNYXIgMjAyNiAxNTowOToyNiAtMDcwMApTdWJqZWN0OiBbUEFUQ0gg Mi85XSBmaXh1cCBmb3IgbG9nZ2luZy4KCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFj dXVtbGF6eS5jICB8IDM1ICsrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQogc3JjL2JhY2tlbmQv Y29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYyB8IDIxICsrKysrKystLS0tLS0tLS0KIHNyYy9pbmNs dWRlL2NvbW1hbmRzL3ZhY3V1bS5oICAgICAgICAgfCAyNiArKysrKysrKysrLS0tLS0tLS0tLQog c3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgICAgICB8ICA0ICstLQogNCBmaWxlcyBj aGFuZ2VkLCA0MSBpbnNlcnRpb25zKCspLCA0NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3Mv aGVhcC92YWN1dW1sYXp5LmMKaW5kZXggY2NjYWVlNWI2MjAuLmM1NzQzMjY3MGU3IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKKysrIGIvc3JjL2JhY2tl bmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCkBAIC0zNDYsOSArMzQ2LDkgQEAgdHlwZWRlZiBz dHJ1Y3QgTFZSZWxTdGF0ZQogCiAJLyoKIAkgKiBUb3RhbCBudW1iZXIgb2YgcGxhbm5lZCBhbmQg YWN0dWFsbHkgbGF1bmNoZWQgcGFyYWxsZWwgd29ya2VycyBmb3IKLQkgKiBpbmRleCBzY2Fucy4K KwkgKiBpbmRleCB2YWN1dW1pbmcgYW5kIGluZGV4IGNsZWFudXAuCiAJICovCi0JUFZXb3JrZXJz VXNhZ2Ugd29ya2Vyc191c2FnZTsKKwlQVldvcmtlclVzYWdlIHdvcmtlcl91c2FnZTsKIAogCS8q IENvdW50ZXJzIHRoYXQgZm9sbG93IGFyZSBvbmx5IGZvciBzY2FubmVkX3BhZ2VzICovCiAJaW50 NjQJCXR1cGxlc19kZWxldGVkOyAvKiAjIGRlbGV0ZWQgZnJvbSB0YWJsZSAqLwpAQCAtNzg4LDEw ICs3ODgsMTAgQEAgaGVhcF92YWN1dW1fcmVsKFJlbGF0aW9uIHJlbCwgY29uc3QgVmFjdXVtUGFy YW1zIHBhcmFtcywKIAl2YWNyZWwtPm5ld19hbGxfdmlzaWJsZV9hbGxfZnJvemVuX3BhZ2VzID0g MDsKIAl2YWNyZWwtPm5ld19hbGxfZnJvemVuX3BhZ2VzID0gMDsKIAotCXZhY3JlbC0+d29ya2Vy c191c2FnZS52YWN1dW0ubmxhdW5jaGVkID0gMDsKLQl2YWNyZWwtPndvcmtlcnNfdXNhZ2UudmFj dXVtLm5wbGFubmVkID0gMDsKLQl2YWNyZWwtPndvcmtlcnNfdXNhZ2UuY2xlYW51cC5ubGF1bmNo ZWQgPSAwOwotCXZhY3JlbC0+d29ya2Vyc191c2FnZS5jbGVhbnVwLm5wbGFubmVkID0gMDsKKwl2 YWNyZWwtPndvcmtlcl91c2FnZS52YWN1dW0ubmxhdW5jaGVkID0gMDsKKwl2YWNyZWwtPndvcmtl cl91c2FnZS52YWN1dW0ubnBsYW5uZWQgPSAwOworCXZhY3JlbC0+d29ya2VyX3VzYWdlLmNsZWFu dXAubmxhdW5jaGVkID0gMDsKKwl2YWNyZWwtPndvcmtlcl91c2FnZS5jbGVhbnVwLm5wbGFubmVk ID0gMDsKIAogCS8qCiAJICogR2V0IGN1dG9mZnMgdGhhdCBkZXRlcm1pbmUgd2hpY2ggZGVsZXRl ZCB0dXBsZXMgYXJlIGNvbnNpZGVyZWQgREVBRCwKQEAgLTExMzUsMjAgKzExMzUsMTkgQEAgaGVh cF92YWN1dW1fcmVsKFJlbGF0aW9uIHJlbCwgY29uc3QgVmFjdXVtUGFyYW1zIHBhcmFtcywKIAkJ CQkJCQkgb3JpZ19yZWxfcGFnZXMgPT0gMCA/IDEwMC4wIDoKIAkJCQkJCQkgMTAwLjAgKiB2YWNy ZWwtPmxwZGVhZF9pdGVtX3BhZ2VzIC8gb3JpZ19yZWxfcGFnZXMsCiAJCQkJCQkJIHZhY3JlbC0+ bHBkZWFkX2l0ZW1zKTsKLQkJCWlmICh2YWNyZWwtPndvcmtlcnNfdXNhZ2UudmFjdXVtLm5wbGFu bmVkID4gMCkKLQkJCXsKKworCQkJaWYgKHZhY3JlbC0+d29ya2VyX3VzYWdlLnZhY3V1bS5ucGxh bm5lZCA+IDApCiAJCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmLAogCQkJCQkJCQkgXygicGFyYWxs ZWwgd29ya2VyczogaW5kZXggdmFjdXVtOiAlZCBwbGFubmVkLCAlZCBsYXVuY2hlZCBpbiB0b3Rh bFxuIiksCi0JCQkJCQkJCSB2YWNyZWwtPndvcmtlcnNfdXNhZ2UudmFjdXVtLm5wbGFubmVkLAot CQkJCQkJCQkgdmFjcmVsLT53b3JrZXJzX3VzYWdlLnZhY3V1bS5ubGF1bmNoZWQpOwotCQkJfQot CQkJaWYgKHZhY3JlbC0+d29ya2Vyc191c2FnZS5jbGVhbnVwLm5wbGFubmVkID4gMCkKLQkJCXsK KwkJCQkJCQkJIHZhY3JlbC0+d29ya2VyX3VzYWdlLnZhY3V1bS5ucGxhbm5lZCwKKwkJCQkJCQkJ IHZhY3JlbC0+d29ya2VyX3VzYWdlLnZhY3V1bS5ubGF1bmNoZWQpOworCisJCQlpZiAodmFjcmVs LT53b3JrZXJfdXNhZ2UuY2xlYW51cC5ucGxhbm5lZCA+IDApCiAJCQkJYXBwZW5kU3RyaW5nSW5m bygmYnVmLAogCQkJCQkJCQkgXygicGFyYWxsZWwgd29ya2VyczogaW5kZXggY2xlYW51cDogJWQg cGxhbm5lZCwgJWQgbGF1bmNoZWRcbiIpLAotCQkJCQkJCQkgdmFjcmVsLT53b3JrZXJzX3VzYWdl LmNsZWFudXAubnBsYW5uZWQsCi0JCQkJCQkJCSB2YWNyZWwtPndvcmtlcnNfdXNhZ2UuY2xlYW51 cC5ubGF1bmNoZWQpOwotCQkJfQorCQkJCQkJCQkgdmFjcmVsLT53b3JrZXJfdXNhZ2UuY2xlYW51 cC5ucGxhbm5lZCwKKwkJCQkJCQkJIHZhY3JlbC0+d29ya2VyX3VzYWdlLmNsZWFudXAubmxhdW5j aGVkKTsKKwogCQkJZm9yIChpbnQgaSA9IDA7IGkgPCB2YWNyZWwtPm5pbmRleGVzOyBpKyspCiAJ CQl7CiAJCQkJSW5kZXhCdWxrRGVsZXRlUmVzdWx0ICppc3RhdCA9IHZhY3JlbC0+aW5kc3RhdHNb aV07CkBAIC0yNjk2LDcgKzI2OTUsNyBAQCBsYXp5X3ZhY3V1bV9hbGxfaW5kZXhlcyhMVlJlbFN0 YXRlICp2YWNyZWwpCiAJCS8qIE91dHNvdXJjZSBldmVyeXRoaW5nIHRvIHBhcmFsbGVsIHZhcmlh bnQgKi8KIAkJcGFyYWxsZWxfdmFjdXVtX2J1bGtkZWxfYWxsX2luZGV4ZXModmFjcmVsLT5wdnMs IG9sZF9saXZlX3R1cGxlcywKIAkJCQkJCQkJCQkJdmFjcmVsLT5udW1faW5kZXhfc2NhbnMsCi0J CQkJCQkJCQkJCSZ2YWNyZWwtPndvcmtlcnNfdXNhZ2UpOworCQkJCQkJCQkJCQkmKHZhY3JlbC0+ d29ya2VyX3VzYWdlLnZhY3V1bSkpOwogCiAJCS8qCiAJCSAqIERvIGEgcG9zdGNoZWNrIHRvIGNv bnNpZGVyIGFwcGx5aW5nIHdyYXBhcm91bmQgZmFpbHNhZmUgbm93LiAgTm90ZQpAQCAtMzEzMSw3 ICszMTMwLDcgQEAgbGF6eV9jbGVhbnVwX2FsbF9pbmRleGVzKExWUmVsU3RhdGUgKnZhY3JlbCkK IAkJcGFyYWxsZWxfdmFjdXVtX2NsZWFudXBfYWxsX2luZGV4ZXModmFjcmVsLT5wdnMsIHJlbHR1 cGxlcywKIAkJCQkJCQkJCQkJdmFjcmVsLT5udW1faW5kZXhfc2NhbnMsCiAJCQkJCQkJCQkJCWVz dGltYXRlZF9jb3VudCwKLQkJCQkJCQkJCQkJJnZhY3JlbC0+d29ya2Vyc191c2FnZSk7CisJCQkJ CQkJCQkJCSYodmFjcmVsLT53b3JrZXJfdXNhZ2UuY2xlYW51cCkpOwogCX0KIAogCS8qIFJlc2V0 IHRoZSBwcm9ncmVzcyBjb3VudGVycyAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvdmFjdXVtcGFyYWxsZWwuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVs LmMKaW5kZXggNjkyNzI5ZWZkNWUuLjc3ODM0Yjk2YTIxIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Zh Y3V1bXBhcmFsbGVsLmMKQEAgLTIyNSw3ICsyMjUsNyBAQCBzdHJ1Y3QgUGFyYWxsZWxWYWN1dW1T dGF0ZQogc3RhdGljIGludAlwYXJhbGxlbF92YWN1dW1fY29tcHV0ZV93b3JrZXJzKFJlbGF0aW9u ICppbmRyZWxzLCBpbnQgbmluZGV4ZXMsIGludCBucmVxdWVzdGVkLAogCQkJCQkJCQkJCQlib29s ICp3aWxsX3BhcmFsbGVsX3ZhY3V1bSk7CiBzdGF0aWMgdm9pZCBwYXJhbGxlbF92YWN1dW1fcHJv Y2Vzc19hbGxfaW5kZXhlcyhQYXJhbGxlbFZhY3V1bVN0YXRlICpwdnMsIGludCBudW1faW5kZXhf c2NhbnMsCi0JCQkJCQkJCQkJCQlib29sIHZhY3V1bSwgUFZXb3JrZXJzU3RhdHMgKndzdGF0cyk7 CisJCQkJCQkJCQkJCQlib29sIHZhY3V1bSwgUFZXb3JrZXJTdGF0cyAqd3N0YXRzKTsKIHN0YXRp YyB2b2lkIHBhcmFsbGVsX3ZhY3V1bV9wcm9jZXNzX3NhZmVfaW5kZXhlcyhQYXJhbGxlbFZhY3V1 bVN0YXRlICpwdnMpOwogc3RhdGljIHZvaWQgcGFyYWxsZWxfdmFjdXVtX3Byb2Nlc3NfdW5zYWZl X2luZGV4ZXMoUGFyYWxsZWxWYWN1dW1TdGF0ZSAqcHZzKTsKIHN0YXRpYyB2b2lkIHBhcmFsbGVs X3ZhY3V1bV9wcm9jZXNzX29uZV9pbmRleChQYXJhbGxlbFZhY3V1bVN0YXRlICpwdnMsIFJlbGF0 aW9uIGluZHJlbCwKQEAgLTQ5OSw3ICs0OTksNyBAQCBwYXJhbGxlbF92YWN1dW1fcmVzZXRfZGVh ZF9pdGVtcyhQYXJhbGxlbFZhY3V1bVN0YXRlICpwdnMpCiAgKi8KIHZvaWQKIHBhcmFsbGVsX3Zh Y3V1bV9idWxrZGVsX2FsbF9pbmRleGVzKFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2cywgbG9uZyBu dW1fdGFibGVfdHVwbGVzLAotCQkJCQkJCQkJaW50IG51bV9pbmRleF9zY2FucywgUFZXb3JrZXJz VXNhZ2UgKnd1c2FnZSkKKwkJCQkJCQkJCWludCBudW1faW5kZXhfc2NhbnMsIFBWV29ya2VyU3Rh dHMgKndzdGF0cykKIHsKIAlBc3NlcnQoIUlzUGFyYWxsZWxXb3JrZXIoKSk7CiAKQEAgLTUxMCw4 ICs1MTAsNyBAQCBwYXJhbGxlbF92YWN1dW1fYnVsa2RlbF9hbGxfaW5kZXhlcyhQYXJhbGxlbFZh Y3V1bVN0YXRlICpwdnMsIGxvbmcgbnVtX3RhYmxlX3R1cAogCXB2cy0+c2hhcmVkLT5yZWx0dXBs ZXMgPSBudW1fdGFibGVfdHVwbGVzOwogCXB2cy0+c2hhcmVkLT5lc3RpbWF0ZWRfY291bnQgPSB0 cnVlOwogCi0JcGFyYWxsZWxfdmFjdXVtX3Byb2Nlc3NfYWxsX2luZGV4ZXMocHZzLCBudW1faW5k ZXhfc2NhbnMsIHRydWUsCi0JCQkJCQkJCQkJJnd1c2FnZS0+dmFjdXVtKTsKKwlwYXJhbGxlbF92 YWN1dW1fcHJvY2Vzc19hbGxfaW5kZXhlcyhwdnMsIG51bV9pbmRleF9zY2FucywgdHJ1ZSwgd3N0 YXRzKTsKIH0KIAogLyoKQEAgLTUyMCw3ICs1MTksNyBAQCBwYXJhbGxlbF92YWN1dW1fYnVsa2Rl bF9hbGxfaW5kZXhlcyhQYXJhbGxlbFZhY3V1bVN0YXRlICpwdnMsIGxvbmcgbnVtX3RhYmxlX3R1 cAogdm9pZAogcGFyYWxsZWxfdmFjdXVtX2NsZWFudXBfYWxsX2luZGV4ZXMoUGFyYWxsZWxWYWN1 dW1TdGF0ZSAqcHZzLCBsb25nIG51bV90YWJsZV90dXBsZXMsCiAJCQkJCQkJCQlpbnQgbnVtX2lu ZGV4X3NjYW5zLCBib29sIGVzdGltYXRlZF9jb3VudCwKLQkJCQkJCQkJCVBWV29ya2Vyc1VzYWdl ICp3dXNhZ2UpCisJCQkJCQkJCQlQVldvcmtlclN0YXRzICp3c3RhdHMpCiB7CiAJQXNzZXJ0KCFJ c1BhcmFsbGVsV29ya2VyKCkpOwogCkBAIC01MzIsOCArNTMxLDcgQEAgcGFyYWxsZWxfdmFjdXVt X2NsZWFudXBfYWxsX2luZGV4ZXMoUGFyYWxsZWxWYWN1dW1TdGF0ZSAqcHZzLCBsb25nIG51bV90 YWJsZV90dXAKIAlwdnMtPnNoYXJlZC0+cmVsdHVwbGVzID0gbnVtX3RhYmxlX3R1cGxlczsKIAlw dnMtPnNoYXJlZC0+ZXN0aW1hdGVkX2NvdW50ID0gZXN0aW1hdGVkX2NvdW50OwogCi0JcGFyYWxs ZWxfdmFjdXVtX3Byb2Nlc3NfYWxsX2luZGV4ZXMocHZzLCBudW1faW5kZXhfc2NhbnMsIGZhbHNl LAotCQkJCQkJCQkJCSZ3dXNhZ2UtPmNsZWFudXApOworCXBhcmFsbGVsX3ZhY3V1bV9wcm9jZXNz X2FsbF9pbmRleGVzKHB2cywgbnVtX2luZGV4X3NjYW5zLCBmYWxzZSwgd3N0YXRzKTsKIH0KIAog LyoKQEAgLTYxMSwxMiArNjA5LDExIEBAIHBhcmFsbGVsX3ZhY3V1bV9jb21wdXRlX3dvcmtlcnMo UmVsYXRpb24gKmluZHJlbHMsIGludCBuaW5kZXhlcywgaW50IG5yZXF1ZXN0ZWQsCiAgKiBQZXJm b3JtIGluZGV4IHZhY3V1bSBvciBpbmRleCBjbGVhbnVwIHdpdGggcGFyYWxsZWwgd29ya2Vycy4g IFRoaXMgZnVuY3Rpb24KICAqIG11c3QgYmUgdXNlZCBieSB0aGUgcGFyYWxsZWwgdmFjdXVtIGxl YWRlciBwcm9jZXNzLgogICoKLSAqIElmIHdzdGF0cyBpcyBub3QgTlVMTCwgdGhlIHN0YXRpc3Rp Y3MgaXQgc3RvcmVzIHdpbGwgYmUgdXBkYXRlZCBhY2NvcmRpbmcKLSAqIHRvIHdoYXQgaGFwcGVu cyBkdXJpbmcgZnVuY3Rpb24gZXhlY3V0aW9uLgorICogSWYgd3N0YXRzIGlzIG5vdCBOVUxMLCB0 aGUgcGFyYWxsZWwgd29ya2VyIHN0YXRpc3RpY3MgYXJlIHVwZGF0ZWQuCiAgKi8KIHN0YXRpYyB2 b2lkCiBwYXJhbGxlbF92YWN1dW1fcHJvY2Vzc19hbGxfaW5kZXhlcyhQYXJhbGxlbFZhY3V1bVN0 YXRlICpwdnMsIGludCBudW1faW5kZXhfc2NhbnMsCi0JCQkJCQkJCQlib29sIHZhY3V1bSwgUFZX b3JrZXJzU3RhdHMgKndzdGF0cykKKwkJCQkJCQkJCWJvb2wgdmFjdXVtLCBQVldvcmtlclN0YXRz ICp3c3RhdHMpCiB7CiAJaW50CQkJbndvcmtlcnM7CiAJUFZJbmRWYWNTdGF0dXMgbmV3X3N0YXR1 czsKQEAgLTY1Myw3ICs2NTAsNyBAQCBwYXJhbGxlbF92YWN1dW1fcHJvY2Vzc19hbGxfaW5kZXhl cyhQYXJhbGxlbFZhY3V1bVN0YXRlICpwdnMsIGludCBudW1faW5kZXhfc2NhbgogCSAqLwogCW53 b3JrZXJzID0gTWluKG53b3JrZXJzLCBwdnMtPnBjeHQtPm53b3JrZXJzKTsKIAotCS8qIFJlbWVt YmVyIHRoaXMgdmFsdWUsIGlmIHdlIGFza2VkIHRvICovCisJLyogVXBkYXRlIHRoZSBzdGF0aXN0 aWNzLCBpZiB3ZSBhc2tlZCB0byAqLwogCWlmICh3c3RhdHMgIT0gTlVMTCAmJiBud29ya2VycyA+ IDApCiAJCXdzdGF0cy0+bnBsYW5uZWQgKz0gbndvcmtlcnM7CiAKQEAgLTcxNCw3ICs3MTEsNyBA QCBwYXJhbGxlbF92YWN1dW1fcHJvY2Vzc19hbGxfaW5kZXhlcyhQYXJhbGxlbFZhY3V1bVN0YXRl ICpwdnMsIGludCBudW1faW5kZXhfc2NhbgogCQkJVmFjdXVtU2hhcmVkQ29zdEJhbGFuY2UgPSAm KHB2cy0+c2hhcmVkLT5jb3N0X2JhbGFuY2UpOwogCQkJVmFjdXVtQWN0aXZlTldvcmtlcnMgPSAm KHB2cy0+c2hhcmVkLT5hY3RpdmVfbndvcmtlcnMpOwogCi0JCQkvKiBSZW1lbWJlciB0aGlzIHZh bHVlLCBpZiB3ZSBhc2tlZCB0byAqLworCQkJLyogVXBkYXRlIHRoZSBzdGF0aXN0aWNzLCBpZiB3 ZSBhc2tlZCB0byAqLwogCQkJaWYgKHdzdGF0cyAhPSBOVUxMKQogCQkJCXdzdGF0cy0+bmxhdW5j aGVkICs9IHB2cy0+cGN4dC0+bndvcmtlcnNfbGF1bmNoZWQ7CiAJCX0KZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL2NvbW1hbmRzL3ZhY3V1bS5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvdmFjdXVt LmgKaW5kZXggMWQ4MjA5MTVkNzEuLjk1M2E1MDYxODFlIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9jb21tYW5kcy92YWN1dW0uaAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy92YWN1dW0uaApA QCAtMzAxLDI2ICszMDEsMjYgQEAgdHlwZWRlZiBzdHJ1Y3QgVmFjRGVhZEl0ZW1zSW5mbwogfSBW YWNEZWFkSXRlbXNJbmZvOwogCiAvKgotICogSGVscGVyIGZvciB0aGUgUFZXb3JrZXJzVXNhZ2Ug c3RydWN0dXJlIChzZWUgYmVsb3cpLCB0byBhdm9pZCByZXBldGl0aW9uLgorICogU3RhdGlzdGlj cyBmb3IgcGFyYWxsZWwgdmFjdXVtIHdvcmtlcnMgKHBsYW5uZWQgdnMuIGFjdHVhbCkKICAqLwot dHlwZWRlZiBzdHJ1Y3QgUFZXb3JrZXJzU3RhdHMKK3R5cGVkZWYgc3RydWN0IFBWV29ya2VyU3Rh dHMKIHsKLQkvKiBOdW1iZXIgb2YgcGFyYWxsZWwgd29ya2VycyB3ZSBhcmUgcGxhbm5lZCB0byBs YXVuY2ggKi8KKwkvKiBOdW1iZXIgb2YgcGFyYWxsZWwgd29ya2VycyBwbGFubmVkIHRvIGxhdW5j aCAqLwogCWludAkJCW5wbGFubmVkOwogCi0JLyogTnVtYmVyIG9mIGxhdW5jaGVkIHBhcmFsbGVs IHdvcmtlcnMgKi8KKwkvKiBOdW1iZXIgb2YgcGFyYWxsZWwgd29ya2VycyB0aGF0IHdlcmUgc3Vj Y2Vzc2Z1bGx5IGxhdW5jaGVkICovCiAJaW50CQkJbmxhdW5jaGVkOwotfSBQVldvcmtlcnNTdGF0 czsKK30gUFZXb3JrZXJTdGF0czsKIAogLyoKLSAqIFBWV29ya2Vyc1VzYWdlIHN0b3JlcyBpbmZv cm1hdGlvbiBhYm91dCB0b3RhbCBudW1iZXIgb2YgbGF1bmNoZWQgYW5kCi0gKiBwbGFubmVkIHdv cmtlcnMgZHVyaW5nIHBhcmFsbGVsIHZhY3V1bSAoYm90aCBmb3IgdmFjdXVtIGFuZCBjbGVhbnVw KS4KKyAqIFBWV29ya2VyVXNhZ2Ugc3RvcmVzIGluZm9ybWF0aW9uIGFib3V0IHRvdGFsIG51bWJl ciBvZiBsYXVuY2hlZCBhbmQKKyAqIHBsYW5uZWQgd29ya2VycyBkdXJpbmcgcGFyYWxsZWwgdmFj dXVtIChib3RoIGZvciBpbmRleCB2YWN1dW0gYW5kIGNsZWFudXApLgogICovCi10eXBlZGVmIHN0 cnVjdCBQVldvcmtlcnNVc2FnZQordHlwZWRlZiBzdHJ1Y3QgUFZXb3JrZXJVc2FnZQogewotCVBW V29ya2Vyc1N0YXRzIHZhY3V1bTsKLQlQVldvcmtlcnNTdGF0cyBjbGVhbnVwOwotfSBQVldvcmtl cnNVc2FnZTsKKwlQVldvcmtlclN0YXRzIHZhY3V1bTsKKwlQVldvcmtlclN0YXRzIGNsZWFudXA7 Cit9IFBWV29ya2VyVXNhZ2U7CiAKIC8qIEdVQyBwYXJhbWV0ZXJzICovCiBleHRlcm4gUEdETExJ TVBPUlQgaW50IGRlZmF1bHRfc3RhdGlzdGljc190YXJnZXQ7CS8qIFBHRExMSU1QT1JUIGZvciBQ b3N0R0lTICovCkBAIC00MTcsMTIgKzQxNywxMiBAQCBleHRlcm4gdm9pZCBwYXJhbGxlbF92YWN1 dW1fcmVzZXRfZGVhZF9pdGVtcyhQYXJhbGxlbFZhY3V1bVN0YXRlICpwdnMpOwogZXh0ZXJuIHZv aWQgcGFyYWxsZWxfdmFjdXVtX2J1bGtkZWxfYWxsX2luZGV4ZXMoUGFyYWxsZWxWYWN1dW1TdGF0 ZSAqcHZzLAogCQkJCQkJCQkJCQkJbG9uZyBudW1fdGFibGVfdHVwbGVzLAogCQkJCQkJCQkJCQkJ aW50IG51bV9pbmRleF9zY2FucywKLQkJCQkJCQkJCQkJCVBWV29ya2Vyc1VzYWdlICp3dXNhZ2Up OworCQkJCQkJCQkJCQkJUFZXb3JrZXJTdGF0cyAqd3N0YXRzKTsKIGV4dGVybiB2b2lkIHBhcmFs bGVsX3ZhY3V1bV9jbGVhbnVwX2FsbF9pbmRleGVzKFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2cywK IAkJCQkJCQkJCQkJCWxvbmcgbnVtX3RhYmxlX3R1cGxlcywKIAkJCQkJCQkJCQkJCWludCBudW1f aW5kZXhfc2NhbnMsCiAJCQkJCQkJCQkJCQlib29sIGVzdGltYXRlZF9jb3VudCwKLQkJCQkJCQkJ CQkJCVBWV29ya2Vyc1VzYWdlICp3dXNhZ2UpOworCQkJCQkJCQkJCQkJUFZXb3JrZXJTdGF0cyAq d3N0YXRzKTsKIGV4dGVybiB2b2lkIHBhcmFsbGVsX3ZhY3V1bV9tYWluKGRzbV9zZWdtZW50ICpz ZWcsIHNobV90b2MgKnRvYyk7CiAKIC8qIGluIGNvbW1hbmRzL2FuYWx5emUuYyAqLwpkaWZmIC0t Z2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRl bnQvdHlwZWRlZnMubGlzdAppbmRleCBhNjdkNTRlMTgxOS4uNGMyMzBlZTM4Y2EgMTAwNjQ0Ci0t LSBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2lu ZGVudC90eXBlZGVmcy5saXN0CkBAIC0yMDg4LDggKzIwODgsOCBAQCBQVkluZFN0YXRzCiBQVklu ZFZhY1N0YXR1cwogUFZPSUQKIFBWU2hhcmVkCi1QVldvcmtlcnNVc2FnZQotUFZXb3JrZXJzU3Rh dHMKK1BWV29ya2VyVXNhZ2UKK1BWV29ya2VyU3RhdHMKIFBYX0FsaWFzCiBQWF9DaXBoZXIKIFBY X0NvbWJvCi0tIAoyLjQzLjAKCg== --000000000000982b9b064d490276 Content-Type: text/x-patch; charset="US-ASCII"; name="v28--v29-diff-for-0004.patch" Content-Disposition: attachment; filename="v28--v29-diff-for-0004.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmvttt2i6 RnJvbSA5NDk4ODQzOGYwNTMwYjU4MDRmZjY1MTVhZjE2ZGJhOGQ5YmQzMTE4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXNhaGlrbyBTYXdhZGEgPHNhd2FkYS5tc2hrQGdtYWlsLmNv bT4KRGF0ZTogTW9uLCAxNiBNYXIgMjAyNiAxODowMTo0NSAtMDcwMApTdWJqZWN0OiBbUEFUQ0gg Ny85XSBmaXh1cDogdXBkYXRlcyB0YXAgdGVzdHMuCgotLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRz L3ZhY3V1bXBhcmFsbGVsLmMgICAgICAgICB8ICA5ICstLQogLi4uL3QvMDAxX3BhcmFsbGVsX2F1 dG92YWN1dW0ucGwgICAgICAgICAgICAgIHwgNjMgKysrKysrKysrKystLS0tLS0tLQogMiBmaWxl cyBjaGFuZ2VkLCAzOCBpbnNlcnRpb25zKCspLCAzNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5jIGIvc3JjL2JhY2tlbmQvY29t bWFuZHMvdmFjdXVtcGFyYWxsZWwuYwppbmRleCBlZjM2YjliZDI4Ni4uNjJiNmY1MGI1MzggMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMKKysrIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYwpAQCAtNjU2LDcgKzY1Niw3IEBAIHBh cmFsbGVsX3ZhY3V1bV91cGRhdGVfc2hhcmVkX2RlbGF5X3BhcmFtcyh2b2lkKQogCXNoYXJlZF9w YXJhbXNfZ2VuZXJhdGlvbl9sb2NhbCA9IHBhcmFtc19nZW5lcmF0aW9uOwogCiAJZWxvZyhERUJV RzIsCi0JCSAicGFyYWxsZWwgYXV0b3ZhY3V1bSB3b3JrZXIgY29zdCBwYXJhbXM6IGNvc3RfbGlt aXQ9JWQsIGNvc3RfZGVsYXk9JWcsIGNvc3RfcGFnZV9taXNzPSVkLCBjb3N0X3BhZ2VfZGlydHk9 JWQsIGNvc3RfcGFnZV9oaXQ9JWQiLAorCQkgInBhcmFsbGVsIGF1dG92YWN1dW0gd29ya2VyIHVw ZGF0ZWQgY29zdCBwYXJhbXM6IGNvc3RfbGltaXQ9JWQsIGNvc3RfZGVsYXk9JWcsIGNvc3RfcGFn ZV9taXNzPSVkLCBjb3N0X3BhZ2VfZGlydHk9JWQsIGNvc3RfcGFnZV9oaXQ9JWQiLAogCQkgdmFj dXVtX2Nvc3RfbGltaXQsCiAJCSB2YWN1dW1fY29zdF9kZWxheSwKIAkJIFZhY3V1bUNvc3RQYWdl TWlzcywKQEAgLTkzMywxMyArOTMzLDYgQEAgcGFyYWxsZWxfdmFjdXVtX3Byb2Nlc3NfYWxsX2lu ZGV4ZXMoUGFyYWxsZWxWYWN1dW1TdGF0ZSAqcHZzLCBpbnQgbnVtX2luZGV4X3NjYW4KIAogCQlm b3IgKGludCBpID0gMDsgaSA8IHB2cy0+cGN4dC0+bndvcmtlcnNfbGF1bmNoZWQ7IGkrKykKIAkJ CUluc3RyQWNjdW1QYXJhbGxlbFF1ZXJ5KCZwdnMtPmJ1ZmZlcl91c2FnZVtpXSwgJnB2cy0+d2Fs X3VzYWdlW2ldKTsKLQotCQlpZiAoQW1BdXRvVmFjdXVtV29ya2VyUHJvY2VzcygpKQotCQkJZWxv ZyhERUJVRzIsCi0JCQkJIG5nZXR0ZXh0KCJhdXRvdmFjdXVtIHdvcmtlcjogZmluaXNoZWQgcGFy YWxsZWwgaW5kZXggcHJvY2Vzc2luZyB3aXRoICVkIHBhcmFsbGVsIHdvcmtlciIsCi0JCQkJCQkg ICJhdXRvdmFjdXVtIHdvcmtlcjogZmluaXNoZWQgcGFyYWxsZWwgaW5kZXggcHJvY2Vzc2luZyB3 aXRoICVkIHBhcmFsbGVsIHdvcmtlcnMiLAotCQkJCQkJICBud29ya2VycyksCi0JCQkJIG53b3Jr ZXJzKTsKIAl9CiAKIAkvKgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92 YWN1dW0vdC8wMDFfcGFyYWxsZWxfYXV0b3ZhY3V1bS5wbCBiL3NyYy90ZXN0L21vZHVsZXMvdGVz dF9hdXRvdmFjdXVtL3QvMDAxX3BhcmFsbGVsX2F1dG92YWN1dW0ucGwKaW5kZXggOWFkODdkNDhi OTYuLjJmMzQ5OTlkMjVlIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0b3Zh Y3V1bS90LzAwMV9wYXJhbGxlbF9hdXRvdmFjdXVtLnBsCisrKyBiL3NyYy90ZXN0L21vZHVsZXMv dGVzdF9hdXRvdmFjdXVtL3QvMDAxX3BhcmFsbGVsX2F1dG92YWN1dW0ucGwKQEAgLTExLDggKzEx LDggQEAgaWYgKCRFTlZ7ZW5hYmxlX2luamVjdGlvbl9wb2ludHN9IG5lICd5ZXMnKQogfQogCiAj IEJlZm9yZSBlYWNoIHRlc3Qgd2Ugc2hvdWxkIGRpc2FibGUgYXV0b3ZhY3V1bSBmb3IgJ3Rlc3Rf YXV0b3ZhYycgdGFibGUgYW5kCi0jIGdlbmVyYXRlIHNvbWUgZGVhZCB0dXBsZXMgaW4gaXQuCi0K KyMgZ2VuZXJhdGUgc29tZSBkZWFkIHR1cGxlcyBpbiBpdC4gUmV0dXJucyB0aGUgY3VycmVudCBh dXRvdmFjdXVtX2NvdW50IG9mCisjIHRoZSB0YWJsZSB0c2V0X2F1dG92YWMuCiBzdWIgcHJlcGFy ZV9mb3JfbmV4dF90ZXN0CiB7CiAJbXkgKCRub2RlLCAkdGVzdF9udW1iZXIpID0gQF87CkBAIC0y MSwxMiArMjEsMjcgQEAgc3ViIHByZXBhcmVfZm9yX25leHRfdGVzdAogCQlBTFRFUiBUQUJMRSB0 ZXN0X2F1dG92YWMgU0VUIChhdXRvdmFjdXVtX2VuYWJsZWQgPSBmYWxzZSk7CiAJCVVQREFURSB0 ZXN0X2F1dG92YWMgU0VUIGNvbF8xID0gJHRlc3RfbnVtYmVyOwogCX0pOworCisJbXkgJGNvdW50 ID0gJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxcXsKKwkJU0VMRUNUIGF1dG92YWN1dW1f Y291bnQgRlJPTSBwZ19zdGF0X3VzZXJfdGFibGVzIFdIRVJFIHJlbG5hbWUgPSAndGVzdF9hdXRv dmFjJworCX0pOworCisJcmV0dXJuICRjb3VudDsKIH0KIAorIyBXYWl0IGZvciB0aGUgdGFibGUg dG8gYmUgdmFjdXVtZWQgYnkgYW4gYXV0b3ZhY3V1bSB3b3JrZXIuCitzdWIgd2FpdF9mb3JfYXV0 b3ZhY3V1bV9jb21wbGV0ZQoreworCW15ICgkbm9kZSwgJG9sZF9jb3VudCkgPSBAXzsKKworCSRu b2RlLT5wb2xsX3F1ZXJ5X3VudGlsKCdwb3N0Z3JlcycsIHFxeworCQlTRUxFQ1QgYXV0b3ZhY3V1 bV9jb3VudCA+ICRvbGRfY291bnQgRlJPTSBwZ19zdGF0X3VzZXJfdGFibGVzIFdIRVJFIHJlbG5h bWUgPSAndGVzdF9hdXRvdmFjJworCX0pOworfQogCiBteSAkcHNxbF9vdXQ7CiAKLW15ICRub2Rl ID0gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCdub2RlMScpOworbXkgJG5vZGUgPSBQ b3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ21haW4nKTsKICRub2RlLT5pbml0OwogCiAj IENvbmZpZ3VyZSBwb3N0Z3Jlcywgc28gaXQgY2FuIGxhdW5jaCBwYXJhbGxlbCBhdXRvdmFjdXVt IHdvcmtlcnMsIGxvZyBhbGwKQEAgLTU0LDcgKzY5LDcgQEAgJG5vZGUtPnNhZmVfcHNxbCgncG9z dGdyZXMnLCBxcXsKIAlDUkVBVEUgRVhURU5TSU9OIGluamVjdGlvbl9wb2ludHM7CiB9KTsKIAot bXkgJGluZGV4ZXNfbnVtID0gNDsKK215ICRpbmRleGVzX251bSA9IDM7CiBteSAkaW5pdGlhbF9y b3dzX251bSA9IDEwXzAwMDsKIG15ICRhdXRvdmFjdXVtX3BhcmFsbGVsX3dvcmtlcnMgPSAyOwog CkBAIC05MSw3ICsxMDYsOCBAQCAkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxewogIyBP dXIgdGFibGUgaGFzIGVub3VnaCBpbmRleGVzIGFuZCBhcHByb3ByaWF0ZSByZWxvcHRpb25zLCBz byBhdXRvdmFjdXVtIG11c3QKICMgYmUgYWJsZSB0byBwcm9jZXNzIGl0IGluIHBhcmFsbGVsIG1v ZGUuIEp1c3QgY2hlY2sgaWYgaXQgY2FuIGRvIGl0LgogCi1wcmVwYXJlX2Zvcl9uZXh0X3Rlc3Qo JG5vZGUsIDEpOworbXkgJGF2X2NvdW50ID0gcHJlcGFyZV9mb3JfbmV4dF90ZXN0KCRub2RlLCAx KTsKK215ICRsb2dfb2Zmc2V0ID0gLXMgJG5vZGUtPmxvZ2ZpbGU7CiAKICRub2RlLT5zYWZlX3Bz cWwoJ3Bvc3RncmVzJywgcXF7CiAJQUxURVIgVEFCTEUgdGVzdF9hdXRvdmFjIFNFVCAoYXV0b3Zh Y3V1bV9lbmFibGVkID0gdHJ1ZSk7CkBAIC05OSwxNiArMTE1LDE2IEBAICRub2RlLT5zYWZlX3Bz cWwoJ3Bvc3RncmVzJywgcXF7CiAKICMgV2FpdCB1bnRpbCB0aGUgcGFyYWxsZWwgYXV0b3ZhY3V1 bSBvbiB0YWJsZSBpcyBjb21wbGV0ZWQuIEF0IHRoZSBzYW1lIHRpbWUsCiAjIHdlIGNoZWNrIHRo YXQgdGhlIHJlcXVpcmVkIG51bWJlciBvZiBwYXJhbGxlbCB3b3JrZXJzIGhhcyBiZWVuIHN0YXJ0 ZWQuCi0kbG9nX3N0YXJ0ID0gJG5vZGUtPndhaXRfZm9yX2xvZygKLQlxci9hdXRvdmFjdXVtIHdv cmtlcjogZmluaXNoZWQgcGFyYWxsZWwgaW5kZXggcHJvY2Vzc2luZyB3aXRoIDIgcGFyYWxsZWwg d29ya2Vycy8sCi0JJGxvZ19zdGFydAotKTsKK3dhaXRfZm9yX2F1dG92YWN1dW1fY29tcGxldGUo JG5vZGUsICRhdl9jb3VudCk7Citvaygkbm9kZS0+bG9nX2NvbnRhaW5zKHFyL3BhcmFsbGVsIHdv cmtlcnM6IGluZGV4IHZhY3V1bTogMiBwbGFubmVkLCAyIGxhdW5jaGVkIGluIHRvdGFsLywKKwkJ CQkJICAgJGxvZ19vZmZzZXQpKTsKIAogIyBUZXN0IDI6CiAjIENoZWNrIHdoZXRoZXIgcGFyYWxs ZWwgYXV0b3ZhY3V1bSBsZWFkZXIgY2FuIHByb3BhZ2F0ZSBjb3N0LWJhc2VkIHBhcmFtZXRlcnMK ICMgdG8gdGhlIHBhcmFsbGVsIHdvcmtlcnMuCiAKLXByZXBhcmVfZm9yX25leHRfdGVzdCgkbm9k ZSwgMik7CiskYXZfY291bnQgPSBwcmVwYXJlX2Zvcl9uZXh0X3Rlc3QoJG5vZGUsIDIpOworJGxv Z19vZmZzZXQgPSAtcyAkbm9kZS0+bG9nZmlsZTsKIAogJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdy ZXMnLCBxcXsKIAlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19hdHRhY2goJ2F1dG92YWN1dW0tc3Rh cnQtcGFyYWxsZWwtdmFjdXVtJywgJ3dhaXQnKTsKQEAgLTEyMyw4ICsxMzksNyBAQCAkbm9kZS0+ d2FpdF9mb3JfZXZlbnQoCiAJJ2F1dG92YWN1dW0tc3RhcnQtcGFyYWxsZWwtdmFjdXVtJwogKTsK IAotIyBSZWxvYWQgY29uZmlnIC0gbGVhZGVyIHdvcmtlciBtdXN0IHVwZGF0ZSBpdHMgb3duIHBh cmFtZXRlcnMgZHVyaW5nIGluZGV4ZXMKLSMgcHJvY2Vzc2luZworIyBVcGRhdGUgdGhlIHNoYXJl ZCBjb3N0LWJhc2VkIGRlbGF5IHBhcmFtZXRlcnMuCiAkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsIHFxewogCUFMVEVSIFNZU1RFTSBTRVQgdmFjdXVtX2Nvc3RfbGltaXQgPSA1MDA7CiAJQUxU RVIgU1lTVEVNIFNFVCB2YWN1dW1fY29zdF9wYWdlX21pc3MgPSAxMDsKQEAgLTEzMywxMiArMTQ4 LDEyIEBAICRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXF7CiAJU0VMRUNUIHBnX3JlbG9h ZF9jb25mKCk7CiB9KTsKIAorIyBSZXN1bWUgdGhlIGxlYWRlciBwcm9jZXNzIHRvIHVwZGF0ZSB0 aGUgc2hhcmVkIHBhcmFtZXRlcnMgZHVyaW5nIGhlYXAgc2NhbiAoaS5lLgorIyB2YWN1dW1fZGVs YXlfcG9pbnQoKSBpcyBjYWxsZWQpIGFuZCBsYXVuY2ggYSBwYXJhbGxlbCB2YWN1dW0gd29ya2Vy LCBidXQgaXQgc3RvcHMKKyMgYmVmb3JlIHZhY3V1bWluZyBpbmRleGVzIGR1ZSB0byB0aGUgaW5q ZWN0aW9uIHBvaW50LgogJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxcXsKIAlTRUxFQ1Qg aW5qZWN0aW9uX3BvaW50c193YWtldXAoJ2F1dG92YWN1dW0tc3RhcnQtcGFyYWxsZWwtdmFjdXVt Jyk7CiB9KTsKLQotIyBOb3cgd2FpdCB1bnRpbCBwYXJhbGxlbCBhdXRvdmFjdXVtIGxlYWRlciBj b21wbGV0ZXMgcHJvY2Vzc2luZyB0YWJsZSAoaS5lLgotIyBndWFyYW50ZWVkIHRvIGNhbGwgdmFj dXVtX2RlbGF5X3BvaW50KSBhbmQgbGF1bmNoZXMgcGFyYWxsZWwgd29ya2VyLgogJG5vZGUtPndh aXRfZm9yX2V2ZW50KAogCSdhdXRvdmFjdXVtIHdvcmtlcicsCiAJJ2F1dG92YWN1dW0tbGVhZGVy LWJlZm9yZS1pbmRleGVzLXByb2Nlc3NpbmcnCkBAIC0xNDYsMjQgKzE2MSwyMCBAQCAkbm9kZS0+ d2FpdF9mb3JfZXZlbnQoCiAKICMgQ2hlY2sgd2hldGhlciBwYXJhbGxlbCB3b3JrZXIgc3VjY2Vz c2Z1bGx5IHVwZGF0ZWQgYWxsIHBhcmFtZXRlcnMgZHVyaW5nCiAjIGluZGV4IHByb2Nlc3NpbmcK LSRsb2dfc3RhcnQgPSAkbm9kZS0+d2FpdF9mb3JfbG9nKAotCXFyL3BhcmFsbGVsIGF1dG92YWN1 dW0gd29ya2VyIGNvc3QgcGFyYW1zOiBjb3N0X2xpbWl0PTUwMCwgY29zdF9kZWxheT0yLCAvIC4K LQlxci9jb3N0X3BhZ2VfbWlzcz0xMCwgY29zdF9wYWdlX2RpcnR5PTEwLCBjb3N0X3BhZ2VfaGl0 PTEwLywKLQkkbG9nX3N0YXJ0Ci0pOworJG5vZGUtPndhaXRfZm9yX2xvZyhxci9wYXJhbGxlbCBh dXRvdmFjdXVtIHdvcmtlciB1cGRhdGVkIGNvc3QgcGFyYW1zOiBjb3N0X2xpbWl0PTUwMCwgY29z dF9kZWxheT0yLCBjb3N0X3BhZ2VfbWlzcz0xMCwgY29zdF9wYWdlX2RpcnR5PTEwLCBjb3N0X3Bh Z2VfaGl0PTEwLywKKwkJCQkJJGxvZ19vZmZzZXQpOwogCi0jIENsZWFudXAKICRub2RlLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywgcXF7CiAJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfd2FrZXVwKCdh dXRvdmFjdXVtLWxlYWRlci1iZWZvcmUtaW5kZXhlcy1wcm9jZXNzaW5nJyk7Cit9KTsKKword2Fp dF9mb3JfYXV0b3ZhY3V1bV9jb21wbGV0ZSgkbm9kZSwgJGF2X2NvdW50KTsKIAorIyBDbGVhbnVw Ciskbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxewogCVNFTEVDVCBpbmplY3Rpb25fcG9p bnRzX2RldGFjaCgnYXV0b3ZhY3V1bS1zdGFydC1wYXJhbGxlbC12YWN1dW0nKTsKIAlTRUxFQ1Qg aW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ2F1dG92YWN1dW0tbGVhZGVyLWJlZm9yZS1pbmRleGVz LXByb2Nlc3NpbmcnKTsKLQotCUFMVEVSIFRBQkxFIHRlc3RfYXV0b3ZhYyBTRVQgKGF1dG92YWN1 dW1fcGFyYWxsZWxfd29ya2VycyA9ICRhdXRvdmFjdXVtX3BhcmFsbGVsX3dvcmtlcnMpOwogfSk7 CiAKLSMgV2Ugd2VyZSBhYmxlIHRvIGdldCB0byB0aGlzIHBvaW50LCBzbyBldmVyeXRoaW5nIGlz IGZpbmUuCi1vaygxKTsKLQogJG5vZGUtPnN0b3A7CiBkb25lX3Rlc3RpbmcoKTsKLS0gCjIuNDMu MAoK --000000000000982b9b064d490276--