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 1v8ZjG-0038Gc-Bw for pgsql-hackers@arkaria.postgresql.org; Tue, 14 Oct 2025 07:45:54 +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 1v8ZiG-00B5qU-2Q for pgsql-hackers@arkaria.postgresql.org; Tue, 14 Oct 2025 07:44:52 +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 1v8ZiF-00B5qL-K1 for pgsql-hackers@lists.postgresql.org; Tue, 14 Oct 2025 07:44:52 +0000 Received: from mail-vs1-xe2b.google.com ([2607:f8b0:4864:20::e2b]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1v8ZiD-0024r1-1O for pgsql-hackers@postgresql.org; Tue, 14 Oct 2025 07:44:51 +0000 Received: by mail-vs1-xe2b.google.com with SMTP id ada2fe7eead31-5a3511312d6so2657027137.3 for ; Tue, 14 Oct 2025 00:44:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1760427888; x=1761032688; darn=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=xUR+CPzG1MCF615q14pBCG8pjPJO85kaAZq49lQz12U=; b=mPeuTgMujztCv0GA2B5Cgk/pCKJxGYcq7N/llPfIFMIH8dsviN/32+cULdYrOLB+/m cfzqoCqVmCemOuUE2WL2YFflfpvnMQGQ7ZDJ5Th2+58aQLidEfvwIY1XAb+DIRiF8bzh lmalk5uVZMym40RDTpNSqMIccUgeJt1HD249jsxGxW+5YAnbOl1vDT76hh0oyq9kbjKD GT2fs5aRXFrYN6YOMuZWR/iNMpmBbx27E/mTjreDK5hsnSKdq+uv+OgRcu+ovMTJ2zrB OSdFtg5QvZjMA/Y6RevDcEZ1it4PV2JF/mUOX1TCv7IwqlCSPq09qAZztErQ5leqVzwV pwVQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760427888; x=1761032688; 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=xUR+CPzG1MCF615q14pBCG8pjPJO85kaAZq49lQz12U=; b=udNHtlsRzsf9Z+UQ7GzDkPxPYL7q9tPa8FINlO/9oYNnQXW/6Vo6ppZOip0awv+8rg XVfCEcOFfATxVv/desgFjD1b1n6y1HgxsW3t7YTPu33BIpVl85JxY8m2VFWBYC/JoiVo VppdR1bIQUHnkJuSpcwfuz7b1X/F0khgtkYhuzBHe2qgoY09hNkP1nEWIHOik43VFTUR T4oaGmzJlBfhjeZRDLkeUkfWtQvnnAyFSwuJ46S4SkOS9sDPjqXL6mCnjvaWeTaAMtAf OEUPpcQj0yPXJ8C2Kyce9pu5Q2qfwhTr4bgS3qMwNaNVifvnnwy+XzyXdTyyVNOGv68J uVLw== X-Forwarded-Encrypted: i=1; AJvYcCWZUpIFkwjRVQgAfUb9q9qLu/qeX8/GEY0OCjzmXaLypNWK0KnYczZWW2qgbgltRPNeKzs3EGm4DK0WwTa6@postgresql.org X-Gm-Message-State: AOJu0Yyg2r2iYF8CTIRGYLaqVmKniUZX41SFp3Z7ryLtZ45FnMbk7TFO htWHlAJxnZBq7ZdJ1fO1jiAJaIsg+mrQdm5KZjmYJXwpmtmdP+tMxuXP+4cnyhrqWuGssK8SII8 RpzoJ/eXilA1wlM9+Gt001il1LrThcVE= X-Gm-Gg: ASbGncvZ7Ip4I6EGuw9/FgjRaY9q0jJvvTAoan5peMhakshVb1Jp0h4dj5gOKpXc8/b kyvJ2bN8RW2XI0VI/NhjngVNIbP6Pl9/VdwPwMbBaPmjUFNxISIUlYGXFCiZxUOv9LCTyKTJEVO 9XtykKEyRTbKFgQ3MMCN3ONj7YRt8klAzYy5biZTjBw9hgwZol0b0wNJJds3IKfY/bUlpf7hECU t8kmrre5z4JpOhKWttaK9w/pegDLu2QsRkMVdlG88/P64yB6U3lyYwP7kqRKUtXN72Q87tsDB/s DMebC1gO3NIG0Gop3Ar0spShlGIX7l2ZSa8a8I/VksOwR4liC9Okx/ycyQtzVMbmm8mv25fP0A8 R9gjbjGKBTjKU8mjcerVJ72EJcOFzVwcAAc2UnvYhqkpVFw7TLghnlg== X-Google-Smtp-Source: AGHT+IGVKGrnSK2GmZTdXvV0hj0xMtNpAfXMB+eISOGehnkXnDLxF9/n/3z1TEyDf92v7AkH1WI83i/DIsgQ5Z6kabo= X-Received: by 2002:a05:6102:418a:b0:5d3:fed8:f30d with SMTP id ada2fe7eead31-5d5e236b797mr8161516137.19.1760427888025; Tue, 14 Oct 2025 00:44:48 -0700 (PDT) MIME-Version: 1.0 References: <243365.1760371856@sss.pgh.pa.us> In-Reply-To: <243365.1760371856@sss.pgh.pa.us> From: jian he Date: Tue, 14 Oct 2025 15:44:11 +0800 X-Gm-Features: AS18NWCK98BrEME3KWRUj4MZLlacayEdwDtVNAayLPzBR90eb5ppJn-XVRU65es Message-ID: Subject: Re: add function argument name to substring and substr To: Tom Lane Cc: Andrew Dunstan , "David G. Johnston" , Marcos Pegoraro , PostgreSQL-development Content-Type: multipart/mixed; boundary="000000000000eb8bb60641198e5d" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000eb8bb60641198e5d Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Oct 14, 2025 at 12:11=E2=80=AFAM Tom Lane wrote= : > > Andrew Dunstan writes: > > I'm late to the party on this, but I wonder if it wouldn't be better to > > use a type-neutral parameter name here, like "source", which could cove= r > > all these cases, instead of "string", "bytes", etc. > > +1 for that idea. As Jian notes, we'd need to make the docs match, > but I think that this would be an improvement across the board. > Parameter names like "string" don't convey much information. > please check the attached v8. \df substr List of functions Schema | Name | Result data type | Argument data types | Type ------------+--------+------------------+-----------------------------= ---------------+------ pg_catalog | substr | bytea | source bytea, start integer | func pg_catalog | substr | bytea | source bytea, start integer, count integer | func pg_catalog | substr | text | source text, start integer | func pg_catalog | substr | text | source text, start integer, count integer | func (4 rows) \df substring List of functions Schema | Name | Result data type | Argument data types | Type ------------+-----------+------------------+-------------------------------= -------------+------ pg_catalog | substring | bit | source bit, start integer | func pg_catalog | substring | bit | source bit, start integer, count integer | func pg_catalog | substring | bytea | source bytea, start integer | func pg_catalog | substring | bytea | source bytea, start integer, count integer | func pg_catalog | substring | text | source text, pattern text | func pg_catalog | substring | text | source text, pattern text, escape text | func pg_catalog | substring | text | source text, start integer | func pg_catalog | substring | text | source text, start integer, count integer | func (8 rows) For function substr, the doc change is not that a big deal. For function substring, in doc/src/sgml/func/func-matching.sgml, we need change some of the string to source. we also need to change many string to source. That's why v8-0002 is big. --000000000000eb8bb60641198e5d Content-Type: text/x-patch; charset="US-ASCII"; name="v8-0002-add-function-argument-name-to-function-substring.patch" Content-Disposition: attachment; filename="v8-0002-add-function-argument-name-to-function-substring.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mgq9a8zf0 RnJvbSBkMWIzZDZjN2ViM2ViYjQ0NTZlYTJmNmJiMjIyM2ZkNmM1MzVmZWRkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMTQgT2N0IDIwMjUgMTU6NDI6NTcgKzA4MDAKU3ViamVjdDogW1BBVENIIHY4 IDIvMl0gYWRkIGZ1bmN0aW9uIGFyZ3VtZW50IG5hbWUgdG8gZnVuY3Rpb24gc3Vic3RyaW5nCgp3 aXRoIHBhdGNoIGFwcGxpZWQKXGRmIHN1YnN0cmluZwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMaXN0IG9mIGZ1bmN0aW9ucwogICBTY2hlbWEgICB8ICAgTmFtZSAgICB8 IFJlc3VsdCBkYXRhIHR5cGUgfCAgICAgICAgICAgIEFyZ3VtZW50IGRhdGEgdHlwZXMgICAgICAg ICAgICAgfCBUeXBlCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tCiBwZ19j YXRhbG9nIHwgc3Vic3RyaW5nIHwgYml0ICAgICAgICAgICAgICB8IHNvdXJjZSBiaXQsIHN0YXJ0 IGludGVnZXIgICAgICAgICAgICAgICAgICB8IGZ1bmMKIHBnX2NhdGFsb2cgfCBzdWJzdHJpbmcg fCBiaXQgICAgICAgICAgICAgIHwgc291cmNlIGJpdCwgc3RhcnQgaW50ZWdlciwgY291bnQgaW50 ZWdlciAgIHwgZnVuYwogcGdfY2F0YWxvZyB8IHN1YnN0cmluZyB8IGJ5dGVhICAgICAgICAgICAg fCBzb3VyY2UgYnl0ZWEsIHN0YXJ0IGludGVnZXIgICAgICAgICAgICAgICAgfCBmdW5jCiBwZ19j YXRhbG9nIHwgc3Vic3RyaW5nIHwgYnl0ZWEgICAgICAgICAgICB8IHNvdXJjZSBieXRlYSwgc3Rh cnQgaW50ZWdlciwgY291bnQgaW50ZWdlciB8IGZ1bmMKIHBnX2NhdGFsb2cgfCBzdWJzdHJpbmcg fCB0ZXh0ICAgICAgICAgICAgIHwgc291cmNlIHRleHQsIHBhdHRlcm4gdGV4dCAgICAgICAgICAg ICAgICAgIHwgZnVuYwogcGdfY2F0YWxvZyB8IHN1YnN0cmluZyB8IHRleHQgICAgICAgICAgICAg fCBzb3VyY2UgdGV4dCwgcGF0dGVybiB0ZXh0LCBlc2NhcGUgdGV4dCAgICAgfCBmdW5jCiBwZ19j YXRhbG9nIHwgc3Vic3RyaW5nIHwgdGV4dCAgICAgICAgICAgICB8IHNvdXJjZSB0ZXh0LCBzdGFy dCBpbnRlZ2VyICAgICAgICAgICAgICAgICB8IGZ1bmMKIHBnX2NhdGFsb2cgfCBzdWJzdHJpbmcg fCB0ZXh0ICAgICAgICAgICAgIHwgc291cmNlIHRleHQsIHN0YXJ0IGludGVnZXIsIGNvdW50IGlu dGVnZXIgIHwgZnVuYwooOCByb3dzKQoKZGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9D QUNKdWZ4SFRCa3ltaDA2RDRtR0tOZTFZZlJORk4rZ0ZCeWJteWdXaz1QdE1xdTAwTFFAbWFpbC5n bWFpbC5jb20KLS0tCiBkb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLWJpbmFyeXN0cmluZy5zZ21sIHwg MjYgKysrKysrKystLQogZG9jL3NyYy9zZ21sL2Z1bmMvZnVuYy1iaXRzdHJpbmcuc2dtbCAgICB8 IDI0ICsrKysrKysrLQogZG9jL3NyYy9zZ21sL2Z1bmMvZnVuYy1tYXRjaGluZy5zZ21sICAgICB8 IDMyICsrKysrKystLS0tLQogZG9jL3NyYy9zZ21sL2Z1bmMvZnVuYy1zdHJpbmcuc2dtbCAgICAg ICB8IDYzICsrKysrKysrKysrKysrKysrKysrKy0tLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0 ZW1fZnVuY3Rpb25zLnNxbCB8ICAyICstCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0 ICAgICAgICAgIHwgIDggKysrCiA2IGZpbGVzIGNoYW5nZWQsIDEzMCBpbnNlcnRpb25zKCspLCAy NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLWJpbmFy eXN0cmluZy5zZ21sIGIvZG9jL3NyYy9zZ21sL2Z1bmMvZnVuYy1iaW5hcnlzdHJpbmcuc2dtbApp bmRleCAyOTRkMWQ5NzIzMy4uOThmMTJjMDViZmEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9m dW5jL2Z1bmMtYmluYXJ5c3RyaW5nLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2Z1bmMvZnVuYy1i aW5hcnlzdHJpbmcuc2dtbApAQCAtMjAwLDExICsyMDAsMTEgQEAKICAgICAgICAgPGluZGV4dGVy bT4KICAgICAgICAgIDxwcmltYXJ5PnN1YnN0cmluZzwvcHJpbWFyeT4KICAgICAgICAgPC9pbmRl eHRlcm0+Ci0gICAgICAgIDxmdW5jdGlvbj5zdWJzdHJpbmc8L2Z1bmN0aW9uPiAoIDxwYXJhbWV0 ZXI+Ynl0ZXM8L3BhcmFtZXRlcj4gPHR5cGU+Ynl0ZWE8L3R5cGU+IDxvcHRpb25hbD4gPGxpdGVy YWw+RlJPTTwvbGl0ZXJhbD4gPHBhcmFtZXRlcj5zdGFydDwvcGFyYW1ldGVyPiA8dHlwZT5pbnRl Z2VyPC90eXBlPiA8L29wdGlvbmFsPiA8b3B0aW9uYWw+IDxsaXRlcmFsPkZPUjwvbGl0ZXJhbD4g PHBhcmFtZXRlcj5jb3VudDwvcGFyYW1ldGVyPiA8dHlwZT5pbnRlZ2VyPC90eXBlPiA8L29wdGlv bmFsPiApCisgICAgICAgIDxmdW5jdGlvbj5zdWJzdHJpbmc8L2Z1bmN0aW9uPiAoIDxwYXJhbWV0 ZXI+c291cmNlPC9wYXJhbWV0ZXI+IDx0eXBlPmJ5dGVhPC90eXBlPiA8b3B0aW9uYWw+IDxsaXRl cmFsPkZST008L2xpdGVyYWw+IDxwYXJhbWV0ZXI+c3RhcnQ8L3BhcmFtZXRlcj4gPHR5cGU+aW50 ZWdlcjwvdHlwZT4gPC9vcHRpb25hbD4gPG9wdGlvbmFsPiA8bGl0ZXJhbD5GT1I8L2xpdGVyYWw+ IDxwYXJhbWV0ZXI+Y291bnQ8L3BhcmFtZXRlcj4gPHR5cGU+aW50ZWdlcjwvdHlwZT4gPC9vcHRp b25hbD4gKQogICAgICAgICA8cmV0dXJudmFsdWU+Ynl0ZWE8L3JldHVybnZhbHVlPgogICAgICAg IDwvcGFyYT4KICAgICAgICA8cGFyYT4KLSAgICAgICAgRXh0cmFjdHMgdGhlIHN1YnN0cmluZyBv ZiA8cGFyYW1ldGVyPmJ5dGVzPC9wYXJhbWV0ZXI+IHN0YXJ0aW5nIGF0CisgICAgICAgIEV4dHJh Y3RzIHRoZSBzdWJzdHJpbmcgb2YgPHBhcmFtZXRlcj5zb3VyY2U8L3BhcmFtZXRlcj4gc3RhcnRp bmcgYXQKICAgICAgICAgdGhlIDxwYXJhbWV0ZXI+c3RhcnQ8L3BhcmFtZXRlcj4ndGggYnl0ZSBp ZiB0aGF0IGlzIHNwZWNpZmllZCwKICAgICAgICAgYW5kIHN0b3BwaW5nIGFmdGVyIDxwYXJhbWV0 ZXI+Y291bnQ8L3BhcmFtZXRlcj4gYnl0ZXMgaWYgdGhhdCBpcwogICAgICAgICBzcGVjaWZpZWQu ICBQcm92aWRlIGF0IGxlYXN0IG9uZSBvZiA8cGFyYW1ldGVyPnN0YXJ0PC9wYXJhbWV0ZXI+CkBA IC0yMTYsNiArMjE2LDI2IEBACiAgICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgICA8L3Jvdz4K IAorICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnkgcm9sZT0iZnVuY190YWJsZV9lbnRyeSI+PHBh cmEgcm9sZT0iZnVuY19zaWduYXR1cmUiPgorICAgICAgICA8aW5kZXh0ZXJtPgorICAgICAgICAg PHByaW1hcnk+c3Vic3RyaW5nPC9wcmltYXJ5PgorICAgICAgICA8L2luZGV4dGVybT4KKyAgICAg ICAgPGZ1bmN0aW9uPnN1YnN0cmluZzwvZnVuY3Rpb24+ICggPHBhcmFtZXRlcj5zb3VyY2U8L3Bh cmFtZXRlcj4gPHR5cGU+Ynl0ZWE8L3R5cGU+LCA8cGFyYW1ldGVyPnN0YXJ0PC9wYXJhbWV0ZXI+ IDx0eXBlPmludGVnZXI8L3R5cGU+IDxvcHRpb25hbD4sIDxwYXJhbWV0ZXI+Y291bnQ8L3BhcmFt ZXRlcj4gPHR5cGU+aW50ZWdlcjwvdHlwZT4gPC9vcHRpb25hbD4gKQorICAgICAgICA8cmV0dXJu dmFsdWU+Ynl0ZWE8L3JldHVybnZhbHVlPgorICAgICAgIDwvcGFyYT4KKyAgICAgICA8cGFyYT4K KyAgICAgICAgRXh0cmFjdHMgdGhlIHN1YnN0cmluZyBvZiA8cGFyYW1ldGVyPnNvdXJjZTwvcGFy YW1ldGVyPiBzdGFydGluZyBhdAorICAgICAgICB0aGUgPHBhcmFtZXRlcj5zdGFydDwvcGFyYW1l dGVyPid0aCBieXRlLAorICAgICAgICBhbmQgc3RvcHBpbmcgYWZ0ZXIgPHBhcmFtZXRlcj5jb3Vu dDwvcGFyYW1ldGVyPiBieXRlcyBpZiB0aGF0IGlzCisgICAgICAgIHNwZWNpZmllZC4KKyAgICAg ICA8L3BhcmE+CisgICAgICAgPHBhcmE+CisgICAgICAgIDxsaXRlcmFsPnN1YnN0cmluZyhzb3Vy Y2U9PidceDEyMzQ1Njc4OTAnOjpieXRlYSwgc3RhcnQ9PjMsIGNvdW50PT4yKTwvbGl0ZXJhbD4K KyAgICAgICAgPHJldHVybnZhbHVlPlx4NTY3ODwvcmV0dXJudmFsdWU+CisgICAgICAgPC9wYXJh PjwvZW50cnk+CisgICAgICA8L3Jvdz4KKwogICAgICAgPHJvdz4KICAgICAgICA8ZW50cnkgcm9s ZT0iZnVuY190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iZnVuY19zaWduYXR1cmUiPgogICAgICAg ICA8aW5kZXh0ZXJtPgpAQCAtNTc5LDcgKzU5OSw3IEBACiAgICAgICAgIHRoZSA8cGFyYW1ldGVy PnN0YXJ0PC9wYXJhbWV0ZXI+J3RoIGJ5dGUsCiAgICAgICAgIGFuZCBleHRlbmRpbmcgZm9yIDxw YXJhbWV0ZXI+Y291bnQ8L3BhcmFtZXRlcj4gYnl0ZXMgaWYgdGhhdCBpcwogICAgICAgICBzcGVj aWZpZWQuICAoU2FtZQotICAgICAgICBhcyA8bGl0ZXJhbD5zdWJzdHJpbmcoPHBhcmFtZXRlcj5i eXRlczwvcGFyYW1ldGVyPgorICAgICAgICBhcyA8bGl0ZXJhbD5zdWJzdHJpbmcoPHBhcmFtZXRl cj5zb3VyY2U8L3BhcmFtZXRlcj4KICAgICAgICAgZnJvbSA8cGFyYW1ldGVyPnN0YXJ0PC9wYXJh bWV0ZXI+CiAgICAgICAgIGZvciA8cGFyYW1ldGVyPmNvdW50PC9wYXJhbWV0ZXI+KTwvbGl0ZXJh bD4uKQogICAgICAgIDwvcGFyYT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9mdW5jL2Z1bmMt Yml0c3RyaW5nLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLWJpdHN0cmluZy5zZ21sCmlu ZGV4IGYwM2RkNjNhZmNjLi45ZjVkY2I2ZmYyYSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2Z1 bmMvZnVuYy1iaXRzdHJpbmcuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLWJpdHN0 cmluZy5zZ21sCkBAIC0yNzksMTEgKzI3OSwzMSBAQAogICAgICAgICA8aW5kZXh0ZXJtPgogICAg ICAgICAgPHByaW1hcnk+c3Vic3RyaW5nPC9wcmltYXJ5PgogICAgICAgICA8L2luZGV4dGVybT4K LSAgICAgICAgPGZ1bmN0aW9uPnN1YnN0cmluZzwvZnVuY3Rpb24+ICggPHBhcmFtZXRlcj5iaXRz PC9wYXJhbWV0ZXI+IDx0eXBlPmJpdDwvdHlwZT4gPG9wdGlvbmFsPiA8bGl0ZXJhbD5GUk9NPC9s aXRlcmFsPiA8cGFyYW1ldGVyPnN0YXJ0PC9wYXJhbWV0ZXI+IDx0eXBlPmludGVnZXI8L3R5cGU+ IDwvb3B0aW9uYWw+IDxvcHRpb25hbD4gPGxpdGVyYWw+Rk9SPC9saXRlcmFsPiA8cGFyYW1ldGVy PmNvdW50PC9wYXJhbWV0ZXI+IDx0eXBlPmludGVnZXI8L3R5cGU+IDwvb3B0aW9uYWw+ICkKKyAg ICAgICAgPGZ1bmN0aW9uPnN1YnN0cmluZzwvZnVuY3Rpb24+ICggPHBhcmFtZXRlcj5zb3VyY2U8 L3BhcmFtZXRlcj4gPHR5cGU+Yml0PC90eXBlPiwgPHBhcmFtZXRlcj5zdGFydDwvcGFyYW1ldGVy PiA8dHlwZT5pbnRlZ2VyPC90eXBlPiA8b3B0aW9uYWw+LCA8cGFyYW1ldGVyPmNvdW50PC9wYXJh bWV0ZXI+IDx0eXBlPmludGVnZXI8L3R5cGU+IDwvb3B0aW9uYWw+ICkKICAgICAgICAgPHJldHVy bnZhbHVlPmJpdDwvcmV0dXJudmFsdWU+CiAgICAgICAgPC9wYXJhPgogICAgICAgIDxwYXJhPgot ICAgICAgICBFeHRyYWN0cyB0aGUgc3Vic3RyaW5nIG9mIDxwYXJhbWV0ZXI+Yml0czwvcGFyYW1l dGVyPiBzdGFydGluZyBhdAorICAgICAgICBFeHRyYWN0cyB0aGUgc3Vic3RyaW5nIG9mIDxwYXJh bWV0ZXI+c291cmNlPC9wYXJhbWV0ZXI+IHN0YXJ0aW5nIGF0CisgICAgICAgIHRoZSA8cGFyYW1l dGVyPnN0YXJ0PC9wYXJhbWV0ZXI+J3RoIGJpdCwKKyAgICAgICAgYW5kIHN0b3BwaW5nIGFmdGVy IDxwYXJhbWV0ZXI+Y291bnQ8L3BhcmFtZXRlcj4gYml0cyBpZiB0aGF0IGlzCisgICAgICAgIHNw ZWNpZmllZC4KKyAgICAgICA8L3BhcmE+CisgICAgICAgPHBhcmE+CisgICAgICAgIDxsaXRlcmFs PnN1YnN0cmluZyhzb3VyY2U9PkInMTEwMDEwMTExMTExJywgc3RhcnQ9PjMsIGNvdW50PT4yKTwv bGl0ZXJhbD4KKyAgICAgICAgPHJldHVybnZhbHVlPjAwPC9yZXR1cm52YWx1ZT4KKyAgICAgICA8 L3BhcmE+PC9lbnRyeT4KKyAgICAgIDwvcm93PgorCisgICAgICA8cm93PgorICAgICAgIDxlbnRy eSByb2xlPSJmdW5jX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJmdW5jX3NpZ25hdHVyZSI+Cisg ICAgICAgIDxpbmRleHRlcm0+CisgICAgICAgICA8cHJpbWFyeT5zdWJzdHJpbmc8L3ByaW1hcnk+ CisgICAgICAgIDwvaW5kZXh0ZXJtPgorICAgICAgICA8ZnVuY3Rpb24+c3Vic3RyaW5nPC9mdW5j dGlvbj4gKCA8cGFyYW1ldGVyPnNvdXJjZTwvcGFyYW1ldGVyPiA8dHlwZT5iaXQ8L3R5cGU+IDxv cHRpb25hbD4gPGxpdGVyYWw+RlJPTTwvbGl0ZXJhbD4gPHBhcmFtZXRlcj5zdGFydDwvcGFyYW1l dGVyPiA8dHlwZT5pbnRlZ2VyPC90eXBlPiA8L29wdGlvbmFsPiA8b3B0aW9uYWw+IDxsaXRlcmFs PkZPUjwvbGl0ZXJhbD4gPHBhcmFtZXRlcj5jb3VudDwvcGFyYW1ldGVyPiA8dHlwZT5pbnRlZ2Vy PC90eXBlPiA8L29wdGlvbmFsPiApCisgICAgICAgIDxyZXR1cm52YWx1ZT5iaXQ8L3JldHVybnZh bHVlPgorICAgICAgIDwvcGFyYT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgRXh0cmFjdHMgdGhl IHN1YnN0cmluZyBvZiA8cGFyYW1ldGVyPnNvdXJjZTwvcGFyYW1ldGVyPiBzdGFydGluZyBhdAog ICAgICAgICB0aGUgPHBhcmFtZXRlcj5zdGFydDwvcGFyYW1ldGVyPid0aCBiaXQgaWYgdGhhdCBp cyBzcGVjaWZpZWQsCiAgICAgICAgIGFuZCBzdG9wcGluZyBhZnRlciA8cGFyYW1ldGVyPmNvdW50 PC9wYXJhbWV0ZXI+IGJpdHMgaWYgdGhhdCBpcwogICAgICAgICBzcGVjaWZpZWQuICBQcm92aWRl IGF0IGxlYXN0IG9uZSBvZiA8cGFyYW1ldGVyPnN0YXJ0PC9wYXJhbWV0ZXI+CmRpZmYgLS1naXQg YS9kb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLW1hdGNoaW5nLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZnVu Yy9mdW5jLW1hdGNoaW5nLnNnbWwKaW5kZXggZWJlMGIyMmM4ZjYuLmVhNGMyNTQ2Zjg1IDEwMDY0 NAotLS0gYS9kb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLW1hdGNoaW5nLnNnbWwKKysrIGIvZG9jL3Ny Yy9zZ21sL2Z1bmMvZnVuYy1tYXRjaGluZy5zZ21sCkBAIC0yMzQsMTMgKzIzNCwxMyBAQAogICAg PC9pbmRleHRlcm0+CiAKIDxzeW5vcHNpcz4KLTxyZXBsYWNlYWJsZT5zdHJpbmc8L3JlcGxhY2Vh YmxlPiBTSU1JTEFSIFRPIDxyZXBsYWNlYWJsZT5wYXR0ZXJuPC9yZXBsYWNlYWJsZT4gPG9wdGlv bmFsPkVTQ0FQRSA8cmVwbGFjZWFibGU+ZXNjYXBlLWNoYXJhY3RlcjwvcmVwbGFjZWFibGU+PC9v cHRpb25hbD4KLTxyZXBsYWNlYWJsZT5zdHJpbmc8L3JlcGxhY2VhYmxlPiBOT1QgU0lNSUxBUiBU TyA8cmVwbGFjZWFibGU+cGF0dGVybjwvcmVwbGFjZWFibGU+IDxvcHRpb25hbD5FU0NBUEUgPHJl cGxhY2VhYmxlPmVzY2FwZS1jaGFyYWN0ZXI8L3JlcGxhY2VhYmxlPjwvb3B0aW9uYWw+Cis8cmVw bGFjZWFibGU+c291cmNlPC9yZXBsYWNlYWJsZT4gU0lNSUxBUiBUTyA8cmVwbGFjZWFibGU+cGF0 dGVybjwvcmVwbGFjZWFibGU+IDxvcHRpb25hbD5FU0NBUEUgPHJlcGxhY2VhYmxlPmVzY2FwZS1j aGFyYWN0ZXI8L3JlcGxhY2VhYmxlPjwvb3B0aW9uYWw+Cis8cmVwbGFjZWFibGU+c291cmNlPC9y ZXBsYWNlYWJsZT4gTk9UIFNJTUlMQVIgVE8gPHJlcGxhY2VhYmxlPnBhdHRlcm48L3JlcGxhY2Vh YmxlPiA8b3B0aW9uYWw+RVNDQVBFIDxyZXBsYWNlYWJsZT5lc2NhcGUtY2hhcmFjdGVyPC9yZXBs YWNlYWJsZT48L29wdGlvbmFsPgogPC9zeW5vcHNpcz4KIAogICAgPHBhcmE+CiAgICAgVGhlIDxm dW5jdGlvbj5TSU1JTEFSIFRPPC9mdW5jdGlvbj4gb3BlcmF0b3IgcmV0dXJucyB0cnVlIG9yCi0g ICAgZmFsc2UgZGVwZW5kaW5nIG9uIHdoZXRoZXIgaXRzIHBhdHRlcm4gbWF0Y2hlcyB0aGUgZ2l2 ZW4gc3RyaW5nLgorICAgIGZhbHNlIGRlcGVuZGluZyBvbiB3aGV0aGVyIGl0cyBwYXR0ZXJuIG1h dGNoZXMgdGhlIGdpdmVuIHN0cmluZyAodGhlIDxyZXBsYWNlYWJsZT5zb3VyY2U8L3JlcGxhY2Vh YmxlPikuCiAgICAgSXQgaXMgc2ltaWxhciB0byA8ZnVuY3Rpb24+TElLRTwvZnVuY3Rpb24+LCBl eGNlcHQgdGhhdCBpdAogICAgIGludGVycHJldHMgdGhlIHBhdHRlcm4gdXNpbmcgdGhlIFNRTCBz dGFuZGFyZCdzIGRlZmluaXRpb24gb2YgYQogICAgIHJlZ3VsYXIgZXhwcmVzc2lvbi4gIFNRTCBy ZWd1bGFyIGV4cHJlc3Npb25zIGFyZSBhIGN1cmlvdXMgY3Jvc3MKQEAgLTM2OSwxNSArMzY5LDE1 IEBACiAgICAgcmVndWxhciBleHByZXNzaW9uIHBhdHRlcm4uICBUaGUgZnVuY3Rpb24gY2FuIGJl IHdyaXR0ZW4gYWNjb3JkaW5nCiAgICAgdG8gc3RhbmRhcmQgU1FMIHN5bnRheDoKIDxzeW5vcHNp cz4KLXN1YnN0cmluZyg8cmVwbGFjZWFibGU+c3RyaW5nPC9yZXBsYWNlYWJsZT4gc2ltaWxhciA8 cmVwbGFjZWFibGU+cGF0dGVybjwvcmVwbGFjZWFibGU+IGVzY2FwZSA8cmVwbGFjZWFibGU+ZXNj YXBlLWNoYXJhY3RlcjwvcmVwbGFjZWFibGU+KQorc3Vic3RyaW5nKDxyZXBsYWNlYWJsZT5zb3Vy Y2U8L3JlcGxhY2VhYmxlPiBzaW1pbGFyIDxyZXBsYWNlYWJsZT5wYXR0ZXJuPC9yZXBsYWNlYWJs ZT4gZXNjYXBlIDxyZXBsYWNlYWJsZT5lc2NhcGUtY2hhcmFjdGVyPC9yZXBsYWNlYWJsZT4pCiA8 L3N5bm9wc2lzPgogICAgIG9yIHVzaW5nIHRoZSBub3cgb2Jzb2xldGUgU1FMOjE5OTkgc3ludGF4 OgogPHN5bm9wc2lzPgotc3Vic3RyaW5nKDxyZXBsYWNlYWJsZT5zdHJpbmc8L3JlcGxhY2VhYmxl PiBmcm9tIDxyZXBsYWNlYWJsZT5wYXR0ZXJuPC9yZXBsYWNlYWJsZT4gZm9yIDxyZXBsYWNlYWJs ZT5lc2NhcGUtY2hhcmFjdGVyPC9yZXBsYWNlYWJsZT4pCitzdWJzdHJpbmcoPHJlcGxhY2VhYmxl PnNvdXJjZTwvcmVwbGFjZWFibGU+IGZyb20gPHJlcGxhY2VhYmxlPnBhdHRlcm48L3JlcGxhY2Vh YmxlPiBmb3IgPHJlcGxhY2VhYmxlPmVzY2FwZS1jaGFyYWN0ZXI8L3JlcGxhY2VhYmxlPikKIDwv c3lub3BzaXM+CiAgICAgb3IgYXMgYSBwbGFpbiB0aHJlZS1hcmd1bWVudCBmdW5jdGlvbjoKIDxz eW5vcHNpcz4KLXN1YnN0cmluZyg8cmVwbGFjZWFibGU+c3RyaW5nPC9yZXBsYWNlYWJsZT4sIDxy ZXBsYWNlYWJsZT5wYXR0ZXJuPC9yZXBsYWNlYWJsZT4sIDxyZXBsYWNlYWJsZT5lc2NhcGUtY2hh cmFjdGVyPC9yZXBsYWNlYWJsZT4pCitzdWJzdHJpbmcoPHJlcGxhY2VhYmxlPnNvdXJjZTwvcmVw bGFjZWFibGU+LCA8cmVwbGFjZWFibGU+cGF0dGVybjwvcmVwbGFjZWFibGU+LCA8cmVwbGFjZWFi bGU+ZXNjYXBlPC9yZXBsYWNlYWJsZT4pCiA8L3N5bm9wc2lzPgogICAgIEFzIHdpdGggPGxpdGVy YWw+U0lNSUxBUiBUTzwvbGl0ZXJhbD4sIHRoZQogICAgIHNwZWNpZmllZCBwYXR0ZXJuIG11c3Qg bWF0Y2ggdGhlIGVudGlyZSBkYXRhIHN0cmluZywgb3IgZWxzZSB0aGUKQEAgLTU4MSwxMSArNTgx LDE3IEBAIHN1YnN0cmluZygnZm9vYmFyJyBzaW1pbGFyICcjIm9fYiMiJScgZXNjYXBlICcjJykg ICAgPGxpbmVhbm5vdGF0aW9uPk5VTEw8L2xpbmVhCiAgICAgPC9wYXJhPgogCiAgICAgPHBhcmE+ Ci0gICAgIFRoZSA8ZnVuY3Rpb24+c3Vic3RyaW5nPC9mdW5jdGlvbj4gZnVuY3Rpb24gd2l0aCB0 d28gcGFyYW1ldGVycywKLSAgICAgPGZ1bmN0aW9uPnN1YnN0cmluZyg8cmVwbGFjZWFibGU+c3Ry aW5nPC9yZXBsYWNlYWJsZT4gZnJvbQotICAgICA8cmVwbGFjZWFibGU+cGF0dGVybjwvcmVwbGFj ZWFibGU+KTwvZnVuY3Rpb24+LCBwcm92aWRlcyBleHRyYWN0aW9uIG9mIGEKLSAgICAgc3Vic3Ry aW5nCi0gICAgIHRoYXQgbWF0Y2hlcyBhIFBPU0lYIHJlZ3VsYXIgZXhwcmVzc2lvbiBwYXR0ZXJu LiAgSXQgcmV0dXJucyBudWxsIGlmCisgICAgIFRoZSA8ZnVuY3Rpb24+c3Vic3RyaW5nPC9mdW5j dGlvbj4gZnVuY3Rpb24gd2l0aCB0d28gcGFyYW1ldGVycyBwcm92aWRlcyBleHRyYWN0aW9uIG9m IGEKKyAgICAgc3Vic3RyaW5nIHRoYXQgbWF0Y2hlcyBhIDxhY3JvbnltPlBPU0lYPC9hY3Jvbnlt PiByZWd1bGFyIGV4cHJlc3Npb24gcGF0dGVybi4KKyAgICAgVGhlIGZ1bmN0aW9uIGNhbiBiZSB3 cml0dGVuIGFjY29yZGluZyB0byBzdGFuZGFyZCA8YWNyb255bT5TUUw8L2Fjcm9ueW0+IHN5bnRh eDoKKzxzeW5vcHNpcz4KK3N1YnN0cmluZyg8cmVwbGFjZWFibGU+c291cmNlPC9yZXBsYWNlYWJs ZT4gRlJPTSA8cmVwbGFjZWFibGU+cGF0dGVybjwvcmVwbGFjZWFibGU+KQorPC9zeW5vcHNpcz4K KyAgICAgSXQgY2FuIGFsc28gd3JpdHRlbiBhcyBhIHBsYWluIHR3by1hcmd1bWVudCBmdW5jdGlv bjoKKzxzeW5vcHNpcz4KK3N1YnN0cmluZyg8cmVwbGFjZWFibGU+c291cmNlPC9yZXBsYWNlYWJs ZT4sIDxyZXBsYWNlYWJsZT5wYXR0ZXJuPC9yZXBsYWNlYWJsZT4pCis8L3N5bm9wc2lzPgorICAg ICBJdCByZXR1cm5zIG51bGwgaWYKICAgICAgdGhlcmUgaXMgbm8gbWF0Y2gsIG90aGVyd2lzZSB0 aGUgZmlyc3QgcG9ydGlvbiBvZiB0aGUgdGV4dCB0aGF0IG1hdGNoZWQgdGhlCiAgICAgIHBhdHRl cm4uICBCdXQgaWYgdGhlIHBhdHRlcm4gY29udGFpbnMgYW55IHBhcmVudGhlc2VzLCB0aGUgcG9y dGlvbgogICAgICBvZiB0aGUgdGV4dCB0aGF0IG1hdGNoZWQgdGhlIGZpcnN0IHBhcmVudGhlc2l6 ZWQgc3ViZXhwcmVzc2lvbiAodGhlCkBAIC02MDAsOCArNjA2LDggQEAgc3Vic3RyaW5nKCdmb29i YXInIHNpbWlsYXIgJyMib19iIyIlJyBlc2NhcGUgJyMnKSAgICA8bGluZWFubm90YXRpb24+TlVM TDwvbGluZWEKICAgIDxwYXJhPgogICAgIFNvbWUgZXhhbXBsZXM6CiA8cHJvZ3JhbWxpc3Rpbmc+ Ci1zdWJzdHJpbmcoJ2Zvb2JhcicgZnJvbSAnby5iJykgICAgIDxsaW5lYW5ub3RhdGlvbj5vb2I8 L2xpbmVhbm5vdGF0aW9uPgotc3Vic3RyaW5nKCdmb29iYXInIGZyb20gJ28oLiliJykgICA8bGlu ZWFubm90YXRpb24+bzwvbGluZWFubm90YXRpb24+CitzdWJzdHJpbmcoc291cmNlPT4nZm9vYmFy JywgcGF0dGVybj0+J28uYicpICAgICA8bGluZWFubm90YXRpb24+b29iPC9saW5lYW5ub3RhdGlv bj4KK3N1YnN0cmluZygnZm9vYmFyJyBmcm9tICdvKC4pYicpICAgICAgICAgICAgICAgIDxsaW5l YW5ub3RhdGlvbj5vPC9saW5lYW5ub3RhdGlvbj4KIDwvcHJvZ3JhbWxpc3Rpbmc+CiAgICA8L3Bh cmE+CiAKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9mdW5jL2Z1bmMtc3RyaW5nLnNnbWwgYi9k b2Mvc3JjL3NnbWwvZnVuYy9mdW5jLXN0cmluZy5zZ21sCmluZGV4IGY3ZDAzZWRhMmJjLi4zOTg3 MjE4MWIxNSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2Z1bmMvZnVuYy1zdHJpbmcuc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLXN0cmluZy5zZ21sCkBAIC00MDAsMTEgKzQwMCwx MSBAQAogICAgICAgICA8aW5kZXh0ZXJtPgogICAgICAgICAgPHByaW1hcnk+c3Vic3RyaW5nPC9w cmltYXJ5PgogICAgICAgICA8L2luZGV4dGVybT4KLSAgICAgICAgPGZ1bmN0aW9uPnN1YnN0cmlu ZzwvZnVuY3Rpb24+ICggPHBhcmFtZXRlcj5zdHJpbmc8L3BhcmFtZXRlcj4gPHR5cGU+dGV4dDwv dHlwZT4gPG9wdGlvbmFsPiA8bGl0ZXJhbD5GUk9NPC9saXRlcmFsPiA8cGFyYW1ldGVyPnN0YXJ0 PC9wYXJhbWV0ZXI+IDx0eXBlPmludGVnZXI8L3R5cGU+IDwvb3B0aW9uYWw+IDxvcHRpb25hbD4g PGxpdGVyYWw+Rk9SPC9saXRlcmFsPiA8cGFyYW1ldGVyPmNvdW50PC9wYXJhbWV0ZXI+IDx0eXBl PmludGVnZXI8L3R5cGU+IDwvb3B0aW9uYWw+ICkKKyAgICAgICAgPGZ1bmN0aW9uPnN1YnN0cmlu ZzwvZnVuY3Rpb24+ICggPHBhcmFtZXRlcj5zb3VyY2U8L3BhcmFtZXRlcj4gPHR5cGU+dGV4dDwv dHlwZT4gPG9wdGlvbmFsPiA8bGl0ZXJhbD5GUk9NPC9saXRlcmFsPiA8cGFyYW1ldGVyPnN0YXJ0 PC9wYXJhbWV0ZXI+IDx0eXBlPmludGVnZXI8L3R5cGU+IDwvb3B0aW9uYWw+IDxvcHRpb25hbD4g PGxpdGVyYWw+Rk9SPC9saXRlcmFsPiA8cGFyYW1ldGVyPmNvdW50PC9wYXJhbWV0ZXI+IDx0eXBl PmludGVnZXI8L3R5cGU+IDwvb3B0aW9uYWw+ICkKICAgICAgICAgPHJldHVybnZhbHVlPnRleHQ8 L3JldHVybnZhbHVlPgogICAgICAgIDwvcGFyYT4KICAgICAgICA8cGFyYT4KLSAgICAgICAgRXh0 cmFjdHMgdGhlIHN1YnN0cmluZyBvZiA8cGFyYW1ldGVyPnN0cmluZzwvcGFyYW1ldGVyPiBzdGFy dGluZyBhdAorICAgICAgICBFeHRyYWN0cyB0aGUgc3Vic3RyaW5nIG9mIDxwYXJhbWV0ZXI+c291 cmNlPC9wYXJhbWV0ZXI+IHN0YXJ0aW5nIGF0CiAgICAgICAgIHRoZSA8cGFyYW1ldGVyPnN0YXJ0 PC9wYXJhbWV0ZXI+J3RoIGNoYXJhY3RlciBpZiB0aGF0IGlzIHNwZWNpZmllZCwKICAgICAgICAg YW5kIHN0b3BwaW5nIGFmdGVyIDxwYXJhbWV0ZXI+Y291bnQ8L3BhcmFtZXRlcj4gY2hhcmFjdGVy cyBpZiB0aGF0IGlzCiAgICAgICAgIHNwZWNpZmllZC4gIFByb3ZpZGUgYXQgbGVhc3Qgb25lIG9m IDxwYXJhbWV0ZXI+c3RhcnQ8L3BhcmFtZXRlcj4KQEAgLTQyNiw3ICs0MjYsNyBAQAogCiAgICAg ICA8cm93PgogICAgICAgIDxlbnRyeSByb2xlPSJmdW5jX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xl PSJmdW5jX3NpZ25hdHVyZSI+Ci0gICAgICAgIDxmdW5jdGlvbj5zdWJzdHJpbmc8L2Z1bmN0aW9u PiAoIDxwYXJhbWV0ZXI+c3RyaW5nPC9wYXJhbWV0ZXI+IDx0eXBlPnRleHQ8L3R5cGU+IDxsaXRl cmFsPkZST008L2xpdGVyYWw+IDxwYXJhbWV0ZXI+cGF0dGVybjwvcGFyYW1ldGVyPiA8dHlwZT50 ZXh0PC90eXBlPiApCisgICAgICAgIDxmdW5jdGlvbj5zdWJzdHJpbmc8L2Z1bmN0aW9uPiAoIDxw YXJhbWV0ZXI+c291cmNlPC9wYXJhbWV0ZXI+IDx0eXBlPnRleHQ8L3R5cGU+IDxsaXRlcmFsPkZS T008L2xpdGVyYWw+IDxwYXJhbWV0ZXI+cGF0dGVybjwvcGFyYW1ldGVyPiA8dHlwZT50ZXh0PC90 eXBlPiApCiAgICAgICAgIDxyZXR1cm52YWx1ZT50ZXh0PC9yZXR1cm52YWx1ZT4KICAgICAgICA8 L3BhcmE+CiAgICAgICAgPHBhcmE+CkBAIC00NDEsMTEgKzQ0MSwxMSBAQAogCiAgICAgICA8cm93 PgogICAgICAgIDxlbnRyeSByb2xlPSJmdW5jX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJmdW5j X3NpZ25hdHVyZSI+Ci0gICAgICAgIDxmdW5jdGlvbj5zdWJzdHJpbmc8L2Z1bmN0aW9uPiAoIDxw YXJhbWV0ZXI+c3RyaW5nPC9wYXJhbWV0ZXI+IDx0eXBlPnRleHQ8L3R5cGU+IDxsaXRlcmFsPlNJ TUlMQVI8L2xpdGVyYWw+IDxwYXJhbWV0ZXI+cGF0dGVybjwvcGFyYW1ldGVyPiA8dHlwZT50ZXh0 PC90eXBlPiA8bGl0ZXJhbD5FU0NBUEU8L2xpdGVyYWw+IDxwYXJhbWV0ZXI+ZXNjYXBlPC9wYXJh bWV0ZXI+IDx0eXBlPnRleHQ8L3R5cGU+ICkKKyAgICAgICAgPGZ1bmN0aW9uPnN1YnN0cmluZzwv ZnVuY3Rpb24+ICggPHBhcmFtZXRlcj5zb3VyY2U8L3BhcmFtZXRlcj4gPHR5cGU+dGV4dDwvdHlw ZT4gPGxpdGVyYWw+U0lNSUxBUjwvbGl0ZXJhbD4gPHBhcmFtZXRlcj5wYXR0ZXJuPC9wYXJhbWV0 ZXI+IDx0eXBlPnRleHQ8L3R5cGU+IDxsaXRlcmFsPkVTQ0FQRTwvbGl0ZXJhbD4gPHBhcmFtZXRl cj5lc2NhcGU8L3BhcmFtZXRlcj4gPHR5cGU+dGV4dDwvdHlwZT4gKQogICAgICAgICA8cmV0dXJu dmFsdWU+dGV4dDwvcmV0dXJudmFsdWU+CiAgICAgICAgPC9wYXJhPgogICAgICAgIDxwYXJhIHJv bGU9ImZ1bmNfc2lnbmF0dXJlIj4KLSAgICAgICAgPGZ1bmN0aW9uPnN1YnN0cmluZzwvZnVuY3Rp b24+ICggPHBhcmFtZXRlcj5zdHJpbmc8L3BhcmFtZXRlcj4gPHR5cGU+dGV4dDwvdHlwZT4gPGxp dGVyYWw+RlJPTTwvbGl0ZXJhbD4gPHBhcmFtZXRlcj5wYXR0ZXJuPC9wYXJhbWV0ZXI+IDx0eXBl PnRleHQ8L3R5cGU+IDxsaXRlcmFsPkZPUjwvbGl0ZXJhbD4gPHBhcmFtZXRlcj5lc2NhcGU8L3Bh cmFtZXRlcj4gPHR5cGU+dGV4dDwvdHlwZT4gKQorICAgICAgICA8ZnVuY3Rpb24+c3Vic3RyaW5n PC9mdW5jdGlvbj4gKCA8cGFyYW1ldGVyPnNvdXJjZTwvcGFyYW1ldGVyPiA8dHlwZT50ZXh0PC90 eXBlPiA8bGl0ZXJhbD5GUk9NPC9saXRlcmFsPiA8cGFyYW1ldGVyPnBhdHRlcm48L3BhcmFtZXRl cj4gPHR5cGU+dGV4dDwvdHlwZT4gPGxpdGVyYWw+Rk9SPC9saXRlcmFsPiA8cGFyYW1ldGVyPmVz Y2FwZTwvcGFyYW1ldGVyPiA8dHlwZT50ZXh0PC90eXBlPiApCiAgICAgICAgIDxyZXR1cm52YWx1 ZT50ZXh0PC9yZXR1cm52YWx1ZT4KICAgICAgICA8L3BhcmE+CiAgICAgICAgPHBhcmE+CkBAIC0x Mzk4LDcgKzEzOTgsNyBAQAogICAgICAgICB0aGUgPHBhcmFtZXRlcj5zdGFydDwvcGFyYW1ldGVy Pid0aCBjaGFyYWN0ZXIsCiAgICAgICAgIGFuZCBleHRlbmRpbmcgZm9yIDxwYXJhbWV0ZXI+Y291 bnQ8L3BhcmFtZXRlcj4gY2hhcmFjdGVycyBpZiB0aGF0IGlzCiAgICAgICAgIHNwZWNpZmllZC4g IChTYW1lCi0gICAgICAgIGFzIDxsaXRlcmFsPnN1YnN0cmluZyg8cGFyYW1ldGVyPnN0cmluZzwv cGFyYW1ldGVyPgorICAgICAgICBhcyA8bGl0ZXJhbD5zdWJzdHJpbmcoPHBhcmFtZXRlcj5zb3Vy Y2U8L3BhcmFtZXRlcj4KICAgICAgICAgZnJvbSA8cGFyYW1ldGVyPnN0YXJ0PC9wYXJhbWV0ZXI+ CiAgICAgICAgIGZvciA8cGFyYW1ldGVyPmNvdW50PC9wYXJhbWV0ZXI+KTwvbGl0ZXJhbD4uKQog ICAgICAgIDwvcGFyYT4KQEAgLTE0MTIsNiArMTQxMiw1NyBAQAogICAgICAgIDwvcGFyYT48L2Vu dHJ5PgogICAgICAgPC9yb3c+CiAKKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5IHJvbGU9ImZ1 bmNfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImZ1bmNfc2lnbmF0dXJlIj4KKyAgICAgICAgPGlu ZGV4dGVybT4KKyAgICAgICAgIDxwcmltYXJ5PnN1YnN0cmluZzwvcHJpbWFyeT4KKyAgICAgICAg PC9pbmRleHRlcm0+CisgICAgICAgIDxmdW5jdGlvbj5zdWJzdHJpbmc8L2Z1bmN0aW9uPiAoIDxw YXJhbWV0ZXI+c291cmNlPC9wYXJhbWV0ZXI+IDx0eXBlPnRleHQ8L3R5cGU+LCA8cGFyYW1ldGVy PnN0YXJ0PC9wYXJhbWV0ZXI+IDx0eXBlPmludGVnZXI8L3R5cGU+IDxvcHRpb25hbD4sIDxwYXJh bWV0ZXI+Y291bnQ8L3BhcmFtZXRlcj4gPHR5cGU+aW50ZWdlcjwvdHlwZT4gPC9vcHRpb25hbD4g KQorICAgICAgICA8cmV0dXJudmFsdWU+dGV4dDwvcmV0dXJudmFsdWU+CisgICAgICAgPC9wYXJh PgorICAgICAgIDxwYXJhPgorICAgICAgICBFeHRyYWN0cyB0aGUgc3Vic3RyaW5nIG9mIDxwYXJh bWV0ZXI+c291cmNlPC9wYXJhbWV0ZXI+IHN0YXJ0aW5nIGF0CisgICAgICAgIHRoZSA8cGFyYW1l dGVyPnN0YXJ0PC9wYXJhbWV0ZXI+J3RoIGNoYXJhY3RlciwKKyAgICAgICAgYW5kIHN0b3BwaW5n IGFmdGVyIDxwYXJhbWV0ZXI+Y291bnQ8L3BhcmFtZXRlcj4gY2hhcmFjdGVycyBpZiB0aGF0IGlz CisgICAgICAgIHNwZWNpZmllZC4KKyAgICAgICA8L3BhcmE+CisgICAgICAgPHBhcmE+CisgICAg ICAgIDxsaXRlcmFsPnN1YnN0cmluZyhzb3VyY2U9PidUaG9tYXMnLCBzdGFydD0+MiwgY291bnQ9 PjMpPC9saXRlcmFsPgorICAgICAgICA8cmV0dXJudmFsdWU+aG9tPC9yZXR1cm52YWx1ZT4KKyAg ICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgIDwvcm93PgorCisgICAgICA8cm93PgorICAgICAg IDxlbnRyeSByb2xlPSJmdW5jX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJmdW5jX3NpZ25hdHVy ZSI+CisgICAgICAgIDxmdW5jdGlvbj5zdWJzdHJpbmc8L2Z1bmN0aW9uPiAoIDxwYXJhbWV0ZXI+ c291cmNlPC9wYXJhbWV0ZXI+IDx0eXBlPnRleHQ8L3R5cGU+LCA8cGFyYW1ldGVyPnBhdHRlcm48 L3BhcmFtZXRlcj4gPHR5cGU+dGV4dDwvdHlwZT4sIDxwYXJhbWV0ZXI+ZXNjYXBlPC9wYXJhbWV0 ZXI+IDx0eXBlPnRleHQ8L3R5cGU+KQorICAgICAgICA8cmV0dXJudmFsdWU+dGV4dDwvcmV0dXJu dmFsdWU+CisgICAgICAgPC9wYXJhPgorICAgICAgIDxwYXJhPgorICAgICAgICBFeHRyYWN0cyB0 aGUgZmlyc3Qgc3Vic3RyaW5nIG1hdGNoaW5nIDxhY3JvbnltPlNRTDwvYWNyb255bT4gcmVndWxh ciBleHByZXNzaW9uOworICAgICAgICBzZWUgPHhyZWYgbGlua2VuZD0iZnVuY3Rpb25zLXNpbWls YXJ0by1yZWdleHAiLz4uCisgICAgICAgPC9wYXJhPgorICAgICAgIDxwYXJhPgorICAgICAgICA8 bGl0ZXJhbD5zdWJzdHJpbmcoJ1Rob21hcycsICclIyJvX2EjIl8nLCAnIycpPC9saXRlcmFsPgor ICAgICAgICA8cmV0dXJudmFsdWU+b21hPC9yZXR1cm52YWx1ZT4KKyAgICAgICA8L3BhcmE+PC9l bnRyeT4KKyAgICAgIDwvcm93PgorCisgICAgICA8cm93PgorICAgICAgIDxlbnRyeSByb2xlPSJm dW5jX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJmdW5jX3NpZ25hdHVyZSI+CisgICAgICAgIDxm dW5jdGlvbj5zdWJzdHJpbmc8L2Z1bmN0aW9uPiAoIDxwYXJhbWV0ZXI+c291cmNlPC9wYXJhbWV0 ZXI+IDx0eXBlPnRleHQ8L3R5cGU+LCA8cGFyYW1ldGVyPnBhdHRlcm48L3BhcmFtZXRlcj4gPHR5 cGU+dGV4dDwvdHlwZT4gKQorICAgICAgICA8cmV0dXJudmFsdWU+dGV4dDwvcmV0dXJudmFsdWU+ CisgICAgICAgPC9wYXJhPgorICAgICAgIDxwYXJhPgorICAgICAgICBFeHRyYWN0cyB0aGUgZmly c3Qgc3Vic3RyaW5nIG1hdGNoaW5nIDxhY3JvbnltPlBPU0lYPC9hY3JvbnltPiByZWd1bGFyIGV4 cHJlc3Npb247IHNlZQorICAgICAgICA8eHJlZiBsaW5rZW5kPSJmdW5jdGlvbnMtcG9zaXgtcmVn ZXhwIi8+LgorICAgICAgIDwvcGFyYT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgPGxpdGVyYWw+ c3Vic3RyaW5nKCdUaG9tYXMnLCAnLi4uJCcpPC9saXRlcmFsPgorICAgICAgICA8cmV0dXJudmFs dWU+bWFzPC9yZXR1cm52YWx1ZT4KKyAgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgIDwvcm93 PgorCisKICAgICAgIDxyb3c+CiAgICAgICAgPGVudHJ5IHJvbGU9ImZ1bmNfdGFibGVfZW50cnki PjxwYXJhIHJvbGU9ImZ1bmNfc2lnbmF0dXJlIj4KICAgICAgICAgPGluZGV4dGVybT4KZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX2Z1bmN0aW9ucy5zcWwgYi9zcmMvYmFj a2VuZC9jYXRhbG9nL3N5c3RlbV9mdW5jdGlvbnMuc3FsCmluZGV4IDJkOTQ2ZDZkOWU5Li5mMDg1 MGY5ZWY2NCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fZnVuY3Rpb25z LnNxbAorKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV9mdW5jdGlvbnMuc3FsCkBAIC00 Miw3ICs0Miw3IEBAIENSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHJwYWQodGV4dCwgaW50ZWdl cikKICBJTU1VVEFCTEUgUEFSQUxMRUwgU0FGRSBTVFJJQ1QgQ09TVCAxCiBSRVRVUk4gcnBhZCgk MSwgJDIsICcgJyk7CiAKLUNSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OICJzdWJzdHJpbmciKHRl eHQsIHRleHQsIHRleHQpCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiAic3Vic3RyaW5nIihz b3VyY2UgdGV4dCwgcGF0dGVybiB0ZXh0LCBlc2NhcGUgdGV4dCkKICBSRVRVUk5TIHRleHQKICBM QU5HVUFHRSBzcWwKICBJTU1VVEFCTEUgUEFSQUxMRUwgU0FGRSBTVFJJQ1QgQ09TVCAxCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19wcm9jLmRhdAppbmRleCAxY2JiOTRmMjJlYS4uYzI3MjI0MGQ0MjIgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19wcm9jLmRhdApAQCAtMzc0OCw5ICszNzQ4LDExIEBACiAKIHsgb2lkID0+ICc5MzYn LCBkZXNjciA9PiAnZXh0cmFjdCBwb3J0aW9uIG9mIHN0cmluZycsCiAgIHByb25hbWUgPT4gJ3N1 YnN0cmluZycsIHByb3JldHR5cGUgPT4gJ3RleHQnLCBwcm9hcmd0eXBlcyA9PiAndGV4dCBpbnQ0 IGludDQnLAorICBwcm9hcmduYW1lcyA9PiAne3NvdXJjZSwgc3RhcnQsIGNvdW50fScsCiAgIHBy b3NyYyA9PiAndGV4dF9zdWJzdHInIH0sCiB7IG9pZCA9PiAnOTM3JywgZGVzY3IgPT4gJ2V4dHJh Y3QgcG9ydGlvbiBvZiBzdHJpbmcnLAogICBwcm9uYW1lID0+ICdzdWJzdHJpbmcnLCBwcm9yZXR0 eXBlID0+ICd0ZXh0JywgcHJvYXJndHlwZXMgPT4gJ3RleHQgaW50NCcsCisgIHByb2FyZ25hbWVz ID0+ICd7c291cmNlLCBzdGFydH0nLAogICBwcm9zcmMgPT4gJ3RleHRfc3Vic3RyX25vX2xlbicg fSwKIHsgb2lkID0+ICcyMDg3JywKICAgZGVzY3IgPT4gJ3JlcGxhY2UgYWxsIG9jY3VycmVuY2Vz IGluIHN0cmluZyBvZiBvbGRfc3Vic3RyIHdpdGggbmV3X3N1YnN0cicsCkBAIC00MTY4LDYgKzQx NzAsNyBAQAogICBwcm9zcmMgPT4gJ2JpdGNhdCcgfSwKIHsgb2lkID0+ICcxNjgwJywgZGVzY3Ig PT4gJ2V4dHJhY3QgcG9ydGlvbiBvZiBiaXRzdHJpbmcnLAogICBwcm9uYW1lID0+ICdzdWJzdHJp bmcnLCBwcm9yZXR0eXBlID0+ICdiaXQnLCBwcm9hcmd0eXBlcyA9PiAnYml0IGludDQgaW50NCcs CisgIHByb2FyZ25hbWVzID0+ICd7c291cmNlLCBzdGFydCwgY291bnR9JywKICAgcHJvc3JjID0+ ICdiaXRzdWJzdHInIH0sCiB7IG9pZCA9PiAnMTY4MScsIGRlc2NyID0+ICdiaXRzdHJpbmcgbGVu Z3RoJywKICAgcHJvbmFtZSA9PiAnbGVuZ3RoJywgcHJvcmV0dHlwZSA9PiAnaW50NCcsIHByb2Fy Z3R5cGVzID0+ICdiaXQnLApAQCAtNDE5Nyw2ICs0MjAwLDcgQEAKICAgcHJvc3JjID0+ICdiaXRw b3NpdGlvbicgfSwKIHsgb2lkID0+ICcxNjk5JywgZGVzY3IgPT4gJ2V4dHJhY3QgcG9ydGlvbiBv ZiBiaXRzdHJpbmcnLAogICBwcm9uYW1lID0+ICdzdWJzdHJpbmcnLCBwcm9yZXR0eXBlID0+ICdi aXQnLCBwcm9hcmd0eXBlcyA9PiAnYml0IGludDQnLAorICBwcm9hcmduYW1lcyA9PiAne3NvdXJj ZSwgc3RhcnR9JywKICAgcHJvc3JjID0+ICdiaXRzdWJzdHJfbm9fbGVuJyB9LAogCiB7IG9pZCA9 PiAnMzAzMCcsIGRlc2NyID0+ICdzdWJzdGl0dXRlIHBvcnRpb24gb2YgYml0c3RyaW5nJywKQEAg LTYzMDIsOSArNjMwNiwxMSBAQAogICBwcm9zcmMgPT4gJ2J5dGVhY2F0JyB9LAogeyBvaWQgPT4g JzIwMTInLCBkZXNjciA9PiAnZXh0cmFjdCBwb3J0aW9uIG9mIHN0cmluZycsCiAgIHByb25hbWUg PT4gJ3N1YnN0cmluZycsIHByb3JldHR5cGUgPT4gJ2J5dGVhJywKKyAgcHJvYXJnbmFtZXMgPT4g J3tzb3VyY2UsIHN0YXJ0LCBjb3VudH0nLAogICBwcm9hcmd0eXBlcyA9PiAnYnl0ZWEgaW50NCBp bnQ0JywgcHJvc3JjID0+ICdieXRlYV9zdWJzdHInIH0sCiB7IG9pZCA9PiAnMjAxMycsIGRlc2Ny ID0+ICdleHRyYWN0IHBvcnRpb24gb2Ygc3RyaW5nJywKICAgcHJvbmFtZSA9PiAnc3Vic3RyaW5n JywgcHJvcmV0dHlwZSA9PiAnYnl0ZWEnLCBwcm9hcmd0eXBlcyA9PiAnYnl0ZWEgaW50NCcsCisg IHByb2FyZ25hbWVzID0+ICd7c291cmNlLCBzdGFydH0nLAogICBwcm9zcmMgPT4gJ2J5dGVhX3N1 YnN0cl9ub19sZW4nIH0sCiB7IG9pZCA9PiAnMjA4NScsIGRlc2NyID0+ICdleHRyYWN0IHBvcnRp b24gb2Ygc3RyaW5nJywKICAgcHJvbmFtZSA9PiAnc3Vic3RyJywgcHJvcmV0dHlwZSA9PiAnYnl0 ZWEnLCBwcm9hcmd0eXBlcyA9PiAnYnl0ZWEgaW50NCBpbnQ0JywKQEAgLTY1MDQsOSArNjUxMCwx MSBAQAogCiB7IG9pZCA9PiAnMjA3MycsIGRlc2NyID0+ICdleHRyYWN0IHRleHQgbWF0Y2hpbmcg cmVndWxhciBleHByZXNzaW9uJywKICAgcHJvbmFtZSA9PiAnc3Vic3RyaW5nJywgcHJvcmV0dHlw ZSA9PiAndGV4dCcsIHByb2FyZ3R5cGVzID0+ICd0ZXh0IHRleHQnLAorICBwcm9hcmduYW1lcyA9 PiAne3NvdXJjZSwgcGF0dGVybn0nLAogICBwcm9zcmMgPT4gJ3RleHRyZWdleHN1YnN0cicgfSwK IHsgb2lkID0+ICcyMDc0JywgZGVzY3IgPT4gJ2V4dHJhY3QgdGV4dCBtYXRjaGluZyBTUUwgcmVn dWxhciBleHByZXNzaW9uJywKICAgcHJvbmFtZSA9PiAnc3Vic3RyaW5nJywgcHJvbGFuZyA9PiAn c3FsJywgcHJvcmV0dHlwZSA9PiAndGV4dCcsCisgIHByb2FyZ25hbWVzID0+ICd7c291cmNlLCBw YXR0ZXJuLCBlc2NhcGV9JywKICAgcHJvYXJndHlwZXMgPT4gJ3RleHQgdGV4dCB0ZXh0JywgcHJv c3JjID0+ICdzZWUgc3lzdGVtX2Z1bmN0aW9ucy5zcWwnIH0sCiAKIHsgb2lkID0+ICcyMDc1Jywg ZGVzY3IgPT4gJ2NvbnZlcnQgaW50OCB0byBiaXRzdHJpbmcnLAotLSAKMi4zNC4xCgo= --000000000000eb8bb60641198e5d Content-Type: text/x-patch; charset="US-ASCII"; name="v8-0001-add-function-argument-name-to-function-substr.patch" Content-Disposition: attachment; filename="v8-0001-add-function-argument-name-to-function-substr.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mgq9a8zj1 RnJvbSAwMzk1YmYxMTU5YzY4MmM0Mjg3MTZjODAxNzkwYjM4OWYwNzNjY2U1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMTQgT2N0IDIwMjUgMTU6MTY6MDQgKzA4MDAKU3ViamVjdDogW1BBVENIIHY4 IDEvMl0gYWRkIGZ1bmN0aW9uIGFyZ3VtZW50IG5hbWUgdG8gZnVuY3Rpb24gc3Vic3RyCgp3aXRo IHBhdGNoIGFwcGxpZWQKClxkZiBzdWJzdHIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExpc3Qgb2YgZnVuY3Rpb25zCiAgIFNjaGVtYSAgIHwgIE5hbWUgIHwgUmVzdWx0IGRh dGEgdHlwZSB8ICAgICAgICAgICAgQXJndW1lbnQgZGF0YSB0eXBlcyAgICAgICAgICAgICB8IFR5 cGUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0KIHBnX2NhdGFsb2cgfCBzdWJz dHIgfCBieXRlYSAgICAgICAgICAgIHwgc291cmNlIGJ5dGVhLCBzdGFydCBpbnRlZ2VyICAgICAg ICAgICAgICAgIHwgZnVuYwogcGdfY2F0YWxvZyB8IHN1YnN0ciB8IGJ5dGVhICAgICAgICAgICAg fCBzb3VyY2UgYnl0ZWEsIHN0YXJ0IGludGVnZXIsIGNvdW50IGludGVnZXIgfCBmdW5jCiBwZ19j YXRhbG9nIHwgc3Vic3RyIHwgdGV4dCAgICAgICAgICAgICB8IHNvdXJjZSB0ZXh0LCBzdGFydCBp bnRlZ2VyICAgICAgICAgICAgICAgICB8IGZ1bmMKIHBnX2NhdGFsb2cgfCBzdWJzdHIgfCB0ZXh0 ICAgICAgICAgICAgIHwgc291cmNlIHRleHQsIHN0YXJ0IGludGVnZXIsIGNvdW50IGludGVnZXIg IHwgZnVuYwooNCByb3dzKQoKZGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQUNKdWZ4 SFRCa3ltaDA2RDRtR0tOZTFZZlJORk4rZ0ZCeWJteWdXaz1QdE1xdTAwTFFAbWFpbC5nbWFpbC5j b20KLS0tCiBkb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLWJpbmFyeXN0cmluZy5zZ21sIHwgNCArKy0t CiBkb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLXN0cmluZy5zZ21sICAgICAgIHwgNCArKy0tCiBzcmMv aW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0ICAgICAgICAgIHwgNCArKysrCiAzIGZpbGVzIGNo YW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mv c3JjL3NnbWwvZnVuYy9mdW5jLWJpbmFyeXN0cmluZy5zZ21sIGIvZG9jL3NyYy9zZ21sL2Z1bmMv ZnVuYy1iaW5hcnlzdHJpbmcuc2dtbAppbmRleCBkZDcwMzc4MTFhZi4uMjk0ZDFkOTcyMzMgMTAw NjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9mdW5jL2Z1bmMtYmluYXJ5c3RyaW5nLnNnbWwKKysrIGIv ZG9jL3NyYy9zZ21sL2Z1bmMvZnVuYy1iaW5hcnlzdHJpbmcuc2dtbApAQCAtNTcxLDExICs1NzEs MTEgQEAKICAgICAgICAgPGluZGV4dGVybT4KICAgICAgICAgIDxwcmltYXJ5PnN1YnN0cjwvcHJp bWFyeT4KICAgICAgICAgPC9pbmRleHRlcm0+Ci0gICAgICAgIDxmdW5jdGlvbj5zdWJzdHI8L2Z1 bmN0aW9uPiAoIDxwYXJhbWV0ZXI+Ynl0ZXM8L3BhcmFtZXRlcj4gPHR5cGU+Ynl0ZWE8L3R5cGU+ LCA8cGFyYW1ldGVyPnN0YXJ0PC9wYXJhbWV0ZXI+IDx0eXBlPmludGVnZXI8L3R5cGU+IDxvcHRp b25hbD4sIDxwYXJhbWV0ZXI+Y291bnQ8L3BhcmFtZXRlcj4gPHR5cGU+aW50ZWdlcjwvdHlwZT4g PC9vcHRpb25hbD4gKQorICAgICAgICA8ZnVuY3Rpb24+c3Vic3RyPC9mdW5jdGlvbj4gKCA8cGFy YW1ldGVyPnNvdXJjZTwvcGFyYW1ldGVyPiA8dHlwZT5ieXRlYTwvdHlwZT4sIDxwYXJhbWV0ZXI+ c3RhcnQ8L3BhcmFtZXRlcj4gPHR5cGU+aW50ZWdlcjwvdHlwZT4gPG9wdGlvbmFsPiwgPHBhcmFt ZXRlcj5jb3VudDwvcGFyYW1ldGVyPiA8dHlwZT5pbnRlZ2VyPC90eXBlPiA8L29wdGlvbmFsPiAp CiAgICAgICAgIDxyZXR1cm52YWx1ZT5ieXRlYTwvcmV0dXJudmFsdWU+CiAgICAgICAgPC9wYXJh PgogICAgICAgIDxwYXJhPgotICAgICAgICBFeHRyYWN0cyB0aGUgc3Vic3RyaW5nIG9mIDxwYXJh bWV0ZXI+Ynl0ZXM8L3BhcmFtZXRlcj4gc3RhcnRpbmcgYXQKKyAgICAgICAgRXh0cmFjdHMgdGhl IHN1YnN0cmluZyBvZiA8cGFyYW1ldGVyPnNvdXJjZTwvcGFyYW1ldGVyPiBzdGFydGluZyBhdAog ICAgICAgICB0aGUgPHBhcmFtZXRlcj5zdGFydDwvcGFyYW1ldGVyPid0aCBieXRlLAogICAgICAg ICBhbmQgZXh0ZW5kaW5nIGZvciA8cGFyYW1ldGVyPmNvdW50PC9wYXJhbWV0ZXI+IGJ5dGVzIGlm IHRoYXQgaXMKICAgICAgICAgc3BlY2lmaWVkLiAgKFNhbWUKZGlmZiAtLWdpdCBhL2RvYy9zcmMv c2dtbC9mdW5jL2Z1bmMtc3RyaW5nLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLXN0cmlu Zy5zZ21sCmluZGV4IDAxY2M5NGMyMzRlLi5mN2QwM2VkYTJiYyAxMDA2NDQKLS0tIGEvZG9jL3Ny Yy9zZ21sL2Z1bmMvZnVuYy1zdHJpbmcuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZnVuYy9mdW5j LXN0cmluZy5zZ21sCkBAIC0xMzkwLDExICsxMzkwLDExIEBACiAgICAgICAgIDxpbmRleHRlcm0+ CiAgICAgICAgICA8cHJpbWFyeT5zdWJzdHI8L3ByaW1hcnk+CiAgICAgICAgIDwvaW5kZXh0ZXJt PgotICAgICAgICA8ZnVuY3Rpb24+c3Vic3RyPC9mdW5jdGlvbj4gKCA8cGFyYW1ldGVyPnN0cmlu ZzwvcGFyYW1ldGVyPiA8dHlwZT50ZXh0PC90eXBlPiwgPHBhcmFtZXRlcj5zdGFydDwvcGFyYW1l dGVyPiA8dHlwZT5pbnRlZ2VyPC90eXBlPiA8b3B0aW9uYWw+LCA8cGFyYW1ldGVyPmNvdW50PC9w YXJhbWV0ZXI+IDx0eXBlPmludGVnZXI8L3R5cGU+IDwvb3B0aW9uYWw+ICkKKyAgICAgICAgPGZ1 bmN0aW9uPnN1YnN0cjwvZnVuY3Rpb24+ICggPHBhcmFtZXRlcj5zb3VyY2U8L3BhcmFtZXRlcj4g PHR5cGU+dGV4dDwvdHlwZT4sIDxwYXJhbWV0ZXI+c3RhcnQ8L3BhcmFtZXRlcj4gPHR5cGU+aW50 ZWdlcjwvdHlwZT4gPG9wdGlvbmFsPiwgPHBhcmFtZXRlcj5jb3VudDwvcGFyYW1ldGVyPiA8dHlw ZT5pbnRlZ2VyPC90eXBlPiA8L29wdGlvbmFsPiApCiAgICAgICAgIDxyZXR1cm52YWx1ZT50ZXh0 PC9yZXR1cm52YWx1ZT4KICAgICAgICA8L3BhcmE+CiAgICAgICAgPHBhcmE+Ci0gICAgICAgIEV4 dHJhY3RzIHRoZSBzdWJzdHJpbmcgb2YgPHBhcmFtZXRlcj5zdHJpbmc8L3BhcmFtZXRlcj4gc3Rh cnRpbmcgYXQKKyAgICAgICAgRXh0cmFjdHMgdGhlIHN1YnN0cmluZyBvZiA8cGFyYW1ldGVyPnNv dXJjZTwvcGFyYW1ldGVyPiBzdGFydGluZyBhdAogICAgICAgICB0aGUgPHBhcmFtZXRlcj5zdGFy dDwvcGFyYW1ldGVyPid0aCBjaGFyYWN0ZXIsCiAgICAgICAgIGFuZCBleHRlbmRpbmcgZm9yIDxw YXJhbWV0ZXI+Y291bnQ8L3BhcmFtZXRlcj4gY2hhcmFjdGVycyBpZiB0aGF0IGlzCiAgICAgICAg IHNwZWNpZmllZC4gIChTYW1lCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3By b2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCBiNTFkMmIxNzM3 OS4uMWNiYjk0ZjIyZWEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5k YXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAtMzcxOCw2ICszNzE4 LDcgQEAKICAgcHJvc3JjID0+ICdydHJpbScgfSwKIHsgb2lkID0+ICc4NzcnLCBkZXNjciA9PiAn ZXh0cmFjdCBwb3J0aW9uIG9mIHN0cmluZycsCiAgIHByb25hbWUgPT4gJ3N1YnN0cicsIHByb3Jl dHR5cGUgPT4gJ3RleHQnLCBwcm9hcmd0eXBlcyA9PiAndGV4dCBpbnQ0IGludDQnLAorICBwcm9h cmduYW1lcyA9PiAne3NvdXJjZSwgc3RhcnQsIGNvdW50fScsCiAgIHByb3NyYyA9PiAndGV4dF9z dWJzdHInIH0sCiB7IG9pZCA9PiAnODc4JywgZGVzY3IgPT4gJ21hcCBhIHNldCBvZiBjaGFyYWN0 ZXJzIGFwcGVhcmluZyBpbiBzdHJpbmcnLAogICBwcm9uYW1lID0+ICd0cmFuc2xhdGUnLCBwcm9y ZXR0eXBlID0+ICd0ZXh0JywgcHJvYXJndHlwZXMgPT4gJ3RleHQgdGV4dCB0ZXh0JywKQEAgLTM3 MzYsNiArMzczNyw3IEBACiAgIHByb3NyYyA9PiAncnRyaW0xJyB9LAogeyBvaWQgPT4gJzg4Mycs IGRlc2NyID0+ICdleHRyYWN0IHBvcnRpb24gb2Ygc3RyaW5nJywKICAgcHJvbmFtZSA9PiAnc3Vi c3RyJywgcHJvcmV0dHlwZSA9PiAndGV4dCcsIHByb2FyZ3R5cGVzID0+ICd0ZXh0IGludDQnLAor ICBwcm9hcmduYW1lcyA9PiAne3NvdXJjZSwgc3RhcnR9JywKICAgcHJvc3JjID0+ICd0ZXh0X3N1 YnN0cl9ub19sZW4nIH0sCiB7IG9pZCA9PiAnODg0JywgZGVzY3IgPT4gJ3RyaW0gc2VsZWN0ZWQg Y2hhcmFjdGVycyBmcm9tIGJvdGggZW5kcyBvZiBzdHJpbmcnLAogICBwcm9uYW1lID0+ICdidHJp bScsIHByb3JldHR5cGUgPT4gJ3RleHQnLCBwcm9hcmd0eXBlcyA9PiAndGV4dCB0ZXh0JywKQEAg LTYzMDYsOSArNjMwOCwxMSBAQAogICBwcm9zcmMgPT4gJ2J5dGVhX3N1YnN0cl9ub19sZW4nIH0s CiB7IG9pZCA9PiAnMjA4NScsIGRlc2NyID0+ICdleHRyYWN0IHBvcnRpb24gb2Ygc3RyaW5nJywK ICAgcHJvbmFtZSA9PiAnc3Vic3RyJywgcHJvcmV0dHlwZSA9PiAnYnl0ZWEnLCBwcm9hcmd0eXBl cyA9PiAnYnl0ZWEgaW50NCBpbnQ0JywKKyAgcHJvYXJnbmFtZXMgPT4gJ3tzb3VyY2UsIHN0YXJ0 LCBjb3VudH0nLAogICBwcm9zcmMgPT4gJ2J5dGVhX3N1YnN0cicgfSwKIHsgb2lkID0+ICcyMDg2 JywgZGVzY3IgPT4gJ2V4dHJhY3QgcG9ydGlvbiBvZiBzdHJpbmcnLAogICBwcm9uYW1lID0+ICdz dWJzdHInLCBwcm9yZXR0eXBlID0+ICdieXRlYScsIHByb2FyZ3R5cGVzID0+ICdieXRlYSBpbnQ0 JywKKyAgcHJvYXJnbmFtZXMgPT4gJ3tzb3VyY2UsIHN0YXJ0fScsCiAgIHByb3NyYyA9PiAnYnl0 ZWFfc3Vic3RyX25vX2xlbicgfSwKIHsgb2lkID0+ICcyMDE0JywgZGVzY3IgPT4gJ3Bvc2l0aW9u IG9mIHN1YnN0cmluZycsCiAgIHByb25hbWUgPT4gJ3Bvc2l0aW9uJywgcHJvcmV0dHlwZSA9PiAn aW50NCcsIHByb2FyZ3R5cGVzID0+ICdieXRlYSBieXRlYScsCi0tIAoyLjM0LjEKCg== --000000000000eb8bb60641198e5d--