From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 79ACFC77B61 for ; Mon, 10 Apr 2023 20:27:55 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id EB9C440AB9; Mon, 10 Apr 2023 20:27:54 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org EB9C440AB9 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=osuosl.org; s=default; t=1681158475; bh=TVCrurebGpA1IVnTx1wWQpBwkQ7uOpzxwcm8GBxhHzc=; h=Date:From:To:References:In-Reply-To:Subject:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: Cc:From; b=0K25iJoI0WqlgN2OpgNMLkA09uIwMpxQW3ui+T6Rp6V1MvOlQPq7/1JlcKJQ9m6pF ScKP8dpbascU1OLnu8VdWnNQ9FuzGr+VjYg2aw8Tm4mSeFoNiO9HoO8N7UrG5VIDD8 eTFWbWvCkKKmeftyEuhyw9quQms7GIJ0w88O9yhsI/llFimB/4TtzqmCn9AwOpOdaL hzXOuX9nxnKh3iL6x1YWTxUOPW9mCmn3NBUNre0GU1sHYyWnTuhv35xbzivho2HiuP 7CbGdZAvFvBY9ZuJJL02AbayBU8+XeVu2tGjwIFsqSHR8z0wfadd5aTtBWVNC2jSJI HN2YbMtamnpCg== X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id iet3AT8grHP9; Mon, 10 Apr 2023 20:27:51 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by smtp4.osuosl.org (Postfix) with ESMTP id 74F5240F4E; Mon, 10 Apr 2023 20:27:51 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org 74F5240F4E Received: from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137]) by ash.osuosl.org (Postfix) with ESMTP id 334E01BF345 for ; Mon, 10 Apr 2023 20:27:49 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id 05BEE40AB9 for ; Mon, 10 Apr 2023 20:27:49 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org 05BEE40AB9 X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id tHSrgL-lF-y7 for ; Mon, 10 Apr 2023 20:27:45 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.8.0 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org 4C67240F4E Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by smtp4.osuosl.org (Postfix) with ESMTPS id 4C67240F4E for ; Mon, 10 Apr 2023 20:27:45 +0000 (UTC) X-IronPort-AV: E=McAfee;i="6600,9927,10676"; a="323809513" X-IronPort-AV: E=Sophos;i="5.98,333,1673942400"; d="scan'208";a="323809513" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Apr 2023 13:27:40 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10676"; a="718707782" X-IronPort-AV: E=Sophos;i="5.98,333,1673942400"; d="scan'208";a="718707782" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by orsmga008.jf.intel.com with ESMTP; 10 Apr 2023 13:27:40 -0700 Received: from orsmsx601.amr.corp.intel.com (10.22.229.14) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Mon, 10 Apr 2023 13:27:39 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23 via Frontend Transport; Mon, 10 Apr 2023 13:27:39 -0700 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.101) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.21; Mon, 10 Apr 2023 13:27:39 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IW1mOjaX/LTVlVX9Jxg1232ruz1HKGhoXs3jDXEWsBN6cuLoh019AXarZ2/TqjfsoBT17/UjiD3cNjUj5mjfb/GVZacg+E0IXvNMBKtlE0O+YI9CZCqB7ZmI6abbVMpW8yyNq8/NYVfizR04C6zUHXbrKA7fwe41+pSrNiWFjCCBAPn9WP7in8TKcvDDJR8/ewJd7+fvD+lrhasGPu1BMV1dnR+dMa2uHHw5RpISeM2TGZHFjsSb1187XhStRfuSnmGCg6L6IHGVfcJLwcipiyEAE/EmOjtW67CZKemh9gVICm+EBnByKJFoxSwwaRi/bsp4vHsa6jkPSTRUeG5Kyw== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=g9bGFi+GlkpuMJrFkT1lOLfKdqBDNBh7/mGsucULrA8=; b=MefCRsCHRCmJ4JPa69gfPKy9dCoCcUqLleuRhdZIiqowwCBQaMAaZAs9Z8e1K3mGeUVE9Zq9RTTo3bqhoj7LW7flTZEuzLRCU8yZHIGvwprhS3IsT6iFoxQAKcEX1a5JOI2Qyk7JkpkwRJJORVgkFxNlj9TwN67pGbJW+2PD0m4jX34irZ07l4ieK2V5paUoY4XY2eiP0HD/e+wZpkZGl7Gh9EqTYZSEBGZXAVdutxs1KIJP0DB+CxfwALQRoGAflViSnYx0tVSNSrOIZbEQw/qrD9RBfi1FgxDUyz6oG1M86BCTZDjTJDglRoWSOsMOMMrEdm7phlLtSF1dq2DmXw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from BYAPR11MB2599.namprd11.prod.outlook.com (2603:10b6:a02:c6::20) by SA1PR11MB5923.namprd11.prod.outlook.com (2603:10b6:806:23a::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6277.35; Mon, 10 Apr 2023 20:27:36 +0000 Received: from BYAPR11MB2599.namprd11.prod.outlook.com ([fe80::2aca:3677:1d66:e4a4]) by BYAPR11MB2599.namprd11.prod.outlook.com ([fe80::2aca:3677:1d66:e4a4%6]) with mapi id 15.20.6277.034; Mon, 10 Apr 2023 20:27:36 +0000 Message-ID: Date: Tue, 11 Apr 2023 01:57:24 +0530 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Firefox/102.0 Thunderbird/102.9.1 From: "Linga, Pavan Kumar" To: Shannon Nelson , References: <20230329140404.1647925-1-pavan.kumar.linga@intel.com> <20230329140404.1647925-2-pavan.kumar.linga@intel.com> <49947b6b-a59d-1db1-f405-0ab4e6e3356e@amd.com> Content-Language: en-US In-Reply-To: <49947b6b-a59d-1db1-f405-0ab4e6e3356e@amd.com> X-ClientProxiedBy: BYAPR11CA0050.namprd11.prod.outlook.com (2603:10b6:a03:80::27) To BYAPR11MB2599.namprd11.prod.outlook.com (2603:10b6:a02:c6::20) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BYAPR11MB2599:EE_|SA1PR11MB5923:EE_ X-MS-Office365-Filtering-Correlation-Id: 379aa577-cc58-412c-1161-08db3a020512 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: xa7X2HtkEEXBsxfvcSGWCDQu6l91cm+9VaoyAgjpiOtWA5OCUxgAFwQsy+P6+Pf09m4rGgK19xyXUIu//Dl3Kyz84etLW2wWjatPG4Ga2yL9W7tXyonIF/7V5yo7hZHX/szc4izUSzWJiVv+EqbN9KRnYyJMyXLfGwDmKhr35p1p+aVpq1GsWB6HvO1VoRXP83jOEk5Ohyp3sjG5yLAS2W9IVLNgqd3YzNKvYSxNN9b9hm5MShIFZet6t02g6vs2ITUTeN5kedIdR06xjhuPIpW3YnGW31Hy7KPKMvs26KfSfnLBc1W5C5MZ009J6A1B2a62tw2mS2CDmNKt2EQ5cICPM1aOoW5ihLlFXOJBlX3XBBNHEJ7SycoEL9YAnMupGR7UIq2BVit2KJIA8wrFDsjnAaWRI2LUe6lBfza7eezv0ZHedJsqw8/dgTkF+ZrTO4ualVupzGABfFquM3GjItpcOGMhZvUxMDNVgdQSM7fGXgaDioUa6u9BkEIWFum5lvnZkItpgnyBT5mqMtSRRdnUcZRYE2DCY92BXdpFjc9JXnOYmQeXr+HsYq0YeEkwj8PWHZZK/ybqBh6QqR4P2ufZYGbygXo7NAryQWlltGGy257FT23fzYjzUtC8xLpWNSx5C4vAbGtBjYESnDNFnpViLWm4SwCI9NkLoT2ljN24COMgixaTxm9R1y471zm6 X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BYAPR11MB2599.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(136003)(396003)(346002)(376002)(366004)(39860400002)(451199021)(2616005)(66476007)(66556008)(4326008)(66946007)(478600001)(316002)(54906003)(5660300002)(41300700001)(82960400001)(8676002)(38100700002)(8936002)(53546011)(186003)(83380400001)(6666004)(6486002)(107886003)(26005)(966005)(6506007)(6512007)(31696002)(86362001)(36756003)(16799955002)(2906002)(30864003)(31686004)(66899021)(43740500002)(45980500001)(559001)(579004); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?RTgxd2lwQWFscHhuS3RwaXQ4TzhjMnUzazdURndXaGIyQzhZRGtSWnd6Z0dq?= =?utf-8?B?ckZadmpkUkFVSVdGSUZLRHBRQXM0YnNHdTNGSUhzVnMzRlhZZjBmWGN3Vmxa?= =?utf-8?B?U3oxMy9EMVVHOHlIRlRoRlBkanJQWHNtSUsrMGFmWHpYSkZISUJsb2pDZVln?= =?utf-8?B?MkhGanpYT3RJZlUyOVRIWFQreTY4dlExUy96N2c3d2tuWGJwcmZ5SysyS0dT?= =?utf-8?B?dkU3amlZd2x1ZHYzWGR1R2lsK0sxMCtlaUVDSE9GdXZaUVJpcUMvZWtVMTNK?= =?utf-8?B?R1FTTzVsUDRCUGZVRjIvYzR1Wm8zVGRsc0JQNXcyclFReFZFQXprcHZWM2dh?= =?utf-8?B?MkpGak95R2FJc0xXWkh3cWcyaUh3T0tzVTNLM1VwYzJRaGVpSUpMVC85VGRk?= =?utf-8?B?WEk2UEJwaWR1a3ZkclpmdWs5RXlZd2JHdjdVL0pXclhwemE5VW4vN01lai9u?= =?utf-8?B?eDVmTGpSVXdybkFIbGhFVVhxaFRxZEhScEVMYjh1ZUdRWm1iWS9NdTcxRHY1?= =?utf-8?B?SGNVSENXMUdBaVdvOTkxTFdDc2k5M0Z1TkZOVml5dEtLUHFxa2t6azNIaHlw?= =?utf-8?B?N2RncnZxbUg5Wkh6NFFsNTNXU2JTTUorQldBaFUvaGx3UWpXQ0pwRTI1RVM4?= =?utf-8?B?UDQrc1BMb3hPY1NJcmQvQzkvL1BqcEV3NXNVRzZhQTFjREJ4ZTk1SGh3SXVq?= =?utf-8?B?QXk5Q29TbG0wS0ZKaGxrTU5xQjA4MDMybURpT2JGbGxSY3ZNd2hPUnREZjlt?= =?utf-8?B?N1R1N1pvSFFDdWExWUhseC9GVnBwOHBpb1VNNzZxZGw5ZHpRbDVIZG9RSHVq?= =?utf-8?B?M1hwdkxPcVRMWFE1VUNHL1lTNU40Z090bVRveCtGcXpUUVdYNTlIZ1JZdDZ0?= =?utf-8?B?SlU5SWFjWmpCazArajBhMEhPTFdXa1NUbzJ5SmVkSG1OcHUyY3hCbk5WMmE1?= =?utf-8?B?N1JwNUVRL05qWEcrSU5hZm9JVXZ3dkdFenRQU00xTXJrL0VOY0dqWCttV1Jp?= =?utf-8?B?RlBWVE5iNDVWQlFBcURMUDU4RDJiMllDdlpqb2JQcDVRN3RzMkwzdXZ1VWdz?= =?utf-8?B?ZlF5K3FleXBzbUlxMHlnMUE4WUxvbjJ5ejZRVnlpSy9WSDNqVy9BNWlkcU1E?= =?utf-8?B?QnJiSDB6MTkzRnVnUTNBY1k2cERjMHVhdzdablpCZVRQcU9paWVjeEtkQTVo?= =?utf-8?B?d3JBdU9zY3VnbndSWVdwdk9DOGZqbTFYSnUwdm8zSlh0RDllaHRWZ2wvSUVy?= =?utf-8?B?eHZKeTRtcncxS0EvL0NGcjQxMmlWRzE0ZVQ0dm1Gbi9uTXJkV0JHRG0vRXlE?= =?utf-8?B?NGlxUXhUQWsxeUJJdWcxdjZUdzNFZmp4Y0p1NlByWnRtMTdsem53MkNOWWpz?= =?utf-8?B?ZVdlMllsWVc0Yjdib25VOWxTWkVLZnFOK0ZOOUtsU1Nma1F4VHFBaFdRTmI1?= =?utf-8?B?Z2tYOTlyQnNrdWFJbUtQaU41RXJKYzdoOTZIbkdqQjNiOGtlV3A4bnkrc2sy?= =?utf-8?B?UjBMN1ZqTjd4bnRJa1R2ajRwQXladmhtQ1p0TkE2d3F5RG9Lb3FUcDdSd0FW?= =?utf-8?B?VGNneUxRZGQ5Lzlza0RMay8zZTBoOFN1c0tNVHF4bzhyTVJoeFpKZ1ZXK2lz?= =?utf-8?B?RHliK3ZUTmpEVVdMUFdNd3ZhdjNXeHFDM1RzWllSM1RjbGNHc3g4WHhxNW53?= =?utf-8?B?eTZUemxwZXZtV3ZPSmpiczRYc3J0UXFrdFNsUmxSSmNFdzFEYzhqUm81VEg2?= =?utf-8?B?QkNUZWtvWklmOWlobG5MblBzTXdUa1Z2bUNrdythaWVZNmFWVG9mWDlpalNn?= =?utf-8?B?VkVIMk1udWFaZlhEL2VkRnpVcHhJNlErTjJzT3IwOUJncmRyRUtwL0FVNWRN?= =?utf-8?B?bUhqa3RiN1AwS0FvaFlGRnpMbXhnMG0xVm15cEpmVERvTXJ2Wk10UWkvTmxB?= =?utf-8?B?R3pzdFB6b0tIb2d1NWRwblNMa3ZtbUtjVkJwb0MrelQ2TmxkOXRRd21DTStE?= =?utf-8?B?eTAxV0w4dmRQWFRpakRwK01lSGF2Q1B4M2lLcEprSW1ScXR3Q0JYQlNHb1Rj?= =?utf-8?B?MFdiWDJpeUF3bVNuWGVnTDJpODR2eHJzS3lOMy9NeDZ1Mnlyd3YrdUNDNkd2?= =?utf-8?B?eHgyd3RuMFNENVBEZnU1RmhVS2JkSnFPQ1hVbHhmTzFuSDJjWUFrVXB2bFAz?= =?utf-8?B?dEE9PQ==?= X-MS-Exchange-CrossTenant-Network-Message-Id: 379aa577-cc58-412c-1161-08db3a020512 X-MS-Exchange-CrossTenant-AuthSource: BYAPR11MB2599.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Apr 2023 20:27:35.9574 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: dAXUolG99di/FkAE3qspQbSkkGjRRsMAM0CWwO2kjmrDNIB7VgHsVTPXwhLNLDic33G9SCh3iLHzwnAiM4KjZ/bJpuhO5STnOoSY8v752nI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR11MB5923 X-OriginatorOrg: intel.com X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1681158465; x=1712694465; h=message-id:date:from:subject:to:cc:references: in-reply-to:content-transfer-encoding:mime-version; bh=Z/tzYOkP03IoHnSE2rYONas9+S68K1qPPm/8I/7FuuY=; b=cgpyWqc2wGfOyahFrKpWgVCjsSBsc2sEMKKUHLwpt9aoKsgGX89uRYhx 9z0W6iB2M+Whf+/V6aaBPLzfrkVIyXZKW+KD1AImqv8jNypBFuEe4WDdP LWJHKHjWYk5QINLgIrxc/pt/POSOEEge5y3qfdwc4JMHd+cLl7gICOtf2 vSOtR4IcI0m17faIHF3SD1jjuIJ5F2znIfdEGEHUfxENN4BEdy++YsdLf GKblOz794hJl82HRH1I/SnyQylf1sFA8mqf6WOiaoYL8YIYG1eG+EisHH VpZU+un35eOA6LspcPPx7llilPmUWY4SFJ6MkhfwU0IgvhGKjLmaptgXd w==; X-Mailman-Original-Authentication-Results: smtp4.osuosl.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=cgpyWqc2 X-Mailman-Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; Subject: Re: [Intel-wired-lan] [PATCH net-next 01/15] virtchnl: add virtchnl version 2 ops X-BeenThere: intel-wired-lan@osuosl.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel Wired Ethernet Linux Kernel Driver Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: willemb@google.com, netdev@vger.kernel.org, Phani Burra , decot@google.com, shiraz.saleem@intel.com Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: intel-wired-lan-bounces@osuosl.org Sender: "Intel-wired-lan" CgpPbiA0LzQvMjAyMyAzOjMxIEFNLCBTaGFubm9uIE5lbHNvbiB3cm90ZToKPiBPbiAzLzI5LzIz IDc6MDMgQU0sIFBhdmFuIEt1bWFyIExpbmdhIHdyb3RlOgo+Pgo+PiBWaXJ0Y2hubCB2ZXJzaW9u IDEgaXMgYW4gaW50ZXJmYWNlIHVzZWQgYnkgdGhlIGN1cnJlbnQgZ2VuZXJhdGlvbiBvZgo+PiBm b3VuZGF0aW9uYWwgTklDcyB0byBuZWdvdGlhdGUgdGhlIGNhcGFiaWxpdGllcyBhbmQgY29uZmln dXJlIHRoZQo+PiBIVyByZXNvdXJjZXMgc3VjaCBhcyBxdWV1ZXMsIHZlY3RvcnMsIFJTUyBMVVQs IGV0YyBiZXR3ZWVuIHRoZSBQRgo+PiBhbmQgVkYgZHJpdmVycy4gSXQgaXMgbm90IGV4dGVuc2li bGUgdG8gZW5hYmxlIG5ldyBmZWF0dXJlcyBzdXBwb3J0ZWQKPj4gaW4gdGhlIG5leHQgZ2VuZXJh dGlvbiBvZiBOSUNzL0lQVXMgYW5kIHRvIG5lZ290aWF0ZSBkZXNjcmlwdG9yIHR5cGVzLAo+PiBw YWNrZXQgdHlwZXMgYW5kIHJlZ2lzdGVyIG9mZnNldHMuCj4+Cj4+IFRvIG92ZXJjb21lIHRoZSBs aW1pdGF0aW9ucyBvZiB0aGUgZXhpc3RpbmcgaW50ZXJmYWNlLCBpbnRyb2R1Y2UKPj4gdGhlIHZp cnRjaG5sIHZlcnNpb24gMiBhbmQgYWRkIHRoZSBuZWNlc3Nhcnkgb3Bjb2Rlcywgc3RydWN0dXJl cywKPj4gZGVmaW5pdGlvbnMsIGFuZCBkZXNjcmlwdG9yIGZvcm1hdHMuIFRoZSBkcml2ZXIgYWxz byBsZWFybnMgdGhlCj4+IGRhdGEgcXVldWUgYW5kIG90aGVyIHJlZ2lzdGVyIG9mZnNldHMgdG8g dXNlIGluc3RlYWQgb2YgaGFyZGNvZGluZwo+PiB0aGVtLiBUaGUgYWR2YW50YWdlIG9mIHRoaXMg YXBwcm9hY2ggaXMgdGhhdCBpdCBnaXZlcyB0aGUgZmxleGliaWxpdHkKPj4gdG8gbW9kaWZ5IHRo ZSByZWdpc3RlciBvZmZzZXRzIGlmIG5lZWRlZCwgcmVzdHJpY3QgdGhlIHVzZSBvZgo+PiBjZXJ0 YWluIGRlc2NyaXB0b3IgdHlwZXMgYW5kIG5lZ290aWF0ZSB0aGUgc3VwcG9ydGVkIHBhY2tldCB0 eXBlcy4KPj4KPj4gRm9sbG93aW5nIGFyZSB0aGUgbGlua3MgdG8gdGhlIHNwZWNpZmljYXRpb25z IGZvciByZWZlcmVuY2UKPj4KPj4gVmlydGNobmwgdmVyc2lvbjE6Cj4+IGh0dHBzOi8vd3d3Lmlu dGVsLmNvbS9jb250ZW50L2RhbS93d3cvcHVibGljL3VzL2VuL2RvY3VtZW50cy8KPj4gcHJvZHVj dC1zcGVjaWZpY2F0aW9ucy9ldGhlcm5ldC1hZGFwdGl2ZS12aXJ0dWFsLWZ1bmN0aW9uLWhhcmR3 YXJlLXNwZWMucGRmCj4+Cj4+IFZpcnRjaG5sIHZlcnNpb24yOgo+PiBodHRwczovL3d3dy5vYXNp cy1vcGVuLm9yZy9jb21taXR0ZWVzL2RvY3VtZW50cy5waHA/d2dfYWJicmV2PWlkcGYKPj4KPj4g Q28tZGV2ZWxvcGVkLWJ5OiBBbGFuIEJyYWR5IDxhbGFuLmJyYWR5QGludGVsLmNvbT4KPj4gU2ln bmVkLW9mZi1ieTogQWxhbiBCcmFkeSA8YWxhbi5icmFkeUBpbnRlbC5jb20+Cj4+IENvLWRldmVs b3BlZC1ieTogSm9zaHVhIEhheSA8am9zaHVhLmEuaGF5QGludGVsLmNvbT4KPj4gU2lnbmVkLW9m Zi1ieTogSm9zaHVhIEhheSA8am9zaHVhLmEuaGF5QGludGVsLmNvbT4KPj4gQ28tZGV2ZWxvcGVk LWJ5OiBNYWRodSBDaGl0dGltIDxtYWRodS5jaGl0dGltQGludGVsLmNvbT4KPj4gU2lnbmVkLW9m Zi1ieTogTWFkaHUgQ2hpdHRpbSA8bWFkaHUuY2hpdHRpbUBpbnRlbC5jb20+Cj4+IENvLWRldmVs b3BlZC1ieTogUGhhbmkgQnVycmEgPHBoYW5pLnIuYnVycmFAaW50ZWwuY29tPgo+PiBTaWduZWQt b2ZmLWJ5OiBQaGFuaSBCdXJyYSA8cGhhbmkuci5idXJyYUBpbnRlbC5jb20+Cj4+IENvLWRldmVs b3BlZC1ieTogU3JpZGhhciBTYW11ZHJhbGEgPHNyaWRoYXIuc2FtdWRyYWxhQGludGVsLmNvbT4K Pj4gU2lnbmVkLW9mZi1ieTogU3JpZGhhciBTYW11ZHJhbGEgPHNyaWRoYXIuc2FtdWRyYWxhQGlu dGVsLmNvbT4KPj4gU2lnbmVkLW9mZi1ieTogUGF2YW4gS3VtYXIgTGluZ2EgPHBhdmFuLmt1bWFy LmxpbmdhQGludGVsLmNvbT4KPj4gUmV2aWV3ZWQtYnk6IFNyaWRoYXIgU2FtdWRyYWxhIDxzcmlk aGFyLnNhbXVkcmFsYUBpbnRlbC5jb20+Cj4+IC0tLQo+PiDCoCBkcml2ZXJzL25ldC9ldGhlcm5l dC9pbnRlbC9pZHBmL3ZpcnRjaG5sMi5owqDCoCB8IDExNTMgKysrKysrKysrKysrKysrKysKPj4g wqAgLi4uL2V0aGVybmV0L2ludGVsL2lkcGYvdmlydGNobmwyX2xhbl9kZXNjLmjCoCB8wqAgNjQ0 ICsrKysrKysrKwo+PiDCoCAyIGZpbGVzIGNoYW5nZWQsIDE3OTcgaW5zZXJ0aW9ucygrKQo+PiDC oCBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi92aXJ0 Y2hubDIuaAo+PiDCoCBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50 ZWwvaWRwZi92aXJ0Y2hubDJfbGFuX2Rlc2MuaAo+Pgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi92aXJ0Y2hubDIuaCAKPj4gYi9kcml2ZXJzL25ldC9ldGhl cm5ldC9pbnRlbC9pZHBmL3ZpcnRjaG5sMi5oCj4gCj4gSWYgdGhpcyBpcyB0byBiZSBhIHN0YW5k YXJkaXplZCBpbnRlcmZhY2UsIHdoeSBpcyB0aGlzIGhlYWRlciBidXJpZWQgaW4gCj4gdGhlIGRy aXZlciBzcGVjaWZpYyBkaXJlY3RvcnkgaW5zdGVhZCBvZiBzb21ldGhpbmcgbW9yZSBhY2Nlc3Np YmxlIGxpa2UgCj4gaW5jbHVkZS9saW51eC9pZHBmPwo+IAo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0 NAo+PiBpbmRleCAwMDAwMDAwMDAwMDAuLmE2ZTU3ZGYyYzM1Zgo+PiAtLS0gL2Rldi9udWxsCj4+ ICsrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lkcGYvdmlydGNobmwyLmgKPj4gQEAg LTAsMCArMSwxMTUzIEBACj4+ICsvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1v bmx5ICovCj4+ICsvKiBDb3B5cmlnaHQgKEMpIDIwMjMgSW50ZWwgQ29ycG9yYXRpb24gKi8KPj4g Kwo+PiArI2lmbmRlZiBfVklSVENITkwyX0hfCj4+ICsjZGVmaW5lIF9WSVJUQ0hOTDJfSF8KPj4g Kwo+PiArLyogQWxsIG9wY29kZXMgYXNzb2NpYXRlZCB3aXRoIHZpcnRjaG5sIDIgYXJlIHByZWZp eGVkIHdpdGggdmlydGNobmwyIG9yCj4+ICsgKiBWSVJUQ0hOTDIuIEFueSBmdXR1cmUgb3Bjb2Rl cywgb2ZmbG9hZHMvY2FwYWJpbGl0aWVzLCBzdHJ1Y3R1cmVzLAo+PiArICogYW5kIGRlZmluZXMg bXVzdCBiZSBwcmVmaXhlZCB3aXRoIHZpcnRjaG5sMiBvciBWSVJUQ0hOTDIgdG8gYXZvaWQgCj4+ IGNvbmZ1c2lvbi4KPj4gKyAqCj4+ICsgKiBQRi9WRiB1c2VzIHRoZSB2aXJ0Y2hubCBpbnRlcmZh Y2UgZGVmaW5lZCBpbiB0aGlzIGhlYWRlciBmaWxlIHRvIAo+PiBjb21tdW5pY2F0ZQo+PiArICog d2l0aCBkZXZpY2UgQ29udHJvbCBQbGFuZSAoQ1ApLiBEcml2ZXIgYW5kIHRoZSBDUCBtYXkgcnVu IG9uIAo+PiBkaWZmZXJlbnQKPj4gKyAqIHBsYXRmb3JtcyB3aXRoIGRpZmZlcmVudCBlbmRpYW5u ZXNzLiBUbyBhdm9pZCBieXRlIG9yZGVyIAo+PiBkaXNjcmVwYW5jaWVzLAo+PiArICogc3RydWN0 IG1lbWJlcnMgaW4gdGhpcyBoZWFkZXIgZm9sbG93IGxpdHRsZS1lbmRpYW4gZm9ybWF0LiBVc2Vy cyAKPj4gb2YgdGhpcwo+PiArICogdmlydGNobmwgaW50ZXJmYWNlIGFyZSBleHBlY3RlZCB0byBj b252ZXJ0IGJhY2sgdG8gdGhlaXIgbmF0aXZlIAo+PiBlbmRpYW4KPj4gKyAqIGZvcm1hdC4KPj4g KyAqLwo+PiArCj4+ICsjaW5jbHVkZSAidmlydGNobmwyX2xhbl9kZXNjLmgiCj4+ICsKPj4gKy8q IFZJUlRDSE5MMl9FUlJPUl9DT0RFUyAqLwo+PiArLyogU3VjY2VzcyAqLwo+PiArI2RlZmluZSBW SVJUQ0hOTDJfU1RBVFVTX1NVQ0NFU1PCoMKgwqDCoMKgwqAgMAo+IAo+IFNob3VsZG4ndCB0aGVz ZSBiZSBlbnVtIGFuZCBub3QgI2RlZmluZT8KPiAKClRoaXMgaGVhZGVyIGZpbGUgaXMgZGVzY3Jp YmluZyBjb21tdW5pY2F0aW9uIHByb3RvY29sIHdpdGggb3Bjb2RlcywgCmVycm9yIGNvZGVzLCBj YXBhYmlsaXRpZXMgZXRjLiB0aGF0IGFyZSBleGNoYW5nZWQgYmV0d2VlbiBJRFBGIGFuZCAKZGV2 aWNlIENvbnRyb2wgUGxhbmUuIENvbXBpbGVyIGNob29zZXMgdGhlIHNpemUgb2YgdGhlIGVudW0g YmFzZWQgb24gdGhlIAplbnVtZXJhdGlvbiBjb25zdGFudHMgdGhhdCBhcmUgcHJlc2VudCB3aGlj aCBpcyBub3QgYSBjb25zdGFudCBzaXplLiBCdXQgCmZvciB2aXJ0Y2hubCBwcm90b2NvbCwgd2Ug d2FudCB0byBoYXZlIGZpeGVkIHNpemUgbm8gbWF0dGVyIHdoYXQuIFRvIAphdm9pZCBzdWNoIGNh c2VzLCB3ZSBhcmUgdXNpbmcgZGVmaW5lcyB3aGVyZWV2ZXIgbmVjZXNzYXJ5LgoKPj4gKy8qIE9w ZXJhdGlvbiBub3QgcGVybWl0dGVkLCB1c2VkIGluIGNhc2Ugb2YgY29tbWFuZCBub3QgcGVybWl0 dGVkIGZvciAKPj4gc2VuZGVyICovCj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9TVEFUVVNfRVJSX0VQ RVJNwqDCoMKgwqAgMQo+PiArLyogQmFkIG9wY29kZSAtIHZpcnRjaG5sIGludGVyZmFjZSBwcm9i bGVtICovCj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9TVEFUVVNfRVJSX0VTUkNIwqDCoMKgwqAgMwo+ PiArLyogSS9PIGVycm9yIC0gSFcgYWNjZXNzIGVycm9yICovCj4+ICsjZGVmaW5lIFZJUlRDSE5M Ml9TVEFUVVNfRVJSX0VJT8KgwqDCoMKgwqDCoCA1Cj4+ICsvKiBObyBzdWNoIHJlc291cmNlIC0g UmVmZXJlbmNlZCByZXNvdXJjZSBpcyBub3QgYWxsYWNhdGVkICovCj4+ICsjZGVmaW5lIFZJUlRD SE5MMl9TVEFUVVNfRVJSX0VOWElPwqDCoMKgwqAgNgo+PiArLyogUGVybWlzc2lvbiBkZW5pZWQg LSBSZXNvdXJjZSBpcyBub3QgcGVybWl0dGVkIHRvIGNhbGxlciAqLwo+PiArI2RlZmluZSBWSVJU Q0hOTDJfU1RBVFVTX0VSUl9FQUNDRVPCoMKgwqAgMTMKPj4gKy8qIERldmljZSBvciByZXNvdXJj ZSBidXN5IC0gSW4gY2FzZSBzaGFyZWQgcmVzb3VyY2UgaXMgaW4gdXNlIGJ5IAo+PiBvdGhlcnMg Ki8KPj4gKyNkZWZpbmUgVklSVENITkwyX1NUQVRVU19FUlJfRUJVU1nCoMKgwqDCoCAxNgo+PiAr LyogT2JqZWN0IGFscmVhZHkgZXhpc3RzIGFuZCBub3QgZnJlZSAqLwo+PiArI2RlZmluZSBWSVJU Q0hOTDJfU1RBVFVTX0VSUl9FRVhJU1TCoMKgwqAgMTcKPj4gKy8qIEludmFsaWQgaW5wdXQgYXJn dW1lbnQgaW4gY29tbWFuZCAqLwo+PiArI2RlZmluZSBWSVJUQ0hOTDJfU1RBVFVTX0VSUl9FSU5W QUzCoMKgwqAgMjIKPj4gKy8qIE5vIHNwYWNlIGxlZnQgb3IgYWxsb2NhdGlvbiBmYWlsdXJlICov Cj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9TVEFUVVNfRVJSX0VOT1NQQ8KgwqDCoCAyOAo+PiArLyog UGFyYW1ldGVyIG91dCBvZiByYW5nZSAqLwo+PiArI2RlZmluZSBWSVJUQ0hOTDJfU1RBVFVTX0VS Ul9FUkFOR0XCoMKgwqAgMzQKPj4gKwo+PiArLyogT3Agbm90IGFsbG93ZWQgaW4gY3VycmVudCBk ZXYgbW9kZSAqLwo+PiArI2RlZmluZSBWSVJUQ0hOTDJfU1RBVFVTX0VSUl9FTU9ERcKgwqDCoMKg IDIwMAo+PiArLyogU3RhdGUgTWFjaGluZSBlcnJvciAtIENvbW1hbmQgc2VxdWVuY2UgcHJvYmxl bSAqLwo+PiArI2RlZmluZSBWSVJUQ0hOTDJfU1RBVFVTX0VSUl9FU03CoMKgwqDCoMKgwqAgMjAx Cj4+ICsKPj4gKy8qIFRoaXMgbWFjcm8gaXMgdXNlZCB0byBnZW5lcmF0ZSBjb21waWxhdGlvbiBl cnJvcnMgaWYgYSBzdHJ1Y3R1cmUKPj4gKyAqIGlzIG5vdCBleGFjdGx5IHRoZSBjb3JyZWN0IGxl bmd0aC4KPj4gKyAqLwo+PiArI2RlZmluZSBWSVJUQ0hOTDJfQ0hFQ0tfU1RSVUNUX0xFTihuLCBY KcKgwqDCoMKgwqDCoCBcCj4+ICvCoMKgwqDCoMKgwqAgc3RhdGljX2Fzc2VydCgobikgPT0gc2l6 ZW9mKHN0cnVjdCBYKSkKPj4gKwo+PiArLyogTmV3IG1ham9yIHNldCBvZiBvcGNvZGVzIGludHJv ZHVjZWQgYW5kIHNvIGxlYXZpbmcgcm9vbSBmb3IKPj4gKyAqIG9sZCBtaXNjIG9wY29kZXMgdG8g YmUgYWRkZWQgaW4gZnV0dXJlLiBBbHNvIHRoZXNlIG9wY29kZXMgbWF5IG9ubHkKPj4gKyAqIGJl IHVzZWQgaWYgYm90aCB0aGUgUEYgYW5kIFZGIGhhdmUgc3VjY2Vzc2Z1bGx5IG5lZ290aWF0ZWQg dGhlCj4+ICsgKiBWSVJUQ0hOTCB2ZXJzaW9uIGFzIDIuMCBkdXJpbmcgVklSVENITkwyX09QX1ZF UlNJT04gZXhjaGFuZ2UuCj4+ICsgKi8KPj4gKyNkZWZpbmUgVklSVENITkwyX09QX1VOS05PV07C oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgMAo+IAo+IEkgdGhpbmsgdGhlc2Ug YWxzbyBzaG91bGQgYmUgZW51bS4KPiAKClBsZWFzZSBzZWUgY29tbWVudCBhYm92ZS4KCj4+ICsj ZGVmaW5lIFZJUlRDSE5MMl9PUF9WRVJTSU9OwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIDEKPj4gKyNkZWZpbmUgVklSVENITkwyX09QX0dFVF9DQVBTwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCA1MDAKPj4gKyNkZWZpbmUgVklSVENITkwyX09QX0NSRUFURV9W UE9SVMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDUwMQo+PiArI2RlZmluZSBWSVJUQ0hOTDJf T1BfREVTVFJPWV9WUE9SVMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA1MDIKPj4gKyNkZWZpbmUg VklSVENITkwyX09QX0VOQUJMRV9WUE9SVMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDUwMwo+ PiArI2RlZmluZSBWSVJUQ0hOTDJfT1BfRElTQUJMRV9WUE9SVMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCA1MDQKPj4gKyNkZWZpbmUgVklSVENITkwyX09QX0NPTkZJR19UWF9RVUVVRVPCoMKgwqDC oMKgwqDCoMKgwqAgNTA1Cj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9PUF9DT05GSUdfUlhfUVVFVUVT wqDCoMKgwqDCoMKgwqDCoMKgIDUwNgo+PiArI2RlZmluZSBWSVJUQ0hOTDJfT1BfRU5BQkxFX1FV RVVFU8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA1MDcKPj4gKyNkZWZpbmUgVklSVENITkwyX09Q X0RJU0FCTEVfUVVFVUVTwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA1MDgKPj4gKyNkZWZpbmUgVklS VENITkwyX09QX0FERF9RVUVVRVPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIDUwOQo+PiArI2RlZmluZSBWSVJUQ0hOTDJfT1BfREVMX1FVRVVFU8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgNTEwCj4+ICsjZGVmaW5lIFZJ UlRDSE5MMl9PUF9NQVBfUVVFVUVfVkVDVE9SwqDCoMKgwqDCoMKgwqDCoMKgIDUxMQo+PiArI2Rl ZmluZSBWSVJUQ0hOTDJfT1BfVU5NQVBfUVVFVUVfVkVDVE9SwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIDUxMgo+PiArI2RlZmluZSBWSVJUQ0hOTDJfT1BfR0VUX1JTU19LRVnCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIDUxMwo+PiArI2RlZmluZSBWSVJUQ0hOTDJfT1BfU0VUX1JT U19LRVnCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDUxNAo+PiArI2RlZmluZSBWSVJUQ0hO TDJfT1BfR0VUX1JTU19MVVTCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDUxNQo+PiArI2Rl ZmluZSBWSVJUQ0hOTDJfT1BfU0VUX1JTU19MVVTCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IDUxNgo+PiArI2RlZmluZSBWSVJUQ0hOTDJfT1BfR0VUX1JTU19IQVNIwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgNTE3Cj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9PUF9TRVRfUlNTX0hBU0jCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA1MTgKPj4gKyNkZWZpbmUgVklSVENITkwyX09QX1NFVF9T UklPVl9WRlPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgNTE5Cj4+ICsjZGVmaW5lIFZJUlRDSE5M Ml9PUF9BTExPQ19WRUNUT1JTwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDUyMAo+PiArI2RlZmlu ZSBWSVJUQ0hOTDJfT1BfREVBTExPQ19WRUNUT1JTwqDCoMKgwqDCoMKgwqDCoMKgwqAgNTIxCj4+ ICsjZGVmaW5lIFZJUlRDSE5MMl9PUF9FVkVOVMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgNTIyCj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9PUF9HRVRfU1RBVFPCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA1MjMKPj4gKyNkZWZpbmUgVklSVENITkwyX09QX1JF U0VUX1ZGwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA1MjQKPj4gKyNkZWZpbmUg VklSVENITkwyX09QX0dFVF9FRFRfQ0FQU8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDUyNQo+ PiArI2RlZmluZSBWSVJUQ0hOTDJfT1BfR0VUX1BUWVBFX0lORk/CoMKgwqDCoMKgwqDCoMKgwqDC oMKgIDUyNgo+PiArLyogT3Bjb2RlIDUyNyBhbmQgNTI4IGFyZSByZXNlcnZlZCBmb3IgVklSVENI TkwyX09QX0dFVF9QVFlQRV9JRCBhbmQKPj4gKyAqIFZJUlRDSE5MMl9PUF9HRVRfUFRZUEVfSU5G T19SQVcuCj4+ICsgKiBPcGNvZGVzIDUyOSwgNTMwLCA1MzEsIDUzMiBhbmQgNTMzIGFyZSByZXNl cnZlZC4KPj4gKyAqLwo+PiArI2RlZmluZSBWSVJUQ0hOTDJfT1BfTE9PUEJBQ0vCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDUzNAo+PiArI2RlZmluZSBWSVJUQ0hOTDJfT1BfQURE X01BQ19BRERSwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgNTM1Cj4+ICsjZGVmaW5lIFZJUlRD SE5MMl9PUF9ERUxfTUFDX0FERFLCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA1MzYKPj4gKyNk ZWZpbmUgVklSVENITkwyX09QX0NPTkZJR19QUk9NSVNDVU9VU19NT0RFwqDCoCA1MzcKPj4gKwo+ PiArLyogVklSVENITkwyX1ZQT1JUX1RZUEUKPj4gKyAqIFR5cGUgb2YgdmlydHVhbCBwb3J0Cj4+ ICsgKi8KPj4gKyNkZWZpbmUgVklSVENITkwyX1ZQT1JUX1RZUEVfREVGQVVMVMKgwqDCoMKgwqDC oMKgwqDCoMKgIDAKPj4gKwo+PiArLyogVklSVENITkwyX1FVRVVFX01PREVMCj4+ICsgKiBUeXBl IG9mIHF1ZXVlIG1vZGVsCj4+ICsgKgo+PiArICogSW4gdGhlIHNpbmdsZSBxdWV1ZSBtb2RlbCwg dGhlIHNhbWUgdHJhbnNtaXQgZGVzY3JpcHRvciBxdWV1ZSBpcyAKPj4gdXNlZCBieQo+PiArICog c29mdHdhcmUgdG8gcG9zdCBkZXNjcmlwdG9ycyB0byBoYXJkd2FyZSBhbmQgYnkgaGFyZHdhcmUg dG8gcG9zdCAKPj4gY29tcGxldGVkCj4+ICsgKiBkZXNjcmlwdG9ycyB0byBzb2Z0d2FyZS4KPj4g KyAqIExpa2V3aXNlLCB0aGUgc2FtZSByZWNlaXZlIGRlc2NyaXB0b3IgcXVldWUgaXMgdXNlZCBi eSBoYXJkd2FyZSB0byAKPj4gcG9zdAo+PiArICogY29tcGxldGlvbnMgdG8gc29mdHdhcmUgYW5k IGJ5IHNvZnR3YXJlIHRvIHBvc3QgYnVmZmVycyB0byBoYXJkd2FyZS4KPj4gKyAqLwo+PiArI2Rl ZmluZSBWSVJUQ0hOTDJfUVVFVUVfTU9ERUxfU0lOR0xFwqDCoMKgwqDCoMKgwqDCoMKgwqAgMAo+ PiArLyogSW4gdGhlIHNwbGl0IHF1ZXVlIG1vZGVsLCBoYXJkd2FyZSB1c2VzIHRyYW5zbWl0IGNv bXBsZXRpb24gcXVldWVzIAo+PiB0byBwb3N0Cj4+ICsgKiBkZXNjcmlwdG9yL2J1ZmZlciBjb21w bGV0aW9ucyB0byBzb2Z0d2FyZSwgd2hpbGUgc29mdHdhcmUgdXNlcyAKPj4gdHJhbnNtaXQKPj4g KyAqIGRlc2NyaXB0b3IgcXVldWVzIHRvIHBvc3QgZGVzY3JpcHRvcnMgdG8gaGFyZHdhcmUuCj4+ ICsgKiBMaWtld2lzZSwgaGFyZHdhcmUgcG9zdHMgZGVzY3JpcHRvciBjb21wbGV0aW9ucyB0byB0 aGUgcmVjZWl2ZSAKPj4gZGVzY3JpcHRvcgo+PiArICogcXVldWUsIHdoaWxlIHNvZnR3YXJlIHVz ZXMgcmVjZWl2ZSBidWZmZXIgcXVldWVzIHRvIHBvc3QgYnVmZmVycyAKPj4gdG8gaGFyZHdhcmUu Cj4+ICsgKi8KPj4gKyNkZWZpbmUgVklSVENITkwyX1FVRVVFX01PREVMX1NQTElUwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCAxCj4+ICsKPj4gKy8qIFZJUlRDSE5MMl9DSEVDS1NVTV9PRkZMT0FEX0NB UFMKPj4gKyAqIENoZWNrc3VtIG9mZmxvYWQgY2FwYWJpbGl0eSBmbGFncwo+PiArICovCj4+ICsj ZGVmaW5lIFZJUlRDSE5MMl9DQVBfVFhfQ1NVTV9MM19JUFY0wqDCoMKgwqDCoMKgwqDCoMKgIEJJ VCgwKQo+IAo+IE1vcmUgZW51bXMuLi4gSSdsbCBzdG9wIGhlcmUgd2l0aCB0aGUgZW51bSBjb21t ZW50cywgYnV0IHJlYWxseSBhbnl3aGVyZSAKPiB5b3UgaGF2ZSBhIGNvbGxlY3Rpb24gb2YgY29u c3RhbnRzIGVudW0gaXMgcHJlZmVycmVkLgo+IAoKU2FtZSBhcyBjb21tZW50IGFib3ZlLgoKPj4g KyNkZWZpbmUgVklSVENITkwyX0NBUF9UWF9DU1VNX0w0X0lQVjRfVENQwqDCoMKgwqDCoCBCSVQo MSkKPj4gKyNkZWZpbmUgVklSVENITkwyX0NBUF9UWF9DU1VNX0w0X0lQVjRfVURQwqDCoMKgwqDC oCBCSVQoMikKPj4gKyNkZWZpbmUgVklSVENITkwyX0NBUF9UWF9DU1VNX0w0X0lQVjRfU0NUUMKg wqDCoMKgIEJJVCgzKQo+PiArI2RlZmluZSBWSVJUQ0hOTDJfQ0FQX1RYX0NTVU1fTDRfSVBWNl9U Q1DCoMKgwqDCoMKgIEJJVCg0KQo+PiArI2RlZmluZSBWSVJUQ0hOTDJfQ0FQX1RYX0NTVU1fTDRf SVBWNl9VRFDCoMKgwqDCoMKgIEJJVCg1KQo+PiArI2RlZmluZSBWSVJUQ0hOTDJfQ0FQX1RYX0NT VU1fTDRfSVBWNl9TQ1RQwqDCoMKgwqAgQklUKDYpCj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9DQVBf VFhfQ1NVTV9HRU5FUklDwqDCoMKgwqDCoMKgwqDCoMKgIEJJVCg3KQo+PiArI2RlZmluZSBWSVJU Q0hOTDJfQ0FQX1JYX0NTVU1fTDNfSVBWNMKgwqDCoMKgwqDCoMKgwqDCoCBCSVQoOCkKPj4gKyNk ZWZpbmUgVklSVENITkwyX0NBUF9SWF9DU1VNX0w0X0lQVjRfVENQwqDCoMKgwqDCoCBCSVQoOSkK Pj4gKyNkZWZpbmUgVklSVENITkwyX0NBUF9SWF9DU1VNX0w0X0lQVjRfVURQwqDCoMKgwqDCoCBC SVQoMTApCj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9DQVBfUlhfQ1NVTV9MNF9JUFY0X1NDVFDCoMKg wqDCoCBCSVQoMTEpCj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9DQVBfUlhfQ1NVTV9MNF9JUFY2X1RD UMKgwqDCoMKgwqAgQklUKDEyKQo+PiArI2RlZmluZSBWSVJUQ0hOTDJfQ0FQX1JYX0NTVU1fTDRf SVBWNl9VRFDCoMKgwqDCoMKgIEJJVCgxMykKPj4gKyNkZWZpbmUgVklSVENITkwyX0NBUF9SWF9D U1VNX0w0X0lQVjZfU0NUUMKgwqDCoMKgIEJJVCgxNCkKPj4gKyNkZWZpbmUgVklSVENITkwyX0NB UF9SWF9DU1VNX0dFTkVSSUPCoMKgwqDCoMKgwqDCoMKgwqAgQklUKDE1KQo+PiArI2RlZmluZSBW SVJUQ0hOTDJfQ0FQX1RYX0NTVU1fTDNfU0lOR0xFX1RVTk5FTCBCSVQoMTYpCj4+ICsjZGVmaW5l IFZJUlRDSE5MMl9DQVBfVFhfQ1NVTV9MM19ET1VCTEVfVFVOTkVMIEJJVCgxNykKPj4gKyNkZWZp bmUgVklSVENITkwyX0NBUF9SWF9DU1VNX0wzX1NJTkdMRV9UVU5ORUwgQklUKDE4KQo+PiArI2Rl ZmluZSBWSVJUQ0hOTDJfQ0FQX1JYX0NTVU1fTDNfRE9VQkxFX1RVTk5FTCBCSVQoMTkpCj4+ICsj ZGVmaW5lIFZJUlRDSE5MMl9DQVBfVFhfQ1NVTV9MNF9TSU5HTEVfVFVOTkVMIEJJVCgyMCkKPj4g KyNkZWZpbmUgVklSVENITkwyX0NBUF9UWF9DU1VNX0w0X0RPVUJMRV9UVU5ORUwgQklUKDIxKQo+ PiArI2RlZmluZSBWSVJUQ0hOTDJfQ0FQX1JYX0NTVU1fTDRfU0lOR0xFX1RVTk5FTCBCSVQoMjIp Cj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9DQVBfUlhfQ1NVTV9MNF9ET1VCTEVfVFVOTkVMIEJJVCgy MykKPj4gKwo+PiArLyogVklSVENITkwyX1NFR01FTlRBVElPTl9PRkZMT0FEX0NBUFMKPj4gKyAq IFNlZ21lbnRhdGlvbiBvZmZsb2FkIGNhcGFiaWxpdHkgZmxhZ3MKPj4gKyAqLwo+IAo+IFlvdSBt aWdodCB1c2UgdGhlIGNvbW1lbnQgc3RhcnRlciAiLyoqIiBvbiBtYW55IG9mIHRoZXNlIHN0cnVj dCBhbmQgZW51bSAKPiBoZWFkZXJzIGluIG9yZGVyIHRvIG1ha2UgdXNlIG9mIHRoZSBrZXJuZWwt ZG9jIHRvb2wgZm9yIGNvZGUgCj4gZG9jdW1lbnRhdGlvbiBnZW5lcmF0aW9uLgo+IAoKVGhhbmtz IGZvciB0aGUgZmVlZGJhY2suIEZpeGVkIGFsbCB0aGUgaW5zdGFuY2VzIG9mIHN0cnVjdCwgZW51 bXMsIApkZWZpbml0aW9ucyBjb21tZW50cyB0byBzdGFydCB3aXRoICIvKioiIGluIHRoZSBoZWFk ZXIgZmlsZS4KCj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9DQVBfU0VHX0lQVjRfVENQwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIEJJVCgwKQo+PiArI2RlZmluZSBWSVJUQ0hOTDJfQ0FQX1NFR19JUFY0 X1VEUMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBCSVQoMSkKPj4gKyNkZWZpbmUgVklSVENITkwy X0NBUF9TRUdfSVBWNF9TQ1RQwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBCSVQoMikKPj4gKyNkZWZp bmUgVklSVENITkwyX0NBUF9TRUdfSVBWNl9UQ1DCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgQklU KDMpCj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9DQVBfU0VHX0lQVjZfVURQwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIEJJVCg0KQo+PiArI2RlZmluZSBWSVJUQ0hOTDJfQ0FQX1NFR19JUFY2X1NDVFDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIEJJVCg1KQo+PiArI2RlZmluZSBWSVJUQ0hOTDJfQ0FQX1NF R19HRU5FUklDwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgQklUKDYpCj4+ICsjZGVmaW5lIFZJ UlRDSE5MMl9DQVBfU0VHX1RYX1NJTkdMRV9UVU5ORUzCoMKgwqDCoCBCSVQoNykKPj4gKyNkZWZp bmUgVklSVENITkwyX0NBUF9TRUdfVFhfRE9VQkxFX1RVTk5FTMKgwqDCoMKgIEJJVCg4KQo+PiAr Cj4+ICsvKiBWSVJUQ0hOTDJfUlNTX0ZMT1dfVFlQRV9DQVBTCj4+ICsgKiBSZWNlaXZlIFNpZGUg U2NhbGluZyBGbG93IHR5cGUgY2FwYWJpbGl0eSBmbGFncwo+PiArICovCj4+ICsjZGVmaW5lIFZJ UlRDSE5MMl9DQVBfUlNTX0lQVjRfVENQwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIEJJVF9VTEwo MCkKPj4gKyNkZWZpbmUgVklSVENITkwyX0NBUF9SU1NfSVBWNF9VRFDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgQklUX1VMTCgxKQo+PiArI2RlZmluZSBWSVJUQ0hOTDJfQ0FQX1JTU19JUFY0X1ND VFDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIEJJVF9VTEwoMikKPj4gKyNkZWZpbmUgVklSVENITkwy X0NBUF9SU1NfSVBWNF9PVEhFUsKgwqDCoMKgwqDCoMKgwqDCoMKgIEJJVF9VTEwoMykKPj4gKyNk ZWZpbmUgVklSVENITkwyX0NBUF9SU1NfSVBWNl9UQ1DCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg QklUX1VMTCg0KQo+PiArI2RlZmluZSBWSVJUQ0hOTDJfQ0FQX1JTU19JUFY2X1VEUMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBCSVRfVUxMKDUpCj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9DQVBfUlNT X0lQVjZfU0NUUMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgQklUX1VMTCg2KQo+PiArI2RlZmluZSBW SVJUQ0hOTDJfQ0FQX1JTU19JUFY2X09USEVSwqDCoMKgwqDCoMKgwqDCoMKgwqAgQklUX1VMTCg3 KQo+PiArI2RlZmluZSBWSVJUQ0hOTDJfQ0FQX1JTU19JUFY0X0FIwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgQklUX1VMTCg4KQo+PiArI2RlZmluZSBWSVJUQ0hOTDJfQ0FQX1JTU19JUFY0X0VT UMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBCSVRfVUxMKDkpCj4+ICsjZGVmaW5lIFZJUlRDSE5M Ml9DQVBfUlNTX0lQVjRfQUhfRVNQwqDCoMKgwqDCoMKgwqDCoMKgIEJJVF9VTEwoMTApCj4+ICsj ZGVmaW5lIFZJUlRDSE5MMl9DQVBfUlNTX0lQVjZfQUjCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBCSVRfVUxMKDExKQo+PiArI2RlZmluZSBWSVJUQ0hOTDJfQ0FQX1JTU19JUFY2X0VTUMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBCSVRfVUxMKDEyKQo+PiArI2RlZmluZSBWSVJUQ0hOTDJfQ0FQ X1JTU19JUFY2X0FIX0VTUMKgwqDCoMKgwqDCoMKgwqDCoCBCSVRfVUxMKDEzKQo+PiArCj4+ICsv KiBWSVJUQ0hOTDJfSEVBREVSX1NQTElUX0NBUFMKPj4gKyAqIEhlYWRlciBzcGxpdCBjYXBhYmls aXR5IGZsYWdzCj4+ICsgKi8KPj4gKy8qIEZvciBwcmVwZW5kZWQgbWV0YWRhdGHCoCAqLwo+PiAr I2RlZmluZSBWSVJUQ0hOTDJfQ0FQX1JYX0hTUExJVF9BVF9MMsKgwqDCoMKgwqDCoMKgwqDCoCBC SVQoMCkKPj4gKy8qIEFsbCBWTEFOcyBnbyBpbnRvIGhlYWRlciBidWZmZXIgKi8KPj4gKyNkZWZp bmUgVklSVENITkwyX0NBUF9SWF9IU1BMSVRfQVRfTDPCoMKgwqDCoMKgwqDCoMKgwqAgQklUKDEp Cj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9DQVBfUlhfSFNQTElUX0FUX0w0VjTCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgQklUKDIpCj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9DQVBfUlhfSFNQ TElUX0FUX0w0VjbCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgQklUKDMpCj4+ICsKPj4g Ky8qIFZJUlRDSE5MMl9SU0NfT0ZGTE9BRF9DQVBTCj4+ICsgKiBSZWNlaXZlIFNpZGUgQ29hbGVz Y2luZyBvZmZsb2FkIGNhcGFiaWxpdHkgZmxhZ3MKPj4gKyAqLwo+PiArI2RlZmluZSBWSVJUQ0hO TDJfQ0FQX1JTQ19JUFY0X1RDUMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBCSVQoMCkKPj4gKyNk ZWZpbmUgVklSVENITkwyX0NBUF9SU0NfSVBWNF9TQ1RQwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBC SVQoMSkKPj4gKyNkZWZpbmUgVklSVENITkwyX0NBUF9SU0NfSVBWNl9UQ1DCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgQklUKDIpCj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9DQVBfUlNDX0lQVjZfU0NU UMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgQklUKDMpCj4+ICsKPj4gKy8qIFZJUlRDSE5MMl9PVEhF Ul9DQVBTCj4+ICsgKiBPdGhlciBjYXBhYmlsaXR5IGZsYWdzCj4+ICsgKiBTUExJVFFfUVNDSEVE OiBRdWV1ZSBiYXNlZCBzY2hlZHVsaW5nIHVzaW5nIHNwbGl0IHF1ZXVlIG1vZGVsCj4+ICsgKiBU WF9WTEFOOiBWTEFOIHRhZyBpbnNlcnRpb24KPj4gKyAqIFJYX1ZMQU46IFZMQU4gdGFnIHN0cmlw cGluZwo+PiArICovCj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9DQVBfUkRNQcKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgQklUX1VMTCgwKQo+PiArI2RlZmluZSBWSVJUQ0hO TDJfQ0FQX1NSSU9WwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgQklUX1VM TCgxKQo+PiArI2RlZmluZSBWSVJUQ0hOTDJfQ0FQX01BQ0ZJTFRFUsKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgQklUX1VMTCgyKQo+PiArI2RlZmluZSBWSVJU Q0hOTDJfQ0FQX0ZMT1dfRElSRUNUT1LCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIEJJVF9VTEwoMykK Pj4gKyNkZWZpbmUgVklSVENITkwyX0NBUF9TUExJVFFfUVNDSEVEwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBCSVRfVUxMKDQpCj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9DQVBfQ1JDwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIEJJVF9VTEwoNSkKPj4gKyNkZWZpbmUgVklS VENITkwyX0NBUF9BRFHCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg QklUX1VMTCg2KQo+PiArI2RlZmluZSBWSVJUQ0hOTDJfQ0FQX1dCX09OX0lUUsKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgQklUX1VMTCg3KQo+PiArI2RlZmlu ZSBWSVJUQ0hOTDJfQ0FQX1BST01JU0PCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IEJJVF9VTEwoOCkKPj4gKyNkZWZpbmUgVklSVENITkwyX0NBUF9MSU5LX1NQRUVEwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBCSVRfVUxMKDkpCj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9DQVBf SU5MSU5FX0lQU0VDwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIEJJVF9VTEwoMTApCj4+ICsjZGVm aW5lIFZJUlRDSE5MMl9DQVBfTEFSR0VfTlVNX1FVRVVFU8KgwqDCoMKgwqDCoMKgwqAgQklUX1VM TCgxMSkKPj4gKy8qIFJlcXVpcmUgYWRkaXRpb25hbCBpbmZvICovCj4+ICsjZGVmaW5lIFZJUlRD SE5MMl9DQVBfVkxBTsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgQklU X1VMTCgxMikKPj4gKyNkZWZpbmUgVklSVENITkwyX0NBUF9QVFDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgQklUX1VMTCgxMykKPj4gKy8qIEVEVDogRWFybGllc3Qg RGVwYXJ0dXJlIFRpbWUgY2FwYWJpbGl0eSB1c2VkIGZvciBUaW1pbmcgV2hlZWwgKi8KPj4gKyNk ZWZpbmUgVklSVENITkwyX0NBUF9FRFTCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgQklUX1VMTCgxNCkKPj4gKyNkZWZpbmUgVklSVENITkwyX0NBUF9BRFZfUlNTwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBCSVRfVUxMKDE1KQo+PiArI2RlZmluZSBW SVJUQ0hOTDJfQ0FQX0ZESVLCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IEJJVF9VTEwoMTYpCj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9DQVBfUlhfRkxFWF9ERVNDwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIEJJVF9VTEwoMTcpCj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9DQVBf UFRZUEXCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBCSVRfVUxMKDE4KQo+ PiArI2RlZmluZSBWSVJUQ0hOTDJfQ0FQX0xPT1BCQUNLwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgQklUX1VMTCgxOSkKPj4gKy8qIEVuYWJsZSBtaXNzIGNvbXBsZXRpb24gdHlwZXMg cGx1cyBhYmlsaXR5IHRvIGRldGVjdCBhIG1pc3MgCj4+IGNvbXBsZXRpb24gaWYgYQo+PiArICog cmVzZXJ2ZWQgYml0IGlzIHNldCBpbiBhIHN0YW5kYXJlZCBjb21wbGV0aW9uJ3MgdGFnLgo+PiAr ICovCj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9DQVBfTUlTU19DT01QTF9UQUfCoMKgwqDCoMKgwqDC oMKgwqDCoCBCSVRfVUxMKDIwKQo+PiArLyogVGhpcyBtdXN0IGJlIHRoZSBsYXN0IGNhcGFiaWxp dHkgKi8KPj4gKyNkZWZpbmUgVklSVENITkwyX0NBUF9PRU3CoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgQklUX1VMTCg2MykKPj4gKwo+PiArLyogVklSVENITkwyX0RF VklDRV9UWVBFICovCj4+ICsvKiBVbmRlcmx5aW5nIGRldmljZSB0eXBlICovCj4+ICsjZGVmaW5l IFZJUlRDSE5MMl9NRVZfREVWSUNFwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IDAKPj4gKwo+PiArLyogVklSVENITkwyX1RYUV9TQ0hFRF9NT0RFCj4+ICsgKiBUcmFuc21pdCBR dWV1ZSBTY2hlZHVsaW5nIE1vZGVzIC0gUXVldWUgbW9kZSBpcyB0aGUgbGVnYWN5IG1vZGUgCj4+ IGkuZS4gaW5vcmRlcgo+PiArICogY29tcGxldGlvbnMgd2hlcmUgZGVzY3JpcHRvcnMgYW5kIGJ1 ZmZlcnMgYXJlIGNvbXBsZXRlZCBhdCB0aGUgCj4+IHNhbWUgdGltZS4KPj4gKyAqIEZsb3cgc2No ZWR1bGluZyBtb2RlIGFsbG93cyBmb3Igb3V0IG9mIG9yZGVyIHBhY2tldCBwcm9jZXNzaW5nIHdo ZXJlCj4+ICsgKiBkZXNjcmlwdG9ycyBhcmUgY2xlYW5lZCBpbiBvcmRlciwgYnV0IGJ1ZmZlcnMg Y2FuIGJlIGNvbXBsZXRlZCBvdXQgCj4+IG9mIG9yZGVyLgo+PiArICovCj4+ICsjZGVmaW5lIFZJ UlRDSE5MMl9UWFFfU0NIRURfTU9ERV9RVUVVRcKgwqDCoMKgwqDCoMKgwqAgMAo+PiArI2RlZmlu ZSBWSVJUQ0hOTDJfVFhRX1NDSEVEX01PREVfRkxPV8KgwqDCoMKgwqDCoMKgwqDCoCAxCj4+ICsK Pj4gKy8qIFZJUlRDSE5MMl9UWFFfRkxBR1MKPj4gKyAqIFRyYW5zbWl0IFF1ZXVlIGZlYXR1cmUg ZmxhZ3MKPj4gKyAqCj4+ICsgKiBFbmFibGUgcnVsZSBtaXNzIGNvbXBsZXRpb24gdHlwZTsgcGFj a2V0IGNvbXBsZXRpb24gZm9yIGEgcGFja2V0Cj4+ICsgKiBzZW50IG9uIGV4Y2VwdGlvbiBwYXRo OyBvbmx5IHJlbGV2YW50IGluIGZsb3cgc2NoZWR1bGluZyBtb2RlLgo+PiArICovCj4+ICsjZGVm aW5lIFZJUlRDSE5MMl9UWFFfRU5BQkxFX01JU1NfQ09NUEzCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgQklUKDApCj4+ICsKPj4gKy8qIFZJUlRDSE5MMl9QRUVSX1RZUEUKPj4gKyAqIFRy YW5zbWl0IG1haWxib3ggcGVlciB0eXBlCj4+ICsgKi8KPj4gKyNkZWZpbmUgVklSVENITkwyX1JE TUFfQ1BGwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAwCj4+ICsjZGVm aW5lIFZJUlRDSE5MMl9OVk1FX0NQRsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgMQo+PiArI2RlZmluZSBWSVJUQ0hOTDJfQVRFX0NQRsKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAyCj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9MQ0VfQ1BGwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDMKPj4gKwo+PiArLyogVklS VENITkwyX1JYUV9GTEFHUwo+PiArICogUmVjZWl2ZSBRdWV1ZSBGZWF0dXJlIGZsYWdzCj4+ICsg Ki8KPj4gKyNkZWZpbmUgVklSVENITkwyX1JYUV9SU0PCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgQklUKDApCj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9SWFFfSERSX1NQ TElUwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBCSVQoMSkK Pj4gKy8qIFdoZW4gc2V0LCBwYWNrZXQgZGVzY3JpcHRvcnMgYXJlIGZsdXNoZWQgYnkgaGFyZHdh cmUgaW1tZWRpYXRlbHkgCj4+IGFmdGVyCj4+ICsgKiBwcm9jZXNzaW5nIGVhY2ggcGFja2V0Lgo+ PiArICovCj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9SWFFfSU1NRURJQVRFX1dSSVRFX0JBQ0vCoMKg wqDCoCBCSVQoMikKPj4gKyNkZWZpbmUgVklSVENITkwyX1JYX0RFU0NfU0laRV8xNkJZVEXCoMKg wqDCoMKgwqDCoMKgwqAgQklUKDMpCj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9SWF9ERVNDX1NJWkVf MzJCWVRFwqDCoMKgwqDCoMKgwqDCoMKgIEJJVCg0KQo+PiArCj4+ICsvKiBWSVJUQ0hOTDJfUlNT X0FMR09SSVRITQo+PiArICogVHlwZSBvZiBSU1MgYWxnb3JpdGhtCj4+ICsgKi8KPj4gKyNkZWZp bmUgVklSVENITkwyX1JTU19BTEdfVE9FUExJVFpfQVNZTU1FVFJJQ8KgwqDCoMKgwqDCoMKgwqDC oCAwCj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9SU1NfQUxHX1JfQVNZTU1FVFJJQ8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIDEKPj4gKyNkZWZpbmUgVklSVENITkwyX1JTU19BTEdfVE9F UExJVFpfU1lNTUVUUklDwqDCoMKgwqDCoMKgwqDCoMKgwqAgMgo+PiArI2RlZmluZSBWSVJUQ0hO TDJfUlNTX0FMR19YT1JfU1lNTUVUUklDwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCAzCj4+ICsKPj4gKy8qIFZJUlRDSE5MMl9FVkVOVF9DT0RFUwo+PiArICog VHlwZSBvZiBldmVudAo+PiArICovCj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9FVkVOVF9VTktOT1dO wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAwCj4+ICsjZGVm aW5lIFZJUlRDSE5MMl9FVkVOVF9MSU5LX0NIQU5HRcKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgMQo+ PiArLyogRXZlbnQgdHlwZSAyLCAzIGFyZSByZXNlcnZlZCAqLwo+PiArCj4+ICsvKiBWSVJUQ0hO TDJfUVVFVUVfVFlQRQo+PiArICogVHJhbnNtaXQgYW5kIFJlY2VpdmUgcXVldWUgdHlwZXMgYXJl IHZhbGlkIGluIGxlZ2FjeSBhcyB3ZWxsIGFzIAo+PiBzcGxpdCBxdWV1ZQo+PiArICogbW9kZWxz LiBXaXRoIFNwbGl0IFF1ZXVlIG1vZGVsLCAyIGFkZGl0aW9uYWwgdHlwZXMgYXJlIGludHJvZHVj ZWQgLQo+PiArICogVFhfQ09NUExFVElPTiBhbmQgUlhfQlVGRkVSLiBJbiBzcGxpdCBxdWV1ZSBt b2RlbCwgcmVjZWl2ZSAgCj4+IGNvcnJlc3BvbmRzIHRvCj4+ICsgKiB0aGUgcXVldWUgd2hlcmUg aGFyZHdhcmUgcG9zdHMgY29tcGxldGlvbnMuCj4+ICsgKi8KPj4gKyNkZWZpbmUgVklSVENITkwy X1FVRVVFX1RZUEVfVFjCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIDAKPj4gKyNkZWZpbmUgVklSVENITkwyX1FVRVVFX1RZUEVfUljCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDEKPj4gKyNkZWZpbmUgVklSVENITkwyX1FV RVVFX1RZUEVfVFhfQ09NUExFVElPTsKgwqDCoMKgIDIKPj4gKyNkZWZpbmUgVklSVENITkwyX1FV RVVFX1RZUEVfUlhfQlVGRkVSwqDCoMKgwqDCoMKgwqDCoCAzCj4+ICsjZGVmaW5lIFZJUlRDSE5M Ml9RVUVVRV9UWVBFX0NPTkZJR19UWMKgwqDCoMKgwqDCoMKgwqAgNAo+PiArI2RlZmluZSBWSVJU Q0hOTDJfUVVFVUVfVFlQRV9DT05GSUdfUljCoMKgwqDCoMKgwqDCoMKgIDUKPj4gKy8qIFF1ZXVl IHR5cGVzIDYsIDcsIDgsIDkgYXJlIHJlc2VydmVkICovCj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9R VUVVRV9UWVBFX01CWF9UWMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgMTAKPj4gKyNkZWZpbmUgVklS VENITkwyX1FVRVVFX1RZUEVfTUJYX1JYwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAxMQo+PiArCj4+ ICsvKiBWSVJUQ0hOTDJfSVRSX0lEWAo+PiArICogVmlydGNoYW5uZWwgaW50ZXJydXB0IHRocm90 dGxpbmcgcmF0ZSBpbmRleAo+PiArICovCj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9JVFJfSURYXzDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAwCj4+ICsjZGVmaW5lIFZJUlRD SE5MMl9JVFJfSURYXzHCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAxCj4+ ICsKPj4gKy8qIFZJUlRDSE5MMl9NQUNfVFlQRQo+PiArICogVklSVENITkwyX01BQ19BRERSX1BS SU1BUlkKPj4gKyAqIFBGL1ZGIGRyaXZlciBzaG91bGQgc2V0IEB0eXBlIHRvIFZJUlRDSE5MMl9N QUNfQUREUl9QUklNQVJZIGZvciB0aGUKPj4gKyAqIHByaW1hcnkvZGV2aWNlIHVuaWNhc3QgTUFD IGFkZHJlc3MgZmlsdGVyIGZvciAKPj4gVklSVENITkwyX09QX0FERF9NQUNfQUREUiBhbmQKPj4g KyAqIFZJUlRDSE5MMl9PUF9ERUxfTUFDX0FERFIuIFRoaXMgYWxsb3dzIGZvciB0aGUgdW5kZXJs eWluZyBjb250cm9sIAo+PiBwbGFuZQo+PiArICogZnVuY3Rpb24gdG8gYWNjdXJhdGVseSB0cmFj ayB0aGUgTUFDIGFkZHJlc3MgYW5kIGZvciBWTS9mdW5jdGlvbiAKPj4gcmVzZXQuCj4+ICsgKgo+ PiArICogVklSVENITkwyX01BQ19BRERSX0VYVFJBCj4+ICsgKiBQRi9WRiBkcml2ZXIgc2hvdWxk IHNldCBAdHlwZSB0byBWSVJUQ0hOTDJfTUFDX0FERFJfRVhUUkEgZm9yIGFueSAKPj4gZXh0cmEK Pj4gKyAqIHVuaWNhc3QgYW5kL29yIG11bHRpY2FzdCBmaWx0ZXJzIHRoYXQgYXJlIGJlaW5nIGFk ZGVkL2RlbGV0ZWQgdmlhCj4+ICsgKiBWSVJUQ0hOTDJfT1BfQUREX01BQ19BRERSL1ZJUlRDSE5M Ml9PUF9ERUxfTUFDX0FERFIgcmVzcGVjdGl2ZWx5Lgo+PiArICovCj4+ICsjZGVmaW5lIFZJUlRD SE5MMl9NQUNfQUREUl9QUklNQVJZwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDEKPj4gKyNkZWZp bmUgVklSVENITkwyX01BQ19BRERSX0VYVFJBwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAy Cj4+ICsKPj4gKy8qIFZJUlRDSE5MMl9QUk9NSVNDX0ZMQUdTCj4+ICsgKiBGbGFncyB1c2VkIGZv ciBwcm9taXNjdW91cyBtb2RlCj4+ICsgKi8KPj4gKyNkZWZpbmUgVklSVENITkwyX1VOSUNBU1Rf UFJPTUlTQ8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIEJJVCgwKQo+PiArI2RlZmluZSBWSVJU Q0hOTDJfTVVMVElDQVNUX1BST01JU0PCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIEJJVCgxKQo+PiAr Cj4+ICsvKiBWSVJUQ0hOTDJfUFJPVE9fSERSX1RZUEUKPj4gKyAqIFByb3RvY29sIGhlYWRlciB0 eXBlIHdpdGhpbiBhIHBhY2tldCBzZWdtZW50LiBBIHNlZ21lbnQgY29uc2lzdHMgCj4+IG9mIG9u ZSBvcgo+PiArICogbW9yZSBwcm90b2NvbCBoZWFkZXJzIHRoYXQgbWFrZSB1cCBhIGxvZ2ljYWwg Z3JvdXAgb2YgcHJvdG9jb2wgCj4+IGhlYWRlcnMuIEVhY2gKPj4gKyAqIGxvZ2ljYWwgZ3JvdXAg b2YgcHJvdG9jb2wgaGVhZGVycyBlbmNhcHN1bGF0ZXMgb3IgaXMgZW5jYXBzdWxhdGVkIAo+PiB1 c2luZy9ieQo+PiArICogdHVubmVsaW5nIG9yIGVuY2Fwc3VsYXRpb24gcHJvdG9jb2xzIGZvciBu ZXR3b3JrIHZpcnR1YWxpemF0aW9uLgo+PiArICovCj4+ICsvKiBWSVJUQ0hOTDJfUFJPVE9fSERS X0FOWSBpcyBhIG1hbmRhdG9yeSBwcm90b2NvbCBpZCAqLwo+PiArI2RlZmluZSBWSVJUQ0hOTDJf UFJPVE9fSERSX0FOWcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgMAo+PiArI2RlZmluZSBWSVJUQ0hOTDJfUFJPVE9fSERSX1BSRV9NQUPCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIDEKPj4gKy8qIFZJUlRDSE5MMl9QUk9UT19IRFJfTUFDIGlzIGEgbWFuZGF0b3J5 IHByb3RvY29sIGlkICovCj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9QUk9UT19IRFJfTUFDwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAyCj4+ICsjZGVmaW5lIFZJ UlRDSE5MMl9QUk9UT19IRFJfUE9TVF9NQUPCoMKgwqDCoMKgwqDCoMKgwqDCoCAzCj4+ICsjZGVm aW5lIFZJUlRDSE5MMl9QUk9UT19IRFJfRVRIRVJUWVBFwqDCoMKgwqDCoMKgwqDCoMKgIDQKPj4g KyNkZWZpbmUgVklSVENITkwyX1BST1RPX0hEUl9WTEFOwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCA1Cj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9QUk9UT19IRFJfU1ZMQU7CoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCA2Cj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9QUk9UT19IRFJfQ1ZMQU7CoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA3Cj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9QUk9UT19IRFJf TVBMU8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgOAo+PiArI2RlZmluZSBWSVJUQ0hOTDJf UFJPVE9fSERSX1VNUExTwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgOQo+PiArI2RlZmluZSBW SVJUQ0hOTDJfUFJPVE9fSERSX01NUExTwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgMTAKPj4g KyNkZWZpbmUgVklSVENITkwyX1BST1RPX0hEUl9QVFDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIDExCj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9QUk9UT19IRFJf Q1RSTMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgMTIKPj4gKyNkZWZpbmUgVklSVENITkwy X1BST1RPX0hEUl9MTERQwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAxMwo+PiArI2RlZmlu ZSBWSVJUQ0hOTDJfUFJPVE9fSERSX0FSUMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgMTQKPj4gKyNkZWZpbmUgVklSVENITkwyX1BST1RPX0hEUl9FQ1DCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDE1Cj4+ICsjZGVmaW5l IFZJUlRDSE5MMl9QUk9UT19IRFJfRUFQT0zCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAxNgo+ PiArI2RlZmluZSBWSVJUQ0hOTDJfUFJPVE9fSERSX1BQUE9EwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgMTcKPj4gKyNkZWZpbmUgVklSVENITkwyX1BST1RPX0hEUl9QUFBPRcKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIDE4Cj4+ICsvKiBWSVJUQ0hOTDJfUFJPVE9fSERSX0lQVjQgaXMgYSBt YW5kYXRvcnkgcHJvdG9jb2wgaWQgKi8KPj4gKyNkZWZpbmUgVklSVENITkwyX1BST1RPX0hEUl9J UFY0wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAxOQo+PiArLyogSVB2NCBhbmQgSVB2NiBG cmFnbWVudCBoZWFkZXIgdHlwZXMgYXJlIG9ubHkgYXNzb2NpYXRlZCB0bwo+PiArICogVklSVENI TkwyX1BST1RPX0hEUl9JUFY0IGFuZCBWSVJUQ0hOTDJfUFJPVE9fSERSX0lQVjYgcmVzcGVjdGl2 ZWx5LAo+PiArICogY2Fubm90IGJlIHVzZWQgaW5kZXBlbmRlbnRseS4KPj4gKyAqLwo+PiArLyog VklSVENITkwyX1BST1RPX0hEUl9JUFY0X0ZSQUcgaXMgYSBtYW5kYXRvcnkgcHJvdG9jb2wgaWQg Ki8KPj4gKyNkZWZpbmUgVklSVENITkwyX1BST1RPX0hEUl9JUFY0X0ZSQUfCoMKgwqDCoMKgwqDC oMKgwqAgMjAKPj4gKy8qIFZJUlRDSE5MMl9QUk9UT19IRFJfSVBWNiBpcyBhIG1hbmRhdG9yeSBw cm90b2NvbCBpZCAqLwo+PiArI2RlZmluZSBWSVJUQ0hOTDJfUFJPVE9fSERSX0lQVjbCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIDIxCj4+ICsvKiBWSVJUQ0hOTDJfUFJPVE9fSERSX0lQVjZf RlJBRyBpcyBhIG1hbmRhdG9yeSBwcm90b2NvbCBpZCAqLwo+PiArI2RlZmluZSBWSVJUQ0hOTDJf UFJPVE9fSERSX0lQVjZfRlJBR8KgwqDCoMKgwqDCoMKgwqDCoCAyMgo+PiArI2RlZmluZSBWSVJU Q0hOTDJfUFJPVE9fSERSX0lQVjZfRUjCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDIzCj4+ICsvKiBW SVJUQ0hOTDJfUFJPVE9fSERSX1VEUCBpcyBhIG1hbmRhdG9yeSBwcm90b2NvbCBpZCAqLwo+PiAr I2RlZmluZSBWSVJUQ0hOTDJfUFJPVE9fSERSX1VEUMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgMjQKPj4gKy8qIFZJUlRDSE5MMl9QUk9UT19IRFJfVENQIGlz IGEgbWFuZGF0b3J5IHByb3RvY29sIGlkICovCj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9QUk9UT19I RFJfVENQwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAyNQo+ PiArLyogVklSVENITkwyX1BST1RPX0hEUl9TQ1RQIGlzIGEgbWFuZGF0b3J5IHByb3RvY29sIGlk ICovCj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9QUk9UT19IRFJfU0NUUMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgMjYKPj4gKy8qIFZJUlRDSE5MMl9QUk9UT19IRFJfSUNNUCBpcyBhIG1hbmRh dG9yeSBwcm90b2NvbCBpZCAqLwo+PiArI2RlZmluZSBWSVJUQ0hOTDJfUFJPVE9fSERSX0lDTVDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDI3Cj4+ICsvKiBWSVJUQ0hOTDJfUFJPVE9fSERS X0lDTVBWNiBpcyBhIG1hbmRhdG9yeSBwcm90b2NvbCBpZCAqLwo+PiArI2RlZmluZSBWSVJUQ0hO TDJfUFJPVE9fSERSX0lDTVBWNsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAyOAo+PiArI2RlZmlu ZSBWSVJUQ0hOTDJfUFJPVE9fSERSX0lHTVDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDI5 Cj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9QUk9UT19IRFJfQUjCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCAzMAo+PiArI2RlZmluZSBWSVJUQ0hOTDJfUFJPVE9fSERSX0VTUMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgMzEKPj4gKyNkZWZpbmUgVklS VENITkwyX1BST1RPX0hEUl9JS0XCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIDMyCj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9QUk9UT19IRFJfTkFUVF9LRUVQwqDC oMKgwqDCoMKgwqDCoMKgIDMzCj4+ICsvKiBWSVJUQ0hOTDJfUFJPVE9fSERSX1BBWSBpcyBhIG1h bmRhdG9yeSBwcm90b2NvbCBpZCAqLwo+PiArI2RlZmluZSBWSVJUQ0hOTDJfUFJPVE9fSERSX1BB WcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgMzQKPj4gKyNk ZWZpbmUgVklSVENITkwyX1BST1RPX0hEUl9MMlRQVjLCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg MzUKPj4gKyNkZWZpbmUgVklSVENITkwyX1BST1RPX0hEUl9MMlRQVjJfQ09OVFJPTMKgwqDCoMKg IDM2Cj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9QUk9UT19IRFJfTDJUUFYzwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIDM3Cj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9QUk9UT19IRFJfR1RQwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAzOAo+PiArI2RlZmluZSBWSVJU Q0hOTDJfUFJPVE9fSERSX0dUUF9FSMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAzOQo+PiArI2Rl ZmluZSBWSVJUQ0hOTDJfUFJPVE9fSERSX0dUUENWMsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA0 MAo+PiArI2RlZmluZSBWSVJUQ0hOTDJfUFJPVE9fSERSX0dUUENfVEVJRMKgwqDCoMKgwqDCoMKg wqDCoCA0MQo+PiArI2RlZmluZSBWSVJUQ0hOTDJfUFJPVE9fSERSX0dUUFXCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIDQyCj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9QUk9UT19IRFJfR1RQVV9V TMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgNDMKPj4gKyNkZWZpbmUgVklSVENITkwyX1BST1RPX0hE Ul9HVFBVX0RMwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA0NAo+PiArI2RlZmluZSBWSVJUQ0hOTDJf UFJPVE9fSERSX0VDUFJJwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgNDUKPj4gKyNkZWZpbmUg VklSVENITkwyX1BST1RPX0hEUl9WUlJQwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA0Ngo+ PiArI2RlZmluZSBWSVJUQ0hOTDJfUFJPVE9fSERSX09TUEbCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIDQ3Cj4+ICsvKiBWSVJUQ0hOTDJfUFJPVE9fSERSX1RVTiBpcyBhIG1hbmRhdG9yeSBw cm90b2NvbCBpZCAqLwo+PiArI2RlZmluZSBWSVJUQ0hOTDJfUFJPVE9fSERSX1RVTsKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgNDgKPj4gKyNkZWZpbmUgVklS VENITkwyX1BST1RPX0hEUl9HUkXCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIDQ5Cj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9QUk9UT19IRFJfTlZHUkXCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCA1MAo+PiArI2RlZmluZSBWSVJUQ0hOTDJfUFJPVE9fSERSX1ZY TEFOwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgNTEKPj4gKyNkZWZpbmUgVklSVENITkwyX1BS T1RPX0hEUl9WWExBTl9HUEXCoMKgwqDCoMKgwqDCoMKgwqAgNTIKPj4gKyNkZWZpbmUgVklSVENI TkwyX1BST1RPX0hEUl9HRU5FVkXCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgNTMKPj4gKyNkZWZp bmUgVklSVENITkwyX1BST1RPX0hEUl9OU0jCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIDU0Cj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9QUk9UT19IRFJfUVVJQ8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgNTUKPj4gKyNkZWZpbmUgVklSVENITkwyX1BST1RP X0hEUl9QRkNQwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA1Ngo+PiArI2RlZmluZSBWSVJU Q0hOTDJfUFJPVE9fSERSX1BGQ1BfTk9ERcKgwqDCoMKgwqDCoMKgwqDCoCA1Nwo+PiArI2RlZmlu ZSBWSVJUQ0hOTDJfUFJPVE9fSERSX1BGQ1BfU0VTU0lPTsKgwqDCoMKgwqDCoCA1OAo+PiArI2Rl ZmluZSBWSVJUQ0hOTDJfUFJPVE9fSERSX1JUUMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgNTkKPj4gKyNkZWZpbmUgVklSVENITkwyX1BST1RPX0hEUl9ST0NF wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA2MAo+PiArI2RlZmluZSBWSVJUQ0hOTDJfUFJP VE9fSERSX1JPQ0VWMcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA2MQo+PiArI2RlZmluZSBWSVJU Q0hOTDJfUFJPVE9fSERSX1JPQ0VWMsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA2Mgo+PiArLyog UHJvdG9jb2wgaWRzIHVwIHRvIDMyNzY3IGFyZSByZXNlcnZlZCBmb3IgQVZGIHVzZSAqLwo+IAo+ IFdoeSBhcmUgd2UgbWVudGlvbmluZyBBVkYgaGVyZT/CoCBJcyB0aGlzIHN1cHBvc2VkIHRvIGJl IFZpcnRjaG5sMiB1c2U/Cj4gCgpUaGFua3MgZm9yIHBvaW50aW5nIG91dC4gUmVtb3ZlZCB0aGUg QVZGIHJlZmVyZW5jZSBhcyBpdCBpcyBub3QgbmVjZXNzYXJ5LgoKPj4gKy8qIDMyNzY4IC0gNjU1 MzQgYXJlIHVzZWQgZm9yIHVzZXIgZGVmaW5lZCBwcm90b2NvbCBpZHMgKi8KPj4gKy8qIFZJUlRD SE5MMl9QUk9UT19IRFJfTk9fUFJPVE8gaXMgYSBtYW5kYXRvcnkgcHJvdG9jb2wgaWQgKi8KPj4g KyNkZWZpbmUgVklSVENITkwyX1BST1RPX0hEUl9OT19QUk9UT8KgwqDCoMKgwqDCoMKgwqDCoMKg IDY1NTM1Cj4+ICsKPj4gKyNkZWZpbmUgVklSVENITkwyX1ZFUlNJT05fTUFKT1JfMsKgwqDCoMKg wqDCoMKgIDIKPj4gKyNkZWZpbmUgVklSVENITkwyX1ZFUlNJT05fTUlOT1JfMMKgwqDCoMKgwqDC oMKgIDAKPiAKPiBJZiB0aGlzIGlzIHJlbGF0ZWQgdG8gdGhlIElEUEYgc3BlYyB2ZXJzaW9uLCB3 aHkgaXMgaXQgbm90IDAuOT/CoCBJZiB0aGlzIAo+IGlzIHNvbWV0aGluZyBlbHNlLCB3aGF0IGhh cHBlbmVkIHRvIG1ham9yIHZlcnNpb24gMT8KPiAKCklQVSBIVyBzdXBwb3J0cyBib3RoIHRoZSB2 ZXJzaW9ucywgdmlydGNobmwxIGFuZCB2aXJ0Y2hubDIuIElEUEYgb25seSAKc3VwcG9ydHMgdmly dGNobmwyIHZlcnNpb24uIFZpcnRjaG5sIHZlcnNpb24xIHVzZXMgbWFqb3IgbnVtYmVyIGFzIDEg CnVzZWQgYnkgQVZGIHdoZXJlYXMgdmlydGNobmwgdmVyc2lvbjIgdXNlcyAyIGFzIHRoZSBtYWpv ciBudW1iZXIgdXNlZCBieSAKSURQRi4KCj4+ICsKPj4gKy8qIFZJUlRDSE5MMl9PUF9HRVRfRURU X0NBUFMKPj4gKyAqIEdldCBFRFQgZ3JhbnVsYXJpdHkgYW5kIHRpbWUgaG9yaXpvbgo+PiArICov Cj4+ICtzdHJ1Y3QgdmlydGNobmwyX2VkdF9jYXBzIHsKPj4gK8KgwqDCoMKgwqDCoCAvKiBUaW1l c3RhbXAgZ3JhbnVsYXJpdHkgaW4gbmFub3NlY29uZHMgKi8KPj4gK8KgwqDCoMKgwqDCoCBfX2xl NjQgdHN0YW1wX2dyYW51bGFyaXR5X25zOwo+PiArwqDCoMKgwqDCoMKgIC8qIFRvdGFsIHRpbWUg d2luZG93IGluIG5hbm9zZWNvbmRzICovCj4+ICvCoMKgwqDCoMKgwqAgX19sZTY0IHRpbWVfaG9y aXpvbl9uczsKPj4gK307Cj4+ICsKPj4gK1ZJUlRDSE5MMl9DSEVDS19TVFJVQ1RfTEVOKDE2LCB2 aXJ0Y2hubDJfZWR0X2NhcHMpOwo+IAo+IERvbid0IHB1dCBhIHNwYWNlIGJldHdlZW4gdGhlIHN0 cnVjdCBhbmQgdGhlIGNoZWNrLgo+IAoKQ2hlY2twYXRjaCByZXBvcnRzIGEgd2FybmluZyAoYWN0 dWFsbHkgYSAnQ2hlY2snKSB3aGVuIHRoZSBuZXdsaW5lIGlzCnJlbW92ZWQuIEZvbGxvd2luZyBp cyB0aGUgY2hlY2twYXRjaCBvdXRwdXQgd2hlbiB0aGUgbmV3bGluZSBpcyByZW1vdmVkOgoKIkNI RUNLOiBQbGVhc2UgdXNlIGEgYmxhbmsgbGluZSBhZnRlciBmdW5jdGlvbi9zdHJ1Y3QvdW5pb24v ZW51bSAKZGVjbGFyYXRpb25zIgoKPj4gKwo+PiArLyogVklSVENITkwyX09QX1ZFUlNJT04KPj4g KyAqIFBGL1ZGIHBvc3RzIGl0cyB2ZXJzaW9uIG51bWJlciB0byB0aGUgQ1AuIENQIHJlc3BvbmRz IHdpdGggaXRzIAo+PiB2ZXJzaW9uIG51bWJlcgo+PiArICogaW4gdGhlIHNhbWUgZm9ybWF0LCBh bG9uZyB3aXRoIGEgcmV0dXJuIGNvZGUuCj4+ICsgKiBJZiB0aGVyZSBpcyBhIG1ham9yIHZlcnNp b24gbWlzbWF0Y2gsIHRoZW4gdGhlIFBGL1ZGIGNhbm5vdCBvcGVyYXRlLgo+PiArICogSWYgdGhl cmUgaXMgYSBtaW5vciB2ZXJzaW9uIG1pc21hdGNoLCB0aGVuIHRoZSBQRi9WRiBjYW4gb3BlcmF0 ZSAKPj4gYnV0IHNob3VsZAo+PiArICogYWRkIGEgd2FybmluZyB0byB0aGUgc3lzdGVtIGxvZy4K Pj4gKyAqCj4+ICsgKiBUaGlzIHZlcnNpb24gb3Bjb2RlIE1VU1QgYWx3YXlzIGJlIHNwZWNpZmll ZCBhcyA9PSAxLCByZWdhcmRsZXNzIAo+PiBvZiBvdGhlcgo+PiArICogY2hhbmdlcyBpbiB0aGUg QVBJLiBUaGUgQ1AgbXVzdCBhbHdheXMgcmVzcG9uZCB0byB0aGlzIG1lc3NhZ2UgCj4+IHdpdGhv dXQKPj4gKyAqIGVycm9yIHJlZ2FyZGxlc3Mgb2YgdmVyc2lvbiBtaXNtYXRjaC4KPj4gKyAqLwo+ PiArc3RydWN0IHZpcnRjaG5sMl92ZXJzaW9uX2luZm8gewo+PiArwqDCoMKgwqDCoMKgIF9fbGUz MiBtYWpvcjsKPj4gK8KgwqDCoMKgwqDCoCBfX2xlMzIgbWlub3I7Cj4+ICt9Owo+PiArCj4+ICtW SVJUQ0hOTDJfQ0hFQ0tfU1RSVUNUX0xFTig4LCB2aXJ0Y2hubDJfdmVyc2lvbl9pbmZvKTsKPj4g Kwo+PiArLyogVklSVENITkwyX09QX0dFVF9DQVBTCj4+ICsgKiBEYXRhcGxhbmUgZHJpdmVyIHNl bmRzIHRoaXMgbWVzc2FnZSB0byBDUCB0byBuZWdvdGlhdGUgCj4+IGNhcGFiaWxpdGllcyBhbmQK Pj4gKyAqIHByb3ZpZGVzIGEgdmlydGNobmwyX2dldF9jYXBhYmlsaXRpZXMgc3RydWN0dXJlIHdp dGggaXRzIGRlc2lyZWQKPj4gKyAqIGNhcGFiaWxpdGllcywgbWF4X3NyaW92X3ZmcyBhbmQgbnVt X2FsbG9jYXRlZF92ZWN0b3JzLgo+PiArICogQ1AgcmVzcG9uZHMgd2l0aCBhIHZpcnRjaG5sMl9n ZXRfY2FwYWJpbGl0aWVzIHN0cnVjdHVyZSB1cGRhdGVkCj4+ICsgKiB3aXRoIGFsbG93ZWQgY2Fw YWJpbGl0aWVzIGFuZCB0aGUgb3RoZXIgZmllbGRzIGFzIGJlbG93Lgo+PiArICogSWYgUEYgc2V0 cyBtYXhfc3Jpb3ZfdmZzIGFzIDAsIENQIHdpbGwgcmVzcG9uZCB3aXRoIG1heCBudW1iZXIgb2Yg VkZzCj4+ICsgKiB0aGF0IGNhbiBiZSBjcmVhdGVkIGJ5IHRoaXMgUEYuIEZvciBhbnkgb3RoZXIg dmFsdWUgJ24nLCBDUCByZXNwb25kcwo+PiArICogd2l0aCBtYXhfc3Jpb3ZfdmZzIHNldCB0byBt aW4obiwgeCkgd2hlcmUgeCBpcyB0aGUgbWF4IG51bWJlciBvZiBWRnMKPj4gKyAqIGFsbG93ZWQg YnkgQ1AncyBwb2xpY3kuIG1heF9zcmlvdl92ZnMgaXMgbm90IGFwcGxpY2FibGUgZm9yIFZGcy4K Pj4gKyAqIElmIGRhdGFwbGFuZSBkcml2ZXIgc2V0cyBudW1fYWxsb2NhdGVkX3ZlY3RvcnMgYXMg MCwgQ1Agd2lsbCAKPj4gcmVzcG9uZCB3aXRoIDEKPj4gKyAqIHdoaWNoIGlzIGRlZmF1bHQgdmVj dG9yIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGVmYXVsdCBtYWlsYm94LiBGb3IgCj4+IGFueSBvdGhl cgo+PiArICogdmFsdWUgJ24nLCBDUCByZXNwb25kcyB3aXRoIGEgdmFsdWUgPD0gbiBiYXNlZCBv biB0aGUgQ1AncyBwb2xpY3kgb2YKPj4gKyAqIG1heCBudW1iZXIgb2YgdmVjdG9ycyBmb3IgYSBQ Ri4KPj4gKyAqIENQIHdpbGwgcmVzcG9uZCB3aXRoIHRoZSB2ZWN0b3IgSUQgb2YgbWFpbGJveCBh bGxvY2F0ZWQgdG8gdGhlIFBGIGluCj4+ICsgKiBtYWlsYm94X3ZlY3Rvcl9pZCBhbmQgdGhlIG51 bWJlciBvZiBpdHIgaW5kZXggcmVnaXN0ZXJzIGluIAo+PiBpdHJfaWR4X21hcC4KPj4gKyAqIEl0 IGFsc28gcmVzcG9uZHMgd2l0aCBkZWZhdWx0IG51bWJlciBvZiB2cG9ydHMgdGhhdCB0aGUgZGF0 YXBsYW5lIAo+PiBkcml2ZXIKPj4gKyAqIHNob3VsZCBjb21ldXAgd2l0aCBpbiBkZWZhdWx0X251 bV92cG9ydHMgYW5kIG1heGltdW0gbnVtYmVyIG9mIAo+PiB2cG9ydHMgdGhhdAo+PiArICogY2Fu IGJlIHN1cHBvcnRlZCBpbiBtYXhfdnBvcnRzLgo+PiArICovCj4+ICtzdHJ1Y3QgdmlydGNobmwy X2dldF9jYXBhYmlsaXRpZXMgewo+PiArwqDCoMKgwqDCoMKgIC8qIFNlZSBWSVJUQ0hOTDJfQ0hF Q0tTVU1fT0ZGTE9BRF9DQVBTIGRlZmluaXRpb25zICovCj4+ICvCoMKgwqDCoMKgwqAgX19sZTMy IGNzdW1fY2FwczsKPj4gK8KgwqDCoMKgwqDCoCAvKiBTZWUgVklSVENITkwyX1NFR01FTlRBVElP Tl9PRkZMT0FEX0NBUFMgZGVmaW5pdGlvbnMgKi8KPj4gK8KgwqDCoMKgwqDCoCBfX2xlMzIgc2Vn X2NhcHM7Cj4+ICvCoMKgwqDCoMKgwqAgLyogU2VlIFZJUlRDSE5MMl9IRUFERVJfU1BMSVRfQ0FQ UyBkZWZpbml0aW9ucyAqLwo+PiArwqDCoMKgwqDCoMKgIF9fbGUzMiBoc3BsaXRfY2FwczsKPj4g K8KgwqDCoMKgwqDCoCAvKiBTZWUgVklSVENITkwyX1JTQ19PRkZMT0FEX0NBUFMgZGVmaW5pdGlv bnMgKi8KPj4gK8KgwqDCoMKgwqDCoCBfX2xlMzIgcnNjX2NhcHM7Cj4+ICvCoMKgwqDCoMKgwqAg LyogU2VlIFZJUlRDSE5MMl9SU1NfRkxPV19UWVBFX0NBUFMgZGVmaW5pdGlvbnPCoCAqLwo+PiAr wqDCoMKgwqDCoMKgIF9fbGU2NCByc3NfY2FwczsKPj4gK8KgwqDCoMKgwqDCoCAvKiBTZWUgVklS VENITkwyX09USEVSX0NBUFMgZGVmaW5pdGlvbnPCoCAqLwo+PiArwqDCoMKgwqDCoMKgIF9fbGU2 NCBvdGhlcl9jYXBzOwo+PiArCj4+ICvCoMKgwqDCoMKgwqAgLyogRFlOX0NUTCByZWdpc3RlciBv ZmZzZXQgYW5kIHZlY3RvciBpZCBmb3IgbWFpbGJveCBwcm92aWRlZCAKPj4gYnkgQ1AgKi8KPj4g K8KgwqDCoMKgwqDCoCBfX2xlMzIgbWFpbGJveF9keW5fY3RsOwo+PiArwqDCoMKgwqDCoMKgIF9f bGUxNiBtYWlsYm94X3ZlY3Rvcl9pZDsKPj4gK8KgwqDCoMKgwqDCoCAvKiBNYXhpbXVtIG51bWJl ciBvZiBhbGxvY2F0ZWQgdmVjdG9ycyBmb3IgdGhlIGRldmljZSAqLwo+PiArwqDCoMKgwqDCoMKg IF9fbGUxNiBudW1fYWxsb2NhdGVkX3ZlY3RvcnM7Cj4+ICsKPj4gK8KgwqDCoMKgwqDCoCAvKiBN YXhpbXVtIG51bWJlciBvZiBxdWV1ZXMgdGhhdCBjYW4gYmUgc3VwcG9ydGVkICovCj4+ICvCoMKg wqDCoMKgwqAgX19sZTE2IG1heF9yeF9xOwo+PiArwqDCoMKgwqDCoMKgIF9fbGUxNiBtYXhfdHhf cTsKPj4gK8KgwqDCoMKgwqDCoCBfX2xlMTYgbWF4X3J4X2J1ZnE7Cj4+ICvCoMKgwqDCoMKgwqAg X19sZTE2IG1heF90eF9jb21wbHE7Cj4+ICsKPj4gK8KgwqDCoMKgwqDCoCAvKiBUaGUgUEYgc2Vu ZHMgdGhlIG1heGltdW0gVkZzIGl0IGlzIHJlcXVlc3RpbmcuIFRoZSBDUCAKPj4gcmVzcG9uZHMg d2l0aAo+PiArwqDCoMKgwqDCoMKgwqAgKiB0aGUgbWF4aW11bSBWRnMgZ3JhbnRlZC4KPj4gK8Kg wqDCoMKgwqDCoMKgICovCj4+ICvCoMKgwqDCoMKgwqAgX19sZTE2IG1heF9zcmlvdl92ZnM7Cj4+ ICsKPj4gK8KgwqDCoMKgwqDCoCAvKiBNYXhpbXVtIG51bWJlciBvZiB2cG9ydHMgdGhhdCBjYW4g YmUgc3VwcG9ydGVkICovCj4+ICvCoMKgwqDCoMKgwqAgX19sZTE2IG1heF92cG9ydHM7Cj4+ICvC oMKgwqDCoMKgwqAgLyogRGVmYXVsdCBudW1iZXIgb2YgdnBvcnRzIGRyaXZlciBzaG91bGQgYWxs b2NhdGUgb24gbG9hZCAqLwo+PiArwqDCoMKgwqDCoMKgIF9fbGUxNiBkZWZhdWx0X251bV92cG9y dHM7Cj4+ICsKPj4gK8KgwqDCoMKgwqDCoCAvKiBNYXggaGVhZGVyIGxlbmd0aCBoYXJkd2FyZSBj YW4gcGFyc2UvY2hlY2tzdW0sIGluIGJ5dGVzICovCj4+ICvCoMKgwqDCoMKgwqAgX19sZTE2IG1h eF90eF9oZHJfc2l6ZTsKPj4gKwo+PiArwqDCoMKgwqDCoMKgIC8qIE1heCBudW1iZXIgb2Ygc2Nh dHRlciBnYXRoZXIgYnVmZmVycyB0aGF0IGNhbiBiZSBzZW50IHBlciAKPj4gdHJhbnNtaXQKPj4g K8KgwqDCoMKgwqDCoMKgICogcGFja2V0IHdpdGhvdXQgbmVlZGluZyB0byBiZSBsaW5lYXJpemVk Lgo+PiArwqDCoMKgwqDCoMKgwqAgKi8KPj4gK8KgwqDCoMKgwqDCoCB1OCBtYXhfc2dfYnVmc19w ZXJfdHhfcGt0Owo+PiArCj4+ICvCoMKgwqDCoMKgwqAgdTggcGFkWzNdOwo+PiArCj4+ICvCoMKg wqDCoMKgwqAgdTggcmVzZXJ2ZWRbNF07Cj4+ICvCoMKgwqDCoMKgwqAgLyogU2VlIFZJUlRDSE5M Ml9ERVZJQ0VfVFlQRSBkZWZpbml0aW9ucyAqLwo+PiArwqDCoMKgwqDCoMKgIF9fbGUzMiBkZXZp Y2VfdHlwZTsKPj4gKwo+PiArwqDCoMKgwqDCoMKgIC8qIE1pbiBwYWNrZXQgbGVuZ3RoIHN1cHBv cnRlZCBieSBkZXZpY2UgZm9yIHNpbmdsZSBzZWdtZW50IAo+PiBvZmZsb2FkICovCj4+ICvCoMKg wqDCoMKgwqAgdTggbWluX3Nzb19wYWNrZXRfbGVuOwo+PiArwqDCoMKgwqDCoMKgIC8qIE1heCBu dW1iZXIgb2YgaGVhZGVyIGJ1ZmZlcnMgdGhhdCBjYW4gYmUgdXNlZCBmb3IgYW4gTFNPICovCj4+ ICvCoMKgwqDCoMKgwqAgdTggbWF4X2hkcl9idWZfcGVyX2xzbzsKPj4gKwo+PiArwqDCoMKgwqDC oMKgIHU4IHBhZDFbMTBdOwo+PiArfTsKPj4gKwo+PiArVklSVENITkwyX0NIRUNLX1NUUlVDVF9M RU4oODAsIHZpcnRjaG5sMl9nZXRfY2FwYWJpbGl0aWVzKTsKPj4gKwo+PiArc3RydWN0IHZpcnRj aG5sMl9xdWV1ZV9yZWdfY2h1bmsgewo+PiArwqDCoMKgwqDCoMKgIC8qIFNlZSBWSVJUQ0hOTDJf UVVFVUVfVFlQRSBkZWZpbml0aW9ucyAqLwo+PiArwqDCoMKgwqDCoMKgIF9fbGUzMiB0eXBlOwo+ PiArwqDCoMKgwqDCoMKgIF9fbGUzMiBzdGFydF9xdWV1ZV9pZDsKPj4gK8KgwqDCoMKgwqDCoCBf X2xlMzIgbnVtX3F1ZXVlczsKPj4gK8KgwqDCoMKgwqDCoCBfX2xlMzIgcGFkOwo+PiArCj4+ICvC oMKgwqDCoMKgwqAgLyogUXVldWUgdGFpbCByZWdpc3RlciBvZmZzZXQgYW5kIHNwYWNpbmcgcHJv dmlkZWQgYnkgQ1AgKi8KPj4gK8KgwqDCoMKgwqDCoCBfX2xlNjQgcXRhaWxfcmVnX3N0YXJ0Owo+ PiArwqDCoMKgwqDCoMKgIF9fbGUzMiBxdGFpbF9yZWdfc3BhY2luZzsKPj4gKwo+PiArwqDCoMKg wqDCoMKgIHU4IHBhZDFbNF07Cj4+ICt9Owo+PiArCj4+ICtWSVJUQ0hOTDJfQ0hFQ0tfU1RSVUNU X0xFTigzMiwgdmlydGNobmwyX3F1ZXVlX3JlZ19jaHVuayk7Cj4+ICsKPj4gKy8qIFN0cnVjdHVy ZSB0byBzcGVjaWZ5IHNldmVyYWwgY2h1bmtzIG9mIGNvbnRpZ3VvdXMgcXVldWVzICovCj4+ICtz dHJ1Y3QgdmlydGNobmwyX3F1ZXVlX3JlZ19jaHVua3Mgewo+PiArwqDCoMKgwqDCoMKgIF9fbGUx NiBudW1fY2h1bmtzOwo+PiArwqDCoMKgwqDCoMKgIHU4IHBhZFs2XTsKPj4gKwo+PiArwqDCoMKg wqDCoMKgIHN0cnVjdCB2aXJ0Y2hubDJfcXVldWVfcmVnX2NodW5rIGNodW5rc1tdOwo+PiArfTsK Pj4gKwo+PiArVklSVENITkwyX0NIRUNLX1NUUlVDVF9MRU4oOCwgdmlydGNobmwyX3F1ZXVlX3Jl Z19jaHVua3MpOwo+PiArCj4+ICsvKiBWSVJUQ0hOTDJfT1BfQ1JFQVRFX1ZQT1JUCj4+ICsgKiBQ RiBzZW5kcyB0aGlzIG1lc3NhZ2UgdG8gQ1AgdG8gY3JlYXRlIGEgdnBvcnQgYnkgZmlsbGluZyBp biByZXF1aXJlZAo+PiArICogZmllbGRzIG9mIHZpcnRjaG5sMl9jcmVhdGVfdnBvcnQgc3RydWN0 dXJlLgo+PiArICogQ1AgcmVzcG9uZHMgd2l0aCB0aGUgdXBkYXRlZCB2aXJ0Y2hubDJfY3JlYXRl X3Zwb3J0IHN0cnVjdHVyZSAKPj4gY29udGFpbmluZyB0aGUKPj4gKyAqIG5lY2Vzc2FyeSBmaWVs ZHMgZm9sbG93ZWQgYnkgY2h1bmtzIHdoaWNoIGluIHR1cm4gd2lsbCBoYXZlIGFuIAo+PiBhcnJh eSBvZgo+PiArICogbnVtX2NodW5rcyBlbnRyaWVzIG9mIHZpcnRjaG5sMl9xdWV1ZV9jaHVuayBz dHJ1Y3R1cmVzLgo+PiArICovCj4+ICtzdHJ1Y3QgdmlydGNobmwyX2NyZWF0ZV92cG9ydCB7Cj4+ ICvCoMKgwqDCoMKgwqAgLyogUEYvVkYgcG9wdWxhdGVzIHRoZSBmb2xsb3dpbmcgZmllbGRzIG9u IHJlcXVlc3QgKi8KPj4gK8KgwqDCoMKgwqDCoCAvKiBTZWUgVklSVENITkwyX1ZQT1JUX1RZUEUg ZGVmaW5pdGlvbnMgKi8KPj4gK8KgwqDCoMKgwqDCoCBfX2xlMTYgdnBvcnRfdHlwZTsKPj4gKwo+ PiArwqDCoMKgwqDCoMKgIC8qIFNlZSBWSVJUQ0hOTDJfUVVFVUVfTU9ERUwgZGVmaW5pdGlvbnMg Ki8KPj4gK8KgwqDCoMKgwqDCoCBfX2xlMTYgdHhxX21vZGVsOwo+PiArCj4+ICvCoMKgwqDCoMKg wqAgLyogU2VlIFZJUlRDSE5MMl9RVUVVRV9NT0RFTCBkZWZpbml0aW9ucyAqLwo+PiArwqDCoMKg wqDCoMKgIF9fbGUxNiByeHFfbW9kZWw7Cj4+ICvCoMKgwqDCoMKgwqAgX19sZTE2IG51bV90eF9x Owo+PiArwqDCoMKgwqDCoMKgIC8qIFZhbGlkIG9ubHkgaWYgdHhxX21vZGVsIGlzIHNwbGl0IHF1 ZXVlICovCj4+ICvCoMKgwqDCoMKgwqAgX19sZTE2IG51bV90eF9jb21wbHE7Cj4+ICvCoMKgwqDC oMKgwqAgX19sZTE2IG51bV9yeF9xOwo+PiArwqDCoMKgwqDCoMKgIC8qIFZhbGlkIG9ubHkgaWYg cnhxX21vZGVsIGlzIHNwbGl0IHF1ZXVlICovCj4+ICvCoMKgwqDCoMKgwqAgX19sZTE2IG51bV9y eF9idWZxOwo+PiArwqDCoMKgwqDCoMKgIC8qIFJlbGF0aXZlIHJlY2VpdmUgcXVldWUgaW5kZXgg dG8gYmUgdXNlZCBhcyBkZWZhdWx0ICovCj4+ICvCoMKgwqDCoMKgwqAgX19sZTE2IGRlZmF1bHRf cnhfcTsKPj4gK8KgwqDCoMKgwqDCoCAvKiBVc2VkIHRvIGFsaWduIFBGIGFuZCBDUCBpbiBjYXNl IG9mIGRlZmF1bHQgbXVsdGlwbGUgdnBvcnRzLCAKPj4gaXQgaXMKPj4gK8KgwqDCoMKgwqDCoMKg ICogZmlsbGVkIGJ5IHRoZSBQRiBhbmQgQ1AgcmV0dXJucyB0aGUgc2FtZSB2YWx1ZSwgdG8gZW5h YmxlIAo+PiB0aGUgZHJpdmVyCj4+ICvCoMKgwqDCoMKgwqDCoCAqIHRvIHN1cHBvcnQgbXVsdGlw bGUgYXN5bmNocm9ub3VzIHBhcmFsbGVsIENSRUFURV9WUE9SVCAKPj4gcmVxdWVzdHMgYW5kCj4+ ICvCoMKgwqDCoMKgwqDCoCAqIGFzc29jaWF0ZSBhIHJlc3BvbnNlIHRvIGEgc3BlY2lmaWMgcmVx dWVzdC4KPj4gK8KgwqDCoMKgwqDCoMKgICovCj4+ICvCoMKgwqDCoMKgwqAgX19sZTE2IHZwb3J0 X2luZGV4Owo+PiArCj4+ICvCoMKgwqDCoMKgwqAgLyogQ1AgcG9wdWxhdGVzIHRoZSBmb2xsb3dp bmcgZmllbGRzIG9uIHJlc3BvbnNlICovCj4+ICvCoMKgwqDCoMKgwqAgX19sZTE2IG1heF9tdHU7 Cj4+ICvCoMKgwqDCoMKgwqAgX19sZTMyIHZwb3J0X2lkOwo+PiArwqDCoMKgwqDCoMKgIHU4IGRl ZmF1bHRfbWFjX2FkZHJbRVRIX0FMRU5dOwo+PiArwqDCoMKgwqDCoMKgIF9fbGUxNiBwYWQ7Cj4+ ICvCoMKgwqDCoMKgwqAgLyogU2VlIFZJUlRDSE5MMl9SWF9ERVNDX0lEUyBkZWZpbml0aW9ucyAq Lwo+PiArwqDCoMKgwqDCoMKgIF9fbGU2NCByeF9kZXNjX2lkczsKPj4gK8KgwqDCoMKgwqDCoCAv KiBTZWUgVklSVENITkwyX1RYX0RFU0NfSURTIGRlZmluaXRpb25zICovCj4+ICvCoMKgwqDCoMKg wqAgX19sZTY0IHR4X2Rlc2NfaWRzOwo+PiArCj4+ICvCoMKgwqDCoMKgwqAgdTggcGFkMVs3Ml07 Cj4+ICsKPj4gK8KgwqDCoMKgwqDCoCAvKiBTZWUgVklSVENITkwyX1JTU19BTEdPUklUSE0gZGVm aW5pdGlvbnMgKi8KPj4gK8KgwqDCoMKgwqDCoCBfX2xlMzIgcnNzX2FsZ29yaXRobTsKPj4gK8Kg wqDCoMKgwqDCoCBfX2xlMTYgcnNzX2tleV9zaXplOwo+PiArwqDCoMKgwqDCoMKgIF9fbGUxNiBy c3NfbHV0X3NpemU7Cj4+ICsKPj4gK8KgwqDCoMKgwqDCoCAvKiBTZWUgVklSVENITkwyX0hFQURF Ul9TUExJVF9DQVBTIGRlZmluaXRpb25zICovCj4+ICvCoMKgwqDCoMKgwqAgX19sZTMyIHJ4X3Nw bGl0X3BvczsKPj4gKwo+PiArwqDCoMKgwqDCoMKgIHU4IHBhZDJbMjBdOwo+PiArCj4+ICvCoMKg wqDCoMKgwqAgc3RydWN0IHZpcnRjaG5sMl9xdWV1ZV9yZWdfY2h1bmtzIGNodW5rczsKPj4gK307 Cj4+ICsKPj4gK1ZJUlRDSE5MMl9DSEVDS19TVFJVQ1RfTEVOKDE2MCwgdmlydGNobmwyX2NyZWF0 ZV92cG9ydCk7Cj4+ICsKPj4gKy8qIFZJUlRDSE5MMl9PUF9ERVNUUk9ZX1ZQT1JUCj4+ICsgKiBW SVJUQ0hOTDJfT1BfRU5BQkxFX1ZQT1JUCj4+ICsgKiBWSVJUQ0hOTDJfT1BfRElTQUJMRV9WUE9S VAo+PiArICogUEYgc2VuZHMgdGhpcyBtZXNzYWdlIHRvIENQIHRvIGRlc3Ryb3ksIGVuYWJsZSBv ciBkaXNhYmxlIGEgdnBvcnQgCj4+IGJ5IGZpbGxpbmcKPj4gKyAqIGluIHRoZSB2cG9ydF9pZCBp biB2aXJ0Y2hubDJfdnBvcnQgc3RydWN0dXJlLgo+PiArICogQ1AgcmVzcG9uZHMgd2l0aCB0aGUg c3RhdHVzIG9mIHRoZSByZXF1ZXN0ZWQgb3BlcmF0aW9uLgo+PiArICovCj4+ICtzdHJ1Y3Qgdmly dGNobmwyX3Zwb3J0IHsKPj4gK8KgwqDCoMKgwqDCoCBfX2xlMzIgdnBvcnRfaWQ7Cj4+ICvCoMKg wqDCoMKgwqAgdTggcGFkWzRdOwo+PiArfTsKPj4gKwo+PiArVklSVENITkwyX0NIRUNLX1NUUlVD VF9MRU4oOCwgdmlydGNobmwyX3Zwb3J0KTsKPj4gKwo+PiArLyogVHJhbnNtaXQgcXVldWUgY29u ZmlnIGluZm8gKi8KPj4gK3N0cnVjdCB2aXJ0Y2hubDJfdHhxX2luZm8gewo+PiArwqDCoMKgwqDC oMKgIF9fbGU2NCBkbWFfcmluZ19hZGRyOwo+PiArCj4+ICvCoMKgwqDCoMKgwqAgLyogU2VlIFZJ UlRDSE5MMl9RVUVVRV9UWVBFIGRlZmluaXRpb25zICovCj4+ICvCoMKgwqDCoMKgwqAgX19sZTMy IHR5cGU7Cj4+ICsKPj4gK8KgwqDCoMKgwqDCoCBfX2xlMzIgcXVldWVfaWQ7Cj4+ICvCoMKgwqDC oMKgwqAgLyogVmFsaWQgb25seSBpZiBxdWV1ZSBtb2RlbCBpcyBzcGxpdCBhbmQgdHlwZSBpcyB0 cmFzbWl0IAo+PiBxdWV1ZS4gVXNlZAo+PiArwqDCoMKgwqDCoMKgwqAgKiBpbiBtYW55IHRvIG9u ZSBtYXBwaW5nIG9mIHRyYW5zbWl0IHF1ZXVlcyB0byBjb21wbGV0aW9uIHF1ZXVlLgo+PiArwqDC oMKgwqDCoMKgwqAgKi8KPj4gK8KgwqDCoMKgwqDCoCBfX2xlMTYgcmVsYXRpdmVfcXVldWVfaWQ7 Cj4+ICsKPj4gK8KgwqDCoMKgwqDCoCAvKiBTZWUgVklSVENITkwyX1FVRVVFX01PREVMIGRlZmlu aXRpb25zICovCj4+ICvCoMKgwqDCoMKgwqAgX19sZTE2IG1vZGVsOwo+PiArCj4+ICvCoMKgwqDC oMKgwqAgLyogU2VlIFZJUlRDSE5MMl9UWFFfU0NIRURfTU9ERSBkZWZpbml0aW9ucyAqLwo+PiAr wqDCoMKgwqDCoMKgIF9fbGUxNiBzY2hlZF9tb2RlOwo+PiArCj4+ICvCoMKgwqDCoMKgwqAgLyog U2VlIFZJUlRDSE5MMl9UWFFfRkxBR1MgZGVmaW5pdGlvbnMgKi8KPj4gK8KgwqDCoMKgwqDCoCBf X2xlMTYgcWZsYWdzOwo+PiArwqDCoMKgwqDCoMKgIF9fbGUxNiByaW5nX2xlbjsKPj4gKwo+PiAr wqDCoMKgwqDCoMKgIC8qIFZhbGlkIG9ubHkgaWYgcXVldWUgbW9kZWwgaXMgc3BsaXQgYW5kIHR5 cGUgaXMgdHJhbnNtaXQgCj4+IHF1ZXVlICovCj4+ICvCoMKgwqDCoMKgwqAgX19sZTE2IHR4X2Nv bXBsX3F1ZXVlX2lkOwo+PiArwqDCoMKgwqDCoMKgIC8qIFZhbGlkIG9ubHkgaWYgcXVldWUgdHlw ZSBpcyBWSVJUQ0hOTDJfUVVFVUVfVFlQRV9NQUlMQk9YX1RYICovCj4+ICvCoMKgwqDCoMKgwqAg LyogU2VlIFZJUlRDSE5MMl9QRUVSX1RZUEUgZGVmaW5pdGlvbnMgKi8KPj4gK8KgwqDCoMKgwqDC oCBfX2xlMTYgcGVlcl90eXBlOwo+PiArwqDCoMKgwqDCoMKgIC8qIFZhbGlkIG9ubHkgaWYgcXVl dWUgdHlwZSBpcyBDT05GSUdfVFggYW5kIHVzZWQgdG8gZGVsaXZlciAKPj4gbWVzc2FnZXMKPj4g K8KgwqDCoMKgwqDCoMKgICogZm9yIHRoZSByZXNwZWN0aXZlIENPTkZJR19UWCBxdWV1ZS4KPj4g K8KgwqDCoMKgwqDCoMKgICovCj4+ICvCoMKgwqDCoMKgwqAgX19sZTE2IHBlZXJfcnhfcXVldWVf aWQ7Cj4+ICsKPj4gK8KgwqDCoMKgwqDCoCB1OCBwYWRbNF07Cj4+ICsKPj4gK8KgwqDCoMKgwqDC oCAvKiBFZ3Jlc3MgcGFzaWQgaXMgdXNlZCBmb3IgU0lPViB1c2UgY2FzZSAqLwo+PiArwqDCoMKg wqDCoMKgIF9fbGUzMiBlZ3Jlc3NfcGFzaWQ7Cj4+ICvCoMKgwqDCoMKgwqAgX19sZTMyIGVncmVz c19oZHJfcGFzaWQ7Cj4+ICvCoMKgwqDCoMKgwqAgX19sZTMyIGVncmVzc19idWZfcGFzaWQ7Cj4+ ICsKPj4gK8KgwqDCoMKgwqDCoCB1OCBwYWQxWzhdOwo+PiArfTsKPj4gKwo+PiArVklSVENITkwy X0NIRUNLX1NUUlVDVF9MRU4oNTYsIHZpcnRjaG5sMl90eHFfaW5mbyk7Cj4+ICsKPj4gKy8qIFZJ UlRDSE5MMl9PUF9DT05GSUdfVFhfUVVFVUVTCj4+ICsgKiBQRiBzZW5kcyB0aGlzIG1lc3NhZ2Ug dG8gc2V0IHVwIHBhcmFtZXRlcnMgZm9yIG9uZSBvciBtb3JlIAo+PiB0cmFuc21pdCBxdWV1ZXMu Cj4+ICsgKiBUaGlzIG1lc3NhZ2UgY29udGFpbnMgYW4gYXJyYXkgb2YgbnVtX3FpbmZvIGluc3Rh bmNlcyBvZiAKPj4gdmlydGNobmwyX3R4cV9pbmZvCj4+ICsgKiBzdHJ1Y3R1cmVzLiBDUCBjb25m aWd1cmVzIHJlcXVlc3RlZCBxdWV1ZXMgYW5kIHJldHVybnMgYSBzdGF0dXMgCj4+IGNvZGUuIElm Cj4+ICsgKiBudW1fcWluZm8gc3BlY2lmaWVkIGlzIGdyZWF0ZXIgdGhhbiB0aGUgbnVtYmVyIG9m IHF1ZXVlcyAKPj4gYXNzb2NpYXRlZCB3aXRoIHRoZQo+PiArICogdnBvcnQsIGFuIGVycm9yIGlz IHJldHVybmVkIGFuZCBubyBxdWV1ZXMgYXJlIGNvbmZpZ3VyZWQuCj4+ICsgKi8KPj4gK3N0cnVj dCB2aXJ0Y2hubDJfY29uZmlnX3R4X3F1ZXVlcyB7Cj4+ICvCoMKgwqDCoMKgwqAgX19sZTMyIHZw b3J0X2lkOwo+PiArCj4+ICvCoMKgwqDCoMKgwqAgX19sZTE2IG51bV9xaW5mbzsKPj4gK8KgwqDC oMKgwqDCoCB1OCBwYWRbMTBdOwo+PiArCj4+ICvCoMKgwqDCoMKgwqAgc3RydWN0IHZpcnRjaG5s Ml90eHFfaW5mbyBxaW5mb1tdOwo+PiArfTsKPj4gKwo+PiArVklSVENITkwyX0NIRUNLX1NUUlVD VF9MRU4oMTYsIHZpcnRjaG5sMl9jb25maWdfdHhfcXVldWVzKTsKPj4gKwo+PiArLyogUmVjZWl2 ZSBxdWV1ZSBjb25maWcgaW5mbyAqLwo+PiArc3RydWN0IHZpcnRjaG5sMl9yeHFfaW5mbyB7Cj4+ ICvCoMKgwqDCoMKgwqAgLyogU2VlIFZJUlRDSE5MMl9SWF9ERVNDX0lEUyBkZWZpbml0aW9ucyAq Lwo+PiArwqDCoMKgwqDCoMKgIF9fbGU2NCBkZXNjX2lkczsKPj4gK8KgwqDCoMKgwqDCoCBfX2xl NjQgZG1hX3JpbmdfYWRkcjsKPj4gKwo+PiArwqDCoMKgwqDCoMKgIC8qIFNlZSBWSVJUQ0hOTDJf UVVFVUVfVFlQRSBkZWZpbml0aW9ucyAqLwo+PiArwqDCoMKgwqDCoMKgIF9fbGUzMiB0eXBlOwo+ PiArwqDCoMKgwqDCoMKgIF9fbGUzMiBxdWV1ZV9pZDsKPj4gKwo+PiArwqDCoMKgwqDCoMKgIC8q IFNlZSBRVUVVRV9NT0RFTCBkZWZpbml0aW9ucyAqLwo+PiArwqDCoMKgwqDCoMKgIF9fbGUxNiBt b2RlbDsKPj4gKwo+PiArwqDCoMKgwqDCoMKgIF9fbGUxNiBoZHJfYnVmZmVyX3NpemU7Cj4+ICvC oMKgwqDCoMKgwqAgX19sZTMyIGRhdGFfYnVmZmVyX3NpemU7Cj4+ICvCoMKgwqDCoMKgwqAgX19s ZTMyIG1heF9wa3Rfc2l6ZTsKPj4gKwo+PiArwqDCoMKgwqDCoMKgIF9fbGUxNiByaW5nX2xlbjsK Pj4gK8KgwqDCoMKgwqDCoCB1OCBidWZmZXJfbm90aWZfc3RyaWRlOwo+PiArwqDCoMKgwqDCoMKg IHU4IHBhZDsKPj4gKwo+PiArwqDCoMKgwqDCoMKgIC8qIEFwcGxpY2FibGUgb25seSBmb3IgcmVj ZWl2ZSBidWZmZXIgcXVldWVzICovCj4+ICvCoMKgwqDCoMKgwqAgX19sZTY0IGRtYV9oZWFkX3di X2FkZHI7Cj4+ICsKPj4gK8KgwqDCoMKgwqDCoCAvKiBBcHBsaWNhYmxlIG9ubHkgZm9yIHJlY2Vp dmUgY29tcGxldGlvbiBxdWV1ZXMgKi8KPj4gK8KgwqDCoMKgwqDCoCAvKiBTZWUgVklSVENITkwy X1JYUV9GTEFHUyBkZWZpbml0aW9ucyAqLwo+PiArwqDCoMKgwqDCoMKgIF9fbGUxNiBxZmxhZ3M7 Cj4+ICsKPj4gK8KgwqDCoMKgwqDCoCBfX2xlMTYgcnhfYnVmZmVyX2xvd193YXRlcm1hcms7Cj4+ ICsKPj4gK8KgwqDCoMKgwqDCoCAvKiBWYWxpZCBvbmx5IGluIHNwbGl0IHF1ZXVlIG1vZGVsICov Cj4+ICvCoMKgwqDCoMKgwqAgX19sZTE2IHJ4X2J1ZnExX2lkOwo+PiArwqDCoMKgwqDCoMKgIC8q IFZhbGlkIG9ubHkgaW4gc3BsaXQgcXVldWUgbW9kZWwgKi8KPj4gK8KgwqDCoMKgwqDCoCBfX2xl MTYgcnhfYnVmcTJfaWQ7Cj4+ICvCoMKgwqDCoMKgwqAgLyogSXQgaW5kaWNhdGVzIGlmIHRoZXJl IGlzIGEgc2Vjb25kIGJ1ZmZlciwgcnhfYnVmcTJfaWQgaXMgCj4+IHZhbGlkIG9ubHkKPj4gK8Kg wqDCoMKgwqDCoMKgICogaWYgdGhpcyBmaWVsZCBpcyBzZXQuCj4+ICvCoMKgwqDCoMKgwqDCoCAq Lwo+PiArwqDCoMKgwqDCoMKgIHU4IGJ1ZnEyX2VuYTsKPj4gK8KgwqDCoMKgwqDCoCB1OCBwYWQx WzNdOwo+PiArCj4+ICvCoMKgwqDCoMKgwqAgLyogSW5ncmVzcyBwYXNpZCBpcyB1c2VkIGZvciBT SU9WIHVzZSBjYXNlICovCj4+ICvCoMKgwqDCoMKgwqAgX19sZTMyIGluZ3Jlc3NfcGFzaWQ7Cj4+ ICvCoMKgwqDCoMKgwqAgX19sZTMyIGluZ3Jlc3NfaGRyX3Bhc2lkOwo+PiArwqDCoMKgwqDCoMKg IF9fbGUzMiBpbmdyZXNzX2J1Zl9wYXNpZDsKPj4gKwo+PiArwqDCoMKgwqDCoMKgIHU4IHBhZDJb MTZdOwo+PiArfTsKPj4gKwo+PiArVklSVENITkwyX0NIRUNLX1NUUlVDVF9MRU4oODgsIHZpcnRj aG5sMl9yeHFfaW5mbyk7Cj4+ICsKPj4gKy8qIFZJUlRDSE5MMl9PUF9DT05GSUdfUlhfUVVFVUVT Cj4+ICsgKiBQRiBzZW5kcyB0aGlzIG1lc3NhZ2UgdG8gc2V0IHVwIHBhcmFtZXRlcnMgZm9yIG9u ZSBvciBtb3JlIHJlY2VpdmUgCj4+IHF1ZXVlcy4KPj4gKyAqIFRoaXMgbWVzc2FnZSBjb250YWlu cyBhbiBhcnJheSBvZiBudW1fcWluZm8gaW5zdGFuY2VzIG9mIAo+PiB2aXJ0Y2hubDJfcnhxX2lu Zm8KPj4gKyAqIHN0cnVjdHVyZXMuIENQIGNvbmZpZ3VyZXMgcmVxdWVzdGVkIHF1ZXVlcyBhbmQg cmV0dXJucyBhIHN0YXR1cyBjb2RlLgo+PiArICogSWYgdGhlIG51bWJlciBvZiBxdWV1ZXMgc3Bl Y2lmaWVkIGlzIGdyZWF0ZXIgdGhhbiB0aGUgbnVtYmVyIG9mIAo+PiBxdWV1ZXMKPj4gKyAqIGFz c29jaWF0ZWQgd2l0aCB0aGUgdnBvcnQsIGFuIGVycm9yIGlzIHJldHVybmVkIGFuZCBubyBxdWV1 ZXMgYXJlIAo+PiBjb25maWd1cmVkLgo+PiArICovCj4+ICtzdHJ1Y3QgdmlydGNobmwyX2NvbmZp Z19yeF9xdWV1ZXMgewo+PiArwqDCoMKgwqDCoMKgIF9fbGUzMiB2cG9ydF9pZDsKPj4gKwo+PiAr wqDCoMKgwqDCoMKgIF9fbGUxNiBudW1fcWluZm87Cj4+ICvCoMKgwqDCoMKgwqAgdTggcGFkWzE4 XTsKPj4gKwo+PiArwqDCoMKgwqDCoMKgIHN0cnVjdCB2aXJ0Y2hubDJfcnhxX2luZm8gcWluZm9b XTsKPj4gK307Cj4+ICsKPj4gK1ZJUlRDSE5MMl9DSEVDS19TVFJVQ1RfTEVOKDI0LCB2aXJ0Y2hu bDJfY29uZmlnX3J4X3F1ZXVlcyk7Cj4+ICsKPj4gKy8qIFZJUlRDSE5MMl9PUF9BRERfUVVFVUVT Cj4+ICsgKiBQRiBzZW5kcyB0aGlzIG1lc3NhZ2UgdG8gcmVxdWVzdCBhZGRpdGlvbmFsIHRyYW5z bWl0L3JlY2VpdmUgCj4+IHF1ZXVlcyBiZXlvbmQKPj4gKyAqIHRoZSBvbmVzIHRoYXQgd2VyZSBh c3NpZ25lZCB2aWEgQ1JFQVRFX1ZQT1JUIHJlcXVlc3QuIAo+PiB2aXJ0Y2hubDJfYWRkX3F1ZXVl cwo+PiArICogc3RydWN0dXJlIGlzIHVzZWQgdG8gc3BlY2lmeSB0aGUgbnVtYmVyIG9mIGVhY2gg dHlwZSBvZiBxdWV1ZXMuCj4+ICsgKiBDUCByZXNwb25kcyB3aXRoIHRoZSBzYW1lIHN0cnVjdHVy ZSB3aXRoIHRoZSBhY3R1YWwgbnVtYmVyIG9mIAo+PiBxdWV1ZXMgYXNzaWduZWQKPj4gKyAqIGZv bGxvd2VkIGJ5IG51bV9jaHVua3Mgb2YgdmlydGNobmwyX3F1ZXVlX2NodW5rIHN0cnVjdHVyZXMu Cj4+ICsgKi8KPj4gK3N0cnVjdCB2aXJ0Y2hubDJfYWRkX3F1ZXVlcyB7Cj4+ICvCoMKgwqDCoMKg wqAgX19sZTMyIHZwb3J0X2lkOwo+PiArCj4+ICvCoMKgwqDCoMKgwqAgX19sZTE2IG51bV90eF9x Owo+PiArwqDCoMKgwqDCoMKgIF9fbGUxNiBudW1fdHhfY29tcGxxOwo+PiArwqDCoMKgwqDCoMKg IF9fbGUxNiBudW1fcnhfcTsKPj4gK8KgwqDCoMKgwqDCoCBfX2xlMTYgbnVtX3J4X2J1ZnE7Cj4+ ICvCoMKgwqDCoMKgwqAgdTggcGFkWzRdOwo+PiArCj4+ICvCoMKgwqDCoMKgwqAgc3RydWN0IHZp cnRjaG5sMl9xdWV1ZV9yZWdfY2h1bmtzIGNodW5rczsKPj4gK307Cj4+ICsKPj4gK1ZJUlRDSE5M Ml9DSEVDS19TVFJVQ1RfTEVOKDI0LCB2aXJ0Y2hubDJfYWRkX3F1ZXVlcyk7Cj4+ICsKPj4gKy8q IFN0cnVjdHVyZSB0byBzcGVjaWZ5IGEgY2h1bmsgb2YgY29udGlndW91cyBpbnRlcnJ1cHQgdmVj dG9ycyAqLwo+PiArc3RydWN0IHZpcnRjaG5sMl92ZWN0b3JfY2h1bmsgewo+PiArwqDCoMKgwqDC oMKgIF9fbGUxNiBzdGFydF92ZWN0b3JfaWQ7Cj4+ICvCoMKgwqDCoMKgwqAgX19sZTE2IHN0YXJ0 X2V2dl9pZDsKPj4gK8KgwqDCoMKgwqDCoCBfX2xlMTYgbnVtX3ZlY3RvcnM7Cj4+ICvCoMKgwqDC oMKgwqAgX19sZTE2IHBhZDsKPj4gKwo+PiArwqDCoMKgwqDCoMKgIC8qIFJlZ2lzdGVyIG9mZnNl dHMgYW5kIHNwYWNpbmcgcHJvdmlkZWQgYnkgQ1AuCj4+ICvCoMKgwqDCoMKgwqDCoCAqIER5bmFt aWMgY29udHJvbCByZWdpc3RlcnMgYXJlIHVzZWQgZm9yIAo+PiBlbmFibGluZy9kaXNhYmxpbmcv cmUtZW5hYmxpbmcKPj4gK8KgwqDCoMKgwqDCoMKgICogaW50ZXJydXB0cyBhbmQgdXBkYXRpbmcg aW50ZXJydXB0IHJhdGVzIGluIHRoZSBob3RwYXRoLiBBbnkgCj4+IGNoYW5nZXMKPj4gK8KgwqDC oMKgwqDCoMKgICogdG8gaW50ZXJydXB0IHJhdGVzIGluIHRoZSBkeW5hbWljIGNvbnRyb2wgcmVn aXN0ZXJzIHdpbGwgYmUgCj4+IHJlZmxlY3RlZAo+PiArwqDCoMKgwqDCoMKgwqAgKiBpbiB0aGUg aW50ZXJydXB0IHRocm90dGxpbmcgcmF0ZSByZWdpc3RlcnMuCj4+ICvCoMKgwqDCoMKgwqDCoCAq IGl0cm4gcmVnaXN0ZXJzIGFyZSB1c2VkIHRvIHVwZGF0ZSBpbnRlcnJ1cHQgcmF0ZXMgZm9yIHNw ZWNpZmljCj4+ICvCoMKgwqDCoMKgwqDCoCAqIGludGVycnVwdCBpbmRpY2VzIHdpdGhvdXQgbW9k aWZ5aW5nIHRoZSBzdGF0ZSBvZiB0aGUgCj4+IGludGVycnVwdC4KPj4gK8KgwqDCoMKgwqDCoMKg ICovCj4+ICvCoMKgwqDCoMKgwqAgX19sZTMyIGR5bmN0bF9yZWdfc3RhcnQ7Cj4+ICvCoMKgwqDC oMKgwqAgLyogUmVnaXN0ZXIgc3BhY2luZyBiZXR3ZWVuIGR5bmN0bCByZWdpc3RlcnMgb2YgMiBj b25zZWN1dGl2ZSAKPj4gdmVjdG9ycyAqLwo+PiArwqDCoMKgwqDCoMKgIF9fbGUzMiBkeW5jdGxf cmVnX3NwYWNpbmc7Cj4gCj4gVGhpcyBpcyB1c3VhbGx5IHJlZmVycmVkIHRvIGFzICdzdHJpZGUn Cj4gCgpXaWxsIGNvbnNpZGVyIHRoYXQuCgo+PiArCj4+ICvCoMKgwqDCoMKgwqAgX19sZTMyIGl0 cm5fcmVnX3N0YXJ0Owo+PiArwqDCoMKgwqDCoMKgIC8qIFJlZ2lzdGVyIHNwYWNpbmcgYmV0d2Vl biBpdHJuIHJlZ2lzdGVycyBvZiAyIGNvbnNlY3V0aXZlIAo+PiB2ZWN0b3JzICovCj4+ICvCoMKg wqDCoMKgwqAgX19sZTMyIGl0cm5fcmVnX3NwYWNpbmc7Cj4gCj4gc3RyaWRlCj4gCj4+ICvCoMKg wqDCoMKgwqAgLyogUmVnaXN0ZXIgc3BhY2luZyBiZXR3ZWVuIGl0cm4gcmVnaXN0ZXJzIG9mIHRo ZSBzYW1lIHZlY3Rvcgo+PiArwqDCoMKgwqDCoMKgwqAgKiB3aGVyZSBuPTAuLjIuCj4+ICvCoMKg wqDCoMKgwqDCoCAqLwo+PiArwqDCoMKgwqDCoMKgIF9fbGUzMiBpdHJuX2luZGV4X3NwYWNpbmc7 Cj4gCj4gZGl0dG8KPiAKPj4gK8KgwqDCoMKgwqDCoCB1OCBwYWQxWzRdOwo+PiArfTsKPj4gKwo+ PiArVklSVENITkwyX0NIRUNLX1NUUlVDVF9MRU4oMzIsIHZpcnRjaG5sMl92ZWN0b3JfY2h1bmsp Owo+PiArCj4+ICsvKiBWSVJUQ0hOTDJfT1BfREVBTExPQ19WRUNUT1JTCj4+ICsgKiBQRiBzZW5k cyB2aXJ0Y2hubDJfdmVjdG9yX2NodW5rcyBzdHJ1Y3QgdG8gc3BlY2lmeSB0aGUgdmVjdG9ycyBp dCAKPj4gaXMgZ2l2aW5nCj4+ICsgKiBhd2F5LiBDUCBwZXJmb3JtcyByZXF1ZXN0ZWQgYWN0aW9u IGFuZCByZXR1cm5zIHN0YXR1cy4KPj4gKyAqLwo+PiArc3RydWN0IHZpcnRjaG5sMl92ZWN0b3Jf Y2h1bmtzIHsKPj4gK8KgwqDCoMKgwqDCoCBfX2xlMTYgbnVtX3ZjaHVua3M7Cj4+ICvCoMKgwqDC oMKgwqAgdTggcGFkWzE0XTsKPj4gKwo+PiArwqDCoMKgwqDCoMKgIHN0cnVjdCB2aXJ0Y2hubDJf dmVjdG9yX2NodW5rIHZjaHVua3NbXTsKPj4gK307Cj4+ICsKPj4gK1ZJUlRDSE5MMl9DSEVDS19T VFJVQ1RfTEVOKDE2LCB2aXJ0Y2hubDJfdmVjdG9yX2NodW5rcyk7Cj4+ICsKPj4gKy8qIFZJUlRD SE5MMl9PUF9BTExPQ19WRUNUT1JTCj4+ICsgKiBQRiBzZW5kcyB0aGlzIG1lc3NhZ2UgdG8gcmVx dWVzdCBhZGRpdGlvbmFsIGludGVycnVwdCB2ZWN0b3JzIAo+PiBiZXlvbmQgdGhlCj4+ICsgKiBv bmVzIHRoYXQgd2VyZSBhc3NpZ25lZCB2aWEgR0VUX0NBUFMgcmVxdWVzdC4gdmlydGNobmwyX2Fs bG9jX3ZlY3RvcnMKPj4gKyAqIHN0cnVjdHVyZSBpcyB1c2VkIHRvIHNwZWNpZnkgdGhlIG51bWJl ciBvZiB2ZWN0b3JzIHJlcXVlc3RlZC4gQ1AgCj4+IHJlc3BvbmRzCj4+ICsgKiB3aXRoIHRoZSBz YW1lIHN0cnVjdHVyZSB3aXRoIHRoZSBhY3R1YWwgbnVtYmVyIG9mIHZlY3RvcnMgYXNzaWduZWQg Cj4+IGZvbGxvd2VkCj4+ICsgKiBieSB2aXJ0Y2hubDJfdmVjdG9yX2NodW5rcyBzdHJ1Y3R1cmUg aWRlbnRpZnlpbmcgdGhlIHZlY3RvciBpZHMuCj4+ICsgKi8KPj4gK3N0cnVjdCB2aXJ0Y2hubDJf YWxsb2NfdmVjdG9ycyB7Cj4+ICvCoMKgwqDCoMKgwqAgX19sZTE2IG51bV92ZWN0b3JzOwo+PiAr wqDCoMKgwqDCoMKgIHU4IHBhZFsxNF07Cj4+ICsKPj4gK8KgwqDCoMKgwqDCoCBzdHJ1Y3Qgdmly dGNobmwyX3ZlY3Rvcl9jaHVua3MgdmNodW5rczsKPj4gK307Cj4+ICsKPj4gK1ZJUlRDSE5MMl9D SEVDS19TVFJVQ1RfTEVOKDMyLCB2aXJ0Y2hubDJfYWxsb2NfdmVjdG9ycyk7Cj4+ICsKPj4gKy8q IFZJUlRDSE5MMl9PUF9HRVRfUlNTX0xVVAo+PiArICogVklSVENITkwyX09QX1NFVF9SU1NfTFVU Cj4+ICsgKiBQRiBzZW5kcyB0aGlzIG1lc3NhZ2UgdG8gZ2V0IG9yIHNldCBSU1MgbG9va3VwIHRh YmxlLiBPbmx5IAo+PiBzdXBwb3J0ZWQgaWYKPj4gKyAqIGJvdGggUEYgYW5kIENQIGRyaXZlcnMg c2V0IHRoZSBWSVJUQ0hOTDJfQ0FQX1JTUyBiaXQgZHVyaW5nIAo+PiBjb25maWd1cmF0aW9uCj4+ ICsgKiBuZWdvdGlhdGlvbi4gVXNlcyB0aGUgdmlydGNobmwyX3Jzc19sdXQgc3RydWN0dXJlLgo+ PiArICovCj4+ICtzdHJ1Y3QgdmlydGNobmwyX3Jzc19sdXQgewo+PiArwqDCoMKgwqDCoMKgIF9f bGUzMiB2cG9ydF9pZDsKPj4gKwo+PiArwqDCoMKgwqDCoMKgIF9fbGUxNiBsdXRfZW50cmllc19z dGFydDsKPj4gK8KgwqDCoMKgwqDCoCBfX2xlMTYgbHV0X2VudHJpZXM7Cj4+ICvCoMKgwqDCoMKg wqAgdTggcGFkWzRdOwo+PiArCj4+ICvCoMKgwqDCoMKgwqAgLyogUlNTIGxvb2t1cCB0YWJsZSAq Lwo+PiArwqDCoMKgwqDCoMKgIF9fbGUzMiBsdXRbXTsKPj4gK307Cj4+ICsKPj4gK1ZJUlRDSE5M Ml9DSEVDS19TVFJVQ1RfTEVOKDEyLCB2aXJ0Y2hubDJfcnNzX2x1dCk7Cj4+ICsKPj4gKy8qIFZJ UlRDSE5MMl9PUF9HRVRfUlNTX0hBU0gKPj4gKyAqIFZJUlRDSE5MMl9PUF9TRVRfUlNTX0hBU0gK Pj4gKyAqIFBGIHNlbmRzIHRoZXNlIG1lc3NhZ2VzIHRvIGdldCBhbmQgc2V0IHRoZSBoYXNoIGZp bHRlciBlbmFibGUgYml0cyAKPj4gZm9yIFJTUy4KPj4gKyAqIEJ5IGRlZmF1bHQsIHRoZSBDUCBz ZXRzIHRoZXNlIHRvIGFsbCBwb3NzaWJsZSB0cmFmZmljIHR5cGVzIHRoYXQgdGhlCj4+ICsgKiBo YXJkd2FyZSBzdXBwb3J0cy4gVGhlIFBGIGNhbiBxdWVyeSB0aGlzIHZhbHVlIGlmIGl0IHdhbnRz IHRvIAo+PiBjaGFuZ2UgdGhlCj4+ICsgKiB0cmFmZmljIHR5cGVzIHRoYXQgYXJlIGhhc2hlZCBi eSB0aGUgaGFyZHdhcmUuCj4+ICsgKiBPbmx5IHN1cHBvcnRlZCBpZiBib3RoIFBGIGFuZCBDUCBk cml2ZXJzIHNldCB0aGUgVklSVENITkwyX0NBUF9SU1MgCj4+IGJpdAo+PiArICogZHVyaW5nIGNv bmZpZ3VyYXRpb24gbmVnb3RpYXRpb24uCj4+ICsgKi8KPj4gK3N0cnVjdCB2aXJ0Y2hubDJfcnNz X2hhc2ggewo+PiArwqDCoMKgwqDCoMKgIC8qIFBhY2tldCBUeXBlIEdyb3VwcyBiaXRtYXAgKi8K Pj4gK8KgwqDCoMKgwqDCoCBfX2xlNjQgcHR5cGVfZ3JvdXBzOwo+PiArCj4+ICvCoMKgwqDCoMKg wqAgX19sZTMyIHZwb3J0X2lkOwo+PiArwqDCoMKgwqDCoMKgIHU4IHBhZFs0XTsKPj4gK307Cj4+ ICsKPj4gK1ZJUlRDSE5MMl9DSEVDS19TVFJVQ1RfTEVOKDE2LCB2aXJ0Y2hubDJfcnNzX2hhc2gp Owo+PiArCj4+ICsvKiBWSVJUQ0hOTDJfT1BfU0VUX1NSSU9WX1ZGUwo+PiArICogVGhpcyBtZXNz YWdlIGlzIHVzZWQgdG8gc2V0IG51bWJlciBvZiBTUklPViBWRnMgdG8gYmUgY3JlYXRlZC4gVGhl IAo+PiBhY3R1YWwKPj4gKyAqIGFsbG9jYXRpb24gb2YgcmVzb3VyY2VzIGZvciB0aGUgVkZzIGlu IHRlcm1zIG9mIHZwb3J0LCBxdWV1ZXMgYW5kIAo+PiBpbnRlcnJ1cHRzCj4+ICsgKiBpcyBkb25l IGJ5IENQLiBXaGVuIHRoaXMgY2FsbCBjb21wbGV0ZXMsIHRoZSBBUEYgZHJpdmVyIGNhbGxzCj4g Cj4gV2hhdCdzIGFuICdBUEYgZHJpdmVyJz/CoCBTaG91bGQgdGhpcyBiZSBJRFBGIFBGIGRyaXZl cj8KPiAKCkdvb2QgY2F0Y2guIFJlcGxhY2VkIHRoZSBBUEYgcmVmZXJlbmNlIHdpdGggSURQRi4K Cj4+ICsgKiBwY2lfZW5hYmxlX3NyaW92IHRvIGxldCB0aGUgT1MgaW5zdGFudGlhdGUgdGhlIFNS SU9WIFBDSUUgZGV2aWNlcy4KPj4gKyAqIFRoZSBudW1iZXIgb2YgVkZzIHNldCB0byAwIHdpbGwg ZGVzdHJveSBhbGwgdGhlIFZGcyBvZiB0aGlzIGZ1bmN0aW9uLgo+PiArICovCj4+ICtzdHJ1Y3Qg dmlydGNobmwyX3NyaW92X3Zmc19pbmZvIHsKPj4gK8KgwqDCoMKgwqDCoCBfX2xlMTYgbnVtX3Zm czsKPj4gK8KgwqDCoMKgwqDCoCBfX2xlMTYgcGFkOwo+PiArfTsKPj4gKwo+PiArVklSVENITkwy X0NIRUNLX1NUUlVDVF9MRU4oNCwgdmlydGNobmwyX3NyaW92X3Zmc19pbmZvKTsKPj4gKwo+PiAr LyogQmFzZWQgb24gdGhlIGRlc2NyaXB0b3IgdHlwZSB0aGUgUEYgc3VwcG9ydHMsIENQIGZpbGxz IHB0eXBlX2lkXzEwIG9yCj4+ICsgKiBwdHlwZV9pZF84IGZvciBmbGV4IGFuZCBiYXNlIGRlc2Ny aXB0b3IgcmVzcGVjdGl2ZWx5LiBJZiAKPj4gcHR5cGVfaWRfMTAgdmFsdWUKPj4gKyAqIGlzIHNl dCB0byAweEZGRkYsIFBGIHNob3VsZCBjb25zaWRlciB0aGlzIHB0eXBlIGFzIGR1bW15IG9uZSBh bmQgCj4+IGl0IGlzIHRoZQo+PiArICogbGFzdCBwdHlwZS4KPj4gKyAqLwo+PiArc3RydWN0IHZp cnRjaG5sMl9wdHlwZSB7Cj4+ICvCoMKgwqDCoMKgwqAgX19sZTE2IHB0eXBlX2lkXzEwOwo+PiAr wqDCoMKgwqDCoMKgIHU4IHB0eXBlX2lkXzg7Cj4+ICsKPj4gK8KgwqDCoMKgwqDCoCAvKiBOdW1i ZXIgb2YgcHJvdG9jb2wgaWRzIHRoZSBwYWNrZXQgc3VwcG9ydHMsIG1heGltdW0gb2YgMzIKPj4g K8KgwqDCoMKgwqDCoMKgICogcHJvdG9jb2wgaWRzIGFyZSBzdXBwb3J0ZWQuCj4+ICvCoMKgwqDC oMKgwqDCoCAqLwo+PiArwqDCoMKgwqDCoMKgIHU4IHByb3RvX2lkX2NvdW50Owo+PiArwqDCoMKg wqDCoMKgIF9fbGUxNiBwYWQ7Cj4+ICsKPj4gK8KgwqDCoMKgwqDCoCAvKiBQcm90b19pZF9jb3Vu dCBkZWNpZGVzIHRoZSBhbGxvY2F0aW9uIG9mIHByb3RvY29sIGlkIGFycmF5ICovCj4+ICvCoMKg wqDCoMKgwqAgLyogU2VlIFZJUlRDSE5MMl9QUk9UT19IRFJfVFlQRSAqLwo+PiArwqDCoMKgwqDC oMKgIF9fbGUxNiBwcm90b19pZFtdOwo+PiArfTsKPj4gKwo+PiArVklSVENITkwyX0NIRUNLX1NU UlVDVF9MRU4oNiwgdmlydGNobmwyX3B0eXBlKTsKPj4gKwo+PiArLyogVklSVENITkwyX09QX0dF VF9QVFlQRV9JTkZPCj4+ICsgKiBUaGUgdG90YWwgbnVtYmVyIG9mIHN1cHBvcnRlZCBwYWNrZXQg dHlwZXMgaXMgYmFzZWQgb24gdGhlIAo+PiBkZXNjcmlwdG9yIHR5cGUuCj4+ICsgKiBGb3IgdGhl IGZsZXggZGVzY3JpcHRvciwgaXQgaXMgMTAyNCAoMTAtYml0IHB0eXBlKSwgYW5kIGZvciB0aGUg YmFzZQo+PiArICogZGVzY3JpcHRvciwgaXQgaXMgMjU2ICg4LWJpdCBwdHlwZSkuIFNlbmQgdGhp cyBtZXNzYWdlIHRvIHRoZSBDUCBieQo+PiArICogcG9wdWxhdGluZyB0aGUgJ3N0YXJ0X3B0eXBl X2lkJyBhbmQgdGhlICdudW1fcHR5cGVzJy4gQ1AgcmVzcG9uZHMgCj4+IHdpdGggdGhlCj4+ICsg KiAnc3RhcnRfcHR5cGVfaWQnLCAnbnVtX3B0eXBlcycsIGFuZCB0aGUgYXJyYXkgb2YgcHR5cGUg Cj4+ICh2aXJ0Y2hubDJfcHR5cGUpIHRoYXQKPj4gKyAqIGFyZSBhZGRlZCBhdCB0aGUgZW5kIG9m IHRoZSAndmlydGNobmwyX2dldF9wdHlwZV9pbmZvJyBtZXNzYWdlIAo+PiAoTm90ZTogVGhlcmUK Pj4gKyAqIGlzIG5vIHNwZWNpZmljIGZpZWxkIGZvciB0aGUgcHR5cGVzIGJ1dCBhcmUgYWRkZWQg YXQgdGhlIGVuZCBvZiB0aGUKPj4gKyAqIHB0eXBlIGluZm8gbWVzc2FnZS4gUEYvVkYgaXMgZXhw ZWN0ZWQgdG8gZXh0cmFjdCB0aGUgcHR5cGVzIAo+PiBhY2NvcmRpbmdseSkuCj4gCj4gV2h5IGlz IHRoZXJlIG5vdCBhIGZsZXhpYmxlIGFycmF5IGZpZWxkIGF0IHRoZSBlbmQgb2YgdGhlIHN0cnVj dD8KPiAKClRoZSByZWFzb24gZm9yIGRvaW5nIGl0IHRoaXMgd2F5IGlzIGJlY2F1c2UgdGhlIGNv bXBpbGVyIGRvZXNuJ3QgYWxsb3cgCm5lc3RlZCBmbGV4aWJsZSBhcnJheSBmaWVsZHMuIEFkZGVk IGEgY29tbWVudCB3aXRoIHRoZSBzYWlkIHJlYXNvbmluZyAKKGl0IHdpbGwgYmUgaW4gdjIpLgoK Pj4gKyAqCj4+ICsgKiBJZiBhbGwgdGhlIHB0eXBlcyBkb24ndCBmaXQgaW50byBvbmUgbWFpbGJv eCBidWZmZXIsIENQIHNwbGl0cyB0aGUKPj4gKyAqIHB0eXBlIGluZm8gaW50byBtdWx0aXBsZSBt ZXNzYWdlcywgd2hlcmUgZWFjaCBtZXNzYWdlIHdpbGwgaGF2ZSAKPj4gaXRzIG93bgo+PiArICog J3N0YXJ0X3B0eXBlX2lkJywgJ251bV9wdHlwZXMnLCBhbmQgdGhlIHB0eXBlIGFycmF5IGl0c2Vs Zi4gV2hlbiAKPj4gQ1AgaXMgZG9uZQo+PiArICogdXBkYXRpbmcgYWxsIHRoZSBwdHlwZSBpbmZv cm1hdGlvbiBleHRyYWN0ZWQgZnJvbSB0aGUgcGFja2FnZSAodGhlIAo+PiBudW1iZXIgb2YKPj4g KyAqIHB0eXBlcyBleHRyYWN0ZWQgbWlnaHQgYmUgbGVzcyB0aGFuIHdoYXQgUEYvVkYgZXhwZWN0 cyksIGl0IHdpbGwgCj4+IGFwcGVuZCBhCj4+ICsgKiBkdW1teSBwdHlwZSAod2hpY2ggaGFzICdw dHlwZV9pZF8xMCcgb2YgJ3N0cnVjdCB2aXJ0Y2hubDJfcHR5cGUnIAo+PiBhcyAweEZGRkYpCj4+ ICsgKiB0byB0aGUgcHR5cGUgYXJyYXkuCj4+ICsgKgo+PiArICogUEYvVkYgaXMgZXhwZWN0ZWQg dG8gcmVjZWl2ZSBtdWx0aXBsZSBWSVJUQ0hOTDJfT1BfR0VUX1BUWVBFX0lORk8gCj4+IG1lc3Nh Z2VzLgo+PiArICovCj4+ICtzdHJ1Y3QgdmlydGNobmwyX2dldF9wdHlwZV9pbmZvIHsKPj4gK8Kg wqDCoMKgwqDCoCBfX2xlMTYgc3RhcnRfcHR5cGVfaWQ7Cj4+ICvCoMKgwqDCoMKgwqAgX19sZTE2 IG51bV9wdHlwZXM7Cj4+ICvCoMKgwqDCoMKgwqAgX19sZTMyIHBhZDsKPj4gK307Cj4+ICsKPj4g K1ZJUlRDSE5MMl9DSEVDS19TVFJVQ1RfTEVOKDgsIHZpcnRjaG5sMl9nZXRfcHR5cGVfaW5mbyk7 Cj4+ICsKPj4gKy8qIFZJUlRDSE5MMl9PUF9HRVRfU1RBVFMKPj4gKyAqIFBGL1ZGIHNlbmRzIHRo aXMgbWVzc2FnZSB0byBDUCB0byBnZXQgdGhlIHVwZGF0ZSBzdGF0cyBieSAKPj4gc3BlY2lmeWlu ZyB0aGUKPj4gKyAqIHZwb3J0X2lkLiBDUCByZXNwb25kcyB3aXRoIHN0YXRzIGluIHN0cnVjdCB2 aXJ0Y2hubDJfdnBvcnRfc3RhdHMuCj4+ICsgKi8KPj4gK3N0cnVjdCB2aXJ0Y2hubDJfdnBvcnRf c3RhdHMgewo+PiArwqDCoMKgwqDCoMKgIF9fbGUzMiB2cG9ydF9pZDsKPj4gK8KgwqDCoMKgwqDC oCB1OCBwYWRbNF07Cj4+ICsKPj4gK8KgwqDCoMKgwqDCoCBfX2xlNjQgcnhfYnl0ZXM7wqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8qIHJlY2VpdmVkIGJ5dGVzICovCj4+ICvCoMKgwqDC oMKgwqAgX19sZTY0IHJ4X3VuaWNhc3Q7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLyogcmVj ZWl2ZWQgdW5pY2FzdCBwa3RzICovCj4+ICvCoMKgwqDCoMKgwqAgX19sZTY0IHJ4X211bHRpY2Fz dDvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8qIHJlY2VpdmVkIG11bHRpY2FzdCBwa3RzICovCj4+ ICvCoMKgwqDCoMKgwqAgX19sZTY0IHJ4X2Jyb2FkY2FzdDvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IC8qIHJlY2VpdmVkIGJyb2FkY2FzdCBwa3RzICovCj4+ICvCoMKgwqDCoMKgwqAgX19sZTY0IHJ4 X2Rpc2NhcmRzOwo+PiArwqDCoMKgwqDCoMKgIF9fbGU2NCByeF9lcnJvcnM7Cj4+ICvCoMKgwqDC oMKgwqAgX19sZTY0IHJ4X3Vua25vd25fcHJvdG9jb2w7Cj4+ICvCoMKgwqDCoMKgwqAgX19sZTY0 IHR4X2J5dGVzO8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvKiB0cmFuc21pdHRlZCBi eXRlcyAqLwo+PiArwqDCoMKgwqDCoMKgIF9fbGU2NCB0eF91bmljYXN0O8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIC8qIHRyYW5zbWl0dGVkIHVuaWNhc3QgcGt0cyAqLwo+PiArwqDCoMKgwqDC oMKgIF9fbGU2NCB0eF9tdWx0aWNhc3Q7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvKiB0cmFuc21p dHRlZCBtdWx0aWNhc3QgcGt0cyAqLwo+PiArwqDCoMKgwqDCoMKgIF9fbGU2NCB0eF9icm9hZGNh c3Q7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvKiB0cmFuc21pdHRlZCBicm9hZGNhc3QgcGt0cyAq Lwo+PiArwqDCoMKgwqDCoMKgIF9fbGU2NCB0eF9kaXNjYXJkczsKPj4gK8KgwqDCoMKgwqDCoCBf X2xlNjQgdHhfZXJyb3JzOwo+PiArwqDCoMKgwqDCoMKgIF9fbGU2NCByeF9pbnZhbGlkX2ZyYW1l X2xlbmd0aDsKPj4gK8KgwqDCoMKgwqDCoCBfX2xlNjQgcnhfb3ZlcmZsb3dfZHJvcDsKPj4gK307 Cj4+ICsKPj4gK1ZJUlRDSE5MMl9DSEVDS19TVFJVQ1RfTEVOKDEyOCwgdmlydGNobmwyX3Zwb3J0 X3N0YXRzKTsKPj4gKwo+PiArLyogVklSVENITkwyX09QX0VWRU5UCj4+ICsgKiBDUCBzZW5kcyB0 aGlzIG1lc3NhZ2UgdG8gaW5mb3JtIHRoZSBQRi9WRiBkcml2ZXIgb2YgZXZlbnRzIHRoYXQgCj4+ IG1heSBhZmZlY3QKPj4gKyAqIGl0LiBObyBkaXJlY3QgcmVzcG9uc2UgaXMgZXhwZWN0ZWQgZnJv bSB0aGUgZHJpdmVyLCB0aG91Z2ggaXQgbWF5IAo+PiBnZW5lcmF0ZQo+PiArICogb3RoZXIgbWVz c2FnZXMgaW4gcmVzcG9uc2UgdG8gdGhpcyBvbmUuCj4+ICsgKi8KPj4gK3N0cnVjdCB2aXJ0Y2hu bDJfZXZlbnQgewo+PiArwqDCoMKgwqDCoMKgIC8qIFNlZSBWSVJUQ0hOTDJfRVZFTlRfQ09ERVMg ZGVmaW5pdGlvbnMgKi8KPj4gK8KgwqDCoMKgwqDCoCBfX2xlMzIgZXZlbnQ7Cj4+ICsKPj4gK8Kg wqDCoMKgwqDCoCAvKiBMaW5rX3NwZWVkIHByb3ZpZGVkIGluIE1icHMgKi8KPj4gK8KgwqDCoMKg wqDCoCBfX2xlMzIgbGlua19zcGVlZDsKPj4gKwo+PiArwqDCoMKgwqDCoMKgIF9fbGUzMiB2cG9y dF9pZDsKPj4gKwo+PiArwqDCoMKgwqDCoMKgIHU4IGxpbmtfc3RhdHVzOwo+PiArwqDCoMKgwqDC oMKgIHU4IHBhZDsKPj4gKwo+PiArwqDCoMKgwqDCoMKgIF9fbGUxNiByZXNlcnZlZDsKPj4gK307 Cj4+ICsKPj4gK1ZJUlRDSE5MMl9DSEVDS19TVFJVQ1RfTEVOKDE2LCB2aXJ0Y2hubDJfZXZlbnQp Owo+PiArCj4+ICsvKiBWSVJUQ0hOTDJfT1BfR0VUX1JTU19LRVkKPj4gKyAqIFZJUlRDSE5MMl9P UF9TRVRfUlNTX0tFWQo+PiArICogUEYvVkYgc2VuZHMgdGhpcyBtZXNzYWdlIHRvIGdldCBvciBz ZXQgUlNTIGtleS4gT25seSBzdXBwb3J0ZWQgaWYgCj4+IGJvdGgKPj4gKyAqIFBGL1ZGIGFuZCBD UCBkcml2ZXJzIHNldCB0aGUgVklSVENITkwyX0NBUF9SU1MgYml0IGR1cmluZyAKPj4gY29uZmln dXJhdGlvbgo+PiArICogbmVnb3RpYXRpb24uIFVzZXMgdGhlIHZpcnRjaG5sMl9yc3Nfa2V5IHN0 cnVjdHVyZQo+PiArICovCj4+ICtzdHJ1Y3QgdmlydGNobmwyX3Jzc19rZXkgewo+PiArwqDCoMKg wqDCoMKgIF9fbGUzMiB2cG9ydF9pZDsKPj4gKwo+PiArwqDCoMKgwqDCoMKgIF9fbGUxNiBrZXlf bGVuOwo+PiArwqDCoMKgwqDCoMKgIHU4IHBhZDsKPj4gKwo+PiArwqDCoMKgwqDCoMKgIC8qIFJT UyBoYXNoIGtleSwgcGFja2VkIGJ5dGVzICovCj4+ICvCoMKgwqDCoMKgwqAgdW5pb24gewo+PiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1OCBrZXlbMV07Cj4+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIF9fREVDTEFSRV9GTEVYX0FSUkFZKHU4LCBrZXlfZmxleCk7Cj4+ICvC oMKgwqDCoMKgwqAgfTsKPj4gK307Cj4gCj4gV2hhdCdzIHdpdGggdGhpcyAxIGJ5dGUga2V5IHZl cnN1cyBmbGV4IGxlbmd0aCBrZXk/wqAgV2hlbiB3b3VsZCB0aGVyZSAKPiBvbmx5IGJlIGEgMSBi eXRlIGtleSB2YWx1ZSwgYW5kIHdoeSB3b3VsZG4ndCB0aGUgZmxleCBhcnJheSB3b3JrIGZvciBp dD8KPiBXaXRob3V0IG1vcmUgZGVzY3JpcHRpb24sIHRoaXMgbG9va3MgbGlrZSB1bm5lY2Vzc2Fy eSBjb21wbGV4aXR5Lgo+IAoKUmVtb3ZlZCB0aGUga2V5WzFdIGFzIGl0IGlzIG5vdCBiZWluZyB1 c2VkLCB0aGF0IHJlc3VsdHMgaW4gcmVtb3ZpbmcgCnVuaW9uIGFzIHdlbGwgYnV0IHdlIHN0aWxs IG5lZWQgX19ERUNMQVJFX0ZMRVhfQVJSQVkgbWFjcm8uIFdpdGhvdXQgdGhhdCAKdGhlIHNpemUg b2YgdGhlIHN0cnVjdCB3b3VsZCBiZSA3IGJ5dGVzIGFuZCB0aGUgY29tcGlsZXIgcm91bmRzIGl0 IHVwIHRvIAo4IGJ5dGVzLgoKPj4gKwo+PiArVklSVENITkwyX0NIRUNLX1NUUlVDVF9MRU4oOCwg dmlydGNobmwyX3Jzc19rZXkpOwo+PiArCj4+ICsvKiBzdHJ1Y3R1cmUgdG8gc3BlY2lmeSBhIGNo dW5rIG9mIGNvbnRpZ3VvdXMgcXVldWVzICovCj4+ICtzdHJ1Y3QgdmlydGNobmwyX3F1ZXVlX2No dW5rIHsKPj4gK8KgwqDCoMKgwqDCoCAvKiBTZWUgVklSVENITkwyX1FVRVVFX1RZUEUgZGVmaW5p dGlvbnMgKi8KPj4gK8KgwqDCoMKgwqDCoCBfX2xlMzIgdHlwZTsKPj4gK8KgwqDCoMKgwqDCoCBf X2xlMzIgc3RhcnRfcXVldWVfaWQ7Cj4+ICvCoMKgwqDCoMKgwqAgX19sZTMyIG51bV9xdWV1ZXM7 Cj4+ICvCoMKgwqDCoMKgwqAgdTggcGFkWzRdOwo+PiArfTsKPj4gKwo+PiArVklSVENITkwyX0NI RUNLX1NUUlVDVF9MRU4oMTYsIHZpcnRjaG5sMl9xdWV1ZV9jaHVuayk7Cj4+ICsKPj4gKy8qIFN0 cnVjdHVyZSB0byBzcGVjaWZ5IHNldmVyYWwgY2h1bmtzIG9mIGNvbnRpZ3VvdXMgcXVldWVzICov Cj4+ICtzdHJ1Y3QgdmlydGNobmwyX3F1ZXVlX2NodW5rcyB7Cj4+ICvCoMKgwqDCoMKgwqAgX19s ZTE2IG51bV9jaHVua3M7Cj4+ICvCoMKgwqDCoMKgwqAgdTggcGFkWzZdOwo+PiArCj4+ICvCoMKg wqDCoMKgwqAgc3RydWN0IHZpcnRjaG5sMl9xdWV1ZV9jaHVuayBjaHVua3NbXTsKPj4gK307Cj4+ ICsKPj4gK1ZJUlRDSE5MMl9DSEVDS19TVFJVQ1RfTEVOKDgsIHZpcnRjaG5sMl9xdWV1ZV9jaHVu a3MpOwo+PiArCj4+ICsvKiBWSVJUQ0hOTDJfT1BfRU5BQkxFX1FVRVVFUwo+PiArICogVklSVENI TkwyX09QX0RJU0FCTEVfUVVFVUVTCj4+ICsgKiBWSVJUQ0hOTDJfT1BfREVMX1FVRVVFUwo+PiAr ICoKPj4gKyAqIFBGIHNlbmRzIHRoZXNlIG1lc3NhZ2VzIHRvIGVuYWJsZSwgZGlzYWJsZSBvciBk ZWxldGUgcXVldWVzIAo+PiBzcGVjaWZpZWQgaW4KPj4gKyAqIGNodW5rcy4gUEYgc2VuZHMgdmly dGNobmwyX2RlbF9lbmFfZGlzX3F1ZXVlcyBzdHJ1Y3QgdG8gc3BlY2lmeSAKPj4gdGhlIHF1ZXVl cwo+PiArICogdG8gYmUgZW5hYmxlZC9kaXNhYmxlZC9kZWxldGVkLiBBbHNvIGFwcGxpY2FibGUg dG8gc2luZ2xlIHF1ZXVlIAo+PiByZWNlaXZlIG9yCj4+ICsgKiB0cmFuc21pdC4gQ1AgcGVyZm9y bXMgcmVxdWVzdGVkIGFjdGlvbiBhbmQgcmV0dXJucyBzdGF0dXMuCj4+ICsgKi8KPj4gK3N0cnVj dCB2aXJ0Y2hubDJfZGVsX2VuYV9kaXNfcXVldWVzIHsKPj4gK8KgwqDCoMKgwqDCoCBfX2xlMzIg dnBvcnRfaWQ7Cj4+ICvCoMKgwqDCoMKgwqAgdTggcGFkWzRdOwo+PiArCj4+ICvCoMKgwqDCoMKg wqAgc3RydWN0IHZpcnRjaG5sMl9xdWV1ZV9jaHVua3MgY2h1bmtzOwo+PiArfTsKPj4gKwo+PiAr VklSVENITkwyX0NIRUNLX1NUUlVDVF9MRU4oMTYsIHZpcnRjaG5sMl9kZWxfZW5hX2Rpc19xdWV1 ZXMpOwo+PiArCj4+ICsvKiBRdWV1ZSB0byB2ZWN0b3IgbWFwcGluZyAqLwo+PiArc3RydWN0IHZp cnRjaG5sMl9xdWV1ZV92ZWN0b3Igewo+PiArwqDCoMKgwqDCoMKgIF9fbGUzMiBxdWV1ZV9pZDsK Pj4gK8KgwqDCoMKgwqDCoCBfX2xlMTYgdmVjdG9yX2lkOwo+PiArwqDCoMKgwqDCoMKgIHU4IHBh ZFsyXTsKPj4gKwo+PiArwqDCoMKgwqDCoMKgIC8qIFNlZSBWSVJUQ0hOTDJfSVRSX0lEWCBkZWZp bml0aW9ucyAqLwo+PiArwqDCoMKgwqDCoMKgIF9fbGUzMiBpdHJfaWR4Owo+PiArCj4+ICvCoMKg wqDCoMKgwqAgLyogU2VlIFZJUlRDSE5MMl9RVUVVRV9UWVBFIGRlZmluaXRpb25zICovCj4+ICvC oMKgwqDCoMKgwqAgX19sZTMyIHF1ZXVlX3R5cGU7Cj4+ICvCoMKgwqDCoMKgwqAgdTggcGFkMVs4 XTsKPj4gK307Cj4gCj4gV2h5IHRoZSBlbmQgcGFkZGluZz/CoCBXaGF0J3Mgd3Jvbmcgd2l0aCB0 aGUgMTYtYnl0ZSBzaXplPwo+IAoKVGhlIGVuZCBwYWRkaW5nIGlzIGFkZGVkIGZvciBhbnkgcG9z c2libGUgZnV0dXJlIGFkZGl0aW9ucyBvZiB0aGUgZmllbGRzIAp0byB0aGlzIHN0cnVjdHVyZS4g RGlkbid0IGdldCB0aGUgYXNrIGZvciAxNi1ieXRlIHNpemUsIGNhbiB5b3UgcGxlYXNlIAplbGFi b3JhdGU/Cgo+PiArCj4+ICtWSVJUQ0hOTDJfQ0hFQ0tfU1RSVUNUX0xFTigyNCwgdmlydGNobmwy X3F1ZXVlX3ZlY3Rvcik7Cj4+ICsKPj4gKy8qIFZJUlRDSE5MMl9PUF9NQVBfUVVFVUVfVkVDVE9S Cj4+ICsgKiBWSVJUQ0hOTDJfT1BfVU5NQVBfUVVFVUVfVkVDVE9SCj4+ICsgKgo+PiArICogUEYg c2VuZHMgdGhpcyBtZXNzYWdlIHRvIG1hcCBvciB1bm1hcCBxdWV1ZXMgdG8gdmVjdG9ycyBhbmQg aW50ZXJydXB0Cj4+ICsgKiB0aHJvdHRsaW5nIHJhdGUgaW5kZXggcmVnaXN0ZXJzLiBFeHRlcm5h bCBkYXRhIGJ1ZmZlciBjb250YWlucwo+PiArICogdmlydGNobmwyX3F1ZXVlX3ZlY3Rvcl9tYXBz IHN0cnVjdHVyZSB0aGF0IGNvbnRhaW5zIG51bV9xdl9tYXBzIG9mCj4+ICsgKiB2aXJ0Y2hubDJf cXVldWVfdmVjdG9yIHN0cnVjdHVyZXMuIENQIG1hcHMgdGhlIHJlcXVlc3RlZCBxdWV1ZSAKPj4g dmVjdG9yIG1hcHMKPj4gKyAqIGFmdGVyIHZhbGlkYXRpbmcgdGhlIHF1ZXVlIGFuZCB2ZWN0b3Ig aWRzIGFuZCByZXR1cm5zIGEgc3RhdHVzIGNvZGUuCj4+ICsgKi8KPj4gK3N0cnVjdCB2aXJ0Y2hu bDJfcXVldWVfdmVjdG9yX21hcHMgewo+PiArwqDCoMKgwqDCoMKgIF9fbGUzMiB2cG9ydF9pZDsK Pj4gKwo+PiArwqDCoMKgwqDCoMKgIF9fbGUxNiBudW1fcXZfbWFwczsKPj4gK8KgwqDCoMKgwqDC oCB1OCBwYWRbMTBdOwo+PiArCj4+ICvCoMKgwqDCoMKgwqAgc3RydWN0IHZpcnRjaG5sMl9xdWV1 ZV92ZWN0b3IgcXZfbWFwc1tdOwo+PiArfTsKPj4gKwo+PiArVklSVENITkwyX0NIRUNLX1NUUlVD VF9MRU4oMTYsIHZpcnRjaG5sMl9xdWV1ZV92ZWN0b3JfbWFwcyk7Cj4+ICsKPj4gKy8qIFZJUlRD SE5MMl9PUF9MT09QQkFDSwo+PiArICoKPj4gKyAqIFBGL1ZGIHNlbmRzIHRoaXMgbWVzc2FnZSB0 byB0cmFuc2l0aW9uIHRvL2Zyb20gdGhlIGxvb3BiYWNrIHN0YXRlLiAKPj4gU2V0dGluZwo+PiAr ICogdGhlICdlbmFibGUnIHRvIDEgZW5hYmxlcyB0aGUgbG9vcGJhY2sgc3RhdGUgYW5kIHNldHRp bmcgJ2VuYWJsZScgCj4+IHRvIDAKPj4gKyAqIGRpc2FibGVzIGl0LiBDUCBjb25maWd1cmVzIHRo ZSBzdGF0ZSB0byBsb29wYmFjayBhbmQgcmV0dXJucyBzdGF0dXMuCj4+ICsgKi8KPj4gK3N0cnVj dCB2aXJ0Y2hubDJfbG9vcGJhY2sgewo+PiArwqDCoMKgwqDCoMKgIF9fbGUzMiB2cG9ydF9pZDsK Pj4gKwo+PiArwqDCoMKgwqDCoMKgIHU4IGVuYWJsZTsKPj4gK8KgwqDCoMKgwqDCoCB1OCBwYWRb M107Cj4+ICt9Owo+PiArCj4+ICtWSVJUQ0hOTDJfQ0hFQ0tfU1RSVUNUX0xFTig4LCB2aXJ0Y2hu bDJfbG9vcGJhY2spOwo+PiArCj4+ICsvKiBTdHJ1Y3R1cmUgdG8gc3BlY2lmeSBlYWNoIE1BQyBh ZGRyZXNzICovCj4+ICtzdHJ1Y3QgdmlydGNobmwyX21hY19hZGRyIHsKPj4gK8KgwqDCoMKgwqDC oCB1OCBhZGRyW0VUSF9BTEVOXTsKPj4gK8KgwqDCoMKgwqDCoCAvKiBTZWUgVklSVENITkwyX01B Q19UWVBFIGRlZmluaXRpb25zICovCj4+ICvCoMKgwqDCoMKgwqAgdTggdHlwZTsKPj4gK8KgwqDC oMKgwqDCoCB1OCBwYWQ7Cj4+ICt9Owo+PiArCj4+ICtWSVJUQ0hOTDJfQ0hFQ0tfU1RSVUNUX0xF Tig4LCB2aXJ0Y2hubDJfbWFjX2FkZHIpOwo+PiArCj4+ICsvKiBWSVJUQ0hOTDJfT1BfQUREX01B Q19BRERSCj4+ICsgKiBWSVJUQ0hOTDJfT1BfREVMX01BQ19BRERSCj4+ICsgKgo+PiArICogUEYv VkYgZHJpdmVyIHVzZXMgdGhpcyBzdHJ1Y3R1cmUgdG8gc2VuZCBsaXN0IG9mIE1BQyBhZGRyZXNz ZXMgdG8gYmUKPj4gKyAqIGFkZGVkL2RlbGV0ZWQgdG8gdGhlIENQIHdoZXJlIGFzIENQIHBlcmZv cm1zIHRoZSBhY3Rpb24gYW5kIAo+PiByZXR1cm5zIHRoZQo+PiArICogc3RhdHVzLgo+PiArICov Cj4+ICtzdHJ1Y3QgdmlydGNobmwyX21hY19hZGRyX2xpc3Qgewo+PiArwqDCoMKgwqDCoMKgIF9f bGUzMiB2cG9ydF9pZDsKPj4gKwo+PiArwqDCoMKgwqDCoMKgIF9fbGUxNiBudW1fbWFjX2FkZHI7 Cj4+ICvCoMKgwqDCoMKgwqAgdTggcGFkWzJdOwo+PiArCj4+ICvCoMKgwqDCoMKgwqAgc3RydWN0 IHZpcnRjaG5sMl9tYWNfYWRkciBtYWNfYWRkcl9saXN0W107Cj4+ICt9Owo+PiArCj4+ICtWSVJU Q0hOTDJfQ0hFQ0tfU1RSVUNUX0xFTig4LCB2aXJ0Y2hubDJfbWFjX2FkZHJfbGlzdCk7Cj4+ICsK Pj4gKy8qIFZJUlRDSE5MMl9PUF9DT05GSUdfUFJPTUlTQ1VPVVNfTU9ERQo+PiArICoKPj4gKyAq IFBGL1ZGIHNlbmRzIHZwb3J0IGlkIGFuZCBmbGFncyB0byB0aGUgQ1Agd2hlcmUgYXMgQ1AgcGVy Zm9ybXMgdGhlIAo+PiBhY3Rpb24KPj4gKyAqIGFuZCByZXR1cm5zIHRoZSBzdGF0dXMuCj4+ICsg Ki8KPj4gK3N0cnVjdCB2aXJ0Y2hubDJfcHJvbWlzY19pbmZvIHsKPj4gK8KgwqDCoMKgwqDCoCBf X2xlMzIgdnBvcnRfaWQ7Cj4+ICsKPj4gK8KgwqDCoMKgwqDCoCAvKiBTZWUgVklSVENITkwyX1BS T01JU0NfRkxBR1MgZGVmaW5pdGlvbnMgKi8KPj4gK8KgwqDCoMKgwqDCoCBfX2xlMTYgZmxhZ3M7 Cj4+ICvCoMKgwqDCoMKgwqAgdTggcGFkWzJdOwo+PiArfTsKPj4gKwo+PiArVklSVENITkwyX0NI RUNLX1NUUlVDVF9MRU4oOCwgdmlydGNobmwyX3Byb21pc2NfaW5mbyk7Cj4+ICsKPj4gKyNlbmRp ZiAvKiBfVklSVENITkxfMl9IXyAqLwo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvaW50ZWwvaWRwZi92aXJ0Y2hubDJfbGFuX2Rlc2MuaCAKPj4gYi9kcml2ZXJzL25ldC9ldGhl cm5ldC9pbnRlbC9pZHBmL3ZpcnRjaG5sMl9sYW5fZGVzYy5oCj4+IG5ldyBmaWxlIG1vZGUgMTAw NjQ0Cj4+IGluZGV4IDAwMDAwMDAwMDAwMC4uNDJmNmVlN2JjMDgzCj4+IC0tLSAvZGV2L251bGwK Pj4gKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWRwZi92aXJ0Y2hubDJfbGFuX2Rl c2MuaAo+PiBAQCAtMCwwICsxLDY0NCBAQAo+PiArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6 IEdQTC0yLjAtb25seSAqLwo+PiArLyogQ29weXJpZ2h0IChDKSAyMDIzIEludGVsIENvcnBvcmF0 aW9uICovCj4+ICsKPj4gKyNpZm5kZWYgX1ZJUlRDSE5MMl9MQU5fREVTQ19IXwo+PiArI2RlZmlu ZSBfVklSVENITkwyX0xBTl9ERVNDX0hfCj4+ICsKPj4gKyNpbmNsdWRlIDxsaW51eC9iaXRzLmg+ Cj4+ICsKPj4gKy8qIFZJUlRDSE5MMl9UWF9ERVNDX0lEUwo+PiArICogVHJhbnNtaXQgZGVzY3Jp cHRvciBJRCBmbGFncwo+PiArICovCj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9UWERJRF9EQVRBwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBCSVQoMCkK Pj4gKyNkZWZpbmUgVklSVENITkwyX1RYRElEX0NUWMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBCSVQoMSkKPj4gKy8qIFRYRElEIDIgaXMgcmVz ZXJ2ZWQKPj4gKyAqIFRYRElEIDMgaXMgZnJlZSBmb3IgZnV0dXJlIHVzZQo+PiArICogVFhESUQg NCBpcyByZXNlcnZlZAo+PiArICovCj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9UWERJRF9GTEVYX1RT T19DVFjCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgQklUKDUpCj4+ICsvKiBU WERJRCA2IGlzIHJlc2VydmVkICovCj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9UWERJRF9GTEVYX0wy VEFHMV9MMlRBRzLCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgQklUKDcpCj4+ICsvKiBUWERJRCA4 LCA5IGFyZSBmcmVlIGZvciBmdXR1cmUgdXNlCj4+ICsgKiBUWERJRCAxMCBpcyByZXNlcnZlZAo+ PiArICogVFhESUQgMTEgaXMgZnJlZSBmb3IgZnV0dXJlIHVzZQo+PiArICovCj4+ICsjZGVmaW5l IFZJUlRDSE5MMl9UWERJRF9GTEVYX0ZMT1dfU0NIRUTCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIEJJVCgxMikKPj4gKy8qIFRYRElEIDEzLCAxNCBhcmUgZnJl ZSBmb3IgZnV0dXJlIHVzZSAqLwo+PiArI2RlZmluZSBWSVJUQ0hOTDJfVFhESURfREVTQ19ET05F wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIEJJVCgxNSkKPj4gKwo+ PiArLyogVklSVENITkwyX1JYX0RFU0NfSURTCj4+ICsgKiBSZWNlaXZlIGRlc2NyaXB0b3IgSURz IChyYW5nZSBmcm9tIDAgdG8gNjMpCj4+ICsgKi8KPiAKPiBBZ2FpbiwgZW51bSBmb3IgdGhlc2Ug bGlzdHMgb2YgdmFsdWVzCj4gCj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9SWERJRF8wXzE2Ql9CQVNF wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAwCj4+ICsjZGVmaW5lIFZJ UlRDSE5MMl9SWERJRF8xXzMyQl9CQVNFwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCAxCj4+ICsvKiBGTEVYX1NRX05JQyBhbmQgRkxFWF9TUExJVFEgc2hhcmUgZGVzYyBp ZHMgYmVjYXVzZSB0aGV5IGNhbiBiZQo+PiArICogZGlmZmVyZW50aWF0ZWQgYmFzZWQgb24gcXVl dWUgbW9kZWw7IGUuZy4gc2luZ2xlIHF1ZXVlIG1vZGVsIGNhbgo+PiArICogb25seSB1c2UgRkxF WF9TUV9OSUMgYW5kIHNwbGl0IHF1ZXVlIG1vZGVsIGNhbiBvbmx5IHVzZSBGTEVYX1NQTElUUQo+ PiArICogZm9yIERJRCAyLgo+PiArICovCj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9SWERJRF8yX0ZM RVhfU1BMSVRRwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAyCj4+ICsjZGVmaW5l IFZJUlRDSE5MMl9SWERJRF8yX0ZMRVhfU1FfTklDwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCAyCj4gCj4gTWF5YmUgc2V0IFZJUlRDSE5MMl9SWERJRF8yX0ZMRVhfU1FfTklDIHRv IHZhbHVlIAo+IFZJUlRDSE5MMl9SWERJRF8yX0ZMRVhfU1BMSVRRIGluc3RlYWQgb2YgJzInIHRv IGhlbHAgbWFrZSBpdCBjbGVhciB0aGlzIAo+IGlzbid0IGEgbWlzdGFrZS4KPiAKClRoZSBjb21t ZW50IGFib3ZlIGV4cGxhaW5zIHRoZSByZWFzb24gZm9yIGRvaW5nIGl0LiBCYXNlZCBvbiB5b3Vy IApzdWdnZXN0aW9uLCB1cGRhdGVkIHRoZSBWSVJUQ0hOTDJfUlhESURfMl9GTEVYX1NRX05JQyB3 aXRoIApWSVJUQ0hOTDJfUlhESURfMl9GTEVYX1NQTElUUSB0byBtYWtlIGl0IG1vcmUgY2xlYXIu IEl0IHdpbGwgYmUgaW4gdjIuCgo+PiArI2RlZmluZSBWSVJUQ0hOTDJfUlhESURfM19GTEVYX1NR X1NXwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDMKPj4gKyNkZWZpbmUgVklS VENITkwyX1JYRElEXzRfRkxFWF9TUV9OSUNfVkVCwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg NAo+PiArI2RlZmluZSBWSVJUQ0hOTDJfUlhESURfNV9GTEVYX1NRX05JQ19BQ0zCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCA1Cj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9SWERJRF82X0ZMRVhfU1Ff TklDXzLCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDYKPj4g KyNkZWZpbmUgVklSVENITkwyX1JYRElEXzdfSFdfUlNWRMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCA3Cj4+ICsvKiA5IHRocm91Z2ggMTUgYXJlIHJlc2VydmVkICov Cj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9SWERJRF8xNl9DT01NU19HRU5FUklDwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCAxNgo+PiArI2RlZmluZSBWSVJUQ0hOTDJfUlhESURfMTdfQ09NTVNf QVVYX1ZMQU7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAxNwo+PiArI2RlZmluZSBWSVJUQ0hO TDJfUlhESURfMThfQ09NTVNfQVVYX0lQVjTCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAxOAo+ PiArI2RlZmluZSBWSVJUQ0hOTDJfUlhESURfMTlfQ09NTVNfQVVYX0lQVjbCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCAxOQo+PiArI2RlZmluZSBWSVJUQ0hOTDJfUlhESURfMjBfQ09NTVNfQVVY X0ZMT1fCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAyMAo+PiArI2RlZmluZSBWSVJUQ0hOTDJf UlhESURfMjFfQ09NTVNfQVVYX1RDUMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgMjEKPj4g Ky8qIDIyIHRocm91Z2ggNjMgYXJlIHJlc2VydmVkICovCj4+ICsKPj4gKy8qIFZJUlRDSE5MMl9S WF9ERVNDX0lEX0JJVE1BU0tTCj4+ICsgKiBSZWNlaXZlIGRlc2NyaXB0b3IgSUQgYml0bWFza3MK Pj4gKyAqLwo+PiArI2RlZmluZSBWSVJUQ0hOTDJfUlhESURfTShiaXQpICAgICAgICAgICAgICAg ICAKPj4gQklUX1VMTChWSVJUQ0hOTDJfUlhESURfIyNiaXQpCj4+ICsjZGVmaW5lIFZJUlRDSE5M Ml9SWERJRF8wXzE2Ql9CQVNFX00gICAgICAgICAgIAo+PiBWSVJUQ0hOTDJfUlhESURfTSgwXzE2 Ql9CQVNFKQo+PiArI2RlZmluZSBWSVJUQ0hOTDJfUlhESURfMV8zMkJfQkFTRV9NICAgICAgICAg ICAKPj4gVklSVENITkwyX1JYRElEX00oMV8zMkJfQkFTRSkKPj4gKyNkZWZpbmUgVklSVENITkwy X1JYRElEXzJfRkxFWF9TUExJVFFfTSAgICAgICAgICAgICAgICAKPj4gVklSVENITkwyX1JYRElE X00oMl9GTEVYX1NQTElUUSkKPj4gKyNkZWZpbmUgVklSVENITkwyX1JYRElEXzJfRkxFWF9TUV9O SUNfTSAgICAgICAgICAgICAgICAKPj4gVklSVENITkwyX1JYRElEX00oMl9GTEVYX1NRX05JQykK Pj4gKyNkZWZpbmUgVklSVENITkwyX1JYRElEXzNfRkxFWF9TUV9TV19NICAgICAgICAgCj4+IFZJ UlRDSE5MMl9SWERJRF9NKDNfRkxFWF9TUV9TVykKPj4gKyNkZWZpbmUgVklSVENITkwyX1JYRElE XzRfRkxFWF9TUV9OSUNfVkVCX00gICAgCj4+IFZJUlRDSE5MMl9SWERJRF9NKDRfRkxFWF9TUV9O SUNfVkVCKQo+PiArI2RlZmluZSBWSVJUQ0hOTDJfUlhESURfNV9GTEVYX1NRX05JQ19BQ0xfTSAg ICAKPj4gVklSVENITkwyX1JYRElEX00oNV9GTEVYX1NRX05JQ19BQ0wpCj4+ICsjZGVmaW5lIFZJ UlRDSE5MMl9SWERJRF82X0ZMRVhfU1FfTklDXzJfTSAgICAgIAo+PiBWSVJUQ0hOTDJfUlhESURf TSg2X0ZMRVhfU1FfTklDXzIpCj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9SWERJRF83X0hXX1JTVkRf TSAgICAgICAgICAgIAo+PiBWSVJUQ0hOTDJfUlhESURfTSg3X0hXX1JTVkQpCj4+ICsvKiA5IHRo cm91Z2ggMTUgYXJlIHJlc2VydmVkICovCj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9SWERJRF8xNl9D T01NU19HRU5FUklDX00gICAgIAo+PiBWSVJUQ0hOTDJfUlhESURfTSgxNl9DT01NU19HRU5FUklD KQo+PiArI2RlZmluZSBWSVJUQ0hOTDJfUlhESURfMTdfQ09NTVNfQVVYX1ZMQU5fTSAgICAKPj4g VklSVENITkwyX1JYRElEX00oMTdfQ09NTVNfQVVYX1ZMQU4pCj4+ICsjZGVmaW5lIFZJUlRDSE5M Ml9SWERJRF8xOF9DT01NU19BVVhfSVBWNF9NICAgIAo+PiBWSVJUQ0hOTDJfUlhESURfTSgxOF9D T01NU19BVVhfSVBWNCkKPj4gKyNkZWZpbmUgVklSVENITkwyX1JYRElEXzE5X0NPTU1TX0FVWF9J UFY2X00gICAgCj4+IFZJUlRDSE5MMl9SWERJRF9NKDE5X0NPTU1TX0FVWF9JUFY2KQo+PiArI2Rl ZmluZSBWSVJUQ0hOTDJfUlhESURfMjBfQ09NTVNfQVVYX0ZMT1dfTSAgICAKPj4gVklSVENITkwy X1JYRElEX00oMjBfQ09NTVNfQVVYX0ZMT1cpCj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9SWERJRF8y MV9DT01NU19BVVhfVENQX00gICAgIAo+PiBWSVJUQ0hOTDJfUlhESURfTSgyMV9DT01NU19BVVhf VENQKQo+PiArLyogMjIgdGhyb3VnaCA2MyBhcmUgcmVzZXJ2ZWQgKi8KPj4gKwo+PiArLyogUngg Ki8KPj4gKy8qIEZvciBzcGxpdHEgdmlydGNobmwyX3J4X2ZsZXhfZGVzY19hZHYgZGVzYyBtZW1i ZXJzICovCj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9SWF9GTEVYX0RFU0NfQURWX1JYRElEX1PCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgMAo+PiArI2RlZmluZSBWSVJUQ0hOTDJfUlhfRkxFWF9ERVND X0FEVl9SWERJRF9NwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIEdFTk1BU0soMywgMCkKPj4gKyNk ZWZpbmUgVklSVENITkwyX1JYX0ZMRVhfREVTQ19BRFZfVU1CQ0FTVF9TwqDCoMKgwqDCoMKgwqDC oMKgwqAgNgo+PiArI2RlZmluZSBWSVJUQ0hOTDJfUlhfRkxFWF9ERVNDX0FEVl9VTUJDQVNUX03C oMKgwqDCoMKgwqDCoMKgwqDCoCBHRU5NQVNLKDcsIDYpCj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9S WF9GTEVYX0RFU0NfQURWX1BUWVBFX1PCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgMAo+PiArI2Rl ZmluZSBWSVJUQ0hOTDJfUlhfRkxFWF9ERVNDX0FEVl9QVFlQRV9NwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIEdFTk1BU0soOSwgMCkKPj4gKyNkZWZpbmUgVklSVENITkwyX1JYX0ZMRVhfREVTQ19B RFZfRkYwX1PCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDEyCj4+ICsjZGVmaW5lIFZJUlRD SE5MMl9SWF9GTEVYX0RFU0NfQURWX0ZGMF9NwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBH RU5NQVNLKDE1LCAxMykKPj4gKyNkZWZpbmUgVklSVENITkwyX1JYX0ZMRVhfREVTQ19BRFZfTEVO X1BCVUZfU8KgwqDCoMKgwqDCoMKgwqDCoCAwCj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9SWF9GTEVY X0RFU0NfQURWX0xFTl9QQlVGX03CoMKgwqDCoMKgwqDCoMKgwqAgR0VOTUFTSygxMywgMCkKPj4g KyNkZWZpbmUgVklSVENITkwyX1JYX0ZMRVhfREVTQ19BRFZfR0VOX1PCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIDE0Cj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9SWF9GTEVYX0RFU0NfQURWX0dF Tl9NwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBcCj4+ICvCoMKgwqDCoMKgwqAgQklUX1VM TChWSVJUQ0hOTDJfUlhfRkxFWF9ERVNDX0FEVl9HRU5fUykKPj4gKyNkZWZpbmUgVklSVENITkwy X1JYX0ZMRVhfREVTQ19BRFZfQlVGUV9JRF9TwqDCoMKgwqDCoMKgwqDCoMKgwqAgMTUKPj4gKyNk ZWZpbmUgVklSVENITkwyX1JYX0ZMRVhfREVTQ19BRFZfQlVGUV9JRF9NwqDCoMKgwqDCoMKgwqDC oMKgwqAgXAo+PiArwqDCoMKgwqDCoMKgIEJJVF9VTEwoVklSVENITkwyX1JYX0ZMRVhfREVTQ19B RFZfQlVGUV9JRF9TKQo+PiArI2RlZmluZSBWSVJUQ0hOTDJfUlhfRkxFWF9ERVNDX0FEVl9MRU5f SERSX1PCoMKgwqDCoMKgwqDCoMKgwqDCoCAwCj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9SWF9GTEVY X0RFU0NfQURWX0xFTl9IRFJfTcKgwqDCoMKgwqDCoMKgwqDCoMKgIEdFTk1BU0soOSwgMCkKPj4g KyNkZWZpbmUgVklSVENITkwyX1JYX0ZMRVhfREVTQ19BRFZfUlNDX1PCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIDEwCj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9SWF9GTEVYX0RFU0NfQURWX1JT Q19NwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBcCj4+ICvCoMKgwqDCoMKgwqAgQklUX1VM TChWSVJUQ0hOTDJfUlhfRkxFWF9ERVNDX0FEVl9SU0NfUykKPj4gKyNkZWZpbmUgVklSVENITkwy X1JYX0ZMRVhfREVTQ19BRFZfU1BIX1PCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDExCj4+ ICsjZGVmaW5lIFZJUlRDSE5MMl9SWF9GTEVYX0RFU0NfQURWX1NQSF9NwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBcCj4+ICvCoMKgwqDCoMKgwqAgQklUX1VMTChWSVJUQ0hOTDJfUlhfRkxF WF9ERVNDX0FEVl9TUEhfUykKPj4gKyNkZWZpbmUgVklSVENITkwyX1JYX0ZMRVhfREVTQ19BRFZf RkYxX1PCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDEyCj4+ICsjZGVmaW5lIFZJUlRDSE5M Ml9SWF9GTEVYX0RFU0NfQURWX0ZGMV9NwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBHRU5N QVNLKDE0LCAxMikKPj4gKyNkZWZpbmUgVklSVENITkwyX1JYX0ZMRVhfREVTQ19BRFZfTUlTU19T wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgMTUKPj4gKyNkZWZpbmUgVklSVENITkwyX1JYX0ZM RVhfREVTQ19BRFZfTUlTU19NwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgXAo+PiArwqDCoMKg wqDCoMKgIEJJVF9VTEwoVklSVENITkwyX1JYX0ZMRVhfREVTQ19BRFZfTUlTU19TKQo+PiArCj4+ ICsvKiBWSVJUQ0hOTDJfUlhfRkxFWF9ERVNDX0FEVl9TVEFUVVNfRVJST1JfMF9RVzFfQklUUwo+ PiArICogRm9yIHNwbGl0cSB2aXJ0Y2hubDJfcnhfZmxleF9kZXNjX2Fkdgo+PiArICogTm90ZTog VGhlc2UgYXJlIHByZWRlZmluZWQgYml0IG9mZnNldHMKPj4gKyAqLwo+PiArI2RlZmluZSBWSVJU Q0hOTDJfUlhfRkxFWF9ERVNDX0FEVl9TVEFUVVMwX0REX1PCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDAKPj4gKyNkZWZpbmUgVklSVENITkwyX1JYX0ZMRVhf REVTQ19BRFZfU1RBVFVTMF9FT0ZfU8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgMQo+PiAr I2RlZmluZSBWSVJUQ0hOTDJfUlhfRkxFWF9ERVNDX0FEVl9TVEFUVVMwX0hCT19TwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCAyCj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9SWF9GTEVYX0RFU0Nf QURWX1NUQVRVUzBfTDNMNFBfU8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAzCj4+ICsjZGVmaW5l IFZJUlRDSE5MMl9SWF9GTEVYX0RFU0NfQURWX1NUQVRVUzBfWFNVTV9JUEVfU8KgwqDCoMKgwqDC oMKgwqDCoCA0Cj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9SWF9GTEVYX0RFU0NfQURWX1NUQVRVUzBf WFNVTV9MNEVfU8KgwqDCoMKgwqDCoMKgwqDCoCA1Cj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9SWF9G TEVYX0RFU0NfQURWX1NUQVRVUzBfWFNVTV9FSVBFX1PCoMKgwqDCoMKgwqDCoMKgIDYKPj4gKyNk ZWZpbmUgVklSVENITkwyX1JYX0ZMRVhfREVTQ19BRFZfU1RBVFVTMF9YU1VNX0VVRFBFX1PCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgNwo+PiArCj4+ICsvKiBWSVJUQ0hOTDJfUlhfRkxF WF9ERVNDX0FEVl9TVEFUVVNfRVJST1JfMF9RVzBfQklUUwo+PiArICogRm9yIHNwbGl0cSB2aXJ0 Y2hubDJfcnhfZmxleF9kZXNjX2Fkdgo+PiArICogTm90ZTogVGhlc2UgYXJlIHByZWRlZmluZWQg Yml0IG9mZnNldHMKPj4gKyAqLwo+PiArI2RlZmluZSBWSVJUQ0hOTDJfUlhfRkxFWF9ERVNDX0FE Vl9TVEFUVVMwX0xQQktfU8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDAKPj4gKyNkZWZpbmUg VklSVENITkwyX1JYX0ZMRVhfREVTQ19BRFZfU1RBVFVTMF9JUFY2RVhBRERfU8KgwqDCoMKgwqDC oMKgwqAgMQo+PiArI2RlZmluZSBWSVJUQ0hOTDJfUlhfRkxFWF9ERVNDX0FEVl9TVEFUVVMwX1JY RV9TwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAyCj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9S WF9GTEVYX0RFU0NfQURWX1NUQVRVUzBfQ1JDUF9TwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg Mwo+PiArI2RlZmluZSBWSVJUQ0hOTDJfUlhfRkxFWF9ERVNDX0FEVl9TVEFUVVMwX1JTU19WQUxJ RF9TwqDCoMKgwqDCoMKgwqDCoCA0Cj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9SWF9GTEVYX0RFU0Nf QURWX1NUQVRVUzBfTDJUQUcxUF9TwqDCoMKgwqDCoMKgwqDCoMKgwqAgNQo+PiArI2RlZmluZSBW SVJUQ0hOTDJfUlhfRkxFWF9ERVNDX0FEVl9TVEFUVVMwX1hUUk1EMF9WQUxJRF9TwqDCoMKgwqDC oCA2Cj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9SWF9GTEVYX0RFU0NfQURWX1NUQVRVUzBfWFRSTUQx X1ZBTElEX1PCoMKgwqDCoMKgIDcKPj4gKyNkZWZpbmUgVklSVENITkwyX1JYX0ZMRVhfREVTQ19B RFZfU1RBVFVTMF9MQVNUwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCA4Cj4+ICsKPj4gKy8qIFZJUlRDSE5MMl9SWF9GTEVYX0RFU0NfQURWX1NUQVRVU19FUlJP Ul8xX0JJVFMKPj4gKyAqIEZvciBzcGxpdHEgdmlydGNobmwyX3J4X2ZsZXhfZGVzY19hZHYKPj4g KyAqIE5vdGU6IFRoZXNlIGFyZSBwcmVkZWZpbmVkIGJpdCBvZmZzZXRzCj4+ICsgKi8KPj4gKyNk ZWZpbmUgVklSVENITkwyX1JYX0ZMRVhfREVTQ19BRFZfU1RBVFVTMV9SU1ZEX1PCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCAwIC8qIDIgCj4+IGJpdHMgKi8KPj4gKyNkZWZpbmUgVklSVENITkwy X1JYX0ZMRVhfREVTQ19BRFZfU1RBVFVTMV9BVFJBRUZBSUxfU8KgwqDCoMKgwqDCoMKgwqAgMgo+ PiArI2RlZmluZSBWSVJUQ0hOTDJfUlhfRkxFWF9ERVNDX0FEVl9TVEFUVVMxX0wyVEFHMlBfU8Kg wqDCoMKgwqDCoMKgwqDCoMKgIDMKPj4gKyNkZWZpbmUgVklSVENITkwyX1JYX0ZMRVhfREVTQ19B RFZfU1RBVFVTMV9YVFJNRDJfVkFMSURfU8KgwqDCoMKgwqAgNAo+PiArI2RlZmluZSBWSVJUQ0hO TDJfUlhfRkxFWF9ERVNDX0FEVl9TVEFUVVMxX1hUUk1EM19WQUxJRF9TwqDCoMKgwqDCoCA1Cj4+ ICsjZGVmaW5lIFZJUlRDSE5MMl9SWF9GTEVYX0RFU0NfQURWX1NUQVRVUzFfWFRSTUQ0X1ZBTElE X1PCoMKgwqDCoMKgIDYKPj4gKyNkZWZpbmUgVklSVENITkwyX1JYX0ZMRVhfREVTQ19BRFZfU1RB VFVTMV9YVFJNRDVfVkFMSURfU8KgwqDCoMKgwqAgNwo+PiArI2RlZmluZSBWSVJUQ0hOTDJfUlhf RkxFWF9ERVNDX0FEVl9TVEFUVVMxX0xBU1TCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIDgKPj4gKwo+PiArLyogRm9yIHNpbmdsZXEgKGZsZXgpIHZpcnRjaG5s Ml9yeF9mbGV4X2Rlc2MgZmllbGRzICovCj4+ICsvKiBGb3IgdmlydGNobmwyX3J4X2ZsZXhfZGVz Yy5wdHlwZV9mbGV4X2ZsYWdzMCBtZW1iZXIgKi8KPj4gKyNkZWZpbmUgVklSVENITkwyX1JYX0ZM RVhfREVTQ19QVFlQRV9TwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgMAo+PiArI2Rl ZmluZSBWSVJUQ0hOTDJfUlhfRkxFWF9ERVNDX1BUWVBFX03CoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBHRU5NQVNLKDksIDApCj4+ICsKPj4gKy8qIEZvciB2aXJ0Y2hubDJfcnhfZmxl eF9kZXNjLnBrdF9sZW4gbWVtYmVyICovCj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9SWF9GTEVYX0RF U0NfUEtUX0xFTl9TwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg MAo+PiArI2RlZmluZSBWSVJUQ0hOTDJfUlhfRkxFWF9ERVNDX1BLVF9MRU5fTSAgICAgICAgICAg ICAgICAgICAgICAgCj4+IEdFTk1BU0soMTMsIDApCj4+ICsKPj4gKy8qIFZJUlRDSE5MMl9SWF9G TEVYX0RFU0NfU1RBVFVTX0VSUk9SXzBfQklUUwo+PiArICogRm9yIHNpbmdsZXEgKGZsZXgpIHZp cnRjaG5sMl9yeF9mbGV4X2Rlc2MKPj4gKyAqIE5vdGU6IFRoZXNlIGFyZSBwcmVkZWZpbmVkIGJp dCBvZmZzZXRzCj4+ICsgKi8KPj4gKyNkZWZpbmUgVklSVENITkwyX1JYX0ZMRVhfREVTQ19TVEFU VVMwX0REX1PCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAwCj4+ICsjZGVm aW5lIFZJUlRDSE5MMl9SWF9GTEVYX0RFU0NfU1RBVFVTMF9FT0ZfU8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCAxCj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9SWF9GTEVYX0RFU0Nf U1RBVFVTMF9IQk9fU8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAyCj4+ICsj ZGVmaW5lIFZJUlRDSE5MMl9SWF9GTEVYX0RFU0NfU1RBVFVTMF9MM0w0UF9TwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgMwo+PiArI2RlZmluZSBWSVJUQ0hOTDJfUlhfRkxFWF9ERVND X1NUQVRVUzBfWFNVTV9JUEVfU8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDQKPj4gKyNkZWZp bmUgVklSVENITkwyX1JYX0ZMRVhfREVTQ19TVEFUVVMwX1hTVU1fTDRFX1PCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCA1Cj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9SWF9GTEVYX0RFU0NfU1RBVFVT MF9YU1VNX0VJUEVfU8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA2Cj4+ICsjZGVmaW5lIFZJUlRD SE5MMl9SWF9GTEVYX0RFU0NfU1RBVFVTMF9YU1VNX0VVRFBFX1PCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIDcKPj4gKyNkZWZpbmUgVklSVENITkwyX1JYX0ZMRVhfREVTQ19TVEFUVVMwX0xQQktfU8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgOAo+PiArI2RlZmluZSBWSVJUQ0hOTDJf UlhfRkxFWF9ERVNDX1NUQVRVUzBfSVBWNkVYQUREX1PCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg OQo+PiArI2RlZmluZSBWSVJUQ0hOTDJfUlhfRkxFWF9ERVNDX1NUQVRVUzBfUlhFX1PCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgMTAKPj4gKyNkZWZpbmUgVklSVENITkwyX1JY X0ZMRVhfREVTQ19TVEFUVVMwX0NSQ1BfU8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgMTEKPj4gKyNkZWZpbmUgVklSVENITkwyX1JYX0ZMRVhfREVTQ19TVEFUVVMwX1JTU19WQUxJ RF9TwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDEyCj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9SWF9G TEVYX0RFU0NfU1RBVFVTMF9MMlRBRzFQX1PCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDEz Cj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9SWF9GTEVYX0RFU0NfU1RBVFVTMF9YVFJNRDBfVkFMSURf U8KgwqDCoMKgwqDCoMKgwqDCoCAxNAo+PiArI2RlZmluZSBWSVJUQ0hOTDJfUlhfRkxFWF9ERVND X1NUQVRVUzBfWFRSTUQxX1ZBTElEX1PCoMKgwqDCoMKgwqDCoMKgwqAgMTUKPj4gKyNkZWZpbmUg VklSVENITkwyX1JYX0ZMRVhfREVTQ19TVEFUVVMwX0xBU1TCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCAxNgo+PiArCj4+ICsvKiBWSVJUQ0hOTDJfUlhfRkxFWF9ERVNDX1NU QVRVU19FUlJPUl8xX0JJVFMKPj4gKyAqIEZvciBzaW5nbGVxIChmbGV4KSB2aXJ0Y2hubDJfcnhf ZmxleF9kZXNjCj4+ICsgKiBOb3RlOiBUaGVzZSBhcmUgcHJlZGVmaW5lZCBiaXQgb2Zmc2V0cwo+ PiArICovCj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9SWF9GTEVYX0RFU0NfU1RBVFVTMV9DUE1fU8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAwIC8qIDQgCj4+IGJpdHMgKi8KPj4g KyNkZWZpbmUgVklSVENITkwyX1JYX0ZMRVhfREVTQ19TVEFUVVMxX05BVF9TwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDQKPj4gKyNkZWZpbmUgVklSVENITkwyX1JYX0ZMRVhf REVTQ19TVEFUVVMxX0NSWVBUT19TwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCA1Cj4+ICsvKiBbMTA6Nl0gcmVzZXJ2ZWQgKi8KPj4gKyNkZWZpbmUgVklSVENI TkwyX1JYX0ZMRVhfREVTQ19TVEFUVVMxX0wyVEFHMlBfU8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgMTEKPj4gKyNkZWZpbmUgVklSVENITkwyX1JYX0ZMRVhfREVTQ19TVEFUVVMxX1hUUk1E Ml9WQUxJRF9TwqDCoMKgwqDCoMKgwqDCoMKgIDEyCj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9SWF9G TEVYX0RFU0NfU1RBVFVTMV9YVFJNRDNfVkFMSURfU8KgwqDCoMKgwqDCoMKgwqDCoCAxMwo+PiAr I2RlZmluZSBWSVJUQ0hOTDJfUlhfRkxFWF9ERVNDX1NUQVRVUzFfWFRSTUQ0X1ZBTElEX1PCoMKg wqDCoMKgwqDCoMKgwqAgMTQKPj4gKyNkZWZpbmUgVklSVENITkwyX1JYX0ZMRVhfREVTQ19TVEFU VVMxX1hUUk1ENV9WQUxJRF9TwqDCoMKgwqDCoMKgwqDCoMKgIDE1Cj4+ICsjZGVmaW5lIFZJUlRD SE5MMl9SWF9GTEVYX0RFU0NfU1RBVFVTMV9MQVNUwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgMTYKPj4gKwo+PiArLyogRm9yIHZpcnRjaG5sMl9yeF9mbGV4X2Rlc2MudHNf bG93IG1lbWJlciAqLwo+PiArI2RlZmluZSBWSVJUQ0hOTDJfUlhfRkxFWF9UU1RBTVBfVkFMSUTC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgQklUKDApCj4+ ICsKPj4gKy8qIEZvciBzaW5nbGVxIChub24gZmxleCkgdmlydGNobmwyX3NpbmdsZXFfYmFzZV9y eF9kZXNjIGxlZ2FjeSBkZXNjIAo+PiBtZW1iZXJzICovCj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9S WF9CQVNFX0RFU0NfUVcxX0xFTl9TUEhfU8KgwqAgNjMKPj4gKyNkZWZpbmUgVklSVENITkwyX1JY X0JBU0VfREVTQ19RVzFfTEVOX1NQSF9NwqDCoCBcCj4+ICvCoMKgwqDCoMKgwqAgQklUX1VMTChW SVJUQ0hOTDJfUlhfQkFTRV9ERVNDX1FXMV9MRU5fU1BIX1MpCj4+ICsjZGVmaW5lIFZJUlRDSE5M Ml9SWF9CQVNFX0RFU0NfUVcxX0xFTl9IQlVGX1PCoCA1Mgo+PiArI2RlZmluZSBWSVJUQ0hOTDJf UlhfQkFTRV9ERVNDX1FXMV9MRU5fSEJVRl9NwqAgR0VOTUFTS19VTEwoNjIsIDUyKQo+PiArI2Rl ZmluZSBWSVJUQ0hOTDJfUlhfQkFTRV9ERVNDX1FXMV9MRU5fUEJVRl9TwqAgMzgKPj4gKyNkZWZp bmUgVklSVENITkwyX1JYX0JBU0VfREVTQ19RVzFfTEVOX1BCVUZfTcKgIEdFTk1BU0tfVUxMKDUx LCAzOCkKPj4gKyNkZWZpbmUgVklSVENITkwyX1JYX0JBU0VfREVTQ19RVzFfUFRZUEVfU8KgwqDC oMKgIDMwCj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9SWF9CQVNFX0RFU0NfUVcxX1BUWVBFX03CoMKg wqDCoCBHRU5NQVNLX1VMTCgzNywgMzApCj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9SWF9CQVNFX0RF U0NfUVcxX0VSUk9SX1PCoMKgwqDCoCAxOQo+PiArI2RlZmluZSBWSVJUQ0hOTDJfUlhfQkFTRV9E RVNDX1FXMV9FUlJPUl9NwqDCoMKgwqAgR0VOTUFTS19VTEwoMjYsIDE5KQo+PiArI2RlZmluZSBW SVJUQ0hOTDJfUlhfQkFTRV9ERVNDX1FXMV9TVEFUVVNfU8KgwqDCoCAwCj4+ICsjZGVmaW5lIFZJ UlRDSE5MMl9SWF9CQVNFX0RFU0NfUVcxX1NUQVRVU19NwqDCoMKgIEdFTk1BU0tfVUxMKDE4LCAw KQo+PiArCj4+ICsvKiBWSVJUQ0hOTDJfUlhfQkFTRV9ERVNDX1NUQVRVU19CSVRTCj4+ICsgKiBG b3Igc2luZ2xlcSAoYmFzZSkgdmlydGNobmwyX3J4X2Jhc2VfZGVzYwo+PiArICogTm90ZTogVGhl c2UgYXJlIHByZWRlZmluZWQgYml0IG9mZnNldHMKPj4gKyAqLwo+PiArI2RlZmluZSBWSVJUQ0hO TDJfUlhfQkFTRV9ERVNDX1NUQVRVU19ERF9TwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDAKPj4g KyNkZWZpbmUgVklSVENITkwyX1JYX0JBU0VfREVTQ19TVEFUVVNfRU9GX1PCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIDEKPj4gKyNkZWZpbmUgVklSVENITkwyX1JYX0JBU0VfREVTQ19TVEFUVVNfTDJU QUcxUF9TwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDIKPj4gKyNkZWZpbmUgVklSVENI TkwyX1JYX0JBU0VfREVTQ19TVEFUVVNfTDNMNFBfU8KgwqDCoMKgwqDCoMKgwqDCoCAzCj4+ICsj ZGVmaW5lIFZJUlRDSE5MMl9SWF9CQVNFX0RFU0NfU1RBVFVTX0NSQ1BfU8KgwqDCoMKgwqDCoMKg wqDCoMKgIDQKPj4gKyNkZWZpbmUgVklSVENITkwyX1JYX0JBU0VfREVTQ19TVEFUVVNfUlNWRF9T wqDCoMKgwqDCoMKgwqDCoMKgwqAgNSAvKiAzIGJpdHMgKi8KPj4gKyNkZWZpbmUgVklSVENITkwy X1JYX0JBU0VfREVTQ19TVEFUVVNfRVhUX1VEUF8wX1PCoMKgwqDCoMKgIDgKPj4gKyNkZWZpbmUg VklSVENITkwyX1JYX0JBU0VfREVTQ19TVEFUVVNfVU1CQ0FTVF9TwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIDkgLyogMiAKPj4gYml0cyAqLwo+PiArI2RlZmluZSBWSVJUQ0hOTDJfUlhf QkFTRV9ERVNDX1NUQVRVU19GTE1fU8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgMTEKPj4gKyNkZWZp bmUgVklSVENITkwyX1JYX0JBU0VfREVTQ19TVEFUVVNfRkxUU1RBVF9TwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIDEyIC8qIAo+PiAyIGJpdHMgKi8KPj4gKyNkZWZpbmUgVklSVENITkwy X1JYX0JBU0VfREVTQ19TVEFUVVNfTFBCS19TwqDCoMKgwqDCoMKgwqDCoMKgwqAgMTQKPj4gKyNk ZWZpbmUgVklSVENITkwyX1JYX0JBU0VfREVTQ19TVEFUVVNfSVBWNkVYQUREX1PCoMKgwqDCoMKg IDE1Cj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9SWF9CQVNFX0RFU0NfU1RBVFVTX1JTVkQxX1PCoMKg wqDCoMKgwqDCoMKgwqAgMTYgLyogMiBiaXRzICovCj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9SWF9C QVNFX0RFU0NfU1RBVFVTX0lOVF9VRFBfMF9TwqDCoMKgwqDCoCAxOAo+PiArI2RlZmluZSBWSVJU Q0hOTDJfUlhfQkFTRV9ERVNDX1NUQVRVU19MQVNUwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDE5 Cj4+ICsKPj4gKy8qIFZJUlRDSE5MMl9SWF9CQVNFX0RFU0NfRVhUX1NUQVRVU19CSVRTCj4+ICsg KiBGb3Igc2luZ2xlcSAoYmFzZSkgdmlydGNobmwyX3J4X2Jhc2VfZGVzYwo+PiArICogTm90ZTog VGhlc2UgYXJlIHByZWRlZmluZWQgYml0IG9mZnNldHMKPj4gKyAqLwo+PiArI2RlZmluZSBWSVJU Q0hOTDJfUlhfQkFTRV9ERVNDX0VYVF9TVEFUVVNfTDJUQUcyUF9TwqDCoMKgIDAKPj4gKwo+PiAr LyogVklSVENITkwyX1JYX0JBU0VfREVTQ19FUlJPUl9CSVRTCj4+ICsgKiBGb3Igc2luZ2xlcSAo YmFzZSkgdmlydGNobmwyX3J4X2Jhc2VfZGVzYwo+PiArICogTm90ZTogVGhlc2UgYXJlIHByZWRl ZmluZWQgYml0IG9mZnNldHMKPj4gKyAqLwo+PiArI2RlZmluZSBWSVJUQ0hOTDJfUlhfQkFTRV9E RVNDX0VSUk9SX1JYRV9TwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDAKPj4gKyNkZWZpbmUgVklS VENITkwyX1JYX0JBU0VfREVTQ19FUlJPUl9BVFJBRUZBSUxfU8KgwqDCoMKgwqDCoCAxCj4+ICsj ZGVmaW5lIFZJUlRDSE5MMl9SWF9CQVNFX0RFU0NfRVJST1JfSEJPX1PCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgMgo+PiArI2RlZmluZSBWSVJUQ0hOTDJfUlhfQkFTRV9ERVNDX0VSUk9SX0wzTDRF X1PCoMKgwqDCoMKgwqDCoMKgwqDCoCAzIC8qIDMgYml0cyAqLwo+PiArI2RlZmluZSBWSVJUQ0hO TDJfUlhfQkFTRV9ERVNDX0VSUk9SX0lQRV9TwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDMKPj4g KyNkZWZpbmUgVklSVENITkwyX1JYX0JBU0VfREVTQ19FUlJPUl9MNEVfU8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCA0Cj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9SWF9CQVNFX0RFU0NfRVJST1JfRUlQ RV9TwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA1Cj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9SWF9CQVNF X0RFU0NfRVJST1JfT1ZFUlNJWkVfU8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA2Cj4+ ICsjZGVmaW5lIFZJUlRDSE5MMl9SWF9CQVNFX0RFU0NfRVJST1JfUFBSU19TwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCA3Cj4+ICsKPj4gKy8qIFZJUlRDSE5MMl9SWF9CQVNFX0RFU0NfRkxUU1RBVF9W QUxVRVMKPj4gKyAqIEZvciBzaW5nbGVxIChiYXNlKSB2aXJ0Y2hubDJfcnhfYmFzZV9kZXNjCj4+ ICsgKiBOb3RlOiBUaGVzZSBhcmUgcHJlZGVmaW5lZCBiaXQgb2Zmc2V0cwo+PiArICovCj4+ICsj ZGVmaW5lIFZJUlRDSE5MMl9SWF9CQVNFX0RFU0NfRkxUU1RBVF9OT19EQVRBwqDCoMKgwqDCoMKg wqDCoCAwCj4+ICsjZGVmaW5lIFZJUlRDSE5MMl9SWF9CQVNFX0RFU0NfRkxUU1RBVF9GRF9JRMKg wqDCoMKgwqDCoMKgwqDCoMKgIDEKPj4gKyNkZWZpbmUgVklSVENITkwyX1JYX0JBU0VfREVTQ19G TFRTVEFUX1JTVsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAyCj4+ICsjZGVmaW5lIFZJUlRDSE5M Ml9SWF9CQVNFX0RFU0NfRkxUU1RBVF9SU1NfSEFTSMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCAzCj4+ICsKPj4gKy8qIFJlY2VpdmUgRGVzY3JpcHRvcnMgKi8KPj4gKy8qIFNwbGl0cSBi dWYKPj4gKyAqIHzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDE2fMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCAwfAo+PiArICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiArICogfCBSU1bCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgfCBCdWZmZXIgSUTCoMKgwqDCoMKgwqDCoMKgwqAgfAo+PiArICogLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiArICog fCBSeCBwYWNrZXQgYnVmZmVyIGFkcmVzc3PCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfAo+PiArICogLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQo+PiArICogfCBSeCBoZWFkZXIgYnVmZmVyIGFkcmVzc3PCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfAo+IAo+ ICVzL2FkcmVzc3MvYWRkcmVzcy9nCj4gCgpGaXhlZCAoIHdpbGwgYmUgaW4gdjIpLgoKPj4gKyAq IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KPj4gKyAqIHwgUlNWwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIHwKPj4gKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gKyAqIHzCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgMHwK Pj4gKyAqLwo+PiArc3RydWN0IHZpcnRjaG5sMl9zcGxpdHFfcnhfYnVmX2Rlc2Mgewo+PiArwqDC oMKgwqDCoMKgIHN0cnVjdCB7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8qIEJ1 ZmZlciBJZGVudGlmaWVyICovCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIF9fbGUx NsKgIGJ1Zl9pZDsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgX19sZTE2wqAgcnN2 ZDA7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIF9fbGUzMsKgIHJzdmQxOwo+PiAr wqDCoMKgwqDCoMKgIH0gcXdvcmQwOwo+PiArCj4+ICvCoMKgwqDCoMKgwqAgLyogUGFja2V0IGJ1 ZmZlciBhZGRyZXNzICovCj4+ICvCoMKgwqDCoMKgwqAgX19sZTY0wqAgcGt0X2FkZHI7Cj4+ICvC oMKgwqDCoMKgwqAgLyogSGVhZGVyIGJ1ZmZlciBhZGRyZXNzICovCj4+ICvCoMKgwqDCoMKgwqAg X19sZTY0wqAgaGRyX2FkZHI7Cj4+ICvCoMKgwqDCoMKgwqAgX19sZTY0wqAgcnN2ZDI7Cj4+ICt9 OyAvKiBSWCBidWZmZXIgZGVzY3JpcHRvciBmb3JtYXQgKi8KPj4gKwo+PiArLyogU2luZ2xlcSBi dWYKPj4gKyAqIHzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgMHwKPj4gKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gKyAqIHwgUnggcGFja2V0IGJ1 ZmZlciBhZHJlc3NzwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHwKPj4gKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gKyAqIHwgUngg aGVhZGVyIGJ1ZmZlciBhZHJlc3NzwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHwKPj4gKyAqIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4g KyAqIHwgUlNWwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIHwKPj4gKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gKyAqIHwgUlNWwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHwKPj4gKyAqIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K Pj4gKyAqIHzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgMHwKPj4gKyAqLwo+PiArc3RydWN0IHZpcnRjaG5sMl9zaW5nbGVxX3J4 X2J1Zl9kZXNjIHsKPj4gK8KgwqDCoMKgwqDCoCAvKiBQYWNrZXQgYnVmZmVyIGFkZHJlc3MgKi8K Pj4gK8KgwqDCoMKgwqDCoCBfX2xlNjTCoCBwa3RfYWRkcjsKPj4gK8KgwqDCoMKgwqDCoCAvKiBI ZWFkZXIgYnVmZmVyIGFkZHJlc3MgKi8KPj4gK8KgwqDCoMKgwqDCoCBfX2xlNjTCoCBoZHJfYWRk cjsKPj4gK8KgwqDCoMKgwqDCoCBfX2xlNjTCoCByc3ZkMTsKPj4gK8KgwqDCoMKgwqDCoCBfX2xl NjTCoCByc3ZkMjsKPj4gK307IC8qIFJYIGJ1ZmZlciBkZXNjcmlwdG9yIGZvcm1hdCAqLwo+PiAr Cj4+ICt1bmlvbiB2aXJ0Y2hubDJfcnhfYnVmX2Rlc2Mgewo+PiArwqDCoMKgwqDCoMKgIHN0cnVj dCB2aXJ0Y2hubDJfc2luZ2xlcV9yeF9idWZfZGVzY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmVh ZDsKPj4gK8KgwqDCoMKgwqDCoCBzdHJ1Y3QgdmlydGNobmwyX3NwbGl0cV9yeF9idWZfZGVzY8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzcGxpdF9yZDsKPj4gK307Cj4+ICsKPj4gKy8qICgweDAw KSBzaW5nbGVxIHdiKGNvbXBsKSAqLwo+PiArc3RydWN0IHZpcnRjaG5sMl9zaW5nbGVxX2Jhc2Vf cnhfZGVzYyB7Cj4+ICvCoMKgwqDCoMKgwqAgc3RydWN0IHsKPj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgc3RydWN0IHsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIF9fbGUxNiBtaXJyb3Jpbmdfc3RhdHVzOwo+PiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgX19sZTE2IGwydGFnMTsKPj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgfSBsb19kd29yZDsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgdW5pb24gewo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgLyogUlNTIEhhc2ggKi8KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIF9fbGUzMiByc3M7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCAvKiBGbG93IERpcmVjdG9yIGZpbHRlciBpZCAqLwo+PiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgX19sZTMyIGZkX2lkOwo+ PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9IGhpX2R3b3JkOwo+PiArwqDCoMKgwqDC oMKgIH0gcXdvcmQwOwo+PiArCj4+ICvCoMKgwqDCoMKgwqAgc3RydWN0IHsKPj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgLyogc3RhdHVzL2Vycm9yL1BUWVBFL2xlbmd0aCAqLwo+PiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBfX2xlNjQgc3RhdHVzX2Vycm9yX3B0eXBlX2xl bjsKPj4gK8KgwqDCoMKgwqDCoCB9IHF3b3JkMTsKPj4gKwo+PiArwqDCoMKgwqDCoMKgIHN0cnVj dCB7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8qIEV4dGVuZGVkIHN0YXR1cyAq Lwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBfX2xlMTYgZXh0X3N0YXR1czsKPj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgX19sZTE2IHJzdmQ7Cj4+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIF9fbGUxNiBsMnRhZzJfMTsKPj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgX19sZTE2IGwydGFnMl8yOwo+PiArwqDCoMKgwqDCoMKgIH0gcXdvcmQyOwo+ PiArCj4+ICvCoMKgwqDCoMKgwqAgc3RydWN0IHsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgX19sZTMyIHJlc2VydmVkOwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBf X2xlMzIgZmRfaWQ7Cj4+ICvCoMKgwqDCoMKgwqAgfSBxd29yZDM7Cj4+ICt9OyAvKiBSWCBkZXNj cmlwdG9yIHdyaXRlYmFjayBmb3JtYXQgKi8KPiAKPiBIbW1tLi4uIGxvb2tzIGEgbG90IGxpa2Ug dGhlIEZvcnR2aWxsZSBkZXNjcmlwdG9yIDotKQo+IAo+IAo+PiArCj4+ICsvKiAoMHgwMSkgc2lu Z2xlcSBmbGV4IGNvbXBsICovCj4+ICtzdHJ1Y3QgdmlydGNobmwyX3J4X2ZsZXhfZGVzYyB7Cj4+ ICvCoMKgwqDCoMKgwqAgLyogUXdvcmQgMCAqLwo+PiArwqDCoMKgwqDCoMKgIC8qIERlc2NyaXB0 b3IgYnVpbGRlciBwcm9maWxlIGlkICovCj4+ICvCoMKgwqDCoMKgwqAgdTggcnhkaWQ7Cj4+ICsK Pj4gK8KgwqDCoMKgwqDCoCAvKiBtaXJyb3I9WzU6MF0sIHVtYj1bNzo2XSAqLwo+PiArwqDCoMKg wqDCoMKgIHU4IG1pcl9pZF91bWJfY2FzdDsKPj4gKwo+PiArwqDCoMKgwqDCoMKgIC8qIHB0eXBl PVs5OjBdLCBmZjA9WzE1OjEwXSAqLwo+PiArwqDCoMKgwqDCoMKgIF9fbGUxNiBwdHlwZV9mbGV4 X2ZsYWdzMDsKPj4gKwo+PiArwqDCoMKgwqDCoMKgIC8qIFsxNToxNF0gYXJlIHJlc2VydmVkICov Cj4+ICvCoMKgwqDCoMKgwqAgX19sZTE2IHBrdF9sZW47Cj4+ICsKPj4gK8KgwqDCoMKgwqDCoCAv KiBoZWFkZXI9WzEwOjBdCj4+ICvCoMKgwqDCoMKgwqDCoCAqIHNwaD1bMTFdCj4+ICvCoMKgwqDC oMKgwqDCoCAqIGZmMS9leHQ9WzE1OjEyXQo+PiArwqDCoMKgwqDCoMKgwqAgKi8KPj4gK8KgwqDC oMKgwqDCoCBfX2xlMTYgaGRyX2xlbl9zcGhfZmxleF9mbGFnczE7Cj4+ICsKPj4gK8KgwqDCoMKg wqDCoCAvKiBRd29yZCAxICovCj4+ICvCoMKgwqDCoMKgwqAgX19sZTE2IHN0YXR1c19lcnJvcjA7 Cj4+ICvCoMKgwqDCoMKgwqAgX19sZTE2IGwydGFnMTsKPj4gK8KgwqDCoMKgwqDCoCBfX2xlMTYg ZmxleF9tZXRhMDsKPj4gK8KgwqDCoMKgwqDCoCBfX2xlMTYgZmxleF9tZXRhMTsKPj4gKwo+PiAr wqDCoMKgwqDCoMKgIC8qIFF3b3JkIDIgKi8KPj4gK8KgwqDCoMKgwqDCoCBfX2xlMTYgc3RhdHVz X2Vycm9yMTsKPj4gK8KgwqDCoMKgwqDCoCB1OCBmbGV4X2ZsYWdzMjsKPj4gK8KgwqDCoMKgwqDC oCB1OCB0aW1lX3N0YW1wX2xvdzsKPj4gK8KgwqDCoMKgwqDCoCBfX2xlMTYgbDJ0YWcyXzFzdDsK Pj4gK8KgwqDCoMKgwqDCoCBfX2xlMTYgbDJ0YWcyXzJuZDsKPj4gKwo+PiArwqDCoMKgwqDCoMKg IC8qIFF3b3JkIDMgKi8KPj4gK8KgwqDCoMKgwqDCoCBfX2xlMTYgZmxleF9tZXRhMjsKPj4gK8Kg wqDCoMKgwqDCoCBfX2xlMTYgZmxleF9tZXRhMzsKPj4gK8KgwqDCoMKgwqDCoCB1bmlvbiB7Cj4+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCB7Cj4+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBfX2xlMTYgZmxleF9tZXRhNDsKPj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIF9fbGUxNiBmbGV4X21l dGE1Owo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9IGZsZXg7Cj4+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIF9fbGUzMiB0c19oaWdoOwo+PiArwqDCoMKgwqDCoMKgIH0g ZmxleF90czsKPj4gK307IC8qIFJYIGRlc2NyaXB0b3Igd3JpdGViYWNrIGZvcm1hdCAqLwo+PiAr Cj4+ICsvKiAoMHgwMikgKi8KPj4gK3N0cnVjdCB2aXJ0Y2hubDJfcnhfZmxleF9kZXNjX25pYyB7 Cj4+ICvCoMKgwqDCoMKgwqAgLyogUXdvcmQgMCAqLwo+PiArwqDCoMKgwqDCoMKgIHU4IHJ4ZGlk Owo+PiArwqDCoMKgwqDCoMKgIHU4IG1pcl9pZF91bWJfY2FzdDsKPj4gK8KgwqDCoMKgwqDCoCBf X2xlMTYgcHR5cGVfZmxleF9mbGFnczA7Cj4+ICvCoMKgwqDCoMKgwqAgX19sZTE2IHBrdF9sZW47 Cj4+ICvCoMKgwqDCoMKgwqAgX19sZTE2IGhkcl9sZW5fc3BoX2ZsZXhfZmxhZ3MxOwo+PiArCj4+ ICvCoMKgwqDCoMKgwqAgLyogUXdvcmQgMSAqLwo+PiArwqDCoMKgwqDCoMKgIF9fbGUxNiBzdGF0 dXNfZXJyb3IwOwo+PiArwqDCoMKgwqDCoMKgIF9fbGUxNiBsMnRhZzE7Cj4+ICvCoMKgwqDCoMKg wqAgX19sZTMyIHJzc19oYXNoOwo+PiArCj4+ICvCoMKgwqDCoMKgwqAgLyogUXdvcmQgMiAqLwo+ PiArwqDCoMKgwqDCoMKgIF9fbGUxNiBzdGF0dXNfZXJyb3IxOwo+PiArwqDCoMKgwqDCoMKgIHU4 IGZsZXhpX2ZsYWdzMjsKPj4gK8KgwqDCoMKgwqDCoCB1OCB0c19sb3c7Cj4+ICvCoMKgwqDCoMKg wqAgX19sZTE2IGwydGFnMl8xc3Q7Cj4+ICvCoMKgwqDCoMKgwqAgX19sZTE2IGwydGFnMl8ybmQ7 Cj4+ICsKPj4gK8KgwqDCoMKgwqDCoCAvKiBRd29yZCAzICovCj4+ICvCoMKgwqDCoMKgwqAgX19s ZTMyIGZsb3dfaWQ7Cj4+ICvCoMKgwqDCoMKgwqAgdW5pb24gewo+PiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBzdHJ1Y3Qgewo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgX19sZTE2IHJzdmQ7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBfX2xlMTYgZmxvd19pZF9pcHY2Owo+PiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCB9IGZsZXg7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IF9fbGUzMiB0c19oaWdoOwo+PiArwqDCoMKgwqDCoMKgIH0gZmxleF90czsKPj4gK307IC8qIFJY IGRlc2NyaXB0b3Igd3JpdGViYWNrIGZvcm1hdCAqLwo+PiArCj4+ICsvKiBSeCBGbGV4IERlc2Ny aXB0b3IgU3dpdGNoIFByb2ZpbGUKPj4gKyAqIFJ4RElEIFByb2ZpbGUgSWQgMwo+PiArICogRmxl eC1maWVsZCAwOiBTb3VyY2UgVnNpCj4+ICsgKi8KPj4gK3N0cnVjdCB2aXJ0Y2hubDJfcnhfZmxl eF9kZXNjX3N3IHsKPj4gK8KgwqDCoMKgwqDCoCAvKiBRd29yZCAwICovCj4+ICvCoMKgwqDCoMKg wqAgdTggcnhkaWQ7Cj4+ICvCoMKgwqDCoMKgwqAgdTggbWlyX2lkX3VtYl9jYXN0Owo+PiArwqDC oMKgwqDCoMKgIF9fbGUxNiBwdHlwZV9mbGV4X2ZsYWdzMDsKPj4gK8KgwqDCoMKgwqDCoCBfX2xl MTYgcGt0X2xlbjsKPj4gK8KgwqDCoMKgwqDCoCBfX2xlMTYgaGRyX2xlbl9zcGhfZmxleF9mbGFn czE7Cj4+ICsKPj4gK8KgwqDCoMKgwqDCoCAvKiBRd29yZCAxICovCj4+ICvCoMKgwqDCoMKgwqAg X19sZTE2IHN0YXR1c19lcnJvcjA7Cj4+ICvCoMKgwqDCoMKgwqAgX19sZTE2IGwydGFnMTsKPj4g K8KgwqDCoMKgwqDCoCAvKiBbMTA6MTVdIGFyZSByZXNlcnZlZCAqLwo+PiArwqDCoMKgwqDCoMKg IF9fbGUxNiBzcmNfdnNpOwo+PiArwqDCoMKgwqDCoMKgIF9fbGUxNiBmbGV4X21kMV9yc3ZkOwo+ PiArCj4+ICvCoMKgwqDCoMKgwqAgLyogUXdvcmQgMiAqLwo+PiArwqDCoMKgwqDCoMKgIF9fbGUx NiBzdGF0dXNfZXJyb3IxOwo+PiArwqDCoMKgwqDCoMKgIHU4IGZsZXhfZmxhZ3MyOwo+PiArwqDC oMKgwqDCoMKgIHU4IHRzX2xvdzsKPj4gK8KgwqDCoMKgwqDCoCBfX2xlMTYgbDJ0YWcyXzFzdDsK Pj4gK8KgwqDCoMKgwqDCoCBfX2xlMTYgbDJ0YWcyXzJuZDsKPj4gKwo+PiArwqDCoMKgwqDCoMKg IC8qIFF3b3JkIDMgKi8KPj4gK8KgwqDCoMKgwqDCoCAvKiBGbGV4IHdvcmRzIDItMyBhcmUgcmVz ZXJ2ZWQgKi8KPj4gK8KgwqDCoMKgwqDCoCBfX2xlMzIgcnN2ZDsKPj4gK8KgwqDCoMKgwqDCoCBf X2xlMzIgdHNfaGlnaDsKPj4gK307IC8qIFJYIGRlc2NyaXB0b3Igd3JpdGViYWNrIGZvcm1hdCAq Lwo+PiArCj4+ICsvKiBSeCBGbGV4IERlc2NyaXB0b3IgTklDIFByb2ZpbGUKPj4gKyAqIFJ4RElE IFByb2ZpbGUgSWQgNgo+PiArICogRmxleC1maWVsZCAwOiBSU1MgaGFzaCBsb3dlciAxNi1iaXRz Cj4+ICsgKiBGbGV4LWZpZWxkIDE6IFJTUyBoYXNoIHVwcGVyIDE2LWJpdHMKPj4gKyAqIEZsZXgt ZmllbGQgMjogRmxvdyBJZCBsb3dlciAxNi1iaXRzCj4+ICsgKiBGbGV4LWZpZWxkIDM6IFNvdXJj ZSBWc2kKPj4gKyAqIEZsZXgtZmllbGQgNDogcmVzZXJ2ZWQsIFZsYW4gaWQgdGFrZW4gZnJvbSBM MlRhZwo+PiArICovCj4+ICtzdHJ1Y3QgdmlydGNobmwyX3J4X2ZsZXhfZGVzY19uaWNfMiB7Cj4+ ICvCoMKgwqDCoMKgwqAgLyogUXdvcmQgMCAqLwo+PiArwqDCoMKgwqDCoMKgIHU4IHJ4ZGlkOwo+ PiArwqDCoMKgwqDCoMKgIHU4IG1pcl9pZF91bWJfY2FzdDsKPj4gK8KgwqDCoMKgwqDCoCBfX2xl MTYgcHR5cGVfZmxleF9mbGFnczA7Cj4+ICvCoMKgwqDCoMKgwqAgX19sZTE2IHBrdF9sZW47Cj4+ ICvCoMKgwqDCoMKgwqAgX19sZTE2IGhkcl9sZW5fc3BoX2ZsZXhfZmxhZ3MxOwo+PiArCj4+ICvC oMKgwqDCoMKgwqAgLyogUXdvcmQgMSAqLwo+PiArwqDCoMKgwqDCoMKgIF9fbGUxNiBzdGF0dXNf ZXJyb3IwOwo+PiArwqDCoMKgwqDCoMKgIF9fbGUxNiBsMnRhZzE7Cj4+ICvCoMKgwqDCoMKgwqAg X19sZTMyIHJzc19oYXNoOwo+PiArCj4+ICvCoMKgwqDCoMKgwqAgLyogUXdvcmQgMiAqLwo+PiAr wqDCoMKgwqDCoMKgIF9fbGUxNiBzdGF0dXNfZXJyb3IxOwo+PiArwqDCoMKgwqDCoMKgIHU4IGZs ZXhpX2ZsYWdzMjsKPj4gK8KgwqDCoMKgwqDCoCB1OCB0c19sb3c7Cj4+ICvCoMKgwqDCoMKgwqAg X19sZTE2IGwydGFnMl8xc3Q7Cj4+ICvCoMKgwqDCoMKgwqAgX19sZTE2IGwydGFnMl8ybmQ7Cj4+ ICsKPj4gK8KgwqDCoMKgwqDCoCAvKiBRd29yZCAzICovCj4+ICvCoMKgwqDCoMKgwqAgX19sZTE2 IGZsb3dfaWQ7Cj4+ICvCoMKgwqDCoMKgwqAgX19sZTE2IHNyY192c2k7Cj4+ICvCoMKgwqDCoMKg wqAgdW5pb24gewo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3Qgewo+PiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgX19sZTE2IHJzdmQ7 Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBfX2xlMTYg Zmxvd19pZF9pcHY2Owo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9IGZsZXg7Cj4+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIF9fbGUzMiB0c19oaWdoOwo+PiArwqDCoMKg wqDCoMKgIH0gZmxleF90czsKPj4gK307IC8qIFJYIGRlc2NyaXB0b3Igd3JpdGViYWNrIGZvcm1h dCAqLwo+PiArCj4+ICsvKiBSeCBGbGV4IERlc2NyaXB0b3IgQWR2YW5jZWQgKFNwbGl0IFF1ZXVl IE1vZGVsKQo+PiArICogUnhESUQgUHJvZmlsZSBJZCA3Cj4+ICsgKi8KPj4gK3N0cnVjdCB2aXJ0 Y2hubDJfcnhfZmxleF9kZXNjX2FkdiB7Cj4+ICvCoMKgwqDCoMKgwqAgLyogUXdvcmQgMCAqLwo+ PiArwqDCoMKgwqDCoMKgIC8qIHByb2ZpbGVfaWQ9WzM6MF0KPj4gK8KgwqDCoMKgwqDCoMKgICog cnN2ZD1bNTo0XQo+PiArwqDCoMKgwqDCoMKgwqAgKiB1Y2FzdD1bNzo2XQo+PiArwqDCoMKgwqDC oMKgwqAgKi8KPj4gK8KgwqDCoMKgwqDCoCB1OCByeGRpZF91Y2FzdDsKPj4gKwo+PiArwqDCoMKg wqDCoMKgIHU4IHN0YXR1c19lcnIwX3F3MDsKPj4gKwo+PiArwqDCoMKgwqDCoMKgIC8qIHB0eXBl PVs5OjBdCj4+ICvCoMKgwqDCoMKgwqDCoCAqIGlwX2hkcl9lcnI9WzEwXQo+PiArwqDCoMKgwqDC oMKgwqAgKiB1ZHBfbGVuX2Vycj1bMTFdCj4+ICvCoMKgwqDCoMKgwqDCoCAqIGZmMD1bMTU6MTJd Cj4+ICvCoMKgwqDCoMKgwqDCoCAqLwo+PiArwqDCoMKgwqDCoMKgIF9fbGUxNiBwdHlwZV9lcnJf ZmZsYWdzMDsKPj4gKwo+PiArwqDCoMKgwqDCoMKgIC8qIHBsZW49WzEzOjBdCj4+ICvCoMKgwqDC oMKgwqDCoCAqIGdlbj1bMTRdIG9ubHkgaW4gc3BsaXRxCj4+ICvCoMKgwqDCoMKgwqDCoCAqIGJ1 ZnFfaWQ9WzE1XSBvbmx5IGluIHNwbGl0cQo+PiArwqDCoMKgwqDCoMKgwqAgKi8KPj4gK8KgwqDC oMKgwqDCoCBfX2xlMTYgcGt0bGVuX2dlbl9idWZxX2lkOwo+PiArCj4+ICvCoMKgwqDCoMKgwqAg LyogaGVhZGVyPVs5OjBdCj4+ICvCoMKgwqDCoMKgwqDCoCAqIHJzYz1bMTBdIG9ubHkgaW4gc3Bs aXRxCj4+ICvCoMKgwqDCoMKgwqDCoCAqIHNwaD1bMTFdIG9ubHkgaW4gc3BsaXRxCj4+ICvCoMKg wqDCoMKgwqDCoCAqIGV4dF91ZHBfMD1bMTJdCj4+ICvCoMKgwqDCoMKgwqDCoCAqIGludF91ZHBf MD1bMTNdCj4+ICvCoMKgwqDCoMKgwqDCoCAqIHRydW5jX21pcnI9WzE0XQo+PiArwqDCoMKgwqDC oMKgwqAgKiBtaXNzX3ByZXBlbmQ9WzE1XQo+PiArwqDCoMKgwqDCoMKgwqAgKi8KPj4gK8KgwqDC oMKgwqDCoCBfX2xlMTYgaGRybGVuX2ZsYWdzOwo+PiArCj4+ICvCoMKgwqDCoMKgwqAgLyogUXdv cmQgMSAqLwo+PiArwqDCoMKgwqDCoMKgIHU4IHN0YXR1c19lcnIwX3F3MTsKPj4gK8KgwqDCoMKg wqDCoCB1OCBzdGF0dXNfZXJyMTsKPj4gK8KgwqDCoMKgwqDCoCB1OCBmZmxhZ3MxOwo+PiArwqDC oMKgwqDCoMKgIHU4IHRzX2xvdzsKPj4gK8KgwqDCoMKgwqDCoCBfX2xlMTYgZm1kMDsKPj4gK8Kg wqDCoMKgwqDCoCBfX2xlMTYgZm1kMTsKPj4gKwo+PiArwqDCoMKgwqDCoMKgIC8qIFF3b3JkIDIg Ki8KPj4gK8KgwqDCoMKgwqDCoCBfX2xlMTYgZm1kMjsKPj4gK8KgwqDCoMKgwqDCoCB1OCBmZmxh Z3MyOwo+PiArwqDCoMKgwqDCoMKgIHU4IGhhc2gzOwo+PiArwqDCoMKgwqDCoMKgIF9fbGUxNiBm bWQzOwo+PiArwqDCoMKgwqDCoMKgIF9fbGUxNiBmbWQ0Owo+PiArCj4+ICvCoMKgwqDCoMKgwqAg LyogUXdvcmQgMyAqLwo+PiArwqDCoMKgwqDCoMKgIF9fbGUxNiBmbWQ1Owo+PiArwqDCoMKgwqDC oMKgIF9fbGUxNiBmbWQ2Owo+PiArwqDCoMKgwqDCoMKgIF9fbGUxNiBmbWQ3XzA7Cj4+ICvCoMKg wqDCoMKgwqAgX19sZTE2IGZtZDdfMTsKPj4gK307IC8qIFJYIGRlc2NyaXB0b3Igd3JpdGViYWNr IGZvcm1hdCAqLwo+PiArCj4+ICsvKiBSeCBGbGV4IERlc2NyaXB0b3IgQWR2YW5jZWQgKFNwbGl0 IFF1ZXVlIE1vZGVsKSBOSUMgUHJvZmlsZQo+PiArICogUnhESUQgUHJvZmlsZSBJZCA4Cj4+ICsg KiBGbGV4LWZpZWxkIDA6IEJ1ZmZlcklECj4+ICsgKiBGbGV4LWZpZWxkIDE6IFJhdyBjaGVja3N1 bS9MMlRBRzEvUlNDIFNlZyBMZW4gKGRldGVybWluZWQgYnkgSFcpCj4+ICsgKiBGbGV4LWZpZWxk IDI6IEhhc2hbMTU6MF0KPj4gKyAqIEZsZXgtZmxhZ3MgMjogSGFzaFsyMzoxNl0KPj4gKyAqIEZs ZXgtZmllbGQgMzogTDJUQUcyCj4+ICsgKiBGbGV4LWZpZWxkIDU6IEwyVEFHMQo+PiArICogRmxl eC1maWVsZCA3OiBUaW1lc3RhbXAgKHVwcGVyIDMyIGJpdHMpCj4+ICsgKi8KPj4gK3N0cnVjdCB2 aXJ0Y2hubDJfcnhfZmxleF9kZXNjX2Fkdl9uaWNfMyB7Cj4+ICvCoMKgwqDCoMKgwqAgLyogUXdv cmQgMCAqLwo+PiArwqDCoMKgwqDCoMKgIC8qIHByb2ZpbGVfaWQ9WzM6MF0KPj4gK8KgwqDCoMKg wqDCoMKgICogcnN2ZD1bNTo0XQo+PiArwqDCoMKgwqDCoMKgwqAgKiB1Y2FzdD1bNzo2XQo+PiAr wqDCoMKgwqDCoMKgwqAgKi8KPj4gK8KgwqDCoMKgwqDCoCB1OCByeGRpZF91Y2FzdDsKPj4gKwo+ PiArwqDCoMKgwqDCoMKgIHU4IHN0YXR1c19lcnIwX3F3MDsKPj4gKwo+PiArwqDCoMKgwqDCoMKg IC8qIHB0eXBlPVs5OjBdCj4+ICvCoMKgwqDCoMKgwqDCoCAqIGlwX2hkcl9lcnI9WzEwXQo+PiAr wqDCoMKgwqDCoMKgwqAgKiB1ZHBfbGVuX2Vycj1bMTFdCj4+ICvCoMKgwqDCoMKgwqDCoCAqIGZm MD1bMTU6MTJdCj4+ICvCoMKgwqDCoMKgwqDCoCAqLwo+PiArwqDCoMKgwqDCoMKgIF9fbGUxNiBw dHlwZV9lcnJfZmZsYWdzMDsKPj4gKwo+PiArwqDCoMKgwqDCoMKgIC8qIHBsZW49WzEzOjBdCj4+ ICvCoMKgwqDCoMKgwqDCoCAqIGdlbj1bMTRdIG9ubHkgaW4gc3BsaXRxCj4+ICvCoMKgwqDCoMKg wqDCoCAqIGJ1ZnFfaWQ9WzE1XSBvbmx5IGluIHNwbGl0cQo+PiArwqDCoMKgwqDCoMKgwqAgKi8K Pj4gK8KgwqDCoMKgwqDCoCBfX2xlMTYgcGt0bGVuX2dlbl9idWZxX2lkOwo+PiArCj4+ICvCoMKg wqDCoMKgwqAgLyogaGVhZGVyPVs5OjBdCj4+ICvCoMKgwqDCoMKgwqDCoCAqIHJzYz1bMTBdIG9u bHkgaW4gc3BsaXRxCj4+ICvCoMKgwqDCoMKgwqDCoCAqIHNwaD1bMTFdIG9ubHkgaW4gc3BsaXRx Cj4+ICvCoMKgwqDCoMKgwqDCoCAqIGV4dF91ZHBfMD1bMTJdCj4+ICvCoMKgwqDCoMKgwqDCoCAq IGludF91ZHBfMD1bMTNdCj4+ICvCoMKgwqDCoMKgwqDCoCAqIHRydW5jX21pcnI9WzE0XQo+PiAr wqDCoMKgwqDCoMKgwqAgKiBtaXNzX3ByZXBlbmQ9WzE1XQo+PiArwqDCoMKgwqDCoMKgwqAgKi8K Pj4gK8KgwqDCoMKgwqDCoCBfX2xlMTYgaGRybGVuX2ZsYWdzOwo+PiArCj4+ICvCoMKgwqDCoMKg wqAgLyogUXdvcmQgMSAqLwo+PiArwqDCoMKgwqDCoMKgIHU4IHN0YXR1c19lcnIwX3F3MTsKPj4g K8KgwqDCoMKgwqDCoCB1OCBzdGF0dXNfZXJyMTsKPj4gK8KgwqDCoMKgwqDCoCB1OCBmZmxhZ3Mx Owo+PiArwqDCoMKgwqDCoMKgIHU4IHRzX2xvdzsKPj4gK8KgwqDCoMKgwqDCoCAvKiBPbmx5IGlu IHNwbGl0cSAqLwo+PiArwqDCoMKgwqDCoMKgIF9fbGUxNiBidWZfaWQ7Cj4+ICvCoMKgwqDCoMKg wqAgdW5pb24gewo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBfX2xlMTYgcmF3X2Nz Owo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBfX2xlMTYgbDJ0YWcxOwo+PiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBfX2xlMTYgcnNjc2VnbGVuOwo+PiArwqDCoMKgwqDC oMKgIH0gbWlzYzsKPj4gKwo+PiArwqDCoMKgwqDCoMKgIC8qIFF3b3JkIDIgKi8KPj4gK8KgwqDC oMKgwqDCoCBfX2xlMTYgaGFzaDE7Cj4+ICvCoMKgwqDCoMKgwqAgdW5pb24gewo+PiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1OCBmZmxhZ3MyOwo+PiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCB1OCBtaXJyb3JpZDsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg dTggaGFzaDI7Cj4+ICvCoMKgwqDCoMKgwqAgfSBmZjJfbWlycmlkX2hhc2gyOwo+PiArwqDCoMKg wqDCoMKgIHU4IGhhc2gzOwo+PiArwqDCoMKgwqDCoMKgIF9fbGUxNiBsMnRhZzI7Cj4+ICvCoMKg wqDCoMKgwqAgX19sZTE2IGZtZDQ7Cj4+ICsKPj4gK8KgwqDCoMKgwqDCoCAvKiBRd29yZCAzICov Cj4+ICvCoMKgwqDCoMKgwqAgX19sZTE2IGwydGFnMTsKPj4gK8KgwqDCoMKgwqDCoCBfX2xlMTYg Zm1kNjsKPj4gK8KgwqDCoMKgwqDCoCBfX2xlMzIgdHNfaGlnaDsKPj4gK307IC8qIFJYIGRlc2Ny aXB0b3Igd3JpdGViYWNrIGZvcm1hdCAqLwo+PiArCj4+ICt1bmlvbiB2aXJ0Y2hubDJfcnhfZGVz YyB7Cj4+ICvCoMKgwqDCoMKgwqAgc3RydWN0IHZpcnRjaG5sMl9zaW5nbGVxX3J4X2J1Zl9kZXNj wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZWFkOwo+PiArwqDCoMKgwqDCoMKgIHN0cnVjdCB2aXJ0 Y2hubDJfc2luZ2xlcV9iYXNlX3J4X2Rlc2PCoMKgwqDCoMKgwqDCoMKgwqDCoCBiYXNlX3diOwo+ PiArwqDCoMKgwqDCoMKgIHN0cnVjdCB2aXJ0Y2hubDJfcnhfZmxleF9kZXNjwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGZsZXhfd2I7Cj4+ICvCoMKgwqDCoMKgwqAgc3RydWN0 IHZpcnRjaG5sMl9yeF9mbGV4X2Rlc2NfbmljwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBm bGV4X25pY193YjsKPj4gK8KgwqDCoMKgwqDCoCBzdHJ1Y3QgdmlydGNobmwyX3J4X2ZsZXhfZGVz Y19zd8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBmbGV4X3N3X3diOwo+PiArwqDCoMKg wqDCoMKgIHN0cnVjdCB2aXJ0Y2hubDJfcnhfZmxleF9kZXNjX25pY18ywqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIGZsZXhfbmljXzJfd2I7Cj4+ICvCoMKgwqDCoMKgwqAgc3RydWN0IHZpcnRjaG5s Ml9yeF9mbGV4X2Rlc2NfYWR2wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBmbGV4X2Fkdl93 YjsKPj4gK8KgwqDCoMKgwqDCoCBzdHJ1Y3QgdmlydGNobmwyX3J4X2ZsZXhfZGVzY19hZHZfbmlj XzMgICAgICAgICAKPj4gZmxleF9hZHZfbmljXzNfd2I7Cj4+ICt9Owo+PiArCj4+ICsjZW5kaWYg LyogX1ZJUlRDSE5MX0xBTl9ERVNDX0hfICovCj4+IC0tIAo+PiAyLjM3LjMKPj4KClRoYW5rcywK UGF2YW4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50 ZWwtd2lyZWQtbGFuIG1haWxpbmcgbGlzdApJbnRlbC13aXJlZC1sYW5Ab3N1b3NsLm9yZwpodHRw czovL2xpc3RzLm9zdW9zbC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC13aXJlZC1sYW4K