From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Paul Eggert Newsgroups: gmane.emacs.bugs Subject: bug#13807: The lock for 'DIR/FILE' should always be 'DIR/.#FILE'. Date: Sun, 24 Feb 2013 14:48:53 -0800 Organization: UCLA Computer Science Department Message-ID: <512A98D5.7080000@cs.ucla.edu> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------010104000004070201020609" X-Trace: ger.gmane.org 1361746182 14618 80.91.229.3 (24 Feb 2013 22:49:42 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 24 Feb 2013 22:49:42 +0000 (UTC) To: 13807@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sun Feb 24 23:50:05 2013 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 1U9kOQ-0002Ca-2F for geb-bug-gnu-emacs@m.gmane.org; Sun, 24 Feb 2013 23:50:02 +0100 Original-Received: from localhost ([::1]:38007 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1U9kO5-0003Vc-DW for geb-bug-gnu-emacs@m.gmane.org; Sun, 24 Feb 2013 17:49:41 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:42425) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1U9kO0-0003T3-Ul for bug-gnu-emacs@gnu.org; Sun, 24 Feb 2013 17:49:39 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1U9kNy-0001gO-EN for bug-gnu-emacs@gnu.org; Sun, 24 Feb 2013 17:49:36 -0500 Original-Received: from [140.186.70.43] (port=42803 helo=debbugs.gnu.org) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1U9kNy-0001eT-B5 for bug-gnu-emacs@gnu.org; Sun, 24 Feb 2013 17:49:34 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.72) (envelope-from ) id 1U9kPN-00013r-QR for bug-gnu-emacs@gnu.org; Sun, 24 Feb 2013 17:51:01 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Paul Eggert Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 24 Feb 2013 22:51:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 13807 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.13617462574067 (code B ref -1); Sun, 24 Feb 2013 22:51:01 +0000 Original-Received: (at submit) by debbugs.gnu.org; 24 Feb 2013 22:50:57 +0000 Original-Received: from localhost ([127.0.0.1]:48267 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1U9kPI-00013W-Fr for submit@debbugs.gnu.org; Sun, 24 Feb 2013 17:50:57 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:59162) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1U9kPE-00013I-Fj for submit@debbugs.gnu.org; Sun, 24 Feb 2013 17:50:54 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1U9kNe-0001bg-UD for submit@debbugs.gnu.org; Sun, 24 Feb 2013 17:49:16 -0500 Original-Received: from lists.gnu.org ([208.118.235.17]:47570) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1U9kNe-0001bc-PR for submit@debbugs.gnu.org; Sun, 24 Feb 2013 17:49:14 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:42256) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1U9kNb-0003RO-95 for bug-gnu-emacs@gnu.org; Sun, 24 Feb 2013 17:49:14 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1U9kNY-0001YR-Nw for bug-gnu-emacs@gnu.org; Sun, 24 Feb 2013 17:49:10 -0500 Original-Received: from smtp.cs.ucla.edu ([131.179.128.62]:47441) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1U9kNY-0001XM-DB for bug-gnu-emacs@gnu.org; Sun, 24 Feb 2013 17:49:08 -0500 Original-Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id ABBA439E810A for ; Sun, 24 Feb 2013 14:49:00 -0800 (PST) X-Virus-Scanned: amavisd-new at smtp.cs.ucla.edu Original-Received: from smtp.cs.ucla.edu ([127.0.0.1]) by localhost (smtp.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 0KnsL1teKzwN for ; Sun, 24 Feb 2013 14:48:58 -0800 (PST) Original-Received: from [192.168.1.9] (pool-71-189-154-249.lsanca.fios.verizon.net [71.189.154.249]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id 7089739E8008 for ; Sun, 24 Feb 2013 14:48:58 -0800 (PST) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130106 Thunderbird/17.0.2 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 140.186.70.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:71758 Archived-At: This is a multi-part message in MIME format. --------------010104000004070201020609 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Tags: patch Attached is a proposed cleanup patch, following up on the thread in . --------------010104000004070201020609 Content-Type: text/plain; charset=UTF-8; name="filelock.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="filelock.txt" PT09IG1vZGlmaWVkIGZpbGUgJ2V0Yy9DaGFuZ2VMb2cnCi0tLSBldGMvQ2hhbmdlTG9nCTIw MTMtMDItMTkgMTQ6NDQ6MDMgKzAwMDAKKysrIGV0Yy9DaGFuZ2VMb2cJMjAxMy0wMi0yNCAy Mjo0NDowNCArMDAwMApAQCAtMSwzICsxLDcgQEAKKzIwMTMtMDItMjQgIFBhdWwgRWdnZXJ0 ICA8ZWdnZXJ0QGNzLnVjbGEuZWR1PgorCisJKiBORVdTOiBUaGUgbG9jayBmb3IgJ0RJUi9G SUxFJyBpcyBub3cgYWx3YXlzICdESVIvLiNGSUxFJy4KKwogMjAxMy0wMi0xNCAgTWljaGFl bCBBbGJpbnVzICA8bWljaGFlbC5hbGJpbnVzQGdteC5kZT4KIAogCSogTkVXUzogVHJhbXAg bWV0aG9kcyAic2NwYyIgYW5kICJyc3luY2MiIGFyZSBkaXNjb250aW51ZWQuCgo9PT0gbW9k aWZpZWQgZmlsZSAnZXRjL05FV1MnCi0tLSBldGMvTkVXUwkyMDEzLTAyLTIxIDA2OjU1OjE5 ICswMDAwCisrKyBldGMvTkVXUwkyMDEzLTAyLTI0IDIyOjQ0OjA0ICswMDAwCkBAIC0zMTYs NiArMzE2LDE5IEBACiAqKiBUaGUgYGRlZmFsaWFzLWZzZXQtZnVuY3Rpb24nIHByb3BlcnR5 IGxldHMgeW91IGNhdGNoIGNhbGxzIHRvIGRlZmFsaWFzCiBhbmQgcmVkaXJlY3QgdGhlbSB0 byB5b3VyIG93biBmdW5jdGlvbiBpbnN0ZWFkIG9mIGBmc2V0Jy4KIAorKiogVGhlIGxvY2sg Zm9yICdESVIvRklMRScgaXMgbm93IGFsd2F5cyAnRElSLy4jRklMRScuCitXaGVuIHlvdSBl ZGl0IERJUi9GSUxFLCBFbWFjcyBub3JtYWxseSBjcmVhdGVzIGEgc3ltYm9saWMgbGluawor RElSLy4jRklMRSBhcyBhIGxvY2sgdGhhdCB3YXJucyBvdGhlciBpbnN0YW5jZXMgb2YgRW1h Y3MgdGhhdCBESVIvRklMRQoraXMgYmVpbmcgZWRpdGVkLiAgRm9ybWVybHksIGlmIHRoZXJl IHdhcyBhbHJlYWR5IGEgbm9uLXN5bWxpbmsgZmlsZQorbmFtZWQgRElSLy4jRklMRSwgRW1h Y3MgZmVsbCBiYWNrIG9uIHRoZSBsb2NrIG5hbWVzIERJUi8uI0ZJTEUuMAordGhyb3VnaCBE SVIvLiNGSUxFLjkuICBUaGlzIGFwcHJvYWNoIGhhZCByYWNlIGNvbmRpdGlvbnMgdGhhdCBj b3VsZAorbm90IGJlIGVhc2lseSBmaXhlZC4gIEZpbGUgbmFtZXMgYmVnaW5uaW5nIHdpdGgg Jy4jJyBhcmUgdW51c3VhbAorZW5vdWdoIHRoYXQgdGhlIGZhbGxiYWNrcyB3ZXJlIG1vcmUg dHJvdWJsZSB0aGFuIHRoZXkgd2VyZSB3b3J0aCwgc28KK2lmIERJUi8uI0ZJTEUgaXMgYSBu b24tc3ltbGluayBmaWxlLCBFbWFjcyBub3cgZG9lcyBub3QgY3JlYXRlIGEgbG9jaworZmls ZSBmb3IgRElSL0ZJTEU7IHRoYXQgaXMsIERJUi9GSUxFIGlzIG5vIGxvbmdlciBwYXJ0bHkg cHJvdGVjdGVkIGJ5CithIGxvY2sgaWYgRElSLy4jRklMRSBpcyBhIG5vbi1zeW1saW5rIGZp bGUgKCJwYXJ0bHkiIGJlY2F1c2UgdGhlCitsb2NraW5nIG1lY2hhbmlzbSB3YXMgbmV2ZXIg cmVsaWFibGUgaW4gdGhhdCBjYXNlKS4KKwogKiogVGhlIDl0aCBlbGVtZW50IHJldHVybmVk IGJ5IGBmaWxlLWF0dHJpYnV0ZXMnIGlzIG5vdyB1bnNwZWNpZmllZC4KIEZvcm1lcmx5LCBp dCB3YXMgdCBpZiB0aGUgZmlsZSdzIGdpZCB3b3VsZCBjaGFuZ2UgaWYgZmlsZSB3ZXJlIGRl bGV0ZWQKIGFuZCByZWNyZWF0ZWQuICBUaGlzIHZhbHVlIGhhcyBiZWVuIGluYWNjdXJhdGUg Zm9yIHllYXJzIG9uIG1hbnkKCj09PSBtb2RpZmllZCBmaWxlICdzcmMvQ2hhbmdlTG9nJwot LS0gc3JjL0NoYW5nZUxvZwkyMDEzLTAyLTI0IDE5OjQ1OjE3ICswMDAwCisrKyBzcmMvQ2hh bmdlTG9nCTIwMTMtMDItMjQgMjI6NDQ6MDQgKzAwMDAKQEAgLTEsMyArMSwxNiBAQAorMjAx My0wMi0yNCAgUGF1bCBFZ2dlcnQgIDxlZ2dlcnRAY3MudWNsYS5lZHU+CisKKwlUaGUgbG9j ayBmb3IgJ0RJUi9GSUxFJyBpcyBub3cgYWx3YXlzICdESVIvLiNGSUxFJy4KKwkqIGZpbGVs b2NrLmMgKE1BS0VfTE9DS19OQU1FLCBmaWxsX2luX2xvY2tfZmlsZV9uYW1lKToKKwlEb24n dCBjcmVhdGUgRElSLy4jRklMRS4wIHRocm91Z2ggRElSLy4jRklMRS45LCBhcyB0aGlzIHdh cworCW1vcmUgdHJvdWJsZSB0aGFuIGl0IHdhcyB3b3J0aCBhbmQgbGVkIHRvIHJhY2UgY29u ZGl0aW9ucyBvZiBpdHMgb3duLgorCShNQUtFX0xPQ0tfTkFNRSwgdW5sb2NrX2ZpbGUsIEZm aWxlX2xvY2tlZF9wKToKKwlVc2UgU0FGRV9BTExPQ0EgdG8gYXZvaWQgcHJvYmxlbXMgd2l0 aCBsb25nIGZpbGUgbmFtZXMuCisJKGxvY2tfZmlsZV8xKTogRG9uJ3QgaW5zcGVjdCBlcnJu byBpZiBzeW1saW5rIGNhbGwgc3VjY2VlZHM7CisJdGhhdCdzIG5vdCBwb3J0YWJsZS4KKwko bG9ja19maWxlKTogRG9jdW1lbnQgdGhhdCB0aGlzIGZ1bmN0aW9ubiBjYW4gcmV0dXJuIGlm CisJbG9jayBjcmVhdGlvbiBmYWlscy4KKwogMjAxMy0wMi0yNCAgQW5kcmVhcyBTY2h3YWIg IDxzY2h3YWJAbGludXgtbTY4ay5vcmc+CiAKIAkqIHhkaXNwLmMgKHNldF9tZXNzYWdlKTog T25seSBjaGVjayBmb3IgZGVidWctb24tbWVzc2FnZSBpZiBTVFJJTkcKCj09PSBtb2RpZmll ZCBmaWxlICdzcmMvZmlsZWxvY2suYycKLS0tIHNyYy9maWxlbG9jay5jCTIwMTMtMDItMjQg MTk6NDU6MTcgKzAwMDAKKysrIHNyYy9maWxlbG9jay5jCTIwMTMtMDItMjQgMjI6NDQ6MDQg KzAwMDAKQEAgLTI4OSw0NCArMjg5LDIyIEBACiAKIAogLyogV3JpdGUgdGhlIG5hbWUgb2Yg dGhlIGxvY2sgZmlsZSBmb3IgRk4gaW50byBMRk5BTUUuICBMZW5ndGggd2lsbCBiZQotICAg dGhhdCBvZiBGTiBwbHVzIHR3byBtb3JlIGZvciB0aGUgbGVhZGluZyBgLiMnIHBsdXMgMSBm b3IgdGhlCi0gICB0cmFpbGluZyBwZXJpb2QgcGx1cyBvbmUgZm9yIHRoZSBkaWdpdCBhZnRl ciBpdCBwbHVzIG9uZSBmb3IgdGhlCi0gICBudWxsLiAgKi8KKyAgIHRoYXQgb2YgRk4gcGx1 cyB0d28gbW9yZSBmb3IgdGhlIGxlYWRpbmcgYC4jJyBwbHVzIG9uZSBmb3IgdGhlIG51bGwu ICAqLwogI2RlZmluZSBNQUtFX0xPQ0tfTkFNRShsb2NrLCBmaWxlKSBcCi0gIChsb2NrID0g YWxsb2NhIChTQllURVMgKGZpbGUpICsgMiArIDEgKyAxICsgMSksIFwKLSAgIGZpbGxfaW5f bG9ja19maWxlX25hbWUgKGxvY2ssIChmaWxlKSkpCisgIChsb2NrID0gU0FGRV9BTExPQ0Eg KFNCWVRFUyAoZmlsZSkgKyAyICsgMSksIFwKKyAgIGZpbGxfaW5fbG9ja19maWxlX25hbWUg KGxvY2ssIGZpbGUpKQogCiBzdGF0aWMgdm9pZAotZmlsbF9pbl9sb2NrX2ZpbGVfbmFtZSAo cmVnaXN0ZXIgY2hhciAqbG9ja2ZpbGUsIHJlZ2lzdGVyIExpc3BfT2JqZWN0IGZuKQorZmls bF9pbl9sb2NrX2ZpbGVfbmFtZSAoY2hhciAqbG9ja2ZpbGUsIExpc3BfT2JqZWN0IGZuKQog ewotICBwdHJkaWZmX3QgbGVuZ3RoID0gU0JZVEVTIChmbik7Ci0gIHJlZ2lzdGVyIGNoYXIg KnA7Ci0gIHN0cnVjdCBzdGF0IHN0OwotICBpbnQgY291bnQgPSAwOwotCi0gIHN0cmNweSAo bG9ja2ZpbGUsIFNTREFUQSAoZm4pKTsKLQotICAvKiBTaGlmdCB0aGUgbm9uZGlyZWN0b3J5 IHBhcnQgb2YgdGhlIGZpbGUgbmFtZSAoaW5jbHVkaW5nIHRoZSBudWxsKQotICAgICByaWdo dCB0d28gY2hhcmFjdGVycy4gIEhlcmUgaXMgb25lIG9mIHRoZSBwbGFjZXMgd2hlcmUgd2Un ZCBoYXZlIHRvCi0gICAgIGRvIHNvbWV0aGluZyB0byBzdXBwb3J0IDE0LWNoYXJhY3Rlci1t YXggZmlsZSBuYW1lcy4gICovCi0gIGZvciAocCA9IGxvY2tmaWxlICsgbGVuZ3RoOyBwICE9 IGxvY2tmaWxlICYmICpwICE9ICcvJzsgcC0tKQotICAgIHBbMl0gPSAqcDsKLQotICAvKiBJ bnNlcnQgdGhlIGAuIycuICAqLwotICBwWzFdID0gJy4nOwotICBwWzJdID0gJyMnOwotCi0g IHAgPSBsb2NrZmlsZSArIGxlbmd0aCArIDI7Ci0KLSAgd2hpbGUgKGxzdGF0IChsb2NrZmls ZSwgJnN0KSA9PSAwICYmICFTX0lTTE5LIChzdC5zdF9tb2RlKSkKLSAgICB7Ci0gICAgICBp ZiAoY291bnQgPiA5KQotCXsKLQkgICpwID0gJ1wwJzsKLQkgIHJldHVybjsKLQl9Ci0gICAg ICBzcHJpbnRmIChwLCAiLiVkIiwgY291bnQrKyk7Ci0gICAgfQorICBjaGFyICpsYXN0X3Ns YXNoID0gbWVtcmNociAoU1NEQVRBIChmbiksICcvJywgU0JZVEVTIChmbikpOworICBjaGFy ICpiYXNlID0gbGFzdF9zbGFzaCArIDE7CisgIHB0cmRpZmZfdCBkaXJsZW4gPSBiYXNlIC0g U1NEQVRBIChmbik7CisKKyAgbWVtY3B5IChsb2NrZmlsZSwgU1NEQVRBIChmbiksIGRpcmxl bik7CisgIGxvY2tmaWxlW2Rpcmxlbl0gPSAnLic7CisgIGxvY2tmaWxlW2RpcmxlbiArIDFd ID0gJyMnOworICBzdHJjcHkgKGxvY2tmaWxlICsgZGlybGVuICsgMiwgYmFzZSk7CiB9CiAK IC8qIExvY2sgdGhlIGxvY2sgZmlsZSBuYW1lZCBMRk5BTUUuCkBAIC0zNTcsNyArMzM1LDcg QEAKIAkgICAgdXNlcl9uYW1lLCBob3N0X25hbWUsIHBpZCwgYm9vdCk7CiAKICAgZXJyID0g c3ltbGluayAobG9ja19pbmZvX3N0ciwgbGZuYW1lKTsKLSAgaWYgKGVycm5vID09IEVFWElT VCAmJiBmb3JjZSkKKyAgaWYgKGVyciAhPSAwICYmIGVycm5vID09IEVFWElTVCAmJiBmb3Jj ZSkKICAgICB7CiAgICAgICB1bmxpbmsgKGxmbmFtZSk7CiAgICAgICBlcnIgPSBzeW1saW5r IChsb2NrX2luZm9fc3RyLCBsZm5hbWUpOwpAQCAtNTIwLDYgKzQ5OCw3IEBACiAgICBkZWNp ZGVkIHRvIGdvIGFoZWFkIHdpdGhvdXQgbG9ja2luZy4KIAogICAgV2hlbiB0aGlzIHJldHVy bnMsIGVpdGhlciB0aGUgbG9jayBpcyBsb2NrZWQgZm9yIHVzLAorICAgb3IgbG9jayBjcmVh dGlvbiBmYWlsZWQsCiAgICBvciB0aGUgdXNlciBoYXMgc2FpZCB0byBnbyBhaGVhZCB3aXRo b3V0IGxvY2tpbmcuCiAKICAgIElmIHRoZSBmaWxlIGlzIGxvY2tlZCBieSBzb21lb25lIGVs c2UsIHRoaXMgY2FsbHMKQEAgLTU5OSw5ICs1NzgsMTAgQEAKIH0KIAogdm9pZAotdW5sb2Nr X2ZpbGUgKHJlZ2lzdGVyIExpc3BfT2JqZWN0IGZuKQordW5sb2NrX2ZpbGUgKExpc3BfT2Jq ZWN0IGZuKQogewotICByZWdpc3RlciBjaGFyICpsZm5hbWU7CisgIGNoYXIgKmxmbmFtZTsK KyAgVVNFX1NBRkVfQUxMT0NBOwogCiAgIGZuID0gRmV4cGFuZF9maWxlX25hbWUgKGZuLCBR bmlsKTsKICAgZm4gPSBFTkNPREVfRklMRSAoZm4pOwpAQCAtNjEwLDYgKzU5MCw4IEBACiAK ICAgaWYgKGN1cnJlbnRfbG9ja19vd25lciAoMCwgbGZuYW1lKSA9PSAyKQogICAgIHVubGlu ayAobGZuYW1lKTsKKworICBTQUZFX0ZSRUUgKCk7CiB9CiAKIHZvaWQKQEAgLTY3NSw5ICs2 NTcsMTAgQEAKICAgKExpc3BfT2JqZWN0IGZpbGVuYW1lKQogewogICBMaXNwX09iamVjdCBy ZXQ7Ci0gIHJlZ2lzdGVyIGNoYXIgKmxmbmFtZTsKKyAgY2hhciAqbGZuYW1lOwogICBpbnQg b3duZXI7CiAgIGxvY2tfaW5mb190eXBlIGxvY2tlcjsKKyAgVVNFX1NBRkVfQUxMT0NBOwog CiAgIGZpbGVuYW1lID0gRmV4cGFuZF9maWxlX25hbWUgKGZpbGVuYW1lLCBRbmlsKTsKIApA QCAtNjk0LDYgKzY3Nyw3IEBACiAgIGlmIChvd25lciA+IDApCiAgICAgRlJFRV9MT0NLX0lO Rk8gKGxvY2tlcik7CiAKKyAgU0FGRV9GUkVFICgpOwogICByZXR1cm4gcmV0OwogfQogCgo= --------------010104000004070201020609--