Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uFnL3-008iVI-Kl for pgsql-hackers@arkaria.postgresql.org; Fri, 16 May 2025 05:10:30 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1uFnL1-000KcF-9v for pgsql-hackers@arkaria.postgresql.org; Fri, 16 May 2025 05:10:27 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from <3danissimo@gmail.com>) id 1uFnL0-000Kc6-KT for pgsql-hackers@lists.postgresql.org; Fri, 16 May 2025 05:10:26 +0000 Received: from mail-yb1-xb30.google.com ([2607:f8b0:4864:20::b30]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from <3danissimo@gmail.com>) id 1uFnKx-0021lq-2t for pgsql-hackers@lists.postgresql.org; Fri, 16 May 2025 05:10:25 +0000 Received: by mail-yb1-xb30.google.com with SMTP id 3f1490d57ef6-e72a786b1b8so1590530276.1 for ; Thu, 15 May 2025 22:10:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1747372223; x=1747977023; 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=GhIOZHjpLH06aF1E7JLbyyC4pCEwPY97topjV9+jv4I=; b=aWclW1NubJPNfPXEgug4tnUimBYI9gmqwkMWws3Ntxhv2SWYXnxlTuSKrL/VyRhRba LwfONaxwOJk1D6n9Av0nJe2k7lzKSww0XyAsC44YsQB9St9bb9/J3AL0i7NveUF2qkxM Uzt0+Am02RtpDOPUX8JADDgStmjC8j8VRm8Las0j8odQklSx6fLBUl4/OwMcf+7Cm6Jj S4P6NxsL9rg8W2Q1L8xnw1aFlTxZIn99b6iXHWkiC6aYfrIxUlpeLS4NubS9R9Zblf92 ZG4M9vh6+LVyyJn4mA6FwhUVkoQVMJgj4jBvLvar2QrgB+uii5jgPJQJ1rmnlGmXtnmv w8Lg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747372223; x=1747977023; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=GhIOZHjpLH06aF1E7JLbyyC4pCEwPY97topjV9+jv4I=; b=K6b0OCkURk96oeeaCl3xCFpzrHuHwSrTmPHCM42fCjgBwAYObn2g9AacZxhRGMfFef rQa3rXo7bT13uWpeZ70t0jTJJuZjIUgVsYe2FMNwZlOvz0Q5YzVgLnQDZctE3jTyBTK9 0KZ9n3FcLeS4q4zLWja2PC8ZX98qCxDWemIdsL5ASGr9RH6ptcmAFvoVvZYCbLW9/ILM kDd1n5SZnQYN/JaCEMqI5l/8HyKLRmEumQB7wVP76WnpC1Edb7njsn+mijhdS08Vtef8 Zit47gfHS6R0rPCqmPXOnI5COdrh302a3hboJB4l40V1cTxyOPhZ5mmbG8QbjKkhoqBA WECQ== X-Forwarded-Encrypted: i=1; AJvYcCXHNVMYqf3KsRp5yGXCMw6lX4eUW7ElYFvJ+e2HYiWmojWSZKZXNZRduNc7K5XnpOu3hrbfdfrWKvgz4vHr@lists.postgresql.org X-Gm-Message-State: AOJu0YzNQzEKQUgz+uxdPGDxLvgymwt2Wanu/5RePS/chhLB1jqzPe7Y 7kRDGekrdIWBsC0WGCbTfHDhXvEYMTL9XVJdUQgaoCDXow70XhZAiulcDEvmghWDVkoQWXbTmwT u3tc3H/g2vMyPihK/1velY14OuQobvTM= X-Gm-Gg: ASbGncs4LYrH+k6TCNRtxj6ZAFjZzKyRBNMj6M0eFzbJ0iVBaiNMGM0tIgKI8z/V5FF Z6pcLxgWR2e1vSCRJ9UflEOw1/QqePqU/accWPmd0yqWFbAvlPRAx9tBxY/y/XT7U9OaoRAw28n n0EgQtZYibjudE3JbTCNEanB/W6dY1GxI= X-Google-Smtp-Source: AGHT+IHQtFMRmTrygcmHUrcn81YdBDo3mtRnfZ1fl2Z98A2cKAyzaMu4mSE1PLnQGRzhskfAkyYF7Yd80ttifd5M10Q= X-Received: by 2002:a05:6902:12ce:b0:e72:e3a7:bb92 with SMTP id 3f1490d57ef6-e7b6b156e05mr3050485276.6.1747372223421; Thu, 15 May 2025 22:10:23 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Daniil Davydov <3danissimo@gmail.com> Date: Fri, 16 May 2025 12:10:10 +0700 X-Gm-Features: AX0GCFvlHE0YkvOTM_RL_JFBDeoRHVddV-alb-QrObB3r3sws_TL4OBzWcGaZ2k Message-ID: Subject: Re: POC: Parallel processing of indexes in autovacuum To: Matheus Alcantara Cc: Sami Imseih , Masahiko Sawada , Maxim Orlov , Postgres hackers Content-Type: multipart/mixed; boundary="000000000000ab1bcd063539cc9f" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000ab1bcd063539cc9f Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, On Fri, May 16, 2025 at 4:06=E2=80=AFAM Matheus Alcantara wrote: > I've reviewed the v1-0001 patch, the build on MacOS using meson+ninja is > failing: > =E2=9D=AF=E2=9D=AF=E2=9D=AF ninja -C build install > ninja: Entering directory `build' > [1/126] Compiling C object > src/backend/postgres_lib.a.p/utils_misc_guc_tables.c.o > FAILED: src/backend/postgres_lib.a.p/utils_misc_guc_tables.c.o > ../src/backend/utils/misc/guc_tables.c:3613:4: error: incompatible > pointer to integer conversion initializing 'int' with an expression of > type 'void *' [-Wint-conversion] > 3613 | NULL, > | ^~~~ > Thank you for reviewing this patch! > It seems that the "autovacuum_reserved_workers_num" declaration on > guc_tables.c has an extra gettext_noop() call? Good catch, I fixed this warning in the v2 version. > > One other point is that as you've added TAP tests for the autovacuum I > think you also need to create a meson.build file as you already create > the Makefile. > > You also need to update the src/test/modules/meson.build and > src/test/modules/Makefile to include the new test/modules/autovacuum > path. > OK, I should clarify this moment : modules/autovacuum is not a normal test but a sandbox - just an example of how we can trigger parallel index autovacuum. Also it may be used for debugging purposes. In fact, 001_autovac_parallel.pl is not verifying anything. I'll do as you asked (add all meson and Make stuff), but please don't focus on it. The creation of the real test is still in progress. (I'll try to complete it as soon as possible). In this letter I will divide the patch into 2 parts : implementation and sandbox. What do you think about implementation? -- Best regards, Daniil Davydov --000000000000ab1bcd063539cc9f Content-Type: application/x-patch; name="v2-0002-Sandbox-for-parallel-index-autovacuum.patch" Content-Disposition: attachment; filename="v2-0002-Sandbox-for-parallel-index-autovacuum.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_maqbynrx1 RnJvbSA1YTI1NTM1ZjVmNDIxMmNhNzU2YjljNjdiY2VjZjNhMjcxY2ViMjE1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5paWwgRGF2aWRvdiA8ZC5kYXZ5ZG92QHBvc3RncmVzcHJv LnJ1PgpEYXRlOiBGcmksIDE2IE1heSAyMDI1IDExOjU5OjAzICswNzAwClN1YmplY3Q6IFtQQVRD SCB2MiAyLzJdIFNhbmRib3ggZm9yIHBhcmFsbGVsIGluZGV4IGF1dG92YWN1dW0KCi0tLQogc3Jj L3Rlc3QvbW9kdWxlcy9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy90 ZXN0L21vZHVsZXMvYXV0b3ZhY3V1bS8uZ2l0aWdub3JlICAgICAgICB8ICAgMSArCiBzcmMvdGVz dC9tb2R1bGVzL2F1dG92YWN1dW0vTWFrZWZpbGUgICAgICAgICAgfCAgMTQgKysKIHNyYy90ZXN0 L21vZHVsZXMvYXV0b3ZhY3V1bS9tZXNvbi5idWlsZCAgICAgICB8ICAxMiArKwogLi4uL2F1dG92 YWN1dW0vdC8wMDFfYXV0b3ZhY19wYXJhbGxlbC5wbCAgICAgIHwgMTI5ICsrKysrKysrKysrKysr KysrKwogc3JjL3Rlc3QvbW9kdWxlcy9tZXNvbi5idWlsZCAgICAgICAgICAgICAgICAgIHwgICAx ICsKIDYgZmlsZXMgY2hhbmdlZCwgMTU4IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmMvdGVzdC9tb2R1bGVzL2F1dG92YWN1dW0vLmdpdGlnbm9yZQogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyYy90ZXN0L21vZHVsZXMvYXV0b3ZhY3V1bS9NYWtlZmlsZQogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyYy90ZXN0L21vZHVsZXMvYXV0b3ZhY3V1bS9tZXNvbi5idWlsZAogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyYy90ZXN0L21vZHVsZXMvYXV0b3ZhY3V1bS90LzAwMV9hdXRvdmFjX3BhcmFsbGVs LnBsCgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy9NYWtlZmlsZSBiL3NyYy90ZXN0L21v ZHVsZXMvTWFrZWZpbGUKaW5kZXggYWExZDI3YmJlZDMuLmI3ZjNlMzQyZTgyIDEwMDY0NAotLS0g YS9zcmMvdGVzdC9tb2R1bGVzL01ha2VmaWxlCisrKyBiL3NyYy90ZXN0L21vZHVsZXMvTWFrZWZp bGUKQEAgLTUsNiArNSw3IEBAIHRvcF9idWlsZGRpciA9IC4uLy4uLy4uCiBpbmNsdWRlICQodG9w X2J1aWxkZGlyKS9zcmMvTWFrZWZpbGUuZ2xvYmFsCiAKIFNVQkRJUlMgPSBcCisJCSAgYXV0b3Zh Y3V1bSBcCiAJCSAgYnJpbiBcCiAJCSAgY29tbWl0X3RzIFwKIAkJICBkZWxheV9leGVjdXRpb24g XApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy9hdXRvdmFjdXVtLy5naXRpZ25vcmUgYi9z cmMvdGVzdC9tb2R1bGVzL2F1dG92YWN1dW0vLmdpdGlnbm9yZQpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMC4uMGI1NDY0MWJjZWIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMv dGVzdC9tb2R1bGVzL2F1dG92YWN1dW0vLmdpdGlnbm9yZQpAQCAtMCwwICsxIEBACisvdG1wX2No ZWNrLwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21v ZHVsZXMvYXV0b3ZhY3V1bS9NYWtlZmlsZSBiL3NyYy90ZXN0L21vZHVsZXMvYXV0b3ZhY3V1bS9N YWtlZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOTBjMDBmZjM1 MGIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9tb2R1bGVzL2F1dG92YWN1dW0vTWFrZWZp bGUKQEAgLTAsMCArMSwxNCBAQAorIyBzcmMvdGVzdC9tb2R1bGVzL2F1dG92YWN1dW0vTWFrZWZp bGUKKworVEFQX1RFU1RTID0gMQorCitpZmRlZiBVU0VfUEdYUworUEdfQ09ORklHID0gcGdfY29u ZmlnCitQR1hTIDo9ICQoc2hlbGwgJChQR19DT05GSUcpIC0tcGd4cykKK2luY2x1ZGUgJChQR1hT KQorZWxzZQorc3ViZGlyID0gc3JjL3Rlc3QvbW9kdWxlcy9hdXRvdmFjdXVtCit0b3BfYnVpbGRk aXIgPSAuLi8uLi8uLi8uLgoraW5jbHVkZSAkKHRvcF9idWlsZGRpcikvc3JjL01ha2VmaWxlLmds b2JhbAoraW5jbHVkZSAkKHRvcF9zcmNkaXIpL2NvbnRyaWIvY29udHJpYi1nbG9iYWwubWsKK2Vu ZGlmClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9k dWxlcy9hdXRvdmFjdXVtL21lc29uLmJ1aWxkIGIvc3JjL3Rlc3QvbW9kdWxlcy9hdXRvdmFjdXVt L21lc29uLmJ1aWxkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mOTFj MWExNGQyYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L21vZHVsZXMvYXV0b3ZhY3V1bS9t ZXNvbi5idWlsZApAQCAtMCwwICsxLDEyIEBACisjIENvcHlyaWdodCAoYykgMjAyMi0yMDI1LCBQ b3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorCit0ZXN0cyArPSB7CisgICduYW1l JzogJ2F1dG92YWN1dW0nLAorICAnc2QnOiBtZXNvbi5jdXJyZW50X3NvdXJjZV9kaXIoKSwKKyAg J2JkJzogbWVzb24uY3VycmVudF9idWlsZF9kaXIoKSwKKyAgJ3RhcCc6IHsKKyAgICAndGVzdHMn OiBbCisgICAgICAndC8wMDFfYXV0b3ZhY19wYXJhbGxlbC5wbCcsCisgICAgXSwKKyAgfSwKK30K ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvYXV0b3ZhY3V1bS90LzAwMV9hdXRvdmFjX3Bh cmFsbGVsLnBsIGIvc3JjL3Rlc3QvbW9kdWxlcy9hdXRvdmFjdXVtL3QvMDAxX2F1dG92YWNfcGFy YWxsZWwucGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmE0NGNiZWJl MGZkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy9hdXRvdmFjdXVtL3QvMDAx X2F1dG92YWNfcGFyYWxsZWwucGwKQEAgLTAsMCArMSwxMjkgQEAKK3VzZSB3YXJuaW5ncyBGQVRB TCA9PiAnYWxsJzsKK3VzZSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyOwordXNlIFBvc3RncmVT UUw6OlRlc3Q6OlV0aWxzOwordXNlIFRlc3Q6Ok1vcmU7CisKK215ICRwc3FsX291dDsKKworbXkg JG5vZGUgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ25vZGUxJyk7Ciskbm9kZS0+ aW5pdDsKKyRub2RlLT5hcHBlbmRfY29uZigncG9zdGdyZXNxbC5jb25mJywgcXF7CisJYXV0b3Zh Y3V1bSA9IG9mZgorCW1heF93YWxfc2l6ZSA9IDQwOTYKKwltYXhfd29ya2VyX3Byb2Nlc3NlcyA9 IDIwCisJbWF4X3BhcmFsbGVsX3dvcmtlcnMgPSAyMAorCW1heF9wYXJhbGxlbF9tYWludGVuYW5j ZV93b3JrZXJzID0gMjAKKwlhdXRvdmFjdXVtX3Jlc2VydmVkX3dvcmtlcnNfbnVtID0gMQorfSk7 Ciskbm9kZS0+c3RhcnQ7CisKK215ICRpbmRleGVzX251bSA9IDgwOworbXkgJGluaXRpYWxfcm93 c19udW0gPSAxMDBfMDAwOworCisjIENyZWF0ZSBiaWcgdGFibGUgYW5kIGNyZWF0ZSBzcGVjaWZp ZWQgbnVtYmVyIG9mIGItdHJlZSBpbmRleGVzIG9uIGl0Ciskbm9kZS0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsIHFxeworCUNSRUFURSBUQUJMRSB0ZXN0X2F1dG92YWMgKAorCQlpZCBTRVJJQUwgUFJJ TUFSWSBLRVksCisJCWNvbF8xIElOVEVHRVIsICBjb2xfMiBJTlRFR0VSLCAgY29sXzMgSU5URUdF UiwgIGNvbF80IElOVEVHRVIsICBjb2xfNSBJTlRFR0VSLAorCQljb2xfNiBJTlRFR0VSLCAgY29s XzcgSU5URUdFUiwgIGNvbF84IElOVEVHRVIsICBjb2xfOSBJTlRFR0VSLCAgY29sXzEwIElOVEVH RVIsCisJCWNvbF8xMSBJTlRFR0VSLCBjb2xfMTIgSU5URUdFUiwgY29sXzEzIElOVEVHRVIsIGNv bF8xNCBJTlRFR0VSLCBjb2xfMTUgSU5URUdFUiwKKwkJY29sXzE2IElOVEVHRVIsIGNvbF8xNyBJ TlRFR0VSLCBjb2xfMTggSU5URUdFUiwgY29sXzE5IElOVEVHRVIsIGNvbF8yMCBJTlRFR0VSLAor CQljb2xfMjEgSU5URUdFUiwgY29sXzIyIElOVEVHRVIsIGNvbF8yMyBJTlRFR0VSLCBjb2xfMjQg SU5URUdFUiwgY29sXzI1IElOVEVHRVIsCisJCWNvbF8yNiBJTlRFR0VSLCBjb2xfMjcgSU5URUdF UiwgY29sXzI4IElOVEVHRVIsIGNvbF8yOSBJTlRFR0VSLCBjb2xfMzAgSU5URUdFUiwKKwkJY29s XzMxIElOVEVHRVIsIGNvbF8zMiBJTlRFR0VSLCBjb2xfMzMgSU5URUdFUiwgY29sXzM0IElOVEVH RVIsIGNvbF8zNSBJTlRFR0VSLAorCQljb2xfMzYgSU5URUdFUiwgY29sXzM3IElOVEVHRVIsIGNv bF8zOCBJTlRFR0VSLCBjb2xfMzkgSU5URUdFUiwgY29sXzQwIElOVEVHRVIsCisJCWNvbF80MSBJ TlRFR0VSLCBjb2xfNDIgSU5URUdFUiwgY29sXzQzIElOVEVHRVIsIGNvbF80NCBJTlRFR0VSLCBj b2xfNDUgSU5URUdFUiwKKwkJY29sXzQ2IElOVEVHRVIsIGNvbF80NyBJTlRFR0VSLCBjb2xfNDgg SU5URUdFUiwgY29sXzQ5IElOVEVHRVIsIGNvbF81MCBJTlRFR0VSLAorCQljb2xfNTEgSU5URUdF UiwgY29sXzUyIElOVEVHRVIsIGNvbF81MyBJTlRFR0VSLCBjb2xfNTQgSU5URUdFUiwgY29sXzU1 IElOVEVHRVIsCisJCWNvbF81NiBJTlRFR0VSLCBjb2xfNTcgSU5URUdFUiwgY29sXzU4IElOVEVH RVIsIGNvbF81OSBJTlRFR0VSLCBjb2xfNjAgSU5URUdFUiwKKwkJY29sXzYxIElOVEVHRVIsIGNv bF82MiBJTlRFR0VSLCBjb2xfNjMgSU5URUdFUiwgY29sXzY0IElOVEVHRVIsIGNvbF82NSBJTlRF R0VSLAorCQljb2xfNjYgSU5URUdFUiwgY29sXzY3IElOVEVHRVIsIGNvbF82OCBJTlRFR0VSLCBj b2xfNjkgSU5URUdFUiwgY29sXzcwIElOVEVHRVIsCisJCWNvbF83MSBJTlRFR0VSLCBjb2xfNzIg SU5URUdFUiwgY29sXzczIElOVEVHRVIsIGNvbF83NCBJTlRFR0VSLCBjb2xfNzUgSU5URUdFUiwK KwkJY29sXzc2IElOVEVHRVIsIGNvbF83NyBJTlRFR0VSLCBjb2xfNzggSU5URUdFUiwgY29sXzc5 IElOVEVHRVIsIGNvbF84MCBJTlRFR0VSLAorCQljb2xfODEgSU5URUdFUiwgY29sXzgyIElOVEVH RVIsIGNvbF84MyBJTlRFR0VSLCBjb2xfODQgSU5URUdFUiwgY29sXzg1IElOVEVHRVIsCisJCWNv bF84NiBJTlRFR0VSLCBjb2xfODcgSU5URUdFUiwgY29sXzg4IElOVEVHRVIsIGNvbF84OSBJTlRF R0VSLCBjb2xfOTAgSU5URUdFUiwKKwkJY29sXzkxIElOVEVHRVIsIGNvbF85MiBJTlRFR0VSLCBj b2xfOTMgSU5URUdFUiwgY29sXzk0IElOVEVHRVIsIGNvbF85NSBJTlRFR0VSLAorCQljb2xfOTYg SU5URUdFUiwgY29sXzk3IElOVEVHRVIsIGNvbF85OCBJTlRFR0VSLCBjb2xfOTkgSU5URUdFUiwg Y29sXzEwMCBJTlRFR0VSCisJKSBXSVRIIChwYXJhbGxlbF9pZHhfYXV0b3ZhY19lbmFibGVkID0g dHJ1ZSk7CisKKwlETyBcJFwkCisJREVDTEFSRQorCQlpIElOVEVHRVI7CisJQkVHSU4KKwkJRk9S IGkgSU4gMS4uJGluZGV4ZXNfbnVtIExPT1AKKwkJCUVYRUNVVEUgZm9ybWF0KCdDUkVBVEUgSU5E RVggaWR4X2NvbF9cJXMgT04gdGVzdF9hdXRvdmFjIChjb2xfXCVzKTsnLCBpLCBpKTsKKwkJRU5E IExPT1A7CisJRU5EIFwkXCQ7Cit9KTsKKworJG5vZGUtPnBzcWwoJ3Bvc3RncmVzJywKKwkiU0VM RUNUIENPVU5UKCopIEZST00gcGdfaW5kZXggaQorCSAgIEpPSU4gcGdfY2xhc3MgYyBPTiBjLm9p ZCA9IGkuaW5kcmVsaWQKKwkgIFdIRVJFIGMucmVsbmFtZSA9ICd0ZXN0X2F1dG92YWMnOyIsCisJ c3Rkb3V0ID0+IFwkcHNxbF9vdXQKKyk7CitpcygkcHNxbF9vdXQsICRpbmRleGVzX251bSArIDEs ICJBbGwgaW5kZXhlcyBjcmVhdGVkIHN1Y2Nlc3NmdWxseSIpOworCiskbm9kZS0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsIHFxeworCURPIFwkXCQKKwlERUNMQVJFCisJICAgIGkgSU5URUdFUjsKKwlC RUdJTgorCSAgICBGT1IgaSBJTiAxLi4kaW5pdGlhbF9yb3dzX251bSBMT09QCisJICAgICAgICBJ TlNFUlQgSU5UTyB0ZXN0X2F1dG92YWMgKAorCSAgICAgICAgICAgIGNvbF8xLCBjb2xfMiwgY29s XzMsIGNvbF80LCBjb2xfNSwgY29sXzYsIGNvbF83LCBjb2xfOCwgY29sXzksIGNvbF8xMCwKKwkg ICAgICAgICAgICBjb2xfMTEsIGNvbF8xMiwgY29sXzEzLCBjb2xfMTQsIGNvbF8xNSwgY29sXzE2 LCBjb2xfMTcsIGNvbF8xOCwgY29sXzE5LCBjb2xfMjAsCisJICAgICAgICAgICAgY29sXzIxLCBj b2xfMjIsIGNvbF8yMywgY29sXzI0LCBjb2xfMjUsIGNvbF8yNiwgY29sXzI3LCBjb2xfMjgsIGNv bF8yOSwgY29sXzMwLAorCSAgICAgICAgICAgIGNvbF8zMSwgY29sXzMyLCBjb2xfMzMsIGNvbF8z NCwgY29sXzM1LCBjb2xfMzYsIGNvbF8zNywgY29sXzM4LCBjb2xfMzksIGNvbF80MCwKKwkgICAg ICAgICAgICBjb2xfNDEsIGNvbF80MiwgY29sXzQzLCBjb2xfNDQsIGNvbF80NSwgY29sXzQ2LCBj b2xfNDcsIGNvbF80OCwgY29sXzQ5LCBjb2xfNTAsCisJICAgICAgICAgICAgY29sXzUxLCBjb2xf NTIsIGNvbF81MywgY29sXzU0LCBjb2xfNTUsIGNvbF81NiwgY29sXzU3LCBjb2xfNTgsIGNvbF81 OSwgY29sXzYwLAorCSAgICAgICAgICAgIGNvbF82MSwgY29sXzYyLCBjb2xfNjMsIGNvbF82NCwg Y29sXzY1LCBjb2xfNjYsIGNvbF82NywgY29sXzY4LCBjb2xfNjksIGNvbF83MCwKKwkgICAgICAg ICAgICBjb2xfNzEsIGNvbF83MiwgY29sXzczLCBjb2xfNzQsIGNvbF83NSwgY29sXzc2LCBjb2xf NzcsIGNvbF83OCwgY29sXzc5LCBjb2xfODAsCisJICAgICAgICAgICAgY29sXzgxLCBjb2xfODIs IGNvbF84MywgY29sXzg0LCBjb2xfODUsIGNvbF84NiwgY29sXzg3LCBjb2xfODgsIGNvbF84OSwg Y29sXzkwLAorCSAgICAgICAgICAgIGNvbF85MSwgY29sXzkyLCBjb2xfOTMsIGNvbF85NCwgY29s Xzk1LCBjb2xfOTYsIGNvbF85NywgY29sXzk4LCBjb2xfOTksIGNvbF8xMDAKKwkgICAgICAgICkg VkFMVUVTICgKKwkgICAgICAgICAgICBpLCBpICsgMSwgaSArIDIsIGkgKyAzLCBpICsgNCwgaSAr IDUsIGkgKyA2LCBpICsgNywgaSArIDgsIGkgKyA5LAorCSAgICAgICAgICAgIGkgKyAxMCwgaSAr IDExLCBpICsgMTIsIGkgKyAxMywgaSArIDE0LCBpICsgMTUsIGkgKyAxNiwgaSArIDE3LCBpICsg MTgsIGkgKyAxOSwKKwkgICAgICAgICAgICBpICsgMjAsIGkgKyAyMSwgaSArIDIyLCBpICsgMjMs IGkgKyAyNCwgaSArIDI1LCBpICsgMjYsIGkgKyAyNywgaSArIDI4LCBpICsgMjksCisJICAgICAg ICAgICAgaSArIDMwLCBpICsgMzEsIGkgKyAzMiwgaSArIDMzLCBpICsgMzQsIGkgKyAzNSwgaSAr IDM2LCBpICsgMzcsIGkgKyAzOCwgaSArIDM5LAorCSAgICAgICAgICAgIGkgKyA0MCwgaSArIDQx LCBpICsgNDIsIGkgKyA0MywgaSArIDQ0LCBpICsgNDUsIGkgKyA0NiwgaSArIDQ3LCBpICsgNDgs IGkgKyA0OSwKKwkgICAgICAgICAgICBpICsgNTAsIGkgKyA1MSwgaSArIDUyLCBpICsgNTMsIGkg KyA1NCwgaSArIDU1LCBpICsgNTYsIGkgKyA1NywgaSArIDU4LCBpICsgNTksCisJICAgICAgICAg ICAgaSArIDYwLCBpICsgNjEsIGkgKyA2MiwgaSArIDYzLCBpICsgNjQsIGkgKyA2NSwgaSArIDY2 LCBpICsgNjcsIGkgKyA2OCwgaSArIDY5LAorCSAgICAgICAgICAgIGkgKyA3MCwgaSArIDcxLCBp ICsgNzIsIGkgKyA3MywgaSArIDc0LCBpICsgNzUsIGkgKyA3NiwgaSArIDc3LCBpICsgNzgsIGkg KyA3OSwKKwkgICAgICAgICAgICBpICsgODAsIGkgKyA4MSwgaSArIDgyLCBpICsgODMsIGkgKyA4 NCwgaSArIDg1LCBpICsgODYsIGkgKyA4NywgaSArIDg4LCBpICsgODksCisJICAgICAgICAgICAg aSArIDkwLCBpICsgOTEsIGkgKyA5MiwgaSArIDkzLCBpICsgOTQsIGkgKyA5NSwgaSArIDk2LCBp ICsgOTcsIGkgKyA5OCwgaSArIDk5CisJICAgICAgICApOworCSAgICBFTkQgTE9PUDsKKwlFTkQg XCRcJDsKK30pOworCiskbm9kZS0+cHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgQ09VTlQoKikg RlJPTSB0ZXN0X2F1dG92YWM7IiwKKwlzdGRvdXQgPT4gXCRwc3FsX291dAorKTsKK2lzKCRwc3Fs X291dCwgJGluaXRpYWxfcm93c19udW0sICJBbGwgZGF0YSBpbnNlcnRlZCBpbnRvIHRhYmxlIHN1 Y2Nlc3NmdWxseSIpOworCiskbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxeworCVVQREFU RSB0ZXN0X2F1dG92YWMgU0VUIGNvbF8xID0gMCBXSEVSRSAoY29sXzEgJSAzKSA9IDA7CisJQU5B TFlaRSB0ZXN0X2F1dG92YWM7Cit9KTsKKworIyBSZWR1Y2UgYXV0b3ZhY3V1bV93b3JrX21lbSwg c28gbGVhZGVyIHByb2Nlc3Mgd2lsbCBwZXJmb3JtIHBhcmFsbGVsIGluZGV4aQorIyB2YWN1dW0g cGhhc2Ugc2V2ZXJhbCB0aW1lcworJG5vZGUtPmFwcGVuZF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYn LCBxcXsKKwlhdXRvdmFjdXVtX25hcHRpbWUgPSAnMXMnCisJYXV0b3ZhY3V1bV92YWN1dW1fdGhy ZXNob2xkID0gMQorCWF1dG92YWN1dW1fYW5hbHl6ZV90aHJlc2hvbGQgPSAxCisJYXV0b3ZhY3V1 bV92YWN1dW1fc2NhbGVfZmFjdG9yID0gMC4xCisJYXV0b3ZhY3V1bV9hbmFseXplX3NjYWxlX2Zh Y3RvciA9IDAuMQorCWF1dG92YWN1dW0gPSBvbgorfSk7CisKKyRub2RlLT5yZXN0YXJ0OworCisj IHNsZWVwKDM2MDApOworCitvaygxLCAiVGhlcmUgYXJlIG5vIHNlZ2ZhdWx0cyIpOworCiskbm9k ZS0+c3RvcDsKK2RvbmVfdGVzdGluZygpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy9t ZXNvbi5idWlsZCBiL3NyYy90ZXN0L21vZHVsZXMvbWVzb24uYnVpbGQKaW5kZXggOWRlMDA1N2Jk MWQuLjdmMmFkODEwY2EwIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9tb2R1bGVzL21lc29uLmJ1aWxk CisrKyBiL3NyYy90ZXN0L21vZHVsZXMvbWVzb24uYnVpbGQKQEAgLTEsNSArMSw2IEBACiAjIENv cHlyaWdodCAoYykgMjAyMi0yMDI1LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91 cAogCitzdWJkaXIoJ2F1dG92YWN1dW0nKQogc3ViZGlyKCdicmluJykKIHN1YmRpcignY29tbWl0 X3RzJykKIHN1YmRpcignZGVsYXlfZXhlY3V0aW9uJykKLS0gCjIuNDMuMAoK --000000000000ab1bcd063539cc9f Content-Type: application/x-patch; name="v2-0001-Parallel-index-autovacuum-with-bgworkers.patch" Content-Disposition: attachment; filename="v2-0001-Parallel-index-autovacuum-with-bgworkers.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_maqbynrh0 RnJvbSBjNTE4ZjEyMjZmODk2MWZkZWY4ODYwMGE2ZDM4ODY3NGUxODRjZmY3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5paWwgRGF2aWRvdiA8ZC5kYXZ5ZG92QHBvc3RncmVzcHJv LnJ1PgpEYXRlOiBGcmksIDE2IE1heSAyMDI1IDExOjU4OjQwICswNzAwClN1YmplY3Q6IFtQQVRD SCB2MiAxLzJdIFBhcmFsbGVsIGluZGV4IGF1dG92YWN1dW0gd2l0aCBiZ3dvcmtlcnMKCi0tLQog c3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9yZWxvcHRpb25zLmMgICAgICAgIHwgMTEgKysrKwog c3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtLmMgICAgICAgICAgICAgICAgIHwgNTUgKysrKysr KysrKysrKysrKysrKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYyAgICAg ICAgIHwgNDYgKysrKysrKysrKy0tLS0tLQogc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9hdXRvdmFj dXVtLmMgICAgICAgICAgIHwgIDkgKysrCiBzcmMvYmFja2VuZC9wb3N0bWFzdGVyL2Jnd29ya2Vy LmMgICAgICAgICAgICAgfCAzMyArKysrKysrKysrLQogc3JjL2JhY2tlbmQvdXRpbHMvaW5pdC9n bG9iYWxzLmMgICAgICAgICAgICAgIHwgIDEgKwogc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNf dGFibGVzLmMgICAgICAgICAgIHwgMTIgKysrKwogc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0 Z3Jlc3FsLmNvbmYuc2FtcGxlIHwgIDEgKwogc3JjL2luY2x1ZGUvbWlzY2FkbWluLmggICAgICAg ICAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL2luY2x1ZGUvdXRpbHMvZ3VjX2hvb2tzLmggICAg ICAgICAgICAgICAgIHwgIDIgKwogc3JjL2luY2x1ZGUvdXRpbHMvcmVsLmggICAgICAgICAgICAg ICAgICAgICAgIHwgMTAgKysrKwogMTEgZmlsZXMgY2hhbmdlZCwgMTYyIGluc2VydGlvbnMoKyks IDE5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24v cmVsb3B0aW9ucy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9yZWxvcHRpb25zLmMKaW5k ZXggNDZjMWRjZTIyMmQuLmNjZjU5MjA4NzgzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nl c3MvY29tbW9uL3JlbG9wdGlvbnMuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3Jl bG9wdGlvbnMuYwpAQCAtMTY2LDYgKzE2NiwxNSBAQCBzdGF0aWMgcmVsb3B0X2Jvb2wgYm9vbFJl bE9wdHNbXSA9CiAJCX0sCiAJCXRydWUKIAl9LAorCXsKKwkJeworCQkJInBhcmFsbGVsX2lkeF9h dXRvdmFjX2VuYWJsZWQiLAorCQkJIkFsbG93cyBhdXRvdmFjdXVtIHRvIHByb2Nlc3MgaW5kZXhl cyBvZiB0aGlzIHRhYmxlIGluIHBhcmFsbGVsIG1vZGUiLAorCQkJUkVMT1BUX0tJTkRfSEVBUCwK KwkJCVNoYXJlVXBkYXRlRXhjbHVzaXZlTG9jaworCQl9LAorCQlmYWxzZQorCX0sCiAJLyogbGlz dCB0ZXJtaW5hdG9yICovCiAJe3tOVUxMfX0KIH07CkBAIC0xODYzLDYgKzE4NzIsOCBAQCBkZWZh dWx0X3JlbG9wdGlvbnMoRGF0dW0gcmVsb3B0aW9ucywgYm9vbCB2YWxpZGF0ZSwgcmVsb3B0X2tp bmQga2luZCkKIAkJeyJmaWxsZmFjdG9yIiwgUkVMT1BUX1RZUEVfSU5ULCBvZmZzZXRvZihTdGRS ZE9wdGlvbnMsIGZpbGxmYWN0b3IpfSwKIAkJeyJhdXRvdmFjdXVtX2VuYWJsZWQiLCBSRUxPUFRf VFlQRV9CT09MLAogCQlvZmZzZXRvZihTdGRSZE9wdGlvbnMsIGF1dG92YWN1dW0pICsgb2Zmc2V0 b2YoQXV0b1ZhY09wdHMsIGVuYWJsZWQpfSwKKwkJeyJwYXJhbGxlbF9pZHhfYXV0b3ZhY19lbmFi bGVkIiwgUkVMT1BUX1RZUEVfQk9PTCwKKwkJb2Zmc2V0b2YoU3RkUmRPcHRpb25zLCBhdXRvdmFj dXVtKSArIG9mZnNldG9mKEF1dG9WYWNPcHRzLCBwYXJhbGxlbF9pZHhfYXV0b3ZhY19lbmFibGVk KX0sCiAJCXsiYXV0b3ZhY3V1bV92YWN1dW1fdGhyZXNob2xkIiwgUkVMT1BUX1RZUEVfSU5ULAog CQlvZmZzZXRvZihTdGRSZE9wdGlvbnMsIGF1dG92YWN1dW0pICsgb2Zmc2V0b2YoQXV0b1ZhY09w dHMsIHZhY3V1bV90aHJlc2hvbGQpfSwKIAkJeyJhdXRvdmFjdXVtX3ZhY3V1bV9tYXhfdGhyZXNo b2xkIiwgUkVMT1BUX1RZUEVfSU5ULApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv dmFjdXVtLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW0uYwppbmRleCAzM2EzM2JmNmIx Yy4uZjc2NjdmMTQxNDcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bS5j CisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bS5jCkBAIC01Nyw5ICs1NywyMSBAQAog I2luY2x1ZGUgInV0aWxzL2d1Yy5oIgogI2luY2x1ZGUgInV0aWxzL2d1Y19ob29rcy5oIgogI2lu Y2x1ZGUgInV0aWxzL21lbXV0aWxzLmgiCisjaW5jbHVkZSAidXRpbHMvcmVsLmgiCiAjaW5jbHVk ZSAidXRpbHMvc25hcG1nci5oIgogI2luY2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgiCiAKKy8qCisg KiBNaW5pbXVtIG51bWJlciBvZiBkZWFkIHR1cGxlcyByZXF1aXJlZCBmb3IgdGhlIHRhYmxlJ3Mg aW5kZXhlcyB0byBiZQorICogcHJvY2Vzc2VkIGluIHBhcmFsbGVsIGR1cmluZyBhdXRvdmFjdXVt LgorICovCisjZGVmaW5lIEFWX1BBUkFMTEVMX0RFQURUVVBfVEhSRVNIT0xECTEwMjQKKworLyoK KyAqIEhvdyBtYW55IGluZGV4ZXMgc2hvdWxkIHByb2Nlc3MgZWFjaCBwYXJhbGxlbCB3b3JrZXIg ZHVyaW5nIGF1dG92YWN1dW0uCisgKi8KKyNkZWZpbmUgTlVNX0lOREVYRVNfUEVSX1BBUkFMTEVM X1dPUktFUiAzMAorCiAvKgogICogTWluaW11bSBpbnRlcnZhbCBmb3IgY29zdC1iYXNlZCB2YWN1 dW0gZGVsYXkgcmVwb3J0cyBmcm9tIGEgcGFyYWxsZWwgd29ya2VyLgogICogVGhpcyBhaW1zIHRv IGF2b2lkIHNlbmRpbmcgdG9vIG1hbnkgbWVzc2FnZXMgYW5kIHdha2luZyB1cCB0aGUgbGVhZGVy IHRvbwpAQCAtMjIzNCw2ICsyMjQ2LDQ5IEBAIHZhY3V1bV9yZWwoT2lkIHJlbGlkLCBSYW5nZVZh ciAqcmVsYXRpb24sIFZhY3V1bVBhcmFtcyAqcGFyYW1zLAogCWVsc2UKIAkJdG9hc3RfcmVsaWQg PSBJbnZhbGlkT2lkOwogCisJLyoKKwkgKiBJZiB3ZSBhcmUgcnVubmluZyBhdXRvdmFjdXVtIC0g ZGVjaWRlIHdoZXRoZXIgd2UgbmVlZCB0byBwcm9jZXNzIGluZGV4ZXMKKwkgKiBvZiB0YWJsZSB3 aXRoIGdpdmVuIG9pZCBpbiBwYXJhbGxlbC4KKwkgKi8KKwlpZiAoQW1BdXRvVmFjdXVtV29ya2Vy UHJvY2VzcygpICYmCisJCXBhcmFtcy0+aW5kZXhfY2xlYW51cCAhPSBWQUNPUFRWQUxVRV9ESVNB QkxFRCAmJgorCQlSZWxhdGlvbkFsbG93c1BhcmFsbGVsSWR4QXV0b3ZhYyhyZWwpKQorCXsKKwkJ UGdTdGF0X1N0YXRUYWJFbnRyeSAqdGFiZW50cnk7CisKKwkJLyogZmV0Y2ggdGhlIHBnc3RhdCB0 YWJsZSBlbnRyeSAqLworCQl0YWJlbnRyeSA9IHBnc3RhdF9mZXRjaF9zdGF0X3RhYmVudHJ5X2V4 dChyZWwtPnJkX3JlbC0+cmVsaXNzaGFyZWQsCisJCQkJCQkJCQkJCQkgIHJlbC0+cmRfaWQpOwor CQlpZiAodGFiZW50cnkgJiYgdGFiZW50cnktPmRlYWRfdHVwbGVzID49IEFWX1BBUkFMTEVMX0RF QURUVVBfVEhSRVNIT0xEKQorCQl7CisJCQlMaXN0ICAgKmluZGV4ZXMgPSBSZWxhdGlvbkdldElu ZGV4TGlzdChyZWwpOworCQkJaW50CQludW1faW5kZXhlcyA9IGxpc3RfbGVuZ3RoKGluZGV4ZXMp OworCisJCQlsaXN0X2ZyZWUoaW5kZXhlcyk7CisKKwkJCWlmIChhdl9yZXNlcnZlZF93b3JrZXJz X251bSA+IDApCisJCQl7CisJCQkJLyoKKwkJCQkgKiBXZSByZXF1ZXN0IGF0IGxlYXN0IG9uZSBw YXJhbGxlbCB3b3JrZXIsIGlmIHVzZXIgc2V0CisJCQkJICogJ3BhcmFsbGVsX2lkeF9hdXRvdmFj X2VuYWJsZWQnIG9wdGlvbi4gVGhlIHRvdGFsIG51bWJlciBvZgorCQkJCSAqIGFkZGl0aW9uYWwg cGFyYWxsZWwgd29ya2VycyBkZXBlbmRzIG9uIGhvdyBtYW55IGluZGV4ZXMgdGhlCisJCQkJICog dGFibGUgaGFzLiBGb3Igbm93IHdlIGFzc3VtZSB0aGF0IGVhY2ggcGFyYWxsZWwgd29ya2VyIHNo b3VsZAorCQkJCSAqIHByb2Nlc3MgTlVNX0lOREVYRVNfUEVSX1BBUkFMTEVMX1dPUktFUiBpbmRl eGVzLgorCQkJCSAqLworCQkJCXBhcmFtcy0+bndvcmtlcnMgPQorCQkJCQlNaW4oKG51bV9pbmRl eGVzIC8gTlVNX0lOREVYRVNfUEVSX1BBUkFMTEVMX1dPUktFUikgKyAxLAorCQkJCQkJYXZfcmVz ZXJ2ZWRfd29ya2Vyc19udW0pOworCQkJfQorCQkJZWxzZQorCQkJCWVyZXBvcnQoV0FSTklORywK KwkJCQkJKGVycmNvZGUoRVJSQ09ERV9DT05GSUdVUkFUSU9OX0xJTUlUX0VYQ0VFREVEKSwKKwkJ CQkJIGVycm1zZygiQ2Fubm90IGxhdW5jaCBhbnkgc3VwcG9ydGl2ZSB3b3JrZXJzIGZvciBwYXJh bGxlbCBpbmRleCBjbGVhbnVwIG9mIHJlbCAlcyIsCisJCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlv bk5hbWUocmVsKSksCisJCQkJCWVycmhpbnQoIllvdSBtaWdodCBuZWVkIHRvIHNldCBwYXJhbWV0 ZXIgXCJhdl9yZXNlcnZlZF93b3JrZXJzX251bVwiIHRvIGEgdmFsdWUgPiAwIikpKTsKKworCQl9 CisJfQorCiAJLyoKIAkgKiBTd2l0Y2ggdG8gdGhlIHRhYmxlIG93bmVyJ3MgdXNlcmlkLCBzbyB0 aGF0IGFueSBpbmRleCBmdW5jdGlvbnMgYXJlIHJ1bgogCSAqIGFzIHRoYXQgdXNlci4gIEFsc28g bG9jayBkb3duIHNlY3VyaXR5LXJlc3RyaWN0ZWQgb3BlcmF0aW9ucyBhbmQKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMgYi9zcmMvYmFja2VuZC9jb21t YW5kcy92YWN1dW1wYXJhbGxlbC5jCmluZGV4IDJiOWQ1NDhjZGViLi5lMmIzZTViMzQzYyAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYworKysgYi9zcmMv YmFja2VuZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5jCkBAIC0xLDE1ICsxLDE1IEBACiAvKi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KICAqCiAgKiB2YWN1dW1wYXJhbGxlbC5jCi0gKgkgIFN1cHBvcnQgcm91 dGluZXMgZm9yIHBhcmFsbGVsIHZhY3V1bSBleGVjdXRpb24uCisgKgkgIFN1cHBvcnQgcm91dGlu ZXMgZm9yIHBhcmFsbGVsIFthdXRvXXZhY3V1bSBleGVjdXRpb24uCiAgKgogICogVGhpcyBmaWxl IGNvbnRhaW5zIHJvdXRpbmVzIHRoYXQgYXJlIGludGVuZGVkIHRvIHN1cHBvcnQgc2V0dGluZyB1 cCwgdXNpbmcsCiAgKiBhbmQgdGVhcmluZyBkb3duIGEgUGFyYWxsZWxWYWN1dW1TdGF0ZS4KICAq Ci0gKiBJbiBhIHBhcmFsbGVsIHZhY3V1bSwgd2UgcGVyZm9ybSBib3RoIGluZGV4IGJ1bGsgZGVs ZXRpb24gYW5kIGluZGV4IGNsZWFudXAKLSAqIHdpdGggcGFyYWxsZWwgd29ya2VyIHByb2Nlc3Nl cy4gIEluZGl2aWR1YWwgaW5kZXhlcyBhcmUgcHJvY2Vzc2VkIGJ5IG9uZQotICogdmFjdXVtIHBy b2Nlc3MuICBQYXJhbGxlbFZhY3V1bVN0YXRlIGNvbnRhaW5zIHNoYXJlZCBpbmZvcm1hdGlvbiBh cyB3ZWxsIGFzCi0gKiB0aGUgbWVtb3J5IHNwYWNlIGZvciBzdG9yaW5nIGRlYWQgaXRlbXMgYWxs b2NhdGVkIGluIHRoZSBEU0EgYXJlYS4gIFdlCisgKiBJbiBhIHBhcmFsbGVsIFthdXRvXXZhY3V1 bSwgd2UgcGVyZm9ybSBib3RoIGluZGV4IGJ1bGsgZGVsZXRpb24gYW5kIGluZGV4CisgKiBjbGVh bnVwIHdpdGggcGFyYWxsZWwgd29ya2VyIHByb2Nlc3Nlcy4gIEluZGl2aWR1YWwgaW5kZXhlcyBh cmUgcHJvY2Vzc2VkIGJ5CisgKiBvbmUgdmFjdXVtIHByb2Nlc3MuICBQYXJhbGxlbFZhY3V1bVN0 YXRlIGNvbnRhaW5zIHNoYXJlZCBpbmZvcm1hdGlvbiBhcyB3ZWxsCisgKiBhcyB0aGUgbWVtb3J5 IHNwYWNlIGZvciBzdG9yaW5nIGRlYWQgaXRlbXMgYWxsb2NhdGVkIGluIHRoZSBEU0EgYXJlYS4g IFdlCiAgKiBsYXVuY2ggcGFyYWxsZWwgd29ya2VyIHByb2Nlc3NlcyBhdCB0aGUgc3RhcnQgb2Yg cGFyYWxsZWwgaW5kZXgKICAqIGJ1bGstZGVsZXRpb24gYW5kIGluZGV4IGNsZWFudXAgYW5kIG9u Y2UgYWxsIGluZGV4ZXMgYXJlIHByb2Nlc3NlZCwgdGhlCiAgKiBwYXJhbGxlbCB3b3JrZXIgcHJv Y2Vzc2VzIGV4aXQuICBFYWNoIHRpbWUgd2UgcHJvY2VzcyBpbmRleGVzIGluIHBhcmFsbGVsLApA QCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgImV4ZWN1dG9yL2luc3RydW1lbnQuaCIKICNpbmNs dWRlICJvcHRpbWl6ZXIvcGF0aHMuaCIKICNpbmNsdWRlICJwZ3N0YXQuaCIKKyNpbmNsdWRlICJw b3N0bWFzdGVyL2F1dG92YWN1dW0uaCIKICNpbmNsdWRlICJzdG9yYWdlL2J1Zm1nci5oIgogI2lu Y2x1ZGUgInRjb3AvdGNvcHByb3QuaCIKICNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKQEAg LTE1Nyw3ICsxNTgsOCBAQCB0eXBlZGVmIHN0cnVjdCBQVkluZFN0YXRzCiB9IFBWSW5kU3RhdHM7 CiAKIC8qCi0gKiBTdHJ1Y3QgZm9yIG1haW50YWluaW5nIGEgcGFyYWxsZWwgdmFjdXVtIHN0YXRl LiB0eXBlZGVmIGFwcGVhcnMgaW4gdmFjdXVtLmguCisgKiBTdHJ1Y3QgZm9yIG1haW50YWluaW5n IGEgcGFyYWxsZWwgW2F1dG9ddmFjdXVtIHN0YXRlLiB0eXBlZGVmIGFwcGVhcnMgaW4KKyAqIHZh Y3V1bS5oLgogICovCiBzdHJ1Y3QgUGFyYWxsZWxWYWN1dW1TdGF0ZQogewpAQCAtMzcxLDEwICsz NzMsMTggQEAgcGFyYWxsZWxfdmFjdXVtX2luaXQoUmVsYXRpb24gcmVsLCBSZWxhdGlvbiAqaW5k cmVscywgaW50IG5pbmRleGVzLAogCXNoYXJlZC0+cmVsaWQgPSBSZWxhdGlvbkdldFJlbGlkKHJl bCk7CiAJc2hhcmVkLT5lbGV2ZWwgPSBlbGV2ZWw7CiAJc2hhcmVkLT5xdWVyeWlkID0gcGdzdGF0 X2dldF9teV9xdWVyeV9pZCgpOwotCXNoYXJlZC0+bWFpbnRlbmFuY2Vfd29ya19tZW1fd29ya2Vy ID0KLQkJKG5pbmRleGVzX213bSA+IDApID8KLQkJbWFpbnRlbmFuY2Vfd29ya19tZW0gLyBNaW4o cGFyYWxsZWxfd29ya2VycywgbmluZGV4ZXNfbXdtKSA6Ci0JCW1haW50ZW5hbmNlX3dvcmtfbWVt OworCisJaWYgKEFtQXV0b1ZhY3V1bVdvcmtlclByb2Nlc3MoKSkKKwkJc2hhcmVkLT5tYWludGVu YW5jZV93b3JrX21lbV93b3JrZXIgPQorCQkJKG5pbmRleGVzX213bSA+IDApID8KKwkJCWF1dG92 YWN1dW1fd29ya19tZW0gLyBNaW4ocGFyYWxsZWxfd29ya2VycywgbmluZGV4ZXNfbXdtKSA6CisJ CQlhdXRvdmFjdXVtX3dvcmtfbWVtOworCWVsc2UKKwkJc2hhcmVkLT5tYWludGVuYW5jZV93b3Jr X21lbV93b3JrZXIgPQorCQkJKG5pbmRleGVzX213bSA+IDApID8KKwkJCW1haW50ZW5hbmNlX3dv cmtfbWVtIC8gTWluKHBhcmFsbGVsX3dvcmtlcnMsIG5pbmRleGVzX213bSkgOgorCQkJbWFpbnRl bmFuY2Vfd29ya19tZW07CisKIAlzaGFyZWQtPmRlYWRfaXRlbXNfaW5mby5tYXhfYnl0ZXMgPSB2 YWNfd29ya19tZW0gKiAoc2l6ZV90KSAxMDI0OwogCiAJLyogUHJlcGFyZSBEU0Egc3BhY2UgZm9y IGRlYWQgaXRlbXMgKi8KQEAgLTU1OCw3ICs1NjgsOSBAQCBwYXJhbGxlbF92YWN1dW1fY29tcHV0 ZV93b3JrZXJzKFJlbGF0aW9uICppbmRyZWxzLCBpbnQgbmluZGV4ZXMsIGludCBucmVxdWVzdGVk LAogCSAqIFdlIGRvbid0IGFsbG93IHBlcmZvcm1pbmcgcGFyYWxsZWwgb3BlcmF0aW9uIGluIHN0 YW5kYWxvbmUgYmFja2VuZCBvcgogCSAqIHdoZW4gcGFyYWxsZWxpc20gaXMgZGlzYWJsZWQuCiAJ ICovCi0JaWYgKCFJc1VuZGVyUG9zdG1hc3RlciB8fCBtYXhfcGFyYWxsZWxfbWFpbnRlbmFuY2Vf d29ya2VycyA9PSAwKQorCWlmICghSXNVbmRlclBvc3RtYXN0ZXIgfHwKKwkJKGF2X3Jlc2VydmVk X3dvcmtlcnNfbnVtID09IDAgJiYgQW1BdXRvVmFjdXVtV29ya2VyUHJvY2VzcygpKSB8fAorCQko bWF4X3BhcmFsbGVsX21haW50ZW5hbmNlX3dvcmtlcnMgPT0gMCAmJiAhQW1BdXRvVmFjdXVtV29y a2VyUHJvY2VzcygpKSkKIAkJcmV0dXJuIDA7CiAKIAkvKgpAQCAtNTk3LDE1ICs2MDksMTcgQEAg cGFyYWxsZWxfdmFjdXVtX2NvbXB1dGVfd29ya2VycyhSZWxhdGlvbiAqaW5kcmVscywgaW50IG5p bmRleGVzLCBpbnQgbnJlcXVlc3RlZCwKIAlwYXJhbGxlbF93b3JrZXJzID0gKG5yZXF1ZXN0ZWQg PiAwKSA/CiAJCU1pbihucmVxdWVzdGVkLCBuaW5kZXhlc19wYXJhbGxlbCkgOiBuaW5kZXhlc19w YXJhbGxlbDsKIAotCS8qIENhcCBieSBtYXhfcGFyYWxsZWxfbWFpbnRlbmFuY2Vfd29ya2VycyAq LwotCXBhcmFsbGVsX3dvcmtlcnMgPSBNaW4ocGFyYWxsZWxfd29ya2VycywgbWF4X3BhcmFsbGVs X21haW50ZW5hbmNlX3dvcmtlcnMpOworCS8qIENhcCBieSBHVUMgdmFyaWFibGUgKi8KKwlwYXJh bGxlbF93b3JrZXJzID0gQW1BdXRvVmFjdXVtV29ya2VyUHJvY2VzcygpID8KKwkJTWluKHBhcmFs bGVsX3dvcmtlcnMsIGF2X3Jlc2VydmVkX3dvcmtlcnNfbnVtKSA6CisJCU1pbihwYXJhbGxlbF93 b3JrZXJzLCBtYXhfcGFyYWxsZWxfbWFpbnRlbmFuY2Vfd29ya2Vycyk7CiAKIAlyZXR1cm4gcGFy YWxsZWxfd29ya2VyczsKIH0KIAogLyoKICAqIFBlcmZvcm0gaW5kZXggdmFjdXVtIG9yIGluZGV4 IGNsZWFudXAgd2l0aCBwYXJhbGxlbCB3b3JrZXJzLiAgVGhpcyBmdW5jdGlvbgotICogbXVzdCBi ZSB1c2VkIGJ5IHRoZSBwYXJhbGxlbCB2YWN1dW0gbGVhZGVyIHByb2Nlc3MuCisgKiBtdXN0IGJl IHVzZWQgYnkgdGhlIHBhcmFsbGVsIFthdXRvXXZhY3V1bSBsZWFkZXIgcHJvY2Vzcy4KICAqLwog c3RhdGljIHZvaWQKIHBhcmFsbGVsX3ZhY3V1bV9wcm9jZXNzX2FsbF9pbmRleGVzKFBhcmFsbGVs VmFjdXVtU3RhdGUgKnB2cywgaW50IG51bV9pbmRleF9zY2FucywKQEAgLTk4Miw4ICs5OTYsOCBA QCBwYXJhbGxlbF92YWN1dW1faW5kZXhfaXNfcGFyYWxsZWxfc2FmZShSZWxhdGlvbiBpbmRyZWws IGludCBudW1faW5kZXhfc2NhbnMsCiAvKgogICogUGVyZm9ybSB3b3JrIHdpdGhpbiBhIGxhdW5j aGVkIHBhcmFsbGVsIHByb2Nlc3MuCiAgKgotICogU2luY2UgcGFyYWxsZWwgdmFjdXVtIHdvcmtl cnMgcGVyZm9ybSBvbmx5IGluZGV4IHZhY3V1bSBvciBpbmRleCBjbGVhbnVwLAotICogd2UgZG9u J3QgbmVlZCB0byByZXBvcnQgcHJvZ3Jlc3MgaW5mb3JtYXRpb24uCisgKiBTaW5jZSBwYXJhbGxl bCBbYXV0b112YWN1dW0gd29ya2VycyBwZXJmb3JtIG9ubHkgaW5kZXggdmFjdXVtIG9yIGluZGV4 CisgKiBjbGVhbnVwLCB3ZSBkb24ndCBuZWVkIHRvIHJlcG9ydCBwcm9ncmVzcyBpbmZvcm1hdGlv bi4KICAqLwogdm9pZAogcGFyYWxsZWxfdmFjdXVtX21haW4oZHNtX3NlZ21lbnQgKnNlZywgc2ht X3RvYyAqdG9jKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9hdXRvdmFjdXVt LmMgYi9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL2F1dG92YWN1dW0uYwppbmRleCA0ZDRhMWEzMTk3 ZS4uZTdlMzQwYzRlN2MgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYXV0b3Zh Y3V1bS5jCisrKyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYXV0b3ZhY3V1bS5jCkBAIC0zNDA2 LDYgKzM0MDYsMTUgQEAgY2hlY2tfYXV0b3ZhY3V1bV93b3JrX21lbShpbnQgKm5ld3ZhbCwgdm9p ZCAqKmV4dHJhLCBHdWNTb3VyY2Ugc291cmNlKQogCXJldHVybiB0cnVlOwogfQogCitib29sCitj aGVja19hdXRvdmFjdXVtX3Jlc2VydmVkX3dvcmtlcnNfbnVtKGludCAqbmV3dmFsLCB2b2lkICoq ZXh0cmEsCisJCQkJCQkJCQkgIEd1Y1NvdXJjZSBzb3VyY2UpCit7CisJaWYgKCpuZXd2YWwgPiAo bWF4X3dvcmtlcl9wcm9jZXNzZXMgLSA4KSkKKwkJcmV0dXJuIGZhbHNlOworCXJldHVybiB0cnVl OworfQorCiAvKgogICogUmV0dXJucyB3aGV0aGVyIHRoZXJlIGlzIGEgZnJlZSBhdXRvdmFjdXVt IHdvcmtlciBzbG90IGF2YWlsYWJsZS4KICAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcG9z dG1hc3Rlci9iZ3dvcmtlci5jIGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9iZ3dvcmtlci5jCmlu ZGV4IDExNmRkZjdiODM1Li5jYjg2ZGI5OWRhOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcG9z dG1hc3Rlci9iZ3dvcmtlci5jCisrKyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYmd3b3JrZXIu YwpAQCAtMTA0Niw2ICsxMDQ2LDggQEAgUmVnaXN0ZXJEeW5hbWljQmFja2dyb3VuZFdvcmtlcihC YWNrZ3JvdW5kV29ya2VyICp3b3JrZXIsCiAJCQkJCQkJCUJhY2tncm91bmRXb3JrZXJIYW5kbGUg KipoYW5kbGUpCiB7CiAJaW50CQkJc2xvdG5vOworCWludAkJCWZyb207CisJaW50CQkJdXB0bzsK IAlib29sCQlzdWNjZXNzID0gZmFsc2U7CiAJYm9vbAkJcGFyYWxsZWw7CiAJdWludDY0CQlnZW5l cmF0aW9uID0gMDsKQEAgLTEwODgsMTAgKzEwOTAsMjMgQEAgUmVnaXN0ZXJEeW5hbWljQmFja2dy b3VuZFdvcmtlcihCYWNrZ3JvdW5kV29ya2VyICp3b3JrZXIsCiAJCXJldHVybiBmYWxzZTsKIAl9 CiAKKwkvKgorCSAqIERldGVybWluZSByYW5nZSBvZiB3b3JrZXJzIGluIHBvb2wsIHRoYXQgd2Ug Y2FuIHVzZSAobGFzdAorCSAqICdhdl9yZXNlcnZlZF93b3JrZXJzX251bScgaXMgcmVzZXJ2ZWQg Zm9yIGF1dG92YWN1dW0gd29ya2VycykuCisJICovCisKKwlmcm9tID0gQW1BdXRvVmFjdXVtV29y a2VyUHJvY2VzcygpID8KKwkJQmFja2dyb3VuZFdvcmtlckRhdGEtPnRvdGFsX3Nsb3RzIC0gYXZf cmVzZXJ2ZWRfd29ya2Vyc19udW0gOgorCQkwOworCisJdXB0byA9IEFtQXV0b1ZhY3V1bVdvcmtl clByb2Nlc3MoKSA/CisJCUJhY2tncm91bmRXb3JrZXJEYXRhLT50b3RhbF9zbG90cyA6CisJCUJh Y2tncm91bmRXb3JrZXJEYXRhLT50b3RhbF9zbG90cyAtIGF2X3Jlc2VydmVkX3dvcmtlcnNfbnVt OworCiAJLyoKIAkgKiBMb29rIGZvciBhbiB1bnVzZWQgc2xvdC4gIElmIHdlIGZpbmQgb25lLCBn cmFiIGl0LgogCSAqLwotCWZvciAoc2xvdG5vID0gMDsgc2xvdG5vIDwgQmFja2dyb3VuZFdvcmtl ckRhdGEtPnRvdGFsX3Nsb3RzOyArK3Nsb3RubykKKwlmb3IgKHNsb3RubyA9IGZyb207IHNsb3Ru byA8IHVwdG87ICsrc2xvdG5vKQogCXsKIAkJQmFja2dyb3VuZFdvcmtlclNsb3QgKnNsb3QgPSAm QmFja2dyb3VuZFdvcmtlckRhdGEtPnNsb3Rbc2xvdG5vXTsKIApAQCAtMTE1OSw3ICsxMTc0LDEz IEBAIEdldEJhY2tncm91bmRXb3JrZXJQaWQoQmFja2dyb3VuZFdvcmtlckhhbmRsZSAqaGFuZGxl LCBwaWRfdCAqcGlkcCkKIAlCYWNrZ3JvdW5kV29ya2VyU2xvdCAqc2xvdDsKIAlwaWRfdAkJcGlk OwogCi0JQXNzZXJ0KGhhbmRsZS0+c2xvdCA8IG1heF93b3JrZXJfcHJvY2Vzc2VzKTsKKwkvKiBP bmx5IGF1dG92YWN1dW0gY2FuIHVzZSBsYXN0ICdhdl9yZXNlcnZlZF93b3JrZXJzX251bScgd29y a2VycyBpbiBwb29sLiAqLworCWlmICghQW1BdXRvVmFjdXVtV29ya2VyUHJvY2VzcygpKQorCQlB c3NlcnQoaGFuZGxlLT5zbG90IDwgbWF4X3dvcmtlcl9wcm9jZXNzZXMgLSBhdl9yZXNlcnZlZF93 b3JrZXJzX251bSk7CisJZWxzZQorCQlBc3NlcnQoaGFuZGxlLT5zbG90IDwgbWF4X3dvcmtlcl9w cm9jZXNzZXMgJiYKKwkJCSAgIGhhbmRsZS0+c2xvdCA+PSBtYXhfd29ya2VyX3Byb2Nlc3NlcyAt IGF2X3Jlc2VydmVkX3dvcmtlcnNfbnVtKTsKKwogCXNsb3QgPSAmQmFja2dyb3VuZFdvcmtlckRh dGEtPnNsb3RbaGFuZGxlLT5zbG90XTsKIAogCS8qCkBAIC0xMjk4LDcgKzEzMTksMTMgQEAgVGVy bWluYXRlQmFja2dyb3VuZFdvcmtlcihCYWNrZ3JvdW5kV29ya2VySGFuZGxlICpoYW5kbGUpCiAJ QmFja2dyb3VuZFdvcmtlclNsb3QgKnNsb3Q7CiAJYm9vbAkJc2lnbmFsX3Bvc3RtYXN0ZXIgPSBm YWxzZTsKIAotCUFzc2VydChoYW5kbGUtPnNsb3QgPCBtYXhfd29ya2VyX3Byb2Nlc3Nlcyk7CisJ LyogT25seSBhdXRvdmFjdXVtIGNhbiB1c2UgbGFzdCAnYXZfcmVzZXJ2ZWRfd29ya2Vyc19udW0n IHdvcmtlcnMgaW4gcG9vbC4gKi8KKwlpZiAoIUFtQXV0b1ZhY3V1bVdvcmtlclByb2Nlc3MoKSkK KwkJQXNzZXJ0KGhhbmRsZS0+c2xvdCA8IG1heF93b3JrZXJfcHJvY2Vzc2VzIC0gYXZfcmVzZXJ2 ZWRfd29ya2Vyc19udW0pOworCWVsc2UKKwkJQXNzZXJ0KGhhbmRsZS0+c2xvdCA8IG1heF93b3Jr ZXJfcHJvY2Vzc2VzICYmCisJCQkgICBoYW5kbGUtPnNsb3QgPj0gbWF4X3dvcmtlcl9wcm9jZXNz ZXMgLSBhdl9yZXNlcnZlZF93b3JrZXJzX251bSk7CisKIAlzbG90ID0gJkJhY2tncm91bmRXb3Jr ZXJEYXRhLT5zbG90W2hhbmRsZS0+c2xvdF07CiAKIAkvKiBTZXQgdGVybWluYXRlIGZsYWcgaW4g c2hhcmVkIG1lbW9yeSwgdW5sZXNzIHNsb3QgaGFzIGJlZW4gcmV1c2VkLiAqLwpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvdXRpbHMvaW5pdC9nbG9iYWxzLmMgYi9zcmMvYmFja2VuZC91dGlscy9p bml0L2dsb2JhbHMuYwppbmRleCA5MmIwNDQ2YjgwYy4uY2ZmMTNlZjZiZDcgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3V0aWxzL2luaXQvZ2xvYmFscy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxz L2luaXQvZ2xvYmFscy5jCkBAIC0xNDQsNiArMTQ0LDcgQEAgaW50CQkJTkJ1ZmZlcnMgPSAxNjM4 NDsKIGludAkJCU1heENvbm5lY3Rpb25zID0gMTAwOwogaW50CQkJbWF4X3dvcmtlcl9wcm9jZXNz ZXMgPSA4OwogaW50CQkJbWF4X3BhcmFsbGVsX3dvcmtlcnMgPSA4OworaW50ICAgICAgICAgYXZf cmVzZXJ2ZWRfd29ya2Vyc19udW0gPSAwOwogaW50CQkJTWF4QmFja2VuZHMgPSAwOwogCiAvKiBH VUMgcGFyYW1ldGVycyBmb3IgdmFjdXVtICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGls cy9taXNjL2d1Y190YWJsZXMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5j CmluZGV4IDJmOGNiZDg2NzU5Li45MGI0ZTk1NzBjZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv dXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNf dGFibGVzLmMKQEAgLTM2MDQsNiArMzYwNCwxOCBAQCBzdHJ1Y3QgY29uZmlnX2ludCBDb25maWd1 cmVOYW1lc0ludFtdID0KIAkJTlVMTCwgTlVMTCwgTlVMTAogCX0sCiAKKwl7CisJCXsiYXV0b3Zh Y3V1bV9yZXNlcnZlZF93b3JrZXJzX251bSIsIFBHQ19VU0VSU0VULCBSRVNPVVJDRVNfV09SS0VS X1BST0NFU1NFUywKKwkJCWdldHRleHRfbm9vcCgiTnVtYmVyIG9mIHdvcmtlciBwcm9jZXNzZXMs IHJlc2VydmVkIGZvciBwYXJ0aWNpcGF0aW9uIGluIHBhcmFsbGVsIGluZGV4IHByb2Nlc3Npbmcg ZHVyaW5nIGF1dG92YWN1dW0uIiksCisJCQlnZXR0ZXh0X25vb3AoIlRoaXMgcGFyYW1ldGVyIGlz IGRlcGVuZGluZyBvbiBcIm1heF93b3JrZXJfcHJvY2Vzc2VzXCIgKG5vdCBvbiBcImF1dG92YWN1 dW1fbWF4X3dvcmtlcnNcIikuICIKKwkJCQkJCSAiKk9ubHkqIGF1dG92YWN1dW0gd29ya2VycyBj YW4gdXNlIHRoZXNlIGFkZGl0aW9uYWwgcHJvY2Vzc2VzLiAiCisJCQkJCQkgIkFsc28sIHRoZXNl IHByb2Nlc3NlcyBhcmUgdGFrZW4gaW50byBhY2NvdW50IGluIFwibWF4X3BhcmFsbGVsX3dvcmtl cnNcIi4iKSwKKwkJfSwKKwkJJmF2X3Jlc2VydmVkX3dvcmtlcnNfbnVtLAorCQkwLCAwLCBNQVhf QkFDS0VORFMsCisJCWNoZWNrX2F1dG92YWN1dW1fcmVzZXJ2ZWRfd29ya2Vyc19udW0sIE5VTEws IE5VTEwKKwl9LAorCiAJewogCQl7Im1heF9wYXJhbGxlbF9tYWludGVuYW5jZV93b3JrZXJzIiwg UEdDX1VTRVJTRVQsIFJFU09VUkNFU19XT1JLRVJfUFJPQ0VTU0VTLAogCQkJZ2V0dGV4dF9ub29w KCJTZXRzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBwYXJhbGxlbCBwcm9jZXNzZXMgcGVyIG1haW50 ZW5hbmNlIG9wZXJhdGlvbi4iKSwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2Mv cG9zdGdyZXNxbC5jb25mLnNhbXBsZSBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNx bC5jb25mLnNhbXBsZQppbmRleCAzNDgyNmQwMTM4MC4uMmUzOGJhZGEyYjAgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZQorKysgYi9zcmMv YmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUKQEAgLTIyMyw2ICsyMjMs NyBAQAogI21heF9wYXJhbGxlbF9tYWludGVuYW5jZV93b3JrZXJzID0gMgkjIGxpbWl0ZWQgYnkg bWF4X3BhcmFsbGVsX3dvcmtlcnMKICNtYXhfcGFyYWxsZWxfd29ya2VycyA9IDgJCSMgbnVtYmVy IG9mIG1heF93b3JrZXJfcHJvY2Vzc2VzIHRoYXQKIAkJCQkJIyBjYW4gYmUgdXNlZCBpbiBwYXJh bGxlbCBvcGVyYXRpb25zCisjYXV0b3ZhY3V1bV9yZXNlcnZlZF93b3JrZXJzX251bSA9IDAJIyBk aXNhYmxlZCBieSBkZWZhdWx0IGFuZCBsaW1pdGVkIGJ5IG1heF9wYXJhbGxlbF93b3JrZXJzCiAj cGFyYWxsZWxfbGVhZGVyX3BhcnRpY2lwYXRpb24gPSBvbgogCiAKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL21pc2NhZG1pbi5oIGIvc3JjL2luY2x1ZGUvbWlzY2FkbWluLmgKaW5kZXggMWU1OWE3 ZjkxMGYuLjk5MmM2YjYzMjI2IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9taXNjYWRtaW4uaAor KysgYi9zcmMvaW5jbHVkZS9taXNjYWRtaW4uaApAQCAtMTc3LDYgKzE3Nyw3IEBAIGV4dGVybiBQ R0RMTElNUE9SVCBpbnQgTkJ1ZmZlcnM7CiBleHRlcm4gUEdETExJTVBPUlQgaW50IE1heEJhY2tl bmRzOwogZXh0ZXJuIFBHRExMSU1QT1JUIGludCBNYXhDb25uZWN0aW9uczsKIGV4dGVybiBQR0RM TElNUE9SVCBpbnQgbWF4X3dvcmtlcl9wcm9jZXNzZXM7CitleHRlcm4gUEdETExJTVBPUlQgaW50 IGF2X3Jlc2VydmVkX3dvcmtlcnNfbnVtOwogZXh0ZXJuIFBHRExMSU1QT1JUIGludCBtYXhfcGFy YWxsZWxfd29ya2VyczsKIAogZXh0ZXJuIFBHRExMSU1QT1JUIGludCBjb21taXRfdGltZXN0YW1w X2J1ZmZlcnM7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9ndWNfaG9va3MuaCBiL3Ny Yy9pbmNsdWRlL3V0aWxzL2d1Y19ob29rcy5oCmluZGV4IDc5OWZhN2FjZTY4Li45OTEzYzZlNDY4 MSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvZ3VjX2hvb2tzLmgKKysrIGIvc3JjL2lu Y2x1ZGUvdXRpbHMvZ3VjX2hvb2tzLmgKQEAgLTMxLDYgKzMxLDggQEAgZXh0ZXJuIHZvaWQgYXNz aWduX2FwcGxpY2F0aW9uX25hbWUoY29uc3QgY2hhciAqbmV3dmFsLCB2b2lkICpleHRyYSk7CiBl eHRlcm4gY29uc3QgY2hhciAqc2hvd19hcmNoaXZlX2NvbW1hbmQodm9pZCk7CiBleHRlcm4gYm9v bCBjaGVja19hdXRvdmFjdXVtX3dvcmtfbWVtKGludCAqbmV3dmFsLCB2b2lkICoqZXh0cmEsCiAJ CQkJCQkJCQkgIEd1Y1NvdXJjZSBzb3VyY2UpOworYm9vbCBjaGVja19hdXRvdmFjdXVtX3Jlc2Vy dmVkX3dvcmtlcnNfbnVtKGludCAqbmV3dmFsLCB2b2lkICoqZXh0cmEsCisJCQkJCQkJCQkJICAg R3VjU291cmNlIHNvdXJjZSk7CiBleHRlcm4gYm9vbCBjaGVja192YWN1dW1fYnVmZmVyX3VzYWdl X2xpbWl0KGludCAqbmV3dmFsLCB2b2lkICoqZXh0cmEsCiAJCQkJCQkJCQkJCUd1Y1NvdXJjZSBz b3VyY2UpOwogZXh0ZXJuIGJvb2wgY2hlY2tfYmFja3RyYWNlX2Z1bmN0aW9ucyhjaGFyICoqbmV3 dmFsLCB2b2lkICoqZXh0cmEsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9yZWwuaCBi L3NyYy9pbmNsdWRlL3V0aWxzL3JlbC5oCmluZGV4IGI1NTIzNTk5MTVmLi41NWFhNWM0NWJlMSAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvcmVsLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRp bHMvcmVsLmgKQEAgLTMxMSw2ICszMTEsNyBAQCB0eXBlZGVmIHN0cnVjdCBGb3JlaWduS2V5Q2Fj aGVJbmZvCiB0eXBlZGVmIHN0cnVjdCBBdXRvVmFjT3B0cwogewogCWJvb2wJCWVuYWJsZWQ7CisJ Ym9vbAkJcGFyYWxsZWxfaWR4X2F1dG92YWNfZW5hYmxlZDsKIAlpbnQJCQl2YWN1dW1fdGhyZXNo b2xkOwogCWludAkJCXZhY3V1bV9tYXhfdGhyZXNob2xkOwogCWludAkJCXZhY3V1bV9pbnNfdGhy ZXNob2xkOwpAQCAtNDA5LDYgKzQxMCwxNSBAQCB0eXBlZGVmIHN0cnVjdCBTdGRSZE9wdGlvbnMK IAkoKHJlbGF0aW9uKS0+cmRfb3B0aW9ucyA/IFwKIAkgKChTdGRSZE9wdGlvbnMgKikgKHJlbGF0 aW9uKS0+cmRfb3B0aW9ucyktPnBhcmFsbGVsX3dvcmtlcnMgOiAoZGVmYXVsdHB3KSkKIAorLyoK KyAqIFJlbGF0aW9uQWxsb3dzUGFyYWxsZWxJZHhBdXRvdmFjCisgKgkJUmV0dXJucyB3aGV0aGVy IHRoZSByZWxhdGlvbidzIGluZGV4ZXMgY2FuIGJlIHByb2Nlc3NlZCBpbiBwYXJhbGxlbAorICoJ CWR1cmluZyBhdXRvdmFjdXVtLiBOb3RlIG11bHRpcGxlIGV2YWwgb2YgYXJndW1lbnQhCisgKi8K KyNkZWZpbmUgUmVsYXRpb25BbGxvd3NQYXJhbGxlbElkeEF1dG92YWMocmVsYXRpb24pIFwKKwko KHJlbGF0aW9uKS0+cmRfb3B0aW9ucyA/IFwKKwkgKChTdGRSZE9wdGlvbnMgKikgKHJlbGF0aW9u KS0+cmRfb3B0aW9ucyktPmF1dG92YWN1dW0ucGFyYWxsZWxfaWR4X2F1dG92YWNfZW5hYmxlZCA6 IGZhbHNlKQorCiAvKiBWaWV3T3B0aW9ucy0+Y2hlY2tfb3B0aW9uIHZhbHVlcyAqLwogdHlwZWRl ZiBlbnVtIFZpZXdPcHRDaGVja09wdGlvbgogewotLSAKMi40My4wCgo= --000000000000ab1bcd063539cc9f--