From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 104192 invoked by alias); 10 Jan 2020 18:47:58 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 104184 invoked by uid 89); 10 Jan 2020 18:47:58 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-24.4 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS,UNPARSEABLE_RELAY autolearn=ham version=3.3.1 spammy= X-HELO: EUR01-DB5-obe.outbound.protection.outlook.com Received: from mail-eopbgr150050.outbound.protection.outlook.com (HELO EUR01-DB5-obe.outbound.protection.outlook.com) (40.107.15.50) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 10 Jan 2020 18:47:51 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=pxdjumrR2WeL/bg6eT9xXnBE9AuMPIucpsnMHvPwPMY=; b=gBsNWTCjklfpmXHlOv5HpBZVoKEdWzrjB1AGBgreAMRMvxz9W2uJ+og/GFfkRc74yTQncdXHRtGuZwwdxYOTQNFo9QErl4VThXrjr8NMn/W1BTy6UfF+2c2oeLsHNMMCTLfSvj1BioAyu2UBunCKsUBAgbPM2BlPjY11eC1kejo= Received: from VI1PR08CA0088.eurprd08.prod.outlook.com (2603:10a6:800:d3::14) by AM4PR08MB2932.eurprd08.prod.outlook.com (2603:10a6:205:e::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2623.10; Fri, 10 Jan 2020 18:47:47 +0000 Received: from AM5EUR03FT050.eop-EUR03.prod.protection.outlook.com (2a01:111:f400:7e08::208) by VI1PR08CA0088.outlook.office365.com (2603:10a6:800:d3::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2623.9 via Frontend Transport; Fri, 10 Jan 2020 18:47:47 +0000 Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; gcc.gnu.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;gcc.gnu.org; dmarc=bestguesspass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM5EUR03FT050.mail.protection.outlook.com (10.152.17.47) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2602.11 via Frontend Transport; Fri, 10 Jan 2020 18:47:47 +0000 Received: ("Tessian outbound 0eaff1016ea4:v40"); Fri, 10 Jan 2020 18:47:44 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 8e4326ea53252533 X-CR-MTA-TID: 64aa7808 Received: from c310bb8c62ab.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id F759E01A-8873-468F-A132-259E96A7F45A.1; Fri, 10 Jan 2020 18:47:39 +0000 Received: from EUR01-HE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id c310bb8c62ab.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Fri, 10 Jan 2020 18:47:39 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=e66V1cwrLEwdvWTkv2blQx5LTl3vx+IlpkNx25pcCdRek60iwd6jSNRso55rNSnv56EAADlDvao4QpYm6Wv6sS2OtJntOZ5JmMnBj3MVIhr0AsqjDZ4PK3Olq++WqNqtXb3b+KQry6OLiQt4WajAlkS5Mfx/+KyYc0jJZFH8cEUvWrfCOT+To/riuypZpMI/eBtPmzaPB9ECARSBW6+TIuJBuNjAX3bYG+0YbxwXagxodEw+Ul9cVLCvH9UgG8vVg1VlWr1/dYgjZdlhFgt8y8LSoIHRC5mMNRYEwr9uR+1HXRS1/RXV5z+mBzFPX4zNZMwi9lbzZLnhPqN+vrWloQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=pxdjumrR2WeL/bg6eT9xXnBE9AuMPIucpsnMHvPwPMY=; b=mJamvaakS6+TFcgQJbCAOQ3hMB9JnVdDUIiJh/xaEagYHNVEY7SiTR8gr6MljYvwtsRkkwb7kcfUF2678Mxc8RBTlg9crKCV0EgRO/asWHQDco9+YOTqBxyIlcK7I2/ncxNzjL/KHMBGmQrQ3xQ966hrzA9s4IQpzJpn2VY9Tw5VGZoIGBA0dstKkELsenP/b70UrwMcntR/8lCY7znkEDw9wdjUomk9WMNvyr4qzoa4S5E873d2VzxFnMtjDnKNk104uYm046IVmV/urT3zfJtetJDnCP/VpBGe+zLrWKU+toNe8RmGQGMM80g+2hZDuli3zMNhJ3slBwQDXM2D0A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=pxdjumrR2WeL/bg6eT9xXnBE9AuMPIucpsnMHvPwPMY=; b=gBsNWTCjklfpmXHlOv5HpBZVoKEdWzrjB1AGBgreAMRMvxz9W2uJ+og/GFfkRc74yTQncdXHRtGuZwwdxYOTQNFo9QErl4VThXrjr8NMn/W1BTy6UfF+2c2oeLsHNMMCTLfSvj1BioAyu2UBunCKsUBAgbPM2BlPjY11eC1kejo= Received: from VI1PR08MB3998.eurprd08.prod.outlook.com (20.178.127.91) by VI1PR08MB3118.eurprd08.prod.outlook.com (52.133.15.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2623.13; Fri, 10 Jan 2020 18:47:36 +0000 Received: from VI1PR08MB3998.eurprd08.prod.outlook.com ([fe80::b595:7ac:9b78:5ecc]) by VI1PR08MB3998.eurprd08.prod.outlook.com ([fe80::b595:7ac:9b78:5ecc%5]) with mapi id 15.20.2623.013; Fri, 10 Jan 2020 18:47:36 +0000 Received: from [10.2.78.30] (217.140.106.53) by LO2P265CA0155.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:9::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2623.9 via Frontend Transport; Fri, 10 Jan 2020 18:47:36 +0000 From: Stam Markianos-Wright To: "gcc-patches@gcc.gnu.org" CC: Richard Earnshaw , Richard Sandiford , Ramana Radhakrishnan , Kyrylo Tkachov , "nickc@redhat.com" Subject: [GCC][PATCH][ARM] Add Bfloat16_t scalar type, vector types and machine modes to ARM back-end [2/2] Date: Fri, 10 Jan 2020 18:48:00 -0000 Message-ID: Authentication-Results-Original: spf=none (sender IP is ) smtp.mailfrom=Stam.Markianos-Wright@arm.com; x-ms-exchange-transport-forked: True x-checkrecipientrouted: true x-ms-oob-tlc-oobclassifiers: OLM:7691;OLM:7691; X-Forefront-Antispam-Report-Untrusted: SFV:NSPM;SFS:(10009020)(4636009)(396003)(39860400002)(346002)(376002)(366004)(136003)(189003)(199004)(31696002)(4326008)(966005)(81166006)(8936002)(6486002)(54906003)(52116002)(36756003)(71200400001)(186003)(478600001)(86362001)(16526019)(2906002)(5660300002)(6916009)(16576012)(8676002)(316002)(2616005)(66476007)(66556008)(66946007)(64756008)(66616009)(66446008)(81156014)(31686004)(26005)(956004);DIR:OUT;SFP:1101;SCL:1;SRVR:VI1PR08MB3118;H:VI1PR08MB3998.eurprd08.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: qvYanXvqPQxWuXJORlEqTn3jZ7xcTvB9jSbbcm1ADGWNiVb2GSBYMNcS0TjqyPAJNNGM0glAZyN47daSA6437ZOCmS4V4o4zJZU1ReRxbidHk0v4aGsTNIehxdjKwvyIaPRssR2rGGm/e8MUILDJLDKj5ZriwTOBhyyxky2/B5bod9Kw3X99NqdcMX7yh6A9KoCuYcGRK0pEfO3zWCDF2hBt3QvG5qYO69DfUdxGaAQMV/wiOG0vsOpb24ZAtDFhu3gGUsilkLwsiW83tmjybnEFDKNiNfzHD6rLgx3iCCGZvovzV/nnS/bpzqpro03vfEQEhilCGiaz8i7l9XzDlr3P0N1dNBEpzGWG6UBSbAsLfFuo6z2Ipn3ogXqkmVZUTUsv2DAIn5nQbJTsmwYS9yZKtYj4Xq5L1Ru6/3gzaROYAQqLUj76k8J+m++EUgx5BcR4nxzJpOfZwu+sQy5dkcEtT7F1fl/mMotFduETPkY= Content-Type: multipart/mixed; boundary="_002_fa4c76022735fb2fa017df9b1a38cc22armcom_" MIME-Version: 1.0 Original-Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Stam.Markianos-Wright@arm.com; Return-Path: Stam.Markianos-Wright@arm.com X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT050.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 85496c41-acc4-4dcd-8f61-08d795fd8f8f X-IsSubscribed: yes X-SW-Source: 2020-01/txt/msg00631.txt.bz2 --_002_fa4c76022735fb2fa017df9b1a38cc22armcom_ Content-Type: text/plain; charset="utf-8" Content-ID: <1F8DE1E42E2E984AB955D9EC8B90200F@eurprd08.prod.outlook.com> Content-Transfer-Encoding: base64 Content-length: 1700 SGkgYWxsLA0KDQpUaGlzIHBhdGNoIGlzIHBhcnQgMiBvZiBCZmxvYXQxNl90 IGVuYWJsZW1lbnQgaW4gdGhlIEFSTSBiYWNrLWVuZC4NCg0KVGhpcyBuZXcg dHlwZSBpcyBjb25zdHJhaW5lZCB1c2luZyB0YXJnZXQgaG9va3MgVEFSR0VU X0lOVkFMSURfQ09OVkVSU0lPTiwNClRBUkdFVF9JTlZBTElEX1VOQVJZX09Q LCBUQVJHRVRfSU5WQUxJRF9CSU5BUllfT1Agc28gdGhhdCBpdCBtYXkgb25s eSBiZSB1c2VkDQp0aHJvdWdoIEFDTEUgaW50cmluc2ljcyAod2lsbCBiZSBw cm92aWRlZCBpbiBsYXRlciBwYXRjaGVzKS4NCg0KUmVncmVzc2lvbiB0ZXN0 aW5nIG9uIGFybS1ub25lLWVhYmkgcGFzc2VkIHN1Y2Nlc3NmdWxseS4NCg0K T2sgZm9yIHRydW5rPw0KDQpDaGVlcnMsDQpTdGFtDQoNCg0KQUNMRSBkb2N1 bWVudHMgYXJlIGF0IGh0dHBzOi8vZGV2ZWxvcGVyLmFybS5jb20vZG9jcy8x MDEwMjgvbGF0ZXN0DQpJU0EgZG9jdW1lbnRzIGFyZSBhdCBodHRwczovL2Rl dmVsb3Blci5hcm0uY29tL2RvY3MvZGRpMDU5Ni9sYXRlc3QNCg0KRGV0YWls cyBvbiBBUk0gQmZsb2F0IGNhbiBiZSBmb3VuZCBoZXJlOg0KaHR0cHM6Ly9j b21tdW5pdHkuYXJtLmNvbS9kZXZlbG9wZXIvaXAtcHJvZHVjdHMvcHJvY2Vz c29ycy9iL21sLWlwLWJsb2cvcG9zdHMvYmZsb2F0MTYtcHJvY2Vzc2luZy1m b3ItbmV1cmFsLW5ldHdvcmtzLW9uLWFybXY4XzJkMDBfYSANCg0KDQoNCmdj Yy9DaGFuZ2VMb2c6DQoNCjIwMjAtMDEtMTAgIFN0YW0gTWFya2lhbm9zLVdy aWdodCAgPHN0YW0ubWFya2lhbm9zLXdyaWdodEBhcm0uY29tPg0KDQoJKiBj b25maWcvYXJtL2FybS5jDQoJKGFybV9pbnZhbGlkX2NvbnZlcnNpb24pOiBO ZXcgZnVuY3Rpb24gZm9yIHRhcmdldCBob29rLg0KCShhcm1faW52YWxpZF91 bmFyeV9vcCk6IE5ldyBmdW5jdGlvbiBmb3IgdGFyZ2V0IGhvb2suDQoJKGFy bV9pbnZhbGlkX2JpbmFyeV9vcCk6IE5ldyBmdW5jdGlvbiBmb3IgdGFyZ2V0 IGhvb2suDQoNCjIwMjAtMDEtMTAgIFN0YW0gTWFya2lhbm9zLVdyaWdodCAg PHN0YW0ubWFya2lhbm9zLXdyaWdodEBhcm0uY29tPg0KDQoJKiBnY2MudGFy Z2V0L2FybS9iZmxvYXQxNl9zY2FsYXJfdHlwZWNoZWNrLmM6IE5ldyB0ZXN0 Lg0KCSogZ2NjLnRhcmdldC9hcm0vYmZsb2F0MTZfdmVjdG9yX3R5cGVjaGVj a18xLmM6IE5ldyB0ZXN0Lg0KCSogZ2NjLnRhcmdldC9hcm0vYmZsb2F0MTZf dmVjdG9yX3R5cGVjaGVja18yLmM6IE5ldyB0ZXN0Lg0KDQoNCg== --_002_fa4c76022735fb2fa017df9b1a38cc22armcom_ Content-Type: text/x-patch; name="BFmode2of2-A32.patch" Content-Description: BFmode2of2-A32.patch Content-Disposition: attachment; filename="BFmode2of2-A32.patch"; size=47130; creation-date="Fri, 10 Jan 2020 18:47:36 GMT"; modification-date="Fri, 10 Jan 2020 18:47:36 GMT" Content-ID: Content-Transfer-Encoding: base64 Content-length: 63888 ZGlmZiAtLWdpdCBhL2djYy9jb25maWcvYXJtL2FybS5jIGIvZ2NjL2NvbmZp Zy9hcm0vYXJtLmMNCmluZGV4IDliZDIyOGI1NDMzLi5kNDE4MGQ0MTY2YyAx MDA2NDQNCi0tLSBhL2djYy9jb25maWcvYXJtL2FybS5jDQorKysgYi9nY2Mv Y29uZmlnL2FybS9hcm0uYw0KQEAgLTY4OCw2ICs2ODgsMTUgQEAgc3RhdGlj IGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfc3BlYyBhcm1fYXR0cmlidXRlX3Rh YmxlW10gPQ0KICN1bmRlZiBUQVJHRVRfTUFOR0xFX1RZUEUNCiAjZGVmaW5l IFRBUkdFVF9NQU5HTEVfVFlQRSBhcm1fbWFuZ2xlX3R5cGUNCiANCisjdW5k ZWYgVEFSR0VUX0lOVkFMSURfQ09OVkVSU0lPTg0KKyNkZWZpbmUgVEFSR0VU X0lOVkFMSURfQ09OVkVSU0lPTiBhcm1faW52YWxpZF9jb252ZXJzaW9uDQor DQorI3VuZGVmIFRBUkdFVF9JTlZBTElEX1VOQVJZX09QDQorI2RlZmluZSBU QVJHRVRfSU5WQUxJRF9VTkFSWV9PUCBhcm1faW52YWxpZF91bmFyeV9vcA0K Kw0KKyN1bmRlZiBUQVJHRVRfSU5WQUxJRF9CSU5BUllfT1ANCisjZGVmaW5l IFRBUkdFVF9JTlZBTElEX0JJTkFSWV9PUCBhcm1faW52YWxpZF9iaW5hcnlf b3ANCisNCiAjdW5kZWYgVEFSR0VUX0FUT01JQ19BU1NJR05fRVhQQU5EX0ZF TlYNCiAjZGVmaW5lIFRBUkdFVF9BVE9NSUNfQVNTSUdOX0VYUEFORF9GRU5W IGFybV9hdG9taWNfYXNzaWduX2V4cGFuZF9mZW52DQogDQpAQCAtMzI0MzIs NiArMzI0NDEsNTUgQEAgYXJtX2NvcHJvY19sZGNfc3RjX2xlZ2l0aW1hdGVf YWRkcmVzcyAocnR4IG9wKQ0KICAgcmV0dXJuIGZhbHNlOw0KIH0NCiANCisv KiBSZXR1cm4gdGhlIGRpYWdub3N0aWMgbWVzc2FnZSBzdHJpbmcgaWYgY29u dmVyc2lvbiBmcm9tIEZST01UWVBFIHRvDQorICAgVE9UWVBFIGlzIG5vdCBh bGxvd2VkLCBOVUxMIG90aGVyd2lzZS4gICovDQorDQorc3RhdGljIGNvbnN0 IGNoYXIgKg0KK2FybV9pbnZhbGlkX2NvbnZlcnNpb24gKGNvbnN0X3RyZWUg ZnJvbXR5cGUsIGNvbnN0X3RyZWUgdG90eXBlKQ0KK3sNCisgIGlmIChlbGVt ZW50X21vZGUgKGZyb210eXBlKSAhPSBlbGVtZW50X21vZGUgKHRvdHlwZSkp DQorICAgIHsNCisgICAgICAvKiBEbyBubyBhbGxvdyBjb252ZXJzaW9ucyB0 by9mcm9tIEJGbW9kZSBzY2FsYXIgdHlwZXMuICAqLw0KKyAgICAgIGlmIChU WVBFX01PREUgKGZyb210eXBlKSA9PSBCRm1vZGUpDQorCXJldHVybiBOXygi aW52YWxpZCBjb252ZXJzaW9uIGZyb20gdHlwZSAlPGJmbG9hdDE2X3QlPiIp Ow0KKyAgICAgIGlmIChUWVBFX01PREUgKHRvdHlwZSkgPT0gQkZtb2RlKQ0K KwlyZXR1cm4gTl8oImludmFsaWQgY29udmVyc2lvbiB0byB0eXBlICU8YmZs b2F0MTZfdCU+Iik7DQorICAgIH0NCisNCisgIC8qIENvbnZlcnNpb24gYWxs b3dlZC4gICovDQorICByZXR1cm4gTlVMTDsNCit9DQorDQorLyogUmV0dXJu IHRoZSBkaWFnbm9zdGljIG1lc3NhZ2Ugc3RyaW5nIGlmIHRoZSB1bmFyeSBv cGVyYXRpb24gT1AgaXMNCisgICBub3QgcGVybWl0dGVkIG9uIFRZUEUsIE5V TEwgb3RoZXJ3aXNlLiAgKi8NCisNCitzdGF0aWMgY29uc3QgY2hhciAqDQor YXJtX2ludmFsaWRfdW5hcnlfb3AgKGludCBvcCwgY29uc3RfdHJlZSB0eXBl KQ0KK3sNCisgIC8qIFJlamVjdCBhbGwgc2luZ2xlLW9wZXJhbmQgb3BlcmF0 aW9ucyBvbiBCRm1vZGUgZXhjZXB0IGZvciAmLiAgKi8NCisgIGlmIChlbGVt ZW50X21vZGUgKHR5cGUpID09IEJGbW9kZSAmJiBvcCAhPSBBRERSX0VYUFIp DQorICAgIHJldHVybiBOXygib3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQgb24g dHlwZSAlPGJmbG9hdDE2X3QlPiIpOw0KKw0KKyAgLyogT3BlcmF0aW9uIGFs bG93ZWQuICAqLw0KKyAgcmV0dXJuIE5VTEw7DQorfQ0KKw0KKy8qIFJldHVy biB0aGUgZGlhZ25vc3RpYyBtZXNzYWdlIHN0cmluZyBpZiB0aGUgYmluYXJ5 IG9wZXJhdGlvbiBPUCBpcw0KKyAgIG5vdCBwZXJtaXR0ZWQgb24gVFlQRTEg YW5kIFRZUEUyLCBOVUxMIG90aGVyd2lzZS4gICovDQorDQorc3RhdGljIGNv bnN0IGNoYXIgKg0KK2FybV9pbnZhbGlkX2JpbmFyeV9vcCAoaW50IG9wIEFU VFJJQlVURV9VTlVTRUQsIGNvbnN0X3RyZWUgdHlwZTEsDQorCQkJICAgY29u c3RfdHJlZSB0eXBlMikNCit7DQorICAvKiBSZWplY3QgYWxsIDItb3BlcmFu ZCBvcGVyYXRpb25zIG9uIEJGbW9kZS4gICovDQorICBpZiAoZWxlbWVudF9t b2RlICh0eXBlMSkgPT0gQkZtb2RlDQorICAgICAgfHwgZWxlbWVudF9tb2Rl ICh0eXBlMikgPT0gQkZtb2RlKQ0KKyAgICByZXR1cm4gTl8oIm9wZXJhdGlv biBub3QgcGVybWl0dGVkIG9uIHR5cGUgJTxiZmxvYXQxNl90JT4iKTsNCisN CisgIC8qIE9wZXJhdGlvbiBhbGxvd2VkLiAgKi8NCisgIHJldHVybiBOVUxM Ow0KK30NCisNCiAvKiBJbXBsZW1lbnQgVEFSR0VUX0NBTl9DSEFOR0VfTU9E RV9DTEFTUy4NCiANCiAgICBJbiBWRlB2MSwgVkZQIHJlZ2lzdGVycyBjb3Vs ZCBvbmx5IGJlIGFjY2Vzc2VkIGluIHRoZSBtb2RlIHRoZXkgd2VyZQ0KZGlm ZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZysrLnRhcmdldC9hcm0vYmZsb2F0 X2NwcF90eXBlY2hlY2suQyBiL2djYy90ZXN0c3VpdGUvZysrLnRhcmdldC9h cm0vYmZsb2F0X2NwcF90eXBlY2hlY2suQw0KbmV3IGZpbGUgbW9kZSAxMDA2 NDQNCmluZGV4IDAwMDAwMDAwMDAwLi4zZTZmN2Q4Mzc1Mg0KLS0tIC9kZXYv bnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nKysudGFyZ2V0L2FybS9iZmxv YXRfY3BwX3R5cGVjaGVjay5DDQpAQCAtMCwwICsxLDE0IEBADQorLyogeyBk Zy1kbyBhc3NlbWJsZSB7IHRhcmdldCB7IGFybSotKi0qIH0gfSB9ICovDQor LyogeyBkZy1yZXF1aXJlLWVmZmVjdGl2ZS10YXJnZXQgYXJtX3Y4XzJhX2Jm MTZfbmVvbl9vayB9ICovDQorLyogeyBkZy1hZGQtb3B0aW9ucyBhcm1fdjhf MmFfYmYxNl9uZW9uIH0gICovDQorLyogeyBkZy1hZGRpdGlvbmFsLW9wdGlv bnMgIi1PMyAtLXNhdmUtdGVtcHMiIH0gKi8NCisNCisjaW5jbHVkZSA8YXJt X25lb24uaD4NCisNCit2b2lkIGZvbyAodm9pZCkNCit7DQorICBiZmxvYXQx Nl90ICgpOyAvKiB7IGRnLWJvZ3VzIHtpbnZhbGlkIGNvbnZlcnNpb24gdG8g dHlwZSAnYmZsb2F0MTZfdCd9ICIiIHsgeGZhaWwgKi0qLSogfSB9ICovDQor ICBiZmxvYXQxNl90IGEgPSBiZmxvYXQxNl90KCk7IC8qIHsgZGctYm9ndXMg e2ludmFsaWQgY29udmVyc2lvbiB0byB0eXBlICdiZmxvYXQxNl90J30gIiIg eyB4ZmFpbCAqLSotKiB9IH0gKi8NCisgIGJmbG9hdDE2X3QgKDB4MTIzNCk7 IC8qIHsgZGctZXJyb3Ige2ludmFsaWQgY29udmVyc2lvbiB0byB0eXBlICdi ZmxvYXQxNl90J30gfSAqLw0KKyAgYmZsb2F0MTZfdCAoMC4xKTsgLyogeyBk Zy1lcnJvciB7aW52YWxpZCBjb252ZXJzaW9uIHRvIHR5cGUgJ2JmbG9hdDE2 X3QnfSB9ICovDQorfQ0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9hcm0vYmZsb2F0MTZfc2NhbGFyX3R5cGVjaGVjay5jIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9iZmxvYXQxNl9zY2FsYXJfdHlw ZWNoZWNrLmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAw MDAwMC4uNjcyNjQxZTY2MzANCi0tLSAvZGV2L251bGwNCisrKyBiL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vYmZsb2F0MTZfc2NhbGFyX3R5cGVj aGVjay5jDQpAQCAtMCwwICsxLDIxOSBAQA0KKy8qIHsgZGctZG8gYXNzZW1i bGUgeyB0YXJnZXQgeyBhcm0qLSotKiB9IH0gfSAqLw0KKy8qIHsgZGctc2tp cC1pZiAiIiB7ICotKi0qIH0geyAiLWZuby1mYXQtbHRvLW9iamVjdHMiIH0g fSAqLw0KKy8qIHsgZGctcmVxdWlyZS1lZmZlY3RpdmUtdGFyZ2V0IGFybV92 OF8yYV9mcDE2X25lb25fb2sgfSAqLw0KKy8qIHsgZGctcmVxdWlyZS1lZmZl Y3RpdmUtdGFyZ2V0IGFybV92OF8yYV9iZjE2X25lb25fb2sgfSAqLw0KKy8q IHsgZGctYWRkaXRpb25hbC1vcHRpb25zICItbWFyY2g9YXJtdjguNi1hK2Jm MTYrZnAxNiAtV25vLXBlZGFudGljIC1PMyAtLXNhdmUtdGVtcHMiIH0gICov DQorDQorI2luY2x1ZGUgPGFybV9uZW9uLmg+DQorDQorYmZsb2F0MTZfdCBn bG9iX2JmbG9hdDsNCisNCitpbnQgaXNfYW5faW50Ow0KK3Nob3J0IGlzX2Ff c2hvcnRfaW50Ow0KK2Zsb2F0IGlzX2FfZmxvYXQ7DQorZmxvYXQgaXNfYV9m bG9hdDE2Ow0KK2RvdWJsZSBpc19hX2RvdWJsZTsNCisNCitmbG9hdCAqZmxv YXRfcHRyOw0KKw0KK2JmbG9hdDE2X3QgZm9vMSAodm9pZCkgeyByZXR1cm4g KGJmbG9hdDE2X3QpIDB4MTIzNDsgfSAvKiB7IGRnLWVycm9yIHtpbnZhbGlk IGNvbnZlcnNpb24gdG8gdHlwZSAnYmZsb2F0MTZfdCd9IH0gKi8NCitiZmxv YXQxNl90IGZvbzIgKHZvaWQpIHsgcmV0dXJuIChiZmxvYXQxNl90KSAoc2hv cnQpIDB4MTIzNDsgfSAvKiB7IGRnLWVycm9yIHtpbnZhbGlkIGNvbnZlcnNp b24gdG8gdHlwZSAnYmZsb2F0MTZfdCd9IH0gKi8NCisNCitiZmxvYXQxNl90 IGZvb3Rlc3QgKGJmbG9hdDE2X3Qgc2NhbGFyMCkNCit7DQorDQorICAvKiBJ bml0aWFsaXNhdGlvbiAgKi8NCisNCisgIGJmbG9hdDE2X3Qgc2NhbGFyMV8x Ow0KKyAgYmZsb2F0MTZfdCBzY2FsYXIxXzIgPSBnbG9iX2JmbG9hdDsNCisg IGJmbG9hdDE2X3Qgc2NhbGFyMV8zID0gMDsgICAvKiB7IGRnLWVycm9yIHtp bnZhbGlkIGNvbnZlcnNpb24gdG8gdHlwZSAnYmZsb2F0MTZfdCd9IH0gKi8N CisgIGJmbG9hdDE2X3Qgc2NhbGFyMV80ID0gMC4xOyAvKiB7IGRnLWVycm9y IHtpbnZhbGlkIGNvbnZlcnNpb24gdG8gdHlwZSAnYmZsb2F0MTZfdCd9IH0g Ki8NCisgIGJmbG9hdDE2X3Qgc2NhbGFyMV81ID0gaXNfYV9mbG9hdDsgLyog eyBkZy1lcnJvciB7aW52YWxpZCBjb252ZXJzaW9uIHRvIHR5cGUgJ2JmbG9h dDE2X3QnfSB9ICovDQorICBiZmxvYXQxNl90IHNjYWxhcjFfNiA9IGlzX2Fu X2ludDsgIC8qIHsgZGctZXJyb3Ige2ludmFsaWQgY29udmVyc2lvbiB0byB0 eXBlICdiZmxvYXQxNl90J30gfSAqLw0KKyAgYmZsb2F0MTZfdCBzY2FsYXIx XzcgPSBpc19hX2Zsb2F0MTY7IC8qIHsgZGctZXJyb3Ige2ludmFsaWQgY29u dmVyc2lvbiB0byB0eXBlICdiZmxvYXQxNl90J30gfSAqLw0KKyAgYmZsb2F0 MTZfdCBzY2FsYXIxXzggPSBpc19hX2RvdWJsZTsgLyogeyBkZy1lcnJvciB7 aW52YWxpZCBjb252ZXJzaW9uIHRvIHR5cGUgJ2JmbG9hdDE2X3QnfSB9ICov DQorICBiZmxvYXQxNl90IHNjYWxhcjFfOSA9IGlzX2Ffc2hvcnRfaW50OyAv KiB7IGRnLWVycm9yIHtpbnZhbGlkIGNvbnZlcnNpb24gdG8gdHlwZSAnYmZs b2F0MTZfdCd9IH0gKi8NCisNCisgIGludCBpbml0aV8xXzEgPSBnbG9iX2Jm bG9hdDsgLyogeyBkZy1lcnJvciB7aW52YWxpZCBjb252ZXJzaW9uIGZyb20g dHlwZSAnYmZsb2F0MTZfdCd9IH0gKi8NCisgIGZsb2F0IGluaXRpXzFfMiA9 IGdsb2JfYmZsb2F0OyAvKiB7IGRnLWVycm9yIHtpbnZhbGlkIGNvbnZlcnNp b24gZnJvbSB0eXBlICdiZmxvYXQxNl90J30gfSAqLw0KKyAgZmxvYXQxNl90 IGluaXRpXzFfMyA9IGdsb2JfYmZsb2F0OyAvKiB7IGRnLWVycm9yIHtpbnZh bGlkIGNvbnZlcnNpb24gZnJvbSB0eXBlICdiZmxvYXQxNl90J30gfSAqLw0K KyAgc2hvcnQgaW5pdGlfMV80ID0gZ2xvYl9iZmxvYXQ7IC8qIHsgZGctZXJy b3Ige2ludmFsaWQgY29udmVyc2lvbiBmcm9tIHR5cGUgJ2JmbG9hdDE2X3Qn fSB9ICovDQorICBkb3VibGUgaW5pdGlfMV81ID0gZ2xvYl9iZmxvYXQ7IC8q IHsgZGctZXJyb3Ige2ludmFsaWQgY29udmVyc2lvbiBmcm9tIHR5cGUgJ2Jm bG9hdDE2X3QnfSB9ICovDQorDQorICBiZmxvYXQxNl90IHNjYWxhcjJfMSA9 IHt9OyAvKiB7IGRnLWVycm9yIHtlbXB0eSBzY2FsYXIgaW5pdGlhbGl6ZXJ9 IH0gKi8NCisgIGJmbG9hdDE2X3Qgc2NhbGFyMl8yID0geyBnbG9iX2JmbG9h dCB9Ow0KKyAgYmZsb2F0MTZfdCBzY2FsYXIyXzMgPSB7IDAgfTsgLyogeyBk Zy1lcnJvciB7aW52YWxpZCBjb252ZXJzaW9uIHRvIHR5cGUgJ2JmbG9hdDE2 X3QnfSB9ICovDQorICBiZmxvYXQxNl90IHNjYWxhcjJfNCA9IHsgMC4xIH07 IC8qIHsgZGctZXJyb3Ige2ludmFsaWQgY29udmVyc2lvbiB0byB0eXBlICdi ZmxvYXQxNl90J30gfSAqLw0KKyAgYmZsb2F0MTZfdCBzY2FsYXIyXzUgPSB7 IGlzX2FfZmxvYXQgfTsgLyogeyBkZy1lcnJvciB7aW52YWxpZCBjb252ZXJz aW9uIHRvIHR5cGUgJ2JmbG9hdDE2X3QnfSB9ICovDQorICBiZmxvYXQxNl90 IHNjYWxhcjJfNiA9IHsgaXNfYW5faW50IH07IC8qIHsgZGctZXJyb3Ige2lu dmFsaWQgY29udmVyc2lvbiB0byB0eXBlICdiZmxvYXQxNl90J30gfSAqLw0K KyAgYmZsb2F0MTZfdCBzY2FsYXIyXzcgPSB7IGlzX2FfZmxvYXQxNiB9OyAv KiB7IGRnLWVycm9yIHtpbnZhbGlkIGNvbnZlcnNpb24gdG8gdHlwZSAnYmZs b2F0MTZfdCd9IH0gKi8NCisgIGJmbG9hdDE2X3Qgc2NhbGFyMl84ID0geyBp c19hX2RvdWJsZSB9OyAvKiB7IGRnLWVycm9yIHtpbnZhbGlkIGNvbnZlcnNp b24gdG8gdHlwZSAnYmZsb2F0MTZfdCd9IH0gKi8NCisgIGJmbG9hdDE2X3Qg c2NhbGFyMl85ID0geyBpc19hX3Nob3J0X2ludCB9OyAvKiB7IGRnLWVycm9y IHtpbnZhbGlkIGNvbnZlcnNpb24gdG8gdHlwZSAnYmZsb2F0MTZfdCd9IH0g Ki8NCisNCisgIGludCBpbml0aV8yXzEgPSB7IGdsb2JfYmZsb2F0IH07IC8q IHsgZGctZXJyb3Ige2ludmFsaWQgY29udmVyc2lvbiBmcm9tIHR5cGUgJ2Jm bG9hdDE2X3QnfSB9ICovDQorICBmbG9hdCBpbml0aV8yXzIgPSB7IGdsb2Jf YmZsb2F0IH07IC8qIHsgZGctZXJyb3Ige2ludmFsaWQgY29udmVyc2lvbiBm cm9tIHR5cGUgJ2JmbG9hdDE2X3QnfSB9ICovDQorICBmbG9hdDE2X3QgaW5p dGlfMl8zID0geyBnbG9iX2JmbG9hdCB9OyAvKiB7IGRnLWVycm9yIHtpbnZh bGlkIGNvbnZlcnNpb24gZnJvbSB0eXBlICdiZmxvYXQxNl90J30gfSAqLw0K KyAgc2hvcnQgaW5pdGlfMl80ID0geyBnbG9iX2JmbG9hdCB9OyAvKiB7IGRn LWVycm9yIHtpbnZhbGlkIGNvbnZlcnNpb24gZnJvbSB0eXBlICdiZmxvYXQx Nl90J30gfSAqLw0KKyAgZG91YmxlIGluaXRpXzJfNSA9IHsgZ2xvYl9iZmxv YXQgfTsgLyogeyBkZy1lcnJvciB7aW52YWxpZCBjb252ZXJzaW9uIGZyb20g dHlwZSAnYmZsb2F0MTZfdCd9IH0gKi8NCisNCisgIC8qIEFzc2lnbm1lbnRz LiAgKi8NCisNCisgIGdsb2JfYmZsb2F0ID0gZ2xvYl9iZmxvYXQ7DQorICBn bG9iX2JmbG9hdCA9IDA7ICAgLyogeyBkZy1lcnJvciB7aW52YWxpZCBjb252 ZXJzaW9uIHRvIHR5cGUgJ2JmbG9hdDE2X3QnfSB9ICovDQorICBnbG9iX2Jm bG9hdCA9IDAuMTsgLyogeyBkZy1lcnJvciB7aW52YWxpZCBjb252ZXJzaW9u IHRvIHR5cGUgJ2JmbG9hdDE2X3QnfSB9ICovDQorICBnbG9iX2JmbG9hdCA9 IGlzX2FfZmxvYXQ7IC8qIHsgZGctZXJyb3Ige2ludmFsaWQgY29udmVyc2lv biB0byB0eXBlICdiZmxvYXQxNl90J30gfSAqLw0KKyAgZ2xvYl9iZmxvYXQg PSBpc19hbl9pbnQ7IC8qIHsgZGctZXJyb3Ige2ludmFsaWQgY29udmVyc2lv biB0byB0eXBlICdiZmxvYXQxNl90J30gfSAqLw0KKyAgZ2xvYl9iZmxvYXQg PSBpc19hX2Zsb2F0MTY7IC8qIHsgZGctZXJyb3Ige2ludmFsaWQgY29udmVy c2lvbiB0byB0eXBlICdiZmxvYXQxNl90J30gfSAqLw0KKyAgZ2xvYl9iZmxv YXQgPSBpc19hX2RvdWJsZTsgLyogeyBkZy1lcnJvciB7aW52YWxpZCBjb252 ZXJzaW9uIHRvIHR5cGUgJ2JmbG9hdDE2X3QnfSB9ICovDQorICBnbG9iX2Jm bG9hdCA9IGlzX2Ffc2hvcnRfaW50OyAvKiB7IGRnLWVycm9yIHtpbnZhbGlk IGNvbnZlcnNpb24gdG8gdHlwZSAnYmZsb2F0MTZfdCd9IH0gKi8NCisNCisg IGlzX2FuX2ludCA9IGdsb2JfYmZsb2F0OyAvKiB7IGRnLWVycm9yIHtpbnZh bGlkIGNvbnZlcnNpb24gZnJvbSB0eXBlICdiZmxvYXQxNl90J30gfSAqLw0K KyAgaXNfYV9mbG9hdCA9IGdsb2JfYmZsb2F0OyAvKiB7IGRnLWVycm9yIHtp bnZhbGlkIGNvbnZlcnNpb24gZnJvbSB0eXBlICdiZmxvYXQxNl90J30gfSAq Lw0KKyAgaXNfYV9mbG9hdDE2ID0gZ2xvYl9iZmxvYXQ7IC8qIHsgZGctZXJy b3Ige2ludmFsaWQgY29udmVyc2lvbiBmcm9tIHR5cGUgJ2JmbG9hdDE2X3Qn fSB9ICovDQorICBpc19hX2RvdWJsZSA9IGdsb2JfYmZsb2F0OyAvKiB7IGRn LWVycm9yIHtpbnZhbGlkIGNvbnZlcnNpb24gZnJvbSB0eXBlICdiZmxvYXQx Nl90J30gfSAqLw0KKyAgaXNfYV9zaG9ydF9pbnQgPSBnbG9iX2JmbG9hdDsg LyogeyBkZy1lcnJvciB7aW52YWxpZCBjb252ZXJzaW9uIGZyb20gdHlwZSAn YmZsb2F0MTZfdCd9IH0gKi8NCisNCisgIC8qIENhc3RpbmcuICAqLw0KKw0K KyAgKHZvaWQpIGdsb2JfYmZsb2F0Ow0KKyAgKGJmbG9hdDE2X3QpIGdsb2Jf YmZsb2F0Ow0KKw0KKyAgKGludCkgZ2xvYl9iZmxvYXQ7IC8qIHsgZGctZXJy b3Ige2ludmFsaWQgY29udmVyc2lvbiBmcm9tIHR5cGUgJ2JmbG9hdDE2X3Qn fSB9ICovDQorICAoZmxvYXQpIGdsb2JfYmZsb2F0OyAvKiB7IGRnLWVycm9y IHtpbnZhbGlkIGNvbnZlcnNpb24gZnJvbSB0eXBlICdiZmxvYXQxNl90J30g fSAqLw0KKyAgKGZsb2F0MTZfdCkgZ2xvYl9iZmxvYXQ7IC8qIHsgZGctZXJy b3Ige2ludmFsaWQgY29udmVyc2lvbiBmcm9tIHR5cGUgJ2JmbG9hdDE2X3Qn fSB9ICovDQorICAoZG91YmxlKSBnbG9iX2JmbG9hdDsgLyogeyBkZy1lcnJv ciB7aW52YWxpZCBjb252ZXJzaW9uIGZyb20gdHlwZSAnYmZsb2F0MTZfdCd9 IH0gKi8NCisgIChzaG9ydCkgZ2xvYl9iZmxvYXQ7IC8qIHsgZGctZXJyb3Ig e2ludmFsaWQgY29udmVyc2lvbiBmcm9tIHR5cGUgJ2JmbG9hdDE2X3QnfSB9 ICovDQorDQorICAoYmZsb2F0MTZfdCkgaXNfYW5faW50OyAvKiB7IGRnLWVy cm9yIHtpbnZhbGlkIGNvbnZlcnNpb24gdG8gdHlwZSAnYmZsb2F0MTZfdCd9 IH0gKi8NCisgIChiZmxvYXQxNl90KSBpc19hX2Zsb2F0OyAvKiB7IGRnLWVy cm9yIHtpbnZhbGlkIGNvbnZlcnNpb24gdG8gdHlwZSAnYmZsb2F0MTZfdCd9 IH0gKi8NCisgIChiZmxvYXQxNl90KSBpc19hX2Zsb2F0MTY7IC8qIHsgZGct ZXJyb3Ige2ludmFsaWQgY29udmVyc2lvbiB0byB0eXBlICdiZmxvYXQxNl90 J30gfSAqLw0KKyAgKGJmbG9hdDE2X3QpIGlzX2FfZG91YmxlOyAvKiB7IGRn LWVycm9yIHtpbnZhbGlkIGNvbnZlcnNpb24gdG8gdHlwZSAnYmZsb2F0MTZf dCd9IH0gKi8NCisgIChiZmxvYXQxNl90KSBpc19hX3Nob3J0X2ludDsgLyog eyBkZy1lcnJvciB7aW52YWxpZCBjb252ZXJzaW9uIHRvIHR5cGUgJ2JmbG9h dDE2X3QnfSB9ICovDQorDQorICAvKiBDb21wb3VuZCBsaXRlcmFscy4gICov DQorDQorICAoYmZsb2F0MTZfdCkge307IC8qIHsgZGctZXJyb3Ige2VtcHR5 IHNjYWxhciBpbml0aWFsaXplcn0gfSAqLw0KKyAgKGJmbG9hdDE2X3QpIHsg Z2xvYl9iZmxvYXQgfTsNCisgIChiZmxvYXQxNl90KSB7IDAgfTsgLyogeyBk Zy1lcnJvciB7aW52YWxpZCBjb252ZXJzaW9uIHRvIHR5cGUgJ2JmbG9hdDE2 X3QnfSB9ICovDQorICAoYmZsb2F0MTZfdCkgeyAwLjEgfTsgLyogeyBkZy1l cnJvciB7aW52YWxpZCBjb252ZXJzaW9uIHRvIHR5cGUgJ2JmbG9hdDE2X3Qn fSB9ICovDQorICAoYmZsb2F0MTZfdCkgeyBpc19hX2Zsb2F0IH07IC8qIHsg ZGctZXJyb3Ige2ludmFsaWQgY29udmVyc2lvbiB0byB0eXBlICdiZmxvYXQx Nl90J30gfSAqLw0KKyAgKGJmbG9hdDE2X3QpIHsgaXNfYW5faW50IH07IC8q IHsgZGctZXJyb3Ige2ludmFsaWQgY29udmVyc2lvbiB0byB0eXBlICdiZmxv YXQxNl90J30gfSAqLw0KKyAgKGJmbG9hdDE2X3QpIHsgaXNfYV9mbG9hdDE2 IH07IC8qIHsgZGctZXJyb3Ige2ludmFsaWQgY29udmVyc2lvbiB0byB0eXBl ICdiZmxvYXQxNl90J30gfSAqLw0KKyAgKGJmbG9hdDE2X3QpIHsgaXNfYV9k b3VibGUgfTsgLyogeyBkZy1lcnJvciB7aW52YWxpZCBjb252ZXJzaW9uIHRv IHR5cGUgJ2JmbG9hdDE2X3QnfSB9ICovDQorICAoYmZsb2F0MTZfdCkgeyBp c19hX3Nob3J0X2ludCB9OyAvKiB7IGRnLWVycm9yIHtpbnZhbGlkIGNvbnZl cnNpb24gdG8gdHlwZSAnYmZsb2F0MTZfdCd9IH0gKi8NCisNCisgIChpbnQp IHsgZ2xvYl9iZmxvYXQgfTsgLyogeyBkZy1lcnJvciB7aW52YWxpZCBjb252 ZXJzaW9uIGZyb20gdHlwZSAnYmZsb2F0MTZfdCd9IH0gKi8NCisgIChmbG9h dCkgeyBnbG9iX2JmbG9hdCB9OyAvKiB7IGRnLWVycm9yIHtpbnZhbGlkIGNv bnZlcnNpb24gZnJvbSB0eXBlICdiZmxvYXQxNl90J30gfSAqLw0KKyAgKGZs b2F0MTZfdCkgeyBnbG9iX2JmbG9hdCB9OyAvKiB7IGRnLWVycm9yIHtpbnZh bGlkIGNvbnZlcnNpb24gZnJvbSB0eXBlICdiZmxvYXQxNl90J30gfSAqLw0K KyAgKGRvdWJsZSkgeyBnbG9iX2JmbG9hdCB9OyAvKiB7IGRnLWVycm9yIHtp bnZhbGlkIGNvbnZlcnNpb24gZnJvbSB0eXBlICdiZmxvYXQxNl90J30gfSAq Lw0KKyAgKHNob3J0KSB7IGdsb2JfYmZsb2F0IH07IC8qIHsgZGctZXJyb3Ig e2ludmFsaWQgY29udmVyc2lvbiBmcm9tIHR5cGUgJ2JmbG9hdDE2X3QnfSB9 ICovDQorDQorICAvKiBBcnJheXMgYW5kIFN0cnVjdHMuICAqLw0KKw0KKyAg dHlwZWRlZiBiZmxvYXQxNl90IGFycmF5X3R5cGVbMl07DQorICBleHRlcm4g YmZsb2F0MTZfdCBleHRlcm5fYXJyYXlbXTsNCisNCisgIGJmbG9hdDE2X3Qg YXJyYXlbMl07DQorICBiZmxvYXQxNl90IHplcm9fbGVuZ3RoX2FycmF5WzBd Ow0KKyAgYmZsb2F0MTZfdCBlbXB0eV9pbml0X2FycmF5W10gPSB7fTsNCisg IHR5cGVkZWYgYmZsb2F0MTZfdCBzb21lX290aGVyX3R5cGVbaXNfYW5faW50 XTsNCisNCisgIHN0cnVjdCBzdHJ1Y3QxIHsNCisgICAgYmZsb2F0MTZfdCBh Ow0KKyAgfTsNCisNCisgIHVuaW9uIHVuaW9uMSB7DQorICAgIGJmbG9hdDE2 X3QgYTsNCisgIH07DQorDQorICAvKiBBZGRyZXNzaW5nIGFuZCBkZXJlZmVy ZW5jaW5nLiAgKi8NCisNCisgIGJmbG9hdDE2X3QgKmJmbG9hdF9wdHIgPSAm c2NhbGFyMDsNCisgIHNjYWxhcjAgPSAqYmZsb2F0X3B0cjsNCisNCisgIC8q IFBvaW50ZXIgYXNzaWdubWVudC4gICovDQorDQorICBiZmxvYXQxNl90ICpi ZmxvYXRfcHRyMiA9IGJmbG9hdF9wdHI7DQorICBiZmxvYXQxNl90ICpiZmxv YXRfcHRyMyA9IGFycmF5Ow0KKw0KKyAgLyogUG9pbnRlciBhcml0aG1ldGlj LiAgKi8NCisNCisgICsrYmZsb2F0X3B0cjsNCisgIC0tYmZsb2F0X3B0cjsN CisgIGJmbG9hdF9wdHIrKzsNCisgIGJmbG9hdF9wdHItLTsNCisgIGJmbG9h dF9wdHIgKz0gMTsNCisgIGJmbG9hdF9wdHIgLT0gMTsNCisgIGJmbG9hdF9w dHIgLSBiZmxvYXRfcHRyMjsNCisgIGJmbG9hdF9wdHIgPSAmYmZsb2F0X3B0 cjNbMF07DQorICBiZmxvYXRfcHRyID0gJmJmbG9hdF9wdHIzWzFdOw0KKw0K KyAgLyogU2ltcGxlIGNvbXBhcmlzb24uICAqLw0KKyAgc2NhbGFyMCA+IGds b2JfYmZsb2F0OyAvKiB7IGRnLWVycm9yIHtvcGVyYXRpb24gbm90IHBlcm1p dHRlZCBvbiB0eXBlICdiZmxvYXQxNl90J30gfSAqLw0KKyAgZ2xvYl9iZmxv YXQgPT0gc2NhbGFyMDsgLyogeyBkZy1lcnJvciB7b3BlcmF0aW9uIG5vdCBw ZXJtaXR0ZWQgb24gdHlwZSAnYmZsb2F0MTZfdCd9IH0gKi8NCisgIHNjYWxh cjAgPiBpc19hX2Zsb2F0OyAvKiB7IGRnLWVycm9yIHtvcGVyYXRpb24gbm90 IHBlcm1pdHRlZCBvbiB0eXBlICdiZmxvYXQxNl90J30gfSAqLw0KKyAgaXNf YV9mbG9hdCA9PSBzY2FsYXIwOyAvKiB7IGRnLWVycm9yIHtvcGVyYXRpb24g bm90IHBlcm1pdHRlZCBvbiB0eXBlICdiZmxvYXQxNl90J30gfSAqLw0KKyAg c2NhbGFyMCA+IDA7IC8qIHsgZGctZXJyb3Ige29wZXJhdGlvbiBub3QgcGVy bWl0dGVkIG9uIHR5cGUgJ2JmbG9hdDE2X3QnfSB9ICovDQorICAwID09IHNj YWxhcjA7IC8qIHsgZGctZXJyb3Ige29wZXJhdGlvbiBub3QgcGVybWl0dGVk IG9uIHR5cGUgJ2JmbG9hdDE2X3QnfSB9ICovDQorICBzY2FsYXIwID4gMC4x OyAvKiB7IGRnLWVycm9yIHtvcGVyYXRpb24gbm90IHBlcm1pdHRlZCBvbiB0 eXBlICdiZmxvYXQxNl90J30gfSAqLw0KKyAgMC4xID09IHNjYWxhcjA7IC8q IHsgZGctZXJyb3Ige29wZXJhdGlvbiBub3QgcGVybWl0dGVkIG9uIHR5cGUg J2JmbG9hdDE2X3QnfSB9ICovDQorICBzY2FsYXIwID4gaXNfYW5faW50OyAv KiB7IGRnLWVycm9yIHtvcGVyYXRpb24gbm90IHBlcm1pdHRlZCBvbiB0eXBl ICdiZmxvYXQxNl90J30gfSAqLw0KKyAgaXNfYW5faW50ID09IHNjYWxhcjA7 IC8qIHsgZGctZXJyb3Ige29wZXJhdGlvbiBub3QgcGVybWl0dGVkIG9uIHR5 cGUgJ2JmbG9hdDE2X3QnfSB9ICovDQorDQorICAvKiBQb2ludGVyIGNvbXBh cmlzb24uICAqLw0KKw0KKyAgYmZsb2F0X3B0ciA9PSAmc2NhbGFyMDsNCisg IGJmbG9hdF9wdHIgIT0gJnNjYWxhcjA7DQorICBiZmxvYXRfcHRyIDwgJnNj YWxhcjA7DQorICBiZmxvYXRfcHRyIDw9ICZzY2FsYXIwOw0KKyAgYmZsb2F0 X3B0ciA+ICZzY2FsYXIwOw0KKyAgYmZsb2F0X3B0ciA+PSAmc2NhbGFyMDsN CisgIGJmbG9hdF9wdHIgPT0gYmZsb2F0X3B0cjI7DQorICBiZmxvYXRfcHRy ICE9IGJmbG9hdF9wdHIyOw0KKyAgYmZsb2F0X3B0ciA8IGJmbG9hdF9wdHIy Ow0KKyAgYmZsb2F0X3B0ciA8PSBiZmxvYXRfcHRyMjsNCisgIGJmbG9hdF9w dHIgPiBiZmxvYXRfcHRyMjsNCisgIGJmbG9hdF9wdHIgPj0gYmZsb2F0X3B0 cjI7DQorDQorICAvKiBDb25kaXRpb25hbCBleHByZXNzaW9ucy4gICovDQor DQorICAwID8gc2NhbGFyMCA6IHNjYWxhcjA7DQorICAwID8gc2NhbGFyMCA6 IGlzX2FfZmxvYXQ7IC8qIHsgZGctZXJyb3Ige2ludmFsaWQgY29udmVyc2lv biBmcm9tIHR5cGUgJ2JmbG9hdDE2X3QnfSB9ICovDQorICAwID8gaXNfYV9m bG9hdCA6IHNjYWxhcjA7IC8qIHsgZGctZXJyb3Ige2ludmFsaWQgY29udmVy c2lvbiBmcm9tIHR5cGUgJ2JmbG9hdDE2X3QnfSB9ICovDQorICAwID8gc2Nh bGFyMCA6IDA7IC8qIHsgZGctZXJyb3Ige2ludmFsaWQgY29udmVyc2lvbiB0 byB0eXBlICdiZmxvYXQxNl90J30gfSAqLw0KKyAgMCA/IDAgOiBzY2FsYXIw OyAvKiB7IGRnLWVycm9yIHtpbnZhbGlkIGNvbnZlcnNpb24gdG8gdHlwZSAn YmZsb2F0MTZfdCd9IH0gKi8NCisgIDAgPyAwLjEgOiBzY2FsYXIwOyAvKiB7 IGRnLWVycm9yIHtpbnZhbGlkIGNvbnZlcnNpb24gZnJvbSB0eXBlICdiZmxv YXQxNl90J30gfSAqLw0KKyAgMCA/IHNjYWxhcjAgOiAwLjE7IC8qIHsgZGct ZXJyb3Ige2ludmFsaWQgY29udmVyc2lvbiBmcm9tIHR5cGUgJ2JmbG9hdDE2 X3QnfSB9ICovDQorICAwID8gYmZsb2F0X3B0ciA6IGJmbG9hdF9wdHIyOw0K KyAgMCA/IGJmbG9hdF9wdHIgOiBmbG9hdF9wdHI7IC8qIHsgZGctZXJyb3Ig e3BvaW50ZXIgdHlwZSBtaXNtYXRjaCBpbiBjb25kaXRpb25hbCBleHByZXNz aW9ufSB9ICovDQorICAwID8gZmxvYXRfcHRyIDogYmZsb2F0X3B0cjsgLyog eyBkZy1lcnJvciB7cG9pbnRlciB0eXBlIG1pc21hdGNoIGluIGNvbmRpdGlv bmFsIGV4cHJlc3Npb259IH0gKi8NCisNCisgIHNjYWxhcjAgPyBzY2FsYXIw IDogc2NhbGFyMDsgLyogeyBkZy1lcnJvciB7b3BlcmF0aW9uIG5vdCBwZXJt aXR0ZWQgb24gdHlwZSAnYmZsb2F0MTZfdCd9IH0gKi8NCisgIHNjYWxhcjAg PyBpc19hX2Zsb2F0IDogc2NhbGFyMDsgLyogeyBkZy1lcnJvciB7b3BlcmF0 aW9uIG5vdCBwZXJtaXR0ZWQgb24gdHlwZSAnYmZsb2F0MTZfdCd9IH0gKi8N CisgIHNjYWxhcjAgPyBzY2FsYXIwIDogaXNfYV9mbG9hdDsgLyogeyBkZy1l cnJvciB7b3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQgb24gdHlwZSAnYmZsb2F0 MTZfdCd9IH0gKi8NCisgIHNjYWxhcjAgPyBpc19hX2Zsb2F0IDogaXNfYV9m bG9hdDsgLyogeyBkZy1lcnJvciB7b3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQg b24gdHlwZSAnYmZsb2F0MTZfdCd9IH0gKi8NCisNCisgIC8qIFVuYXJ5IG9w ZXJhdG9ycy4gICovDQorDQorICArc2NhbGFyMDsgLyogeyBkZy1lcnJvciB7 b3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQgb24gdHlwZSAnYmZsb2F0MTZfdCd9 IH0gKi8NCisgIC1zY2FsYXIwOyAvKiB7IGRnLWVycm9yIHtvcGVyYXRpb24g bm90IHBlcm1pdHRlZCBvbiB0eXBlICdiZmxvYXQxNl90J30gfSAqLw0KKyAg fnNjYWxhcjA7IC8qIHsgZGctZXJyb3Ige29wZXJhdGlvbiBub3QgcGVybWl0 dGVkIG9uIHR5cGUgJ2JmbG9hdDE2X3QnfSB9ICovDQorICAhc2NhbGFyMDsg LyogeyBkZy1lcnJvciB7b3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQgb24gdHlw ZSAnYmZsb2F0MTZfdCd9IH0gKi8NCisgICpzY2FsYXIwOyAvKiB7IGRnLWVy cm9yIHtpbnZhbGlkIHR5cGUgYXJndW1lbnQgb2YgdW5hcnkgJ1wqJ30gfSAq Lw0KKyAgX19yZWFsIHNjYWxhcjA7IC8qIHsgZGctZXJyb3Ige29wZXJhdGlv biBub3QgcGVybWl0dGVkIG9uIHR5cGUgJ2JmbG9hdDE2X3QnfSB9ICovDQor ICBfX2ltYWcgc2NhbGFyMDsgLyogeyBkZy1lcnJvciB7b3BlcmF0aW9uIG5v dCBwZXJtaXR0ZWQgb24gdHlwZSAnYmZsb2F0MTZfdCd9IH0gKi8NCisgICsr c2NhbGFyMDsgLyogeyBkZy1lcnJvciB7b3BlcmF0aW9uIG5vdCBwZXJtaXR0 ZWQgb24gdHlwZSAnYmZsb2F0MTZfdCd9IH0gKi8NCisgIC0tc2NhbGFyMDsg LyogeyBkZy1lcnJvciB7b3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQgb24gdHlw ZSAnYmZsb2F0MTZfdCd9IH0gKi8NCisgIHNjYWxhcjArKzsgLyogeyBkZy1l cnJvciB7b3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQgb24gdHlwZSAnYmZsb2F0 MTZfdCd9IH0gKi8NCisgIHNjYWxhcjAtLTsgLyogeyBkZy1lcnJvciB7b3Bl cmF0aW9uIG5vdCBwZXJtaXR0ZWQgb24gdHlwZSAnYmZsb2F0MTZfdCd9IH0g Ki8NCisNCisgIC8qIEJpbmFyeSBhcml0aG1ldGljIG9wZXJhdGlvbnMuICAq Lw0KKw0KKyAgc2NhbGFyMCA9IGdsb2JfYmZsb2F0ICsgKmJmbG9hdF9wdHI7 IC8qIHsgZGctZXJyb3Ige29wZXJhdGlvbiBub3QgcGVybWl0dGVkIG9uIHR5 cGUgJ2JmbG9hdDE2X3QnfSB9ICovDQorICBzY2FsYXIwID0gZ2xvYl9iZmxv YXQgKyAwLjE7IC8qIHsgZGctZXJyb3Ige29wZXJhdGlvbiBub3QgcGVybWl0 dGVkIG9uIHR5cGUgJ2JmbG9hdDE2X3QnfSB9ICovDQorICBzY2FsYXIwID0g Z2xvYl9iZmxvYXQgKyAwOyAvKiB7IGRnLWVycm9yIHtvcGVyYXRpb24gbm90 IHBlcm1pdHRlZCBvbiB0eXBlICdiZmxvYXQxNl90J30gfSAqLw0KKyAgc2Nh bGFyMCA9IGdsb2JfYmZsb2F0ICsgaXNfYV9mbG9hdDsgLyogeyBkZy1lcnJv ciB7b3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQgb24gdHlwZSAnYmZsb2F0MTZf dCd9IH0gKi8NCisNCisgIHJldHVybiBzY2FsYXIwOw0KK30NCisNCmRpZmYg LS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL2JmbG9hdDE2 X3ZlY3Rvcl90eXBlY2hlY2tfMS5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L2FybS9iZmxvYXQxNl92ZWN0b3JfdHlwZWNoZWNrXzEuYw0KbmV3IGZp bGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi5iYTM5Y2I2YmNk Mw0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L2FybS9iZmxvYXQxNl92ZWN0b3JfdHlwZWNoZWNrXzEuYw0KQEAgLTAs MCArMSwyNjMgQEANCisvKiB7IGRnLWRvIGFzc2VtYmxlIHsgdGFyZ2V0IHsg YXJtKi0qLSogfSB9IH0gKi8NCisvKiB7IGRnLXNraXAtaWYgIiIgeyAqLSot KiB9IHsgIi1mbm8tZmF0LWx0by1vYmplY3RzIiB9IH0gKi8NCisvKiB7IGRn LXJlcXVpcmUtZWZmZWN0aXZlLXRhcmdldCBhcm1fdjhfMmFfZnAxNl9uZW9u X29rIH0gKi8NCisvKiB7IGRnLXJlcXVpcmUtZWZmZWN0aXZlLXRhcmdldCBh cm1fdjhfMmFfYmYxNl9uZW9uX29rIH0gKi8NCisvKiB7IGRnLWFkZGl0aW9u YWwtb3B0aW9ucyAiLW1hcmNoPWFybXY4LjYtYStiZjE2K2ZwMTYgLVduby1w ZWRhbnRpYyAtTzMgLS1zYXZlLXRlbXBzIiB9ICAqLw0KKw0KKyNpbmNsdWRl IDxhcm1fbmVvbi5oPg0KKw0KK2JmbG9hdDE2X3QgZ2xvYl9iZmxvYXQ7DQor YmZsb2F0MTZ4NF90IGdsb2JfYmZsb2F0X3ZlYzsNCisNCitmbG9hdDMyeDRf dCBpc19hX2Zsb2F0X3ZlYzsNCitmbG9hdDMyeDJfdCBpc19hX2Zsb2F0X3Bh aXI7DQorDQorZmxvYXQxNng0X3QgKmZsb2F0X3B0cjsNCitmbG9hdDE2eDRf dCBpc19hX2Zsb2F0MTZfdmVjOw0KKw0KK2ludDMyeDRfdCBpc19hbl9pbnRf dmVjOw0KK2ludDMyeDJfdCBpc19hbl9pbnRfcGFpcjsNCitpbnQxNng0X3Qg aXNfYV9zaG9ydF92ZWM7DQorDQoraW50IGlzX2FuX2ludDsNCitzaG9ydCBp c19hX3Nob3J0X2ludDsNCitmbG9hdCBpc19hX2Zsb2F0Ow0KK2Zsb2F0IGlz X2FfZmxvYXQxNjsNCitkb3VibGUgaXNfYV9kb3VibGU7DQorDQorLyogQ3Jl YXRlIGEgdmVjdG9yIG9mIDIgYmZsb2F0MTZfdC4gICovDQordHlwZWRlZiBi ZmxvYXQxNl90IHYyYmYgX19hdHRyaWJ1dGVfXygodmVjdG9yX3NpemUoNCkp KTsNCit2MmJmIGZvbzEgKHZvaWQpIHsgcmV0dXJuICh2MmJmKSAweDEyMzQ1 Njc4OyB9DQorYmZsb2F0MTZ4NF90IGZvbzIgKHZvaWQpIHsgcmV0dXJuIChi ZmxvYXQxNng0X3QpIDB4MTIzNDU2NzgxMjM0NTY3ODsgfQ0KKw0KK2JmbG9h dDE2eDRfdCBmb290ZXN0IChiZmxvYXQxNng0X3QgdmVjdG9yMCkNCit7DQor ICAvKiBJbml0aWFsaXNhdGlvbiAgKi8NCisNCisgIGJmbG9hdDE2eDRfdCB2 ZWN0b3IxXzE7DQorICBiZmxvYXQxNng0X3QgdmVjdG9yMV8yID0gZ2xvYl9i ZmxvYXRfdmVjOw0KKyAgYmZsb2F0MTZ4NF90IHZlY3RvcjFfMyA9IGlzX2Ff ZmxvYXRfdmVjOyAvKiB7IGRnLWVycm9yIHtpbmNvbXBhdGlibGUgdHlwZXMg d2hlbiBpbml0aWFsaXppbmcgdHlwZSAnYmZsb2F0MTZ4NF90JyB1c2luZyB0 eXBlICdmbG9hdDMyeDRfdCd9IH0gKi8NCisgIGJmbG9hdDE2eDRfdCB2ZWN0 b3IxXzQgPSBpc19hbl9pbnRfdmVjOyAgLyogeyBkZy1lcnJvciB7aW5jb21w YXRpYmxlIHR5cGVzIHdoZW4gaW5pdGlhbGl6aW5nIHR5cGUgJ2JmbG9hdDE2 eDRfdCcgdXNpbmcgdHlwZSAnaW50MzJ4NF90J30gfSAqLw0KKyAgYmZsb2F0 MTZ4NF90IHZlY3RvcjFfNSA9IGlzX2FfZmxvYXQxNl92ZWM7IC8qIHsgZGct ZXJyb3Ige2luY29tcGF0aWJsZSB0eXBlcyB3aGVuIGluaXRpYWxpemluZyB0 eXBlICdiZmxvYXQxNng0X3QnIHVzaW5nIHR5cGUgJ2Zsb2F0MTZ4NF90J30g fSAqLw0KKyAgYmZsb2F0MTZ4NF90IHZlY3RvcjFfNiA9IGlzX2FfZmxvYXRf cGFpcjsgLyogeyBkZy1lcnJvciB7aW5jb21wYXRpYmxlIHR5cGVzIHdoZW4g aW5pdGlhbGl6aW5nIHR5cGUgJ2JmbG9hdDE2eDRfdCcgdXNpbmcgdHlwZSAn ZmxvYXQzMngyX3QnfSB9ICovDQorICBiZmxvYXQxNng0X3QgdmVjdG9yMV83 ID0gaXNfYW5faW50X3BhaXI7IC8qIHsgZGctZXJyb3Ige2luY29tcGF0aWJs ZSB0eXBlcyB3aGVuIGluaXRpYWxpemluZyB0eXBlICdiZmxvYXQxNng0X3Qn IHVzaW5nIHR5cGUgJ2ludDMyeDJfdCd9IH0gKi8NCisgIGJmbG9hdDE2eDRf dCB2ZWN0b3IxXzggPSBpc19hX3Nob3J0X3ZlYzsgLyogeyBkZy1lcnJvciB7 aW5jb21wYXRpYmxlIHR5cGVzIHdoZW4gaW5pdGlhbGl6aW5nIHR5cGUgJ2Jm bG9hdDE2eDRfdCcgdXNpbmcgdHlwZSAnaW50MTZ4NF90J30gfSAqLw0KKw0K KyAgaW50MzJ4NF90IGluaXRpXzFfMSA9IGdsb2JfYmZsb2F0X3ZlYzsgICAv KiB7IGRnLWVycm9yIHtpbmNvbXBhdGlibGUgdHlwZXMgd2hlbiBpbml0aWFs aXppbmcgdHlwZSAnaW50MzJ4NF90JyB1c2luZyB0eXBlICdiZmxvYXQxNng0 X3QnfSB9ICovDQorICBmbG9hdDMyeDRfdCBpbml0aV8xXzIgPSBnbG9iX2Jm bG9hdF92ZWM7IC8qIHsgZGctZXJyb3Ige2luY29tcGF0aWJsZSB0eXBlcyB3 aGVuIGluaXRpYWxpemluZyB0eXBlICdmbG9hdDMyeDRfdCcgdXNpbmcgdHlw ZSAnYmZsb2F0MTZ4NF90J30gfSAqLw0KKyAgZmxvYXQxNng0X3QgaW5pdGlf MV8zID0gZ2xvYl9iZmxvYXRfdmVjOyAvKiB7IGRnLWVycm9yIHtpbmNvbXBh dGlibGUgdHlwZXMgd2hlbiBpbml0aWFsaXppbmcgdHlwZSAnZmxvYXQxNng0 X3QnIHVzaW5nIHR5cGUgJ2JmbG9hdDE2eDRfdCd9IH0gKi8NCisgIGZsb2F0 MzJ4Ml90IGluaXRpXzFfNCA9IGdsb2JfYmZsb2F0X3ZlYzsgLyogeyBkZy1l cnJvciB7aW5jb21wYXRpYmxlIHR5cGVzIHdoZW4gaW5pdGlhbGl6aW5nIHR5 cGUgJ2Zsb2F0MzJ4Ml90JyB1c2luZyB0eXBlICdiZmxvYXQxNng0X3QnfSB9 ICovDQorICBpbnQzMngyX3QgaW5pdGlfMV81ID0gZ2xvYl9iZmxvYXRfdmVj OyAgLyogeyBkZy1lcnJvciB7aW5jb21wYXRpYmxlIHR5cGVzIHdoZW4gaW5p dGlhbGl6aW5nIHR5cGUgJ2ludDMyeDJfdCcgdXNpbmcgdHlwZSAnYmZsb2F0 MTZ4NF90J30gfSAqLw0KKyAgaW50MTZ4NF90IGluaXRpXzFfNiA9IGdsb2Jf YmZsb2F0X3ZlYzsgIC8qIHsgZGctZXJyb3Ige2luY29tcGF0aWJsZSB0eXBl cyB3aGVuIGluaXRpYWxpemluZyB0eXBlICdpbnQxNng0X3QnIHVzaW5nIHR5 cGUgJ2JmbG9hdDE2eDRfdCd9IH0gKi8NCisNCisgIGJmbG9hdDE2eDRfdCB2 ZWN0b3IyXzEgPSB7fTsNCisgIGJmbG9hdDE2eDRfdCB2ZWN0b3IyXzIgPSB7 IGdsb2JfYmZsb2F0IH07DQorICBiZmxvYXQxNng0X3QgdmVjdG9yMl8zID0g eyBnbG9iX2JmbG9hdCwgZ2xvYl9iZmxvYXQsIGdsb2JfYmZsb2F0LCBnbG9i X2JmbG9hdCB9Ow0KKyAgYmZsb2F0MTZ4NF90IHZlY3RvcjJfNCA9IHsgMCB9 OyAvKiB7IGRnLWVycm9yIHtpbnZhbGlkIGNvbnZlcnNpb24gdG8gdHlwZSAn YmZsb2F0MTZfdCd9IH0gKi8NCisgIGJmbG9hdDE2eDRfdCB2ZWN0b3IyXzUg PSB7IDAuMSB9OyAvKiB7IGRnLWVycm9yIHtpbnZhbGlkIGNvbnZlcnNpb24g dG8gdHlwZSAnYmZsb2F0MTZfdCd9IH0gKi8NCisgIGJmbG9hdDE2eDRfdCB2 ZWN0b3IyXzYgPSB7IGlzX2FfZmxvYXQxNiB9OyAvKiB7IGRnLWVycm9yIHtp bnZhbGlkIGNvbnZlcnNpb24gdG8gdHlwZSAnYmZsb2F0MTZfdCd9IH0gKi8N CisgIGJmbG9hdDE2eDRfdCB2ZWN0b3IyXzcgPSB7IGlzX2FfZmxvYXQgfTsg LyogeyBkZy1lcnJvciB7aW52YWxpZCBjb252ZXJzaW9uIHRvIHR5cGUgJ2Jm bG9hdDE2X3QnfSB9ICovDQorICBiZmxvYXQxNng0X3QgdmVjdG9yMl84ID0g eyBpc19hbl9pbnQgfTsgLyogeyBkZy1lcnJvciB7aW52YWxpZCBjb252ZXJz aW9uIHRvIHR5cGUgJ2JmbG9hdDE2X3QnfSB9ICovDQorICBiZmxvYXQxNng0 X3QgdmVjdG9yMl85ID0geyBpc19hX3Nob3J0X2ludCB9OyAvKiB7IGRnLWVy cm9yIHtpbnZhbGlkIGNvbnZlcnNpb24gdG8gdHlwZSAnYmZsb2F0MTZfdCd9 IH0gKi8NCisgIGJmbG9hdDE2eDRfdCB2ZWN0b3IyXzEwID0geyAwLjAsIDAs IGlzX2Ffc2hvcnRfaW50LCBpc19hX2Zsb2F0IH07IC8qIHsgZGctZXJyb3Ig e2ludmFsaWQgY29udmVyc2lvbiB0byB0eXBlICdiZmxvYXQxNl90J30gfSAq Lw0KKw0KKyAgaW50MzJ4NF90IGluaXRpXzJfMSA9IHsgZ2xvYl9iZmxvYXQg fTsgICAvKiB7IGRnLWVycm9yIHtpbnZhbGlkIGNvbnZlcnNpb24gZnJvbSB0 eXBlICdiZmxvYXQxNl90J30gfSAqLw0KKyAgZmxvYXQzMng0X3QgaW5pdGlf Ml8yID0geyBnbG9iX2JmbG9hdCB9OyAvKiB7IGRnLWVycm9yIHtpbnZhbGlk IGNvbnZlcnNpb24gZnJvbSB0eXBlICdiZmxvYXQxNl90J30gfSAqLw0KKyAg ZmxvYXQxNng0X3QgaW5pdGlfMl8zID0geyBnbG9iX2JmbG9hdCB9OyAvKiB7 IGRnLWVycm9yIHtpbnZhbGlkIGNvbnZlcnNpb24gZnJvbSB0eXBlICdiZmxv YXQxNl90J30gfSAqLw0KKyAgZmxvYXQzMngyX3QgaW5pdGlfMl80ID0geyBn bG9iX2JmbG9hdCB9OyAvKiB7IGRnLWVycm9yIHtpbnZhbGlkIGNvbnZlcnNp b24gZnJvbSB0eXBlICdiZmxvYXQxNl90J30gfSAqLw0KKyAgaW50MzJ4Ml90 IGluaXRpXzJfNSA9IHsgZ2xvYl9iZmxvYXQgfTsgICAvKiB7IGRnLWVycm9y IHtpbnZhbGlkIGNvbnZlcnNpb24gZnJvbSB0eXBlICdiZmxvYXQxNl90J30g fSAqLw0KKyAgaW50MTZ4NF90IGluaXRpXzJfNiA9IHsgZ2xvYl9iZmxvYXQg fTsgICAvKiB7IGRnLWVycm9yIHtpbnZhbGlkIGNvbnZlcnNpb24gZnJvbSB0 eXBlICdiZmxvYXQxNl90J30gfSAqLw0KKw0KKyAgLyogQXNzaWdubWVudHMg dG8vZnJvbSB2ZWN0b3JzLiAgKi8NCisNCisgIGdsb2JfYmZsb2F0X3ZlYyA9 IGdsb2JfYmZsb2F0X3ZlYzsNCisgIGdsb2JfYmZsb2F0X3ZlYyA9IDA7ICAg LyogeyBkZy1lcnJvciB7aW5jb21wYXRpYmxlIHR5cGVzIHdoZW4gYXNzaWdu aW5nIHRvIHR5cGUgJ2JmbG9hdDE2eDRfdCcgZnJvbSB0eXBlICdpbnQnfSB9 ICovDQorICBnbG9iX2JmbG9hdF92ZWMgPSAwLjE7IC8qIHsgZGctZXJyb3Ig e2luY29tcGF0aWJsZSB0eXBlcyB3aGVuIGFzc2lnbmluZyB0byB0eXBlICdi ZmxvYXQxNng0X3QnIGZyb20gdHlwZSAnZG91YmxlJ30gfSAqLw0KKyAgZ2xv Yl9iZmxvYXRfdmVjID0gaXNfYV9mbG9hdF92ZWM7IC8qIHsgZGctZXJyb3Ig e2luY29tcGF0aWJsZSB0eXBlcyB3aGVuIGFzc2lnbmluZyB0byB0eXBlICdi ZmxvYXQxNng0X3QnIGZyb20gdHlwZSAnZmxvYXQzMng0X3QnfSB9ICovDQor ICBnbG9iX2JmbG9hdF92ZWMgPSBpc19hbl9pbnRfdmVjOyAvKiB7IGRnLWVy cm9yIHtpbmNvbXBhdGlibGUgdHlwZXMgd2hlbiBhc3NpZ25pbmcgdG8gdHlw ZSAnYmZsb2F0MTZ4NF90JyBmcm9tIHR5cGUgJ2ludDMyeDRfdCd9IH0gKi8N CisgIGdsb2JfYmZsb2F0X3ZlYyA9IGlzX2FfZmxvYXQxNl92ZWM7IC8qIHsg ZGctZXJyb3Ige2luY29tcGF0aWJsZSB0eXBlcyB3aGVuIGFzc2lnbmluZyB0 byB0eXBlICdiZmxvYXQxNng0X3QnIGZyb20gdHlwZSAnZmxvYXQxNng0X3Qn fSB9ICovDQorICBnbG9iX2JmbG9hdF92ZWMgPSBpc19hX2Zsb2F0X3BhaXI7 IC8qIHsgZGctZXJyb3Ige2luY29tcGF0aWJsZSB0eXBlcyB3aGVuIGFzc2ln bmluZyB0byB0eXBlICdiZmxvYXQxNng0X3QnIGZyb20gdHlwZSAnZmxvYXQz MngyX3QnfSB9ICovDQorICBnbG9iX2JmbG9hdF92ZWMgPSBpc19hbl9pbnRf cGFpcjsgLyogeyBkZy1lcnJvciB7aW5jb21wYXRpYmxlIHR5cGVzIHdoZW4g YXNzaWduaW5nIHRvIHR5cGUgJ2JmbG9hdDE2eDRfdCcgZnJvbSB0eXBlICdp bnQzMngyX3QnfSB9ICovDQorICBnbG9iX2JmbG9hdF92ZWMgPSBpc19hX3No b3J0X3ZlYzsgLyogeyBkZy1lcnJvciB7aW5jb21wYXRpYmxlIHR5cGVzIHdo ZW4gYXNzaWduaW5nIHRvIHR5cGUgJ2JmbG9hdDE2eDRfdCcgZnJvbSB0eXBl ICdpbnQxNng0X3QnfSB9ICovDQorDQorICBpc19hbl9pbnRfdmVjID0gZ2xv Yl9iZmxvYXRfdmVjOyAvKiB7IGRnLWVycm9yIHtpbmNvbXBhdGlibGUgdHlw ZXMgd2hlbiBhc3NpZ25pbmcgdG8gdHlwZSAnaW50MzJ4NF90JyBmcm9tIHR5 cGUgJ2JmbG9hdDE2eDRfdCd9IH0gKi8NCisgIGlzX2FfZmxvYXRfdmVjID0g Z2xvYl9iZmxvYXRfdmVjOyAvKiB7IGRnLWVycm9yIHtpbmNvbXBhdGlibGUg dHlwZXMgd2hlbiBhc3NpZ25pbmcgdG8gdHlwZSAnZmxvYXQzMng0X3QnIGZy b20gdHlwZSAnYmZsb2F0MTZ4NF90J30gfSAqLw0KKyAgaXNfYV9mbG9hdDE2 X3ZlYyA9IGdsb2JfYmZsb2F0X3ZlYzsgLyogeyBkZy1lcnJvciB7aW5jb21w YXRpYmxlIHR5cGVzIHdoZW4gYXNzaWduaW5nIHRvIHR5cGUgJ2Zsb2F0MTZ4 NF90JyBmcm9tIHR5cGUgJ2JmbG9hdDE2eDRfdCd9IH0gKi8NCisgIGlzX2Ff ZmxvYXRfcGFpciA9IGdsb2JfYmZsb2F0X3ZlYzsgLyogeyBkZy1lcnJvciB7 aW5jb21wYXRpYmxlIHR5cGVzIHdoZW4gYXNzaWduaW5nIHRvIHR5cGUgJ2Zs b2F0MzJ4Ml90JyBmcm9tIHR5cGUgJ2JmbG9hdDE2eDRfdCd9IH0gKi8NCisg IGlzX2FuX2ludF9wYWlyID0gZ2xvYl9iZmxvYXRfdmVjOyAvKiB7IGRnLWVy cm9yIHtpbmNvbXBhdGlibGUgdHlwZXMgd2hlbiBhc3NpZ25pbmcgdG8gdHlw ZSAnaW50MzJ4Ml90JyBmcm9tIHR5cGUgJ2JmbG9hdDE2eDRfdCd9IH0gKi8N CisgIGlzX2Ffc2hvcnRfdmVjID0gZ2xvYl9iZmxvYXRfdmVjOy8qIHsgZGct ZXJyb3Ige2luY29tcGF0aWJsZSB0eXBlcyB3aGVuIGFzc2lnbmluZyB0byB0 eXBlICdpbnQxNng0X3QnIGZyb20gdHlwZSAnYmZsb2F0MTZ4NF90J30gfSAq Lw0KKw0KKyAgLyogQXNzaWdubWVudHMgdG8vZnJvbSBlbGVtZW50cy4gICov DQorDQorICB2ZWN0b3IyXzNbMF0gPSBnbG9iX2JmbG9hdDsNCisgIHZlY3Rv cjJfM1swXSA9IGlzX2FuX2ludDsgLyogeyBkZy1lcnJvciB7aW52YWxpZCBj b252ZXJzaW9uIHRvIHR5cGUgJ2JmbG9hdDE2X3QnfSB9ICovDQorICB2ZWN0 b3IyXzNbMF0gPSBpc19hX3Nob3J0X2ludDsgLyogeyBkZy1lcnJvciB7aW52 YWxpZCBjb252ZXJzaW9uIHRvIHR5cGUgJ2JmbG9hdDE2X3QnfSB9ICovDQor ICB2ZWN0b3IyXzNbMF0gPSBpc19hX2Zsb2F0OyAvKiB7IGRnLWVycm9yIHtp bnZhbGlkIGNvbnZlcnNpb24gdG8gdHlwZSAnYmZsb2F0MTZfdCd9IH0gKi8N CisgIHZlY3RvcjJfM1swXSA9IGlzX2FfZmxvYXQxNjsgLyogeyBkZy1lcnJv ciB7aW52YWxpZCBjb252ZXJzaW9uIHRvIHR5cGUgJ2JmbG9hdDE2X3QnfSB9 ICovDQorICB2ZWN0b3IyXzNbMF0gPSAwOyAvKiB7IGRnLWVycm9yIHtpbnZh bGlkIGNvbnZlcnNpb24gdG8gdHlwZSAnYmZsb2F0MTZfdCd9IH0gKi8NCisg IHZlY3RvcjJfM1swXSA9IDAuMTsgLyogeyBkZy1lcnJvciB7aW52YWxpZCBj b252ZXJzaW9uIHRvIHR5cGUgJ2JmbG9hdDE2X3QnfSB9ICovDQorDQorICBn bG9iX2JmbG9hdCA9IHZlY3RvcjJfM1swXTsNCisgIGlzX2FuX2ludCA9IHZl Y3RvcjJfM1swXTsgLyogeyBkZy1lcnJvciB7aW52YWxpZCBjb252ZXJzaW9u IGZyb20gdHlwZSAnYmZsb2F0MTZfdCd9IH0gKi8NCisgIGlzX2Ffc2hvcnRf aW50ID0gdmVjdG9yMl8zWzBdOyAvKiB7IGRnLWVycm9yIHtpbnZhbGlkIGNv bnZlcnNpb24gZnJvbSB0eXBlICdiZmxvYXQxNl90J30gfSAqLw0KKyAgaXNf YV9mbG9hdCA9IHZlY3RvcjJfM1swXTsgLyogeyBkZy1lcnJvciB7aW52YWxp ZCBjb252ZXJzaW9uIGZyb20gdHlwZSAnYmZsb2F0MTZfdCd9IH0gKi8NCisg IGlzX2FfZmxvYXQxNiA9IHZlY3RvcjJfM1swXTsgLyogeyBkZy1lcnJvciB7 aW52YWxpZCBjb252ZXJzaW9uIGZyb20gdHlwZSAnYmZsb2F0MTZfdCd9IH0g Ki8NCisNCisgIC8qIENvbXBvdW5kIGxpdGVyYWxzLiAgKi8NCisNCisgIChi ZmxvYXQxNng0X3QpIHt9Ow0KKw0KKyAgKGJmbG9hdDE2eDRfdCkgeyAwIH07 IC8qIHsgZGctZXJyb3Ige2ludmFsaWQgY29udmVyc2lvbiB0byB0eXBlICdi ZmxvYXQxNl90J30gfSAqLw0KKyAgKGJmbG9hdDE2eDRfdCkgeyAwLjEgfTsg LyogeyBkZy1lcnJvciB7aW52YWxpZCBjb252ZXJzaW9uIHRvIHR5cGUgJ2Jm bG9hdDE2X3QnfSB9ICovDQorICAoYmZsb2F0MTZ4NF90KSB7IGlzX2FfZmxv YXRfdmVjIH07IC8qIHsgZGctZXJyb3Ige2luY29tcGF0aWJsZSB0eXBlcyB3 aGVuIGluaXRpYWxpemluZyB0eXBlICdfX2JmMTYnIHVzaW5nIHR5cGUgJ2Zs b2F0MzJ4NF90J30gfSAqLw0KKyAgKGJmbG9hdDE2eDRfdCkgeyBpc19hbl9p bnRfdmVjIH07IC8qIHsgZGctZXJyb3Ige2luY29tcGF0aWJsZSB0eXBlcyB3 aGVuIGluaXRpYWxpemluZyB0eXBlICdfX2JmMTYnIHVzaW5nIHR5cGUgJ2lu dDMyeDRfdCd9IH0gKi8NCisgIChiZmxvYXQxNng0X3QpIHsgaXNfYV9mbG9h dF9wYWlyIH07IC8qIHsgZGctZXJyb3Ige2luY29tcGF0aWJsZSB0eXBlcyB3 aGVuIGluaXRpYWxpemluZyB0eXBlICdfX2JmMTYnIHVzaW5nIHR5cGUgJ2Zs b2F0MzJ4Ml90J30gfSAqLw0KKyAgKGJmbG9hdDE2eDRfdCkgeyBpc19hbl9p bnRfcGFpciB9OyAvKiB7IGRnLWVycm9yIHtpbmNvbXBhdGlibGUgdHlwZXMg d2hlbiBpbml0aWFsaXppbmcgdHlwZSAnX19iZjE2JyB1c2luZyB0eXBlICdp bnQzMngyX3QnfSB9ICovDQorICAoYmZsb2F0MTZ4NF90KSB7IGlzX2FfZmxv YXQxNl92ZWMgfTsgLyogeyBkZy1lcnJvciB7aW5jb21wYXRpYmxlIHR5cGVz IHdoZW4gaW5pdGlhbGl6aW5nIHR5cGUgJ19fYmYxNicgdXNpbmcgdHlwZSAn ZmxvYXQxNng0X3QnfSB9ICovDQorICAoYmZsb2F0MTZ4NF90KSB7IGlzX2Ff c2hvcnRfdmVjIH07IC8qIHsgZGctZXJyb3Ige2luY29tcGF0aWJsZSB0eXBl cyB3aGVuIGluaXRpYWxpemluZyB0eXBlICdfX2JmMTYnIHVzaW5nIHR5cGUg J2ludDE2eDRfdCd9IH0gKi8NCisNCisgIChiZmxvYXQxNng0X3QpIHsgZ2xv Yl9iZmxvYXRfdmVjIH07IC8qIHsgZGctZXJyb3Ige2luY29tcGF0aWJsZSB0 eXBlcyB3aGVuIGluaXRpYWxpemluZyB0eXBlICdfX2JmMTYnIHVzaW5nIHR5 cGUgJ2JmbG9hdDE2eDRfdCd9IH0gKi8NCisgIChpbnQzMng0X3QpIHsgZ2xv Yl9iZmxvYXRfdmVjIH07IC8qIHsgZGctZXJyb3Ige2luY29tcGF0aWJsZSB0 eXBlcyB3aGVuIGluaXRpYWxpemluZyB0eXBlICdpbnQnIHVzaW5nIHR5cGUg J2JmbG9hdDE2eDRfdCd9IH0gKi8NCisgIChmbG9hdDMyeDRfdCkgeyBnbG9i X2JmbG9hdF92ZWMgfTsgLyogeyBkZy1lcnJvciB7aW5jb21wYXRpYmxlIHR5 cGVzIHdoZW4gaW5pdGlhbGl6aW5nIHR5cGUgJ2Zsb2F0JyB1c2luZyB0eXBl ICdiZmxvYXQxNng0X3QnfSB9ICovDQorICAoaW50MzJ4Ml90KSB7IGdsb2Jf YmZsb2F0X3ZlYyB9OyAvKiB7IGRnLWVycm9yIHtpbmNvbXBhdGlibGUgdHlw ZXMgd2hlbiBpbml0aWFsaXppbmcgdHlwZSAnaW50JyB1c2luZyB0eXBlICdi ZmxvYXQxNng0X3QnfSB9ICovDQorICAoZmxvYXQxNng0X3QpIHsgZ2xvYl9i ZmxvYXRfdmVjIH07IC8qIHsgZGctZXJyb3Ige2luY29tcGF0aWJsZSB0eXBl cyB3aGVuIGluaXRpYWxpemluZyB0eXBlICdfX2ZwMTYnIHVzaW5nIHR5cGUg J2JmbG9hdDE2eDRfdCd9IH0gKi8NCisgIChpbnQxNng0X3QpIHsgZ2xvYl9i ZmxvYXRfdmVjIH07IC8qIHsgZGctZXJyb3Ige2luY29tcGF0aWJsZSB0eXBl cyB3aGVuIGluaXRpYWxpemluZyB0eXBlICdzaG9ydCBpbnQnIHVzaW5nIHR5 cGUgJ2JmbG9hdDE2eDRfdCd9IH0gKi8NCisNCisgIC8qIENhc3RpbmcuICAq Lw0KKw0KKyAgKHZvaWQpIGdsb2JfYmZsb2F0X3ZlYzsNCisgIChiZmxvYXQx Nng0X3QpIGdsb2JfYmZsb2F0X3ZlYzsNCisNCisgIChiZmxvYXQxNl90KSBn bG9iX2JmbG9hdF92ZWM7IC8qIHsgZGctZXJyb3Ige2FnZ3JlZ2F0ZSB2YWx1 ZSB1c2VkIHdoZXJlIGEgZmxvYXRpbmctcG9pbnQgd2FzIGV4cGVjdGVkfSB9 ICovDQorICAoc2hvcnQpIGdsb2JfYmZsb2F0X3ZlYzsgLyogeyBkZy1lcnJv ciB7Y2Fubm90IGNvbnZlcnQgYSB2ZWN0b3Igb2YgdHlwZSAnYmZsb2F0MTZ4 NF90JyB0byB0eXBlICdzaG9ydCBpbnQnIHdoaWNoIGhhcyBkaWZmZXJlbnQg c2l6ZX0gfSAqLw0KKyAgKGludCkgZ2xvYl9iZmxvYXRfdmVjOyAvKiB7IGRn LWVycm9yIHtjYW5ub3QgY29udmVydCBhIHZlY3RvciBvZiB0eXBlICdiZmxv YXQxNng0X3QnIHRvIHR5cGUgJ2ludCcgd2hpY2ggaGFzIGRpZmZlcmVudCBz aXplfSB9ICovDQorICAoZmxvYXQxNl90KSBnbG9iX2JmbG9hdF92ZWM7IC8q IHsgZGctZXJyb3Ige2FnZ3JlZ2F0ZSB2YWx1ZSB1c2VkIHdoZXJlIGEgZmxv YXRpbmctcG9pbnQgd2FzIGV4cGVjdGVkfSB9ICovDQorICAoZmxvYXQpIGds b2JfYmZsb2F0X3ZlYzsgLyogeyBkZy1lcnJvciB7YWdncmVnYXRlIHZhbHVl IHVzZWQgd2hlcmUgYSBmbG9hdGluZy1wb2ludCB3YXMgZXhwZWN0ZWR9IH0g Ki8NCisgIChkb3VibGUpIGdsb2JfYmZsb2F0X3ZlYzsgLyogeyBkZy1lcnJv ciB7YWdncmVnYXRlIHZhbHVlIHVzZWQgd2hlcmUgYSBmbG9hdGluZy1wb2lu dCB3YXMgZXhwZWN0ZWR9IH0gKi8NCisNCisgIChpbnQzMng0X3QpIGdsb2Jf YmZsb2F0X3ZlYzsgLyogeyBkZy1lcnJvciB7Y2Fubm90IGNvbnZlcnQgYSB2 YWx1ZSBvZiB0eXBlICdiZmxvYXQxNng0X3QnIHRvIHZlY3RvciB0eXBlICdf X3NpbWQxMjhfaW50MzJfdCcgd2hpY2ggaGFzIGRpZmZlcmVudCBzaXplfSB9 ICovDQorICAoZmxvYXQzMng0X3QpIGdsb2JfYmZsb2F0X3ZlYzsgLyogeyBk Zy1lcnJvciB7Y2Fubm90IGNvbnZlcnQgYSB2YWx1ZSBvZiB0eXBlICdiZmxv YXQxNng0X3QnIHRvIHZlY3RvciB0eXBlICdfX3NpbWQxMjhfZmxvYXQzMl90 JyB3aGljaCBoYXMgZGlmZmVyZW50IHNpemV9IH0gKi8NCisgIChmbG9hdDE2 eDRfdCkgZ2xvYl9iZmxvYXRfdmVjOw0KKyAgKGludDMyeDJfdCkgZ2xvYl9i ZmxvYXRfdmVjOw0KKyAgKGZsb2F0MzJ4Ml90KSBnbG9iX2JmbG9hdF92ZWM7 DQorICAoaW50MTZ4NF90KSBnbG9iX2JmbG9hdF92ZWM7DQorDQorICAoYmZs b2F0MTZ4NF90KSBpc19hbl9pbnRfdmVjOyAvKiB7IGRnLWVycm9yIHtjYW5u b3QgY29udmVydCBhIHZhbHVlIG9mIHR5cGUgJ2ludDMyeDRfdCcgdG8gdmVj dG9yIHR5cGUgJ19fc2ltZDY0X2JmbG9hdDE2X3QnIHdoaWNoIGhhcyBkaWZm ZXJlbnQgc2l6ZX0gfSAqLw0KKyAgKGJmbG9hdDE2eDRfdCkgaXNfYV9mbG9h dF92ZWM7IC8qIHsgZGctZXJyb3Ige2Nhbm5vdCBjb252ZXJ0IGEgdmFsdWUg b2YgdHlwZSAnZmxvYXQzMng0X3QnIHRvIHZlY3RvciB0eXBlICdfX3NpbWQ2 NF9iZmxvYXQxNl90JyB3aGljaCBoYXMgZGlmZmVyZW50IHNpemV9IH0gKi8N CisgIChiZmxvYXQxNng0X3QpIGlzX2FfZmxvYXQxNl92ZWM7DQorICAoYmZs b2F0MTZ4NF90KSBpc19hbl9pbnRfcGFpcjsNCisgIChiZmxvYXQxNng0X3Qp IGlzX2FfZmxvYXRfcGFpcjsNCisgIChiZmxvYXQxNng0X3QpIGlzX2Ffc2hv cnRfdmVjOw0KKyAgKGJmbG9hdDE2eDRfdCkgaXNfYV9kb3VibGU7IC8qIHsg ZGctZXJyb3Ige2Nhbm5vdCBjb252ZXJ0IHZhbHVlIHRvIGEgdmVjdG9yfSB9 ICovDQorDQorICAvKiBBcnJheXMgYW5kIFN0cnVjdHMuICAqLw0KKw0KKyAg dHlwZWRlZiBiZmxvYXQxNng0X3QgYXJyYXlfdHlwZVsyXTsNCisgIGV4dGVy biBiZmxvYXQxNng0X3QgZXh0ZXJuX2FycmF5W107DQorDQorICBiZmxvYXQx Nng0X3QgYXJyYXlbMl07DQorICBiZmxvYXQxNng0X3QgemVyb19sZW5ndGhf YXJyYXlbMF07DQorICBiZmxvYXQxNng0X3QgZW1wdHlfaW5pdF9hcnJheVtd ID0ge307DQorICB0eXBlZGVmIGJmbG9hdDE2eDRfdCBzb21lX290aGVyX3R5 cGVbaXNfYW5faW50XTsNCisNCisgIHN0cnVjdCBzdHJ1Y3QxIHsNCisgICAg YmZsb2F0MTZ4NF90IGE7DQorICB9Ow0KKw0KKyAgdW5pb24gdW5pb24xIHsN CisgICAgYmZsb2F0MTZ4NF90IGE7DQorICB9Ow0KKw0KKyAgLyogQWRkcmVz c2luZyBhbmQgZGVyZWZlcmVuY2luZy4gICovDQorDQorICBiZmxvYXQxNng0 X3QgKmJmbG9hdF9wdHIgPSAmdmVjdG9yMDsNCisgIHZlY3RvcjAgPSAqYmZs b2F0X3B0cjsNCisNCisgIC8qIFBvaW50ZXIgYXNzaWdubWVudC4gICovDQor DQorICBiZmxvYXQxNng0X3QgKmJmbG9hdF9wdHIyID0gYmZsb2F0X3B0cjsN CisgIGJmbG9hdDE2eDRfdCAqYmZsb2F0X3B0cjMgPSBhcnJheTsNCisNCisg IC8qIFBvaW50ZXIgYXJpdGhtZXRpYy4gICovDQorDQorICArK2JmbG9hdF9w dHI7DQorICAtLWJmbG9hdF9wdHI7DQorICBiZmxvYXRfcHRyKys7DQorICBi ZmxvYXRfcHRyLS07DQorICBiZmxvYXRfcHRyICs9IDE7DQorICBiZmxvYXRf cHRyIC09IDE7DQorICBiZmxvYXRfcHRyIC0gYmZsb2F0X3B0cjI7DQorICBi ZmxvYXRfcHRyID0gJmJmbG9hdF9wdHIzWzBdOw0KKyAgYmZsb2F0X3B0ciA9 ICZiZmxvYXRfcHRyM1sxXTsNCisNCisgIC8qIFNpbXBsZSBjb21wYXJpc29u LiAgKi8NCisgIHZlY3RvcjAgPiBnbG9iX2JmbG9hdF92ZWM7IC8qIHsgZGct ZXJyb3Ige29wZXJhdGlvbiBub3QgcGVybWl0dGVkIG9uIHR5cGUgJ2JmbG9h dDE2X3QnfSB9ICovDQorICBnbG9iX2JmbG9hdF92ZWMgPT0gdmVjdG9yMDsg LyogeyBkZy1lcnJvciB7b3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQgb24gdHlw ZSAnYmZsb2F0MTZfdCd9IH0gKi8NCisgIHZlY3RvcjAgPiBpc19hX2Zsb2F0 X3ZlYzsgLyogeyBkZy1lcnJvciB7b3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQg b24gdHlwZSAnYmZsb2F0MTZfdCd9IH0gKi8NCisgIGlzX2FfZmxvYXRfdmVj ID09IHZlY3RvcjA7IC8qIHsgZGctZXJyb3Ige29wZXJhdGlvbiBub3QgcGVy bWl0dGVkIG9uIHR5cGUgJ2JmbG9hdDE2X3QnfSB9ICovDQorICB2ZWN0b3Iw ID4gMDsgLyogeyBkZy1lcnJvciB7b3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQg b24gdHlwZSAnYmZsb2F0MTZfdCd9IH0gKi8NCisgIDAgPT0gdmVjdG9yMDsg LyogeyBkZy1lcnJvciB7b3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQgb24gdHlw ZSAnYmZsb2F0MTZfdCd9IH0gKi8NCisgIHZlY3RvcjAgPiAwLjE7IC8qIHsg ZGctZXJyb3Ige29wZXJhdGlvbiBub3QgcGVybWl0dGVkIG9uIHR5cGUgJ2Jm bG9hdDE2X3QnfSB9ICovDQorICAwLjEgPT0gdmVjdG9yMDsgLyogeyBkZy1l cnJvciB7b3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQgb24gdHlwZSAnYmZsb2F0 MTZfdCd9IH0gKi8NCisgIHZlY3RvcjAgPiBpc19hbl9pbnRfdmVjOyAvKiB7 IGRnLWVycm9yIHtvcGVyYXRpb24gbm90IHBlcm1pdHRlZCBvbiB0eXBlICdi ZmxvYXQxNl90J30gfSAqLw0KKyAgaXNfYW5faW50X3ZlYyA9PSB2ZWN0b3Iw OyAvKiB7IGRnLWVycm9yIHtvcGVyYXRpb24gbm90IHBlcm1pdHRlZCBvbiB0 eXBlICdiZmxvYXQxNl90J30gfSAqLw0KKw0KKyAgLyogUG9pbnRlciBjb21w YXJpc29uLiAgKi8NCisNCisgIGJmbG9hdF9wdHIgPT0gJnZlY3RvcjA7DQor ICBiZmxvYXRfcHRyICE9ICZ2ZWN0b3IwOw0KKyAgYmZsb2F0X3B0ciA8ICZ2 ZWN0b3IwOw0KKyAgYmZsb2F0X3B0ciA8PSAmdmVjdG9yMDsNCisgIGJmbG9h dF9wdHIgPiAmdmVjdG9yMDsNCisgIGJmbG9hdF9wdHIgPj0gJnZlY3RvcjA7 DQorICBiZmxvYXRfcHRyID09IGJmbG9hdF9wdHIyOw0KKyAgYmZsb2F0X3B0 ciAhPSBiZmxvYXRfcHRyMjsNCisgIGJmbG9hdF9wdHIgPCBiZmxvYXRfcHRy MjsNCisgIGJmbG9hdF9wdHIgPD0gYmZsb2F0X3B0cjI7DQorICBiZmxvYXRf cHRyID4gYmZsb2F0X3B0cjI7DQorICBiZmxvYXRfcHRyID49IGJmbG9hdF9w dHIyOw0KKw0KKyAgLyogQ29uZGl0aW9uYWwgZXhwcmVzc2lvbnMuICAqLw0K Kw0KKyAgMCA/IHZlY3RvcjAgOiB2ZWN0b3IwOw0KKyAgMCA/IHZlY3RvcjAg OiBpc19hX2Zsb2F0X3ZlYzsgLyogeyBkZy1lcnJvciB7dHlwZSBtaXNtYXRj aCBpbiBjb25kaXRpb25hbCBleHByZXNzaW9ufSB9ICovDQorICAwID8gaXNf YV9mbG9hdF92ZWMgOiB2ZWN0b3IwOyAvKiB7IGRnLWVycm9yIHt0eXBlIG1p c21hdGNoIGluIGNvbmRpdGlvbmFsIGV4cHJlc3Npb259IH0gKi8NCisgIDAg PyB2ZWN0b3IwIDogaXNfYV9mbG9hdDE2X3ZlYzsgLyogeyBkZy1lcnJvciB7 dHlwZSBtaXNtYXRjaCBpbiBjb25kaXRpb25hbCBleHByZXNzaW9ufSB9ICov DQorICAwID8gaXNfYV9mbG9hdDE2X3ZlYyA6IHZlY3RvcjA7IC8qIHsgZGct ZXJyb3Ige3R5cGUgbWlzbWF0Y2ggaW4gY29uZGl0aW9uYWwgZXhwcmVzc2lv bn0gfSAqLw0KKyAgMCA/IHZlY3RvcjAgOiAwOyAvKiB7IGRnLWVycm9yIHt0 eXBlIG1pc21hdGNoIGluIGNvbmRpdGlvbmFsIGV4cHJlc3Npb259IH0gKi8N CisgIDAgPyAwIDogdmVjdG9yMDsgLyogeyBkZy1lcnJvciB7dHlwZSBtaXNt YXRjaCBpbiBjb25kaXRpb25hbCBleHByZXNzaW9ufSB9ICovDQorICAwID8g MC4xIDogdmVjdG9yMDsgLyogeyBkZy1lcnJvciB7dHlwZSBtaXNtYXRjaCBp biBjb25kaXRpb25hbCBleHByZXNzaW9ufSB9ICovDQorICAwID8gdmVjdG9y MCA6IDAuMTsgLyogeyBkZy1lcnJvciB7dHlwZSBtaXNtYXRjaCBpbiBjb25k aXRpb25hbCBleHByZXNzaW9ufSB9ICovDQorICAwID8gYmZsb2F0X3B0ciA6 IGJmbG9hdF9wdHIyOw0KKyAgMCA/IGJmbG9hdF9wdHIgOiBmbG9hdF9wdHI7 IC8qIHsgZGctZXJyb3Ige3BvaW50ZXIgdHlwZSBtaXNtYXRjaCBpbiBjb25k aXRpb25hbCBleHByZXNzaW9ufSB9ICovDQorICAwID8gZmxvYXRfcHRyIDog YmZsb2F0X3B0cjsgLyogeyBkZy1lcnJvciB7cG9pbnRlciB0eXBlIG1pc21h dGNoIGluIGNvbmRpdGlvbmFsIGV4cHJlc3Npb259IH0gKi8NCisNCisgIHZl Y3RvcjAgPyB2ZWN0b3IwIDogdmVjdG9yMDsgLyogeyBkZy1lcnJvciB7dXNl ZCB2ZWN0b3IgdHlwZSB3aGVyZSBzY2FsYXIgaXMgcmVxdWlyZWR9IH0gKi8N CisgIHZlY3RvcjAgPyBpc19hX2Zsb2F0MTZfdmVjIDogdmVjdG9yMDsgLyog eyBkZy1lcnJvciB7dXNlZCB2ZWN0b3IgdHlwZSB3aGVyZSBzY2FsYXIgaXMg cmVxdWlyZWR9IH0gKi8NCisgIHZlY3RvcjAgPyB2ZWN0b3IwIDogaXNfYV9m bG9hdDE2X3ZlYzsgLyogeyBkZy1lcnJvciB7dXNlZCB2ZWN0b3IgdHlwZSB3 aGVyZSBzY2FsYXIgaXMgcmVxdWlyZWR9IH0gKi8NCisgIHZlY3RvcjAgPyBp c19hX2Zsb2F0MTZfdmVjIDogaXNfYV9mbG9hdDE2X3ZlYzsgLyogeyBkZy1l cnJvciB7dXNlZCB2ZWN0b3IgdHlwZSB3aGVyZSBzY2FsYXIgaXMgcmVxdWly ZWR9IH0gKi8NCisNCisgIC8qIFVuYXJ5IG9wZXJhdG9ycy4gICovDQorDQor ICArdmVjdG9yMDsgLyogeyBkZy1lcnJvciB7b3BlcmF0aW9uIG5vdCBwZXJt aXR0ZWQgb24gdHlwZSAnYmZsb2F0MTZfdCd9IH0gKi8NCisgIC12ZWN0b3Iw OyAvKiB7IGRnLWVycm9yIHtvcGVyYXRpb24gbm90IHBlcm1pdHRlZCBvbiB0 eXBlICdiZmxvYXQxNl90J30gfSAqLw0KKyAgfnZlY3RvcjA7IC8qIHsgZGct ZXJyb3Ige29wZXJhdGlvbiBub3QgcGVybWl0dGVkIG9uIHR5cGUgJ2JmbG9h dDE2X3QnfSB9ICovDQorICAhdmVjdG9yMDsgLyogeyBkZy1lcnJvciB7b3Bl cmF0aW9uIG5vdCBwZXJtaXR0ZWQgb24gdHlwZSAnYmZsb2F0MTZfdCd9IH0g Ki8NCisgICp2ZWN0b3IwOyAvKiB7IGRnLWVycm9yIHtpbnZhbGlkIHR5cGUg YXJndW1lbnQgb2YgdW5hcnkgJ1wqJ30gfSAqLw0KKyAgX19yZWFsIHZlY3Rv cjA7IC8qIHsgZGctZXJyb3Ige29wZXJhdGlvbiBub3QgcGVybWl0dGVkIG9u IHR5cGUgJ2JmbG9hdDE2X3QnfSB9ICovDQorICBfX2ltYWcgdmVjdG9yMDsg LyogeyBkZy1lcnJvciB7b3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQgb24gdHlw ZSAnYmZsb2F0MTZfdCd9IH0gKi8NCisgICsrdmVjdG9yMDsgLyogeyBkZy1l cnJvciB7b3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQgb24gdHlwZSAnYmZsb2F0 MTZfdCd9IH0gKi8NCisgIC0tdmVjdG9yMDsgLyogeyBkZy1lcnJvciB7b3Bl cmF0aW9uIG5vdCBwZXJtaXR0ZWQgb24gdHlwZSAnYmZsb2F0MTZfdCd9IH0g Ki8NCisgIHZlY3RvcjArKzsgLyogeyBkZy1lcnJvciB7b3BlcmF0aW9uIG5v dCBwZXJtaXR0ZWQgb24gdHlwZSAnYmZsb2F0MTZfdCd9IH0gKi8NCisgIHZl Y3RvcjAtLTsgLyogeyBkZy1lcnJvciB7b3BlcmF0aW9uIG5vdCBwZXJtaXR0 ZWQgb24gdHlwZSAnYmZsb2F0MTZfdCd9IH0gKi8NCisNCisgIC8qIEJpbmFy eSBhcml0aG1ldGljIG9wZXJhdGlvbnMuICAqLw0KKw0KKyAgdmVjdG9yMCA9 IGdsb2JfYmZsb2F0X3ZlYyArICpiZmxvYXRfcHRyOyAvKiB7IGRnLWVycm9y IHtvcGVyYXRpb24gbm90IHBlcm1pdHRlZCBvbiB0eXBlICdiZmxvYXQxNl90 J30gfSAqLw0KKyAgdmVjdG9yMCA9IGdsb2JfYmZsb2F0X3ZlYyArIDAuMTsg LyogeyBkZy1lcnJvciB7b3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQgb24gdHlw ZSAnYmZsb2F0MTZfdCd9IH0gKi8NCisgIHZlY3RvcjAgPSBnbG9iX2JmbG9h dF92ZWMgKyAwOyAvKiB7IGRnLWVycm9yIHtvcGVyYXRpb24gbm90IHBlcm1p dHRlZCBvbiB0eXBlICdiZmxvYXQxNl90J30gfSAqLw0KKyAgdmVjdG9yMCA9 IGdsb2JfYmZsb2F0X3ZlYyArIGlzX2FfZmxvYXRfdmVjOyAvKiB7IGRnLWVy cm9yIHtvcGVyYXRpb24gbm90IHBlcm1pdHRlZCBvbiB0eXBlICdiZmxvYXQx Nl90J30gfSAqLw0KKw0KKyAgcmV0dXJuIHZlY3RvcjA7DQorfQ0KKw0KZGlm ZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vYmZsb2F0 MTZfdmVjdG9yX3R5cGVjaGVja18yLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvYXJtL2JmbG9hdDE2X3ZlY3Rvcl90eXBlY2hlY2tfMi5jDQpuZXcg ZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAuLjE2NjY5ZGNm MDA5DQotLS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvYXJtL2JmbG9hdDE2X3ZlY3Rvcl90eXBlY2hlY2tfMi5jDQpAQCAt MCwwICsxLDI1MiBAQA0KKy8qIHsgZGctZG8gYXNzZW1ibGUgeyB0YXJnZXQg eyBhcm0qLSotKiB9IH0gfSAqLw0KKy8qIHsgZGctc2tpcC1pZiAiIiB7ICot Ki0qIH0geyAiLWZuby1mYXQtbHRvLW9iamVjdHMiIH0gfSAqLw0KKy8qIHsg ZGctcmVxdWlyZS1lZmZlY3RpdmUtdGFyZ2V0IGFybV92OF8yYV9mcDE2X25l b25fb2sgfSAqLw0KKy8qIHsgZGctcmVxdWlyZS1lZmZlY3RpdmUtdGFyZ2V0 IGFybV92OF8yYV9iZjE2X25lb25fb2sgfSAqLw0KKy8qIHsgZGctYWRkaXRp b25hbC1vcHRpb25zICItbWFyY2g9YXJtdjguNi1hK2JmMTYrZnAxNiAtV25v LXBlZGFudGljIC1PMyAtLXNhdmUtdGVtcHMiIH0gICovDQorDQorI2luY2x1 ZGUgPGFybV9uZW9uLmg+DQorDQorYmZsb2F0MTZfdCBnbG9iX2JmbG9hdDsN CitiZmxvYXQxNng4X3QgZ2xvYl9iZmxvYXRfdmVjOw0KKw0KK2Zsb2F0MzJ4 NF90IGlzX2FfZmxvYXRfdmVjOw0KKw0KK2Zsb2F0MTZ4OF90ICpmbG9hdF9w dHI7DQorZmxvYXQxNng4X3QgaXNfYV9mbG9hdDE2X3ZlYzsNCisNCitpbnQz Mng0X3QgaXNfYW5faW50X3ZlYzsNCitpbnQ2NHgyX3QgaXNfYV9sb25nX2lu dF9wYWlyOw0KK2ludDE2eDhfdCBpc19hX3Nob3J0X3ZlYzsNCisNCitpbnQg aXNfYW5faW50Ow0KK3Nob3J0IGlzX2Ffc2hvcnRfaW50Ow0KK2Zsb2F0IGlz X2FfZmxvYXQ7DQorZmxvYXQgaXNfYV9mbG9hdDE2Ow0KK2RvdWJsZSBpc19h X2RvdWJsZTsNCisNCitiZmxvYXQxNng4X3QgZm9vMyAodm9pZCkgeyByZXR1 cm4gKGJmbG9hdDE2eDhfdCkgMHgxMjM0NTY3ODEyMzQ1Njc4MTIzNDU2Nzgx MjM0NTY3ODsgfQ0KKyAvKiB7IGRnLWVycm9yIHtpbnRlZ2VyIGNvbnN0YW50 IGlzIHRvbyBsYXJnZSBmb3IgaXRzIHR5cGV9ICIiIHt0YXJnZXQgKi0qLSp9 IDI3IH0gKi8NCisgLyogeyBkZy1lcnJvciB7Y2Fubm90IGNvbnZlcnQgYSB2 YWx1ZSBvZiB0eXBlICdsb25nIGxvbmcgaW50JyB0byB2ZWN0b3IgdHlwZSAn X19zaW1kMTI4X2JmbG9hdDE2X3QnIHdoaWNoIGhhcyBkaWZmZXJlbnQgc2l6 ZX0gIiIge3RhcmdldCAqLSotKn0gMjcgfSAqLw0KKw0KK2JmbG9hdDE2eDhf dCBmb290ZXN0IChiZmxvYXQxNng4X3QgdmVjdG9yMCkNCit7DQorICAvKiBJ bml0aWFsaXNhdGlvbiAgKi8NCisNCisgIGJmbG9hdDE2eDhfdCB2ZWN0b3Ix XzE7DQorICBiZmxvYXQxNng4X3QgdmVjdG9yMV8yID0gZ2xvYl9iZmxvYXRf dmVjOw0KKyAgYmZsb2F0MTZ4OF90IHZlY3RvcjFfMyA9IGlzX2FfZmxvYXRf dmVjOyAvKiB7IGRnLWVycm9yIHtpbmNvbXBhdGlibGUgdHlwZXMgd2hlbiBp bml0aWFsaXppbmcgdHlwZSAnYmZsb2F0MTZ4OF90JyB1c2luZyB0eXBlICdm bG9hdDMyeDRfdCd9IH0gKi8NCisgIGJmbG9hdDE2eDhfdCB2ZWN0b3IxXzQg PSBpc19hbl9pbnRfdmVjOyAgLyogeyBkZy1lcnJvciB7aW5jb21wYXRpYmxl IHR5cGVzIHdoZW4gaW5pdGlhbGl6aW5nIHR5cGUgJ2JmbG9hdDE2eDhfdCcg dXNpbmcgdHlwZSAnaW50MzJ4NF90J30gfSAqLw0KKyAgYmZsb2F0MTZ4OF90 IHZlY3RvcjFfNSA9IGlzX2FfZmxvYXQxNl92ZWM7IC8qIHsgZGctZXJyb3Ig e2luY29tcGF0aWJsZSB0eXBlcyB3aGVuIGluaXRpYWxpemluZyB0eXBlICdi ZmxvYXQxNng4X3QnIHVzaW5nIHR5cGUgJ2Zsb2F0MTZ4OF90J30gfSAqLw0K KyAgYmZsb2F0MTZ4OF90IHZlY3RvcjFfNyA9IGlzX2FfbG9uZ19pbnRfcGFp cjsgLyogeyBkZy1lcnJvciB7aW5jb21wYXRpYmxlIHR5cGVzIHdoZW4gaW5p dGlhbGl6aW5nIHR5cGUgJ2JmbG9hdDE2eDhfdCcgdXNpbmcgdHlwZSAnaW50 NjR4Ml90J30gfSAqLw0KKyAgYmZsb2F0MTZ4OF90IHZlY3RvcjFfOCA9IGlz X2Ffc2hvcnRfdmVjOyAvKiB7IGRnLWVycm9yIHtpbmNvbXBhdGlibGUgdHlw ZXMgd2hlbiBpbml0aWFsaXppbmcgdHlwZSAnYmZsb2F0MTZ4OF90JyB1c2lu ZyB0eXBlICdpbnQxNng4X3QnfSB9ICovDQorDQorICBpbnQzMng0X3QgaW5p dGlfMV8xID0gZ2xvYl9iZmxvYXRfdmVjOyAgIC8qIHsgZGctZXJyb3Ige2lu Y29tcGF0aWJsZSB0eXBlcyB3aGVuIGluaXRpYWxpemluZyB0eXBlICdpbnQz Mng0X3QnIHVzaW5nIHR5cGUgJ2JmbG9hdDE2eDhfdCd9IH0gKi8NCisgIGZs b2F0MzJ4NF90IGluaXRpXzFfMiA9IGdsb2JfYmZsb2F0X3ZlYzsgLyogeyBk Zy1lcnJvciB7aW5jb21wYXRpYmxlIHR5cGVzIHdoZW4gaW5pdGlhbGl6aW5n IHR5cGUgJ2Zsb2F0MzJ4NF90JyB1c2luZyB0eXBlICdiZmxvYXQxNng4X3Qn fSB9ICovDQorICBmbG9hdDE2eDhfdCBpbml0aV8xXzMgPSBnbG9iX2JmbG9h dF92ZWM7IC8qIHsgZGctZXJyb3Ige2luY29tcGF0aWJsZSB0eXBlcyB3aGVu IGluaXRpYWxpemluZyB0eXBlICdmbG9hdDE2eDhfdCcgdXNpbmcgdHlwZSAn YmZsb2F0MTZ4OF90J30gfSAqLw0KKyAgaW50NjR4Ml90IGluaXRpXzFfNSA9 IGdsb2JfYmZsb2F0X3ZlYzsgIC8qIHsgZGctZXJyb3Ige2luY29tcGF0aWJs ZSB0eXBlcyB3aGVuIGluaXRpYWxpemluZyB0eXBlICdpbnQ2NHgyX3QnIHVz aW5nIHR5cGUgJ2JmbG9hdDE2eDhfdCd9IH0gKi8NCisgIGludDE2eDhfdCBp bml0aV8xXzYgPSBnbG9iX2JmbG9hdF92ZWM7ICAvKiB7IGRnLWVycm9yIHtp bmNvbXBhdGlibGUgdHlwZXMgd2hlbiBpbml0aWFsaXppbmcgdHlwZSAnaW50 MTZ4OF90JyB1c2luZyB0eXBlICdiZmxvYXQxNng4X3QnfSB9ICovDQorDQor ICBiZmxvYXQxNng4X3QgdmVjdG9yMl8xID0ge307DQorICBiZmxvYXQxNng4 X3QgdmVjdG9yMl8yID0geyBnbG9iX2JmbG9hdCB9Ow0KKyAgYmZsb2F0MTZ4 OF90IHZlY3RvcjJfMyA9IHsgZ2xvYl9iZmxvYXQsIGdsb2JfYmZsb2F0LCBn bG9iX2JmbG9hdCwgZ2xvYl9iZmxvYXQgfTsNCisgIGJmbG9hdDE2eDhfdCB2 ZWN0b3IyXzQgPSB7IDAgfTsgLyogeyBkZy1lcnJvciB7aW52YWxpZCBjb252 ZXJzaW9uIHRvIHR5cGUgJ2JmbG9hdDE2X3QnfSB9ICovDQorICBiZmxvYXQx Nng4X3QgdmVjdG9yMl81ID0geyAwLjEgfTsgLyogeyBkZy1lcnJvciB7aW52 YWxpZCBjb252ZXJzaW9uIHRvIHR5cGUgJ2JmbG9hdDE2X3QnfSB9ICovDQor ICBiZmxvYXQxNng4X3QgdmVjdG9yMl82ID0geyBpc19hX2Zsb2F0MTYgfTsg LyogeyBkZy1lcnJvciB7aW52YWxpZCBjb252ZXJzaW9uIHRvIHR5cGUgJ2Jm bG9hdDE2X3QnfSB9ICovDQorICBiZmxvYXQxNng4X3QgdmVjdG9yMl83ID0g eyBpc19hX2Zsb2F0IH07IC8qIHsgZGctZXJyb3Ige2ludmFsaWQgY29udmVy c2lvbiB0byB0eXBlICdiZmxvYXQxNl90J30gfSAqLw0KKyAgYmZsb2F0MTZ4 OF90IHZlY3RvcjJfOCA9IHsgaXNfYW5faW50IH07IC8qIHsgZGctZXJyb3Ig e2ludmFsaWQgY29udmVyc2lvbiB0byB0eXBlICdiZmxvYXQxNl90J30gfSAq Lw0KKyAgYmZsb2F0MTZ4OF90IHZlY3RvcjJfOSA9IHsgaXNfYV9zaG9ydF9p bnQgfTsgLyogeyBkZy1lcnJvciB7aW52YWxpZCBjb252ZXJzaW9uIHRvIHR5 cGUgJ2JmbG9hdDE2X3QnfSB9ICovDQorICBiZmxvYXQxNng4X3QgdmVjdG9y Ml8xMCA9IHsgMC4wLCAwLCBpc19hX3Nob3J0X2ludCwgaXNfYV9mbG9hdCB9 OyAvKiB7IGRnLWVycm9yICJpbnZhbGlkIGNvbnZlcnNpb24gdG8gdHlwZSAn YmZsb2F0MTZfdCciIH0gKi8NCisNCisgIGludDMyeDRfdCBpbml0aV8yXzEg PSB7IGdsb2JfYmZsb2F0IH07ICAgLyogeyBkZy1lcnJvciB7aW52YWxpZCBj b252ZXJzaW9uIGZyb20gdHlwZSAnYmZsb2F0MTZfdCd9IH0gKi8NCisgIGZs b2F0MzJ4NF90IGluaXRpXzJfMiA9IHsgZ2xvYl9iZmxvYXQgfTsgLyogeyBk Zy1lcnJvciB7aW52YWxpZCBjb252ZXJzaW9uIGZyb20gdHlwZSAnYmZsb2F0 MTZfdCd9IH0gKi8NCisgIGZsb2F0MTZ4OF90IGluaXRpXzJfMyA9IHsgZ2xv Yl9iZmxvYXQgfTsgLyogeyBkZy1lcnJvciB7aW52YWxpZCBjb252ZXJzaW9u IGZyb20gdHlwZSAnYmZsb2F0MTZfdCd9IH0gKi8NCisgIGludDY0eDJfdCBp bml0aV8yXzUgPSB7IGdsb2JfYmZsb2F0IH07ICAgLyogeyBkZy1lcnJvciB7 aW52YWxpZCBjb252ZXJzaW9uIGZyb20gdHlwZSAnYmZsb2F0MTZfdCd9IH0g Ki8NCisgIGludDE2eDhfdCBpbml0aV8yXzYgPSB7IGdsb2JfYmZsb2F0IH07 ICAgLyogeyBkZy1lcnJvciB7aW52YWxpZCBjb252ZXJzaW9uIGZyb20gdHlw ZSAnYmZsb2F0MTZfdCd9IH0gKi8NCisNCisgIC8qIEFzc2lnbm1lbnRzIHRv L2Zyb20gdmVjdG9ycy4gICovDQorDQorICBnbG9iX2JmbG9hdF92ZWMgPSBn bG9iX2JmbG9hdF92ZWM7DQorICBnbG9iX2JmbG9hdF92ZWMgPSAwOyAgIC8q IHsgZGctZXJyb3Ige2luY29tcGF0aWJsZSB0eXBlcyB3aGVuIGFzc2lnbmlu ZyB0byB0eXBlICdiZmxvYXQxNng4X3QnIGZyb20gdHlwZSAnaW50J30gfSAq Lw0KKyAgZ2xvYl9iZmxvYXRfdmVjID0gMC4xOyAvKiB7IGRnLWVycm9yIHtp bmNvbXBhdGlibGUgdHlwZXMgd2hlbiBhc3NpZ25pbmcgdG8gdHlwZSAnYmZs b2F0MTZ4OF90JyBmcm9tIHR5cGUgJ2RvdWJsZSd9IH0gKi8NCisgIGdsb2Jf YmZsb2F0X3ZlYyA9IGlzX2FfZmxvYXRfdmVjOyAvKiB7IGRnLWVycm9yIHtp bmNvbXBhdGlibGUgdHlwZXMgd2hlbiBhc3NpZ25pbmcgdG8gdHlwZSAnYmZs b2F0MTZ4OF90JyBmcm9tIHR5cGUgJ2Zsb2F0MzJ4NF90J30gfSAqLw0KKyAg Z2xvYl9iZmxvYXRfdmVjID0gaXNfYW5faW50X3ZlYzsgLyogeyBkZy1lcnJv ciB7aW5jb21wYXRpYmxlIHR5cGVzIHdoZW4gYXNzaWduaW5nIHRvIHR5cGUg J2JmbG9hdDE2eDhfdCcgZnJvbSB0eXBlICdpbnQzMng0X3QnfSB9ICovDQor ICBnbG9iX2JmbG9hdF92ZWMgPSBpc19hX2Zsb2F0MTZfdmVjOyAvKiB7IGRn LWVycm9yIHtpbmNvbXBhdGlibGUgdHlwZXMgd2hlbiBhc3NpZ25pbmcgdG8g dHlwZSAnYmZsb2F0MTZ4OF90JyBmcm9tIHR5cGUgJ2Zsb2F0MTZ4OF90J30g fSAqLw0KKyAgZ2xvYl9iZmxvYXRfdmVjID0gaXNfYV9sb25nX2ludF9wYWly OyAvKiB7IGRnLWVycm9yIHtpbmNvbXBhdGlibGUgdHlwZXMgd2hlbiBhc3Np Z25pbmcgdG8gdHlwZSAnYmZsb2F0MTZ4OF90JyBmcm9tIHR5cGUgJ2ludDY0 eDJfdCd9IH0gKi8NCisgIGdsb2JfYmZsb2F0X3ZlYyA9IGlzX2Ffc2hvcnRf dmVjOyAvKiB7IGRnLWVycm9yIHtpbmNvbXBhdGlibGUgdHlwZXMgd2hlbiBh c3NpZ25pbmcgdG8gdHlwZSAnYmZsb2F0MTZ4OF90JyBmcm9tIHR5cGUgJ2lu dDE2eDhfdCd9IH0gKi8NCisNCisgIGlzX2FuX2ludF92ZWMgPSBnbG9iX2Jm bG9hdF92ZWM7IC8qIHsgZGctZXJyb3Ige2luY29tcGF0aWJsZSB0eXBlcyB3 aGVuIGFzc2lnbmluZyB0byB0eXBlICdpbnQzMng0X3QnIGZyb20gdHlwZSAn YmZsb2F0MTZ4OF90J30gfSAqLw0KKyAgaXNfYV9mbG9hdF92ZWMgPSBnbG9i X2JmbG9hdF92ZWM7IC8qIHsgZGctZXJyb3Ige2luY29tcGF0aWJsZSB0eXBl cyB3aGVuIGFzc2lnbmluZyB0byB0eXBlICdmbG9hdDMyeDRfdCcgZnJvbSB0 eXBlICdiZmxvYXQxNng4X3QnfSB9ICovDQorICBpc19hX2Zsb2F0MTZfdmVj ID0gZ2xvYl9iZmxvYXRfdmVjOyAvKiB7IGRnLWVycm9yIHtpbmNvbXBhdGli bGUgdHlwZXMgd2hlbiBhc3NpZ25pbmcgdG8gdHlwZSAnZmxvYXQxNng4X3Qn IGZyb20gdHlwZSAnYmZsb2F0MTZ4OF90J30gfSAqLw0KKyAgaXNfYV9sb25n X2ludF9wYWlyID0gZ2xvYl9iZmxvYXRfdmVjOyAvKiB7IGRnLWVycm9yIHtp bmNvbXBhdGlibGUgdHlwZXMgd2hlbiBhc3NpZ25pbmcgdG8gdHlwZSAnaW50 NjR4Ml90JyBmcm9tIHR5cGUgJ2JmbG9hdDE2eDhfdCd9IH0gKi8NCisgIGlz X2Ffc2hvcnRfdmVjID0gZ2xvYl9iZmxvYXRfdmVjOy8qIHsgZGctZXJyb3Ig e2luY29tcGF0aWJsZSB0eXBlcyB3aGVuIGFzc2lnbmluZyB0byB0eXBlICdp bnQxNng4X3QnIGZyb20gdHlwZSAnYmZsb2F0MTZ4OF90J30gfSAqLw0KKw0K KyAgLyogQXNzaWdubWVudHMgdG8vZnJvbSBlbGVtZW50cy4gICovDQorDQor ICB2ZWN0b3IyXzNbMF0gPSBnbG9iX2JmbG9hdDsNCisgIHZlY3RvcjJfM1sw XSA9IGlzX2FuX2ludDsgLyogeyBkZy1lcnJvciB7aW52YWxpZCBjb252ZXJz aW9uIHRvIHR5cGUgJ2JmbG9hdDE2X3QnfSB9ICovDQorICB2ZWN0b3IyXzNb MF0gPSBpc19hX3Nob3J0X2ludDsgLyogeyBkZy1lcnJvciB7aW52YWxpZCBj b252ZXJzaW9uIHRvIHR5cGUgJ2JmbG9hdDE2X3QnfSB9ICovDQorICB2ZWN0 b3IyXzNbMF0gPSBpc19hX2Zsb2F0OyAvKiB7IGRnLWVycm9yIHtpbnZhbGlk IGNvbnZlcnNpb24gdG8gdHlwZSAnYmZsb2F0MTZfdCd9IH0gKi8NCisgIHZl Y3RvcjJfM1swXSA9IGlzX2FfZmxvYXQxNjsgLyogeyBkZy1lcnJvciB7aW52 YWxpZCBjb252ZXJzaW9uIHRvIHR5cGUgJ2JmbG9hdDE2X3QnfSB9ICovDQor ICB2ZWN0b3IyXzNbMF0gPSAwOyAvKiB7IGRnLWVycm9yIHtpbnZhbGlkIGNv bnZlcnNpb24gdG8gdHlwZSAnYmZsb2F0MTZfdCd9IH0gKi8NCisgIHZlY3Rv cjJfM1swXSA9IDAuMTsgLyogeyBkZy1lcnJvciB7aW52YWxpZCBjb252ZXJz aW9uIHRvIHR5cGUgJ2JmbG9hdDE2X3QnfSB9ICovDQorDQorICBnbG9iX2Jm bG9hdCA9IHZlY3RvcjJfM1swXTsNCisgIGlzX2FuX2ludCA9IHZlY3RvcjJf M1swXTsgLyogeyBkZy1lcnJvciB7aW52YWxpZCBjb252ZXJzaW9uIGZyb20g dHlwZSAnYmZsb2F0MTZfdCd9IH0gKi8NCisgIGlzX2Ffc2hvcnRfaW50ID0g dmVjdG9yMl8zWzBdOyAvKiB7IGRnLWVycm9yIHtpbnZhbGlkIGNvbnZlcnNp b24gZnJvbSB0eXBlICdiZmxvYXQxNl90J30gfSAqLw0KKyAgaXNfYV9mbG9h dCA9IHZlY3RvcjJfM1swXTsgLyogeyBkZy1lcnJvciB7aW52YWxpZCBjb252 ZXJzaW9uIGZyb20gdHlwZSAnYmZsb2F0MTZfdCd9IH0gKi8NCisgIGlzX2Ff ZmxvYXQxNiA9IHZlY3RvcjJfM1swXTsgLyogeyBkZy1lcnJvciB7aW52YWxp ZCBjb252ZXJzaW9uIGZyb20gdHlwZSAnYmZsb2F0MTZfdCd9IH0gKi8NCisN CisgIC8qIENvbXBvdW5kIGxpdGVyYWxzLiAgKi8NCisNCisgIChiZmxvYXQx Nng4X3QpIHt9Ow0KKw0KKyAgKGJmbG9hdDE2eDhfdCkgeyAwIH07IC8qIHsg ZGctZXJyb3Ige2ludmFsaWQgY29udmVyc2lvbiB0byB0eXBlICdiZmxvYXQx Nl90J30gfSAqLw0KKyAgKGJmbG9hdDE2eDhfdCkgeyAwLjEgfTsgLyogeyBk Zy1lcnJvciB7aW52YWxpZCBjb252ZXJzaW9uIHRvIHR5cGUgJ2JmbG9hdDE2 X3QnfSB9ICovDQorICAoYmZsb2F0MTZ4OF90KSB7IGlzX2FfZmxvYXRfdmVj IH07IC8qIHsgZGctZXJyb3Ige2luY29tcGF0aWJsZSB0eXBlcyB3aGVuIGlu aXRpYWxpemluZyB0eXBlICdfX2JmMTYnIHVzaW5nIHR5cGUgJ2Zsb2F0MzJ4 NF90J30gfSAqLw0KKyAgKGJmbG9hdDE2eDhfdCkgeyBpc19hbl9pbnRfdmVj IH07IC8qIHsgZGctZXJyb3Ige2luY29tcGF0aWJsZSB0eXBlcyB3aGVuIGlu aXRpYWxpemluZyB0eXBlICdfX2JmMTYnIHVzaW5nIHR5cGUgJ2ludDMyeDRf dCd9IH0gKi8NCisgIChiZmxvYXQxNng4X3QpIHsgaXNfYV9sb25nX2ludF9w YWlyIH07IC8qIHsgZGctZXJyb3Ige2luY29tcGF0aWJsZSB0eXBlcyB3aGVu IGluaXRpYWxpemluZyB0eXBlICdfX2JmMTYnIHVzaW5nIHR5cGUgJ2ludDY0 eDJfdCd9IH0gKi8NCisgIChiZmxvYXQxNng4X3QpIHsgaXNfYV9mbG9hdDE2 X3ZlYyB9OyAvKiB7IGRnLWVycm9yIHtpbmNvbXBhdGlibGUgdHlwZXMgd2hl biBpbml0aWFsaXppbmcgdHlwZSAnX19iZjE2JyB1c2luZyB0eXBlICdmbG9h dDE2eDhfdCd9IH0gKi8NCisgIChiZmxvYXQxNng4X3QpIHsgaXNfYV9zaG9y dF92ZWMgfTsgLyogeyBkZy1lcnJvciB7aW5jb21wYXRpYmxlIHR5cGVzIHdo ZW4gaW5pdGlhbGl6aW5nIHR5cGUgJ19fYmYxNicgdXNpbmcgdHlwZSAnaW50 MTZ4OF90J30gfSAqLw0KKw0KKyAgKGJmbG9hdDE2eDhfdCkgeyBnbG9iX2Jm bG9hdF92ZWMgfTsgLyogeyBkZy1lcnJvciB7aW5jb21wYXRpYmxlIHR5cGVz IHdoZW4gaW5pdGlhbGl6aW5nIHR5cGUgJ19fYmYxNicgdXNpbmcgdHlwZSAn YmZsb2F0MTZ4OF90J30gfSAqLw0KKyAgKGludDMyeDRfdCkgeyBnbG9iX2Jm bG9hdF92ZWMgfTsgLyogeyBkZy1lcnJvciB7aW5jb21wYXRpYmxlIHR5cGVz IHdoZW4gaW5pdGlhbGl6aW5nIHR5cGUgJ2ludCcgdXNpbmcgdHlwZSAnYmZs b2F0MTZ4OF90J30gfSAqLw0KKyAgKGZsb2F0MzJ4NF90KSB7IGdsb2JfYmZs b2F0X3ZlYyB9OyAvKiB7IGRnLWVycm9yIHtpbmNvbXBhdGlibGUgdHlwZXMg d2hlbiBpbml0aWFsaXppbmcgdHlwZSAnZmxvYXQnIHVzaW5nIHR5cGUgJ2Jm bG9hdDE2eDhfdCd9IH0gKi8NCisgIChpbnQ2NHgyX3QpIHsgZ2xvYl9iZmxv YXRfdmVjIH07IC8qIHsgZGctZXJyb3Ige2luY29tcGF0aWJsZSB0eXBlcyB3 aGVuIGluaXRpYWxpemluZyB0eXBlICdsb25nIGxvbmcgaW50JyB1c2luZyB0 eXBlICdiZmxvYXQxNng4X3QnfSB9ICovDQorICAoZmxvYXQxNng4X3QpIHsg Z2xvYl9iZmxvYXRfdmVjIH07IC8qIHsgZGctZXJyb3Ige2luY29tcGF0aWJs ZSB0eXBlcyB3aGVuIGluaXRpYWxpemluZyB0eXBlICdfX2ZwMTYnIHVzaW5n IHR5cGUgJ2JmbG9hdDE2eDhfdCd9IH0gKi8NCisgIChpbnQxNng4X3QpIHsg Z2xvYl9iZmxvYXRfdmVjIH07IC8qIHsgZGctZXJyb3Ige2luY29tcGF0aWJs ZSB0eXBlcyB3aGVuIGluaXRpYWxpemluZyB0eXBlICdzaG9ydCBpbnQnIHVz aW5nIHR5cGUgJ2JmbG9hdDE2eDhfdCd9IH0gKi8NCisNCisgIC8qIENhc3Rp bmcuICAqLw0KKw0KKyAgKHZvaWQpIGdsb2JfYmZsb2F0X3ZlYzsNCisgIChi ZmxvYXQxNng4X3QpIGdsb2JfYmZsb2F0X3ZlYzsNCisNCisgIChiZmxvYXQx Nl90KSBnbG9iX2JmbG9hdF92ZWM7IC8qIHsgZGctZXJyb3Ige2FnZ3JlZ2F0 ZSB2YWx1ZSB1c2VkIHdoZXJlIGEgZmxvYXRpbmctcG9pbnQgd2FzIGV4cGVj dGVkfSB9ICovDQorICAoc2hvcnQpIGdsb2JfYmZsb2F0X3ZlYzsgLyogeyBk Zy1lcnJvciB7Y2Fubm90IGNvbnZlcnQgYSB2ZWN0b3Igb2YgdHlwZSAnYmZs b2F0MTZ4OF90JyB0byB0eXBlICdzaG9ydCBpbnQnIHdoaWNoIGhhcyBkaWZm ZXJlbnQgc2l6ZX0gfSAqLw0KKyAgKGludCkgZ2xvYl9iZmxvYXRfdmVjOyAv KiB7IGRnLWVycm9yIHtjYW5ub3QgY29udmVydCBhIHZlY3RvciBvZiB0eXBl ICdiZmxvYXQxNng4X3QnIHRvIHR5cGUgJ2ludCcgd2hpY2ggaGFzIGRpZmZl cmVudCBzaXplfSB9ICovDQorICAoZmxvYXQxNl90KSBnbG9iX2JmbG9hdF92 ZWM7IC8qIHsgZGctZXJyb3Ige2FnZ3JlZ2F0ZSB2YWx1ZSB1c2VkIHdoZXJl IGEgZmxvYXRpbmctcG9pbnQgd2FzIGV4cGVjdGVkfSB9ICovDQorICAoZmxv YXQpIGdsb2JfYmZsb2F0X3ZlYzsgLyogeyBkZy1lcnJvciB7YWdncmVnYXRl IHZhbHVlIHVzZWQgd2hlcmUgYSBmbG9hdGluZy1wb2ludCB3YXMgZXhwZWN0 ZWR9IH0gKi8NCisgIChkb3VibGUpIGdsb2JfYmZsb2F0X3ZlYzsgLyogeyBk Zy1lcnJvciB7YWdncmVnYXRlIHZhbHVlIHVzZWQgd2hlcmUgYSBmbG9hdGlu Zy1wb2ludCB3YXMgZXhwZWN0ZWR9IH0gKi8NCisNCisgIChpbnQzMng0X3Qp IGdsb2JfYmZsb2F0X3ZlYzsNCisgIChmbG9hdDMyeDRfdCkgZ2xvYl9iZmxv YXRfdmVjOw0KKyAgKGZsb2F0MTZ4OF90KSBnbG9iX2JmbG9hdF92ZWM7DQor ICAoaW50NjR4Ml90KSBnbG9iX2JmbG9hdF92ZWM7DQorICAoaW50MTZ4OF90 KSBnbG9iX2JmbG9hdF92ZWM7DQorDQorICAoYmZsb2F0MTZ4OF90KSBpc19h bl9pbnRfdmVjOw0KKyAgKGJmbG9hdDE2eDhfdCkgaXNfYV9mbG9hdF92ZWM7 DQorICAoYmZsb2F0MTZ4OF90KSBpc19hX2Zsb2F0MTZfdmVjOw0KKyAgKGJm bG9hdDE2eDhfdCkgaXNfYV9sb25nX2ludF9wYWlyOw0KKyAgKGJmbG9hdDE2 eDhfdCkgaXNfYV9zaG9ydF92ZWM7DQorDQorICAvKiBBcnJheXMgYW5kIFN0 cnVjdHMuICAqLw0KKw0KKyAgdHlwZWRlZiBiZmxvYXQxNng4X3QgYXJyYXlf dHlwZVsyXTsNCisgIGV4dGVybiBiZmxvYXQxNng4X3QgZXh0ZXJuX2FycmF5 W107DQorDQorICBiZmxvYXQxNng4X3QgYXJyYXlbMl07DQorICBiZmxvYXQx Nng4X3QgemVyb19sZW5ndGhfYXJyYXlbMF07DQorICBiZmxvYXQxNng4X3Qg ZW1wdHlfaW5pdF9hcnJheVtdID0ge307DQorICB0eXBlZGVmIGJmbG9hdDE2 eDhfdCBzb21lX290aGVyX3R5cGVbaXNfYW5faW50XTsNCisNCisgIHN0cnVj dCBzdHJ1Y3QxIHsNCisgICAgYmZsb2F0MTZ4OF90IGE7DQorICB9Ow0KKw0K KyAgdW5pb24gdW5pb24xIHsNCisgICAgYmZsb2F0MTZ4OF90IGE7DQorICB9 Ow0KKw0KKyAgLyogQWRkcmVzc2luZyBhbmQgZGVyZWZlcmVuY2luZy4gICov DQorDQorICBiZmxvYXQxNng4X3QgKmJmbG9hdF9wdHIgPSAmdmVjdG9yMDsN CisgIHZlY3RvcjAgPSAqYmZsb2F0X3B0cjsNCisNCisgIC8qIFBvaW50ZXIg YXNzaWdubWVudC4gICovDQorDQorICBiZmxvYXQxNng4X3QgKmJmbG9hdF9w dHIyID0gYmZsb2F0X3B0cjsNCisgIGJmbG9hdDE2eDhfdCAqYmZsb2F0X3B0 cjMgPSBhcnJheTsNCisNCisgIC8qIFBvaW50ZXIgYXJpdGhtZXRpYy4gICov DQorDQorICArK2JmbG9hdF9wdHI7DQorICAtLWJmbG9hdF9wdHI7DQorICBi ZmxvYXRfcHRyKys7DQorICBiZmxvYXRfcHRyLS07DQorICBiZmxvYXRfcHRy ICs9IDE7DQorICBiZmxvYXRfcHRyIC09IDE7DQorICBiZmxvYXRfcHRyIC0g YmZsb2F0X3B0cjI7DQorICBiZmxvYXRfcHRyID0gJmJmbG9hdF9wdHIzWzBd Ow0KKyAgYmZsb2F0X3B0ciA9ICZiZmxvYXRfcHRyM1sxXTsNCisNCisgIC8q IFNpbXBsZSBjb21wYXJpc29uLiAgKi8NCisgIHZlY3RvcjAgPiBnbG9iX2Jm bG9hdF92ZWM7IC8qIHsgZGctZXJyb3Ige29wZXJhdGlvbiBub3QgcGVybWl0 dGVkIG9uIHR5cGUgJ2JmbG9hdDE2X3QnfSB9ICovDQorICBnbG9iX2JmbG9h dF92ZWMgPT0gdmVjdG9yMDsgLyogeyBkZy1lcnJvciB7b3BlcmF0aW9uIG5v dCBwZXJtaXR0ZWQgb24gdHlwZSAnYmZsb2F0MTZfdCd9IH0gKi8NCisgIHZl Y3RvcjAgPiBpc19hX2Zsb2F0X3ZlYzsgLyogeyBkZy1lcnJvciB7b3BlcmF0 aW9uIG5vdCBwZXJtaXR0ZWQgb24gdHlwZSAnYmZsb2F0MTZfdCd9IH0gKi8N CisgIGlzX2FfZmxvYXRfdmVjID09IHZlY3RvcjA7IC8qIHsgZGctZXJyb3Ig e29wZXJhdGlvbiBub3QgcGVybWl0dGVkIG9uIHR5cGUgJ2JmbG9hdDE2X3Qn fSB9ICovDQorICB2ZWN0b3IwID4gMDsgLyogeyBkZy1lcnJvciB7b3BlcmF0 aW9uIG5vdCBwZXJtaXR0ZWQgb24gdHlwZSAnYmZsb2F0MTZfdCd9IH0gKi8N CisgIDAgPT0gdmVjdG9yMDsgLyogeyBkZy1lcnJvciB7b3BlcmF0aW9uIG5v dCBwZXJtaXR0ZWQgb24gdHlwZSAnYmZsb2F0MTZfdCd9IH0gKi8NCisgIHZl Y3RvcjAgPiAwLjE7IC8qIHsgZGctZXJyb3Ige29wZXJhdGlvbiBub3QgcGVy bWl0dGVkIG9uIHR5cGUgJ2JmbG9hdDE2X3QnfSB9ICovDQorICAwLjEgPT0g dmVjdG9yMDsgLyogeyBkZy1lcnJvciB7b3BlcmF0aW9uIG5vdCBwZXJtaXR0 ZWQgb24gdHlwZSAnYmZsb2F0MTZfdCd9IH0gKi8NCisgIHZlY3RvcjAgPiBp c19hbl9pbnRfdmVjOyAvKiB7IGRnLWVycm9yIHtvcGVyYXRpb24gbm90IHBl cm1pdHRlZCBvbiB0eXBlICdiZmxvYXQxNl90J30gfSAqLw0KKyAgaXNfYW5f aW50X3ZlYyA9PSB2ZWN0b3IwOyAvKiB7IGRnLWVycm9yIHtvcGVyYXRpb24g bm90IHBlcm1pdHRlZCBvbiB0eXBlICdiZmxvYXQxNl90J30gfSAqLw0KKw0K KyAgLyogUG9pbnRlciBjb21wYXJpc29uLiAgKi8NCisNCisgIGJmbG9hdF9w dHIgPT0gJnZlY3RvcjA7DQorICBiZmxvYXRfcHRyICE9ICZ2ZWN0b3IwOw0K KyAgYmZsb2F0X3B0ciA8ICZ2ZWN0b3IwOw0KKyAgYmZsb2F0X3B0ciA8PSAm dmVjdG9yMDsNCisgIGJmbG9hdF9wdHIgPiAmdmVjdG9yMDsNCisgIGJmbG9h dF9wdHIgPj0gJnZlY3RvcjA7DQorICBiZmxvYXRfcHRyID09IGJmbG9hdF9w dHIyOw0KKyAgYmZsb2F0X3B0ciAhPSBiZmxvYXRfcHRyMjsNCisgIGJmbG9h dF9wdHIgPCBiZmxvYXRfcHRyMjsNCisgIGJmbG9hdF9wdHIgPD0gYmZsb2F0 X3B0cjI7DQorICBiZmxvYXRfcHRyID4gYmZsb2F0X3B0cjI7DQorICBiZmxv YXRfcHRyID49IGJmbG9hdF9wdHIyOw0KKw0KKyAgLyogQ29uZGl0aW9uYWwg ZXhwcmVzc2lvbnMuICAqLw0KKw0KKyAgMCA/IHZlY3RvcjAgOiB2ZWN0b3Iw Ow0KKyAgMCA/IHZlY3RvcjAgOiBpc19hX2Zsb2F0X3ZlYzsgLyogeyBkZy1l cnJvciB7dHlwZSBtaXNtYXRjaCBpbiBjb25kaXRpb25hbCBleHByZXNzaW9u fSB9ICovDQorICAwID8gaXNfYV9mbG9hdF92ZWMgOiB2ZWN0b3IwOyAvKiB7 IGRnLWVycm9yIHt0eXBlIG1pc21hdGNoIGluIGNvbmRpdGlvbmFsIGV4cHJl c3Npb259IH0gKi8NCisgIDAgPyB2ZWN0b3IwIDogaXNfYV9mbG9hdDE2X3Zl YzsgLyogeyBkZy1lcnJvciB7dHlwZSBtaXNtYXRjaCBpbiBjb25kaXRpb25h bCBleHByZXNzaW9ufSB9ICovDQorICAwID8gaXNfYV9mbG9hdDE2X3ZlYyA6 IHZlY3RvcjA7IC8qIHsgZGctZXJyb3Ige3R5cGUgbWlzbWF0Y2ggaW4gY29u ZGl0aW9uYWwgZXhwcmVzc2lvbn0gfSAqLw0KKyAgMCA/IHZlY3RvcjAgOiAw OyAvKiB7IGRnLWVycm9yIHt0eXBlIG1pc21hdGNoIGluIGNvbmRpdGlvbmFs IGV4cHJlc3Npb259IH0gKi8NCisgIDAgPyAwIDogdmVjdG9yMDsgLyogeyBk Zy1lcnJvciB7dHlwZSBtaXNtYXRjaCBpbiBjb25kaXRpb25hbCBleHByZXNz aW9ufSB9ICovDQorICAwID8gMC4xIDogdmVjdG9yMDsgLyogeyBkZy1lcnJv ciB7dHlwZSBtaXNtYXRjaCBpbiBjb25kaXRpb25hbCBleHByZXNzaW9ufSB9 ICovDQorICAwID8gdmVjdG9yMCA6IDAuMTsgLyogeyBkZy1lcnJvciB7dHlw ZSBtaXNtYXRjaCBpbiBjb25kaXRpb25hbCBleHByZXNzaW9ufSB9ICovDQor ICAwID8gYmZsb2F0X3B0ciA6IGJmbG9hdF9wdHIyOw0KKyAgMCA/IGJmbG9h dF9wdHIgOiBmbG9hdF9wdHI7IC8qIHsgZGctZXJyb3Ige3BvaW50ZXIgdHlw ZSBtaXNtYXRjaCBpbiBjb25kaXRpb25hbCBleHByZXNzaW9ufSB9ICovDQor ICAwID8gZmxvYXRfcHRyIDogYmZsb2F0X3B0cjsgLyogeyBkZy1lcnJvciB7 cG9pbnRlciB0eXBlIG1pc21hdGNoIGluIGNvbmRpdGlvbmFsIGV4cHJlc3Np b259IH0gKi8NCisNCisgIHZlY3RvcjAgPyB2ZWN0b3IwIDogdmVjdG9yMDsg LyogeyBkZy1lcnJvciB7dXNlZCB2ZWN0b3IgdHlwZSB3aGVyZSBzY2FsYXIg aXMgcmVxdWlyZWR9IH0gKi8NCisgIHZlY3RvcjAgPyBpc19hX2Zsb2F0MTZf dmVjIDogdmVjdG9yMDsgLyogeyBkZy1lcnJvciB7dXNlZCB2ZWN0b3IgdHlw ZSB3aGVyZSBzY2FsYXIgaXMgcmVxdWlyZWR9IH0gKi8NCisgIHZlY3RvcjAg PyB2ZWN0b3IwIDogaXNfYV9mbG9hdDE2X3ZlYzsgLyogeyBkZy1lcnJvciB7 dXNlZCB2ZWN0b3IgdHlwZSB3aGVyZSBzY2FsYXIgaXMgcmVxdWlyZWR9IH0g Ki8NCisgIHZlY3RvcjAgPyBpc19hX2Zsb2F0MTZfdmVjIDogaXNfYV9mbG9h dDE2X3ZlYzsgLyogeyBkZy1lcnJvciB7dXNlZCB2ZWN0b3IgdHlwZSB3aGVy ZSBzY2FsYXIgaXMgcmVxdWlyZWR9IH0gKi8NCisNCisgIC8qIFVuYXJ5IG9w ZXJhdG9ycy4gICovDQorDQorICArdmVjdG9yMDsgLyogeyBkZy1lcnJvciB7 b3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQgb24gdHlwZSAnYmZsb2F0MTZfdCd9 IH0gKi8NCisgIC12ZWN0b3IwOyAvKiB7IGRnLWVycm9yIHtvcGVyYXRpb24g bm90IHBlcm1pdHRlZCBvbiB0eXBlICdiZmxvYXQxNl90J30gfSAqLw0KKyAg fnZlY3RvcjA7IC8qIHsgZGctZXJyb3Ige29wZXJhdGlvbiBub3QgcGVybWl0 dGVkIG9uIHR5cGUgJ2JmbG9hdDE2X3QnfSB9ICovDQorICAhdmVjdG9yMDsg LyogeyBkZy1lcnJvciB7b3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQgb24gdHlw ZSAnYmZsb2F0MTZfdCd9IH0gKi8NCisgICp2ZWN0b3IwOyAvKiB7IGRnLWVy cm9yIHtpbnZhbGlkIHR5cGUgYXJndW1lbnQgb2YgdW5hcnkgJ1wqJ30gfSAq Lw0KKyAgX19yZWFsIHZlY3RvcjA7IC8qIHsgZGctZXJyb3Ige29wZXJhdGlv biBub3QgcGVybWl0dGVkIG9uIHR5cGUgJ2JmbG9hdDE2X3QnfSB9ICovDQor ICBfX2ltYWcgdmVjdG9yMDsgLyogeyBkZy1lcnJvciB7b3BlcmF0aW9uIG5v dCBwZXJtaXR0ZWQgb24gdHlwZSAnYmZsb2F0MTZfdCd9IH0gKi8NCisgICsr dmVjdG9yMDsgLyogeyBkZy1lcnJvciB7b3BlcmF0aW9uIG5vdCBwZXJtaXR0 ZWQgb24gdHlwZSAnYmZsb2F0MTZfdCd9IH0gKi8NCisgIC0tdmVjdG9yMDsg LyogeyBkZy1lcnJvciB7b3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQgb24gdHlw ZSAnYmZsb2F0MTZfdCd9IH0gKi8NCisgIHZlY3RvcjArKzsgLyogeyBkZy1l cnJvciB7b3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQgb24gdHlwZSAnYmZsb2F0 MTZfdCd9IH0gKi8NCisgIHZlY3RvcjAtLTsgLyogeyBkZy1lcnJvciB7b3Bl cmF0aW9uIG5vdCBwZXJtaXR0ZWQgb24gdHlwZSAnYmZsb2F0MTZfdCd9IH0g Ki8NCisNCisgIC8qIEJpbmFyeSBhcml0aG1ldGljIG9wZXJhdGlvbnMuICAq Lw0KKw0KKyAgdmVjdG9yMCA9IGdsb2JfYmZsb2F0X3ZlYyArICpiZmxvYXRf cHRyOyAvKiB7IGRnLWVycm9yIHtvcGVyYXRpb24gbm90IHBlcm1pdHRlZCBv biB0eXBlICdiZmxvYXQxNl90J30gfSAqLw0KKyAgdmVjdG9yMCA9IGdsb2Jf YmZsb2F0X3ZlYyArIDAuMTsgLyogeyBkZy1lcnJvciB7b3BlcmF0aW9uIG5v dCBwZXJtaXR0ZWQgb24gdHlwZSAnYmZsb2F0MTZfdCd9IH0gKi8NCisgIHZl Y3RvcjAgPSBnbG9iX2JmbG9hdF92ZWMgKyAwOyAvKiB7IGRnLWVycm9yIHtv cGVyYXRpb24gbm90IHBlcm1pdHRlZCBvbiB0eXBlICdiZmxvYXQxNl90J30g fSAqLw0KKyAgdmVjdG9yMCA9IGdsb2JfYmZsb2F0X3ZlYyArIGlzX2FfZmxv YXRfdmVjOyAvKiB7IGRnLWVycm9yIHtvcGVyYXRpb24gbm90IHBlcm1pdHRl ZCBvbiB0eXBlICdiZmxvYXQxNl90J30gfSAqLw0KKw0KKyAgcmV0dXJuIHZl Y3RvcjA7DQorfQ0KKw0K --_002_fa4c76022735fb2fa017df9b1a38cc22armcom_--