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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id EEB40C433F5 for ; Wed, 13 Oct 2021 13:14:26 +0000 (UTC) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 5E27E603E7 for ; Wed, 13 Oct 2021 13:14:26 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 5E27E603E7 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=oracle.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=redhat.com Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-385-oCadLGkJNvKd2dhOcCvoSw-1; Wed, 13 Oct 2021 09:14:21 -0400 X-MC-Unique: oCadLGkJNvKd2dhOcCvoSw-1 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 2B19D80292B; Wed, 13 Oct 2021 13:14:18 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 5E87519D9D; Wed, 13 Oct 2021 13:14:17 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id D87184EA2A; Wed, 13 Oct 2021 13:14:14 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.rdu2.redhat.com [10.11.54.1]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 19D7HTr6000761 for ; Wed, 13 Oct 2021 03:17:29 -0400 Received: by smtp.corp.redhat.com (Postfix) id F0D9540CFD11; Wed, 13 Oct 2021 07:17:28 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast06.extmail.prod.ext.rdu2.redhat.com [10.11.55.22]) by smtp.corp.redhat.com (Postfix) with ESMTPS id E9A3640CFD10 for ; Wed, 13 Oct 2021 07:17:28 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [205.139.110.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id C8D911875069 for ; Wed, 13 Oct 2021 07:17:28 +0000 (UTC) Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-562-PRvN4YrnM_Sh8Ow6I0N0ww-1; Wed, 13 Oct 2021 03:17:23 -0400 X-MC-Unique: PRvN4YrnM_Sh8Ow6I0N0ww-1 Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 19D70UEq013092; Wed, 13 Oct 2021 07:17:06 GMT Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71]) by mx0b-00069f02.pphosted.com with ESMTP id 3bnkbmsx5s-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 13 Oct 2021 07:17:06 +0000 Received: from pps.filterd (aserp3030.oracle.com [127.0.0.1]) by aserp3030.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 19D7ASbo004158; Wed, 13 Oct 2021 07:17:01 GMT Received: from nam04-bn8-obe.outbound.protection.outlook.com (mail-bn8nam08lp2049.outbound.protection.outlook.com [104.47.74.49]) by aserp3030.oracle.com with ESMTP id 3bkyxt0ach-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 13 Oct 2021 07:17:01 +0000 Received: from MWHPR1001MB2365.namprd10.prod.outlook.com (2603:10b6:301:2d::28) by MWHPR1001MB2256.namprd10.prod.outlook.com (2603:10b6:301:31::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4587.19; Wed, 13 Oct 2021 07:16:59 +0000 Received: from MWHPR1001MB2365.namprd10.prod.outlook.com ([fe80::d409:11b5:5eb2:6be9]) by MWHPR1001MB2365.namprd10.prod.outlook.com ([fe80::d409:11b5:5eb2:6be9%5]) with mapi id 15.20.4587.027; Wed, 13 Oct 2021 07:16:58 +0000 Date: Wed, 13 Oct 2021 10:16:39 +0300 From: Dan Carpenter To: kbuild@lists.01.org, Richard Guy Briggs , Gaosheng Cui , paul@paul-moore.com, eparis@redhat.com Subject: Re: [PATCH -next] audit: return early if the rule has a lower priority Message-ID: <202110130344.odiZFWOO-lkp@intel.com> In-Reply-To: <20211012013240.63072-1-cuigaosheng1@huawei.com> User-Agent: Mutt/1.9.4 (2018-02-28) X-ClientProxiedBy: JNAP275CA0017.ZAFP275.PROD.OUTLOOK.COM (2603:1086:0:4c::22) To MWHPR1001MB2365.namprd10.prod.outlook.com (2603:10b6:301:2d::28) MIME-Version: 1.0 Received: from kadam (62.8.83.99) by JNAP275CA0017.ZAFP275.PROD.OUTLOOK.COM (2603:1086:0:4c::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4587.25 via Frontend Transport; Wed, 13 Oct 2021 07:16:52 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 19a32a4e-9d08-4634-cb98-08d98e19719e X-MS-TrafficTypeDiagnostic: MWHPR1001MB2256: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:8882 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0 X-Microsoft-Antispam-Message-Info: buPhduQJDxoKQAz+4IN66FHx+/CF/2x8cvt/lr47amcAdXP2Fur95emfcpGhcXopMZb8TX6VurQgfDZV8EC5MFiH9jaRc9AD4KxGjV//hmnXlg2w6+d2ZjBgOUQ28Peu0rqCyVaBUMTSGo8Qe4Yq7lmBPveonsWynbywzYlqztfNESmUhRsUxRKp4UvfSt1yk1IXAdK+m2z4KY/Actwm/18BbmoXsnVAtM2kSUoC0DuuTox+C/XmWu20V9JaYU/VUo+HXPqjZelbv8UvTYAt67GCkks8TALZgU6UzEzeATBkvXGITnxCvG7AmhmEqoet+7uC2fU5erSsSTEeMYXrSKalVmBLrChNa5iSS3T403gD2yTBM9ohbZr9Jm2MFGuLxXhusHj4VOUjH4/COwCL6Ppzdf4tvRMG/8Qq0r56wEgcesWNtbTDNHXIJJ5lmomDilHSYKN+cehC0ie/rWXjMApzVKDMlGVrM2DyeL028DCERhqMildAQTEE7Y4JqVjME2MUTrKD+bSM/EAxXzGxq1dhw9W1mRLNb3F7jfLFt7IAl+03GRVwI4kBnMvpAR3UpCkXsUdvhM1/1lAbFQb5UJLnHEHC/EBfIvfCJ8/0NUihndd631LhQfLDredwX5OMZ6hgSHJwSA+b/VHoFbeLhpl9pjXnizsMHEz7DYo623mgJMPtcKM2knzIfBPCHlA2mBQh6xeK3PQ/Y/iCblA3uJmvUD57aJYfLWBmaC7LsanrpNfJ4aATTXbhivPgKzSlO5Q2a9l/HCcNttkmFL3Iin4VFYrQQcFyHsHSwuVN5/PhnfUk+Wew9nClgQl6SYdanFm6Kp9UyWvNcmZdACX61w== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MWHPR1001MB2365.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(366004)(66476007)(508600001)(66946007)(956004)(66556008)(83380400001)(2906002)(4001150100001)(52116002)(9686003)(30864003)(6486002)(6496006)(7416002)(36756003)(966005)(1076003)(5660300002)(186003)(86362001)(8676002)(38350700002)(44832011)(38100700002)(4326008)(316002)(6666004)(26005)(110136005)(8936002); DIR:OUT; SFP:1101 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?KzFBN1kzK1dKTW5oeGtOMVF2N1BXZXdhaUR3WWltbHJtWUxWRkxDc3JiRU1H?= =?utf-8?B?amxuZUlSMGpWcWxIR0dobDUweVBHV0ZtZGVTYkJZeHRoSWY3bUZkQ3E0aVFX?= =?utf-8?B?VUZFVmY3SWVmd01tTDZPOXhSYnplb2d1d2JFTUlYN0pnSWQvZVA1WDk2SHNq?= =?utf-8?B?dTJwaXpHcHFPVnVHS0tVTmkrNTZlK3pVU0N1UExkbkxhQ0hpZ2liM1QxczE1?= =?utf-8?B?S0RpR1pCVWIyTjk0Rnd0ZWZyWHFnOVdONVBpT1B1ZWdPcnBKbmNmZHZqV21W?= =?utf-8?B?SDBvNndZeDRBV0FtZFRXTVZrY1luSXNPK01DeE8zVzVwNFI3ZmRlVzA2bUVv?= =?utf-8?B?d0NKSmVFcmFaWnIrcVYxMWdhWEtvM1VHZkZ5SUdYaFpydnVHeHdKNXNtTU4v?= =?utf-8?B?QmJCZGtnK0RrNnBJdjdJWCs4M3RiT1JwNkdRQ1J6LzJWNG9wT3p3RUZHcFp3?= =?utf-8?B?WUQwTWo1QnAyMnloc1B0WnpqUzlGUFllYzM2Qnc5SkNzYkdqdUx5VnhBVDZx?= =?utf-8?B?am5lejcza0R4RTZ4SnoyVHY3R0QxWGROcGRlSnVHaUUyR1k5TDlUZjVva1E3?= =?utf-8?B?Z2NyM0pQN2JvMFlmQUZDU0hlRnVOaDJhVUtxYWJZdTFBck0rM0Z1UUREQm1o?= =?utf-8?B?cDluRXJyR1RGdCtUN0taU0FoNFQ1akVjRkZXeFV5SnQrZGNwdXNERFUvNDRH?= =?utf-8?B?cVNsYXpBS2hyZXRvcG9wb2JjQzNvQmJCUTRWYXZrYzVxK2hOUUx1YlBNSkhj?= =?utf-8?B?N3E2YnZCL3AvRktuajZQbllZejUwTTVyNGl0M3QvOHlzWXlqYnhGQ0l1R2th?= =?utf-8?B?MG1OR0F5a2lQUlgyMGgvcEpBV1VPUW12TnZQR1V2L0FOUDhMTHNVWDNETTdh?= =?utf-8?B?VjdHVWxNdXdENGxzUjljWTNFT1dLZTJIZ2NiU1dQcExZTW02RUxrMkk5aTNY?= =?utf-8?B?YkZxUWx1cFp5WFAxdm1wUXc1YzlMOEpZcjdiOTJnOEVFMG5qRE9HK3Z0MktC?= =?utf-8?B?YUF4OFpZbmFackY4dHk4UThSVFZoUXRmSmp5KzMvNW9lOEtBaFkvWGd2bmp6?= =?utf-8?B?UGN1N0txV1JkdDNSYjJSMHVuR2UvTUJmdU1aN1V1SE5yRUgvZVB6Q01PVVFr?= =?utf-8?B?dTIyOTBpbTN0WXN2YnJ2aE0vRjJiOW92NFgwMXRiQnpzSzU0WDRHUUtCd2Fi?= =?utf-8?B?VTJla2hjSkUzM1pWbjloTU4xT2czTFhmU3FWc3NiVUN0bHdmczl5bmhidmk3?= =?utf-8?B?N0QwYUxIcU5CTE9SN1NzQmVFd1hUWjdQbWl6dTgxcjdENnRuRjh4WFNDbEpm?= =?utf-8?B?TG1DdWZ4ME1LM0trcGlRVUxVRXVXaFh1Y3VnVlBabUQrZ1VvcFQrcitMTXY1?= =?utf-8?B?V3JSWHJmZEY5YnRRck1mdWJOczdVMWp2TFNIWVJXS0VaWktvckFJdThpZkxa?= =?utf-8?B?ajhsZnhhU1RNTnVoMld2bnowVTh1TU9Ba3dzVFN1MDFHSTFnK2lKb29naDFi?= =?utf-8?B?MEFXMzRzR2xkVDh5Z0w0b2pxTHIrOGx4L0JRcmlhbmc2eEdmRlVoMjhhTUFq?= =?utf-8?B?cmJnQ0hhendJMURWcWlvKytTdUdPY3B4bDJ1cGN5TGZWazU5L0xOdXo2SzNt?= =?utf-8?B?UDFyQ2hSLy9POHRoTFI5SEFkaXA5ZSt5VWZRc3R2cTlaelpyNzJkYTVWUGdh?= =?utf-8?B?bGJHSzluMENlK1hBNVpLR1lBWjZYSE83ZkRQV0hKV3RGWG93eFNzTld6SGZr?= =?utf-8?Q?hA9PFhUMgv7Xr+leDElQso5IOgC14lQmVY7eayo?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 19a32a4e-9d08-4634-cb98-08d98e19719e X-MS-Exchange-CrossTenant-AuthSource: MWHPR1001MB2365.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Oct 2021 07:16:58.7351 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: BJxloD1Atww5yE5UCgdax+ShswJIosYdOlE0f/49GxkIoB24VVDAKr4YcO76avje1mSuDd9ByQrPc3gM7a1CtzrnPKp8BTWOUeIu/1VaI8Y= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR1001MB2256 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10135 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 phishscore=0 suspectscore=0 mlxlogscore=999 mlxscore=0 bulkscore=0 adultscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2109230001 definitions=main-2110130048 X-Proofpoint-ORIG-GUID: w1t0q2A6UARTpYc1veWY_bmrFKbrEpk5 X-Proofpoint-GUID: w1t0q2A6UARTpYc1veWY_bmrFKbrEpk5 X-MIME-Autoconverted: from 8bit to quoted-printable by mx0b-00069f02.pphosted.com id 19D70UEq013092 X-Mimecast-Impersonation-Protect: Policy=CLT - Impersonation Protection Definition; Similar Internal Domain=false; Similar Monitored External Domain=false; Custom External Domain=false; Mimecast External Domain=false; Newly Observed Domain=false; Internal User Name=false; Custom Display Name List=false; Reply-to Address Mismatch=false; Targeted Threat Dictionary=false; Mimecast Threat Dictionary=false; Custom Threat Dictionary=false X-Scanned-By: MIMEDefang 2.84 on 10.11.54.1 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id 19D7HTr6000761 X-loop: linux-audit@redhat.com X-Mailman-Approved-At: Wed, 13 Oct 2021 09:13:11 -0400 Cc: kbuild-all@lists.01.org, lkp@intel.com, xiujianfeng@huawei.com, linux-kernel@vger.kernel.org, wangweiyang2@huawei.com, linux-audit@redhat.com X-BeenThere: linux-audit@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Linux Audit Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: linux-audit-bounces@redhat.com Errors-To: linux-audit-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=linux-audit-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Disposition: inline Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 WyBJdCdzIEdhb3NoZW5nJ3MgcGF0Y2ggd2hpY2ggdHJpZ2dlcnMgdGhlIHdhcm5pbmcgYnV0IEkg dGhpbmsgaXQncwogIGFjdHVhbGx5IHRoZSBkZXJlZmVyZW5jZSB3aGljaCBzaG91bGQgYmUgY2hh bmdlZC4gIEkndmUgYWRkZWQgUmljaGFyZAogIHRvIHRoZSBDQyBsaXN0LiAtZGFuIF0KCkhpIEdh b3NoZW5nLAoKdXJsOiAgICBodHRwczovL2dpdGh1Yi5jb20vMGRheS1jaS9saW51eC9jb21taXRz L0dhb3NoZW5nLUN1aS9hdWRpdC1yZXR1cm4tZWFybHktaWYtdGhlLXJ1bGUtaGFzLWEtbG93ZXIt cHJpb3JpdHkvMjAyMTEwMTItMDkzMTAyCmJhc2U6ICAgIGQzMTM0ZWI1ZGU4NTQ2YTIxNGMwMjhm YjcxOTVlNzY0Yjg5ZGE3ZDQKY29uZmlnOiB4ODZfNjQtcmFuZGNvbmZpZy1tMDAxLTIwMjExMDEy IChhdHRhY2hlZCBhcyAuY29uZmlnKQpjb21waWxlcjogZ2NjLTkgKERlYmlhbiA5LjMuMC0yMikg OS4zLjAKCklmIHlvdSBmaXggdGhlIGlzc3VlLCBraW5kbHkgYWRkIGZvbGxvd2luZyB0YWcgYXMg YXBwcm9wcmlhdGUKUmVwb3J0ZWQtYnk6IGtlcm5lbCB0ZXN0IHJvYm90IDxsa3BAaW50ZWwuY29t PgpSZXBvcnRlZC1ieTogRGFuIENhcnBlbnRlciA8ZGFuLmNhcnBlbnRlckBvcmFjbGUuY29tPgoK c21hdGNoIHdhcm5pbmdzOgprZXJuZWwvYXVkaXRzYy5jOjY1MyBhdWRpdF9maWx0ZXJfcnVsZXMo KSBlcnJvcjogd2UgcHJldmlvdXNseSBhc3N1bWVkICdjdHgnIGNvdWxkIGJlIG51bGwgKHNlZSBs aW5lIDQ3MykKCnZpbSArL2N0eCArNjUzIGtlcm5lbC9hdWRpdHNjLmMKCl4xZGExNzdlNGMzZjQx IExpbnVzIFRvcnZhbGRzICAgICAyMDA1LTA0LTE2ICA0NjEgIHN0YXRpYyBpbnQgYXVkaXRfZmls dGVyX3J1bGVzKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLAo5MzMxNWVkNmRkMTJkYSBBbXkgR3Jp ZmZpcyAgICAgICAgMjAwNi0wMi0wNyAgNDYyICAJCQkgICAgICBzdHJ1Y3QgYXVkaXRfa3J1bGUg KnJ1bGUsCl4xZGExNzdlNGMzZjQxIExpbnVzIFRvcnZhbGRzICAgICAyMDA1LTA0LTE2ICA0NjMg IAkJCSAgICAgIHN0cnVjdCBhdWRpdF9jb250ZXh0ICpjdHgsCmYzNjhjMDdkNzIxNGE3IEFteSBH cmlmZmlzICAgICAgICAyMDA2LTA0LTA3ICA0NjQgIAkJCSAgICAgIHN0cnVjdCBhdWRpdF9uYW1l cyAqbmFtZSwKZjU2Mjk4ODM1MDM2MWIgVG9ueSBKb25lcyAgICAgICAgIDIwMTEtMDQtMjcgIDQ2 NSAgCQkJICAgICAgZW51bSBhdWRpdF9zdGF0ZSAqc3RhdGUsCmY1NjI5ODgzNTAzNjFiIFRvbnkg Sm9uZXMgICAgICAgICAyMDExLTA0LTI3ICA0NjYgIAkJCSAgICAgIGJvb2wgdGFza19jcmVhdGlv bikKXjFkYTE3N2U0YzNmNDEgTGludXMgVG9ydmFsZHMgICAgIDIwMDUtMDQtMTYgIDQ2NyAgewpm NTYyOTg4MzUwMzYxYiBUb255IEpvbmVzICAgICAgICAgMjAxMS0wNC0yNyAgNDY4ICAJY29uc3Qg c3RydWN0IGNyZWQgKmNyZWQ7CjUxOTVkOGUyMTdhNzg2IEVyaWMgUGFyaXMgICAgICAgICAyMDEy LTAxLTAzICA0NjkgIAlpbnQgaSwgbmVlZF9zaWQgPSAxOwozZGM3ZTMxNTNlZGRmYyBEYXJyZWwg R29lZGRlbCAgICAgMjAwNi0wMy0xMCAgNDcwICAJdTMyIHNpZDsKOGZhZTQ3NzA1Njg1ZmMgUmlj aGFyZCBHdXkgQnJpZ2dzIDIwMTYtMTEtMjAgIDQ3MSAgCXVuc2lnbmVkIGludCBzZXNzaW9uaWQ7 CjNkYzdlMzE1M2VkZGZjIERhcnJlbCBHb2VkZGVsICAgICAyMDA2LTAzLTEwICA0NzIgIAowNDZh OGU0NmVlZmI5ZCBHYW9zaGVuZyBDdWkgICAgICAgMjAyMS0xMC0xMiBANDczICAJaWYgKGN0eCAm JiBydWxlLT5wcmlvIDw9IGN0eC0+cHJpbykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXl5eCkNoZWNrZWQgaGVyZS4KCjA0NmE4ZTQ2 ZWVmYjlkIEdhb3NoZW5nIEN1aSAgICAgICAyMDIxLTEwLTEyICA0NzQgIAkJcmV0dXJuIDA7CjA0 NmE4ZTQ2ZWVmYjlkIEdhb3NoZW5nIEN1aSAgICAgICAyMDIxLTEwLTEyICA0NzUgIApmNTYyOTg4 MzUwMzYxYiBUb255IEpvbmVzICAgICAgICAgMjAxMS0wNC0yNyAgNDc2ICAJY3JlZCA9IHJjdV9k ZXJlZmVyZW5jZV9jaGVjayh0c2stPmNyZWQsIHRzayA9PSBjdXJyZW50IHx8IHRhc2tfY3JlYXRp b24pOwpmNTYyOTg4MzUwMzYxYiBUb255IEpvbmVzICAgICAgICAgMjAxMS0wNC0yNyAgNDc3ICAK XjFkYTE3N2U0YzNmNDEgTGludXMgVG9ydmFsZHMgICAgIDIwMDUtMDQtMTYgIDQ3OCAgCWZvciAo aSA9IDA7IGkgPCBydWxlLT5maWVsZF9jb3VudDsgaSsrKSB7CjkzMzE1ZWQ2ZGQxMmRhIEFteSBH cmlmZmlzICAgICAgICAyMDA2LTAyLTA3ICA0NzkgIAkJc3RydWN0IGF1ZGl0X2ZpZWxkICpmID0g JnJ1bGUtPmZpZWxkc1tpXTsKNTE5NWQ4ZTIxN2E3ODYgRXJpYyBQYXJpcyAgICAgICAgIDIwMTIt MDEtMDMgIDQ4MCAgCQlzdHJ1Y3QgYXVkaXRfbmFtZXMgKm47Cl4xZGExNzdlNGMzZjQxIExpbnVz IFRvcnZhbGRzICAgICAyMDA1LTA0LTE2ICA0ODEgIAkJaW50IHJlc3VsdCA9IDA7CmYxZGM0ODY3 ZmY0MWI3IFJpY2hhcmQgR3V5IEJyaWdncyAyMDEzLTEyLTExICA0ODIgIAkJcGlkX3QgcGlkOwpe MWRhMTc3ZTRjM2Y0MSBMaW51cyBUb3J2YWxkcyAgICAgMjAwNS0wNC0xNiAgNDgzICAKOTMzMTVl ZDZkZDEyZGEgQW15IEdyaWZmaXMgICAgICAgIDIwMDYtMDItMDcgIDQ4NCAgCQlzd2l0Y2ggKGYt PnR5cGUpIHsKXjFkYTE3N2U0YzNmNDEgTGludXMgVG9ydmFsZHMgICAgIDIwMDUtMDQtMTYgIDQ4 NSAgCQljYXNlIEFVRElUX1BJRDoKZmEyYmVhMmY1Y2NhNWIgUGF1bCBNb29yZSAgICAgICAgIDIw MTYtMDgtMzAgIDQ4NiAgCQkJcGlkID0gdGFza190Z2lkX25yKHRzayk7CmYxZGM0ODY3ZmY0MWI3 IFJpY2hhcmQgR3V5IEJyaWdncyAyMDEzLTEyLTExICA0ODcgIAkJCXJlc3VsdCA9IGF1ZGl0X2Nv bXBhcmF0b3IocGlkLCBmLT5vcCwgZi0+dmFsKTsKXjFkYTE3N2U0YzNmNDEgTGludXMgVG9ydmFs ZHMgICAgIDIwMDUtMDQtMTYgIDQ4OCAgCQkJYnJlYWs7CjNjNjYyNTFlNTczMjE5IEFsIFZpcm8g ICAgICAgICAgICAyMDA2LTA1LTA2ICA0ODkgIAkJY2FzZSBBVURJVF9QUElEOgo0MTljNThmMTFm YjczMiBBbGV4YW5kZXIgVmlybyAgICAgMjAwNi0wOS0yOSAgNDkwICAJCQlpZiAoY3R4KSB7CjQx OWM1OGYxMWZiNzMyIEFsZXhhbmRlciBWaXJvICAgICAyMDA2LTA5LTI5ICA0OTEgIAkJCQlpZiAo IWN0eC0+cHBpZCkKYzkyY2RlYjQ1ZWVhMzggUmljaGFyZCBHdXkgQnJpZ2dzIDIwMTMtMTItMTAg IDQ5MiAgCQkJCQljdHgtPnBwaWQgPSB0YXNrX3BwaWRfbnIodHNrKTsKM2M2NjI1MWU1NzMyMTkg QWwgVmlybyAgICAgICAgICAgIDIwMDYtMDUtMDYgIDQ5MyAgCQkJCXJlc3VsdCA9IGF1ZGl0X2Nv bXBhcmF0b3IoY3R4LT5wcGlkLCBmLT5vcCwgZi0+dmFsKTsKNDE5YzU4ZjExZmI3MzIgQWxleGFu ZGVyIFZpcm8gICAgIDIwMDYtMDktMjkgIDQ5NCAgCQkJfQozYzY2MjUxZTU3MzIxOSBBbCBWaXJv ICAgICAgICAgICAgMjAwNi0wNS0wNiAgNDk1ICAJCQlicmVhazsKMzRkOTlhZjUyYWQ0MGIgUmlj aGFyZCBHdXkgQnJpZ2dzIDIwMTUtMDgtMDUgIDQ5NiAgCQljYXNlIEFVRElUX0VYRToKMzRkOTlh ZjUyYWQ0MGIgUmljaGFyZCBHdXkgQnJpZ2dzIDIwMTUtMDgtMDUgIDQ5NyAgCQkJcmVzdWx0ID0g YXVkaXRfZXhlX2NvbXBhcmUodHNrLCBydWxlLT5leGUpOwoyM2JjYzQ4MGRhYzIwNCBPbmRyZWog TW9zbsOhxI1layAgICAyMDE4LTA0LTA5ICA0OTggIAkJCWlmIChmLT5vcCA9PSBBdWRpdF9ub3Rf ZXF1YWwpCjIzYmNjNDgwZGFjMjA0IE9uZHJlaiBNb3Nuw6HEjWVrICAgIDIwMTgtMDQtMDkgIDQ5 OSAgCQkJCXJlc3VsdCA9ICFyZXN1bHQ7CjM0ZDk5YWY1MmFkNDBiIFJpY2hhcmQgR3V5IEJyaWdn cyAyMDE1LTA4LTA1ICA1MDAgIAkJCWJyZWFrOwpeMWRhMTc3ZTRjM2Y0MSBMaW51cyBUb3J2YWxk cyAgICAgMjAwNS0wNC0xNiAgNTAxICAJCWNhc2UgQVVESVRfVUlEOgpjYTU3ZWMwZjAwYzNmMSBF cmljIFcuIEJpZWRlcm1hbiAgMjAxMi0wOS0xMSAgNTAyICAJCQlyZXN1bHQgPSBhdWRpdF91aWRf Y29tcGFyYXRvcihjcmVkLT51aWQsIGYtPm9wLCBmLT51aWQpOwpeMWRhMTc3ZTRjM2Y0MSBMaW51 cyBUb3J2YWxkcyAgICAgMjAwNS0wNC0xNiAgNTAzICAJCQlicmVhazsKXjFkYTE3N2U0YzNmNDEg TGludXMgVG9ydmFsZHMgICAgIDIwMDUtMDQtMTYgIDUwNCAgCQljYXNlIEFVRElUX0VVSUQ6CmNh NTdlYzBmMDBjM2YxIEVyaWMgVy4gQmllZGVybWFuICAyMDEyLTA5LTExICA1MDUgIAkJCXJlc3Vs dCA9IGF1ZGl0X3VpZF9jb21wYXJhdG9yKGNyZWQtPmV1aWQsIGYtPm9wLCBmLT51aWQpOwpeMWRh MTc3ZTRjM2Y0MSBMaW51cyBUb3J2YWxkcyAgICAgMjAwNS0wNC0xNiAgNTA2ICAJCQlicmVhazsK XjFkYTE3N2U0YzNmNDEgTGludXMgVG9ydmFsZHMgICAgIDIwMDUtMDQtMTYgIDUwNyAgCQljYXNl IEFVRElUX1NVSUQ6CmNhNTdlYzBmMDBjM2YxIEVyaWMgVy4gQmllZGVybWFuICAyMDEyLTA5LTEx ICA1MDggIAkJCXJlc3VsdCA9IGF1ZGl0X3VpZF9jb21wYXJhdG9yKGNyZWQtPnN1aWQsIGYtPm9w LCBmLT51aWQpOwpeMWRhMTc3ZTRjM2Y0MSBMaW51cyBUb3J2YWxkcyAgICAgMjAwNS0wNC0xNiAg NTA5ICAJCQlicmVhazsKXjFkYTE3N2U0YzNmNDEgTGludXMgVG9ydmFsZHMgICAgIDIwMDUtMDQt MTYgIDUxMCAgCQljYXNlIEFVRElUX0ZTVUlEOgpjYTU3ZWMwZjAwYzNmMSBFcmljIFcuIEJpZWRl cm1hbiAgMjAxMi0wOS0xMSAgNTExICAJCQlyZXN1bHQgPSBhdWRpdF91aWRfY29tcGFyYXRvcihj cmVkLT5mc3VpZCwgZi0+b3AsIGYtPnVpZCk7Cl4xZGExNzdlNGMzZjQxIExpbnVzIFRvcnZhbGRz ICAgICAyMDA1LTA0LTE2ICA1MTIgIAkJCWJyZWFrOwpeMWRhMTc3ZTRjM2Y0MSBMaW51cyBUb3J2 YWxkcyAgICAgMjAwNS0wNC0xNiAgNTEzICAJCWNhc2UgQVVESVRfR0lEOgpjYTU3ZWMwZjAwYzNm MSBFcmljIFcuIEJpZWRlcm1hbiAgMjAxMi0wOS0xMSAgNTE0ICAJCQlyZXN1bHQgPSBhdWRpdF9n aWRfY29tcGFyYXRvcihjcmVkLT5naWQsIGYtPm9wLCBmLT5naWQpOwozN2VlYmUzOWM5NzMxYSBN YXR2ZWpjaGlrb3YgSWx5YSAgMjAxMS0xMi0xMyAgNTE1ICAJCQlpZiAoZi0+b3AgPT0gQXVkaXRf ZXF1YWwpIHsKMzdlZWJlMzljOTczMWEgTWF0dmVqY2hpa292IElseWEgIDIwMTEtMTItMTMgIDUx NiAgCQkJCWlmICghcmVzdWx0KQphZjg1ZDE3NzJlMzFmZSBPbmRyZWogTW9zbsOhxI1layAgICAy MDE4LTA2LTA1ICA1MTcgIAkJCQkJcmVzdWx0ID0gZ3JvdXBzX3NlYXJjaChjcmVkLT5ncm91cF9p bmZvLCBmLT5naWQpOwozN2VlYmUzOWM5NzMxYSBNYXR2ZWpjaGlrb3YgSWx5YSAgMjAxMS0xMi0x MyAgNTE4ICAJCQl9IGVsc2UgaWYgKGYtPm9wID09IEF1ZGl0X25vdF9lcXVhbCkgewozN2VlYmUz OWM5NzMxYSBNYXR2ZWpjaGlrb3YgSWx5YSAgMjAxMS0xMi0xMyAgNTE5ICAJCQkJaWYgKHJlc3Vs dCkKYWY4NWQxNzcyZTMxZmUgT25kcmVqIE1vc27DocSNZWsgICAgMjAxOC0wNi0wNSAgNTIwICAJ CQkJCXJlc3VsdCA9ICFncm91cHNfc2VhcmNoKGNyZWQtPmdyb3VwX2luZm8sIGYtPmdpZCk7CjM3 ZWViZTM5Yzk3MzFhIE1hdHZlamNoaWtvdiBJbHlhICAyMDExLTEyLTEzICA1MjEgIAkJCX0KXjFk YTE3N2U0YzNmNDEgTGludXMgVG9ydmFsZHMgICAgIDIwMDUtMDQtMTYgIDUyMiAgCQkJYnJlYWs7 Cl4xZGExNzdlNGMzZjQxIExpbnVzIFRvcnZhbGRzICAgICAyMDA1LTA0LTE2ICA1MjMgIAkJY2Fz ZSBBVURJVF9FR0lEOgpjYTU3ZWMwZjAwYzNmMSBFcmljIFcuIEJpZWRlcm1hbiAgMjAxMi0wOS0x MSAgNTI0ICAJCQlyZXN1bHQgPSBhdWRpdF9naWRfY29tcGFyYXRvcihjcmVkLT5lZ2lkLCBmLT5v cCwgZi0+Z2lkKTsKMzdlZWJlMzljOTczMWEgTWF0dmVqY2hpa292IElseWEgIDIwMTEtMTItMTMg IDUyNSAgCQkJaWYgKGYtPm9wID09IEF1ZGl0X2VxdWFsKSB7CjM3ZWViZTM5Yzk3MzFhIE1hdHZl amNoaWtvdiBJbHlhICAyMDExLTEyLTEzICA1MjYgIAkJCQlpZiAoIXJlc3VsdCkKYWY4NWQxNzcy ZTMxZmUgT25kcmVqIE1vc27DocSNZWsgICAgMjAxOC0wNi0wNSAgNTI3ICAJCQkJCXJlc3VsdCA9 IGdyb3Vwc19zZWFyY2goY3JlZC0+Z3JvdXBfaW5mbywgZi0+Z2lkKTsKMzdlZWJlMzljOTczMWEg TWF0dmVqY2hpa292IElseWEgIDIwMTEtMTItMTMgIDUyOCAgCQkJfSBlbHNlIGlmIChmLT5vcCA9 PSBBdWRpdF9ub3RfZXF1YWwpIHsKMzdlZWJlMzljOTczMWEgTWF0dmVqY2hpa292IElseWEgIDIw MTEtMTItMTMgIDUyOSAgCQkJCWlmIChyZXN1bHQpCmFmODVkMTc3MmUzMWZlIE9uZHJlaiBNb3Nu w6HEjWVrICAgIDIwMTgtMDYtMDUgIDUzMCAgCQkJCQlyZXN1bHQgPSAhZ3JvdXBzX3NlYXJjaChj cmVkLT5ncm91cF9pbmZvLCBmLT5naWQpOwozN2VlYmUzOWM5NzMxYSBNYXR2ZWpjaGlrb3YgSWx5 YSAgMjAxMS0xMi0xMyAgNTMxICAJCQl9Cl4xZGExNzdlNGMzZjQxIExpbnVzIFRvcnZhbGRzICAg ICAyMDA1LTA0LTE2ICA1MzIgIAkJCWJyZWFrOwpeMWRhMTc3ZTRjM2Y0MSBMaW51cyBUb3J2YWxk cyAgICAgMjAwNS0wNC0xNiAgNTMzICAJCWNhc2UgQVVESVRfU0dJRDoKY2E1N2VjMGYwMGMzZjEg RXJpYyBXLiBCaWVkZXJtYW4gIDIwMTItMDktMTEgIDUzNCAgCQkJcmVzdWx0ID0gYXVkaXRfZ2lk X2NvbXBhcmF0b3IoY3JlZC0+c2dpZCwgZi0+b3AsIGYtPmdpZCk7Cl4xZGExNzdlNGMzZjQxIExp bnVzIFRvcnZhbGRzICAgICAyMDA1LTA0LTE2ICA1MzUgIAkJCWJyZWFrOwpeMWRhMTc3ZTRjM2Y0 MSBMaW51cyBUb3J2YWxkcyAgICAgMjAwNS0wNC0xNiAgNTM2ICAJCWNhc2UgQVVESVRfRlNHSUQ6 CmNhNTdlYzBmMDBjM2YxIEVyaWMgVy4gQmllZGVybWFuICAyMDEyLTA5LTExICA1MzcgIAkJCXJl c3VsdCA9IGF1ZGl0X2dpZF9jb21wYXJhdG9yKGNyZWQtPmZzZ2lkLCBmLT5vcCwgZi0+Z2lkKTsK XjFkYTE3N2U0YzNmNDEgTGludXMgVG9ydmFsZHMgICAgIDIwMDUtMDQtMTYgIDUzOCAgCQkJYnJl YWs7CjhmYWU0NzcwNTY4NWZjIFJpY2hhcmQgR3V5IEJyaWdncyAyMDE2LTExLTIwICA1MzkgIAkJ Y2FzZSBBVURJVF9TRVNTSU9OSUQ6CjViNzEzODg2NjNjMDkyIE9uZHJlaiBNb3Nuw6HEjWVrICAg IDIwMTgtMDUtMTcgIDU0MCAgCQkJc2Vzc2lvbmlkID0gYXVkaXRfZ2V0X3Nlc3Npb25pZCh0c2sp Owo4ZmFlNDc3MDU2ODVmYyBSaWNoYXJkIEd1eSBCcmlnZ3MgMjAxNi0xMS0yMCAgNTQxICAJCQly ZXN1bHQgPSBhdWRpdF9jb21wYXJhdG9yKHNlc3Npb25pZCwgZi0+b3AsIGYtPnZhbCk7CjhmYWU0 NzcwNTY4NWZjIFJpY2hhcmQgR3V5IEJyaWdncyAyMDE2LTExLTIwICA1NDIgIAkJCWJyZWFrOwpe MWRhMTc3ZTRjM2Y0MSBMaW51cyBUb3J2YWxkcyAgICAgMjAwNS0wNC0xNiAgNTQzICAJCWNhc2Ug QVVESVRfUEVSUzoKOTMzMTVlZDZkZDEyZGEgQW15IEdyaWZmaXMgICAgICAgIDIwMDYtMDItMDcg IDU0NCAgCQkJcmVzdWx0ID0gYXVkaXRfY29tcGFyYXRvcih0c2stPnBlcnNvbmFsaXR5LCBmLT5v cCwgZi0+dmFsKTsKXjFkYTE3N2U0YzNmNDEgTGludXMgVG9ydmFsZHMgICAgIDIwMDUtMDQtMTYg IDU0NSAgCQkJYnJlYWs7CjJmZDZmNThiYTZlZmM4IERhdmlkIFdvb2Rob3VzZSAgICAyMDA1LTA0 LTI5ICA1NDYgIAkJY2FzZSBBVURJVF9BUkNIOgoyZmQ2ZjU4YmE2ZWZjOCBEYXZpZCBXb29kaG91 c2UgICAgMjAwNS0wNC0yOSAgNTQ3ICAJCQlpZiAoY3R4KQo5MzMxNWVkNmRkMTJkYSBBbXkgR3Jp ZmZpcyAgICAgICAgMjAwNi0wMi0wNyAgNTQ4ICAJCQkJcmVzdWx0ID0gYXVkaXRfY29tcGFyYXRv cihjdHgtPmFyY2gsIGYtPm9wLCBmLT52YWwpOwoyZmQ2ZjU4YmE2ZWZjOCBEYXZpZCBXb29kaG91 c2UgICAgMjAwNS0wNC0yOSAgNTQ5ICAJCQlicmVhazsKXjFkYTE3N2U0YzNmNDEgTGludXMgVG9y dmFsZHMgICAgIDIwMDUtMDQtMTYgIDU1MCAgCl4xZGExNzdlNGMzZjQxIExpbnVzIFRvcnZhbGRz ICAgICAyMDA1LTA0LTE2ICA1NTEgIAkJY2FzZSBBVURJVF9FWElUOgpiYTU5ZWFlNzIzODU3MiBB bGV4IFNoaSAgICAgICAgICAgMjAyMC0xMS0wNiAgNTUyICAJCQlpZiAoY3R4ICYmIGN0eC0+cmV0 dXJuX3ZhbGlkICE9IEFVRElUU0NfSU5WQUxJRCkKOTMzMTVlZDZkZDEyZGEgQW15IEdyaWZmaXMg ICAgICAgIDIwMDYtMDItMDcgIDU1MyAgCQkJCXJlc3VsdCA9IGF1ZGl0X2NvbXBhcmF0b3IoY3R4 LT5yZXR1cm5fY29kZSwgZi0+b3AsIGYtPnZhbCk7Cl4xZGExNzdlNGMzZjQxIExpbnVzIFRvcnZh bGRzICAgICAyMDA1LTA0LTE2ICA1NTQgIAkJCWJyZWFrOwpeMWRhMTc3ZTRjM2Y0MSBMaW51cyBU b3J2YWxkcyAgICAgMjAwNS0wNC0xNiAgNTU1ICAJCWNhc2UgQVVESVRfU1VDQ0VTUzoKYmE1OWVh ZTcyMzg1NzIgQWxleCBTaGkgICAgICAgICAgIDIwMjAtMTEtMDYgIDU1NiAgCQkJaWYgKGN0eCAm JiBjdHgtPnJldHVybl92YWxpZCAhPSBBVURJVFNDX0lOVkFMSUQpIHsKOTMzMTVlZDZkZDEyZGEg QW15IEdyaWZmaXMgICAgICAgIDIwMDYtMDItMDcgIDU1NyAgCQkJCWlmIChmLT52YWwpCjkzMzE1 ZWQ2ZGQxMmRhIEFteSBHcmlmZmlzICAgICAgICAyMDA2LTAyLTA3ICA1NTggIAkJCQkJcmVzdWx0 ID0gYXVkaXRfY29tcGFyYXRvcihjdHgtPnJldHVybl92YWxpZCwgZi0+b3AsIEFVRElUU0NfU1VD Q0VTUyk7CmIwMWYyY2MxYzM3YWMzIERhdmlkIFdvb2Rob3VzZSAgICAyMDA1LTA4LTI3ICA1NTkg IAkJCQllbHNlCjkzMzE1ZWQ2ZGQxMmRhIEFteSBHcmlmZmlzICAgICAgICAyMDA2LTAyLTA3ICA1 NjAgIAkJCQkJcmVzdWx0ID0gYXVkaXRfY29tcGFyYXRvcihjdHgtPnJldHVybl92YWxpZCwgZi0+ b3AsIEFVRElUU0NfRkFJTFVSRSk7CmIwMWYyY2MxYzM3YWMzIERhdmlkIFdvb2Rob3VzZSAgICAy MDA1LTA4LTI3ICA1NjEgIAkJCX0KXjFkYTE3N2U0YzNmNDEgTGludXMgVG9ydmFsZHMgICAgIDIw MDUtMDQtMTYgIDU2MiAgCQkJYnJlYWs7Cl4xZGExNzdlNGMzZjQxIExpbnVzIFRvcnZhbGRzICAg ICAyMDA1LTA0LTE2ICA1NjMgIAkJY2FzZSBBVURJVF9ERVZNQUpPUjoKMTZjMTc0YmQ5NWNiMDcg RXJpYyBQYXJpcyAgICAgICAgIDIwMTItMDEtMDMgIDU2NCAgCQkJaWYgKG5hbWUpIHsKMTZjMTc0 YmQ5NWNiMDcgRXJpYyBQYXJpcyAgICAgICAgIDIwMTItMDEtMDMgIDU2NSAgCQkJCWlmIChhdWRp dF9jb21wYXJhdG9yKE1BSk9SKG5hbWUtPmRldiksIGYtPm9wLCBmLT52YWwpIHx8CjE2YzE3NGJk OTVjYjA3IEVyaWMgUGFyaXMgICAgICAgICAyMDEyLTAxLTAzICA1NjYgIAkJCQkgICAgYXVkaXRf Y29tcGFyYXRvcihNQUpPUihuYW1lLT5yZGV2KSwgZi0+b3AsIGYtPnZhbCkpCjE2YzE3NGJkOTVj YjA3IEVyaWMgUGFyaXMgICAgICAgICAyMDEyLTAxLTAzICA1NjcgIAkJCQkJKytyZXN1bHQ7CjE2 YzE3NGJkOTVjYjA3IEVyaWMgUGFyaXMgICAgICAgICAyMDEyLTAxLTAzICA1NjggIAkJCX0gZWxz ZSBpZiAoY3R4KSB7CjUxOTVkOGUyMTdhNzg2IEVyaWMgUGFyaXMgICAgICAgICAyMDEyLTAxLTAz ICA1NjkgIAkJCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KG4sICZjdHgtPm5hbWVzX2xpc3QsIGxpc3Qp IHsKMTZjMTc0YmQ5NWNiMDcgRXJpYyBQYXJpcyAgICAgICAgIDIwMTItMDEtMDMgIDU3MCAgCQkJ CQlpZiAoYXVkaXRfY29tcGFyYXRvcihNQUpPUihuLT5kZXYpLCBmLT5vcCwgZi0+dmFsKSB8fAox NmMxNzRiZDk1Y2IwNyBFcmljIFBhcmlzICAgICAgICAgMjAxMi0wMS0wMyAgNTcxICAJCQkJCSAg ICBhdWRpdF9jb21wYXJhdG9yKE1BSk9SKG4tPnJkZXYpLCBmLT5vcCwgZi0+dmFsKSkgewpeMWRh MTc3ZTRjM2Y0MSBMaW51cyBUb3J2YWxkcyAgICAgMjAwNS0wNC0xNiAgNTcyICAJCQkJCQkrK3Jl c3VsdDsKXjFkYTE3N2U0YzNmNDEgTGludXMgVG9ydmFsZHMgICAgIDIwMDUtMDQtMTYgIDU3MyAg CQkJCQkJYnJlYWs7Cl4xZGExNzdlNGMzZjQxIExpbnVzIFRvcnZhbGRzICAgICAyMDA1LTA0LTE2 ICA1NzQgIAkJCQkJfQpeMWRhMTc3ZTRjM2Y0MSBMaW51cyBUb3J2YWxkcyAgICAgMjAwNS0wNC0x NiAgNTc1ICAJCQkJfQpeMWRhMTc3ZTRjM2Y0MSBMaW51cyBUb3J2YWxkcyAgICAgMjAwNS0wNC0x NiAgNTc2ICAJCQl9Cl4xZGExNzdlNGMzZjQxIExpbnVzIFRvcnZhbGRzICAgICAyMDA1LTA0LTE2 ICA1NzcgIAkJCWJyZWFrOwpeMWRhMTc3ZTRjM2Y0MSBMaW51cyBUb3J2YWxkcyAgICAgMjAwNS0w NC0xNiAgNTc4ICAJCWNhc2UgQVVESVRfREVWTUlOT1I6CjE2YzE3NGJkOTVjYjA3IEVyaWMgUGFy aXMgICAgICAgICAyMDEyLTAxLTAzICA1NzkgIAkJCWlmIChuYW1lKSB7CjE2YzE3NGJkOTVjYjA3 IEVyaWMgUGFyaXMgICAgICAgICAyMDEyLTAxLTAzICA1ODAgIAkJCQlpZiAoYXVkaXRfY29tcGFy YXRvcihNSU5PUihuYW1lLT5kZXYpLCBmLT5vcCwgZi0+dmFsKSB8fAoxNmMxNzRiZDk1Y2IwNyBF cmljIFBhcmlzICAgICAgICAgMjAxMi0wMS0wMyAgNTgxICAJCQkJICAgIGF1ZGl0X2NvbXBhcmF0 b3IoTUlOT1IobmFtZS0+cmRldiksIGYtPm9wLCBmLT52YWwpKQoxNmMxNzRiZDk1Y2IwNyBFcmlj IFBhcmlzICAgICAgICAgMjAxMi0wMS0wMyAgNTgyICAJCQkJCSsrcmVzdWx0OwoxNmMxNzRiZDk1 Y2IwNyBFcmljIFBhcmlzICAgICAgICAgMjAxMi0wMS0wMyAgNTgzICAJCQl9IGVsc2UgaWYgKGN0 eCkgewo1MTk1ZDhlMjE3YTc4NiBFcmljIFBhcmlzICAgICAgICAgMjAxMi0wMS0wMyAgNTg0ICAJ CQkJbGlzdF9mb3JfZWFjaF9lbnRyeShuLCAmY3R4LT5uYW1lc19saXN0LCBsaXN0KSB7CjE2YzE3 NGJkOTVjYjA3IEVyaWMgUGFyaXMgICAgICAgICAyMDEyLTAxLTAzICA1ODUgIAkJCQkJaWYgKGF1 ZGl0X2NvbXBhcmF0b3IoTUlOT1Iobi0+ZGV2KSwgZi0+b3AsIGYtPnZhbCkgfHwKMTZjMTc0YmQ5 NWNiMDcgRXJpYyBQYXJpcyAgICAgICAgIDIwMTItMDEtMDMgIDU4NiAgCQkJCQkgICAgYXVkaXRf Y29tcGFyYXRvcihNSU5PUihuLT5yZGV2KSwgZi0+b3AsIGYtPnZhbCkpIHsKXjFkYTE3N2U0YzNm NDEgTGludXMgVG9ydmFsZHMgICAgIDIwMDUtMDQtMTYgIDU4NyAgCQkJCQkJKytyZXN1bHQ7Cl4x ZGExNzdlNGMzZjQxIExpbnVzIFRvcnZhbGRzICAgICAyMDA1LTA0LTE2ICA1ODggIAkJCQkJCWJy ZWFrOwpeMWRhMTc3ZTRjM2Y0MSBMaW51cyBUb3J2YWxkcyAgICAgMjAwNS0wNC0xNiAgNTg5ICAJ CQkJCX0KXjFkYTE3N2U0YzNmNDEgTGludXMgVG9ydmFsZHMgICAgIDIwMDUtMDQtMTYgIDU5MCAg CQkJCX0KXjFkYTE3N2U0YzNmNDEgTGludXMgVG9ydmFsZHMgICAgIDIwMDUtMDQtMTYgIDU5MSAg CQkJfQpeMWRhMTc3ZTRjM2Y0MSBMaW51cyBUb3J2YWxkcyAgICAgMjAwNS0wNC0xNiAgNTkyICAJ CQlicmVhazsKXjFkYTE3N2U0YzNmNDEgTGludXMgVG9ydmFsZHMgICAgIDIwMDUtMDQtMTYgIDU5 MyAgCQljYXNlIEFVRElUX0lOT0RFOgpmMzY4YzA3ZDcyMTRhNyBBbXkgR3JpZmZpcyAgICAgICAg MjAwNi0wNC0wNyAgNTk0ICAJCQlpZiAobmFtZSkKZGI1MTBmYzVjZDliOWQgUmljaGFyZCBHdXkg QnJpZ2dzIDIwMTMtMDctMDQgIDU5NSAgCQkJCXJlc3VsdCA9IGF1ZGl0X2NvbXBhcmF0b3IobmFt ZS0+aW5vLCBmLT5vcCwgZi0+dmFsKTsKZjM2OGMwN2Q3MjE0YTcgQW15IEdyaWZmaXMgICAgICAg IDIwMDYtMDQtMDcgIDU5NiAgCQkJZWxzZSBpZiAoY3R4KSB7CjUxOTVkOGUyMTdhNzg2IEVyaWMg UGFyaXMgICAgICAgICAyMDEyLTAxLTAzICA1OTcgIAkJCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KG4s ICZjdHgtPm5hbWVzX2xpc3QsIGxpc3QpIHsKNTE5NWQ4ZTIxN2E3ODYgRXJpYyBQYXJpcyAgICAg ICAgIDIwMTItMDEtMDMgIDU5OCAgCQkJCQlpZiAoYXVkaXRfY29tcGFyYXRvcihuLT5pbm8sIGYt Pm9wLCBmLT52YWwpKSB7Cl4xZGExNzdlNGMzZjQxIExpbnVzIFRvcnZhbGRzICAgICAyMDA1LTA0 LTE2ICA1OTkgIAkJCQkJCSsrcmVzdWx0OwpeMWRhMTc3ZTRjM2Y0MSBMaW51cyBUb3J2YWxkcyAg ICAgMjAwNS0wNC0xNiAgNjAwICAJCQkJCQlicmVhazsKXjFkYTE3N2U0YzNmNDEgTGludXMgVG9y dmFsZHMgICAgIDIwMDUtMDQtMTYgIDYwMSAgCQkJCQl9Cl4xZGExNzdlNGMzZjQxIExpbnVzIFRv cnZhbGRzICAgICAyMDA1LTA0LTE2ICA2MDIgIAkJCQl9Cl4xZGExNzdlNGMzZjQxIExpbnVzIFRv cnZhbGRzICAgICAyMDA1LTA0LTE2ICA2MDMgIAkJCX0KXjFkYTE3N2U0YzNmNDEgTGludXMgVG9y dmFsZHMgICAgIDIwMDUtMDQtMTYgIDYwNCAgCQkJYnJlYWs7CmVmYWZmZDZlNDQxNzg2IEVyaWMg UGFyaXMgICAgICAgICAyMDEyLTAxLTAzICA2MDUgIAkJY2FzZSBBVURJVF9PQkpfVUlEOgplZmFm ZmQ2ZTQ0MTc4NiBFcmljIFBhcmlzICAgICAgICAgMjAxMi0wMS0wMyAgNjA2ICAJCQlpZiAobmFt ZSkgewpjYTU3ZWMwZjAwYzNmMSBFcmljIFcuIEJpZWRlcm1hbiAgMjAxMi0wOS0xMSAgNjA3ICAJ CQkJcmVzdWx0ID0gYXVkaXRfdWlkX2NvbXBhcmF0b3IobmFtZS0+dWlkLCBmLT5vcCwgZi0+dWlk KTsKZWZhZmZkNmU0NDE3ODYgRXJpYyBQYXJpcyAgICAgICAgIDIwMTItMDEtMDMgIDYwOCAgCQkJ fSBlbHNlIGlmIChjdHgpIHsKZWZhZmZkNmU0NDE3ODYgRXJpYyBQYXJpcyAgICAgICAgIDIwMTIt MDEtMDMgIDYwOSAgCQkJCWxpc3RfZm9yX2VhY2hfZW50cnkobiwgJmN0eC0+bmFtZXNfbGlzdCwg bGlzdCkgewpjYTU3ZWMwZjAwYzNmMSBFcmljIFcuIEJpZWRlcm1hbiAgMjAxMi0wOS0xMSAgNjEw ICAJCQkJCWlmIChhdWRpdF91aWRfY29tcGFyYXRvcihuLT51aWQsIGYtPm9wLCBmLT51aWQpKSB7 CmVmYWZmZDZlNDQxNzg2IEVyaWMgUGFyaXMgICAgICAgICAyMDEyLTAxLTAzICA2MTEgIAkJCQkJ CSsrcmVzdWx0OwplZmFmZmQ2ZTQ0MTc4NiBFcmljIFBhcmlzICAgICAgICAgMjAxMi0wMS0wMyAg NjEyICAJCQkJCQlicmVhazsKZWZhZmZkNmU0NDE3ODYgRXJpYyBQYXJpcyAgICAgICAgIDIwMTIt MDEtMDMgIDYxMyAgCQkJCQl9CmVmYWZmZDZlNDQxNzg2IEVyaWMgUGFyaXMgICAgICAgICAyMDEy LTAxLTAzICA2MTQgIAkJCQl9CmVmYWZmZDZlNDQxNzg2IEVyaWMgUGFyaXMgICAgICAgICAyMDEy LTAxLTAzICA2MTUgIAkJCX0KZWZhZmZkNmU0NDE3ODYgRXJpYyBQYXJpcyAgICAgICAgIDIwMTIt MDEtMDMgIDYxNiAgCQkJYnJlYWs7CjU0ZDMyMThiMzFhZWU1IEVyaWMgUGFyaXMgICAgICAgICAy MDEyLTAxLTAzICA2MTcgIAkJY2FzZSBBVURJVF9PQkpfR0lEOgo1NGQzMjE4YjMxYWVlNSBFcmlj IFBhcmlzICAgICAgICAgMjAxMi0wMS0wMyAgNjE4ICAJCQlpZiAobmFtZSkgewpjYTU3ZWMwZjAw YzNmMSBFcmljIFcuIEJpZWRlcm1hbiAgMjAxMi0wOS0xMSAgNjE5ICAJCQkJcmVzdWx0ID0gYXVk aXRfZ2lkX2NvbXBhcmF0b3IobmFtZS0+Z2lkLCBmLT5vcCwgZi0+Z2lkKTsKNTRkMzIxOGIzMWFl ZTUgRXJpYyBQYXJpcyAgICAgICAgIDIwMTItMDEtMDMgIDYyMCAgCQkJfSBlbHNlIGlmIChjdHgp IHsKNTRkMzIxOGIzMWFlZTUgRXJpYyBQYXJpcyAgICAgICAgIDIwMTItMDEtMDMgIDYyMSAgCQkJ CWxpc3RfZm9yX2VhY2hfZW50cnkobiwgJmN0eC0+bmFtZXNfbGlzdCwgbGlzdCkgewpjYTU3ZWMw ZjAwYzNmMSBFcmljIFcuIEJpZWRlcm1hbiAgMjAxMi0wOS0xMSAgNjIyICAJCQkJCWlmIChhdWRp dF9naWRfY29tcGFyYXRvcihuLT5naWQsIGYtPm9wLCBmLT5naWQpKSB7CjU0ZDMyMThiMzFhZWU1 IEVyaWMgUGFyaXMgICAgICAgICAyMDEyLTAxLTAzICA2MjMgIAkJCQkJCSsrcmVzdWx0Owo1NGQz MjE4YjMxYWVlNSBFcmljIFBhcmlzICAgICAgICAgMjAxMi0wMS0wMyAgNjI0ICAJCQkJCQlicmVh azsKNTRkMzIxOGIzMWFlZTUgRXJpYyBQYXJpcyAgICAgICAgIDIwMTItMDEtMDMgIDYyNSAgCQkJ CQl9CjU0ZDMyMThiMzFhZWU1IEVyaWMgUGFyaXMgICAgICAgICAyMDEyLTAxLTAzICA2MjYgIAkJ CQl9CjU0ZDMyMThiMzFhZWU1IEVyaWMgUGFyaXMgICAgICAgICAyMDEyLTAxLTAzICA2MjcgIAkJ CX0KNTRkMzIxOGIzMWFlZTUgRXJpYyBQYXJpcyAgICAgICAgIDIwMTItMDEtMDMgIDYyOCAgCQkJ YnJlYWs7CmYzNjhjMDdkNzIxNGE3IEFteSBHcmlmZmlzICAgICAgICAyMDA2LTA0LTA3ICA2Mjkg IAkJY2FzZSBBVURJVF9XQVRDSDoKMDIyM2ZhZDNjOThhOTUgUmljaGFyZCBHdXkgQnJpZ2dzIDIw MTktMDUtMjIgIDYzMCAgCQkJaWYgKG5hbWUpIHsKMDIyM2ZhZDNjOThhOTUgUmljaGFyZCBHdXkg QnJpZ2dzIDIwMTktMDUtMjIgIDYzMSAgCQkJCXJlc3VsdCA9IGF1ZGl0X3dhdGNoX2NvbXBhcmUo cnVsZS0+d2F0Y2gsCjAyMjNmYWQzYzk4YTk1IFJpY2hhcmQgR3V5IEJyaWdncyAyMDE5LTA1LTIy ICA2MzIgIAkJCQkJCQkgICAgIG5hbWUtPmlubywKMDIyM2ZhZDNjOThhOTUgUmljaGFyZCBHdXkg QnJpZ2dzIDIwMTktMDUtMjIgIDYzMyAgCQkJCQkJCSAgICAgbmFtZS0+ZGV2KTsKMDIyM2ZhZDNj OThhOTUgUmljaGFyZCBHdXkgQnJpZ2dzIDIwMTktMDUtMjIgIDYzNCAgCQkJCWlmIChmLT5vcCA9 PSBBdWRpdF9ub3RfZXF1YWwpCjAyMjNmYWQzYzk4YTk1IFJpY2hhcmQgR3V5IEJyaWdncyAyMDE5 LTA1LTIyICA2MzUgIAkJCQkJcmVzdWx0ID0gIXJlc3VsdDsKMDIyM2ZhZDNjOThhOTUgUmljaGFy ZCBHdXkgQnJpZ2dzIDIwMTktMDUtMjIgIDYzNiAgCQkJfQpmMzY4YzA3ZDcyMTRhNyBBbXkgR3Jp ZmZpcyAgICAgICAgMjAwNi0wNC0wNyAgNjM3ICAJCQlicmVhazsKNzRjM2NiZTMzYmMwNzcgQWwg VmlybyAgICAgICAgICAgIDIwMDctMDctMjIgIDYzOCAgCQljYXNlIEFVRElUX0RJUjoKMDIyM2Zh ZDNjOThhOTUgUmljaGFyZCBHdXkgQnJpZ2dzIDIwMTktMDUtMjIgIDYzOSAgCQkJaWYgKGN0eCkg ewo3NGMzY2JlMzNiYzA3NyBBbCBWaXJvICAgICAgICAgICAgMjAwNy0wNy0yMiAgNjQwICAJCQkJ cmVzdWx0ID0gbWF0Y2hfdHJlZV9yZWZzKGN0eCwgcnVsZS0+dHJlZSk7CjAyMjNmYWQzYzk4YTk1 IFJpY2hhcmQgR3V5IEJyaWdncyAyMDE5LTA1LTIyICA2NDEgIAkJCQlpZiAoZi0+b3AgPT0gQXVk aXRfbm90X2VxdWFsKQowMjIzZmFkM2M5OGE5NSBSaWNoYXJkIEd1eSBCcmlnZ3MgMjAxOS0wNS0y MiAgNjQyICAJCQkJCXJlc3VsdCA9ICFyZXN1bHQ7CjAyMjNmYWQzYzk4YTk1IFJpY2hhcmQgR3V5 IEJyaWdncyAyMDE5LTA1LTIyICA2NDMgIAkJCX0KNzRjM2NiZTMzYmMwNzcgQWwgVmlybyAgICAg ICAgICAgIDIwMDctMDctMjIgIDY0NCAgCQkJYnJlYWs7Cl4xZGExNzdlNGMzZjQxIExpbnVzIFRv cnZhbGRzICAgICAyMDA1LTA0LTE2ICA2NDUgIAkJY2FzZSBBVURJVF9MT0dJTlVJRDoKMzhmODA1 OTA0ODZlMzggUmljaGFyZCBHdXkgQnJpZ2dzIDIwMTgtMDUtMTYgIDY0NiAgCQkJcmVzdWx0ID0g YXVkaXRfdWlkX2NvbXBhcmF0b3IoYXVkaXRfZ2V0X2xvZ2ludWlkKHRzayksCjM4ZjgwNTkwNDg2 ZTM4IFJpY2hhcmQgR3V5IEJyaWdncyAyMDE4LTA1LTE2ICA2NDcgIAkJCQkJCSAgICAgIGYtPm9w LCBmLT51aWQpOwpeMWRhMTc3ZTRjM2Y0MSBMaW51cyBUb3J2YWxkcyAgICAgMjAwNS0wNC0xNiAg NjQ4ICAJCQlicmVhazsKNzgwYTc2NTRjZWU4ZDYgRXJpYyBXLiBCaWVkZXJtYW4gIDIwMTMtMDQt MDkgIDY0OSAgCQljYXNlIEFVRElUX0xPR0lOVUlEX1NFVDoKNzgwYTc2NTRjZWU4ZDYgRXJpYyBX LiBCaWVkZXJtYW4gIDIwMTMtMDQtMDkgIDY1MCAgCQkJcmVzdWx0ID0gYXVkaXRfY29tcGFyYXRv cihhdWRpdF9sb2dpbnVpZF9zZXQodHNrKSwgZi0+b3AsIGYtPnZhbCk7Cjc4MGE3NjU0Y2VlOGQ2 IEVyaWMgVy4gQmllZGVybWFuICAyMDEzLTA0LTA5ICA2NTEgIAkJCWJyZWFrOwpiZjM2MTIzMWMy OTVkOSBSaWNoYXJkIEd1eSBCcmlnZ3MgMjAxOS0wNS0wOSAgNjUyICAJCWNhc2UgQVVESVRfU0FE RFJfRkFNOgpiZjM2MTIzMWMyOTVkOSBSaWNoYXJkIEd1eSBCcmlnZ3MgMjAxOS0wNS0wOSBANjUz ICAJCQlpZiAoY3R4LT5zb2NrYWRkcikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5eXl5eXl5eXl5eXl4K RXZlcnl3aGVyZSBlbHNlIGNoZWNrcyBpZiAiY3R4IiBpcyBOVUxMIGJlZm9yZSBkZXJlZmVyZW5j aW5nIGl0LgoKYmYzNjEyMzFjMjk1ZDkgUmljaGFyZCBHdXkgQnJpZ2dzIDIwMTktMDUtMDkgIDY1 NCAgCQkJCXJlc3VsdCA9IGF1ZGl0X2NvbXBhcmF0b3IoY3R4LT5zb2NrYWRkci0+c3NfZmFtaWx5 LApiZjM2MTIzMWMyOTVkOSBSaWNoYXJkIEd1eSBCcmlnZ3MgMjAxOS0wNS0wOSAgNjU1ICAJCQkJ CQkJICBmLT5vcCwgZi0+dmFsKTsKYmYzNjEyMzFjMjk1ZDkgUmljaGFyZCBHdXkgQnJpZ2dzIDIw MTktMDUtMDkgIDY1NiAgCQkJYnJlYWs7CjNhNmI5Zjg1YzY0MWEzIERhcnJlbCBHb2VkZGVsICAg ICAyMDA2LTA2LTI5ICA2NTcgIAkJY2FzZSBBVURJVF9TVUJKX1VTRVI6CjNhNmI5Zjg1YzY0MWEz IERhcnJlbCBHb2VkZGVsICAgICAyMDA2LTA2LTI5ICA2NTggIAkJY2FzZSBBVURJVF9TVUJKX1JP TEU6CjNhNmI5Zjg1YzY0MWEzIERhcnJlbCBHb2VkZGVsICAgICAyMDA2LTA2LTI5ICA2NTkgIAkJ Y2FzZSBBVURJVF9TVUJKX1RZUEU6CjNhNmI5Zjg1YzY0MWEzIERhcnJlbCBHb2VkZGVsICAgICAy MDA2LTA2LTI5ICA2NjAgIAkJY2FzZSBBVURJVF9TVUJKX1NFTjoKM2E2YjlmODVjNjQxYTMgRGFy cmVsIEdvZWRkZWwgICAgIDIwMDYtMDYtMjkgIDY2MSAgCQljYXNlIEFVRElUX1NVQkpfQ0xSOgoz ZGM3ZTMxNTNlZGRmYyBEYXJyZWwgR29lZGRlbCAgICAgMjAwNi0wMy0xMCAgNjYyICAJCQkvKiBO T1RFOiB0aGlzIG1heSByZXR1cm4gbmVnYXRpdmUgdmFsdWVzIGluZGljYXRpbmcKM2RjN2UzMTUz ZWRkZmMgRGFycmVsIEdvZWRkZWwgICAgIDIwMDYtMDMtMTAgIDY2MyAgCQkJICAgYSB0ZW1wb3Jh cnkgZXJyb3IuICBXZSBzaW1wbHkgdHJlYXQgdGhpcyBhcyBhCjNkYzdlMzE1M2VkZGZjIERhcnJl bCBHb2VkZGVsICAgICAyMDA2LTAzLTEwICA2NjQgIAkJCSAgIG1hdGNoIGZvciBub3cgdG8gYXZv aWQgbG9zaW5nIGluZm9ybWF0aW9uIHRoYXQKM2RjN2UzMTUzZWRkZmMgRGFycmVsIEdvZWRkZWwg ICAgIDIwMDYtMDMtMTAgIDY2NSAgCQkJICAgbWF5IGJlIHdhbnRlZC4gICBBbiBlcnJvciBtZXNz YWdlIHdpbGwgYWxzbyBiZQozZGM3ZTMxNTNlZGRmYyBEYXJyZWwgR29lZGRlbCAgICAgMjAwNi0w My0xMCAgNjY2ICAJCQkgICBsb2dnZWQgdXBvbiBlcnJvciAqLwowNDMwNWU0YWZmOGIwNSBBaG1l ZCBTLiBEYXJ3aXNoICAgMjAwOC0wNC0xOSAgNjY3ICAJCQlpZiAoZi0+bHNtX3J1bGUpIHsKMmFk MzEyZDIwOTNhZTUgU3RldmUgR3J1YmIgICAgICAgIDIwMDYtMDQtMTEgIDY2OCAgCQkJCWlmIChu ZWVkX3NpZCkgewo0ZWJkNzY1MWJmYzg5OSBQYXVsIE1vb3JlICAgICAgICAgMjAyMS0wMi0xOSAg NjY5ICAJCQkJCXNlY3VyaXR5X3Rhc2tfZ2V0c2VjaWRfc3Viaih0c2ssICZzaWQpOwoyYWQzMTJk MjA5M2FlNSBTdGV2ZSBHcnViYiAgICAgICAgMjAwNi0wNC0xMSAgNjcwICAJCQkJCW5lZWRfc2lk ID0gMDsKMmFkMzEyZDIwOTNhZTUgU3RldmUgR3J1YmIgICAgICAgIDIwMDYtMDQtMTEgIDY3MSAg CQkJCX0KZDdhOTZmM2ExYWUyNzkgQWhtZWQgUy4gRGFyd2lzaCAgIDIwMDgtMDMtMDEgIDY3MiAg CQkJCXJlc3VsdCA9IHNlY3VyaXR5X2F1ZGl0X3J1bGVfbWF0Y2goc2lkLCBmLT50eXBlLAozZGM3 ZTMxNTNlZGRmYyBEYXJyZWwgR29lZGRlbCAgICAgMjAwNi0wMy0xMCAgNjczICAJCQkJCQkJCSAg IGYtPm9wLAo5MDQ2MmE1YmQzMGM2ZSBSaWNoYXJkIEd1eSBCcmlnZ3MgMjAxOS0wMS0zMSAgNjc0 ICAJCQkJCQkJCSAgIGYtPmxzbV9ydWxlKTsKMmFkMzEyZDIwOTNhZTUgU3RldmUgR3J1YmIgICAg ICAgIDIwMDYtMDQtMTEgIDY3NSAgCQkJfQozZGM3ZTMxNTNlZGRmYyBEYXJyZWwgR29lZGRlbCAg ICAgMjAwNi0wMy0xMCAgNjc2ICAJCQlicmVhazsKNmU1YTJkMWQzMjU5NjggRGFycmVsIEdvZWRk ZWwgICAgIDIwMDYtMDYtMjkgIDY3NyAgCQljYXNlIEFVRElUX09CSl9VU0VSOgo2ZTVhMmQxZDMy NTk2OCBEYXJyZWwgR29lZGRlbCAgICAgMjAwNi0wNi0yOSAgNjc4ICAJCWNhc2UgQVVESVRfT0JK X1JPTEU6CjZlNWEyZDFkMzI1OTY4IERhcnJlbCBHb2VkZGVsICAgICAyMDA2LTA2LTI5ICA2Nzkg IAkJY2FzZSBBVURJVF9PQkpfVFlQRToKNmU1YTJkMWQzMjU5NjggRGFycmVsIEdvZWRkZWwgICAg IDIwMDYtMDYtMjkgIDY4MCAgCQljYXNlIEFVRElUX09CSl9MRVZfTE9XOgo2ZTVhMmQxZDMyNTk2 OCBEYXJyZWwgR29lZGRlbCAgICAgMjAwNi0wNi0yOSAgNjgxICAJCWNhc2UgQVVESVRfT0JKX0xF Vl9ISUdIOgo2ZTVhMmQxZDMyNTk2OCBEYXJyZWwgR29lZGRlbCAgICAgMjAwNi0wNi0yOSAgNjgy ICAJCQkvKiBUaGUgYWJvdmUgbm90ZSBmb3IgQVVESVRfU1VCSl9VU0VSLi4uQVVESVRfU1VCSl9D TFIKNmU1YTJkMWQzMjU5NjggRGFycmVsIEdvZWRkZWwgICAgIDIwMDYtMDYtMjkgIDY4MyAgCQkJ ICAgYWxzbyBhcHBsaWVzIGhlcmUgKi8KMDQzMDVlNGFmZjhiMDUgQWhtZWQgUy4gRGFyd2lzaCAg IDIwMDgtMDQtMTkgIDY4NCAgCQkJaWYgKGYtPmxzbV9ydWxlKSB7CjZlNWEyZDFkMzI1OTY4IERh cnJlbCBHb2VkZGVsICAgICAyMDA2LTA2LTI5ICA2ODUgIAkJCQkvKiBGaW5kIGZpbGVzIHRoYXQg bWF0Y2ggKi8KNmU1YTJkMWQzMjU5NjggRGFycmVsIEdvZWRkZWwgICAgIDIwMDYtMDYtMjkgIDY4 NiAgCQkJCWlmIChuYW1lKSB7CmQ3YTk2ZjNhMWFlMjc5IEFobWVkIFMuIERhcndpc2ggICAyMDA4 LTAzLTAxICA2ODcgIAkJCQkJcmVzdWx0ID0gc2VjdXJpdHlfYXVkaXRfcnVsZV9tYXRjaCgKOTA0 NjJhNWJkMzBjNmUgUmljaGFyZCBHdXkgQnJpZ2dzIDIwMTktMDEtMzEgIDY4OCAgCQkJCQkJCQlu YW1lLT5vc2lkLAo5MDQ2MmE1YmQzMGM2ZSBSaWNoYXJkIEd1eSBCcmlnZ3MgMjAxOS0wMS0zMSAg Njg5ICAJCQkJCQkJCWYtPnR5cGUsCjkwNDYyYTViZDMwYzZlIFJpY2hhcmQgR3V5IEJyaWdncyAy MDE5LTAxLTMxICA2OTAgIAkJCQkJCQkJZi0+b3AsCjkwNDYyYTViZDMwYzZlIFJpY2hhcmQgR3V5 IEJyaWdncyAyMDE5LTAxLTMxICA2OTEgIAkJCQkJCQkJZi0+bHNtX3J1bGUpOwo2ZTVhMmQxZDMy NTk2OCBEYXJyZWwgR29lZGRlbCAgICAgMjAwNi0wNi0yOSAgNjkyICAJCQkJfSBlbHNlIGlmIChj dHgpIHsKNTE5NWQ4ZTIxN2E3ODYgRXJpYyBQYXJpcyAgICAgICAgIDIwMTItMDEtMDMgIDY5MyAg CQkJCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KG4sICZjdHgtPm5hbWVzX2xpc3QsIGxpc3QpIHsKOTA0 NjJhNWJkMzBjNmUgUmljaGFyZCBHdXkgQnJpZ2dzIDIwMTktMDEtMzEgIDY5NCAgCQkJCQkJaWYg KHNlY3VyaXR5X2F1ZGl0X3J1bGVfbWF0Y2goCjkwNDYyYTViZDMwYzZlIFJpY2hhcmQgR3V5IEJy aWdncyAyMDE5LTAxLTMxICA2OTUgIAkJCQkJCQkJbi0+b3NpZCwKOTA0NjJhNWJkMzBjNmUgUmlj aGFyZCBHdXkgQnJpZ2dzIDIwMTktMDEtMzEgIDY5NiAgCQkJCQkJCQlmLT50eXBlLAo5MDQ2MmE1 YmQzMGM2ZSBSaWNoYXJkIEd1eSBCcmlnZ3MgMjAxOS0wMS0zMSAgNjk3ICAJCQkJCQkJCWYtPm9w LAo5MDQ2MmE1YmQzMGM2ZSBSaWNoYXJkIEd1eSBCcmlnZ3MgMjAxOS0wMS0zMSAgNjk4ICAJCQkJ CQkJCWYtPmxzbV9ydWxlKSkgewo2ZTVhMmQxZDMyNTk2OCBEYXJyZWwgR29lZGRlbCAgICAgMjAw Ni0wNi0yOSAgNjk5ICAJCQkJCQkJKytyZXN1bHQ7CjZlNWEyZDFkMzI1OTY4IERhcnJlbCBHb2Vk ZGVsICAgICAyMDA2LTA2LTI5ICA3MDAgIAkJCQkJCQlicmVhazsKNmU1YTJkMWQzMjU5NjggRGFy cmVsIEdvZWRkZWwgICAgIDIwMDYtMDYtMjkgIDcwMSAgCQkJCQkJfQo2ZTVhMmQxZDMyNTk2OCBE YXJyZWwgR29lZGRlbCAgICAgMjAwNi0wNi0yOSAgNzAyICAJCQkJCX0KNmU1YTJkMWQzMjU5Njgg RGFycmVsIEdvZWRkZWwgICAgIDIwMDYtMDYtMjkgIDcwMyAgCQkJCX0KNmU1YTJkMWQzMjU5Njgg RGFycmVsIEdvZWRkZWwgICAgIDIwMDYtMDYtMjkgIDcwNCAgCQkJCS8qIEZpbmQgaXBjIG9iamVj dHMgdGhhdCBtYXRjaCAqLwphMzNlNjc1MTAwM2M1YSBBbCBWaXJvICAgICAgICAgICAgMjAwOC0x Mi0xMCAgNzA1ICAJCQkJaWYgKCFjdHggfHwgY3R4LT50eXBlICE9IEFVRElUX0lQQykKNmU1YTJk MWQzMjU5NjggRGFycmVsIEdvZWRkZWwgICAgIDIwMDYtMDYtMjkgIDcwNiAgCQkJCQlicmVhazsK YTMzZTY3NTEwMDNjNWEgQWwgVmlybyAgICAgICAgICAgIDIwMDgtMTItMTAgIDcwNyAgCQkJCWlm IChzZWN1cml0eV9hdWRpdF9ydWxlX21hdGNoKGN0eC0+aXBjLm9zaWQsCmEzM2U2NzUxMDAzYzVh IEFsIFZpcm8gICAgICAgICAgICAyMDA4LTEyLTEwICA3MDggIAkJCQkJCQkgICAgICBmLT50eXBl LCBmLT5vcCwKOTA0NjJhNWJkMzBjNmUgUmljaGFyZCBHdXkgQnJpZ2dzIDIwMTktMDEtMzEgIDcw OSAgCQkJCQkJCSAgICAgIGYtPmxzbV9ydWxlKSkKYTMzZTY3NTEwMDNjNWEgQWwgVmlybyAgICAg ICAgICAgIDIwMDgtMTItMTAgIDcxMCAgCQkJCQkrK3Jlc3VsdDsKNmU1YTJkMWQzMjU5NjggRGFy cmVsIEdvZWRkZWwgICAgIDIwMDYtMDYtMjkgIDcxMSAgCQkJfQo2ZTVhMmQxZDMyNTk2OCBEYXJy ZWwgR29lZGRlbCAgICAgMjAwNi0wNi0yOSAgNzEyICAJCQlicmVhazsKXjFkYTE3N2U0YzNmNDEg TGludXMgVG9ydmFsZHMgICAgIDIwMDUtMDQtMTYgIDcxMyAgCQljYXNlIEFVRElUX0FSRzA6Cl4x ZGExNzdlNGMzZjQxIExpbnVzIFRvcnZhbGRzICAgICAyMDA1LTA0LTE2ICA3MTQgIAkJY2FzZSBB VURJVF9BUkcxOgpeMWRhMTc3ZTRjM2Y0MSBMaW51cyBUb3J2YWxkcyAgICAgMjAwNS0wNC0xNiAg NzE1ICAJCWNhc2UgQVVESVRfQVJHMjoKXjFkYTE3N2U0YzNmNDEgTGludXMgVG9ydmFsZHMgICAg IDIwMDUtMDQtMTYgIDcxNiAgCQljYXNlIEFVRElUX0FSRzM6Cl4xZGExNzdlNGMzZjQxIExpbnVz IFRvcnZhbGRzICAgICAyMDA1LTA0LTE2ICA3MTcgIAkJCWlmIChjdHgpCjkzMzE1ZWQ2ZGQxMmRh IEFteSBHcmlmZmlzICAgICAgICAyMDA2LTAyLTA3ICA3MTggIAkJCQlyZXN1bHQgPSBhdWRpdF9j b21wYXJhdG9yKGN0eC0+YXJndltmLT50eXBlLUFVRElUX0FSRzBdLCBmLT5vcCwgZi0+dmFsKTsK XjFkYTE3N2U0YzNmNDEgTGludXMgVG9ydmFsZHMgICAgIDIwMDUtMDQtMTYgIDcxOSAgCQkJYnJl YWs7CjVhZGM4YTZhZGM5MWM0IEFteSBHcmlmZmlzICAgICAgICAyMDA2LTA2LTE0ICA3MjAgIAkJ Y2FzZSBBVURJVF9GSUxURVJLRVk6CjVhZGM4YTZhZGM5MWM0IEFteSBHcmlmZmlzICAgICAgICAy MDA2LTA2LTE0ICA3MjEgIAkJCS8qIGlnbm9yZSB0aGlzIGZpZWxkIGZvciBmaWx0ZXJpbmcgKi8K NWFkYzhhNmFkYzkxYzQgQW15IEdyaWZmaXMgICAgICAgIDIwMDYtMDYtMTQgIDcyMiAgCQkJcmVz dWx0ID0gMTsKNWFkYzhhNmFkYzkxYzQgQW15IEdyaWZmaXMgICAgICAgIDIwMDYtMDYtMTQgIDcy MyAgCQkJYnJlYWs7CjU1NjY5YmZhMTQxYjQ4IEFsIFZpcm8gICAgICAgICAgICAyMDA2LTA4LTMx ICA3MjQgIAkJY2FzZSBBVURJVF9QRVJNOgo1NTY2OWJmYTE0MWI0OCBBbCBWaXJvICAgICAgICAg ICAgMjAwNi0wOC0zMSAgNzI1ICAJCQlyZXN1bHQgPSBhdWRpdF9tYXRjaF9wZXJtKGN0eCwgZi0+ dmFsKTsKMDIyM2ZhZDNjOThhOTUgUmljaGFyZCBHdXkgQnJpZ2dzIDIwMTktMDUtMjIgIDcyNiAg CQkJaWYgKGYtPm9wID09IEF1ZGl0X25vdF9lcXVhbCkKMDIyM2ZhZDNjOThhOTUgUmljaGFyZCBH dXkgQnJpZ2dzIDIwMTktMDUtMjIgIDcyNyAgCQkJCXJlc3VsdCA9ICFyZXN1bHQ7CjU1NjY5YmZh MTQxYjQ4IEFsIFZpcm8gICAgICAgICAgICAyMDA2LTA4LTMxICA3MjggIAkJCWJyZWFrOwo4YjY3 ZGNhOTQyMDQ3NCBBbCBWaXJvICAgICAgICAgICAgMjAwOC0wNC0yOCAgNzI5ICAJCWNhc2UgQVVE SVRfRklMRVRZUEU6CjhiNjdkY2E5NDIwNDc0IEFsIFZpcm8gICAgICAgICAgICAyMDA4LTA0LTI4 ICA3MzAgIAkJCXJlc3VsdCA9IGF1ZGl0X21hdGNoX2ZpbGV0eXBlKGN0eCwgZi0+dmFsKTsKMDIy M2ZhZDNjOThhOTUgUmljaGFyZCBHdXkgQnJpZ2dzIDIwMTktMDUtMjIgIDczMSAgCQkJaWYgKGYt Pm9wID09IEF1ZGl0X25vdF9lcXVhbCkKMDIyM2ZhZDNjOThhOTUgUmljaGFyZCBHdXkgQnJpZ2dz IDIwMTktMDUtMjIgIDczMiAgCQkJCXJlc3VsdCA9ICFyZXN1bHQ7CjhiNjdkY2E5NDIwNDc0IEFs IFZpcm8gICAgICAgICAgICAyMDA4LTA0LTI4ICA3MzMgIAkJCWJyZWFrOwowMmQ4NmE1NjhjNmQy ZCBFcmljIFBhcmlzICAgICAgICAgMjAxMi0wMS0wMyAgNzM0ICAJCWNhc2UgQVVESVRfRklFTERf Q09NUEFSRToKMDJkODZhNTY4YzZkMmQgRXJpYyBQYXJpcyAgICAgICAgIDIwMTItMDEtMDMgIDcz NSAgCQkJcmVzdWx0ID0gYXVkaXRfZmllbGRfY29tcGFyZSh0c2ssIGNyZWQsIGYsIGN0eCwgbmFt ZSk7CjAyZDg2YTU2OGM2ZDJkIEVyaWMgUGFyaXMgICAgICAgICAyMDEyLTAxLTAzICA3MzYgIAkJ CWJyZWFrOwpeMWRhMTc3ZTRjM2Y0MSBMaW51cyBUb3J2YWxkcyAgICAgMjAwNS0wNC0xNiAgNzM3 ICAJCX0KZjU2Mjk4ODM1MDM2MWIgVG9ueSBKb25lcyAgICAgICAgIDIwMTEtMDQtMjcgIDczOCAg CQlpZiAoIXJlc3VsdCkKXjFkYTE3N2U0YzNmNDEgTGludXMgVG9ydmFsZHMgICAgIDIwMDUtMDQt MTYgIDczOSAgCQkJcmV0dXJuIDA7Cl4xZGExNzdlNGMzZjQxIExpbnVzIFRvcnZhbGRzICAgICAy MDA1LTA0LTE2ICA3NDAgIAl9CjA1OTBiOTMzNWExYzcyIEFsIFZpcm8gICAgICAgICAgICAyMDA4 LTEyLTE0ICA3NDEgIAowNTkwYjkzMzVhMWM3MiBBbCBWaXJvICAgICAgICAgICAgMjAwOC0xMi0x NCAgNzQyICAJaWYgKGN0eCkgewowNTkwYjkzMzVhMWM3MiBBbCBWaXJvICAgICAgICAgICAgMjAw OC0xMi0xNCAgNzQzICAJCWlmIChydWxlLT5maWx0ZXJrZXkpIHsKMDU5MGI5MzM1YTFjNzIgQWwg VmlybyAgICAgICAgICAgIDIwMDgtMTItMTQgIDc0NCAgCQkJa2ZyZWUoY3R4LT5maWx0ZXJrZXkp Owo1YWRjOGE2YWRjOTFjNCBBbXkgR3JpZmZpcyAgICAgICAgMjAwNi0wNi0xNCAgNzQ1ICAJCQlj dHgtPmZpbHRlcmtleSA9IGtzdHJkdXAocnVsZS0+ZmlsdGVya2V5LCBHRlBfQVRPTUlDKTsKMDU5 MGI5MzM1YTFjNzIgQWwgVmlybyAgICAgICAgICAgIDIwMDgtMTItMTQgIDc0NiAgCQl9CjA1OTBi OTMzNWExYzcyIEFsIFZpcm8gICAgICAgICAgICAyMDA4LTEyLTE0ICA3NDcgIAkJY3R4LT5wcmlv ID0gcnVsZS0+cHJpbzsKMDU5MGI5MzM1YTFjNzIgQWwgVmlybyAgICAgICAgICAgIDIwMDgtMTIt MTQgIDc0OCAgCX0KXjFkYTE3N2U0YzNmNDEgTGludXMgVG9ydmFsZHMgICAgIDIwMDUtMDQtMTYg IDc0OSAgCXN3aXRjaCAocnVsZS0+YWN0aW9uKSB7CjY2YjEyYWJjODQ2ZDMxIFBhdWwgTW9vcmUg ICAgICAgICAyMDE2LTA2LTE2ICA3NTAgIAljYXNlIEFVRElUX05FVkVSOgo2MTllZDU4YWM0ZTJm YiBTZXJnZXkgTmF6YXJvdiAgICAgMjAyMS0wNi0wOCAgNzUxICAJCSpzdGF0ZSA9IEFVRElUX1NU QVRFX0RJU0FCTEVEOwo2NmIxMmFiYzg0NmQzMSBQYXVsIE1vb3JlICAgICAgICAgMjAxNi0wNi0x NiAgNzUyICAJCWJyZWFrOwo2NmIxMmFiYzg0NmQzMSBQYXVsIE1vb3JlICAgICAgICAgMjAxNi0w Ni0xNiAgNzUzICAJY2FzZSBBVURJVF9BTFdBWVM6CjYxOWVkNThhYzRlMmZiIFNlcmdleSBOYXph cm92ICAgICAyMDIxLTA2LTA4ICA3NTQgIAkJKnN0YXRlID0gQVVESVRfU1RBVEVfUkVDT1JEOwo2 NmIxMmFiYzg0NmQzMSBQYXVsIE1vb3JlICAgICAgICAgMjAxNi0wNi0xNiAgNzU1ICAJCWJyZWFr OwpeMWRhMTc3ZTRjM2Y0MSBMaW51cyBUb3J2YWxkcyAgICAgMjAwNS0wNC0xNiAgNzU2ICAJfQpe MWRhMTc3ZTRjM2Y0MSBMaW51cyBUb3J2YWxkcyAgICAgMjAwNS0wNC0xNiAgNzU3ICAJcmV0dXJu IDE7Cl4xZGExNzdlNGMzZjQxIExpbnVzIFRvcnZhbGRzICAgICAyMDA1LTA0LTE2ICA3NTggIH0K Ci0tLQowLURBWSBDSSBLZXJuZWwgVGVzdCBTZXJ2aWNlLCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRw czovL2xpc3RzLjAxLm9yZy9oeXBlcmtpdHR5L2xpc3Qva2J1aWxkLWFsbEBsaXN0cy4wMS5vcmcK CgotLQpMaW51eC1hdWRpdCBtYWlsaW5nIGxpc3QKTGludXgtYXVkaXRAcmVkaGF0LmNvbQpodHRw czovL2xpc3RtYW4ucmVkaGF0LmNvbS9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWF1ZGl0