From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 69874 invoked by alias); 21 Sep 2016 18:04:02 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 69852 invoked by uid 89); 21 Sep 2016 18:04:01 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=3.1 required=5.0 tests=AWL,BAYES_50,FREEMAIL_FROM,KAM_STOCKGEN,RCVD_IN_DNSWL_NONE,RCVD_IN_SORBS_SPAM,SPF_PASS autolearn=no version=3.3.2 spammy=Image, exponent, build_int_cst, UD:u.derived X-Spam-User: qpsmtpd, 2 recipients X-HELO: mail-yw0-f169.google.com Received: from mail-yw0-f169.google.com (HELO mail-yw0-f169.google.com) (209.85.161.169) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 21 Sep 2016 18:03:51 +0000 Received: by mail-yw0-f169.google.com with SMTP id g192so67027283ywh.1; Wed, 21 Sep 2016 11:03:50 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=MFqeXLv9LY0gdswgJBSHRDk+KvO4Mgo6lpGQDkRlq0I=; b=VmIKc7ygr+Pq3/wrjXUSlGs34cpL3vHmBbQPyZx1gbVHcYVDeZdJAGnNH/duF+e8vn ZVERiaDBw1Ii037CKwIAKZV9XDT0GAp7cMbJav0OuUbFi5oCIKqr8xYE7YAe58B5BgTR U/0iwJC1GbQ3hy271Rtb+R6aPB6oX+jpnBoDRaPCQfTTnYjY2DmzyqWLmmt8BX72vI26 eV50G5sbebduDX1an7j2Vc926SQZplJdiwmV13oc2AoLZDFhO2pTSeCkT4y72g5Y4KLt PAUN7vnsN0Os3G9gnmilbcJ+mW2aSudIYH9Ojq2AERPSe46yPyHWga+8gMTTMFu5VfTl r6Yw== X-Gm-Message-State: AE9vXwNRqjnVO5M9rn9s7hiSAsbyXD3gmaGyQak0NB3SgVz8IwDgDU29Oo1qgRnlSSZ6njRu95W7zamQF48H2w== X-Received: by 10.129.51.82 with SMTP id z79mr29473176ywz.343.1474481029141; Wed, 21 Sep 2016 11:03:49 -0700 (PDT) MIME-Version: 1.0 Received: by 10.176.6.165 with HTTP; Wed, 21 Sep 2016 11:03:48 -0700 (PDT) In-Reply-To: <20160919175505.09db48b0@vepi2> References: <20160720113913.24e1f404@vepi2> <20160919175505.09db48b0@vepi2> From: Alessandro Fanfarillo Date: Wed, 21 Sep 2016 18:37:00 -0000 Message-ID: Subject: Re: [Fortran, Patch] First patch for coarray FAILED IMAGES (TS 18508) To: Andre Vehreschild Cc: Paul Richard Thomas , gfortran , gcc-patches , Mikael Morin , Tobias Burnus Content-Type: multipart/mixed; boundary=001a11419ed2f8ed68053d085db4 X-IsSubscribed: yes X-SW-Source: 2016-09/txt/msg01454.txt.bz2 --001a11419ed2f8ed68053d085db4 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-length: 6229 Thanks Andre. 2016-09-19 9:55 GMT-06:00 Andre Vehreschild : > Hi Alessandro, > The if in resolve.c at 8837: resolve_failed_image (... is intentional? It= is > doing nothing. So do you plan to add more code, or will there never be > anything. If the later I recommend to just put a comment there and remove= the > empty if. I added the if statement during the development and I forgot to remove it. > > There still is no test when -fcoarray=3Dsingle is used. This shouldn't be= so > hard, should it? Done. Built and regtested on x86_64-pc-linux-gnu. > > Regards, > Andre > > On Mon, 19 Sep 2016 08:30:12 -0700 > Alessandro Fanfarillo wrote: > >> * PING * >> >> On Sep 7, 2016 3:01 PM, "Alessandro Fanfarillo" >> wrote: >> >> > Dear all, >> > the attached patch supports failed images also when -fcoarray=3Dsingle= is >> > used. >> > >> > Built and regtested on x86_64-pc-linux-gnu. >> > >> > Cheers, >> > Alessandro >> > >> > 2016-08-09 5:22 GMT-06:00 Paul Richard Thomas < >> > paul.richard.thomas@gmail.com>: >> > > Hi Sandro, >> > > >> > > As far as I can see, this is OK barring a couple of minor wrinkles a= nd >> > > a question: >> > > >> > > For coarray_failed_images_err.f90 and coarray_image_status_err.f90 y= ou >> > > have used the option -fdump-tree-original without making use of the >> > > tree dump. >> > > >> > > Mikael asked you to provide an executable test with -fcoarray=3Dsing= le. >> > > Is this not possible for some reason? >> > > >> > > Otherwise, this is OK for trunk. >> > > >> > > Thanks for the patch. >> > > >> > > Paul >> > > >> > > On 4 August 2016 at 05:07, Alessandro Fanfarillo >> > > wrote: >> > >> * PING * >> > >> >> > >> 2016-07-21 13:05 GMT-06:00 Alessandro Fanfarillo < >> > fanfarillo.gcc@gmail.com>: >> > >>> Dear Mikael and all, >> > >>> >> > >>> in attachment the new patch, built and regtested on >> > x86_64-pc-linux-gnu. >> > >>> >> > >>> Cheers, >> > >>> Alessandro >> > >>> >> > >>> 2016-07-20 13:17 GMT-06:00 Mikael Morin : >> > >>>> Le 20/07/2016 =C3=A0 11:39, Andre Vehreschild a =C3=A9crit : >> > >>>>> >> > >>>>> Hi Mikael, >> > >>>>> >> > >>>>> >> > >>>>>>> + if(st =3D=3D ST_FAIL_IMAGE) >> > >>>>>>> + new_st.op =3D EXEC_FAIL_IMAGE; >> > >>>>>>> + else >> > >>>>>>> + gcc_unreachable(); >> > >>>>>> >> > >>>>>> You can use >> > >>>>>> gcc_assert (st =3D=3D ST_FAIL_IMAGE); >> > >>>>>> foo...; >> > >>>>>> instead of >> > >>>>>> if (st =3D=3D ST_FAIL_IMAGE) >> > >>>>>> foo...; >> > >>>>>> else >> > >>>>>> gcc_unreachable (); >> > >>>>> >> > >>>>> >> > >>>>> Be careful, this is not 100% identical in the general case. For = older >> > >>>>> gcc version (gcc < 4008) gcc_assert() is mapped to nothing, esp.= not >> > to >> > >>>>> an abort(), so the behavior can change. But in this case everyth= ing >> > is >> > >>>>> fine, because the patch is most likely not backported. >> > >>>>> >> > >>>> Didn't know about this. The difference seems to be very subtle. >> > >>>> I don't mind much anyway. The original version can stay if prefer= red, >> > this >> > >>>> was just a suggestion. >> > >>>> >> > >>>> By the way, if the function is inlined in its single caller, the >> > assert or >> > >>>> unreachable statement can be removed, which avoids choosing betwe= en >> > them. >> > >>>> That's another suggestion. >> > >>>> >> > >>>> >> > >>>>>>> + >> > >>>>>>> + return MATCH_YES; >> > >>>>>>> + >> > >>>>>>> + syntax: >> > >>>>>>> + gfc_syntax_error (st); >> > >>>>>>> + >> > >>>>>>> + return MATCH_ERROR; >> > >>>>>>> +} >> > >>>>>>> + >> > >>>>>>> +match >> > >>>>>>> +gfc_match_fail_image (void) >> > >>>>>>> +{ >> > >>>>>>> + /* if (!gfc_notify_std (GFC_STD_F2008_TS, "FAIL IMAGE state= ment >> > >>>>>>> at %C")) */ >> > >>>>>>> + /* return MATCH_ERROR; */ >> > >>>>>>> + >> > >>>>>> >> > >>>>>> Can this be uncommented? >> > >>>>>> >> > >>>>>>> + return fail_image_statement (ST_FAIL_IMAGE); >> > >>>>>>> +} >> > >>>>>>> >> > >>>>>>> /* Match LOCK/UNLOCK statement. Syntax: >> > >>>>>>> LOCK ( lock-variable [ , lock-stat-list ] ) >> > >>>>>>> diff --git a/gcc/fortran/trans-intrinsic.c >> > >>>>>>> b/gcc/fortran/trans-intrinsic.c index 1aaf4e2..b2f5596 100644 >> > >>>>>>> --- a/gcc/fortran/trans-intrinsic.c >> > >>>>>>> +++ b/gcc/fortran/trans-intrinsic.c >> > >>>>>>> @@ -1647,6 +1647,24 @@ trans_this_image (gfc_se * se, gfc_expr >> > >>>>>>> *expr) m, lbound)); >> > >>>>>>> } >> > >>>>>>> >> > >>>>>>> +static void >> > >>>>>>> +gfc_conv_intrinsic_image_status (gfc_se *se, gfc_expr *expr) >> > >>>>>>> +{ >> > >>>>>>> + unsigned int num_args; >> > >>>>>>> + tree *args,tmp; >> > >>>>>>> + >> > >>>>>>> + num_args =3D gfc_intrinsic_argument_list_length (expr); >> > >>>>>>> + args =3D XALLOCAVEC (tree, num_args); >> > >>>>>>> + >> > >>>>>>> + gfc_conv_intrinsic_function_args (se, expr, args, num_args); >> > >>>>>>> + >> > >>>>>>> + if (flag_coarray =3D=3D GFC_FCOARRAY_LIB) >> > >>>>>>> + { >> > >>>>>> >> > >>>>>> Can everything be put under the if? >> > >>>>>> Does it work with -fcoarray=3Dsingle? >> > >>>>> >> > >>>>> >> > >>>>> IMO coarray=3Dsingle should not generate code here, therefore pu= tting >> > >>>>> everything under the if should to fine. >> > >>>>> >> > >>>> My point was more avoiding generating code for the arguments if t= hey >> > are not >> > >>>> used in the end. >> > >>>> Regarding the -fcoarray=3Dsingle case, the function returns a res= ult, >> > which >> > >>>> can be used in an expression, so I don't think it will work witho= ut >> > at least >> > >>>> hardcoding a fixed value as result in that case. >> > >>>> But even that wouldn't be enough, as the function wouldn't work >> > consistently >> > >>>> with the fail image statement. >> > >>>> >> > >>>>> Sorry for the comments ... >> > >>>>> >> > >>>> Comments are welcome here, as far as I know. ;-) >> > >>>> >> > >>>> Mikael >> > > >> > > >> > > >> > > -- >> > > The difference between genius and stupidity is; genius has its limit= s. >> > > >> > > Albert Einstein >> > > > > -- > Andre Vehreschild * Email: vehre ad gmx dot de --001a11419ed2f8ed68053d085db4 Content-Type: text/x-patch; charset=US-ASCII; name="first_complete_patch_REV3.diff" Content-Disposition: attachment; filename="first_complete_patch_REV3.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_itd7xdn60 Content-length: 38264 Y29tbWl0IGE1NzUwYzQ4MzU1NjY2ODc1MDVjMzRmNzM1NjJjN2NjM2IyMjA4 NDEKQXV0aG9yOiBBbGVzc2FuZHJvIEZhbmZhcmlsbG8gPGVsZmFuZmFAdWNh ci5lZHU+CkRhdGU6ICAgV2VkIFNlcCAyMSAxMjowMDo1MCAyMDE2IC0wNjAw CgogICAgVGhpcmQgcmV2aWV3IG9mIGZhaWxlZCBpbWFnZXMgcGF0Y2gKCmRp ZmYgLS1naXQgYS9nY2MvZm9ydHJhbi9jaGVjay5jIGIvZ2NjL2ZvcnRyYW4v Y2hlY2suYwppbmRleCBmZjVlODBiLi4xMTBiZWMwIDEwMDY0NAotLS0gYS9n Y2MvZm9ydHJhbi9jaGVjay5jCisrKyBiL2djYy9mb3J0cmFuL2NoZWNrLmMK QEAgLTEyMTcsNiArMTIxNyw4MiBAQCBnZmNfY2hlY2tfZXZlbnRfcXVlcnkg KGdmY19leHByICpldmVudCwgZ2ZjX2V4cHIgKmNvdW50LCBnZmNfZXhwciAq c3RhdCkKICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wKK2dmY19jaGVja19p bWFnZV9zdGF0dXMgKGdmY19leHByICppbWFnZSwgZ2ZjX2V4cHIgKnRlYW0p Cit7CisgIGlmICghdHlwZV9jaGVjayAoaW1hZ2UsIDEsIEJUX0lOVEVHRVIp KQorICAgIHJldHVybiBmYWxzZTsKKworICBpbnQgaSA9IGdmY192YWxpZGF0 ZV9raW5kIChCVF9JTlRFR0VSLCBpbWFnZS0+dHMua2luZCwgZmFsc2UpOwor ICBpbnQgaiA9IGdmY192YWxpZGF0ZV9raW5kIChCVF9JTlRFR0VSLCBnZmNf ZGVmYXVsdF9pbnRlZ2VyX2tpbmQsIGZhbHNlKTsKKworICBpZiAoZ2ZjX2lu dGVnZXJfa2luZHNbaV0ucmFuZ2UgPCBnZmNfaW50ZWdlcl9raW5kc1tqXS5y YW5nZSkKKyAgICB7CisgICAgICBnZmNfZXJyb3IgKCJJTUFHRSBhcmd1bWVu dCBvZiB0aGUgSU1BR0VfU1RBVFVTIGludHJpbnNpYyBmdW5jdGlvbiBhdCAl TCAiCisJCSAic2hhbGwgaGF2ZSBhdCBsZWFzdCB0aGUgcmFuZ2Ugb2YgdGhl IGRlZmF1bHQgaW50ZWdlciIsCisJCSAmaW1hZ2UtPndoZXJlKTsKKyAgICAg IHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgaiA9IGdmY192YWxpZGF0ZV9r aW5kIChCVF9JTlRFR0VSLCBnZmNfZGVmYXVsdF9pbnRlZ2VyX2tpbmQqMiwg ZmFsc2UpOworCisgIGlmIChnZmNfaW50ZWdlcl9raW5kc1tpXS5yYW5nZSA+ IGdmY19pbnRlZ2VyX2tpbmRzW2pdLnJhbmdlKQorICAgIHsKKyAgICAgIGdm Y19lcnJvciAoIklNQUdFIGFyZ3VtZW50IG9mIHRoZSBJTUFHRV9TVEFUVVMg aW50cmluc2ljIGZ1bmN0aW9uIGF0ICVMICIKKwkJICJzaGFsbCBoYXZlIGF0 IG1vc3QgdGhlIHJhbmdlIG9mIHRoZSBkb3VibGUgcHJlY2lzaW9uIGludGVn ZXIiLAorCQkgJmltYWdlLT53aGVyZSk7CisgICAgICByZXR1cm4gZmFsc2U7 CisgICAgfQorCisgIGlmICh0ZWFtKQorICAgIHsKKyAgICAgIGdmY19lcnJv ciAoIlRFQU0gYXJndW1lbnQgb2YgdGhlIElNQUdFX1NUQVRVUyBpbnRyaW5z aWMgZnVuY3Rpb24gYXQgJUwgIgorCQkgIm5vdCB5ZXQgc3VwcG9ydGVkIiwK KwkJICZ0ZWFtLT53aGVyZSk7CisgICAgICByZXR1cm4gZmFsc2U7CisgICAg fQorCisgIHJldHVybiB0cnVlOworfQorCitib29sCitnZmNfY2hlY2tfZmFp bGVkX2ltYWdlcyAoZ2ZjX2V4cHIgKnRlYW0sIGdmY19leHByICpraW5kKQor eworICBpZiAodGVhbSkKKyAgICB7CisgICAgICBnZmNfZXJyb3IgKCJURUFN IGFyZ3VtZW50IG9mIHRoZSBGQUlMRURfSU1BR0VTIGludHJpbnNpYyBmdW5j dGlvbiAiCisJCSAiYXQgJUwgbm90IHlldCBzdXBwb3J0ZWQiLCAmdGVhbS0+ d2hlcmUpOworICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICBpZiAo a2luZCkKKyAgICB7CisgICAgICBpbnQgaSA9IGdmY192YWxpZGF0ZV9raW5k IChCVF9JTlRFR0VSLCBraW5kLT50cy5raW5kLCBmYWxzZSk7CisgICAgICBp bnQgaiA9IGdmY192YWxpZGF0ZV9raW5kIChCVF9JTlRFR0VSLCBnZmNfZGVm YXVsdF9pbnRlZ2VyX2tpbmQsIGZhbHNlKTsKKworICAgICAgaWYgKGdmY19p bnRlZ2VyX2tpbmRzW2ldLnJhbmdlIDwgZ2ZjX2ludGVnZXJfa2luZHNbal0u cmFuZ2UpCisJeworCSAgZ2ZjX2Vycm9yICgiS0lORCBhcmd1bWVudCBvZiB0 aGUgRkFJTEVEX0lNQUdFUyBpbnRyaW5zaWMgZnVuY3Rpb24gIgorCQkgICAg ICJhdCAlTCBzaGFsbCBoYXZlIGF0IGxlYXN0IHRoZSByYW5nZSAiCisJCSAg ICAgIm9mIHRoZSBkZWZhdWx0IGludGVnZXIiLCAma2luZC0+d2hlcmUpOwor CSAgcmV0dXJuIGZhbHNlOworCX0KKworICAgICAgaiA9IGdmY192YWxpZGF0 ZV9raW5kIChCVF9JTlRFR0VSLCBnZmNfZGVmYXVsdF9pbnRlZ2VyX2tpbmQq MiwgZmFsc2UpOworCisgICAgICBpZiAoZ2ZjX2ludGVnZXJfa2luZHNbaV0u cmFuZ2UgPiBnZmNfaW50ZWdlcl9raW5kc1tqXS5yYW5nZSkKKwl7CisJICBn ZmNfZXJyb3IgKCJLSU5EIGFyZ3VtZW50IG9mIHRoZSBGQUlMRURfSU1BR0VT ICIKKwkJICAgICAiaW50cmluc2ljIGZ1bmN0aW9uIGF0ICVMIHNoYWxsIGhh dmUgYXQgbW9zdCB0aGUgIgorCQkgICAgICJyYW5nZSBvZiB0aGUgZG91Ymxl IHByZWNpc2lvbiBpbnRlZ2VyIiwKKwkJICAgICAma2luZC0+d2hlcmUpOwor CSAgcmV0dXJuIGZhbHNlOworCX0KKyAgICB9CisKKyAgcmV0dXJuIHRydWU7 Cit9CisKIAogYm9vbAogZ2ZjX2NoZWNrX2F0b21pY19mZXRjaF9vcCAoZ2Zj X2V4cHIgKmF0b20sIGdmY19leHByICp2YWx1ZSwgZ2ZjX2V4cHIgKm9sZCwK ZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL2R1bXAtcGFyc2UtdHJlZS5jIGIv Z2NjL2ZvcnRyYW4vZHVtcC1wYXJzZS10cmVlLmMKaW5kZXggOGMyNDA3NC4u ZTczMTkxNiAxMDA2NDQKLS0tIGEvZ2NjL2ZvcnRyYW4vZHVtcC1wYXJzZS10 cmVlLmMKKysrIGIvZ2NjL2ZvcnRyYW4vZHVtcC1wYXJzZS10cmVlLmMKQEAg LTE2MzYsNiArMTYzNiw5IEBAIHNob3dfY29kZV9ub2RlIChpbnQgbGV2ZWws IGdmY19jb2RlICpjKQogCiAgICAgICBicmVhazsKIAorICAgIGNhc2UgRVhF Q19GQUlMX0lNQUdFOgorICAgICAgZnB1dHMgKCJGQUlMIElNQUdFICIsIGR1 bXBmaWxlKTsKKwogICAgIGNhc2UgRVhFQ19TWU5DX0FMTDoKICAgICAgIGZw dXRzICgiU1lOQyBBTEwgIiwgZHVtcGZpbGUpOwogICAgICAgaWYgKGMtPmV4 cHIyICE9IE5VTEwpCmRpZmYgLS1naXQgYS9nY2MvZm9ydHJhbi9nZm9ydHJh bi5oIGIvZ2NjL2ZvcnRyYW4vZ2ZvcnRyYW4uaAppbmRleCBjM2ZiNmVkLi5j NjE3MzQwIDEwMDY0NAotLS0gYS9nY2MvZm9ydHJhbi9nZm9ydHJhbi5oCisr KyBiL2djYy9mb3J0cmFuL2dmb3J0cmFuLmgKQEAgLTI1NSw3ICsyNTUsNyBA QCBlbnVtIGdmY19zdGF0ZW1lbnQKICAgU1RfT01QX0VORF9UQVJHRVRfVEVB TVNfRElTVFJJQlVURV9QQVJBTExFTF9ET19TSU1ELAogICBTVF9QUk9DRURV UkUsIFNUX0dFTkVSSUMsIFNUX0NSSVRJQ0FMLCBTVF9FTkRfQ1JJVElDQUws CiAgIFNUX0dFVF9GQ05fQ0hBUkFDVEVSSVNUSUNTLCBTVF9MT0NLLCBTVF9V TkxPQ0ssIFNUX0VWRU5UX1BPU1QsCi0gIFNUX0VWRU5UX1dBSVQsU1RfTk9O RQorICBTVF9FVkVOVF9XQUlULFNUX0ZBSUxfSU1BR0UsU1RfTk9ORQogfTsK IAogLyogVHlwZXMgb2YgaW50ZXJmYWNlcyB0aGF0IHdlIGNhbiBoYXZlLiAg QXNzaWdubWVudCBpbnRlcmZhY2VzIGFyZQpAQCAtNDIwLDYgKzQyMCw3IEBA IGVudW0gZ2ZjX2lzeW1faWQKICAgR0ZDX0lTWU1fRVhQLAogICBHRkNfSVNZ TV9FWFBPTkVOVCwKICAgR0ZDX0lTWU1fRVhURU5EU19UWVBFX09GLAorICBH RkNfSVNZTV9GQUlMRURfSU1BR0VTLAogICBHRkNfSVNZTV9GREFURSwKICAg R0ZDX0lTWU1fRkVfUlVOVElNRV9FUlJPUiwKICAgR0ZDX0lTWU1fRkdFVCwK QEAgLTQ2Myw2ICs0NjQsNyBAQCBlbnVtIGdmY19pc3ltX2lkCiAgIEdGQ19J U1lNX0lFT1IsCiAgIEdGQ19JU1lNX0lFUlJOTywKICAgR0ZDX0lTWU1fSU1B R0VfSU5ERVgsCisgIEdGQ19JU1lNX0lNQUdFX1NUQVRVUywKICAgR0ZDX0lT WU1fSU5ERVgsCiAgIEdGQ19JU1lNX0lOVCwKICAgR0ZDX0lTWU1fSU5UMiwK QEAgLTIzOTUsNyArMjM5Nyw3IEBAIGVudW0gZ2ZjX2V4ZWNfb3AKICAgRVhF Q19PUEVOLCBFWEVDX0NMT1NFLCBFWEVDX1dBSVQsCiAgIEVYRUNfUkVBRCwg RVhFQ19XUklURSwgRVhFQ19JT0xFTkdUSCwgRVhFQ19UUkFOU0ZFUiwgRVhF Q19EVF9FTkQsCiAgIEVYRUNfQkFDS1NQQUNFLCBFWEVDX0VOREZJTEUsIEVY RUNfSU5RVUlSRSwgRVhFQ19SRVdJTkQsIEVYRUNfRkxVU0gsCi0gIEVYRUNf TE9DSywgRVhFQ19VTkxPQ0ssIEVYRUNfRVZFTlRfUE9TVCwgRVhFQ19FVkVO VF9XQUlULAorICBFWEVDX0xPQ0ssIEVYRUNfVU5MT0NLLCBFWEVDX0VWRU5U X1BPU1QsIEVYRUNfRVZFTlRfV0FJVCwgRVhFQ19GQUlMX0lNQUdFLAogICBF WEVDX09BQ0NfS0VSTkVMU19MT09QLCBFWEVDX09BQ0NfUEFSQUxMRUxfTE9P UCwgRVhFQ19PQUNDX1JPVVRJTkUsCiAgIEVYRUNfT0FDQ19QQVJBTExFTCwg RVhFQ19PQUNDX0tFUk5FTFMsIEVYRUNfT0FDQ19EQVRBLCBFWEVDX09BQ0Nf SE9TVF9EQVRBLAogICBFWEVDX09BQ0NfTE9PUCwgRVhFQ19PQUNDX1VQREFU RSwgRVhFQ19PQUNDX1dBSVQsIEVYRUNfT0FDQ19DQUNIRSwKZGlmZiAtLWdp dCBhL2djYy9mb3J0cmFuL2ludHJpbnNpYy5jIGIvZ2NjL2ZvcnRyYW4vaW50 cmluc2ljLmMKaW5kZXggY2FkNTRiOC4uYWMwZGQ1ZSAxMDA2NDQKLS0tIGEv Z2NjL2ZvcnRyYW4vaW50cmluc2ljLmMKKysrIGIvZ2NjL2ZvcnRyYW4vaW50 cmluc2ljLmMKQEAgLTE4NDAsNiArMTg0MCwxMiBAQCBhZGRfZnVuY3Rpb25z ICh2b2lkKQogCSAgICAgYSwgQlRfVU5LTk9XTiwgMCwgUkVRVUlSRUQsCiAJ ICAgICBtbywgQlRfVU5LTk9XTiwgMCwgUkVRVUlSRUQpOwogCisgIGFkZF9z eW1fMiAoImZhaWxlZF9pbWFnZXMiLCBHRkNfSVNZTV9GQUlMRURfSU1BR0VT LCBDTEFTU19UUkFOU0ZPUk1BVElPTkFMLAorCSAgICAgQUNUVUFMX05PLCBC VF9JTlRFR0VSLCBkZCwgR0ZDX1NURF9GMjAwOF9UUywKKwkgICAgIGdmY19j aGVja19mYWlsZWRfaW1hZ2VzLCBnZmNfc2ltcGxpZnlfZmFpbGVkX2ltYWdl cywKKwkgICAgIGdmY19yZXNvbHZlX2ZhaWxlZF9pbWFnZXMsICJ0ZWFtIiwg QlRfSU5URUdFUiwgZGksIE9QVElPTkFMLAorCSAgICAgImtpbmQiLCBCVF9J TlRFR0VSLCBkaSwgT1BUSU9OQUwpOworCiAgIGFkZF9zeW1fMCAoImZkYXRl IiwgIEdGQ19JU1lNX0ZEQVRFLCBDTEFTU19JTVBVUkUsIEFDVFVBTF9OTywg QlRfQ0hBUkFDVEVSLAogCSAgICAgZGMsIEdGQ19TVERfR05VLCBOVUxMLCBO VUxMLCBnZmNfcmVzb2x2ZV9mZGF0ZSk7CiAKQEAgLTIwODEsNiArMjA4Nywx MSBAQCBhZGRfZnVuY3Rpb25zICh2b2lkKQogCSAgICAgZ2ZjX2NoZWNrX2lt YWdlX2luZGV4LCBnZmNfc2ltcGxpZnlfaW1hZ2VfaW5kZXgsIGdmY19yZXNv bHZlX2ltYWdlX2luZGV4LAogCSAgICAgY2EsIEJUX1JFQUwsIGRyLCBSRVFV SVJFRCwgc3ViLCBCVF9JTlRFR0VSLCBpaSwgUkVRVUlSRUQpOwogCisgIGFk ZF9zeW1fMiAoImltYWdlX3N0YXR1cyIsIEdGQ19JU1lNX0lNQUdFX1NUQVRV UywgQ0xBU1NfRUxFTUVOVEFMLCBBQ1RVQUxfTk8sCisJICAgICBCVF9JTlRF R0VSLCBkaSwgR0ZDX1NURF9GMjAwOF9UUywgZ2ZjX2NoZWNrX2ltYWdlX3N0 YXR1cywKKwkgICAgIGdmY19zaW1wbGlmeV9pbWFnZV9zdGF0dXMsIGdmY19y ZXNvbHZlX2ltYWdlX3N0YXR1cywgImltYWdlIiwKKwkgICAgIEJUX0lOVEVH RVIsIGRpLCBSRVFVSVJFRCwgInRlYW0iLCBCVF9JTlRFR0VSLCBkaSwgT1BU SU9OQUwpOworCiAgIC8qIFRoZSByZXNvbHV0aW9uIGZ1bmN0aW9uIGZvciBJ TkRFWCBpcyBjYWxsZWQgZ2ZjX3Jlc29sdmVfaW5kZXhfZnVuYwogICAgICBi ZWNhdXNlIHRoZSBuYW1lIGdmY19yZXNvbHZlX2luZGV4IGlzIGFscmVhZHkg dXNlZCBpbiByZXNvbHZlLmMuICAqLwogICBhZGRfc3ltXzQgKCJpbmRleCIs IEdGQ19JU1lNX0lOREVYLCBDTEFTU19FTEVNRU5UQUwsIEFDVFVBTF9ZRVMs CmRpZmYgLS1naXQgYS9nY2MvZm9ydHJhbi9pbnRyaW5zaWMuaCBiL2djYy9m b3J0cmFuL2ludHJpbnNpYy5oCmluZGV4IGYyMjg5NzYuLmFlNDg4ZTggMTAw NjQ0Ci0tLSBhL2djYy9mb3J0cmFuL2ludHJpbnNpYy5oCisrKyBiL2djYy9m b3J0cmFuL2ludHJpbnNpYy5oCkBAIC03MSw2ICs3MSw3IEBAIGJvb2wgZ2Zj X2NoZWNrX2RzaGlmdCAoZ2ZjX2V4cHIgKiwgZ2ZjX2V4cHIgKiwgZ2ZjX2V4 cHIgKik7CiBib29sIGdmY19jaGVja19lb3NoaWZ0IChnZmNfZXhwciAqLCBn ZmNfZXhwciAqLCBnZmNfZXhwciAqLCBnZmNfZXhwciAqKTsKIGJvb2wgZ2Zj X2NoZWNrX2R0aW1lX2V0aW1lIChnZmNfZXhwciAqKTsKIGJvb2wgZ2ZjX2No ZWNrX2V2ZW50X3F1ZXJ5IChnZmNfZXhwciAqLCBnZmNfZXhwciAqLCBnZmNf ZXhwciAqKTsKK2Jvb2wgZ2ZjX2NoZWNrX2ZhaWxlZF9pbWFnZXMgKGdmY19l eHByICosIGdmY19leHByICopOwogYm9vbCBnZmNfY2hlY2tfZmdldHB1dGMg KGdmY19leHByICosIGdmY19leHByICopOwogYm9vbCBnZmNfY2hlY2tfZmdl dHB1dCAoZ2ZjX2V4cHIgKik7CiBib29sIGdmY19jaGVja19mbG9hdCAoZ2Zj X2V4cHIgKik7CkBAIC05Miw2ICs5Myw3IEBAIGJvb2wgZ2ZjX2NoZWNrX2li aXRzIChnZmNfZXhwciAqLCBnZmNfZXhwciAqLCBnZmNfZXhwciAqKTsKIGJv b2wgZ2ZjX2NoZWNrX2ljaGFyX2lhY2hhciAoZ2ZjX2V4cHIgKiwgZ2ZjX2V4 cHIgKik7CiBib29sIGdmY19jaGVja19pZG5pbnQgKGdmY19leHByICopOwog Ym9vbCBnZmNfY2hlY2tfaWVvciAoZ2ZjX2V4cHIgKiwgZ2ZjX2V4cHIgKik7 Citib29sIGdmY19jaGVja19pbWFnZV9zdGF0dXMgKGdmY19leHByICosIGdm Y19leHByICopOwogYm9vbCBnZmNfY2hlY2tfaW5kZXggKGdmY19leHByICos IGdmY19leHByICosIGdmY19leHByICosIGdmY19leHByICopOwogYm9vbCBn ZmNfY2hlY2tfaW50IChnZmNfZXhwciAqLCBnZmNfZXhwciAqKTsKIGJvb2wg Z2ZjX2NoZWNrX2ludGNvbnYgKGdmY19leHByICopOwpAQCAtMjg5LDYgKzI5 MSw3IEBAIGdmY19leHByICpnZmNfc2ltcGxpZnlfZXJmY19zY2FsZWQgKGdm Y19leHByICopOwogZ2ZjX2V4cHIgKmdmY19zaW1wbGlmeV9leHAgKGdmY19l eHByICopOwogZ2ZjX2V4cHIgKmdmY19zaW1wbGlmeV9leHBvbmVudCAoZ2Zj X2V4cHIgKik7CiBnZmNfZXhwciAqZ2ZjX3NpbXBsaWZ5X2V4dGVuZHNfdHlw ZV9vZiAoZ2ZjX2V4cHIgKiwgZ2ZjX2V4cHIgKik7CitnZmNfZXhwciAqZ2Zj X3NpbXBsaWZ5X2ZhaWxlZF9pbWFnZXMgKGdmY19leHByICosIGdmY19leHBy ICopOwogZ2ZjX2V4cHIgKmdmY19zaW1wbGlmeV9mbG9hdCAoZ2ZjX2V4cHIg Kik7CiBnZmNfZXhwciAqZ2ZjX3NpbXBsaWZ5X2Zsb29yIChnZmNfZXhwciAq LCBnZmNfZXhwciAqKTsKIGdmY19leHByICpnZmNfc2ltcGxpZnlfZnJhY3Rp b24gKGdmY19leHByICopOwpAQCAtMzA1LDYgKzMwOCw3IEBAIGdmY19leHBy ICpnZmNfc2ltcGxpZnlfaWJzZXQgKGdmY19leHByICosIGdmY19leHByICop OwogZ2ZjX2V4cHIgKmdmY19zaW1wbGlmeV9pY2hhciAoZ2ZjX2V4cHIgKiwg Z2ZjX2V4cHIgKik7CiBnZmNfZXhwciAqZ2ZjX3NpbXBsaWZ5X2llb3IgKGdm Y19leHByICosIGdmY19leHByICopOwogZ2ZjX2V4cHIgKmdmY19zaW1wbGlm eV9pbWFnZV9pbmRleCAoZ2ZjX2V4cHIgKiwgZ2ZjX2V4cHIgKik7CitnZmNf ZXhwciAqZ2ZjX3NpbXBsaWZ5X2ltYWdlX3N0YXR1cyAoZ2ZjX2V4cHIgKiwg Z2ZjX2V4cHIgKik7CiBnZmNfZXhwciAqZ2ZjX3NpbXBsaWZ5X2luZGV4IChn ZmNfZXhwciAqLCBnZmNfZXhwciAqLCBnZmNfZXhwciAqLCBnZmNfZXhwciAq KTsKIGdmY19leHByICpnZmNfc2ltcGxpZnlfaW50IChnZmNfZXhwciAqLCBn ZmNfZXhwciAqKTsKIGdmY19leHByICpnZmNfc2ltcGxpZnlfaW50MiAoZ2Zj X2V4cHIgKik7CkBAIC00NjcsNiArNDcxLDcgQEAgdm9pZCBnZmNfcmVzb2x2 ZV9ldmVudF9xdWVyeSAoZ2ZjX2NvZGUgKik7CiB2b2lkIGdmY19yZXNvbHZl X2V4cCAoZ2ZjX2V4cHIgKiwgZ2ZjX2V4cHIgKik7CiB2b2lkIGdmY19yZXNv bHZlX2V4cG9uZW50IChnZmNfZXhwciAqLCBnZmNfZXhwciAqKTsKIHZvaWQg Z2ZjX3Jlc29sdmVfZXh0ZW5kc190eXBlX29mIChnZmNfZXhwciAqLCBnZmNf ZXhwciAqLCBnZmNfZXhwciAqKTsKK3ZvaWQgZ2ZjX3Jlc29sdmVfZmFpbGVk X2ltYWdlcyAoZ2ZjX2V4cHIgKiwgZ2ZjX2V4cHIgKiwgZ2ZjX2V4cHIgKik7 CiB2b2lkIGdmY19yZXNvbHZlX2ZkYXRlIChnZmNfZXhwciAqKTsKIHZvaWQg Z2ZjX3Jlc29sdmVfZmxvb3IgKGdmY19leHByICosIGdmY19leHByICosIGdm Y19leHByICopOwogdm9pZCBnZmNfcmVzb2x2ZV9mbnVtIChnZmNfZXhwciAq LCBnZmNfZXhwciAqKTsKQEAgLTQ5MCw2ICs0OTUsNyBAQCB2b2lkIGdmY19y ZXNvbHZlX2liY2xyIChnZmNfZXhwciAqLCBnZmNfZXhwciAqLCBnZmNfZXhw ciAqKTsKIHZvaWQgZ2ZjX3Jlc29sdmVfaWJpdHMgKGdmY19leHByICosIGdm Y19leHByICosIGdmY19leHByICosIGdmY19leHByICopOwogdm9pZCBnZmNf cmVzb2x2ZV9pYnNldCAoZ2ZjX2V4cHIgKiwgZ2ZjX2V4cHIgKiwgZ2ZjX2V4 cHIgKik7CiB2b2lkIGdmY19yZXNvbHZlX2ltYWdlX2luZGV4IChnZmNfZXhw ciAqLCBnZmNfZXhwciAqLCBnZmNfZXhwciAqKTsKK3ZvaWQgZ2ZjX3Jlc29s dmVfaW1hZ2Vfc3RhdHVzIChnZmNfZXhwciAqLCBnZmNfZXhwciAqLCBnZmNf ZXhwciAqKTsKIHZvaWQgZ2ZjX3Jlc29sdmVfaW5kZXhfZnVuYyAoZ2ZjX2V4 cHIgKiwgZ2ZjX2V4cHIgKiwgZ2ZjX2V4cHIgKiwgZ2ZjX2V4cHIgKiwKIAkJ CSAgICAgZ2ZjX2V4cHIgKik7CiB2b2lkIGdmY19yZXNvbHZlX2llcnJubyAo Z2ZjX2V4cHIgKik7CmRpZmYgLS1naXQgYS9nY2MvZm9ydHJhbi9pcmVzb2x2 ZS5jIGIvZ2NjL2ZvcnRyYW4vaXJlc29sdmUuYwppbmRleCBlY2VhMWMzLi5k YzA1Y2QzIDEwMDY0NAotLS0gYS9nY2MvZm9ydHJhbi9pcmVzb2x2ZS5jCisr KyBiL2djYy9mb3J0cmFuL2lyZXNvbHZlLmMKQEAgLTI1NzcsNiArMjU3Nywz MCBAQCBnZmNfcmVzb2x2ZV90YW5oIChnZmNfZXhwciAqZiwgZ2ZjX2V4cHIg KngpCiAgICAgPSBnZmNfZ2V0X3N0cmluZyAoIl9fdGFuaF8lYyVkIiwgZ2Zj X3R5cGVfbGV0dGVyICh4LT50cy50eXBlKSwgeC0+dHMua2luZCk7CiB9CiAK K3ZvaWQKK2dmY19yZXNvbHZlX2ZhaWxlZF9pbWFnZXMgKGdmY19leHByICpm LCBnZmNfZXhwciAqdGVhbSBBVFRSSUJVVEVfVU5VU0VELAorCQkJICAgZ2Zj X2V4cHIgKmtpbmQpCit7CisgIHN0YXRpYyBjaGFyIGZhaWxlZF9pbWFnZXNb XSA9ICJfZ2ZvcnRyYW5fY2FmX2ZhaWxlZF9pbWFnZXMiOworICBmLT5yYW5r ID0gMTsKKyAgZi0+dHMudHlwZSA9IEJUX0lOVEVHRVI7CisgIGlmIChraW5k ID09IE5VTEwpCisgICAgZi0+dHMua2luZCA9IGdmY19kZWZhdWx0X2ludGVn ZXJfa2luZDsKKyAgZWxzZQorICAgIGYtPnRzLmtpbmQgPSBraW5kLT50cy5r aW5kOworICBmLT52YWx1ZS5mdW5jdGlvbi5uYW1lID0gZmFpbGVkX2ltYWdl czsKK30KKwordm9pZAorZ2ZjX3Jlc29sdmVfaW1hZ2Vfc3RhdHVzIChnZmNf ZXhwciAqZiwgZ2ZjX2V4cHIgKmltYWdlLAorCQkJICBnZmNfZXhwciAqdGVh bSBBVFRSSUJVVEVfVU5VU0VEKQoreworICBzdGF0aWMgY2hhciBpbWFnZV9z dGF0dXNbXSA9ICJfZ2ZvcnRyYW5fY2FmX2ltYWdlX3N0YXR1cyI7CisgIGYt PnRzLnR5cGUgPSBCVF9JTlRFR0VSOworICBmLT50cy5raW5kID0gZ2ZjX2Rl ZmF1bHRfaW50ZWdlcl9raW5kOworICBmLT50cyA9IGltYWdlLT50czsKKyAg Zi0+dmFsdWUuZnVuY3Rpb24ubmFtZSA9IGltYWdlX3N0YXR1czsKK30KIAog dm9pZAogZ2ZjX3Jlc29sdmVfaW1hZ2VfaW5kZXggKGdmY19leHByICpmLCBn ZmNfZXhwciAqYXJyYXkgQVRUUklCVVRFX1VOVVNFRCwKZGlmZiAtLWdpdCBh L2djYy9mb3J0cmFuL2xpYmdmb3J0cmFuLmggYi9nY2MvZm9ydHJhbi9saWJn Zm9ydHJhbi5oCmluZGV4IGU5MTMyNTAuLmYwMGVkODMgMTAwNjQ0Ci0tLSBh L2djYy9mb3J0cmFuL2xpYmdmb3J0cmFuLmgKKysrIGIvZ2NjL2ZvcnRyYW4v bGliZ2ZvcnRyYW4uaApAQCAtMTIzLDcgKzEyMyw3IEBAIHR5cGVkZWYgZW51 bQogICBHRkNfU1RBVF9MT0NLRUQsCiAgIEdGQ19TVEFUX0xPQ0tFRF9PVEhF Ul9JTUFHRSwKICAgR0ZDX1NUQVRfU1RPUFBFRF9JTUFHRSA9IDYwMDAsIC8q IFNlZSBMSUJFUlJPUl9JTlFVSVJFX0lOVEVSTkFMX1VOSVQgYWJvdmUuICov Ci0gIEdGQ19TVEFUX0ZBSUxFRF9JTUFHRQorICBHRkNfU1RBVF9GQUlMRURf SU1BR0UgPSA2MDAxCiB9CiBsaWJnZm9ydHJhbl9zdGF0X2NvZGVzOwogCmRp ZmYgLS1naXQgYS9nY2MvZm9ydHJhbi9tYXRjaC5jIGIvZ2NjL2ZvcnRyYW4v bWF0Y2guYwppbmRleCA5MDU2Y2I3Li44OTE2NzY3IDEwMDY0NAotLS0gYS9n Y2MvZm9ydHJhbi9tYXRjaC5jCisrKyBiL2djYy9mb3J0cmFuL21hdGNoLmMK QEAgLTE2MDAsNiArMTYwMCw3IEBAIGdmY19tYXRjaF9pZiAoZ2ZjX3N0YXRl bWVudCAqaWZfdHlwZSkKICAgbWF0Y2ggKCJldmVudCBwb3N0IiwgZ2ZjX21h dGNoX2V2ZW50X3Bvc3QsIFNUX0VWRU5UX1BPU1QpCiAgIG1hdGNoICgiZXZl bnQgd2FpdCIsIGdmY19tYXRjaF9ldmVudF93YWl0LCBTVF9FVkVOVF9XQUlU KQogICBtYXRjaCAoImV4aXQiLCBnZmNfbWF0Y2hfZXhpdCwgU1RfRVhJVCkK KyAgbWF0Y2ggKCJmYWlsIGltYWdlIiwgZ2ZjX21hdGNoX2ZhaWxfaW1hZ2Us IFNUX0ZBSUxfSU1BR0UpCiAgIG1hdGNoICgiZmx1c2giLCBnZmNfbWF0Y2hf Zmx1c2gsIFNUX0ZMVVNIKQogICBtYXRjaCAoImZvcmFsbCIsIG1hdGNoX3Np bXBsZV9mb3JhbGwsIFNUX0ZPUkFMTCkKICAgbWF0Y2ggKCJnbyB0byIsIGdm Y19tYXRjaF9nb3RvLCBTVF9HT1RPKQpAQCAtMzA3OSw2ICszMDgwLDM0IEBA IGdmY19tYXRjaF9ldmVudF93YWl0ICh2b2lkKQogICByZXR1cm4gZXZlbnRf c3RhdGVtZW50IChTVF9FVkVOVF9XQUlUKTsKIH0KIAorLyogTWF0Y2ggYSBG QUlMIElNQUdFIHN0YXRlbWVudC4gICovCisKK3N0YXRpYyBtYXRjaAorZmFp bF9pbWFnZV9zdGF0ZW1lbnQgKGdmY19zdGF0ZW1lbnQgc3QpCit7CisgIGlm IChnZmNfbWF0Y2hfY2hhciAoJygnKSA9PSBNQVRDSF9ZRVMpCisgICAgZ290 byBzeW50YXg7CisKKyAgZ2NjX2Fzc2VydCAoc3QgPT0gU1RfRkFJTF9JTUFH RSk7CisKKyAgbmV3X3N0Lm9wID0gRVhFQ19GQUlMX0lNQUdFOworCisgIHJl dHVybiBNQVRDSF9ZRVM7CisKKyBzeW50YXg6CisgIGdmY19zeW50YXhfZXJy b3IgKHN0KTsKKworICByZXR1cm4gTUFUQ0hfRVJST1I7Cit9CisKK21hdGNo CitnZmNfbWF0Y2hfZmFpbF9pbWFnZSAodm9pZCkKK3sKKyAgaWYgKCFnZmNf bm90aWZ5X3N0ZCAoR0ZDX1NURF9GMjAwOF9UUywgIkZBSUwgSU1BR0Ugc3Rh dGVtZW50IGF0ICVDIikpCisgICAgcmV0dXJuIE1BVENIX0VSUk9SOworCisg IHJldHVybiBmYWlsX2ltYWdlX3N0YXRlbWVudCAoU1RfRkFJTF9JTUFHRSk7 Cit9CiAKIC8qIE1hdGNoIExPQ0svVU5MT0NLIHN0YXRlbWVudC4gU3ludGF4 OgogICAgICBMT0NLICggbG9jay12YXJpYWJsZSBbICwgbG9jay1zdGF0LWxp c3QgXSApCmRpZmYgLS1naXQgYS9nY2MvZm9ydHJhbi9tYXRjaC5oIGIvZ2Nj L2ZvcnRyYW4vbWF0Y2guaAppbmRleCAzNDhjYTcwLi40ZTRiODMzIDEwMDY0 NAotLS0gYS9nY2MvZm9ydHJhbi9tYXRjaC5oCisrKyBiL2djYy9mb3J0cmFu L21hdGNoLmgKQEAgLTcyLDYgKzcyLDcgQEAgbWF0Y2ggZ2ZjX21hdGNoX2Vs c2UgKHZvaWQpOwogbWF0Y2ggZ2ZjX21hdGNoX2Vsc2VpZiAodm9pZCk7CiBt YXRjaCBnZmNfbWF0Y2hfZXZlbnRfcG9zdCAodm9pZCk7CiBtYXRjaCBnZmNf bWF0Y2hfZXZlbnRfd2FpdCAodm9pZCk7CittYXRjaCBnZmNfbWF0Y2hfZmFp bF9pbWFnZSAodm9pZCk7CiBtYXRjaCBnZmNfbWF0Y2hfY3JpdGljYWwgKHZv aWQpOwogbWF0Y2ggZ2ZjX21hdGNoX2Jsb2NrICh2b2lkKTsKIG1hdGNoIGdm Y19tYXRjaF9hc3NvY2lhdGUgKHZvaWQpOwpkaWZmIC0tZ2l0IGEvZ2NjL2Zv cnRyYW4vcGFyc2UuYyBiL2djYy9mb3J0cmFuL3BhcnNlLmMKaW5kZXggZDc4 YTJjMC4uMzcyMjA3NSAxMDA2NDQKLS0tIGEvZ2NjL2ZvcnRyYW4vcGFyc2Uu YworKysgYi9nY2MvZm9ydHJhbi9wYXJzZS5jCkBAIC00ODMsNiArNDgzLDcg QEAgZGVjb2RlX3N0YXRlbWVudCAodm9pZCkKICAgICAgIGJyZWFrOwogCiAg ICAgY2FzZSAnZic6CisgICAgICBtYXRjaCAoImZhaWwgaW1hZ2UiLCBnZmNf bWF0Y2hfZmFpbF9pbWFnZSwgU1RfRkFJTF9JTUFHRSk7CiAgICAgICBtYXRj aCAoImZpbmFsIiwgZ2ZjX21hdGNoX2ZpbmFsX2RlY2wsIFNUX0ZJTkFMKTsK ICAgICAgIG1hdGNoICgiZmx1c2giLCBnZmNfbWF0Y2hfZmx1c2gsIFNUX0ZM VVNIKTsKICAgICAgIG1hdGNoICgiZm9ybWF0IiwgZ2ZjX21hdGNoX2Zvcm1h dCwgU1RfRk9STUFUKTsKQEAgLTE0MTksNyArMTQyMCw3IEBAIG5leHRfc3Rh dGVtZW50ICh2b2lkKQogICBjYXNlIFNUX09NUF9DQU5DRUw6IGNhc2UgU1Rf T01QX0NBTkNFTExBVElPTl9QT0lOVDogXAogICBjYXNlIFNUX09NUF9UQVJH RVRfVVBEQVRFOiBjYXNlIFNUX0VSUk9SX1NUT1A6IGNhc2UgU1RfU1lOQ19B TEw6IFwKICAgY2FzZSBTVF9TWU5DX0lNQUdFUzogY2FzZSBTVF9TWU5DX01F TU9SWTogY2FzZSBTVF9MT0NLOiBjYXNlIFNUX1VOTE9DSzogXAotICBjYXNl IFNUX0VWRU5UX1BPU1Q6IGNhc2UgU1RfRVZFTlRfV0FJVDogXAorICBjYXNl IFNUX0VWRU5UX1BPU1Q6IGNhc2UgU1RfRVZFTlRfV0FJVDogY2FzZSBTVF9G QUlMX0lNQUdFOiBcCiAgIGNhc2UgU1RfT0FDQ19VUERBVEU6IGNhc2UgU1Rf T0FDQ19XQUlUOiBjYXNlIFNUX09BQ0NfQ0FDSEU6IFwKICAgY2FzZSBTVF9P QUNDX0VOVEVSX0RBVEE6IGNhc2UgU1RfT0FDQ19FWElUX0RBVEEKIApAQCAt MTc0NSw2ICsxNzQ2LDkgQEAgZ2ZjX2FzY2lpX3N0YXRlbWVudCAoZ2ZjX3N0 YXRlbWVudCBzdCkKICAgICBjYXNlIFNUX0VWRU5UX1dBSVQ6CiAgICAgICBw ID0gIkVWRU5UIFdBSVQiOwogICAgICAgYnJlYWs7CisgICAgY2FzZSBTVF9G QUlMX0lNQUdFOgorICAgICAgcCA9ICJGQUlMIElNQUdFIjsKKyAgICAgIGJy ZWFrOwogICAgIGNhc2UgU1RfRU5EX0FTU09DSUFURToKICAgICAgIHAgPSAi RU5EIEFTU09DSUFURSI7CiAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL2dj Yy9mb3J0cmFuL3Jlc29sdmUuYyBiL2djYy9mb3J0cmFuL3Jlc29sdmUuYwpp bmRleCAxMWI2YTE0Li41N2M3NTlhIDEwMDY0NAotLS0gYS9nY2MvZm9ydHJh bi9yZXNvbHZlLmMKKysrIGIvZ2NjL2ZvcnRyYW4vcmVzb2x2ZS5jCkBAIC04 ODU5LDYgKzg4NTksMTEgQEAgZmluZF9yZWFjaGFibGVfbGFiZWxzIChnZmNf Y29kZSAqYmxvY2spCiAgICAgfQogfQogCitzdGF0aWMgdm9pZAorcmVzb2x2 ZV9mYWlsX2ltYWdlIChnZmNfY29kZSAqY29kZSBBVFRSSUJVVEVfVU5VU0VE KQoreworICByZXR1cm47Cit9CiAKIHN0YXRpYyB2b2lkCiByZXNvbHZlX2xv Y2tfdW5sb2NrX2V2ZW50IChnZmNfY29kZSAqY29kZSkKQEAgLTEwNjA3LDYg KzEwNjEyLDEwIEBAIHN0YXJ0OgogCSAgcmVzb2x2ZV9sb2NrX3VubG9ja19l dmVudCAoY29kZSk7CiAJICBicmVhazsKIAorCWNhc2UgRVhFQ19GQUlMX0lN QUdFOgorCSAgcmVzb2x2ZV9mYWlsX2ltYWdlIChjb2RlKTsKKwkgIGJyZWFr OworCiAJY2FzZSBFWEVDX0VOVFJZOgogCSAgLyogS2VlcCB0cmFjayBvZiB3 aGljaCBlbnRyeSB3ZSBhcmUgdXAgdG8uICAqLwogCSAgY3VycmVudF9lbnRy eV9pZCA9IGNvZGUtPmV4dC5lbnRyeS0+aWQ7CmRpZmYgLS1naXQgYS9nY2Mv Zm9ydHJhbi9zaW1wbGlmeS5jIGIvZ2NjL2ZvcnRyYW4vc2ltcGxpZnkuYwpp bmRleCBhZDU0N2ExLi41ZTU1ZjAyIDEwMDY0NAotLS0gYS9nY2MvZm9ydHJh bi9zaW1wbGlmeS5jCisrKyBiL2djYy9mb3J0cmFuL3NpbXBsaWZ5LmMKQEAg LTIzMTIsNiArMjMxMiwyNiBAQCBnZmNfc2ltcGxpZnlfZXhwb25lbnQgKGdm Y19leHByICp4KQogICByZXR1cm4gcmFuZ2VfY2hlY2sgKHJlc3VsdCwgIkVY UE9ORU5UIik7CiB9CiAKK2dmY19leHByICoKK2dmY19zaW1wbGlmeV9mYWls ZWRfaW1hZ2VzIChnZmNfZXhwciAqdGVhbSBBVFRSSUJVVEVfVU5VU0VELCBn ZmNfZXhwciAqa2luZCkKK3sKKyAgZ2ZjX2V4cHIgKnJlc3VsdDsKKyAgaW50 IGFjdHVhbF9raW5kOworCisgIGlmIChmbGFnX2NvYXJyYXkgIT0gR0ZDX0ZD T0FSUkFZX1NJTkdMRSkKKyAgICByZXR1cm4gTlVMTDsKKworICBpZiAoIWtp bmQpCisgICAgYWN0dWFsX2tpbmQgPSBnZmNfZGVmYXVsdF9pbnRlZ2VyX2tp bmQ7CisgIGVsc2UKKyAgICBhY3R1YWxfa2luZCA9IGtpbmQtPnRzLmtpbmQ7 CisKKyAgcmVzdWx0ID0gdHJhbnNmb3JtYXRpb25hbF9yZXN1bHQgKHJlc3Vs dCwgTlVMTCwgQlRfSU5URUdFUiwgYWN0dWFsX2tpbmQsCisJCQkJICAgICZn ZmNfY3VycmVudF9sb2N1cyk7CisgIGluaXRfcmVzdWx0X2V4cHIgKHJlc3Vs dCwgMCwgTlVMTCk7CisgIHJlc3VsdCA9IHNpbXBsaWZ5X3RyYW5zZm9ybWF0 aW9uIChyZXN1bHQsIE5VTEwsIE5VTEwsIDAsIE5VTEwpOworICByZXR1cm4g cmVzdWx0OworfQogCiBnZmNfZXhwciAqCiBnZmNfc2ltcGxpZnlfZmxvYXQg KGdmY19leHByICphKQpAQCAtNjU3OCw2ICs2NTk4LDIwIEBAIGdmY19zaW1w bGlmeV9pbWFnZV9pbmRleCAoZ2ZjX2V4cHIgKmNvYXJyYXksIGdmY19leHBy ICpzdWIpCiAgIHJldHVybiByZXN1bHQ7CiB9CiAKK2dmY19leHByICoKK2dm Y19zaW1wbGlmeV9pbWFnZV9zdGF0dXMgKGdmY19leHByICppbWFnZSBBVFRS SUJVVEVfVU5VU0VELAorCQkJICAgZ2ZjX2V4cHIgKnRlYW0gQVRUUklCVVRF X1VOVVNFRCkKK3sKKyAgaWYgKGZsYWdfY29hcnJheSAhPSBHRkNfRkNPQVJS QVlfU0lOR0xFKQorICAgIHJldHVybiBOVUxMOworCisgIGdmY19leHByICpy ZXN1bHQ7CisgIC8qIEZJWE1FOiBnZmNfY3VycmVudF9sb2N1cyBpcyB3cm9u Zy4gICovCisgIHJlc3VsdCA9IGdmY19nZXRfY29uc3RhbnRfZXhwciAoQlRf SU5URUdFUiwgZ2ZjX2RlZmF1bHRfaW50ZWdlcl9raW5kLAorCQkJCSAgJmdm Y19jdXJyZW50X2xvY3VzKTsKKyAgbXB6X3NldF9zaSAocmVzdWx0LT52YWx1 ZS5pbnRlZ2VyLCAwKTsKKyAgcmV0dXJuIHJlc3VsdDsKK30KIAogZ2ZjX2V4 cHIgKgogZ2ZjX3NpbXBsaWZ5X3RoaXNfaW1hZ2UgKGdmY19leHByICpjb2Fy cmF5LCBnZmNfZXhwciAqZGltLApkaWZmIC0tZ2l0IGEvZ2NjL2ZvcnRyYW4v c3QuYyBiL2djYy9mb3J0cmFuL3N0LmMKaW5kZXggNzM5NTQ5Ny4uYjNhNjcy MSAxMDA2NDQKLS0tIGEvZ2NjL2ZvcnRyYW4vc3QuYworKysgYi9nY2MvZm9y dHJhbi9zdC5jCkBAIC0xMjAsNiArMTIwLDcgQEAgZ2ZjX2ZyZWVfc3RhdGVt ZW50IChnZmNfY29kZSAqcCkKICAgICBjYXNlIEVYRUNfVU5MT0NLOgogICAg IGNhc2UgRVhFQ19FVkVOVF9QT1NUOgogICAgIGNhc2UgRVhFQ19FVkVOVF9X QUlUOgorICAgIGNhc2UgRVhFQ19GQUlMX0lNQUdFOgogICAgICAgYnJlYWs7 CiAKICAgICBjYXNlIEVYRUNfQkxPQ0s6CmRpZmYgLS1naXQgYS9nY2MvZm9y dHJhbi90cmFucy1kZWNsLmMgYi9nY2MvZm9ydHJhbi90cmFucy1kZWNsLmMK aW5kZXggMWJhYjVkNS4uZWQ5Zjg5ZiAxMDA2NDQKLS0tIGEvZ2NjL2ZvcnRy YW4vdHJhbnMtZGVjbC5jCisrKyBiL2djYy9mb3J0cmFuL3RyYW5zLWRlY2wu YwpAQCAtMTU0LDYgKzE1NCw5IEBAIHRyZWUgZ2Zvcl9mbmRlY2xfY2FmX3Vu bG9jazsKIHRyZWUgZ2Zvcl9mbmRlY2xfY2FmX2V2ZW50X3Bvc3Q7CiB0cmVl IGdmb3JfZm5kZWNsX2NhZl9ldmVudF93YWl0OwogdHJlZSBnZm9yX2ZuZGVj bF9jYWZfZXZlbnRfcXVlcnk7Cit0cmVlIGdmb3JfZm5kZWNsX2NhZl9mYWls X2ltYWdlOwordHJlZSBnZm9yX2ZuZGVjbF9jYWZfZmFpbGVkX2ltYWdlczsK K3RyZWUgZ2Zvcl9mbmRlY2xfY2FmX2ltYWdlX3N0YXR1czsKIHRyZWUgZ2Zv cl9mbmRlY2xfY29fYnJvYWRjYXN0OwogdHJlZSBnZm9yX2ZuZGVjbF9jb19t YXg7CiB0cmVlIGdmb3JfZm5kZWNsX2NvX21pbjsKQEAgLTM2OTQsNiArMzY5 NywxOCBAQCBnZmNfYnVpbGRfYnVpbHRpbl9mdW5jdGlvbl9kZWNscyAodm9p ZCkKIAl2b2lkX3R5cGVfbm9kZSwgNSwgcHZvaWRfdHlwZV9ub2RlLCBzaXpl X3R5cGVfbm9kZSwgaW50ZWdlcl90eXBlX25vZGUsCiAJcGludF90eXBlLCBw aW50X3R5cGUpOwogCisgICAgICBnZm9yX2ZuZGVjbF9jYWZfZmFpbF9pbWFn ZSA9IGdmY19idWlsZF9saWJyYXJ5X2Z1bmN0aW9uX2RlY2xfd2l0aF9zcGVj ICgKKwlnZXRfaWRlbnRpZmllciAoUFJFRklYKCJjYWZfZmFpbF9pbWFnZSIp KSwgIlIiLAorICAgICAgCXZvaWRfdHlwZV9ub2RlLCAxLCBwdm9pZF90eXBl X25vZGUpOworCisgICAgICBnZm9yX2ZuZGVjbF9jYWZfZmFpbGVkX2ltYWdl cyA9IGdmY19idWlsZF9saWJyYXJ5X2Z1bmN0aW9uX2RlY2xfd2l0aF9zcGVj ICgKKwlnZXRfaWRlbnRpZmllciAoUFJFRklYKCJjYWZfZmFpbGVkX2ltYWdl cyIpKSwgIldSUiIsIHB2b2lkX3R5cGVfbm9kZSwKKwkzLCBwdm9pZF90eXBl X25vZGUsIGludGVnZXJfdHlwZV9ub2RlLCBpbnRlZ2VyX3R5cGVfbm9kZSk7 CisKKyAgICAgIGdmb3JfZm5kZWNsX2NhZl9pbWFnZV9zdGF0dXMgPSBnZmNf YnVpbGRfbGlicmFyeV9mdW5jdGlvbl9kZWNsX3dpdGhfc3BlYyAoCisJZ2V0 X2lkZW50aWZpZXIgKFBSRUZJWCgiY2FmX2ltYWdlX3N0YXR1cyIpKSwgIlJS IiwKKwlpbnRlZ2VyX3R5cGVfbm9kZSwgMiwgaW50ZWdlcl90eXBlX25vZGUs IGludGVnZXJfdHlwZV9ub2RlKTsKKwogICAgICAgZ2Zvcl9mbmRlY2xfY29f YnJvYWRjYXN0ID0gZ2ZjX2J1aWxkX2xpYnJhcnlfZnVuY3Rpb25fZGVjbF93 aXRoX3NwZWMgKAogCWdldF9pZGVudGlmaWVyIChQUkVGSVgoImNhZl9jb19i cm9hZGNhc3QiKSksICJXLldXIiwKIAl2b2lkX3R5cGVfbm9kZSwgNSwgcHZv aWRfdHlwZV9ub2RlLCBpbnRlZ2VyX3R5cGVfbm9kZSwKZGlmZiAtLWdpdCBh L2djYy9mb3J0cmFuL3RyYW5zLWV4cHIuYyBiL2djYy9mb3J0cmFuL3RyYW5z LWV4cHIuYwppbmRleCA5ZmNkNmExLi41YWFkYzZjIDEwMDY0NAotLS0gYS9n Y2MvZm9ydHJhbi90cmFucy1leHByLmMKKysrIGIvZ2NjL2ZvcnRyYW4vdHJh bnMtZXhwci5jCkBAIC02MjM5LDEwICs2MjM5LDExIEBAIGdmY19jb252X3By b2NlZHVyZV9jYWxsIChnZmNfc2UgKiBzZSwgZ2ZjX3N5bWJvbCAqIHN5bSwK ICAgICAgICAgIGNvbXBvbmVudHMgbXVzdCBoYXZlIHRoZSByZXN1bHQgYWxs b2NhdGFibGUgY29tcG9uZW50cyBjb3BpZWQuICAqLwogICAgICAgYXJnID0g ZXhwci0+dmFsdWUuZnVuY3Rpb24uYWN0dWFsOwogICAgICAgaWYgKHJlc3Vs dCAmJiBhcmcgJiYgZXhwci0+cmFuawotCSAgICAmJiBleHByLT52YWx1ZS5m dW5jdGlvbi5pc3ltCi0JICAgICYmIGV4cHItPnZhbHVlLmZ1bmN0aW9uLmlz eW0tPnRyYW5zZm9ybWF0aW9uYWwKLQkgICAgJiYgYXJnLT5leHByLT50cy50 eXBlID09IEJUX0RFUklWRUQKLQkgICAgJiYgYXJnLT5leHByLT50cy51LmRl cml2ZWQtPmF0dHIuYWxsb2NfY29tcCkKKwkgICYmIGV4cHItPnZhbHVlLmZ1 bmN0aW9uLmlzeW0KKwkgICYmIGV4cHItPnZhbHVlLmZ1bmN0aW9uLmlzeW0t PnRyYW5zZm9ybWF0aW9uYWwKKwkgICYmIGFyZy0+ZXhwcgorCSAgJiYgYXJn LT5leHByLT50cy50eXBlID09IEJUX0RFUklWRUQKKwkgICYmIGFyZy0+ZXhw ci0+dHMudS5kZXJpdmVkLT5hdHRyLmFsbG9jX2NvbXApCiAJewogCSAgdHJl ZSB0bXAyOwogCSAgLyogQ29weSB0aGUgYWxsb2NhdGFibGUgY29tcG9uZW50 cy4gIFdlIGhhdmUgdG8gdXNlIGEKZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFu L3RyYW5zLWludHJpbnNpYy5jIGIvZ2NjL2ZvcnRyYW4vdHJhbnMtaW50cmlu c2ljLmMKaW5kZXggYzY4ODNkYy4uYjBiNzIxZiAxMDA2NDQKLS0tIGEvZ2Nj L2ZvcnRyYW4vdHJhbnMtaW50cmluc2ljLmMKKysrIGIvZ2NjL2ZvcnRyYW4v dHJhbnMtaW50cmluc2ljLmMKQEAgLTIzNjAsNiArMjM2MCwxOSBAQCB0cmFu c190aGlzX2ltYWdlIChnZmNfc2UgKiBzZSwgZ2ZjX2V4cHIgKmV4cHIpCiAJ CQkJCSAgICAgICBtLCBsYm91bmQpKTsKIH0KIAorc3RhdGljIHZvaWQKK2dm Y19jb252X2ludHJpbnNpY19pbWFnZV9zdGF0dXMgKGdmY19zZSAqc2UsIGdm Y19leHByICpleHByKQoreworICB1bnNpZ25lZCBpbnQgbnVtX2FyZ3M7Cisg IHRyZWUgKmFyZ3MsdG1wOworCisgIG51bV9hcmdzID0gZ2ZjX2ludHJpbnNp Y19hcmd1bWVudF9saXN0X2xlbmd0aCAoZXhwcik7CisgIGFyZ3MgPSBYQUxM T0NBVkVDICh0cmVlLCBudW1fYXJncyk7CisgIGdmY19jb252X2ludHJpbnNp Y19mdW5jdGlvbl9hcmdzIChzZSwgZXhwciwgYXJncywgbnVtX2FyZ3MpOwor ICB0bXAgPSBidWlsZF9jYWxsX2V4cHJfbG9jIChpbnB1dF9sb2NhdGlvbiwg Z2Zvcl9mbmRlY2xfY2FmX2ltYWdlX3N0YXR1cywgMiwKKwkJCSAgICAgYXJn c1swXSwgYnVpbGRfaW50X2NzdCAoaW50ZWdlcl90eXBlX25vZGUsIC0xKSk7 CisgIHNlLT5leHByID0gdG1wOworfQogCiBzdGF0aWMgdm9pZAogdHJhbnNf aW1hZ2VfaW5kZXggKGdmY19zZSAqIHNlLCBnZmNfZXhwciAqZXhwcikKQEAg LTkwMTcsNiArOTAzMCwxMCBAQCBnZmNfY29udl9pbnRyaW5zaWNfZnVuY3Rp b24gKGdmY19zZSAqIHNlLCBnZmNfZXhwciAqIGV4cHIpCiAgICAgICB0cmFu c19pbWFnZV9pbmRleCAoc2UsIGV4cHIpOwogICAgICAgYnJlYWs7CiAKKyAg ICBjYXNlIEdGQ19JU1lNX0lNQUdFX1NUQVRVUzoKKyAgICAgIGdmY19jb252 X2ludHJpbnNpY19pbWFnZV9zdGF0dXMgKHNlLCBleHByKTsKKyAgICAgIGJy ZWFrOworCiAgICAgY2FzZSBHRkNfSVNZTV9OVU1fSU1BR0VTOgogICAgICAg dHJhbnNfbnVtX2ltYWdlcyAoc2UsIGV4cHIpOwogICAgICAgYnJlYWs7CkBA IC05MzY3LDEwICs5Mzg0LDExIEBAIGdmY19pc19pbnRyaW5zaWNfbGliY2Fs bCAoZ2ZjX2V4cHIgKiBleHByKQogICAgICAgLyogSWdub3JlIGFic2VudCBv cHRpb25hbCBwYXJhbWV0ZXJzLiAgKi8KICAgICAgIHJldHVybiAxOwogCi0g ICAgY2FzZSBHRkNfSVNZTV9SRVNIQVBFOgogICAgIGNhc2UgR0ZDX0lTWU1f Q1NISUZUOgogICAgIGNhc2UgR0ZDX0lTWU1fRU9TSElGVDoKKyAgICBjYXNl IEdGQ19JU1lNX0ZBSUxFRF9JTUFHRVM6CiAgICAgY2FzZSBHRkNfSVNZTV9Q QUNLOgorICAgIGNhc2UgR0ZDX0lTWU1fUkVTSEFQRToKICAgICBjYXNlIEdG Q19JU1lNX1VOUEFDSzoKICAgICAgIC8qIFBhc3MgYWJzZW50IG9wdGlvbmFs IHBhcmFtZXRlcnMuICAqLwogICAgICAgcmV0dXJuIDI7CmRpZmYgLS1naXQg YS9nY2MvZm9ydHJhbi90cmFucy1zdG10LmMgYi9nY2MvZm9ydHJhbi90cmFu cy1zdG10LmMKaW5kZXggOWZkYWNjMS4uMjJjMzdlZSAxMDA2NDQKLS0tIGEv Z2NjL2ZvcnRyYW4vdHJhbnMtc3RtdC5jCisrKyBiL2djYy9mb3J0cmFuL3Ry YW5zLXN0bXQuYwpAQCAtNjc0LDYgKzY3NCwzMiBAQCBnZmNfdHJhbnNfc3Rv cCAoZ2ZjX2NvZGUgKmNvZGUsIGJvb2wgZXJyb3Jfc3RvcCkKICAgcmV0dXJu IGdmY19maW5pc2hfYmxvY2sgKCZzZS5wcmUpOwogfQogCisvKiBUcmFuc2xh dGUgdGhlIEZBSUwgSU1BR0Ugc3RhdGVtZW50LiAgV2UgaGF2ZSB0byB0cmFu c2xhdGUgdGhpcyBzdGF0ZW1lbnQKKyAgIHRvIGEgcnVudGltZSBsaWJyYXJ5 IGNhbGwuICAqLworCit0cmVlCitnZmNfdHJhbnNfZmFpbF9pbWFnZSAoZ2Zj X2NvZGUgKmNvZGUgQVRUUklCVVRFX1VOVVNFRCkKK3sKKyAgZ2ZjX3NlIHNl OworICB0cmVlIHRtcDsKKworICAvKiBTdGFydCBhIG5ldyBibG9jayBmb3Ig dGhpcyBzdGF0ZW1lbnQuICAqLworICBnZmNfaW5pdF9zZSAoJnNlLCBOVUxM KTsKKyAgZ2ZjX3N0YXJ0X2Jsb2NrICgmc2UucHJlKTsKKworICBpZiAoZmxh Z19jb2FycmF5ID09IEdGQ19GQ09BUlJBWV9MSUIpCisgICAgdG1wID0gYnVp bGRfY2FsbF9leHByX2xvYyAoaW5wdXRfbG9jYXRpb24sCisJCQkgICAgICAg Z2Zvcl9mbmRlY2xfY2FmX2ZhaWxfaW1hZ2UsIDEsCisJCQkgICAgICAgYnVp bGRfaW50X2NzdCAocGNoYXJfdHlwZV9ub2RlLCAwKSk7CisgIGVsc2UKKyAg ICB0bXAgPSBidWlsZF9jYWxsX2V4cHJfbG9jIChpbnB1dF9sb2NhdGlvbiwK KwkJCSAgICAgICBnZm9yX2ZuZGVjbF9zdG9wX3N0cmluZywgMSwKKwkJCSAg ICAgICBidWlsZF9pbnRfY3N0IChwY2hhcl90eXBlX25vZGUsIDEpKTsKKwor ICBnZmNfYWRkX2V4cHJfdG9fYmxvY2sgKCZzZS5wcmUsIHRtcCk7CisgIGdm Y19hZGRfYmxvY2tfdG9fYmxvY2sgKCZzZS5wcmUsICZzZS5wb3N0KTsKKyAg cmV0dXJuIGdmY19maW5pc2hfYmxvY2sgKCZzZS5wcmUpOworfQogCiB0cmVl CiBnZmNfdHJhbnNfbG9ja191bmxvY2sgKGdmY19jb2RlICpjb2RlLCBnZmNf ZXhlY19vcCBvcCkKZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL3RyYW5zLXN0 bXQuaCBiL2djYy9mb3J0cmFuL3RyYW5zLXN0bXQuaAppbmRleCBmOWM4ZTc0 Li40YjViNGZjIDEwMDY0NAotLS0gYS9nY2MvZm9ydHJhbi90cmFucy1zdG10 LmgKKysrIGIvZ2NjL2ZvcnRyYW4vdHJhbnMtc3RtdC5oCkBAIC01Niw2ICs1 Niw3IEBAIHRyZWUgZ2ZjX3RyYW5zX3NlbGVjdCAoZ2ZjX2NvZGUgKik7CiB0 cmVlIGdmY190cmFuc19zeW5jIChnZmNfY29kZSAqLCBnZmNfZXhlY19vcCk7 CiB0cmVlIGdmY190cmFuc19sb2NrX3VubG9jayAoZ2ZjX2NvZGUgKiwgZ2Zj X2V4ZWNfb3ApOwogdHJlZSBnZmNfdHJhbnNfZXZlbnRfcG9zdF93YWl0IChn ZmNfY29kZSAqLCBnZmNfZXhlY19vcCk7Cit0cmVlIGdmY190cmFuc19mYWls X2ltYWdlIChnZmNfY29kZSAqKTsKIHRyZWUgZ2ZjX3RyYW5zX2ZvcmFsbCAo Z2ZjX2NvZGUgKik7CiB0cmVlIGdmY190cmFuc193aGVyZSAoZ2ZjX2NvZGUg Kik7CiB0cmVlIGdmY190cmFuc19hbGxvY2F0ZSAoZ2ZjX2NvZGUgKik7CmRp ZmYgLS1naXQgYS9nY2MvZm9ydHJhbi90cmFucy5jIGIvZ2NjL2ZvcnRyYW4v dHJhbnMuYwppbmRleCA5MjEwZTBmLi44MjdlMGJmIDEwMDY0NAotLS0gYS9n Y2MvZm9ydHJhbi90cmFucy5jCisrKyBiL2djYy9mb3J0cmFuL3RyYW5zLmMK QEAgLTE4NTgsNiArMTg1OCwxMCBAQCB0cmFuc19jb2RlIChnZmNfY29kZSAq IGNvZGUsIHRyZWUgY29uZCkKIAkgIHJlcyA9IGdmY190cmFuc19ldmVudF9w b3N0X3dhaXQgKGNvZGUsIGNvZGUtPm9wKTsKIAkgIGJyZWFrOwogCisJY2Fz ZSBFWEVDX0ZBSUxfSU1BR0U6CisJICByZXMgPSBnZmNfdHJhbnNfZmFpbF9p bWFnZSAoY29kZSk7CisJICBicmVhazsKKwogCWNhc2UgRVhFQ19GT1JBTEw6 CiAJICByZXMgPSBnZmNfdHJhbnNfZm9yYWxsIChjb2RlKTsKIAkgIGJyZWFr OwpkaWZmIC0tZ2l0IGEvZ2NjL2ZvcnRyYW4vdHJhbnMuaCBiL2djYy9mb3J0 cmFuL3RyYW5zLmgKaW5kZXggNGQzZDIwNy4uNDY0MWFjZSAxMDA2NDQKLS0t IGEvZ2NjL2ZvcnRyYW4vdHJhbnMuaAorKysgYi9nY2MvZm9ydHJhbi90cmFu cy5oCkBAIC04MDAsNiArODAwLDkgQEAgZXh0ZXJuIEdUWSgoKSkgdHJlZSBn Zm9yX2ZuZGVjbF9jYWZfdW5sb2NrOwogZXh0ZXJuIEdUWSgoKSkgdHJlZSBn Zm9yX2ZuZGVjbF9jYWZfZXZlbnRfcG9zdDsKIGV4dGVybiBHVFkoKCkpIHRy ZWUgZ2Zvcl9mbmRlY2xfY2FmX2V2ZW50X3dhaXQ7CiBleHRlcm4gR1RZKCgp KSB0cmVlIGdmb3JfZm5kZWNsX2NhZl9ldmVudF9xdWVyeTsKK2V4dGVybiBH VFkoKCkpIHRyZWUgZ2Zvcl9mbmRlY2xfY2FmX2ZhaWxfaW1hZ2U7CitleHRl cm4gR1RZKCgpKSB0cmVlIGdmb3JfZm5kZWNsX2NhZl9mYWlsZWRfaW1hZ2Vz OworZXh0ZXJuIEdUWSgoKSkgdHJlZSBnZm9yX2ZuZGVjbF9jYWZfaW1hZ2Vf c3RhdHVzOwogZXh0ZXJuIEdUWSgoKSkgdHJlZSBnZm9yX2ZuZGVjbF9jb19i cm9hZGNhc3Q7CiBleHRlcm4gR1RZKCgpKSB0cmVlIGdmb3JfZm5kZWNsX2Nv X21heDsKIGV4dGVybiBHVFkoKCkpIHRyZWUgZ2Zvcl9mbmRlY2xfY29fbWlu OwpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9jb2Fy cmF5L2ZhaWxfc3QuZjkwIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9j b2FycmF5L2ZhaWxfc3QuZjkwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLmI2ZTUwZTAKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVz dHN1aXRlL2dmb3J0cmFuLmRnL2NvYXJyYXkvZmFpbF9zdC5mOTAKQEAgLTAs MCArMSw5IEBACishIHsgZGctZG8gcnVuIH0KKyEgeyBkZy1vcHRpb25zICIt ZmNvYXJyYXk9c2luZ2xlIiB9CishCitwcm9ncmFtIGZhaWxfc3RhdGVtZW50 CisgIGltcGxpY2l0IG5vbmUKKworICBmYWlsIGltYWdlCisKK2VuZCBwcm9n cmFtIGZhaWxfc3RhdGVtZW50CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRl L2dmb3J0cmFuLmRnL2NvYXJyYXkvZmFpbGVkX2ltYWdlc19zaW5nbGUuZjkw IGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9jb2FycmF5L2ZhaWxlZF9p bWFnZXNfc2luZ2xlLmY5MApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi41NTgzZmVmCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3Rz dWl0ZS9nZm9ydHJhbi5kZy9jb2FycmF5L2ZhaWxlZF9pbWFnZXNfc2luZ2xl LmY5MApAQCAtMCwwICsxLDE1IEBACishIHsgZGctZG8gcnVuIH0KKyEgeyBk Zy1vcHRpb25zICItZmNvYXJyYXk9c2luZ2xlIC1sY2FmX3NpbmdsZSIgfQor IQorcHJvZ3JhbSB0ZXN0X2ZhaWxlZF9pbWFnZXMKKyAgdXNlIGlzb19mb3J0 cmFuX2VudgorICBpbXBsaWNpdCBub25lCisKKyAgaW50ZWdlciwgYWxsb2Nh dGFibGUgOjogZmFpbGVkKDopCisKKyAgZmFpbGVkID0gZmFpbGVkX2ltYWdl cygpCisKKyAgd3JpdGUoKiwqKSBmYWlsZWQsbGJvdW5kKGZhaWxlZCksdWJv dW5kKGZhaWxlZCkKKyAgd3JpdGUoKiwqKSBmYWlsZWRfaW1hZ2VzKCkKKwor ZW5kIHByb2dyYW0gdGVzdF9mYWlsZWRfaW1hZ2VzCmRpZmYgLS1naXQgYS9n Y2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2NvYXJyYXkvaW1hZ2Vfc3RhdHVz X3NpbmdsZS5mOTAgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2NvYXJy YXkvaW1hZ2Vfc3RhdHVzX3NpbmdsZS5mOTAKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uNzFkNThiNAotLS0gL2Rldi9udWxsCisrKyBi L2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvY29hcnJheS9pbWFnZV9zdGF0 dXNfc2luZ2xlLmY5MApAQCAtMCwwICsxLDkgQEAKKyEgeyBkZy1kbyBydW4g fQorISB7IGRnLW9wdGlvbnMgIi1mY29hcnJheT1zaW5nbGUiIH0KKyEKK3By b2dyYW0gdGVzdF9pbWFnZV9zdGF0dXMKKyAgaW1wbGljaXQgbm9uZQorCisg IHdyaXRlKCosKikgaW1hZ2Vfc3RhdHVzKDEpCisKK2VuZCBwcm9ncmFtIHRl c3RfaW1hZ2Vfc3RhdHVzCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dm b3J0cmFuLmRnL2NvYXJyYXlfZmFpbF9zdC5mOTAgYi9nY2MvdGVzdHN1aXRl L2dmb3J0cmFuLmRnL2NvYXJyYXlfZmFpbF9zdC5mOTAKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDRlYjhlMgotLS0gL2Rldi9udWxs CisrKyBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvY29hcnJheV9mYWls X3N0LmY5MApAQCAtMCwwICsxLDIxIEBACishIHsgZGctZG8gY29tcGlsZSB9 CishIHsgZGctb3B0aW9ucyAiLWZkdW1wLXRyZWUtb3JpZ2luYWwgLWZjb2Fy cmF5PWxpYiIgfQorIQorcHJvZ3JhbSBmYWlsX3N0YXRlbWVudAorICBpbXBs aWNpdCBub25lCisKKyAgaW50ZWdlciA6OiBtZSxucCxzdGF0CisKKyAgbWUg PSB0aGlzX2ltYWdlKCkKKyAgbnAgPSBudW1faW1hZ2VzKCkKKyAgc3RhdCA9 IDAKKworICBpZihtZSA9PSAxKSBmYWlsIGltYWdlCisKKyAgc3luYyBhbGwo c3RhdD1zdGF0KQorCisgIGlmKHN0YXQgLz0gMCkgd3JpdGUoKiwqKSAnSW1h Z2UgZmFpbGVkIGR1cmluZyBzeW5jJworCitlbmQgcHJvZ3JhbSBmYWlsX3N0 YXRlbWVudAorCishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1l cyAiX2dmb3J0cmFuX2NhZl9mYWlsX2ltYWdlIFxcXCgwQlxcXCk7IiAxICJv cmlnaW5hbCIgfSB9CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0 cmFuLmRnL2NvYXJyYXlfZmFpbGVkX2ltYWdlcy5mOTAgYi9nY2MvdGVzdHN1 aXRlL2dmb3J0cmFuLmRnL2NvYXJyYXlfZmFpbGVkX2ltYWdlcy5mOTAKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjY0ZWQyNQotLS0g L2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvY29h cnJheV9mYWlsZWRfaW1hZ2VzLmY5MApAQCAtMCwwICsxLDIxIEBACishIHsg ZGctZG8gY29tcGlsZSB9CishIHsgZGctb3B0aW9ucyAiLWZkdW1wLXRyZWUt b3JpZ2luYWwgLWZjb2FycmF5PWxpYiIgfQorIQorcHJvZ3JhbSB0ZXN0X2Zh aWxlZF9pbWFnZXMKKyAgaW1wbGljaXQgbm9uZQorCisgIGludGVnZXIgOjog bWUsbnAsc3RhdAorICBjaGFyYWN0ZXIobGVuPTEpIDo6IGMKKworICBtZSA9 IHRoaXNfaW1hZ2UoKQorICBucCA9IG51bV9pbWFnZXMoKQorICBzdGF0ID0g MAorCisgIHN5bmMgYWxsKHN0YXQ9c3RhdCkKKworICBpZihzdGF0IC89IDAp IHRoZW4KKyAgICAgd3JpdGUoKiwqKSBmYWlsZWRfaW1hZ2VzKCkKKyAgZW5k aWYKK2VuZCBwcm9ncmFtIHRlc3RfZmFpbGVkX2ltYWdlcworCishIHsgZGct ZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiX2dmb3J0cmFuX2NhZl9m YWlsZWRfaW1hZ2VzIFxcXCgmYXRtcC4xLCAwQiwgMEJcXFwpOyIgMSAib3Jp Z2luYWwiIH0gfQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJh bi5kZy9jb2FycmF5X2ZhaWxlZF9pbWFnZXNfZXJyLmY5MCBiL2djYy90ZXN0 c3VpdGUvZ2ZvcnRyYW4uZGcvY29hcnJheV9mYWlsZWRfaW1hZ2VzX2Vyci5m OTAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzNiMWE3 OQotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4u ZGcvY29hcnJheV9mYWlsZWRfaW1hZ2VzX2Vyci5mOTAKQEAgLTAsMCArMSwx OSBAQAorISB7IGRnLWRvIGNvbXBpbGUgfQorISB7IGRnLW9wdGlvbnMgIi1m Y29hcnJheT1saWIiIH0KKyEKK3Byb2dyYW0gdGVzdF9mYWlsZWRfaW1hZ2Vz X2VycgorICBpbXBsaWNpdCBub25lCisKKyAgaW50ZWdlciA6OiBtZSxucCxz dGF0CisgIGNoYXJhY3RlcihsZW49MSkgOjogYworCisgIG1lID0gdGhpc19p bWFnZSgpCisgIG5wID0gbnVtX2ltYWdlcygpCisgIHN0YXQgPSAwCisKKyAg c3luYyBhbGwoc3RhdD1zdGF0KQorCisgIGlmKHN0YXQgLz0gMCkgdGhlbgor ICAgICB3cml0ZSgqLCopIGZhaWxlZF9pbWFnZXMobWUpICEgeyBkZy1lcnJv ciAiVEVBTSBhcmd1bWVudCBvZiB0aGUgRkFJTEVEX0lNQUdFUyBpbnRyaW5z aWMgZnVuY3Rpb24gYXQgLjEuIG5vdCB5ZXQgc3VwcG9ydGVkIiB9CisgIGVu ZGlmCitlbmQgcHJvZ3JhbSB0ZXN0X2ZhaWxlZF9pbWFnZXNfZXJyCmRpZmYg LS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2NvYXJyYXlfaW1h Z2Vfc3RhdHVzLmY5MCBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvY29h cnJheV9pbWFnZV9zdGF0dXMuZjkwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLjkxNDVkYTcKLS0tIC9kZXYvbnVsbAorKysgYi9nY2Mv dGVzdHN1aXRlL2dmb3J0cmFuLmRnL2NvYXJyYXlfaW1hZ2Vfc3RhdHVzLmY5 MApAQCAtMCwwICsxLDIxIEBACishIHsgZGctZG8gY29tcGlsZSB9CishIHsg ZGctb3B0aW9ucyAiLWZkdW1wLXRyZWUtb3JpZ2luYWwgLWZjb2FycmF5PWxp YiIgfQorIQorcHJvZ3JhbSB0ZXN0X2ltYWdlX3N0YXR1cworICBpbXBsaWNp dCBub25lCisKKyAgaW50ZWdlciA6OiBtZSxucCxzdGF0CisgIGNoYXJhY3Rl cihsZW49MSkgOjogYworCisgIG1lID0gdGhpc19pbWFnZSgpCisgIG5wID0g bnVtX2ltYWdlcygpCisgIHN0YXQgPSAwCisKKyAgc3luYyBhbGwoc3RhdD1z dGF0KQorCisgIGlmKHN0YXQgLz0gMCkgdGhlbgorICAgICB3cml0ZSgqLCop IGltYWdlX3N0YXR1cygxKQorICBlbmRpZgorZW5kIHByb2dyYW0gdGVzdF9p bWFnZV9zdGF0dXMKKworISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAt dGltZXMgIl9nZm9ydHJhbl9jYWZfaW1hZ2Vfc3RhdHVzIFxcXCgxLCAtMVxc XCk7IiAxICJvcmlnaW5hbCIgfSB9CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1 aXRlL2dmb3J0cmFuLmRnL2NvYXJyYXlfaW1hZ2Vfc3RhdHVzX2Vyci5mOTAg Yi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2NvYXJyYXlfaW1hZ2Vfc3Rh dHVzX2Vyci5mOTAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uYmYzNmY1OQotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUv Z2ZvcnRyYW4uZGcvY29hcnJheV9pbWFnZV9zdGF0dXNfZXJyLmY5MApAQCAt MCwwICsxLDE5IEBACishIHsgZGctZG8gY29tcGlsZSB9CishIHsgZGctb3B0 aW9ucyAiLWZjb2FycmF5PWxpYiIgfQorIQorcHJvZ3JhbSB0ZXN0X2ltYWdl X3N0YXR1c19lcnIKKyAgaW1wbGljaXQgbm9uZQorCisgIGludGVnZXIgOjog bWUsbnAsc3RhdAorICBjaGFyYWN0ZXIobGVuPTEpIDo6IGMKKworICBtZSA9 IHRoaXNfaW1hZ2UoKQorICBucCA9IG51bV9pbWFnZXMoKQorICBzdGF0ID0g MAorCisgIHN5bmMgYWxsKHN0YXQ9c3RhdCkKKworICBpZihzdGF0IC89IDAp IHRoZW4KKyAgICAgd3JpdGUoKiwqKSBpbWFnZV9zdGF0dXMoMSx0ZWFtPTEp ICEgeyBkZy1lcnJvciAiVEVBTSBhcmd1bWVudCBvZiB0aGUgSU1BR0VfU1RB VFVTIGludHJpbnNpYyBmdW5jdGlvbiBhdCAuMS4gbm90IHlldCBzdXBwb3J0 ZWQiIH0KKyAgZW5kaWYKK2VuZCBwcm9ncmFtIHRlc3RfaW1hZ2Vfc3RhdHVz X2VycgpkaWZmIC0tZ2l0IGEvbGliZ2ZvcnRyYW4vY2FmL2xpYmNhZi5oIGIv bGliZ2ZvcnRyYW4vY2FmL2xpYmNhZi5oCmluZGV4IGFhZDBmNjIuLjhlMTBi YTYgMTAwNjQ0Ci0tLSBhL2xpYmdmb3J0cmFuL2NhZi9saWJjYWYuaAorKysg Yi9saWJnZm9ydHJhbi9jYWYvbGliY2FmLmgKQEAgLTIzMSw1ICsyMzEsNyBA QCB2b2lkIF9nZm9ydHJhbl9jYWZfdW5sb2NrIChjYWZfdG9rZW5fdCwgc2l6 ZV90LCBpbnQsIGludCAqLCBjaGFyICosIGludCk7CiB2b2lkIF9nZm9ydHJh bl9jYWZfZXZlbnRfcG9zdCAoY2FmX3Rva2VuX3QsIHNpemVfdCwgaW50LCBp bnQgKiwgY2hhciAqLCBpbnQpOwogdm9pZCBfZ2ZvcnRyYW5fY2FmX2V2ZW50 X3dhaXQgKGNhZl90b2tlbl90LCBzaXplX3QsIGludCwgaW50ICosIGNoYXIg KiwgaW50KTsKIHZvaWQgX2dmb3J0cmFuX2NhZl9ldmVudF9xdWVyeSAoY2Fm X3Rva2VuX3QsIHNpemVfdCwgaW50LCBpbnQgKiwgaW50ICopOwotCit2b2lk IF9nZm9ydHJhbl9jYWZfZmFpbGVkX2ltYWdlcyhnZmNfZGVzY3JpcHRvcl90 ICosCisJCQkJIGludCBfX2F0dHJpYnV0ZV9fICgodW51c2VkKSksCisJCQkJ IGludCBfX2F0dHJpYnV0ZV9fICgodW51c2VkKSkpOwogI2VuZGlmICAvKiBM SUJDQUZfSCAgKi8KZGlmZiAtLWdpdCBhL2xpYmdmb3J0cmFuL2NhZi9zaW5n bGUuYyBiL2xpYmdmb3J0cmFuL2NhZi9zaW5nbGUuYwppbmRleCBjNDcyNDQ2 Li43MmU0NjcyIDEwMDY0NAotLS0gYS9saWJnZm9ydHJhbi9jYWYvc2luZ2xl LmMKKysrIGIvbGliZ2ZvcnRyYW4vY2FmL3NpbmdsZS5jCkBAIC0yODc3LDMg KzI4NzcsMTcgQEAgX2dmb3J0cmFuX2NhZl91bmxvY2sgKGNhZl90b2tlbl90 IHRva2VuLCBzaXplX3QgaW5kZXgsCiAgICAgfQogICBfZ2ZvcnRyYW5fY2Fm X2Vycm9yX3N0b3Bfc3RyIChtc2csIChpbnQzMl90KSBzdHJsZW4gKG1zZykp OwogfQorCit2b2lkCitfZ2ZvcnRyYW5fY2FmX2ZhaWxlZF9pbWFnZXMoZ2Zj X2Rlc2NyaXB0b3JfdCAqYXJyYXksCisJCQkgICAgaW50IHRlYW0gX19hdHRy aWJ1dGVfXyAoKHVudXNlZCkpLAorCQkJICAgIGludCBraW5kIF9fYXR0cmli dXRlX18gKCh1bnVzZWQpKSkKK3sKKyAgaW50ICptZW0gPSAoaW50ICopY2Fs bG9jKDEsc2l6ZW9mKGludCkpOworICBhcnJheS0+YmFzZV9hZGRyID0gbWVt OworICBhcnJheS0+ZHR5cGUgPSAyNjU7CisgIGFycmF5LT5kaW1bMF0ubG93 ZXJfYm91bmQgPSAwOworICBhcnJheS0+ZGltWzBdLl91Ym91bmQgPSAtMTsK KyAgYXJyYXktPmRpbVswXS5fc3RyaWRlID0gMTsKKyAgYXJyYXktPm9mZnNl dCA9IC0xOworfQo= --001a11419ed2f8ed68053d085db4--