From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id 49E259F0FB for ; Wed, 7 Jun 2023 18:27:31 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 32D451CC43 for ; Wed, 7 Jun 2023 18:27:31 +0200 (CEST) Received: from mail02.cetsi.fr (mail02.cetsi.fr [91.151.64.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS for ; Wed, 7 Jun 2023 18:27:29 +0200 (CEST) Received: from CYLNEXC01.cyllene.corp (unknown [10.0.250.28]) by mail02.cetsi.fr (Postfix) with ESMTP id 87EEA40502AC for ; Wed, 7 Jun 2023 18:27:27 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 mail02.cetsi.fr 87EEA40502AC DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groupe-cyllene.com; s=dkim; t=1686155247; bh=mvArlx2L6FUd8hjT4BgS0g5waIumx632pvR7VW8/MBg=; h=From:To:Subject:Date:References:In-Reply-To:From; b=NCHfFcNd/zWylDXyBwRKcTyAYJD+/jWxpK7S7eH64ECy5zLVxHaaprDKdGO3tQNVi ZT2qKw42hTLXk9r5K0mvKVThVPbMzj2t5sQXi39HC+d2kQS+0qlrF8BUiINPNwNe6w TFJDE0Pr+CIxvlT58BkrqmaltWRrH3TWmwlBbaSg= Received: from CYLNEXC01.cyllene.corp (10.0.250.28) by CYLNEXC01.cyllene.corp (10.0.250.28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.23; Wed, 7 Jun 2023 18:27:28 +0200 Received: from FRA01-MR2-obe.outbound.protection.outlook.com (10.0.250.254) by CYLNEXC01.cyllene.corp (10.0.250.28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.23 via Frontend Transport; Wed, 7 Jun 2023 18:27:28 +0200 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RiecG5YX/qS3lk86Sj7qVL0ScPLdhDcZ5z9E2r56wAKiKux7ZltL6OJtzSh7zNYHTMUmbBollrN3r6oH4tbkdPksUfohm/sRWQxK4w60PEQXkNrrO/eZCoHVNX0/whVE+nsgHI8mfKzvmfqfX+MVFFm0BK6aJLQeYumWcyxOT8xwrY64YFqzhgK9ew5BKJruKALfoKB7WPeh868dY3d9MFR9kDWrGWS3X3g796PFmqbxqNvjKRV2FRJG0dpzJ+8EB+eBuGR8ckMbCNwM7a59H9l8NZswEIkputTgGuHDk9Xr8KrC7WD1aTk1F9s/7LQkcC2n9nNICoTxFUCE/ePcpA== 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=mvArlx2L6FUd8hjT4BgS0g5waIumx632pvR7VW8/MBg=; b=dL4LswYRKM7e3dUz/TbWb0ICI27cmnz9M/uoENAgRhNX/7OjP9CwvnF/ye/DZWB6gUA07yU+tg3nBF5RVoD9IyEiyioVAfn/YkB5fzodlHDaf0cZBxK+cxDd6YxKXUkIyrsm+czV391r/YNp7UH+rn0m+CRMnsOgmzLaLVBBX9RAfAcOpUf9YcLTu66J7X3QSIUTem2cm3W7AVUF+DA1RmjfgNF0c5EB3Y40tgagMeUsr3XruesVgBTgZugdyNuhae9vR7alxVI5g6zEYgC+5olSW1BIphghiPG+j1rOKazzDIC8fR/PSYdE0SjNGGPuajIOrMjjfMgKz4Hd44CgvA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=groupe-cyllene.com; dmarc=pass action=none header.from=groupe-cyllene.com; dkim=pass header.d=groupe-cyllene.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=groupecyllene.onmicrosoft.com; s=selector2-groupecyllene-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=mvArlx2L6FUd8hjT4BgS0g5waIumx632pvR7VW8/MBg=; b=JjzRhxn+ynf+zg+WIv9KkcCH5sB2ZvPCHBCOS7ZHzRE50JYeHJsX+OiA+5e3SN85EK+kso8tOn7tPILGo5KwYjZiC3+QaknPsF9KKzVxR3lDQoMGDGWC37xNj3KtyYu0jpB/1Eb1d2sNSbv9ipO2oQa5WFMjYsuRGJw7EeVsbD8= Received: from MR1P264MB2481.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501:32::17) by PR0P264MB3436.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:14b::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6455.32; Wed, 7 Jun 2023 16:27:27 +0000 Received: from MR1P264MB2481.FRAP264.PROD.OUTLOOK.COM ([fe80::cef1:6229:8d42:b0ee]) by MR1P264MB2481.FRAP264.PROD.OUTLOOK.COM ([fe80::cef1:6229:8d42:b0ee%2]) with mapi id 15.20.6455.030; Wed, 7 Jun 2023 16:27:26 +0000 From: "DERUMIER, Alexandre" To: "pve-devel@lists.proxmox.com" Thread-Topic: [pve-devel] [PATCH pve-network 1/1] get_local_vnets: fix permission path && perm Thread-Index: AQHZmTg6MM7OpdZRnEKGACWgnA0bDq9/bhGAgAAZYYA= Date: Wed, 7 Jun 2023 16:27:26 +0000 Message-ID: <494f4638beff06af5560d4c9f8de732691414020.camel@groupe-cyllene.com> References: <20230607120357.4177891-1-aderumier@odiso.com> <20230607120357.4177891-5-aderumier@odiso.com> <1686149560.i7ewotwm93.astroid@yuna.none> In-Reply-To: <1686149560.i7ewotwm93.astroid@yuna.none> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.48.1-0ubuntu1 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=groupe-cyllene.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MR1P264MB2481:EE_|PR0P264MB3436:EE_ x-ms-office365-filtering-correlation-id: c6d74e31-abbb-469a-4cc3-08db677414ec x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: pgxrH5P/1WucJ5QPbCZe7h1k78j8PJUmyp3IhEGY0jLaPN44aUScbff+Efr1jCG0PvUQ8Kise1pEwEiZdW7wluppcGRkJ+KqjW7iHNcMp1BkgAVheZ8bdEsKVwRdck08Sw1KHYjbwyneJd6KgVuxinvZBBFlwyriUnEE9U0bUVDn3k0MrS4x/yM4RduSYcMeoPzTK95EceA7RiR9/JfyjAn6Wl391XiO6lU90zCZDtpfPDvTluSJAyB3owsmF+qeBKbZHI1Q+/2vt9702eOqyYKBgOlt+b0rs40otM5txoXhUlL+2+6EYbq0MvGrgP2Ybu1pYHoBjqIU+v39mAEqjREhcA4KP6GBiixLh9eHSGx4vivjp0b+ThLwx2y91W3AoEmjEfpsZbSffq3X9qonfVTP4iCpn0tIA+0IdDWY3fhZYir3KjKIoZXqIXKRw1GN96PuIIikffo6/bzqpMXhfrurn31x4Jne3VXNhAjBKdQSDaHmrYNnn7NcDj3YoHrst/+64JqbPS+FdLq9m4UkjIjYofMGkFM1Uj7w6bcn4PuFHwZHdryhurt5AvcBIVG8vJ4KCRSjTi962gztKWtXqScbeclIRtzJAAMo0VkAw+U= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MR1P264MB2481.FRAP264.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(13230028)(4636009)(136003)(346002)(366004)(376002)(39850400004)(396003)(451199021)(66574015)(2616005)(6512007)(6506007)(83380400001)(38100700002)(41300700001)(6486002)(186003)(966005)(478600001)(2906002)(19627235002)(66446008)(66556008)(66476007)(6916009)(122000001)(64756008)(76116006)(66946007)(316002)(91956017)(71200400001)(8936002)(5660300002)(8676002)(38070700005)(86362001)(36756003); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?UXM1WHZ6SU1wdnZjL2tPdVhLVjZwYVVZNE03MUwyUndQWXV5bElnTTFNOEQ1?= =?utf-8?B?NkxtajBidGpuRmRoTkVaRlBtd29VVUtsNmpiN0gxWXRDbEFhQm0zbEN6M0FX?= =?utf-8?B?dm8rcm5lYUcyQWRPaHdaaTY1M0NCVVViSWxDNkxUUHRvUzZkRG5kRE9DZ3cr?= =?utf-8?B?dUZzRVVRMlEwTGpOY3BzRTlHTUx6ZUlEdURUc2NDVVprNW1WVTMzUUJwMkRi?= =?utf-8?B?c1pjWnc1UmQySmwwdUxoYTI1NVNlRStraHk3YnBpU0ZrNXNLSVdtQXE0V2ZT?= =?utf-8?B?d2JWVlNKYlRBMk44a29nTCtjcG5NU1FrRDhwY04rWkRnYUJHUnRzeWJ5elQx?= =?utf-8?B?Ky9rVTBnZlQwalJ5Y05CQjEwUjFmYkxxVFkrNFVDdXUvS1llNEJLd2U4eFRJ?= =?utf-8?B?UEZKam9XR0J1MUdxNTRraFVReWNrbnRkRGJ2RDNUY0tDR0hQTU5SVktYRkJq?= =?utf-8?B?Y3VZRWRqNHdWVGhoMUxKWEZsejBENjdqTHdOdHhVZ1R0UnA4UjVTUGFRTDMy?= =?utf-8?B?ZkJBdjk2VnJvT1ZYWW0xdElXODBmejV4TExVUGJJWDdqMkR5RTczeFE1bjU1?= =?utf-8?B?VUE2TEhZdjJuL1ByZUpWL1U2SnlKd2ZSV2RpK094NmhNRTdaNUNvcGpJNW9X?= =?utf-8?B?Mjh5blhNcHRlRS9JVVd2dVZnMDZsaW5jODZoeWJZak9UOURxcXNoUmp1MTY4?= =?utf-8?B?NVIvaC9wVjUyc1FudWYxUzkzT2pOQ3ZVamc0RHM2UHQ5VkRxeG9heUwrRE1J?= =?utf-8?B?Q09UWGxrYllvWndDT2FmOWZQVENpNEF2QWptbW5lVWFySk5SdExYZ09WOGdq?= =?utf-8?B?TmtybkNzQUEvaHZBbm5vazlkbFpOOGx4TzZCQWVRbUtwWTZUMzBqN3FuamhQ?= =?utf-8?B?bjRrNmhQaS9panF4aEdTaVVYSkl1TW01czczTEgwRnhXbDUreEZaNCs1ZDA2?= =?utf-8?B?a2NJTGIyMExuY3FSZFFWcTVPekVhVkx3aXdOby8yYzBmNmcxT0ZSaThleTFR?= =?utf-8?B?MCtsT3M5SG8vd3hRenJxZGRXczRQRUZNd0lPNnhPTjkwaldCd09UeVhKR252?= =?utf-8?B?ZW4zR2lyWDk0OGRqMlFvWHZiSTV2OVNGRjMwUWV3M21GRjR3dFdORm53ZGUz?= =?utf-8?B?cEg4YjNLQnVGNVVSSTl5OEJvYUdmWGNrTFVtU2JoZkJzemVyeGcyaU8wa2c0?= =?utf-8?B?aE9NU3lJcmNMOG5UNmd6V1ZmMlVVaE1tbUhFSHhleHZnOHg5RVRRbWE0eVhP?= =?utf-8?B?Zkd1QUZXeUFFaHRRTVpIeWNHblpoajVibFl2KzRBYVI3NkVqSlo2VEdzR3pa?= =?utf-8?B?Z2wzNThESXZQSjZKUTk3b1lYQVRpYytxZGxqYzdrOC9GYWE0NHBhU0xRSjht?= =?utf-8?B?Nk9ZMUpRakd6NUVMbkhqYWNyUVNrNFZkNnBYa1NGSHRkb1VLQkxWUys1UmNt?= =?utf-8?B?dFBTWUlRRncwb2VKN0h0a1FJQzVHZCtHaTFpVDNwZ3hQQVVMTXYycVhZcjhW?= =?utf-8?B?cjZNM2srTWswaC90d054dlFaVmNleEJoRkFGbG95Q1pFQkpWdHA4SUtwN3Fj?= =?utf-8?B?ZjF0Mi8ybVcxL0ZPb0JVTnZyMmw1dVU0Q2tqYjJkQ2p6eklTSHV6UTVmZkhQ?= =?utf-8?B?QjFZYWJiNFc0ZHBCd3d4UGU0REdzOHdEdlNaQ2lmd0t6Z2FwNFoza2RyUDlr?= =?utf-8?B?RHZNRU9mRVgzdEsxLzhYajM0cFNtY0tSek9Ybk56QXNYby9JVDJVSXk0SWNG?= =?utf-8?B?dkxzaU5RaVFVVXUvNkd2c0x5QzNvSkVJNG11T3VMWnAxN0tqcGt0QnNLOEdk?= =?utf-8?B?R28rTlBoRUxxNkFqZ3NhZW1WTFl3WWZ4eGYzTzA0UkhZY2VwZVM3TFNOVkVO?= =?utf-8?B?TG5FRm5rMktEUFBQNERnNm1Xdnp2STVKZmN2V05JT09GblF5T2t6K3UrQTJN?= =?utf-8?B?aXpkcm5ZdDBUOC80OUwxRWsrZVVWamU3eXY0NFM3dHZVR01OQk1zdElYTSt4?= =?utf-8?B?MkFYeUczRWYxTVlDclVDSEMrRytCaXlTUmxIOTQyaGkvLy9aSEtkcTZzcFdn?= =?utf-8?B?U3hLMWVBaVRFNkVGVEs3d1RBdG5wWUpPeVhiaDlTNUJvZjVnNDhCdTZHL0tB?= =?utf-8?B?SmZlb1FJMVpmN3dYZnlLeFZONlM0ZWpvU0pzdXBhL1lZVUVKQ0pIcXBnWm0v?= =?utf-8?Q?urBcR7ntdOd5Dmm4duefki1zRGazeC+qXzr0wG9fXdrx?= Content-Type: text/plain; charset="utf-8" Content-ID: <226B96F605EE4B49BB9D1FA156CBC20F@FRAP264.PROD.OUTLOOK.COM> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MR1P264MB2481.FRAP264.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: c6d74e31-abbb-469a-4cc3-08db677414ec X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Jun 2023 16:27:26.7727 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: ee11ccf7-112c-4284-848b-f229745e715b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 9QFxMABXew+Xnh5OAHF+nfPDWNq9ebOIinkmvxCXDwXyJ/6N0Cjl5vbcjp+hrWJMzdtt3jC37bn4Fhg2ULtSwtwdrKe4q5S02Esb6hcSpIh8MPn5hDZjTHyiAp3OrebS X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR0P264MB3436 X-OriginatorOrg: groupe-cyllene.com X-SPAM-LEVEL: Spam detection results: 0 ARC_SIGNED 0.001 Message has a ARC signature ARC_VALID 0.001 Message has a valid ARC signature AWL -0.578 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from domain DMARC_MISSING 0.1 Missing DMARC policy KAM_ASCII_DIVIDERS 0.8 Email that uses ascii formatting dividers and possible spam tricks POISEN_SPAM_PILL 0.1 Meta: its spam POISEN_SPAM_PILL_1 0.1 random spam to be learned in bayes POISEN_SPAM_PILL_3 0.1 random spam to be learned in bayes SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record T_SCC_BODY_TEXT_LINE -0.01 - Subject: Re: [pve-devel] [PATCH pve-network 1/1] get_local_vnets: fix permission path && perm X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Jun 2023 16:27:31 -0000 TGUgbWVyY3JlZGkgMDcganVpbiAyMDIzIMOgIDE2OjU2ICswMjAwLCBGYWJpYW4gR3LDvG5iaWNo bGVyIGEgw6ljcml0wqA6DQo+IHB2ZS1uZXR3b3JrIHJlcXVpcmVzIG1vcmUgd29yazoNCj4gDQo+ IC0gdGhlcmUgaXMgYSBsb3Qgb2YgL3Nkbi92bmV0cy8uLiBwZXJtaXNzaW9uIGNoZWNrcyBsZWZ0 b3ZlciAoYWxsIG9mDQo+IHRoZSB2bmV0L3N1Ym5ldCBjb2RlISkNCj4gLSB0aGVyZSBhcmUgL3Nk bi92bmV0cy8uLi9zdWJuZXRzLy4uIEFDTCBwYXRocyB0aGF0IG5lZWQgdG8gYmUNCj4gZHJvcHBl ZCwNCj4gwqAgb3IgdGhleSBjbGFzaCB3aXRoIC9zZG4vem9uZXMvPHpvbmU+Lzx2bmV0PlsvPHZs YW4+XQ0KDQpJJ2xsIGxvb2sgYXQgaXQgLiBwZXJtaXNzaW9ucyBtYW5hZ2VtZW50IG9uIC9zZG4v dm5ldHMgd2FzIG5ldmVyDQpleHBvc2VkIHRvIGd1aSAoaW4gem9uZSBwZXJtaXNzaW9uIG1hbmFn ZSwgb24gbWFpbiBwZXJtaXNzaW9ucyBwYW5lbA0KY29tYm8pLiBTbyBJIHJlYWxseSBkb24ndCB0 aGluayB0aGF0IHNvbWVib2R5IGhhcyBldmVyIHVzZWQgaXQuDQoNCkkgZG9uJ3QgdGhpbmsgd2Ug bmVlZCBwZXJtaXNzaW9uIG9uIHN1Ym5ldHMgYW55d2F5LiANClBlcm1pc3Npb24gb24gdm5ldCB3 aXRoIFNETi51c2Ugc2hvdWxkIGFsbG93IHRvIHVzZSBhbGwgc3VibmV0cw0Kb2YgdGhlIHZuZXQu DQoNCg0KPiAtIHRoZSBHVUkgc2VlbXMgdG8gYmUgYnJva2VuIHdoZW4gIkFkdmFuY2VkIiBpcyBu b3QgdGlja2VkDQo+IA0KWWVzLCBzb21lIHVzZXIgcmVwb3J0ZWQgdGhpcyBzb21lIHdlZWtzIGFn byAod2l0aG91dCBhbnkgY2hhbmdlIGluIHB2ZS0NCm5ldHdvcmspLiBJIHRoaW5rIHNvbWV0aGlu ZyBoYXZlIGNoYW5nZSBpbiBwdmUtbWFuYWdlciwgSSBuZWVkIHRvIGNoZWNrDQp0aGF0Lg0KDQoN Cj4gSSBzdGFydGVkIG9mZiwgYnV0IHRoZW4gSSByZWFsaXplZCB3ZSBtaWdodCBhbHNvIHdhbnQg dG8gcmUtZXZhbHVhdGU6DQo+IC0gd2hldGhlciB3ZSBldmVuIGNhcmUgYWJvdXQgcG90ZW50aWFs bHkgbGVha2luZyB0aGUgdm5ldDwtPnpvbmUNCj4gYmluZGluZw0KPiDCoCBpbiBjYXNlIHRoZSBB Q0wgY2hlY2tzIGZhaWwNCg0KSSB0aGluayBmb3IgU0ROLkFsbG9jYXRlIChjcmVhdGUgdm5ldHMv Y2hhbmdlIHpvbmUgb3B0aW9uKSwgcGVybWlzc2lvbg0Kb24gem9uZSBzaG91bGQgYmUgZW5vdWdo Lg0KDQpTRE4uQWxsb2NhdGUgb24gYSB2bmV0IHRvIGNyZWF0ZSBzdWJuZXRzIG9yIGNoYW5nZSB2 bmV0IG9wdGlvbi4NCg0KDQpTbywgeWVzLCB1c2luZyAvc2RuL3pvbmVzLzx6b25lPi88dm5ldD4g bWFrZSBzZW5zZS4gKGFuZCBwcm9wYWdhdGUgZnJvbQ0KdGhlIHpvbmUgaXMgZ3JlYXQgdG9vKS4N Cg0KDQoNCg0KDQoNCg0KPi0gd2hldGhlciB3ZSB3YW50IHRvIG1vdmUgdGhlIHdob2xlIEFQSSB0 cmVlIGFzIHdlbGwgdG8gaGF2ZSB2bmV0cw0KPmJlbG93DQo+ICB6b25lcyBpbnN0ZWFkIG9mIG5l eHQgdG8gZWFjaG90aGVyLCBzbyB3ZSBhbHdheXMgaGF2ZSB0aGUgem9uZSBhcw0KPiAgKHBhdGgp IHBhcmFtZXRlcj8NCg0KSSdsbCB0cnkgdG8gaGF2ZSBhIGxvb2sgYXQgdGhpcyB0b28uDQoNCg0K Pj5hbnlob3csIGhlcmUncyBhIGhhbGYtZGlmZiBvZiBzb21lIHBvdGVudGlhbGx5IHJlbGV2YW50 IGNoYW5nZXMgOykNCg0KDQpvay4gdGhhbmtzLiBJJ2xsIHdvcmsgb24gaXQgdG9tb3Jyb3cgIQ0K DQoNCg0KDQoNCj4gYGBgDQo+IGRpZmYgLS1naXQgYS9zcmMvUFZFL0FQSTIvTmV0d29yay9TRE4v U3VibmV0cy5wbQ0KPiBiL3NyYy9QVkUvQVBJMi9OZXR3b3JrL1NETi9TdWJuZXRzLnBtDQo+IGlu ZGV4IDM3N2E1NjguLmZiZTJjNDYgMTAwNjQ0DQo+IC0tLSBhL3NyYy9QVkUvQVBJMi9OZXR3b3Jr L1NETi9TdWJuZXRzLnBtDQo+ICsrKyBiL3NyYy9QVkUvQVBJMi9OZXR3b3JrL1NETi9TdWJuZXRz LnBtDQo+IEBAIC0zOSw3ICszOSw3IEBAIF9fUEFDS0FHRV9fLT5yZWdpc3Rlcl9tZXRob2QgKHsN Cj4gwqDCoMKgwqAgbWV0aG9kID0+ICdHRVQnLA0KPiDCoMKgwqDCoCBkZXNjcmlwdGlvbiA9PiAi U0ROIHN1Ym5ldHMgaW5kZXguIiwNCj4gwqDCoMKgwqAgcGVybWlzc2lvbnMgPT4gew0KPiAtwqDC oMKgwqDCoMKgwqBkZXNjcmlwdGlvbiA9PiAiT25seSBsaXN0IGVudHJpZXMgd2hlcmUgeW91IGhh dmUgJ1NETi5BdWRpdCcNCj4gb3IgJ1NETi5BbGxvY2F0ZScgcGVybWlzc2lvbnMgb24gJy9zZG4v c3VibmV0cy88c3VibmV0PiciLA0KPiArwqDCoMKgwqDCoMKgwqBkZXNjcmlwdGlvbiA9PiAiT25s eSBsaXN0IGVudHJpZXMgd2hlcmUgeW91IGhhdmUgJ1NETi5BdWRpdCcsDQo+ICdTRE4uVXNlJyBv ciAnU0ROLkFsbG9jYXRlJyBwZXJtaXNzaW9ucyBvbiAnL3Nkbi9zdWJuZXRzLzxzdWJuZXQ+JyIs DQo+IMKgwqDCoMKgwqDCoMKgwqB1c2VyID0+ICdhbGwnLA0KPiDCoMKgwqDCoCB9LA0KPiDCoMKg wqDCoCBwYXJhbWV0ZXJzID0+IHsNCj4gQEAgLTg5LDcgKzg5LDcgQEAgX19QQUNLQUdFX18tPnJl Z2lzdGVyX21ldGhvZCAoew0KPiDCoMKgwqDCoMKgwqDCoMKgbXkgQHNpZHMgPSBQVkU6Ok5ldHdv cms6OlNETjo6U3VibmV0czo6c2RuX3N1Ym5ldHNfaWRzKCRjZmcpOw0KPiDCoMKgwqDCoMKgwqDC oMKgbXkgJHJlcyA9IFtdOw0KPiDCoMKgwqDCoMKgwqDCoMKgZm9yZWFjaCBteSAkaWQgKEBzaWRz KSB7DQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoCBteSAkcHJpdnMgPSBbICdTRE4uQXVkaXQnLCAn U0ROLkFsbG9jYXRlJyBdOw0KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqAgbXkgJHByaXZzID0gWyAn U0ROLkF1ZGl0JywgJ1NETi5Vc2UnLCAnU0ROLkFsbG9jYXRlJyBdOw0KPiDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIG5leHQgaWYgISRycGNlbnYtPmNoZWNrX2FueSgkYXV0aHVzZXIsDQo+ICIvc2Ru L3ZuZXRzLyR2bmV0aWQvc3VibmV0cy8kaWQiLCAkcHJpdnMsIDEpOw0KPiDCoA0KPiDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIG15ICRzY2ZnID0gJiRhcGlfc2RuX3N1Ym5ldHNfY29uZmlnKCRjZmcs ICRpZCk7DQo+IGRpZmYgLS1naXQgYS9zcmMvUFZFL0FQSTIvTmV0d29yay9TRE4vVm5ldHMucG0N Cj4gYi9zcmMvUFZFL0FQSTIvTmV0d29yay9TRE4vVm5ldHMucG0NCj4gaW5kZXggODExYTJlOC4u ZWFhM2EwNCAxMDA2NDQNCj4gLS0tIGEvc3JjL1BWRS9BUEkyL05ldHdvcmsvU0ROL1ZuZXRzLnBt DQo+ICsrKyBiL3NyYy9QVkUvQVBJMi9OZXR3b3JrL1NETi9WbmV0cy5wbQ0KPiBAQCAtNTAsNiAr NTAsMTMgQEAgbXkgJGFwaV9zZG5fdm5ldHNfZGVsZXRlZF9jb25maWcgPSBzdWIgew0KPiDCoMKg wqDCoCB9DQo+IMKgfTsNCj4gwqANCj4gKyMgY2hlY2tzIGFjY2VzcywgYnV0IG1hc2tzIHpvbmUg dG8gYXZvaWQgaW5mbyBsZWFrLi4NCj4gK215ICRjaGVja192bmV0X2FjY2VzcyA9IHN1YiB7DQo+ ICvCoMKgwqAgc3ViICgkcnBjZW52LCAkYXV0aHVzZXIsICR6b25lLCAkdm5ldCwgJHByaXZzKSA9 IEBfOw0KPiArwqDCoMKgICRycGNlbnYtPmNoZWNrX2FueSgkYXV0aHVzZXIsICIvc2RuL3pvbmVz Lzx6b25lPi8kdm5ldCIsICRwcml2cykNCj4gK8KgwqDCoMKgwqDCoMKgaWYgISRycGNlbnYtPmNo ZWNrX2FueSgkYXV0aHVzZXIsICIvc2RuL3pvbmVzLyR6b25lLyR2bmV0IiwNCj4gJHByaXZzLCAx KTsNCj4gK30NCj4gKw0KPiDCoF9fUEFDS0FHRV9fLT5yZWdpc3Rlcl9tZXRob2QgKHsNCj4gwqDC oMKgwqAgbmFtZSA9PiAnaW5kZXgnLA0KPiDCoMKgwqDCoCBwYXRoID0+ICcnLA0KPiBAQCAtNTcs NyArNjQsNyBAQCBfX1BBQ0tBR0VfXy0+cmVnaXN0ZXJfbWV0aG9kICh7DQo+IMKgwqDCoMKgIGRl c2NyaXB0aW9uID0+ICJTRE4gdm5ldHMgaW5kZXguIiwNCj4gwqDCoMKgwqAgcGVybWlzc2lvbnMg PT4gew0KPiDCoMKgwqDCoMKgwqDCoMKgZGVzY3JpcHRpb24gPT4gIk9ubHkgbGlzdCBlbnRyaWVz IHdoZXJlIHlvdSBoYXZlICdTRE4uQXVkaXQnDQo+IG9yICdTRE4uQWxsb2NhdGUnIg0KPiAtwqDC oMKgwqDCoMKgwqDCoMKgwqAgLiIgcGVybWlzc2lvbnMgb24gJy9zZG4vdm5ldHMvPHZuZXQ+JyIs DQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoCAuIiBwZXJtaXNzaW9ucyBvbiAnL3Nkbi96b25lcy88 em9uZT4vPHZuZXQ+JyIsDQo+IMKgwqDCoMKgwqDCoMKgwqB1c2VyID0+ICdhbGwnLA0KPiDCoMKg wqDCoCB9LA0KPiDCoMKgwqDCoCBwYXJhbWV0ZXJzID0+IHsNCj4gQEAgLTEwNCw4ICsxMTEsMTAg QEAgX19QQUNLQUdFX18tPnJlZ2lzdGVyX21ldGhvZCAoew0KPiDCoMKgwqDCoMKgwqDCoMKgbXkg QHNpZHMgPSBQVkU6Ok5ldHdvcms6OlNETjo6Vm5ldHM6OnNkbl92bmV0c19pZHMoJGNmZyk7DQo+ IMKgwqDCoMKgwqDCoMKgwqBteSAkcmVzID0gW107DQo+IMKgwqDCoMKgwqDCoMKgwqBmb3JlYWNo IG15ICRpZCAoQHNpZHMpIHsNCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgIG15ICRwcml2cyA9IFsg J1NETi5BdWRpdCcsICdTRE4uQWxsb2NhdGUnIF07DQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoCBu ZXh0IGlmICEkcnBjZW52LT5jaGVja19hbnkoJGF1dGh1c2VyLCAiL3Nkbi92bmV0cy8kaWQiLA0K PiAkcHJpdnMsIDEpOw0KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqAgbXkgJHByaXZzID0gWyAnU0RO LkF1ZGl0JywgJ1NETi5Vc2UnLCAnU0ROLkFsbG9jYXRlJyBdOw0KPiArwqDCoMKgwqDCoMKgwqDC oMKgwqAgbXkgJHpvbmUgPSAkY2ZnLT57JGlkfS0+e3pvbmV9Ow0KPiArwqDCoMKgwqDCoMKgwqDC oMKgwqAgbmV4dCBpZiAhJHpvbmU7DQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoCBuZXh0IGlmICEk cnBjZW52LT5jaGVja19hbnkoJGF1dGh1c2VyLA0KPiAiL3Nkbi96b25lcy8kem9uZS8kaWQiLCAk cHJpdnMsIDEpOw0KPiDCoA0KPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG15ICRzY2ZnID0gJiRh cGlfc2RuX3ZuZXRzX2NvbmZpZygkY2ZnLCAkaWQpOw0KPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IHB1c2ggQCRyZXMsICRzY2ZnOw0KPiBAQCAtMTIwLDggKzEyOSw5IEBAIF9fUEFDS0FHRV9fLT5y ZWdpc3Rlcl9tZXRob2QgKHsNCj4gwqDCoMKgwqAgbWV0aG9kID0+ICdHRVQnLA0KPiDCoMKgwqDC oCBkZXNjcmlwdGlvbiA9PiAiUmVhZCBzZG4gdm5ldCBjb25maWd1cmF0aW9uLiIsDQo+IMKgwqDC oMKgIHBlcm1pc3Npb25zID0+IHsNCj4gLcKgwqDCoMKgwqDCoMKgY2hlY2sgPT4gWydwZXJtJywg Jy9zZG4vdm5ldHMve3ZuZXR9JywgWydTRE4uQWxsb2NhdGUnXV0sDQo+IC3CoMKgIH0sDQo+ICvC oMKgwqDCoMKgwqDCoGRlc2NyaXB0aW9uID0+ICJSZXF1aXJlcyAnU0ROLkFsbG9jYXRlJyBwZXJt aXNzaW9uIG9uDQo+ICcvc2RuL3pvbmVzLzx6b25lPi88dm5ldD4nIiwNCj4gK8KgwqDCoMKgwqDC oMKgdXNlciA9PiAnYWxsJywNCj4gK8KgwqDCoCB9LA0KPiDCoMKgwqDCoCBwYXJhbWV0ZXJzID0+ IHsNCj4gwqDCoMKgwqDCoMKgwqDCoGFkZGl0aW9uYWxQcm9wZXJ0aWVzID0+IDAsDQo+IMKgwqDC oMKgwqDCoMKgwqBwcm9wZXJ0aWVzID0+IHsNCj4gQEAgLTE0NCw2ICsxNTQsOSBAQCBfX1BBQ0tB R0VfXy0+cmVnaXN0ZXJfbWV0aG9kICh7DQo+IMKgwqDCoMKgIGNvZGUgPT4gc3ViIHsNCj4gwqDC oMKgwqDCoMKgwqDCoG15ICgkcGFyYW0pID0gQF87DQo+IMKgDQo+ICvCoMKgwqDCoMKgwqDCoG15 ICRycGNlbnYgPSBQVkU6OlJQQ0Vudmlyb25tZW50OjpnZXQoKTsNCj4gK8KgwqDCoMKgwqDCoMKg bXkgJGF1dGh1c2VyID0gJHJwY2Vudi0+Z2V0X3VzZXIoKTsNCj4gKw0KPiDCoMKgwqDCoMKgwqDC oMKgbXkgJGNmZyA9IHt9Ow0KPiDCoMKgwqDCoMKgwqDCoMKgaWYoJHBhcmFtLT57cGVuZGluZ30p IHsNCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBteSAkcnVubmluZ19jZmcgPSBQVkU6Ok5ldHdv cms6OlNETjo6cnVubmluZ19jb25maWcoKTsNCj4gQEAgLTE1Niw2ICsxNjksMTEgQEAgX19QQUNL QUdFX18tPnJlZ2lzdGVyX21ldGhvZCAoew0KPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICRjZmcg PSBQVkU6Ok5ldHdvcms6OlNETjo6Vm5ldHM6OmNvbmZpZygpOw0KPiDCoMKgwqDCoMKgwqDCoMKg fQ0KPiDCoA0KPiArwqDCoMKgwqDCoMKgwqBteSAkem9uZSA9ICRjZmctPnskdm5ldH0tPnt6b25l fTsNCj4gK8KgwqDCoMKgwqDCoMKgcmV0dXJuIGlmICEkem9uZTsNCj4gKw0KPiArwqDCoMKgwqDC oMKgwqAkY2hlY2tfdm5ldF9hY2Nlc3MoJHJwY2VudiwgJGF1dGh1c2VyLCAkem9uZSwgJHZuZXQs DQo+IFsnU0ROLkFsbG9jYXRlJ10pOw0KPiArDQo+IMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gJGFw aV9zZG5fdm5ldHNfY29uZmlnLT4oJGNmZywgJHBhcmFtLT57dm5ldH0pOw0KPiDCoMKgwqDCoCB9 fSk7DQo+IMKgDQo+IEBAIC0xNjYsNyArMTg0LDcgQEAgX19QQUNLQUdFX18tPnJlZ2lzdGVyX21l dGhvZCAoew0KPiDCoMKgwqDCoCBtZXRob2QgPT4gJ1BPU1QnLA0KPiDCoMKgwqDCoCBkZXNjcmlw dGlvbiA9PiAiQ3JlYXRlIGEgbmV3IHNkbiB2bmV0IG9iamVjdC4iLA0KPiDCoMKgwqDCoCBwZXJt aXNzaW9ucyA9PiB7DQo+IC3CoMKgwqDCoMKgwqDCoGNoZWNrID0+IFsncGVybScsICcvc2RuL3Zu ZXRzJywgWydTRE4uQWxsb2NhdGUnXV0sDQo+ICvCoMKgwqDCoMKgwqDCoGNoZWNrID0+IFsncGVy bScsICcvc2RuL3pvbmVzL3t6b25lfScsIFsnU0ROLkFsbG9jYXRlJ11dLA0KPiDCoMKgwqDCoCB9 LA0KPiDCoMKgwqDCoCBwYXJhbWV0ZXJzID0+IFBWRTo6TmV0d29yazo6U0ROOjpWbmV0UGx1Z2lu LT5jcmVhdGVTY2hlbWEoKSwNCj4gwqDCoMKgwqAgcmV0dXJucyA9PiB7IHR5cGUgPT4gJ251bGwn IH0sDQo+IEBAIC0yMTAsMjQgKzIyOCwzNiBAQCBfX1BBQ0tBR0VfXy0+cmVnaXN0ZXJfbWV0aG9k ICh7DQo+IMKgwqDCoMKgIG1ldGhvZCA9PiAnUFVUJywNCj4gwqDCoMKgwqAgZGVzY3JpcHRpb24g PT4gIlVwZGF0ZSBzZG4gdm5ldCBvYmplY3QgY29uZmlndXJhdGlvbi4iLA0KPiDCoMKgwqDCoCBw ZXJtaXNzaW9ucyA9PiB7DQo+IC3CoMKgwqDCoMKgwqDCoGNoZWNrID0+IFsncGVybScsICcvc2Ru L3ZuZXRzJywgWydTRE4uQWxsb2NhdGUnXV0sDQo+ICvCoMKgwqDCoMKgwqDCoGRlc2NyaXB0aW9u ID0+ICJSZXF1aXJlcyAnU0ROLkFsbG9jYXRlJyBwZXJtaXNzaW9uIG9uDQo+ICcvc2RuL3pvbmVz Lzx6b25lPi88dm5ldD4nIiwNCj4gK8KgwqDCoMKgwqDCoMKgdXNlciA9PiAnYWxsJywNCj4gwqDC oMKgwqAgfSwNCj4gwqDCoMKgwqAgcGFyYW1ldGVycyA9PiBQVkU6Ok5ldHdvcms6OlNETjo6Vm5l dFBsdWdpbi0+dXBkYXRlU2NoZW1hKCksDQo+IMKgwqDCoMKgIHJldHVybnMgPT4geyB0eXBlID0+ ICdudWxsJyB9LA0KPiDCoMKgwqDCoCBjb2RlID0+IHN1YiB7DQo+IMKgwqDCoMKgwqDCoMKgwqBt eSAoJHBhcmFtKSA9IEBfOw0KPiDCoA0KPiArwqDCoMKgwqDCoMKgwqBteSAkcnBjZW52ID0gUFZF OjpSUENFbnZpcm9ubWVudDo6Z2V0KCk7DQo+ICvCoMKgwqDCoMKgwqDCoG15ICRhdXRodXNlciA9 ICRycGNlbnYtPmdldF91c2VyKCk7DQo+ICsNCj4gwqDCoMKgwqDCoMKgwqDCoG15ICRpZCA9IGV4 dHJhY3RfcGFyYW0oJHBhcmFtLCAndm5ldCcpOw0KPiDCoMKgwqDCoMKgwqDCoMKgbXkgJGRpZ2Vz dCA9IGV4dHJhY3RfcGFyYW0oJHBhcmFtLCAnZGlnZXN0Jyk7DQo+IMKgDQo+IMKgwqDCoMKgwqDC oMKgwqBQVkU6Ok5ldHdvcms6OlNETjo6bG9ja19zZG5fY29uZmlnKHN1YiB7DQo+IMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgbXkgJGNmZyA9IFBWRTo6TmV0d29yazo6U0ROOjpWbmV0czo6Y29uZmln KCk7DQo+IMKgDQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoCBQVkU6OlNlY3Rpb25Db25maWc6OmFz c2VydF9pZl9tb2RpZmllZCgkY2ZnLCAkZGlnZXN0KTsNCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg IG15ICR6b25lID0gJGNmZy0+e2lkc30tPnskaWR9LT57em9uZX0gLy8gJHBhcmFtcy0+e3pvbmV9 Ow0KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqAgIyBUT0RPIGNhbiB0aGlzIGV2ZW4gaGFwcGVuPw0K PiArwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmFpc2VfcGFyYW1fZXhjKHsgem9uZSA9PiAibWlzc2lu ZyB6b25lIiB9KSBpZiAhJHpvbmU7DQo+ICsNCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgICRjaGVj a192bmV0X2FjY2VzcygkcnBjZW52LCAkYXV0aHVzZXIsICR6b25lLCAkaWQsDQo+IFsnU0ROLkFs bG9jYXRlJ10pOw0KPiArDQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAobXkgJG5ld196b25l ID0gJHBhcmFtcy0+e3pvbmV9KSB7DQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAk cnBjZW52LT5jaGVjaygkYXV0aHVzZXIsICIvc2RuL3pvbmVzLyRuZXdfem9uZS8kaWQiLA0KPiBb J1NETi5BbGxvY2F0ZSddKTsNCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgIH0NCj4gwqANCj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgIFBWRTo6U2VjdGlvbkNvbmZpZzo6YXNzZXJ0X2lmX21vZGlmaWVk KCRjZmcsICRkaWdlc3QpOw0KPiDCoA0KPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG15ICRvcHRz ID0gUFZFOjpOZXR3b3JrOjpTRE46OlZuZXRQbHVnaW4tDQo+ID5jaGVja19jb25maWcoJGlkLCAk cGFyYW0sIDAsIDEpOw0KPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmFpc2VfcGFyYW1fZXhjKHsg em9uZSA9PiAibWlzc2luZyB6b25lIn0pIGlmICEkb3B0cy0NCj4gPnt6b25lfTsNCj4gwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBteSAkc3VibmV0cyA9IFBWRTo6TmV0d29yazo6U0ROOjpWbmV0czo6 Z2V0X3N1Ym5ldHMoJGlkKTsNCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByYWlzZV9wYXJhbV9l eGMoeyB6b25lID0+ICJjYW4ndCBjaGFuZ2Ugem9uZSBpZiBzdWJuZXRzDQo+IGV4aXN0cyJ9KSBp Zigkc3VibmV0cyAmJiAkb3B0cy0+e3pvbmV9IG5lICRjZmctPntpZHN9LT57JGlkfS0NCj4gPnt6 b25lfSk7DQo+IMKgDQo+IEBAIC0yNTYsNyArMjg2LDggQEAgX19QQUNLQUdFX18tPnJlZ2lzdGVy X21ldGhvZCAoew0KPiDCoMKgwqDCoCBtZXRob2QgPT4gJ0RFTEVURScsDQo+IMKgwqDCoMKgIGRl c2NyaXB0aW9uID0+ICJEZWxldGUgc2RuIHZuZXQgb2JqZWN0IGNvbmZpZ3VyYXRpb24uIiwNCj4g wqDCoMKgwqAgcGVybWlzc2lvbnMgPT4gew0KPiAtwqDCoMKgwqDCoMKgwqBjaGVjayA9PiBbJ3Bl cm0nLCAnL3Nkbi92bmV0cycsIFsnU0ROLkFsbG9jYXRlJ11dLA0KPiArwqDCoMKgwqDCoMKgwqBk ZXNjcmlwdGlvbiA9PiAiUmVxdWlyZXMgJ1NETi5BbGxvY2F0ZScgcGVybWlzc2lvbiBvbg0KPiAn L3Nkbi96b25lcy88em9uZT4vPHZuZXQ+JyIsDQo+ICvCoMKgwqDCoMKgwqDCoHVzZXIgPT4gJ2Fs bCcsDQo+IMKgwqDCoMKgIH0sDQo+IMKgwqDCoMKgIHBhcmFtZXRlcnMgPT4gew0KPiDCoMKgwqDC oMKgwqDCoMKgYWRkaXRpb25hbFByb3BlcnRpZXMgPT4gMCwNCj4gQEAgLTI3MCwxMCArMzAxLDE5 IEBAIF9fUEFDS0FHRV9fLT5yZWdpc3Rlcl9tZXRob2QgKHsNCj4gwqDCoMKgwqAgY29kZSA9PiBz dWIgew0KPiDCoMKgwqDCoMKgwqDCoMKgbXkgKCRwYXJhbSkgPSBAXzsNCj4gwqANCj4gK8KgwqDC oMKgwqDCoMKgbXkgJHJwY2VudiA9IFBWRTo6UlBDRW52aXJvbm1lbnQ6OmdldCgpOw0KPiArwqDC oMKgwqDCoMKgwqBteSAkYXV0aHVzZXIgPSAkcnBjZW52LT5nZXRfdXNlcigpOw0KPiArDQo+IMKg wqDCoMKgwqDCoMKgwqBteSAkaWQgPSBleHRyYWN0X3BhcmFtKCRwYXJhbSwgJ3ZuZXQnKTsNCj4g wqANCj4gwqDCoMKgwqDCoMKgwqDCoCBQVkU6Ok5ldHdvcms6OlNETjo6bG9ja19zZG5fY29uZmln KHN1YiB7DQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbXkgJGNmZyA9IFBWRTo6TmV0d29yazo6 U0ROOjpWbmV0czo6Y29uZmlnKCk7DQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoCBteSAkem9uZSA9 ICRjZmctPntpZHN9LT57JGlkfS0+e3pvbmV9Ow0KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqAgIyBU T0RPIGNhbiB0aGlzIGV2ZW4gaGFwcGVuPw0KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmFpc2Vf cGFyYW1fZXhjKHsgem9uZSA9PiAibWlzc2luZyB6b25lIiB9KSBpZiAhJHpvbmU7DQo+ICsNCj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgICRjaGVja192bmV0X2FjY2VzcygkcnBjZW52LCAkYXV0aHVz ZXIsICR6b25lLCAkaWQsDQo+IFsnU0ROLkFsbG9jYXRlJ10pOw0KPiArDQo+IMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgbXkgJHNjZmcgPQ0KPiBQVkU6Ok5ldHdvcms6OlNETjo6Vm5ldHM6OnNkbl92 bmV0c19jb25maWcoJGNmZywgJGlkKTsgIyBjaGVjayBpZg0KPiBleGlzdHMNCj4gwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBteSAkdm5ldF9jZmcgPSBQVkU6Ok5ldHdvcms6OlNETjo6Vm5ldHM6OmNv bmZpZygpOw0KPiDCoA0KPiBgYGANCj4gDQo+IE9uIEp1bmUgNywgMjAyMyAyOjAzIHBtLCBBbGV4 YW5kcmUgRGVydW1pZXIgd3JvdGU6DQo+ID4gbmV3IHBhdGggaXMgL3pvbmVzLzx6b25lPi88dm5l dGlkPg0KPiA+IA0KPiA+IFNpZ25lZC1vZmYtYnk6IEFsZXhhbmRyZSBEZXJ1bWllciA8YWRlcnVt aWVyQG9kaXNvLmNvbT4NCj4gPiAtLS0NCj4gPiDCoFBWRS9OZXR3b3JrL1NETi5wbSB8IDQgKyst LQ0KPiA+IMKgMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkN Cj4gPiANCj4gPiBkaWZmIC0tZ2l0IGEvUFZFL05ldHdvcmsvU0ROLnBtIGIvUFZFL05ldHdvcmsv U0ROLnBtDQo+ID4gaW5kZXggYjk1ZGQ1Yi4uMWFkODVlNSAxMDA2NDQNCj4gPiAtLS0gYS9QVkUv TmV0d29yay9TRE4ucG0NCj4gPiArKysgYi9QVkUvTmV0d29yay9TRE4ucG0NCj4gPiBAQCAtMTkw LDEwICsxOTAsMTAgQEAgc3ViIGdldF9sb2NhbF92bmV0cyB7DQo+ID4gwqDCoMKgwqDCoMKgwqDC oG15ICR6b25laWQgPSAkdm5ldC0+e3pvbmV9Ow0KPiA+IMKgwqDCoMKgwqDCoMKgwqBteSAkY29t bWVudHMgPSAkdm5ldC0+e2FsaWFzfTsNCj4gPiDCoA0KPiA+IC3CoMKgwqDCoMKgwqDCoG15ICRw cml2cyA9IFsgJ1NETi5BdWRpdCcsICdTRE4uQWxsb2NhdGUnIF07DQo+ID4gK8KgwqDCoMKgwqDC oMKgbXkgJHByaXZzID0gWyAnU0ROLkF1ZGl0JywgJ1NETi5Vc2UnIF07DQo+ID4gwqANCj4gPiDC oMKgwqDCoMKgwqDCoMKgbmV4dCBpZiAhJHpvbmVpZDsNCj4gPiAtwqDCoMKgwqDCoMKgwqBuZXh0 IGlmICEkcnBjZW52LT5jaGVja19hbnkoJGF1dGh1c2VyLA0KPiA+ICIvc2RuL3pvbmVzLyR6b25l aWQiLCAkcHJpdnMsIDEpICYmICEkcnBjZW52LT5jaGVja19hbnkoJGF1dGh1c2VyLA0KPiA+ICIv c2RuL3ZuZXRzLyR2bmV0aWQiLCAkcHJpdnMsIDEpOw0KPiA+ICvCoMKgwqDCoMKgwqDCoG5leHQg aWYgISRycGNlbnYtPmNoZWNrX3Nkbl9icmlkZ2UoJGF1dGh1c2VyLCAkem9uZWlkLA0KPiA+ICR2 bmV0aWQsICRwcml2cywgMSk7DQo+ID4gwqANCj4gPiDCoMKgwqDCoMKgwqDCoMKgbXkgJHpvbmVf Y29uZmlnID0NCj4gPiBQVkU6Ok5ldHdvcms6OlNETjo6Wm9uZXM6OnNkbl96b25lc19jb25maWco JHpvbmVzX2NmZywgJHpvbmVpZCk7DQo+ID4gwqANCj4gPiAtLSANCj4gPiAyLjMwLjINCj4gPiAN Cj4gPiANCj4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Xw0KPiA+IHB2ZS1kZXZlbCBtYWlsaW5nIGxpc3QNCj4gPiBwdmUtZGV2ZWxAbGlzdHMucHJveG1v eC5jb20NCj4gPiBodHRwczovL2FudGlwaGlzaGluZy5jZXRzaS5mci9wcm94eS92Mz9pPU1VbzBS ekZJUlRWdmJGaFlWR2xvUW9sb1pRajZ0dnF5aHBFUnNuNXo4WjQmcj1jRmRHTkhGalZFTm5XREV6 VVZsaVNZaUs5MkEtOHRQankwT2tyUUJGS3NOdHdGUVBWRlZ3dlBhZ2FGWE9kSXZLJmY9T0RsSk5G UkpUalpCY1dGbGFXeFFhQ0NDZktGRWlQcW5OSWRBLU9GZVJXaFJrWUd2Q29rQXNZOFBkb1BGOHot SWVxNFYzV05wem80R3I4bkU3NllPeFEmdT1odHRwcyUzQS8vbGlzdHMucHJveG1veC5jb20vY2dp LWJpbi9tYWlsbWFuL2xpc3RpbmZvL3B2ZS1kZXZlbCZrPWIxcDUNCj4gPiANCj4gPiANCj4gPiAN Cj4gDQo+IA0KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Xw0KPiBwdmUtZGV2ZWwgbWFpbGluZyBsaXN0DQo+IHB2ZS1kZXZlbEBsaXN0cy5wcm94bW94LmNv bQ0KPiBodHRwczovL2FudGlwaGlzaGluZy5jZXRzaS5mci9wcm94eS92Mz9pPU1VbzBSekZJUlRW dmJGaFlWR2xvUW9sb1pRajZ0dnF5aHBFUnNuNXo4WjQmcj1jRmRHTkhGalZFTm5XREV6VVZsaVNZ aUs5MkEtOHRQankwT2tyUUJGS3NOdHdGUVBWRlZ3dlBhZ2FGWE9kSXZLJmY9T0RsSk5GUkpUalpC Y1dGbGFXeFFhQ0NDZktGRWlQcW5OSWRBLU9GZVJXaFJrWUd2Q29rQXNZOFBkb1BGOHotSWVxNFYz V05wem80R3I4bkU3NllPeFEmdT1odHRwcyUzQS8vbGlzdHMucHJveG1veC5jb20vY2dpLWJpbi9t YWlsbWFuL2xpc3RpbmZvL3B2ZS1kZXZlbCZrPWIxcDUNCj4gDQoNCg==