From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Jon Rubens Newsgroups: gmane.emacs.devel Subject: Re: macOS (Cocoa) alpha-background Date: Thu, 27 Jun 2024 17:38:29 -0700 Message-ID: References: <87ttn4spio.fsf@yahoo.com> <871qa6qj5l.fsf@yahoo.com> Reply-To: jonathanrubens@gmail.com Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="000000000000f76629061be878e8" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="13526"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Po Lu , emacs-devel@gnu.org To: Stefan Kangas Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Fri Jun 28 02:39:51 2024 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1sMzeZ-0003O5-CY for ged-emacs-devel@m.gmane-mx.org; Fri, 28 Jun 2024 02:39:51 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sMzdm-0000Wf-4Q; Thu, 27 Jun 2024 20:39:02 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sMzdj-0000WR-FZ for emacs-devel@gnu.org; Thu, 27 Jun 2024 20:39:00 -0400 Original-Received: from mail-ej1-x62b.google.com ([2a00:1450:4864:20::62b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1sMzdh-00078X-Tq for emacs-devel@gnu.org; Thu, 27 Jun 2024 20:38:59 -0400 Original-Received: by mail-ej1-x62b.google.com with SMTP id a640c23a62f3a-a72af03ebdfso4058666b.3 for ; Thu, 27 Jun 2024 17:38:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1719535136; x=1720139936; darn=gnu.org; h=cc:to:subject:message-id:date:from:reply-to:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=pKtzDS6cxxAYMR8sVcXMxLGK4K12pHC4xUdIFEGB74A=; b=ngXS7zVw5FglOVhOHMOgj71wvZAFQa6tAlxf4vSzbDx1Ug8OENMStHgziFpDYhIHs/ hA2DAkkJozaGLzAoAGxowzCFMsEzqabYeDodb/mg19UonJWu01XYWiufVcqlaE4cCaaH AbRgogKw1YmF8XkyHXMPVVjd6uu3yfn97udigNZc97OFwCWH++w4FWf/q38noQ1Bnqgf 5mWRr0Ke2y6x9DE1oyezv5XW6wdZD2eSEeQxWPgToWbbuPURM6KmIVJYzL8BQlOxLdXz qT2G6gBHub1MvbfIP3vqllDIzmddqf75e+k08+HrdvbMtGzte9I0pSInnRckrCAZVqY1 E43w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719535136; x=1720139936; h=cc:to:subject:message-id:date:from:reply-to:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=pKtzDS6cxxAYMR8sVcXMxLGK4K12pHC4xUdIFEGB74A=; b=dW+L6taX9G81xpj1mjVWzSfUEVqR5zogMp5hX/AynVa6Nblg5KrmnEGkkcwBv9pcck vvRQXejgN992PWFe6Btfsd8n17MzzieYTyojggVx/M2oTpTR6wBCF8Co7FJFthgcpUB7 uHAyaKm8qHNl/oALu/IwAf8TKDCYZMtxaYml5Hv6OAer32wigfIq4AFz7nuRhST7Bmki Is/qLVF7DI8zBytFgdT8vW88LA4Hneu5+VecqOBiB12NEqgyXFpuYIobaFkKP0nI5Li3 i5+Eu6ujTMzVbsyoQfMUOr263Tv9hOmkEYk687gcEQHS8ILnlG1VtV/9GU78CVOUG3mF Zdeg== X-Forwarded-Encrypted: i=1; AJvYcCX4tnJodPNviLaavxkthRBEdKtBOouIeu3ALxZVp8/WBCnik/xz09j6t6Hqh2bIhDzV/9seyr8nnTgsg+MJQjReMUJN X-Gm-Message-State: AOJu0YysOlRy2Pzl1gvK9rBATiKyzQOISBHfFjl9zGrga5ow1Ad12Q4G oqLogGJQhCX835PngmMeRO7Z025V8RtUn4VoBzF4VMAFCyls+Z3LkvCiD49Mc6HRDhU8kGF6n1I C8J5aluoF+p23ZXoHLh92BEXSHK4= X-Google-Smtp-Source: AGHT+IG07Kgv+QnZqYbk/L9dPB2YDm6xrXCCUP3NeyIKiiqjSxYXITmY7hkVk/jwlZIgqtadOggNCSdMbRFp1ObOEr4= X-Received: by 2002:a17:906:3c3:b0:a6f:b08b:86ca with SMTP id a640c23a62f3a-a7245df73b4mr920326466b.75.1719535136097; Thu, 27 Jun 2024 17:38:56 -0700 (PDT) In-Reply-To: Received-SPF: pass client-ip=2a00:1450:4864:20::62b; envelope-from=jonathan.rubens@gmail.com; helo=mail-ej1-x62b.google.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, FREEMAIL_REPLYTO=1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:320787 Archived-At: --000000000000f76629061be878e8 Content-Type: text/plain; charset="UTF-8" > Copyright Form sent off-list. Sent in the completed form. Attached is an updated patch with the proper formatting updated for Emacs-30. -- Jon --000000000000f76629061be878e8 Content-Type: application/octet-stream; name="0001-Add-alpha-background-feature-to-MacOS-Emacs.patch" Content-Disposition: attachment; filename="0001-Add-alpha-background-feature-to-MacOS-Emacs.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lxxys5fk0 RnJvbSAyNjk1ZTgwNzY0YmQyNTRkMTJkYjNhNjI3ZDJjMDIwYjEwMmJmMzM3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb25hdGhhbiBSdWJlbnMgPGpvbmF0aGFucnViZW5zQGdtYWls LmNvbT4KRGF0ZTogVGh1LCAyNyBKdW4gMjAyNCAxNjo1MjozNiAtMDcwMApTdWJqZWN0OiBbUEFU Q0hdIEFkZCBhbHBoYS1iYWNrZ3JvdW5kIGZlYXR1cmUgdG8gTWFjT1MgRW1hY3MKCi0tLQogc3Jj L21hY2ZvbnQubSB8IDEwICsrKysrKysrLS0KIHNyYy9uc2Zucy5tICAgfCA0MiArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLQogc3JjL25zdGVybS5tICB8IDUyICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLQogMyBmaWxlcyBj aGFuZ2VkLCA3NCBpbnNlcnRpb25zKCspLCAzMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmMvbWFjZm9udC5tIGIvc3JjL21hY2ZvbnQubQppbmRleCBlM2IzZDQwZGY0My4uYTIwNDRmMjNi OWQgMTAwNjQ0Ci0tLSBhL3NyYy9tYWNmb250Lm0KKysrIGIvc3JjL21hY2ZvbnQubQpAQCAtMjk5 NCw5ICsyOTk0LDE0IEBAIFNvIHdlIHVzZSBDVEZvbnREZXNjcmlwdG9yQ3JlYXRlTWF0Y2hpbmdG b250RGVzY3JpcHRvciAobm8KICAgICAgICAgICAgIENHX1NFVF9GSUxMX0NPTE9SX1dJVEhfRkFD RV9GT1JFR1JPVU5EIChjb250ZXh0LCBmYWNlKTsKICAgICAgICAgICBlbHNlCiAgICAgICAgICAg ICBDR19TRVRfRklMTF9DT0xPUl9XSVRIX0ZSQU1FX0NVUlNPUiAoY29udGV4dCwgZik7Ci0gICAg ICAgIH0KKwkgIENHQ29udGV4dFNldEFscGhhIChjb250ZXh0LCAxKTsKKwl9CiAgICAgICBlbHNl Ci0gICAgICAgIENHX1NFVF9GSUxMX0NPTE9SX1dJVEhfRkFDRV9CQUNLR1JPVU5EIChjb250ZXh0 LCBmYWNlKTsKKwl7CisJICBDR0NvbnRleHRTZXRBbHBoYSAoY29udGV4dCwgZi0+YWxwaGFfYmFj a2dyb3VuZCk7CisJICBDR19TRVRfRklMTF9DT0xPUl9XSVRIX0ZBQ0VfQkFDS0dST1VORCAoY29u dGV4dCwgZmFjZSk7CisJfQorICAgICAgQ0dDb250ZXh0Q2xlYXJSZWN0IChjb250ZXh0LCBiYWNr Z3JvdW5kX3JlY3QpOwogICAgICAgQ0dDb250ZXh0RmlsbFJlY3RzIChjb250ZXh0LCAmYmFja2dy b3VuZF9yZWN0LCAxKTsKICAgICB9CiAKQEAgLTMwMDUsNiArMzAxMCw3IEBAIFNvIHdlIHVzZSBD VEZvbnREZXNjcmlwdG9yQ3JlYXRlTWF0Y2hpbmdGb250RGVzY3JpcHRvciAobm8KICAgICAgIENH QWZmaW5lVHJhbnNmb3JtIGF0Zm07CiAKICAgICAgIENHQ29udGV4dFNjYWxlQ1RNIChjb250ZXh0 LCAxLCAtMSk7CisgICAgICBDR0NvbnRleHRTZXRBbHBoYSAoY29udGV4dCwgMSk7CiAgICAgICBp ZiAocy0+aGwgPT0gRFJBV19DVVJTT1IpCiAgICAgICAgIHsKICAgICAgICAgICBpZiAoZmFjZSAm JiAoTlNfRkFDRV9CQUNLR1JPVU5EIChmYWNlKQpkaWZmIC0tZ2l0IGEvc3JjL25zZm5zLm0gYi9z cmMvbnNmbnMubQppbmRleCBhZGQ3YTkzZGZiYS4uNmVlMGY5Y2Y3MDcgMTAwNjQ0Ci0tLSBhL3Ny Yy9uc2Zucy5tCisrKyBiL3NyYy9uc2Zucy5tCkBAIC0yOTksNyArMjk5LDcgQEAgVHVybiB0aGUg aW5wdXQgbWVudSAoYW4gTlNNZW51KSBpbnRvIGEgbGlzcCBsaXN0IGZvciB0cmFja2luZyBvbiBs aXNwIHNpZGUuCiAgIHN0cnVjdCBmYWNlICpmYWNlOwogICBOU0NvbG9yICpjb2w7CiAgIE5TVmll dyAqdmlldyA9IEZSQU1FX05TX1ZJRVcgKGYpOwotICBFbWFjc0NHRmxvYXQgYWxwaGE7CisgIEVt YWNzQ0dGbG9hdCBhbHBoYSA9IGYtPmFscGhhX2JhY2tncm91bmQ7CiAKICAgYmxvY2tfaW5wdXQg KCk7CiAgIGlmIChuc19saXNwX3RvX2NvbG9yIChhcmcsICZjb2wpKQpAQCAtMzE0LDExICszMTQs MTAgQEAgVHVybiB0aGUgaW5wdXQgbWVudSAoYW4gTlNNZW51KSBpbnRvIGEgbGlzcCBsaXN0IGZv ciB0cmFja2luZyBvbiBsaXNwIHNpZGUuCiAgIGYtPm91dHB1dF9kYXRhLm5zLT5iYWNrZ3JvdW5k X2NvbG9yID0gY29sOwogCiAgIEZSQU1FX0JBQ0tHUk9VTkRfUElYRUwgKGYpID0gW2NvbCB1bnNp Z25lZExvbmddOwotICBhbHBoYSA9IFtjb2wgYWxwaGFDb21wb25lbnRdOwogCiAgIGlmICh2aWV3 ICE9IG5pbCkKICAgICB7Ci0gICAgICBbW3ZpZXcgd2luZG93XSBzZXRCYWNrZ3JvdW5kQ29sb3I6 IGNvbF07CisgICAgICBbW3ZpZXcgd2luZG93XSBzZXRCYWNrZ3JvdW5kQ29sb3I6IFtjb2wgY29s b3JXaXRoQWxwaGFDb21wb25lbnQ6IGFscGhhXV07CiAKICAgICAgIGlmIChhbHBoYSAhPSAoRW1h Y3NDR0Zsb2F0KSAxLjApCiAgICAgICAgICAgW1t2aWV3IHdpbmRvd10gc2V0T3BhcXVlOiBOT107 CkBAIC0zMjgsMTAgKzMyNyw3IEBAIFR1cm4gdGhlIGlucHV0IG1lbnUgKGFuIE5TTWVudSkgaW50 byBhIGxpc3AgbGlzdCBmb3IgdHJhY2tpbmcgb24gbGlzcCBzaWRlLgogICAgICAgZmFjZSA9IEZS QU1FX0RFRkFVTFRfRkFDRSAoZik7CiAgICAgICBpZiAoZmFjZSkKICAgICAgICAgewotICAgICAg ICAgIGNvbCA9IFtOU0NvbG9yIGNvbG9yV2l0aFVuc2lnbmVkTG9uZzpOU19GQUNFX0JBQ0tHUk9V TkQgKGZhY2UpXTsKLSAgICAgICAgICBmYWNlLT5iYWNrZ3JvdW5kID0gW1tjb2wgY29sb3JXaXRo QWxwaGFDb21wb25lbnQ6IGFscGhhXQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVu c2lnbmVkTG9uZ107Ci0KKyAgICAgICAgICBmYWNlLT5iYWNrZ3JvdW5kID0gW2NvbCB1bnNpZ25l ZExvbmddOwogICAgICAgICAgIHVwZGF0ZV9mYWNlX2Zyb21fZnJhbWVfcGFyYW1ldGVyIChmLCBR YmFja2dyb3VuZF9jb2xvciwgYXJnKTsKICAgICAgICAgfQogCkBAIC0zNDQsNiArMzQwLDM2IEBA IFR1cm4gdGhlIGlucHV0IG1lbnUgKGFuIE5TTWVudSkgaW50byBhIGxpc3AgbGlzdCBmb3IgdHJh Y2tpbmcgb24gbGlzcCBzaWRlLgogICB1bmJsb2NrX2lucHV0ICgpOwogfQogCitzdGF0aWMgdm9p ZAorbnNfc2V0X2FscGhhX2JhY2tncm91bmQgKHN0cnVjdCBmcmFtZSAqZiwgTGlzcF9PYmplY3Qg YXJnLCBMaXNwX09iamVjdCBvbGR2YWwpCit7CisgIE5TVmlldyAqdmlldyA9IEZSQU1FX05TX1ZJ RVcgKGYpOworICBkb3VibGUgYWxwaGEgPSAxLjA7CisKKyAgaWYgKE5JTFAgKGFyZykpCisgICAg YWxwaGEgPSAxLjA7CisgIGVsc2UgaWYgKEZMT0FUUCAoYXJnKSkKKyAgICB7CisgICAgICBhbHBo YSA9IFhGTE9BVF9EQVRBIChhcmcpOworICAgICAgaWYgKCEgKDAgPD0gYWxwaGEgJiYgYWxwaGEg PD0gMS4wKSkKKwlhcmdzX291dF9vZl9yYW5nZSAobWFrZV9mbG9hdCAoMC4wKSwgbWFrZV9mbG9h dCAoMS4wKSk7CisgICAgfQorICBlbHNlIGlmIChGSVhOVU1QIChhcmcpKQorICAgIHsKKyAgICAg IEVNQUNTX0lOVCBpYWxwaGEgPSBYRklYTlVNIChhcmcpOworICAgICAgaWYgKCEgKDAgPD0gaWFs cGhhICYmIGlhbHBoYSA8PSAxMDApKQorCWFyZ3Nfb3V0X29mX3JhbmdlIChtYWtlX2ZpeG51bSAo MCksIG1ha2VfZml4bnVtICgxMDApKTsKKyAgICAgIGFscGhhID0gaWFscGhhIC8gMTAwLjA7Cisg ICAgfQorICBlbHNlCisgICAgd3JvbmdfdHlwZV9hcmd1bWVudCAoUW51bWJlcnAsIGFyZyk7CisK KyAgZi0+YWxwaGFfYmFja2dyb3VuZCA9IGFscGhhOworICBbW3ZpZXcgd2luZG93XSBzZXRCYWNr Z3JvdW5kQ29sb3I6IFtmLT5vdXRwdXRfZGF0YS5ucy0+YmFja2dyb3VuZF9jb2xvcgorCQkJCQkg Y29sb3JXaXRoQWxwaGFDb21wb25lbnQ6IGFscGhhXV07CisgIHJlY29tcHV0ZV9iYXNpY19mYWNl cyAoZik7CisgIFNFVF9GUkFNRV9HQVJCQUdFRCAoZik7Cit9CiAKIHN0YXRpYyB2b2lkCiBuc19z ZXRfY3Vyc29yX2NvbG9yIChzdHJ1Y3QgZnJhbWUgKmYsIExpc3BfT2JqZWN0IGFyZywgTGlzcF9P YmplY3Qgb2xkdmFsKQpAQCAtMTEwOSw3ICsxMTM1LDcgQEAgVHVybiB0aGUgaW5wdXQgbWVudSAo YW4gTlNNZW51KSBpbnRvIGEgbGlzcCBsaXN0IGZvciB0cmFja2luZyBvbiBsaXNwIHNpZGUuCiAg IG5zX3NldF96X2dyb3VwLAogICAwLCAvKiB4X3NldF9vdmVycmlkZV9yZWRpcmVjdCAqLwogICBn dWlfc2V0X25vX3NwZWNpYWxfZ2x5cGhzLAotICBndWlfc2V0X2FscGhhX2JhY2tncm91bmQsCisg IG5zX3NldF9hbHBoYV9iYWNrZ3JvdW5kLAogICBOVUxMLAogI2lmZGVmIE5TX0lNUExfQ09DT0EK ICAgbnNfc2V0X2FwcGVhcmFuY2UsCmRpZmYgLS1naXQgYS9zcmMvbnN0ZXJtLm0gYi9zcmMvbnN0 ZXJtLm0KaW5kZXggNzk0NjMwZGUxYzEuLmZlMDlkZTE0MGRkIDEwMDY0NAotLS0gYS9zcmMvbnN0 ZXJtLm0KKysrIGIvc3JjL25zdGVybS5tCkBAIC0yNjI3LDggKzI2MjcsMTAgQEAgSGlkZSB0aGUg d2luZG93IChYMTEgc2VtYW50aWNzKQogCiAgIGJsb2NrX2lucHV0ICgpOwogICBuc19mb2N1cyAo ZiwgJnIsIDEpOwotICBbW05TQ29sb3IgY29sb3JXaXRoVW5zaWduZWRMb25nOk5TX0ZBQ0VfQkFD S0dST1VORAotCQkJICAgIChGQUNFX0ZST01fSUQgKGYsIERFRkFVTFRfRkFDRV9JRCkpXSBzZXRd OworICBbW1tOU0NvbG9yIGNvbG9yV2l0aFVuc2lnbmVkTG9uZzpOU19GQUNFX0JBQ0tHUk9VTkQK KwkJCQkgKEZBQ0VfRlJPTV9JRCAoZiwgREVGQVVMVF9GQUNFX0lEKSldCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb2xvcldpdGhBbHBoYUNvbXBvbmVudDogZi0+YWxwaGEKKyAg ICAgX2JhY2tncm91bmRdIHNldF07CiAgIE5TUmVjdEZpbGwgKHIpOwogICBuc191bmZvY3VzIChm KTsKIApAQCAtMjY1Niw3ICsyNjU4LDggQEAgSGlkZSB0aGUgd2luZG93IChYMTEgc2VtYW50aWNz KQogCiAgIHIgPSBOU0ludGVyc2VjdGlvblJlY3QgKHIsIFt2aWV3IGZyYW1lXSk7CiAgIG5zX2Zv Y3VzIChmLCAmciwgMSk7Ci0gIFtbTlNDb2xvciBjb2xvcldpdGhVbnNpZ25lZExvbmc6TlNfRkFD RV9CQUNLR1JPVU5EIChmYWNlKV0gc2V0XTsKKyAgW1tbTlNDb2xvciBjb2xvcldpdGhVbnNpZ25l ZExvbmc6TlNfRkFDRV9CQUNLR1JPVU5EIChmYWNlKV0KKyAgICAgY29sb3JXaXRoQWxwaGFDb21w b25lbnQ6IGYtPmFscGhhX2JhY2tncm91bmRdIHNldF07CiAKICAgTlNSZWN0RmlsbCAocik7CiAK QEAgLTI3NjAsNyArMjc2Myw4IEBAIEhpZGUgdGhlIHdpbmRvdyAoWDExIHNlbWFudGljcykKICAg ICAgICAgcmV0dXJuOwogCiAgICAgICBuc19mb2N1cyAoZiwgTlVMTCwgMSk7Ci0gICAgICBbW05T Q29sb3IgY29sb3JXaXRoVW5zaWduZWRMb25nOk5TX0ZBQ0VfQkFDS0dST1VORCAoZmFjZSldIHNl dF07CisgICAgICBbW1tOU0NvbG9yIGNvbG9yV2l0aFVuc2lnbmVkTG9uZzpOU19GQUNFX0JBQ0tH Uk9VTkQgKGZhY2UpXQorICAgICAgICAgY29sb3JXaXRoQWxwaGFDb21wb25lbnQ6IGYtPmFscGhh X2JhY2tncm91bmRdIHNldF07CiAgICAgICBOU1JlY3RGaWxsIChOU01ha2VSZWN0ICgwLCBtYXJn aW4sIHdpZHRoLCBib3JkZXIpKTsKICAgICAgIE5TUmVjdEZpbGwgKE5TTWFrZVJlY3QgKDAsIDAs IGJvcmRlciwgaGVpZ2h0KSk7CiAgICAgICBOU1JlY3RGaWxsIChOU01ha2VSZWN0ICgwLCBtYXJn aW4sIHdpZHRoLCBib3JkZXIpKTsKQEAgLTI4MTIsNyArMjgxNiw4IEBAIEhpZGUgdGhlIHdpbmRv dyAoWDExIHNlbWFudGljcykKICAgICAgICAgICBOU1JlY3QgciA9IE5TTWFrZVJlY3QgKDAsIHks IEZSQU1FX1BJWEVMX1dJRFRIIChmKSwgaGVpZ2h0KTsKICAgICAgICAgICBuc19mb2N1cyAoZiwg JnIsIDEpOwogCi0gICAgICAgICAgW1tOU0NvbG9yIGNvbG9yV2l0aFVuc2lnbmVkTG9uZzpOU19G QUNFX0JBQ0tHUk9VTkQgKGZhY2UpXSBzZXRdOworICAgICAgICAgIFtbW05TQ29sb3IgY29sb3JX aXRoVW5zaWduZWRMb25nOk5TX0ZBQ0VfQkFDS0dST1VORCAoZmFjZSldCisgICAgICAgICAgICAg Y29sb3JXaXRoQWxwaGFDb21wb25lbnQ6IGYtPmFscGhhX2JhY2tncm91bmRdIHNldF07CiAgICAg ICAgICAgTlNSZWN0RmlsbCAoTlNNYWtlUmVjdCAoMCwgeSwgd2lkdGgsIGhlaWdodCkpOwogICAg ICAgICAgIE5TUmVjdEZpbGwgKE5TTWFrZVJlY3QgKEZSQU1FX1BJWEVMX1dJRFRIIChmKSAtIHdp ZHRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHksIHdpZHRoLCBoZWlnaHQp KTsKQEAgLTI5NzYsOCArMjk4MSw4IEBAIEhpZGUgdGhlIHdpbmRvdyAoWDExIHNlbWFudGljcykK ICAgaWYgKCEgTlNJc0VtcHR5UmVjdCAoY2xlYXJSZWN0KSkKICAgICB7CiAgICAgICBOU1RSQUNF X1JFQ1QgKCJjbGVhclJlY3QiLCBjbGVhclJlY3QpOwotCi0gICAgICBbW05TQ29sb3IgY29sb3JX aXRoVW5zaWduZWRMb25nOmZhY2UtPmJhY2tncm91bmRdIHNldF07CisgICAgICBbW1tOU0NvbG9y IGNvbG9yV2l0aFVuc2lnbmVkTG9uZzpmYWNlLT5iYWNrZ3JvdW5kXQorICAgICAgICAgY29sb3JX aXRoQWxwaGFDb21wb25lbnQ6IGYtPmFscGhhX2JhY2tncm91bmRdIHNldF07CiAgICAgICBOU1Jl Y3RGaWxsIChjbGVhclJlY3QpOwogICAgIH0KIApAQCAtMzAwOCw3ICszMDEzLDcgQEAgSGlkZSB0 aGUgd2luZG93IChYMTEgc2VtYW50aWNzKQogICAgICAgZWxzZQogICAgICAgICBibV9jb2xvciA9 IGYtPm91dHB1dF9kYXRhLm5zLT5jdXJzb3JfY29sb3I7CiAKLSAgICAgIFtibV9jb2xvciBzZXRd OworICAgICAgW1tibV9jb2xvciBjb2xvcldpdGhBbHBoYUNvbXBvbmVudDpmLT5hbHBoYV9iYWNr Z3JvdW5kXSBzZXRdOwogICAgICAgW2JtcCBmaWxsXTsKIAogICAgICAgW2JtcCByZWxlYXNlXTsK QEAgLTM3OTcsNyArMzgwMiw4IEBAIEZ1bmN0aW9uIG1vZGVsZWQgYWZ0ZXIgeF9kcmF3X2dseXBo X3N0cmluZ19ib3ggKCkuCiAgIGlmIChzLT5mYWNlLT5ib3ggPT0gRkFDRV9TSU1QTEVfQk9YICYm IHMtPmZhY2UtPmJveF9jb2xvcikKICAgICB7CiAgICAgICBuc19kcmF3X2JveCAociwgYWJzICho dGhpY2tuZXNzKSwgYWJzICh2dGhpY2tuZXNzKSwKLSAgICAgICAgICAgICAgICAgICBbTlNDb2xv ciBjb2xvcldpdGhVbnNpZ25lZExvbmc6ZmFjZS0+Ym94X2NvbG9yXSwKKyAgICAgICAgICAgICAg ICAgICBbW05TQ29sb3IgY29sb3JXaXRoVW5zaWduZWRMb25nOmZhY2UtPmJveF9jb2xvcl0KKyAg ICAgICAgICAgICAgICAgICAgIGNvbG9yV2l0aEFscGhhQ29tcG9uZW50OiBzLT5mLT5hbHBoYV9i YWNrZ3JvdW5kXSwKICAgICAgICAgICAgICAgICAgICBsZWZ0X3AsIHJpZ2h0X3ApOwogICAgIH0K ICAgZWxzZQpAQCAtMzg0Miw3ICszODQ4LDggQEAgRnVuY3Rpb24gbW9kZWxlZCBhZnRlciB4X2Ry YXdfZ2x5cGhfc3RyaW5nX2JveCAoKS4KIAl7CiAJICBpZiAocy0+aGwgIT0gRFJBV19DVVJTT1Ip CiAJICAgIFsoTlNfRkFDRV9CQUNLR1JPVU5EIChmYWNlKSAhPSAwCi0JICAgICAgPyBbTlNDb2xv ciBjb2xvcldpdGhVbnNpZ25lZExvbmc6TlNfRkFDRV9CQUNLR1JPVU5EIChmYWNlKV0KKwkgICAg ICA/IFtbTlNDb2xvciBjb2xvcldpdGhVbnNpZ25lZExvbmc6TlNfRkFDRV9CQUNLR1JPVU5EIChm YWNlKV0KKwkJICAgICAgY29sb3JXaXRoQWxwaGFDb21wb25lbnQ6IHMtPmYtPmFscGhhX2JhY2tn cm91bmRdCiAJICAgICAgOiBGUkFNRV9CQUNLR1JPVU5EX0NPTE9SIChzLT5mKSkgc2V0XTsKIAkg IGVsc2UgaWYgKGZhY2UgJiYgKE5TX0ZBQ0VfQkFDS0dST1VORCAoZmFjZSkKIAkJCSAgICA9PSBb KE5TQ29sb3IgKikgRlJBTUVfQ1VSU09SX0NPTE9SIChzLT5mKQpAQCAtMzk4MSw3ICszOTg4LDgg QEAgRnVuY3Rpb24gbW9kZWxlZCBhZnRlciB4X2RyYXdfZ2x5cGhfc3RyaW5nX2JveCAoKS4KICAg ICAgb3RoZXJ3aXNlLCBzaW5jZSB3ZSBjb21wb3NpdGUgdGhlIGltYWdlIHVuZGVyIE5TIChpbnN0 ZWFkIG9mIG11Y2tpbmcKICAgICAgd2l0aCBpdHMgYmFja2dyb3VuZCBjb2xvciksIHdlIG11c3Qg Y2xlYXIganVzdCB0aGUgaW1hZ2UgYXJlYS4gICovCiAKLSAgW1tOU0NvbG9yIGNvbG9yV2l0aFVu c2lnbmVkTG9uZzpOU19GQUNFX0JBQ0tHUk9VTkQgKGZhY2UpXSBzZXRdOworICBbW1tOU0NvbG9y IGNvbG9yV2l0aFVuc2lnbmVkTG9uZzpOU19GQUNFX0JBQ0tHUk9VTkQgKGZhY2UpXQorICAgICBj b2xvcldpdGhBbHBoYUNvbXBvbmVudDogcy0+Zi0+YWxwaGFfYmFja2dyb3VuZF0gc2V0XTsKIAog ICBpZiAoYmdfaGVpZ2h0ID4gcy0+c2xpY2UuaGVpZ2h0IHx8IHMtPmltZy0+aG1hcmdpbiB8fCBz LT5pbWctPnZtYXJnaW4KICAgICAgIHx8IHMtPmltZy0+bWFzayB8fCBzLT5pbWctPnBpeG1hcCA9 PSAwIHx8IHMtPndpZHRoICE9IHMtPmJhY2tncm91bmRfd2lkdGgpCkBAIC00MDUxLDcgKzQwNTks OCBAQCBGdW5jdGlvbiBtb2RlbGVkIGFmdGVyIHhfZHJhd19nbHlwaF9zdHJpbmdfYm94ICgpLgog ICBpZiAocy0+aGwgPT0gRFJBV19DVVJTT1IpCiAgICAgewogICAgICAgW0ZSQU1FX0NVUlNPUl9D T0xPUiAocy0+Zikgc2V0XTsKLSAgICAgIHRkQ29sID0gW05TQ29sb3IgY29sb3JXaXRoVW5zaWdu ZWRMb25nOiBOU19GQUNFX0JBQ0tHUk9VTkQgKGZhY2UpXTsKKyAgICAgIHRkQ29sID0gW1tOU0Nv bG9yIGNvbG9yV2l0aFVuc2lnbmVkTG9uZzogTlNfRkFDRV9CQUNLR1JPVU5EIChmYWNlKV0KKyAg ICAgICAgICAgICAgICBjb2xvcldpdGhBbHBoYUNvbXBvbmVudDogcy0+Zi0+YWxwaGFfYmFja2dy b3VuZF07CiAgICAgfQogICBlbHNlCiAgICAgdGRDb2wgPSBbTlNDb2xvciBjb2xvcldpdGhVbnNp Z25lZExvbmc6IE5TX0ZBQ0VfRk9SRUdST1VORCAoZmFjZSldOwpAQCAtNDE0NCwxMCArNDE1Mywx MiBAQCBGdW5jdGlvbiBtb2RlbGVkIGFmdGVyIHhfZHJhd19nbHlwaF9zdHJpbmdfYm94ICgpLgog CQlmYWNlID0gRkFDRV9GUk9NX0lEIChzLT5mLCBNT1VTRV9GQUNFX0lEKTsKIAkgICAgICBwcmVw YXJlX2ZhY2VfZm9yX2Rpc3BsYXkgKHMtPmYsIGZhY2UpOwogCi0JICAgICAgW1tOU0NvbG9yIGNv bG9yV2l0aFVuc2lnbmVkTG9uZzogZmFjZS0+YmFja2dyb3VuZF0gc2V0XTsKKwkgICAgICBbW1tO U0NvbG9yIGNvbG9yV2l0aFVuc2lnbmVkTG9uZzogZmFjZS0+YmFja2dyb3VuZF0KKyAgICAgICAg ICAgICAgICAgY29sb3JXaXRoQWxwaGFDb21wb25lbnQ6IHMtPmYtPmFscGhhX2JhY2tncm91bmRd IHNldF07CiAJICAgIH0KIAkgIGVsc2UKLQkgICAgW1tOU0NvbG9yIGNvbG9yV2l0aFVuc2lnbmVk TG9uZzogcy0+ZmFjZS0+YmFja2dyb3VuZF0gc2V0XTsKKwkgICAgW1tbTlNDb2xvciBjb2xvcldp dGhVbnNpZ25lZExvbmc6IHMtPmZhY2UtPmJhY2tncm91bmRdCisgICAgICAgICAgICAgICBjb2xv cldpdGhBbHBoYUNvbXBvbmVudDogcy0+Zi0+YWxwaGFfYmFja2dyb3VuZF0gc2V0XTsKIAkgIE5T UmVjdEZpbGwgKE5TTWFrZVJlY3QgKHgsIHksIHcsIGgpKTsKIAl9CiAgICAgfQpAQCAtNDE3OCw3 ICs0MTg5LDggQEAgRnVuY3Rpb24gbW9kZWxlZCBhZnRlciB4X2RyYXdfZ2x5cGhfc3RyaW5nX2Jv eCAoKS4KIAkgIGVsc2UgaWYgKHMtPnN0aXBwbGVkX3ApCiAJICAgIFtbZHB5aW5mby0+Yml0bWFw c1tzLT5mYWNlLT5zdGlwcGxlIC0gMV0uaW1nIHN0aXBwbGVNYXNrXSBzZXRdOwogCSAgZWxzZQot CSAgICBbW05TQ29sb3IgY29sb3JXaXRoVW5zaWduZWRMb25nOiBzLT5mYWNlLT5iYWNrZ3JvdW5k XSBzZXRdOworCSAgICBbW1tOU0NvbG9yIGNvbG9yV2l0aFVuc2lnbmVkTG9uZzogcy0+ZmFjZS0+ YmFja2dyb3VuZF0KKyAgICAgICAgICAgICAgIGNvbG9yV2l0aEFscGhhQ29tcG9uZW50OiBzLT5m LT5hbHBoYV9iYWNrZ3JvdW5kXSBzZXRdOwogCiAJICBOU1JlY3RGaWxsIChOU01ha2VSZWN0ICh4 LCBzLT55LCBiYWNrZ3JvdW5kX3dpZHRoLCBzLT5oZWlnaHQpKTsKIAl9CkBAIC04NTQ1LDggKzg1 NTcsOCBAQCAtICh2b2lkKXRvZ2dsZUZ1bGxTY3JlZW46IChpZClzZW5kZXIKICAgICAgICAgfQog CiAgICAgICBbdyBzZXRDb250ZW50VmlldzpbZncgY29udGVudFZpZXddXTsKLSAgICAgIFt3IHNl dEJhY2tncm91bmRDb2xvcjogY29sXTsKLSAgICAgIGlmIChbY29sIGFscGhhQ29tcG9uZW50XSAh PSAoRW1hY3NDR0Zsb2F0KSAxLjApCisgICAgICBbdyBzZXRCYWNrZ3JvdW5kQ29sb3I6IFtjb2wg Y29sb3JXaXRoQWxwaGFDb21wb25lbnQ6IGYtPmFscGhhX2JhY2tncm91bmRdXTsKKyAgICAgIGlm IChmLT5hbHBoYV9iYWNrZ3JvdW5kICE9IChFbWFjc0NHRmxvYXQpIDEuMCkKICAgICAgICAgW3cg c2V0T3BhcXVlOiBOT107CiAKICAgICAgIGYtPmJvcmRlcl93aWR0aCA9IFt3IGJvcmRlcldpZHRo XTsKQEAgLTkyODMsOSArOTI5NSw5IEBAIC0gKGluc3RhbmNldHlwZSkgaW5pdFdpdGhFbWFjc0Zy YW1lOiAoc3RydWN0IGZyYW1lICopIGYKICAgICAgIGYtPmJvcmRlcl93aWR0aCA9IFtzZWxmIGJv cmRlcldpZHRoXTsKIAogICAgICAgY29sID0gW05TQ29sb3IgY29sb3JXaXRoVW5zaWduZWRMb25n Ok5TX0ZBQ0VfQkFDS0dST1VORAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChGQUNFX0ZST01fSUQgKGYsIERFRkFVTFRfRkFDRV9JRCkpXTsKLSAgICAgIFtzZWxmIHNldEJh Y2tncm91bmRDb2xvcjpjb2xdOwotICAgICAgaWYgKFtjb2wgYWxwaGFDb21wb25lbnRdICE9IChF bWFjc0NHRmxvYXQpIDEuMCkKKwkJICAgICAgKEZBQ0VfRlJPTV9JRCAoZiwgREVGQVVMVF9GQUNF X0lEKSldOworICAgICAgW3NlbGYgc2V0QmFja2dyb3VuZENvbG9yOltjb2wgY29sb3JXaXRoQWxw aGFDb21wb25lbnQ6Zi0+YWxwaGFfYmFja2dyb3VuZF1dOworICAgICAgaWYgKGYtPmFscGhhX2Jh Y2tncm91bmQgIT0gKEVtYWNzQ0dGbG9hdCkgMS4wKQogICAgICAgICBbc2VsZiBzZXRPcGFxdWU6 Tk9dOwogCiAgICAgICAvKiB0b29sYmFyIHN1cHBvcnQgKi8KLS0gCjIuMzkuMyAoQXBwbGUgR2l0 LTE0NikKCg== --000000000000f76629061be878e8--