From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: Gerry Agbobada Newsgroups: gmane.emacs.devel Subject: Re: Question about composite.c Date: Wed, 15 Apr 2020 09:39:30 +0200 Message-ID: References: <83r1zsvfph.fsf@gnu.org> <83muagvcwg.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="0000000000005a4c4a05a34f6b13" Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="54322"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Eli Zaretskii , Emacs developers To: Noam Postavsky Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Wed Apr 15 09:40:26 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 1jOceo-000DzY-Gh for ged-emacs-devel@m.gmane-mx.org; Wed, 15 Apr 2020 09:40:26 +0200 Original-Received: from localhost ([::1]:45206 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jOcen-0005VO-Hz for ged-emacs-devel@m.gmane-mx.org; Wed, 15 Apr 2020 03:40:25 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:48710) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jOceC-00053k-9q for emacs-devel@gnu.org; Wed, 15 Apr 2020 03:39:50 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jOceA-00030c-5n for emacs-devel@gnu.org; Wed, 15 Apr 2020 03:39:48 -0400 Original-Received: from mail-il1-x129.google.com ([2607:f8b0:4864:20::129]:43454) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jOce7-0002zW-Hx; Wed, 15 Apr 2020 03:39:43 -0400 Original-Received: by mail-il1-x129.google.com with SMTP id z12so2384734ilb.10; Wed, 15 Apr 2020 00:39:43 -0700 (PDT) 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 :cc; bh=hjHOWbmGmf8734JZCMa1iawc/zCTG/D1t4/pR7b2GCc=; b=kC0270R02JzHDQl/LOWBcmfJkzSB76mImRkbcYyHvQ0lxkN+pmkuB+NsViq6H3x36w JwpvdMAwR81KkrFzXAYG1LMYVMTv1edNr/m1Gws6t9HquPH6mfhoqWuNdv1IQOizUyEj V66LsH7NwAhu6zYRejWD4DSztO3QTZhSc8fM/Sjl6OQ9CbLzZVZx2JFljtDrIu2GEcC7 Jdmo+HKnpJ7UmCkrwOqV3nhX/ccU4/97YjcfXUuJXalBNtLRppplKSCJMB5825ZdAf7p Ebaa2etSlHzFcti+B+LOWdCiKAarefa8LtzqiOwiZE0B7lIU9Rhr0aBeNKSdm/SGNtcq lFIQ== 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:cc; bh=hjHOWbmGmf8734JZCMa1iawc/zCTG/D1t4/pR7b2GCc=; b=O5QeAB35RBloUg09UDB85fNdinmmqb+17df9vD8Zqk47ue9KAikL0jp/YBe58oc7YU EGTELrLJaeupSSrdP8elB6k28zv+GMqoXLexvgXFcDffHcK4M456PQ9kfdJ0uKS7qZ6D 29skk152as1klNs1syx3fAVYaAd1A1/KqtK2WdeKXTOJKluQ1MoFEpjOJAGnn7Y0XiyI 60v/2TSM7qiGt49xdC5JjfjiVMW5AqhnVUCi0qCgLBLt5Tot0c8FIz1YnmL6qTJaIQ5a t1vPmYSmHD3HpKWV0X47V0lhu8UtwdCaMZsGVazIhi2nt84TJ2/CFXvlVh8xpSHx2PBY 8cKg== X-Gm-Message-State: AGi0Pua6VaMr1W/xQj8k90EUxu9pBXicI0zA3ic8Jz+pRaXwnuXJcC4E fzOPzB3T1pZ08it0iieGzn8LE2SdrRde/nkL5oQ= X-Google-Smtp-Source: APiQypLGNquBRfjkR1KAiSB9n8zYnGpTUaQigEOpfm3J9H7R5ofXXV2hBQ7/vukJF9T5HFvwbTIfWyb6/VcoAbvBVC8= X-Received: by 2002:a92:d602:: with SMTP id w2mr190949ilm.126.1586936382334; Wed, 15 Apr 2020 00:39:42 -0700 (PDT) In-Reply-To: X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::129 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:246990 Archived-At: --0000000000005a4c4a05a34f6b13 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Oh, sorry, I should have done that. Gerry Le mer. 15 avr. 2020 =C3=A0 03:10, Noam Postavsky a = =C3=A9crit : > > On Tue, 14 Apr 2020 at 18:44, Gerry Agbobada wrote: > > > I'm writing this from gmail, I wasn't able to paste the file in the > > editor respecting the newlines, so I pushed it in a gist... I'd prefer > > the code to be archived in the mailing list, > > FYI, posting code as an attachment generally works okay for that. --0000000000005a4c4a05a34f6b13 Content-Type: text/x-emacs-lisp; charset="US-ASCII"; name="ligature-bug.el" Content-Disposition: attachment; filename="ligature-bug.el" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_k910xqov0 Ozs7IGxpZ2F0dXJlLWJ1Zy5lbCAtLS0gUmVwcm9kdWNlIGFuIGF1dG9jb21wb3NpdGlvbiBidWcg LSotIGxleGljYWwtYmluZGluZzogdDsgLSotCjs7OyBDb21tZW50YXJ5Ogo7Owo7OyAgUmVwcm9k dWNlciBmb3IgdGhlIGNvbXBvc2l0aW9uIHRhYmxlIGJ1Zwo7Owo7Ozs7IE1ldGhvZAo7Owo7OyBF dmFsdWF0ZSB0aGUgZmlsZSwgYW5kIHRoZW4gdXNlIGVyb3MgKyBldmFsLWxhc3Qtc2V4cCBvbiB0 aGUgYWRkaXRpb24KOzsgRXhwZWN0ZWQgOiAiPT4gNSIgaXMgZGlzcGxheWVkIGF0IGN1cnNvciwg d2l0aCBhIHNoaW55IGxpZ2F0dXJlCjs7IEFjdHVhbCA6IGluaWZpbml0ZSBsb29waW5nLCB0cnlp bmcgdG8gInNoYXBlIHVuaWJ5dGUgdGV4dCIsCjs7ICAgICAgICAgIHdoaWNoIGhhcHBlbnMgdG8g YmUgYW4gZW1wdHkgc3RyaW5nIChmcm9tIG15IGVhcmxpZXIgZGVidWdnaW5nKQo7Owo7Owo7Ozs7 IENvbW1pdCBpbmZvcm1hdGlvbiA6Cjs7IGNvbW1pdCBlMWYwZTA4OTIyMzIyMjFlNjMzM2IyNDc4 OGI5Nzk0MmM4M2VjNzM4IChIRUFEIC0+IGVtYWNzLTI3LCBvcmlnaW4vZW1hY3MtMjcpCjs7IEF1 dGhvcjogRWxpIFphcmV0c2tpaSA8ZWxpekBnbnUub3JnPgo7OyBEYXRlOiAgIFdlZCBNYXIgMjUg MjE6NTQ6MjEgMjAyMCArMDIwMAo7Owo7OyAqIGxpc3AvZmlsZXMuZWwgKGRpcmVjdG9yeS1maWxl cy1yZWN1cnNpdmVseSk6IERvYyBmaXguICAoQnVnIzQwMjAyKQo7Owo7Owo7OzsgQ29kZToKCjs7 OzsgSW5jbHVkZSBlcm9zCjs7IFRoaXMgaXMgdGhlIHNtYWxsZXN0IHBhY2thZ2UgSSBmb3VuZCB3 aXRoIHdoaWNoIEkgY2FuIHJlcHJvZHVjZSBteSBpc3N1ZQo7OyBJIHBhc3RlIHRoZSBzb3VyY2Ug aGVyZSBmb3IgY29udmVuaWVuY2UsIGNvbW1lbnRpbmcgb25seSB0aGUgcHJvdmlkZSBjYWxsCjs7 IGFuZCBhZGRpbmcgMiBsZXZlbHMgdG8gc2VjdGlvbiBoZWFkaW5ncyAoc28gdGhleSBhcmUgdW5k ZXIgImluY2x1ZGUgZXJvcyIpCgo7Ozs7OyBlcm9zLmVsIC0tLSBFdmFsdWF0aW9uIFJlc3VsdCBP dmVybGF5UyBmb3IgRW1hY3MgTGlzcCAgIC0qLSBsZXhpY2FsLWJpbmRpbmc6IHQ7IC0qLQoKOzsg Q29weXJpZ2h0IChDKSAyMDE2LTIwMTggIFRpYW54aWFuZyBYaW9uZwoKOzsgQXV0aG9yOiBUaWFu eGlhbmcgWGlvbmcgPHRpYW54aWFuZy54aW9uZ0BnbWFpbC5jb20+Cjs7IEtleXdvcmRzOiBjb252 ZW5pZW5jZSwgbGlzcAo7OyBQYWNrYWdlLVJlcXVpcmVzOiAoKGVtYWNzICIyNC40IikpCjs7IFVS TDogaHR0cHM6Ly9naXRodWIuY29tL3hpb25ndHgvZXJvcwo7OyBWZXJzaW9uOiAwLjEuMAoKOzsg VGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu ZC9vciBtb2RpZnkKOzsgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKOzsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKOzsgKGF0IHlvdXIgb3B0aW9u KSBhbnkgbGF0ZXIgdmVyc2lvbi4KCjs7IFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0 aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAo7OyBidXQgV0lUSE9VVCBBTlkgV0FSUkFO VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgo7OyBNRVJDSEFOVEFCSUxJ VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCjs7IEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCgo7OyBZb3Ugc2hvdWxkIGhh dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQo7OyBh bG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcv bGljZW5zZXMvPi4KCjs7Ozs7IENvbW1lbnRhcnk6Cgo7OyBFdmFsdWF0aW9uIHJlc3VsdCBvdmVy bGF5cyBmb3IgRW1hY3MgTGlzcC4KCjs7IFRoZSBjb2RlIGlzIG1vc3RseSB0YWtlbiBmcm9tIENJ REVSLiAgRm9yIG1vcmUgYWJvdXQgQ0lERVIsIHNlZToKOzsgaHR0cHM6Ly9naXRodWIuY29tL2Ns b2p1cmUtZW1hY3MvY2lkZXIKCjs7Ozs7IENvZGU6CgoocmVxdWlyZSAnY2wtbGliKQoKDAo7OyBD dXN0b21pemUKCihkZWZncm91cCBlcm9zIG5pbAogICJFdmFsdWF0aW9uIFJlc3VsdCBPdmVybGF5 UyBmb3IgRW1hY3MgTGlzcCIKICA6cHJlZml4ICJlcm9zLSIKICA6Z3JvdXAgJ2xpc3ApCgooZGVm Y3VzdG9tIGVyb3MtZXZhbC1yZXN1bHQtcHJlZml4ICI9PiAiCiAgIlRoZSBwcmVmaXggZGlzcGxh eWVkIGluIHRoZSBtaW5pYnVmZmVyIGJlZm9yZSBhIHJlc3VsdCB2YWx1ZS4iCiAgOmdyb3VwICdl cm9zCiAgOnR5cGUgJ3N0cmluZwogIDpwYWNrYWdlLXZlcnNpb24gJyhlcm9zICIwLjEuMCIpKQoK KGRlZmZhY2UgZXJvcy1yZXN1bHQtb3ZlcmxheS1mYWNlCiAgJygoKChjbGFzcyBjb2xvcikgKGJh Y2tncm91bmQgbGlnaHQpKQogICAgIDpiYWNrZ3JvdW5kICJncmV5OTAiIDpib3ggKDpsaW5lLXdp ZHRoIC0xIDpjb2xvciAieWVsbG93IikpCiAgICAoKChjbGFzcyBjb2xvcikgKGJhY2tncm91bmQg ZGFyaykpCiAgICAgOmJhY2tncm91bmQgImdyZXkxMCIgOmJveCAoOmxpbmUtd2lkdGggLTEgOmNv bG9yICJibGFjayIpKSkKICAiRmFjZSB1c2VkIHRvIGRpc3BsYXkgZXZhbHVhdGlvbiByZXN1bHRz IGF0IHRoZSBlbmQgb2YgbGluZS4KSWYgYGVyb3Mtb3ZlcmxheXMtdXNlLWZvbnQtbG9jaycgaXMg bm9uLW5pbCwgdGhpcyBmYWNlIGlzIGFwcGxpZWQKd2l0aCBsb3dlciBwcmlvcml0eSB0aGFuIHRo ZSBzeW50YXggaGlnaGxpZ2h0aW5nLiIKICA6Z3JvdXAgJ2Vyb3MKICA6cGFja2FnZS12ZXJzaW9u ICcoZXJvcyAiMC4xLjAiKSkKCihkZWZjdXN0b20gZXJvcy1vdmVybGF5cy11c2UtZm9udC1sb2Nr IHQKICAiSWYgbm9uLW5pbCwgcmVzdWx0cyBvdmVybGF5cyBhcmUgZm9udC1sb2NrZWQgYXMgQ2xv anVyZSBjb2RlLgpJZiBuaWwsIGFwcGx5IGBlcm9zLXJlc3VsdC1vdmVybGF5LWZhY2UnIHRvIHRo ZSBlbnRpcmUgb3ZlcmxheSBpbnN0ZWFkIG9mCmZvbnQtbG9ja2luZyBpdC4iCiAgOmdyb3VwICdl cm9zCiAgOnR5cGUgJ2Jvb2xlYW4KICA6cGFja2FnZS12ZXJzaW9uICcoZXJvcyAiMC4xLjAiKSkK CihkZWZjdXN0b20gZXJvcy1ldmFsLXJlc3VsdC1kdXJhdGlvbiAnY29tbWFuZAogICJEdXJhdGlv biwgaW4gc2Vjb25kcywgb2YgZXZhbC1yZXN1bHQgb3ZlcmxheXMuCgpJZiBuaWwsIG92ZXJsYXlz IGxhc3QgaW5kZWZpbml0ZWx5LgoKSWYgdGhlIHN5bWJvbCBgY29tbWFuZCcsIHRoZXkncmUgZXJh c2VkIGJlZm9yZSB0aGUgbmV4dCBjb21tYW5kLiIKICA6Z3JvdXAgJ2Vyb3MKICA6dHlwZSAnKGNo b2ljZSAoaW50ZWdlciA6dGFnICJEdXJhdGlvbiBpbiBzZWNvbmRzIikKICAgICAgICAgICAgICAg ICAoY29uc3QgOnRhZyAiVW50aWwgbmV4dCBjb21tYW5kIiBjb21tYW5kKQogICAgICAgICAgICAg ICAgIChjb25zdCA6dGFnICJMYXN0IGluZGVmaW5pdGVseSIgbmlsKSkKICA6cGFja2FnZS12ZXJz aW9uICcoZXJvcyAiMC4xLjAiKSkKCgwKOzsgT3ZlcmxheQoKKGRlZnVuIGVyb3MtLW1ha2Utb3Zl cmxheSAobCByIHR5cGUgJnJlc3QgcHJvcHMpCiAgIlBsYWNlIGFuIG92ZXJsYXkgYmV0d2VlbiBM IGFuZCBSIGFuZCByZXR1cm4gaXQuCgpUWVBFIGlzIGEgc3ltYm9sIHB1dCBvbiB0aGUgb3Zlcmxh eSdzIGNhdGVnb3J5IHByb3BlcnR5LiAgSXQgaXMKdXNlZCB0byBlYXNpbHkgcmVtb3ZlIGFsbCBv dmVybGF5cyBmcm9tIGEgcmVnaW9uIHdpdGg6CgogICAgKHJlbW92ZS1vdmVybGF5cyBzdGFydCBl bmQgJ2NhdGVnb3J5IFRZUEUpCgpQUk9QUyBpcyBhIHBsaXN0IG9mIHByb3BlcnRpZXMgYW5kIHZh bHVlcyB0byBhZGQgdG8gdGhlIG92ZXJsYXkuIgogIChsZXQgKChvIChtYWtlLW92ZXJsYXkgbCAo b3IgciBsKSAoY3VycmVudC1idWZmZXIpKSkpCiAgICAob3ZlcmxheS1wdXQgbyAnY2F0ZWdvcnkg dHlwZSkKICAgIChvdmVybGF5LXB1dCBvICdlcm9zLXRlbXBvcmFyeSB0KQogICAgKHdoaWxlIHBy b3BzIChvdmVybGF5LXB1dCBvIChwb3AgcHJvcHMpIChwb3AgcHJvcHMpKSkKICAgIChwdXNoICMn ZXJvcy0tZGVsZXRlLW92ZXJsYXkgKG92ZXJsYXktZ2V0IG8gJ21vZGlmaWNhdGlvbi1ob29rcykp CiAgICBvKSkKCihkZWZ1biBlcm9zLS1kZWxldGUtb3ZlcmxheSAob3YgJnJlc3QgXykKICAiU2Fm ZWx5IGRlbGV0ZSBvdmVybGF5IE9WLgoKTmV2ZXIgdGhyb3dzIGVycm9ycywgYW5kIGNhbiBiZSB1 c2VkIGluIGFuIG92ZXJsYXkncwptb2RpZmljYXRpb24taG9va3MuIgogIChpZ25vcmUtZXJyb3Jz IChkZWxldGUtb3ZlcmxheSBvdikpKQoKKGNsLWRlZnVuIGVyb3MtLW1ha2UtcmVzdWx0LW92ZXJs YXkgKHZhbHVlICZyZXN0IHByb3BzICZrZXkgd2hlcmUgZHVyYXRpb24gKHR5cGUgJ3Jlc3VsdCkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmb3JtYXQgKGNvbmNh dCAiICIgZXJvcy1ldmFsLXJlc3VsdC1wcmVmaXggIiVzICIpKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKHByZXBlbmQtZmFjZSAnZXJvcy1yZXN1bHQtb3Zlcmxh eS1mYWNlKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmFsbG93 LW90aGVyLWtleXMpCiAgIlBsYWNlIGFuIG92ZXJsYXkgZGlzcGxheWluZyBWQUxVRSBhdCB0aGUg ZW5kIG9mIGxpbmUuCgpWQUxVRSBpcyB1c2VkIGFzIHRoZSBvdmVybGF5J3MgYWZ0ZXItc3RyaW5n IHByb3BlcnR5LCBtZWFuaW5nIGl0CmlzIGRpc3BsYXllZCBhdCB0aGUgZW5kIG9mIHRoZSBvdmVy bGF5LiAgVGhlIG92ZXJsYXkgaXRzZWxmIGlzCnBsYWNlZCBmcm9tIGJlZ2lubmluZyB0byBlbmQg b2YgY3VycmVudCBsaW5lLgoKUmV0dXJuIG5pbCBpZiB0aGUgb3ZlcmxheSB3YXMgbm90IHBsYWNl ZCBvciBpZiBpdCBtaWdodCBub3QgYmUKdmlzaWJsZSwgYW5kIHJldHVybiB0aGUgb3ZlcmxheSBv dGhlcndpc2UuCgpSZXR1cm4gdGhlIG92ZXJsYXkgaWYgaXQgd2FzIHBsYWNlZCBzdWNjZXNzZnVs bHksIGFuZCBuaWwgaWYgaXQKZmFpbGVkLgoKVGhpcyBmdW5jdGlvbiB0YWtlcyBzb21lIG9wdGlv bmFsIGtleXdvcmQgYXJndW1lbnRzOgoKLSBJZiBXSEVSRSBpcyBhIG51bWJlciBvciBhIG1hcmtl ciwgYXBwbHkgdGhlIG92ZXJsYXkgb3ZlciB0aGUKICBlbnRpcmUgbGluZSBhdCB0aGF0IHBsYWNl IChkZWZhdWx0aW5nIHRvIGBwb2ludCcpLiAgSWYgaXQgaXMgYQogIGNvbnMgY2VsbCwgdGhlIGNh ciBhbmQgY2RyIGRldGVybWluZSB0aGUgc3RhcnQgYW5kIGVuZCBvZiB0aGUKICBvdmVybGF5LgoK LSBEVVJBVElPTiB0YWtlcyB0aGUgc2FtZSBwb3NzaWJsZSB2YWx1ZXMgYXMgdGhlCiAgYGVyb3Mt ZXZhbC1yZXN1bHQtZHVyYXRpb24nIHZhcmlhYmxlLgoKLSBUWVBFIGlzIHBhc3NlZCB0byBgZXJv cy0tbWFrZS1vdmVybGF5JyAoZGVmYXVsdHMgdG8gYHJlc3VsdCcpLgoKLSBGT1JNQVQgaXMgYSBz dHJpbmcgcGFzc2VkIHRvIGBmb3JtYXQnLiAgSXQgc2hvdWxkIGhhdmUgZXhhY3RseQogIG9uZSAl cyBjb25zdHJ1Y3QgKGZvciBWQUxVRSkuCgpBbGwgYXJndW1lbnRzIGJleW9uZCB0aGVzZSAoUFJP UFMpIGFyZSBwcm9wZXJ0aWVzIHRvIGJlIHVzZWQgb24KdGhlIG92ZXJsYXkuIgogIChkZWNsYXJl IChpbmRlbnQgMSkpCiAgKHdoaWxlIChrZXl3b3JkcCAoY2FyIHByb3BzKSkKICAgIChzZXRxIHBy b3BzIChjZGRyIHByb3BzKSkpCiAgOzsgSWYgdGhlIG1hcmtlciBwb2ludHMgdG8gYSBkZWFkIGJ1 ZmZlciwgZG9uJ3QgZG8gYW55dGhpbmcuCiAgKGxldCAoKGJ1ZmZlciAoY29uZAogICAgICAgICAg ICAgICAgICgobWFya2VycCB3aGVyZSkgKG1hcmtlci1idWZmZXIgd2hlcmUpKQogICAgICAgICAg ICAgICAgICgobWFya2VycCAoY2FyLXNhZmUgd2hlcmUpKSAobWFya2VyLWJ1ZmZlciAoY2FyIHdo ZXJlKSkpCiAgICAgICAgICAgICAgICAgKHQgKGN1cnJlbnQtYnVmZmVyKSkpKSkKICAgICh3aXRo LWN1cnJlbnQtYnVmZmVyIGJ1ZmZlcgogICAgICAoc2F2ZS1leGN1cnNpb24KICAgICAgICAod2hl biAobnVtYmVyLW9yLW1hcmtlci1wIHdoZXJlKQogICAgICAgICAgKGdvdG8tY2hhciB3aGVyZSkp CiAgICAgICAgOzsgTWFrZSBzdXJlIHRoZSBvdmVybGF5IGlzIGFjdHVhbGx5IGF0IHRoZSBlbmQg b2YgdGhlIHNleHAuCiAgICAgICAgKHNraXAtY2hhcnMtYmFja3dhcmQgIlxyXG5bOmJsYW5rOl0i KQogICAgICAgIChsZXQqICgoYmVnIChpZiAoY29uc3Agd2hlcmUpCiAgICAgICAgICAgICAgICAg ICAgICAgIChjYXIgd2hlcmUpCiAgICAgICAgICAgICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24K ICAgICAgICAgICAgICAgICAgICAgICAgKGJhY2t3YXJkLXNleHAgMSkKICAgICAgICAgICAgICAg ICAgICAgICAgKHBvaW50KSkpKQogICAgICAgICAgICAgICAoZW5kIChpZiAoY29uc3Agd2hlcmUp CiAgICAgICAgICAgICAgICAgICAgICAgIChjZHIgd2hlcmUpCiAgICAgICAgICAgICAgICAgICAg ICAobGluZS1lbmQtcG9zaXRpb24pKSkKICAgICAgICAgICAgICAgKGRpc3BsYXktc3RyaW5nIChm b3JtYXQgZm9ybWF0IHZhbHVlKSkKICAgICAgICAgICAgICAgKG8gbmlsKSkKICAgICAgICAgIChy ZW1vdmUtb3ZlcmxheXMgYmVnIGVuZCAnY2F0ZWdvcnkgdHlwZSkKICAgICAgICAgIChmdW5jYWxs IChpZiBlcm9zLW92ZXJsYXlzLXVzZS1mb250LWxvY2sKICAgICAgICAgICAgICAgICAgICAgICAj J2ZvbnQtbG9jay1wcmVwZW5kLXRleHQtcHJvcGVydHkKICAgICAgICAgICAgICAgICAgICAgIydw dXQtdGV4dC1wcm9wZXJ0eSkKICAgICAgICAgICAgICAgICAgIDAgKGxlbmd0aCBkaXNwbGF5LXN0 cmluZykKICAgICAgICAgICAgICAgICAgICdmYWNlIHByZXBlbmQtZmFjZQogICAgICAgICAgICAg ICAgICAgZGlzcGxheS1zdHJpbmcpCiAgICAgICAgICA7OyBJZiB0aGUgZGlzcGxheSBzcGFucyBt dWx0aXBsZSBsaW5lcyBvciBpcyB2ZXJ5IGxvbmcsIGRpc3BsYXkgaXQgYXQKICAgICAgICAgIDs7 IHRoZSBiZWdpbm5pbmcgb2YgdGhlIG5leHQgbGluZS4KICAgICAgICAgICh3aGVuIChvciAoc3Ry aW5nLW1hdGNoICJcbi4iIGRpc3BsYXktc3RyaW5nKQogICAgICAgICAgICAgICAgICAgICg+IChz dHJpbmctd2lkdGggZGlzcGxheS1zdHJpbmcpCiAgICAgICAgICAgICAgICAgICAgICAgKC0gKHdp bmRvdy13aWR0aCkgKGN1cnJlbnQtY29sdW1uKSkpKQogICAgICAgICAgICAoc2V0cSBkaXNwbGF5 LXN0cmluZyAoY29uY2F0ICIgXG4iIGRpc3BsYXktc3RyaW5nKSkpCiAgICAgICAgICA7OyBQdXQg dGhlIGN1cnNvciBwcm9wZXJ0eSBvbmx5IG9uY2Ugd2UncmUgZG9uZSBtYW5pcHVsYXRpbmcgdGhl CiAgICAgICAgICA7OyBzdHJpbmcsIHNpbmNlIHdlIHdhbnQgaXQgdG8gYmUgYXQgdGhlIGZpcnN0 IGNoYXIuCiAgICAgICAgICAocHV0LXRleHQtcHJvcGVydHkgMCAxICdjdXJzb3IgMCBkaXNwbGF5 LXN0cmluZykKICAgICAgICAgICh3aGVuICg+IChzdHJpbmctd2lkdGggZGlzcGxheS1zdHJpbmcp ICgqIDMgKHdpbmRvdy13aWR0aCkpKQogICAgICAgICAgICAoc2V0cSBkaXNwbGF5LXN0cmluZwog ICAgICAgICAgICAgICAgICAoY29uY2F0IChzdWJzdHJpbmcgZGlzcGxheS1zdHJpbmcgMCAoKiAz ICh3aW5kb3ctd2lkdGgpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAiLi4uXG5SZXN1bHQg dHJ1bmNhdGVkLiIpKSkKICAgICAgICAgIDs7IENyZWF0ZSB0aGUgcmVzdWx0IG92ZXJsYXkuCiAg ICAgICAgICAoc2V0cSBvIChhcHBseSAjJ2Vyb3MtLW1ha2Utb3ZlcmxheQogICAgICAgICAgICAg ICAgICAgICAgICAgYmVnIGVuZCB0eXBlCiAgICAgICAgICAgICAgICAgICAgICAgICAnYWZ0ZXIt c3RyaW5nIGRpc3BsYXktc3RyaW5nCiAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcykpCiAg ICAgICAgICAocGNhc2UgZHVyYXRpb24KICAgICAgICAgICAgKChwcmVkIG51bWJlcnApIChydW4t YXQtdGltZSBkdXJhdGlvbiBuaWwgIydlcm9zLS1kZWxldGUtb3ZlcmxheSBvKSkKICAgICAgICAg ICAgKGBjb21tYW5kIChpZiB0aGlzLWNvbW1hbmQKICAgICAgICAgICAgICAgICAgICAgICAgICAo YWRkLWhvb2sgJ3ByZS1jb21tYW5kLWhvb2sKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIydlcm9zLS1yZW1vdmUtcmVzdWx0LW92ZXJsYXkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbmlsICdsb2NhbCkKICAgICAgICAgICAgICAgICAgICAgICAgKGVyb3Mt LXJlbW92ZS1yZXN1bHQtb3ZlcmxheSkpKSkKICAgICAgICAgIChsZXQgKCh3aW4gKGdldC1idWZm ZXItd2luZG93IGJ1ZmZlcikpKQogICAgICAgICAgICA7OyBMZWZ0IGVkZ2UgaXMgdmlzaWJsZS4K ICAgICAgICAgICAgKHdoZW4gKGFuZCB3aW4KICAgICAgICAgICAgICAgICAgICAgICAoPD0gKHdp bmRvdy1zdGFydCB3aW4pIChwb2ludCkpCiAgICAgICAgICAgICAgICAgICAgICAgOzsgSW4gMjQu MyBgPD0nIGlzIHN0aWxsIGEgYmluYXJ5IHByZWRpY2F0ZS4KICAgICAgICAgICAgICAgICAgICAg ICAoPD0gKHBvaW50KSAod2luZG93LWVuZCB3aW4pKQogICAgICAgICAgICAgICAgICAgICAgIDs7 IFJpZ2h0IGVkZ2UgaXMgdmlzaWJsZS4gVGhpcyBpcyBhIGxpdHRsZSBjb25zZXJ2YXRpdmUKICAg ICAgICAgICAgICAgICAgICAgICA7OyBpZiB0aGUgb3ZlcmxheSBjb250YWlucyBsaW5lIGJyZWFr cy4KICAgICAgICAgICAgICAgICAgICAgICAob3IgKDwgKCsgKGN1cnJlbnQtY29sdW1uKSAoc3Ry aW5nLXdpZHRoIHZhbHVlKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdpbmRvdy13 aWR0aCB3aW4pKQogICAgICAgICAgICAgICAgICAgICAgICAgICAobm90IHRydW5jYXRlLWxpbmVz KSkpCiAgICAgICAgICAgICAgbykpKSkpKSkKCihkZWZ1biBlcm9zLS1yZW1vdmUtcmVzdWx0LW92 ZXJsYXkgKCkKICAiUmVtb3ZlIHJlc3VsdCBvdmVybGF5IGZyb20gY3VycmVudCBidWZmZXIuCgpU aGlzIGZ1bmN0aW9uIGFsc28gcmVtb3ZlcyBpdHNlbGYgZnJvbSBgcHJlLWNvbW1hbmQtaG9vaycu IgogIChyZW1vdmUtaG9vayAncHJlLWNvbW1hbmQtaG9vayAjJ2Vyb3MtLXJlbW92ZS1yZXN1bHQt b3ZlcmxheSAnbG9jYWwpCiAgKHJlbW92ZS1vdmVybGF5cyBuaWwgbmlsICdjYXRlZ29yeSAncmVz dWx0KSkKCihkZWZ1biBlcm9zLS1ldmFsLW92ZXJsYXkgKHZhbHVlIHBvaW50KQogICJNYWtlIG92 ZXJsYXkgZm9yIFZBTFVFIGF0IFBPSU5ULiIKICAoZXJvcy0tbWFrZS1yZXN1bHQtb3ZlcmxheSAo Zm9ybWF0ICIlUyIgdmFsdWUpCiAgICA6d2hlcmUgcG9pbnQKICAgIDpkdXJhdGlvbiBlcm9zLWV2 YWwtcmVzdWx0LWR1cmF0aW9uKQogIHZhbHVlKQoKDAo7OyBBUEkKCihkZWZ1biBlcm9zLWV2YWwt bGFzdC1zZXhwIChldmFsLWxhc3Qtc2V4cC1hcmctaW50ZXJuYWwpCiAgIldyYXBwZXIgZm9yIGBl dmFsLWxhc3Qtc2V4cCcgdGhhdCBvdmVybGF5cyByZXN1bHRzLiIKICAoaW50ZXJhY3RpdmUgIlAi KQogIChlcm9zLS1ldmFsLW92ZXJsYXkKICAgKGV2YWwtbGFzdC1zZXhwIGV2YWwtbGFzdC1zZXhw LWFyZy1pbnRlcm5hbCkKICAgKHBvaW50KSkpCgooZGVmdW4gZXJvcy1ldmFsLWRlZnVuIChlZGVi dWctaXQpCiAgIldyYXBwZXIgZm9yIGBldmFsLWRlZnVuJyB0aGF0IG92ZXJsYXlzIHJlc3VsdHMu IgogIChpbnRlcmFjdGl2ZSAiUCIpCiAgKGVyb3MtLWV2YWwtb3ZlcmxheQogICAoZXZhbC1kZWZ1 biBlZGVidWctaXQpCiAgIChzYXZlLWV4Y3Vyc2lvbgogICAgIChlbmQtb2YtZGVmdW4pCiAgICAg KHBvaW50KSkpKQoKDAo7OyBNaW5vciBtb2RlCgo7OzsjIyNhdXRvbG9hZAooZGVmaW5lLW1pbm9y LW1vZGUgZXJvcy1tb2RlCiAgIkRpc3BsYXkgRW1hY3MgTGlzcCBldmFsdWF0aW9uIHJlc3VsdHMg b3ZlcmxheXMuIgogIDpnbG9iYWwgdAogIChpZiBlcm9zLW1vZGUKICAgICAgKHByb2duCiAgICAg ICAgKGdsb2JhbC1zZXQta2V5IFtyZW1hcCBldmFsLWxhc3Qtc2V4cF0gIydlcm9zLWV2YWwtbGFz dC1zZXhwKQogICAgICAgIChnbG9iYWwtc2V0LWtleSBbcmVtYXAgZXZhbC1kZWZ1bl0gIydlcm9z LWV2YWwtZGVmdW4pKQogICAgKGdsb2JhbC1zZXQta2V5IFtyZW1hcCBldmFsLWxhc3Qtc2V4cF0g bmlsKQogICAgKGdsb2JhbC1zZXQta2V5IFtyZW1hcCBldmFsLWRlZnVuXSBuaWwpKSkKCgwKOzsg KHByb3ZpZGUgJ2Vyb3MpCjs7Ozs7IGVyb3MuZWwgZW5kcyBoZXJlCgo7Ozs7IEVuYWJsZSBlcm9z Cjs7IEl0IHdyaXRlcyBhbiBvdmVybGF5IHdpdGggdGhlIHJlc3VsdCBvZiBhbiBldmFsdWF0aW9u IG9uIGV2YWwtbGFzdC1zZXhwLgo7OyBUaGUgb3ZlcmxheSBpcyAoY29uY2F0ICI9PiAiIHJlc3Vs dCkgYmFzaWNhbGx5Cihlcm9zLW1vZGUgMSkKCihkZWZ2YXIgb3RoZXItY29tcG9zaXRpb24tbGln YXR1cmUtdGFibGUgKG1ha2UtY2hhci10YWJsZSBuaWwpKQooZGVmdmFyIGxpZ2F0dXJlLWZvbnQt d2l0aC1iaWctYXJyb3cgIkZpcmEgQ29kZSAxMSIKICAiQSB2YWxpZCBmb250IG5hbWUgZm9yIGBz ZXQtZnJhbWUtZm9udCcuIFNpbmNlIHRoaXMgZXhhbXBsZSB1c2VzIGVyb3MuZWwKQSBmb250IHdp dGggYSA9PiBsaWdhdHVyZSBpcyBuZWNlc3NhcnkgdG8gdHJpZ2dlciB0aGUgYnVnLiIpCihyZXF1 aXJlICdjb21wb3NpdGUpCgoobGV0ICgoYWxpc3QKICAgICAgICcoCiAgICAgICAgICg/PSAuICI9 PiIpIDsgTWF0Y2hlcyA9PgogICAgICAgICApKSkKICAoZG9saXN0IChjaGFyLXJlZ2V4cCBhbGlz dCkKICAgIChzZXQtY2hhci10YWJsZS1yYW5nZSBvdGhlci1jb21wb3NpdGlvbi1saWdhdHVyZS10 YWJsZSAoY2FyIGNoYXItcmVnZXhwKQogICAgICAgICAgICAgICAgICAgICAgICAgIGAoWywoY2Ry IGNoYXItcmVnZXhwKSAwIGZvbnQtc2hhcGUtZ3N0cmluZ10pKSkpCgooc2V0LWNoYXItdGFibGUt cGFyZW50IG90aGVyLWNvbXBvc2l0aW9uLWxpZ2F0dXJlLXRhYmxlIGNvbXBvc2l0aW9uLWZ1bmN0 aW9uLXRhYmxlKQoKKHNldHEtbG9jYWwgY29tcG9zaXRpb24tZnVuY3Rpb24tdGFibGUgb3RoZXIt Y29tcG9zaXRpb24tbGlnYXR1cmUtdGFibGUpCgoKOzs7OyBTZXR0aW5nIHRoZSBmb250Cgo7OyA9 Pgo7OyBBdCB0aGlzIGxpbmUKKHNldC1mcmFtZS1mb250IGxpZ2F0dXJlLWZvbnQtd2l0aC1iaWct YXJyb3cgbmlsIHQpCjs7IE5vdyB5b3Ugc2hvdWxkIHNlZSBsaWdhdHVyZXMgZm9yID0+Cjs7ID0+ Cgo7Ozs7IEVuYWJsaW5nIHRoZSBidWcKCjs7IEMteCBDLWUgYXQgdGhlIGVuZCBvZiB0aGlzIHNl eHAgd2lsbCB0cmlnZ2VyIGluZmluaXRlIGNvbXBvc2l0aW9uCigrIDIgMykKCihwcm92aWRlICds aWdhdHVyZS1idWcpCjs7OyBsaWdhdHVyZS1idWcuZWwgZW5kcyBoZXJlCg== --0000000000005a4c4a05a34f6b13--