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 1qWEwD-002a8o-Ij for pgsql-hackers@arkaria.postgresql.org; Wed, 16 Aug 2023 11:43:46 +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 1qWEwB-006L8v-CW for pgsql-hackers@arkaria.postgresql.org; Wed, 16 Aug 2023 11:43:43 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1qWEwA-006L79-Tw for pgsql-hackers@lists.postgresql.org; Wed, 16 Aug 2023 11:43:43 +0000 Received: from mail-wm1-x336.google.com ([2a00:1450:4864:20::336]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1qWEw6-000Sso-N0 for pgsql-hackers@lists.postgresql.org; Wed, 16 Aug 2023 11:43:42 +0000 Received: by mail-wm1-x336.google.com with SMTP id 5b1f17b1804b1-3fe5695b180so58379675e9.2 for ; Wed, 16 Aug 2023 04:43:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1692186217; x=1692791017; h=in-reply-to:from:references:cc:to:content-language:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=SqWG0oR3Jf1fUedT/g27PfmOjlqFrwUX3sxmphFukas=; b=TqSWN4q3W3dOk0o5XNTqXTddMygAPA9/9WU8u+35P+h2IoiSQjk3k0DqJ/vGshHVc0 6T+vNs07YxvroeMcJzFDIUZ+oO+eT3HapvwbTMtuLxAwA7743Fi2AdF1CfRaSzb3bEjJ eqIJJOok3P+c7xQvySgIGHdeZFCx2lHseTaAxm21JHm8MRcamps2h/uBWv0BV4DhvCWg l9pUohxIPO3qyu7bTH166qdLW8vAettu2Go26NT8GnPV3vUf8jCRRmjWU9Bd9jl46p1f DHwR4Itav8swNt1ZVhAFT3fDvk2U0MuW5BFuG20YHSXwiB/way1Vw/dRvrkaypcHJw/C 1j7w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692186217; x=1692791017; h=in-reply-to:from:references:cc:to:content-language:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=SqWG0oR3Jf1fUedT/g27PfmOjlqFrwUX3sxmphFukas=; b=i/LdnvXuBkhjLFeNnRXPFH5xGIp+A0FnAnSlTDwmjb5iIBq4+KXCgTsTvpZx/zNPiK 0N6BmpSBFkQBe99DTeOl9xO3x70FEGe/+aMAHhR5ck+M5HWzKDNXkRS6QfHWAQms4TMc R2MPYzfVFKWsCDzdLB44DBAs/5bFaOYs+RtQK6oig5S/iTbpak/gqa+cdhQN7e9IFvkh JjDtxjPX8Iu+AwzBeR7A40DREDjHMOceEy1X4uCgwLsMx2pe1LyIrPYW6ZYBFrqmiJYn X0oNacy/SLYQUS6TDIu8xqf9m8K4m4ofqAFD/6caq2YDWgqLd1iNGwEzaWybhOPnOBYC /BIA== X-Gm-Message-State: AOJu0Yy6jBde0I+5RV1hZZXiQ+D0lhI3U1XvbctSvGi7XYTmHfoO/LAJ 5S6TV3bmceirGQyQTqONs1w= X-Google-Smtp-Source: AGHT+IG9PC5/yOvDoPwK/cd63ICnqGSXMqRuzyLjxEBt2T9WCArqTWwNtwumb9Ju+Ve+tEIbomGIrg== X-Received: by 2002:a05:6000:10d:b0:315:a17d:dbc6 with SMTP id o13-20020a056000010d00b00315a17ddbc6mr1185471wrx.14.1692186216971; Wed, 16 Aug 2023 04:43:36 -0700 (PDT) Received: from [192.168.1.13] (lfbn-ncy-1-158-104.w83-194.abo.wanadoo.fr. [83.194.24.104]) by smtp.gmail.com with ESMTPSA id b13-20020adfe30d000000b003113ed02080sm20921111wrj.95.2023.08.16.04.43.36 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 16 Aug 2023 04:43:36 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------O0Z40TEl7uG7jU0mbe6n0qpy" Message-ID: Date: Wed, 16 Aug 2023 13:43:35 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: WIP: new system catalog pg_wait_event Content-Language: en-US To: Michael Paquier Cc: Kyotaro Horiguchi , tgl@sss.pgh.pa.us, pgsql-hackers@lists.postgresql.org References: <0109438a-9672-322b-7638-04ad47c97d0f@gmail.com> <1dc98591-0d06-f0da-bc88-21f529d6fb8e@gmail.com> <20230808.115332.301701413576096139.horikyota.ntt@gmail.com> <2f84b397-d020-493c-924c-610b9dd18f8d@gmail.com> From: "Drouvot, Bertrand" In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------O0Z40TEl7uG7jU0mbe6n0qpy Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hi, On 8/16/23 8:22 AM, Michael Paquier wrote: > On Wed, Aug 16, 2023 at 07:04:53AM +0200, Drouvot, Bertrand wrote: >> I'd prefer the singular form. There is a lot of places where it's already used >> (pg_database, pg_user, pg_namespace...to name a few) and it looks like that using >> the plural form are exceptions. > > Okay, fine by me. Great, singular form is being used in v6 attached. > Also, I would remove the "wait_event_" prefixes to > the field names for the attribute names. > It looks like it has already been done in v5. >> Yeah, now that af720b4c50 is done, I'll add the custom wait events handling >> in v6. > > Thanks. I guess that the hash tables had better remain local to > wait_event.c. Yeah, agree, done that way in v6 (also added a test in 001_worker_spi.pl to ensure that "worker_spi_main" is reported in pg_wait_event). I added a "COLLATE "C"" in the "order by" clause's test that we added in src/test/regress/sql/sysviews.sql (the check was failing on my environment). Regards, -- Bertrand Drouvot PostgreSQL Contributors Team RDS Open Source Databases Amazon Web Services: https://aws.amazon.com --------------O0Z40TEl7uG7jU0mbe6n0qpy Content-Type: text/plain; charset=UTF-8; name="v6-0001-Add-catalog-pg_wait_event.patch" Content-Disposition: attachment; filename="v6-0001-Add-catalog-pg_wait_event.patch" Content-Transfer-Encoding: base64 RnJvbSBmNTViYzAxY2EwM2I4MDExNjY2NGIwM2IwMTc0YmM5N2RjMDFiNmI5IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogU2F0LCA1IEF1ZyAyMDIzIDEyOjM5OjQyICswMDAwClN1YmplY3Q6IFtQQVRD SCB2Nl0gQWRkIGNhdGFsb2cgcGdfd2FpdF9ldmVudAoKQWRkaW5nIGEgbmV3IHN5c3RlbSB2 aWV3LCBuYW1lbHkgcGdfd2FpdF9ldmVudCwgdGhhdCBkZXNjcmliZXMgdGhlIHdhaXQKZXZl bnRzLgotLS0KIGRvYy9zcmMvc2dtbC9zeXN0ZW0tdmlld3Muc2dtbCAgICAgICAgICAgICAg ICB8IDY0ICsrKysrKysrKysrKysKIHNyYy9iYWNrZW5kL01ha2VmaWxlICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAzICstCiBzcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3 cy5zcWwgICAgICAgICAgfCAgMyArCiBzcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS8uZ2l0 aWdub3JlICAgICAgICAgfCAgMSArCiBzcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9NYWtl ZmlsZSAgICAgICAgICAgfCAgOCArLQogLi4uL2FjdGl2aXR5L2dlbmVyYXRlLXdhaXRfZXZl bnRfdHlwZXMucGwgICAgIHwgNDYgKysrKysrKystCiBzcmMvYmFja2VuZC91dGlscy9hY3Rp dml0eS9tZXNvbi5idWlsZCAgICAgICAgfCAgMSArCiBzcmMvYmFja2VuZC91dGlscy9hY3Rp dml0eS93YWl0X2V2ZW50LmMgICAgICAgfCA1MCArKysrKysrKy0tCiBzcmMvYmFja2VuZC91 dGlscy9hY3Rpdml0eS93YWl0X2V2ZW50X2Z1bmNzLmMgfCA5NCArKysrKysrKysrKysrKysr KysrCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0ICAgICAgICAgICAgICAgfCAg NiArKwogc3JjL2luY2x1ZGUvdXRpbHMvbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgIHwg IDQgKy0KIHNyYy9pbmNsdWRlL3V0aWxzL3dhaXRfZXZlbnQuaCAgICAgICAgICAgICAgICB8 ICA3ICsrCiAuLi4vbW9kdWxlcy93b3JrZXJfc3BpL3QvMDAxX3dvcmtlcl9zcGkucGwgICAg fCAgNiArKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQgICAgICAgICAg IHwgIDQgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zeXN2aWV3cy5vdXQgICAgICAg IHwgMTYgKysrKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvc3lzdmlld3Muc3FsICAgICAgICAg ICAgIHwgIDQgKwogc3JjL3Rvb2xzL21zdmMvU29sdXRpb24ucG0gICAgICAgICAgICAgICAg ICAgIHwgIDMgKy0KIHNyYy90b29scy9tc3ZjL2NsZWFuLmJhdCAgICAgICAgICAgICAgICAg ICAgICB8ICAxICsKIDE4IGZpbGVzIGNoYW5nZWQsIDMwNCBpbnNlcnRpb25zKCspLCAxNyBk ZWxldGlvbnMoLSkKICAxNS43JSBkb2Mvc3JjL3NnbWwvCiAgNjIuMyUgc3JjL2JhY2tlbmQv dXRpbHMvYWN0aXZpdHkvCiAgIDMuNiUgc3JjL2luY2x1ZGUvY2F0YWxvZy8KICAgNC4yJSBz cmMvaW5jbHVkZS91dGlscy8KICAgNC42JSBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkLwog ICA0LjYlIHNyYy90ZXN0LwogICAzLjElIHNyYy90b29scy9tc3ZjLwoKZGlmZiAtLWdpdCBh L2RvYy9zcmMvc2dtbC9zeXN0ZW0tdmlld3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9zeXN0ZW0t dmlld3Muc2dtbAppbmRleCA1N2IyMjgwNzZlLi5iMmVkMzA5ZmUyIDEwMDY0NAotLS0gYS9k b2Mvc3JjL3NnbWwvc3lzdGVtLXZpZXdzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3N5c3Rl bS12aWV3cy5zZ21sCkBAIC0yMjEsNiArMjIxLDExIEBACiAgICAgICA8ZW50cnk+dmlld3M8 L2VudHJ5PgogICAgICA8L3Jvdz4KIAorICAgICA8cm93PgorICAgICAgPGVudHJ5PjxsaW5r IGxpbmtlbmQ9InZpZXctcGctd2FpdC1ldmVudCI+PHN0cnVjdG5hbWU+cGdfd2FpdF9ldmVu dDwvc3RydWN0bmFtZT48L2xpbms+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT53YWl0IGV2ZW50 czwvZW50cnk+CisgICAgIDwvcm93PgorCiAgICAgPC90Ym9keT4KICAgIDwvdGdyb3VwPgog ICA8L3RhYmxlPgpAQCAtNDgyNSw0ICs0ODMwLDYzIEBAIFNFTEVDVCAqIEZST00gcGdfbG9j a3MgcGwgTEVGVCBKT0lOIHBnX3ByZXBhcmVkX3hhY3RzIHBweAogICA8L3RhYmxlPgogIDwv c2VjdDE+CiAKKworIDxzZWN0MSBpZD0idmlldy1wZy13YWl0LWV2ZW50Ij4KKyAgPHRpdGxl PjxzdHJ1Y3RuYW1lPnBnX3dhaXRfZXZlbnQ8L3N0cnVjdG5hbWU+PC90aXRsZT4KKworICA8 aW5kZXh0ZXJtIHpvbmU9InZpZXctcGctd2FpdC1ldmVudCI+CisgICA8cHJpbWFyeT5wZ193 YWl0X2V2ZW50PC9wcmltYXJ5PgorICA8L2luZGV4dGVybT4KKworICA8cGFyYT4KKyAgIFRo ZSB2aWV3IDxzdHJ1Y3RuYW1lPnBnX3dhaXRfZXZlbnQ8L3N0cnVjdG5hbWU+IHByb3ZpZGVz IGRlc2NyaXB0aW9uIGFib3V0IHRoZQorICAgd2FpdCBldmVudHMuCisgIDwvcGFyYT4KKwor ICA8dGFibGU+CisgICA8dGl0bGU+PHN0cnVjdG5hbWU+cGdfd2FpdF9ldmVudDwvc3RydWN0 bmFtZT4gQ29sdW1uczwvdGl0bGU+CisgICA8dGdyb3VwIGNvbHM9IjEiPgorICAgIDx0aGVh ZD4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5 Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgQ29sdW1uIFR5cGUK KyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIERlc2NyaXB0aW9uCisgICAg ICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgPC90aGVhZD4KKworICAgIDx0 Ym9keT4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2Vu dHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZp ZWxkPnR5cGU8L3N0cnVjdGZpZWxkPiA8dHlwZT50ZXh0PC90eXBlPgorICAgICAgPC9wYXJh PgorICAgICAgPHBhcmE+CisgICAgICAgV2FpdCBldmVudCB0eXBlCisgICAgICA8L3BhcmE+ PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xl PSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+ CisgICAgICAgPHN0cnVjdGZpZWxkPm5hbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT50ZXh0PC90 eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgV2FpdCBldmVudCBu YW1lCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4K KyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJj b2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmRlc2NyaXB0aW9uPC9z dHJ1Y3RmaWVsZD4gPHR5cGU+dGV4dDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxw YXJhPgorICAgICAgIFdhaXQgZXZlbnQgZGVzY3JpcHRpb24KKyAgICAgIDwvcGFyYT48L2Vu dHJ5PgorICAgICA8L3Jvdz4KKyAgICA8L3Rib2R5PgorICAgPC90Z3JvdXA+CisgIDwvdGFi bGU+CisgPC9zZWN0MT4KKwogPC9jaGFwdGVyPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv TWFrZWZpbGUgYi9zcmMvYmFja2VuZC9NYWtlZmlsZQppbmRleCAxYzkyOTM4M2M0Li4zZTI3 NWFjNzU5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9NYWtlZmlsZQorKysgYi9zcmMvYmFj a2VuZC9NYWtlZmlsZQpAQCAtMTM0LDcgKzEzNCw3IEBAIHN0b3JhZ2UvbG1nci9sd2xvY2tu YW1lcy5oOiBzdG9yYWdlL2xtZ3IvZ2VuZXJhdGUtbHdsb2NrbmFtZXMucGwgc3RvcmFnZS9s bWdyL2x3CiAJJChNQUtFKSAtQyBzdG9yYWdlL2xtZ3IgbHdsb2NrbmFtZXMuaCBsd2xvY2tu YW1lcy5jCiAKIHV0aWxzL2FjdGl2aXR5L3dhaXRfZXZlbnRfdHlwZXMuaDogdXRpbHMvYWN0 aXZpdHkvZ2VuZXJhdGUtd2FpdF9ldmVudF90eXBlcy5wbCB1dGlscy9hY3Rpdml0eS93YWl0 X2V2ZW50X25hbWVzLnR4dAotCSQoTUFLRSkgLUMgdXRpbHMvYWN0aXZpdHkgd2FpdF9ldmVu dF90eXBlcy5oIHBnc3RhdF93YWl0X2V2ZW50LmMKKwkkKE1BS0UpIC1DIHV0aWxzL2FjdGl2 aXR5IHdhaXRfZXZlbnRfdHlwZXMuaCBwZ3N0YXRfd2FpdF9ldmVudC5jIHdhaXRfZXZlbnRf ZnVuY3NfZGF0YS5jCiAKICMgcnVuIHRoaXMgdW5jb25kaXRpb25hbGx5IHRvIGF2b2lkIG5l ZWRpbmcgdG8ga25vdyBpdHMgZGVwZW5kZW5jaWVzIGhlcmU6CiBzdWJtYWtlLWNhdGFsb2ct aGVhZGVyczoKQEAgLTMxMSw2ICszMTEsNyBAQCBtYWludGFpbmVyLWNsZWFuOiBkaXN0Y2xl YW4KIAkgICAgICBzdG9yYWdlL2xtZ3IvbHdsb2NrbmFtZXMuYyBcCiAJICAgICAgc3RvcmFn ZS9sbWdyL2x3bG9ja25hbWVzLmggXAogCSAgICAgIHV0aWxzL2FjdGl2aXR5L3Bnc3RhdF93 YWl0X2V2ZW50LmMgXAorCSAgICAgIHV0aWxzL2FjdGl2aXR5L3dhaXRfZXZlbnRfZnVuY3Nf ZGF0YS5jIFwKIAkgICAgICB1dGlscy9hY3Rpdml0eS93YWl0X2V2ZW50X3R5cGVzLmggXAog CSAgICAgIHV0aWxzL2FkdC9qc29ucGF0aF9ncmFtLmMgXAogCSAgICAgIHV0aWxzL2FkdC9q c29ucGF0aF9ncmFtLmggXApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0 ZW1fdmlld3Muc3FsIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCmlu ZGV4IGFmNjVhZjZiZGQuLmY4NmE0ZGQ3NzAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Nh dGFsb2cvc3lzdGVtX3ZpZXdzLnNxbAorKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3Rl bV92aWV3cy5zcWwKQEAgLTEzNDIsMyArMTM0Miw2IEBAIENSRUFURSBWSUVXIHBnX3N0YXRf c3Vic2NyaXB0aW9uX3N0YXRzIEFTCiAgICAgICAgIHNzLnN0YXRzX3Jlc2V0CiAgICAgRlJP TSBwZ19zdWJzY3JpcHRpb24gYXMgcywKICAgICAgICAgIHBnX3N0YXRfZ2V0X3N1YnNjcmlw dGlvbl9zdGF0cyhzLm9pZCkgYXMgc3M7CisKK0NSRUFURSBWSUVXIHBnX3dhaXRfZXZlbnQg QVMKKyAgICBTRUxFQ1QgKiBGUk9NIHBnX2dldF93YWl0X2V2ZW50cygpIEFTIHdlOwpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvLmdpdGlnbm9yZSBiL3NyYy9i YWNrZW5kL3V0aWxzL2FjdGl2aXR5Ly5naXRpZ25vcmUKaW5kZXggZDc3MDc5Mjg1Yi4uYmQw YzBjNzc3MiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvLmdpdGln bm9yZQorKysgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS8uZ2l0aWdub3JlCkBAIC0x LDIgKzEsMyBAQAogL3Bnc3RhdF93YWl0X2V2ZW50LmMKIC93YWl0X2V2ZW50X3R5cGVzLmgK Ky93YWl0X2V2ZW50X2Z1bmNzX2RhdGEuYwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRp bHMvYWN0aXZpdHkvTWFrZWZpbGUgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9NYWtl ZmlsZQppbmRleCBmMTExNzc0NWQ0Li5mNTdjZjM5NThjIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC91dGlscy9hY3Rpdml0eS9NYWtlZmlsZQorKysgYi9zcmMvYmFja2VuZC91dGlscy9h Y3Rpdml0eS9NYWtlZmlsZQpAQCAtMzIsMTAgKzMyLDE0IEBAIE9CSlMgPSBcCiAJcGdzdGF0 X3N1YnNjcmlwdGlvbi5vIFwKIAlwZ3N0YXRfd2FsLm8gXAogCXBnc3RhdF94YWN0Lm8gXAot CXdhaXRfZXZlbnQubworCXdhaXRfZXZlbnQubyBcCisJd2FpdF9ldmVudF9mdW5jcy5vCiAK IGluY2x1ZGUgJCh0b3Bfc3JjZGlyKS9zcmMvYmFja2VuZC9jb21tb24ubWsKIAord2FpdF9l dmVudF9mdW5jcy5vOiB3YWl0X2V2ZW50X2Z1bmNzX2RhdGEuYword2FpdF9ldmVudF9mdW5j c19kYXRhLmM6IHdhaXRfZXZlbnRfdHlwZXMuaAorCiB3YWl0X2V2ZW50Lm86IHBnc3RhdF93 YWl0X2V2ZW50LmMKIHBnc3RhdF93YWl0X2V2ZW50LmM6IHdhaXRfZXZlbnRfdHlwZXMuaAog CXRvdWNoICRACkBAIC00NCw0ICs0OCw0IEBAIHdhaXRfZXZlbnRfdHlwZXMuaDogJCh0b3Bf c3JjZGlyKS9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS93YWl0X2V2ZW50X25hbWVzLnR4 CiAJJChQRVJMKSAkKHNyY2RpcikvZ2VuZXJhdGUtd2FpdF9ldmVudF90eXBlcy5wbCAtLWNv ZGUgJDwKIAogbWFpbnRhaW5lci1jbGVhbjogY2xlYW4KLQlybSAtZiB3YWl0X2V2ZW50X3R5 cGVzLmggcGdzdGF0X3dhaXRfZXZlbnQuYworCXJtIC1mIHdhaXRfZXZlbnRfdHlwZXMuaCBw Z3N0YXRfd2FpdF9ldmVudC5jIHdhaXRfZXZlbnRfZnVuY3NfZGF0YS5jCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9nZW5lcmF0ZS13YWl0X2V2ZW50X3R5cGVz LnBsIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvZ2VuZXJhdGUtd2FpdF9ldmVudF90 eXBlcy5wbAppbmRleCA1NjMzNWU4NzMwLi42NDgzOTY2YzZhIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC91dGlscy9hY3Rpdml0eS9nZW5lcmF0ZS13YWl0X2V2ZW50X3R5cGVzLnBsCisr KyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L2dlbmVyYXRlLXdhaXRfZXZlbnRfdHlw ZXMucGwKQEAgLTQsNiArNCw3IEBACiAjIEdlbmVyYXRlIHdhaXQgZXZlbnRzIHN1cHBvcnQg ZmlsZXMgZnJvbSB3YWl0X2V2ZW50X25hbWVzLnR4dDoKICMgLSB3YWl0X2V2ZW50X3R5cGVz LmggKGlmIC0tY29kZSBpcyBwYXNzZWQpCiAjIC0gcGdzdGF0X3dhaXRfZXZlbnQuYyAoaWYg LS1jb2RlIGlzIHBhc3NlZCkKKyMgLSB3YWl0X2V2ZW50X2Z1bmNzX2RhdGEuYyAoaWYgLS1j b2RlIGlzIHBhc3NlZCkKICMgLSB3YWl0X2V2ZW50X3R5cGVzLnNnbWwgKGlmIC0tZG9jcyBp cyBwYXNzZWQpCiAjCiAjIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDIzLCBQb3N0 Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cApAQCAtOTgsOCArOTksMTAgQEAgaWYg KCRnZW5fY29kZSkKIAkjIG11bHRpcGxlIHRpbWVzLgogCW15ICRodG1wID0gIiRvdXRwdXRf cGF0aC93YWl0X2V2ZW50X3R5cGVzLmgudG1wJCQiOwogCW15ICRjdG1wID0gIiRvdXRwdXRf cGF0aC9wZ3N0YXRfd2FpdF9ldmVudC5jLnRtcCQkIjsKKwlteSAkd2N0bXAgPSAiJG91dHB1 dF9wYXRoL3dhaXRfZXZlbnRfZnVuY3NfZGF0YS5jLnRtcCQkIjsKIAlvcGVuIG15ICRoLCAn PicsICRodG1wIG9yIGRpZSAiQ291bGQgbm90IG9wZW4gJGh0bXA6ICQhIjsKIAlvcGVuIG15 ICRjLCAnPicsICRjdG1wIG9yIGRpZSAiQ291bGQgbm90IG9wZW4gJGN0bXA6ICQhIjsKKwlv cGVuIG15ICR3YywgJz4nLCAkd2N0bXAgb3IgZGllICJDb3VsZCBub3Qgb3BlbiAkd2N0bXA6 ICQhIjsKIAogCW15ICRoZWFkZXJfY29tbWVudCA9CiAJICAnLyotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCkBAIC0xMjksMTIgKzEzMiwxNCBAQCBpZiAoJGdlbl9jb2RlKQogCiAJcHJpbnRmICRj ICRoZWFkZXJfY29tbWVudCwgJ3Bnc3RhdF93YWl0X2V2ZW50LmMnOwogCisJcHJpbnRmICR3 YyAkaGVhZGVyX2NvbW1lbnQsICd3YWl0X2V2ZW50X2Z1bmNzX2RhdGEuYyc7CisKKwkjIEdl bmVyYXRlIHRoZSBwZ3N0YXRfd2FpdF9ldmVudC5jIGFuZCB3YWl0X2V2ZW50X3R5cGVzLmgg ZmlsZXMKIAkjIHVjKCkgaXMgYmVpbmcgdXNlZCB0byBmb3JjZSB0aGUgY29tcGFyaXNvbiB0 byBiZSBjYXNlLWluc2Vuc2l0aXZlLgogCWZvcmVhY2ggbXkgJHdhaXRjbGFzcyAoc29ydCB7 IHVjKCRhKSBjbXAgdWMoJGIpIH0ga2V5cyAlaGFzaHdlKQogCXsKLQotCQkjIERvbid0IGdl bmVyYXRlIC5jIGFuZCAuaCBmaWxlcyBmb3IgRXh0ZW5zaW9uLCBMV0xvY2sgYW5kCi0JCSMg TG9jaywgdGhlc2UgYXJlIGhhbmRsZWQgaW5kZXBlbmRlbnRseS4KKwkJIyBEb24ndCBnZW5l cmF0ZSB0aGUgcGdzdGF0X3dhaXRfZXZlbnQuYyBhbmQgd2FpdF9ldmVudF90eXBlcy5oIGZp bGVzCisJCSMgZm9yIEV4dGVuc2lvbiwgTFdMb2NrIGFuZCBMb2NrLCB0aGVzZSBhcmUgaGFu ZGxlZCBpbmRlcGVuZGVudGx5LgogCQluZXh0CiAJCSAgaWYgKCAkd2FpdGNsYXNzIGVxICdX YWl0RXZlbnRFeHRlbnNpb24nCiAJCQl8fCAkd2FpdGNsYXNzIGVxICdXYWl0RXZlbnRMV0xv Y2snCkBAIC0xODMsMTQgKzE4OCw0NyBAQCBpZiAoJGdlbl9jb2RlKQogCQlwcmludGYgJGMg In1cblxuIjsKIAl9CiAKKwkjIEdlbmVyYXRlIHdhaXRfZXZlbnRfZnVuY3NfZGF0YS5jLCBm b3IgdGhlIGNvbnRlbnRzIG9mIHN0YXRpYyBDCisJIyBzdHJ1Y3R1cmUgaG9sZGluZyBhbGwg dGhlIGluZm9ybWF0aW9uIGFib3V0IHRoZSB3YWl0IGV2ZW50cy4KKwkjIHVjKCkgaXMgYmVp bmcgdXNlZCB0byBmb3JjZSB0aGUgY29tcGFyaXNvbiB0byBiZSBjYXNlLWluc2Vuc2l0aXZl LAorCSMgZXZlbiB0aG91Z2ggaXQgaXMgbm90IHN0cmljdGx5IG1hbmRhdG9yeSBoZXJlLgor CWZvcmVhY2ggbXkgJHdhaXRjbGFzcyAoc29ydCB7IHVjKCRhKSBjbXAgdWMoJGIpIH0ga2V5 cyAlaGFzaHdlKQorCXsKKwkJbXkgJGxhc3QgPSAkd2FpdGNsYXNzOworCQkkbGFzdCA9fiBz L15XYWl0RXZlbnQvLzsKKworCQlmb3JlYWNoIG15ICR3ZXYgKEB7ICRoYXNod2V7JHdhaXRj bGFzc30gfSkKKwkJeworCQkJbXkgJG5ld19kZXNjID0gc3Vic3RyICR3ZXYtPlsyXSwgMSwg LTI7CisJCQkjIEVzY2FwZSBzaW5nbGUgcXVvdGVzLgorCQkJJG5ld19kZXNjID1+IHMvJy9c XCcvZzsKKworCQkJIyBSZW1vdmUgU0dNTCBtYXJrdXBzCisJCQkkbmV3X2Rlc2MgPX4gcy88 Lio+KC4qPyk8Lio+LyQxL2c7CisKKwkJCSMgVHdlYWsgY29udGVudHMgYWJvdXQgbGlua3Mg PHhyZWYgbGlua2VuZD0idGV4dCIvPiBvbiBHVUNzLAorCQkJIyB0aGVuIHJlbW92ZSBhbnkg cmVmZXJlbmNlIHRvICJzZWUgPHhyZWYgbGlua2VuZD0idGV4dCIvPiIuCisJCQkkbmV3X2Rl c2MgPX4gcy88eHJlZiBsaW5rZW5kPSJndWMtKC4qPykiXC8+LyQxL2c7CisJCQkkbmV3X2Rl c2MgPX4gcy87IHNlZS4qJC8vOworCisJCQkjIE9uZSBlbGVtZW50IHRvIHRoZSBDIHN0cnVj dHVyZSBob2xkaW5nIHRoZSB3YWl0IGV2ZW50CisJCQkjIGluZm8sIGFzIG9mICh0eXBlLCBu YW1lLCBkZXNjcmlwdGlvbikuCisJCQlwcmludGYgJHdjICJcdHtcIiVzXCIsIFwiJXNcIiwg XCIlc1wifSxcbiIsICRsYXN0LCAkd2V2LT5bMV0sCisJCQkgICRuZXdfZGVzYzsKKwkJfQor CX0KKwogCXByaW50ZiAkaCAiI2VuZGlmICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBX QUlUX0VWRU5UX1RZUEVTX0ggKi9cbiI7CiAJY2xvc2UgJGg7CiAJY2xvc2UgJGM7CisJY2xv c2UgJHdjOwogCiAJcmVuYW1lKCRodG1wLCAiJG91dHB1dF9wYXRoL3dhaXRfZXZlbnRfdHlw ZXMuaCIpCiAJICB8fCBkaWUgInJlbmFtZTogJGh0bXAgdG8gJG91dHB1dF9wYXRoL3dhaXRf ZXZlbnRfdHlwZXMuaDogJCEiOwogCXJlbmFtZSgkY3RtcCwgIiRvdXRwdXRfcGF0aC9wZ3N0 YXRfd2FpdF9ldmVudC5jIikKIAkgIHx8IGRpZSAicmVuYW1lOiAkY3RtcCB0byAkb3V0cHV0 X3BhdGgvcGdzdGF0X3dhaXRfZXZlbnQuYzogJCEiOworCXJlbmFtZSgkd2N0bXAsICIkb3V0 cHV0X3BhdGgvd2FpdF9ldmVudF9mdW5jc19kYXRhLmMiKQorCSAgfHwgZGllICJyZW5hbWU6 ICRjdG1wIHRvICRvdXRwdXRfcGF0aC93YWl0X2V2ZW50X2Z1bmNzX2RhdGEuYzogJCEiOwog fQogIyBHZW5lcmF0ZSB0aGUgLnNnbWwgZmlsZS4KIGVsc2lmICgkZ2VuX2RvY3MpCkBAIC0y NDksNyArMjg3LDcgQEAgVXNhZ2U6IHBlcmwgIFstLW91dHB1dCA8cGF0aD5dIFstLWNvZGUg XSBbIC0tc2dtbCBdIGlucHV0X2ZpbGUKIAogT3B0aW9uczoKICAgICAtLW91dGRpciAgICAg ICAgIE91dHB1dCBkaXJlY3RvcnkgKGRlZmF1bHQgJy4nKQotICAgIC0tY29kZSAgICAgICAg ICAgR2VuZXJhdGUgd2FpdF9ldmVudF90eXBlcy5oIGFuZCBwZ3N0YXRfd2FpdF9ldmVudC5j LgorICAgIC0tY29kZSAgICAgICAgICAgR2VuZXJhdGUgQyBhbmQgaGVhZGVyIGZpbGVzLgog ICAgIC0tc2dtbCAgICAgICAgICAgR2VuZXJhdGUgd2FpdF9ldmVudF90eXBlcy5zZ21sLgog CiBnZW5lcmF0ZS13YWl0X2V2ZW50X3R5cGVzLnBsIGdlbmVyYXRlcyB0aGUgU0dNTCBkb2N1 bWVudGF0aW9uIGFuZCBjb2RlCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hY3Rp dml0eS9tZXNvbi5idWlsZCBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L21lc29uLmJ1 aWxkCmluZGV4IDk2MzNmMzYyM2MuLjQ2YTI3ZTc1NDggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3V0aWxzL2FjdGl2aXR5L21lc29uLmJ1aWxkCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxz L2FjdGl2aXR5L21lc29uLmJ1aWxkCkBAIC0yMyw2ICsyMyw3IEBAIGJhY2tlbmRfc291cmNl cyArPSBmaWxlcygKICMgc2VlbXMgbmljZXIgdG8gbm90IGFkZCB0aGF0IGFzIGFuIGluY2x1 ZGUgcGF0aCBmb3IgdGhlIHdob2xlIGJhY2tlbmQuCiB3YWl0ZXZlbnRfc291cmNlcyA9IGZp bGVzKAogICAnd2FpdF9ldmVudC5jJywKKyAgJ3dhaXRfZXZlbnRfZnVuY3MuYycsCiApCiAK IHdhaXRfZXZlbnQgPSBzdGF0aWNfbGlicmFyeSgnd2FpdF9ldmVudF9uYW1lcycsCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS93YWl0X2V2ZW50LmMgYi9zcmMv YmFja2VuZC91dGlscy9hY3Rpdml0eS93YWl0X2V2ZW50LmMKaW5kZXggNGI5YjVjMDFjYi4u NGZhOTFiYjIyNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvd2Fp dF9ldmVudC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3dhaXRfZXZlbnQu YwpAQCAtNzMsMTMgKzczLDYgQEAgdHlwZWRlZiBzdHJ1Y3QgV2FpdEV2ZW50RXh0ZW5zaW9u RW50cnlCeUlkCiAJY2hhcgkJd2FpdF9ldmVudF9uYW1lW05BTUVEQVRBTEVOXTsJLyogY3Vz dG9tIHdhaXQgZXZlbnQgbmFtZSAqLwogfSBXYWl0RXZlbnRFeHRlbnNpb25FbnRyeUJ5SWQ7 CiAKLXR5cGVkZWYgc3RydWN0IFdhaXRFdmVudEV4dGVuc2lvbkVudHJ5QnlOYW1lCi17Ci0J Y2hhcgkJd2FpdF9ldmVudF9uYW1lW05BTUVEQVRBTEVOXTsJLyogaGFzaCBrZXkgKi8KLQl1 aW50MTYJCWV2ZW50X2lkOwkJLyogd2FpdCBldmVudCBJRCAqLwotfSBXYWl0RXZlbnRFeHRl bnNpb25FbnRyeUJ5TmFtZTsKLQotCiAvKiBkeW5hbWljIGFsbG9jYXRpb24gY291bnRlciBm b3IgY3VzdG9tIHdhaXQgZXZlbnRzIGluIGV4dGVuc2lvbnMgKi8KIHR5cGVkZWYgc3RydWN0 IFdhaXRFdmVudEV4dGVuc2lvbkNvdW50ZXJEYXRhCiB7CkBAIC0yNjQsNiArMjU3LDQ5IEBA IEdldFdhaXRFdmVudEV4dGVuc2lvbklkZW50aWZpZXIodWludDE2IGV2ZW50SWQpCiB9CiAK IAorLyoKKyAqIFJldHVybnMgYSBsaXN0IG9mIGN1cnJlbnRseSBkZWZpbmVkIGN1c3RvbSB3 YWl0IGV2ZW50cyBmb3IgZXh0ZW5zaW9ucy4KKyAqIFRoZSByZXN1bHQgaXMgYSBwYWxsb2Mn ZCBhcnJheSwgd2l0aCB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzIHJldHVybmVkIGludG8KKyAq ICpud2FpdGV2ZW50cy4KKyAqLworV2FpdEV2ZW50RXh0ZW5zaW9uRW50cnlCeU5hbWUgKgor R2V0V2FpdEV2ZW50RXh0ZW5zaW9uRW50cmllcyhpbnQgKm53YWl0ZXZlbnRzKQoreworCVdh aXRFdmVudEV4dGVuc2lvbkVudHJ5QnlOYW1lICp3YWl0ZXZlbnRlbnRyaWVzOworCVdhaXRF dmVudEV4dGVuc2lvbkVudHJ5QnlOYW1lICpoZW50cnk7CisJSEFTSF9TRVFfU1RBVFVTIGhh c2hfc2VxOworCWludAkJCWluZGV4OworCWludAkJCWVsczsKKworCUxXTG9ja0FjcXVpcmUo V2FpdEV2ZW50RXh0ZW5zaW9uTG9jaywgTFdfU0hBUkVEKTsKKworCS8qIE5vdyB3ZSBjYW4g c2FmZWx5IGNvdW50IHRoZSBudW1iZXIgb2YgZW50cmllcyAqLworCWVscyA9IGhhc2hfZ2V0 X251bV9lbnRyaWVzKFdhaXRFdmVudEV4dGVuc2lvbkhhc2hCeU5hbWUpOworCisJLyogQWxs b2NhdGUgZW5vdWdoIHNwYWNlIGZvciBhbGxsIGVudHJpZXMgKi8KKwl3YWl0ZXZlbnRlbnRy aWVzID0gcGFsbG9jKGVscyAqIHNpemVvZihXYWl0RXZlbnRFeHRlbnNpb25FbnRyeUJ5TmFt ZSkpOworCisJLyogTm93IHNjYW4gdGhlIGhhc2ggdGFibGUgdG8gY29weSB0aGUgZGF0YSAq LworCWhhc2hfc2VxX2luaXQoJmhhc2hfc2VxLCBXYWl0RXZlbnRFeHRlbnNpb25IYXNoQnlO YW1lKTsKKworCWluZGV4ID0gMDsKKwl3aGlsZSAoKGhlbnRyeSA9IChXYWl0RXZlbnRFeHRl bnNpb25FbnRyeUJ5TmFtZSAqKSBoYXNoX3NlcV9zZWFyY2goJmhhc2hfc2VxKSkgIT0gTlVM TCkKKwl7CisJCXN0cmxjcHkod2FpdGV2ZW50ZW50cmllc1tpbmRleF0ud2FpdF9ldmVudF9u YW1lLCBoZW50cnktPndhaXRfZXZlbnRfbmFtZSwKKwkJCQlzaXplb2Yod2FpdGV2ZW50ZW50 cmllc1tpbmRleF0ud2FpdF9ldmVudF9uYW1lKSk7CisJCXdhaXRldmVudGVudHJpZXNbaW5k ZXhdLmV2ZW50X2lkID0gaGVudHJ5LT5ldmVudF9pZDsKKworCQlpbmRleCsrOworCX0KKwor CUxXTG9ja1JlbGVhc2UoV2FpdEV2ZW50RXh0ZW5zaW9uTG9jayk7CisKKwlBc3NlcnQoaW5k ZXggPD0gZWxzKTsKKworCSpud2FpdGV2ZW50cyA9IGluZGV4OworCXJldHVybiB3YWl0ZXZl bnRlbnRyaWVzOworfQorCiAvKgogICogQ29uZmlndXJlIHdhaXQgZXZlbnQgcmVwb3J0aW5n IHRvIHJlcG9ydCB3YWl0IGV2ZW50cyB0byAqd2FpdF9ldmVudF9pbmZvLgogICogKndhaXRf ZXZlbnRfaW5mbyBuZWVkcyB0byBiZSB2YWxpZCB1bnRpbCBwZ3N0YXRfcmVzZXRfd2FpdF9l dmVudF9zdG9yYWdlKCkKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5 L3dhaXRfZXZlbnRfZnVuY3MuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3dhaXRf ZXZlbnRfZnVuY3MuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5i NzQyNTBjYTM1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZp dHkvd2FpdF9ldmVudF9mdW5jcy5jCkBAIC0wLDAgKzEsOTQgQEAKKy8qLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgKgorICogd2FpdF9ldmVudF9mdW5jcy5jCisgKgkgIEZ1bmN0aW9ucyBmb3Ig YWNjZXNzaW5nIHdhaXQgZXZlbnQgZGF0YS4KKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQg KGMpIDE5OTYtMjAyMywgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAq IFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0 eSBvZiBDYWxpZm9ybmlhCisgKgorICoKKyAqIElERU5USUZJQ0FUSU9OCisgKgkgIHNyYy9i YWNrZW5kL3V0aWxzL2FjdGl2aXR5L3dhaXRfZXZlbnRfZnVuY3MuYworICoKKyAqLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgKi8KKyNpbmNsdWRlICJwb3N0Z3Jlcy5oIgorCisjaW5jbHVkZSAi ZnVuY2FwaS5oIgorI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCisjaW5jbHVkZSAidXRp bHMvd2FpdF9ldmVudC5oIgorCisvKgorICogRWFjaCB3YWl0IGV2ZW50IGhhcyBvbmUgY29y cmVzcG9uZGluZyBlbnRyeSBpbiB0aGlzIHN0cnVjdHVyZSwgZmVkIHRvCisgKiB0aGUgU1FM IGZ1bmN0aW9uIG9mIHRoaXMgZmlsZS4KKyAqLworc3RhdGljIGNvbnN0IHN0cnVjdAorewor CWNvbnN0IGNoYXIgKnR5cGU7CisJY29uc3QgY2hhciAqbmFtZTsKKwljb25zdCBjaGFyICpk ZXNjcmlwdGlvbjsKK30KKword2FpdEV2ZW50RGF0YVtdID0KK3sKKyNpbmNsdWRlICJ3YWl0 X2V2ZW50X2Z1bmNzX2RhdGEuYyIKKwkvKiBlbmQgb2YgbGlzdCAqLworCXtOVUxMLCBOVUxM LCBOVUxMfQorfTsKKworCisvKgorICogcGdfZ2V0X3dhaXRfZXZlbnRzCisgKgorICogTGlz dCBhbGwgdGhlIHdhaXQgZXZlbnRzICh0eXBlLCBuYW1lKSBhbmQgdGhlaXIgZGVzY3JpcHRp b25zLgorICovCitEYXR1bQorcGdfZ2V0X3dhaXRfZXZlbnRzKFBHX0ZVTkNUSU9OX0FSR1Mp Cit7CisjZGVmaW5lIFBHX0dFVF9XQUlUX0VWRU5UU19DT0xTIDMKKwlSZXR1cm5TZXRJbmZv ICpyc2luZm8gPSAoUmV0dXJuU2V0SW5mbyAqKSBmY2luZm8tPnJlc3VsdGluZm87CisJV2Fp dEV2ZW50RXh0ZW5zaW9uRW50cnlCeU5hbWUgKndhaXRldmVudGVudHJpZXM7CisJaW50CQkJ bmJleHR3YWl0ZXZlbnRzOworCisJLyogQnVpbGQgdHVwbGVzdG9yZSB0byBob2xkIHRoZSBy ZXN1bHQgcm93cyAqLworCUluaXRNYXRlcmlhbGl6ZWRTUkYoZmNpbmZvLCAwKTsKKworCS8q IEl0ZXJhdGUgb3ZlciB0aGUgbGlzdCBvZiB3YWl0IGV2ZW50cyAqLworCWZvciAoaW50IGlk eCA9IDA7IHdhaXRFdmVudERhdGFbaWR4XS50eXBlICE9IE5VTEw7IGlkeCsrKQorCXsKKwkJ RGF0dW0JCXZhbHVlc1tQR19HRVRfV0FJVF9FVkVOVFNfQ09MU10gPSB7MH07CisJCWJvb2wJ CW51bGxzW1BHX0dFVF9XQUlUX0VWRU5UU19DT0xTXSA9IHswfTsKKworCQl2YWx1ZXNbMF0g PSBDU3RyaW5nR2V0VGV4dERhdHVtKHdhaXRFdmVudERhdGFbaWR4XS50eXBlKTsKKwkJdmFs dWVzWzFdID0gQ1N0cmluZ0dldFRleHREYXR1bSh3YWl0RXZlbnREYXRhW2lkeF0ubmFtZSk7 CisJCXZhbHVlc1syXSA9IENTdHJpbmdHZXRUZXh0RGF0dW0od2FpdEV2ZW50RGF0YVtpZHhd LmRlc2NyaXB0aW9uKTsKKworCQl0dXBsZXN0b3JlX3B1dHZhbHVlcyhyc2luZm8tPnNldFJl c3VsdCwgcnNpbmZvLT5zZXREZXNjLCB2YWx1ZXMsIG51bGxzKTsKKwl9CisKKwkvKiBIYW5k bGluZyBleHRlbnNpb24gY3VzdG9tIHdhaXQgZXZlbnRzICovCisJd2FpdGV2ZW50ZW50cmll cyA9IEdldFdhaXRFdmVudEV4dGVuc2lvbkVudHJpZXMoJm5iZXh0d2FpdGV2ZW50cyk7CisJ Zm9yIChpbnQgaWR4ID0gMDsgaWR4IDwgbmJleHR3YWl0ZXZlbnRzOyBpZHgrKykKKwl7CisJ CWNoYXIJCWJ1ZltOQU1FREFUQUxFTiArIDQ0XTsgLy8iQ3VzdG9tIHdhaXQgZXZlbnQgXCIl TmFtZSVcIiBkZWZpbmVkIGJ5IGV4dGVuc2lvbiIKKworCQlEYXR1bQkJdmFsdWVzW1BHX0dF VF9XQUlUX0VWRU5UU19DT0xTXSA9IHswfTsKKwkJYm9vbAkJbnVsbHNbUEdfR0VUX1dBSVRf RVZFTlRTX0NPTFNdID0gezB9OworCisJCXZhbHVlc1swXSA9IENTdHJpbmdHZXRUZXh0RGF0 dW0oIkV4dGVuc2lvbiIpOworCQl2YWx1ZXNbMV0gPSBDU3RyaW5nR2V0VGV4dERhdHVtKHdh aXRldmVudGVudHJpZXNbaWR4XS53YWl0X2V2ZW50X25hbWUpOworCisJCWJ1ZlswXSA9ICdc MCc7CisJCXN0cmNhdChidWYsICJDdXN0b20gd2FpdCBldmVudCBcIiIpOworCQlzdHJjYXQo YnVmLCB3YWl0ZXZlbnRlbnRyaWVzW2lkeF0ud2FpdF9ldmVudF9uYW1lKTsKKwkJc3RyY2F0 KGJ1ZiwgIlwiIGRlZmluZWQgYnkgZXh0ZW5zaW9uIik7CisKKwkJdmFsdWVzWzJdID0gQ1N0 cmluZ0dldFRleHREYXR1bShidWYpOworCisJCXR1cGxlc3RvcmVfcHV0dmFsdWVzKHJzaW5m by0+c2V0UmVzdWx0LCByc2luZm8tPnNldERlc2MsIHZhbHVlcywgbnVsbHMpOworCX0KKwor CXBmcmVlKHdhaXRldmVudGVudHJpZXMpOworCisJcmV0dXJuIChEYXR1bSkgMDsKK30KZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgYi9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3Byb2MuZGF0CmluZGV4IDY5OTYwNzM5ODkuLjFhOTQyYzY3OGMgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAtNTQxNyw2ICs1NDE3LDEyIEBACiAgIHBy b2FyZ21vZGVzID0+ICd7aSxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxv LG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvfScsCiAgIHByb2FyZ25hbWVzID0+ICd7cGlkLGRh dGlkLHBpZCx1c2VzeXNpZCxhcHBsaWNhdGlvbl9uYW1lLHN0YXRlLHF1ZXJ5LHdhaXRfZXZl bnRfdHlwZSx3YWl0X2V2ZW50LHhhY3Rfc3RhcnQscXVlcnlfc3RhcnQsYmFja2VuZF9zdGFy dCxzdGF0ZV9jaGFuZ2UsY2xpZW50X2FkZHIsY2xpZW50X2hvc3RuYW1lLGNsaWVudF9wb3J0 LGJhY2tlbmRfeGlkLGJhY2tlbmRfeG1pbixiYWNrZW5kX3R5cGUsc3NsLHNzbHZlcnNpb24s c3NsY2lwaGVyLHNzbGJpdHMsc3NsX2NsaWVudF9kbixzc2xfY2xpZW50X3NlcmlhbCxzc2xf aXNzdWVyX2RuLGdzc19hdXRoLGdzc19wcmluYyxnc3NfZW5jLGdzc19kZWxlZ2F0aW9uLGxl YWRlcl9waWQscXVlcnlfaWR9JywKICAgcHJvc3JjID0+ICdwZ19zdGF0X2dldF9hY3Rpdml0 eScgfSwKK3sgb2lkID0+ICc4NDAzJywgZGVzY3IgPT4gJ2Rlc2NyaWJlIHdhaXQgZXZlbnRz JywKKyAgcHJvbmFtZSA9PiAncGdfZ2V0X3dhaXRfZXZlbnRzJywgcHJvY29zdCA9PiAnMTAn LCBwcm9yb3dzID0+ICcxMDAnLAorICBwcm9yZXRzZXQgPT4gJ3QnLCBwcm92b2xhdGlsZSA9 PiAncycsIHByb3JldHR5cGUgPT4gJ3JlY29yZCcsCisgIHByb2FyZ3R5cGVzID0+ICcnLCBw cm9hbGxhcmd0eXBlcyA9PiAne3RleHQsdGV4dCx0ZXh0fScsCisgIHByb2FyZ21vZGVzID0+ ICd7byxvLG99JywgcHJvYXJnbmFtZXMgPT4gJ3t0eXBlLG5hbWUsZGVzY3JpcHRpb259JywK KyAgcHJvc3JjID0+ICdwZ19nZXRfd2FpdF9ldmVudHMnIH0sCiB7IG9pZCA9PiAnMzMxOCcs CiAgIGRlc2NyID0+ICdzdGF0aXN0aWNzOiBpbmZvcm1hdGlvbiBhYm91dCBwcm9ncmVzcyBv ZiBiYWNrZW5kcyBydW5uaW5nIG1haW50ZW5hbmNlIGNvbW1hbmQnLAogICBwcm9uYW1lID0+ ICdwZ19zdGF0X2dldF9wcm9ncmVzc19pbmZvJywgcHJvcm93cyA9PiAnMTAwJywgcHJvcmV0 c2V0ID0+ICd0JywKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL21lc29uLmJ1aWxk IGIvc3JjL2luY2x1ZGUvdXRpbHMvbWVzb24uYnVpbGQKaW5kZXggNmRlNWQ5Mzc5OS4uYzE3 OTQ3ODYxMSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvbWVzb24uYnVpbGQKKysr IGIvc3JjL2luY2x1ZGUvdXRpbHMvbWVzb24uYnVpbGQKQEAgLTEsNiArMSw2IEBACiAjIENv cHlyaWdodCAoYykgMjAyMi0yMDIzLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBH cm91cAogCi13YWl0X2V2ZW50X291dHB1dCA9IFsnd2FpdF9ldmVudF90eXBlcy5oJywgJ3Bn c3RhdF93YWl0X2V2ZW50LmMnXQord2FpdF9ldmVudF9vdXRwdXQgPSBbJ3dhaXRfZXZlbnRf dHlwZXMuaCcsICdwZ3N0YXRfd2FpdF9ldmVudC5jJywgJ3dhaXRfZXZlbnRfZnVuY3NfZGF0 YS5jJ10KIHdhaXRfZXZlbnRfdGFyZ2V0ID0gY3VzdG9tX3RhcmdldCgnd2FpdF9ldmVudF9u YW1lcycsCiAgIGlucHV0OiBmaWxlcygnLi4vLi4vYmFja2VuZC91dGlscy9hY3Rpdml0eS93 YWl0X2V2ZW50X25hbWVzLnR4dCcpLAogICBvdXRwdXQ6IHdhaXRfZXZlbnRfb3V0cHV0LApA QCAtMTEsNyArMTEsNyBAQCB3YWl0X2V2ZW50X3RhcmdldCA9IGN1c3RvbV90YXJnZXQoJ3dh aXRfZXZlbnRfbmFtZXMnLAogICBdLAogICBidWlsZF9ieV9kZWZhdWx0OiB0cnVlLAogICBp bnN0YWxsOiB0cnVlLAotICBpbnN0YWxsX2RpcjogW2Rpcl9pbmNsdWRlX3NlcnZlciAvICd1 dGlscycsIGZhbHNlXSwKKyAgaW5zdGFsbF9kaXI6IFtkaXJfaW5jbHVkZV9zZXJ2ZXIgLyAn dXRpbHMnLCBmYWxzZSwgZmFsc2VdLAogKQogCiB3YWl0X2V2ZW50X3R5cGVzX2ggPSB3YWl0 X2V2ZW50X3RhcmdldFswXQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvd2FpdF9l dmVudC5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvd2FpdF9ldmVudC5oCmluZGV4IDNlZWJkZmFk MzguLjVkZDE3ZDMzZWUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL3dhaXRfZXZl bnQuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy93YWl0X2V2ZW50LmgKQEAgLTU5LDEwICs1 OSwxNyBAQCB0eXBlZGVmIGVudW0KIAlXQUlUX0VWRU5UX0VYVEVOU0lPTl9GSVJTVF9VU0VS X0RFRklORUQKIH0gV2FpdEV2ZW50RXh0ZW5zaW9uOwogCit0eXBlZGVmIHN0cnVjdCBXYWl0 RXZlbnRFeHRlbnNpb25FbnRyeUJ5TmFtZQoreworCWNoYXIJCXdhaXRfZXZlbnRfbmFtZVtO QU1FREFUQUxFTl07ICAgLyogaGFzaCBrZXkgKi8KKwl1aW50MTYJCWV2ZW50X2lkOyAgICAg ICAvKiB3YWl0IGV2ZW50IElEICovCit9IFdhaXRFdmVudEV4dGVuc2lvbkVudHJ5QnlOYW1l OworCiBleHRlcm4gdm9pZCBXYWl0RXZlbnRFeHRlbnNpb25TaG1lbUluaXQodm9pZCk7CiBl eHRlcm4gU2l6ZSBXYWl0RXZlbnRFeHRlbnNpb25TaG1lbVNpemUodm9pZCk7CiAKIGV4dGVy biB1aW50MzIgV2FpdEV2ZW50RXh0ZW5zaW9uTmV3KGNvbnN0IGNoYXIgKndhaXRfZXZlbnRf bmFtZSk7CitleHRlcm4gV2FpdEV2ZW50RXh0ZW5zaW9uRW50cnlCeU5hbWUgKkdldFdhaXRF dmVudEV4dGVuc2lvbkVudHJpZXMoaW50ICpud2FpdGV2ZW50cyk7CiAKIC8qIC0tLS0tLS0t LS0KICAqIHBnc3RhdF9yZXBvcnRfd2FpdF9zdGFydCgpIC0KZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L21vZHVsZXMvd29ya2VyX3NwaS90LzAwMV93b3JrZXJfc3BpLnBsIGIvc3JjL3Rlc3Qv bW9kdWxlcy93b3JrZXJfc3BpL3QvMDAxX3dvcmtlcl9zcGkucGwKaW5kZXggMjZiOGE0OWJl Yy4uY2Q0OGY0MjI2OSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvbW9kdWxlcy93b3JrZXJfc3Bp L3QvMDAxX3dvcmtlcl9zcGkucGwKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy93b3JrZXJfc3Bp L3QvMDAxX3dvcmtlcl9zcGkucGwKQEAgLTQ3LDYgKzQ3LDEyIEBAICRyZXN1bHQgPSAkbm9k ZS0+cG9sbF9xdWVyeV91bnRpbCgKIGlzKCRyZXN1bHQsIDEsCiAJJ2R5bmFtaWMgYmd3b3Jr ZXIgaGFzIHJlcG9ydGVkICJ3b3JrZXJfc3BpX21haW4iIGFzIHdhaXQgZXZlbnQnKTsKIAor IyBDaGVjayB0aGUgd2FpdCBldmVudCB1c2VkIGJ5IHRoZSBkeW5hbWljIGJnd29ya2VyIGFw cGVhcnMgaW4gcGdfd2FpdF9ldmVudAorJHJlc3VsdCA9ICRub2RlLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywKKwlxW1NFTEVDVCBjb3VudCgqKSA+IDAgZnJvbSBwZ193YWl0X2V2ZW50IHdo ZXJlIHR5cGUgPSAnRXh0ZW5zaW9uJyBhbmQgbmFtZSA9ICd3b3JrZXJfc3BpX21haW4nO10K Kyk7CitpcygkcmVzdWx0LCAndCcsICcid29ya2VyX3NwaV9tYWluIiBpcyByZXBvcnRlZCBp biBwZ193YWl0X2V2ZW50Jyk7CisKIG5vdGUgInRlc3RpbmcgYmd3b3JrZXJzIGxvYWRlZCB3 aXRoIHNoYXJlZF9wcmVsb2FkX2xpYnJhcmllcyI7CiAKICMgQ3JlYXRlIHRoZSBkYXRhYmFz ZSBmaXJzdCBzbyBhcyB0aGUgd29ya2VycyBjYW4gY29ubmVjdCB0byBpdCB3aGVuCmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dCBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CmluZGV4IGUwN2FmY2Q0YWEuLmQ2OTIwMjk5 MWQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0Cisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CkBAIC0yNjMxLDYgKzI2 MzEsMTAgQEAgcGdfdmlld3N8IFNFTEVDVCBuLm5zcG5hbWUgQVMgc2NoZW1hbmFtZSwKICAg IEZST00gKHBnX2NsYXNzIGMKICAgICAgTEVGVCBKT0lOIHBnX25hbWVzcGFjZSBuIE9OICgo bi5vaWQgPSBjLnJlbG5hbWVzcGFjZSkpKQogICBXSEVSRSAoYy5yZWxraW5kID0gJ3YnOjoi Y2hhciIpOworcGdfd2FpdF9ldmVudHwgU0VMRUNUIHR5cGUsCisgICAgbmFtZSwKKyAgICBk ZXNjcmlwdGlvbgorICAgRlJPTSBwZ19nZXRfd2FpdF9ldmVudHMoKSB3ZSh0eXBlLCBuYW1l LCBkZXNjcmlwdGlvbik7CiBTRUxFQ1QgdGFibGVuYW1lLCBydWxlbmFtZSwgZGVmaW5pdGlv biBGUk9NIHBnX3J1bGVzCiBXSEVSRSBzY2hlbWFuYW1lID0gJ3BnX2NhdGFsb2cnCiBPUkRF UiBCWSB0YWJsZW5hbWUsIHJ1bGVuYW1lOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9zeXN2aWV3cy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N5 c3ZpZXdzLm91dAppbmRleCAwMDFjNmU3ZWI5Li5jMWE3OTQ0YzdhIDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N5c3ZpZXdzLm91dAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3N5c3ZpZXdzLm91dApAQCAtMTM0LDYgKzEzNCwyMiBAQCBzZWxl Y3QgbmFtZSwgc2V0dGluZyBmcm9tIHBnX3NldHRpbmdzIHdoZXJlIG5hbWUgbGlrZSAnZW5h YmxlJSc7CiAgZW5hYmxlX3RpZHNjYW4gICAgICAgICAgICAgICAgIHwgb24KICgyMSByb3dz KQogCistLSBUaGVyZSBhcmUgYWx3YXlzIHdhaXQgZXZlbnQgZGVzY3JpcHRpb25zIGZvciB2 YXJpb3VzIHR5cGVzLgorc2VsZWN0IHR5cGUsIGNvdW50KCopID4gMCBhcyBvayBGUk9NIHBn X3dhaXRfZXZlbnQKKyAgZ3JvdXAgYnkgdHlwZSBvcmRlciBieSB0eXBlIENPTExBVEUgIkMi OworICAgdHlwZSAgICB8IG9rIAorLS0tLS0tLS0tLS0rLS0tLQorIEFjdGl2aXR5ICB8IHQK KyBCdWZmZXJQaW4gfCB0CisgQ2xpZW50ICAgIHwgdAorIEV4dGVuc2lvbiB8IHQKKyBJTyAg ICAgICAgfCB0CisgSVBDICAgICAgIHwgdAorIExXTG9jayAgICB8IHQKKyBMb2NrICAgICAg fCB0CisgVGltZW91dCAgIHwgdAorKDkgcm93cykKKwogLS0gVGVzdCB0aGF0IHRoZSBwZ190 aW1lem9uZV9uYW1lcyBhbmQgcGdfdGltZXpvbmVfYWJicmV2cyB2aWV3cyBhcmUKIC0tIG1v cmUtb3ItbGVzcyB3b3JraW5nLiAgV2UgY2FuJ3QgdGVzdCB0aGVpciBjb250ZW50cyBpbiBh bnkgZ3JlYXQgZGV0YWlsCiAtLSB3aXRob3V0IHRoZSBvdXRwdXRzIGNoYW5naW5nIGFueXRp bWUgSUFOQSB1cGRhdGVzIHRoZSB1bmRlcmx5aW5nIGRhdGEsCmRpZmYgLS1naXQgYS9zcmMv dGVzdC9yZWdyZXNzL3NxbC9zeXN2aWV3cy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9z eXN2aWV3cy5zcWwKaW5kZXggMzUxZTQ2OWM3Ny4uM2Q0MzEwOGFhZSAxMDA2NDQKLS0tIGEv c3JjL3Rlc3QvcmVncmVzcy9zcWwvc3lzdmlld3Muc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3N5c3ZpZXdzLnNxbApAQCAtNTUsNiArNTUsMTAgQEAgc2VsZWN0IGNvdW50KCop ID0gMCBhcyBvayBmcm9tIHBnX3N0YXRfd2FsX3JlY2VpdmVyOwogLS0gYSByZWdyZXNzaW9u IHRlc3QgcnVuLgogc2VsZWN0IG5hbWUsIHNldHRpbmcgZnJvbSBwZ19zZXR0aW5ncyB3aGVy ZSBuYW1lIGxpa2UgJ2VuYWJsZSUnOwogCistLSBUaGVyZSBhcmUgYWx3YXlzIHdhaXQgZXZl bnQgZGVzY3JpcHRpb25zIGZvciB2YXJpb3VzIHR5cGVzLgorc2VsZWN0IHR5cGUsIGNvdW50 KCopID4gMCBhcyBvayBGUk9NIHBnX3dhaXRfZXZlbnQKKyAgZ3JvdXAgYnkgdHlwZSBvcmRl ciBieSB0eXBlIENPTExBVEUgIkMiOworCiAtLSBUZXN0IHRoYXQgdGhlIHBnX3RpbWV6b25l X25hbWVzIGFuZCBwZ190aW1lem9uZV9hYmJyZXZzIHZpZXdzIGFyZQogLS0gbW9yZS1vci1s ZXNzIHdvcmtpbmcuICBXZSBjYW4ndCB0ZXN0IHRoZWlyIGNvbnRlbnRzIGluIGFueSBncmVh dCBkZXRhaWwKIC0tIHdpdGhvdXQgdGhlIG91dHB1dHMgY2hhbmdpbmcgYW55dGltZSBJQU5B IHVwZGF0ZXMgdGhlIHVuZGVybHlpbmcgZGF0YSwKZGlmZiAtLWdpdCBhL3NyYy90b29scy9t c3ZjL1NvbHV0aW9uLnBtIGIvc3JjL3Rvb2xzL21zdmMvU29sdXRpb24ucG0KaW5kZXggYzk4 YTFlOWY5YS4uYTUwZjczMDI2MCAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL21zdmMvU29sdXRp b24ucG0KKysrIGIvc3JjL3Rvb2xzL21zdmMvU29sdXRpb24ucG0KQEAgLTU4OCw3ICs1ODgs OCBAQCBzdWIgR2VuZXJhdGVGaWxlcwogCQkJJ3NyYy9pbmNsdWRlL3V0aWxzL3dhaXRfZXZl bnRfdHlwZXMuaCcsCiAJCQknc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvd2FpdF9ldmVu dF9uYW1lcy50eHQnKSkKIAl7Ci0JCXByaW50ICJHZW5lcmF0aW5nIHBnc3RhdF93YWl0X2V2 ZW50LmMgYW5kIHdhaXRfZXZlbnRfdHlwZXMuaC4uLlxuIjsKKwkJcHJpbnQKKwkJICAiR2Vu ZXJhdGluZyBwZ3N0YXRfd2FpdF9ldmVudC5jLCB3YWl0X2V2ZW50X3R5cGVzLmggYW5kIHdh aXRfZXZlbnRfZnVuY3NfZGF0YS5jLi4uXG4iOwogCQlteSAkYWN0aXYgPSAnc3JjL2JhY2tl bmQvdXRpbHMvYWN0aXZpdHknOwogCQlzeXN0ZW0oCiAJCQkicGVybCAkYWN0aXYvZ2VuZXJh dGUtd2FpdF9ldmVudF90eXBlcy5wbCAtLW91dGRpciAkYWN0aXYgLS1jb2RlICRhY3Rpdi93 YWl0X2V2ZW50X25hbWVzLnR4dCIKZGlmZiAtLWdpdCBhL3NyYy90b29scy9tc3ZjL2NsZWFu LmJhdCBiL3NyYy90b29scy9tc3ZjL2NsZWFuLmJhdAppbmRleCA3Y2IyM2VhODk0Li5hYzhk YTU4MWU0IDEwMDc1NQotLS0gYS9zcmMvdG9vbHMvbXN2Yy9jbGVhbi5iYXQKKysrIGIvc3Jj L3Rvb2xzL21zdmMvY2xlYW4uYmF0CkBAIC01NSw2ICs1NSw3IEBAIGlmIGV4aXN0IHNyY1xp bmNsdWRlXGNhdGFsb2dcaGVhZGVyLXN0YW1wIGRlbCAvcSBzcmNcaW5jbHVkZVxjYXRhbG9n XGhlYWRlci1zdGFtCiBpZiBleGlzdCBkb2Ncc3JjXHNnbWxcdmVyc2lvbi5zZ21sIGRlbCAv cSBkb2Ncc3JjXHNnbWxcdmVyc2lvbi5zZ21sCiAKIGlmICVESVNUJT09MSBpZiBleGlzdCBz cmNcYmFja2VuZFx1dGlsc1xhY3Rpdml0eVxwZ3N0YXRfd2FpdF9ldmVudC5jIGRlbCAvcSBz cmNcYmFja2VuZFx1dGlsc1xhY3Rpdml0eVxwZ3N0YXRfd2FpdF9ldmVudC5jCitpZiAlRElT VCU9PTEgaWYgZXhpc3Qgc3JjXGJhY2tlbmRcdXRpbHNcYWN0aXZpdHlcd2FpdF9ldmVudF9m dW5jc19kYXRhLmMgZGVsIC9xIHNyY1xiYWNrZW5kXHV0aWxzXGFjdGl2aXR5XHdhaXRfZXZl bnRfZnVuY3NfZGF0YS5jCiBpZiAlRElTVCU9PTEgaWYgZXhpc3Qgc3JjXGJhY2tlbmRcdXRp bHNcYWN0aXZpdHlcd2FpdF9ldmVudF90eXBlcy5oIGRlbCAvcSBzcmNcYmFja2VuZFx1dGls c1xhY3Rpdml0eVx3YWl0X2V2ZW50X3R5cGVzLmgKIGlmICVESVNUJT09MSBpZiBleGlzdCBz cmNcYmFja2VuZFx1dGlsc1xmbWdyb2lkcy5oIGRlbCAvcSBzcmNcYmFja2VuZFx1dGlsc1xm bWdyb2lkcy5oCiBpZiAlRElTVCU9PTEgaWYgZXhpc3Qgc3JjXGJhY2tlbmRcdXRpbHNcZm1n cnByb3Rvcy5oIGRlbCAvcSBzcmNcYmFja2VuZFx1dGlsc1xmbWdycHJvdG9zLmgKLS0gCjIu MzQuMQoK --------------O0Z40TEl7uG7jU0mbe6n0qpy--