From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pl1-x62f.google.com (mail-pl1-x62f.google.com [IPv6:2607:f8b0:4864:20::62f]) by sourceware.org (Postfix) with ESMTPS id 10B1A3858D32; Wed, 10 Apr 2024 08:25:53 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 10B1A3858D32 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 10B1A3858D32 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::62f ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1712737556; cv=none; b=aI1LVrGoAI/6CBLGf9l5Q1N3bCBLQxm3E0dRYxRAx38wK3PHjDkNrbvFBX49/7TUBrgfYYyZKyUvf5Znu+//RPPMd5mDYKVvcQCISYNP6YA1xqFpo9y40o9/a4qDK9s0bCRPxivFedpjTM8t/hdp27DPm/c5NcWntnoIjaCRPGw= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1712737556; c=relaxed/simple; bh=ONEHYohbBovvAvTIvxqFQqMVTgzwP+cS+6MR27vdhmQ=; h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To; b=ZuYeO8spa5CQBWmAE4N4zKwbpVCiptwcUAl0NnYcZRomyEKAK2Wlrtk/TkhMoHn+wJuC0j8Lhd3gApBd7jKNwrbf5v+LcUiXnO6EiH93eiIUVmuQclFPqMcrM1nHTwfgDYj4474R6S2DRlFEYss3j0tBycc5sLalrM4fPHV3HZc= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-pl1-x62f.google.com with SMTP id d9443c01a7336-1e0b889901bso52608665ad.1; Wed, 10 Apr 2024 01:25:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1712737551; x=1713342351; darn=gcc.gnu.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=m2oN0qIv/S2TAKo0iKNh20Ig4Zzdyu7UYFBUSu72bXo=; b=GB5kjU8pqP6XFhZqoiWqf20LKAf3giE+O3CH2DeHUlAsXc7F5u3CGaxR5zWa5CBfHf YYSzSIfkxqFftCru9/+lxxR+s8qPPR5KkE1cuB4nXY5Q1dS9xPQ7syHP5j+n8rAPpSaJ qIZ/QKqG+Kg0bTk7SgP+PQ7dqa7tWXh8o5G7OeTKiHcpRozY1p2I67EsDWhItYpMUOZw udbtmqBFhG166tccEPWgpMTTfiiQjS2q6bVgRCjx8UKfsi2HEDwIv9ZkXcS//O0k4RDt nkg2P1yiIbg2MBunwtGeSiuGdXaKDeDQDJoK4VUA+EPrINZD8/i8u7kmCak0I11mRSbe bM9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712737551; x=1713342351; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=m2oN0qIv/S2TAKo0iKNh20Ig4Zzdyu7UYFBUSu72bXo=; b=SpSMW/lSegC/elscVdFnTBg0GZgHEs37E1dZOBORFxxlRiQbZyYNPC9VnOlMHs2Mkz rnDPKD0wxB1/lbbLqb+ybEsgeOrcoz17azpnhKpoH9nQlecinU6N8yN6DIy5SVfhHE5d HAwlR/AaqMKjPyeaT3BHYcNQnHGG83rD87dPToe4BR1pswsmp9NpBrYOKzOcKJ773HDb LXc0f+kN9wKBqsPnjY/x5BvR0/JkdoHOjr+PWtesK3tB4PvDAU3ZIbeNRT7/j2RImsn3 IlmY/DiEQWzkZFmHcigUt2QulfcpLl++B51BqEyLPrQxwtVWtwlO0COgSVhetmaqArIu nCmg== X-Forwarded-Encrypted: i=1; AJvYcCW4dLI7HVUsu7bPpSLDVGxab1LLzlTSkox7CFoiRUKz3oaxCgRfBPDwJqsG6Tf8BdEcPCFKlOlqkSWnvOWmxS6IP3DXcZrGsQ== X-Gm-Message-State: AOJu0YwpUqFMrcJwMC3unODg80SeJLi1pifaesmJf/jSmHqFZwKTIC4d yprbe9A7T34PCICR5mmTAarnjdhuYJOl/D+zj1PH38kqMJOIojztNk2BNb6Kw8S6RFKo9CIpGDH zJsedLbmo3REy/EvipetfDt+tCePzHKdFN/E= X-Google-Smtp-Source: AGHT+IEW47Sgniydy+ruyaRoYA41GEhPh8ag6p8T6X5bI86hL6Nn+tr9ppBvp2hP3AHKHHB3u/QYNBnQAu1rCTKc/5E= X-Received: by 2002:a17:902:f60f:b0:1e4:6823:ec01 with SMTP id n15-20020a170902f60f00b001e46823ec01mr2101574plg.6.1712737551345; Wed, 10 Apr 2024 01:25:51 -0700 (PDT) MIME-Version: 1.0 From: Paul Richard Thomas Date: Wed, 10 Apr 2024 09:25:39 +0100 Message-ID: Subject: [Patch, fortran] PR113363 - ICE on ASSOCIATE and unlimited polymorphic function To: "fortran@gcc.gnu.org" , gcc-patches Content-Type: multipart/mixed; boundary="000000000000578eb90615b9c9e2" X-Spam-Status: No, score=-7.5 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,HTML_MESSAGE,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: --000000000000578eb90615b9c9e2 Content-Type: multipart/alternative; boundary="000000000000578eb80615b9c9e0" --000000000000578eb80615b9c9e0 Content-Type: text/plain; charset="UTF-8" Hi All, This patch corrects incorrect results from assignment of unlimited polymorphic function results both in assignment statements and allocation with source. The first chunk in trans-array.cc ensures that the array dtype is set to the source dtype. The second chunk ensures that the lhs _len field does not default to zero and so is specific to dynamic types of character. The addition to trans-stmt.cc transforms the source expression, aka expr3, from a derived type of type "STAR" into a proper unlimited polymorphic expression ready for assignment to the newly allocated entity. OK for mainline? Paul Fortran: Fix wrong code in unlimited polymorphic assignment [PR113363] 2024-04-10 Paul Thomas gcc/fortran PR fortran/113363 * trans-array.cc (gfc_array_init_size): Use the expr3 dtype so that the correct element size is used. (gfc_alloc_allocatable_for_assignment): Set the _len field for unlimited polymorphic assignments. * trans-stmt.cc (gfc_trans_allocate): Build a correct rhs for the assignment of an unlimited polymorphic 'source'. gcc/testsuite/ PR fortran/113363 * gfortran.dg/pr113363.f90: New test. --000000000000578eb80615b9c9e0-- --000000000000578eb90615b9c9e2 Content-Type: text/x-patch; charset="US-ASCII"; name="submit.diff" Content-Disposition: attachment; filename="submit.diff" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lutjped90 ZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL3RyYW5zLWFycmF5LmNjIGIvZ2Nj L2ZvcnRyYW4vdHJhbnMtYXJyYXkuY2MKaW5kZXggMzBiODQ3NjIzNDYuLjJm OWEzMmRkYTE1IDEwMDY0NAotLS0gYS9nY2MvZm9ydHJhbi90cmFucy1hcnJh eS5jYworKysgYi9nY2MvZm9ydHJhbi90cmFucy1hcnJheS5jYwpAQCAtNTk1 Nyw2ICs1OTU3LDExIEBAIGdmY19hcnJheV9pbml0X3NpemUgKHRyZWUgZGVz Y3JpcHRvciwgaW50IHJhbmssIGludCBjb3JhbmssIHRyZWUgKiBwb2Zmc2V0 LAogICAgICAgdG1wID0gZ2ZjX2NvbnZfZGVzY3JpcHRvcl9kdHlwZSAoZGVz Y3JpcHRvcik7CiAgICAgICBnZmNfYWRkX21vZGlmeSAocGJsb2NrLCB0bXAs IGdmY19nZXRfZHR5cGVfcmFua190eXBlIChyYW5rLCB0eXBlKSk7CiAgICAg fQorICBlbHNlIGlmIChleHByM19kZXNjICYmIEdGQ19ERVNDUklQVE9SX1RZ UEVfUCAoVFJFRV9UWVBFIChleHByM19kZXNjKSkpCisgICAgeworICAgICAg dG1wID0gZ2ZjX2NvbnZfZGVzY3JpcHRvcl9kdHlwZSAoZGVzY3JpcHRvcik7 CisgICAgICBnZmNfYWRkX21vZGlmeSAocGJsb2NrLCB0bXAsIGdmY19jb252 X2Rlc2NyaXB0b3JfZHR5cGUgKGV4cHIzX2Rlc2MpKTsKKyAgICB9CiAgIGVs c2UKICAgICB7CiAgICAgICB0bXAgPSBnZmNfY29udl9kZXNjcmlwdG9yX2R0 eXBlIChkZXNjcmlwdG9yKTsKQEAgLTExMzI0LDYgKzExMzI5LDkgQEAgZ2Zj X2FsbG9jX2FsbG9jYXRhYmxlX2Zvcl9hc3NpZ25tZW50IChnZmNfbG9vcGlu Zm8gKmxvb3AsCiAJICAgIGdmY19hZGRfbW9kaWZ5ICgmZmJsb2NrLCB0bXAs CiAJCQkgICAgZm9sZF9jb252ZXJ0IChUUkVFX1RZUEUgKHRtcCksCiAJCQkJ CSAgVFlQRV9TSVpFX1VOSVQgKHR5cGUpKSk7CisJICBlbHNlIGlmIChVTkxJ TUlURURfUE9MWSAoZXhwcjIpKQorCSAgICBnZmNfYWRkX21vZGlmeSAoJmZi bG9jaywgdG1wLAorCQkJICAgIGdmY19jbGFzc19sZW5fZ2V0IChUUkVFX09Q RVJBTkQgKGRlc2MsIDApKSk7CiAJICBlbHNlCiAJICAgIGdmY19hZGRfbW9k aWZ5ICgmZmJsb2NrLCB0bXAsCiAJCQkgICAgYnVpbGRfaW50X2NzdCAoVFJF RV9UWVBFICh0bXApLCAwKSk7CmRpZmYgLS1naXQgYS9nY2MvZm9ydHJhbi90 cmFucy1zdG10LmNjIGIvZ2NjL2ZvcnRyYW4vdHJhbnMtc3RtdC5jYwppbmRl eCA3OTk3YzE2N2JhZS4uYzY5NTMwMzNjZjQgMTAwNjQ0Ci0tLSBhL2djYy9m b3J0cmFuL3RyYW5zLXN0bXQuY2MKKysrIGIvZ2NjL2ZvcnRyYW4vdHJhbnMt c3RtdC5jYwpAQCAtNzE4Nyw2ICs3MTg3LDQ1IEBAIGdmY190cmFuc19hbGxv Y2F0ZSAoZ2ZjX2NvZGUgKiBjb2RlLCBnZmNfb21wX25hbWVsaXN0ICpvbXBf YWxsb2NhdGUpCiAJICBnZmNfZXhwciAqcmhzID0gZTNyaHMgPyBlM3JocyA6 IGdmY19jb3B5X2V4cHIgKGNvZGUtPmV4cHIzKTsKIAkgIGZsYWdfcmVhbGxv Y19saHMgPSAwOwogCisJICAvKiBUaGUgaGFuZGxpbmcgb2YgY29kZS0+ZXhw cjMgYWJvdmUgcHJvZHVjZXMgYSBkZXJpdmVkIHR5cGUgb2YKKwkgICAgIHR5 cGUgIlNUQVIiLCB3aG9zZSBzaXplIGRlZmF1bHRzIHRvIHNpemUodm9pZCop LiBJbiBvcmRlciB0bworCSAgICAgaGF2ZSB0aGUgcmlnaHQgdHlwZSBpbmZv cm1hdGlvbiBmb3IgdGhlIGFzc2lnbm1lbnQsIHdlIG11c3QKKwkgICAgIHJl Y29uc3RydWN0IGFuIHVubGltaXRlZCBwb2x5bW9ycGhpYyByaHMuICAqLwor CSAgaWYgKFVOTElNSVRFRF9QT0xZIChjb2RlLT5leHByMykKKwkgICAgICAm JiBlM3JocyAmJiBlM3Jocy0+dHMudHlwZSA9PSBCVF9ERVJJVkVECisJICAg ICAgJiYgIXN0cmNtcCAoZTNyaHMtPnRzLnUuZGVyaXZlZC0+bmFtZSwgIlNU QVIiKSkKKwkgICAgeworCSAgICAgIGdmY19yZWYgKnJlZjsKKwkgICAgICBn Y2NfYXNzZXJ0IChUUkVFX0NPREUgKGV4cHIzX3ZwdHIpID09IENPTVBPTkVO VF9SRUYpOworCSAgICAgIHRtcCA9IGdmY19jcmVhdGVfdmFyIChnZmNfdHlw ZW5vZGVfZm9yX3NwZWMgKCZjb2RlLT5leHByMy0+dHMpLAorCQkJCSAgICAi ZTMiKTsKKwkgICAgICBnZmNfYWRkX21vZGlmeSAoJmJsb2NrLCB0bXAsCisJ CQkgICAgICBnZmNfZ2V0X2NsYXNzX2Zyb21fZXhwciAoZXhwcjNfdnB0cikp OworCSAgICAgIHJocy0+c3ltdHJlZS0+bi5zeW0tPmJhY2tlbmRfZGVjbCA9 IHRtcDsKKwkgICAgICByaHMtPnRzID0gY29kZS0+ZXhwcjMtPnRzOworCSAg ICAgIHJocy0+c3ltdHJlZS0+bi5zeW0tPnRzID0gcmhzLT50czsKKwkgICAg ICBmb3IgKHJlZiA9IGluaXRfZXhwci0+cmVmOyByZWY7IHJlZiA9IHJlZi0+ bmV4dCkKKwkJeworCQkgIC8qIENvcHkgb3ZlciB0aGUgbGhzIF9kYXRhIGNv bXBvbmVudCByZWYgZm9sbG93ZWQgYnkgdGhlCisJCSAgICAgZnVsbCBhcnJh eSByZWZlcmVuY2UgZm9yIHNvdXJjZSBleHByZXNzaW9ucyB3aXRoIHJhbmsu CisJCSAgICAgT3RoZXJ3aXNlLCBqdXN0IGNvcHkgdGhlIF9kYXRhIGNvbXBv bmVudCByZWYuICAqLworCQkgIGlmIChjb2RlLT5leHByMy0+cmFuaworCQkg ICAgICAmJiByZWYgJiYgcmVmLT5uZXh0ICYmICFyZWYtPm5leHQtPm5leHQp CisJCSAgICB7CisJCSAgICAgIHJocy0+cmVmID0gZ2ZjX2NvcHlfcmVmIChy ZWYpOworCQkgICAgICByaHMtPnJlZi0+bmV4dCA9IGdmY19jb3B5X3JlZiAo cmVmLT5uZXh0KTsKKwkJICAgICAgYnJlYWs7CisJCSAgICB9CisJCSAgZWxz ZSBpZiAoKGluaXRfZXhwci0+cmFuayAmJiAhY29kZS0+ZXhwcjMtPnJhbmsK KwkJCSAgICAmJiByZWYgJiYgcmVmLT5uZXh0ICYmICFyZWYtPm5leHQtPm5l eHQpCisJCQkgICB8fCAocmVmICYmICFyZWYtPm5leHQpKQorCQkgICAgewor CQkgICAgICByaHMtPnJlZiA9IGdmY19jb3B5X3JlZiAocmVmKTsKKwkJICAg ICAgYnJlYWs7CisJCSAgICB9CisJCX0KKwkgICAgfQorCiAJICAvKiBTZXQg dGhlIHN5bWJvbCB0byBiZSBhcnRpZmljaWFsIHNvIHRoYXQgdGhlIHJlc3Vs dCBpcyBub3QgZmluYWxpemVkLiAgKi8KIAkgIGluaXRfZXhwci0+c3ltdHJl ZS0+bi5zeW0tPmF0dHIuYXJ0aWZpY2lhbCA9IDE7CiAJICB0bXAgPSBnZmNf dHJhbnNfYXNzaWdubWVudCAoaW5pdF9leHByLCByaHMsIHRydWUsIGZhbHNl LCB0cnVlLApkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5k Zy9wcjExMzM2My5mOTAgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL3By MTEzMzYzLmY5MApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uNzcwMTUzOWZkZmYKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVz dHN1aXRlL2dmb3J0cmFuLmRnL3ByMTEzMzYzLmY5MApAQCAtMCwwICsxLDg2 IEBACishIHsgZGctZG8gcnVuIH0KKyEgVGVzdCB0aGUgZml4IGZvciBjb21t ZW50IDEgaW4gUFIxMTMzNjMsIHdoaWNoIGZhaWxlZCBhcyBpbiBjb21tZW50 cyBiZWxvdy4KKyEgQ29udHJpYnV0ZWQgYnkgSGFyYWxkIEFubGF1ZiAgPGFu bGF1ZkBnY2MuZ251Lm9yZz4KK3Byb2dyYW0gcAorICBpbXBsaWNpdCBub25l CisgIGNsYXNzKCopLCBhbGxvY2F0YWJsZSA6OiB4KDopLCB5CisgIGNoYXJh Y3RlcigqKSwgcGFyYW1ldGVyIDo6IGFycigyKSA9IFsiaGVsbG8gIiwiYnll ICAgIl0sICYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NhID0g IkhhdmUgYSBuaWNlIGRheSIKKworISBCdWcgd2FzIGRldGVjdGVkIGluIHBv bHltb3JwaGljIGFycmF5IGZ1bmN0aW9uIHJlc3VsdHMKKyAgYWxsb2NhdGUo eCwgc291cmNlID0gZm9vICgpKQorICBjYWxsIGNoZWNrMSAoeCwgYXJyKSAg ICAgICAgICAgICAgISBXcm9uZyBvdXRwdXQgIjYgaGVsbG8gZSIKKyAgZGVh bGxvY2F0ZSAoeCkKKyAgeCA9IGZvbyAoKQorICBjYWxsIGNoZWNrMSAoeCwg YXJyKSAgICAgICAgICAgICAgISBXcm9uZyBvdXRwdXQgIjAgICIKKyAgYXNz b2NpYXRlICh2YXIgPT4gZm9vICgpKSAgICAgICAgICEgT0sgYWZ0ZXIgcjE0 LTk0ODktZzNmZDQ2ZDg1OWNkYTEwCisgICAgY2FsbCBjaGVjazEgKHZhciwg YXJyKSAgICAgICAgICAhIE5vdyBPSyAtIG91dHB1dHM6ICI2IGhlbGxvIGJ5 ZSAgICIKKyAgZW5kIGFzc29jaWF0ZQorCishIENoZWNrIHNjYWxhciBmdW5j dGlvbiByZXN1bHRzICAgICAhIEFsbCBPSworICBhbGxvY2F0ZSAoeSwgc291 cmNlID0gYmFyKCkpCisgIGNhbGwgY2hlY2syICh5LCBzY2EpCisgIGRlYWxs b2NhdGUgKHkpCisgIHkgPSBiYXIgKCkKKyAgY2FsbCBjaGVjazIgKHksIHNj YSkKKyAgZGVhbGxvY2F0ZSAoeSkKKyAgYXNzb2NpYXRlICh2YXIgPT4gYmFy ICgpKQorICAgIGNhbGwgY2hlY2syICh2YXIsIHNjYSkKKyAgZW5kIGFzc29j aWF0ZQorCishIEZpbmFsbHkgdmFyaWFibGUgZXhwcmVzc2lvbnMuLi4KKyAg YWxsb2NhdGUgKHksIHNvdXJjZSA9IHgoMSkpICAgICAgICEgR2F2ZSB6ZXJv IGxlbmd0aCBoZXJlCisgIGNhbGwgY2hlY2syICh5LCAiaGVsbG8iKQorICB5 ID0geCgyKSAgICAgICAgICAgICAgICAgICAgICAgICAgISBTZWdmYXVsdGVk IGhlcmUKKyAgY2FsbCBjaGVjazIgKHksICJieWUgICAiKQorICBhc3NvY2lh dGUgKHZhciA9PiB4KDIpKSAgICAgICAgICAgISBHYXZlIHplcm8gbGVuZ3Ro IGhlcmUKKyAgICBjYWxsIGNoZWNrMiAodmFyLCAiYnllICAgIikKKyAgZW5k IGFzc29jaWF0ZQorCishIC4uLmFuZCBjb25zdGFudCBleHByZXNzaW9ucyAg ICAgICAhIEFsbCBPSworICBkZWFsbG9jYXRlKHkpCisgIGFsbG9jYXRlICh5 LCBzb3VyY2UgPSAiYWJjZGUiKQorICBjYWxsIGNoZWNrMiAoeSwgImFiY2Rl IikKKyAgeSA9ICJoaWprbG1ub3BxIgorICBjYWxsIGNoZWNrMiAoeSwgImhp amtsbW5vcHEiKQorICBhc3NvY2lhdGUgKHZhciA9PiAibW5vcHEiKQorICAg IGNhbGwgY2hlY2syICh2YXIsICJtbm9wcSIpCisgIGVuZCBhc3NvY2lhdGUK KyAgZGVhbGxvY2F0ZSAoeCwgeSkKKworY29udGFpbnMKKworICBmdW5jdGlv biBmb28oKSByZXN1bHQocmVzKQorICAgIGNsYXNzKCopLCBhbGxvY2F0YWJs ZSA6OiByZXMoOikKKyAgICByZXMgPSBhcnIKKyAgZW5kIGZ1bmN0aW9uIGZv bworCisgIGZ1bmN0aW9uIGJhcigpIHJlc3VsdChyZXMpCisgICAgY2xhc3Mo KiksIGFsbG9jYXRhYmxlIDo6IHJlcworICAgIHJlcyA9IHNjYQorICBlbmQg ZnVuY3Rpb24gYmFyCisKKyAgc3Vicm91dGluZSBjaGVjazEgKHgsIGNhcmcp CisgICAgY2xhc3MoKiksIGludGVudChpbikgOjogeCg6KQorICAgIGNoYXJh Y3RlcigqKSA6OiBjYXJnKDopCisgICAgc2VsZWN0IHR5cGUgKHgpCisgICAg dHlwZSBpcyAoY2hhcmFjdGVyKCopKQorISAgICAgICBwcmludCAqLCBsZW4o eCksIHgKKyAgICAgIGlmIChhbnkgKHggLm5lLiBjYXJnKSkgc3RvcCAxCisg ICAgY2xhc3MgZGVmYXVsdAorICAgICAgIHN0b3AgMgorICAgIGVuZCBzZWxl Y3QKKyAgZW5kIHN1YnJvdXRpbmUgY2hlY2sxCisKKyAgc3Vicm91dGluZSBj aGVjazIgKHgsIGNhcmcpCisgICAgY2xhc3MoKiksIGludGVudChpbikgOjog eAorICAgIGNoYXJhY3RlcigqKSA6OiBjYXJnCisgICAgc2VsZWN0IHR5cGUg KHgpCisgICAgdHlwZSBpcyAoY2hhcmFjdGVyKCopKQorISAgICAgICBwcmlu dCAqLCBsZW4oeCksIHgKKyAgICAgIGlmICh4IC5uZS4gY2FyZykgc3RvcCAz CisgICAgY2xhc3MgZGVmYXVsdAorICAgICAgIHN0b3AgNAorICAgIGVuZCBz ZWxlY3QKKyAgZW5kIHN1YnJvdXRpbmUgY2hlY2syCitlbmQK --000000000000578eb90615b9c9e2--