From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Evgeny Zajcev Newsgroups: gmane.emacs.devel Subject: Re: Loading svg from memory using custom filename for base_uri Date: Fri, 4 Dec 2020 02:02:52 +0300 Message-ID: References: <9684BD96-2E4E-45E1-92CC-69306A7C3205@gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="000000000000ba4edd05b5975c23" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="40324"; mail-complaints-to="usenet@ciao.gmane.io" To: Alan Third , Evgeny Zajcev , Eli Zaretskii , emacs-devel Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Fri Dec 04 00:03:51 2020 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 1kkxde-000AMB-RG for ged-emacs-devel@m.gmane-mx.org; Fri, 04 Dec 2020 00:03:50 +0100 Original-Received: from localhost ([::1]:48930 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kkxdd-0006jv-TP for ged-emacs-devel@m.gmane-mx.org; Thu, 03 Dec 2020 18:03:49 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:48476) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kkxcz-0006K8-Mq for emacs-devel@gnu.org; Thu, 03 Dec 2020 18:03:09 -0500 Original-Received: from mail-lj1-x229.google.com ([2a00:1450:4864:20::229]:43600) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kkxcw-0003vV-5f; Thu, 03 Dec 2020 18:03:09 -0500 Original-Received: by mail-lj1-x229.google.com with SMTP id 142so4399630ljj.10; Thu, 03 Dec 2020 15:03:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=U+LNrx6y0yd34xwwKj4htaonLGj4UaRRf9d+hUSfJng=; b=hT5etOuUxPuuLzVsxx5Fne0P4ZZm0hzJ+dCuTKVHPJNcF17l6utQC11UdMeBqFZMra kOflIb0IDZr6tfzXi/xB+viBOkcHSmsLN/bnmfxwDwUdeiue42PzLtMg5FUlh7npq8Zl J2jFUymkaaP6dBWV7l3vQT4yVKW5IrQDxq7GKUMly5l1+j2rNCQ7GyOtlNjgL2CvDkJw YchoDmj+pqIPWC+LU6PQPaSJ59Ri9OF5SIX99vk/gjHNevDOcv/XM7MBMSUa9nnKlEk8 ACcM19qgKEDHf08YKnmpZyjn1giG5BRIIiqdwzo3s2blNfwt1Ili4lJyaLSteUAf3eKc tbaw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=U+LNrx6y0yd34xwwKj4htaonLGj4UaRRf9d+hUSfJng=; b=rE3QauWKk+L586hl2y1ldqNAvc5DKpYuAoNx2rz5ONvxGvlIXehZ3ZfEGcvaRTlJOE 5hpP+7Y5NGqQzARCVS06UotEs4C3u6MkK14jlNG8dSAequXdeAfgv4x27flaNX+4qb15 Z1D7yfe7LKCMkIfoG6CL23oqmRu4riTPinMHusgkUbzxW5Imz9PvTIfxWkYmkCgcB3mL kQh4n7c2tLcGhP1DfXlq84aTTfTReiD9fsQlDflzjFHklb4G4TOEAHWDx/JcZSaxbiVU lXIzzqC/itDbyzYJAdWJUM3jY26O0VaDawSMNvp9uCzms1xz5i92bBtfGdfd5f13iVml Zv6w== X-Gm-Message-State: AOAM532CAiQLJCZc5XfB7CCm7f7Qad3LUfh3FUqWHWukbyTa/e4P7zGg H87garv3J4F6KKMbl6XwvdNop77JRK9xXu82sew= X-Google-Smtp-Source: ABdhPJwS9aNDWK6anyJ14yQOwDqI8YmeASB11sTl/UqgnAWtW2YXgpoOVEMM6vyw7CAyoGYOYkL6TfG2TODFeIGCIFY= X-Received: by 2002:a2e:9dd0:: with SMTP id x16mr2264987ljj.406.1607036583946; Thu, 03 Dec 2020 15:03:03 -0800 (PST) In-Reply-To: Received-SPF: pass client-ip=2a00:1450:4864:20::229; envelope-from=lg.zevlg@gmail.com; helo=mail-lj1-x229.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.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, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 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" Xref: news.gmane.io gmane.emacs.devel:260258 Archived-At: --000000000000ba4edd05b5975c23 Content-Type: multipart/alternative; boundary="000000000000ba4eda05b5975c21" --000000000000ba4eda05b5975c21 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable =D0=BF=D1=82, 4 =D0=B4=D0=B5=D0=BA. 2020 =D0=B3. =D0=B2 01:11, Evgeny Zajce= v : > > > =D1=87=D1=82, 3 =D0=B4=D0=B5=D0=BA. 2020 =D0=B3. =D0=B2 22:57, Alan Third= : > >> On Thu, Dec 03, 2020 at 08:50:15PM +0300, Evgeny Zajcev wrote: >> > >> > Here is updated patch, with support for `:base-uri` for :file image >> spec as >> > well >> >> It looks good to me. There are two things I think we need. One is to >> add an entry for :base-uri to the svg_format array in image.c, > > done! > > and >> some documentation, if you fancy writing it? >> >> Documentation better to write when `svg-embed` will support this feature= . > I wrote a new function `svg-embed-base-uri-image' to do the job, and wrote documentation for it. --=20 lg --000000000000ba4eda05b5975c21 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


