From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpbgeu2.qq.com (smtpbgeu2.qq.com [18.194.254.142]) by sourceware.org (Postfix) with ESMTPS id 436F23858D20 for ; Tue, 31 Oct 2023 06:45:46 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 436F23858D20 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=rivai.ai Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=rivai.ai ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 436F23858D20 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=18.194.254.142 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1698734761; cv=none; b=llVllG/LCO4oO2+DWRecvgxpalk3O0YbIZj+C5xQPSgXJd+/t2nbHFcunSK1TYb5omJeMlqiF4rjxX5ZEbIsai5Pf9ug67mB88ZhHznRsRibqu6P5yrveH5/iPX2PWgNUtrd7Vv74NGAh+3iZ4e9pWk8xBtHTDbvw2EiUiTpN7o= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1698734761; c=relaxed/simple; bh=AVxgU9X3eBnnX7/iYX/UcWrIBIgZ2OBiyhdwbcUd0wc=; h=Date:From:To:Subject:Mime-Version:Message-ID; b=IJ7TM8mD8ScZkytFC3D1+vBl9nOVpT5H3ciboIIBucnZshfcpMCJmiRGzcY1PEpm+hDC4zoL7c29t2vEX8g0D+p+f8chs0sSgDg8ZjKFUwMKKVfyW0jJZN8VvCoB8wdab5QosB+07XCPJjLbIBRGqVZgYQVu9PTm1rxtXhhOMWE= ARC-Authentication-Results: i=1; server2.sourceware.org X-QQ-mid: bizesmtp75t1698734735t9gn5ndb Received: from LAPTOP-EPITNQBU ( [113.104.214.30]) by bizesmtp.qq.com (ESMTP) with id ; Tue, 31 Oct 2023 14:45:34 +0800 (CST) X-QQ-SSF: 01400000000000G0V000000A0000000 X-QQ-FEAT: DSKSwtdeM5FCmEuUpgHqPza/IEgEGqea5oTO6hyhHpmZQN229+Cdmn5WtpgOd 0Bkdc4RagG/8Pe3GqvFtx1UhJLBx3zIi69gO8AYuDOaCE/06i2AvPhtWrD+++wrm1wjoVYc Yn++ZFPgQ5+QmJ68sOHPiaXlLMSBtzFB9fQYK3FZvTzlhnjuaYe0yHXXAKMvZxpJ1LeJj5P 8VxqYCbT1/bDTyrXHis8A1V0Jfx5G7lKPyf97kx2skvA5klXx6V/Tuoh8O0rnNYEolFJe2d TR0xJ5+Zj3HHTPH7Np7i7cfHIbvUOy6hnr8MagbKKSMb6dOP6qT0UTtoLVKOFR05hsmKWYk r1l7wCKiuyNwleQCmTyPEy5XCLVkyUVwv0ecR4gVCUb8EoJDI4ddbgcwZBe9fXkpTUUXtEI dXxmFOljLqZs8ySFf7GKJkAt3iL7TCwlj05fzlkfxCM= X-QQ-GoodBg: 2 X-BIZMAIL-ID: 16845600912666221292 Date: Tue, 31 Oct 2023 14:45:34 +0800 From: "juzhe.zhong@rivai.ai" To: "Li Xu" , gcc-patches Cc: kito.cheng , palmer Subject: Re: Re: [PATCH V5] RISC-V: Implement RESOLVE_OVERLOADED_BUILTIN for RVV intrinsic References: <20231031022436.18525-1-xuli1@eswincomputing.com>, , <2023103113141379745544@eswincomputing.com> X-Priority: 3 X-GUID: BB9C5D54-B835-49E8-B521-AD45037FFB09 X-Has-Attach: no X-Mailer: Foxmail 7.2.16.188[cn] Mime-Version: 1.0 Message-ID: <40E6E549A386BD6F+202310311445337496188@rivai.ai> Content-Type: multipart/alternative; boundary="----=_001_NextPart847755820885_=----" X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvrgz:qybglogicsvrgz7a-one-0 X-Spam-Status: No, score=-8.8 required=5.0 tests=BAYES_00,GIT_PATCH_0,HTML_MESSAGE,KAM_DMARC_STATUS,KAM_LINEPADDING,KAM_SHORT,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SCC_10_SHORT_WORD_LINES,SCC_20_SHORT_WORD_LINES,SCC_35_SHORT_WORD_LINES,SCC_5_SHORT_WORD_LINES,SPF_PASS,TXREP,T_KAM_HTML_FONT_INVALID,T_SCC_BODY_TEXT_LINE,T_SPF_HELO_TEMPERROR autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This is a multi-part message in MIME format. ------=_001_NextPart847755820885_=---- Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 SSB0aGluayB5b3UgY2FuIGNoYW5nZSAgYmlub3AgdGVtcGxhdGUuDQoNCkFk ZCBib29sIE1BWV9SRVFVSVJFX0ZSTSA9IGZhbHNlLg0KDQpCeSB0aGUgd2F5 LCByZW5hbWUgbWF5YmVfcmVxdWlyZV9mcm1fcCBpbnRvIG1heV9yZXF1aXJl X2ZybV9wDQoNClRoYW5rcy4NCg0KDQpqdXpoZS56aG9uZ0ByaXZhaS5haQ0K IA0KRnJvbTogTGkgWHUNCkRhdGU6IDIwMjMtMTAtMzEgMTM6MTQNClRvOiBq dXpoZS56aG9uZzsgZ2NjLXBhdGNoZXMNCkNDOiBraXRvLmNoZW5nOyBwYWxt ZXINClN1YmplY3Q6IFJlOiBSZTogW1BBVENIIFY1XSBSSVNDLVY6IEltcGxl bWVudCBSRVNPTFZFX09WRVJMT0FERURfQlVJTFRJTiBmb3IgUlZWIGludHJp bnNpYw0KU2luY2UgdGhlIGZvbGxvd2luZyB0aHJlZSBpbnN0YW5jZXMgc2hh cmUgdGhlIGNsYXNzIGJpbm9wLCANCkkgY2Fubm90IGRpc3Rpbmd1aXNoIGJl dHdlZW4gdmFkZCBhbmQgdmZhZGQuDQpJIHRoaW5rIGl0IGlzIGRpZmZpY3Vs dCB0byBhZGQgbWF5YmVfcmVxdWlyZV9mcm1fcCANCmFuZCBtYXliZV9yZXF1 aXJlX3Z4cm1fcCB0byBmdW5jdGlvbl9iYXNlLg0KIA0KIA0Kc3RhdGljIENP TlNURVhQUiBjb25zdCBiaW5vcDxQTFVTPiB2YWRkX29iajsNCnN0YXRpYyBD T05TVEVYUFIgY29uc3QgYmlub3A8UExVUz4gdmZhZGRfb2JqOw0Kc3RhdGlj IENPTlNURVhQUiBjb25zdCBiaW5vcDxQTFVTLCBIQVNfRlJNPiB2ZmFkZF9m cm1fb2JqOw0KIA0KIA0KdGVtcGxhdGU8cnR4X2NvZGUgQ09ERSwgZW51bSBm cm1fb3BfdHlwZSBGUk1fT1AgPSBOT19GUk0+DQpjbGFzcyBiaW5vcCA6IHB1 YmxpYyBmdW5jdGlvbl9iYXNlDQp7DQpwdWJsaWM6DQogIGJvb2wgbWF5YmVf cmVxdWlyZV9mcm1fcCAoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVl OyB9Ly92YWRkIGlzIHRydWUNCi4uLg0KfQ0KIA0KIA0KLS0tLS0tLS0tLS0t LS0NCiANCiANCiANCkxpIFh1DQogDQogDQogDQo+K3N0YXRpYyBib29sDQog DQogDQogDQo+K21heWJlX3JlcXVpcmVfZnJtX3AgKGZ1bmN0aW9uX2luc3Rh bmNlICZpbnN0YW5jZSkNCiANCiANCiANCj4rew0KIA0KIA0KIA0KPisgIHJl dHVybiBpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2ZndyZWR1c3VtDQogDQog DQogDQo+KyB8fCBpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2ZndyZWRvc3Vt IHx8IGluc3RhbmNlLmJhc2UgPT0gYmFzZXM6OnZmYWRkDQogDQogDQogDQo+ KyB8fCBpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2ZndzdWIgfHwgaW5zdGFu Y2UuYmFzZSA9PSBiYXNlczo6dmZ3bm1zYWMNCiANCiANCiANCj4rIHx8IGlu c3RhbmNlLmJhc2UgPT0gYmFzZXM6OnZmd25tYWNjIHx8IGluc3RhbmNlLmJh c2UgPT0gYmFzZXM6OnZmd211bA0KIA0KIA0KIA0KPisgfHwgaW5zdGFuY2Uu YmFzZSA9PSBiYXNlczo6dmZjdnRfeCB8fCBpbnN0YW5jZS5iYXNlID09IGJh c2VzOjp2ZmN2dF9mDQogDQogDQogDQo+KyB8fCBpbnN0YW5jZS5iYXNlID09 IGJhc2VzOjp2ZmN2dF94dSB8fCBpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2 Zndtc2FjDQogDQogDQogDQo+KyB8fCBpbnN0YW5jZS5iYXNlID09IGJhc2Vz Ojp2ZndtYWNjIHx8IGluc3RhbmNlLmJhc2UgPT0gYmFzZXM6OnZmd2N2dF94 DQogDQogDQogDQo+KyB8fCBpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2Zndh ZGQgfHwgaW5zdGFuY2UuYmFzZSA9PSBiYXNlczo6dmZzdWINCiANCiANCiAN Cj4rIHx8IGluc3RhbmNlLmJhc2UgPT0gYmFzZXM6OnZmc3FydCB8fCBpbnN0 YW5jZS5iYXNlID09IGJhc2VzOjp2ZnJlZHVzdW0NCiANCiANCiANCj4rIHx8 IGluc3RhbmNlLmJhc2UgPT0gYmFzZXM6OnZmcnN1YiB8fCBpbnN0YW5jZS5i YXNlID09IGJhc2VzOjp2ZnJlZG9zdW0NCiANCiANCiANCj4rIHx8IGluc3Rh bmNlLmJhc2UgPT0gYmFzZXM6OnZmcmVjNyB8fCBpbnN0YW5jZS5iYXNlID09 IGJhc2VzOjp2ZnJkaXYNCiANCiANCiANCj4rIHx8IGluc3RhbmNlLmJhc2Ug PT0gYmFzZXM6OnZmbm1zdWIgfHwgaW5zdGFuY2UuYmFzZSA9PSBiYXNlczo6 dmZubXNhYw0KIA0KIA0KIA0KPisgfHwgaW5zdGFuY2UuYmFzZSA9PSBiYXNl czo6dmZubWFkZCB8fCBpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2Zm5tYWNj DQogDQogDQogDQo+KyB8fCBpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2Zm5j dnRfZiB8fCBpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2Zm5jdnRfeA0KIA0K IA0KIA0KPisgfHwgaW5zdGFuY2UuYmFzZSA9PSBiYXNlczo6dmZuY3Z0X3h1 IHx8IGluc3RhbmNlLmJhc2UgPT0gYmFzZXM6OnZmbXVsDQogDQogDQogDQo+ KyB8fCBpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2Zm1zdWIgfHwgaW5zdGFu Y2UuYmFzZSA9PSBiYXNlczo6dmZtc2FjDQogDQogDQogDQo+KyB8fCBpbnN0 YW5jZS5iYXNlID09IGJhc2VzOjp2Zm1hZGQgfHwgaW5zdGFuY2UuYmFzZSA9 PSBiYXNlczo6dmZtYWNjDQogDQogDQogDQo+KyB8fCBpbnN0YW5jZS5iYXNl ID09IGJhc2VzOjp2ZmRpdiB8fCBpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2 ZndjdnRfeHU7DQogDQogDQogDQo+K30NCiANCiANCiANCj4rDQogDQogDQog DQo+K3N0YXRpYyBib29sDQogDQogDQogDQo+K21heWJlX3JlcXVpcmVfdnhy bV9wIChmdW5jdGlvbl9pbnN0YW5jZSAmaW5zdGFuY2UpDQogDQogDQogDQo+ K3sNCiANCiANCiANCj4rICByZXR1cm4gaW5zdGFuY2UuYmFzZSA9PSBiYXNl czo6dmFhZGQgfHwgaW5zdGFuY2UuYmFzZSA9PSBiYXNlczo6dmFhZGR1DQog DQogDQogDQo+KyB8fCBpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2YXN1YiB8 fCBpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2YXN1YnUNCiANCiANCiANCj4r IHx8IGluc3RhbmNlLmJhc2UgPT0gYmFzZXM6OnZzc3JsIHx8IGluc3RhbmNl LmJhc2UgPT0gYmFzZXM6OnZzc3JhDQogDQogDQogDQo+KyB8fCBpbnN0YW5j ZS5iYXNlID09IGJhc2VzOjp2c211bCB8fCBpbnN0YW5jZS5iYXNlID09IGJh c2VzOjp2bmNsaXB1DQogDQogDQogDQo+KyB8fCBpbnN0YW5jZS5iYXNlID09 IGJhc2VzOjp2bmNsaXA7DQogDQogDQogDQo+K30NCiANCiANCiANCj4NCiAN CiANCiANCj5JIGFtIHNvcnJ5IHRoYXQgSSBkaWRuJ3Qgd2FzIHdyb25nIGJl Zm9yZS4NCiANCiANCiANCj4NCiANCiANCiANCj5Db3VsZCB3ZSBhZGQgbWF5 YmVfcmVxdWlyZV9mcm1fcCBhbmQgbWF5YmVfcmVxdWlyZV92eHJtX3AgaW50 byBmdW5jdGlvbl9iYXNlID8NCiANCiANCiANCj5CeSBkZWZhdWx0IGl0IGlz IEZBTFNFLg0KIA0KIA0KIA0KPg0KIA0KIA0KIA0KPkluIHJpc2N2LXZlY3Rv ci1idWlsdGlucy1iYXNlcy5jYywgc2V0IHRoZW0gaW4gZWFjaCBjb3JyZXNw b25kaW5nIGZ1bmN0aW9uX2Jhc2U6DQogDQogDQogDQo+DQogDQogDQogDQo+ Rm9yIGV4YW1wbGU6DQogDQogDQogDQo+DQogDQogDQogDQo+Y2xhc3MgdnNt dWwgOjogcHVibGljIGZ1bmN0aW9uX2Jhc2UNCiANCiANCiANCj5ib29sIG1h eWJlX3JlcXVpcmVfdnhybV9wICgpIGNvbnN0DQogDQogDQogDQo+ew0KIA0K IA0KIA0KPiAgcmV0dXJuIHRydWU7DQogDQogDQogDQo+fQ0KIA0KIA0KIA0K Pg0KIA0KIA0KIA0KPlRoZSBiZW5lZml0cyBpcyB0aGF0IHlvdSBvbmx5IG5l ZWQgdG8gdXNlIGluc3RhbmNlLmJhc2UubWF5YmVfcmVxdWlyZV9mcm1fcCAo KSBvciBpbnN0YW5jZS5iYXNlLm1heWJlX3JlcXVpcmVfdnhybV9wICgpDQog DQogDQogDQo+QW5kIG5vIG5lZWQgdG8gY29tcGFyZSB0aGVtIG9uZSBieSBv bmUuDQogDQogDQogDQo+DQogDQogDQogDQo+VGhhbmtzLg0KIA0KIA0KIA0K Pg0KIA0KIA0KIA0KPg0KIA0KIA0KIA0KPmp1emhlLnpob25nQHJpdmFpLmFp DQogDQogDQogDQo+IA0KIA0KIA0KIA0KPkZyb206IExpIFh1DQogDQogDQog DQo+RGF0ZTogMjAyMy0xMC0zMSAxMDoyNA0KIA0KIA0KIA0KPlRvOiBnY2Mt cGF0Y2hlcw0KIA0KIA0KIA0KPkNDOiBraXRvLmNoZW5nOyBwYWxtZXI7IGp1 emhlLnpob25nOyB4dWxpDQogDQogDQogDQo+U3ViamVjdDogW1BBVENIIFY1 XSBSSVNDLVY6IEltcGxlbWVudCBSRVNPTFZFX09WRVJMT0FERURfQlVJTFRJ TiBmb3IgUlZWIGludHJpbnNpYw0KIA0KIA0KIA0KPkZyb206IHh1bGkgPHh1 bGkxQGVzd2luY29tcHV0aW5nLmNvbT4NCiANCiANCiANCj4gDQogDQogDQog DQo+VXBkYXRlIGluIHY1Og0KIA0KIA0KIA0KPiogU3BsaXQgaGFzX3Z4cm1f b3JfZnJtX3AgaW50byBtYXliZV9yZXF1aXJlX2ZybV9wIGFuZA0KIA0KIA0K IA0KPiAgbWF5YmVfcmVxdWlyZV92eHJtX3AuDQogDQogDQogDQo+KiBBZGp1 c3QgY29tbWVudHMuDQogDQogDQogDQo+IA0KIA0KIA0KIA0KPlVwZGF0ZSBp biB2NDoNCiANCiANCiANCj4qIFJlbW92ZSBjbGFzcyBmdW5jdGlvbl9yZXNv bHZlci4NCiANCiANCiANCj4qIFJlbW92ZSBmdW5jdGlvbiBnZXRfbm9uX292 ZXJsb2FkZWRfaW5zdGFuY2UuDQogDQogDQogDQo+KiBBZGQgb3ZlcmxvYWRl ZCBoYXNoIHRyYWl0cyBmb3Igbm9uLW92ZXJsb2FkZWQgaW50cmluc2ljLg0K IA0KIA0KIA0KPiogQWxsIG92ZXJsb2FkZWQgaW50cmluc2ljcyBhcmUgaW1w bGVtZW50ZWQsIGFuZCB0aGUgdGVzdHMgcGFzcy4NCiANCiANCiANCj4gDQog DQogDQogDQo+VXBkYXRlIGluIHYzOg0KIA0KIA0KIA0KPiANCiANCiANCiAN Cj4qIFJld3JpdGUgY29tbWVudCBmb3Igb3ZlcmxvYWRlZCBmdW5jdGlvbiBh ZGQuDQogDQogDQogDQo+KiBNb3ZlIGdldF9ub25fb3ZlcmxvYWRlZF9pbnN0 YW5jZSB0byBmdW5jdGlvbl9iYXNlLg0KIA0KIA0KIA0KPiANCiANCiANCiAN Cj5VcGRhdGUgaW4gdjI6DQogDQogDQogDQo+IA0KIA0KIA0KIA0KPiogQWRk IGdldF9ub25fb3ZlcmxvYWRlZF9pbnN0YW5jZSBmb3IgZnVuY3Rpb24gaW5z dGFuY2UuDQogDQogDQogDQo+KiBGaXggb3ZlcmxvYWQgY2hlY2sgZm9yIHBv bGljeSBmdW5jdGlvbi4NCiANCiANCiANCj4qIEVucmljaCB0aGUgdGVzdCBj YXNlcyBjaGVjay4NCiANCiANCiANCj4gDQogDQogDQogDQo+T3JpZ2luYWwg bG9nOg0KIA0KIA0KIA0KPiANCiANCiANCiANCj5UaGlzIHBhdGNoIHdvdWxk IGxpa2UgYWRkIHRoZSBmcmFtZXdvcmsgdG8gc3VwcG9ydCB0aGUgUlZWIG92 ZXJsb2FkZWQNCiANCiANCiANCj5pbnRyaW5zaWMgQVBJIGluIHJpc2N2LXh4 eC14eHgtZ2NjLCBsaWtlIHJpc2N2LXh4eC14eHgtZysrIGRpZC4NCiANCiAN CiANCj4gDQogDQogDQogDQo+SG93ZXZlciwgaXQgYWxtb3N0IGxldmVyYWdl IHRoZSBob29rIFRBUkdFVF9SRVNPTFZFX09WRVJMT0FERURfQlVJTFRJTg0K IA0KIA0KIA0KPndpdGggYmVsb3cgc3RlcHMuDQogDQogDQogDQo+IA0KIA0K IA0KIA0KPiogUmVnaXN0ZXIgb3ZlcmxvYWRlZCBmdW5jdGlvbnMuDQogDQog DQogDQo+KiBBZGQgZnVuY3Rpb25fcmVzb2x2ZXIgZm9yIG92ZXJsb2FkZWQg ZnVuY3Rpb24gcmVzb2x2aW5nLg0KIA0KIA0KIA0KPiogQWRkIHJlc29sdmUg QVBJIGZvciBmdW5jdGlvbiBzaGFwZSB3aXRoIGRlZmF1bHQgaW1wbGVtZW50 YXRpb24uDQogDQogDQogDQo+KiBJbXBsZW1lbnQgSE9PSyBmb3IgbmF2aWdh dGluZyB0aGUgb3ZlcmxvYWRlZCBBUEkgdG8gbm9uLW92ZXJsb2FkZWQgQVBJ Lg0KIA0KIA0KIA0KPiANCiANCiANCiANCj5nY2MvQ2hhbmdlTG9nOg0KIA0K IA0KIA0KPiANCiANCiANCiANCj4gICAgICAgICogY29uZmlnL3Jpc2N2L3Jp c2N2LWMuY2MgKHJpc2N2X3Jlc29sdmVfb3ZlcmxvYWRlZF9idWlsdGluKTog TmV3IGZ1bmN0aW9uIGZvciB0aGUgaG9vay4NCiANCiANCiANCj4gICAgICAg IChyaXNjdl9yZWdpc3Rlcl9wcmFnbWFzKTogUmVnaXN0ZXIgdGhlIGhvb2su DQogDQogDQogDQo+ICAgICAgICAqIGNvbmZpZy9yaXNjdi9yaXNjdi1wcm90 b3MuaCAocmVzb2x2ZV9vdmVybG9hZGVkX2J1aWx0aW4pOiBOZXcgZGVjbC4N CiANCiANCiANCj4gICAgICAgICogY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rv ci1idWlsdGlucy1zaGFwZXMuY2MgKGJ1aWxkX29uZSk6IFJlZ2lzdGVyIG92 ZXJsb2FkZWQgZnVuY3Rpb24uDQogDQogDQogDQo+ICAgICAgICAqIGNvbmZp Zy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMuY2MgKHN0cnVjdCBub25f b3ZlcmxvYWRlZF9yZWdpc3RlcmVkX2Z1bmN0aW9uX2hhc2hlcik6DQogDQog DQogDQo+ICAgICAgICAgIE5ldyBoYXNoIHRhYmxlLg0KIA0KIA0KIA0KPiAg ICAgICAgKGZ1bmN0aW9uX2J1aWxkZXI6OmFkZF9mdW5jdGlvbik6IEFkZCBv dmVybG9hZGVkIGFyZy4NCiANCiANCiANCj4gICAgICAgIChmdW5jdGlvbl9i dWlsZGVyOjphZGRfdW5pcXVlX2Z1bmN0aW9uKTogTWFwIG92ZXJsb2FkZWQg ZnVuY3Rpb24gdG8gbm9uLW92ZXJsb2FkZWQgZnVuY3Rpb24uDQogDQogDQog DQo+ICAgICAgICAoZnVuY3Rpb25fYnVpbGRlcjo6YWRkX292ZXJsb2FkZWRf ZnVuY3Rpb24pOiBOZXcgQVBJIGltcGwuDQogDQogDQogDQo+ICAgICAgICAo cmVnaXN0ZXJlZF9mdW5jdGlvbjo6b3ZlcmxvYWRlZF9oYXNoKTogQ2FsY3Vs YXRlIGhhc2ggdmFsdWUuDQogDQogDQogDQo+ICAgICAgICAobWF5YmVfcmVx dWlyZV9mcm1fcCk6IE5ldyBmdW5jdGlvbiBpbXBsLg0KIA0KIA0KIA0KPiAg ICAgICAgKG1heWJlX3JlcXVpcmVfdnhybV9wKTogRGl0dG8uDQogDQogDQog DQo+ICAgICAgICAoaGFzX3Z4cm1fb3JfZnJtX3ApOiBEaXR0by4NCiANCiAN CiANCj4gICAgICAgIChub25fb3ZlcmxvYWRlZF9yZWdpc3RlcmVkX2Z1bmN0 aW9uX2hhc2hlcjo6aGFzaCk6IERpdHRvLg0KIA0KIA0KIA0KPiAgICAgICAg KG5vbl9vdmVybG9hZGVkX3JlZ2lzdGVyZWRfZnVuY3Rpb25faGFzaGVyOjpl cXVhbCk6IERpdHRvLg0KIA0KIA0KIA0KPiAgICAgICAgKGhhbmRsZV9wcmFn bWFfdmVjdG9yKTogQWxsb2NhdGUgc3BhY2UgZm9yIGhhc2ggdGFibGUuDQog DQogDQogDQo+ICAgICAgICAocmVzb2x2ZV9vdmVybG9hZGVkX2J1aWx0aW4p OiBOZXcgZnVuY3Rpb24gaW1wbC4NCiANCiANCiANCj4gICAgICAgICogY29u ZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5oOiBBZGQgYWRkaXRp b25hbCBwYXJhbWV0ZXJzIHRvIGFkZF9mdW5jdGlvbi4NCiANCiANCiANCj4g DQogDQogDQogDQo+Z2NjL3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6DQogDQogDQog DQo+IA0KIA0KIA0KIA0KPiAgICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2L3J2 di9iYXNlL292ZXJsb2FkZWRfcnYzMl92YWRkLmM6IE5ldyB0ZXN0Lg0KIA0K IA0KIA0KPiAgICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292 ZXJsb2FkZWRfcnYzMl92ZmFkZC5jOiBOZXcgdGVzdC4NCiANCiANCiANCj4g ICAgICAgICogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVk X3J2MzJfdmdldF92c2V0LmM6IE5ldyB0ZXN0Lg0KIA0KIA0KIA0KPiAgICAg ICAgKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfcnYz Ml92bG94c2VnMmVpMTYuYzogTmV3IHRlc3QuDQogDQogDQogDQo+ICAgICAg ICAqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjMy X3Ztdi5jOiBOZXcgdGVzdC4NCiANCiANCiANCj4gICAgICAgICogZ2NjLnRh cmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3J2MzJfdnJlaW50ZXJw cmV0LmM6IE5ldyB0ZXN0Lg0KIA0KIA0KIA0KPiAgICAgICAgKiBnY2MudGFy Z2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfcnY2NF92YWRkLmM6IE5l dyB0ZXN0Lg0KIA0KIA0KIA0KPiAgICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2 L3J2di9iYXNlL292ZXJsb2FkZWRfcnY2NF92ZmFkZC5jOiBOZXcgdGVzdC4N CiANCiANCiANCj4gICAgICAgICogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFz ZS9vdmVybG9hZGVkX3J2NjRfdmdldF92c2V0LmM6IE5ldyB0ZXN0Lg0KIA0K IA0KIA0KPiAgICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292 ZXJsb2FkZWRfcnY2NF92bG94c2VnMmVpMTYuYzogTmV3IHRlc3QuDQogDQog DQogDQo+ICAgICAgICAqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3Zl cmxvYWRlZF9ydjY0X3Ztdi5jOiBOZXcgdGVzdC4NCiANCiANCiANCj4gICAg ICAgICogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3J2 NjRfdnJlaW50ZXJwcmV0LmM6IE5ldyB0ZXN0Lg0KIA0KIA0KIA0KPiAgICAg ICAgKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfdmFk ZC5oOiBOZXcgdGVzdC4NCiANCiANCiANCj4gICAgICAgICogZ2NjLnRhcmdl dC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3ZmYWRkLmg6IE5ldyB0ZXN0 Lg0KIA0KIA0KIA0KPiAgICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9i YXNlL292ZXJsb2FkZWRfdmdldF92c2V0Lmg6IE5ldyB0ZXN0Lg0KIA0KIA0K IA0KPiAgICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJs b2FkZWRfdmxveHNlZzJlaTE2Lmg6IE5ldyB0ZXN0Lg0KIA0KIA0KIA0KPiAg ICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRf dm12Lmg6IE5ldyB0ZXN0Lg0KIA0KIA0KIA0KPiAgICAgICAgKiBnY2MudGFy Z2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfdnJlaW50ZXJwcmV0Lmg6 IE5ldyB0ZXN0Lg0KIA0KIA0KIA0KPiANCiANCiANCiANCj5TaWduZWQtb2Zm LWJ5OiBMaSBYdSA8eHVsaTFAZXN3aW5jb21wdXRpbmcuY29tPg0KIA0KIA0K IA0KPkNvLUF1dGhvcmVkLUJ5OiBQYW4gTGkgPHBhbjIubGlAaW50ZWwuY29t Pg0KIA0KIA0KIA0KPi0tLQ0KIA0KIA0KIA0KPmdjYy9jb25maWcvcmlzY3Yv cmlzY3YtYy5jYyAgICAgICAgICAgICAgICAgICB8ICAzNiArKy0NCiANCiAN CiANCj5nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXByb3Rvcy5oICAgICAgICAg ICAgICAgfCAgIDEgKw0KIA0KIA0KIA0KPi4uLi9yaXNjdi9yaXNjdi12ZWN0 b3ItYnVpbHRpbnMtc2hhcGVzLmNjICAgICB8ICAgMSArDQogDQogDQogDQo+ Z2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMuY2MgICAg IHwgMjU5ICsrKysrKysrKysrKysrKysrLQ0KIA0KIA0KIA0KPmdjYy9jb25m aWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmggICAgICB8ICAgNSAr LQ0KIA0KIA0KIA0KPi4uLi9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3J2 MzJfdmFkZC5jICAgICB8ICAxMiArDQogDQogDQogDQo+Li4uL3Jpc2N2L3J2 di9iYXNlL292ZXJsb2FkZWRfcnYzMl92ZmFkZC5jICAgIHwgIDEyICsNCiAN CiANCiANCj4uLi4vcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjMyX3ZnZXRfdnNl dC5jICAgICAgfCAgIDcgKw0KIA0KIA0KIA0KPi4uLi9ydnYvYmFzZS9vdmVy bG9hZGVkX3J2MzJfdmxveHNlZzJlaTE2LmMgICB8ICAxMSArDQogDQogDQog DQo+Li4uL3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfcnYzMl92bXYuYyAg ICAgIHwgIDEwICsNCiANCiANCiANCj4uLi4vcnZ2L2Jhc2Uvb3ZlcmxvYWRl ZF9ydjMyX3ZyZWludGVycHJldC5jICAgfCAgMTAgKw0KIA0KIA0KIA0KPi4u Li9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3J2NjRfdmFkZC5jICAgICB8 ICAxMSArDQogDQogDQogDQo+Li4uL3Jpc2N2L3J2di9iYXNlL292ZXJsb2Fk ZWRfcnY2NF92ZmFkZC5jICAgIHwgIDExICsNCiANCiANCiANCj4uLi4vcnZ2 L2Jhc2Uvb3ZlcmxvYWRlZF9ydjY0X3ZnZXRfdnNldC5jICAgICAgfCAgIDYg Kw0KIA0KIA0KIA0KPi4uLi9ydnYvYmFzZS9vdmVybG9hZGVkX3J2NjRfdmxv eHNlZzJlaTE2LmMgICB8ICAxMCArDQogDQogDQogDQo+Li4uL3Jpc2N2L3J2 di9iYXNlL292ZXJsb2FkZWRfcnY2NF92bXYuYyAgICAgIHwgIDEwICsNCiAN CiANCiANCj4uLi4vcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjY0X3ZyZWludGVy cHJldC5jICAgfCAgIDkgKw0KIA0KIA0KIA0KPi4uLi9yaXNjdi9ydnYvYmFz ZS9vdmVybG9hZGVkX3ZhZGQuaCAgICAgICAgICB8ICA1OSArKysrDQogDQog DQogDQo+Li4uL3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfdmZhZGQuaCAg ICAgICAgIHwgIDY3ICsrKysrDQogDQogDQogDQo+Li4uL3Jpc2N2L3J2di9i YXNlL292ZXJsb2FkZWRfdmdldF92c2V0LmggICAgIHwgIDI3ICsrDQogDQog DQogDQo+Li4uL3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfdmxveHNlZzJl aTE2LmggIHwgIDM5ICsrKw0KIA0KIA0KIA0KPi4uLi9yaXNjdi9ydnYvYmFz ZS9vdmVybG9hZGVkX3Ztdi5oICAgICAgICAgICB8ICAyNiArKw0KIA0KIA0K IA0KPi4uLi9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3ZyZWludGVycHJl dC5oICB8ICAyOSArKw0KIA0KIA0KIA0KPjIzIGZpbGVzIGNoYW5nZWQsIDY1 OSBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQ0KIA0KIA0KIA0KPmNy ZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlz Y3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjMyX3ZhZGQuYw0KIA0KIA0KIA0K PmNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjMyX3ZmYWRkLmMNCiANCiAN CiANCj5jcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfcnYzMl92Z2V0X3ZzZXQu Yw0KIA0KIA0KIA0KPmNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjMyX3Zs b3hzZWcyZWkxNi5jDQogDQogDQogDQo+Y3JlYXRlIG1vZGUgMTAwNjQ0IGdj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9h ZGVkX3J2MzJfdm12LmMNCiANCiANCiANCj5jcmVhdGUgbW9kZSAxMDA2NDQg Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJs b2FkZWRfcnYzMl92cmVpbnRlcnByZXQuYw0KIA0KIA0KIA0KPmNyZWF0ZSBt b2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2 L2Jhc2Uvb3ZlcmxvYWRlZF9ydjY0X3ZhZGQuYw0KIA0KIA0KIA0KPmNyZWF0 ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3Yv cnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjY0X3ZmYWRkLmMNCiANCiANCiANCj5j cmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jp c2N2L3J2di9iYXNlL292ZXJsb2FkZWRfcnY2NF92Z2V0X3ZzZXQuYw0KIA0K IA0KIA0KPmNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjY0X3Zsb3hzZWcy ZWkxNi5jDQogDQogDQogDQo+Y3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3J2 NjRfdm12LmMNCiANCiANCiANCj5jcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRf cnY2NF92cmVpbnRlcnByZXQuYw0KIA0KIA0KIA0KPmNyZWF0ZSBtb2RlIDEw MDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uv b3ZlcmxvYWRlZF92YWRkLmgNCiANCiANCiANCj5jcmVhdGUgbW9kZSAxMDA2 NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292 ZXJsb2FkZWRfdmZhZGQuaA0KIA0KIA0KIA0KPmNyZWF0ZSBtb2RlIDEwMDY0 NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3Zl cmxvYWRlZF92Z2V0X3ZzZXQuaA0KIA0KIA0KIA0KPmNyZWF0ZSBtb2RlIDEw MDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uv b3ZlcmxvYWRlZF92bG94c2VnMmVpMTYuaA0KIA0KIA0KIA0KPmNyZWF0ZSBt b2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2 L2Jhc2Uvb3ZlcmxvYWRlZF92bXYuaA0KIA0KIA0KIA0KPmNyZWF0ZSBtb2Rl IDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jh c2Uvb3ZlcmxvYWRlZF92cmVpbnRlcnByZXQuaA0KIA0KIA0KIA0KPiANCiAN CiANCiANCj5kaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi1j LmNjIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi1jLmNjDQogDQogDQogDQo+ aW5kZXggMjgzMDUyYWUzMTMuLmJlZGY3MjE3MzkwIDEwMDY0NA0KIA0KIA0K IA0KPi0tLSBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtYy5jYw0KIA0KIA0K IA0KPisrKyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YtYy5jYw0KIA0KIA0K IA0KPkBAIC0yMTUsMTYgKzIxNSw1MCBAQCByaXNjdl9jaGVja19idWlsdGlu X2NhbGwgKGxvY2F0aW9uX3QgbG9jLCB2ZWM8bG9jYXRpb25fdD4gYXJnX2xv YywgdHJlZSBmbmRlY2wsDQogDQogDQogDQo+ICAgICBjYXNlIFJJU0NWX0JV SUxUSU5fVkVDVE9SOg0KIA0KIA0KIA0KPiAgICAgICByZXR1cm4gcmlzY3Zf dmVjdG9yOjpjaGVja19idWlsdGluX2NhbGwgKGxvYywgYXJnX2xvYywgc3Vi Y29kZSwNCiANCiANCiANCj4tICAgICAgICBvcmlnX2ZuZGVjbCwgbmFyZ3Ms IGFyZ3MpOw0KIA0KIA0KIA0KPisgICAgICAgIGZuZGVjbCwgbmFyZ3MsIGFy Z3MpOw0KIA0KIA0KIA0KPiAgICAgfQ0KIA0KIA0KIA0KPiAgIGdjY191bnJl YWNoYWJsZSAoKTsNCiANCiANCiANCj59DQogDQogDQogDQo+Ky8qIEltcGxl bWVudCBUQVJHRVRfUkVTT0xWRV9PVkVSTE9BREVEX0JVSUxUSU4uICAqLw0K IA0KIA0KIA0KPitzdGF0aWMgdHJlZQ0KIA0KIA0KIA0KPityaXNjdl9yZXNv bHZlX292ZXJsb2FkZWRfYnVpbHRpbiAodW5zaWduZWQgaW50IHVuY2FzdF9s b2NhdGlvbiwgdHJlZSBmbmRlY2wsDQogDQogDQogDQo+KyAgIHZvaWQgKnVu Y2FzdF9hcmdsaXN0KQ0KIA0KIA0KIA0KPit7DQogDQogDQogDQo+KyAgdmVj PHRyZWUsIHZhX2djPiBlbXB0eSA9IHt9Ow0KIA0KIA0KIA0KPisgIGxvY2F0 aW9uX3QgbG9jID0gKGxvY2F0aW9uX3QpIHVuY2FzdF9sb2NhdGlvbjsNCiAN CiANCiANCj4rICB2ZWM8dHJlZSwgdmFfZ2M+ICphcmdsaXN0ID0gKHZlYzx0 cmVlLCB2YV9nYz4gKikgdW5jYXN0X2FyZ2xpc3Q7DQogDQogDQogDQo+KyAg dW5zaWduZWQgaW50IGNvZGUgPSBERUNMX01EX0ZVTkNUSU9OX0NPREUgKGZu ZGVjbCk7DQogDQogDQogDQo+KyAgdW5zaWduZWQgaW50IHN1YmNvZGUgPSBj b2RlID4+IFJJU0NWX0JVSUxUSU5fU0hJRlQ7DQogDQogDQogDQo+KyAgdHJl ZSBuZXdfZm5kZWNsID0gTlVMTF9UUkVFOw0KIA0KIA0KIA0KPisNCiANCiAN CiANCj4rICBpZiAoIWFyZ2xpc3QpDQogDQogDQogDQo+KyAgICBhcmdsaXN0 ID0gJmVtcHR5Ow0KIA0KIA0KIA0KPisNCiANCiANCiANCj4rICBzd2l0Y2gg KGNvZGUgJiBSSVNDVl9CVUlMVElOX0NMQVNTKQ0KIA0KIA0KIA0KPisgICAg ew0KIA0KIA0KIA0KPisgICAgY2FzZSBSSVNDVl9CVUlMVElOX0dFTkVSQUw6 DQogDQogDQogDQo+KyAgICAgIGJyZWFrOw0KIA0KIA0KIA0KPisgICAgY2Fz ZSBSSVNDVl9CVUlMVElOX1ZFQ1RPUjoNCiANCiANCiANCj4rICAgICAgbmV3 X2ZuZGVjbCA9IHJpc2N2X3ZlY3Rvcjo6cmVzb2x2ZV9vdmVybG9hZGVkX2J1 aWx0aW4gKHN1YmNvZGUsIGFyZ2xpc3QpOw0KIA0KIA0KIA0KPisgICAgICBi cmVhazsNCiANCiANCiANCj4rICAgIGRlZmF1bHQ6DQogDQogDQogDQo+KyAg ICAgIGdjY191bnJlYWNoYWJsZSAoKTsNCiANCiANCiANCj4rICAgIH0NCiAN CiANCiANCj4rDQogDQogDQogDQo+KyAgaWYgKG5ld19mbmRlY2wgPT0gTlVM TF9UUkVFKQ0KIA0KIA0KIA0KPisgICAgcmV0dXJuIG5ld19mbmRlY2w7DQog DQogDQogDQo+Kw0KIA0KIA0KIA0KPisgIHJldHVybiBidWlsZF9mdW5jdGlv bl9jYWxsX3ZlYyAobG9jLCB2TlVMTCwgbmV3X2ZuZGVjbCwgYXJnbGlzdCwg TlVMTCwNCiANCiANCiANCj4rICAgZm5kZWNsKTsNCiANCiANCiANCj4rfQ0K IA0KIA0KIA0KPisNCiANCiANCiANCj4vKiBJbXBsZW1lbnQgUkVHSVNURVJf VEFSR0VUX1BSQUdNQVMuICAqLw0KIA0KIA0KIA0KPnZvaWQNCiANCiANCiAN Cj5yaXNjdl9yZWdpc3Rlcl9wcmFnbWFzICh2b2lkKQ0KIA0KIA0KIA0KPnsN CiANCiANCiANCj4rICB0YXJnZXRtLnJlc29sdmVfb3ZlcmxvYWRlZF9idWls dGluID0gcmlzY3ZfcmVzb2x2ZV9vdmVybG9hZGVkX2J1aWx0aW47DQogDQog DQogDQo+ICAgdGFyZ2V0bS5jaGVja19idWlsdGluX2NhbGwgPSByaXNjdl9j aGVja19idWlsdGluX2NhbGw7DQogDQogDQogDQo+ICAgY19yZWdpc3Rlcl9w cmFnbWEgKCJyaXNjdiIsICJpbnRyaW5zaWMiLCByaXNjdl9wcmFnbWFfaW50 cmluc2ljKTsNCiANCiANCiANCj59DQogDQogDQogDQo+ZGlmZiAtLWdpdCBh L2djYy9jb25maWcvcmlzY3YvcmlzY3YtcHJvdG9zLmggYi9nY2MvY29uZmln L3Jpc2N2L3Jpc2N2LXByb3Rvcy5oDQogDQogDQogDQo+aW5kZXggMjkyNmQ1 ZDUwZDUuLjU4MzYzMzNiYzVkIDEwMDY0NA0KIA0KIA0KIA0KPi0tLSBhL2dj Yy9jb25maWcvcmlzY3YvcmlzY3YtcHJvdG9zLmgNCiANCiANCiANCj4rKysg Yi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXByb3Rvcy5oDQogDQogDQogDQo+ QEAgLTQzMCw2ICs0MzAsNyBAQCBnaW1wbGUgKmdpbXBsZV9mb2xkX2J1aWx0 aW4gKHVuc2lnbmVkIGludCwgZ2ltcGxlX3N0bXRfaXRlcmF0b3IgKiwgZ2Nh bGwgKik7DQogDQogDQogDQo+cnR4IGV4cGFuZF9idWlsdGluICh1bnNpZ25l ZCBpbnQsIHRyZWUsIHJ0eCk7DQogDQogDQogDQo+Ym9vbCBjaGVja19idWls dGluX2NhbGwgKGxvY2F0aW9uX3QsIHZlYzxsb2NhdGlvbl90PiwgdW5zaWdu ZWQgaW50LA0KIA0KIA0KIA0KPiAgIHRyZWUsIHVuc2lnbmVkIGludCwgdHJl ZSAqKTsNCiANCiANCiANCj4rdHJlZSByZXNvbHZlX292ZXJsb2FkZWRfYnVp bHRpbiAodW5zaWduZWQgaW50LCB2ZWM8dHJlZSwgdmFfZ2M+ICopOw0KIA0K IA0KIA0KPmJvb2wgY29uc3RfdmVjX2FsbF9zYW1lX2luX3JhbmdlX3AgKHJ0 eCwgSE9TVF9XSURFX0lOVCwgSE9TVF9XSURFX0lOVCk7DQogDQogDQogDQo+ Ym9vbCBsZWdpdGltaXplX21vdmUgKHJ0eCwgcnR4ICopOw0KIA0KIA0KIA0K PnZvaWQgZW1pdF92bG1heF92c2V0dmwgKG1hY2hpbmVfbW9kZSwgcnR4KTsN CiANCiANCiANCj5kaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNj di12ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmNjIGIvZ2NjL2NvbmZpZy9yaXNj di9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmNjDQogDQogDQogDQo+ aW5kZXggMGJkYTkzNGFlMTYuLmVlNTcwNDU4Y2U5IDEwMDY0NA0KIA0KIA0K IA0KPi0tLSBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0 aW5zLXNoYXBlcy5jYw0KIA0KIA0KIA0KPisrKyBiL2djYy9jb25maWcvcmlz Y3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXNoYXBlcy5jYw0KIA0KIA0KIA0K PkBAIC00OSw2ICs0OSw3IEBAIGJ1aWxkX29uZSAoZnVuY3Rpb25fYnVpbGRl ciAmYiwgY29uc3QgZnVuY3Rpb25fZ3JvdXBfaW5mbyAmZ3JvdXAsDQogDQog DQogDQo+ICAgICBncm91cC5vcHNfaW5mb3MudHlwZXNbdmVjX3R5cGVfaWR4 XS5pbmRleCk7DQogDQogDQogDQo+ICAgYi5hbGxvY2F0ZV9hcmd1bWVudF90 eXBlcyAoZnVuY3Rpb25faW5zdGFuY2UsIGFyZ3VtZW50X3R5cGVzKTsNCiAN CiANCiANCj4gICBiLmFwcGx5X3ByZWRpY2F0aW9uIChmdW5jdGlvbl9pbnN0 YW5jZSwgcmV0dXJuX3R5cGUsIGFyZ3VtZW50X3R5cGVzKTsNCiANCiANCiAN Cj4rICBiLmFkZF9vdmVybG9hZGVkX2Z1bmN0aW9uIChmdW5jdGlvbl9pbnN0 YW5jZSwgKmdyb3VwLnNoYXBlKTsNCiANCiANCiANCj4gICBiLmFkZF91bmlx dWVfZnVuY3Rpb24gKGZ1bmN0aW9uX2luc3RhbmNlLCAoKmdyb3VwLnNoYXBl KSwgcmV0dXJuX3R5cGUsDQogDQogDQogDQo+YXJndW1lbnRfdHlwZXMpOw0K IA0KIA0KIA0KPn0NCiANCiANCiANCj5kaWZmIC0tZ2l0IGEvZ2NjL2NvbmZp Zy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMuY2MgYi9nY2MvY29uZmln L3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5jYw0KIA0KIA0KIA0KPmlu ZGV4IDVkNGRjMjY0ZmE2Li41YzcwZjdhOWM2YyAxMDA2NDQNCiANCiANCiAN Cj4tLS0gYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlu cy5jYw0KIA0KIA0KIA0KPisrKyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3Yt dmVjdG9yLWJ1aWx0aW5zLmNjDQogDQogDQogDQo+QEAgLTgwLDYgKzgwLDMy IEBAIHB1YmxpYzoNCiANCiANCiANCj4gICAvKiBUaGUgZGVjbCBpdHNlbGYu ICAqLw0KIA0KIA0KIA0KPiAgIHRyZWUgR1RZICgoc2tpcCkpIGRlY2w7DQog DQogDQogDQo+Kw0KIA0KIA0KIA0KPisgIC8qIFRoZSBvdmVybG9hZCBoYXNo IG9mIG5vbi1vdmVybG9hZGVkIGludHJpbnNpYyBpcyBkZXRlcm1pbmVkIGJ5 DQogDQogDQogDQo+KyAgICAgdGhlIG92ZXJsb2FkIG5hbWUgYW5kIGFyZ3Vt ZW50IGxpc3QuIEFkZGluZyB0aGUgb3ZlcmxvYWQgbmFtZSB0bw0KIA0KIA0K IA0KPisgICAgIHRoZSBoYXNoIGlzIGFsc28gdG8gYWRkcmVzcyB0aGUgZm9s bG93aW5nIHNpdHVhdGlvbnM6DQogDQogDQogDQo+KyAgICAgdmludDE2bWY0 X3QgIF9fcmlzY3ZfdnJlaW50ZXJwcmV0X2kxNm1mNCAodmZsb2F0MTZtZjRf dCBzcmMpOw0KIA0KIA0KIA0KPisgICAgIHZ1aW50MTZtZjRfdCBfX3Jpc2N2 X3ZyZWludGVycHJldF91MTZtZjQgKHZmbG9hdDE2bWY0X3Qgc3JjKTsNCiAN CiANCiANCj4rICAgICBUaGUgYmFzZSwgc2hhcGUgYW5kIGFyZ3VtZW50IGxp c3Qgb2YgdGhlIHZyZWludGVycHJldCBpbnN0YW5jZSBhcmUNCiANCiANCiAN Cj4rICAgICB0aGUgc2FtZSwgb25seSB0aGUgb3ZlcmxvYWQgbmFtZSBpcyBk aWZmZXJlbnQuIFRoZXJlZm9yZSwgaXQgaXMNCiANCiANCiANCj4rICAgICBl bm91Z2ggdG8gYWRkIG92ZXJsb2FkX25hbWUgYW5kIGFyZ3VtZW50IGxpc3Qg dG8gdGhlIGhhc2ggdmFsdWUuKi8NCiANCiANCiANCj4rICBjb25zdCBjaGFy ICpvdmVybG9hZF9uYW1lOw0KIA0KIA0KIA0KPisNCiANCiANCiANCj4rICAv KiBUaGUgYXJndW1lbnQgbGlzdCBwYXJ0IG9mIHRoZSBoYXNoIHZhbHVlLiBB ZGQgdGhlIHVuc2lnbmVkL3NpZ25lZCB0eXBlDQogDQogDQogDQo+KyAgICAg YW5kIG1hY2hpbmUgbW9kZSBvZiBlYWNoIGFyZ3VtZW50IHRvIHRoZSBoYXNo IHZhbHVlLiAqLw0KIA0KIA0KIA0KPisgIHZlYzx0cmVlPiBHVFkgKChza2lw KSkgYXJndW1lbnRfdHlwZXM7DQogDQogDQogDQo+Kw0KIA0KIA0KIA0KPisg IC8qIFRydWUgaWYgdGhlIGRlY2wgcmVwcmVzZW50cyBhbiBvdmVybG9hZGVk IGZ1bmN0aW9uIHRoYXQgbmVlZHMgdG8gYmUNCiANCiANCiANCj4rICAgICBy ZXNvbHZlZC4gKi8NCiANCiANCiANCj4rICBib29sIG92ZXJsb2FkZWRfcDsN CiANCiANCiANCj4rDQogDQogDQogDQo+KyAgLyogVGhlIGhhc2ggdmFsdWUg dG8gaW5kaWNhdGUgdGhlIG5vbi1vdmVybG9hZGVkIGZ1bmN0aW9uLiBHZW5l cmF0ZSBoYXNoIHZhbHVlDQogDQogDQogDQo+KyAgICAgYmFzZWQgb24gb3Zl cmxvYWRfbmFtZSBhbmQgYXJndW1lbnRfdHlwZXMuICovDQogDQogDQogDQo+ KyAgaGFzaHZhbF90IG92ZXJsb2FkZWRfaGFzaCAoKSBjb25zdDsNCiANCiAN CiANCj4rDQogDQogDQogDQo+KyAgLyogR2VuZXJhdGUgaGFzaCB2YWx1ZSBi YXNlZCBvbiB0aGUgb3ZlcmxvYWRfbmFtZSBhbmQgdGhlIGFyZ3VtZW50IGxp c3QgcGFzc2VkDQogDQogDQogDQo+KyAgICAgYnkgdGhlIHVzZXIgd2hlbiBj YWxsaW5nLiAqLw0KIA0KIA0KIA0KPisgIGhhc2h2YWxfdCBvdmVybG9hZGVk X2hhc2ggKGNvbnN0IHZlYzx0cmVlLCB2YV9nYz4gJik7DQogDQogDQogDQo+ fTsNCiANCiANCiANCj4vKiBIYXNoIHRyYWl0cyBmb3IgcmVnaXN0ZXJlZF9m dW5jdGlvbi4gICovDQogDQogDQogDQo+QEAgLTkxLDYgKzExNywxNCBAQCBz dHJ1Y3QgcmVnaXN0ZXJlZF9mdW5jdGlvbl9oYXNoZXIgOiBub2ZyZWVfcHRy X2hhc2g8cmVnaXN0ZXJlZF9mdW5jdGlvbj4NCiANCiANCiANCj4gICBzdGF0 aWMgYm9vbCBlcXVhbCAodmFsdWVfdHlwZSwgY29uc3QgY29tcGFyZV90eXBl ICYpOw0KIA0KIA0KIA0KPn07DQogDQogDQogDQo+Ky8qIEhhc2ggdHJhaXRz IGZvciBvdmVybG9hZCByZWdpc3RlcmVkX2Z1bmN0aW9uLiAqLw0KIA0KIA0K IA0KPitzdHJ1Y3Qgbm9uX292ZXJsb2FkZWRfcmVnaXN0ZXJlZF9mdW5jdGlv bl9oYXNoZXINCiANCiANCiANCj4rICA6IG5vZnJlZV9wdHJfaGFzaDxyZWdp c3RlcmVkX2Z1bmN0aW9uPg0KIA0KIA0KIA0KPit7DQogDQogDQogDQo+KyAg c3RhdGljIGhhc2h2YWxfdCBoYXNoICh2YWx1ZV90eXBlKTsNCiANCiANCiAN Cj4rICBzdGF0aWMgYm9vbCBlcXVhbCAodmFsdWVfdHlwZSwgY29uc3QgY29t cGFyZV90eXBlICYpOw0KIA0KIA0KIA0KPit9Ow0KIA0KIA0KIA0KPisNCiAN CiANCiANCj4vKiBTdGF0aWMgaW5mb3JtYXRpb24gYWJvdXQgZWFjaCBSVlYg dHlwZS4gICovDQogDQogDQogDQo+c3RhdGljIENPTlNURVhQUiBjb25zdCB2 ZWN0b3JfdHlwZV9pbmZvIHZlY3Rvcl90eXBlc1tdID0gew0KIA0KIA0KIA0K PiNkZWZpbmUgREVGX1JWVl9UWVBFKE5BTUUsIE5DSEFSUywgQUJJX05BTUUs IEFSR1MuLi4pICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogDQogDQog DQo+QEAgLTI2MTEsNiArMjY0NSwxMiBAQCBzdGF0aWMgR1RZICgoKSkgdmVj PHJlZ2lzdGVyZWRfZnVuY3Rpb24gKiwgdmFfZ2M+ICpyZWdpc3RlcmVkX2Z1 bmN0aW9uczsNCiANCiANCiANCj4gICAgb3ZlcmxvYWRlZCBmdW5jdGlvbnMu ICAqLw0KIA0KIA0KIA0KPnN0YXRpYyBoYXNoX3RhYmxlPHJlZ2lzdGVyZWRf ZnVuY3Rpb25faGFzaGVyPiAqZnVuY3Rpb25fdGFibGU7DQogDQogDQogDQo+ Ky8qIEFsbCByZWdpc3RlcmVkIGZ1bmN0aW9uIGRlY2xzLCBoYXNoZWQgb24g b3ZlcmxvYWRfbmFtZSBhbmQgYXJndW1lbnQgbGlzdA0KIA0KIA0KIA0KPisg ICBvZiB0aGUgcmVnaXN0ZXJlZF9mdW5jdGlvbi4gIFRoaXMgaXMgdXNlZCBm b3IgbG9va2luZyB1cCBpbXBsZW1lbnRhdGlvbnMNCiANCiANCiANCj4rICAg b2Ygbm9uLW92ZXJsb2FkZWQgZnVuY3Rpb25zLiAqLw0KIA0KIA0KIA0KPitz dGF0aWMgaGFzaF90YWJsZTxub25fb3ZlcmxvYWRlZF9yZWdpc3RlcmVkX2Z1 bmN0aW9uX2hhc2hlcj4NCiANCiANCiANCj4rICAqbm9uX292ZXJsb2FkZWRf ZnVuY3Rpb25fdGFibGU7DQogDQogDQogDQo+Kw0KIA0KIA0KIA0KPi8qIFJB SUkgY2xhc3MgZm9yIGVuYWJsaW5nIGVub3VnaCBSVlYgZmVhdHVyZXMgdG8g ZGVmaW5lIHRoZSBidWlsdC1pbg0KIA0KIA0KIA0KPiAgICB0eXBlcyBhbmQg aW1wbGVtZW50IHRoZSByaXNjdl92ZWN0b3IuaCBwcmFnbWEuDQogDQogDQog DQo+QEAgLTMzNjksNyArMzQwOSw5IEBAIGZ1bmN0aW9uX2J1aWxkZXI6Omdl dF9hdHRyaWJ1dGVzIChjb25zdCBmdW5jdGlvbl9pbnN0YW5jZSAmaW5zdGFu Y2UpDQogDQogDQogDQo+cmVnaXN0ZXJlZF9mdW5jdGlvbiAmDQogDQogDQog DQo+ZnVuY3Rpb25fYnVpbGRlcjo6YWRkX2Z1bmN0aW9uIChjb25zdCBmdW5j dGlvbl9pbnN0YW5jZSAmaW5zdGFuY2UsDQogDQogDQogDQo+Y29uc3QgY2hh ciAqbmFtZSwgdHJlZSBmbnR5cGUsIHRyZWUgYXR0cnMsDQogDQogDQogDQo+ LSBib29sIHBsYWNlaG9sZGVyX3ApDQogDQogDQogDQo+KyBib29sIHBsYWNl aG9sZGVyX3AsIGNvbnN0IGNoYXIgKm92ZXJsb2FkX25hbWUsDQogDQogDQog DQo+KyBjb25zdCB2ZWM8dHJlZT4gJmFyZ3VtZW50X3R5cGVzLA0KIA0KIA0K IA0KPisgYm9vbCBvdmVybG9hZGVkX3AgPSBmYWxzZSkNCiANCiANCiANCj57 DQogDQogDQogDQo+ICAgdW5zaWduZWQgaW50IGNvZGUgPSB2ZWNfc2FmZV9s ZW5ndGggKHJlZ2lzdGVyZWRfZnVuY3Rpb25zKTsNCiANCiANCiANCj4gICBj b2RlID0gKGNvZGUgPDwgUklTQ1ZfQlVJTFRJTl9TSElGVCkgKyBSSVNDVl9C VUlMVElOX1ZFQ1RPUjsNCiANCiANCiANCj5AQCAtMzM5NSw2ICszNDM3LDkg QEAgZnVuY3Rpb25fYnVpbGRlcjo6YWRkX2Z1bmN0aW9uIChjb25zdCBmdW5j dGlvbl9pbnN0YW5jZSAmaW5zdGFuY2UsDQogDQogDQogDQo+ICAgcmVnaXN0 ZXJlZF9mdW5jdGlvbiAmcmZuID0gKmdnY19hbGxvYzxyZWdpc3RlcmVkX2Z1 bmN0aW9uPiAoKTsNCiANCiANCiANCj4gICByZm4uaW5zdGFuY2UgPSBpbnN0 YW5jZTsNCiANCiANCiANCj4gICByZm4uZGVjbCA9IGRlY2w7DQogDQogDQog DQo+KyAgcmZuLm92ZXJsb2FkX25hbWUgPSBvdmVybG9hZF9uYW1lID8geHN0 cmR1cCAob3ZlcmxvYWRfbmFtZSkgOiBOVUxMOw0KIA0KIA0KIA0KPisgIHJm bi5hcmd1bWVudF90eXBlcyA9IGFyZ3VtZW50X3R5cGVzOw0KIA0KIA0KIA0K PisgIHJmbi5vdmVybG9hZGVkX3AgPSBvdmVybG9hZGVkX3A7DQogDQogDQog DQo+ICAgdmVjX3NhZmVfcHVzaCAocmVnaXN0ZXJlZF9mdW5jdGlvbnMsICZy Zm4pOw0KIA0KIA0KIA0KPiAgIHJldHVybiByZm47DQogDQogDQogDQo+QEAg LTM0MTUsNiArMzQ2MCwxMCBAQCBmdW5jdGlvbl9idWlsZGVyOjphZGRfdW5p cXVlX2Z1bmN0aW9uIChjb25zdCBmdW5jdGlvbl9pbnN0YW5jZSAmaW5zdGFu Y2UsDQogDQogDQogDQo+ICAgaWYgKCFjaGVja19yZXF1aXJlZF9leHRlbnNp b25zIChpbnN0YW5jZSkpDQogDQogDQogDQo+ICAgICByZXR1cm47DQogDQog DQogDQo+KyAgLyogQWxzbyBhZGQgdGhlIGZ1bmN0aW9uIHVuZGVyIGl0cyBv dmVybG9hZGVkIGFsaWFzLCBpZiB3ZSB3YW50DQogDQogDQogDQo+KyAgICAg YSBzZXBhcmF0ZSBkZWNsIGZvciBlYWNoIGluc3RhbmNlIG9mIGFuIG92ZXJs b2FkZWQgZnVuY3Rpb24uICAqLw0KIA0KIA0KIA0KPisgIGNoYXIgKm92ZXJs b2FkX25hbWUgPSBzaGFwZS0+Z2V0X25hbWUgKCp0aGlzLCBpbnN0YW5jZSwg dHJ1ZSk7DQogDQogDQogDQo+Kw0KIA0KIA0KIA0KPiAgIC8qIEFkZCB0aGUg ZnVuY3Rpb24gdW5kZXIgaXRzIGZ1bGwgKHVuaXF1ZSkgbmFtZS4gICovDQog DQogDQogDQo+ICAgY2hhciAqbmFtZSA9IHNoYXBlLT5nZXRfbmFtZSAoKnRo aXMsIGluc3RhbmNlLCBmYWxzZSk7DQogDQogDQogDQo+ICAgdHJlZSBmbnR5 cGUNCiANCiANCiANCj5AQCAtMzQyMiw3ICszNDcxLDggQEAgZnVuY3Rpb25f YnVpbGRlcjo6YWRkX3VuaXF1ZV9mdW5jdGlvbiAoY29uc3QgZnVuY3Rpb25f aW5zdGFuY2UgJmluc3RhbmNlLA0KIA0KIA0KIA0KPmFyZ3VtZW50X3R5cGVz LmFkZHJlc3MgKCkpOw0KIA0KIA0KIA0KPiAgIHRyZWUgYXR0cnMgPSBnZXRf YXR0cmlidXRlcyAoaW5zdGFuY2UpOw0KIA0KIA0KIA0KPiAgIHJlZ2lzdGVy ZWRfZnVuY3Rpb24gJnJmbg0KIA0KIA0KIA0KPi0gICAgPSBhZGRfZnVuY3Rp b24gKGluc3RhbmNlLCBuYW1lLCBmbnR5cGUsIGF0dHJzLCBmYWxzZSk7DQog DQogDQogDQo+KyAgICA9IGFkZF9mdW5jdGlvbiAoaW5zdGFuY2UsIG5hbWUs IGZudHlwZSwgYXR0cnMsIGZhbHNlLCBvdmVybG9hZF9uYW1lLA0KIA0KIA0K IA0KPisgICAgIGFyZ3VtZW50X3R5cGVzLmNvcHkgKCkpOw0KIA0KIA0KIA0K PiAgIC8qIEVudGVyIHRoZSBmdW5jdGlvbiBpbnRvIHRoZSBoYXNoIHRhYmxl LiAgKi8NCiANCiANCiANCj4gICBoYXNodmFsX3QgaGFzaCA9IGluc3RhbmNl Lmhhc2ggKCk7DQogDQogDQogDQo+QEAgLTM0MzEsMTkgKzM0ODEsNDUgQEAg ZnVuY3Rpb25fYnVpbGRlcjo6YWRkX3VuaXF1ZV9mdW5jdGlvbiAoY29uc3Qg ZnVuY3Rpb25faW5zdGFuY2UgJmluc3RhbmNlLA0KIA0KIA0KIA0KPiAgIGdj Y19hc3NlcnQgKCEqcmZuX3Nsb3QpOw0KIA0KIA0KIA0KPiAgICpyZm5fc2xv dCA9ICZyZm47DQogDQogDQogDQo+LSAgLyogQWxzbyBhZGQgdGhlIGZ1bmN0 aW9uIHVuZGVyIGl0cyBvdmVybG9hZGVkIGFsaWFzLCBpZiB3ZSB3YW50DQog DQogDQogDQo+LSAgICAgYSBzZXBhcmF0ZSBkZWNsIGZvciBlYWNoIGluc3Rh bmNlIG9mIGFuIG92ZXJsb2FkZWQgZnVuY3Rpb24uICAqLw0KIA0KIA0KIA0K Pi0gIGNoYXIgKm92ZXJsb2FkX25hbWUgPSBzaGFwZS0+Z2V0X25hbWUgKCp0 aGlzLCBpbnN0YW5jZSwgdHJ1ZSk7DQogDQogDQogDQo+ICAgaWYgKG92ZXJs b2FkX25hbWUpDQogDQogDQogDQo+ICAgICB7DQogDQogDQogDQo+ICAgICAg IC8qIEF0dHJpYnV0ZSBsaXN0cyBzaG91bGRuJ3QgYmUgc2hhcmVkLiAgKi8N CiANCiANCiANCj4gICAgICAgdHJlZSBhdHRycyA9IGdldF9hdHRyaWJ1dGVz IChpbnN0YW5jZSk7DQogDQogDQogDQo+ICAgICAgIGJvb2wgcGxhY2Vob2xk ZXJfcCA9ICFtX2RpcmVjdF9vdmVybG9hZHM7DQogDQogDQogDQo+LSAgICAg IGFkZF9mdW5jdGlvbiAoaW5zdGFuY2UsIG92ZXJsb2FkX25hbWUsIGZudHlw ZSwgYXR0cnMsIHBsYWNlaG9sZGVyX3ApOw0KIA0KIA0KIA0KPisgICAgICBh ZGRfZnVuY3Rpb24gKGluc3RhbmNlLCBvdmVybG9hZF9uYW1lLCBmbnR5cGUs IGF0dHJzLCBwbGFjZWhvbGRlcl9wLCBOVUxMLA0KIA0KIA0KIA0KPisgICAg IHZOVUxMKTsNCiANCiANCiANCj4rDQogDQogDQogDQo+KyAgICAgIC8qIEVu dGVyIHRoZSBmdW5jdGlvbiBpbnRvIHRoZSBub24tb3ZlcmxvYWRlZCBoYXNo IHRhYmxlLiAgKi8NCiANCiANCiANCj4rICAgICAgaGFzaCA9IHJmbi5vdmVy bG9hZGVkX2hhc2ggKCk7DQogDQogDQogDQo+KyAgICAgIHJmbl9zbG90ID0g bm9uX292ZXJsb2FkZWRfZnVuY3Rpb25fdGFibGUtPmZpbmRfc2xvdF93aXRo X2hhc2ggKCZyZm4sIGhhc2gsDQogDQogDQogDQo+KyAgICAgIElOU0VSVCk7 DQogDQogDQogDQo+KyAgICAgIGdjY19hc3NlcnQgKCEqcmZuX3Nsb3QpOw0K IA0KIA0KIA0KPisgICAgICAqcmZuX3Nsb3QgPSAmcmZuOw0KIA0KIA0KIA0K PiAgICAgfQ0KIA0KIA0KIA0KPiAgIG9ic3RhY2tfZnJlZSAoJm1fc3RyaW5n X29ic3RhY2ssIG5hbWUpOw0KIA0KIA0KIA0KPn0NCiANCiANCiANCj4rLyog QWRkIG92ZXJsb2FkZWQgZnVuY3Rpb24gZm9yIGdjYy4gKi8NCiANCiANCiAN Cj4rdm9pZA0KIA0KIA0KIA0KPitmdW5jdGlvbl9idWlsZGVyOjphZGRfb3Zl cmxvYWRlZF9mdW5jdGlvbiAoY29uc3QgZnVuY3Rpb25faW5zdGFuY2UgJmlu c3RhbmNlLA0KIA0KIA0KIA0KPisgICAgY29uc3QgZnVuY3Rpb25fc2hhcGUg KnNoYXBlKQ0KIA0KIA0KIA0KPit7DQogDQogDQogDQo+KyAgaWYgKCFjaGVj a19yZXF1aXJlZF9leHRlbnNpb25zIChpbnN0YW5jZSkpDQogDQogDQogDQo+ KyAgICByZXR1cm47DQogDQogDQogDQo+Kw0KIA0KIA0KIA0KPisgIGNoYXIg Km5hbWUgPSBzaGFwZS0+Z2V0X25hbWUgKCp0aGlzLCBpbnN0YW5jZSwgdHJ1 ZSk7DQogDQogDQogDQo+Kw0KIA0KIA0KIA0KPisgIGlmIChuYW1lKQ0KIA0K IA0KIA0KPisgICAgew0KIA0KIA0KIA0KPisgICAgICAvKiBUbyBhdm9pZCBB UEkgY29uZmxpY3RpbmcsIHRha2Ugdm9pZCByZXR1cm4gdHlwZSBhbmQgdm9p ZCBhcmd1bWVudA0KIA0KIA0KIA0KPisgZm9yIHRoZSBvdmVybG9hZGVkIGZ1 bmN0aW9uLiAgKi8NCiANCiANCiANCj4rICAgICAgdHJlZSBmbnR5cGUgPSBi dWlsZF9mdW5jdGlvbl90eXBlICh2b2lkX3R5cGVfbm9kZSwgdm9pZF9saXN0 X25vZGUpOw0KIA0KIA0KIA0KPisgICAgICBhZGRfZnVuY3Rpb24gKGluc3Rh bmNlLCBuYW1lLCBmbnR5cGUsIE5VTExfVFJFRSwgbV9kaXJlY3Rfb3Zlcmxv YWRzLCBuYW1lLA0KIA0KIA0KIA0KPisgICAgIHZOVUxMLCB0cnVlKTsNCiAN CiANCiANCj4rICAgICAgb2JzdGFja19mcmVlICgmbV9zdHJpbmdfb2JzdGFj aywgbmFtZSk7DQogDQogDQogDQo+KyAgICB9DQogDQogDQogDQo+K30NCiAN CiANCiANCj4rDQogDQogDQogDQo+ZnVuY3Rpb25fY2FsbF9pbmZvOjpmdW5j dGlvbl9jYWxsX2luZm8gKGxvY2F0aW9uX3QgbG9jYXRpb25faW4sDQogDQog DQogDQo+Y29uc3QgZnVuY3Rpb25faW5zdGFuY2UgJmluc3RhbmNlX2luLA0K IA0KIA0KIA0KPnRyZWUgZm5kZWNsX2luKQ0KIA0KIA0KIA0KPkBAIC0zOTkx LDYgKzQwNjcsMTU1IEBAIHJlZ2lzdGVyZWRfZnVuY3Rpb25faGFzaGVyOjpl cXVhbCAodmFsdWVfdHlwZSB2YWx1ZSwgY29uc3QgY29tcGFyZV90eXBlICZr ZXkpDQogDQogDQogDQo+ICAgcmV0dXJuIHZhbHVlLT5pbnN0YW5jZSA9PSBr ZXk7DQogDQogDQogDQo+fQ0KIA0KIA0KIA0KPitoYXNodmFsX3QNCiANCiAN CiANCj4rcmVnaXN0ZXJlZF9mdW5jdGlvbjo6b3ZlcmxvYWRlZF9oYXNoICgp IGNvbnN0DQogDQogDQogDQo+K3sNCiANCiANCiANCj4rICBpbmNoYXNoOjpo YXNoIGg7DQogDQogDQogDQo+KyAgdHJlZSB0eXBlOw0KIA0KIA0KIA0KPisg IHVuc2lnbmVkIGludCB1bnNpZ25lZF9wLCBtb2RlX3A7DQogDQogDQogDQo+ KyAgaC5hZGQgKG92ZXJsb2FkX25hbWUsIHN0cmxlbiAob3ZlcmxvYWRfbmFt ZSkpOw0KIA0KIA0KIA0KPisgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBp IDwgYXJndW1lbnRfdHlwZXMubGVuZ3RoICgpOyBpKyspDQogDQogDQogDQo+ KyAgICB7DQogDQogDQogDQo+KyAgICAgIHR5cGUgPSBhcmd1bWVudF90eXBl c1tpXTsNCiANCiANCiANCj4rICAgICAgdW5zaWduZWRfcCA9IFBPSU5URVJf VFlQRV9QICh0eXBlKSA/IFRZUEVfVU5TSUdORUQgKFRSRUVfVFlQRSAodHlw ZSkpDQogDQogDQogDQo+KyA6IFRZUEVfVU5TSUdORUQgKHR5cGUpOw0KIA0K IA0KIA0KPisgICAgICBtb2RlX3AgPSBQT0lOVEVSX1RZUEVfUCAodHlwZSkg PyBUWVBFX01PREUgKFRSRUVfVFlQRSAodHlwZSkpDQogDQogDQogDQo+KyAg ICAgIDogVFlQRV9NT0RFICh0eXBlKTsNCiANCiANCiANCj4rICAgICAgaC5h ZGRfaW50ICh1bnNpZ25lZF9wKTsNCiANCiANCiANCj4rICAgICAgaC5hZGRf aW50IChtb2RlX3ApOw0KIA0KIA0KIA0KPisgICAgfQ0KIA0KIA0KIA0KPisN CiANCiANCiANCj4rICByZXR1cm4gaC5lbmQgKCk7DQogDQogDQogDQo+K30N CiANCiANCiANCj4rDQogDQogDQogDQo+K3N0YXRpYyBib29sDQogDQogDQog DQo+K21heWJlX3JlcXVpcmVfZnJtX3AgKGZ1bmN0aW9uX2luc3RhbmNlICZp bnN0YW5jZSkNCiANCiANCiANCj4rew0KIA0KIA0KIA0KPisgIHJldHVybiBp bnN0YW5jZS5iYXNlID09IGJhc2VzOjp2ZndyZWR1c3VtDQogDQogDQogDQo+ KyB8fCBpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2ZndyZWRvc3VtIHx8IGlu c3RhbmNlLmJhc2UgPT0gYmFzZXM6OnZmYWRkDQogDQogDQogDQo+KyB8fCBp bnN0YW5jZS5iYXNlID09IGJhc2VzOjp2ZndzdWIgfHwgaW5zdGFuY2UuYmFz ZSA9PSBiYXNlczo6dmZ3bm1zYWMNCiANCiANCiANCj4rIHx8IGluc3RhbmNl LmJhc2UgPT0gYmFzZXM6OnZmd25tYWNjIHx8IGluc3RhbmNlLmJhc2UgPT0g YmFzZXM6OnZmd211bA0KIA0KIA0KIA0KPisgfHwgaW5zdGFuY2UuYmFzZSA9 PSBiYXNlczo6dmZjdnRfeCB8fCBpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2 ZmN2dF9mDQogDQogDQogDQo+KyB8fCBpbnN0YW5jZS5iYXNlID09IGJhc2Vz Ojp2ZmN2dF94dSB8fCBpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2Zndtc2Fj DQogDQogDQogDQo+KyB8fCBpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2Zndt YWNjIHx8IGluc3RhbmNlLmJhc2UgPT0gYmFzZXM6OnZmd2N2dF94DQogDQog DQogDQo+KyB8fCBpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2ZndhZGQgfHwg aW5zdGFuY2UuYmFzZSA9PSBiYXNlczo6dmZzdWINCiANCiANCiANCj4rIHx8 IGluc3RhbmNlLmJhc2UgPT0gYmFzZXM6OnZmc3FydCB8fCBpbnN0YW5jZS5i YXNlID09IGJhc2VzOjp2ZnJlZHVzdW0NCiANCiANCiANCj4rIHx8IGluc3Rh bmNlLmJhc2UgPT0gYmFzZXM6OnZmcnN1YiB8fCBpbnN0YW5jZS5iYXNlID09 IGJhc2VzOjp2ZnJlZG9zdW0NCiANCiANCiANCj4rIHx8IGluc3RhbmNlLmJh c2UgPT0gYmFzZXM6OnZmcmVjNyB8fCBpbnN0YW5jZS5iYXNlID09IGJhc2Vz Ojp2ZnJkaXYNCiANCiANCiANCj4rIHx8IGluc3RhbmNlLmJhc2UgPT0gYmFz ZXM6OnZmbm1zdWIgfHwgaW5zdGFuY2UuYmFzZSA9PSBiYXNlczo6dmZubXNh Yw0KIA0KIA0KIA0KPisgfHwgaW5zdGFuY2UuYmFzZSA9PSBiYXNlczo6dmZu bWFkZCB8fCBpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2Zm5tYWNjDQogDQog DQogDQo+KyB8fCBpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2Zm5jdnRfZiB8 fCBpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2Zm5jdnRfeA0KIA0KIA0KIA0K PisgfHwgaW5zdGFuY2UuYmFzZSA9PSBiYXNlczo6dmZuY3Z0X3h1IHx8IGlu c3RhbmNlLmJhc2UgPT0gYmFzZXM6OnZmbXVsDQogDQogDQogDQo+KyB8fCBp bnN0YW5jZS5iYXNlID09IGJhc2VzOjp2Zm1zdWIgfHwgaW5zdGFuY2UuYmFz ZSA9PSBiYXNlczo6dmZtc2FjDQogDQogDQogDQo+KyB8fCBpbnN0YW5jZS5i YXNlID09IGJhc2VzOjp2Zm1hZGQgfHwgaW5zdGFuY2UuYmFzZSA9PSBiYXNl czo6dmZtYWNjDQogDQogDQogDQo+KyB8fCBpbnN0YW5jZS5iYXNlID09IGJh c2VzOjp2ZmRpdiB8fCBpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2ZndjdnRf eHU7DQogDQogDQogDQo+K30NCiANCiANCiANCj4rDQogDQogDQogDQo+K3N0 YXRpYyBib29sDQogDQogDQogDQo+K21heWJlX3JlcXVpcmVfdnhybV9wIChm dW5jdGlvbl9pbnN0YW5jZSAmaW5zdGFuY2UpDQogDQogDQogDQo+K3sNCiAN CiANCiANCj4rICByZXR1cm4gaW5zdGFuY2UuYmFzZSA9PSBiYXNlczo6dmFh ZGQgfHwgaW5zdGFuY2UuYmFzZSA9PSBiYXNlczo6dmFhZGR1DQogDQogDQog DQo+KyB8fCBpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2YXN1YiB8fCBpbnN0 YW5jZS5iYXNlID09IGJhc2VzOjp2YXN1YnUNCiANCiANCiANCj4rIHx8IGlu c3RhbmNlLmJhc2UgPT0gYmFzZXM6OnZzc3JsIHx8IGluc3RhbmNlLmJhc2Ug PT0gYmFzZXM6OnZzc3JhDQogDQogDQogDQo+KyB8fCBpbnN0YW5jZS5iYXNl ID09IGJhc2VzOjp2c211bCB8fCBpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2 bmNsaXB1DQogDQogDQogDQo+KyB8fCBpbnN0YW5jZS5iYXNlID09IGJhc2Vz Ojp2bmNsaXA7DQogDQogDQogDQo+K30NCiANCiANCiANCj4rDQogDQogDQog DQo+K2Jvb2wNCiANCiANCiANCj4raGFzX3Z4cm1fb3JfZnJtX3AgKGZ1bmN0 aW9uX2luc3RhbmNlICZpbnN0YW5jZSwgY29uc3QgdmVjPHRyZWUsIHZhX2dj PiAmYXJnbGlzdCkNCiANCiANCiANCj4rew0KIA0KIA0KIA0KPisgIGlmICht YXliZV9yZXF1aXJlX3Z4cm1fcCAoaW5zdGFuY2UpDQogDQogDQogDQo+KyAg ICAgIHx8IChtYXliZV9yZXF1aXJlX2ZybV9wIChpbnN0YW5jZSkNCiANCiAN CiANCj4rICAgJiYgKFRSRUVfQ09ERSAoVFJFRV9UWVBFIChhcmdsaXN0W2Fy Z2xpc3QubGVuZ3RoICgpIC0gMl0pKQ0KIA0KIA0KIA0KPisgICAgICAgPT0g SU5URUdFUl9UWVBFKSkpDQogDQogDQogDQo+KyAgICByZXR1cm4gdHJ1ZTsN CiANCiANCiANCj4rICByZXR1cm4gZmFsc2U7DQogDQogDQogDQo+K30NCiAN CiANCiANCj4rDQogDQogDQogDQo+K2hhc2h2YWxfdA0KIA0KIA0KIA0KPity ZWdpc3RlcmVkX2Z1bmN0aW9uOjpvdmVybG9hZGVkX2hhc2ggKGNvbnN0IHZl Yzx0cmVlLCB2YV9nYz4gJmFyZ2xpc3QpDQogDQogDQogDQo+K3sNCiANCiAN CiANCj4rICBhcmd1bWVudF90eXBlcyA9IHZOVUxMOw0KIA0KIA0KIA0KPisg IHVuc2lnbmVkIGludCBsZW4gPSBhcmdsaXN0Lmxlbmd0aCAoKTsNCiANCiAN CiANCj4rDQogDQogDQogDQo+KyAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7 IGkgPCBsZW47IGkrKykNCiANCiANCiANCj4rICAgIHsNCiANCiANCiANCj4r ICAgICAgLyogdmludDhtMV90IF9fcmlzY3ZfdmdldF9pOG0xKHZpbnQ4bTJf dCBzcmMsIHNpemVfdCBpbmRleCk7DQogDQogDQogDQo+KyAgICAgIFdoZW4g dGhlIHVzZXIgY2FsbHMgdmdldCBpbnRyaW5zaWMsIHRoZSBfX3Jpc2N2X3Zn ZXRfaThtMShzcmMsIDEpDQogDQogDQogDQo+KyAgICAgICBmb3JtIGlzIHVz ZWQuIFRoZSBjb21waWxlciByZWNvZ25pemVzIHRoYXQgdGhlIHBhcmFtZXRl ciBpbmRleCBpcyBzaWduZWQNCiANCiANCiANCj4rICAgICAgIGludCwgd2hp Y2ggaXMgaW5jb25zaXN0ZW50IHdpdGggc2l6ZV90LCBzbyB0aGUgaW5kZXgg aXMgY29udmVydGVkIHRvDQogDQogDQogDQo+KyAgICAgICBzaXplX3QgdHlw ZSBpbiBvcmRlciB0byBnZXQgY29ycmVjdCBoYXNoIHZhbHVlLiB2aW50OG0y X3QNCiANCiANCiANCj4rICAgICAgIF9fcmlzY3ZfdnNldCh2aW50OG0yX3Qg ZGVzdCwgc2l6ZV90IGluZGV4LCB2aW50OG0xX3QgdmFsdWUpOyBUaGUgcmVh c29uDQogDQogDQogDQo+KyAgICAgICBpcyB0aGUgc2FtZSBhcyBhYm92ZS4g Ki8NCiANCiANCiANCj4rICAgICAgaWYgKChpbnN0YW5jZS5iYXNlID09IGJh c2VzOjp2Z2V0ICYmIChpID09IChsZW4gLSAxKSkpDQogDQogDQogDQo+KyAg IHx8IChpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2c2V0ICYmIChpID09IChs ZW4gLSAyKSkpKQ0KIA0KIA0KIA0KPisgYXJndW1lbnRfdHlwZXMuc2FmZV9w dXNoIChzaXplX3R5cGVfbm9kZSk7DQogDQogDQogDQo+KyAgICAgIC8qIFZl Y3RvciBmaXhlZC1wb2ludCBhcml0aG1ldGljIGluc3RydWN0aW9ucyByZXF1 aXJpbmcgYXJndW1lbnQgdnhybS4NCiANCiANCiANCj4rICAgICAgRm9yIGV4 YW1wbGU6IHZ1aW50MzJtNF90IF9fcmlzY3ZfdmFhZGR1KHZ1aW50MzJtNF90 IHZzMiwNCiANCiANCiANCj4rICAgICAgdnVpbnQzMm00X3QgdnMxLCB1bnNp Z25lZCBpbnQgdnhybSwgc2l6ZV90IHZsKTsgVGhlIHVzZXIgY2FsbHMgdmFh ZGR1DQogDQogDQogDQo+KyAgICAgIGludHJpbnNpYyBpbiB0aGUgZm9ybSBv ZiBfX3Jpc2N2X3ZhYWRkdSh2czIsIHZzMSwgMiwgdmwpLiBUaGUgY29tcGls ZXINCiANCiANCiANCj4rICAgICAgcmVjb2duaXplcyB0aGF0IHRoZSBwYXJh bWV0ZXIgdnhybSBpcyBhIHNpZ25lZCBpbnQsIHdoaWNoIGlzIGluY29uc2lz dGVudA0KIA0KIA0KIA0KPisgICAgICB3aXRoIHRoZSBwYXJhbWV0ZXIgdW5z aWduZWQgaW50IHZ4cm0gZGVjbGFyZWQgYnkgaW50cmluc2ljLCBzbyB0aGUN CiANCiANCiANCj4rICAgICAgcGFyYW1ldGVyIHZ4cm0gaXMgY29udmVydGVk IHRvIGFuIHVuc2lnbmVkIGludCB0eXBlIGluIG9yZGVyIHRvIGdldA0KIA0K IA0KIA0KPisgICAgICBjb3JyZWN0IGhhc2ggdmFsdWUuDQogDQogDQogDQo+ Kw0KIA0KIA0KIA0KPisgICAgICBWZWN0b3IgRmxvYXRpbmctUG9pbnQgSW5z dHJ1Y3Rpb25zIHJlcXVpcmluZyBhcmd1bWVudCBmcm0uDQogDQogDQogDQo+ KyAgICAgIERFRl9SVlZfRlVOQ1RJT04gKHZmYWRkLCBhbHUsIGZ1bGxfcHJl ZHMsIGZfdnZ2X29wcykNCiANCiANCiANCj4rICAgICAgREVGX1JWVl9GVU5D VElPTiAodmZhZGRfZnJtLCBhbHVfZnJtLCBmdWxsX3ByZWRzLCBmX3Z2dl9v cHMpDQogDQogDQogDQo+KyAgICAgIFRha2luZyB2ZmFkZCBhcyBhbiBleGFt cGxlLCB0aGVvcmV0aWNhbGx5IHdlIGNhbiBhZGQgYmFzZSBvciBzaGFwZSB0 byB0aGUNCiANCiANCiANCj4rICAgICAgaGFzaCB2YWx1ZSB0byBkaXN0aW5n dWlzaCB3aGV0aGVyIHRoZSBmcm0gcGFyYW1ldGVyIGlzIHJlcXVpcmVkLg0K IA0KIA0KIA0KPisgICAgICB2ZmxvYXQzMm0xX3QgX19yaXNjdl92ZmFkZCh2 ZmxvYXQzMm0xX3QgdnMyLCBmbG9hdDMyX3QgcnMxLCBzaXplX3QgdmwpOw0K IA0KIA0KIA0KPisgICAgICB2ZmxvYXQzMm0xX3QgX19yaXNjdl92ZmFkZCh2 ZmxvYXQzMm0xX3QgdnMyLCB2ZmxvYXQzMm0xX3QgdnMxLCB1bnNpZ25lZCBp bnQNCiANCiANCiANCj4rICAgICAgZnJtLCBzaXplX3QgdmwpOw0KIA0KIA0K IA0KPisNCiANCiANCiANCj4rICAgICBIb3dldmVyLCB0aGUgY3VycmVudCBy ZWdpc3RyYXRpb24gbWVjaGFuaXNtIG9mIG92ZXJsb2FkZWQgaW50aW5zaWMg Zm9yIGdjYw0KIA0KIA0KIA0KPisgICAgICBsaW1pdHMgdGhlIGludHJpbnNp YyBvYnRhaW5lZCBieSBlbnRlcmluZyB0aGUgaG9vayB0byBhbHdheXMgYmUg dmZhZGQsIG5vdA0KIA0KIA0KIA0KPisgICAgICB2ZmFkZF9mcm0uIFRoZXJl Zm9yZSwgdGhlIGNvcnJlY3QgaGFzaCB2YWx1ZSBjYW5ub3QgYmUgb2J0YWlu ZWQgdGhyb3VnaCB0aGUNCiANCiANCiANCj4rICAgICAgcGFyYW1ldGVyIGxp c3QgYW5kIG92ZXJsb2FkIG5hbWUsIGJhc2Ugb3Igc2hhcGUuDQogDQogDQog DQo+KyAgICAgICstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLSsNCiANCiANCiANCj4rICAgICAgfCBp bmRleCAgfCBuYW1lICAgICAgICAgICAgICAgICAgICAgIHwga2luZCAgICAg ICAgICAgICAgfA0KIA0KIA0KIA0KPisgICAgICArLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rDQog DQogDQogDQo+KyAgICAgIHwgMTI0NzMzIHwgX19yaXNjdl92ZmFkZCAgICAg ICAgICAgICB8IE92ZXJsb2FkZWQgICAgICAgIHwgPC0gSG9vayBmdW4gY29k ZQ0KIA0KIA0KIA0KPisgICAgICArLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rDQogDQogDQogDQo+ KyAgICAgIHwgMTI0NzM1IHwgIF9fcmlzY3ZfdmZhZGRfdnZfZjMybTEgICB8 IE5vbi1vdmVybG9hZGVkICAgIHwNCiANCiANCiANCj4rICAgICAgKy0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tKw0KIA0KIA0KIA0KPisgICAgICB8IDEyNDczNyB8IF9fcmlzY3Zf dmZhZGQgICAgICAgICAgICAgfCBQbGFjZWhvbGRlciAgICAgICB8DQogDQog DQogDQo+KyAgICAgICstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSsNCiANCiANCiANCj4rICAgICAg fCAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfA0KIA0KIA0KIA0KPisgICAgICArLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0r DQogDQogDQogDQo+KyAgICAgIHwgLi4uICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwNCiANCiANCiANCj4r ICAgICAgKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tKw0KIA0KIA0KIA0KPisgICAgICB8IDEyNTcz OSB8IF9fcmlzY3ZfdmZhZGQgICAgICAgICAgICAgfCBPdmVybG9hZGVkICAg ICAgICB8DQogDQogDQogDQo+KyAgICAgICstLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSsNCiANCiAN CiANCj4rICAgICAgfCAxMjU3NDEgfCBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0x X3JtIHwgTm9uLW92ZXJsb2FkZWQgICAgfA0KIA0KIA0KIA0KPisgICAgICAr LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0rDQogDQogDQogDQo+KyAgICAgIHwgMTI1NzQzIHwgX19y aXNjdl92ZmFkZCAgICAgICAgICAgICB8IFBsYWNlaG9sZGVyICAgICAgIHwN CiANCiANCiANCj4rICAgICAgKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKw0KIA0KIA0KIA0KPisN CiANCiANCiANCj4rICAgICBUaGVyZWZvcmUsIHRoZSBoYXNoIHZhbHVlIGNh bm5vdCBiZSBhZGRlZCB3aXRoIGJhc2Ugb3Igc2hhcGUsIGFuZCBuZWVkcw0K IA0KIA0KIA0KPisgICAgICB0byBiZSBkaXN0aW5ndWlzaGVkIGJ5IHdoZXRo ZXIgdGhlIHBlbnVsdGltYXRlIHBhcmFtZXRlciBpcyBJTlRFR0VSX1RZUEUu ICovDQogDQogDQogDQo+KyAgICAgIGVsc2UgaWYgKGhhc192eHJtX29yX2Zy bV9wIChpbnN0YW5jZSwgYXJnbGlzdCkgJiYgKGkgPT0gKGxlbiAtIDIpKSkN CiANCiANCiANCj4rIGFyZ3VtZW50X3R5cGVzLnNhZmVfcHVzaCAodW5zaWdu ZWRfdHlwZV9ub2RlKTsNCiANCiANCiANCj4rICAgICAgZWxzZQ0KIA0KIA0K IA0KPisgYXJndW1lbnRfdHlwZXMuc2FmZV9wdXNoIChUUkVFX1RZUEUgKGFy Z2xpc3RbaV0pKTsNCiANCiANCiANCj4rICAgIH0NCiANCiANCiANCj4rICBy ZXR1cm4gb3ZlcmxvYWRlZF9oYXNoICgpOw0KIA0KIA0KIA0KPit9DQogDQog DQogDQo+Kw0KIA0KIA0KIA0KPitpbmxpbmUgaGFzaHZhbF90DQogDQogDQog DQo+K25vbl9vdmVybG9hZGVkX3JlZ2lzdGVyZWRfZnVuY3Rpb25faGFzaGVy OjpoYXNoICh2YWx1ZV90eXBlIHZhbHVlKQ0KIA0KIA0KIA0KPit7DQogDQog DQogDQo+KyAgcmV0dXJuIHZhbHVlLT5vdmVybG9hZGVkX2hhc2ggKCk7DQog DQogDQogDQo+K30NCiANCiANCiANCj4rDQogDQogDQogDQo+K2lubGluZSBi b29sDQogDQogDQogDQo+K25vbl9vdmVybG9hZGVkX3JlZ2lzdGVyZWRfZnVu Y3Rpb25faGFzaGVyOjplcXVhbCAodmFsdWVfdHlwZSB2YWx1ZSwNCiANCiAN CiANCj4rICAgY29uc3QgY29tcGFyZV90eXBlICZrZXkpDQogDQogDQogDQo+ K3sNCiANCiANCiANCj4rICByZXR1cm4gKChzdHJjbXAgKHZhbHVlLT5vdmVy bG9hZF9uYW1lLCBrZXktPm92ZXJsb2FkX25hbWUpID09IDApDQogDQogDQog DQo+KyAgICYmIHZhbHVlLT5vdmVybG9hZGVkX2hhc2ggKCkgPT0ga2V5LT5v dmVybG9hZGVkX2hhc2ggKCkpOw0KIA0KIA0KIA0KPit9DQogDQogDQogDQo+ Kw0KIA0KIA0KIA0KPi8qIElmIFRZUEUgaXMgYSBidWlsdC1pbiB0eXBlIGRl ZmluZWQgYnkgdGhlIFJWViBBQkksIHJldHVybiB0aGUgbWFuZ2xlZCBuYW1l LA0KIA0KIA0KIA0KPiAgICBvdGhlcndpc2UgcmV0dXJuIE5VTEwuICAqLw0K IA0KIA0KIA0KPmNvbnN0IGNoYXIgKg0KIA0KIA0KIA0KPkBAIC00MTM5LDcg KzQzNjQsNyBAQCByZWdpc3Rlcl9mcm0gKCkNCiANCiANCiANCj52b2lkDQog DQogDQogDQo+aGFuZGxlX3ByYWdtYV92ZWN0b3IgKCkNCiANCiANCiANCj57 DQogDQogDQogDQo+LSAgaWYgKGZ1bmN0aW9uX3RhYmxlKQ0KIA0KIA0KIA0K PisgIGlmIChmdW5jdGlvbl90YWJsZSB8fCBub25fb3ZlcmxvYWRlZF9mdW5j dGlvbl90YWJsZSkNCiANCiANCiANCj4gICAgIHsNCiANCiANCiANCj4gICAg ICAgZXJyb3IgKCJkdXBsaWNhdGUgZGVmaW5pdGlvbiBvZiAlcXMiLCAicmlz Y3ZfdmVjdG9yLmgiKTsNCiANCiANCiANCj4gICAgICAgcmV0dXJuOw0KIA0K IA0KIA0KPkBAIC00MTU2LDYgKzQzODEsOCBAQCBoYW5kbGVfcHJhZ21hX3Zl Y3RvciAoKQ0KIA0KIA0KIA0KPiAgIC8qIERlZmluZSB0aGUgZnVuY3Rpb25z LiAgKi8NCiANCiANCiANCj4gICBmdW5jdGlvbl90YWJsZSA9IG5ldyBoYXNo X3RhYmxlPHJlZ2lzdGVyZWRfZnVuY3Rpb25faGFzaGVyPiAoMTAyMyk7DQog DQogDQogDQo+KyAgbm9uX292ZXJsb2FkZWRfZnVuY3Rpb25fdGFibGUNCiAN CiANCiANCj4rICAgID0gbmV3IGhhc2hfdGFibGU8bm9uX292ZXJsb2FkZWRf cmVnaXN0ZXJlZF9mdW5jdGlvbl9oYXNoZXI+ICgxMDIzKTsNCiANCiANCiAN Cj4gICBmdW5jdGlvbl9idWlsZGVyIGJ1aWxkZXI7DQogDQogDQogDQo+ICAg Zm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBBUlJBWV9TSVpFIChmdW5j dGlvbl9ncm91cHMpOyArK2kpDQogDQogDQogDQo+ICAgICBidWlsZGVyLnJl Z2lzdGVyX2Z1bmN0aW9uX2dyb3VwIChmdW5jdGlvbl9ncm91cHNbaV0pOw0K IA0KIA0KIA0KPkBAIC00MjA4LDYgKzQ0MzUsMjQgQEAgY2hlY2tfYnVpbHRp bl9jYWxsIChsb2NhdGlvbl90IGxvY2F0aW9uLCB2ZWM8bG9jYXRpb25fdD4s IHVuc2lnbmVkIGludCBjb2RlLA0KIA0KIA0KIA0KPiAgIFRSRUVfVFlQRSAo cmZuLmRlY2wpLCBuYXJncywgYXJncykuY2hlY2sgKCk7DQogDQogDQogDQo+ fQ0KIA0KIA0KIA0KPit0cmVlDQogDQogDQogDQo+K3Jlc29sdmVfb3Zlcmxv YWRlZF9idWlsdGluICh1bnNpZ25lZCBpbnQgY29kZSwgdmVjPHRyZWUsIHZh X2djPiAqYXJnbGlzdCkNCiANCiANCiANCj4rew0KIA0KIA0KIA0KPisgIGlm IChjb2RlID49IHZlY19zYWZlX2xlbmd0aCAocmVnaXN0ZXJlZF9mdW5jdGlv bnMpKQ0KIA0KIA0KIA0KPisgICAgcmV0dXJuIE5VTExfVFJFRTsNCiANCiAN CiANCj4rDQogDQogDQogDQo+KyAgcmVnaXN0ZXJlZF9mdW5jdGlvbiAqcmZ1 biA9ICgqcmVnaXN0ZXJlZF9mdW5jdGlvbnMpW2NvZGVdOw0KIA0KIA0KIA0K PisNCiANCiANCiANCj4rICBpZiAoIXJmdW4gfHwgIXJmdW4tPm92ZXJsb2Fk ZWRfcCkNCiANCiANCiANCj4rICAgIHJldHVybiBOVUxMX1RSRUU7DQogDQog DQogDQo+Kw0KIA0KIA0KIA0KPisgIGhhc2h2YWxfdCBoYXNoID0gcmZ1bi0+ b3ZlcmxvYWRlZF9oYXNoICgqYXJnbGlzdCk7DQogDQogDQogDQo+KyAgcmVn aXN0ZXJlZF9mdW5jdGlvbiAqcmZuDQogDQogDQogDQo+KyAgICA9IG5vbl9v dmVybG9hZGVkX2Z1bmN0aW9uX3RhYmxlLT5maW5kX3dpdGhfaGFzaCAocmZ1 biwgaGFzaCk7DQogDQogDQogDQo+KyAgZ2NjX2Fzc2VydCAocmZuKTsNCiAN CiANCiANCj4rICByZXR1cm4gcmZuLT5kZWNsOw0KIA0KIA0KIA0KPit9DQog DQogDQogDQo+Kw0KIA0KIA0KIA0KPmZ1bmN0aW9uX2luc3RhbmNlDQogDQog DQogDQo+Z2V0X3JlYWRfdmxfaW5zdGFuY2UgKHZvaWQpDQogDQogDQogDQo+ ew0KIA0KIA0KIA0KPmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2L3Jp c2N2LXZlY3Rvci1idWlsdGlucy5oIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNj di12ZWN0b3ItYnVpbHRpbnMuaA0KIA0KIA0KIA0KPmluZGV4IGUzNThhOGU0 ZDkxLi40ZjQxZTg4MGFjMyAxMDA2NDQNCiANCiANCiANCj4tLS0gYS9nY2Mv Y29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5oDQogDQogDQog DQo+KysrIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRp bnMuaA0KIA0KIA0KIA0KPkBAIC0yNzcsNiArMjc3LDggQEAgcHVibGljOg0K IA0KIA0KIA0KPiAgIHZvaWQgYXBwbHlfcHJlZGljYXRpb24gKGNvbnN0IGZ1 bmN0aW9uX2luc3RhbmNlICYsIHRyZWUsIHZlYzx0cmVlPiAmKSBjb25zdDsN CiANCiANCiANCj4gICB2b2lkIGFkZF91bmlxdWVfZnVuY3Rpb24gKGNvbnN0 IGZ1bmN0aW9uX2luc3RhbmNlICYsIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICos DQogDQogDQogDQo+ICAgIHRyZWUsIHZlYzx0cmVlPiAmKTsNCiANCiANCiAN Cj4rICB2b2lkIGFkZF9vdmVybG9hZGVkX2Z1bmN0aW9uIChjb25zdCBmdW5j dGlvbl9pbnN0YW5jZSAmLA0KIA0KIA0KIA0KPisgY29uc3QgZnVuY3Rpb25f c2hhcGUgKik7DQogDQogDQogDQo+ICAgdm9pZCByZWdpc3Rlcl9mdW5jdGlv bl9ncm91cCAoY29uc3QgZnVuY3Rpb25fZ3JvdXBfaW5mbyAmKTsNCiANCiAN CiANCj4gICB2b2lkIGFwcGVuZF9uYW1lIChjb25zdCBjaGFyICopOw0KIA0K IA0KIA0KPiAgIHZvaWQgYXBwZW5kX2Jhc2VfbmFtZSAoY29uc3QgY2hhciAq KTsNCiANCiANCiANCj5AQCAtMjg4LDcgKzI5MCw4IEBAIHByaXZhdGU6DQog DQogDQogDQo+ICAgdHJlZSBnZXRfYXR0cmlidXRlcyAoY29uc3QgZnVuY3Rp b25faW5zdGFuY2UgJik7DQogDQogDQogDQo+ICAgcmVnaXN0ZXJlZF9mdW5j dGlvbiAmYWRkX2Z1bmN0aW9uIChjb25zdCBmdW5jdGlvbl9pbnN0YW5jZSAm LCBjb25zdCBjaGFyICosDQogDQogDQogDQo+LSAgICAgIHRyZWUsIHRyZWUs IGJvb2wpOw0KIA0KIA0KIA0KPisgICAgICB0cmVlLCB0cmVlLCBib29sLCBj b25zdCBjaGFyICosDQogDQogDQogDQo+KyAgICAgIGNvbnN0IHZlYzx0cmVl PiAmLCBib29sKTsNCiANCiANCiANCj4gICAvKiBUcnVlIGlmIHdlIHNob3Vs ZCBjcmVhdGUgYSBzZXBhcmF0ZSBkZWNsIGZvciBlYWNoIGluc3RhbmNlIG9m IGFuDQogDQogDQogDQo+ICAgICAgb3ZlcmxvYWRlZCBmdW5jdGlvbiwgaW5z dGVhZCBvZiB1c2luZyBmdW5jdGlvbl9idWlsZGVyLiAgKi8NCiANCiANCiAN Cj5kaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di9iYXNlL292ZXJsb2FkZWRfcnYzMl92YWRkLmMgYi9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjMy X3ZhZGQuYw0KIA0KIA0KIA0KPm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQogDQog DQogDQo+aW5kZXggMDAwMDAwMDAwMDAuLjVmMTBhYTliZjM1DQogDQogDQog DQo+LS0tIC9kZXYvbnVsbA0KIA0KIA0KIA0KPisrKyBiL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3J2MzJf dmFkZC5jDQogDQogDQogDQo+QEAgLTAsMCArMSwxMiBAQA0KIA0KIA0KIA0K PisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KIA0KIA0KIA0KPisvKiB7IGRn LW9wdGlvbnMgIi1tYXJjaD1ydjMyZ2N2X3p2ZmggLW1hYmk9aWxwMzIgLU8z IC1Xbm8tcHNhYmkiIH0gKi8NCiANCiANCiANCj4rDQogDQogDQogDQo+KyNp bmNsdWRlICJvdmVybG9hZGVkX3ZhZGQuaCINCiANCiANCiANCj4rDQogDQog DQogDQo+Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7 dnNldHZsaVxzK3plcm8sXHMqW2F4XVswLTldKyxccyplOCxccyptMSxccyp0 YSxccyptYX0gNCB9IH0gKi8NCiANCiANCiANCj4rLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMrW2F4XVswLTldKyxc cyp6ZXJvLFxzKmU4LFxzKm0xLFxzKnRhLFxzKm1hfSA4IH0gfSAqLw0KIA0K IA0KIA0KPisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMg e3ZzZXR2bGlccyt6ZXJvLFxzKltheF1bMC05XSssXHMqZTgsXHMqbTEsXHMq dHUsXHMqbWF9IDQgfSB9ICovDQogDQogDQogDQo+Ky8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK3plcm8sXHMqW2F4 XVswLTldKyxccyplOCxccyptMSxccyp0YSxccyptdX0gMiB9IH0gKi8NCiAN CiANCiANCj4rLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz IHt2c2V0dmxpXHMremVybyxccypbYXhdWzAtOV0rLFxzKmU4LFxzKm0xLFxz KnR1LFxzKm11fSAyIH0gfSAqLw0KIA0KIA0KIA0KPisvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZhZGRcLnZ2XHMrdlswLTldKyxc cyp2WzAtOV0rLFxzKnZbMC05XSt9IDYgfSB9ICovDQogDQogDQogDQo+Ky8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dmFkZFwudnhc cyt2WzAtOV0rLFxzKnZbMC05XSssXHMqW2F4XVswLTldK30gNiB9IH0gKi8N CiANCiANCiANCj5kaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfcnYzMl92ZmFkZC5jIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJs b2FkZWRfcnYzMl92ZmFkZC5jDQogDQogDQogDQo+bmV3IGZpbGUgbW9kZSAx MDA2NDQNCiANCiANCiANCj5pbmRleCAwMDAwMDAwMDAwMC4uYmVhMzVhMTNh N2INCiANCiANCiANCj4tLS0gL2Rldi9udWxsDQogDQogDQogDQo+KysrIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJs b2FkZWRfcnYzMl92ZmFkZC5jDQogDQogDQogDQo+QEAgLTAsMCArMSwxMiBA QA0KIA0KIA0KIA0KPisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KIA0KIA0K IA0KPisvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjMyZ2N2X3p2ZmggLW1h Ymk9aWxwMzIgLU8zIC1Xbm8tcHNhYmkiIH0gKi8NCiANCiANCiANCj4rDQog DQogDQogDQo+KyNpbmNsdWRlICJvdmVybG9hZGVkX3ZmYWRkLmgiDQogDQog DQogDQo+Kw0KIA0KIA0KIA0KPisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItdGltZXMge3ZzZXR2bGlccytbYXhdWzAtOV0rLFxzKnplcm8sXHMq ZTE2LFxzKm1mNCxccyp0YSxccyptYX0gMTYgfSB9ICovDQogDQogDQogDQo+ Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZs aVxzK3plcm8sXHMqW2F4XVswLTldKyxccyplMTYsXHMqbWY0LFxzKnRhLFxz Km1hfSA0IH0gfSAqLw0KIA0KIA0KIA0KPisvKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccytbYXhdWzAtOV0rLFxzKnpl cm8sXHMqZTgsXHMqbWY4LFxzKnRhLFxzKm1hfSA4IH0gfSAqLw0KIA0KIA0K IA0KPisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3Zz ZXR2bGlccyt6ZXJvLFxzKltheF1bMC05XSssXHMqZTE2LFxzKm1mNCxccyp0 dSxccyptYX0gNCB9IH0gKi8NCiANCiANCiANCj4rLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMremVybyxccypbYXhd WzAtOV0rLFxzKmUxNixccyptZjQsXHMqdHUsXHMqbXV9IDIgfSB9ICovDQog DQogDQogDQo+Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyB7dnNldHZsaVxzK3plcm8sXHMqW2F4XVswLTldKyxccyplMTYsXHMqbWY0 LFxzKnRhLFxzKm11fSAyIH0gfSAqLw0KIA0KIA0KIA0KPisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZmYWRkXC52dlxzK3ZbMC05 XSssXHMqdlswLTldKyxccyp2WzAtOV0rfSAxMiB9IH0gKi8NCiANCiANCiAN Cj5kaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di9iYXNlL292ZXJsb2FkZWRfcnYzMl92Z2V0X3ZzZXQuYyBiL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVk X3J2MzJfdmdldF92c2V0LmMNCiANCiANCiANCj5uZXcgZmlsZSBtb2RlIDEw MDY0NA0KIA0KIA0KIA0KPmluZGV4IDAwMDAwMDAwMDAwLi42YjBiYTE0MmI5 MA0KIA0KIA0KIA0KPi0tLSAvZGV2L251bGwNCiANCiANCiANCj4rKysgYi9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3Zlcmxv YWRlZF9ydjMyX3ZnZXRfdnNldC5jDQogDQogDQogDQo+QEAgLTAsMCArMSw3 IEBADQogDQogDQogDQo+Ky8qIHsgZGctZG8gY29tcGlsZSB9ICovDQogDQog DQogDQo+Ky8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2MzJnY3ZfenZmaCAt bWFiaT1pbHAzMiAtTzMgLVduby1wc2FiaSIgfSAqLw0KIA0KIA0KIA0KPisN CiANCiANCiANCj4rI2luY2x1ZGUgIm92ZXJsb2FkZWRfdmdldF92c2V0Lmgi DQogDQogDQogDQo+Kw0KIA0KIA0KIA0KPisvKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXItdGltZXMge3ZsWzAtOV0rcmVbMC05XStcLnZccyt2WzAt OV0rLFxzKjBcKFtheF1bMC05XStcKX0gMTQgfSB9ICovDQogDQogDQogDQo+ Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNbMC05 XStyXC52XHMrdlswLTldKyxccyowXChbYXhdWzAtOV0rXCl9IDEzIH0gfSAq Lw0KIA0KIA0KIA0KPmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjMyX3Zsb3hzZWcy ZWkxNi5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9i YXNlL292ZXJsb2FkZWRfcnYzMl92bG94c2VnMmVpMTYuYw0KIA0KIA0KIA0K Pm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQogDQogDQogDQo+aW5kZXggMDAwMDAw MDAwMDAuLmEyMGU0YTNiYjRmDQogDQogDQogDQo+LS0tIC9kZXYvbnVsbA0K IA0KIA0KIA0KPisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNj di9ydnYvYmFzZS9vdmVybG9hZGVkX3J2MzJfdmxveHNlZzJlaTE2LmMNCiAN CiANCiANCj5AQCAtMCwwICsxLDExIEBADQogDQogDQogDQo+Ky8qIHsgZGct ZG8gY29tcGlsZSB9ICovDQogDQogDQogDQo+Ky8qIHsgZGctb3B0aW9ucyAi LW1hcmNoPXJ2MzJnY3ZfenZmaCAtbWFiaT1pbHAzMiAtTzMgLVduby1wc2Fi aSIgfSAqLw0KIA0KIA0KIA0KPisNCiANCiANCiANCj4rI2luY2x1ZGUgIm92 ZXJsb2FkZWRfdmxveHNlZzJlaTE2LmgiDQogDQogDQogDQo+Kw0KIA0KIA0K IA0KPisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3Zz ZXR2bGlccyt6ZXJvLFxzKltheF1bMC05XSssXHMqZTY0LFxzKm00LFxzKnRh LFxzKm1hfSAyIH0gfSAqLw0KIA0KIA0KIA0KPisvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccytbYXhdWzAtOV0rLFxz Knplcm8sXHMqZTgsXHMqbWYyLFxzKnRhLFxzKm1hfSA0IH0gfSAqLw0KIA0K IA0KIA0KPisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMg e3ZzZXR2bGlccyt6ZXJvLFxzKltheF1bMC05XSssXHMqZTY0LFxzKm00LFxz KnR1LFxzKm1hfSAyIH0gfSAqLw0KIA0KIA0KIA0KPisvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccyt6ZXJvLFxzKlth eF1bMC05XSssXHMqZTY0LFxzKm00LFxzKnR1LFxzKm11fSAxIH0gfSAqLw0K IA0KIA0KIA0KPisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGlt ZXMge3ZzZXR2bGlccyt6ZXJvLFxzKltheF1bMC05XSssXHMqZTY0LFxzKm00 LFxzKnRhLFxzKm11fSAxIH0gfSAqLw0KIA0KIA0KIA0KPisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3Zsb3hzZWcyZWkxNlwudlxz K3ZbMC05XSssXHMqXChbYXhdWzAtOV0rXCksXHMqdlswLTldK30gNiB9IH0g Ki8NCiANCiANCiANCj5kaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfcnYzMl92bXYuYyBi L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVy bG9hZGVkX3J2MzJfdm12LmMNCiANCiANCiANCj5uZXcgZmlsZSBtb2RlIDEw MDY0NA0KIA0KIA0KIA0KPmluZGV4IDAwMDAwMDAwMDAwLi4yMzdiMzRkYmU5 MQ0KIA0KIA0KIA0KPi0tLSAvZGV2L251bGwNCiANCiANCiANCj4rKysgYi9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3Zlcmxv YWRlZF9ydjMyX3Ztdi5jDQogDQogDQogDQo+QEAgLTAsMCArMSwxMCBAQA0K IA0KIA0KIA0KPisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KIA0KIA0KIA0K PisvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjMyZ2N2X3p2ZmggLW1hYmk9 aWxwMzIgLU8zIC1Xbm8tcHNhYmkiIH0gKi8NCiANCiANCiANCj4rDQogDQog DQogDQo+KyNpbmNsdWRlICJvdmVybG9hZGVkX3Ztdi5oIg0KIA0KIA0KIA0K PisNCiANCiANCiANCj4rLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LXRpbWVzIHt2c2V0dmxpXHMremVybyxccypbYXhdWzAtOV0rLFxzKmU4LFxz Km0xLFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KIA0KIA0KIA0KPisvKiB7IGRn LWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccyt6ZXJv LFxzKltheF1bMC05XSssXHMqZTgsXHMqbTEsXHMqdHUsXHMqbWF9IDIgfSB9 ICovDQogDQogDQogDQo+Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci10aW1lcyB7dnNldHZsaVxzK3plcm8sXHMqW2F4XVswLTldKyxccyplMTYs XHMqbTEsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQogDQogDQogDQo+Ky8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK3pl cm8sXHMqW2F4XVswLTldKyxccyplMTYsXHMqbTEsXHMqdHUsXHMqbWF9IDEg fSB9ICovDQogDQogDQogDQo+Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyB7dnNldGl2bGlccyt6ZXJvLFxzKjAsXHMqZTgsXHMqbTEs XHMqdGEsXHMqbWF9IDEgfSB9ICovDQogDQogDQogDQo+ZGlmZiAtLWdpdCBh L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVy bG9hZGVkX3J2MzJfdnJlaW50ZXJwcmV0LmMgYi9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjMyX3ZyZWlu dGVycHJldC5jDQogDQogDQogDQo+bmV3IGZpbGUgbW9kZSAxMDA2NDQNCiAN CiANCiANCj5pbmRleCAwMDAwMDAwMDAwMC4uNDJkNTA1ODkyNDYNCiANCiAN CiANCj4tLS0gL2Rldi9udWxsDQogDQogDQogDQo+KysrIGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfcnYz Ml92cmVpbnRlcnByZXQuYw0KIA0KIA0KIA0KPkBAIC0wLDAgKzEsMTAgQEAN CiANCiANCiANCj4rLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCiANCiANCiAN Cj4rLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnYzMmdjdl96dmZoIC1tYWJp PWlscDMyIC1PMyAtV25vLXBzYWJpIiB9ICovDQogDQogDQogDQo+Kw0KIA0K IA0KIA0KPisjaW5jbHVkZSAib3ZlcmxvYWRlZF92cmVpbnRlcnByZXQuaCIN CiANCiANCiANCj4rDQogDQogDQogDQo+Ky8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1theF1bMC05XSssXHMqemVy byxccyplOCxccyptNCxccyp0YSxccyptYX0gMSB9IH0gKi8NCiANCiANCiAN Cj4rLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0 dmxpXHMrW2F4XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm0yLFxzKnRhLFxz Km1hfSAxIH0gfSAqLw0KIA0KIA0KIA0KPisvKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccytbYXhdWzAtOV0rLFxzKnpl cm8sXHMqZTgsXHMqbWYyLFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KIA0KIA0K IA0KPisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3Zz ZXR2bGlccytbYXhdWzAtOV0rLFxzKnplcm8sXHMqZTE2LFxzKm1mMixccyp0 YSxccyptYX0gMiB9IH0gKi8NCiANCiANCiANCj4rLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMrW2F4XVswLTldKyxc cyp6ZXJvLFxzKmUzMixccyptZjIsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQog DQogDQogDQo+ZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3J2NjRfdmFkZC5jIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2Fk ZWRfcnY2NF92YWRkLmMNCiANCiANCiANCj5uZXcgZmlsZSBtb2RlIDEwMDY0 NA0KIA0KIA0KIA0KPmluZGV4IDAwMDAwMDAwMDAwLi5jNDU1NWUzZjQ3Nw0K IA0KIA0KIA0KPi0tLSAvZGV2L251bGwNCiANCiANCiANCj4rKysgYi9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRl ZF9ydjY0X3ZhZGQuYw0KIA0KIA0KIA0KPkBAIC0wLDAgKzEsMTEgQEANCiAN CiANCiANCj4rLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnY2NGdjdl96dmZo IC1tYWJpPWxwNjQgLU8zIC1Xbm8tcHNhYmkiIH0gKi8NCiANCiANCiANCj4r DQogDQogDQogDQo+KyNpbmNsdWRlICJvdmVybG9hZGVkX3ZhZGQuaCINCiAN CiANCiANCj4rDQogDQogDQogDQo+Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlci10aW1lcyB7dnNldHZsaVxzK3plcm8sXHMqW2F4XVswLTldKyxc cyplOCxccyptMSxccyp0YSxccyptYX0gNCB9IH0gKi8NCiANCiANCiANCj4r LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxp XHMrW2F4XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm0xLFxzKnRhLFxzKm1h fSA4IH0gfSAqLw0KIA0KIA0KIA0KPisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXItdGltZXMge3ZzZXR2bGlccyt6ZXJvLFxzKltheF1bMC05XSss XHMqZTgsXHMqbTEsXHMqdHUsXHMqbWF9IDQgfSB9ICovDQogDQogDQogDQo+ Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZs aVxzK3plcm8sXHMqW2F4XVswLTldKyxccyplOCxccyptMSxccyp0YSxccypt dX0gMiB9IH0gKi8NCiANCiANCiANCj4rLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMremVybyxccypbYXhdWzAtOV0r LFxzKmU4LFxzKm0xLFxzKnR1LFxzKm11fSAyIH0gfSAqLw0KIA0KIA0KIA0K PisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZhZGRc LnZ2XHMrdlswLTldKyxccyp2WzAtOV0rLFxzKnZbMC05XSt9IDYgfSB9ICov DQogDQogDQogDQo+Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10 aW1lcyB7dmFkZFwudnhccyt2WzAtOV0rLFxzKnZbMC05XSssXHMqW2F4XVsw LTldK30gNiB9IH0gKi8NCiANCiANCiANCj5kaWZmIC0tZ2l0IGEvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRf cnY2NF92ZmFkZC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di9iYXNlL292ZXJsb2FkZWRfcnY2NF92ZmFkZC5jDQogDQogDQogDQo+ bmV3IGZpbGUgbW9kZSAxMDA2NDQNCiANCiANCiANCj5pbmRleCAwMDAwMDAw MDAwMC4uY2E5ODEzNmNlOWINCiANCiANCiANCj4tLS0gL2Rldi9udWxsDQog DQogDQogDQo+KysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di9iYXNlL292ZXJsb2FkZWRfcnY2NF92ZmFkZC5jDQogDQogDQogDQo+ QEAgLTAsMCArMSwxMSBAQA0KIA0KIA0KIA0KPisvKiB7IGRnLW9wdGlvbnMg Ii1tYXJjaD1ydjY0Z2N2X3p2ZmggLW1hYmk9bHA2NCAtTzMgLVduby1wc2Fi aSIgfSAqLw0KIA0KIA0KIA0KPisNCiANCiANCiANCj4rI2luY2x1ZGUgIm92 ZXJsb2FkZWRfdmZhZGQuaCINCiANCiANCiANCj4rDQogDQogDQogDQo+Ky8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxz K1theF1bMC05XSssXHMqemVybyxccyplMTYsXHMqbWY0LFxzKnRhLFxzKm1h fSAxNiB9IH0gKi8NCiANCiANCiANCj4rLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMremVybyxccypbYXhdWzAtOV0r LFxzKmUxNixccyptZjQsXHMqdGEsXHMqbWF9IDQgfSB9ICovDQogDQogDQog DQo+Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNl dHZsaVxzK1theF1bMC05XSssXHMqemVybyxccyplOCxccyptZjgsXHMqdGEs XHMqbWF9IDggfSB9ICovDQogDQogDQogDQo+Ky8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK3plcm8sXHMqW2F4XVsw LTldKyxccyplMTYsXHMqbWY0LFxzKnR1LFxzKm1hfSA0IH0gfSAqLw0KIA0K IA0KIA0KPisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMg e3ZzZXR2bGlccyt6ZXJvLFxzKltheF1bMC05XSssXHMqZTE2LFxzKm1mNCxc cyp0dSxccyptdX0gMiB9IH0gKi8NCiANCiANCiANCj4rLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMremVybyxccypb YXhdWzAtOV0rLFxzKmUxNixccyptZjQsXHMqdGEsXHMqbXV9IDIgfSB9ICov DQogDQogDQogDQo+Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10 aW1lcyB7dmZhZGRcLnZ2XHMrdlswLTldKyxccyp2WzAtOV0rLFxzKnZbMC05 XSt9IDEyIH0gfSAqLw0KIA0KIA0KIA0KPmRpZmYgLS1naXQgYS9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9y djY0X3ZnZXRfdnNldC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jp c2N2L3J2di9iYXNlL292ZXJsb2FkZWRfcnY2NF92Z2V0X3ZzZXQuYw0KIA0K IA0KIA0KPm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQogDQogDQogDQo+aW5kZXgg MDAwMDAwMDAwMDAuLjFjYjQyMjUwODRjDQogDQogDQogDQo+LS0tIC9kZXYv bnVsbA0KIA0KIA0KIA0KPisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3J2NjRfdmdldF92c2V0LmMN CiANCiANCiANCj5AQCAtMCwwICsxLDYgQEANCiANCiANCiANCj4rLyogeyBk Zy1vcHRpb25zICItbWFyY2g9cnY2NGdjdl96dmZoIC1tYWJpPWxwNjQgLU8z IC1Xbm8tcHNhYmkiIH0gKi8NCiANCiANCiANCj4rDQogDQogDQogDQo+KyNp bmNsdWRlICJvdmVybG9hZGVkX3ZnZXRfdnNldC5oIg0KIA0KIA0KIA0KPisN CiANCiANCiANCj4rLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRp bWVzIHt2bFswLTldK3JlWzAtOV0rXC52XHMrdlswLTldKyxccyowXChbYXhd WzAtOV0rXCl9IDE0IH0gfSAqLw0KIA0KIA0KIA0KPisvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzWzAtOV0rclwudlxzK3ZbMC05 XSssXHMqMFwoW2F4XVswLTldK1wpfSAxMyB9IH0gKi8NCiANCiANCiANCj5k aWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2 di9iYXNlL292ZXJsb2FkZWRfcnY2NF92bG94c2VnMmVpMTYuYyBiL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVk X3J2NjRfdmxveHNlZzJlaTE2LmMNCiANCiANCiANCj5uZXcgZmlsZSBtb2Rl IDEwMDY0NA0KIA0KIA0KIA0KPmluZGV4IDAwMDAwMDAwMDAwLi5lYTczMTcw NDQ0ZA0KIA0KIA0KIA0KPi0tLSAvZGV2L251bGwNCiANCiANCiANCj4rKysg Yi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3Zl cmxvYWRlZF9ydjY0X3Zsb3hzZWcyZWkxNi5jDQogDQogDQogDQo+QEAgLTAs MCArMSwxMCBAQA0KIA0KIA0KIA0KPisvKiB7IGRnLW9wdGlvbnMgIi1tYXJj aD1ydjY0Z2N2X3p2ZmggLW1hYmk9bHA2NCAtTzMgLVduby1wc2FiaSIgfSAq Lw0KIA0KIA0KIA0KPisNCiANCiANCiANCj4rI2luY2x1ZGUgIm92ZXJsb2Fk ZWRfdmxveHNlZzJlaTE2LmgiDQogDQogDQogDQo+Kw0KIA0KIA0KIA0KPisv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlc cyt6ZXJvLFxzKltheF1bMC05XSssXHMqZTY0LFxzKm00LFxzKnRhLFxzKm1h fSAyIH0gfSAqLw0KIA0KIA0KIA0KPisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXItdGltZXMge3ZzZXR2bGlccytbYXhdWzAtOV0rLFxzKnplcm8s XHMqZTgsXHMqbWYyLFxzKnRhLFxzKm1hfSA0IH0gfSAqLw0KIA0KIA0KIA0K PisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2 bGlccyt6ZXJvLFxzKltheF1bMC05XSssXHMqZTY0LFxzKm00LFxzKnR1LFxz Km1hfSAyIH0gfSAqLw0KIA0KIA0KIA0KPisvKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccyt6ZXJvLFxzKltheF1bMC05 XSssXHMqZTY0LFxzKm00LFxzKnR1LFxzKm11fSAxIH0gfSAqLw0KIA0KIA0K IA0KPisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3Zz ZXR2bGlccyt6ZXJvLFxzKltheF1bMC05XSssXHMqZTY0LFxzKm00LFxzKnRh LFxzKm11fSAxIH0gfSAqLw0KIA0KIA0KIA0KPisvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXItdGltZXMge3Zsb3hzZWcyZWkxNlwudlxzK3ZbMC05 XSssXHMqXChbYXhdWzAtOV0rXCksXHMqdlswLTldK30gNiB9IH0gKi8NCiAN CiANCiANCj5kaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfcnY2NF92bXYuYyBiL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVk X3J2NjRfdm12LmMNCiANCiANCiANCj5uZXcgZmlsZSBtb2RlIDEwMDY0NA0K IA0KIA0KIA0KPmluZGV4IDAwMDAwMDAwMDAwLi5jNWRhNmJiZmNhOA0KIA0K IA0KIA0KPi0tLSAvZGV2L251bGwNCiANCiANCiANCj4rKysgYi9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9y djY0X3Ztdi5jDQogDQogDQogDQo+QEAgLTAsMCArMSwxMCBAQA0KIA0KIA0K IA0KPisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KIA0KIA0KIA0KPisvKiB7 IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjY0Z2N2X3p2ZmggLW1hYmk9bHA2NCAt TzMgLVduby1wc2FiaSIgfSAqLw0KIA0KIA0KIA0KPisNCiANCiANCiANCj4r I2luY2x1ZGUgIm92ZXJsb2FkZWRfdm12LmgiDQogDQogDQogDQo+Kw0KIA0K IA0KIA0KPisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMg e3ZzZXR2bGlccyt6ZXJvLFxzKltheF1bMC05XSssXHMqZTgsXHMqbTEsXHMq dGEsXHMqbWF9IDEgfSB9ICovDQogDQogDQogDQo+Ky8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK3plcm8sXHMqW2F4 XVswLTldKyxccyplOCxccyptMSxccyp0dSxccyptYX0gMiB9IH0gKi8NCiAN CiANCiANCj4rLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz IHt2c2V0dmxpXHMremVybyxccypbYXhdWzAtOV0rLFxzKmUxNixccyptMSxc cyp0YSxccyptYX0gMSB9IH0gKi8NCiANCiANCiANCj4rLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMremVybyxccypb YXhdWzAtOV0rLFxzKmUxNixccyptMSxccyp0dSxccyptYX0gMSB9IH0gKi8N CiANCiANCiANCj4rLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRp bWVzIHt2c2V0aXZsaVxzK3plcm8sXHMqMCxccyplOCxccyptMSxccyp0YSxc cyptYX0gMSB9IH0gKi8NCiANCiANCiANCj5kaWZmIC0tZ2l0IGEvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRf cnY2NF92cmVpbnRlcnByZXQuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3J2NjRfdnJlaW50ZXJwcmV0 LmMNCiANCiANCiANCj5uZXcgZmlsZSBtb2RlIDEwMDY0NA0KIA0KIA0KIA0K PmluZGV4IDAwMDAwMDAwMDAwLi4zYjgzOTljMTI2ZA0KIA0KIA0KIA0KPi0t LSAvZGV2L251bGwNCiANCiANCiANCj4rKysgYi9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjY0X3ZyZWlu dGVycHJldC5jDQogDQogDQogDQo+QEAgLTAsMCArMSw5IEBADQogDQogDQog DQo+Ky8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3ZfenZmaCAtbWFi aT1scDY0IC1PMyAtV25vLXBzYWJpIiB9ICovDQogDQogDQogDQo+Kw0KIA0K IA0KIA0KPisjaW5jbHVkZSAib3ZlcmxvYWRlZF92cmVpbnRlcnByZXQuaCIN CiANCiANCiANCj4rDQogDQogDQogDQo+Ky8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1theF1bMC05XSssXHMqemVy byxccyplOCxccyptNCxccyp0YSxccyptYX0gMSB9IH0gKi8NCiANCiANCiAN Cj4rLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0 dmxpXHMrW2F4XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm0yLFxzKnRhLFxz Km1hfSAxIH0gfSAqLw0KIA0KIA0KIA0KPisvKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccytbYXhdWzAtOV0rLFxzKnpl cm8sXHMqZTgsXHMqbWYyLFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KIA0KIA0K IA0KPisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3Zz ZXR2bGlccytbYXhdWzAtOV0rLFxzKnplcm8sXHMqZTE2LFxzKm1mMixccyp0 YSxccyptYX0gMiB9IH0gKi8NCiANCiANCiANCj4rLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMrW2F4XVswLTldKyxc cyp6ZXJvLFxzKmUzMixccyptZjIsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQog DQogDQogDQo+ZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3ZhZGQuaCBiL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3Zh ZGQuaA0KIA0KIA0KIA0KPm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQogDQogDQog DQo+aW5kZXggMDAwMDAwMDAwMDAuLjNiNDFjZmYxYjYyDQogDQogDQogDQo+ LS0tIC9kZXYvbnVsbA0KIA0KIA0KIA0KPisrKyBiL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3ZhZGQuaA0K IA0KIA0KIA0KPkBAIC0wLDAgKzEsNTkgQEANCiANCiANCiANCj4rI2luY2x1 ZGUgInJpc2N2X3ZlY3Rvci5oIg0KIA0KIA0KIA0KPisNCiANCiANCiANCj4r dmludDhtMV90IHRlc3RfdmFkZF92dl9pOG0xKHZpbnQ4bTFfdCB2czIsIHZp bnQ4bTFfdCB2czEsIHNpemVfdCB2bCkgew0KIA0KIA0KIA0KPisgIHJldHVy biBfX3Jpc2N2X3ZhZGQodnMyLCB2czEsIHZsKTsNCiANCiANCiANCj4rfQ0K IA0KIA0KIA0KPisNCiANCiANCiANCj4rdmludDhtMV90IHRlc3RfdmFkZF92 eF9pOG0xKHZpbnQ4bTFfdCB2czIsIGludDhfdCByczEsIHNpemVfdCB2bCkg ew0KIA0KIA0KIA0KPisgIHJldHVybiBfX3Jpc2N2X3ZhZGQodnMyLCByczEs IHZsKTsNCiANCiANCiANCj4rfQ0KIA0KIA0KIA0KPisNCiANCiANCiANCj4r dmludDhtMV90IHRlc3RfdmFkZF92dl9pOG0xX20odmJvb2w4X3Qgdm0sIHZp bnQ4bTFfdCB2czIsIHZpbnQ4bTFfdCB2czEsDQogDQogDQogDQo+KyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCB2bCkgew0KIA0KIA0K IA0KPisgIHJldHVybiBfX3Jpc2N2X3ZhZGQodm0sIHZzMiwgdnMxLCB2bCk7 DQogDQogDQogDQo+K30NCiANCiANCiANCj4rDQogDQogDQogDQo+K3ZpbnQ4 bTFfdCB0ZXN0X3ZhZGRfdnhfaThtMV9tKHZib29sOF90IHZtLCB2aW50OG0x X3QgdnMyLCBpbnQ4X3QgcnMxLA0KIA0KIA0KIA0KPisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzaXplX3QgdmwpIHsNCiANCiANCiANCj4rICBy ZXR1cm4gX19yaXNjdl92YWRkKHZtLCB2czIsIHJzMSwgdmwpOw0KIA0KIA0K IA0KPit9DQogDQogDQogDQo+Kw0KIA0KIA0KIA0KPit2aW50OG0xX3QgdGVz dF92YWRkX3Z2X2k4bTFfdHUodmludDhtMV90IHZkLCB2aW50OG0xX3QgdnMy LCB2aW50OG0xX3QgdnMxLA0KIA0KIA0KIA0KPisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2l6ZV90IHZsKSB7DQogDQogDQogDQo+KyAgcmV0 dXJuIF9fcmlzY3ZfdmFkZF90dSh2ZCwgdnMyLCB2czEsIHZsKTsNCiANCiAN CiANCj4rfQ0KIA0KIA0KIA0KPisNCiANCiANCiANCj4rdmludDhtMV90IHRl c3RfdmFkZF92eF9pOG0xX3R1KHZpbnQ4bTFfdCB2ZCwgdmludDhtMV90IHZz MiwgaW50OF90IHJzMSwNCiANCiANCiANCj4rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNpemVfdCB2bCkgew0KIA0KIA0KIA0KPisgIHJldHVy biBfX3Jpc2N2X3ZhZGRfdHUodmQsIHZzMiwgcnMxLCB2bCk7DQogDQogDQog DQo+K30NCiANCiANCiANCj4rDQogDQogDQogDQo+K3ZpbnQ4bTFfdCB0ZXN0 X3ZhZGRfdnZfaThtMV90dW0odmJvb2w4X3Qgdm0sIHZpbnQ4bTFfdCB2ZCwg dmludDhtMV90IHZzMiwNCiANCiANCiANCj4rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB2aW50OG0xX3QgdnMxLCBzaXplX3QgdmwpIHsNCiAN CiANCiANCj4rICByZXR1cm4gX19yaXNjdl92YWRkX3R1bSh2bSwgdmQsIHZz MiwgdnMxLCB2bCk7DQogDQogDQogDQo+K30NCiANCiANCiANCj4rDQogDQog DQogDQo+K3ZpbnQ4bTFfdCB0ZXN0X3ZhZGRfdnhfaThtMV90dW0odmJvb2w4 X3Qgdm0sIHZpbnQ4bTFfdCB2ZCwgdmludDhtMV90IHZzMiwNCiANCiANCiAN Cj4rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQ4X3QgcnMx LCBzaXplX3QgdmwpIHsNCiANCiANCiANCj4rICByZXR1cm4gX19yaXNjdl92 YWRkX3R1bSh2bSwgdmQsIHZzMiwgcnMxLCB2bCk7DQogDQogDQogDQo+K30N CiANCiANCiANCj4rDQogDQogDQogDQo+K3ZpbnQ4bTFfdCB0ZXN0X3ZhZGRf dnZfaThtMV9tdSh2Ym9vbDhfdCB2bSwgdmludDhtMV90IHZkLCB2aW50OG0x X3QgdnMyLA0KIA0KIA0KIA0KPisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdmludDhtMV90IHZzMSwgc2l6ZV90IHZsKSB7DQogDQogDQogDQo+ KyAgcmV0dXJuIF9fcmlzY3ZfdmFkZF9tdSh2bSwgdmQsIHZzMiwgdnMxLCB2 bCk7DQogDQogDQogDQo+K30NCiANCiANCiANCj4rDQogDQogDQogDQo+K3Zp bnQ4bTFfdCB0ZXN0X3ZhZGRfdnhfaThtMV9tdSh2Ym9vbDhfdCB2bSwgdmlu dDhtMV90IHZkLCB2aW50OG0xX3QgdnMyLA0KIA0KIA0KIA0KPisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaW50OF90IHJzMSwgc2l6ZV90IHZs KSB7DQogDQogDQogDQo+KyAgcmV0dXJuIF9fcmlzY3ZfdmFkZF9tdSh2bSwg dmQsIHZzMiwgcnMxLCB2bCk7DQogDQogDQogDQo+K30NCiANCiANCiANCj4r DQogDQogDQogDQo+K3ZpbnQ4bTFfdCB0ZXN0X3ZhZGRfdnZfaThtMV90dW11 KHZib29sOF90IHZtLCB2aW50OG0xX3QgdmQsIHZpbnQ4bTFfdCB2czIsDQog DQogDQogDQo+KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZp bnQ4bTFfdCB2czEsIHNpemVfdCB2bCkgew0KIA0KIA0KIA0KPisgIHJldHVy biBfX3Jpc2N2X3ZhZGRfdHVtdSh2bSwgdmQsIHZzMiwgdnMxLCB2bCk7DQog DQogDQogDQo+K30NCiANCiANCiANCj4rDQogDQogDQogDQo+K3ZpbnQ4bTFf dCB0ZXN0X3ZhZGRfdnhfaThtMV90dW11KHZib29sOF90IHZtLCB2aW50OG0x X3QgdmQsIHZpbnQ4bTFfdCB2czIsDQogDQogDQogDQo+KyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGludDhfdCByczEsIHNpemVfdCB2bCkg ew0KIA0KIA0KIA0KPisgIHJldHVybiBfX3Jpc2N2X3ZhZGRfdHVtdSh2bSwg dmQsIHZzMiwgcnMxLCB2bCk7DQogDQogDQogDQo+K30NCiANCiANCiANCj5k aWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2 di9iYXNlL292ZXJsb2FkZWRfdmZhZGQuaCBiL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3ZmYWRkLmgNCiAN CiANCiANCj5uZXcgZmlsZSBtb2RlIDEwMDY0NA0KIA0KIA0KIA0KPmluZGV4 IDAwMDAwMDAwMDAwLi43OThhZjQyMGYyZA0KIA0KIA0KIA0KPi0tLSAvZGV2 L251bGwNCiANCiANCiANCj4rKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF92ZmFkZC5oDQogDQogDQog DQo+QEAgLTAsMCArMSw2NyBAQA0KIA0KIA0KIA0KPisjaW5jbHVkZSAicmlz Y3ZfdmVjdG9yLmgiDQogDQogDQogDQo+Kw0KIA0KIA0KIA0KPit2ZmxvYXQx Nm1mNF90IHRlc3RfdmZhZGRfdnZfZjE2bWY0KHZmbG9hdDE2bWY0X3QgdnMy LCB2ZmxvYXQxNm1mNF90IHZzMSwNCiANCiANCiANCj4rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgdmwpIHsNCiANCiANCiAN Cj4rICByZXR1cm4gX19yaXNjdl92ZmFkZCh2czIsIHZzMSwgdmwpOw0KIA0K IA0KIA0KPit9DQogDQogDQogDQo+Kw0KIA0KIA0KIA0KPit2ZmxvYXQxNm1m NF90IHRlc3RfdmZhZGRfdnZfZjE2bWY0X20odmJvb2w2NF90IHZtLCB2Zmxv YXQxNm1mNF90IHZzMiwNCiANCiANCiANCj4rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHZmbG9hdDE2bWY0X3QgdnMxLCBzaXplX3Qg dmwpIHsNCiANCiANCiANCj4rICByZXR1cm4gX19yaXNjdl92ZmFkZCh2bSwg dnMyLCB2czEsIHZsKTsNCiANCiANCiANCj4rfQ0KIA0KIA0KIA0KPisNCiAN CiANCiANCj4rdmZsb2F0MTZtZjRfdCB0ZXN0X3ZmYWRkX3Z2X2YxNm1mNF90 dSh2ZmxvYXQxNm1mNF90IHZkLCB2ZmxvYXQxNm1mNF90IHZzMiwNCiANCiAN CiANCj4rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2 ZmxvYXQxNm1mNF90IHZzMSwgc2l6ZV90IHZsKSB7DQogDQogDQogDQo+KyAg cmV0dXJuIF9fcmlzY3ZfdmZhZGRfdHUodmQsIHZzMiwgdnMxLCB2bCk7DQog DQogDQogDQo+K30NCiANCiANCiANCj4rDQogDQogDQogDQo+K3ZmbG9hdDE2 bWY0X3QgdGVzdF92ZmFkZF92dl9mMTZtZjRfdHVtKHZib29sNjRfdCB2bSwg dmZsb2F0MTZtZjRfdCB2ZCwNCiANCiANCiANCj4rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdmZsb2F0MTZtZjRfdCB2czIsIHZm bG9hdDE2bWY0X3QgdnMxLA0KIA0KIA0KIA0KPisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgdmwpIHsNCiANCiANCiAN Cj4rICByZXR1cm4gX19yaXNjdl92ZmFkZF90dW0odm0sIHZkLCB2czIsIHZz MSwgdmwpOw0KIA0KIA0KIA0KPit9DQogDQogDQogDQo+Kw0KIA0KIA0KIA0K Pit2ZmxvYXQxNm1mNF90IHRlc3RfdmZhZGRfdnZfZjE2bWY0X3R1bXUodmJv b2w2NF90IHZtLCB2ZmxvYXQxNm1mNF90IHZkLA0KIA0KIA0KIA0KPisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmZsb2F0MTZt ZjRfdCB2czIsIHZmbG9hdDE2bWY0X3QgdnMxLA0KIA0KIA0KIA0KPisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHZs KSB7DQogDQogDQogDQo+KyAgcmV0dXJuIF9fcmlzY3ZfdmZhZGRfdHVtdSh2 bSwgdmQsIHZzMiwgdnMxLCB2bCk7DQogDQogDQogDQo+K30NCiANCiANCiAN Cj4rDQogDQogDQogDQo+K3ZmbG9hdDE2bWY0X3QgdGVzdF92ZmFkZF92dl9m MTZtZjRfbXUodmJvb2w2NF90IHZtLCB2ZmxvYXQxNm1mNF90IHZkLA0KIA0K IA0KIA0KPisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHZmbG9hdDE2bWY0X3QgdnMyLCB2ZmxvYXQxNm1mNF90IHZzMSwNCiANCiAN CiANCj4rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz aXplX3QgdmwpIHsNCiANCiANCiANCj4rICByZXR1cm4gX19yaXNjdl92ZmFk ZF9tdSh2bSwgdmQsIHZzMiwgdnMxLCB2bCk7DQogDQogDQogDQo+K30NCiAN CiANCiANCj4rDQogDQogDQogDQo+K3ZmbG9hdDE2bWY0X3QgdGVzdF92ZmFk ZF92dl9mMTZtZjRfcm0odmZsb2F0MTZtZjRfdCB2czIsIHZmbG9hdDE2bWY0 X3QgdnMxLA0KIA0KIA0KIA0KPisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNpemVfdCB2bCkgew0KIA0KIA0KIA0KPisgIHJldHVy biBfX3Jpc2N2X3ZmYWRkKHZzMiwgdnMxLCBfX1JJU0NWX0ZSTV9STkUsIHZs KTsNCiANCiANCiANCj4rfQ0KIA0KIA0KIA0KPisNCiANCiANCiANCj4rdmZs b2F0MTZtZjRfdCB0ZXN0X3ZmYWRkX3Z2X2YxNm1mNF9ybV9tKHZib29sNjRf dCB2bSwgdmZsb2F0MTZtZjRfdCB2czIsDQogDQogDQogDQo+KyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZmxvYXQxNm1mNF90 IHZzMSwgc2l6ZV90IHZsKSB7DQogDQogDQogDQo+KyAgcmV0dXJuIF9fcmlz Y3ZfdmZhZGQodm0sIHZzMiwgdnMxLCBfX1JJU0NWX0ZSTV9STkUsIHZsKTsN CiANCiANCiANCj4rfQ0KIA0KIA0KIA0KPisNCiANCiANCiANCj4rdmZsb2F0 MTZtZjRfdCB0ZXN0X3ZmYWRkX3Z2X2YxNm1mNF9ybV90dSh2ZmxvYXQxNm1m NF90IHZkLCB2ZmxvYXQxNm1mNF90IHZzMiwNCiANCiANCiANCj4rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZmxvYXQxNm1m NF90IHZzMSwgc2l6ZV90IHZsKSB7DQogDQogDQogDQo+KyAgcmV0dXJuIF9f cmlzY3ZfdmZhZGRfdHUodmQsIHZzMiwgdnMxLCBfX1JJU0NWX0ZSTV9STkUs IHZsKTsNCiANCiANCiANCj4rfQ0KIA0KIA0KIA0KPisNCiANCiANCiANCj4r dmZsb2F0MTZtZjRfdCB0ZXN0X3ZmYWRkX3Z2X2YxNm1mNF9ybV90dW0odmJv b2w2NF90IHZtLCB2ZmxvYXQxNm1mNF90IHZkLA0KIA0KIA0KIA0KPisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZmxvYXQx Nm1mNF90IHZzMiwgdmZsb2F0MTZtZjRfdCB2czEsDQogDQogDQogDQo+KyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVf dCB2bCkgew0KIA0KIA0KIA0KPisgIHJldHVybiBfX3Jpc2N2X3ZmYWRkX3R1 bSh2bSwgdmQsIHZzMiwgdnMxLCBfX1JJU0NWX0ZSTV9STkUsIHZsKTsNCiAN CiANCiANCj4rfQ0KIA0KIA0KIA0KPisNCiANCiANCiANCj4rdmZsb2F0MTZt ZjRfdCB0ZXN0X3ZmYWRkX3Z2X2YxNm1mNF9ybV90dW11KHZib29sNjRfdCB2 bSwgdmZsb2F0MTZtZjRfdCB2ZCwNCiANCiANCiANCj4rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZmbG9hdDE2bWY0X3Qg dnMyLCB2ZmxvYXQxNm1mNF90IHZzMSwNCiANCiANCiANCj4rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCB2bCkg ew0KIA0KIA0KIA0KPisgIHJldHVybiBfX3Jpc2N2X3ZmYWRkX3R1bXUodm0s IHZkLCB2czIsIHZzMSwgX19SSVNDVl9GUk1fUk5FLCB2bCk7DQogDQogDQog DQo+K30NCiANCiANCiANCj4rDQogDQogDQogDQo+K3ZmbG9hdDE2bWY0X3Qg dGVzdF92ZmFkZF92dl9mMTZtZjRfcm1fbXUodmJvb2w2NF90IHZtLCB2Zmxv YXQxNm1mNF90IHZkLA0KIA0KIA0KIA0KPisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHZmbG9hdDE2bWY0X3QgdnMyLCB2Zmxv YXQxNm1mNF90IHZzMSwNCiANCiANCiANCj4rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgdmwpIHsNCiANCiANCiAN Cj4rICByZXR1cm4gX19yaXNjdl92ZmFkZF9tdSh2bSwgdmQsIHZzMiwgdnMx LCBfX1JJU0NWX0ZSTV9STkUsIHZsKTsNCiANCiANCiANCj4rfQ0KIA0KIA0K IA0KPmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlz Y3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF92Z2V0X3ZzZXQuaCBiL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3Zn ZXRfdnNldC5oDQogDQogDQogDQo+bmV3IGZpbGUgbW9kZSAxMDA2NDQNCiAN CiANCiANCj5pbmRleCAwMDAwMDAwMDAwMC4uMDFlMDcyZWIzOGYNCiANCiAN CiANCj4tLS0gL2Rldi9udWxsDQogDQogDQogDQo+KysrIGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfdmdl dF92c2V0LmgNCiANCiANCiANCj5AQCAtMCwwICsxLDI3IEBADQogDQogDQog DQo+KyNpbmNsdWRlICJyaXNjdl92ZWN0b3IuaCINCiANCiANCiANCj4rDQog DQogDQogDQo+K3ZmbG9hdDE2bTFfdCB0ZXN0X3ZnZXRfdl9mMTZtMl9mMTZt MSh2ZmxvYXQxNm0yX3Qgc3JjLCBzaXplX3QgaW5kZXgpIHsNCiANCiANCiAN Cj4rICByZXR1cm4gX19yaXNjdl92Z2V0X2YxNm0xKHNyYywgMCk7DQogDQog DQogDQo+K30NCiANCiANCiANCj4rDQogDQogDQogDQo+K3ZpbnQ2NG0xX3Qg dGVzdF92Z2V0X3ZfaTY0bTRfaTY0bTEodmludDY0bTRfdCBzcmMsIHNpemVf dCBpbmRleCkgew0KIA0KIA0KIA0KPisgIHJldHVybiBfX3Jpc2N2X3ZnZXRf aTY0bTEoc3JjLCAwKTsNCiANCiANCiANCj4rfQ0KIA0KIA0KIA0KPisNCiAN CiANCiANCj4rdmZsb2F0MTZtMV90IHRlc3RfdmdldF92X2YxNm0xeDRfZjE2 bTEodmZsb2F0MTZtMXg0X3Qgc3JjLCBzaXplX3QgaW5kZXgpIHsNCiANCiAN CiANCj4rICByZXR1cm4gX19yaXNjdl92Z2V0X2YxNm0xKHNyYywgMCk7DQog DQogDQogDQo+K30NCiANCiANCiANCj4rDQogDQogDQogDQo+K3ZpbnQ4bTJf dCB0ZXN0X3ZnZXRfdl9pOG0yeDNfaThtMih2aW50OG0yeDNfdCBzcmMsIHNp emVfdCBpbmRleCkgew0KIA0KIA0KIA0KPisgIHJldHVybiBfX3Jpc2N2X3Zn ZXRfaThtMihzcmMsIDApOw0KIA0KIA0KIA0KPit9DQogDQogDQogDQo+Kw0K IA0KIA0KIA0KPit2ZmxvYXQxNm0yX3QgdGVzdF92c2V0X3ZfZjE2bTFfZjE2 bTIodmZsb2F0MTZtMl90IGRlc3QsIHNpemVfdCBpbmRleCwNCiANCiANCiAN Cj4rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZmbG9h dDE2bTFfdCB2YWx1ZSkgew0KIA0KIA0KIA0KPisgIHJldHVybiBfX3Jpc2N2 X3ZzZXQoZGVzdCwgMCwgdmFsdWUpOw0KIA0KIA0KIA0KPit9DQogDQogDQog DQo+Kw0KIA0KIA0KIA0KPit2ZmxvYXQ2NG0xeDdfdCB0ZXN0X3ZzZXRfdl9m NjRtMV9mNjRtMXg3KHZmbG9hdDY0bTF4N190IGRlc3QsIHNpemVfdCBpbmRl eCwNCiANCiANCiANCj4rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB2ZmxvYXQ2NG0xX3QgdmFsdWUpIHsNCiANCiANCiANCj4r ICByZXR1cm4gX19yaXNjdl92c2V0KGRlc3QsIDAsIHZhbHVlKTsNCiANCiAN CiANCj4rfQ0KIA0KIA0KIA0KPmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF92bG94c2Vn MmVpMTYuaCBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYv YmFzZS9vdmVybG9hZGVkX3Zsb3hzZWcyZWkxNi5oDQogDQogDQogDQo+bmV3 IGZpbGUgbW9kZSAxMDA2NDQNCiANCiANCiANCj5pbmRleCAwMDAwMDAwMDAw MC4uMmViY2RiNDE3OTUNCiANCiANCiANCj4tLS0gL2Rldi9udWxsDQogDQog DQogDQo+KysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2 di9iYXNlL292ZXJsb2FkZWRfdmxveHNlZzJlaTE2LmgNCiANCiANCiANCj5A QCAtMCwwICsxLDM5IEBADQogDQogDQogDQo+KyNpbmNsdWRlICJyaXNjdl92 ZWN0b3IuaCINCiANCiANCiANCj4rDQogDQogDQogDQo+K3R5cGVkZWYgX0Zs b2F0MTYgZmxvYXQxNl90Ow0KIA0KIA0KIA0KPit0eXBlZGVmIGZsb2F0IGZs b2F0MzJfdDsNCiANCiANCiANCj4rdHlwZWRlZiBkb3VibGUgZmxvYXQ2NF90 Ow0KIA0KIA0KIA0KPisNCiANCiANCiANCj4rdmZsb2F0NjRtNHgyX3QgdGVz dF92bG94c2VnMmVpMTZfdl9mNjRtNHgyKGNvbnN0IGZsb2F0NjRfdCAqcnMx LA0KIA0KIA0KIA0KPisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdnVpbnQxNm0xX3QgcnMyLCBzaXplX3QgdmwpIHsNCiAN CiANCiANCj4rICByZXR1cm4gX19yaXNjdl92bG94c2VnMmVpMTYocnMxLCBy czIsIHZsKTsNCiANCiANCiANCj4rfQ0KIA0KIA0KIA0KPisNCiANCiANCiAN Cj4rdmZsb2F0NjRtNHgyX3QgdGVzdF92bG94c2VnMmVpMTZfdl9mNjRtNHgy X20odmJvb2wxNl90IHZtLCBjb25zdCBmbG9hdDY0X3QgKnJzMSwNCiANCiAN CiANCj4rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdnVpbnQxNm0xX3QgcnMyLCBzaXplX3QgdmwpIHsNCiANCiANCiAN Cj4rICByZXR1cm4gX19yaXNjdl92bG94c2VnMmVpMTYodm0sIHJzMSwgcnMy LCB2bCk7DQogDQogDQogDQo+K30NCiANCiANCiANCj4rDQogDQogDQogDQo+ K3ZmbG9hdDY0bTR4Ml90IHRlc3RfdmxveHNlZzJlaTE2X3ZfZjY0bTR4Ml90 dW0odmJvb2wxNl90IHZtLCB2ZmxvYXQ2NG00eDJfdCB2ZCwNCiANCiANCiAN Cj4rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb25zdCBmbG9hdDY0X3QgKnJzMSwNCiANCiANCiANCj4rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2dWlu dDE2bTFfdCByczIsIHNpemVfdCB2bCkgew0KIA0KIA0KIA0KPisgIHJldHVy biBfX3Jpc2N2X3Zsb3hzZWcyZWkxNl90dW0odm0sIHZkLCByczEsIHJzMiwg dmwpOw0KIA0KIA0KIA0KPit9DQogDQogDQogDQo+Kw0KIA0KIA0KIA0KPit2 ZmxvYXQ2NG00eDJfdCB0ZXN0X3Zsb3hzZWcyZWkxNl92X2Y2NG00eDJfdHVt dSh2Ym9vbDE2X3Qgdm0sIHZmbG9hdDY0bTR4Ml90IHZkLA0KIA0KIA0KIA0K PisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb25zdCBmbG9hdDY0X3QgKnJzMSwNCiANCiANCiANCj4rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdnVp bnQxNm0xX3QgcnMyLCBzaXplX3QgdmwpIHsNCiANCiANCiANCj4rICByZXR1 cm4gX19yaXNjdl92bG94c2VnMmVpMTZfdHVtdSh2bSwgdmQsIHJzMSwgcnMy LCB2bCk7DQogDQogDQogDQo+K30NCiANCiANCiANCj4rDQogDQogDQogDQo+ K3ZmbG9hdDY0bTR4Ml90IHRlc3RfdmxveHNlZzJlaTE2X3ZfZjY0bTR4Ml9t dSh2Ym9vbDE2X3Qgdm0sIHZmbG9hdDY0bTR4Ml90IHZkLA0KIA0KIA0KIA0K PisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3QgZmxvYXQ2NF90ICpyczEsDQogDQogDQogDQo+KyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2dWludDE2 bTFfdCByczIsIHNpemVfdCB2bCkgew0KIA0KIA0KIA0KPisgIHJldHVybiBf X3Jpc2N2X3Zsb3hzZWcyZWkxNl9tdSh2bSwgdmQsIHJzMSwgcnMyLCB2bCk7 DQogDQogDQogDQo+K30NCiANCiANCiANCj4rDQogDQogDQogDQo+K3ZmbG9h dDY0bTR4Ml90IHRlc3RfdmxveHNlZzJlaTE2X3ZfZjY0bTR4Ml90dSh2Zmxv YXQ2NG00eDJfdCB2ZCwNCiANCiANCiANCj4rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZsb2F0NjRfdCAq cnMxLA0KIA0KIA0KIA0KPisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdnVpbnQxNm0xX3QgcnMyLCBzaXplX3Qgdmwp IHsNCiANCiANCiANCj4rICByZXR1cm4gX19yaXNjdl92bG94c2VnMmVpMTZf dHUodmQsIHJzMSwgcnMyLCB2bCk7DQogDQogDQogDQo+K30NCiANCiANCiAN Cj5kaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di9iYXNlL292ZXJsb2FkZWRfdm12LmggYi9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF92bXYuaA0KIA0K IA0KIA0KPm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQogDQogDQogDQo+aW5kZXgg MDAwMDAwMDAwMDAuLmZkM2YxZDI4YzBhDQogDQogDQogDQo+LS0tIC9kZXYv bnVsbA0KIA0KIA0KIA0KPisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3Ztdi5oDQogDQogDQogDQo+ QEAgLTAsMCArMSwyNiBAQA0KIA0KIA0KIA0KPisjaW5jbHVkZSAicmlzY3Zf dmVjdG9yLmgiDQogDQogDQogDQo+Kw0KIA0KIA0KIA0KPit2aW50OG0xX3Qg dGVzdF92bXZfdl92X2k4bTEgKHZpbnQ4bTFfdCB2czEsIHNpemVfdCB2bCkg ew0KIA0KIA0KIA0KPisgIHJldHVybiBfX3Jpc2N2X3Ztdl92ICh2czEsIHZs KTsNCiANCiANCiANCj4rfQ0KIA0KIA0KIA0KPisNCiANCiANCiANCj4rdmlu dDhtMV90IHRlc3Rfdm12X3Zfdl9pOG0xX3R1ICh2aW50OG0xX3QgdmQsIHZp bnQ4bTFfdCB2czEsIHNpemVfdCB2bCkgew0KIA0KIA0KIA0KPisgIHJldHVy biBfX3Jpc2N2X3Ztdl92X3R1KHZkLCB2czEsIHZsKTsNCiANCiANCiANCj4r fQ0KIA0KIA0KIA0KPisNCiANCiANCiANCj4rdmZsb2F0MTZtMV90IHRlc3Rf dm12X3Zfdl9mMTZtMSAodmZsb2F0MTZtMV90IHZzMSwgc2l6ZV90IHZsKSB7 DQogDQogDQogDQo+KyAgcmV0dXJuIF9fcmlzY3Zfdm12X3YgKHZzMSwgdmwp Ow0KIA0KIA0KIA0KPit9DQogDQogDQogDQo+Kw0KIA0KIA0KIA0KPit2Zmxv YXQxNm0xX3QgdGVzdF92bXZfdl92X2YxNm0xX3R1ICh2ZmxvYXQxNm0xX3Qg dmQsIHZmbG9hdDE2bTFfdCB2czEsDQogDQogDQogDQo+KyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHZsKSB7DQogDQogDQog DQo+KyAgcmV0dXJuIF9fcmlzY3Zfdm12X3ZfdHUgKHZkLCB2czEsIHZsKTsN CiANCiANCiANCj4rfQ0KIA0KIA0KIA0KPisNCiANCiANCiANCj4raW50OF90 IHRlc3Rfdm12X3hfc19pOG0xX2k4KHZpbnQ4bTFfdCB2czEpIHsNCiANCiAN CiANCj4rICByZXR1cm4gX19yaXNjdl92bXZfeCAodnMxKTsNCiANCiANCiAN Cj4rfQ0KIA0KIA0KIA0KPisNCiANCiANCiANCj4rdmludDhtMV90IHRlc3Rf dm12X3NfeF9pOG0xX3R1KHZpbnQ4bTFfdCB2ZCwgaW50OF90IHJzMSwgc2l6 ZV90IHZsKSB7DQogDQogDQogDQo+KyAgcmV0dXJuIF9fcmlzY3Zfdm12X3Nf dHUodmQsIHJzMSwgdmwpOw0KIA0KIA0KIA0KPit9DQogDQogDQogDQo+ZGlm ZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYv YmFzZS9vdmVybG9hZGVkX3ZyZWludGVycHJldC5oIGIvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfdnJlaW50 ZXJwcmV0LmgNCiANCiANCiANCj5uZXcgZmlsZSBtb2RlIDEwMDY0NA0KIA0K IA0KIA0KPmluZGV4IDAwMDAwMDAwMDAwLi45MDRiMGNlZWU3Mg0KIA0KIA0K IA0KPi0tLSAvZGV2L251bGwNCiANCiANCiANCj4rKysgYi9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF92cmVp bnRlcnByZXQuaA0KIA0KIA0KIA0KPkBAIC0wLDAgKzEsMjkgQEANCiANCiAN CiANCj4rI2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0KIA0KIA0KIA0KPisN CiANCiANCiANCj4rdnVpbnQxNm0xX3QgdGVzdF92cmVpbnRlcnByZXRfdl9i Ml91MTZtMSh2Ym9vbDJfdCBzcmMpIHsNCiANCiANCiANCj4rICByZXR1cm4g X19yaXNjdl92cmVpbnRlcnByZXRfdTE2bTEoc3JjKTsNCiANCiANCiANCj4r fQ0KIA0KIA0KIA0KPisNCiANCiANCiANCj4rdmJvb2w0X3QgdGVzdF92cmVp bnRlcnByZXRfdl9pMzJtMV9iNCh2aW50MzJtMV90IHNyYykgew0KIA0KIA0K IA0KPisgIHJldHVybiBfX3Jpc2N2X3ZyZWludGVycHJldF9iNChzcmMpOw0K IA0KIA0KIA0KPit9DQogDQogDQogDQo+Kw0KIA0KIA0KIA0KPit2aW50OG1m Ml90IHRlc3RfdnJlaW50ZXJwcmV0X3ZfaTE2bWYyX2k4bWYyKHZpbnQxNm1m Ml90IHNyYykgew0KIA0KIA0KIA0KPisgIHJldHVybiBfX3Jpc2N2X3ZyZWlu dGVycHJldF9pOG1mMihzcmMpOw0KIA0KIA0KIA0KPit9DQogDQogDQogDQo+ Kw0KIA0KIA0KIA0KPit2aW50MzJtZjJfdCB0ZXN0X3ZyZWludGVycHJldF92 X2kxNm1mMl9pMzJtZjIodmludDE2bWYyX3Qgc3JjKSB7DQogDQogDQogDQo+ KyAgcmV0dXJuIF9fcmlzY3ZfdnJlaW50ZXJwcmV0X2kzMm1mMihzcmMpOw0K IA0KIA0KIA0KPit9DQogDQogDQogDQo+Kw0KIA0KIA0KIA0KPit2aW50MzJt MV90IHRlc3RfdnJlaW50ZXJwcmV0X3ZfaTE2bTFfaTMybTEodmludDE2bTFf dCBzcmMpIHsNCiANCiANCiANCj4rICByZXR1cm4gX19yaXNjdl92cmVpbnRl cnByZXRfaTMybTEoc3JjKTsNCiANCiANCiANCj4rfQ0KIA0KIA0KIA0KPisN CiANCiANCiANCj4rdmludDhtNF90IHRlc3RfdnJlaW50ZXJwcmV0X3ZfaTMy bTRfaThtNCh2aW50MzJtNF90IHNyYykgew0KIA0KIA0KIA0KPisgIHJldHVy biBfX3Jpc2N2X3ZyZWludGVycHJldF9pOG00KHNyYyk7DQogDQogDQogDQo+ K30NCiANCiANCiANCj4rDQogDQogDQogDQo+K3Z1aW50OG04X3QgdGVzdF92 cmVpbnRlcnByZXRfdl91MzJtOF91OG04KHZ1aW50MzJtOF90IHNyYykgew0K IA0KIA0KIA0KPisgIHJldHVybiBfX3Jpc2N2X3ZyZWludGVycHJldF91OG04 KHNyYyk7DQogDQogDQogDQo+K30NCiANCiANCiANCj4tLSANCiANCiANCiAN Cj4yLjE3LjENCiANCiANCiANCj4gDQogDQogDQogDQo+IA0KIA0KIA0K ------=_001_NextPart847755820885_=------