From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.1 required=3.0 tests=DKIMWL_WL_HIGH,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D0A8DC43381 for ; Fri, 1 Mar 2019 18:59:01 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 7FD5420840 for ; Fri, 1 Mar 2019 18:59:01 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=fb.com header.i=@fb.com header.b="BHdZAChl"; dkim=pass (1024-bit key) header.d=fb.onmicrosoft.com header.i=@fb.onmicrosoft.com header.b="D8MrvXBV" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728290AbfCAS7B (ORCPT ); Fri, 1 Mar 2019 13:59:01 -0500 Received: from mx0a-00082601.pphosted.com ([67.231.145.42]:42212 "EHLO mx0a-00082601.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726195AbfCAS7B (ORCPT ); Fri, 1 Mar 2019 13:59:01 -0500 Received: from pps.filterd (m0109333.ppops.net [127.0.0.1]) by mx0a-00082601.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x21IlqOC027970; Fri, 1 Mar 2019 10:58:32 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-id : content-transfer-encoding : mime-version; s=facebook; bh=30+Tz/ihuoKii9wyjVFtCRiwIYrL192g/Slqwq9x3e8=; b=BHdZAChl1g9bg/HOYDBJEBK2AMP3kO2jCdT/ow50qzXYJsenBiV0vNF20aTAblWUXs1M dVCJZe1jNimQUWB0UDefdo0nBhukXJM25+9SA6xxdP+CvZYaP3EXS8C3OJOJsf9THMDr q7wSL71ue3hRJ0joA8ggO3btRCFt/Q3qBQI= Received: from mail.thefacebook.com ([199.201.64.23]) by mx0a-00082601.pphosted.com with ESMTP id 2qy9b908he-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Fri, 01 Mar 2019 10:58:32 -0800 Received: from prn-hub06.TheFacebook.com (2620:10d:c081:35::130) by prn-hub01.TheFacebook.com (2620:10d:c081:35::125) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.1.1713.5; Fri, 1 Mar 2019 10:58:31 -0800 Received: from NAM01-SN1-obe.outbound.protection.outlook.com (192.168.54.28) by o365-in.thefacebook.com (192.168.16.30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.1.1713.5 via Frontend Transport; Fri, 1 Mar 2019 10:58:30 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.onmicrosoft.com; s=selector1-fb-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=30+Tz/ihuoKii9wyjVFtCRiwIYrL192g/Slqwq9x3e8=; b=D8MrvXBVj7ldPMOr4h7vtRpaYzizcIcnrzv8wN0gEhw/j3e57uCqeXPc+fA7TPbo3y6GTCV/JtECrzOVx5YYltXJtKcE2jeJQWRwJt9/0raUcKPAofNWdi/CbI6IbWjHz7EdRSGTscFSxB4tdL/QWMU7RuD1vteJi3Uv2v+dNEM= Received: from BYAPR15MB3384.namprd15.prod.outlook.com (20.179.59.17) by BYAPR15MB2295.namprd15.prod.outlook.com (52.135.197.33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1643.18; Fri, 1 Mar 2019 18:58:28 +0000 Received: from BYAPR15MB3384.namprd15.prod.outlook.com ([fe80::d051:e43:9e14:b94]) by BYAPR15MB3384.namprd15.prod.outlook.com ([fe80::d051:e43:9e14:b94%4]) with mapi id 15.20.1665.017; Fri, 1 Mar 2019 18:58:28 +0000 From: Yonghong Song To: Andrii Nakryiko CC: Daniel Borkmann , Alexei Starovoitov , "bpf@vger.kernel.org" , "netdev@vger.kernel.org" , "joe@wand.net.nz" , "john.fastabend@gmail.com" , "tgraf@suug.ch" , Andrii Nakryiko , "jakub.kicinski@netronome.com" , "lmb@cloudflare.com" Subject: Re: [PATCH bpf-next v2 5/7] bpf, libbpf: support global data/bss/rodata sections Thread-Topic: [PATCH bpf-next v2 5/7] bpf, libbpf: support global data/bss/rodata sections Thread-Index: AQHUz7wVyvWwKXwnbUuxMyCVCB5fAqX3FN6AgAAKXACAAALMgA== Date: Fri, 1 Mar 2019 18:58:28 +0000 Message-ID: References: <20190228231829.11993-1-daniel@iogearbox.net> <20190228231829.11993-6-daniel@iogearbox.net> <1e21ba74-f236-60b8-f33c-f3f060419197@fb.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: BYAPR01CA0021.prod.exchangelabs.com (2603:10b6:a02:80::34) To BYAPR15MB3384.namprd15.prod.outlook.com (2603:10b6:a03:10e::17) x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [2620:10d:c090:200::3:cd24] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: e162fb85-18f9-4478-c86c-08d69e77e40a x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600127)(711020)(4605104)(2017052603328)(7153060)(7193020);SRVR:BYAPR15MB2295; x-ms-traffictypediagnostic: BYAPR15MB2295: x-ms-exchange-purlcount: 1 x-microsoft-exchange-diagnostics: 1;BYAPR15MB2295;20:84qyj1/jyZI/4aDQcJih2kUdtWkkFODnRpvtFD+7jZrEAmGwwaoSf2mEacxomlQdIr6PQEpn/eJo0Pv5luCVPmi3lSiOU7yedJqQO/WviYp9h+1q/dUTSdgFviwfsutdGJ/q2x/nl9DiC0QFCC/8CSM5jONqeL1UzYiH0ciq9qw= x-microsoft-antispam-prvs: x-forefront-prvs: 09634B1196 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(136003)(396003)(376002)(346002)(39860400002)(366004)(189003)(199004)(186003)(256004)(6486002)(14444005)(5024004)(478600001)(6916009)(106356001)(105586002)(102836004)(5660300002)(6116002)(71200400001)(71190400001)(30864003)(6436002)(6246003)(229853002)(31686004)(6512007)(8936002)(53946003)(6306002)(53936002)(68736007)(93886005)(316002)(966005)(31696002)(4326008)(7736002)(86362001)(446003)(54906003)(476003)(305945005)(52116002)(486006)(386003)(76176011)(2906002)(2616005)(11346002)(14454004)(36756003)(99286004)(25786009)(46003)(53546011)(6506007)(8676002)(81166006)(81156014)(97736004)(579004)(505234006);DIR:OUT;SFP:1102;SCL:1;SRVR:BYAPR15MB2295;H:BYAPR15MB3384.namprd15.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: fb.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: nEGqBEAlc3jg3Gnof64rCNnG48clSIxlxVB1NRoQmmZ9fmiGsbN3ZzZod/10BGLATQFgPpxeT3lb0s3IdMsK34JnUSg0s4qhkhg4KSSIMr8AYCAedqg0RE+rDbZB6GingYXmi9bpYUQTNmWAa3ryGRrlbBn2NxznylVv/72r1+iDavgHJblKwWdxFgBE/Z81gKspCbDmtKP4WB0sswm1ATa2LOIvOv1zOgBkqsJPTJXNJuterEfYfq8+x0Eny/mgoZxZObsvoiYPyaGkRE5c/XfWRzfJmAAX/ZlfpKlTinyJnJ9WW+StB4Am++xUWXFOYRekMJUW7M6dPYfap3b+HnRCJks8xrfIu0+QgN7+1dyU3OOQxDq1CEQOQwQaVBL2U3RF/rwyRpnKsBD6n/p7Sgo1uhPaCYcqUivOwTQrRBo= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: e162fb85-18f9-4478-c86c-08d69e77e40a X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Mar 2019 18:58:28.6464 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 8ae927fe-1255-47a7-a2af-5f3a069daaa2 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR15MB2295 X-OriginatorOrg: fb.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:,, definitions=2019-03-01_13:,, signatures=0 X-Proofpoint-Spam-Reason: safe X-FB-Internal: Safe Sender: bpf-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: bpf@vger.kernel.org DQoNCk9uIDMvMS8xOSAxMDo0OCBBTSwgQW5kcmlpIE5ha3J5aWtvIHdyb3RlOg0KPiBPbiBGcmks IE1hciAxLCAyMDE5IGF0IDEwOjMxIEFNIFlvbmdob25nIFNvbmcgPHloc0BmYi5jb20+IHdyb3Rl Og0KPj4NCj4+DQo+Pg0KPj4gT24gMi8yOC8xOSAzOjE4IFBNLCBEYW5pZWwgQm9ya21hbm4gd3Jv dGU6DQo+Pj4gVGhpcyB3b3JrIGFkZHMgQlBGIGxvYWRlciBzdXBwb3J0IGZvciBnbG9iYWwgZGF0 YSBzZWN0aW9ucw0KPj4+IHRvIGxpYmJwZi4gVGhpcyBhbGxvd3MgdG8gd3JpdGUgQlBGIHByb2dy YW1zIGluIG1vcmUgbmF0dXJhbA0KPj4+IEMtbGlrZSB3YXkgYnkgYmVpbmcgYWJsZSB0byBkZWZp bmUgZ2xvYmFsIHZhcmlhYmxlcyBhbmQgY29uc3QNCj4+PiBkYXRhLg0KPj4+DQo+Pj4gQmFjayBh dCBMUEMgMjAxOCBbMF0gd2UgcHJlc2VudGVkIGEgZmlyc3QgcHJvdG90eXBlIHdoaWNoDQo+Pj4g aW1wbGVtZW50ZWQgc3VwcG9ydCBmb3IgZ2xvYmFsIGRhdGEgc2VjdGlvbnMgYnkgZXh0ZW5kaW5n IEJQRg0KPj4+IHN5c2NhbGwgd2hlcmUgdW5pb24gYnBmX2F0dHIgd291bGQgZ2V0IGFkZGl0aW9u YWwgbWVtb3J5L3NpemUNCj4+PiBwYWlyIGZvciBlYWNoIHNlY3Rpb24gcGFzc2VkIGR1cmluZyBw cm9nIGxvYWQgaW4gb3JkZXIgdG8gbGF0ZXINCj4+PiBhZGQgdGhpcyBiYXNlIGFkZHJlc3MgaW50 byB0aGUgbGRpbW02NCBpbnN0cnVjdGlvbiBhbG9uZyB3aXRoDQo+Pj4gdGhlIHVzZXIgcHJvdmlk ZWQgb2Zmc2V0IHdoZW4gYWNjZXNzaW5nIGEgdmFyaWFibGUuIENvbnNlbnN1cw0KPj4+IGZyb20g TFBDIHdhcyB0aGF0IGZvciBwcm9wZXIgdXBzdHJlYW0gc3VwcG9ydCwgaXQgd291bGQgYmUNCj4+ PiBtb3JlIGRlc2lyYWJsZSB0byB1c2UgbWFwcyBpbnN0ZWFkIG9mIGJwZl9hdHRyIGV4dGVuc2lv biBhcw0KPj4+IHRoaXMgd291bGQgYWxsb3cgZm9yIGludHJvc3BlY3Rpb24gb2YgdGhlc2Ugc2Vj dGlvbnMgYXMgd2VsbA0KPj4+IGFzIHBvdGVudGlhbCBsaWZlIHVwZGF0ZXMgb2YgdGhlaXIgY29u dGVudC4gVGhpcyB3b3JrIGZvbGxvd3MNCj4+PiB0aGlzIHBhdGggYnkgdGFraW5nIHRoZSBmb2xs b3dpbmcgc3RlcHMgZnJvbSBsb2FkZXIgc2lkZToNCj4+Pg0KPj4+ICAgIDEpIEluIGJwZl9vYmpl Y3RfX2VsZl9jb2xsZWN0KCkgc3RlcCB3ZSBwaWNrIHVwICIuZGF0YSIsDQo+Pj4gICAgICAgIi5y b2RhdGEiLCBhbmQgIi5ic3MiIHNlY3Rpb24gaW5mb3JtYXRpb24uDQo+Pj4NCj4+PiAgICAyKSBJ ZiBwcmVzZW50LCBpbiBicGZfb2JqZWN0X19pbml0X2dsb2JhbF9tYXBzKCkgd2UgY3JlYXRlDQo+ Pj4gICAgICAgYSBtYXAgdGhhdCBjb3JyZXNwb25kcyB0byBlYWNoIG9mIHRoZSBwcmVzZW50IHNl Y3Rpb25zLg0KPj4+ICAgICAgIEdpdmVuIHNlY3Rpb24gc2l6ZSBhbmQgYWNjZXNzIHByb3BlcnRp ZXMgY2FuIGRpZmZlciwgYQ0KPj4+ICAgICAgIHNpbmdsZSBlbnRyeSBhcnJheSBtYXAgaXMgY3Jl YXRlZCB3aXRoIHZhbHVlIHNpemUgdGhhdA0KPj4+ICAgICAgIGlzIGNvcnJlc3BvbmRpbmcgdG8g dGhlIEVMRiBzZWN0aW9uIHNpemUgb2YgLmRhdGEsIC5ic3MNCj4+PiAgICAgICBvciAucm9kYXRh LiBJbiB0aGUgbGF0dGVyIGNhc2UsIHRoZSBtYXAgaXMgY3JlYXRlZCBhcw0KPj4+ICAgICAgIHJl YWQtb25seSBmcm9tIHByb2dyYW0gc2lkZSBzdWNoIHRoYXQgdmVyaWZpZXIgcmVqZWN0cw0KPj4+ ICAgICAgIGFueSB3cml0ZSBhdHRlbXB0cyBpbnRvIC5yb2RhdGEuIEluIGEgc3Vic2VxdWVudCBz dGVwLA0KPj4+ICAgICAgIGZvciAuZGF0YSBhbmQgLnJvZGF0YSBzZWN0aW9ucywgdGhlIHNlY3Rp b24gY29udGVudCBpcw0KPj4+ICAgICAgIGNvcGllZCBpbnRvIHRoZSBtYXAgdGhyb3VnaCBicGZf bWFwX3VwZGF0ZV9lbGVtKCkuIEZvcg0KPj4+ICAgICAgIC5ic3MgdGhpcyBpcyBub3QgbmVjZXNz YXJ5IHNpbmNlIGFycmF5IG1hcCBpcyBhbHJlYWR5DQo+Pj4gICAgICAgemVyby1pbml0aWFsaXpl ZCBieSBkZWZhdWx0Lg0KPj4+DQo+Pj4gICAgMykgSW4gYnBmX3Byb2dyYW1fX2NvbGxlY3RfcmVs b2MoKSBzdGVwLCB3ZSByZWNvcmQgdGhlDQo+Pj4gICAgICAgY29ycmVzcG9uZGluZyBtYXAsIGlu c24gaW5kZXgsIGFuZCByZWxvY2F0aW9uIHR5cGUgZm9yDQo+Pj4gICAgICAgdGhlIGdsb2JhbCBk YXRhLg0KPj4+DQo+Pj4gICAgNCkgQW5kIGxhc3QgYnV0IG5vdCBsZWFzdCBpbiB0aGUgYWN0dWFs IHJlbG9jYXRpb24gc3RlcCBpbg0KPj4+ICAgICAgIGJwZl9wcm9ncmFtX19yZWxvY2F0ZSgpLCB3 ZSBtYXJrIHRoZSBsZGltbTY0IGluc3RydWN0aW9uDQo+Pj4gICAgICAgd2l0aCBzcmNfcmVnID0g QlBGX1BTRVVET19NQVBfVkFMVUUgd2hlcmUgaW4gdGhlIGZpcnN0DQo+Pj4gICAgICAgaW1tIGZp ZWxkIHRoZSBtYXAncyBmaWxlIGRlc2NyaXB0b3IgaXMgc3RvcmVkIGFzIHNpbWlsYXJseQ0KPj4+ ICAgICAgIGRvbmUgYXMgaW4gQlBGX1BTRVVET19NQVBfRkQsIGFuZCBpbiB0aGUgc2Vjb25kIGlt bSBmaWVsZA0KPj4+ICAgICAgIChhcyBsZGltbTY0IGlzIDItaW5zbiB3aWRlKSB3ZSBzdG9yZSB0 aGUgYWNjZXNzIG9mZnNldA0KPj4+ICAgICAgIGludG8gdGhlIHNlY3Rpb24uDQo+Pj4NCj4+PiAg ICA1KSBPbiBrZXJuZWwgc2lkZSwgdGhpcyBzcGVjaWFsIG1hcmtlZCBCUEZfUFNFVURPX01BUF9W QUxVRQ0KPj4+ICAgICAgIGxvYWQgd2lsbCB0aGVuIHN0b3JlIHRoZSBhY3R1YWwgdGFyZ2V0IGFk ZHJlc3MgaW4gb3JkZXINCj4+PiAgICAgICB0byBoYXZlIGEgJ21hcC1sb29rdXAnLWZyZWUgYWNj ZXNzLiBUaGF0IGlzLCB0aGUgYWN0dWFsDQo+Pj4gICAgICAgbWFwIHZhbHVlIGJhc2UgYWRkcmVz cyArIG9mZnNldC4gVGhlIGRlc3RpbmF0aW9uIHJlZ2lzdGVyDQo+Pj4gICAgICAgaW4gdGhlIHZl cmlmaWVyIHdpbGwgdGhlbiBiZSBtYXJrZWQgYXMgUFRSX1RPX01BUF9WQUxVRSwNCj4+PiAgICAg ICBjb250YWluaW5nIHRoZSBmaXhlZCBvZmZzZXQgYXMgcmVnLT5vZmYgYW5kIGJhY2tpbmcgQlBG DQo+Pj4gICAgICAgbWFwIGFzIHJlZy0+bWFwX3B0ci4gTWVhbmluZywgaXQncyB0cmVhdGVkIGFz IGFueSBvdGhlcg0KPj4+ICAgICAgIG5vcm1hbCBtYXAgdmFsdWUgZnJvbSB2ZXJpZmljYXRpb24g c2lkZSwgb25seSB3aXRoDQo+Pj4gICAgICAgZWZmaWNpZW50LCBkaXJlY3QgdmFsdWUgYWNjZXNz IGluc3RlYWQgb2YgYWN0dWFsIGNhbGwgdG8NCj4+PiAgICAgICBtYXAgbG9va3VwIGhlbHBlciBh cyBpbiB0aGUgdHlwaWNhbCBjYXNlLg0KPj4+DQo+Pj4gU2ltcGxlIGV4YW1wbGUgZHVtcCBvZiBw cm9ncmFtIHVzaW5nIGdsb2JhbHMgdmFycyBpbiBlYWNoDQo+Pj4gc2VjdGlvbjoNCj4+Pg0KPj4+ ICAgICAjIHJlYWRlbGYgLWEgdGVzdF9nbG9iYWxfZGF0YS5vDQo+Pj4gICAgIFsuLi5dDQo+Pj4g ICAgIFsgNl0gLmJzcyAgICAgICAgICAgICAgTk9CSVRTICAgICAgICAgICAwMDAwMDAwMDAwMDAw MDAwICAwMDAwMDMyOA0KPj4+ICAgICAgICAgIDAwMDAwMDAwMDAwMDAwMTAgIDAwMDAwMDAwMDAw MDAwMDAgIFdBICAgICAgIDAgICAgIDAgICAgIDgNCj4+PiAgICAgWyA3XSAuZGF0YSAgICAgICAg ICAgICBQUk9HQklUUyAgICAgICAgIDAwMDAwMDAwMDAwMDAwMDAgIDAwMDAwMzI4DQo+Pj4gICAg ICAgICAgMDAwMDAwMDAwMDAwMDAxMCAgMDAwMDAwMDAwMDAwMDAwMCAgV0EgICAgICAgMCAgICAg MCAgICAgOA0KPj4+ICAgICBbIDhdIC5yb2RhdGEgICAgICAgICAgIFBST0dCSVRTICAgICAgICAg MDAwMDAwMDAwMDAwMDAwMCAgMDAwMDAzMzgNCj4+PiAgICAgICAgICAwMDAwMDAwMDAwMDAwMDE4 ICAwMDAwMDAwMDAwMDAwMDAwICAgQSAgICAgICAwICAgICAwICAgICA4DQo+Pj4gICAgIFsuLi5d DQo+Pj4gICAgICAgOTU6IDAwMDAwMDAwMDAwMDAwMDAgICAgIDggT0JKRUNUICBMT0NBTCAgREVG QVVMVCAgICA2IHN0YXRpY19ic3MNCj4+PiAgICAgICA5NjogMDAwMDAwMDAwMDAwMDAwOCAgICAg OCBPQkpFQ1QgIExPQ0FMICBERUZBVUxUICAgIDYgc3RhdGljX2JzczINCj4+PiAgICAgICA5Nzog MDAwMDAwMDAwMDAwMDAwMCAgICAgOCBPQkpFQ1QgIExPQ0FMICBERUZBVUxUICAgIDcgc3RhdGlj X2RhdGENCj4+PiAgICAgICA5ODogMDAwMDAwMDAwMDAwMDAwOCAgICAgOCBPQkpFQ1QgIExPQ0FM ICBERUZBVUxUICAgIDcgc3RhdGljX2RhdGEyDQo+Pj4gICAgICAgOTk6IDAwMDAwMDAwMDAwMDAw MDAgICAgIDggT0JKRUNUICBMT0NBTCAgREVGQVVMVCAgICA4IHN0YXRpY19yb2RhdGENCj4+PiAg ICAgIDEwMDogMDAwMDAwMDAwMDAwMDAwOCAgICAgOCBPQkpFQ1QgIExPQ0FMICBERUZBVUxUICAg IDggc3RhdGljX3JvZGF0YTINCj4+PiAgICAgIDEwMTogMDAwMDAwMDAwMDAwMDAxMCAgICAgOCBP QkpFQ1QgIExPQ0FMICBERUZBVUxUICAgIDggc3RhdGljX3JvZGF0YTMNCj4+PiAgICAgWy4uLl0N Cj4+Pg0KPj4+ICAgICAjIGJwZnRvb2wgcHJvZw0KPj4+ICAgICAxMDM6IHNjaGVkX2NscyAgbmFt ZSBsb2FkX3N0YXRpY19kYXQgIHRhZyAzN2E4YjY4MjJmYzM5YTI5ICBncGwNCj4+PiAgICAgICAg ICBsb2FkZWRfYXQgMjAxOS0wMi0yOFQwMjowMjozNSswMDAwICB1aWQgMA0KPj4+ICAgICAgICAg IHhsYXRlZCA3MTJCICBqaXRlZCA0MjZCICBtZW1sb2NrIDQwOTZCICBtYXBfaWRzIDYzLDY0LDY1 LDY2DQo+Pj4gICAgICMgYnBmdG9vbCBtYXAgc2hvdyBpZCA2Mw0KPj4+ICAgICA2MzogYXJyYXkg IG5hbWUgLmJzcyAgZmxhZ3MgMHgwICAgICAgICAgICAgICAgICAgICAgIDwtLSAuYnNzIGFyZWEs IHJ3DQo+Pj4gICAgICAgICBrZXkgNEIgIHZhbHVlIDE2QiAgbWF4X2VudHJpZXMgMSAgbWVtbG9j ayA0MDk2Qg0KPj4+ICAgICAjIGJwZnRvb2wgbWFwIHNob3cgaWQgNjQNCj4+PiAgICAgNjQ6IGFy cmF5ICBuYW1lIC5kYXRhICBmbGFncyAweDAgICAgICAgICAgICAgICAgICAgICA8LS0gLmRhdGEg YXJlYSwgcncNCj4+PiAgICAgICAgIGtleSA0QiAgdmFsdWUgMTZCICBtYXhfZW50cmllcyAxICBt ZW1sb2NrIDQwOTZCDQo+Pj4gICAgICMgYnBmdG9vbCBtYXAgc2hvdyBpZCA2NQ0KPj4+ICAgICA2 NTogYXJyYXkgIG5hbWUgLnJvZGF0YSAgZmxhZ3MgMHg4MCAgICAgICAgICAgICAgICAgIDwtLSAu cm9kYXRhIGFyZWEsIHJvDQo+Pj4gICAgICAgICBrZXkgNEIgIHZhbHVlIDI0QiAgbWF4X2VudHJp ZXMgMSAgbWVtbG9jayA0MDk2Qg0KPj4+DQo+Pj4gICAgICMgYnBmdG9vbCBwcm9nIGR1bXAgeGxh dGVkIGlkIDEwMw0KPj4+ICAgICBpbnQgbG9hZF9zdGF0aWNfZGF0YShzdHJ1Y3QgX19za19idWZm ICogc2tiKToNCj4+PiAgICAgOyBpbnQgbG9hZF9zdGF0aWNfZGF0YShzdHJ1Y3QgX19za19idWZm ICpza2IpDQo+Pj4gICAgICAgIDA6IChiNykgcjEgPSAwDQo+Pj4gICAgIDsga2V5ID0gMDsNCj4+ PiAgICAgICAgMTogKDYzKSAqKHUzMiAqKShyMTAgLTQpID0gcjENCj4+PiAgICAgICAgMjogKGJm KSByNiA9IHIxMA0KPj4+ICAgICA7IGludCBsb2FkX3N0YXRpY19kYXRhKHN0cnVjdCBfX3NrX2J1 ZmYgKnNrYikNCj4+PiAgICAgICAgMzogKDA3KSByNiArPSAtNA0KPj4+ICAgICA7IGJwZl9tYXBf dXBkYXRlX2VsZW0oJnJlc3VsdCwgJmtleSwgJnN0YXRpY19ic3MsIDApOw0KPj4+ICAgICAgICA0 OiAoMTgpIHIxID0gbWFwW2lkOjY2XQ0KPj4+ICAgICAgICA2OiAoYmYpIHIyID0gcjYNCj4+PiAg ICAgICAgNzogKDE4KSByMyA9IG1hcFtpZDo2M11bMF0rMCAgICAgICAgIDwtLSBkaXJlY3Qgc3Rh dGljX2JzcyBhZGRyIGluIC5ic3MgYXJlYQ0KPj4+ICAgICAgICA5OiAoYjcpIHI0ID0gMA0KPj4+ ICAgICAgIDEwOiAoODUpIGNhbGwgYXJyYXlfbWFwX3VwZGF0ZV9lbGVtIzk5ODg4DQo+Pj4gICAg ICAgMTE6IChiNykgcjEgPSAxDQo+Pj4gICAgIDsga2V5ID0gMTsNCj4+PiAgICAgICAxMjogKDYz KSAqKHUzMiAqKShyMTAgLTQpID0gcjENCj4+PiAgICAgOyBicGZfbWFwX3VwZGF0ZV9lbGVtKCZy ZXN1bHQsICZrZXksICZzdGF0aWNfZGF0YSwgMCk7DQo+Pj4gICAgICAgMTM6ICgxOCkgcjEgPSBt YXBbaWQ6NjZdDQo+Pj4gICAgICAgMTU6IChiZikgcjIgPSByNg0KPj4+ICAgICAgIDE2OiAoMTgp IHIzID0gbWFwW2lkOjY0XVswXSswICAgICAgICAgPC0tIGRpcmVjdCBzdGF0aWNfZGF0YSBhZGRy IGluIC5kYXRhIGFyZWENCj4+PiAgICAgICAxODogKGI3KSByNCA9IDANCj4+PiAgICAgICAxOTog KDg1KSBjYWxsIGFycmF5X21hcF91cGRhdGVfZWxlbSM5OTg4OA0KPj4+ICAgICAgIDIwOiAoYjcp IHIxID0gMg0KPj4+ICAgICA7IGtleSA9IDI7DQo+Pj4gICAgICAgMjE6ICg2MykgKih1MzIgKiko cjEwIC00KSA9IHIxDQo+Pj4gICAgIDsgYnBmX21hcF91cGRhdGVfZWxlbSgmcmVzdWx0LCAma2V5 LCAmc3RhdGljX3JvZGF0YSwgMCk7DQo+Pj4gICAgICAgMjI6ICgxOCkgcjEgPSBtYXBbaWQ6NjZd DQo+Pj4gICAgICAgMjQ6IChiZikgcjIgPSByNg0KPj4+ICAgICAgIDI1OiAoMTgpIHIzID0gbWFw W2lkOjY1XVswXSswICAgICAgICAgPC0tIGRpcmVjdCBzdGF0aWNfcm9kYXRhIGFkZHIgaW4gLnJv ZGF0YSBhcmVhDQo+Pj4gICAgICAgMjc6IChiNykgcjQgPSAwDQo+Pj4gICAgICAgMjg6ICg4NSkg Y2FsbCBhcnJheV9tYXBfdXBkYXRlX2VsZW0jOTk4ODgNCj4+PiAgICAgICAyOTogKGI3KSByMSA9 IDMNCj4+PiAgICAgOyBrZXkgPSAzOw0KPj4+ICAgICAgIDMwOiAoNjMpICoodTMyICopKHIxMCAt NCkgPSByMQ0KPj4+ICAgICA7IGJwZl9tYXBfdXBkYXRlX2VsZW0oJnJlc3VsdCwgJmtleSwgJnN0 YXRpY19ic3MyLCAwKTsNCj4+PiAgICAgICAzMTogKDE4KSByNyA9IG1hcFtpZDo2M11bMF0rOCAg ICAgICAgIDwtLS4NCj4+PiAgICAgICAzMzogKDE4KSByMSA9IG1hcFtpZDo2Nl0gICAgICAgICAg ICAgICAgIHwNCj4+PiAgICAgICAzNTogKGJmKSByMiA9IHI2ICAgICAgICAgICAgICAgICAgICAg ICAgIHwNCj4+PiAgICAgICAzNjogKDE4KSByMyA9IG1hcFtpZDo2M11bMF0rOCAgICAgICAgIDwt LSBkaXJlY3Qgc3RhdGljX2JzczIgYWRkciBpbiAuYnNzIGFyZWENCj4+PiAgICAgICAzODogKGI3 KSByNCA9IDANCj4+PiAgICAgICAzOTogKDg1KSBjYWxsIGFycmF5X21hcF91cGRhdGVfZWxlbSM5 OTg4OA0KPj4+ICAgICBbLi4uXQ0KPj4+DQo+Pj4gRm9yIG5vdyAuZGF0YS8ucm9kYXRhLy5ic3Mg bWFwcyBhcmUgbm90IGV4cG9zZWQgdmlhIEFQSSB0byB0aGUNCj4+PiB1c2VyLCBidXQgdGhpcyBj b3VsZCBiZSBkb25lIGluIGEgc3Vic2VxdWVudCBzdGVwLg0KPj4+DQo+Pj4gQmFzZWQgdXBvbiBy ZWNlbnQgZml4IGluIExMVk0sIGNvbW1pdCBjMGRiNmI2YmQ0NDQgKCJbQlBGXSBEb24ndA0KPj4+ IGZhaWwgZm9yIHN0YXRpYyB2YXJpYWJsZXMiKS4NCj4+Pg0KPj4+IEpvaW50IHdvcmsgd2l0aCBK b2UgU3RyaW5nZXIuDQo+Pj4NCj4+PiAgICAgWzBdIExQQyAyMDE4LCBCUEYgdHJhY2ssICJFTEYg cmVsb2NhdGlvbiBmb3Igc3RhdGljIGRhdGEgaW4gQlBGIiwNCj4+PiAgICAgICAgIGh0dHA6Ly92 Z2VyLmtlcm5lbC5vcmcvbHBjLWJwZjIwMTguaHRtbCNzZXNzaW9uLTMNCj4+Pg0KPj4+IFNpZ25l ZC1vZmYtYnk6IERhbmllbCBCb3JrbWFubiA8ZGFuaWVsQGlvZ2VhcmJveC5uZXQ+DQo+Pj4gU2ln bmVkLW9mZi1ieTogSm9lIFN0cmluZ2VyIDxqb2VAd2FuZC5uZXQubno+DQo+Pj4gLS0tDQo+Pj4g ICAgdG9vbHMvaW5jbHVkZS91YXBpL2xpbnV4L2JwZi5oIHwgIDEwICstDQo+Pj4gICAgdG9vbHMv bGliL2JwZi9saWJicGYuYyAgICAgICAgIHwgMjU5ICsrKysrKysrKysrKysrKysrKysrKysrKysr Ky0tLS0tLQ0KPj4+ICAgIDIgZmlsZXMgY2hhbmdlZCwgMjI2IGluc2VydGlvbnMoKyksIDQzIGRl bGV0aW9ucygtKQ0KPj4+DQo+Pj4gZGlmZiAtLWdpdCBhL3Rvb2xzL2luY2x1ZGUvdWFwaS9saW51 eC9icGYuaCBiL3Rvb2xzL2luY2x1ZGUvdWFwaS9saW51eC9icGYuaA0KPj4+IGluZGV4IDg4ODQw NzJlMWE0Ni4uMDRiMjZmNTliNDEzIDEwMDY0NA0KPj4+IC0tLSBhL3Rvb2xzL2luY2x1ZGUvdWFw aS9saW51eC9icGYuaA0KPj4+ICsrKyBiL3Rvb2xzL2luY2x1ZGUvdWFwaS9saW51eC9icGYuaA0K Pj4+IEBAIC0yODcsNyArMjg3LDcgQEAgZW51bSBicGZfYXR0YWNoX3R5cGUgew0KPj4+IFsuLi5d DQo+Pj4gQEAgLTk5OSw4ICsxMTIwLDEwIEBAIGJwZl9wcm9ncmFtX19jb2xsZWN0X3JlbG9jKHN0 cnVjdCBicGZfcHJvZ3JhbSAqcHJvZywgR0VsZl9TaGRyICpzaGRyLA0KPj4+ICAgICAgICAgICAg ICAgICAgICAgICAgIChsb25nIGxvbmcpIChyZWwucl9pbmZvID4+IDMyKSwNCj4+PiAgICAgICAg ICAgICAgICAgICAgICAgICAobG9uZyBsb25nKSBzeW0uc3RfdmFsdWUsIHN5bS5zdF9uYW1lKTsN Cj4+Pg0KPj4+IC0gICAgICAgICAgICAgaWYgKHN5bS5zdF9zaG5keCAhPSBtYXBzX3NobmR4ICYm IHN5bS5zdF9zaG5keCAhPSB0ZXh0X3NobmR4KSB7DQo+Pj4gLSAgICAgICAgICAgICAgICAgICAg IHByX3dhcm5pbmcoIlByb2dyYW0gJyVzJyBjb250YWlucyBub24tbWFwIHJlbGF0ZWQgcmVsbyBk YXRhIHBvaW50aW5nIHRvIHNlY3Rpb24gJXVcbiIsDQo+Pj4gKyAgICAgICAgICAgICBpZiAoc3lt LnN0X3NobmR4ICE9IG1hcHNfc2huZHggJiYgc3ltLnN0X3NobmR4ICE9IHRleHRfc2huZHggJiYN Cj4+PiArICAgICAgICAgICAgICAgICBzeW0uc3Rfc2huZHggIT0gZGF0YV9zaG5keCAmJiBzeW0u c3Rfc2huZHggIT0gcm9kYXRhX3NobmR4ICYmDQo+Pj4gKyAgICAgICAgICAgICAgICAgc3ltLnN0 X3NobmR4ICE9IGJzc19zaG5keCkgew0KPj4+ICsgICAgICAgICAgICAgICAgICAgICBwcl93YXJu aW5nKCJQcm9ncmFtICclcycgY29udGFpbnMgdW5yZWNvZ25pemVkIHJlbG8gZGF0YSBwb2ludGlu ZyB0byBzZWN0aW9uICV1XG4iLA0KPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBwcm9nLT5zZWN0aW9uX25hbWUsIHN5bS5zdF9zaG5keCk7DQo+Pj4gICAgICAgICAgICAgICAg ICAgICAgICByZXR1cm4gLUxJQkJQRl9FUlJOT19fUkVMT0M7DQo+Pj4gICAgICAgICAgICAgICAg fQ0KPj4+IEBAIC0xMDQ1LDYgKzExNjgsMzAgQEAgYnBmX3Byb2dyYW1fX2NvbGxlY3RfcmVsb2Mo c3RydWN0IGJwZl9wcm9ncmFtICpwcm9nLCBHRWxmX1NoZHIgKnNoZHIsDQo+Pj4gICAgICAgICAg ICAgICAgICAgICAgICBwcm9nLT5yZWxvY19kZXNjW2ldLnR5cGUgPSBSRUxPX0xENjQ7DQo+Pj4g ICAgICAgICAgICAgICAgICAgICAgICBwcm9nLT5yZWxvY19kZXNjW2ldLmluc25faWR4ID0gaW5z bl9pZHg7DQo+Pj4gICAgICAgICAgICAgICAgICAgICAgICBwcm9nLT5yZWxvY19kZXNjW2ldLm1h cF9pZHggPSBtYXBfaWR4Ow0KPj4+ICsgICAgICAgICAgICAgfSBlbHNlIGlmIChzeW0uc3Rfc2hu ZHggPT0gZGF0YV9zaG5keCB8fA0KPj4+ICsgICAgICAgICAgICAgICAgICAgICAgICBzeW0uc3Rf c2huZHggPT0gcm9kYXRhX3NobmR4IHx8DQo+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgIHN5 bS5zdF9zaG5keCA9PSBic3Nfc2huZHgpIHsNCj4+PiArICAgICAgICAgICAgICAgICAgICAgaW50 IHR5cGUgPSAoc3ltLnN0X3NobmR4ID09IGRhdGFfc2huZHgpICAgPyBSRUxPX0RBVEEgOg0KPj4+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzeW0uc3Rfc2huZHggPT0gcm9kYXRh X3NobmR4KSA/IFJFTE9fUk9EQVRBIDoNCj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRUxPX0JTUzsNCj4+PiArDQo+ Pj4gKyAgICAgICAgICAgICAgICAgICAgIGZvciAobWFwX2lkeCA9IDA7IG1hcF9pZHggPCBucl9t YXBzX2dsb2JhbDsgbWFwX2lkeCsrKSB7DQo+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaWYgKG1hcHNfZ2xvYmFsW21hcF9pZHhdLmdsb2JhbF90eXBlID09IHR5cGUpIHsNCj4+PiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByX2RlYnVnKCJyZWxvY2F0aW9u OiBmaW5kIG1hcCAlemQgKCVzKSBmb3IgaW5zbiAldVxuIiwNCj4+PiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcF9pZHgsIG1hcHNfZ2xvYmFsW21hcF9p ZHhdLm5hbWUsIGluc25faWR4KTsNCj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGJyZWFrOw0KPj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCj4+PiAr ICAgICAgICAgICAgICAgICAgICAgfQ0KPj4+ICsNCj4+PiArICAgICAgICAgICAgICAgICAgICAg aWYgKG1hcF9pZHggPj0gbnJfbWFwc19nbG9iYWwpIHsNCj4+PiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBwcl93YXJuaW5nKCJicGYgcmVsb2NhdGlvbjogbWFwX2lkeCAlZCBsYXJnZSB0 aGFuICVkXG4iLA0KPj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KGludCltYXBfaWR4LCAoaW50KW5yX21hcHNfZ2xvYmFsIC0gMSk7DQo+Pj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcmV0dXJuIC1MSUJCUEZfRVJSTk9fX1JFTE9DOw0KPj4+ICsgICAg ICAgICAgICAgICAgICAgICB9DQo+Pj4gKw0KPj4+ICsgICAgICAgICAgICAgICAgICAgICBwcm9n LT5yZWxvY19kZXNjW2ldLnR5cGUgPSB0eXBlOw0KPj4+ICsgICAgICAgICAgICAgICAgICAgICBw cm9nLT5yZWxvY19kZXNjW2ldLmluc25faWR4ID0gaW5zbl9pZHg7DQo+Pj4gKyAgICAgICAgICAg ICAgICAgICAgIHByb2ctPnJlbG9jX2Rlc2NbaV0ubWFwX2lkeCA9IG1hcF9pZHg7DQo+Pj4gICAg ICAgICAgICAgICAgfQ0KPj4+ICAgICAgICB9DQo+Pj4gICAgICAgIHJldHVybiAwOw0KPj4+IEBA IC0xMTc2LDE1ICsxMzIzLDU4IEBAIGJwZl9vYmplY3RfX3Byb2JlX2NhcHMoc3RydWN0IGJwZl9v YmplY3QgKm9iaikNCj4+PiAgICB9DQo+Pj4NCj4+PiAgICBzdGF0aWMgaW50DQo+PiBbLi4uXQ0K Pj4+ICsNCj4+PiArc3RhdGljIGludA0KPj4+ICticGZfb2JqZWN0X19jcmVhdGVfbWFwcyhzdHJ1 Y3QgYnBmX29iamVjdCAqb2JqKQ0KPj4+ICt7DQo+Pj4gICAgICAgIHVuc2lnbmVkIGludCBpOw0K Pj4+ICAgICAgICBpbnQgZXJyOw0KPj4+DQo+Pj4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBvYmot Pm5yX21hcHM7IGkrKykgew0KPj4+ICAgICAgICAgICAgICAgIHN0cnVjdCBicGZfbWFwICptYXAg PSAmb2JqLT5tYXBzW2ldOw0KPj4+IC0gICAgICAgICAgICAgc3RydWN0IGJwZl9tYXBfZGVmICpk ZWYgPSAmbWFwLT5kZWY7DQo+Pj4gICAgICAgICAgICAgICAgY2hhciAqY3AsIGVycm1zZ1tTVFJF UlJfQlVGU0laRV07DQo+Pj4gICAgICAgICAgICAgICAgaW50ICpwZmQgPSAmbWFwLT5mZDsNCj4+ Pg0KPj4+IEBAIC0xMTkzLDQxICsxMzgzLDcgQEAgYnBmX29iamVjdF9fY3JlYXRlX21hcHMoc3Ry dWN0IGJwZl9vYmplY3QgKm9iaikNCj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG1hcC0+bmFtZSwgbWFwLT5mZCk7DQo+Pj4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51 ZTsNCj4+PiAgICAgICAgICAgICAgICB9DQo+Pj4gLQ0KPj4+IC0gICAgICAgICAgICAgaWYgKG9i ai0+Y2Fwcy5uYW1lKQ0KPj4+IC0gICAgICAgICAgICAgICAgICAgICBjcmVhdGVfYXR0ci5uYW1l ID0gbWFwLT5uYW1lOw0KPj4+IC0gICAgICAgICAgICAgY3JlYXRlX2F0dHIubWFwX2lmaW5kZXgg PSBtYXAtPm1hcF9pZmluZGV4Ow0KPj4+IC0gICAgICAgICAgICAgY3JlYXRlX2F0dHIubWFwX3R5 cGUgPSBkZWYtPnR5cGU7DQo+Pj4gLSAgICAgICAgICAgICBjcmVhdGVfYXR0ci5tYXBfZmxhZ3Mg PSBkZWYtPm1hcF9mbGFnczsNCj4+PiAtICAgICAgICAgICAgIGNyZWF0ZV9hdHRyLmtleV9zaXpl ID0gZGVmLT5rZXlfc2l6ZTsNCj4+PiAtICAgICAgICAgICAgIGNyZWF0ZV9hdHRyLnZhbHVlX3Np emUgPSBkZWYtPnZhbHVlX3NpemU7DQo+Pj4gLSAgICAgICAgICAgICBjcmVhdGVfYXR0ci5tYXhf ZW50cmllcyA9IGRlZi0+bWF4X2VudHJpZXM7DQo+Pj4gLSAgICAgICAgICAgICBjcmVhdGVfYXR0 ci5idGZfZmQgPSAwOw0KPj4+IC0gICAgICAgICAgICAgY3JlYXRlX2F0dHIuYnRmX2tleV90eXBl X2lkID0gMDsNCj4+PiAtICAgICAgICAgICAgIGNyZWF0ZV9hdHRyLmJ0Zl92YWx1ZV90eXBlX2lk ID0gMDsNCj4+PiAtICAgICAgICAgICAgIGlmIChicGZfbWFwX3R5cGVfX2lzX21hcF9pbl9tYXAo ZGVmLT50eXBlKSAmJg0KPj4+IC0gICAgICAgICAgICAgICAgIG1hcC0+aW5uZXJfbWFwX2ZkID49 IDApDQo+Pj4gLSAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZV9hdHRyLmlubmVyX21hcF9mZCA9 IG1hcC0+aW5uZXJfbWFwX2ZkOw0KPj4+IC0NCj4+PiAtICAgICAgICAgICAgIGlmIChvYmotPmJ0 ZiAmJiAhYnBmX21hcF9maW5kX2J0Zl9pbmZvKG1hcCwgb2JqLT5idGYpKSB7DQo+Pj4gLSAgICAg ICAgICAgICAgICAgICAgIGNyZWF0ZV9hdHRyLmJ0Zl9mZCA9IGJ0Zl9fZmQob2JqLT5idGYpOw0K Pj4+IC0gICAgICAgICAgICAgICAgICAgICBjcmVhdGVfYXR0ci5idGZfa2V5X3R5cGVfaWQgPSBt YXAtPmJ0Zl9rZXlfdHlwZV9pZDsNCj4+PiAtICAgICAgICAgICAgICAgICAgICAgY3JlYXRlX2F0 dHIuYnRmX3ZhbHVlX3R5cGVfaWQgPSBtYXAtPmJ0Zl92YWx1ZV90eXBlX2lkOw0KPj4+IC0gICAg ICAgICAgICAgfQ0KPj4+IC0NCj4+PiAtICAgICAgICAgICAgICpwZmQgPSBicGZfY3JlYXRlX21h cF94YXR0cigmY3JlYXRlX2F0dHIpOw0KPj4+IC0gICAgICAgICAgICAgaWYgKCpwZmQgPCAwICYm IGNyZWF0ZV9hdHRyLmJ0Zl9rZXlfdHlwZV9pZCkgew0KPj4+IC0gICAgICAgICAgICAgICAgICAg ICBjcCA9IGxpYmJwZl9zdHJlcnJvcl9yKGVycm5vLCBlcnJtc2csIHNpemVvZihlcnJtc2cpKTsN Cj4+PiAtICAgICAgICAgICAgICAgICAgICAgcHJfd2FybmluZygiRXJyb3IgaW4gYnBmX2NyZWF0 ZV9tYXBfeGF0dHIoJXMpOiVzKCVkKS4gUmV0cnlpbmcgd2l0aG91dCBCVEYuXG4iLA0KPj4+IC0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcC0+bmFtZSwgY3AsIGVycm5vKTsNCj4+ PiAtICAgICAgICAgICAgICAgICAgICAgY3JlYXRlX2F0dHIuYnRmX2ZkID0gMDsNCj4+PiAtICAg ICAgICAgICAgICAgICAgICAgY3JlYXRlX2F0dHIuYnRmX2tleV90eXBlX2lkID0gMDsNCj4+PiAt ICAgICAgICAgICAgICAgICAgICAgY3JlYXRlX2F0dHIuYnRmX3ZhbHVlX3R5cGVfaWQgPSAwOw0K Pj4+IC0gICAgICAgICAgICAgICAgICAgICBtYXAtPmJ0Zl9rZXlfdHlwZV9pZCA9IDA7DQo+Pj4g LSAgICAgICAgICAgICAgICAgICAgIG1hcC0+YnRmX3ZhbHVlX3R5cGVfaWQgPSAwOw0KPj4+IC0g ICAgICAgICAgICAgICAgICAgICAqcGZkID0gYnBmX2NyZWF0ZV9tYXBfeGF0dHIoJmNyZWF0ZV9h dHRyKTsNCj4+PiAtICAgICAgICAgICAgIH0NCj4+PiAtDQo+Pj4gKyAgICAgICAgICAgICAqcGZk ID0gYnBmX29iamVjdF9fY3JlYXRlX21hcChvYmosIG1hcCk7DQo+Pj4gICAgICAgICAgICAgICAg aWYgKCpwZmQgPCAwKSB7DQo+Pj4gICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgajsNCj4+ Pg0KPj4+IEBAIC0xNDEyLDYgKzE1NjgsMjQgQEAgYnBmX3Byb2dyYW1fX3JlbG9jYXRlKHN0cnVj dCBicGZfcHJvZ3JhbSAqcHJvZywgc3RydWN0IGJwZl9vYmplY3QgKm9iaikNCj4+PiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwcm9nLT5yZWxv Y19kZXNjW2ldKTsNCj4+PiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnIpDQo+Pj4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBlcnI7DQo+Pj4gKyAgICAgICAgICAg ICB9IGVsc2UgaWYgKHByb2ctPnJlbG9jX2Rlc2NbaV0udHlwZSA9PSBSRUxPX0RBVEEgfHwNCj4+ PiArICAgICAgICAgICAgICAgICAgICAgICAgcHJvZy0+cmVsb2NfZGVzY1tpXS50eXBlID09IFJF TE9fUk9EQVRBIHx8DQo+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgIHByb2ctPnJlbG9jX2Rl c2NbaV0udHlwZSA9PSBSRUxPX0JTUykgew0KPj4+ICsgICAgICAgICAgICAgICAgICAgICBzdHJ1 Y3QgYnBmX2luc24gKmluc25zID0gcHJvZy0+aW5zbnM7DQo+Pj4gKyAgICAgICAgICAgICAgICAg ICAgIGludCBpbnNuX2lkeCwgbWFwX2lkeCwgZGF0YV9vZmY7DQo+Pj4gKw0KPj4+ICsgICAgICAg ICAgICAgICAgICAgICBpbnNuX2lkeCA9IHByb2ctPnJlbG9jX2Rlc2NbaV0uaW5zbl9pZHg7DQo+ Pj4gKyAgICAgICAgICAgICAgICAgICAgIG1hcF9pZHggID0gcHJvZy0+cmVsb2NfZGVzY1tpXS5t YXBfaWR4Ow0KPj4+ICsgICAgICAgICAgICAgICAgICAgICBkYXRhX29mZiA9IGluc25zW2luc25f aWR4XS5pbW07DQo+Pg0KPj4gSSB3YW50IHRvIHBvaW50IHRvIGEgc3VidGxlIGRpZmZlcmVuY2Ug aGVyZSBiZXR3ZWVuIGhhbmRsaW5nIHB1cmUgZ2xvYmFsDQo+PiB2YXJpYWJsZXMgYW5kIHN0YXRp YyBnbG9iYWwgdmFyaWFibGVzLiBUaGUgImltbSIgdmFsdWUgaXMgb25seSBhdmFpbGFibGUNCj4+ IGZvciBzdGF0aWMgdmFyaWFibGVzLiBGb3IgZXhhbXBsZSwNCj4+DQo+PiAtYmFzaC00LjQkIGNh dCBnLmMNCj4+IHN0YXRpYyB2b2xhdGlsZSBsb25nIHNnID0gMjsNCj4+IHN0YXRpYyB2b2xhdGls ZSBpbnQgc2kgPSAzOw0KPj4gbG9uZyBnID0gNDsNCj4+IGludCBpID0gNTsNCj4+IGludCB0ZXN0 KCkgeyByZXR1cm4gc2cgKyBzaSArIGcgKyBpOyB9DQo+PiAtYmFzaC00LjQkDQo+PiAtYmFzaC00 LjQkIGNsYW5nIC10YXJnZXQgYnBmIC1PMiAtYyBnLmMNCj4+DQo+PiAtYmFzaC00LjQkIHJlYWRl bGYgLXMgZy5vDQo+Pg0KPj4NCj4+IFN5bWJvbCB0YWJsZSAnLnN5bXRhYicgY29udGFpbnMgOCBl bnRyaWVzOg0KPj4gICAgICBOdW06ICAgIFZhbHVlICAgICAgICAgIFNpemUgVHlwZSAgICBCaW5k ICAgVmlzICAgICAgTmR4IE5hbWUNCj4+ICAgICAgICAwOiAwMDAwMDAwMDAwMDAwMDAwICAgICAw IE5PVFlQRSAgTE9DQUwgIERFRkFVTFQgIFVORA0KPj4gICAgICAgIDE6IDAwMDAwMDAwMDAwMDAw MDAgICAgIDAgRklMRSAgICBMT0NBTCAgREVGQVVMVCAgQUJTIGcuYw0KPj4gICAgICAgIDI6IDAw MDAwMDAwMDAwMDAwMTAgICAgIDggT0JKRUNUICBMT0NBTCAgREVGQVVMVCAgICA0IHNnDQo+PiAg ICAgICAgMzogMDAwMDAwMDAwMDAwMDAxOCAgICAgNCBPQkpFQ1QgIExPQ0FMICBERUZBVUxUICAg IDQgc2kNCj4+ICAgICAgICA0OiAwMDAwMDAwMDAwMDAwMDAwICAgICAwIFNFQ1RJT04gTE9DQUwg IERFRkFVTFQgICAgNA0KPj4gICAgICAgIDU6IDAwMDAwMDAwMDAwMDAwMDAgICAgIDggT0JKRUNU ICBHTE9CQUwgREVGQVVMVCAgICA0IGcNCj4+ICAgICAgICA2OiAwMDAwMDAwMDAwMDAwMDA4ICAg ICA0IE9CSkVDVCAgR0xPQkFMIERFRkFVTFQgICAgNCBpDQo+PiAgICAgICAgNzogMDAwMDAwMDAw MDAwMDAwMCAgIDEyOCBGVU5DICAgIEdMT0JBTCBERUZBVUxUICAgIDIgdGVzdA0KPj4gLWJhc2gt NC40JA0KPj4gLWJhc2gtNC40JCBsbHZtLXJlYWRlbGYgLXIgZy5vDQo+Pg0KPj4gUmVsb2NhdGlv biBzZWN0aW9uICcucmVsLnRleHQnIGF0IG9mZnNldCAweDFkOCBjb250YWlucyA0IGVudHJpZXM6 DQo+PiAgICAgICBPZmZzZXQgICAgICAgICAgICAgSW5mbyAgICAgICAgICAgICBUeXBlICAgICAg ICAgICAgICAgU3ltYm9sJ3MNCj4+IFZhbHVlICBTeW1ib2wncyBOYW1lDQo+PiAwMDAwMDAwMDAw MDAwMDAwICAwMDAwMDAwNDAwMDAwMDAxIFJfQlBGXzY0XzY0DQo+PiAwMDAwMDAwMDAwMDAwMDAw IC5kYXRhDQo+PiAwMDAwMDAwMDAwMDAwMDE4ICAwMDAwMDAwNDAwMDAwMDAxIFJfQlBGXzY0XzY0 DQo+PiAwMDAwMDAwMDAwMDAwMDAwIC5kYXRhDQo+PiAwMDAwMDAwMDAwMDAwMDM4ICAwMDAwMDAw NTAwMDAwMDAxIFJfQlBGXzY0XzY0ICAgICAgICAgICAgMDAwMDAwMDAwMDAwMDAwMCBnDQo+PiAw MDAwMDAwMDAwMDAwMDU4ICAwMDAwMDAwNjAwMDAwMDAxIFJfQlBGXzY0XzY0ICAgICAgICAgICAg MDAwMDAwMDAwMDAwMDAwOCBpDQo+PiAtYmFzaC00LjQkIGxsdm0tb2JqZHVtcCAtZCBnLm8NCj4+ DQo+PiBnLm86ICAgIGZpbGUgZm9ybWF0IEVMRjY0LUJQRg0KPj4NCj4+IERpc2Fzc2VtYmx5IG9m IHNlY3Rpb24gLnRleHQ6DQo+PiAwMDAwMDAwMDAwMDAwMDAwIHRlc3Q6DQo+PiAgICAgICAgICAw OiAgICAgICAxOCAwMSAwMCAwMCAxMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMA0K Pj4gcjEgPSAxNiBsbA0KPj4gICAgICAgICAgMjogICAgICAgNzkgMTEgMDAgMDAgMDAgMDAgMDAg MDAgICAgICAgICByMSA9ICoodTY0ICopKHIxICsgMCkNCj4+ICAgICAgICAgIDM6ICAgICAgIDE4 IDAyIDAwIDAwIDE4IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwDQo+PiByMiA9IDI0 IGxsDQo+PiAgICAgICAgICA1OiAgICAgICA2MSAyMiAwMCAwMCAwMCAwMCAwMCAwMCAgICAgICAg IHIyID0gKih1MzIgKikocjIgKyAwKQ0KPj4gICAgICAgICAgNjogICAgICAgMGYgMjEgMDAgMDAg MDAgMDAgMDAgMDAgICAgICAgICByMSArPSByMg0KPj4gICAgICAgICAgNzogICAgICAgMTggMDIg MDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDANCj4+IHIyID0gMCBsbA0K Pj4gICAgICAgICAgOTogICAgICAgNzkgMjIgMDAgMDAgMDAgMDAgMDAgMDAgICAgICAgICByMiA9 ICoodTY0ICopKHIyICsgMCkNCj4+ICAgICAgICAgMTA6ICAgICAgIDBmIDIxIDAwIDAwIDAwIDAw IDAwIDAwICAgICAgICAgcjEgKz0gcjINCj4+ICAgICAgICAgMTE6ICAgICAgIDE4IDAyIDAwIDAw IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwDQo+PiByMiA9IDAgbGwNCj4+ICAg ICAgICAgMTM6ICAgICAgIDYxIDIwIDAwIDAwIDAwIDAwIDAwIDAwICAgICAgICAgcjAgPSAqKHUz MiAqKShyMiArIDApDQo+PiAgICAgICAgIDE0OiAgICAgICAwZiAxMCAwMCAwMCAwMCAwMCAwMCAw MCAgICAgICAgIHIwICs9IHIxDQo+PiAgICAgICAgIDE1OiAgICAgICA5NSAwMCAwMCAwMCAwMCAw MCAwMCAwMCAgICAgICAgIGV4aXQNCj4+IC1iYXNoLTQuNCQNCj4+DQo+PiBZb3UgY2FuIHNlZSB0 aGUgYWJvdmUsIHRoZSBub24tc3RhdGljIGdsb2JhbCBhY2Nlc3MgZG9lcyBub3QgaGF2ZSBpdHMN Cj4+IGluLXNlY3Rpb24gb2Zmc2V0IGVuY29kZWQgaW4gdGhlIGluc24gaXRzZWxmLiBUaGUgZGlm ZmVyZW5jZSBpcyBkdWUgdG8NCj4+IGxsdm0gdHJlYXRpbmcgc3RhdGljIGdsb2JhbCBhbmQgbm9u LXN0YXRpYyBnbG9iYWwgZGlmZmVyZW50bHkuDQo+Pg0KPj4gVG8gc3VwcG9ydCBib3RoIGNhc2Vz LCBkdXJpbmcgcmVsb2NhdGlvbiByZWNvcmRpbmcgc3RhZ2UsIHlvdSBjYW4NCj4+IGFsc28gcmVj b3JkOg0KPj4gICAgICAuIHN5bWJvbCBiaW5kaW5nIChHRUxGX1NUX0JJTkQoc3ltLnN0X2luZm8p KSwNCj4+ICAgICAgICBub24tc3RhdGljIGdsb2JhbCBoYXMgYmluZGluZyBTVEJfR0xPQkFMIGFu ZCBzdGF0aWMNCj4+ICAgICAgICBnbG9iYWwgaGFzIGJpbmRpbmcgU1RCX0xPQ0FMDQo+PiAgICAg IC4gc3ltYm9sIHZhbHVlIChzeW0uc3RfdmFsdWUpDQo+Pg0KPj4gRHVyaW5nIHRoZSBhYm92ZSBy ZWxvY2F0aW9uIHJlc29sdXRpb24sIGlmIHN5bWJvbCBiaW5kIGlzIGxvY2FsLCBkbw0KPj4gd2hh dCB5b3UgYWxyZWFkeSBkaWQgaGVyZS4gSWYgc3ltYm9sIGJpbmQgaXMgZ2xvYmFsLCBhc3NpZ24g ZGF0YV9vZmYNCj4+IHdpdGggc3ltYm9sIHZhbHVlLg0KPj4NCj4+IFRoaXMgYXBwbGllZCB0byBi b3RoIC5kYXRhIGFuZCAucm9kYXRhIHNlY3Rpb25zLg0KPj4NCj4+IFRoZSBub24gaW5pdGlhbGl6 ZWQNCj4+IGdsb2JhbCB2YXJpYWJsZSB3aWxsIG5vdCBiZSBpbiBhbnkgYWxsb2NhdGVkIHNlY3Rp b24gaW4gRUxGIGZpbGUsDQo+PiBpdCBpcyBpbiBhIENPTSBzZWN0aW9uIHdoaWNoIGlzIHRvIGJl IGFsbG9jYXRlZCBieSBsb2FkZXIuDQo+PiBTbyB1c2VyIGRlZmluZXMgc29tZSBsaWtlDQo+PiAg ICAgIGludCBnOw0KPj4gYW5kIGxhdGVyIG9uIHVzZXMgaXQuIFJpZ2h0IG5vdywgaXQgd2lsbCBu b3Qgd29yay4gVGhlIHdvcmthcm91bmQNCj4+IGlzICJpbnQgZyA9IDQiLCBvciAic3RhdGljIGlu dCBnIi4gSSBndWVzcyBpdCBzaG91bGQgYmUNCj4+IG9rYXksIHdlIHNob3VsZCBlbmNvdXJhZ2Ug dXNlcnMgdG8gdXNlICJzdGF0aWMiIHZhcmlhYmxlcyBpbnN0ZWFkLg0KPiANCj4gV291bGQgaXQg YmUgcmVhc29uYWJsZSB0byBqdXN0IHBsYWluIGRpc2FibGUgdXNhZ2Ugb2YgdW5pbml0aWFsaXpl ZA0KPiBnbG9iYWwgdmFyaWFibGVzLCBhcyBpdCBraW5kIG9mIGdvZXMgYWdhaW5zdCBCUEYncyBw aGlsb3NvcGh5IHRoYXQNCj4gZXZlcnl0aGluZyBzaG91bGQgYmUgd3JpdHRlbiB0bywgYmVmb3Jl IGNhbiBiZSByZWFkPyBTbyB3aGlsZSB3ZSBjYW4NCj4ganVzdCBpbXBsaWNpdGx5IHplcm8tb3V0 IGV2ZXJ5dGhpbmcgYmVmb3JlaGFuZCwgaXQgbWlnaHQgYmUgYSBnb29kDQo+IGlkZWEgdG8gcmVt aW5kIGFuZCBlbmZvcmNlIHRoYXQgZXhwbGljdGx5Pw0KDQpUaGVyZSB3aWxsIGJlIGEgdmVyaWZp ZXIgZXJyb3IsIHNvIHRoZSBwcm9ncmFtIHdpdGggImludCBnIiB3aWxsIG5vdCANCnJ1biwgdGhl IHNhbWUgYXMgdG9kYXkuDQoNCldlIGNvdWxkIGltcHJvdmUgYnkgZmxhZ2dpbmcgdGhlIGVycm9y IGF0IGNvbXBpbGVyIGVycm9yIG9yIGxpYmJwZiB0aW1lLg0KQnV0IGl0IGlzIG5vdCByZXF1aXJl ZC4gSSBhbSBtZW50aW9uaW5nIGp1c3QgZm9yIGNvbXBsZXRlbmVzcy4NCg0KPiANCj4+DQo+Pj4g Kw0KPj4+ICsgICAgICAgICAgICAgICAgICAgICBpZiAoaW5zbl9pZHggKyAxID49IChpbnQpcHJv Zy0+aW5zbnNfY250KSB7DQo+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJfd2Fy bmluZygicmVsb2NhdGlvbiBvdXQgb2YgcmFuZ2U6ICclcydcbiIsDQo+Pj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9nLT5zZWN0aW9uX25hbWUpOw0KPj4+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtTElCQlBGX0VSUk5PX19SRUxPQzsN Cj4+PiArICAgICAgICAgICAgICAgICAgICAgfQ0KPj4+ICsgICAgICAgICAgICAgICAgICAgICBp bnNuc1tpbnNuX2lkeF0uc3JjX3JlZyA9IEJQRl9QU0VVRE9fTUFQX1ZBTFVFOw0KPj4+ICsgICAg ICAgICAgICAgICAgICAgICBpbnNuc1tpbnNuX2lkeF0uaW1tID0gb2JqLT5tYXBzX2dsb2JhbFtt YXBfaWR4XS5mZDsNCj4+PiArICAgICAgICAgICAgICAgICAgICAgaW5zbnNbaW5zbl9pZHggKyAx XS5pbW0gPSBkYXRhX29mZjsNCj4+PiAgICAgICAgICAgICAgICB9DQo+Pj4gICAgICAgIH0NCj4+ Pg0KPj4+IEBAIC0xNzE3LDYgKzE4OTEsNyBAQCBfX2JwZl9vYmplY3RfX29wZW4oY29uc3QgY2hh ciAqcGF0aCwgdm9pZCAqb2JqX2J1Ziwgc2l6ZV90IG9ial9idWZfc3osDQo+Pj4NCj4+PiAgICAg ICAgQ0hFQ0tfRVJSKGJwZl9vYmplY3RfX2VsZl9pbml0KG9iaiksIGVyciwgb3V0KTsNCj4+PiAg ICAgICAgQ0hFQ0tfRVJSKGJwZl9vYmplY3RfX2NoZWNrX2VuZGlhbm5lc3Mob2JqKSwgZXJyLCBv dXQpOw0KPj4+ICsgICAgIENIRUNLX0VSUihicGZfb2JqZWN0X19wcm9iZV9jYXBzKG9iaiksIGVy ciwgb3V0KTsNCj4+PiAgICAgICAgQ0hFQ0tfRVJSKGJwZl9vYmplY3RfX2VsZl9jb2xsZWN0KG9i aiwgZmxhZ3MpLCBlcnIsIG91dCk7DQo+Pj4gICAgICAgIENIRUNLX0VSUihicGZfb2JqZWN0X19j b2xsZWN0X3JlbG9jKG9iaiksIGVyciwgb3V0KTsNCj4+PiAgICAgICAgQ0hFQ0tfRVJSKGJwZl9v YmplY3RfX3ZhbGlkYXRlKG9iaiwgbmVlZHNfa3ZlciksIGVyciwgb3V0KTsNCj4+PiBAQCAtMTc4 OSw3ICsxOTY0LDggQEAgaW50IGJwZl9vYmplY3RfX3VubG9hZChzdHJ1Y3QgYnBmX29iamVjdCAq b2JqKQ0KPj4+DQo+Pj4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBvYmotPm5yX21hcHM7IGkrKykN Cj4+PiAgICAgICAgICAgICAgICB6Y2xvc2Uob2JqLT5tYXBzW2ldLmZkKTsNCj4+PiAtDQo+Pj4g KyAgICAgZm9yIChpID0gMDsgaSA8IG9iai0+bnJfbWFwc19nbG9iYWw7IGkrKykNCj4+PiArICAg ICAgICAgICAgIHpjbG9zZShvYmotPm1hcHNfZ2xvYmFsW2ldLmZkKTsNCj4+PiAgICAgICAgZm9y IChpID0gMDsgaSA8IG9iai0+bnJfcHJvZ3JhbXM7IGkrKykNCj4+PiAgICAgICAgICAgICAgICBi cGZfcHJvZ3JhbV9fdW5sb2FkKCZvYmotPnByb2dyYW1zW2ldKTsNCj4+Pg0KPj4+IEBAIC0xODEw LDcgKzE5ODYsNiBAQCBpbnQgYnBmX29iamVjdF9fbG9hZChzdHJ1Y3QgYnBmX29iamVjdCAqb2Jq KQ0KPj4+DQo+Pj4gICAgICAgIG9iai0+bG9hZGVkID0gdHJ1ZTsNCj4+Pg0KPj4+IC0gICAgIENI RUNLX0VSUihicGZfb2JqZWN0X19wcm9iZV9jYXBzKG9iaiksIGVyciwgb3V0KTsNCj4+PiAgICAg ICAgQ0hFQ0tfRVJSKGJwZl9vYmplY3RfX2NyZWF0ZV9tYXBzKG9iaiksIGVyciwgb3V0KTsNCj4+ PiAgICAgICAgQ0hFQ0tfRVJSKGJwZl9vYmplY3RfX3JlbG9jYXRlKG9iaiksIGVyciwgb3V0KTsN Cj4+PiAgICAgICAgQ0hFQ0tfRVJSKGJwZl9vYmplY3RfX2xvYWRfcHJvZ3Mob2JqKSwgZXJyLCBv dXQpOw0KPj4+DQo=