From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29364 invoked by alias); 22 Oct 2014 15:27:28 -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 29355 invoked by uid 89); 22 Oct 2014 15:27:28 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.7 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-qc0-f174.google.com Received: from mail-qc0-f174.google.com (HELO mail-qc0-f174.google.com) (209.85.216.174) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Wed, 22 Oct 2014 15:27:25 +0000 Received: by mail-qc0-f174.google.com with SMTP id m20so2838738qcx.33 for ; Wed, 22 Oct 2014 08:27:18 -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:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=8sFvBS++DVlflSuW5rb8WEK0T5vOf8HWNscKz1BbyUM=; b=kZsS9wFUXQ8ZtDcXGxNTLvao7P7TlwYxYPydu0WvV3adKo0w8P5biQpf7PxsLmNjXL LtIvUhdEsbXS75eoehrSzAF7zgE9wnNqGpQu2fFJJ0b2oAXhBQHUn+frYa7+lqdomMqv QLud7cBodUvDx63cYPVG1qCB0Z04epLqJoaoj6bo3avyvw0txGohoIs6Q0Yxn+HVZTtN ONO9FxUnjcpOfuMjnoVVRZV284VhXMmWb4L3qynJgVCTBDO8v7k8ghD95wFOpf8NYV5d uXfAdJW5MQpWrJStGbrCI7fSDYLd0uYWxrjOBuf4aootd9m0lxz/jG16LeZ8Yrp9Nqib Xaaw== X-Gm-Message-State: ALoCoQkOxCLTAex2ugp2LMzbFuYRdwFqNlnVuBCtVWqE0CBu5Gl/SUYo9U7iKTGKTkUNj3nFJrhM MIME-Version: 1.0 X-Received: by 10.224.11.6 with SMTP id r6mr4662413qar.42.1413991638209; Wed, 22 Oct 2014 08:27:18 -0700 (PDT) Received: by 10.229.93.203 with HTTP; Wed, 22 Oct 2014 08:27:18 -0700 (PDT) In-Reply-To: <877fzsihdr.fsf@codesourcery.com> References: <1413853021-4393-1-git-send-email-victor.kamensky@linaro.org> <1413853021-4393-5-git-send-email-victor.kamensky@linaro.org> <877fzsihdr.fsf@codesourcery.com> Date: Wed, 22 Oct 2014 15:27:00 -0000 Message-ID: Subject: Re: [PATCH 4/5] ARM: read_pieced_value do big endian processing only in case of valid gdb_regnum From: Victor Kamensky To: Yao Qi Cc: "gdb-patches@sourceware.org" Content-Type: multipart/mixed; boundary=001a11c2cc9850e0970506049509 X-SW-Source: 2014-10/txt/msg00579.txt.bz2 --001a11c2cc9850e0970506049509 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-length: 5774 Hi Yao, I've attached my notes I captured while looking at this issue. Some snippets from them repeated below inline: On 22 October 2014 02:27, Yao Qi wrote: > Victor Kamensky writes: > > Hi Victor, > Could you please add more details in the commit message? for example.... > >> During armv7b testing gdb.base/store.exp test was failling with >> 'GDB internal error'. It turns out that compiler generated DWARF > > What is the 'GDB internal error'? Is it like this? > > (gdb) PASS: gdb.base/store.exp: continue to wack_double > print l^M > gdb/regcache.c:178: internal-error: register_size: Assertion `regnum >=3D= 0 && regnum < (gdbarch_num_regs (gdbarch) + gdbarch_num_pseudo_regs (gdbar= ch))' failed.^M > A problem internal to GDB has been detected, Yes, it is like this. I'll added into commit message. > We've seen this internal error on (armv5te big-endian) for a while. > >> with non-existent register numbers. The compiler issue is present >> in both little endian (armv7) and big endian (armv7b) (it is >> separate issue). In both case gdbarch_dwarf2_reg_to_regnum returns > > Is there any PR opened for the compiler issue? If there is, please > mention it in the commit message, otherwise, please describe the > mistakes in the compiler generated debug info, the snippet of > 'readelf -wi' output, which shows the wrong register number, should be fi= ne. In both little endian and big endian cases compiler generate DW_OP_reg29- DW_OP_reg31 something like this. <2><792>: Abbrev Number: 10 (DW_TAG_formal_parameter) <793> DW_AT_name : u <795> DW_AT_decl_file : 1 <796> DW_AT_decl_line : 115 <797> DW_AT_type : <0x57c> <79b> DW_AT_location : 6 byte block: 6d 93 4 6c 93 4 (DW_OP_reg29 (r29); DW_OP_piece: 4; DW_OP_reg28 (r28); DW_OP_piece: 4) I strongly suspect that it is compiler error, but more accurately it is hard to say, because I never saw a document where for given CPU mapping from registers to DWARF reg numbers is defined. Have you seen such document for example for ARM V7? In any case for this test case Gdb believes that those register numbers are wrong. I.e we can say for sure that gcc and gdb are disagrees. >> -1 which is stored into gdb_regnum. But it cause severe problem >> only in big endian case because in read_pieced_value and >> write_pieced_value functions BFD_ENDIAN_BIG related processing >> happen regardless of gdb_regnum value, and in case of gdb_regnum=3D-1, >> it cause 'GDB internal error' and crash. >> >> Solution is to move BFD_ENDIAN_BIG related processing under >> (gdb_regnum !=3D -1) branch of processing. > > With your patch applied, the internal error is fixed. How does GDB > behave now? What is the output for 'print l'? In my case, it becomes: > > print l^M > Unable to access DWARF register number 80^M > (gdb) FAIL: gdb.base/store.exp: upvar float l; print old l, expecting -1 Yes it becomes the same as little endian result for the same test case. The only issue addressed by patch that it makes big endian case behave consistently with little endian - i.e don't do register_size call for unkno= wn register number >> --- >> gdb/ChangeLog | 6 ++++++ >> gdb/dwarf2loc.c | 30 +++++++++++++++--------------- >> 2 files changed, 21 insertions(+), 15 deletions(-) >> >> diff --git a/gdb/ChangeLog b/gdb/ChangeLog >> index c32fb3f..6a735b8 100644 >> --- a/gdb/ChangeLog >> +++ b/gdb/ChangeLog >> @@ -1,5 +1,11 @@ >> 2014-10-13 Victor Kamensky >> >> + * dwarf2loc.c (read_pieced_value): do BE processing only if >> + gdb_regnum is not -1. > > s/do/Do. Looks you've fixed it in V2. > s/BE/big endian/ because BE isn't very clear here. > >> + (write_pieced_value): Ditto. >> + >> +2014-10-13 Victor Kamensky >> + >> * arm-tdep.c: (extract_arm_insn): use dbarch_byte_order_for_code >> to read arm instruction. >> >> diff --git a/gdb/dwarf2loc.c b/gdb/dwarf2loc.c >> index e347e59..fbe99bb 100644 >> --- a/gdb/dwarf2loc.c >> +++ b/gdb/dwarf2loc.c >> @@ -1686,20 +1686,20 @@ read_pieced_value (struct value *v) >> int gdb_regnum =3D gdbarch_dwarf2_reg_to_regnum (arch, p->v.re= gno); >> int reg_offset =3D source_offset; >> >> - if (gdbarch_byte_order (arch) =3D=3D BFD_ENDIAN_BIG >> - && this_size < register_size (arch, gdb_regnum)) >> - { >> - /* Big-endian, and we want less than full size. */ >> - reg_offset =3D register_size (arch, gdb_regnum) - this_siz= e; >> - /* We want the lower-order THIS_SIZE_BITS of the bytes >> - we extract from the register. */ >> - source_offset_bits +=3D 8 * this_size - this_size_bits; >> - } >> - >> if (gdb_regnum !=3D -1) >> { >> int optim, unavail; >> >> + if (gdbarch_byte_order (arch) =3D=3D BFD_ENDIAN_BIG >> + && this_size < register_size (arch, gdb_regnum)) >> + { >> + /* Big-endian, and we want less than full size. */ >> + reg_offset =3D register_size (arch, gdb_regnum) - this= _size; >> + /* We want the lower-order THIS_SIZE_BITS of the bytes >> + we extract from the register. */ >> + source_offset_bits +=3D 8 * this_size - this_size_bits; >> + } >> + > > Nit: after the change, local variable 'reg_offset' is only used in the > "if (gdb_regnum !=3D -1) {}" block, so we can move 'reg_offset' into that > block. Ok, I'll make this change too. I'll update comment note with details and repost the patch. Thanks, Victor > -- > Yao (=E9=BD=90=E5=B0=A7) --001a11c2cc9850e0970506049509 Content-Type: text/plain; charset=US-ASCII; name="gdb_armv7ab_badregnum.txt" Content-Disposition: attachment; filename="gdb_armv7ab_badregnum.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i1kt5udd0 Content-length: 22526 CihnZGIpIGZpbGUgL3dkMS9nZGIvMjAxNDA5MzAvYnVpbGQtdjdsZS9nZGIv dGVzdHN1aXRlL2dkYi5iYXNlL3N0b3JlClJlYWRpbmcgc3ltYm9scyBmcm9t IC93ZDEvZ2RiLzIwMTQwOTMwL2J1aWxkLXY3bGUvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYmFzZS9zdG9yZS4uLmRvbmUuCihnZGIpIHRicmVhayB3YWNrX2RvdWJs ZQpUZW1wb3JhcnkgYnJlYWtwb2ludCAxIGF0IDB4MTA3NmM6IGZpbGUgLi4v Li4vLi4vYmludXRpbHMtZ2RiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvc3Rv cmUuYywgbGluZSAxMTcuCihnZGIpIHJ1bgpTdGFydGluZyBwcm9ncmFtOiAv d2QxL2dkYi8yMDE0MDkzMC9idWlsZC12N2xlL2dkYi90ZXN0c3VpdGUvZ2Ri LmJhc2Uvc3RvcmUgCgpUZW1wb3JhcnkgYnJlYWtwb2ludCAxLCB3YWNrX2Rv dWJsZSAodT0KLi4vLi4vYmludXRpbHMtZ2RiL2dkYi9yZWdjYWNoZS5jOjE3 NzogaW50ZXJuYWwtZXJyb3I6IHJlZ2lzdGVyX3NpemU6IEFzc2VydGlvbiBg cmVnbnVtID49IDAgJiYgcmVnbnVtIDwgKGdkYmFyY2hfbnVtX3JlZ3MgKGdk YmFyY2gpICsgZ2RiYXJjaF9udW1fcHNldWRvX3JlZ3MgKGdkYmFyY2gpKScg ZmFpbGVkLgpBIHByb2JsZW0gaW50ZXJuYWwgdG8gR0RCIGhhcyBiZWVuIGRl dGVjdGVkLApmdXJ0aGVyIGRlYnVnZ2luZyBtYXkgcHJvdmUgdW5yZWxpYWJs ZS4KCgpCRSBEdW1wCj09PT09PT0KCgogPDE+PDc3OT46IEFiYnJldiBOdW1i ZXI6IDEyIChEV19UQUdfc3VicHJvZ3JhbSkKICAgIDw3N2E+ICAgRFdfQVRf ZXh0ZXJuYWwgICAgOiAxICAgICAgIAogICAgPDc3YT4gICBEV19BVF9uYW1l ICAgICAgICA6IChpbmRpcmVjdCBzdHJpbmcsIG9mZnNldDogMHgzYzkpOiB3 YWNrX2RvdWJsZSAgIAogICAgPDc3ZT4gICBEV19BVF9kZWNsX2ZpbGUgICA6 IDEgICAgICAgCiAgICA8NzdmPiAgIERXX0FUX2RlY2xfbGluZSAgIDogMTE1 ICAgICAKICAgIDw3ODA+ICAgRFdfQVRfcHJvdG90eXBlZCAgOiAxICAgICAg IAogICAgPDc4MD4gICBEV19BVF90eXBlICAgICAgICA6IDwweDU3Yz4gCiAg ICA8Nzg0PiAgIERXX0FUX2xvd19wYyAgICAgIDogMHgxMDc1OCAKICAgIDw3 ODg+ICAgRFdfQVRfaGlnaF9wYyAgICAgOiAweDQwICAgIAogICAgPDc4Yz4g ICBEV19BVF9mcmFtZV9iYXNlICA6IDEgYnl0ZSBibG9jazogOWMgICAgICAg IChEV19PUF9jYWxsX2ZyYW1lX2NmYSkKICAgIDw3OGU+ICAgRFdfQVRfR05V X2FsbF90YWlsX2NhbGxfc2l0ZXM6IDEgICAgCiAgICA8NzhlPiAgIERXX0FU X3NpYmxpbmcgICAgIDogPDB4N2Q3PiAKIDwyPjw3OTI+OiBBYmJyZXYgTnVt YmVyOiAxMCAoRFdfVEFHX2Zvcm1hbF9wYXJhbWV0ZXIpCiAgICA8NzkzPiAg IERXX0FUX25hbWUgICAgICAgIDogdSAgICAgICAKICAgIDw3OTU+ICAgRFdf QVRfZGVjbF9maWxlICAgOiAxICAgICAgIAogICAgPDc5Nj4gICBEV19BVF9k ZWNsX2xpbmUgICA6IDExNSAgICAgCiAgICA8Nzk3PiAgIERXX0FUX3R5cGUg ICAgICAgIDogPDB4NTdjPiAKICAgIDw3OWI+ICAgRFdfQVRfbG9jYXRpb24g ICAgOiA2IGJ5dGUgYmxvY2s6IDZkIDkzIDQgNmMgOTMgNCAgIChEV19PUF9y ZWcyOSAocjI5KTsgRFdfT1BfcGllY2U6IDQ7IERXX09QX3JlZzI4IChyMjgp OyBEV19PUF9waWVjZTogNCkKIDwyPjw3YTI+OiBBYmJyZXYgTnVtYmVyOiAx MCAoRFdfVEFHX2Zvcm1hbF9wYXJhbWV0ZXIpCiAgICA8N2EzPiAgIERXX0FU X25hbWUgICAgICAgIDogdiAgICAgICAKICAgIDw3YTU+ICAgRFdfQVRfZGVj bF9maWxlICAgOiAxICAgICAgIAogICAgPDdhNj4gICBEV19BVF9kZWNsX2xp bmUgICA6IDExNSAgICAgCiAgICA8N2E3PiAgIERXX0FUX3R5cGUgICAgICAg IDogPDB4NTdjPiAKICAgIDw3YWI+ICAgRFdfQVRfbG9jYXRpb24gICAgOiA2 IGJ5dGUgYmxvY2s6IDZmIDkzIDQgNmUgOTMgNCAgIChEV19PUF9yZWczMSAo cjMxKTsgRFdfT1BfcGllY2U6IDQ7IERXX09QX3JlZzMwIChyMzApOyBEV19P UF9waWVjZTogNCkKIDwyPjw3YjI+OiBBYmJyZXYgTnVtYmVyOiAxMyAoRFdf VEFHX3ZhcmlhYmxlKQogICAgPDdiMz4gICBEV19BVF9uYW1lICAgICAgICA6 IGwgICAgICAgCiAgICA8N2I1PiAgIERXX0FUX2RlY2xfZmlsZSAgIDogMSAg ICAgICAKICAgIDw3YjY+ICAgRFdfQVRfZGVjbF9saW5lICAgOiAxMTcgICAg IAogICAgPDdiNz4gICBEV19BVF90eXBlICAgICAgICA6IDwweDU3Yz4gCiAg ICA8N2JiPiAgIERXX0FUX2xvY2F0aW9uICAgIDogOCBieXRlIGJsb2NrOiA5 MCAyMSA5MyA0IDkwIDIwIDkzIDQgICAgIChEV19PUF9yZWd4OiAzMyAocjMz KTsgRFdfT1BfcGllY2U6IDQ7IERXX09QX3JlZ3g6IDMyIChyMzIpOyBEV19P UF9waWVjZTogNCkKIDwyPjw3YzQ+OiBBYmJyZXYgTnVtYmVyOiAxMyAoRFdf VEFHX3ZhcmlhYmxlKQogICAgPDdjNT4gICBEV19BVF9uYW1lICAgICAgICA6 IHIgICAgICAgCiAgICA8N2M3PiAgIERXX0FUX2RlY2xfZmlsZSAgIDogMSAg ICAgICAKICAgIDw3Yzg+ICAgRFdfQVRfZGVjbF9saW5lICAgOiAxMTcgICAg IAogICAgPDdjOT4gICBEV19BVF90eXBlICAgICAgICA6IDwweDU3Yz4gCiAg ICA8N2NkPiAgIERXX0FUX2xvY2F0aW9uICAgIDogOCBieXRlIGJsb2NrOiA5 MCAyMyA5MyA0IDkwIDIyIDkzIDQgICAgIChEV19PUF9yZWd4OiAzNSAocjM1 KTsgRFdfT1BfcGllY2U6IDQ7IERXX09QX3JlZ3g6IDM0IChyMzQpOyBEV19P UF9waWVjZTogNCkKCkxFIER1bXAKPT09PT09PQoKIDwxPjw3Nzc+OiBBYmJy ZXYgTnVtYmVyOiAxMiAoRFdfVEFHX3N1YnByb2dyYW0pCiAgICA8Nzc4PiAg IERXX0FUX2V4dGVybmFsICAgIDogMSAgICAgICAKICAgIDw3Nzg+ICAgRFdf QVRfbmFtZSAgICAgICAgOiAoaW5kaXJlY3Qgc3RyaW5nLCBvZmZzZXQ6IDB4 M2M5KTogd2Fja19kb3VibGUgICAKICAgIDw3N2M+ICAgRFdfQVRfZGVjbF9m aWxlICAgOiAxICAgICAgIAogICAgPDc3ZD4gICBEV19BVF9kZWNsX2xpbmUg ICA6IDExNSAgICAgCiAgICA8NzdlPiAgIERXX0FUX3Byb3RvdHlwZWQgIDog MSAgICAgICAKICAgIDw3N2U+ICAgRFdfQVRfdHlwZSAgICAgICAgOiA8MHg1 N2E+IAogICAgPDc4Mj4gICBEV19BVF9sb3dfcGMgICAgICA6IDB4MTA3NTgg CiAgICA8Nzg2PiAgIERXX0FUX2hpZ2hfcGMgICAgIDogMHg0MCAgICAKICAg IDw3OGE+ICAgRFdfQVRfZnJhbWVfYmFzZSAgOiAxIGJ5dGUgYmxvY2s6IDlj ICAgICAgICAoRFdfT1BfY2FsbF9mcmFtZV9jZmEpCiAgICA8NzhjPiAgIERX X0FUX0dOVV9hbGxfdGFpbF9jYWxsX3NpdGVzOiAxICAgIAogICAgPDc4Yz4g ICBEV19BVF9zaWJsaW5nICAgICA6IDwweDdkNT4gCiA8Mj48NzkwPjogQWJi cmV2IE51bWJlcjogMTAgKERXX1RBR19mb3JtYWxfcGFyYW1ldGVyKQogICAg PDc5MT4gICBEV19BVF9uYW1lICAgICAgICA6IHUgICAgICAgCiAgICA8Nzkz PiAgIERXX0FUX2RlY2xfZmlsZSAgIDogMSAgICAgICAKICAgIDw3OTQ+ICAg RFdfQVRfZGVjbF9saW5lICAgOiAxMTUgICAgIAogICAgPDc5NT4gICBEV19B VF90eXBlICAgICAgICA6IDwweDU3YT4gCiAgICA8Nzk5PiAgIERXX0FUX2xv Y2F0aW9uICAgIDogNiBieXRlIGJsb2NrOiA2YyA5MyA0IDZkIDkzIDQgICAo RFdfT1BfcmVnMjggKHIyOCk7IERXX09QX3BpZWNlOiA0OyBEV19PUF9yZWcy OSAocjI5KTsgRFdfT1BfcGllY2U6IDQpCiA8Mj48N2EwPjogQWJicmV2IE51 bWJlcjogMTAgKERXX1RBR19mb3JtYWxfcGFyYW1ldGVyKQogICAgPDdhMT4g ICBEV19BVF9uYW1lICAgICAgICA6IHYgICAgICAgCiAgICA8N2EzPiAgIERX X0FUX2RlY2xfZmlsZSAgIDogMSAgICAgICAKICAgIDw3YTQ+ICAgRFdfQVRf ZGVjbF9saW5lICAgOiAxMTUgICAgIAogICAgPDdhNT4gICBEV19BVF90eXBl ICAgICAgICA6IDwweDU3YT4gCiAgICA8N2E5PiAgIERXX0FUX2xvY2F0aW9u ICAgIDogNiBieXRlIGJsb2NrOiA2ZSA5MyA0IDZmIDkzIDQgICAoRFdfT1Bf cmVnMzAgKHIzMCk7IERXX09QX3BpZWNlOiA0OyBEV19PUF9yZWczMSAocjMx KTsgRFdfT1BfcGllY2U6IDQpCiA8Mj48N2IwPjogQWJicmV2IE51bWJlcjog MTMgKERXX1RBR192YXJpYWJsZSkKICAgIDw3YjE+ICAgRFdfQVRfbmFtZSAg ICAgICAgOiBsICAgICAgIAogICAgPDdiMz4gICBEV19BVF9kZWNsX2ZpbGUg ICA6IDEgICAgICAgCiAgICA8N2I0PiAgIERXX0FUX2RlY2xfbGluZSAgIDog MTE3ICAgICAKICAgIDw3YjU+ICAgRFdfQVRfdHlwZSAgICAgICAgOiA8MHg1 N2E+IAogICAgPDdiOT4gICBEV19BVF9sb2NhdGlvbiAgICA6IDggYnl0ZSBi bG9jazogOTAgMjAgOTMgNCA5MCAyMSA5MyA0ICAgICAoRFdfT1BfcmVneDog MzIgKHIzMik7IERXX09QX3BpZWNlOiA0OyBEV19PUF9yZWd4OiAzMyAocjMz KTsgRFdfT1BfcGllY2U6IDQpCiA8Mj48N2MyPjogQWJicmV2IE51bWJlcjog MTMgKERXX1RBR192YXJpYWJsZSkKICAgIDw3YzM+ICAgRFdfQVRfbmFtZSAg ICAgICAgOiByICAgICAgIAogICAgPDdjNT4gICBEV19BVF9kZWNsX2ZpbGUg ICA6IDEgICAgICAgCiAgICA8N2M2PiAgIERXX0FUX2RlY2xfbGluZSAgIDog MTE3ICAgICAKICAgIDw3Yzc+ICAgRFdfQVRfdHlwZSAgICAgICAgOiA8MHg1 N2E+IAogICAgPDdjYj4gICBEV19BVF9sb2NhdGlvbiAgICA6IDggYnl0ZSBi bG9jazogOTAgMjIgOTMgNCA5MCAyMyA5MyA0ICAgICAoRFdfT1BfcmVneDog MzQgKHIzNCk7IERXX09QX3BpZWNlOiA0OyBEV19PUF9yZWd4OiAzNSAocjM1 KTsgRFdfT1BfcGllY2U6IDQpCgoKQmFja3RyYWNlIHdoZW4gaXQgZmFpbGVk IHRvIGdldCByZWcgbnVtYmVyCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQoKKGdkYikgbgo0MjA3CSAgaWYgKHJlZyA+PSAy NTYgJiYgcmVnIDw9IDI4NykKKGdkYikgbgo0MjE2CSAgcmV0dXJuIC0xOwoo Z2RiKSBidAojMCAgYXJtX2R3YXJmX3JlZ190b19yZWdudW0gKGdkYmFyY2g9 MHgyNDA0M2EwLCByZWc9MjkpIGF0IC4uLy4uL2JpbnV0aWxzLWdkYi9nZGIv YXJtLXRkZXAuYzo0MjE2CiMxICAweDAwMjBkNDMwIGluIHJlYWRfcGllY2Vk X3ZhbHVlICh2PTB4NmMwOCkgYXQgLi4vLi4vYmludXRpbHMtZ2RiL2dkYi9k d2FyZjJsb2MuYzoxNjg2CiMyICAweDAwMTQ0ZDdjIGluIHZhbHVlX2ZldGNo X2xhenkgKHZhbD0weDI2MzVlMDgpIGF0IC4uLy4uL2JpbnV0aWxzLWdkYi9n ZGIvdmFsdWUuYzozODk1CiMzICAweDAwMTQ1M2IwIGluIHZhbHVlX2VudGly ZWx5X2NvdmVyZWRfYnlfcmFuZ2VfdmVjdG9yICh2YWx1ZT0weDI2MzVlMDgs IHJhbmdlcz0weDI2MzVlNWMpCiAgICBhdCAuLi8uLi9iaW51dGlscy1nZGIv Z2RiL3ZhbHVlLmM6MzkyCiM0ICAweDAwMTU2ODM0IGluIHZhbHVlX2NoZWNr X3ByaW50YWJsZSAodmFsPXZhbEBlbnRyeT0weDI2MzVlMDgsIHN0cmVhbT1z dHJlYW1AZW50cnk9MHgyNDI4MGM4LCBvcHRpb25zPTB4YmVlOGUzZWMpCiAg ICBhdCAuLi8uLi9iaW51dGlscy1nZGIvZ2RiL3ZhbHByaW50LmM6ODEwCiM1 ICAweDAwMTU2YmJjIGluIGNvbW1vbl92YWxfcHJpbnQgKHZhbD0weDI2MzVl MDgsIHN0cmVhbT0weDI0MjgwYzgsIHN0cmVhbUBlbnRyeT0weDRmNTA1Zjcy LCByZWN1cnNlPXJlY3Vyc2VAZW50cnk9MiwgCiAgICBvcHRpb25zPTB4YmVl OGUzZWMsIG9wdGlvbnNAZW50cnk9MHhiZWU4ZTNlNCwgbGFuZ3VhZ2U9bGFu Z3VhZ2VAZW50cnk9MHgzYjk3OWMgPGNfbGFuZ3VhZ2VfZGVmbj4pCiAgICBh dCAuLi8uLi9iaW51dGlscy1nZGIvZ2RiL3ZhbHByaW50LmM6ODQ5CiM2ICAw eDAwMTg5Y2JjIGluIHByaW50X2ZyYW1lX2FyZyAoYXJnPTB4MjA0NDU3NWYp IGF0IC4uLy4uL2JpbnV0aWxzLWdkYi9nZGIvc3RhY2suYzoyODYKIzcgIDB4 MDAxOGFhMDQgaW4gcHJpbnRfZnJhbWVfYXJncyAoZnVuYz08b3B0aW1pemVk IG91dD4sIGZyYW1lPTB4MCwgZnJhbWVAZW50cnk9MHgyMmY3NGE4LCBudW09 MzY2NjQ0ODgsIG51bUBlbnRyeT0tMSwgCiAgICBzdHJlYW09MHhmZmZmZmZm ZikgYXQgLi4vLi4vYmludXRpbHMtZ2RiL2dkYi9zdGFjay5jOjY3NAojOCAg MHgwMDE4YjNmMCBpbiBwcmludF9mcmFtZSAoZnJhbWU9ZnJhbWVAZW50cnk9 MHgyMmY3NGE4LCBwcmludF9sZXZlbD1wcmludF9sZXZlbEBlbnRyeT00MzMx NDAwLCAKICAgIHByaW50X3doYXQ9cHJpbnRfd2hhdEBlbnRyeT1TUkNfQU5E X0xPQywgcHJpbnRfYXJncz1wcmludF9hcmdzQGVudHJ5PTEsIHNhbD0uLi4p IGF0IC4uLy4uL2JpbnV0aWxzLWdkYi9nZGIvc3RhY2suYzoxMjA1CiM5ICAw eDAwMThiOGJjIGluIHByaW50X2ZyYW1lX2luZm8gKGZyYW1lPTB4MjJmNzRh OCwgZnJhbWVAZW50cnk9MHgxLCBwcmludF9sZXZlbD1wcmludF9sZXZlbEBl bnRyeT00MzMxNDAwLCAKICAgIHByaW50X3doYXQ9U1JDX0FORF9MT0MsIHBy aW50X3doYXRAZW50cnk9MzY2NjQ0ODgsIHByaW50X2FyZ3M9cHJpbnRfYXJn c0BlbnRyeT0xLCBzZXRfY3VycmVudF9zYWw9c2V0X2N1cnJlbnRfc2FsQGVu dHJ5PTEpCiAgICBhdCAuLi8uLi9iaW51dGlscy1nZGIvZ2RiL3N0YWNrLmM6 ODU3CiMxMCAweDAwMThiYWFjIGluIHByaW50X3N0YWNrX2ZyYW1lIChmcmFt ZT0weDEsIHByaW50X2xldmVsPTQzMzE0MDAsIHByaW50X2xldmVsQGVudHJ5 PTAsIHByaW50X3doYXQ9MzY2NjQ0ODgsIAogICAgcHJpbnRfd2hhdEBlbnRy eT1TUkNfQU5EX0xPQywgc2V0X2N1cnJlbnRfc2FsPTAsIHNldF9jdXJyZW50 X3NhbEBlbnRyeT0xKSBhdCAuLi8uLi9iaW51dGlscy1nZGIvZ2RiL3N0YWNr LmM6MTY2CiMxMSAweDAwMTdmZmU4IGluIHByaW50X3N0b3BfZXZlbnQgKHdz PXdzQGVudHJ5PTB4YmVlOGU2YjgpIGF0IC4uLy4uL2JpbnV0aWxzLWdkYi9n ZGIvaW5mcnVuLmM6NjI4MAojMTIgMHgwMDE4MDRjOCBpbiBub3JtYWxfc3Rv cCAoKSBhdCAuLi8uLi9iaW51dGlscy1nZGIvZ2RiL2luZnJ1bi5jOjY0MjYK IzEzIDB4MDAxODYzMDQgaW4gZmV0Y2hfaW5mZXJpb3JfZXZlbnQgKGNsaWVu dF9kYXRhPWNsaWVudF9kYXRhQGVudHJ5PTB4MCkgYXQgLi4vLi4vYmludXRp bHMtZ2RiL2dkYi9pbmZydW4uYzozMTQ5CiMxNCAweDAwMTliYzA4IGluIGlu ZmVyaW9yX2V2ZW50X2hhbmRsZXIgKGV2ZW50X3R5cGU9SU5GX1JFR19FVkVO VCwgY2xpZW50X2RhdGE9MHgwKSBhdCAuLi8uLi9iaW51dGlscy1nZGIvZ2Ri L2luZi1sb29wLmM6NTgKIzE1IDB4MDAxOTlkZmMgaW4gcHJvY2Vzc19ldmVu dCAoKSBhdCAuLi8uLi9iaW51dGlscy1nZGIvZ2RiL2V2ZW50LWxvb3AuYzoz NDAKIzE2IDB4MDAxOWEyMDQgaW4gZ2RiX2RvX29uZV9ldmVudCAoKSBhdCAu Li8uLi9iaW51dGlscy1nZGIvZ2RiL2V2ZW50LWxvb3AuYzozOTIKIzE3IDB4 MDAxOWE0MDAgaW4gc3RhcnRfZXZlbnRfbG9vcCAoKSBhdCAuLi8uLi9iaW51 dGlscy1nZGIvZ2RiL2V2ZW50LWxvb3AuYzo0MjkKIzE4IDB4MDAxOTNlZDQg aW4gY2FwdHVyZWRfY29tbWFuZF9sb29wIChkYXRhPTxvcHRpbWl6ZWQgb3V0 PikgYXQgLi4vLi4vYmludXRpbHMtZ2RiL2dkYi9tYWluLmM6MzIzCiMxOSAw eDAwMTkwZWE0IGluIGNhdGNoX2Vycm9ycyAoZnVuYz0weDIyYjAxZDgsIGZ1 bmNAZW50cnk9MHgxOTNlYmMgPGNhcHR1cmVkX2NvbW1hbmRfbG9vcD4sIAog ICAgZnVuY19hcmdzPTB4NDE3ZmU4IDxjbGVhbnVwX2NoYWluPiwgZnVuY19h cmdzQGVudHJ5PTB4MCwgZXJyc3RyaW5nPTB4MCwgZXJyc3RyaW5nQGVudHJ5 PTB4Mzg3ZmM4ICIiLCBtYXNrPTM3NTMyMDA4LCAKICAgIG1hc2tAZW50cnk9 UkVUVVJOX01BU0tfQUxMKSBhdCAuLi8uLi9iaW51dGlscy1nZGIvZ2RiL2V4 Y2VwdGlvbnMuYzoyMzcKIzIwIDB4MDAxOTUxNjggaW4gY2FwdHVyZWRfbWFp biAoZGF0YT08b3B0aW1pemVkIG91dD4pIGF0IC4uLy4uL2JpbnV0aWxzLWdk Yi9nZGIvbWFpbi5jOjExNTEKIzIxIDB4MDAxOTBlYTQgaW4gY2F0Y2hfZXJy b3JzIChmdW5jPTB4YjZmMDI4MDAsIGZ1bmNAZW50cnk9MHgxOTQ0MDQgPGNh cHR1cmVkX21haW4+LCBmdW5jX2FyZ3M9MHgwLCAKICAgIGZ1bmNfYXJnc0Bl bnRyeT0weGJlZThlOTE0LCBlcnJzdHJpbmc9MHhiZWU4ZTkxYyAiIiwgZXJy c3RyaW5nQGVudHJ5PTB4Mzg3ZmM4ICIiLCBtYXNrPTQyOTkxNDAsIG1hc2tA ZW50cnk9UkVUVVJOX01BU0tfQUxMKQogICAgYXQgLi4vLi4vYmludXRpbHMt Z2RiL2dkYi9leGNlcHRpb25zLmM6MjM3CiMyMiAweDAwMTk1NjU4IGluIGdk Yl9tYWluIChhcmdzPWFyZ3NAZW50cnk9MHhiZWU4ZTkxNCkgYXQgLi4vLi4v YmludXRpbHMtZ2RiL2dkYi9tYWluLmM6MTE1OQojMjMgMHgwMDA1ZjIyMCBp biBtYWluIChhcmdjPTxvcHRpbWl6ZWQgb3V0PiwgYXJndj08b3B0aW1pemVk IG91dD4pIGF0IC4uLy4uL2JpbnV0aWxzLWdkYi9nZGIvZ2RiLmM6MzIKCkxh dHRlciBpdCBoaXRzIGFzc2VydCBpbiByZWdpc3Rlcl9zaXplCgojMCAgMHhi NmE5ZDM1NCBpbiBfX0dJX3JhaXNlIChzaWc9c2lnQGVudHJ5PTYpIGF0IC4u L25wdGwvc3lzZGVwcy91bml4L3N5c3YvbGludXgvcmFpc2UuYzo1NgojMSAg MHhiNmFhMGViNCBpbiBfX0dJX2Fib3J0ICgpIGF0IGFib3J0LmM6ODkKIzIg IDB4MDAyNWI0ODAgaW4gZHVtcF9jb3JlICgpIGF0IC4uLy4uL2JpbnV0aWxz LWdkYi9nZGIvdXRpbHMuYzo1NzgKIzMgIDB4MDAyNWQ0NDggaW4gaW50ZXJu YWxfdnByb2JsZW0gKHByb2JsZW09MHhiNmJhYzBhYyA8bG9jaz4sIHByb2Js ZW1AZW50cnk9MHg0MTlhNzggPGludGVybmFsX2Vycm9yX3Byb2JsZW0+LCAK ICAgIGZpbGU9ZmlsZUBlbnRyeT0weDM3MzU4YyAiLi4vLi4vYmludXRpbHMt Z2RiL2dkYi9yZWdjYWNoZS5jIiwgbGluZT1saW5lQGVudHJ5PTE3NywgZm10 PWZtdEBlbnRyeT0weDAsIGFwPS4uLikKICAgIGF0IC4uLy4uL2JpbnV0aWxz LWdkYi9nZGIvdXRpbHMuYzo3ODYKIzQgIDB4MDAyNWQ1MTggaW4gaW50ZXJu YWxfdmVycm9yIChmaWxlPWZpbGVAZW50cnk9MHgzNzM1OGMgIi4uLy4uL2Jp bnV0aWxzLWdkYi9nZGIvcmVnY2FjaGUuYyIsIGxpbmU9bGluZUBlbnRyeT0x NzcsIAogICAgZm10PWZtdEBlbnRyeT0weDAsIGFwPS4uLiwgYXBAZW50cnk9 Li4uKSBhdCAuLi8uLi9iaW51dGlscy1nZGIvZ2RiL3V0aWxzLmM6ODEyCiM1 ICAweDAwMjhmMTUwIGluIGludGVybmFsX2Vycm9yIChmaWxlPWZpbGVAZW50 cnk9MHgzNzM1OGMgIi4uLy4uL2JpbnV0aWxzLWdkYi9nZGIvcmVnY2FjaGUu YyIsIGxpbmU9bGluZUBlbnRyeT0xNzcsIAogICAgZm10PTB4MzMxOTA0ICIl czogQXNzZXJ0aW9uIGAlcycgZmFpbGVkLiIpIGF0IC4uLy4uL2JpbnV0aWxz LWdkYi9nZGIvY29tbW9uL2Vycm9ycy5jOjU1CiM2ICAweDAwMTM3NTU4IGlu IHJlZ2lzdGVyX3NpemUgKGdkYmFyY2g9Z2RiYXJjaEBlbnRyeT0weDI0MDQz YTAsIHJlZ251bT0tMSwgcmVnbnVtQGVudHJ5PTM3ODA0ODcyKQogICAgYXQg Li4vLi4vYmludXRpbHMtZ2RiL2dkYi9yZWdjYWNoZS5jOjE3NQojNyAgMHgw MDIwZDU5MCBpbiByZWFkX3BpZWNlZF92YWx1ZSAodj0weDZjMDgpIGF0IC4u Ly4uL2JpbnV0aWxzLWdkYi9nZGIvZHdhcmYybG9jLmM6MTY5MAojOCAgMHgw MDE0NGQ3YyBpbiB2YWx1ZV9mZXRjaF9sYXp5ICh2YWw9MHgyNjM1ZTA4KSBh dCAuLi8uLi9iaW51dGlscy1nZGIvZ2RiL3ZhbHVlLmM6Mzg5NQojOSAgMHgw MDE0NTNiMCBpbiB2YWx1ZV9lbnRpcmVseV9jb3ZlcmVkX2J5X3JhbmdlX3Zl Y3RvciAodmFsdWU9MHgyNjM1ZTA4LCByYW5nZXM9MHgyNjM1ZTVjKQogICAg YXQgLi4vLi4vYmludXRpbHMtZ2RiL2dkYi92YWx1ZS5jOjM5MgojMTAgMHgw MDE1NjgzNCBpbiB2YWx1ZV9jaGVja19wcmludGFibGUgKHZhbD12YWxAZW50 cnk9MHgyNjM1ZTA4LCBzdHJlYW09c3RyZWFtQGVudHJ5PTB4MjQyODBjOCwg b3B0aW9ucz0weGJlZThlM2VjKQogICAgYXQgLi4vLi4vYmludXRpbHMtZ2Ri L2dkYi92YWxwcmludC5jOjgxMAojMTEgMHgwMDE1NmJiYyBpbiBjb21tb25f dmFsX3ByaW50ICh2YWw9MHgyNjM1ZTA4LCBzdHJlYW09MHgyNDI4MGM4LCBz dHJlYW1AZW50cnk9MHg0ZjUwNWY3MiwgcmVjdXJzZT1yZWN1cnNlQGVudHJ5 PTIsIAogICAgb3B0aW9ucz0weGJlZThlM2VjLCBvcHRpb25zQGVudHJ5PTB4 YmVlOGUzZTQsIGxhbmd1YWdlPWxhbmd1YWdlQGVudHJ5PTB4M2I5NzljIDxj X2xhbmd1YWdlX2RlZm4+KQogICAgYXQgLi4vLi4vYmludXRpbHMtZ2RiL2dk Yi92YWxwcmludC5jOjg0OQojMTIgMHgwMDE4OWNiYyBpbiBwcmludF9mcmFt ZV9hcmcgKGFyZz0weDIwNDQ1NzVmKSBhdCAuLi8uLi9iaW51dGlscy1nZGIv Z2RiL3N0YWNrLmM6Mjg2CiMxMyAweDAwMThhYTA0IGluIHByaW50X2ZyYW1l X2FyZ3MgKGZ1bmM9PG9wdGltaXplZCBvdXQ+LCBmcmFtZT0weDAsIGZyYW1l QGVudHJ5PTB4MjJmNzRhOCwgbnVtPTM2NjY0NDg4LCBudW1AZW50cnk9LTEs IAogICAgc3RyZWFtPTB4ZmZmZmZmZmYpIGF0IC4uLy4uL2JpbnV0aWxzLWdk Yi9nZGIvc3RhY2suYzo2NzQKIzE0IDB4MDAxOGIzZjAgaW4gcHJpbnRfZnJh bWUgKGZyYW1lPWZyYW1lQGVudHJ5PTB4MjJmNzRhOCwgcHJpbnRfbGV2ZWw9 cHJpbnRfbGV2ZWxAZW50cnk9NDMzMTQwMCwgCiAgICBwcmludF93aGF0PXBy aW50X3doYXRAZW50cnk9U1JDX0FORF9MT0MsIHByaW50X2FyZ3M9cHJpbnRf YXJnc0BlbnRyeT0xLCBzYWw9Li4uKSBhdCAuLi8uLi9iaW51dGlscy1nZGIv Z2RiL3N0YWNrLmM6MTIwNQojMTUgMHgwMDE4YjhiYyBpbiBwcmludF9mcmFt ZV9pbmZvIChmcmFtZT0weDIyZjc0YTgsIGZyYW1lQGVudHJ5PTB4MSwgcHJp bnRfbGV2ZWw9cHJpbnRfbGV2ZWxAZW50cnk9NDMzMTQwMCwgCiAgICBwcmlu dF93aGF0PVNSQ19BTkRfTE9DLCBwcmludF93aGF0QGVudHJ5PTM2NjY0NDg4 LCBwcmludF9hcmdzPXByaW50X2FyZ3NAZW50cnk9MSwgc2V0X2N1cnJlbnRf c2FsPXNldF9jdXJyZW50X3NhbEBlbnRyeT0xKQogICAgYXQgLi4vLi4vYmlu dXRpbHMtZ2RiL2dkYi9zdGFjay5jOjg1NwojMTYgMHgwMDE4YmFhYyBpbiBw cmludF9zdGFja19mcmFtZSAoZnJhbWU9MHgxLCBwcmludF9sZXZlbD00MzMx NDAwLCBwcmludF9sZXZlbEBlbnRyeT0wLCBwcmludF93aGF0PTM2NjY0NDg4 LCAKICAgIHByaW50X3doYXRAZW50cnk9U1JDX0FORF9MT0MsIHNldF9jdXJy ZW50X3NhbD0wLCBzZXRfY3VycmVudF9zYWxAZW50cnk9MSkgYXQgLi4vLi4v YmludXRpbHMtZ2RiL2dkYi9zdGFjay5jOjE2NgojMTcgMHgwMDE3ZmZlOCBp biBwcmludF9zdG9wX2V2ZW50ICh3cz13c0BlbnRyeT0weGJlZThlNmI4KSBh dCAuLi8uLi9iaW51dGlscy1nZGIvZ2RiL2luZnJ1bi5jOjYyODAKIzE4IDB4 MDAxODA0YzggaW4gbm9ybWFsX3N0b3AgKCkgYXQgLi4vLi4vYmludXRpbHMt Z2RiL2dkYi9pbmZydW4uYzo2NDI2CiMxOSAweDAwMTg2MzA0IGluIGZldGNo X2luZmVyaW9yX2V2ZW50IChjbGllbnRfZGF0YT1jbGllbnRfZGF0YUBlbnRy eT0weDApIGF0IC4uLy4uL2JpbnV0aWxzLWdkYi9nZGIvaW5mcnVuLmM6MzE0 OQojMjAgMHgwMDE5YmMwOCBpbiBpbmZlcmlvcl9ldmVudF9oYW5kbGVyIChl dmVudF90eXBlPUlORl9SRUdfRVZFTlQsIGNsaWVudF9kYXRhPTB4MCkgYXQg Li4vLi4vYmludXRpbHMtZ2RiL2dkYi9pbmYtbG9vcC5jOjU4CiMyMSAweDAw MTk5ZGZjIGluIHByb2Nlc3NfZXZlbnQgKCkgYXQgLi4vLi4vYmludXRpbHMt Z2RiL2dkYi9ldmVudC1sb29wLmM6MzQwCiMyMiAweDAwMTlhMjA0IGluIGdk Yl9kb19vbmVfZXZlbnQgKCkgYXQgLi4vLi4vYmludXRpbHMtZ2RiL2dkYi9l dmVudC1sb29wLmM6MzkyCiMyMyAweDAwMTlhNDAwIGluIHN0YXJ0X2V2ZW50 X2xvb3AgKCkgYXQgLi4vLi4vYmludXRpbHMtZ2RiL2dkYi9ldmVudC1sb29w LmM6NDI5CiMyNCAweDAwMTkzZWQ0IGluIGNhcHR1cmVkX2NvbW1hbmRfbG9v cCAoZGF0YT08b3B0aW1pemVkIG91dD4pIGF0IC4uLy4uL2JpbnV0aWxzLWdk Yi9nZGIvbWFpbi5jOjMyMwojMjUgMHgwMDE5MGVhNCBpbiBjYXRjaF9lcnJv cnMgKGZ1bmM9MHgyMmIwMWQ4LCBmdW5jQGVudHJ5PTB4MTkzZWJjIDxjYXB0 dXJlZF9jb21tYW5kX2xvb3A+LCAKICAgIGZ1bmNfYXJncz0weDQxN2ZlOCA8 Y2xlYW51cF9jaGFpbj4sIGZ1bmNfYXJnc0BlbnRyeT0weDAsIGVycnN0cmlu Zz0weDAsIGVycnN0cmluZ0BlbnRyeT0weDM4N2ZjOCAiIiwgbWFzaz0zNzUz MjAwOCwgCiAgICBtYXNrQGVudHJ5PVJFVFVSTl9NQVNLX0FMTCkgYXQgLi4v Li4vYmludXRpbHMtZ2RiL2dkYi9leGNlcHRpb25zLmM6MjM3CiMyNiAweDAw MTk1MTY4IGluIGNhcHR1cmVkX21haW4gKGRhdGE9PG9wdGltaXplZCBvdXQ+ KSBhdCAuLi8uLi9iaW51dGlscy1nZGIvZ2RiL21haW4uYzoxMTUxCiMyNyAw eDAwMTkwZWE0IGluIGNhdGNoX2Vycm9ycyAoZnVuYz0weGI2ZjAyODAwLCBm dW5jQGVudHJ5PTB4MTk0NDA0IDxjYXB0dXJlZF9tYWluPiwgZnVuY19hcmdz PTB4MCwgCiAgICBmdW5jX2FyZ3NAZW50cnk9MHhiZWU4ZTkxNCwgZXJyc3Ry aW5nPTB4YmVlOGU5MWMgIiIsIGVycnN0cmluZ0BlbnRyeT0weDM4N2ZjOCAi IiwgbWFzaz00Mjk5MTQwLCBtYXNrQGVudHJ5PVJFVFVSTl9NQVNLX0FMTCkK ICAgIGF0IC4uLy4uL2JpbnV0aWxzLWdkYi9nZGIvZXhjZXB0aW9ucy5jOjIz NwoKTEUgY29kZSByZWNlaXZlcyBnZGJfcmVnbnVtID0gLTEgYXMgd2VsbCBi dXQgTEUgY29kZSBkb2VzIG5vdCBoaXQgCnRoaXMgYmVjYXVzZSBpdCBkb2Vz IG5vdCBoYXZlIHRoZSBmb2xsb3dpbmcgc25pcHBldCBpbiByZWFkX3BpZWNl ZF92YWx1ZQoKCgkgICAgaWYgKGdkYmFyY2hfYnl0ZV9vcmRlciAoYXJjaCkg PT0gQkZEX0VORElBTl9CSUcKCQkmJiB0aGlzX3NpemUgPCByZWdpc3Rlcl9z aXplIChhcmNoLCBnZGJfcmVnbnVtKSkKCSAgICAgIHsKCQkvKiBCaWctZW5k aWFuLCBhbmQgd2Ugd2FudCBsZXNzIHRoYW4gZnVsbCBzaXplLiAgKi8KCQly ZWdfb2Zmc2V0ID0gcmVnaXN0ZXJfc2l6ZSAoYXJjaCwgZ2RiX3JlZ251bSkg LSB0aGlzX3NpemU7CgkJLyogV2Ugd2FudCB0aGUgbG93ZXItb3JkZXIgVEhJ U19TSVpFX0JJVFMgb2YgdGhlIGJ5dGVzCgkJICAgd2UgZXh0cmFjdCBmcm9t IHRoZSByZWdpc3Rlci4gICovCgkJc291cmNlX29mZnNldF9iaXRzICs9IDgg KiB0aGlzX3NpemUgLSB0aGlzX3NpemVfYml0czsKCSAgICAgIH0KCmFuZCBp dCBwcm9jZWVkcyB3aXRoIGVycm9yOgoKKGdkYikgbgoxNjk5CQkgICAgaWYg KGdkYl9yZWdudW0gIT0gLTEpCihnZGIpIG4KMTcxOAkJCWVycm9yIChfKCJV bmFibGUgdG8gYWNjZXNzIERXQVJGIHJlZ2lzdGVyIG51bWJlciAlcyIpLAoo Z2RiKSBidAojMCAgcmVhZF9waWVjZWRfdmFsdWUgKHY9MHhiNmM5NjdjMCA8 bWFpbl9hcmVuYT4pIGF0IC4uLy4uL2JpbnV0aWxzLWdkYi9nZGIvZHdhcmYy bG9jLmM6MTcxOAojMSAgMHgwMDE0NGE1MCBpbiB2YWx1ZV9mZXRjaF9sYXp5 ICh2YWw9MHgyNjI1MDIwKSBhdCAuLi8uLi9iaW51dGlscy1nZGIvZ2RiL3Zh bHVlLmM6Mzg5NQojMiAgMHgwMDE0NTA4NCBpbiB2YWx1ZV9lbnRpcmVseV9j b3ZlcmVkX2J5X3JhbmdlX3ZlY3RvciAodmFsdWU9MHgyNjI1MDIwLCByYW5n ZXM9MHgyNjI1MDc0KSBhdCAuLi8uLi9iaW51dGlscy1nZGIvZ2RiL3ZhbHVl LmM6MzkyCiMzICAweDAwMTU2NTgwIGluIHZhbHVlX2NoZWNrX3ByaW50YWJs ZSAodmFsPXZhbEBlbnRyeT0weDI2MjUwMjAsIHN0cmVhbT1zdHJlYW1AZW50 cnk9MHgyNDM5ZGE4LCBvcHRpb25zPTB4YmViYjg1Y2MpIGF0IC4uLy4uL2Jp bnV0aWxzLWdkYi9nZGIvdmFscHJpbnQuYzo4MTAKIzQgIDB4MDAxNTY5MDgg aW4gY29tbW9uX3ZhbF9wcmludCAodmFsPTB4MjYyNTAyMCwgc3RyZWFtPTB4 MjQzOWRhOCwgc3RyZWFtQGVudHJ5PTB4NzI1ZjUwNGYsIHJlY3Vyc2U9cmVj dXJzZUBlbnRyeT0yLCBvcHRpb25zPTB4YmViYjg1Y2MsIG9wdGlvbnNAZW50 cnk9MHhiZWJiODVjNCwgCiAgICBsYW5ndWFnZT1sYW5ndWFnZUBlbnRyeT0w eDNiOGY2MCA8Y19sYW5ndWFnZV9kZWZuPikgYXQgLi4vLi4vYmludXRpbHMt Z2RiL2dkYi92YWxwcmludC5jOjg0OQojNSAgMHgwMDE4OTljOCBpbiBwcmlu dF9mcmFtZV9hcmcgKGFyZz0weDVmNTc0NDIwKSBhdCAuLi8uLi9iaW51dGls cy1nZGIvZ2RiL3N0YWNrLmM6Mjg2CiM2ICAweDAwMThhNzEwIGluIHByaW50 X2ZyYW1lX2FyZ3MgKGZ1bmM9PG9wdGltaXplZCBvdXQ+LCBmcmFtZT0weDAs IGZyYW1lQGVudHJ5PTB4MjI2MDQzOCwgbnVtPTM2MDQ1ODgwLCBudW1AZW50 cnk9LTEsIHN0cmVhbT0weGZmZmZmZmZmKSBhdCAuLi8uLi9iaW51dGlscy1n ZGIvZ2RiL3N0YWNrLmM6Njc0CiM3ICAweDAwMThiMGZjIGluIHByaW50X2Zy YW1lIChmcmFtZT1mcmFtZUBlbnRyeT0weDIyNjA0MzgsIHByaW50X2xldmVs PXByaW50X2xldmVsQGVudHJ5PTQzMzExNDQsIHByaW50X3doYXQ9cHJpbnRf d2hhdEBlbnRyeT1TUkNfQU5EX0xPQywgcHJpbnRfYXJncz1wcmludF9hcmdz QGVudHJ5PTEsIHNhbD0uLi4pCiAgICBhdCAuLi8uLi9iaW51dGlscy1nZGIv Z2RiL3N0YWNrLmM6MTIwNQojOCAgMHgwMDE4YjVjOCBpbiBwcmludF9mcmFt ZV9pbmZvIChmcmFtZT0weDIyNjA0MzgsIGZyYW1lQGVudHJ5PTB4MSwgcHJp bnRfbGV2ZWw9cHJpbnRfbGV2ZWxAZW50cnk9NDMzMTE0NCwgcHJpbnRfd2hh dD1TUkNfQU5EX0xPQywgcHJpbnRfd2hhdEBlbnRyeT0zNjA0NTg4MCwgcHJp bnRfYXJncz1wcmludF9hcmdzQGVudHJ5PTEsIAogICAgc2V0X2N1cnJlbnRf c2FsPXNldF9jdXJyZW50X3NhbEBlbnRyeT0xKSBhdCAuLi8uLi9iaW51dGls cy1nZGIvZ2RiL3N0YWNrLmM6ODU3CiM5ICAweDAwMThiN2I4IGluIHByaW50 X3N0YWNrX2ZyYW1lIChmcmFtZT0weDEsIHByaW50X2xldmVsPTQzMzExNDQs IHByaW50X2xldmVsQGVudHJ5PTAsIHByaW50X3doYXQ9MzYwNDU4ODAsIHBy aW50X3doYXRAZW50cnk9U1JDX0FORF9MT0MsIHNldF9jdXJyZW50X3NhbD0w LCBzZXRfY3VycmVudF9zYWxAZW50cnk9MSkKICAgIGF0IC4uLy4uL2JpbnV0 aWxzLWdkYi9nZGIvc3RhY2suYzoxNjYKIzEwIDB4MDAxN2ZkMDAgaW4gcHJp bnRfc3RvcF9ldmVudCAod3M9d3NAZW50cnk9MHhiZWJiODg5OCkgYXQgLi4v Li4vYmludXRpbHMtZ2RiL2dkYi9pbmZydW4uYzo2MjgwCiMxMSAweDAwMTgw MWUwIGluIG5vcm1hbF9zdG9wICgpIGF0IC4uLy4uL2JpbnV0aWxzLWdkYi9n ZGIvaW5mcnVuLmM6NjQyNgojMTIgMHgwMDE4NjAxMCBpbiBmZXRjaF9pbmZl cmlvcl9ldmVudCAoY2xpZW50X2RhdGE9Y2xpZW50X2RhdGFAZW50cnk9MHgw KSBhdCAuLi8uLi9iaW51dGlscy1nZGIvZ2RiL2luZnJ1bi5jOjMxNDkKIzEz IDB4MDAxOWI4ZmMgaW4gaW5mZXJpb3JfZXZlbnRfaGFuZGxlciAoZXZlbnRf dHlwZT1JTkZfUkVHX0VWRU5ULCBjbGllbnRfZGF0YT0weDApIGF0IC4uLy4u L2JpbnV0aWxzLWdkYi9nZGIvaW5mLWxvb3AuYzo1OAojMTQgMHgwMDE5OWFm MCBpbiBwcm9jZXNzX2V2ZW50ICgpIGF0IC4uLy4uL2JpbnV0aWxzLWdkYi9n ZGIvZXZlbnQtbG9vcC5jOjM0MAojMTUgMHgwMDE5OWVmOCBpbiBnZGJfZG9f b25lX2V2ZW50ICgpIGF0IC4uLy4uL2JpbnV0aWxzLWdkYi9nZGIvZXZlbnQt bG9vcC5jOjM5MgojMTYgMHgwMDE5YTBmNCBpbiBzdGFydF9ldmVudF9sb29w ICgpIGF0IC4uLy4uL2JpbnV0aWxzLWdkYi9nZGIvZXZlbnQtbG9vcC5jOjQy OQojMTcgMHgwMDE5M2JjYyBpbiBjYXB0dXJlZF9jb21tYW5kX2xvb3AgKGRh dGE9PG9wdGltaXplZCBvdXQ+KSBhdCAuLi8uLi9iaW51dGlscy1nZGIvZ2Ri L21haW4uYzozMjMKIzE4IDB4MDAxOTBiYWMgaW4gY2F0Y2hfZXJyb3JzIChm dW5jPTB4MjIxOTFkOCwgZnVuY0BlbnRyeT0weDE5M2JiNCA8Y2FwdHVyZWRf Y29tbWFuZF9sb29wPiwgZnVuY19hcmdzPTB4NDE3ZWU4IDxjbGVhbnVwX2No YWluPiwgZnVuY19hcmdzQGVudHJ5PTB4MCwgZXJyc3RyaW5nPTB4MCwgCiAg ICBlcnJzdHJpbmdAZW50cnk9MHgzODc3ZTAgIiIsIG1hc2s9Mzc3NDY1MjAs IG1hc2tAZW50cnk9UkVUVVJOX01BU0tfQUxMKSBhdCAuLi8uLi9iaW51dGls cy1nZGIvZ2RiL2V4Y2VwdGlvbnMuYzoyMzcKIzE5IDB4MDAxOTRlNjAgaW4g Y2FwdHVyZWRfbWFpbiAoZGF0YT08b3B0aW1pemVkIG91dD4pIGF0IC4uLy4u L2JpbnV0aWxzLWdkYi9nZGIvbWFpbi5jOjExNTEKIzIwIDB4MDAxOTBiYWMg aW4gY2F0Y2hfZXJyb3JzIChmdW5jPTB4YjZmZWMyYTAsIGZ1bmNAZW50cnk9 MHgxOTQwZmMgPGNhcHR1cmVkX21haW4+LCBmdW5jX2FyZ3M9MHgwLCBmdW5j X2FyZ3NAZW50cnk9MHhiZWJiOGFmNCwgZXJyc3RyaW5nPTB4YmViYjhhZmMg IlwwMDUiLCBlcnJzdHJpbmdAZW50cnk9MHgzODc3ZTAgIiIsIAogICAgbWFz az00Mjk4ODg0LCBtYXNrQGVudHJ5PVJFVFVSTl9NQVNLX0FMTCkgYXQgLi4v Li4vYmludXRpbHMtZ2RiL2dkYi9leGNlcHRpb25zLmM6MjM3CiMyMSAweDAw MTk1MzUwIGluIGdkYl9tYWluIChhcmdzPWFyZ3NAZW50cnk9MHhiZWJiOGFm NCkgYXQgLi4vLi4vYmludXRpbHMtZ2RiL2dkYi9tYWluLmM6MTE1OQojMjIg MHgwMDA1ZjIxOCBpbiBtYWluIChhcmdjPTxvcHRpbWl6ZWQgb3V0PiwgYXJn dj08b3B0aW1pemVkIG91dD4pIGF0IC4uLy4uL2JpbnV0aWxzLWdkYi9nZGIv Z2RiLmM6MzIKCg== --001a11c2cc9850e0970506049509--