From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 78944 invoked by alias); 18 Jan 2019 19:25:20 -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 78911 invoked by uid 89); 18 Jan 2019 19:25:20 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Checked: by ClamAV 0.100.2 on sourceware.org X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.9 required=5.0 tests=BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS autolearn=ham version=3.3.2 spammy=Within, 5463, HTo:U*jit, entrypoints X-Spam-Status: No, score=-26.9 required=5.0 tests=BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS autolearn=ham version=3.3.2 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on sourceware.org X-Spam-Level: X-Spam-User: qpsmtpd, 2 recipients X-HELO: EUR02-HE1-obe.outbound.protection.outlook.com Received: from mail-eopbgr10052.outbound.protection.outlook.com (HELO EUR02-HE1-obe.outbound.protection.outlook.com) (40.107.1.52) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 18 Jan 2019 19:25:15 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector1-arm-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=BraFAzRw9p243eOB/QAdyChx0gClm9V2GElfLMFWdNQ=; b=Wx/QB8fXagwhkuX512m9NH/dqxqxpyTFg+BiB2QpQe7mp+Q2R4zub0jL+kbSwC3YbGkIXQO7ofbwUz96bRg2nNsQuddZAkkyzzSGefVzE467rlZPT0fKNyN8S2jzt0WFzk3ObhkiinImM1LtKPNOPyfto/oa5aGZOOXHJXPmv0k= Received: from AM5PR0801MB1986.eurprd08.prod.outlook.com (10.168.158.13) by AM5PR0801MB1684.eurprd08.prod.outlook.com (10.169.246.142) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1516.18; Fri, 18 Jan 2019 19:25:11 +0000 Received: from AM5PR0801MB1986.eurprd08.prod.outlook.com ([fe80::7c0e:4a15:1b8b:e5bc]) by AM5PR0801MB1986.eurprd08.prod.outlook.com ([fe80::7c0e:4a15:1b8b:e5bc%9]) with mapi id 15.20.1537.018; Fri, 18 Jan 2019 19:25:11 +0000 From: Andrea Corallo To: "gcc-patches@gcc.gnu.org" , "jit@gcc.gnu.org" CC: nd Subject: [PATCH][gcc] libgccjit: introduce gcc_jit_context_add_driver_option Thread-Topic: [PATCH][gcc] libgccjit: introduce gcc_jit_context_add_driver_option Thread-Index: AQHUr2OH9uE/qYp5IkO+TGJJcdKJMQ== Date: Tue, 01 Jan 2019 00:00:00 -0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-clientproxiedby: LO2P265CA0413.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:a0::17) To AM5PR0801MB1986.eurprd08.prod.outlook.com (2603:10a6:203:4b::13) 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-microsoft-exchange-diagnostics: 1;AM5PR0801MB1684;6:cEtYbkONLY3YB87TP9Nwu4r1XI6amYjY2md/xEn2kEO/OGW3jdowjl7kNST8lJT83b88prwUbxjVtPA81ysy8Kp44NziICeKdPDdPNlbUF9tQHtAXCIZEfqwza1IeJgvJRvF2liAE30iUJnrNBeBrsEBww48vfgebigBnm8adQnIcKAUSQ2OPcsFYGnL9s5qVzWAtajlpDIumzl62qiWecg34w8JqqqX+IOKMlvNVGSk07W441b1X88kFsB75Ree9D74ogFAZg+l9X1x9RRTb0cGENvg+7+58U0iQzc5ElMjcMjMK0aHLcuX19pRSs1sbE2/E+XAo1rybO5zwlbXOrk6WY1Uy6QnbXOmwSADHwnpOwyPRJY3elvpIcE/TrgdZ2nwzQtVDxufInj4gVzY3urmw+a3WQAie0skoFo7g9fCxHiUAm+h5ioAh5j/wSYL5PrlTKd/zFp8y2mL3g9b/Q==;5:IGsyEZ03wPzE6+cL0RNT5SUwrEt/1hHx1wb5qnQBPb/PE1tIP+H0KP5U12kX4dlmLsMIycBUppbxdevWgu8geVdEGBcPPzsNN3GiRDSEjNx1VGYEDg88It5CCYs3lS8fTlnviinOfKW8VhivUShG0X6pLzEqIyqGd+8tDbMU0iUShAOcddUZRtpw4Jvogwo1pOsvb7LlKXcNp2/Vhw6R0Q==;7:SpHh1WVn2DROuU8D+TGHwBR2YpIM7tYr57ciaQnvjg+KhxUZ5MytbqSAdNQ0n3PWTRvJXPw9vpWul/h6F0bvlHOTo2NvQbF5e6m65ht8h6zQnoshwJLsBbZUJ1IqDq1LaBfUAEm01Io/ZItZpBIxVw== x-ms-office365-filtering-correlation-id: 4f4bb22e-a618-4926-cc2e-08d67d7aa9e3 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600109)(711020)(4618075)(2017052603328)(7153060)(49563074)(7193020);SRVR:AM5PR0801MB1684; x-ms-traffictypediagnostic: AM5PR0801MB1684: nodisclaimer: True x-microsoft-antispam-prvs: x-forefront-prvs: 0921D55E4F x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(366004)(346002)(136003)(396003)(376002)(39860400002)(53754006)(199004)(189003)(54534003)(25786009)(3846002)(36756003)(106356001)(52116002)(53936002)(476003)(81156014)(81166006)(8676002)(2616005)(99286004)(97736004)(110136005)(450100002)(6116002)(26005)(316002)(486006)(2906002)(8936002)(6436002)(6486002)(186003)(386003)(6506007)(105586002)(102836004)(4326008)(44832011)(5660300001)(66066001)(68736007)(305945005)(86362001)(7736002)(14444005)(256004)(478600001)(14454004)(2501003)(71190400001)(71200400001)(72206003)(99936001)(6512007);DIR:OUT;SFP:1101;SCL:1;SRVR:AM5PR0801MB1684;H:AM5PR0801MB1986.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: Z6At/J0Ndq3rBSqCH6fKDbJEpYVvO3WvHutx4ZbNxiWYTuuNFSnBxBa83Bgbmz6NzMVMErpQqgiUeNBdwO3BqQCmWKniHGl6Z27YRRA1GEP5XcWabRDzWorHP0vGSDWEOBvqjYxwa4nN7fEnfZc/z3GfioiCaLIl2RnI7gtPqNlKthS16ElmRgJuP55SRiiXcIitlyPxdyLXYFUoQCOf+ku3RiB38f4uZvKOQqcYZrmNeUXzFOwqIvIYYkwakiPQsV/XMsjDjNSW4CNl6hG8HuHOVLKpuPaoT86DEjsamW7zNATlnjxYAYcINFpubXST/DDh5RVngevAmvasnQ8agRysTod3Tdab4tyEl0FUNUBmZtZkNXR7wXMbCGF9ASoUM4HxPpoibG/R3YI26X7tnnleuDW2b2krz6N/DKaA310= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: multipart/mixed; boundary="_002_gkra7jxahv0fsfarmcom_" MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4f4bb22e-a618-4926-cc2e-08d67d7aa9e3 X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Jan 2019 19:25:09.9095 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0801MB1684 X-SW-Source: 2019-q1/txt/msg00044.txt.bz2 --_002_gkra7jxahv0fsfarmcom_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-length: 1757 Hi all, this patch add gcc_jit_context_add_driver_option to the libgccjit ABI and a= testcase for it. Using this interface is now possible to pass options affecting assembler an= d linker. Does not introduce any new regression running make check-jit. Bests Andrea gcc/jit/ChangeLog 2019-01-16 Andrea Corallo andrea.corallo@arm.com * docs/topics/compatibility.rst (LIBGCCJIT_ABI_11): New ABI tag. * docs/topics/contexts.rst (Additional driver options): New section. * jit-playback.c (invoke_driver): Add call to append_driver_options. * jit-recording.c: Within namespace gcc::jit... (recording::context::~context): Free the optnames within m_driver_options. (recording::context::add_driver_option): New method. (recording::context::append_driver_options): New method. (recording::context::dump_reproducer_to_file): Add driver options. * jit-recording.h: Within namespace gcc::jit... (recording::context::add_driver_option): New method. (recording::context::append_driver_options): New method. (recording::context::m_driver_options): New field. * libgccjit++.h (gccjit::context::add_driver_option): New method. * libgccjit.c (gcc_jit_context_add_driver_option): New API entrypoint. * libgccjit.h (gcc_jit_context_add_driver_option): New API entrypoint. (LIBGCCJIT_HAVE_gcc_jit_context_add_driver_option): New macro. * libgccjit.map (LIBGCCJIT_ABI_11): New ABI tag. gcc/testsuite/ChangeLog 2019-01-16 Andrea Corallo andrea.corallo@arm.com * jit.dg/add-driver-options-testlib.c: Add support file for test-add-driver-options.c testcase. * jit.dg/all-non-failing-tests.h: Add test-add-driver-options.c * jit.dg/jit.exp (jit-dg-test): Update to support add-driver-options-testlib.c compilation. * jit.dg/test-add-driver-options.c: New testcase. --_002_gkra7jxahv0fsfarmcom_ Content-Type: text/x-diff; name="gcc_jit_context_add_driver_option_no_changelog.patch" Content-Description: gcc_jit_context_add_driver_option_no_changelog.patch Content-Disposition: attachment; filename="gcc_jit_context_add_driver_option_no_changelog.patch"; size=12765; creation-date="Fri, 18 Jan 2019 19:25:11 GMT"; modification-date="Fri, 18 Jan 2019 19:25:11 GMT" Content-ID: <4776F05F67893C40AEF9D547269B52C0@eurprd08.prod.outlook.com> Content-Transfer-Encoding: base64 Content-length: 17304 ZGlmZiAtLWdpdCBhL2djYy9qaXQvZG9jcy90b3BpY3MvY29tcGF0aWJpbGl0 eS5yc3QgYi9nY2Mvaml0L2RvY3MvdG9waWNzL2NvbXBhdGliaWxpdHkucnN0 DQppbmRleCAzOGQzMzhiLi5hYmVmYTU2IDEwMDY0NA0KLS0tIGEvZ2NjL2pp dC9kb2NzL3RvcGljcy9jb21wYXRpYmlsaXR5LnJzdA0KKysrIGIvZ2NjL2pp dC9kb2NzL3RvcGljcy9jb21wYXRpYmlsaXR5LnJzdA0KQEAgLTE2OCw2ICsx NjgsMTIgQEAgZW50cnlwb2ludHM6DQogDQogYGBMSUJHQ0NKSVRfQUJJXzEw YGANCiAtLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLQ0KIGBgTElCR0NDSklUX0FC SV8xMGBgIGNvdmVycyB0aGUgYWRkaXRpb24gb2YNCiA6ZnVuYzpgZ2NjX2pp dF9jb250ZXh0X25ld19ydmFsdWVfZnJvbV92ZWN0b3JgDQorDQorLi4gX0xJ QkdDQ0pJVF9BQklfMTE6DQorDQorYGBMSUJHQ0NKSVRfQUJJXzExYGANCist LS0tLS0tLS0tLS0tLS0tLS0tLQ0KK2BgTElCR0NDSklUX0FCSV8xMWBgIGNv dmVycyB0aGUgYWRkaXRpb24gb2YNCis6ZnVuYzpgZ2NjX2ppdF9jb250ZXh0 X2FkZF9kcml2ZXJfb3B0aW9uYA0KZGlmZiAtLWdpdCBhL2djYy9qaXQvZG9j cy90b3BpY3MvY29udGV4dHMucnN0IGIvZ2NjL2ppdC9kb2NzL3RvcGljcy9j b250ZXh0cy5yc3QNCmluZGV4IDk1OTY0Y2EuLjJmOGFlYjcgMTAwNjQ0DQot LS0gYS9nY2Mvaml0L2RvY3MvdG9waWNzL2NvbnRleHRzLnJzdA0KKysrIGIv Z2NjL2ppdC9kb2NzL3RvcGljcy9jb250ZXh0cy5yc3QNCkBAIC01NDYsMyAr NTQ2LDM2IEBAIEFkZGl0aW9uYWwgY29tbWFuZC1saW5lIG9wdGlvbnMNCiAg ICAuLiBjb2RlLWJsb2NrOjogYw0KIA0KICAgICAgICNpZmRlZiBMSUJHQ0NK SVRfSEFWRV9nY2Nfaml0X2NvbnRleHRfYWRkX2NvbW1hbmRfbGluZV9vcHRp b24NCisNCisuLiBmdW5jdGlvbjo6IHZvaWQgZ2NjX2ppdF9jb250ZXh0X2Fk ZF9kcml2ZXJfb3B0aW9uIChnY2Nfaml0X2NvbnRleHQgKmN0eHQsXA0KKwkJ CQkJCSAgICAgIGNvbnN0IGNoYXIgKm9wdG5hbWUpDQorDQorICAgQWRkIGFu IGFyYml0cmFyeSBnY2MgZHJpdmVyIG9wdGlvbiB0byB0aGUgY29udGV4dCwg Zm9yIHVzZSBieQ0KKyAgIDpmdW5jOmBnY2Nfaml0X2NvbnRleHRfY29tcGls ZWAgYW5kDQorICAgOmZ1bmM6YGdjY19qaXRfY29udGV4dF9jb21waWxlX3Rv X2ZpbGVgLg0KKw0KKyAgIFRoZSBwYXJhbWV0ZXIgYGBvcHRuYW1lYGAgbXVz dCBiZSBub24tTlVMTC4gIFRoZSB1bmRlcmx5aW5nIGJ1ZmZlciBpcw0KKyAg IGNvcGllZCwgc28gdGhhdCBpdCBkb2VzIG5vdCBuZWVkIHRvIG91dGxpdmUg dGhlIGNhbGwuDQorDQorICAgRXh0cmEgb3B0aW9ucyBhZGRlZCBieSBgZ2Nj X2ppdF9jb250ZXh0X2FkZF9kcml2ZXJfb3B0aW9uYCBhcmUNCisgICBhcHBs aWVkICphZnRlciogYWxsIG90aGVyIG9wdGlvbnMgcG90ZW50aWFsbHkgb3Zl cnJpZGluZyB0aGVtLg0KKyAgIE9wdGlvbnMgZnJvbSBwYXJlbnQgY29udGV4 dHMgYXJlIGluaGVyaXRlZCBieSBjaGlsZCBjb250ZXh0czsgb3B0aW9ucw0K KyAgIGZyb20gdGhlIHBhcmVudCBhcmUgYXBwbGllZCAqYmVmb3JlKiB0aG9z ZSBmcm9tIHRoZSBjaGlsZC4NCisNCisgICBGb3IgZXhhbXBsZToNCisNCisg ICAuLiBjb2RlLWJsb2NrOjogYw0KKw0KKyAgICAgIGdjY19qaXRfY29udGV4 dF9hZGRfZHJpdmVyX29wdGlvbiAoY3R4dCwgIi1sbSIpOw0KKyAgICAgIGdj Y19qaXRfY29udGV4dF9hZGRfZHJpdmVyX29wdGlvbiAoY3R4dCwgIi1mdXNl LWxpbmtlci1wbHVnaW4iKTsNCisNCisgICBOb3RlIHRoYXQgb25seSBzb21l IG9wdGlvbnMgYXJlIGxpa2VseSB0byBiZSBtZWFuaW5nZnVsOyB0aGVyZSBp cyBubw0KKyAgICJmcm9udGVuZCIgd2l0aGluIGxpYmdjY2ppdCwgc28gdHlw aWNhbGx5IG9ubHkgdGhvc2UgYWZmZWN0aW5nDQorICAgYXNzZW1ibGVyIGFu ZCBsaW5rZXIgYXJlIGxpa2VseSB0byBiZSB1c2VmdWwuDQorDQorICAgVGhp cyBlbnRyeXBvaW50IHdhcyBhZGRlZCBpbiA6cmVmOmBMSUJHQ0NKSVRfQUJJ XzExYDsgeW91IGNhbiB0ZXN0IGZvcg0KKyAgIGl0cyBwcmVzZW5jZSB1c2lu Zw0KKw0KKyAgIC4uIGNvZGUtYmxvY2s6OiBjDQorDQorICAgICAgI2lmZGVm IExJQkdDQ0pJVF9IQVZFX2djY19qaXRfY29udGV4dF9hZGRfZHJpdmVyX29w dGlvbg0KZGlmZiAtLWdpdCBhL2djYy9qaXQvaml0LXBsYXliYWNrLmMgYi9n Y2Mvaml0L2ppdC1wbGF5YmFjay5jDQppbmRleCA4NmY1ODhkLi5iNzQ0OTVj IDEwMDY0NA0KLS0tIGEvZ2NjL2ppdC9qaXQtcGxheWJhY2suYw0KKysrIGIv Z2NjL2ppdC9qaXQtcGxheWJhY2suYw0KQEAgLTI0NTksNiArMjQ1OSwxMCBA QCBpbnZva2VfZHJpdmVyIChjb25zdCBjaGFyICpjdHh0X3Byb2duYW1lLA0K ICAgaWYgKDApDQogICAgIEFERF9BUkcgKCItdiIpOw0KIA0KKyAgLyogQWRk IGFueSB1c2VyLXByb3ZpZGVkIGRyaXZlciBleHRyYSBvcHRpb25zLiAgKi8N CisNCisgIG1fcmVjb3JkaW5nX2N0eHQtPmFwcGVuZF9kcml2ZXJfb3B0aW9u cyAoJmFyZ3ZlYyk7DQorDQogI3VuZGVmIEFERF9BUkcNCiANCiAgIC8qIHBl eF9vbmUncyBlcnJvci1oYW5kbGluZyByZXF1aXJlcyBwbmFtZSB0byBiZSBu b24tTlVMTC4gICovDQpkaWZmIC0tZ2l0IGEvZ2NjL2ppdC9qaXQtcmVjb3Jk aW5nLmggYi9nY2Mvaml0L2ppdC1yZWNvcmRpbmcuaA0KaW5kZXggYjljNjU0 NC4uYjlmMjI1MCAxMDA2NDQNCi0tLSBhL2djYy9qaXQvaml0LXJlY29yZGlu Zy5oDQorKysgYi9nY2Mvaml0L2ppdC1yZWNvcmRpbmcuaA0KQEAgLTIxOCw2 ICsyMTgsMTIgQEAgcHVibGljOg0KICAgYXBwZW5kX2NvbW1hbmRfbGluZV9v cHRpb25zICh2ZWMgPGNoYXIgKj4gKmFyZ3ZlYyk7DQogDQogICB2b2lkDQor ICBhZGRfZHJpdmVyX29wdGlvbiAoY29uc3QgY2hhciAqb3B0bmFtZSk7DQor DQorICB2b2lkDQorICBhcHBlbmRfZHJpdmVyX29wdGlvbnMgKGF1dG9fc3Ry aW5nX3ZlYyAqYXJndmVjKTsNCisNCisgIHZvaWQNCiAgIGVuYWJsZV9kdW1w IChjb25zdCBjaGFyICpkdW1wbmFtZSwNCiAJICAgICAgIGNoYXIgKipvdXRf cHRyKTsNCiANCkBAIC0zMTcsNiArMzIzLDcgQEAgcHJpdmF0ZToNCiAgIGJv b2wgbV9ib29sX29wdGlvbnNbR0NDX0pJVF9OVU1fQk9PTF9PUFRJT05TXTsN CiAgIGJvb2wgbV9pbm5lcl9ib29sX29wdGlvbnNbTlVNX0lOTkVSX0JPT0xf T1BUSU9OU107DQogICBhdXRvX3ZlYyA8Y2hhciAqPiBtX2NvbW1hbmRfbGlu ZV9vcHRpb25zOw0KKyAgYXV0b192ZWMgPGNoYXIgKj4gbV9kcml2ZXJfb3B0 aW9uczsNCiANCiAgIC8qIER1bXBmaWxlcyB0aGF0IHdlcmUgcmVxdWVzdGVk IHZpYSBnY2Nfaml0X2NvbnRleHRfZW5hYmxlX2R1bXAuICAqLw0KICAgYXV0 b192ZWM8cmVxdWVzdGVkX2R1bXA+IG1fcmVxdWVzdGVkX2R1bXBzOw0KZGlm ZiAtLWdpdCBhL2djYy9qaXQvaml0LXJlY29yZGluZy5jIGIvZ2NjL2ppdC9q aXQtcmVjb3JkaW5nLmMNCmluZGV4IDA0Y2M2YTYuLjhmZmQwZDQgMTAwNjQ0 DQotLS0gYS9nY2Mvaml0L2ppdC1yZWNvcmRpbmcuYw0KKysrIGIvZ2NjL2pp dC9qaXQtcmVjb3JkaW5nLmMNCkBAIC02MTYsNiArNjE2LDggQEAgcmVjb3Jk aW5nOjpjb250ZXh0Ojp+Y29udGV4dCAoKQ0KICAgY2hhciAqb3B0bmFtZTsN CiAgIEZPUl9FQUNIX1ZFQ19FTFQgKG1fY29tbWFuZF9saW5lX29wdGlvbnMs IGksIG9wdG5hbWUpDQogICAgIGZyZWUgKG9wdG5hbWUpOw0KKyAgRk9SX0VB Q0hfVkVDX0VMVCAobV9kcml2ZXJfb3B0aW9ucywgaSwgb3B0bmFtZSkNCisg ICAgZnJlZSAob3B0bmFtZSk7DQogDQogICBpZiAobV9idWlsdGluc19tYW5h Z2VyKQ0KICAgICBkZWxldGUgbV9idWlsdGluc19tYW5hZ2VyOw0KQEAgLTEz MDcsNiArMTMwOSwzMSBAQCByZWNvcmRpbmc6OmNvbnRleHQ6OmFwcGVuZF9j b21tYW5kX2xpbmVfb3B0aW9ucyAodmVjIDxjaGFyICo+ICphcmd2ZWMpDQog ICAgIGFyZ3ZlYy0+c2FmZV9wdXNoICh4c3RyZHVwIChvcHRuYW1lKSk7DQog fQ0KIA0KKy8qIEFkZCB0aGUgZ2l2ZW4gb3B0bmFtZSB0byB0aGlzIGNvbnRl eHQncyBsaXN0IG9mIGV4dHJhIGRyaXZlciBvcHRpb25zLiAgKi8NCisNCit2 b2lkDQorcmVjb3JkaW5nOjpjb250ZXh0OjphZGRfZHJpdmVyX29wdGlvbiAo Y29uc3QgY2hhciAqb3B0bmFtZSkNCit7DQorICBtX2RyaXZlcl9vcHRpb25z LnNhZmVfcHVzaCAoeHN0cmR1cCAob3B0bmFtZSkpOw0KK30NCisNCisvKiBB ZGQgYW55IHVzZXItcHJvdmlkZWQgZHJpdmVyIG9wdGlvbnMsIHN0YXJ0aW5n IHdpdGggYW55IGZyb20NCisgICBwYXJlbnQgY29udGV4dHMuDQorICAgQ2Fs bGVkIGJ5IHBsYXliYWNrOjpjb250ZXh0OjppbnZva2VfZHJpdmVyLiAgKi8N CisNCit2b2lkDQorcmVjb3JkaW5nOjpjb250ZXh0OjphcHBlbmRfZHJpdmVy X29wdGlvbnMgKGF1dG9fc3RyaW5nX3ZlYyAqYXJndmVjKQ0KK3sNCisgIGlm IChtX3BhcmVudF9jdHh0KQ0KKyAgICBtX3BhcmVudF9jdHh0LT5hcHBlbmRf ZHJpdmVyX29wdGlvbnMgKGFyZ3ZlYyk7DQorDQorICBpbnQgaTsNCisgIGNo YXIgKm9wdG5hbWU7DQorDQorICBGT1JfRUFDSF9WRUNfRUxUIChtX2RyaXZl cl9vcHRpb25zLCBpLCBvcHRuYW1lKQ0KKyAgICBhcmd2ZWMtPnNhZmVfcHVz aCAoeHN0cmR1cCAob3B0bmFtZSkpOw0KK30NCisNCiAvKiBBZGQgdGhlIGdp dmVuIGR1bXBuYW1lL291dF9wdHIgcGFpciB0byB0aGlzIGNvbnRleHQncyBs aXN0IG9mIHJlcXVlc3RlZA0KICAgIGR1bXBzLg0KIA0KQEAgLTE3OTksNiAr MTgyNiwxNyBAQCByZWNvcmRpbmc6OmNvbnRleHQ6OmR1bXBfcmVwcm9kdWNl cl90b19maWxlIChjb25zdCBjaGFyICpwYXRoKQ0KIAkJICAgICBvcHRuYW1l KTsNCiAJfQ0KIA0KKyAgICAgIGlmICghbV9kcml2ZXJfb3B0aW9ucy5pc19l bXB0eSAoKSkNCisJew0KKwkgIGludCBpOw0KKwkgIGNoYXIgKm9wdG5hbWU7 DQorCSAgci53cml0ZSAoIiAgLyogVXNlci1wcm92aWRlZCBkcml2ZXIgb3B0 aW9ucy4gICovXG4iKTsNCisJICBGT1JfRUFDSF9WRUNfRUxUIChtX2RyaXZl cl9vcHRpb25zLCBpLCBvcHRuYW1lKQ0KKwkgICAgci53cml0ZSAoIiAgZ2Nj X2ppdF9jb250ZXh0X2FkZF9kcml2ZXJfb3B0aW9uICglcywgXCIlc1wiKTtc biIsDQorCQkgICAgIHIuZ2V0X2lkZW50aWZpZXIgKGNvbnRleHRzW2N0eHRf aWR4XSksDQorCQkgICAgIG9wdG5hbWUpOw0KKwl9DQorDQogICAgICAgaWYg KG1fcmVxdWVzdGVkX2R1bXBzLmxlbmd0aCAoKSkNCiAJew0KIAkgIHIud3Jp dGUgKCIgIC8qIFJlcXVlc3RlZCBkdW1wcy4gICovXG4iKTsNCmRpZmYgLS1n aXQgYS9nY2Mvaml0L2xpYmdjY2ppdCsrLmggYi9nY2Mvaml0L2xpYmdjY2pp dCsrLmgNCmluZGV4IDVjMmJkMmQuLjU1YWViY2EgMTAwNjQ0DQotLS0gYS9n Y2Mvaml0L2xpYmdjY2ppdCsrLmgNCisrKyBiL2djYy9qaXQvbGliZ2Njaml0 KysuaA0KQEAgLTEyNyw2ICsxMjcsNyBAQCBuYW1lc3BhY2UgZ2Njaml0DQog ICAgIHZvaWQgc2V0X2Jvb2xfdXNlX2V4dGVybmFsX2RyaXZlciAoaW50IGJv b2xfdmFsdWUpOw0KIA0KICAgICB2b2lkIGFkZF9jb21tYW5kX2xpbmVfb3B0 aW9uIChjb25zdCBjaGFyICpvcHRuYW1lKTsNCisgICAgdm9pZCBhZGRfZHJp dmVyX29wdGlvbiAoY29uc3QgY2hhciAqb3B0bmFtZSk7DQogDQogICAgIHZv aWQgc2V0X3RpbWVyIChnY2NqaXQ6OnRpbWVyIHQpOw0KICAgICBnY2NqaXQ6 OnRpbWVyIGdldF90aW1lciAoKSBjb25zdDsNCkBAIC02ODcsNiArNjg4LDEy IEBAIGNvbnRleHQ6OmFkZF9jb21tYW5kX2xpbmVfb3B0aW9uIChjb25zdCBj aGFyICpvcHRuYW1lKQ0KIH0NCiANCiBpbmxpbmUgdm9pZA0KK2NvbnRleHQ6 OmFkZF9kcml2ZXJfb3B0aW9uIChjb25zdCBjaGFyICpvcHRuYW1lKQ0KK3sN CisgIGdjY19qaXRfY29udGV4dF9hZGRfZHJpdmVyX29wdGlvbiAobV9pbm5l cl9jdHh0LCBvcHRuYW1lKTsNCit9DQorDQoraW5saW5lIHZvaWQNCiBjb250 ZXh0OjpzZXRfdGltZXIgKGdjY2ppdDo6dGltZXIgdCkNCiB7DQogICBnY2Nf aml0X2NvbnRleHRfc2V0X3RpbWVyIChtX2lubmVyX2N0eHQsIHQuZ2V0X2lu bmVyX3RpbWVyICgpKTsNCmRpZmYgLS1naXQgYS9nY2Mvaml0L2xpYmdjY2pp dC5oIGIvZ2NjL2ppdC9saWJnY2NqaXQuaA0KaW5kZXggZTg3MmFlNy4uYmVl Yjc0NyAxMDA2NDQNCi0tLSBhL2djYy9qaXQvbGliZ2Njaml0LmgNCisrKyBi L2djYy9qaXQvbGliZ2Njaml0LmgNCkBAIC0zMjUsNiArMzI1LDI4IEBAIGdj Y19qaXRfY29udGV4dF9hZGRfY29tbWFuZF9saW5lX29wdGlvbiAoZ2NjX2pp dF9jb250ZXh0ICpjdHh0LA0KIA0KICNkZWZpbmUgTElCR0NDSklUX0hBVkVf Z2NjX2ppdF9jb250ZXh0X2FkZF9jb21tYW5kX2xpbmVfb3B0aW9uDQogDQor LyogQWRkIGFuIGFyYml0cmFyeSBnY2MgZHJpdmVyIG9wdGlvbiB0byB0aGUg Y29udGV4dC4NCisgICBUaGUgY29udGV4dCB0YWtlcyBhIGNvcHkgb2YgdGhl IHN0cmluZywgc28gdGhlDQorICAgKGNvbnN0IGNoYXIgKikgb3B0bmFtZSBp cyBub3QgbmVlZGVkIGFueW1vcmUgYWZ0ZXIgdGhlIGNhbGwNCisgICByZXR1 cm5zLg0KKw0KKyAgIE5vdGUgdGhhdCBvbmx5IHNvbWUgb3B0aW9ucyBhcmUg bGlrZWx5IHRvIGJlIG1lYW5pbmdmdWw7IHRoZXJlIGlzIG5vDQorICAgImZy b250ZW5kIiB3aXRoaW4gbGliZ2Njaml0LCBzbyB0eXBpY2FsbHkgb25seSB0 aG9zZSBhZmZlY3RpbmcNCisgICBhc3NlbWJsZXIgYW5kIGxpbmtlciBhcmUg bGlrZWx5IHRvIGJlIHVzZWZ1bC4NCisNCisgICBUaGlzIGVudHJ5cG9pbnQg d2FzIGFkZGVkIGluIExJQkdDQ0pJVF9BQklfMTE7IHlvdSBjYW4gdGVzdCBm b3INCisgICBpdHMgcHJlc2VuY2UgdXNpbmcNCisgICAjaWZkZWYgTElCR0ND SklUX0hBVkVfZ2NjX2ppdF9jb250ZXh0X2FkZF9kcml2ZXJfb3B0aW9uDQor Ki8NCitleHRlcm4gdm9pZA0KK2djY19qaXRfY29udGV4dF9hZGRfZHJpdmVy X29wdGlvbiAoZ2NjX2ppdF9jb250ZXh0ICpjdHh0LA0KKwkJCQkgICBjb25z dCBjaGFyICpvcHRuYW1lKTsNCisNCisvKiBQcmUtY2FubmVkIGZlYXR1cmUt dGVzdCBtYWNybyBmb3IgZGV0ZWN0aW5nIHRoZSBwcmVzZW5jZSBvZg0KKyAg IGdjY19qaXRfY29udGV4dF9hZGRfZHJpdmVyX29wdGlvbiB3aXRoaW4gbGli Z2Njaml0LmguICAqLw0KKw0KKyNkZWZpbmUgTElCR0NDSklUX0hBVkVfZ2Nj X2ppdF9jb250ZXh0X2FkZF9kcml2ZXJfb3B0aW9uDQorDQogLyogQ29tcGls ZSB0aGUgY29udGV4dCB0byBpbi1tZW1vcnkgbWFjaGluZSBjb2RlLg0KIA0K ICAgIFRoaXMgY2FuIGJlIGNhbGxlZCBtb3JlIHRoYXQgb25jZSBvbiBhIGdp dmVuIGNvbnRleHQsDQpkaWZmIC0tZ2l0IGEvZ2NjL2ppdC9saWJnY2NqaXQu YyBiL2djYy9qaXQvbGliZ2Njaml0LmMNCmluZGV4IGRlN2ZiMjUuLmU0ZjE3 ZjggMTAwNjQ0DQotLS0gYS9nY2Mvaml0L2xpYmdjY2ppdC5jDQorKysgYi9n Y2Mvaml0L2xpYmdjY2ppdC5jDQpAQCAtMjY0NCw2ICsyNjQ0LDI1IEBAIGdj Y19qaXRfY29udGV4dF9hZGRfY29tbWFuZF9saW5lX29wdGlvbiAoZ2NjX2pp dF9jb250ZXh0ICpjdHh0LA0KIA0KIC8qIFB1YmxpYyBlbnRyeXBvaW50LiAg U2VlIGRlc2NyaXB0aW9uIGluIGxpYmdjY2ppdC5oLg0KIA0KKyAgIFRoZSBy ZWFsIHdvcmsgaXMgZG9uZSBieSB0aGUNCisgICBnY2M6OmppdDo6cmVjb3Jk aW5nOjpjb250ZXh0OjphZGRfZHJpdmVyX29wdGlvbiBtZXRob2QgaW4NCisg ICBqaXQtcmVjb3JkaW5nLmMuICAqLw0KKw0KK3ZvaWQNCitnY2Nfaml0X2Nv bnRleHRfYWRkX2RyaXZlcl9vcHRpb24gKGdjY19qaXRfY29udGV4dCAqY3R4 dCwNCisJCQkJICAgY29uc3QgY2hhciAqb3B0bmFtZSkNCit7DQorICBSRVRV Uk5fSUZfRkFJTCAoY3R4dCwgTlVMTCwgTlVMTCwgIk5VTEwgY29udGV4dCIp Ow0KKyAgSklUX0xPR19GVU5DIChjdHh0LT5nZXRfbG9nZ2VyICgpKTsNCisg IFJFVFVSTl9JRl9GQUlMIChvcHRuYW1lLCBjdHh0LCBOVUxMLCAiTlVMTCBv cHRuYW1lIik7DQorICBpZiAoY3R4dC0+Z2V0X2xvZ2dlciAoKSkNCisgICAg Y3R4dC0+Z2V0X2xvZ2dlciAoKS0+bG9nICgib3B0bmFtZTogJXMiLCBvcHRu YW1lKTsNCisNCisgIGN0eHQtPmFkZF9kcml2ZXJfb3B0aW9uIChvcHRuYW1l KTsNCit9DQorDQorLyogUHVibGljIGVudHJ5cG9pbnQuICBTZWUgZGVzY3Jp cHRpb24gaW4gbGliZ2Njaml0LmguDQorDQogICAgQWZ0ZXIgZXJyb3ItY2hl Y2tpbmcsIHRoZSByZWFsIHdvcmsgaXMgZG9uZSBieSB0aGUNCiAgICBnY2M6 OmppdDo6cmVjb3JkaW5nOjpjb250ZXh0OjplbmFibGVfZHVtcCBtZXRob2Qg aW4NCiAgICBqaXQtcmVjb3JkaW5nLmMuICAqLw0KZGlmZiAtLWdpdCBhL2dj Yy9qaXQvbGliZ2Njaml0Lm1hcCBiL2djYy9qaXQvbGliZ2Njaml0Lm1hcA0K aW5kZXggMjgyNmYxYy4uMTZmNTI1MyAxMDA2NDQNCi0tLSBhL2djYy9qaXQv bGliZ2Njaml0Lm1hcA0KKysrIGIvZ2NjL2ppdC9saWJnY2NqaXQubWFwDQpA QCAtMTcwLDMgKzE3MCw4IEBAIExJQkdDQ0pJVF9BQklfMTAgew0KICAgZ2xv YmFsOg0KICAgICBnY2Nfaml0X2NvbnRleHRfbmV3X3J2YWx1ZV9mcm9tX3Zl Y3RvcjsNCiB9IExJQkdDQ0pJVF9BQklfOTsNCisNCitMSUJHQ0NKSVRfQUJJ XzExIHsNCisgIGdsb2JhbDoNCisgICAgZ2NjX2ppdF9jb250ZXh0X2FkZF9k cml2ZXJfb3B0aW9uOw0KK30gTElCR0NDSklUX0FCSV8xMDsNClwgTm8gbmV3 bGluZSBhdCBlbmQgb2YgZmlsZQ0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3Vp dGUvaml0LmRnL2FkZC1kcml2ZXItb3B0aW9ucy10ZXN0bGliLmMgYi9nY2Mv dGVzdHN1aXRlL2ppdC5kZy9hZGQtZHJpdmVyLW9wdGlvbnMtdGVzdGxpYi5j DQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMC4uMTc1N2Ji MQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9qaXQuZGcv YWRkLWRyaXZlci1vcHRpb25zLXRlc3RsaWIuYw0KQEAgLTAsMCArMSw2IEBA DQorLyogVXNlZCBieSB0ZXN0LWFkZC1kcml2ZXItb3B0aW9ucy5jICovDQor DQorZXh0ZXJuIGludCBjYWxsZWVfZnVuY3Rpb24gKHZvaWQpDQorew0KKyAg cmV0dXJuIDE5Nzg7DQorfQ0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUv aml0LmRnL2FsbC1ub24tZmFpbGluZy10ZXN0cy5oIGIvZ2NjL3Rlc3RzdWl0 ZS9qaXQuZGcvYWxsLW5vbi1mYWlsaW5nLXRlc3RzLmgNCmluZGV4IGJmMDJl MTIuLjlmODE2YjQgMTAwNjQ0DQotLS0gYS9nY2MvdGVzdHN1aXRlL2ppdC5k Zy9hbGwtbm9uLWZhaWxpbmctdGVzdHMuaA0KKysrIGIvZ2NjL3Rlc3RzdWl0 ZS9qaXQuZGcvYWxsLW5vbi1mYWlsaW5nLXRlc3RzLmgNCkBAIC0yNTEsNiAr MjUxLDEzIEBADQogI3VuZGVmIGNyZWF0ZV9jb2RlDQogI3VuZGVmIHZlcmlm eV9jb2RlDQogDQorLyogdGVzdC1hZGQtZHJpdmVyLW9wdGlvbnMuYyAqLw0K KyNkZWZpbmUgY3JlYXRlX2NvZGUgY3JlYXRlX2NvZGVfYWRkX2RyaXZlcl9v cHRpb25zDQorI2RlZmluZSB2ZXJpZnlfY29kZSB2ZXJpZnlfY29kZV9hZGRf ZHJpdmVyX29wdGlvbnMNCisjaW5jbHVkZSAidGVzdC1hZGQtZHJpdmVyLW9w dGlvbnMuYyINCisjdW5kZWYgY3JlYXRlX2NvZGUNCisjdW5kZWYgdmVyaWZ5 X2NvZGUNCisNCiAvKiBOb3cgZXhwb3NlIHRoZSBpbmRpdmlkdWFsIHRlc3Rj YXNlcyBhcyBpbnN0YW5jZXMgb2YgdGhpcyBzdHJ1Y3QuICAqLw0KIA0KIHN0 cnVjdCB0ZXN0Y2FzZQ0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvaml0 LmRnL2ppdC5leHAgYi9nY2MvdGVzdHN1aXRlL2ppdC5kZy9qaXQuZXhwDQpp bmRleCA4NjlkOWY2Li4xM2U4YWI0IDEwMDY0NA0KLS0tIGEvZ2NjL3Rlc3Rz dWl0ZS9qaXQuZGcvaml0LmV4cA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9qaXQu ZGcvaml0LmV4cA0KQEAgLTM3OSw2ICszNzksMTkgQEAgcHJvYyBqaXQtZGct dGVzdCB7IHByb2cgZG9fd2hhdCBleHRyYV90b29sX2ZsYWdzIH0gew0KIAlh cHBlbmQgZXh0cmFfdG9vbF9mbGFncyAiIC1scHRocmVhZCINCiAgICAgfQ0K IA0KKyAgICAjIHRlc3QtYWRkLWRyaXZlci1vcHRpb25zLmMgbmVlZHMgYSBz aGFyZWQgbGlicmFyeSBidWlsdCBmcm9tDQorICAgICMgYWRkLWRyaXZlci1v cHRpb25zLXRlc3RsaWIuYw0KKyAgICBpZiB7W3N0cmluZyBtYXRjaCAiKnRl c3QtYWRkLWRyaXZlci1vcHRpb25zLmMiICRwcm9nXX0gew0KKwlnbG9iYWwg c3JjZGlyDQorCWdsb2JhbCBzdWJkaXINCisNCisJc2V0IGNvbXBfb3V0cHV0 IFtnY2NfdGFyZ2V0X2NvbXBpbGUgXA0KKwkJCSAgICAgJHNyY2Rpci8kc3Vi ZGlyL2FkZC1kcml2ZXItb3B0aW9ucy10ZXN0bGliLmMgXA0KKwkJCSAgICAg ImxpYmFkZC1kcml2ZXItb3B0aW9ucy10ZXN0bGliLnNvIiBcDQorCQkJICAg ICAiZXhlY3V0YWJsZSIgXA0KKwkJCSAgICAgImFkZGl0aW9uYWxfZmxhZ3M9 LWZQSUMgYWRkaXRpb25hbF9mbGFncz0tc2hhcmVkIl0NCisgICAgfQ0KKw0K ICAgICAjIEFueSB0ZXN0IGNhc2UgdGhhdCB1c2VzIGppdC12ZXJpZnktb3V0 cHV0LWZpbGUtd2FzLWNyZWF0ZWQNCiAgICAgIyBuZWVkcyB0byBjYWxsIGpp dC1zZXR1cC1jb21waWxlLXRvLWZpbGUgaGVyZS4NCiAgICAgIyAoaXMgdGhl cmUgYSBiZXR0ZXIgd2F5IHRvIGhhbmRsZSBzZXR1cC9maW5pc2ggcGFpcnMg aW4gZGc/KQ0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvaml0LmRnL3Rl c3QtYWRkLWRyaXZlci1vcHRpb25zLmMgYi9nY2MvdGVzdHN1aXRlL2ppdC5k Zy90ZXN0LWFkZC1kcml2ZXItb3B0aW9ucy5jDQpuZXcgZmlsZSBtb2RlIDEw MDY0NA0KaW5kZXggMDAwMDAwMC4uNzRhYzE2OA0KLS0tIC9kZXYvbnVsbA0K KysrIGIvZ2NjL3Rlc3RzdWl0ZS9qaXQuZGcvdGVzdC1hZGQtZHJpdmVyLW9w dGlvbnMuYw0KQEAgLTAsMCArMSw2OCBAQA0KKyNpbmNsdWRlIDxzdGRpby5o Pg0KKyNpbmNsdWRlIDxzdGRsaWIuaD4NCisNCisjaW5jbHVkZSAibGliZ2Nj aml0LmgiDQorI2luY2x1ZGUgImhhcm5lc3MuaCINCisNCisjaWZuZGVmIExJ QkdDQ0pJVF9IQVZFX2djY19qaXRfY29udGV4dF9hZGRfZHJpdmVyX29wdGlv bg0KKyNlcnJvciBMSUJHQ0NKSVRfSEFWRV9nY2Nfaml0X2NvbnRleHRfYWRk X2RyaXZlcl9vcHRpb24gd2FzIG5vdCBkZWZpbmVkDQorI2VuZGlmDQorDQor dm9pZA0KK2NyZWF0ZV9jb2RlIChnY2Nfaml0X2NvbnRleHQgKmN0eHQsIHZv aWQgKnVzZXJfZGF0YSkNCit7DQorDQorICBnY2Nfaml0X2NvbnRleHRfYWRk X2RyaXZlcl9vcHRpb24gKGN0eHQsICItTC4vIik7DQorICBnY2Nfaml0X2Nv bnRleHRfYWRkX2RyaXZlcl9vcHRpb24gKGN0eHQsICItbGFkZC1kcml2ZXIt b3B0aW9ucy10ZXN0bGliIik7DQorDQorICAvKiBMZXQncyB0cnkgdG8gaW5q ZWN0IHRoZSBlcXVpdmFsZW50IG9mOg0KKw0KKyAgICAgIGludCBjYWxsZXJf ZnVuY3Rpb24gKHZvaWQpDQorICAgICAgew0KKyAgICAgICAgcmV0dXJuIGNh bGxlZV9mdW5jdGlvbiAoKTsNCisgICAgICB9DQorICAqLw0KKyAgZ2NjX2pp dF90eXBlICppbnRfdHlwZSA9DQorICAgIGdjY19qaXRfY29udGV4dF9nZXRf dHlwZSAoY3R4dCwgR0NDX0pJVF9UWVBFX0lOVCk7DQorDQorICBnY2Nfaml0 X2Z1bmN0aW9uICpjYWxsZXJfZnVuYyA9DQorICAgIGdjY19qaXRfY29udGV4 dF9uZXdfZnVuY3Rpb24gKGN0eHQsIE5VTEwsDQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEdDQ19KSVRfRlVOQ1RJT05fRVhQT1JURUQs DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludF90eXBl LA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY2FsbGVy X2Z1bmN0aW9uIiwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMCwgTlVMTCwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMCk7DQorDQorICBnY2Nfaml0X2Jsb2NrICpibG9jayA9DQorICAgIGdj Y19qaXRfZnVuY3Rpb25fbmV3X2Jsb2NrIChjYWxsZXJfZnVuYywgTlVMTCk7 DQorDQorICBnY2Nfaml0X2Z1bmN0aW9uICpjYWxsZWVfZnVuYyA9DQorICAg IGdjY19qaXRfY29udGV4dF9uZXdfZnVuY3Rpb24oY3R4dCwgTlVMTCwNCisJ CQkJIEdDQ19KSVRfRlVOQ1RJT05fSU1QT1JURUQsDQorCQkJCSBpbnRfdHlw ZSwNCisJCQkJICJjYWxsZWVfZnVuY3Rpb24iLA0KKwkJCQkgMCwgTlVMTCwN CisJCQkJIDEpOw0KKw0KKyAgZ2NjX2ppdF9ibG9ja19lbmRfd2l0aF9yZXR1 cm4gKGJsb2NrLCBOVUxMLA0KKwkJCQkgZ2NjX2ppdF9jb250ZXh0X25ld19j YWxsKGN0eHQsDQorCQkJCQkJCSAgTlVMTCwNCisJCQkJCQkJICBjYWxsZWVf ZnVuYywNCisJCQkJCQkJICAwLA0KKwkJCQkJCQkgIDApKTsNCit9DQorDQor dm9pZA0KK3ZlcmlmeV9jb2RlIChnY2Nfaml0X2NvbnRleHQgKmN0eHQsIGdj Y19qaXRfcmVzdWx0ICpyZXN1bHQpDQorew0KKyAgdHlwZWRlZiBpbnQgKCpt eV9jYWxsZXJfZm5fdHlwZSkgKHZvaWQpOw0KKw0KKyAgQ0hFQ0tfTk9OX05V TEwgKHJlc3VsdCk7DQorICBteV9jYWxsZXJfZm5fdHlwZSBjYWxsZWVfZnVu Y3Rpb25fcHRyID0NCisgICAgKG15X2NhbGxlcl9mbl90eXBlKWdjY19qaXRf cmVzdWx0X2dldF9jb2RlIChyZXN1bHQsICJjYWxsZWVfZnVuY3Rpb24iKTsN CisgIENIRUNLX05PTl9OVUxMIChjYWxsZWVfZnVuY3Rpb25fcHRyKTsNCisN CisgIGludCByZXMgPSBjYWxsZWVfZnVuY3Rpb25fcHRyICgpOw0KKw0KKyAg Q0hFQ0tfVkFMVUUgKHJlcywgMTk3OCk7DQorfQ0K --_002_gkra7jxahv0fsfarmcom_--