=
=D0=BF=D1=82, 4 =D0=B4=D0=B5=D0=BA. 2= 020 =D0=B3. =D0=B2 01:11, Evgeny Zajcev <lg.zevlg@gmail.com>:


=D1=87=D1=82, 3 = =D0=B4=D0=B5=D0=BA. 2020 =D0=B3. =D0=B2 22:57, Alan Third <alan@idiocy.org>:
<= blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-l= eft:1px solid rgb(204,204,204);padding-left:1ex">On Thu, Dec 03, 2020 at 08= :50:15PM +0300, Evgeny Zajcev wrote:
>
> Here is updated patch, with support for `:base-uri` for :file image sp= ec as
> well

It looks good to me. There are two things I think we need. One is to
add an entry for :base-uri to the svg_format array in image.c,
done!

and
some documentation, if you fancy writing it?

Documentation better to write when `svg-embed` will s= upport this feature.

I wr= ote a new function `svg-embed-base-uri-image' to do the job, and wrote = documentation for it.



--
lg
--000000000000ba4eda05b5975c21-- --000000000000ba4edd05b5975c23 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Explicitly-specify-svg-base_uri-using-base-uri-image.patch" Content-Disposition: attachment; filename="0001-Explicitly-specify-svg-base_uri-using-base-uri-image.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ki9g2vdu0 RnJvbSBhYzJmNGZlMWVjOGIyZDg0OGQ4MTUzMjJiYTY4M2Y5OWM3ZGIyZTM2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBaYWpjZXYgRXZnZW55IDx6ZXZsZ0B5YW5kZXgucnU+CkRhdGU6 IFRodSwgMyBEZWMgMjAyMCAxODozNzoxOCArMDMwMApTdWJqZWN0OiBbUEFUQ0hdIEV4cGxpY2l0 bHkgc3BlY2lmeSBzdmcgYmFzZV91cmkgdXNpbmcgYDpiYXNlLXVyaScgaW1hZ2UKIHByb3BlcnR5 CgoqIHNyYy9pbWFnZS5jIChzdmdfbG9hZCk6IENoZWNrIGA6YmFzZS11cmknIGltYWdlIHByb3Bl cnR5IHRvCiAgZXhwbGljaXRseSBzZXQgYmFzZV91cmkgZm9yIGltYWdlcyBlbWJlZGRlZCBpbnRv IFNWRwoKKiBsaXNwL3N2Zy5lbCAoc3ZnLWVtYmVkLWJhc2UtdXJpLWltYWdlKTogTmV3IGZ1bmN0 aW9uIHRvIGVtYmVkIGltYWdlcwogIGxvY2F0ZWQgcmVsYXRpdmUgdG8gaW1hZ2VzIGA6YmFzZS11 cmknCi0tLQogZG9jL2xpc3ByZWYvZGlzcGxheS50ZXhpIHwgMjAgKysrKysrKysrKysrKysrKysr KysKIGV0Yy9ORVdTICAgICAgICAgICAgICAgICB8IDExICsrKysrKysrKysrCiBsaXNwL3N2Zy5l bCAgICAgICAgICAgICAgfCAxMyArKysrKysrKysrKysrCiBzcmMvaW1hZ2UuYyAgICAgICAgICAg ICAgfCAyMCArKysrKysrKysrKysrLS0tLS0tLQogNCBmaWxlcyBjaGFuZ2VkLCA1NyBpbnNlcnRp b25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9saXNwcmVmL2Rpc3BsYXku dGV4aSBiL2RvYy9saXNwcmVmL2Rpc3BsYXkudGV4aQppbmRleCBmODZiYWY1OTM2Li4wMDM4YTVj NThkIDEwMDY0NAotLS0gYS9kb2MvbGlzcHJlZi9kaXNwbGF5LnRleGkKKysrIGIvZG9jL2xpc3By ZWYvZGlzcGxheS50ZXhpCkBAIC01ODk4LDYgKzU4OTgsMjYgQEAgU1ZHIEltYWdlcwogQGVuZCBs aXNwCiBAZW5kIGRlZnVuCiAKK0BkZWZ1biBzdmctZW1iZWQtYmFzZS11cmktaW1hZ2Ugc3ZnIHJl bGF0aXZlLWZpbGVuYW1lICZyZXN0IGFyZ3MKK1RvIEB2YXJ7c3ZnfSBhZGQgYW4gZW1iZWRkZWQg KHJhc3RlcikgaW1hZ2UgcGxhY2VkIGF0CitAdmFye3JlbGF0aXZlLWZpbGVuYW1lfS4gIEB2YXJ7 cmVsYXRpdmUtZmlsZW5hbWV9IGlzIHNlYXJjaGVkIGluc2lkZQorQGNvZGV7ZmlsZS1uYW1lLWRp cmVjdG9yeX0gb2YgdGhlIEBjb2RlezpiYXNlLXVyaX0gc3ZnIGltYWdlIHByb3BlcnR5LgorVGhp cyBtYWtlcyBlbWJlZGRpbmcgbGFyZ2UgaW1hZ2VzIHdvcmsgdmVyeSBmYXN0LgorCitAbGlzcAor OzsgRW1iZWRpbmcgL3RtcC9zdWJkaXIvcm1zLmpwZyBhbmQgL3RtcC9hbm90aGVyL3Jtcy5qcGcK KyhzdmctZW1iZWQtYmFzZS11cmktaW1hZ2Ugc3ZnICJzdWJkaXIvcm1zLmpwZyIKKyAgICAgICAg ICAgOndpZHRoICIxMDBweCIgOmhlaWdodCAiMTAwcHgiCisgICAgICAgICAgIDp4ICI1MHB4IiA6 eSAiNzVweCIpCisoc3ZnLWVtYmVkLWJhc2UtdXJpLWltYWdlIHN2ZyAiYW5vdGhlci9ybXMuanBn IgorICAgICAgICAgICA6d2lkdGggIjEwMHB4IiA6aGVpZ2h0ICIxMDBweCIKKyAgICAgICAgICAg OnggIjc1cHgiIDp5ICI1MHB4IikKKyhzdmctaW1hZ2Ugc3ZnIDpzY2FsZSAxLjAKKyAgICAgICAg ICAgOmJhc2UtdXJpICIvdG1wL2R1bW15IgorICAgICAgICAgICA6d2lkdGggMTc1IDpoZWlnaHQg MTc1KQorQGVuZCBsaXNwCitAZW5kIGRlZnVuCisKIEBkZWZ1biBzdmctY2xpcC1wYXRoIHN2ZyAm cmVzdCBhcmdzCiBBZGQgYSBjbGlwcGluZyBwYXRoIHRvIEB2YXJ7c3ZnfS4gIElmIGFwcGxpZWQg dG8gYSBzaGFwZSB2aWEgdGhlCiBAdmFyezpjbGlwLXBhdGh9IHByb3BlcnR5LCBwYXJ0cyBvZiB0 aGF0IHNoYXBlIHdoaWNoIGxpZSBvdXRzaWRlIG9mCmRpZmYgLS1naXQgYS9ldGMvTkVXUyBiL2V0 Yy9ORVdTCmluZGV4IDJmYjMzZTM0MmUuLjM5MmI4MWYwM2MgMTAwNjQ0Ci0tLSBhL2V0Yy9ORVdT CisrKyBiL2V0Yy9ORVdTCkBAIC0yNCw2ICsyNCwxNyBAQCBhcHBsaWVzLCBhbmQgcGxlYXNlIGFs c28gdXBkYXRlIGRvY3N0cmluZ3MgYXMgbmVlZGVkLgogDAogKiBJbnN0YWxsYXRpb24gQ2hhbmdl cyBpbiBFbWFjcyAyOC4xCiAKKyoqIENhbiBleHBsaWNpdGx5IHNwZWNpZnkgYmFzZV91cmkgZm9y IHN2ZyBpbWFnZXMuCisnOmJhc2UtdXJpJyBpbWFnZSBwcm9wZXJ0eSBjYW4gYmUgdXNlZCB0byBl eHBsaWNpdGx5IHNwZWNpZnkgYmFzZV91cmkKK2ZvciBlbWJlZGRlZCBpbWFnZXMgaW50byBzdmcu ICc6YmFzZS11cmknIGlzIHN1cHBvcnRlZCBmb3IgYm90aCBmaWxlCithbmQgZGF0YSBzdmcgaW1h Z2VzLgorCisrKysKKyoqICdzdmctZW1iZWQtYmFzZS11cmktaW1hZ2UnIGFkZGVkIHRvIGVtYmVk IGltYWdlcworJ3N2Zy1lbWJlZC1iYXNlLXVyaS1pbWFnZScgY2FuIGJlIHVzZWQgdG8gZW1iZWQg aW1hZ2VzIGxvY2F0ZWQKK3JlbGF0aXZlbHkgdG8gJ2ZpbGUtbmFtZS1kaXJlY3RvcnknIG9mIHRo ZSAnOmJhc2UtdXJpJyBzdmcgaW1hZ2UgcHJvcGVydHkuCitUaGlzIHdvcmtzIG11Y2ggZmFzdGVy IHRoZW4gJ3N2Zy1lbWJlZCcuCisKICoqIENhaXJvIGdyYXBoaWNzIGxpYnJhcnkgaXMgbm93IHVz ZWQgYnkgZGVmYXVsdCBpZiBmb3VuZC4KICctLXdpdGgtY2Fpcm8nIGlzIG5vdyB0aGUgZGVmYXVs dCwgaWYgdGhlIGFwcHJvcHJpYXRlIGRldmVsb3BtZW50IGZpbGVzCiBhcmUgZm91bmQgYnkgJ2Nv bmZpZ3VyZScuICBOb3RlIHRoYXQgYnVpbGRpbmcgd2l0aCBDYWlybyBtZWFucyB1c2luZwpkaWZm IC0tZ2l0IGEvbGlzcC9zdmcuZWwgYi9saXNwL3N2Zy5lbAppbmRleCBlZWI5NDVmNTNiLi42ODk2 ZTAwODhiIDEwMDY0NAotLS0gYS9saXNwL3N2Zy5lbAorKysgYi9saXNwL3N2Zy5lbApAQCAtMTg0 LDYgKzE4NCwxOSBAQCBzdmctZW1iZWQKICAgICBgKCh4bGluazpocmVmIC4gLChzdmctLWltYWdl LWRhdGEgaW1hZ2UgaW1hZ2UtdHlwZSBkYXRhcCkpCiAgICAgICAsQChzdmctLWFyZ3VtZW50cyBz dmcgYXJncykpKSkpCiAKKyhkZWZ1biBzdmctZW1iZWQtYmFzZS11cmktaW1hZ2UgKHN2ZyByZWxh dGl2ZS1maWxlbmFtZSAmcmVzdCBhcmdzKQorICAiSW5zZXJ0IGltYWdlIHBsYWNlZCBhdCBSRUxB VElWRS1GSUxFTkFNRSBpbnRvIHRoZSBTVkcgc3RydWN0dXJlLgorUkVMQVRJVkUtRklMRU5BTUUg d2lsbCBiZSBzZWFyY2hlZCBpbiBgZmlsZS1uYW1lLWRpcmVjdG9yeScgb2YgdGhlCitpbWFnZSdz IGA6YmFzZS11cmknIHByb3BlcnR5LiAgSWYgYDpiYXNlLXVyaScgaXMgbm90IHNwZWNpZmllZCBm b3IgdGhlCitpbWFnZSwgdGhlbiBlbWJlZGRpbmcgd29uJ3Qgd29yay4gRW1iZWRkaW5nIGxhcmdl IGltYWdlcyB1c2luZyB0aGlzCitmdW5jdGlvbiBpcyBtdWNoIGZhc3RlciwgdGhlbiBgc3ZnLWVt YmVkJy4iCisgIChzdmctLWFwcGVuZAorICAgc3ZnCisgICAoZG9tLW5vZGUKKyAgICAnaW1hZ2UK KyAgICBgKCh4bGluazpocmVmIC4gLHJlbGF0aXZlLWZpbGVuYW1lKQorICAgICAgLEAoc3ZnLS1h cmd1bWVudHMgc3ZnIGFyZ3MpKSkpKQorCiAoZGVmdW4gc3ZnLXRleHQgKHN2ZyB0ZXh0ICZyZXN0 IGFyZ3MpCiAgICJBZGQgVEVYVCB0byBTVkcuIgogICAoc3ZnLS1hcHBlbmQKZGlmZiAtLWdpdCBh L3NyYy9pbWFnZS5jIGIvc3JjL2ltYWdlLmMKaW5kZXggNWViNDEzMjI5NS4uODllYmM2MGM2YyAx MDA2NDQKLS0tIGEvc3JjL2ltYWdlLmMKKysrIGIvc3JjL2ltYWdlLmMKQEAgLTk0NzIsNiArOTQ3 Miw3IEBAIERFRlVOICgiaW1hZ2VtYWdpY2stdHlwZXMiLCBGaW1hZ2VtYWdpY2tfdHlwZXMsIFNp bWFnZW1hZ2lja190eXBlcywgMCwgMCwgMCwKICAgeyI6dHlwZSIsCQlJTUFHRV9TWU1CT0xfVkFM VUUsCQkJMX0sCiAgIHsiOmRhdGEiLAkJSU1BR0VfU1RSSU5HX1ZBTFVFLAkJCTB9LAogICB7Ijpm aWxlIiwJCUlNQUdFX1NUUklOR19WQUxVRSwJCQkwfSwKKyAgeyI6YmFzZS11cmkiLAkJSU1BR0Vf U1RSSU5HX1ZBTFVFLAkJCTB9LAogICB7Ijphc2NlbnQiLAkJSU1BR0VfQVNDRU5UX1ZBTFVFLAkJ CTB9LAogICB7IjptYXJnaW4iLAkJSU1BR0VfTk9OX05FR0FUSVZFX0lOVEVHRVJfVkFMVUVfT1Jf UEFJUiwgMH0sCiAgIHsiOnJlbGllZiIsCQlJTUFHRV9JTlRFR0VSX1ZBTFVFLAkJCTB9LApAQCAt OTY5OCwxMCArOTY5OSwxMSBAQCBpbml0X3N2Z19mdW5jdGlvbnMgKHZvaWQpCiBzdmdfbG9hZCAo c3RydWN0IGZyYW1lICpmLCBzdHJ1Y3QgaW1hZ2UgKmltZykKIHsKICAgYm9vbCBzdWNjZXNzX3Ag PSAwOwotICBMaXNwX09iamVjdCBmaWxlX25hbWU7CisgIExpc3BfT2JqZWN0IGZpbGVfbmFtZSwg YmFzZV91cmk7CiAKICAgLyogSWYgSU1HLT5zcGVjIHNwZWNpZmllcyBhIGZpbGUgbmFtZSwgY3Jl YXRlIGEgbm9uLWZpbGUgc3BlYyBmcm9tIGl0LiAgKi8KICAgZmlsZV9uYW1lID0gaW1hZ2Vfc3Bl Y192YWx1ZSAoaW1nLT5zcGVjLCBRQ2ZpbGUsIE5VTEwpOworICBiYXNlX3VyaSA9IGltYWdlX3Nw ZWNfdmFsdWUgKGltZy0+c3BlYywgUUNiYXNlX3VyaSwgTlVMTCk7CiAgIGlmIChTVFJJTkdQIChm aWxlX25hbWUpKQogICAgIHsKICAgICAgIGludCBmZDsKQEAgLTk3MjEsMTUgKzk3MjMsMTYgQEAg c3ZnX2xvYWQgKHN0cnVjdCBmcmFtZSAqZiwgc3RydWN0IGltYWdlICppbWcpCiAJICByZXR1cm4g MDsKIAl9CiAgICAgICAvKiBJZiB0aGUgZmlsZSB3YXMgc2x1cnBlZCBpbnRvIG1lbW9yeSBwcm9w ZXJseSwgcGFyc2UgaXQuICAqLwotICAgICAgc3VjY2Vzc19wID0gc3ZnX2xvYWRfaW1hZ2UgKGYs IGltZywgY29udGVudHMsIHNpemUsCi0JCQkJICBTU0RBVEEgKEVOQ09ERV9GSUxFIChmaWxlKSkp OworICAgICAgaWYgKCFTVFJJTkdQIChiYXNlX3VyaSkpCisgICAgICAgIGJhc2VfdXJpID0gRU5D T0RFX0ZJTEUgKGZpbGUpOworICAgICAgc3VjY2Vzc19wID0gc3ZnX2xvYWRfaW1hZ2UgKGYsIGlt ZywgY29udGVudHMsIHNpemUsIFNTREFUQSAoYmFzZV91cmkpKTsKICAgICAgIHhmcmVlIChjb250 ZW50cyk7CiAgICAgfQogICAvKiBFbHNlIGl0J3Mgbm90IGEgZmlsZSwgaXQncyBhIExpc3Agb2Jq ZWN0LiAgTG9hZCB0aGUgaW1hZ2UgZnJvbSBhCiAgICAgIExpc3Agb2JqZWN0IHJhdGhlciB0aGFu IGEgZmlsZS4gICovCiAgIGVsc2UKICAgICB7Ci0gICAgICBMaXNwX09iamVjdCBkYXRhLCBvcmln aW5hbF9maWxlbmFtZTsKKyAgICAgIExpc3BfT2JqZWN0IGRhdGE7CiAKICAgICAgIGRhdGEgPSBp bWFnZV9zcGVjX3ZhbHVlIChpbWctPnNwZWMsIFFDZGF0YSwgTlVMTCk7CiAgICAgICBpZiAoIVNU UklOR1AgKGRhdGEpKQpAQCAtOTczNywxMCArOTc0MCwxMCBAQCBzdmdfbG9hZCAoc3RydWN0IGZy YW1lICpmLCBzdHJ1Y3QgaW1hZ2UgKmltZykKIAkgIGltYWdlX2Vycm9yICgiSW52YWxpZCBpbWFn ZSBkYXRhIGAlcyciLCBkYXRhKTsKIAkgIHJldHVybiAwOwogCX0KLSAgICAgIG9yaWdpbmFsX2Zp bGVuYW1lID0gQlZBUiAoY3VycmVudF9idWZmZXIsIGZpbGVuYW1lKTsKKyAgICAgIGlmICghU1RS SU5HUCAoYmFzZV91cmkpKQorICAgICAgICBiYXNlX3VyaSA9IEJWQVIgKGN1cnJlbnRfYnVmZmVy LCBmaWxlbmFtZSk7CiAgICAgICBzdWNjZXNzX3AgPSBzdmdfbG9hZF9pbWFnZSAoZiwgaW1nLCBT U0RBVEEgKGRhdGEpLCBTQllURVMgKGRhdGEpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChOSUxQIChvcmlnaW5hbF9maWxlbmFtZSkgPyBOVUxMCi0JCQkJICAgOiBTU0RBVEEg KG9yaWdpbmFsX2ZpbGVuYW1lKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChOSUxQIChiYXNlX3VyaSkgPyBOVUxMIDogU1NEQVRBIChiYXNlX3VyaSkpKTsKICAgICB9CiAK ICAgcmV0dXJuIHN1Y2Nlc3NfcDsKQEAgLTk4MzgsNiArOTg0MSw3IEBAIHN2Z19sb2FkX2ltYWdl IChzdHJ1Y3QgZnJhbWUgKmYsIHN0cnVjdCBpbWFnZSAqaW1nLCBjaGFyICpjb250ZW50cywKICAg ZWFzc3VtZSAocnN2Z19oYW5kbGUpOwogCiAgIC8qIFNldCBiYXNlX3VyaSBmb3IgcHJvcGVybHkg aGFuZGxpbmcgcmVmZXJlbmNlZCBpbWFnZXMgKHZpYSAnaHJlZicpLgorICAgICBDYW4gYmUgZXhw bGljaXRseSBzcGVjaWZpZWQgdXNpbmcgYDpiYXNlX3VyaScgaW1hZ2UgcHJvcGVydHkuCiAgICAg IFNlZSByc3ZnIGJ1ZyA1OTYxMTQgLSAiaW1hZ2UgcmVmcyBhcmUgcmVsYXRpdmUgdG8gY3VyZGly LCBub3QgLnN2ZyBmaWxlIgogICAgICA8aHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2xp YnJzdmcvaXNzdWVzLzMzPi4gKi8KICAgaWYgKGZpbGVuYW1lKQpAQCAtMTAwMDIsNiArMTAwMDYs NyBAQCBzdmdfbG9hZF9pbWFnZSAoc3RydWN0IGZyYW1lICpmLCBzdHJ1Y3QgaW1hZ2UgKmltZywg Y2hhciAqY29udGVudHMsCiAgIGVhc3N1bWUgKHJzdmdfaGFuZGxlKTsKIAogICAvKiBTZXQgYmFz ZV91cmkgZm9yIHByb3Blcmx5IGhhbmRsaW5nIHJlZmVyZW5jZWQgaW1hZ2VzICh2aWEgJ2hyZWYn KS4KKyAgICAgQ2FuIGJlIGV4cGxpY2l0bHkgc3BlY2lmaWVkIHVzaW5nIGA6YmFzZV91cmknIGlt YWdlIHByb3BlcnR5LgogICAgICBTZWUgcnN2ZyBidWcgNTk2MTE0IC0gImltYWdlIHJlZnMgYXJl IHJlbGF0aXZlIHRvIGN1cmRpciwgbm90IC5zdmcgZmlsZSIKICAgICAgPGh0dHBzOi8vZ2l0bGFi Lmdub21lLm9yZy9HTk9NRS9saWJyc3ZnL2lzc3Vlcy8zMz4uICovCiAgIGlmIChmaWxlbmFtZSkK QEAgLTEwNjg0LDYgKzEwNjg5LDcgQEAgc3ltc19vZl9pbWFnZSAodm9pZCkKIAogI2lmIGRlZmlu ZWQgKEhBVkVfUlNWRykKICAgREVGU1lNIChRc3ZnLCAic3ZnIik7CisgIERFRlNZTSAoUUNiYXNl X3VyaSwgIjpiYXNlLXVyaSIpOwogICBhZGRfaW1hZ2VfdHlwZSAoUXN2Zyk7CiAjaWZkZWYgSEFW RV9OVEdVSQogICAvKiBPdGhlciBsaWJyYXJpZXMgdXNlZCBkaXJlY3RseSBieSBzdmcgY29kZS4g ICovCi0tIAoyLjI1LjEKCg== --000000000000ba4edd05b5975c23--