From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pf1-x434.google.com (mail-pf1-x434.google.com [IPv6:2607:f8b0:4864:20::434]) by sourceware.org (Postfix) with ESMTPS id 83DA2384474F; Sat, 11 May 2024 06:20:47 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 83DA2384474F Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 83DA2384474F Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::434 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1715408451; cv=none; b=vJ+dQiZhd4+k2zrps8T459hI9hKUoHFX6A1NDXjJLJhTPGDAv9efbl2liFOosijSmqEyryy7LQM1kn/O6dngK8WDiWATGs5Li+yekcVzlodm89kPF7IcjgtyYm7cCP1bqeOodJvokuckHF+1KtcOniAFxhep09hbQ/RPJwG6n58= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1715408451; c=relaxed/simple; bh=F1bWGTcrpgWILjBfJZcwxdRw2/8uYnN66/iDf2c890U=; h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To; b=M9IddEcUter1jxmrtMAGgzRrro80LpEL48ciEUL3FOSyACkKswiVEA253iIOAjGEROFANXvQw5wHQZAkeg5kPdG5wIZwpji/AA5LQPZnbPUmQ3lBDqQVREv0pKRTBNgt80vfJb5PxpSvFqPykmesG9YLbcjFrAABa30/Zx/qs8g= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-pf1-x434.google.com with SMTP id d2e1a72fcca58-6f4f2b1c997so85806b3a.0; Fri, 10 May 2024 23:20:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1715408446; x=1716013246; darn=gcc.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=SKRrcNNHdPQTW4jSml2obMUE1kkm7/5BgaCdED2uUqU=; b=Q595E2z7TwCx5ogWAwfu4LHaMay1Ll5WuxebGqMCXl3JkVR+EA0uKLYipNf1I6Jz2P zobmLQffBwgT1BCwzLVV8NuY6H4HGyK1VFDRt6amg76vlQvpSrUyfUnqKthMAA7ansi1 yawFt+nTUNr6UhZ/BS0n3oRt/q/ZJhBaDNB/cBnjYI4MlD4pg4baTl4Jjdl7YDNw5xUK xZdbv5u+YtKkVEUKcO+RkrGsQO5SqIu/BUrD8NlVoaIDrqnFWSgir8Oeav97mUehIe8w VlsDUXjqxsOV2ak7q+CZ44+1rI0hakX2QPob58tag3asYE82DlyRwKg/4waKEdNc/rLQ cEuw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1715408446; x=1716013246; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=SKRrcNNHdPQTW4jSml2obMUE1kkm7/5BgaCdED2uUqU=; b=QScC6j528n9dsuCeiqAmuk0Is0+JusUpfZU25e0tWGbTA3USTULSoMn1vkZYm3Mdij kjDZdaFcwS3ED9zagJMLyTR8AjOybMMlOBNk2ZoewC5zQNpFQV1kBU6cS79SDM27D1PY 421mzkEsJy0JvcCNOVryCMAy+FFfEGg2K9nNp0YPlkNRQj+f93FEF6kphA3uBznKOiT5 XG97Bsgh8ituBwXZ2y9bLRHxWuHCnxslqp54PbRYABuucuGqYm+gZW5yUt2TRWceNiQr v/nNUYSSFLHSRUGv76cqHof6uVqMYbzQnh7oHZzsoI/EewB26f0l+MmX0K9yZETJvpLL ybHA== X-Forwarded-Encrypted: i=1; AJvYcCW9TZOLQolymP6LnKhUbU6thXhqhI5xC5TBw3zuZ4VV0/LZcsAAXQOH7ksT1VE0RGcCaWVeZlOZIHHBPekcIuW6+j9rPE0gOQ== X-Gm-Message-State: AOJu0Yw8mBUu5ojX4kYAegLojhT2WlGbwTslgQMb4oPGNPyipk3Xvf9y xuzm6Xnl0Dz3dDUDMDvtN4TykROuFrClKJwg230B/tQndtQdevB6K2T6wRr/s+4q5GLlBE3cntq tJDpo9E+CVlk7K7Y8xV1lcuPENc8= X-Google-Smtp-Source: AGHT+IHDKSuyDbHCSo+5/iuSVFxv9Fh3z7cqFYhzsgwRUoWEm5VadD5ml4bTRnZt495hujvxZNF9E17vqzM6+lUlDoU= X-Received: by 2002:a05:6a21:32a7:b0:1a7:186:f976 with SMTP id adf61e73a8af0-1afde1b7285mr5737756637.40.1715408446010; Fri, 10 May 2024 23:20:46 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Paul Richard Thomas Date: Sat, 11 May 2024 07:20:34 +0100 Message-ID: Subject: Re: [Patch, fortran] PR84006 [11/12/13/14/15 Regression] ICE in storage_size() with CLASS entity To: Harald Anlauf Cc: "fortran@gcc.gnu.org" , gcc-patches Content-Type: multipart/mixed; boundary="000000000000120cbb061827a7ca" X-Spam-Status: No, score=-6.6 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,HTML_MESSAGE,LOTS_OF_MONEY,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --000000000000120cbb061827a7ca Content-Type: multipart/alternative; boundary="000000000000120cba061827a7c8" --000000000000120cba061827a7c8 Content-Type: text/plain; charset="UTF-8" Hi Harald, Thanks for the review. The attached resubmission fixes all the invalid accesses, memory leaks and puts right the incorrect result. In the course of fixing the fix, I found that deferred character length MOLDs gave an ICE because reallocation on assign was using 'dest_word_len' before it was defined. This is fixed by not fixing 'dest_word_len' for these MOLDs. Unfortunately, the same did not work for unlimited polymorphic MOLD expressions and so I added a TODO error in iresolve.cc since it results in all manner of memory errors in runtime. I will return to this another day. A resubmission of the patch for PR113363 will follow since it depends on this one to fix all the memory problems. OK for mainline? Regards Paul On Thu, 9 May 2024 at 08:52, Paul Richard Thomas < paul.richard.thomas@gmail.com> wrote: > Hi Harald, > > The Linaro people caught that as well. Thanks. > > Interestingly, I was about to re-submit the patch for PR113363, in which > all the invalid accesses and memory leaks are fixed but requires this patch > to do so. The final transfer was thrown in because it seemed to be working > out of the box but should be checked anyway. > > Inserting your print statements, my test shows the difference in > size(chr_a) but prints chr_a as "abcdefgjj" no matter what I do. Needless > to say, the latter was the only check that I did. The problem, I suspect, > lies somewhere in the murky depths of > trans-array.cc(gfc_alloc_allocatable_for_assignment) or in the array part > of intrinsic_transfer, untouched by either patch, and is present in 13- and > 14-branches. > > I am onto it. > > Cheers > > Paul > > > On Wed, 8 May 2024 at 22:06, Harald Anlauf wrote: > >> Hi Paul, >> >> this looks mostly good, but the new testcase transfer_class_4.f90 >> does exhibit a problem with your patch. Run it with valgrind, >> or with -fcheck=bounds, or with -fsanitize=address, or add the >> following around the final transfer: >> >> print *, storage_size (star_a), storage_size (chr_a), size (chr_a), len >> (chr_a) >> chr_a = transfer (star_a, chr_a) >> print *, storage_size (star_a), storage_size (chr_a), size (chr_a), len >> (chr_a) >> print *, ">", chr_a, "<" >> >> This prints for me: >> >> 40 40 2 5$ >> 40 40 4 5$ >> >abcdefghij^@^@^@^@^@^@^@^@^@^@<$ >> >> So since the physical representation of chr_a is sufficient >> to hold star_a (F2023:16.9.212), no reallocation with a wrong >> calculated size should happen. (Intel and NAG get this right.) >> >> Can you check again? >> >> Thanks, >> Harald >> >> >> --000000000000120cba061827a7c8-- --000000000000120cbb061827a7ca Content-Type: text/x-patch; charset="UTF-8"; name="resubmit.diff" Content-Disposition: attachment; filename="resubmit.diff" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lw1pt6zn0 ZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL2lyZXNvbHZlLmNjIGIvZ2NjL2Zv cnRyYW4vaXJlc29sdmUuY2MKaW5kZXggYzk2MWNkYmMyZGYuLmM2M2E0YThk MzhjIDEwMDY0NAotLS0gYS9nY2MvZm9ydHJhbi9pcmVzb2x2ZS5jYworKysg Yi9nY2MvZm9ydHJhbi9pcmVzb2x2ZS5jYwpAQCAtMzAyNSw2ICszMDI1LDEw IEBAIGdmY19yZXNvbHZlX3RyYW5zZmVyIChnZmNfZXhwciAqZiwgZ2ZjX2V4 cHIgKnNvdXJjZSBBVFRSSUJVVEVfVU5VU0VELAogCX0KICAgICB9CiAKKyAg aWYgKFVOTElNSVRFRF9QT0xZIChtb2xkKSkKKyAgICBnZmNfZXJyb3IgKCJU T0RPOiB1bmxpbWl0ZWQgcG9seW1vcnBoaWMgTU9MRCBpbiBUUkFOU0ZFUiBp bnRyaW5zaWMgYXQgJUwiLAorCSAgICAgICAmbW9sZC0+d2hlcmUpOworCiAg IGYtPnRzID0gbW9sZC0+dHM7CiAKICAgaWYgKHNpemUgPT0gTlVMTCAmJiBt b2xkLT5yYW5rID09IDApCmRpZmYgLS1naXQgYS9nY2MvZm9ydHJhbi90cmFu cy1leHByLmNjIGIvZ2NjL2ZvcnRyYW4vdHJhbnMtZXhwci5jYwppbmRleCBi YzhlYjQxOWNmZi4uNDU5MGFhNmVkYjQgMTAwNjQ0Ci0tLSBhL2djYy9mb3J0 cmFuL3RyYW5zLWV4cHIuY2MKKysrIGIvZ2NjL2ZvcnRyYW4vdHJhbnMtZXhw ci5jYwpAQCAtMzE3LDYgKzMxNyw4IEBAIGdmY19yZXNpemVfY2xhc3Nfc2l6 ZV93aXRoX2xlbiAoc3RtdGJsb2NrX3QgKiBibG9jaywgdHJlZSBjbGFzc19l eHByLCB0cmVlIHNpemUpCiAJICBzaXplID0gZ2ZjX2V2YWx1YXRlX25vdyAo c2l6ZSwgYmxvY2spOwogCSAgdG1wID0gZ2ZjX2V2YWx1YXRlX25vdyAoZm9s ZF9jb252ZXJ0ICh0eXBlICwgdG1wKSwgYmxvY2spOwogCX0KKyAgICAgIGVs c2UKKwl0bXAgPSBmb2xkX2NvbnZlcnQgKHR5cGUgLCB0bXApOwogICAgICAg dG1wMiA9IGZvbGRfYnVpbGQyX2xvYyAoaW5wdXRfbG9jYXRpb24sIE1VTFRf RVhQUiwKIAkJCSAgICAgIHR5cGUsIHNpemUsIHRtcCk7CiAgICAgICB0bXAg PSBmb2xkX2J1aWxkMl9sb2MgKGlucHV0X2xvY2F0aW9uLCBHVF9FWFBSLApA QCAtMTE5OTQsMTUgKzExOTk2LDI0IEBAIHRyYW5zX2NsYXNzX2Fzc2lnbm1l bnQgKHN0bXRibG9ja190ICpibG9jaywgZ2ZjX2V4cHIgKmxocywgZ2ZjX2V4 cHIgKnJocywKIAogICAgICAgLyogVGFrZSBpbnRvIGFjY291bnQgX2xlbiBv ZiB1bmxpbWl0ZWQgcG9seW1vcnBoaWMgZW50aXRpZXMuCiAJIFRPRE86IGhh bmRsZSBjbGFzcygqKSBhbGxvY2F0YWJsZSBmdW5jdGlvbiByZXN1bHRzIG9u IHJocy4gICovCi0gICAgICBpZiAoVU5MSU1JVEVEX1BPTFkgKHJocykgJiYg cmhzLT5leHByX3R5cGUgPT0gRVhQUl9WQVJJQUJMRSkKKyAgICAgIGlmIChV TkxJTUlURURfUE9MWSAocmhzKSkKIAl7Ci0JICB0cmVlIGxlbiA9IHRyYW5z X2dldF91cG9seV9sZW4gKGJsb2NrLCByaHMpOworCSAgdHJlZSBsZW47CisJ ICBpZiAocmhzLT5leHByX3R5cGUgPT0gRVhQUl9WQVJJQUJMRSkKKwkgICAg bGVuID0gdHJhbnNfZ2V0X3Vwb2x5X2xlbiAoYmxvY2ssIHJocyk7CisJICBl bHNlCisJICAgIGxlbiA9IGdmY19jbGFzc19sZW5fZ2V0ICh0bXApOwogCSAg bGVuID0gZm9sZF9idWlsZDJfbG9jIChpbnB1dF9sb2NhdGlvbiwgTUFYX0VY UFIsIHNpemVfdHlwZV9ub2RlLAogCQkJCSBmb2xkX2NvbnZlcnQgKHNpemVf dHlwZV9ub2RlLCBsZW4pLAogCQkJCSBzaXplX29uZV9ub2RlKTsKIAkgIHNp emUgPSBmb2xkX2J1aWxkMl9sb2MgKGlucHV0X2xvY2F0aW9uLCBNVUxUX0VY UFIsIFRSRUVfVFlQRSAoc2l6ZSksCiAJCQkJICBzaXplLCBmb2xkX2NvbnZl cnQgKFRSRUVfVFlQRSAoc2l6ZSksIGxlbikpOwogCX0KKyAgICAgIGVsc2Ug aWYgKHJocy0+dHMudHlwZSA9PSBCVF9DSEFSQUNURVIgJiYgcnNlLT5zdHJp bmdfbGVuZ3RoKQorCXNpemUgPSBmb2xkX2J1aWxkMl9sb2MgKGlucHV0X2xv Y2F0aW9uLCBNVUxUX0VYUFIsCisJCQkJZ2ZjX2NoYXJsZW5fdHlwZV9ub2Rl LCBzaXplLAorCQkJCXJzZS0+c3RyaW5nX2xlbmd0aCk7CisKIAogICAgICAg dG1wID0gbHNlLT5leHByOwogICAgICAgY2xhc3NfaGFuID0gR0ZDX0NMQVNT X1RZUEVfUCAoVFJFRV9UWVBFICh0bXApKQpkaWZmIC0tZ2l0IGEvZ2NjL2Zv cnRyYW4vdHJhbnMtaW50cmluc2ljLmNjIGIvZ2NjL2ZvcnRyYW4vdHJhbnMt aW50cmluc2ljLmNjCmluZGV4IDgzMDQxMTgzZmNiLi44MGRjMzQyNmFiMCAx MDA2NDQKLS0tIGEvZ2NjL2ZvcnRyYW4vdHJhbnMtaW50cmluc2ljLmNjCisr KyBiL2djYy9mb3J0cmFuL3RyYW5zLWludHJpbnNpYy5jYwpAQCAtODI1MCw3 ICs4MjUwLDkgQEAgZ2ZjX2NvbnZfaW50cmluc2ljX3N0b3JhZ2Vfc2l6ZSAo Z2ZjX3NlICpzZSwgZ2ZjX2V4cHIgKmV4cHIpCiB7CiAgIGdmY19leHByICph cmc7CiAgIGdmY19zZSBhcmdzZTsKLSAgdHJlZSB0eXBlLCByZXN1bHRfdHlw ZSwgdG1wOworICB0cmVlIHR5cGUsIHJlc3VsdF90eXBlLCB0bXAsIGNsYXNz X2RlY2wgPSBOVUxMOworICBnZmNfc3ltYm9sICpzeW07CisgIGJvb2wgdW5s aW1pdGVkID0gZmFsc2U7CiAKICAgYXJnID0gZXhwci0+dmFsdWUuZnVuY3Rp b24uYWN0dWFsLT5leHByOwogCkBAIC04MjYxLDEwICs4MjYzLDEyIEBAIGdm Y19jb252X2ludHJpbnNpY19zdG9yYWdlX3NpemUgKGdmY19zZSAqc2UsIGdm Y19leHByICpleHByKQogICAgIHsKICAgICAgIGlmIChhcmctPnRzLnR5cGUg PT0gQlRfQ0xBU1MpCiAJeworCSAgdW5saW1pdGVkID0gVU5MSU1JVEVEX1BP TFkgKGFyZyk7CiAJICBnZmNfYWRkX3ZwdHJfY29tcG9uZW50IChhcmcpOwog CSAgZ2ZjX2FkZF9zaXplX2NvbXBvbmVudCAoYXJnKTsKIAkgIGdmY19jb252 X2V4cHIgKCZhcmdzZSwgYXJnKTsKIAkgIHRtcCA9IGZvbGRfY29udmVydCAo cmVzdWx0X3R5cGUsIGFyZ3NlLmV4cHIpOworCSAgY2xhc3NfZGVjbCA9IGdm Y19nZXRfY2xhc3NfZnJvbV9leHByIChhcmdzZS5leHByKTsKIAkgIGdvdG8g ZG9uZTsKIAl9CiAKQEAgLTgyNzYsMTQgKzgyODAsMjAgQEAgZ2ZjX2NvbnZf aW50cmluc2ljX3N0b3JhZ2Vfc2l6ZSAoZ2ZjX3NlICpzZSwgZ2ZjX2V4cHIg KmV4cHIpCiAgICAgewogICAgICAgYXJnc2Uud2FudF9wb2ludGVyID0gMDsK ICAgICAgIGdmY19jb252X2V4cHJfZGVzY3JpcHRvciAoJmFyZ3NlLCBhcmcp OworICAgICAgc3ltID0gYXJnLT5leHByX3R5cGUgPT0gRVhQUl9WQVJJQUJM RSA/IGFyZy0+c3ltdHJlZS0+bi5zeW0gOiBOVUxMOwogICAgICAgaWYgKGFy Zy0+dHMudHlwZSA9PSBCVF9DTEFTUykKIAl7Ci0JICBpZiAoYXJnLT5yYW5r ID4gMCkKKwkgIHVubGltaXRlZCA9IFVOTElNSVRFRF9QT0xZIChhcmcpOwor CSAgaWYgKFRSRUVfQ09ERSAoYXJnc2UuZXhwcikgPT0gQ09NUE9ORU5UX1JF RikKKwkgICAgdG1wID0gZ2ZjX2NsYXNzX3Z0YWJfc2l6ZV9nZXQgKFRSRUVf T1BFUkFORCAoYXJnc2UuZXhwciwgMCkpOworCSAgZWxzZSBpZiAoYXJnLT5y YW5rID4gMCAmJiBzeW0KKwkJICAgJiYgREVDTF9MQU5HX1NQRUNJRklDIChz eW0tPmJhY2tlbmRfZGVjbCkpCiAJICAgIHRtcCA9IGdmY19jbGFzc192dGFi X3NpemVfZ2V0ICgKLQkJIEdGQ19ERUNMX1NBVkVEX0RFU0NSSVBUT1IgKGFy Zy0+c3ltdHJlZS0+bi5zeW0tPmJhY2tlbmRfZGVjbCkpOworCQkgR0ZDX0RF Q0xfU0FWRURfREVTQ1JJUFRPUiAoc3ltLT5iYWNrZW5kX2RlY2wpKTsKIAkg IGVsc2UKLQkgICAgdG1wID0gZ2ZjX2NsYXNzX3Z0YWJfc2l6ZV9nZXQgKFRS RUVfT1BFUkFORCAoYXJnc2UuZXhwciwgMCkpOworCSAgICBnY2NfdW5yZWFj aGFibGUgKCk7CiAJICB0bXAgPSBmb2xkX2NvbnZlcnQgKHJlc3VsdF90eXBl LCB0bXApOworCSAgY2xhc3NfZGVjbCA9IGdmY19nZXRfY2xhc3NfZnJvbV9l eHByIChhcmdzZS5leHByKTsKIAkgIGdvdG8gZG9uZTsKIAl9CiAgICAgICB0 eXBlID0gZ2ZjX2dldF9lbGVtZW50X3R5cGUgKFRSRUVfVFlQRSAoYXJnc2Uu ZXhwcikpOwpAQCAtODI5Nyw2ICs4MzA3LDkgQEAgZ2ZjX2NvbnZfaW50cmlu c2ljX3N0b3JhZ2Vfc2l6ZSAoZ2ZjX3NlICpzZSwgZ2ZjX2V4cHIgKmV4cHIp CiAgIHRtcCA9IGZvbGRfY29udmVydCAocmVzdWx0X3R5cGUsIHRtcCk7CiAK IGRvbmU6CisgIGlmICh1bmxpbWl0ZWQgJiYgY2xhc3NfZGVjbCkKKyAgICB0 bXAgPSBnZmNfcmVzaXplX2NsYXNzX3NpemVfd2l0aF9sZW4gKE5VTEwsIGNs YXNzX2RlY2wsIHRtcCk7CisKICAgc2UtPmV4cHIgPSBmb2xkX2J1aWxkMl9s b2MgKGlucHV0X2xvY2F0aW9uLCBNVUxUX0VYUFIsIHJlc3VsdF90eXBlLCB0 bXAsCiAJCQkgICAgICBidWlsZF9pbnRfY3N0IChyZXN1bHRfdHlwZSwgQklU U19QRVJfVU5JVCkpOwogICBnZmNfYWRkX2Jsb2NrX3RvX2Jsb2NrICgmc2Ut PnByZSwgJmFyZ3NlLnByZSk7CkBAIC04NDE5LDcgKzg0MzIsMTAgQEAgZ2Zj X2NvbnZfaW50cmluc2ljX3RyYW5zZmVyIChnZmNfc2UgKiBzZSwgZ2ZjX2V4 cHIgKiBleHByKQogCXsKIAkgIHRtcCA9IGJ1aWxkX2ZvbGRfaW5kaXJlY3Rf cmVmX2xvYyAoaW5wdXRfbG9jYXRpb24sIGFyZ3NlLmV4cHIpOwogCSAgaWYg KEdGQ19DTEFTU19UWVBFX1AgKFRSRUVfVFlQRSAodG1wKSkpCi0JICAgIHNv dXJjZSA9IGdmY19jbGFzc19kYXRhX2dldCAodG1wKTsKKwkgICAgeworCSAg ICAgIHNvdXJjZSA9IGdmY19jbGFzc19kYXRhX2dldCAodG1wKTsKKwkgICAg ICBjbGFzc19yZWYgPSB0bXA7CisJICAgIH0KIAkgIGVsc2UKIAkgICAgewog CSAgICAgIC8qIEFycmF5IGVsZW1lbnRzIGFyZSBldmFsdWF0ZWQgYXMgYSBy ZWZlcmVuY2UgdG8gdGhlIGRhdGEuCkBAIC04NDQ2LDkgKzg0NjIsMTcgQEAg Z2ZjX2NvbnZfaW50cmluc2ljX3RyYW5zZmVyIChnZmNfc2UgKiBzZSwgZ2Zj X2V4cHIgKiBleHByKQogCSAgYnJlYWs7CiAJY2FzZSBCVF9DTEFTUzoKIAkg IGlmIChjbGFzc19yZWYgIT0gTlVMTF9UUkVFKQotCSAgICB0bXAgPSBnZmNf Y2xhc3NfdnRhYl9zaXplX2dldCAoY2xhc3NfcmVmKTsKKwkgICAgeworCSAg ICAgIHRtcCA9IGdmY19jbGFzc192dGFiX3NpemVfZ2V0IChjbGFzc19yZWYp OworCSAgICAgIGlmIChVTkxJTUlURURfUE9MWSAoc291cmNlX2V4cHIpKQor CQl0bXAgPSBnZmNfcmVzaXplX2NsYXNzX3NpemVfd2l0aF9sZW4gKE5VTEws IGNsYXNzX3JlZiwgdG1wKTsKKwkgICAgfQogCSAgZWxzZQotCSAgICB0bXAg PSBnZmNfY2xhc3NfdnRhYl9zaXplX2dldCAoYXJnc2UuZXhwcik7CisJICAg IHsKKwkgICAgICB0bXAgPSBnZmNfY2xhc3NfdnRhYl9zaXplX2dldCAoYXJn c2UuZXhwcik7CisJICAgICAgaWYgKFVOTElNSVRFRF9QT0xZIChzb3VyY2Vf ZXhwcikpCisJCXRtcCA9IGdmY19yZXNpemVfY2xhc3Nfc2l6ZV93aXRoX2xl biAoTlVMTCwgYXJnc2UuZXhwciwgdG1wKTsKKwkgICAgfQogCSAgYnJlYWs7 CiAJZGVmYXVsdDoKIAkgIHNvdXJjZV90eXBlID0gVFJFRV9UWVBFIChidWls ZF9mb2xkX2luZGlyZWN0X3JlZl9sb2MgKGlucHV0X2xvY2F0aW9uLApAQCAt ODUwMSw2ICs4NTI1LDEzIEBAIGdmY19jb252X2ludHJpbnNpY190cmFuc2Zl ciAoZ2ZjX3NlICogc2UsIGdmY19leHByICogZXhwcikKICAgICAgIGlmIChh cmctPmV4cHItPnRzLnR5cGUgPT0gQlRfQ0hBUkFDVEVSKQogCXRtcCA9IHNp emVfb2Zfc3RyaW5nX2luX2J5dGVzIChhcmctPmV4cHItPnRzLmtpbmQsCiAJ CQkJICAgICAgIGFyZ3NlLnN0cmluZ19sZW5ndGgpOworICAgICAgZWxzZSBp ZiAoYXJnLT5leHByLT50cy50eXBlID09IEJUX0NMQVNTKQorCXsKKwkgIGNs YXNzX3JlZiA9IFRSRUVfT1BFUkFORCAoYXJnc2UuZXhwciwgMCk7CisJICB0 bXAgPSBnZmNfY2xhc3NfdnRhYl9zaXplX2dldCAoY2xhc3NfcmVmKTsKKwkg IGlmIChVTkxJTUlURURfUE9MWSAoYXJnLT5leHByKSkKKwkgICAgdG1wID0g Z2ZjX3Jlc2l6ZV9jbGFzc19zaXplX3dpdGhfbGVuICgmYXJnc2UucHJlLCBj bGFzc19yZWYsIHRtcCk7CisJfQogICAgICAgZWxzZQogCXRtcCA9IGZvbGRf Y29udmVydCAoZ2ZjX2FycmF5X2luZGV4X3R5cGUsCiAJCQkgICAgc2l6ZV9p bl9ieXRlcyAoc291cmNlX3R5cGUpKTsKQEAgLTg1NDEsMTUgKzg1NzIsMTQg QEAgZ2ZjX2NvbnZfaW50cmluc2ljX3RyYW5zZmVyIChnZmNfc2UgKiBzZSwg Z2ZjX2V4cHIgKiBleHByKQogCiAgIGlmIChhcmctPmV4cHItPnJhbmsgPT0g MCkKICAgICB7Ci0gICAgICBnZmNfY29udl9leHByX3JlZmVyZW5jZSAoJmFy Z3NlLCBhcmctPmV4cHIpOworICAgICAgZ2ZjX2NvbnZfZXhwcl9yZWZlcmVu Y2UgKCZhcmdzZSwgbW9sZF9leHByKTsKICAgICAgIG1vbGRfdHlwZSA9IFRS RUVfVFlQRSAoYnVpbGRfZm9sZF9pbmRpcmVjdF9yZWZfbG9jIChpbnB1dF9s b2NhdGlvbiwKIAkJCQkJCQkgIGFyZ3NlLmV4cHIpKTsKICAgICB9CiAgIGVs c2UKICAgICB7Ci0gICAgICBnZmNfaW5pdF9zZSAoJmFyZ3NlLCBOVUxMKTsK ICAgICAgIGFyZ3NlLndhbnRfcG9pbnRlciA9IDA7Ci0gICAgICBnZmNfY29u dl9leHByX2Rlc2NyaXB0b3IgKCZhcmdzZSwgYXJnLT5leHByKTsKKyAgICAg IGdmY19jb252X2V4cHJfZGVzY3JpcHRvciAoJmFyZ3NlLCBtb2xkX2V4cHIp OwogICAgICAgbW9sZF90eXBlID0gZ2ZjX2dldF9lbGVtZW50X3R5cGUgKFRS RUVfVFlQRSAoYXJnc2UuZXhwcikpOwogICAgIH0KIApAQCAtODU2MCwyNyAr ODU5MCw0MSBAQCBnZmNfY29udl9pbnRyaW5zaWNfdHJhbnNmZXIgKGdmY19z ZSAqIHNlLCBnZmNfZXhwciAqIGV4cHIpCiAgICAgewogICAgICAgLyogSWYg dGhpcyBUUkFOU0ZFUiBpcyBuZXN0ZWQgaW4gYW5vdGhlciBUUkFOU0ZFUiwg dXNlIGEgdHlwZQogCSB0aGF0IHByZXNlcnZlcyBhbGwgYml0cy4gICovCi0g ICAgICBpZiAoYXJnLT5leHByLT50cy50eXBlID09IEJUX0xPR0lDQUwpCi0J bW9sZF90eXBlID0gZ2ZjX2dldF9pbnRfdHlwZSAoYXJnLT5leHByLT50cy5r aW5kKTsKKyAgICAgIGlmIChtb2xkX2V4cHItPnRzLnR5cGUgPT0gQlRfTE9H SUNBTCkKKwltb2xkX3R5cGUgPSBnZmNfZ2V0X2ludF90eXBlIChtb2xkX2V4 cHItPnRzLmtpbmQpOwogICAgIH0KIAogICAvKiBPYnRhaW4gdGhlIGRlc3Rp bmF0aW9uIHdvcmQgbGVuZ3RoLiAgKi8KLSAgc3dpdGNoIChhcmctPmV4cHIt PnRzLnR5cGUpCisgIHN3aXRjaCAobW9sZF9leHByLT50cy50eXBlKQogICAg IHsKICAgICBjYXNlIEJUX0NIQVJBQ1RFUjoKLSAgICAgIHRtcCA9IHNpemVf b2Zfc3RyaW5nX2luX2J5dGVzIChhcmctPmV4cHItPnRzLmtpbmQsIGFyZ3Nl LnN0cmluZ19sZW5ndGgpOwotICAgICAgbW9sZF90eXBlID0gZ2ZjX2dldF9j aGFyYWN0ZXJfdHlwZV9sZW4gKGFyZy0+ZXhwci0+dHMua2luZCwKKyAgICAg IHRtcCA9IHNpemVfb2Zfc3RyaW5nX2luX2J5dGVzIChtb2xkX2V4cHItPnRz LmtpbmQsIGFyZ3NlLnN0cmluZ19sZW5ndGgpOworICAgICAgbW9sZF90eXBl ID0gZ2ZjX2dldF9jaGFyYWN0ZXJfdHlwZV9sZW4gKG1vbGRfZXhwci0+dHMu a2luZCwKIAkJCQkJICAgICAgYXJnc2Uuc3RyaW5nX2xlbmd0aCk7CiAgICAg ICBicmVhazsKICAgICBjYXNlIEJUX0NMQVNTOgotICAgICAgdG1wID0gZ2Zj X2NsYXNzX3Z0YWJfc2l6ZV9nZXQgKGFyZ3NlLmV4cHIpOworICAgICAgaWYg KHNjYWxhcl9tb2xkKQorCWNsYXNzX3JlZiA9IGFyZ3NlLmV4cHI7CisgICAg ICBlbHNlCisJY2xhc3NfcmVmID0gVFJFRV9PUEVSQU5EIChhcmdzZS5leHBy LCAwKTsKKyAgICAgIHRtcCA9IGdmY19jbGFzc192dGFiX3NpemVfZ2V0IChj bGFzc19yZWYpOworICAgICAgaWYgKFVOTElNSVRFRF9QT0xZIChhcmctPmV4 cHIpKQorCXRtcCA9IGdmY19yZXNpemVfY2xhc3Nfc2l6ZV93aXRoX2xlbiAo JmFyZ3NlLnByZSwgY2xhc3NfcmVmLCB0bXApOwogICAgICAgYnJlYWs7CiAg ICAgZGVmYXVsdDoKICAgICAgIHRtcCA9IGZvbGRfY29udmVydCAoZ2ZjX2Fy cmF5X2luZGV4X3R5cGUsIHNpemVfaW5fYnl0ZXMgKG1vbGRfdHlwZSkpOwog ICAgICAgYnJlYWs7CiAgICAgfQotICBkZXN0X3dvcmRfbGVuID0gZ2ZjX2Ny ZWF0ZV92YXIgKGdmY19hcnJheV9pbmRleF90eXBlLCBOVUxMKTsKLSAgZ2Zj X2FkZF9tb2RpZnkgKCZzZS0+cHJlLCBkZXN0X3dvcmRfbGVuLCB0bXApOwor CisgIC8qIERvIG5vdCBmaXggZGVzdF93b3JkX2xlbiBpZiBpdCBpcyBhIHZh cmlhYmxlLCBzaW5jZSB0aGUgdGVtcG9yYXJ5IGNhbiB3aW5kCisgICAgIHVw IGJlaW5nIHVzZWQgYmVmb3JlIHRoZSBhc3NpZ25tZW50LiAgKi8KKyAgaWYg KG1vbGRfZXhwci0+dHMudHlwZSA9PSBCVF9DSEFSQUNURVIgJiYgbW9sZF9l eHByLT50cy5kZWZlcnJlZCkKKyAgICBkZXN0X3dvcmRfbGVuID0gdG1wOwor ICBlbHNlCisgICAgeworICAgICAgZGVzdF93b3JkX2xlbiA9IGdmY19jcmVh dGVfdmFyIChnZmNfYXJyYXlfaW5kZXhfdHlwZSwgTlVMTCk7CisgICAgICBn ZmNfYWRkX21vZGlmeSAoJnNlLT5wcmUsIGRlc3Rfd29yZF9sZW4sIHRtcCk7 CisgICAgfQogCiAgIC8qIEZpbmFsbHkgY29udmVydCBTSVpFLCBpZiBpdCBp cyBwcmVzZW50LiAgKi8KICAgYXJnID0gYXJnLT5uZXh0OwpkaWZmIC0tZ2l0 IGEvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9zdG9yYWdlX3NpemVfNy5m OTAgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL3N0b3JhZ2Vfc2l6ZV83 LmY5MApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u ZTMyY2ExYjZhMGUKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRl L2dmb3J0cmFuLmRnL3N0b3JhZ2Vfc2l6ZV83LmY5MApAQCAtMCwwICsxLDkx IEBACishIHsgZGctZG8gcnVuIH0KKyEgRml4IFNUT1JBR0VfU0laRSBpbnRy aW5zaWMgZm9yIHBvbHltb3JwaGljIGFyZ3VtZW50cyBQUjg0MDA2IGFuZCBQ UjEwMDAyNy4KKyEgQ29udHJpYnV0ZWQgYnkgU3RldmUgS2FyZ2wgIDxrYXJn bHNAY29tY2FzdC5uZXQ+CishICAgICAgICAgICAgYW5kIEpvc8OpIFJ1aSBG YXVzdGlubyBkZSBTb3VzYSAgPGpyZnNvdXNhQGdjYy5nbnUub3JnPgorcHJv Z3JhbSBwCisgIHVzZSwgaW50cmluc2ljIDo6IElTT19GT1JUUkFOX0VOViwg b25seTogaW50NjQKKyAgdHlwZSB0CisgICAgaW50ZWdlciBpCisgIGVuZCB0 eXBlCisgIHR5cGUgcworICAgIGNsYXNzKHQpLCBhbGxvY2F0YWJsZSA6OiBj KDopCisgIGVuZCB0eXBlCisgIGludGVnZXIgOjogcnNsdCwgY2xhc3NfcnNs dAorICBpbnRlZ2VyKGtpbmQ9aW50NjQpLCB0YXJnZXQgOjogdGd0CisgIGNs YXNzKHQpLCBhbGxvY2F0YWJsZSwgdGFyZ2V0IDo6IHRfYWxsb2MoOikKKyAg Y2xhc3MocyksIGFsbG9jYXRhYmxlLCB0YXJnZXQgOjogc19hbGxvYyg6KQor ICBjaGFyYWN0ZXIoOiksIGFsbG9jYXRhYmxlLCB0YXJnZXQgOjogY2hyKDop CisgIGNsYXNzKCopLCBwb2ludGVyIDo6IHB0cl9zLCBwdHJfYSg6KQorCisg IGFsbG9jYXRlICh0X2FsbG9jKDIpLCBzb3VyY2U9dCgxKSkKKyAgcnNsdCA9 IHN0b3JhZ2Vfc2l6ZSh0X2FsbG9jKDEpKSAgICAgICEgU2NhbGFyIGFyZyAt IHRoZSBvcmlnaW5hbCB0ZXN0Y2FzZQorICBpZiAocnNsdCAubmUuIDMyKSBz dG9wIDEKKworICByc2x0ID0gc3RvcmFnZV9zaXplKHRfYWxsb2MpICAgICAg ICAgISBBcnJheSBhcmcKKyAgaWYgKHJzbHQgLm5lLiAzMikgc3RvcCAyCisK KyAgY2FsbCBwcjEwMDAyNworCisgIGFsbG9jYXRlIChzX2FsbG9jKDIpLCBz b3VyY2U9cyhbdCgxKSwgdCgyKV0pKQorISBUaGlzLCBvZiBjb3Vyc2UsIGlz IHByb2Nlc3NvciBkZXBlbmRlbnQ6IGdmb3J0cmFuIGdpdmVzIDU3NiwgTkFH IDQ0OAorISBhbmQgSW50ZWwgMTIxNi4KKyAgY2xhc3NfcnNsdCA9IHN0b3Jh Z2Vfc2l6ZShzX2FsbG9jKSAgICEgVHlwZSB3aXRoIGEgY2xhc3MgY29tcG9u ZW50CisgIHB0cl9zID0+IHNfYWxsb2MoMikKKyEgSG93ZXZlciwgdGhlIHVu bGltaXRlZCBwb2x5bW9ycGhpYyByZXN1bHQgc2hvdWxkIGJlIHRoZSBzYW1l CisgIGlmIChzdG9yYWdlX3NpemUgKHB0cl9zKSAubmUuIGNsYXNzX3JzbHQp IHN0b3AgMworICBwdHJfYSA9PiBzX2FsbG9jCisgIGlmIChzdG9yYWdlX3Np emUgKHB0cl9hKSAubmUuIGNsYXNzX3JzbHQpIHN0b3AgNAorCisgIHJzbHQg PSBzdG9yYWdlX3NpemUoc19hbGxvYygxKSVjKDIpKSAhIFNjYWxhciBjb21w b25lbnQgYXJnCisgIGlmIChyc2x0IC5uZS4gMzIpIHN0b3AgNQorCisgIHJz bHQgPSBzdG9yYWdlX3NpemUoc19hbGxvYygxKSVjKSAgICAhIFNjYWxhciBj b21wb25lbnQgb2YgYXJyYXkgYXJnCisgIGlmIChyc2x0IC5uZS4gMzIpIHN0 b3AgNgorCisgIHB0cl9zID0+IHRndAorICByc2x0ID0gc3RvcmFnZV9zaXpl IChwdHJfcykgICAgICAgICAgISBJTlRFR0VSKDgpIHRhcmdldAorICBpZiAo cnNsdCAubmUuIDY0KSBzdG9wIDcKKworICBhbGxvY2F0ZSAoY2hyKDIpLCBz b3VyY2UgPSBbImFiY2RlIiwgImZnaGlqIl0pCisgIHB0cl9zID0+IGNocigy KQorICByc2x0ID0gc3RvcmFnZV9zaXplIChwdHJfcykgICAgICAgICAgISBD SEFSQUNURVIoNSkgc2NhbGFyCisgIGlmIChyc2x0IC5uZS4gNDApIHN0b3Ag OAorCisgIHB0cl9hID0+IGNocgorICByc2x0ID0gc3RvcmFnZV9zaXplIChw dHJfYSkgICAgICAgICAgISBDSEFSQUNURVIoNSkgYXJyYXkKKyAgaWYgKHJz bHQgLm5lLiA0MCkgc3RvcCA5CisKKyAgZGVhbGxvY2F0ZSAodF9hbGxvYywg c19hbGxvYywgY2hyKSAgICEgRm9yIHZhbGdyaW5kIGNoZWNrCisKK2NvbnRh aW5zCisKKyEgT3JpZ2luYWwgdGVzdGNhc2UgZnJvbSBKb3PDqSBSdWkgRmF1 c3Rpbm8gZGUgU291c2EKKyAgc3Vicm91dGluZSBwcjEwMDAyNworICAgIGlt cGxpY2l0IG5vbmUKKworICAgIGludGVnZXIsIHBhcmFtZXRlciA6OiBuID0g MTEKKworICAgIHR5cGUgOjogZm9vX3QKKyAgICBlbmQgdHlwZSBmb29fdAor CisgICAgdHlwZSwgZXh0ZW5kcyhmb29fdCkgOjogYmFyX3QKKyAgICBlbmQg dHlwZSBiYXJfdAorCisgICAgY2xhc3MoKiksICAgICBwb2ludGVyIDo6IGFw dSg6KQorICAgIGNsYXNzKGZvb190KSwgcG9pbnRlciA6OiBhcGYoOikKKyAg ICBjbGFzcyhiYXJfdCksIHBvaW50ZXIgOjogYXBiKDopCisgICAgdHlwZShi YXJfdCksICAgdGFyZ2V0IDo6IGF0YihuKQorCisgICAgaW50ZWdlciA6OiBt CisKKyAgICBhcHUgPT4gYXRiCisgICAgbSA9IHN0b3JhZ2Vfc2l6ZShhcHUp CisgICAgaWYgKG0gLm5lLiAwKSBzdG9wIDEwCisgICAgYXBmID0+IGF0Ygor ICAgIG0gPSBzdG9yYWdlX3NpemUoYXBmKQorICAgIGlmIChtIC5uZS4gMCkg c3RvcCAxMQorICAgIGFwYiA9PiBhdGIKKyAgICBtID0gc3RvcmFnZV9zaXpl KGFwYikKKyAgICBpZiAobSAubmUuIDApIHN0b3AgMTIKKyAgZW5kCitlbmQg cHJvZ3JhbSBwCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFu LmRnL3RyYW5zZmVyX2NsYXNzXzQuZjkwIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9y dHJhbi5kZy90cmFuc2Zlcl9jbGFzc180LmY5MApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNGEyNzMxYTM0YjAKLS0tIC9kZXYv bnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL3RyYW5zZmVy X2NsYXNzXzQuZjkwCkBAIC0wLDAgKzEsODcgQEAKKyEgeyBkZy1kbyBydW4g fQorIQorISBGaXggVFJBTlNGRVIgaW50cmluc2ljIGZvciB1bmxpbWl0ZWQg cG9seW1vcnBoaWMgU09VUkNFcyAtIFBSOTg1MzQKKyEgTm90ZSB0aGF0IHVu bGltaXRlZCBwb2x5bW9ycGhpYyBNT0xEIGlzIGEgVE9ETy4KKyEKKyEgQ29u dHJpYnV0ZWQgYnkgUGF1bCBUaG9tYXMgIDxwYXVsdEBnY2MuZ251Lm9yZz4K KyEKKyAgdXNlLCBpbnRyaW5zaWMgOjogSVNPX0ZPUlRSQU5fRU5WLCBvbmx5 OiByZWFsMzIKKyAgaW1wbGljaXQgbm9uZQorICBjaGFyYWN0ZXIoKiksIHBh cmFtZXRlciA6OiBzdHJpbmcgPSAiYWJjZGVmZ2giCisgIGNoYXJhY3Rlcihs ZW49OiksIGFsbG9jYXRhYmxlIDo6IHN0cmluZ19hKDopCisgIGNsYXNzKCop LCBhbGxvY2F0YWJsZSA6OiBzdGFyCisgIGNsYXNzKCopLCBhbGxvY2F0YWJs ZSA6OiBzdGFyX2EoOikKKyAgY2hhcmFjdGVyKGxlbj06KSwgYWxsb2NhdGFi bGUgOjogY2hyCisgIGNoYXJhY3RlcihsZW49OiksIGFsbG9jYXRhYmxlIDo6 IGNocl9hKDopCisgIGludGVnZXIgOjogc3osIHN1bTEsIHN1bTIsIGkKKyAg cmVhbChyZWFsMzIpIDo6IHIgPSAxLjAKKworISBQYXJ0IDE6IHdvcmtlZCBj b3JyZWN0bHkKKyAgc3RhciA9IHIKKyAgc3ogPSBzdG9yYWdlX3NpemUgKHN0 YXIpLzgKKyAgYWxsb2NhdGUgKGNoYXJhY3RlcihsZW49c3opIDo6IGNocikK KyAgY2hyID0gdHJhbnNmZXIgKHN0YXIsIGNocikKKyAgc3VtMSA9IHN1bSAo WyhpY2hhcihjaHIoaTppKSksIGkgPSAxLCBzeildKQorICBjaHIgPSB0cmFu c2ZlcigxLjAsIGNocikKKyAgc3VtMiA9IHN1bSAoWyhpY2hhcihjaHIoaTpp KSksIGkgPSAxLCBzeildKQorCisgIGlmIChzeiAvPSBzdG9yYWdlX3NpemUg KHJlYWwzMikvOCkgc3RvcCAxCisgIGlmIChzdW0xIC89IHN1bTIpIHN0b3Ag MgorCisgIGRlYWxsb2NhdGUgKHN0YXIpICEgVGhlIGF1dG9tYXRpYyByZWFs bG9jYXRpb24gY2F1c2VzIGludmFsaWQgd3JpdGVzCisgICAgICAgICAgICAg ICAgICAgICEgYW5kIG1lbW9yeSBsZWFrcy4gRXZlbiB3aXRoIHRoaXMgZGVh bGxvY2F0aW9uCisgICAgICAgICAgICAgICAgICAgICEgVGhlIGludmFsaWQg d3JpdGVzIHN0aWxsIG9jY3VyLgorICBkZWFsbG9jYXRlIChjaHIpCisKKyEg UGFydCAyOiBHb3QgZXZlcnl0aGluZyB3cm9uZyBiZWNhdXNlICdfbGVuJyBm aWVsZCBvZiB1bmxpbWl0ZWQgcG9seW1vcnBoaWMKKyEgZXhwcmVzc2lvbnMg d2FzIG5vdCB1c2VkLgorICBzdGFyID0gc3RyaW5nCisgIHN6ID0gc3RvcmFn ZV9zaXplIChzdGFyKS84CisgIGlmIChzeiAvPSBsZW4gKHN0cmluZykpIHN0 b3AgMyAhIHN0b3JhZ2Vfc2l6ZSBmYWlsZWQKKworICBzeiA9IGxlbiAoc3Ry aW5nKSAhIElnbm9yZSBwcmV2aW91cyBlcnJvciBpbiBzdG9yYWdlX3NpemUK KyAgYWxsb2NhdGUgKGNoYXJhY3RlcihsZW49c3opIDo6IGNocikKKyAgY2hy ID0gdHJhbnNmZXIgKHN0YXIsIGNocikKKyAgc3VtMSA9IHN1bSAoWyhpY2hh cihjaHIoaTppKSksIGkgPSAxLCBzeildKQorICBjaHIgPSB0cmFuc2Zlcihz dHJpbmcsIGNocikKKyAgc3VtMiA9IHN1bSAoWyhpY2hhcihjaHIoaTppKSks IGkgPSAxLCBzeildKQorICBpZiAoc3VtMSAvPSBzdW0yKSBzdG9wIDQgICAg ICAgISB0cmFuc2ZlciBmYWlsZWQKKworISBDaGVjayB0aGF0IGFycmF5cyBh cmUgT0sgZm9yIHRyYW5zZmVyCisgIHN0YXJfYSA9IFsnYWJjZGUnLCdmZ2hp aiddCisgIGFsbG9jYXRlIChjaGFyYWN0ZXIgKGxlbiA9IDUpIDo6IGNocl9h KDIpKQorICBjaHJfYSA9IHRyYW5zZmVyIChzdGFyX2EsIGNocl9hKQorICBp ZiAoYW55IChjaHJfYSAubmUuIFsnYWJjZGUnLCdmZ2hpaiddKSkgc3RvcCA1 CisKKyEgQ2hlY2sgdGhhdCBzdHJpbmcgbGVuZ3RoIGFuZCBzaXplIGFyZSBj b3JyZWN0bHkgaGFuZGxlZAorICBzdHJpbmdfYSA9IFsiYWJjZGVmZ2giLCAi aWprbG1ub3AiXQorICBzdGFyX2EgPSBzdHJpbmdfYTsKKyAgY2hyX2EgPSB0 cmFuc2ZlciAoc3Rhcl9hLCBjaHJfYSkgISBPbGQgc3RyaW5nIGxlbmd0aCB1 c2VkIGZvciBzaXplCisgIGlmIChzaXplKGNocl9hKSAubmUuIDQpIHN0b3Ag NgorICBpZiAobGVuKGNocl9hKSAubmUuIDUpIHN0b3AgNworICBpZiAodHJp bSAoY2hyX2EoMykpIC5uZS4gImtsbW5vIikgc3RvcCA4CisgIGlmIChjaHJf YSg0KSgxOjEpIC5uZS4gInAiKSBzdG9wIDkKKworICBjaHJfYSA9IHRyYW5z ZmVyIChzdGFyX2EsIHN0cmluZ19hKSAhIFVzZSBjb3JyZWN0IHN0cmluZ19s ZW5ndGggZm9yIHBheWxvYWQKKyAgaWYgKHNpemUoY2hyX2EpIC5uZS4gMikg c3RvcCAxMAorICBpZiAobGVuKGNocl9hKSAubmUuIDgpIHN0b3AgMTEKKyAg aWYgKGFueSAoY2hyX2EgLm5lLiBzdHJpbmdfYSkpIHN0b3AgMTIKKworISBD aGVjayB0aGF0IGFuIHVubGltaXRlZCBwb2x5bW9ycGhpYyBmdW5jdGlvbiBy ZXN1bHQgaXMgdHJhbnNmZXJyZWQgT0sKKyAgZGVhbGxvY2F0ZSAoY2hyX2Ep CisgIHN0cmluZ19hID0gWydhYmMnLCAnZGVmJywgJ2hpaiddCisgIGNocl9h ID0gdHJhbnNmZXIgKGZvbyAoc3RyaW5nX2EpLCBzdHJpbmdfYSkKKyAgaWYg KGFueSAoY2hyX2EgLm5lLiBzdHJpbmdfYSkpIHN0b3AgMTMKKworISBGaW5h bGx5LCBjaGVjayB0aGF0IHRoZSBTSVpFIGdpdmVzIGNvcnJlY3QgcmVzdWx0 cyB3aXRoIHVubGltaXRlZCBzb3VyY2VzLgorICBjaHJfYSA9IHRyYW5zZmVy IChzdGFyX2EsIGNocl9hLCA0KQorICBpZiAoY2hyX2EgKDQpIC5uZS4gJ2pr bCcpIHN0b3AgMTQKKworICBkZWFsbG9jYXRlIChzdGFyLCBjaHIsIHN0YXJf YSwgY2hyX2EsIHN0cmluZ19hKQorY29udGFpbnMKKyAgZnVuY3Rpb24gZm9v IChhcmcpIHJlc3VsdChyZXMpCisgICAgY2hhcmFjdGVyKCopLCBpbnRlbnQo aW4pIDo6IGFyZyg6KQorICAgIGNsYXNzKCopLCBhbGxvY2F0YWJsZSA6OiBy ZXMoOikKKyAgICByZXMgPSBhcmcKKyAgZW5kCitlbmQK --000000000000120cbb061827a7ca Content-Type: application/octet-stream; name="Change.Logs" Content-Disposition: attachment; filename="Change.Logs" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lw1puyx61 Rm9ydHJhbjogVW5saW1pdGVkIHBvbHltb3JwaGljIGludHJpbnNpYyBmdW5j dGlvbiBhcmd1bWVudHMgW1BSODQwMDZdCgoyMDI0LTA1LTExICBQYXVsIFRo b21hcyAgPHBhdWx0QGdjYy5nbnUub3JnPgoKZ2NjL2ZvcnRyYW4KCVBSIGZv cnRyYW4vODQwMDYKCVBSIGZvcnRyYW4vMTAwMDI3CglQUiBmb3J0cmFuLzk4 NTM0CgkqIGlyZXNvbHZlLmNjIChnZmNfcmVzb2x2ZV90cmFuc2Zlcik6IEVt aXQgYSBUT0RPIGVycm9yIGZvcgoJdW5saW1pdGVkIHBvbHltb3JwaGljIG1v bGQuCgkqIHRyYW5zLWV4cHIuY2MgKGdmY19yZXNpemVfY2xhc3Nfc2l6ZV93 aXRoX2xlbik6IFVzZSB0aGUgZm9sZAoJZXZlbiBpZiBhIGJsb2NrIGlzIG5v dCBhdmFpbGFibGUgaW4gd2hpY2ggdG8gZml4IHRoZSByZXN1bHQuCgkodHJh bnNfY2xhc3NfYXNzaWdubWVudCk6IEVuYWJsZSBjb3JyZWN0IGFzc2lnbm1l bnQgb2YKCWNoYXJhY3RlciBleHByZXNzaW9ucyB0byB1bmxpbWl0ZWQgcG9s eW1vcnBoaWMgdmFyaWFibGVzIHVzaW5nCglsaHMgX2xlbiBmaWVsZCBhbmQg cnNlIHN0cmluZ19sZW5ndGguCgkqIHRyYW5zLWludHJpbnNpYy5jYyAoZ2Zj X2NvbnZfaW50cmluc2ljX3N0b3JhZ2Vfc2l6ZSk6IEV4dHJhY3QKCXRoZSBj bGFzcyBleHByZXNzaW9uIHNvIHRoYXQgdGhlIHVubGltaXRlZCBwb2x5bW9y cGhpYyBjbGFzcwoJZXhwcmVzc2lvbiBjYW4gYmUgdXNlZCBpbiBnZmNfcmVz aXplX2NsYXNzX3NpemVfd2l0aF9sZW4gdG8KCW9idGFpbiB0aGUgc3RvcmFn ZSBzaXplIGZvciBjaGFyYWN0ZXIgcGF5bG9hZHMuIEd1YXJkIHRoZSB1c2UK CW9mIEdGQ19ERUNMX1NBVkVEX0RFU0NSSVBUT1IgYnkgdGVzdGluZyBmb3Ig REVDTF9MQU5HX1NQRUNJRklDCgl0byBwcmV2ZW50IHRoZSBJQ0UuIEFsc28s IGludmVydCB0aGUgb3JkZXIgdG8gdXNlIHRoZSBjbGFzcwoJZXhwcmVzc2lv biBleHRyYWN0ZWQgZnJvbSB0aGUgYXJndW1lbnQuCgkoZ2ZjX2NvbnZfaW50 cmluc2ljX3RyYW5zZmVyKTogSW4gc2FtZSB3YXkgYXMgJ3N0b3JhZ2Vfc2l6 ZScsCgl1c2UgdGhlIF9sZW4gZmllbGQgdG8gb2J0YWluaW5nIHRoZSBjb3Jy ZWN0IGxlbmd0aCBmb3IgYXJnIDEuCglBZGQgYSBicmFuY2ggZm9yIHRoZSBl bGVtZW50IHNpemUgaW4gYnl0ZXMgb2YgY2xhc3MgZXhwcmVzc2lvbnMKCXdp dGggcHJvdmlzaW9uIHRvIG1ha2UgdXNlIG9mIHRoZSB1bmxpbWl0ZWQgcG9s eW1vcnBoaWMgX2xlbgoJZmllbGQuIEFnYWluLCB0aGUgY2xhc3MgcmVmZXJl bmNlcyBhcmUgZXhwbGljaXRseSBpZGVudGlmaWVkLgoJJ21vbGRfZXhwcicg d2FzIGFscmVhZHkgZGVjbGFyZWQuIFVzZSBpdCBpbnN0ZWFkIG9mICdhcmcn LiBEbwoJbm90IGZpeCAnZGVzdF93b3JkX2xlbicgZm9yIGRlZmVycmVkIGNo YXJhY3RlciBzb3VyY2VzIGJlY2F1c2UKCXJlYWxsb2NhdGlvbiBvbiBhc3Np Z24gbWFrZXMgdXNlIG9mIGl0IGJlZm9yZSBpdCBpcyBhc3NpZ25lZC4KCmdj Yy90ZXN0c3VpdGUvCglQUiBmb3J0cmFuLzg0MDA2CglQUiBmb3J0cmFuLzEw MDAyNwoJKiBnZm9ydHJhbi5kZy9zdG9yYWdlX3NpemVfNy5mOTA6IE5ldyB0 ZXN0LgoKCVBSIGZvcnRyYW4vOTg1MzQKCSogZ2ZvcnRyYW4uZGcvdHJhbnNm ZXJfY2xhc3NfNC5mOTA6IE5ldyB0ZXN0Lgo= --000000000000120cbb061827a7ca--