From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Paul Eggert Newsgroups: gmane.emacs.bugs Subject: bug#44655: 28.0.50; Oversized SVG margin Date: Fri, 3 Dec 2021 10:45:55 -0800 Organization: UCLA Computer Science Department Message-ID: <6611b908-6960-7ca5-9985-5e3b6a9bf210@cs.ucla.edu> References: <757bb5f2e5c43762717c5b1f8a0d3083c6e01607.camel@gmail.com> <201c26ed-10bb-40ac-b8a9-c0dcbd85e6f0@cs.ucla.edu> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------K3cyAFJrejPRYM00F38YJJo5" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="17725"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.3.1 Cc: 44655@debbugs.gnu.org To: Alan Third Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Fri Dec 03 19:47:24 2021 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 1mtDad-0004JT-Ft for geb-bug-gnu-emacs@m.gmane-mx.org; Fri, 03 Dec 2021 19:47:23 +0100 Original-Received: from localhost ([::1]:44790 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mtDab-0002o8-Nq for geb-bug-gnu-emacs@m.gmane-mx.org; Fri, 03 Dec 2021 13:47:21 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:33138) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mtDaJ-0002mb-3D for bug-gnu-emacs@gnu.org; Fri, 03 Dec 2021 13:47:03 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:40674) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mtDaI-0002mm-NA for bug-gnu-emacs@gnu.org; Fri, 03 Dec 2021 13:47:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1mtDaI-0008Ny-HB for bug-gnu-emacs@gnu.org; Fri, 03 Dec 2021 13:47:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Paul Eggert Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 03 Dec 2021 18:47:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 44655 X-GNU-PR-Package: emacs Original-Received: via spool by 44655-submit@debbugs.gnu.org id=B44655.163855717032171 (code B ref 44655); Fri, 03 Dec 2021 18:47:02 +0000 Original-Received: (at 44655) by debbugs.gnu.org; 3 Dec 2021 18:46:10 +0000 Original-Received: from localhost ([127.0.0.1]:52220 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mtDZR-0008Mo-7H for submit@debbugs.gnu.org; Fri, 03 Dec 2021 13:46:10 -0500 Original-Received: from zimbra.cs.ucla.edu ([131.179.128.68]:33526) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mtDZM-0008Ly-6u for 44655@debbugs.gnu.org; Fri, 03 Dec 2021 13:46:08 -0500 Original-Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id EB8CE1600C3; Fri, 3 Dec 2021 10:45:57 -0800 (PST) Original-Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id 74VfP8YelG6k; Fri, 3 Dec 2021 10:45:56 -0800 (PST) Original-Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 11EC51600D1; Fri, 3 Dec 2021 10:45:56 -0800 (PST) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Original-Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id MNDKjjhzwRR5; Fri, 3 Dec 2021 10:45:55 -0800 (PST) Original-Received: from [192.168.1.9] (cpe-172-91-119-151.socal.res.rr.com [172.91.119.151]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id CE1931600C3; Fri, 3 Dec 2021 10:45:55 -0800 (PST) Content-Language: en-US In-Reply-To: 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:221410 Archived-At: This is a multi-part message in MIME format. --------------K3cyAFJrejPRYM00F38YJJo5 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 11/6/21 05:55, Alan Third wrote: > There seems to be a lot of churn in the librsvg API at the moment, and > their documentation isn't keeping up as it still doesn't mark > rsvg_handle_get_dimensions as deprecated. > > It appears they've introduced rsvg_handle_get_intrinsic_size_in_pixels > which does the same thing (but better) than my sizing code, but anyone > using librsvg 2.46-2.52, which is probably most people for now, can't > use it and probably don't want to use the old scheme, so I expect > there's no point replacing my code at the moment. If it improves on your code then let's try using it for bleeding-edge librsvg (2.52.0+). > Perhaps what we should do is move the final "else" section of the > previous code block (where rsvg_handle_get_geometry_for_layer is > called) into its own block which is executed > > if (viewbox_width == 0 || viewbox_height == 0) > > instead of only in the case where rsvg_handle_get_intrinsic_dimensions > fails to return any dimensions. That way we should have *some* > dimensions without having to call rsvg_handle_get_dimensions. I installed a patch into master to do that, along with other patches to try using svg_handle_get_intrinsic_size_in_pixels with bleeding-edge librsvg, and to catch some potential integer overflow problems I noticed while doing all this (see attached). --------------K3cyAFJrejPRYM00F38YJJo5 Content-Type: text/x-patch; charset=UTF-8; name="0001-More-robust-svg_load_image-fallback.patch" Content-Disposition: attachment; filename="0001-More-robust-svg_load_image-fallback.patch" Content-Transfer-Encoding: base64 RnJvbSA5YTRhMTRkMWU4MzhlODVkYTJhNDgwMzQwZTBhOWM4MTA5ZmFlZTQ1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBGcmksIDMgRGVjIDIwMjEgMDk6NDc6MjIgLTA4MDAKU3ViamVjdDogW1BBVENI IDEvNF0gTW9yZS1yb2J1c3Qgc3ZnX2xvYWRfaW1hZ2UgZmFsbGJhY2sKClN1Z2dlc3RlZCBi eSBBbGFuIFRoaXJkIChCdWcjNDQ2NTUjNTYpLgoqIHNyYy9pbWFnZS5jIChzdmdfbG9hZF9p bWFnZSk6IEZhbGwgYmFjayBvbgpyc3ZnX2hhbmRsZV9nZXRfZ2VvbWV0cnlfZm9yX2xheWVy IGlmIHRoZQpyc3ZnX2hhbmRsZV9nZXRfaW50cmluc2ljX2RpbWVuc2lvbnMgY29tcHV0YXRp b25zIHlpZWxkZWQgdW51c2FibGUKdmlld2JveCB3aWR0aCBhbmQgaGVpZ2h0LCBpbnN0ZWFk IG9mIGZhbGxpbmcgYmFjayBvbmx5IGlmCnJzdmdfaGFuZGxlX2dldF9pbnRyaW5zaWNfZGlt ZW5zaW9ucyBkaWQgbm90IHJlcG9ydCBpbWFnZSB3aWR0aAphbmQgaGVpZ2h0LCBvciBkaWQg bm90IHJlcG9ydCBhIHZpZXdib3guCi0tLQogc3JjL2ltYWdlLmMgfCAzICsrKwogMSBmaWxl IGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3NyYy9pbWFnZS5jIGIv c3JjL2ltYWdlLmMKaW5kZXggZjI1OTdmNTI5ZC4uZjEzMzA0OTEyYyAxMDA2NDQKLS0tIGEv c3JjL2ltYWdlLmMKKysrIGIvc3JjL2ltYWdlLmMKQEAgLTEwNDg0LDYgKzEwNDg0LDkgQEAg c3ZnX2xvYWRfaW1hZ2UgKHN0cnVjdCBmcmFtZSAqZiwgc3RydWN0IGltYWdlICppbWcsIGNo YXIgKmNvbnRlbnRzLAogICAgICAgdmlld2JveF9oZWlnaHQgPSB2aWV3Ym94LmhlaWdodDsK ICAgICB9CiAgIGVsc2UKKyAgICB2aWV3Ym94X3dpZHRoID0gdmlld2JveF9oZWlnaHQgPSAw OworCisgIGlmICh2aWV3Ym94X3dpZHRoID09IDAgfHwgdmlld2JveF9oZWlnaHQgPT0gMCkK ICAgICB7CiAgICAgICAvKiBXZSBoYXZlbid0IGZvdW5kIGEgdXNhYmxlIHNldCBvZiBzaXpl cywgc28gdHJ5IHdvcmtpbmcgb3V0CiAgICAgICAgICB0aGUgdmlzaWJsZSBhcmVhLiAgKi8K LS0gCjIuMzIuMAoK --------------K3cyAFJrejPRYM00F38YJJo5 Content-Type: text/x-patch; charset=UTF-8; name="0002-Simplify-svg_load_image.patch" Content-Disposition: attachment; filename="0002-Simplify-svg_load_image.patch" Content-Transfer-Encoding: base64 RnJvbSAyNDMwM2YxOWYzZmRkOTk3MTAxNGIyNmIyYjhlZTcwNDNhMDU1ZmRjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBGcmksIDMgRGVjIDIwMjEgMDk6NDc6MjIgLTA4MDAKU3ViamVjdDogW1BBVENI IDIvNF0gU2ltcGxpZnkgc3ZnX2xvYWRfaW1hZ2UKCiogc3JjL2ltYWdlLmMgKHN2Z19sb2Fk X2ltYWdlKTogU2ltcGxpZnkgc2xpZ2h0bHkuCi0tLQogc3JjL2ltYWdlLmMgfCA2ICsrLS0t LQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9zcmMvaW1hZ2UuYyBiL3NyYy9pbWFnZS5jCmluZGV4IGYxMzMwNDkxMmMu LjFkYjJiNzhhZDUgMTAwNjQ0Ci0tLSBhL3NyYy9pbWFnZS5jCisrKyBiL3NyYy9pbWFnZS5j CkBAIC0xMDQ2OSwxNCArMTA0NjksMTIgQEAgc3ZnX2xvYWRfaW1hZ2UgKHN0cnVjdCBmcmFt ZSAqZiwgc3RydWN0IGltYWdlICppbWcsIGNoYXIgKmNvbnRlbnRzLAogICBlbHNlIGlmICho YXNfd2lkdGggJiYgaGFzX3ZpZXdib3gpCiAgICAgewogICAgICAgdmlld2JveF93aWR0aCA9 IHN2Z19jc3NfbGVuZ3RoX3RvX3BpeGVscyAoaXdpZHRoLCBkcGksIGltZy0+ZmFjZV9mb250 X3NpemUpOwotICAgICAgdmlld2JveF9oZWlnaHQgPSBzdmdfY3NzX2xlbmd0aF90b19waXhl bHMgKGl3aWR0aCwgZHBpLCBpbWctPmZhY2VfZm9udF9zaXplKQotICAgICAgICAqIHZpZXdi b3guaGVpZ2h0IC8gdmlld2JveC53aWR0aDsKKyAgICAgIHZpZXdib3hfaGVpZ2h0ID0gdmll d2JveF93aWR0aCAqIHZpZXdib3guaGVpZ2h0IC8gdmlld2JveC53aWR0aDsKICAgICB9CiAg IGVsc2UgaWYgKGhhc19oZWlnaHQgJiYgaGFzX3ZpZXdib3gpCiAgICAgewogICAgICAgdmll d2JveF9oZWlnaHQgPSBzdmdfY3NzX2xlbmd0aF90b19waXhlbHMgKGloZWlnaHQsIGRwaSwg aW1nLT5mYWNlX2ZvbnRfc2l6ZSk7Ci0gICAgICB2aWV3Ym94X3dpZHRoID0gc3ZnX2Nzc19s ZW5ndGhfdG9fcGl4ZWxzIChpaGVpZ2h0LCBkcGksIGltZy0+ZmFjZV9mb250X3NpemUpCi0g ICAgICAgICogdmlld2JveC53aWR0aCAvIHZpZXdib3guaGVpZ2h0OworICAgICAgdmlld2Jv eF93aWR0aCA9IHZpZXdib3hfaGVpZ2h0ICogdmlld2JveC53aWR0aCAvIHZpZXdib3guaGVp Z2h0OwogICAgIH0KICAgZWxzZSBpZiAoaGFzX3ZpZXdib3gpCiAgICAgewotLSAKMi4zMi4w Cgo= --------------K3cyAFJrejPRYM00F38YJJo5 Content-Type: text/x-patch; charset=UTF-8; name="0003-Improve-overflow-checking-in-svg_load_image.patch" Content-Disposition: attachment; filename="0003-Improve-overflow-checking-in-svg_load_image.patch" Content-Transfer-Encoding: base64 RnJvbSA1N2VhZjAzM2Q3MWQ3NTUwMDlmZmMxZTliNTUyMjAxMTQzMTI5MjE4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBGcmksIDMgRGVjIDIwMjEgMDk6NDc6MjIgLTA4MDAKU3ViamVjdDogW1BBVENI IDMvNF0gSW1wcm92ZSBvdmVyZmxvdyBjaGVja2luZyBpbiBzdmdfbG9hZF9pbWFnZQpNSU1F LVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgK Q29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoKKiBzcmMvaW1hZ2UuYzogSW5jbHVk ZSBtYXRoLmgsIGZvciBscmludC4KKHNjYWxlX2ltYWdlX3NpemUsIGNvbXB1dGVfaW1hZ2Vf c2l6ZSk6IFVzZSDigJhkb3VibGXigJksIG5vdCDigJhpbnTigJkKZm9yIGltYWdlIHNpemUg YXJncywgc2luY2UgbGlicnN2ZyB1c2VzIOKAmGRvdWJsZeKAmSBmb3IgcGl4ZWwgY291bnRz Lgooc2NhbGVfaW1hZ2Vfc2l6ZSk6IFVzZSBjZWlsIGluc3RlYWQgb2Ygcm91bmRpbmcsIHRv IGF2b2lkCmRpc2NhcmRpbmcgZnJhY3Rpb25hbCBTVkcgcGl4ZWxzLiAgRGl2aXNvciBhbmQg bXVsdGlwbGllciBhcmUgbm93CmRvdWJsZSBpbnN0ZWFkIG9mIGludCwgZm9yIGJldHRlciBw b3J0YWJpbGl0eSB0byBsaWJyc3ZnCmZ1bmN0aW9ucyB3aXRoIGZyYWN0aW9uYWwgcGl4ZWwg c2l6ZXMuCihpbWFnZV9nZXRfZGltZW5zaW9uLCBjb21wdXRlX2ltYWdlX3NpemUsIHN2Z19s b2FkX2ltYWdlKToKQmUgbW9yZSBjYXJlZnVsIGFib3V0IGlnbm9yaW5nLCByZWplY3Rpbmcg b3IgY2xpcHBpbmcgc2NhbGUKZmFjdG9ycyBvciBzaXplcyB0aGF0IGFyZSBvdXQgb2YgaW50 ZWdlciByYW5nZS4KKGNvbXB1dGVfaW1hZ2Vfc2l6ZSk6IERvbuKAmXQgYm90aGVyIHRvIGNh bGN1bGF0ZSA6bWF4LXdpZHRoIGlmCjp3aWR0aCBpcyBzcGVjaWZpZWQsIGFuZCBsaWtld2lz ZSBmb3IgOm1heC1oZWlnaHQgYW5kIDpoZWlnaHQuCi0tLQogc3JjL2ltYWdlLmMgfCA3NiAr KysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog MSBmaWxlIGNoYW5nZWQsIDM2IGluc2VydGlvbnMoKyksIDQwIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3NyYy9pbWFnZS5jIGIvc3JjL2ltYWdlLmMKaW5kZXggMWRiMmI3OGFkNS4u MTRlOTk0NGRiMiAxMDA2NDQKLS0tIGEvc3JjL2ltYWdlLmMKKysrIGIvc3JjL2ltYWdlLmMK QEAgLTMxLDYgKzMxLDcgQEAgQ29weXJpZ2h0IChDKSAxOTg5LCAxOTkyLTIwMjEgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAKICNpbmNsdWRlIDxzZXRqbXAuaD4KIAorI2lu Y2x1ZGUgPG1hdGguaD4KICNpbmNsdWRlIDxzdGRpbnQuaD4KICNpbmNsdWRlIDxjLWN0eXBl Lmg+CiAjaW5jbHVkZSA8ZmxleG1lbWJlci5oPgpAQCAtMjAxNiwxNCArMjAxNywxNiBAQCBw b3N0cHJvY2Vzc19pbWFnZSAoc3RydWN0IGZyYW1lICpmLCBzdHJ1Y3QgaW1hZ2UgKmltZykK ICAgIHNhZmVseSByb3VuZGVkIGFuZCBjbGlwcGVkIHRvIGludCByYW5nZS4gICovCiAKIHN0 YXRpYyBpbnQKLXNjYWxlX2ltYWdlX3NpemUgKGludCBzaXplLCBzaXplX3QgZGl2aXNvciwg c2l6ZV90IG11bHRpcGxpZXIpCitzY2FsZV9pbWFnZV9zaXplIChpbnQgc2l6ZSwgZG91Ymxl IGRpdmlzb3IsIGRvdWJsZSBtdWx0aXBsaWVyKQogewogICBpZiAoZGl2aXNvciAhPSAwKQog ICAgIHsKLSAgICAgIGRvdWJsZSBzID0gc2l6ZTsKLSAgICAgIGRvdWJsZSBzY2FsZWQgPSBz ICogbXVsdGlwbGllciAvIGRpdmlzb3IgKyAwLjU7CisgICAgICBkb3VibGUgc2NhbGVkID0g c2l6ZSAqIG11bHRpcGxpZXIgLyBkaXZpc29yOwogICAgICAgaWYgKHNjYWxlZCA8IElOVF9N QVgpCi0JcmV0dXJuIHNjYWxlZDsKKwl7CisJICAvKiBVc2UgY2VpbCwgYXMgcm91bmRpbmcg Y2FuIGRpc2NhcmQgZnJhY3Rpb25hbCBTVkcgcGl4ZWxzLiAgKi8KKwkgIHJldHVybiBjZWls IChzY2FsZWQpOworCX0KICAgICB9CiAgIHJldHVybiBJTlRfTUFYOwogfQpAQCAtMjA0NCw4 NCArMjA0Nyw3NyBAQCBpbWFnZV9nZXRfZGltZW5zaW9uIChzdHJ1Y3QgaW1hZ2UgKmltZywg TGlzcF9PYmplY3Qgc3ltYm9sKQogICBpZiAoRklYTkFUUCAodmFsdWUpKQogICAgIHJldHVy biBtaW4gKFhGSVhOQVQgKHZhbHVlKSwgSU5UX01BWCk7CiAgIGlmIChDT05TUCAodmFsdWUp ICYmIE5VTUJFUlAgKENBUiAodmFsdWUpKSAmJiBFUSAoUWVtLCBDRFIgKHZhbHVlKSkpCi0g ICAgcmV0dXJuIG1pbiAoaW1nLT5mYWNlX2ZvbnRfc2l6ZSAqIFhGTE9BVElOVCAoQ0FSICh2 YWx1ZSkpLCBJTlRfTUFYKTsKKyAgICByZXR1cm4gc2NhbGVfaW1hZ2Vfc2l6ZSAoaW1nLT5m YWNlX2ZvbnRfc2l6ZSwgMSwgWEZMT0FUSU5UIChDQVIgKHZhbHVlKSkpOwogCiAgIHJldHVy biAtMTsKIH0KIAogLyogQ29tcHV0ZSB0aGUgZGVzaXJlZCBzaXplIG9mIGFuIGltYWdlIHdp dGggbmF0aXZlIHNpemUgV0lEVEggeCBIRUlHSFQuCi0gICBVc2UgU1BFQyB0byBkZWR1Y2Ug dGhlIHNpemUuICBTdG9yZSB0aGUgZGVzaXJlZCBzaXplIGludG8KKyAgIFVzZSBJTUcgdG8g ZGVkdWNlIHRoZSBzaXplLiAgU3RvcmUgdGhlIGRlc2lyZWQgc2l6ZSBpbnRvCiAgICAqRF9X SURUSCB4ICpEX0hFSUdIVC4gIFN0b3JlIC0xIHggLTEgaWYgdGhlIG5hdGl2ZSBzaXplIGlz IE9LLiAgKi8KIHN0YXRpYyB2b2lkCi1jb21wdXRlX2ltYWdlX3NpemUgKHNpemVfdCB3aWR0 aCwgc2l6ZV90IGhlaWdodCwKK2NvbXB1dGVfaW1hZ2Vfc2l6ZSAoZG91YmxlIHdpZHRoLCBk b3VibGUgaGVpZ2h0LAogCQkgICAgc3RydWN0IGltYWdlICppbWcsCiAJCSAgICBpbnQgKmRf d2lkdGgsIGludCAqZF9oZWlnaHQpCiB7Ci0gIExpc3BfT2JqZWN0IHZhbHVlOwotICBpbnQg aW50X3ZhbHVlOwotICBpbnQgZGVzaXJlZF93aWR0aCA9IC0xLCBkZXNpcmVkX2hlaWdodCA9 IC0xLCBtYXhfd2lkdGggPSAtMSwgbWF4X2hlaWdodCA9IC0xOwogICBkb3VibGUgc2NhbGUg PSAxOwotCi0gIHZhbHVlID0gaW1hZ2Vfc3BlY192YWx1ZSAoaW1nLT5zcGVjLCBRQ3NjYWxl LCBOVUxMKTsKKyAgTGlzcF9PYmplY3QgdmFsdWUgPSBpbWFnZV9zcGVjX3ZhbHVlIChpbWct PnNwZWMsIFFDc2NhbGUsIE5VTEwpOwogICBpZiAoTlVNQkVSUCAodmFsdWUpKQotICAgIHNj YWxlID0gWEZMT0FUSU5UICh2YWx1ZSk7Ci0KLSAgaW50X3ZhbHVlID0gaW1hZ2VfZ2V0X2Rp bWVuc2lvbiAoaW1nLCBRQ21heF93aWR0aCk7Ci0gIGlmIChpbnRfdmFsdWUgPj0gMCkKLSAg ICBtYXhfd2lkdGggPSBpbnRfdmFsdWU7Ci0KLSAgaW50X3ZhbHVlID0gaW1hZ2VfZ2V0X2Rp bWVuc2lvbiAoaW1nLCBRQ21heF9oZWlnaHQpOwotICBpZiAoaW50X3ZhbHVlID49IDApCi0g ICAgbWF4X2hlaWdodCA9IGludF92YWx1ZTsKKyAgICB7CisgICAgICBkb3VibGUgZHZhbCA9 IFhGTE9BVElOVCAodmFsdWUpOworICAgICAgaWYgKDAgPD0gZHZhbCkKKwlzY2FsZSA9IGR2 YWw7CisgICAgfQogCiAgIC8qIElmIHdpZHRoIGFuZC9vciBoZWlnaHQgaXMgc2V0IGluIHRo ZSBkaXNwbGF5IHNwZWMgYXNzdW1lIHdlIHdhbnQKICAgICAgdG8gc2NhbGUgdG8gdGhvc2Ug dmFsdWVzLiAgSWYgZWl0aGVyIGggb3IgdyBpcyB1bnNwZWNpZmllZCwgdGhlCiAgICAgIHVu c3BlY2lmaWVkIHNob3VsZCBiZSBjYWxjdWxhdGVkIGZyb20gdGhlIHNwZWNpZmllZCB0byBw cmVzZXJ2ZQogICAgICBhc3BlY3QgcmF0aW8uICAqLwotICBpbnRfdmFsdWUgPSBpbWFnZV9n ZXRfZGltZW5zaW9uIChpbWcsIFFDd2lkdGgpOwotICBpZiAoaW50X3ZhbHVlID49IDApCisg IGludCBkZXNpcmVkX3dpZHRoID0gaW1hZ2VfZ2V0X2RpbWVuc2lvbiAoaW1nLCBRQ3dpZHRo KSwgbWF4X3dpZHRoOworICBpZiAoZGVzaXJlZF93aWR0aCA8IDApCisgICAgbWF4X3dpZHRo ID0gaW1hZ2VfZ2V0X2RpbWVuc2lvbiAoaW1nLCBRQ21heF93aWR0aCk7CisgIGVsc2UKICAg ICB7Ci0gICAgICBkZXNpcmVkX3dpZHRoID0gaW50X3ZhbHVlICogc2NhbGU7CisgICAgICBk ZXNpcmVkX3dpZHRoID0gc2NhbGVfaW1hZ2Vfc2l6ZSAoZGVzaXJlZF93aWR0aCwgMSwgc2Nh bGUpOwogICAgICAgLyogOndpZHRoIG92ZXJyaWRlcyA6bWF4LXdpZHRoLiAqLwogICAgICAg bWF4X3dpZHRoID0gLTE7CiAgICAgfQogCi0gIGludF92YWx1ZSA9IGltYWdlX2dldF9kaW1l bnNpb24gKGltZywgUUNoZWlnaHQpOwotICBpZiAoaW50X3ZhbHVlID49IDApCisgIGludCBk ZXNpcmVkX2hlaWdodCA9IGltYWdlX2dldF9kaW1lbnNpb24gKGltZywgUUNoZWlnaHQpLCBt YXhfaGVpZ2h0OworICBpZiAoZGVzaXJlZF9oZWlnaHQgPCAwKQorICAgIG1heF9oZWlnaHQg PSBpbWFnZV9nZXRfZGltZW5zaW9uIChpbWcsIFFDbWF4X2hlaWdodCk7CisgIGVsc2UKICAg ICB7Ci0gICAgICBkZXNpcmVkX2hlaWdodCA9IGludF92YWx1ZSAqIHNjYWxlOworICAgICAg ZGVzaXJlZF9oZWlnaHQgPSBzY2FsZV9pbWFnZV9zaXplIChkZXNpcmVkX2hlaWdodCwgMSwg c2NhbGUpOwogICAgICAgLyogOmhlaWdodCBvdmVycmlkZXMgOm1heC1oZWlnaHQuICovCiAg ICAgICBtYXhfaGVpZ2h0ID0gLTE7CiAgICAgfQogCiAgIC8qIElmIHdlIGhhdmUgYm90aCB3 aWR0aC9oZWlnaHQgc2V0IGV4cGxpY2l0bHksIHdlIHNraXAgcGFzdCBhbGwgdGhlCiAgICAg IGFzcGVjdCByYXRpby1wcmVzZXJ2aW5nIGNvbXB1dGF0aW9ucyBiZWxvdy4gKi8KLSAgaWYg KGRlc2lyZWRfd2lkdGggIT0gLTEgJiYgZGVzaXJlZF9oZWlnaHQgIT0gLTEpCisgIGlmICgw IDw9IGRlc2lyZWRfd2lkdGggJiYgMCA8PSBkZXNpcmVkX2hlaWdodCkKICAgICBnb3RvIG91 dDsKIAotICB3aWR0aCA9IHdpZHRoICogc2NhbGU7Ci0gIGhlaWdodCA9IGhlaWdodCAqIHNj YWxlOwotCi0gIGlmIChkZXNpcmVkX3dpZHRoICE9IC0xKQorICBpZiAoMCA8PSBkZXNpcmVk X3dpZHRoKQogICAgIC8qIFdpZHRoIGtub3duLCBjYWxjdWxhdGUgaGVpZ2h0LiAqLwogICAg IGRlc2lyZWRfaGVpZ2h0ID0gc2NhbGVfaW1hZ2Vfc2l6ZSAoZGVzaXJlZF93aWR0aCwgd2lk dGgsIGhlaWdodCk7Ci0gIGVsc2UgaWYgKGRlc2lyZWRfaGVpZ2h0ICE9IC0xKQorICBlbHNl IGlmICgwIDw9IGRlc2lyZWRfaGVpZ2h0KQogICAgIC8qIEhlaWdodCBrbm93biwgY2FsY3Vs YXRlIHdpZHRoLiAqLwogICAgIGRlc2lyZWRfd2lkdGggPSBzY2FsZV9pbWFnZV9zaXplIChk ZXNpcmVkX2hlaWdodCwgaGVpZ2h0LCB3aWR0aCk7CiAgIGVsc2UKICAgICB7Ci0gICAgICBk ZXNpcmVkX3dpZHRoID0gd2lkdGg7Ci0gICAgICBkZXNpcmVkX2hlaWdodCA9IGhlaWdodDsK KyAgICAgIGRlc2lyZWRfd2lkdGggPSBzY2FsZV9pbWFnZV9zaXplICh3aWR0aCwgMSwgc2Nh bGUpOworICAgICAgZGVzaXJlZF9oZWlnaHQgPSBzY2FsZV9pbWFnZV9zaXplIChoZWlnaHQs IDEsIHNjYWxlKTsKICAgICB9CiAKLSAgaWYgKG1heF93aWR0aCAhPSAtMSAmJiBkZXNpcmVk X3dpZHRoID4gbWF4X3dpZHRoKQorICBpZiAoMCA8PSBtYXhfd2lkdGggJiYgbWF4X3dpZHRo IDwgZGVzaXJlZF93aWR0aCkKICAgICB7CiAgICAgICAvKiBUaGUgaW1hZ2UgaXMgd2lkZXIg dGhhbiA6bWF4LXdpZHRoLiAqLwogICAgICAgZGVzaXJlZF93aWR0aCA9IG1heF93aWR0aDsK ICAgICAgIGRlc2lyZWRfaGVpZ2h0ID0gc2NhbGVfaW1hZ2Vfc2l6ZSAoZGVzaXJlZF93aWR0 aCwgd2lkdGgsIGhlaWdodCk7CiAgICAgfQogCi0gIGlmIChtYXhfaGVpZ2h0ICE9IC0xICYm IGRlc2lyZWRfaGVpZ2h0ID4gbWF4X2hlaWdodCkKKyAgaWYgKDAgPD0gbWF4X2hlaWdodCAm JiBtYXhfaGVpZ2h0IDwgZGVzaXJlZF9oZWlnaHQpCiAgICAgewogICAgICAgLyogVGhlIGlt YWdlIGlzIGhpZ2hlciB0aGFuIDptYXgtaGVpZ2h0LiAqLwogICAgICAgZGVzaXJlZF9oZWln aHQgPSBtYXhfaGVpZ2h0OwpAQCAtMTA0ODQsNyArMTA0ODAsNyBAQCBzdmdfbG9hZF9pbWFn ZSAoc3RydWN0IGZyYW1lICpmLCBzdHJ1Y3QgaW1hZ2UgKmltZywgY2hhciAqY29udGVudHMs CiAgIGVsc2UKICAgICB2aWV3Ym94X3dpZHRoID0gdmlld2JveF9oZWlnaHQgPSAwOwogCi0g IGlmICh2aWV3Ym94X3dpZHRoID09IDAgfHwgdmlld2JveF9oZWlnaHQgPT0gMCkKKyAgaWYg KCEgKDAgPCB2aWV3Ym94X3dpZHRoICYmIDAgPCB2aWV3Ym94X2hlaWdodCkpCiAgICAgewog ICAgICAgLyogV2UgaGF2ZW4ndCBmb3VuZCBhIHVzYWJsZSBzZXQgb2Ygc2l6ZXMsIHNvIHRy eSB3b3JraW5nIG91dAogICAgICAgICAgdGhlIHZpc2libGUgYXJlYS4gICovCkBAIC0xMDUw NSw4ICsxMDUwMSw4IEBAIHN2Z19sb2FkX2ltYWdlIChzdHJ1Y3QgZnJhbWUgKmYsIHN0cnVj dCBpbWFnZSAqaW1nLCBjaGFyICpjb250ZW50cywKICAgY29tcHV0ZV9pbWFnZV9zaXplICh2 aWV3Ym94X3dpZHRoLCB2aWV3Ym94X2hlaWdodCwgaW1nLAogICAgICAgICAgICAgICAgICAg ICAgICZ3aWR0aCwgJmhlaWdodCk7CiAKLSAgd2lkdGggKj0gRlJBTUVfU0NBTEVfRkFDVE9S IChmKTsKLSAgaGVpZ2h0ICo9IEZSQU1FX1NDQUxFX0ZBQ1RPUiAoZik7CisgIHdpZHRoID0g c2NhbGVfaW1hZ2Vfc2l6ZSAod2lkdGgsIDEsIEZSQU1FX1NDQUxFX0ZBQ1RPUiAoZikpOwor ICBoZWlnaHQgPSBzY2FsZV9pbWFnZV9zaXplIChoZWlnaHQsIDEsIEZSQU1FX1NDQUxFX0ZB Q1RPUiAoZikpOwogCiAgIGlmICghIGNoZWNrX2ltYWdlX3NpemUgKGYsIHdpZHRoLCBoZWln aHQpKQogICAgIHsKLS0gCjIuMzIuMAoK --------------K3cyAFJrejPRYM00F38YJJo5 Content-Type: text/x-patch; charset=UTF-8; name="0004-Prefer-rsvg_handle_get_intrinsic_size_in_pixels.patch" Content-Disposition: attachment; filename*0="0004-Prefer-rsvg_handle_get_intrinsic_size_in_pixels.patch" Content-Transfer-Encoding: base64 RnJvbSA4OWQ0OTRlN2EyNmU2MDMxZjFhZTM1ZTg1OTA3OTNlNDEzYjIyNjQxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBGcmksIDMgRGVjIDIwMjEgMDk6NDc6MjIgLTA4MDAKU3ViamVjdDogW1BBVENI IDQvNF0gUHJlZmVyIHJzdmdfaGFuZGxlX2dldF9pbnRyaW5zaWNfc2l6ZV9pbl9waXhlbHMK ClVzZSByc3ZnX2hhbmRsZV9nZXRfaW50cmluc2ljX3NpemVfaW5fcGl4ZWxzIGlmIGF2YWls YWJsZSwKYXMgdGhpcyBpcyBzaW1wbGVyIGFuZCBiZXR0ZXIgdGhhbiB3aGF0IHdlIHdlcmUg ZG9pbmcuCkZyb20gYSBjb21tZW50IGJ5IGJ5IEFsYW4gVGhpcmQgKEJ1ZyM0NDY1NSM1Niku Ciogc3JjL2ltYWdlLmMgKGluaXRfc3ZnX2Z1bmN0aW9ucyk6IEFycmFuZ2UgZm9yIHRoZSBu ZXcgZnVuY3Rpb24uCihzdmdfbG9hZF9pbWFnZSk6IFByZWZlciB0aGUgcmVzdWx0cyBvZgpy c3ZnX2hhbmRsZV9nZXRfaW50cmluc2ljX3NpemVfaW5fcGl4ZWxzIGlmIGF2YWlsYWJsZS4K LS0tCiBzcmMvaW1hZ2UuYyB8IDExNCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNzQgaW5zZXJ0aW9ucygr KSwgNDAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2ltYWdlLmMgYi9zcmMvaW1h Z2UuYwppbmRleCAxNGU5OTQ0ZGIyLi5jMDhlZTkyMjg3IDEwMDY0NAotLS0gYS9zcmMvaW1h Z2UuYworKysgYi9zcmMvaW1hZ2UuYwpAQCAtMTAwNjYsNiArMTAwNjYsMTAgQEAgREVGX0RM TF9GTiAoZ2Jvb2xlYW4sIHJzdmdfaGFuZGxlX2Nsb3NlLCAoUnN2Z0hhbmRsZSAqLCBHRXJy b3IgKiopKTsKIERFRl9ETExfRk4gKHZvaWQsIHJzdmdfaGFuZGxlX3NldF9kcGlfeF95LAog CSAgICAoUnN2Z0hhbmRsZSAqIGhhbmRsZSwgZG91YmxlIGRwaV94LCBkb3VibGUgZHBpX3kp KTsKIAorIyAgaWYgTElCUlNWR19DSEVDS19WRVJTSU9OICgyLCA1MiwgMSkKK0RFRl9ETExf Rk4gKHZvaWQsIHJzdmdfaGFuZGxlX2dldF9pbnRyaW5zaWNfc2l6ZV9pbl9waXhlbHMsCisg ICAgICAgICAgICAoUnN2Z0hhbmRsZSAqLCBnZG91YmxlICosIGdkb3VibGUgKikpOworIyAg ZW5kaWYKICMgIGlmIExJQlJTVkdfQ0hFQ0tfVkVSU0lPTiAoMiwgNDYsIDApCiBERUZfRExM X0ZOICh2b2lkLCByc3ZnX2hhbmRsZV9nZXRfaW50cmluc2ljX2RpbWVuc2lvbnMsCiAgICAg ICAgICAgICAoUnN2Z0hhbmRsZSAqLCBnYm9vbGVhbiAqLCBSc3ZnTGVuZ3RoICosIGdib29s ZWFuICosCkBAIC0xMDEyOSw2ICsxMDEzMyw5IEBAIGluaXRfc3ZnX2Z1bmN0aW9ucyAodm9p ZCkKICAgTE9BRF9ETExfRk4gKGxpYnJhcnksIHJzdmdfaGFuZGxlX2Nsb3NlKTsKICNlbmRp ZgogICBMT0FEX0RMTF9GTiAobGlicmFyeSwgcnN2Z19oYW5kbGVfc2V0X2RwaV94X3kpOwor I2lmIExJQlJTVkdfQ0hFQ0tfVkVSU0lPTiAoMiwgNTIsIDEpCisgIExPQURfRExMX0ZOIChs aWJyYXJ5LCByc3ZnX2hhbmRsZV9nZXRfaW50cmluc2ljX3NpemVfaW5fcGl4ZWxzKTsKKyNl bmRpZgogI2lmIExJQlJTVkdfQ0hFQ0tfVkVSU0lPTiAoMiwgNDYsIDApCiAgIExPQURfRExM X0ZOIChsaWJyYXJ5LCByc3ZnX2hhbmRsZV9nZXRfaW50cmluc2ljX2RpbWVuc2lvbnMpOwog ICBMT0FEX0RMTF9GTiAobGlicmFyeSwgcnN2Z19oYW5kbGVfZ2V0X2dlb21ldHJ5X2Zvcl9s YXllcik7CkBAIC0xMDE3Miw2ICsxMDE3OSw5IEBAIGluaXRfc3ZnX2Z1bmN0aW9ucyAodm9p ZCkKICMgIHVuZGVmIGdfY2xlYXJfZXJyb3IKICMgIHVuZGVmIGdfb2JqZWN0X3VucmVmCiAj ICB1bmRlZiBnX3R5cGVfaW5pdAorIyAgaWYgTElCUlNWR19DSEVDS19WRVJTSU9OICgyLCA1 MiwgMSkKKyMgICB1bmRlZiByc3ZnX2hhbmRsZV9nZXRfaW50cmluc2ljX3NpemVfaW5fcGl4 ZWxzCisjICBlbmRpZgogIyAgaWYgTElCUlNWR19DSEVDS19WRVJTSU9OICgyLCA0NiwgMCkK ICMgICB1bmRlZiByc3ZnX2hhbmRsZV9nZXRfaW50cmluc2ljX2RpbWVuc2lvbnMKICMgICB1 bmRlZiByc3ZnX2hhbmRsZV9nZXRfZ2VvbWV0cnlfZm9yX2xheWVyCkBAIC0xMDIwNyw2ICsx MDIxNywxMCBAQCBpbml0X3N2Z19mdW5jdGlvbnMgKHZvaWQpCiAjICBpZiAhIEdMSUJfQ0hF Q0tfVkVSU0lPTiAoMiwgMzYsIDApCiAjICAgZGVmaW5lIGdfdHlwZV9pbml0IGZuX2dfdHlw ZV9pbml0CiAjICBlbmRpZgorIyAgaWYgTElCUlNWR19DSEVDS19WRVJTSU9OICgyLCA1Miwg MSkKKyMgICBkZWZpbmUgcnN2Z19oYW5kbGVfZ2V0X2ludHJpbnNpY19zaXplX2luX3BpeGVs cyBcCisJZm5fcnN2Z19oYW5kbGVfZ2V0X2ludHJpbnNpY19zaXplX2luX3BpeGVscworIyAg ZW5kaWYKICMgIGlmIExJQlJTVkdfQ0hFQ0tfVkVSU0lPTiAoMiwgNDYsIDApCiAjICAgZGVm aW5lIHJzdmdfaGFuZGxlX2dldF9pbnRyaW5zaWNfZGltZW5zaW9ucyBcCiAJZm5fcnN2Z19o YW5kbGVfZ2V0X2ludHJpbnNpY19kaW1lbnNpb25zCkBAIC0xMDQ0NCw1MSArMTA0NTgsNzEg QEAgc3ZnX2xvYWRfaW1hZ2UgKHN0cnVjdCBmcmFtZSAqZiwgc3RydWN0IGltYWdlICppbWcs IGNoYXIgKmNvbnRlbnRzLAogCiAgIC8qIEdldCB0aGUgaW1hZ2UgZGltZW5zaW9ucy4gICov CiAjaWYgTElCUlNWR19DSEVDS19WRVJTSU9OICgyLCA0NiwgMCkKLSAgUnN2Z1JlY3Rhbmds ZSB6ZXJvX3JlY3QsIHZpZXdib3gsIG91dF9sb2dpY2FsX3JlY3Q7Ci0KLSAgLyogVHJ5IHRo ZSBpbnRyaW5zaWMgZGltZW5zaW9ucyBmaXJzdC4gICovCi0gIGdib29sZWFuIGhhc193aWR0 aCwgaGFzX2hlaWdodCwgaGFzX3ZpZXdib3g7Ci0gIFJzdmdMZW5ndGggaXdpZHRoLCBpaGVp Z2h0OwotICBkb3VibGUgZHBpID0gRlJBTUVfRElTUExBWV9JTkZPIChmKS0+cmVzeDsKLQot ICByc3ZnX2hhbmRsZV9nZXRfaW50cmluc2ljX2RpbWVuc2lvbnMgKHJzdmdfaGFuZGxlLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZoYXNfd2lkdGgsICZp d2lkdGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmhhc19o ZWlnaHQsICZpaGVpZ2h0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICZoYXNfdmlld2JveCwgJnZpZXdib3gpOworICBnZG91YmxlIGd2aWV3Ym94X3dpZHRo LCBndmlld2JveF9oZWlnaHQ7CisgIGdib29sZWFuIGhhc192aWV3Ym94ID0gRkFMU0U7Cisj IGlmIExJQlJTVkdfQ0hFQ0tfVkVSU0lPTiAoMiwgNTIsIDEpCisgIGhhc192aWV3Ym94ID0g cnN2Z19oYW5kbGVfZ2V0X2ludHJpbnNpY19zaXplX2luX3BpeGVscyAocnN2Z19oYW5kbGUs CisJCQkJCQkJICAmZ3ZpZXdib3hfd2lkdGgsCisJCQkJCQkJICAmZ3ZpZXdib3hfaGVpZ2h0 KTsKKyMgZW5kaWYKIAotICBpZiAoaGFzX3dpZHRoICYmIGhhc19oZWlnaHQpCisgIGlmICho YXNfdmlld2JveCkKICAgICB7Ci0gICAgICAvKiBTdWNjZXNzISAgV2UgY2FuIHVzZSB0aGVz ZSB2YWx1ZXMgZGlyZWN0bHkuICAqLwotICAgICAgdmlld2JveF93aWR0aCA9IHN2Z19jc3Nf bGVuZ3RoX3RvX3BpeGVscyAoaXdpZHRoLCBkcGksIGltZy0+ZmFjZV9mb250X3NpemUpOwot ICAgICAgdmlld2JveF9oZWlnaHQgPSBzdmdfY3NzX2xlbmd0aF90b19waXhlbHMgKGloZWln aHQsIGRwaSwgaW1nLT5mYWNlX2ZvbnRfc2l6ZSk7Ci0gICAgfQotICBlbHNlIGlmIChoYXNf d2lkdGggJiYgaGFzX3ZpZXdib3gpCi0gICAgewotICAgICAgdmlld2JveF93aWR0aCA9IHN2 Z19jc3NfbGVuZ3RoX3RvX3BpeGVscyAoaXdpZHRoLCBkcGksIGltZy0+ZmFjZV9mb250X3Np emUpOwotICAgICAgdmlld2JveF9oZWlnaHQgPSB2aWV3Ym94X3dpZHRoICogdmlld2JveC5o ZWlnaHQgLyB2aWV3Ym94LndpZHRoOwotICAgIH0KLSAgZWxzZSBpZiAoaGFzX2hlaWdodCAm JiBoYXNfdmlld2JveCkKLSAgICB7Ci0gICAgICB2aWV3Ym94X2hlaWdodCA9IHN2Z19jc3Nf bGVuZ3RoX3RvX3BpeGVscyAoaWhlaWdodCwgZHBpLCBpbWctPmZhY2VfZm9udF9zaXplKTsK LSAgICAgIHZpZXdib3hfd2lkdGggPSB2aWV3Ym94X2hlaWdodCAqIHZpZXdib3gud2lkdGgg LyB2aWV3Ym94LmhlaWdodDsKLSAgICB9Ci0gIGVsc2UgaWYgKGhhc192aWV3Ym94KQotICAg IHsKLSAgICAgIHZpZXdib3hfd2lkdGggPSB2aWV3Ym94LndpZHRoOwotICAgICAgdmlld2Jv eF9oZWlnaHQgPSB2aWV3Ym94LmhlaWdodDsKKyAgICAgIHZpZXdib3hfd2lkdGggPSBndmll d2JveF93aWR0aDsKKyAgICAgIHZpZXdib3hfaGVpZ2h0ID0gZ3ZpZXdib3hfaGVpZ2h0Owog ICAgIH0KICAgZWxzZQotICAgIHZpZXdib3hfd2lkdGggPSB2aWV3Ym94X2hlaWdodCA9IDA7 Ci0KLSAgaWYgKCEgKDAgPCB2aWV3Ym94X3dpZHRoICYmIDAgPCB2aWV3Ym94X2hlaWdodCkp CiAgICAgewotICAgICAgLyogV2UgaGF2ZW4ndCBmb3VuZCBhIHVzYWJsZSBzZXQgb2Ygc2l6 ZXMsIHNvIHRyeSB3b3JraW5nIG91dAotICAgICAgICAgdGhlIHZpc2libGUgYXJlYS4gICov Ci0gICAgICByc3ZnX2hhbmRsZV9nZXRfZ2VvbWV0cnlfZm9yX2xheWVyIChyc3ZnX2hhbmRs ZSwgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ6 ZXJvX3JlY3QsICZ2aWV3Ym94LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJm91dF9sb2dpY2FsX3JlY3QsIE5VTEwpOwotICAgICAgdmlld2JveF93aWR0 aCA9IHZpZXdib3gueCArIHZpZXdib3gud2lkdGg7Ci0gICAgICB2aWV3Ym94X2hlaWdodCA9 IHZpZXdib3gueSArIHZpZXdib3guaGVpZ2h0OworICAgICAgUnN2Z1JlY3RhbmdsZSB6ZXJv X3JlY3QsIHZpZXdib3gsIG91dF9sb2dpY2FsX3JlY3Q7CisKKyAgICAgIC8qIFRyeSB0aGUg aW50cmluc2ljIGRpbWVuc2lvbnMgZmlyc3QuICAqLworICAgICAgZ2Jvb2xlYW4gaGFzX3dp ZHRoLCBoYXNfaGVpZ2h0OworICAgICAgUnN2Z0xlbmd0aCBpd2lkdGgsIGloZWlnaHQ7Cisg ICAgICBkb3VibGUgZHBpID0gRlJBTUVfRElTUExBWV9JTkZPIChmKS0+cmVzeDsKKworICAg ICAgcnN2Z19oYW5kbGVfZ2V0X2ludHJpbnNpY19kaW1lbnNpb25zIChyc3ZnX2hhbmRsZSwK KwkJCQkJICAgICZoYXNfd2lkdGgsICZpd2lkdGgsCisJCQkJCSAgICAmaGFzX2hlaWdodCwg JmloZWlnaHQsCisJCQkJCSAgICAmaGFzX3ZpZXdib3gsICZ2aWV3Ym94KTsKKworICAgICAg aWYgKGhhc193aWR0aCAmJiBoYXNfaGVpZ2h0KQorCXsKKwkgIC8qIFN1Y2Nlc3MhICBXZSBj YW4gdXNlIHRoZXNlIHZhbHVlcyBkaXJlY3RseS4gICovCisJICB2aWV3Ym94X3dpZHRoID0g c3ZnX2Nzc19sZW5ndGhfdG9fcGl4ZWxzIChpd2lkdGgsIGRwaSwKKwkJCQkJCSAgICBpbWct PmZhY2VfZm9udF9zaXplKTsKKwkgIHZpZXdib3hfaGVpZ2h0ID0gc3ZnX2Nzc19sZW5ndGhf dG9fcGl4ZWxzIChpaGVpZ2h0LCBkcGksCisJCQkJCQkgICAgIGltZy0+ZmFjZV9mb250X3Np emUpOworCX0KKyAgICAgIGVsc2UgaWYgKGhhc193aWR0aCAmJiBoYXNfdmlld2JveCkKKwl7 CisJICB2aWV3Ym94X3dpZHRoID0gc3ZnX2Nzc19sZW5ndGhfdG9fcGl4ZWxzIChpd2lkdGgs IGRwaSwKKwkJCQkJCSAgICBpbWctPmZhY2VfZm9udF9zaXplKTsKKwkgIHZpZXdib3hfaGVp Z2h0ID0gdmlld2JveF93aWR0aCAqIHZpZXdib3guaGVpZ2h0IC8gdmlld2JveC53aWR0aDsK Kwl9CisgICAgICBlbHNlIGlmIChoYXNfaGVpZ2h0ICYmIGhhc192aWV3Ym94KQorCXsKKwkg IHZpZXdib3hfaGVpZ2h0ID0gc3ZnX2Nzc19sZW5ndGhfdG9fcGl4ZWxzIChpaGVpZ2h0LCBk cGksCisJCQkJCQkgICAgIGltZy0+ZmFjZV9mb250X3NpemUpOworCSAgdmlld2JveF93aWR0 aCA9IHZpZXdib3hfaGVpZ2h0ICogdmlld2JveC53aWR0aCAvIHZpZXdib3guaGVpZ2h0Owor CX0KKyAgICAgIGVsc2UgaWYgKGhhc192aWV3Ym94KQorCXsKKwkgIHZpZXdib3hfd2lkdGgg PSB2aWV3Ym94LndpZHRoOworCSAgdmlld2JveF9oZWlnaHQgPSB2aWV3Ym94LmhlaWdodDsK Kwl9CisgICAgICBlbHNlCisJdmlld2JveF93aWR0aCA9IHZpZXdib3hfaGVpZ2h0ID0gMDsK KworICAgICAgaWYgKCEgKDAgPCB2aWV3Ym94X3dpZHRoICYmIDAgPCB2aWV3Ym94X2hlaWdo dCkpCisJeworCSAgLyogV2UgaGF2ZW4ndCBmb3VuZCBhIHVzYWJsZSBzZXQgb2Ygc2l6ZXMs IHNvIHRyeSB3b3JraW5nIG91dAorCSAgICAgdGhlIHZpc2libGUgYXJlYS4gICovCisJICBy c3ZnX2hhbmRsZV9nZXRfZ2VvbWV0cnlfZm9yX2xheWVyIChyc3ZnX2hhbmRsZSwgTlVMTCwK KwkJCQkJICAgICAgJnplcm9fcmVjdCwgJnZpZXdib3gsCisJCQkJCSAgICAgICZvdXRfbG9n aWNhbF9yZWN0LCBOVUxMKTsKKwkgIHZpZXdib3hfd2lkdGggPSB2aWV3Ym94LnggKyB2aWV3 Ym94LndpZHRoOworCSAgdmlld2JveF9oZWlnaHQgPSB2aWV3Ym94LnkgKyB2aWV3Ym94Lmhl aWdodDsKKwl9CiAgICAgfQogI2Vsc2UKICAgLyogSW4gbGlicnN2ZyBiZWZvcmUgMi40Ni4w LCBndWVzcyB0aGUgdmlld2JveCBmcm9tIHRoZSBpbWFnZSBkaW1lbnNpb25zLiAgKi8KLS0g CjIuMzIuMAoK --------------K3cyAFJrejPRYM00F38YJJo5--