From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22206 invoked by alias); 26 Jun 2019 11:07:29 -0000 Mailing-List: contact jit-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Post: List-Help: List-Subscribe: Sender: jit-owner@gcc.gnu.org Received: (qmail 22188 invoked by uid 89); 26 Jun 2019 11:07:29 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Checked: by ClamAV 0.100.3 on sourceware.org X-Virus-Found: No X-Spam-SWARE-Status: No, score=-23.0 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.1 spammy=WIDTH, UD:z, hooks X-Spam-Status: No, score=-23.0 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on sourceware.org X-Spam-Level: X-Spam-User: qpsmtpd, 2 recipients X-HELO: EUR03-VE1-obe.outbound.protection.outlook.com Received: from mail-eopbgr50056.outbound.protection.outlook.com (HELO EUR03-VE1-obe.outbound.protection.outlook.com) (40.107.5.56) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 26 Jun 2019 11:07:24 +0000 ARC-Seal: i=1; a=rsa-sha256; s=testarcselector01; d=microsoft.com; cv=none; b=TlIsh9+2Kvs63Mx8HBruCfOF4KQddVQprrsalVkzHdichvTd7U3cbTt88ziM0OSUCkwvu3kdGXXQ8zPeqGXuDxcWixzHNavqDKUWEQ3D+a9HRhY7Vcv964tF/KPgfS8fjXSHOTDymhR82gO7fWnLUCAPe8XnGwnIcbrHB2W7EcU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=testarcselector01; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=DfWBp5V9YfrttITnOnhQQuqj/CHPt7m36e8g+nB4L3Y=; b=Ffj69qzcFbmxDXwc6QK7q6y/CoEW2tDWyi0xM44Q4meT2f1OE/M0hFwJJG2uNqoiQ09GRs6yOB6qUy+MT4JrgvfOlsjBxW2Av2yriC5taY50qsTBAV06xmsjkzYig6zJmoMLoHJrK3c0sqc9ci7XcqWBIZFQ+5UPmRW0mBkt2QM= ARC-Authentication-Results: i=1; test.office365.com 1;spf=none;dmarc=none;dkim=none;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=DfWBp5V9YfrttITnOnhQQuqj/CHPt7m36e8g+nB4L3Y=; b=UGiAoNn04VFRH/eTB9LEmknG1IIsVwT6sHIpxLdtKlp/7hNa8ousExEzV64uLLPRYha79P0B+qCXeNVdSYr73GD/NnR64GH/VTMWjoN3rGvob69sL32STMAKD9NpSNWDdNGhkuNaWY3KHftGy0GNYzSqtFA0UJbtVMhggFX7X5k= Received: from VE1PR08MB5070.eurprd08.prod.outlook.com (20.179.29.148) by VE1PR08MB4784.eurprd08.prod.outlook.com (10.255.115.204) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2008.16; Wed, 26 Jun 2019 11:07:20 +0000 Received: from VE1PR08MB5070.eurprd08.prod.outlook.com ([fe80::34f5:a093:3356:52f5]) by VE1PR08MB5070.eurprd08.prod.outlook.com ([fe80::34f5:a093:3356:52f5%7]) with mapi id 15.20.2008.014; Wed, 26 Jun 2019 11:07:20 +0000 From: Andrea Corallo To: David Malcolm CC: Andrea Corallo , "gcc-patches@gcc.gnu.org" , "jit@gcc.gnu.org" , nd Subject: Re: [PATCH][gcc] libgccjit: add bitfield support Thread-Topic: [PATCH][gcc] libgccjit: add bitfield support Thread-Index: AQHVGfH2i3Pw/ZC3+E2HQL7V8/ROg6ahhbSAgAmIuICAAF7HAIACfYAA Date: Tue, 01 Jan 2019 00:00:00 -0000 Message-ID: References: <1560865833.3885.8.camel@redhat.com> <1561410326.3885.34.camel@redhat.com> In-Reply-To: <1561410326.3885.34.camel@redhat.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-clientproxiedby: LO2P265CA0117.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:c::33) To VE1PR08MB5070.eurprd08.prod.outlook.com (2603:10a6:803:105::20) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Andrea.Corallo@arm.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [217.140.96.140] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 95c00581-5b97-4091-53e9-08d6fa267506 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(4618075)(2017052603328)(49563074)(7193020);SRVR:VE1PR08MB4784; x-ms-traffictypediagnostic: VE1PR08MB4784: nodisclaimer: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:5236; x-forefront-prvs: 00808B16F3 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(396003)(136003)(366004)(346002)(39860400002)(376002)(51914003)(199004)(189003)(99936001)(256004)(102836004)(186003)(6116002)(305945005)(53936002)(44832011)(7736002)(81166006)(446003)(2616005)(4326008)(229853002)(52116002)(386003)(54906003)(81156014)(486006)(68736007)(6436002)(66066001)(8936002)(316002)(2906002)(99286004)(6246003)(11346002)(72206003)(26005)(6512007)(6486002)(14454004)(478600001)(3846002)(36756003)(76176011)(6506007)(8676002)(64756008)(71190400001)(66446008)(66476007)(66946007)(476003)(86362001)(73956011)(5660300002)(66616009)(71200400001)(25786009)(66556008)(6916009);DIR:OUT;SFP:1101;SCL:1;SRVR:VE1PR08MB4784;H:VE1PR08MB5070.eurprd08.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: C6xj8iIV/MemrO2tJtWNpRH/PcAWIni+0WSdh3+DKsMV9EWt1KK9zy2WUPxT1URMAAitRXB0qIoY7cuiX0peXgK9dhhktMDTJXAb1eVBIvfsu1jaku6up0j/mk1xPU+uNNnCgxXd7E3wRYFW0F7FSem6rYExFpAoRUj1pYKrVnhV8qzflVahS5XrI/hIsSH052DL7TVzMSB5S5EO6iQoD/1csuKRt+2QM8YwOaVUEf57X+mqpQ4rnqd468LL827GMEJbePSbrpFu8GxF11IitRaYaf4Qxeb+tHSiGweTGrqPaI4YZWgolFWuKa9RgtOKo9eHPIQIr8xQcOsIFJdYX65PtvsygagUYWg8BtGJCKzNzzZFeyePCwcNq6TSbKv4czMKKgRHn8REiax23NXMVP374Cn3721t26h0YipQMoM= Content-Type: multipart/mixed; boundary="_002_gkrd0j0a9lvfsfarmcom_" MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-Network-Message-Id: 95c00581-5b97-4091-53e9-08d6fa267506 X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Jun 2019 11:07:20.4240 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: Andrea.Corallo@arm.com X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR08MB4784 X-SW-Source: 2019-q2/txt/msg00014.txt.bz2 --_002_gkrd0j0a9lvfsfarmcom_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Content-length: 3242 SGkgRGF2aWQsDQp0aGFua3MgZm9yIHRoZSBzdWdnZXN0aW9ucy4NClVwZGF0 ZWQgdmVyc2lvbiBmb3IgdGhlIGJpdGZpZWxkIGxpYmdjY2ppdCBzdXBwb3J0 IHBhdGNoIGhlcmUNCmFkZHJlc3NpbmcgY29tbWVudHMuDQoNCnRlc3QtZXJy b3ItZ2NjX2ppdF9jb250ZXh0X25ld19iaXRmaWVsZC1pbnZhbGlkLXdpZHRo LmMgaXMgcmV3b3JrZWQNCmFuZCBub3cgYXNzdW1lIHRoYXQgdGhlIGxvbmcg b2YgdGhlIGNvbXBpbGVyIGNvbXBpbGluZyB0aGUgdGVzdCBpcyBvZg0KdGhl IHNhbWUgc2l6ZSBvZiB0aGUgbGliZ2Njaml0IGxvbmcuDQpJJ20gbm90IHN1 cmUgdGhpcyBhc3N1bXB0aW9uIGlzIHN1ZmZpY2VudCwgaW4gY2FzZSBpcyBu b3Qgd2UgaGF2ZSB0bw0KZmluZCBhbm90aGVyIHdheSBhcm91bmQgdGhpcy4N Cg0KQ2hlY2tlZCB3aXRoIG1ha2UgY2hlY2staml0IHJ1bnMgY2xlYW4uDQoN CkJlc3RzDQoNCiAgQW5kcmVhDQoNCg0KMjAxOS0wNi0yMCAgQW5kcmVhIENv cmFsbG8gYW5kcmVhLmNvcmFsbG9AYXJtLmNvbQ0KDQoqIGRvY3MvdG9waWNz L2NvbXBhdGliaWxpdHkucnN0IChMSUJHQ0NKSVRfQUJJXzEyKTogTmV3IEFC SSB0YWcuDQoqIGRvY3MvdG9waWNzL3R5cGVzLnJzdDogQWRkIGdjY19qaXRf Y29udGV4dF9uZXdfYml0ZmllbGQuDQoqIGppdC1jb21tb24uaCAobmFtZXNw YWNlIHJlY29yZGluZyk6IEFkZCBjbGFzcyBiaXRmaWVsZC4NCiogaml0LXBs YXliYWNrLmM6DQooREVDTF9DX0JJVF9GSUVMRCwgU0VUX0RFQ0xfQ19CSVRf RklFTEQpOiBBZGQgbWFjcm9zLg0KKHBsYXliYWNrOjpjb250ZXh0OjpuZXdf Yml0ZmllbGQpOiBOZXcgbWV0aG9kLg0KKHBsYXliYWNrOjpjb21wb3VuZF90 eXBlOjpzZXRfZmllbGRzKTogQWRkIGJpdGZpZWxkIHN1cHBvcnQuDQoocGxh eWJhY2s6Omx2YWx1ZTo6bWFya19hZGRyZXNzYWJsZSk6IFdhcyBqaXRfbWFy a19hZGRyZXNzYWJsZSBtYWtlIHRoaXMNCmEgbWV0aG9kIG9mIGx2YWx1ZSBw bHVzIHJldHVybiBhIGJvb2wgdG8gY29tbXVuaWNhdGUgc3VjY2Vzcy4NCihw bGF5YmFjazo6bHZhbHVlOjpnZXRfYWRkcmVzcyk6IENoZWNrIGZvciBqaXRf bWFya19hZGRyZXNzYWJsZSByZXR1cm4NCnZhbHVlLg0KKiBqaXQtcGxheWJh Y2suaCAobmV3X2JpdGZpZWxkKTogTmV3IG1ldGhvZC4NCihjbGFzcyBiaXRm aWVsZCk6IE5ldyBjbGFzcy4NCihjbGFzcyBsdmFsdWUpOiBBZGQgaml0X21h cmtfYWRkcmVzc2FibGUgbWV0aG9kLg0KKiBqaXQtcmVjb3JkaW5nLmMgKHJl Y29yZGluZzo6Y29udGV4dDo6bmV3X2JpdGZpZWxkKTogTmV3IG1ldGhvZC4N CihyZWNvcmRpbmc6OmJpdGZpZWxkOjpyZXBsYXlfaW50byk6IE5ldyBtZXRo b2QuDQoocmVjb3JkaW5nOjpiaXRmaWVsZDo6d3JpdGVfdG9fZHVtcCk6IExp a2V3aXNlLg0KKHJlY29yZGluZzo6Yml0ZmllbGQ6Om1ha2VfZGVidWdfc3Ry aW5nKTogTGlrZXdpc2UuDQoocmVjb3JkaW5nOjpiaXRmaWVsZDo6d3JpdGVf cmVwcm9kdWNlcik6IExpa2V3aXNlLg0KKiBqaXQtcmVjb3JkaW5nLmggKGNs YXNzIGNvbnRleHQpOiBBZGQgbmV3X2JpdGZpZWxkIG1ldGhvZC4NCihjbGFz cyBmaWVsZCk6IE1ha2UgaXQgZGVyaXZhYmxlIGJ5IGNsYXNzIGJpdGZpZWxk Lg0KKGNsYXNzIGJpdGZpZWxkKTogQWRkIG5ldyBjbGFzcy4NCiogbGliZ2Nj aml0KysuaCAoY2xhc3MgY29udGV4dCk6IEFkZCBuZXdfYml0ZmllbGQgbWV0 aG9kLg0KKiBsaWJnY2NqaXQuYyAoc3RydWN0IGdjY19qaXRfYml0ZmllbGQp OiBOZXcgc3RydWN0dXJlLg0KKGdjY19qaXRfY29udGV4dF9uZXdfYml0Zmll bGQpOiBOZXcgZnVuY3Rpb24uDQoqIGxpYmdjY2ppdC5oDQooTElCR0NDSklU X0hBVkVfZ2NjX2ppdF9jb250ZXh0X25ld19iaXRmaWVsZCkgTmV3IG1hY3Jv Lg0KKGdjY19qaXRfY29udGV4dF9uZXdfYml0ZmllbGQpOiBOZXcgZnVuY3Rp b24uDQoqIGxpYmdjY2ppdC5tYXAgKExJQkdDQ0pJVF9BQklfMTIpIE5ldyBB QkkgdGFnLg0KDQoNCjIwMTktMDYtMjAgIEFuZHJlYSBDb3JhbGxvIGFuZHJl YS5jb3JhbGxvQGFybS5jb20NCg0KKiBqaXQuZGcvYWxsLW5vbi1mYWlsaW5n LXRlc3RzLmg6IEFkZCB0ZXN0LWFjY2Vzc2luZy1iaXRmaWVsZC5jLg0KKiBq aXQuZGcvdGVzdC1hY2Nlc3NpbmctYml0ZmllbGQuYzogTmV3IHRlc3RjYXNl Lg0KKiBqaXQuZGcvdGVzdC1lcnJvci1nY2Nfaml0X2NvbnRleHRfbmV3X2Jp dGZpZWxkLWludmFsaWQtdHlwZS5jOg0KTGlrZXdpc2UuDQoqIGppdC5kZy90 ZXN0LWVycm9yLWdjY19qaXRfY29udGV4dF9uZXdfYml0ZmllbGQtaW52YWxp ZC13aWR0aC5jOg0KTGlrZXdpc2UuDQoqIGppdC5kZy90ZXN0LWVycm9yLWdj Y19qaXRfbHZhbHVlX2dldF9hZGRyZXNzLWJpdGZpZWxkLmM6DQpMaWtld2lz ZS4NCg== --_002_gkrd0j0a9lvfsfarmcom_ Content-Type: text/x-diff; name="gcc_jit_context_new_bitfield.patch" Content-Description: gcc_jit_context_new_bitfield.patch Content-Disposition: attachment; filename="gcc_jit_context_new_bitfield.patch"; size=26634; creation-date="Wed, 26 Jun 2019 11:07:20 GMT"; modification-date="Wed, 26 Jun 2019 11:07:20 GMT" Content-ID: Content-Transfer-Encoding: base64 Content-length: 36104 ZGlmZiAtLWdpdCBhL2djYy9qaXQvZG9jcy90b3BpY3MvY29tcGF0aWJpbGl0 eS5yc3QgYi9nY2Mvaml0L2RvY3MvdG9waWNzL2NvbXBhdGliaWxpdHkucnN0 DQppbmRleCBhYmVmYTU2Li5kYTY0OTIwIDEwMDY0NA0KLS0tIGEvZ2NjL2pp dC9kb2NzL3RvcGljcy9jb21wYXRpYmlsaXR5LnJzdA0KKysrIGIvZ2NjL2pp dC9kb2NzL3RvcGljcy9jb21wYXRpYmlsaXR5LnJzdA0KQEAgLTE3NywzICsx NzcsOCBAQCBlbnRyeXBvaW50czoNCiAtLS0tLS0tLS0tLS0tLS0tLS0tLQ0K IGBgTElCR0NDSklUX0FCSV8xMWBgIGNvdmVycyB0aGUgYWRkaXRpb24gb2YN CiA6ZnVuYzpgZ2NjX2ppdF9jb250ZXh0X2FkZF9kcml2ZXJfb3B0aW9uYA0K Kw0KK2BgTElCR0NDSklUX0FCSV8xMmBgDQorLS0tLS0tLS0tLS0tLS0tLS0t LS0NCitgYExJQkdDQ0pJVF9BQklfMTJgYCBjb3ZlcnMgdGhlIGFkZGl0aW9u IG9mDQorOmZ1bmM6YGdjY19qaXRfY29udGV4dF9uZXdfYml0ZmllbGRgDQpk aWZmIC0tZ2l0IGEvZ2NjL2ppdC9kb2NzL3RvcGljcy90eXBlcy5yc3QgYi9n Y2Mvaml0L2RvY3MvdG9waWNzL3R5cGVzLnJzdA0KaW5kZXggMWQyZGNkNC4u MzdkOWQwMSAxMDA2NDQNCi0tLSBhL2djYy9qaXQvZG9jcy90b3BpY3MvdHlw ZXMucnN0DQorKysgYi9nY2Mvaml0L2RvY3MvdG9waWNzL3R5cGVzLnJzdA0K QEAgLTI0Nyw2ICsyNDcsMzAgQEAgWW91IGNhbiBtb2RlbCBDIGBzdHJ1Y3Rg IHR5cGVzIGJ5IGNyZWF0aW5nIDpjOnR5cGU6YGdjY19qaXRfc3RydWN0ICpg IGFuZA0KICAgIHVuZGVybHlpbmcgc3RyaW5nLCBzbyBpdCBpcyB2YWxpZCB0 byBwYXNzIGluIGEgcG9pbnRlciB0byBhbiBvbi1zdGFjaw0KICAgIGJ1ZmZl ci4NCiANCisuLiBmdW5jdGlvbjo6IGdjY19qaXRfZmllbGQgKlwNCisgICAg ICAgICAgICAgIGdjY19qaXRfY29udGV4dF9uZXdfYml0ZmllbGQgKGdjY19q aXRfY29udGV4dCAqY3R4dCxcDQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBnY2Nfaml0X2xvY2F0aW9uICpsb2MsXA0K KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Z2NjX2ppdF90eXBlICp0eXBlLFwNCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGludCB3aWR0aCxcDQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFy ICpuYW1lKQ0KKw0KKyAgIENvbnN0cnVjdCBhIG5ldyBiaXQgZmllbGQsIHdp dGggdGhlIGdpdmVuIHR5cGUgd2lkdGggYW5kIG5hbWUuDQorDQorICAgVGhl IHBhcmFtZXRlciBgYG5hbWVgYCBtdXN0IGJlIG5vbi1OVUxMLiAgVGhlIGNh bGwgdGFrZXMgYSBjb3B5IG9mIHRoZQ0KKyAgIHVuZGVybHlpbmcgc3RyaW5n LCBzbyBpdCBpcyB2YWxpZCB0byBwYXNzIGluIGEgcG9pbnRlciB0byBhbiBv bi1zdGFjaw0KKyAgIGJ1ZmZlci4NCisNCisgICBUaGUgcGFyYW1ldGVyIGBg dHlwZWBgIG11c3QgYmUgYW4gaW50ZWdlciB0eXBlLg0KKw0KKyAgIFRoZSBw YXJhbWV0ZXIgYGB3aWR0aGBgIG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2Vy IHRoYXQgZG9lcyBub3QgZXhjZWVkIHRoZQ0KKyAgIHNpemUgb2YgYGB0eXBl YGAuDQorDQorICAgVGhpcyBBUEkgZW50cnlwb2ludCB3YXMgYWRkZWQgaW4g OnJlZjpgTElCR0NDSklUX0FCSV8xMmA7IHlvdSBjYW4gdGVzdA0KKyAgIGZv ciBpdHMgcHJlc2VuY2UgdXNpbmcNCisgICAuLiBjb2RlLWJsb2NrOjogYw0K Kw0KKyAgICAgICNpZmRlZiBMSUJHQ0NKSVRfSEFWRV9nY2Nfaml0X2NvbnRl eHRfbmV3X2JpdGZpZWxkDQorDQogLi4gZnVuY3Rpb246OiBnY2Nfaml0X29i amVjdCAqXA0KICAgICAgICAgICAgICAgZ2NjX2ppdF9maWVsZF9hc19vYmpl Y3QgKGdjY19qaXRfZmllbGQgKmZpZWxkKQ0KIA0KZGlmZiAtLWdpdCBhL2dj Yy9qaXQvaml0LWNvbW1vbi5oIGIvZ2NjL2ppdC9qaXQtY29tbW9uLmgNCmlu ZGV4IDFkOTZjYzMuLmU3NDdkOTYgMTAwNjQ0DQotLS0gYS9nY2Mvaml0L2pp dC1jb21tb24uaA0KKysrIGIvZ2NjL2ppdC9qaXQtY29tbW9uLmgNCkBAIC0x MTksNiArMTE5LDcgQEAgbmFtZXNwYWNlIHJlY29yZGluZyB7DQogCWNsYXNz IHVuaW9uXzsNCiAgICAgICBjbGFzcyB2ZWN0b3JfdHlwZTsNCiAgICAgY2xh c3MgZmllbGQ7DQorICAgICAgY2xhc3MgYml0ZmllbGQ7DQogICAgIGNsYXNz IGZpZWxkczsNCiAgICAgY2xhc3MgZnVuY3Rpb247DQogICAgIGNsYXNzIGJs b2NrOw0KZGlmZiAtLWdpdCBhL2djYy9qaXQvaml0LXBsYXliYWNrLmMgYi9n Y2Mvaml0L2ppdC1wbGF5YmFjay5jDQppbmRleCBiNzQ0OTVjLi5hZThhNzMy IDEwMDY0NA0KLS0tIGEvZ2NjL2ppdC9qaXQtcGxheWJhY2suYw0KKysrIGIv Z2NjL2ppdC9qaXQtcGxheWJhY2suYw0KQEAgLTQ3LDYgKzQ3LDEyIEBAIGFs b25nIHdpdGggR0NDOyBzZWUgdGhlIGZpbGUgQ09QWUlORzMuICBJZiBub3Qg c2VlDQogI2luY2x1ZGUgImppdC1idWlsdGlucy5oIg0KICNpbmNsdWRlICJq aXQtdGVtcGRpci5oIg0KIA0KKy8qIENvbXBhcmUgd2l0aCBnY2MvYy1mYW1p bHkvYy1jb21tb24uaA0KKyAgIFRoaXMgaXMgcmVkZWZpbmVkIGhlcmUgdG8g YXZvaWQgZGVwZW5kaW5nIGZyb20gdGhlIEMgZnJvbnRlbmQuICAqLw0KKyNk ZWZpbmUgREVDTF9KSVRfQklUX0ZJRUxEKE5PREUpIFwNCisgIChERUNMX0xB TkdfRkxBR180IChGSUVMRF9ERUNMX0NIRUNLIChOT0RFKSkgPT0gMSkNCisj ZGVmaW5lIFNFVF9ERUNMX0pJVF9CSVRfRklFTEQoTk9ERSkgXA0KKyAgKERF Q0xfTEFOR19GTEFHXzQgKEZJRUxEX0RFQ0xfQ0hFQ0sgKE5PREUpKSA9IDEp DQogDQogLyogZ2NjOjpqaXQ6OnBsYXliYWNrOjpjb250ZXh0OjpidWlsZF9j YXN0IHVzZXMgdGhlIGNvbnZlcnQuaCBBUEksDQogICAgd2hpY2ggaW4gdHVy biByZXF1aXJlcyB0aGUgZnJvbnRlbmQgdG8gcHJvdmlkZSBhICJjb252ZXJ0 Ig0KQEAgLTI2Myw2ICsyNjksNDYgQEAgbmV3X2ZpZWxkIChsb2NhdGlvbiAq bG9jLA0KICAgcmV0dXJuIG5ldyBmaWVsZCAoZGVjbCk7DQogfQ0KIA0KKy8q IENvbnN0cnVjdCBhIHBsYXliYWNrOjpiaXRmaWVsZCBpbnN0YW5jZSAod3Jh cHBpbmcgYSB0cmVlKS4gICovDQorDQorcGxheWJhY2s6OmZpZWxkICoNCitw bGF5YmFjazo6Y29udGV4dDo6DQorbmV3X2JpdGZpZWxkIChsb2NhdGlvbiAq bG9jLA0KKwkgICAgICB0eXBlICp0eXBlLA0KKwkgICAgICBpbnQgd2lkdGgs DQorCSAgICAgIGNvbnN0IGNoYXIgKm5hbWUpDQorew0KKyAgZ2NjX2Fzc2Vy dCAodHlwZSk7DQorICBnY2NfYXNzZXJ0IChuYW1lKTsNCisgIGdjY19hc3Nl cnQgKHdpZHRoKTsNCisNCisgIC8qIGNvbXBhcmUgd2l0aCBjL2MtZGVjbC5j Omdyb2tmaWVsZCwgIGdyb2tkZWNsYXJhdG9yIGFuZA0KKyAgICAgY2hlY2tf Yml0ZmllbGRfdHlwZV9hbmRfd2lkdGguICAqLw0KKw0KKyAgdHJlZSB0cmVl X3R5cGUgPSB0eXBlLT5hc190cmVlICgpOw0KKyAgZ2NjX2Fzc2VydCAoSU5U RUdSQUxfVFlQRV9QICh0cmVlX3R5cGUpKTsNCisgIHRyZWUgdHJlZV93aWR0 aCA9IGJ1aWxkX2ludF9jc3QgKGludGVnZXJfdHlwZV9ub2RlLCB3aWR0aCk7 DQorICBpZiAoY29tcGFyZV90cmVlX2ludCAodHJlZV93aWR0aCwgVFlQRV9Q UkVDSVNJT04gKHRyZWVfdHlwZSkpID4gMCkNCisgICAgew0KKyAgICAgIGFk ZF9lcnJvciAoDQorCWxvYywNCisJIndpZHRoIG9mIGJpdC1maWVsZCAlcyAo d2lkdGg6ICVpKSBpcyB3aWRlciB0aGFuIGl0cyB0eXBlICh3aWR0aDogJWkp IiwNCisJbmFtZSwgd2lkdGgsIFRZUEVfUFJFQ0lTSU9OICh0cmVlX3R5cGUp KTsNCisgICAgICByZXR1cm4gTlVMTDsNCisgICAgfQ0KKw0KKyAgdHJlZSBk ZWNsID0gYnVpbGRfZGVjbCAoVU5LTk9XTl9MT0NBVElPTiwgRklFTERfREVD TCwNCisJCQkgIGdldF9pZGVudGlmaWVyIChuYW1lKSwgdHlwZS0+YXNfdHJl ZSAoKSk7DQorICBERUNMX05PTkFERFJFU1NBQkxFX1AgKGRlY2wpID0gdHJ1 ZTsNCisgIERFQ0xfSU5JVElBTCAoZGVjbCkgPSB0cmVlX3dpZHRoOw0KKyAg U0VUX0RFQ0xfSklUX0JJVF9GSUVMRCAoZGVjbCk7DQorDQorICBpZiAobG9j KQ0KKyAgICBzZXRfdHJlZV9sb2NhdGlvbiAoZGVjbCwgbG9jKTsNCisNCisg IHJldHVybiBuZXcgZmllbGQgKGRlY2wpOw0KK30NCisNCiAvKiBDb25zdHJ1 Y3QgYSBwbGF5YmFjazo6Y29tcG91bmRfdHlwZSBpbnN0YW5jZSAod3JhcHBp bmcgYSB0cmVlKS4gICovDQogDQogcGxheWJhY2s6OmNvbXBvdW5kX3R5cGUg Kg0KQEAgLTI5NSw4ICszNDEsMTUgQEAgcGxheWJhY2s6OmNvbXBvdW5kX3R5 cGU6OnNldF9maWVsZHMgKGNvbnN0IGF1dG9fdmVjPHBsYXliYWNrOjpmaWVs ZCAqPiAqZmllbGRzKQ0KICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGZp ZWxkcy0+bGVuZ3RoICgpOyBpKyspDQogICAgIHsNCiAgICAgICBmaWVsZCAq ZiA9ICgqZmllbGRzKVtpXTsNCi0gICAgICBERUNMX0NPTlRFWFQgKGYtPmFz X3RyZWUgKCkpID0gdDsNCi0gICAgICBmaWVsZGxpc3QgPSBjaGFpbm9uIChm LT5hc190cmVlICgpLCBmaWVsZGxpc3QpOw0KKyAgICAgIHRyZWUgeCA9IGYt PmFzX3RyZWUgKCk7DQorICAgICAgREVDTF9DT05URVhUICh4KSA9IHQ7DQor ICAgICAgaWYgKERFQ0xfSklUX0JJVF9GSUVMRCAoeCkpDQorCXsNCisJICB1 bnNpZ25lZCBIT1NUX1dJREVfSU5UIHdpZHRoID0gdHJlZV90b191aHdpIChE RUNMX0lOSVRJQUwgKHgpKTsNCisJICBERUNMX1NJWkUgKHgpID0gYml0c2l6 ZV9pbnQgKHdpZHRoKTsNCisJICBERUNMX0JJVF9GSUVMRCAoeCkgPSAxOw0K Kwl9DQorICAgICAgZmllbGRsaXN0ID0gY2hhaW5vbiAoeCwgZmllbGRsaXN0 KTsNCiAgICAgfQ0KICAgZmllbGRsaXN0ID0gbnJldmVyc2UgKGZpZWxkbGlz dCk7DQogICBUWVBFX0ZJRUxEUyAodCkgPSBmaWVsZGxpc3Q7DQpAQCAtMTE5 NywyMCArMTI1MCwzMSBAQCBkZXJlZmVyZW5jZSAobG9jYXRpb24gKmxvYykN CiAgIHJldHVybiBuZXcgbHZhbHVlIChnZXRfY29udGV4dCAoKSwgZGF0dW0p Ow0KIH0NCiANCi0vKiBNYXJrIEVYUCBzYXlpbmcgdGhhdCB3ZSBuZWVkIHRv IGJlIGFibGUgdG8gdGFrZSB0aGUNCisvKiBNYXJrIHRoZSBsdmFsdWUgc2F5 aW5nIHRoYXQgd2UgbmVlZCB0byBiZSBhYmxlIHRvIHRha2UgdGhlDQogICAg YWRkcmVzcyBvZiBpdDsgaXQgc2hvdWxkIG5vdCBiZSBhbGxvY2F0ZWQgaW4g YSByZWdpc3Rlci4NCi0gICBDb21wYXJlIHdpdGggZS5nLiBjL2MtdHlwZWNr LmM6IGNfbWFya19hZGRyZXNzYWJsZS4gICovDQorICAgQ29tcGFyZSB3aXRo IGUuZy4gYy9jLXR5cGVjay5jOiBjX21hcmtfYWRkcmVzc2FibGUgcmVhbGx5 X2F0b21pY19sdmFsdWUuDQorICAgUmV0dXJucyBmYWxzZSBpZiBhIGZhaWx1 cmUgb2NjdXJyZWQgKGFuIGVycm9yIHdpbGwgYWxyZWFkeSBoYXZlIGJlZW4N CisgICBhZGRlZCB0byB0aGUgYWN0aXZlIGNvbnRleHQgZm9yIHRoaXMgY2Fz ZSkuICAqLw0KIA0KLXN0YXRpYyB2b2lkDQotaml0X21hcmtfYWRkcmVzc2Fi bGUgKHRyZWUgZXhwKQ0KK2Jvb2wNCitwbGF5YmFjazo6bHZhbHVlOjoNCitt YXJrX2FkZHJlc3NhYmxlIChsb2NhdGlvbiAqbG9jKQ0KIHsNCi0gIHRyZWUg eCA9IGV4cDsNCisgIHRyZWUgeCA9IGFzX3RyZWUgKCk7Ow0KIA0KICAgd2hp bGUgKDEpDQogICAgIHN3aXRjaCAoVFJFRV9DT0RFICh4KSkNCiAgICAgICB7 DQogICAgICAgY2FzZSBDT01QT05FTlRfUkVGOg0KLQkvKiAod2UgZG9uJ3Qg eWV0IHN1cHBvcnQgYml0ZmllbGRzKSAgKi8NCisJaWYgKERFQ0xfSklUX0JJ VF9GSUVMRCAoVFJFRV9PUEVSQU5EICh4LCAxKSkpDQorCSAgew0KKwkgICAg Z2NjX2Fzc2VydCAoZ2NjOjpqaXQ6OmFjdGl2ZV9wbGF5YmFja19jdHh0KTsN CisJICAgIGdjYzo6aml0OjoNCisJICAgICAgYWN0aXZlX3BsYXliYWNrX2N0 eHQtPmFkZF9lcnJvciAobG9jLA0KKwkJCQkJICAgICAgICJjYW5ub3QgdGFr ZSBhZGRyZXNzIG9mICINCisJCQkJCSAgICAgICAiYml0LWZpZWxkIik7DQor CSAgICByZXR1cm4gZmFsc2U7DQorCSAgfQ0KIAkvKiBmYWxsdGhyb3VnaCAq Lw0KICAgICAgIGNhc2UgQUREUl9FWFBSOg0KICAgICAgIGNhc2UgQVJSQVlf UkVGOg0KQEAgLTEyMjIsNyArMTI4Niw3IEBAIGppdF9tYXJrX2FkZHJlc3Nh YmxlICh0cmVlIGV4cCkNCiAgICAgICBjYXNlIENPTVBPVU5EX0xJVEVSQUxf RVhQUjoNCiAgICAgICBjYXNlIENPTlNUUlVDVE9SOg0KIAlUUkVFX0FERFJF U1NBQkxFICh4KSA9IDE7DQotCXJldHVybjsNCisJcmV0dXJuIHRydWU7DQog DQogICAgICAgY2FzZSBWQVJfREVDTDoNCiAgICAgICBjYXNlIENPTlNUX0RF Q0w6DQpAQCAtMTIzNCw3ICsxMjk4LDcgQEAgaml0X21hcmtfYWRkcmVzc2Fi bGUgKHRyZWUgZXhwKQ0KIAlUUkVFX0FERFJFU1NBQkxFICh4KSA9IDE7DQog CS8qIGZhbGx0aHJvdWdoICovDQogICAgICAgZGVmYXVsdDoNCi0JcmV0dXJu Ow0KKwlyZXR1cm4gdHJ1ZTsNCiAgICAgICB9DQogfQ0KIA0KQEAgLTEyNTEs OCArMTMxNSwxMCBAQCBnZXRfYWRkcmVzcyAobG9jYXRpb24gKmxvYykNCiAg IHRyZWUgcHRyID0gYnVpbGQxIChBRERSX0VYUFIsIHRfcHRydHlwZSwgdF9s dmFsdWUpOw0KICAgaWYgKGxvYykNCiAgICAgZ2V0X2NvbnRleHQgKCktPnNl dF90cmVlX2xvY2F0aW9uIChwdHIsIGxvYyk7DQotICBqaXRfbWFya19hZGRy ZXNzYWJsZSAodF9sdmFsdWUpOw0KLSAgcmV0dXJuIG5ldyBydmFsdWUgKGdl dF9jb250ZXh0ICgpLCBwdHIpOw0KKyAgaWYgKG1hcmtfYWRkcmVzc2FibGUg KGxvYykpDQorICAgIHJldHVybiBuZXcgcnZhbHVlIChnZXRfY29udGV4dCAo KSwgcHRyKTsNCisgIGVsc2UNCisgICAgcmV0dXJuIE5VTEw7DQogfQ0KIA0K IC8qIFRoZSB3cmFwcGVyIHN1YmNsYXNzZXMgYXJlIEdDLW1hbmFnZWQsIGJ1 dCBjYW4gb3duIG5vbi1HQyBtZW1vcnkuDQpkaWZmIC0tZ2l0IGEvZ2NjL2pp dC9qaXQtcGxheWJhY2suaCBiL2djYy9qaXQvaml0LXBsYXliYWNrLmgNCmlu ZGV4IGJjNGRlOWMuLmQ0YjE0OGUgMTAwNjQ0DQotLS0gYS9nY2Mvaml0L2pp dC1wbGF5YmFjay5oDQorKysgYi9nY2Mvaml0L2ppdC1wbGF5YmFjay5oDQpA QCAtNzUsNiArNzUsMTIgQEAgcHVibGljOg0KIAkgICAgIHR5cGUgKnR5cGUs DQogCSAgICAgY29uc3QgY2hhciAqbmFtZSk7DQogDQorICBmaWVsZCAqDQor ICBuZXdfYml0ZmllbGQgKGxvY2F0aW9uICpsb2MsDQorCQl0eXBlICp0eXBl LA0KKwkJaW50IHdpZHRoLA0KKwkJY29uc3QgY2hhciAqbmFtZSk7DQorDQog ICBjb21wb3VuZF90eXBlICoNCiAgIG5ld19jb21wb3VuZF90eXBlIChsb2Nh dGlvbiAqbG9jLA0KIAkJICAgICBjb25zdCBjaGFyICpuYW1lLA0KQEAgLTQy Niw2ICs0MzIsOCBAQCBwcml2YXRlOg0KICAgdHJlZSBtX2lubmVyOw0KIH07 DQogDQorY2xhc3MgYml0ZmllbGQgOiBwdWJsaWMgZmllbGQge307DQorDQog Y2xhc3MgZnVuY3Rpb24gOiBwdWJsaWMgd3JhcHBlcg0KIHsNCiBwdWJsaWM6 DQpAQCAtNjE0LDYgKzYyMiw4IEBAIHB1YmxpYzoNCiAgIHJ2YWx1ZSAqDQog ICBnZXRfYWRkcmVzcyAobG9jYXRpb24gKmxvYyk7DQogDQorcHJpdmF0ZToN CisgIGJvb2wgbWFya19hZGRyZXNzYWJsZSAobG9jYXRpb24gKmxvYyk7DQog fTsNCiANCiBjbGFzcyBwYXJhbSA6IHB1YmxpYyBsdmFsdWUNCkBAIC03MDMs NCArNzEzLDMgQEAgZXh0ZXJuIHBsYXliYWNrOjpjb250ZXh0ICphY3RpdmVf cGxheWJhY2tfY3R4dDsNCiB9IC8vIG5hbWVzcGFjZSBnY2MNCiANCiAjZW5k aWYgLyogSklUX1BMQVlCQUNLX0ggKi8NCi0NCmRpZmYgLS1naXQgYS9nY2Mv aml0L2ppdC1yZWNvcmRpbmcuYyBiL2djYy9qaXQvaml0LXJlY29yZGluZy5j DQppbmRleCBhMzMyZmU4Li40OTVhYzdmIDEwMDY0NA0KLS0tIGEvZ2NjL2pp dC9qaXQtcmVjb3JkaW5nLmMNCisrKyBiL2djYy9qaXQvaml0LXJlY29yZGlu Zy5jDQpAQCAtODcyLDYgKzg3MiwyNCBAQCByZWNvcmRpbmc6OmNvbnRleHQ6 Om5ld19maWVsZCAocmVjb3JkaW5nOjpsb2NhdGlvbiAqbG9jLA0KICAgcmV0 dXJuIHJlc3VsdDsNCiB9DQogDQorLyogQ3JlYXRlIGEgcmVjb3JkaW5nOjpi aXRmaWVsZCBpbnN0YW5jZSBhbmQgYWRkIGl0IHRvIHRoaXMgY29udGV4dCdz IGxpc3QNCisgICBvZiBtZW1lbnRvcy4NCisNCisgICBJbXBsZW1lbnRzIHRo ZSBwb3N0LWVycm9yLWNoZWNraW5nIHBhcnQgb2YNCisgICBnY2Nfaml0X2Nv bnRleHRfbmV3X2JpdGZpZWxkLiAgKi8NCisNCityZWNvcmRpbmc6OmZpZWxk ICoNCityZWNvcmRpbmc6OmNvbnRleHQ6Om5ld19iaXRmaWVsZCAocmVjb3Jk aW5nOjpsb2NhdGlvbiAqbG9jLA0KKwkJCQkgIHJlY29yZGluZzo6dHlwZSAq dHlwZSwNCisJCQkJICBpbnQgd2lkdGgsDQorCQkJCSAgY29uc3QgY2hhciAq bmFtZSkNCit7DQorICByZWNvcmRpbmc6OmZpZWxkICpyZXN1bHQgPQ0KKyAg ICBuZXcgcmVjb3JkaW5nOjpiaXRmaWVsZCAodGhpcywgbG9jLCB0eXBlLCB3 aWR0aCwgbmV3X3N0cmluZyAobmFtZSkpOw0KKyAgcmVjb3JkIChyZXN1bHQp Ow0KKyAgcmV0dXJuIHJlc3VsdDsNCit9DQorDQogLyogQ3JlYXRlIGEgcmVj b3JkaW5nOjpzdHJ1Y3RfIGluc3RhbmNlIGFuZCBhZGQgaXQgdG8gdGhpcyBj b250ZXh0J3MNCiAgICBsaXN0IG9mIG1lbWVudG9zIGFuZCBsaXN0IG9mIGNv bXBvdW5kIHR5cGVzLg0KIA0KQEAgLTI5NjIsNyArMjk4MCw3IEBAIHJlY29y ZGluZzo6ZmllbGQ6OnJlcGxheV9pbnRvIChyZXBsYXllciAqcikNCiAgICBy ZWNvcmRpbmc6Om1lbWVudG86OndyaXRlX3RvX2R1bXAuICBEdW1wIGVhY2gg ZmllbGQNCiAgICBieSBkdW1waW5nIGEgbGluZSBvZiB0aGUgZm9ybToNCiAg ICAgICBUWVBFIE5BTUU7DQotICAgc28gdGhhdCB3ZSBjYW4gYnVpbGQgdXAg YSBzdHJ1Y3QvdW5pb24gZmllbGQtYnlmaWVsZC4gICovDQorICAgc28gdGhh dCB3ZSBjYW4gYnVpbGQgdXAgYSBzdHJ1Y3QvdW5pb24gZmllbGQgYnkgZmll bGQuICAqLw0KIA0KIHZvaWQNCiByZWNvcmRpbmc6OmZpZWxkOjp3cml0ZV90 b19kdW1wIChkdW1wICZkKQ0KQEAgLTI5OTksNiArMzAxNyw2NiBAQCByZWNv cmRpbmc6OmZpZWxkOjp3cml0ZV9yZXByb2R1Y2VyIChyZXByb2R1Y2VyICZy KQ0KIAkgIG1fbmFtZS0+Z2V0X2RlYnVnX3N0cmluZyAoKSk7DQogfQ0KIA0K Ky8qIFRoZSBpbXBsZW1lbnRhdGlvbiBvZiBjbGFzcyBnY2M6OmppdDo6cmVj b3JkaW5nOjpiaXRmaWVsZC4gICovDQorDQorLyogSW1wbGVtZW50YXRpb24g b2YgcHVyZSB2aXJ0dWFsIGhvb2sgcmVjb3JkaW5nOjptZW1lbnRvOjpyZXBs YXlfaW50bw0KKyAgIGZvciByZWNvcmRpbmc6OmJpdGZpZWxkLiAgKi8NCisN Cit2b2lkDQorcmVjb3JkaW5nOjpiaXRmaWVsZDo6cmVwbGF5X2ludG8gKHJl cGxheWVyICpyKQ0KK3sNCisgIHNldF9wbGF5YmFja19vYmogKHItPm5ld19i aXRmaWVsZCAocGxheWJhY2tfbG9jYXRpb24gKHIsIG1fbG9jKSwNCisJCQkJ ICAgICBtX3R5cGUtPnBsYXliYWNrX3R5cGUgKCksDQorCQkJCSAgICAgbV93 aWR0aCwNCisJCQkJICAgICBwbGF5YmFja19zdHJpbmcgKG1fbmFtZSkpKTsN Cit9DQorDQorLyogT3ZlcnJpZGUgdGhlIGRlZmF1bHQgaW1wbGVtZW50YXRp b24gb2YNCisgICByZWNvcmRpbmc6Om1lbWVudG86OndyaXRlX3RvX2R1bXAu ICBEdW1wIGVhY2ggYml0IGZpZWxkDQorICAgYnkgZHVtcGluZyBhIGxpbmUg b2YgdGhlIGZvcm06DQorICAgICAgVFlQRSBOQU1FOldJRFRIOw0KKyAgIHNv IHRoYXQgd2UgY2FuIGJ1aWxkIHVwIGEgc3RydWN0L3VuaW9uIGZpZWxkIGJ5 IGZpZWxkLiAgKi8NCisNCit2b2lkDQorcmVjb3JkaW5nOjpiaXRmaWVsZDo6 d3JpdGVfdG9fZHVtcCAoZHVtcCAmZCkNCit7DQorICBkLndyaXRlICgiICAl cyAlczolZDtcbiIsDQorCSAgIG1fdHlwZS0+Z2V0X2RlYnVnX3N0cmluZyAo KSwNCisJICAgbV9uYW1lLT5jX3N0ciAoKSwNCisJICAgbV93aWR0aCk7DQor fQ0KKw0KKy8qIEltcGxlbWVudGF0aW9uIG9mIHJlY29yZGluZzo6bWVtZW50 bzo6bWFrZV9kZWJ1Z19zdHJpbmcgZm9yDQorICAgcmVzdWx0cyBvZiBuZXdf Yml0ZmllbGQuICAqLw0KKw0KK3JlY29yZGluZzo6c3RyaW5nICoNCityZWNv cmRpbmc6OmJpdGZpZWxkOjptYWtlX2RlYnVnX3N0cmluZyAoKQ0KK3sNCisg IHJldHVybiBzdHJpbmc6OmZyb21fcHJpbnRmIChtX2N0eHQsDQorCQkJICAg ICAgIiVzOiVkIiwNCisJCQkgICAgICBtX25hbWUtPmNfc3RyICgpLCBtX3dp ZHRoKTsNCit9DQorDQorLyogSW1wbGVtZW50YXRpb24gb2YgcmVjb3JkaW5n OjptZW1lbnRvOjp3cml0ZV9yZXByb2R1Y2VyIGZvciBiaXRmaWVsZHMuICAq Lw0KKw0KK3ZvaWQNCityZWNvcmRpbmc6OmJpdGZpZWxkOjp3cml0ZV9yZXBy b2R1Y2VyIChyZXByb2R1Y2VyICZyKQ0KK3sNCisgIGNvbnN0IGNoYXIgKmlk ID0gci5tYWtlX2lkZW50aWZpZXIgKHRoaXMsICJiaXRmaWVsZCIpOw0KKyAg ci53cml0ZSAoIiAgZ2NjX2ppdF9maWVsZCAqJXMgPVxuIg0KKwkgICAiICAg IGdjY19qaXRfY29udGV4dF9uZXdfYml0ZmllbGQgKCVzLFxuIg0KKwkgICAi ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICVzLCAvKiBnY2Nfaml0 X2xvY2F0aW9uICpsb2MgKi9cbiINCisJICAgIiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAlcywgLyogZ2NjX2ppdF90eXBlICp0eXBlLCAqL1xu Ig0KKwkgICAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICVkLCAv KiBpbnQgd2lkdGgsICovXG4iDQorCSAgICIgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJXMpOyAvKiBjb25zdCBjaGFyICpuYW1lICovXG4iLA0K KwkgICBpZCwNCisJICAgci5nZXRfaWRlbnRpZmllciAoZ2V0X2NvbnRleHQg KCkpLA0KKwkgICByLmdldF9pZGVudGlmaWVyIChtX2xvYyksDQorCSAgIHIu Z2V0X2lkZW50aWZpZXJfYXNfdHlwZSAobV90eXBlKSwNCisJICAgbV93aWR0 aCwNCisJICAgbV9uYW1lLT5nZXRfZGVidWdfc3RyaW5nICgpKTsNCit9DQor DQogLyogVGhlIGltcGxlbWVudGF0aW9uIG9mIGNsYXNzIGdjYzo6aml0Ojpy ZWNvcmRpbmc6OmNvbXBvdW5kX3R5cGUgKi8NCiANCiAvKiBUaGUgY29uc3Ry dWN0b3IgZm9yIGdjYzo6aml0OjpyZWNvcmRpbmc6OmNvbXBvdW5kX3R5cGUu ICAqLw0KZGlmZiAtLWdpdCBhL2djYy9qaXQvaml0LXJlY29yZGluZy5oIGIv Z2NjL2ppdC9qaXQtcmVjb3JkaW5nLmgNCmluZGV4IGI5ZjIyNTAuLjEzZWM3 ZWEgMTAwNjQ0DQotLS0gYS9nY2Mvaml0L2ppdC1yZWNvcmRpbmcuaA0KKysr IGIvZ2NjL2ppdC9qaXQtcmVjb3JkaW5nLmgNCkBAIC05NSw2ICs5NSwxMiBA QCBwdWJsaWM6DQogCSAgICAgdHlwZSAqdHlwZSwNCiAJICAgICBjb25zdCBj aGFyICpuYW1lKTsNCiANCisgIGZpZWxkICoNCisgIG5ld19iaXRmaWVsZCAo bG9jYXRpb24gKmxvYywNCisgICAgICAgICAgICAgICAgdHlwZSAqdHlwZSwN CisgICAgICAgICAgICAgICAgaW50IHdpZHRoLA0KKyAgICAgICAgICAgICAg ICBjb25zdCBjaGFyICpuYW1lKTsNCisNCiAgIHN0cnVjdF8gKg0KICAgbmV3 X3N0cnVjdF90eXBlIChsb2NhdGlvbiAqbG9jLA0KIAkJICAgY29uc3QgY2hh ciAqbmFtZSk7DQpAQCAtODIyLDkgKzgyOCw5IEBAIHB1YmxpYzoNCiAgIGNv bXBvdW5kX3R5cGUgKiBnZXRfY29udGFpbmVyICgpIGNvbnN0IHsgcmV0dXJu IG1fY29udGFpbmVyOyB9DQogICB2b2lkIHNldF9jb250YWluZXIgKGNvbXBv dW5kX3R5cGUgKmMpIHsgbV9jb250YWluZXIgPSBjOyB9DQogDQotICB2b2lk IHJlcGxheV9pbnRvIChyZXBsYXllciAqKSBGSU5BTCBPVkVSUklERTsNCisg IHZvaWQgcmVwbGF5X2ludG8gKHJlcGxheWVyICopIE9WRVJSSURFOw0KIA0K LSAgdm9pZCB3cml0ZV90b19kdW1wIChkdW1wICZkKSBGSU5BTCBPVkVSUklE RTsNCisgIHZvaWQgd3JpdGVfdG9fZHVtcCAoZHVtcCAmZCkgT1ZFUlJJREU7 DQogDQogICBwbGF5YmFjazo6ZmllbGQgKg0KICAgcGxheWJhY2tfZmllbGQg KCkgY29uc3QNCkBAIC04MzMsMTYgKzgzOSw0MSBAQCBwdWJsaWM6DQogICB9 DQogDQogcHJpdmF0ZToNCi0gIHN0cmluZyAqIG1ha2VfZGVidWdfc3RyaW5n ICgpIEZJTkFMIE9WRVJSSURFOw0KLSAgdm9pZCB3cml0ZV9yZXByb2R1Y2Vy IChyZXByb2R1Y2VyICZyKSBGSU5BTCBPVkVSUklERTsNCisgIHN0cmluZyAq IG1ha2VfZGVidWdfc3RyaW5nICgpIE9WRVJSSURFOw0KKyAgdm9pZCB3cml0 ZV9yZXByb2R1Y2VyIChyZXByb2R1Y2VyICZyKSBPVkVSUklERTsNCiANCi1w cml2YXRlOg0KK3Byb3RlY3RlZDoNCiAgIGxvY2F0aW9uICptX2xvYzsNCiAg IHR5cGUgKm1fdHlwZTsNCiAgIHN0cmluZyAqbV9uYW1lOw0KICAgY29tcG91 bmRfdHlwZSAqbV9jb250YWluZXI7DQogfTsNCiANCisNCitjbGFzcyBiaXRm aWVsZCA6IHB1YmxpYyBmaWVsZA0KK3sNCitwdWJsaWM6DQorICBiaXRmaWVs ZCAoY29udGV4dCAqY3R4dCwNCisJICAgIGxvY2F0aW9uICpsb2MsDQorCSAg ICB0eXBlICp0eXBlLA0KKwkgICAgaW50IHdpZHRoLA0KKwkgICAgc3RyaW5n ICpuYW1lKQ0KKyAgICA6IGZpZWxkIChjdHh0LCBsb2MsIHR5cGUsIG5hbWUp LA0KKyAgICAgIG1fd2lkdGggKHdpZHRoKQ0KKyAge30NCisNCisgIHZvaWQg cmVwbGF5X2ludG8gKHJlcGxheWVyICopIEZJTkFMIE9WRVJSSURFOw0KKw0K KyAgdm9pZCB3cml0ZV90b19kdW1wIChkdW1wICZkKSBGSU5BTCBPVkVSUklE RTsNCisNCitwcml2YXRlOg0KKyAgc3RyaW5nICogbWFrZV9kZWJ1Z19zdHJp bmcgKCkgRklOQUwgT1ZFUlJJREU7DQorICB2b2lkIHdyaXRlX3JlcHJvZHVj ZXIgKHJlcHJvZHVjZXIgJnIpIEZJTkFMIE9WRVJSSURFOw0KKw0KK3ByaXZh dGU6DQorICBpbnQgbV93aWR0aDsNCit9Ow0KKw0KIC8qIEJhc2UgY2xhc3Mg Zm9yIHN0cnVjdF8gYW5kIHVuaW9uXyAqLw0KIGNsYXNzIGNvbXBvdW5kX3R5 cGUgOiBwdWJsaWMgdHlwZQ0KIHsNCmRpZmYgLS1naXQgYS9nY2Mvaml0L2xp YmdjY2ppdCsrLmggYi9nY2Mvaml0L2xpYmdjY2ppdCsrLmgNCmluZGV4IDU1 YWViY2EuLjBjNWJlNWEgMTAwNjQ0DQotLS0gYS9nY2Mvaml0L2xpYmdjY2pp dCsrLmgNCisrKyBiL2djYy9qaXQvbGliZ2Njaml0KysuaA0KQEAgLTE1Miw2 ICsxNTIsOSBAQCBuYW1lc3BhY2UgZ2Njaml0DQogICAgIGZpZWxkIG5ld19m aWVsZCAodHlwZSB0eXBlXywgY29uc3Qgc3RkOjpzdHJpbmcgJm5hbWUsDQog CQkgICAgIGxvY2F0aW9uIGxvYyA9IGxvY2F0aW9uICgpKTsNCiANCisgICAg ZmllbGQgbmV3X2JpdGZpZWxkICh0eXBlIHR5cGVfLCBpbnQgd2lkdGgsIGNv bnN0IHN0ZDo6c3RyaW5nICZuYW1lLA0KKwkJCWxvY2F0aW9uIGxvYyA9IGxv Y2F0aW9uICgpKTsNCisNCiAgICAgc3RydWN0XyBuZXdfc3RydWN0X3R5cGUg KGNvbnN0IHN0ZDo6c3RyaW5nICZuYW1lLA0KIAkJCSAgICAgc3RkOjp2ZWN0 b3I8ZmllbGQ+ICZmaWVsZHMsDQogCQkJICAgICBsb2NhdGlvbiBsb2MgPSBs b2NhdGlvbiAoKSk7DQpAQCAtNzU3LDYgKzc2MCwxNyBAQCBjb250ZXh0Ojpu ZXdfZmllbGQgKHR5cGUgdHlwZV8sIGNvbnN0IHN0ZDo6c3RyaW5nICZuYW1l LCBsb2NhdGlvbiBsb2MpDQogCQkJCQkgICBuYW1lLmNfc3RyICgpKSk7DQog fQ0KIA0KK2lubGluZSBmaWVsZA0KK2NvbnRleHQ6Om5ld19iaXRmaWVsZCAo dHlwZSB0eXBlXywgaW50IHdpZHRoLCBjb25zdCBzdGQ6OnN0cmluZyAmbmFt ZSwNCisJCSAgICAgICBsb2NhdGlvbiBsb2MpDQorew0KKyAgcmV0dXJuIGZp ZWxkIChnY2Nfaml0X2NvbnRleHRfbmV3X2JpdGZpZWxkIChtX2lubmVyX2N0 eHQsDQorCQkJCQkgICAgICBsb2MuZ2V0X2lubmVyX2xvY2F0aW9uICgpLA0K KwkJCQkJICAgICAgdHlwZV8uZ2V0X2lubmVyX3R5cGUgKCksDQorCQkJCQkg ICAgICB3aWR0aCwNCisJCQkJCSAgICAgIG5hbWUuY19zdHIgKCkpKTsNCit9 DQorDQogaW5saW5lIHN0cnVjdF8NCiBjb250ZXh0OjpuZXdfc3RydWN0X3R5 cGUgKGNvbnN0IHN0ZDo6c3RyaW5nICZuYW1lLA0KIAkJCSAgc3RkOjp2ZWN0 b3I8ZmllbGQ+ICZmaWVsZHMsDQpkaWZmIC0tZ2l0IGEvZ2NjL2ppdC9saWJn Y2NqaXQuYyBiL2djYy9qaXQvbGliZ2Njaml0LmMNCmluZGV4IGU0ZjE3Zjgu LmFiZjcwMTkgMTAwNjQ0DQotLS0gYS9nY2Mvaml0L2xpYmdjY2ppdC5jDQor KysgYi9nY2Mvaml0L2xpYmdjY2ppdC5jDQpAQCAtNjIsNiArNjIsMTAgQEAg c3RydWN0IGdjY19qaXRfZmllbGQgOiBwdWJsaWMgZ2NjOjpqaXQ6OnJlY29y ZGluZzo6ZmllbGQNCiB7DQogfTsNCiANCitzdHJ1Y3QgZ2NjX2ppdF9iaXRm aWVsZCA6IHB1YmxpYyBnY2M6OmppdDo6cmVjb3JkaW5nOjpiaXRmaWVsZA0K K3sNCit9Ow0KKw0KIHN0cnVjdCBnY2Nfaml0X2Z1bmN0aW9uIDogcHVibGlj IGdjYzo6aml0OjpyZWNvcmRpbmc6OmZ1bmN0aW9uDQogew0KIH07DQpAQCAt NTU2LDYgKzU2MCw0MiBAQCBnY2Nfaml0X2NvbnRleHRfbmV3X2ZpZWxkIChn Y2Nfaml0X2NvbnRleHQgKmN0eHQsDQogDQogLyogUHVibGljIGVudHJ5cG9p bnQuICBTZWUgZGVzY3JpcHRpb24gaW4gbGliZ2Njaml0LmguDQogDQorICAg QWZ0ZXIgZXJyb3ItY2hlY2tpbmcsIHRoZSByZWFsIHdvcmsgaXMgZG9uZSBi eSB0aGUNCisgICBnY2M6OmppdDo6cmVjb3JkaW5nOjpjb250ZXh0OjpuZXdf Yml0ZmllbGQgbWV0aG9kLCBpbg0KKyAgIGppdC1yZWNvcmRpbmcuYy4gICov DQorDQorZ2NjX2ppdF9maWVsZCAqDQorZ2NjX2ppdF9jb250ZXh0X25ld19i aXRmaWVsZCAoZ2NjX2ppdF9jb250ZXh0ICpjdHh0LA0KKwkJCSAgICAgIGdj Y19qaXRfbG9jYXRpb24gKmxvYywNCisJCQkgICAgICBnY2Nfaml0X3R5cGUg KnR5cGUsDQorCQkJICAgICAgaW50IHdpZHRoLA0KKwkJCSAgICAgIGNvbnN0 IGNoYXIgKm5hbWUpDQorew0KKyAgUkVUVVJOX05VTExfSUZfRkFJTCAoY3R4 dCwgTlVMTCwgTlVMTCwgIk5VTEwgY29udGV4dCIpOw0KKyAgSklUX0xPR19G VU5DIChjdHh0LT5nZXRfbG9nZ2VyICgpKTsNCisgIC8qIExPQyBjYW4gYmUg TlVMTC4gICovDQorICBSRVRVUk5fTlVMTF9JRl9GQUlMIChuYW1lLCBjdHh0 LCBsb2MsICJOVUxMIG5hbWUiKTsNCisgIFJFVFVSTl9OVUxMX0lGX0ZBSUwg KHR5cGUsIGN0eHQsIGxvYywgIk5VTEwgdHlwZSIpOw0KKyAgUkVUVVJOX05V TExfSUZfRkFJTF9QUklOVEYyICh0eXBlLT5pc19pbnQgKCkgfHwgdHlwZS0+ aXNfYm9vbCAoKSwNCisJCQkgICAgICAgY3R4dCwgbG9jLA0KKwkJCSAgICAg ICAiYml0LWZpZWxkICVzIGhhcyBub24gaW50ZWdyYWwgdHlwZSAlcyIsDQor CQkJICAgICAgIG5hbWUsIHR5cGUtPmdldF9kZWJ1Z19zdHJpbmcgKCkpOw0K KyAgUkVUVVJOX05VTExfSUZfRkFJTF9QUklOVEYyICgNCisgICAgd2lkdGgg PiAwLCBjdHh0LCBsb2MsDQorICAgICJpbnZhbGlkIHdpZHRoICVkIGZvciBi aXRmaWVsZCBcIiVzXCIgKG11c3QgYmUgPiAwKSIsDQorICAgIHdpZHRoLCBu YW1lKTsNCisgIFJFVFVSTl9OVUxMX0lGX0ZBSUxfUFJJTlRGMiAoDQorICAg IHR5cGUtPmhhc19rbm93bl9zaXplICgpLA0KKyAgICBjdHh0LCBsb2MsDQor ICAgICJ1bmtub3duIHNpemUgZm9yIGZpZWxkIFwiJXNcIiAodHlwZTogJXMp IiwNCisgICAgbmFtZSwNCisgICAgdHlwZS0+Z2V0X2RlYnVnX3N0cmluZyAo KSk7DQorDQorICByZXR1cm4gKGdjY19qaXRfZmllbGQgKiljdHh0LT5uZXdf Yml0ZmllbGQgKGxvYywgdHlwZSwgd2lkdGgsIG5hbWUpOw0KK30NCisNCisv KiBQdWJsaWMgZW50cnlwb2ludC4gIFNlZSBkZXNjcmlwdGlvbiBpbiBsaWJn Y2NqaXQuaC4NCisNCiAgICBBZnRlciBlcnJvci1jaGVja2luZywgdGhpcyBj YWxscyB0aGUgdHJpdmlhbA0KICAgIGdjYzo6aml0OjpyZWNvcmRpbmc6Om1l bWVudG86OmFzX29iamVjdCBtZXRob2QgKGEgZmllbGQgaXMgYQ0KICAgIG1l bWVudG8pLCBpbiBqaXQtcmVjb3JkaW5nLmguICAqLw0KZGlmZiAtLWdpdCBh L2djYy9qaXQvbGliZ2Njaml0LmggYi9nY2Mvaml0L2xpYmdjY2ppdC5oDQpp bmRleCBiZWViNzQ3Li45YzVmMjNiIDEwMDY0NA0KLS0tIGEvZ2NjL2ppdC9s aWJnY2NqaXQuaA0KKysrIGIvZ2NjL2ppdC9saWJnY2NqaXQuaA0KQEAgLTYw Miw2ICs2MDIsMjEgQEAgZ2NjX2ppdF9jb250ZXh0X25ld19maWVsZCAoZ2Nj X2ppdF9jb250ZXh0ICpjdHh0LA0KIAkJCSAgIGdjY19qaXRfdHlwZSAqdHlw ZSwNCiAJCQkgICBjb25zdCBjaGFyICpuYW1lKTsNCiANCisjZGVmaW5lIExJ QkdDQ0pJVF9IQVZFX2djY19qaXRfY29udGV4dF9uZXdfYml0ZmllbGQNCisN CisvKiBDcmVhdGUgYSBiaXQgZmllbGQsIGZvciB1c2Ugd2l0aGluIGEgc3Ry dWN0IG9yIHVuaW9uLg0KKw0KKyAgIFRoaXMgQVBJIGVudHJ5cG9pbnQgd2Fz IGFkZGVkIGluIExJQkdDQ0pJVF9BQklfMTI7IHlvdSBjYW4gdGVzdCBmb3Ig aXRzDQorICAgcHJlc2VuY2UgdXNpbmcNCisgICAgICNpZmRlZiBMSUJHQ0NK SVRfSEFWRV9nY2Nfaml0X2NvbnRleHRfbmV3X2JpdGZpZWxkDQorKi8NCitl eHRlcm4gZ2NjX2ppdF9maWVsZCAqDQorZ2NjX2ppdF9jb250ZXh0X25ld19i aXRmaWVsZCAoZ2NjX2ppdF9jb250ZXh0ICpjdHh0LA0KKwkJCSAgICAgIGdj Y19qaXRfbG9jYXRpb24gKmxvYywNCisJCQkgICAgICBnY2Nfaml0X3R5cGUg KnR5cGUsDQorCQkJICAgICAgaW50IHdpZHRoLA0KKwkJCSAgICAgIGNvbnN0 IGNoYXIgKm5hbWUpOw0KKw0KIC8qIFVwY2FzdGluZyBmcm9tIGZpZWxkIHRv IG9iamVjdC4gICovDQogZXh0ZXJuIGdjY19qaXRfb2JqZWN0ICoNCiBnY2Nf aml0X2ZpZWxkX2FzX29iamVjdCAoZ2NjX2ppdF9maWVsZCAqZmllbGQpOw0K ZGlmZiAtLWdpdCBhL2djYy9qaXQvbGliZ2Njaml0Lm1hcCBiL2djYy9qaXQv bGliZ2Njaml0Lm1hcA0KaW5kZXggMTZmNTI1My4uNDBlMWM3OCAxMDA2NDQN Ci0tLSBhL2djYy9qaXQvbGliZ2Njaml0Lm1hcA0KKysrIGIvZ2NjL2ppdC9s aWJnY2NqaXQubWFwDQpAQCAtMTc0LDQgKzE3NCw5IEBAIExJQkdDQ0pJVF9B QklfMTAgew0KIExJQkdDQ0pJVF9BQklfMTEgew0KICAgZ2xvYmFsOg0KICAg ICBnY2Nfaml0X2NvbnRleHRfYWRkX2RyaXZlcl9vcHRpb247DQotfSBMSUJH Q0NKSVRfQUJJXzEwOw0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlDQor fSBMSUJHQ0NKSVRfQUJJXzEwOw0KKw0KK0xJQkdDQ0pJVF9BQklfMTIgew0K KyAgZ2xvYmFsOg0KKyAgICBnY2Nfaml0X2NvbnRleHRfbmV3X2JpdGZpZWxk Ow0KK30gTElCR0NDSklUX0FCSV8xMTsNClwgTm8gbmV3bGluZSBhdCBlbmQg b2YgZmlsZQ0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvaml0LmRnL2Fs bC1ub24tZmFpbGluZy10ZXN0cy5oIGIvZ2NjL3Rlc3RzdWl0ZS9qaXQuZGcv YWxsLW5vbi1mYWlsaW5nLXRlc3RzLmgNCmluZGV4IDlhMTA0MTguLjAyNzJl NmY4IDEwMDY0NA0KLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9qaXQuZGcvYWxsLW5v bi1mYWlsaW5nLXRlc3RzLmgNCisrKyBiL2djYy90ZXN0c3VpdGUvaml0LmRn L2FsbC1ub24tZmFpbGluZy10ZXN0cy5oDQpAQCAtOCw2ICs4LDEzIEBADQog ICAgaG9va3MgcHJvdmlkZWQgYnkgZWFjaCB0ZXN0IGNhc2UuICAqLw0KICNk ZWZpbmUgQ09NQklORURfVEVTVA0KIA0KKy8qIHRlc3QtYWNjZXNzaW5nLWJp dGZpZWxkLmMgKi8NCisjZGVmaW5lIGNyZWF0ZV9jb2RlIGNyZWF0ZV9jb2Rl X2FjY2Vzc2luZ19iaXRmaWVsZA0KKyNkZWZpbmUgdmVyaWZ5X2NvZGUgdmVy aWZ5X2NvZGVfYWNjZXNzaW5nX2JpdGZpZWxkDQorI2luY2x1ZGUgInRlc3Qt YWNjZXNzaW5nLWJpdGZpZWxkLmMiDQorI3VuZGVmIGNyZWF0ZV9jb2RlDQor I3VuZGVmIHZlcmlmeV9jb2RlDQorDQogLyogdGVzdC1hY2Nlc3Npbmctc3Ry dWN0LmMgKi8NCiAjZGVmaW5lIGNyZWF0ZV9jb2RlIGNyZWF0ZV9jb2RlX2Fj Y2Vzc2luZ19zdHJ1Y3QNCiAjZGVmaW5lIHZlcmlmeV9jb2RlIHZlcmlmeV9j b2RlX2FjY2Vzc2luZ19zdHJ1Y3QNCkBAIC0yNjYsNiArMjczLDkgQEAgc3Ry dWN0IHRlc3RjYXNlDQogfTsNCiANCiBjb25zdCBzdHJ1Y3QgdGVzdGNhc2Ug dGVzdGNhc2VzW10gPSB7DQorICB7ImFjY2Vzc2luZ19iaXRmaWVsZCIsDQor ICAgY3JlYXRlX2NvZGVfYWNjZXNzaW5nX2JpdGZpZWxkLA0KKyAgIHZlcmlm eV9jb2RlX2FjY2Vzc2luZ19iaXRmaWVsZH0sDQogICB7ImFjY2Vzc2luZ19z dHJ1Y3QiLA0KICAgIGNyZWF0ZV9jb2RlX2FjY2Vzc2luZ19zdHJ1Y3QsDQog ICAgdmVyaWZ5X2NvZGVfYWNjZXNzaW5nX3N0cnVjdH0sDQpkaWZmIC0tZ2l0 IGEvZ2NjL3Rlc3RzdWl0ZS9qaXQuZGcvdGVzdC1hY2Nlc3NpbmctYml0Zmll bGQuYyBiL2djYy90ZXN0c3VpdGUvaml0LmRnL3Rlc3QtYWNjZXNzaW5nLWJp dGZpZWxkLmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAw Li41ZTgwMzUxDQotLS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1aXRl L2ppdC5kZy90ZXN0LWFjY2Vzc2luZy1iaXRmaWVsZC5jDQpAQCAtMCwwICsx LDEzMCBAQA0KKyNpbmNsdWRlIDxzdGRsaWIuaD4NCisjaW5jbHVkZSA8c3Rk aW8uaD4NCisNCisjaW5jbHVkZSAibGliZ2Njaml0LmgiDQorDQorI2luY2x1 ZGUgImhhcm5lc3MuaCINCisNCitzdHJ1Y3QgYml0X2Zvbw0KK3sNCisgIGlu dCBpOjM7DQorICBpbnQgeDo1Ow0KKyAgaW50IHk6NTsNCisgIGludCB6OjEw Ow0KKyAgaW50IGo6MzsNCit9Ow0KKw0KK3ZvaWQNCitjcmVhdGVfY29kZSAo Z2NjX2ppdF9jb250ZXh0ICpjdHh0LCB2b2lkICp1c2VyX2RhdGEpDQorew0K KyAgLyogTGV0J3MgdHJ5IHRvIGluamVjdCB0aGUgZXF1aXZhbGVudCBvZjoN CisgICAgIHZvaWQNCisgICAgIHRlc3RfYml0ZmllbGRfYWNjZXNzIChzdHJ1 Y3QgYml0X2ZvbyAqZikNCisgICAgIHsNCisgICAgICAgIGYtPnogPSBmLT54 ICsgZi0+eTsNCisgICAgIH0NCisgICovDQorICBnY2Nfaml0X3R5cGUgKnZv aWRfdHlwZSA9DQorICAgIGdjY19qaXRfY29udGV4dF9nZXRfdHlwZSAoY3R4 dCwgR0NDX0pJVF9UWVBFX1ZPSUQpOw0KKyAgZ2NjX2ppdF90eXBlICppbnRf dHlwZSA9DQorICAgIGdjY19qaXRfY29udGV4dF9nZXRfdHlwZSAoY3R4dCwg R0NDX0pJVF9UWVBFX0lOVCk7DQorICBnY2Nfaml0X2ZpZWxkICppID0NCisg ICAgZ2NjX2ppdF9jb250ZXh0X25ld19iaXRmaWVsZCAoY3R4dCwNCisJCQkJ ICBOVUxMLA0KKwkJCQkgIGludF90eXBlLA0KKwkJCQkgIDMsDQorCQkJCSAg ImkiKTsNCisgIGdjY19qaXRfZmllbGQgKnggPQ0KKyAgICBnY2Nfaml0X2Nv bnRleHRfbmV3X2JpdGZpZWxkIChjdHh0LA0KKwkJCQkgIE5VTEwsDQorCQkJ CSAgaW50X3R5cGUsDQorCQkJCSAgNSwNCisJCQkJICAieCIpOw0KKyAgZ2Nj X2ppdF9maWVsZCAqeSA9DQorICAgIGdjY19qaXRfY29udGV4dF9uZXdfYml0 ZmllbGQgKGN0eHQsDQorCQkJCSAgTlVMTCwNCisJCQkJICBpbnRfdHlwZSwN CisJCQkJICA1LA0KKwkJCQkgICJ5Iik7DQorICBnY2Nfaml0X2ZpZWxkICp6 ID0NCisgICAgZ2NjX2ppdF9jb250ZXh0X25ld19iaXRmaWVsZCAoY3R4dCwN CisJCQkJICBOVUxMLA0KKwkJCQkgIGludF90eXBlLA0KKwkJCQkgIDEwLA0K KwkJCQkgICJ6Iik7DQorICBnY2Nfaml0X2ZpZWxkICpqID0NCisgICAgZ2Nj X2ppdF9jb250ZXh0X25ld19iaXRmaWVsZCAoY3R4dCwNCisJCQkJICBOVUxM LA0KKwkJCQkgIGludF90eXBlLA0KKwkJCQkgIDMsDQorCQkJCSAgImoiKTsN CisgIGdjY19qaXRfZmllbGQgKmZpZWxkc1tdID0ge2ksIHgsIHksIHosIGp9 Ow0KKyAgZ2NjX2ppdF9zdHJ1Y3QgKnN0cnVjdF90eXBlID0NCisgICAgZ2Nj X2ppdF9jb250ZXh0X25ld19zdHJ1Y3RfdHlwZSAoY3R4dCwgTlVMTCwgImJp dF9mb28iLCA1LCBmaWVsZHMpOw0KKyAgZ2NjX2ppdF90eXBlICpwdHJfdHlw ZSA9DQorICAgIGdjY19qaXRfdHlwZV9nZXRfcG9pbnRlciAoZ2NjX2ppdF9z dHJ1Y3RfYXNfdHlwZSAoc3RydWN0X3R5cGUpKTsNCisNCisgIC8qIEJ1aWxk IHRoZSB0ZXN0IGZ1bmN0aW9uLiAgKi8NCisgIGdjY19qaXRfcGFyYW0gKnBh cmFtX2YgPQ0KKyAgICBnY2Nfaml0X2NvbnRleHRfbmV3X3BhcmFtIChjdHh0 LCBOVUxMLCBwdHJfdHlwZSwgImYiKTsNCisgIGdjY19qaXRfZnVuY3Rpb24g KnRlc3RfZm4gPQ0KKyAgICBnY2Nfaml0X2NvbnRleHRfbmV3X2Z1bmN0aW9u IChjdHh0LCBOVUxMLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBHQ0NfSklUX0ZVTkNUSU9OX0VYUE9SVEVELA0KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB2b2lkX3R5cGUsDQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXN0X2JpdGZpZWxkX2FjY2Vz cyIsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEsICZw YXJhbV9mLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw KTsNCisNCisgIC8qIGYtPnggKyBmLT55ICovDQorICBnY2Nfaml0X3J2YWx1 ZSAqc3VtID0NCisgICAgZ2NjX2ppdF9jb250ZXh0X25ld19iaW5hcnlfb3Ag KA0KKyAgICAgIGN0eHQsIE5VTEwsDQorICAgICAgR0NDX0pJVF9CSU5BUllf T1BfUExVUywNCisgICAgICBpbnRfdHlwZSwNCisgICAgICBnY2Nfaml0X2x2 YWx1ZV9hc19ydmFsdWUgKA0KKwlnY2Nfaml0X3J2YWx1ZV9kZXJlZmVyZW5j ZV9maWVsZCAoDQorCSAgZ2NjX2ppdF9wYXJhbV9hc19ydmFsdWUgKHBhcmFt X2YpLA0KKwkgIE5VTEwsDQorCSAgeCkpLA0KKyAgICAgIGdjY19qaXRfbHZh bHVlX2FzX3J2YWx1ZSAoDQorCWdjY19qaXRfcnZhbHVlX2RlcmVmZXJlbmNl X2ZpZWxkICgNCisJZ2NjX2ppdF9wYXJhbV9hc19ydmFsdWUgKHBhcmFtX2Yp LA0KKwlOVUxMLA0KKwl5KSkpOw0KKw0KKyAgLyogZi0+eiA9IC4uLiAqLw0K KyAgZ2NjX2ppdF9ibG9jayAqYmxvY2sgPSBnY2Nfaml0X2Z1bmN0aW9uX25l d19ibG9jayAodGVzdF9mbiwgTlVMTCk7DQorICBnY2Nfaml0X2Jsb2NrX2Fk ZF9hc3NpZ25tZW50ICgNCisgICAgYmxvY2ssDQorICAgIE5VTEwsDQorICAg IGdjY19qaXRfcnZhbHVlX2RlcmVmZXJlbmNlX2ZpZWxkICgNCisgICAgICBn Y2Nfaml0X3BhcmFtX2FzX3J2YWx1ZSAocGFyYW1fZiksDQorICAgICAgTlVM TCwNCisgICAgICB6KSwNCisgICAgc3VtKTsNCisgIGdjY19qaXRfYmxvY2tf ZW5kX3dpdGhfdm9pZF9yZXR1cm4gKGJsb2NrLCBOVUxMKTsNCit9DQorDQor dm9pZA0KK3ZlcmlmeV9jb2RlIChnY2Nfaml0X2NvbnRleHQgKmN0eHQsIGdj Y19qaXRfcmVzdWx0ICpyZXN1bHQpDQorew0KKyAgdHlwZWRlZiB2b2lkICgq Zm5fdHlwZSkgKHN0cnVjdCBiaXRfZm9vICopOw0KKyAgQ0hFQ0tfTk9OX05V TEwgKHJlc3VsdCk7DQorDQorICBmbl90eXBlIHRlc3RfYml0ZmllbGRfYWNj ZXNzID0NCisgICAgKGZuX3R5cGUpZ2NjX2ppdF9yZXN1bHRfZ2V0X2NvZGUg KHJlc3VsdCwgInRlc3RfYml0ZmllbGRfYWNjZXNzIik7DQorICBDSEVDS19O T05fTlVMTCAodGVzdF9iaXRmaWVsZF9hY2Nlc3MpOw0KKw0KKyAgc3RydWN0 IGJpdF9mb28gdG1wOw0KKyAgdG1wLmkgPSAzOw0KKyAgdG1wLnggPSA1Ow0K KyAgdG1wLnkgPSA3Ow0KKyAgdG1wLnogPSAwOw0KKyAgdG1wLmogPSAzOw0K Kw0KKyAgLyogQ2FsbCB0aGUgSklULWdlbmVyYXRlZCBmdW5jdGlvbi4gICov DQorICB0ZXN0X2JpdGZpZWxkX2FjY2VzcyAoJnRtcCk7DQorDQorICAvKiBW ZXJpZnkgdGhhdCB0aGUgY29kZSBjb3JyZWN0bHkgbW9kaWZpZWQgdGhlIGZp ZWxkICJ6Ii4gICovDQorICBDSEVDS19WQUxVRSAodG1wLnosIDEyKTsNCit9 DQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9qaXQuZGcvdGVzdC1lcnJv ci1nY2Nfaml0X2NvbnRleHRfbmV3X2JpdGZpZWxkLWludmFsaWQtdHlwZS5j IGIvZ2NjL3Rlc3RzdWl0ZS9qaXQuZGcvdGVzdC1lcnJvci1nY2Nfaml0X2Nv bnRleHRfbmV3X2JpdGZpZWxkLWludmFsaWQtdHlwZS5jDQpuZXcgZmlsZSBt b2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMC4uZDJlZjVhOA0KLS0tIC9kZXYv bnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9qaXQuZGcvdGVzdC1lcnJvci1n Y2Nfaml0X2NvbnRleHRfbmV3X2JpdGZpZWxkLWludmFsaWQtdHlwZS5jDQpA QCAtMCwwICsxLDUzIEBADQorI2luY2x1ZGUgPHN0ZGxpYi5oPg0KKyNpbmNs dWRlIDxzdGRpby5oPg0KKw0KKyNpbmNsdWRlICJsaWJnY2NqaXQuaCINCisN CisjaW5jbHVkZSAiaGFybmVzcy5oIg0KKw0KKy8qIFRyeSB0byBkZWNsYXJl IGEgYml0LWZpZWxkIHdpdGggaW52YWxpZCB0eXBlLiAgKi8NCisNCit2b2lk DQorY3JlYXRlX2NvZGUgKGdjY19qaXRfY29udGV4dCAqY3R4dCwgdm9pZCAq dXNlcl9kYXRhKQ0KK3sNCisgIGdjY19qaXRfdHlwZSAqYm9vbF90eXBlID0N CisgICAgZ2NjX2ppdF9jb250ZXh0X2dldF90eXBlIChjdHh0LCBHQ0NfSklU X1RZUEVfQk9PTCk7DQorICBnY2Nfaml0X3R5cGUgKmludF90eXBlID0NCisg ICAgZ2NjX2ppdF9jb250ZXh0X2dldF90eXBlIChjdHh0LCBHQ0NfSklUX1RZ UEVfSU5UKTsNCisgIGdjY19qaXRfdHlwZSAqbG9uZ190eXBlID0NCisgICAg Z2NjX2ppdF9jb250ZXh0X2dldF90eXBlIChjdHh0LCBHQ0NfSklUX1RZUEVf TE9ORyk7DQorICBnY2Nfaml0X3R5cGUgKmZsb2F0X3R5cGUgPQ0KKyAgICBn Y2Nfaml0X2NvbnRleHRfZ2V0X3R5cGUgKGN0eHQsIEdDQ19KSVRfVFlQRV9G TE9BVCk7DQorDQorICBnY2Nfaml0X2NvbnRleHRfbmV3X2JpdGZpZWxkIChj dHh0LA0KKwkJCQlOVUxMLA0KKwkJCQlib29sX3R5cGUsDQorCQkJCTMsDQor CQkJCSJiIik7DQorICBnY2Nfaml0X2NvbnRleHRfbmV3X2JpdGZpZWxkIChj dHh0LA0KKwkJCQkgIE5VTEwsDQorCQkJCSAgaW50X3R5cGUsDQorCQkJCSAg MywNCisJCQkJICAiaSIpOw0KKyAgZ2NjX2ppdF9jb250ZXh0X25ld19iaXRm aWVsZCAoY3R4dCwNCisJCQkJTlVMTCwNCisJCQkJbG9uZ190eXBlLA0KKwkJ CQkzLA0KKwkJCQkibCIpOw0KKyAgZ2NjX2ppdF9jb250ZXh0X25ld19iaXRm aWVsZCAoY3R4dCwNCisJCQkJTlVMTCwNCisJCQkJZmxvYXRfdHlwZSwNCisJ CQkJNSwNCisJCQkJImYiKTsNCit9DQorDQordm9pZA0KK3ZlcmlmeV9jb2Rl IChnY2Nfaml0X2NvbnRleHQgKmN0eHQsIGdjY19qaXRfcmVzdWx0ICpyZXN1 bHQpDQorew0KKyAgQ0hFQ0tfVkFMVUUgKHJlc3VsdCwgTlVMTCk7DQorDQor ICAvKiBWZXJpZnkgdGhhdCB0aGUgY29ycmVjdCBlcnJvciBtZXNzYWdlIHdh cyBlbWl0dGVkLgkgKi8NCisgIENIRUNLX1NUUklOR19WQUxVRSAoZ2NjX2pp dF9jb250ZXh0X2dldF9maXJzdF9lcnJvciAoY3R4dCksDQorCQkgICAgICAi Z2NjX2ppdF9jb250ZXh0X25ld19iaXRmaWVsZDogYml0LWZpZWxkIGYgaGFz IG5vbiAiDQorCQkgICAgICAiaW50ZWdyYWwgdHlwZSBmbG9hdCIpOw0KK30N CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2ppdC5kZy90ZXN0LWVycm9y LWdjY19qaXRfY29udGV4dF9uZXdfYml0ZmllbGQtaW52YWxpZC13aWR0aC5j IGIvZ2NjL3Rlc3RzdWl0ZS9qaXQuZGcvdGVzdC1lcnJvci1nY2Nfaml0X2Nv bnRleHRfbmV3X2JpdGZpZWxkLWludmFsaWQtd2lkdGguYw0KbmV3IGZpbGUg bW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAuLjY3ZGIxMjANCi0tLSAvZGV2 L251bGwNCisrKyBiL2djYy90ZXN0c3VpdGUvaml0LmRnL3Rlc3QtZXJyb3It Z2NjX2ppdF9jb250ZXh0X25ld19iaXRmaWVsZC1pbnZhbGlkLXdpZHRoLmMN CkBAIC0wLDAgKzEsNDQgQEANCisjaW5jbHVkZSA8c3RkbGliLmg+DQorI2lu Y2x1ZGUgPHN0ZGlvLmg+DQorDQorI2luY2x1ZGUgImxpYmdjY2ppdC5oIg0K Kw0KKyNpbmNsdWRlICJoYXJuZXNzLmgiDQorDQorLyogVHJ5IHRvIGRlY2xh cmUgYSBiaXQtZmllbGQgd2l0aCBpbnZhbGlkIHdpZHRoLiAgKi8NCisNCit2 b2lkDQorY3JlYXRlX2NvZGUgKGdjY19qaXRfY29udGV4dCAqY3R4dCwgdm9p ZCAqdXNlcl9kYXRhKQ0KK3sNCisgIGdjY19qaXRfdHlwZSAqc2hvcnRfdHlw ZSA9DQorICAgIGdjY19qaXRfY29udGV4dF9nZXRfdHlwZSAoY3R4dCwgR0ND X0pJVF9UWVBFX1NIT1JUKTsNCisgIGdjY19qaXRfZmllbGQgKmkgPQ0KKyAg ICBnY2Nfaml0X2NvbnRleHRfbmV3X2JpdGZpZWxkIChjdHh0LA0KKwkJCQkg IE5VTEwsDQorCQkJCSAgc2hvcnRfdHlwZSwNCisJCQkJICAzLA0KKwkJCQkg ICJpIik7DQorICBnY2Nfaml0X2ZpZWxkICpqID0NCisgICAgZ2NjX2ppdF9j b250ZXh0X25ld19iaXRmaWVsZCAoY3R4dCwNCisJCQkJICBOVUxMLA0KKwkJ CQkgIHNob3J0X3R5cGUsDQorCQkJCSAgMTU3LA0KKwkJCQkgICJqIik7DQor ICBnY2Nfaml0X2ZpZWxkICpmaWVsZHNbXSA9IHtpLCBqfTsNCisgIGdjY19q aXRfY29udGV4dF9uZXdfc3RydWN0X3R5cGUgKGN0eHQsIE5VTEwsICJiaXRf Zm9vIiwgMiwgZmllbGRzKTsNCit9DQorDQordm9pZA0KK3ZlcmlmeV9jb2Rl IChnY2Nfaml0X2NvbnRleHQgKmN0eHQsIGdjY19qaXRfcmVzdWx0ICpyZXN1 bHQpDQorew0KKyAgQ0hFQ0tfVkFMVUUgKHJlc3VsdCwgTlVMTCk7DQorICBj aGFyIGVycm9yX3N0clsyNTZdOw0KKyAgc25wcmludGYgKGVycm9yX3N0ciwg c2l6ZW9mIChlcnJvcl9zdHIpLA0KKwkgICAgIndpZHRoIG9mIGJpdC1maWVs ZCBqICh3aWR0aDogMTU3KSBpcyB3aWRlciB0aGFuIGl0cyB0eXBlICINCisJ ICAgICIod2lkdGg6ICV6dSkiLCA4ICogc2l6ZW9mIChzaG9ydCkpOw0KKw0K KyAgLyogVmVyaWZ5IHRoYXQgdGhlIGNvcnJlY3QgZXJyb3IgbWVzc2FnZSB3 YXMgZW1pdHRlZC4gICovDQorDQorICBDSEVDS19TVFJJTkdfVkFMVUUgKGdj Y19qaXRfY29udGV4dF9nZXRfZmlyc3RfZXJyb3IgKGN0eHQpLA0KKwkJICAg ICAgZXJyb3Jfc3RyKTsNCit9DQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0 ZS9qaXQuZGcvdGVzdC1lcnJvci1nY2Nfaml0X2x2YWx1ZV9nZXRfYWRkcmVz cy1iaXRmaWVsZC5jIGIvZ2NjL3Rlc3RzdWl0ZS9qaXQuZGcvdGVzdC1lcnJv ci1nY2Nfaml0X2x2YWx1ZV9nZXRfYWRkcmVzcy1iaXRmaWVsZC5jDQpuZXcg ZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMC4uZjEwMmE2YQ0KLS0t IC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9qaXQuZGcvdGVzdC1l cnJvci1nY2Nfaml0X2x2YWx1ZV9nZXRfYWRkcmVzcy1iaXRmaWVsZC5jDQpA QCAtMCwwICsxLDY2IEBADQorI2luY2x1ZGUgPHN0ZGxpYi5oPg0KKyNpbmNs dWRlIDxzdGRpby5oPg0KKw0KKyNpbmNsdWRlICJsaWJnY2NqaXQuaCINCisN CisjaW5jbHVkZSAiaGFybmVzcy5oIg0KKw0KKy8qIFRyeSB0byBkZXJlZmVy ZW5jZSBhIGJpdC1maWVsZC4gICovDQorDQordm9pZA0KK2NyZWF0ZV9jb2Rl IChnY2Nfaml0X2NvbnRleHQgKmN0eHQsIHZvaWQgKnVzZXJfZGF0YSkNCit7 DQorICAvKiBMZXQncyB0cnkgdG8gaW5qZWN0IHRoZSBlcXVpdmFsZW50IG9m Og0KKw0KKyAgICAgc3RydWN0IGJpdF9mb28NCisgICAgIHsNCisgICAgICAg aW50IGk6MzsNCisgICAgICAgaW50IGo6MzsNCisgICAgIH07DQorDQorICAg ICBzdHJ1Y3QgYml0X2ZvbyBmOw0KKyAgICAgJihmLmopDQorICAqLw0KKyAg Z2NjX2ppdF90eXBlICppbnRfdHlwZSA9DQorICAgIGdjY19qaXRfY29udGV4 dF9nZXRfdHlwZSAoY3R4dCwgR0NDX0pJVF9UWVBFX0lOVCk7DQorICBnY2Nf aml0X2ZpZWxkICppID0NCisgICAgZ2NjX2ppdF9jb250ZXh0X25ld19iaXRm aWVsZCAoY3R4dCwNCisJCQkJICBOVUxMLA0KKwkJCQkgIGludF90eXBlLA0K KwkJCQkgIDMsDQorCQkJCSAgImkiKTsNCisgIGdjY19qaXRfZmllbGQgKmog PQ0KKyAgICBnY2Nfaml0X2NvbnRleHRfbmV3X2JpdGZpZWxkIChjdHh0LA0K KwkJCQkgIE5VTEwsDQorCQkJCSAgaW50X3R5cGUsDQorCQkJCSAgMywNCisJ CQkJICAiaiIpOw0KKyAgZ2NjX2ppdF9maWVsZCAqZmllbGRzW10gPSB7aSwg an07DQorICBnY2Nfaml0X3R5cGUgKnN0cnVjdF90eXBlID0NCisgICAgZ2Nj X2ppdF9zdHJ1Y3RfYXNfdHlwZSAoDQorICAgICAgZ2NjX2ppdF9jb250ZXh0 X25ld19zdHJ1Y3RfdHlwZSAoY3R4dCwgTlVMTCwgImJpdF9mb28iLCAyLCBm aWVsZHMpKTsNCisNCisgIGdjY19qaXRfbHZhbHVlICpmX3N0cnVjdCA9DQor ICAgIGdjY19qaXRfY29udGV4dF9uZXdfZ2xvYmFsIChjdHh0LA0KKwkJCQlO VUxMLA0KKwkJCQlHQ0NfSklUX0dMT0JBTF9JTlRFUk5BTCwNCisJCQkJc3Ry dWN0X3R5cGUsDQorCQkJCSJmIik7DQorDQorICBnY2Nfaml0X2x2YWx1ZV9n ZXRfYWRkcmVzcyAoDQorICAgIGdjY19qaXRfbHZhbHVlX2FjY2Vzc19maWVs ZCAoDQorICAgICAgZl9zdHJ1Y3QsDQorICAgICAgTlVMTCwNCisgICAgICBq KSwNCisgICAgTlVMTCk7DQorfQ0KKw0KK3ZvaWQNCit2ZXJpZnlfY29kZSAo Z2NjX2ppdF9jb250ZXh0ICpjdHh0LCBnY2Nfaml0X3Jlc3VsdCAqcmVzdWx0 KQ0KK3sNCisgIENIRUNLX1ZBTFVFIChyZXN1bHQsIE5VTEwpOw0KKw0KKyAg LyogVmVyaWZ5IHRoYXQgdGhlIGNvcnJlY3QgZXJyb3IgbWVzc2FnZSB3YXMg ZW1pdHRlZC4gICovDQorICBDSEVDS19TVFJJTkdfVkFMVUUgKGdjY19qaXRf Y29udGV4dF9nZXRfZmlyc3RfZXJyb3IgKGN0eHQpLA0KKwkJICAgICAgImNh bm5vdCB0YWtlIGFkZHJlc3Mgb2YgYml0LWZpZWxkIik7DQorfQ0K --_002_gkrd0j0a9lvfsfarmcom_--