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 1uyE1B-005K2E-2L for pgsql-hackers@arkaria.postgresql.org; Mon, 15 Sep 2025 18:33:37 +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 1uyE18-00Cv9v-LB for pgsql-hackers@arkaria.postgresql.org; Mon, 15 Sep 2025 18:33:35 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uyE17-00Cv9m-LQ for pgsql-hackers@lists.postgresql.org; Mon, 15 Sep 2025 18:33:35 +0000 Received: from mail-pg1-x541.google.com ([2607:f8b0:4864:20::541]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1uyE15-000aKT-39 for pgsql-hackers@postgresql.org; Mon, 15 Sep 2025 18:33:33 +0000 Received: by mail-pg1-x541.google.com with SMTP id 41be03b00d2f7-b5488c409d1so2969841a12.1 for ; Mon, 15 Sep 2025 11:33:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1757961211; x=1758566011; 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=u+TOmt3zIIjA5pydd8WozKrJXFf7teS/vrBBCHrgfMI=; b=WMTbR7E+M3mazlhmIYgBlxzdqd76HEqHbr5xQexCqAOoFM+QBWCKD7bDmrz/CxsDt2 Rf3dmMACrt5G/RbOAjUlkXtzSlM0o+eEZTb/TMf4Mr8OYn1TBzm1kxm5XgF2++r3UHer 7l5kLyLA5prbOhQUVBgJx3IpC00YOPmeHerfdbtpDOzS/jRe8kOCQGMrPlhOUwBkSAUH 2mbBMuRwIx7lULkQeY6POyAHUBsEHlB5qxdSb+YzPC0behP+xF2G7owMgFuQ64pDpnDQ aYtjWvRuWfIb1AMVAmjTyi7KwDjesSuQ7e1gh8mw4SOlafsgXuKZqD1GDizVIAK5/deE zsaQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757961211; x=1758566011; 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=u+TOmt3zIIjA5pydd8WozKrJXFf7teS/vrBBCHrgfMI=; b=M4CsobCa6LdQrJLO4tdgcoPqSAD6AJyJ2QKqaGoNuurCndtS+xEzZMoMs9f7+gcKdt sUpdS79bZW9q27Oximq4rnxaaTNX3cFP0a1QbJx4inetoZofidDeGpYD+XEK7Y8Tmigc n5aGRKtjZc9YCpX9a5jtvBM9VP/cWL/Nn1DEhrFl5wlPuzA6qJYeSw1nwdMDBa/1U4qz D1NnWeydIJs8GxJsj6f5gyNfIxQ2YJ+h88RbU8KdnqdH41q+ZHRDzfONR4ZVz107wCT/ /e6PuWIJZWhjNW0gTuF8iRGEzTsNzIlfdeP2jMfPRDOXviloIzOqAm8B0pLLIL7rlbXQ ZKcg== X-Forwarded-Encrypted: i=1; AJvYcCVuj2fsCeGFdDGlGtTomd5DxrirqjNchxCQIc5Ir6fM+wgN8eyeSi2Y3NsiP/dx6uhLawQK/O1H2f7vzmvt@postgresql.org X-Gm-Message-State: AOJu0YxdGtEmRW3NKTTvAjZzmCRUZCorxkEyuKBqYOGOfqj3Oa1vtwQK dWDg79T007RjccQXIt6bIW9joMuXJLzek7sAA09leqq6/++ogF37Cs5U+obnc/KYAmc7yKIDgYJ AHYyQ/07TsnDMiRUNZFHDPjVqYEqku1Q= X-Gm-Gg: ASbGncsw2+DT3Zp666M8EwBpBNXLsK5xDvPCnNGL/guIRXo2loUSXJCEQeY3ifSn2Vs kReDZyRb8YPQMZa0jFxiASM8uDMAtSM7bSpt6kCH6BQAdt4jdxq9XItAK7aK0FeLZyOCJeZEJr2 zFYoWjLHb8is4uySRm5s9kDhVLg4wYuXbw2KAqSFnxeq1rfeLDoVLTEOwRyWmJWPi5/H6g9iKSX o7N5VbG X-Google-Smtp-Source: AGHT+IHpWBQtT0qSskpaiZflvYAm96M5YZ6uivQO/YZhtU/Jj1kD6IksibehMd832LVDlFa2aH27W344A6E7wAQtkOI= X-Received: by 2002:a17:903:246:b0:246:a543:199 with SMTP id d9443c01a7336-25d278282edmr197665785ad.54.1757961211129; Mon, 15 Sep 2025 11:33:31 -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> In-Reply-To: From: Alexandra Wang Date: Mon, 15 Sep 2025 11:32:52 -0700 X-Gm-Features: AS18NWDp8v7zqOeNlwt2_849fo2-dgb7k47lSYj-tivN1AZDlSGgSWbIZXFEpI8 Message-ID: Subject: Re: SQL:2023 JSON simplified accessor support To: Chao Li Cc: Nikita Glukhov , jian he , Nikita Malakhov , Vik Fearing , Mark Dilger , Matheus Alcantara , Peter Eisentraut , Andrew Dunstan , PostgreSQL Hackers , "David E. Wheeler" Content-Type: multipart/mixed; boundary="00000000000085838c063edb3d65" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000085838c063edb3d65 Content-Type: multipart/alternative; boundary="00000000000085838b063edb3d63" --00000000000085838b063edb3d63 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, I=E2=80=99ve rebased the patch set, no changes since v18. Best, Alex --00000000000085838b063edb3d63 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,

I=E2=80=99ve rebased the patch set, no changes = since v18.

Best,
Alex

--00000000000085838b063edb3d63-- --00000000000085838c063edb3d65 Content-Type: application/octet-stream; name="v19-0005-Implement-read-only-dot-notation-for-jsonb.patch" Content-Disposition: attachment; filename="v19-0005-Implement-read-only-dot-notation-for-jsonb.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mflgmzs93 RnJvbSBhZTZiMzBiY2RmNGYwYzJiODQ3YjU4NDZmYmMxYjY0NzI2N2Q3YWE1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5kcmEgV2FuZyA8YWxleGFuZHJhLndhbmcub3NzQGdt YWlsLmNvbT4KRGF0ZTogVHVlLCA4IEp1bCAyMDI1IDIyOjE4OjA3IC0wNzAwClN1YmplY3Q6IFtQ QVRDSCB2MTkgNS83XSBJbXBsZW1lbnQgcmVhZC1vbmx5IGRvdCBub3RhdGlvbiBmb3IganNvbmIK 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 c2dtbC9qc29uLnNnbWwgICAgICAgICAgICAgICAgICAgICAgICB8IDMwMSArKysrKysrKysrKysr CiBzcmMvYmFja2VuZC9jYXRhbG9nL3NxbF9mZWF0dXJlcy50eHQgICAgICAgICAgfCAgIDQgKy0K IHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMgICAgICAgICAgICAgICB8ICA4MSArKy0t CiBzcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYyAgICAgICAgICAgICAgICAgfCAgMTIgKwog c3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25ic3Vicy5jICAgICAgICAgICAgIHwgMzAxICsrKysr KysrKysrKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYyAgICAgICAgICAgICB8 ICA0MyArLQogc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmggICAgICAgICAgICAgICAgIHwg IDU0ICsrLQogLi4uL2VjcGcvdGVzdC9leHBlY3RlZC9zcWwtc3FsanNvbi5jICAgICAgICAgIHwg MTEyICsrKystCiAuLi4vZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29uLnN0ZGVyciAgICAg fCAxMDAgKysrKysKIC4uLi9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24uc3Rkb3V0ICAg ICB8ICAgNyArCiBzcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3Qvc3FsL3NxbGpzb24ucGdjICAgICAg fCAgMzMgKysKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvanNvbmIub3V0ICAgICAgICAgICB8 IDQxMyArKysrKysrKysrKysrKysrKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2pzb25iLnNxbCAg ICAgICAgICAgICAgICB8IDExMyArKysrLQogc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxp c3QgICAgICAgICAgICAgIHwgICAxICsKIDE0IGZpbGVzIGNoYW5nZWQsIDE1MDIgaW5zZXJ0aW9u cygrKSwgNzMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2pzb24uc2dt bCBiL2RvYy9zcmMvc2dtbC9qc29uLnNnbWwKaW5kZXggMjA2ZWFkYjhmN2IuLjRlNzdlOWU5NTEy IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvanNvbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9q c29uLnNnbWwKQEAgLTcxMiw2ICs3MTIsMzA3IEBAIFVQREFURSB0YWJsZV9uYW1lIFNFVCBqc29u Yl9maWVsZFsxXVsnYSddID0gJzEnOwogICA8L3BhcmE+CiAgPC9zZWN0Mj4KIAorIDxzZWN0MiBp ZD0ianNvbmItc2ltcGxpZmllZC1hY2Nlc3NvciI+CisgIDx0aXRsZT5KU09OIFNpbXBsaWZpZWQg QWNjZXNzb3I8L3RpdGxlPgorICA8cGFyYT4KKyAgIFBvc3RncmVTUUwgaW1wbGVtZW50cyB0aGUg SlNPTiBzaW1wbGlmaWVkIGFjY2Vzc29yIGFzIHNwZWNpZmllZCBpbiBTUUw6MjAyMy4KKyAgIFRo ZSBTUUwgc3RhbmRhcmQgZGVmaW5lcyB0aGUgc2ltcGxpZmllZCBhY2Nlc3NvciBhcyBhIGNoYWlu IG9mIG9wZXJhdGlvbnMKKyAgIHRoYXQgY2FuIGluY2x1ZGUgSlNPTiBtZW1iZXIgYWNjZXNzb3Jz IChkb3Qgbm90YXRpb24gZm9yIG9iamVjdCBmaWVsZHMpCisgICBhbmQgSlNPTiBhcnJheSBhY2Nl c3NvcnMgKGludGVnZXIgc3Vic2NyaXB0cyBmb3IgYXJyYXkgZWxlbWVudHMpLgorICAgVGhpcyBw cm92aWRlcyBhIHN0YW5kYXJkaXplZCB3YXkgdG8gYWNjZXNzIEpTT04gZGF0YSB0aGF0IGNvbXBs ZW1lbnRzCisgICBQb3N0Z3JlU1FMJ3MgcHJlLXN0YW5kYXJkIHN1YnNjcmlwdGluZyBhbmQgb3Bl cmF0b3ItYmFzZWQgYWNjZXNzIG1ldGhvZHMuCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRo ZSBTUUw6MjAyMyBzaW1wbGlmaWVkIGFjY2Vzc29yIHN5bnRheCBpbmNsdWRlczoKKyAgIDxpdGVt aXplZGxpc3Q+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIDxlbXBoYXNpcz5K U09OIG1lbWJlciBhY2Nlc3Nvcjo8L2VtcGhhc2lzPiA8bGl0ZXJhbD5qc29uYl9jb2x1bW4uZmll bGRfbmFtZTwvbGl0ZXJhbD4gCisgICAgICBmb3IgYWNjZXNzaW5nIG9iamVjdCBmaWVsZHMKKyAg ICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4K KyAgICAgIDxlbXBoYXNpcz5KU09OIGFycmF5IGFjY2Vzc29yOjwvZW1waGFzaXM+IDxsaXRlcmFs Pmpzb25iX2NvbHVtbltpbmRleF08L2xpdGVyYWw+IAorICAgICAgZm9yIGFjY2Vzc2luZyBhcnJh eSBlbGVtZW50cyBieSBpbnRlZ2VyIGluZGV4CisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVt PgorICAgPC9pdGVtaXplZGxpc3Q+CisgICBUaGVzZSBjYW4gYmUgY2hhaW5lZCB0b2dldGhlcjog PGxpdGVyYWw+anNvbmJfY29sdW1uLmZpZWxkX25hbWVbMF0ubmVzdGVkX2ZpZWxkPC9saXRlcmFs Pi4KKyAgIFdoZW4gZG90IG5vdGF0aW9uIGlzIHByZXNlbnQgaW4gdGhlIGFjY2Vzc29yIGNoYWlu LCB0aGUgZW50aXJlIGNoYWluIGZvbGxvd3MKKyAgIFNRTDoyMDIzIHNlbWFudGljcyB3aXRoIGxh eCBtb2RlIGJlaGF2aW9yIGFuZCBjb25kaXRpb25hbCBhcnJheSB3cmFwcGVyLgorICA8L3BhcmE+ CisKKyAgPHBhcmE+CisgICBUaGUgSlNPTiBzaW1wbGlmaWVkIGFjY2Vzc29yIGlzIHNlbWFudGlj YWxseSBlcXVpdmFsZW50IHRvIHVzaW5nCisgICA8ZnVuY3Rpb24+SlNPTl9RVUVSWTwvZnVuY3Rp b24+IHdpdGggdGhlIDxsaXRlcmFsPmxheDwvbGl0ZXJhbD4gbW9kZSBhbmQKKyAgIDxsaXRlcmFs PldJVEggQ09ORElUSU9OQUwgQVJSQVkgV1JBUFBFUiBOVUxMIE9OIEVNUFRZIE5VTEwgT04gRVJS T1I8L2xpdGVyYWw+CisgICBvcHRpb25zLiBGb3IgZXhhbXBsZSwgPGxpdGVyYWw+anNvbl9jb2wu ZmllbGQ8L2xpdGVyYWw+IGlzIGVxdWl2YWxlbnQgdG8KKyAgIDxsaXRlcmFsPkpTT05fUVVFUlko anNvbl9jb2wsICdsYXggJC5maWVsZCcgV0lUSCBDT05ESVRJT05BTCBBUlJBWSBXUkFQUEVSIE5V TEwgT04gRU1QVFkgTlVMTCBPTiBFUlJPUik8L2xpdGVyYWw+LgorICAgVGhlIGNvbmRpdGlvbmFs IGFycmF5IHdyYXBwZXIgd3JhcHMgbXVsdGlwbGUgcmVzdWx0cyBpbiBhbiBhcnJheQorICAgYnV0 IGxlYXZlcyBhIHNpbmdsZSByZXN1bHQgYXMtaXMgd2l0aG91dCB3cmFwcGluZy4KKyAgPC9wYXJh PgorCisgIDxwYXJhPgorICAgRXhhbXBsZXMgb2YgSlNPTiBzaW1wbGlmaWVkIGFjY2Vzc29yIHN5 bnRheDoKKworPHByb2dyYW1saXN0aW5nPgorCistLSBCYXNpYyBmaWVsZCBhY2Nlc3MKK1NFTEVD VCAoJ3siY29sb3IiOiAicmVkIiwgInJnYiI6IFsyNTUsIDAsIDBdfSc6Ompzb25iKS5jb2xvcjsK KworLS0gTmVzdGVkIGZpZWxkIGFjY2VzcworU0VMRUNUICgneyJ1c2VyIjogeyJwcm9maWxlIjog eyJzZXR0aW5ncyI6IHsidGhlbWUiOiAiZGFyayJ9fX19Jzo6anNvbmIpLnVzZXIucHJvZmlsZS5z ZXR0aW5ncy50aGVtZTsKKworLS0gSlNPTiBtZW1iZXIgYWNjZXNzb3IgZm9sbG93ZWQgYnkgSlNP TiBhcnJheSBhY2Nlc3NvciAoYm90aCBwYXJ0IG9mIHNpbXBsaWZpZWQgYWNjZXNzb3IpCitTRUxF Q1QgKCd7InJlcGVydG9pcmUiOiBbeyJ0aXRsZSI6ICJTd2FuIExha2UifSwgeyJ0aXRsZSI6ICJU aGUgTnV0Y3JhY2tlciJ9XX0nOjpqc29uYikucmVwZXJ0b2lyZVsxXS50aXRsZTsKKworLS0gSW4g V0hFUkUgY2xhdXNlcworU0VMRUNUICogRlJPTSB1c2VycyBXSEVSRSBwcm9maWxlLnByZWZlcmVu Y2VzLnRoZW1lID0gJyJkYXJrIic7CisKKy0tIENvbXBhcmlzb24gd2l0aCBvdGhlciBhY2Nlc3Mg bWV0aG9kcyAoTk9UIGVxdWl2YWxlbnQgLSBkaWZmZXJlbnQgc2VtYW50aWNzKToKK1NFTEVDVCBq c29uX2NvbFsnYWRkcmVzcyddWydjaXR5J107ICAgICAgICAgICAtLSBTdWJzY3JpcHRpbmcKK1NF TEVDVCBqc29uX2NvbC0+J2FkZHJlc3MnLT4nY2l0eSc7ICAgICAgICAgICAtLSBPcGVyYXRvciAg CitTRUxFQ1QganNvbl9jb2wuYWRkcmVzcy5jaXR5OyAgICAgICAgICAgICAgICAgLS0gU2ltcGxp ZmllZCBhY2Nlc3NvciAoZGlmZmVyZW50IGJlaGF2aW9yKQorPC9wcm9ncmFtbGlzdGluZz4KKyAg PC9wYXJhPgorCisgIDxzZWN0MyBpZD0ianNvbmItYWNjZXNzLW1ldGhvZC1jb21wYXJpc29uIj4K KyAgIDx0aXRsZT5Db21wYXJpc29uIG9mIEpTT04gQWNjZXNzIE1ldGhvZHM8L3RpdGxlPgorICAg PHBhcmE+CisgICAgUG9zdGdyZVNRTCBwcm92aWRlcyB0aHJlZSBkaWZmZXJlbnQgYXBwcm9hY2hl cyBmb3IgYWNjZXNzaW5nIEpTT04gZGF0YSwgZWFjaCB3aXRoCisgICAgZGlzdGluY3Qgc2VtYW50 aWNzIGFuZCBiZWhhdmlvcnM6CisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIDxlbXBoYXNp cz5TUUw6MjAyMyBKU09OIFNpbXBsaWZpZWQgQWNjZXNzb3I6PC9lbXBoYXNpcz4KKyAgICA8aXRl bWl6ZWRsaXN0PgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBTeW50YXg6 IDxsaXRlcmFsPmpzb25fY29sLmZpZWxkX25hbWU8L2xpdGVyYWw+IChtZW1iZXIgYWNjZXNzb3Ip IGFuZCAKKyAgICAgICA8bGl0ZXJhbD5qc29uX2NvbFtpbmRleF08L2xpdGVyYWw+IChhcnJheSBh Y2Nlc3NvciB3aGVuIHVzZWQgd2l0aCBkb3Qgbm90YXRpb24pCisgICAgICA8L3BhcmE+CisgICAg IDwvbGlzdGl0ZW0+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgIFN0YW5k YXJkIFNRTDoyMDIzIGJlaGF2aW9yIHdpdGggPGxpdGVyYWw+bGF4PC9saXRlcmFsPiBtb2RlIHNl bWFudGljcworICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgICA8bGlzdGl0ZW0+ CisgICAgICA8cGFyYT4KKyAgICAgICBBdXRvbWF0aWMgYXJyYXkgd3JhcHBpbmcvdW53cmFwcGlu ZyBhcyBzcGVjaWZpZWQgaW4gdGhlIFNRTCBzdGFuZGFyZAorICAgICAgPC9wYXJhPgorICAgICA8 L2xpc3RpdGVtPgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBXaGVuIGFj Y2Vzc2luZyBhIGZpZWxkIGZyb20gYW4gYXJyYXksIG9wZXJhdGVzIG9uIGVhY2ggYXJyYXkgZWxl bWVudCBhbmQgd3JhcHMgcmVzdWx0cyBpbiBhbiBhcnJheTsKKyAgICAgICB3aGVuIGFjY2Vzc2lu ZyBhbiBhcnJheSBpbmRleCBmcm9tIGEgbm9uLWFycmF5LCB3cmFwcyB0aGUgdmFsdWUgYXMgYW4g YXJyYXkgZmlyc3QKKyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICAgPGxpc3Rp dGVtPgorICAgICAgPHBhcmE+CisgICAgICAgVHJpZ2dlcmVkIHdoZW4gZG90IG5vdGF0aW9uIGlz IHByZXNlbnQgYW55d2hlcmUgaW4gdGhlIGFjY2Vzc29yIGNoYWluCisgICAgICA8L3BhcmE+Cisg ICAgIDwvbGlzdGl0ZW0+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgIFJl YWQtb25seSBhY2Nlc3MKKyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICA8L2l0 ZW1pemVkbGlzdD4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgPGVtcGhhc2lzPlByZS1z dGFuZGFyZCBKU09OQiBTdWJzY3JpcHRpbmc6PC9lbXBoYXNpcz4KKyAgICA8aXRlbWl6ZWRsaXN0 PgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBTeW50YXg6IDxsaXRlcmFs Pmpzb25fY29sWydmaWVsZF9uYW1lJ108L2xpdGVyYWw+ICh0ZXh0LWJhc2VkKSBhbmQgCisgICAg ICAgPGxpdGVyYWw+anNvbl9jb2xbaW5kZXhdPC9saXRlcmFsPiAoaW50ZWdlci1iYXNlZCB3aGVu IG5vIGRvdCBub3RhdGlvbiBwcmVzZW50KQorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVt PgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBQb3N0Z3JlU1FMJ3Mgb3Jp Z2luYWwgSlNPTkIgc3Vic2NyaXB0aW5nIGJlaGF2aW9yIChhdmFpbGFibGUgc2luY2UgdmVyc2lv biAxNCkKKyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICAgPGxpc3RpdGVtPgor ICAgICAgPHBhcmE+CisgICAgICAgRGlyZWN0IG9iamVjdCBmaWVsZCBhbmQgYXJyYXkgZWxlbWVu dCBhY2Nlc3Mgd2l0aG91dCBhcnJheSB3cmFwcGluZy91bndyYXBwaW5nCisgICAgICA8L3BhcmE+ CisgICAgIDwvbGlzdGl0ZW0+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAg IFN1cHBvcnRzIGJvdGggcmVhZCBhbmQgd3JpdGUgb3BlcmF0aW9ucworICAgICAgPC9wYXJhPgor ICAgICA8L2xpc3RpdGVtPgorICAgIDwvaXRlbWl6ZWRsaXN0PgorICAgPC9wYXJhPgorCisgICA8 cGFyYT4KKyAgICA8ZW1waGFzaXM+QXJyb3cgT3BlcmF0b3JzOjwvZW1waGFzaXM+CisgICAgPGl0 ZW1pemVkbGlzdD4KKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAgU3ludGF4 OiA8bGl0ZXJhbD5qc29uX2NvbC0+J2ZpZWxkX25hbWUnPC9saXRlcmFsPiBhbmQgPGxpdGVyYWw+ anNvbl9jb2wtPj4nZmllbGRfbmFtZSc8L2xpdGVyYWw+CisgICAgICA8L3BhcmE+CisgICAgIDwv bGlzdGl0ZW0+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgIFBvc3RncmVT UUwncyBKU09OIG9wZXJhdG9ycyB0aGF0IHdvcmsgd2l0aCBib3RoIDxsaXRlcmFsPmpzb248L2xp dGVyYWw+IGFuZCA8bGl0ZXJhbD5qc29uYjwvbGl0ZXJhbD4gdHlwZXMKKyAgICAgIDwvcGFyYT4K KyAgICAgPC9saXN0aXRlbT4KKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAg RGlyZWN0IG9iamVjdCBmaWVsZCBhbmQgYXJyYXkgZWxlbWVudCBhY2Nlc3Mgd2l0aG91dCBhcnJh eSB3cmFwcGluZy91bndyYXBwaW5nCisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+Cisg ICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgIDxsaXRlcmFsPi0+PC9saXRlcmFs PiByZXR1cm5zIGpzb25iLCA8bGl0ZXJhbD4tPj48L2xpdGVyYWw+IHJldHVybnMgdGV4dAorICAg ICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFy YT4KKyAgICAgICBSZWFkLW9ubHkgYWNjZXNzCisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0 ZW0+CisgICAgPC9pdGVtaXplZGxpc3Q+CisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIDxl bXBoYXNpcz5LZXkgU2VtYW50aWMgRGlmZmVyZW5jZXM6PC9lbXBoYXNpcz4gVGhlIG1vc3QgaW1w b3J0YW50IGRpc3RpbmN0aW9ucyBhcmUKKyAgICBob3cgdGhlc2UgbWV0aG9kcyBoYW5kbGUgbWVt YmVyIGFjY2VzcyBmcm9tIGFycmF5cyBhbmQgYXJyYXkgYWNjZXNzIGZyb20gbm9uLWFycmF5IHZh bHVlcy4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgPGVtcGhhc2lzPk1lbWJlciBBY2Nl c3MgZnJvbSBBcnJheXM6PC9lbXBoYXNpcz4KKzxwcm9ncmFtbGlzdGluZz4KKy0tIFNldHVwIGRh dGEKK0lOU0VSVCBJTlRPIHRlc3RfdGFibGUgVkFMVUVTIAorICAoJ3siYnJpZ2h0bmVzcyI6IDgw fScpLCAgICAgICAgICAgICAgICAgICAgICAtLSBPYmplY3QgY2FzZQorICAoJ1t7ImJyaWdodG5l c3MiOiA0NX0sIHsiYnJpZ2h0bmVzcyI6IDkwfV0nKTsgLS0gQXJyYXkgY2FzZQorCistLSBEaWZm ZXJlbnQgYmVoYXZpb3JzOgorU0VMRUNUIGRhdGEuYnJpZ2h0bmVzcyBGUk9NIHRlc3RfdGFibGU7 ICAgICAgICAgLS0gU2ltcGxpZmllZCBhY2Nlc3NvcgorLS0gUmVzdWx0czogODAsIFs0NSwgOTBd ICAoYXJyYXkgZWxlbWVudHMgdW53cmFwcGVkLCByZXN1bHRzIHdyYXBwZWQpCisKK1NFTEVDVCBk YXRhWydicmlnaHRuZXNzJ10gRlJPTSB0ZXN0X3RhYmxlOyAgICAgIC0tIFByZS1zdGFuZGFyZCBz dWJzY3JpcHRpbmcgIAorLS0gUmVzdWx0czogODAsIE5VTEwgICAgKG5vIGFycmF5IGhhbmRsaW5n KQorCitTRUxFQ1QgZGF0YS0+J2JyaWdodG5lc3MnIEZST00gdGVzdF90YWJsZTsgICAgICAtLSBB cnJvdyBvcGVyYXRvcgorLS0gUmVzdWx0czogODAsIE5VTEwgICAgKG5vIGFycmF5IGhhbmRsaW5n KQorPC9wcm9ncmFtbGlzdGluZz4KKworICAgIEluIHRoZSBhcnJheSBjYXNlLCB0aGUgc2ltcGxp ZmllZCBhY2Nlc3NvciBhcHBsaWVzIHRoZSBmaWVsZCBhY2Nlc3MgdG8gZWFjaCBhcnJheSBlbGVt ZW50CisgICAgKHVud3JhcHBpbmcpIGFuZCBjb25kaXRpb25hbGx5IHdyYXBzIHRoZSByZXN1bHRz IGluIGFuIGFycmF5LCB3aGlsZSBzdWJzY3JpcHRpbmcgYW5kIGFycm93IG9wZXJhdG9ycworICAg IGF0dGVtcHQgZGlyZWN0IGZpZWxkIGFjY2VzcyBvbiB0aGUgYXJyYXkgaXRzZWxmICh3aGljaCBy ZXR1cm5zIE5VTEwgc2luY2UKKyAgICBhcnJheXMgZG9uJ3QgaGF2ZSBuYW1lZCBmaWVsZHMpLgor ICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICA8ZW1waGFzaXM+QXJyYXkgQWNjZXNzIGZyb20g T2JqZWN0cyAoTGF4IE1vZGUgQmVoYXZpb3IpOjwvZW1waGFzaXM+Cis8cHJvZ3JhbWxpc3Rpbmc+ CistLSBTZXR1cCBkYXRhCitJTlNFUlQgSU5UTyB0ZXN0X3RhYmxlIFZBTFVFUyAoJ3sid2VhdGhl ciI6ICJzdW5ueSIsICJ0ZW1wZXJhdHVyZSI6ICI3MkYifScpOworCistLSBEaWZmZXJlbnQgYmVo YXZpb3JzIHdoZW4gYWNjZXNzaW5nIFswXSBvbiBhIG5vbi1hcnJheSB2YWx1ZToKK1NFTEVDVCBk YXRhWzBdIEZST00gdGVzdF90YWJsZTsgICAgICAgICAgICAgICAgIC0tIFNpbXBsaWZpZWQgYWNj ZXNzb3IgKGxheCBtb2RlLCBpZiBkb3RzIHByZXNlbnQgZWxzZXdoZXJlKQorLS0gUmVzdWx0OiB7 IndlYXRoZXIiOiAic3VubnkiLCAidGVtcGVyYXR1cmUiOiAiNzJGIn0gIChvYmplY3Qgd3JhcHBl ZCBhcyBhcnJheSwgWzBdIHJldHVybnMgZW50aXJlIG9iamVjdCkKKworU0VMRUNUIGRhdGFbMF0g RlJPTSB0ZXN0X3RhYmxlOyAgICAgICAgICAgICAgICAgLS0gUHJlLXN0YW5kYXJkIHN1YnNjcmlw dGluZyAoc3RyaWN0IG1vZGUsIG5vIGRvdHMpCistLSBSZXN1bHQ6IE5VTEwgIChubyB3cmFwcGlu ZywgZGlyZWN0IGFycmF5IGFjY2VzcyBvbiBvYmplY3QgZmFpbHMpCisKK1NFTEVDVCBkYXRhLT4w IEZST00gdGVzdF90YWJsZTsgICAgICAgICAgICAgICAgIC0tIEFycm93IG9wZXJhdG9yIChzdHJp Y3QgbW9kZSkKKy0tIFJlc3VsdDogTlVMTCAgKG5vIHdyYXBwaW5nLCBkaXJlY3QgYXJyYXkgYWNj ZXNzIG9uIG9iamVjdCBmYWlscykKKzwvcHJvZ3JhbWxpc3Rpbmc+CisKKyAgICBJbiBsYXggbW9k ZSAoc2ltcGxpZmllZCBhY2Nlc3NvciksIHdoZW4gYW4gYXJyYXkgb3BlcmF0aW9uIGlzIHBlcmZv cm1lZCBvbiBhIG5vbi1hcnJheSB2YWx1ZSwKKyAgICB0aGUgdmFsdWUgaXMgZmlyc3Qgd3JhcHBl ZCBpbiBhbiBhcnJheSwgdGhlbiB0aGUgb3BlcmF0aW9uIHByb2NlZWRzLiBJbiBzdHJpY3QgbW9k ZSAKKyAgICAocHJlLXN0YW5kYXJkIG1ldGhvZHMpLCB0aGUgb3BlcmF0aW9uIGZhaWxzIGFuZCBy ZXR1cm5zIE5VTEwuCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIDxlbXBoYXNpcz5XaGVu IHRvIFVzZSBFYWNoIE1ldGhvZDo8L2VtcGhhc2lzPgorICAgIDxpdGVtaXplZGxpc3Q+CisgICAg IDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgIFVzZSA8ZW1waGFzaXM+U1FMOjIwMjMg c2ltcGxpZmllZCBhY2Nlc3NvcjwvZW1waGFzaXM+IGZvciBzdGFuZGFyZCBjb21wbGlhbmNlIGFu ZCB3aGVuIHlvdSB3YW50IGxheCBtb2RlIGFuZCBjb25kaXRpb25hbCBhcnJheSB3cmFwcGVyCisg ICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxw YXJhPgorICAgICAgIFVzZSA8ZW1waGFzaXM+cHJlLXN0YW5kYXJkIHN1YnNjcmlwdGluZzwvZW1w aGFzaXM+IGZvciB3cml0ZSBvcGVyYXRpb25zIG9yIHdoZW4geW91IG5lZWQgZGlyZWN0IGZpZWxk IGFjY2VzcyB3aXRob3V0IGFycmF5IHByb2Nlc3NpbmcKKyAgICAgIDwvcGFyYT4KKyAgICAgPC9s aXN0aXRlbT4KKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAgVXNlIDxlbXBo YXNpcz5hcnJvdyBvcGVyYXRvcnM8L2VtcGhhc2lzPiB3aGVuIHlvdSBuZWVkIHRleHQgb3V0cHV0 ICg8bGl0ZXJhbD4tPj48L2xpdGVyYWw+KSBvciB3aGVuIHdvcmtpbmcgd2l0aCBib3RoIDxsaXRl cmFsPmpzb248L2xpdGVyYWw+IGFuZCA8bGl0ZXJhbD5qc29uYjwvbGl0ZXJhbD4gdHlwZXMKKyAg ICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICA8L2l0ZW1pemVkbGlzdD4KKyAgIDwv cGFyYT4KKyAgPC9zZWN0Mz4KKworICA8c2VjdDMgaWQ9Impzb25iLWFjY2Vzc29yLWJlc3QtcHJh Y3RpY2VzIj4KKyAgIDx0aXRsZT5CZXN0IFByYWN0aWNlczogQXZvaWQgTWl4aW5nIEFjY2VzcyBN ZXRob2RzPC90aXRsZT4KKyAgIDxwYXJhPgorICAgIDxlbXBoYXNpcz5JbXBvcnRhbnQ6PC9lbXBo YXNpcz4gRG8gbm90IG1peCBTUUw6MjAyMyBzaW1wbGlmaWVkIGFjY2Vzc29yIHN5bnRheCAKKyAg ICB3aXRoIHByZS1zdGFuZGFyZCBzdWJzY3JpcHRpbmcgc3ludGF4IGluIHRoZSBzYW1lIGFjY2Vz c29yIGNoYWluLiBUaGVzZSAKKyAgICBtZXRob2RzIGhhdmUgc3VidGx5IGRpZmZlcmVudCBzZW1h bnRpY3MgYW5kIGFyZSBub3QgaW50ZXJjaGFuZ2VhYmxlIGFsaWFzZXMuCisgICAgTWl4aW5nIHRo ZW0gY2FuIGxlYWQgdG8gY29uZnVzaW9uIGFuZCBjb2RlIHRoYXQgaXMgZGlmZmljdWx0IHRvIHVu ZGVyc3RhbmQuCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIDxlbXBoYXNpcz5SZWNvbW1l bmRlZCAtIENvbnNpc3RlbnQgc2ltcGxpZmllZCBhY2Nlc3Nvcjo8L2VtcGhhc2lzPgorPHByb2dy YW1saXN0aW5nPgorLS0gQWxsIHBhcnRzIHVzZSBzaW1wbGlmaWVkIGFjY2Vzc29yIChzdGFuZGFy ZCBiZWhhdmlvcikKK1NFTEVDVCBkYXRhLmxvY2F0aW9uLmNvb3JkaW5hdGVzLmxhdGl0dWRlIEZS T00gdGFibGU7ICAtLSBHb29kCitTRUxFQ1QgZGF0YS5yZXBlcnRvaXJlWzBdLnRpdGxlIEZST00g dGFibGU7ICAgICAgICAgICAtLSBHb29kICAKK1NFTEVDVCBkYXRhLnVzZXJzWzFdLnByb2ZpbGUu ZW1haWwgRlJPTSB0YWJsZTsgICAgICAgIC0tIEdvb2QKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICA8 L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIDxlbXBoYXNpcz5SZWNvbW1lbmRlZCAtIENvbnNpc3Rl bnQgcHJlLXN0YW5kYXJkIHN1YnNjcmlwdGluZzo8L2VtcGhhc2lzPgorPHByb2dyYW1saXN0aW5n PgorLS0gQWxsIHBhcnRzIHVzZSBwcmUtc3RhbmRhcmQgc3Vic2NyaXB0aW5nCitTRUxFQ1QgZGF0 YVsnbG9jYXRpb24nXVsnY29vcmRpbmF0ZXMnXVsnbGF0aXR1ZGUnXSBGUk9NIHRhYmxlOyAtLSBH b29kCitTRUxFQ1QgZGF0YVswXVsndGl0bGUnXSBGUk9NIHRhYmxlOyAgICAgICAgICAgICAgICAg ICAgLS0gR29vZCAod2hlbiBubyBkb3RzIHByZXNlbnQpCitTRUxFQ1QgZGF0YVsndXNlcnMnXVsx XVsncHJvZmlsZSddWydlbWFpbCddIEZST00gdGFibGU7IC0tIEdvb2QKKzwvcHJvZ3JhbWxpc3Rp bmc+CisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIDxlbXBoYXNpcz5Ob3QgcmVjb21tZW5k ZWQgLSBNaXhlZCBzeW50YXg6PC9lbXBoYXNpcz4KKzxwcm9ncmFtbGlzdGluZz4KKy0tIE1peGlu ZyBzaW1wbGlmaWVkIGFjY2Vzc29yIHdpdGggcHJlLXN0YW5kYXJkIHN1YnNjcmlwdGluZworU0VM RUNUIGRhdGEubG9jYXRpb25bJ2xhdGl0dWRlJ10gRlJPTSB0YWJsZTsgICAgICAgLS0gQXZvaWQK K1NFTEVDVCBkYXRhWydyZXBlcnRvaXJlJ11bMF0udGl0bGUgRlJPTSB0YWJsZTsgICAgLS0gQXZv aWQKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgV2hpbGUgdGhlc2UgbWl4ZWQgZm9ybXMgd29yayBh cyBkZXNpZ25lZCwgdGhleSBjYW4gYmUgdmVyeSBjb25mdXNpbmcKKyAgICBiZWNhdXNlIHRoZSBz aW1wbGlmaWVkIGFjY2Vzc29yIGNhbm5vdCBoYW5kbGUgdGV4dC1iYXNlZCBzdWJzY3JpcHRzIGxp a2UgYFsnZmllbGQnXWAuCisgICAgVGhpcyBmb3JjZXMgYSBmYWxsYmFjayB0byBwcmUtc3RhbmRh cmQgc2VtYW50aWNzIGZvciB0aG9zZSBzcGVjaWZpYyBwYXJ0cywKKyAgICBjcmVhdGluZyBhIGNo YWluIHRoYXQgc3dpdGNoZXMgYmV0d2VlbiBsYXggbW9kZSAoZm9yIGRvdCBub3RhdGlvbikgYW5k IAorICAgIHN0cmljdCBtb2RlIChmb3IgdGV4dCBzdWJzY3JpcHRzKSB3aXRoaW4gdGhlIHNhbWUg YWNjZXNzb3IgZXhwcmVzc2lvbi4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgQ2hvb3Nl IG9uZSBhcHByb2FjaCBjb25zaXN0ZW50bHkgdGhyb3VnaG91dCB5b3VyIGFjY2Vzc29yIGNoYWlu IHRvIGVuc3VyZQorICAgIHByZWRpY3RhYmxlIGFuZCBtYWludGFpbmFibGUgY29kZS4KKyAgIDwv cGFyYT4KKworICAgPHBhcmE+CisgICAgPGVtcGhhc2lzPkN1cnJlbnQgSW1wbGVtZW50YXRpb246 PC9lbXBoYXNpcz4gVGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gc3VwcG9ydHMKKyAgICBKU09O IG1lbWJlciBhY2Nlc3NvcnMgKGRvdCBub3RhdGlvbikgYW5kIEpTT04gYXJyYXkgYWNjZXNzb3Jz IChpbnRlZ2VyIHN1YnNjcmlwdHMpCisgICAgYXMgZGVmaW5lZCBpbiB0aGUgU1FMOjIwMjMgc2lt cGxpZmllZCBhY2Nlc3NvciBzcGVjaWZpY2F0aW9uLgorICAgIEFkdmFuY2VkIGZlYXR1cmVzIGZy b20gdGhlIFNRTDoyMDIzIHNwZWNpZmljYXRpb24sIHN1Y2ggYXMgd2lsZGNhcmQgbWVtYmVyCisg ICAgYWNjZXNzb3JzIGFuZCBpdGVtIG1ldGhvZCBhY2Nlc3NvcnMsIGFyZSBub3QgeWV0IGltcGxl bWVudGVkLgorICAgPC9wYXJhPgorICA8L3NlY3QzPgorIDwvc2VjdDI+CisKICA8c2VjdDIgaWQ9 ImRhdGF0eXBlLWpzb24tdHJhbnNmb3JtcyI+CiAgIDx0aXRsZT5UcmFuc2Zvcm1zPC90aXRsZT4K IApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zcWxfZmVhdHVyZXMudHh0IGIvc3Jj L2JhY2tlbmQvY2F0YWxvZy9zcWxfZmVhdHVyZXMudHh0CmluZGV4IGViZTg1MzM3YzI4Li40NTdl OTkzMzA1ZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zcWxfZmVhdHVyZXMudHh0 CisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3FsX2ZlYXR1cmVzLnR4dApAQCAtNTY4LDggKzU2 OCw4IEBAIFQ4MzgJSlNPTl9UQUJMRTogUExBTiBERUZBVUxUIGNsYXVzZQkJCU5PCiBUODM5CUZv cm1hdHRlZCBjYXN0IG9mIGRhdGV0aW1lcyB0by9mcm9tIGNoYXJhY3RlciBzdHJpbmdzCQkJTk8J CiBUODQwCUhleCBpbnRlZ2VyIGxpdGVyYWxzIGluIFNRTC9KU09OIHBhdGggbGFuZ3VhZ2UJCQlZ RVMJCiBUODUxCVNRTC9KU09OOiBvcHRpb25hbCBrZXl3b3JkcyBmb3IgZGVmYXVsdCBzeW50YXgJ CQlZRVMJCi1UODYwCVNRTC9KU09OIHNpbXBsaWZpZWQgYWNjZXNzb3I6IGNvbHVtbiByZWZlcmVu Y2Ugb25seQkJCU5PCQotVDg2MQlTUUwvSlNPTiBzaW1wbGlmaWVkIGFjY2Vzc29yOiBjYXNlLXNl bnNpdGl2ZSBKU09OIG1lbWJlciBhY2Nlc3NvcgkJCU5PCQorVDg2MAlTUUwvSlNPTiBzaW1wbGlm aWVkIGFjY2Vzc29yOiBjb2x1bW4gcmVmZXJlbmNlIG9ubHkJCQlZRVMJCitUODYxCVNRTC9KU09O IHNpbXBsaWZpZWQgYWNjZXNzb3I6IGNhc2Utc2Vuc2l0aXZlIEpTT04gbWVtYmVyIGFjY2Vzc29y CQkJWUVTCQogVDg2MglTUUwvSlNPTiBzaW1wbGlmaWVkIGFjY2Vzc29yOiB3aWxkY2FyZCBtZW1i ZXIgYWNjZXNzb3IJCQlOTwkKIFQ4NjMJU1FML0pTT04gc2ltcGxpZmllZCBhY2Nlc3Nvcjogc2lu Z2xlLXF1b3RlZCBzdHJpbmcgbGl0ZXJhbCBhcyBtZW1iZXIgYWNjZXNzb3IJCQlOTwkKIFQ4NjQJ U1FML0pTT04gc2ltcGxpZmllZCBhY2Nlc3NvcgkJCU5PCQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY0V4cHIuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMK aW5kZXggZjE1Njk4NzliNTIuLjM4NWM4ZDBjZWZlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9l eGVjdXRvci9leGVjRXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMK QEAgLTMzMjAsNTAgKzMzMjAsNTkgQEAgRXhlY0luaXRTdWJzY3JpcHRpbmdSZWYoRXhwckV2YWxT dGVwICpzY3JhdGNoLCBTdWJzY3JpcHRpbmdSZWYgKnNic3JlZiwKIAkJCQkJCQkJICAgc3RhdGUt PnN0ZXBzX2xlbiAtIDEpOwogCX0KIAotCS8qIEV2YWx1YXRlIHVwcGVyIHN1YnNjcmlwdHMgKi8K LQlpID0gMDsKLQlmb3JlYWNoKGxjLCBzYnNyZWYtPnJlZnVwcGVyaW5kZXhwcikKKwkvKiBFdmFs dWF0ZSB1cHBlciBzdWJzY3JpcHRzLCB1bmxlc3MgcmVmanNvbmJwYXRoIGlzIHVzZWQgZm9yIGV4 ZWN1dGlvbiAqLworCWlmICghc2JzcmVmLT5yZWZqc29uYnBhdGgpCiAJewotCQlFeHByCSAgICpl ID0gKEV4cHIgKikgbGZpcnN0KGxjKTsKLQotCQkvKiBXaGVuIHNsaWNpbmcsIGluZGl2aWR1YWwg c3Vic2NyaXB0IGJvdW5kcyBjYW4gYmUgb21pdHRlZCAqLwotCQlpZiAoIWUpCi0JCXsKLQkJCXNi c3JlZnN0YXRlLT51cHBlcnByb3ZpZGVkW2ldID0gZmFsc2U7Ci0JCQlzYnNyZWZzdGF0ZS0+dXBw ZXJpbmRleG51bGxbaV0gPSB0cnVlOwotCQl9Ci0JCWVsc2UKKwkJaSA9IDA7CisJCWZvcmVhY2go bGMsIHNic3JlZi0+cmVmdXBwZXJpbmRleHByKQogCQl7Ci0JCQlzYnNyZWZzdGF0ZS0+dXBwZXJw cm92aWRlZFtpXSA9IHRydWU7Ci0JCQkvKiBFYWNoIHN1YnNjcmlwdCBpcyBldmFsdWF0ZWQgaW50 byBhcHByb3ByaWF0ZSBhcnJheSBlbnRyeSAqLwotCQkJRXhlY0luaXRFeHByUmVjKGUsIHN0YXRl LAotCQkJCQkJCSZzYnNyZWZzdGF0ZS0+dXBwZXJpbmRleFtpXSwKLQkJCQkJCQkmc2JzcmVmc3Rh dGUtPnVwcGVyaW5kZXhudWxsW2ldKTsKKwkJCUV4cHIgKmUgPSAoRXhwciAqKSBsZmlyc3QobGMp OworCisJCQkvKiBXaGVuIHNsaWNpbmcsIGluZGl2aWR1YWwgc3Vic2NyaXB0IGJvdW5kcyBjYW4g YmUgb21pdHRlZCAqLworCQkJaWYgKCFlKQorCQkJeworCQkJCXNic3JlZnN0YXRlLT51cHBlcnBy b3ZpZGVkW2ldID0gZmFsc2U7CisJCQkJc2JzcmVmc3RhdGUtPnVwcGVyaW5kZXhudWxsW2ldID0g dHJ1ZTsKKwkJCX0KKwkJCWVsc2UKKwkJCXsKKwkJCQlzYnNyZWZzdGF0ZS0+dXBwZXJwcm92aWRl ZFtpXSA9IHRydWU7CisJCQkJLyogRWFjaCBzdWJzY3JpcHQgaXMgZXZhbHVhdGVkIGludG8gYXBw cm9wcmlhdGUgYXJyYXkgZW50cnkgKi8KKwkJCQlFeGVjSW5pdEV4cHJSZWMoZSwgc3RhdGUsCisJ CQkJCQkJCSZzYnNyZWZzdGF0ZS0+dXBwZXJpbmRleFtpXSwKKwkJCQkJCQkJJnNic3JlZnN0YXRl LT51cHBlcmluZGV4bnVsbFtpXSk7CisJCQl9CisJCQlpKys7CiAJCX0KLQkJaSsrOwogCX0KIAot CS8qIEV2YWx1YXRlIGxvd2VyIHN1YnNjcmlwdHMgc2ltaWxhcmx5ICovCi0JaSA9IDA7Ci0JZm9y ZWFjaChsYywgc2JzcmVmLT5yZWZsb3dlcmluZGV4cHIpCisJLyoKKwkgKiBFdmFsdWF0ZSBsb3dl ciBzdWJzY3JpcHRzIHNpbWlsYXJseSwgdW5sZXNzIHJlZmpzb25icGF0aCBpcyB1c2VkIGZvcgor CSAqIGV4ZWN1dGlvbgorCSAqLworCWlmICghc2JzcmVmLT5yZWZqc29uYnBhdGgpCiAJewotCQlF eHByCSAgICplID0gKEV4cHIgKikgbGZpcnN0KGxjKTsKLQotCQkvKiBXaGVuIHNsaWNpbmcsIGlu ZGl2aWR1YWwgc3Vic2NyaXB0IGJvdW5kcyBjYW4gYmUgb21pdHRlZCAqLwotCQlpZiAoIWUpCi0J CXsKLQkJCXNic3JlZnN0YXRlLT5sb3dlcnByb3ZpZGVkW2ldID0gZmFsc2U7Ci0JCQlzYnNyZWZz dGF0ZS0+bG93ZXJpbmRleG51bGxbaV0gPSB0cnVlOwotCQl9Ci0JCWVsc2UKKwkJaSA9IDA7CisJ CWZvcmVhY2gobGMsIHNic3JlZi0+cmVmbG93ZXJpbmRleHByKQogCQl7Ci0JCQlzYnNyZWZzdGF0 ZS0+bG93ZXJwcm92aWRlZFtpXSA9IHRydWU7Ci0JCQkvKiBFYWNoIHN1YnNjcmlwdCBpcyBldmFs dWF0ZWQgaW50byBhcHByb3ByaWF0ZSBhcnJheSBlbnRyeSAqLwotCQkJRXhlY0luaXRFeHByUmVj KGUsIHN0YXRlLAotCQkJCQkJCSZzYnNyZWZzdGF0ZS0+bG93ZXJpbmRleFtpXSwKLQkJCQkJCQkm c2JzcmVmc3RhdGUtPmxvd2VyaW5kZXhudWxsW2ldKTsKKwkJCUV4cHIJICAgKmUgPSAoRXhwciAq KSBsZmlyc3QobGMpOworCisJCQkvKiBXaGVuIHNsaWNpbmcsIGluZGl2aWR1YWwgc3Vic2NyaXB0 IGJvdW5kcyBjYW4gYmUgb21pdHRlZCAqLworCQkJaWYgKCFlKQorCQkJeworCQkJCXNic3JlZnN0 YXRlLT5sb3dlcnByb3ZpZGVkW2ldID0gZmFsc2U7CisJCQkJc2JzcmVmc3RhdGUtPmxvd2VyaW5k ZXhudWxsW2ldID0gdHJ1ZTsKKwkJCX0KKwkJCWVsc2UKKwkJCXsKKwkJCQlzYnNyZWZzdGF0ZS0+ bG93ZXJwcm92aWRlZFtpXSA9IHRydWU7CisJCQkJLyogRWFjaCBzdWJzY3JpcHQgaXMgZXZhbHVh dGVkIGludG8gYXBwcm9wcmlhdGUgYXJyYXkgZW50cnkgKi8KKwkJCQlFeGVjSW5pdEV4cHJSZWMo ZSwgc3RhdGUsCisJCQkJCQkJCSZzYnNyZWZzdGF0ZS0+bG93ZXJpbmRleFtpXSwKKwkJCQkJCQkJ JnNic3JlZnN0YXRlLT5sb3dlcmluZGV4bnVsbFtpXSk7CisJCQl9CisJCQlpKys7CiAJCX0KLQkJ aSsrOwogCX0KIAogCS8qIFNCU1JFRl9TVUJTQ1JJUFRTIGNoZWNrcyBhbmQgY29udmVydHMgYWxs IHRoZSBzdWJzY3JpcHRzIGF0IG9uY2UgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL25vZGVz L25vZGVGdW5jcy5jIGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKaW5kZXggN2JjODIz NTA3ZjEuLmQxYmQ1NzVkOWJkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVu Y3MuYworKysgYi9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYwpAQCAtMjg0LDYgKzI4NCwx MyBAQCBleHByVHlwZShjb25zdCBOb2RlICpleHByKQogCQljYXNlIFRfUGxhY2VIb2xkZXJWYXI6 CiAJCQl0eXBlID0gZXhwclR5cGUoKE5vZGUgKikgKChjb25zdCBQbGFjZUhvbGRlclZhciAqKSBl eHByKS0+cGhleHByKTsKIAkJCWJyZWFrOworCQljYXNlIFRfRmllbGRBY2Nlc3NvckV4cHI6CisJ CQkvKgorCQkJICogRmllbGRBY2Nlc3NvckV4cHIgaXMgbm90IGV2YWx1YWJsZS4gVHJlYXQgaXQg YXMgVEVYVCBmb3IgY29sbGF0aW9uLAorCQkJICogZGVwYXJzaW5nLCBhbmQgc2ltaWxhciBwdXJw b3Nlcywgc2luY2UgaXQgcmVwcmVzZW50cyBhIEpTT04gZmllbGQgbmFtZS4KKwkJCSAqLworCQkJ dHlwZSA9IFRFWFRPSUQ7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1 bnJlY29nbml6ZWQgbm9kZSB0eXBlOiAlZCIsIChpbnQpIG5vZGVUYWcoZXhwcikpOwogCQkJdHlw ZSA9IEludmFsaWRPaWQ7CS8qIGtlZXAgY29tcGlsZXIgcXVpZXQgKi8KQEAgLTExNDYsNiArMTE1 Myw5IEBAIGV4cHJTZXRDb2xsYXRpb24oTm9kZSAqZXhwciwgT2lkIGNvbGxhdGlvbikKIAkJY2Fz ZSBUX01lcmdlU3VwcG9ydEZ1bmM6CiAJCQkoKE1lcmdlU3VwcG9ydEZ1bmMgKikgZXhwciktPm1z ZmNvbGxpZCA9IGNvbGxhdGlvbjsKIAkJCWJyZWFrOworCQljYXNlIFRfRmllbGRBY2Nlc3NvckV4 cHI6CisJCQkoKEZpZWxkQWNjZXNzb3JFeHByICopIGV4cHIpLT5mYWVjb2xsaWQgPSBjb2xsYXRp b247CisJCQlicmVhazsKIAkJY2FzZSBUX1N1YnNjcmlwdGluZ1JlZjoKIAkJCSgoU3Vic2NyaXB0 aW5nUmVmICopIGV4cHIpLT5yZWZjb2xsaWQgPSBjb2xsYXRpb247CiAJCQlicmVhazsKQEAgLTIx MjksNiArMjEzOSw3IEBAIGV4cHJlc3Npb25fdHJlZV93YWxrZXJfaW1wbChOb2RlICpub2RlLAog CQljYXNlIFRfU29ydEdyb3VwQ2xhdXNlOgogCQljYXNlIFRfQ1RFU2VhcmNoQ2xhdXNlOgogCQlj YXNlIFRfTWVyZ2VTdXBwb3J0RnVuYzoKKwkJY2FzZSBUX0ZpZWxkQWNjZXNzb3JFeHByOgogCQkJ LyogcHJpbWl0aXZlIG5vZGUgdHlwZXMgd2l0aCBubyBleHByZXNzaW9uIHN1Ym5vZGVzICovCiAJ CQlicmVhazsKIAkJY2FzZSBUX1dpdGhDaGVja09wdGlvbjoKQEAgLTMwMDgsNiArMzAxOSw3IEBA IGV4cHJlc3Npb25fdHJlZV9tdXRhdG9yX2ltcGwoTm9kZSAqbm9kZSwKIAkJY2FzZSBUX1NvcnRH cm91cENsYXVzZToKIAkJY2FzZSBUX0NURVNlYXJjaENsYXVzZToKIAkJY2FzZSBUX01lcmdlU3Vw cG9ydEZ1bmM6CisJCWNhc2UgVF9GaWVsZEFjY2Vzc29yRXhwcjoKIAkJCXJldHVybiBjb3B5T2Jq ZWN0KG5vZGUpOwogCQljYXNlIFRfV2l0aENoZWNrT3B0aW9uOgogCQkJewpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25ic3Vicy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L2pzb25ic3Vicy5jCmluZGV4IDg4NTJjMjdhMTk4Li5jY2M1ZjNjNmU5NCAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25ic3Vicy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9qc29uYnN1YnMuYwpAQCAtMTUsMjEgKzE1LDMwIEBACiAjaW5jbHVkZSAicG9zdGdyZXMu aCIKIAogI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWNFeHByLmgiCisjaW5jbHVkZSAibm9kZXMvbWFr ZWZ1bmNzLmgiCiAjaW5jbHVkZSAibm9kZXMvbm9kZUZ1bmNzLmgiCiAjaW5jbHVkZSAibm9kZXMv c3Vic2NyaXB0aW5nLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX2NvZXJjZS5oIgogI2luY2x1 ZGUgInBhcnNlci9wYXJzZV9leHByLmgiCiAjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKICNp bmNsdWRlICJ1dGlscy9qc29uYi5oIgorI2luY2x1ZGUgInV0aWxzL2pzb25wYXRoLmgiCiAKIAot LyogU3Vic2NyaXB0aW5nUmVmU3RhdGUud29ya3NwYWNlIGZvciBqc29uYiBzdWJzY3JpcHRpbmcg ZXhlY3V0aW9uICovCisvKgorICogU3Vic2NyaXB0aW5nUmVmU3RhdGUud29ya3NwYWNlIGZvciBn ZW5lcmljIGpzb25iIHN1YnNjcmlwdGluZyBleGVjdXRpb24uCisgKgorICogU3RvcmVzIHN0YXRl IGZvciBib3RoIGpzb25iIHNpbXBsZSBzdWJzY3JpcHRpbmcgYW5kIGRvdCBub3RhdGlvbiBhY2Nl c3MuCisgKiBEb3Qgbm90YXRpb24gYWRkaXRpb25hbGx5IHVzZXMgYGpzb25wYXRoYCBmb3IgSnNv blBhdGggZXZhbHVhdGlvbi4KKyAqLwogdHlwZWRlZiBzdHJ1Y3QgSnNvbmJTdWJXb3Jrc3BhY2UK IHsKIAlib29sCQlleHBlY3RBcnJheTsJLyoganNvbmIgcm9vdCBpcyBleHBlY3RlZCB0byBiZSBh biBhcnJheSAqLwogCU9pZAkJICAgKmluZGV4T2lkOwkJLyogT0lEIG9mIGNvZXJjZWQgc3Vic2Ny aXB0IGV4cHJlc3Npb24sIGNvdWxkCiAJCQkJCQkJCSAqIGJlIG9ubHkgaW50ZWdlciBvciB0ZXh0 ICovCiAJRGF0dW0JICAgKmluZGV4OwkJCS8qIFN1YnNjcmlwdCB2YWx1ZXMgaW4gRGF0dW0gZm9y bWF0ICovCisJSnNvblBhdGggICAqanNvbnBhdGg7CQkvKiBKc29uUGF0aCBmb3IgZG90IG5vdGF0 aW9uIGV4ZWN1dGlvbiB2aWEKKwkJCQkJCQkJICogSnNvblBhdGhRdWVyeSgpICovCiB9IEpzb25i U3ViV29ya3NwYWNlOwogCiBzdGF0aWMgTm9kZSAqCkBAIC05Niw2ICsxMDUsMjM0IEBAIGNvZXJj ZV9qc29ucGF0aF9zdWJzY3JpcHRfdG9faW50NF9vcl90ZXh0KFBhcnNlU3RhdGUgKnBzdGF0ZSwg Tm9kZSAqc3ViRXhwcikKIAlyZXR1cm4gc3ViRXhwcjsKIH0KIAorLyoKKyAqIER1cmluZyB0cmFu c2Zvcm1hdGlvbiwgZGV0ZXJtaW5lIHdoZXRoZXIgdG8gYnVpbGQgYSBKc29uUGF0aAorICogZm9y IEpzb25QYXRoUXVlcnkoKSBleGVjdXRpb24uCisgKgorICogSnNvblBhdGggaXMgbmVlZGVkIGlm IHRoZSBpbmRpcmVjdGlvbiBsaXN0IGluY2x1ZGVzOgorICogLSBTdHJpbmctYmFzZWQgYWNjZXNz IChkb3Qgbm90YXRpb24pCisgKiAtIFNsaWNlLWJhc2VkIHN1YnNjcmlwdGluZyAod2hlbiBpc1Ns aWNlIGlzIHRydWUpCisgKgorICogT3RoZXJ3aXNlLCBzaW1wbGUganNvbmIgc3Vic2NyaXB0aW5n IGlzIGVub3VnaC4KKyAqLworc3RhdGljIGJvb2wKK2pzb25iX2NoZWNrX2pzb25wYXRoX25lZWRl ZChMaXN0ICppbmRpcmVjdGlvbikKK3sKKwlMaXN0Q2VsbCAgICpsYzsKKworCWZvcmVhY2gobGMs IGluZGlyZWN0aW9uKQorCXsKKwkJTm9kZQkgICAqYWNjZXNzb3IgPSBsZmlyc3QobGMpOworCisJ CWlmIChJc0EoYWNjZXNzb3IsIFN0cmluZykpCisJCQlyZXR1cm4gdHJ1ZTsKKwkJZWxzZQorCQkJ QXNzZXJ0KElzQShhY2Nlc3NvciwgQV9JbmRpY2VzKSk7CisJfQorCisJcmV0dXJuIGZhbHNlOwor fQorCisvKgorICogSGVscGVyIGZ1bmN0aW9ucyBmb3IgY29uc3RydWN0aW5nIEpzb25QYXRoIGV4 cHJlc3Npb25zLgorICoKKyAqIFRoZSBtYWtlX2pzb25wYXRoX2l0ZW1fKiBmdW5jdGlvbnMgY3Jl YXRlIHZhcmlvdXMgdHlwZXMgb2YgSnNvblBhdGhQYXJzZUl0ZW0KKyAqIG5vZGVzLCB3aGljaCBh cmUgdXNlZCB0byBidWlsZCBKc29uUGF0aCBleHByZXNzaW9ucyBmb3IganNvbmIgc2ltcGxpZmll ZAorICogYWNjZXNzb3IuCisgKi8KKworc3RhdGljIEpzb25QYXRoUGFyc2VJdGVtICoKK21ha2Vf anNvbnBhdGhfaXRlbShKc29uUGF0aEl0ZW1UeXBlIHR5cGUpCit7CisJSnNvblBhdGhQYXJzZUl0 ZW0gKnYgPSBwYWxsb2Moc2l6ZW9mKCp2KSk7CisKKwl2LT50eXBlID0gdHlwZTsKKwl2LT5uZXh0 ID0gTlVMTDsKKworCXJldHVybiB2OworfQorCisvKgorICogQ29udmVydCBhIGNvbnN0YW50IGlu dGVnZXIgZXhwcmVzc2lvbiBpbnRvIGEgSnNvblBhdGhQYXJzZUl0ZW0uCisgKgorICogVGhlIGlu cHV0IGV4cHJlc3Npb24gbXVzdCBiZSBhIG5vbi1udWxsIGNvbnN0YW50IG9mIHR5cGUgSU5UNC4g UmV0dXJucyBOVUxMIG90aGVyd2lzZS4KKyAqIFRoaXMgZnVuY3Rpb24gY29uc3RydWN0cyBhIGpw aU51bWVyaWMgaXRlbSBmb3IgdXNlIGluIEpzb25QYXRoIGFuZCBhcHBlbmRzIGEgbWF0Y2hpbmcK KyAqIENvbnN0KElOVDQpIG5vZGUgdG8gdGhlIGdpdmVuIGV4cHJlc3Npb24gbGlzdCBmb3IgdXNl IGluIEVYUExBSU4sIHZpZXdzLCBldGMuCisgKgorICogUGFyYW1ldGVyczoKKyAqIC0gcHN0YXRl OiBwYXJzZSBzdGF0ZSBjb250ZXh0CisgKiAtIGV4cHI6IGlucHV0IGV4cHJlc3Npb24gbm9kZQor ICogLSBleHByczogbGlzdCBvZiBleHByZXNzaW9uIG5vZGVzICh1cGRhdGVkIGluIHBsYWNlKQor ICovCitzdGF0aWMgSnNvblBhdGhQYXJzZUl0ZW0gKgorbWFrZV9qc29ucGF0aF9pdGVtX2V4cHIo UGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpleHByLCBMaXN0ICoqZXhwcnMpCit7CisJQ29uc3QJ ICAgKmNuc3Q7CisKKwlleHByID0gdHJhbnNmb3JtRXhwcihwc3RhdGUsIGV4cHIsIHBzdGF0ZS0+ cF9leHByX2tpbmQpOworCisJaWYgKElzQShleHByLCBDb25zdCkpCisJeworCQljbnN0ID0gKENv bnN0ICopIGV4cHI7CisJCWlmIChjbnN0LT5jb25zdHR5cGUgPT0gSU5UNE9JRCAmJiAhKGNuc3Qt PmNvbnN0aXNudWxsKSkKKwkJeworCQkJSnNvblBhdGhQYXJzZUl0ZW0gKmpwaSA9IG1ha2VfanNv bnBhdGhfaXRlbShqcGlOdW1lcmljKTsKKworCQkJanBpLT52YWx1ZS5udW1lcmljID0KKwkJCQlE YXR1bUdldE51bWVyaWMoRGlyZWN0RnVuY3Rpb25DYWxsMShpbnQ0X251bWVyaWMsIEludDMyR2V0 RGF0dW0oY25zdC0+Y29uc3R2YWx1ZSkpKTsKKworCQkJKmV4cHJzID0gbGFwcGVuZCgqZXhwcnMs IG1ha2VDb25zdChJTlQ0T0lELCAtMSwgSW52YWxpZE9pZCwgNCwKKwkJCQkJCQkJCQkJICAgSW50 MzJHZXREYXR1bShjbnN0LT5jb25zdHZhbHVlKSwgZmFsc2UsIHRydWUpKTsKKworCQkJcmV0dXJu IGpwaTsKKwkJfQorCX0KKworCXJldHVybiBOVUxMOworfQorCisvKgorICogQ29uc3RydWN0cyBh IEpzb25QYXRoIGV4cHJlc3Npb24gZnJvbSBhIGxpc3Qgb2YgaW5kaXJlY3Rpb25zLgorICogVGhp cyBmdW5jdGlvbiBpcyB1c2VkIHdoZW4ganNvbmIgc3Vic2NyaXB0aW5nIGludm9sdmVzIGRvdCBu b3RhdGlvbiwKKyAqIHJlcXVpcmluZyBKc29uUGF0aC1iYXNlZCBldmFsdWF0aW9uLgorICoKKyAq IFRoZSBmdW5jdGlvbiBtb2RpZmllcyB0aGUgaW5kaXJlY3Rpb24gbGlzdCBpbiBwbGFjZSwgcmVt b3ZpbmcgcHJvY2Vzc2VkCisgKiBlbGVtZW50cyBhcyBpdCBjb252ZXJ0cyB0aGVtIGludG8gSnNv blBhdGggY29tcG9uZW50cywgYXMgZm9sbG93czoKKyAqIC0gU3RyaW5nIGtleXMgKGRvdCBub3Rh dGlvbikgLT4ganBpS2V5IGl0ZW1zLgorICogLSBBcnJheSBpbmRpY2VzIC0+IGpwaUluZGV4QXJy YXkgaXRlbXMuCisgKgorICogSW4gYWRkaXRpb24gdG8gYnVpbGRpbmcgdGhlIEpzb25QYXRoIGV4 cHJlc3Npb24sIHRoaXMgZnVuY3Rpb24gcG9wdWxhdGVzCisgKiB0aGUgZm9sbG93aW5nIGZpZWxk cyBvZiB0aGUgZ2l2ZW4gU3Vic2NyaXB0aW5nUmVmOgorICogLSByZWZqc29uYnBhdGg6IHRoZSBn ZW5lcmF0ZWQgSnNvblBhdGgKKyAqIC0gcmVmdXBwZXJpbmRleHByOiB1cHBlciBpbmRleCBleHBy ZXNzaW9ucyAob2JqZWN0IGtleXMgb3IgYXJyYXkgaW5kZXhlcykKKyAqIC0gcmVmbG93ZXJpbmRl eHByOiBsb3dlciBpbmRleCBleHByZXNzaW9ucywgcmVtYWlucyBOSUwgYXMgc2xpY2VzIGFyZSBu b3Qgc3VwcG9ydGVkLgorICoKKyAqIFBhcmFtZXRlcnM6CisgKiAtIHBzdGF0ZTogUGFyc2Ugc3Rh dGUgY29udGV4dC4KKyAqIC0gaW5kaXJlY3Rpb246IExpc3Qgb2Ygc3Vic2NyaXB0aW5nIGV4cHJl c3Npb25zIChtb2RpZmllZCBpbi1wbGFjZSkuCisgKiAtIHNic3JlZjogU3Vic2NyaXB0aW5nUmVm IG5vZGUgdG8gdXBkYXRlCisgKi8KK3N0YXRpYyB2b2lkCitqc29uYl9zdWJzY3JpcHRfbWFrZV9q c29ucGF0aChQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKippbmRpcmVjdGlvbiwgU3Vic2NyaXB0 aW5nUmVmICpzYnNyZWYpCit7CisJSnNvblBhdGhQYXJzZVJlc3VsdCBqcHJlczsKKwlKc29uUGF0 aFBhcnNlSXRlbSAqcGF0aCA9IG1ha2VfanNvbnBhdGhfaXRlbShqcGlSb290KTsKKwlMaXN0Q2Vs bCAgICpsYzsKKwlEYXR1bQkJanNwOworCWludAkJCXBhdGhsZW4gPSAwOworCisJc2JzcmVmLT5y ZWZ1cHBlcmluZGV4cHIgPSBOSUw7CisJc2JzcmVmLT5yZWZsb3dlcmluZGV4cHIgPSBOSUw7CisJ c2JzcmVmLT5yZWZqc29uYnBhdGggPSBOVUxMOworCisJanByZXMuZXhwciA9IHBhdGg7CisJanBy ZXMubGF4ID0gdHJ1ZTsKKworCWZvcmVhY2gobGMsICppbmRpcmVjdGlvbikKKwl7CisJCU5vZGUJ ICAgKmFjY2Vzc29yID0gbGZpcnN0KGxjKTsKKwkJSnNvblBhdGhQYXJzZUl0ZW0gKmpwaTsKKwor CQlpZiAoSXNBKGFjY2Vzc29yLCBTdHJpbmcpKQorCQl7CisJCQljaGFyCSAgICpmaWVsZCA9IHN0 clZhbChhY2Nlc3Nvcik7CisJCQlGaWVsZEFjY2Vzc29yRXhwciAqYWNjZXNzb3JfZXhwcjsKKwor CQkJanBpID0gbWFrZV9qc29ucGF0aF9pdGVtKGpwaUtleSk7CisJCQlqcGktPnZhbHVlLnN0cmlu Zy52YWwgPSBmaWVsZDsKKwkJCWpwaS0+dmFsdWUuc3RyaW5nLmxlbiA9IHN0cmxlbihmaWVsZCk7 CisKKwkJCWFjY2Vzc29yX2V4cHIgPSBtYWtlTm9kZShGaWVsZEFjY2Vzc29yRXhwcik7CisJCQlh Y2Nlc3Nvcl9leHByLT50eXBlID0gVF9GaWVsZEFjY2Vzc29yRXhwcjsKKwkJCWFjY2Vzc29yX2V4 cHItPmZpZWxkbmFtZSA9IGZpZWxkOworCisJCQlzYnNyZWYtPnJlZnVwcGVyaW5kZXhwciA9IGxh cHBlbmQoc2JzcmVmLT5yZWZ1cHBlcmluZGV4cHIsIGFjY2Vzc29yX2V4cHIpOworCQl9CisJCWVs c2UgaWYgKElzQShhY2Nlc3NvciwgQV9JbmRpY2VzKSkKKwkJeworCQkJQV9JbmRpY2VzICAqYWkg PSBjYXN0Tm9kZShBX0luZGljZXMsIGFjY2Vzc29yKTsKKworCQkJaWYgKCFhaS0+aXNfc2xpY2Up CisJCQl7CisJCQkJSnNvblBhdGhQYXJzZUl0ZW0gKmpwaV9mcm9tID0gTlVMTDsKKworCQkJCUFz c2VydChhaS0+dWlkeCAmJiAhYWktPmxpZHgpOworCQkJCWpwaV9mcm9tID0gbWFrZV9qc29ucGF0 aF9pdGVtX2V4cHIocHN0YXRlLCBhaS0+dWlkeCwgJnNic3JlZi0+cmVmdXBwZXJpbmRleHByKTsK KwkJCQlpZiAoanBpX2Zyb20gPT0gTlVMTCkKKwkJCQl7CisJCQkJCS8qCisJCQkJCSAqIEJyZWFr IG91dCBvZiB0aGUgbG9vcCBpZiB0aGUgc3Vic2NyaXB0IGlzIG5vdCBhCisJCQkJCSAqIG5vbi1u dWxsIGludGVnZXIgY29uc3RhbnQsIHNvIHRoYXQgd2UgY2FuIGZhbGwgYmFjayB0bworCQkJCQkg KiBqc29uYiBzdWJzY3JpcHRpbmcgbG9naWMuCisJCQkJCSAqCisJCQkJCSAqIFRoaXMgaXMgbmVl ZGVkIHRvIGhhbmRsZSBjYXNlcyB3aXRoIG1peGVkIHVzYWdlIG9mIFNRTAorCQkJCQkgKiBzdGFu ZGFyZCBqc29uIHNpbXBsaWZpZWQgYWNjZXNzb3Igc3ludGF4IGFuZCBQb3N0Z3JlU1FMCisJCQkJ CSAqIGpzb25iIHN1YnNjcmlwdGluZyBzeW50YXgsIGUuZzoKKwkJCQkJICoKKwkJCQkJICogc2Vs ZWN0IChqYikuYVsnYiddLmMgZnJvbSBqc29uYl90YWJsZTsKKwkJCQkJICoKKwkJCQkJICogd2hl cmUgZG90LW5vdGF0aW9uICguYSBhbmQgLmMpIGlzIHRoZSBTUUwgc3RhbmRhcmQganNvbgorCQkJ CQkgKiBzaW1wbGlmaWVkIGFjY2Vzc29yIHN5bnRheCwgYW5kIHRoZSBbJ2InXSBzdWJzY3JpcHQg aXMKKwkJCQkJICogdGhlIFBvc3RncmVTUUwganNvbmIgc3Vic2NyaXB0aW5nIHN5bnRheCwgYmVj YXVzZSAnYicKKwkJCQkJICogaXMgbm90IGEgbm9uLW51bGwgY29uc3RhbnQgaW50ZWdlciBhbmQg Y2Fubm90IGJlIHVzZWQKKwkJCQkJICogZm9yIGpzb24gYXJyYXkgYWNjZXNzLgorCQkJCQkgKgor CQkJCQkgKiBJbiB0aGlzIGNhc2UsIHdlIGNhbm5vdCBjcmVhdGUgYSBKc29uUGF0aCBpdGVtLCBz byB3ZQorCQkJCQkgKiBicmVhayBvdXQgb2YgdGhlIGxvb3AgYW5kIGxldAorCQkJCQkgKiBqc29u Yl9zdWJzY3JpcHRfdHJhbnNmb3JtKCkgaGFuZGxlIHRoaXMgaW5kaXJlY3Rpb24gYXMKKwkJCQkJ ICogYSBQb3N0Z3JlU1FMIGpzb25iIHN1YnNjcmlwdC4KKwkJCQkJICovCisJCQkJCWJyZWFrOwor CQkJCX0KKworCQkJCWpwaSA9IG1ha2VfanNvbnBhdGhfaXRlbShqcGlJbmRleEFycmF5KTsKKwkJ CQlqcGktPnZhbHVlLmFycmF5Lm5lbGVtcyA9IDE7CisJCQkJanBpLT52YWx1ZS5hcnJheS5lbGVt cyA9IHBhbGxvYyhzaXplb2YoanBpLT52YWx1ZS5hcnJheS5lbGVtc1swXSkpOworCisJCQkJanBp LT52YWx1ZS5hcnJheS5lbGVtc1swXS5mcm9tID0ganBpX2Zyb207CisJCQkJanBpLT52YWx1ZS5h cnJheS5lbGVtc1swXS50byA9IE5VTEw7CisJCQl9CisJCQllbHNlCisJCQl7CisJCQkJTm9kZQkg ICAqZXhwciA9IGFpLT51aWR4ID8gYWktPnVpZHggOiBhaS0+bGlkeDsKKworCQkJCWVyZXBvcnQo RVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKKwkJCQkJ CSBlcnJtc2coImpzb25iIHN1YnNjcmlwdCBkb2VzIG5vdCBzdXBwb3J0IHNsaWNlcyIpLAorCQkJ CQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4cHJMb2NhdGlvbihleHByKSkpKTsKKwkJ CX0KKwkJfQorCQllbHNlCisJCXsKKwkJCS8qCisJCQkgKiBVbmV4cGVjdGVkIG5vZGUgdHlwZSBp biBpbmRpcmVjdGlvbiBsaXN0LiBUaGlzIHNob3VsZCBub3QKKwkJCSAqIGhhcHBlbiB3aXRoIGN1 cnJlbnQgZ3JhbW1hciwgYnV0IHdlIGhhbmRsZSBpdCBkZWZlbnNpdmVseSBieQorCQkJICogYnJl YWtpbmcgb3V0IG9mIHRoZSBsb29wIHJhdGhlciB0aGFuIGNyYXNoaW5nLiBJbiBjYXNlIG9mCisJ CQkgKiBmdXR1cmUgZ3JhbW1hciBjaGFuZ2VzIHRoYXQgbWlnaHQgaW50cm9kdWNlIG5ldyBub2Rl IHR5cGVzLAorCQkJICogdGhpcyBhbGxvd3MgdXMgdG8gY3JlYXRlIGEganNvbnBhdGggZnJvbSBh cyBtYW55IGluZGlyZWN0aW9uCisJCQkgKiBlbGVtZW50cyBhcyB3ZSBjYW4gYW5kIGxldCB0cmFu c2Zvcm1JbmRpcmVjdGlvbigpIGZhbGxiYWNrIHRvCisJCQkgKiBhbHRlcm5hdGl2ZSBsb2dpYyB0 byBoYW5kbGUgdGhlIHJlbWFpbmluZyBpbmRpcmVjdGlvbiBlbGVtZW50cy4KKwkJCSAqLworCQkJ QXNzZXJ0KGZhbHNlKTsJCS8qIG5vdCByZWFjaGFibGUgKi8KKwkJCWJyZWFrOworCQl9CisKKwkJ LyogYXBwZW5kIHBhdGggaXRlbSAqLworCQlwYXRoLT5uZXh0ID0ganBpOworCQlwYXRoID0ganBp OworCQlwYXRobGVuKys7CisJfQorCisJaWYgKHBhdGhsZW4gPT0gMCkKKwkJcmV0dXJuOworCisJ KmluZGlyZWN0aW9uID0gbGlzdF9kZWxldGVfZmlyc3RfbigqaW5kaXJlY3Rpb24sIHBhdGhsZW4p OworCisJanNwID0ganNvblBhdGhGcm9tUGFyc2VSZXN1bHQoJmpwcmVzLCAwLCBOVUxMKTsKKwor CXNic3JlZi0+cmVmanNvbmJwYXRoID0gKE5vZGUgKikgbWFrZUNvbnN0KEpTT05QQVRIT0lELCAt MSwgSW52YWxpZE9pZCwgLTEsIGpzcCwgZmFsc2UsIGZhbHNlKTsKK30KKwogLyoKICAqIEZpbmlz aCBwYXJzZSBhbmFseXNpcyBvZiBhIFN1YnNjcmlwdGluZ1JlZiBleHByZXNzaW9uIGZvciBhIGpz b25iLgogICoKQEAgLTExMSw5ICszNDgsMjcgQEAganNvbmJfc3Vic2NyaXB0X3RyYW5zZm9ybShT dWJzY3JpcHRpbmdSZWYgKnNic3JlZiwKIAlMaXN0CSAgICp1cHBlckluZGV4cHIgPSBOSUw7CiAJ TGlzdENlbGwgICAqaWR4OwogCisJLyogRGV0ZXJtaW5lIHRoZSByZXN1bHQgdHlwZSBvZiB0aGUg c3Vic2NyaXB0aW5nIG9wZXJhdGlvbjsgYWx3YXlzIGpzb25iICovCisJc2JzcmVmLT5yZWZyZXN0 eXBlID0gSlNPTkJPSUQ7CisJc2JzcmVmLT5yZWZ0eXBtb2QgPSAtMTsKKworCWlmIChqc29uYl9j aGVja19qc29ucGF0aF9uZWVkZWQoKmluZGlyZWN0aW9uKSkKKwl7CisJCWpzb25iX3N1YnNjcmlw dF9tYWtlX2pzb25wYXRoKHBzdGF0ZSwgaW5kaXJlY3Rpb24sIHNic3JlZik7CisJCWlmIChzYnNy ZWYtPnJlZmpzb25icGF0aCkKKwkJCXJldHVybjsKKwl9CisKIAkvKgotCSAqIFRyYW5zZm9ybSBh bmQgY29udmVydCB0aGUgc3Vic2NyaXB0IGV4cHJlc3Npb25zLiBKc29uYiBzdWJzY3JpcHRpbmcK LQkgKiBkb2VzIG5vdCBzdXBwb3J0IHNsaWNlcywgbG9vayBvbmx5IGF0IHRoZSB1cHBlciBpbmRl eC4KKwkgKiBXZSByZWFjaCBoZXJlIG9ubHkgaW4gdHdvIGNhc2VzOiAoYSkgdGhlIEpTT04gc2lt cGxpZmllZCBhY2Nlc3NvciBpcworCSAqIG5vdCBuZWVkZWQgYXQgYWxsIChmb3IgZXhhbXBsZSwg YSBwbGFpbiBhcnJheSBzdWJzY3JpcHQgbGlrZSBbMV0gb3IKKwkgKiBvYmplY3Qga2V5IGFjY2Vz cyBsaWtlIFsnYSddKSwgb3IgKGIpIGpzb25iX3N1YnNjcmlwdF9tYWtlX2pzb25wYXRoKCkKKwkg KiB3YXMgY2FsbGVkIGJ1dCBjb3VsZCBub3QgY29tcGxldGUgdGhlIEpzb25QYXRoIGNvbnN0cnVj dGlvbiAoZm9yCisJICogZXhhbXBsZSwgd2hlbiBtaXhpbmcgZG90IG5vdGF0aW9uIHdpdGggbm9u LWludGVnZXIgc3Vic2NyaXB0cyBsaWtlCisJICogKGpiKVsnYSddLmIgd2hlcmUgJ2EnIGlzIG5v dCBhIGNvbnN0YW50IGludGVnZXIpLgorCSAqCisJICogSW4gYm90aCBjYXNlcyB3ZSBmYWxsIGJh Y2sgdG8gcHJlLXN0YW5kYXJkIGpzb25iIHN1YnNjcmlwdGluZywgY29lcmNpbmcKKwkgKiBlYWNo IHN1YnNjcmlwdCB0byBhcnJheSBpbmRleCBvciBvYmplY3Qga2V5IGFzIG5lZWRlZC4KIAkgKi8K IAlmb3JlYWNoKGlkeCwgKmluZGlyZWN0aW9uKQogCXsKQEAgLTE2MCwxMCArNDE1LDYgQEAganNv bmJfc3Vic2NyaXB0X3RyYW5zZm9ybShTdWJzY3JpcHRpbmdSZWYgKnNic3JlZiwKIAlzYnNyZWYt PnJlZnVwcGVyaW5kZXhwciA9IHVwcGVySW5kZXhwcjsKIAlzYnNyZWYtPnJlZmxvd2VyaW5kZXhw ciA9IE5JTDsKIAotCS8qIERldGVybWluZSB0aGUgcmVzdWx0IHR5cGUgb2YgdGhlIHN1YnNjcmlw dGluZyBvcGVyYXRpb247IGFsd2F5cyBqc29uYiAqLwotCXNic3JlZi0+cmVmcmVzdHlwZSA9IEpT T05CT0lEOwotCXNic3JlZi0+cmVmdHlwbW9kID0gLTE7Ci0KIAkvKiBSZW1vdmUgcHJvY2Vzc2Vk IGVsZW1lbnRzICovCiAJaWYgKHVwcGVySW5kZXhwcikKIAkJKmluZGlyZWN0aW9uID0gbGlzdF9k ZWxldGVfZmlyc3RfbigqaW5kaXJlY3Rpb24sIGxpc3RfbGVuZ3RoKHVwcGVySW5kZXhwcikpOwpA QCAtMjE4LDcgKzQ2OSw3IEBAIGpzb25iX3N1YnNjcmlwdF9jaGVja19zdWJzY3JpcHRzKEV4cHJT dGF0ZSAqc3RhdGUsCiAJCQkgKiBGb3IganNvbmIgZmV0Y2ggYW5kIGFzc2lnbiBmdW5jdGlvbnMg d2UgbmVlZCB0byBwcm92aWRlIHBhdGggaW4KIAkJCSAqIHRleHQgZm9ybWF0LiBDb252ZXJ0IGlm IGl0J3Mgbm90IGFscmVhZHkgdGV4dC4KIAkJCSAqLwotCQkJaWYgKHdvcmtzcGFjZS0+aW5kZXhP aWRbaV0gPT0gSU5UNE9JRCkKKwkJCWlmICghd29ya3NwYWNlLT5qc29ucGF0aCAmJiB3b3Jrc3Bh Y2UtPmluZGV4T2lkW2ldID09IElOVDRPSUQpCiAJCQl7CiAJCQkJRGF0dW0JCWRhdHVtID0gc2Jz cmVmc3RhdGUtPnVwcGVyaW5kZXhbaV07CiAJCQkJY2hhcgkgICAqY3MgPSBEYXR1bUdldENTdHJp bmcoRGlyZWN0RnVuY3Rpb25DYWxsMShpbnQ0b3V0LCBkYXR1bSkpOwpAQCAtMjQ2LDE3ICs0OTcs MzIgQEAganNvbmJfc3Vic2NyaXB0X2ZldGNoKEV4cHJTdGF0ZSAqc3RhdGUsCiB7CiAJU3Vic2Ny aXB0aW5nUmVmU3RhdGUgKnNic3JlZnN0YXRlID0gb3AtPmQuc2JzcmVmLnN0YXRlOwogCUpzb25i U3ViV29ya3NwYWNlICp3b3Jrc3BhY2UgPSAoSnNvbmJTdWJXb3Jrc3BhY2UgKikgc2JzcmVmc3Rh dGUtPndvcmtzcGFjZTsKLQlKc29uYgkgICAqanNvbmJTb3VyY2U7CiAKIAkvKiBTaG91bGQgbm90 IGdldCBoZXJlIGlmIHNvdXJjZSBqc29uYiAob3IgYW55IHN1YnNjcmlwdCkgaXMgbnVsbCAqLwog CUFzc2VydCghKCpvcC0+cmVzbnVsbCkpOwogCi0JanNvbmJTb3VyY2UgPSBEYXR1bUdldEpzb25i UCgqb3AtPnJlc3ZhbHVlKTsKLQkqb3AtPnJlc3ZhbHVlID0ganNvbmJfZ2V0X2VsZW1lbnQoanNv bmJTb3VyY2UsCi0JCQkJCQkJCQkgIHdvcmtzcGFjZS0+aW5kZXgsCi0JCQkJCQkJCQkgIHNic3Jl ZnN0YXRlLT5udW11cHBlciwKLQkJCQkJCQkJCSAgb3AtPnJlc251bGwsCi0JCQkJCQkJCQkgIGZh bHNlKTsKKwlpZiAod29ya3NwYWNlLT5qc29ucGF0aCkKKwl7CisJCWJvb2wJCWVtcHR5ID0gZmFs c2U7CisJCWJvb2wJCWVycm9yID0gZmFsc2U7CisKKwkJKm9wLT5yZXN2YWx1ZSA9IEpzb25QYXRo UXVlcnkoKm9wLT5yZXN2YWx1ZSwgd29ya3NwYWNlLT5qc29ucGF0aCwKKwkJCQkJCQkJCSAgSlNX X0NPTkRJVElPTkFMLAorCQkJCQkJCQkJICAmZW1wdHksICZlcnJvciwgTlVMTCwKKwkJCQkJCQkJ CSAgTlVMTCk7CisKKwkJKm9wLT5yZXNudWxsID0gZW1wdHkgfHwgZXJyb3I7CisJfQorCWVsc2UK Kwl7CisJCUpzb25iCSAgICpqc29uYlNvdXJjZSA9IERhdHVtR2V0SnNvbmJQKCpvcC0+cmVzdmFs dWUpOworCisJCSpvcC0+cmVzdmFsdWUgPSBqc29uYl9nZXRfZWxlbWVudChqc29uYlNvdXJjZSwK KwkJCQkJCQkJCQkgIHdvcmtzcGFjZS0+aW5kZXgsCisJCQkJCQkJCQkJICBzYnNyZWZzdGF0ZS0+ bnVtdXBwZXIsCisJCQkJCQkJCQkJICBvcC0+cmVzbnVsbCwKKwkJCQkJCQkJCQkgIGZhbHNlKTsK Kwl9CiB9CiAKIC8qCkBAIC0zNjQsNyArNjMwLDcgQEAganNvbmJfZXhlY19zZXR1cChjb25zdCBT dWJzY3JpcHRpbmdSZWYgKnNic3JlZiwKIHsKIAlKc29uYlN1YldvcmtzcGFjZSAqd29ya3NwYWNl OwogCUxpc3RDZWxsICAgKmxjOwotCWludAkJCW51cHBlciA9IHNic3JlZi0+cmVmdXBwZXJpbmRl eHByLT5sZW5ndGg7CisJaW50CQkJbnVwcGVyID0gbGlzdF9sZW5ndGgoc2JzcmVmLT5yZWZ1cHBl cmluZGV4cHIpOwogCWNoYXIJICAgKnB0cjsKIAogCS8qIEFsbG9jYXRlIHR5cGUtc3BlY2lmaWMg d29ya3NwYWNlIHdpdGggc3BhY2UgZm9yIHBlci1zdWJzY3JpcHQgZGF0YSAqLwpAQCAtMzczLDYg KzYzOSw5IEBAIGpzb25iX2V4ZWNfc2V0dXAoY29uc3QgU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYs CiAJd29ya3NwYWNlLT5leHBlY3RBcnJheSA9IGZhbHNlOwogCXB0ciA9ICgoY2hhciAqKSB3b3Jr c3BhY2UpICsgTUFYQUxJR04oc2l6ZW9mKEpzb25iU3ViV29ya3NwYWNlKSk7CiAKKwlpZiAoc2Jz cmVmLT5yZWZqc29uYnBhdGgpCisJCXdvcmtzcGFjZS0+anNvbnBhdGggPSBEYXR1bUdldEpzb25Q YXRoUChjYXN0Tm9kZShDb25zdCwgc2JzcmVmLT5yZWZqc29uYnBhdGgpLT5jb25zdHZhbHVlKTsK KwogCS8qCiAJICogVGhpcyBjb2RpbmcgYXNzdW1lcyBzaXplb2YoRGF0dW0pID49IHNpemVvZihP aWQpLCBlbHNlIHdlIG1pZ2h0CiAJICogbWlzYWxpZ24gdGhlIGluZGV4T2lkIHBvaW50ZXIKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYyBiL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9ydWxldXRpbHMuYwppbmRleCAzZDZlNmJkYmZkMi4uYmFhM2FlOTdkNTcgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYworKysgYi9zcmMvYmFj a2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKQEAgLTkzMjksMTAgKzkzMjksMTMgQEAgZ2V0X3J1 bGVfZXhwcihOb2RlICpub2RlLCBkZXBhcnNlX2NvbnRleHQgKmNvbnRleHQsCiAJCQkJICogUGFy ZW50aGVzaXplIHRoZSBhcmd1bWVudCB1bmxlc3MgaXQncyBhIHNpbXBsZSBWYXIgb3IgYQogCQkJ CSAqIEZpZWxkU2VsZWN0LiAgKEluIHBhcnRpY3VsYXIsIGlmIGl0J3MgYW5vdGhlcgogCQkJCSAq IFN1YnNjcmlwdGluZ1JlZiwgd2UgKm11c3QqIHBhcmVudGhlc2l6ZSB0byBhdm9pZAotCQkJCSAq IGNvbmZ1c2lvbi4pCisJCQkJICogY29uZnVzaW9uLikgQWx3YXlzIGFkZCBwYXJlbnRoZXNpcyBp ZiBKU09OIHNpbXBsaWZpZWQKKwkJCQkgKiBhY2Nlc3NvciBpcyB1c2VkLCBmb3Igbm93LgogCQkJ CSAqLwotCQkJCW5lZWRfcGFyZW5zID0gIUlzQShzYnNyZWYtPnJlZmV4cHIsIFZhcikgJiYKLQkJ CQkJIUlzQShzYnNyZWYtPnJlZmV4cHIsIEZpZWxkU2VsZWN0KTsKKwkJCQluZWVkX3BhcmVucyA9 ICghSXNBKHNic3JlZi0+cmVmZXhwciwgVmFyKSAmJgorCQkJCQkhSXNBKHNic3JlZi0+cmVmZXhw ciwgRmllbGRTZWxlY3QpKSB8fAorCQkJCQkJc2JzcmVmLT5yZWZqc29uYnBhdGg7CisKIAkJCQlp ZiAobmVlZF9wYXJlbnMpCiAJCQkJCWFwcGVuZFN0cmluZ0luZm9DaGFyKGJ1ZiwgJygnKTsKIAkJ CQlnZXRfcnVsZV9leHByKChOb2RlICopIHNic3JlZi0+cmVmZXhwciwgY29udGV4dCwgc2hvd2lt cGxpY2l0KTsKQEAgLTEzMDA1LDE3ICsxMzAwOCwzNSBAQCBwcmludFN1YnNjcmlwdHMoU3Vic2Ny aXB0aW5nUmVmICpzYnNyZWYsIGRlcGFyc2VfY29udGV4dCAqY29udGV4dCkKIAlsb3dsaXN0X2l0 ZW0gPSBsaXN0X2hlYWQoc2JzcmVmLT5yZWZsb3dlcmluZGV4cHIpOwkvKiBjb3VsZCBiZSBOVUxM ICovCiAJZm9yZWFjaCh1cGxpc3RfaXRlbSwgc2JzcmVmLT5yZWZ1cHBlcmluZGV4cHIpCiAJewot CQlhcHBlbmRTdHJpbmdJbmZvQ2hhcihidWYsICdbJyk7Ci0JCWlmIChsb3dsaXN0X2l0ZW0pCisJ CU5vZGUgKnVwcGVyID0gKE5vZGUgKikgbGZpcnN0KHVwbGlzdF9pdGVtKTsKKworCQlpZiAodXBw ZXIgJiYgSXNBKHVwcGVyLCBGaWVsZEFjY2Vzc29yRXhwcikpCiAJCXsKKwkJCUZpZWxkQWNjZXNz b3JFeHByICpmYWUgPSAoRmllbGRBY2Nlc3NvckV4cHIgKikgdXBwZXI7CisKKwkJCS8qIFVzZSBk b3Qtbm90YXRpb24gZm9yIGZpZWxkIGFjY2VzcyAqLworCQkJYXBwZW5kU3RyaW5nSW5mb0NoYXIo YnVmLCAnLicpOworCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsIHF1b3RlX2lkZW50aWZp ZXIoZmFlLT5maWVsZG5hbWUpKTsKKworCQkJLyogU2tpcCBtYXRjaGluZyBsb3cgaW5kZXgg4oCU IGZpZWxkIGFjY2VzcyBkb2Vzbid0IHVzZSBzbGljZXMgKi8KKwkJCWlmIChsb3dsaXN0X2l0ZW0p CisJCQkJbG93bGlzdF9pdGVtID0gbG5leHQoc2JzcmVmLT5yZWZsb3dlcmluZGV4cHIsIGxvd2xp c3RfaXRlbSk7CisJCX0KKwkJZWxzZQorCQl7CisJCQkvKiBVc2UgSlNPTkIgYXJyYXkgc3Vic2Ny aXB0aW5nICovCisJCQlhcHBlbmRTdHJpbmdJbmZvQ2hhcihidWYsICdbJyk7CisJCQlpZiAobG93 bGlzdF9pdGVtKQorCQkJeworCQkJCS8qIElmIHN1YmV4cHJlc3Npb24gaXMgTlVMTCwgZ2V0X3J1 bGVfZXhwciBwcmludHMgbm90aGluZyAqLworCQkJCWdldF9ydWxlX2V4cHIoKE5vZGUgKikgbGZp cnN0KGxvd2xpc3RfaXRlbSksIGNvbnRleHQsIGZhbHNlKTsKKwkJCQlhcHBlbmRTdHJpbmdJbmZv Q2hhcihidWYsICc6Jyk7CisJCQkJbG93bGlzdF9pdGVtID0gbG5leHQoc2JzcmVmLT5yZWZsb3dl cmluZGV4cHIsIGxvd2xpc3RfaXRlbSk7CisJCQl9CiAJCQkvKiBJZiBzdWJleHByZXNzaW9uIGlz IE5VTEwsIGdldF9ydWxlX2V4cHIgcHJpbnRzIG5vdGhpbmcgKi8KLQkJCWdldF9ydWxlX2V4cHIo KE5vZGUgKikgbGZpcnN0KGxvd2xpc3RfaXRlbSksIGNvbnRleHQsIGZhbHNlKTsKLQkJCWFwcGVu ZFN0cmluZ0luZm9DaGFyKGJ1ZiwgJzonKTsKLQkJCWxvd2xpc3RfaXRlbSA9IGxuZXh0KHNic3Jl Zi0+cmVmbG93ZXJpbmRleHByLCBsb3dsaXN0X2l0ZW0pOworCQkJZ2V0X3J1bGVfZXhwcih1cHBl ciwgY29udGV4dCwgZmFsc2UpOworCQkJYXBwZW5kU3RyaW5nSW5mb0NoYXIoYnVmLCAnXScpOwog CQl9Ci0JCS8qIElmIHN1YmV4cHJlc3Npb24gaXMgTlVMTCwgZ2V0X3J1bGVfZXhwciBwcmludHMg bm90aGluZyAqLwotCQlnZXRfcnVsZV9leHByKChOb2RlICopIGxmaXJzdCh1cGxpc3RfaXRlbSks IGNvbnRleHQsIGZhbHNlKTsKLQkJYXBwZW5kU3RyaW5nSW5mb0NoYXIoYnVmLCAnXScpOwogCX0K IH0KIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmggYi9zcmMvaW5j bHVkZS9ub2Rlcy9wcmltbm9kZXMuaAppbmRleCA2ZGZjYTNjYjM1Yi4uN2U4OTYyMWJkNjUgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRl L25vZGVzL3ByaW1ub2Rlcy5oCkBAIC03MDgsMTggKzcwOCwzMCBAQCB0eXBlZGVmIHN0cnVjdCBT dWJzY3JpcHRpbmdSZWYKIAlpbnQzMgkJcmVmdHlwbW9kIHBnX25vZGVfYXR0cihxdWVyeV9qdW1i bGVfaWdub3JlKTsKIAkvKiBjb2xsYXRpb24gb2YgcmVzdWx0LCBvciBJbnZhbGlkT2lkIGlmIG5v bmUgKi8KIAlPaWQJCQlyZWZjb2xsaWQgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUp OwotCS8qIGV4cHJlc3Npb25zIHRoYXQgZXZhbHVhdGUgdG8gdXBwZXIgY29udGFpbmVyIGluZGV4 ZXMgKi8KKworCS8qCisJICogZXhwcmVzc2lvbnMgdGhhdCBldmFsdWF0ZSB0byB1cHBlciBjb250 YWluZXIgaW5kZXhlcyBvciBleHByZXNzaW9ucworCSAqIHRoYXQgYXJlIGNvbGxlY3RlZCBidXQg bm90IGV2YWx1YXRlZCB3aGVuIHJlZmpzb25icGF0aCBpcyBzZXQuCisJICovCiAJTGlzdAkgICAq cmVmdXBwZXJpbmRleHByOwogCiAJLyoKLQkgKiBleHByZXNzaW9ucyB0aGF0IGV2YWx1YXRlIHRv IGxvd2VyIGNvbnRhaW5lciBpbmRleGVzLCBvciBOSUwgZm9yIHNpbmdsZQotCSAqIGNvbnRhaW5l ciBlbGVtZW50LgorCSAqIGV4cHJlc3Npb25zIHRoYXQgZXZhbHVhdGUgdG8gbG93ZXIgY29udGFp bmVyIGluZGV4ZXMsIG9yIE5JTCBmb3IgYQorCSAqIHNpbmdsZSBjb250YWluZXIgZWxlbWVudCwg b3IgZXhwcmVzc2lvbnMgdGhhdCBhcmUgY29sbGVjdGVkIGJ1dCBub3QKKwkgKiBldmFsdWF0ZWQg d2hlbiByZWZqc29uYnBhdGggaXMgc2V0LgogCSAqLwogCUxpc3QJICAgKnJlZmxvd2VyaW5kZXhw cjsKIAkvKiB0aGUgZXhwcmVzc2lvbiB0aGF0IGV2YWx1YXRlcyB0byBhIGNvbnRhaW5lciB2YWx1 ZSAqLwogCUV4cHIJICAgKnJlZmV4cHI7CiAJLyogZXhwcmVzc2lvbiBmb3IgdGhlIHNvdXJjZSB2 YWx1ZSwgb3IgTlVMTCBpZiBmZXRjaCAqLwogCUV4cHIJICAgKnJlZmFzc2duZXhwcjsKKworCS8q CisJICogY29udGFpbmVyLXNwZWNpZmljIGV4dHJhIGluZm9ybWF0aW9uLCBjdXJyZW50bHkgdXNl ZCBvbmx5IGJ5IGpzb25iLgorCSAqIHN0b3JlcyBhIEpzb25QYXRoIGV4cHJlc3Npb24gd2hlbiBq c29uYiBkb3Qgbm90YXRpb24gaXMgdXNlZC4gTlVMTCBmb3IKKwkgKiBzaW1wbGUgc3Vic2NyaXB0 aW5nLgorCSAqLworCU5vZGUJICAgKnJlZmpzb25icGF0aDsKIH0gU3Vic2NyaXB0aW5nUmVmOwog CiAvKgpAQCAtMjM3MSw0ICsyMzgzLDQwIEBAIHR5cGVkZWYgc3RydWN0IE9uQ29uZmxpY3RFeHBy CiAJTGlzdAkgICAqZXhjbFJlbFRsaXN0OwkvKiB0bGlzdCBvZiB0aGUgRVhDTFVERUQgcHNldWRv IHJlbGF0aW9uICovCiB9IE9uQ29uZmxpY3RFeHByOwogCisvKgorICogRmllbGRBY2Nlc3NvckV4 cHIgLSByZXByZXNlbnRzIGEgc2luZ2xlIG9iamVjdCBtZW1iZXIgYWNjZXNzIHVzaW5nIGRvdC1u b3RhdGlvbgorICoJCWluIEpTT04gc2ltcGxpZmllZCBhY2Nlc3NvciBzeW50YXggKGUuZy4sIGpz b25iX2NvbC5hKS4KKyAqCisgKiBUaGVzZSBub2RlcyBhcHBlYXIgYXMgbGlzdCBlbGVtZW50cyBp biBTdWJzY3JpcHRpbmdSZWYucmVmdXBwZXJpbmRleHByIHRvCisgKiBpbmRpY2F0ZSBKU09OIG9i amVjdCBrZXkgYWNjZXNzLiBUaGV5IGFyZSBub3QgZXZhbHVhYmxlIGV4cHJlc3Npb25zIGJ5Cisg KiB0aGVtc2VsdmVzIGJ1dCBzZXJ2ZSBhcyBwbGFjZWhvbGRlcnMgdG8gcHJlc2VydmUgc291cmNl LWxldmVsIHN5bnRheCBmb3IKKyAqIHJ1bGUgcmV3cml0aW5nIGFuZCBkZXBhcnNpbmcgKGUuZy4s IGluIEVYUExBSU4gYW5kIHZpZXcgZGVmaW5pdGlvbnMpLgorICogRXhlY3V0aW9uIGlzIGhhbmRs ZWQgYnkgdGhlIGVuY2xvc2luZyBTdWJzY3JpcHRpbmdSZWYuCisgKgorICogSWYgZG90LW5vdGF0 aW9uIGlzIHVzZWQgaW4gYSBTdWJzY3JpcHRpbmdSZWYsIHRoZSBKU09OIHBhdGggaXMgcmVwcmVz ZW50ZWQKKyAqIGFzIGEgZmxhdCBsaXN0IG9mIEZpZWxkQWNjZXNzb3JFeHByIG5vZGVzIChmb3Ig b2JqZWN0IGZpZWxkIGFjY2VzcyksIENvbnN0CisgKiBub2RlcyAoZm9yIGFycmF5IGluZGV4ZXMp LCBhbmQgTlVMTHMgKGZvciBvbWl0dGVkIHNsaWNlIGJvdW5kcyksIHJhdGhlciB0aGFuCisgKiB0 aHJvdWdoIG5lc3RlZCBleHByZXNzaW9uIHRyZWVzLgorICoKKyAqIE5vdGU6IFRoZSBmbGF0IHJl cHJlc2VudGF0aW9uIGF2b2lkcyBuZXN0ZWQgRmllbGRBY2Nlc3NvckV4cHIgY2hhaW5zLAorICog c2ltcGxpZnlpbmcgZXZhbHVhdGlvbiBhbmQgZW5hYmxpbmcgc3RhbmRhcmQtY29tcGxpYW50IGJl aGF2aW9yIHN1Y2ggYXMKKyAqIGNvbmRpdGlvbmFsIGFycmF5IHdyYXBwaW5nLiBUaGlzIGF2b2lk cyB0aGUgbmVlZCBmb3IgcG9zaXRpb24tYXdhcmUKKyAqIHdyYXBwaW5nL3Vud3JhcHBpbmcgbG9n aWMgZHVyaW5nIGV4ZWN1dGlvbi4KKyAqCisgKiBGb3IgZXhhbXBsZSwgaW4gdGhlIGV4cHJlc3Np b246CisgKgkJKCd7ImEiOiBbeyJiIjogMX1dfSc6Ompzb25iKS5hWzBdLmIKKyAqIHRoZSBTdWJz Y3JpcHRpbmdSZWYgd2lsbCBjb250YWluOgorICoJCS0gcmVmZXhwcjogdGhlIGJhc2UgZXhwcmVz c2lvbiAodGhlIGpzb25iIHZhbHVlKQorICoJCS0gcmVmdXBwZXJpbmRleHByOiBbRmllbGRBY2Nl c3NvckV4cHIoImEiKSwgQ29uc3QoMCksCisgKgkJCUZpZWxkQWNjZXNzb3JFeHByKCJiIildCisg KgkJLSByZWZsb3dlcmluZGV4cHI6IFtOVUxMLCBOVUxMLCBOVUxMXSAoc2xpY2UgbG93ZXIgYm91 bmRzIG5vdCB1c2VkIGhlcmUpCisgKi8KK3R5cGVkZWYgc3RydWN0IEZpZWxkQWNjZXNzb3JFeHBy Cit7CisJTm9kZVRhZwkJdHlwZTsKKwljaGFyCSAgICpmaWVsZG5hbWU7CQkvKiBuYW1lIG9mIHRo ZSBKU09OQiBvYmplY3QgZmllbGQgYWNjZXNzZWQgdmlhCisJCQkJCQkJCSAqIGRvdCBub3RhdGlv biAqLworCU9pZAkJCWZhZWNvbGxpZCBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7 Cit9CQkJRmllbGRBY2Nlc3NvckV4cHI7CisKICNlbmRpZgkJCQkJCQkvKiBQUklNTk9ERVNfSCAq LwpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxq c29uLmMgYi9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24uYwpp bmRleCAzOTIyMWY5ZWE1ZC4uZTZhN2VjZTZkYWIgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2Vz L2VjcGcvdGVzdC9leHBlY3RlZC9zcWwtc3FsanNvbi5jCisrKyBiL3NyYy9pbnRlcmZhY2VzL2Vj cGcvdGVzdC9leHBlY3RlZC9zcWwtc3FsanNvbi5jCkBAIC00MTcsMTIgKzQxNywxMjIgQEAgaWYg KHNxbGNhLnNxbGNvZGUgPCAwKSBzcWxwcmludCgpO30KIAkgIGZvciAoaW50IGkgPSAwOyBpIDwg c2l6ZW9mKGlzX2pzb24pOyBpKyspCiAJCSAgcHJpbnRmKCJGb3VuZCBpc19qc29uWyVkXTogJXNc biIsIGksIGlzX2pzb25baV0gPyAidHJ1ZSIgOiAiZmFsc2UiKTsKIAotICB7IEVDUEdkaXNjb25u ZWN0KF9fTElORV9fLCAiQ1VSUkVOVCIpOworCXsgRUNQR2RvKF9fTElORV9fLCAwLCAxLCBOVUxM LCAwLCBFQ1BHc3Rfbm9ybWFsLCAic2VsZWN0IGpzb24gKCAoICd7XCJhXCI6IHtcImJcIjogMSwg XCJjXCI6IDJ9fScgOjoganNvbmIgKSAuIFwiYVwiICkiLCBFQ1BHdF9FT0lULCAKKwlFQ1BHdF9j aGFyLChqc29uKSwobG9uZykxMDI0LChsb25nKTEsKDEwMjQpKnNpemVvZihjaGFyKSwgCisJRUNQ R3RfTk9fSU5ESUNBVE9SLCBOVUxMICwgMEwsIDBMLCAwTCwgRUNQR3RfRU9SVCk7CiAjbGluZSAx MTggInNxbGpzb24ucGdjIgogCiBpZiAoc3FsY2Euc3FsY29kZSA8IDApIHNxbHByaW50KCk7fQog I2xpbmUgMTE4ICJzcWxqc29uLnBnYyIKIAorCXByaW50ZigiRm91bmQganNvbj0lc1xuIiwganNv bik7CisKKwl7IEVDUEdkbyhfX0xJTkVfXywgMCwgMSwgTlVMTCwgMCwgRUNQR3N0X25vcm1hbCwg InNlbGVjdCBqc29uICggJ3tcImFcIjoge1wiYlwiOiAxLCBcImNcIjogMn19JyA6OiBqc29uYiAu IFwiYVwiICkiLCBFQ1BHdF9FT0lULCAKKwlFQ1BHdF9jaGFyLChqc29uKSwobG9uZykxMDI0LChs b25nKTEsKDEwMjQpKnNpemVvZihjaGFyKSwgCisJRUNQR3RfTk9fSU5ESUNBVE9SLCBOVUxMICwg MEwsIDBMLCAwTCwgRUNQR3RfRU9SVCk7CisjbGluZSAxMjEgInNxbGpzb24ucGdjIgorCitpZiAo c3FsY2Euc3FsY29kZSA8IDApIHNxbHByaW50KCk7fQorI2xpbmUgMTIxICJzcWxqc29uLnBnYyIK KworCS8vIGVycm9yCisKKwl7IEVDUEdkbyhfX0xJTkVfXywgMCwgMSwgTlVMTCwgMCwgRUNQR3N0 X25vcm1hbCwgInNlbGVjdCBqc29uICggKCAne1wiYVwiOiB7XCJiXCI6IDEsIFwiY1wiOiAyfX0n IDo6IGpzb25iICkgLiBhICkiLCBFQ1BHdF9FT0lULCAKKwlFQ1BHdF9jaGFyLChqc29uKSwobG9u ZykxMDI0LChsb25nKTEsKDEwMjQpKnNpemVvZihjaGFyKSwgCisJRUNQR3RfTk9fSU5ESUNBVE9S LCBOVUxMICwgMEwsIDBMLCAwTCwgRUNQR3RfRU9SVCk7CisjbGluZSAxMjQgInNxbGpzb24ucGdj IgorCitpZiAoc3FsY2Euc3FsY29kZSA8IDApIHNxbHByaW50KCk7fQorI2xpbmUgMTI0ICJzcWxq c29uLnBnYyIKKworCXByaW50ZigiRm91bmQganNvbj0lc1xuIiwganNvbik7CisKKwl7IEVDUEdk byhfX0xJTkVfXywgMCwgMSwgTlVMTCwgMCwgRUNQR3N0X25vcm1hbCwgInNlbGVjdCBqc29uICgg KCAne1wiYVwiOiB7XCJiXCI6IDEsIFwiY1wiOiAyfX0nIDo6IGpzb25iICkgLiBhIC4gYiApIiwg RUNQR3RfRU9JVCwgCisJRUNQR3RfY2hhciwoanNvbiksKGxvbmcpMTAyNCwobG9uZykxLCgxMDI0 KSpzaXplb2YoY2hhciksIAorCUVDUEd0X05PX0lORElDQVRPUiwgTlVMTCAsIDBMLCAwTCwgMEws IEVDUEd0X0VPUlQpOworI2xpbmUgMTI3ICJzcWxqc29uLnBnYyIKKworaWYgKHNxbGNhLnNxbGNv ZGUgPCAwKSBzcWxwcmludCgpO30KKyNsaW5lIDEyNyAic3FsanNvbi5wZ2MiCisKKwlwcmludGYo IkZvdW5kIGpzb249JXNcbiIsIGpzb24pOworCisJeyBFQ1BHZG8oX19MSU5FX18sIDAsIDEsIE5V TEwsIDAsIEVDUEdzdF9ub3JtYWwsICJzZWxlY3QganNvbiAoIGNvYWxlc2NlICgganNvbiAoICgg J3tcImFcIjoge1wiYlwiOiAxLCBcImNcIjogMn19JyA6OiBqc29uYiApIC4gYyApICwgJ251bGwn ICkgKSIsIEVDUEd0X0VPSVQsIAorCUVDUEd0X2NoYXIsKGpzb24pLChsb25nKTEwMjQsKGxvbmcp MSwoMTAyNCkqc2l6ZW9mKGNoYXIpLCAKKwlFQ1BHdF9OT19JTkRJQ0FUT1IsIE5VTEwgLCAwTCwg MEwsIDBMLCBFQ1BHdF9FT1JUKTsKKyNsaW5lIDEzMCAic3FsanNvbi5wZ2MiCisKK2lmIChzcWxj YS5zcWxjb2RlIDwgMCkgc3FscHJpbnQoKTt9CisjbGluZSAxMzAgInNxbGpzb24ucGdjIgorCisJ cHJpbnRmKCJGb3VuZCBqc29uPSVzXG4iLCBqc29uKTsKKworCXsgRUNQR2RvKF9fTElORV9fLCAw LCAxLCBOVUxMLCAwLCBFQ1BHc3Rfbm9ybWFsLCAic2VsZWN0IGpzb24gKCAoICd7XCJhXCI6IHtc ImJcIjogMSwgXCJjXCI6IDJ9LCBcImJcIjogW3tcInhcIjogMX0sIHtcInhcIjogWzEyLCB7XCJ5 XCI6MX1dfV19JyA6OiBqc29uYiApIC4gYiBbIDAgXSApIiwgRUNQR3RfRU9JVCwgCisJRUNQR3Rf Y2hhciwoanNvbiksKGxvbmcpMTAyNCwobG9uZykxLCgxMDI0KSpzaXplb2YoY2hhciksIAorCUVD UEd0X05PX0lORElDQVRPUiwgTlVMTCAsIDBMLCAwTCwgMEwsIEVDUEd0X0VPUlQpOworI2xpbmUg MTMzICJzcWxqc29uLnBnYyIKKworaWYgKHNxbGNhLnNxbGNvZGUgPCAwKSBzcWxwcmludCgpO30K KyNsaW5lIDEzMyAic3FsanNvbi5wZ2MiCisKKwlwcmludGYoIkZvdW5kIGpzb249JXNcbiIsIGpz b24pOworCisJeyBFQ1BHZG8oX19MSU5FX18sIDAsIDEsIE5VTEwsIDAsIEVDUEdzdF9ub3JtYWws ICJzZWxlY3QganNvbiAoICggJ3tcImFcIjoge1wiYlwiOiAxLCBcImNcIjogMn0sIFwiYlwiOiBb e1wieFwiOiAxfSwge1wieFwiOiBbMTIsIHtcInlcIjoxfV19XX0nIDo6IGpzb25iICkgLiBiIC4g eCApIiwgRUNQR3RfRU9JVCwgCisJRUNQR3RfY2hhciwoanNvbiksKGxvbmcpMTAyNCwobG9uZykx LCgxMDI0KSpzaXplb2YoY2hhciksIAorCUVDUEd0X05PX0lORElDQVRPUiwgTlVMTCAsIDBMLCAw TCwgMEwsIEVDUEd0X0VPUlQpOworI2xpbmUgMTM2ICJzcWxqc29uLnBnYyIKKworaWYgKHNxbGNh LnNxbGNvZGUgPCAwKSBzcWxwcmludCgpO30KKyNsaW5lIDEzNiAic3FsanNvbi5wZ2MiCisKKwlw cmludGYoIkZvdW5kIGpzb249JXNcbiIsIGpzb24pOworCisJeyBFQ1BHZG8oX19MSU5FX18sIDAs IDEsIE5VTEwsIDAsIEVDUEdzdF9ub3JtYWwsICJzZWxlY3QganNvbiAoICggJ3tcImFcIjoge1wi YlwiOiAxLCBcImNcIjogMn0sIFwiYlwiOiBbe1wieFwiOiAxfSwge1wieFwiOiBbMTIsIHtcInlc IjoxfV19XX0nIDo6IGpzb25iICkgWyAnYicgXSBbIDAgXSApIiwgRUNQR3RfRU9JVCwgCisJRUNQ R3RfY2hhciwoanNvbiksKGxvbmcpMTAyNCwobG9uZykxLCgxMDI0KSpzaXplb2YoY2hhciksIAor CUVDUEd0X05PX0lORElDQVRPUiwgTlVMTCAsIDBMLCAwTCwgMEwsIEVDUEd0X0VPUlQpOworI2xp bmUgMTM5ICJzcWxqc29uLnBnYyIKKworaWYgKHNxbGNhLnNxbGNvZGUgPCAwKSBzcWxwcmludCgp O30KKyNsaW5lIDEzOSAic3FsanNvbi5wZ2MiCisKKwlwcmludGYoIkZvdW5kIGpzb249JXNcbiIs IGpzb24pOworCisJeyBFQ1BHZG8oX19MSU5FX18sIDAsIDEsIE5VTEwsIDAsIEVDUEdzdF9ub3Jt YWwsICJzZWxlY3QganNvbiAoICggJ3tcImFcIjoge1wiYlwiOiAxLCBcImNcIjogMn0sIFwiYlwi OiBbe1wieFwiOiAxfSwge1wieFwiOiBbMTIsIHtcInlcIjoxfV19XX0nIDo6IGpzb25iICkgLiBi IFsgMSBdIC4geCBbIDAgOiBdICkiLCBFQ1BHdF9FT0lULCAKKwlFQ1BHdF9jaGFyLChqc29uKSwo bG9uZykxMDI0LChsb25nKTEsKDEwMjQpKnNpemVvZihjaGFyKSwgCisJRUNQR3RfTk9fSU5ESUNB VE9SLCBOVUxMICwgMEwsIDBMLCAwTCwgRUNQR3RfRU9SVCk7CisjbGluZSAxNDIgInNxbGpzb24u cGdjIgorCitpZiAoc3FsY2Euc3FsY29kZSA8IDApIHNxbHByaW50KCk7fQorI2xpbmUgMTQyICJz cWxqc29uLnBnYyIKKworCS8vIGVycm9yCisKKwl7IEVDUEdkbyhfX0xJTkVfXywgMCwgMSwgTlVM TCwgMCwgRUNQR3N0X25vcm1hbCwgInNlbGVjdCBqc29uICggKCAne1wiYVwiOiB7XCJiXCI6IDEs IFwiY1wiOiAyfSwgXCJiXCI6IFt7XCJ4XCI6IDF9LCB7XCJ4XCI6IFsxMiwge1wieVwiOjF9XX1d fScgOjoganNvbmIgKSAuICogKSIsIEVDUEd0X0VPSVQsIAorCUVDUEd0X2NoYXIsKGpzb24pLChs b25nKTEwMjQsKGxvbmcpMSwoMTAyNCkqc2l6ZW9mKGNoYXIpLCAKKwlFQ1BHdF9OT19JTkRJQ0FU T1IsIE5VTEwgLCAwTCwgMEwsIDBMLCBFQ1BHdF9FT1JUKTsKKyNsaW5lIDE0NSAic3FsanNvbi5w Z2MiCisKK2lmIChzcWxjYS5zcWxjb2RlIDwgMCkgc3FscHJpbnQoKTt9CisjbGluZSAxNDUgInNx bGpzb24ucGdjIgorCisJLy8gZXJyb3IKKworCXsgRUNQR2RvKF9fTElORV9fLCAwLCAxLCBOVUxM LCAwLCBFQ1BHc3Rfbm9ybWFsLCAic2VsZWN0IGpzb24gKCAoICd7XCJhXCI6IHtcImJcIjogMSwg XCJjXCI6IDJ9LCBcImJcIjogW3tcInhcIjogMX0sIHtcInhcIjogWzEyLCB7XCJ5XCI6MX1dfV19 JyA6OiBqc29uYiApIFsgJ2InIF0gWyAwIDogXSApIiwgRUNQR3RfRU9JVCwgCisJRUNQR3RfY2hh ciwoanNvbiksKGxvbmcpMTAyNCwobG9uZykxLCgxMDI0KSpzaXplb2YoY2hhciksIAorCUVDUEd0 X05PX0lORElDQVRPUiwgTlVMTCAsIDBMLCAwTCwgMEwsIEVDUEd0X0VPUlQpOworI2xpbmUgMTQ4 ICJzcWxqc29uLnBnYyIKKworaWYgKHNxbGNhLnNxbGNvZGUgPCAwKSBzcWxwcmludCgpO30KKyNs aW5lIDE0OCAic3FsanNvbi5wZ2MiCisKKwkvLyBlcnJvcgorCisgIHsgRUNQR2Rpc2Nvbm5lY3Qo X19MSU5FX18sICJDVVJSRU5UIik7CisjbGluZSAxNTEgInNxbGpzb24ucGdjIgorCitpZiAoc3Fs Y2Euc3FsY29kZSA8IDApIHNxbHByaW50KCk7fQorI2xpbmUgMTUxICJzcWxqc29uLnBnYyIKKwog CiAgIHJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4 cGVjdGVkL3NxbC1zcWxqc29uLnN0ZGVyciBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9leHBl Y3RlZC9zcWwtc3FsanNvbi5zdGRlcnIKaW5kZXggZTU1YTk1ZGQ3MTEuLjE5ZjhjNThhZjA2IDEw MDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24u c3RkZXJyCisrKyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9leHBlY3RlZC9zcWwtc3FsanNv bi5zdGRlcnIKQEAgLTI2OCw1ICsyNjgsMTA1IEBAIFNRTCBlcnJvcjogY2Fubm90IHVzZSB0eXBl IGpzb25iIGluIFJFVFVSTklORyBjbGF1c2Ugb2YgSlNPTl9TRVJJQUxJWkUoKSBvbiBsaW5lCiBb Tk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAogW05PX1BJRF06IGVjcGdfZ2V0 X2RhdGEgb24gbGluZSAxMDI6IFJFU1VMVDogZiBvZmZzZXQ6IC0xOyBhcnJheTogbm8KIFtOT19Q SURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19leGVjdXRl IG9uIGxpbmUgMTE4OiBxdWVyeTogc2VsZWN0IGpzb24gKCAoICd7ImEiOiB7ImIiOiAxLCAiYyI6 IDJ9fScgOjoganNvbmIgKSAuICJhIiApOyB3aXRoIDAgcGFyYW1ldGVyKHMpIG9uIGNvbm5lY3Rp b24gZWNwZzFfcmVncmVzc2lvbgorW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAw MDAKK1tOT19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSAxMTg6IHVzaW5nIFBRZXhlYworW05P X1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX3Byb2Nl c3Nfb3V0cHV0IG9uIGxpbmUgMTE4OiBjb3JyZWN0bHkgZ290IDEgdHVwbGVzIHdpdGggMSBmaWVs ZHMKK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNw Z19nZXRfZGF0YSBvbiBsaW5lIDExODogUkVTVUxUOiB7ImIiOiAxLCAiYyI6IDJ9IG9mZnNldDog LTE7IGFycmF5OiBubworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tO T19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSAxMjE6IHF1ZXJ5OiBzZWxlY3QganNvbiAoICd7 ImEiOiB7ImIiOiAxLCAiYyI6IDJ9fScgOjoganNvbmIgLiAiYSIgKTsgd2l0aCAwIHBhcmFtZXRl cihzKSBvbiBjb25uZWN0aW9uIGVjcGcxX3JlZ3Jlc3Npb24KK1tOT19QSURdOiBzcWxjYTogY29k ZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19leGVjdXRlIG9uIGxpbmUgMTIxOiB1 c2luZyBQUWV4ZWMKK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9f UElEXTogZWNwZ19jaGVja19QUXJlc3VsdCBvbiBsaW5lIDEyMTogYmFkIHJlc3BvbnNlIC0gRVJS T1I6ICBzY2hlbWEgImpzb25iIiBkb2VzIG5vdCBleGlzdAorTElORSAxOiBzZWxlY3QganNvbiAo ICd7ImEiOiB7ImIiOiAxLCAiYyI6IDJ9fScgOjoganNvbmIgLiAiYSIgKQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorW05PX1BJRF06IHNxbGNh OiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiByYWlzaW5nIHNxbHN0YXRlIDNGMDAw IChzcWxjb2RlIC00MDApOiBzY2hlbWEgImpzb25iIiBkb2VzIG5vdCBleGlzdCBvbiBsaW5lIDEy MQorW05PX1BJRF06IHNxbGNhOiBjb2RlOiAtNDAwLCBzdGF0ZTogM0YwMDAKK1NRTCBlcnJvcjog c2NoZW1hICJqc29uYiIgZG9lcyBub3QgZXhpc3Qgb24gbGluZSAxMjEKK1tOT19QSURdOiBlY3Bn X2V4ZWN1dGUgb24gbGluZSAxMjQ6IHF1ZXJ5OiBzZWxlY3QganNvbiAoICggJ3siYSI6IHsiYiI6 IDEsICJjIjogMn19JyA6OiBqc29uYiApIC4gYSApOyB3aXRoIDAgcGFyYW1ldGVyKHMpIG9uIGNv bm5lY3Rpb24gZWNwZzFfcmVncmVzc2lvbgorW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0 ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSAxMjQ6IHVzaW5nIFBRZXhl YworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3Bn X3Byb2Nlc3Nfb3V0cHV0IG9uIGxpbmUgMTI0OiBjb3JyZWN0bHkgZ290IDEgdHVwbGVzIHdpdGgg MSBmaWVsZHMKK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElE XTogZWNwZ19nZXRfZGF0YSBvbiBsaW5lIDEyNDogUkVTVUxUOiB7ImIiOiAxLCAiYyI6IDJ9IG9m ZnNldDogLTE7IGFycmF5OiBubworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAw MDAKK1tOT19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSAxMjc6IHF1ZXJ5OiBzZWxlY3QganNv biAoICggJ3siYSI6IHsiYiI6IDEsICJjIjogMn19JyA6OiBqc29uYiApIC4gYSAuIGIgKTsgd2l0 aCAwIHBhcmFtZXRlcihzKSBvbiBjb25uZWN0aW9uIGVjcGcxX3JlZ3Jlc3Npb24KK1tOT19QSURd OiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19leGVjdXRlIG9u IGxpbmUgMTI3OiB1c2luZyBQUWV4ZWMKK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6 IDAwMDAwCitbTk9fUElEXTogZWNwZ19wcm9jZXNzX291dHB1dCBvbiBsaW5lIDEyNzogY29ycmVj dGx5IGdvdCAxIHR1cGxlcyB3aXRoIDEgZmllbGRzCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAs IHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdfZ2V0X2RhdGEgb24gbGluZSAxMjc6IFJFU1VM VDogMSBvZmZzZXQ6IC0xOyBhcnJheTogbm8KK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3Rh dGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19leGVjdXRlIG9uIGxpbmUgMTMwOiBxdWVyeTogc2Vs ZWN0IGpzb24gKCBjb2FsZXNjZSAoIGpzb24gKCAoICd7ImEiOiB7ImIiOiAxLCAiYyI6IDJ9fScg OjoganNvbmIgKSAuIGMgKSAsICdudWxsJyApICk7IHdpdGggMCBwYXJhbWV0ZXIocykgb24gY29u bmVjdGlvbiBlY3BnMV9yZWdyZXNzaW9uCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRl OiAwMDAwMAorW05PX1BJRF06IGVjcGdfZXhlY3V0ZSBvbiBsaW5lIDEzMDogdXNpbmcgUFFleGVj CitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdf cHJvY2Vzc19vdXRwdXQgb24gbGluZSAxMzA6IGNvcnJlY3RseSBnb3QgMSB0dXBsZXMgd2l0aCAx IGZpZWxkcworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURd OiBlY3BnX2dldF9kYXRhIG9uIGxpbmUgMTMwOiBSRVNVTFQ6IG51bGwgb2Zmc2V0OiAtMTsgYXJy YXk6IG5vCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06 IGVjcGdfZXhlY3V0ZSBvbiBsaW5lIDEzMzogcXVlcnk6IHNlbGVjdCBqc29uICggKCAneyJhIjog eyJiIjogMSwgImMiOiAyfSwgImIiOiBbeyJ4IjogMX0sIHsieCI6IFsxMiwgeyJ5IjoxfV19XX0n IDo6IGpzb25iICkgLiBiIFsgMCBdICk7IHdpdGggMCBwYXJhbWV0ZXIocykgb24gY29ubmVjdGlv biBlY3BnMV9yZWdyZXNzaW9uCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAw MAorW05PX1BJRF06IGVjcGdfZXhlY3V0ZSBvbiBsaW5lIDEzMzogdXNpbmcgUFFleGVjCitbTk9f UElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdfcHJvY2Vz c19vdXRwdXQgb24gbGluZSAxMzM6IGNvcnJlY3RseSBnb3QgMSB0dXBsZXMgd2l0aCAxIGZpZWxk cworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3Bn X2dldF9kYXRhIG9uIGxpbmUgMTMzOiBSRVNVTFQ6IHsieCI6IDF9IG9mZnNldDogLTE7IGFycmF5 OiBubworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBl Y3BnX2V4ZWN1dGUgb24gbGluZSAxMzY6IHF1ZXJ5OiBzZWxlY3QganNvbiAoICggJ3siYSI6IHsi YiI6IDEsICJjIjogMn0sICJiIjogW3sieCI6IDF9LCB7IngiOiBbMTIsIHsieSI6MX1dfV19JyA6 OiBqc29uYiApIC4gYiAuIHggKTsgd2l0aCAwIHBhcmFtZXRlcihzKSBvbiBjb25uZWN0aW9uIGVj cGcxX3JlZ3Jlc3Npb24KK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitb Tk9fUElEXTogZWNwZ19leGVjdXRlIG9uIGxpbmUgMTM2OiB1c2luZyBQUWV4ZWMKK1tOT19QSURd OiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19wcm9jZXNzX291 dHB1dCBvbiBsaW5lIDEzNjogY29ycmVjdGx5IGdvdCAxIHR1cGxlcyB3aXRoIDEgZmllbGRzCitb Tk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdfZ2V0 X2RhdGEgb24gbGluZSAxMzY6IFJFU1VMVDogWzEsIFsxMiwgeyJ5IjogMX1dXSBvZmZzZXQ6IC0x OyBhcnJheTogbm8KK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9f UElEXTogZWNwZ19leGVjdXRlIG9uIGxpbmUgMTM5OiBxdWVyeTogc2VsZWN0IGpzb24gKCAoICd7 ImEiOiB7ImIiOiAxLCAiYyI6IDJ9LCAiYiI6IFt7IngiOiAxfSwgeyJ4IjogWzEyLCB7InkiOjF9 XX1dfScgOjoganNvbmIgKSBbICdiJyBdIFsgMCBdICk7IHdpdGggMCBwYXJhbWV0ZXIocykgb24g Y29ubmVjdGlvbiBlY3BnMV9yZWdyZXNzaW9uCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0 YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdfZXhlY3V0ZSBvbiBsaW5lIDEzOTogdXNpbmcgUFFl eGVjCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVj cGdfcHJvY2Vzc19vdXRwdXQgb24gbGluZSAxMzk6IGNvcnJlY3RseSBnb3QgMSB0dXBsZXMgd2l0 aCAxIGZpZWxkcworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19Q SURdOiBlY3BnX2dldF9kYXRhIG9uIGxpbmUgMTM5OiBSRVNVTFQ6IHsieCI6IDF9IG9mZnNldDog LTE7IGFycmF5OiBubworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tO T19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSAxNDI6IHF1ZXJ5OiBzZWxlY3QganNvbiAoICgg J3siYSI6IHsiYiI6IDEsICJjIjogMn0sICJiIjogW3sieCI6IDF9LCB7IngiOiBbMTIsIHsieSI6 MX1dfV19JyA6OiBqc29uYiApIC4gYiBbIDEgXSAuIHggWyAwIDogXSApOyB3aXRoIDAgcGFyYW1l dGVyKHMpIG9uIGNvbm5lY3Rpb24gZWNwZzFfcmVncmVzc2lvbgorW05PX1BJRF06IHNxbGNhOiBj b2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSAxNDI6 IHVzaW5nIFBRZXhlYworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tO T19QSURdOiBlY3BnX2NoZWNrX1BRcmVzdWx0IG9uIGxpbmUgMTQyOiBiYWQgcmVzcG9uc2UgLSBF UlJPUjogIGpzb25iIHN1YnNjcmlwdCBkb2VzIG5vdCBzdXBwb3J0IHNsaWNlcworTElORSAxOiAu Li4sIHsieCI6IFsxMiwgeyJ5IjoxfV19XX0nIDo6IGpzb25iICkgLiBiIFsgMSBdIC4geCBbIDAg OiBdICkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAor W05PX1BJRF06IHJhaXNpbmcgc3Fsc3RhdGUgNDI4MDQgKHNxbGNvZGUgLTQwMCk6IGpzb25iIHN1 YnNjcmlwdCBkb2VzIG5vdCBzdXBwb3J0IHNsaWNlcyBvbiBsaW5lIDE0MgorW05PX1BJRF06IHNx bGNhOiBjb2RlOiAtNDAwLCBzdGF0ZTogNDI4MDQKK1NRTCBlcnJvcjoganNvbmIgc3Vic2NyaXB0 IGRvZXMgbm90IHN1cHBvcnQgc2xpY2VzIG9uIGxpbmUgMTQyCitbTk9fUElEXTogZWNwZ19leGVj dXRlIG9uIGxpbmUgMTQ1OiBxdWVyeTogc2VsZWN0IGpzb24gKCAoICd7ImEiOiB7ImIiOiAxLCAi YyI6IDJ9LCAiYiI6IFt7IngiOiAxfSwgeyJ4IjogWzEyLCB7InkiOjF9XX1dfScgOjoganNvbmIg KSAuICogKTsgd2l0aCAwIHBhcmFtZXRlcihzKSBvbiBjb25uZWN0aW9uIGVjcGcxX3JlZ3Jlc3Np b24KK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNw Z19leGVjdXRlIG9uIGxpbmUgMTQ1OiB1c2luZyBQUWV4ZWMKK1tOT19QSURdOiBzcWxjYTogY29k ZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19jaGVja19QUXJlc3VsdCBvbiBsaW5l IDE0NTogYmFkIHJlc3BvbnNlIC0gRVJST1I6ICByb3cgZXhwYW5zaW9uIHZpYSAiKiIgaXMgbm90 IHN1cHBvcnRlZCBoZXJlCitMSU5FIDE6IHNlbGVjdCBqc29uICggKCAneyJhIjogeyJiIjogMSwg ImMiOiAyfSwgImIiOiBbeyJ4IjogMX0sIHsieC4uLgorICAgICAgICAgICAgICAgICAgICAgICAg XgorW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiByYWlz aW5nIHNxbHN0YXRlIDBBMDAwIChzcWxjb2RlIC00MDApOiByb3cgZXhwYW5zaW9uIHZpYSAiKiIg aXMgbm90IHN1cHBvcnRlZCBoZXJlIG9uIGxpbmUgMTQ1CitbTk9fUElEXTogc3FsY2E6IGNvZGU6 IC00MDAsIHN0YXRlOiAwQTAwMAorU1FMIGVycm9yOiByb3cgZXhwYW5zaW9uIHZpYSAiKiIgaXMg bm90IHN1cHBvcnRlZCBoZXJlIG9uIGxpbmUgMTQ1CitbTk9fUElEXTogZWNwZ19leGVjdXRlIG9u IGxpbmUgMTQ4OiBxdWVyeTogc2VsZWN0IGpzb24gKCAoICd7ImEiOiB7ImIiOiAxLCAiYyI6IDJ9 LCAiYiI6IFt7IngiOiAxfSwgeyJ4IjogWzEyLCB7InkiOjF9XX1dfScgOjoganNvbmIgKSBbICdi JyBdIFsgMCA6IF0gKTsgd2l0aCAwIHBhcmFtZXRlcihzKSBvbiBjb25uZWN0aW9uIGVjcGcxX3Jl Z3Jlc3Npb24KK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElE XTogZWNwZ19leGVjdXRlIG9uIGxpbmUgMTQ4OiB1c2luZyBQUWV4ZWMKK1tOT19QSURdOiBzcWxj YTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19jaGVja19QUXJlc3VsdCBv biBsaW5lIDE0ODogYmFkIHJlc3BvbnNlIC0gRVJST1I6ICBqc29uYiBzdWJzY3JpcHQgZG9lcyBu b3Qgc3VwcG9ydCBzbGljZXMKK0xJTkUgMTogLi4ueCI6IDF9LCB7IngiOiBbMTIsIHsieSI6MX1d fV19JyA6OiBqc29uYiApIFsgJ2InIF0gWyAwIDogXSApCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorW05PX1BJRF06IHNx bGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiByYWlzaW5nIHNxbHN0YXRlIDQy ODA0IChzcWxjb2RlIC00MDApOiBqc29uYiBzdWJzY3JpcHQgZG9lcyBub3Qgc3VwcG9ydCBzbGlj ZXMgb24gbGluZSAxNDgKK1tOT19QSURdOiBzcWxjYTogY29kZTogLTQwMCwgc3RhdGU6IDQyODA0 CitTUUwgZXJyb3I6IGpzb25iIHN1YnNjcmlwdCBkb2VzIG5vdCBzdXBwb3J0IHNsaWNlcyBvbiBs aW5lIDE0OAogW05PX1BJRF06IGVjcGdfZmluaXNoOiBjb25uZWN0aW9uIGVjcGcxX3JlZ3Jlc3Np b24gY2xvc2VkCiBbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMApkaWZmIC0t Z2l0IGEvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29uLnN0ZG91 dCBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9leHBlY3RlZC9zcWwtc3FsanNvbi5zdGRvdXQK aW5kZXggODNmOGRmMTNlNWEuLjQ0MmQzNjkzMWYxIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNl cy9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24uc3Rkb3V0CisrKyBiL3NyYy9pbnRlcmZh Y2VzL2VjcGcvdGVzdC9leHBlY3RlZC9zcWwtc3FsanNvbi5zdGRvdXQKQEAgLTI4LDMgKzI4LDEw IEBAIEZvdW5kIGlzX2pzb25bNF06IGZhbHNlCiBGb3VuZCBpc19qc29uWzVdOiBmYWxzZQogRm91 bmQgaXNfanNvbls2XTogdHJ1ZQogRm91bmQgaXNfanNvbls3XTogZmFsc2UKK0ZvdW5kIGpzb249 eyJiIjogMSwgImMiOiAyfQorRm91bmQganNvbj17ImIiOiAxLCAiYyI6IDJ9CitGb3VuZCBqc29u PTEKK0ZvdW5kIGpzb249bnVsbAorRm91bmQganNvbj17IngiOiAxfQorRm91bmQganNvbj1bMSwg WzEyLCB7InkiOiAxfV1dCitGb3VuZCBqc29uPXsieCI6IDF9CmRpZmYgLS1naXQgYS9zcmMvaW50 ZXJmYWNlcy9lY3BnL3Rlc3Qvc3FsL3NxbGpzb24ucGdjIGIvc3JjL2ludGVyZmFjZXMvZWNwZy90 ZXN0L3NxbC9zcWxqc29uLnBnYwppbmRleCBkZGNiY2MzYjNjYi4uNTdhOWJmZjQyNGQgMTAwNjQ0 Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9zcWwvc3FsanNvbi5wZ2MKKysrIGIvc3Jj L2ludGVyZmFjZXMvZWNwZy90ZXN0L3NxbC9zcWxqc29uLnBnYwpAQCAtMTE1LDYgKzExNSwzOSBA QCBFWEVDIFNRTCBFTkQgREVDTEFSRSBTRUNUSU9OOwogCSAgZm9yIChpbnQgaSA9IDA7IGkgPCBz aXplb2YoaXNfanNvbik7IGkrKykKIAkJICBwcmludGYoIkZvdW5kIGlzX2pzb25bJWRdOiAlc1xu IiwgaSwgaXNfanNvbltpXSA/ICJ0cnVlIiA6ICJmYWxzZSIpOwogCisJRVhFQyBTUUwgU0VMRUNU IEpTT04oKCd7ImEiOiB7ImIiOiAxLCAiYyI6IDJ9fSc6Ompzb25iKS4iYSIpIElOVE8gOmpzb247 CisJcHJpbnRmKCJGb3VuZCBqc29uPSVzXG4iLCBqc29uKTsKKworCUVYRUMgU1FMIFNFTEVDVCBK U09OKCd7ImEiOiB7ImIiOiAxLCAiYyI6IDJ9fSc6Ompzb25iLiJhIikgSU5UTyA6anNvbjsKKwkv LyBlcnJvcgorCisJRVhFQyBTUUwgU0VMRUNUIEpTT04oKCd7ImEiOiB7ImIiOiAxLCAiYyI6IDJ9 fSc6Ompzb25iKS5hKSBJTlRPIDpqc29uOworCXByaW50ZigiRm91bmQganNvbj0lc1xuIiwganNv bik7CisKKwlFWEVDIFNRTCBTRUxFQ1QgSlNPTigoJ3siYSI6IHsiYiI6IDEsICJjIjogMn19Jzo6 anNvbmIpLmEuYikgSU5UTyA6anNvbjsKKwlwcmludGYoIkZvdW5kIGpzb249JXNcbiIsIGpzb24p OworCisJRVhFQyBTUUwgU0VMRUNUIEpTT04oQ09BTEVTQ0UoSlNPTigoJ3siYSI6IHsiYiI6IDEs ICJjIjogMn19Jzo6anNvbmIpLmMpLCAnbnVsbCcpKSBJTlRPIDpqc29uOworCXByaW50ZigiRm91 bmQganNvbj0lc1xuIiwganNvbik7CisKKwlFWEVDIFNRTCBTRUxFQ1QgSlNPTigoJ3siYSI6IHsi YiI6IDEsICJjIjogMn0sICJiIjogW3sieCI6IDF9LCB7IngiOiBbMTIsIHsieSI6MX1dfV19Jzo6 anNvbmIpLmJbMF0pIElOVE8gOmpzb247CisJcHJpbnRmKCJGb3VuZCBqc29uPSVzXG4iLCBqc29u KTsKKworCUVYRUMgU1FMIFNFTEVDVCBKU09OKCgneyJhIjogeyJiIjogMSwgImMiOiAyfSwgImIi OiBbeyJ4IjogMX0sIHsieCI6IFsxMiwgeyJ5IjoxfV19XX0nOjpqc29uYikuYi54KSBJTlRPIDpq c29uOworCXByaW50ZigiRm91bmQganNvbj0lc1xuIiwganNvbik7CisKKwlFWEVDIFNRTCBTRUxF Q1QgSlNPTigoJ3siYSI6IHsiYiI6IDEsICJjIjogMn0sICJiIjogW3sieCI6IDF9LCB7IngiOiBb MTIsIHsieSI6MX1dfV19Jzo6anNvbmIpWydiJ11bMF0pIElOVE8gOmpzb247CisJcHJpbnRmKCJG b3VuZCBqc29uPSVzXG4iLCBqc29uKTsKKworCUVYRUMgU1FMIFNFTEVDVCBKU09OKCgneyJhIjog eyJiIjogMSwgImMiOiAyfSwgImIiOiBbeyJ4IjogMX0sIHsieCI6IFsxMiwgeyJ5IjoxfV19XX0n Ojpqc29uYikuYlsxXS54WzA6XSkgSU5UTyA6anNvbjsKKwkvLyBlcnJvcgorCisJRVhFQyBTUUwg U0VMRUNUIEpTT04oKCd7ImEiOiB7ImIiOiAxLCAiYyI6IDJ9LCAiYiI6IFt7IngiOiAxfSwgeyJ4 IjogWzEyLCB7InkiOjF9XX1dfSc6Ompzb25iKS4qKSBJTlRPIDpqc29uOworCS8vIGVycm9yCisK KwlFWEVDIFNRTCBTRUxFQ1QgSlNPTigoJ3siYSI6IHsiYiI6IDEsICJjIjogMn0sICJiIjogW3si eCI6IDF9LCB7IngiOiBbMTIsIHsieSI6MX1dfV19Jzo6anNvbmIpWydiJ11bMDpdKSBJTlRPIDpq c29uOworCS8vIGVycm9yCisKICAgRVhFQyBTUUwgRElTQ09OTkVDVDsKIAogICByZXR1cm4gMDsK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvanNvbmIub3V0IGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9qc29uYi5vdXQKaW5kZXggNWExZWIxOGFiYTIuLjM3ZDcxYjIz ZDVkIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pzb25iLm91dAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pzb25iLm91dApAQCAtNDk4OSw2ICs0OTg5LDEy IEBAIHNlbGVjdCAoJzEyMyc6Ompzb25iKVsnYSddOwogIAogKDEgcm93KQogCitzZWxlY3QgKCcx MjMnOjpqc29uYikuYTsKKyBhIAorLS0tCisgCisoMSByb3cpCisKIHNlbGVjdCAoJzEyMyc6Ompz b25iKVswXTsKICBqc29uYiAKIC0tLS0tLS0KQEAgLTUwMDEsMTIgKzUwMDcsMjQgQEAgc2VsZWN0 ICgnMTIzJzo6anNvbmIpW05VTExdOwogIAogKDEgcm93KQogCitzZWxlY3QgKCcxMjMnOjpqc29u YikuTlVMTDsKKyBudWxsIAorLS0tLS0tCisgCisoMSByb3cpCisKIHNlbGVjdCAoJ3siYSI6IDF9 Jzo6anNvbmIpWydhJ107CiAganNvbmIgCiAtLS0tLS0tCiAgMQogKDEgcm93KQogCitzZWxlY3Qg KCd7ImEiOiAxfSc6Ompzb25iKS5hOworIGEgCistLS0KKyAxCisoMSByb3cpCisKIHNlbGVjdCAo J3siYSI6IDF9Jzo6anNvbmIpWzBdOwogIGpzb25iIAogLS0tLS0tLQpAQCAtNTAxOSw2ICs1MDM3 LDEyIEBAIHNlbGVjdCAoJ3siYSI6IDF9Jzo6anNvbmIpWydub3RfZXhpc3QnXTsKICAKICgxIHJv dykKIAorc2VsZWN0ICgneyJhIjogMX0nOjpqc29uYikuIm5vdF9leGlzdCI7Cisgbm90X2V4aXN0 IAorLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKwogc2VsZWN0ICgneyJhIjogMX0nOjpqc29uYilb TlVMTF07CiAganNvbmIgCiAtLS0tLS0tCkBAIC01MDMxLDYgKzUwNTUsMTIgQEAgc2VsZWN0ICgn WzEsICIyIiwgbnVsbF0nOjpqc29uYilbJ2EnXTsKICAKICgxIHJvdykKIAorc2VsZWN0ICgnWzEs ICIyIiwgbnVsbF0nOjpqc29uYikuYTsKKyBhIAorLS0tCisgCisoMSByb3cpCisKIHNlbGVjdCAo J1sxLCAiMiIsIG51bGxdJzo6anNvbmIpWzBdOwogIGpzb25iIAogLS0tLS0tLQpAQCAtNTA0Myw2 ICs1MDczLDEyIEBAIHNlbGVjdCAoJ1sxLCAiMiIsIG51bGxdJzo6anNvbmIpWycxJ107CiAgIjIi CiAoMSByb3cpCiAKK3NlbGVjdCAoJ1sxLCAiMiIsIG51bGxdJzo6anNvbmIpLiIxIjsKKyAxIAor LS0tCisgCisoMSByb3cpCisKIHNlbGVjdCAoJ1sxLCAiMiIsIG51bGxdJzo6anNvbmIpWzEuMF07 CiBFUlJPUjogIHN1YnNjcmlwdCB0eXBlIG51bWVyaWMgaXMgbm90IHN1cHBvcnRlZAogTElORSAx OiBzZWxlY3QgKCdbMSwgIjIiLCBudWxsXSc6Ompzb25iKVsxLjBdOwpAQCAtNTA3Miw2ICs1MTA4 LDEyIEBAIHNlbGVjdCAoJ1sxLCAiMiIsIG51bGxdJzo6anNvbmIpWzFdWydhJ107CiAgCiAoMSBy b3cpCiAKK3NlbGVjdCAoJ1sxLCAiMiIsIG51bGxdJzo6anNvbmIpWzFdLmE7CisgYSAKKy0tLQor IAorKDEgcm93KQorCiBzZWxlY3QgKCdbMSwgIjIiLCBudWxsXSc6Ompzb25iKVsxXVswXTsKICBq c29uYiAKIC0tLS0tLS0KQEAgLTUwODQsNTYgKzUxMjYsMTI3IEBAIHNlbGVjdCAoJ3siYSI6IDEs ICJiIjogImMiLCAiZCI6IFsxLCAyLCAzXX0nOjpqc29uYilbJ2InXTsKICAiYyIKICgxIHJvdykK IAorc2VsZWN0ICgneyJhIjogMSwgImIiOiAiYyIsICJkIjogWzEsIDIsIDNdfSc6Ompzb25iKS5i OworICBiICAKKy0tLS0tCisgImMiCisoMSByb3cpCisKIHNlbGVjdCAoJ3siYSI6IDEsICJiIjog ImMiLCAiZCI6IFsxLCAyLCAzXX0nOjpqc29uYilbJ2QnXTsKICAgIGpzb25iICAgCiAtLS0tLS0t LS0tLQogIFsxLCAyLCAzXQogKDEgcm93KQogCitzZWxlY3QgKCd7ImEiOiAxLCAiYiI6ICJjIiwg ImQiOiBbMSwgMiwgM119Jzo6anNvbmIpLmQ7CisgICAgIGQgICAgIAorLS0tLS0tLS0tLS0KKyBb MSwgMiwgM10KKygxIHJvdykKKwogc2VsZWN0ICgneyJhIjogMSwgImIiOiAiYyIsICJkIjogWzEs IDIsIDNdfSc6Ompzb25iKVsnZCddWzFdOwogIGpzb25iIAogLS0tLS0tLQogIDIKICgxIHJvdykK IAorc2VsZWN0ICgneyJhIjogMSwgImIiOiAiYyIsICJkIjogWzEsIDIsIDNdfSc6Ompzb25iKS5k WzFdOworIGQgCistLS0KKyAyCisoMSByb3cpCisKIHNlbGVjdCAoJ3siYSI6IDEsICJiIjogImMi LCAiZCI6IFsxLCAyLCAzXX0nOjpqc29uYilbJ2QnXVsnYSddOwogIGpzb25iIAogLS0tLS0tLQog IAogKDEgcm93KQogCitzZWxlY3QgKCd7ImEiOiAxLCAiYiI6ICJjIiwgImQiOiBbMSwgMiwgM119 Jzo6anNvbmIpLmRbJ2EnXTsKKyBkIAorLS0tCisgCisoMSByb3cpCisKK3NlbGVjdCAoJ3siYSI6 IDEsICJiIjogImMiLCAiZCI6IFsxLCAyLCAzXX0nOjpqc29uYikuZC5hOworIGEgCistLS0KKyAK KygxIHJvdykKKworc2VsZWN0ICgneyJhIjogMSwgImIiOiAiYyIsICJkIjogeyJhIjogWzEsIDIs IDNdfX0nOjpqc29uYikuZFsnYSddWzBdOworIGQgCistLS0KKyAxCisoMSByb3cpCisKK3NlbGVj dCAoJ3siYSI6IDEsICJiIjogImMiLCAiZCI6IHsiYSI6IFsxLCAyLCAzXX19Jzo6anNvbmIpLmQu YVswXTsKKyBhIAorLS0tCisgMQorKDEgcm93KQorCiBzZWxlY3QgKCd7ImEiOiB7ImExIjogeyJh MiI6ICJhYWEifX0sICJiIjogImJiYiIsICJjIjogImNjYyJ9Jzo6anNvbmIpWydhJ11bJ2ExJ107 CiAgICAgIGpzb25iICAgICAKIC0tLS0tLS0tLS0tLS0tLQogIHsiYTIiOiAiYWFhIn0KICgxIHJv dykKIAorc2VsZWN0ICgneyJhIjogeyJhMSI6IHsiYTIiOiAiYWFhIn19LCAiYiI6ICJiYmIiLCAi YyI6ICJjY2MifSc6Ompzb25iKS5hLmExOworICAgICAgYTEgICAgICAgCistLS0tLS0tLS0tLS0t LS0KKyB7ImEyIjogImFhYSJ9CisoMSByb3cpCisKIHNlbGVjdCAoJ3siYSI6IHsiYTEiOiB7ImEy IjogImFhYSJ9fSwgImIiOiAiYmJiIiwgImMiOiAiY2NjIn0nOjpqc29uYilbJ2EnXVsnYTEnXVsn YTInXTsKICBqc29uYiAKIC0tLS0tLS0KICAiYWFhIgogKDEgcm93KQogCitzZWxlY3QgKCd7ImEi OiB7ImExIjogeyJhMiI6ICJhYWEifX0sICJiIjogImJiYiIsICJjIjogImNjYyJ9Jzo6anNvbmIp LmEuYTEuYTI7CisgIGEyICAgCistLS0tLS0tCisgImFhYSIKKygxIHJvdykKKwogc2VsZWN0ICgn eyJhIjogeyJhMSI6IHsiYTIiOiAiYWFhIn19LCAiYiI6ICJiYmIiLCAiYyI6ICJjY2MifSc6Ompz b25iKVsnYSddWydhMSddWydhMiddWydhMyddOwogIGpzb25iIAogLS0tLS0tLQogIAogKDEgcm93 KQogCitzZWxlY3QgKCd7ImEiOiB7ImExIjogeyJhMiI6ICJhYWEifX0sICJiIjogImJiYiIsICJj IjogImNjYyJ9Jzo6anNvbmIpLmEuYTEuYTIuYTM7CisgYTMgCistLS0tCisgCisoMSByb3cpCisK IHNlbGVjdCAoJ3siYSI6IFsiYTEiLCB7ImIxIjogWyJhYWEiLCAiYmJiIiwgImNjYyJdfV0sICJi IjogImJiIn0nOjpqc29uYilbJ2EnXVsxXVsnYjEnXTsKICAgICAgICAgIGpzb25iICAgICAgICAg CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIFsiYWFhIiwgImJiYiIsICJjY2MiXQogKDEgcm93 KQogCitzZWxlY3QgKCd7ImEiOiBbImExIiwgeyJiMSI6IFsiYWFhIiwgImJiYiIsICJjY2MiXX1d LCAiYiI6ICJiYiJ9Jzo6anNvbmIpLmFbMV0uYjE7CisgICAgICAgICAgYjEgICAgICAgICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbImFhYSIsICJiYmIiLCAiY2NjIl0KKygxIHJvdykK Kwogc2VsZWN0ICgneyJhIjogWyJhMSIsIHsiYjEiOiBbImFhYSIsICJiYmIiLCAiY2NjIl19XSwg ImIiOiAiYmIifSc6Ompzb25iKVsnYSddWzFdWydiMSddWzJdOwogIGpzb25iIAogLS0tLS0tLQog ICJjY2MiCiAoMSByb3cpCiAKLS0tIHNsaWNlcyBhcmUgbm90IHN1cHBvcnRlZAotc2VsZWN0ICgn eyJhIjogMX0nOjpqc29uYilbJ2EnOidiJ107CitzZWxlY3QgKCd7ImEiOiBbImExIiwgeyJiMSI6 IFsiYWFhIiwgImJiYiIsICJjY2MiXX1dLCAiYiI6ICJiYiJ9Jzo6anNvbmIpLmFbMV0uYjFbMl07 CisgIGIxICAgCistLS0tLS0tCisgImNjYyIKKygxIHJvdykKKworc2VsZWN0ICgneyJhIjogMX0n Ojpqc29uYilbJ2EnOidiJ107IC0tIGZhaWxzCiBFUlJPUjogIGpzb25iIHN1YnNjcmlwdCBkb2Vz IG5vdCBzdXBwb3J0IHNsaWNlcwogTElORSAxOiBzZWxlY3QgKCd7ImEiOiAxfSc6Ompzb25iKVsn YSc6J2InXTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KQEAgLTU4 MzEsMyArNTk0NCwyOTkgQEAgc2VsZWN0ICcxMjM0NS4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDA1Jzo6anNvbmI6OmludDg7CiAgMTIzNDUKICgxIHJvdykKIAor LS0gZG90IG5vdGF0aW9uCitDUkVBVEUgVEFCTEUgdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gQVMK K1NFTEVDVCAneyJhIjogWzEsIDIsIHsiYiI6ICJjIn0sIHsiYiI6ICJkIiwgImUiOiAiZiIsICJ4 IjogeyJ5IjogInl5eSIsICJ6IjogInp6eiJ9fV0sICJiIjogWzMsIDQsIHsiYiI6ICJnIiwgIngi OiB7InkiOiAiWVlZIiwgInoiOiAiWlpaIn19XX0nOjpqc29uYiBqYjsKK1NFTEVDVCAoamIpLmEg RlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyBbMSwgMiwgeyJiIjogImMifSwgeyJiIjogImQiLCAiZSI6ICJmIiwgIngiOiB7 InkiOiAieXl5IiwgInoiOiAienp6In19XQorKDEgcm93KQorCitTRUxFQ1QgKGpiKS4iYSIgRlJP TSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsgLS0gZG91YmxlIHF1b3RlIHNob3VsZCB3b3JrCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWzEsIDIsIHsiYiI6ICJjIn0sIHsi YiI6ICJkIiwgImUiOiAiZiIsICJ4IjogeyJ5IjogInl5eSIsICJ6IjogInp6eiJ9fV0KKygxIHJv dykKKworU0VMRUNUIChqYikuJ2EnIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247IC0tIHNp bmdsZSBxdW90ZSBzaG91bGQgbm90IHdvcmsKK0VSUk9SOiAgc3ludGF4IGVycm9yIGF0IG9yIG5l YXIgIidhJyIKK0xJTkUgMTogU0VMRUNUIChqYikuJ2EnIEZST00gdGVzdF9qc29uYl9kb3Rfbm90 YXRpb247CisgICAgICAgICAgICAgICAgICAgIF4KK3NlbGVjdCAoamIpWzBdLmEgZnJvbSB0ZXN0 X2pzb25iX2RvdF9ub3RhdGlvbjsgLS0gcmV0dXJucyBzYW1lIHJlc3VsdCBhcyAoamIpLmEKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbMSwgMiwgeyJiIjogImMifSwgeyJi IjogImQiLCAiZSI6ICJmIiwgIngiOiB7InkiOiAieXl5IiwgInoiOiAienp6In19XQorKDEgcm93 KQorCitzZWxlY3QgKGpiKVsxXS5hIGZyb20gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247IC0tIHJl dHVybnMgTlVMTAorIGEgCistLS0KKyAKKygxIHJvdykKKworU0VMRUNUIChqYikuYiBGUk9NIHRl c3RfanNvbmJfZG90X25vdGF0aW9uOworICAgICAgICAgICAgICAgICAgICAgICAgIGIgICAgICAg ICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyBbMywgNCwgeyJiIjogImciLCAieCI6IHsieSI6ICJZWVkiLCAieiI6 ICJaWloifX1dCisoMSByb3cpCisKK1NFTEVDVCAoamIpLmMgRlJPTSB0ZXN0X2pzb25iX2RvdF9u b3RhdGlvbjsKKyBjIAorLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCAoamIpLmEuYiBGUk9NIHRl c3RfanNvbmJfZG90X25vdGF0aW9uOworICAgICBiICAgICAgCistLS0tLS0tLS0tLS0KKyBbImMi LCAiZCJdCisoMSByb3cpCisKK1NFTEVDVCAoamIpLmFbMl0uYiBGUk9NIHRlc3RfanNvbmJfZG90 X25vdGF0aW9uOworICBiICAKKy0tLS0tCisgImMiCisoMSByb3cpCisKK1NFTEVDVCAoamIpLmEu eC55IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICB5ICAgCistLS0tLS0tCisgInl5 eSIKKygxIHJvdykKKworU0VMRUNUIChqYikuYi54LnogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3Rh dGlvbjsKKyAgIHogICAKKy0tLS0tLS0KKyAiWlpaIgorKDEgcm93KQorCitTRUxFQ1QgKGpiKS5h LmIuYyBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworIGMgCistLS0KKyAKKygxIHJvdykK KworU0VMRUNUICgoamIpLmIpWzpdLnggRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbiB0OyAt LSBmYWlscworRVJST1I6ICBqc29uYiBzdWJzY3JpcHQgZG9lcyBub3Qgc3VwcG9ydCBzbGljZXMK K1NFTEVDVCAoamIpLmEuKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOyAtLSBmYWlscwor RVJST1I6ICB0eXBlIGpzb25iIGlzIG5vdCBjb21wb3NpdGUKKy0tIGV4cGxhaW5zIHNob3VsZCB3 b3JrCitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpIFNFTEVDVCAodC5qYikuYSBGUk9NIHRl c3RfanNvbmJfZG90X25vdGF0aW9uIHQ7CisgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAg ICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgU2VxIFNjYW4gb24gcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uIHQKKyAg IE91dHB1dDogKGpiKS5hCisoMiByb3dzKQorCitTRUxFQ1QgKHQuamIpLmEgRlJPTSB0ZXN0X2pz b25iX2RvdF9ub3RhdGlvbiB0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IFsxLCAyLCB7ImIiOiAiYyJ9LCB7ImIiOiAiZCIsICJlIjogImYiLCAieCI6IHsieSI6ICJ5eXki LCAieiI6ICJ6enoifX1dCisoMSByb3cpCisKK0VYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikg U0VMRUNUIChqYikuYVsxXSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworICAgICAgICAg ICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24gcHVibGljLnRlc3RfanNvbmJf ZG90X25vdGF0aW9uCisgICBPdXRwdXQ6IChqYikuYVsxXQorKDIgcm93cykKKworU0VMRUNUIChq YikuYVsxXSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworIGEgCistLS0KKyAyCisoMSBy b3cpCisKKy0tIHZpZXdzIHNob3VsZCB3b3JrCitDUkVBVEUgVklFVyB0ZXN0X2pzb25iX2RvdF9u b3RhdGlvbl92MSBBUyBTRUxFQ1QgKGpiKS5hWzNdLngueSBGUk9NIHRlc3RfanNvbmJfZG90X25v dGF0aW9uOworXHN2IHRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxCitDUkVBVEUgT1IgUkVQTEFD RSBWSUVXIHB1YmxpYy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MSBBUworIFNFTEVDVCAoamIp LmFbM10ueC55IEFTIHkKKyAgIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24KKy0tIG1peGVk IHN5bnRheAorRFJPUCBWSUVXIHRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxOworRVhQTEFJTiAo VkVSQk9TRSwgQ09TVFMgT0ZGKSBTRUxFQ1QgKGpiKVsnYSddLmIgRlJPTSB0ZXN0X2pzb25iX2Rv dF9ub3RhdGlvbjsKKyAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNlcSBTY2Fu IG9uIHB1YmxpYy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbgorICAgT3V0cHV0OiAoamJbJ2EnOjp0 ZXh0XSkuYgorKDIgcm93cykKKworU0VMRUNUIChqYilbJ2EnXS5iIEZST00gdGVzdF9qc29uYl9k b3Rfbm90YXRpb247IC0tIHJldHVybnMgYW4gYXJyYXkgZHVlIHRvIGxheCBtb2RlCisgICAgIGIg ICAgICAKKy0tLS0tLS0tLS0tLQorIFsiYyIsICJkIl0KKygxIHJvdykKKworQ1JFQVRFIFZJRVcg cHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxIEFTCitTRUxFQ1QgKGpiKVsnYSddLmIg RlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1xzdiB0ZXN0X2pzb25iX2RvdF9ub3RhdGlv bl92MQorQ1JFQVRFIE9SIFJFUExBQ0UgVklFVyBwdWJsaWMudGVzdF9qc29uYl9kb3Rfbm90YXRp b25fdjEgQVMKKyBTRUxFQ1QgKGpiWydhJzo6dGV4dF0pLmIgQVMgYgorICAgRlJPTSB0ZXN0X2pz b25iX2RvdF9ub3RhdGlvbgorU0VMRUNUICogZnJvbSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92 MTsKKyAgICAgYiAgICAgIAorLS0tLS0tLS0tLS0tCisgWyJjIiwgImQiXQorKDEgcm93KQorCitE Uk9QIFZJRVcgcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxOworRVhQTEFJTiAoVkVS Qk9TRSwgQ09TVFMgT0ZGKSBTRUxFQ1QgKGpiKS5hWydiJ10gRlJPTSB0ZXN0X2pzb25iX2RvdF9u b3RhdGlvbjsKKyAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNlcSBTY2FuIG9u IHB1YmxpYy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbgorICAgT3V0cHV0OiAoKGpiKS5hKVsnYic6 OnRleHRdCisoMiByb3dzKQorCitTRUxFQ1QgKGpiKS5hWydiJ10gRlJPTSB0ZXN0X2pzb25iX2Rv dF9ub3RhdGlvbjsgLS0gcmV0dXJucyBOVUxMIGJlY2F1c2UgWydiJ10gbG9va3MgZm9yIHN0cmlj dCBtYXRjaCBpbiBhbiBvYmplY3QKKyBhIAorLS0tCisgCisoMSByb3cpCisKK0NSRUFURSBWSUVX IHB1YmxpYy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MSBBUworU0VMRUNUIChqYikuYVsnYidd IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247Citcc3YgdGVzdF9qc29uYl9kb3Rfbm90YXRp b25fdjEKK0NSRUFURSBPUiBSRVBMQUNFIFZJRVcgcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0 aW9uX3YxIEFTCisgU0VMRUNUICgoamIpLmEpWydiJzo6dGV4dF0gQVMgYQorICAgRlJPTSB0ZXN0 X2pzb25iX2RvdF9ub3RhdGlvbgorU0VMRUNUICogZnJvbSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlv bl92MTsKKyBhIAorLS0tCisgCisoMSByb3cpCisKK0RST1AgVklFVyBwdWJsaWMudGVzdF9qc29u Yl9kb3Rfbm90YXRpb25fdjE7CitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpIFNFTEVDVCAo amIpLmIueFsneiddIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICAgICAgICAgICAg ICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiBwdWJsaWMudGVzdF9qc29uYl9kb3Rf bm90YXRpb24KKyAgIE91dHB1dDogKChqYikuYi54KVsneic6OnRleHRdCisoMiByb3dzKQorCitT RUxFQ1QgKGpiKS5iLnhbJ3onXSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOyAtLSB3YXJu aW5ncworICAgeCAgIAorLS0tLS0tLQorICJaWloiCisoMSByb3cpCisKK0NSRUFURSBWSUVXIHB1 YmxpYy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MSBBUworU0VMRUNUIChqYikuYi54Wyd6J10g RlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1xzdiB0ZXN0X2pzb25iX2RvdF9ub3RhdGlv bl92MQorQ1JFQVRFIE9SIFJFUExBQ0UgVklFVyBwdWJsaWMudGVzdF9qc29uYl9kb3Rfbm90YXRp b25fdjEgQVMKKyBTRUxFQ1QgKChqYikuYi54KVsneic6OnRleHRdIEFTIHgKKyAgIEZST00gdGVz dF9qc29uYl9kb3Rfbm90YXRpb24KK1NFTEVDVCAqIGZyb20gdGVzdF9qc29uYl9kb3Rfbm90YXRp b25fdjE7CisgICB4ICAgCistLS0tLS0tCisgIlpaWiIKKygxIHJvdykKKworRFJPUCBWSUVXIHB1 YmxpYy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MTsKK0VYUExBSU4gKFZFUkJPU0UsIENPU1RT IE9GRikgU0VMRUNUIChqYilbJ2InXS54Wyd6J10gRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlv bjsKKyAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNlcSBTY2FuIG9uIHB1Ymxp Yy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbgorICAgT3V0cHV0OiAoKGpiWydiJzo6dGV4dF0pLngp Wyd6Jzo6dGV4dF0KKygyIHJvd3MpCisKK1NFTEVDVCAoamIpWydiJ10ueFsneiddIEZST00gdGVz dF9qc29uYl9kb3Rfbm90YXRpb247ICAtLSB3YXJuaW5ncworICAgeCAgIAorLS0tLS0tLQorICJa WloiCisoMSByb3cpCisKK0NSRUFURSBWSUVXIHB1YmxpYy50ZXN0X2pzb25iX2RvdF9ub3RhdGlv bl92MSBBUworU0VMRUNUIChqYilbJ2InXS54Wyd6J10gRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3Rh dGlvbjsKK1xzdiB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MQorQ1JFQVRFIE9SIFJFUExBQ0Ug VklFVyBwdWJsaWMudGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjEgQVMKKyBTRUxFQ1QgKChqYlsn Yic6OnRleHRdKS54KVsneic6OnRleHRdIEFTIHgKKyAgIEZST00gdGVzdF9qc29uYl9kb3Rfbm90 YXRpb24KK1NFTEVDVCAqIGZyb20gdGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjE7CisgICB4ICAg CistLS0tLS0tCisgIlpaWiIKKygxIHJvdykKKworRFJPUCBWSUVXIHB1YmxpYy50ZXN0X2pzb25i X2RvdF9ub3RhdGlvbl92MTsKK0VYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikgU0VMRUNUIChq YikuYlsneCddLnogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyAgICAgICAgICAgICAg ICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIFNlcSBTY2FuIG9uIHB1YmxpYy50ZXN0X2pzb25iX2RvdF9u b3RhdGlvbgorICAgT3V0cHV0OiAoKChqYikuYilbJ3gnOjp0ZXh0XSkuegorKDIgcm93cykKKwor U0VMRUNUIChqYikuYlsneCddLnogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsgLS0gcmV0 dXJucyBOVUxMCisgeiAKKy0tLQorIAorKDEgcm93KQorCitDUkVBVEUgVklFVyBwdWJsaWMudGVz dF9qc29uYl9kb3Rfbm90YXRpb25fdjEgQVMKK1NFTEVDVCAoamIpLmJbJ3gnXS56IEZST00gdGVz dF9qc29uYl9kb3Rfbm90YXRpb247Citcc3YgdGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjEKK0NS RUFURSBPUiBSRVBMQUNFIFZJRVcgcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxIEFT CisgU0VMRUNUICgoKGpiKS5iKVsneCc6OnRleHRdKS56IEFTIHoKKyAgIEZST00gdGVzdF9qc29u Yl9kb3Rfbm90YXRpb24KK1NFTEVDVCAqIGZyb20gdGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjE7 CisgeiAKKy0tLQorIAorKDEgcm93KQorCitEUk9QIFZJRVcgcHVibGljLnRlc3RfanNvbmJfZG90 X25vdGF0aW9uX3YxOworRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKSBTRUxFQ1QgKGpiKS5i Wyd4J11bJ3onXSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworICAgICAgICAgICAgICAg ICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24gcHVibGljLnRlc3RfanNvbmJfZG90X25v dGF0aW9uCisgICBPdXRwdXQ6ICgoamIpLmIpWyd4Jzo6dGV4dF1bJ3onOjp0ZXh0XQorKDIgcm93 cykKKworU0VMRUNUIChqYikuYlsneCddWyd6J10gRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlv bjsgLS0gcmV0dXJucyBOVUxMCisgYiAKKy0tLQorIAorKDEgcm93KQorCitDUkVBVEUgVklFVyBw dWJsaWMudGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjEgQVMKK1NFTEVDVCAoamIpLmJbJ3gnXVsn eiddIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247Citcc3YgdGVzdF9qc29uYl9kb3Rfbm90 YXRpb25fdjEKK0NSRUFURSBPUiBSRVBMQUNFIFZJRVcgcHVibGljLnRlc3RfanNvbmJfZG90X25v dGF0aW9uX3YxIEFTCisgU0VMRUNUICgoamIpLmIpWyd4Jzo6dGV4dF1bJ3onOjp0ZXh0XSBBUyBi CisgICBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uCitTRUxFQ1QgKiBmcm9tIHRlc3RfanNv bmJfZG90X25vdGF0aW9uX3YxOworIGIgCistLS0KKyAKKygxIHJvdykKKworRFJPUCBWSUVXIHB1 YmxpYy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MTsKK0VYUExBSU4gKFZFUkJPU0UsIENPU1RT IE9GRikgU0VMRUNUIChqYilbJ2InXVsneCddLnogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlv bjsKKyAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNlcSBTY2FuIG9uIHB1Ymxp Yy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbgorICAgT3V0cHV0OiAoamJbJ2InOjp0ZXh0XVsneCc6 OnRleHRdKS56CisoMiByb3dzKQorCitTRUxFQ1QgKGpiKVsnYiddWyd4J10ueiBGUk9NIHRlc3Rf anNvbmJfZG90X25vdGF0aW9uOyAtLSByZXR1cm5zIE5VTEwKKyB6IAorLS0tCisgCisoMSByb3cp CisKK0NSRUFURSBWSUVXIHB1YmxpYy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MSBBUworU0VM RUNUIChqYilbJ2InXVsneCddLnogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1xzdiB0 ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MQorQ1JFQVRFIE9SIFJFUExBQ0UgVklFVyBwdWJsaWMu dGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjEgQVMKKyBTRUxFQ1QgKGpiWydiJzo6dGV4dF1bJ3gn Ojp0ZXh0XSkueiBBUyB6CisgICBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uCitTRUxFQ1Qg KiBmcm9tIHRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxOworIHogCistLS0KKyAKKygxIHJvdykK KworRFJPUCBWSUVXIHB1YmxpYy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MTsKKy0tIGNsZWFu IHVwCitEUk9QIFRBQkxFIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOwpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvanNvbmIuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvanNvbmIu c3FsCmluZGV4IDU3YzExYWNkZGZlLi41ZmM1M2UxYzlhYSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvanNvbmIuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2pzb25iLnNx bApAQCAtMTMwNCwzMyArMTMwNCw1MSBAQCBzZWxlY3QganNvbmJfaW5zZXJ0KCd7ImEiOiB7ImIi OiAidmFsdWUifX0nLCAne2EsIGJ9JywgJyJuZXdfdmFsdWUiJywgdHJ1ZSk7CiAKIC0tIGpzb25i IHN1YnNjcmlwdAogc2VsZWN0ICgnMTIzJzo6anNvbmIpWydhJ107CitzZWxlY3QgKCcxMjMnOjpq c29uYikuYTsKIHNlbGVjdCAoJzEyMyc6Ompzb25iKVswXTsKIHNlbGVjdCAoJzEyMyc6Ompzb25i KVtOVUxMXTsKK3NlbGVjdCAoJzEyMyc6Ompzb25iKS5OVUxMOwogc2VsZWN0ICgneyJhIjogMX0n Ojpqc29uYilbJ2EnXTsKK3NlbGVjdCAoJ3siYSI6IDF9Jzo6anNvbmIpLmE7CiBzZWxlY3QgKCd7 ImEiOiAxfSc6Ompzb25iKVswXTsKIHNlbGVjdCAoJ3siYSI6IDF9Jzo6anNvbmIpWydub3RfZXhp c3QnXTsKK3NlbGVjdCAoJ3siYSI6IDF9Jzo6anNvbmIpLiJub3RfZXhpc3QiOwogc2VsZWN0ICgn eyJhIjogMX0nOjpqc29uYilbTlVMTF07CiBzZWxlY3QgKCdbMSwgIjIiLCBudWxsXSc6Ompzb25i KVsnYSddOworc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYikuYTsKIHNlbGVjdCAoJ1sx LCAiMiIsIG51bGxdJzo6anNvbmIpWzBdOwogc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29u YilbJzEnXTsKK3NlbGVjdCAoJ1sxLCAiMiIsIG51bGxdJzo6anNvbmIpLiIxIjsKIHNlbGVjdCAo J1sxLCAiMiIsIG51bGxdJzo6anNvbmIpWzEuMF07CiBzZWxlY3QgKCdbMSwgIjIiLCBudWxsXSc6 Ompzb25iKVsyXTsKIHNlbGVjdCAoJ1sxLCAiMiIsIG51bGxdJzo6anNvbmIpWzNdOwogc2VsZWN0 ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbLTJdOwogc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0n Ojpqc29uYilbMV1bJ2EnXTsKK3NlbGVjdCAoJ1sxLCAiMiIsIG51bGxdJzo6anNvbmIpWzFdLmE7 CiBzZWxlY3QgKCdbMSwgIjIiLCBudWxsXSc6Ompzb25iKVsxXVswXTsKIHNlbGVjdCAoJ3siYSI6 IDEsICJiIjogImMiLCAiZCI6IFsxLCAyLCAzXX0nOjpqc29uYilbJ2InXTsKK3NlbGVjdCAoJ3si YSI6IDEsICJiIjogImMiLCAiZCI6IFsxLCAyLCAzXX0nOjpqc29uYikuYjsKIHNlbGVjdCAoJ3si YSI6IDEsICJiIjogImMiLCAiZCI6IFsxLCAyLCAzXX0nOjpqc29uYilbJ2QnXTsKK3NlbGVjdCAo J3siYSI6IDEsICJiIjogImMiLCAiZCI6IFsxLCAyLCAzXX0nOjpqc29uYikuZDsKIHNlbGVjdCAo J3siYSI6IDEsICJiIjogImMiLCAiZCI6IFsxLCAyLCAzXX0nOjpqc29uYilbJ2QnXVsxXTsKK3Nl bGVjdCAoJ3siYSI6IDEsICJiIjogImMiLCAiZCI6IFsxLCAyLCAzXX0nOjpqc29uYikuZFsxXTsK IHNlbGVjdCAoJ3siYSI6IDEsICJiIjogImMiLCAiZCI6IFsxLCAyLCAzXX0nOjpqc29uYilbJ2Qn XVsnYSddOworc2VsZWN0ICgneyJhIjogMSwgImIiOiAiYyIsICJkIjogWzEsIDIsIDNdfSc6Ompz b25iKS5kWydhJ107CitzZWxlY3QgKCd7ImEiOiAxLCAiYiI6ICJjIiwgImQiOiBbMSwgMiwgM119 Jzo6anNvbmIpLmQuYTsKK3NlbGVjdCAoJ3siYSI6IDEsICJiIjogImMiLCAiZCI6IHsiYSI6IFsx LCAyLCAzXX19Jzo6anNvbmIpLmRbJ2EnXVswXTsKK3NlbGVjdCAoJ3siYSI6IDEsICJiIjogImMi LCAiZCI6IHsiYSI6IFsxLCAyLCAzXX19Jzo6anNvbmIpLmQuYVswXTsKIHNlbGVjdCAoJ3siYSI6 IHsiYTEiOiB7ImEyIjogImFhYSJ9fSwgImIiOiAiYmJiIiwgImMiOiAiY2NjIn0nOjpqc29uYilb J2EnXVsnYTEnXTsKK3NlbGVjdCAoJ3siYSI6IHsiYTEiOiB7ImEyIjogImFhYSJ9fSwgImIiOiAi YmJiIiwgImMiOiAiY2NjIn0nOjpqc29uYikuYS5hMTsKIHNlbGVjdCAoJ3siYSI6IHsiYTEiOiB7 ImEyIjogImFhYSJ9fSwgImIiOiAiYmJiIiwgImMiOiAiY2NjIn0nOjpqc29uYilbJ2EnXVsnYTEn XVsnYTInXTsKK3NlbGVjdCAoJ3siYSI6IHsiYTEiOiB7ImEyIjogImFhYSJ9fSwgImIiOiAiYmJi IiwgImMiOiAiY2NjIn0nOjpqc29uYikuYS5hMS5hMjsKIHNlbGVjdCAoJ3siYSI6IHsiYTEiOiB7 ImEyIjogImFhYSJ9fSwgImIiOiAiYmJiIiwgImMiOiAiY2NjIn0nOjpqc29uYilbJ2EnXVsnYTEn XVsnYTInXVsnYTMnXTsKK3NlbGVjdCAoJ3siYSI6IHsiYTEiOiB7ImEyIjogImFhYSJ9fSwgImIi OiAiYmJiIiwgImMiOiAiY2NjIn0nOjpqc29uYikuYS5hMS5hMi5hMzsKIHNlbGVjdCAoJ3siYSI6 IFsiYTEiLCB7ImIxIjogWyJhYWEiLCAiYmJiIiwgImNjYyJdfV0sICJiIjogImJiIn0nOjpqc29u YilbJ2EnXVsxXVsnYjEnXTsKK3NlbGVjdCAoJ3siYSI6IFsiYTEiLCB7ImIxIjogWyJhYWEiLCAi YmJiIiwgImNjYyJdfV0sICJiIjogImJiIn0nOjpqc29uYikuYVsxXS5iMTsKIHNlbGVjdCAoJ3si YSI6IFsiYTEiLCB7ImIxIjogWyJhYWEiLCAiYmJiIiwgImNjYyJdfV0sICJiIjogImJiIn0nOjpq c29uYilbJ2EnXVsxXVsnYjEnXVsyXTsKK3NlbGVjdCAoJ3siYSI6IFsiYTEiLCB7ImIxIjogWyJh YWEiLCAiYmJiIiwgImNjYyJdfV0sICJiIjogImJiIn0nOjpqc29uYikuYVsxXS5iMVsyXTsKIAot LS0gc2xpY2VzIGFyZSBub3Qgc3VwcG9ydGVkCi1zZWxlY3QgKCd7ImEiOiAxfSc6Ompzb25iKVsn YSc6J2InXTsKK3NlbGVjdCAoJ3siYSI6IDF9Jzo6anNvbmIpWydhJzonYiddOyAtLSBmYWlscwog c2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbMToyXTsKIHNlbGVjdCAoJ1sxLCAiMiIs IG51bGxdJzo6anNvbmIpWzoyXTsKIHNlbGVjdCAoJ1sxLCAiMiIsIG51bGxdJzo6anNvbmIpWzE6 XTsKQEAgLTE1OTAsMyArMTYwOCw5NCBAQCBzZWxlY3QgJzEyMzQ1LjAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUnOjpqc29uYjo6ZmxvYXQ4Owogc2VsZWN0ICcx MjM0NS4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1Jzo6anNv bmI6OmludDI7CiBzZWxlY3QgJzEyMzQ1LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDUnOjpqc29uYjo6aW50NDsKIHNlbGVjdCAnMTIzNDUuMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNSc6Ompzb25iOjppbnQ4OworCistLSBk b3Qgbm90YXRpb24KK0NSRUFURSBUQUJMRSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbiBBUworU0VM RUNUICd7ImEiOiBbMSwgMiwgeyJiIjogImMifSwgeyJiIjogImQiLCAiZSI6ICJmIiwgIngiOiB7 InkiOiAieXl5IiwgInoiOiAienp6In19XSwgImIiOiBbMywgNCwgeyJiIjogImciLCAieCI6IHsi eSI6ICJZWVkiLCAieiI6ICJaWloifX1dfSc6Ompzb25iIGpiOworCitTRUxFQ1QgKGpiKS5hIEZS T00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS4iYSIgRlJPTSB0ZXN0X2pz b25iX2RvdF9ub3RhdGlvbjsgLS0gZG91YmxlIHF1b3RlIHNob3VsZCB3b3JrCitTRUxFQ1QgKGpi KS4nYScgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsgLS0gc2luZ2xlIHF1b3RlIHNob3Vs ZCBub3Qgd29yaworc2VsZWN0IChqYilbMF0uYSBmcm9tIHRlc3RfanNvbmJfZG90X25vdGF0aW9u OyAtLSByZXR1cm5zIHNhbWUgcmVzdWx0IGFzIChqYikuYQorc2VsZWN0IChqYilbMV0uYSBmcm9t IHRlc3RfanNvbmJfZG90X25vdGF0aW9uOyAtLSByZXR1cm5zIE5VTEwKK1NFTEVDVCAoamIpLmIg RlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLmMgRlJPTSB0ZXN0X2pz b25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLmEuYiBGUk9NIHRlc3RfanNvbmJfZG90X25v dGF0aW9uOworU0VMRUNUIChqYikuYVsyXS5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247 CitTRUxFQ1QgKGpiKS5hLngueSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNU IChqYikuYi54LnogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLmEu Yi5jIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKChqYikuYilbOl0ueCBG Uk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uIHQ7IC0tIGZhaWxzCitTRUxFQ1QgKGpiKS5hLiog RlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsgLS0gZmFpbHMKKworLS0gZXhwbGFpbnMgc2hv dWxkIHdvcmsKK0VYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikgU0VMRUNUICh0LmpiKS5hIEZS T00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKK1NFTEVDVCAodC5qYikuYSBGUk9NIHRlc3Rf anNvbmJfZG90X25vdGF0aW9uIHQ7CitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpIFNFTEVD VCAoamIpLmFbMV0gRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLmFb MV0gRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKworLS0gdmlld3Mgc2hvdWxkIHdvcmsK K0NSRUFURSBWSUVXIHRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxIEFTIFNFTEVDVCAoamIpLmFb M10ueC55IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247Citcc3YgdGVzdF9qc29uYl9kb3Rf bm90YXRpb25fdjEKKworLS0gbWl4ZWQgc3ludGF4CitEUk9QIFZJRVcgdGVzdF9qc29uYl9kb3Rf bm90YXRpb25fdjE7CisKK0VYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikgU0VMRUNUIChqYilb J2EnXS5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKVsnYSddLmIg RlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsgLS0gcmV0dXJucyBhbiBhcnJheSBkdWUgdG8g bGF4IG1vZGUKK0NSRUFURSBWSUVXIHB1YmxpYy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MSBB UworU0VMRUNUIChqYilbJ2EnXS5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247Citcc3Yg dGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjEKK1NFTEVDVCAqIGZyb20gdGVzdF9qc29uYl9kb3Rf bm90YXRpb25fdjE7CitEUk9QIFZJRVcgcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uX3Yx OworCitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpIFNFTEVDVCAoamIpLmFbJ2InXSBGUk9N IHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNUIChqYikuYVsnYiddIEZST00gdGVzdF9q c29uYl9kb3Rfbm90YXRpb247IC0tIHJldHVybnMgTlVMTCBiZWNhdXNlIFsnYiddIGxvb2tzIGZv ciBzdHJpY3QgbWF0Y2ggaW4gYW4gb2JqZWN0CitDUkVBVEUgVklFVyBwdWJsaWMudGVzdF9qc29u Yl9kb3Rfbm90YXRpb25fdjEgQVMKK1NFTEVDVCAoamIpLmFbJ2InXSBGUk9NIHRlc3RfanNvbmJf ZG90X25vdGF0aW9uOworXHN2IHRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxCitTRUxFQ1QgKiBm cm9tIHRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxOworRFJPUCBWSUVXIHB1YmxpYy50ZXN0X2pz b25iX2RvdF9ub3RhdGlvbl92MTsKKworRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKSBTRUxF Q1QgKGpiKS5iLnhbJ3onXSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNUIChq YikuYi54Wyd6J10gRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsgLS0gd2FybmluZ3MKK0NS RUFURSBWSUVXIHB1YmxpYy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MSBBUworU0VMRUNUIChq YikuYi54Wyd6J10gRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1xzdiB0ZXN0X2pzb25i X2RvdF9ub3RhdGlvbl92MQorU0VMRUNUICogZnJvbSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92 MTsKK0RST1AgVklFVyBwdWJsaWMudGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjE7CisKK0VYUExB SU4gKFZFUkJPU0UsIENPU1RTIE9GRikgU0VMRUNUIChqYilbJ2InXS54Wyd6J10gRlJPTSB0ZXN0 X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpWydiJ10ueFsneiddIEZST00gdGVzdF9q c29uYl9kb3Rfbm90YXRpb247ICAtLSB3YXJuaW5ncworQ1JFQVRFIFZJRVcgcHVibGljLnRlc3Rf anNvbmJfZG90X25vdGF0aW9uX3YxIEFTCitTRUxFQ1QgKGpiKVsnYiddLnhbJ3onXSBGUk9NIHRl c3RfanNvbmJfZG90X25vdGF0aW9uOworXHN2IHRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxCitT RUxFQ1QgKiBmcm9tIHRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxOworRFJPUCBWSUVXIHB1Ymxp Yy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MTsKKworRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMg T0ZGKSBTRUxFQ1QgKGpiKS5iWyd4J10ueiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOwor U0VMRUNUIChqYikuYlsneCddLnogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsgLS0gcmV0 dXJucyBOVUxMCitDUkVBVEUgVklFVyBwdWJsaWMudGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjEg QVMKK1NFTEVDVCAoamIpLmJbJ3gnXS56IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247Citc c3YgdGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjEKK1NFTEVDVCAqIGZyb20gdGVzdF9qc29uYl9k b3Rfbm90YXRpb25fdjE7CitEUk9QIFZJRVcgcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9u X3YxOworCitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpIFNFTEVDVCAoamIpLmJbJ3gnXVsn eiddIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS5iWyd4J11bJ3on XSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOyAtLSByZXR1cm5zIE5VTEwKK0NSRUFURSBW SUVXIHB1YmxpYy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MSBBUworU0VMRUNUIChqYikuYlsn eCddWyd6J10gRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1xzdiB0ZXN0X2pzb25iX2Rv dF9ub3RhdGlvbl92MQorU0VMRUNUICogZnJvbSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MTsK K0RST1AgVklFVyBwdWJsaWMudGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjE7CisKK0VYUExBSU4g KFZFUkJPU0UsIENPU1RTIE9GRikgU0VMRUNUIChqYilbJ2InXVsneCddLnogRlJPTSB0ZXN0X2pz b25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpWydiJ11bJ3gnXS56IEZST00gdGVzdF9qc29u Yl9kb3Rfbm90YXRpb247IC0tIHJldHVybnMgTlVMTAorQ1JFQVRFIFZJRVcgcHVibGljLnRlc3Rf anNvbmJfZG90X25vdGF0aW9uX3YxIEFTCitTRUxFQ1QgKGpiKVsnYiddWyd4J10ueiBGUk9NIHRl c3RfanNvbmJfZG90X25vdGF0aW9uOworXHN2IHRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxCitT RUxFQ1QgKiBmcm9tIHRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxOworRFJPUCBWSUVXIHB1Ymxp Yy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MTsKKworLS0gY2xlYW4gdXAKK0RST1AgVEFCTEUg dGVzdF9qc29uYl9kb3Rfbm90YXRpb247CmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQv dHlwZWRlZnMubGlzdCBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CmluZGV4IGU5 MGFmNWIyYWQzLi4yM2UzOGMxNjNjNSAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5 cGVkZWZzLmxpc3QKKysrIGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKQEAgLTgw NSw2ICs4MDUsNyBAQCBGZHdSb3V0aW5lCiBGZXRjaERpcmVjdGlvbgogRmV0Y2hEaXJlY3Rpb25L ZXl3b3JkcwogRmV0Y2hTdG10CitGaWVsZEFjY2Vzc29yRXhwcgogRmllbGRTZWxlY3QKIEZpZWxk U3RvcmUKIEZpbGUKLS0gCjIuMzkuNSAoQXBwbGUgR2l0LTE1NCkKCg== --00000000000085838c063edb3d65 Content-Type: application/octet-stream; name="v19-0006-Implement-Jsonb-subscripting-with-slicing.patch" Content-Disposition: attachment; filename="v19-0006-Implement-Jsonb-subscripting-with-slicing.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mflgmzs82 RnJvbSBmYmMzODBiMDQwNGJmYzI5ZTRlMmNiYzdkZGFlZTFkZTlmZTM4M2ZhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5kcmEgV2FuZyA8YWxleGFuZHJhLndhbmcub3NzQGdt YWlsLmNvbT4KRGF0ZTogVHVlLCA4IEp1bCAyMDI1IDIyOjE4OjA3IC0wNzAwClN1YmplY3Q6IFtQ QVRDSCB2MTkgNi83XSBJbXBsZW1lbnQgSnNvbmIgc3Vic2NyaXB0aW5nIHdpdGggc2xpY2luZwoK UHJldmlvdXNseSwgc2xpY2luZyB3YXMgbm90IHN1cHBvcnRlZCBmb3IganNvbmIgc3Vic2NyaXB0 aW5nLiBUaGlzIGNvbW1pdAppbXBsZW1lbnRzIHN1YnNjcmlwdGluZyB3aXRoIHNsaWNpbmcgYXMg cGFydCBvZiB0aGUgSlNPTiBzaW1wbGlmaWVkIGFjY2Vzc29yCnN5bnRheCBzcGVjaWZpZWQgaW4g U1FMOjIwMjMuCgpDby1hdXRob3JlZC1ieTogTmlraXRhIEdsdWtob3YgPGdsdWtob3Yubi5hQGdt YWlsLmNvbT4KQ28tYXV0aG9yZWQtYnk6IEFsZXhhbmRyYSBXYW5nIDxhbGV4YW5kcmEud2FuZy5v c3NAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQW5kcmV3IER1bnN0YW4gPGFuZHJld0BkdW5zbGFu ZS5uZXQ+ClJldmlld2VkLWJ5OiBNYXRoZXVzIEFsY2FudGFyYSA8bWF0aGV1c3NzaWx2OTdAZ21h aWwuY29tPgpSZXZpZXdlZC1ieTogTWFyayBEaWxnZXIgPG1hcmsuZGlsZ2VyQGVudGVycHJpc2Vk Yi5jb20+ClJldmlld2VkLWJ5OiBKaWFuIEhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ ClJldmlld2VkLWJ5OiBWaWsgRmVhcmluZyA8dmlrQHBvc3RncmVzZnJpZW5kcy5vcmc+ClJldmll d2VkLWJ5OiBOaWtpdGEgTWFsYWtob3YgPGh1a3V0b2NAZ21haWwuY29tPgpSZXZpZXdlZC1ieTog UGV0ZXIgRWlzZW50cmF1dCA8cGV0ZXJAZWlzZW50cmF1dC5vcmc+ClJldmlld2VkLWJ5OiBDaGFv IExpIDxsaS5ldmFuLmNoYW9AZ21haWwuY29tPgpUZXN0ZWQtYnk6IE1hcmsgRGlsZ2VyIDxtYXJr LmRpbGdlckBlbnRlcnByaXNlZGIuY29tPgpUZXN0ZWQtYnk6IEppYW4gSGUgPGppYW4udW5pdmVy c2FsaXR5QGdtYWlsLmNvbT4KLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmJzdWJzLmMg ICAgICAgICAgICAgfCAxMTkgKysrKysrKystLS0tLS0KIC4uLi9lY3BnL3Rlc3QvZXhwZWN0ZWQv c3FsLXNxbGpzb24uYyAgICAgICAgICB8ICAxNiArLQogLi4uL2VjcGcvdGVzdC9leHBlY3RlZC9z cWwtc3FsanNvbi5zdGRlcnIgICAgIHwgIDI2ICsrLS0KIC4uLi9lY3BnL3Rlc3QvZXhwZWN0ZWQv c3FsLXNxbGpzb24uc3Rkb3V0ICAgICB8ICAgMyArCiBzcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3Qv c3FsL3NxbGpzb24ucGdjICAgICAgfCAgIDcgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv anNvbmIub3V0ICAgICAgICAgICB8IDE0NSArKysrKysrKysrKysrKysrLS0KIHNyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL2pzb25iLnNxbCAgICAgICAgICAgICAgICB8ICA1MyArKysrKystCiA3IGZpbGVz IGNoYW5nZWQsIDI4NiBpbnNlcnRpb25zKCspLCA4MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmJzdWJzLmMgYi9zcmMvYmFja2VuZC91dGlscy9h ZHQvanNvbmJzdWJzLmMKaW5kZXggY2NjNWYzYzZlOTQuLjQ3NjJmNmJkMTFjIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmJzdWJzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRp bHMvYWR0L2pzb25ic3Vicy5jCkBAIC0xMTEsNyArMTExLDcgQEAgY29lcmNlX2pzb25wYXRoX3N1 YnNjcmlwdF90b19pbnQ0X29yX3RleHQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpzdWJFeHBy KQogICoKICAqIEpzb25QYXRoIGlzIG5lZWRlZCBpZiB0aGUgaW5kaXJlY3Rpb24gbGlzdCBpbmNs dWRlczoKICAqIC0gU3RyaW5nLWJhc2VkIGFjY2VzcyAoZG90IG5vdGF0aW9uKQotICogLSBTbGlj ZS1iYXNlZCBzdWJzY3JpcHRpbmcgKHdoZW4gaXNTbGljZSBpcyB0cnVlKQorICogLSBTbGljZS1i YXNlZCBzdWJzY3JpcHRpbmcKICAqCiAgKiBPdGhlcndpc2UsIHNpbXBsZSBqc29uYiBzdWJzY3Jp cHRpbmcgaXMgZW5vdWdoLgogICovCkBAIC0xMjcsNyArMTI3LDExIEBAIGpzb25iX2NoZWNrX2pz b25wYXRoX25lZWRlZChMaXN0ICppbmRpcmVjdGlvbikKIAkJaWYgKElzQShhY2Nlc3NvciwgU3Ry aW5nKSkKIAkJCXJldHVybiB0cnVlOwogCQllbHNlCisJCXsKIAkJCUFzc2VydChJc0EoYWNjZXNz b3IsIEFfSW5kaWNlcykpOworCQkJaWYgKGNhc3ROb2RlKEFfSW5kaWNlcywgYWNjZXNzb3IpLT5p c19zbGljZSkKKwkJCQlyZXR1cm4gdHJ1ZTsKKwkJfQogCX0KIAogCXJldHVybiBmYWxzZTsKQEAg LTE1MiwyMCArMTU2LDQ1IEBAIG1ha2VfanNvbnBhdGhfaXRlbShKc29uUGF0aEl0ZW1UeXBlIHR5 cGUpCiAJcmV0dXJuIHY7CiB9CiAKKy8qCisgKiBCdWlsZCBhIEpzb25QYXRoUGFyc2VJdGVtIGZv ciBhIGNvbnN0YW50IGludGVnZXIgdmFsdWUuCisgKgorICogVGhpcyBmdW5jdGlvbiBjb25zdHJ1 Y3RzIGEganBpTnVtZXJpYyBpdGVtIGZvciB1c2UgaW4gSnNvblBhdGgsCisgKiBhbmQgYXBwZW5k cyBhIG1hdGNoaW5nIENvbnN0KElOVDQpIG5vZGUgdG8gdGhlIGdpdmVuIGV4cHJlc3Npb24gbGlz dAorICogZm9yIHVzZSBpbiBFWFBMQUlOLCB2aWV3cywgZXRjLgorICoKKyAqIFBhcmFtZXRlcnM6 CisgKiAtIHZhbDogaW50ZWdlciBjb25zdGFudCB2YWx1ZQorICogLSBleHByczogbGlzdCBvZiBl eHByZXNzaW9uIG5vZGVzICh1cGRhdGVkIGluIHBsYWNlKQorICovCitzdGF0aWMgSnNvblBhdGhQ YXJzZUl0ZW0gKgorbWFrZV9qc29ucGF0aF9pdGVtX2ludChpbnQzMiB2YWwsIExpc3QgKipleHBy cykKK3sKKwlKc29uUGF0aFBhcnNlSXRlbSAqanBpID0gbWFrZV9qc29ucGF0aF9pdGVtKGpwaU51 bWVyaWMpOworCisJanBpLT52YWx1ZS5udW1lcmljID0KKwkJRGF0dW1HZXROdW1lcmljKERpcmVj dEZ1bmN0aW9uQ2FsbDEoaW50NF9udW1lcmljLCBJbnQzMkdldERhdHVtKHZhbCkpKTsKKworCSpl eHBycyA9IGxhcHBlbmQoKmV4cHJzLCBtYWtlQ29uc3QoSU5UNE9JRCwgLTEsIEludmFsaWRPaWQs IDQsCisJCQkJCQkJCQkgICBJbnQzMkdldERhdHVtKHZhbCksIGZhbHNlLCB0cnVlKSk7CisKKwly ZXR1cm4ganBpOworfQorCiAvKgogICogQ29udmVydCBhIGNvbnN0YW50IGludGVnZXIgZXhwcmVz c2lvbiBpbnRvIGEgSnNvblBhdGhQYXJzZUl0ZW0uCiAgKgogICogVGhlIGlucHV0IGV4cHJlc3Np b24gbXVzdCBiZSBhIG5vbi1udWxsIGNvbnN0YW50IG9mIHR5cGUgSU5UNC4gUmV0dXJucyBOVUxM IG90aGVyd2lzZS4KLSAqIFRoaXMgZnVuY3Rpb24gY29uc3RydWN0cyBhIGpwaU51bWVyaWMgaXRl bSBmb3IgdXNlIGluIEpzb25QYXRoIGFuZCBhcHBlbmRzIGEgbWF0Y2hpbmcKLSAqIENvbnN0KElO VDQpIG5vZGUgdG8gdGhlIGdpdmVuIGV4cHJlc3Npb24gbGlzdCBmb3IgdXNlIGluIEVYUExBSU4s IHZpZXdzLCBldGMuCisgKiBUaGUgZnVuY3Rpb24gZXh0cmFjdHMgdGhlIHZhbHVlIGFuZCBkZWxl Z2F0ZXMgaXQgdG8gbWFrZV9qc29ucGF0aF9pdGVtX2ludCgpLgogICoKICAqIFBhcmFtZXRlcnM6 CiAgKiAtIHBzdGF0ZTogcGFyc2Ugc3RhdGUgY29udGV4dAogICogLSBleHByOiBpbnB1dCBleHBy ZXNzaW9uIG5vZGUKICAqIC0gZXhwcnM6IGxpc3Qgb2YgZXhwcmVzc2lvbiBub2RlcyAodXBkYXRl ZCBpbiBwbGFjZSkKKyAqIC0gbm9fZXJyb3I6IHJldHVybnMgTlVMTCB3aGVuIHRoZSBkYXRhIHR5 cGUgZG9lc24ndCBtYXRjaC4gT3RoZXJ3aXNlLCBlbWl0cyBhbiBFUlJPUi4KICAqLwogc3RhdGlj IEpzb25QYXRoUGFyc2VJdGVtICoKLW1ha2VfanNvbnBhdGhfaXRlbV9leHByKFBhcnNlU3RhdGUg KnBzdGF0ZSwgTm9kZSAqZXhwciwgTGlzdCAqKmV4cHJzKQorbWFrZV9qc29ucGF0aF9pdGVtX2V4 cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpleHByLCBMaXN0ICoqZXhwcnMsIGJvb2wgbm9f ZXJyb3IpCiB7CiAJQ29uc3QJICAgKmNuc3Q7CiAKQEAgLTE3NSwyMCArMjA0LDE3IEBAIG1ha2Vf anNvbnBhdGhfaXRlbV9leHByKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwciwgTGlzdCAq KmV4cHJzKQogCXsKIAkJY25zdCA9IChDb25zdCAqKSBleHByOwogCQlpZiAoY25zdC0+Y29uc3R0 eXBlID09IElOVDRPSUQgJiYgIShjbnN0LT5jb25zdGlzbnVsbCkpCi0JCXsKLQkJCUpzb25QYXRo UGFyc2VJdGVtICpqcGkgPSBtYWtlX2pzb25wYXRoX2l0ZW0oanBpTnVtZXJpYyk7Ci0KLQkJCWpw aS0+dmFsdWUubnVtZXJpYyA9Ci0JCQkJRGF0dW1HZXROdW1lcmljKERpcmVjdEZ1bmN0aW9uQ2Fs bDEoaW50NF9udW1lcmljLCBJbnQzMkdldERhdHVtKGNuc3QtPmNvbnN0dmFsdWUpKSk7Ci0KLQkJ CSpleHBycyA9IGxhcHBlbmQoKmV4cHJzLCBtYWtlQ29uc3QoSU5UNE9JRCwgLTEsIEludmFsaWRP aWQsIDQsCi0JCQkJCQkJCQkJCSAgIEludDMyR2V0RGF0dW0oY25zdC0+Y29uc3R2YWx1ZSksIGZh bHNlLCB0cnVlKSk7Ci0KLQkJCXJldHVybiBqcGk7Ci0JCX0KKwkJCXJldHVybiBtYWtlX2pzb25w YXRoX2l0ZW1faW50KERhdHVtR2V0SW50MzIoY25zdC0+Y29uc3R2YWx1ZSksIGV4cHJzKTsKIAl9 CiAKLQlyZXR1cm4gTlVMTDsKKwlpZiAobm9fZXJyb3IpCisJCXJldHVybiBOVUxMOworCWVsc2UK KwkJZXJlcG9ydChFUlJPUiwKKwkJCQllcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlTTUFUQ0gp LAorCQkJCWVycm1zZygib25seSBub24tbnVsbCBpbnRlZ2VyIGNvbnN0YW50cyBhcmUgc3VwcG9y dGVkIGZvciBqc29uYiBzaW1wbGlmaWVkIGFjY2Vzc29yIHN1YnNjcmlwdGluZyIpLAorCQkJCWVy cmhpbnQoInVzZSBpbnQgZGF0YSB0eXBlIGZvciBzdWJzY3JpcHRpbmcgd2l0aCBzbGljaW5nLiIp LAorCQkJCXBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4cHJMb2NhdGlvbihleHByKSkpOwog fQogCiAvKgpAQCAtMjUxLDEzICsyNzcsMTIgQEAganNvbmJfc3Vic2NyaXB0X21ha2VfanNvbnBh dGgoUGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICoqaW5kaXJlY3Rpb24sIFN1YnNjcmlwdGkKIAkJ ZWxzZSBpZiAoSXNBKGFjY2Vzc29yLCBBX0luZGljZXMpKQogCQl7CiAJCQlBX0luZGljZXMgICph aSA9IGNhc3ROb2RlKEFfSW5kaWNlcywgYWNjZXNzb3IpOworCQkJSnNvblBhdGhQYXJzZUl0ZW0g KmpwaV9mcm9tID0gTlVMTDsKIAogCQkJaWYgKCFhaS0+aXNfc2xpY2UpCiAJCQl7Ci0JCQkJSnNv blBhdGhQYXJzZUl0ZW0gKmpwaV9mcm9tID0gTlVMTDsKLQogCQkJCUFzc2VydChhaS0+dWlkeCAm JiAhYWktPmxpZHgpOwotCQkJCWpwaV9mcm9tID0gbWFrZV9qc29ucGF0aF9pdGVtX2V4cHIocHN0 YXRlLCBhaS0+dWlkeCwgJnNic3JlZi0+cmVmdXBwZXJpbmRleHByKTsKKwkJCQlqcGlfZnJvbSA9 IG1ha2VfanNvbnBhdGhfaXRlbV9leHByKHBzdGF0ZSwgYWktPnVpZHgsICZzYnNyZWYtPnJlZnVw cGVyaW5kZXhwciwgdHJ1ZSk7CiAJCQkJaWYgKGpwaV9mcm9tID09IE5VTEwpCiAJCQkJewogCQkJ CQkvKgpAQCAtMjg0LDIyICszMDksMzQgQEAganNvbmJfc3Vic2NyaXB0X21ha2VfanNvbnBhdGgo UGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICoqaW5kaXJlY3Rpb24sIFN1YnNjcmlwdGkKIAkJCQkJ ICovCiAJCQkJCWJyZWFrOwogCQkJCX0KKwkJCX0KIAotCQkJCWpwaSA9IG1ha2VfanNvbnBhdGhf aXRlbShqcGlJbmRleEFycmF5KTsKLQkJCQlqcGktPnZhbHVlLmFycmF5Lm5lbGVtcyA9IDE7Ci0J CQkJanBpLT52YWx1ZS5hcnJheS5lbGVtcyA9IHBhbGxvYyhzaXplb2YoanBpLT52YWx1ZS5hcnJh eS5lbGVtc1swXSkpOworCQkJanBpID0gbWFrZV9qc29ucGF0aF9pdGVtKGpwaUluZGV4QXJyYXkp OworCQkJanBpLT52YWx1ZS5hcnJheS5uZWxlbXMgPSAxOworCQkJanBpLT52YWx1ZS5hcnJheS5l bGVtcyA9IHBhbGxvYyhzaXplb2YoanBpLT52YWx1ZS5hcnJheS5lbGVtc1swXSkpOwogCisJCQlp ZiAoIWFpLT5pc19zbGljZSkKKwkJCXsKIAkJCQlqcGktPnZhbHVlLmFycmF5LmVsZW1zWzBdLmZy b20gPSBqcGlfZnJvbTsKIAkJCQlqcGktPnZhbHVlLmFycmF5LmVsZW1zWzBdLnRvID0gTlVMTDsK IAkJCX0KIAkJCWVsc2UKIAkJCXsKLQkJCQlOb2RlCSAgICpleHByID0gYWktPnVpZHggPyBhaS0+ dWlkeCA6IGFpLT5saWR4OworCQkJCXdoaWxlIChsaXN0X2xlbmd0aChzYnNyZWYtPnJlZmxvd2Vy aW5kZXhwcikgPCBsaXN0X2xlbmd0aChzYnNyZWYtPnJlZnVwcGVyaW5kZXhwcikpCisJCQkJCXNi c3JlZi0+cmVmbG93ZXJpbmRleHByID0gbGFwcGVuZChzYnNyZWYtPnJlZmxvd2VyaW5kZXhwciwg TlVMTCk7CisKKwkJCQlpZiAoYWktPmxpZHgpCisJCQkJCWpwaS0+dmFsdWUuYXJyYXkuZWxlbXNb MF0uZnJvbSA9IG1ha2VfanNvbnBhdGhfaXRlbV9leHByKHBzdGF0ZSwgYWktPmxpZHgsICZzYnNy ZWYtPnJlZmxvd2VyaW5kZXhwciwgZmFsc2UpOworCQkJCWVsc2UKKwkJCQkJanBpLT52YWx1ZS5h cnJheS5lbGVtc1swXS5mcm9tID0gbWFrZV9qc29ucGF0aF9pdGVtX2ludCgwLCAmc2JzcmVmLT5y ZWZsb3dlcmluZGV4cHIpOwogCi0JCQkJZXJlcG9ydChFUlJPUiwKLQkJCQkJCShlcnJjb2RlKEVS UkNPREVfREFUQVRZUEVfTUlTTUFUQ0gpLAotCQkJCQkJIGVycm1zZygianNvbmIgc3Vic2NyaXB0 IGRvZXMgbm90IHN1cHBvcnQgc2xpY2VzIiksCi0JCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBz dGF0ZSwgZXhwckxvY2F0aW9uKGV4cHIpKSkpOworCQkJCWlmIChhaS0+dWlkeCkKKwkJCQkJanBp LT52YWx1ZS5hcnJheS5lbGVtc1swXS50byA9IG1ha2VfanNvbnBhdGhfaXRlbV9leHByKHBzdGF0 ZSwgYWktPnVpZHgsICZzYnNyZWYtPnJlZnVwcGVyaW5kZXhwciwgZmFsc2UpOworCQkJCWVsc2UK KwkJCQl7CisJCQkJCWpwaS0+dmFsdWUuYXJyYXkuZWxlbXNbMF0udG8gPSBtYWtlX2pzb25wYXRo X2l0ZW0oanBpTGFzdCk7CisJCQkJCXNic3JlZi0+cmVmdXBwZXJpbmRleHByID0gbGFwcGVuZChz YnNyZWYtPnJlZnVwcGVyaW5kZXhwciwgTlVMTCk7CisJCQkJfQogCQkJfQogCQl9CiAJCWVsc2UK QEAgLTM4MSwzMiArNDE4LDEyIEBAIGpzb25iX3N1YnNjcmlwdF90cmFuc2Zvcm0oU3Vic2NyaXB0 aW5nUmVmICpzYnNyZWYsCiAJCWFpID0gbGZpcnN0X25vZGUoQV9JbmRpY2VzLCBpZHgpOwogCiAJ CWlmIChhaS0+aXNfc2xpY2UpCi0JCXsKLQkJCU5vZGUJICAgKmV4cHIgPSBhaS0+dWlkeCA/IGFp LT51aWR4IDogYWktPmxpZHg7CisJCQlicmVhazsKIAotCQkJZXJlcG9ydChFUlJPUiwKLQkJCQkJ KGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCi0JCQkJCSBlcnJtc2coImpzb25i IHN1YnNjcmlwdCBkb2VzIG5vdCBzdXBwb3J0IHNsaWNlcyIpLAotCQkJCQkgcGFyc2VyX2VycnBv c2l0aW9uKHBzdGF0ZSwgZXhwckxvY2F0aW9uKGV4cHIpKSkpOwotCQl9CisJCUFzc2VydCghYWkt PmxpZHggJiYgYWktPnVpZHgpOwogCi0JCWlmIChhaS0+dWlkeCkKLQkJewotCQkJc3ViRXhwciA9 IHRyYW5zZm9ybUV4cHIocHN0YXRlLCBhaS0+dWlkeCwgcHN0YXRlLT5wX2V4cHJfa2luZCk7Ci0J CQlzdWJFeHByID0gY29lcmNlX2pzb25wYXRoX3N1YnNjcmlwdF90b19pbnQ0X29yX3RleHQocHN0 YXRlLCBzdWJFeHByKTsKLQkJfQotCQllbHNlCi0JCXsKLQkJCS8qCi0JCQkgKiBTbGljZSB3aXRo IG9taXR0ZWQgdXBwZXIgYm91bmQuIFNob3VsZCBub3QgaGFwcGVuIGFzIHdlIGFscmVhZHkKLQkJ CSAqIGVycm9yZWQgb3V0IG9uIHNsaWNlIGVhcmxpZXIsIGJ1dCBoYW5kbGUgdGhpcyBqdXN0IGlu IGNhc2UuCi0JCQkgKi8KLQkJCUFzc2VydChhaS0+aXNfc2xpY2UpOwotCQkJZXJlcG9ydChFUlJP UiwKLQkJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCi0JCQkJCSBlcnJt c2coImpzb25iIHN1YnNjcmlwdCBkb2VzIG5vdCBzdXBwb3J0IHNsaWNlcyIpLAotCQkJCQkgcGFy c2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZXhwckxvY2F0aW9uKGFpLT51aWR4KSkpKTsKLQkJfQor CQlzdWJFeHByID0gdHJhbnNmb3JtRXhwcihwc3RhdGUsIGFpLT51aWR4LCBwc3RhdGUtPnBfZXhw cl9raW5kKTsKKwkJc3ViRXhwciA9IGNvZXJjZV9qc29ucGF0aF9zdWJzY3JpcHRfdG9faW50NF9v cl90ZXh0KHBzdGF0ZSwgc3ViRXhwcik7CiAKIAkJdXBwZXJJbmRleHByID0gbGFwcGVuZCh1cHBl ckluZGV4cHIsIHN1YkV4cHIpOwogCX0KZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2VjcGcv dGVzdC9leHBlY3RlZC9zcWwtc3FsanNvbi5jIGIvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4 cGVjdGVkL3NxbC1zcWxqc29uLmMKaW5kZXggZTZhN2VjZTZkYWIuLjkzNWI0N2EzYjlhIDEwMDY0 NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24uYwor KysgYi9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24uYwpAQCAt NTA1LDcgKzUwNSw3IEBAIGlmIChzcWxjYS5zcWxjb2RlIDwgMCkgc3FscHJpbnQoKTt9CiBpZiAo c3FsY2Euc3FsY29kZSA8IDApIHNxbHByaW50KCk7fQogI2xpbmUgMTQyICJzcWxqc29uLnBnYyIK IAotCS8vIGVycm9yCisJcHJpbnRmKCJGb3VuZCBqc29uPSVzXG4iLCBqc29uKTsKIAogCXsgRUNQ R2RvKF9fTElORV9fLCAwLCAxLCBOVUxMLCAwLCBFQ1BHc3Rfbm9ybWFsLCAic2VsZWN0IGpzb24g KCAoICd7XCJhXCI6IHtcImJcIjogMSwgXCJjXCI6IDJ9LCBcImJcIjogW3tcInhcIjogMX0sIHtc InhcIjogWzEyLCB7XCJ5XCI6MX1dfV19JyA6OiBqc29uYiApIC4gKiApIiwgRUNQR3RfRU9JVCwg CiAJRUNQR3RfY2hhciwoanNvbiksKGxvbmcpMTAyNCwobG9uZykxLCgxMDI0KSpzaXplb2YoY2hh ciksIApAQCAtNTI1LDE0ICs1MjUsMjQgQEAgaWYgKHNxbGNhLnNxbGNvZGUgPCAwKSBzcWxwcmlu dCgpO30KIGlmIChzcWxjYS5zcWxjb2RlIDwgMCkgc3FscHJpbnQoKTt9CiAjbGluZSAxNDggInNx bGpzb24ucGdjIgogCi0JLy8gZXJyb3IKKwlwcmludGYoIkZvdW5kIGpzb249JXNcbiIsIGpzb24p OwogCi0gIHsgRUNQR2Rpc2Nvbm5lY3QoX19MSU5FX18sICJDVVJSRU5UIik7CisJeyBFQ1BHZG8o X19MSU5FX18sIDAsIDEsIE5VTEwsIDAsIEVDUEdzdF9ub3JtYWwsICJzZWxlY3QganNvbiAoICgg J3tcImFcIjoge1wiYlwiOiAxLCBcImNcIjogMn0sIFwiYlwiOiBbe1wieFwiOiAxfSwge1wieFwi OiBbMTIsIHtcInlcIjoxfV19XX0nIDo6IGpzb25iICkgLiBiIFsgOiBdICkiLCBFQ1BHdF9FT0lU LCAKKwlFQ1BHdF9jaGFyLChqc29uKSwobG9uZykxMDI0LChsb25nKTEsKDEwMjQpKnNpemVvZihj aGFyKSwgCisJRUNQR3RfTk9fSU5ESUNBVE9SLCBOVUxMICwgMEwsIDBMLCAwTCwgRUNQR3RfRU9S VCk7CiAjbGluZSAxNTEgInNxbGpzb24ucGdjIgogCiBpZiAoc3FsY2Euc3FsY29kZSA8IDApIHNx bHByaW50KCk7fQogI2xpbmUgMTUxICJzcWxqc29uLnBnYyIKIAorCXByaW50ZigiRm91bmQganNv bj0lc1xuIiwganNvbik7CisKKyAgeyBFQ1BHZGlzY29ubmVjdChfX0xJTkVfXywgIkNVUlJFTlQi KTsKKyNsaW5lIDE1NCAic3FsanNvbi5wZ2MiCisKK2lmIChzcWxjYS5zcWxjb2RlIDwgMCkgc3Fs cHJpbnQoKTt9CisjbGluZSAxNTQgInNxbGpzb24ucGdjIgorCiAKICAgcmV0dXJuIDA7CiB9CmRp ZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24u c3RkZXJyIGIvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29uLnN0 ZGVycgppbmRleCAxOWY4YzU4YWYwNi4uZjNmODk5YzZkODcgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRl cmZhY2VzL2VjcGcvdGVzdC9leHBlY3RlZC9zcWwtc3FsanNvbi5zdGRlcnIKKysrIGIvc3JjL2lu dGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29uLnN0ZGVycgpAQCAtMzM5LDEz ICszMzksMTAgQEAgU1FMIGVycm9yOiBzY2hlbWEgImpzb25iIiBkb2VzIG5vdCBleGlzdCBvbiBs aW5lIDEyMQogW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKIFtOT19QSURd OiBlY3BnX2V4ZWN1dGUgb24gbGluZSAxNDI6IHVzaW5nIFBRZXhlYwogW05PX1BJRF06IHNxbGNh OiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKLVtOT19QSURdOiBlY3BnX2NoZWNrX1BRcmVzdWx0IG9u IGxpbmUgMTQyOiBiYWQgcmVzcG9uc2UgLSBFUlJPUjogIGpzb25iIHN1YnNjcmlwdCBkb2VzIG5v dCBzdXBwb3J0IHNsaWNlcwotTElORSAxOiAuLi4sIHsieCI6IFsxMiwgeyJ5IjoxfV19XX0nIDo6 IGpzb25iICkgLiBiIFsgMSBdIC4geCBbIDAgOiBdICkKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitbTk9fUElEXTogZWNw Z19wcm9jZXNzX291dHB1dCBvbiBsaW5lIDE0MjogY29ycmVjdGx5IGdvdCAxIHR1cGxlcyB3aXRo IDEgZmllbGRzCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJ RF06IGVjcGdfZ2V0X2RhdGEgb24gbGluZSAxNDI6IFJFU1VMVDogWzEyLCB7InkiOiAxfV0gb2Zm c2V0OiAtMTsgYXJyYXk6IG5vCiBbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAw MAotW05PX1BJRF06IHJhaXNpbmcgc3Fsc3RhdGUgNDI4MDQgKHNxbGNvZGUgLTQwMCk6IGpzb25i IHN1YnNjcmlwdCBkb2VzIG5vdCBzdXBwb3J0IHNsaWNlcyBvbiBsaW5lIDE0MgotW05PX1BJRF06 IHNxbGNhOiBjb2RlOiAtNDAwLCBzdGF0ZTogNDI4MDQKLVNRTCBlcnJvcjoganNvbmIgc3Vic2Ny aXB0IGRvZXMgbm90IHN1cHBvcnQgc2xpY2VzIG9uIGxpbmUgMTQyCiBbTk9fUElEXTogZWNwZ19l eGVjdXRlIG9uIGxpbmUgMTQ1OiBxdWVyeTogc2VsZWN0IGpzb24gKCAoICd7ImEiOiB7ImIiOiAx LCAiYyI6IDJ9LCAiYiI6IFt7IngiOiAxfSwgeyJ4IjogWzEyLCB7InkiOjF9XX1dfScgOjoganNv bmIgKSAuICogKTsgd2l0aCAwIHBhcmFtZXRlcihzKSBvbiBjb25uZWN0aW9uIGVjcGcxX3JlZ3Jl c3Npb24KIFtOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCiBbTk9fUElEXTog ZWNwZ19leGVjdXRlIG9uIGxpbmUgMTQ1OiB1c2luZyBQUWV4ZWMKQEAgLTM2MSwxMiArMzU4LDE3 IEBAIFNRTCBlcnJvcjogcm93IGV4cGFuc2lvbiB2aWEgIioiIGlzIG5vdCBzdXBwb3J0ZWQgaGVy ZSBvbiBsaW5lIDE0NQogW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKIFtO T19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSAxNDg6IHVzaW5nIFBRZXhlYwogW05PX1BJRF06 IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKLVtOT19QSURdOiBlY3BnX2NoZWNrX1BRcmVz dWx0IG9uIGxpbmUgMTQ4OiBiYWQgcmVzcG9uc2UgLSBFUlJPUjogIGpzb25iIHN1YnNjcmlwdCBk b2VzIG5vdCBzdXBwb3J0IHNsaWNlcwotTElORSAxOiAuLi54IjogMX0sIHsieCI6IFsxMiwgeyJ5 IjoxfV19XX0nIDo6IGpzb25iICkgWyAnYicgXSBbIDAgOiBdICkKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitbTk9fUElE XTogZWNwZ19wcm9jZXNzX291dHB1dCBvbiBsaW5lIDE0ODogY29ycmVjdGx5IGdvdCAxIHR1cGxl cyB3aXRoIDEgZmllbGRzCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAor W05PX1BJRF06IGVjcGdfZ2V0X2RhdGEgb24gbGluZSAxNDg6IFJFU1VMVDogW3sieCI6IDF9LCB7 IngiOiBbMTIsIHsieSI6IDF9XX1dIG9mZnNldDogLTE7IGFycmF5OiBubworW05PX1BJRF06IHNx bGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGlu ZSAxNTE6IHF1ZXJ5OiBzZWxlY3QganNvbiAoICggJ3siYSI6IHsiYiI6IDEsICJjIjogMn0sICJi IjogW3sieCI6IDF9LCB7IngiOiBbMTIsIHsieSI6MX1dfV19JyA6OiBqc29uYiApIC4gYiBbIDog XSApOyB3aXRoIDAgcGFyYW1ldGVyKHMpIG9uIGNvbm5lY3Rpb24gZWNwZzFfcmVncmVzc2lvbgor W05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX2V4 ZWN1dGUgb24gbGluZSAxNTE6IHVzaW5nIFBRZXhlYworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAw LCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX3Byb2Nlc3Nfb3V0cHV0IG9uIGxpbmUgMTUx OiBjb3JyZWN0bHkgZ290IDEgdHVwbGVzIHdpdGggMSBmaWVsZHMKK1tOT19QSURdOiBzcWxjYTog Y29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19nZXRfZGF0YSBvbiBsaW5lIDE1 MTogUkVTVUxUOiBbeyJ4IjogMX0sIHsieCI6IFsxMiwgeyJ5IjogMX1dfV0gb2Zmc2V0OiAtMTsg YXJyYXk6IG5vCiBbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAotW05PX1BJ RF06IHJhaXNpbmcgc3Fsc3RhdGUgNDI4MDQgKHNxbGNvZGUgLTQwMCk6IGpzb25iIHN1YnNjcmlw dCBkb2VzIG5vdCBzdXBwb3J0IHNsaWNlcyBvbiBsaW5lIDE0OAotW05PX1BJRF06IHNxbGNhOiBj b2RlOiAtNDAwLCBzdGF0ZTogNDI4MDQKLVNRTCBlcnJvcjoganNvbmIgc3Vic2NyaXB0IGRvZXMg bm90IHN1cHBvcnQgc2xpY2VzIG9uIGxpbmUgMTQ4CiBbTk9fUElEXTogZWNwZ19maW5pc2g6IGNv bm5lY3Rpb24gZWNwZzFfcmVncmVzc2lvbiBjbG9zZWQKIFtOT19QSURdOiBzcWxjYTogY29kZTog MCwgc3RhdGU6IDAwMDAwCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3QvZXhw ZWN0ZWQvc3FsLXNxbGpzb24uc3Rkb3V0IGIvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVj dGVkL3NxbC1zcWxqc29uLnN0ZG91dAppbmRleCA0NDJkMzY5MzFmMS4uZDAxYTg0NTdmMDEgMTAw NjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9leHBlY3RlZC9zcWwtc3FsanNvbi5z dGRvdXQKKysrIGIvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29u LnN0ZG91dApAQCAtMzUsMyArMzUsNiBAQCBGb3VuZCBqc29uPW51bGwKIEZvdW5kIGpzb249eyJ4 IjogMX0KIEZvdW5kIGpzb249WzEsIFsxMiwgeyJ5IjogMX1dXQogRm91bmQganNvbj17IngiOiAx fQorRm91bmQganNvbj1bMTIsIHsieSI6IDF9XQorRm91bmQganNvbj1beyJ4IjogMX0sIHsieCI6 IFsxMiwgeyJ5IjogMX1dfV0KK0ZvdW5kIGpzb249W3sieCI6IDF9LCB7IngiOiBbMTIsIHsieSI6 IDF9XX1dCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3Qvc3FsL3NxbGpzb24u cGdjIGIvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L3NxbC9zcWxqc29uLnBnYwppbmRleCA1N2E5 YmZmNDI0ZC4uOTQyM2QyNWZkMGIgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVz dC9zcWwvc3FsanNvbi5wZ2MKKysrIGIvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L3NxbC9zcWxq c29uLnBnYwpAQCAtMTQwLDEzICsxNDAsMTYgQEAgRVhFQyBTUUwgRU5EIERFQ0xBUkUgU0VDVElP TjsKIAlwcmludGYoIkZvdW5kIGpzb249JXNcbiIsIGpzb24pOwogCiAJRVhFQyBTUUwgU0VMRUNU IEpTT04oKCd7ImEiOiB7ImIiOiAxLCAiYyI6IDJ9LCAiYiI6IFt7IngiOiAxfSwgeyJ4IjogWzEy LCB7InkiOjF9XX1dfSc6Ompzb25iKS5iWzFdLnhbMDpdKSBJTlRPIDpqc29uOwotCS8vIGVycm9y CisJcHJpbnRmKCJGb3VuZCBqc29uPSVzXG4iLCBqc29uKTsKIAogCUVYRUMgU1FMIFNFTEVDVCBK U09OKCgneyJhIjogeyJiIjogMSwgImMiOiAyfSwgImIiOiBbeyJ4IjogMX0sIHsieCI6IFsxMiwg eyJ5IjoxfV19XX0nOjpqc29uYikuKikgSU5UTyA6anNvbjsKIAkvLyBlcnJvcgogCiAJRVhFQyBT UUwgU0VMRUNUIEpTT04oKCd7ImEiOiB7ImIiOiAxLCAiYyI6IDJ9LCAiYiI6IFt7IngiOiAxfSwg eyJ4IjogWzEyLCB7InkiOjF9XX1dfSc6Ompzb25iKVsnYiddWzA6XSkgSU5UTyA6anNvbjsKLQkv LyBlcnJvcgorCXByaW50ZigiRm91bmQganNvbj0lc1xuIiwganNvbik7CisKKwlFWEVDIFNRTCBT RUxFQ1QgSlNPTigoJ3siYSI6IHsiYiI6IDEsICJjIjogMn0sICJiIjogW3sieCI6IDF9LCB7Ingi OiBbMTIsIHsieSI6MX1dfV19Jzo6anNvbmIpLmJbOl0pIElOVE8gOmpzb247CisJcHJpbnRmKCJG b3VuZCBqc29uPSVzXG4iLCBqc29uKTsKIAogICBFWEVDIFNRTCBESVNDT05ORUNUOwogCmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pzb25iLm91dCBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvanNvbmIub3V0CmluZGV4IDM3ZDcxYjIzZDVkLi4yNzAyZWRjOTcwNSAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qc29uYi5vdXQKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qc29uYi5vdXQKQEAgLTUyNDcsMjMgKzUyNDcsMzQgQEAg c2VsZWN0ICgneyJhIjogWyJhMSIsIHsiYjEiOiBbImFhYSIsICJiYmIiLCAiY2NjIl19XSwgImIi OiAiYmIifSc6Ompzb25iKS5hWzFdLmIKICgxIHJvdykKIAogc2VsZWN0ICgneyJhIjogMX0nOjpq c29uYilbJ2EnOidiJ107IC0tIGZhaWxzCi1FUlJPUjogIGpzb25iIHN1YnNjcmlwdCBkb2VzIG5v dCBzdXBwb3J0IHNsaWNlcworRVJST1I6ICBvbmx5IG5vbi1udWxsIGludGVnZXIgY29uc3RhbnRz IGFyZSBzdXBwb3J0ZWQgZm9yIGpzb25iIHNpbXBsaWZpZWQgYWNjZXNzb3Igc3Vic2NyaXB0aW5n CiBMSU5FIDE6IHNlbGVjdCAoJ3siYSI6IDF9Jzo6anNvbmIpWydhJzonYiddOwotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeCitISU5UOiAgdXNlIGludCBkYXRhIHR5cGUgZm9yIHN1YnNjcmlwdGluZyB3 aXRoIHNsaWNpbmcuCiBzZWxlY3QgKCdbMSwgIjIiLCBudWxsXSc6Ompzb25iKVsxOjJdOwotRVJS T1I6ICBqc29uYiBzdWJzY3JpcHQgZG9lcyBub3Qgc3VwcG9ydCBzbGljZXMKLUxJTkUgMTogc2Vs ZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbMToyXTsKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCisgICAganNvbmIgICAgCistLS0tLS0tLS0tLS0tCisg WyIyIiwgbnVsbF0KKygxIHJvdykKKwogc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilb OjJdOwotRVJST1I6ICBqc29uYiBzdWJzY3JpcHQgZG9lcyBub3Qgc3VwcG9ydCBzbGljZXMKLUxJ TkUgMTogc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbOjJdOwotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorICAgICBqc29uYiAgICAgIAorLS0tLS0t LS0tLS0tLS0tLQorIFsxLCAiMiIsIG51bGxdCisoMSByb3cpCisKIHNlbGVjdCAoJ1sxLCAiMiIs IG51bGxdJzo6anNvbmIpWzE6XTsKLUVSUk9SOiAganNvbmIgc3Vic2NyaXB0IGRvZXMgbm90IHN1 cHBvcnQgc2xpY2VzCi1MSU5FIDE6IHNlbGVjdCAoJ1sxLCAiMiIsIG51bGxdJzo6anNvbmIpWzE6 XTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorICAgIGpzb25i ICAgIAorLS0tLS0tLS0tLS0tLQorIFsiMiIsIG51bGxdCisoMSByb3cpCisKIHNlbGVjdCAoJ1sx LCAiMiIsIG51bGxdJzo6anNvbmIpWzpdOwotRVJST1I6ICBqc29uYiBzdWJzY3JpcHQgZG9lcyBu b3Qgc3VwcG9ydCBzbGljZXMKKyAgICAganNvbmIgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0KKyBb MSwgIjIiLCBudWxsXQorKDEgcm93KQorCiBjcmVhdGUgVEVNUCBUQUJMRSB0ZXN0X2pzb25iX3N1 YnNjcmlwdCAoCiAgICAgICAgaWQgaW50LAogICAgICAgIHRlc3RfanNvbiBqc29uYgpAQCAtNjAx Nyw4ICs2MDI4LDQyIEBAIFNFTEVDVCAoamIpLmEuYi5jIEZST00gdGVzdF9qc29uYl9kb3Rfbm90 YXRpb247CiAgCiAoMSByb3cpCiAKLVNFTEVDVCAoKGpiKS5iKVs6XS54IEZST00gdGVzdF9qc29u Yl9kb3Rfbm90YXRpb24gdDsgLS0gZmFpbHMKLUVSUk9SOiAganNvbmIgc3Vic2NyaXB0IGRvZXMg bm90IHN1cHBvcnQgc2xpY2VzCitTRUxFQ1QgKChqYikuYilbOl0ueCBGUk9NIHRlc3RfanNvbmJf ZG90X25vdGF0aW9uIHQ7CisgICAgICAgICAgICB4ICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyB7InkiOiAiWVlZIiwgInoiOiAiWlpaIn0KKygxIHJvdykKKworU0VM RUNUIChqYikuYVsyOjNdLmIgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyAgICAgYiAg ICAgIAorLS0tLS0tLS0tLS0tCisgWyJjIiwgImQiXQorKDEgcm93KQorCitTRUxFQ1QgKGpiKS5h WzI6XS5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICAgIGIgICAgICAKKy0tLS0t LS0tLS0tLQorIFsiYyIsICJkIl0KKygxIHJvdykKKworU0VMRUNUIChqYikuYVs6Ml0uYiBGUk9N IHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworICBiICAKKy0tLS0tCisgImMiCisoMSByb3cpCisK K1NFTEVDVCAoamIpLmFbOl0uYiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworICAgICBi ICAgICAgCistLS0tLS0tLS0tLS0KKyBbImMiLCAiZCJdCisoMSByb3cpCisKK1NFTEVDVCAoKGpi KS5iKVs6XS54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKKyAgICAgICAgICAgIHgg ICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHsieSI6ICJZWVkiLCAi eiI6ICJaWloifQorKDEgcm93KQorCiBTRUxFQ1QgKGpiKS5hLiogRlJPTSB0ZXN0X2pzb25iX2Rv dF9ub3RhdGlvbjsgLS0gZmFpbHMKIEVSUk9SOiAgdHlwZSBqc29uYiBpcyBub3QgY29tcG9zaXRl CiAtLSBleHBsYWlucyBzaG91bGQgd29yawpAQCAtNjA1NCw2ICs2MDk5LDI4IEBAIENSRUFURSBW SUVXIHRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxIEFTIFNFTEVDVCAoamIpLmFbM10ueC55IEZS T00gdGVzdF9qc29uYl9kCiBDUkVBVEUgT1IgUkVQTEFDRSBWSUVXIHB1YmxpYy50ZXN0X2pzb25i X2RvdF9ub3RhdGlvbl92MSBBUwogIFNFTEVDVCAoamIpLmFbM10ueC55IEFTIHkKICAgIEZST00g dGVzdF9qc29uYl9kb3Rfbm90YXRpb24KK0NSRUFURSBWSUVXIHYyIEFTIFNFTEVDVCAoamIpLmFb MzpdLngueVs6LTFdIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247Citcc3YgdjIKK0NSRUFU RSBPUiBSRVBMQUNFIFZJRVcgcHVibGljLnYyIEFTCisgU0VMRUNUIChqYikuYVszOl0ueC55WzA6 Jy0xJzo6aW50ZWdlcl0gQVMgeQorICAgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbgorU0VM RUNUICogZnJvbSB2MjsKKyB5IAorLS0tCisgCisoMSByb3cpCisKK0NSRUFURSBWSUVXIHYzIEFT IFNFTEVDVCAoamIpLmFbOjNdLngueVstMTpdIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247 Citcc3YgdjMKK0NSRUFURSBPUiBSRVBMQUNFIFZJRVcgcHVibGljLnYzIEFTCisgU0VMRUNUIChq YikuYVswOjNdLngueVsnLTEnOjppbnRlZ2VyOl0gQVMgeQorICAgRlJPTSB0ZXN0X2pzb25iX2Rv dF9ub3RhdGlvbgorU0VMRUNUICogZnJvbSB2MzsKKyAgIHkgICAKKy0tLS0tLS0KKyAieXl5Igor KDEgcm93KQorCiAtLSBtaXhlZCBzeW50YXgKIERST1AgVklFVyB0ZXN0X2pzb25iX2RvdF9ub3Rh dGlvbl92MTsKIEVYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikgU0VMRUNUIChqYilbJ2EnXS5i IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CkBAIC02MjM4LDUgKzYzMDUsNTUgQEAgU0VM RUNUICogZnJvbSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MTsKICgxIHJvdykKIAogRFJPUCBW SUVXIHB1YmxpYy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MTsKKy0tIGpzb25iIGFycmF5IGFj Y2VzcyBpbiBwbHBnc3FsCitETyAkJAorICAgIERFQ0xBUkUKKyAgICAgICAgYSBqc29uYiA6PSAn WzEsMiwzLDQsNSw2LDddJzo6anNvbmI7CisgICAgQkVHSU4KKyAgICAgICAgV0hJTEUgYSBJUyBO T1QgTlVMTAorICAgICAgICAgICAgTE9PUAorICAgICAgICAgICAgICAgIFJBSVNFIE5PVElDRSAn JScsIGE7CisgICAgICAgICAgICAgICAgYSA6PSBhWzI6XTsKKyAgICAgICAgICAgIEVORCBMT09Q OworICAgIEVORAorJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK05PVElDRTogIFsxLCAyLCAzLCA0LCA1 LCA2LCA3XQorTk9USUNFOiAgWzMsIDQsIDUsIDYsIDddCitOT1RJQ0U6ICBbNSwgNiwgN10KK05P VElDRTogIDcKKy0tIGpzb25iIGRvdCBhY2Nlc3MgaW4gcGxwZ3NxbAorRE8gJCQKKyAgICBERUNM QVJFCisgICAgICAgIGEganNvbmIgOj0gJ3siIjogNiwgIk5VIjogW3siIjogW1szXV19LCBbNl0s IFsyXSwgImJDaSJdLCAiYWFmIjogWy02LCAtOF19Jzo6anNvbmI7CisgICAgQkVHSU4KKyAgICAg ICAgV0hJTEUgYSBJUyBOT1QgTlVMTAorICAgICAgICAgICAgTE9PUAorICAgICAgICAgICAgICAg IFJBSVNFIE5PVElDRSAnJScsIGE7CisgICAgICAgICAgICAgICAgYSA6PSBDT0FMRVNDRShhLiJO VSIsIGFbMl0pOyAtLSBmYWlscworICAgICAgICAgICAgRU5EIExPT1A7CisgICAgRU5ECiskJCBM QU5HVUFHRSBwbHBnc3FsOworTk9USUNFOiAgeyIiOiA2LCAiTlUiOiBbeyIiOiBbWzNdXX0sIFs2 XSwgWzJdLCAiYkNpIl0sICJhYWYiOiBbLTYsIC04XX0KK0VSUk9SOiAgbWlzc2luZyBGUk9NLWNs YXVzZSBlbnRyeSBmb3IgdGFibGUgImEiCitMSU5FIDE6IGEgOj0gQ09BTEVTQ0UoYS4iTlUiLCBh WzJdKQorICAgICAgICAgICAgICAgICAgICAgIF4KK1FVRVJZOiAgYSA6PSBDT0FMRVNDRShhLiJO VSIsIGFbMl0pCitDT05URVhUOiAgUEwvcGdTUUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sg bGluZSA4IGF0IGFzc2lnbm1lbnQKK0RPICQkCisgICAgREVDTEFSRQorICAgICAgICBhIGpzb25i IDo9ICd7IiI6IDYsICJOVSI6IFt7IiI6IFtbM11dfSwgWzZdLCBbMl0sICJiQ2kiXSwgImFhZiI6 IFstNiwgLThdfSc6Ompzb25iOworICAgIEJFR0lOCisgICAgICAgIFdISUxFIGEgSVMgTk9UIE5V TEwKKyAgICAgICAgICAgIExPT1AKKyAgICAgICAgICAgICAgICBSQUlTRSBOT1RJQ0UgJyUnLCBh OworICAgICAgICAgICAgICAgIGEgOj0gQ09BTEVTQ0UoKGEpLiJOVSIsIGFbMl0pOyAtLSBzdWNj ZWVkcworICAgICAgICAgICAgRU5EIExPT1A7CisgICAgRU5ECiskJCBMQU5HVUFHRSBwbHBnc3Fs OworTk9USUNFOiAgeyIiOiA2LCAiTlUiOiBbeyIiOiBbWzNdXX0sIFs2XSwgWzJdLCAiYkNpIl0s ICJhYWYiOiBbLTYsIC04XX0KK05PVElDRTogIFt7IiI6IFtbM11dfSwgWzZdLCBbMl0sICJiQ2ki XQorTk9USUNFOiAgWzJdCiAtLSBjbGVhbiB1cAorRFJPUCBWSUVXIHYyOworRFJPUCBWSUVXIHYz OwogRFJPUCBUQUJMRSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL2pzb25iLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2pzb25iLnNx bAppbmRleCA1ZmM1M2UxYzlhYS4uZGUyYzljZGEwOTQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL2pzb25iLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9qc29uYi5zcWwK QEAgLTE2MjUsNyArMTYyNSwxMiBAQCBTRUxFQ1QgKGpiKS5hWzJdLmIgRlJPTSB0ZXN0X2pzb25i X2RvdF9ub3RhdGlvbjsKIFNFTEVDVCAoamIpLmEueC55IEZST00gdGVzdF9qc29uYl9kb3Rfbm90 YXRpb247CiBTRUxFQ1QgKGpiKS5iLngueiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOwog U0VMRUNUIChqYikuYS5iLmMgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKLVNFTEVDVCAo KGpiKS5iKVs6XS54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsgLS0gZmFpbHMKK1NF TEVDVCAoKGpiKS5iKVs6XS54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKK1NFTEVD VCAoamIpLmFbMjozXS5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpi KS5hWzI6XS5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS5hWzoy XS5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS5hWzpdLmIgRlJP TSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoKGpiKS5iKVs6XS54IEZST00gdGVz dF9qc29uYl9kb3Rfbm90YXRpb24gdDsKIFNFTEVDVCAoamIpLmEuKiBGUk9NIHRlc3RfanNvbmJf ZG90X25vdGF0aW9uOyAtLSBmYWlscwogCiAtLSBleHBsYWlucyBzaG91bGQgd29yawpAQCAtMTYz Nyw2ICsxNjQyLDEyIEBAIFNFTEVDVCAoamIpLmFbMV0gRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3Rh dGlvbjsKIC0tIHZpZXdzIHNob3VsZCB3b3JrCiBDUkVBVEUgVklFVyB0ZXN0X2pzb25iX2RvdF9u b3RhdGlvbl92MSBBUyBTRUxFQ1QgKGpiKS5hWzNdLngueSBGUk9NIHRlc3RfanNvbmJfZG90X25v dGF0aW9uOwogXHN2IHRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxCitDUkVBVEUgVklFVyB2MiBB UyBTRUxFQ1QgKGpiKS5hWzM6XS54LnlbOi0xXSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9u OworXHN2IHYyCitTRUxFQ1QgKiBmcm9tIHYyOworQ1JFQVRFIFZJRVcgdjMgQVMgU0VMRUNUIChq YikuYVs6M10ueC55Wy0xOl0gRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1xzdiB2Mwor U0VMRUNUICogZnJvbSB2MzsKIAogLS0gbWl4ZWQgc3ludGF4CiBEUk9QIFZJRVcgdGVzdF9qc29u Yl9kb3Rfbm90YXRpb25fdjE7CkBAIC0xNjk3LDUgKzE3MDgsNDUgQEAgU0VMRUNUIChqYilbJ2In XVsneCddLnogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKIFNFTEVDVCAqIGZyb20gdGVz dF9qc29uYl9kb3Rfbm90YXRpb25fdjE7CiBEUk9QIFZJRVcgcHVibGljLnRlc3RfanNvbmJfZG90 X25vdGF0aW9uX3YxOwogCistLSBqc29uYiBhcnJheSBhY2Nlc3MgaW4gcGxwZ3NxbAorRE8gJCQK KyAgICBERUNMQVJFCisgICAgICAgIGEganNvbmIgOj0gJ1sxLDIsMyw0LDUsNiw3XSc6Ompzb25i OworICAgIEJFR0lOCisgICAgICAgIFdISUxFIGEgSVMgTk9UIE5VTEwKKyAgICAgICAgICAgIExP T1AKKyAgICAgICAgICAgICAgICBSQUlTRSBOT1RJQ0UgJyUnLCBhOworICAgICAgICAgICAgICAg IGEgOj0gYVsyOl07CisgICAgICAgICAgICBFTkQgTE9PUDsKKyAgICBFTkQKKyQkIExBTkdVQUdF IHBscGdzcWw7CisKKy0tIGpzb25iIGRvdCBhY2Nlc3MgaW4gcGxwZ3NxbAorRE8gJCQKKyAgICBE RUNMQVJFCisgICAgICAgIGEganNvbmIgOj0gJ3siIjogNiwgIk5VIjogW3siIjogW1szXV19LCBb Nl0sIFsyXSwgImJDaSJdLCAiYWFmIjogWy02LCAtOF19Jzo6anNvbmI7CisgICAgQkVHSU4KKyAg ICAgICAgV0hJTEUgYSBJUyBOT1QgTlVMTAorICAgICAgICAgICAgTE9PUAorICAgICAgICAgICAg ICAgIFJBSVNFIE5PVElDRSAnJScsIGE7CisgICAgICAgICAgICAgICAgYSA6PSBDT0FMRVNDRShh LiJOVSIsIGFbMl0pOyAtLSBmYWlscworICAgICAgICAgICAgRU5EIExPT1A7CisgICAgRU5ECisk JCBMQU5HVUFHRSBwbHBnc3FsOworCitETyAkJAorICAgIERFQ0xBUkUKKyAgICAgICAgYSBqc29u YiA6PSAneyIiOiA2LCAiTlUiOiBbeyIiOiBbWzNdXX0sIFs2XSwgWzJdLCAiYkNpIl0sICJhYWYi OiBbLTYsIC04XX0nOjpqc29uYjsKKyAgICBCRUdJTgorICAgICAgICBXSElMRSBhIElTIE5PVCBO VUxMCisgICAgICAgICAgICBMT09QCisgICAgICAgICAgICAgICAgUkFJU0UgTk9USUNFICclJywg YTsKKyAgICAgICAgICAgICAgICBhIDo9IENPQUxFU0NFKChhKS4iTlUiLCBhWzJdKTsgLS0gc3Vj Y2VlZHMKKyAgICAgICAgICAgIEVORCBMT09QOworICAgIEVORAorJCQgTEFOR1VBR0UgcGxwZ3Nx bDsKKwogLS0gY2xlYW4gdXAKK0RST1AgVklFVyB2MjsKK0RST1AgVklFVyB2MzsKIERST1AgVEFC TEUgdGVzdF9qc29uYl9kb3Rfbm90YXRpb247Ci0tIAoyLjM5LjUgKEFwcGxlIEdpdC0xNTQpCgo= --00000000000085838c063edb3d65 Content-Type: application/octet-stream; name="v19-0001-Allow-transformation-of-only-a-sublist-of-subscr.patch" Content-Disposition: attachment; filename="v19-0001-Allow-transformation-of-only-a-sublist-of-subscr.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mflgmzs30 RnJvbSBkYjkxODc2MTc2MDQyMTQ3OGUyZjAwYWMxZjIxMjdlZWUwNzFmNDJjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtpdGEgR2x1a2hvdiA8bi5nbHVob3ZAcG9zdGdyZXNwcm8u cnU+CkRhdGU6IFR1ZSwgOCBKdWwgMjAyNSAyMjoxODowNyAtMDcwMApTdWJqZWN0OiBbUEFUQ0gg djE5IDEvN10gQWxsb3cgdHJhbnNmb3JtYXRpb24gb2Ygb25seSBhIHN1Ymxpc3Qgb2Ygc3Vic2Ny aXB0cwoKVGhpcyBpcyBhIHByZXBhcmF0aW9uIHN0ZXAgZm9yIGFsbG93aW5nIHN1YnNjcmlwdGlu ZyBjb250YWluZXJzIHRvCnRyYW5zZm9ybSBvbmx5IGEgcHJlZml4IG9mIGFuIGluZGlyZWN0aW9u IGxpc3QgYW5kIG1vZGlmeSB0aGUgbGlzdAppbi1wbGFjZSBieSByZW1vdmluZyB0aGUgcHJvY2Vz c2VkIGVsZW1lbnRzLiBDdXJyZW50bHksIGFsbCBlbGVtZW50cwphcmUgY29uc3VtZWQsIGFuZCB0 aGUgbGlzdCBpcyBzZXQgdG8gTklMIGFmdGVyIHRyYW5zZm9ybWF0aW9uLgoKSW4gdGhlIGZvbGxv d2luZyBjb21taXQsIHN1YnNjcmlwdGluZyBjb250YWluZXJzIHdpbGwgZ2FpbiB0aGUKZmxleGli aWxpdHkgdG8gc3RvcCB0cmFuc2Zvcm1hdGlvbiB3aGVuIGVuY291bnRlcmluZyBhbiB1bnN1cHBv cnRlZAppbmRpcmVjdGlvbiBhbmQgcmV0dXJuIHRoZSByZW1haW5pbmcgaW5kaXJlY3Rpb25zIHRv IHRoZSBjYWxsZXIuCgpSZXZpZXdlZC1ieTogQWxleGFuZHJhIFdhbmcgPGFsZXhhbmRyYS53YW5n Lm9zc0BnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBBbmRyZXcgRHVuc3RhbiA8YW5kcmV3QGR1bnNs YW5lLm5ldD4KUmV2aWV3ZWQtYnk6IE1hdGhldXMgQWxjYW50YXJhIDxtYXRoZXVzc3NpbHY5N0Bn bWFpbC5jb20+ClJldmlld2VkLWJ5OiBKaWFuIEhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5j b20+ClJldmlld2VkLWJ5OiBDaGFvIExpIDxsaS5ldmFuLmNoYW9AZ21haWwuY29tPgotLS0KIGNv bnRyaWIvaHN0b3JlL2hzdG9yZV9zdWJzLmMgICAgICB8IDEwICsrKysrKy0tLS0KIHNyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV9leHByLmMgICB8ICA5ICsrKystLS0tLQogc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX25vZGUuYyAgIHwgIDQgKystLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3Rh cmdldC5jIHwgIDIgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9hcnJheXN1YnMuYyB8ICA2ICsr KystLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25ic3Vicy5jIHwgIDYgKysrKy0tCiBzcmMv aW5jbHVkZS9ub2Rlcy9zdWJzY3JpcHRpbmcuaCAgfCAgNyArKysrKystCiBzcmMvaW5jbHVkZS9w YXJzZXIvcGFyc2Vfbm9kZS5oICAgfCAgMiArLQogOCBmaWxlcyBjaGFuZ2VkLCAyOCBpbnNlcnRp b25zKCspLCAxOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb250cmliL2hzdG9yZS9oc3Rv cmVfc3Vicy5jIGIvY29udHJpYi9oc3RvcmUvaHN0b3JlX3N1YnMuYwppbmRleCAzZDAzZjY2ZmEw ZC4uMWIyOTU0M2FiNjcgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvaHN0b3JlL2hzdG9yZV9zdWJzLmMK KysrIGIvY29udHJpYi9oc3RvcmUvaHN0b3JlX3N1YnMuYwpAQCAtNDAsNyArNDAsNyBAQAogICov CiBzdGF0aWMgdm9pZAogaHN0b3JlX3N1YnNjcmlwdF90cmFuc2Zvcm0oU3Vic2NyaXB0aW5nUmVm ICpzYnNyZWYsCi0JCQkJCQkgICBMaXN0ICppbmRpcmVjdGlvbiwKKwkJCQkJCSAgIExpc3QgKipp bmRpcmVjdGlvbiwKIAkJCQkJCSAgIFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCSAgIGJvb2wg aXNTbGljZSwKIAkJCQkJCSAgIGJvb2wgaXNBc3NpZ25tZW50KQpAQCAtNDksMTUgKzQ5LDE1IEBA IGhzdG9yZV9zdWJzY3JpcHRfdHJhbnNmb3JtKFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmLAogCU5v ZGUJICAgKnN1YmV4cHI7CiAKIAkvKiBXZSBzdXBwb3J0IG9ubHkgc2luZ2xlLXN1YnNjcmlwdCwg bm9uLXNsaWNlIGNhc2VzICovCi0JaWYgKGlzU2xpY2UgfHwgbGlzdF9sZW5ndGgoaW5kaXJlY3Rp b24pICE9IDEpCisJaWYgKGlzU2xpY2UgfHwgbGlzdF9sZW5ndGgoKmluZGlyZWN0aW9uKSAhPSAx KQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQ UE9SVEVEKSwKIAkJCQkgZXJybXNnKCJoc3RvcmUgYWxsb3dzIG9ubHkgb25lIHN1YnNjcmlwdCIp LAogCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLAotCQkJCQkJCQkJZXhwckxvY2F0aW9u KChOb2RlICopIGluZGlyZWN0aW9uKSkpKTsKKwkJCQkJCQkJCWV4cHJMb2NhdGlvbigoTm9kZSAq KSAqaW5kaXJlY3Rpb24pKSkpOwogCiAJLyogVHJhbnNmb3JtIHRoZSBzdWJzY3JpcHQgZXhwcmVz c2lvbiB0byB0eXBlIHRleHQgKi8KLQlhaSA9IGxpbml0aWFsX25vZGUoQV9JbmRpY2VzLCBpbmRp cmVjdGlvbik7CisJYWkgPSBsaW5pdGlhbF9ub2RlKEFfSW5kaWNlcywgKmluZGlyZWN0aW9uKTsK IAlBc3NlcnQoYWktPnVpZHggIT0gTlVMTCAmJiBhaS0+bGlkeCA9PSBOVUxMICYmICFhaS0+aXNf c2xpY2UpOwogCiAJc3ViZXhwciA9IHRyYW5zZm9ybUV4cHIocHN0YXRlLCBhaS0+dWlkeCwgcHN0 YXRlLT5wX2V4cHJfa2luZCk7CkBAIC04MSw2ICs4MSw4IEBAIGhzdG9yZV9zdWJzY3JpcHRfdHJh bnNmb3JtKFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmLAogCS8qIERldGVybWluZSB0aGUgcmVzdWx0 IHR5cGUgb2YgdGhlIHN1YnNjcmlwdGluZyBvcGVyYXRpb247IGFsd2F5cyB0ZXh0ICovCiAJc2Jz cmVmLT5yZWZyZXN0eXBlID0gVEVYVE9JRDsKIAlzYnNyZWYtPnJlZnR5cG1vZCA9IC0xOworCisJ KmluZGlyZWN0aW9uID0gTklMOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX2V4cHIuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKaW5kZXgg ZTE5NzlhODBjMTkuLjZlOGZkNDJjNjEyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfZXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKQEAgLTQ2 NSwxNCArNDY1LDEzIEBAIHRyYW5zZm9ybUluZGlyZWN0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwg QV9JbmRpcmVjdGlvbiAqaW5kKQogCQkJQXNzZXJ0KElzQShuLCBTdHJpbmcpKTsKIAogCQkJLyog cHJvY2VzcyBzdWJzY3JpcHRzIGJlZm9yZSB0aGlzIGZpZWxkIHNlbGVjdGlvbiAqLwotCQkJaWYg KHN1YnNjcmlwdHMpCisJCQl3aGlsZSAoc3Vic2NyaXB0cykKIAkJCQlyZXN1bHQgPSAoTm9kZSAq KSB0cmFuc2Zvcm1Db250YWluZXJTdWJzY3JpcHRzKHBzdGF0ZSwKIAkJCQkJCQkJCQkJCQkJCSAg IHJlc3VsdCwKIAkJCQkJCQkJCQkJCQkJCSAgIGV4cHJUeXBlKHJlc3VsdCksCiAJCQkJCQkJCQkJ CQkJCQkgICBleHByVHlwbW9kKHJlc3VsdCksCi0JCQkJCQkJCQkJCQkJCQkgICBzdWJzY3JpcHRz LAorCQkJCQkJCQkJCQkJCQkJICAgJnN1YnNjcmlwdHMsCiAJCQkJCQkJCQkJCQkJCQkgICBmYWxz ZSk7Ci0JCQlzdWJzY3JpcHRzID0gTklMOwogCiAJCQluZXdyZXN1bHQgPSBQYXJzZUZ1bmNPckNv bHVtbihwc3RhdGUsCiAJCQkJCQkJCQkJICBsaXN0X21ha2UxKG4pLApAQCAtNDg3LDEyICs0ODYs MTIgQEAgdHJhbnNmb3JtSW5kaXJlY3Rpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0luZGlyZWN0 aW9uICppbmQpCiAJCX0KIAl9CiAJLyogcHJvY2VzcyB0cmFpbGluZyBzdWJzY3JpcHRzLCBpZiBh bnkgKi8KLQlpZiAoc3Vic2NyaXB0cykKKwl3aGlsZSAoc3Vic2NyaXB0cykKIAkJcmVzdWx0ID0g KE5vZGUgKikgdHJhbnNmb3JtQ29udGFpbmVyU3Vic2NyaXB0cyhwc3RhdGUsCiAJCQkJCQkJCQkJ CQkJICAgcmVzdWx0LAogCQkJCQkJCQkJCQkJCSAgIGV4cHJUeXBlKHJlc3VsdCksCiAJCQkJCQkJ CQkJCQkJICAgZXhwclR5cG1vZChyZXN1bHQpLAotCQkJCQkJCQkJCQkJCSAgIHN1YnNjcmlwdHMs CisJCQkJCQkJCQkJCQkJICAgJnN1YnNjcmlwdHMsCiAJCQkJCQkJCQkJCQkJICAgZmFsc2UpOwog CiAJcmV0dXJuIHJlc3VsdDsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9u b2RlLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vfbm9kZS5jCmluZGV4IDIwM2I3YTMyMTc4 Li5mMDViYWE1MGExNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX25vZGUu YworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vfbm9kZS5jCkBAIC0yNDQsNyArMjQ0LDcg QEAgdHJhbnNmb3JtQ29udGFpbmVyU3Vic2NyaXB0cyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJ CQkJIE5vZGUgKmNvbnRhaW5lckJhc2UsCiAJCQkJCQkJIE9pZCBjb250YWluZXJUeXBlLAogCQkJ CQkJCSBpbnQzMiBjb250YWluZXJUeXBNb2QsCi0JCQkJCQkJIExpc3QgKmluZGlyZWN0aW9uLAor CQkJCQkJCSBMaXN0ICoqaW5kaXJlY3Rpb24sCiAJCQkJCQkJIGJvb2wgaXNBc3NpZ25tZW50KQog ewogCVN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmOwpAQCAtMjgwLDcgKzI4MCw3IEBAIHRyYW5zZm9y bUNvbnRhaW5lclN1YnNjcmlwdHMoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCSAqIGVsZW1lbnQuICBJ ZiBhbnkgb2YgdGhlIGl0ZW1zIGFyZSBzbGljZSBzcGVjaWZpZXJzIChsb3dlcjp1cHBlciksIHRo ZW4KIAkgKiB0aGUgc3Vic2NyaXB0IGV4cHJlc3Npb24gbWVhbnMgYSBjb250YWluZXIgc2xpY2Ug b3BlcmF0aW9uLgogCSAqLwotCWZvcmVhY2goaWR4LCBpbmRpcmVjdGlvbikKKwlmb3JlYWNoKGlk eCwgKmluZGlyZWN0aW9uKQogCXsKIAkJQV9JbmRpY2VzICAqYWkgPSBsZmlyc3Rfbm9kZShBX0lu ZGljZXMsIGlkeCk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJn ZXQuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYwppbmRleCA5MDVjOTc1ZDgz Yi4uYTA5NzczNjIyOWEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJn ZXQuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKQEAgLTkzNSw3ICs5 MzUsNyBAQCB0cmFuc2Zvcm1Bc3NpZ25tZW50U3Vic2NyaXB0cyhQYXJzZVN0YXRlICpwc3RhdGUs CiAJCQkJCQkJCQkJICBiYXNlbm9kZSwKIAkJCQkJCQkJCQkgIGNvbnRhaW5lclR5cGUsCiAJCQkJ CQkJCQkJICBjb250YWluZXJUeXBNb2QsCi0JCQkJCQkJCQkJICBzdWJzY3JpcHRzLAorCQkJCQkJ CQkJCSAgJnN1YnNjcmlwdHMsCiAJCQkJCQkJCQkJICB0cnVlKTsKIAogCXR5cGVOZWVkZWQgPSBz YnNyZWYtPnJlZnJlc3R5cGU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvYXJy YXlzdWJzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvYXJyYXlzdWJzLmMKaW5kZXggMjk0MGZi OGU4ZDcuLjIzNGMyYzI3OGMxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvYXJy YXlzdWJzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FycmF5c3Vicy5jCkBAIC01NCw3 ICs1NCw3IEBAIHR5cGVkZWYgc3RydWN0IEFycmF5U3ViV29ya3NwYWNlCiAgKi8KIHN0YXRpYyB2 b2lkCiBhcnJheV9zdWJzY3JpcHRfdHJhbnNmb3JtKFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmLAot CQkJCQkJICBMaXN0ICppbmRpcmVjdGlvbiwKKwkJCQkJCSAgTGlzdCAqKmluZGlyZWN0aW9uLAog CQkJCQkJICBQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkgIGJvb2wgaXNTbGljZSwKIAkJCQkJ CSAgYm9vbCBpc0Fzc2lnbm1lbnQpCkBAIC03MSw3ICs3MSw3IEBAIGFycmF5X3N1YnNjcmlwdF90 cmFuc2Zvcm0oU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYsCiAJICogaW5kaXJlY3Rpb24gaXRlbXMg dG8gc2xpY2VzIGJ5IHRyZWF0aW5nIHRoZSBzaW5nbGUgc3Vic2NyaXB0IGFzIHRoZQogCSAqIHVw cGVyIGJvdW5kIGFuZCBzdXBwbHlpbmcgYW4gYXNzdW1lZCBsb3dlciBib3VuZCBvZiAxLgogCSAq LwotCWZvcmVhY2goaWR4LCBpbmRpcmVjdGlvbikKKwlmb3JlYWNoKGlkeCwgKmluZGlyZWN0aW9u KQogCXsKIAkJQV9JbmRpY2VzICAqYWkgPSBsZmlyc3Rfbm9kZShBX0luZGljZXMsIGlkeCk7CiAJ CU5vZGUJICAgKnN1YmV4cHI7CkBAIC0xNTIsNiArMTUyLDggQEAgYXJyYXlfc3Vic2NyaXB0X3Ry YW5zZm9ybShTdWJzY3JpcHRpbmdSZWYgKnNic3JlZiwKIAkJCQkJCWxpc3RfbGVuZ3RoKHVwcGVy SW5kZXhwciksIE1BWERJTSkpKTsKIAkvKiBXZSBuZWVkIG5vdCBjaGVjayBsb3dlckluZGV4cHIg c2VwYXJhdGVseSAqLwogCisJKmluZGlyZWN0aW9uID0gTklMOworCiAJLyoKIAkgKiBEZXRlcm1p bmUgdGhlIHJlc3VsdCB0eXBlIG9mIHRoZSBzdWJzY3JpcHRpbmcgb3BlcmF0aW9uLiAgSXQncyB0 aGUgc2FtZQogCSAqIGFzIHRoZSBhcnJheSB0eXBlIGlmIHdlJ3JlIHNsaWNpbmcsIGVsc2UgaXQn cyB0aGUgZWxlbWVudCB0eXBlLiAgSW4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9qc29uYnN1YnMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uYnN1YnMuYwppbmRleCBl ODYyNmQzYjRmYy4uNWVhZDY5M2EzYjIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9qc29uYnN1YnMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmJzdWJzLmMKQEAg LTQxLDcgKzQxLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgSnNvbmJTdWJXb3Jrc3BhY2UKICAqLwogc3Rh dGljIHZvaWQKIGpzb25iX3N1YnNjcmlwdF90cmFuc2Zvcm0oU3Vic2NyaXB0aW5nUmVmICpzYnNy ZWYsCi0JCQkJCQkgIExpc3QgKmluZGlyZWN0aW9uLAorCQkJCQkJICBMaXN0ICoqaW5kaXJlY3Rp b24sCiAJCQkJCQkgIFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCSAgYm9vbCBpc1NsaWNlLAog CQkJCQkJICBib29sIGlzQXNzaWdubWVudCkKQEAgLTUzLDcgKzUzLDcgQEAganNvbmJfc3Vic2Ny aXB0X3RyYW5zZm9ybShTdWJzY3JpcHRpbmdSZWYgKnNic3JlZiwKIAkgKiBUcmFuc2Zvcm0gYW5k IGNvbnZlcnQgdGhlIHN1YnNjcmlwdCBleHByZXNzaW9ucy4gSnNvbmIgc3Vic2NyaXB0aW5nCiAJ ICogZG9lcyBub3Qgc3VwcG9ydCBzbGljZXMsIGxvb2sgb25seSBhdCB0aGUgdXBwZXIgaW5kZXgu CiAJICovCi0JZm9yZWFjaChpZHgsIGluZGlyZWN0aW9uKQorCWZvcmVhY2goaWR4LCAqaW5kaXJl Y3Rpb24pCiAJewogCQlBX0luZGljZXMgICphaSA9IGxmaXJzdF9ub2RlKEFfSW5kaWNlcywgaWR4 KTsKIAkJTm9kZQkgICAqc3ViRXhwcjsKQEAgLTE1OSw2ICsxNTksOCBAQCBqc29uYl9zdWJzY3Jp cHRfdHJhbnNmb3JtKFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmLAogCS8qIERldGVybWluZSB0aGUg cmVzdWx0IHR5cGUgb2YgdGhlIHN1YnNjcmlwdGluZyBvcGVyYXRpb247IGFsd2F5cyBqc29uYiAq LwogCXNic3JlZi0+cmVmcmVzdHlwZSA9IEpTT05CT0lEOwogCXNic3JlZi0+cmVmdHlwbW9kID0g LTE7CisKKwkqaW5kaXJlY3Rpb24gPSBOSUw7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9ub2Rlcy9zdWJzY3JpcHRpbmcuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3N1YnNjcmlwdGlu Zy5oCmluZGV4IGU5OTFmNGJmODI2Li44YTc2OGZlMzAzNyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvbm9kZXMvc3Vic2NyaXB0aW5nLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvc3Vic2NyaXB0 aW5nLmgKQEAgLTcxLDYgKzcxLDExIEBAIHR5cGVkZWYgc3RydWN0IFN1YnNjcmlwdEV4ZWNTdGVw cyBTdWJzY3JpcHRFeGVjU3RlcHM7CiAgKiBkb2VzIG5vdCBjYXJlIHRvIHN1cHBvcnQgc2xpY2lu ZywgaXQgY2FuIGp1c3QgdGhyb3cgYW4gZXJyb3IgaWYgaXNTbGljZS4pCiAgKiBTZWUgYXJyYXlf c3Vic2NyaXB0X3RyYW5zZm9ybSgpIGZvciBzYW1wbGUgY29kZS4KICAqCisgKiBUaGUgdHJhbnNm b3JtIG1ldGhvZCByZWNlaXZlcyBhIHBvaW50ZXIgdG8gYSBsaXN0IG9mIHJhdyBpbmRpcmVjdGlv bnMuCisgKiBJdCBtYXkgcGFyc2UgYSBzdWJsaXN0ICh0eXBpY2FsbHkgdGhlIHByZWZpeCkgb2Yg dGhlc2UgaW5kaXJlY3Rpb25zIGFuZAorICogbW9kaWZ5IHRoZSBvcmlnaW5hbCBsaXN0IGluIHBs YWNlLCBhbGxvd2luZyB0aGUgY2FsbGVyIHRvIGhhbmRsZSBhbnkKKyAqIHJlbWFpbmluZyBpbmRp cmVjdGlvbnMgZGlmZmVyZW50bHkgb3IgdG8gcmFpc2UgYW4gZXJyb3IgYXMgbmVlZGVkLgorICoK ICAqIFRoZSB0cmFuc2Zvcm0gbWV0aG9kIGlzIGFsc28gcmVzcG9uc2libGUgZm9yIGlkZW50aWZ5 aW5nIHRoZSByZXN1bHQgdHlwZQogICogb2YgdGhlIHN1YnNjcmlwdGluZyBvcGVyYXRpb24uICBB dCBjYWxsLCByZWZjb250YWluZXJ0eXBlIGFuZCByZWZ0eXBtb2QKICAqIGRlc2NyaWJlIHRoZSBj b250YWluZXIgdHlwZSAodGhpcyB3aWxsIGJlIGEgYmFzZSB0eXBlIG5vdCBhIGRvbWFpbiksIGFu ZApAQCAtOTMsNyArOTgsNyBAQCB0eXBlZGVmIHN0cnVjdCBTdWJzY3JpcHRFeGVjU3RlcHMgU3Vi c2NyaXB0RXhlY1N0ZXBzOwogICogYXNzaWdubWVudCBtdXN0IHJldHVybi4KICAqLwogdHlwZWRl ZiB2b2lkICgqU3Vic2NyaXB0VHJhbnNmb3JtKSAoU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYsCi0J CQkJCQkJCQlMaXN0ICppbmRpcmVjdGlvbiwKKwkJCQkJCQkJCUxpc3QgKippbmRpcmVjdGlvbiwK IAkJCQkJCQkJCVBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJCWJvb2wgaXNTbGljZSwKIAkJ CQkJCQkJCWJvb2wgaXNBc3NpZ25tZW50KTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNl ci9wYXJzZV9ub2RlLmggYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCmluZGV4IGY3 ZDA3Yzg0NTQyLi41OGE0YjlkZjE1NyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3Bh cnNlX25vZGUuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCkBAIC0zNjEs NyArMzYxLDcgQEAgZXh0ZXJuIFN1YnNjcmlwdGluZ1JlZiAqdHJhbnNmb3JtQ29udGFpbmVyU3Vi c2NyaXB0cyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCQkJCQkJIE5vZGUgKmNvbnRhaW5l ckJhc2UsCiAJCQkJCQkJCQkJCQkJIE9pZCBjb250YWluZXJUeXBlLAogCQkJCQkJCQkJCQkJCSBp bnQzMiBjb250YWluZXJUeXBNb2QsCi0JCQkJCQkJCQkJCQkJIExpc3QgKmluZGlyZWN0aW9uLAor CQkJCQkJCQkJCQkJCSBMaXN0ICoqaW5kaXJlY3Rpb24sCiAJCQkJCQkJCQkJCQkJIGJvb2wgaXNB c3NpZ25tZW50KTsKIGV4dGVybiBDb25zdCAqbWFrZV9jb25zdChQYXJzZVN0YXRlICpwc3RhdGUs IEFfQ29uc3QgKmFjb25zdCk7CiAKLS0gCjIuMzkuNSAoQXBwbGUgR2l0LTE1NCkKCg== --00000000000085838c063edb3d65 Content-Type: application/octet-stream; name="v19-0004-Extract-coerce_jsonpath_subscript.patch" Content-Disposition: attachment; filename="v19-0004-Extract-coerce_jsonpath_subscript.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mflgmzsa4 RnJvbSBkNGRjYjEwODVhY2I5OGM4ZGQ3ZGU2NmQyMmI2OGZlN2YzNGQ4NWFjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5kcmEgV2FuZyA8YWxleGFuZHJhLndhbmcub3NzQGdt YWlsLmNvbT4KRGF0ZTogVHVlLCA4IEp1bCAyMDI1IDIyOjE4OjA3IC0wNzAwClN1YmplY3Q6IFtQ QVRDSCB2MTkgNC83XSBFeHRyYWN0IGNvZXJjZV9qc29ucGF0aF9zdWJzY3JpcHQoKQoKVGhpcyBp cyBhIHByZXBhcmF0aW9uIHN0ZXAgZm9yIGEgZnV0dXJlIGNvbW1pdCB0aGF0IHdpbGwgcmV1c2Ug dGhlCmFmb3JlbWVudGlvbmVkIGZ1bmN0aW9uLgoKQ28tYXV0aG9yZWQtYnk6IE5pa2l0YSBHbHVr aG92IDxnbHVraG92Lm4uYUBnbWFpbC5jb20+CkNvLWF1dGhvcmVkLWJ5OiBBbGV4YW5kcmEgV2Fu ZyA8YWxleGFuZHJhLndhbmcub3NzQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEFuZHJldyBEdW5z dGFuIDxhbmRyZXdAZHVuc2xhbmUubmV0PgpSZXZpZXdlZC1ieTogTWF0aGV1cyBBbGNhbnRhcmEg PG1hdGhldXNzc2lsdjk3QGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEppYW4gSGUgPGppYW4udW5p dmVyc2FsaXR5QGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IENoYW8gTGkgPGxpLmV2YW4uY2hhb0Bn bWFpbC5jb20+Ci0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25ic3Vicy5jIHwgMTI4ICsr KysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDY0IGluc2VydGlv bnMoKyksIDY0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9qc29uYnN1YnMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uYnN1YnMuYwppbmRleCAy YWE0MTBmNjA1Yi4uODg1MmMyN2ExOTggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2Fk 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== --00000000000085838c063edb3d65 Content-Type: application/octet-stream; name="v19-0007-Implement-jsonb-wildcard-member-accessor.patch" Content-Disposition: attachment; filename="v19-0007-Implement-jsonb-wildcard-member-accessor.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mflgmzs71 RnJvbSBkOThjMGZlNWZlZmQzN2M4NmFhZmNhZWQ0NmE4ZWQ2OTVhZWYxNmZmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtpdGEgR2x1a2hvdiA8bi5nbHVob3ZAcG9zdGdyZXNwcm8u cnU+CkRhdGU6IFR1ZSwgOCBKdWwgMjAyNSAyMjoxODowNyAtMDcwMApTdWJqZWN0OiBbUEFUQ0gg djE5IDcvN10gSW1wbGVtZW50IGpzb25iIHdpbGRjYXJkIG1lbWJlciBhY2Nlc3NvcgoKVGhpcyBj b21taXQgYWRkcyBzdXBwb3J0IGZvciB3aWxkY2FyZCBtZW1iZXIgYWNjZXNzIGluIGpzb25iLCBh cwpzcGVjaWZpZWQgYnkgdGhlIEpTT04gc2ltcGxpZmllZCBhY2Nlc3NvciBzeW50YXggaW4gU1FM OjIwMjMuCgpDby1hdXRob3JlZC1ieTogTmlraXRhIEdsdWtob3YgPGdsdWtob3Yubi5hQGdtYWls LmNvbT4KQ28tYXV0aG9yZWQtYnk6IEFsZXhhbmRyYSBXYW5nIDxhbGV4YW5kcmEud2FuZy5vc3NA Z21haWwuY29tPgpSZXZpZXdlZC1ieTogQW5kcmV3IER1bnN0YW4gPGFuZHJld0BkdW5zbGFuZS5u ZXQ+ClJldmlld2VkLWJ5OiBNYXRoZXVzIEFsY2FudGFyYSA8bWF0aGV1c3NzaWx2OTdAZ21haWwu Y29tPgpSZXZpZXdlZC1ieTogTWFyayBEaWxnZXIgPG1hcmsuZGlsZ2VyQGVudGVycHJpc2VkYi5j b20+ClJldmlld2VkLWJ5OiBKaWFuIEhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ClJl dmlld2VkLWJ5OiBWaWsgRmVhcmluZyA8dmlrQHBvc3RncmVzZnJpZW5kcy5vcmc+ClJldmlld2Vk LWJ5OiBOaWtpdGEgTWFsYWtob3YgPGh1a3V0b2NAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogUGV0 ZXIgRWlzZW50cmF1dCA8cGV0ZXJAZWlzZW50cmF1dC5vcmc+ClJldmlld2VkLWJ5OiBKZWx0ZSBG ZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5sPgpUZXN0ZWQtYnk6IEplbHRlIEZlbm5lbWEt TmlvIDxwb3N0Z3Jlc0BqZWx0ZWYubmw+ClRlc3RlZC1ieTogQ2hhbyBMaSA8bGkuZXZhbi5jaGFv QGdtYWlsLmNvbT4KLS0tCiBzcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYyAgICAgICAgICAg ICAgICAgfCAgIDggKwogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAg ICAgIHwgICAyICsKIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgICAgICAgICAgICAg ICB8ICAzOSArLS0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYyAgICAgICAgICAg ICB8ICA2NyArKysrLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uYnN1YnMuYyAgICAgICAg ICAgICB8ICAxMiArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jICAgICAgICAg ICAgIHwgICA2ICstCiBzcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaCAgICAgICAgICAgICAg ICAgfCAgMTIgKwogc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaCAgICAgICAgICAgICAg IHwgICAzICsKIC4uLi9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24uYyAgICAgICAgICB8 ICAxOCArLQogLi4uL2VjcGcvdGVzdC9leHBlY3RlZC9zcWwtc3FsanNvbi5zdGRlcnIgICAgIHwg IDIzICstCiAuLi4vZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29uLnN0ZG91dCAgICAgfCAg IDIgKwogc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L3NxbC9zcWxqc29uLnBnYyAgICAgIHwgICA1 ICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pzb25iLm91dCAgICAgICAgICAgfCAyMjIg KysrKysrKysrKysrKysrKystCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9qc29uYi5zcWwgICAgICAg ICAgICAgICAgfCAgNDIgKysrLQogMTQgZmlsZXMgY2hhbmdlZCwgNDA2IGluc2VydGlvbnMoKyks IDU1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5j cy5jIGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKaW5kZXggZDFiZDU3NWQ5YmQuLjVm MzAzOGExYzI2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYworKysg Yi9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYwpAQCAtMjkxLDYgKzI5MSw5IEBAIGV4cHJU eXBlKGNvbnN0IE5vZGUgKmV4cHIpCiAJCQkgKi8KIAkJCXR5cGUgPSBURVhUT0lEOwogCQkJYnJl YWs7CisJCWNhc2UgVF9TdGFyOgorCQkJdHlwZSA9IFVOS05PV05PSUQ7CisJCQlicmVhazsKIAkJ ZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgbm9kZSB0eXBlOiAlZCIsIChp bnQpIG5vZGVUYWcoZXhwcikpOwogCQkJdHlwZSA9IEludmFsaWRPaWQ7CS8qIGtlZXAgY29tcGls ZXIgcXVpZXQgKi8KQEAgLTExNTYsNiArMTE1OSw5IEBAIGV4cHJTZXRDb2xsYXRpb24oTm9kZSAq ZXhwciwgT2lkIGNvbGxhdGlvbikKIAkJY2FzZSBUX0ZpZWxkQWNjZXNzb3JFeHByOgogCQkJKChG aWVsZEFjY2Vzc29yRXhwciAqKSBleHByKS0+ZmFlY29sbGlkID0gY29sbGF0aW9uOwogCQkJYnJl YWs7CisJCWNhc2UgVF9TdGFyOgorCQkJQXNzZXJ0KCFPaWRJc1ZhbGlkKGNvbGxhdGlvbikpOwor CQkJYnJlYWs7CiAJCWNhc2UgVF9TdWJzY3JpcHRpbmdSZWY6CiAJCQkoKFN1YnNjcmlwdGluZ1Jl ZiAqKSBleHByKS0+cmVmY29sbGlkID0gY29sbGF0aW9uOwogCQkJYnJlYWs7CkBAIC0yMTQwLDYg KzIxNDYsNyBAQCBleHByZXNzaW9uX3RyZWVfd2Fsa2VyX2ltcGwoTm9kZSAqbm9kZSwKIAkJY2Fz ZSBUX0NURVNlYXJjaENsYXVzZToKIAkJY2FzZSBUX01lcmdlU3VwcG9ydEZ1bmM6CiAJCWNhc2Ug VF9GaWVsZEFjY2Vzc29yRXhwcjoKKwkJY2FzZSBUX1N0YXI6CiAJCQkvKiBwcmltaXRpdmUgbm9k ZSB0eXBlcyB3aXRoIG5vIGV4cHJlc3Npb24gc3Vibm9kZXMgKi8KIAkJCWJyZWFrOwogCQljYXNl IFRfV2l0aENoZWNrT3B0aW9uOgpAQCAtMzAyMCw2ICszMDI3LDcgQEAgZXhwcmVzc2lvbl90cmVl X211dGF0b3JfaW1wbChOb2RlICpub2RlLAogCQljYXNlIFRfQ1RFU2VhcmNoQ2xhdXNlOgogCQlj YXNlIFRfTWVyZ2VTdXBwb3J0RnVuYzoKIAkJY2FzZSBUX0ZpZWxkQWNjZXNzb3JFeHByOgorCQlj YXNlIFRfU3RhcjoKIAkJCXJldHVybiBjb3B5T2JqZWN0KG5vZGUpOwogCQljYXNlIFRfV2l0aENo ZWNrT3B0aW9uOgogCQkJewpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBi L3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggOWZkNDhhY2IxZjguLmM4NmFiNmZkNTEy IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5k L3BhcnNlci9ncmFtLnkKQEAgLTE4OTgwLDYgKzE4OTgwLDcgQEAgY2hlY2tfZnVuY19uYW1lKExp c3QgKm5hbWVzLCBjb3JlX3l5c2Nhbl90IHl5c2Nhbm5lcikKIHN0YXRpYyBMaXN0ICoKIGNoZWNr X2luZGlyZWN0aW9uKExpc3QgKmluZGlyZWN0aW9uLCBjb3JlX3l5c2Nhbl90IHl5c2Nhbm5lcikK IHsKKyNpZiAwCiAJTGlzdENlbGwgICAqbDsKIAogCWZvcmVhY2gobCwgaW5kaXJlY3Rpb24pCkBA IC0xODk5MCw2ICsxODk5MSw3IEBAIGNoZWNrX2luZGlyZWN0aW9uKExpc3QgKmluZGlyZWN0aW9u LCBjb3JlX3l5c2Nhbl90IHl5c2Nhbm5lcikKIAkJCQlwYXJzZXJfeXllcnJvcigiaW1wcm9wZXIg dXNlIG9mIFwiKlwiIik7CiAJCX0KIAl9CisjZW5kaWYKIAlyZXR1cm4gaW5kaXJlY3Rpb247CiB9 CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgYi9zcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCmluZGV4IGY4YTA2MTdmODIzLi4zOGFjNjUwM2EyMiAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYworKysgYi9zcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCkBAIC03Myw3ICs3Myw2IEBAIHN0YXRpYyBOb2RlICp0 cmFuc2Zvcm1Db2x1bW5SZWYoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDb2x1bW5SZWYgKmNyZWYpOwog c3RhdGljIE5vZGUgKnRyYW5zZm9ybVdob2xlUm93UmVmKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJ CQkJCQkJICBQYXJzZU5hbWVzcGFjZUl0ZW0gKm5zaXRlbSwKIAkJCQkJCQkJICBpbnQgc3VibGV2 ZWxzX3VwLCBpbnQgbG9jYXRpb24pOwotc3RhdGljIE5vZGUgKnRyYW5zZm9ybUluZGlyZWN0aW9u KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQV9JbmRpcmVjdGlvbiAqaW5kKTsKIHN0YXRpYyBOb2RlICp0 cmFuc2Zvcm1UeXBlQ2FzdChQYXJzZVN0YXRlICpwc3RhdGUsIFR5cGVDYXN0ICp0Yyk7CiBzdGF0 aWMgTm9kZSAqdHJhbnNmb3JtQ29sbGF0ZUNsYXVzZShQYXJzZVN0YXRlICpwc3RhdGUsIENvbGxh dGVDbGF1c2UgKmMpOwogc3RhdGljIE5vZGUgKnRyYW5zZm9ybUpzb25PYmplY3RDb25zdHJ1Y3Rv cihQYXJzZVN0YXRlICpwc3RhdGUsCkBAIC0xNTcsNyArMTU2LDcgQEAgdHJhbnNmb3JtRXhwclJl Y3Vyc2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpleHByKQogCQkJYnJlYWs7CiAKIAkJY2Fz ZSBUX0FfSW5kaXJlY3Rpb246Ci0JCQlyZXN1bHQgPSB0cmFuc2Zvcm1JbmRpcmVjdGlvbihwc3Rh dGUsIChBX0luZGlyZWN0aW9uICopIGV4cHIpOworCQkJcmVzdWx0ID0gdHJhbnNmb3JtSW5kaXJl Y3Rpb24ocHN0YXRlLCAoQV9JbmRpcmVjdGlvbiAqKSBleHByLCBOVUxMKTsKIAkJCWJyZWFrOwog CiAJCWNhc2UgVF9BX0FycmF5RXhwcjoKQEAgLTQzMSw4ICs0MzAsOSBAQCB1bmtub3duX2F0dHJp YnV0ZShQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKnJlbHJlZiwgY29uc3QgY2hhciAqYXR0bmFt ZSwKIAl9CiB9CiAKLXN0YXRpYyBOb2RlICoKLXRyYW5zZm9ybUluZGlyZWN0aW9uKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgQV9JbmRpcmVjdGlvbiAqaW5kKQorTm9kZSAqCit0cmFuc2Zvcm1JbmRpcmVj dGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCwKKwkJCQkJIGJvb2wg KnRyYWlsaW5nX3N0YXJfZXhwYW5zaW9uKQogewogCU5vZGUJICAgKmxhc3Rfc3JmID0gcHN0YXRl LT5wX2xhc3Rfc3JmOwogCU5vZGUJICAgKnJlc3VsdCA9IHRyYW5zZm9ybUV4cHJSZWN1cnNlKHBz dGF0ZSwgaW5kLT5hcmcpOwpAQCAtNDUwLDE2ICs0NTAsOCBAQCB0cmFuc2Zvcm1JbmRpcmVjdGlv bihQYXJzZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCkKIAl7CiAJCU5vZGUJICAg Km4gPSBsZmlyc3QoaSk7CiAKLQkJaWYgKElzQShuLCBBX0luZGljZXMpIHx8IElzQShuLCBTdHJp bmcpKQotCQkJc3Vic2NyaXB0cyA9IGxhcHBlbmQoc3Vic2NyaXB0cywgbik7Ci0JCWVsc2UKLQkJ ewotCQkJQXNzZXJ0KElzQShuLCBBX1N0YXIpKTsKLQkJCWVyZXBvcnQoRVJST1IsCi0JCQkJCShl cnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKLQkJCQkJIGVycm1zZygicm93 IGV4cGFuc2lvbiB2aWEgXCIqXCIgaXMgbm90IHN1cHBvcnRlZCBoZXJlIiksCi0JCQkJCSBwYXJz ZXJfZXJycG9zaXRpb24ocHN0YXRlLCBsb2NhdGlvbikpKTsKLQkJfQorCQlBc3NlcnQgKElzQShu LCBBX0luZGljZXMpIHx8IElzQShuLCBTdHJpbmcpIHx8IElzQShuLCBBX1N0YXIpKTsKKwkJc3Vi c2NyaXB0cyA9IGxhcHBlbmQoc3Vic2NyaXB0cywgbik7CiAJfQogCiAJd2hpbGUgKHN1YnNjcmlw dHMpCkBAIC00ODYsNyArNDc4LDIxIEBAIHRyYW5zZm9ybUluZGlyZWN0aW9uKFBhcnNlU3RhdGUg KnBzdGF0ZSwgQV9JbmRpcmVjdGlvbiAqaW5kKQogCiAJCQluID0gbGluaXRpYWwoc3Vic2NyaXB0 cyk7CiAKLQkJCWlmICghSXNBKG4sIFN0cmluZykpCisJCQlpZiAoSXNBKG4sIEFfU3RhcikpCisJ CQl7CisJCQkJLyogU3VjY2VzcywgaWYgdHJhaWxpbmcgc3RhciBleHBhbnNpb24gaXMgYWxsb3dl ZCAqLworCQkJCWlmICh0cmFpbGluZ19zdGFyX2V4cGFuc2lvbiAmJiBsaXN0X2xlbmd0aChzdWJz Y3JpcHRzKSA9PSAxKQorCQkJCXsKKwkJCQkJKnRyYWlsaW5nX3N0YXJfZXhwYW5zaW9uID0gdHJ1 ZTsKKwkJCQkJcmV0dXJuIHJlc3VsdDsKKwkJCQl9CisKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJ CQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkJIGVycm1z Zygicm93IGV4cGFuc2lvbiB2aWEgXCIqXCIgaXMgbm90IHN1cHBvcnRlZCBoZXJlIiksCisJCQkJ CQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgbG9jYXRpb24pKSk7CisJCQl9CisJCQllbHNl IGlmICghSXNBKG4sIFN0cmluZykpCiAJCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJCShlcnJjb2Rl KEVSUkNPREVfREFUQVRZUEVfTUlTTUFUQ0gpLAogCQkJCQkJIGVycm1zZygiY2Fubm90IHN1YnNj cmlwdCB0eXBlICVzIGJlY2F1c2UgaXQgZG9lcyBub3Qgc3VwcG9ydCBzdWJzY3JpcHRpbmciLApA QCAtNTEyLDYgKzUxOCw5IEBAIHRyYW5zZm9ybUluZGlyZWN0aW9uKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgQV9JbmRpcmVjdGlvbiAqaW5kKQogCQlyZXN1bHQgPSBuZXdyZXN1bHQ7CiAJfQogCisJaWYg KHRyYWlsaW5nX3N0YXJfZXhwYW5zaW9uKQorCQkqdHJhaWxpbmdfc3Rhcl9leHBhbnNpb24gPSBm YWxzZTsKKwogCXJldHVybiByZXN1bHQ7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV90YXJnZXQuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYwpp bmRleCBiODk3MzZmZjFlYS4uODVjMDVjNzQzNGMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV90YXJnZXQuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0 LmMKQEAgLTQ3LDcgKzQ3LDcgQEAgc3RhdGljIE5vZGUgKnRyYW5zZm9ybUFzc2lnbm1lbnRTdWJz Y3JpcHRzKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIHN0YXRpYyBMaXN0ICpFeHBhbmRDb2x1bW5SZWZT dGFyKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ29sdW1uUmVmICpjcmVmLAogCQkJCQkJCQkgYm9vbCBt YWtlX3RhcmdldF9lbnRyeSk7CiBzdGF0aWMgTGlzdCAqRXhwYW5kQWxsVGFibGVzKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgaW50IGxvY2F0aW9uKTsKLXN0YXRpYyBMaXN0ICpFeHBhbmRJbmRpcmVjdGlv blN0YXIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0luZGlyZWN0aW9uICppbmQsCitzdGF0aWMgTm9k ZSAqRXhwYW5kSW5kaXJlY3Rpb25TdGFyKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQV9JbmRpcmVjdGlv biAqaW5kLAogCQkJCQkJCQkgICBib29sIG1ha2VfdGFyZ2V0X2VudHJ5LCBQYXJzZUV4cHJLaW5k IGV4cHJLaW5kKTsKIHN0YXRpYyBMaXN0ICpFeHBhbmRTaW5nbGVUYWJsZShQYXJzZVN0YXRlICpw c3RhdGUsIFBhcnNlTmFtZXNwYWNlSXRlbSAqbnNpdGVtLAogCQkJCQkJCSAgIGludCBzdWJsZXZl bHNfdXAsIGludCBsb2NhdGlvbiwKQEAgLTEzMyw2ICsxMzMsNyBAQCB0cmFuc2Zvcm1UYXJnZXRM aXN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqdGFyZ2V0bGlzdCwKIAlmb3JlYWNoKG9fdGFy Z2V0LCB0YXJnZXRsaXN0KQogCXsKIAkJUmVzVGFyZ2V0ICAqcmVzID0gKFJlc1RhcmdldCAqKSBs Zmlyc3Qob190YXJnZXQpOworCQlOb2RlCSAgICp0cmFuc2Zvcm1lZCA9IE5VTEw7CiAKIAkJLyoK IAkJICogQ2hlY2sgZm9yICJzb21ldGhpbmcuKiIuICBEZXBlbmRpbmcgb24gdGhlIGNvbXBsZXhp dHkgb2YgdGhlCkBAIC0xNjEsMTMgKzE2MiwxOSBAQCB0cmFuc2Zvcm1UYXJnZXRMaXN0KFBhcnNl U3RhdGUgKnBzdGF0ZSwgTGlzdCAqdGFyZ2V0bGlzdCwKIAogCQkJCWlmIChJc0EobGxhc3QoaW5k LT5pbmRpcmVjdGlvbiksIEFfU3RhcikpCiAJCQkJewotCQkJCQkvKiBJdCBpcyBzb21ldGhpbmcu KiwgZXhwYW5kIGludG8gbXVsdGlwbGUgaXRlbXMgKi8KLQkJCQkJcF90YXJnZXQgPSBsaXN0X2Nv bmNhdChwX3RhcmdldCwKLQkJCQkJCQkJCQkgICBFeHBhbmRJbmRpcmVjdGlvblN0YXIocHN0YXRl LAotCQkJCQkJCQkJCQkJCQkJCSBpbmQsCi0JCQkJCQkJCQkJCQkJCQkJIHRydWUsCi0JCQkJCQkJ CQkJCQkJCQkJIGV4cHJLaW5kKSk7Ci0JCQkJCWNvbnRpbnVlOworCQkJCQlOb2RlCSAgICpjb2x1 bW5zID0gRXhwYW5kSW5kaXJlY3Rpb25TdGFyKHBzdGF0ZSwKKwkJCQkJCQkJCQkJCQkJCQlpbmQs CisJCQkJCQkJCQkJCQkJCQkJdHJ1ZSwKKwkJCQkJCQkJCQkJCQkJCQlleHByS2luZCk7CisKKwkJ CQkJaWYgKElzQShjb2x1bW5zLCBMaXN0KSkKKwkJCQkJeworCQkJCQkJLyogSXQgaXMgc29tZXRo aW5nLiosIGV4cGFuZCBpbnRvIG11bHRpcGxlIGl0ZW1zICovCisJCQkJCQlwX3RhcmdldCA9IGxp c3RfY29uY2F0KHBfdGFyZ2V0LCAoTGlzdCAqKSBjb2x1bW5zKTsKKwkJCQkJCWNvbnRpbnVlOwor CQkJCQl9CisKKwkJCQkJdHJhbnNmb3JtZWQgPSAoTm9kZSAqKSBjb2x1bW5zOwogCQkJCX0KIAkJ CX0KIAkJfQpAQCAtMTc5LDcgKzE4Niw3IEBAIHRyYW5zZm9ybVRhcmdldExpc3QoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBMaXN0ICp0YXJnZXRsaXN0LAogCQlwX3RhcmdldCA9IGxhcHBlbmQocF90YXJn ZXQsCiAJCQkJCQkgICB0cmFuc2Zvcm1UYXJnZXRFbnRyeShwc3RhdGUsCiAJCQkJCQkJCQkJCQly ZXMtPnZhbCwKLQkJCQkJCQkJCQkJCU5VTEwsCisJCQkJCQkJCQkJCQl0cmFuc2Zvcm1lZCwKIAkJ CQkJCQkJCQkJCWV4cHJLaW5kLAogCQkJCQkJCQkJCQkJcmVzLT5uYW1lLAogCQkJCQkJCQkJCQkJ ZmFsc2UpKTsKQEAgLTI1MCwxMCArMjU3LDE1IEBAIHRyYW5zZm9ybUV4cHJlc3Npb25MaXN0KFBh cnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqZXhwcmxpc3QsCiAKIAkJCWlmIChJc0EobGxhc3QoaW5k LT5pbmRpcmVjdGlvbiksIEFfU3RhcikpCiAJCQl7Ci0JCQkJLyogSXQgaXMgc29tZXRoaW5nLios IGV4cGFuZCBpbnRvIG11bHRpcGxlIGl0ZW1zICovCi0JCQkJcmVzdWx0ID0gbGlzdF9jb25jYXQo cmVzdWx0LAotCQkJCQkJCQkJIEV4cGFuZEluZGlyZWN0aW9uU3Rhcihwc3RhdGUsIGluZCwKLQkJ CQkJCQkJCQkJCQkJICAgZmFsc2UsIGV4cHJLaW5kKSk7CisJCQkJTm9kZQkgICAqY29scyA9IEV4 cGFuZEluZGlyZWN0aW9uU3Rhcihwc3RhdGUsIGluZCwKKwkJCQkJCQkJCQkJCQkJIGZhbHNlLCBl eHByS2luZCk7CisKKwkJCQlpZiAoIWNvbHMgfHwgSXNBKGNvbHMsIExpc3QpKQorCQkJCQkvKiBJ dCBpcyBzb21ldGhpbmcuKiwgZXhwYW5kIGludG8gbXVsdGlwbGUgaXRlbXMgKi8KKwkJCQkJcmVz dWx0ID0gbGlzdF9jb25jYXQocmVzdWx0LCAoTGlzdCAqKSBjb2xzKTsKKwkJCQllbHNlCisJCQkJ CXJlc3VsdCA9IGxhcHBlbmQocmVzdWx0LCBjb2xzKTsKKwogCQkJCWNvbnRpbnVlOwogCQkJfQog CQl9CkBAIC0xMzQ0LDIyICsxMzU2LDMwIEBAIEV4cGFuZEFsbFRhYmxlcyhQYXJzZVN0YXRlICpw c3RhdGUsIGludCBsb2NhdGlvbikKICAqIEZvciByb2J1c3RuZXNzLCB3ZSB1c2UgYSBzZXBhcmF0 ZSAibWFrZV90YXJnZXRfZW50cnkiIGZsYWcgdG8gY29udHJvbAogICogdGhpcyByYXRoZXIgdGhh biByZWx5aW5nIG9uIGV4cHJLaW5kLgogICovCi1zdGF0aWMgTGlzdCAqCitzdGF0aWMgTm9kZSAq CiBFeHBhbmRJbmRpcmVjdGlvblN0YXIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0luZGlyZWN0aW9u ICppbmQsCiAJCQkJCSAgYm9vbCBtYWtlX3RhcmdldF9lbnRyeSwgUGFyc2VFeHByS2luZCBleHBy S2luZCkKIHsKIAlOb2RlCSAgICpleHByOworCVBhcnNlRXhwcktpbmQgc3ZfZXhwcl9raW5kOwor CWJvb2wJCXRyYWlsaW5nX3N0YXJfZXhwYW5zaW9uID0gZmFsc2U7CisKKwkvKiBTYXZlIGFuZCBy ZXN0b3JlIGlkZW50aXR5IG9mIGV4cHJlc3Npb24gdHlwZSB3ZSdyZSBwYXJzaW5nICovCisJQXNz ZXJ0KGV4cHJLaW5kICE9IEVYUFJfS0lORF9OT05FKTsKKwlzdl9leHByX2tpbmQgPSBwc3RhdGUt PnBfZXhwcl9raW5kOworCXBzdGF0ZS0+cF9leHByX2tpbmQgPSBleHByS2luZDsKIAogCS8qIFN0 cmlwIG9mZiB0aGUgJyonIHRvIGNyZWF0ZSBhIHJlZmVyZW5jZSB0byB0aGUgcm93dHlwZSBvYmpl Y3QgKi8KLQlpbmQgPSBjb3B5T2JqZWN0KGluZCk7Ci0JaW5kLT5pbmRpcmVjdGlvbiA9IGxpc3Rf dHJ1bmNhdGUoaW5kLT5pbmRpcmVjdGlvbiwKLQkJCQkJCQkJCSBsaXN0X2xlbmd0aChpbmQtPmlu ZGlyZWN0aW9uKSAtIDEpOworCWV4cHIgPSB0cmFuc2Zvcm1JbmRpcmVjdGlvbihwc3RhdGUsIGlu ZCwgJnRyYWlsaW5nX3N0YXJfZXhwYW5zaW9uKTsKKworCXBzdGF0ZS0+cF9leHByX2tpbmQgPSBz dl9leHByX2tpbmQ7CiAKLQkvKiBBbmQgdHJhbnNmb3JtIHRoYXQgKi8KLQlleHByID0gdHJhbnNm b3JtRXhwcihwc3RhdGUsIChOb2RlICopIGluZCwgZXhwcktpbmQpOworCS8qICcqJyB3YXMgY29u c3VtZWQgYnkgZ2VuZXJpYyB0eXBlIHN1YnNjcmlwdGluZyAqLworCWlmICghdHJhaWxpbmdfc3Rh cl9leHBhbnNpb24pCisJCXJldHVybiBleHByOwogCiAJLyogRXhwYW5kIHRoZSByb3d0eXBlIGV4 cHJlc3Npb24gaW50byBpbmRpdmlkdWFsIGZpZWxkcyAqLwotCXJldHVybiBFeHBhbmRSb3dSZWZl cmVuY2UocHN0YXRlLCBleHByLCBtYWtlX3RhcmdldF9lbnRyeSk7CisJcmV0dXJuIChOb2RlICop IEV4cGFuZFJvd1JlZmVyZW5jZShwc3RhdGUsIGV4cHIsIG1ha2VfdGFyZ2V0X2VudHJ5KTsKIH0K IAogLyoKQEAgLTE3ODQsMTMgKzE4MDQsMTggQEAgRmlndXJlQ29sbmFtZUludGVybmFsKE5vZGUg Km5vZGUsIGNoYXIgKipuYW1lKQogCQkJCWNoYXIJICAgKmZuYW1lID0gTlVMTDsKIAkJCQlMaXN0 Q2VsbCAgICpsOwogCi0JCQkJLyogZmluZCBsYXN0IGZpZWxkIG5hbWUsIGlmIGFueSwgaWdub3Jp bmcgIioiIGFuZCBzdWJzY3JpcHRzICovCisJCQkJLyoKKwkJCQkgKiBmaW5kIGxhc3QgZmllbGQg bmFtZSwgaWYgYW55LCBpZ25vcmluZyBzdWJzY3JpcHRzLCBhbmQgdXNlCisJCQkJICogJz9jb2x1 bW4/JyB3aGVuIHRoZXJlJ3MgYSB0cmFpbGluZyAnKicuCisJCQkJICovCiAJCQkJZm9yZWFjaChs LCBpbmQtPmluZGlyZWN0aW9uKQogCQkJCXsKIAkJCQkJTm9kZQkgICAqaSA9IGxmaXJzdChsKTsK IAogCQkJCQlpZiAoSXNBKGksIFN0cmluZykpCiAJCQkJCQlmbmFtZSA9IHN0clZhbChpKTsKKwkJ CQkJZWxzZSBpZiAoSXNBKGksIEFfU3RhcikpCisJCQkJCQlmbmFtZSA9ICI/Y29sdW1uPyI7CiAJ CQkJfQogCQkJCWlmIChmbmFtZSkKIAkJCQl7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGls cy9hZHQvanNvbmJzdWJzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmJzdWJzLmMKaW5k ZXggNDc2MmY2YmQxMWMuLjFkY2RlNjU4NzM5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGls cy9hZHQvanNvbmJzdWJzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25ic3Vicy5j CkBAIC0xMjQsNyArMTI0LDcgQEAganNvbmJfY2hlY2tfanNvbnBhdGhfbmVlZGVkKExpc3QgKmlu ZGlyZWN0aW9uKQogCXsKIAkJTm9kZQkgICAqYWNjZXNzb3IgPSBsZmlyc3QobGMpOwogCi0JCWlm IChJc0EoYWNjZXNzb3IsIFN0cmluZykpCisJCWlmIChJc0EoYWNjZXNzb3IsIFN0cmluZykgfHwg SXNBKGFjY2Vzc29yLCBBX1N0YXIpKQogCQkJcmV0dXJuIHRydWU7CiAJCWVsc2UKIAkJewpAQCAt MzM5LDYgKzMzOSwxNiBAQCBqc29uYl9zdWJzY3JpcHRfbWFrZV9qc29ucGF0aChQYXJzZVN0YXRl ICpwc3RhdGUsIExpc3QgKippbmRpcmVjdGlvbiwgU3Vic2NyaXB0aQogCQkJCX0KIAkJCX0KIAkJ fQorCQllbHNlIGlmIChJc0EoYWNjZXNzb3IsIEFfU3RhcikpCisJCXsKKwkJCVN0YXIgKnN0YXJf bm9kZTsKKwkJCWpwaSA9IG1ha2VfanNvbnBhdGhfaXRlbShqcGlBbnlLZXkpOworCisJCQlzdGFy X25vZGUgPSBtYWtlTm9kZShTdGFyKTsKKwkJCXN0YXJfbm9kZS0+dHlwZSA9IFRfU3RhcjsKKwor CQkJc2JzcmVmLT5yZWZ1cHBlcmluZGV4cHIgPSBsYXBwZW5kKHNic3JlZi0+cmVmdXBwZXJpbmRl eHByLCBzdGFyX25vZGUpOworCQl9CiAJCWVsc2UKIAkJewogCQkJLyoKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9y dWxldXRpbHMuYwppbmRleCBiYWEzYWU5N2Q1Ny4uYWNlMGVmZjUyZTIgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9h ZHQvcnVsZXV0aWxzLmMKQEAgLTEzMDEwLDcgKzEzMDEwLDExIEBAIHByaW50U3Vic2NyaXB0cyhT dWJzY3JpcHRpbmdSZWYgKnNic3JlZiwgZGVwYXJzZV9jb250ZXh0ICpjb250ZXh0KQogCXsKIAkJ Tm9kZSAqdXBwZXIgPSAoTm9kZSAqKSBsZmlyc3QodXBsaXN0X2l0ZW0pOwogCi0JCWlmICh1cHBl ciAmJiBJc0EodXBwZXIsIEZpZWxkQWNjZXNzb3JFeHByKSkKKwkJaWYgKHVwcGVyICYmIElzQSh1 cHBlciwgU3RhcikpCisJCXsKKwkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCAiLioiKTsK KwkJfQorCQllbHNlIGlmICh1cHBlciAmJiBJc0EodXBwZXIsIEZpZWxkQWNjZXNzb3JFeHByKSkK IAkJewogCQkJRmllbGRBY2Nlc3NvckV4cHIgKmZhZSA9IChGaWVsZEFjY2Vzc29yRXhwciAqKSB1 cHBlcjsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmggYi9zcmMv aW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaAppbmRleCA3ZTg5NjIxYmQ2NS4uN2U0MTg4MzBmMjIg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCisrKyBiL3NyYy9pbmNs dWRlL25vZGVzL3ByaW1ub2Rlcy5oCkBAIC0yNDE5LDQgKzI0MTksMTYgQEAgdHlwZWRlZiBzdHJ1 Y3QgRmllbGRBY2Nlc3NvckV4cHIKIAlPaWQJCQlmYWVjb2xsaWQgcGdfbm9kZV9hdHRyKHF1ZXJ5 X2p1bWJsZV9pZ25vcmUpOwogfQkJCUZpZWxkQWNjZXNzb3JFeHByOwogCisvKgorICogU3RhciAt IHJlcHJlc2VudHMgYSB3aWxkY2FyZCBtZW1iZXIgYWNjZXNzb3IgKGUuZy4sICIuKiIpIHVzZWQg aW4gSlNPTkIgc2ltcGxpZmllZCBhY2Nlc3Nvci4KKyAqCisgKiBUaGlzIG5vZGUgc2VydmVzIGFz IGEgc3ludGFjdGljIHBsYWNlaG9sZGVyIGluIHRoZSBleHByZXNzaW9uIHRyZWUgYW5kIGRvZXMg bm90IGdldCBldmFsdWF0ZWQsIGhlbmNlIGl0CisgKiBoYXMgbm8gYXNzb2NpYXRlZCB0eXBlIG9y IGNvbGxhdGlvbi4KKyAqLwordHlwZWRlZiBzdHJ1Y3QgU3RhcgoreworCU5vZGVUYWcJCXR5cGU7 Cit9CQkJU3RhcjsKKworCiAjZW5kaWYJCQkJCQkJLyogUFJJTU5PREVTX0ggKi8KZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9leHByLmggYi9zcmMvaW5jbHVkZS9wYXJzZXIv cGFyc2VfZXhwci5oCmluZGV4IGVmYmFmZjhlNzEwLi5jOWY2YTc3MjRjMCAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIv cGFyc2VfZXhwci5oCkBAIC0yMiw0ICsyMiw3IEBAIGV4dGVybiBOb2RlICp0cmFuc2Zvcm1FeHBy KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwciwgUGFyc2VFeHByS2luZCBleHByS2luCiAK IGV4dGVybiBjb25zdCBjaGFyICpQYXJzZUV4cHJLaW5kTmFtZShQYXJzZUV4cHJLaW5kIGV4cHJL aW5kKTsKIAorZXh0ZXJuIE5vZGUgKnRyYW5zZm9ybUluZGlyZWN0aW9uKFBhcnNlU3RhdGUgKnBz dGF0ZSwgQV9JbmRpcmVjdGlvbiAqaW5kLAorCQkJCQkJCQkgIGJvb2wgKnRyYWlsaW5nX3N0YXJf ZXhwYW5zaW9uKTsKKwogI2VuZGlmCQkJCQkJCS8qIFBBUlNFX0VYUFJfSCAqLwpkaWZmIC0tZ2l0 IGEvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29uLmMgYi9zcmMv aW50ZXJmYWNlcy9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24uYwppbmRleCA5MzViNDdh M2I5YS4uNTg1ZDliMTQ0NDUgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9l eHBlY3RlZC9zcWwtc3FsanNvbi5jCisrKyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9leHBl Y3RlZC9zcWwtc3FsanNvbi5jCkBAIC01MTUsOSArNTE1LDkgQEAgaWYgKHNxbGNhLnNxbGNvZGUg PCAwKSBzcWxwcmludCgpO30KIGlmIChzcWxjYS5zcWxjb2RlIDwgMCkgc3FscHJpbnQoKTt9CiAj bGluZSAxNDUgInNxbGpzb24ucGdjIgogCi0JLy8gZXJyb3IKKwlwcmludGYoIkZvdW5kIGpzb249 JXNcbiIsIGpzb24pOwogCi0JeyBFQ1BHZG8oX19MSU5FX18sIDAsIDEsIE5VTEwsIDAsIEVDUEdz dF9ub3JtYWwsICJzZWxlY3QganNvbiAoICggJ3tcImFcIjoge1wiYlwiOiAxLCBcImNcIjogMn0s IFwiYlwiOiBbe1wieFwiOiAxfSwge1wieFwiOiBbMTIsIHtcInlcIjoxfV19XX0nIDo6IGpzb25i ICkgWyAnYicgXSBbIDAgOiBdICkiLCBFQ1BHdF9FT0lULCAKKwl7IEVDUEdkbyhfX0xJTkVfXywg MCwgMSwgTlVMTCwgMCwgRUNQR3N0X25vcm1hbCwgInNlbGVjdCBqc29uICggKCAne1wiYVwiOiB7 XCJiXCI6IDEsIFwiY1wiOiAyfSwgXCJiXCI6IFt7XCJ4XCI6IDF9LCB7XCJ4XCI6IFsxMiwge1wi eVwiOjF9XX1dfScgOjoganNvbmIgKSAuICogLiB4ICkiLCBFQ1BHdF9FT0lULCAKIAlFQ1BHdF9j aGFyLChqc29uKSwobG9uZykxMDI0LChsb25nKTEsKDEwMjQpKnNpemVvZihjaGFyKSwgCiAJRUNQ R3RfTk9fSU5ESUNBVE9SLCBOVUxMICwgMEwsIDBMLCAwTCwgRUNQR3RfRU9SVCk7CiAjbGluZSAx NDggInNxbGpzb24ucGdjIgpAQCAtNTI3LDcgKzUyNyw3IEBAIGlmIChzcWxjYS5zcWxjb2RlIDwg MCkgc3FscHJpbnQoKTt9CiAKIAlwcmludGYoIkZvdW5kIGpzb249JXNcbiIsIGpzb24pOwogCi0J eyBFQ1BHZG8oX19MSU5FX18sIDAsIDEsIE5VTEwsIDAsIEVDUEdzdF9ub3JtYWwsICJzZWxlY3Qg anNvbiAoICggJ3tcImFcIjoge1wiYlwiOiAxLCBcImNcIjogMn0sIFwiYlwiOiBbe1wieFwiOiAx fSwge1wieFwiOiBbMTIsIHtcInlcIjoxfV19XX0nIDo6IGpzb25iICkgLiBiIFsgOiBdICkiLCBF Q1BHdF9FT0lULCAKKwl7IEVDUEdkbyhfX0xJTkVfXywgMCwgMSwgTlVMTCwgMCwgRUNQR3N0X25v cm1hbCwgInNlbGVjdCBqc29uICggKCAne1wiYVwiOiB7XCJiXCI6IDEsIFwiY1wiOiAyfSwgXCJi XCI6IFt7XCJ4XCI6IDF9LCB7XCJ4XCI6IFsxMiwge1wieVwiOjF9XX1dfScgOjoganNvbmIgKSBb ICdiJyBdIFsgMCA6IF0gKSIsIEVDUEd0X0VPSVQsIAogCUVDUEd0X2NoYXIsKGpzb24pLChsb25n KTEwMjQsKGxvbmcpMSwoMTAyNCkqc2l6ZW9mKGNoYXIpLCAKIAlFQ1BHdF9OT19JTkRJQ0FUT1Is IE5VTEwgLCAwTCwgMEwsIDBMLCBFQ1BHdF9FT1JUKTsKICNsaW5lIDE1MSAic3FsanNvbi5wZ2Mi CkBAIC01MzcsMTIgKzUzNywyMiBAQCBpZiAoc3FsY2Euc3FsY29kZSA8IDApIHNxbHByaW50KCk7 fQogCiAJcHJpbnRmKCJGb3VuZCBqc29uPSVzXG4iLCBqc29uKTsKIAotICB7IEVDUEdkaXNjb25u ZWN0KF9fTElORV9fLCAiQ1VSUkVOVCIpOworCXsgRUNQR2RvKF9fTElORV9fLCAwLCAxLCBOVUxM LCAwLCBFQ1BHc3Rfbm9ybWFsLCAic2VsZWN0IGpzb24gKCAoICd7XCJhXCI6IHtcImJcIjogMSwg XCJjXCI6IDJ9LCBcImJcIjogW3tcInhcIjogMX0sIHtcInhcIjogWzEyLCB7XCJ5XCI6MX1dfV19 JyA6OiBqc29uYiApIC4gYiBbIDogXSApIiwgRUNQR3RfRU9JVCwgCisJRUNQR3RfY2hhciwoanNv biksKGxvbmcpMTAyNCwobG9uZykxLCgxMDI0KSpzaXplb2YoY2hhciksIAorCUVDUEd0X05PX0lO RElDQVRPUiwgTlVMTCAsIDBMLCAwTCwgMEwsIEVDUEd0X0VPUlQpOwogI2xpbmUgMTU0ICJzcWxq c29uLnBnYyIKIAogaWYgKHNxbGNhLnNxbGNvZGUgPCAwKSBzcWxwcmludCgpO30KICNsaW5lIDE1 NCAic3FsanNvbi5wZ2MiCiAKKwlwcmludGYoIkZvdW5kIGpzb249JXNcbiIsIGpzb24pOworCisg IHsgRUNQR2Rpc2Nvbm5lY3QoX19MSU5FX18sICJDVVJSRU5UIik7CisjbGluZSAxNTcgInNxbGpz b24ucGdjIgorCitpZiAoc3FsY2Euc3FsY29kZSA8IDApIHNxbHByaW50KCk7fQorI2xpbmUgMTU3 ICJzcWxqc29uLnBnYyIKKwogCiAgIHJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2ludGVy ZmFjZXMvZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29uLnN0ZGVyciBiL3NyYy9pbnRlcmZh Y2VzL2VjcGcvdGVzdC9leHBlY3RlZC9zcWwtc3FsanNvbi5zdGRlcnIKaW5kZXggZjNmODk5YzZk ODcuLjRiOTA4ODU0NWQ2IDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3QvZXhw ZWN0ZWQvc3FsLXNxbGpzb24uc3RkZXJyCisrKyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9l eHBlY3RlZC9zcWwtc3FsanNvbi5zdGRlcnIKQEAgLTM0NywyMiArMzQ3LDE5IEBAIFNRTCBlcnJv cjogc2NoZW1hICJqc29uYiIgZG9lcyBub3QgZXhpc3Qgb24gbGluZSAxMjEKIFtOT19QSURdOiBz cWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCiBbTk9fUElEXTogZWNwZ19leGVjdXRlIG9uIGxp bmUgMTQ1OiB1c2luZyBQUWV4ZWMKIFtOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAw MDAwCi1bTk9fUElEXTogZWNwZ19jaGVja19QUXJlc3VsdCBvbiBsaW5lIDE0NTogYmFkIHJlc3Bv bnNlIC0gRVJST1I6ICByb3cgZXhwYW5zaW9uIHZpYSAiKiIgaXMgbm90IHN1cHBvcnRlZCBoZXJl Ci1MSU5FIDE6IHNlbGVjdCBqc29uICggKCAneyJhIjogeyJiIjogMSwgImMiOiAyfSwgImIiOiBb eyJ4IjogMX0sIHsieC4uLgotICAgICAgICAgICAgICAgICAgICAgICAgXgorW05PX1BJRF06IGVj cGdfcHJvY2Vzc19vdXRwdXQgb24gbGluZSAxNDU6IGNvcnJlY3RseSBnb3QgMSB0dXBsZXMgd2l0 aCAxIGZpZWxkcwogW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKLVtOT19Q SURdOiByYWlzaW5nIHNxbHN0YXRlIDBBMDAwIChzcWxjb2RlIC00MDApOiByb3cgZXhwYW5zaW9u IHZpYSAiKiIgaXMgbm90IHN1cHBvcnRlZCBoZXJlIG9uIGxpbmUgMTQ1Ci1bTk9fUElEXTogc3Fs Y2E6IGNvZGU6IC00MDAsIHN0YXRlOiAwQTAwMAotU1FMIGVycm9yOiByb3cgZXhwYW5zaW9uIHZp YSAiKiIgaXMgbm90IHN1cHBvcnRlZCBoZXJlIG9uIGxpbmUgMTQ1Ci1bTk9fUElEXTogZWNwZ19l eGVjdXRlIG9uIGxpbmUgMTQ4OiBxdWVyeTogc2VsZWN0IGpzb24gKCAoICd7ImEiOiB7ImIiOiAx LCAiYyI6IDJ9LCAiYiI6IFt7IngiOiAxfSwgeyJ4IjogWzEyLCB7InkiOjF9XX1dfScgOjoganNv bmIgKSBbICdiJyBdIFsgMCA6IF0gKTsgd2l0aCAwIHBhcmFtZXRlcihzKSBvbiBjb25uZWN0aW9u IGVjcGcxX3JlZ3Jlc3Npb24KK1tOT19QSURdOiBlY3BnX2dldF9kYXRhIG9uIGxpbmUgMTQ1OiBS RVNVTFQ6IFt7ImIiOiAxLCAiYyI6IDJ9LCBbeyJ4IjogMX0sIHsieCI6IFsxMiwgeyJ5IjogMX1d fV1dIG9mZnNldDogLTE7IGFycmF5OiBubworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0 ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSAxNDg6IHF1ZXJ5OiBzZWxl Y3QganNvbiAoICggJ3siYSI6IHsiYiI6IDEsICJjIjogMn0sICJiIjogW3sieCI6IDF9LCB7Ingi OiBbMTIsIHsieSI6MX1dfV19JyA6OiBqc29uYiApIC4gKiAuIHggKTsgd2l0aCAwIHBhcmFtZXRl cihzKSBvbiBjb25uZWN0aW9uIGVjcGcxX3JlZ3Jlc3Npb24KIFtOT19QSURdOiBzcWxjYTogY29k ZTogMCwgc3RhdGU6IDAwMDAwCiBbTk9fUElEXTogZWNwZ19leGVjdXRlIG9uIGxpbmUgMTQ4OiB1 c2luZyBQUWV4ZWMKIFtOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCiBbTk9f UElEXTogZWNwZ19wcm9jZXNzX291dHB1dCBvbiBsaW5lIDE0ODogY29ycmVjdGx5IGdvdCAxIHR1 cGxlcyB3aXRoIDEgZmllbGRzCiBbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAw MAotW05PX1BJRF06IGVjcGdfZ2V0X2RhdGEgb24gbGluZSAxNDg6IFJFU1VMVDogW3sieCI6IDF9 LCB7IngiOiBbMTIsIHsieSI6IDF9XX1dIG9mZnNldDogLTE7IGFycmF5OiBubworW05PX1BJRF06 IGVjcGdfZ2V0X2RhdGEgb24gbGluZSAxNDg6IFJFU1VMVDogWzEsIFsxMiwgeyJ5IjogMX1dXSBv ZmZzZXQ6IC0xOyBhcnJheTogbm8KIFtOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAw MDAwCi1bTk9fUElEXTogZWNwZ19leGVjdXRlIG9uIGxpbmUgMTUxOiBxdWVyeTogc2VsZWN0IGpz b24gKCAoICd7ImEiOiB7ImIiOiAxLCAiYyI6IDJ9LCAiYiI6IFt7IngiOiAxfSwgeyJ4IjogWzEy LCB7InkiOjF9XX1dfScgOjoganNvbmIgKSAuIGIgWyA6IF0gKTsgd2l0aCAwIHBhcmFtZXRlcihz KSBvbiBjb25uZWN0aW9uIGVjcGcxX3JlZ3Jlc3Npb24KK1tOT19QSURdOiBlY3BnX2V4ZWN1dGUg b24gbGluZSAxNTE6IHF1ZXJ5OiBzZWxlY3QganNvbiAoICggJ3siYSI6IHsiYiI6IDEsICJjIjog Mn0sICJiIjogW3sieCI6IDF9LCB7IngiOiBbMTIsIHsieSI6MX1dfV19JyA6OiBqc29uYiApIFsg J2InIF0gWyAwIDogXSApOyB3aXRoIDAgcGFyYW1ldGVyKHMpIG9uIGNvbm5lY3Rpb24gZWNwZzFf cmVncmVzc2lvbgogW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKIFtOT19Q SURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSAxNTE6IHVzaW5nIFBRZXhlYwogW05PX1BJRF06IHNx bGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKQEAgLTM3MCw1ICszNjcsMTMgQEAgU1FMIGVycm9y OiByb3cgZXhwYW5zaW9uIHZpYSAiKiIgaXMgbm90IHN1cHBvcnRlZCBoZXJlIG9uIGxpbmUgMTQ1 CiBbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAogW05PX1BJRF06IGVjcGdf Z2V0X2RhdGEgb24gbGluZSAxNTE6IFJFU1VMVDogW3sieCI6IDF9LCB7IngiOiBbMTIsIHsieSI6 IDF9XX1dIG9mZnNldDogLTE7IGFycmF5OiBubwogW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBz dGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSAxNTQ6IHF1ZXJ5OiBz ZWxlY3QganNvbiAoICggJ3siYSI6IHsiYiI6IDEsICJjIjogMn0sICJiIjogW3sieCI6IDF9LCB7 IngiOiBbMTIsIHsieSI6MX1dfV19JyA6OiBqc29uYiApIC4gYiBbIDogXSApOyB3aXRoIDAgcGFy YW1ldGVyKHMpIG9uIGNvbm5lY3Rpb24gZWNwZzFfcmVncmVzc2lvbgorW05PX1BJRF06IHNxbGNh OiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSAx NTQ6IHVzaW5nIFBRZXhlYworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAK K1tOT19QSURdOiBlY3BnX3Byb2Nlc3Nfb3V0cHV0IG9uIGxpbmUgMTU0OiBjb3JyZWN0bHkgZ290 IDEgdHVwbGVzIHdpdGggMSBmaWVsZHMKK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6 IDAwMDAwCitbTk9fUElEXTogZWNwZ19nZXRfZGF0YSBvbiBsaW5lIDE1NDogUkVTVUxUOiBbeyJ4 IjogMX0sIHsieCI6IFsxMiwgeyJ5IjogMX1dfV0gb2Zmc2V0OiAtMTsgYXJyYXk6IG5vCitbTk9f UElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAogW05PX1BJRF06IGVjcGdfZmluaXNo OiBjb25uZWN0aW9uIGVjcGcxX3JlZ3Jlc3Npb24gY2xvc2VkCiBbTk9fUElEXTogc3FsY2E6IGNv ZGU6IDAsIHN0YXRlOiAwMDAwMApkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0 L2V4cGVjdGVkL3NxbC1zcWxqc29uLnN0ZG91dCBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9l eHBlY3RlZC9zcWwtc3FsanNvbi5zdGRvdXQKaW5kZXggZDAxYTg0NTdmMDEuLjE0NWRjOTVkNDMw IDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpz b24uc3Rkb3V0CisrKyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9leHBlY3RlZC9zcWwtc3Fs anNvbi5zdGRvdXQKQEAgLTM2LDUgKzM2LDcgQEAgRm91bmQganNvbj17IngiOiAxfQogRm91bmQg anNvbj1bMSwgWzEyLCB7InkiOiAxfV1dCiBGb3VuZCBqc29uPXsieCI6IDF9CiBGb3VuZCBqc29u PVsxMiwgeyJ5IjogMX1dCitGb3VuZCBqc29uPVt7ImIiOiAxLCAiYyI6IDJ9LCBbeyJ4IjogMX0s IHsieCI6IFsxMiwgeyJ5IjogMX1dfV1dCitGb3VuZCBqc29uPVsxLCBbMTIsIHsieSI6IDF9XV0K IEZvdW5kIGpzb249W3sieCI6IDF9LCB7IngiOiBbMTIsIHsieSI6IDF9XX1dCiBGb3VuZCBqc29u PVt7IngiOiAxfSwgeyJ4IjogWzEyLCB7InkiOiAxfV19XQpkaWZmIC0tZ2l0IGEvc3JjL2ludGVy ZmFjZXMvZWNwZy90ZXN0L3NxbC9zcWxqc29uLnBnYyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVz dC9zcWwvc3FsanNvbi5wZ2MKaW5kZXggOTQyM2QyNWZkMGIuLjJhZjUwYjVkYTRiIDEwMDY0NAot LS0gYS9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3Qvc3FsL3NxbGpzb24ucGdjCisrKyBiL3NyYy9p bnRlcmZhY2VzL2VjcGcvdGVzdC9zcWwvc3FsanNvbi5wZ2MKQEAgLTE0Myw3ICsxNDMsMTAgQEAg RVhFQyBTUUwgRU5EIERFQ0xBUkUgU0VDVElPTjsKIAlwcmludGYoIkZvdW5kIGpzb249JXNcbiIs IGpzb24pOwogCiAJRVhFQyBTUUwgU0VMRUNUIEpTT04oKCd7ImEiOiB7ImIiOiAxLCAiYyI6IDJ9 LCAiYiI6IFt7IngiOiAxfSwgeyJ4IjogWzEyLCB7InkiOjF9XX1dfSc6Ompzb25iKS4qKSBJTlRP IDpqc29uOwotCS8vIGVycm9yCisJcHJpbnRmKCJGb3VuZCBqc29uPSVzXG4iLCBqc29uKTsKKwor CUVYRUMgU1FMIFNFTEVDVCBKU09OKCgneyJhIjogeyJiIjogMSwgImMiOiAyfSwgImIiOiBbeyJ4 IjogMX0sIHsieCI6IFsxMiwgeyJ5IjoxfV19XX0nOjpqc29uYikuKi54KSBJTlRPIDpqc29uOwor CXByaW50ZigiRm91bmQganNvbj0lc1xuIiwganNvbik7CiAKIAlFWEVDIFNRTCBTRUxFQ1QgSlNP TigoJ3siYSI6IHsiYiI6IDEsICJjIjogMn0sICJiIjogW3sieCI6IDF9LCB7IngiOiBbMTIsIHsi eSI6MX1dfV19Jzo6anNvbmIpWydiJ11bMDpdKSBJTlRPIDpqc29uOwogCXByaW50ZigiRm91bmQg anNvbj0lc1xuIiwganNvbik7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L2pzb25iLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvanNvbmIub3V0CmluZGV4IDI3 MDJlZGM5NzA1Li44NmI3Zjc2NzdmYyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9qc29uYi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qc29uYi5vdXQK QEAgLTYwNjQsOCArNjA2NCwxNzUgQEAgU0VMRUNUICgoamIpLmIpWzpdLnggRlJPTSB0ZXN0X2pz b25iX2RvdF9ub3RhdGlvbiB0OwogIHsieSI6ICJZWVkiLCAieiI6ICJaWloifQogKDEgcm93KQog Ci1TRUxFQ1QgKGpiKS5hLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsgLS0gZmFpbHMK LUVSUk9SOiAgdHlwZSBqc29uYiBpcyBub3QgY29tcG9zaXRlCisvKiB3aWxkIGNhcmQgbWVtYmVy IGFjY2VzcyAqLworU0VMRUNUIChqYikuYS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247 CisgICAgICAgICAgICAgICAgID9jb2x1bW4/ICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWyJjIiwgImQiLCAiZiIsIHsieSI6 ICJ5eXkiLCAieiI6ICJ6enoifV0KKygxIHJvdykKKworU0VMRUNUIChqYikuKiBGUk9NIHRlc3Rf anNvbmJfZG90X25vdGF0aW9uOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA/Y29sdW1uPyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbWzEsIDIs IHsiYiI6ICJjIn0sIHsiYiI6ICJkIiwgImUiOiAiZiIsICJ4IjogeyJ5IjogInl5eSIsICJ6Ijog Inp6eiJ9fV0sIFszLCA0LCB7ImIiOiAiZyIsICJ4IjogeyJ5IjogIllZWSIsICJ6IjogIlpaWiJ9 fV1dCisoMSByb3cpCisKK1NFTEVDVCAoamIpLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlv biB0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA/Y29sdW1uPyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbWzEsIDIsIHsiYiI6ICJjIn0sIHsi YiI6ICJkIiwgImUiOiAiZiIsICJ4IjogeyJ5IjogInl5eSIsICJ6IjogInp6eiJ9fV0sIFszLCA0 LCB7ImIiOiAiZyIsICJ4IjogeyJ5IjogIllZWSIsICJ6IjogIlpaWiJ9fV1dCisoMSByb3cpCisK K1NFTEVDVCAodC5qYikuKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uIHQ7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID9jb2x1 bW4/ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIFtbMSwgMiwgeyJiIjogImMifSwgeyJiIjogImQiLCAiZSI6 ICJmIiwgIngiOiB7InkiOiAieXl5IiwgInoiOiAienp6In19XSwgWzMsIDQsIHsiYiI6ICJnIiwg IngiOiB7InkiOiAiWVlZIiwgInoiOiAiWlpaIn19XV0KKygxIHJvdykKKworU0VMRUNUIChqYiku KiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/Y29sdW1uPyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyBbWzEsIDIsIHsiYiI6ICJjIn0sIHsiYiI6ICJkIiwgImUiOiAiZiIsICJ4IjogeyJ5Ijog Inl5eSIsICJ6IjogInp6eiJ9fV0sIFszLCA0LCB7ImIiOiAiZyIsICJ4IjogeyJ5IjogIllZWSIs ICJ6IjogIlpaWiJ9fV1dCisoMSByb3cpCisKK1NFTEVDVCAodC5qYikuKiBGUk9NIHRlc3RfanNv bmJfZG90X25vdGF0aW9uOworRVJST1I6ICBtaXNzaW5nIEZST00tY2xhdXNlIGVudHJ5IGZvciB0 YWJsZSAidCIKK0xJTkUgMTogU0VMRUNUICh0LmpiKS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90 YXRpb247CisgICAgICAgICAgICAgICAgXgorU0VMRUNUICh0LmpiKS4qIEZST00gdGVzdF9qc29u Yl9kb3Rfbm90YXRpb24gdDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgP2NvbHVtbj8gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgW1sxLCAyLCB7 ImIiOiAiYyJ9LCB7ImIiOiAiZCIsICJlIjogImYiLCAieCI6IHsieSI6ICJ5eXkiLCAieiI6ICJ6 enoifX1dLCBbMywgNCwgeyJiIjogImciLCAieCI6IHsieSI6ICJZWVkiLCAieiI6ICJaWloifX1d XQorKDEgcm93KQorCitTRUxFQ1QgKGpiKS5hLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlv bjsKKyAgICAgICAgICAgICAgICAgP2NvbHVtbj8gICAgICAgICAgICAgICAgICAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbImMiLCAiZCIsICJmIiwgeyJ5 IjogInl5eSIsICJ6IjogInp6eiJ9XQorKDEgcm93KQorCitTRUxFQ1QgKGpiKS5hLiouYiBGUk9N IHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworIGIgCistLS0KKyAKKygxIHJvdykKKworU0VMRUNU IChqYikuYS4qLnggRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyB4IAorLS0tCisgCiso MSByb3cpCisKK1NFTEVDVCAoamIpLmEuKi55IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247 CisgICB5ICAgCistLS0tLS0tCisgInl5eSIKKygxIHJvdykKKworU0VMRUNUIChqYikuYS4qLiog RlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyAgICA/Y29sdW1uPyAgICAKKy0tLS0tLS0t LS0tLS0tLS0KKyBbInl5eSIsICJ6enoiXQorKDEgcm93KQorCitTRUxFQ1QgKGpiKS4qLnggRlJP TSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgeCAg ICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgW3sieSI6ICJ5eXkiLCAieiI6ICJ6enoifSwgeyJ5 IjogIllZWSIsICJ6IjogIlpaWiJ9XQorKDEgcm93KQorCitTRUxFQ1QgKGpiKS4qLnggRlJPTSB0 ZXN0X2pzb25iX2RvdF9ub3RhdGlvbiB0OworICAgICAgICAgICAgICAgICAgICAgICAgICB4ICAg ICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbeyJ5IjogInl5eSIsICJ6IjogInp6eiJ9LCB7Inki OiAiWVlZIiwgInoiOiAiWlpaIn1dCisoMSByb3cpCisKK1NFTEVDVCAoKGpiKS4qKS54IEZST00g dGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKKyB4IAorLS0tCisgCisoMSByb3cpCisKK1NFTEVD VCAoKGpiKS4qKS54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKKyB4IAorLS0tCisg CisoMSByb3cpCisKK1NFTEVDVCAoKGpiKS4qKVs6XS54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90 YXRpb24gdDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgeCAgICAgICAgICAgICAgICAgICAg ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgW3sieSI6ICJ5eXkiLCAieiI6ICJ6enoifSwgeyJ5IjogIllZWSIsICJ6IjogIlpa WiJ9XQorKDEgcm93KQorCitTRUxFQ1QgKGpiKS4qLnggRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3Rh dGlvbjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgeCAgICAgICAgICAgICAgICAgICAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgW3sieSI6ICJ5eXkiLCAieiI6ICJ6enoifSwgeyJ5IjogIllZWSIsICJ6IjogIlpaWiJ9 XQorKDEgcm93KQorCitTRUxFQ1QgKGpiKS4qLnguKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0 aW9uOworICAgICAgICAgICA/Y29sdW1uPyAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyBbInl5eSIsICJ6enoiLCAiWVlZIiwgIlpaWiJdCisoMSByb3cpCisKK1NF TEVDVCAoamIpLioueC55IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICAgICAgeSAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tCisgWyJ5eXkiLCAiWVlZIl0KKygxIHJvdykKKworU0VM RUNUIChqYikuKi54LnogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyAgICAgICB6ICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0KKyBbInp6eiIsICJaWloiXQorKDEgcm93KQorCitTRUxF Q1QgKGpiKS4qLioueSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworICAgICAgIHkgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLQorIFsieXl5IiwgIllZWSJdCisoMSByb3cpCisKK1NFTEVD VCAoamIpLiouKi4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICAgICAgICAgID9j b2x1bW4/ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsieXl5 IiwgInp6eiIsICJZWVkiLCAiWlpaIl0KKygxIHJvdykKKworU0VMRUNUIChqYikuKi4qLiouKiBG Uk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworID9jb2x1bW4/IAorLS0tLS0tLS0tLQorIAor KDEgcm93KQorCitTRUxFQ1QgKGpiKS5hLmIuYy4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRp b247CisgP2NvbHVtbj8gCistLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCAoamIpLmEu Ki4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICAgP2NvbHVtbj8gICAgCistLS0t LS0tLS0tLS0tLS0tCisgWyJ5eXkiLCAienp6Il0KKygxIHJvdykKKworU0VMRUNUIChqYikuYS4q WzpdLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyAgICA/Y29sdW1uPyAgICAKKy0t LS0tLS0tLS0tLS0tLS0KKyBbInl5eSIsICJ6enoiXQorKDEgcm93KQorCitTRUxFQ1QgKGpiKS5h LipbKl0uKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOyAtLSBub3Qgc3VwcG9ydGVkCitF UlJPUjogIHN5bnRheCBlcnJvciBhdCBvciBuZWFyICIqIgorTElORSAxOiBTRUxFQ1QgKGpiKS5h LipbKl0uKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworICAgICAgICAgICAgICAgICAg ICAgICAgXgorU0VMRUNUIChqYikuYS4qKi54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247 IC0tIG5vdCBzdXBwb3J0ZWQKK0VSUk9SOiAgc3ludGF4IGVycm9yIGF0IG9yIG5lYXIgIioqIgor TElORSAxOiBTRUxFQ1QgKGpiKS5hLioqLnggRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsK KyAgICAgICAgICAgICAgICAgICAgICBeCiAtLSBleHBsYWlucyBzaG91bGQgd29yawogRVhQTEFJ TiAoVkVSQk9TRSwgQ09TVFMgT0ZGKSBTRUxFQ1QgKHQuamIpLmEgRlJPTSB0ZXN0X2pzb25iX2Rv dF9ub3RhdGlvbiB0OwogICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAg ICAgIApAQCAtNjA5Myw2ICs2MjYwLDQ1IEBAIFNFTEVDVCAoamIpLmFbMV0gRlJPTSB0ZXN0X2pz b25iX2RvdF9ub3RhdGlvbjsKICAyCiAoMSByb3cpCiAKK0VYUExBSU4gKFZFUkJPU0UsIENPU1RT IE9GRikgU0VMRUNUIChqYikuYS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICAg ICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiBwdWJsaWMudGVzdF9q c29uYl9kb3Rfbm90YXRpb24KKyAgIE91dHB1dDogKGpiKS5hLioKKygyIHJvd3MpCisKK1NFTEVD VCAoamIpLmEuKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworICAgICAgICAgICAgICAg ICA/Y29sdW1uPyAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIFsiYyIsICJkIiwgImYiLCB7InkiOiAieXl5IiwgInoiOiAienp6 In1dCisoMSByb3cpCisKK0VYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikgU0VMRUNUIChqYiku YS4qWzE6XS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICAgICAgICAgICAgICAg IFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiBwdWJsaWMudGVzdF9qc29uYl9kb3Rfbm90 YXRpb24KKyAgIE91dHB1dDogKGpiKS5hLipbOl0uKgorKDIgcm93cykKKworU0VMRUNUIChqYiku YS4qWzE6XS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgP2NvbHVtbj8gCistLS0t LS0tLS0tCisgCisoMSByb3cpCisKK0VYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikgU0VMRUNU IChqYikuYS4qWzE6Ml0uKi5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICAgICAg ICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiBwdWJsaWMudGVzdF9qc29u Yl9kb3Rfbm90YXRpb24KKyAgIE91dHB1dDogKGpiKS5hLipbOjJdLiouYgorKDIgcm93cykKKwor U0VMRUNUIChqYikuYS4qWzE6Ml0uKi5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247Cisg YiAKKy0tLQorIAorKDEgcm93KQorCiAtLSB2aWV3cyBzaG91bGQgd29yawogQ1JFQVRFIFZJRVcg dGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjEgQVMgU0VMRUNUIChqYikuYVszXS54LnkgRlJPTSB0 ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKIFxzdiB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MQpA QCAtNjEyMSw2ICs2MzI3LDE3IEBAIFNFTEVDVCAqIGZyb20gdjM7CiAgInl5eSIKICgxIHJvdykK IAorQ1JFQVRFIFZJRVcgdjQgQVMgU0VMRUNUIChqYikuYS4qWzpdLiogRlJPTSB0ZXN0X2pzb25i X2RvdF9ub3RhdGlvbjsKK1xzdiB2NAorQ1JFQVRFIE9SIFJFUExBQ0UgVklFVyBwdWJsaWMudjQg QVMKKyBTRUxFQ1QgKGpiKS5hLipbOl0uKiBBUyAiP2NvbHVtbj8iCisgICBGUk9NIHRlc3RfanNv bmJfZG90X25vdGF0aW9uCitTRUxFQ1QgKiBmcm9tIHY0OworICAgID9jb2x1bW4/ICAgIAorLS0t LS0tLS0tLS0tLS0tLQorIFsieXl5IiwgInp6eiJdCisoMSByb3cpCisKIC0tIG1peGVkIHN5bnRh eAogRFJPUCBWSUVXIHRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxOwogRVhQTEFJTiAoVkVSQk9T RSwgQ09TVFMgT0ZGKSBTRUxFQ1QgKGpiKVsnYSddLmIgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3Rh dGlvbjsKQEAgLTYzNTYsNCArNjU3Myw1IEBAIE5PVElDRTogIFsyXQogLS0gY2xlYW4gdXAKIERS T1AgVklFVyB2MjsKIERST1AgVklFVyB2MzsKK0RST1AgVklFVyB2NDsKIERST1AgVEFCTEUgdGVz dF9qc29uYl9kb3Rfbm90YXRpb247CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9q c29uYi5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9qc29uYi5zcWwKaW5kZXggZGUyYzljZGEw OTQuLjA3ZmFjYzI4MGQ3IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9qc29uYi5z cWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvanNvbmIuc3FsCkBAIC0xNjMxLDEzICsxNjMx LDQ5IEBAIFNFTEVDVCAoamIpLmFbMjpdLmIgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsK IFNFTEVDVCAoamIpLmFbOjJdLmIgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKIFNFTEVD VCAoamIpLmFbOl0uYiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOwogU0VMRUNUICgoamIp LmIpWzpdLnggRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbiB0OwotU0VMRUNUIChqYikuYS4q IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247IC0tIGZhaWxzCisKKy8qIHdpbGQgY2FyZCBt ZW1iZXIgYWNjZXNzICovCitTRUxFQ1QgKGpiKS5hLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3Rh dGlvbjsKK1NFTEVDVCAoamIpLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVD VCAoamIpLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbiB0OworU0VMRUNUICh0LmpiKS4q IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKK1NFTEVDVCAoamIpLiogRlJPTSB0ZXN0 X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAodC5qYikuKiBGUk9NIHRlc3RfanNvbmJfZG90 X25vdGF0aW9uOworU0VMRUNUICh0LmpiKS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24g dDsKK1NFTEVDVCAoamIpLmEuKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNU IChqYikuYS4qLmIgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLmEu Ki54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS5hLioueSBGUk9N IHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNUIChqYikuYS4qLiogRlJPTSB0ZXN0X2pz b25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLioueCBGUk9NIHRlc3RfanNvbmJfZG90X25v dGF0aW9uOworU0VMRUNUIChqYikuKi54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsK K1NFTEVDVCAoKGpiKS4qKS54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKK1NFTEVD VCAoKGpiKS4qKS54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKK1NFTEVDVCAoKGpi KS4qKVs6XS54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKK1NFTEVDVCAoamIpLiou eCBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNUIChqYikuKi54LiogRlJPTSB0 ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLioueC55IEZST00gdGVzdF9qc29u Yl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS4qLngueiBGUk9NIHRlc3RfanNvbmJfZG90X25v dGF0aW9uOworU0VMRUNUIChqYikuKi4qLnkgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsK K1NFTEVDVCAoamIpLiouKi4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1Qg KGpiKS4qLiouKi4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS5h LmIuYy4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS5hLiouKiBG Uk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNUIChqYikuYS4qWzpdLiogRlJPTSB0 ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLmEuKlsqXS4qIEZST00gdGVzdF9q c29uYl9kb3Rfbm90YXRpb247IC0tIG5vdCBzdXBwb3J0ZWQKK1NFTEVDVCAoamIpLmEuKioueCBG Uk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOyAtLSBub3Qgc3VwcG9ydGVkCiAKIC0tIGV4cGxh aW5zIHNob3VsZCB3b3JrCiBFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpIFNFTEVDVCAodC5q YikuYSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uIHQ7CiBTRUxFQ1QgKHQuamIpLmEgRlJP TSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbiB0OwogRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZG KSBTRUxFQ1QgKGpiKS5hWzFdIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CiBTRUxFQ1Qg KGpiKS5hWzFdIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitFWFBMQUlOIChWRVJCT1NF LCBDT1NUUyBPRkYpIFNFTEVDVCAoamIpLmEuKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9u OworU0VMRUNUIChqYikuYS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitFWFBMQUlO IChWRVJCT1NFLCBDT1NUUyBPRkYpIFNFTEVDVCAoamIpLmEuKlsxOl0uKiBGUk9NIHRlc3RfanNv bmJfZG90X25vdGF0aW9uOworU0VMRUNUIChqYikuYS4qWzE6XS4qIEZST00gdGVzdF9qc29uYl9k b3Rfbm90YXRpb247CitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpIFNFTEVDVCAoamIpLmEu KlsxOjJdLiouYiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNUIChqYikuYS4q WzE6Ml0uKi5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CiAKIC0tIHZpZXdzIHNob3Vs ZCB3b3JrCiBDUkVBVEUgVklFVyB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MSBBUyBTRUxFQ1Qg KGpiKS5hWzNdLngueSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOwpAQCAtMTY0OCw2ICsx Njg0LDkgQEAgU0VMRUNUICogZnJvbSB2MjsKIENSRUFURSBWSUVXIHYzIEFTIFNFTEVDVCAoamIp LmFbOjNdLngueVstMTpdIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CiBcc3YgdjMKIFNF TEVDVCAqIGZyb20gdjM7CitDUkVBVEUgVklFVyB2NCBBUyBTRUxFQ1QgKGpiKS5hLipbOl0uKiBG Uk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworXHN2IHY0CitTRUxFQ1QgKiBmcm9tIHY0Owog CiAtLSBtaXhlZCBzeW50YXgKIERST1AgVklFVyB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MTsK QEAgLTE3NDksNCArMTc4OCw1IEBAICQkIExBTkdVQUdFIHBscGdzcWw7CiAtLSBjbGVhbiB1cAog RFJPUCBWSUVXIHYyOwogRFJPUCBWSUVXIHYzOworRFJPUCBWSUVXIHY0OwogRFJPUCBUQUJMRSB0 ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKLS0gCjIuMzkuNSAoQXBwbGUgR2l0LTE1NCkKCg== --00000000000085838c063edb3d65 Content-Type: application/octet-stream; name="v19-0003-Export-jsonPathFromParseResult.patch" Content-Disposition: attachment; filename="v19-0003-Export-jsonPathFromParseResult.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mflgmzsc5 RnJvbSBjMDI4ZTM2NDlkMDEwYmE5ZDgzNTczYmQyMWE5ZTlmYjU3OTZmZmQ5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtpdGEgR2x1a2hvdiA8bi5nbHVob3ZAcG9zdGdyZXNwcm8u cnU+CkRhdGU6IFR1ZSwgOCBKdWwgMjAyNSAyMjoxODowNyAtMDcwMApTdWJqZWN0OiBbUEFUQ0gg djE5IDMvN10gRXhwb3J0IGpzb25QYXRoRnJvbVBhcnNlUmVzdWx0KCkKClRoaXMgaXMgYSBwcmVw 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= --00000000000085838c063edb3d65 Content-Type: application/octet-stream; name="v19-0002-Allow-Generic-Type-Subscripting-to-Accept-Dot-No.patch" Content-Disposition: attachment; filename="v19-0002-Allow-Generic-Type-Subscripting-to-Accept-Dot-No.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mflgmzsd6 RnJvbSAzYjdhYTliNGEwOWI5MGUxNzI2YjkyZTBkODY0YzY4MGYwMWMzOTkxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5kcmEgV2FuZyA8YWxleGFuZHJhLndhbmcub3NzQGdt YWlsLmNvbT4KRGF0ZTogRnJpLCA1IFNlcCAyMDI1IDE0OjE3OjM3IC0wNzAwClN1YmplY3Q6IFtQ QVRDSCB2MTkgMi83XSBBbGxvdyBHZW5lcmljIFR5cGUgU3Vic2NyaXB0aW5nIHRvIEFjY2VwdCBE b3QKIE5vdGF0aW9uICguKSBhcyBJbnB1dApNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6 IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJp dAoKVGhpcyBjaGFuZ2UgZXh0ZW5kcyBnZW5lcmljIHR5cGUgc3Vic2NyaXB0aW5nIHRvIHJlY29n bml6ZSBkb3QKbm90YXRpb24gKC4pIGluIGFkZGl0aW9uIHRvIGJyYWNrZXQgbm90YXRpb24gKFtd KS4gV2hpbGUgdGhpcyBkb2VzIG5vdAp5ZXQgcHJvdmlkZSBmdWxsIHN1cHBvcnQgZm9yIGRvdCBu b3RhdGlvbiwgaXQgZW5hYmxlcyBzdWJzY3JpcHRpbmcKY29udGFpbmVycyB0byBwcm9jZXNzIGl0 IGluIHRoZSBmdXR1cmUuCgpGb3Igbm93LCBjb250YWluZXItc3BlY2lmaWMgdHJhbnNmb3JtIGZ1 bmN0aW9ucyBvbmx5IGhhbmRsZQpzdWJzY3JpcHRpbmcgaW5kaWNlcyBhbmQgc3RvcCBwcm9jZXNz aW5nIHdoZW4gZW5jb3VudGVyaW5nIGRvdApub3RhdGlvbi4gSXQgaXMgdXAgdG8gaW5kaXZpZHVh bCBjb250YWluZXJzIHRvIGRlY2lkZSBob3cgdG8gdHJhbnNmb3JtCmRvdCBub3RhdGlvbiBpbiBz dWJzZXF1ZW50IHVwZGF0ZXMuCgpUaGlzIGNoYW5nZSBhbHNvIHVwZGF0ZXMgdGhlIFN1YnNjcmlw dFRyYW5zZm9ybSgpIEFQSSB0byByZW1vdmUgdGhlCiJib29sIGlzU2xpY2UiIGFyZ3VtZW50LiBF YWNoIGNvbnRhaW5lcuKAmXMgdHJhbnNmb3JtIGZ1bmN0aW9uIG5vdwpkZXRlcm1pbmVzIHNsaWNl LW5lc3MgaXRzZWxmLCBzaW5jZSBpdCBtYXkgb25seSBwcm9jZXNzIGEgcHJlZml4IG9mCnRoZSBp bmRpcmVjdGlvbiBsaXN0LiBGb3IgZXhhbXBsZSwgYXJyYXlfc3Vic2NyaXB0X3RyYW5zZm9ybSgp IHN0b3BzCmF0IGRvdCBub3RhdGlvbiwgc28gImlzU2xpY2UiIHNob3VsZCBub3QgZGVwZW5kIG9u IHNsaWNlIHNwZWNpZmllcnMKdGhhdCBhcHBlYXIgYWZ0ZXJ3YXJkLgoKQXV0aG9yZWQtYnk6IE5p a2l0YSBHbHVraG92IDxnbHVraG92Lm4uYUBnbWFpbC5jb20+CkF1dGhvcmVkLWJ5OiBBbGV4YW5k cmEgV2FuZyA8YWxleGFuZHJhLndhbmcub3NzQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEFuZHJl dyBEdW5zdGFuIDxhbmRyZXdAZHVuc2xhbmUubmV0PgpSZXZpZXdlZC1ieTogTWF0aGV1cyBBbGNh bnRhcmEgPG1hdGhldXNzc2lsdjk3QGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEppYW4gSGUgPGpp YW4udW5pdmVyc2FsaXR5QGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IENoYW8gTGkgPGxpLmV2YW4u Y2hhb0BnbWFpbC5jb20+Ci0tLQogY29udHJpYi9oc3RvcmUvaHN0b3JlX3N1YnMuYyAgICAgICAg IHwgMTEgKysrLS0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgICAgICB8IDY4ICsr KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ub2Rl LmMgICAgICB8IDU3ICsrKysrKysrKysrKysrLS0tLS0tLS0tCiBzcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfdGFyZ2V0LmMgICAgfCAgMyArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FycmF5c3Vi cy5jICAgIHwgNDAgKysrKysrKysrKysrKystLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25i c3Vicy5jICAgIHwgMTYgKysrKystLQogc3JjL2luY2x1ZGUvbm9kZXMvc3Vic2NyaXB0aW5nLmgg ICAgIHwgIDMgKy0KIHNyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmggICAgICB8ICAzICst CiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2FycmF5cy5vdXQgfCAyNiArKysrKysrKystLQog c3JjL3Rlc3QvcmVncmVzcy9zcWwvYXJyYXlzLnNxbCAgICAgIHwgIDcgKystCiAxMCBmaWxlcyBj aGFuZ2VkLCAxNjMgaW5zZXJ0aW9ucygrKSwgNzEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv Y29udHJpYi9oc3RvcmUvaHN0b3JlX3N1YnMuYyBiL2NvbnRyaWIvaHN0b3JlL2hzdG9yZV9zdWJz LmMKaW5kZXggMWIyOTU0M2FiNjcuLmYwMDhlNWZhZjAzIDEwMDY0NAotLS0gYS9jb250cmliL2hz dG9yZS9oc3RvcmVfc3Vicy5jCisrKyBiL2NvbnRyaWIvaHN0b3JlL2hzdG9yZV9zdWJzLmMKQEAg LTQyLDE0ICs0MiwxNiBAQCBzdGF0aWMgdm9pZAogaHN0b3JlX3N1YnNjcmlwdF90cmFuc2Zvcm0o U3Vic2NyaXB0aW5nUmVmICpzYnNyZWYsCiAJCQkJCQkgICBMaXN0ICoqaW5kaXJlY3Rpb24sCiAJ CQkJCQkgICBQYXJzZVN0YXRlICpwc3RhdGUsCi0JCQkJCQkgICBib29sIGlzU2xpY2UsCiAJCQkJ CQkgICBib29sIGlzQXNzaWdubWVudCkKIHsKIAlBX0luZGljZXMgICphaTsKIAlOb2RlCSAgICpz dWJleHByOwogCisJQXNzZXJ0KCppbmRpcmVjdGlvbiAhPSBOSUwpOworCWFpID0gbGluaXRpYWxf bm9kZShBX0luZGljZXMsICppbmRpcmVjdGlvbik7CisKIAkvKiBXZSBzdXBwb3J0IG9ubHkgc2lu Z2xlLXN1YnNjcmlwdCwgbm9uLXNsaWNlIGNhc2VzICovCi0JaWYgKGlzU2xpY2UgfHwgbGlzdF9s ZW5ndGgoKmluZGlyZWN0aW9uKSAhPSAxKQorCWlmIChsaXN0X2xlbmd0aCgqaW5kaXJlY3Rpb24p ICE9IDEgfHwgYWktPmlzX3NsaWNlKQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVS UkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKIAkJCQkgZXJybXNnKCJoc3RvcmUgYWxsb3dz IG9ubHkgb25lIHN1YnNjcmlwdCIpLApAQCAtNTcsOCArNTksNyBAQCBoc3RvcmVfc3Vic2NyaXB0 X3RyYW5zZm9ybShTdWJzY3JpcHRpbmdSZWYgKnNic3JlZiwKIAkJCQkJCQkJCWV4cHJMb2NhdGlv bigoTm9kZSAqKSAqaW5kaXJlY3Rpb24pKSkpOwogCiAJLyogVHJhbnNmb3JtIHRoZSBzdWJzY3Jp cHQgZXhwcmVzc2lvbiB0byB0eXBlIHRleHQgKi8KLQlhaSA9IGxpbml0aWFsX25vZGUoQV9JbmRp Y2VzLCAqaW5kaXJlY3Rpb24pOwotCUFzc2VydChhaS0+dWlkeCAhPSBOVUxMICYmIGFpLT5saWR4 ID09IE5VTEwgJiYgIWFpLT5pc19zbGljZSk7CisJQXNzZXJ0KGFpLT51aWR4ICE9IE5VTEwgJiYg YWktPmxpZHggPT0gTlVMTCk7CiAKIAlzdWJleHByID0gdHJhbnNmb3JtRXhwcihwc3RhdGUsIGFp LT51aWR4LCBwc3RhdGUtPnBfZXhwcl9raW5kKTsKIAkvKiBJZiBpdCdzIG5vdCB0ZXh0IGFscmVh ZHksIHRyeSB0byBjb2VyY2UgKi8KQEAgLTgyLDcgKzgzLDcgQEAgaHN0b3JlX3N1YnNjcmlwdF90 cmFuc2Zvcm0oU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYsCiAJc2JzcmVmLT5yZWZyZXN0eXBlID0g VEVYVE9JRDsKIAlzYnNyZWYtPnJlZnR5cG1vZCA9IC0xOwogCi0JKmluZGlyZWN0aW9uID0gTklM OworCSppbmRpcmVjdGlvbiA9IGxpc3RfZGVsZXRlX2ZpcnN0X24oKmluZGlyZWN0aW9uLCAxKTsK IH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgYi9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCmluZGV4IDZlOGZkNDJjNjEyLi5mOGEwNjE3 ZjgyMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYworKysgYi9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCkBAIC00NDEsMzggKzQ0MSw1OSBAQCB0cmFu c2Zvcm1JbmRpcmVjdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCkK IAlMaXN0Q2VsbCAgICppOwogCiAJLyoKLQkgKiBXZSBoYXZlIHRvIHNwbGl0IGFueSBmaWVsZC1z ZWxlY3Rpb24gb3BlcmF0aW9ucyBhcGFydCBmcm9tCi0JICogc3Vic2NyaXB0aW5nLiAgQWRqYWNl bnQgQV9JbmRpY2VzIG5vZGVzIGhhdmUgdG8gYmUgdHJlYXRlZCBhcyBhIHNpbmdsZQorCSAqIENv bWJpbmUgZmllbGQgbmFtZXMgYW5kIHN1YnNjcmlwdHMgaW50byBhIHNpbmdsZSBpbmRpcmVjdGlv biBsaXN0LCBhcworCSAqIHNvbWUgc3Vic2NyaXB0aW5nIGNvbnRhaW5lcnMsIHN1Y2ggYXMganNv bmIsIHN1cHBvcnQgZmllbGQgYWNjZXNzIHVzaW5nCisJICogZG90IG5vdGF0aW9uLiBBZGphY2Vu dCBBX0luZGljZXMgbm9kZXMgaGF2ZSB0byBiZSB0cmVhdGVkIGFzIGEgc2luZ2xlCiAJICogbXVs dGlkaW1lbnNpb25hbCBzdWJzY3JpcHQgb3BlcmF0aW9uLgogCSAqLwogCWZvcmVhY2goaSwgaW5k LT5pbmRpcmVjdGlvbikKIAl7CiAJCU5vZGUJICAgKm4gPSBsZmlyc3QoaSk7CiAKLQkJaWYgKElz QShuLCBBX0luZGljZXMpKQorCQlpZiAoSXNBKG4sIEFfSW5kaWNlcykgfHwgSXNBKG4sIFN0cmlu ZykpCiAJCQlzdWJzY3JpcHRzID0gbGFwcGVuZChzdWJzY3JpcHRzLCBuKTsKLQkJZWxzZSBpZiAo SXNBKG4sIEFfU3RhcikpCisJCWVsc2UKIAkJeworCQkJQXNzZXJ0KElzQShuLCBBX1N0YXIpKTsK IAkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQ UE9SVEVEKSwKIAkJCQkJIGVycm1zZygicm93IGV4cGFuc2lvbiB2aWEgXCIqXCIgaXMgbm90IHN1 cHBvcnRlZCBoZXJlIiksCiAJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBsb2NhdGlv bikpKTsKIAkJfQotCQllbHNlCisJfQorCisJd2hpbGUgKHN1YnNjcmlwdHMpCisJeworCQkvKiB0 cnkgcHJvY2Vzc2luZyBjb250YWluZXIgc3Vic2NyaXB0cyBmaXJzdCAqLworCQlOb2RlCSAgICpu ZXdyZXN1bHQgPSAoTm9kZSAqKQorCQkJdHJhbnNmb3JtQ29udGFpbmVyU3Vic2NyaXB0cyhwc3Rh dGUsCisJCQkJCQkJCQkJIHJlc3VsdCwKKwkJCQkJCQkJCQkgZXhwclR5cGUocmVzdWx0KSwKKwkJ CQkJCQkJCQkgZXhwclR5cG1vZChyZXN1bHQpLAorCQkJCQkJCQkJCSAmc3Vic2NyaXB0cywKKwkJ CQkJCQkJCQkgZmFsc2UsCisJCQkJCQkJCQkJIHRydWUpOworCisJCWlmICghbmV3cmVzdWx0KQog CQl7Ci0JCQlOb2RlCSAgICpuZXdyZXN1bHQ7CisJCQkvKgorCQkJICogZ2VuZXJpYyBzdWJzY3Jp cHRpbmcgZmFpbGVkOyBmYWxsaW5nIGJhY2sgdG8gZmllbGQgc2VsZWN0aW9uCisJCQkgKiBmb3Ig YSBjb21wb3NpdGUgdHlwZS4KKwkJCSAqLworCQkJTm9kZQkgICAqbjsKKworCQkJQXNzZXJ0KHN1 YnNjcmlwdHMpOwogCi0JCQlBc3NlcnQoSXNBKG4sIFN0cmluZykpOworCQkJbiA9IGxpbml0aWFs KHN1YnNjcmlwdHMpOwogCi0JCQkvKiBwcm9jZXNzIHN1YnNjcmlwdHMgYmVmb3JlIHRoaXMgZmll bGQgc2VsZWN0aW9uICovCi0JCQl3aGlsZSAoc3Vic2NyaXB0cykKLQkJCQlyZXN1bHQgPSAoTm9k ZSAqKSB0cmFuc2Zvcm1Db250YWluZXJTdWJzY3JpcHRzKHBzdGF0ZSwKLQkJCQkJCQkJCQkJCQkJ CSAgIHJlc3VsdCwKLQkJCQkJCQkJCQkJCQkJCSAgIGV4cHJUeXBlKHJlc3VsdCksCi0JCQkJCQkJ CQkJCQkJCQkgICBleHByVHlwbW9kKHJlc3VsdCksCi0JCQkJCQkJCQkJCQkJCQkgICAmc3Vic2Ny aXB0cywKLQkJCQkJCQkJCQkJCQkJCSAgIGZhbHNlKTsKKwkJCWlmICghSXNBKG4sIFN0cmluZykp CisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlT TUFUQ0gpLAorCQkJCQkJIGVycm1zZygiY2Fubm90IHN1YnNjcmlwdCB0eXBlICVzIGJlY2F1c2Ug aXQgZG9lcyBub3Qgc3VwcG9ydCBzdWJzY3JpcHRpbmciLAorCQkJCQkJCQlmb3JtYXRfdHlwZV9i ZShleHByVHlwZShyZXN1bHQpKSksCisJCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwg ZXhwckxvY2F0aW9uKHJlc3VsdCkpKSk7CiAKKwkJCS8qIHRyeSB0byBmaW5kIGZ1bmN0aW9uIGZv ciBmaWVsZCBzZWxlY3Rpb24gKi8KIAkJCW5ld3Jlc3VsdCA9IFBhcnNlRnVuY09yQ29sdW1uKHBz dGF0ZSwKIAkJCQkJCQkJCQkgIGxpc3RfbWFrZTEobiksCiAJCQkJCQkJCQkJICBsaXN0X21ha2Ux KHJlc3VsdCksCkBAIC00ODAsMTkgKzUwMSwxNiBAQCB0cmFuc2Zvcm1JbmRpcmVjdGlvbihQYXJz ZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCkKIAkJCQkJCQkJCQkgIE5VTEwsCiAJ CQkJCQkJCQkJICBmYWxzZSwKIAkJCQkJCQkJCQkgIGxvY2F0aW9uKTsKLQkJCWlmIChuZXdyZXN1 bHQgPT0gTlVMTCkKKworCQkJaWYgKCFuZXdyZXN1bHQpCiAJCQkJdW5rbm93bl9hdHRyaWJ1dGUo cHN0YXRlLCByZXN1bHQsIHN0clZhbChuKSwgbG9jYXRpb24pOwotCQkJcmVzdWx0ID0gbmV3cmVz dWx0OworCisJCQkvKiBjb25zdW1lIGZpZWxkIHNlbGVjdCAqLworCQkJc3Vic2NyaXB0cyA9IGxp c3RfZGVsZXRlX2ZpcnN0KHN1YnNjcmlwdHMpOwogCQl9CisKKwkJcmVzdWx0ID0gbmV3cmVzdWx0 OwogCX0KLQkvKiBwcm9jZXNzIHRyYWlsaW5nIHN1YnNjcmlwdHMsIGlmIGFueSAqLwotCXdoaWxl IChzdWJzY3JpcHRzKQotCQlyZXN1bHQgPSAoTm9kZSAqKSB0cmFuc2Zvcm1Db250YWluZXJTdWJz Y3JpcHRzKHBzdGF0ZSwKLQkJCQkJCQkJCQkJCQkgICByZXN1bHQsCi0JCQkJCQkJCQkJCQkJICAg ZXhwclR5cGUocmVzdWx0KSwKLQkJCQkJCQkJCQkJCQkgICBleHByVHlwbW9kKHJlc3VsdCksCi0J CQkJCQkJCQkJCQkJICAgJnN1YnNjcmlwdHMsCi0JCQkJCQkJCQkJCQkJICAgZmFsc2UpOwogCiAJ cmV0dXJuIHJlc3VsdDsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9u b2RlLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vfbm9kZS5jCmluZGV4IGYwNWJhYTUwYTE1 Li5kN2IyMzY4OGI5YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX25vZGUu YworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vfbm9kZS5jCkBAIC0yMzgsNiArMjM4LDgg QEAgdHJhbnNmb3JtQ29udGFpbmVyVHlwZShPaWQgKmNvbnRhaW5lclR5cGUsIGludDMyICpjb250 YWluZXJUeXBtb2QpCiAgKiBjb250YWluZXJUeXBNb2QJdHlwbW9kIGZvciB0aGUgY29udGFpbmVy CiAgKiBpbmRpcmVjdGlvbgkJVW50cmFuc2Zvcm1lZCBsaXN0IG9mIHN1YnNjcmlwdHMgKG11c3Qg bm90IGJlIE5JTCkKICAqIGlzQXNzaWdubWVudAkJVHJ1ZSBpZiB0aGlzIHdpbGwgYmVjb21lIGEg Y29udGFpbmVyIGFzc2lnbm1lbnQuCisgKiBub0Vycm9yCQkJVHJ1ZSBmb3IgcmV0dXJuIE5VTEwg d2l0aCBubyBlcnJvciwgaWYgdGhlIGNvbnRhaW5lciB0eXBlCisgKiAJCQkJCWlzIG5vdCBzdWJz Y3JpcHRhYmxlLgogICovCiBTdWJzY3JpcHRpbmdSZWYgKgogdHJhbnNmb3JtQ29udGFpbmVyU3Vi c2NyaXB0cyhQYXJzZVN0YXRlICpwc3RhdGUsCkBAIC0yNDUsMTMgKzI0NywxMyBAQCB0cmFuc2Zv cm1Db250YWluZXJTdWJzY3JpcHRzKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkgT2lkIGNv bnRhaW5lclR5cGUsCiAJCQkJCQkJIGludDMyIGNvbnRhaW5lclR5cE1vZCwKIAkJCQkJCQkgTGlz dCAqKmluZGlyZWN0aW9uLAotCQkJCQkJCSBib29sIGlzQXNzaWdubWVudCkKKwkJCQkJCQkgYm9v bCBpc0Fzc2lnbm1lbnQsCisJCQkJCQkJIGJvb2wgbm9FcnJvcikKIHsKIAlTdWJzY3JpcHRpbmdS ZWYgKnNic3JlZjsKIAljb25zdCBTdWJzY3JpcHRSb3V0aW5lcyAqc2Jzcm91dGluZXM7CiAJT2lk CQkJZWxlbWVudFR5cGU7Ci0JYm9vbAkJaXNTbGljZSA9IGZhbHNlOwotCUxpc3RDZWxsICAgKmlk eDsKKwlpbnQJCQlpbmRpcmVjdGlvbl9sZW5ndGggPSBsaXN0X2xlbmd0aCgqaW5kaXJlY3Rpb24p OwogCiAJLyoKIAkgKiBEZXRlcm1pbmUgdGhlIGFjdHVhbCBjb250YWluZXIgdHlwZSwgc21hc2hp bmcgYW55IGRvbWFpbi4gIEluIHRoZQpAQCAtMjY3LDI4ICsyNjksMTUgQEAgdHJhbnNmb3JtQ29u dGFpbmVyU3Vic2NyaXB0cyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJICovCiAJc2Jzcm91dGluZXMg PSBnZXRTdWJzY3JpcHRpbmdSb3V0aW5lcyhjb250YWluZXJUeXBlLCAmZWxlbWVudFR5cGUpOwog CWlmICghc2Jzcm91dGluZXMpCisJeworCQlpZiAobm9FcnJvcikKKwkJCXJldHVybiBOVUxMOwor CiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRD SCksCiAJCQkJIGVycm1zZygiY2Fubm90IHN1YnNjcmlwdCB0eXBlICVzIGJlY2F1c2UgaXQgZG9l cyBub3Qgc3VwcG9ydCBzdWJzY3JpcHRpbmciLAogCQkJCQkJZm9ybWF0X3R5cGVfYmUoY29udGFp bmVyVHlwZSkpLAogCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBleHByTG9jYXRpb24o Y29udGFpbmVyQmFzZSkpKSk7Ci0KLQkvKgotCSAqIERldGVjdCB3aGV0aGVyIGFueSBvZiB0aGUg aW5kaXJlY3Rpb24gaXRlbXMgYXJlIHNsaWNlIHNwZWNpZmllcnMuCi0JICoKLQkgKiBBIGxpc3Qg Y29udGFpbmluZyBvbmx5IHNpbXBsZSBzdWJzY3JpcHRzIHJlZmVycyB0byBhIHNpbmdsZSBjb250 YWluZXIKLQkgKiBlbGVtZW50LiAgSWYgYW55IG9mIHRoZSBpdGVtcyBhcmUgc2xpY2Ugc3BlY2lm aWVycyAobG93ZXI6dXBwZXIpLCB0aGVuCi0JICogdGhlIHN1YnNjcmlwdCBleHByZXNzaW9uIG1l YW5zIGEgY29udGFpbmVyIHNsaWNlIG9wZXJhdGlvbi4KLQkgKi8KLQlmb3JlYWNoKGlkeCwgKmlu ZGlyZWN0aW9uKQotCXsKLQkJQV9JbmRpY2VzICAqYWkgPSBsZmlyc3Rfbm9kZShBX0luZGljZXMs IGlkeCk7Ci0KLQkJaWYgKGFpLT5pc19zbGljZSkKLQkJewotCQkJaXNTbGljZSA9IHRydWU7Ci0J CQlicmVhazsKLQkJfQogCX0KIAogCS8qCkBAIC0zMTAsNyArMjk5LDMzIEBAIHRyYW5zZm9ybUNv bnRhaW5lclN1YnNjcmlwdHMoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCSAqIGRldGVybWluZSB0aGUg c3Vic2NyaXB0aW5nIHJlc3VsdCB0eXBlLgogCSAqLwogCXNic3JvdXRpbmVzLT50cmFuc2Zvcm0o c2JzcmVmLCBpbmRpcmVjdGlvbiwgcHN0YXRlLAotCQkJCQkJICAgaXNTbGljZSwgaXNBc3NpZ25t ZW50KTsKKwkJCQkJCSAgIGlzQXNzaWdubWVudCk7CisKKwkvKgorCSAqIEVycm9yIG91dCwgaWYg ZGF0YXR5cGUgZmFpbGVkIHRvIGNvbnN1bWUgYW55IGluZGlyZWN0aW9uIGVsZW1lbnRzLgorCSAq LworCWlmIChsaXN0X2xlbmd0aCgqaW5kaXJlY3Rpb24pID09IGluZGlyZWN0aW9uX2xlbmd0aCkK Kwl7CisJCU5vZGUJICAgKmluZCA9IGxpbml0aWFsKCppbmRpcmVjdGlvbik7CisKKwkJaWYgKG5v RXJyb3IpCisJCQlyZXR1cm4gTlVMTDsKKworCQlpZiAoSXNBKGluZCwgU3RyaW5nKSkKKwkJCWVy ZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlTTUFUQ0gpLAor CQkJCQkgZXJybXNnKCJ0eXBlICVzIGRvZXMgbm90IHN1cHBvcnQgZG90IG5vdGF0aW9uIiwKKwkJ CQkJCQlmb3JtYXRfdHlwZV9iZShjb250YWluZXJUeXBlKSksCisJCQkJCSBwYXJzZXJfZXJycG9z aXRpb24ocHN0YXRlLCBleHByTG9jYXRpb24oY29udGFpbmVyQmFzZSkpKSk7CisJCWVsc2UgaWYg KElzQShpbmQsIEFfSW5kaWNlcykpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShF UlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKKwkJCQkJIGVycm1zZygidHlwZSAlcyBkb2VzIG5v dCBzdXBwb3J0IGFycmF5IHN1YnNjcmlwdGluZyIsCisJCQkJCQkJZm9ybWF0X3R5cGVfYmUoY29u dGFpbmVyVHlwZSkpLAorCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZXhwckxvY2F0 aW9uKGNvbnRhaW5lckJhc2UpKSkpOworCQllbHNlCisJCQllbG9nKEVSUk9SLCAiaW52YWxpZCBp bmRpcmVjdGlvbiBvcGVyYXRpb246ICVkIiwgbm9kZVRhZyhpbmQpKTsKKwl9CiAKIAkvKgogCSAq IFZlcmlmeSB3ZSBnb3QgYSB2YWxpZCB0eXBlICh0aGlzIGRlZmVuZHMsIGZvciBleGFtcGxlLCBh Z2FpbnN0IHNvbWVvbmUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJn ZXQuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYwppbmRleCBhMDk3NzM2MjI5 YS4uYjg5NzM2ZmYxZWEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJn ZXQuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKQEAgLTkzNiw3ICs5 MzYsOCBAQCB0cmFuc2Zvcm1Bc3NpZ25tZW50U3Vic2NyaXB0cyhQYXJzZVN0YXRlICpwc3RhdGUs CiAJCQkJCQkJCQkJICBjb250YWluZXJUeXBlLAogCQkJCQkJCQkJCSAgY29udGFpbmVyVHlwTW9k LAogCQkJCQkJCQkJCSAgJnN1YnNjcmlwdHMsCi0JCQkJCQkJCQkJICB0cnVlKTsKKwkJCQkJCQkJ CQkgIHRydWUsCisJCQkJCQkJCQkJICBmYWxzZSk7CiAKIAl0eXBlTmVlZGVkID0gc2JzcmVmLT5y ZWZyZXN0eXBlOwogCXR5cG1vZE5lZWRlZCA9IHNic3JlZi0+cmVmdHlwbW9kOwpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FycmF5c3Vicy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L2FycmF5c3Vicy5jCmluZGV4IDIzNGMyYzI3OGMxLi4zNzhiNmJmMTZjYiAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FycmF5c3Vicy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9hcnJheXN1YnMuYwpAQCAtNTYsMTIgKzU2LDM4IEBAIHN0YXRpYyB2b2lkCiBhcnJh eV9zdWJzY3JpcHRfdHJhbnNmb3JtKFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmLAogCQkJCQkJICBM aXN0ICoqaW5kaXJlY3Rpb24sCiAJCQkJCQkgIFBhcnNlU3RhdGUgKnBzdGF0ZSwKLQkJCQkJCSAg Ym9vbCBpc1NsaWNlLAogCQkJCQkJICBib29sIGlzQXNzaWdubWVudCkKIHsKIAlMaXN0CSAgICp1 cHBlckluZGV4cHIgPSBOSUw7CiAJTGlzdAkgICAqbG93ZXJJbmRleHByID0gTklMOwogCUxpc3RD ZWxsICAgKmlkeDsKKwlpbnQJCQluZGltOworCWJvb2wJCWlzU2xpY2UgPSBmYWxzZTsKKworCS8q CisJICogRGV0ZWN0IHdoZXRoZXIgYW55IG9mIHRoZSBpbmRpcmVjdGlvbiBpdGVtcyBhcmUgc2xp Y2Ugc3BlY2lmaWVycy4KKwkgKgorCSAqIEEgbGlzdCBjb250YWluaW5nIG9ubHkgc2ltcGxlIHN1 YnNjcmlwdHMgcmVmZXJzIHRvIGEgc2luZ2xlIGNvbnRhaW5lcgorCSAqIGVsZW1lbnQuICBJZiBh bnkgb2YgdGhlIGl0ZW1zIGFyZSBzbGljZSBzcGVjaWZpZXJzIChsb3dlcjp1cHBlciksIHRoZW4K KwkgKiB0aGUgc3Vic2NyaXB0IGV4cHJlc3Npb24gbWVhbnMgYSBjb250YWluZXIgc2xpY2Ugb3Bl cmF0aW9uLgorCSAqLworCWZvcmVhY2goaWR4LCAqaW5kaXJlY3Rpb24pCisJeworCQlOb2RlCSAg ICphaSA9IGxmaXJzdChpZHgpOworCisJCS8qCisJCSAqIFdlIHNob3VsZCBub3QgaW5zcGVjdCBz bGljZSBzcGVjaWZpZXJzIGJleW9uZCBhbiBpbmRpcmVjdGlvbiBub2RlCisJCSAqIHR5cGUgdGhh dCB3ZSBkb24ndCBzdXBwb3J0LgorCQkgKi8KKwkJaWYgKCFJc0EoYWksIEFfSW5kaWNlcykpCisJ CQlicmVhazsKKworCQlpZiAoY2FzdE5vZGUoQV9JbmRpY2VzLCBhaSktPmlzX3NsaWNlKQorCQl7 CisJCQlpc1NsaWNlID0gdHJ1ZTsKKwkJCWJyZWFrOworCQl9CisJfQogCiAJLyoKIAkgKiBUcmFu c2Zvcm0gdGhlIHN1YnNjcmlwdCBleHByZXNzaW9ucywgYW5kIHNlcGFyYXRlIHVwcGVyIGFuZCBs b3dlcgpAQCAtNzMsOSArOTksMTQgQEAgYXJyYXlfc3Vic2NyaXB0X3RyYW5zZm9ybShTdWJzY3Jp cHRpbmdSZWYgKnNic3JlZiwKIAkgKi8KIAlmb3JlYWNoKGlkeCwgKmluZGlyZWN0aW9uKQogCXsK LQkJQV9JbmRpY2VzICAqYWkgPSBsZmlyc3Rfbm9kZShBX0luZGljZXMsIGlkeCk7CisJCUFfSW5k aWNlcyAgKmFpOwogCQlOb2RlCSAgICpzdWJleHByOwogCisJCWlmICghSXNBKGxmaXJzdChpZHgp LCBBX0luZGljZXMpKQorCQkJYnJlYWs7CisKKwkJYWkgPSBsZmlyc3Rfbm9kZShBX0luZGljZXMs IGlkeCk7CisKIAkJaWYgKGlzU2xpY2UpCiAJCXsKIAkJCWlmIChhaS0+bGlkeCkKQEAgLTE0NSwx NCArMTc2LDE1IEBAIGFycmF5X3N1YnNjcmlwdF90cmFuc2Zvcm0oU3Vic2NyaXB0aW5nUmVmICpz YnNyZWYsCiAJc2JzcmVmLT5yZWZsb3dlcmluZGV4cHIgPSBsb3dlckluZGV4cHI7CiAKIAkvKiBW ZXJpZnkgc3Vic2NyaXB0IGxpc3QgbGVuZ3RocyBhcmUgd2l0aGluIGltcGxlbWVudGF0aW9uIGxp bWl0ICovCi0JaWYgKGxpc3RfbGVuZ3RoKHVwcGVySW5kZXhwcikgPiBNQVhESU0pCisJbmRpbSA9 IGxpc3RfbGVuZ3RoKHVwcGVySW5kZXhwcik7CisJaWYgKG5kaW0gPiBNQVhESU0pCiAJCWVyZXBv cnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9QUk9HUkFNX0xJTUlUX0VYQ0VFREVEKSwK IAkJCQkgZXJybXNnKCJudW1iZXIgb2YgYXJyYXkgZGltZW5zaW9ucyAoJWQpIGV4Y2VlZHMgdGhl IG1heGltdW0gYWxsb3dlZCAoJWQpIiwKIAkJCQkJCWxpc3RfbGVuZ3RoKHVwcGVySW5kZXhwciks IE1BWERJTSkpKTsKIAkvKiBXZSBuZWVkIG5vdCBjaGVjayBsb3dlckluZGV4cHIgc2VwYXJhdGVs eSAqLwogCi0JKmluZGlyZWN0aW9uID0gTklMOworCSppbmRpcmVjdGlvbiA9IGxpc3RfZGVsZXRl X2ZpcnN0X24oKmluZGlyZWN0aW9uLCBuZGltKTsKIAogCS8qCiAJICogRGV0ZXJtaW5lIHRoZSBy ZXN1bHQgdHlwZSBvZiB0aGUgc3Vic2NyaXB0aW5nIG9wZXJhdGlvbi4gIEl0J3MgdGhlIHNhbWUK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uYnN1YnMuYyBiL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC9qc29uYnN1YnMuYwppbmRleCA1ZWFkNjkzYTNiMi4uMmFhNDEwZjYwNWIg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uYnN1YnMuYworKysgYi9zcmMv YmFja2VuZC91dGlscy9hZHQvanNvbmJzdWJzLmMKQEAgLTQzLDcgKzQzLDYgQEAgc3RhdGljIHZv aWQKIGpzb25iX3N1YnNjcmlwdF90cmFuc2Zvcm0oU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYsCiAJ CQkJCQkgIExpc3QgKippbmRpcmVjdGlvbiwKIAkJCQkJCSAgUGFyc2VTdGF0ZSAqcHN0YXRlLAot CQkJCQkJICBib29sIGlzU2xpY2UsCiAJCQkJCQkgIGJvb2wgaXNBc3NpZ25tZW50KQogewogCUxp c3QJICAgKnVwcGVySW5kZXhwciA9IE5JTDsKQEAgLTU1LDEwICs1NCwxNSBAQCBqc29uYl9zdWJz Y3JpcHRfdHJhbnNmb3JtKFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmLAogCSAqLwogCWZvcmVhY2go aWR4LCAqaW5kaXJlY3Rpb24pCiAJewotCQlBX0luZGljZXMgICphaSA9IGxmaXJzdF9ub2RlKEFf SW5kaWNlcywgaWR4KTsKKwkJQV9JbmRpY2VzICAqYWk7CiAJCU5vZGUJICAgKnN1YkV4cHI7CiAK LQkJaWYgKGlzU2xpY2UpCisJCWlmICghSXNBKGxmaXJzdChpZHgpLCBBX0luZGljZXMpKQorCQkJ YnJlYWs7CisKKwkJYWkgPSBsZmlyc3Rfbm9kZShBX0luZGljZXMsIGlkeCk7CisKKwkJaWYgKGFp LT5pc19zbGljZSkKIAkJewogCQkJTm9kZQkgICAqZXhwciA9IGFpLT51aWR4ID8gYWktPnVpZHgg OiBhaS0+bGlkeDsKIApAQCAtMTQyLDcgKzE0Niw3IEBAIGpzb25iX3N1YnNjcmlwdF90cmFuc2Zv cm0oU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYsCiAJCQkgKiBTbGljZSB3aXRoIG9taXR0ZWQgdXBw ZXIgYm91bmQuIFNob3VsZCBub3QgaGFwcGVuIGFzIHdlIGFscmVhZHkKIAkJCSAqIGVycm9yZWQg b3V0IG9uIHNsaWNlIGVhcmxpZXIsIGJ1dCBoYW5kbGUgdGhpcyBqdXN0IGluIGNhc2UuCiAJCQkg Ki8KLQkJCUFzc2VydChpc1NsaWNlICYmIGFpLT5pc19zbGljZSk7CisJCQlBc3NlcnQoYWktPmlz X3NsaWNlKTsKIAkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZ UEVfTUlTTUFUQ0gpLAogCQkJCQkgZXJybXNnKCJqc29uYiBzdWJzY3JpcHQgZG9lcyBub3Qgc3Vw cG9ydCBzbGljZXMiKSwKQEAgLTE2MCw3ICsxNjQsOSBAQCBqc29uYl9zdWJzY3JpcHRfdHJhbnNm b3JtKFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmLAogCXNic3JlZi0+cmVmcmVzdHlwZSA9IEpTT05C T0lEOwogCXNic3JlZi0+cmVmdHlwbW9kID0gLTE7CiAKLQkqaW5kaXJlY3Rpb24gPSBOSUw7CisJ LyogUmVtb3ZlIHByb2Nlc3NlZCBlbGVtZW50cyAqLworCWlmICh1cHBlckluZGV4cHIpCisJCSpp bmRpcmVjdGlvbiA9IGxpc3RfZGVsZXRlX2ZpcnN0X24oKmluZGlyZWN0aW9uLCBsaXN0X2xlbmd0 aCh1cHBlckluZGV4cHIpKTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVz L3N1YnNjcmlwdGluZy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvc3Vic2NyaXB0aW5nLmgKaW5kZXgg OGE3NjhmZTMwMzcuLmIxMTY1NTY4ZjdlIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9z dWJzY3JpcHRpbmcuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9zdWJzY3JpcHRpbmcuaApAQCAt NjgsNyArNjgsNyBAQCB0eXBlZGVmIHN0cnVjdCBTdWJzY3JpcHRFeGVjU3RlcHMgU3Vic2NyaXB0 RXhlY1N0ZXBzOwogICogc2FtZSBsZW5ndGggYXMgcmVmdXBwZXJpbmRleHByIGZvciBhIHNsaWNl IG9wZXJhdGlvbi4gIEluc2VydCBOVUxMcwogICogKHRoYXQgaXMsIGFuIGVtcHR5IHBhcnNlIHRy ZWUsIG5vdCBhIG51bGwgQ29uc3Qgbm9kZSkgZm9yIGFueSBvbWl0dGVkCiAgKiBzdWJzY3JpcHRz IGluIGEgc2xpY2Ugb3BlcmF0aW9uLiAgKE9mIGNvdXJzZSwgaWYgdGhlIHRyYW5zZm9ybSBtZXRo b2QKLSAqIGRvZXMgbm90IGNhcmUgdG8gc3VwcG9ydCBzbGljaW5nLCBpdCBjYW4ganVzdCB0aHJv dyBhbiBlcnJvciBpZiBpc1NsaWNlLikKKyAqIGRvZXMgbm90IGNhcmUgdG8gc3VwcG9ydCBzbGlj aW5nLCBpdCBjYW4ganVzdCB0aHJvdyBhbiBlcnJvci4pCiAgKiBTZWUgYXJyYXlfc3Vic2NyaXB0 X3RyYW5zZm9ybSgpIGZvciBzYW1wbGUgY29kZS4KICAqCiAgKiBUaGUgdHJhbnNmb3JtIG1ldGhv ZCByZWNlaXZlcyBhIHBvaW50ZXIgdG8gYSBsaXN0IG9mIHJhdyBpbmRpcmVjdGlvbnMuCkBAIC0x MDAsNyArMTAwLDYgQEAgdHlwZWRlZiBzdHJ1Y3QgU3Vic2NyaXB0RXhlY1N0ZXBzIFN1YnNjcmlw dEV4ZWNTdGVwczsKIHR5cGVkZWYgdm9pZCAoKlN1YnNjcmlwdFRyYW5zZm9ybSkgKFN1YnNjcmlw dGluZ1JlZiAqc2JzcmVmLAogCQkJCQkJCQkJTGlzdCAqKmluZGlyZWN0aW9uLAogCQkJCQkJCQkJ UGFyc2VTdGF0ZSAqcHN0YXRlLAotCQkJCQkJCQkJYm9vbCBpc1NsaWNlLAogCQkJCQkJCQkJYm9v bCBpc0Fzc2lnbm1lbnQpOwogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3Bh cnNlX25vZGUuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKaW5kZXggNThhNGI5 ZGYxNTcuLjVjYzNjZTU4YzMwIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vf bm9kZS5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKQEAgLTM2Miw3ICsz NjIsOCBAQCBleHRlcm4gU3Vic2NyaXB0aW5nUmVmICp0cmFuc2Zvcm1Db250YWluZXJTdWJzY3Jp cHRzKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJCQkJCQkgT2lkIGNvbnRhaW5lclR5cGUs CiAJCQkJCQkJCQkJCQkJIGludDMyIGNvbnRhaW5lclR5cE1vZCwKIAkJCQkJCQkJCQkJCQkgTGlz dCAqKmluZGlyZWN0aW9uLAotCQkJCQkJCQkJCQkJCSBib29sIGlzQXNzaWdubWVudCk7CisJCQkJ CQkJCQkJCQkJIGJvb2wgaXNBc3NpZ25tZW50LAorCQkJCQkJCQkJCQkJCSBib29sIG5vRXJyb3Ip OwogZXh0ZXJuIENvbnN0ICptYWtlX2NvbnN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQV9Db25zdCAq YWNvbnN0KTsKIAogI2VuZGlmCQkJCQkJCS8qIFBBUlNFX05PREVfSCAqLwpkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9hcnJheXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9hcnJheXMub3V0CmluZGV4IGI4MTU0NzNmNDE0Li43OGRkOWU3MWJmMyAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9hcnJheXMub3V0CisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvYXJyYXlzLm91dApAQCAtMTc4MiwxNyArMTc4MiwxNyBAQCBTRUxF Q1QgbWF4KGYxKSwgbWluKGYxKSwgbWF4KGYyKSwgbWluKGYyKSwgbWF4KGYzKSwgbWluKGYzKSBG Uk9NIGFycmFnZ3Rlc3Q7CiAoMSByb3cpCiAKIC0tIEEgZmV3IHNpbXBsZSB0ZXN0cyBmb3IgYXJy YXlzIG9mIGNvbXBvc2l0ZSB0eXBlcwotY3JlYXRlIHR5cGUgY29tcHR5cGUgYXMgKGYxIGludCwg ZjIgdGV4dCk7CitjcmVhdGUgdHlwZSBjb21wdHlwZSBhcyAoZjEgaW50LCBmMiB0ZXh0LCBmMyBp bnRbXSk7CiBjcmVhdGUgdGFibGUgY29tcHRhYmxlIChjMSBjb21wdHlwZSwgYzIgY29tcHR5cGVb XSk7CiAtLSBYWFggd291bGQgbGlrZSB0byBub3QgaGF2ZSB0byBzcGVjaWZ5IHJvdygpIGNvbnN0 cnVjdCB0eXBlcyBoZXJlIC4uLgogaW5zZXJ0IGludG8gY29tcHRhYmxlCi0gIHZhbHVlcyAocm93 KDEsJ2ZvbycpLCBhcnJheVtyb3coMiwnYmFyJyk6OmNvbXB0eXBlLCByb3coMywnYmF6Jyk6OmNv bXB0eXBlXSk7CisgIHZhbHVlcyAocm93KDEsJ2ZvbycsYXJyYXlbMTAsMjBdKSwgYXJyYXlbcm93 KDIsJ2JhcicsYXJyYXlbMzAsNDBdKTo6Y29tcHR5cGUsIHJvdygzLCdiYXonLGFycmF5WzUwLDYw XSk6OmNvbXB0eXBlXSk7CiAtLSBjaGVjayB0aGF0IGltcGxpY2l0bHkgbmFtZWQgYXJyYXkgdHlw ZSBfY29tcHR5cGUgaXNuJ3QgYSBwcm9ibGVtCiBjcmVhdGUgdHlwZSBfY29tcHR5cGUgYXMgZW51 bSgnZm9vZXknKTsKIHNlbGVjdCAqIGZyb20gY29tcHRhYmxlOwotICAgYzEgICAgfCAgICAgICAg ICBjMiAgICAgICAgICAgCi0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAoMSxm b28pIHwgeyIoMixiYXIpIiwiKDMsYmF6KSJ9CisgICAgICAgIGMxICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICBjMiAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKDEs Zm9vLCJ7MTAsMjB9IikgfCB7IigyLGJhcixcInszMCw0MH1cIikiLCIoMyxiYXosXCJ7NTAsNjB9 XCIpIn0KICgxIHJvdykKIAogc2VsZWN0IGMyWzJdLmYyIGZyb20gY29tcHRhYmxlOwpAQCAtMTgw MSw2ICsxODAxLDIyIEBAIHNlbGVjdCBjMlsyXS5mMiBmcm9tIGNvbXB0YWJsZTsKICBiYXoKICgx IHJvdykKIAorc2VsZWN0IGMyWzJdLmYzIGZyb20gY29tcHRhYmxlOworICAgZjMgICAgCistLS0t LS0tLS0KKyB7NTAsNjB9CisoMSByb3cpCisKK3NlbGVjdCBjMlsyXS5mM1sxOjJdIGZyb20gY29t cHRhYmxlOworICAgZjMgICAgCistLS0tLS0tLS0KKyB7NTAsNjB9CisoMSByb3cpCisKK3NlbGVj dCBjMlsxOjJdLmYzWzE6Ml0gZnJvbSBjb21wdGFibGU7CitFUlJPUjogIGNvbHVtbiBub3RhdGlv biAuZjMgYXBwbGllZCB0byB0eXBlIGNvbXB0eXBlW10sIHdoaWNoIGlzIG5vdCBhIGNvbXBvc2l0 ZSB0eXBlCitMSU5FIDE6IHNlbGVjdCBjMlsxOjJdLmYzWzE6Ml0gZnJvbSBjb21wdGFibGU7Cisg ICAgICAgICAgICAgICBeCiBkcm9wIHR5cGUgX2NvbXB0eXBlOwogZHJvcCB0YWJsZSBjb21wdGFi bGU7CiBkcm9wIHR5cGUgY29tcHR5cGU7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9hcnJheXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvYXJyYXlzLnNxbAppbmRleCA0N2Q2 MmMxZDM4ZC4uNDUwMzg5ODMxYTAgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Fy cmF5cy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvYXJyYXlzLnNxbApAQCAtNTU1LDE5 ICs1NTUsMjIgQEAgU0VMRUNUIG1heChmMSksIG1pbihmMSksIG1heChmMiksIG1pbihmMiksIG1h eChmMyksIG1pbihmMykgRlJPTSBhcnJhZ2d0ZXN0OwogCiAtLSBBIGZldyBzaW1wbGUgdGVzdHMg Zm9yIGFycmF5cyBvZiBjb21wb3NpdGUgdHlwZXMKIAotY3JlYXRlIHR5cGUgY29tcHR5cGUgYXMg KGYxIGludCwgZjIgdGV4dCk7CitjcmVhdGUgdHlwZSBjb21wdHlwZSBhcyAoZjEgaW50LCBmMiB0 ZXh0LCBmMyBpbnRbXSk7CiAKIGNyZWF0ZSB0YWJsZSBjb21wdGFibGUgKGMxIGNvbXB0eXBlLCBj MiBjb21wdHlwZVtdKTsKIAogLS0gWFhYIHdvdWxkIGxpa2UgdG8gbm90IGhhdmUgdG8gc3BlY2lm eSByb3coKSBjb25zdHJ1Y3QgdHlwZXMgaGVyZSAuLi4KIGluc2VydCBpbnRvIGNvbXB0YWJsZQot ICB2YWx1ZXMgKHJvdygxLCdmb28nKSwgYXJyYXlbcm93KDIsJ2JhcicpOjpjb21wdHlwZSwgcm93 KDMsJ2JheicpOjpjb21wdHlwZV0pOworICB2YWx1ZXMgKHJvdygxLCdmb28nLGFycmF5WzEwLDIw XSksIGFycmF5W3JvdygyLCdiYXInLGFycmF5WzMwLDQwXSk6OmNvbXB0eXBlLCByb3coMywnYmF6 JyxhcnJheVs1MCw2MF0pOjpjb21wdHlwZV0pOwogCiAtLSBjaGVjayB0aGF0IGltcGxpY2l0bHkg bmFtZWQgYXJyYXkgdHlwZSBfY29tcHR5cGUgaXNuJ3QgYSBwcm9ibGVtCiBjcmVhdGUgdHlwZSBf Y29tcHR5cGUgYXMgZW51bSgnZm9vZXknKTsKIAogc2VsZWN0ICogZnJvbSBjb21wdGFibGU7CiBz ZWxlY3QgYzJbMl0uZjIgZnJvbSBjb21wdGFibGU7CitzZWxlY3QgYzJbMl0uZjMgZnJvbSBjb21w dGFibGU7CitzZWxlY3QgYzJbMl0uZjNbMToyXSBmcm9tIGNvbXB0YWJsZTsKK3NlbGVjdCBjMlsx OjJdLmYzWzE6Ml0gZnJvbSBjb21wdGFibGU7CiAKIGRyb3AgdHlwZSBfY29tcHR5cGU7CiBkcm9w IHRhYmxlIGNvbXB0YWJsZTsKLS0gCjIuMzkuNSAoQXBwbGUgR2l0LTE1NCkKCg== --00000000000085838c063edb3d65--