Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ousa0-0002av-PR for pgsql-hackers@arkaria.postgresql.org; Tue, 15 Nov 2022 09:50:09 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1ousZy-0006ZP-Vy for pgsql-hackers@arkaria.postgresql.org; Tue, 15 Nov 2022 09:50:07 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ousZx-0006ZD-UK for pgsql-hackers@lists.postgresql.org; Tue, 15 Nov 2022 09:50:06 +0000 Received: from mail-wm1-x330.google.com ([2a00:1450:4864:20::330]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1ousZr-0004gj-8y for pgsql-hackers@lists.postgresql.org; Tue, 15 Nov 2022 09:50:04 +0000 Received: by mail-wm1-x330.google.com with SMTP id t1so9283772wmi.4 for ; Tue, 15 Nov 2022 01:49:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=in-reply-to:references:cc:to:from:content-language:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=GYkI62ydknEo0PTwFF8Dj2ipT6EcIS3uGNsA0p26pzE=; b=aSg1bj+yyIR5m0yS7VjH6KXwgtkvxzxRMxEF6lhci5WjMtlsXt0coNGpCwRY6scwG4 RSUOFgmt/J/wVorBefXHc+sGZMm6r/BAt9Ksm+wFrpRFefcmqAb6y/lzHSdOTvO9+APl RrlvQjnPvFB9wJDLlXu+iBdrb83HRCnGNnESTuXu4Mc0SKcJ31aRLMqDedD8hcN3twsa +hcCUrQivIpZXtUe2yvhOZ4UAqOfUZdk7B0Dr1wwPIuwRfpMvGwwEgNvIxczWBkP+EJp j3tvlOrZELWSmUffCXhqDvuGRd5D1fPUGfkw7TPcHMzgV7/k5o7GKWiRoBBoOgytjtLv AovA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:references:cc:to:from:content-language:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=GYkI62ydknEo0PTwFF8Dj2ipT6EcIS3uGNsA0p26pzE=; b=ENTzE7c2jifEc+VQVSTBn5y12/IHbza9okyeAsCL7kMKk3akfYLW5+NXIrrTUaG1K/ WjuM6KT7TwavRRX80ZSeKmU3sF9neElhiLmB3hlJuyNtEDS5Qv0tUVZ3HSZGFIFRK1tQ KA8s6zgQk+2ZeWoLaAeBE4YIOSnEEpiTdfSD14Q1jbML/2pglJ2W2Qic63d1bBwMrE4T vlX4A7PgziIk2BG4eFGDnrG1w0RxdoV+AwNNp9OSa3gIrsEKxkmMy9yjsZyipkSklwQH jsYBMJsfPgJccyYOmXTXUjs8CCMIwnzj7z1chQ7HP0loVk4Hu3hWmp4273IWHMvTpUMo 5AXQ== X-Gm-Message-State: ANoB5pnEyUfvGAtpPsBA/pwv7x3KleRChbLbYlHMp8VHHWxJX8fXg7Xy kxxoAwoZfCSmFXu1u9BsIGA= X-Google-Smtp-Source: AA0mqf4XHDVZPvo+yY4U0lJFfOpyHjvODubDCVth2IYmTMr8JBiiYyH0cKmDq6z5LWnP3g+IgPEobQ== X-Received: by 2002:a05:600c:1c9f:b0:3cf:147d:ad9a with SMTP id k31-20020a05600c1c9f00b003cf147dad9amr830995wms.33.1668505797683; Tue, 15 Nov 2022 01:49:57 -0800 (PST) Received: from [192.168.2.165] ([54.239.6.185]) by smtp.gmail.com with ESMTPSA id bg1-20020a05600c3c8100b003cfaae07f68sm22089169wmb.17.2022.11.15.01.49.56 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 15 Nov 2022 01:49:57 -0800 (PST) Content-Type: multipart/mixed; boundary="------------oKUQJAho3F2QwMEaP6tvAOH8" Message-ID: <8e8713ed-1663-f39b-effc-bd3e1632039a@gmail.com> Date: Tue, 15 Nov 2022 10:48:40 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.4.1 Subject: Re: Split index and table statistics into different types of stats Content-Language: en-US From: "Drouvot, Bertrand" To: Melanie Plageman Cc: Andres Freund , PostgreSQL Hackers References: <20221101003006.3ehvn2prai26rkrf@awork3.anarazel.de> <4cc5476f-4360-1bed-c60d-2c21adf7db13@gmail.com> <06517d27-7a81-3b60-60c4-9a92c6498981@gmail.com> In-Reply-To: <06517d27-7a81-3b60-60c4-9a92c6498981@gmail.com> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------oKUQJAho3F2QwMEaP6tvAOH8 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hi, On 11/14/22 11:36 AM, Drouvot, Bertrand wrote: > On 11/4/22 9:51 PM, Melanie Plageman wrote: >> Since you have made new parallel functions for indexes and tables for >> many of the functions in pgstat_relation.c, perhaps it makes sense to >> split it into pgstat_table.c and pgstat_index.c? > > Good point, thanks, I'll work on it. > Please find attached v4 adding pgstat_table.c and pgstat_index.c (and removing pgstat_relation.c). Regards, -- Bertrand Drouvot PostgreSQL Contributors Team RDS Open Source Databases Amazon Web Services: https://aws.amazon.com --------------oKUQJAho3F2QwMEaP6tvAOH8 Content-Type: text/plain; charset=UTF-8; name="v4-0001-split_tables_indexes_stats.patch" Content-Disposition: attachment; filename="v4-0001-split_tables_indexes_stats.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vcmVsYXRpb24uYyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vcmVsYXRpb24uYwppbmRleCAzODJhNDJmZjdkLi4y NTliZDA2YWVkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3JlbGF0 aW9uLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9yZWxhdGlvbi5jCkBAIC03 Myw3ICs3MywxMCBAQCByZWxhdGlvbl9vcGVuKE9pZCByZWxhdGlvbklkLCBMT0NLTU9ERSBs b2NrbW9kZSkKIAlpZiAoUmVsYXRpb25Vc2VzTG9jYWxCdWZmZXJzKHIpKQogCQlNeVhhY3RG bGFncyB8PSBYQUNUX0ZMQUdTX0FDQ0VTU0VEVEVNUE5BTUVTUEFDRTsKIAotCXBnc3RhdF9p bml0X3JlbGF0aW9uKHIpOworCWlmIChyLT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9J TkRFWCkKKwkJcGdzdGF0X2luaXRfaW5kZXgocik7CisJZWxzZQorCQlwZ3N0YXRfaW5pdF90 YWJsZShyKTsKIAogCXJldHVybiByOwogfQpAQCAtMTIzLDcgKzEyNiwxMCBAQCB0cnlfcmVs YXRpb25fb3BlbihPaWQgcmVsYXRpb25JZCwgTE9DS01PREUgbG9ja21vZGUpCiAJaWYgKFJl bGF0aW9uVXNlc0xvY2FsQnVmZmVycyhyKSkKIAkJTXlYYWN0RmxhZ3MgfD0gWEFDVF9GTEFH U19BQ0NFU1NFRFRFTVBOQU1FU1BBQ0U7CiAKLQlwZ3N0YXRfaW5pdF9yZWxhdGlvbihyKTsK KwlpZiAoci0+cmRfcmVsLT5yZWxraW5kID09IFJFTEtJTkRfSU5ERVgpCisJCXBnc3RhdF9p bml0X2luZGV4KHIpOworCWVsc2UKKwkJcGdzdGF0X2luaXRfdGFibGUocik7CiAKIAlyZXR1 cm4gcjsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9pbmRleC9pbmRleGFt LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaW5kZXgvaW5kZXhhbS5jCmluZGV4IGZlODBiOGIw YmEuLmExZGVmYzY4MzggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9pbmRleC9p bmRleGFtLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2luZGV4L2luZGV4YW0uYwpAQCAt NTgyLDcgKzU4Miw3IEBAIGluZGV4X2ZldGNoX2hlYXAoSW5kZXhTY2FuRGVzYyBzY2FuLCBU dXBsZVRhYmxlU2xvdCAqc2xvdCkKIAkJCQkJCQkJCSZzY2FuLT54c19oZWFwX2NvbnRpbnVl LCAmYWxsX2RlYWQpOwogCiAJaWYgKGZvdW5kKQotCQlwZ3N0YXRfY291bnRfaGVhcF9mZXRj aChzY2FuLT5pbmRleFJlbGF0aW9uKTsKKwkJcGdzdGF0X2NvdW50X2luZGV4X2ZldGNoKHNj YW4tPmluZGV4UmVsYXRpb24pOwogCiAJLyoKIAkgKiBJZiB3ZSBzY2FubmVkIGEgd2hvbGUg SE9UIGNoYWluIGFuZCBmb3VuZCBvbmx5IGRlYWQgdHVwbGVzLCB0ZWxsIGluZGV4CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL2hlYXAuYyBiL3NyYy9iYWNrZW5kL2NhdGFs b2cvaGVhcC5jCmluZGV4IDViNDljYzVhMDkuLjVmZDQyZmExODkgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvaGVh cC5jCkBAIC00MDQsNyArNDA0LDEwIEBAIGhlYXBfY3JlYXRlKGNvbnN0IGNoYXIgKnJlbG5h bWUsCiAJCQkJCQkJCQkgcmVsdGFibGVzcGFjZSk7CiAKIAkvKiBlbnN1cmUgdGhhdCBzdGF0 cyBhcmUgZHJvcHBlZCBpZiB0cmFuc2FjdGlvbiBhYm9ydHMgKi8KLQlwZ3N0YXRfY3JlYXRl X3JlbGF0aW9uKHJlbCk7CisJaWYgKHJlbC0+cmRfcmVsLT5yZWxraW5kID09IFJFTEtJTkRf SU5ERVgpCisJCXBnc3RhdF9jcmVhdGVfaW5kZXgocmVsKTsKKwllbHNlCisJCXBnc3RhdF9j cmVhdGVfdGFibGUocmVsKTsKIAogCXJldHVybiByZWw7CiB9CkBAIC0xODUzLDcgKzE4NTYs NyBAQCBoZWFwX2Ryb3Bfd2l0aF9jYXRhbG9nKE9pZCByZWxpZCkKIAkJUmVsYXRpb25Ecm9w U3RvcmFnZShyZWwpOwogCiAJLyogZW5zdXJlIHRoYXQgc3RhdHMgYXJlIGRyb3BwZWQgaWYg dHJhbnNhY3Rpb24gY29tbWl0cyAqLwotCXBnc3RhdF9kcm9wX3JlbGF0aW9uKHJlbCk7CisJ cGdzdGF0X2Ryb3BfdGFibGUocmVsKTsKIAogCS8qCiAJICogQ2xvc2UgcmVsY2FjaGUgZW50 cnksIGJ1dCAqa2VlcCogQWNjZXNzRXhjbHVzaXZlTG9jayBvbiB0aGUgcmVsYXRpb24KZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvaW5kZXguYyBiL3NyYy9iYWNrZW5kL2Nh dGFsb2cvaW5kZXguYwppbmRleCA2MWYxZDM5MjZhLi4yOGI5NGZlZjdmIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9jYXRhbG9nL2luZGV4LmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxv Zy9pbmRleC5jCkBAIC0xNzUyLDcgKzE3NTIsNyBAQCBpbmRleF9jb25jdXJyZW50bHlfc3dh cChPaWQgbmV3SW5kZXhJZCwgT2lkIG9sZEluZGV4SWQsIGNvbnN0IGNoYXIgKm9sZE5hbWUp CiAJY2hhbmdlRGVwZW5kZW5jaWVzT24oUmVsYXRpb25SZWxhdGlvbklkLCBvbGRJbmRleElk LCBuZXdJbmRleElkKTsKIAogCS8qIGNvcHkgb3ZlciBzdGF0aXN0aWNzIGZyb20gb2xkIHRv IG5ldyBpbmRleCAqLwotCXBnc3RhdF9jb3B5X3JlbGF0aW9uX3N0YXRzKG5ld0NsYXNzUmVs LCBvbGRDbGFzc1JlbCk7CisJcGdzdGF0X2NvcHlfaW5kZXhfc3RhdHMobmV3Q2xhc3NSZWws IG9sZENsYXNzUmVsKTsKIAogCS8qIENvcHkgZGF0YSBvZiBwZ19zdGF0aXN0aWMgZnJvbSB0 aGUgb2xkIGluZGV4IHRvIHRoZSBuZXcgb25lICovCiAJQ29weVN0YXRpc3RpY3Mob2xkSW5k ZXhJZCwgbmV3SW5kZXhJZCk7CkBAIC0yMzI2LDcgKzIzMjYsNyBAQCBpbmRleF9kcm9wKE9p ZCBpbmRleElkLCBib29sIGNvbmN1cnJlbnQsIGJvb2wgY29uY3VycmVudF9sb2NrX21vZGUp CiAJCVJlbGF0aW9uRHJvcFN0b3JhZ2UodXNlckluZGV4UmVsYXRpb24pOwogCiAJLyogZW5z dXJlIHRoYXQgc3RhdHMgYXJlIGRyb3BwZWQgaWYgdHJhbnNhY3Rpb24gY29tbWl0cyAqLwot CXBnc3RhdF9kcm9wX3JlbGF0aW9uKHVzZXJJbmRleFJlbGF0aW9uKTsKKwlwZ3N0YXRfZHJv cF9pbmRleCh1c2VySW5kZXhSZWxhdGlvbik7CiAKIAkvKgogCSAqIENsb3NlIGFuZCBmbHVz aCB0aGUgaW5kZXgncyByZWxjYWNoZSBlbnRyeSwgdG8gZW5zdXJlIHJlbGNhY2hlIGRvZXNu J3QKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbCBi L3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbAppbmRleCAyZDgxMDRiMDkw Li42ZjUxNTNiZjY2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92 aWV3cy5zcWwKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCkBA IC02NTUsMTMgKzY1NSwxMyBAQCBDUkVBVEUgVklFVyBwZ19zdGF0X2FsbF90YWJsZXMgQVMK ICAgICAgICAgICAgIEMub2lkIEFTIHJlbGlkLAogICAgICAgICAgICAgTi5uc3BuYW1lIEFT IHNjaGVtYW5hbWUsCiAgICAgICAgICAgICBDLnJlbG5hbWUgQVMgcmVsbmFtZSwKLSAgICAg ICAgICAgIHBnX3N0YXRfZ2V0X251bXNjYW5zKEMub2lkKSBBUyBzZXFfc2NhbiwKLSAgICAg ICAgICAgIHBnX3N0YXRfZ2V0X2xhc3RzY2FuKEMub2lkKSBBUyBsYXN0X3NlcV9zY2FuLAot ICAgICAgICAgICAgcGdfc3RhdF9nZXRfdHVwbGVzX3JldHVybmVkKEMub2lkKSBBUyBzZXFf dHVwX3JlYWQsCi0gICAgICAgICAgICBzdW0ocGdfc3RhdF9nZXRfbnVtc2NhbnMoSS5pbmRl eHJlbGlkKSk6OmJpZ2ludCBBUyBpZHhfc2NhbiwKLSAgICAgICAgICAgIG1heChwZ19zdGF0 X2dldF9sYXN0c2NhbihJLmluZGV4cmVsaWQpKSBBUyBsYXN0X2lkeF9zY2FuLAotICAgICAg ICAgICAgc3VtKHBnX3N0YXRfZ2V0X3R1cGxlc19mZXRjaGVkKEkuaW5kZXhyZWxpZCkpOjpi aWdpbnQgKwotICAgICAgICAgICAgcGdfc3RhdF9nZXRfdHVwbGVzX2ZldGNoZWQoQy5vaWQp IEFTIGlkeF90dXBfZmV0Y2gsCisgICAgICAgICAgICBwZ19zdGF0X2dldF90YWJsZV9udW1z Y2FucyhDLm9pZCkgQVMgc2VxX3NjYW4sCisgICAgICAgICAgICBwZ19zdGF0X2dldF90YWJs ZV9sYXN0c2NhbihDLm9pZCkgQVMgbGFzdF9zZXFfc2NhbiwKKyAgICAgICAgICAgIHBnX3N0 YXRfZ2V0X3RhYmxlX3R1cGxlc19yZXR1cm5lZChDLm9pZCkgQVMgc2VxX3R1cF9yZWFkLAor ICAgICAgICAgICAgc3VtKHBnX3N0YXRfZ2V0X2luZGV4X251bXNjYW5zKEkuaW5kZXhyZWxp ZCkpOjpiaWdpbnQgQVMgaWR4X3NjYW4sCisgICAgICAgICAgICBtYXgocGdfc3RhdF9nZXRf aW5kZXhfbGFzdHNjYW4oSS5pbmRleHJlbGlkKSkgQVMgbGFzdF9pZHhfc2NhbiwKKyAgICAg ICAgICAgIHN1bShwZ19zdGF0X2dldF9pbmRleF90dXBsZXNfZmV0Y2hlZChJLmluZGV4cmVs aWQpKTo6YmlnaW50ICsKKyAgICAgICAgICAgIHBnX3N0YXRfZ2V0X3RhYmxlX3R1cGxlc19m ZXRjaGVkKEMub2lkKSBBUyBpZHhfdHVwX2ZldGNoLAogICAgICAgICAgICAgcGdfc3RhdF9n ZXRfdHVwbGVzX2luc2VydGVkKEMub2lkKSBBUyBuX3R1cF9pbnMsCiAgICAgICAgICAgICBw Z19zdGF0X2dldF90dXBsZXNfdXBkYXRlZChDLm9pZCkgQVMgbl90dXBfdXBkLAogICAgICAg ICAgICAgcGdfc3RhdF9nZXRfdHVwbGVzX2RlbGV0ZWQoQy5vaWQpIEFTIG5fdHVwX2RlbCwK QEAgLTY4OSw5ICs2ODksOSBAQCBDUkVBVEUgVklFVyBwZ19zdGF0X3hhY3RfYWxsX3RhYmxl cyBBUwogICAgICAgICAgICAgQy5vaWQgQVMgcmVsaWQsCiAgICAgICAgICAgICBOLm5zcG5h bWUgQVMgc2NoZW1hbmFtZSwKICAgICAgICAgICAgIEMucmVsbmFtZSBBUyByZWxuYW1lLAot ICAgICAgICAgICAgcGdfc3RhdF9nZXRfeGFjdF9udW1zY2FucyhDLm9pZCkgQVMgc2VxX3Nj YW4sCisgICAgICAgICAgICBwZ19zdGF0X2dldF90YWJsZV94YWN0X251bXNjYW5zKEMub2lk KSBBUyBzZXFfc2NhbiwKICAgICAgICAgICAgIHBnX3N0YXRfZ2V0X3hhY3RfdHVwbGVzX3Jl dHVybmVkKEMub2lkKSBBUyBzZXFfdHVwX3JlYWQsCi0gICAgICAgICAgICBzdW0ocGdfc3Rh dF9nZXRfeGFjdF9udW1zY2FucyhJLmluZGV4cmVsaWQpKTo6YmlnaW50IEFTIGlkeF9zY2Fu LAorICAgICAgICAgICAgc3VtKHBnX3N0YXRfZ2V0X2luZGV4X3hhY3RfbnVtc2NhbnMoSS5p bmRleHJlbGlkKSk6OmJpZ2ludCBBUyBpZHhfc2NhbiwKICAgICAgICAgICAgIHN1bShwZ19z dGF0X2dldF94YWN0X3R1cGxlc19mZXRjaGVkKEkuaW5kZXhyZWxpZCkpOjpiaWdpbnQgKwog ICAgICAgICAgICAgcGdfc3RhdF9nZXRfeGFjdF90dXBsZXNfZmV0Y2hlZChDLm9pZCkgQVMg aWR4X3R1cF9mZXRjaCwKICAgICAgICAgICAgIHBnX3N0YXRfZ2V0X3hhY3RfdHVwbGVzX2lu c2VydGVkKEMub2lkKSBBUyBuX3R1cF9pbnMsCkBAIC03MjksMzEgKzcyOSwzMSBAQCBDUkVB VEUgVklFVyBwZ19zdGF0aW9fYWxsX3RhYmxlcyBBUwogICAgICAgICAgICAgQy5vaWQgQVMg cmVsaWQsCiAgICAgICAgICAgICBOLm5zcG5hbWUgQVMgc2NoZW1hbmFtZSwKICAgICAgICAg ICAgIEMucmVsbmFtZSBBUyByZWxuYW1lLAotICAgICAgICAgICAgcGdfc3RhdF9nZXRfYmxv Y2tzX2ZldGNoZWQoQy5vaWQpIC0KLSAgICAgICAgICAgICAgICAgICAgcGdfc3RhdF9nZXRf YmxvY2tzX2hpdChDLm9pZCkgQVMgaGVhcF9ibGtzX3JlYWQsCi0gICAgICAgICAgICBwZ19z dGF0X2dldF9ibG9ja3NfaGl0KEMub2lkKSBBUyBoZWFwX2Jsa3NfaGl0LAorICAgICAgICAg ICAgcGdfc3RhdF9nZXRfdGFibGVfYmxvY2tzX2ZldGNoZWQoQy5vaWQpIC0KKyAgICAgICAg ICAgICAgICAgICAgcGdfc3RhdF9nZXRfdGFibGVfYmxvY2tzX2hpdChDLm9pZCkgQVMgaGVh cF9ibGtzX3JlYWQsCisgICAgICAgICAgICBwZ19zdGF0X2dldF90YWJsZV9ibG9ja3NfaGl0 KEMub2lkKSBBUyBoZWFwX2Jsa3NfaGl0LAogICAgICAgICAgICAgSS5pZHhfYmxrc19yZWFk IEFTIGlkeF9ibGtzX3JlYWQsCiAgICAgICAgICAgICBJLmlkeF9ibGtzX2hpdCBBUyBpZHhf Ymxrc19oaXQsCi0gICAgICAgICAgICBwZ19zdGF0X2dldF9ibG9ja3NfZmV0Y2hlZChULm9p ZCkgLQotICAgICAgICAgICAgICAgICAgICBwZ19zdGF0X2dldF9ibG9ja3NfaGl0KFQub2lk KSBBUyB0b2FzdF9ibGtzX3JlYWQsCi0gICAgICAgICAgICBwZ19zdGF0X2dldF9ibG9ja3Nf aGl0KFQub2lkKSBBUyB0b2FzdF9ibGtzX2hpdCwKKyAgICAgICAgICAgIHBnX3N0YXRfZ2V0 X3RhYmxlX2Jsb2Nrc19mZXRjaGVkKFQub2lkKSAtCisgICAgICAgICAgICAgICAgICAgIHBn X3N0YXRfZ2V0X3RhYmxlX2Jsb2Nrc19oaXQoVC5vaWQpIEFTIHRvYXN0X2Jsa3NfcmVhZCwK KyAgICAgICAgICAgIHBnX3N0YXRfZ2V0X3RhYmxlX2Jsb2Nrc19oaXQoVC5vaWQpIEFTIHRv YXN0X2Jsa3NfaGl0LAogICAgICAgICAgICAgWC5pZHhfYmxrc19yZWFkIEFTIHRpZHhfYmxr c19yZWFkLAogICAgICAgICAgICAgWC5pZHhfYmxrc19oaXQgQVMgdGlkeF9ibGtzX2hpdAog ICAgIEZST00gcGdfY2xhc3MgQyBMRUZUIEpPSU4KICAgICAgICAgICAgIHBnX2NsYXNzIFQg T04gQy5yZWx0b2FzdHJlbGlkID0gVC5vaWQKICAgICAgICAgICAgIExFRlQgSk9JTiBwZ19u YW1lc3BhY2UgTiBPTiAoTi5vaWQgPSBDLnJlbG5hbWVzcGFjZSkKICAgICAgICAgICAgIExF RlQgSk9JTiBMQVRFUkFMICgKLSAgICAgICAgICAgICAgU0VMRUNUIHN1bShwZ19zdGF0X2dl dF9ibG9ja3NfZmV0Y2hlZChpbmRleHJlbGlkKSAtCi0gICAgICAgICAgICAgICAgICAgICAg ICAgcGdfc3RhdF9nZXRfYmxvY2tzX2hpdChpbmRleHJlbGlkKSk6OmJpZ2ludAorICAgICAg ICAgICAgICBTRUxFQ1Qgc3VtKHBnX3N0YXRfZ2V0X2luZGV4X2Jsb2Nrc19mZXRjaGVkKGlu ZGV4cmVsaWQpIC0KKyAgICAgICAgICAgICAgICAgICAgICAgICBwZ19zdGF0X2dldF9pbmRl eF9ibG9ja3NfaGl0KGluZGV4cmVsaWQpKTo6YmlnaW50CiAgICAgICAgICAgICAgICAgICAg ICBBUyBpZHhfYmxrc19yZWFkLAotICAgICAgICAgICAgICAgICAgICAgc3VtKHBnX3N0YXRf Z2V0X2Jsb2Nrc19oaXQoaW5kZXhyZWxpZCkpOjpiaWdpbnQKKyAgICAgICAgICAgICAgICAg ICAgIHN1bShwZ19zdGF0X2dldF9pbmRleF9ibG9ja3NfaGl0KGluZGV4cmVsaWQpKTo6Ymln aW50CiAgICAgICAgICAgICAgICAgICAgICBBUyBpZHhfYmxrc19oaXQKICAgICAgICAgICAg ICAgRlJPTSBwZ19pbmRleCBXSEVSRSBpbmRyZWxpZCA9IEMub2lkICkgSSBPTiB0cnVlCiAg ICAgICAgICAgICBMRUZUIEpPSU4gTEFURVJBTCAoCi0gICAgICAgICAgICAgIFNFTEVDVCBz dW0ocGdfc3RhdF9nZXRfYmxvY2tzX2ZldGNoZWQoaW5kZXhyZWxpZCkgLQotICAgICAgICAg ICAgICAgICAgICAgICAgIHBnX3N0YXRfZ2V0X2Jsb2Nrc19oaXQoaW5kZXhyZWxpZCkpOjpi aWdpbnQKKyAgICAgICAgICAgICAgU0VMRUNUIHN1bShwZ19zdGF0X2dldF9pbmRleF9ibG9j a3NfZmV0Y2hlZChpbmRleHJlbGlkKSAtCisgICAgICAgICAgICAgICAgICAgICAgICAgcGdf c3RhdF9nZXRfaW5kZXhfYmxvY2tzX2hpdChpbmRleHJlbGlkKSk6OmJpZ2ludAogICAgICAg ICAgICAgICAgICAgICAgQVMgaWR4X2Jsa3NfcmVhZCwKLSAgICAgICAgICAgICAgICAgICAg IHN1bShwZ19zdGF0X2dldF9ibG9ja3NfaGl0KGluZGV4cmVsaWQpKTo6YmlnaW50CisgICAg ICAgICAgICAgICAgICAgICBzdW0ocGdfc3RhdF9nZXRfaW5kZXhfYmxvY2tzX2hpdChpbmRl eHJlbGlkKSk6OmJpZ2ludAogICAgICAgICAgICAgICAgICAgICAgQVMgaWR4X2Jsa3NfaGl0 CiAgICAgICAgICAgICAgIEZST00gcGdfaW5kZXggV0hFUkUgaW5kcmVsaWQgPSBULm9pZCAp IFggT04gdHJ1ZQogICAgIFdIRVJFIEMucmVsa2luZCBJTiAoJ3InLCAndCcsICdtJyk7CkBA IC03NzUsMTAgKzc3NSwxMCBAQCBDUkVBVEUgVklFVyBwZ19zdGF0X2FsbF9pbmRleGVzIEFT CiAgICAgICAgICAgICBOLm5zcG5hbWUgQVMgc2NoZW1hbmFtZSwKICAgICAgICAgICAgIEMu cmVsbmFtZSBBUyByZWxuYW1lLAogICAgICAgICAgICAgSS5yZWxuYW1lIEFTIGluZGV4cmVs bmFtZSwKLSAgICAgICAgICAgIHBnX3N0YXRfZ2V0X251bXNjYW5zKEkub2lkKSBBUyBpZHhf c2NhbiwKLSAgICAgICAgICAgIHBnX3N0YXRfZ2V0X2xhc3RzY2FuKEkub2lkKSBBUyBsYXN0 X2lkeF9zY2FuLAotICAgICAgICAgICAgcGdfc3RhdF9nZXRfdHVwbGVzX3JldHVybmVkKEku b2lkKSBBUyBpZHhfdHVwX3JlYWQsCi0gICAgICAgICAgICBwZ19zdGF0X2dldF90dXBsZXNf ZmV0Y2hlZChJLm9pZCkgQVMgaWR4X3R1cF9mZXRjaAorICAgICAgICAgICAgcGdfc3RhdF9n ZXRfaW5kZXhfbnVtc2NhbnMoSS5vaWQpIEFTIGlkeF9zY2FuLAorICAgICAgICAgICAgcGdf c3RhdF9nZXRfaW5kZXhfbGFzdHNjYW4oSS5vaWQpIEFTIGxhc3RfaWR4X3NjYW4sCisgICAg ICAgICAgICBwZ19zdGF0X2dldF9pbmRleF90dXBsZXNfcmV0dXJuZWQoSS5vaWQpIEFTIGlk eF90dXBfcmVhZCwKKyAgICAgICAgICAgIHBnX3N0YXRfZ2V0X2luZGV4X3R1cGxlc19mZXRj aGVkKEkub2lkKSBBUyBpZHhfdHVwX2ZldGNoCiAgICAgRlJPTSBwZ19jbGFzcyBDIEpPSU4K ICAgICAgICAgICAgIHBnX2luZGV4IFggT04gQy5vaWQgPSBYLmluZHJlbGlkIEpPSU4KICAg ICAgICAgICAgIHBnX2NsYXNzIEkgT04gSS5vaWQgPSBYLmluZGV4cmVsaWQKQEAgLTgwMiw5 ICs4MDIsOSBAQCBDUkVBVEUgVklFVyBwZ19zdGF0aW9fYWxsX2luZGV4ZXMgQVMKICAgICAg ICAgICAgIE4ubnNwbmFtZSBBUyBzY2hlbWFuYW1lLAogICAgICAgICAgICAgQy5yZWxuYW1l IEFTIHJlbG5hbWUsCiAgICAgICAgICAgICBJLnJlbG5hbWUgQVMgaW5kZXhyZWxuYW1lLAot ICAgICAgICAgICAgcGdfc3RhdF9nZXRfYmxvY2tzX2ZldGNoZWQoSS5vaWQpIC0KLSAgICAg ICAgICAgICAgICAgICAgcGdfc3RhdF9nZXRfYmxvY2tzX2hpdChJLm9pZCkgQVMgaWR4X2Js a3NfcmVhZCwKLSAgICAgICAgICAgIHBnX3N0YXRfZ2V0X2Jsb2Nrc19oaXQoSS5vaWQpIEFT IGlkeF9ibGtzX2hpdAorICAgICAgICAgICAgcGdfc3RhdF9nZXRfaW5kZXhfYmxvY2tzX2Zl dGNoZWQoSS5vaWQpIC0KKyAgICAgICAgICAgICAgICAgICAgcGdfc3RhdF9nZXRfaW5kZXhf YmxvY2tzX2hpdChJLm9pZCkgQVMgaWR4X2Jsa3NfcmVhZCwKKyAgICAgICAgICAgIHBnX3N0 YXRfZ2V0X2luZGV4X2Jsb2Nrc19oaXQoSS5vaWQpIEFTIGlkeF9ibGtzX2hpdAogICAgIEZS T00gcGdfY2xhc3MgQyBKT0lOCiAgICAgICAgICAgICBwZ19pbmRleCBYIE9OIEMub2lkID0g WC5pbmRyZWxpZCBKT0lOCiAgICAgICAgICAgICBwZ19jbGFzcyBJIE9OIEkub2lkID0gWC5p bmRleHJlbGlkCkBAIC04MjYsOSArODI2LDkgQEAgQ1JFQVRFIFZJRVcgcGdfc3RhdGlvX2Fs bF9zZXF1ZW5jZXMgQVMKICAgICAgICAgICAgIEMub2lkIEFTIHJlbGlkLAogICAgICAgICAg ICAgTi5uc3BuYW1lIEFTIHNjaGVtYW5hbWUsCiAgICAgICAgICAgICBDLnJlbG5hbWUgQVMg cmVsbmFtZSwKLSAgICAgICAgICAgIHBnX3N0YXRfZ2V0X2Jsb2Nrc19mZXRjaGVkKEMub2lk KSAtCi0gICAgICAgICAgICAgICAgICAgIHBnX3N0YXRfZ2V0X2Jsb2Nrc19oaXQoQy5vaWQp IEFTIGJsa3NfcmVhZCwKLSAgICAgICAgICAgIHBnX3N0YXRfZ2V0X2Jsb2Nrc19oaXQoQy5v aWQpIEFTIGJsa3NfaGl0CisgICAgICAgICAgICBwZ19zdGF0X2dldF9pbmRleF9ibG9ja3Nf ZmV0Y2hlZChDLm9pZCkgLQorICAgICAgICAgICAgICAgICAgICBwZ19zdGF0X2dldF90YWJs ZV9ibG9ja3NfaGl0KEMub2lkKSBBUyBibGtzX3JlYWQsCisgICAgICAgICAgICBwZ19zdGF0 X2dldF90YWJsZV9ibG9ja3NfaGl0KEMub2lkKSBBUyBibGtzX2hpdAogICAgIEZST00gcGdf Y2xhc3MgQwogICAgICAgICAgICAgTEVGVCBKT0lOIHBnX25hbWVzcGFjZSBOIE9OIChOLm9p ZCA9IEMucmVsbmFtZXNwYWNlKQogICAgIFdIRVJFIEMucmVsa2luZCA9ICdTJzsKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvYnVmZmVyL2J1Zm1nci5jIGIvc3JjL2JhY2tl bmQvc3RvcmFnZS9idWZmZXIvYnVmbWdyLmMKaW5kZXggNzNkMzBiZjYxOS4uZjFhN2E4YWE4 ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9idWZmZXIvYnVmbWdyLmMKKysr IGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9idWZmZXIvYnVmbWdyLmMKQEAgLTc3NiwxMSArNzc2 LDE5IEBAIFJlYWRCdWZmZXJFeHRlbmRlZChSZWxhdGlvbiByZWxuLCBGb3JrTnVtYmVyIGZv cmtOdW0sIEJsb2NrTnVtYmVyIGJsb2NrTnVtLAogCSAqIFJlYWQgdGhlIGJ1ZmZlciwgYW5k IHVwZGF0ZSBwZ3N0YXQgY291bnRlcnMgdG8gcmVmbGVjdCBhIGNhY2hlIGhpdCBvcgogCSAq IG1pc3MuCiAJICovCi0JcGdzdGF0X2NvdW50X2J1ZmZlcl9yZWFkKHJlbG4pOworCWlmIChy ZWxuLT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9JTkRFWCkKKwkJcGdzdGF0X2NvdW50 X2luZGV4X2J1ZmZlcl9yZWFkKHJlbG4pOworCWVsc2UKKwkJcGdzdGF0X2NvdW50X3RhYmxl X2J1ZmZlcl9yZWFkKHJlbG4pOwogCWJ1ZiA9IFJlYWRCdWZmZXJfY29tbW9uKFJlbGF0aW9u R2V0U21ncihyZWxuKSwgcmVsbi0+cmRfcmVsLT5yZWxwZXJzaXN0ZW5jZSwKIAkJCQkJCQlm b3JrTnVtLCBibG9ja051bSwgbW9kZSwgc3RyYXRlZ3ksICZoaXQpOwogCWlmIChoaXQpCi0J CXBnc3RhdF9jb3VudF9idWZmZXJfaGl0KHJlbG4pOworCXsKKwkJaWYgKHJlbG4tPnJkX3Jl bC0+cmVsa2luZCA9PSBSRUxLSU5EX0lOREVYKQorCQkJcGdzdGF0X2NvdW50X2luZGV4X2J1 ZmZlcl9oaXQocmVsbik7CisJCWVsc2UKKwkJCXBnc3RhdF9jb3VudF90YWJsZV9idWZmZXJf aGl0KHJlbG4pOworCX0KIAlyZXR1cm4gYnVmOwogfQogCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC91dGlscy9hY3Rpdml0eS9NYWtlZmlsZSBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2 aXR5L01ha2VmaWxlCmluZGV4IGEyZTg1MDdmZDYuLjc0NDFmNGNlODUgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L01ha2VmaWxlCisrKyBiL3NyYy9iYWNrZW5k L3V0aWxzL2FjdGl2aXR5L01ha2VmaWxlCkBAIC0yMiwxMSArMjIsMTIgQEAgT0JKUyA9IFwK IAlwZ3N0YXRfY2hlY2twb2ludGVyLm8gXAogCXBnc3RhdF9kYXRhYmFzZS5vIFwKIAlwZ3N0 YXRfZnVuY3Rpb24ubyBcCi0JcGdzdGF0X3JlbGF0aW9uLm8gXAorCXBnc3RhdF9pbmRleC5v IFwKIAlwZ3N0YXRfcmVwbHNsb3QubyBcCiAJcGdzdGF0X3NobWVtLm8gXAogCXBnc3RhdF9z bHJ1Lm8gXAogCXBnc3RhdF9zdWJzY3JpcHRpb24ubyBcCisJcGdzdGF0X3RhYmxlLm8gXAog CXBnc3RhdF93YWwubyBcCiAJcGdzdGF0X3hhY3QubyBcCiAJd2FpdF9ldmVudC5vCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9tZXNvbi5idWlsZCBiL3NyYy9i YWNrZW5kL3V0aWxzL2FjdGl2aXR5L21lc29uLmJ1aWxkCmluZGV4IDViM2I1NThhNjcuLmU2 YmYzYzU5YjYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L21lc29u LmJ1aWxkCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L21lc29uLmJ1aWxkCkBA IC03LDExICs3LDEyIEBAIGJhY2tlbmRfc291cmNlcyArPSBmaWxlcygKICAgJ3Bnc3RhdF9j aGVja3BvaW50ZXIuYycsCiAgICdwZ3N0YXRfZGF0YWJhc2UuYycsCiAgICdwZ3N0YXRfZnVu Y3Rpb24uYycsCi0gICdwZ3N0YXRfcmVsYXRpb24uYycsCisgICdwZ3N0YXRfaW5kZXguYycs CiAgICdwZ3N0YXRfcmVwbHNsb3QuYycsCiAgICdwZ3N0YXRfc2htZW0uYycsCiAgICdwZ3N0 YXRfc2xydS5jJywKICAgJ3Bnc3RhdF9zdWJzY3JpcHRpb24uYycsCisgICdwZ3N0YXRfdGFi bGUuYycsCiAgICdwZ3N0YXRfd2FsLmMnLAogICAncGdzdGF0X3hhY3QuYycsCiAgICd3YWl0 X2V2ZW50LmMnLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdz dGF0LmMgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXQuYwppbmRleCAxZWJl M2JiZjI5Li5kNDlhNWVhNGJiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hY3Rp dml0eS9wZ3N0YXQuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXQu YwpAQCAtNzIsMTAgKzcyLDExIEBACiAgKiAtIHBnc3RhdF9jaGVja3BvaW50ZXIuYwogICog LSBwZ3N0YXRfZGF0YWJhc2UuYwogICogLSBwZ3N0YXRfZnVuY3Rpb24uYwotICogLSBwZ3N0 YXRfcmVsYXRpb24uYworICogLSBwZ3N0YXRfaW5kZXguYwogICogLSBwZ3N0YXRfcmVwbHNs b3QuYwogICogLSBwZ3N0YXRfc2xydS5jCiAgKiAtIHBnc3RhdF9zdWJzY3JpcHRpb24uYwor ICogLSBwZ3N0YXRfdGFibGUuYwogICogLSBwZ3N0YXRfd2FsLmMKICAqCiAgKiBXaGVuZXZl ciBwb3NzaWJsZSBpbmZyYXN0cnVjdHVyZSBmaWxlcyBzaG91bGQgbm90IGNvbnRhaW4gY29k ZSByZWxhdGVkIHRvCkBAIC0yNjksMTggKzI3MCwzMiBAQCBzdGF0aWMgY29uc3QgUGdTdGF0 X0tpbmRJbmZvIHBnc3RhdF9raW5kX2luZm9zW1BHU1RBVF9OVU1fS0lORFNdID0gewogCQku cmVzZXRfdGltZXN0YW1wX2NiID0gcGdzdGF0X2RhdGFiYXNlX3Jlc2V0X3RpbWVzdGFtcF9j YiwKIAl9LAogCi0JW1BHU1RBVF9LSU5EX1JFTEFUSU9OXSA9IHsKLQkJLm5hbWUgPSAicmVs YXRpb24iLAorCVtQR1NUQVRfS0lORF9UQUJMRV0gPSB7CisJCS5uYW1lID0gInRhYmxlIiwK IAogCQkuZml4ZWRfYW1vdW50ID0gZmFsc2UsCiAKLQkJLnNoYXJlZF9zaXplID0gc2l6ZW9m KFBnU3RhdFNoYXJlZF9SZWxhdGlvbiksCi0JCS5zaGFyZWRfZGF0YV9vZmYgPSBvZmZzZXRv ZihQZ1N0YXRTaGFyZWRfUmVsYXRpb24sIHN0YXRzKSwKLQkJLnNoYXJlZF9kYXRhX2xlbiA9 IHNpemVvZigoKFBnU3RhdFNoYXJlZF9SZWxhdGlvbiAqKSAwKS0+c3RhdHMpLAorCQkuc2hh cmVkX3NpemUgPSBzaXplb2YoUGdTdGF0U2hhcmVkX1RhYmxlKSwKKwkJLnNoYXJlZF9kYXRh X29mZiA9IG9mZnNldG9mKFBnU3RhdFNoYXJlZF9UYWJsZSwgc3RhdHMpLAorCQkuc2hhcmVk X2RhdGFfbGVuID0gc2l6ZW9mKCgoUGdTdGF0U2hhcmVkX1RhYmxlICopIDApLT5zdGF0cyks CiAJCS5wZW5kaW5nX3NpemUgPSBzaXplb2YoUGdTdGF0X1RhYmxlU3RhdHVzKSwKIAotCQku Zmx1c2hfcGVuZGluZ19jYiA9IHBnc3RhdF9yZWxhdGlvbl9mbHVzaF9jYiwKLQkJLmRlbGV0 ZV9wZW5kaW5nX2NiID0gcGdzdGF0X3JlbGF0aW9uX2RlbGV0ZV9wZW5kaW5nX2NiLAorCQku Zmx1c2hfcGVuZGluZ19jYiA9IHBnc3RhdF90YWJsZV9mbHVzaF9jYiwKKwkJLmRlbGV0ZV9w ZW5kaW5nX2NiID0gcGdzdGF0X3RhYmxlX2RlbGV0ZV9wZW5kaW5nX2NiLAorCX0sCisKKwlb UEdTVEFUX0tJTkRfSU5ERVhdID0geworCQkubmFtZSA9ICJpbmRleCIsCisKKwkJLmZpeGVk X2Ftb3VudCA9IGZhbHNlLAorCisJCS5zaGFyZWRfc2l6ZSA9IHNpemVvZihQZ1N0YXRTaGFy ZWRfSW5kZXgpLAorCQkuc2hhcmVkX2RhdGFfb2ZmID0gb2Zmc2V0b2YoUGdTdGF0U2hhcmVk X0luZGV4LCBzdGF0cyksCisJCS5zaGFyZWRfZGF0YV9sZW4gPSBzaXplb2YoKChQZ1N0YXRT aGFyZWRfSW5kZXggKikgMCktPnN0YXRzKSwKKwkJLnBlbmRpbmdfc2l6ZSA9IHNpemVvZihQ Z1N0YXRfSW5kZXhTdGF0dXMpLAorCisJCS5mbHVzaF9wZW5kaW5nX2NiID0gcGdzdGF0X2lu ZGV4X2ZsdXNoX2NiLAorCQkuZGVsZXRlX3BlbmRpbmdfY2IgPSBwZ3N0YXRfaW5kZXhfZGVs ZXRlX3BlbmRpbmdfY2IsCiAJfSwKIAogCVtQR1NUQVRfS0lORF9GVU5DVElPTl0gPSB7CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfaW5kZXguYyBi L3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9pbmRleC5jCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmUwN2Q4ZGJmMjEKLS0tIC9kZXYvbnVsbAor KysgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfaW5kZXguYwpAQCAtMCww ICsxLDMwNiBAQAorLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHBnc3RhdF9pbmRl eC5jCisgKgkgIEltcGxlbWVudGF0aW9uIG9mIGluZGV4IHN0YXRpc3RpY3MuCisgKgorICog VGhpcyBmaWxlIGNvbnRhaW5zIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBmdW5jdGlvbiBpbmRl eC4gSXQgaXMga2VwdAorICogc2VwYXJhdGUgZnJvbSBwZ3N0YXQuYyB0byBlbmZvcmNlIHRo ZSBsaW5lIGJldHdlZW4gdGhlIHN0YXRpc3RpY3MgYWNjZXNzIC8KKyAqIHN0b3JhZ2UgaW1w bGVtZW50YXRpb24gYW5kIHRoZSBkZXRhaWxzIGFib3V0IGluZGl2aWR1YWwgdHlwZXMgb2YK KyAqIHN0YXRpc3RpY3MuCisgKgorICogQ29weXJpZ2h0IChjKSAyMDAxLTIwMjIsIFBvc3Rn cmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKgorICogSURFTlRJRklDQVRJT04K KyAqCSAgc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X2luZGV4LmMKKyAqIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyAqLworCisjaW5jbHVkZSAicG9zdGdyZXMuaCIKKworI2lu Y2x1ZGUgImFjY2Vzcy94YWN0LmgiCisjaW5jbHVkZSAidXRpbHMvcGdzdGF0X2ludGVybmFs LmgiCisjaW5jbHVkZSAidXRpbHMvcmVsLmgiCisKK3N0YXRpYyBQZ1N0YXRfSW5kZXhTdGF0 dXMgKnBnc3RhdF9wcmVwX2luZGV4X3BlbmRpbmcoT2lkIHJlbF9pZCwgYm9vbCBpc3NoYXJl ZCk7CisKKy8qCisgKiBDb3B5IHN0YXRzIGJldHdlZW4gaW5kZXhlcy4gVGhpcyBpcyB1c2Vk IGZvciB0aGluZ3MgbGlrZSBSRUlOREVYCisgKiBDT05DVVJSRU5UTFkuCisgKi8KK3ZvaWQK K3Bnc3RhdF9jb3B5X2luZGV4X3N0YXRzKFJlbGF0aW9uIGRzdCwgUmVsYXRpb24gc3JjKQor eworCVBnU3RhdF9TdGF0SW5kRW50cnkgKnNyY3N0YXRzOworCVBnU3RhdFNoYXJlZF9JbmRl eCAqZHN0c2hzdGF0czsKKwlQZ1N0YXRfRW50cnlSZWYgKmRzdF9yZWY7CisKKwlzcmNzdGF0 cyA9IHBnc3RhdF9mZXRjaF9zdGF0X2luZGVudHJ5X2V4dChzcmMtPnJkX3JlbC0+cmVsaXNz aGFyZWQsCisJCQkJCQkJCQkJCSAgUmVsYXRpb25HZXRSZWxpZChzcmMpKTsKKwlpZiAoIXNy Y3N0YXRzKQorCQlyZXR1cm47CisKKwlkc3RfcmVmID0gcGdzdGF0X2dldF9lbnRyeV9yZWZf bG9ja2VkKFBHU1RBVF9LSU5EX0lOREVYLAorCQkJCQkJCQkJCSAgZHN0LT5yZF9yZWwtPnJl bGlzc2hhcmVkID8gSW52YWxpZE9pZCA6IE15RGF0YWJhc2VJZCwKKwkJCQkJCQkJCQkgIFJl bGF0aW9uR2V0UmVsaWQoZHN0KSwKKwkJCQkJCQkJCQkgIGZhbHNlKTsKKworCWRzdHNoc3Rh dHMgPSAoUGdTdGF0U2hhcmVkX0luZGV4ICopIGRzdF9yZWYtPnNoYXJlZF9zdGF0czsKKwlk c3RzaHN0YXRzLT5zdGF0cyA9ICpzcmNzdGF0czsKKworCXBnc3RhdF91bmxvY2tfZW50cnko ZHN0X3JlZik7Cit9CisKKy8qCisgKiBJbml0aWFsaXplIGEgcmVsY2FjaGUgZW50cnkgdG8g Y291bnQgYWNjZXNzIHN0YXRpc3RpY3MuICBDYWxsZWQgd2hlbmV2ZXIgYW4KKyAqIGluZGV4 IGlzIG9wZW5lZC4KKyAqCisgKiBXZSBhc3N1bWUgdGhhdCBhIHJlbGNhY2hlIGVudHJ5J3Mg cGdzdGF0aW5kX2luZm8gZmllbGQgaXMgemVyb2VkIGJ5IHJlbGNhY2hlLmMKKyAqIHdoZW4g dGhlIHJlbGNhY2hlIGVudHJ5IGlzIG1hZGU7IHRoZXJlYWZ0ZXIgaXQgaXMgbG9uZy1saXZl ZCBkYXRhLgorICoKKyAqIFRoaXMgZG9lcyBub3QgY3JlYXRlIGEgcmVmZXJlbmNlIHRvIGEg c3RhdHMgZW50cnkgaW4gc2hhcmVkIG1lbW9yeSwgbm9yCisgKiBhbGxvY2F0ZSBtZW1vcnkg Zm9yIHRoZSBwZW5kaW5nIHN0YXRzLiBUaGF0IGhhcHBlbnMgaW4KKyAqIHBnc3RhdF9hc3Nv Y19pbmRleCgpLgorICovCit2b2lkCitwZ3N0YXRfaW5pdF9pbmRleChSZWxhdGlvbiByZWwp Cit7CisJLyoKKwkgKiBXZSBvbmx5IGNvdW50IHN0YXRzIGZvciBpbmRleGVzCisJICovCisJ QXNzZXJ0KHJlbC0+cmRfcmVsLT5yZWxraW5kID09IFJFTEtJTkRfSU5ERVgpOworCisJaWYg KCFwZ3N0YXRfdHJhY2tfY291bnRzKQorCXsKKwkJaWYgKHJlbC0+cGdzdGF0aW5kX2luZm8g IT0gTlVMTCkKKwkJCXBnc3RhdF91bmxpbmtfaW5kZXgocmVsKTsKKworCQkvKiBXZSdyZSBu b3QgY291bnRpbmcgYXQgYWxsICovCisJCXJlbC0+cGdzdGF0X2VuYWJsZWQgPSBmYWxzZTsK KwkJcmVsLT5wZ3N0YXRpbmRfaW5mbyA9IE5VTEw7CisJCXJldHVybjsKKwl9CisKKwlyZWwt PnBnc3RhdF9lbmFibGVkID0gdHJ1ZTsKK30KKworLyoKKyAqIFByZXBhcmUgZm9yIHN0YXRp c3RpY3MgZm9yIHRoaXMgaW5kZXggdG8gYmUgY29sbGVjdGVkLgorICoKKyAqIFRoaXMgZW5z dXJlcyB3ZSBoYXZlIGEgcmVmZXJlbmNlIHRvIHRoZSBzdGF0cyBlbnRyeSBiZWZvcmUgc3Rh dHMgY2FuIGJlCisgKiBnZW5lcmF0ZWQuIFRoYXQgaXMgaW1wb3J0YW50IGJlY2F1c2UgYW4g aW5kZXggZHJvcCBpbiBhbm90aGVyCisgKiBjb25uZWN0aW9uIGNvdWxkIG90aGVyd2lzZSBs ZWFkIHRvIHRoZSBzdGF0cyBlbnRyeSBiZWluZyBkcm9wcGVkLCB3aGljaCB0aGVuCisgKiBs YXRlciB3b3VsZCBnZXQgcmVjcmVhdGVkIHdoZW4gZmx1c2hpbmcgc3RhdHMuCisgKgorICog VGhpcyBpcyBzZXBhcmF0ZSBmcm9tIHBnc3RhdF9pbml0X2luZGV4KCkgYXMgaXQgaXMgbm90 IHVuY29tbW9uIGZvcgorICogcmVsY2FjaGUgZW50cmllcyB0byBiZSBvcGVuZWQgd2l0aG91 dCBldmVyIGdldHRpbmcgc3RhdHMgcmVwb3J0ZWQuCisgKi8KK3ZvaWQKK3Bnc3RhdF9hc3Nv Y19pbmRleChSZWxhdGlvbiByZWwpCit7CisJQXNzZXJ0KHJlbC0+cGdzdGF0X2VuYWJsZWQp OworCUFzc2VydChyZWwtPnBnc3RhdGluZF9pbmZvID09IE5VTEwpOworCisJLyogRWxzZSBm aW5kIG9yIG1ha2UgdGhlIFBnU3RhdF9JbmRleFN0YXR1cyBlbnRyeSwgYW5kIHVwZGF0ZSBs aW5rICovCisJcmVsLT5wZ3N0YXRpbmRfaW5mbyA9IHBnc3RhdF9wcmVwX2luZGV4X3BlbmRp bmcoUmVsYXRpb25HZXRSZWxpZChyZWwpLAorCQkJCQkJCQkJCQkJCXJlbC0+cmRfcmVsLT5y ZWxpc3NoYXJlZCk7CisKKwkvKiBkb24ndCBhbGxvdyBsaW5rIGEgc3RhdHMgdG8gbXVsdGlw bGUgcmVsY2FjaGUgZW50cmllcyAqLworCUFzc2VydChyZWwtPnBnc3RhdGluZF9pbmZvLT5y ZWxhdGlvbiA9PSBOVUxMKTsKKworCS8qIG1hcmsgdGhpcyByZWxhdGlvbiBhcyB0aGUgb3du ZXIgKi8KKwlyZWwtPnBnc3RhdGluZF9pbmZvLT5yZWxhdGlvbiA9IHJlbDsKK30KKworLyoK KyAqIEJyZWFrIHRoZSBtdXR1YWwgbGluayBiZXR3ZWVuIGEgcmVsY2FjaGUgZW50cnkgYW5k IHBlbmRpbmcgaW5kZXggc3RhdHMgZW50cnkuCisgKiBUaGlzIG11c3QgYmUgY2FsbGVkIHdo ZW5ldmVyIG9uZSBlbmQgb2YgdGhlIGxpbmsgaXMgcmVtb3ZlZC4KKyAqLwordm9pZAorcGdz dGF0X3VubGlua19pbmRleChSZWxhdGlvbiByZWwpCit7CisKKwlpZiAocmVsLT5wZ3N0YXRp bmRfaW5mbyA9PSBOVUxMKQorCQlyZXR1cm47CisKKwkvKiBsaW5rIHNhbml0eSBjaGVjayBm b3IgdGhlIGluZGV4IHN0YXRzICovCisJaWYgKHJlbC0+cGdzdGF0aW5kX2luZm8pCisJewor CQlBc3NlcnQocmVsLT5wZ3N0YXRpbmRfaW5mby0+cmVsYXRpb24gPT0gcmVsKTsKKwkJcmVs LT5wZ3N0YXRpbmRfaW5mby0+cmVsYXRpb24gPSBOVUxMOworCQlyZWwtPnBnc3RhdGluZF9p bmZvID0gTlVMTDsKKwl9Cit9CisKKy8qCisgKiBFbnN1cmUgdGhhdCBpbmRleCBzdGF0cyBh cmUgZHJvcHBlZCBpZiB0cmFuc2FjdGlvbiBhYm9ydHMuCisgKi8KK3ZvaWQKK3Bnc3RhdF9j cmVhdGVfaW5kZXgoUmVsYXRpb24gcmVsKQoreworCXBnc3RhdF9jcmVhdGVfdHJhbnNhY3Rp b25hbChQR1NUQVRfS0lORF9JTkRFWCwKKwkJCQkJCQkJcmVsLT5yZF9yZWwtPnJlbGlzc2hh cmVkID8gSW52YWxpZE9pZCA6IE15RGF0YWJhc2VJZCwKKwkJCQkJCQkJUmVsYXRpb25HZXRS ZWxpZChyZWwpKTsKK30KKworLyoKKyAqIEVuc3VyZSB0aGF0IGluZGV4IHN0YXRzIGFyZSBk cm9wcGVkIGlmIHRyYW5zYWN0aW9uIGNvbW1pdHMuCisgKi8KK3ZvaWQKK3Bnc3RhdF9kcm9w X2luZGV4KFJlbGF0aW9uIHJlbCkKK3sKKwlwZ3N0YXRfZHJvcF90cmFuc2FjdGlvbmFsKFBH U1RBVF9LSU5EX0lOREVYLAorCQkJCQkJCSAgcmVsLT5yZF9yZWwtPnJlbGlzc2hhcmVkID8g SW52YWxpZE9pZCA6IE15RGF0YWJhc2VJZCwKKwkJCQkJCQkgIFJlbGF0aW9uR2V0UmVsaWQo cmVsKSk7Cit9CisKKy8qCisgKiBTdXBwb3J0IGZ1bmN0aW9uIGZvciB0aGUgU1FMLWNhbGxh YmxlIHBnc3RhdCogZnVuY3Rpb25zLiBSZXR1cm5zCisgKiB0aGUgY29sbGVjdGVkIHN0YXRp c3RpY3MgZm9yIG9uZSBpbmRleCBvciBOVUxMLiBOVUxMIGRvZXNuJ3QgbWVhbgorICogdGhh dCB0aGUgaW5kZXggZG9lc24ndCBleGlzdCwganVzdCB0aGF0IHRoZXJlIGFyZSBubyBzdGF0 aXN0aWNzLCBzbyB0aGUKKyAqIGNhbGxlciBpcyBiZXR0ZXIgb2ZmIHRvIHJlcG9ydCBaRVJP IGluc3RlYWQuCisgKi8KK1BnU3RhdF9TdGF0SW5kRW50cnkgKgorcGdzdGF0X2ZldGNoX3N0 YXRfaW5kZW50cnkoT2lkIHJlbGlkKQoreworCVBnU3RhdF9TdGF0SW5kRW50cnkgKmluZGVu dHJ5OworCisJaW5kZW50cnkgPSBwZ3N0YXRfZmV0Y2hfc3RhdF9pbmRlbnRyeV9leHQoZmFs c2UsIHJlbGlkKTsKKwlpZiAoaW5kZW50cnkgIT0gTlVMTCkKKwkJcmV0dXJuIGluZGVudHJ5 OworCisJLyoKKwkgKiBJZiB3ZSBkaWRuJ3QgZmluZCBpdCwgbWF5YmUgaXQncyBhIHNoYXJl ZCBpbmRleC4KKwkgKi8KKwlpbmRlbnRyeSA9IHBnc3RhdF9mZXRjaF9zdGF0X2luZGVudHJ5 X2V4dCh0cnVlLCByZWxpZCk7CisJcmV0dXJuIGluZGVudHJ5OworfQorCisvKgorICogTW9y ZSBlZmZpY2llbnQgdmVyc2lvbiBvZiBwZ3N0YXRfZmV0Y2hfc3RhdF9pbmRlbnRyeSgpLCBh bGxvd2luZyB0byBzcGVjaWZ5CisgKiB3aGV0aGVyIHRoZSB0by1iZS1hY2Nlc3NlZCBpbmRl eCBpcyBzaGFyZWQgb3Igbm90LgorICovCitQZ1N0YXRfU3RhdEluZEVudHJ5ICoKK3Bnc3Rh dF9mZXRjaF9zdGF0X2luZGVudHJ5X2V4dChib29sIHNoYXJlZCwgT2lkIHJlbG9pZCkKK3sK KwlPaWQJCQlkYm9pZCA9IChzaGFyZWQgPyBJbnZhbGlkT2lkIDogTXlEYXRhYmFzZUlkKTsK KworCXJldHVybiAoUGdTdGF0X1N0YXRJbmRFbnRyeSAqKQorCQlwZ3N0YXRfZmV0Y2hfZW50 cnkoUEdTVEFUX0tJTkRfSU5ERVgsIGRib2lkLCByZWxvaWQpOworfQorCisvKgorICogZmlu ZCBhbnkgZXhpc3RpbmcgUGdTdGF0X0luZGV4U3RhdHVzIGVudHJ5IGZvciByZWwKKyAqCisg KiBGaW5kIGFueSBleGlzdGluZyBQZ1N0YXRfSW5kZXhTdGF0dXMgZW50cnkgZm9yIHJlbF9p ZCBpbiB0aGUgY3VycmVudAorICogZGF0YWJhc2UuIElmIG5vdCBmb3VuZCwgdHJ5IGZpbmRp bmcgZnJvbSBzaGFyZWQgaW5kZXhlcy4KKyAqCisgKiBJZiBubyBlbnRyeSBmb3VuZCwgcmV0 dXJuIE5VTEwsIGRvbid0IGNyZWF0ZSBhIG5ldyBvbmUKKyAqLworUGdTdGF0X0luZGV4U3Rh dHVzICoKK2ZpbmRfaW5kc3RhdF9lbnRyeShPaWQgcmVsX2lkKQoreworCVBnU3RhdF9FbnRy eVJlZiAqZW50cnlfcmVmOworCisJZW50cnlfcmVmID0gcGdzdGF0X2ZldGNoX3BlbmRpbmdf ZW50cnkoUEdTVEFUX0tJTkRfSU5ERVgsIE15RGF0YWJhc2VJZCwgcmVsX2lkKTsKKwlpZiAo IWVudHJ5X3JlZikKKwkJZW50cnlfcmVmID0gcGdzdGF0X2ZldGNoX3BlbmRpbmdfZW50cnko UEdTVEFUX0tJTkRfSU5ERVgsIEludmFsaWRPaWQsIHJlbF9pZCk7CisKKwlpZiAoZW50cnlf cmVmKQorCQlyZXR1cm4gZW50cnlfcmVmLT5wZW5kaW5nOworCXJldHVybiBOVUxMOworfQor CisvKgorICogRmx1c2ggb3V0IHBlbmRpbmcgc3RhdHMgZm9yIHRoZSBlbnRyeQorICoKKyAq IElmIG5vd2FpdCBpcyB0cnVlLCB0aGlzIGZ1bmN0aW9uIHJldHVybnMgZmFsc2UgaWYgbG9j ayBjb3VsZCBub3QKKyAqIGltbWVkaWF0ZWx5IGFjcXVpcmVkLCBvdGhlcndpc2UgdHJ1ZSBp cyByZXR1cm5lZC4KKyAqCisgKiBTb21lIG9mIHRoZSBzdGF0cyBhcmUgY29waWVkIHRvIHRo ZSBjb3JyZXNwb25kaW5nIHBlbmRpbmcgZGF0YWJhc2Ugc3RhdHMKKyAqIGVudHJ5IHdoZW4g c3VjY2Vzc2Z1bGx5IGZsdXNoaW5nLgorICovCitib29sCitwZ3N0YXRfaW5kZXhfZmx1c2hf Y2IoUGdTdGF0X0VudHJ5UmVmICplbnRyeV9yZWYsIGJvb2wgbm93YWl0KQoreworCXN0YXRp YyBjb25zdCBQZ1N0YXRfSW5kZXhDb3VudHMgYWxsX3plcm9lczsKKwlPaWQJCQlkYm9pZDsK KworCVBnU3RhdF9JbmRleFN0YXR1cyAqbHN0YXRzOyAvKiBwZW5kaW5nIHN0YXRzIGVudHJ5 ICAqLworCVBnU3RhdFNoYXJlZF9JbmRleCAqc2hyZWxjb21zdGF0czsKKwlQZ1N0YXRfU3Rh dEluZEVudHJ5ICppbmRlbnRyeTsJLyogaW5kZXggZW50cnkgb2Ygc2hhcmVkIHN0YXRzICov CisJUGdTdGF0X1N0YXREQkVudHJ5ICpkYmVudHJ5OwkvKiBwZW5kaW5nIGRhdGFiYXNlIGVu dHJ5ICovCisKKwlkYm9pZCA9IGVudHJ5X3JlZi0+c2hhcmVkX2VudHJ5LT5rZXkuZGJvaWQ7 CisJbHN0YXRzID0gKFBnU3RhdF9JbmRleFN0YXR1cyAqKSBlbnRyeV9yZWYtPnBlbmRpbmc7 CisJc2hyZWxjb21zdGF0cyA9IChQZ1N0YXRTaGFyZWRfSW5kZXggKikgZW50cnlfcmVmLT5z aGFyZWRfc3RhdHM7CisKKwkvKgorCSAqIElnbm9yZSBlbnRyaWVzIHRoYXQgZGlkbid0IGFj Y3VtdWxhdGUgYW55IGFjdHVhbCBjb3VudHMsIHN1Y2ggYXMKKwkgKiBpbmRleGVzIHRoYXQg d2VyZSBvcGVuZWQgYnkgdGhlIHBsYW5uZXIgYnV0IG5vdCB1c2VkLgorCSAqLworCWlmICht ZW1jbXAoJmxzdGF0cy0+aV9jb3VudHMsICZhbGxfemVyb2VzLAorCQkJICAgc2l6ZW9mKFBn U3RhdF9JbmRleENvdW50cykpID09IDApCisJeworCQlyZXR1cm4gdHJ1ZTsKKwl9CisKKwlp ZiAoIXBnc3RhdF9sb2NrX2VudHJ5KGVudHJ5X3JlZiwgbm93YWl0KSkKKwkJcmV0dXJuIGZh bHNlOworCisJLyogYWRkIHRoZSB2YWx1ZXMgdG8gdGhlIHNoYXJlZCBlbnRyeS4gKi8KKwlp bmRlbnRyeSA9ICZzaHJlbGNvbXN0YXRzLT5zdGF0czsKKworCWluZGVudHJ5LT5udW1zY2Fu cyArPSBsc3RhdHMtPmlfY291bnRzLmlfbnVtc2NhbnM7CisKKwlpZiAobHN0YXRzLT5pX2Nv dW50cy5pX251bXNjYW5zKQorCXsKKwkJVGltZXN0YW1wVHogdCA9IEdldEN1cnJlbnRUcmFu c2FjdGlvblN0b3BUaW1lc3RhbXAoKTsKKworCQlpZiAodCA+IGluZGVudHJ5LT5sYXN0c2Nh bikKKwkJCWluZGVudHJ5LT5sYXN0c2NhbiA9IHQ7CisJfQorCWluZGVudHJ5LT50dXBsZXNf cmV0dXJuZWQgKz0gbHN0YXRzLT5pX2NvdW50cy5pX3R1cGxlc19yZXR1cm5lZDsKKwlpbmRl bnRyeS0+dHVwbGVzX2ZldGNoZWQgKz0gbHN0YXRzLT5pX2NvdW50cy5pX3R1cGxlc19mZXRj aGVkOworCWluZGVudHJ5LT5ibG9ja3NfZmV0Y2hlZCArPSBsc3RhdHMtPmlfY291bnRzLmlf YmxvY2tzX2ZldGNoZWQ7CisJaW5kZW50cnktPmJsb2Nrc19oaXQgKz0gbHN0YXRzLT5pX2Nv dW50cy5pX2Jsb2Nrc19oaXQ7CisKKwlwZ3N0YXRfdW5sb2NrX2VudHJ5KGVudHJ5X3JlZik7 CisKKwkvKiBUaGUgZW50cnkgd2FzIHN1Y2Nlc3NmdWxseSBmbHVzaGVkLCBhZGQgdGhlIHNh bWUgdG8gZGF0YWJhc2Ugc3RhdHMgKi8KKwlkYmVudHJ5ID0gcGdzdGF0X3ByZXBfZGF0YWJh c2VfcGVuZGluZyhkYm9pZCk7CisJZGJlbnRyeS0+bl90dXBsZXNfcmV0dXJuZWQgKz0gbHN0 YXRzLT5pX2NvdW50cy5pX3R1cGxlc19yZXR1cm5lZDsKKwlkYmVudHJ5LT5uX3R1cGxlc19m ZXRjaGVkICs9IGxzdGF0cy0+aV9jb3VudHMuaV90dXBsZXNfZmV0Y2hlZDsKKwlkYmVudHJ5 LT5uX2Jsb2Nrc19mZXRjaGVkICs9IGxzdGF0cy0+aV9jb3VudHMuaV9ibG9ja3NfZmV0Y2hl ZDsKKwlkYmVudHJ5LT5uX2Jsb2Nrc19oaXQgKz0gbHN0YXRzLT5pX2NvdW50cy5pX2Jsb2Nr c19oaXQ7CisKKwlyZXR1cm4gdHJ1ZTsKK30KKwordm9pZAorcGdzdGF0X2luZGV4X2RlbGV0 ZV9wZW5kaW5nX2NiKFBnU3RhdF9FbnRyeVJlZiAqZW50cnlfcmVmKQoreworCVBnU3RhdF9J bmRleFN0YXR1cyAqcGVuZGluZyA9IChQZ1N0YXRfSW5kZXhTdGF0dXMgKikgZW50cnlfcmVm LT5wZW5kaW5nOworCisJaWYgKHBlbmRpbmctPnJlbGF0aW9uKQorCQlwZ3N0YXRfdW5saW5r X2luZGV4KHBlbmRpbmctPnJlbGF0aW9uKTsKK30KKworLyoKKyAqIEZpbmQgb3IgY3JlYXRl IGEgUGdTdGF0X0luZGV4U3RhdHVzIGVudHJ5IGZvciByZWwuIE5ldyBlbnRyeSBpcyBjcmVh dGVkIGFuZAorICogaW5pdGlhbGl6ZWQgaWYgbm90IGV4aXN0cy4KKyAqLworc3RhdGljIFBn U3RhdF9JbmRleFN0YXR1cyAqCitwZ3N0YXRfcHJlcF9pbmRleF9wZW5kaW5nKE9pZCByZWxf aWQsIGJvb2wgaXNzaGFyZWQpCit7CisJUGdTdGF0X0VudHJ5UmVmICplbnRyeV9yZWY7CisJ UGdTdGF0X0luZGV4U3RhdHVzICpwZW5kaW5nOworCisJZW50cnlfcmVmID0gcGdzdGF0X3By ZXBfcGVuZGluZ19lbnRyeShQR1NUQVRfS0lORF9JTkRFWCwKKwkJCQkJCQkJCQkgIGlzc2hh cmVkID8gSW52YWxpZE9pZCA6IE15RGF0YWJhc2VJZCwKKwkJCQkJCQkJCQkgIHJlbF9pZCwg TlVMTCk7CisJcGVuZGluZyA9IGVudHJ5X3JlZi0+cGVuZGluZzsKKwlwZW5kaW5nLT5yX2lk ID0gcmVsX2lkOworCXBlbmRpbmctPnJfc2hhcmVkID0gaXNzaGFyZWQ7CisKKwlyZXR1cm4g cGVuZGluZzsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bn c3RhdF9yZWxhdGlvbi5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X3Rh YmxlLmMKc2ltaWxhcml0eSBpbmRleCA3NiUKcmVuYW1lIGZyb20gc3JjL2JhY2tlbmQvdXRp bHMvYWN0aXZpdHkvcGdzdGF0X3JlbGF0aW9uLmMKcmVuYW1lIHRvIHNyYy9iYWNrZW5kL3V0 aWxzL2FjdGl2aXR5L3Bnc3RhdF90YWJsZS5jCmluZGV4IDU1YTM1NWY1ODMuLjI2ZDQ3YWJl ZTEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9yZWxh dGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF90YWJsZS5j CkBAIC0xLDkgKzEsOSBAQAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoKLSAqIHBnc3Rh dF9yZWxhdGlvbi5jCi0gKgkgIEltcGxlbWVudGF0aW9uIG9mIHJlbGF0aW9uIHN0YXRpc3Rp Y3MuCisgKiBwZ3N0YXRfdGFibGUuYworICoJICBJbXBsZW1lbnRhdGlvbiBvZiB0YWJsZSBz dGF0aXN0aWNzLgogICoKLSAqIFRoaXMgZmlsZSBjb250YWlucyB0aGUgaW1wbGVtZW50YXRp b24gb2YgZnVuY3Rpb24gcmVsYXRpb24uIEl0IGlzIGtlcHQKKyAqIFRoaXMgZmlsZSBjb250 YWlucyB0aGUgaW1wbGVtZW50YXRpb24gb2YgZnVuY3Rpb24gdGFibGUuIEl0IGlzIGtlcHQK ICAqIHNlcGFyYXRlIGZyb20gcGdzdGF0LmMgdG8gZW5mb3JjZSB0aGUgbGluZSBiZXR3ZWVu IHRoZSBzdGF0aXN0aWNzIGFjY2VzcyAvCiAgKiBzdG9yYWdlIGltcGxlbWVudGF0aW9uIGFu ZCB0aGUgZGV0YWlscyBhYm91dCBpbmRpdmlkdWFsIHR5cGVzIG9mCiAgKiBzdGF0aXN0aWNz LgpAQCAtMTEsNyArMTEsNyBAQAogICogQ29weXJpZ2h0IChjKSAyMDAxLTIwMjIsIFBvc3Rn cmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCiAgKgogICogSURFTlRJRklDQVRJT04K LSAqCSAgc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X3JlbGF0aW9uLmMKKyAq CSAgc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X3RhYmxlLmMKICAqIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KICAqLwogCkBAIC00Myw3NCArNDMsNDcgQEAgdHlwZWRlZiBzdHJ1 Y3QgVHdvUGhhc2VQZ1N0YXRSZWNvcmQKIH0gVHdvUGhhc2VQZ1N0YXRSZWNvcmQ7CiAKIAot c3RhdGljIFBnU3RhdF9UYWJsZVN0YXR1cyAqcGdzdGF0X3ByZXBfcmVsYXRpb25fcGVuZGlu ZyhPaWQgcmVsX2lkLCBib29sIGlzc2hhcmVkKTsKLXN0YXRpYyB2b2lkIGFkZF90YWJzdGF0 X3hhY3RfbGV2ZWwoUGdTdGF0X1RhYmxlU3RhdHVzICpwZ3N0YXRfaW5mbywgaW50IG5lc3Rf bGV2ZWwpOwotc3RhdGljIHZvaWQgZW5zdXJlX3RhYnN0YXRfeGFjdF9sZXZlbChQZ1N0YXRf VGFibGVTdGF0dXMgKnBnc3RhdF9pbmZvKTsKK3N0YXRpYyBQZ1N0YXRfVGFibGVTdGF0dXMg KnBnc3RhdF9wcmVwX3RhYmxlX3BlbmRpbmcoT2lkIHJlbF9pZCwgYm9vbCBpc3NoYXJlZCk7 CitzdGF0aWMgdm9pZCBhZGRfdGFic3RhdF94YWN0X2xldmVsKFBnU3RhdF9UYWJsZVN0YXR1 cyAqcGdzdGF0dGFiX2luZm8sIGludCBuZXN0X2xldmVsKTsKK3N0YXRpYyB2b2lkIGVuc3Vy ZV90YWJzdGF0X3hhY3RfbGV2ZWwoUGdTdGF0X1RhYmxlU3RhdHVzICpwZ3N0YXR0YWJfaW5m byk7CiBzdGF0aWMgdm9pZCBzYXZlX3RydW5jZHJvcF9jb3VudGVycyhQZ1N0YXRfVGFibGVY YWN0U3RhdHVzICp0cmFucywgYm9vbCBpc19kcm9wKTsKIHN0YXRpYyB2b2lkIHJlc3RvcmVf dHJ1bmNkcm9wX2NvdW50ZXJzKFBnU3RhdF9UYWJsZVhhY3RTdGF0dXMgKnRyYW5zKTsKIAot Ci0vKgotICogQ29weSBzdGF0cyBiZXR3ZWVuIHJlbGF0aW9ucy4gVGhpcyBpcyB1c2VkIGZv ciB0aGluZ3MgbGlrZSBSRUlOREVYCi0gKiBDT05DVVJSRU5UTFkuCi0gKi8KLXZvaWQKLXBn c3RhdF9jb3B5X3JlbGF0aW9uX3N0YXRzKFJlbGF0aW9uIGRzdCwgUmVsYXRpb24gc3JjKQot ewotCVBnU3RhdF9TdGF0VGFiRW50cnkgKnNyY3N0YXRzOwotCVBnU3RhdFNoYXJlZF9SZWxh dGlvbiAqZHN0c2hzdGF0czsKLQlQZ1N0YXRfRW50cnlSZWYgKmRzdF9yZWY7Ci0KLQlzcmNz dGF0cyA9IHBnc3RhdF9mZXRjaF9zdGF0X3RhYmVudHJ5X2V4dChzcmMtPnJkX3JlbC0+cmVs aXNzaGFyZWQsCi0JCQkJCQkJCQkJCSAgUmVsYXRpb25HZXRSZWxpZChzcmMpKTsKLQlpZiAo IXNyY3N0YXRzKQotCQlyZXR1cm47Ci0KLQlkc3RfcmVmID0gcGdzdGF0X2dldF9lbnRyeV9y ZWZfbG9ja2VkKFBHU1RBVF9LSU5EX1JFTEFUSU9OLAotCQkJCQkJCQkJCSAgZHN0LT5yZF9y ZWwtPnJlbGlzc2hhcmVkID8gSW52YWxpZE9pZCA6IE15RGF0YWJhc2VJZCwKLQkJCQkJCQkJ CQkgIFJlbGF0aW9uR2V0UmVsaWQoZHN0KSwKLQkJCQkJCQkJCQkgIGZhbHNlKTsKLQotCWRz dHNoc3RhdHMgPSAoUGdTdGF0U2hhcmVkX1JlbGF0aW9uICopIGRzdF9yZWYtPnNoYXJlZF9z dGF0czsKLQlkc3RzaHN0YXRzLT5zdGF0cyA9ICpzcmNzdGF0czsKLQotCXBnc3RhdF91bmxv Y2tfZW50cnkoZHN0X3JlZik7Ci19Ci0KIC8qCiAgKiBJbml0aWFsaXplIGEgcmVsY2FjaGUg ZW50cnkgdG8gY291bnQgYWNjZXNzIHN0YXRpc3RpY3MuICBDYWxsZWQgd2hlbmV2ZXIgYQot ICogcmVsYXRpb24gaXMgb3BlbmVkLgorICogdGFibGUgaXMgb3BlbmVkLgogICoKLSAqIFdl IGFzc3VtZSB0aGF0IGEgcmVsY2FjaGUgZW50cnkncyBwZ3N0YXRfaW5mbyBmaWVsZCBpcyB6 ZXJvZWQgYnkgcmVsY2FjaGUuYworICogV2UgYXNzdW1lIHRoYXQgYSByZWxjYWNoZSBlbnRy eSdzIHBnc3RhdHRhYl9pbmZvIGZpZWxkIGlzIHplcm9lZCBieSByZWxjYWNoZS5jCiAgKiB3 aGVuIHRoZSByZWxjYWNoZSBlbnRyeSBpcyBtYWRlOyB0aGVyZWFmdGVyIGl0IGlzIGxvbmct bGl2ZWQgZGF0YS4KICAqCiAgKiBUaGlzIGRvZXMgbm90IGNyZWF0ZSBhIHJlZmVyZW5jZSB0 byBhIHN0YXRzIGVudHJ5IGluIHNoYXJlZCBtZW1vcnksIG5vcgogICogYWxsb2NhdGUgbWVt b3J5IGZvciB0aGUgcGVuZGluZyBzdGF0cy4gVGhhdCBoYXBwZW5zIGluCi0gKiBwZ3N0YXRf YXNzb2NfcmVsYXRpb24oKS4KKyAqIHBnc3RhdF9hc3NvY190YWJsZSgpLgogICovCiB2b2lk Ci1wZ3N0YXRfaW5pdF9yZWxhdGlvbihSZWxhdGlvbiByZWwpCitwZ3N0YXRfaW5pdF90YWJs ZShSZWxhdGlvbiByZWwpCiB7CiAJY2hhcgkJcmVsa2luZCA9IHJlbC0+cmRfcmVsLT5yZWxr aW5kOwogCisJQXNzZXJ0KHJlbGtpbmQgIT0gUkVMS0lORF9JTkRFWCk7CiAJLyoKIAkgKiBX ZSBvbmx5IGNvdW50IHN0YXRzIGZvciByZWxhdGlvbnMgd2l0aCBzdG9yYWdlIGFuZCBwYXJ0 aXRpb25lZCB0YWJsZXMKIAkgKi8KIAlpZiAoIVJFTEtJTkRfSEFTX1NUT1JBR0UocmVsa2lu ZCkgJiYgcmVsa2luZCAhPSBSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFKQogCXsKIAkJcmVs LT5wZ3N0YXRfZW5hYmxlZCA9IGZhbHNlOwotCQlyZWwtPnBnc3RhdF9pbmZvID0gTlVMTDsK KwkJcmVsLT5wZ3N0YXR0YWJfaW5mbyA9IE5VTEw7CiAJCXJldHVybjsKIAl9CiAKIAlpZiAo IXBnc3RhdF90cmFja19jb3VudHMpCiAJewotCQlpZiAocmVsLT5wZ3N0YXRfaW5mbykKLQkJ CXBnc3RhdF91bmxpbmtfcmVsYXRpb24ocmVsKTsKKwkJaWYgKHJlbC0+cGdzdGF0dGFiX2lu Zm8gIT0gTlVMTCkKKwkJCXBnc3RhdF91bmxpbmtfdGFibGUocmVsKTsKIAogCQkvKiBXZSdy ZSBub3QgY291bnRpbmcgYXQgYWxsICovCiAJCXJlbC0+cGdzdGF0X2VuYWJsZWQgPSBmYWxz ZTsKLQkJcmVsLT5wZ3N0YXRfaW5mbyA9IE5VTEw7CisJCXJlbC0+cGdzdGF0dGFiX2luZm8g PSBOVUxMOwogCQlyZXR1cm47CiAJfQogCkBAIC0xMTgsODkgKzkxLDkyIEBAIHBnc3RhdF9p bml0X3JlbGF0aW9uKFJlbGF0aW9uIHJlbCkKIH0KIAogLyoKLSAqIFByZXBhcmUgZm9yIHN0 YXRpc3RpY3MgZm9yIHRoaXMgcmVsYXRpb24gdG8gYmUgY29sbGVjdGVkLgorICogUHJlcGFy ZSBmb3Igc3RhdGlzdGljcyBmb3IgdGhpcyB0YWJsZSB0byBiZSBjb2xsZWN0ZWQuCiAgKgog ICogVGhpcyBlbnN1cmVzIHdlIGhhdmUgYSByZWZlcmVuY2UgdG8gdGhlIHN0YXRzIGVudHJ5 IGJlZm9yZSBzdGF0cyBjYW4gYmUKLSAqIGdlbmVyYXRlZC4gVGhhdCBpcyBpbXBvcnRhbnQg YmVjYXVzZSBhIHJlbGF0aW9uIGRyb3AgaW4gYW5vdGhlciBjb25uZWN0aW9uCisgKiBnZW5l cmF0ZWQuIFRoYXQgaXMgaW1wb3J0YW50IGJlY2F1c2UgYSB0YWJsZSBkcm9wIGluIGFub3Ro ZXIgY29ubmVjdGlvbgogICogY291bGQgb3RoZXJ3aXNlIGxlYWQgdG8gdGhlIHN0YXRzIGVu dHJ5IGJlaW5nIGRyb3BwZWQsIHdoaWNoIHRoZW4gbGF0ZXIKICAqIHdvdWxkIGdldCByZWNy ZWF0ZWQgd2hlbiBmbHVzaGluZyBzdGF0cy4KICAqCi0gKiBUaGlzIGlzIHNlcGFyYXRlIGZy b20gcGdzdGF0X2luaXRfcmVsYXRpb24oKSBhcyBpdCBpcyBub3QgdW5jb21tb24gZm9yCisg KiBUaGlzIGlzIHNlcGFyYXRlIGZyb20gcGdzdGF0X2luaXRfdGFibGUoKSBhcyBpdCBpcyBu b3QgdW5jb21tb24gZm9yCiAgKiByZWxjYWNoZSBlbnRyaWVzIHRvIGJlIG9wZW5lZCB3aXRo b3V0IGV2ZXIgZ2V0dGluZyBzdGF0cyByZXBvcnRlZC4KICAqLwogdm9pZAotcGdzdGF0X2Fz c29jX3JlbGF0aW9uKFJlbGF0aW9uIHJlbCkKK3Bnc3RhdF9hc3NvY190YWJsZShSZWxhdGlv biByZWwpCiB7CiAJQXNzZXJ0KHJlbC0+cGdzdGF0X2VuYWJsZWQpOwotCUFzc2VydChyZWwt PnBnc3RhdF9pbmZvID09IE5VTEwpOworCUFzc2VydChyZWwtPnBnc3RhdHRhYl9pbmZvID09 IE5VTEwpOwogCiAJLyogRWxzZSBmaW5kIG9yIG1ha2UgdGhlIFBnU3RhdF9UYWJsZVN0YXR1 cyBlbnRyeSwgYW5kIHVwZGF0ZSBsaW5rICovCi0JcmVsLT5wZ3N0YXRfaW5mbyA9IHBnc3Rh dF9wcmVwX3JlbGF0aW9uX3BlbmRpbmcoUmVsYXRpb25HZXRSZWxpZChyZWwpLAorCXJlbC0+ cGdzdGF0dGFiX2luZm8gPSBwZ3N0YXRfcHJlcF90YWJsZV9wZW5kaW5nKFJlbGF0aW9uR2V0 UmVsaWQocmVsKSwKIAkJCQkJCQkJCQkJCQlyZWwtPnJkX3JlbC0+cmVsaXNzaGFyZWQpOwog CiAJLyogZG9uJ3QgYWxsb3cgbGluayBhIHN0YXRzIHRvIG11bHRpcGxlIHJlbGNhY2hlIGVu dHJpZXMgKi8KLQlBc3NlcnQocmVsLT5wZ3N0YXRfaW5mby0+cmVsYXRpb24gPT0gTlVMTCk7 CisJQXNzZXJ0KHJlbC0+cGdzdGF0dGFiX2luZm8tPnJlbGF0aW9uID09IE5VTEwpOwogCiAJ LyogbWFyayB0aGlzIHJlbGF0aW9uIGFzIHRoZSBvd25lciAqLwotCXJlbC0+cGdzdGF0X2lu Zm8tPnJlbGF0aW9uID0gcmVsOworCXJlbC0+cGdzdGF0dGFiX2luZm8tPnJlbGF0aW9uID0g cmVsOwogfQogCiAvKgotICogQnJlYWsgdGhlIG11dHVhbCBsaW5rIGJldHdlZW4gYSByZWxj YWNoZSBlbnRyeSBhbmQgcGVuZGluZyBzdGF0cyBlbnRyeS4KKyAqIEJyZWFrIHRoZSBtdXR1 YWwgbGluayBiZXR3ZWVuIGEgcmVsY2FjaGUgZW50cnkgYW5kIHBlbmRpbmcgdGFibGUgc3Rh dHMgZW50cnkuCiAgKiBUaGlzIG11c3QgYmUgY2FsbGVkIHdoZW5ldmVyIG9uZSBlbmQgb2Yg dGhlIGxpbmsgaXMgcmVtb3ZlZC4KICAqLwogdm9pZAotcGdzdGF0X3VubGlua19yZWxhdGlv bihSZWxhdGlvbiByZWwpCitwZ3N0YXRfdW5saW5rX3RhYmxlKFJlbGF0aW9uIHJlbCkKIHsK LQkvKiByZW1vdmUgdGhlIGxpbmsgdG8gc3RhdHMgaW5mbyBpZiBhbnkgKi8KLQlpZiAocmVs LT5wZ3N0YXRfaW5mbyA9PSBOVUxMKQorCisJaWYgKHJlbC0+cGdzdGF0dGFiX2luZm8gPT0g TlVMTCkKIAkJcmV0dXJuOwogCi0JLyogbGluayBzYW5pdHkgY2hlY2sgKi8KLQlBc3NlcnQo cmVsLT5wZ3N0YXRfaW5mby0+cmVsYXRpb24gPT0gcmVsKTsKLQlyZWwtPnBnc3RhdF9pbmZv LT5yZWxhdGlvbiA9IE5VTEw7Ci0JcmVsLT5wZ3N0YXRfaW5mbyA9IE5VTEw7CisJLyogbGlu ayBzYW5pdHkgY2hlY2sgZm9yIHRoZSB0YWJsZSBzdGF0cyAqLworCWlmIChyZWwtPnBnc3Rh dHRhYl9pbmZvKQorCXsKKwkJQXNzZXJ0KHJlbC0+cGdzdGF0dGFiX2luZm8tPnJlbGF0aW9u ID09IHJlbCk7CisJCXJlbC0+cGdzdGF0dGFiX2luZm8tPnJlbGF0aW9uID0gTlVMTDsKKwkJ cmVsLT5wZ3N0YXR0YWJfaW5mbyA9IE5VTEw7CisJfQogfQogCiAvKgotICogRW5zdXJlIHRo YXQgc3RhdHMgYXJlIGRyb3BwZWQgaWYgdHJhbnNhY3Rpb24gYWJvcnRzLgorICogRW5zdXJl IHRoYXQgdGFibGUgc3RhdHMgYXJlIGRyb3BwZWQgaWYgdHJhbnNhY3Rpb24gYWJvcnRzLgog ICovCiB2b2lkCi1wZ3N0YXRfY3JlYXRlX3JlbGF0aW9uKFJlbGF0aW9uIHJlbCkKK3Bnc3Rh dF9jcmVhdGVfdGFibGUoUmVsYXRpb24gcmVsKQogewotCXBnc3RhdF9jcmVhdGVfdHJhbnNh Y3Rpb25hbChQR1NUQVRfS0lORF9SRUxBVElPTiwKKwlwZ3N0YXRfY3JlYXRlX3RyYW5zYWN0 aW9uYWwoUEdTVEFUX0tJTkRfVEFCTEUsCiAJCQkJCQkJCXJlbC0+cmRfcmVsLT5yZWxpc3No YXJlZCA/IEludmFsaWRPaWQgOiBNeURhdGFiYXNlSWQsCiAJCQkJCQkJCVJlbGF0aW9uR2V0 UmVsaWQocmVsKSk7CiB9CiAKIC8qCi0gKiBFbnN1cmUgdGhhdCBzdGF0cyBhcmUgZHJvcHBl ZCBpZiB0cmFuc2FjdGlvbiBjb21taXRzLgorICogRW5zdXJlIHRoYXQgdGFibGUgc3RhdHMg YXJlIGRyb3BwZWQgaWYgdHJhbnNhY3Rpb24gY29tbWl0cy4KICAqLwogdm9pZAotcGdzdGF0 X2Ryb3BfcmVsYXRpb24oUmVsYXRpb24gcmVsKQorcGdzdGF0X2Ryb3BfdGFibGUoUmVsYXRp b24gcmVsKQogewogCWludAkJCW5lc3RfbGV2ZWwgPSBHZXRDdXJyZW50VHJhbnNhY3Rpb25O ZXN0TGV2ZWwoKTsKLQlQZ1N0YXRfVGFibGVTdGF0dXMgKnBnc3RhdF9pbmZvOworCVBnU3Rh dF9UYWJsZVN0YXR1cyAqcGdzdGF0dGFiX2luZm87CiAKLQlwZ3N0YXRfZHJvcF90cmFuc2Fj dGlvbmFsKFBHU1RBVF9LSU5EX1JFTEFUSU9OLAorCXBnc3RhdF9kcm9wX3RyYW5zYWN0aW9u YWwoUEdTVEFUX0tJTkRfVEFCTEUsCiAJCQkJCQkJICByZWwtPnJkX3JlbC0+cmVsaXNzaGFy ZWQgPyBJbnZhbGlkT2lkIDogTXlEYXRhYmFzZUlkLAogCQkJCQkJCSAgUmVsYXRpb25HZXRS ZWxpZChyZWwpKTsKIAotCWlmICghcGdzdGF0X3Nob3VsZF9jb3VudF9yZWxhdGlvbihyZWwp KQorCWlmICghcGdzdGF0X3Nob3VsZF9jb3VudF90YWJsZShyZWwpKQogCQlyZXR1cm47CiAK IAkvKgogCSAqIFRyYW5zYWN0aW9uYWxseSBzZXQgY291bnRlcnMgdG8gMC4gVGhhdCBlbnN1 cmVzIHRoYXQgYWNjZXNzZXMgdG8KIAkgKiBwZ19zdGF0X3hhY3RfYWxsX3RhYmxlcyBpbnNp ZGUgdGhlIHRyYW5zYWN0aW9uIHNob3cgMC4KIAkgKi8KLQlwZ3N0YXRfaW5mbyA9IHJlbC0+ cGdzdGF0X2luZm87Ci0JaWYgKHBnc3RhdF9pbmZvLT50cmFucyAmJgotCQlwZ3N0YXRfaW5m by0+dHJhbnMtPm5lc3RfbGV2ZWwgPT0gbmVzdF9sZXZlbCkKKwlwZ3N0YXR0YWJfaW5mbyA9 IHJlbC0+cGdzdGF0dGFiX2luZm87CisJaWYgKHBnc3RhdHRhYl9pbmZvLT50cmFucyAmJgor CQlwZ3N0YXR0YWJfaW5mby0+dHJhbnMtPm5lc3RfbGV2ZWwgPT0gbmVzdF9sZXZlbCkKIAl7 Ci0JCXNhdmVfdHJ1bmNkcm9wX2NvdW50ZXJzKHBnc3RhdF9pbmZvLT50cmFucywgdHJ1ZSk7 Ci0JCXBnc3RhdF9pbmZvLT50cmFucy0+dHVwbGVzX2luc2VydGVkID0gMDsKLQkJcGdzdGF0 X2luZm8tPnRyYW5zLT50dXBsZXNfdXBkYXRlZCA9IDA7Ci0JCXBnc3RhdF9pbmZvLT50cmFu cy0+dHVwbGVzX2RlbGV0ZWQgPSAwOworCQlzYXZlX3RydW5jZHJvcF9jb3VudGVycyhwZ3N0 YXR0YWJfaW5mby0+dHJhbnMsIHRydWUpOworCQlwZ3N0YXR0YWJfaW5mby0+dHJhbnMtPnR1 cGxlc19pbnNlcnRlZCA9IDA7CisJCXBnc3RhdHRhYl9pbmZvLT50cmFucy0+dHVwbGVzX3Vw ZGF0ZWQgPSAwOworCQlwZ3N0YXR0YWJfaW5mby0+dHJhbnMtPnR1cGxlc19kZWxldGVkID0g MDsKIAl9CiB9CiAKQEAgLTIxMiw3ICsxODgsNyBAQCBwZ3N0YXRfcmVwb3J0X3ZhY3V1bShP aWQgdGFibGVvaWQsIGJvb2wgc2hhcmVkLAogCQkJCQkgUGdTdGF0X0NvdW50ZXIgbGl2ZXR1 cGxlcywgUGdTdGF0X0NvdW50ZXIgZGVhZHR1cGxlcykKIHsKIAlQZ1N0YXRfRW50cnlSZWYg KmVudHJ5X3JlZjsKLQlQZ1N0YXRTaGFyZWRfUmVsYXRpb24gKnNodGFiZW50cnk7CisJUGdT dGF0U2hhcmVkX1RhYmxlICpzaHRhYmVudHJ5OwogCVBnU3RhdF9TdGF0VGFiRW50cnkgKnRh YmVudHJ5OwogCU9pZAkJCWRib2lkID0gKHNoYXJlZCA/IEludmFsaWRPaWQgOiBNeURhdGFi YXNlSWQpOwogCVRpbWVzdGFtcFR6IHRzOwpAQCAtMjI0LDEwICsyMDAsMTAgQEAgcGdzdGF0 X3JlcG9ydF92YWN1dW0oT2lkIHRhYmxlb2lkLCBib29sIHNoYXJlZCwKIAl0cyA9IEdldEN1 cnJlbnRUaW1lc3RhbXAoKTsKIAogCS8qIGJsb2NrIGFjcXVpcmluZyBsb2NrIGZvciB0aGUg c2FtZSByZWFzb24gYXMgcGdzdGF0X3JlcG9ydF9hdXRvdmFjKCkgKi8KLQllbnRyeV9yZWYg PSBwZ3N0YXRfZ2V0X2VudHJ5X3JlZl9sb2NrZWQoUEdTVEFUX0tJTkRfUkVMQVRJT04sCisJ ZW50cnlfcmVmID0gcGdzdGF0X2dldF9lbnRyeV9yZWZfbG9ja2VkKFBHU1RBVF9LSU5EX1RB QkxFLAogCQkJCQkJCQkJCQlkYm9pZCwgdGFibGVvaWQsIGZhbHNlKTsKIAotCXNodGFiZW50 cnkgPSAoUGdTdGF0U2hhcmVkX1JlbGF0aW9uICopIGVudHJ5X3JlZi0+c2hhcmVkX3N0YXRz OworCXNodGFiZW50cnkgPSAoUGdTdGF0U2hhcmVkX1RhYmxlICopIGVudHJ5X3JlZi0+c2hh cmVkX3N0YXRzOwogCXRhYmVudHJ5ID0gJnNodGFiZW50cnktPnN0YXRzOwogCiAJdGFiZW50 cnktPm5fbGl2ZV90dXBsZXMgPSBsaXZldHVwbGVzOwpAQCAtMjcxLDcgKzI0Nyw3IEBAIHBn c3RhdF9yZXBvcnRfYW5hbHl6ZShSZWxhdGlvbiByZWwsCiAJCQkJCSAgYm9vbCByZXNldGNv dW50ZXIpCiB7CiAJUGdTdGF0X0VudHJ5UmVmICplbnRyeV9yZWY7Ci0JUGdTdGF0U2hhcmVk X1JlbGF0aW9uICpzaHRhYmVudHJ5OworCVBnU3RhdFNoYXJlZF9UYWJsZSAqc2h0YWJlbnRy eTsKIAlQZ1N0YXRfU3RhdFRhYkVudHJ5ICp0YWJlbnRyeTsKIAlPaWQJCQlkYm9pZCA9IChy ZWwtPnJkX3JlbC0+cmVsaXNzaGFyZWQgPyBJbnZhbGlkT2lkIDogTXlEYXRhYmFzZUlkKTsK IApAQCAtMjkwLDMxICsyNjYsMzEgQEAgcGdzdGF0X3JlcG9ydF9hbmFseXplKFJlbGF0aW9u IHJlbCwKIAkgKgogCSAqIFdhc3RlIG5vIHRpbWUgb24gcGFydGl0aW9uZWQgdGFibGVzLCB0 aG91Z2guCiAJICovCi0JaWYgKHBnc3RhdF9zaG91bGRfY291bnRfcmVsYXRpb24ocmVsKSAm JgorCWlmIChwZ3N0YXRfc2hvdWxkX2NvdW50X3RhYmxlKHJlbCkgJiYKIAkJcmVsLT5yZF9y ZWwtPnJlbGtpbmQgIT0gUkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSkKIAl7CiAJCVBnU3Rh dF9UYWJsZVhhY3RTdGF0dXMgKnRyYW5zOwogCi0JCWZvciAodHJhbnMgPSByZWwtPnBnc3Rh dF9pbmZvLT50cmFuczsgdHJhbnM7IHRyYW5zID0gdHJhbnMtPnVwcGVyKQorCQlmb3IgKHRy YW5zID0gcmVsLT5wZ3N0YXR0YWJfaW5mby0+dHJhbnM7IHRyYW5zOyB0cmFucyA9IHRyYW5z LT51cHBlcikKIAkJewogCQkJbGl2ZXR1cGxlcyAtPSB0cmFucy0+dHVwbGVzX2luc2VydGVk IC0gdHJhbnMtPnR1cGxlc19kZWxldGVkOwogCQkJZGVhZHR1cGxlcyAtPSB0cmFucy0+dHVw bGVzX3VwZGF0ZWQgKyB0cmFucy0+dHVwbGVzX2RlbGV0ZWQ7CiAJCX0KIAkJLyogY291bnQg c3R1ZmYgaW5zZXJ0ZWQgYnkgYWxyZWFkeS1hYm9ydGVkIHN1YnhhY3RzLCB0b28gKi8KLQkJ ZGVhZHR1cGxlcyAtPSByZWwtPnBnc3RhdF9pbmZvLT50X2NvdW50cy50X2RlbHRhX2RlYWRf dHVwbGVzOworCQlkZWFkdHVwbGVzIC09IHJlbC0+cGdzdGF0dGFiX2luZm8tPnRfY291bnRz LnRfZGVsdGFfZGVhZF90dXBsZXM7CiAJCS8qIFNpbmNlIEFOQUxZWkUncyBjb3VudHMgYXJl IGVzdGltYXRlcywgd2UgY291bGQgaGF2ZSB1bmRlcmZsb3dlZCAqLwogCQlsaXZldHVwbGVz ID0gTWF4KGxpdmV0dXBsZXMsIDApOwogCQlkZWFkdHVwbGVzID0gTWF4KGRlYWR0dXBsZXMs IDApOwogCX0KIAogCS8qIGJsb2NrIGFjcXVpcmluZyBsb2NrIGZvciB0aGUgc2FtZSByZWFz b24gYXMgcGdzdGF0X3JlcG9ydF9hdXRvdmFjKCkgKi8KLQllbnRyeV9yZWYgPSBwZ3N0YXRf Z2V0X2VudHJ5X3JlZl9sb2NrZWQoUEdTVEFUX0tJTkRfUkVMQVRJT04sIGRib2lkLAorCWVu dHJ5X3JlZiA9IHBnc3RhdF9nZXRfZW50cnlfcmVmX2xvY2tlZChQR1NUQVRfS0lORF9UQUJM RSwgZGJvaWQsCiAJCQkJCQkJCQkJCVJlbGF0aW9uR2V0UmVsaWQocmVsKSwKIAkJCQkJCQkJ CQkJZmFsc2UpOwogCS8qIGNhbid0IGdldCBkcm9wcGVkIHdoaWxlIGFjY2Vzc2VkICovCiAJ QXNzZXJ0KGVudHJ5X3JlZiAhPSBOVUxMICYmIGVudHJ5X3JlZi0+c2hhcmVkX3N0YXRzICE9 IE5VTEwpOwogCi0Jc2h0YWJlbnRyeSA9IChQZ1N0YXRTaGFyZWRfUmVsYXRpb24gKikgZW50 cnlfcmVmLT5zaGFyZWRfc3RhdHM7CisJc2h0YWJlbnRyeSA9IChQZ1N0YXRTaGFyZWRfVGFi bGUgKikgZW50cnlfcmVmLT5zaGFyZWRfc3RhdHM7CiAJdGFiZW50cnkgPSAmc2h0YWJlbnRy eS0+c3RhdHM7CiAKIAl0YWJlbnRyeS0+bl9saXZlX3R1cGxlcyA9IGxpdmV0dXBsZXM7CkBA IC0zNDgsMTIgKzMyNCwxMiBAQCBwZ3N0YXRfcmVwb3J0X2FuYWx5emUoUmVsYXRpb24gcmVs LAogdm9pZAogcGdzdGF0X2NvdW50X2hlYXBfaW5zZXJ0KFJlbGF0aW9uIHJlbCwgUGdTdGF0 X0NvdW50ZXIgbikKIHsKLQlpZiAocGdzdGF0X3Nob3VsZF9jb3VudF9yZWxhdGlvbihyZWwp KQorCWlmIChwZ3N0YXRfc2hvdWxkX2NvdW50X3RhYmxlKHJlbCkpCiAJewotCQlQZ1N0YXRf VGFibGVTdGF0dXMgKnBnc3RhdF9pbmZvID0gcmVsLT5wZ3N0YXRfaW5mbzsKKwkJUGdTdGF0 X1RhYmxlU3RhdHVzICpwZ3N0YXR0YWJfaW5mbyA9IHJlbC0+cGdzdGF0dGFiX2luZm87CiAK LQkJZW5zdXJlX3RhYnN0YXRfeGFjdF9sZXZlbChwZ3N0YXRfaW5mbyk7Ci0JCXBnc3RhdF9p bmZvLT50cmFucy0+dHVwbGVzX2luc2VydGVkICs9IG47CisJCWVuc3VyZV90YWJzdGF0X3hh Y3RfbGV2ZWwocGdzdGF0dGFiX2luZm8pOworCQlwZ3N0YXR0YWJfaW5mby0+dHJhbnMtPnR1 cGxlc19pbnNlcnRlZCArPSBuOwogCX0KIH0KIApAQCAtMzYzLDE2ICszMzksMTYgQEAgcGdz dGF0X2NvdW50X2hlYXBfaW5zZXJ0KFJlbGF0aW9uIHJlbCwgUGdTdGF0X0NvdW50ZXIgbikK IHZvaWQKIHBnc3RhdF9jb3VudF9oZWFwX3VwZGF0ZShSZWxhdGlvbiByZWwsIGJvb2wgaG90 KQogewotCWlmIChwZ3N0YXRfc2hvdWxkX2NvdW50X3JlbGF0aW9uKHJlbCkpCisJaWYgKHBn c3RhdF9zaG91bGRfY291bnRfdGFibGUocmVsKSkKIAl7Ci0JCVBnU3RhdF9UYWJsZVN0YXR1 cyAqcGdzdGF0X2luZm8gPSByZWwtPnBnc3RhdF9pbmZvOworCQlQZ1N0YXRfVGFibGVTdGF0 dXMgKnBnc3RhdHRhYl9pbmZvID0gcmVsLT5wZ3N0YXR0YWJfaW5mbzsKIAotCQllbnN1cmVf dGFic3RhdF94YWN0X2xldmVsKHBnc3RhdF9pbmZvKTsKLQkJcGdzdGF0X2luZm8tPnRyYW5z LT50dXBsZXNfdXBkYXRlZCsrOworCQllbnN1cmVfdGFic3RhdF94YWN0X2xldmVsKHBnc3Rh dHRhYl9pbmZvKTsKKwkJcGdzdGF0dGFiX2luZm8tPnRyYW5zLT50dXBsZXNfdXBkYXRlZCsr OwogCiAJCS8qIHRfdHVwbGVzX2hvdF91cGRhdGVkIGlzIG5vbnRyYW5zYWN0aW9uYWwsIHNv IGp1c3QgYWR2YW5jZSBpdCAqLwogCQlpZiAoaG90KQotCQkJcGdzdGF0X2luZm8tPnRfY291 bnRzLnRfdHVwbGVzX2hvdF91cGRhdGVkKys7CisJCQlwZ3N0YXR0YWJfaW5mby0+dF9jb3Vu dHMudF90dXBsZXNfaG90X3VwZGF0ZWQrKzsKIAl9CiB9CiAKQEAgLTM4MiwxMiArMzU4LDEy IEBAIHBnc3RhdF9jb3VudF9oZWFwX3VwZGF0ZShSZWxhdGlvbiByZWwsIGJvb2wgaG90KQog dm9pZAogcGdzdGF0X2NvdW50X2hlYXBfZGVsZXRlKFJlbGF0aW9uIHJlbCkKIHsKLQlpZiAo cGdzdGF0X3Nob3VsZF9jb3VudF9yZWxhdGlvbihyZWwpKQorCWlmIChwZ3N0YXRfc2hvdWxk X2NvdW50X3RhYmxlKHJlbCkpCiAJewotCQlQZ1N0YXRfVGFibGVTdGF0dXMgKnBnc3RhdF9p bmZvID0gcmVsLT5wZ3N0YXRfaW5mbzsKKwkJUGdTdGF0X1RhYmxlU3RhdHVzICpwZ3N0YXR0 YWJfaW5mbyA9IHJlbC0+cGdzdGF0dGFiX2luZm87CiAKLQkJZW5zdXJlX3RhYnN0YXRfeGFj dF9sZXZlbChwZ3N0YXRfaW5mbyk7Ci0JCXBnc3RhdF9pbmZvLT50cmFucy0+dHVwbGVzX2Rl bGV0ZWQrKzsKKwkJZW5zdXJlX3RhYnN0YXRfeGFjdF9sZXZlbChwZ3N0YXR0YWJfaW5mbyk7 CisJCXBnc3RhdHRhYl9pbmZvLT50cmFucy0+dHVwbGVzX2RlbGV0ZWQrKzsKIAl9CiB9CiAK QEAgLTM5NywxNSArMzczLDE1IEBAIHBnc3RhdF9jb3VudF9oZWFwX2RlbGV0ZShSZWxhdGlv biByZWwpCiB2b2lkCiBwZ3N0YXRfY291bnRfdHJ1bmNhdGUoUmVsYXRpb24gcmVsKQogewot CWlmIChwZ3N0YXRfc2hvdWxkX2NvdW50X3JlbGF0aW9uKHJlbCkpCisJaWYgKHBnc3RhdF9z aG91bGRfY291bnRfdGFibGUocmVsKSkKIAl7Ci0JCVBnU3RhdF9UYWJsZVN0YXR1cyAqcGdz dGF0X2luZm8gPSByZWwtPnBnc3RhdF9pbmZvOworCQlQZ1N0YXRfVGFibGVTdGF0dXMgKnBn c3RhdHRhYl9pbmZvID0gcmVsLT5wZ3N0YXR0YWJfaW5mbzsKIAotCQllbnN1cmVfdGFic3Rh dF94YWN0X2xldmVsKHBnc3RhdF9pbmZvKTsKLQkJc2F2ZV90cnVuY2Ryb3BfY291bnRlcnMo cGdzdGF0X2luZm8tPnRyYW5zLCBmYWxzZSk7Ci0JCXBnc3RhdF9pbmZvLT50cmFucy0+dHVw bGVzX2luc2VydGVkID0gMDsKLQkJcGdzdGF0X2luZm8tPnRyYW5zLT50dXBsZXNfdXBkYXRl ZCA9IDA7Ci0JCXBnc3RhdF9pbmZvLT50cmFucy0+dHVwbGVzX2RlbGV0ZWQgPSAwOworCQll bnN1cmVfdGFic3RhdF94YWN0X2xldmVsKHBnc3RhdHRhYl9pbmZvKTsKKwkJc2F2ZV90cnVu Y2Ryb3BfY291bnRlcnMocGdzdGF0dGFiX2luZm8tPnRyYW5zLCBmYWxzZSk7CisJCXBnc3Rh dHRhYl9pbmZvLT50cmFucy0+dHVwbGVzX2luc2VydGVkID0gMDsKKwkJcGdzdGF0dGFiX2lu Zm8tPnRyYW5zLT50dXBsZXNfdXBkYXRlZCA9IDA7CisJCXBnc3RhdHRhYl9pbmZvLT50cmFu cy0+dHVwbGVzX2RlbGV0ZWQgPSAwOwogCX0KIH0KIApAQCAtNDIwLDExICszOTYsMTEgQEAg cGdzdGF0X2NvdW50X3RydW5jYXRlKFJlbGF0aW9uIHJlbCkKIHZvaWQKIHBnc3RhdF91cGRh dGVfaGVhcF9kZWFkX3R1cGxlcyhSZWxhdGlvbiByZWwsIGludCBkZWx0YSkKIHsKLQlpZiAo cGdzdGF0X3Nob3VsZF9jb3VudF9yZWxhdGlvbihyZWwpKQorCWlmIChwZ3N0YXRfc2hvdWxk X2NvdW50X3RhYmxlKHJlbCkpCiAJewotCQlQZ1N0YXRfVGFibGVTdGF0dXMgKnBnc3RhdF9p bmZvID0gcmVsLT5wZ3N0YXRfaW5mbzsKKwkJUGdTdGF0X1RhYmxlU3RhdHVzICpwZ3N0YXR0 YWJfaW5mbyA9IHJlbC0+cGdzdGF0dGFiX2luZm87CiAKLQkJcGdzdGF0X2luZm8tPnRfY291 bnRzLnRfZGVsdGFfZGVhZF90dXBsZXMgLT0gZGVsdGE7CisJCXBnc3RhdHRhYl9pbmZvLT50 X2NvdW50cy50X2RlbHRhX2RlYWRfdHVwbGVzIC09IGRlbHRhOwogCX0KIH0KIApAQCAtNDYw LDcgKzQzNiw3IEBAIHBnc3RhdF9mZXRjaF9zdGF0X3RhYmVudHJ5X2V4dChib29sIHNoYXJl ZCwgT2lkIHJlbG9pZCkKIAlPaWQJCQlkYm9pZCA9IChzaGFyZWQgPyBJbnZhbGlkT2lkIDog TXlEYXRhYmFzZUlkKTsKIAogCXJldHVybiAoUGdTdGF0X1N0YXRUYWJFbnRyeSAqKQotCQlw Z3N0YXRfZmV0Y2hfZW50cnkoUEdTVEFUX0tJTkRfUkVMQVRJT04sIGRib2lkLCByZWxvaWQp OworCQlwZ3N0YXRfZmV0Y2hfZW50cnkoUEdTVEFUX0tJTkRfVEFCTEUsIGRib2lkLCByZWxv aWQpOwogfQogCiAvKgpAQCAtNDc2LDkgKzQ1Miw5IEBAIGZpbmRfdGFic3RhdF9lbnRyeShP aWQgcmVsX2lkKQogewogCVBnU3RhdF9FbnRyeVJlZiAqZW50cnlfcmVmOwogCi0JZW50cnlf cmVmID0gcGdzdGF0X2ZldGNoX3BlbmRpbmdfZW50cnkoUEdTVEFUX0tJTkRfUkVMQVRJT04s IE15RGF0YWJhc2VJZCwgcmVsX2lkKTsKKwllbnRyeV9yZWYgPSBwZ3N0YXRfZmV0Y2hfcGVu ZGluZ19lbnRyeShQR1NUQVRfS0lORF9UQUJMRSwgTXlEYXRhYmFzZUlkLCByZWxfaWQpOwog CWlmICghZW50cnlfcmVmKQotCQllbnRyeV9yZWYgPSBwZ3N0YXRfZmV0Y2hfcGVuZGluZ19l bnRyeShQR1NUQVRfS0lORF9SRUxBVElPTiwgSW52YWxpZE9pZCwgcmVsX2lkKTsKKwkJZW50 cnlfcmVmID0gcGdzdGF0X2ZldGNoX3BlbmRpbmdfZW50cnkoUEdTVEFUX0tJTkRfVEFCTEUs IEludmFsaWRPaWQsIHJlbF9pZCk7CiAKIAlpZiAoZW50cnlfcmVmKQogCQlyZXR1cm4gZW50 cnlfcmVmLT5wZW5kaW5nOwpAQCAtNDg2LDcgKzQ2Miw3IEBAIGZpbmRfdGFic3RhdF9lbnRy eShPaWQgcmVsX2lkKQogfQogCiAvKgotICogUGVyZm9ybSByZWxhdGlvbiBzdGF0cyBzcGVj aWZpYyBlbmQtb2YtdHJhbnNhY3Rpb24gd29yay4gSGVscGVyIGZvcgorICogUGVyZm9ybSB0 YWJsZSBzdGF0cyBzcGVjaWZpYyBlbmQtb2YtdHJhbnNhY3Rpb24gd29yay4gSGVscGVyIGZv cgogICogQXRFT1hhY3RfUGdTdGF0LgogICoKICAqIFRyYW5zZmVyIHRyYW5zYWN0aW9uYWwg aW5zZXJ0L3VwZGF0ZSBjb3VudHMgaW50byB0aGUgYmFzZSB0YWJzdGF0IGVudHJpZXMuCkBA IC00OTQsNyArNDcwLDcgQEAgZmluZF90YWJzdGF0X2VudHJ5KE9pZCByZWxfaWQpCiAgKiBU b3BUcmFuc2FjdGlvbkNvbnRleHQgYW5kIHdpbGwgZ28gYXdheSBhbnl3YXkuCiAgKi8KIHZv aWQKLUF0RU9YYWN0X1BnU3RhdF9SZWxhdGlvbnMoUGdTdGF0X1N1YlhhY3RTdGF0dXMgKnhh Y3Rfc3RhdGUsIGJvb2wgaXNDb21taXQpCitBdEVPWGFjdF9QZ1N0YXRfVGFibGVzKFBnU3Rh dF9TdWJYYWN0U3RhdHVzICp4YWN0X3N0YXRlLCBib29sIGlzQ29tbWl0KQogewogCVBnU3Rh dF9UYWJsZVhhY3RTdGF0dXMgKnRyYW5zOwogCkBAIC01NDUsMTQgKzUyMSwxNCBAQCBBdEVP WGFjdF9QZ1N0YXRfUmVsYXRpb25zKFBnU3RhdF9TdWJYYWN0U3RhdHVzICp4YWN0X3N0YXRl LCBib29sIGlzQ29tbWl0KQogfQogCiAvKgotICogUGVyZm9ybSByZWxhdGlvbiBzdGF0cyBz cGVjaWZpYyBlbmQtb2Ytc3ViLXRyYW5zYWN0aW9uIHdvcmsuIEhlbHBlciBmb3IKKyAqIFBl cmZvcm0gdGFibGUgc3RhdHMgc3BlY2lmaWMgZW5kLW9mLXN1Yi10cmFuc2FjdGlvbiB3b3Jr LiBIZWxwZXIgZm9yCiAgKiBBdEVPU3ViWGFjdF9QZ1N0YXQuCiAgKgogICogVHJhbnNmZXIg dHJhbnNhY3Rpb25hbCBpbnNlcnQvdXBkYXRlIGNvdW50cyBpbnRvIHRoZSBuZXh0IGhpZ2hl cgogICogc3VidHJhbnNhY3Rpb24gc3RhdGUuCiAgKi8KIHZvaWQKLUF0RU9TdWJYYWN0X1Bn U3RhdF9SZWxhdGlvbnMoUGdTdGF0X1N1YlhhY3RTdGF0dXMgKnhhY3Rfc3RhdGUsIGJvb2wg aXNDb21taXQsIGludCBuZXN0RGVwdGgpCitBdEVPU3ViWGFjdF9QZ1N0YXRfVGFibGVzKFBn U3RhdF9TdWJYYWN0U3RhdHVzICp4YWN0X3N0YXRlLCBib29sIGlzQ29tbWl0LCBpbnQgbmVz dERlcHRoKQogewogCVBnU3RhdF9UYWJsZVhhY3RTdGF0dXMgKnRyYW5zOwogCVBnU3RhdF9U YWJsZVhhY3RTdGF0dXMgKm5leHRfdHJhbnM7CkBAIC02MjksMTEgKzYwNSwxMSBAQCBBdEVP U3ViWGFjdF9QZ1N0YXRfUmVsYXRpb25zKFBnU3RhdF9TdWJYYWN0U3RhdHVzICp4YWN0X3N0 YXRlLCBib29sIGlzQ29tbWl0LCBpbgogfQogCiAvKgotICogR2VuZXJhdGUgMlBDIHJlY29y ZHMgZm9yIGFsbCB0aGUgcGVuZGluZyB0cmFuc2FjdGlvbi1kZXBlbmRlbnQgcmVsYXRpb24K KyAqIEdlbmVyYXRlIDJQQyByZWNvcmRzIGZvciBhbGwgdGhlIHBlbmRpbmcgdHJhbnNhY3Rp b24tZGVwZW5kZW50IHRhYmxlCiAgKiBzdGF0cy4KICAqLwogdm9pZAotQXRQcmVwYXJlX1Bn U3RhdF9SZWxhdGlvbnMoUGdTdGF0X1N1YlhhY3RTdGF0dXMgKnhhY3Rfc3RhdGUpCitBdFBy ZXBhcmVfUGdTdGF0X1RhYmxlcyhQZ1N0YXRfU3ViWGFjdFN0YXR1cyAqeGFjdF9zdGF0ZSkK IHsKIAlQZ1N0YXRfVGFibGVYYWN0U3RhdHVzICp0cmFuczsKIApAQCAtNjY4LDEwICs2NDQs MTAgQEAgQXRQcmVwYXJlX1BnU3RhdF9SZWxhdGlvbnMoUGdTdGF0X1N1YlhhY3RTdGF0dXMg KnhhY3Rfc3RhdGUpCiAgKiByZXBvcnRlZCB0byB0aGUgc3RhdHMgc3lzdGVtIGltbWVkaWF0 ZWx5LCB3aGlsZSB0aGUgZWZmZWN0cyBvbiBsaXZlIGFuZAogICogZGVhZCB0dXBsZSBjb3Vu dHMgYXJlIHByZXNlcnZlZCBpbiB0aGUgMlBDIHN0YXRlIGZpbGUuCiAgKgotICogTm90ZTog QXRFT1hhY3RfUGdTdGF0X1JlbGF0aW9ucyBpcyBub3QgY2FsbGVkIGR1cmluZyBQUkVQQVJF LgorICogTm90ZTogQXRFT1hhY3RfUGdTdGF0X1RhYmxlcyBpcyBub3QgY2FsbGVkIGR1cmlu ZyBQUkVQQVJFLgogICovCiB2b2lkCi1Qb3N0UHJlcGFyZV9QZ1N0YXRfUmVsYXRpb25zKFBn U3RhdF9TdWJYYWN0U3RhdHVzICp4YWN0X3N0YXRlKQorUG9zdFByZXBhcmVfUGdTdGF0X1Rh YmxlcyhQZ1N0YXRfU3ViWGFjdFN0YXR1cyAqeGFjdF9zdGF0ZSkKIHsKIAlQZ1N0YXRfVGFi bGVYYWN0U3RhdHVzICp0cmFuczsKIApAQCAtNjk0LDI3ICs2NzAsMjcgQEAgcGdzdGF0X3R3 b3BoYXNlX3Bvc3Rjb21taXQoVHJhbnNhY3Rpb25JZCB4aWQsIHVpbnQxNiBpbmZvLAogCQkJ CQkJICAgdm9pZCAqcmVjZGF0YSwgdWludDMyIGxlbikKIHsKIAlUd29QaGFzZVBnU3RhdFJl Y29yZCAqcmVjID0gKFR3b1BoYXNlUGdTdGF0UmVjb3JkICopIHJlY2RhdGE7Ci0JUGdTdGF0 X1RhYmxlU3RhdHVzICpwZ3N0YXRfaW5mbzsKKwlQZ1N0YXRfVGFibGVTdGF0dXMgKnBnc3Rh dHRhYl9pbmZvOwogCiAJLyogRmluZCBvciBjcmVhdGUgYSB0YWJzdGF0IGVudHJ5IGZvciB0 aGUgcmVsICovCi0JcGdzdGF0X2luZm8gPSBwZ3N0YXRfcHJlcF9yZWxhdGlvbl9wZW5kaW5n KHJlYy0+dF9pZCwgcmVjLT50X3NoYXJlZCk7CisJcGdzdGF0dGFiX2luZm8gPSBwZ3N0YXRf cHJlcF90YWJsZV9wZW5kaW5nKHJlYy0+dF9pZCwgcmVjLT50X3NoYXJlZCk7CiAKIAkvKiBT YW1lIG1hdGggYXMgaW4gQXRFT1hhY3RfUGdTdGF0LCBjb21taXQgY2FzZSAqLwotCXBnc3Rh dF9pbmZvLT50X2NvdW50cy50X3R1cGxlc19pbnNlcnRlZCArPSByZWMtPnR1cGxlc19pbnNl cnRlZDsKLQlwZ3N0YXRfaW5mby0+dF9jb3VudHMudF90dXBsZXNfdXBkYXRlZCArPSByZWMt PnR1cGxlc191cGRhdGVkOwotCXBnc3RhdF9pbmZvLT50X2NvdW50cy50X3R1cGxlc19kZWxl dGVkICs9IHJlYy0+dHVwbGVzX2RlbGV0ZWQ7Ci0JcGdzdGF0X2luZm8tPnRfY291bnRzLnRf dHJ1bmNkcm9wcGVkID0gcmVjLT50X3RydW5jZHJvcHBlZDsKKwlwZ3N0YXR0YWJfaW5mby0+ dF9jb3VudHMudF90dXBsZXNfaW5zZXJ0ZWQgKz0gcmVjLT50dXBsZXNfaW5zZXJ0ZWQ7CisJ cGdzdGF0dGFiX2luZm8tPnRfY291bnRzLnRfdHVwbGVzX3VwZGF0ZWQgKz0gcmVjLT50dXBs ZXNfdXBkYXRlZDsKKwlwZ3N0YXR0YWJfaW5mby0+dF9jb3VudHMudF90dXBsZXNfZGVsZXRl ZCArPSByZWMtPnR1cGxlc19kZWxldGVkOworCXBnc3RhdHRhYl9pbmZvLT50X2NvdW50cy50 X3RydW5jZHJvcHBlZCA9IHJlYy0+dF90cnVuY2Ryb3BwZWQ7CiAJaWYgKHJlYy0+dF90cnVu Y2Ryb3BwZWQpCiAJewogCQkvKiBmb3JnZXQgbGl2ZS9kZWFkIHN0YXRzIHNlZW4gYnkgYmFj a2VuZCB0aHVzIGZhciAqLwotCQlwZ3N0YXRfaW5mby0+dF9jb3VudHMudF9kZWx0YV9saXZl X3R1cGxlcyA9IDA7Ci0JCXBnc3RhdF9pbmZvLT50X2NvdW50cy50X2RlbHRhX2RlYWRfdHVw bGVzID0gMDsKKwkJcGdzdGF0dGFiX2luZm8tPnRfY291bnRzLnRfZGVsdGFfbGl2ZV90dXBs ZXMgPSAwOworCQlwZ3N0YXR0YWJfaW5mby0+dF9jb3VudHMudF9kZWx0YV9kZWFkX3R1cGxl cyA9IDA7CiAJfQotCXBnc3RhdF9pbmZvLT50X2NvdW50cy50X2RlbHRhX2xpdmVfdHVwbGVz ICs9CisJcGdzdGF0dGFiX2luZm8tPnRfY291bnRzLnRfZGVsdGFfbGl2ZV90dXBsZXMgKz0K IAkJcmVjLT50dXBsZXNfaW5zZXJ0ZWQgLSByZWMtPnR1cGxlc19kZWxldGVkOwotCXBnc3Rh dF9pbmZvLT50X2NvdW50cy50X2RlbHRhX2RlYWRfdHVwbGVzICs9CisJcGdzdGF0dGFiX2lu Zm8tPnRfY291bnRzLnRfZGVsdGFfZGVhZF90dXBsZXMgKz0KIAkJcmVjLT50dXBsZXNfdXBk YXRlZCArIHJlYy0+dHVwbGVzX2RlbGV0ZWQ7Ci0JcGdzdGF0X2luZm8tPnRfY291bnRzLnRf Y2hhbmdlZF90dXBsZXMgKz0KKwlwZ3N0YXR0YWJfaW5mby0+dF9jb3VudHMudF9jaGFuZ2Vk X3R1cGxlcyArPQogCQlyZWMtPnR1cGxlc19pbnNlcnRlZCArIHJlYy0+dHVwbGVzX3VwZGF0 ZWQgKwogCQlyZWMtPnR1cGxlc19kZWxldGVkOwogfQpAQCAtNzMwLDEwICs3MDYsMTAgQEAg cGdzdGF0X3R3b3BoYXNlX3Bvc3RhYm9ydChUcmFuc2FjdGlvbklkIHhpZCwgdWludDE2IGlu Zm8sCiAJCQkJCQkgIHZvaWQgKnJlY2RhdGEsIHVpbnQzMiBsZW4pCiB7CiAJVHdvUGhhc2VQ Z1N0YXRSZWNvcmQgKnJlYyA9IChUd29QaGFzZVBnU3RhdFJlY29yZCAqKSByZWNkYXRhOwot CVBnU3RhdF9UYWJsZVN0YXR1cyAqcGdzdGF0X2luZm87CisJUGdTdGF0X1RhYmxlU3RhdHVz ICpwZ3N0YXR0YWJfaW5mbzsKIAogCS8qIEZpbmQgb3IgY3JlYXRlIGEgdGFic3RhdCBlbnRy eSBmb3IgdGhlIHJlbCAqLwotCXBnc3RhdF9pbmZvID0gcGdzdGF0X3ByZXBfcmVsYXRpb25f cGVuZGluZyhyZWMtPnRfaWQsIHJlYy0+dF9zaGFyZWQpOworCXBnc3RhdHRhYl9pbmZvID0g cGdzdGF0X3ByZXBfdGFibGVfcGVuZGluZyhyZWMtPnRfaWQsIHJlYy0+dF9zaGFyZWQpOwog CiAJLyogU2FtZSBtYXRoIGFzIGluIEF0RU9YYWN0X1BnU3RhdCwgYWJvcnQgY2FzZSAqLwog CWlmIChyZWMtPnRfdHJ1bmNkcm9wcGVkKQpAQCAtNzQyLDEwICs3MTgsMTAgQEAgcGdzdGF0 X3R3b3BoYXNlX3Bvc3RhYm9ydChUcmFuc2FjdGlvbklkIHhpZCwgdWludDE2IGluZm8sCiAJ CXJlYy0+dHVwbGVzX3VwZGF0ZWQgPSByZWMtPnVwZGF0ZWRfcHJlX3RydW5jZHJvcDsKIAkJ cmVjLT50dXBsZXNfZGVsZXRlZCA9IHJlYy0+ZGVsZXRlZF9wcmVfdHJ1bmNkcm9wOwogCX0K LQlwZ3N0YXRfaW5mby0+dF9jb3VudHMudF90dXBsZXNfaW5zZXJ0ZWQgKz0gcmVjLT50dXBs ZXNfaW5zZXJ0ZWQ7Ci0JcGdzdGF0X2luZm8tPnRfY291bnRzLnRfdHVwbGVzX3VwZGF0ZWQg Kz0gcmVjLT50dXBsZXNfdXBkYXRlZDsKLQlwZ3N0YXRfaW5mby0+dF9jb3VudHMudF90dXBs ZXNfZGVsZXRlZCArPSByZWMtPnR1cGxlc19kZWxldGVkOwotCXBnc3RhdF9pbmZvLT50X2Nv dW50cy50X2RlbHRhX2RlYWRfdHVwbGVzICs9CisJcGdzdGF0dGFiX2luZm8tPnRfY291bnRz LnRfdHVwbGVzX2luc2VydGVkICs9IHJlYy0+dHVwbGVzX2luc2VydGVkOworCXBnc3RhdHRh Yl9pbmZvLT50X2NvdW50cy50X3R1cGxlc191cGRhdGVkICs9IHJlYy0+dHVwbGVzX3VwZGF0 ZWQ7CisJcGdzdGF0dGFiX2luZm8tPnRfY291bnRzLnRfdHVwbGVzX2RlbGV0ZWQgKz0gcmVj LT50dXBsZXNfZGVsZXRlZDsKKwlwZ3N0YXR0YWJfaW5mby0+dF9jb3VudHMudF9kZWx0YV9k ZWFkX3R1cGxlcyArPQogCQlyZWMtPnR1cGxlc19pbnNlcnRlZCArIHJlYy0+dHVwbGVzX3Vw ZGF0ZWQ7CiB9CiAKQEAgLTc1OSwyMiArNzM1LDIxIEBAIHBnc3RhdF90d29waGFzZV9wb3N0 YWJvcnQoVHJhbnNhY3Rpb25JZCB4aWQsIHVpbnQxNiBpbmZvLAogICogZW50cnkgd2hlbiBz dWNjZXNzZnVsbHkgZmx1c2hpbmcuCiAgKi8KIGJvb2wKLXBnc3RhdF9yZWxhdGlvbl9mbHVz aF9jYihQZ1N0YXRfRW50cnlSZWYgKmVudHJ5X3JlZiwgYm9vbCBub3dhaXQpCitwZ3N0YXRf dGFibGVfZmx1c2hfY2IoUGdTdGF0X0VudHJ5UmVmICplbnRyeV9yZWYsIGJvb2wgbm93YWl0 KQogewogCXN0YXRpYyBjb25zdCBQZ1N0YXRfVGFibGVDb3VudHMgYWxsX3plcm9lczsKIAlP aWQJCQlkYm9pZDsKIAlQZ1N0YXRfVGFibGVTdGF0dXMgKmxzdGF0czsgLyogcGVuZGluZyBz dGF0cyBlbnRyeSAgKi8KLQlQZ1N0YXRTaGFyZWRfUmVsYXRpb24gKnNodGFic3RhdHM7CisJ UGdTdGF0U2hhcmVkX1RhYmxlICpzaHRhYnN0YXRzOwogCVBnU3RhdF9TdGF0VGFiRW50cnkg KnRhYmVudHJ5OwkvKiB0YWJsZSBlbnRyeSBvZiBzaGFyZWQgc3RhdHMgKi8KIAlQZ1N0YXRf U3RhdERCRW50cnkgKmRiZW50cnk7CS8qIHBlbmRpbmcgZGF0YWJhc2UgZW50cnkgKi8KIAog CWRib2lkID0gZW50cnlfcmVmLT5zaGFyZWRfZW50cnktPmtleS5kYm9pZDsKIAlsc3RhdHMg PSAoUGdTdGF0X1RhYmxlU3RhdHVzICopIGVudHJ5X3JlZi0+cGVuZGluZzsKLQlzaHRhYnN0 YXRzID0gKFBnU3RhdFNoYXJlZF9SZWxhdGlvbiAqKSBlbnRyeV9yZWYtPnNoYXJlZF9zdGF0 czsKKwlzaHRhYnN0YXRzID0gKFBnU3RhdFNoYXJlZF9UYWJsZSAqKSBlbnRyeV9yZWYtPnNo YXJlZF9zdGF0czsKIAogCS8qCi0JICogSWdub3JlIGVudHJpZXMgdGhhdCBkaWRuJ3QgYWNj dW11bGF0ZSBhbnkgYWN0dWFsIGNvdW50cywgc3VjaCBhcwotCSAqIGluZGV4ZXMgdGhhdCB3 ZXJlIG9wZW5lZCBieSB0aGUgcGxhbm5lciBidXQgbm90IHVzZWQuCisJICogSWdub3JlIGVu dHJpZXMgdGhhdCBkaWRuJ3QgYWNjdW11bGF0ZSBhbnkgYWN0dWFsIGNvdW50cy4KIAkgKi8K IAlpZiAobWVtY21wKCZsc3RhdHMtPnRfY291bnRzLCAmYWxsX3plcm9lcywKIAkJCSAgIHNp emVvZihQZ1N0YXRfVGFibGVDb3VudHMpKSA9PSAwKQpAQCAtNzkyLDYgKzc2Nyw3IEBAIHBn c3RhdF9yZWxhdGlvbl9mbHVzaF9jYihQZ1N0YXRfRW50cnlSZWYgKmVudHJ5X3JlZiwgYm9v bCBub3dhaXQpCiAJaWYgKGxzdGF0cy0+dF9jb3VudHMudF9udW1zY2FucykKIAl7CiAJCVRp bWVzdGFtcFR6IHQgPSBHZXRDdXJyZW50VHJhbnNhY3Rpb25TdG9wVGltZXN0YW1wKCk7CisK IAkJaWYgKHQgPiB0YWJlbnRyeS0+bGFzdHNjYW4pCiAJCQl0YWJlbnRyeS0+bGFzdHNjYW4g PSB0OwogCX0KQEAgLTg0MCwxMiArODE2LDEyIEBAIHBnc3RhdF9yZWxhdGlvbl9mbHVzaF9j YihQZ1N0YXRfRW50cnlSZWYgKmVudHJ5X3JlZiwgYm9vbCBub3dhaXQpCiB9CiAKIHZvaWQK LXBnc3RhdF9yZWxhdGlvbl9kZWxldGVfcGVuZGluZ19jYihQZ1N0YXRfRW50cnlSZWYgKmVu dHJ5X3JlZikKK3Bnc3RhdF90YWJsZV9kZWxldGVfcGVuZGluZ19jYihQZ1N0YXRfRW50cnlS ZWYgKmVudHJ5X3JlZikKIHsKIAlQZ1N0YXRfVGFibGVTdGF0dXMgKnBlbmRpbmcgPSAoUGdT dGF0X1RhYmxlU3RhdHVzICopIGVudHJ5X3JlZi0+cGVuZGluZzsKIAogCWlmIChwZW5kaW5n LT5yZWxhdGlvbikKLQkJcGdzdGF0X3VubGlua19yZWxhdGlvbihwZW5kaW5nLT5yZWxhdGlv bik7CisJCXBnc3RhdF91bmxpbmtfdGFibGUocGVuZGluZy0+cmVsYXRpb24pOwogfQogCiAv KgpAQCAtODUzLDEyICs4MjksMTIgQEAgcGdzdGF0X3JlbGF0aW9uX2RlbGV0ZV9wZW5kaW5n X2NiKFBnU3RhdF9FbnRyeVJlZiAqZW50cnlfcmVmKQogICogaW5pdGlhbGl6ZWQgaWYgbm90 IGV4aXN0cy4KICAqLwogc3RhdGljIFBnU3RhdF9UYWJsZVN0YXR1cyAqCi1wZ3N0YXRfcHJl cF9yZWxhdGlvbl9wZW5kaW5nKE9pZCByZWxfaWQsIGJvb2wgaXNzaGFyZWQpCitwZ3N0YXRf cHJlcF90YWJsZV9wZW5kaW5nKE9pZCByZWxfaWQsIGJvb2wgaXNzaGFyZWQpCiB7CiAJUGdT dGF0X0VudHJ5UmVmICplbnRyeV9yZWY7CiAJUGdTdGF0X1RhYmxlU3RhdHVzICpwZW5kaW5n OwogCi0JZW50cnlfcmVmID0gcGdzdGF0X3ByZXBfcGVuZGluZ19lbnRyeShQR1NUQVRfS0lO RF9SRUxBVElPTiwKKwllbnRyeV9yZWYgPSBwZ3N0YXRfcHJlcF9wZW5kaW5nX2VudHJ5KFBH U1RBVF9LSU5EX1RBQkxFLAogCQkJCQkJCQkJCSAgaXNzaGFyZWQgPyBJbnZhbGlkT2lkIDog TXlEYXRhYmFzZUlkLAogCQkJCQkJCQkJCSAgcmVsX2lkLCBOVUxMKTsKIAlwZW5kaW5nID0g ZW50cnlfcmVmLT5wZW5kaW5nOwpAQCAtODcyLDcgKzg0OCw3IEBAIHBnc3RhdF9wcmVwX3Jl bGF0aW9uX3BlbmRpbmcoT2lkIHJlbF9pZCwgYm9vbCBpc3NoYXJlZCkKICAqIGFkZCBhIG5l dyAoc3ViKXRyYW5zYWN0aW9uIHN0YXRlIHJlY29yZAogICovCiBzdGF0aWMgdm9pZAotYWRk X3RhYnN0YXRfeGFjdF9sZXZlbChQZ1N0YXRfVGFibGVTdGF0dXMgKnBnc3RhdF9pbmZvLCBp bnQgbmVzdF9sZXZlbCkKK2FkZF90YWJzdGF0X3hhY3RfbGV2ZWwoUGdTdGF0X1RhYmxlU3Rh dHVzICpwZ3N0YXR0YWJfaW5mbywgaW50IG5lc3RfbGV2ZWwpCiB7CiAJUGdTdGF0X1N1Ylhh Y3RTdGF0dXMgKnhhY3Rfc3RhdGU7CiAJUGdTdGF0X1RhYmxlWGFjdFN0YXR1cyAqdHJhbnM7 CkBAIC04ODgsMjQgKzg2NCwyNCBAQCBhZGRfdGFic3RhdF94YWN0X2xldmVsKFBnU3RhdF9U YWJsZVN0YXR1cyAqcGdzdGF0X2luZm8sIGludCBuZXN0X2xldmVsKQogCQlNZW1vcnlDb250 ZXh0QWxsb2NaZXJvKFRvcFRyYW5zYWN0aW9uQ29udGV4dCwKIAkJCQkJCQkgICBzaXplb2Yo UGdTdGF0X1RhYmxlWGFjdFN0YXR1cykpOwogCXRyYW5zLT5uZXN0X2xldmVsID0gbmVzdF9s ZXZlbDsKLQl0cmFucy0+dXBwZXIgPSBwZ3N0YXRfaW5mby0+dHJhbnM7Ci0JdHJhbnMtPnBh cmVudCA9IHBnc3RhdF9pbmZvOworCXRyYW5zLT51cHBlciA9IHBnc3RhdHRhYl9pbmZvLT50 cmFuczsKKwl0cmFucy0+cGFyZW50ID0gcGdzdGF0dGFiX2luZm87CiAJdHJhbnMtPm5leHQg PSB4YWN0X3N0YXRlLT5maXJzdDsKIAl4YWN0X3N0YXRlLT5maXJzdCA9IHRyYW5zOwotCXBn c3RhdF9pbmZvLT50cmFucyA9IHRyYW5zOworCXBnc3RhdHRhYl9pbmZvLT50cmFucyA9IHRy YW5zOwogfQogCiAvKgogICogQWRkIGEgbmV3IChzdWIpdHJhbnNhY3Rpb24gcmVjb3JkIGlm IG5lZWRlZC4KICAqLwogc3RhdGljIHZvaWQKLWVuc3VyZV90YWJzdGF0X3hhY3RfbGV2ZWwo UGdTdGF0X1RhYmxlU3RhdHVzICpwZ3N0YXRfaW5mbykKK2Vuc3VyZV90YWJzdGF0X3hhY3Rf bGV2ZWwoUGdTdGF0X1RhYmxlU3RhdHVzICpwZ3N0YXR0YWJfaW5mbykKIHsKIAlpbnQJCQlu ZXN0X2xldmVsID0gR2V0Q3VycmVudFRyYW5zYWN0aW9uTmVzdExldmVsKCk7CiAKLQlpZiAo cGdzdGF0X2luZm8tPnRyYW5zID09IE5VTEwgfHwKLQkJcGdzdGF0X2luZm8tPnRyYW5zLT5u ZXN0X2xldmVsICE9IG5lc3RfbGV2ZWwpCi0JCWFkZF90YWJzdGF0X3hhY3RfbGV2ZWwocGdz dGF0X2luZm8sIG5lc3RfbGV2ZWwpOworCWlmIChwZ3N0YXR0YWJfaW5mby0+dHJhbnMgPT0g TlVMTCB8fAorCQlwZ3N0YXR0YWJfaW5mby0+dHJhbnMtPm5lc3RfbGV2ZWwgIT0gbmVzdF9s ZXZlbCkKKwkJYWRkX3RhYnN0YXRfeGFjdF9sZXZlbChwZ3N0YXR0YWJfaW5mbywgbmVzdF9s ZXZlbCk7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0 eS9wZ3N0YXRfeGFjdC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X3hh Y3QuYwppbmRleCA1YTNhY2E0YWVmLi44NzBmMWIxMTAzIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfeGFjdC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0 aWxzL2FjdGl2aXR5L3Bnc3RhdF94YWN0LmMKQEAgLTUxLDcgKzUxLDcgQEAgQXRFT1hhY3Rf UGdTdGF0KGJvb2wgaXNDb21taXQsIGJvb2wgcGFyYWxsZWwpCiAJCUFzc2VydCh4YWN0X3N0 YXRlLT5uZXN0X2xldmVsID09IDEpOwogCQlBc3NlcnQoeGFjdF9zdGF0ZS0+cHJldiA9PSBO VUxMKTsKIAotCQlBdEVPWGFjdF9QZ1N0YXRfUmVsYXRpb25zKHhhY3Rfc3RhdGUsIGlzQ29t bWl0KTsKKwkJQXRFT1hhY3RfUGdTdGF0X1RhYmxlcyh4YWN0X3N0YXRlLCBpc0NvbW1pdCk7 CiAJCUF0RU9YYWN0X1BnU3RhdF9Ecm9wcGVkU3RhdHMoeGFjdF9zdGF0ZSwgaXNDb21taXQp OwogCX0KIAlwZ1N0YXRYYWN0U3RhY2sgPSBOVUxMOwpAQCAtMTIyLDcgKzEyMiw3IEBAIEF0 RU9TdWJYYWN0X1BnU3RhdChib29sIGlzQ29tbWl0LCBpbnQgbmVzdERlcHRoKQogCQkvKiBk ZWxpbmsgeGFjdF9zdGF0ZSBmcm9tIHN0YWNrIGltbWVkaWF0ZWx5IHRvIHNpbXBsaWZ5IHJl dXNlIGNhc2UgKi8KIAkJcGdTdGF0WGFjdFN0YWNrID0geGFjdF9zdGF0ZS0+cHJldjsKIAot CQlBdEVPU3ViWGFjdF9QZ1N0YXRfUmVsYXRpb25zKHhhY3Rfc3RhdGUsIGlzQ29tbWl0LCBu ZXN0RGVwdGgpOworCQlBdEVPU3ViWGFjdF9QZ1N0YXRfVGFibGVzKHhhY3Rfc3RhdGUsIGlz Q29tbWl0LCBuZXN0RGVwdGgpOwogCQlBdEVPU3ViWGFjdF9QZ1N0YXRfRHJvcHBlZFN0YXRz KHhhY3Rfc3RhdGUsIGlzQ29tbWl0LCBuZXN0RGVwdGgpOwogCiAJCXBmcmVlKHhhY3Rfc3Rh dGUpOwpAQCAtMTk3LDcgKzE5Nyw3IEBAIEF0UHJlcGFyZV9QZ1N0YXQodm9pZCkKIAkJQXNz ZXJ0KHhhY3Rfc3RhdGUtPm5lc3RfbGV2ZWwgPT0gMSk7CiAJCUFzc2VydCh4YWN0X3N0YXRl LT5wcmV2ID09IE5VTEwpOwogCi0JCUF0UHJlcGFyZV9QZ1N0YXRfUmVsYXRpb25zKHhhY3Rf c3RhdGUpOworCQlBdFByZXBhcmVfUGdTdGF0X1RhYmxlcyh4YWN0X3N0YXRlKTsKIAl9CiB9 CiAKQEAgLTIyMSw3ICsyMjEsNyBAQCBQb3N0UHJlcGFyZV9QZ1N0YXQodm9pZCkKIAkJQXNz ZXJ0KHhhY3Rfc3RhdGUtPm5lc3RfbGV2ZWwgPT0gMSk7CiAJCUFzc2VydCh4YWN0X3N0YXRl LT5wcmV2ID09IE5VTEwpOwogCi0JCVBvc3RQcmVwYXJlX1BnU3RhdF9SZWxhdGlvbnMoeGFj dF9zdGF0ZSk7CisJCVBvc3RQcmVwYXJlX1BnU3RhdF9UYWJsZXMoeGFjdF9zdGF0ZSk7CiAJ fQogCXBnU3RhdFhhY3RTdGFjayA9IE5VTEw7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3Rh dGZ1bmNzLmMKaW5kZXggYWUzMzY1ZDkxNy4uYmU3ZjE3NWJmMSAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRp bHMvYWR0L3Bnc3RhdGZ1bmNzLmMKQEAgLTM2LDI0ICszNiwzNCBAQAogCiAjZGVmaW5lIEhB U19QR1NUQVRfUEVSTUlTU0lPTlMocm9sZSkJIChoYXNfcHJpdnNfb2Zfcm9sZShHZXRVc2Vy SWQoKSwgUk9MRV9QR19SRUFEX0FMTF9TVEFUUykgfHwgaGFzX3ByaXZzX29mX3JvbGUoR2V0 VXNlcklkKCksIHJvbGUpKQogCisjZGVmaW5lIFBHU1RBVF9GRVRDSF9TVEFUX0VOVFJZKGVu dHJ5LCBzdGF0X25hbWUpICgoZW50cnkgPT0gTlVMTCkgPyAwIDogKGludDY0KSAoZW50cnkt PnN0YXRfbmFtZSkpCisKIERhdHVtCi1wZ19zdGF0X2dldF9udW1zY2FucyhQR19GVU5DVElP Tl9BUkdTKQorcGdfc3RhdF9nZXRfaW5kZXhfbnVtc2NhbnMoUEdfRlVOQ1RJT05fQVJHUykK IHsKIAlPaWQJCQlyZWxpZCA9IFBHX0dFVEFSR19PSUQoMCk7CiAJaW50NjQJCXJlc3VsdDsK LQlQZ1N0YXRfU3RhdFRhYkVudHJ5ICp0YWJlbnRyeTsKKwlQZ1N0YXRfU3RhdEluZEVudHJ5 ICppbmRlbnRyeSA9IHBnc3RhdF9mZXRjaF9zdGF0X2luZGVudHJ5KHJlbGlkKTsKIAotCWlm ICgodGFiZW50cnkgPSBwZ3N0YXRfZmV0Y2hfc3RhdF90YWJlbnRyeShyZWxpZCkpID09IE5V TEwpCi0JCXJlc3VsdCA9IDA7Ci0JZWxzZQotCQlyZXN1bHQgPSAoaW50NjQpICh0YWJlbnRy eS0+bnVtc2NhbnMpOworCXJlc3VsdCA9IFBHU1RBVF9GRVRDSF9TVEFUX0VOVFJZKGluZGVu dHJ5LCBudW1zY2Fucyk7CiAKIAlQR19SRVRVUk5fSU5UNjQocmVzdWx0KTsKIH0KIAorRGF0 dW0KK3BnX3N0YXRfZ2V0X3RhYmxlX251bXNjYW5zKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJ T2lkICAgICAgICAgcmVsaWQgPSBQR19HRVRBUkdfT0lEKDApOworCWludDY0ICAgICAgIHJl c3VsdDsKKwlQZ1N0YXRfU3RhdFRhYkVudHJ5ICp0YWJlbnRyeSA9IHBnc3RhdF9mZXRjaF9z dGF0X3RhYmVudHJ5KHJlbGlkKTsKKworCXJlc3VsdCA9IFBHU1RBVF9GRVRDSF9TVEFUX0VO VFJZKHRhYmVudHJ5LCBudW1zY2Fucyk7CisKKwlQR19SRVRVUk5fSU5UNjQocmVzdWx0KTsK K30KIAogRGF0dW0KLXBnX3N0YXRfZ2V0X2xhc3RzY2FuKFBHX0ZVTkNUSU9OX0FSR1MpCitw Z19zdGF0X2dldF90YWJsZV9sYXN0c2NhbihQR19GVU5DVElPTl9BUkdTKQogewogCU9pZAkJ CXJlbGlkID0gUEdfR0VUQVJHX09JRCgwKTsKIAlUaW1lc3RhbXBUeiByZXN1bHQ7CkBAIC03 MCw1MCArODAsODAgQEAgcGdfc3RhdF9nZXRfbGFzdHNjYW4oUEdfRlVOQ1RJT05fQVJHUykK IAkJUEdfUkVUVVJOX1RJTUVTVEFNUFRaKHJlc3VsdCk7CiB9CiAKLQogRGF0dW0KLXBnX3N0 YXRfZ2V0X3R1cGxlc19yZXR1cm5lZChQR19GVU5DVElPTl9BUkdTKQorcGdfc3RhdF9nZXRf aW5kZXhfbGFzdHNjYW4oUEdfRlVOQ1RJT05fQVJHUykKIHsKIAlPaWQJCQlyZWxpZCA9IFBH X0dFVEFSR19PSUQoMCk7Ci0JaW50NjQJCXJlc3VsdDsKLQlQZ1N0YXRfU3RhdFRhYkVudHJ5 ICp0YWJlbnRyeTsKKwlUaW1lc3RhbXBUeiByZXN1bHQ7CisJUGdTdGF0X1N0YXRJbmRFbnRy eSAqaW5kZW50cnk7CiAKLQlpZiAoKHRhYmVudHJ5ID0gcGdzdGF0X2ZldGNoX3N0YXRfdGFi ZW50cnkocmVsaWQpKSA9PSBOVUxMKQorCWlmICgoaW5kZW50cnkgPSBwZ3N0YXRfZmV0Y2hf c3RhdF9pbmRlbnRyeShyZWxpZCkpID09IE5VTEwpCiAJCXJlc3VsdCA9IDA7CiAJZWxzZQot CQlyZXN1bHQgPSAoaW50NjQpICh0YWJlbnRyeS0+dHVwbGVzX3JldHVybmVkKTsKKwkJcmVz dWx0ID0gaW5kZW50cnktPmxhc3RzY2FuOworCisJaWYgKHJlc3VsdCA9PSAwKQorCQlQR19S RVRVUk5fTlVMTCgpOworCWVsc2UKKwkJUEdfUkVUVVJOX1RJTUVTVEFNUFRaKHJlc3VsdCk7 Cit9CisKK0RhdHVtCitwZ19zdGF0X2dldF90YWJsZV90dXBsZXNfcmV0dXJuZWQoUEdfRlVO Q1RJT05fQVJHUykKK3sKKwlPaWQJCQlyZWxpZCA9IFBHX0dFVEFSR19PSUQoMCk7CisJaW50 NjQJCXJlc3VsdDsKKwlQZ1N0YXRfU3RhdFRhYkVudHJ5ICp0YWJlbnRyeSA9IHBnc3RhdF9m ZXRjaF9zdGF0X3RhYmVudHJ5KHJlbGlkKTsKKworCXJlc3VsdCA9IFBHU1RBVF9GRVRDSF9T VEFUX0VOVFJZKHRhYmVudHJ5LCB0dXBsZXNfcmV0dXJuZWQpOwogCiAJUEdfUkVUVVJOX0lO VDY0KHJlc3VsdCk7CiB9CiAKK0RhdHVtCitwZ19zdGF0X2dldF9pbmRleF90dXBsZXNfcmV0 dXJuZWQoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwlPaWQgICAgICAgICByZWxpZCA9IFBHX0dF VEFSR19PSUQoMCk7CisJaW50NjQgICAgICAgcmVzdWx0OworCVBnU3RhdF9TdGF0SW5kRW50 cnkgKmluZGVudHJ5ID0gcGdzdGF0X2ZldGNoX3N0YXRfaW5kZW50cnkocmVsaWQpOworCisJ cmVzdWx0ID0gUEdTVEFUX0ZFVENIX1NUQVRfRU5UUlkoaW5kZW50cnksIHR1cGxlc19yZXR1 cm5lZCk7CisKKwlQR19SRVRVUk5fSU5UNjQocmVzdWx0KTsKK30KIAogRGF0dW0KLXBnX3N0 YXRfZ2V0X3R1cGxlc19mZXRjaGVkKFBHX0ZVTkNUSU9OX0FSR1MpCitwZ19zdGF0X2dldF90 YWJsZV90dXBsZXNfZmV0Y2hlZChQR19GVU5DVElPTl9BUkdTKQogewogCU9pZAkJCXJlbGlk ID0gUEdfR0VUQVJHX09JRCgwKTsKIAlpbnQ2NAkJcmVzdWx0OwotCVBnU3RhdF9TdGF0VGFi RW50cnkgKnRhYmVudHJ5OworCVBnU3RhdF9TdGF0VGFiRW50cnkgKnRhYmVudHJ5ID0gcGdz dGF0X2ZldGNoX3N0YXRfdGFiZW50cnkocmVsaWQpOwogCi0JaWYgKCh0YWJlbnRyeSA9IHBn c3RhdF9mZXRjaF9zdGF0X3RhYmVudHJ5KHJlbGlkKSkgPT0gTlVMTCkKLQkJcmVzdWx0ID0g MDsKLQllbHNlCi0JCXJlc3VsdCA9IChpbnQ2NCkgKHRhYmVudHJ5LT50dXBsZXNfZmV0Y2hl ZCk7CisJcmVzdWx0ID0gUEdTVEFUX0ZFVENIX1NUQVRfRU5UUlkodGFiZW50cnksIHR1cGxl c19mZXRjaGVkKTsKIAogCVBHX1JFVFVSTl9JTlQ2NChyZXN1bHQpOwogfQogCitEYXR1bQor cGdfc3RhdF9nZXRfaW5kZXhfdHVwbGVzX2ZldGNoZWQoUEdfRlVOQ1RJT05fQVJHUykKK3sK KwlPaWQgICAgICAgICByZWxpZCA9IFBHX0dFVEFSR19PSUQoMCk7CisJaW50NjQgICAgICAg cmVzdWx0OworCVBnU3RhdF9TdGF0SW5kRW50cnkgKmluZGVudHJ5ID0gcGdzdGF0X2ZldGNo X3N0YXRfaW5kZW50cnkocmVsaWQpOworCisJcmVzdWx0ID0gUEdTVEFUX0ZFVENIX1NUQVRf RU5UUlkoaW5kZW50cnksIHR1cGxlc19mZXRjaGVkKTsKKworCVBHX1JFVFVSTl9JTlQ2NChy ZXN1bHQpOworfQogCiBEYXR1bQogcGdfc3RhdF9nZXRfdHVwbGVzX2luc2VydGVkKFBHX0ZV TkNUSU9OX0FSR1MpCiB7CiAJT2lkCQkJcmVsaWQgPSBQR19HRVRBUkdfT0lEKDApOwogCWlu dDY0CQlyZXN1bHQ7Ci0JUGdTdGF0X1N0YXRUYWJFbnRyeSAqdGFiZW50cnk7CisJUGdTdGF0 X1N0YXRUYWJFbnRyeSAqdGFiZW50cnkgPSBwZ3N0YXRfZmV0Y2hfc3RhdF90YWJlbnRyeShy ZWxpZCk7CiAKLQlpZiAoKHRhYmVudHJ5ID0gcGdzdGF0X2ZldGNoX3N0YXRfdGFiZW50cnko cmVsaWQpKSA9PSBOVUxMKQotCQlyZXN1bHQgPSAwOwotCWVsc2UKLQkJcmVzdWx0ID0gKGlu dDY0KSAodGFiZW50cnktPnR1cGxlc19pbnNlcnRlZCk7CisJcmVzdWx0ID0gUEdTVEFUX0ZF VENIX1NUQVRfRU5UUlkodGFiZW50cnksIHR1cGxlc19pbnNlcnRlZCk7CiAKIAlQR19SRVRV Uk5fSU5UNjQocmVzdWx0KTsKIH0KQEAgLTEyNCwxMiArMTY0LDkgQEAgcGdfc3RhdF9nZXRf dHVwbGVzX3VwZGF0ZWQoUEdfRlVOQ1RJT05fQVJHUykKIHsKIAlPaWQJCQlyZWxpZCA9IFBH X0dFVEFSR19PSUQoMCk7CiAJaW50NjQJCXJlc3VsdDsKLQlQZ1N0YXRfU3RhdFRhYkVudHJ5 ICp0YWJlbnRyeTsKKwlQZ1N0YXRfU3RhdFRhYkVudHJ5ICp0YWJlbnRyeSA9IHBnc3RhdF9m ZXRjaF9zdGF0X3RhYmVudHJ5KHJlbGlkKTsKIAotCWlmICgodGFiZW50cnkgPSBwZ3N0YXRf ZmV0Y2hfc3RhdF90YWJlbnRyeShyZWxpZCkpID09IE5VTEwpCi0JCXJlc3VsdCA9IDA7Ci0J ZWxzZQotCQlyZXN1bHQgPSAoaW50NjQpICh0YWJlbnRyeS0+dHVwbGVzX3VwZGF0ZWQpOwor CXJlc3VsdCA9IFBHU1RBVF9GRVRDSF9TVEFUX0VOVFJZKHRhYmVudHJ5LCB0dXBsZXNfdXBk YXRlZCk7CiAKIAlQR19SRVRVUk5fSU5UNjQocmVzdWx0KTsKIH0KQEAgLTE0MCwxMiArMTc3 LDkgQEAgcGdfc3RhdF9nZXRfdHVwbGVzX2RlbGV0ZWQoUEdfRlVOQ1RJT05fQVJHUykKIHsK IAlPaWQJCQlyZWxpZCA9IFBHX0dFVEFSR19PSUQoMCk7CiAJaW50NjQJCXJlc3VsdDsKLQlQ Z1N0YXRfU3RhdFRhYkVudHJ5ICp0YWJlbnRyeTsKKwlQZ1N0YXRfU3RhdFRhYkVudHJ5ICp0 YWJlbnRyeSA9IHBnc3RhdF9mZXRjaF9zdGF0X3RhYmVudHJ5KHJlbGlkKTsKIAotCWlmICgo dGFiZW50cnkgPSBwZ3N0YXRfZmV0Y2hfc3RhdF90YWJlbnRyeShyZWxpZCkpID09IE5VTEwp Ci0JCXJlc3VsdCA9IDA7Ci0JZWxzZQotCQlyZXN1bHQgPSAoaW50NjQpICh0YWJlbnRyeS0+ dHVwbGVzX2RlbGV0ZWQpOworCXJlc3VsdCA9IFBHU1RBVF9GRVRDSF9TVEFUX0VOVFJZKHRh YmVudHJ5LCB0dXBsZXNfZGVsZXRlZCk7CiAKIAlQR19SRVRVUk5fSU5UNjQocmVzdWx0KTsK IH0KQEAgLTE1NiwxMiArMTkwLDkgQEAgcGdfc3RhdF9nZXRfdHVwbGVzX2hvdF91cGRhdGVk KFBHX0ZVTkNUSU9OX0FSR1MpCiB7CiAJT2lkCQkJcmVsaWQgPSBQR19HRVRBUkdfT0lEKDAp OwogCWludDY0CQlyZXN1bHQ7Ci0JUGdTdGF0X1N0YXRUYWJFbnRyeSAqdGFiZW50cnk7CisJ UGdTdGF0X1N0YXRUYWJFbnRyeSAqdGFiZW50cnkgPSBwZ3N0YXRfZmV0Y2hfc3RhdF90YWJl bnRyeShyZWxpZCk7CiAKLQlpZiAoKHRhYmVudHJ5ID0gcGdzdGF0X2ZldGNoX3N0YXRfdGFi ZW50cnkocmVsaWQpKSA9PSBOVUxMKQotCQlyZXN1bHQgPSAwOwotCWVsc2UKLQkJcmVzdWx0 ID0gKGludDY0KSAodGFiZW50cnktPnR1cGxlc19ob3RfdXBkYXRlZCk7CisJcmVzdWx0ID0g UEdTVEFUX0ZFVENIX1NUQVRfRU5UUlkodGFiZW50cnksIHR1cGxlc19ob3RfdXBkYXRlZCk7 CiAKIAlQR19SRVRVUk5fSU5UNjQocmVzdWx0KTsKIH0KQEAgLTE3MiwxMiArMjAzLDkgQEAg cGdfc3RhdF9nZXRfbGl2ZV90dXBsZXMoUEdfRlVOQ1RJT05fQVJHUykKIHsKIAlPaWQJCQly ZWxpZCA9IFBHX0dFVEFSR19PSUQoMCk7CiAJaW50NjQJCXJlc3VsdDsKLQlQZ1N0YXRfU3Rh dFRhYkVudHJ5ICp0YWJlbnRyeTsKKwlQZ1N0YXRfU3RhdFRhYkVudHJ5ICp0YWJlbnRyeSA9 IHBnc3RhdF9mZXRjaF9zdGF0X3RhYmVudHJ5KHJlbGlkKTsKIAotCWlmICgodGFiZW50cnkg PSBwZ3N0YXRfZmV0Y2hfc3RhdF90YWJlbnRyeShyZWxpZCkpID09IE5VTEwpCi0JCXJlc3Vs dCA9IDA7Ci0JZWxzZQotCQlyZXN1bHQgPSAoaW50NjQpICh0YWJlbnRyeS0+bl9saXZlX3R1 cGxlcyk7CisJcmVzdWx0ID0gUEdTVEFUX0ZFVENIX1NUQVRfRU5UUlkodGFiZW50cnksIG5f bGl2ZV90dXBsZXMpOwogCiAJUEdfUkVUVVJOX0lOVDY0KHJlc3VsdCk7CiB9CkBAIC0xODgs MTIgKzIxNiw5IEBAIHBnX3N0YXRfZ2V0X2RlYWRfdHVwbGVzKFBHX0ZVTkNUSU9OX0FSR1Mp CiB7CiAJT2lkCQkJcmVsaWQgPSBQR19HRVRBUkdfT0lEKDApOwogCWludDY0CQlyZXN1bHQ7 Ci0JUGdTdGF0X1N0YXRUYWJFbnRyeSAqdGFiZW50cnk7CisJUGdTdGF0X1N0YXRUYWJFbnRy eSAqdGFiZW50cnkgPSBwZ3N0YXRfZmV0Y2hfc3RhdF90YWJlbnRyeShyZWxpZCk7CiAKLQlp ZiAoKHRhYmVudHJ5ID0gcGdzdGF0X2ZldGNoX3N0YXRfdGFiZW50cnkocmVsaWQpKSA9PSBO VUxMKQotCQlyZXN1bHQgPSAwOwotCWVsc2UKLQkJcmVzdWx0ID0gKGludDY0KSAodGFiZW50 cnktPm5fZGVhZF90dXBsZXMpOworCXJlc3VsdCA9IFBHU1RBVF9GRVRDSF9TVEFUX0VOVFJZ KHRhYmVudHJ5LCBuX2RlYWRfdHVwbGVzKTsKIAogCVBHX1JFVFVSTl9JTlQ2NChyZXN1bHQp OwogfQpAQCAtMjA0LDEyICsyMjksOSBAQCBwZ19zdGF0X2dldF9tb2Rfc2luY2VfYW5hbHl6 ZShQR19GVU5DVElPTl9BUkdTKQogewogCU9pZAkJCXJlbGlkID0gUEdfR0VUQVJHX09JRCgw KTsKIAlpbnQ2NAkJcmVzdWx0OwotCVBnU3RhdF9TdGF0VGFiRW50cnkgKnRhYmVudHJ5Owor CVBnU3RhdF9TdGF0VGFiRW50cnkgKnRhYmVudHJ5ID0gcGdzdGF0X2ZldGNoX3N0YXRfdGFi ZW50cnkocmVsaWQpOwogCi0JaWYgKCh0YWJlbnRyeSA9IHBnc3RhdF9mZXRjaF9zdGF0X3Rh YmVudHJ5KHJlbGlkKSkgPT0gTlVMTCkKLQkJcmVzdWx0ID0gMDsKLQllbHNlCi0JCXJlc3Vs dCA9IChpbnQ2NCkgKHRhYmVudHJ5LT5jaGFuZ2VzX3NpbmNlX2FuYWx5emUpOworCXJlc3Vs dCA9IFBHU1RBVF9GRVRDSF9TVEFUX0VOVFJZKHRhYmVudHJ5LCBjaGFuZ2VzX3NpbmNlX2Fu YWx5emUpOwogCiAJUEdfUkVUVVJOX0lOVDY0KHJlc3VsdCk7CiB9CkBAIC0yMjAsNDQgKzI0 Miw1OCBAQCBwZ19zdGF0X2dldF9pbnNfc2luY2VfdmFjdXVtKFBHX0ZVTkNUSU9OX0FSR1Mp CiB7CiAJT2lkCQkJcmVsaWQgPSBQR19HRVRBUkdfT0lEKDApOwogCWludDY0CQlyZXN1bHQ7 Ci0JUGdTdGF0X1N0YXRUYWJFbnRyeSAqdGFiZW50cnk7CisJUGdTdGF0X1N0YXRUYWJFbnRy eSAqdGFiZW50cnkgPSBwZ3N0YXRfZmV0Y2hfc3RhdF90YWJlbnRyeShyZWxpZCk7CiAKLQlp ZiAoKHRhYmVudHJ5ID0gcGdzdGF0X2ZldGNoX3N0YXRfdGFiZW50cnkocmVsaWQpKSA9PSBO VUxMKQotCQlyZXN1bHQgPSAwOwotCWVsc2UKLQkJcmVzdWx0ID0gKGludDY0KSAodGFiZW50 cnktPmluc2VydHNfc2luY2VfdmFjdXVtKTsKKwlyZXN1bHQgPSBQR1NUQVRfRkVUQ0hfU1RB VF9FTlRSWSh0YWJlbnRyeSwgaW5zZXJ0c19zaW5jZV92YWN1dW0pOwogCiAJUEdfUkVUVVJO X0lOVDY0KHJlc3VsdCk7CiB9CiAKIAogRGF0dW0KLXBnX3N0YXRfZ2V0X2Jsb2Nrc19mZXRj aGVkKFBHX0ZVTkNUSU9OX0FSR1MpCitwZ19zdGF0X2dldF90YWJsZV9ibG9ja3NfZmV0Y2hl ZChQR19GVU5DVElPTl9BUkdTKQogewogCU9pZAkJCXJlbGlkID0gUEdfR0VUQVJHX09JRCgw KTsKIAlpbnQ2NAkJcmVzdWx0OwotCVBnU3RhdF9TdGF0VGFiRW50cnkgKnRhYmVudHJ5Owor CVBnU3RhdF9TdGF0VGFiRW50cnkgKnRhYmVudHJ5ID0gcGdzdGF0X2ZldGNoX3N0YXRfdGFi ZW50cnkocmVsaWQpOwogCi0JaWYgKCh0YWJlbnRyeSA9IHBnc3RhdF9mZXRjaF9zdGF0X3Rh YmVudHJ5KHJlbGlkKSkgPT0gTlVMTCkKLQkJcmVzdWx0ID0gMDsKLQllbHNlCi0JCXJlc3Vs dCA9IChpbnQ2NCkgKHRhYmVudHJ5LT5ibG9ja3NfZmV0Y2hlZCk7CisJcmVzdWx0ID0gUEdT VEFUX0ZFVENIX1NUQVRfRU5UUlkodGFiZW50cnksIGJsb2Nrc19mZXRjaGVkKTsKKworCVBH X1JFVFVSTl9JTlQ2NChyZXN1bHQpOworfQorCitEYXR1bQorcGdfc3RhdF9nZXRfaW5kZXhf YmxvY2tzX2ZldGNoZWQoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwlPaWQJCQlyZWxpZCA9IFBH X0dFVEFSR19PSUQoMCk7CisJaW50NjQJCXJlc3VsdDsKKwlQZ1N0YXRfU3RhdEluZEVudHJ5 ICppbmRlbnRyeSA9IHBnc3RhdF9mZXRjaF9zdGF0X2luZGVudHJ5KHJlbGlkKTsKKworCXJl c3VsdCA9IFBHU1RBVF9GRVRDSF9TVEFUX0VOVFJZKGluZGVudHJ5LCBibG9ja3NfZmV0Y2hl ZCk7CiAKIAlQR19SRVRVUk5fSU5UNjQocmVzdWx0KTsKIH0KIAorRGF0dW0KK3BnX3N0YXRf Z2V0X3RhYmxlX2Jsb2Nrc19oaXQoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwlPaWQJCQlyZWxp ZCA9IFBHX0dFVEFSR19PSUQoMCk7CisJaW50NjQJCXJlc3VsdDsKKwlQZ1N0YXRfU3RhdFRh YkVudHJ5ICp0YWJlbnRyeSA9IHBnc3RhdF9mZXRjaF9zdGF0X3RhYmVudHJ5KHJlbGlkKTsK KworCXJlc3VsdCA9IFBHU1RBVF9GRVRDSF9TVEFUX0VOVFJZKHRhYmVudHJ5LCBibG9ja3Nf aGl0KTsKKworCVBHX1JFVFVSTl9JTlQ2NChyZXN1bHQpOworfQogCiBEYXR1bQotcGdfc3Rh dF9nZXRfYmxvY2tzX2hpdChQR19GVU5DVElPTl9BUkdTKQorcGdfc3RhdF9nZXRfaW5kZXhf YmxvY2tzX2hpdChQR19GVU5DVElPTl9BUkdTKQogewogCU9pZAkJCXJlbGlkID0gUEdfR0VU QVJHX09JRCgwKTsKIAlpbnQ2NAkJcmVzdWx0OwotCVBnU3RhdF9TdGF0VGFiRW50cnkgKnRh YmVudHJ5OworCVBnU3RhdF9TdGF0SW5kRW50cnkgKmluZGVudHJ5ID0gcGdzdGF0X2ZldGNo X3N0YXRfaW5kZW50cnkocmVsaWQpOwogCi0JaWYgKCh0YWJlbnRyeSA9IHBnc3RhdF9mZXRj aF9zdGF0X3RhYmVudHJ5KHJlbGlkKSkgPT0gTlVMTCkKLQkJcmVzdWx0ID0gMDsKLQllbHNl Ci0JCXJlc3VsdCA9IChpbnQ2NCkgKHRhYmVudHJ5LT5ibG9ja3NfaGl0KTsKKwlyZXN1bHQg PSBQR1NUQVRfRkVUQ0hfU1RBVF9FTlRSWShpbmRlbnRyeSwgYmxvY2tzX2hpdCk7CiAKIAlQ R19SRVRVUk5fSU5UNjQocmVzdWx0KTsKIH0KQEAgLTMzOSwxMiArMzc1LDkgQEAgcGdfc3Rh dF9nZXRfdmFjdXVtX2NvdW50KFBHX0ZVTkNUSU9OX0FSR1MpCiB7CiAJT2lkCQkJcmVsaWQg PSBQR19HRVRBUkdfT0lEKDApOwogCWludDY0CQlyZXN1bHQ7Ci0JUGdTdGF0X1N0YXRUYWJF bnRyeSAqdGFiZW50cnk7CisJUGdTdGF0X1N0YXRUYWJFbnRyeSAqdGFiZW50cnkgPSBwZ3N0 YXRfZmV0Y2hfc3RhdF90YWJlbnRyeShyZWxpZCk7CiAKLQlpZiAoKHRhYmVudHJ5ID0gcGdz dGF0X2ZldGNoX3N0YXRfdGFiZW50cnkocmVsaWQpKSA9PSBOVUxMKQotCQlyZXN1bHQgPSAw OwotCWVsc2UKLQkJcmVzdWx0ID0gKGludDY0KSAodGFiZW50cnktPnZhY3V1bV9jb3VudCk7 CisJcmVzdWx0ID0gUEdTVEFUX0ZFVENIX1NUQVRfRU5UUlkodGFiZW50cnksIHZhY3V1bV9j b3VudCk7CiAKIAlQR19SRVRVUk5fSU5UNjQocmVzdWx0KTsKIH0KQEAgLTM1NCwxMiArMzg3 LDkgQEAgcGdfc3RhdF9nZXRfYXV0b3ZhY3V1bV9jb3VudChQR19GVU5DVElPTl9BUkdTKQog ewogCU9pZAkJCXJlbGlkID0gUEdfR0VUQVJHX09JRCgwKTsKIAlpbnQ2NAkJcmVzdWx0Owot CVBnU3RhdF9TdGF0VGFiRW50cnkgKnRhYmVudHJ5OworCVBnU3RhdF9TdGF0VGFiRW50cnkg KnRhYmVudHJ5ID0gcGdzdGF0X2ZldGNoX3N0YXRfdGFiZW50cnkocmVsaWQpOwogCi0JaWYg KCh0YWJlbnRyeSA9IHBnc3RhdF9mZXRjaF9zdGF0X3RhYmVudHJ5KHJlbGlkKSkgPT0gTlVM TCkKLQkJcmVzdWx0ID0gMDsKLQllbHNlCi0JCXJlc3VsdCA9IChpbnQ2NCkgKHRhYmVudHJ5 LT5hdXRvdmFjX3ZhY3V1bV9jb3VudCk7CisJcmVzdWx0ID0gUEdTVEFUX0ZFVENIX1NUQVRf RU5UUlkodGFiZW50cnksIGF1dG92YWNfdmFjdXVtX2NvdW50KTsKIAogCVBHX1JFVFVSTl9J TlQ2NChyZXN1bHQpOwogfQpAQCAtMzY5LDEyICszOTksOSBAQCBwZ19zdGF0X2dldF9hbmFs eXplX2NvdW50KFBHX0ZVTkNUSU9OX0FSR1MpCiB7CiAJT2lkCQkJcmVsaWQgPSBQR19HRVRB UkdfT0lEKDApOwogCWludDY0CQlyZXN1bHQ7Ci0JUGdTdGF0X1N0YXRUYWJFbnRyeSAqdGFi ZW50cnk7CisJUGdTdGF0X1N0YXRUYWJFbnRyeSAqdGFiZW50cnkgPSBwZ3N0YXRfZmV0Y2hf c3RhdF90YWJlbnRyeShyZWxpZCk7CiAKLQlpZiAoKHRhYmVudHJ5ID0gcGdzdGF0X2ZldGNo X3N0YXRfdGFiZW50cnkocmVsaWQpKSA9PSBOVUxMKQotCQlyZXN1bHQgPSAwOwotCWVsc2UK LQkJcmVzdWx0ID0gKGludDY0KSAodGFiZW50cnktPmFuYWx5emVfY291bnQpOworCXJlc3Vs dCA9IFBHU1RBVF9GRVRDSF9TVEFUX0VOVFJZKHRhYmVudHJ5LCBhbmFseXplX2NvdW50KTsK IAogCVBHX1JFVFVSTl9JTlQ2NChyZXN1bHQpOwogfQpAQCAtMzg0LDEyICs0MTEsOSBAQCBw Z19zdGF0X2dldF9hdXRvYW5hbHl6ZV9jb3VudChQR19GVU5DVElPTl9BUkdTKQogewogCU9p ZAkJCXJlbGlkID0gUEdfR0VUQVJHX09JRCgwKTsKIAlpbnQ2NAkJcmVzdWx0OwotCVBnU3Rh dF9TdGF0VGFiRW50cnkgKnRhYmVudHJ5OworCVBnU3RhdF9TdGF0VGFiRW50cnkgKnRhYmVu dHJ5ID0gcGdzdGF0X2ZldGNoX3N0YXRfdGFiZW50cnkocmVsaWQpOwogCi0JaWYgKCh0YWJl bnRyeSA9IHBnc3RhdF9mZXRjaF9zdGF0X3RhYmVudHJ5KHJlbGlkKSkgPT0gTlVMTCkKLQkJ cmVzdWx0ID0gMDsKLQllbHNlCi0JCXJlc3VsdCA9IChpbnQ2NCkgKHRhYmVudHJ5LT5hdXRv dmFjX2FuYWx5emVfY291bnQpOworCXJlc3VsdCA9IFBHU1RBVF9GRVRDSF9TVEFUX0VOVFJZ KHRhYmVudHJ5LCBhdXRvdmFjX2FuYWx5emVfY291bnQpOwogCiAJUEdfUkVUVVJOX0lOVDY0 KHJlc3VsdCk7CiB9CkBAIC0xODQzLDcgKzE4NjcsNyBAQCBwZ19zdGF0X2dldF9zbHJ1KFBH X0ZVTkNUSU9OX0FSR1MpCiB9CiAKIERhdHVtCi1wZ19zdGF0X2dldF94YWN0X251bXNjYW5z KFBHX0ZVTkNUSU9OX0FSR1MpCitwZ19zdGF0X2dldF90YWJsZV94YWN0X251bXNjYW5zKFBH X0ZVTkNUSU9OX0FSR1MpCiB7CiAJT2lkCQkJcmVsaWQgPSBQR19HRVRBUkdfT0lEKDApOwog CWludDY0CQlyZXN1bHQ7CkBAIC0xODU3LDE3ICsxODgxLDMyIEBAIHBnX3N0YXRfZ2V0X3hh Y3RfbnVtc2NhbnMoUEdfRlVOQ1RJT05fQVJHUykKIAlQR19SRVRVUk5fSU5UNjQocmVzdWx0 KTsKIH0KIAorRGF0dW0KK3BnX3N0YXRfZ2V0X2luZGV4X3hhY3RfbnVtc2NhbnMoUEdfRlVO Q1RJT05fQVJHUykKK3sKKwlPaWQJCQlyZWxpZCA9IFBHX0dFVEFSR19PSUQoMCk7CisJaW50 NjQJCXJlc3VsdDsKKwlQZ1N0YXRfSW5kZXhTdGF0dXMgKmluZGVudHJ5OworCisJaWYgKChp bmRlbnRyeSA9IGZpbmRfaW5kc3RhdF9lbnRyeShyZWxpZCkpID09IE5VTEwpCisJCXJlc3Vs dCA9IDA7CisJZWxzZQorCQlyZXN1bHQgPSAoaW50NjQpIChpbmRlbnRyeS0+aV9jb3VudHMu aV9udW1zY2Fucyk7CisKKwlQR19SRVRVUk5fSU5UNjQocmVzdWx0KTsKK30KKwogRGF0dW0K IHBnX3N0YXRfZ2V0X3hhY3RfdHVwbGVzX3JldHVybmVkKFBHX0ZVTkNUSU9OX0FSR1MpCiB7 CiAJT2lkCQkJcmVsaWQgPSBQR19HRVRBUkdfT0lEKDApOwogCWludDY0CQlyZXN1bHQ7Ci0J UGdTdGF0X1RhYmxlU3RhdHVzICp0YWJlbnRyeTsKKwlQZ1N0YXRfSW5kZXhTdGF0dXMgKmlu ZGVudHJ5OwogCi0JaWYgKCh0YWJlbnRyeSA9IGZpbmRfdGFic3RhdF9lbnRyeShyZWxpZCkp ID09IE5VTEwpCisJaWYgKChpbmRlbnRyeSA9IGZpbmRfaW5kc3RhdF9lbnRyeShyZWxpZCkp ID09IE5VTEwpCiAJCXJlc3VsdCA9IDA7CiAJZWxzZQotCQlyZXN1bHQgPSAoaW50NjQpICh0 YWJlbnRyeS0+dF9jb3VudHMudF90dXBsZXNfcmV0dXJuZWQpOworCQlyZXN1bHQgPSAoaW50 NjQpIChpbmRlbnRyeS0+aV9jb3VudHMuaV90dXBsZXNfcmV0dXJuZWQpOwogCiAJUEdfUkVU VVJOX0lOVDY0KHJlc3VsdCk7CiB9CkBAIC0xODc3LDEyICsxOTE2LDEyIEBAIHBnX3N0YXRf Z2V0X3hhY3RfdHVwbGVzX2ZldGNoZWQoUEdfRlVOQ1RJT05fQVJHUykKIHsKIAlPaWQJCQly ZWxpZCA9IFBHX0dFVEFSR19PSUQoMCk7CiAJaW50NjQJCXJlc3VsdDsKLQlQZ1N0YXRfVGFi bGVTdGF0dXMgKnRhYmVudHJ5OworCVBnU3RhdF9JbmRleFN0YXR1cyAqaW5kZW50cnk7CiAK LQlpZiAoKHRhYmVudHJ5ID0gZmluZF90YWJzdGF0X2VudHJ5KHJlbGlkKSkgPT0gTlVMTCkK KwlpZiAoKGluZGVudHJ5ID0gZmluZF9pbmRzdGF0X2VudHJ5KHJlbGlkKSkgPT0gTlVMTCkK IAkJcmVzdWx0ID0gMDsKIAllbHNlCi0JCXJlc3VsdCA9IChpbnQ2NCkgKHRhYmVudHJ5LT50 X2NvdW50cy50X3R1cGxlc19mZXRjaGVkKTsKKwkJcmVzdWx0ID0gKGludDY0KSAoaW5kZW50 cnktPmlfY291bnRzLmlfdHVwbGVzX2ZldGNoZWQpOwogCiAJUEdfUkVUVVJOX0lOVDY0KHJl c3VsdCk7CiB9CkBAIC0xOTcwLDEyICsyMDA5LDEyIEBAIHBnX3N0YXRfZ2V0X3hhY3RfYmxv Y2tzX2ZldGNoZWQoUEdfRlVOQ1RJT05fQVJHUykKIHsKIAlPaWQJCQlyZWxpZCA9IFBHX0dF VEFSR19PSUQoMCk7CiAJaW50NjQJCXJlc3VsdDsKLQlQZ1N0YXRfVGFibGVTdGF0dXMgKnRh YmVudHJ5OworCVBnU3RhdF9JbmRleFN0YXR1cyAqaW5kZW50cnk7CiAKLQlpZiAoKHRhYmVu dHJ5ID0gZmluZF90YWJzdGF0X2VudHJ5KHJlbGlkKSkgPT0gTlVMTCkKKwlpZiAoKGluZGVu dHJ5ID0gZmluZF9pbmRzdGF0X2VudHJ5KHJlbGlkKSkgPT0gTlVMTCkKIAkJcmVzdWx0ID0g MDsKIAllbHNlCi0JCXJlc3VsdCA9IChpbnQ2NCkgKHRhYmVudHJ5LT50X2NvdW50cy50X2Js b2Nrc19mZXRjaGVkKTsKKwkJcmVzdWx0ID0gKGludDY0KSAoaW5kZW50cnktPmlfY291bnRz LmlfYmxvY2tzX2ZldGNoZWQpOwogCiAJUEdfUkVUVVJOX0lOVDY0KHJlc3VsdCk7CiB9CkBA IC0xOTg1LDEyICsyMDI0LDEyIEBAIHBnX3N0YXRfZ2V0X3hhY3RfYmxvY2tzX2hpdChQR19G VU5DVElPTl9BUkdTKQogewogCU9pZAkJCXJlbGlkID0gUEdfR0VUQVJHX09JRCgwKTsKIAlp bnQ2NAkJcmVzdWx0OwotCVBnU3RhdF9UYWJsZVN0YXR1cyAqdGFiZW50cnk7CisJUGdTdGF0 X0luZGV4U3RhdHVzICppbmRlbnRyeTsKIAotCWlmICgodGFiZW50cnkgPSBmaW5kX3RhYnN0 YXRfZW50cnkocmVsaWQpKSA9PSBOVUxMKQorCWlmICgoaW5kZW50cnkgPSBmaW5kX2luZHN0 YXRfZW50cnkocmVsaWQpKSA9PSBOVUxMKQogCQlyZXN1bHQgPSAwOwogCWVsc2UKLQkJcmVz dWx0ID0gKGludDY0KSAodGFiZW50cnktPnRfY291bnRzLnRfYmxvY2tzX2hpdCk7CisJCXJl c3VsdCA9IChpbnQ2NCkgKGluZGVudHJ5LT5pX2NvdW50cy5pX2Jsb2Nrc19oaXQpOwogCiAJ UEdfUkVUVVJOX0lOVDY0KHJlc3VsdCk7CiB9CkBAIC0yMTA5LDcgKzIxNDgsOCBAQCBwZ19z dGF0X3Jlc2V0X3NpbmdsZV90YWJsZV9jb3VudGVycyhQR19GVU5DVElPTl9BUkdTKQogewog CU9pZAkJCXRhYm9pZCA9IFBHX0dFVEFSR19PSUQoMCk7CiAKLQlwZ3N0YXRfcmVzZXQoUEdT VEFUX0tJTkRfUkVMQVRJT04sIE15RGF0YWJhc2VJZCwgdGFib2lkKTsKKwlwZ3N0YXRfcmVz ZXQoUEdTVEFUX0tJTkRfVEFCTEUsIE15RGF0YWJhc2VJZCwgdGFib2lkKTsKKwlwZ3N0YXRf cmVzZXQoUEdTVEFUX0tJTkRfSU5ERVgsIE15RGF0YWJhc2VJZCwgdGFib2lkKTsKIAogCVBH X1JFVFVSTl9WT0lEKCk7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9jYWNo ZS9yZWxjYWNoZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcmVsY2FjaGUuYwppbmRl eCBiZDZjZDRlNDdiLi5kYTllNjAyMjVmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGls cy9jYWNoZS9yZWxjYWNoZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3JlbGNh Y2hlLmMKQEAgLTI0MTEsNyArMjQxMSwxMCBAQCBSZWxhdGlvbkRlc3Ryb3lSZWxhdGlvbihS ZWxhdGlvbiByZWxhdGlvbiwgYm9vbCByZW1lbWJlcl90dXBkZXNjKQogCVJlbGF0aW9uQ2xv c2VTbWdyKHJlbGF0aW9uKTsKIAogCS8qIGJyZWFrIG11dHVhbCBsaW5rIHdpdGggc3RhdHMg ZW50cnkgKi8KLQlwZ3N0YXRfdW5saW5rX3JlbGF0aW9uKHJlbGF0aW9uKTsKKwlpZiAocmVs YXRpb24tPnJkX3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX0lOREVYKQorCQlwZ3N0YXRfdW5s aW5rX2luZGV4KHJlbGF0aW9uKTsKKwllbHNlCisJCXBnc3RhdF91bmxpbmtfdGFibGUocmVs YXRpb24pOwogCiAJLyoKIAkgKiBGcmVlIGFsbCB0aGUgc3Vic2lkaWFyeSBkYXRhIHN0cnVj dHVyZXMgb2YgdGhlIHJlbGNhY2hlIGVudHJ5LCB0aGVuIHRoZQpAQCAtMjcyMCw4ICsyNzIz LDkgQEAgUmVsYXRpb25DbGVhclJlbGF0aW9uKFJlbGF0aW9uIHJlbGF0aW9uLCBib29sIHJl YnVpbGQpCiAJCQlTV0FQRklFTEQoUm93U2VjdXJpdHlEZXNjICosIHJkX3JzZGVzYyk7CiAJ CS8qIHRvYXN0IE9JRCBvdmVycmlkZSBtdXN0IGJlIHByZXNlcnZlZCAqLwogCQlTV0FQRklF TEQoT2lkLCByZF90b2FzdG9pZCk7Ci0JCS8qIHBnc3RhdF9pbmZvIC8gZW5hYmxlZCBtdXN0 IGJlIHByZXNlcnZlZCAqLwotCQlTV0FQRklFTEQoc3RydWN0IFBnU3RhdF9UYWJsZVN0YXR1 cyAqLCBwZ3N0YXRfaW5mbyk7CisJCS8qIHBnc3RhdHRhYl9pbmZvIC8gcGdzdGF0aW5kX2lu Zm8gLyBlbmFibGVkIG11c3QgYmUgcHJlc2VydmVkICovCisJCVNXQVBGSUVMRChzdHJ1Y3Qg UGdTdGF0X1RhYmxlU3RhdHVzICosIHBnc3RhdHRhYl9pbmZvKTsKKwkJU1dBUEZJRUxEKHN0 cnVjdCBQZ1N0YXRfSW5kZXhTdGF0dXMgKiwgcGdzdGF0aW5kX2luZm8pOwogCQlTV0FQRklF TEQoYm9vbCwgcGdzdGF0X2VuYWJsZWQpOwogCQkvKiBwcmVzZXJ2ZSBvbGQgcGFydGl0aW9u IGtleSBpZiB3ZSBoYXZlIG9uZSAqLwogCQlpZiAoa2VlcF9wYXJ0a2V5KQpAQCAtNjMxNCw3 ICs2MzE4LDggQEAgbG9hZF9yZWxjYWNoZV9pbml0X2ZpbGUoYm9vbCBzaGFyZWQpCiAJCXJl bC0+cmRfZmlyc3RSZWxmaWxlbG9jYXRvclN1YmlkID0gSW52YWxpZFN1YlRyYW5zYWN0aW9u SWQ7CiAJCXJlbC0+cmRfZHJvcHBlZFN1YmlkID0gSW52YWxpZFN1YlRyYW5zYWN0aW9uSWQ7 CiAJCXJlbC0+cmRfYW1jYWNoZSA9IE5VTEw7Ci0JCXJlbC0+cGdzdGF0X2luZm8gPSBOVUxM OworCQlyZWwtPnBnc3RhdHRhYl9pbmZvID0gTlVMTDsKKwkJcmVsLT5wZ3N0YXRpbmRfaW5m byA9IE5VTEw7CiAKIAkJLyoKIAkJICogUmVjb21wdXRlIGxvY2sgYW5kIHBoeXNpY2FsIGFk ZHJlc3NpbmcgaW5mby4gIFRoaXMgaXMgbmVlZGVkIGluCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9j LmRhdAppbmRleCA5ZGJlOWVjODAxLi44YWRiYWRlMDcyIDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf cHJvYy5kYXQKQEAgLTUyNDgsMjIgKzUyNDgsMzggQEAKICAgcHJvYXJnbmFtZXMgPT4gJ3tt Y3ZfbGlzdCxpbmRleCx2YWx1ZXMsbnVsbHMsZnJlcXVlbmN5LGJhc2VfZnJlcXVlbmN5fScs CiAgIHByb3NyYyA9PiAncGdfc3RhdHNfZXh0X21jdmxpc3RfaXRlbXMnIH0sCiAKLXsgb2lk ID0+ICcxOTI4JywgZGVzY3IgPT4gJ3N0YXRpc3RpY3M6IG51bWJlciBvZiBzY2FucyBkb25l IGZvciB0YWJsZS9pbmRleCcsCi0gIHByb25hbWUgPT4gJ3BnX3N0YXRfZ2V0X251bXNjYW5z JywgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9wYXJhbGxlbCA9PiAncicsCit7IG9pZCA9PiAn MTkyOCcsIGRlc2NyID0+ICdzdGF0aXN0aWNzOiBudW1iZXIgb2Ygc2NhbnMgZG9uZSBmb3Ig dGFibGUnLAorICBwcm9uYW1lID0+ICdwZ19zdGF0X2dldF90YWJsZV9udW1zY2FucycsIHBy b3ZvbGF0aWxlID0+ICdzJywgcHJvcGFyYWxsZWwgPT4gJ3InLAogICBwcm9yZXR0eXBlID0+ ICdpbnQ4JywgcHJvYXJndHlwZXMgPT4gJ29pZCcsCi0gIHByb3NyYyA9PiAncGdfc3RhdF9n ZXRfbnVtc2NhbnMnIH0sCi17IG9pZCA9PiAnOTk3NicsIGRlc2NyID0+ICdzdGF0aXN0aWNz OiB0aW1lIG9mIHRoZSBsYXN0IHNjYW4gZm9yIHRhYmxlL2luZGV4JywKLSAgcHJvbmFtZSA9 PiAncGdfc3RhdF9nZXRfbGFzdHNjYW4nLCBwcm92b2xhdGlsZSA9PiAncycsIHByb3BhcmFs bGVsID0+ICdyJywKKyAgcHJvc3JjID0+ICdwZ19zdGF0X2dldF90YWJsZV9udW1zY2Fucycg fSwKK3sgb2lkID0+ICc4Mjk2JywgZGVzY3IgPT4gJ3N0YXRpc3RpY3M6IG51bWJlciBvZiBz Y2FucyBkb25lIGZvciBpbmRleCcsCisgIHByb25hbWUgPT4gJ3BnX3N0YXRfZ2V0X2luZGV4 X251bXNjYW5zJywgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9wYXJhbGxlbCA9PiAncicsCisg IHByb3JldHR5cGUgPT4gJ2ludDgnLCBwcm9hcmd0eXBlcyA9PiAnb2lkJywKKyAgcHJvc3Jj ID0+ICdwZ19zdGF0X2dldF9pbmRleF9udW1zY2FucycgfSwKK3sgb2lkID0+ICc5OTc2Jywg ZGVzY3IgPT4gJ3N0YXRpc3RpY3M6IHRpbWUgb2YgdGhlIGxhc3Qgc2NhbiBmb3IgdGFibGUn LAorICBwcm9uYW1lID0+ICdwZ19zdGF0X2dldF90YWJsZV9sYXN0c2NhbicsIHByb3ZvbGF0 aWxlID0+ICdzJywgcHJvcGFyYWxsZWwgPT4gJ3InLAorICBwcm9yZXR0eXBlID0+ICd0aW1l c3RhbXB0eicsIHByb2FyZ3R5cGVzID0+ICdvaWQnLAorICBwcm9zcmMgPT4gJ3BnX3N0YXRf Z2V0X3RhYmxlX2xhc3RzY2FuJyB9LAoreyBvaWQgPT4gJzg2MjYnLCBkZXNjciA9PiAnc3Rh dGlzdGljczogdGltZSBvZiB0aGUgbGFzdCBzY2FuIGZvciBpbmRleCcsCisgIHByb25hbWUg PT4gJ3BnX3N0YXRfZ2V0X2luZGV4X2xhc3RzY2FuJywgcHJvdm9sYXRpbGUgPT4gJ3MnLCBw cm9wYXJhbGxlbCA9PiAncicsCiAgIHByb3JldHR5cGUgPT4gJ3RpbWVzdGFtcHR6JywgcHJv YXJndHlwZXMgPT4gJ29pZCcsCi0gIHByb3NyYyA9PiAncGdfc3RhdF9nZXRfbGFzdHNjYW4n IH0sCisgIHByb3NyYyA9PiAncGdfc3RhdF9nZXRfaW5kZXhfbGFzdHNjYW4nIH0sCiB7IG9p ZCA9PiAnMTkyOScsIGRlc2NyID0+ICdzdGF0aXN0aWNzOiBudW1iZXIgb2YgdHVwbGVzIHJl YWQgYnkgc2Vxc2NhbicsCi0gIHByb25hbWUgPT4gJ3BnX3N0YXRfZ2V0X3R1cGxlc19yZXR1 cm5lZCcsIHByb3ZvbGF0aWxlID0+ICdzJywKKyAgcHJvbmFtZSA9PiAncGdfc3RhdF9nZXRf dGFibGVfdHVwbGVzX3JldHVybmVkJywgcHJvdm9sYXRpbGUgPT4gJ3MnLAogICBwcm9wYXJh bGxlbCA9PiAncicsIHByb3JldHR5cGUgPT4gJ2ludDgnLCBwcm9hcmd0eXBlcyA9PiAnb2lk JywKLSAgcHJvc3JjID0+ICdwZ19zdGF0X2dldF90dXBsZXNfcmV0dXJuZWQnIH0sCisgIHBy b3NyYyA9PiAncGdfc3RhdF9nZXRfdGFibGVfdHVwbGVzX3JldHVybmVkJyB9LAoreyBvaWQg PT4gJzk2MDMnLCBkZXNjciA9PiAnc3RhdGlzdGljczogbnVtYmVyIG9mIHR1cGxlcyByZWFk IGJ5IHNlcXNjYW4nLAorICBwcm9uYW1lID0+ICdwZ19zdGF0X2dldF9pbmRleF90dXBsZXNf cmV0dXJuZWQnLCBwcm92b2xhdGlsZSA9PiAncycsCisgIHByb3BhcmFsbGVsID0+ICdyJywg cHJvcmV0dHlwZSA9PiAnaW50OCcsIHByb2FyZ3R5cGVzID0+ICdvaWQnLAorICBwcm9zcmMg PT4gJ3BnX3N0YXRfZ2V0X2luZGV4X3R1cGxlc19yZXR1cm5lZCcgfSwKIHsgb2lkID0+ICcx OTMwJywgZGVzY3IgPT4gJ3N0YXRpc3RpY3M6IG51bWJlciBvZiB0dXBsZXMgZmV0Y2hlZCBi eSBpZHhzY2FuJywKLSAgcHJvbmFtZSA9PiAncGdfc3RhdF9nZXRfdHVwbGVzX2ZldGNoZWQn LCBwcm92b2xhdGlsZSA9PiAncycsCisgIHByb25hbWUgPT4gJ3BnX3N0YXRfZ2V0X3RhYmxl X3R1cGxlc19mZXRjaGVkJywgcHJvdm9sYXRpbGUgPT4gJ3MnLAorICBwcm9wYXJhbGxlbCA9 PiAncicsIHByb3JldHR5cGUgPT4gJ2ludDgnLCBwcm9hcmd0eXBlcyA9PiAnb2lkJywKKyAg cHJvc3JjID0+ICdwZ19zdGF0X2dldF90YWJsZV90dXBsZXNfZmV0Y2hlZCcgfSwKK3sgb2lk ID0+ICc4NTI2JywgZGVzY3IgPT4gJ3N0YXRpc3RpY3M6IG51bWJlciBvZiB0dXBsZXMgZmV0 Y2hlZCBieSBpZHhzY2FuJywKKyAgcHJvbmFtZSA9PiAncGdfc3RhdF9nZXRfaW5kZXhfdHVw bGVzX2ZldGNoZWQnLCBwcm92b2xhdGlsZSA9PiAncycsCiAgIHByb3BhcmFsbGVsID0+ICdy JywgcHJvcmV0dHlwZSA9PiAnaW50OCcsIHByb2FyZ3R5cGVzID0+ICdvaWQnLAotICBwcm9z cmMgPT4gJ3BnX3N0YXRfZ2V0X3R1cGxlc19mZXRjaGVkJyB9LAorICBwcm9zcmMgPT4gJ3Bn X3N0YXRfZ2V0X2luZGV4X3R1cGxlc19mZXRjaGVkJyB9LAogeyBvaWQgPT4gJzE5MzEnLCBk ZXNjciA9PiAnc3RhdGlzdGljczogbnVtYmVyIG9mIHR1cGxlcyBpbnNlcnRlZCcsCiAgIHBy b25hbWUgPT4gJ3BnX3N0YXRfZ2V0X3R1cGxlc19pbnNlcnRlZCcsIHByb3ZvbGF0aWxlID0+ ICdzJywKICAgcHJvcGFyYWxsZWwgPT4gJ3InLCBwcm9yZXR0eXBlID0+ICdpbnQ4JywgcHJv YXJndHlwZXMgPT4gJ29pZCcsCkBAIC01Mjk5LDEzICs1MzE1LDIxIEBACiAgIHByb3BhcmFs bGVsID0+ICdyJywgcHJvcmV0dHlwZSA9PiAnaW50OCcsIHByb2FyZ3R5cGVzID0+ICdvaWQn LAogICBwcm9zcmMgPT4gJ3BnX3N0YXRfZ2V0X2luc19zaW5jZV92YWN1dW0nIH0sCiB7IG9p ZCA9PiAnMTkzNCcsIGRlc2NyID0+ICdzdGF0aXN0aWNzOiBudW1iZXIgb2YgYmxvY2tzIGZl dGNoZWQnLAotICBwcm9uYW1lID0+ICdwZ19zdGF0X2dldF9ibG9ja3NfZmV0Y2hlZCcsIHBy b3ZvbGF0aWxlID0+ICdzJywKKyAgcHJvbmFtZSA9PiAncGdfc3RhdF9nZXRfdGFibGVfYmxv Y2tzX2ZldGNoZWQnLCBwcm92b2xhdGlsZSA9PiAncycsCiAgIHByb3BhcmFsbGVsID0+ICdy JywgcHJvcmV0dHlwZSA9PiAnaW50OCcsIHByb2FyZ3R5cGVzID0+ICdvaWQnLAotICBwcm9z cmMgPT4gJ3BnX3N0YXRfZ2V0X2Jsb2Nrc19mZXRjaGVkJyB9LAorICBwcm9zcmMgPT4gJ3Bn X3N0YXRfZ2V0X3RhYmxlX2Jsb2Nrc19mZXRjaGVkJyB9LAoreyBvaWQgPT4gJzk0MzInLCBk ZXNjciA9PiAnc3RhdGlzdGljczogbnVtYmVyIG9mIGJsb2NrcyBmZXRjaGVkJywKKyAgcHJv bmFtZSA9PiAncGdfc3RhdF9nZXRfaW5kZXhfYmxvY2tzX2ZldGNoZWQnLCBwcm92b2xhdGls ZSA9PiAncycsCisgIHByb3BhcmFsbGVsID0+ICdyJywgcHJvcmV0dHlwZSA9PiAnaW50OCcs IHByb2FyZ3R5cGVzID0+ICdvaWQnLAorICBwcm9zcmMgPT4gJ3BnX3N0YXRfZ2V0X2luZGV4 X2Jsb2Nrc19mZXRjaGVkJyB9LAogeyBvaWQgPT4gJzE5MzUnLCBkZXNjciA9PiAnc3RhdGlz dGljczogbnVtYmVyIG9mIGJsb2NrcyBmb3VuZCBpbiBjYWNoZScsCi0gIHByb25hbWUgPT4g J3BnX3N0YXRfZ2V0X2Jsb2Nrc19oaXQnLCBwcm92b2xhdGlsZSA9PiAncycsIHByb3BhcmFs bGVsID0+ICdyJywKKyAgcHJvbmFtZSA9PiAncGdfc3RhdF9nZXRfdGFibGVfYmxvY2tzX2hp dCcsIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvcGFyYWxsZWwgPT4gJ3InLAorICBwcm9yZXR0 eXBlID0+ICdpbnQ4JywgcHJvYXJndHlwZXMgPT4gJ29pZCcsCisgIHByb3NyYyA9PiAncGdf c3RhdF9nZXRfdGFibGVfYmxvY2tzX2hpdCcgfSwKK3sgb2lkID0+ICc4MzU0JywgZGVzY3Ig PT4gJ3N0YXRpc3RpY3M6IG51bWJlciBvZiBibG9ja3MgZm91bmQgaW4gY2FjaGUnLAorICBw cm9uYW1lID0+ICdwZ19zdGF0X2dldF9pbmRleF9ibG9ja3NfaGl0JywgcHJvdm9sYXRpbGUg PT4gJ3MnLCBwcm9wYXJhbGxlbCA9PiAncicsCiAgIHByb3JldHR5cGUgPT4gJ2ludDgnLCBw cm9hcmd0eXBlcyA9PiAnb2lkJywKLSAgcHJvc3JjID0+ICdwZ19zdGF0X2dldF9ibG9ja3Nf aGl0JyB9LAorICBwcm9zcmMgPT4gJ3BnX3N0YXRfZ2V0X2luZGV4X2Jsb2Nrc19oaXQnIH0s CiB7IG9pZCA9PiAnMjc4MScsIGRlc2NyID0+ICdzdGF0aXN0aWNzOiBsYXN0IG1hbnVhbCB2 YWN1dW0gdGltZSBmb3IgYSB0YWJsZScsCiAgIHByb25hbWUgPT4gJ3BnX3N0YXRfZ2V0X2xh c3RfdmFjdXVtX3RpbWUnLCBwcm92b2xhdGlsZSA9PiAncycsCiAgIHByb3BhcmFsbGVsID0+ ICdyJywgcHJvcmV0dHlwZSA9PiAndGltZXN0YW1wdHonLCBwcm9hcmd0eXBlcyA9PiAnb2lk JywKQEAgLTU2OTMsMTAgKzU3MTcsMTUgQEAKICAgcHJvc3JjID0+ICdwZ19zdGF0X2dldF9m dW5jdGlvbl9zZWxmX3RpbWUnIH0sCiAKIHsgb2lkID0+ICczMDM3JywKLSAgZGVzY3IgPT4g J3N0YXRpc3RpY3M6IG51bWJlciBvZiBzY2FucyBkb25lIGZvciB0YWJsZS9pbmRleCBpbiBj dXJyZW50IHRyYW5zYWN0aW9uJywKLSAgcHJvbmFtZSA9PiAncGdfc3RhdF9nZXRfeGFjdF9u dW1zY2FucycsIHByb3ZvbGF0aWxlID0+ICd2JywKKyAgZGVzY3IgPT4gJ3N0YXRpc3RpY3M6 IG51bWJlciBvZiBzY2FucyBkb25lIGZvciB0YWJsZSBpbiBjdXJyZW50IHRyYW5zYWN0aW9u JywKKyAgcHJvbmFtZSA9PiAncGdfc3RhdF9nZXRfdGFibGVfeGFjdF9udW1zY2FucycsIHBy b3ZvbGF0aWxlID0+ICd2JywKKyAgcHJvcGFyYWxsZWwgPT4gJ3InLCBwcm9yZXR0eXBlID0+ ICdpbnQ4JywgcHJvYXJndHlwZXMgPT4gJ29pZCcsCisgIHByb3NyYyA9PiAncGdfc3RhdF9n ZXRfdGFibGVfeGFjdF9udW1zY2FucycgfSwKK3sgb2lkID0+ICc4ODkyJywKKyAgZGVzY3Ig PT4gJ3N0YXRpc3RpY3M6IG51bWJlciBvZiBzY2FucyBkb25lIGZvciBpbmRleCBpbiBjdXJy ZW50IHRyYW5zYWN0aW9uJywKKyAgcHJvbmFtZSA9PiAncGdfc3RhdF9nZXRfaW5kZXhfeGFj dF9udW1zY2FucycsIHByb3ZvbGF0aWxlID0+ICd2JywKICAgcHJvcGFyYWxsZWwgPT4gJ3In LCBwcm9yZXR0eXBlID0+ICdpbnQ4JywgcHJvYXJndHlwZXMgPT4gJ29pZCcsCi0gIHByb3Ny YyA9PiAncGdfc3RhdF9nZXRfeGFjdF9udW1zY2FucycgfSwKKyAgcHJvc3JjID0+ICdwZ19z dGF0X2dldF9pbmRleF94YWN0X251bXNjYW5zJyB9LAogeyBvaWQgPT4gJzMwMzgnLAogICBk ZXNjciA9PiAnc3RhdGlzdGljczogbnVtYmVyIG9mIHR1cGxlcyByZWFkIGJ5IHNlcXNjYW4g aW4gY3VycmVudCB0cmFuc2FjdGlvbicsCiAgIHByb25hbWUgPT4gJ3BnX3N0YXRfZ2V0X3hh Y3RfdHVwbGVzX3JldHVybmVkJywgcHJvdm9sYXRpbGUgPT4gJ3YnLApkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvcGdzdGF0LmggYi9zcmMvaW5jbHVkZS9wZ3N0YXQuaAppbmRleCA5ZTJj ZTZmMDExLi4xNDkzOTRjN2VmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wZ3N0YXQuaAor KysgYi9zcmMvaW5jbHVkZS9wZ3N0YXQuaApAQCAtMzksNyArMzksOCBAQCB0eXBlZGVmIGVu dW0gUGdTdGF0X0tpbmQKIAogCS8qIHN0YXRzIGZvciB2YXJpYWJsZS1udW1iZXJlZCBvYmpl Y3RzICovCiAJUEdTVEFUX0tJTkRfREFUQUJBU0UsCQkvKiBkYXRhYmFzZS13aWRlIHN0YXRp c3RpY3MgKi8KLQlQR1NUQVRfS0lORF9SRUxBVElPTiwJCS8qIHBlci10YWJsZSBzdGF0aXN0 aWNzICovCisJUEdTVEFUX0tJTkRfVEFCTEUsCQkJLyogcGVyLXRhYmxlIHN0YXRpc3RpY3Mg Ki8KKwlQR1NUQVRfS0lORF9JTkRFWCwJCQkvKiBwZXItaW5kZXggc3RhdGlzdGljcyAqLwog CVBHU1RBVF9LSU5EX0ZVTkNUSU9OLAkJLyogcGVyLWZ1bmN0aW9uIHN0YXRpc3RpY3MgKi8K IAlQR1NUQVRfS0lORF9SRVBMU0xPVCwJCS8qIHBlci1zbG90IHN0YXRpc3RpY3MgKi8KIAlQ R1NUQVRfS0lORF9TVUJTQ1JJUFRJT04sCS8qIHBlci1zdWJzY3JpcHRpb24gc3RhdGlzdGlj cyAqLwpAQCAtMTQ1LDYgKzE0NiwyOCBAQCB0eXBlZGVmIHN0cnVjdCBQZ1N0YXRfQmFja2Vu ZFN1YkVudHJ5CiAJUGdTdGF0X0NvdW50ZXIgc3luY19lcnJvcl9jb3VudDsKIH0gUGdTdGF0 X0JhY2tlbmRTdWJFbnRyeTsKIAorLyogLS0tLS0tLS0tLQorICogUGdTdGF0X0luZGV4Q291 bnRzCQkJVGhlIGFjdHVhbCBwZXItaW5kZXggY291bnRzIGtlcHQgYnkgYSBiYWNrZW5kCisg KgorICogVGhpcyBzdHJ1Y3Qgc2hvdWxkIGNvbnRhaW4gb25seSBhY3R1YWwgZXZlbnQgY291 bnRlcnMsIGJlY2F1c2Ugd2UgbWVtY21wCisgKiBpdCBhZ2FpbnN0IHplcm9lcyB0byBkZXRl Y3Qgd2hldGhlciB0aGVyZSBhcmUgYW55IHN0YXRzIHVwZGF0ZXMgdG8gYXBwbHkuCisgKiBJ dCBpcyBhIGNvbXBvbmVudCBvZiBQZ1N0YXRfSW5kZXhTdGF0dXMgKHdpdGhpbi1iYWNrZW5k IHN0YXRlKS4KKyAqCisgKiB0dXBsZXNfcmV0dXJuZWQgaXMgdGhlIG51bWJlciBvZiBpbmRl eCBlbnRyaWVzIHJldHVybmVkIGJ5CisgKiB0aGUgaW5kZXggQU0sIHdoaWxlIHR1cGxlc19m ZXRjaGVkIGlzIHRoZSBudW1iZXIgb2YgdHVwbGVzIHN1Y2Nlc3NmdWxseQorICogZmV0Y2hl ZCBieSBoZWFwX2ZldGNoIHVuZGVyIHRoZSBjb250cm9sIG9mIHNpbXBsZSBpbmRleHNjYW5z IGZvciB0aGlzIGluZGV4LgorICogLS0tLS0tLS0tLQorICovCit0eXBlZGVmIHN0cnVjdCBQ Z1N0YXRfSW5kZXhDb3VudHMKK3sKKwlQZ1N0YXRfQ291bnRlciBpX251bXNjYW5zOworCisJ UGdTdGF0X0NvdW50ZXIgaV90dXBsZXNfcmV0dXJuZWQ7CisJUGdTdGF0X0NvdW50ZXIgaV90 dXBsZXNfZmV0Y2hlZDsKKwlQZ1N0YXRfQ291bnRlciBpX2Jsb2Nrc19mZXRjaGVkOworCVBn U3RhdF9Db3VudGVyIGlfYmxvY2tzX2hpdDsKK30gUGdTdGF0X0luZGV4Q291bnRzOworCiAv KiAtLS0tLS0tLS0tCiAgKiBQZ1N0YXRfVGFibGVDb3VudHMJCQlUaGUgYWN0dWFsIHBlci10 YWJsZSBjb3VudHMga2VwdCBieSBhIGJhY2tlbmQKICAqCkBAIC0xNTIsMTIgKzE3NSw5IEBA IHR5cGVkZWYgc3RydWN0IFBnU3RhdF9CYWNrZW5kU3ViRW50cnkKICAqIGl0IGFnYWluc3Qg emVyb2VzIHRvIGRldGVjdCB3aGV0aGVyIHRoZXJlIGFyZSBhbnkgc3RhdHMgdXBkYXRlcyB0 byBhcHBseS4KICAqIEl0IGlzIGEgY29tcG9uZW50IG9mIFBnU3RhdF9UYWJsZVN0YXR1cyAo d2l0aGluLWJhY2tlbmQgc3RhdGUpLgogICoKLSAqIE5vdGU6IGZvciBhIHRhYmxlLCB0dXBs ZXNfcmV0dXJuZWQgaXMgdGhlIG51bWJlciBvZiB0dXBsZXMgc3VjY2Vzc2Z1bGx5CisgKiBO b3RlOiB0dXBsZXNfcmV0dXJuZWQgaXMgdGhlIG51bWJlciBvZiB0dXBsZXMgc3VjY2Vzc2Z1 bGx5CiAgKiBmZXRjaGVkIGJ5IGhlYXBfZ2V0bmV4dCwgd2hpbGUgdHVwbGVzX2ZldGNoZWQg aXMgdGhlIG51bWJlciBvZiB0dXBsZXMKICAqIHN1Y2Nlc3NmdWxseSBmZXRjaGVkIGJ5IGhl YXBfZmV0Y2ggdW5kZXIgdGhlIGNvbnRyb2wgb2YgYml0bWFwIGluZGV4c2NhbnMuCi0gKiBG b3IgYW4gaW5kZXgsIHR1cGxlc19yZXR1cm5lZCBpcyB0aGUgbnVtYmVyIG9mIGluZGV4IGVu dHJpZXMgcmV0dXJuZWQgYnkKLSAqIHRoZSBpbmRleCBBTSwgd2hpbGUgdHVwbGVzX2ZldGNo ZWQgaXMgdGhlIG51bWJlciBvZiB0dXBsZXMgc3VjY2Vzc2Z1bGx5Ci0gKiBmZXRjaGVkIGJ5 IGhlYXBfZmV0Y2ggdW5kZXIgdGhlIGNvbnRyb2wgb2Ygc2ltcGxlIGluZGV4c2NhbnMgZm9y IHRoaXMgaW5kZXguCiAgKgogICogdHVwbGVzX2luc2VydGVkL3VwZGF0ZWQvZGVsZXRlZC9o b3RfdXBkYXRlZCBjb3VudCBhdHRlbXB0ZWQgYWN0aW9ucywKICAqIHJlZ2FyZGxlc3Mgb2Yg d2hldGhlciB0aGUgdHJhbnNhY3Rpb24gY29tbWl0dGVkLiAgZGVsdGFfbGl2ZV90dXBsZXMs CkBAIC0yMTAsNiArMjMwLDIyIEBAIHR5cGVkZWYgc3RydWN0IFBnU3RhdF9UYWJsZVN0YXR1 cwogCVJlbGF0aW9uCXJlbGF0aW9uOwkJLyogcmVsIHRoYXQgaXMgdXNpbmcgdGhpcyBlbnRy eSAqLwogfSBQZ1N0YXRfVGFibGVTdGF0dXM7CiAKKy8qIC0tLS0tLS0tLS0KKyAqIFBnU3Rh dF9JbmRleFN0YXR1cwkJCVBlci1pbmRleCBzdGF0dXMgd2l0aGluIGEgYmFja2VuZAorICoK KyAqIE1hbnkgb2YgdGhlIGV2ZW50IGNvdW50ZXJzIGFyZSBub250cmFuc2FjdGlvbmFsLCBp ZSwgd2UgY291bnQgZXZlbnRzCisgKiBpbiBjb21taXR0ZWQgYW5kIGFib3J0ZWQgdHJhbnNh Y3Rpb25zIGFsaWtlLiAgRm9yIHRoZXNlLCB3ZSBqdXN0IGNvdW50CisgKiBkaXJlY3RseSBp biB0aGUgUGdTdGF0X0luZGV4U3RhdHVzLgorICogLS0tLS0tLS0tLQorICovCit0eXBlZGVm IHN0cnVjdCBQZ1N0YXRfSW5kZXhTdGF0dXMKK3sKKwlPaWQJCQlyX2lkOwkJCS8qIHJlbGF0 aW9uJ3MgT0lEICovCisJYm9vbAkJcl9zaGFyZWQ7CQkvKiBpcyBpdCBhIHNoYXJlZCBjYXRh bG9nPyAqLworCVBnU3RhdF9JbmRleENvdW50cyBpX2NvdW50czsJLyogZXZlbnQgY291bnRz IHRvIGJlIHNlbnQgKi8KKwlSZWxhdGlvbglyZWxhdGlvbjsJCS8qIHJlbCB0aGF0IGlzIHVz aW5nIHRoaXMgZW50cnkgKi8KK30gUGdTdGF0X0luZGV4U3RhdHVzOworCiAvKiAtLS0tLS0t LS0tCiAgKiBQZ1N0YXRfVGFibGVYYWN0U3RhdHVzCQlQZXItdGFibGUsIHBlci1zdWJ0cmFu c2FjdGlvbiBzdGF0dXMKICAqIC0tLS0tLS0tLS0KQEAgLTM4Miw2ICs0MTgsMTcgQEAgdHlw ZWRlZiBzdHJ1Y3QgUGdTdGF0X1N0YXRUYWJFbnRyeQogCVBnU3RhdF9Db3VudGVyIGF1dG92 YWNfYW5hbHl6ZV9jb3VudDsKIH0gUGdTdGF0X1N0YXRUYWJFbnRyeTsKIAordHlwZWRlZiBz dHJ1Y3QgUGdTdGF0X1N0YXRJbmRFbnRyeQoreworCVBnU3RhdF9Db3VudGVyIG51bXNjYW5z OworCVRpbWVzdGFtcFR6IGxhc3RzY2FuOworCisJUGdTdGF0X0NvdW50ZXIgdHVwbGVzX3Jl dHVybmVkOworCVBnU3RhdF9Db3VudGVyIHR1cGxlc19mZXRjaGVkOworCVBnU3RhdF9Db3Vu dGVyIGJsb2Nrc19mZXRjaGVkOworCVBnU3RhdF9Db3VudGVyIGJsb2Nrc19oaXQ7Cit9IFBn U3RhdF9TdGF0SW5kRW50cnk7CisKIHR5cGVkZWYgc3RydWN0IFBnU3RhdF9XYWxTdGF0cwog ewogCVBnU3RhdF9Db3VudGVyIHdhbF9yZWNvcmRzOwpAQCAtNDk0LDE2ICs1NDEsMTUgQEAg ZXh0ZXJuIFBnU3RhdF9CYWNrZW5kRnVuY3Rpb25FbnRyeSAqZmluZF9mdW5jc3RhdF9lbnRy eShPaWQgZnVuY19pZCk7CiAKIAogLyoKLSAqIEZ1bmN0aW9ucyBpbiBwZ3N0YXRfcmVsYXRp b24uYworICogRnVuY3Rpb25zIGluIHBnc3RhdF90YWJsZS5jCiAgKi8KIAotZXh0ZXJuIHZv aWQgcGdzdGF0X2NyZWF0ZV9yZWxhdGlvbihSZWxhdGlvbiByZWwpOwotZXh0ZXJuIHZvaWQg cGdzdGF0X2Ryb3BfcmVsYXRpb24oUmVsYXRpb24gcmVsKTsKLWV4dGVybiB2b2lkIHBnc3Rh dF9jb3B5X3JlbGF0aW9uX3N0YXRzKFJlbGF0aW9uIGRzdCwgUmVsYXRpb24gc3JjKTsKK2V4 dGVybiB2b2lkIHBnc3RhdF9jcmVhdGVfdGFibGUoUmVsYXRpb24gcmVsKTsKK2V4dGVybiB2 b2lkIHBnc3RhdF9kcm9wX3RhYmxlKFJlbGF0aW9uIHJlbCk7CitleHRlcm4gdm9pZCBwZ3N0 YXRfaW5pdF90YWJsZShSZWxhdGlvbiByZWwpOwogCi1leHRlcm4gdm9pZCBwZ3N0YXRfaW5p dF9yZWxhdGlvbihSZWxhdGlvbiByZWwpOwotZXh0ZXJuIHZvaWQgcGdzdGF0X2Fzc29jX3Jl bGF0aW9uKFJlbGF0aW9uIHJlbCk7Ci1leHRlcm4gdm9pZCBwZ3N0YXRfdW5saW5rX3JlbGF0 aW9uKFJlbGF0aW9uIHJlbCk7CitleHRlcm4gdm9pZCBwZ3N0YXRfYXNzb2NfdGFibGUoUmVs YXRpb24gcmVsKTsKK2V4dGVybiB2b2lkIHBnc3RhdF91bmxpbmtfdGFibGUoUmVsYXRpb24g cmVsKTsKIAogZXh0ZXJuIHZvaWQgcGdzdGF0X3JlcG9ydF92YWN1dW0oT2lkIHRhYmxlb2lk LCBib29sIHNoYXJlZCwKIAkJCQkJCQkJIFBnU3RhdF9Db3VudGVyIGxpdmV0dXBsZXMsIFBn U3RhdF9Db3VudGVyIGRlYWR0dXBsZXMpOwpAQCAtNTExLDUzICs1NTcsODMgQEAgZXh0ZXJu IHZvaWQgcGdzdGF0X3JlcG9ydF9hbmFseXplKFJlbGF0aW9uIHJlbCwKIAkJCQkJCQkJICBQ Z1N0YXRfQ291bnRlciBsaXZldHVwbGVzLCBQZ1N0YXRfQ291bnRlciBkZWFkdHVwbGVzLAog CQkJCQkJCQkgIGJvb2wgcmVzZXRjb3VudGVyKTsKIAorLyoKKyAqIEZ1bmN0aW9ucyBpbiBw Z3N0YXRfaW5kZXguYworICovCisKK2V4dGVybiB2b2lkIHBnc3RhdF9jcmVhdGVfaW5kZXgo UmVsYXRpb24gcmVsKTsKK2V4dGVybiB2b2lkIHBnc3RhdF9kcm9wX2luZGV4KFJlbGF0aW9u IHJlbCk7CitleHRlcm4gdm9pZCBwZ3N0YXRfY29weV9pbmRleF9zdGF0cyhSZWxhdGlvbiBk c3QsIFJlbGF0aW9uIHNyYyk7CitleHRlcm4gdm9pZCBwZ3N0YXRfaW5pdF9pbmRleChSZWxh dGlvbiByZWwpOworZXh0ZXJuIHZvaWQgcGdzdGF0X2Fzc29jX2luZGV4KFJlbGF0aW9uIHJl bCk7CitleHRlcm4gdm9pZCBwZ3N0YXRfdW5saW5rX2luZGV4KFJlbGF0aW9uIHJlbCk7CisK IC8qCiAgKiBJZiBzdGF0cyBhcmUgZW5hYmxlZCwgYnV0IHBlbmRpbmcgZGF0YSBoYXNuJ3Qg YmVlbiBwcmVwYXJlZCB5ZXQsIGNhbGwKLSAqIHBnc3RhdF9hc3NvY19yZWxhdGlvbigpIHRv IGRvIHNvLiBTZWUgaXRzIGNvbW1lbnQgZm9yIHdoeSB0aGlzIGlzIGRvbmUKLSAqIHNlcGFy YXRlbHkgZnJvbSBwZ3N0YXRfaW5pdF9yZWxhdGlvbigpLgorICogcGdzdGF0X2Fzc29jX3Rh YmxlKCkgLyBwZ3N0YXRfYXNzb2NfaW5kZXgoKSB0byBkbyBzby4KKyAqIFNlZSB0aGVpciBj b21tZW50IGZvciB3aHkgdGhpcyBpcyBkb25lIHNlcGFyYXRlbHkgZnJvbSBwZ3N0YXRfaW5p dF90YWJsZSgpCisgKiBhbmQgcGdzdGF0X2luaXRfaW5kZXgoKS4KICAqLwotI2RlZmluZSBw Z3N0YXRfc2hvdWxkX2NvdW50X3JlbGF0aW9uKHJlbCkgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCi0JKGxpa2VseSgocmVsKS0+cGdzdGF0X2luZm8gIT0gTlVMTCkgPyB0cnVlIDog ICAgICAgICAgICAgICAgICAgIFwKLQkgKChyZWwpLT5wZ3N0YXRfZW5hYmxlZCA/IHBnc3Rh dF9hc3NvY19yZWxhdGlvbihyZWwpLCB0cnVlIDogZmFsc2UpKQorI2RlZmluZSBwZ3N0YXRf c2hvdWxkX2NvdW50X3RhYmxlKHJlbCkgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisJ KGxpa2VseSgocmVsKS0+cGdzdGF0dGFiX2luZm8gIT0gTlVMTCkgPyB0cnVlIDogICAgICAg ICAgICAgICAgICAgIFwKKwkgKChyZWwpLT5wZ3N0YXRfZW5hYmxlZCA/IHBnc3RhdF9hc3Nv Y190YWJsZShyZWwpLCB0cnVlIDogZmFsc2UpKQorCisjZGVmaW5lIHBnc3RhdF9zaG91bGRf Y291bnRfaW5kZXgocmVsKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKwkobGlrZWx5 KChyZWwpLT5wZ3N0YXRpbmRfaW5mbyAhPSBOVUxMKSA/IHRydWUgOiAgICAgICAgICAgICAg ICAgICAgXAorCSAoKHJlbCktPnBnc3RhdF9lbmFibGVkID8gcGdzdGF0X2Fzc29jX2luZGV4 KHJlbCksIHRydWUgOiBmYWxzZSkpCiAKIC8qIG5vbnRyYW5zYWN0aW9uYWwgZXZlbnQgY291 bnRzIGFyZSBzaW1wbGUgZW5vdWdoIHRvIGlubGluZSAqLwogCiAjZGVmaW5lIHBnc3RhdF9j b3VudF9oZWFwX3NjYW4ocmVsKQkJCQkJCQkJCVwKIAlkbyB7CQkJCQkJCQkJCQkJCQkJXAot CQlpZiAocGdzdGF0X3Nob3VsZF9jb3VudF9yZWxhdGlvbihyZWwpKQkJCQkJCVwKLQkJCShy ZWwpLT5wZ3N0YXRfaW5mby0+dF9jb3VudHMudF9udW1zY2FucysrOwkJCQlcCisJCWlmIChw Z3N0YXRfc2hvdWxkX2NvdW50X3RhYmxlKHJlbCkpCQkJCQkJXAorCQkJKHJlbCktPnBnc3Rh dHRhYl9pbmZvLT50X2NvdW50cy50X251bXNjYW5zKys7CQkJCVwKIAl9IHdoaWxlICgwKQog I2RlZmluZSBwZ3N0YXRfY291bnRfaGVhcF9nZXRuZXh0KHJlbCkJCQkJCQkJCVwKIAlkbyB7 CQkJCQkJCQkJCQkJCQkJXAotCQlpZiAocGdzdGF0X3Nob3VsZF9jb3VudF9yZWxhdGlvbihy ZWwpKQkJCQkJCVwKLQkJCShyZWwpLT5wZ3N0YXRfaW5mby0+dF9jb3VudHMudF90dXBsZXNf cmV0dXJuZWQrKzsJCVwKKwkJaWYgKHBnc3RhdF9zaG91bGRfY291bnRfdGFibGUocmVsKSkJ CQkJCQlcCisJCQkocmVsKS0+cGdzdGF0dGFiX2luZm8tPnRfY291bnRzLnRfdHVwbGVzX3Jl dHVybmVkKys7CQlcCiAJfSB3aGlsZSAoMCkKICNkZWZpbmUgcGdzdGF0X2NvdW50X2hlYXBf ZmV0Y2gocmVsKQkJCQkJCQkJXAogCWRvIHsJCQkJCQkJCQkJCQkJCQlcCi0JCWlmIChwZ3N0 YXRfc2hvdWxkX2NvdW50X3JlbGF0aW9uKHJlbCkpCQkJCQkJXAotCQkJKHJlbCktPnBnc3Rh dF9pbmZvLT50X2NvdW50cy50X3R1cGxlc19mZXRjaGVkKys7CQlcCisJCWlmIChwZ3N0YXRf c2hvdWxkX2NvdW50X3RhYmxlKHJlbCkpCQkJCQkJXAorCQkJKHJlbCktPnBnc3RhdHRhYl9p bmZvLT50X2NvdW50cy50X3R1cGxlc19mZXRjaGVkKys7CQlcCisJfSB3aGlsZSAoMCkKKyNk ZWZpbmUgcGdzdGF0X2NvdW50X2luZGV4X2ZldGNoKHJlbCkJCQkJCQkJCVwKKwlkbyB7CQkJ CQkJCQkJCQkJCQkJXAorCQlpZiAocGdzdGF0X3Nob3VsZF9jb3VudF9pbmRleChyZWwpKQkJ CQkJCVwKKwkJCShyZWwpLT5wZ3N0YXRpbmRfaW5mby0+aV9jb3VudHMuaV90dXBsZXNfZmV0 Y2hlZCsrOwkJXAogCX0gd2hpbGUgKDApCiAjZGVmaW5lIHBnc3RhdF9jb3VudF9pbmRleF9z Y2FuKHJlbCkJCQkJCQkJCVwKIAlkbyB7CQkJCQkJCQkJCQkJCQkJXAotCQlpZiAocGdzdGF0 X3Nob3VsZF9jb3VudF9yZWxhdGlvbihyZWwpKQkJCQkJCVwKLQkJCShyZWwpLT5wZ3N0YXRf aW5mby0+dF9jb3VudHMudF9udW1zY2FucysrOwkJCQlcCisJCWlmIChwZ3N0YXRfc2hvdWxk X2NvdW50X2luZGV4KHJlbCkpCQkJCQkJXAorCQkJKHJlbCktPnBnc3RhdGluZF9pbmZvLT5p X2NvdW50cy5pX251bXNjYW5zKys7CQkJXAogCX0gd2hpbGUgKDApCiAjZGVmaW5lIHBnc3Rh dF9jb3VudF9pbmRleF90dXBsZXMocmVsLCBuKQkJCQkJCQlcCiAJZG8gewkJCQkJCQkJCQkJ CQkJCVwKLQkJaWYgKHBnc3RhdF9zaG91bGRfY291bnRfcmVsYXRpb24ocmVsKSkJCQkJCQlc Ci0JCQkocmVsKS0+cGdzdGF0X2luZm8tPnRfY291bnRzLnRfdHVwbGVzX3JldHVybmVkICs9 IChuKTsJXAorCQlpZiAocGdzdGF0X3Nob3VsZF9jb3VudF9pbmRleChyZWwpKQkJCQkJCVwK KwkJCShyZWwpLT5wZ3N0YXRpbmRfaW5mby0+aV9jb3VudHMuaV90dXBsZXNfcmV0dXJuZWQg Kz0gKG4pOwlcCiAJfSB3aGlsZSAoMCkKLSNkZWZpbmUgcGdzdGF0X2NvdW50X2J1ZmZlcl9y ZWFkKHJlbCkJCQkJCQkJCVwKKyNkZWZpbmUgcGdzdGF0X2NvdW50X3RhYmxlX2J1ZmZlcl9y ZWFkKHJlbCkJCQkJCQkJCVwKIAlkbyB7CQkJCQkJCQkJCQkJCQkJXAotCQlpZiAocGdzdGF0 X3Nob3VsZF9jb3VudF9yZWxhdGlvbihyZWwpKQkJCQkJCVwKLQkJCShyZWwpLT5wZ3N0YXRf aW5mby0+dF9jb3VudHMudF9ibG9ja3NfZmV0Y2hlZCsrOwkJXAorCQlpZiAocGdzdGF0X3No b3VsZF9jb3VudF90YWJsZShyZWwpKQlcCisJCQkocmVsKS0+cGdzdGF0dGFiX2luZm8tPnRf Y291bnRzLnRfYmxvY2tzX2ZldGNoZWQrKzsJCVwKIAl9IHdoaWxlICgwKQotI2RlZmluZSBw Z3N0YXRfY291bnRfYnVmZmVyX2hpdChyZWwpCQkJCQkJCQlcCisjZGVmaW5lIHBnc3RhdF9j b3VudF9pbmRleF9idWZmZXJfcmVhZChyZWwpCQkJCQkJCQlcCiAJZG8gewkJCQkJCQkJCQkJ CQkJCVwKLQkJaWYgKHBnc3RhdF9zaG91bGRfY291bnRfcmVsYXRpb24ocmVsKSkJCQkJCQlc Ci0JCQkocmVsKS0+cGdzdGF0X2luZm8tPnRfY291bnRzLnRfYmxvY2tzX2hpdCsrOwkJCVwK KwkJaWYgKHBnc3RhdF9zaG91bGRfY291bnRfaW5kZXgocmVsKSkJXAorCQkJKHJlbCktPnBn c3RhdGluZF9pbmZvLT5pX2NvdW50cy5pX2Jsb2Nrc19mZXRjaGVkKys7CQlcCisJfSB3aGls ZSAoMCkKKyNkZWZpbmUgcGdzdGF0X2NvdW50X3RhYmxlX2J1ZmZlcl9oaXQocmVsKQkJCQkJ CQkJXAorCWRvIHsJCQkJCQkJCQkJCQkJCQlcCisJCWlmIChwZ3N0YXRfc2hvdWxkX2NvdW50 X3RhYmxlKHJlbCkpCVwKKwkJCShyZWwpLT5wZ3N0YXR0YWJfaW5mby0+dF9jb3VudHMudF9i bG9ja3NfaGl0Kys7IFwKKwl9IHdoaWxlICgwKQorI2RlZmluZSBwZ3N0YXRfY291bnRfaW5k ZXhfYnVmZmVyX2hpdChyZWwpCQkJCQkJCQlcCisJZG8gewkJCQkJCQkJCQkJCQkJCVwKKwkJ aWYgKHBnc3RhdF9zaG91bGRfY291bnRfaW5kZXgocmVsKSkJXAorCQkJKHJlbCktPnBnc3Rh dGluZF9pbmZvLT5pX2NvdW50cy5pX2Jsb2Nrc19oaXQrKzsgXAogCX0gd2hpbGUgKDApCi0K IGV4dGVybiB2b2lkIHBnc3RhdF9jb3VudF9oZWFwX2luc2VydChSZWxhdGlvbiByZWwsIFBn U3RhdF9Db3VudGVyIG4pOwogZXh0ZXJuIHZvaWQgcGdzdGF0X2NvdW50X2hlYXBfdXBkYXRl KFJlbGF0aW9uIHJlbCwgYm9vbCBob3QpOwogZXh0ZXJuIHZvaWQgcGdzdGF0X2NvdW50X2hl YXBfZGVsZXRlKFJlbGF0aW9uIHJlbCk7CkBAIC01NzMsNiArNjQ5LDEwIEBAIGV4dGVybiBQ Z1N0YXRfU3RhdFRhYkVudHJ5ICpwZ3N0YXRfZmV0Y2hfc3RhdF90YWJlbnRyeShPaWQgcmVs aWQpOwogZXh0ZXJuIFBnU3RhdF9TdGF0VGFiRW50cnkgKnBnc3RhdF9mZXRjaF9zdGF0X3Rh YmVudHJ5X2V4dChib29sIHNoYXJlZCwKIAkJCQkJCQkJCQkJCQkJICAgT2lkIHJlbG9pZCk7 CiBleHRlcm4gUGdTdGF0X1RhYmxlU3RhdHVzICpmaW5kX3RhYnN0YXRfZW50cnkoT2lkIHJl bF9pZCk7CitleHRlcm4gUGdTdGF0X0luZGV4U3RhdHVzICpmaW5kX2luZHN0YXRfZW50cnko T2lkIHJlbF9pZCk7CitleHRlcm4gUGdTdGF0X1N0YXRJbmRFbnRyeSAqcGdzdGF0X2ZldGNo X3N0YXRfaW5kZW50cnkoT2lkIHJlbGlkKTsKK2V4dGVybiBQZ1N0YXRfU3RhdEluZEVudHJ5 ICpwZ3N0YXRfZmV0Y2hfc3RhdF9pbmRlbnRyeV9leHQoYm9vbCBzaGFyZWQsCisJCQkJCQkJ CQkJCQkJCSAgIE9pZCByZWxpZCk7CiAKIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L3V0aWxzL3Bnc3RhdF9pbnRlcm5hbC5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvcGdzdGF0X2lu dGVybmFsLmgKaW5kZXggZTJjN2I1OTMyNC4uMDA0ZTU0MTJhYiAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvdXRpbHMvcGdzdGF0X2ludGVybmFsLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRp bHMvcGdzdGF0X2ludGVybmFsLmgKQEAgLTM1OSwxMSArMzU5LDE3IEBAIHR5cGVkZWYgc3Ry dWN0IFBnU3RhdFNoYXJlZF9EYXRhYmFzZQogCVBnU3RhdF9TdGF0REJFbnRyeSBzdGF0czsK IH0gUGdTdGF0U2hhcmVkX0RhdGFiYXNlOwogCi10eXBlZGVmIHN0cnVjdCBQZ1N0YXRTaGFy ZWRfUmVsYXRpb24KK3R5cGVkZWYgc3RydWN0IFBnU3RhdFNoYXJlZF9UYWJsZQogewogCVBn U3RhdFNoYXJlZF9Db21tb24gaGVhZGVyOwogCVBnU3RhdF9TdGF0VGFiRW50cnkgc3RhdHM7 Ci19IFBnU3RhdFNoYXJlZF9SZWxhdGlvbjsKK30gUGdTdGF0U2hhcmVkX1RhYmxlOworCit0 eXBlZGVmIHN0cnVjdCBQZ1N0YXRTaGFyZWRfSW5kZXgKK3sKKwlQZ1N0YXRTaGFyZWRfQ29t bW9uIGhlYWRlcjsKKwlQZ1N0YXRfU3RhdEluZEVudHJ5IHN0YXRzOworfSBQZ1N0YXRTaGFy ZWRfSW5kZXg7CiAKIHR5cGVkZWYgc3RydWN0IFBnU3RhdFNoYXJlZF9GdW5jdGlvbgogewpA QCAtNTUwLDE2ICs1NTYsMjMgQEAgZXh0ZXJuIGJvb2wgcGdzdGF0X2Z1bmN0aW9uX2ZsdXNo X2NiKFBnU3RhdF9FbnRyeVJlZiAqZW50cnlfcmVmLCBib29sIG5vd2FpdCk7CiAKIAogLyoK LSAqIEZ1bmN0aW9ucyBpbiBwZ3N0YXRfcmVsYXRpb24uYworICogRnVuY3Rpb25zIGluIHBn c3RhdF90YWJsZS5jCiAgKi8KIAotZXh0ZXJuIHZvaWQgQXRFT1hhY3RfUGdTdGF0X1JlbGF0 aW9ucyhQZ1N0YXRfU3ViWGFjdFN0YXR1cyAqeGFjdF9zdGF0ZSwgYm9vbCBpc0NvbW1pdCk7 Ci1leHRlcm4gdm9pZCBBdEVPU3ViWGFjdF9QZ1N0YXRfUmVsYXRpb25zKFBnU3RhdF9TdWJY YWN0U3RhdHVzICp4YWN0X3N0YXRlLCBib29sIGlzQ29tbWl0LCBpbnQgbmVzdERlcHRoKTsK LWV4dGVybiB2b2lkIEF0UHJlcGFyZV9QZ1N0YXRfUmVsYXRpb25zKFBnU3RhdF9TdWJYYWN0 U3RhdHVzICp4YWN0X3N0YXRlKTsKLWV4dGVybiB2b2lkIFBvc3RQcmVwYXJlX1BnU3RhdF9S ZWxhdGlvbnMoUGdTdGF0X1N1YlhhY3RTdGF0dXMgKnhhY3Rfc3RhdGUpOworZXh0ZXJuIHZv aWQgQXRFT1hhY3RfUGdTdGF0X1RhYmxlcyhQZ1N0YXRfU3ViWGFjdFN0YXR1cyAqeGFjdF9z dGF0ZSwgYm9vbCBpc0NvbW1pdCk7CitleHRlcm4gdm9pZCBBdEVPU3ViWGFjdF9QZ1N0YXRf VGFibGVzKFBnU3RhdF9TdWJYYWN0U3RhdHVzICp4YWN0X3N0YXRlLCBib29sIGlzQ29tbWl0 LCBpbnQgbmVzdERlcHRoKTsKK2V4dGVybiB2b2lkIEF0UHJlcGFyZV9QZ1N0YXRfVGFibGVz KFBnU3RhdF9TdWJYYWN0U3RhdHVzICp4YWN0X3N0YXRlKTsKK2V4dGVybiB2b2lkIFBvc3RQ cmVwYXJlX1BnU3RhdF9UYWJsZXMoUGdTdGF0X1N1YlhhY3RTdGF0dXMgKnhhY3Rfc3RhdGUp OworCitleHRlcm4gYm9vbCBwZ3N0YXRfdGFibGVfZmx1c2hfY2IoUGdTdGF0X0VudHJ5UmVm ICplbnRyeV9yZWYsIGJvb2wgbm93YWl0KTsKK2V4dGVybiB2b2lkIHBnc3RhdF90YWJsZV9k ZWxldGVfcGVuZGluZ19jYihQZ1N0YXRfRW50cnlSZWYgKmVudHJ5X3JlZik7CisKKy8qCisg KiBGdW5jdGlvbnMgaW4gcGdzdGF0X2luZGV4LmMKKyAqLwogCi1leHRlcm4gYm9vbCBwZ3N0 YXRfcmVsYXRpb25fZmx1c2hfY2IoUGdTdGF0X0VudHJ5UmVmICplbnRyeV9yZWYsIGJvb2wg bm93YWl0KTsKLWV4dGVybiB2b2lkIHBnc3RhdF9yZWxhdGlvbl9kZWxldGVfcGVuZGluZ19j YihQZ1N0YXRfRW50cnlSZWYgKmVudHJ5X3JlZik7CitleHRlcm4gYm9vbCBwZ3N0YXRfaW5k ZXhfZmx1c2hfY2IoUGdTdGF0X0VudHJ5UmVmICplbnRyeV9yZWYsIGJvb2wgbm93YWl0KTsK K2V4dGVybiB2b2lkIHBnc3RhdF9pbmRleF9kZWxldGVfcGVuZGluZ19jYihQZ1N0YXRfRW50 cnlSZWYgKmVudHJ5X3JlZik7CiAKIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0 aWxzL3JlbC5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvcmVsLmgKaW5kZXggZjM4M2EyZmNhOS4u Nzk2NDIzZjNlMyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvcmVsLmgKKysrIGIv c3JjL2luY2x1ZGUvdXRpbHMvcmVsLmgKQEAgLTI0OCw3ICsyNDgsMTAgQEAgdHlwZWRlZiBz dHJ1Y3QgUmVsYXRpb25EYXRhCiAKIAlib29sCQlwZ3N0YXRfZW5hYmxlZDsgLyogc2hvdWxk IHJlbGF0aW9uIHN0YXRzIGJlIGNvdW50ZWQgKi8KIAkvKiB1c2UgInN0cnVjdCIgaGVyZSB0 byBhdm9pZCBuZWVkaW5nIHRvIGluY2x1ZGUgcGdzdGF0Lmg6ICovCi0Jc3RydWN0IFBnU3Rh dF9UYWJsZVN0YXR1cyAqcGdzdGF0X2luZm87IC8qIHN0YXRpc3RpY3MgY29sbGVjdGlvbiBh cmVhICovCisJLyogdGFibGUncyBzdGF0aXN0aWNzIGNvbGxlY3Rpb24gYXJlYSAqLworCXN0 cnVjdCBQZ1N0YXRfVGFibGVTdGF0dXMgKnBnc3RhdHRhYl9pbmZvOworCS8qIEluZGV4J3Mg c3RhdGlzdGljcyBjb2xsZWN0aW9uIGFyZWEgKi8KKwlzdHJ1Y3QgUGdTdGF0X0luZGV4U3Rh dHVzICpwZ3N0YXRpbmRfaW5mbzsKIH0gUmVsYXRpb25EYXRhOwogCiAKZGlmZiAtLWdpdCBh L3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9zdGF0cy5vdXQgYi9zcmMvdGVzdC9pc29s YXRpb24vZXhwZWN0ZWQvc3RhdHMub3V0CmluZGV4IDYxYjVhNzEwZWMuLmIzMzk3NTljODIg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9zdGF0cy5vdXQKKysr IGIvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4cGVjdGVkL3N0YXRzLm91dApAQCAtMjE2Niw4ICsy MTY2LDggQEAgcGdfc3RhdF9mb3JjZV9uZXh0X2ZsdXNoCiAKIHN0ZXAgczFfdGFibGVfc3Rh dHM6IAogICAgIFNFTEVDVAotICAgICAgICBwZ19zdGF0X2dldF9udW1zY2Fucyh0c28ub2lk KSBBUyBzZXFfc2NhbiwKLSAgICAgICAgcGdfc3RhdF9nZXRfdHVwbGVzX3JldHVybmVkKHRz by5vaWQpIEFTIHNlcV90dXBfcmVhZCwKKyAgICAgICAgcGdfc3RhdF9nZXRfdGFibGVfbnVt c2NhbnModHNvLm9pZCkgQVMgc2VxX3NjYW4sCisgICAgICAgIHBnX3N0YXRfZ2V0X3RhYmxl X3R1cGxlc19yZXR1cm5lZCh0c28ub2lkKSBBUyBzZXFfdHVwX3JlYWQsCiAgICAgICAgIHBn X3N0YXRfZ2V0X3R1cGxlc19pbnNlcnRlZCh0c28ub2lkKSBBUyBuX3R1cF9pbnMsCiAgICAg ICAgIHBnX3N0YXRfZ2V0X3R1cGxlc191cGRhdGVkKHRzby5vaWQpIEFTIG5fdHVwX3VwZCwK ICAgICAgICAgcGdfc3RhdF9nZXRfdHVwbGVzX2RlbGV0ZWQodHNvLm9pZCkgQVMgbl90dXBf ZGVsLApAQCAtMjIxMCw4ICsyMjEwLDggQEAgc3RlcCBzMl90YWJsZV91cGRhdGVfazE6IFVQ REFURSB0ZXN0X3N0YXRfdGFiIFNFVCB2YWx1ZSA9IHZhbHVlICsgMSBXSEVSRSBrZXkgPQog c3RlcCBzMV90YWJsZV9kcm9wOiBEUk9QIFRBQkxFIHRlc3Rfc3RhdF90YWI7CiBzdGVwIHMx X3RhYmxlX3N0YXRzOiAKICAgICBTRUxFQ1QKLSAgICAgICAgcGdfc3RhdF9nZXRfbnVtc2Nh bnModHNvLm9pZCkgQVMgc2VxX3NjYW4sCi0gICAgICAgIHBnX3N0YXRfZ2V0X3R1cGxlc19y ZXR1cm5lZCh0c28ub2lkKSBBUyBzZXFfdHVwX3JlYWQsCisgICAgICAgIHBnX3N0YXRfZ2V0 X3RhYmxlX251bXNjYW5zKHRzby5vaWQpIEFTIHNlcV9zY2FuLAorICAgICAgICBwZ19zdGF0 X2dldF90YWJsZV90dXBsZXNfcmV0dXJuZWQodHNvLm9pZCkgQVMgc2VxX3R1cF9yZWFkLAog ICAgICAgICBwZ19zdGF0X2dldF90dXBsZXNfaW5zZXJ0ZWQodHNvLm9pZCkgQVMgbl90dXBf aW5zLAogICAgICAgICBwZ19zdGF0X2dldF90dXBsZXNfdXBkYXRlZCh0c28ub2lkKSBBUyBu X3R1cF91cGQsCiAgICAgICAgIHBnX3N0YXRfZ2V0X3R1cGxlc19kZWxldGVkKHRzby5vaWQp IEFTIG5fdHVwX2RlbCwKQEAgLTIyMzYsOCArMjIzNiw4IEBAIHBnX3N0YXRfZm9yY2VfbmV4 dF9mbHVzaAogc3RlcCBzMV90cmFja19jb3VudHNfb2ZmOiBTRVQgdHJhY2tfY291bnRzID0g b2ZmOwogc3RlcCBzMV90YWJsZV9zdGF0czogCiAgICAgU0VMRUNUCi0gICAgICAgIHBnX3N0 YXRfZ2V0X251bXNjYW5zKHRzby5vaWQpIEFTIHNlcV9zY2FuLAotICAgICAgICBwZ19zdGF0 X2dldF90dXBsZXNfcmV0dXJuZWQodHNvLm9pZCkgQVMgc2VxX3R1cF9yZWFkLAorICAgICAg ICBwZ19zdGF0X2dldF90YWJsZV9udW1zY2Fucyh0c28ub2lkKSBBUyBzZXFfc2NhbiwKKyAg ICAgICAgcGdfc3RhdF9nZXRfdGFibGVfdHVwbGVzX3JldHVybmVkKHRzby5vaWQpIEFTIHNl cV90dXBfcmVhZCwKICAgICAgICAgcGdfc3RhdF9nZXRfdHVwbGVzX2luc2VydGVkKHRzby5v aWQpIEFTIG5fdHVwX2lucywKICAgICAgICAgcGdfc3RhdF9nZXRfdHVwbGVzX3VwZGF0ZWQo dHNvLm9pZCkgQVMgbl90dXBfdXBkLAogICAgICAgICBwZ19zdGF0X2dldF90dXBsZXNfZGVs ZXRlZCh0c28ub2lkKSBBUyBuX3R1cF9kZWwsCkBAIC0yMjc1LDggKzIyNzUsOCBAQCBwZ19z dGF0X2ZvcmNlX25leHRfZmx1c2gKIAogc3RlcCBzMV90YWJsZV9zdGF0czogCiAgICAgU0VM RUNUCi0gICAgICAgIHBnX3N0YXRfZ2V0X251bXNjYW5zKHRzby5vaWQpIEFTIHNlcV9zY2Fu LAotICAgICAgICBwZ19zdGF0X2dldF90dXBsZXNfcmV0dXJuZWQodHNvLm9pZCkgQVMgc2Vx X3R1cF9yZWFkLAorICAgICAgICBwZ19zdGF0X2dldF90YWJsZV9udW1zY2Fucyh0c28ub2lk KSBBUyBzZXFfc2NhbiwKKyAgICAgICAgcGdfc3RhdF9nZXRfdGFibGVfdHVwbGVzX3JldHVy bmVkKHRzby5vaWQpIEFTIHNlcV90dXBfcmVhZCwKICAgICAgICAgcGdfc3RhdF9nZXRfdHVw bGVzX2luc2VydGVkKHRzby5vaWQpIEFTIG5fdHVwX2lucywKICAgICAgICAgcGdfc3RhdF9n ZXRfdHVwbGVzX3VwZGF0ZWQodHNvLm9pZCkgQVMgbl90dXBfdXBkLAogICAgICAgICBwZ19z dGF0X2dldF90dXBsZXNfZGVsZXRlZCh0c28ub2lkKSBBUyBuX3R1cF9kZWwsCkBAIC0yMzE0 LDggKzIzMTQsOCBAQCBwZ19zdGF0X2ZvcmNlX25leHRfZmx1c2gKIHN0ZXAgczFfdHJhY2tf Y291bnRzX29mZjogU0VUIHRyYWNrX2NvdW50cyA9IG9mZjsKIHN0ZXAgczFfdGFibGVfc3Rh dHM6IAogICAgIFNFTEVDVAotICAgICAgICBwZ19zdGF0X2dldF9udW1zY2Fucyh0c28ub2lk KSBBUyBzZXFfc2NhbiwKLSAgICAgICAgcGdfc3RhdF9nZXRfdHVwbGVzX3JldHVybmVkKHRz by5vaWQpIEFTIHNlcV90dXBfcmVhZCwKKyAgICAgICAgcGdfc3RhdF9nZXRfdGFibGVfbnVt c2NhbnModHNvLm9pZCkgQVMgc2VxX3NjYW4sCisgICAgICAgIHBnX3N0YXRfZ2V0X3RhYmxl X3R1cGxlc19yZXR1cm5lZCh0c28ub2lkKSBBUyBzZXFfdHVwX3JlYWQsCiAgICAgICAgIHBn X3N0YXRfZ2V0X3R1cGxlc19pbnNlcnRlZCh0c28ub2lkKSBBUyBuX3R1cF9pbnMsCiAgICAg ICAgIHBnX3N0YXRfZ2V0X3R1cGxlc191cGRhdGVkKHRzby5vaWQpIEFTIG5fdHVwX3VwZCwK ICAgICAgICAgcGdfc3RhdF9nZXRfdHVwbGVzX2RlbGV0ZWQodHNvLm9pZCkgQVMgbl90dXBf ZGVsLApAQCAtMjM2OSw4ICsyMzY5LDggQEAgcGdfc3RhdF9mb3JjZV9uZXh0X2ZsdXNoCiAK IHN0ZXAgczFfdGFibGVfc3RhdHM6IAogICAgIFNFTEVDVAotICAgICAgICBwZ19zdGF0X2dl dF9udW1zY2Fucyh0c28ub2lkKSBBUyBzZXFfc2NhbiwKLSAgICAgICAgcGdfc3RhdF9nZXRf dHVwbGVzX3JldHVybmVkKHRzby5vaWQpIEFTIHNlcV90dXBfcmVhZCwKKyAgICAgICAgcGdf c3RhdF9nZXRfdGFibGVfbnVtc2NhbnModHNvLm9pZCkgQVMgc2VxX3NjYW4sCisgICAgICAg IHBnX3N0YXRfZ2V0X3RhYmxlX3R1cGxlc19yZXR1cm5lZCh0c28ub2lkKSBBUyBzZXFfdHVw X3JlYWQsCiAgICAgICAgIHBnX3N0YXRfZ2V0X3R1cGxlc19pbnNlcnRlZCh0c28ub2lkKSBB UyBuX3R1cF9pbnMsCiAgICAgICAgIHBnX3N0YXRfZ2V0X3R1cGxlc191cGRhdGVkKHRzby5v aWQpIEFTIG5fdHVwX3VwZCwKICAgICAgICAgcGdfc3RhdF9nZXRfdHVwbGVzX2RlbGV0ZWQo dHNvLm9pZCkgQVMgbl90dXBfZGVsLApAQCAtMjQwMSw4ICsyNDAxLDggQEAgcGdfc3RhdF9m b3JjZV9uZXh0X2ZsdXNoCiAKIHN0ZXAgczFfdGFibGVfc3RhdHM6IAogICAgIFNFTEVDVAot ICAgICAgICBwZ19zdGF0X2dldF9udW1zY2Fucyh0c28ub2lkKSBBUyBzZXFfc2NhbiwKLSAg ICAgICAgcGdfc3RhdF9nZXRfdHVwbGVzX3JldHVybmVkKHRzby5vaWQpIEFTIHNlcV90dXBf cmVhZCwKKyAgICAgICAgcGdfc3RhdF9nZXRfdGFibGVfbnVtc2NhbnModHNvLm9pZCkgQVMg c2VxX3NjYW4sCisgICAgICAgIHBnX3N0YXRfZ2V0X3RhYmxlX3R1cGxlc19yZXR1cm5lZCh0 c28ub2lkKSBBUyBzZXFfdHVwX3JlYWQsCiAgICAgICAgIHBnX3N0YXRfZ2V0X3R1cGxlc19p bnNlcnRlZCh0c28ub2lkKSBBUyBuX3R1cF9pbnMsCiAgICAgICAgIHBnX3N0YXRfZ2V0X3R1 cGxlc191cGRhdGVkKHRzby5vaWQpIEFTIG5fdHVwX3VwZCwKICAgICAgICAgcGdfc3RhdF9n ZXRfdHVwbGVzX2RlbGV0ZWQodHNvLm9pZCkgQVMgbl90dXBfZGVsLApAQCAtMjQ2Myw4ICsy NDYzLDggQEAgcGdfc3RhdF9mb3JjZV9uZXh0X2ZsdXNoCiAKIHN0ZXAgczFfdGFibGVfc3Rh dHM6IAogICAgIFNFTEVDVAotICAgICAgICBwZ19zdGF0X2dldF9udW1zY2Fucyh0c28ub2lk KSBBUyBzZXFfc2NhbiwKLSAgICAgICAgcGdfc3RhdF9nZXRfdHVwbGVzX3JldHVybmVkKHRz by5vaWQpIEFTIHNlcV90dXBfcmVhZCwKKyAgICAgICAgcGdfc3RhdF9nZXRfdGFibGVfbnVt c2NhbnModHNvLm9pZCkgQVMgc2VxX3NjYW4sCisgICAgICAgIHBnX3N0YXRfZ2V0X3RhYmxl X3R1cGxlc19yZXR1cm5lZCh0c28ub2lkKSBBUyBzZXFfdHVwX3JlYWQsCiAgICAgICAgIHBn X3N0YXRfZ2V0X3R1cGxlc19pbnNlcnRlZCh0c28ub2lkKSBBUyBuX3R1cF9pbnMsCiAgICAg ICAgIHBnX3N0YXRfZ2V0X3R1cGxlc191cGRhdGVkKHRzby5vaWQpIEFTIG5fdHVwX3VwZCwK ICAgICAgICAgcGdfc3RhdF9nZXRfdHVwbGVzX2RlbGV0ZWQodHNvLm9pZCkgQVMgbl90dXBf ZGVsLApAQCAtMjQ5NSw4ICsyNDk1LDggQEAgcGdfc3RhdF9mb3JjZV9uZXh0X2ZsdXNoCiAK IHN0ZXAgczFfdGFibGVfc3RhdHM6IAogICAgIFNFTEVDVAotICAgICAgICBwZ19zdGF0X2dl dF9udW1zY2Fucyh0c28ub2lkKSBBUyBzZXFfc2NhbiwKLSAgICAgICAgcGdfc3RhdF9nZXRf dHVwbGVzX3JldHVybmVkKHRzby5vaWQpIEFTIHNlcV90dXBfcmVhZCwKKyAgICAgICAgcGdf c3RhdF9nZXRfdGFibGVfbnVtc2NhbnModHNvLm9pZCkgQVMgc2VxX3NjYW4sCisgICAgICAg IHBnX3N0YXRfZ2V0X3RhYmxlX3R1cGxlc19yZXR1cm5lZCh0c28ub2lkKSBBUyBzZXFfdHVw X3JlYWQsCiAgICAgICAgIHBnX3N0YXRfZ2V0X3R1cGxlc19pbnNlcnRlZCh0c28ub2lkKSBB UyBuX3R1cF9pbnMsCiAgICAgICAgIHBnX3N0YXRfZ2V0X3R1cGxlc191cGRhdGVkKHRzby5v aWQpIEFTIG5fdHVwX3VwZCwKICAgICAgICAgcGdfc3RhdF9nZXRfdHVwbGVzX2RlbGV0ZWQo dHNvLm9pZCkgQVMgbl90dXBfZGVsLApAQCAtMjU1OCw4ICsyNTU4LDggQEAgcGdfc3RhdF9m b3JjZV9uZXh0X2ZsdXNoCiAKIHN0ZXAgczFfdGFibGVfc3RhdHM6IAogICAgIFNFTEVDVAot ICAgICAgICBwZ19zdGF0X2dldF9udW1zY2Fucyh0c28ub2lkKSBBUyBzZXFfc2NhbiwKLSAg ICAgICAgcGdfc3RhdF9nZXRfdHVwbGVzX3JldHVybmVkKHRzby5vaWQpIEFTIHNlcV90dXBf cmVhZCwKKyAgICAgICAgcGdfc3RhdF9nZXRfdGFibGVfbnVtc2NhbnModHNvLm9pZCkgQVMg c2VxX3NjYW4sCisgICAgICAgIHBnX3N0YXRfZ2V0X3RhYmxlX3R1cGxlc19yZXR1cm5lZCh0 c28ub2lkKSBBUyBzZXFfdHVwX3JlYWQsCiAgICAgICAgIHBnX3N0YXRfZ2V0X3R1cGxlc19p bnNlcnRlZCh0c28ub2lkKSBBUyBuX3R1cF9pbnMsCiAgICAgICAgIHBnX3N0YXRfZ2V0X3R1 cGxlc191cGRhdGVkKHRzby5vaWQpIEFTIG5fdHVwX3VwZCwKICAgICAgICAgcGdfc3RhdF9n ZXRfdHVwbGVzX2RlbGV0ZWQodHNvLm9pZCkgQVMgbl90dXBfZGVsLApAQCAtMjYyNyw4ICsy NjI3LDggQEAgcGdfc3RhdF9mb3JjZV9uZXh0X2ZsdXNoCiAKIHN0ZXAgczFfdGFibGVfc3Rh dHM6IAogICAgIFNFTEVDVAotICAgICAgICBwZ19zdGF0X2dldF9udW1zY2Fucyh0c28ub2lk KSBBUyBzZXFfc2NhbiwKLSAgICAgICAgcGdfc3RhdF9nZXRfdHVwbGVzX3JldHVybmVkKHRz by5vaWQpIEFTIHNlcV90dXBfcmVhZCwKKyAgICAgICAgcGdfc3RhdF9nZXRfdGFibGVfbnVt c2NhbnModHNvLm9pZCkgQVMgc2VxX3NjYW4sCisgICAgICAgIHBnX3N0YXRfZ2V0X3RhYmxl X3R1cGxlc19yZXR1cm5lZCh0c28ub2lkKSBBUyBzZXFfdHVwX3JlYWQsCiAgICAgICAgIHBn X3N0YXRfZ2V0X3R1cGxlc19pbnNlcnRlZCh0c28ub2lkKSBBUyBuX3R1cF9pbnMsCiAgICAg ICAgIHBnX3N0YXRfZ2V0X3R1cGxlc191cGRhdGVkKHRzby5vaWQpIEFTIG5fdHVwX3VwZCwK ICAgICAgICAgcGdfc3RhdF9nZXRfdHVwbGVzX2RlbGV0ZWQodHNvLm9pZCkgQVMgbl90dXBf ZGVsLApAQCAtMjY4OCw4ICsyNjg4LDggQEAgcGdfc3RhdF9mb3JjZV9uZXh0X2ZsdXNoCiAK IHN0ZXAgczFfdGFibGVfc3RhdHM6IAogICAgIFNFTEVDVAotICAgICAgICBwZ19zdGF0X2dl dF9udW1zY2Fucyh0c28ub2lkKSBBUyBzZXFfc2NhbiwKLSAgICAgICAgcGdfc3RhdF9nZXRf dHVwbGVzX3JldHVybmVkKHRzby5vaWQpIEFTIHNlcV90dXBfcmVhZCwKKyAgICAgICAgcGdf c3RhdF9nZXRfdGFibGVfbnVtc2NhbnModHNvLm9pZCkgQVMgc2VxX3NjYW4sCisgICAgICAg IHBnX3N0YXRfZ2V0X3RhYmxlX3R1cGxlc19yZXR1cm5lZCh0c28ub2lkKSBBUyBzZXFfdHVw X3JlYWQsCiAgICAgICAgIHBnX3N0YXRfZ2V0X3R1cGxlc19pbnNlcnRlZCh0c28ub2lkKSBB UyBuX3R1cF9pbnMsCiAgICAgICAgIHBnX3N0YXRfZ2V0X3R1cGxlc191cGRhdGVkKHRzby5v aWQpIEFTIG5fdHVwX3VwZCwKICAgICAgICAgcGdfc3RhdF9nZXRfdHVwbGVzX2RlbGV0ZWQo dHNvLm9pZCkgQVMgbl90dXBfZGVsLApAQCAtMjc1NSw4ICsyNzU1LDggQEAgcGdfc3RhdF9m b3JjZV9uZXh0X2ZsdXNoCiAKIHN0ZXAgczFfdGFibGVfc3RhdHM6IAogICAgIFNFTEVDVAot ICAgICAgICBwZ19zdGF0X2dldF9udW1zY2Fucyh0c28ub2lkKSBBUyBzZXFfc2NhbiwKLSAg ICAgICAgcGdfc3RhdF9nZXRfdHVwbGVzX3JldHVybmVkKHRzby5vaWQpIEFTIHNlcV90dXBf cmVhZCwKKyAgICAgICAgcGdfc3RhdF9nZXRfdGFibGVfbnVtc2NhbnModHNvLm9pZCkgQVMg c2VxX3NjYW4sCisgICAgICAgIHBnX3N0YXRfZ2V0X3RhYmxlX3R1cGxlc19yZXR1cm5lZCh0 c28ub2lkKSBBUyBzZXFfdHVwX3JlYWQsCiAgICAgICAgIHBnX3N0YXRfZ2V0X3R1cGxlc19p bnNlcnRlZCh0c28ub2lkKSBBUyBuX3R1cF9pbnMsCiAgICAgICAgIHBnX3N0YXRfZ2V0X3R1 cGxlc191cGRhdGVkKHRzby5vaWQpIEFTIG5fdHVwX3VwZCwKICAgICAgICAgcGdfc3RhdF9n ZXRfdHVwbGVzX2RlbGV0ZWQodHNvLm9pZCkgQVMgbl90dXBfZGVsLApAQCAtMjc5NSw4ICsy Nzk1LDggQEAgcGdfc3RhdF9mb3JjZV9uZXh0X2ZsdXNoCiAKIHN0ZXAgczFfdGFibGVfc3Rh dHM6IAogICAgIFNFTEVDVAotICAgICAgICBwZ19zdGF0X2dldF9udW1zY2Fucyh0c28ub2lk KSBBUyBzZXFfc2NhbiwKLSAgICAgICAgcGdfc3RhdF9nZXRfdHVwbGVzX3JldHVybmVkKHRz by5vaWQpIEFTIHNlcV90dXBfcmVhZCwKKyAgICAgICAgcGdfc3RhdF9nZXRfdGFibGVfbnVt c2NhbnModHNvLm9pZCkgQVMgc2VxX3NjYW4sCisgICAgICAgIHBnX3N0YXRfZ2V0X3RhYmxl X3R1cGxlc19yZXR1cm5lZCh0c28ub2lkKSBBUyBzZXFfdHVwX3JlYWQsCiAgICAgICAgIHBn X3N0YXRfZ2V0X3R1cGxlc19pbnNlcnRlZCh0c28ub2lkKSBBUyBuX3R1cF9pbnMsCiAgICAg ICAgIHBnX3N0YXRfZ2V0X3R1cGxlc191cGRhdGVkKHRzby5vaWQpIEFTIG5fdHVwX3VwZCwK ICAgICAgICAgcGdfc3RhdF9nZXRfdHVwbGVzX2RlbGV0ZWQodHNvLm9pZCkgQVMgbl90dXBf ZGVsLApAQCAtMjg0MSw4ICsyODQxLDggQEAgcGdfc3RhdF9mb3JjZV9uZXh0X2ZsdXNoCiAK IHN0ZXAgczFfdGFibGVfc3RhdHM6IAogICAgIFNFTEVDVAotICAgICAgICBwZ19zdGF0X2dl dF9udW1zY2Fucyh0c28ub2lkKSBBUyBzZXFfc2NhbiwKLSAgICAgICAgcGdfc3RhdF9nZXRf dHVwbGVzX3JldHVybmVkKHRzby5vaWQpIEFTIHNlcV90dXBfcmVhZCwKKyAgICAgICAgcGdf c3RhdF9nZXRfdGFibGVfbnVtc2NhbnModHNvLm9pZCkgQVMgc2VxX3NjYW4sCisgICAgICAg IHBnX3N0YXRfZ2V0X3RhYmxlX3R1cGxlc19yZXR1cm5lZCh0c28ub2lkKSBBUyBzZXFfdHVw X3JlYWQsCiAgICAgICAgIHBnX3N0YXRfZ2V0X3R1cGxlc19pbnNlcnRlZCh0c28ub2lkKSBB UyBuX3R1cF9pbnMsCiAgICAgICAgIHBnX3N0YXRfZ2V0X3R1cGxlc191cGRhdGVkKHRzby5v aWQpIEFTIG5fdHVwX3VwZCwKICAgICAgICAgcGdfc3RhdF9nZXRfdHVwbGVzX2RlbGV0ZWQo dHNvLm9pZCkgQVMgbl90dXBfZGVsLApAQCAtMjg4MSw4ICsyODgxLDggQEAgcGdfc3RhdF9m b3JjZV9uZXh0X2ZsdXNoCiAKIHN0ZXAgczFfdGFibGVfc3RhdHM6IAogICAgIFNFTEVDVAot ICAgICAgICBwZ19zdGF0X2dldF9udW1zY2Fucyh0c28ub2lkKSBBUyBzZXFfc2NhbiwKLSAg ICAgICAgcGdfc3RhdF9nZXRfdHVwbGVzX3JldHVybmVkKHRzby5vaWQpIEFTIHNlcV90dXBf cmVhZCwKKyAgICAgICAgcGdfc3RhdF9nZXRfdGFibGVfbnVtc2NhbnModHNvLm9pZCkgQVMg c2VxX3NjYW4sCisgICAgICAgIHBnX3N0YXRfZ2V0X3RhYmxlX3R1cGxlc19yZXR1cm5lZCh0 c28ub2lkKSBBUyBzZXFfdHVwX3JlYWQsCiAgICAgICAgIHBnX3N0YXRfZ2V0X3R1cGxlc19p bnNlcnRlZCh0c28ub2lkKSBBUyBuX3R1cF9pbnMsCiAgICAgICAgIHBnX3N0YXRfZ2V0X3R1 cGxlc191cGRhdGVkKHRzby5vaWQpIEFTIG5fdHVwX3VwZCwKICAgICAgICAgcGdfc3RhdF9n ZXRfdHVwbGVzX2RlbGV0ZWQodHNvLm9pZCkgQVMgbl90dXBfZGVsLApAQCAtMjkyNyw4ICsy OTI3LDggQEAgcGdfc3RhdF9mb3JjZV9uZXh0X2ZsdXNoCiAKIHN0ZXAgczFfdGFibGVfc3Rh dHM6IAogICAgIFNFTEVDVAotICAgICAgICBwZ19zdGF0X2dldF9udW1zY2Fucyh0c28ub2lk KSBBUyBzZXFfc2NhbiwKLSAgICAgICAgcGdfc3RhdF9nZXRfdHVwbGVzX3JldHVybmVkKHRz by5vaWQpIEFTIHNlcV90dXBfcmVhZCwKKyAgICAgICAgcGdfc3RhdF9nZXRfdGFibGVfbnVt c2NhbnModHNvLm9pZCkgQVMgc2VxX3NjYW4sCisgICAgICAgIHBnX3N0YXRfZ2V0X3RhYmxl X3R1cGxlc19yZXR1cm5lZCh0c28ub2lkKSBBUyBzZXFfdHVwX3JlYWQsCiAgICAgICAgIHBn X3N0YXRfZ2V0X3R1cGxlc19pbnNlcnRlZCh0c28ub2lkKSBBUyBuX3R1cF9pbnMsCiAgICAg ICAgIHBnX3N0YXRfZ2V0X3R1cGxlc191cGRhdGVkKHRzby5vaWQpIEFTIG5fdHVwX3VwZCwK ICAgICAgICAgcGdfc3RhdF9nZXRfdHVwbGVzX2RlbGV0ZWQodHNvLm9pZCkgQVMgbl90dXBf ZGVsLApAQCAtMjk2OCw4ICsyOTY4LDggQEAgcGdfc3RhdF9mb3JjZV9uZXh0X2ZsdXNoCiAK IHN0ZXAgczFfdGFibGVfc3RhdHM6IAogICAgIFNFTEVDVAotICAgICAgICBwZ19zdGF0X2dl dF9udW1zY2Fucyh0c28ub2lkKSBBUyBzZXFfc2NhbiwKLSAgICAgICAgcGdfc3RhdF9nZXRf dHVwbGVzX3JldHVybmVkKHRzby5vaWQpIEFTIHNlcV90dXBfcmVhZCwKKyAgICAgICAgcGdf c3RhdF9nZXRfdGFibGVfbnVtc2NhbnModHNvLm9pZCkgQVMgc2VxX3NjYW4sCisgICAgICAg IHBnX3N0YXRfZ2V0X3RhYmxlX3R1cGxlc19yZXR1cm5lZCh0c28ub2lkKSBBUyBzZXFfdHVw X3JlYWQsCiAgICAgICAgIHBnX3N0YXRfZ2V0X3R1cGxlc19pbnNlcnRlZCh0c28ub2lkKSBB UyBuX3R1cF9pbnMsCiAgICAgICAgIHBnX3N0YXRfZ2V0X3R1cGxlc191cGRhdGVkKHRzby5v aWQpIEFTIG5fdHVwX3VwZCwKICAgICAgICAgcGdfc3RhdF9nZXRfdHVwbGVzX2RlbGV0ZWQo dHNvLm9pZCkgQVMgbl90dXBfZGVsLApAQCAtMzAxNSw4ICszMDE1LDggQEAgcGdfc3RhdF9m b3JjZV9uZXh0X2ZsdXNoCiAKIHN0ZXAgczFfdGFibGVfc3RhdHM6IAogICAgIFNFTEVDVAot ICAgICAgICBwZ19zdGF0X2dldF9udW1zY2Fucyh0c28ub2lkKSBBUyBzZXFfc2NhbiwKLSAg ICAgICAgcGdfc3RhdF9nZXRfdHVwbGVzX3JldHVybmVkKHRzby5vaWQpIEFTIHNlcV90dXBf cmVhZCwKKyAgICAgICAgcGdfc3RhdF9nZXRfdGFibGVfbnVtc2NhbnModHNvLm9pZCkgQVMg c2VxX3NjYW4sCisgICAgICAgIHBnX3N0YXRfZ2V0X3RhYmxlX3R1cGxlc19yZXR1cm5lZCh0 c28ub2lkKSBBUyBzZXFfdHVwX3JlYWQsCiAgICAgICAgIHBnX3N0YXRfZ2V0X3R1cGxlc19p bnNlcnRlZCh0c28ub2lkKSBBUyBuX3R1cF9pbnMsCiAgICAgICAgIHBnX3N0YXRfZ2V0X3R1 cGxlc191cGRhdGVkKHRzby5vaWQpIEFTIG5fdHVwX3VwZCwKICAgICAgICAgcGdfc3RhdF9n ZXRfdHVwbGVzX2RlbGV0ZWQodHNvLm9pZCkgQVMgbl90dXBfZGVsLApkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvaXNvbGF0aW9uL3NwZWNzL3N0YXRzLnNwZWMgYi9zcmMvdGVzdC9pc29sYXRp b24vc3BlY3Mvc3RhdHMuc3BlYwppbmRleCA1YjkyMmQ3ODhjLi4wN2NlMzE4ODViIDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9pc29sYXRpb24vc3BlY3Mvc3RhdHMuc3BlYworKysgYi9zcmMv dGVzdC9pc29sYXRpb24vc3BlY3Mvc3RhdHMuc3BlYwpAQCAtOTMsOCArOTMsOCBAQCBzdGVw IHMxX3RhYmxlX2Ryb3AgeyBEUk9QIFRBQkxFIHRlc3Rfc3RhdF90YWI7IH0KIAogc3RlcCBz MV90YWJsZV9zdGF0cyB7CiAgICAgU0VMRUNUCi0gICAgICAgIHBnX3N0YXRfZ2V0X251bXNj YW5zKHRzby5vaWQpIEFTIHNlcV9zY2FuLAotICAgICAgICBwZ19zdGF0X2dldF90dXBsZXNf cmV0dXJuZWQodHNvLm9pZCkgQVMgc2VxX3R1cF9yZWFkLAorICAgICAgICBwZ19zdGF0X2dl dF90YWJsZV9udW1zY2Fucyh0c28ub2lkKSBBUyBzZXFfc2NhbiwKKyAgICAgICAgcGdfc3Rh dF9nZXRfdGFibGVfdHVwbGVzX3JldHVybmVkKHRzby5vaWQpIEFTIHNlcV90dXBfcmVhZCwK ICAgICAgICAgcGdfc3RhdF9nZXRfdHVwbGVzX2luc2VydGVkKHRzby5vaWQpIEFTIG5fdHVw X2lucywKICAgICAgICAgcGdfc3RhdF9nZXRfdHVwbGVzX3VwZGF0ZWQodHNvLm9pZCkgQVMg bl90dXBfdXBkLAogICAgICAgICBwZ19zdGF0X2dldF90dXBsZXNfZGVsZXRlZCh0c28ub2lk KSBBUyBuX3R1cF9kZWwsCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWNvdmVyeS90LzAyOV9z dGF0c19yZXN0YXJ0LnBsIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMjlfc3RhdHNfcmVzdGFy dC5wbAppbmRleCAxYmY3YjU2OGNjLi5jMjU2MzRkMzNmIDEwMDY0NAotLS0gYS9zcmMvdGVz dC9yZWNvdmVyeS90LzAyOV9zdGF0c19yZXN0YXJ0LnBsCisrKyBiL3NyYy90ZXN0L3JlY292 ZXJ5L3QvMDI5X3N0YXRzX3Jlc3RhcnQucGwKQEAgLTQzLDggKzQzLDggQEAgbXkgJHNlY3Qg PSAiaW5pdGlhbCI7CiBpcyhoYXZlX3N0YXRzKCdkYXRhYmFzZScsICRkYm9pZCwgMCksICd0 JywgIiRzZWN0OiBkYiBzdGF0cyBkbyBleGlzdCIpOwogaXMoaGF2ZV9zdGF0cygnZnVuY3Rp b24nLCAkZGJvaWQsICRmdW5jb2lkKSwKIAkndCcsICIkc2VjdDogZnVuY3Rpb24gc3RhdHMg ZG8gZXhpc3QiKTsKLWlzKGhhdmVfc3RhdHMoJ3JlbGF0aW9uJywgJGRib2lkLCAkdGFibGVv aWQpLAotCSd0JywgIiRzZWN0OiByZWxhdGlvbiBzdGF0cyBkbyBleGlzdCIpOworaXMoaGF2 ZV9zdGF0cygndGFibGUnLCAkZGJvaWQsICR0YWJsZW9pZCksCisJJ3QnLCAiJHNlY3Q6IHRh YmxlIHN0YXRzIGRvIGV4aXN0Iik7CiAKICMgcmVndWxhciBzaHV0ZG93bgogJG5vZGUtPnN0 b3AoKTsKQEAgLTY3LDggKzY3LDggQEAgJHNlY3QgPSAiY29weSI7CiBpcyhoYXZlX3N0YXRz KCdkYXRhYmFzZScsICRkYm9pZCwgMCksICd0JywgIiRzZWN0OiBkYiBzdGF0cyBkbyBleGlz dCIpOwogaXMoaGF2ZV9zdGF0cygnZnVuY3Rpb24nLCAkZGJvaWQsICRmdW5jb2lkKSwKIAkn dCcsICIkc2VjdDogZnVuY3Rpb24gc3RhdHMgZG8gZXhpc3QiKTsKLWlzKGhhdmVfc3RhdHMo J3JlbGF0aW9uJywgJGRib2lkLCAkdGFibGVvaWQpLAotCSd0JywgIiRzZWN0OiByZWxhdGlv biBzdGF0cyBkbyBleGlzdCIpOworaXMoaGF2ZV9zdGF0cygndGFibGUnLCAkZGJvaWQsICR0 YWJsZW9pZCksCisJJ3QnLCAiJHNlY3Q6IHRhYmxlIHN0YXRzIGRvIGV4aXN0Iik7CiAKICRu b2RlLT5zdG9wKCdpbW1lZGlhdGUnKTsKIApAQCAtODQsOCArODQsOCBAQCAkc2VjdCA9ICJw b3N0IGltbWVkaWF0ZSI7CiBpcyhoYXZlX3N0YXRzKCdkYXRhYmFzZScsICRkYm9pZCwgMCks ICdmJywgIiRzZWN0OiBkYiBzdGF0cyBkbyBub3QgZXhpc3QiKTsKIGlzKGhhdmVfc3RhdHMo J2Z1bmN0aW9uJywgJGRib2lkLCAkZnVuY29pZCksCiAJJ2YnLCAiJHNlY3Q6IGZ1bmN0aW9u IHN0YXRzIGRvIGV4aXN0Iik7Ci1pcyhoYXZlX3N0YXRzKCdyZWxhdGlvbicsICRkYm9pZCwg JHRhYmxlb2lkKSwKLQknZicsICIkc2VjdDogcmVsYXRpb24gc3RhdHMgZG8gbm90IGV4aXN0 Iik7CitpcyhoYXZlX3N0YXRzKCd0YWJsZScsICRkYm9pZCwgJHRhYmxlb2lkKSwKKwknZics ICIkc2VjdDogdGFibGUgc3RhdHMgZG8gbm90IGV4aXN0Iik7CiAKICMgZ2V0IHJpZCBvZiBi YWNrdXAgc3RhdHNmaWxlCiB1bmxpbmsgJHN0YXRzZmlsZSBvciBkaWUgImNhbm5vdCB1bmxp bmsgJHN0YXRzZmlsZSAkISI7CkBAIC05OCw4ICs5OCw4IEBAICRzZWN0ID0gInBvc3QgaW1t ZWRpYXRlLCBuZXciOwogaXMoaGF2ZV9zdGF0cygnZGF0YWJhc2UnLCAkZGJvaWQsIDApLCAn dCcsICIkc2VjdDogZGIgc3RhdHMgZG8gZXhpc3QiKTsKIGlzKGhhdmVfc3RhdHMoJ2Z1bmN0 aW9uJywgJGRib2lkLCAkZnVuY29pZCksCiAJJ3QnLCAiJHNlY3Q6IGZ1bmN0aW9uIHN0YXRz IGRvIGV4aXN0Iik7Ci1pcyhoYXZlX3N0YXRzKCdyZWxhdGlvbicsICRkYm9pZCwgJHRhYmxl b2lkKSwKLQkndCcsICIkc2VjdDogcmVsYXRpb24gc3RhdHMgZG8gZXhpc3QiKTsKK2lzKGhh dmVfc3RhdHMoJ3RhYmxlJywgJGRib2lkLCAkdGFibGVvaWQpLAorCSd0JywgIiRzZWN0OiB0 YWJsZSBzdGF0cyBkbyBleGlzdCIpOwogCiAjIHJlZ3VsYXIgc2h1dGRvd24KICRub2RlLT5z dG9wKCk7CkBAIC0xMTcsOCArMTE3LDcgQEAgJHNlY3QgPSAiaW52YWxpZF9vdmVyd3JpdGUi OwogaXMoaGF2ZV9zdGF0cygnZGF0YWJhc2UnLCAkZGJvaWQsIDApLCAnZicsICIkc2VjdDog ZGIgc3RhdHMgZG8gbm90IGV4aXN0Iik7CiBpcyhoYXZlX3N0YXRzKCdmdW5jdGlvbicsICRk Ym9pZCwgJGZ1bmNvaWQpLAogCSdmJywgIiRzZWN0OiBmdW5jdGlvbiBzdGF0cyBkbyBub3Qg ZXhpc3QiKTsKLWlzKGhhdmVfc3RhdHMoJ3JlbGF0aW9uJywgJGRib2lkLCAkdGFibGVvaWQp LAotCSdmJywgIiRzZWN0OiByZWxhdGlvbiBzdGF0cyBkbyBub3QgZXhpc3QiKTsKK2lzKGhh dmVfc3RhdHMoJ3RhYmxlJywgJGRib2lkLCAkdGFibGVvaWQpLCAnZicsICIkc2VjdDogdGFi bGUgZG8gbm90IGV4aXN0Iik7CiAKIAogIyMgY2hlY2sgaW52YWxpZCBzdGF0cyBmaWxlIHN0 YXJ0aW5nIHdpdGggdmFsaWQgY29udGVudHMsIGJ1dCBmb2xsb3dlZCBieQpAQCAtMTMzLDgg KzEzMiw4IEBAICRzZWN0ID0gImludmFsaWRfYXBwZW5kIjsKIGlzKGhhdmVfc3RhdHMoJ2Rh dGFiYXNlJywgJGRib2lkLCAwKSwgJ2YnLCAiJHNlY3Q6IGRiIHN0YXRzIGRvIG5vdCBleGlz dCIpOwogaXMoaGF2ZV9zdGF0cygnZnVuY3Rpb24nLCAkZGJvaWQsICRmdW5jb2lkKSwKIAkn ZicsICIkc2VjdDogZnVuY3Rpb24gc3RhdHMgZG8gbm90IGV4aXN0Iik7Ci1pcyhoYXZlX3N0 YXRzKCdyZWxhdGlvbicsICRkYm9pZCwgJHRhYmxlb2lkKSwKLQknZicsICIkc2VjdDogcmVs YXRpb24gc3RhdHMgZG8gbm90IGV4aXN0Iik7CitpcyhoYXZlX3N0YXRzKCd0YWJsZScsICRk Ym9pZCwgJHRhYmxlb2lkKSwKKwknZicsICIkc2VjdDogdGFibGUgc3RhdHMgZG8gbm90IGV4 aXN0Iik7CiAKIAogIyMgY2hlY2tzIHJlbGF0ZWQgdG8gc3RhdHMgcGVyc2lzdGVuY3kgYXJv dW5kIHJlc3RhcnRzIGFuZCByZXNldHMKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlY292ZXJ5 L3QvMDMwX3N0YXRzX2NsZWFudXBfcmVwbGljYS5wbCBiL3NyYy90ZXN0L3JlY292ZXJ5L3Qv MDMwX3N0YXRzX2NsZWFudXBfcmVwbGljYS5wbAppbmRleCBjYzkyZGRiYjUyLi4xZTc4YjEz Y2Y5IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWNvdmVyeS90LzAzMF9zdGF0c19jbGVhbnVw X3JlcGxpY2EucGwKKysrIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMzBfc3RhdHNfY2xlYW51 cF9yZXBsaWNhLnBsCkBAIC0xODUsNyArMTg1LDcgQEAgc3ViIHRlc3Rfc3RhbmRieV9mdW5j X3RhYl9zdGF0c19zdGF0dXMKIAlteSAlc3RhdHM7CiAKIAkkc3RhdHN7cmVsfSA9ICRub2Rl X3N0YW5kYnktPnNhZmVfcHNxbCgkY29ubmVjdF9kYiwKLQkJIlNFTEVDVCBwZ19zdGF0X2hh dmVfc3RhdHMoJ3JlbGF0aW9uJywgJGRib2lkLCAkdGFibGVvaWQpIik7CisJCSJTRUxFQ1Qg cGdfc3RhdF9oYXZlX3N0YXRzKCd0YWJsZScsICRkYm9pZCwgJHRhYmxlb2lkKSIpOwogCSRz dGF0c3tmdW5jfSA9ICRub2RlX3N0YW5kYnktPnNhZmVfcHNxbCgkY29ubmVjdF9kYiwKIAkJ IlNFTEVDVCBwZ19zdGF0X2hhdmVfc3RhdHMoJ2Z1bmN0aW9uJywgJGRib2lkLCAkZnVuY29p ZCkiKTsKIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5v dXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dAppbmRleCA2MjRkMGU1 YWFlLi4zZDE5ZDFhODMzIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3J1bGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dApA QCAtMTc2NCwxMCArMTc2NCwxMCBAQCBwZ19zdGF0X2FsbF9pbmRleGVzfCBTRUxFQ1QgYy5v aWQgQVMgcmVsaWQsCiAgICAgbi5uc3BuYW1lIEFTIHNjaGVtYW5hbWUsCiAgICAgYy5yZWxu YW1lLAogICAgIGkucmVsbmFtZSBBUyBpbmRleHJlbG5hbWUsCi0gICAgcGdfc3RhdF9nZXRf bnVtc2NhbnMoaS5vaWQpIEFTIGlkeF9zY2FuLAotICAgIHBnX3N0YXRfZ2V0X2xhc3RzY2Fu KGkub2lkKSBBUyBsYXN0X2lkeF9zY2FuLAotICAgIHBnX3N0YXRfZ2V0X3R1cGxlc19yZXR1 cm5lZChpLm9pZCkgQVMgaWR4X3R1cF9yZWFkLAotICAgIHBnX3N0YXRfZ2V0X3R1cGxlc19m ZXRjaGVkKGkub2lkKSBBUyBpZHhfdHVwX2ZldGNoCisgICAgcGdfc3RhdF9nZXRfaW5kZXhf bnVtc2NhbnMoaS5vaWQpIEFTIGlkeF9zY2FuLAorICAgIHBnX3N0YXRfZ2V0X2luZGV4X2xh c3RzY2FuKGkub2lkKSBBUyBsYXN0X2lkeF9zY2FuLAorICAgIHBnX3N0YXRfZ2V0X2luZGV4 X3R1cGxlc19yZXR1cm5lZChpLm9pZCkgQVMgaWR4X3R1cF9yZWFkLAorICAgIHBnX3N0YXRf Z2V0X2luZGV4X3R1cGxlc19mZXRjaGVkKGkub2lkKSBBUyBpZHhfdHVwX2ZldGNoCiAgICBG Uk9NICgoKHBnX2NsYXNzIGMKICAgICAgSk9JTiBwZ19pbmRleCB4IE9OICgoYy5vaWQgPSB4 LmluZHJlbGlkKSkpCiAgICAgIEpPSU4gcGdfY2xhc3MgaSBPTiAoKGkub2lkID0geC5pbmRl eHJlbGlkKSkpCkBAIC0xNzc2LDEyICsxNzc2LDEyIEBAIHBnX3N0YXRfYWxsX2luZGV4ZXN8 IFNFTEVDVCBjLm9pZCBBUyByZWxpZCwKIHBnX3N0YXRfYWxsX3RhYmxlc3wgU0VMRUNUIGMu b2lkIEFTIHJlbGlkLAogICAgIG4ubnNwbmFtZSBBUyBzY2hlbWFuYW1lLAogICAgIGMucmVs bmFtZSwKLSAgICBwZ19zdGF0X2dldF9udW1zY2FucyhjLm9pZCkgQVMgc2VxX3NjYW4sCi0g ICAgcGdfc3RhdF9nZXRfbGFzdHNjYW4oYy5vaWQpIEFTIGxhc3Rfc2VxX3NjYW4sCi0gICAg cGdfc3RhdF9nZXRfdHVwbGVzX3JldHVybmVkKGMub2lkKSBBUyBzZXFfdHVwX3JlYWQsCi0g ICAgKHN1bShwZ19zdGF0X2dldF9udW1zY2FucyhpLmluZGV4cmVsaWQpKSk6OmJpZ2ludCBB UyBpZHhfc2NhbiwKLSAgICBtYXgocGdfc3RhdF9nZXRfbGFzdHNjYW4oaS5pbmRleHJlbGlk KSkgQVMgbGFzdF9pZHhfc2NhbiwKLSAgICAoKHN1bShwZ19zdGF0X2dldF90dXBsZXNfZmV0 Y2hlZChpLmluZGV4cmVsaWQpKSk6OmJpZ2ludCArIHBnX3N0YXRfZ2V0X3R1cGxlc19mZXRj aGVkKGMub2lkKSkgQVMgaWR4X3R1cF9mZXRjaCwKKyAgICBwZ19zdGF0X2dldF90YWJsZV9u dW1zY2FucyhjLm9pZCkgQVMgc2VxX3NjYW4sCisgICAgcGdfc3RhdF9nZXRfdGFibGVfbGFz dHNjYW4oYy5vaWQpIEFTIGxhc3Rfc2VxX3NjYW4sCisgICAgcGdfc3RhdF9nZXRfdGFibGVf dHVwbGVzX3JldHVybmVkKGMub2lkKSBBUyBzZXFfdHVwX3JlYWQsCisgICAgKHN1bShwZ19z dGF0X2dldF9pbmRleF9udW1zY2FucyhpLmluZGV4cmVsaWQpKSk6OmJpZ2ludCBBUyBpZHhf c2NhbiwKKyAgICBtYXgocGdfc3RhdF9nZXRfaW5kZXhfbGFzdHNjYW4oaS5pbmRleHJlbGlk KSkgQVMgbGFzdF9pZHhfc2NhbiwKKyAgICAoKHN1bShwZ19zdGF0X2dldF9pbmRleF90dXBs ZXNfZmV0Y2hlZChpLmluZGV4cmVsaWQpKSk6OmJpZ2ludCArIHBnX3N0YXRfZ2V0X3RhYmxl X3R1cGxlc19mZXRjaGVkKGMub2lkKSkgQVMgaWR4X3R1cF9mZXRjaCwKICAgICBwZ19zdGF0 X2dldF90dXBsZXNfaW5zZXJ0ZWQoYy5vaWQpIEFTIG5fdHVwX2lucywKICAgICBwZ19zdGF0 X2dldF90dXBsZXNfdXBkYXRlZChjLm9pZCkgQVMgbl90dXBfdXBkLAogICAgIHBnX3N0YXRf Z2V0X3R1cGxlc19kZWxldGVkKGMub2lkKSBBUyBuX3R1cF9kZWwsCkBAIC0yMjIxLDkgKzIy MjEsOSBAQCBwZ19zdGF0X3dhbF9yZWNlaXZlcnwgU0VMRUNUIHMucGlkLAogcGdfc3RhdF94 YWN0X2FsbF90YWJsZXN8IFNFTEVDVCBjLm9pZCBBUyByZWxpZCwKICAgICBuLm5zcG5hbWUg QVMgc2NoZW1hbmFtZSwKICAgICBjLnJlbG5hbWUsCi0gICAgcGdfc3RhdF9nZXRfeGFjdF9u dW1zY2FucyhjLm9pZCkgQVMgc2VxX3NjYW4sCisgICAgcGdfc3RhdF9nZXRfdGFibGVfeGFj dF9udW1zY2FucyhjLm9pZCkgQVMgc2VxX3NjYW4sCiAgICAgcGdfc3RhdF9nZXRfeGFjdF90 dXBsZXNfcmV0dXJuZWQoYy5vaWQpIEFTIHNlcV90dXBfcmVhZCwKLSAgICAoc3VtKHBnX3N0 YXRfZ2V0X3hhY3RfbnVtc2NhbnMoaS5pbmRleHJlbGlkKSkpOjpiaWdpbnQgQVMgaWR4X3Nj YW4sCisgICAgKHN1bShwZ19zdGF0X2dldF9pbmRleF94YWN0X251bXNjYW5zKGkuaW5kZXhy ZWxpZCkpKTo6YmlnaW50IEFTIGlkeF9zY2FuLAogICAgICgoc3VtKHBnX3N0YXRfZ2V0X3hh Y3RfdHVwbGVzX2ZldGNoZWQoaS5pbmRleHJlbGlkKSkpOjpiaWdpbnQgKyBwZ19zdGF0X2dl dF94YWN0X3R1cGxlc19mZXRjaGVkKGMub2lkKSkgQVMgaWR4X3R1cF9mZXRjaCwKICAgICBw Z19zdGF0X2dldF94YWN0X3R1cGxlc19pbnNlcnRlZChjLm9pZCkgQVMgbl90dXBfaW5zLAog ICAgIHBnX3N0YXRfZ2V0X3hhY3RfdHVwbGVzX3VwZGF0ZWQoYy5vaWQpIEFTIG5fdHVwX3Vw ZCwKQEAgLTIyNzQsOCArMjI3NCw4IEBAIHBnX3N0YXRpb19hbGxfaW5kZXhlc3wgU0VMRUNU IGMub2lkIEFTIHJlbGlkLAogICAgIG4ubnNwbmFtZSBBUyBzY2hlbWFuYW1lLAogICAgIGMu cmVsbmFtZSwKICAgICBpLnJlbG5hbWUgQVMgaW5kZXhyZWxuYW1lLAotICAgIChwZ19zdGF0 X2dldF9ibG9ja3NfZmV0Y2hlZChpLm9pZCkgLSBwZ19zdGF0X2dldF9ibG9ja3NfaGl0KGku b2lkKSkgQVMgaWR4X2Jsa3NfcmVhZCwKLSAgICBwZ19zdGF0X2dldF9ibG9ja3NfaGl0KGku b2lkKSBBUyBpZHhfYmxrc19oaXQKKyAgICAocGdfc3RhdF9nZXRfaW5kZXhfYmxvY2tzX2Zl dGNoZWQoaS5vaWQpIC0gcGdfc3RhdF9nZXRfaW5kZXhfYmxvY2tzX2hpdChpLm9pZCkpIEFT IGlkeF9ibGtzX3JlYWQsCisgICAgcGdfc3RhdF9nZXRfaW5kZXhfYmxvY2tzX2hpdChpLm9p ZCkgQVMgaWR4X2Jsa3NfaGl0CiAgICBGUk9NICgoKHBnX2NsYXNzIGMKICAgICAgSk9JTiBw Z19pbmRleCB4IE9OICgoYy5vaWQgPSB4LmluZHJlbGlkKSkpCiAgICAgIEpPSU4gcGdfY2xh c3MgaSBPTiAoKGkub2lkID0geC5pbmRleHJlbGlkKSkpCkBAIC0yMjg0LDMxICsyMjg0LDMx IEBAIHBnX3N0YXRpb19hbGxfaW5kZXhlc3wgU0VMRUNUIGMub2lkIEFTIHJlbGlkLAogcGdf c3RhdGlvX2FsbF9zZXF1ZW5jZXN8IFNFTEVDVCBjLm9pZCBBUyByZWxpZCwKICAgICBuLm5z cG5hbWUgQVMgc2NoZW1hbmFtZSwKICAgICBjLnJlbG5hbWUsCi0gICAgKHBnX3N0YXRfZ2V0 X2Jsb2Nrc19mZXRjaGVkKGMub2lkKSAtIHBnX3N0YXRfZ2V0X2Jsb2Nrc19oaXQoYy5vaWQp KSBBUyBibGtzX3JlYWQsCi0gICAgcGdfc3RhdF9nZXRfYmxvY2tzX2hpdChjLm9pZCkgQVMg Ymxrc19oaXQKKyAgICAocGdfc3RhdF9nZXRfaW5kZXhfYmxvY2tzX2ZldGNoZWQoYy5vaWQp IC0gcGdfc3RhdF9nZXRfdGFibGVfYmxvY2tzX2hpdChjLm9pZCkpIEFTIGJsa3NfcmVhZCwK KyAgICBwZ19zdGF0X2dldF90YWJsZV9ibG9ja3NfaGl0KGMub2lkKSBBUyBibGtzX2hpdAog ICAgRlJPTSAocGdfY2xhc3MgYwogICAgICBMRUZUIEpPSU4gcGdfbmFtZXNwYWNlIG4gT04g KChuLm9pZCA9IGMucmVsbmFtZXNwYWNlKSkpCiAgIFdIRVJFIChjLnJlbGtpbmQgPSAnUyc6 OiJjaGFyIik7CiBwZ19zdGF0aW9fYWxsX3RhYmxlc3wgU0VMRUNUIGMub2lkIEFTIHJlbGlk LAogICAgIG4ubnNwbmFtZSBBUyBzY2hlbWFuYW1lLAogICAgIGMucmVsbmFtZSwKLSAgICAo cGdfc3RhdF9nZXRfYmxvY2tzX2ZldGNoZWQoYy5vaWQpIC0gcGdfc3RhdF9nZXRfYmxvY2tz X2hpdChjLm9pZCkpIEFTIGhlYXBfYmxrc19yZWFkLAotICAgIHBnX3N0YXRfZ2V0X2Jsb2Nr c19oaXQoYy5vaWQpIEFTIGhlYXBfYmxrc19oaXQsCisgICAgKHBnX3N0YXRfZ2V0X3RhYmxl X2Jsb2Nrc19mZXRjaGVkKGMub2lkKSAtIHBnX3N0YXRfZ2V0X3RhYmxlX2Jsb2Nrc19oaXQo Yy5vaWQpKSBBUyBoZWFwX2Jsa3NfcmVhZCwKKyAgICBwZ19zdGF0X2dldF90YWJsZV9ibG9j a3NfaGl0KGMub2lkKSBBUyBoZWFwX2Jsa3NfaGl0LAogICAgIGkuaWR4X2Jsa3NfcmVhZCwK ICAgICBpLmlkeF9ibGtzX2hpdCwKLSAgICAocGdfc3RhdF9nZXRfYmxvY2tzX2ZldGNoZWQo dC5vaWQpIC0gcGdfc3RhdF9nZXRfYmxvY2tzX2hpdCh0Lm9pZCkpIEFTIHRvYXN0X2Jsa3Nf cmVhZCwKLSAgICBwZ19zdGF0X2dldF9ibG9ja3NfaGl0KHQub2lkKSBBUyB0b2FzdF9ibGtz X2hpdCwKKyAgICAocGdfc3RhdF9nZXRfdGFibGVfYmxvY2tzX2ZldGNoZWQodC5vaWQpIC0g cGdfc3RhdF9nZXRfdGFibGVfYmxvY2tzX2hpdCh0Lm9pZCkpIEFTIHRvYXN0X2Jsa3NfcmVh ZCwKKyAgICBwZ19zdGF0X2dldF90YWJsZV9ibG9ja3NfaGl0KHQub2lkKSBBUyB0b2FzdF9i bGtzX2hpdCwKICAgICB4LmlkeF9ibGtzX3JlYWQgQVMgdGlkeF9ibGtzX3JlYWQsCiAgICAg eC5pZHhfYmxrc19oaXQgQVMgdGlkeF9ibGtzX2hpdAogICAgRlJPTSAoKCgocGdfY2xhc3Mg YwogICAgICBMRUZUIEpPSU4gcGdfY2xhc3MgdCBPTiAoKGMucmVsdG9hc3RyZWxpZCA9IHQu b2lkKSkpCiAgICAgIExFRlQgSk9JTiBwZ19uYW1lc3BhY2UgbiBPTiAoKG4ub2lkID0gYy5y ZWxuYW1lc3BhY2UpKSkKLSAgICAgTEVGVCBKT0lOIExBVEVSQUwgKCBTRUxFQ1QgKHN1bSgo cGdfc3RhdF9nZXRfYmxvY2tzX2ZldGNoZWQocGdfaW5kZXguaW5kZXhyZWxpZCkgLSBwZ19z dGF0X2dldF9ibG9ja3NfaGl0KHBnX2luZGV4LmluZGV4cmVsaWQpKSkpOjpiaWdpbnQgQVMg aWR4X2Jsa3NfcmVhZCwKLSAgICAgICAgICAgIChzdW0ocGdfc3RhdF9nZXRfYmxvY2tzX2hp dChwZ19pbmRleC5pbmRleHJlbGlkKSkpOjpiaWdpbnQgQVMgaWR4X2Jsa3NfaGl0CisgICAg IExFRlQgSk9JTiBMQVRFUkFMICggU0VMRUNUIChzdW0oKHBnX3N0YXRfZ2V0X2luZGV4X2Js b2Nrc19mZXRjaGVkKHBnX2luZGV4LmluZGV4cmVsaWQpIC0gcGdfc3RhdF9nZXRfaW5kZXhf YmxvY2tzX2hpdChwZ19pbmRleC5pbmRleHJlbGlkKSkpKTo6YmlnaW50IEFTIGlkeF9ibGtz X3JlYWQsCisgICAgICAgICAgICAoc3VtKHBnX3N0YXRfZ2V0X2luZGV4X2Jsb2Nrc19oaXQo cGdfaW5kZXguaW5kZXhyZWxpZCkpKTo6YmlnaW50IEFTIGlkeF9ibGtzX2hpdAogICAgICAg ICAgICBGUk9NIHBnX2luZGV4CiAgICAgICAgICAgV0hFUkUgKHBnX2luZGV4LmluZHJlbGlk ID0gYy5vaWQpKSBpIE9OICh0cnVlKSkKLSAgICAgTEVGVCBKT0lOIExBVEVSQUwgKCBTRUxF Q1QgKHN1bSgocGdfc3RhdF9nZXRfYmxvY2tzX2ZldGNoZWQocGdfaW5kZXguaW5kZXhyZWxp ZCkgLSBwZ19zdGF0X2dldF9ibG9ja3NfaGl0KHBnX2luZGV4LmluZGV4cmVsaWQpKSkpOjpi aWdpbnQgQVMgaWR4X2Jsa3NfcmVhZCwKLSAgICAgICAgICAgIChzdW0ocGdfc3RhdF9nZXRf YmxvY2tzX2hpdChwZ19pbmRleC5pbmRleHJlbGlkKSkpOjpiaWdpbnQgQVMgaWR4X2Jsa3Nf aGl0CisgICAgIExFRlQgSk9JTiBMQVRFUkFMICggU0VMRUNUIChzdW0oKHBnX3N0YXRfZ2V0 X2luZGV4X2Jsb2Nrc19mZXRjaGVkKHBnX2luZGV4LmluZGV4cmVsaWQpIC0gcGdfc3RhdF9n ZXRfaW5kZXhfYmxvY2tzX2hpdChwZ19pbmRleC5pbmRleHJlbGlkKSkpKTo6YmlnaW50IEFT IGlkeF9ibGtzX3JlYWQsCisgICAgICAgICAgICAoc3VtKHBnX3N0YXRfZ2V0X2luZGV4X2Js b2Nrc19oaXQocGdfaW5kZXguaW5kZXhyZWxpZCkpKTo6YmlnaW50IEFTIGlkeF9ibGtzX2hp dAogICAgICAgICAgICBGUk9NIHBnX2luZGV4CiAgICAgICAgICAgV0hFUkUgKHBnX2luZGV4 LmluZHJlbGlkID0gdC5vaWQpKSB4IE9OICh0cnVlKSkKICAgV0hFUkUgKGMucmVsa2luZCA9 IEFOWSAoQVJSQVlbJ3InOjoiY2hhciIsICd0Jzo6ImNoYXIiLCAnbSc6OiJjaGFyIl0pKTsK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3RhdHMub3V0IGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdGF0cy5vdXQKaW5kZXggMWQ4NDQwN2EwMy4uZTNm MWFlNzgyMSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdGF0cy5v dXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdGF0cy5vdXQKQEAgLTE1MSw2 ICsxNTEsMTE3IEBAIEZST00gcHJldnN0YXRzIEFTIHByOwogCiBDT01NSVQ7CiAtLS0tCist LSBCYXNpYyB0ZXN0cyBmb3IgdG9hc3QKKy0tLQorQ1JFQVRFIFRBQkxFIHN0YXRzX3RvYXN0 KHN0dWZmIHRleHQpOworQUxURVIgVEFCTEUgc3RhdHNfdG9hc3QgQUxURVIgQ09MVU1OIHN0 dWZmIFNFVCBTVE9SQUdFIEVYVEVSTkFMOworSU5TRVJUIElOVE8gc3RhdHNfdG9hc3QgVkFM VUVTIChyZXBlYXQoJ2EnLDEwMDAwMDApKTsKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHN0YXRz X3RvYXN0IFdIRVJFIHN0dWZmIGxpa2UgJyVhJSc7CisgY291bnQgCistLS0tLS0tCisgICAg IDEKKygxIHJvdykKKworLS0gZW5zdXJlIHBlbmRpbmcgc3RhdHMgYXJlIGZsdXNoZWQKK1NF TEVDVCBwZ19zdGF0X2ZvcmNlX25leHRfZmx1c2goKTsKKyBwZ19zdGF0X2ZvcmNlX25leHRf Zmx1c2ggCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitzZWxl Y3QgdG9hc3RfYmxrc19yZWFkID4gMCBhcyB0b2FzdF9ibGtzX3JlYWQsIHRvYXN0X2Jsa3Nf aGl0ID4gMCBhcyB0b2FzdF9ibGtzX2hpdCwKKyAgICAgICB0aWR4X2Jsa3NfcmVhZCA+IDAg YXMgdGlkeF9ibGtzX3JlYWQsIHRpZHhfYmxrc19oaXQgPiAwIGFzIHRpZHhfYmxrc19oaXQs CisgICAgICAgdG9hc3RfYmxrc19oaXQgPj0gdG9hc3RfYmxrc19yZWFkLAorICAgICAgIHRp ZHhfYmxrc19oaXQgPj0gdGlkeF9ibGtzX3JlYWQKKyAgIGZyb20gcGdfc3RhdGlvX2FsbF90 YWJsZXMKKyB3aGVyZSByZWxuYW1lID0gJ3N0YXRzX3RvYXN0JzsKKyB0b2FzdF9ibGtzX3Jl YWQgfCB0b2FzdF9ibGtzX2hpdCB8IHRpZHhfYmxrc19yZWFkIHwgdGlkeF9ibGtzX2hpdCB8 ID9jb2x1bW4/IHwgP2NvbHVtbj8gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tLQorIHQgICAgICAgICAgICAgICB8IHQgICAgICAgICAgICAgIHwgdCAgICAgICAgICAg ICAgfCB0ICAgICAgICAgICAgIHwgdCAgICAgICAgfCB0CisoMSByb3cpCisKKy0tLS0KKy0t IEJhc2ljIHRlc3RzIGZvciBwYXJ0aXRpb24KKy0tLQorQ1JFQVRFIFRBQkxFIHN0YXRzX3Bh cnRpdGlvbiAoCisgICAgaWQxICAgICAgICAgaW50IG5vdCBudWxsLAorICAgIGlkMiAgICAg ICAgIGludCBub3QgbnVsbAorKSBQQVJUSVRJT04gQlkgUkFOR0UgKGlkMik7CitDUkVBVEUg VEFCTEUgc3RhdHNfcGFydGl0aW9uXzUgUEFSVElUSU9OIE9GIHN0YXRzX3BhcnRpdGlvbgor ICAgIEZPUiBWQUxVRVMgRlJPTSAoMCkgVE8gKDUpOworQ1JFQVRFIFRBQkxFIHN0YXRzX3Bh cnRpdGlvbl8yMDAwMCBQQVJUSVRJT04gT0Ygc3RhdHNfcGFydGl0aW9uCisgICAgRk9SIFZB TFVFUyBGUk9NICg1KSBUTyAoMjAwMDEpOworQ1JFQVRFIElOREVYIE9OIHN0YXRzX3BhcnRp dGlvbiAoaWQyKTsKK2luc2VydCBpbnRvIHN0YXRzX3BhcnRpdGlvbiBzZWxlY3QgYSxhIGZy b20gZ2VuZXJhdGVfc2VyaWVzKDAsMjAwMDApIGE7CitTRVQgZW5hYmxlX3NlcXNjYW4gVE8g b2ZmOworU0VUIGVuYWJsZV9iaXRtYXBzY2FuIFRPIG9mZjsKK3NlbGVjdCAqIGZyb20gc3Rh dHNfcGFydGl0aW9uIHdoZXJlIGlkMiA9IDIwMDA7CisgaWQxICB8IGlkMiAgCistLS0tLS0r LS0tLS0tCisgMjAwMCB8IDIwMDAKKygxIHJvdykKKworc2VsZWN0ICogZnJvbSBzdGF0c19w YXJ0aXRpb24gd2hlcmUgaWQyID0gMjsKKyBpZDEgfCBpZDIgCistLS0tLSstLS0tLQorICAg MiB8ICAgMgorKDEgcm93KQorCistLSBlbnN1cmUgcGVuZGluZyBzdGF0cyBhcmUgZmx1c2hl ZAorU0VMRUNUIHBnX3N0YXRfZm9yY2VfbmV4dF9mbHVzaCgpOworIHBnX3N0YXRfZm9yY2Vf bmV4dF9mbHVzaCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisK K3NlbGVjdCByZWxuYW1lLCBpbmRleHJlbG5hbWUsIGlkeF9zY2FuID4gMCBhcyBpZHhfc2Nh biwgaWR4X3R1cF9yZWFkID4gMCBhcyBpZHhfdHVwX3JlYWQsCisgICAgICAgaWR4X3R1cF9m ZXRjaCA+IDAgYXMgaWR4X3R1cF9mZXRjaAorICAgZnJvbSBwZ19zdGF0X2FsbF9pbmRleGVz Cisgd2hlcmUgcmVsbmFtZSBsaWtlICclc3RhdHNfcGFydGl0aW9uJScKKyBvcmRlciBieSBy ZWxuYW1lIENPTExBVEUgIkMiOworICAgICAgICByZWxuYW1lICAgICAgICB8ICAgICAgICAg aW5kZXhyZWxuYW1lICAgICAgICAgIHwgaWR4X3NjYW4gfCBpZHhfdHVwX3JlYWQgfCBpZHhf dHVwX2ZldGNoIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LQorIHN0YXRzX3BhcnRpdGlvbl8yMDAwMCB8IHN0YXRzX3BhcnRpdGlvbl8yMDAwMF9pZDJf aWR4IHwgdCAgICAgICAgfCB0ICAgICAgICAgICAgfCB0Cisgc3RhdHNfcGFydGl0aW9uXzUg ICAgIHwgc3RhdHNfcGFydGl0aW9uXzVfaWQyX2lkeCAgICAgfCB0ICAgICAgICB8IHQgICAg ICAgICAgICB8IHQKKygyIHJvd3MpCisKK3NlbGVjdCByZWxuYW1lLCBpbmRleHJlbG5hbWUs IGlkeF9ibGtzX3JlYWQgPiAwIGFzIGlkeF9ibGtzX3JlYWQsCisgICAgICAgaWR4X2Jsa3Nf aGl0ID4gMCBhcyBpZHhfYmxrc19oaXQKKyAgIGZyb20gcGdfc3RhdGlvX2FsbF9pbmRleGVz Cisgd2hlcmUgcmVsbmFtZSBsaWtlICclc3RhdHNfcGFydGl0aW9uJScKKyBvcmRlciBieSBy ZWxuYW1lIENPTExBVEUgIkMiOworICAgICAgICByZWxuYW1lICAgICAgICB8ICAgICAgICAg aW5kZXhyZWxuYW1lICAgICAgICAgIHwgaWR4X2Jsa3NfcmVhZCB8IGlkeF9ibGtzX2hpdCAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tCisgc3RhdHNfcGFydGl0aW9uXzIw MDAwIHwgc3RhdHNfcGFydGl0aW9uXzIwMDAwX2lkMl9pZHggfCB0ICAgICAgICAgICAgIHwg dAorIHN0YXRzX3BhcnRpdGlvbl81ICAgICB8IHN0YXRzX3BhcnRpdGlvbl81X2lkMl9pZHgg ICAgIHwgdCAgICAgICAgICAgICB8IHQKKygyIHJvd3MpCisKK3NlbGVjdCByZWxuYW1lLHNl cV9zY2FuID4gMCBhcyBzZXFfc2Nhbiwgc2VxX3R1cF9yZWFkID4gMCBhcyBzZXFfdHVwX3Jl YWQsCisgICAgICAgaWR4X3NjYW4gPiAwIGFzIGlkeF9zY2FuLCBpZHhfdHVwX2ZldGNoID4g MCBhcyBpZHhfdHVwX2ZldGNoCisgICBmcm9tIHBnX3N0YXRfYWxsX3RhYmxlcworICB3aGVy ZSByZWxuYW1lIGxpa2UgJyVzdGF0c19wYXJ0aXRpb24lJworICBvcmRlciBieSByZWxuYW1l IENPTExBVEUgIkMiOworICAgICAgICByZWxuYW1lICAgICAgICB8IHNlcV9zY2FuIHwgc2Vx X3R1cF9yZWFkIHwgaWR4X3NjYW4gfCBpZHhfdHVwX2ZldGNoIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLQorIHN0YXRzX3BhcnRpdGlvbiAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAg ICAgIHwgZiAgICAgICAgfCBmCisgc3RhdHNfcGFydGl0aW9uXzIwMDAwIHwgdCAgICAgICAg fCBmICAgICAgICAgICAgfCB0ICAgICAgICB8IHQKKyBzdGF0c19wYXJ0aXRpb25fNSAgICAg fCB0ICAgICAgICB8IGYgICAgICAgICAgICB8IHQgICAgICAgIHwgdAorKDMgcm93cykKKwor c2VsZWN0IHJlbG5hbWUsIGhlYXBfYmxrc19yZWFkID4gMCBhcyBoZWFwX2Jsa3NfcmVhZCwg aGVhcF9ibGtzX2hpdCA+IDAgYXMgaGVhcF9ibGtzX2hpdCwKKyAgICAgICBpZHhfYmxrc19y ZWFkID4gMCBhcyBpZHhfYmxrc19yZWFkLCBpZHhfYmxrc19oaXQgPiAwIGFzIGlkeF9ibGtz X2hpdAorICAgZnJvbSBwZ19zdGF0aW9fYWxsX3RhYmxlcworIHdoZXJlIHJlbG5hbWUgbGlr ZSAnJXN0YXRzX3BhcnRpdGlvbiUnCisgb3JkZXIgYnkgcmVsbmFtZSBDT0xMQVRFICJDIjsK KyAgICAgICAgcmVsbmFtZSAgICAgICAgfCBoZWFwX2Jsa3NfcmVhZCB8IGhlYXBfYmxrc19o aXQgfCBpZHhfYmxrc19yZWFkIHwgaWR4X2Jsa3NfaGl0IAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tCisgc3RhdHNfcGFydGl0aW9uXzIwMDAwIHwgdCAgICAgICAgICAg ICAgfCB0ICAgICAgICAgICAgIHwgdCAgICAgICAgICAgICB8IHQKKyBzdGF0c19wYXJ0aXRp b25fNSAgICAgfCB0ICAgICAgICAgICAgICB8IHQgICAgICAgICAgICAgfCB0ICAgICAgICAg ICAgIHwgdAorKDIgcm93cykKKworU0VUIGVuYWJsZV9zZXFzY2FuIFRPIG9uOworU0VUIGVu YWJsZV9iaXRtYXBzY2FuIFRPIG9uOworLS0tLQogLS0gQmFzaWMgdGVzdHMgZm9yIHRyYWNr X2Z1bmN0aW9ucwogLS0tCiBDUkVBVEUgRlVOQ1RJT04gc3RhdHNfdGVzdF9mdW5jMSgpIFJF VFVSTlMgVk9JRCBMQU5HVUFHRSBwbHBnc3FsIEFTICQkQkVHSU4gRU5EOyQkOwpAQCAtMTAy MSwyMSArMTEzMiwyMSBAQCBzZWxlY3QgYSBmcm9tIHN0YXRzX3Rlc3RfdGFiMSB3aGVyZSBh ID0gMzsKICAzCiAoMSByb3cpCiAKLVNFTEVDVCBwZ19zdGF0X2hhdmVfc3RhdHMoJ3JlbGF0 aW9uJywgOmRib2lkLCA6c3RhdHNfdGVzdF9pZHgxX29pZCk7CitTRUxFQ1QgcGdfc3RhdF9o YXZlX3N0YXRzKCdpbmRleCcsIDpkYm9pZCwgOnN0YXRzX3Rlc3RfaWR4MV9vaWQpOwogIHBn X3N0YXRfaGF2ZV9zdGF0cyAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgdAogKDEgcm93KQog CiAtLSBwZ19zdGF0X2hhdmVfc3RhdHMgcmV0dXJucyBmYWxzZSBmb3IgZHJvcHBlZCBpbmRl eCB3aXRoIHN0YXRzCi1TRUxFQ1QgcGdfc3RhdF9oYXZlX3N0YXRzKCdyZWxhdGlvbicsIDpk Ym9pZCwgOnN0YXRzX3Rlc3RfaWR4MV9vaWQpOworU0VMRUNUIHBnX3N0YXRfaGF2ZV9zdGF0 cygnaW5kZXgnLCA6ZGJvaWQsIDpzdGF0c190ZXN0X2lkeDFfb2lkKTsKICBwZ19zdGF0X2hh dmVfc3RhdHMgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLQogIHQKICgxIHJvdykKIAogRFJPUCBp bmRleCBzdGF0c190ZXN0X2lkeDE7Ci1TRUxFQ1QgcGdfc3RhdF9oYXZlX3N0YXRzKCdyZWxh dGlvbicsIDpkYm9pZCwgOnN0YXRzX3Rlc3RfaWR4MV9vaWQpOworU0VMRUNUIHBnX3N0YXRf aGF2ZV9zdGF0cygnaW5kZXgnLCA6ZGJvaWQsIDpzdGF0c190ZXN0X2lkeDFfb2lkKTsKICBw Z19zdGF0X2hhdmVfc3RhdHMgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLQogIGYKQEAgLTEwNTEs MTQgKzExNjIsMTQgQEAgc2VsZWN0IGEgZnJvbSBzdGF0c190ZXN0X3RhYjEgd2hlcmUgYSA9 IDM7CiAgMwogKDEgcm93KQogCi1TRUxFQ1QgcGdfc3RhdF9oYXZlX3N0YXRzKCdyZWxhdGlv bicsIDpkYm9pZCwgOnN0YXRzX3Rlc3RfaWR4MV9vaWQpOworU0VMRUNUIHBnX3N0YXRfaGF2 ZV9zdGF0cygnaW5kZXgnLCA6ZGJvaWQsIDpzdGF0c190ZXN0X2lkeDFfb2lkKTsKICBwZ19z dGF0X2hhdmVfc3RhdHMgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLQogIHQKICgxIHJvdykKIAog Uk9MTEJBQ0s7Ci1TRUxFQ1QgcGdfc3RhdF9oYXZlX3N0YXRzKCdyZWxhdGlvbicsIDpkYm9p ZCwgOnN0YXRzX3Rlc3RfaWR4MV9vaWQpOworU0VMRUNUIHBnX3N0YXRfaGF2ZV9zdGF0cygn aW5kZXgnLCA6ZGJvaWQsIDpzdGF0c190ZXN0X2lkeDFfb2lkKTsKICBwZ19zdGF0X2hhdmVf c3RhdHMgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLQogIGYKQEAgLTEwNzMsNyArMTE4NCw3IEBA IHNlbGVjdCBhIGZyb20gc3RhdHNfdGVzdF90YWIxIHdoZXJlIGEgPSAzOwogIDMKICgxIHJv dykKIAotU0VMRUNUIHBnX3N0YXRfaGF2ZV9zdGF0cygncmVsYXRpb24nLCA6ZGJvaWQsIDpz dGF0c190ZXN0X2lkeDFfb2lkKTsKK1NFTEVDVCBwZ19zdGF0X2hhdmVfc3RhdHMoJ2luZGV4 JywgOmRib2lkLCA6c3RhdHNfdGVzdF9pZHgxX29pZCk7CiAgcGdfc3RhdF9oYXZlX3N0YXRz IAogLS0tLS0tLS0tLS0tLS0tLS0tLS0KICB0CkBAIC0xMDgxLDcgKzExOTIsNyBAQCBTRUxF Q1QgcGdfc3RhdF9oYXZlX3N0YXRzKCdyZWxhdGlvbicsIDpkYm9pZCwgOnN0YXRzX3Rlc3Rf aWR4MV9vaWQpOwogCiBSRUlOREVYIGluZGV4IENPTkNVUlJFTlRMWSBzdGF0c190ZXN0X2lk eDE7CiAtLSBmYWxzZSBmb3IgcHJldmlvdXMgb2lkCi1TRUxFQ1QgcGdfc3RhdF9oYXZlX3N0 YXRzKCdyZWxhdGlvbicsIDpkYm9pZCwgOnN0YXRzX3Rlc3RfaWR4MV9vaWQpOworU0VMRUNU IHBnX3N0YXRfaGF2ZV9zdGF0cygnaW5kZXgnLCA6ZGJvaWQsIDpzdGF0c190ZXN0X2lkeDFf b2lkKTsKICBwZ19zdGF0X2hhdmVfc3RhdHMgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLQogIGYK QEAgLTEwODksNyArMTIwMCw3IEBAIFNFTEVDVCBwZ19zdGF0X2hhdmVfc3RhdHMoJ3JlbGF0 aW9uJywgOmRib2lkLCA6c3RhdHNfdGVzdF9pZHgxX29pZCk7CiAKIC0tIHRydWUgZm9yIG5l dyBvaWQKIFNFTEVDVCAnc3RhdHNfdGVzdF9pZHgxJzo6cmVnY2xhc3M6Om9pZCBBUyBzdGF0 c190ZXN0X2lkeDFfb2lkIFxnc2V0Ci1TRUxFQ1QgcGdfc3RhdF9oYXZlX3N0YXRzKCdyZWxh dGlvbicsIDpkYm9pZCwgOnN0YXRzX3Rlc3RfaWR4MV9vaWQpOworU0VMRUNUIHBnX3N0YXRf aGF2ZV9zdGF0cygnaW5kZXgnLCA6ZGJvaWQsIDpzdGF0c190ZXN0X2lkeDFfb2lkKTsKICBw Z19zdGF0X2hhdmVfc3RhdHMgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLQogIHQKQEAgLTEwOTcs NyArMTIwOCw3IEBAIFNFTEVDVCBwZ19zdGF0X2hhdmVfc3RhdHMoJ3JlbGF0aW9uJywgOmRi b2lkLCA6c3RhdHNfdGVzdF9pZHgxX29pZCk7CiAKIC0tIHBnX3N0YXRfaGF2ZV9zdGF0cyBy ZXR1cm5zIHRydWUgZm9yIGEgcm9sbGVkIGJhY2sgZHJvcCBpbmRleCB3aXRoIHN0YXRzCiBC RUdJTjsKLVNFTEVDVCBwZ19zdGF0X2hhdmVfc3RhdHMoJ3JlbGF0aW9uJywgOmRib2lkLCA6 c3RhdHNfdGVzdF9pZHgxX29pZCk7CitTRUxFQ1QgcGdfc3RhdF9oYXZlX3N0YXRzKCdpbmRl eCcsIDpkYm9pZCwgOnN0YXRzX3Rlc3RfaWR4MV9vaWQpOwogIHBnX3N0YXRfaGF2ZV9zdGF0 cyAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgdApAQCAtMTEwNSw3ICsxMjE2LDcgQEAgU0VM RUNUIHBnX3N0YXRfaGF2ZV9zdGF0cygncmVsYXRpb24nLCA6ZGJvaWQsIDpzdGF0c190ZXN0 X2lkeDFfb2lkKTsKIAogRFJPUCBpbmRleCBzdGF0c190ZXN0X2lkeDE7CiBST0xMQkFDSzsK LVNFTEVDVCBwZ19zdGF0X2hhdmVfc3RhdHMoJ3JlbGF0aW9uJywgOmRib2lkLCA6c3RhdHNf dGVzdF9pZHgxX29pZCk7CitTRUxFQ1QgcGdfc3RhdF9oYXZlX3N0YXRzKCdpbmRleCcsIDpk Ym9pZCwgOnN0YXRzX3Rlc3RfaWR4MV9vaWQpOwogIHBnX3N0YXRfaGF2ZV9zdGF0cyAKIC0t LS0tLS0tLS0tLS0tLS0tLS0tCiAgdApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9z cWwvc3RhdHMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc3RhdHMuc3FsCmluZGV4IGI0 ZDY3NTNjNzEuLjEyZWM4N2E2ZDEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3N0YXRzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zdGF0cy5zcWwKQEAgLTEy Niw2ICsxMjYsNzcgQEAgRlJPTSBwcmV2c3RhdHMgQVMgcHI7CiAKIENPTU1JVDsKIAorLS0t LQorLS0gQmFzaWMgdGVzdHMgZm9yIHRvYXN0CistLS0KK0NSRUFURSBUQUJMRSBzdGF0c190 b2FzdChzdHVmZiB0ZXh0KTsKK0FMVEVSIFRBQkxFIHN0YXRzX3RvYXN0IEFMVEVSIENPTFVN TiBzdHVmZiBTRVQgU1RPUkFHRSBFWFRFUk5BTDsKK0lOU0VSVCBJTlRPIHN0YXRzX3RvYXN0 IFZBTFVFUyAocmVwZWF0KCdhJywxMDAwMDAwKSk7CitTRUxFQ1QgY291bnQoKikgRlJPTSBz dGF0c190b2FzdCBXSEVSRSBzdHVmZiBsaWtlICclYSUnOworCistLSBlbnN1cmUgcGVuZGlu ZyBzdGF0cyBhcmUgZmx1c2hlZAorU0VMRUNUIHBnX3N0YXRfZm9yY2VfbmV4dF9mbHVzaCgp OworCitzZWxlY3QgdG9hc3RfYmxrc19yZWFkID4gMCBhcyB0b2FzdF9ibGtzX3JlYWQsIHRv YXN0X2Jsa3NfaGl0ID4gMCBhcyB0b2FzdF9ibGtzX2hpdCwKKyAgICAgICB0aWR4X2Jsa3Nf cmVhZCA+IDAgYXMgdGlkeF9ibGtzX3JlYWQsIHRpZHhfYmxrc19oaXQgPiAwIGFzIHRpZHhf Ymxrc19oaXQsCisgICAgICAgdG9hc3RfYmxrc19oaXQgPj0gdG9hc3RfYmxrc19yZWFkLAor ICAgICAgIHRpZHhfYmxrc19oaXQgPj0gdGlkeF9ibGtzX3JlYWQKKyAgIGZyb20gcGdfc3Rh dGlvX2FsbF90YWJsZXMKKyB3aGVyZSByZWxuYW1lID0gJ3N0YXRzX3RvYXN0JzsKKworLS0t LQorLS0gQmFzaWMgdGVzdHMgZm9yIHBhcnRpdGlvbgorLS0tCitDUkVBVEUgVEFCTEUgc3Rh dHNfcGFydGl0aW9uICgKKyAgICBpZDEgICAgICAgICBpbnQgbm90IG51bGwsCisgICAgaWQy ICAgICAgICAgaW50IG5vdCBudWxsCispIFBBUlRJVElPTiBCWSBSQU5HRSAoaWQyKTsKKwor Q1JFQVRFIFRBQkxFIHN0YXRzX3BhcnRpdGlvbl81IFBBUlRJVElPTiBPRiBzdGF0c19wYXJ0 aXRpb24KKyAgICBGT1IgVkFMVUVTIEZST00gKDApIFRPICg1KTsKKworQ1JFQVRFIFRBQkxF IHN0YXRzX3BhcnRpdGlvbl8yMDAwMCBQQVJUSVRJT04gT0Ygc3RhdHNfcGFydGl0aW9uCisg ICAgRk9SIFZBTFVFUyBGUk9NICg1KSBUTyAoMjAwMDEpOworCitDUkVBVEUgSU5ERVggT04g c3RhdHNfcGFydGl0aW9uIChpZDIpOworCitpbnNlcnQgaW50byBzdGF0c19wYXJ0aXRpb24g c2VsZWN0IGEsYSBmcm9tIGdlbmVyYXRlX3NlcmllcygwLDIwMDAwKSBhOworCitTRVQgZW5h YmxlX3NlcXNjYW4gVE8gb2ZmOworU0VUIGVuYWJsZV9iaXRtYXBzY2FuIFRPIG9mZjsKKwor c2VsZWN0ICogZnJvbSBzdGF0c19wYXJ0aXRpb24gd2hlcmUgaWQyID0gMjAwMDsKK3NlbGVj dCAqIGZyb20gc3RhdHNfcGFydGl0aW9uIHdoZXJlIGlkMiA9IDI7CistLSBlbnN1cmUgcGVu ZGluZyBzdGF0cyBhcmUgZmx1c2hlZAorU0VMRUNUIHBnX3N0YXRfZm9yY2VfbmV4dF9mbHVz aCgpOworCitzZWxlY3QgcmVsbmFtZSwgaW5kZXhyZWxuYW1lLCBpZHhfc2NhbiA+IDAgYXMg aWR4X3NjYW4sIGlkeF90dXBfcmVhZCA+IDAgYXMgaWR4X3R1cF9yZWFkLAorICAgICAgIGlk eF90dXBfZmV0Y2ggPiAwIGFzIGlkeF90dXBfZmV0Y2gKKyAgIGZyb20gcGdfc3RhdF9hbGxf aW5kZXhlcworIHdoZXJlIHJlbG5hbWUgbGlrZSAnJXN0YXRzX3BhcnRpdGlvbiUnCisgb3Jk ZXIgYnkgcmVsbmFtZSBDT0xMQVRFICJDIjsKKworc2VsZWN0IHJlbG5hbWUsIGluZGV4cmVs bmFtZSwgaWR4X2Jsa3NfcmVhZCA+IDAgYXMgaWR4X2Jsa3NfcmVhZCwKKyAgICAgICBpZHhf Ymxrc19oaXQgPiAwIGFzIGlkeF9ibGtzX2hpdAorICAgZnJvbSBwZ19zdGF0aW9fYWxsX2lu ZGV4ZXMKKyB3aGVyZSByZWxuYW1lIGxpa2UgJyVzdGF0c19wYXJ0aXRpb24lJworIG9yZGVy IGJ5IHJlbG5hbWUgQ09MTEFURSAiQyI7CisKK3NlbGVjdCByZWxuYW1lLHNlcV9zY2FuID4g MCBhcyBzZXFfc2Nhbiwgc2VxX3R1cF9yZWFkID4gMCBhcyBzZXFfdHVwX3JlYWQsCisgICAg ICAgaWR4X3NjYW4gPiAwIGFzIGlkeF9zY2FuLCBpZHhfdHVwX2ZldGNoID4gMCBhcyBpZHhf dHVwX2ZldGNoCisgICBmcm9tIHBnX3N0YXRfYWxsX3RhYmxlcworICB3aGVyZSByZWxuYW1l IGxpa2UgJyVzdGF0c19wYXJ0aXRpb24lJworICBvcmRlciBieSByZWxuYW1lIENPTExBVEUg IkMiOworCitzZWxlY3QgcmVsbmFtZSwgaGVhcF9ibGtzX3JlYWQgPiAwIGFzIGhlYXBfYmxr c19yZWFkLCBoZWFwX2Jsa3NfaGl0ID4gMCBhcyBoZWFwX2Jsa3NfaGl0LAorICAgICAgIGlk eF9ibGtzX3JlYWQgPiAwIGFzIGlkeF9ibGtzX3JlYWQsIGlkeF9ibGtzX2hpdCA+IDAgYXMg aWR4X2Jsa3NfaGl0CisgICBmcm9tIHBnX3N0YXRpb19hbGxfdGFibGVzCisgd2hlcmUgcmVs bmFtZSBsaWtlICclc3RhdHNfcGFydGl0aW9uJScKKyBvcmRlciBieSByZWxuYW1lIENPTExB VEUgIkMiOworCitTRVQgZW5hYmxlX3NlcXNjYW4gVE8gb247CitTRVQgZW5hYmxlX2JpdG1h cHNjYW4gVE8gb247CisKIC0tLS0KIC0tIEJhc2ljIHRlc3RzIGZvciB0cmFja19mdW5jdGlv bnMKIC0tLQpAQCAtNDkzLDQwICs1NjQsNDAgQEAgQ1JFQVRFIGluZGV4IHN0YXRzX3Rlc3Rf aWR4MSBvbiBzdGF0c190ZXN0X3RhYjEoYSk7CiBTRUxFQ1QgJ3N0YXRzX3Rlc3RfaWR4MSc6 OnJlZ2NsYXNzOjpvaWQgQVMgc3RhdHNfdGVzdF9pZHgxX29pZCBcZ3NldAogU0VUIGVuYWJs ZV9zZXFzY2FuIFRPIG9mZjsKIHNlbGVjdCBhIGZyb20gc3RhdHNfdGVzdF90YWIxIHdoZXJl IGEgPSAzOwotU0VMRUNUIHBnX3N0YXRfaGF2ZV9zdGF0cygncmVsYXRpb24nLCA6ZGJvaWQs IDpzdGF0c190ZXN0X2lkeDFfb2lkKTsKK1NFTEVDVCBwZ19zdGF0X2hhdmVfc3RhdHMoJ2lu ZGV4JywgOmRib2lkLCA6c3RhdHNfdGVzdF9pZHgxX29pZCk7CiAKIC0tIHBnX3N0YXRfaGF2 ZV9zdGF0cyByZXR1cm5zIGZhbHNlIGZvciBkcm9wcGVkIGluZGV4IHdpdGggc3RhdHMKLVNF TEVDVCBwZ19zdGF0X2hhdmVfc3RhdHMoJ3JlbGF0aW9uJywgOmRib2lkLCA6c3RhdHNfdGVz dF9pZHgxX29pZCk7CitTRUxFQ1QgcGdfc3RhdF9oYXZlX3N0YXRzKCdpbmRleCcsIDpkYm9p ZCwgOnN0YXRzX3Rlc3RfaWR4MV9vaWQpOwogRFJPUCBpbmRleCBzdGF0c190ZXN0X2lkeDE7 Ci1TRUxFQ1QgcGdfc3RhdF9oYXZlX3N0YXRzKCdyZWxhdGlvbicsIDpkYm9pZCwgOnN0YXRz X3Rlc3RfaWR4MV9vaWQpOworU0VMRUNUIHBnX3N0YXRfaGF2ZV9zdGF0cygnaW5kZXgnLCA6 ZGJvaWQsIDpzdGF0c190ZXN0X2lkeDFfb2lkKTsKIAogLS0gcGdfc3RhdF9oYXZlX3N0YXRz IHJldHVybnMgZmFsc2UgZm9yIHJvbGxlZCBiYWNrIGluZGV4IGNyZWF0aW9uCiBCRUdJTjsK IENSRUFURSBpbmRleCBzdGF0c190ZXN0X2lkeDEgb24gc3RhdHNfdGVzdF90YWIxKGEpOwog U0VMRUNUICdzdGF0c190ZXN0X2lkeDEnOjpyZWdjbGFzczo6b2lkIEFTIHN0YXRzX3Rlc3Rf aWR4MV9vaWQgXGdzZXQKIHNlbGVjdCBhIGZyb20gc3RhdHNfdGVzdF90YWIxIHdoZXJlIGEg PSAzOwotU0VMRUNUIHBnX3N0YXRfaGF2ZV9zdGF0cygncmVsYXRpb24nLCA6ZGJvaWQsIDpz dGF0c190ZXN0X2lkeDFfb2lkKTsKK1NFTEVDVCBwZ19zdGF0X2hhdmVfc3RhdHMoJ2luZGV4 JywgOmRib2lkLCA6c3RhdHNfdGVzdF9pZHgxX29pZCk7CiBST0xMQkFDSzsKLVNFTEVDVCBw Z19zdGF0X2hhdmVfc3RhdHMoJ3JlbGF0aW9uJywgOmRib2lkLCA6c3RhdHNfdGVzdF9pZHgx X29pZCk7CitTRUxFQ1QgcGdfc3RhdF9oYXZlX3N0YXRzKCdpbmRleCcsIDpkYm9pZCwgOnN0 YXRzX3Rlc3RfaWR4MV9vaWQpOwogCiAtLSBwZ19zdGF0X2hhdmVfc3RhdHMgcmV0dXJucyB0 cnVlIGZvciByZWluZGV4IENPTkNVUlJFTlRMWQogQ1JFQVRFIGluZGV4IHN0YXRzX3Rlc3Rf aWR4MSBvbiBzdGF0c190ZXN0X3RhYjEoYSk7CiBTRUxFQ1QgJ3N0YXRzX3Rlc3RfaWR4MSc6 OnJlZ2NsYXNzOjpvaWQgQVMgc3RhdHNfdGVzdF9pZHgxX29pZCBcZ3NldAogc2VsZWN0IGEg ZnJvbSBzdGF0c190ZXN0X3RhYjEgd2hlcmUgYSA9IDM7Ci1TRUxFQ1QgcGdfc3RhdF9oYXZl X3N0YXRzKCdyZWxhdGlvbicsIDpkYm9pZCwgOnN0YXRzX3Rlc3RfaWR4MV9vaWQpOworU0VM RUNUIHBnX3N0YXRfaGF2ZV9zdGF0cygnaW5kZXgnLCA6ZGJvaWQsIDpzdGF0c190ZXN0X2lk eDFfb2lkKTsKIFJFSU5ERVggaW5kZXggQ09OQ1VSUkVOVExZIHN0YXRzX3Rlc3RfaWR4MTsK IC0tIGZhbHNlIGZvciBwcmV2aW91cyBvaWQKLVNFTEVDVCBwZ19zdGF0X2hhdmVfc3RhdHMo J3JlbGF0aW9uJywgOmRib2lkLCA6c3RhdHNfdGVzdF9pZHgxX29pZCk7CitTRUxFQ1QgcGdf c3RhdF9oYXZlX3N0YXRzKCdpbmRleCcsIDpkYm9pZCwgOnN0YXRzX3Rlc3RfaWR4MV9vaWQp OwogLS0gdHJ1ZSBmb3IgbmV3IG9pZAogU0VMRUNUICdzdGF0c190ZXN0X2lkeDEnOjpyZWdj bGFzczo6b2lkIEFTIHN0YXRzX3Rlc3RfaWR4MV9vaWQgXGdzZXQKLVNFTEVDVCBwZ19zdGF0 X2hhdmVfc3RhdHMoJ3JlbGF0aW9uJywgOmRib2lkLCA6c3RhdHNfdGVzdF9pZHgxX29pZCk7 CitTRUxFQ1QgcGdfc3RhdF9oYXZlX3N0YXRzKCdpbmRleCcsIDpkYm9pZCwgOnN0YXRzX3Rl c3RfaWR4MV9vaWQpOwogCiAtLSBwZ19zdGF0X2hhdmVfc3RhdHMgcmV0dXJucyB0cnVlIGZv ciBhIHJvbGxlZCBiYWNrIGRyb3AgaW5kZXggd2l0aCBzdGF0cwogQkVHSU47Ci1TRUxFQ1Qg cGdfc3RhdF9oYXZlX3N0YXRzKCdyZWxhdGlvbicsIDpkYm9pZCwgOnN0YXRzX3Rlc3RfaWR4 MV9vaWQpOworU0VMRUNUIHBnX3N0YXRfaGF2ZV9zdGF0cygnaW5kZXgnLCA6ZGJvaWQsIDpz dGF0c190ZXN0X2lkeDFfb2lkKTsKIERST1AgaW5kZXggc3RhdHNfdGVzdF9pZHgxOwogUk9M TEJBQ0s7Ci1TRUxFQ1QgcGdfc3RhdF9oYXZlX3N0YXRzKCdyZWxhdGlvbicsIDpkYm9pZCwg OnN0YXRzX3Rlc3RfaWR4MV9vaWQpOworU0VMRUNUIHBnX3N0YXRfaGF2ZV9zdGF0cygnaW5k ZXgnLCA6ZGJvaWQsIDpzdGF0c190ZXN0X2lkeDFfb2lkKTsKIAogLS0gcHV0IGVuYWJsZV9z ZXFzY2FuIGJhY2sgdG8gb24KIFNFVCBlbmFibGVfc2Vxc2NhbiBUTyBvbjsKZGlmZiAtLWdp dCBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0IGIvc3JjL3Rvb2xzL3BnaW5k ZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggZjgzMDJmMWVkMS4uODk4ZjA5MjA2YSAxMDA2NDQK LS0tIGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKKysrIGIvc3JjL3Rvb2xz L3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKQEAgLTIwMDksMTAgKzIwMDksMTEgQEAgUGdTdGF0 U2hhcmVkX0NvbW1vbgogUGdTdGF0U2hhcmVkX0RhdGFiYXNlCiBQZ1N0YXRTaGFyZWRfRnVu Y3Rpb24KIFBnU3RhdFNoYXJlZF9IYXNoRW50cnkKLVBnU3RhdFNoYXJlZF9SZWxhdGlvbgor UGdTdGF0U2hhcmVkX0luZGV4CiBQZ1N0YXRTaGFyZWRfUmVwbFNsb3QKIFBnU3RhdFNoYXJl ZF9TTFJVCiBQZ1N0YXRTaGFyZWRfU3Vic2NyaXB0aW9uCitQZ1N0YXRTaGFyZWRfVGFibGUK IFBnU3RhdFNoYXJlZF9XYWwKIFBnU3RhdF9BcmNoaXZlclN0YXRzCiBQZ1N0YXRfQmFja2Vu ZEZ1bmN0aW9uRW50cnkK --------------oKUQJAho3F2QwMEaP6tvAOH8--