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 1v0kOt-0005bJ-O0 for pgsql-hackers@arkaria.postgresql.org; Mon, 22 Sep 2025 17:32:32 +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 1v0kOr-001UG5-Fm for pgsql-hackers@arkaria.postgresql.org; Mon, 22 Sep 2025 17:32:29 +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 1v0kOr-001UFw-0J for pgsql-hackers@lists.postgresql.org; Mon, 22 Sep 2025 17:32:29 +0000 Received: from mail-pg1-x541.google.com ([2607:f8b0:4864:20::541]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1v0kOm-002EKM-1w for pgsql-hackers@postgresql.org; Mon, 22 Sep 2025 17:32:28 +0000 Received: by mail-pg1-x541.google.com with SMTP id 41be03b00d2f7-b523fb676efso4029976a12.3 for ; Mon, 22 Sep 2025 10:32:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1758562344; x=1759167144; 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=JhyUsVgkw/V0Um/6YoXtRiRE3qjednveqDjs3OjB3Ao=; b=noBQEjS5D+ydMyOFZ+FM7MaZeCgBRWylaO2eYK8KQvzllK2ShmP2SHOhVMxqnzfvPt KT0552M9AJGJl4IpbtwbefymahNGKYlh4HwO46GCf/M1JkkCnIzVlv53QD0OvJhFNiHr aIFo4ZvGdRFGTf3jUVTuAX22y5T/JdDU/O03W4auw6v9bjF27IXxEpuqOlRkG1BKk92v IGIqBuJz4ocPzZcrNUhhQMQzLRp7s0b1c2LD2JskUH/TL/nE6pJNzzYV7VqlKeh5hNgk zlGP65LSxjn97aGp5qNhOmSiCT/hzU9MXTlDOinWmkxfWe5q9cjCzI6Dh2y2C8bxRIFj XrHQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758562344; x=1759167144; 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=JhyUsVgkw/V0Um/6YoXtRiRE3qjednveqDjs3OjB3Ao=; b=Rk3Z3zmV8V2rE2cT2h47z0w5X3LniqHOQFHdgGVQ06vMN/Lbn1HmAcVzUCsZfP0DnY IO6bBlT9amdRKt8SpAkE/LHdTVrSBoK5pZhIZxg+bXJIbb1k8LdJ4YPeZMaiZf6u62Ga V33VXaAi1q6afmdpdrODeQJ8iH+JAXxwjjHGplJhetpxY3nt3QLPrjlVgPX8tXb/Hl20 oKZuBSbgFpS7TIyvmmb7pS0nN+9j5wc5D0j+tPeAUDGnN0YKqRb3bjrImyXKs6E7j/Pp OdU+FeRy9/SZ71fjIFgBhPiXtldOeDZINpYBJgWSod95WVBKG8hUPDHXwlmTO8MetOtY T95A== X-Gm-Message-State: AOJu0YxhtH1lR432x3B4NoEyQP0eEtJOcSZeZURo0hljlC5GIRxKP+mB 68O/zWtx6EFrB2Km1BX2FK3JhW4LhfvZ1Q9Bh2q8nNl2andwsSzmN3kFBunCghAuMl4ONe6I0rl KX8BUolhSMpyjf7QihpNwH5BzoMjey7g= X-Gm-Gg: ASbGncsdfDgetNSHwh2JfaQSNLmuR6tdX4Dn7sWh0org+OFAzoA8oImr5rF1q/iFT6j BNYvrxXjHEmAU2XPedWtSmoSDGJ1kSTbCyxONc/dctFu/JWFXifRXhpnazRuXOXbDXhdvCqF/1r MtxPk7eMp44h8ygL4u2pw6ZFNojf1QcxY7A72//N3/fbwA0fSn0YmnU7m421byfTru4/Wx8nAmg jOXWxKVag== X-Google-Smtp-Source: AGHT+IELOfmKz/Khibr0n9IDAzOYUzag+hWp/sgLpcXsOH1JugH0TcLXULb+R6nRcOAbwihryDdlLoeg3UXhK1SBX/Y= X-Received: by 2002:a17:903:1b6c:b0:266:3098:666 with SMTP id d9443c01a7336-269ba4edb9cmr209998875ad.32.1758562344045; Mon, 22 Sep 2025 10:32:24 -0700 (PDT) MIME-Version: 1.0 References: <21fa36b4-6d56-4556-b524-9e3955b922c8@eisentraut.org> <290418A2-3A9B-4304-AAAD-4A40CFF1CB93@gmail.com> <98C6F445-773B-4C82-8198-7F5CD56D5252@gmail.com> <052E941B-C905-448F-AE3A-753C12AAC938@gmail.com> <8CB9A1EC-2D14-44FF-A600-6669353A14C2@gmail.com> <826F61C4-AE01-4070-8F78-CEE8781EACEB@gmail.com> In-Reply-To: <826F61C4-AE01-4070-8F78-CEE8781EACEB@gmail.com> From: Alexandra Wang Date: Mon, 22 Sep 2025 10:31:47 -0700 X-Gm-Features: AS18NWByCKciM7-arAJiPMttlpibLqugQaT2HvNJF898r70G0ZnrP63OE7hM_zI Message-ID: Subject: Re: SQL:2023 JSON simplified accessor support To: Chao Li Cc: PostgreSQL Hackers , Nikita Glukhov , jian he , Nikita Malakhov , Vik Fearing , Mark Dilger , Matheus Alcantara , Peter Eisentraut , Andrew Dunstan , "David E. Wheeler" Content-Type: multipart/mixed; boundary="000000000000d5ee4f063f6733dc" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000d5ee4f063f6733dc Content-Type: multipart/alternative; boundary="000000000000d5ee4e063f6733da" --000000000000d5ee4e063f6733da Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sun, Sep 21, 2025 at 8:32=E2=80=AFPM Chao Li wr= ote: > Looks like patch files need rebase. > There were trailing whitespaces in the documentation I added, I=E2=80=99ve = fixed them now. --000000000000d5ee4e063f6733da Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


On Sun, Sep 21,= 2025 at 8:32=E2=80=AFPM Chao Li <li.evan.chao@gmail.com> wrote:
Looks like patch files need rebase.

There were trailing whitespaces in the documentati= on I added, I=E2=80=99ve fixed them now.

--000000000000d5ee4e063f6733da-- --000000000000d5ee4f063f6733dc Content-Type: application/octet-stream; name="v21-0004-Extract-coerce_jsonpath_subscript.patch" Content-Disposition: attachment; filename="v21-0004-Extract-coerce_jsonpath_subscript.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfvekicq2 RnJvbSA5ZDkyYzJjOGQ5MzU0OWJkYWZhMTZmOTBlY2Q1OGFiNTgxMjY5ZTNjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5kcmEgV2FuZyA8YWxleGFuZHJhLndhbmcub3NzQGdt YWlsLmNvbT4KRGF0ZTogVHVlLCA4IEp1bCAyMDI1IDIyOjE4OjA3IC0wNzAwClN1YmplY3Q6IFtQ QVRDSCB2MjEgNC81XSBFeHRyYWN0IGNvZXJjZV9qc29ucGF0aF9zdWJzY3JpcHQoKQoKVGhpcyBp cyBhIHByZXBhcmF0aW9uIHN0ZXAgZm9yIGEgZnV0dXJlIGNvbW1pdCB0aGF0IHdpbGwgcmV1c2Ug dGhlCmFmb3JlbWVudGlvbmVkIGZ1bmN0aW9uLgoKQ28tYXV0aG9yZWQtYnk6IE5pa2l0YSBHbHVr aG92IDxnbHVraG92Lm4uYUBnbWFpbC5jb20+CkNvLWF1dGhvcmVkLWJ5OiBBbGV4YW5kcmEgV2Fu ZyA8YWxleGFuZHJhLndhbmcub3NzQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEFuZHJldyBEdW5z dGFuIDxhbmRyZXdAZHVuc2xhbmUubmV0PgpSZXZpZXdlZC1ieTogTWF0aGV1cyBBbGNhbnRhcmEg PG1hdGhldXNzc2lsdjk3QGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEppYW4gSGUgPGppYW4udW5p dmVyc2FsaXR5QGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IENoYW8gTGkgPGxpLmV2YW4uY2hhb0Bn bWFpbC5jb20+Ci0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25ic3Vicy5jIHwgMTI4ICsr KysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDY0IGluc2VydGlv bnMoKyksIDY0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9qc29uYnN1YnMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uYnN1YnMuYwppbmRleCBk ZmU3ZGE1NWU4ZS4uNTE2MTQ2ZDExNDYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9qc29uYnN1YnMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmJzdWJzLmMKQEAg LTMyLDYgKzMyLDY5IEBAIHR5cGVkZWYgc3RydWN0IEpzb25iU3ViV29ya3NwYWNlCiAJRGF0dW0J ICAgKmluZGV4OwkJCS8qIFN1YnNjcmlwdCB2YWx1ZXMgaW4gRGF0dW0gZm9ybWF0ICovCiB9IEpz b25iU3ViV29ya3NwYWNlOwogCitzdGF0aWMgTm9kZSAqCitjb2VyY2VfanNvbnBhdGhfc3Vic2Ny aXB0X3RvX2ludDRfb3JfdGV4dChQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKnN1YkV4cHIpCit7 CisJT2lkCQkJc3ViRXhwclR5cGUgPSBleHByVHlwZShzdWJFeHByKTsKKwlPaWQJCQl0YXJnZXRU eXBlID0gSW52YWxpZE9pZDsKKworCWlmIChzdWJFeHByVHlwZSAhPSBVTktOT1dOT0lEKQorCXsK KwkJY29uc3QgT2lkCXRhcmdldHNbXSA9IHtJTlQ0T0lELCBURVhUT0lEfTsKKworCQkvKgorCQkg KiBKc29uYiBjYW4gaGFuZGxlIG11bHRpcGxlIHN1YnNjcmlwdCB0eXBlcywgYnV0IGNhc2VzIHdo ZW4gYQorCQkgKiBzdWJzY3JpcHQgY291bGQgYmUgY29lcmNlZCB0byBtdWx0aXBsZSB0YXJnZXQg dHlwZXMgbXVzdCBiZQorCQkgKiBhdm9pZGVkLCBzaW1pbGFyIHRvIG92ZXJsb2FkZWQgZnVuY3Rp b25zLiBJdCBjb3VsZCBiZSBwb3NzaWJseQorCQkgKiBleHRlbmQgd2l0aCBqc29ucGF0aCBpbiB0 aGUgZnV0dXJlLgorCQkgKi8KKwkJZm9yIChpbnQgaSA9IDA7IGkgPCBsZW5ndGhvZih0YXJnZXRz KTsgaSsrKQorCQl7CisJCQlpZiAoY2FuX2NvZXJjZV90eXBlKDEsICZzdWJFeHByVHlwZSwgJnRh cmdldHNbaV0sIENPRVJDSU9OX0lNUExJQ0lUKSkKKwkJCXsKKwkJCQkvKgorCQkJCSAqIE9uZSB0 eXBlIGhhcyBhbHJlYWR5IHN1Y2NlZWRlZCwgaXQgbWVhbnMgdGhlcmUgYXJlIHR3bworCQkJCSAq IGNvZXJjaW9uIHRhcmdldHMgcG9zc2libGUsIGZhaWx1cmUuCisJCQkJICovCisJCQkJaWYgKE9p ZElzVmFsaWQodGFyZ2V0VHlwZSkpCisJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJKGVycmNv ZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCisJCQkJCQkJIGVycm1zZygic3Vic2NyaXB0 IHR5cGUgJXMgaXMgbm90IHN1cHBvcnRlZCIsIGZvcm1hdF90eXBlX2JlKHN1YkV4cHJUeXBlKSks CisJCQkJCQkJIGVycmhpbnQoImpzb25iIHN1YnNjcmlwdCBtdXN0IGJlIGNvZXJjaWJsZSB0byBv bmx5IG9uZSB0eXBlLCBpbnRlZ2VyIG9yIHRleHQuIiksCisJCQkJCQkJIHBhcnNlcl9lcnJwb3Np dGlvbihwc3RhdGUsIGV4cHJMb2NhdGlvbihzdWJFeHByKSkpKTsKKworCQkJCXRhcmdldFR5cGUg PSB0YXJnZXRzW2ldOworCQkJfQorCQl9CisKKwkJLyoKKwkJICogTm8gc3VpdGFibGUgdHlwZXMg d2VyZSBmb3VuZCwgZmFpbHVyZS4KKwkJICovCisJCWlmICghT2lkSXNWYWxpZCh0YXJnZXRUeXBl KSkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlT TUFUQ0gpLAorCQkJCQkgZXJybXNnKCJzdWJzY3JpcHQgdHlwZSAlcyBpcyBub3Qgc3VwcG9ydGVk IiwgZm9ybWF0X3R5cGVfYmUoc3ViRXhwclR5cGUpKSwKKwkJCQkJIGVycmhpbnQoImpzb25iIHN1 YnNjcmlwdCBtdXN0IGJlIGNvZXJjaWJsZSB0byBlaXRoZXIgaW50ZWdlciBvciB0ZXh0LiIpLAor CQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZXhwckxvY2F0aW9uKHN1YkV4cHIpKSkp OworCX0KKwllbHNlCisJCXRhcmdldFR5cGUgPSBURVhUT0lEOworCisJLyoKKwkgKiBXZSBrbm93 biBmcm9tIGNhbl9jb2VyY2VfdHlwZSB0aGF0IGNvZXJjaW9uIHdpbGwgc3VjY2VlZCwgc28KKwkg KiBjb2VyY2VfdHlwZSBjb3VsZCBiZSB1c2VkLiBOb3RlIHRoZSBpbXBsaWNpdCBjb2VyY2lvbiBj b250ZXh0LCB3aGljaCBpcworCSAqIHJlcXVpcmVkIHRvIGhhbmRsZSBzdWJzY3JpcHRzIG9mIGRp ZmZlcmVudCB0eXBlcywgc2ltaWxhciB0byBvdmVybG9hZGVkCisJICogZnVuY3Rpb25zLgorCSAq LworCXN1YkV4cHIgPSBjb2VyY2VfdHlwZShwc3RhdGUsCisJCQkJCQkgIHN1YkV4cHIsIHN1YkV4 cHJUeXBlLAorCQkJCQkJICB0YXJnZXRUeXBlLCAtMSwKKwkJCQkJCSAgQ09FUkNJT05fSU1QTElD SVQsCisJCQkJCQkgIENPRVJDRV9JTVBMSUNJVF9DQVNULAorCQkJCQkJICAtMSk7CisKKwlyZXR1 cm4gc3ViRXhwcjsKK30KIAogLyoKICAqIEZpbmlzaCBwYXJzZSBhbmFseXNpcyBvZiBhIFN1YnNj cmlwdGluZ1JlZiBleHByZXNzaW9uIGZvciBhIGpzb25iLgpAQCAtNzQsNzEgKzEzNyw4IEBAIGpz b25iX3N1YnNjcmlwdF90cmFuc2Zvcm0oU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYsCiAKIAkJaWYg KGFpLT51aWR4KQogCQl7Ci0JCQlPaWQJCQlzdWJFeHByVHlwZSA9IEludmFsaWRPaWQsCi0JCQkJ CQl0YXJnZXRUeXBlID0gVU5LTk9XTk9JRDsKLQogCQkJc3ViRXhwciA9IHRyYW5zZm9ybUV4cHIo cHN0YXRlLCBhaS0+dWlkeCwgcHN0YXRlLT5wX2V4cHJfa2luZCk7Ci0JCQlzdWJFeHByVHlwZSA9 IGV4cHJUeXBlKHN1YkV4cHIpOwotCi0JCQlpZiAoc3ViRXhwclR5cGUgIT0gVU5LTk9XTk9JRCkK LQkJCXsKLQkJCQlPaWQJCQl0YXJnZXRzWzJdID0ge0lOVDRPSUQsIFRFWFRPSUR9OwotCi0JCQkJ LyoKLQkJCQkgKiBKc29uYiBjYW4gaGFuZGxlIG11bHRpcGxlIHN1YnNjcmlwdCB0eXBlcywgYnV0 IGNhc2VzIHdoZW4gYQotCQkJCSAqIHN1YnNjcmlwdCBjb3VsZCBiZSBjb2VyY2VkIHRvIG11bHRp cGxlIHRhcmdldCB0eXBlcyBtdXN0IGJlCi0JCQkJICogYXZvaWRlZCwgc2ltaWxhciB0byBvdmVy bG9hZGVkIGZ1bmN0aW9ucy4gSXQgY291bGQgYmUKLQkJCQkgKiBwb3NzaWJseSBleHRlbmQgd2l0 aCBqc29ucGF0aCBpbiB0aGUgZnV0dXJlLgotCQkJCSAqLwotCQkJCWZvciAoaW50IGkgPSAwOyBp IDwgMjsgaSsrKQotCQkJCXsKLQkJCQkJaWYgKGNhbl9jb2VyY2VfdHlwZSgxLCAmc3ViRXhwclR5 cGUsICZ0YXJnZXRzW2ldLCBDT0VSQ0lPTl9JTVBMSUNJVCkpCi0JCQkJCXsKLQkJCQkJCS8qCi0J CQkJCQkgKiBPbmUgdHlwZSBoYXMgYWxyZWFkeSBzdWNjZWVkZWQsIGl0IG1lYW5zIHRoZXJlIGFy ZQotCQkJCQkJICogdHdvIGNvZXJjaW9uIHRhcmdldHMgcG9zc2libGUsIGZhaWx1cmUuCi0JCQkJ CQkgKi8KLQkJCQkJCWlmICh0YXJnZXRUeXBlICE9IFVOS05PV05PSUQpCi0JCQkJCQkJZXJlcG9y dChFUlJPUiwKLQkJCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlTTUFUQ0gpLAot CQkJCQkJCQkJIGVycm1zZygic3Vic2NyaXB0IHR5cGUgJXMgaXMgbm90IHN1cHBvcnRlZCIsIGZv cm1hdF90eXBlX2JlKHN1YkV4cHJUeXBlKSksCi0JCQkJCQkJCQkgZXJyaGludCgianNvbmIgc3Vi c2NyaXB0IG11c3QgYmUgY29lcmNpYmxlIHRvIG9ubHkgb25lIHR5cGUsIGludGVnZXIgb3IgdGV4 dC4iKSwKLQkJCQkJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBleHByTG9jYXRpb24o c3ViRXhwcikpKSk7Ci0KLQkJCQkJCXRhcmdldFR5cGUgPSB0YXJnZXRzW2ldOwotCQkJCQl9Ci0J CQkJfQotCi0JCQkJLyoKLQkJCQkgKiBObyBzdWl0YWJsZSB0eXBlcyB3ZXJlIGZvdW5kLCBmYWls dXJlLgotCQkJCSAqLwotCQkJCWlmICh0YXJnZXRUeXBlID09IFVOS05PV05PSUQpCi0JCQkJCWVy ZXBvcnQoRVJST1IsCi0JCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCks Ci0JCQkJCQkJIGVycm1zZygic3Vic2NyaXB0IHR5cGUgJXMgaXMgbm90IHN1cHBvcnRlZCIsIGZv cm1hdF90eXBlX2JlKHN1YkV4cHJUeXBlKSksCi0JCQkJCQkJIGVycmhpbnQoImpzb25iIHN1YnNj cmlwdCBtdXN0IGJlIGNvZXJjaWJsZSB0byBlaXRoZXIgaW50ZWdlciBvciB0ZXh0LiIpLAotCQkJ CQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBleHByTG9jYXRpb24oc3ViRXhwcikpKSk7 Ci0JCQl9Ci0JCQllbHNlCi0JCQkJdGFyZ2V0VHlwZSA9IFRFWFRPSUQ7Ci0KLQkJCS8qCi0JCQkg KiBXZSBrbm93biBmcm9tIGNhbl9jb2VyY2VfdHlwZSB0aGF0IGNvZXJjaW9uIHdpbGwgc3VjY2Vl ZCwgc28KLQkJCSAqIGNvZXJjZV90eXBlIGNvdWxkIGJlIHVzZWQuIE5vdGUgdGhlIGltcGxpY2l0 IGNvZXJjaW9uIGNvbnRleHQsCi0JCQkgKiB3aGljaCBpcyByZXF1aXJlZCB0byBoYW5kbGUgc3Vi c2NyaXB0cyBvZiBkaWZmZXJlbnQgdHlwZXMsCi0JCQkgKiBzaW1pbGFyIHRvIG92ZXJsb2FkZWQg ZnVuY3Rpb25zLgotCQkJICovCi0JCQlzdWJFeHByID0gY29lcmNlX3R5cGUocHN0YXRlLAotCQkJ CQkJCQkgIHN1YkV4cHIsIHN1YkV4cHJUeXBlLAotCQkJCQkJCQkgIHRhcmdldFR5cGUsIC0xLAot CQkJCQkJCQkgIENPRVJDSU9OX0lNUExJQ0lULAotCQkJCQkJCQkgIENPRVJDRV9JTVBMSUNJVF9D QVNULAotCQkJCQkJCQkgIC0xKTsKLQkJCWlmIChzdWJFeHByID09IE5VTEwpCi0JCQkJZXJlcG9y dChFUlJPUiwKLQkJCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlTTUFUQ0gpLAotCQkJ CQkJIGVycm1zZygianNvbmIgc3Vic2NyaXB0IG11c3QgaGF2ZSB0ZXh0IHR5cGUiKSwKLQkJCQkJ CSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBleHByTG9jYXRpb24oc3ViRXhwcikpKSk7CisJ CQlzdWJFeHByID0gY29lcmNlX2pzb25wYXRoX3N1YnNjcmlwdF90b19pbnQ0X29yX3RleHQocHN0 YXRlLCBzdWJFeHByKTsKIAkJfQogCQllbHNlCiAJCXsKLS0gCjIuMzkuNSAoQXBwbGUgR2l0LTE1 NCkKCg== --000000000000d5ee4f063f6733dc Content-Type: application/octet-stream; name="v21-0005-Implement-read-only-dot-notation-for-jsonb.patch" Content-Disposition: attachment; filename="v21-0005-Implement-read-only-dot-notation-for-jsonb.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfvekico1 RnJvbSA0MDA1ZGNmODUzMTg4ODc2Y2MyMmFiNDUzZDUyMTEzZTQxZWExYjI5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5kcmEgV2FuZyA8YWxleGFuZHJhLndhbmcub3NzQGdt YWlsLmNvbT4KRGF0ZTogVHVlLCA4IEp1bCAyMDI1IDIyOjE4OjA3IC0wNzAwClN1YmplY3Q6IFtQ QVRDSCB2MjEgNS81XSBJbXBsZW1lbnQgcmVhZC1vbmx5IGRvdCBub3RhdGlvbiBmb3IganNvbmIK ClRoaXMgcGF0Y2ggaW50cm9kdWNlcyBKU09OQiBtZW1iZXIgYWNjZXNzIHVzaW5nIGRvdCBub3Rh dGlvbiB0aGF0CmFsaWducyB3aXRoIHRoZSBKU09OIHNpbXBsaWZpZWQgYWNjZXNzb3Igc3BlY2lm aWVkIGluIFNRTDoyMDIzLgoKRXhhbXBsZXM6CgotLSBTZXR1cApjcmVhdGUgdGFibGUgdCh4IGlu dCwgeSBqc29uYik7Cmluc2VydCBpbnRvIHQgc2VsZWN0IDEsICd7ImEiOiAxLCAiYiI6IDQyfSc6 Ompzb25iOwppbnNlcnQgaW50byB0IHNlbGVjdCAxLCAneyJhIjogMiwgImIiOiB7ImMiOiA0Mn19 Jzo6anNvbmI7Cmluc2VydCBpbnRvIHQgc2VsZWN0IDEsICd7ImEiOiAzLCAiYiI6IHsiYyI6ICI0 MiJ9LCAiZCI6WzExLCAxMl19Jzo6anNvbmI7CgotLSBFeGlzdGluZyBzeW50YXggaW4gUG9zdGdy ZVNRTCB0aGF0IHByZWRhdGVzIHRoZSBTUUwgc3RhbmRhcmQ6CnNlbGVjdCAodC55KS0+J2InIGZy b20gdDsKc2VsZWN0ICh0LnkpLT4nYictPidjJyBmcm9tIHQ7CnNlbGVjdCAodC55KS0+J2QnLT4w IGZyb20gdDsKCi0tIEpTT04gc2ltcGxpZmllZCBhY2Nlc3NvciBzcGVjaWZpZWQgYnkgdGhlIFNR TCBzdGFuZGFyZDoKc2VsZWN0ICh0LnkpLmIgZnJvbSB0OwpzZWxlY3QgKHQueSkuYi5jIGZyb20g dDsKc2VsZWN0ICh0LnkpLmRbMF0gZnJvbSB0OwoKVGhlIFNRTCBzdGFuZGFyZCBzdGF0ZXMgdGhh dCBzaW1wbGlmaWVkIGFjY2VzcyBpcyBlcXVpdmFsZW50IHRvOgpKU09OX1FVRVJZIChWRVAsICds YXggJC5KQycgV0lUSCBDT05ESVRJT05BTCBBUlJBWSBXUkFQUEVSIE5VTEwgT04gRU1QVFkgTlVM TCBPTiBFUlJPUikKCndoZXJlOgogIFZFUCA9IDx2YWx1ZSBleHByZXNzaW9uIHByaW1hcnk+CiAg SkMgPSA8SlNPTiBzaW1wbGlmaWVkIGFjY2Vzc29yIG9wIGNoYWluPgoKRm9yIGV4YW1wbGUsIHRo ZSBKU09OX1FVRVJZIGVxdWl2YWxlbnRzIG9mIHRoZSBhYm92ZSBxdWVyaWVzIGFyZToKCnNlbGVj dCBqc29uX3F1ZXJ5KHksICdsYXggJC5iJyBXSVRIIENPTkRJVElPTkFMIEFSUkFZIFdSQVBQRVIg TlVMTCBPTiBFTVBUWSBOVUxMIE9OIEVSUk9SKSBmcm9tIHQ7CnNlbGVjdCBqc29uX3F1ZXJ5KHks ICdsYXggJC5iLmMnIFdJVEggQ09ORElUSU9OQUwgQVJSQVkgV1JBUFBFUiBOVUxMIE9OIEVNUFRZ IE5VTEwgT04gRVJST1IpIGZyb20gdDsKc2VsZWN0IGpzb25fcXVlcnkoeSwgJ2xheCAkLmRbMF0n IFdJVEggQ09ORElUSU9OQUwgQVJSQVkgV1JBUFBFUiBOVUxMIE9OIEVNUFRZIE5VTEwgT04gRVJS T1IpIGZyb20gdDsKCkltcGxlbWVudGF0aW9uIGRldGFpbHM6CgpUaGlzIHBhdGNoIGV4dGVuZHMg dGhlIGV4aXN0aW5nIGNvbnRhaW5lciBzdWJzY3JpcHRpbmcgaW50ZXJmYWNlIHRvCnN1cHBvcnQg Y29udGFpbmVyLXNwZWNpZmljIGluZm9ybWF0aW9uLCBuYW1lbHkgYSBKU09OUGF0aCBleHByZXNz aW9uCmZvciBqc29uYi4KCkR1cmluZyBxdWVyeSB0cmFuc2Zvcm1hdGlvbiwgaWYgZG90LW5vdGF0 aW9uIGlzIHByZXNlbnQsIGEgSlNPTlBhdGgKZXhwcmVzc2lvbiBpcyBjb25zdHJ1Y3RlZCB0byBy ZXByZXNlbnQgdGhlIGFjY2VzcyBjaGFpbi4KClRoZW4gZHVyaW5nIGV4ZWN1dGlvbiwgaWYgYSBK U09OUGF0aCBleHByZXNzaW9uIGlzIHByZXNlbnQgaW4KSnNvbmJTdWJXb3Jrc3BhY2UsIGV4ZWN1 dGVzIGl0IHZpYSBKc29uUGF0aFF1ZXJ5KCkuCgpOb3RlIHRoYXQgd2UgY2Fubm90IHNpbXBseSBy ZXdyaXRlIHRoZSBhY2Nlc3NvcnMgaW50byBKU09OX1FVRVJZKCkKZHVyaW5nIHRyYW5zZm9ybWF0 aW9uLCBiZWNhdXNlIHRoZSBvcmlnaW5hbCBxdWVyeSBzdHJ1Y3R1cmUgbXVzdCBiZQpwcmVzZXJ2 ZWQgZm9yIEVYUExBSU4gYW5kIENSRUFURSBWSUVXLgoKQ28tYXV0aG9yZWQtYnk6IE5pa2l0YSBH bHVraG92IDxnbHVraG92Lm4uYUBnbWFpbC5jb20+CkNvLWF1dGhvcmVkLWJ5OiBBbGV4YW5kcmEg V2FuZyA8YWxleGFuZHJhLndhbmcub3NzQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEFuZHJldyBE dW5zdGFuIDxhbmRyZXdAZHVuc2xhbmUubmV0PgpSZXZpZXdlZC1ieTogTWF0aGV1cyBBbGNhbnRh cmEgPG1hdGhldXNzc2lsdjk3QGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IE1hcmsgRGlsZ2VyIDxt YXJrLmRpbGdlckBlbnRlcnByaXNlZGIuY29tPgpSZXZpZXdlZC1ieTogSmlhbiBIZSA8amlhbi51 bml2ZXJzYWxpdHlAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogVmlrIEZlYXJpbmcgPHZpa0Bwb3N0 Z3Jlc2ZyaWVuZHMub3JnPgpSZXZpZXdlZC1ieTogTmlraXRhIE1hbGFraG92IDxodWt1dG9jQGdt YWlsLmNvbT4KUmV2aWV3ZWQtYnk6IFBldGVyIEVpc2VudHJhdXQgPHBldGVyQGVpc2VudHJhdXQu b3JnPgpSZXZpZXdlZC1ieTogQ2hhbyBMaSA8bGkuZXZhbi5jaGFvQGdtYWlsLmNvbT4KVGVzdGVk LWJ5OiBKZWx0ZSBGZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5sPgotLS0KIGRvYy9zcmMv c2dtbC9qc29uLnNnbWwgICAgICAgICAgICAgICAgICAgICAgICB8IDMwMSArKysrKysrKysrKysK IHNyYy9iYWNrZW5kL2NhdGFsb2cvc3FsX2ZlYXR1cmVzLnR4dCAgICAgICAgICB8ICAgNCArLQog c3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYyAgICAgICAgICAgICAgIHwgIDgxICsrLS0K IHNyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jICAgICAgICAgICAgICAgICB8ICAxMiArCiBz cmMvYmFja2VuZC91dGlscy9hZHQvanNvbmJzdWJzLmMgICAgICAgICAgICAgfCAzMDIgKysrKysr KysrKystCiBzcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMgICAgICAgICAgICAgfCAg NDMgKy0KIHNyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oICAgICAgICAgICAgICAgICB8ICA1 NCArKy0KIC4uLi9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24uYyAgICAgICAgICB8IDEx MiArKysrLQogLi4uL2VjcGcvdGVzdC9leHBlY3RlZC9zcWwtc3FsanNvbi5zdGRlcnIgICAgIHwg MTAwICsrKysKIC4uLi9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24uc3Rkb3V0ICAgICB8 ICAgNyArCiBzcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3Qvc3FsL3NxbGpzb24ucGdjICAgICAgfCAg MzMgKysKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvanNvbmIub3V0ICAgICAgICAgICB8IDQ0 NCArKysrKysrKysrKysrKysrKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2pzb25iLnNxbCAgICAg ICAgICAgICAgICB8IDExNCArKysrKwogc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3Qg ICAgICAgICAgICAgIHwgICAxICsKIDE0IGZpbGVzIGNoYW5nZWQsIDE1MjYgaW5zZXJ0aW9ucygr KSwgODIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2pzb24uc2dtbCBi L2RvYy9zcmMvc2dtbC9qc29uLnNnbWwKaW5kZXggMjA2ZWFkYjhmN2IuLjQ0MDU1NzBkNjZlIDEw MDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvanNvbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9qc29u LnNnbWwKQEAgLTcxMiw2ICs3MTIsMzA3IEBAIFVQREFURSB0YWJsZV9uYW1lIFNFVCBqc29uYl9m aWVsZFsxXVsnYSddID0gJzEnOwogICA8L3BhcmE+CiAgPC9zZWN0Mj4KIAorIDxzZWN0MiBpZD0i anNvbmItc2ltcGxpZmllZC1hY2Nlc3NvciI+CisgIDx0aXRsZT5KU09OIFNpbXBsaWZpZWQgQWNj ZXNzb3I8L3RpdGxlPgorICA8cGFyYT4KKyAgIFBvc3RncmVTUUwgaW1wbGVtZW50cyB0aGUgSlNP TiBzaW1wbGlmaWVkIGFjY2Vzc29yIGFzIHNwZWNpZmllZCBpbiBTUUw6MjAyMy4KKyAgIFRoZSBT UUwgc3RhbmRhcmQgZGVmaW5lcyB0aGUgc2ltcGxpZmllZCBhY2Nlc3NvciBhcyBhIGNoYWluIG9m IG9wZXJhdGlvbnMKKyAgIHRoYXQgY2FuIGluY2x1ZGUgSlNPTiBtZW1iZXIgYWNjZXNzb3JzIChk b3Qgbm90YXRpb24gZm9yIG9iamVjdCBmaWVsZHMpCisgICBhbmQgSlNPTiBhcnJheSBhY2Nlc3Nv cnMgKGludGVnZXIgc3Vic2NyaXB0cyBmb3IgYXJyYXkgZWxlbWVudHMpLgorICAgVGhpcyBwcm92 aWRlcyBhIHN0YW5kYXJkaXplZCB3YXkgdG8gYWNjZXNzIEpTT04gZGF0YSB0aGF0IGNvbXBsZW1l bnRzCisgICBQb3N0Z3JlU1FMJ3MgcHJlLXN0YW5kYXJkIHN1YnNjcmlwdGluZyBhbmQgb3BlcmF0 b3ItYmFzZWQgYWNjZXNzIG1ldGhvZHMuCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRoZSBT UUw6MjAyMyBzaW1wbGlmaWVkIGFjY2Vzc29yIHN5bnRheCBpbmNsdWRlczoKKyAgIDxpdGVtaXpl ZGxpc3Q+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIDxlbXBoYXNpcz5KU09O IG1lbWJlciBhY2Nlc3Nvcjo8L2VtcGhhc2lzPiA8bGl0ZXJhbD5qc29uYl9jb2x1bW4uZmllbGRf bmFtZTwvbGl0ZXJhbD4KKyAgICAgIGZvciBhY2Nlc3Npbmcgb2JqZWN0IGZpZWxkcworICAgICA8 L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAg ICAgPGVtcGhhc2lzPkpTT04gYXJyYXkgYWNjZXNzb3I6PC9lbXBoYXNpcz4gPGxpdGVyYWw+anNv bmJfY29sdW1uW2luZGV4XTwvbGl0ZXJhbD4KKyAgICAgIGZvciBhY2Nlc3NpbmcgYXJyYXkgZWxl bWVudHMgYnkgaW50ZWdlciBpbmRleAorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAg IDwvaXRlbWl6ZWRsaXN0PgorICAgVGhlc2UgY2FuIGJlIGNoYWluZWQgdG9nZXRoZXI6IDxsaXRl cmFsPmpzb25iX2NvbHVtbi5maWVsZF9uYW1lWzBdLm5lc3RlZF9maWVsZDwvbGl0ZXJhbD4uCisg ICBXaGVuIGRvdCBub3RhdGlvbiBpcyBwcmVzZW50IGluIHRoZSBhY2Nlc3NvciBjaGFpbiwgdGhl IGVudGlyZSBjaGFpbiBmb2xsb3dzCisgICBTUUw6MjAyMyBzZW1hbnRpY3Mgd2l0aCBsYXggbW9k ZSBiZWhhdmlvciBhbmQgY29uZGl0aW9uYWwgYXJyYXkgd3JhcHBlci4KKyAgPC9wYXJhPgorCisg IDxwYXJhPgorICAgVGhlIEpTT04gc2ltcGxpZmllZCBhY2Nlc3NvciBpcyBzZW1hbnRpY2FsbHkg ZXF1aXZhbGVudCB0byB1c2luZworICAgPGZ1bmN0aW9uPkpTT05fUVVFUlk8L2Z1bmN0aW9uPiB3 aXRoIHRoZSA8bGl0ZXJhbD5sYXg8L2xpdGVyYWw+IG1vZGUgYW5kCisgICA8bGl0ZXJhbD5XSVRI IENPTkRJVElPTkFMIEFSUkFZIFdSQVBQRVIgTlVMTCBPTiBFTVBUWSBOVUxMIE9OIEVSUk9SPC9s aXRlcmFsPgorICAgb3B0aW9ucy4gRm9yIGV4YW1wbGUsIDxsaXRlcmFsPmpzb25fY29sLmZpZWxk PC9saXRlcmFsPiBpcyBlcXVpdmFsZW50IHRvCisgICA8bGl0ZXJhbD5KU09OX1FVRVJZKGpzb25f Y29sLCAnbGF4ICQuZmllbGQnIFdJVEggQ09ORElUSU9OQUwgQVJSQVkgV1JBUFBFUiBOVUxMIE9O IEVNUFRZIE5VTEwgT04gRVJST1IpPC9saXRlcmFsPi4KKyAgIFRoZSBjb25kaXRpb25hbCBhcnJh eSB3cmFwcGVyIHdyYXBzIG11bHRpcGxlIHJlc3VsdHMgaW4gYW4gYXJyYXkKKyAgIGJ1dCBsZWF2 ZXMgYSBzaW5nbGUgcmVzdWx0IGFzLWlzIHdpdGhvdXQgd3JhcHBpbmcuCisgIDwvcGFyYT4KKwor ICA8cGFyYT4KKyAgIEV4YW1wbGVzIG9mIEpTT04gc2ltcGxpZmllZCBhY2Nlc3NvciBzeW50YXg6 CisKKzxwcm9ncmFtbGlzdGluZz4KKworLS0gQmFzaWMgZmllbGQgYWNjZXNzCitTRUxFQ1QgKCd7 ImNvbG9yIjogInJlZCIsICJyZ2IiOiBbMjU1LCAwLCAwXX0nOjpqc29uYikuY29sb3I7CisKKy0t IE5lc3RlZCBmaWVsZCBhY2Nlc3MKK1NFTEVDVCAoJ3sidXNlciI6IHsicHJvZmlsZSI6IHsic2V0 dGluZ3MiOiB7InRoZW1lIjogImRhcmsifX19fSc6Ompzb25iKS51c2VyLnByb2ZpbGUuc2V0dGlu Z3MudGhlbWU7CisKKy0tIEpTT04gbWVtYmVyIGFjY2Vzc29yIGZvbGxvd2VkIGJ5IEpTT04gYXJy YXkgYWNjZXNzb3IgKGJvdGggcGFydCBvZiBzaW1wbGlmaWVkIGFjY2Vzc29yKQorU0VMRUNUICgn eyJyZXBlcnRvaXJlIjogW3sidGl0bGUiOiAiU3dhbiBMYWtlIn0sIHsidGl0bGUiOiAiVGhlIE51 dGNyYWNrZXIifV19Jzo6anNvbmIpLnJlcGVydG9pcmVbMV0udGl0bGU7CisKKy0tIEluIFdIRVJF IGNsYXVzZXMKK1NFTEVDVCAqIEZST00gdXNlcnMgV0hFUkUgcHJvZmlsZS5wcmVmZXJlbmNlcy50 aGVtZSA9ICciZGFyayInOworCistLSBDb21wYXJpc29uIHdpdGggb3RoZXIgYWNjZXNzIG1ldGhv ZHMgKE5PVCBlcXVpdmFsZW50IC0gZGlmZmVyZW50IHNlbWFudGljcyk6CitTRUxFQ1QganNvbl9j b2xbJ2FkZHJlc3MnXVsnY2l0eSddOyAgICAgICAgICAgLS0gU3Vic2NyaXB0aW5nCitTRUxFQ1Qg anNvbl9jb2wtPidhZGRyZXNzJy0+J2NpdHknOyAgICAgICAgICAgLS0gT3BlcmF0b3IKK1NFTEVD VCBqc29uX2NvbC5hZGRyZXNzLmNpdHk7ICAgICAgICAgICAgICAgICAtLSBTaW1wbGlmaWVkIGFj Y2Vzc29yIChkaWZmZXJlbnQgYmVoYXZpb3IpCis8L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+ CisKKyAgPHNlY3QzIGlkPSJqc29uYi1hY2Nlc3MtbWV0aG9kLWNvbXBhcmlzb24iPgorICAgPHRp dGxlPkNvbXBhcmlzb24gb2YgSlNPTiBBY2Nlc3MgTWV0aG9kczwvdGl0bGU+CisgICA8cGFyYT4K KyAgICBQb3N0Z3JlU1FMIHByb3ZpZGVzIHRocmVlIGRpZmZlcmVudCBhcHByb2FjaGVzIGZvciBh Y2Nlc3NpbmcgSlNPTiBkYXRhLCBlYWNoIHdpdGgKKyAgICBkaXN0aW5jdCBzZW1hbnRpY3MgYW5k IGJlaGF2aW9yczoKKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgPGVtcGhhc2lzPlNRTDoy MDIzIEpTT04gU2ltcGxpZmllZCBBY2Nlc3Nvcjo8L2VtcGhhc2lzPgorICAgIDxpdGVtaXplZGxp c3Q+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgIFN5bnRheDogPGxpdGVy YWw+anNvbl9jb2wuZmllbGRfbmFtZTwvbGl0ZXJhbD4gKG1lbWJlciBhY2Nlc3NvcikgYW5kCisg ICAgICAgPGxpdGVyYWw+anNvbl9jb2xbaW5kZXhdPC9saXRlcmFsPiAoYXJyYXkgYWNjZXNzb3Ig d2hlbiB1c2VkIHdpdGggZG90IG5vdGF0aW9uKQorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3Rp dGVtPgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBTdGFuZGFyZCBTUUw6 MjAyMyBiZWhhdmlvciB3aXRoIDxsaXRlcmFsPmxheDwvbGl0ZXJhbD4gbW9kZSBzZW1hbnRpY3MK KyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICAgPGxpc3RpdGVtPgorICAgICAg PHBhcmE+CisgICAgICAgQXV0b21hdGljIGFycmF5IHdyYXBwaW5nL3Vud3JhcHBpbmcgYXMgc3Bl Y2lmaWVkIGluIHRoZSBTUUwgc3RhbmRhcmQKKyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRl bT4KKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAgV2hlbiBhY2Nlc3Npbmcg YSBmaWVsZCBmcm9tIGFuIGFycmF5LCBvcGVyYXRlcyBvbiBlYWNoIGFycmF5IGVsZW1lbnQgYW5k IHdyYXBzIHJlc3VsdHMgaW4gYW4gYXJyYXk7CisgICAgICAgd2hlbiBhY2Nlc3NpbmcgYW4gYXJy YXkgaW5kZXggZnJvbSBhIG5vbi1hcnJheSwgd3JhcHMgdGhlIHZhbHVlIGFzIGFuIGFycmF5IGZp cnN0CisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgIDxsaXN0aXRlbT4KKyAg ICAgIDxwYXJhPgorICAgICAgIFRyaWdnZXJlZCB3aGVuIGRvdCBub3RhdGlvbiBpcyBwcmVzZW50 IGFueXdoZXJlIGluIHRoZSBhY2Nlc3NvciBjaGFpbgorICAgICAgPC9wYXJhPgorICAgICA8L2xp c3RpdGVtPgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBSZWFkLW9ubHkg YWNjZXNzCisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC9pdGVtaXplZGxp c3Q+CisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIDxlbXBoYXNpcz5QcmUtc3RhbmRhcmQg SlNPTkIgU3Vic2NyaXB0aW5nOjwvZW1waGFzaXM+CisgICAgPGl0ZW1pemVkbGlzdD4KKyAgICAg PGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAgU3ludGF4OiA8bGl0ZXJhbD5qc29uX2Nv bFsnZmllbGRfbmFtZSddPC9saXRlcmFsPiAodGV4dC1iYXNlZCkgYW5kCisgICAgICAgPGxpdGVy YWw+anNvbl9jb2xbaW5kZXhdPC9saXRlcmFsPiAoaW50ZWdlci1iYXNlZCB3aGVuIG5vIGRvdCBu b3RhdGlvbiBwcmVzZW50KQorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgICA8 bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBQb3N0Z3JlU1FMJ3Mgb3JpZ2luYWwgSlNP TkIgc3Vic2NyaXB0aW5nIGJlaGF2aW9yIChhdmFpbGFibGUgc2luY2UgdmVyc2lvbiAxNCkKKyAg ICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBh cmE+CisgICAgICAgRGlyZWN0IG9iamVjdCBmaWVsZCBhbmQgYXJyYXkgZWxlbWVudCBhY2Nlc3Mg d2l0aG91dCBhcnJheSB3cmFwcGluZy91bndyYXBwaW5nCisgICAgICA8L3BhcmE+CisgICAgIDwv bGlzdGl0ZW0+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgIFN1cHBvcnRz IGJvdGggcmVhZCBhbmQgd3JpdGUgb3BlcmF0aW9ucworICAgICAgPC9wYXJhPgorICAgICA8L2xp c3RpdGVtPgorICAgIDwvaXRlbWl6ZWRsaXN0PgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAg ICA8ZW1waGFzaXM+QXJyb3cgT3BlcmF0b3JzOjwvZW1waGFzaXM+CisgICAgPGl0ZW1pemVkbGlz dD4KKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAgU3ludGF4OiA8bGl0ZXJh bD5qc29uX2NvbC0+J2ZpZWxkX25hbWUnPC9saXRlcmFsPiBhbmQgPGxpdGVyYWw+anNvbl9jb2wt Pj4nZmllbGRfbmFtZSc8L2xpdGVyYWw+CisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+ CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgIFBvc3RncmVTUUwncyBKU09O IG9wZXJhdG9ycyB0aGF0IHdvcmsgd2l0aCBib3RoIDxsaXRlcmFsPmpzb248L2xpdGVyYWw+IGFu ZCA8bGl0ZXJhbD5qc29uYjwvbGl0ZXJhbD4gdHlwZXMKKyAgICAgIDwvcGFyYT4KKyAgICAgPC9s aXN0aXRlbT4KKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAgRGlyZWN0IG9i amVjdCBmaWVsZCBhbmQgYXJyYXkgZWxlbWVudCBhY2Nlc3Mgd2l0aG91dCBhcnJheSB3cmFwcGlu Zy91bndyYXBwaW5nCisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgIDxsaXN0 aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgIDxsaXRlcmFsPi0+PC9saXRlcmFsPiByZXR1cm5z IGpzb25iLCA8bGl0ZXJhbD4tPj48L2xpdGVyYWw+IHJldHVybnMgdGV4dAorICAgICAgPC9wYXJh PgorICAgICA8L2xpc3RpdGVtPgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAg ICBSZWFkLW9ubHkgYWNjZXNzCisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAg PC9pdGVtaXplZGxpc3Q+CisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIDxlbXBoYXNpcz5L ZXkgU2VtYW50aWMgRGlmZmVyZW5jZXM6PC9lbXBoYXNpcz4gVGhlIG1vc3QgaW1wb3J0YW50IGRp c3RpbmN0aW9ucyBhcmUKKyAgICBob3cgdGhlc2UgbWV0aG9kcyBoYW5kbGUgbWVtYmVyIGFjY2Vz cyBmcm9tIGFycmF5cyBhbmQgYXJyYXkgYWNjZXNzIGZyb20gbm9uLWFycmF5IHZhbHVlcy4KKyAg IDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgPGVtcGhhc2lzPk1lbWJlciBBY2Nlc3MgZnJvbSBB cnJheXM6PC9lbXBoYXNpcz4KKzxwcm9ncmFtbGlzdGluZz4KKy0tIFNldHVwIGRhdGEKK0lOU0VS VCBJTlRPIHRlc3RfdGFibGUgVkFMVUVTCisgICgneyJicmlnaHRuZXNzIjogODB9JyksICAgICAg ICAgICAgICAgICAgICAgIC0tIE9iamVjdCBjYXNlCisgICgnW3siYnJpZ2h0bmVzcyI6IDQ1fSwg eyJicmlnaHRuZXNzIjogOTB9XScpOyAtLSBBcnJheSBjYXNlCisKKy0tIERpZmZlcmVudCBiZWhh dmlvcnM6CitTRUxFQ1QgZGF0YS5icmlnaHRuZXNzIEZST00gdGVzdF90YWJsZTsgICAgICAgICAt LSBTaW1wbGlmaWVkIGFjY2Vzc29yCistLSBSZXN1bHRzOiA4MCwgWzQ1LCA5MF0gIChhcnJheSBl bGVtZW50cyB1bndyYXBwZWQsIHJlc3VsdHMgd3JhcHBlZCkKKworU0VMRUNUIGRhdGFbJ2JyaWdo dG5lc3MnXSBGUk9NIHRlc3RfdGFibGU7ICAgICAgLS0gUHJlLXN0YW5kYXJkIHN1YnNjcmlwdGlu ZworLS0gUmVzdWx0czogODAsIE5VTEwgICAgKG5vIGFycmF5IGhhbmRsaW5nKQorCitTRUxFQ1Qg ZGF0YS0+J2JyaWdodG5lc3MnIEZST00gdGVzdF90YWJsZTsgICAgICAtLSBBcnJvdyBvcGVyYXRv cgorLS0gUmVzdWx0czogODAsIE5VTEwgICAgKG5vIGFycmF5IGhhbmRsaW5nKQorPC9wcm9ncmFt bGlzdGluZz4KKworICAgIEluIHRoZSBhcnJheSBjYXNlLCB0aGUgc2ltcGxpZmllZCBhY2Nlc3Nv ciBhcHBsaWVzIHRoZSBmaWVsZCBhY2Nlc3MgdG8gZWFjaCBhcnJheSBlbGVtZW50CisgICAgKHVu d3JhcHBpbmcpIGFuZCBjb25kaXRpb25hbGx5IHdyYXBzIHRoZSByZXN1bHRzIGluIGFuIGFycmF5 LCB3aGlsZSBzdWJzY3JpcHRpbmcgYW5kIGFycm93IG9wZXJhdG9ycworICAgIGF0dGVtcHQgZGly ZWN0IGZpZWxkIGFjY2VzcyBvbiB0aGUgYXJyYXkgaXRzZWxmICh3aGljaCByZXR1cm5zIE5VTEwg c2luY2UKKyAgICBhcnJheXMgZG9uJ3QgaGF2ZSBuYW1lZCBmaWVsZHMpLgorICAgPC9wYXJhPgor CisgICA8cGFyYT4KKyAgICA8ZW1waGFzaXM+QXJyYXkgQWNjZXNzIGZyb20gT2JqZWN0cyAoTGF4 IE1vZGUgQmVoYXZpb3IpOjwvZW1waGFzaXM+Cis8cHJvZ3JhbWxpc3Rpbmc+CistLSBTZXR1cCBk YXRhCitJTlNFUlQgSU5UTyB0ZXN0X3RhYmxlIFZBTFVFUyAoJ3sid2VhdGhlciI6ICJzdW5ueSIs ICJ0ZW1wZXJhdHVyZSI6ICI3MkYifScpOworCistLSBEaWZmZXJlbnQgYmVoYXZpb3JzIHdoZW4g YWNjZXNzaW5nIFswXSBvbiBhIG5vbi1hcnJheSB2YWx1ZToKK1NFTEVDVCBkYXRhWzBdIEZST00g dGVzdF90YWJsZTsgICAgICAgICAgICAgICAgIC0tIFNpbXBsaWZpZWQgYWNjZXNzb3IgKGxheCBt b2RlLCBpZiBkb3RzIHByZXNlbnQgZWxzZXdoZXJlKQorLS0gUmVzdWx0OiB7IndlYXRoZXIiOiAi c3VubnkiLCAidGVtcGVyYXR1cmUiOiAiNzJGIn0gIChvYmplY3Qgd3JhcHBlZCBhcyBhcnJheSwg WzBdIHJldHVybnMgZW50aXJlIG9iamVjdCkKKworU0VMRUNUIGRhdGFbMF0gRlJPTSB0ZXN0X3Rh YmxlOyAgICAgICAgICAgICAgICAgLS0gUHJlLXN0YW5kYXJkIHN1YnNjcmlwdGluZyAoc3RyaWN0 IG1vZGUsIG5vIGRvdHMpCistLSBSZXN1bHQ6IE5VTEwgIChubyB3cmFwcGluZywgZGlyZWN0IGFy cmF5IGFjY2VzcyBvbiBvYmplY3QgZmFpbHMpCisKK1NFTEVDVCBkYXRhLT4wIEZST00gdGVzdF90 YWJsZTsgICAgICAgICAgICAgICAgIC0tIEFycm93IG9wZXJhdG9yIChzdHJpY3QgbW9kZSkKKy0t IFJlc3VsdDogTlVMTCAgKG5vIHdyYXBwaW5nLCBkaXJlY3QgYXJyYXkgYWNjZXNzIG9uIG9iamVj dCBmYWlscykKKzwvcHJvZ3JhbWxpc3Rpbmc+CisKKyAgICBJbiBsYXggbW9kZSAoc2ltcGxpZmll ZCBhY2Nlc3NvciksIHdoZW4gYW4gYXJyYXkgb3BlcmF0aW9uIGlzIHBlcmZvcm1lZCBvbiBhIG5v bi1hcnJheSB2YWx1ZSwKKyAgICB0aGUgdmFsdWUgaXMgZmlyc3Qgd3JhcHBlZCBpbiBhbiBhcnJh eSwgdGhlbiB0aGUgb3BlcmF0aW9uIHByb2NlZWRzLiBJbiBzdHJpY3QgbW9kZQorICAgIChwcmUt c3RhbmRhcmQgbWV0aG9kcyksIHRoZSBvcGVyYXRpb24gZmFpbHMgYW5kIHJldHVybnMgTlVMTC4K KyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgPGVtcGhhc2lzPldoZW4gdG8gVXNlIEVhY2gg TWV0aG9kOjwvZW1waGFzaXM+CisgICAgPGl0ZW1pemVkbGlzdD4KKyAgICAgPGxpc3RpdGVtPgor ICAgICAgPHBhcmE+CisgICAgICAgVXNlIDxlbXBoYXNpcz5TUUw6MjAyMyBzaW1wbGlmaWVkIGFj Y2Vzc29yPC9lbXBoYXNpcz4gZm9yIHN0YW5kYXJkIGNvbXBsaWFuY2UgYW5kIHdoZW4geW91IHdh bnQgbGF4IG1vZGUgYW5kIGNvbmRpdGlvbmFsIGFycmF5IHdyYXBwZXIKKyAgICAgIDwvcGFyYT4K KyAgICAgPC9saXN0aXRlbT4KKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAg VXNlIDxlbXBoYXNpcz5wcmUtc3RhbmRhcmQgc3Vic2NyaXB0aW5nPC9lbXBoYXNpcz4gZm9yIHdy aXRlIG9wZXJhdGlvbnMgb3Igd2hlbiB5b3UgbmVlZCBkaXJlY3QgZmllbGQgYWNjZXNzIHdpdGhv dXQgYXJyYXkgcHJvY2Vzc2luZworICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAg ICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBVc2UgPGVtcGhhc2lzPmFycm93IG9w ZXJhdG9yczwvZW1waGFzaXM+IHdoZW4geW91IG5lZWQgdGV4dCBvdXRwdXQgKDxsaXRlcmFsPi0+ PjwvbGl0ZXJhbD4pIG9yIHdoZW4gd29ya2luZyB3aXRoIGJvdGggPGxpdGVyYWw+anNvbjwvbGl0 ZXJhbD4gYW5kIDxsaXRlcmFsPmpzb25iPC9saXRlcmFsPiB0eXBlcworICAgICAgPC9wYXJhPgor ICAgICA8L2xpc3RpdGVtPgorICAgIDwvaXRlbWl6ZWRsaXN0PgorICAgPC9wYXJhPgorICA8L3Nl Y3QzPgorCisgIDxzZWN0MyBpZD0ianNvbmItYWNjZXNzb3ItYmVzdC1wcmFjdGljZXMiPgorICAg PHRpdGxlPkJlc3QgUHJhY3RpY2VzOiBBdm9pZCBNaXhpbmcgQWNjZXNzIE1ldGhvZHM8L3RpdGxl PgorICAgPHBhcmE+CisgICAgPGVtcGhhc2lzPkltcG9ydGFudDo8L2VtcGhhc2lzPiBEbyBub3Qg bWl4IFNRTDoyMDIzIHNpbXBsaWZpZWQgYWNjZXNzb3Igc3ludGF4CisgICAgd2l0aCBwcmUtc3Rh bmRhcmQgc3Vic2NyaXB0aW5nIHN5bnRheCBpbiB0aGUgc2FtZSBhY2Nlc3NvciBjaGFpbi4gVGhl c2UKKyAgICBtZXRob2RzIGhhdmUgc3VidGx5IGRpZmZlcmVudCBzZW1hbnRpY3MgYW5kIGFyZSBu b3QgaW50ZXJjaGFuZ2VhYmxlIGFsaWFzZXMuCisgICAgTWl4aW5nIHRoZW0gY2FuIGxlYWQgdG8g Y29uZnVzaW9uIGFuZCBjb2RlIHRoYXQgaXMgZGlmZmljdWx0IHRvIHVuZGVyc3RhbmQuCisgICA8 L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIDxlbXBoYXNpcz5SZWNvbW1lbmRlZCAtIENvbnNpc3Rl bnQgc2ltcGxpZmllZCBhY2Nlc3Nvcjo8L2VtcGhhc2lzPgorPHByb2dyYW1saXN0aW5nPgorLS0g QWxsIHBhcnRzIHVzZSBzaW1wbGlmaWVkIGFjY2Vzc29yIChzdGFuZGFyZCBiZWhhdmlvcikKK1NF TEVDVCBkYXRhLmxvY2F0aW9uLmNvb3JkaW5hdGVzLmxhdGl0dWRlIEZST00gdGFibGU7ICAtLSBH b29kCitTRUxFQ1QgZGF0YS5yZXBlcnRvaXJlWzBdLnRpdGxlIEZST00gdGFibGU7ICAgICAgICAg ICAtLSBHb29kCitTRUxFQ1QgZGF0YS51c2Vyc1sxXS5wcm9maWxlLmVtYWlsIEZST00gdGFibGU7 ICAgICAgICAtLSBHb29kCis8L3Byb2dyYW1saXN0aW5nPgorICAgPC9wYXJhPgorCisgICA8cGFy YT4KKyAgICA8ZW1waGFzaXM+UmVjb21tZW5kZWQgLSBDb25zaXN0ZW50IHByZS1zdGFuZGFyZCBz dWJzY3JpcHRpbmc6PC9lbXBoYXNpcz4KKzxwcm9ncmFtbGlzdGluZz4KKy0tIEFsbCBwYXJ0cyB1 c2UgcHJlLXN0YW5kYXJkIHN1YnNjcmlwdGluZworU0VMRUNUIGRhdGFbJ2xvY2F0aW9uJ11bJ2Nv b3JkaW5hdGVzJ11bJ2xhdGl0dWRlJ10gRlJPTSB0YWJsZTsgLS0gR29vZAorU0VMRUNUIGRhdGFb MF1bJ3RpdGxlJ10gRlJPTSB0YWJsZTsgICAgICAgICAgICAgICAgICAgIC0tIEdvb2QgKHdoZW4g bm8gZG90cyBwcmVzZW50KQorU0VMRUNUIGRhdGFbJ3VzZXJzJ11bMV1bJ3Byb2ZpbGUnXVsnZW1h aWwnXSBGUk9NIHRhYmxlOyAtLSBHb29kCis8L3Byb2dyYW1saXN0aW5nPgorICAgPC9wYXJhPgor CisgICA8cGFyYT4KKyAgICA8ZW1waGFzaXM+Tm90IHJlY29tbWVuZGVkIC0gTWl4ZWQgc3ludGF4 OjwvZW1waGFzaXM+Cis8cHJvZ3JhbWxpc3Rpbmc+CistLSBNaXhpbmcgc2ltcGxpZmllZCBhY2Nl c3NvciB3aXRoIHByZS1zdGFuZGFyZCBzdWJzY3JpcHRpbmcKK1NFTEVDVCBkYXRhLmxvY2F0aW9u WydsYXRpdHVkZSddIEZST00gdGFibGU7ICAgICAgIC0tIEF2b2lkCitTRUxFQ1QgZGF0YVsncmVw ZXJ0b2lyZSddWzBdLnRpdGxlIEZST00gdGFibGU7ICAgIC0tIEF2b2lkCis8L3Byb2dyYW1saXN0 aW5nPgorICAgIFdoaWxlIHRoZXNlIG1peGVkIGZvcm1zIHdvcmsgYXMgZGVzaWduZWQsIHRoZXkg Y2FuIGJlIHZlcnkgY29uZnVzaW5nCisgICAgYmVjYXVzZSB0aGUgc2ltcGxpZmllZCBhY2Nlc3Nv ciBjYW5ub3QgaGFuZGxlIHRleHQtYmFzZWQgc3Vic2NyaXB0cyBsaWtlIGBbJ2ZpZWxkJ11gLgor ICAgIFRoaXMgZm9yY2VzIGEgZmFsbGJhY2sgdG8gcHJlLXN0YW5kYXJkIHNlbWFudGljcyBmb3Ig dGhvc2Ugc3BlY2lmaWMgcGFydHMsCisgICAgY3JlYXRpbmcgYSBjaGFpbiB0aGF0IHN3aXRjaGVz IGJldHdlZW4gbGF4IG1vZGUgKGZvciBkb3Qgbm90YXRpb24pIGFuZAorICAgIHN0cmljdCBtb2Rl IChmb3IgdGV4dCBzdWJzY3JpcHRzKSB3aXRoaW4gdGhlIHNhbWUgYWNjZXNzb3IgZXhwcmVzc2lv bi4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgQ2hvb3NlIG9uZSBhcHByb2FjaCBjb25z aXN0ZW50bHkgdGhyb3VnaG91dCB5b3VyIGFjY2Vzc29yIGNoYWluIHRvIGVuc3VyZQorICAgIHBy ZWRpY3RhYmxlIGFuZCBtYWludGFpbmFibGUgY29kZS4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+ CisgICAgPGVtcGhhc2lzPkN1cnJlbnQgSW1wbGVtZW50YXRpb246PC9lbXBoYXNpcz4gVGhlIGN1 cnJlbnQgaW1wbGVtZW50YXRpb24gc3VwcG9ydHMKKyAgICBKU09OIG1lbWJlciBhY2Nlc3NvcnMg KGRvdCBub3RhdGlvbikgYW5kIEpTT04gYXJyYXkgYWNjZXNzb3JzIChpbnRlZ2VyIHN1YnNjcmlw dHMpCisgICAgYXMgZGVmaW5lZCBpbiB0aGUgU1FMOjIwMjMgc2ltcGxpZmllZCBhY2Nlc3NvciBz cGVjaWZpY2F0aW9uLgorICAgIEFkdmFuY2VkIGZlYXR1cmVzIGZyb20gdGhlIFNRTDoyMDIzIHNw ZWNpZmljYXRpb24sIHN1Y2ggYXMgd2lsZGNhcmQgbWVtYmVyCisgICAgYWNjZXNzb3JzIGFuZCBp dGVtIG1ldGhvZCBhY2Nlc3NvcnMsIGFyZSBub3QgeWV0IGltcGxlbWVudGVkLgorICAgPC9wYXJh PgorICA8L3NlY3QzPgorIDwvc2VjdDI+CisKICA8c2VjdDIgaWQ9ImRhdGF0eXBlLWpzb24tdHJh bnNmb3JtcyI+CiAgIDx0aXRsZT5UcmFuc2Zvcm1zPC90aXRsZT4KIApkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvY2F0YWxvZy9zcWxfZmVhdHVyZXMudHh0IGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9z cWxfZmVhdHVyZXMudHh0CmluZGV4IGViZTg1MzM3YzI4Li40NTdlOTkzMzA1ZSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zcWxfZmVhdHVyZXMudHh0CisrKyBiL3NyYy9iYWNrZW5k L2NhdGFsb2cvc3FsX2ZlYXR1cmVzLnR4dApAQCAtNTY4LDggKzU2OCw4IEBAIFQ4MzgJSlNPTl9U QUJMRTogUExBTiBERUZBVUxUIGNsYXVzZQkJCU5PCiBUODM5CUZvcm1hdHRlZCBjYXN0IG9mIGRh dGV0aW1lcyB0by9mcm9tIGNoYXJhY3RlciBzdHJpbmdzCQkJTk8JCiBUODQwCUhleCBpbnRlZ2Vy IGxpdGVyYWxzIGluIFNRTC9KU09OIHBhdGggbGFuZ3VhZ2UJCQlZRVMJCiBUODUxCVNRTC9KU09O OiBvcHRpb25hbCBrZXl3b3JkcyBmb3IgZGVmYXVsdCBzeW50YXgJCQlZRVMJCi1UODYwCVNRTC9K U09OIHNpbXBsaWZpZWQgYWNjZXNzb3I6IGNvbHVtbiByZWZlcmVuY2Ugb25seQkJCU5PCQotVDg2 MQlTUUwvSlNPTiBzaW1wbGlmaWVkIGFjY2Vzc29yOiBjYXNlLXNlbnNpdGl2ZSBKU09OIG1lbWJl ciBhY2Nlc3NvcgkJCU5PCQorVDg2MAlTUUwvSlNPTiBzaW1wbGlmaWVkIGFjY2Vzc29yOiBjb2x1 bW4gcmVmZXJlbmNlIG9ubHkJCQlZRVMJCitUODYxCVNRTC9KU09OIHNpbXBsaWZpZWQgYWNjZXNz b3I6IGNhc2Utc2Vuc2l0aXZlIEpTT04gbWVtYmVyIGFjY2Vzc29yCQkJWUVTCQogVDg2MglTUUwv SlNPTiBzaW1wbGlmaWVkIGFjY2Vzc29yOiB3aWxkY2FyZCBtZW1iZXIgYWNjZXNzb3IJCQlOTwkK IFQ4NjMJU1FML0pTT04gc2ltcGxpZmllZCBhY2Nlc3Nvcjogc2luZ2xlLXF1b3RlZCBzdHJpbmcg bGl0ZXJhbCBhcyBtZW1iZXIgYWNjZXNzb3IJCQlOTwkKIFQ4NjQJU1FML0pTT04gc2ltcGxpZmll ZCBhY2Nlc3NvcgkJCU5PCQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4 cHIuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMKaW5kZXggZjE1Njk4NzliNTIu LjM4NWM4ZDBjZWZlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5j CisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMKQEAgLTMzMjAsNTAgKzMzMjAs NTkgQEAgRXhlY0luaXRTdWJzY3JpcHRpbmdSZWYoRXhwckV2YWxTdGVwICpzY3JhdGNoLCBTdWJz Y3JpcHRpbmdSZWYgKnNic3JlZiwKIAkJCQkJCQkJICAgc3RhdGUtPnN0ZXBzX2xlbiAtIDEpOwog CX0KIAotCS8qIEV2YWx1YXRlIHVwcGVyIHN1YnNjcmlwdHMgKi8KLQlpID0gMDsKLQlmb3JlYWNo KGxjLCBzYnNyZWYtPnJlZnVwcGVyaW5kZXhwcikKKwkvKiBFdmFsdWF0ZSB1cHBlciBzdWJzY3Jp cHRzLCB1bmxlc3MgcmVmanNvbmJwYXRoIGlzIHVzZWQgZm9yIGV4ZWN1dGlvbiAqLworCWlmICgh c2JzcmVmLT5yZWZqc29uYnBhdGgpCiAJewotCQlFeHByCSAgICplID0gKEV4cHIgKikgbGZpcnN0 KGxjKTsKLQotCQkvKiBXaGVuIHNsaWNpbmcsIGluZGl2aWR1YWwgc3Vic2NyaXB0IGJvdW5kcyBj YW4gYmUgb21pdHRlZCAqLwotCQlpZiAoIWUpCi0JCXsKLQkJCXNic3JlZnN0YXRlLT51cHBlcnBy b3ZpZGVkW2ldID0gZmFsc2U7Ci0JCQlzYnNyZWZzdGF0ZS0+dXBwZXJpbmRleG51bGxbaV0gPSB0 cnVlOwotCQl9Ci0JCWVsc2UKKwkJaSA9IDA7CisJCWZvcmVhY2gobGMsIHNic3JlZi0+cmVmdXBw ZXJpbmRleHByKQogCQl7Ci0JCQlzYnNyZWZzdGF0ZS0+dXBwZXJwcm92aWRlZFtpXSA9IHRydWU7 Ci0JCQkvKiBFYWNoIHN1YnNjcmlwdCBpcyBldmFsdWF0ZWQgaW50byBhcHByb3ByaWF0ZSBhcnJh eSBlbnRyeSAqLwotCQkJRXhlY0luaXRFeHByUmVjKGUsIHN0YXRlLAotCQkJCQkJCSZzYnNyZWZz dGF0ZS0+dXBwZXJpbmRleFtpXSwKLQkJCQkJCQkmc2JzcmVmc3RhdGUtPnVwcGVyaW5kZXhudWxs W2ldKTsKKwkJCUV4cHIgKmUgPSAoRXhwciAqKSBsZmlyc3QobGMpOworCisJCQkvKiBXaGVuIHNs aWNpbmcsIGluZGl2aWR1YWwgc3Vic2NyaXB0IGJvdW5kcyBjYW4gYmUgb21pdHRlZCAqLworCQkJ aWYgKCFlKQorCQkJeworCQkJCXNic3JlZnN0YXRlLT51cHBlcnByb3ZpZGVkW2ldID0gZmFsc2U7 CisJCQkJc2JzcmVmc3RhdGUtPnVwcGVyaW5kZXhudWxsW2ldID0gdHJ1ZTsKKwkJCX0KKwkJCWVs c2UKKwkJCXsKKwkJCQlzYnNyZWZzdGF0ZS0+dXBwZXJwcm92aWRlZFtpXSA9IHRydWU7CisJCQkJ LyogRWFjaCBzdWJzY3JpcHQgaXMgZXZhbHVhdGVkIGludG8gYXBwcm9wcmlhdGUgYXJyYXkgZW50 cnkgKi8KKwkJCQlFeGVjSW5pdEV4cHJSZWMoZSwgc3RhdGUsCisJCQkJCQkJCSZzYnNyZWZzdGF0 ZS0+dXBwZXJpbmRleFtpXSwKKwkJCQkJCQkJJnNic3JlZnN0YXRlLT51cHBlcmluZGV4bnVsbFtp XSk7CisJCQl9CisJCQlpKys7CiAJCX0KLQkJaSsrOwogCX0KIAotCS8qIEV2YWx1YXRlIGxvd2Vy IHN1YnNjcmlwdHMgc2ltaWxhcmx5ICovCi0JaSA9IDA7Ci0JZm9yZWFjaChsYywgc2JzcmVmLT5y ZWZsb3dlcmluZGV4cHIpCisJLyoKKwkgKiBFdmFsdWF0ZSBsb3dlciBzdWJzY3JpcHRzIHNpbWls YXJseSwgdW5sZXNzIHJlZmpzb25icGF0aCBpcyB1c2VkIGZvcgorCSAqIGV4ZWN1dGlvbgorCSAq LworCWlmICghc2JzcmVmLT5yZWZqc29uYnBhdGgpCiAJewotCQlFeHByCSAgICplID0gKEV4cHIg KikgbGZpcnN0KGxjKTsKLQotCQkvKiBXaGVuIHNsaWNpbmcsIGluZGl2aWR1YWwgc3Vic2NyaXB0 IGJvdW5kcyBjYW4gYmUgb21pdHRlZCAqLwotCQlpZiAoIWUpCi0JCXsKLQkJCXNic3JlZnN0YXRl LT5sb3dlcnByb3ZpZGVkW2ldID0gZmFsc2U7Ci0JCQlzYnNyZWZzdGF0ZS0+bG93ZXJpbmRleG51 bGxbaV0gPSB0cnVlOwotCQl9Ci0JCWVsc2UKKwkJaSA9IDA7CisJCWZvcmVhY2gobGMsIHNic3Jl Zi0+cmVmbG93ZXJpbmRleHByKQogCQl7Ci0JCQlzYnNyZWZzdGF0ZS0+bG93ZXJwcm92aWRlZFtp XSA9IHRydWU7Ci0JCQkvKiBFYWNoIHN1YnNjcmlwdCBpcyBldmFsdWF0ZWQgaW50byBhcHByb3By aWF0ZSBhcnJheSBlbnRyeSAqLwotCQkJRXhlY0luaXRFeHByUmVjKGUsIHN0YXRlLAotCQkJCQkJ CSZzYnNyZWZzdGF0ZS0+bG93ZXJpbmRleFtpXSwKLQkJCQkJCQkmc2JzcmVmc3RhdGUtPmxvd2Vy aW5kZXhudWxsW2ldKTsKKwkJCUV4cHIJICAgKmUgPSAoRXhwciAqKSBsZmlyc3QobGMpOworCisJ CQkvKiBXaGVuIHNsaWNpbmcsIGluZGl2aWR1YWwgc3Vic2NyaXB0IGJvdW5kcyBjYW4gYmUgb21p dHRlZCAqLworCQkJaWYgKCFlKQorCQkJeworCQkJCXNic3JlZnN0YXRlLT5sb3dlcnByb3ZpZGVk W2ldID0gZmFsc2U7CisJCQkJc2JzcmVmc3RhdGUtPmxvd2VyaW5kZXhudWxsW2ldID0gdHJ1ZTsK KwkJCX0KKwkJCWVsc2UKKwkJCXsKKwkJCQlzYnNyZWZzdGF0ZS0+bG93ZXJwcm92aWRlZFtpXSA9 IHRydWU7CisJCQkJLyogRWFjaCBzdWJzY3JpcHQgaXMgZXZhbHVhdGVkIGludG8gYXBwcm9wcmlh dGUgYXJyYXkgZW50cnkgKi8KKwkJCQlFeGVjSW5pdEV4cHJSZWMoZSwgc3RhdGUsCisJCQkJCQkJ CSZzYnNyZWZzdGF0ZS0+bG93ZXJpbmRleFtpXSwKKwkJCQkJCQkJJnNic3JlZnN0YXRlLT5sb3dl cmluZGV4bnVsbFtpXSk7CisJCQl9CisJCQlpKys7CiAJCX0KLQkJaSsrOwogCX0KIAogCS8qIFNC U1JFRl9TVUJTQ1JJUFRTIGNoZWNrcyBhbmQgY29udmVydHMgYWxsIHRoZSBzdWJzY3JpcHRzIGF0 IG9uY2UgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jIGIvc3Jj L2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKaW5kZXggN2JjODIzNTA3ZjEuLmQxYmQ1NzVkOWJk IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYworKysgYi9zcmMvYmFj a2VuZC9ub2Rlcy9ub2RlRnVuY3MuYwpAQCAtMjg0LDYgKzI4NCwxMyBAQCBleHByVHlwZShjb25z dCBOb2RlICpleHByKQogCQljYXNlIFRfUGxhY2VIb2xkZXJWYXI6CiAJCQl0eXBlID0gZXhwclR5 cGUoKE5vZGUgKikgKChjb25zdCBQbGFjZUhvbGRlclZhciAqKSBleHByKS0+cGhleHByKTsKIAkJ CWJyZWFrOworCQljYXNlIFRfRmllbGRBY2Nlc3NvckV4cHI6CisJCQkvKgorCQkJICogRmllbGRB Y2Nlc3NvckV4cHIgaXMgbm90IGV2YWx1YWJsZS4gVHJlYXQgaXQgYXMgVEVYVCBmb3IgY29sbGF0 aW9uLAorCQkJICogZGVwYXJzaW5nLCBhbmQgc2ltaWxhciBwdXJwb3Nlcywgc2luY2UgaXQgcmVw cmVzZW50cyBhIEpTT04gZmllbGQgbmFtZS4KKwkJCSAqLworCQkJdHlwZSA9IFRFWFRPSUQ7CisJ CQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgbm9kZSB0 eXBlOiAlZCIsIChpbnQpIG5vZGVUYWcoZXhwcikpOwogCQkJdHlwZSA9IEludmFsaWRPaWQ7CS8q IGtlZXAgY29tcGlsZXIgcXVpZXQgKi8KQEAgLTExNDYsNiArMTE1Myw5IEBAIGV4cHJTZXRDb2xs YXRpb24oTm9kZSAqZXhwciwgT2lkIGNvbGxhdGlvbikKIAkJY2FzZSBUX01lcmdlU3VwcG9ydEZ1 bmM6CiAJCQkoKE1lcmdlU3VwcG9ydEZ1bmMgKikgZXhwciktPm1zZmNvbGxpZCA9IGNvbGxhdGlv bjsKIAkJCWJyZWFrOworCQljYXNlIFRfRmllbGRBY2Nlc3NvckV4cHI6CisJCQkoKEZpZWxkQWNj ZXNzb3JFeHByICopIGV4cHIpLT5mYWVjb2xsaWQgPSBjb2xsYXRpb247CisJCQlicmVhazsKIAkJ Y2FzZSBUX1N1YnNjcmlwdGluZ1JlZjoKIAkJCSgoU3Vic2NyaXB0aW5nUmVmICopIGV4cHIpLT5y ZWZjb2xsaWQgPSBjb2xsYXRpb247CiAJCQlicmVhazsKQEAgLTIxMjksNiArMjEzOSw3IEBAIGV4 cHJlc3Npb25fdHJlZV93YWxrZXJfaW1wbChOb2RlICpub2RlLAogCQljYXNlIFRfU29ydEdyb3Vw Q2xhdXNlOgogCQljYXNlIFRfQ1RFU2VhcmNoQ2xhdXNlOgogCQljYXNlIFRfTWVyZ2VTdXBwb3J0 RnVuYzoKKwkJY2FzZSBUX0ZpZWxkQWNjZXNzb3JFeHByOgogCQkJLyogcHJpbWl0aXZlIG5vZGUg dHlwZXMgd2l0aCBubyBleHByZXNzaW9uIHN1Ym5vZGVzICovCiAJCQlicmVhazsKIAkJY2FzZSBU X1dpdGhDaGVja09wdGlvbjoKQEAgLTMwMDgsNiArMzAxOSw3IEBAIGV4cHJlc3Npb25fdHJlZV9t dXRhdG9yX2ltcGwoTm9kZSAqbm9kZSwKIAkJY2FzZSBUX1NvcnRHcm91cENsYXVzZToKIAkJY2Fz ZSBUX0NURVNlYXJjaENsYXVzZToKIAkJY2FzZSBUX01lcmdlU3VwcG9ydEZ1bmM6CisJCWNhc2Ug VF9GaWVsZEFjY2Vzc29yRXhwcjoKIAkJCXJldHVybiBjb3B5T2JqZWN0KG5vZGUpOwogCQljYXNl IFRfV2l0aENoZWNrT3B0aW9uOgogCQkJewpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L2pzb25ic3Vicy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25ic3Vicy5jCmluZGV4 IDUxNjE0NmQxMTQ2Li5iZGZlNmEzMTBkZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L2pzb25ic3Vicy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uYnN1YnMuYwpA QCAtMTUsMjEgKzE1LDMwIEBACiAjaW5jbHVkZSAicG9zdGdyZXMuaCIKIAogI2luY2x1ZGUgImV4 ZWN1dG9yL2V4ZWNFeHByLmgiCisjaW5jbHVkZSAibm9kZXMvbWFrZWZ1bmNzLmgiCiAjaW5jbHVk ZSAibm9kZXMvbm9kZUZ1bmNzLmgiCiAjaW5jbHVkZSAibm9kZXMvc3Vic2NyaXB0aW5nLmgiCiAj aW5jbHVkZSAicGFyc2VyL3BhcnNlX2NvZXJjZS5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV9l eHByLmgiCiAjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKICNpbmNsdWRlICJ1dGlscy9qc29u Yi5oIgorI2luY2x1ZGUgInV0aWxzL2pzb25wYXRoLmgiCiAKIAotLyogU3Vic2NyaXB0aW5nUmVm U3RhdGUud29ya3NwYWNlIGZvciBqc29uYiBzdWJzY3JpcHRpbmcgZXhlY3V0aW9uICovCisvKgor ICogU3Vic2NyaXB0aW5nUmVmU3RhdGUud29ya3NwYWNlIGZvciBnZW5lcmljIGpzb25iIHN1YnNj cmlwdGluZyBleGVjdXRpb24uCisgKgorICogU3RvcmVzIHN0YXRlIGZvciBib3RoIGpzb25iIHNp bXBsZSBzdWJzY3JpcHRpbmcgYW5kIGRvdCBub3RhdGlvbiBhY2Nlc3MuCisgKiBEb3Qgbm90YXRp b24gYWRkaXRpb25hbGx5IHVzZXMgYGpzb25wYXRoYCBmb3IgSnNvblBhdGggZXZhbHVhdGlvbi4K KyAqLwogdHlwZWRlZiBzdHJ1Y3QgSnNvbmJTdWJXb3Jrc3BhY2UKIHsKIAlib29sCQlleHBlY3RB cnJheTsJLyoganNvbmIgcm9vdCBpcyBleHBlY3RlZCB0byBiZSBhbiBhcnJheSAqLwogCU9pZAkJ ICAgKmluZGV4T2lkOwkJLyogT0lEIG9mIGNvZXJjZWQgc3Vic2NyaXB0IGV4cHJlc3Npb24sIGNv dWxkCiAJCQkJCQkJCSAqIGJlIG9ubHkgaW50ZWdlciBvciB0ZXh0ICovCiAJRGF0dW0JICAgKmlu ZGV4OwkJCS8qIFN1YnNjcmlwdCB2YWx1ZXMgaW4gRGF0dW0gZm9ybWF0ICovCisJSnNvblBhdGgg ICAqanNvbnBhdGg7CQkvKiBKc29uUGF0aCBmb3IgZG90IG5vdGF0aW9uIGV4ZWN1dGlvbiB2aWEK KwkJCQkJCQkJICogSnNvblBhdGhRdWVyeSgpICovCiB9IEpzb25iU3ViV29ya3NwYWNlOwogCiBz dGF0aWMgTm9kZSAqCkBAIC05Niw2ICsxMDUsMjMzIEBAIGNvZXJjZV9qc29ucGF0aF9zdWJzY3Jp cHRfdG9faW50NF9vcl90ZXh0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqc3ViRXhwcikKIAly ZXR1cm4gc3ViRXhwcjsKIH0KIAorLyoKKyAqIER1cmluZyB0cmFuc2Zvcm1hdGlvbiwgZGV0ZXJt aW5lIHdoZXRoZXIgdG8gYnVpbGQgYSBKc29uUGF0aAorICogZm9yIEpzb25QYXRoUXVlcnkoKSBl eGVjdXRpb24uCisgKgorICogSnNvblBhdGggaXMgbmVlZGVkIGlmIHRoZSBpbmRpcmVjdGlvbiBs aXN0IGluY2x1ZGVzOgorICogLSBTdHJpbmctYmFzZWQgYWNjZXNzIChkb3Qgbm90YXRpb24pCisg KiAtIFNsaWNlLWJhc2VkIHN1YnNjcmlwdGluZyAod2hlbiBpc1NsaWNlIGlzIHRydWUpCisgKgor ICogT3RoZXJ3aXNlLCBzaW1wbGUganNvbmIgc3Vic2NyaXB0aW5nIGlzIGVub3VnaC4KKyAqLwor c3RhdGljIGJvb2wKK2pzb25iX2NoZWNrX2pzb25wYXRoX25lZWRlZChMaXN0ICppbmRpcmVjdGlv bikKK3sKKwlMaXN0Q2VsbCAgICpsYzsKKworCWZvcmVhY2gobGMsIGluZGlyZWN0aW9uKQorCXsK KwkJTm9kZQkgICAqYWNjZXNzb3IgPSBsZmlyc3QobGMpOworCisJCWlmIChJc0EoYWNjZXNzb3Is IFN0cmluZykpCisJCQlyZXR1cm4gdHJ1ZTsKKwkJZWxzZQorCQkJQXNzZXJ0KElzQShhY2Nlc3Nv ciwgQV9JbmRpY2VzKSk7CisJfQorCisJcmV0dXJuIGZhbHNlOworfQorCisvKgorICogSGVscGVy IGZ1bmN0aW9ucyBmb3IgY29uc3RydWN0aW5nIEpzb25QYXRoIGV4cHJlc3Npb25zLgorICoKKyAq IFRoZSBtYWtlX2pzb25wYXRoX2l0ZW1fKiBmdW5jdGlvbnMgY3JlYXRlIHZhcmlvdXMgdHlwZXMg b2YgSnNvblBhdGhQYXJzZUl0ZW0KKyAqIG5vZGVzLCB3aGljaCBhcmUgdXNlZCB0byBidWlsZCBK c29uUGF0aCBleHByZXNzaW9ucyBmb3IganNvbmIgc2ltcGxpZmllZAorICogYWNjZXNzb3IuCisg Ki8KKworc3RhdGljIEpzb25QYXRoUGFyc2VJdGVtICoKK21ha2VfanNvbnBhdGhfaXRlbShKc29u UGF0aEl0ZW1UeXBlIHR5cGUpCit7CisJSnNvblBhdGhQYXJzZUl0ZW0gKnYgPSBwYWxsb2Moc2l6 ZW9mKCp2KSk7CisKKwl2LT50eXBlID0gdHlwZTsKKwl2LT5uZXh0ID0gTlVMTDsKKworCXJldHVy biB2OworfQorCisvKgorICogQ29udmVydCBhIGNvbnN0YW50IGludGVnZXIgZXhwcmVzc2lvbiBp bnRvIGEgSnNvblBhdGhQYXJzZUl0ZW0uCisgKgorICogVGhlIGlucHV0IGV4cHJlc3Npb24gbXVz dCBiZSBhIG5vbi1udWxsIGNvbnN0YW50IG9mIHR5cGUgSU5UNC4gUmV0dXJucyBOVUxMIG90aGVy d2lzZS4KKyAqIFRoaXMgZnVuY3Rpb24gY29uc3RydWN0cyBhIGpwaU51bWVyaWMgaXRlbSBmb3Ig dXNlIGluIEpzb25QYXRoIGFuZCBhcHBlbmRzIGEgbWF0Y2hpbmcKKyAqIENvbnN0KElOVDQpIG5v ZGUgdG8gdGhlIGdpdmVuIGV4cHJlc3Npb24gbGlzdCBmb3IgdXNlIGluIEVYUExBSU4sIHZpZXdz LCBldGMuCisgKgorICogUGFyYW1ldGVyczoKKyAqIC0gcHN0YXRlOiBwYXJzZSBzdGF0ZSBjb250 ZXh0CisgKiAtIGV4cHI6IGlucHV0IGV4cHJlc3Npb24gbm9kZQorICogLSBleHByczogbGlzdCBv ZiBleHByZXNzaW9uIG5vZGVzICh1cGRhdGVkIGluIHBsYWNlKQorICovCitzdGF0aWMgSnNvblBh dGhQYXJzZUl0ZW0gKgorbWFrZV9qc29ucGF0aF9pdGVtX2V4cHIoUGFyc2VTdGF0ZSAqcHN0YXRl LCBOb2RlICpleHByLCBMaXN0ICoqZXhwcnMpCit7CisJQ29uc3QJICAgKmNuc3Q7CisKKwlleHBy ID0gdHJhbnNmb3JtRXhwcihwc3RhdGUsIGV4cHIsIHBzdGF0ZS0+cF9leHByX2tpbmQpOworCisJ aWYgKElzQShleHByLCBDb25zdCkpCisJeworCQljbnN0ID0gKENvbnN0ICopIGV4cHI7CisJCWlm IChjbnN0LT5jb25zdHR5cGUgPT0gSU5UNE9JRCAmJiAhKGNuc3QtPmNvbnN0aXNudWxsKSkKKwkJ eworCQkJSnNvblBhdGhQYXJzZUl0ZW0gKmpwaSA9IG1ha2VfanNvbnBhdGhfaXRlbShqcGlOdW1l cmljKTsKKworCQkJanBpLT52YWx1ZS5udW1lcmljID0KKwkJCQlEYXR1bUdldE51bWVyaWMoRGly ZWN0RnVuY3Rpb25DYWxsMShpbnQ0X251bWVyaWMsIEludDMyR2V0RGF0dW0oY25zdC0+Y29uc3R2 YWx1ZSkpKTsKKworCQkJKmV4cHJzID0gbGFwcGVuZCgqZXhwcnMsIG1ha2VDb25zdChJTlQ0T0lE LCAtMSwgSW52YWxpZE9pZCwgNCwKKwkJCQkJCQkJCQkJICAgSW50MzJHZXREYXR1bShjbnN0LT5j b25zdHZhbHVlKSwgZmFsc2UsIHRydWUpKTsKKworCQkJcmV0dXJuIGpwaTsKKwkJfQorCX0KKwor CXJldHVybiBOVUxMOworfQorCisvKgorICogQ29uc3RydWN0cyBhIEpzb25QYXRoIGV4cHJlc3Np b24gZnJvbSBhIGxpc3Qgb2YgaW5kaXJlY3Rpb25zLgorICogVGhpcyBmdW5jdGlvbiBpcyB1c2Vk IHdoZW4ganNvbmIgc3Vic2NyaXB0aW5nIGludm9sdmVzIGRvdCBub3RhdGlvbiwKKyAqIHJlcXVp cmluZyBKc29uUGF0aC1iYXNlZCBldmFsdWF0aW9uLgorICoKKyAqIFRoZSBmdW5jdGlvbiBtb2Rp ZmllcyB0aGUgaW5kaXJlY3Rpb24gbGlzdCBpbiBwbGFjZSwgcmVtb3ZpbmcgcHJvY2Vzc2VkCisg KiBlbGVtZW50cyBhcyBpdCBjb252ZXJ0cyB0aGVtIGludG8gSnNvblBhdGggY29tcG9uZW50cywg YXMgZm9sbG93czoKKyAqIC0gU3RyaW5nIGtleXMgKGRvdCBub3RhdGlvbikgLT4ganBpS2V5IGl0 ZW1zLgorICogLSBBcnJheSBpbmRpY2VzIC0+IGpwaUluZGV4QXJyYXkgaXRlbXMuCisgKgorICog SW4gYWRkaXRpb24gdG8gYnVpbGRpbmcgdGhlIEpzb25QYXRoIGV4cHJlc3Npb24sIHRoaXMgZnVu Y3Rpb24gcG9wdWxhdGVzCisgKiB0aGUgZm9sbG93aW5nIGZpZWxkcyBvZiB0aGUgZ2l2ZW4gU3Vi c2NyaXB0aW5nUmVmOgorICogLSByZWZqc29uYnBhdGg6IHRoZSBnZW5lcmF0ZWQgSnNvblBhdGgK KyAqIC0gcmVmdXBwZXJpbmRleHByOiB1cHBlciBpbmRleCBleHByZXNzaW9ucyAob2JqZWN0IGtl eXMgb3IgYXJyYXkgaW5kZXhlcykKKyAqIC0gcmVmbG93ZXJpbmRleHByOiBsb3dlciBpbmRleCBl eHByZXNzaW9ucywgcmVtYWlucyBOSUwgYXMgc2xpY2VzIGFyZSBub3Qgc3VwcG9ydGVkLgorICoK KyAqIFBhcmFtZXRlcnM6CisgKiAtIHBzdGF0ZTogUGFyc2Ugc3RhdGUgY29udGV4dC4KKyAqIC0g aW5kaXJlY3Rpb246IExpc3Qgb2Ygc3Vic2NyaXB0aW5nIGV4cHJlc3Npb25zIChtb2RpZmllZCBp bi1wbGFjZSkuCisgKiAtIHNic3JlZjogU3Vic2NyaXB0aW5nUmVmIG5vZGUgdG8gdXBkYXRlCisg Ki8KK3N0YXRpYyBpbnQKK2pzb25iX3N1YnNjcmlwdF9tYWtlX2pzb25wYXRoKFBhcnNlU3RhdGUg KnBzdGF0ZSwgTGlzdCAqaW5kaXJlY3Rpb24sIFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmKQorewor CUpzb25QYXRoUGFyc2VSZXN1bHQganByZXM7CisJSnNvblBhdGhQYXJzZUl0ZW0gKnBhdGggPSBt YWtlX2pzb25wYXRoX2l0ZW0oanBpUm9vdCk7CisJTGlzdENlbGwgICAqbGM7CisJRGF0dW0JCWpz cDsKKwlpbnQJCQlwYXRobGVuID0gMDsKKworCXNic3JlZi0+cmVmdXBwZXJpbmRleHByID0gTklM OworCXNic3JlZi0+cmVmbG93ZXJpbmRleHByID0gTklMOworCXNic3JlZi0+cmVmanNvbmJwYXRo ID0gTlVMTDsKKworCWpwcmVzLmV4cHIgPSBwYXRoOworCWpwcmVzLmxheCA9IHRydWU7CisKKwlm b3JlYWNoKGxjLCBpbmRpcmVjdGlvbikKKwl7CisJCU5vZGUJICAgKmFjY2Vzc29yID0gbGZpcnN0 KGxjKTsKKwkJSnNvblBhdGhQYXJzZUl0ZW0gKmpwaTsKKworCQlpZiAoSXNBKGFjY2Vzc29yLCBT dHJpbmcpKQorCQl7CisJCQljaGFyCSAgICpmaWVsZCA9IHN0clZhbChhY2Nlc3Nvcik7CisJCQlG aWVsZEFjY2Vzc29yRXhwciAqYWNjZXNzb3JfZXhwcjsKKworCQkJanBpID0gbWFrZV9qc29ucGF0 aF9pdGVtKGpwaUtleSk7CisJCQlqcGktPnZhbHVlLnN0cmluZy52YWwgPSBmaWVsZDsKKwkJCWpw aS0+dmFsdWUuc3RyaW5nLmxlbiA9IHN0cmxlbihmaWVsZCk7CisKKwkJCWFjY2Vzc29yX2V4cHIg PSBtYWtlTm9kZShGaWVsZEFjY2Vzc29yRXhwcik7CisJCQlhY2Nlc3Nvcl9leHByLT50eXBlID0g VF9GaWVsZEFjY2Vzc29yRXhwcjsKKwkJCWFjY2Vzc29yX2V4cHItPmZpZWxkbmFtZSA9IGZpZWxk OworCisJCQlzYnNyZWYtPnJlZnVwcGVyaW5kZXhwciA9IGxhcHBlbmQoc2JzcmVmLT5yZWZ1cHBl cmluZGV4cHIsIGFjY2Vzc29yX2V4cHIpOworCQl9CisJCWVsc2UgaWYgKElzQShhY2Nlc3Nvciwg QV9JbmRpY2VzKSkKKwkJeworCQkJQV9JbmRpY2VzICAqYWkgPSBjYXN0Tm9kZShBX0luZGljZXMs IGFjY2Vzc29yKTsKKworCQkJaWYgKCFhaS0+aXNfc2xpY2UpCisJCQl7CisJCQkJSnNvblBhdGhQ YXJzZUl0ZW0gKmpwaV9mcm9tID0gTlVMTDsKKworCQkJCUFzc2VydChhaS0+dWlkeCAmJiAhYWkt PmxpZHgpOworCQkJCWpwaV9mcm9tID0gbWFrZV9qc29ucGF0aF9pdGVtX2V4cHIocHN0YXRlLCBh aS0+dWlkeCwgJnNic3JlZi0+cmVmdXBwZXJpbmRleHByKTsKKwkJCQlpZiAoanBpX2Zyb20gPT0g TlVMTCkKKwkJCQl7CisJCQkJCS8qCisJCQkJCSAqIEJyZWFrIG91dCBvZiB0aGUgbG9vcCBpZiB0 aGUgc3Vic2NyaXB0IGlzIG5vdCBhCisJCQkJCSAqIG5vbi1udWxsIGludGVnZXIgY29uc3RhbnQs IHNvIHRoYXQgd2UgY2FuIGZhbGwgYmFjayB0bworCQkJCQkgKiBqc29uYiBzdWJzY3JpcHRpbmcg bG9naWMuCisJCQkJCSAqCisJCQkJCSAqIFRoaXMgaXMgbmVlZGVkIHRvIGhhbmRsZSBjYXNlcyB3 aXRoIG1peGVkIHVzYWdlIG9mIFNRTAorCQkJCQkgKiBzdGFuZGFyZCBqc29uIHNpbXBsaWZpZWQg YWNjZXNzb3Igc3ludGF4IGFuZCBQb3N0Z3JlU1FMCisJCQkJCSAqIGpzb25iIHN1YnNjcmlwdGlu ZyBzeW50YXgsIGUuZzoKKwkJCQkJICoKKwkJCQkJICogc2VsZWN0IChqYikuYVsnYiddLmMgZnJv bSBqc29uYl90YWJsZTsKKwkJCQkJICoKKwkJCQkJICogd2hlcmUgZG90LW5vdGF0aW9uICguYSBh bmQgLmMpIGlzIHRoZSBTUUwgc3RhbmRhcmQganNvbgorCQkJCQkgKiBzaW1wbGlmaWVkIGFjY2Vz c29yIHN5bnRheCwgYW5kIHRoZSBbJ2InXSBzdWJzY3JpcHQgaXMKKwkJCQkJICogdGhlIFBvc3Rn cmVTUUwganNvbmIgc3Vic2NyaXB0aW5nIHN5bnRheCwgYmVjYXVzZSAnYicKKwkJCQkJICogaXMg bm90IGEgbm9uLW51bGwgY29uc3RhbnQgaW50ZWdlciBhbmQgY2Fubm90IGJlIHVzZWQKKwkJCQkJ ICogZm9yIGpzb24gYXJyYXkgYWNjZXNzLgorCQkJCQkgKgorCQkJCQkgKiBJbiB0aGlzIGNhc2Us IHdlIGNhbm5vdCBjcmVhdGUgYSBKc29uUGF0aCBpdGVtLCBzbyB3ZQorCQkJCQkgKiBicmVhayBv dXQgb2YgdGhlIGxvb3AgYW5kIGxldAorCQkJCQkgKiBqc29uYl9zdWJzY3JpcHRfdHJhbnNmb3Jt KCkgaGFuZGxlIHRoaXMgaW5kaXJlY3Rpb24gYXMKKwkJCQkJICogYSBQb3N0Z3JlU1FMIGpzb25i IHN1YnNjcmlwdC4KKwkJCQkJICovCisJCQkJCWJyZWFrOworCQkJCX0KKworCQkJCWpwaSA9IG1h a2VfanNvbnBhdGhfaXRlbShqcGlJbmRleEFycmF5KTsKKwkJCQlqcGktPnZhbHVlLmFycmF5Lm5l bGVtcyA9IDE7CisJCQkJanBpLT52YWx1ZS5hcnJheS5lbGVtcyA9IHBhbGxvYyhzaXplb2YoanBp LT52YWx1ZS5hcnJheS5lbGVtc1swXSkpOworCisJCQkJanBpLT52YWx1ZS5hcnJheS5lbGVtc1sw XS5mcm9tID0ganBpX2Zyb207CisJCQkJanBpLT52YWx1ZS5hcnJheS5lbGVtc1swXS50byA9IE5V TEw7CisJCQl9CisJCQllbHNlCisJCQl7CisJCQkJTm9kZQkgICAqZXhwciA9IGFpLT51aWR4ID8g YWktPnVpZHggOiBhaS0+bGlkeDsKKworCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29k ZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKKwkJCQkJCSBlcnJtc2coImpzb25iIHN1YnNj cmlwdCBkb2VzIG5vdCBzdXBwb3J0IHNsaWNlcyIpLAorCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlv bihwc3RhdGUsIGV4cHJMb2NhdGlvbihleHByKSkpKTsKKwkJCX0KKwkJfQorCQllbHNlCisJCXsK KwkJCS8qCisJCQkgKiBVbmV4cGVjdGVkIG5vZGUgdHlwZSBpbiBpbmRpcmVjdGlvbiBsaXN0LiBU aGlzIHNob3VsZCBub3QKKwkJCSAqIGhhcHBlbiB3aXRoIGN1cnJlbnQgZ3JhbW1hciwgYnV0IHdl IGhhbmRsZSBpdCBkZWZlbnNpdmVseSBieQorCQkJICogYnJlYWtpbmcgb3V0IG9mIHRoZSBsb29w IHJhdGhlciB0aGFuIGNyYXNoaW5nLiBJbiBjYXNlIG9mCisJCQkgKiBmdXR1cmUgZ3JhbW1hciBj aGFuZ2VzIHRoYXQgbWlnaHQgaW50cm9kdWNlIG5ldyBub2RlIHR5cGVzLAorCQkJICogdGhpcyBh bGxvd3MgdXMgdG8gY3JlYXRlIGEganNvbnBhdGggZnJvbSBhcyBtYW55IGluZGlyZWN0aW9uCisJ CQkgKiBlbGVtZW50cyBhcyB3ZSBjYW4gYW5kIGxldCB0cmFuc2Zvcm1JbmRpcmVjdGlvbigpIGZh bGxiYWNrIHRvCisJCQkgKiBhbHRlcm5hdGl2ZSBsb2dpYyB0byBoYW5kbGUgdGhlIHJlbWFpbmlu ZyBpbmRpcmVjdGlvbiBlbGVtZW50cy4KKwkJCSAqLworCQkJQXNzZXJ0KGZhbHNlKTsJCS8qIG5v dCByZWFjaGFibGUgKi8KKwkJCWJyZWFrOworCQl9CisKKwkJLyogYXBwZW5kIHBhdGggaXRlbSAq LworCQlwYXRoLT5uZXh0ID0ganBpOworCQlwYXRoID0ganBpOworCQlwYXRobGVuKys7CisJfQor CisJaWYgKHBhdGhsZW4gIT0gMCkKKwl7CisJCWpzcCA9IGpzb25QYXRoRnJvbVBhcnNlUmVzdWx0 KCZqcHJlcywgMCwgTlVMTCk7CisJCXNic3JlZi0+cmVmanNvbmJwYXRoID0gKE5vZGUgKikgbWFr ZUNvbnN0KEpTT05QQVRIT0lELCAtMSwgSW52YWxpZE9pZCwgLTEsIGpzcCwgZmFsc2UsIGZhbHNl KTsKKwl9CisKKwlyZXR1cm4gcGF0aGxlbjsKK30KKwogLyoKICAqIEZpbmlzaCBwYXJzZSBhbmFs eXNpcyBvZiBhIFN1YnNjcmlwdGluZ1JlZiBleHByZXNzaW9uIGZvciBhIGpzb25iLgogICoKQEAg LTExMSw5ICszNDcsMjkgQEAganNvbmJfc3Vic2NyaXB0X3RyYW5zZm9ybShTdWJzY3JpcHRpbmdS ZWYgKnNic3JlZiwKIAlMaXN0CSAgICp1cHBlckluZGV4cHIgPSBOSUw7CiAJTGlzdENlbGwgICAq aWR4OwogCisJLyogRGV0ZXJtaW5lIHRoZSByZXN1bHQgdHlwZSBvZiB0aGUgc3Vic2NyaXB0aW5n IG9wZXJhdGlvbjsgYWx3YXlzIGpzb25iICovCisJc2JzcmVmLT5yZWZyZXN0eXBlID0gSlNPTkJP SUQ7CisJc2JzcmVmLT5yZWZ0eXBtb2QgPSAtMTsKKworCWlmIChqc29uYl9jaGVja19qc29ucGF0 aF9uZWVkZWQoaW5kaXJlY3Rpb24pKQorCXsKKwkJaW50IHBhdGhsZW47CisKKwkJcGF0aGxlbiA9 IGpzb25iX3N1YnNjcmlwdF9tYWtlX2pzb25wYXRoKHBzdGF0ZSwgaW5kaXJlY3Rpb24sIHNic3Jl Zik7CisJCWlmIChzYnNyZWYtPnJlZmpzb25icGF0aCkKKwkJCXJldHVybiBwYXRobGVuOworCX0K KwogCS8qCi0JICogVHJhbnNmb3JtIGFuZCBjb252ZXJ0IHRoZSBzdWJzY3JpcHQgZXhwcmVzc2lv bnMuIEpzb25iIHN1YnNjcmlwdGluZwotCSAqIGRvZXMgbm90IHN1cHBvcnQgc2xpY2VzLCBsb29r IG9ubHkgYXQgdGhlIHVwcGVyIGluZGV4LgorCSAqIFdlIHJlYWNoIGhlcmUgb25seSBpbiB0d28g Y2FzZXM6IChhKSB0aGUgSlNPTiBzaW1wbGlmaWVkIGFjY2Vzc29yIGlzCisJICogbm90IG5lZWRl ZCBhdCBhbGwgKGZvciBleGFtcGxlLCBhIHBsYWluIGFycmF5IHN1YnNjcmlwdCBsaWtlIFsxXSBv cgorCSAqIG9iamVjdCBrZXkgYWNjZXNzIGxpa2UgWydhJ10pLCBvciAoYikganNvbmJfc3Vic2Ny aXB0X21ha2VfanNvbnBhdGgoKQorCSAqIHdhcyBjYWxsZWQgYnV0IGNvdWxkIG5vdCBjb21wbGV0 ZSB0aGUgSnNvblBhdGggY29uc3RydWN0aW9uIChmb3IKKwkgKiBleGFtcGxlLCB3aGVuIG1peGlu ZyBkb3Qgbm90YXRpb24gd2l0aCBub24taW50ZWdlciBzdWJzY3JpcHRzIGxpa2UKKwkgKiAoamIp WydhJ10uYiB3aGVyZSAnYScgaXMgbm90IGEgY29uc3RhbnQgaW50ZWdlcikuCisJICoKKwkgKiBJ biBib3RoIGNhc2VzIHdlIGZhbGwgYmFjayB0byBwcmUtc3RhbmRhcmQganNvbmIgc3Vic2NyaXB0 aW5nLCBjb2VyY2luZworCSAqIGVhY2ggc3Vic2NyaXB0IHRvIGFycmF5IGluZGV4IG9yIG9iamVj dCBrZXkgYXMgbmVlZGVkLgogCSAqLwogCWZvcmVhY2goaWR4LCBpbmRpcmVjdGlvbikKIAl7CkBA IC0xNjAsMTAgKzQxNiw2IEBAIGpzb25iX3N1YnNjcmlwdF90cmFuc2Zvcm0oU3Vic2NyaXB0aW5n UmVmICpzYnNyZWYsCiAJc2JzcmVmLT5yZWZ1cHBlcmluZGV4cHIgPSB1cHBlckluZGV4cHI7CiAJ c2JzcmVmLT5yZWZsb3dlcmluZGV4cHIgPSBOSUw7CiAKLQkvKiBEZXRlcm1pbmUgdGhlIHJlc3Vs dCB0eXBlIG9mIHRoZSBzdWJzY3JpcHRpbmcgb3BlcmF0aW9uOyBhbHdheXMganNvbmIgKi8KLQlz YnNyZWYtPnJlZnJlc3R5cGUgPSBKU09OQk9JRDsKLQlzYnNyZWYtPnJlZnR5cG1vZCA9IC0xOwot CiAJcmV0dXJuIGxpc3RfbGVuZ3RoKHVwcGVySW5kZXhwcik7CiB9CiAKQEAgLTIxNiw3ICs0Njgs NyBAQCBqc29uYl9zdWJzY3JpcHRfY2hlY2tfc3Vic2NyaXB0cyhFeHByU3RhdGUgKnN0YXRlLAog CQkJICogRm9yIGpzb25iIGZldGNoIGFuZCBhc3NpZ24gZnVuY3Rpb25zIHdlIG5lZWQgdG8gcHJv dmlkZSBwYXRoIGluCiAJCQkgKiB0ZXh0IGZvcm1hdC4gQ29udmVydCBpZiBpdCdzIG5vdCBhbHJl YWR5IHRleHQuCiAJCQkgKi8KLQkJCWlmICh3b3Jrc3BhY2UtPmluZGV4T2lkW2ldID09IElOVDRP SUQpCisJCQlpZiAoIXdvcmtzcGFjZS0+anNvbnBhdGggJiYgd29ya3NwYWNlLT5pbmRleE9pZFtp XSA9PSBJTlQ0T0lEKQogCQkJewogCQkJCURhdHVtCQlkYXR1bSA9IHNic3JlZnN0YXRlLT51cHBl cmluZGV4W2ldOwogCQkJCWNoYXIJICAgKmNzID0gRGF0dW1HZXRDU3RyaW5nKERpcmVjdEZ1bmN0 aW9uQ2FsbDEoaW50NG91dCwgZGF0dW0pKTsKQEAgLTI0NCwxNyArNDk2LDMyIEBAIGpzb25iX3N1 YnNjcmlwdF9mZXRjaChFeHByU3RhdGUgKnN0YXRlLAogewogCVN1YnNjcmlwdGluZ1JlZlN0YXRl ICpzYnNyZWZzdGF0ZSA9IG9wLT5kLnNic3JlZi5zdGF0ZTsKIAlKc29uYlN1YldvcmtzcGFjZSAq d29ya3NwYWNlID0gKEpzb25iU3ViV29ya3NwYWNlICopIHNic3JlZnN0YXRlLT53b3Jrc3BhY2U7 Ci0JSnNvbmIJICAgKmpzb25iU291cmNlOwogCiAJLyogU2hvdWxkIG5vdCBnZXQgaGVyZSBpZiBz b3VyY2UganNvbmIgKG9yIGFueSBzdWJzY3JpcHQpIGlzIG51bGwgKi8KIAlBc3NlcnQoISgqb3At PnJlc251bGwpKTsKIAotCWpzb25iU291cmNlID0gRGF0dW1HZXRKc29uYlAoKm9wLT5yZXN2YWx1 ZSk7Ci0JKm9wLT5yZXN2YWx1ZSA9IGpzb25iX2dldF9lbGVtZW50KGpzb25iU291cmNlLAotCQkJ CQkJCQkJICB3b3Jrc3BhY2UtPmluZGV4LAotCQkJCQkJCQkJICBzYnNyZWZzdGF0ZS0+bnVtdXBw ZXIsCi0JCQkJCQkJCQkgIG9wLT5yZXNudWxsLAotCQkJCQkJCQkJICBmYWxzZSk7CisJaWYgKHdv cmtzcGFjZS0+anNvbnBhdGgpCisJeworCQlib29sCQllbXB0eSA9IGZhbHNlOworCQlib29sCQll cnJvciA9IGZhbHNlOworCisJCSpvcC0+cmVzdmFsdWUgPSBKc29uUGF0aFF1ZXJ5KCpvcC0+cmVz dmFsdWUsIHdvcmtzcGFjZS0+anNvbnBhdGgsCisJCQkJCQkJCQkgIEpTV19DT05ESVRJT05BTCwK KwkJCQkJCQkJCSAgJmVtcHR5LCAmZXJyb3IsIE5VTEwsCisJCQkJCQkJCQkgIE5VTEwpOworCisJ CSpvcC0+cmVzbnVsbCA9IGVtcHR5IHx8IGVycm9yOworCX0KKwllbHNlCisJeworCQlKc29uYgkg ICAqanNvbmJTb3VyY2UgPSBEYXR1bUdldEpzb25iUCgqb3AtPnJlc3ZhbHVlKTsKKworCQkqb3At PnJlc3ZhbHVlID0ganNvbmJfZ2V0X2VsZW1lbnQoanNvbmJTb3VyY2UsCisJCQkJCQkJCQkJICB3 b3Jrc3BhY2UtPmluZGV4LAorCQkJCQkJCQkJCSAgc2JzcmVmc3RhdGUtPm51bXVwcGVyLAorCQkJ CQkJCQkJCSAgb3AtPnJlc251bGwsCisJCQkJCQkJCQkJICBmYWxzZSk7CisJfQogfQogCiAvKgpA QCAtMzYyLDcgKzYyOSw3IEBAIGpzb25iX2V4ZWNfc2V0dXAoY29uc3QgU3Vic2NyaXB0aW5nUmVm ICpzYnNyZWYsCiB7CiAJSnNvbmJTdWJXb3Jrc3BhY2UgKndvcmtzcGFjZTsKIAlMaXN0Q2VsbCAg ICpsYzsKLQlpbnQJCQludXBwZXIgPSBzYnNyZWYtPnJlZnVwcGVyaW5kZXhwci0+bGVuZ3RoOwor CWludAkJCW51cHBlciA9IGxpc3RfbGVuZ3RoKHNic3JlZi0+cmVmdXBwZXJpbmRleHByKTsKIAlj aGFyCSAgICpwdHI7CiAKIAkvKiBBbGxvY2F0ZSB0eXBlLXNwZWNpZmljIHdvcmtzcGFjZSB3aXRo IHNwYWNlIGZvciBwZXItc3Vic2NyaXB0IGRhdGEgKi8KQEAgLTM3MSw2ICs2MzgsOSBAQCBqc29u Yl9leGVjX3NldHVwKGNvbnN0IFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmLAogCXdvcmtzcGFjZS0+ ZXhwZWN0QXJyYXkgPSBmYWxzZTsKIAlwdHIgPSAoKGNoYXIgKikgd29ya3NwYWNlKSArIE1BWEFM SUdOKHNpemVvZihKc29uYlN1YldvcmtzcGFjZSkpOwogCisJaWYgKHNic3JlZi0+cmVmanNvbmJw YXRoKQorCQl3b3Jrc3BhY2UtPmpzb25wYXRoID0gRGF0dW1HZXRKc29uUGF0aFAoY2FzdE5vZGUo Q29uc3QsIHNic3JlZi0+cmVmanNvbmJwYXRoKS0+Y29uc3R2YWx1ZSk7CisKIAkvKgogCSAqIFRo aXMgY29kaW5nIGFzc3VtZXMgc2l6ZW9mKERhdHVtKSA+PSBzaXplb2YoT2lkKSwgZWxzZSB3ZSBt aWdodAogCSAqIG1pc2FsaWduIHRoZSBpbmRleE9pZCBwb2ludGVyCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVs ZXV0aWxzLmMKaW5kZXggMDQwOGE5NTk0MWQuLmM4OTk3MzRjMmUzIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L3J1bGV1dGlscy5jCkBAIC05MzI5LDEwICs5MzI5LDEzIEBAIGdldF9ydWxlX2V4cHIoTm9kZSAq bm9kZSwgZGVwYXJzZV9jb250ZXh0ICpjb250ZXh0LAogCQkJCSAqIFBhcmVudGhlc2l6ZSB0aGUg YXJndW1lbnQgdW5sZXNzIGl0J3MgYSBzaW1wbGUgVmFyIG9yIGEKIAkJCQkgKiBGaWVsZFNlbGVj dC4gIChJbiBwYXJ0aWN1bGFyLCBpZiBpdCdzIGFub3RoZXIKIAkJCQkgKiBTdWJzY3JpcHRpbmdS ZWYsIHdlICptdXN0KiBwYXJlbnRoZXNpemUgdG8gYXZvaWQKLQkJCQkgKiBjb25mdXNpb24uKQor CQkJCSAqIGNvbmZ1c2lvbi4pIEFsd2F5cyBhZGQgcGFyZW50aGVzaXMgaWYgSlNPTiBzaW1wbGlm aWVkCisJCQkJICogYWNjZXNzb3IgaXMgdXNlZCwgZm9yIG5vdy4KIAkJCQkgKi8KLQkJCQluZWVk X3BhcmVucyA9ICFJc0Eoc2JzcmVmLT5yZWZleHByLCBWYXIpICYmCi0JCQkJCSFJc0Eoc2JzcmVm LT5yZWZleHByLCBGaWVsZFNlbGVjdCk7CisJCQkJbmVlZF9wYXJlbnMgPSAoIUlzQShzYnNyZWYt PnJlZmV4cHIsIFZhcikgJiYKKwkJCQkJIUlzQShzYnNyZWYtPnJlZmV4cHIsIEZpZWxkU2VsZWN0 KSkgfHwKKwkJCQkJCXNic3JlZi0+cmVmanNvbmJwYXRoOworCiAJCQkJaWYgKG5lZWRfcGFyZW5z KQogCQkJCQlhcHBlbmRTdHJpbmdJbmZvQ2hhcihidWYsICcoJyk7CiAJCQkJZ2V0X3J1bGVfZXhw cigoTm9kZSAqKSBzYnNyZWYtPnJlZmV4cHIsIGNvbnRleHQsIHNob3dpbXBsaWNpdCk7CkBAIC0x MzAwNSwxNyArMTMwMDgsMzUgQEAgcHJpbnRTdWJzY3JpcHRzKFN1YnNjcmlwdGluZ1JlZiAqc2Jz cmVmLCBkZXBhcnNlX2NvbnRleHQgKmNvbnRleHQpCiAJbG93bGlzdF9pdGVtID0gbGlzdF9oZWFk KHNic3JlZi0+cmVmbG93ZXJpbmRleHByKTsJLyogY291bGQgYmUgTlVMTCAqLwogCWZvcmVhY2go dXBsaXN0X2l0ZW0sIHNic3JlZi0+cmVmdXBwZXJpbmRleHByKQogCXsKLQkJYXBwZW5kU3RyaW5n SW5mb0NoYXIoYnVmLCAnWycpOwotCQlpZiAobG93bGlzdF9pdGVtKQorCQlOb2RlICp1cHBlciA9 IChOb2RlICopIGxmaXJzdCh1cGxpc3RfaXRlbSk7CisKKwkJaWYgKHVwcGVyICYmIElzQSh1cHBl ciwgRmllbGRBY2Nlc3NvckV4cHIpKQogCQl7CisJCQlGaWVsZEFjY2Vzc29yRXhwciAqZmFlID0g KEZpZWxkQWNjZXNzb3JFeHByICopIHVwcGVyOworCisJCQkvKiBVc2UgZG90LW5vdGF0aW9uIGZv ciBmaWVsZCBhY2Nlc3MgKi8KKwkJCWFwcGVuZFN0cmluZ0luZm9DaGFyKGJ1ZiwgJy4nKTsKKwkJ CWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCBxdW90ZV9pZGVudGlmaWVyKGZhZS0+ZmllbGRu YW1lKSk7CisKKwkJCS8qIFNraXAgbWF0Y2hpbmcgbG93IGluZGV4IOKAlCBmaWVsZCBhY2Nlc3Mg ZG9lc24ndCB1c2Ugc2xpY2VzICovCisJCQlpZiAobG93bGlzdF9pdGVtKQorCQkJCWxvd2xpc3Rf aXRlbSA9IGxuZXh0KHNic3JlZi0+cmVmbG93ZXJpbmRleHByLCBsb3dsaXN0X2l0ZW0pOworCQl9 CisJCWVsc2UKKwkJeworCQkJLyogVXNlIEpTT05CIGFycmF5IHN1YnNjcmlwdGluZyAqLworCQkJ YXBwZW5kU3RyaW5nSW5mb0NoYXIoYnVmLCAnWycpOworCQkJaWYgKGxvd2xpc3RfaXRlbSkKKwkJ CXsKKwkJCQkvKiBJZiBzdWJleHByZXNzaW9uIGlzIE5VTEwsIGdldF9ydWxlX2V4cHIgcHJpbnRz IG5vdGhpbmcgKi8KKwkJCQlnZXRfcnVsZV9leHByKChOb2RlICopIGxmaXJzdChsb3dsaXN0X2l0 ZW0pLCBjb250ZXh0LCBmYWxzZSk7CisJCQkJYXBwZW5kU3RyaW5nSW5mb0NoYXIoYnVmLCAnOicp OworCQkJCWxvd2xpc3RfaXRlbSA9IGxuZXh0KHNic3JlZi0+cmVmbG93ZXJpbmRleHByLCBsb3ds aXN0X2l0ZW0pOworCQkJfQogCQkJLyogSWYgc3ViZXhwcmVzc2lvbiBpcyBOVUxMLCBnZXRfcnVs ZV9leHByIHByaW50cyBub3RoaW5nICovCi0JCQlnZXRfcnVsZV9leHByKChOb2RlICopIGxmaXJz dChsb3dsaXN0X2l0ZW0pLCBjb250ZXh0LCBmYWxzZSk7Ci0JCQlhcHBlbmRTdHJpbmdJbmZvQ2hh cihidWYsICc6Jyk7Ci0JCQlsb3dsaXN0X2l0ZW0gPSBsbmV4dChzYnNyZWYtPnJlZmxvd2VyaW5k ZXhwciwgbG93bGlzdF9pdGVtKTsKKwkJCWdldF9ydWxlX2V4cHIodXBwZXIsIGNvbnRleHQsIGZh bHNlKTsKKwkJCWFwcGVuZFN0cmluZ0luZm9DaGFyKGJ1ZiwgJ10nKTsKIAkJfQotCQkvKiBJZiBz dWJleHByZXNzaW9uIGlzIE5VTEwsIGdldF9ydWxlX2V4cHIgcHJpbnRzIG5vdGhpbmcgKi8KLQkJ Z2V0X3J1bGVfZXhwcigoTm9kZSAqKSBsZmlyc3QodXBsaXN0X2l0ZW0pLCBjb250ZXh0LCBmYWxz ZSk7Ci0JCWFwcGVuZFN0cmluZ0luZm9DaGFyKGJ1ZiwgJ10nKTsKIAl9CiB9CiAKZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcHJp bW5vZGVzLmgKaW5kZXggNmRmY2EzY2IzNWIuLjdlODk2MjFiZDY1IDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9k ZXMuaApAQCAtNzA4LDE4ICs3MDgsMzAgQEAgdHlwZWRlZiBzdHJ1Y3QgU3Vic2NyaXB0aW5nUmVm CiAJaW50MzIJCXJlZnR5cG1vZCBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CiAJ LyogY29sbGF0aW9uIG9mIHJlc3VsdCwgb3IgSW52YWxpZE9pZCBpZiBub25lICovCiAJT2lkCQkJ cmVmY29sbGlkIHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsKLQkvKiBleHByZXNz aW9ucyB0aGF0IGV2YWx1YXRlIHRvIHVwcGVyIGNvbnRhaW5lciBpbmRleGVzICovCisKKwkvKgor CSAqIGV4cHJlc3Npb25zIHRoYXQgZXZhbHVhdGUgdG8gdXBwZXIgY29udGFpbmVyIGluZGV4ZXMg b3IgZXhwcmVzc2lvbnMKKwkgKiB0aGF0IGFyZSBjb2xsZWN0ZWQgYnV0IG5vdCBldmFsdWF0ZWQg d2hlbiByZWZqc29uYnBhdGggaXMgc2V0LgorCSAqLwogCUxpc3QJICAgKnJlZnVwcGVyaW5kZXhw cjsKIAogCS8qCi0JICogZXhwcmVzc2lvbnMgdGhhdCBldmFsdWF0ZSB0byBsb3dlciBjb250YWlu ZXIgaW5kZXhlcywgb3IgTklMIGZvciBzaW5nbGUKLQkgKiBjb250YWluZXIgZWxlbWVudC4KKwkg KiBleHByZXNzaW9ucyB0aGF0IGV2YWx1YXRlIHRvIGxvd2VyIGNvbnRhaW5lciBpbmRleGVzLCBv ciBOSUwgZm9yIGEKKwkgKiBzaW5nbGUgY29udGFpbmVyIGVsZW1lbnQsIG9yIGV4cHJlc3Npb25z IHRoYXQgYXJlIGNvbGxlY3RlZCBidXQgbm90CisJICogZXZhbHVhdGVkIHdoZW4gcmVmanNvbmJw YXRoIGlzIHNldC4KIAkgKi8KIAlMaXN0CSAgICpyZWZsb3dlcmluZGV4cHI7CiAJLyogdGhlIGV4 cHJlc3Npb24gdGhhdCBldmFsdWF0ZXMgdG8gYSBjb250YWluZXIgdmFsdWUgKi8KIAlFeHByCSAg ICpyZWZleHByOwogCS8qIGV4cHJlc3Npb24gZm9yIHRoZSBzb3VyY2UgdmFsdWUsIG9yIE5VTEwg aWYgZmV0Y2ggKi8KIAlFeHByCSAgICpyZWZhc3NnbmV4cHI7CisKKwkvKgorCSAqIGNvbnRhaW5l ci1zcGVjaWZpYyBleHRyYSBpbmZvcm1hdGlvbiwgY3VycmVudGx5IHVzZWQgb25seSBieSBqc29u Yi4KKwkgKiBzdG9yZXMgYSBKc29uUGF0aCBleHByZXNzaW9uIHdoZW4ganNvbmIgZG90IG5vdGF0 aW9uIGlzIHVzZWQuIE5VTEwgZm9yCisJICogc2ltcGxlIHN1YnNjcmlwdGluZy4KKwkgKi8KKwlO b2RlCSAgICpyZWZqc29uYnBhdGg7CiB9IFN1YnNjcmlwdGluZ1JlZjsKIAogLyoKQEAgLTIzNzEs NCArMjM4Myw0MCBAQCB0eXBlZGVmIHN0cnVjdCBPbkNvbmZsaWN0RXhwcgogCUxpc3QJICAgKmV4 Y2xSZWxUbGlzdDsJLyogdGxpc3Qgb2YgdGhlIEVYQ0xVREVEIHBzZXVkbyByZWxhdGlvbiAqLwog fSBPbkNvbmZsaWN0RXhwcjsKIAorLyoKKyAqIEZpZWxkQWNjZXNzb3JFeHByIC0gcmVwcmVzZW50 cyBhIHNpbmdsZSBvYmplY3QgbWVtYmVyIGFjY2VzcyB1c2luZyBkb3Qtbm90YXRpb24KKyAqCQlp biBKU09OIHNpbXBsaWZpZWQgYWNjZXNzb3Igc3ludGF4IChlLmcuLCBqc29uYl9jb2wuYSkuCisg KgorICogVGhlc2Ugbm9kZXMgYXBwZWFyIGFzIGxpc3QgZWxlbWVudHMgaW4gU3Vic2NyaXB0aW5n UmVmLnJlZnVwcGVyaW5kZXhwciB0bworICogaW5kaWNhdGUgSlNPTiBvYmplY3Qga2V5IGFjY2Vz cy4gVGhleSBhcmUgbm90IGV2YWx1YWJsZSBleHByZXNzaW9ucyBieQorICogdGhlbXNlbHZlcyBi dXQgc2VydmUgYXMgcGxhY2Vob2xkZXJzIHRvIHByZXNlcnZlIHNvdXJjZS1sZXZlbCBzeW50YXgg Zm9yCisgKiBydWxlIHJld3JpdGluZyBhbmQgZGVwYXJzaW5nIChlLmcuLCBpbiBFWFBMQUlOIGFu ZCB2aWV3IGRlZmluaXRpb25zKS4KKyAqIEV4ZWN1dGlvbiBpcyBoYW5kbGVkIGJ5IHRoZSBlbmNs b3NpbmcgU3Vic2NyaXB0aW5nUmVmLgorICoKKyAqIElmIGRvdC1ub3RhdGlvbiBpcyB1c2VkIGlu IGEgU3Vic2NyaXB0aW5nUmVmLCB0aGUgSlNPTiBwYXRoIGlzIHJlcHJlc2VudGVkCisgKiBhcyBh IGZsYXQgbGlzdCBvZiBGaWVsZEFjY2Vzc29yRXhwciBub2RlcyAoZm9yIG9iamVjdCBmaWVsZCBh Y2Nlc3MpLCBDb25zdAorICogbm9kZXMgKGZvciBhcnJheSBpbmRleGVzKSwgYW5kIE5VTExzIChm b3Igb21pdHRlZCBzbGljZSBib3VuZHMpLCByYXRoZXIgdGhhbgorICogdGhyb3VnaCBuZXN0ZWQg ZXhwcmVzc2lvbiB0cmVlcy4KKyAqCisgKiBOb3RlOiBUaGUgZmxhdCByZXByZXNlbnRhdGlvbiBh dm9pZHMgbmVzdGVkIEZpZWxkQWNjZXNzb3JFeHByIGNoYWlucywKKyAqIHNpbXBsaWZ5aW5nIGV2 YWx1YXRpb24gYW5kIGVuYWJsaW5nIHN0YW5kYXJkLWNvbXBsaWFudCBiZWhhdmlvciBzdWNoIGFz CisgKiBjb25kaXRpb25hbCBhcnJheSB3cmFwcGluZy4gVGhpcyBhdm9pZHMgdGhlIG5lZWQgZm9y IHBvc2l0aW9uLWF3YXJlCisgKiB3cmFwcGluZy91bndyYXBwaW5nIGxvZ2ljIGR1cmluZyBleGVj dXRpb24uCisgKgorICogRm9yIGV4YW1wbGUsIGluIHRoZSBleHByZXNzaW9uOgorICoJCSgneyJh IjogW3siYiI6IDF9XX0nOjpqc29uYikuYVswXS5iCisgKiB0aGUgU3Vic2NyaXB0aW5nUmVmIHdp bGwgY29udGFpbjoKKyAqCQktIHJlZmV4cHI6IHRoZSBiYXNlIGV4cHJlc3Npb24gKHRoZSBqc29u YiB2YWx1ZSkKKyAqCQktIHJlZnVwcGVyaW5kZXhwcjogW0ZpZWxkQWNjZXNzb3JFeHByKCJhIiks IENvbnN0KDApLAorICoJCQlGaWVsZEFjY2Vzc29yRXhwcigiYiIpXQorICoJCS0gcmVmbG93ZXJp bmRleHByOiBbTlVMTCwgTlVMTCwgTlVMTF0gKHNsaWNlIGxvd2VyIGJvdW5kcyBub3QgdXNlZCBo ZXJlKQorICovCit0eXBlZGVmIHN0cnVjdCBGaWVsZEFjY2Vzc29yRXhwcgoreworCU5vZGVUYWcJ CXR5cGU7CisJY2hhcgkgICAqZmllbGRuYW1lOwkJLyogbmFtZSBvZiB0aGUgSlNPTkIgb2JqZWN0 IGZpZWxkIGFjY2Vzc2VkIHZpYQorCQkJCQkJCQkgKiBkb3Qgbm90YXRpb24gKi8KKwlPaWQJCQlm YWVjb2xsaWQgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOworfQkJCUZpZWxkQWNj ZXNzb3JFeHByOworCiAjZW5kaWYJCQkJCQkJLyogUFJJTU5PREVTX0ggKi8KZGlmZiAtLWdpdCBh L3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9leHBlY3RlZC9zcWwtc3FsanNvbi5jIGIvc3JjL2lu dGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29uLmMKaW5kZXggMzkyMjFmOWVh NWQuLmU2YTdlY2U2ZGFiIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3QvZXhw ZWN0ZWQvc3FsLXNxbGpzb24uYworKysgYi9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3QvZXhwZWN0 ZWQvc3FsLXNxbGpzb24uYwpAQCAtNDE3LDEyICs0MTcsMTIyIEBAIGlmIChzcWxjYS5zcWxjb2Rl IDwgMCkgc3FscHJpbnQoKTt9CiAJICBmb3IgKGludCBpID0gMDsgaSA8IHNpemVvZihpc19qc29u KTsgaSsrKQogCQkgIHByaW50ZigiRm91bmQgaXNfanNvblslZF06ICVzXG4iLCBpLCBpc19qc29u W2ldID8gInRydWUiIDogImZhbHNlIik7CiAKLSAgeyBFQ1BHZGlzY29ubmVjdChfX0xJTkVfXywg IkNVUlJFTlQiKTsKKwl7IEVDUEdkbyhfX0xJTkVfXywgMCwgMSwgTlVMTCwgMCwgRUNQR3N0X25v cm1hbCwgInNlbGVjdCBqc29uICggKCAne1wiYVwiOiB7XCJiXCI6IDEsIFwiY1wiOiAyfX0nIDo6 IGpzb25iICkgLiBcImFcIiApIiwgRUNQR3RfRU9JVCwgCisJRUNQR3RfY2hhciwoanNvbiksKGxv bmcpMTAyNCwobG9uZykxLCgxMDI0KSpzaXplb2YoY2hhciksIAorCUVDUEd0X05PX0lORElDQVRP UiwgTlVMTCAsIDBMLCAwTCwgMEwsIEVDUEd0X0VPUlQpOwogI2xpbmUgMTE4ICJzcWxqc29uLnBn YyIKIAogaWYgKHNxbGNhLnNxbGNvZGUgPCAwKSBzcWxwcmludCgpO30KICNsaW5lIDExOCAic3Fs anNvbi5wZ2MiCiAKKwlwcmludGYoIkZvdW5kIGpzb249JXNcbiIsIGpzb24pOworCisJeyBFQ1BH ZG8oX19MSU5FX18sIDAsIDEsIE5VTEwsIDAsIEVDUEdzdF9ub3JtYWwsICJzZWxlY3QganNvbiAo ICd7XCJhXCI6IHtcImJcIjogMSwgXCJjXCI6IDJ9fScgOjoganNvbmIgLiBcImFcIiApIiwgRUNQ R3RfRU9JVCwgCisJRUNQR3RfY2hhciwoanNvbiksKGxvbmcpMTAyNCwobG9uZykxLCgxMDI0KSpz aXplb2YoY2hhciksIAorCUVDUEd0X05PX0lORElDQVRPUiwgTlVMTCAsIDBMLCAwTCwgMEwsIEVD UEd0X0VPUlQpOworI2xpbmUgMTIxICJzcWxqc29uLnBnYyIKKworaWYgKHNxbGNhLnNxbGNvZGUg PCAwKSBzcWxwcmludCgpO30KKyNsaW5lIDEyMSAic3FsanNvbi5wZ2MiCisKKwkvLyBlcnJvcgor CisJeyBFQ1BHZG8oX19MSU5FX18sIDAsIDEsIE5VTEwsIDAsIEVDUEdzdF9ub3JtYWwsICJzZWxl Y3QganNvbiAoICggJ3tcImFcIjoge1wiYlwiOiAxLCBcImNcIjogMn19JyA6OiBqc29uYiApIC4g YSApIiwgRUNQR3RfRU9JVCwgCisJRUNQR3RfY2hhciwoanNvbiksKGxvbmcpMTAyNCwobG9uZykx LCgxMDI0KSpzaXplb2YoY2hhciksIAorCUVDUEd0X05PX0lORElDQVRPUiwgTlVMTCAsIDBMLCAw TCwgMEwsIEVDUEd0X0VPUlQpOworI2xpbmUgMTI0ICJzcWxqc29uLnBnYyIKKworaWYgKHNxbGNh LnNxbGNvZGUgPCAwKSBzcWxwcmludCgpO30KKyNsaW5lIDEyNCAic3FsanNvbi5wZ2MiCisKKwlw cmludGYoIkZvdW5kIGpzb249JXNcbiIsIGpzb24pOworCisJeyBFQ1BHZG8oX19MSU5FX18sIDAs IDEsIE5VTEwsIDAsIEVDUEdzdF9ub3JtYWwsICJzZWxlY3QganNvbiAoICggJ3tcImFcIjoge1wi YlwiOiAxLCBcImNcIjogMn19JyA6OiBqc29uYiApIC4gYSAuIGIgKSIsIEVDUEd0X0VPSVQsIAor CUVDUEd0X2NoYXIsKGpzb24pLChsb25nKTEwMjQsKGxvbmcpMSwoMTAyNCkqc2l6ZW9mKGNoYXIp LCAKKwlFQ1BHdF9OT19JTkRJQ0FUT1IsIE5VTEwgLCAwTCwgMEwsIDBMLCBFQ1BHdF9FT1JUKTsK KyNsaW5lIDEyNyAic3FsanNvbi5wZ2MiCisKK2lmIChzcWxjYS5zcWxjb2RlIDwgMCkgc3FscHJp bnQoKTt9CisjbGluZSAxMjcgInNxbGpzb24ucGdjIgorCisJcHJpbnRmKCJGb3VuZCBqc29uPSVz XG4iLCBqc29uKTsKKworCXsgRUNQR2RvKF9fTElORV9fLCAwLCAxLCBOVUxMLCAwLCBFQ1BHc3Rf bm9ybWFsLCAic2VsZWN0IGpzb24gKCBjb2FsZXNjZSAoIGpzb24gKCAoICd7XCJhXCI6IHtcImJc IjogMSwgXCJjXCI6IDJ9fScgOjoganNvbmIgKSAuIGMgKSAsICdudWxsJyApICkiLCBFQ1BHdF9F T0lULCAKKwlFQ1BHdF9jaGFyLChqc29uKSwobG9uZykxMDI0LChsb25nKTEsKDEwMjQpKnNpemVv ZihjaGFyKSwgCisJRUNQR3RfTk9fSU5ESUNBVE9SLCBOVUxMICwgMEwsIDBMLCAwTCwgRUNQR3Rf RU9SVCk7CisjbGluZSAxMzAgInNxbGpzb24ucGdjIgorCitpZiAoc3FsY2Euc3FsY29kZSA8IDAp IHNxbHByaW50KCk7fQorI2xpbmUgMTMwICJzcWxqc29uLnBnYyIKKworCXByaW50ZigiRm91bmQg anNvbj0lc1xuIiwganNvbik7CisKKwl7IEVDUEdkbyhfX0xJTkVfXywgMCwgMSwgTlVMTCwgMCwg RUNQR3N0X25vcm1hbCwgInNlbGVjdCBqc29uICggKCAne1wiYVwiOiB7XCJiXCI6IDEsIFwiY1wi OiAyfSwgXCJiXCI6IFt7XCJ4XCI6IDF9LCB7XCJ4XCI6IFsxMiwge1wieVwiOjF9XX1dfScgOjog anNvbmIgKSAuIGIgWyAwIF0gKSIsIEVDUEd0X0VPSVQsIAorCUVDUEd0X2NoYXIsKGpzb24pLChs b25nKTEwMjQsKGxvbmcpMSwoMTAyNCkqc2l6ZW9mKGNoYXIpLCAKKwlFQ1BHdF9OT19JTkRJQ0FU T1IsIE5VTEwgLCAwTCwgMEwsIDBMLCBFQ1BHdF9FT1JUKTsKKyNsaW5lIDEzMyAic3FsanNvbi5w Z2MiCisKK2lmIChzcWxjYS5zcWxjb2RlIDwgMCkgc3FscHJpbnQoKTt9CisjbGluZSAxMzMgInNx bGpzb24ucGdjIgorCisJcHJpbnRmKCJGb3VuZCBqc29uPSVzXG4iLCBqc29uKTsKKworCXsgRUNQ R2RvKF9fTElORV9fLCAwLCAxLCBOVUxMLCAwLCBFQ1BHc3Rfbm9ybWFsLCAic2VsZWN0IGpzb24g KCAoICd7XCJhXCI6IHtcImJcIjogMSwgXCJjXCI6IDJ9LCBcImJcIjogW3tcInhcIjogMX0sIHtc InhcIjogWzEyLCB7XCJ5XCI6MX1dfV19JyA6OiBqc29uYiApIC4gYiAuIHggKSIsIEVDUEd0X0VP SVQsIAorCUVDUEd0X2NoYXIsKGpzb24pLChsb25nKTEwMjQsKGxvbmcpMSwoMTAyNCkqc2l6ZW9m KGNoYXIpLCAKKwlFQ1BHdF9OT19JTkRJQ0FUT1IsIE5VTEwgLCAwTCwgMEwsIDBMLCBFQ1BHdF9F T1JUKTsKKyNsaW5lIDEzNiAic3FsanNvbi5wZ2MiCisKK2lmIChzcWxjYS5zcWxjb2RlIDwgMCkg c3FscHJpbnQoKTt9CisjbGluZSAxMzYgInNxbGpzb24ucGdjIgorCisJcHJpbnRmKCJGb3VuZCBq c29uPSVzXG4iLCBqc29uKTsKKworCXsgRUNQR2RvKF9fTElORV9fLCAwLCAxLCBOVUxMLCAwLCBF Q1BHc3Rfbm9ybWFsLCAic2VsZWN0IGpzb24gKCAoICd7XCJhXCI6IHtcImJcIjogMSwgXCJjXCI6 IDJ9LCBcImJcIjogW3tcInhcIjogMX0sIHtcInhcIjogWzEyLCB7XCJ5XCI6MX1dfV19JyA6OiBq c29uYiApIFsgJ2InIF0gWyAwIF0gKSIsIEVDUEd0X0VPSVQsIAorCUVDUEd0X2NoYXIsKGpzb24p LChsb25nKTEwMjQsKGxvbmcpMSwoMTAyNCkqc2l6ZW9mKGNoYXIpLCAKKwlFQ1BHdF9OT19JTkRJ Q0FUT1IsIE5VTEwgLCAwTCwgMEwsIDBMLCBFQ1BHdF9FT1JUKTsKKyNsaW5lIDEzOSAic3FsanNv bi5wZ2MiCisKK2lmIChzcWxjYS5zcWxjb2RlIDwgMCkgc3FscHJpbnQoKTt9CisjbGluZSAxMzkg InNxbGpzb24ucGdjIgorCisJcHJpbnRmKCJGb3VuZCBqc29uPSVzXG4iLCBqc29uKTsKKworCXsg RUNQR2RvKF9fTElORV9fLCAwLCAxLCBOVUxMLCAwLCBFQ1BHc3Rfbm9ybWFsLCAic2VsZWN0IGpz b24gKCAoICd7XCJhXCI6IHtcImJcIjogMSwgXCJjXCI6IDJ9LCBcImJcIjogW3tcInhcIjogMX0s IHtcInhcIjogWzEyLCB7XCJ5XCI6MX1dfV19JyA6OiBqc29uYiApIC4gYiBbIDEgXSAuIHggWyAw IDogXSApIiwgRUNQR3RfRU9JVCwgCisJRUNQR3RfY2hhciwoanNvbiksKGxvbmcpMTAyNCwobG9u ZykxLCgxMDI0KSpzaXplb2YoY2hhciksIAorCUVDUEd0X05PX0lORElDQVRPUiwgTlVMTCAsIDBM LCAwTCwgMEwsIEVDUEd0X0VPUlQpOworI2xpbmUgMTQyICJzcWxqc29uLnBnYyIKKworaWYgKHNx bGNhLnNxbGNvZGUgPCAwKSBzcWxwcmludCgpO30KKyNsaW5lIDE0MiAic3FsanNvbi5wZ2MiCisK KwkvLyBlcnJvcgorCisJeyBFQ1BHZG8oX19MSU5FX18sIDAsIDEsIE5VTEwsIDAsIEVDUEdzdF9u b3JtYWwsICJzZWxlY3QganNvbiAoICggJ3tcImFcIjoge1wiYlwiOiAxLCBcImNcIjogMn0sIFwi YlwiOiBbe1wieFwiOiAxfSwge1wieFwiOiBbMTIsIHtcInlcIjoxfV19XX0nIDo6IGpzb25iICkg LiAqICkiLCBFQ1BHdF9FT0lULCAKKwlFQ1BHdF9jaGFyLChqc29uKSwobG9uZykxMDI0LChsb25n KTEsKDEwMjQpKnNpemVvZihjaGFyKSwgCisJRUNQR3RfTk9fSU5ESUNBVE9SLCBOVUxMICwgMEws IDBMLCAwTCwgRUNQR3RfRU9SVCk7CisjbGluZSAxNDUgInNxbGpzb24ucGdjIgorCitpZiAoc3Fs Y2Euc3FsY29kZSA8IDApIHNxbHByaW50KCk7fQorI2xpbmUgMTQ1ICJzcWxqc29uLnBnYyIKKwor CS8vIGVycm9yCisKKwl7IEVDUEdkbyhfX0xJTkVfXywgMCwgMSwgTlVMTCwgMCwgRUNQR3N0X25v cm1hbCwgInNlbGVjdCBqc29uICggKCAne1wiYVwiOiB7XCJiXCI6IDEsIFwiY1wiOiAyfSwgXCJi XCI6IFt7XCJ4XCI6IDF9LCB7XCJ4XCI6IFsxMiwge1wieVwiOjF9XX1dfScgOjoganNvbmIgKSBb ICdiJyBdIFsgMCA6IF0gKSIsIEVDUEd0X0VPSVQsIAorCUVDUEd0X2NoYXIsKGpzb24pLChsb25n KTEwMjQsKGxvbmcpMSwoMTAyNCkqc2l6ZW9mKGNoYXIpLCAKKwlFQ1BHdF9OT19JTkRJQ0FUT1Is IE5VTEwgLCAwTCwgMEwsIDBMLCBFQ1BHdF9FT1JUKTsKKyNsaW5lIDE0OCAic3FsanNvbi5wZ2Mi CisKK2lmIChzcWxjYS5zcWxjb2RlIDwgMCkgc3FscHJpbnQoKTt9CisjbGluZSAxNDggInNxbGpz b24ucGdjIgorCisJLy8gZXJyb3IKKworICB7IEVDUEdkaXNjb25uZWN0KF9fTElORV9fLCAiQ1VS UkVOVCIpOworI2xpbmUgMTUxICJzcWxqc29uLnBnYyIKKworaWYgKHNxbGNhLnNxbGNvZGUgPCAw KSBzcWxwcmludCgpO30KKyNsaW5lIDE1MSAic3FsanNvbi5wZ2MiCisKIAogICByZXR1cm4gMDsK IH0KZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9leHBlY3RlZC9zcWwtc3Fs anNvbi5zdGRlcnIgYi9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpz b24uc3RkZXJyCmluZGV4IGU1NWE5NWRkNzExLi4xOWY4YzU4YWYwNiAxMDA2NDQKLS0tIGEvc3Jj L2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29uLnN0ZGVycgorKysgYi9z cmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24uc3RkZXJyCkBAIC0y NjgsNSArMjY4LDEwNSBAQCBTUUwgZXJyb3I6IGNhbm5vdCB1c2UgdHlwZSBqc29uYiBpbiBSRVRV Uk5JTkcgY2xhdXNlIG9mIEpTT05fU0VSSUFMSVpFKCkgb24gbGluZQogW05PX1BJRF06IHNxbGNh OiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKIFtOT19QSURdOiBlY3BnX2dldF9kYXRhIG9uIGxpbmUg MTAyOiBSRVNVTFQ6IGYgb2Zmc2V0OiAtMTsgYXJyYXk6IG5vCiBbTk9fUElEXTogc3FsY2E6IGNv ZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdfZXhlY3V0ZSBvbiBsaW5lIDExODog cXVlcnk6IHNlbGVjdCBqc29uICggKCAneyJhIjogeyJiIjogMSwgImMiOiAyfX0nIDo6IGpzb25i ICkgLiAiYSIgKTsgd2l0aCAwIHBhcmFtZXRlcihzKSBvbiBjb25uZWN0aW9uIGVjcGcxX3JlZ3Jl c3Npb24KK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTog ZWNwZ19leGVjdXRlIG9uIGxpbmUgMTE4OiB1c2luZyBQUWV4ZWMKK1tOT19QSURdOiBzcWxjYTog Y29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19wcm9jZXNzX291dHB1dCBvbiBs aW5lIDExODogY29ycmVjdGx5IGdvdCAxIHR1cGxlcyB3aXRoIDEgZmllbGRzCitbTk9fUElEXTog c3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdfZ2V0X2RhdGEgb24g bGluZSAxMTg6IFJFU1VMVDogeyJiIjogMSwgImMiOiAyfSBvZmZzZXQ6IC0xOyBhcnJheTogbm8K K1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19l eGVjdXRlIG9uIGxpbmUgMTIxOiBxdWVyeTogc2VsZWN0IGpzb24gKCAneyJhIjogeyJiIjogMSwg ImMiOiAyfX0nIDo6IGpzb25iIC4gImEiICk7IHdpdGggMCBwYXJhbWV0ZXIocykgb24gY29ubmVj dGlvbiBlY3BnMV9yZWdyZXNzaW9uCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAw MDAwMAorW05PX1BJRF06IGVjcGdfZXhlY3V0ZSBvbiBsaW5lIDEyMTogdXNpbmcgUFFleGVjCitb Tk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdfY2hl Y2tfUFFyZXN1bHQgb24gbGluZSAxMjE6IGJhZCByZXNwb25zZSAtIEVSUk9SOiAgc2NoZW1hICJq c29uYiIgZG9lcyBub3QgZXhpc3QKK0xJTkUgMTogc2VsZWN0IGpzb24gKCAneyJhIjogeyJiIjog MSwgImMiOiAyfX0nIDo6IGpzb25iIC4gImEiICkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3Rh dGU6IDAwMDAwCitbTk9fUElEXTogcmFpc2luZyBzcWxzdGF0ZSAzRjAwMCAoc3FsY29kZSAtNDAw KTogc2NoZW1hICJqc29uYiIgZG9lcyBub3QgZXhpc3Qgb24gbGluZSAxMjEKK1tOT19QSURdOiBz cWxjYTogY29kZTogLTQwMCwgc3RhdGU6IDNGMDAwCitTUUwgZXJyb3I6IHNjaGVtYSAianNvbmIi IGRvZXMgbm90IGV4aXN0IG9uIGxpbmUgMTIxCitbTk9fUElEXTogZWNwZ19leGVjdXRlIG9uIGxp bmUgMTI0OiBxdWVyeTogc2VsZWN0IGpzb24gKCAoICd7ImEiOiB7ImIiOiAxLCAiYyI6IDJ9fScg OjoganNvbmIgKSAuIGEgKTsgd2l0aCAwIHBhcmFtZXRlcihzKSBvbiBjb25uZWN0aW9uIGVjcGcx X3JlZ3Jlc3Npb24KK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9f UElEXTogZWNwZ19leGVjdXRlIG9uIGxpbmUgMTI0OiB1c2luZyBQUWV4ZWMKK1tOT19QSURdOiBz cWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19wcm9jZXNzX291dHB1 dCBvbiBsaW5lIDEyNDogY29ycmVjdGx5IGdvdCAxIHR1cGxlcyB3aXRoIDEgZmllbGRzCitbTk9f UElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdfZ2V0X2Rh dGEgb24gbGluZSAxMjQ6IFJFU1VMVDogeyJiIjogMSwgImMiOiAyfSBvZmZzZXQ6IC0xOyBhcnJh eTogbm8KK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTog ZWNwZ19leGVjdXRlIG9uIGxpbmUgMTI3OiBxdWVyeTogc2VsZWN0IGpzb24gKCAoICd7ImEiOiB7 ImIiOiAxLCAiYyI6IDJ9fScgOjoganNvbmIgKSAuIGEgLiBiICk7IHdpdGggMCBwYXJhbWV0ZXIo cykgb24gY29ubmVjdGlvbiBlY3BnMV9yZWdyZXNzaW9uCitbTk9fUElEXTogc3FsY2E6IGNvZGU6 IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdfZXhlY3V0ZSBvbiBsaW5lIDEyNzogdXNp bmcgUFFleGVjCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJ RF06IGVjcGdfcHJvY2Vzc19vdXRwdXQgb24gbGluZSAxMjc6IGNvcnJlY3RseSBnb3QgMSB0dXBs ZXMgd2l0aCAxIGZpZWxkcworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAK K1tOT19QSURdOiBlY3BnX2dldF9kYXRhIG9uIGxpbmUgMTI3OiBSRVNVTFQ6IDEgb2Zmc2V0OiAt MTsgYXJyYXk6IG5vCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05P X1BJRF06IGVjcGdfZXhlY3V0ZSBvbiBsaW5lIDEzMDogcXVlcnk6IHNlbGVjdCBqc29uICggY29h bGVzY2UgKCBqc29uICggKCAneyJhIjogeyJiIjogMSwgImMiOiAyfX0nIDo6IGpzb25iICkgLiBj ICkgLCAnbnVsbCcgKSApOyB3aXRoIDAgcGFyYW1ldGVyKHMpIG9uIGNvbm5lY3Rpb24gZWNwZzFf cmVncmVzc2lvbgorW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19Q SURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSAxMzA6IHVzaW5nIFBRZXhlYworW05PX1BJRF06IHNx bGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX3Byb2Nlc3Nfb3V0cHV0 IG9uIGxpbmUgMTMwOiBjb3JyZWN0bHkgZ290IDEgdHVwbGVzIHdpdGggMSBmaWVsZHMKK1tOT19Q SURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19nZXRfZGF0 YSBvbiBsaW5lIDEzMDogUkVTVUxUOiBudWxsIG9mZnNldDogLTE7IGFycmF5OiBubworW05PX1BJ RF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX2V4ZWN1dGUg b24gbGluZSAxMzM6IHF1ZXJ5OiBzZWxlY3QganNvbiAoICggJ3siYSI6IHsiYiI6IDEsICJjIjog Mn0sICJiIjogW3sieCI6IDF9LCB7IngiOiBbMTIsIHsieSI6MX1dfV19JyA6OiBqc29uYiApIC4g YiBbIDAgXSApOyB3aXRoIDAgcGFyYW1ldGVyKHMpIG9uIGNvbm5lY3Rpb24gZWNwZzFfcmVncmVz c2lvbgorW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBl Y3BnX2V4ZWN1dGUgb24gbGluZSAxMzM6IHVzaW5nIFBRZXhlYworW05PX1BJRF06IHNxbGNhOiBj b2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX3Byb2Nlc3Nfb3V0cHV0IG9uIGxp bmUgMTMzOiBjb3JyZWN0bHkgZ290IDEgdHVwbGVzIHdpdGggMSBmaWVsZHMKK1tOT19QSURdOiBz cWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19nZXRfZGF0YSBvbiBs aW5lIDEzMzogUkVTVUxUOiB7IngiOiAxfSBvZmZzZXQ6IC0xOyBhcnJheTogbm8KK1tOT19QSURd OiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19leGVjdXRlIG9u IGxpbmUgMTM2OiBxdWVyeTogc2VsZWN0IGpzb24gKCAoICd7ImEiOiB7ImIiOiAxLCAiYyI6IDJ9 LCAiYiI6IFt7IngiOiAxfSwgeyJ4IjogWzEyLCB7InkiOjF9XX1dfScgOjoganNvbmIgKSAuIGIg LiB4ICk7IHdpdGggMCBwYXJhbWV0ZXIocykgb24gY29ubmVjdGlvbiBlY3BnMV9yZWdyZXNzaW9u CitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdf ZXhlY3V0ZSBvbiBsaW5lIDEzNjogdXNpbmcgUFFleGVjCitbTk9fUElEXTogc3FsY2E6IGNvZGU6 IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdfcHJvY2Vzc19vdXRwdXQgb24gbGluZSAx MzY6IGNvcnJlY3RseSBnb3QgMSB0dXBsZXMgd2l0aCAxIGZpZWxkcworW05PX1BJRF06IHNxbGNh OiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX2dldF9kYXRhIG9uIGxpbmUg MTM2OiBSRVNVTFQ6IFsxLCBbMTIsIHsieSI6IDF9XV0gb2Zmc2V0OiAtMTsgYXJyYXk6IG5vCitb Tk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdfZXhl Y3V0ZSBvbiBsaW5lIDEzOTogcXVlcnk6IHNlbGVjdCBqc29uICggKCAneyJhIjogeyJiIjogMSwg ImMiOiAyfSwgImIiOiBbeyJ4IjogMX0sIHsieCI6IFsxMiwgeyJ5IjoxfV19XX0nIDo6IGpzb25i ICkgWyAnYicgXSBbIDAgXSApOyB3aXRoIDAgcGFyYW1ldGVyKHMpIG9uIGNvbm5lY3Rpb24gZWNw ZzFfcmVncmVzc2lvbgorW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tO T19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSAxMzk6IHVzaW5nIFBRZXhlYworW05PX1BJRF06 IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX3Byb2Nlc3Nfb3V0 cHV0IG9uIGxpbmUgMTM5OiBjb3JyZWN0bHkgZ290IDEgdHVwbGVzIHdpdGggMSBmaWVsZHMKK1tO T19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19nZXRf ZGF0YSBvbiBsaW5lIDEzOTogUkVTVUxUOiB7IngiOiAxfSBvZmZzZXQ6IC0xOyBhcnJheTogbm8K K1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19l eGVjdXRlIG9uIGxpbmUgMTQyOiBxdWVyeTogc2VsZWN0IGpzb24gKCAoICd7ImEiOiB7ImIiOiAx LCAiYyI6IDJ9LCAiYiI6IFt7IngiOiAxfSwgeyJ4IjogWzEyLCB7InkiOjF9XX1dfScgOjoganNv bmIgKSAuIGIgWyAxIF0gLiB4IFsgMCA6IF0gKTsgd2l0aCAwIHBhcmFtZXRlcihzKSBvbiBjb25u ZWN0aW9uIGVjcGcxX3JlZ3Jlc3Npb24KK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6 IDAwMDAwCitbTk9fUElEXTogZWNwZ19leGVjdXRlIG9uIGxpbmUgMTQyOiB1c2luZyBQUWV4ZWMK K1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19j aGVja19QUXJlc3VsdCBvbiBsaW5lIDE0MjogYmFkIHJlc3BvbnNlIC0gRVJST1I6ICBqc29uYiBz dWJzY3JpcHQgZG9lcyBub3Qgc3VwcG9ydCBzbGljZXMKK0xJTkUgMTogLi4uLCB7IngiOiBbMTIs IHsieSI6MX1dfV19JyA6OiBqc29uYiApIC4gYiBbIDEgXSAuIHggWyAwIDogXSApCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgorW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiByYWlz aW5nIHNxbHN0YXRlIDQyODA0IChzcWxjb2RlIC00MDApOiBqc29uYiBzdWJzY3JpcHQgZG9lcyBu b3Qgc3VwcG9ydCBzbGljZXMgb24gbGluZSAxNDIKK1tOT19QSURdOiBzcWxjYTogY29kZTogLTQw MCwgc3RhdGU6IDQyODA0CitTUUwgZXJyb3I6IGpzb25iIHN1YnNjcmlwdCBkb2VzIG5vdCBzdXBw b3J0IHNsaWNlcyBvbiBsaW5lIDE0MgorW05PX1BJRF06IGVjcGdfZXhlY3V0ZSBvbiBsaW5lIDE0 NTogcXVlcnk6IHNlbGVjdCBqc29uICggKCAneyJhIjogeyJiIjogMSwgImMiOiAyfSwgImIiOiBb eyJ4IjogMX0sIHsieCI6IFsxMiwgeyJ5IjoxfV19XX0nIDo6IGpzb25iICkgLiAqICk7IHdpdGgg MCBwYXJhbWV0ZXIocykgb24gY29ubmVjdGlvbiBlY3BnMV9yZWdyZXNzaW9uCitbTk9fUElEXTog c3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdfZXhlY3V0ZSBvbiBs aW5lIDE0NTogdXNpbmcgUFFleGVjCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAw MDAwMAorW05PX1BJRF06IGVjcGdfY2hlY2tfUFFyZXN1bHQgb24gbGluZSAxNDU6IGJhZCByZXNw b25zZSAtIEVSUk9SOiAgcm93IGV4cGFuc2lvbiB2aWEgIioiIGlzIG5vdCBzdXBwb3J0ZWQgaGVy ZQorTElORSAxOiBzZWxlY3QganNvbiAoICggJ3siYSI6IHsiYiI6IDEsICJjIjogMn0sICJiIjog W3sieCI6IDF9LCB7InguLi4KKyAgICAgICAgICAgICAgICAgICAgICAgIF4KK1tOT19QSURdOiBz cWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogcmFpc2luZyBzcWxzdGF0ZSAw QTAwMCAoc3FsY29kZSAtNDAwKTogcm93IGV4cGFuc2lvbiB2aWEgIioiIGlzIG5vdCBzdXBwb3J0 ZWQgaGVyZSBvbiBsaW5lIDE0NQorW05PX1BJRF06IHNxbGNhOiBjb2RlOiAtNDAwLCBzdGF0ZTog MEEwMDAKK1NRTCBlcnJvcjogcm93IGV4cGFuc2lvbiB2aWEgIioiIGlzIG5vdCBzdXBwb3J0ZWQg aGVyZSBvbiBsaW5lIDE0NQorW05PX1BJRF06IGVjcGdfZXhlY3V0ZSBvbiBsaW5lIDE0ODogcXVl cnk6IHNlbGVjdCBqc29uICggKCAneyJhIjogeyJiIjogMSwgImMiOiAyfSwgImIiOiBbeyJ4Ijog MX0sIHsieCI6IFsxMiwgeyJ5IjoxfV19XX0nIDo6IGpzb25iICkgWyAnYicgXSBbIDAgOiBdICk7 IHdpdGggMCBwYXJhbWV0ZXIocykgb24gY29ubmVjdGlvbiBlY3BnMV9yZWdyZXNzaW9uCitbTk9f UElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdfZXhlY3V0 ZSBvbiBsaW5lIDE0ODogdXNpbmcgUFFleGVjCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0 YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdfY2hlY2tfUFFyZXN1bHQgb24gbGluZSAxNDg6IGJh ZCByZXNwb25zZSAtIEVSUk9SOiAganNvbmIgc3Vic2NyaXB0IGRvZXMgbm90IHN1cHBvcnQgc2xp Y2VzCitMSU5FIDE6IC4uLngiOiAxfSwgeyJ4IjogWzEyLCB7InkiOjF9XX1dfScgOjoganNvbmIg KSBbICdiJyBdIFsgMCA6IF0gKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwg c3RhdGU6IDAwMDAwCitbTk9fUElEXTogcmFpc2luZyBzcWxzdGF0ZSA0MjgwNCAoc3FsY29kZSAt NDAwKToganNvbmIgc3Vic2NyaXB0IGRvZXMgbm90IHN1cHBvcnQgc2xpY2VzIG9uIGxpbmUgMTQ4 CitbTk9fUElEXTogc3FsY2E6IGNvZGU6IC00MDAsIHN0YXRlOiA0MjgwNAorU1FMIGVycm9yOiBq c29uYiBzdWJzY3JpcHQgZG9lcyBub3Qgc3VwcG9ydCBzbGljZXMgb24gbGluZSAxNDgKIFtOT19Q SURdOiBlY3BnX2ZpbmlzaDogY29ubmVjdGlvbiBlY3BnMV9yZWdyZXNzaW9uIGNsb3NlZAogW05P X1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKZGlmZiAtLWdpdCBhL3NyYy9pbnRl cmZhY2VzL2VjcGcvdGVzdC9leHBlY3RlZC9zcWwtc3FsanNvbi5zdGRvdXQgYi9zcmMvaW50ZXJm YWNlcy9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24uc3Rkb3V0CmluZGV4IDgzZjhkZjEz ZTVhLi40NDJkMzY5MzFmMSAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4 cGVjdGVkL3NxbC1zcWxqc29uLnN0ZG91dAorKysgYi9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3Qv ZXhwZWN0ZWQvc3FsLXNxbGpzb24uc3Rkb3V0CkBAIC0yOCwzICsyOCwxMCBAQCBGb3VuZCBpc19q c29uWzRdOiBmYWxzZQogRm91bmQgaXNfanNvbls1XTogZmFsc2UKIEZvdW5kIGlzX2pzb25bNl06 IHRydWUKIEZvdW5kIGlzX2pzb25bN106IGZhbHNlCitGb3VuZCBqc29uPXsiYiI6IDEsICJjIjog Mn0KK0ZvdW5kIGpzb249eyJiIjogMSwgImMiOiAyfQorRm91bmQganNvbj0xCitGb3VuZCBqc29u PW51bGwKK0ZvdW5kIGpzb249eyJ4IjogMX0KK0ZvdW5kIGpzb249WzEsIFsxMiwgeyJ5IjogMX1d XQorRm91bmQganNvbj17IngiOiAxfQpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvZWNwZy90 ZXN0L3NxbC9zcWxqc29uLnBnYyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9zcWwvc3FsanNv bi5wZ2MKaW5kZXggZGRjYmNjM2IzY2IuLjU3YTliZmY0MjRkIDEwMDY0NAotLS0gYS9zcmMvaW50 ZXJmYWNlcy9lY3BnL3Rlc3Qvc3FsL3NxbGpzb24ucGdjCisrKyBiL3NyYy9pbnRlcmZhY2VzL2Vj cGcvdGVzdC9zcWwvc3FsanNvbi5wZ2MKQEAgLTExNSw2ICsxMTUsMzkgQEAgRVhFQyBTUUwgRU5E IERFQ0xBUkUgU0VDVElPTjsKIAkgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZW9mKGlzX2pzb24p OyBpKyspCiAJCSAgcHJpbnRmKCJGb3VuZCBpc19qc29uWyVkXTogJXNcbiIsIGksIGlzX2pzb25b aV0gPyAidHJ1ZSIgOiAiZmFsc2UiKTsKIAorCUVYRUMgU1FMIFNFTEVDVCBKU09OKCgneyJhIjog eyJiIjogMSwgImMiOiAyfX0nOjpqc29uYikuImEiKSBJTlRPIDpqc29uOworCXByaW50ZigiRm91 bmQganNvbj0lc1xuIiwganNvbik7CisKKwlFWEVDIFNRTCBTRUxFQ1QgSlNPTigneyJhIjogeyJi IjogMSwgImMiOiAyfX0nOjpqc29uYi4iYSIpIElOVE8gOmpzb247CisJLy8gZXJyb3IKKworCUVY RUMgU1FMIFNFTEVDVCBKU09OKCgneyJhIjogeyJiIjogMSwgImMiOiAyfX0nOjpqc29uYikuYSkg SU5UTyA6anNvbjsKKwlwcmludGYoIkZvdW5kIGpzb249JXNcbiIsIGpzb24pOworCisJRVhFQyBT UUwgU0VMRUNUIEpTT04oKCd7ImEiOiB7ImIiOiAxLCAiYyI6IDJ9fSc6Ompzb25iKS5hLmIpIElO VE8gOmpzb247CisJcHJpbnRmKCJGb3VuZCBqc29uPSVzXG4iLCBqc29uKTsKKworCUVYRUMgU1FM IFNFTEVDVCBKU09OKENPQUxFU0NFKEpTT04oKCd7ImEiOiB7ImIiOiAxLCAiYyI6IDJ9fSc6Ompz b25iKS5jKSwgJ251bGwnKSkgSU5UTyA6anNvbjsKKwlwcmludGYoIkZvdW5kIGpzb249JXNcbiIs IGpzb24pOworCisJRVhFQyBTUUwgU0VMRUNUIEpTT04oKCd7ImEiOiB7ImIiOiAxLCAiYyI6IDJ9 LCAiYiI6IFt7IngiOiAxfSwgeyJ4IjogWzEyLCB7InkiOjF9XX1dfSc6Ompzb25iKS5iWzBdKSBJ TlRPIDpqc29uOworCXByaW50ZigiRm91bmQganNvbj0lc1xuIiwganNvbik7CisKKwlFWEVDIFNR TCBTRUxFQ1QgSlNPTigoJ3siYSI6IHsiYiI6IDEsICJjIjogMn0sICJiIjogW3sieCI6IDF9LCB7 IngiOiBbMTIsIHsieSI6MX1dfV19Jzo6anNvbmIpLmIueCkgSU5UTyA6anNvbjsKKwlwcmludGYo IkZvdW5kIGpzb249JXNcbiIsIGpzb24pOworCisJRVhFQyBTUUwgU0VMRUNUIEpTT04oKCd7ImEi OiB7ImIiOiAxLCAiYyI6IDJ9LCAiYiI6IFt7IngiOiAxfSwgeyJ4IjogWzEyLCB7InkiOjF9XX1d fSc6Ompzb25iKVsnYiddWzBdKSBJTlRPIDpqc29uOworCXByaW50ZigiRm91bmQganNvbj0lc1xu IiwganNvbik7CisKKwlFWEVDIFNRTCBTRUxFQ1QgSlNPTigoJ3siYSI6IHsiYiI6IDEsICJjIjog Mn0sICJiIjogW3sieCI6IDF9LCB7IngiOiBbMTIsIHsieSI6MX1dfV19Jzo6anNvbmIpLmJbMV0u eFswOl0pIElOVE8gOmpzb247CisJLy8gZXJyb3IKKworCUVYRUMgU1FMIFNFTEVDVCBKU09OKCgn eyJhIjogeyJiIjogMSwgImMiOiAyfSwgImIiOiBbeyJ4IjogMX0sIHsieCI6IFsxMiwgeyJ5Ijox fV19XX0nOjpqc29uYikuKikgSU5UTyA6anNvbjsKKwkvLyBlcnJvcgorCisJRVhFQyBTUUwgU0VM RUNUIEpTT04oKCd7ImEiOiB7ImIiOiAxLCAiYyI6IDJ9LCAiYiI6IFt7IngiOiAxfSwgeyJ4Ijog WzEyLCB7InkiOjF9XX1dfSc6Ompzb25iKVsnYiddWzA6XSkgSU5UTyA6anNvbjsKKwkvLyBlcnJv cgorCiAgIEVYRUMgU1FMIERJU0NPTk5FQ1Q7CiAKICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pzb25iLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvanNvbmIub3V0CmluZGV4IGZiNDdjOGE4OTNhLi42ODVmMjI5ZTY4MiAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qc29uYi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9qc29uYi5vdXQKQEAgLTQ5ODksNiArNDk4OSwxMiBAQCBzZWxlY3QgKCcx MjMnOjpqc29uYilbJ2EnXTsKICAKICgxIHJvdykKIAorc2VsZWN0ICgnMTIzJzo6anNvbmIpLmE7 CisgYSAKKy0tLQorIAorKDEgcm93KQorCiBzZWxlY3QgKCcxMjMnOjpqc29uYilbMF07CiAganNv bmIgCiAtLS0tLS0tCkBAIC01MDAxLDEyICs1MDA3LDI0IEBAIHNlbGVjdCAoJzEyMyc6Ompzb25i KVtOVUxMXTsKICAKICgxIHJvdykKIAorc2VsZWN0ICgnMTIzJzo6anNvbmIpLk5VTEw7CisgbnVs bCAKKy0tLS0tLQorIAorKDEgcm93KQorCiBzZWxlY3QgKCd7ImEiOiAxfSc6Ompzb25iKVsnYSdd OwogIGpzb25iIAogLS0tLS0tLQogIDEKICgxIHJvdykKIAorc2VsZWN0ICgneyJhIjogMX0nOjpq c29uYikuYTsKKyBhIAorLS0tCisgMQorKDEgcm93KQorCiBzZWxlY3QgKCd7ImEiOiAxfSc6Ompz b25iKVswXTsKICBqc29uYiAKIC0tLS0tLS0KQEAgLTUwMTksNiArNTAzNywxMiBAQCBzZWxlY3Qg KCd7ImEiOiAxfSc6Ompzb25iKVsnbm90X2V4aXN0J107CiAgCiAoMSByb3cpCiAKK3NlbGVjdCAo J3siYSI6IDF9Jzo6anNvbmIpLiJub3RfZXhpc3QiOworIG5vdF9leGlzdCAKKy0tLS0tLS0tLS0t CisgCisoMSByb3cpCisKIHNlbGVjdCAoJ3siYSI6IDF9Jzo6anNvbmIpW05VTExdOwogIGpzb25i IAogLS0tLS0tLQpAQCAtNTAzMSw2ICs1MDU1LDEyIEBAIHNlbGVjdCAoJ1sxLCAiMiIsIG51bGxd Jzo6anNvbmIpWydhJ107CiAgCiAoMSByb3cpCiAKK3NlbGVjdCAoJ1sxLCAiMiIsIG51bGxdJzo6 anNvbmIpLmE7CisgYSAKKy0tLQorIAorKDEgcm93KQorCiBzZWxlY3QgKCdbMSwgIjIiLCBudWxs XSc6Ompzb25iKVswXTsKICBqc29uYiAKIC0tLS0tLS0KQEAgLTUwNDMsNiArNTA3MywxMiBAQCBz ZWxlY3QgKCdbMSwgIjIiLCBudWxsXSc6Ompzb25iKVsnMSddOwogICIyIgogKDEgcm93KQogCitz ZWxlY3QgKCdbMSwgIjIiLCBudWxsXSc6Ompzb25iKS4iMSI7CisgMSAKKy0tLQorIAorKDEgcm93 KQorCiBzZWxlY3QgKCdbMSwgIjIiLCBudWxsXSc6Ompzb25iKVsxLjBdOwogRVJST1I6ICBzdWJz Y3JpcHQgdHlwZSBudW1lcmljIGlzIG5vdCBzdXBwb3J0ZWQKIExJTkUgMTogc2VsZWN0ICgnWzEs ICIyIiwgbnVsbF0nOjpqc29uYilbMS4wXTsKQEAgLTUwNzIsNiArNTEwOCwxMiBAQCBzZWxlY3Qg KCdbMSwgIjIiLCBudWxsXSc6Ompzb25iKVsxXVsnYSddOwogIAogKDEgcm93KQogCitzZWxlY3Qg KCdbMSwgIjIiLCBudWxsXSc6Ompzb25iKVsxXS5hOworIGEgCistLS0KKyAKKygxIHJvdykKKwog c2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbMV1bMF07CiAganNvbmIgCiAtLS0tLS0t CkBAIC01MDg0LDU0ICs1MTI2LDEyNiBAQCBzZWxlY3QgKCd7ImEiOiAxLCAiYiI6ICJjIiwgImQi OiBbMSwgMiwgM119Jzo6anNvbmIpWydiJ107CiAgImMiCiAoMSByb3cpCiAKK3NlbGVjdCAoJ3si YSI6IDEsICJiIjogImMiLCAiZCI6IFsxLCAyLCAzXX0nOjpqc29uYikuYjsKKyAgYiAgCistLS0t LQorICJjIgorKDEgcm93KQorCiBzZWxlY3QgKCd7ImEiOiAxLCAiYiI6ICJjIiwgImQiOiBbMSwg MiwgM119Jzo6anNvbmIpWydkJ107CiAgICBqc29uYiAgIAogLS0tLS0tLS0tLS0KICBbMSwgMiwg M10KICgxIHJvdykKIAorc2VsZWN0ICgneyJhIjogMSwgImIiOiAiYyIsICJkIjogWzEsIDIsIDNd fSc6Ompzb25iKS5kOworICAgICBkICAgICAKKy0tLS0tLS0tLS0tCisgWzEsIDIsIDNdCisoMSBy b3cpCisKIHNlbGVjdCAoJ3siYSI6IDEsICJiIjogImMiLCAiZCI6IFsxLCAyLCAzXX0nOjpqc29u YilbJ2QnXVsxXTsKICBqc29uYiAKIC0tLS0tLS0KICAyCiAoMSByb3cpCiAKK3NlbGVjdCAoJ3si YSI6IDEsICJiIjogImMiLCAiZCI6IFsxLCAyLCAzXX0nOjpqc29uYikuZFsxXTsKKyBkIAorLS0t CisgMgorKDEgcm93KQorCiBzZWxlY3QgKCd7ImEiOiAxLCAiYiI6ICJjIiwgImQiOiBbMSwgMiwg M119Jzo6anNvbmIpWydkJ11bJ2EnXTsKICBqc29uYiAKIC0tLS0tLS0KICAKICgxIHJvdykKIAor c2VsZWN0ICgneyJhIjogMSwgImIiOiAiYyIsICJkIjogWzEsIDIsIDNdfSc6Ompzb25iKS5kWydh J107CisgZCAKKy0tLQorIAorKDEgcm93KQorCitzZWxlY3QgKCd7ImEiOiAxLCAiYiI6ICJjIiwg ImQiOiBbMSwgMiwgM119Jzo6anNvbmIpLmQuYTsKKyBhIAorLS0tCisgCisoMSByb3cpCisKK3Nl bGVjdCAoJ3siYSI6IDEsICJiIjogImMiLCAiZCI6IHsiYSI6IFsxLCAyLCAzXX19Jzo6anNvbmIp LmRbJ2EnXVswXTsKKyBkIAorLS0tCisgMQorKDEgcm93KQorCitzZWxlY3QgKCd7ImEiOiAxLCAi YiI6ICJjIiwgImQiOiB7ImEiOiBbMSwgMiwgM119fSc6Ompzb25iKS5kLmFbMF07CisgYSAKKy0t LQorIDEKKygxIHJvdykKKwogc2VsZWN0ICgneyJhIjogeyJhMSI6IHsiYTIiOiAiYWFhIn19LCAi YiI6ICJiYmIiLCAiYyI6ICJjY2MifSc6Ompzb25iKVsnYSddWydhMSddOwogICAgICBqc29uYiAg ICAgCiAtLS0tLS0tLS0tLS0tLS0KICB7ImEyIjogImFhYSJ9CiAoMSByb3cpCiAKK3NlbGVjdCAo J3siYSI6IHsiYTEiOiB7ImEyIjogImFhYSJ9fSwgImIiOiAiYmJiIiwgImMiOiAiY2NjIn0nOjpq c29uYikuYS5hMTsKKyAgICAgIGExICAgICAgIAorLS0tLS0tLS0tLS0tLS0tCisgeyJhMiI6ICJh YWEifQorKDEgcm93KQorCiBzZWxlY3QgKCd7ImEiOiB7ImExIjogeyJhMiI6ICJhYWEifX0sICJi IjogImJiYiIsICJjIjogImNjYyJ9Jzo6anNvbmIpWydhJ11bJ2ExJ11bJ2EyJ107CiAganNvbmIg CiAtLS0tLS0tCiAgImFhYSIKICgxIHJvdykKIAorc2VsZWN0ICgneyJhIjogeyJhMSI6IHsiYTIi OiAiYWFhIn19LCAiYiI6ICJiYmIiLCAiYyI6ICJjY2MifSc6Ompzb25iKS5hLmExLmEyOworICBh MiAgIAorLS0tLS0tLQorICJhYWEiCisoMSByb3cpCisKIHNlbGVjdCAoJ3siYSI6IHsiYTEiOiB7 ImEyIjogImFhYSJ9fSwgImIiOiAiYmJiIiwgImMiOiAiY2NjIn0nOjpqc29uYilbJ2EnXVsnYTEn XVsnYTInXVsnYTMnXTsKICBqc29uYiAKIC0tLS0tLS0KICAKICgxIHJvdykKIAorc2VsZWN0ICgn eyJhIjogeyJhMSI6IHsiYTIiOiAiYWFhIn19LCAiYiI6ICJiYmIiLCAiYyI6ICJjY2MifSc6Ompz b25iKS5hLmExLmEyLmEzOworIGEzIAorLS0tLQorIAorKDEgcm93KQorCiBzZWxlY3QgKCd7ImEi OiBbImExIiwgeyJiMSI6IFsiYWFhIiwgImJiYiIsICJjY2MiXX1dLCAiYiI6ICJiYiJ9Jzo6anNv bmIpWydhJ11bMV1bJ2IxJ107CiAgICAgICAgICBqc29uYiAgICAgICAgIAogLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KICBbImFhYSIsICJiYmIiLCAiY2NjIl0KICgxIHJvdykKIAorc2VsZWN0ICgn eyJhIjogWyJhMSIsIHsiYjEiOiBbImFhYSIsICJiYmIiLCAiY2NjIl19XSwgImIiOiAiYmIifSc6 Ompzb25iKS5hWzFdLmIxOworICAgICAgICAgIGIxICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgWyJhYWEiLCAiYmJiIiwgImNjYyJdCisoMSByb3cpCisKIHNlbGVjdCAoJ3si YSI6IFsiYTEiLCB7ImIxIjogWyJhYWEiLCAiYmJiIiwgImNjYyJdfV0sICJiIjogImJiIn0nOjpq c29uYilbJ2EnXVsxXVsnYjEnXVsyXTsKICBqc29uYiAKIC0tLS0tLS0KICAiY2NjIgogKDEgcm93 KQogCitzZWxlY3QgKCd7ImEiOiBbImExIiwgeyJiMSI6IFsiYWFhIiwgImJiYiIsICJjY2MiXX1d LCAiYiI6ICJiYiJ9Jzo6anNvbmIpLmFbMV0uYjFbMl07CisgIGIxICAgCistLS0tLS0tCisgImNj YyIKKygxIHJvdykKKwogLS0gc2xpY2VzIGFyZSBub3Qgc3VwcG9ydGVkCiBzZWxlY3QgKCd7ImEi OiAxfSc6Ompzb25iKVsnYSc6J2InXTsKIEVSUk9SOiAganNvbmIgc3Vic2NyaXB0IGRvZXMgbm90 IHN1cHBvcnQgc2xpY2VzCkBAIC01ODQxLDcgKzU5NTUsNyBAQCBzZWxlY3QganNvbmJfdHlwZW9m KCd7ImEiOjF9Jzo6anNvbmIpOwogc2VsZWN0ICgneyJhIjoxfSc6Ompzb25iKS5qc29uYl90eXBl b2Y7CiAganNvbmJfdHlwZW9mIAogLS0tLS0tLS0tLS0tLS0KLSBvYmplY3QKKyAKICgxIHJvdykK IAogc2VsZWN0IGpzb25iX2FycmF5X2xlbmd0aCgnWyJhIiwgImIiLCAiYyJdJzo6anNvbmIpOwpA QCAtNTg1Myw3ICs1OTY3LDcgQEAgc2VsZWN0IGpzb25iX2FycmF5X2xlbmd0aCgnWyJhIiwgImIi LCAiYyJdJzo6anNvbmIpOwogc2VsZWN0ICgnWyJhIiwgImIiLCAiYyJdJzo6anNvbmIpLmpzb25i X2FycmF5X2xlbmd0aDsKICBqc29uYl9hcnJheV9sZW5ndGggCiAtLS0tLS0tLS0tLS0tLS0tLS0t LQotICAgICAgICAgICAgICAgICAgMworIAogKDEgcm93KQogCiBzZWxlY3QganNvbmJfb2JqZWN0 X2tleXMoJ3siYSI6MSwgImIiOjJ9Jzo6anNvbmIpOwpAQCAtNTg2Niw5ICs1OTgwLDggQEAgc2Vs ZWN0IGpzb25iX29iamVjdF9rZXlzKCd7ImEiOjEsICJiIjoyfSc6Ompzb25iKTsKIHNlbGVjdCAo J3siYSI6MSwgImIiOjJ9Jzo6anNvbmIpLmpzb25iX29iamVjdF9rZXlzOwogIGpzb25iX29iamVj dF9rZXlzIAogLS0tLS0tLS0tLS0tLS0tLS0tLQotIGEKLSBiCi0oMiByb3dzKQorIAorKDEgcm93 KQogCiAtLSBjYXN0IGpzb25iIHRvIG90aGVyIHR5cGVzIGFzIChqc29uYik6OnR5cGUgYW5kIChq c29uYikudHlwZQogc2VsZWN0ICgnMTIzLjQ1Jzo6anNvbmIpOjpudW1lcmljOwpAQCAtNTg4MCw3 ICs1OTkzLDcgQEAgc2VsZWN0ICgnMTIzLjQ1Jzo6anNvbmIpOjpudW1lcmljOwogc2VsZWN0ICgn MTIzLjQ1Jzo6anNvbmIpLm51bWVyaWM7CiAgbnVtZXJpYyAKIC0tLS0tLS0tLQotICAxMjMuNDUK KyAKICgxIHJvdykKIAogc2VsZWN0ICgnW3sibmFtZSI6ICJhbGljZSJ9LCB7Im5hbWUiOiAiYm9i In1dJzo6anNvbmIpOjpuYW1lOwpAQCAtNTg5MCw5ICs2MDAzLDkgQEAgc2VsZWN0ICgnW3sibmFt ZSI6ICJhbGljZSJ9LCB7Im5hbWUiOiAiYm9iIn1dJzo6anNvbmIpOjpuYW1lOwogKDEgcm93KQog CiBzZWxlY3QgKCdbeyJuYW1lIjogImFsaWNlIn0sIHsibmFtZSI6ICJib2IifV0nOjpqc29uYiku bmFtZTsKLSAgICAgICAgICAgICAgICAgbmFtZSAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIFt7Im5hbWUiOiAiYWxpY2UifSwgeyJuYW1l IjogImJvYiJ9XQorICAgICAgIG5hbWUgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0KKyBbImFs aWNlIiwgImJvYiJdCiAoMSByb3cpCiAKIHNlbGVjdCAoJ3RydWUnOjpqc29uYik6OmJvb2w7CkBA IC01OTA0LDcgKzYwMTcsNyBAQCBzZWxlY3QgKCd0cnVlJzo6anNvbmIpOjpib29sOwogc2VsZWN0 ICgndHJ1ZSc6Ompzb25iKS5ib29sOwogIGJvb2wgCiAtLS0tLS0KLSB0CisgCiAoMSByb3cpCiAK IHNlbGVjdCAoJ3sidGV4dCI6ICJoZWxsbyJ9Jzo6anNvbmIpOjp0ZXh0OwpAQCAtNTkxNCw4ICs2 MDI3LDMxMyBAQCBzZWxlY3QgKCd7InRleHQiOiAiaGVsbG8ifSc6Ompzb25iKTo6dGV4dDsKICgx IHJvdykKIAogc2VsZWN0ICgneyJ0ZXh0IjogImhlbGxvIn0nOjpqc29uYikudGV4dDsKLSAgICAg ICB0ZXh0ICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSB7InRleHQiOiAiaGVsbG8ifQor ICB0ZXh0ICAgCistLS0tLS0tLS0KKyAiaGVsbG8iCisoMSByb3cpCisKKy0tIGRvdCBub3RhdGlv bgorQ1JFQVRFIFRBQkxFIHRlc3RfanNvbmJfZG90X25vdGF0aW9uIEFTCitTRUxFQ1QgJ3siYSI6 IFsxLCAyLCB7ImIiOiAiYyJ9LCB7ImIiOiAiZCIsICJlIjogImYiLCAieCI6IHsieSI6ICJ5eXki LCAieiI6ICJ6enoifX1dLCAiYiI6IFszLCA0LCB7ImIiOiAiZyIsICJ4IjogeyJ5IjogIllZWSIs ICJ6IjogIlpaWiJ9fV19Jzo6anNvbmIgamI7CitTRUxFQ1QgKGpiKS5hIEZST00gdGVzdF9qc29u Yl9kb3Rfbm90YXRpb247CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWzEs IDIsIHsiYiI6ICJjIn0sIHsiYiI6ICJkIiwgImUiOiAiZiIsICJ4IjogeyJ5IjogInl5eSIsICJ6 IjogInp6eiJ9fV0KKygxIHJvdykKKworU0VMRUNUIChqYikuImEiIEZST00gdGVzdF9qc29uYl9k b3Rfbm90YXRpb247IC0tIGRvdWJsZSBxdW90ZSBzaG91bGQgd29yaworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIFsxLCAyLCB7ImIiOiAiYyJ9LCB7ImIiOiAiZCIsICJlIjog ImYiLCAieCI6IHsieSI6ICJ5eXkiLCAieiI6ICJ6enoifX1dCisoMSByb3cpCisKK1NFTEVDVCAo amIpLidhJyBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOyAtLSBzaW5nbGUgcXVvdGUgc2hv dWxkIG5vdCB3b3JrCitFUlJPUjogIHN5bnRheCBlcnJvciBhdCBvciBuZWFyICInYSciCitMSU5F IDE6IFNFTEVDVCAoamIpLidhJyBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworICAgICAg ICAgICAgICAgICAgICBeCitzZWxlY3QgKGpiKVswXS5hIGZyb20gdGVzdF9qc29uYl9kb3Rfbm90 YXRpb247IC0tIHJldHVybnMgc2FtZSByZXN1bHQgYXMgKGpiKS5hCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBhICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgWzEsIDIsIHsiYiI6ICJjIn0sIHsiYiI6ICJkIiwgImUiOiAi ZiIsICJ4IjogeyJ5IjogInl5eSIsICJ6IjogInp6eiJ9fV0KKygxIHJvdykKKworc2VsZWN0IChq YilbMV0uYSBmcm9tIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOyAtLSByZXR1cm5zIE5VTEwKKyBh IAorLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCAoamIpLmIgRlJPTSB0ZXN0X2pzb25iX2RvdF9u b3RhdGlvbjsKKyAgICAgICAgICAgICAgICAgICAgICAgICBiICAgICAgICAgICAgICAgICAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgWzMsIDQsIHsiYiI6ICJnIiwgIngiOiB7InkiOiAiWVlZIiwgInoiOiAiWlpaIn19XQorKDEg cm93KQorCitTRUxFQ1QgKGpiKS5jIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgYyAK Ky0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgKGpiKS5hLmIgRlJPTSB0ZXN0X2pzb25iX2RvdF9u b3RhdGlvbjsKKyAgICAgYiAgICAgIAorLS0tLS0tLS0tLS0tCisgWyJjIiwgImQiXQorKDEgcm93 KQorCitTRUxFQ1QgKGpiKS5hWzJdLmIgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyAg YiAgCistLS0tLQorICJjIgorKDEgcm93KQorCitTRUxFQ1QgKGpiKS5hLngueSBGUk9NIHRlc3Rf anNvbmJfZG90X25vdGF0aW9uOworICAgeSAgIAorLS0tLS0tLQorICJ5eXkiCisoMSByb3cpCisK K1NFTEVDVCAoamIpLmIueC56IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICB6ICAg CistLS0tLS0tCisgIlpaWiIKKygxIHJvdykKKworU0VMRUNUIChqYikuYS5iLmMgRlJPTSB0ZXN0 X2pzb25iX2RvdF9ub3RhdGlvbjsKKyBjIAorLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCAoKGpi KS5iKVs6XS54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsgLS0gZmFpbHMKK0VSUk9S OiAganNvbmIgc3Vic2NyaXB0IGRvZXMgbm90IHN1cHBvcnQgc2xpY2VzCitTRUxFQ1QgKGpiKS5h LiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsgLS0gZmFpbHMKK0VSUk9SOiAgdHlwZSBq c29uYiBpcyBub3QgY29tcG9zaXRlCistLSBhc3NpZ25tZW50IGlzIG5vdCBzdXBwb3J0ZWQKK1VQ REFURSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbiBTRVQgamIuYSA9ICcxJzsKK0VSUk9SOiAgY2Fu bm90IGFzc2lnbiB0byBmaWVsZCAiYSIgb2YgY29sdW1uICJqYiIgYmVjYXVzZSBpdHMgdHlwZSBq c29uYiBpcyBub3QgYSBjb21wb3NpdGUgdHlwZQorTElORSAxOiBVUERBVEUgdGVzdF9qc29uYl9k b3Rfbm90YXRpb24gU0VUIGpiLmEgPSAnMSc7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXgorVVBEQVRFIHRlc3RfanNvbmJfZG90X25vdGF0aW9uIFNFVCAoamIp LmEgPSAnMSc7CitFUlJPUjogIHN5bnRheCBlcnJvciBhdCBvciBuZWFyICIuIgorTElORSAxOiBV UERBVEUgdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gU0VUIChqYikuYSA9ICcxJzsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLS0gZXhwbGFpbnMgc2hv dWxkIHdvcmsKK0VYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikgU0VMRUNUICh0LmpiKS5hIEZS T00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKKyAgICAgICAgICAgICAgICAgIFFVRVJZIFBM QU4gICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiBwdWJsaWMudGVzdF9qc29uYl9kb3Rfbm90YXRpb24g dAorICAgT3V0cHV0OiAoamIpLmEKKygyIHJvd3MpCisKK1NFTEVDVCAodC5qYikuYSBGUk9NIHRl c3RfanNvbmJfZG90X25vdGF0aW9uIHQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBhICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgWzEsIDIsIHsiYiI6ICJjIn0sIHsiYiI6ICJkIiwgImUiOiAiZiIsICJ4IjogeyJ5Ijog Inl5eSIsICJ6IjogInp6eiJ9fV0KKygxIHJvdykKKworRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMg T0ZGKSBTRUxFQ1QgKGpiKS5hWzFdIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICAg ICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiBwdWJsaWMudGVzdF9q c29uYl9kb3Rfbm90YXRpb24KKyAgIE91dHB1dDogKGpiKS5hWzFdCisoMiByb3dzKQorCitTRUxF Q1QgKGpiKS5hWzFdIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgYSAKKy0tLQorIDIK KygxIHJvdykKKworLS0gdmlld3Mgc2hvdWxkIHdvcmsKK0NSRUFURSBWSUVXIHRlc3RfanNvbmJf ZG90X25vdGF0aW9uX3YxIEFTIFNFTEVDVCAoamIpLmFbM10ueC55IEZST00gdGVzdF9qc29uYl9k b3Rfbm90YXRpb247Citcc3YgdGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjEKK0NSRUFURSBPUiBS RVBMQUNFIFZJRVcgcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxIEFTCisgU0VMRUNU IChqYikuYVszXS54LnkgQVMgeQorICAgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbgorLS0g bWl4ZWQgc3ludGF4CitEUk9QIFZJRVcgdGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjE7CitFWFBM QUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpIFNFTEVDVCAoamIpWydhJ10uYiBGUk9NIHRlc3RfanNv bmJfZG90X25vdGF0aW9uOworICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2Vx IFNjYW4gb24gcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uCisgICBPdXRwdXQ6IChqYlsn YSc6OnRleHRdKS5iCisoMiByb3dzKQorCitTRUxFQ1QgKGpiKVsnYSddLmIgRlJPTSB0ZXN0X2pz b25iX2RvdF9ub3RhdGlvbjsgLS0gcmV0dXJucyBhbiBhcnJheSBkdWUgdG8gbGF4IG1vZGUKKyAg ICAgYiAgICAgIAorLS0tLS0tLS0tLS0tCisgWyJjIiwgImQiXQorKDEgcm93KQorCitDUkVBVEUg VklFVyBwdWJsaWMudGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjEgQVMKK1NFTEVDVCAoamIpWydh J10uYiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworXHN2IHRlc3RfanNvbmJfZG90X25v dGF0aW9uX3YxCitDUkVBVEUgT1IgUkVQTEFDRSBWSUVXIHB1YmxpYy50ZXN0X2pzb25iX2RvdF9u b3RhdGlvbl92MSBBUworIFNFTEVDVCAoamJbJ2EnOjp0ZXh0XSkuYiBBUyBiCisgICBGUk9NIHRl c3RfanNvbmJfZG90X25vdGF0aW9uCitTRUxFQ1QgKiBmcm9tIHRlc3RfanNvbmJfZG90X25vdGF0 aW9uX3YxOworICAgICBiICAgICAgCistLS0tLS0tLS0tLS0KKyBbImMiLCAiZCJdCisoMSByb3cp CisKK0RST1AgVklFVyBwdWJsaWMudGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjE7CitFWFBMQUlO IChWRVJCT1NFLCBDT1NUUyBPRkYpIFNFTEVDVCAoamIpLmFbJ2InXSBGUk9NIHRlc3RfanNvbmJf ZG90X25vdGF0aW9uOworICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNj YW4gb24gcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uCisgICBPdXRwdXQ6ICgoamIpLmEp WydiJzo6dGV4dF0KKygyIHJvd3MpCisKK1NFTEVDVCAoamIpLmFbJ2InXSBGUk9NIHRlc3RfanNv bmJfZG90X25vdGF0aW9uOyAtLSByZXR1cm5zIE5VTEwgYmVjYXVzZSBbJ2InXSBsb29rcyBmb3Ig c3RyaWN0IG1hdGNoIGluIGFuIG9iamVjdAorIGEgCistLS0KKyAKKygxIHJvdykKKworQ1JFQVRF IFZJRVcgcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxIEFTCitTRUxFQ1QgKGpiKS5h WydiJ10gRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1xzdiB0ZXN0X2pzb25iX2RvdF9u b3RhdGlvbl92MQorQ1JFQVRFIE9SIFJFUExBQ0UgVklFVyBwdWJsaWMudGVzdF9qc29uYl9kb3Rf bm90YXRpb25fdjEgQVMKKyBTRUxFQ1QgKChqYikuYSlbJ2InOjp0ZXh0XSBBUyBhCisgICBGUk9N IHRlc3RfanNvbmJfZG90X25vdGF0aW9uCitTRUxFQ1QgKiBmcm9tIHRlc3RfanNvbmJfZG90X25v dGF0aW9uX3YxOworIGEgCistLS0KKyAKKygxIHJvdykKKworRFJPUCBWSUVXIHB1YmxpYy50ZXN0 X2pzb25iX2RvdF9ub3RhdGlvbl92MTsKK0VYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikgU0VM RUNUIChqYikuYi54Wyd6J10gRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyAgICAgICAg ICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNlcSBTY2FuIG9uIHB1YmxpYy50ZXN0X2pzb25i X2RvdF9ub3RhdGlvbgorICAgT3V0cHV0OiAoKGpiKS5iLngpWyd6Jzo6dGV4dF0KKygyIHJvd3Mp CisKK1NFTEVDVCAoamIpLmIueFsneiddIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247IC0t IHdhcm5pbmdzCisgICB4ICAgCistLS0tLS0tCisgIlpaWiIKKygxIHJvdykKKworQ1JFQVRFIFZJ RVcgcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxIEFTCitTRUxFQ1QgKGpiKS5iLnhb J3onXSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworXHN2IHRlc3RfanNvbmJfZG90X25v dGF0aW9uX3YxCitDUkVBVEUgT1IgUkVQTEFDRSBWSUVXIHB1YmxpYy50ZXN0X2pzb25iX2RvdF9u b3RhdGlvbl92MSBBUworIFNFTEVDVCAoKGpiKS5iLngpWyd6Jzo6dGV4dF0gQVMgeAorICAgRlJP TSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbgorU0VMRUNUICogZnJvbSB0ZXN0X2pzb25iX2RvdF9u b3RhdGlvbl92MTsKKyAgIHggICAKKy0tLS0tLS0KKyAiWlpaIgorKDEgcm93KQorCitEUk9QIFZJ RVcgcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxOworRVhQTEFJTiAoVkVSQk9TRSwg Q09TVFMgT0ZGKSBTRUxFQ1QgKGpiKVsnYiddLnhbJ3onXSBGUk9NIHRlc3RfanNvbmJfZG90X25v dGF0aW9uOworICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24g cHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uCisgICBPdXRwdXQ6ICgoamJbJ2InOjp0ZXh0 XSkueClbJ3onOjp0ZXh0XQorKDIgcm93cykKKworU0VMRUNUIChqYilbJ2InXS54Wyd6J10gRlJP TSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsgIC0tIHdhcm5pbmdzCisgICB4ICAgCistLS0tLS0t CisgIlpaWiIKKygxIHJvdykKKworQ1JFQVRFIFZJRVcgcHVibGljLnRlc3RfanNvbmJfZG90X25v dGF0aW9uX3YxIEFTCitTRUxFQ1QgKGpiKVsnYiddLnhbJ3onXSBGUk9NIHRlc3RfanNvbmJfZG90 X25vdGF0aW9uOworXHN2IHRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxCitDUkVBVEUgT1IgUkVQ TEFDRSBWSUVXIHB1YmxpYy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MSBBUworIFNFTEVDVCAo KGpiWydiJzo6dGV4dF0pLngpWyd6Jzo6dGV4dF0gQVMgeAorICAgRlJPTSB0ZXN0X2pzb25iX2Rv dF9ub3RhdGlvbgorU0VMRUNUICogZnJvbSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MTsKKyAg IHggICAKKy0tLS0tLS0KKyAiWlpaIgorKDEgcm93KQorCitEUk9QIFZJRVcgcHVibGljLnRlc3Rf anNvbmJfZG90X25vdGF0aW9uX3YxOworRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKSBTRUxF Q1QgKGpiKS5iWyd4J10ueiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworICAgICAgICAg ICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24gcHVibGljLnRlc3RfanNvbmJf ZG90X25vdGF0aW9uCisgICBPdXRwdXQ6ICgoKGpiKS5iKVsneCc6OnRleHRdKS56CisoMiByb3dz KQorCitTRUxFQ1QgKGpiKS5iWyd4J10ueiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOyAt LSByZXR1cm5zIE5VTEwKKyB6IAorLS0tCisgCisoMSByb3cpCisKK0NSRUFURSBWSUVXIHB1Ymxp Yy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MSBBUworU0VMRUNUIChqYikuYlsneCddLnogRlJP TSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1xzdiB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92 MQorQ1JFQVRFIE9SIFJFUExBQ0UgVklFVyBwdWJsaWMudGVzdF9qc29uYl9kb3Rfbm90YXRpb25f djEgQVMKKyBTRUxFQ1QgKCgoamIpLmIpWyd4Jzo6dGV4dF0pLnogQVMgegorICAgRlJPTSB0ZXN0 X2pzb25iX2RvdF9ub3RhdGlvbgorU0VMRUNUICogZnJvbSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlv bl92MTsKKyB6IAorLS0tCisgCisoMSByb3cpCisKK0RST1AgVklFVyBwdWJsaWMudGVzdF9qc29u Yl9kb3Rfbm90YXRpb25fdjE7CitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpIFNFTEVDVCAo amIpLmJbJ3gnXVsneiddIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICAgICAgICAg ICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiBwdWJsaWMudGVzdF9qc29uYl9k b3Rfbm90YXRpb24KKyAgIE91dHB1dDogKChqYikuYilbJ3gnOjp0ZXh0XVsneic6OnRleHRdCiso MiByb3dzKQorCitTRUxFQ1QgKGpiKS5iWyd4J11bJ3onXSBGUk9NIHRlc3RfanNvbmJfZG90X25v dGF0aW9uOyAtLSByZXR1cm5zIE5VTEwKKyBiIAorLS0tCisgCisoMSByb3cpCisKK0NSRUFURSBW SUVXIHB1YmxpYy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MSBBUworU0VMRUNUIChqYikuYlsn eCddWyd6J10gRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1xzdiB0ZXN0X2pzb25iX2Rv dF9ub3RhdGlvbl92MQorQ1JFQVRFIE9SIFJFUExBQ0UgVklFVyBwdWJsaWMudGVzdF9qc29uYl9k b3Rfbm90YXRpb25fdjEgQVMKKyBTRUxFQ1QgKChqYikuYilbJ3gnOjp0ZXh0XVsneic6OnRleHRd IEFTIGIKKyAgIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24KK1NFTEVDVCAqIGZyb20gdGVz dF9qc29uYl9kb3Rfbm90YXRpb25fdjE7CisgYiAKKy0tLQorIAorKDEgcm93KQorCitEUk9QIFZJ RVcgcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxOworRVhQTEFJTiAoVkVSQk9TRSwg Q09TVFMgT0ZGKSBTRUxFQ1QgKGpiKVsnYiddWyd4J10ueiBGUk9NIHRlc3RfanNvbmJfZG90X25v dGF0aW9uOworICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24g cHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uCisgICBPdXRwdXQ6IChqYlsnYic6OnRleHRd Wyd4Jzo6dGV4dF0pLnoKKygyIHJvd3MpCisKK1NFTEVDVCAoamIpWydiJ11bJ3gnXS56IEZST00g dGVzdF9qc29uYl9kb3Rfbm90YXRpb247IC0tIHJldHVybnMgTlVMTAorIHogCistLS0KKyAKKygx IHJvdykKKworQ1JFQVRFIFZJRVcgcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxIEFT CitTRUxFQ1QgKGpiKVsnYiddWyd4J10ueiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOwor XHN2IHRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxCitDUkVBVEUgT1IgUkVQTEFDRSBWSUVXIHB1 YmxpYy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MSBBUworIFNFTEVDVCAoamJbJ2InOjp0ZXh0 XVsneCc6OnRleHRdKS56IEFTIHoKKyAgIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24KK1NF TEVDVCAqIGZyb20gdGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjE7CisgeiAKKy0tLQorIAogKDEg cm93KQogCitEUk9QIFZJRVcgcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxOworLS0g Y2xlYW4gdXAKK0RST1AgVEFCTEUgdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9qc29uYi5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9q c29uYi5zcWwKaW5kZXggOTcwZWQxY2ZmY2EuLmNiMGMzOThkNjViIDEwMDY0NAotLS0gYS9zcmMv dGVzdC9yZWdyZXNzL3NxbC9qc29uYi5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvanNv bmIuc3FsCkBAIC0xMzA0LDMwICsxMzA0LDQ5IEBAIHNlbGVjdCBqc29uYl9pbnNlcnQoJ3siYSI6 IHsiYiI6ICJ2YWx1ZSJ9fScsICd7YSwgYn0nLCAnIm5ld192YWx1ZSInLCB0cnVlKTsKIAogLS0g anNvbmIgc3Vic2NyaXB0CiBzZWxlY3QgKCcxMjMnOjpqc29uYilbJ2EnXTsKK3NlbGVjdCAoJzEy Myc6Ompzb25iKS5hOwogc2VsZWN0ICgnMTIzJzo6anNvbmIpWzBdOwogc2VsZWN0ICgnMTIzJzo6 anNvbmIpW05VTExdOworc2VsZWN0ICgnMTIzJzo6anNvbmIpLk5VTEw7CiBzZWxlY3QgKCd7ImEi OiAxfSc6Ompzb25iKVsnYSddOworc2VsZWN0ICgneyJhIjogMX0nOjpqc29uYikuYTsKIHNlbGVj dCAoJ3siYSI6IDF9Jzo6anNvbmIpWzBdOwogc2VsZWN0ICgneyJhIjogMX0nOjpqc29uYilbJ25v dF9leGlzdCddOworc2VsZWN0ICgneyJhIjogMX0nOjpqc29uYikuIm5vdF9leGlzdCI7CiBzZWxl Y3QgKCd7ImEiOiAxfSc6Ompzb25iKVtOVUxMXTsKIHNlbGVjdCAoJ1sxLCAiMiIsIG51bGxdJzo6 anNvbmIpWydhJ107CitzZWxlY3QgKCdbMSwgIjIiLCBudWxsXSc6Ompzb25iKS5hOwogc2VsZWN0 ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbMF07CiBzZWxlY3QgKCdbMSwgIjIiLCBudWxsXSc6 Ompzb25iKVsnMSddOworc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYikuIjEiOwogc2Vs ZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbMS4wXTsKIHNlbGVjdCAoJ1sxLCAiMiIsIG51 bGxdJzo6anNvbmIpWzJdOwogc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbM107CiBz ZWxlY3QgKCdbMSwgIjIiLCBudWxsXSc6Ompzb25iKVstMl07CiBzZWxlY3QgKCdbMSwgIjIiLCBu dWxsXSc6Ompzb25iKVsxXVsnYSddOworc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilb MV0uYTsKIHNlbGVjdCAoJ1sxLCAiMiIsIG51bGxdJzo6anNvbmIpWzFdWzBdOwogc2VsZWN0ICgn eyJhIjogMSwgImIiOiAiYyIsICJkIjogWzEsIDIsIDNdfSc6Ompzb25iKVsnYiddOworc2VsZWN0 ICgneyJhIjogMSwgImIiOiAiYyIsICJkIjogWzEsIDIsIDNdfSc6Ompzb25iKS5iOwogc2VsZWN0 ICgneyJhIjogMSwgImIiOiAiYyIsICJkIjogWzEsIDIsIDNdfSc6Ompzb25iKVsnZCddOworc2Vs ZWN0ICgneyJhIjogMSwgImIiOiAiYyIsICJkIjogWzEsIDIsIDNdfSc6Ompzb25iKS5kOwogc2Vs ZWN0ICgneyJhIjogMSwgImIiOiAiYyIsICJkIjogWzEsIDIsIDNdfSc6Ompzb25iKVsnZCddWzFd Oworc2VsZWN0ICgneyJhIjogMSwgImIiOiAiYyIsICJkIjogWzEsIDIsIDNdfSc6Ompzb25iKS5k WzFdOwogc2VsZWN0ICgneyJhIjogMSwgImIiOiAiYyIsICJkIjogWzEsIDIsIDNdfSc6Ompzb25i KVsnZCddWydhJ107CitzZWxlY3QgKCd7ImEiOiAxLCAiYiI6ICJjIiwgImQiOiBbMSwgMiwgM119 Jzo6anNvbmIpLmRbJ2EnXTsKK3NlbGVjdCAoJ3siYSI6IDEsICJiIjogImMiLCAiZCI6IFsxLCAy LCAzXX0nOjpqc29uYikuZC5hOworc2VsZWN0ICgneyJhIjogMSwgImIiOiAiYyIsICJkIjogeyJh IjogWzEsIDIsIDNdfX0nOjpqc29uYikuZFsnYSddWzBdOworc2VsZWN0ICgneyJhIjogMSwgImIi OiAiYyIsICJkIjogeyJhIjogWzEsIDIsIDNdfX0nOjpqc29uYikuZC5hWzBdOwogc2VsZWN0ICgn eyJhIjogeyJhMSI6IHsiYTIiOiAiYWFhIn19LCAiYiI6ICJiYmIiLCAiYyI6ICJjY2MifSc6Ompz b25iKVsnYSddWydhMSddOworc2VsZWN0ICgneyJhIjogeyJhMSI6IHsiYTIiOiAiYWFhIn19LCAi YiI6ICJiYmIiLCAiYyI6ICJjY2MifSc6Ompzb25iKS5hLmExOwogc2VsZWN0ICgneyJhIjogeyJh MSI6IHsiYTIiOiAiYWFhIn19LCAiYiI6ICJiYmIiLCAiYyI6ICJjY2MifSc6Ompzb25iKVsnYSdd WydhMSddWydhMiddOworc2VsZWN0ICgneyJhIjogeyJhMSI6IHsiYTIiOiAiYWFhIn19LCAiYiI6 ICJiYmIiLCAiYyI6ICJjY2MifSc6Ompzb25iKS5hLmExLmEyOwogc2VsZWN0ICgneyJhIjogeyJh MSI6IHsiYTIiOiAiYWFhIn19LCAiYiI6ICJiYmIiLCAiYyI6ICJjY2MifSc6Ompzb25iKVsnYSdd WydhMSddWydhMiddWydhMyddOworc2VsZWN0ICgneyJhIjogeyJhMSI6IHsiYTIiOiAiYWFhIn19 LCAiYiI6ICJiYmIiLCAiYyI6ICJjY2MifSc6Ompzb25iKS5hLmExLmEyLmEzOwogc2VsZWN0ICgn eyJhIjogWyJhMSIsIHsiYjEiOiBbImFhYSIsICJiYmIiLCAiY2NjIl19XSwgImIiOiAiYmIifSc6 Ompzb25iKVsnYSddWzFdWydiMSddOworc2VsZWN0ICgneyJhIjogWyJhMSIsIHsiYjEiOiBbImFh YSIsICJiYmIiLCAiY2NjIl19XSwgImIiOiAiYmIifSc6Ompzb25iKS5hWzFdLmIxOwogc2VsZWN0 ICgneyJhIjogWyJhMSIsIHsiYjEiOiBbImFhYSIsICJiYmIiLCAiY2NjIl19XSwgImIiOiAiYmIi fSc6Ompzb25iKVsnYSddWzFdWydiMSddWzJdOworc2VsZWN0ICgneyJhIjogWyJhMSIsIHsiYjEi OiBbImFhYSIsICJiYmIiLCAiY2NjIl19XSwgImIiOiAiYmIifSc6Ompzb25iKS5hWzFdLmIxWzJd OwogCiAtLSBzbGljZXMgYXJlIG5vdCBzdXBwb3J0ZWQKIHNlbGVjdCAoJ3siYSI6IDF9Jzo6anNv bmIpWydhJzonYiddOwpAQCAtMTYwOCwzICsxNjI3LDk4IEBAIHNlbGVjdCAoJ3RydWUnOjpqc29u Yik6OmJvb2w7CiBzZWxlY3QgKCd0cnVlJzo6anNvbmIpLmJvb2w7CiBzZWxlY3QgKCd7InRleHQi OiAiaGVsbG8ifSc6Ompzb25iKTo6dGV4dDsKIHNlbGVjdCAoJ3sidGV4dCI6ICJoZWxsbyJ9Jzo6 anNvbmIpLnRleHQ7CisKKy0tIGRvdCBub3RhdGlvbgorQ1JFQVRFIFRBQkxFIHRlc3RfanNvbmJf ZG90X25vdGF0aW9uIEFTCitTRUxFQ1QgJ3siYSI6IFsxLCAyLCB7ImIiOiAiYyJ9LCB7ImIiOiAi ZCIsICJlIjogImYiLCAieCI6IHsieSI6ICJ5eXkiLCAieiI6ICJ6enoifX1dLCAiYiI6IFszLCA0 LCB7ImIiOiAiZyIsICJ4IjogeyJ5IjogIllZWSIsICJ6IjogIlpaWiJ9fV19Jzo6anNvbmIgamI7 CisKK1NFTEVDVCAoamIpLmEgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAo amIpLiJhIiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOyAtLSBkb3VibGUgcXVvdGUgc2hv dWxkIHdvcmsKK1NFTEVDVCAoamIpLidhJyBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOyAt LSBzaW5nbGUgcXVvdGUgc2hvdWxkIG5vdCB3b3JrCitzZWxlY3QgKGpiKVswXS5hIGZyb20gdGVz dF9qc29uYl9kb3Rfbm90YXRpb247IC0tIHJldHVybnMgc2FtZSByZXN1bHQgYXMgKGpiKS5hCitz ZWxlY3QgKGpiKVsxXS5hIGZyb20gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247IC0tIHJldHVybnMg TlVMTAorU0VMRUNUIChqYikuYiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNU IChqYikuYyBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNUIChqYikuYS5iIEZS T00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS5hWzJdLmIgRlJPTSB0ZXN0 X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLmEueC55IEZST00gdGVzdF9qc29uYl9k b3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS5iLngueiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0 aW9uOworU0VMRUNUIChqYikuYS5iLmMgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NF TEVDVCAoKGpiKS5iKVs6XS54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsgLS0gZmFp bHMKK1NFTEVDVCAoamIpLmEuKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOyAtLSBmYWls cworCistLSBhc3NpZ25tZW50IGlzIG5vdCBzdXBwb3J0ZWQKK1VQREFURSB0ZXN0X2pzb25iX2Rv dF9ub3RhdGlvbiBTRVQgamIuYSA9ICcxJzsKK1VQREFURSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlv biBTRVQgKGpiKS5hID0gJzEnOworCistLSBleHBsYWlucyBzaG91bGQgd29yaworRVhQTEFJTiAo VkVSQk9TRSwgQ09TVFMgT0ZGKSBTRUxFQ1QgKHQuamIpLmEgRlJPTSB0ZXN0X2pzb25iX2RvdF9u b3RhdGlvbiB0OworU0VMRUNUICh0LmpiKS5hIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24g dDsKK0VYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikgU0VMRUNUIChqYikuYVsxXSBGUk9NIHRl c3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNUIChqYikuYVsxXSBGUk9NIHRlc3RfanNvbmJf ZG90X25vdGF0aW9uOworCistLSB2aWV3cyBzaG91bGQgd29yaworQ1JFQVRFIFZJRVcgdGVzdF9q c29uYl9kb3Rfbm90YXRpb25fdjEgQVMgU0VMRUNUIChqYikuYVszXS54LnkgRlJPTSB0ZXN0X2pz b25iX2RvdF9ub3RhdGlvbjsKK1xzdiB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MQorCistLSBt aXhlZCBzeW50YXgKK0RST1AgVklFVyB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MTsKKworRVhQ TEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKSBTRUxFQ1QgKGpiKVsnYSddLmIgRlJPTSB0ZXN0X2pz b25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpWydhJ10uYiBGUk9NIHRlc3RfanNvbmJfZG90 X25vdGF0aW9uOyAtLSByZXR1cm5zIGFuIGFycmF5IGR1ZSB0byBsYXggbW9kZQorQ1JFQVRFIFZJ RVcgcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxIEFTCitTRUxFQ1QgKGpiKVsnYSdd LmIgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1xzdiB0ZXN0X2pzb25iX2RvdF9ub3Rh dGlvbl92MQorU0VMRUNUICogZnJvbSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MTsKK0RST1Ag VklFVyBwdWJsaWMudGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjE7CisKK0VYUExBSU4gKFZFUkJP U0UsIENPU1RTIE9GRikgU0VMRUNUIChqYikuYVsnYiddIEZST00gdGVzdF9qc29uYl9kb3Rfbm90 YXRpb247CitTRUxFQ1QgKGpiKS5hWydiJ10gRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsg LS0gcmV0dXJucyBOVUxMIGJlY2F1c2UgWydiJ10gbG9va3MgZm9yIHN0cmljdCBtYXRjaCBpbiBh biBvYmplY3QKK0NSRUFURSBWSUVXIHB1YmxpYy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MSBB UworU0VMRUNUIChqYikuYVsnYiddIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247Citcc3Yg dGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjEKK1NFTEVDVCAqIGZyb20gdGVzdF9qc29uYl9kb3Rf bm90YXRpb25fdjE7CitEUk9QIFZJRVcgcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uX3Yx OworCitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpIFNFTEVDVCAoamIpLmIueFsneiddIEZS T00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS5iLnhbJ3onXSBGUk9NIHRl c3RfanNvbmJfZG90X25vdGF0aW9uOyAtLSB3YXJuaW5ncworQ1JFQVRFIFZJRVcgcHVibGljLnRl c3RfanNvbmJfZG90X25vdGF0aW9uX3YxIEFTCitTRUxFQ1QgKGpiKS5iLnhbJ3onXSBGUk9NIHRl c3RfanNvbmJfZG90X25vdGF0aW9uOworXHN2IHRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxCitT RUxFQ1QgKiBmcm9tIHRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxOworRFJPUCBWSUVXIHB1Ymxp Yy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MTsKKworRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMg T0ZGKSBTRUxFQ1QgKGpiKVsnYiddLnhbJ3onXSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9u OworU0VMRUNUIChqYilbJ2InXS54Wyd6J10gRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsg IC0tIHdhcm5pbmdzCitDUkVBVEUgVklFVyBwdWJsaWMudGVzdF9qc29uYl9kb3Rfbm90YXRpb25f djEgQVMKK1NFTEVDVCAoamIpWydiJ10ueFsneiddIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRp b247Citcc3YgdGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjEKK1NFTEVDVCAqIGZyb20gdGVzdF9q c29uYl9kb3Rfbm90YXRpb25fdjE7CitEUk9QIFZJRVcgcHVibGljLnRlc3RfanNvbmJfZG90X25v dGF0aW9uX3YxOworCitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpIFNFTEVDVCAoamIpLmJb J3gnXS56IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS5iWyd4J10u eiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOyAtLSByZXR1cm5zIE5VTEwKK0NSRUFURSBW SUVXIHB1YmxpYy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MSBBUworU0VMRUNUIChqYikuYlsn eCddLnogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1xzdiB0ZXN0X2pzb25iX2RvdF9u b3RhdGlvbl92MQorU0VMRUNUICogZnJvbSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MTsKK0RS T1AgVklFVyBwdWJsaWMudGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjE7CisKK0VYUExBSU4gKFZF UkJPU0UsIENPU1RTIE9GRikgU0VMRUNUIChqYikuYlsneCddWyd6J10gRlJPTSB0ZXN0X2pzb25i X2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLmJbJ3gnXVsneiddIEZST00gdGVzdF9qc29uYl9k b3Rfbm90YXRpb247IC0tIHJldHVybnMgTlVMTAorQ1JFQVRFIFZJRVcgcHVibGljLnRlc3RfanNv bmJfZG90X25vdGF0aW9uX3YxIEFTCitTRUxFQ1QgKGpiKS5iWyd4J11bJ3onXSBGUk9NIHRlc3Rf anNvbmJfZG90X25vdGF0aW9uOworXHN2IHRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxCitTRUxF Q1QgKiBmcm9tIHRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxOworRFJPUCBWSUVXIHB1YmxpYy50 ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MTsKKworRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZG KSBTRUxFQ1QgKGpiKVsnYiddWyd4J10ueiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOwor U0VMRUNUIChqYilbJ2InXVsneCddLnogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsgLS0g cmV0dXJucyBOVUxMCitDUkVBVEUgVklFVyBwdWJsaWMudGVzdF9qc29uYl9kb3Rfbm90YXRpb25f djEgQVMKK1NFTEVDVCAoamIpWydiJ11bJ3gnXS56IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRp b247Citcc3YgdGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjEKK1NFTEVDVCAqIGZyb20gdGVzdF9q c29uYl9kb3Rfbm90YXRpb25fdjE7CitEUk9QIFZJRVcgcHVibGljLnRlc3RfanNvbmJfZG90X25v dGF0aW9uX3YxOworCistLSBjbGVhbiB1cAorRFJPUCBUQUJMRSB0ZXN0X2pzb25iX2RvdF9ub3Rh dGlvbjsKZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0IGIvc3Jj L3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggZTkwYWY1YjJhZDMuLjIzZTM4YzE2 M2M1IDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAorKysgYi9z cmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAtODA1LDYgKzgwNSw3IEBAIEZkd1Jv dXRpbmUKIEZldGNoRGlyZWN0aW9uCiBGZXRjaERpcmVjdGlvbktleXdvcmRzCiBGZXRjaFN0bXQK K0ZpZWxkQWNjZXNzb3JFeHByCiBGaWVsZFNlbGVjdAogRmllbGRTdG9yZQogRmlsZQotLSAKMi4z OS41IChBcHBsZSBHaXQtMTU0KQoK --000000000000d5ee4f063f6733dc Content-Type: application/octet-stream; name="v21-0001-Add-test-coverage-for-indirection-transformation.patch" Content-Disposition: attachment; filename="v21-0001-Add-test-coverage-for-indirection-transformation.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfvekicg0 RnJvbSBiNTI3NmQ5NGI1MzJhNjYxNTljNGIxZDZjMjhjZTQ1NTZjYTg5NTA3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5kcmEgV2FuZyA8YWxleGFuZHJhLndhbmcub3NzQGdt YWlsLmNvbT4KRGF0ZTogVGh1LCAxOCBTZXAgMjAyNSAxNTo1NDoyNCAtMDcwMApTdWJqZWN0OiBb UEFUQ0ggdjIxIDEvNV0gQWRkIHRlc3QgY292ZXJhZ2UgZm9yIGluZGlyZWN0aW9uIHRyYW5zZm9y bWF0aW9uCgpUaGVzZSB0ZXN0cyBjb3ZlciBuZXN0ZWQgYXJyYXlzIG9mIGNvbXBvc2l0ZSBkYXRh IHR5cGVzLApzaW5nbGUtYXJndW1lbnQgZnVuY3Rpb25zLCBhbmQgY2FzdGluZyB1c2luZyBkb3Qt bm90YXRpb24sIHByb3ZpZGluZyBhCmJhc2VsaW5lIGZvciBmdXR1cmUgZW5oYW5jZW1lbnRzIHRv IGpzb25iIGRvdC1ub3RhdGlvbiBzdXBwb3J0LgotLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvYXJyYXlzLm91dCB8IDI2ICsrKysrKy0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pz b25iLm91dCAgfCA4OCArKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdy ZXNzL3NxbC9hcnJheXMuc3FsICAgICAgfCAgNyArKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2pz b25iLnNxbCAgICAgICB8IDE4ICsrKysrKwogNCBmaWxlcyBjaGFuZ2VkLCAxMzIgaW5zZXJ0aW9u cygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL2FycmF5cy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2FycmF5cy5vdXQKaW5k ZXggNjllYTJjZjVhZDguLmUxYWI2ZGMyNzhhIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL2FycmF5cy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9hcnJh eXMub3V0CkBAIC0xNzgyLDE3ICsxNzgyLDE3IEBAIFNFTEVDVCBtYXgoZjEpLCBtaW4oZjEpLCBt YXgoZjIpLCBtaW4oZjIpLCBtYXgoZjMpLCBtaW4oZjMpIEZST00gYXJyYWdndGVzdDsKICgxIHJv dykKIAogLS0gQSBmZXcgc2ltcGxlIHRlc3RzIGZvciBhcnJheXMgb2YgY29tcG9zaXRlIHR5cGVz Ci1jcmVhdGUgdHlwZSBjb21wdHlwZSBhcyAoZjEgaW50LCBmMiB0ZXh0KTsKK2NyZWF0ZSB0eXBl IGNvbXB0eXBlIGFzIChmMSBpbnQsIGYyIHRleHQsIGYzIGludFtdKTsKIGNyZWF0ZSB0YWJsZSBj b21wdGFibGUgKGMxIGNvbXB0eXBlLCBjMiBjb21wdHlwZVtdKTsKIC0tIFhYWCB3b3VsZCBsaWtl IHRvIG5vdCBoYXZlIHRvIHNwZWNpZnkgcm93KCkgY29uc3RydWN0IHR5cGVzIGhlcmUgLi4uCiBp bnNlcnQgaW50byBjb21wdGFibGUKLSAgdmFsdWVzIChyb3coMSwnZm9vJyksIGFycmF5W3Jvdygy LCdiYXInKTo6Y29tcHR5cGUsIHJvdygzLCdiYXonKTo6Y29tcHR5cGVdKTsKKyAgdmFsdWVzIChy b3coMSwnZm9vJyxhcnJheVsxMCwyMF0pLCBhcnJheVtyb3coMiwnYmFyJyxhcnJheVszMCw0MF0p Ojpjb21wdHlwZSwgcm93KDMsJ2JheicsYXJyYXlbNTAsNjBdKTo6Y29tcHR5cGVdKTsKIC0tIGNo ZWNrIHRoYXQgaW1wbGljaXRseSBuYW1lZCBhcnJheSB0eXBlIF9jb21wdHlwZSBpc24ndCBhIHBy b2JsZW0KIGNyZWF0ZSB0eXBlIF9jb21wdHlwZSBhcyBlbnVtKCdmb29leScpOwogc2VsZWN0ICog ZnJvbSBjb21wdGFibGU7Ci0gICBjMSAgICB8ICAgICAgICAgIGMyICAgICAgICAgICAKLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICgxLGZvbykgfCB7IigyLGJhcikiLCIoMyxi YXopIn0KKyAgICAgICAgYzEgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIGMyICAgICAg ICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAoMSxmb28sInsxMCwyMH0iKSB8IHsiKDIs YmFyLFwiezMwLDQwfVwiKSIsIigzLGJheixcIns1MCw2MH1cIikifQogKDEgcm93KQogCiBzZWxl Y3QgYzJbMl0uZjIgZnJvbSBjb21wdGFibGU7CkBAIC0xODAxLDYgKzE4MDEsMjIgQEAgc2VsZWN0 IGMyWzJdLmYyIGZyb20gY29tcHRhYmxlOwogIGJhegogKDEgcm93KQogCitzZWxlY3QgYzJbMl0u ZjMgZnJvbSBjb21wdGFibGU7CisgICBmMyAgICAKKy0tLS0tLS0tLQorIHs1MCw2MH0KKygxIHJv dykKKworc2VsZWN0IGMyWzJdLmYzWzE6Ml0gZnJvbSBjb21wdGFibGU7CisgICBmMyAgICAKKy0t LS0tLS0tLQorIHs1MCw2MH0KKygxIHJvdykKKworc2VsZWN0IGMyWzE6Ml0uZjNbMToyXSBmcm9t IGNvbXB0YWJsZTsKK0VSUk9SOiAgY29sdW1uIG5vdGF0aW9uIC5mMyBhcHBsaWVkIHRvIHR5cGUg Y29tcHR5cGVbXSwgd2hpY2ggaXMgbm90IGEgY29tcG9zaXRlIHR5cGUKK0xJTkUgMTogc2VsZWN0 IGMyWzE6Ml0uZjNbMToyXSBmcm9tIGNvbXB0YWJsZTsKKyAgICAgICAgICAgICAgIF4KIGRyb3Ag dHlwZSBfY29tcHR5cGU7CiBkcm9wIHRhYmxlIGNvbXB0YWJsZTsKIGRyb3AgdHlwZSBjb21wdHlw ZTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvanNvbmIub3V0IGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qc29uYi5vdXQKaW5kZXggNWExZWIxOGFiYTIuLmZiNDdj OGE4OTNhIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pzb25iLm91dAor KysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pzb25iLm91dApAQCAtNTgzMSwzICs1ODMx LDkxIEBAIHNlbGVjdCAnMTIzNDUuMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwNSc6Ompzb25iOjppbnQ4OwogIDEyMzQ1CiAoMSByb3cpCiAKKy0tIHNpbmdsZSBh cmd1bWVudCBqc29uYiBmdW5jdGlvbnMgYXMganNvbmJfZnVuY3Rpb24oanNvbmIpIGFuZCBqc29u Yi5qc29uYl9mdW5jdGlvbgorc2VsZWN0IGpzb25iX3R5cGVvZigneyJhIjoxfSc6Ompzb25iKTsK KyBqc29uYl90eXBlb2YgCistLS0tLS0tLS0tLS0tLQorIG9iamVjdAorKDEgcm93KQorCitzZWxl Y3QgKCd7ImEiOjF9Jzo6anNvbmIpLmpzb25iX3R5cGVvZjsKKyBqc29uYl90eXBlb2YgCistLS0t LS0tLS0tLS0tLQorIG9iamVjdAorKDEgcm93KQorCitzZWxlY3QganNvbmJfYXJyYXlfbGVuZ3Ro KCdbImEiLCAiYiIsICJjIl0nOjpqc29uYik7CisganNvbmJfYXJyYXlfbGVuZ3RoIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgIDMKKygxIHJvdykKKworc2VsZWN0ICgn WyJhIiwgImIiLCAiYyJdJzo6anNvbmIpLmpzb25iX2FycmF5X2xlbmd0aDsKKyBqc29uYl9hcnJh eV9sZW5ndGggCistLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgMworKDEg cm93KQorCitzZWxlY3QganNvbmJfb2JqZWN0X2tleXMoJ3siYSI6MSwgImIiOjJ9Jzo6anNvbmIp OworIGpzb25iX29iamVjdF9rZXlzIAorLS0tLS0tLS0tLS0tLS0tLS0tLQorIGEKKyBiCisoMiBy b3dzKQorCitzZWxlY3QgKCd7ImEiOjEsICJiIjoyfSc6Ompzb25iKS5qc29uYl9vYmplY3Rfa2V5 czsKKyBqc29uYl9vYmplY3Rfa2V5cyAKKy0tLS0tLS0tLS0tLS0tLS0tLS0KKyBhCisgYgorKDIg cm93cykKKworLS0gY2FzdCBqc29uYiB0byBvdGhlciB0eXBlcyBhcyAoanNvbmIpOjp0eXBlIGFu ZCAoanNvbmIpLnR5cGUKK3NlbGVjdCAoJzEyMy40NSc6Ompzb25iKTo6bnVtZXJpYzsKKyBudW1l cmljIAorLS0tLS0tLS0tCisgIDEyMy40NQorKDEgcm93KQorCitzZWxlY3QgKCcxMjMuNDUnOjpq c29uYikubnVtZXJpYzsKKyBudW1lcmljIAorLS0tLS0tLS0tCisgIDEyMy40NQorKDEgcm93KQor CitzZWxlY3QgKCdbeyJuYW1lIjogImFsaWNlIn0sIHsibmFtZSI6ICJib2IifV0nOjpqc29uYik6 Om5hbWU7CisgICAgICAgICAgICAgICAgIG5hbWUgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbeyJuYW1lIjogImFsaWNlIn0sIHsibmFt ZSI6ICJib2IifV0KKygxIHJvdykKKworc2VsZWN0ICgnW3sibmFtZSI6ICJhbGljZSJ9LCB7Im5h bWUiOiAiYm9iIn1dJzo6anNvbmIpLm5hbWU7CisgICAgICAgICAgICAgICAgIG5hbWUgICAgICAg ICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbeyJu YW1lIjogImFsaWNlIn0sIHsibmFtZSI6ICJib2IifV0KKygxIHJvdykKKworc2VsZWN0ICgndHJ1 ZSc6Ompzb25iKTo6Ym9vbDsKKyBib29sIAorLS0tLS0tCisgdAorKDEgcm93KQorCitzZWxlY3Qg KCd0cnVlJzo6anNvbmIpLmJvb2w7CisgYm9vbCAKKy0tLS0tLQorIHQKKygxIHJvdykKKworc2Vs ZWN0ICgneyJ0ZXh0IjogImhlbGxvIn0nOjpqc29uYik6OnRleHQ7CisgICAgICAgdGV4dCAgICAg ICAgCistLS0tLS0tLS0tLS0tLS0tLS0tCisgeyJ0ZXh0IjogImhlbGxvIn0KKygxIHJvdykKKwor c2VsZWN0ICgneyJ0ZXh0IjogImhlbGxvIn0nOjpqc29uYikudGV4dDsKKyAgICAgICB0ZXh0ICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7InRleHQiOiAiaGVsbG8ifQorKDEgcm93KQor CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9hcnJheXMuc3FsIGIvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvYXJyYXlzLnNxbAppbmRleCA0N2Q2MmMxZDM4ZC4uNDUwMzg5ODMxYTAgMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2FycmF5cy5zcWwKKysrIGIvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvYXJyYXlzLnNxbApAQCAtNTU1LDE5ICs1NTUsMjIgQEAgU0VMRUNUIG1heChm MSksIG1pbihmMSksIG1heChmMiksIG1pbihmMiksIG1heChmMyksIG1pbihmMykgRlJPTSBhcnJh Z2d0ZXN0OwogCiAtLSBBIGZldyBzaW1wbGUgdGVzdHMgZm9yIGFycmF5cyBvZiBjb21wb3NpdGUg dHlwZXMKIAotY3JlYXRlIHR5cGUgY29tcHR5cGUgYXMgKGYxIGludCwgZjIgdGV4dCk7CitjcmVh dGUgdHlwZSBjb21wdHlwZSBhcyAoZjEgaW50LCBmMiB0ZXh0LCBmMyBpbnRbXSk7CiAKIGNyZWF0 ZSB0YWJsZSBjb21wdGFibGUgKGMxIGNvbXB0eXBlLCBjMiBjb21wdHlwZVtdKTsKIAogLS0gWFhY IHdvdWxkIGxpa2UgdG8gbm90IGhhdmUgdG8gc3BlY2lmeSByb3coKSBjb25zdHJ1Y3QgdHlwZXMg aGVyZSAuLi4KIGluc2VydCBpbnRvIGNvbXB0YWJsZQotICB2YWx1ZXMgKHJvdygxLCdmb28nKSwg YXJyYXlbcm93KDIsJ2JhcicpOjpjb21wdHlwZSwgcm93KDMsJ2JheicpOjpjb21wdHlwZV0pOwor ICB2YWx1ZXMgKHJvdygxLCdmb28nLGFycmF5WzEwLDIwXSksIGFycmF5W3JvdygyLCdiYXInLGFy cmF5WzMwLDQwXSk6OmNvbXB0eXBlLCByb3coMywnYmF6JyxhcnJheVs1MCw2MF0pOjpjb21wdHlw ZV0pOwogCiAtLSBjaGVjayB0aGF0IGltcGxpY2l0bHkgbmFtZWQgYXJyYXkgdHlwZSBfY29tcHR5 cGUgaXNuJ3QgYSBwcm9ibGVtCiBjcmVhdGUgdHlwZSBfY29tcHR5cGUgYXMgZW51bSgnZm9vZXkn KTsKIAogc2VsZWN0ICogZnJvbSBjb21wdGFibGU7CiBzZWxlY3QgYzJbMl0uZjIgZnJvbSBjb21w dGFibGU7CitzZWxlY3QgYzJbMl0uZjMgZnJvbSBjb21wdGFibGU7CitzZWxlY3QgYzJbMl0uZjNb MToyXSBmcm9tIGNvbXB0YWJsZTsKK3NlbGVjdCBjMlsxOjJdLmYzWzE6Ml0gZnJvbSBjb21wdGFi bGU7CiAKIGRyb3AgdHlwZSBfY29tcHR5cGU7CiBkcm9wIHRhYmxlIGNvbXB0YWJsZTsKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2pzb25iLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL2pzb25iLnNxbAppbmRleCA1N2MxMWFjZGRmZS4uOTcwZWQxY2ZmY2EgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2pzb25iLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9qc29uYi5zcWwKQEAgLTE1OTAsMyArMTU5MCwyMSBAQCBzZWxlY3QgJzEyMzQ1LjAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUnOjpqc29uYjo6ZmxvYXQ4Owog c2VsZWN0ICcxMjM0NS4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDA1Jzo6anNvbmI6OmludDI7CiBzZWxlY3QgJzEyMzQ1LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUnOjpqc29uYjo6aW50NDsKIHNlbGVjdCAnMTIzNDUuMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNSc6Ompzb25iOjppbnQ4 OworCistLSBzaW5nbGUgYXJndW1lbnQganNvbmIgZnVuY3Rpb25zIGFzIGpzb25iX2Z1bmN0aW9u KGpzb25iKSBhbmQganNvbmIuanNvbmJfZnVuY3Rpb24KK3NlbGVjdCBqc29uYl90eXBlb2YoJ3si YSI6MX0nOjpqc29uYik7CitzZWxlY3QgKCd7ImEiOjF9Jzo6anNvbmIpLmpzb25iX3R5cGVvZjsK K3NlbGVjdCBqc29uYl9hcnJheV9sZW5ndGgoJ1siYSIsICJiIiwgImMiXSc6Ompzb25iKTsKK3Nl bGVjdCAoJ1siYSIsICJiIiwgImMiXSc6Ompzb25iKS5qc29uYl9hcnJheV9sZW5ndGg7CitzZWxl Y3QganNvbmJfb2JqZWN0X2tleXMoJ3siYSI6MSwgImIiOjJ9Jzo6anNvbmIpOworc2VsZWN0ICgn eyJhIjoxLCAiYiI6Mn0nOjpqc29uYikuanNvbmJfb2JqZWN0X2tleXM7CisKKy0tIGNhc3QganNv bmIgdG8gb3RoZXIgdHlwZXMgYXMgKGpzb25iKTo6dHlwZSBhbmQgKGpzb25iKS50eXBlCitzZWxl Y3QgKCcxMjMuNDUnOjpqc29uYik6Om51bWVyaWM7CitzZWxlY3QgKCcxMjMuNDUnOjpqc29uYiku bnVtZXJpYzsKK3NlbGVjdCAoJ1t7Im5hbWUiOiAiYWxpY2UifSwgeyJuYW1lIjogImJvYiJ9XSc6 Ompzb25iKTo6bmFtZTsKK3NlbGVjdCAoJ1t7Im5hbWUiOiAiYWxpY2UifSwgeyJuYW1lIjogImJv YiJ9XSc6Ompzb25iKS5uYW1lOworc2VsZWN0ICgndHJ1ZSc6Ompzb25iKTo6Ym9vbDsKK3NlbGVj dCAoJ3RydWUnOjpqc29uYikuYm9vbDsKK3NlbGVjdCAoJ3sidGV4dCI6ICJoZWxsbyJ9Jzo6anNv bmIpOjp0ZXh0Oworc2VsZWN0ICgneyJ0ZXh0IjogImhlbGxvIn0nOjpqc29uYikudGV4dDsKLS0g CjIuMzkuNSAoQXBwbGUgR2l0LTE1NCkKCg== --000000000000d5ee4f063f6733dc Content-Type: application/octet-stream; name="v21-0002-Add-an-alternative-transform-function-in-Subscri.patch" Content-Disposition: attachment; filename="v21-0002-Add-an-alternative-transform-function-in-Subscri.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfvekict4 RnJvbSBmNGRhMTcyMzhmNjQ1MDExNGViMTdiOGNkMjRhN2VkYjA5ZDQ5MzYwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5kcmEgV2FuZyA8YWxleGFuZHJhLndhbmcub3NzQGdt YWlsLmNvbT4KRGF0ZTogVGh1LCAxOCBTZXAgMjAyNSAxNjozNDo0NyAtMDcwMApTdWJqZWN0OiBb UEFUQ0ggdjIxIDIvNV0gQWRkIGFuIGFsdGVybmF0aXZlIHRyYW5zZm9ybSBmdW5jdGlvbiBpbgog U3Vic2NyaXB0Um91dGluZXMKCkFkZCBhIHRyYW5zZm9ybV9wYXJ0aWFsKCkgZnVuY3Rpb24gcG9p bnRlciB0byBlbmFibGUgcHJvY2Vzc2luZyBhCnByZWZpeCBvZiBpbmRpcmVjdGlvbiBsaXN0cy4g RGF0YSB0eXBlcyB0aGF0IHN1cHBvcnQgc3Vic2NyaXB0aW5nIGNhbgpvcHQgdG8gdXNlIHRoZSB0 cmFuc2Zvcm0oKSBmdW5jdGlvbiB0aGF0IHRyYW5zZm9ybXMgdGhlIGZ1bGwgaW5wdXQKaW5kaXJl Y3Rpb24gbGlzdCAoZS5nLiwgYXJyYXlzLCBoc3RvcmUpLCBvciBjYW4gb3B0IHRvIHVzZSB0aGUK dHJhbnNmb3JtX3BhcnRpYWwoKSBmdW5jdGlvbiB0byBiZSBtb3JlIGZsZXhpYmxlIG9uIGluZGly ZWN0aW9uIG5vZGUKdHlwZXMsIGFuZCBtYWtlIGJlc3QgZWZmb3J0IGluIHRyYW5zZm9ybWluZyBv bmx5IGEgcHJlZml4IG9mIHRoZQppbmRpcmVjdGlvbiBsaXN0LCBsZXR0aW5nIHRoZSBjYWxsZXIg aGFuZGxlIHRoZSByZW1haW5pbmcKaW5kaXJlY3Rpb25zLgoKVGhpcyBhbGxvd3MgdHJhbnNmb3Jt IGZ1bmN0aW9ucyB0byBhY2NlcHQgZG90IG5vdGF0aW9uIGluZGlyZWN0aW9uIGFzCmlucHV0LCBw cmVwYXJpbmcgZm9yIGZ1dHVyZSBKU09OQiBkb3Qgbm90YXRpb24gc3VwcG9ydC4KLS0tCiBjb250 cmliL2hzdG9yZS9oc3RvcmVfc3Vicy5jICAgICAgfCAgMSArCiBzcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfZXhwci5jICAgfCA3NiArKysrKysrKysrKysrKystLS0tLS0tLS0tCiBzcmMvYmFja2Vu ZC9wYXJzZXIvcGFyc2Vfbm9kZS5jICAgfCA5MiArKysrKysrKysrKysrKysrKysrKysrKy0tLS0t LS0tCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMgfCAgNiArLQogc3JjL2JhY2tl bmQvdXRpbHMvYWR0L2FycmF5c3Vicy5jIHwgIDIgKwogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pz b25ic3Vicy5jIHwgMTkgKysrKystLQogc3JjL2luY2x1ZGUvbm9kZXMvc3Vic2NyaXB0aW5nLmgg IHwgMjQgKysrKysrKy0KIHNyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmggICB8ICAzICst CiA4IGZpbGVzIGNoYW5nZWQsIDE2MyBpbnNlcnRpb25zKCspLCA2MCBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9jb250cmliL2hzdG9yZS9oc3RvcmVfc3Vicy5jIGIvY29udHJpYi9oc3RvcmUv aHN0b3JlX3N1YnMuYwppbmRleCAzZDAzZjY2ZmEwZC4uZDY3OGRjNTZmODYgMTAwNjQ0Ci0tLSBh L2NvbnRyaWIvaHN0b3JlL2hzdG9yZV9zdWJzLmMKKysrIGIvY29udHJpYi9oc3RvcmUvaHN0b3Jl X3N1YnMuYwpAQCAtMjg3LDYgKzI4Nyw3IEBAIGhzdG9yZV9zdWJzY3JpcHRfaGFuZGxlcihQR19G VU5DVElPTl9BUkdTKQogewogCXN0YXRpYyBjb25zdCBTdWJzY3JpcHRSb3V0aW5lcyBzYnNyb3V0 aW5lcyA9IHsKIAkJLnRyYW5zZm9ybSA9IGhzdG9yZV9zdWJzY3JpcHRfdHJhbnNmb3JtLAorCQku dHJhbnNmb3JtX3BhcnRpYWwgPSBOVUxMLAogCQkuZXhlY19zZXR1cCA9IGhzdG9yZV9leGVjX3Nl dHVwLAogCQkuZmV0Y2hfc3RyaWN0ID0gdHJ1ZSwJLyogZmV0Y2ggcmV0dXJucyBOVUxMIGZvciBO VUxMIGlucHV0cyAqLwogCQkuZmV0Y2hfbGVha3Byb29mID0gdHJ1ZSwJLyogZmV0Y2ggcmV0dXJu cyBOVUxMIGZvciBiYWQgc3Vic2NyaXB0ICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJz ZXIvcGFyc2VfZXhwci5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwppbmRleCBl MTk3OWE4MGMxOS4uOTVjZTMzMGU1MDYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV9leHByLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwpAQCAtNDM2 LDQ0ICs0MzYsNjUgQEAgdHJhbnNmb3JtSW5kaXJlY3Rpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBB X0luZGlyZWN0aW9uICppbmQpCiB7CiAJTm9kZQkgICAqbGFzdF9zcmYgPSBwc3RhdGUtPnBfbGFz dF9zcmY7CiAJTm9kZQkgICAqcmVzdWx0ID0gdHJhbnNmb3JtRXhwclJlY3Vyc2UocHN0YXRlLCBp bmQtPmFyZyk7Ci0JTGlzdAkgICAqc3Vic2NyaXB0cyA9IE5JTDsKKwlMaXN0CSAgICppbmRpcmVj dGlvbnMgPSBOSUw7CiAJaW50CQkJbG9jYXRpb24gPSBleHByTG9jYXRpb24ocmVzdWx0KTsKIAlM aXN0Q2VsbCAgICppOwogCiAJLyoKLQkgKiBXZSBoYXZlIHRvIHNwbGl0IGFueSBmaWVsZC1zZWxl Y3Rpb24gb3BlcmF0aW9ucyBhcGFydCBmcm9tCi0JICogc3Vic2NyaXB0aW5nLiAgQWRqYWNlbnQg QV9JbmRpY2VzIG5vZGVzIGhhdmUgdG8gYmUgdHJlYXRlZCBhcyBhIHNpbmdsZQorCSAqIENvbWJp bmUgZmllbGQgbmFtZXMgYW5kIHN1YnNjcmlwdHMgaW50byBhIHNpbmdsZSBpbmRpcmVjdGlvbiBs aXN0LCBhcworCSAqIHNvbWUgc3Vic2NyaXB0aW5nIGNvbnRhaW5lcnMsIHN1Y2ggYXMganNvbmIs IHN1cHBvcnQgZmllbGQgYWNjZXNzIHVzaW5nCisJICogZG90IG5vdGF0aW9uLiBBZGphY2VudCBB X0luZGljZXMgbm9kZXMgaGF2ZSB0byBiZSB0cmVhdGVkIGFzIGEgc2luZ2xlCiAJICogbXVsdGlk aW1lbnNpb25hbCBzdWJzY3JpcHQgb3BlcmF0aW9uLgogCSAqLwogCWZvcmVhY2goaSwgaW5kLT5p bmRpcmVjdGlvbikKIAl7CiAJCU5vZGUJICAgKm4gPSBsZmlyc3QoaSk7CiAKLQkJaWYgKElzQShu LCBBX0luZGljZXMpKQotCQkJc3Vic2NyaXB0cyA9IGxhcHBlbmQoc3Vic2NyaXB0cywgbik7Ci0J CWVsc2UgaWYgKElzQShuLCBBX1N0YXIpKQorCQlpZiAoSXNBKG4sIEFfSW5kaWNlcykgfHwgSXNB KG4sIFN0cmluZykpCisJCQlpbmRpcmVjdGlvbnMgPSBsYXBwZW5kKGluZGlyZWN0aW9ucywgbik7 CisJCWVsc2UKIAkJeworCQkJQXNzZXJ0KElzQShuLCBBX1N0YXIpKTsKIAkJCWVyZXBvcnQoRVJS T1IsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKIAkJCQkJ IGVycm1zZygicm93IGV4cGFuc2lvbiB2aWEgXCIqXCIgaXMgbm90IHN1cHBvcnRlZCBoZXJlIiks CiAJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBsb2NhdGlvbikpKTsKIAkJfQotCQll bHNlCisJfQorCisJd2hpbGUgKGluZGlyZWN0aW9ucykKKwl7CisJCS8qIHRyeSBwcm9jZXNzaW5n IGNvbnRhaW5lciBzdWJzY3JpcHRzIGZpcnN0ICovCisJCWludAkJCXRyYW5zZm9ybWVkX2NvdW50 ID0gMDsKKwkJTm9kZQkgICAqbmV3cmVzdWx0ID0gKE5vZGUgKikKKwkJCXRyYW5zZm9ybUNvbnRh aW5lclN1YnNjcmlwdHMocHN0YXRlLAorCQkJCQkJCQkJCSByZXN1bHQsCisJCQkJCQkJCQkJIGV4 cHJUeXBlKHJlc3VsdCksCisJCQkJCQkJCQkJIGV4cHJUeXBtb2QocmVzdWx0KSwKKwkJCQkJCQkJ CQkgaW5kaXJlY3Rpb25zLAorCQkJCQkJCQkJCSBmYWxzZSwKKwkJCQkJCQkJCQkgJnRyYW5zZm9y bWVkX2NvdW50KTsKKworCQlpZiAoIW5ld3Jlc3VsdCkKIAkJewotCQkJTm9kZQkgICAqbmV3cmVz dWx0OworCQkJLyoKKwkJCSAqIGdlbmVyaWMgc3Vic2NyaXB0aW5nIGZhaWxlZDsgZmFsbGluZyBi YWNrIHRvIGZpZWxkIHNlbGVjdGlvbgorCQkJICogZm9yIGEgY29tcG9zaXRlIHR5cGUsIG9yIGEg c2luZ2xlLWFyZ3VtZW50IGZ1bmN0aW9uLgorCQkJICovCisJCQlOb2RlCSAgICpuOworCisJCQlB c3NlcnQoaW5kaXJlY3Rpb25zKTsKIAotCQkJQXNzZXJ0KElzQShuLCBTdHJpbmcpKTsKKwkJCW4g PSBsaW5pdGlhbChpbmRpcmVjdGlvbnMpOwogCi0JCQkvKiBwcm9jZXNzIHN1YnNjcmlwdHMgYmVm b3JlIHRoaXMgZmllbGQgc2VsZWN0aW9uICovCi0JCQlpZiAoc3Vic2NyaXB0cykKLQkJCQlyZXN1 bHQgPSAoTm9kZSAqKSB0cmFuc2Zvcm1Db250YWluZXJTdWJzY3JpcHRzKHBzdGF0ZSwKLQkJCQkJ CQkJCQkJCQkJCSAgIHJlc3VsdCwKLQkJCQkJCQkJCQkJCQkJCSAgIGV4cHJUeXBlKHJlc3VsdCks Ci0JCQkJCQkJCQkJCQkJCQkgICBleHByVHlwbW9kKHJlc3VsdCksCi0JCQkJCQkJCQkJCQkJCQkg ICBzdWJzY3JpcHRzLAotCQkJCQkJCQkJCQkJCQkJICAgZmFsc2UpOwotCQkJc3Vic2NyaXB0cyA9 IE5JTDsKKwkJCWlmICghSXNBKG4sIFN0cmluZykpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJ CShlcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlTTUFUQ0gpLAorCQkJCQkJIGVycm1zZygiY2Fu bm90IHN1YnNjcmlwdCB0eXBlICVzIGJlY2F1c2UgaXQgZG9lcyBub3Qgc3VwcG9ydCBzdWJzY3Jp cHRpbmciLAorCQkJCQkJCQlmb3JtYXRfdHlwZV9iZShleHByVHlwZShyZXN1bHQpKSksCisJCQkJ CQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZXhwckxvY2F0aW9uKHJlc3VsdCkpKSk7CiAK KwkJCS8qIHRyeSB0byBwYXJzZSBmdW5jdGlvbiBvciBmaWVsZCBzZWxlY3Rpb24gKi8KIAkJCW5l d3Jlc3VsdCA9IFBhcnNlRnVuY09yQ29sdW1uKHBzdGF0ZSwKIAkJCQkJCQkJCQkgIGxpc3RfbWFr ZTEobiksCiAJCQkJCQkJCQkJICBsaXN0X21ha2UxKHJlc3VsdCksCkBAIC00ODEsMTkgKzUwMiwx OCBAQCB0cmFuc2Zvcm1JbmRpcmVjdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rp b24gKmluZCkKIAkJCQkJCQkJCQkgIE5VTEwsCiAJCQkJCQkJCQkJICBmYWxzZSwKIAkJCQkJCQkJ CQkgIGxvY2F0aW9uKTsKLQkJCWlmIChuZXdyZXN1bHQgPT0gTlVMTCkKKworCQkJaWYgKCFuZXdy ZXN1bHQpCiAJCQkJdW5rbm93bl9hdHRyaWJ1dGUocHN0YXRlLCByZXN1bHQsIHN0clZhbChuKSwg bG9jYXRpb24pOwotCQkJcmVzdWx0ID0gbmV3cmVzdWx0OworCQkJZWxzZQorCQkJCXRyYW5zZm9y bWVkX2NvdW50ID0gMTsKIAkJfQorCisJCS8qIHJlbW92ZSB0aGUgcHJvY2Vzc2VkIGluZGlyZWN0 aW9ucyAqLworCQlpbmRpcmVjdGlvbnMgPSBsaXN0X2RlbGV0ZV9maXJzdF9uKGluZGlyZWN0aW9u cywgdHJhbnNmb3JtZWRfY291bnQpOworCisJCXJlc3VsdCA9IG5ld3Jlc3VsdDsKIAl9Ci0JLyog cHJvY2VzcyB0cmFpbGluZyBzdWJzY3JpcHRzLCBpZiBhbnkgKi8KLQlpZiAoc3Vic2NyaXB0cykK LQkJcmVzdWx0ID0gKE5vZGUgKikgdHJhbnNmb3JtQ29udGFpbmVyU3Vic2NyaXB0cyhwc3RhdGUs Ci0JCQkJCQkJCQkJCQkJICAgcmVzdWx0LAotCQkJCQkJCQkJCQkJCSAgIGV4cHJUeXBlKHJlc3Vs dCksCi0JCQkJCQkJCQkJCQkJICAgZXhwclR5cG1vZChyZXN1bHQpLAotCQkJCQkJCQkJCQkJCSAg IHN1YnNjcmlwdHMsCi0JCQkJCQkJCQkJCQkJICAgZmFsc2UpOwogCiAJcmV0dXJuIHJlc3VsdDsK IH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ub2RlLmMgYi9zcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2Vfbm9kZS5jCmluZGV4IDIwM2I3YTMyMTc4Li43MWZmMzFhOTYzOCAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX25vZGUuYworKysgYi9zcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2Vfbm9kZS5jCkBAIC0yMzgsMjAgKzIzOCwyMiBAQCB0cmFuc2Zvcm1D b250YWluZXJUeXBlKE9pZCAqY29udGFpbmVyVHlwZSwgaW50MzIgKmNvbnRhaW5lclR5cG1vZCkK ICAqIGNvbnRhaW5lclR5cE1vZAl0eXBtb2QgZm9yIHRoZSBjb250YWluZXIKICAqIGluZGlyZWN0 aW9uCQlVbnRyYW5zZm9ybWVkIGxpc3Qgb2Ygc3Vic2NyaXB0cyAobXVzdCBub3QgYmUgTklMKQog ICogaXNBc3NpZ25tZW50CQlUcnVlIGlmIHRoaXMgd2lsbCBiZWNvbWUgYSBjb250YWluZXIgYXNz aWdubWVudC4KLSAqLworICogblN1YnNjcmlwdHMJCU91dHB1dCBwYXJhbWV0ZXIgZm9yIG51bWJl ciBvZiB0cmFuc2Zvcm1lZCBzdWJzY3JpcHRzLgorKi8KIFN1YnNjcmlwdGluZ1JlZiAqCiB0cmFu c2Zvcm1Db250YWluZXJTdWJzY3JpcHRzKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkgTm9k ZSAqY29udGFpbmVyQmFzZSwKIAkJCQkJCQkgT2lkIGNvbnRhaW5lclR5cGUsCiAJCQkJCQkJIGlu dDMyIGNvbnRhaW5lclR5cE1vZCwKIAkJCQkJCQkgTGlzdCAqaW5kaXJlY3Rpb24sCi0JCQkJCQkJ IGJvb2wgaXNBc3NpZ25tZW50KQorCQkJCQkJCSBib29sIGlzQXNzaWdubWVudCwKKwkJCQkJCQkg aW50ICpuU3Vic2NyaXB0cykKIHsKIAlTdWJzY3JpcHRpbmdSZWYgKnNic3JlZjsKIAljb25zdCBT dWJzY3JpcHRSb3V0aW5lcyAqc2Jzcm91dGluZXM7CiAJT2lkCQkJZWxlbWVudFR5cGU7Ci0JYm9v bAkJaXNTbGljZSA9IGZhbHNlOwotCUxpc3RDZWxsICAgKmlkeDsKKworCSpuU3Vic2NyaXB0cyA9 IDA7CiAKIAkvKgogCSAqIERldGVybWluZSB0aGUgYWN0dWFsIGNvbnRhaW5lciB0eXBlLCBzbWFz aGluZyBhbnkgZG9tYWluLiAgSW4gdGhlCkBAIC0yNjcsMjggKzI2OSwxNSBAQCB0cmFuc2Zvcm1D b250YWluZXJTdWJzY3JpcHRzKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkgKi8KIAlzYnNyb3V0aW5l cyA9IGdldFN1YnNjcmlwdGluZ1JvdXRpbmVzKGNvbnRhaW5lclR5cGUsICZlbGVtZW50VHlwZSk7 CiAJaWYgKCFzYnNyb3V0aW5lcykKKwl7CisJCWlmICghaXNBc3NpZ25tZW50KQorCQkJcmV0dXJu IE5VTEw7CisKIAkJZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFUWVBF X01JU01BVENIKSwKIAkJCQkgZXJybXNnKCJjYW5ub3Qgc3Vic2NyaXB0IHR5cGUgJXMgYmVjYXVz ZSBpdCBkb2VzIG5vdCBzdXBwb3J0IHN1YnNjcmlwdGluZyIsCiAJCQkJCQlmb3JtYXRfdHlwZV9i ZShjb250YWluZXJUeXBlKSksCiAJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4cHJM b2NhdGlvbihjb250YWluZXJCYXNlKSkpKTsKLQotCS8qCi0JICogRGV0ZWN0IHdoZXRoZXIgYW55 IG9mIHRoZSBpbmRpcmVjdGlvbiBpdGVtcyBhcmUgc2xpY2Ugc3BlY2lmaWVycy4KLQkgKgotCSAq IEEgbGlzdCBjb250YWluaW5nIG9ubHkgc2ltcGxlIHN1YnNjcmlwdHMgcmVmZXJzIHRvIGEgc2lu Z2xlIGNvbnRhaW5lcgotCSAqIGVsZW1lbnQuICBJZiBhbnkgb2YgdGhlIGl0ZW1zIGFyZSBzbGlj ZSBzcGVjaWZpZXJzIChsb3dlcjp1cHBlciksIHRoZW4KLQkgKiB0aGUgc3Vic2NyaXB0IGV4cHJl c3Npb24gbWVhbnMgYSBjb250YWluZXIgc2xpY2Ugb3BlcmF0aW9uLgotCSAqLwotCWZvcmVhY2go aWR4LCBpbmRpcmVjdGlvbikKLQl7Ci0JCUFfSW5kaWNlcyAgKmFpID0gbGZpcnN0X25vZGUoQV9J bmRpY2VzLCBpZHgpOwotCi0JCWlmIChhaS0+aXNfc2xpY2UpCi0JCXsKLQkJCWlzU2xpY2UgPSB0 cnVlOwotCQkJYnJlYWs7Ci0JCX0KIAl9CiAKIAkvKgpAQCAtMzA5LDggKzI5OCw2NSBAQCB0cmFu c2Zvcm1Db250YWluZXJTdWJzY3JpcHRzKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkgKiBDYWxsIHRo ZSBjb250YWluZXItdHlwZS1zcGVjaWZpYyBsb2dpYyB0byB0cmFuc2Zvcm0gdGhlIHN1YnNjcmlw dHMgYW5kCiAJICogZGV0ZXJtaW5lIHRoZSBzdWJzY3JpcHRpbmcgcmVzdWx0IHR5cGUuCiAJICov Ci0Jc2Jzcm91dGluZXMtPnRyYW5zZm9ybShzYnNyZWYsIGluZGlyZWN0aW9uLCBwc3RhdGUsCi0J CQkJCQkgICBpc1NsaWNlLCBpc0Fzc2lnbm1lbnQpOworCWlmIChzYnNyb3V0aW5lcy0+dHJhbnNm b3JtX3BhcnRpYWwgIT0gTlVMTCkKKwl7CisJCS8qCisJCSAqIElmIHRoZSBjb250YWluZXIgdHlw ZSBwcm92aWRlcyBhIHBhcnRpYWwgdHJhbnNmb3JtIGZ1bmN0aW9uLCB1c2UgaXQKKwkJICogaGVy ZS4gVGhpcyBmdW5jdGlvbiBjYW4gYWNjZXB0IGFueSBub2RlIHR5cGVzIGluIHRoZSBpbmRpcmVj dGlvbgorCQkgKiBsaXN0IGFzIGlucHV0LCBhbmQgaXMgcmVzcG9uc2libGUgZm9yIGlkZW50aWZ5 aW5nIGFuZCB0cmFuc2Zvcm1pbmcKKwkJICogYXMgbWFueSBsZWFkaW5nIGVsZW1lbnRzIGFzIGl0 IGNhbiBoYW5kbGUsIHdoaWNoIG1heSBiZSBvbmx5IGEKKwkJICogcHJlZml4IG9mIHRoZSBpbmRp cmVjdGlvbiBsaXN0LiBGb3IgZXhhbXBsZSwgaXQgbWlnaHQgcHJvY2VzcworCQkgKiBBX0luZGlj ZXMgbm9kZXMsIFN0cmluZyBub2RlcyAoZm9yIGpzb25iIGRvdC1ub3RhdGlvbiksIG9yIG90aGVy CisJCSAqIG5vZGUgdHlwZXMsIGRlcGVuZGluZyBvbiB0aGUgY29udGFpbmVyJ3MgcmVxdWlyZW1l bnRzLiBJdCByZXR1cm5zCisJCSAqIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgaXQgdHJhbnNmb3Jt ZWQuCisJCSAqLworCQkqblN1YnNjcmlwdHMgPSBzYnNyb3V0aW5lcy0+dHJhbnNmb3JtX3BhcnRp YWwoc2JzcmVmLCBpbmRpcmVjdGlvbiwgcHN0YXRlLCBpc0Fzc2lnbm1lbnQpOworCX0KKwllbHNl CisJeworCQkvKgorCQkgKiBJZiB0aGVyZSBpcyBubyBwYXJ0aWFsIHRyYW5zZm9ybSBmdW5jdGlv biwgdXNlIHRoZSBmdWxsIHRyYW5zZm9ybQorCQkgKiBmdW5jdGlvbiwgd2hpY2ggb25seSBhY2Nl cHRzIGJyYWNrZXQgc3Vic2NyaXB0cyAoQV9JbmRpY2VzIG5vZGVzKS4KKwkJICogV2UgcHJlLWNv bGxlY3QgdGhlIGxlYWRpbmcgQV9JbmRpY2VzIG5vZGVzIGZyb20gdGhlIGluZGlyZWN0aW9uCisJ CSAqIGxpc3QsIHRoZW4gY2FsbCB0aGUgdHJhbnNmb3JtIGZ1bmN0aW9uIHRvIHByb2Nlc3MgdGhp cyBwcmVmaXggb2YKKwkJICogc3Vic2NyaXB0cy4KKwkJICovCisJCUxpc3QJICAgKnN1YnNjcmlw dGxpc3QgPSBOSUw7CisJCUxpc3RDZWxsICAgKmxjOworCQlib29sCQlpc1NsaWNlID0gZmFsc2U7 CisKKwkJLyogQ29sbGVjdCBsZWFkaW5nIEFfSW5kaWNlcyBzdWJzY3JpcHRzICovCisJCWZvcmVh Y2gobGMsIGluZGlyZWN0aW9uKQorCQl7CisJCQlOb2RlCSAgICpuID0gbGZpcnN0KGxjKTsKKwor CQkJaWYgKElzQShuLCBBX0luZGljZXMpKQorCQkJeworCQkJCUFfSW5kaWNlcyAgKmFpID0gKEFf SW5kaWNlcyAqKSBuOworCisJCQkJc3Vic2NyaXB0bGlzdCA9IGxhcHBlbmQoc3Vic2NyaXB0bGlz dCwgbik7CisJCQkJaWYgKGFpLT5pc19zbGljZSkKKwkJCQkJaXNTbGljZSA9IHRydWU7CisJCQl9 CisJCQllbHNlCisJCQkJYnJlYWs7CisJCX0KKworCQlpZiAoc3Vic2NyaXB0bGlzdCkKKwkJCXNi c3JvdXRpbmVzLT50cmFuc2Zvcm0oc2JzcmVmLCBzdWJzY3JpcHRsaXN0LCBwc3RhdGUsIGlzU2xp Y2UsIGlzQXNzaWdubWVudCk7CisKKwkJKm5TdWJzY3JpcHRzID0gbGlzdF9sZW5ndGgoc3Vic2Ny aXB0bGlzdCk7CisJfQorCisJaWYgKCpuU3Vic2NyaXB0cyA9PSAwKQorCXsKKwkJLyogRmFsbGJh Y2sgdG8gZmllbGQgc2VsZWN0aW9uIGluIGNhbGxlciAqLworCQlpZiAoIWlzQXNzaWdubWVudCkK KwkJCXJldHVybiBOVUxMOworCisJCS8qIFRoaXMgc2hvdWxkIG5vdCBoYXBwZW4gd2l0aCB3ZWxs LWJlaGF2ZWQgdHJhbnNmb3JtIGZ1bmN0aW9ucyAqLworCQllbG9nKEVSUk9SLCAic3Vic2NyaXB0 aW5nIHRyYW5zZm9ybSBmdW5jdGlvbiBmYWlsZWQgdG8gY29uc3VtZSBhbnkgaW5kaXJlY3Rpb24g ZWxlbWVudHMiKTsKKwl9CiAKIAkvKgogCSAqIFZlcmlmeSB3ZSBnb3QgYSB2YWxpZCB0eXBlICh0 aGlzIGRlZmVuZHMsIGZvciBleGFtcGxlLCBhZ2FpbnN0IHNvbWVvbmUKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV90YXJnZXQuYwppbmRleCA5MDVjOTc1ZDgzYi4uMzBjZjc3MzM4YWUgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfdGFyZ2V0LmMKQEAgLTkyMiw2ICs5MjIsNyBAQCB0cmFuc2Zvcm1Bc3NpZ25tZW50U3Vi c2NyaXB0cyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJT2lkCQkJdHlwZU5lZWRlZDsKIAlpbnQzMgkJ dHlwbW9kTmVlZGVkOwogCU9pZAkJCWNvbGxhdGlvbk5lZWRlZDsKKwlpbnQgCQluU3Vic2NyaXB0 cyA9IDA7CiAKIAlBc3NlcnQoc3Vic2NyaXB0cyAhPSBOSUwpOwogCkBAIC05MzYsNyArOTM3LDEw IEBAIHRyYW5zZm9ybUFzc2lnbm1lbnRTdWJzY3JpcHRzKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJ CQkJCQkJCQkgIGNvbnRhaW5lclR5cGUsCiAJCQkJCQkJCQkJICBjb250YWluZXJUeXBNb2QsCiAJ CQkJCQkJCQkJICBzdWJzY3JpcHRzLAotCQkJCQkJCQkJCSAgdHJ1ZSk7CisJCQkJCQkJCQkJICB0 cnVlLAorCQkJCQkJCQkJCSAgJm5TdWJzY3JpcHRzKTsKKworCUFzc2VydChuU3Vic2NyaXB0cyA9 PSBsaXN0X2xlbmd0aChzdWJzY3JpcHRzKSk7CiAKIAl0eXBlTmVlZGVkID0gc2JzcmVmLT5yZWZy ZXN0eXBlOwogCXR5cG1vZE5lZWRlZCA9IHNic3JlZi0+cmVmdHlwbW9kOwpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FycmF5c3Vicy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L2FycmF5c3Vicy5jCmluZGV4IDI5NDBmYjhlOGQ3Li4wMDQ5OTA3Yjk0MiAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FycmF5c3Vicy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9hcnJheXN1YnMuYwpAQCAtNTQxLDYgKzU0MSw3IEBAIGFycmF5X3N1YnNjcmlwdF9oYW5k bGVyKFBHX0ZVTkNUSU9OX0FSR1MpCiB7CiAJc3RhdGljIGNvbnN0IFN1YnNjcmlwdFJvdXRpbmVz IHNic3JvdXRpbmVzID0gewogCQkudHJhbnNmb3JtID0gYXJyYXlfc3Vic2NyaXB0X3RyYW5zZm9y bSwKKwkJLnRyYW5zZm9ybV9wYXJ0aWFsID0gTlVMTCwKIAkJLmV4ZWNfc2V0dXAgPSBhcnJheV9l eGVjX3NldHVwLAogCQkuZmV0Y2hfc3RyaWN0ID0gdHJ1ZSwJLyogZmV0Y2ggcmV0dXJucyBOVUxM IGZvciBOVUxMIGlucHV0cyAqLwogCQkuZmV0Y2hfbGVha3Byb29mID0gdHJ1ZSwJLyogZmV0Y2gg cmV0dXJucyBOVUxMIGZvciBiYWQgc3Vic2NyaXB0ICovCkBAIC01NjgsNiArNTY5LDcgQEAgcmF3 X2FycmF5X3N1YnNjcmlwdF9oYW5kbGVyKFBHX0ZVTkNUSU9OX0FSR1MpCiB7CiAJc3RhdGljIGNv bnN0IFN1YnNjcmlwdFJvdXRpbmVzIHNic3JvdXRpbmVzID0gewogCQkudHJhbnNmb3JtID0gYXJy YXlfc3Vic2NyaXB0X3RyYW5zZm9ybSwKKwkJLnRyYW5zZm9ybV9wYXJ0aWFsID0gTlVMTCwKIAkJ LmV4ZWNfc2V0dXAgPSBhcnJheV9leGVjX3NldHVwLAogCQkuZmV0Y2hfc3RyaWN0ID0gdHJ1ZSwJ LyogZmV0Y2ggcmV0dXJucyBOVUxMIGZvciBOVUxMIGlucHV0cyAqLwogCQkuZmV0Y2hfbGVha3By b29mID0gdHJ1ZSwJLyogZmV0Y2ggcmV0dXJucyBOVUxMIGZvciBiYWQgc3Vic2NyaXB0ICovCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmJzdWJzLmMgYi9zcmMvYmFja2Vu ZC91dGlscy9hZHQvanNvbmJzdWJzLmMKaW5kZXggZTg2MjZkM2I0ZmMuLmRmZTdkYTU1ZThlIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmJzdWJzLmMKKysrIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L2pzb25ic3Vicy5jCkBAIC0zOSwxMSArMzksMTAgQEAgdHlwZWRlZiBz dHJ1Y3QgSnNvbmJTdWJXb3Jrc3BhY2UKICAqIFRyYW5zZm9ybSB0aGUgc3Vic2NyaXB0IGV4cHJl c3Npb25zLCBjb2VyY2UgdGhlbSB0byB0ZXh0LAogICogYW5kIGRldGVybWluZSB0aGUgcmVzdWx0 IHR5cGUgb2YgdGhlIFN1YnNjcmlwdGluZ1JlZiBub2RlLgogICovCi1zdGF0aWMgdm9pZAorc3Rh dGljIGludAoganNvbmJfc3Vic2NyaXB0X3RyYW5zZm9ybShTdWJzY3JpcHRpbmdSZWYgKnNic3Jl ZiwKIAkJCQkJCSAgTGlzdCAqaW5kaXJlY3Rpb24sCiAJCQkJCQkgIFBhcnNlU3RhdGUgKnBzdGF0 ZSwKLQkJCQkJCSAgYm9vbCBpc1NsaWNlLAogCQkJCQkJICBib29sIGlzQXNzaWdubWVudCkKIHsK IAlMaXN0CSAgICp1cHBlckluZGV4cHIgPSBOSUw7CkBAIC01NSwxMCArNTQsMTUgQEAganNvbmJf c3Vic2NyaXB0X3RyYW5zZm9ybShTdWJzY3JpcHRpbmdSZWYgKnNic3JlZiwKIAkgKi8KIAlmb3Jl YWNoKGlkeCwgaW5kaXJlY3Rpb24pCiAJewotCQlBX0luZGljZXMgICphaSA9IGxmaXJzdF9ub2Rl KEFfSW5kaWNlcywgaWR4KTsKKwkJQV9JbmRpY2VzICAqYWk7CiAJCU5vZGUJICAgKnN1YkV4cHI7 CiAKLQkJaWYgKGlzU2xpY2UpCisJCWlmICghSXNBKGxmaXJzdChpZHgpLCBBX0luZGljZXMpKQor CQkJYnJlYWs7CisKKwkJYWkgPSBsZmlyc3Rfbm9kZShBX0luZGljZXMsIGlkeCk7CisKKwkJaWYg KGFpLT5pc19zbGljZSkKIAkJewogCQkJTm9kZQkgICAqZXhwciA9IGFpLT51aWR4ID8gYWktPnVp ZHggOiBhaS0+bGlkeDsKIApAQCAtMTQyLDcgKzE0Niw3IEBAIGpzb25iX3N1YnNjcmlwdF90cmFu c2Zvcm0oU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYsCiAJCQkgKiBTbGljZSB3aXRoIG9taXR0ZWQg dXBwZXIgYm91bmQuIFNob3VsZCBub3QgaGFwcGVuIGFzIHdlIGFscmVhZHkKIAkJCSAqIGVycm9y ZWQgb3V0IG9uIHNsaWNlIGVhcmxpZXIsIGJ1dCBoYW5kbGUgdGhpcyBqdXN0IGluIGNhc2UuCiAJ CQkgKi8KLQkJCUFzc2VydChpc1NsaWNlICYmIGFpLT5pc19zbGljZSk7CisJCQlBc3NlcnQoYWkt PmlzX3NsaWNlKTsKIAkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfREFU QVRZUEVfTUlTTUFUQ0gpLAogCQkJCQkgZXJybXNnKCJqc29uYiBzdWJzY3JpcHQgZG9lcyBub3Qg c3VwcG9ydCBzbGljZXMiKSwKQEAgLTE1OSw2ICsxNjMsOCBAQCBqc29uYl9zdWJzY3JpcHRfdHJh bnNmb3JtKFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmLAogCS8qIERldGVybWluZSB0aGUgcmVzdWx0 IHR5cGUgb2YgdGhlIHN1YnNjcmlwdGluZyBvcGVyYXRpb247IGFsd2F5cyBqc29uYiAqLwogCXNi c3JlZi0+cmVmcmVzdHlwZSA9IEpTT05CT0lEOwogCXNic3JlZi0+cmVmdHlwbW9kID0gLTE7CisK KwlyZXR1cm4gbGlzdF9sZW5ndGgodXBwZXJJbmRleHByKTsKIH0KIAogLyoKQEAgLTQwMiw3ICs0 MDgsOCBAQCBEYXR1bQoganNvbmJfc3Vic2NyaXB0X2hhbmRsZXIoUEdfRlVOQ1RJT05fQVJHUykK IHsKIAlzdGF0aWMgY29uc3QgU3Vic2NyaXB0Um91dGluZXMgc2Jzcm91dGluZXMgPSB7Ci0JCS50 cmFuc2Zvcm0gPSBqc29uYl9zdWJzY3JpcHRfdHJhbnNmb3JtLAorCQkudHJhbnNmb3JtID0gTlVM TCwJCS8qIGpzb25iIHVzZXMgcGFydGlhbCB0cmFuc2Zvcm0gaW5zdGVhZCAqLworCQkudHJhbnNm b3JtX3BhcnRpYWwgPSBqc29uYl9zdWJzY3JpcHRfdHJhbnNmb3JtLAogCQkuZXhlY19zZXR1cCA9 IGpzb25iX2V4ZWNfc2V0dXAsCiAJCS5mZXRjaF9zdHJpY3QgPSB0cnVlLAkvKiBmZXRjaCByZXR1 cm5zIE5VTEwgZm9yIE5VTEwgaW5wdXRzICovCiAJCS5mZXRjaF9sZWFrcHJvb2YgPSB0cnVlLAkv KiBmZXRjaCByZXR1cm5zIE5VTEwgZm9yIGJhZCBzdWJzY3JpcHQgKi8KZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL25vZGVzL3N1YnNjcmlwdGluZy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvc3Vic2Ny aXB0aW5nLmgKaW5kZXggZTk5MWY0YmY4MjYuLjNiODE5ZGM4ZDY1IDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9ub2Rlcy9zdWJzY3JpcHRpbmcuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9zdWJz Y3JpcHRpbmcuaApAQCAtOTgsNiArOTgsMjUgQEAgdHlwZWRlZiB2b2lkICgqU3Vic2NyaXB0VHJh bnNmb3JtKSAoU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYsCiAJCQkJCQkJCQlib29sIGlzU2xpY2Us CiAJCQkJCQkJCQlib29sIGlzQXNzaWdubWVudCk7CiAKKy8qCisgKiBTdWJzY3JpcHRUcmFuc2Zv cm1QYXJ0aWFsIGlzIGFuIGFsdGVybmF0aXZlIHRvIFN1YnNjcmlwdFRyYW5zZm9ybSBmb3IKKyAq IGNvbnRhaW5lciB0eXBlcyB0aGF0IGNhbiBhY2NlcHQgbm9uLUFfSW5kaWNlcyBpbmRpcmVjdGlv biBhcyBpbnB1dAorICogKGUuZy4sIEpTT05CIGFjY2VwdHMgZG90LW5vdGF0aW9uIChTdHJpbmcg bm9kZSkgZm9yIGZpZWxkIGFjY2VzcykuCisKKyAqIEl0IG1heSB0cmFuc2Zvcm0gYSBwcmVmaXgg b2YgdGhlIGluZGlyZWN0aW9uIGxpc3QgYW5kIGxlYXZlIHRoZSByZXN0CisgKiB1bnByb2Nlc3Nl ZC4gSXQgcmV0dXJucyB0aGUgbnVtYmVyIG9mIGluZGlyZWN0aW9ucyBpdCB0cmFuc2Zvcm1lZC4K KyAqIFRoZSBjYWxsZXIgd2lsbCB0aGVuIHJlbW92ZSB0aGF0IG1hbnkgaXRlbXMgZnJvbSB0aGUg aGVhZCBvZiB0aGUKKyAqIGxpc3QsIGFuZCBoYW5kbGUgdGhlCisgKiByZW1haW5pbmcgaW5kaXJl Y3Rpb25zIGRpZmZlcmVudGx5IG9yIHRvIHJhaXNlIGFuIGVycm9yIGFzIG5lZWRlZC4KKyAqCisg KiBJZiB0cmFuc2Zvcm1fcGFydGlhbCBpcyBOVUxMLCB0aGUgY29tcGxldGUgdHJhbnNmb3JtIGZ1 bmN0aW9uIGlzIHVzZWQsCisgKiB3aGljaCBhY2NlcHRzIG9ubHkgQV9JbmRpY2VzIChicmFja2V0 KSBub2Rlcy4KKyAqLwordHlwZWRlZiBpbnQgKCpTdWJzY3JpcHRUcmFuc2Zvcm1QYXJ0aWFsKSAo U3Vic2NyaXB0aW5nUmVmICpzYnNyZWYsCisJCQkJCQkJCQkJICBMaXN0ICppbmRpcmVjdGlvbiwK KwkJCQkJCQkJCQkgIFBhcnNlU3RhdGUgKnBzdGF0ZSwKKwkJCQkJCQkJCQkgIGJvb2wgaXNBc3Np Z25tZW50KTsKKwogLyoKICAqIFRoZSBleGVjX3NldHVwIG1ldGhvZCBpcyBjYWxsZWQgZHVyaW5n IGV4ZWN1dG9yLXN0YXJ0dXAgY29tcGlsYXRpb24gb2YgYQogICogU3Vic2NyaXB0aW5nUmVmIG5v ZGUgaW4gYW4gZXhwcmVzc2lvbi4gIEl0IG11c3QgZmlsbCAqbWV0aG9kcyB3aXRoIHBvaW50ZXJz CkBAIC0xNTcsNyArMTc2LDEwIEBAIHR5cGVkZWYgdm9pZCAoKlN1YnNjcmlwdEV4ZWNTZXR1cCkg KGNvbnN0IFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmLAogLyogU3RydWN0IHJldHVybmVkIGJ5IHRo ZSBTUUwtdmlzaWJsZSBzdWJzY3JpcHQgaGFuZGxlciBmdW5jdGlvbiAqLwogdHlwZWRlZiBzdHJ1 Y3QgU3Vic2NyaXB0Um91dGluZXMKIHsKLQlTdWJzY3JpcHRUcmFuc2Zvcm0gdHJhbnNmb3JtOwkv KiBwYXJzZSBhbmFseXNpcyBmdW5jdGlvbiAqLworCVN1YnNjcmlwdFRyYW5zZm9ybSB0cmFuc2Zv cm07CS8qIHBhcnNlIGFuYWx5c2lzIGZ1bmN0aW9uLCBvciBOVUxMICovCisJU3Vic2NyaXB0VHJh bnNmb3JtUGFydGlhbCB0cmFuc2Zvcm1fcGFydGlhbDsJLyogYWx0ZXJuYXRpdmUgcGFyc2UKKwkJ CQkJCQkJCQkJCQkgKiBhbmFseXNpcyBmdW5jdGlvbiwgb3IKKwkJCQkJCQkJCQkJCQkgKiBOVUxM ICovCiAJU3Vic2NyaXB0RXhlY1NldHVwIGV4ZWNfc2V0dXA7CS8qIGV4cHJlc3Npb24gY29tcGls YXRpb24gZnVuY3Rpb24gKi8KIAlib29sCQlmZXRjaF9zdHJpY3Q7CS8qIGlzIGZldGNoIFN1YnNj cmlwdFJlZiBzdHJpY3Q/ICovCiAJYm9vbAkJZmV0Y2hfbGVha3Byb29mOwkvKiBpcyBmZXRjaCBT dWJzY3JpcHRSZWYgbGVha3Byb29mPyAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2Vy L3BhcnNlX25vZGUuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKaW5kZXggZjdk MDdjODQ1NDIuLjgwZjQ4NmFjZmYwIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFy c2Vfbm9kZS5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKQEAgLTM2Miw3 ICszNjIsOCBAQCBleHRlcm4gU3Vic2NyaXB0aW5nUmVmICp0cmFuc2Zvcm1Db250YWluZXJTdWJz Y3JpcHRzKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJCQkJCQkgT2lkIGNvbnRhaW5lclR5 cGUsCiAJCQkJCQkJCQkJCQkJIGludDMyIGNvbnRhaW5lclR5cE1vZCwKIAkJCQkJCQkJCQkJCQkg TGlzdCAqaW5kaXJlY3Rpb24sCi0JCQkJCQkJCQkJCQkJIGJvb2wgaXNBc3NpZ25tZW50KTsKKwkJ CQkJCQkJCQkJCQkgYm9vbCBpc0Fzc2lnbm1lbnQsCisJCQkJCQkJCQkJCQkJIGludCAqY29uc3Vt ZWRfY291bnQpOwogZXh0ZXJuIENvbnN0ICptYWtlX2NvbnN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwg QV9Db25zdCAqYWNvbnN0KTsKIAogI2VuZGlmCQkJCQkJCS8qIFBBUlNFX05PREVfSCAqLwotLSAK Mi4zOS41IChBcHBsZSBHaXQtMTU0KQoK --000000000000d5ee4f063f6733dc Content-Type: application/octet-stream; name="v21-0003-Export-jsonPathFromParseResult.patch" Content-Disposition: attachment; filename="v21-0003-Export-jsonPathFromParseResult.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfvekics3 RnJvbSBkODIxMjIyMWI3ZDg2YmFhMGI1YTQ2YzM4NTkzNTNjOGY3ZTlkM2VjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtpdGEgR2x1a2hvdiA8bi5nbHVob3ZAcG9zdGdyZXNwcm8u cnU+CkRhdGU6IFR1ZSwgOCBKdWwgMjAyNSAyMjoxODowNyAtMDcwMApTdWJqZWN0OiBbUEFUQ0gg djIxIDMvNV0gRXhwb3J0IGpzb25QYXRoRnJvbVBhcnNlUmVzdWx0KCkKClRoaXMgaXMgYSBwcmVw YXJhdGlvbiBzdGVwIGZvciBhIGZ1dHVyZSBjb21taXQgdGhhdCB3aWxsIHJldXNlIHRoZQphZm9y ZW1lbnRpb25lZCBmdW5jdGlvbi4KCkF1dGhvcmVkLWJ5OiBOaWtpdGEgR2x1a2hvdiA8Z2x1a2hv di5uLmFAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQWxleGFuZHJhIFdhbmcgPGFsZXhhbmRyYS53 YW5nLm9zc0BnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBBbmRyZXcgRHVuc3RhbiA8YW5kcmV3QGR1 bnNsYW5lLm5ldD4KUmV2aWV3ZWQtYnk6IE1hdGhldXMgQWxjYW50YXJhIDxtYXRoZXVzc3NpbHY5 N0BnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBKaWFuIEhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFp bC5jb20+ClJldmlld2VkLWJ5OiBDaGFvIExpIDxsaS5ldmFuLmNoYW9AZ21haWwuY29tPgotLS0K IHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29ucGF0aC5jIHwgMTkgKysrKysrKysrKysrKysrLS0t LQogc3JjL2luY2x1ZGUvdXRpbHMvanNvbnBhdGguaCAgICAgfCAgNCArKysrCiAyIGZpbGVzIGNo YW5nZWQsIDE5IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L2pzb25wYXRoLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvanNv bnBhdGguYwppbmRleCA3NjJmN2U4YTA5ZC4uYzgzNzc0YjJhMTYgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9qc29ucGF0aC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9q c29ucGF0aC5jCkBAIC0xNjYsMTUgKzE2NiwxMyBAQCBqc29ucGF0aF9zZW5kKFBHX0ZVTkNUSU9O X0FSR1MpCiAgKiBDb252ZXJ0cyBDLXN0cmluZyB0byBhIGpzb25wYXRoIHZhbHVlLgogICoKICAq IFVzZXMganNvbnBhdGggcGFyc2VyIHRvIHR1cm4gc3RyaW5nIGludG8gYW4gQVNULCB0aGVuCi0g KiBmbGF0dGVuSnNvblBhdGhQYXJzZUl0ZW0oKSBkb2VzIHNlY29uZCBwYXNzIHR1cm5pbmcgQVNU IGludG8gYmluYXJ5CisgKiBqc29uUGF0aEZyb21QYXJzZVJlc3VsdCgpIGRvZXMgc2Vjb25kIHBh c3MgdHVybmluZyBBU1QgaW50byBiaW5hcnkKICAqIHJlcHJlc2VudGF0aW9uIG9mIGpzb25wYXRo LgogICovCiBzdGF0aWMgRGF0dW0KIGpzb25QYXRoRnJvbUNzdHJpbmcoY2hhciAqaW4sIGludCBs ZW4sIHN0cnVjdCBOb2RlICplc2NvbnRleHQpCiB7CiAJSnNvblBhdGhQYXJzZVJlc3VsdCAqanNv bnBhdGggPSBwYXJzZWpzb25wYXRoKGluLCBsZW4sIGVzY29udGV4dCk7Ci0JSnNvblBhdGggICAq cmVzOwotCVN0cmluZ0luZm9EYXRhIGJ1ZjsKIAogCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGVz Y29udGV4dCkpCiAJCXJldHVybiAoRGF0dW0pIDA7CkBAIC0xODUsOCArMTgzLDIxIEBAIGpzb25Q YXRoRnJvbUNzdHJpbmcoY2hhciAqaW4sIGludCBsZW4sIHN0cnVjdCBOb2RlICplc2NvbnRleHQp CiAJCQkJIGVycm1zZygiaW52YWxpZCBpbnB1dCBzeW50YXggZm9yIHR5cGUgJXM6IFwiJXNcIiIs ICJqc29ucGF0aCIsCiAJCQkJCQlpbikpKTsKIAorCXJldHVybiBqc29uUGF0aEZyb21QYXJzZVJl c3VsdChqc29ucGF0aCwgNCAqIGxlbiwgZXNjb250ZXh0KTsKK30KKworLyoKKyAqIENvbnZlcnRz IGpzb25wYXRoIEFic3RyYWN0IFN5bnRheCBUcmVlIChBU1QpIGludG8ganNvbnBhdGggdmFsdWUg aW4gYmluYXJ5LgorICovCitEYXR1bQoranNvblBhdGhGcm9tUGFyc2VSZXN1bHQoY29uc3QgSnNv blBhdGhQYXJzZVJlc3VsdCAqanNvbnBhdGgsIGludCBlc3RpbWF0ZWRfbGVuLAorCQkJCQkJc3Ry dWN0IE5vZGUgKmVzY29udGV4dCkKK3sKKwlKc29uUGF0aCAgICpyZXM7CisJU3RyaW5nSW5mb0Rh dGEgYnVmOworCiAJaW5pdFN0cmluZ0luZm8oJmJ1Zik7Ci0JZW5sYXJnZVN0cmluZ0luZm8oJmJ1 ZiwgNCAqIGxlbiAvKiBlc3RpbWF0aW9uICovICk7CisJZW5sYXJnZVN0cmluZ0luZm8oJmJ1Ziwg ZXN0aW1hdGVkX2xlbik7CiAKIAlhcHBlbmRTdHJpbmdJbmZvU3BhY2VzKCZidWYsIEpTT05QQVRI X0hEUlNaKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvanNvbnBhdGguaCBiL3Ny Yy9pbmNsdWRlL3V0aWxzL2pzb25wYXRoLmgKaW5kZXggMjNhNzZkMjMzZTkuLjA5NThiYzIyYmI2 IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy9qc29ucGF0aC5oCisrKyBiL3NyYy9pbmNs dWRlL3V0aWxzL2pzb25wYXRoLmgKQEAgLTI4MSw2ICsyODEsMTAgQEAgZXh0ZXJuIEpzb25QYXRo UGFyc2VSZXN1bHQgKnBhcnNlanNvbnBhdGgoY29uc3QgY2hhciAqc3RyLCBpbnQgbGVuLAogZXh0 ZXJuIGJvb2wganNwQ29udmVydFJlZ2V4RmxhZ3ModWludDMyIHhmbGFncywgaW50ICpyZXN1bHQs CiAJCQkJCQkJCSBzdHJ1Y3QgTm9kZSAqZXNjb250ZXh0KTsKIAorZXh0ZXJuIERhdHVtIGpzb25Q YXRoRnJvbVBhcnNlUmVzdWx0KGNvbnN0IEpzb25QYXRoUGFyc2VSZXN1bHQgKmpzb25wYXRoLAor CQkJCQkJCQkJIGludCBlc3RpbWF0ZWRfbGVuLAorCQkJCQkJCQkJIHN0cnVjdCBOb2RlICplc2Nv bnRleHQpOworCiAvKgogICogU3RydWN0IGZvciBkZXRhaWxzIGFib3V0IGV4dGVybmFsIHZhcmlh YmxlcyBwYXNzZWQgaW50byBqc29ucGF0aCBleGVjdXRvcgogICovCi0tIAoyLjM5LjUgKEFwcGxl IEdpdC0xNTQpCgo= --000000000000d5ee4f063f6733dc--