From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Noam Postavsky Newsgroups: gmane.emacs.bugs Subject: bug#21824: 25.0.50; overlay modification-hooks called with wrong buffer Date: Tue, 3 Nov 2015 22:06:20 -0500 Message-ID: NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=001a11405fc074a97f0523ae4ba0 X-Trace: ger.gmane.org 1446606441 30440 80.91.229.3 (4 Nov 2015 03:07:21 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 4 Nov 2015 03:07:21 +0000 (UTC) To: 21824@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Wed Nov 04 04:07:12 2015 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1ZtoPn-0003CG-DH for geb-bug-gnu-emacs@m.gmane.org; Wed, 04 Nov 2015 04:07:11 +0100 Original-Received: from localhost ([::1]:52167 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZtoPm-0001Cn-I4 for geb-bug-gnu-emacs@m.gmane.org; Tue, 03 Nov 2015 22:07:10 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:50920) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZtoPh-0001CT-2l for bug-gnu-emacs@gnu.org; Tue, 03 Nov 2015 22:07:06 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZtoPf-0002K5-Ah for bug-gnu-emacs@gnu.org; Tue, 03 Nov 2015 22:07:05 -0500 Original-Received: from debbugs.gnu.org ([208.118.235.43]:33103) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZtoPf-0002K0-6v for bug-gnu-emacs@gnu.org; Tue, 03 Nov 2015 22:07:03 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1ZtoPe-0005NV-P6 for bug-gnu-emacs@gnu.org; Tue, 03 Nov 2015 22:07:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Noam Postavsky Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 04 Nov 2015 03:07:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 21824 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.144660639120627 (code B ref -1); Wed, 04 Nov 2015 03:07:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 4 Nov 2015 03:06:31 +0000 Original-Received: from localhost ([127.0.0.1]:52044 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZtoP8-0005Mc-J9 for submit@debbugs.gnu.org; Tue, 03 Nov 2015 22:06:31 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:40867) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZtoP6-0005MS-AO for submit@debbugs.gnu.org; Tue, 03 Nov 2015 22:06:29 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZtoP3-0002Ii-T9 for submit@debbugs.gnu.org; Tue, 03 Nov 2015 22:06:27 -0500 Original-Received: from lists.gnu.org ([2001:4830:134:3::11]:59584) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZtoP3-0002Ie-PD for submit@debbugs.gnu.org; Tue, 03 Nov 2015 22:06:25 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:50861) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZtoP1-00015f-Tb for bug-gnu-emacs@gnu.org; Tue, 03 Nov 2015 22:06:25 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZtoOz-0002HD-W1 for bug-gnu-emacs@gnu.org; Tue, 03 Nov 2015 22:06:23 -0500 Original-Received: from mail-io0-x233.google.com ([2607:f8b0:4001:c06::233]:34567) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZtoOz-0002H9-PX for bug-gnu-emacs@gnu.org; Tue, 03 Nov 2015 22:06:21 -0500 Original-Received: by iody8 with SMTP id y8so40462186iod.1 for ; Tue, 03 Nov 2015 19:06:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:date:message-id:subject:from:to:content-type; bh=Tbgf+wCcNqs+lw5xSe4Q5aamhnpfAxEDgzNaYn1PFUE=; b=o+eImzFPUdEXZa5Arga25JkQH+1glGuiDyDUMSQpBrEFIOgNAV5CSzlBNqQ8y5AdKu foFgX7OrbmaW9XbW2RH68zx6dZ7YfV1/KDgfPNGRsVtNWWv+acdPEmjHNaDiunLTCeTp pfu4DW/XX3P8O9Y72zs/rBSEHGT3VT37I8hpvfTbB2qMwCq43FHfWhXc2zdBLTv0fVfn d4P4xhel8D1td6gBCOGMl0jo11a0I+lOC0LD/LpNkGcBzKVp+Q1I19NnkTBxHY1nB7Fk IwwxmrP9+pfxy31Ha5BBARr4DbU0jxhH+Q2G8AhSsn3Ksy1jFRnFowg2pWWlwTo8W9dY IfYg== X-Received: by 10.107.35.16 with SMTP id j16mr564034ioj.120.1446606380760; Tue, 03 Nov 2015 19:06:20 -0800 (PST) Original-Received: by 10.79.119.2 with HTTP; Tue, 3 Nov 2015 19:06:20 -0800 (PST) X-Google-Sender-Auth: uf4ZkYIVJoyTR3YKfhQ9QXWuNoc X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 208.118.235.43 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.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:108406 Archived-At: --001a11405fc074a97f0523ae4ba0 Content-Type: text/plain; charset=UTF-8 The circumstances that trigger this seem to be a combination of overlays and timers. Attached is an init.el file that installs several packages needed to trigger the problem. I have not yet managed to find a simpler way of reproducing this. After installing the packages, and running M-x irony-install-server (requires libclang), the problem can be triggered by a C++ mode buffer with the following contents: void func(int x); int main() { fun| } where | represents the cursor. Press TAB y C-f C-b C-f C-b, this results in a (wrong-type-argument overlayp nil) which is due to yas--on-field-overlay-modification being called with *Messages* as the current buffer, rather than the C++ buffer where the yasnippet's overlay is in. The begin and end positions passed correspond to *Messages* buffer positions (i.e. they are too big to be from the C++ buffer). According to the lisp backtrace (see below), it seems to be triggered by a call to `message' via a timer. Original report is at https://github.com/capitaomorte/yasnippet/issues/607 Debugger entered--Lisp error: (wrong-type-argument overlayp nil) overlay-get(nil yas--snippet) (let* ((inhibit-modification-hooks t) (field (overlay-get overlay (quote yas--field))) (snippet (overlay-get yas--active-field-overlay (quote yas--snippet)))) (cond (after\? (yas--advance-end-maybe field (overlay-end overlay)) (save-excursion (yas--field-update-display field)) (yas--update-mirrors snippet)) (field (if (and (not after\?) (not (progn nil (or ... ...) (aref field 7))) (eq (point) (if (markerp ...) (marker-position ...) (progn nil ... ...)))) (progn (yas--skip-and-clear field))) (progn nil (or (progn nil (and (vectorp field) (>= ... 9) (memq ... cl-struct-yas--field-tags) t)) (signal (quote wrong-type-argument) (list (quote yas--field) field))) (let* ((v field)) (aset v 7 t)))))) (if (or yas--inhibit-overlay-hooks (yas--undo-in-progress)) nil (message "yas--on-field-ov-mod(%S %S %S %S %S): buffer = %s" overlay after\? _beg _end _length (current-buffer)) (let* ((inhibit-modification-hooks t) (field (overlay-get overlay (quote yas--field))) (snippet (overlay-get yas--active-field-overlay (quote yas--snippet)))) (cond (after\? (yas--advance-end-maybe field (overlay-end overlay)) (save-excursion (yas--field-update-display field)) (yas--update-mirrors snippet)) (field (if (and (not after\?) (not (progn nil ... ...)) (eq (point) (if ... ... ...))) (progn (yas--skip-and-clear field))) (progn nil (or (progn nil (and ... ... ... t)) (signal (quote wrong-type-argument) (list ... field))) (let* ((v field)) (aset v 7 t))))))) yas--on-field-overlay-modification(# t 3008 3008 33) message("%s" "use of undeclared identifier 'y'") display-message-or-buffer("use of undeclared identifier 'y'" "*Flycheck error messages*") (let ((messages (mapcar (function flycheck-error-format-message-and-id) errors))) (display-message-or-buffer (string-join messages "\n\n") flycheck-error-message-buffer)) (progn (let ((messages (mapcar (function flycheck-error-format-message-and-id) errors))) (display-message-or-buffer (string-join messages "\n\n") flycheck-error-message-buffer))) (if (and errors (flycheck-may-use-echo-area-p)) (progn (let ((messages (mapcar (function flycheck-error-format-message-and-id) errors))) (display-message-or-buffer (string-join messages "\n\n") flycheck-error-message-buffer)))) flycheck-display-error-messages(([cl-struct-flycheck-error # irony "/tmp/el-get-test-home/foo.cpp" 5 8 "use of undeclared identifier 'y'" error nil])) funcall(flycheck-display-error-messages ([cl-struct-flycheck-error # irony "/tmp/el-get-test-home/foo.cpp" 5 8 "use of undeclared identifier 'y'" error nil])) (progn (funcall flycheck-display-errors-function errors)) (if flycheck-display-errors-function (progn (funcall flycheck-display-errors-function errors))) flycheck-display-errors(([cl-struct-flycheck-error # irony "/tmp/el-get-test-home/foo.cpp" 5 8 "use of undeclared identifier 'y'" error nil])) (progn (flycheck-display-errors errors)) (if errors (progn (flycheck-display-errors errors))) (let ((errors (flycheck-overlay-errors-at (point)))) (if errors (progn (flycheck-display-errors errors)))) (progn (let ((errors (flycheck-overlay-errors-at (point)))) (if errors (progn (flycheck-display-errors errors))))) (if flycheck-mode (progn (let ((errors (flycheck-overlay-errors-at (point)))) (if errors (progn (flycheck-display-errors errors)))))) (progn (flycheck-cancel-error-display-error-at-point-timer) (if flycheck-mode (progn (let ((errors (flycheck-overlay-errors-at (point)))) (if errors (progn (flycheck-display-errors errors))))))) (condition-case err (progn (flycheck-cancel-error-display-error-at-point-timer) (if flycheck-mode (progn (let ((errors (flycheck-overlay-errors-at ...))) (if errors (progn (flycheck-display-errors errors))))))) ((debug error) (message "Flycheck error display error: %s" err) nil)) flycheck-display-error-at-point() apply(flycheck-display-error-at-point nil) timer-event-handler([t 22073 29035 116958 nil flycheck-display-error-at-point nil nil 308000]) In GNU Emacs 25.0.50.1 (x86_64-unknown-linux-gnu, X toolkit) of 2015-11-03 Repository revision: 2390d890765983ed1e5ece1711c470351705e7c8 Windowing system distributor 'The X.Org Foundation', version 11.0.11702000 Configured using: 'configure --cache-file=../config.cache 'CFLAGS=-O2 -march=native' --with-crt-dir=/usr/lib/x86_64-linux-gnu --with-x-toolkit=lucid --without-toolkit-scroll-bars --with-gif=no' Configured features: XPM JPEG TIFF PNG SOUND DBUS NOTIFY GNUTLS LIBXML2 ZLIB LUCID X11 Important settings: value of $LANG: en_CA.UTF-8 locale-coding-system: utf-8-unix Major mode: Debugger Minor modes in effect: global-flycheck-mode: t yas-global-mode: t yas-minor-mode: t global-company-mode: t company-mode: t global-highlight-parentheses-mode: t highlight-parentheses-mode: t tooltip-mode: t global-eldoc-mode: t electric-indent-mode: t mouse-wheel-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t buffer-read-only: t line-number-mode: t transient-mark-mode: t Recent messages: [yas] Loading snippet files from /tmp/el-get-test-home/.emacs.d/elpa/yasnippet-20151101.1535/snippets/c++-mode [yas] Loading for `cc-mode', just-in-time: (lambda nil (yas--load-directory-1 (quote /tmp/el-get-test-home/.emacs.d/elpa/yasnippet-20151101.1535/snippets/cc-mode) (quote cc-mode)))! [yas] Loading snippet files from /tmp/el-get-test-home/.emacs.d/elpa/yasnippet-20151101.1535/snippets/cc-mode Debug on Error enabled globally [yas] snippet expanded. yas--on-field-ov-mod(# nil 41 41 nil): buffer = foo.cpp yas--on-field-ov-mod(# t 41 42 0): buffer = foo.cpp use of undeclared identifier 'y' yas--on-field-ov-mod(# t 3008 3008 33): buffer = *Messages* Entering debugger... Load-path shadows: None found. Features: (shadow sort gnus-util mail-extr emacsbug message dired format-spec rfc822 mml mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util help-fns mail-prsvr mail-utils debug cus-start cus-load thingatpt lisp-mnt irony-cdb-libclang irony-cdb-json pp json irony-cdb-clang-complete irony-cdb cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs company-files company-oddmuse company-keywords company-etags etags xref project eieio byte-opt bytecomp byte-compile cconv eieio-core company-gtags company-dabbrev-code company-dabbrev company-capf company-cmake company-xcode company-clang company-semantic company-eclim company-template company-css company-nxml company-bbdb company-irony irony-completion irony-snippet flycheck-irony irony-diagnostics irony flycheck find-func rx subr-x dash jka-compr compile comint ansi-color ring let-alist yasnippet cl-extra derived help-mode company edmacro kmacro highlight-parentheses cl-macs easy-mmode cl gv cl-seq finder-inf info cl-loaddefs pcase cl-lib package easymenu epg-config time-date mule-util tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment elisp-mode lisp-mode prog-mode register page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese charscript case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer cl-preloaded nadvice loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote dbusbind inotify dynamic-setting x-toolkit x multi-tty make-network-process emacs) Memory information: ((conses 16 300138 13183) (symbols 48 31710 0) (miscs 40 474 275) (strings 32 53496 8101) (string-bytes 1 1682695) (vectors 16 23094) (vector-slots 8 660438 6306) (floats 8 740 352) (intervals 56 288 0) (buffers 976 16) (heap 1024 31399 1018)) --001a11405fc074a97f0523ae4ba0 Content-Type: application/octet-stream; name="init.el" Content-Disposition: attachment; filename="init.el" Content-Transfer-Encoding: base64 X-Attachment-Id: f_igk7ze9q0 Ozs7IGVtYWNzIC0tLSBFbWFjcyBjb25maWd1cmF0aW9uIC0qLSBtb2RlOiBlbWFjcy1saXNwIC0q LQoKOzsgQXV0aG9yOiBZdXRpYW4gTGkgPGhvdHB4bGVzc0BnbWFpbC5jb20+Cgo7OzsgQ29tbWVu dGFyeToKCjs7OyBDb2RlOgoKOzsgIyBQYWNrYWdlcwoocmVxdWlyZSAncGFja2FnZSkKKHJlcXVp cmUgJ2NsLWxpYikKOzsgKGFkZC10by1saXN0ICdwYWNrYWdlLWFyY2hpdmVzCjs7ICAgICAgICAg ICAgICAnKCJlbHB5IiAuICJodHRwczovL2pvcmdlbnNjaGFlZmVyLmdpdGh1Yi5pby9wYWNrYWdl cy8iKSkKKGFkZC10by1saXN0ICdwYWNrYWdlLWFyY2hpdmVzCiAgICAgICAgICAgICAnKCJtZWxw YSIgLiAiaHR0cDovL21lbHBhLm9yZy9wYWNrYWdlcy8iKSB0KQoocGFja2FnZS1pbml0aWFsaXpl KQooZGVmdmFyIHJlcXVpcmVkLXBhY2thZ2VzCiAgJyhoaWdobGlnaHQtcGFyZW50aGVzZXMKICAg IDs7ZGlmZi1obAogICAgY29tcGFueQogICAgZmx5Y2hlY2sKICAgIHlhc25pcHBldAogICAgaXJv bnkKICAgIGNvbXBhbnktaXJvbnkKICAgIGZseWNoZWNrLWlyb255CiAgICApCiAgIlJlcXVpcmVk IHBhY2thZ2VzLiIpCgooZGVmdW4gaW5zdGFsbC1yZXF1aXJlZC1wYWNrYWdlcyAoKQogICJJbnN0 YWxsIHJlcXVpcmVkIHBhY2thZ2VzIGlmIG5lZWRlZC4iCiAgKGludGVyYWN0aXZlKQogIChwYWNr YWdlLXJlZnJlc2gtY29udGVudHMpCiAgKG1hcGMgKGxhbWJkYSAocCkKICAgICAgICAgICh1bmxl c3MgKHBhY2thZ2UtaW5zdGFsbGVkLXAgcCkKICAgICAgICAgICAgKHBhY2thZ2UtaW5zdGFsbCBw KSkpCiAgICAgICAgcmVxdWlyZWQtcGFja2FnZXMpKQoKKHdoZW4gKGNsLWZpbmQtaWYtbm90ICdw YWNrYWdlLWluc3RhbGxlZC1wIHJlcXVpcmVkLXBhY2thZ2VzKQogIChpbnN0YWxsLXJlcXVpcmVk LXBhY2thZ2VzKSkKCihkZWZtYWNybyBhZnRlciAobW9kZSAmcmVzdCBib2R5KQogICJgZXZhbC1h ZnRlci1sb2FkYCBNT0RFIGV2YWx1YXRlIEJPRFkuIgogIChkZWNsYXJlIChpbmRlbnQgZGVmdW4p KQogIGAoZXZhbC1hZnRlci1sb2FkICxtb2RlCiAgICAgJyhwcm9nbiAsQGJvZHkpKSkKCjs7ICMg U2hvdyBhbmQgaGlnaGxpZ2h0IHBhcmVudGhlc2VzCjs7IChyZXF1aXJlICdwYXJlbikKOzsgKHNl dHEgc2hvdy1wYXJlbi1kZWxheSAwKQo7OyAoc2V0LWZhY2UtYXR0cmlidXRlICdzaG93LXBhcmVu LW1hdGNoIG5pbAo7OyAgICAgICAgICAgICAgICAgICAgIDpmb3JlZ3JvdW5kIChmYWNlLWJhY2tn cm91bmQgJ2RlZmF1bHQpCjs7ICAgICAgICAgICAgICAgICAgICAgOmJhY2tncm91bmQgImRpbSBn cmF5IikKOzsgKHNob3ctcGFyZW4tbW9kZSAxKQoocmVxdWlyZSAnaGlnaGxpZ2h0LXBhcmVudGhl c2VzKQooZ2xvYmFsLWhpZ2hsaWdodC1wYXJlbnRoZXNlcy1tb2RlIHQpCihzZXRxIGhsLXBhcmVu LWRlbGF5IDAuMDAxKQoKOzsgOzsgIyBMaW51bQo7OyAoZ2xvYmFsLWxpbnVtLW1vZGUgMSkKCjs7 IDs7ICMgSGlnaGxpZ2h0IGRpZmYKOzsgKGdsb2JhbC1kaWZmLWhsLW1vZGUpCgo7OyA7OyAjIENv bXBhbnkgbW9kZQoocmVxdWlyZSAnY29tcGFueSkKKGFkZC1ob29rICdhZnRlci1pbml0LWhvb2sg J2dsb2JhbC1jb21wYW55LW1vZGUpCihzZXRxIGNvbXBhbnktaWRsZS1kZWxheSAwKQooZ2xvYmFs LXNldC1rZXkgKGtiZCAiPFMtdGFiPiIpICdjb21wYW55LWNvbXBsZXRlLWNvbW1vbikKKGdsb2Jh bC1zZXQta2V5IChrYmQgIjxiYWNrdGFiPiIpICdjb21wYW55LWNvbXBsZXRlLWNvbW1vbikKCjs7 ICMgWUFTbmlwcGV0CihyZXF1aXJlICd5YXNuaXBwZXQpCihkZWZpbmUta2V5IHlhcy1taW5vci1t b2RlLW1hcCAoa2JkIjx0YWI+IikgbmlsKQooZGVmaW5lLWtleSB5YXMtbWlub3ItbW9kZS1tYXAg KGtiZCAiVEFCIikgbmlsKQooZ2xvYmFsLXNldC1rZXkgKGtiZCAiQy1jIHkiKSAnaGVsbS15YXMt Y29tcGxldGUpCih5YXMtZ2xvYmFsLW1vZGUgMSkKCjs7ICMgRmx5Y2hlY2sKKHJlcXVpcmUgJ2Zs eWNoZWNrKQooYWRkLWhvb2sgJ2FmdGVyLWluaXQtaG9vayAjJ2dsb2JhbC1mbHljaGVjay1tb2Rl KQooc2V0cSBmbHljaGVjay1kaXNwbGF5LWVycm9ycy1kZWxheSAwLjAwMSkKCjs7ICMgSXJvbnkg bW9kZQoocmVxdWlyZSAnaXJvbnkpCihhZGQtaG9vayAnYysrLW1vZGUtaG9vayAnaXJvbnktbW9k ZSkKKGFkZC1ob29rICdjLW1vZGUtaG9vayAnaXJvbnktbW9kZSkKKGFkZC1ob29rICdvYmpjLW1v ZGUtaG9vayAnaXJvbnktbW9kZSkKKGRlZnVuIG15LWlyb255LW1vZGUtaG9vayAoKQogICJJcm9u eSBtb2RlIGhvb2suIgogIChkZWZpbmUta2V5IGlyb255LW1vZGUtbWFwIFtyZW1hcCBjb21wbGV0 aW9uLWF0LXBvaW50XQogICAgJ2lyb255LWNvbXBsZXRpb24tYXQtcG9pbnQtYXN5bmMpCiAgKGRl ZmluZS1rZXkgaXJvbnktbW9kZS1tYXAgW3JlbWFwIGNvbXBsZXRlLXN5bWJvbF0KICAgICdpcm9u eS1jb21wbGV0aW9uLWF0LXBvaW50LWFzeW5jKSkKKGFkZC1ob29rICdpcm9ueS1tb2RlLWhvb2sg J215LWlyb255LW1vZGUtaG9vaykKKGFkZC1ob29rICdpcm9ueS1tb2RlLWhvb2sgJ2lyb255LWNk Yi1hdXRvc2V0dXAtY29tcGlsZS1vcHRpb25zKQooYWRkLWhvb2sgJ2lyb255LW1vZGUtaG9vayAn Y29tcGFueS1pcm9ueS1zZXR1cC1iZWdpbi1jb21tYW5kcykKKGFmdGVyICdmbHljaGVjawogIChh ZGQtaG9vayAnZmx5Y2hlY2stbW9kZS1ob29rICMnZmx5Y2hlY2staXJvbnktc2V0dXApKQooZGVm dmFyIGZseWNoZWNrLWlyb255LWVycm9yLWZpbHRlcikKKHNldHEKIGZseWNoZWNrLWlyb255LWVy cm9yLWZpbHRlcgogKGxhbWJkYSAoZXJyb3JzKQogICAoY2wtcmVtb3ZlLWlmCiAgICAobGFtYmRh IChpKQogICAgICAoc3RyaW5nPSAoZmx5Y2hlY2stZXJyb3ItbWVzc2FnZSBpKSAiI3ByYWdtYSBv bmNlIGluIG1haW4gZmlsZSIpKQogICAgZXJyb3JzKSkpCihyZXF1aXJlICdmbHljaGVjay1pcm9u eSkKCihhZnRlciAnY29tcGFueQogIChhZGQtdG8tbGlzdAogICAnY29tcGFueS1iYWNrZW5kcyAn Y29tcGFueS1pcm9ueSkpCg== --001a11405fc074a97f0523ae4ba0--