From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27115 invoked by alias); 30 May 2014 22:56:14 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 27103 invoked by uid 89); 30 May 2014 22:56:14 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-3.1 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_LOW,RP_MATCHES_RCVD,SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-wi0-f175.google.com Received: from mail-wi0-f175.google.com (HELO mail-wi0-f175.google.com) (209.85.212.175) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Fri, 30 May 2014 22:56:11 +0000 Received: by mail-wi0-f175.google.com with SMTP id f8so1846790wiw.14 for ; Fri, 30 May 2014 15:56:08 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:date:message-id:subject:from:to :content-type; bh=RGNIY+jOGIPIATseOK8NW37N7wkw3a2UYaeeSXM5nQA=; b=ghWvPNX7QLiOpwq30ZW7Q72sY7PhTGxDnEaJ3EsHiKKAgbfgbz2lvWpaHHv2any1zd b/Jqj7a9G1hHv8l4IWVzUJX+R4okLz9pzRgFGe9/eOmsBdvGfFZr3J8VKXvH/TYvNkjc /ejNluLcDo1tnuL5c4oNukl14ok9A7VIgHGCMQ9fj4ndJXICeIKZwr0nCFR1nSQlBYrh bsxVrtYjezWcycIMjX+Esm+DdsPeoyda+zugeiZoNUiJUA/JcmTEqFmKF1ZCMm7Jl/b3 N4cNHe/9eZODgzUJbyQ0dvQbNsiW0ZA26iJGvGvsl3zgUeNvNl/QrD5AWydmedSNXkyn veHw== X-Gm-Message-State: ALoCoQkkWMDbal1sjpxDbhNDntZL/xVXj9NRt6+/ST80fQzK8wWxgschgoy1tDRT47M54BTt1QWA MIME-Version: 1.0 X-Received: by 10.194.249.228 with SMTP id yx4mr14981951wjc.53.1401490568358; Fri, 30 May 2014 15:56:08 -0700 (PDT) Received: by 10.217.51.7 with HTTP; Fri, 30 May 2014 15:56:08 -0700 (PDT) Date: Fri, 30 May 2014 22:56:00 -0000 Message-ID: Subject: [PATCH v19 1/4] Add xmethod documentation and NEWS entry From: Siva Chandra To: gdb-patches Content-Type: multipart/mixed; boundary=001a11c2a05a7beb5f04faa5f314 X-IsSubscribed: yes X-SW-Source: 2014-05/txt/msg00762.txt.bz2 --001a11c2a05a7beb5f04faa5f314 Content-Type: text/plain; charset=UTF-8 Content-length: 421 Reworked examples from v18. Patch is attached. ChangeLog: 2014-05-30 Siva Chandra Reddy * NEWS (Python Scripting): Add entry about the new xmethods feature. doc/ * python.texi (Xmethods In Python, XMethod API) (Writing an Xmethod): New nodes. (Python API): New menu entries "Xmethods In Python", "Xmethod API", "Writing an Xmethod". --001a11c2a05a7beb5f04faa5f314 Content-Type: text/plain; charset=US-ASCII; name="xmethod_docs_v19.txt" Content-Disposition: attachment; filename="xmethod_docs_v19.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hvu3akua0 Content-length: 18870 ZGlmZiAtLWdpdCBhL2dkYi9ORVdTIGIvZ2RiL05FV1MKaW5kZXggOGI1N2Jk OS4uMTM5N2U4YiAxMDA2NDQKLS0tIGEvZ2RiL05FV1MKKysrIGIvZ2RiL05F V1MKQEAgLTE1Myw2ICsxNTMsMTEgQEAgcVhmZXI6YnRyYWNlOnJlYWQncyBh bm5leAogICAqKiBWYWxpZCBQeXRob24gb3BlcmF0aW9ucyBvbiBnZGIuVmFs dWUgb2JqZWN0cyByZXByZXNlbnRpbmcKICAgICAgc3RydWN0cy9jbGFzc2Vz IGludm9rZSB0aGUgY29ycmVzcG9uZGluZyBvdmVybG9hZGVkIG9wZXJhdG9y cyBpZgogICAgICBhdmFpbGFibGUuCisgICoqIE5ldyBgWG1ldGhvZHMnIGZl YXR1cmUgaW4gdGhlIFB5dGhvbiBBUEkuICBYbWV0aG9kcyBhcmUKKyAgICAg YWRkaXRpb25hbCBtZXRob2RzIG9yIHJlcGxhY2VtZW50cyBmb3IgZXhpc3Rp bmcgbWV0aG9kcyBvZiBhIEMrKworICAgICBjbGFzcy4gIFRoaXMgZmVhdHVy ZSBpcyB1c2VmdWwgZm9yIHRob3NlIGNhc2VzIHdoZXJlIGEgbWV0aG9kCisg ICAgIGRlZmluZWQgaW4gQysrIHNvdXJjZSBjb2RlIGNvdWxkIGJlIGlubGlu ZWQgb3Igb3B0aW1pemVkIG91dCBieQorICAgICB0aGUgY29tcGlsZXIsIG1h a2luZyBpdCB1bmF2YWlsYWJsZSB0byBHREIuCiAKICogTmV3IHRhcmdldHMK IFBvd2VyUEM2NCBHTlUvTGludXggbGl0dGxlLWVuZGlhbglwb3dlcnBjNjRs ZS0qLWxpbnV4KgpkaWZmIC0tZ2l0IGEvZ2RiL2RvYy9weXRob24udGV4aSBi L2dkYi9kb2MvcHl0aG9uLnRleGkKaW5kZXggMDA2Yjg3My4uYzBjOTA3NSAx MDA2NDQKLS0tIGEvZ2RiL2RvYy9weXRob24udGV4aQorKysgYi9nZGIvZG9j L3B5dGhvbi50ZXhpCkBAIC0xNDQsNiArMTQ0LDkgQEAgb3B0aW9uYWwgYXJn dW1lbnRzIHdoaWxlIHNraXBwaW5nIG90aGVycy4gIEV4YW1wbGU6CiAqIEZy YW1lIEZpbHRlciBBUEk6OiAgICAgICAgICAgIEZpbHRlcmluZyBGcmFtZXMu CiAqIEZyYW1lIERlY29yYXRvciBBUEk6OiAgICAgICAgIERlY29yYXRpbmcg RnJhbWVzLgogKiBXcml0aW5nIGEgRnJhbWUgRmlsdGVyOjogICAgICBXcml0 aW5nIGEgRnJhbWUgRmlsdGVyLgorKiBYbWV0aG9kcyBJbiBQeXRob246OiAg ICAgICAgICBBZGRpbmcgYW5kIHJlcGxhY2luZyBtZXRob2RzIG9mIEMrKyBj bGFzc2VzLgorKiBYbWV0aG9kIEFQSTo6ICAgICAgICAgICAgICAgICBYbWV0 aG9kIHR5cGVzLgorKiBXcml0aW5nIGFuIFhtZXRob2Q6OiAgICAgICAgICBX cml0aW5nIGFuIHhtZXRob2QuCiAqIEluZmVyaW9ycyBJbiBQeXRob246OiAg ICAgICAgIFB5dGhvbiByZXByZXNlbnRhdGlvbiBvZiBpbmZlcmlvcnMgKHBy b2Nlc3NlcykKICogRXZlbnRzIEluIFB5dGhvbjo6ICAgICAgICAgICAgTGlz dGVuaW5nIGZvciBldmVudHMgZnJvbSBAdmFsdWV7R0RCTn0uCiAqIFRocmVh ZHMgSW4gUHl0aG9uOjogICAgICAgICAgIEFjY2Vzc2luZyBpbmZlcmlvciB0 aHJlYWRzIGZyb20gUHl0aG9uLgpAQCAtMjE3NCw2ICsyMTc3LDM0NiBAQCBw cmludGVkIGhpZXJhcmNoaWNhbGx5LiAgQW5vdGhlciBhcHByb2FjaCB3b3Vs ZCBiZSB0byBjb21iaW5lIHRoZQogbWFya2VyIGluIHRoZSBpbmxpbmVkIGZy YW1lLCBhbmQgYWxzbyBzaG93IHRoZSBoaWVyYXJjaGljYWwKIHJlbGF0aW9u c2hpcC4KIAorQG5vZGUgWG1ldGhvZHMgSW4gUHl0aG9uCitAc3Vic3Vic2Vj dGlvbiBYbWV0aG9kcyBJbiBQeXRob24KK0BjaW5kZXggeG1ldGhvZHMgaW4g UHl0aG9uCisKK0BkZm57WG1ldGhvZHN9IGFyZSBhZGRpdGlvbmFsIG1ldGhv ZHMgb3IgcmVwbGFjZW1lbnRzIGZvciBleGlzdGluZworbWV0aG9kcyBvZiBh IENAdHsrK30gY2xhc3MuICBUaGlzIGZlYXR1cmUgaXMgdXNlZnVsIGZvciB0 aG9zZSBjYXNlcword2hlcmUgYSBtZXRob2QgZGVmaW5lZCBpbiBDQHR7Kyt9 IHNvdXJjZSBjb2RlIGNvdWxkIGJlIGlubGluZWQgb3IKK29wdGltaXplZCBv dXQgYnkgdGhlIGNvbXBpbGVyLCBtYWtpbmcgaXQgdW5hdmFpbGFibGUgdG8g QHZhbHVle0dEQk59LgorRm9yIHN1Y2ggY2FzZXMsIG9uZSBjYW4gZGVmaW5l IGFuIHhtZXRob2QgdG8gc2VydmUgYXMgYSByZXBsYWNlbWVudAorZm9yIHRo ZSBtZXRob2QgZGVmaW5lZCBpbiB0aGUgQ0B0eysrfSBzb3VyY2UgY29kZS4g IEB2YWx1ZXtHREJOfSB3aWxsCit0aGVuIGludm9rZSB0aGUgeG1ldGhvZCwg aW5zdGVhZCBvZiB0aGUgQ0B0eysrfSBtZXRob2QsIHRvCitldmFsdWF0ZSBl eHByZXNzaW9ucy4gIE9uZSBjYW4gYWxzbyB1c2UgeG1ldGhvZHMgd2hlbiBk ZWJ1Z2dpbmcKK3dpdGggY29yZSBmaWxlcy4gIE1vcmVvdmVyLCB3aGVuIGRl YnVnZ2luZyBsaXZlIHByb2dyYW1zLCBpbnZva2luZyBhbgoreG1ldGhvZCBu ZWVkIG5vdCBpbnZvbHZlIHJ1bm5pbmcgdGhlIGluZmVyaW9yICh3aGljaCBj YW4gcG90ZW50aWFsbHkKK3BlcnR1cmIgaXRzIHN0YXRlKS4gIEhlbmNlLCBl dmVuIGlmIHRoZSBDQHR7Kyt9IG1ldGhvZCBpcyBhdmFpbGFibGUsIGl0Citp cyBiZXR0ZXIgdG8gdXNlIGl0cyByZXBsYWNlbWVudCB4bWV0aG9kIGlmIG9u ZSBpcyBkZWZpbmVkLgorCitUaGUgeG1ldGhvZHMgZmVhdHVyZSBpbiBQeXRo b24gaXMgYXZhaWxhYmxlIHZpYSB0aGUgY29uY2VwdHMgb2YgYW4KK0BkZm57 eG1ldGhvZCBtYXRjaGVyfSBhbmQgYW4gQGRmbnt4bWV0aG9kIHdvcmtlcn0u ICBUbworaW1wbGVtZW50IGFuIHhtZXRob2QsIG9uZSBoYXMgdG8gaW1wbGVt ZW50IGEgbWF0Y2hlciBhbmQgYQorY29ycmVzcG9uZGluZyB3b3JrZXIgZm9y IGl0IChtb3JlIHRoYW4gb25lIHdvcmtlciBjYW4gYmUKK2ltcGxlbWVudGVk LCBlYWNoIGNhdGVyaW5nIHRvIGEgZGlmZmVyZW50IG92ZXJsb2FkZWQgaW5z dGFuY2Ugb2YgdGhlCittZXRob2QpLiAgSW50ZXJuYWxseSwgQHZhbHVle0dE Qk59IGludm9rZXMgdGhlIEBjb2Rle21hdGNofSBtZXRob2Qgb2YgYQorbWF0 Y2hlciB0byBtYXRjaCB0aGUgY2xhc3MgdHlwZSBhbmQgbWV0aG9kIG5hbWUu ICBPbiBhIG1hdGNoLCB0aGUKK0Bjb2Rle21hdGNofSBtZXRob2QgcmV0dXJu cyBhIGxpc3Qgb2YgbWF0Y2hpbmcgQGVtcGh7d29ya2VyfSBvYmplY3RzLgor RWFjaCB3b3JrZXIgb2JqZWN0IHR5cGljYWxseSBjb3JyZXNwb25kcyB0byBh biBvdmVybG9hZGVkIGluc3RhbmNlIG9mCit0aGUgeG1ldGhvZC4gIFRoZXkg aW1wbGVtZW50IGEgQGNvZGV7Z2V0X2FyZ190eXBlc30gbWV0aG9kIHdoaWNo CityZXR1cm5zIGEgc2VxdWVuY2Ugb2YgdHlwZXMgY29ycmVzcG9uZGluZyB0 byB0aGUgYXJndW1lbnRzIHRoZSB4bWV0aG9kCityZXF1aXJlcy4gIEB2YWx1 ZXtHREJOfSB1c2VzIHRoaXMgc2VxdWVuY2Ugb2YgdHlwZXMgdG8gcGVyZm9y bQorb3ZlcmxvYWQgcmVzb2x1dGlvbiBhbmQgcGlja3MgYSB3aW5uaW5nIHht ZXRob2Qgd29ya2VyLiAgQSB3aW5uZXIKK2lzIGFsc28gc2VsZWN0ZWQgZnJv bSBhbW9uZyB0aGUgbWV0aG9kcyBAdmFsdWV7R0RCTn0gZmluZHMgaW4gdGhl CitDQHR7Kyt9IHNvdXJjZSBjb2RlLiAgTmV4dCwgdGhlIHdpbm5pbmcgeG1l dGhvZCB3b3JrZXIgYW5kIHRoZQord2lubmluZyBDQHR7Kyt9IG1ldGhvZCBh cmUgY29tcGFyZWQgdG8gc2VsZWN0IGFuIG92ZXJhbGwgd2lubmVyLiAgSW4K K2Nhc2Ugb2YgYSB0aWUgYmV0d2VlbiBhIHhtZXRob2Qgd29ya2VyIGFuZCBh IENAdHsrK30gbWV0aG9kLCB0aGUKK3htZXRob2Qgd29ya2VyIGlzIHNlbGVj dGVkIGFzIHRoZSB3aW5uZXIuICBUaGF0IGlzLCBpZiBhIHdpbm5pbmcKK3ht ZXRob2Qgd29ya2VyIGlzIGZvdW5kIHRvIGJlIGVxdWl2YWxlbnQgdG8gdGhl IHdpbm5pbmcgQ0B0eysrfQorbWV0aG9kLCB0aGVuIHRoZSB4bWV0aG9kIHdv cmtlciBpcyB0cmVhdGVkIGFzIGEgcmVwbGFjZW1lbnQgZm9yCit0aGUgQ0B0 eysrfSBtZXRob2QuICBAdmFsdWV7R0RCTn0gdXNlcyB0aGUgb3ZlcmFsbCB3 aW5uZXIgdG8gaW52b2tlIHRoZQorbWV0aG9kLiAgSWYgdGhlIHdpbm5pbmcg eG1ldGhvZCB3b3JrZXIgaXMgdGhlIG92ZXJhbGwgd2lubmVyLCB0aGVuCit0 aGUgY29ycmVzcG9uZGluZyB4bWV0aG9kIGlzIGludm9rZWQgdmlhIHRoZSBA Y29kZXtpbnZva2V9IG1ldGhvZAorb2YgdGhlIHdvcmtlciBvYmplY3QuCisK K0lmIG9uZSB3YW50cyB0byBpbXBsZW1lbnQgYW4geG1ldGhvZCBhcyBhIHJl cGxhY2VtZW50IGZvciBhbgorZXhpc3RpbmcgQ0B0eysrfSBtZXRob2QsIHRo ZW4gdGhleSBoYXZlIHRvIGltcGxlbWVudCBhbiBlcXVpdmFsZW50Cit4bWV0 aG9kIHdoaWNoIGhhcyBleGFjdGx5IHRoZSBzYW1lIG5hbWUgYW5kIHRha2Vz IGFyZ3VtZW50cyBvZgorZXhhY3RseSB0aGUgc2FtZSB0eXBlIGFzIHRoZSBD QHR7Kyt9IG1ldGhvZC4gIElmIHRoZSB1c2VyIHdhbnRzIHRvCitpbnZva2Ug dGhlIENAdHsrK30gbWV0aG9kIGV2ZW4gdGhvdWdoIGEgcmVwbGFjZW1lbnQg eG1ldGhvZCBpcworYXZhaWxhYmxlIGZvciB0aGF0IG1ldGhvZCwgdGhlbiB0 aGV5IGNhbiBkaXNhYmxlIHRoZSB4bWV0aG9kLgorCitAeHJlZntYbWV0aG9k IEFQSX0sIGZvciBBUEkgdG8gaW1wbGVtZW50IHhtZXRob2RzIGluIFB5dGhv bi4KK0B4cmVme1dyaXRpbmcgYW4gWG1ldGhvZH0sIGZvciBpbXBsZW1lbnRp bmcgeG1ldGhvZHMgaW4gUHl0aG9uLgorCitAbm9kZSBYbWV0aG9kIEFQSQor QHN1YnN1YnNlY3Rpb24gWG1ldGhvZCBBUEkKK0BjaW5kZXggeG1ldGhvZCBB UEkKKworVGhlIEB2YWx1ZXtHREJOfSBQeXRob24gQVBJIHByb3ZpZGVzIGNs YXNzZXMsIGludGVyZmFjZXMgYW5kIGZ1bmN0aW9ucwordG8gaW1wbGVtZW50 LCByZWdpc3RlciBhbmQgbWFuaXB1bGF0ZSB4bWV0aG9kcy4KK0B4cmVme1ht ZXRob2RzIEluIFB5dGhvbn0uCisKK0FuIHhtZXRob2QgbWF0Y2hlciBzaG91 bGQgYmUgYW4gaW5zdGFuY2Ugb2YgYSBjbGFzcyBkZXJpdmVkIGZyb20KK0Bj b2Rle1hNZXRob2RNYXRjaGVyfSBkZWZpbmVkIGluIHRoZSBtb2R1bGUgQGNv ZGV7Z2RiLnhtZXRob2R9LCBvciBhbgorb2JqZWN0IHdpdGggc2ltaWxhciBp bnRlcmZhY2UgYW5kIGF0dHJpYnV0ZXMuICBBbiBpbnN0YW5jZSBvZgorQGNv ZGV7WE1ldGhvZE1hdGNoZXJ9IGhhcyB0aGUgZm9sbG93aW5nIGF0dHJpYnV0 ZXM6CisKK0BkZWZ2YXIgbmFtZQorVGhlIG5hbWUgb2YgdGhlIG1hdGNoZXIu CitAZW5kIGRlZnZhcgorCitAZGVmdmFyIGVuYWJsZWQKK0EgYm9vbGVhbiB2 YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIG1hdGNoZXIgaXMgZW5hYmxl ZCBvciBkaXNhYmxlZC4KK0BlbmQgZGVmdmFyCisKK0BkZWZ2YXIgbWV0aG9k cworQSBsaXN0IG9mIG5hbWVkIG1ldGhvZHMgbWFuYWdlZCBieSB0aGUgbWF0 Y2hlci4gIEVhY2ggb2JqZWN0IGluIHRoZSBsaXN0CitpcyBhbiBpbnN0YW5j ZSBvZiB0aGUgY2xhc3MgQGNvZGV7WE1ldGhvZH0gZGVmaW5lZCBpbiB0aGUg bW9kdWxlCitAY29kZXtnZGIueG1ldGhvZH0sIG9yIGFueSBvYmplY3Qgd2l0 aCB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXM6CisKK0B0YWJsZSBAY29kZQor CitAaXRlbSBuYW1lCitOYW1lIG9mIHRoZSB4bWV0aG9kIHdoaWNoIHNob3Vs ZCBiZSB1bmlxdWUgZm9yIGVhY2ggeG1ldGhvZAorbWFuYWdlZCBieSB0aGUg bWF0Y2hlci4KKworQGl0ZW0gZW5hYmxlZAorQSBib29sZWFuIHZhbHVlIGlu ZGljYXRpbmcgd2hldGhlciB0aGUgeG1ldGhvZCBpcyBlbmFibGVkIG9yCitk aXNhYmxlZC4KKworQGVuZCB0YWJsZQorCitUaGUgY2xhc3MgQGNvZGV7WE1l dGhvZH0gaXMgYSBjb252ZW5pZW5jZSBjbGFzcyB3aXRoIHNhbWUKK2F0dHJp YnV0ZXMgYXMgYWJvdmUgYWxvbmcgd2l0aCB0aGUgZm9sbG93aW5nIGNvbnN0 cnVjdG9yOgorCitAZGVmdW4gWE1ldGhvZC5fX2luaXRfXyhzZWxmLCBuYW1l KQorQ29uc3RydWN0cyBhbiBlbmFibGVkIHhtZXRob2Qgd2l0aCBuYW1lIEB2 YXJ7bmFtZX0uCitAZW5kIGRlZnVuCitAZW5kIGRlZnZhcgorCitAbm9pbmRl bnQKK1RoZSBAY29kZXtYTWV0aG9kTWF0Y2hlcn0gY2xhc3MgaGFzIHRoZSBm b2xsb3dpbmcgbWV0aG9kczoKKworQGRlZnVuIFhNZXRob2RNYXRjaGVyLl9f aW5pdF9fKHNlbGYsIG5hbWUpCitDb25zdHJ1Y3RzIGFuIGVuYWJsZWQgeG1l dGhvZCBtYXRjaGVyIHdpdGggbmFtZSBAdmFye25hbWV9LiAgVGhlCitAY29k ZXttZXRob2RzfSBhdHRyaWJ1dGUgaXMgaW5pdGlhbGl6ZWQgdG8gQGNvZGV7 Tm9uZX0uCitAZW5kIGRlZnVuCisKK0BkZWZ1biBYTWV0aG9kTWF0Y2hlci5t YXRjaChzZWxmLCBjbGFzc190eXBlLCBtZXRob2RfbmFtZSkKK0Rlcml2ZWQg Y2xhc3NlcyBzaG91bGQgb3ZlcnJpZGUgdGhpcyBtZXRob2QuICBJdCBzaG91 bGQgcmV0dXJuIGEKK3htZXRob2Qgd29ya2VyIG9iamVjdCAob3IgYSBzZXF1 ZW5jZSBvZiB4bWV0aG9kIHdvcmtlcgorb2JqZWN0cykgbWF0Y2hpbmcgdGhl IEB2YXJ7Y2xhc3NfdHlwZX0gYW5kIEB2YXJ7bWV0aG9kX25hbWV9LgorQHZh cntjbGFzc190eXBlfSBpcyBhIEBjb2Rle2dkYi5UeXBlfSBvYmplY3QsIGFu ZCBAdmFye21ldGhvZF9uYW1lfQoraXMgYSBzdHJpbmcgdmFsdWUuICBJZiB0 aGUgbWF0Y2hlciBtYW5hZ2VzIG5hbWVkIG1ldGhvZHMgYXMgbGlzdGVkIGlu CitpdHMgQGNvZGV7bWV0aG9kc30gYXR0cmlidXRlLCB0aGVuIG9ubHkgdGhv c2Ugd29ya2VyIG9iamVjdHMgd2hvc2UKK2NvcnJlc3BvbmRpbmcgZW50cmll cyBpbiB0aGUgQGNvZGV7bWV0aG9kc30gbGlzdCBhcmUgZW5hYmxlZCBzaG91 bGQgYmUKK3JldHVybmVkLgorQGVuZCBkZWZ1bgorCitBbiB4bWV0aG9kIHdv cmtlciBzaG91bGQgYmUgYW4gaW5zdGFuY2Ugb2YgYSBjbGFzcyBkZXJpdmVk IGZyb20KK0Bjb2Rle1hNZXRob2RXb3JrZXJ9IGRlZmluZWQgaW4gdGhlIG1v ZHVsZSBAY29kZXtnZGIueG1ldGhvZH0sCitvciBzdXBwb3J0IHRoZSBmb2xs b3dpbmcgaW50ZXJmYWNlOgorCitAZGVmdW4gWE1ldGhvZFdvcmtlci5nZXRf YXJnX3R5cGVzKHNlbGYpCitUaGlzIG1ldGhvZCByZXR1cm5zIGEgc2VxdWVu Y2Ugb2YgQGNvZGV7Z2RiLlR5cGV9IG9iamVjdHMgY29ycmVzcG9uZGluZwor dG8gdGhlIGFyZ3VtZW50cyB0aGF0IHRoZSB4bWV0aG9kIHRha2VzLiAgSXQg Y2FuIHJldHVybiBhbiBlbXB0eQorc2VxdWVuY2Ugb3IgQGNvZGV7Tm9uZX0g aWYgdGhlIHhtZXRob2QgZG9lcyBub3QgdGFrZSBhbnkgYXJndW1lbnRzLgor SWYgdGhlIHhtZXRob2QgdGFrZXMgYSBzaW5nbGUgYXJndW1lbnQsIHRoZW4g YSBzaW5nbGUKK0Bjb2Rle2dkYi5UeXBlfSBvYmplY3QgY29ycmVzcG9uZGlu ZyB0byBpdCBjYW4gYmUgcmV0dXJuZWQuCitAZW5kIGRlZnVuCisKK0BkZWZ1 biBYTWV0aG9kV29ya2VyLl9fY2FsbF9fKHNlbGYsICphcmdzKQorVGhpcyBp cyB0aGUgbWV0aG9kIHdoaWNoIGRvZXMgdGhlIEBlbXBoe3dvcmt9IG9mIHRo ZSB4bWV0aG9kLiAgVGhlCitAdmFye2FyZ3N9IGFyZ3VtZW50cyBpcyB0aGUg dHVwbGUgb2YgYXJndW1lbnRzIHRvIHRoZSB4bWV0aG9kLiAgRWFjaAorZWxl bWVudCBpbiB0aGlzIHR1cGxlIGlzIGEgZ2RiLlZhbHVlIG9iamVjdC4gIFRo ZSBmaXJzdCBlbGVtZW50IGlzCithbHdheXMgdGhlIEBjb2Rle3RoaXN9IHBv aW50ZXIgdmFsdWUuCitAZW5kIGRlZnVuCisKK0ZvciBAdmFsdWV7R0RCTn0g dG8gbG9va3VwIHhtZXRob2RzLCB0aGUgeG1ldGhvZCBtYXRjaGVycworc2hv dWxkIGJlIHJlZ2lzdGVyZWQgdXNpbmcgdGhlIGZvbGxvd2luZyBmdW5jdGlv biBkZWZpbmVkIGluIHRoZSBtb2R1bGUKK0Bjb2Rle2dkYi54bWV0aG9kfToK KworQGRlZnVuIHJlZ2lzdGVyX3htZXRob2RfbWF0Y2hlcihsb2N1cywgbWF0 Y2hlciwgcmVwbGFjZT1GYWxzZSkKK1RoZSBAY29kZXttYXRjaGVyfSBpcyBy ZWdpc3RlcmVkIHdpdGggQGNvZGV7bG9jdXN9LCByZXBsYWNpbmcgYW4KK2V4 aXN0aW5nIG1hdGNoZXIgd2l0aCB0aGUgc2FtZSBuYW1lIGFzIEBjb2Rle21h dGNoZXJ9IGlmCitAY29kZXtyZXBsYWNlfSBpcyBAY29kZXtUcnVlfS4gIEBj b2Rle2xvY3VzfSBjYW4gYmUgYQorQGNvZGV7Z2RiLk9iamZpbGV9IG9iamVj dCAoQHB4cmVme09iamZpbGVzIEluIFB5dGhvbn0pLCBvciBhCitAY29kZXtn ZGIuUHJvZ3NwYWNlfSBvYmplY3QgKEBweHJlZntQcm9ncmFtIFNwYWNlcyBJ biBQeXRob259KSwgb3IKK0Bjb2Rle05vbmV9LiAgSWYgaXQgaXMgQGNvZGV7 Tm9uZX0sIHRoZW4gQGNvZGV7bWF0Y2hlcn0gaXMgcmVnaXN0ZXJlZAorZ2xv YmFsbHkuCitAZW5kIGRlZnVuCisKK0Bub2RlIFdyaXRpbmcgYW4gWG1ldGhv ZAorQHN1YnN1YnNlY3Rpb24gV3JpdGluZyBhbiBYbWV0aG9kCitAY2luZGV4 IHdyaXRpbmcgeG1ldGhvZHMgaW4gUHl0aG9uCisKK0ltcGxlbWVudGluZyB4 bWV0aG9kcyBpbiBQeXRob24gd2lsbCByZXF1aXJlIGltcGxlbWVudGluZyB4 bWV0aG9kCittYXRjaGVycyBhbmQgeG1ldGhvZCB3b3JrZXJzIChAcHhyZWZ7 WG1ldGhvZHMgSW4gUHl0aG9ufSkuICBDb25zaWRlcgordGhlIGZvbGxvd2lu ZyBDQHR7Kyt9IGNsYXNzOgorCitAc21hbGxleGFtcGxlCitjbGFzcyBNeUNs YXNzCitAeworcHVibGljOgorICBNeUNsYXNzIChpbnQgYSkgOiBhXyhhKSBA eyBAfQorCisgIGludCBnZXRhICh2b2lkKSBAeyByZXR1cm4gYV87IEB9Cisg IGludCBvcGVyYXRvcisgKGludCBiKTsKKworcHJpdmF0ZToKKyAgaW50IGFf OworQH07CisKK2ludAorTXlDbGFzczo6b3BlcmF0b3IrIChpbnQgYikKK0B7 CisgIHJldHVybiBhXyArIGI7CitAfQorQGVuZCBzbWFsbGV4YW1wbGUKKwor QG5vaW5kZW50CitMZXQgdXMgZGVmaW5lIHR3byB4bWV0aG9kcyBmb3IgdGhl IGNsYXNzIEBjb2Rle015Q2xhc3N9LCBvbmUKK3JlcGxhY2luZyB0aGUgbWV0 aG9kIEBjb2Rle2dldGF9LCBhbmQgYW5vdGhlciBhZGRpbmcgYW4gb3Zlcmxv YWRlZAorZmxhdm9yIG9mIEBjb2Rle29wZXJhdG9yK30gd2hpY2ggdGFrZXMg YSBAY29kZXtNeUNsYXNzfSBhcmd1bWVudC4gVGhlCit4bWV0aG9kIG1hdGNo ZXIgY2FuIGJlIGRlZmluZWQgYXMgZm9sbG93czoKKworQHNtYWxsZXhhbXBs ZQorY2xhc3MgTXlDbGFzc19nZXRhKGdkYi54bWV0aG9kLlhNZXRob2QpOgor ICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgZ2RiLnhtZXRob2Qu WE1ldGhvZC5fX2luaXRfXyhzZWxmLCAnZ2V0YScpCisgCisgICAgZGVmIGdl dF93b3JrZXIoc2VsZiwgbWV0aG9kX25hbWUpOgorICAgICAgICBpZiBtZXRo b2RfbmFtZSA9PSAnZ2V0YSc6CisgICAgICAgICAgICByZXR1cm4gTXlDbGFz c1dvcmtlcl9nZXRhKCkKKyAKKyAKK2NsYXNzIE15Q2xhc3Nfc3VtKGdkYi54 bWV0aG9kLlhNZXRob2QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAg ICAgICAgZ2RiLnhtZXRob2QuWE1ldGhvZC5fX2luaXRfXyhzZWxmLCAnc3Vt JykKKyAKKyAgICBkZWYgZ2V0X3dvcmtlcihzZWxmLCBtZXRob2RfbmFtZSk6 CisgICAgICAgIGlmIG1ldGhvZF9uYW1lID09ICdvcGVyYXRvcisnOgorICAg ICAgICAgICAgcmV0dXJuIE15Q2xhc3NXb3JrZXJfcGx1cygpCisgCisgCitj bGFzcyBNeUNsYXNzTWF0Y2hlcihnZGIueG1ldGhvZC5YTWV0aG9kTWF0Y2hl cik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICBnZGIueG1l dGhvZC5YTWV0aG9kTWF0Y2hlci5fX2luaXRfXyhzZWxmLCAnTXlDbGFzc01h dGNoZXInKQorICAgICAgICAjIExpc3Qgb2YgbWV0aG9kcyAnbWFuYWdlZCcg YnkgdGhpcyBtYXRjaGVyCisgICAgICAgIHNlbGYubWV0aG9kcyA9IFtNeUNs YXNzX2dldGEoKSwgTXlDbGFzc19zdW0oKV0KKyAKKyAgICBkZWYgbWF0Y2go c2VsZiwgY2xhc3NfdHlwZSwgbWV0aG9kX25hbWUpOgorICAgICAgICBpZiBj bGFzc190eXBlLnRhZyAhPSAnTXlDbGFzcyc6CisgICAgICAgICAgICByZXR1 cm4gTm9uZQorICAgICAgICB3b3JrZXJzID0gW10KKyAgICAgICAgZm9yIG1l dGhvZCBpbiBzZWxmLm1ldGhvZHM6CisgICAgICAgICAgICBpZiBtZXRob2Qu ZW5hYmxlZDoKKyAgICAgICAgICAgICAgICB3b3JrZXIgPSBtZXRob2QuZ2V0 X3dvcmtlcihtZXRob2RfbmFtZSkKKyAgICAgICAgICAgICAgICBpZiB3b3Jr ZXI6CisgICAgICAgICAgICAgICAgICAgIHdvcmtlcnMuYXBwZW5kKHdvcmtl cikKKyAKKyAgICAgICAgcmV0dXJuIHdvcmtlcnMKK0BlbmQgc21hbGxleGFt cGxlCisKK0Bub2luZGVudAorTm90aWNlIHRoYXQgdGhlIEBjb2Rle21hdGNo fSBtZXRob2Qgb2YgQGNvZGV7TXlDbGFzc01hdGNoZXJ9IHJldHVybnMKK2Eg d29ya2VyIG9iamVjdCBvZiB0eXBlIEBjb2Rle015Q2xhc3NXb3JrZXJfZ2V0 YX0gZm9yIHRoZSBAY29kZXtnZXRhfQorbWV0aG9kLCBhbmQgYSB3b3JrZXIg b2JqZWN0IG9mIHR5cGUgQGNvZGV7TXlDbGFzc1dvcmtlcl9wbHVzfSBmb3Ig dGhlCitAY29kZXtvcGVyYXRvcit9IG1ldGhvZC4gIFRoaXMgaXMgZG9uZSBp bmRpcmVjdGx5IHZpYSBoZWxwZXIgY2xhc3NlcworZGVyaXZlZCBmcm9tIEBj b2Rle2dkYi54bWV0aG9kLlhNZXRob2R9LiAgT25lIGRvZXMgbm90IG5lZWQg dG8gdXNlIHRoZQorQGNvZGV7bWV0aG9kc30gYXR0cmlidXRlIGluIGEgbWF0 Y2hlciBhcyBpdCBpcyBvcHRpb25hbC4gIEhvd2V2ZXIsIGlmIGEKK21hdGNo ZXIgbWFuYWdlcyBtb3JlIHRoYW4gb25lIHhtZXRob2QsIGl0IGlzIGEgZ29v ZCBwcmFjdGljZSB0byBsaXN0IHRoZQoreG1ldGhvZHMgaW4gdGhlIEBjb2Rl e21ldGhvZHN9IGF0dHJpYnV0ZSBvZiB0aGUgbWF0Y2hlci4gIFRoaXMgd2ls bCB0aGVuCitmYWNpbGl0YXRlIGVuYWJsaW5nIGFuZCBkaXNhYmxpbmcgaW5k aXZpZHVhbCB4bWV0aG9kcyB2aWEgdGhlCitAY29kZXtlbmFibGUvZGlzYWJs ZX0gY29tbWFuZHMuICBOb3RpY2UgYWxzbyB0aGF0IGEgd29ya2VyIG9iamVj dCBpcworcmV0dXJuZWQgb25seSBpZiB0aGUgY29ycmVzcG9uZGluZyBlbnRy eSBpbiB0aGUgQGNvZGV7bWV0aG9kc30gYXR0cmlidXRlCitvZiB0aGUgbWF0 Y2hlciBpcyBlbmFibGVkLgorCitUaGUgaW1wbGVtZW50YXRpb24gb2YgdGhl IHdvcmtlciBjbGFzc2VzIHJldHVybmVkIGJ5IHRoZSBtYXRjaGVyIHNldHVw CithYm92ZSBpcyBhcyBmb2xsb3dzOgorCitAc21hbGxleGFtcGxlCitjbGFz cyBNeUNsYXNzV29ya2VyX2dldGEoZ2RiLnhtZXRob2QuWE1ldGhvZFdvcmtl cik6CisgICAgZGVmIGdldF9hcmdfdHlwZXMoc2VsZik6CisgICAgICAgIHJl dHVybiBOb25lCisgCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIG9iaik6Cisg ICAgICAgIHJldHVybiBvYmpbJ2FfJ10KKyAKKyAKK2NsYXNzIE15Q2xhc3NX b3JrZXJfcGx1cyhnZGIueG1ldGhvZC5YTWV0aG9kV29ya2VyKToKKyAgICBk ZWYgZ2V0X2FyZ190eXBlcyhzZWxmKToKKyAgICAgICAgcmV0dXJuIGdkYi5s b29rdXBfdHlwZSgnTXlDbGFzcycpCisgCisgICAgZGVmIF9fY2FsbF9fKHNl bGYsIG9iaiwgb3RoZXIpOgorICAgICAgICByZXR1cm4gb2JqWydhXyddICsg b3RoZXJbJ2FfJ10KK0BlbmQgc21hbGxleGFtcGxlCisKK0ZvciBAdmFsdWV7 R0RCTn0gdG8gYWN0dWFsbHkgbG9va3VwIGEgeG1ldGhvZCwgaXQgaGFzIHRv IGJlCityZWdpc3RlcmVkIHdpdGggaXQuICBUaGUgbWF0Y2hlciBkZWZpbmVk IGFib3ZlIGlzIHJlZ2lzdGVyZWQgd2l0aAorQHZhbHVle0dEQk59IGdsb2Jh bGx5IGFzIGZvbGxvd3M6CisKK0BzbWFsbGV4YW1wbGUKK2dkYi54bWV0aG9k LnJlZ2lzdGVyX3htZXRob2RfbWF0Y2hlcihOb25lLCBNeUNsYXNzTWF0Y2hl cigpKQorQGVuZCBzbWFsbGV4YW1wbGUKKworSWYgYW4gb2JqZWN0IEBjb2Rl e29ian0gb2YgdHlwZSBAY29kZXtNeUNsYXNzfSBpcyBpbml0aWFsaXplZCBp biBDQHR7Kyt9Citjb2RlIGFzIGZvbGxvd3M6CisKK0BzbWFsbGV4YW1wbGUK K015Q2xhc3Mgb2JqKDUpOworQGVuZCBzbWFsbGV4YW1wbGUKKworQG5vaW5k ZW50Cit0aGVuLCBhZnRlciBsb2FkaW5nIHRoZSBQeXRob24gc2NyaXB0IGRl ZmluaW5nIHRoZSB4bWV0aG9kIG1hdGNoZXJzCithbmQgd29ya2VycyBpbnRv IEBjb2Rle0dEQk59LCBpbnZva2luZyB0aGUgbWV0aG9kIEBjb2Rle2dldGF9 IG9yIHVzaW5nCit0aGUgb3BlcmF0b3IgQGNvZGV7K30gb24gQGNvZGV7b2Jq fSB3aWxsIGludm9rZSB0aGUgeG1ldGhvZHMKK2RlZmluZWQgYWJvdmU6CisK K0BzbWFsbGV4YW1wbGUKKyhnZGIpIHAgb2JqLmdldGEoKQorJDEgPSA1CisK KyhnZGIpIHAgb2JqICsgb2JqCiskMiA9IDEwCitAZW5kIHNtYWxsZXhhbXBs ZQorCitDb25zaWRlciBhbm90aGVyIGV4YW1wbGUgd2l0aCBhIEMrKyB0ZW1w bGF0ZSBjbGFzczoKKworQHNtYWxsZXhhbXBsZQordGVtcGxhdGUgPGNsYXNz IFQ+CitjbGFzcyBNeVRlbXBsYXRlCitAeworcHVibGljOgorICBNeVRlbXBs YXRlICgpIDogZHNpemVfKDEwKSwgZGF0YV8gKG5ldyBUIFsxMF0pIEB7IEB9 CisgIH5NeVRlbXBsYXRlICgpIEB7IGRlbGV0ZSBbXSBkYXRhXzsgQH0KKyAK KyAgaW50IGZvb3RwcmludCAodm9pZCkKKyAgQHsKKyAgICByZXR1cm4gc2l6 ZW9mIChUKSAqIGRzaXplXyArIHNpemVvZiAoTXlUZW1wbGF0ZTxUPik7Cisg IEB9CisgCitwcml2YXRlOgorICBpbnQgZHNpemVfOworICBUICpkYXRhXzsK K0B9OworQGVuZCBzbWFsbGV4YW1wbGUKKworTGV0IHVzIGltcGxlbWVudCBh biB4bWV0aG9kIGZvciB0aGUgYWJvdmUgY2xhc3Mgd2hpY2ggc2VydmVzIGFz IGEKK3JlcGxhY2VtZW50IGZvciB0aGUgQGNvZGV7Zm9vdHByaW50fSBtZXRo b2QuICBUaGUgZnVsbCBjb2RlIGxpc3RpbmcKK29mIHRoZSB4bWV0aG9kIHdv cmtlcnMgYW5kIHhtZXRob2QgbWF0Y2hlcnMgaXMgYXMgZm9sbG93czoKKwor QHNtYWxsZXhhbXBsZQorY2xhc3MgTXlUZW1wbGF0ZVdvcmtlcl9mb290cHJp bnQoZ2RiLnhtZXRob2QuWE1ldGhvZFdvcmtlcik6CisgICAgZGVmIF9faW5p dF9fKHNlbGYsIGNsYXNzX3R5cGUpOgorICAgICAgICBzZWxmLmNsYXNzX3R5 cGUgPSBjbGFzc190eXBlCisgCisgICAgZGVmIGdldF9hcmdfdHlwZXMoc2Vs Zik6CisgICAgICAgIHJldHVybiBOb25lCisgCisgICAgZGVmIF9fY2FsbF9f KHNlbGYsIG9iaik6CisgICAgICAgIHJldHVybiAoc2VsZi5jbGFzc190eXBl LnNpemVvZiArCisgICAgICAgICAgICAgICAgb2JqWydkc2l6ZV8nXSAqCisg ICAgICAgICAgICAgICAgc2VsZi5jbGFzc190eXBlLnRlbXBsYXRlX2FyZ3Vt ZW50KDApLnNpemVvZikKKyAKKyAKK2NsYXNzIE15VGVtcGxhdGVNYXRjaGVy X2Zvb3RwcmludChnZGIueG1ldGhvZC5YTWV0aG9kTWF0Y2hlcik6CisgICAg ZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICBnZGIueG1ldGhvZC5YTWV0 aG9kTWF0Y2hlci5fX2luaXRfXyhzZWxmLCAnTXlUZW1wbGF0ZU1hdGNoZXIn KQorIAorICAgIGRlZiBtYXRjaChzZWxmLCBjbGFzc190eXBlLCBtZXRob2Rf bmFtZSk6CisgICAgICAgIGlmIChyZS5tYXRjaCgnTXlUZW1wbGF0ZTxbIFx0 XG5dKltfYS16QS1aXVsgX2EtekEtWjAtOV0qPicsCisgICAgICAgICAgICAg ICAgICAgICBjbGFzc190eXBlLnRhZykgYW5kCisgICAgICAgICAgICBtZXRo b2RfbmFtZSA9PSAnZm9vdHByaW50Jyk6CisgICAgICAgICAgICByZXR1cm4g TXlUZW1wbGF0ZVdvcmtlcl9mb290cHJpbnQoY2xhc3NfdHlwZSkKK0BlbmQg c21hbGxleGFtcGxlCisKK05vdGljZSB0aGF0LCBpbiB0aGlzIGV4YW1wbGUs IHdlIGhhdmUgbm90IHVzZWQgdGhlIEBjb2Rle21ldGhvZHN9CithdHRyaWJ1 dGUgb2YgdGhlIG1hdGNoZXIgYXMgdGhlIG1hdGNoZXIgbWFuYWdlcyBvbmx5 IG9uZSB4bWV0aG9kLiAgVGhlCit1c2VyIGNhbiBlbmFibGUvZGlzYWJsZSB0 aGlzIHhtZXRob2QgYnkgZW5hYmxpbmcvZGlzYWJsaW5nIHRoZSBtYXRjaGVy CitpdHNlbGYuCisKIEBub2RlIEluZmVyaW9ycyBJbiBQeXRob24KIEBzdWJz dWJzZWN0aW9uIEluZmVyaW9ycyBJbiBQeXRob24KIEBjaW5kZXggaW5mZXJp b3JzIGluIFB5dGhvbgo= --001a11c2a05a7beb5f04faa5f314--