From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04on2073.outbound.protection.outlook.com [40.107.8.73]) by sourceware.org (Postfix) with ESMTPS id DA2763858408 for ; Fri, 16 Jun 2023 13:07:34 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org DA2763858408 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6O6we3SLejpgdbN4oQ+cTpS4sD4Fl50Z6HF89iCXPtg=; b=ft9Tmrch18OgJSRplZJIxZGbbE+H8KooPkL0gQehzUW75cbenPINJQiYzVFO/sgPI0L8eB25rb2N7jDwDyw+KwDQJJLzoKbd86d6BSQG4OkNCCerdd+B1TSMlBEPRBXvSTWsipEtvoTdvc15UrlPVwse7Xwj+Su5FTMM9iF2MhE= Received: from DBBPR09CA0041.eurprd09.prod.outlook.com (2603:10a6:10:d4::29) by AS2PR08MB9320.eurprd08.prod.outlook.com (2603:10a6:20b:598::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6455.46; Fri, 16 Jun 2023 13:07:31 +0000 Received: from DBAEUR03FT006.eop-EUR03.prod.protection.outlook.com (2603:10a6:10:d4:cafe::a) by DBBPR09CA0041.outlook.office365.com (2603:10a6:10:d4::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6500.29 via Frontend Transport; Fri, 16 Jun 2023 13:07:31 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by DBAEUR03FT006.mail.protection.outlook.com (100.127.142.72) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6521.13 via Frontend Transport; Fri, 16 Jun 2023 13:07:31 +0000 Received: ("Tessian outbound 3570909035da:v136"); Fri, 16 Jun 2023 13:07:31 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: dc9e5ed743ef9ee6 X-CR-MTA-TID: 64aa7808 Received: from d790bc61b4cf.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 4C494430-6092-4CE1-B741-3EE1AF6DE65A.1; Fri, 16 Jun 2023 13:07:24 +0000 Received: from EUR04-HE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id d790bc61b4cf.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Fri, 16 Jun 2023 13:07:24 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=joNOotfqkmCl28C/KtfrhIMkQNE0F9iZ2gNOjeDgtBcQez1e8hq2Js8s+WHK1y6NstGRHPqHPn851hNMwzt8B4MnstCOPaP3XaDGmL2d5TtD+FcVFNqq8tj/5o7QUhqNZ49GgaCw+FhBckcmyvfQ/KduK67B2eFlO96hNcmQwT7C1R245g+WhHD/ykh9bFf8O+JsqvQL2JWUebWXwyNa1dhimkqLZnrjAOqQtSpNz8JFROQDtoAOoNttYEWSO+xknz471S4+7+p1lUjVPcwdl53/nId9M9Tw0R7ZYql+4Di6OD+tcbPGHyrlCz0gH9Vv2G1WHk/bcxPaTX2snbAiLw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=6O6we3SLejpgdbN4oQ+cTpS4sD4Fl50Z6HF89iCXPtg=; b=eJRwEEysOjmPTMYyhxo8a3M0LxbRhGpS/z8uItNZ21C+iKVTrR4RGWC5/BRqnjPgixGLdXbi6jDsVVlsU4mFf7/tOG3+8o2v/AA5t1nUi4OMNz+5iC+hurRR1vxMCJWU9g7N3sXYxxyvTqNKD5S/EHp5xo2Ajup1V127hWAk2Wo0l7V99ba5KLyyw0+t5IR4Uwcohk2XS7m59pnNHFzUYD254ClTIvl49esxEEclQzOpCGib8XKRYLW0jDoBQfI1CXgp1GaX53U4qD8/ZQ0iZm45swAH2+WQH9WCGlrQ4e6Bfd74yUTnAzpFi/7ffbFj6RltSnBzuicqKd9/7E9noQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6O6we3SLejpgdbN4oQ+cTpS4sD4Fl50Z6HF89iCXPtg=; b=ft9Tmrch18OgJSRplZJIxZGbbE+H8KooPkL0gQehzUW75cbenPINJQiYzVFO/sgPI0L8eB25rb2N7jDwDyw+KwDQJJLzoKbd86d6BSQG4OkNCCerdd+B1TSMlBEPRBXvSTWsipEtvoTdvc15UrlPVwse7Xwj+Su5FTMM9iF2MhE= Received: from PAXPR08MB6926.eurprd08.prod.outlook.com (2603:10a6:102:138::24) by DU0PR08MB8301.eurprd08.prod.outlook.com (2603:10a6:10:40f::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6477.29; Fri, 16 Jun 2023 13:07:21 +0000 Received: from PAXPR08MB6926.eurprd08.prod.outlook.com ([fe80::2978:61ca:4677:30f8]) by PAXPR08MB6926.eurprd08.prod.outlook.com ([fe80::2978:61ca:4677:30f8%5]) with mapi id 15.20.6500.029; Fri, 16 Jun 2023 13:07:21 +0000 From: Kyrylo Tkachov To: "gcc-patches@gcc.gnu.org" Subject: [PATCH][4/5] aarch64: [US]Q(R)SHR(U)N2 refactoring Thread-Topic: [PATCH][4/5] aarch64: [US]Q(R)SHR(U)N2 refactoring Thread-Index: AdmgUrC/f5RpAaR6RJOAOpqbmJp78Q== Date: Fri, 16 Jun 2023 13:07:21 +0000 Message-ID: Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; x-ms-traffictypediagnostic: PAXPR08MB6926:EE_|DU0PR08MB8301:EE_|DBAEUR03FT006:EE_|AS2PR08MB9320:EE_ X-MS-Office365-Filtering-Correlation-Id: a7549319-4f29-45c7-4d3e-08db6e6aa4e7 x-checkrecipientrouted: true nodisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: lfBb5WElWoNvxszrF1wnhE9ap8jh/m6SuhJ6Gfa7hZ9oJ7BDqe+eVJPq5pL9mUBGfLYYyBa6YXwlJYMTWDn5+Pr7Lj1ADhmN6nf2lF6q6rDmUuBCdFRQP9FXaPq7gFbbRLAWG+VjXV5FffQkNbyFHNo7cRRYiL8BoEeHyNhkZw+fgSuMaLP8k7sleU8nWyVOzmaQQvM9AcDxOvE/CH8cG0X5ZBQy/FxUT1H5CVQVpBySVKJ74MpzWBKCgWgLGidUNuzZXKMTJjUOSvMVCmH9ehMvznjd78CKrkcrugGygXH7g0xhXWQsYEb47rsc4Xk7PQm8IlqxYT9MhAYUvnw7+J1SQfig/q7q3ha8CzrgsZLgoFQHYpOyRqOXNpMOffGHSl0Trxb+F6i5eZ97PYuPwTwAF2WOvp2cdRMC/dJ6YcyKEpW9JqSW4/cDZpm//NB71Bid5YKWULd/TYgDdEQmx37bAUGqs9BPd0x3lmKVyGU1QLzcYB7djUuuVTc5ljoBmHl41HjEXvt+6EV5OUDwIK4qm5ij4Gz+N9FUYd3HJUvLfK2twFrMghqk0MqPZbkn2rhrsgXzlsLvWdNrS+BpNPHNHh/qyu7ylz9uX5fX2DZi75C8Bjnp98ri6gbguXXF X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR08MB6926.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(4636009)(136003)(396003)(39860400002)(366004)(376002)(346002)(451199021)(6916009)(66946007)(66556008)(76116006)(64756008)(186003)(478600001)(2906002)(66476007)(66446008)(316002)(8676002)(41300700001)(99936003)(86362001)(7696005)(71200400001)(6506007)(52536014)(9686003)(38070700005)(33656002)(122000001)(8936002)(83380400001)(26005)(5660300002)(38100700002)(55016003);DIR:OUT;SFP:1101; Content-Type: multipart/mixed; boundary="_002_PAXPR08MB69263271952318ED78B215B59358APAXPR08MB6926eurp_" MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB8301 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DBAEUR03FT006.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 211867b5-ea47-42dd-8ddf-08db6e6a9f21 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: UshCVvhvlbny+MkRtBnBsle2uWmgA6xbAfhwxh1Gl1grxBegpfkV/NSzfc1R6ajETsJ2T3JoPACBBYKYxI2ru/ijNIJdUbjO+03LYHpDejrav7DBReTcRBKKwU6vqI+T1xggdXt1fsWjktlTpRkp3diANQoahdKAAC/E9GwjU9flv3R3Qpi0SsIb5D0QFirn+o3W+cHmI2girv+hPVlphDLCSHC+7HJ/OkUtDOqPN0EJMiFYmSM+A+W6gkP54w4kSsdQC5BOhz7z6jdpt1b/IIeBCe6Jrjp6gR2h3hkBgk2D/pcrycFI2+MLwk8kFWTCu9ck7kd4SMCG/4BEbaIzHlHh99372UWe4UvXil2LNXQnFMIRfby5+z680/5tFOjWT+tWLWc60YxzYErAF6CHscABY41mrbLHWdm38MA1kTA/ZPza/ZhhyECEZFrINO0Ft71shicgPBWjhx6X/qolIYZvQaA+oDXmGC9i16Zw7V+FCmc5cFcyI9znAIrlcSxTQ7sfcdiOE2TJV8GhjYFIfNfxhK/2vtM8p/ZuR6gp4MV90u9mFakcAER7sZQLTKJ0QbzYzPm+t2yiyLT2TdK4EKI+gPwSPMFMjhMOiZCp9yI5z1RO/VvnQeGYdG/be5Riy+N0tRb68kZz5l6tzuUvJeYHYtaD8kgLnWF+kAZBO/34EBPseymPxiVzB9ZDP6mz869rqpNvaa2kIPVttqQlmWf5Zv7Hc0xDhMzmYJ6nlk0cfiZlYKr4LAkThvX/Og0n X-Forefront-Antispam-Report: CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(13230028)(4636009)(376002)(396003)(39860400002)(346002)(136003)(451199021)(46966006)(40470700004)(36840700001)(82310400005)(40460700003)(55016003)(40480700001)(186003)(336012)(26005)(36860700001)(6506007)(47076005)(9686003)(6916009)(316002)(70586007)(70206006)(83380400001)(478600001)(7696005)(86362001)(356005)(33656002)(99936003)(81166007)(82740400003)(2906002)(5660300002)(8676002)(52536014)(235185007)(41300700001)(8936002);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jun 2023 13:07:31.5111 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a7549319-4f29-45c7-4d3e-08db6e6aa4e7 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: DBAEUR03FT006.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB9320 X-Spam-Status: No, score=-5.4 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,FORGED_SPF_HELO,KAM_DMARC_NONE,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_NONE,TXREP,T_SCC_BODY_TEXT_LINE,UNPARSEABLE_RELAY autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --_002_PAXPR08MB69263271952318ED78B215B59358APAXPR08MB6926eurp_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable This patch is large in lines of code, but it is a fairly regular extension of the first patch as it converts the high-half patterns to standard RTL codes in the same fashion as the first patch did for the low-half ones. This now allows us to remove the unspec codes for these instructions as there are no more uses of them left. Bootstrapped and tested on aarch64-none-linux-gnu and aarch64_be-none-elf. gcc/ChangeLog: * config/aarch64/aarch64-simd-builtins.def (shrn2): Rename builtins to... (shrn2_n): ... This. (rshrn2): Rename builtins to... (rshrn2_n): ... This. * config/aarch64/arm_neon.h (vrshrn_high_n_s16): Adjust for the above. (vrshrn_high_n_s32): Likewise. (vrshrn_high_n_s64): Likewise. (vrshrn_high_n_u16): Likewise. (vrshrn_high_n_u32): Likewise. (vrshrn_high_n_u64): Likewise. (vshrn_high_n_s16): Likewise. (vshrn_high_n_s32): Likewise. (vshrn_high_n_s64): Likewise. (vshrn_high_n_u16): Likewise. (vshrn_high_n_u32): Likewise. (vshrn_high_n_u64): Likewise. * config/aarch64/aarch64-simd.md (*aarch64_shrn2_vect_le): Delete. (*aarch64_shrn2_vect_be): Likewise. (aarch64_shrn2_insn_le): Likewise. (aarch64_shrn2_insn_be): Likewise. (aarch64_shrn2): Likewise. (aarch64_rshrn2_insn_le): Likewise. (aarch64_rshrn2_insn_be): Likewise. (aarch64_rshrn2): Likewise. (aarch64_qshrn2_n_insn_le): Likewise. (aarch64_shrn2_n_insn_le): New define_insn. (aarch64_qshrn2_n_insn_be): Delete. (aarch64_shrn2_n_insn_be): New define_insn. (aarch64_qshrn2_n): Delete. (aarch64_shrn2_n): New define_expand. (aarch64_rshrn2_n_insn_le): New define_insn. (aarch64_rshrn2_n_insn_be): New define_insn. (aarch64_rshrn2_n): New define_expand. (aarch64_sqshrun2_n_insn_le): New define_insn. (aarch64_sqshrun2_n_insn_be): New define_insn. (aarch64_sqshrun2_n): New define_expand. (aarch64_sqrshrun2_n_insn_le): New define_insn. (aarch64_sqrshrun2_n_insn_be): New define_insn. (aarch64_sqrshrun2_n): New define_expand. * config/aarch64/iterators.md (UNSPEC_SQSHRUN, UNSPEC_SQRSHRUN, UNSPEC_SQSHRN, UNSPEC_UQSHRN, UNSPEC_SQRSHRN, UNSPEC_UQRSHRN): Delete unspec values. (VQSHRN_N): Delete int iterator. --_002_PAXPR08MB69263271952318ED78B215B59358APAXPR08MB6926eurp_ Content-Type: application/octet-stream; name="s4.patch" Content-Description: s4.patch Content-Disposition: attachment; filename="s4.patch"; size=27973; creation-date="Fri, 16 Jun 2023 12:57:22 GMT"; modification-date="Fri, 16 Jun 2023 13:07:21 GMT" Content-Transfer-Encoding: base64 Y29tbWl0IGM4ZTlhNWNlZDBkYmU0ZmVmNmMxY2VmZWU3NzM4OTVhNjYyYmE4NjgKQXV0aG9yOiBL eXJ5bG8gVGthY2hvdiA8a3lyeWxvLnRrYWNob3ZAYXJtLmNvbT4KRGF0ZTogICBXZWQgSnVuIDcg MTE6MjA6MDEgMjAyMyArMDEwMAoKICAgIGFhcmNoNjQ6IFtVU11RKFIpU0hSKFUpTjIgcmVmYWN0 b3JpbmcKICAgIAogICAgVGhpcyBwYXRjaCBpcyBsYXJnZSBpbiBsaW5lcyBvZiBjb2RlLCBidXQg aXQgaXMgYSBmYWlybHkgcmVndWxhcgogICAgZXh0ZW5zaW9uIG9mIHRoZSBmaXJzdCBwYXRjaCBh cyBpdCBjb252ZXJ0cyB0aGUgaGlnaC1oYWxmIHBhdHRlcm5zCiAgICB0byBzdGFuZGFyZCBSVEwg Y29kZXMgaW4gdGhlIHNhbWUgZmFzaGlvbiBhcyB0aGUgZmlyc3QgcGF0Y2ggZGlkIGZvciB0aGUK ICAgIGxvdy1oYWxmIG9uZXMuCiAgICBUaGlzIG5vdyBhbGxvd3MgdXMgdG8gcmVtb3ZlIHRoZSB1 bnNwZWMgY29kZXMgZm9yIHRoZXNlIGluc3RydWN0aW9ucyBhcwogICAgdGhlcmUgYXJlIG5vIG1v cmUgdXNlcyBvZiB0aGVtIGxlZnQuCiAgICAKICAgIEJvb3RzdHJhcHBlZCBhbmQgdGVzdGVkIG9u IGFhcmNoNjQtbm9uZS1saW51eC1nbnUgYW5kCiAgICBhYXJjaDY0X2JlLW5vbmUtZWxmLgogICAg CiAgICBnY2MvQ2hhbmdlTG9nOgogICAgCiAgICAgICAgICAgICogY29uZmlnL2FhcmNoNjQvYWFy Y2g2NC1zaW1kLWJ1aWx0aW5zLmRlZiAoc2hybjIpOiBSZW5hbWUgYnVpbHRpbnMgdG8uLi4KICAg ICAgICAgICAgKHNocm4yX24pOiAuLi4gVGhpcy4KICAgICAgICAgICAgKHJzaHJuMik6IFJlbmFt ZSBidWlsdGlucyB0by4uLgogICAgICAgICAgICAocnNocm4yX24pOiAuLi4gVGhpcy4KICAgICAg ICAgICAgKiBjb25maWcvYWFyY2g2NC9hcm1fbmVvbi5oICh2cnNocm5faGlnaF9uX3MxNik6IEFk anVzdCBmb3IgdGhlIGFib3ZlLgogICAgICAgICAgICAodnJzaHJuX2hpZ2hfbl9zMzIpOiBMaWtl d2lzZS4KICAgICAgICAgICAgKHZyc2hybl9oaWdoX25fczY0KTogTGlrZXdpc2UuCiAgICAgICAg ICAgICh2cnNocm5faGlnaF9uX3UxNik6IExpa2V3aXNlLgogICAgICAgICAgICAodnJzaHJuX2hp Z2hfbl91MzIpOiBMaWtld2lzZS4KICAgICAgICAgICAgKHZyc2hybl9oaWdoX25fdTY0KTogTGlr ZXdpc2UuCiAgICAgICAgICAgICh2c2hybl9oaWdoX25fczE2KTogTGlrZXdpc2UuCiAgICAgICAg ICAgICh2c2hybl9oaWdoX25fczMyKTogTGlrZXdpc2UuCiAgICAgICAgICAgICh2c2hybl9oaWdo X25fczY0KTogTGlrZXdpc2UuCiAgICAgICAgICAgICh2c2hybl9oaWdoX25fdTE2KTogTGlrZXdp c2UuCiAgICAgICAgICAgICh2c2hybl9oaWdoX25fdTMyKTogTGlrZXdpc2UuCiAgICAgICAgICAg ICh2c2hybl9oaWdoX25fdTY0KTogTGlrZXdpc2UuCiAgICAgICAgICAgICogY29uZmlnL2FhcmNo NjQvYWFyY2g2NC1zaW1kLm1kICgqYWFyY2g2NF88c3JuX29wPnNocm48bW9kZT4yX3ZlY3RfbGUp OgogICAgICAgICAgICBEZWxldGUuCiAgICAgICAgICAgICgqYWFyY2g2NF88c3JuX29wPnNocm48 bW9kZT4yX3ZlY3RfYmUpOiBMaWtld2lzZS4KICAgICAgICAgICAgKGFhcmNoNjRfc2hybjI8bW9k ZT5faW5zbl9sZSk6IExpa2V3aXNlLgogICAgICAgICAgICAoYWFyY2g2NF9zaHJuMjxtb2RlPl9p bnNuX2JlKTogTGlrZXdpc2UuCiAgICAgICAgICAgIChhYXJjaDY0X3Nocm4yPG1vZGU+KTogTGlr ZXdpc2UuCiAgICAgICAgICAgIChhYXJjaDY0X3JzaHJuMjxtb2RlPl9pbnNuX2xlKTogTGlrZXdp c2UuCiAgICAgICAgICAgIChhYXJjaDY0X3JzaHJuMjxtb2RlPl9pbnNuX2JlKTogTGlrZXdpc2Uu CiAgICAgICAgICAgIChhYXJjaDY0X3JzaHJuMjxtb2RlPik6IExpa2V3aXNlLgogICAgICAgICAg ICAoYWFyY2g2NF88c3VyPnE8cj5zaHI8dT5uMl9uPG1vZGU+X2luc25fbGUpOiBMaWtld2lzZS4K ICAgICAgICAgICAgKGFhcmNoNjRfPHNocm5fb3A+c2hybjJfbjxtb2RlPl9pbnNuX2xlKTogTmV3 IGRlZmluZV9pbnNuLgogICAgICAgICAgICAoYWFyY2g2NF88c3VyPnE8cj5zaHI8dT5uMl9uPG1v ZGU+X2luc25fYmUpOiBEZWxldGUuCiAgICAgICAgICAgIChhYXJjaDY0XzxzaHJuX29wPnNocm4y X248bW9kZT5faW5zbl9iZSk6IE5ldyBkZWZpbmVfaW5zbi4KICAgICAgICAgICAgKGFhcmNoNjRf PHN1cj5xPHI+c2hyPHU+bjJfbjxtb2RlPik6IERlbGV0ZS4KICAgICAgICAgICAgKGFhcmNoNjRf PHNocm5fb3A+c2hybjJfbjxtb2RlPik6IE5ldyBkZWZpbmVfZXhwYW5kLgogICAgICAgICAgICAo YWFyY2g2NF88c2hybl9vcD5yc2hybjJfbjxtb2RlPl9pbnNuX2xlKTogTmV3IGRlZmluZV9pbnNu LgogICAgICAgICAgICAoYWFyY2g2NF88c2hybl9vcD5yc2hybjJfbjxtb2RlPl9pbnNuX2JlKTog TmV3IGRlZmluZV9pbnNuLgogICAgICAgICAgICAoYWFyY2g2NF88c2hybl9vcD5yc2hybjJfbjxt b2RlPik6IE5ldyBkZWZpbmVfZXhwYW5kLgogICAgICAgICAgICAoYWFyY2g2NF9zcXNocnVuMl9u PG1vZGU+X2luc25fbGUpOiBOZXcgZGVmaW5lX2luc24uCiAgICAgICAgICAgIChhYXJjaDY0X3Nx c2hydW4yX248bW9kZT5faW5zbl9iZSk6IE5ldyBkZWZpbmVfaW5zbi4KICAgICAgICAgICAgKGFh cmNoNjRfc3FzaHJ1bjJfbjxtb2RlPik6IE5ldyBkZWZpbmVfZXhwYW5kLgogICAgICAgICAgICAo YWFyY2g2NF9zcXJzaHJ1bjJfbjxtb2RlPl9pbnNuX2xlKTogTmV3IGRlZmluZV9pbnNuLgogICAg ICAgICAgICAoYWFyY2g2NF9zcXJzaHJ1bjJfbjxtb2RlPl9pbnNuX2JlKTogTmV3IGRlZmluZV9p bnNuLgogICAgICAgICAgICAoYWFyY2g2NF9zcXJzaHJ1bjJfbjxtb2RlPik6IE5ldyBkZWZpbmVf ZXhwYW5kLgogICAgICAgICAgICAqIGNvbmZpZy9hYXJjaDY0L2l0ZXJhdG9ycy5tZCAoVU5TUEVD X1NRU0hSVU4sIFVOU1BFQ19TUVJTSFJVTiwKICAgICAgICAgICAgVU5TUEVDX1NRU0hSTiwgVU5T UEVDX1VRU0hSTiwgVU5TUEVDX1NRUlNIUk4sIFVOU1BFQ19VUVJTSFJOKToKICAgICAgICAgICAg RGVsZXRlIHVuc3BlYyB2YWx1ZXMuCiAgICAgICAgICAgIChWUVNIUk5fTik6IERlbGV0ZSBpbnQg aXRlcmF0b3IuCgpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQtc2ltZC1i dWlsdGlucy5kZWYgYi9nY2MvY29uZmlnL2FhcmNoNjQvYWFyY2g2NC1zaW1kLWJ1aWx0aW5zLmRl ZgppbmRleCA4N2FmOGYzNjg5Yy4uMDFjZDg1ZDY0ZmQgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcv YWFyY2g2NC9hYXJjaDY0LXNpbWQtYnVpbHRpbnMuZGVmCisrKyBiL2djYy9jb25maWcvYWFyY2g2 NC9hYXJjaDY0LXNpbWQtYnVpbHRpbnMuZGVmCkBAIC0yNjMsMTYgKzI2MywxNCBAQAogICBCVUlM VElOX1ZRTiAoU0hJRlRJTU0sIHNocm5fbiwgMCwgTk9ORSkKICAgQlVJTFRJTl9WUU4gKFVTSElG VElNTSwgc2hybl9uLCAwLCBOT05FKQogCi0gIC8qIEltcGxlbWVudGVkIGJ5IGFhcmNoNjRfc2hy bjI8bW9kZT4uICAqLwotICBCVUlMVElOX1ZRTiAoU0hJRlQySU1NLCBzaHJuMiwgMCwgTk9ORSkK LSAgQlVJTFRJTl9WUU4gKFVTSElGVDJJTU0sIHNocm4yLCAwLCBOT05FKQorICBCVUlMVElOX1ZR TiAoU0hJRlQySU1NLCBzaHJuMl9uLCAwLCBOT05FKQorICBCVUlMVElOX1ZRTiAoVVNISUZUMklN TSwgc2hybjJfbiwgMCwgTk9ORSkKIAogICBCVUlMVElOX1ZRTiAoU0hJRlRJTU0sIHJzaHJuX24s IDAsIE5PTkUpCiAgIEJVSUxUSU5fVlFOIChVU0hJRlRJTU0sIHJzaHJuX24sIDAsIE5PTkUpCiAK LSAgLyogSW1wbGVtZW50ZWQgYnkgYWFyY2g2NF9yc2hybjI8bW9kZT4uICAqLwotICBCVUlMVElO X1ZRTiAoU0hJRlQySU1NLCByc2hybjIsIDAsIE5PTkUpCi0gIEJVSUxUSU5fVlFOIChVU0hJRlQy SU1NLCByc2hybjIsIDAsIE5PTkUpCisgIEJVSUxUSU5fVlFOIChTSElGVDJJTU0sIHJzaHJuMl9u LCAwLCBOT05FKQorICBCVUlMVElOX1ZRTiAoVVNISUZUMklNTSwgcnNocm4yX24sIDAsIE5PTkUp CiAKICAgLyogSW1wbGVtZW50ZWQgYnkgYWFyY2g2NF88c3U+bWxzbDxtb2RlPi4gICovCiAgIEJV SUxUSU5fVkRfQkhTSSAoVEVSTk9QLCBzbWxzbCwgMCwgTk9ORSkKQEAgLTQ4MCw3ICs0NzgsNiBA QAogICBCVUlMVElOX1NEX0hTREkgKFVTSElGVElNTSwgdXFzaHJuX24sIDAsIE5PTkUpCiAgIEJV SUxUSU5fU0RfSFNESSAoU0hJRlRJTU0sIHNxcnNocm5fbiwgMCwgTk9ORSkKICAgQlVJTFRJTl9T RF9IU0RJIChVU0hJRlRJTU0sIHVxcnNocm5fbiwgMCwgTk9ORSkKLSAgLyogSW1wbGVtZW50ZWQg YnkgYWFyY2g2NF88c3VyPnE8cj5zaHI8dT5uMl9uPG1vZGU+LiAgKi8KICAgQlVJTFRJTl9WUU4g KFNISUZUMklNTV9VVVNTLCBzcXNocnVuMl9uLCAwLCBOT05FKQogICBCVUlMVElOX1ZRTiAoU0hJ RlQySU1NX1VVU1MsIHNxcnNocnVuMl9uLCAwLCBOT05FKQogICBCVUlMVElOX1ZRTiAoU0hJRlQy SU1NLCBzcXNocm4yX24sIDAsIE5PTkUpCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2FhcmNoNjQv YWFyY2g2NC1zaW1kLm1kIGIvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQtc2ltZC5tZAppbmRl eCBjZTU4ODVlN2JiMS4uYjMxYzcxMzA3MDggMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvYWFyY2g2 NC9hYXJjaDY0LXNpbWQubWQKKysrIGIvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQtc2ltZC5t ZApAQCAtMTg5NiwzMCArMTg5Niw2IEBAIChkZWZpbmVfZXhwYW5kICJ2ZWNfcGFja190cnVuY188 bW9kZT4iCiAgfQogKQogCi0oZGVmaW5lX2luc24gIiphYXJjaDY0Xzxzcm5fb3A+c2hybjxtb2Rl PjJfdmVjdF9sZSIKLSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6PFZOQVJST1dRMj4gMCAicmVnaXN0 ZXJfb3BlcmFuZCIgIj13IikKLQkodmVjX2NvbmNhdDo8Vk5BUlJPV1EyPgotCSAgKG1hdGNoX29w ZXJhbmQ6PFZOQVJST1dRPiAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCIpCi0JICAodHJ1bmNhdGU6 PFZOQVJST1dRPgotCSAgICAoU0hJRlRSVDpWUU4gKG1hdGNoX29wZXJhbmQ6VlFOIDIgInJlZ2lz dGVyX29wZXJhbmQiICJ3IikKLQkgICAgICAobWF0Y2hfb3BlcmFuZDpWUU4gMyAiYWFyY2g2NF9z aW1kX3NoaWZ0X2ltbV92ZWNfPHZuX21vZGU+IikpKSkpXQotICAiVEFSR0VUX1NJTUQgJiYgIUJZ VEVTX0JJR19FTkRJQU4iCi0gICJzaHJuMlxcdCUwLjxWMm50eXBlPiwgJTIuPFZ0eXBlPiwgJTMi Ci0gIFsoc2V0X2F0dHIgInR5cGUiICJuZW9uX3NoaWZ0X2ltbV9uYXJyb3dfcSIpXQotKQotCi0o ZGVmaW5lX2luc24gIiphYXJjaDY0Xzxzcm5fb3A+c2hybjxtb2RlPjJfdmVjdF9iZSIKLSAgWyhz ZXQgKG1hdGNoX29wZXJhbmQ6PFZOQVJST1dRMj4gMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj13IikK LQkodmVjX2NvbmNhdDo8Vk5BUlJPV1EyPgotCSAgKHRydW5jYXRlOjxWTkFSUk9XUT4KLQkgICAg KFNISUZUUlQ6VlFOIChtYXRjaF9vcGVyYW5kOlZRTiAyICJyZWdpc3Rlcl9vcGVyYW5kIiAidyIp Ci0JICAgICAgKG1hdGNoX29wZXJhbmQ6VlFOIDMgImFhcmNoNjRfc2ltZF9zaGlmdF9pbW1fdmVj Xzx2bl9tb2RlPiIpKSkKLQkgIChtYXRjaF9vcGVyYW5kOjxWTkFSUk9XUT4gMSAicmVnaXN0ZXJf b3BlcmFuZCIgIjAiKSkpXQotICAiVEFSR0VUX1NJTUQgJiYgQllURVNfQklHX0VORElBTiIKLSAg InNocm4yXFx0JTAuPFYybnR5cGU+LCAlMi48VnR5cGU+LCAlMyIKLSAgWyhzZXRfYXR0ciAidHlw ZSIgIm5lb25fc2hpZnRfaW1tX25hcnJvd19xIildCi0pCi0KIChkZWZpbmVfaW5zbiAiKmFhcmNo NjRfPHNybl9vcD50b3BiaXRzX3NodWZmbGU8bW9kZT5fbGUiCiAgIFsoc2V0IChtYXRjaF9vcGVy YW5kOjxWTkFSUk9XUTI+IDAgInJlZ2lzdGVyX29wZXJhbmQiICI9dyIpCiAJKHZlY19jb25jYXQ6 PFZOQVJST1dRMj4KQEAgLTE5NDgsMTIxICsxOTI0LDYgQEAgKGRlZmluZV9pbnNuICIqYWFyY2g2 NF88c3JuX29wPnRvcGJpdHNfc2h1ZmZsZTxtb2RlPl9iZSIKICAgWyhzZXRfYXR0ciAidHlwZSIg Im5lb25fcGVybXV0ZTxxPiIpXQogKQogCi0oZGVmaW5lX2luc24gImFhcmNoNjRfc2hybjI8bW9k ZT5faW5zbl9sZSIKLSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6PFZOQVJST1dRMj4gMCAicmVnaXN0 ZXJfb3BlcmFuZCIgIj13IikKLQkodmVjX2NvbmNhdDo8Vk5BUlJPV1EyPgotCSAgKG1hdGNoX29w ZXJhbmQ6PFZOQVJST1dRPiAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCIpCi0JICAodHJ1bmNhdGU6 PFZOQVJST1dRPgotCSAgICAobHNoaWZ0cnQ6VlFOIChtYXRjaF9vcGVyYW5kOlZRTiAyICJyZWdp c3Rlcl9vcGVyYW5kIiAidyIpCi0JICAgICAgKG1hdGNoX29wZXJhbmQ6VlFOIDMgImFhcmNoNjRf c2ltZF9zaGlmdF9pbW1fdmVjXzx2bl9tb2RlPiIpKSkpKV0KLSAgIlRBUkdFVF9TSU1EICYmICFC WVRFU19CSUdfRU5ESUFOIgotICAic2hybjJcXHQlMC48VjJudHlwZT4sICUyLjxWdHlwZT4sICUz IgotICBbKHNldF9hdHRyICJ0eXBlIiAibmVvbl9zaGlmdF9pbW1fbmFycm93X3EiKV0KLSkKLQot KGRlZmluZV9pbnNuICJhYXJjaDY0X3Nocm4yPG1vZGU+X2luc25fYmUiCi0gIFsoc2V0IChtYXRj aF9vcGVyYW5kOjxWTkFSUk9XUTI+IDAgInJlZ2lzdGVyX29wZXJhbmQiICI9dyIpCi0JKHZlY19j b25jYXQ6PFZOQVJST1dRMj4KLQkgICh0cnVuY2F0ZTo8Vk5BUlJPV1E+Ci0JICAgIChsc2hpZnRy dDpWUU4gKG1hdGNoX29wZXJhbmQ6VlFOIDIgInJlZ2lzdGVyX29wZXJhbmQiICJ3IikKLQkgICAg ICAobWF0Y2hfb3BlcmFuZDpWUU4gMwotCQkiYWFyY2g2NF9zaW1kX3NoaWZ0X2ltbV92ZWNfPHZu X21vZGU+IikpKQotCSAgKG1hdGNoX29wZXJhbmQ6PFZOQVJST1dRPiAxICJyZWdpc3Rlcl9vcGVy YW5kIiAiMCIpKSldCi0gICJUQVJHRVRfU0lNRCAmJiBCWVRFU19CSUdfRU5ESUFOIgotICAic2hy bjJcXHQlMC48VjJudHlwZT4sICUyLjxWdHlwZT4sICUzIgotICBbKHNldF9hdHRyICJ0eXBlIiAi bmVvbl9zaGlmdF9pbW1fbmFycm93X3EiKV0KLSkKLQotKGRlZmluZV9leHBhbmQgImFhcmNoNjRf c2hybjI8bW9kZT4iCi0gIFsobWF0Y2hfb3BlcmFuZDo8Vk5BUlJPV1EyPiAwICJyZWdpc3Rlcl9v cGVyYW5kIikKLSAgIChtYXRjaF9vcGVyYW5kOjxWTkFSUk9XUT4gMSAicmVnaXN0ZXJfb3BlcmFu ZCIpCi0gICAobWF0Y2hfb3BlcmFuZDpWUU4gMiAicmVnaXN0ZXJfb3BlcmFuZCIpCi0gICAobWF0 Y2hfb3BlcmFuZDpTSSAzICJhYXJjaDY0X3NpbWRfc2hpZnRfaW1tX29mZnNldF88dm5fbW9kZT4i KV0KLSAgIlRBUkdFVF9TSU1EIgotICB7Ci0gICAgb3BlcmFuZHNbM10gPSBhYXJjaDY0X3NpbWRf Z2VuX2NvbnN0X3ZlY3Rvcl9kdXAgKDxNT0RFPm1vZGUsCi0JCQkJCQkgSU5UVkFMIChvcGVyYW5k c1szXSkpOwotICAgIGlmIChCWVRFU19CSUdfRU5ESUFOKQotICAgICAgZW1pdF9pbnNuIChnZW5f YWFyY2g2NF9zaHJuMjxtb2RlPl9pbnNuX2JlIChvcGVyYW5kc1swXSwgb3BlcmFuZHNbMV0sCi0J CQkJCQkgIG9wZXJhbmRzWzJdLCBvcGVyYW5kc1szXSkpOwotICAgIGVsc2UKLSAgICAgIGVtaXRf aW5zbiAoZ2VuX2FhcmNoNjRfc2hybjI8bW9kZT5faW5zbl9sZSAob3BlcmFuZHNbMF0sIG9wZXJh bmRzWzFdLAotCQkJCQkJICBvcGVyYW5kc1syXSwgb3BlcmFuZHNbM10pKTsKLSAgICBET05FOwot ICB9Ci0pCi0KLShkZWZpbmVfaW5zbiAiYWFyY2g2NF9yc2hybjI8bW9kZT5faW5zbl9sZSIKLSAg WyhzZXQgKG1hdGNoX29wZXJhbmQ6PFZOQVJST1dRMj4gMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj13 IikKLQkodmVjX2NvbmNhdDo8Vk5BUlJPV1EyPgotCSAgKG1hdGNoX29wZXJhbmQ6PFZOQVJST1dR PiAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCIpCi0JICAodHJ1bmNhdGU6PFZOQVJST1dRPgotCSAg ICAobHNoaWZ0cnQ6VlFOCi0JICAgICAgKHBsdXM6VlFOIChtYXRjaF9vcGVyYW5kOlZRTiAyICJy ZWdpc3Rlcl9vcGVyYW5kIiAidyIpCi0JCQkobWF0Y2hfb3BlcmFuZDpWUU4gMyAiYWFyY2g2NF9z aW1kX3JzaHJuX2ltbV92ZWMiKSkKLQkgICAgICAobWF0Y2hfb3BlcmFuZDpWUU4gNCAiYWFyY2g2 NF9zaW1kX3NoaWZ0X2ltbV92ZWNfPHZuX21vZGU+IikpKSkpXQotICAiVEFSR0VUX1NJTUQgJiYg IUJZVEVTX0JJR19FTkRJQU4KLSAgICYmIElOVFZBTCAoQ09OU1RfVkVDVE9SX0VMVCAob3BlcmFu ZHNbM10sIDApKQotICAgICAgPT0gKEhPU1RfV0lERV9JTlRfMSA8PCAoSU5UVkFMIChDT05TVF9W RUNUT1JfRUxUIChvcGVyYW5kc1s0XSwgMCkpIC0gMSkpIgotICAicnNocm4yXFx0JTAuPFYybnR5 cGU+LCAlMi48VnR5cGU+LCAlNCIKLSAgWyhzZXRfYXR0ciAidHlwZSIgIm5lb25fc2hpZnRfaW1t X25hcnJvd19xIildCi0pCi0KLShkZWZpbmVfaW5zbiAiYWFyY2g2NF9yc2hybjI8bW9kZT5faW5z bl9iZSIKLSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6PFZOQVJST1dRMj4gMCAicmVnaXN0ZXJfb3Bl cmFuZCIgIj13IikKLQkodmVjX2NvbmNhdDo8Vk5BUlJPV1EyPgotCSAgKHRydW5jYXRlOjxWTkFS Uk9XUT4KLQkgICAgKGxzaGlmdHJ0OlZRTgotCSAgICAgIChwbHVzOlZRTiAobWF0Y2hfb3BlcmFu ZDpWUU4gMiAicmVnaXN0ZXJfb3BlcmFuZCIgInciKQotCQkJKG1hdGNoX29wZXJhbmQ6VlFOIDMg ImFhcmNoNjRfc2ltZF9yc2hybl9pbW1fdmVjIikpCi0JICAgICAgKG1hdGNoX29wZXJhbmQ6VlFO IDQgImFhcmNoNjRfc2ltZF9zaGlmdF9pbW1fdmVjXzx2bl9tb2RlPiIpKSkKLQkgIChtYXRjaF9v cGVyYW5kOjxWTkFSUk9XUT4gMSAicmVnaXN0ZXJfb3BlcmFuZCIgIjAiKSkpXQotICAiVEFSR0VU X1NJTUQgJiYgQllURVNfQklHX0VORElBTgotICAgJiYgSU5UVkFMIChDT05TVF9WRUNUT1JfRUxU IChvcGVyYW5kc1szXSwgMCkpCi0gICAgICA9PSAoSE9TVF9XSURFX0lOVF8xIDw8IChJTlRWQUwg KENPTlNUX1ZFQ1RPUl9FTFQgKG9wZXJhbmRzWzRdLCAwKSkgLSAxKSkiCi0gICJyc2hybjJcXHQl MC48VjJudHlwZT4sICUyLjxWdHlwZT4sICU0IgotICBbKHNldF9hdHRyICJ0eXBlIiAibmVvbl9z aGlmdF9pbW1fbmFycm93X3EiKV0KLSkKLQotKGRlZmluZV9leHBhbmQgImFhcmNoNjRfcnNocm4y PG1vZGU+IgotICBbKG1hdGNoX29wZXJhbmQ6PFZOQVJST1dRMj4gMCAicmVnaXN0ZXJfb3BlcmFu ZCIpCi0gICAobWF0Y2hfb3BlcmFuZDo8Vk5BUlJPV1E+IDEgInJlZ2lzdGVyX29wZXJhbmQiKQot ICAgKG1hdGNoX29wZXJhbmQ6VlFOIDIgInJlZ2lzdGVyX29wZXJhbmQiKQotICAgKG1hdGNoX29w ZXJhbmQ6U0kgMyAiYWFyY2g2NF9zaW1kX3NoaWZ0X2ltbV9vZmZzZXRfPHZuX21vZGU+IildCi0g ICJUQVJHRVRfU0lNRCIKLSAgewotICAgIGlmIChJTlRWQUwgKG9wZXJhbmRzWzNdKSA9PSBHRVRf TU9ERV9VTklUX0JJVFNJWkUgKDxWTkFSUk9XUTI+bW9kZSkpCi0gICAgICB7Ci0JcnR4IHRtcCA9 IGFhcmNoNjRfZ2VuX3NoYXJlYWJsZV96ZXJvICg8TU9ERT5tb2RlKTsKLQllbWl0X2luc24gKGdl bl9hYXJjaDY0X3JhZGRobjI8bW9kZT4gKG9wZXJhbmRzWzBdLCBvcGVyYW5kc1sxXSwKLQkJCQkJ ICAgICAgb3BlcmFuZHNbMl0sIHRtcCkpOwotICAgICAgfQotICAgIGVsc2UKLSAgICAgIHsKLQly dHggc2hmdAotCSAgPSBhYXJjaDY0X3NpbWRfZ2VuX2NvbnN0X3ZlY3Rvcl9kdXAgKDxNT0RFPm1v ZGUsCi0JCQkJCSAgICAgICBIT1NUX1dJREVfSU5UXzFVCi0JCQkJCSAgICAgICAgPDwgKElOVFZB TCAob3BlcmFuZHNbM10pIC0gMSkpOwotCi0Jb3BlcmFuZHNbM10gPSBhYXJjaDY0X3NpbWRfZ2Vu X2NvbnN0X3ZlY3Rvcl9kdXAgKDxNT0RFPm1vZGUsCi0JCQkJCQkJIElOVFZBTCAob3BlcmFuZHNb M10pKTsKLQlpZiAoQllURVNfQklHX0VORElBTikKLQkgIGVtaXRfaW5zbiAoZ2VuX2FhcmNoNjRf cnNocm4yPG1vZGU+X2luc25fYmUgKG9wZXJhbmRzWzBdLAotCQkJCQkJICAgICAgIG9wZXJhbmRz WzFdLAotCQkJCQkJICAgICAgIG9wZXJhbmRzWzJdLAotCQkJCQkJICAgICAgIHNoZnQsCi0JCQkJ CQkgICAgICAgb3BlcmFuZHNbM10pKTsKLQllbHNlCi0JICBlbWl0X2luc24gKGdlbl9hYXJjaDY0 X3JzaHJuMjxtb2RlPl9pbnNuX2xlIChvcGVyYW5kc1swXSwKLQkJCQkJCSAgICAgICBvcGVyYW5k c1sxXSwKLQkJCQkJCSAgICAgICBvcGVyYW5kc1syXSwKLQkJCQkJCSAgICAgICBzaGZ0LAotCQkJ CQkJICAgICAgIG9wZXJhbmRzWzNdKSk7Ci0gICAgICB9Ci0gICAgRE9ORTsKLSAgfQotKQotCiA7 OyBXaWRlbmluZyBvcGVyYXRpb25zLgogCiAoZGVmaW5lX2luc24gImFhcmNoNjRfc2ltZF92ZWNf dW5wYWNrPHN1Pl9sb188bW9kZT4iCkBAIC02OTEyLDU0ICs2NzczLDI1NCBAQCAoZGVmaW5lX2V4 cGFuZCAiYWFyY2g2NF9zcXJzaHJ1bl9uPG1vZGU+IgogICB9CiApCiAKLShkZWZpbmVfaW5zbiAi YWFyY2g2NF88c3VyPnE8cj5zaHI8dT5uMl9uPG1vZGU+X2luc25fbGUiCisoZGVmaW5lX2luc24g ImFhcmNoNjRfPHNocm5fb3A+c2hybjJfbjxtb2RlPl9pbnNuX2xlIgogICBbKHNldCAobWF0Y2hf b3BlcmFuZDo8Vk5BUlJPV1EyPiAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXciKQogCSh2ZWNfY29u Y2F0OjxWTkFSUk9XUTI+CiAJICAobWF0Y2hfb3BlcmFuZDo8Vk5BUlJPV1E+IDEgInJlZ2lzdGVy X29wZXJhbmQiICIwIikKLQkgICh1bnNwZWM6PFZOQVJST1dRPiBbKG1hdGNoX29wZXJhbmQ6VlFO IDIgInJlZ2lzdGVyX29wZXJhbmQiICJ3IikKLQkJCSAgICAgIChtYXRjaF9vcGVyYW5kOlZRTiAz Ci0JCQkJImFhcmNoNjRfc2ltZF9zaGlmdF9pbW1fdmVjXzx2bl9tb2RlPiIpXQotCQkJICAgICBW UVNIUk5fTikpKV0KKwkgIChBTExfVFJVTkM6PFZOQVJST1dRPgorCSAgICAoPFRSVU5DX1NISUZU PjpWUU4KKwkgICAgICAobWF0Y2hfb3BlcmFuZDpWUU4gMiAicmVnaXN0ZXJfb3BlcmFuZCIgInci KQorCSAgICAgIChtYXRjaF9vcGVyYW5kOlZRTiAzICJhYXJjaDY0X3NpbWRfc2hpZnRfaW1tX3Zl Y188dm5fbW9kZT4iKSkpKSldCiAgICJUQVJHRVRfU0lNRCAmJiAhQllURVNfQklHX0VORElBTiIK LSAgIjxzdXI+cTxyPnNocjx1Pm4yXFx0JTx2bjI+MC48VjJudHlwZT4sICU8dj4yLjxWdHlwZT4s ICUzIgotICBbKHNldF9hdHRyICJ0eXBlIiAibmVvbl9zYXRfc2hpZnRfaW1tX25hcnJvd19xIild CisgICI8c2hybl9vcD5zaHJuMlx0JTx2bjI+MC48VjJudHlwZT4sICU8dj4yLjxWdHlwZT4sICUz IgorICBbKHNldF9hdHRyICJ0eXBlIiAibmVvbl9zaGlmdF9pbW1fbmFycm93X3EiKV0KICkKIAot KGRlZmluZV9pbnNuICJhYXJjaDY0XzxzdXI+cTxyPnNocjx1Pm4yX248bW9kZT5faW5zbl9iZSIK KyhkZWZpbmVfaW5zbiAiYWFyY2g2NF88c2hybl9vcD5zaHJuMl9uPG1vZGU+X2luc25fYmUiCiAg IFsoc2V0IChtYXRjaF9vcGVyYW5kOjxWTkFSUk9XUTI+IDAgInJlZ2lzdGVyX29wZXJhbmQiICI9 dyIpCiAJKHZlY19jb25jYXQ6PFZOQVJST1dRMj4KLSAgICAgICAgICAodW5zcGVjOjxWTkFSUk9X UT4gWyhtYXRjaF9vcGVyYW5kOlZRTiAyICJyZWdpc3Rlcl9vcGVyYW5kIiAidyIpCi0JCQkgICAg ICAobWF0Y2hfb3BlcmFuZDpWUU4gMwotCQkJCSJhYXJjaDY0X3NpbWRfc2hpZnRfaW1tX3ZlY188 dm5fbW9kZT4iKV0KLQkJCSAgICAgVlFTSFJOX04pCisJICAoQUxMX1RSVU5DOjxWTkFSUk9XUT4K KwkgICAgKDxUUlVOQ19TSElGVD46VlFOCisJICAgICAgKG1hdGNoX29wZXJhbmQ6VlFOIDIgInJl Z2lzdGVyX29wZXJhbmQiICJ3IikKKwkgICAgICAobWF0Y2hfb3BlcmFuZDpWUU4gMyAiYWFyY2g2 NF9zaW1kX3NoaWZ0X2ltbV92ZWNfPHZuX21vZGU+IikpKQogCSAgKG1hdGNoX29wZXJhbmQ6PFZO QVJST1dRPiAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCIpKSldCiAgICJUQVJHRVRfU0lNRCAmJiBC WVRFU19CSUdfRU5ESUFOIgotICAiPHN1cj5xPHI+c2hyPHU+bjJcXHQlPHZuMj4wLjxWMm50eXBl PiwgJTx2PjIuPFZ0eXBlPiwgJTMiCi0gIFsoc2V0X2F0dHIgInR5cGUiICJuZW9uX3NhdF9zaGlm dF9pbW1fbmFycm93X3EiKV0KKyAgIjxzaHJuX29wPnNocm4yXHQlPHZuMj4wLjxWMm50eXBlPiwg JTx2PjIuPFZ0eXBlPiwgJTMiCisgIFsoc2V0X2F0dHIgInR5cGUiICJuZW9uX3NoaWZ0X2ltbV9u YXJyb3dfcSIpXQogKQogCi0oZGVmaW5lX2V4cGFuZCAiYWFyY2g2NF88c3VyPnE8cj5zaHI8dT5u Ml9uPG1vZGU+IgorKGRlZmluZV9leHBhbmQgImFhcmNoNjRfPHNocm5fb3A+c2hybjJfbjxtb2Rl PiIKICAgWyhtYXRjaF9vcGVyYW5kOjxWTkFSUk9XUTI+IDAgInJlZ2lzdGVyX29wZXJhbmQiKQog ICAgKG1hdGNoX29wZXJhbmQ6PFZOQVJST1dRPiAxICJyZWdpc3Rlcl9vcGVyYW5kIikKLSAgICh1 bnNwZWM6PFZOQVJST1dRPgotCVsobWF0Y2hfb3BlcmFuZDpWUU4gMiAicmVnaXN0ZXJfb3BlcmFu ZCIpCi0JIChtYXRjaF9vcGVyYW5kOlNJIDMgImFhcmNoNjRfc2ltZF9zaGlmdF9pbW1fb2Zmc2V0 Xzx2bl9tb2RlPiIpXQotICAgICAgICBWUVNIUk5fTildCisgICAoQUxMX1RSVU5DOjxWTkFSUk9X UT4KKyAgICAgKG1hdGNoX29wZXJhbmQ6VlFOIDIgInJlZ2lzdGVyX29wZXJhbmQiKSkKKyAgICht YXRjaF9vcGVyYW5kOlNJIDMgImFhcmNoNjRfc2ltZF9zaGlmdF9pbW1fb2Zmc2V0Xzx2bl9tb2Rl PiIpXQogICAiVEFSR0VUX1NJTUQiCiAgIHsKICAgICBvcGVyYW5kc1szXSA9IGFhcmNoNjRfc2lt ZF9nZW5fY29uc3RfdmVjdG9yX2R1cCAoPE1PREU+bW9kZSwKIAkJCQkJCSBJTlRWQUwgKG9wZXJh bmRzWzNdKSk7CiAKICAgICBpZiAoQllURVNfQklHX0VORElBTikKLSAgICAgIGVtaXRfaW5zbiAo Z2VuX2FhcmNoNjRfPHN1cj5xPHI+c2hyPHU+bjJfbjxtb2RlPl9pbnNuX2JlIChvcGVyYW5kc1sw XSwKKyAgICAgIGVtaXRfaW5zbiAoZ2VuX2FhcmNoNjRfPHNocm5fb3A+c2hybjJfbjxtb2RlPl9p bnNuX2JlIChvcGVyYW5kc1swXSwKIAkJCQlvcGVyYW5kc1sxXSwgb3BlcmFuZHNbMl0sIG9wZXJh bmRzWzNdKSk7CiAgICAgZWxzZQotICAgICAgZW1pdF9pbnNuIChnZW5fYWFyY2g2NF88c3VyPnE8 cj5zaHI8dT5uMl9uPG1vZGU+X2luc25fbGUgKG9wZXJhbmRzWzBdLAorICAgICAgZW1pdF9pbnNu IChnZW5fYWFyY2g2NF88c2hybl9vcD5zaHJuMl9uPG1vZGU+X2luc25fbGUgKG9wZXJhbmRzWzBd LAogCQkJCW9wZXJhbmRzWzFdLCBvcGVyYW5kc1syXSwgb3BlcmFuZHNbM10pKTsKICAgICBET05F OwogICB9CiApCiAKKyhkZWZpbmVfaW5zbiAiYWFyY2g2NF88c2hybl9vcD5yc2hybjJfbjxtb2Rl Pl9pbnNuX2xlIgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDo8Vk5BUlJPV1EyPiAwICJyZWdpc3Rl cl9vcGVyYW5kIiAiPXciKQorCSh2ZWNfY29uY2F0OjxWTkFSUk9XUTI+CisJICAobWF0Y2hfb3Bl cmFuZDo8Vk5BUlJPV1E+IDEgInJlZ2lzdGVyX29wZXJhbmQiICIwIikKKwkgIChBTExfVFJVTkM6 PFZOQVJST1dRPgorCSAgICAoPFRSVU5DX1NISUZUPjo8VjJYV0lERT4KKwkgICAgICAocGx1czo8 VjJYV0lERT4KKwkJKDxUUlVOQ0VYVEVORD46PFYyWFdJREU+CisJCSAgKG1hdGNoX29wZXJhbmQ6 VlFOIDIgInJlZ2lzdGVyX29wZXJhbmQiICJ3IikpCisJCShtYXRjaF9vcGVyYW5kOjxWMlhXSURF PiA0ICJhYXJjaDY0X3NpbWRfcnNyYV9ybmRfaW1tX3ZlYyIpKQorCSAgICAgIChtYXRjaF9vcGVy YW5kOlZRTiAzICJhYXJjaDY0X3NpbWRfc2hpZnRfaW1tX3ZlY188dm5fbW9kZT4iKSkpKSldCisg ICJUQVJHRVRfU0lNRCAmJiAhQllURVNfQklHX0VORElBTgorICAgJiYgYWFyY2g2NF9jb25zdF92 ZWNfcm5kX2NzdF9wIChvcGVyYW5kc1s0XSwgb3BlcmFuZHNbM10pIgorICAiPHNocm5fb3A+cnNo cm4yXHQlPHZuMj4wLjxWMm50eXBlPiwgJTx2PjIuPFZ0eXBlPiwgJTMiCisgIFsoc2V0X2F0dHIg InR5cGUiICJuZW9uX3NoaWZ0X2ltbV9uYXJyb3dfcSIpXQorKQorCisoZGVmaW5lX2luc24gImFh cmNoNjRfPHNocm5fb3A+cnNocm4yX248bW9kZT5faW5zbl9iZSIKKyAgWyhzZXQgKG1hdGNoX29w ZXJhbmQ6PFZOQVJST1dRMj4gMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj13IikKKwkodmVjX2NvbmNh dDo8Vk5BUlJPV1EyPgorCSAgKEFMTF9UUlVOQzo8Vk5BUlJPV1E+CisJICAgICg8VFJVTkNfU0hJ RlQ+OjxWMlhXSURFPgorCSAgICAgIChwbHVzOjxWMlhXSURFPgorCQkoPFRSVU5DRVhURU5EPjo8 VjJYV0lERT4KKwkJICAobWF0Y2hfb3BlcmFuZDpWUU4gMiAicmVnaXN0ZXJfb3BlcmFuZCIgInci KSkKKwkJKG1hdGNoX29wZXJhbmQ6PFYyWFdJREU+IDQgImFhcmNoNjRfc2ltZF9yc3JhX3JuZF9p bW1fdmVjIikpCisJICAgICAgKG1hdGNoX29wZXJhbmQ6VlFOIDMgImFhcmNoNjRfc2ltZF9zaGlm dF9pbW1fdmVjXzx2bl9tb2RlPiIpKSkKKwkgIChtYXRjaF9vcGVyYW5kOjxWTkFSUk9XUT4gMSAi cmVnaXN0ZXJfb3BlcmFuZCIgIjAiKSkpXQorICAiVEFSR0VUX1NJTUQgJiYgQllURVNfQklHX0VO RElBTgorICAgJiYgYWFyY2g2NF9jb25zdF92ZWNfcm5kX2NzdF9wIChvcGVyYW5kc1s0XSwgb3Bl cmFuZHNbM10pIgorICAiPHNocm5fb3A+cnNocm4yXHQlPHZuMj4wLjxWMm50eXBlPiwgJTx2PjIu PFZ0eXBlPiwgJTMiCisgIFsoc2V0X2F0dHIgInR5cGUiICJuZW9uX3NoaWZ0X2ltbV9uYXJyb3df cSIpXQorKQorCisoZGVmaW5lX2V4cGFuZCAiYWFyY2g2NF88c2hybl9vcD5yc2hybjJfbjxtb2Rl PiIKKyAgWyhtYXRjaF9vcGVyYW5kOjxWTkFSUk9XUTI+IDAgInJlZ2lzdGVyX29wZXJhbmQiKQor ICAgKG1hdGNoX29wZXJhbmQ6PFZOQVJST1dRPiAxICJyZWdpc3Rlcl9vcGVyYW5kIikKKyAgIChB TExfVFJVTkM6PFZOQVJST1dRPiAobWF0Y2hfb3BlcmFuZDpWUU4gMiAicmVnaXN0ZXJfb3BlcmFu ZCIpKQorICAgKG1hdGNoX29wZXJhbmQ6U0kgMyAiYWFyY2g2NF9zaW1kX3NoaWZ0X2ltbV9vZmZz ZXRfPHZuX21vZGU+IildCisgICJUQVJHRVRfU0lNRCIKKyAgeworICAgIGlmICg8Q09ERT4gPT0g VFJVTkNBVEUKKwkmJiBJTlRWQUwgKG9wZXJhbmRzWzNdKSA9PSBHRVRfTU9ERV9VTklUX0JJVFNJ WkUgKDxWTkFSUk9XUT5tb2RlKSkKKyAgICAgIHsKKwlydHggdG1wID0gYWFyY2g2NF9nZW5fc2hh cmVhYmxlX3plcm8gKDxNT0RFPm1vZGUpOworCWVtaXRfaW5zbiAoZ2VuX2FhcmNoNjRfcmFkZGhu Mjxtb2RlPiAob3BlcmFuZHNbMF0sIG9wZXJhbmRzWzFdLAorCQkJCQkgICAgICBvcGVyYW5kc1sy XSwgdG1wKSk7CisJRE9ORTsKKyAgICAgIH0KKyAgICAvKiBVc2UgdGhpcyBleHBhbmRlciB0byBj cmVhdGUgdGhlIHJvdW5kaW5nIGNvbnN0YW50IHZlY3Rvciwgd2hpY2ggaXMKKyAgICAgICAxIDw8 IChzaGlmdCAtIDEpLiAgVXNlIHdpZGVfaW50IGhlcmUgdG8gZW5zdXJlIHRoYXQgdGhlIHJpZ2h0 IFRJbW9kZQorICAgICAgIFJUTCBpcyBnZW5lcmF0ZWQgd2hlbiBoYW5kbGluZyB0aGUgREltb2Rl IGV4cGFuZGVycy4gICovCisgICAgaW50IHByZWMgPSBHRVRfTU9ERV9VTklUX1BSRUNJU0lPTiAo PFYyWFdJREU+bW9kZSk7CisgICAgd2lkZV9pbnQgcm5kX3dpID0gd2k6OnNldF9iaXRfaW5femVy byAoSU5UVkFMIChvcGVyYW5kc1szXSkgLSAxLCBwcmVjKTsKKyAgICBydHggcm5kID0gaW1tZWRf d2lkZV9pbnRfY29uc3QgKHJuZF93aSwgR0VUX01PREVfSU5ORVIgKDxWMlhXSURFPm1vZGUpKTsK KyAgICBybmQgPSBnZW5fY29uc3RfdmVjX2R1cGxpY2F0ZSAoPFYyWFdJREU+bW9kZSwgcm5kKTsK KyAgICBvcGVyYW5kc1szXSA9IGdlbl9jb25zdF92ZWNfZHVwbGljYXRlICg8TU9ERT5tb2RlLCBv cGVyYW5kc1szXSk7CisgICAgaWYgKEJZVEVTX0JJR19FTkRJQU4pCisgICAgICBlbWl0X2luc24g KGdlbl9hYXJjaDY0XzxzaHJuX29wPnJzaHJuMl9uPG1vZGU+X2luc25fYmUgKG9wZXJhbmRzWzBd LAorCQkJCQkJCSAgICAgIG9wZXJhbmRzWzFdLAorCQkJCQkJCSAgICAgIG9wZXJhbmRzWzJdLAor CQkJCQkJCSAgICAgIG9wZXJhbmRzWzNdLAorCQkJCQkJCSAgICAgIHJuZCkpOworICAgIGVsc2UK KyAgICAgIGVtaXRfaW5zbiAoZ2VuX2FhcmNoNjRfPHNocm5fb3A+cnNocm4yX248bW9kZT5faW5z bl9sZSAob3BlcmFuZHNbMF0sCisJCQkJCQkJICAgICAgb3BlcmFuZHNbMV0sCisJCQkJCQkJICAg ICAgb3BlcmFuZHNbMl0sCisJCQkJCQkJICAgICAgb3BlcmFuZHNbM10sCisJCQkJCQkJICAgICAg cm5kKSk7CisgICAgRE9ORTsKKyAgfQorKQorCisoZGVmaW5lX2luc24gImFhcmNoNjRfc3FzaHJ1 bjJfbjxtb2RlPl9pbnNuX2xlIgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDo8Vk5BUlJPV1EyPiAw ICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXciKQorCSh2ZWNfY29uY2F0OjxWTkFSUk9XUTI+CisJICAo bWF0Y2hfb3BlcmFuZDo8Vk5BUlJPV1E+IDEgInJlZ2lzdGVyX29wZXJhbmQiICIwIikKKwkgICh0 cnVuY2F0ZTo8Vk5BUlJPV1E+CisJICAgIChzbWluOlZRTgorCSAgICAgIChzbWF4OlZRTgorCQko YXNoaWZ0cnQ6VlFOCisJCSAgKG1hdGNoX29wZXJhbmQ6VlFOIDIgInJlZ2lzdGVyX29wZXJhbmQi ICJ3IikKKwkJICAobWF0Y2hfb3BlcmFuZDpWUU4gMyAiYWFyY2g2NF9zaW1kX3NoaWZ0X2ltbV92 ZWNfPHZuX21vZGU+IikpCisJCShtYXRjaF9vcGVyYW5kOlZRTiA0ICJhYXJjaDY0X3NpbWRfaW1t X3plcm8iKSkKKwkgICAgICAobWF0Y2hfb3BlcmFuZDpWUU4gNSAiYWFyY2g2NF9zaW1kX3VtYXhf aGFsZl9tb2RlIikpKSkpXQorICAiVEFSR0VUX1NJTUQgJiYgIUJZVEVTX0JJR19FTkRJQU4iCisg ICJzcXNocnVuMlx0JTx2bjI+MC48VjJudHlwZT4sICU8dj4yLjxWdHlwZT4sICUzIgorICBbKHNl dF9hdHRyICJ0eXBlIiAibmVvbl9zaGlmdF9pbW1fbmFycm93X3EiKV0KKykKKworKGRlZmluZV9p bnNuICJhYXJjaDY0X3Nxc2hydW4yX248bW9kZT5faW5zbl9iZSIKKyAgWyhzZXQgKG1hdGNoX29w ZXJhbmQ6PFZOQVJST1dRMj4gMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj13IikKKwkodmVjX2NvbmNh dDo8Vk5BUlJPV1EyPgorCSAgKHRydW5jYXRlOjxWTkFSUk9XUT4KKwkgICAgKHNtaW46VlFOCisJ ICAgICAgKHNtYXg6VlFOCisJCShhc2hpZnRydDpWUU4KKwkJICAobWF0Y2hfb3BlcmFuZDpWUU4g MiAicmVnaXN0ZXJfb3BlcmFuZCIgInciKQorCQkgIChtYXRjaF9vcGVyYW5kOlZRTiAzICJhYXJj aDY0X3NpbWRfc2hpZnRfaW1tX3ZlY188dm5fbW9kZT4iKSkKKwkJKG1hdGNoX29wZXJhbmQ6VlFO IDQgImFhcmNoNjRfc2ltZF9pbW1femVybyIpKQorCSAgICAgIChtYXRjaF9vcGVyYW5kOlZRTiA1 ICJhYXJjaDY0X3NpbWRfdW1heF9oYWxmX21vZGUiKSkpCisJICAobWF0Y2hfb3BlcmFuZDo8Vk5B UlJPV1E+IDEgInJlZ2lzdGVyX29wZXJhbmQiICIwIikpKV0KKyAgIlRBUkdFVF9TSU1EICYmIEJZ VEVTX0JJR19FTkRJQU4iCisgICJzcXNocnVuMlx0JTx2bjI+MC48VjJudHlwZT4sICU8dj4yLjxW dHlwZT4sICUzIgorICBbKHNldF9hdHRyICJ0eXBlIiAibmVvbl9zaGlmdF9pbW1fbmFycm93X3Ei KV0KKykKKworKGRlZmluZV9leHBhbmQgImFhcmNoNjRfc3FzaHJ1bjJfbjxtb2RlPiIKKyAgWyht YXRjaF9vcGVyYW5kOjxWTkFSUk9XUTI+IDAgInJlZ2lzdGVyX29wZXJhbmQiKQorICAgKG1hdGNo X29wZXJhbmQ6PFZOQVJST1dRPiAxICJyZWdpc3Rlcl9vcGVyYW5kIikKKyAgIChtYXRjaF9vcGVy YW5kOlZRTiAyICJyZWdpc3Rlcl9vcGVyYW5kIikKKyAgIChtYXRjaF9vcGVyYW5kOlNJIDMgImFh cmNoNjRfc2ltZF9zaGlmdF9pbW1fb2Zmc2V0Xzx2bl9tb2RlPiIpXQorICAiVEFSR0VUX1NJTUQi CisgIHsKKyAgICBvcGVyYW5kc1szXSA9IGFhcmNoNjRfc2ltZF9nZW5fY29uc3RfdmVjdG9yX2R1 cCAoPE1PREU+bW9kZSwKKwkJCQkJCSBJTlRWQUwgKG9wZXJhbmRzWzNdKSk7CisgICAgcnR4IHpl cm9zID0gQ09OU1QwX1JUWCAoPE1PREU+bW9kZSk7CisgICAgcnR4IGhhbGZfdW1heAorICAgICAg PSBhYXJjaDY0X3NpbWRfZ2VuX2NvbnN0X3ZlY3Rvcl9kdXAgKDxNT0RFPm1vZGUsCisJCQlHRVRf TU9ERV9NQVNLIChHRVRfTU9ERV9JTk5FUiAoPFZOQVJST1dRPm1vZGUpKSk7CisgICAgaWYgKEJZ VEVTX0JJR19FTkRJQU4pCisgICAgICBlbWl0X2luc24gKGdlbl9hYXJjaDY0X3Nxc2hydW4yX248 bW9kZT5faW5zbl9iZSAob3BlcmFuZHNbMF0sCisJCQkJb3BlcmFuZHNbMV0sIG9wZXJhbmRzWzJd LCBvcGVyYW5kc1szXSwKKwkJCQl6ZXJvcywgaGFsZl91bWF4KSk7CisgICAgZWxzZQorICAgICAg ZW1pdF9pbnNuIChnZW5fYWFyY2g2NF9zcXNocnVuMl9uPG1vZGU+X2luc25fbGUgKG9wZXJhbmRz WzBdLAorCQkJCW9wZXJhbmRzWzFdLCBvcGVyYW5kc1syXSwgb3BlcmFuZHNbM10sCisJCQkJemVy b3MsIGhhbGZfdW1heCkpOworICAgIERPTkU7CisgIH0KKykKKworKGRlZmluZV9pbnNuICJhYXJj aDY0X3NxcnNocnVuMl9uPG1vZGU+X2luc25fbGUiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOjxW TkFSUk9XUTI+IDAgInJlZ2lzdGVyX29wZXJhbmQiICI9dyIpCisJKHZlY19jb25jYXQ6PFZOQVJS T1dRMj4KKwkgIChtYXRjaF9vcGVyYW5kOjxWTkFSUk9XUT4gMSAicmVnaXN0ZXJfb3BlcmFuZCIg IjAiKQorCSAgKHRydW5jYXRlOjxWTkFSUk9XUT4KKwkgICAgKHNtaW46PFYyWFdJREU+CisJICAg ICAgKHNtYXg6PFYyWFdJREU+CisJCShhc2hpZnRydDo8VjJYV0lERT4KKwkJICAocGx1czo8VjJY V0lERT4KKwkJICAgIChzaWduX2V4dGVuZDo8VjJYV0lERT4KKwkJICAgICAgKG1hdGNoX29wZXJh bmQ6VlFOIDIgInJlZ2lzdGVyX29wZXJhbmQiICJ3IikpCisJCSAgICAobWF0Y2hfb3BlcmFuZDo8 VjJYV0lERT4gNCAiYWFyY2g2NF9zaW1kX3JzcmFfcm5kX2ltbV92ZWMiKSkKKwkJICAobWF0Y2hf b3BlcmFuZDpWUU4gMyAiYWFyY2g2NF9zaW1kX3NoaWZ0X2ltbV92ZWNfPHZuX21vZGU+IikpCisJ CShtYXRjaF9vcGVyYW5kOjxWMlhXSURFPiA1ICJhYXJjaDY0X3NpbWRfaW1tX3plcm8iKSkKKwkg ICAgICAobWF0Y2hfb3BlcmFuZDo8VjJYV0lERT4gNiAiYWFyY2g2NF9zaW1kX3VtYXhfcXVhcnRl cl9tb2RlIikpKSkpXQorICAiVEFSR0VUX1NJTUQgJiYgIUJZVEVTX0JJR19FTkRJQU4KKyAgICYm IGFhcmNoNjRfY29uc3RfdmVjX3JuZF9jc3RfcCAob3BlcmFuZHNbNF0sIG9wZXJhbmRzWzNdKSIK KyAgInNxcnNocnVuMlx0JTx2bjI+MC48VjJudHlwZT4sICU8dj4yLjxWdHlwZT4sICUzIgorICBb KHNldF9hdHRyICJ0eXBlIiAibmVvbl9zaGlmdF9pbW1fbmFycm93X3EiKV0KKykKKworKGRlZmlu ZV9pbnNuICJhYXJjaDY0X3NxcnNocnVuMl9uPG1vZGU+X2luc25fYmUiCisgIFsoc2V0IChtYXRj aF9vcGVyYW5kOjxWTkFSUk9XUTI+IDAgInJlZ2lzdGVyX29wZXJhbmQiICI9dyIpCisJKHZlY19j b25jYXQ6PFZOQVJST1dRMj4KKwkgICh0cnVuY2F0ZTo8Vk5BUlJPV1E+CisJICAgIChzbWluOjxW MlhXSURFPgorCSAgICAgIChzbWF4OjxWMlhXSURFPgorCQkoYXNoaWZ0cnQ6PFYyWFdJREU+CisJ CSAgKHBsdXM6PFYyWFdJREU+CisJCSAgICAoc2lnbl9leHRlbmQ6PFYyWFdJREU+CisJCSAgICAg IChtYXRjaF9vcGVyYW5kOlZRTiAyICJyZWdpc3Rlcl9vcGVyYW5kIiAidyIpKQorCQkgICAgKG1h dGNoX29wZXJhbmQ6PFYyWFdJREU+IDQgImFhcmNoNjRfc2ltZF9yc3JhX3JuZF9pbW1fdmVjIikp CisJCSAgKG1hdGNoX29wZXJhbmQ6VlFOIDMgImFhcmNoNjRfc2ltZF9zaGlmdF9pbW1fdmVjXzx2 bl9tb2RlPiIpKQorCQkobWF0Y2hfb3BlcmFuZDo8VjJYV0lERT4gNSAiYWFyY2g2NF9zaW1kX2lt bV96ZXJvIikpCisJICAgICAgKG1hdGNoX29wZXJhbmQ6PFYyWFdJREU+IDYgImFhcmNoNjRfc2lt ZF91bWF4X3F1YXJ0ZXJfbW9kZSIpKSkKKwkgIChtYXRjaF9vcGVyYW5kOjxWTkFSUk9XUT4gMSAi cmVnaXN0ZXJfb3BlcmFuZCIgIjAiKSkpXQorICAiVEFSR0VUX1NJTUQgJiYgQllURVNfQklHX0VO RElBTgorICAgJiYgYWFyY2g2NF9jb25zdF92ZWNfcm5kX2NzdF9wIChvcGVyYW5kc1s0XSwgb3Bl cmFuZHNbM10pIgorICAic3Fyc2hydW4yXHQlPHZuMj4wLjxWMm50eXBlPiwgJTx2PjIuPFZ0eXBl PiwgJTMiCisgIFsoc2V0X2F0dHIgInR5cGUiICJuZW9uX3NoaWZ0X2ltbV9uYXJyb3dfcSIpXQor KQorCisoZGVmaW5lX2V4cGFuZCAiYWFyY2g2NF9zcXJzaHJ1bjJfbjxtb2RlPiIKKyAgWyhtYXRj aF9vcGVyYW5kOjxWTkFSUk9XUTI+IDAgInJlZ2lzdGVyX29wZXJhbmQiKQorICAgKG1hdGNoX29w ZXJhbmQ6PFZOQVJST1dRPiAxICJyZWdpc3Rlcl9vcGVyYW5kIikKKyAgIChtYXRjaF9vcGVyYW5k OlZRTiAyICJyZWdpc3Rlcl9vcGVyYW5kIikKKyAgIChtYXRjaF9vcGVyYW5kOlNJIDMgImFhcmNo NjRfc2ltZF9zaGlmdF9pbW1fb2Zmc2V0Xzx2bl9tb2RlPiIpXQorICAiVEFSR0VUX1NJTUQiCisg IHsKKyAgICBpbnQgcHJlYyA9IEdFVF9NT0RFX1VOSVRfUFJFQ0lTSU9OICg8VjJYV0lERT5tb2Rl KTsKKyAgICB3aWRlX2ludCBybmRfd2kgPSB3aTo6c2V0X2JpdF9pbl96ZXJvIChJTlRWQUwgKG9w ZXJhbmRzWzNdKSAtIDEsIHByZWMpOworICAgIHJ0eCBybmQgPSBpbW1lZF93aWRlX2ludF9jb25z dCAocm5kX3dpLCBHRVRfTU9ERV9JTk5FUiAoPFYyWFdJREU+bW9kZSkpOworICAgIHJuZCA9IGdl bl9jb25zdF92ZWNfZHVwbGljYXRlICg8VjJYV0lERT5tb2RlLCBybmQpOworICAgIHJ0eCB6ZXJv ID0gQ09OU1QwX1JUWCAoPFYyWFdJREU+bW9kZSk7CisgICAgcnR4IGhhbGZfdW1heAorICAgICAg PSBhYXJjaDY0X3NpbWRfZ2VuX2NvbnN0X3ZlY3Rvcl9kdXAgKDxWMlhXSURFPm1vZGUsCisJCQlH RVRfTU9ERV9NQVNLIChHRVRfTU9ERV9JTk5FUiAoPFZOQVJST1dRPm1vZGUpKSk7CisgICAgb3Bl cmFuZHNbM10gPSBnZW5fY29uc3RfdmVjX2R1cGxpY2F0ZSAoPE1PREU+bW9kZSwgb3BlcmFuZHNb M10pOworICAgIGlmIChCWVRFU19CSUdfRU5ESUFOKQorICAgICAgZW1pdF9pbnNuIChnZW5fYWFy Y2g2NF9zcXJzaHJ1bjJfbjxtb2RlPl9pbnNuX2JlIChvcGVyYW5kc1swXSwKKwkJCQlvcGVyYW5k c1sxXSwgb3BlcmFuZHNbMl0sIG9wZXJhbmRzWzNdLCBybmQsCisJCQkJemVybywgaGFsZl91bWF4 KSk7CisgICAgZWxzZQorICAgICAgZW1pdF9pbnNuIChnZW5fYWFyY2g2NF9zcXJzaHJ1bjJfbjxt b2RlPl9pbnNuX2xlIChvcGVyYW5kc1swXSwKKwkJCQlvcGVyYW5kc1sxXSwgb3BlcmFuZHNbMl0s IG9wZXJhbmRzWzNdLCBybmQsCisJCQkJemVybywgaGFsZl91bWF4KSk7CisgICAgRE9ORTsKKyAg fQorKQogCiA7OyBjbShlcXxnZXxndHxsdHxsZSkKIDs7IE5vdGUsIHdlIGhhdmUgY29uc3RyYWlu dHMgZm9yIER6IGFuZCBaIGFzIGRpZmZlcmVudCBleHBhbmRlcnMKZGlmZiAtLWdpdCBhL2djYy9j b25maWcvYWFyY2g2NC9hcm1fbmVvbi5oIGIvZ2NjL2NvbmZpZy9hYXJjaDY0L2FybV9uZW9uLmgK aW5kZXggMmE0NmEzMWI2MTcuLmQzNTBkOWU3YzAxIDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2Fh cmNoNjQvYXJtX25lb24uaAorKysgYi9nY2MvY29uZmlnL2FhcmNoNjQvYXJtX25lb24uaApAQCAt NTUzMiw0MiArNTUzMiw0MiBAQCBfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ4eDE2 X3QKIF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f YXJ0aWZpY2lhbF9fKSkKIHZyc2hybl9oaWdoX25fczE2IChpbnQ4eDhfdCBfX2EsIGludDE2eDhf dCBfX2IsIGNvbnN0IGludCBfX2MpCiB7Ci0gIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9yc2hy bjJ2OGhpIChfX2EsIF9fYiwgX19jKTsKKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3JzaHJu Ml9udjhoaSAoX19hLCBfX2IsIF9fYyk7CiB9CiAKIF9fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s aW5lIGludDE2eDhfdAogX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogdnJzaHJuX2hpZ2hfbl9zMzIgKGludDE2eDRfdCBf X2EsIGludDMyeDRfdCBfX2IsIGNvbnN0IGludCBfX2MpCiB7Ci0gIHJldHVybiBfX2J1aWx0aW5f YWFyY2g2NF9yc2hybjJ2NHNpIChfX2EsIF9fYiwgX19jKTsKKyAgcmV0dXJuIF9fYnVpbHRpbl9h YXJjaDY0X3JzaHJuMl9udjRzaSAoX19hLCBfX2IsIF9fYyk7CiB9CiAKIF9fZXh0ZW5zaW9uX18g ZXh0ZXJuIF9faW5saW5lIGludDMyeDRfdAogX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogdnJzaHJuX2hpZ2hfbl9zNjQg KGludDMyeDJfdCBfX2EsIGludDY0eDJfdCBfX2IsIGNvbnN0IGludCBfX2MpCiB7Ci0gIHJldHVy biBfX2J1aWx0aW5fYWFyY2g2NF9yc2hybjJ2MmRpIChfX2EsIF9fYiwgX19jKTsKKyAgcmV0dXJu IF9fYnVpbHRpbl9hYXJjaDY0X3JzaHJuMl9udjJkaSAoX19hLCBfX2IsIF9fYyk7CiB9CiAKIF9f ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4eDE2X3QKIF9fYXR0cmlidXRlX18gKChf X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKIHZyc2hy bl9oaWdoX25fdTE2ICh1aW50OHg4X3QgX19hLCB1aW50MTZ4OF90IF9fYiwgY29uc3QgaW50IF9f YykKIHsKLSAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3JzaHJuMnY4aGlfdXV1cyAoX19hLCBf X2IsIF9fYyk7CisgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9yc2hybjJfbnY4aGlfdXV1cyAo X19hLCBfX2IsIF9fYyk7CiB9CiAKIF9fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQx Nng4X3QKIF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s IF9fYXJ0aWZpY2lhbF9fKSkKIHZyc2hybl9oaWdoX25fdTMyICh1aW50MTZ4NF90IF9fYSwgdWlu dDMyeDRfdCBfX2IsIGNvbnN0IGludCBfX2MpCiB7Ci0gIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2 NF9yc2hybjJ2NHNpX3V1dXMgKF9fYSwgX19iLCBfX2MpOworICByZXR1cm4gX19idWlsdGluX2Fh cmNoNjRfcnNocm4yX252NHNpX3V1dXMgKF9fYSwgX19iLCBfX2MpOwogfQogCiBfX2V4dGVuc2lv bl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJ4NF90CiBfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiB2cnNocm5faGlnaF9u X3U2NCAodWludDMyeDJfdCBfX2EsIHVpbnQ2NHgyX3QgX19iLCBjb25zdCBpbnQgX19jKQogewot ICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfcnNocm4ydjJkaV91dXVzIChfX2EsIF9fYiwgX19j KTsKKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3JzaHJuMl9udjJkaV91dXVzIChfX2EsIF9f YiwgX19jKTsKIH0KIAogX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50OHg4X3QKQEAg LTU2MzAsNDIgKzU2MzAsNDIgQEAgX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50OHgx Nl90CiBfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBf X2FydGlmaWNpYWxfXykpCiB2c2hybl9oaWdoX25fczE2IChpbnQ4eDhfdCBfX2EsIGludDE2eDhf dCBfX2IsIGNvbnN0IGludCBfX2MpCiB7Ci0gIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9zaHJu MnY4aGkgKF9fYSwgX19iLCBfX2MpOworICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfc2hybjJf bnY4aGkgKF9fYSwgX19iLCBfX2MpOwogfQogCiBfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu ZSBpbnQxNng4X3QKIF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKIHZzaHJuX2hpZ2hfbl9zMzIgKGludDE2eDRfdCBfX2Es IGludDMyeDRfdCBfX2IsIGNvbnN0IGludCBfX2MpCiB7Ci0gIHJldHVybiBfX2J1aWx0aW5fYWFy Y2g2NF9zaHJuMnY0c2kgKF9fYSwgX19iLCBfX2MpOworICByZXR1cm4gX19idWlsdGluX2FhcmNo NjRfc2hybjJfbnY0c2kgKF9fYSwgX19iLCBfX2MpOwogfQogCiBfX2V4dGVuc2lvbl9fIGV4dGVy biBfX2lubGluZSBpbnQzMng0X3QKIF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywg X19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKIHZzaHJuX2hpZ2hfbl9zNjQgKGludDMy eDJfdCBfX2EsIGludDY0eDJfdCBfX2IsIGNvbnN0IGludCBfX2MpCiB7Ci0gIHJldHVybiBfX2J1 aWx0aW5fYWFyY2g2NF9zaHJuMnYyZGkgKF9fYSwgX19iLCBfX2MpOworICByZXR1cm4gX19idWls dGluX2FhcmNoNjRfc2hybjJfbnYyZGkgKF9fYSwgX19iLCBfX2MpOwogfQogCiBfX2V4dGVuc2lv bl9fIGV4dGVybiBfX2lubGluZSB1aW50OHgxNl90CiBfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNf aW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiB2c2hybl9oaWdoX25f dTE2ICh1aW50OHg4X3QgX19hLCB1aW50MTZ4OF90IF9fYiwgY29uc3QgaW50IF9fYykKIHsKLSAg cmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3Nocm4ydjhoaV91dXVzIChfX2EsIF9fYiwgX19jKTsK KyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3Nocm4yX252OGhpX3V1dXMgKF9fYSwgX19iLCBf X2MpOwogfQogCiBfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZ4OF90CiBfX2F0 dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNp YWxfXykpCiB2c2hybl9oaWdoX25fdTMyICh1aW50MTZ4NF90IF9fYSwgdWludDMyeDRfdCBfX2Is IGNvbnN0IGludCBfX2MpCiB7Ci0gIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9zaHJuMnY0c2lf dXV1cyAoX19hLCBfX2IsIF9fYyk7CisgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9zaHJuMl9u djRzaV91dXVzIChfX2EsIF9fYiwgX19jKTsKIH0KIAogX19leHRlbnNpb25fXyBleHRlcm4gX19p bmxpbmUgdWludDMyeDRfdAogX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogdnNocm5faGlnaF9uX3U2NCAodWludDMyeDJf dCBfX2EsIHVpbnQ2NHgyX3QgX19iLCBjb25zdCBpbnQgX19jKQogewotICByZXR1cm4gX19idWls dGluX2FhcmNoNjRfc2hybjJ2MmRpX3V1dXMgKF9fYSwgX19iLCBfX2MpOworICByZXR1cm4gX19i dWlsdGluX2FhcmNoNjRfc2hybjJfbnYyZGlfdXV1cyAoX19hLCBfX2IsIF9fYyk7CiB9CiAKIF9f ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHk4eDhfdApkaWZmIC0tZ2l0IGEvZ2NjL2Nv bmZpZy9hYXJjaDY0L2l0ZXJhdG9ycy5tZCBiL2djYy9jb25maWcvYWFyY2g2NC9pdGVyYXRvcnMu bWQKaW5kZXggMTU0MzZjOGVmMzcuLjdmOWE1MTI4MDlkIDEwMDY0NAotLS0gYS9nY2MvY29uZmln L2FhcmNoNjQvaXRlcmF0b3JzLm1kCisrKyBiL2djYy9jb25maWcvYWFyY2g2NC9pdGVyYXRvcnMu bWQKQEAgLTY0NSwxMiArNjQ1LDYgQEAgKGRlZmluZV9jX2VudW0gInVuc3BlYyIKICAgICBVTlNQ RUNfU1FTSExVCTsgVXNlZCBpbiBhYXJjaDY0LXNpbWQubWQuCiAgICAgVU5TUEVDX1NRU0hMCTsg VXNlZCBpbiBhYXJjaDY0LXNpbWQubWQuCiAgICAgVU5TUEVDX1VRU0hMCTsgVXNlZCBpbiBhYXJj aDY0LXNpbWQubWQuCi0gICAgVU5TUEVDX1NRU0hSVU4JOyBVc2VkIGluIGFhcmNoNjQtc2ltZC5t ZC4KLSAgICBVTlNQRUNfU1FSU0hSVU4JOyBVc2VkIGluIGFhcmNoNjQtc2ltZC5tZC4KLSAgICBV TlNQRUNfU1FTSFJOCTsgVXNlZCBpbiBhYXJjaDY0LXNpbWQubWQuCi0gICAgVU5TUEVDX1VRU0hS Tgk7IFVzZWQgaW4gYWFyY2g2NC1zaW1kLm1kLgotICAgIFVOU1BFQ19TUVJTSFJOCTsgVXNlZCBp biBhYXJjaDY0LXNpbWQubWQuCi0gICAgVU5TUEVDX1VRUlNIUk4JOyBVc2VkIGluIGFhcmNoNjQt c2ltZC5tZC4KICAgICBVTlNQRUNfU1NITAkJOyBVc2VkIGluIGFhcmNoNjQtc2ltZC5tZC4KICAg ICBVTlNQRUNfVVNITAkJOyBVc2VkIGluIGFhcmNoNjQtc2ltZC5tZC4KICAgICBVTlNQRUNfU1JT SEwJOyBVc2VkIGluIGFhcmNoNjQtc2ltZC5tZC4KQEAgLTI2NjAsMTAgKzI2NTQsNiBAQCAoZGVm aW5lX2ludF9pdGVyYXRvciBWUlNIUl9OIFtVTlNQRUNfU1JTSFIgVU5TUEVDX1VSU0hSXSkKIAog KGRlZmluZV9pbnRfaXRlcmF0b3IgVlFTSExfTiBbVU5TUEVDX1NRU0hMVSBVTlNQRUNfU1FTSEwg VU5TUEVDX1VRU0hMXSkKIAotKGRlZmluZV9pbnRfaXRlcmF0b3IgVlFTSFJOX04gW1VOU1BFQ19T UVNIUlVOIFVOU1BFQ19TUVJTSFJVTgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVO U1BFQ19TUVNIUk4gVU5TUEVDX1VRU0hSTgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFVOU1BFQ19TUVJTSFJOIFVOU1BFQ19VUVJTSFJOXSkKLQogKGRlZmluZV9pbnRfaXRlcmF0b3Ig U1FSRE1MSF9BUyBbVU5TUEVDX1NRUkRNTEFIIFVOU1BFQ19TUVJETUxTSF0pCiAKIChkZWZpbmVf aW50X2l0ZXJhdG9yIFBFUk1VVEUgW1VOU1BFQ19aSVAxIFVOU1BFQ19aSVAyCkBAIC0zMzc0LDkg KzMzNjQsNiBAQCAoZGVmaW5lX2ludF9hdHRyIHN1ciBbKFVOU1BFQ19TSEFERCAicyIpIChVTlNQ RUNfVUhBREQgInUiKQogCQkgICAgICAoVU5TUEVDX1VSU0hSICAidXIiKSAoVU5TUEVDX1NSU0hS ICAic3IiKQogCQkgICAgICAoVU5TUEVDX1NRU0hMVSAicyIpIChVTlNQRUNfU1FTSEwgICAicyIp CiAJCSAgICAgIChVTlNQRUNfVVFTSEwgICJ1IikKLQkJICAgICAgKFVOU1BFQ19TUVNIUlVOICJz IikgKFVOU1BFQ19TUVJTSFJVTiAicyIpCi0gICAgICAgICAgICAgICAgICAgICAgKFVOU1BFQ19T UVNIUk4gInMiKSAgKFVOU1BFQ19VUVNIUk4gInUiKQotICAgICAgICAgICAgICAgICAgICAgIChV TlNQRUNfU1FSU0hSTiAicyIpIChVTlNQRUNfVVFSU0hSTiAidSIpCiAJCSAgICAgIChVTlNQRUNf VVNITCAgInUiKSAgIChVTlNQRUNfU1NITCAgInMiKQogCQkgICAgICAoVU5TUEVDX1VTSExMICAi dSIpICAoVU5TUEVDX1NTSExMICJzIikKIAkJICAgICAgKFVOU1BFQ19VUlNITCAgInVyIikgKFVO U1BFQ19TUlNITCAgInNyIikKQEAgLTMzODgsOSArMzM3NSw2IEBAIChkZWZpbmVfaW50X2F0dHIg c3VyIFsoVU5TUEVDX1NIQUREICJzIikgKFVOU1BFQ19VSEFERCAidSIpCiBdKQogCiAoZGVmaW5l X2ludF9hdHRyIHIgWyhVTlNQRUNfU1FETVVMSCAiIikgKFVOU1BFQ19TUVJETVVMSCAiciIpCi0J CSAgICAoVU5TUEVDX1NRU0hSVU4gIiIpIChVTlNQRUNfU1FSU0hSVU4gInIiKQotICAgICAgICAg ICAgICAgICAgICAoVU5TUEVDX1NRU0hSTiAiIikgIChVTlNQRUNfVVFTSFJOICIiKQotICAgICAg ICAgICAgICAgICAgICAoVU5TUEVDX1NRUlNIUk4gInIiKSAoVU5TUEVDX1VRUlNIUk4gInIiKQog ICAgICAgICAgICAgICAgICAgICAoVU5TUEVDX1NRU0hMICAgIiIpICAoVU5TUEVDX1VRU0hMICAi IikKICAgICAgICAgICAgICAgICAgICAgKFVOU1BFQ19TUVJTSEwgICAiciIpKFVOU1BFQ19VUVJT SEwgICJyIikKIAkJICAgIChVTlNQRUNfU01VTEhTICIiKSAoVU5TUEVDX1VNVUxIUyAiIikKQEAg LTM0MDYsOSArMzM5MCw2IEBAIChkZWZpbmVfaW50X2F0dHIgbHIgWyhVTlNQRUNfU1NMSSAgImwi KSAoVU5TUEVDX1VTTEkgICJsIikKIAkJICAgICAoVU5TUEVDX1NMSSAgICJsIikgKFVOU1BFQ19T UkkgICAiciIpXSkKIAogKGRlZmluZV9pbnRfYXR0ciB1IFsoVU5TUEVDX1NRU0hMVSAidSIpIChV TlNQRUNfU1FTSEwgIiIpIChVTlNQRUNfVVFTSEwgIiIpCi0JCSAgICAoVU5TUEVDX1NRU0hSVU4g InUiKSAoVU5TUEVDX1NRUlNIUlVOICJ1IikKLQkJICAgIChVTlNQRUNfU1FTSFJOICIiKSAgKFVO U1BFQ19VUVNIUk4gIiIpCi0JCSAgICAoVU5TUEVDX1NRUlNIUk4gIiIpIChVTlNQRUNfVVFSU0hS TiAiIikKIAkJICAgIChVTlNQRUNfU0hBREQgIiIpIChVTlNQRUNfVUhBREQgInUiKQogCQkgICAg KFVOU1BFQ19TUkhBREQgIiIpIChVTlNQRUNfVVJIQUREICJ1IildKQogCg== --_002_PAXPR08MB69263271952318ED78B215B59358APAXPR08MB6926eurp_--