From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Drew Adams Newsgroups: gmane.emacs.bugs Subject: bug#19194: [External] : bug#19194: bug#20022: 24.4.90; window-body-height, window-body-width wrong value after text-scale-adjust Date: Thu, 10 Feb 2022 17:39:44 +0000 Message-ID: References: <87h9xm6plp.fsf@gmail.com> <87a6ezb0hn.fsf@gnus.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="_002_SJ0PR10MB5488C871DFDC94D6E0784A48F32F9SJ0PR10MB5488namp_" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="9001"; mail-complaints-to="usenet@ciao.gmane.io" Cc: "20022@debbugs.gnu.org" <20022@debbugs.gnu.org>, "19194@debbugs.gnu.org" <19194@debbugs.gnu.org> To: Lars Ingebrigtsen , Joe Corneli Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Thu Feb 10 19:10:09 2022 Return-path: Envelope-to: geb-bug-gnu-emacs@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 1nIDtQ-0002A7-Pu for geb-bug-gnu-emacs@m.gmane-mx.org; Thu, 10 Feb 2022 19:10:09 +0100 Original-Received: from localhost ([::1]:39724 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nIDtP-0007GG-K2 for geb-bug-gnu-emacs@m.gmane-mx.org; Thu, 10 Feb 2022 13:10:07 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:35236) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nIDX4-0002av-H3 for bug-gnu-emacs@gnu.org; Thu, 10 Feb 2022 12:47:02 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:34866) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nIDQI-0007AR-9l for bug-gnu-emacs@gnu.org; Thu, 10 Feb 2022 12:40:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1nIDQI-0003wy-0W for bug-gnu-emacs@gnu.org; Thu, 10 Feb 2022 12:40:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Drew Adams Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 10 Feb 2022 17:40:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 19194 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: notabug Original-Received: via spool by 19194-submit@debbugs.gnu.org id=B19194.164451479515168 (code B ref 19194); Thu, 10 Feb 2022 17:40:01 +0000 Original-Received: (at 19194) by debbugs.gnu.org; 10 Feb 2022 17:39:55 +0000 Original-Received: from localhost ([127.0.0.1]:56996 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nIDQA-0003wU-UB for submit@debbugs.gnu.org; Thu, 10 Feb 2022 12:39:55 -0500 Original-Received: from mx0b-00069f02.pphosted.com ([205.220.177.32]:10744) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nIDQ7-0003wE-BH; Thu, 10 Feb 2022 12:39:52 -0500 Original-Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 21AFrL62027620; Thu, 10 Feb 2022 17:39:50 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : mime-version; s=corp-2021-07-09; bh=E+OQp8o8KHku5xpXQxb+Qju64Vg2Z+Ml9N2NITyc4KM=; b=vwwsCt+mjtjEIK6l15pOv3NIXE2jfUFilBFlajQ1/9v3SBwzHX5Zc9iqA68T471GhG8j cbR/bXkOtjei61AadaPEBAcOEj1UWwkCIOmmeOtcOH++9+abXEh1a2SqtN2OxDZtaqPD T6F3RCVdoaFNFqDYmVzSZMDs0dDblO0KWmgndioORJzxCsRDPFAao2eGfDbbWKpIwt0x WWg8nawixlgN8nFdriJkKWz81IJSQL34n6bbJBp+vdJKXRiob04au9S3ilQ7ov+uzlrO FAZMy28utYlyMcvhl3ra2XzOfqj7riNoBM8pfHWao6aQmIhAXN09zpVBA0Vm5ILyPff3 6w== Original-Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71]) by mx0b-00069f02.pphosted.com with ESMTP id 3e3hdt0svy-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 10 Feb 2022 17:39:50 +0000 Original-Received: from pps.filterd (aserp3030.oracle.com [127.0.0.1]) by aserp3030.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 21AHaTpR108153; Thu, 10 Feb 2022 17:39:47 GMT Original-Received: from nam11-bn8-obe.outbound.protection.outlook.com (mail-bn8nam11lp2173.outbound.protection.outlook.com [104.47.58.173]) by aserp3030.oracle.com with ESMTP id 3e51rtqw6f-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 10 Feb 2022 17:39:47 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IbYr5SwSRGAXQWf8pmQPi1ZxC3zPALVxgg9YEGBFYy5zfvBWO32WwqmFw2hs34vox31OAzDS+Dwblr121GjffIT5s3Ph4tkCQIe3D6mhUR88MwwnfwPGTVdHAwSnK2+NteyNoOm31dKIUJXiU9dn9hcRWkZs6jajZJdm3QGR4cSoePkfIu3MBHQk6ZnzX8dA4IIEK4/VXKuQ8zWEan9IKBMcmLD6tfgLS9osC2F8/9vqZiVFJJBQKGoMOoPlHENZ38AGqGGct8zK/jRoi8loUSTk/jMAEdewm+nV784DQbduuQTYI4DjjtCLYtv7Bd+dGpINtQ5qMg+NNd6oJoANqw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=E+OQp8o8KHku5xpXQxb+Qju64Vg2Z+Ml9N2NITyc4KM=; b=gU04ApilyjHgBHrZvDnhw/xbDqmlc3L1qAq/o93J6h9MPYIxNn20qZyW0qI+o1mGT/oLI/CO5sOLlTm6XitkMk0bQF6GQtumXlW7HZv/MsKRjv8UCG18scem3yVSxMywKIH0YJmzV/xeNhgahccZ1XzJdSU17vkmPjE7w4sUkJD9oxwNapUtdPJQ3hplVgxAJshIl97vS7UcopawFUPo6AOmh1Kpm0/Hv8lAhzPCSgIn/D9wl6i+L7+fok5AnzAJ6b605gsrVx2LUZZsdy5YiIHcX7uvdD4VSO8edHtg3zBfzQ3YAtZocsVyCZJMGgHOn3T0FstoehYE6etFUWoM+A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=E+OQp8o8KHku5xpXQxb+Qju64Vg2Z+Ml9N2NITyc4KM=; b=GJ7+RXEoQt7eLNU6tVAD3SBHXCIXNnBwTTBt6kgnenzzOVMZqcJNqBkZMOOmImDnao38glpyd4M272Xp98uAad9FBLwMmD+lxgHpd9Dnzakd2XV+oGIlWRwkfKXg/nyFEyPf0BxwI5Wqz/G3TjZChUvSj8F+2a3O9cYDkXahyC0= Original-Received: from SJ0PR10MB5488.namprd10.prod.outlook.com (2603:10b6:a03:37e::19) by CY4PR10MB1943.namprd10.prod.outlook.com (2603:10b6:903:11a::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4951.17; Thu, 10 Feb 2022 17:39:45 +0000 Original-Received: from SJ0PR10MB5488.namprd10.prod.outlook.com ([fe80::99a4:696f:5f30:36b3]) by SJ0PR10MB5488.namprd10.prod.outlook.com ([fe80::99a4:696f:5f30:36b3%7]) with mapi id 15.20.4951.019; Thu, 10 Feb 2022 17:39:44 +0000 Thread-Topic: [External] : bug#19194: bug#20022: 24.4.90; window-body-height, window-body-width wrong value after text-scale-adjust Thread-Index: AQHYHlcSwQJLqUwnAEq+H0hp5PrMLayNCM3w In-Reply-To: <87a6ezb0hn.fsf@gnus.org> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: f0c24b06-c2e0-4750-b311-08d9ecbc5392 x-ms-traffictypediagnostic: CY4PR10MB1943:EE_ x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: dDu8BiU8bPLZpP/Fxv3/M3SS5Wt0X7bw7/xIiXZdWf+1o16Z5CoJshad4MssEBmBywwDwmRF3yCYx8Furmc4XIaojy/liCUIOH5UsjFXnNcDBmSINwYOzcZOfOhKJgnm9slxXrVg0Kbk6iHWi1xuAu55HW2ep/rwQu1/axog3LBwlhBTUAzLgAipNg0nmbS5TPlms0MrjoKmodUyM5W3x0RmhbzZrkc4NtYALEHC8gsP/BSwQzON2qDJ9qB2LBo9HF4Oq6sX7GnzLT631OGaWLg97KSq9fR6ubNx5GezZ6GanTyQaUR2K5ay4QXBx5QQsrOUw4btOoFpIV+ZxSMpyo4lsBJ0NrURje9FzEkfzrpCG3uJyapiCZUjpIQ7zgo4QueP9PzIiOu41j+cjRj/q8u78Cy6q7eNIgo8s3vM/j2ns2oj1qHBQPx8GymOlMMFDtH58/xSYTcjZsQVqqExRSJGbR/Vs0vWn/bEWpDp3FYurXpf8wD7IHIB4exaaZtvYvMuRdqRAI6RjBqW3KC/9y5q7cv8uQShigbcR1EqWzy9SeOXZrjKhhxD8D5E7lKi/wo2O+1SAzKH3KC3h3W3D5WdnbjIXQNfboDpbr50XANOFI+FB+DWoSjBWSSDhC9AoBMUBlZI7HkF5Gz0Jc5+i6U5g4/lCdr51a5OfQUJCdpBbwU48LDL4OuLAgjbq1fN8cI5sMlFdiNfNbLWgy288Q== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SJ0PR10MB5488.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(66476007)(76116006)(66946007)(66556008)(7696005)(26005)(64756008)(9686003)(186003)(55016003)(8936002)(8676002)(33656002)(66446008)(2906002)(5660300002)(52536014)(316002)(44832011)(86362001)(4326008)(6506007)(110136005)(54906003)(99936003)(38100700002)(508600001)(71200400001)(122000001)(38070700005); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: 1XXg4VATRrrBdkBK++IlayU6Vb/LT6t7IelUoZN7zTdcNd1+ADRmC8lN0dOLD8Ag3A2iVB+JsE4q54tQ7huqc1yNWBHLeGuE1tQUzp9MebBjxCyLmCYoDhNACxPHpyzIxBDmNrTsaQCQIyYrBdJztD/TOsuT/MAqtBVvmw3B3vHs2EodWSW+vvpu6lKR5AGIQWgz5PGUbVK0DWagylhOvA5tfSlYN+EcYhLlFsm5WkrCQNiqhqXRn382RE4Nkxhx1q4sjFkrfZj5x2pLzXMjNGOpJnpwvqLZThImORgFZRrxmfhQVkBNnUCWsYuoDX/N18jKZd5KcJ74Q3cDVoINlvcYfVbNMiTBV4T+Ogp+RWtQwIPAGnCpRUIhUh3gwQ3jdsVJjTnBYnrPTPTSRQi4hHcZolNQC1b7UT7Hm/rcpdhopHE3GRfjV0cDRS+7DpGii1goe0xV6ac0e+yjk6NwiHwLlyAcqu7YbXRKX5HwwI6R0kOM2IluIcNgbRJ8NvkUU37Q/RZdqj6pKjL9BmoUC7AK0J+z2xqMafxOYPHcZCbfyBCuserCDwUjOBhD2d+9o46MUP3jl6K9QIYz1T3cjPClRFarTXpktIKy70+k1p05QMwuFrGlp7xBjiW2ADeUUJTQx98B/kuLikQH1ixDy5TXWXQK3qddTKqR4l9WkiJb4Ob8t5Tckpgf+x/hZCEURdNOqu9hqxa6EyXhOWPCYkUGTIN4SN8a/Iojr8uXQ/QjZ4Jr2U0Ib06YDR HmzHcVk7sds0oFq5Aq7BIzEpJSzmrK6IL/qa7hbzFKkQ1xztLFP+cFCMDUbz40TVigRQTLX+DtoZTHAeYkOzHvEyVnQajvaGCX X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SJ0PR10MB5488.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f0c24b06-c2e0-4750-b311-08d9ecbc5392 X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Feb 2022 17:39:44.8672 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: jnrXZKe8O9s7d3GrYwwXSKx96spkGkv3zeBCcaKC/wg3TnWEq0YLgWdtYLyg40sirsYekjqw/r6lHZqhTOCFeg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR10MB1943 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10254 signatures=673431 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 phishscore=0 suspectscore=0 adultscore=0 malwarescore=0 bulkscore=0 spamscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2201110000 definitions=main-2202100093 X-Proofpoint-GUID: hma-5fsyotKO2IR2mio8Xz7csZjqXoZB X-Proofpoint-ORIG-GUID: hma-5fsyotKO2IR2mio8Xz7csZjqXoZB X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:226617 Archived-At: --_002_SJ0PR10MB5488C871DFDC94D6E0784A48F32F9SJ0PR10MB5488namp_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable > > Adjusting the font size, I would expect that the window's "body width" > > would change -- more characters can be fit into the same amount of > > screen space. Current behaviour does not match this expectation. > > > > M-: (window-body-width) RET [Note result.] > > C-x C-- > > M-: (window-body-width) RET [Result is the same.] > > > > The function is described: > > > > "This function returns the width, in columns, of the body of window > > window." > > > > If for some reason the "nominal" number of columns needs to calculated > > with reference to the default font, then there should be another > > function to return the "actual" number of columns. >=20 > Skimming this thread, I think the conclusion here is that these > functions work as designed. `C-x C--' reduces the size of the font in > the current buffer, but the "window body width" concept remains the > same. (I.e., if you create a new buffer and display it, that's what > `window-body-width' is telling you the number of columns for.) >=20 > So I don't think there's anything to do here, and I'm closing this bug > report. The functions work as designed, yes. But the design could be improved. You can decide whether this comment is relevant to this bug report. I think it's related, but it's not exactly the same suggestion/problem. I've proposed an enhancement to optionally resize the window to fit the newly displayed text - shrinking the text shrinks the window etc. This enhancement can free up frame or screen real estate for other windows or frames. This is not the same as the enhancement hinted at in this bug report, which I guess is instead to reflow the text to accommodate/fill the space provided by the changed text size. That makes sense especially if `visual-line-mode' is used. The enhancement I describe makes sense especially if that mode is not used. I've suggested my enhancement before, but it was rejected, even though it's behavior change is optional. I describe it again here, FWIW. I provide the enhancement in the tiny bit of code that is library `face-remap+.el' (attached). It provides a user option, `text-scale-resize-window', and it redefines `text-scale-increase' to respect that option. A patch is trivial. --_002_SJ0PR10MB5488C871DFDC94D6E0784A48F32F9SJ0PR10MB5488namp_ Content-Type: application/octet-stream; name="face-remap+.el" Content-Description: face-remap+.el Content-Disposition: attachment; filename="face-remap+.el"; size=8034; creation-date="Wed, 25 Jul 2018 14:59:04 GMT"; modification-date="Thu, 10 Feb 2022 17:39:44 GMT" Content-Transfer-Encoding: base64 Ozs7IGZhY2UtcmVtYXArLmVsIC0tLSBFeHRlbnNpb25zIHRvIHN0YW5kYXJkIGxpYnJhcnkgYGZh Y2UtcmVtYXAuZWwnLgo7Owo7OyBGaWxlbmFtZTogZmFjZS1yZW1hcCsuZWwKOzsgRGVzY3JpcHRp b246IEV4dGVuc2lvbnMgdG8gc3RhbmRhcmQgbGlicmFyeSBgZmFjZS1yZW1hcC5lbCcuCjs7IEF1 dGhvcjogRHJldyBBZGFtcwo7OyBNYWludGFpbmVyOiBEcmV3IEFkYW1zIChjb25jYXQgImRyZXcu YWRhbXMiICJAIiAib3JhY2xlIiAiLmNvbSIpCjs7IENvcHlyaWdodCAoQykgMjAwOS0yMDE4LCBE cmV3IEFkYW1zLCBhbGwgcmlnaHRzIHJlc2VydmVkLgo7OyBDcmVhdGVkOiBXZWQgSnVuIDE3IDE0 OjI2OjIxIDIwMDkgKC0wNzAwKQo7OyBWZXJzaW9uOiAwCjs7IFBhY2thZ2UtUmVxdWlyZXM6ICgp Cjs7IExhc3QtVXBkYXRlZDogTW9uIEphbiAgMSAxMToxODoxOCAyMDE4ICgtMDgwMCkKOzsgICAg ICAgICAgIEJ5OiBkcmFkYW1zCjs7ICAgICBVcGRhdGUgIzogMTc5Cjs7IFVSTDogaHR0cHM6Ly93 d3cuZW1hY3N3aWtpLm9yZy9lbWFjcy9kb3dubG9hZC9mYWNlLXJlbWFwJTJiLmVsCjs7IERvYyBV Ukw6IGh0dHBzOi8vZW1hY3N3aWtpLm9yZy9lbWFjcy9TZXRGb250cwo7OyBLZXl3b3Jkczogd2lu ZG93IGZyYW1lIGZhY2UgZm9udAo7OyBDb21wYXRpYmlsaXR5OiBHTlUgRW1hY3M6IDIzLngsIDI0 LngsIDI1LngsIDI2LngKOzsKOzsgRmVhdHVyZXMgdGhhdCBtaWdodCBiZSByZXF1aXJlZCBieSB0 aGlzIGxpYnJhcnk6Cjs7Cjs7ICAgYGZhY2UtcmVtYXAnLgo7Owo7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Cjs7Cjs7 OyBDb21tZW50YXJ5Ogo7Owo7Owo7OyAgQ29tbWFuZHMgYHRleHQtc2NhbGUtZGVjcmVhc2UnLCBg dGV4dC1zY2FsZS1pbmNyZWFzZScsIGFuZAo7OyAgYHRleHQtc2NhbGUtYWRqdXN0JyAoYm91bmQg dG8gYEMteCBDLS0nLCBgQy14IEMtKycsIGBDLXggQy09JywgYW5kCjs7ICBgQy14IEMtMCcpIGxl dCB5b3UgcmVzaXplIHRoZSB0ZXh0IGluIHRoZSBjdXJyZW50IGJ1ZmZlciBieQo7OyAgY2hhbmdp bmcgaXRzIHNjYWxlIGZhY3Rvci4gIFdoZW4geW91IHNocmluayBvciBlbmxhcmdlIHRoZQo7OyAg YXBwYXJlbnQgdGV4dCBzaXplIHRoaXMgd2F5LCBob3dldmVyLCB0aGUgd2luZG93IHRha2VzIG5v IG5vdGljZQo7OyAgb2YgaXQuICBJbiBwYXJ0aWN1bGFyLCBhbHRob3VnaCBzaHJpbmtpbmcgdGV4 dCBjYW4gcmVzdWx0IGluIGV4dHJhCjs7ICBob3Jpem9udGFsIHNwYWNlIGF0IHRoZSByaWdodCwg d2luZG93IGNvbW1hbmRzIGRvIG5vdCBzZWUgdGhpcwo7OyAgc3BhY2UgYXMgZXh0cmEuCjs7Cjs7 ICBXaXRoIHRoaXMgbGlicmFyeSwgdXNlciBvcHRpb24gYHRleHQtc2NhbGUtcmVzaXplLXdpbmRv dycgbGV0cyB5b3UKOzsgIGF1dG9tYXRpY2FsbHkgcmVzaXplIHRoZSBzZWxlY3RlZCB3aW5kb3cg KGhvcml6b250YWxseSwKOzsgIHZlcnRpY2FsbHksIG9yIGJvdGgpIHdoZW4gdGV4dCBpcyByZXNp emVkLCBzbyB0aGF0IHRoZSB3YXkgdGhlCjs7ICB3aW5kb3cgZml0cyB0aGUgYnVmZmVyIHRleHQg cmVtYWlucyByZWxhdGl2ZWx5IGNvbnN0YW50Lgo7OyAgU2hyaW5raW5nIHRoZSB0ZXh0IGluIG9u ZSB3aW5kb3cgc2hyaW5rcyB0aGF0IHdpbmRvdywgZ2l2aW5nIG1vcmUKOzsgIHNwYWNlIHRvIGFk amFjZW50IHdpbmRvd3MuCjs7Cjs7ICBJZiB5b3UgYWxzbyB1c2UgbGlicmFyeSBgZml0LWZyYW1l LmVsJywgdGhlbiBvbmUtd2luZG93IGZyYW1lcwo7OyAgYWxzbyByZXNwb25kIHRvIHRleHQgcmVz aXppbmcgYnkgc2NhbGluZy4gIElmIG5vdCwgdGhlbiB0aGUKOzsgIHRleHQtc2NhbGUgY29tbWFu ZHMgaGF2ZSBubyBlZmZlY3Qgb24gZnJhbWUgc2l6ZSBmb3Igb25lLXdpbmRvdwo7OyAgZnJhbWVz Lgo7Owo7OyAgU2VlIGFsc286Cjs7Cjs7ICAqIExpYnJhcnkgYHpvb20tZnJtLmVsJywgd2hpY2gg cHJvdmlkZXMgY29tbWFuZHMgYHpvb20taW4nIGFuZAo7OyAgICBgem9vbS1vdXQnLCB3aGljaCBs ZXQgeW91IHpvb20gdGhlIHRleHQgaW4gYSBidWZmZXIgKGFzIGluIHRleHQKOzsgICAgc2NhbGlu Zykgb3IgdGhlIHRleHQgaW4gYW4gZnJhbWUuICBJbiB0aGUgbGF0dGVyIGNhc2UsIHRoZQo7OyAg ICBkZWZhdWx0IGZvbnQgb2YgdGhlIGZyYW1lIGlzIGVubGFyZ2VkIG9yIHNocnVuayBkeW5hbWlj YWxseS4KOzsKOzsgICogTGlicmFyeSBgZG9yZW1pLWZybS5lbCcsIHdoaWNoIHByb3ZpZGVzIGNv bW1hbmRzCjs7ICAgIGBkb3JlbWktYnVmZmVyLWZvbnQtc2l6ZSsnIGFuZCBgZG9yZW1pLWZyYW1l LWZvbnQtc2l6ZSsnLCB3aGljaAo7OyAgICBwcm92aWRlIGFub3RoZXIgd2F5IHRvIHpvb20gaW5j cmVtZW50YWxseS4KOzsKOzsgIFRvIHVzZSBsaWJyYXJ5IGBmYWNlLXJlbWFwKy5lbCcsIHB1dCBp dCBpbiB5b3VyIGBsb2FkLXBhdGgnIGFuZAo7OyAgcHV0IHRoaXMgc2V4cCBpbiB5b3VyIGluaXQg ZmlsZSAofi8uZW1hY3MpOgo7Owo7OyAgIChyZXF1aXJlICdmYWNlLXJlbWFwKykKOzsKOzsKOzsg IE9wdGlvbnMgKHVzZXIgdmFyaWFibGVzKSBkZWZpbmVkIGhlcmU6Cjs7Cjs7ICAgIGB0ZXh0LXNj YWxlLXJlc2l6ZS13aW5kb3cnLgo7Owo7Owo7OyAgKioqKiogTk9URTogVGhlIGZvbGxvd2luZyBz dGFuZGFyZCBmdW5jdGlvbnMgZGVmaW5lZCBpbiBgZmFjZS1yZW1hcC5lbCcKOzsgICAgICAgICAg ICAgIGhhdmUgYmVlbiBSRURFRklORUQgSEVSRToKOzsKOzsgICAgYHRleHQtc2NhbGUtaW5jcmVh c2UnIC0tIFBvc3NpYmx5IHJlc2l6ZSB0aGUgd2luZG93IG9yIGZyYW1lLgo7Owo7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Cjs7Cjs7OyBDaGFuZ2UgTG9nOgo7Owo7OyAyMDA5LzA2LzIyIGRhZGFtcwo7OyAgICAgUmVt b3ZlZCB2ZXN0aWdpYWwgZGVmdmFyICh1bnVzZWQgdmFyaWFibGUpLgo7OyAyMDA5LzA2LzE3IGRh ZGFtcwo7OyAgICAgQ3JlYXRlZC4KOzsKOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Owo7Owo7OyBUaGlzIHByb2dyYW0g aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCjs7IG1vZGlm eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFz Cjs7IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVy c2lvbiAzLCBvcgo7OyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgo7Owo7OyBU aGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz ZWZ1bCwKOzsgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp ZWQgd2FycmFudHkgb2YKOzsgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKOzsgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig bW9yZSBkZXRhaWxzLgo7Owo7OyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQo7OyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsg c2VlIHRoZSBmaWxlIENPUFlJTkcuICBJZiBub3QsIHdyaXRlIHRvCjs7IHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgKOzsgRmxvb3Is IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgo7Owo7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Cjs7Cjs7OyBDb2Rl OgoKKHJlcXVpcmUgJ2ZhY2UtcmVtYXApCgo7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 OwoKOzs7IyMjYXV0b2xvYWQKKGRlZmN1c3RvbSB0ZXh0LXNjYWxlLXJlc2l6ZS13aW5kb3cgdAog ICIqTm9uLW5pbCBtZWFucyB0ZXh0IHNjYWxpbmcgcmVzaXplcyB0aGUgd2luZG93IG9yIGZyYW1l IGFjY29yZGluZ2x5LgpGb3IgZXhhbXBsZSwgaWYgeW91IHVzZSBgQy14IEMtLScgKGB0ZXh0LXNj YWxlLWRlY3JlYXNlJyknIHRvIG1ha2UgdGhlCnRleHQgc21hbGxlciwgdGhlbiB0aGUgd2luZG93 IG9yIGZyYW1lIGlzIG1hZGUgc21hbGxlciBieSBhIHNpbWlsYXIKZmFjdG9yLgoKSWYgdGhlIHdp bmRvdyBpcyBub3QgYWxvbmUgaW4gaXRzIGZyYW1lLCB0aGVuIHRoZSB3aW5kb3cgaXMgcmVzaXpl ZC4KT3RoZXJ3aXNlLCB0aGUgZnJhbWUgaXMgcmVzaXplZCAocHJvdmlkZWQgeW91IGFsc28gdXNl IGxpYnJhcnkKYGZpdC1mcmFtZS5lbCcpLiAgVGhlIGZyYW1lIGlzIGFsd2F5cyByZXNpemVkIGJv dGggaG9yaXpvbnRhbGx5IGFuZAp2ZXJ0aWNhbGx5LiIKICA6dHlwZSAnKGNob2ljZQogICAgICAg ICAgKGNvbnN0IDp0YWcgIkRvIG5vdCByZXNpemUgd2luZG93IHdoZW4gc2NhbGUgdGV4dCIgIG5p bCkKICAgICAgICAgIChjb25zdCA6dGFnICJSZXNpemUgd2luZG93IHdoZW4gc2NhbGUgdGV4dCIg ICAgICAgICB0KQogICAgICAgICAgKGNvbnN0IDp0YWcgIlJlc2l6ZSBvbmx5IGhvcml6b250YWxs eSIgICAgICAgICAgICAgIGhvcml6b250YWxseSkKICAgICAgICAgIChjb25zdCA6dGFnICJSZXNp emUgb25seSB2ZXJ0aWNhbGx5IiAgICAgICAgICAgICAgICB2ZXJ0aWNhbGx5KSkKICA6Z3JvdXAg J2Rpc3BsYXkpCgoKOzsgUkVQTEFDRVMgT1JJR0lOQUwgYHRleHQtc2NhbGUtaW5jcmVhc2UnIGRl ZmluZWQgaW4gYGZhY2UtcmVtYXAuZWwnLAo7Owo7OyBSZXNpemUgd2luZG93IG9yIGZyYW1lIGlm IGB0ZXh0LXNjYWxlLXJlc2l6ZS13aW5kb3cnIGlzIG5vbi1uaWwuCjs7Cjs7OyMjI2F1dG9sb2Fk CihkZWZ1biB0ZXh0LXNjYWxlLWluY3JlYXNlIChpbmMpCiAgIkluY3JlYXNlIHRoZSBoZWlnaHQg b2YgdGhlIGRlZmF1bHQgZmFjZSBpbiB0aGUgY3VycmVudCBidWZmZXIgYnkgSU5DIHN0ZXBzLgpJ ZiB0aGUgbmV3IGhlaWdodCBpcyBvdGhlciB0aGFuIHRoZSBkZWZhdWx0LCBgdGV4dC1zY2FsZS1t b2RlJyBpcyBlbmFibGVkLgoKRWFjaCBzdGVwIHNjYWxlcyB0aGUgaGVpZ2h0IG9mIHRoZSBkZWZh dWx0IGZhY2UgYnkgdGhlIHZhcmlhYmxlCmB0ZXh0LXNjYWxlLW1vZGUtc3RlcCcgKGEgbmVnYXRp dmUgbnVtYmVyIG9mIHN0ZXBzIGRlY3JlYXNlcyB0aGUKaGVpZ2h0IGJ5IHRoZSBzYW1lIGFtb3Vu dCkuICBBcyBhIHNwZWNpYWwgY2FzZSwgYW4gYXJndW1lbnQgb2YgMApyZW1vdmVzIGFueSBzY2Fs aW5nIGN1cnJlbnRseSBhY3RpdmUuCgpJZiBvcHRpb24gYHRleHQtc2NhbGUtcmVzaXplLXdpbmRv dycgaXMgbm9uLW5pbCwgdGhlbiB0aGUgc2VsZWN0ZWQKd2luZG93IG9yIGZyYW1lIGlzIHJlc2l6 ZWQgYWNjb3JkaW5nbHksIHNvIGFzIHRvIGtlZXAgcm91Z2hseSB0aGUgc2FtZQp0ZXh0IHZpc2li bGUgaW4gdGhlIHdpbmRvdy4gIE5vcm1hbGx5LCBpdCBpcyB0aGUgd2luZG93IHRoYXQgaXMKcmVz aXplZCwgYnV0IGlmIHRoZSB3aW5kb3cgaXMgYWxvbmUgaW4gaXRzIGZyYW1lIChhbmQgaWYgeW91 IHVzZQpsaWJyYXJ5IGBmaXQtZnJhbWUuZWwnKSwgdGhlbiB0aGUgZnJhbWUgaXMgcmVzaXplZCBp bnN0ZWFkLgoKU2VlIG9wdGlvbiBgdGV4dC1zY2FsZS1yZXNpemUtd2luZG93JyBmb3IgdGhlIHBv c3NpYmxlIGJlaGF2aW9ycy4iCiAgKGludGVyYWN0aXZlICJwIikKICAobGV0KiAoKG9hbW91bnQg ICAgICAgKGlmIHRleHQtc2NhbGUtbW9kZSB0ZXh0LXNjYWxlLW1vZGUtYW1vdW50IDApKQogICAg ICAgICAoc2NhbGUtZmFjdG9yICAoZXhwdCB0ZXh0LXNjYWxlLW1vZGUtc3RlcCAoaWYgKD0gaW5j IDApICgtIG9hbW91bnQpIGluYykpKQogICAgICAgICAodXNlLWZyYW1lLXAgICAoYW5kIChmYm91 bmRwICdmaXQtZnJhbWUpIChvbmUtd2luZG93LXAgJ25vbWluaSkpKQogICAgICAgICAoZWRnZXMg ICAgICAgICAoaWYgdXNlLWZyYW1lLXAgKHdpbmRvdy1pbnNpZGUtZWRnZXMpICh3aW5kb3ctZWRn ZXMpKSkKICAgICAgICAgKG93aWR0aCAgICAgICAgKC0gKG50aCAyIGVkZ2VzKSAobnRoIDAgZWRn ZXMpKSkKICAgICAgICAgOzsgSWYgcmVzaXppbmcgZnJhbWUsIGRvbid0IGNvdW50IGhlYWRlciBs aW5lIG9mZnNldCAoVG9wKSAtIGp1c3QgdXNlIEJvdHRvbS4KICAgICAgICAgKG9oZWlnaHQgICAg ICAgKC0gKG50aCAzIGVkZ2VzKSAoaWYgdXNlLWZyYW1lLXAgMCAobnRoIDEgZWRnZXMpKSkpKQog ICAgKHNldHEgdGV4dC1zY2FsZS1tb2RlLWFtb3VudAogICAgICAgICAgKGlmICg9IGluYyAwKSAw ICgrIChpZiB0ZXh0LXNjYWxlLW1vZGUgdGV4dC1zY2FsZS1tb2RlLWFtb3VudCAwKSBpbmMpKSkK ICAgICh0ZXh0LXNjYWxlLW1vZGUgKGlmICh6ZXJvcCB0ZXh0LXNjYWxlLW1vZGUtYW1vdW50KSAt MSAxKSkKICAgICh3aGVuIHRleHQtc2NhbGUtcmVzaXplLXdpbmRvdwogICAgICAoaWYgdXNlLWZy YW1lLXAKICAgICAgICAgIChsZXQqICgod2lkdGggICAgICAgICAgIChyb3VuZCAoKiBvd2lkdGgg IHNjYWxlLWZhY3RvcikpKQogICAgICAgICAgICAgICAgIChoZWlnaHQgICAgICAgICAgKHJvdW5k ICgqIG9oZWlnaHQgc2NhbGUtZmFjdG9yKSkpCiAgICAgICAgICAgICAgICAgKGZwYXJhbXMgICAg ICAgICAoZnJhbWUtcGFyYW1ldGVycykpCiAgICAgICAgICAgICAgICAgKHRvb2wtYmFyLWxpbmVz ICAob3IgKGNkciAoYXNzcSAndG9vbC1iYXItbGluZXMgZnBhcmFtcykpIDApKQogICAgICAgICAg ICAgICAgIChtZW51LWJhci1saW5lcyAgKG9yIChjZHIgKGFzc3EgJ21lbnUtYmFyLWxpbmVzIGZw YXJhbXMpKSAwKSkKICAgICAgICAgICAgICAgICA7OyBgd2luZG93LWxpbmUtaGVpZ2h0JyBkb2Vz bid0IHNlZW0gdG8gd29yayAtIEkgZmlsZWQgRW1hY3MgYnVnICMzNjAyLgogICAgICAgICAgICAg ICAgIChoZWFkZXItbGluZSAgICAgKHdpbmRvdy1saW5lLWhlaWdodCAnaGVhZGVyLWxpbmUpKSkK ICAgICAgICAgICAgOzsgYHNldC1mcmFtZS1zaXplJyBpbmNsdWRlcyBmcmFtZSdzIG1lbnUtYmFy LCB0b29sLWJhciwgYW5kIG1pbmlidWZmZXIuCiAgICAgICAgICAgICh3aGVuIChjZHIgKGFzc3Eg J21vZGVsaW5lICBmcGFyYW1zKSkgKHNldHEgaGVpZ2h0ICAoMSsgaGVpZ2h0KSkpCiAgICAgICAg ICAgICh3aGVuIChjZHIgKGFzc3EgJ21pbmlidWZmZXIgZnBhcmFtcykpIChzZXRxIGhlaWdodCAg KDErIGhlaWdodCkpKQogICAgICAgICAgICAod2hlbiBoZWFkZXItbGluZSAoc2V0cSBoZWlnaHQg KCsgaGVpZ2h0IDEpKSkKICAgICAgICAgICAgKHNldHEgaGVpZ2h0ICAoKyBoZWlnaHQgdG9vbC1i YXItbGluZXMgbWVudS1iYXItbGluZXMpKQogICAgICAgICAgICAoZml0LWZyYW1lIG5pbCB3aWR0 aCBoZWlnaHQpKQogICAgICAgICh1bmxlc3MgKGVxIHRleHQtc2NhbGUtcmVzaXplLXdpbmRvdyAn dmVydGljYWxseSkKICAgICAgICAgIChjb25kaXRpb24tY2FzZSBuaWwKICAgICAgICAgICAgICAo ZW5sYXJnZS13aW5kb3ctaG9yaXpvbnRhbGx5IChyb3VuZCAoLSAoKiBvd2lkdGggc2NhbGUtZmFj dG9yKSBvd2lkdGgpKSkKICAgICAgICAgICAgKGVycm9yIG5pbCkpKQogICAgICAgICh1bmxlc3Mg KGVxIHRleHQtc2NhbGUtcmVzaXplLXdpbmRvdyAnaG9yaXpvbnRhbGx5KQogICAgICAgICAgKGNv bmRpdGlvbi1jYXNlIG5pbAogICAgICAgICAgICAgIChlbmxhcmdlLXdpbmRvdyAocm91bmQgKC0g KCogb2hlaWdodCBzY2FsZS1mYWN0b3IpIG9oZWlnaHQpKSkKICAgICAgICAgICAgKGVycm9yIG5p bCkpKSkpKSkKCjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7CgoocHJvdmlkZSAnZmFj ZS1yZW1hcCspCgo7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Cjs7OyBmYWNlLXJlbWFwKy5lbCBlbmRzIGhlcmUK --_002_SJ0PR10MB5488C871DFDC94D6E0784A48F32F9SJ0PR10MB5488namp_--