<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>189059</bug_id>
          
          <creation_ts>2018-08-28 14:54:40 -0700</creation_ts>
          <short_desc>Fix bit-rotted Interpreter::dumpRegisters() and move it to the VMInspector.</short_desc>
          <delta_ts>2018-08-28 16:44:46 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>fpizlo</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>rmorisset</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1454564</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-08-28 14:54:40 -0700</bug_when>
    <thetext>Also remove dumpCallFrame() from the jsc shell.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454565</commentid>
    <comment_count>1</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-08-28 14:54:58 -0700</bug_when>
    <thetext>&lt;rdar://problem/40335354&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454567</commentid>
    <comment_count>2</comment_count>
      <attachid>348346</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-08-28 15:04:30 -0700</bug_when>
    <thetext>Created attachment 348346
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454625</commentid>
    <comment_count>3</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-08-28 16:44:46 -0700</bug_when>
    <thetext>Thanks for the review.  Landed in r235450: &lt;http://trac.webkit.org/r235450&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348346</attachid>
            <date>2018-08-28 15:04:30 -0700</date>
            <delta_ts>2018-08-28 15:53:21 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-189059.patch</filename>
            <type>text/plain</type>
            <size>27647</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjM1NDQxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDkyIEBA
CisyMDE4LTA4LTI4ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBG
aXggYml0LXJvdHRlZCBJbnRlcnByZXRlcjo6ZHVtcFJlZ2lzdGVycygpIGFuZCBtb3ZlIGl0IHRv
IHRoZSBWTUluc3BlY3Rvci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE4OTA1OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDAzMzUzNTQ+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgMS4gTW92ZWQgSW50
ZXJwcmV0ZXI6OmR1bXBSZWdpc3RlcnMoKSB0byBWTUluc3BlY3Rvcjo6ZHVtcFJlZ2lzdGVycygp
LgorICAgICAgICAyLiBBZGRlZCAkdm0uZHVtcFJlZ2lzdGVycygpLgorCisgICAgICAgICAgICBV
c2FnZTogJHZtLmR1bXBSZWdpc3RlcnMoTikgLy8gZHVtcCB0aGUgcmVnaXN0ZXJzIG9mIHRoZSBO
dGggQ2FsbEZyYW1lLgorICAgICAgICAgICAgVXNhZ2U6ICR2bS5kdW1wUmVnaXN0ZXJzKCkgLy8g
ZHVtcCB0aGUgcmVnaXN0ZXJzIG9mIHRoZSBjdXJyZW50IENhbGxGcmFtZS4KKworICAgICAgICAg
ICBOb3RlOiBDdXJyZW50bHksICR2bS5kdW1wUmVnaXN0ZXJzKCkgb25seSBkdW1wIHJlZ2lzdGVy
cyBpbiB0aGUgcGh5c2ljYWwgZnJhbWUuCisgICAgICAgICAgIEl0IHdpbGwgdHJlYXQgaW5saW5l
ZCBmcmFtZXMgY29udGVudCBhcyByZWdpc3RlcnMgaW4gdGhlIGJvdW5kaW5nIHBoeXNpY2FsIGZy
YW1lLgorCisgICAgICAgICAgIEhlcmUncyBhbiBleGFtcGxlIG9mIHN1Y2ggYSBkdW1wIG9uIGEg
REZHIGZyYW1lOgorCisgICAgICAgICAgICAgICAgUmVnaXN0ZXIgZnJhbWU6IAorCisgICAgICAg
ICAgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB1c2UgICAgICAgICAgICB8ICAgYWRkcmVzcyAgfCAgICAgICAgICAgICAgICB2YWx1ZSAgICAg
ICAgICAgICAgIAorICAgICAgICAgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAg
ICAgICAgICAgW3IgMTIgYXJndW1lbnRzWyAgN11dICAgICAgfCAweDdmZmVlZmJmZDMzMCB8IDB4
YSAgICAgICAgICAgICAgICBVbmRlZmluZWQKKyAgICAgICAgICAgICAgICBbciAxMSBhcmd1bWVu
dHNbICA2XV0gICAgICB8IDB4N2ZmZWVmYmZkMzI4IHwgMHgxMGJiYjNlODAgICAgICAgIE9iamVj
dDogMHgxMGJiYjNlODAgd2l0aCBidXR0ZXJmbHkgMHgwIChTdHJ1Y3R1cmUgMHgxMGJiZjIwZDA6
W09iamVjdCwge30sIE5vbkFycmF5LCBQcm90bzoweDEwYmJiNDAwMF0pLCBTdHJ1Y3R1cmVJRDog
NzYKKyAgICAgICAgICAgICAgICBbciAxMCBhcmd1bWVudHNbICA1XV0gICAgICB8IDB4N2ZmZWVm
YmZkMzIwIHwgMHhhICAgICAgICAgICAgICAgIFVuZGVmaW5lZAorICAgICAgICAgICAgICAgIFty
ICA5IGFyZ3VtZW50c1sgIDRdXSAgICAgIHwgMHg3ZmZlZWZiZmQzMTggfCAweGEgICAgICAgICAg
ICAgICAgVW5kZWZpbmVkCisgICAgICAgICAgICAgICAgW3IgIDggYXJndW1lbnRzWyAgM11dICAg
ICAgfCAweDdmZmVlZmJmZDMxMCB8IDB4YSAgICAgICAgICAgICAgICBVbmRlZmluZWQKKyAgICAg
ICAgICAgICAgICBbciAgNyBhcmd1bWVudHNbICAyXV0gICAgICB8IDB4N2ZmZWVmYmZkMzA4IHwg
MHhmZmZmMDAwMDAwMGE1ZWFhIEludDMyOiA2Nzk1OTQKKyAgICAgICAgICAgICAgICBbciAgNiBh
cmd1bWVudHNbICAxXV0gICAgICB8IDB4N2ZmZWVmYmZkMzAwIHwgMHgxMGJiZDAwZjAgICAgICAg
IE9iamVjdDogMHgxMGJiZDAwZjAgd2l0aCBidXR0ZXJmbHkgMHg4MDAwZjgyNDggKFN0cnVjdHVy
ZSAweDEwYmJhNDcwMDpbRnVuY3Rpb24sIHtuYW1lOjEwMCwgcHJvdG90eXBlOjEwMSwgbGVuZ3Ro
OjEwMiwgU3ltYm9sLnNwZWNpZXM6MTAzLCBpc0FycmF5OjEwNH0sIE5vbkFycmF5LCBQcm90bzow
eDEwYmJkMDAwMCwgTGVhZl0pLCBTdHJ1Y3R1cmVJRDogMTYwCisgICAgICAgICAgICAgICAgW3Ig
IDUgICAgICAgICAgIHRoaXNdICAgICAgfCAweDdmZmVlZmJmZDJmOCB8IDB4MTBiYmUwMDAwICAg
ICAgICBPYmplY3Q6IDB4MTBiYmUwMDAwIHdpdGggYnV0dGVyZmx5IDB4ODAwMGQ4ODA4IChTdHJ1
Y3R1cmUgMHgxMGJiMzUzNDA6W2dsb2JhbCwge3BhcnNlSW50OjEwMCwgcGFyc2VGbG9hdDoxMDEs
IE9iamVjdDoxMDIsIEZ1bmN0aW9uOjEwMywgQXJyYXk6MTA0LCBSZWdFeHA6MTA1LCBSYW5nZUVy
cm9yOjEwNiwgVHlwZUVycm9yOjEwNywgUHJpdmF0ZVN5bWJvbC5PYmplY3Q6MTA4LCBQcml2YXRl
U3ltYm9sLkFycmF5OjEwOSwgQXJyYXlCdWZmZXI6MTEwLCBTdHJpbmc6MTExLCBTeW1ib2w6MTEy
LCBOdW1iZXI6MTEzLCBCb29sZWFuOjExNCwgRXJyb3I6MTE1LCBNYXA6MTE2LCBTZXQ6MTE3LCBQ
cm9taXNlOjExOCwgZXZhbDoxMTksIFJlZmxlY3Q6MTIxLCAkdm06MTIyLCBXZWJBc3NlbWJseTox
MjMsIGRlYnVnOjEyNCwgZGVzY3JpYmU6MTI1LCBkZXNjcmliZUFycmF5OjEyNiwgcHJpbnQ6MTI3
LCBwcmludEVycjoxMjgsIHF1aXQ6MTI5LCBnYzoxMzAsIGZ1bGxHQzoxMzEsIGVkZW5HQzoxMzIs
IGZvcmNlR0NTbG93UGF0aHM6MTMzLCBnY0hlYXBTaXplOjEzNCwgYWRkcmVzc09mOjEzNSwgdmVy
c2lvbjoxMzYsIHJ1bjoxMzcsIHJ1blN0cmluZzoxMzgsIGxvYWQ6MTM5LCBsb2FkU3RyaW5nOjE0
MCwgcmVhZEZpbGU6MTQxLCByZWFkOjE0MiwgY2hlY2tTeW50YXg6MTQzLCBzbGVlcFNlY29uZHM6
MTQ0LCBqc2NTdGFjazoxNDUsIHJlYWRsaW5lOjE0NiwgcHJlY2lzZVRpbWU6MTQ3LCBuZXZlcklu
bGluZUZ1bmN0aW9uOjE0OCwgbm9JbmxpbmU6MTQ5LCBub0RGRzoxNTAsIG5vRlRMOjE1MSwgbnVt
YmVyT2ZERkdDb21waWxlczoxNTMsIGpzY09wdGlvbnM6MTU0LCBvcHRpbWl6ZU5leHRJbnZvY2F0
aW9uOjE1NSwgcmVvcHRpbWl6YXRpb25SZXRyeUNvdW50OjE1NiwgdHJhbnNmZXJBcnJheUJ1ZmZl
cjoxNTcsIGZhaWxOZXh0TmV3Q29kZUJsb2NrOjE1OCwgT1NSRXhpdDoxNTksIGlzRmluYWxUaWVy
OjE2MCwgcHJlZGljdEludDMyOjE2MSwgaXNJbnQzMjoxNjIsIGlzUHVyZU5hTjoxNjMsIGZpYXRJ
bnQ1MjoxNjQsIGVmZmVjdGZ1bDQyOjE2NSwgbWFrZU1hc3F1ZXJhZGVyOjE2NiwgaGFzQ3VzdG9t
UHJvcGVydGllczoxNjcsIGNyZWF0ZUdsb2JhbE9iamVjdDoxNjgsIGR1bXBUeXBlc0ZvckFsbFZh
cmlhYmxlczoxNjksIGRyYWluTWljcm90YXNrczoxNzAsIGdldFJhbmRvbVNlZWQ6MTcxLCBzZXRS
YW5kb21TZWVkOjE3MiwgaXNSb3BlOjE3MywgY2FsbGVyU291cmNlT3JpZ2luOjE3NCwgaXMzMkJp
dFBsYXRmb3JtOjE3NSwgbG9hZE1vZHVsZToxNzYsIGNoZWNrTW9kdWxlU3ludGF4OjE3NywgcGxh
dGZvcm1TdXBwb3J0c1NhbXBsaW5nUHJvZmlsZXI6MTc4LCBnZW5lcmF0ZUhlYXBTbmFwc2hvdDox
NzksIHJlc2V0U3VwZXJTYW1wbGVyU3RhdGU6MTgwLCBlbnN1cmVBcnJheVN0b3JhZ2U6MTgxLCBz
dGFydFNhbXBsaW5nUHJvZmlsZXI6MTgyLCBzYW1wbGluZ1Byb2ZpbGVyU3RhY2tUcmFjZXM6MTgz
LCBtYXhBcmd1bWVudHM6MTg0LCBhc3luY1Rlc3RTdGFydDoxODUsIGFzeW5jVGVzdFBhc3NlZDox
ODYsIFdlYkFzc2VtYmx5TWVtb3J5TW9kZToxODcsIGNvbnNvbGU6MTg4LCAkOjE4OSwgJDI2Mjox
OTAsIHdhaXRGb3JSZXBvcnQ6MTkxLCBoZWFwQ2FwYWNpdHk6MTkyLCBmbGFzaEhlYXBBY2Nlc3M6
MTkzLCBkaXNhYmxlUmljaFNvdXJjZUluZm86MTk0LCBtYWxsb2NJbkFMb29wOjE5NSwgdG90YWxD
b21waWxlVGltZToxOTYsIFByb3h5OjE5NywgdW5ldmFsOjE5OCwgV1NjcmlwdDoxOTksIGZhaWxX
aXRoTWVzc2FnZToyMDAsIHRyaWdnZXJBc3NlcnRGYWxzZToyMDEsIGlzTmFOOjIwMiwgaXNGaW5p
dGU6MjAzLCBlc2NhcGU6MjA0LCB1bmVzY2FwZToyMDUsIGRlY29kZVVSSToyMDYsIGRlY29kZVVS
SUNvbXBvbmVudDoyMDcsIGVuY29kZVVSSToyMDgsIGVuY29kZVVSSUNvbXBvbmVudDoyMDksIEV2
YWxFcnJvcjoyMTAsIFJlZmVyZW5jZUVycm9yOjIxMSwgU3ludGF4RXJyb3I6MjEyLCBVUklFcnJv
cjoyMTMsIEpTT046MjE0LCBNYXRoOjIxNSwgSW50OEFycmF5OjIxNiwgUHJpdmF0ZVN5bWJvbC5J
bnQ4QXJyYXk6MjE3LCBJbnQxNkFycmF5OjIxOCwgUHJpdmF0ZVN5bWJvbC5JbnQxNkFycmF5OjIx
OSwgSW50MzJBcnJheToyMjAsIFByaXZhdGVTeW1ib2wuSW50MzJBcnJheToyMjEsIFVpbnQ4QXJy
YXk6MjIyLCBQcml2YXRlU3ltYm9sLlVpbnQ4QXJyYXk6MjIzLCBVaW50OENsYW1wZWRBcnJheToy
MjQsIFByaXZhdGVTeW1ib2wuVWludDhDbGFtcGVkQXJyYXk6MjI1LCBVaW50MTZBcnJheToyMjYs
IFByaXZhdGVTeW1ib2wuVWludDE2QXJyYXk6MjI3LCBVaW50MzJBcnJheToyMjgsIFByaXZhdGVT
eW1ib2wuVWludDMyQXJyYXk6MjI5LCBGbG9hdDMyQXJyYXk6MjMwLCBQcml2YXRlU3ltYm9sLkZs
b2F0MzJBcnJheToyMzEsIEZsb2F0NjRBcnJheToyMzIsIFByaXZhdGVTeW1ib2wuRmxvYXQ2NEFy
cmF5OjIzMywgRGF0YVZpZXc6MjM0LCBEYXRlOjIzNSwgV2Vha01hcDoyMzYsIFdlYWtTZXQ6MjM3
LCBJbnRsOjEyMCwgZGVzYzoyMzh9LCBOb25BcnJheSwgUHJvdG86MHgxMGJiYjQwMDAsIFVuY2Fj
aGVhYmxlRGljdGlvbmFyeSwgTGVhZl0pLCBTdHJ1Y3R1cmVJRDogNDc0CisgICAgICAgICAgICAg
ICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICBbQXJndW1lbnRDb3VudF0g
ICAgICAgICAgICB8IDB4N2ZmZWVmYmZkMmYwIHwgNyAKKyAgICAgICAgICAgICAgICBbUmV0dXJu
VlBDXSAgICAgICAgICAgICAgICB8IDB4N2ZmZWVmYmZkMmYwIHwgMTY0IChsaW5lIDU3KQorICAg
ICAgICAgICAgICAgIFtDYWxsZWVdICAgICAgICAgICAgICAgICAgIHwgMHg3ZmZlZWZiZmQyZTgg
fCAweDEwYmI2OGRiMCAgICAgICAgT2JqZWN0OiAweDEwYmI2OGRiMCB3aXRoIGJ1dHRlcmZseSAw
eDAgKFN0cnVjdHVyZSAweDEwYmJmMWMwMDpbRnVuY3Rpb24sIHt9LCBOb25BcnJheSwgUHJvdG86
MHgxMGJiZDAwMDAsIFNoYWR5IGxlYWZdKSwgU3RydWN0dXJlSUQ6IDY1CisgICAgICAgICAgICAg
ICAgW0NvZGVCbG9ja10gICAgICAgICAgICAgICAgfCAweDdmZmVlZmJmZDJlMCB8IDB4MTBiYjJm
OGUwICAgICAgICBfX2NhbGxSYW5kb21GdW5jdGlvbiNEbVZYbnY6WzB4MTBiYjJmOGUwLT4weDEw
YmJmZDFlMCwgTExJbnRGdW5jdGlvbkNhbGwsIDI1M10KKyAgICAgICAgICAgICAgICBbUmV0dXJu
UENdICAgICAgICAgICAgICAgICB8IDB4N2ZmZWVmYmZkMmQ4IHwgMHgxMDA2NGQxNGMgCisgICAg
ICAgICAgICAgICAgW0NhbGxlckZyYW1lXSAgICAgICAgICAgICAgfCAweDdmZmVlZmJmZDJkMCB8
IDB4N2ZmZWVmYmZkMzgwIAorICAgICAgICAgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg
ICAgICAgICAgICAgICAgW3IgLTEgIENhbGxlZVNhdmVSZWddICAgICAgfCAweDdmZmVlZmJmZDJj
OCB8IDB4ZmZmZjAwMDAwMDAwMDAwMiBJbnQzMjogMgorICAgICAgICAgICAgICAgIFtyIC0yICBD
YWxsZWVTYXZlUmVnXSAgICAgIHwgMHg3ZmZlZWZiZmQyYzAgfCAweGZmZmYwMDAwMDAwMDAwMDAg
SW50MzI6IDAKKyAgICAgICAgICAgICAgICBbciAtMyAgQ2FsbGVlU2F2ZVJlZ10gICAgICB8IDB4
N2ZmZWVmYmZkMmI4IHwgMHgxMGJhZjE2MDggICAgICAgIAorICAgICAgICAgICAgICAgIFtyIC00
ICAgICAgICAgICAgICAgXSAgICAgIHwgMHg3ZmZlZWZiZmQyYjAgfCAweDEwYmJjYzAwMCAgICAg
ICAgT2JqZWN0OiAweDEwYmJjYzAwMCB3aXRoIGJ1dHRlcmZseSAweDAgKFN0cnVjdHVyZSAweDEw
YmJmMTk2MDpbSlNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQsIHt9LCBOb25BcnJheSwgTGVhZl0p
LCBTdHJ1Y3R1cmVJRDogNTkKKyAgICAgICAgICAgICAgICBbciAtNSAgICAgICAgICAgICAgIF0g
ICAgICB8IDB4N2ZmZWVmYmZkMmE4IHwgMHgxMGJiY2MwMDAgICAgICAgIE9iamVjdDogMHgxMGJi
Y2MwMDAgd2l0aCBidXR0ZXJmbHkgMHgwIChTdHJ1Y3R1cmUgMHgxMGJiZjE5NjA6W0pTR2xvYmFs
TGV4aWNhbEVudmlyb25tZW50LCB7fSwgTm9uQXJyYXksIExlYWZdKSwgU3RydWN0dXJlSUQ6IDU5
CisgICAgICAgICAgICAgICAgW3IgLTYgICAgICAgICAgICAgICBdICAgICAgfCAweDdmZmVlZmJm
ZDJhMCB8IDB4YSAgICAgICAgICAgICAgICBVbmRlZmluZWQKKyAgICAgICAgICAgICAgICAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgIFtyIC03XSAgICAgICAgICAgICAgICAg
ICAgIHwgMHg3ZmZlZWZiZmQyOTggfCAweDEwYmI2ZmRjMCAgICAgICAgU3RyaW5nIChhdG9taWMp
IChpZGVudGlmaWVyKTogbGVuZ3RoLCBTdHJ1Y3R1cmVJRDogNAorICAgICAgICAgICAgICAgIFty
IC04XSAgICAgICAgICAgICAgICAgICAgIHwgMHg3ZmZlZWZiZmQyOTAgfCAweDEwYmJiN2VjMCAg
ICAgICAgT2JqZWN0OiAweDEwYmJiN2VjMCB3aXRoIGJ1dHRlcmZseSAweDgwMDBlMDAwOCAoU3Ry
dWN0dXJlIDB4MTBiYmYyYWUwOltBcnJheSwge30sIEFycmF5V2l0aENvbnRpZ3VvdXMsIFByb3Rv
OjB4MTBiYmM4MDgwXSksIFN0cnVjdHVyZUlEOiA5OQorICAgICAgICAgICAgICAgIFtyIC05XSAg
ICAgICAgICAgICAgICAgICAgIHwgMHg3ZmZlZWZiZmQyODggfCAweDEwYmJjMzNmMCAgICAgICAg
T2JqZWN0OiAweDEwYmJjMzNmMCB3aXRoIGJ1dHRlcmZseSAweDgwMDBmZGRhOCAoU3RydWN0dXJl
IDB4MTBiYmYxZGMwOltGdW5jdGlvbiwge25hbWU6MTAwLCBsZW5ndGg6MTAxfSwgTm9uQXJyYXks
IFByb3RvOjB4MTBiYmQwMDAwLCBMZWFmXSksIFN0cnVjdHVyZUlEOiA2OQorICAgICAgICAgICAg
ICAgIFtyLTEwXSAgICAgICAgICAgICAgICAgICAgIHwgMHg3ZmZlZWZiZmQyODAgfCAweGZmZmYw
MDAwMDAwMDAwMDQgSW50MzI6IDQKKyAgICAgICAgICAgICAgICBbci0xMV0gICAgICAgICAgICAg
ICAgICAgICB8IDB4N2ZmZWVmYmZkMjc4IHwgMHgxMGJiYjQyOTAgICAgICAgIE9iamVjdDogMHgx
MGJiYjQyOTAgd2l0aCBidXR0ZXJmbHkgMHg4MDAwZTg0MDggKFN0cnVjdHVyZSAweDEwYmI3NDg1
MDpbRG9sbGFyVk0sIHthYm9ydDoxMDAsIGNyYXNoOjEwMSwgYnJlYWtwb2ludDoxMDIsIGRmZ1Ry
dWU6MTAzLCBmdGxUcnVlOjEwNCwgY3B1TWZlbmNlOjEwNSwgY3B1UmR0c2M6MTA2LCBjcHVDcHVp
ZDoxMDcsIGNwdVBhdXNlOjEwOCwgY3B1Q2xmbHVzaDoxMDksIGxsaW50VHJ1ZToxMTAsIGppdFRy
dWU6MTExLCBub0lubGluZToxMTIsIGdjOjExMywgZWRlbkdDOjExNCwgY2FsbEZyYW1lOjExNSwg
Y29kZUJsb2NrRm9yOjExNiwgY29kZUJsb2NrRm9yRnJhbWU6MTE3LCBkdW1wU291cmNlRm9yOjEx
OCwgZHVtcEJ5dGVjb2RlRm9yOjExOSwgZGF0YUxvZzoxMjAsIHByaW50OjEyMSwgZHVtcENhbGxG
cmFtZToxMjIsIGR1bXBTdGFjazoxMjMsIGR1bXBSZWdpc3RlcnM6MTI0LCBkdW1wQ2VsbDoxMjUs
IGluZGV4aW5nTW9kZToxMjYsIGlubGluZUNhcGFjaXR5OjEyNywgdmFsdWU6MTI4LCBnZXRwaWQ6
MTI5LCBjcmVhdGVQcm94eToxMzAsIGNyZWF0ZVJ1bnRpbWVBcnJheToxMzEsIGNyZWF0ZUltcHVy
ZUdldHRlcjoxMzIsIGNyZWF0ZUN1c3RvbUdldHRlck9iamVjdDoxMzMsIGNyZWF0ZURPTUpJVE5v
ZGVPYmplY3Q6MTM0LCBjcmVhdGVET01KSVRHZXR0ZXJPYmplY3Q6MTM1LCBjcmVhdGVET01KSVRH
ZXR0ZXJDb21wbGV4T2JqZWN0OjEzNiwgY3JlYXRlRE9NSklURnVuY3Rpb25PYmplY3Q6MTM3LCBj
cmVhdGVET01KSVRDaGVja1N1YkNsYXNzT2JqZWN0OjEzOCwgY3JlYXRlRE9NSklUR2V0dGVyQmFz
ZUpTT2JqZWN0OjEzOSwgY3JlYXRlQnVpbHRpbjoxNDAsIGdldFByaXZhdGVQcm9wZXJ0eToxNDEs
IHNldEltcHVyZUdldHRlckRlbGVnYXRlOjE0MiwgUm9vdDoxNDMsIEVsZW1lbnQ6MTQ0LCBnZXRF
bGVtZW50OjE0NSwgU2ltcGxlT2JqZWN0OjE0NiwgZ2V0SGlkZGVuVmFsdWU6MTQ3LCBzZXRIaWRk
ZW5WYWx1ZToxNDgsIHNoYWRvd0NoaWNrZW5GdW5jdGlvbnNPblN0YWNrOjE0OSwgc2V0R2xvYmFs
Q29uc3RSZWRlY2xhcmF0aW9uU2hvdWxkTm90VGhyb3c6MTUwLCBmaW5kVHlwZUZvckV4cHJlc3Np
b246MTUxLCByZXR1cm5UeXBlRm9yOjE1MiwgZmxhdHRlbkRpY3Rpb25hcnlPYmplY3Q6MTUzLCBk
dW1wQmFzaWNCbG9ja0V4ZWN1dGlvblJhbmdlczoxNTQsIGhhc0Jhc2ljQmxvY2tFeGVjdXRlZDox
NTUsIGJhc2ljQmxvY2tFeGVjdXRpb25Db3VudDoxNTYsIGVuYWJsZURlYnVnZ2VyTW9kZVdoZW5J
ZGxlOjE1OCwgZGlzYWJsZURlYnVnZ2VyTW9kZVdoZW5JZGxlOjE1OSwgZ2xvYmFsT2JqZWN0Q291
bnQ6MTYwLCBnbG9iYWxPYmplY3RGb3JPYmplY3Q6MTYxLCBnZXRHZXR0ZXJTZXR0ZXI6MTYyLCBs
b2FkR2V0dGVyRnJvbUdldHRlclNldHRlcjoxNjMsIGNyZWF0ZUN1c3RvbVRlc3RHZXR0ZXJTZXR0
ZXI6MTY0LCBkZWx0YUJldHdlZW5CdXR0ZXJmbGllczoxNjUsIHRvdGFsR0NUaW1lOjE2Nn0sIE5v
bkFycmF5LCBQcm90bzoweDEwYmJiNDAwMCwgRGljdGlvbmFyeSwgTGVhZl0pLCBTdHJ1Y3R1cmVJ
RDogMzA2CisgICAgICAgICAgICAgICAgW3ItMTJdICAgICAgICAgICAgICAgICAgICAgfCAweDdm
ZmVlZmJmZDI3MCB8IDB4MTAwMDAwMDAxICAgICAgICAKKyAgICAgICAgICAgICAgICBbci0xM10g
ICAgICAgICAgICAgICAgICAgICB8IDB4N2ZmZWVmYmZkMjY4IHwgMHgxMGJiYzMzZjAgICAgICAg
IE9iamVjdDogMHgxMGJiYzMzZjAgd2l0aCBidXR0ZXJmbHkgMHg4MDAwZmRkYTggKFN0cnVjdHVy
ZSAweDEwYmJmMWRjMDpbRnVuY3Rpb24sIHtuYW1lOjEwMCwgbGVuZ3RoOjEwMX0sIE5vbkFycmF5
LCBQcm90bzoweDEwYmJkMDAwMCwgTGVhZl0pLCBTdHJ1Y3R1cmVJRDogNjkKKyAgICAgICAgICAg
ICAgICBbci0xNF0gICAgICAgICAgICAgICAgICAgICB8IDB4N2ZmZWVmYmZkMjYwIHwgMHgwICAg
ICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFtyLTE1XSAgICAgICAgICAgICAgICAgICAg
IHwgMHg3ZmZlZWZiZmQyNTggfCAweDEwMDY0ZDE0YyAgICAgICAgCisgICAgICAgICAgICAgICAg
W3ItMTZdICAgICAgICAgICAgICAgICAgICAgfCAweDdmZmVlZmJmZDI1MCB8IDB4N2ZmZWVmYmZk
MmQwICAgICAKKyAgICAgICAgICAgICAgICBbci0xN10gICAgICAgICAgICAgICAgICAgICB8IDB4
N2ZmZWVmYmZkMjQ4IHwgMHg2N2VjODdlZTE3NyAgICAgIElOVkFMSUQKKyAgICAgICAgICAgICAg
ICBbci0xOF0gICAgICAgICAgICAgICAgICAgICB8IDB4N2ZmZWVmYmZkMjQwIHwgMHg3ZmZlZWZi
ZmQyNTAgICAgIAorICAgICAgICAgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAg
ICAgMy4gUmVtb3ZlZCBkdW1wQ2FsbEZyYW1lKCkgZnJvbSB0aGUganNjIHNoZWxsLiAgV2UgaGF2
ZSB0aGUgZm9sbG93aW5nIHRvb2xzIHRoYXQKKyAgICAgICAgICAgd2UgY2FuIHVzZSBpbiBpdHMg
cGxhY2U6CisKKyAgICAgICAgICAgICR2bS5kdW1wQ2FsbEZyYW1lKCkKKyAgICAgICAgICAgICR2
bS5kdW1wQnl0ZWNvZGVGb3IoKQorICAgICAgICAgICAgJHZtLmR1bXBSZWdpc3RlcnMoKSAgICAg
Ly8gSnVzdCBhZGRlZCBpbiB0aGlzIHBhdGNoLgorCisgICAgICAgIDQuIEFsc28gZml4ZWQgYSBi
dWcgaW4gQnl0ZWNvZGVEdW1wZXI6IGl0IHNob3VsZCBvbmx5IGFjY2VzcworICAgICAgICAgICBD
YWxsTGlua0luZm86OmhhdmVMYXN0U2VlbkNhbGxlZSgpIG9ubHkgaWYgQ2FsbExpbmtJbmZvOjpp
c0RpcmVjdCgpIGlzIGZhbHNlLgorCisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIu
Y3BwOgorICAgICAgICAoSlNDOjpCeXRlY29kZUR1bXBlcjxCbG9jaz46OnByaW50Q2FsbE9wKToK
KyAgICAgICAgKiBpbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHA6CisgICAgICAgIChKU0M6Oklu
dGVycHJldGVyOjpkdW1wQ2FsbEZyYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6RHVtcFJl
dHVyblZpcnR1YWxQQ0Z1bmN0b3I6OkR1bXBSZXR1cm5WaXJ0dWFsUENGdW5jdG9yKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6RHVtcFJldHVyblZpcnR1YWxQQ0Z1bmN0b3I6Om9wZXJhdG9yKCkg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6ZHVtcFJlZ2lzdGVy
cyk6IERlbGV0ZWQuCisgICAgICAgICogaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuaDoKKyAgICAg
ICAgKiBqc2MuY3BwOgorICAgICAgICAoR2xvYmFsT2JqZWN0OjpmaW5pc2hDcmVhdGlvbik6Cisg
ICAgICAgIChmdW5jdGlvbkR1bXBDYWxsRnJhbWUpOiBEZWxldGVkLgorICAgICAgICAqIHRvb2xz
L0pTRG9sbGFyVk0uY3BwOgorICAgICAgICAoSlNDOjpmdW5jdGlvbkR1bXBSZWdpc3RlcnMpOgor
ICAgICAgICAoSlNDOjpKU0RvbGxhclZNOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogdG9v
bHMvVk1JbnNwZWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpWTUluc3BlY3Rvcjo6ZHVtcFJlZ2lz
dGVycyk6CisgICAgICAgICogdG9vbHMvVk1JbnNwZWN0b3IuaDoKKwogMjAxOC0wOC0yOCAgS2Vp
dGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgbnVsbGFi
bGl0eSBhdHRyaWJ1dGVzIHRvIEpTVmFsdWUKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
c2MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCShyZXZp
c2lvbiAyMzU0MDcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjY4LDkgKzI2OCw2IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGZ1bmMKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRm9y
Y2VHQ1Nsb3dQYXRocyhFeGVjU3RhdGUqKTsKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGZ1bmN0aW9uSGVhcFNpemUoRXhlY1N0YXRlKik7CiBzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkFkZHJlc3NPZihFeGVjU3RhdGUqKTsKLSNpZm5kZWYg
TkRFQlVHCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkR1bXBD
YWxsRnJhbWUoRXhlY1N0YXRlKik7Ci0jZW5kaWYKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGZ1bmN0aW9uVmVyc2lvbihFeGVjU3RhdGUqKTsKIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uUnVuKEV4ZWNTdGF0ZSopOwogc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25SdW5TdHJpbmcoRXhlY1N0YXRlKik7CkBA
IC00ODksOSArNDg2LDYgQEAgcHJvdGVjdGVkOgogICAgICAgICBhZGRGdW5jdGlvbih2bSwgImZv
cmNlR0NTbG93UGF0aHMiLCBmdW5jdGlvbkZvcmNlR0NTbG93UGF0aHMsIDApOwogICAgICAgICBh
ZGRGdW5jdGlvbih2bSwgImdjSGVhcFNpemUiLCBmdW5jdGlvbkhlYXBTaXplLCAwKTsKICAgICAg
ICAgYWRkRnVuY3Rpb24odm0sICJhZGRyZXNzT2YiLCBmdW5jdGlvbkFkZHJlc3NPZiwgMSk7Ci0j
aWZuZGVmIE5ERUJVRwotICAgICAgICBhZGRGdW5jdGlvbih2bSwgImR1bXBDYWxsRnJhbWUiLCBm
dW5jdGlvbkR1bXBDYWxsRnJhbWUsIDApOwotI2VuZGlmCiAgICAgICAgIGFkZEZ1bmN0aW9uKHZt
LCAidmVyc2lvbiIsIGZ1bmN0aW9uVmVyc2lvbiwgMSk7CiAgICAgICAgIGFkZEZ1bmN0aW9uKHZt
LCAicnVuIiwgZnVuY3Rpb25SdW4sIDEpOwogICAgICAgICBhZGRGdW5jdGlvbih2bSwgInJ1blN0
cmluZyIsIGZ1bmN0aW9uUnVuU3RyaW5nLCAxKTsKQEAgLTEwNTMsMTggKzEwNDcsNiBAQCBmYWls
OgogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblByaW50U3RkT3V0KEV4ZWNT
dGF0ZSogZXhlYykgeyByZXR1cm4gcHJpbnRJbnRlcm5hbChleGVjLCBzdGRvdXQpOyB9CiBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uUHJpbnRTdGRFcnIoRXhlY1N0YXRlKiBl
eGVjKSB7IHJldHVybiBwcmludEludGVybmFsKGV4ZWMsIHN0ZGVycik7IH0KIAotI2lmbmRlZiBO
REVCVUcKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25EdW1wQ2FsbEZyYW1l
KEV4ZWNTdGF0ZSogZXhlYykKLXsKLSAgICBWTSYgdm0gPSBleGVjLT52bSgpOwotICAgIEVudHJ5
RnJhbWUqIHRvcEVudHJ5RnJhbWUgPSB2bS50b3BFbnRyeUZyYW1lOwotICAgIEV4ZWNTdGF0ZSog
Y2FsbGVyRnJhbWUgPSBleGVjLT5jYWxsZXJGcmFtZSh0b3BFbnRyeUZyYW1lKTsKLSAgICBpZiAo
Y2FsbGVyRnJhbWUpCi0gICAgICAgIHZtLmludGVycHJldGVyLT5kdW1wQ2FsbEZyYW1lKGNhbGxl
ckZyYW1lKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotfQot
I2VuZGlmCi0KIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25EZWJ1ZyhFeGVj
U3RhdGUqIGV4ZWMpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUR1bXBlci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmNwcAkocmV2aXNp
b24gMjM1NDA3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVt
cGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjE0LDcgKzYxNCw3IEBAIHZvaWQgQnl0ZWNvZGVE
dW1wZXI8QmxvY2s+OjpwcmludENhbGxPcCgKICAgICAgICAgfQogI2lmIEVOQUJMRShKSVQpCiAg
ICAgICAgIGlmIChDYWxsTGlua0luZm8qIGluZm8gPSBzdGF0dXNNYXAuZ2V0KENvZGVPcmlnaW4o
bG9jYXRpb24pKS5jYWxsTGlua0luZm8pIHsKLSAgICAgICAgICAgIGlmIChpbmZvLT5oYXZlTGFz
dFNlZW5DYWxsZWUoKSkgeworICAgICAgICAgICAgaWYgKCFpbmZvLT5pc0RpcmVjdCgpICYmIGlu
Zm8tPmhhdmVMYXN0U2VlbkNhbGxlZSgpKSB7CiAgICAgICAgICAgICAgICAgSlNPYmplY3QqIG9i
amVjdCA9IGluZm8tPmxhc3RTZWVuQ2FsbGVlKCk7CiAgICAgICAgICAgICAgICAgaWYgKGF1dG8q
IGZ1bmN0aW9uID0ganNEeW5hbWljQ2FzdDxKU0Z1bmN0aW9uKj4oKnZtKCksIG9iamVjdCkpCiAg
ICAgICAgICAgICAgICAgICAgIG91dC5wcmludGYoIiBqaXQoJXAsIGV4ZWMgJXApIiwgZnVuY3Rp
b24sIGZ1bmN0aW9uLT5leGVjdXRhYmxlKCkpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCShyZXZpc2lvbiAyMzU0MDcpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNjksMTI5ICszNjksNiBAQCBIYXNoTWFwPE9wY29kZSwgT3Bjb2RlSUQ+
JiBJbnRlcnByZXRlcjo6CiAjZW5kaWYgLy8gIVVTRShMTElOVF9FTUJFRERFRF9PUENPREVfSUQp
IHx8ICFBU1NFUlRfRElTQUJMRUQKICNlbmRpZiAvLyBFTkFCTEUoQ09NUFVURURfR09UT19PUENP
REVTKQogCi0jaWZkZWYgTkRFQlVHCi0KLXZvaWQgSW50ZXJwcmV0ZXI6OmR1bXBDYWxsRnJhbWUo
Q2FsbEZyYW1lKikKLXsKLX0KLQotI2Vsc2UKLQotdm9pZCBJbnRlcnByZXRlcjo6ZHVtcENhbGxG
cmFtZShDYWxsRnJhbWUqIGNhbGxGcmFtZSkKLXsKLSAgICBjYWxsRnJhbWUtPmNvZGVCbG9jaygp
LT5kdW1wQnl0ZWNvZGUoKTsKLSAgICBkdW1wUmVnaXN0ZXJzKGNhbGxGcmFtZSk7Ci19Ci0KLWNs
YXNzIER1bXBSZXR1cm5WaXJ0dWFsUENGdW5jdG9yIHsKLXB1YmxpYzoKLSAgICBEdW1wUmV0dXJu
VmlydHVhbFBDRnVuY3Rvcihjb25zdCBSZWdpc3RlciomIGl0KQotICAgICAgICA6IG1faGFzU2tp
cHBlZEZpcnN0RnJhbWUoZmFsc2UpCi0gICAgICAgICwgbV9pdChpdCkKLSAgICB7Ci0gICAgfQot
Ci0gICAgU3RhY2tWaXNpdG9yOjpTdGF0dXMgb3BlcmF0b3IoKShTdGFja1Zpc2l0b3ImIHZpc2l0
b3IpIGNvbnN0Ci0gICAgewotICAgICAgICBpZiAoIW1faGFzU2tpcHBlZEZpcnN0RnJhbWUpIHsK
LSAgICAgICAgICAgIG1faGFzU2tpcHBlZEZpcnN0RnJhbWUgPSB0cnVlOwotICAgICAgICAgICAg
cmV0dXJuIFN0YWNrVmlzaXRvcjo6Q29udGludWU7Ci0gICAgICAgIH0KLQotICAgICAgICB1bnNp
Z25lZCBsaW5lID0gMDsKLSAgICAgICAgdW5zaWduZWQgdW51c2VkQ29sdW1uID0gMDsKLSAgICAg
ICAgdmlzaXRvci0+Y29tcHV0ZUxpbmVBbmRDb2x1bW4obGluZSwgdW51c2VkQ29sdW1uKTsKLSAg
ICAgICAgZGF0YUxvZ0YoIltSZXR1cm5WUENdICAgICAgICAgICAgICAgIHwgJTEwcCB8ICVkIChs
aW5lICVkKVxuIiwgbV9pdCwgdmlzaXRvci0+Ynl0ZWNvZGVPZmZzZXQoKSwgbGluZSk7Ci0gICAg
ICAgIHJldHVybiBTdGFja1Zpc2l0b3I6OkRvbmU7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIG11
dGFibGUgYm9vbCBtX2hhc1NraXBwZWRGaXJzdEZyYW1lOwotICAgIGNvbnN0IFJlZ2lzdGVyKiYg
bV9pdDsKLX07Ci0KLXZvaWQgSW50ZXJwcmV0ZXI6OmR1bXBSZWdpc3RlcnMoQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCi17Ci0gICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBjYWxsRnJhbWUtPmNvZGVC
bG9jaygpOwotICAgIGlmICghY29kZUJsb2NrKSB7Ci0gICAgICAgIGRhdGFMb2coIkR1bXBpbmcg
aG9zdCBmcmFtZSByZWdpc3RlcnMgbm90IHN1cHBvcnRlZC5cbiIpOwotICAgICAgICByZXR1cm47
Ci0gICAgfQotICAgIFZNJiB2bSA9ICpjb2RlQmxvY2stPnZtKCk7Ci0KLSAgICBkYXRhTG9nRigi
UmVnaXN0ZXIgZnJhbWU6IFxuXG4iKTsKLSAgICBkYXRhTG9nRigiLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS1cbiIpOwotICAgIGRhdGFMb2dGKCIgICAgICAgICAgICB1c2UgICAgICAgICAgICB8ICAgYWRk
cmVzcyAgfCAgICAgICAgICAgICAgICB2YWx1ZSAgICAgICAgICAgICAgIFxuIik7Ci0gICAgZGF0
YUxvZ0YoIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iKTsKLQotICAgIGNvbnN0IFJlZ2lzdGVyKiBp
dDsKLSAgICBjb25zdCBSZWdpc3RlciogZW5kOwotCi0gICAgaXQgPSBjYWxsRnJhbWUtPnJlZ2lz
dGVycygpICsgQ2FsbEZyYW1lU2xvdDo6dGhpc0FyZ3VtZW50ICsgY2FsbEZyYW1lLT5hcmd1bWVu
dENvdW50KCk7Ci0gICAgZW5kID0gY2FsbEZyYW1lLT5yZWdpc3RlcnMoKSArIENhbGxGcmFtZVNs
b3Q6OnRoaXNBcmd1bWVudCAtIDE7Ci0gICAgd2hpbGUgKGl0ID4gZW5kKSB7Ci0gICAgICAgIEpT
VmFsdWUgdiA9IGl0LT5qc1ZhbHVlKCk7Ci0gICAgICAgIGludCByZWdpc3Rlck51bWJlciA9IGl0
IC0gY2FsbEZyYW1lLT5yZWdpc3RlcnMoKTsKLSAgICAgICAgU3RyaW5nIG5hbWUgPSBjb2RlQmxv
Y2stPm5hbWVGb3JSZWdpc3RlcihWaXJ0dWFsUmVnaXN0ZXIocmVnaXN0ZXJOdW1iZXIpKTsKLSAg
ICAgICAgZGF0YUxvZ0YoIltyJSAzZCAlMTRzXSAgICAgIHwgJTEwcCB8ICUtMTZzIDB4JWxsZCBc
biIsIHJlZ2lzdGVyTnVtYmVyLCBuYW1lLmFzY2lpKCkuZGF0YSgpLCBpdCwgdG9DU3RyaW5nKHYp
LmRhdGEoKSwgKGxvbmcgbG9uZylKU1ZhbHVlOjplbmNvZGUodikpOwotICAgICAgICAtLWl0Owot
ICAgIH0KLSAgICAKLSAgICBkYXRhTG9nRigiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIpOwotICAg
IGRhdGFMb2dGKCJbQXJndW1lbnRDb3VudF0gICAgICAgICAgICB8ICUxMHAgfCAlbHUgXG4iLCBp
dCwgKHVuc2lnbmVkIGxvbmcpIGNhbGxGcmFtZS0+YXJndW1lbnRDb3VudCgpKTsKLSAgICBEdW1w
UmV0dXJuVmlydHVhbFBDRnVuY3RvciBmdW5jdG9yKGl0KTsKLSAgICBjYWxsRnJhbWUtPml0ZXJh
dGUoZnVuY3Rvcik7Ci0gICAgLS1pdDsKLSAgICBkYXRhTG9nRigiW0NhbGxlZV0gICAgICAgICAg
ICAgICAgICAgfCAlMTBwIHwgJXAgXG4iLCBpdCwgY2FsbEZyYW1lLT5qc0NhbGxlZSgpKTsKLSAg
ICAtLWl0OwotICAgIGRhdGFMb2dGKCJbQ29kZUJsb2NrXSAgICAgICAgICAgICAgICB8ICUxMHAg
fCAlcCBcbiIsIGl0LCBjYWxsRnJhbWUtPmNvZGVCbG9jaygpKTsKLSAgICAtLWl0OwotI2lmIEVO
QUJMRShKSVQpCi0gICAgQWJzdHJhY3RQQyBwYyA9IGNhbGxGcmFtZS0+YWJzdHJhY3RSZXR1cm5Q
QyhjYWxsRnJhbWUtPnZtKCkpOwotICAgIGlmIChwYy5oYXNKSVRSZXR1cm5BZGRyZXNzKCkpCi0g
ICAgICAgIGRhdGFMb2dGKCJbUmV0dXJuUENdICAgICAgICAgICAgICAgICB8ICUxMHAgfCAlcCBc
biIsIGl0LCBwYy5qaXRSZXR1cm5BZGRyZXNzKCkudmFsdWUoKSk7Ci0gICAgLS1pdDsKLSNlbmRp
ZgotICAgIGRhdGFMb2dGKCJbQ2FsbGVyRnJhbWVdICAgICAgICAgICAgICB8ICUxMHAgfCAlcCBc
biIsIGl0LCBjYWxsRnJhbWUtPmNhbGxlckZyYW1lKCkpOwotICAgIC0taXQ7Ci0gICAgZGF0YUxv
Z0YoIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iKTsKLQotICAgIHNpemVfdCBudW1iZXJPZkNhbGxl
ZVNhdmVTbG90cyA9IGNvZGVCbG9jay0+Y2FsbGVlU2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJz
KCk7Ci0gICAgY29uc3QgUmVnaXN0ZXIqIGVuZE9mQ2FsbGVlU2F2ZXMgPSBpdCAtIG51bWJlck9m
Q2FsbGVlU2F2ZVNsb3RzOwotCi0gICAgZW5kID0gaXQgLSBjb2RlQmxvY2stPm51bVZhcnMoKTsK
LSAgICBpZiAoaXQgIT0gZW5kKSB7Ci0gICAgICAgIGRvIHsKLSAgICAgICAgICAgIEpTVmFsdWUg
diA9IGl0LT5qc1ZhbHVlKCk7Ci0gICAgICAgICAgICBpbnQgcmVnaXN0ZXJOdW1iZXIgPSBpdCAt
IGNhbGxGcmFtZS0+cmVnaXN0ZXJzKCk7Ci0gICAgICAgICAgICBTdHJpbmcgbmFtZSA9IChpdCA+
IGVuZE9mQ2FsbGVlU2F2ZXMpCi0gICAgICAgICAgICAgICAgPyAiQ2FsbGVlU2F2ZVJlZyIKLSAg
ICAgICAgICAgICAgICA6IGNvZGVCbG9jay0+bmFtZUZvclJlZ2lzdGVyKFZpcnR1YWxSZWdpc3Rl
cihyZWdpc3Rlck51bWJlcikpOwotICAgICAgICAgICAgQ1N0cmluZyB2YWx1ZVN0cmluZyA9IChp
dCA+IGVuZE9mQ2FsbGVlU2F2ZXMpID8gIiIgOiB0b0NTdHJpbmcodik7Ci0gICAgICAgICAgICBk
YXRhTG9nRigiW3IlIDNkICUxNHNdICAgICAgfCAlMTBwIHwgJS0xNnMgMHglbGxkIFxuIiwgcmVn
aXN0ZXJOdW1iZXIsIG5hbWUuYXNjaWkoKS5kYXRhKCksIGl0LCB2YWx1ZVN0cmluZy5kYXRhKCks
IChsb25nIGxvbmcpSlNWYWx1ZTo6ZW5jb2RlKHYpKTsKLSAgICAgICAgICAgIC0taXQ7Ci0gICAg
ICAgIH0gd2hpbGUgKGl0ICE9IGVuZCk7Ci0gICAgfQotICAgIGRhdGFMb2dGKCItLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLVxuIik7Ci0KLSAgICBlbmQgPSBpdCAtIGNvZGVCbG9jay0+bnVtQ2FsbGVlTG9j
YWxzKCkgKyBjb2RlQmxvY2stPm51bVZhcnMoKTsKLSAgICBpZiAoaXQgIT0gZW5kKSB7Ci0gICAg
ICAgIGRvIHsKLSAgICAgICAgICAgIEpTVmFsdWUgdiA9ICgqaXQpLmpzVmFsdWUoKTsKLSAgICAg
ICAgICAgIGludCByZWdpc3Rlck51bWJlciA9IGl0IC0gY2FsbEZyYW1lLT5yZWdpc3RlcnMoKTsK
LSAgICAgICAgICAgIENTdHJpbmcgdmFsdWVTdHJpbmcgPQotICAgICAgICAgICAgICAgICh2Lmlz
Q2VsbCgpICYmICFWTUluc3BlY3Rvcjo6aXNWYWxpZENlbGwoJnZtLmhlYXAsIHJlaW50ZXJwcmV0
X2Nhc3Q8SlNDZWxsKj4oSlNWYWx1ZTo6ZW5jb2RlKHYpKSkpCi0gICAgICAgICAgICAgICAgPyAi
SU5WQUxJRCIKLSAgICAgICAgICAgICAgICA6IHRvQ1N0cmluZyh2KTsKLSAgICAgICAgICAgIGRh
dGFMb2dGKCJbciUgM2RdICAgICAgICAgICAgICAgICAgICAgfCAlMTBwIHwgJS0xNnMgMHglbGxk
IFxuIiwgcmVnaXN0ZXJOdW1iZXIsIGl0LCB2YWx1ZVN0cmluZy5kYXRhKCksIChsb25nIGxvbmcp
SlNWYWx1ZTo6ZW5jb2RlKHYpKTsKLSAgICAgICAgICAgIC0taXQ7Ci0gICAgICAgIH0gd2hpbGUg
KGl0ICE9IGVuZCk7Ci0gICAgfQotICAgIGRhdGFMb2dGKCItLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxu
Iik7Ci19Ci0KLSNlbmRpZgotCiAjaWYgIUFTU0VSVF9ESVNBQkxFRAogYm9vbCBJbnRlcnByZXRl
cjo6aXNPcGNvZGUoT3Bjb2RlIG9wY29kZSkKIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5oCShyZXZpc2lvbiAyMzU0MDcpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuaAkod29ya2luZyBj
b3B5KQpAQCAtMTI3LDggKzEyNyw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RXaXRoTmF0aXZlRXJyb3JDb25z
dHJ1Y3RvcihFeGVjU3RhdGUqKTsKICAgICAgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgY2FsbE5hdGl2ZUVycm9yQ29uc3RydWN0b3IoRXhlY1N0YXRlKik7CiAKLSAgICAg
ICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBkdW1wQ2FsbEZyYW1lKENhbGxGcmFtZSopOwotCiAg
ICAgICAgIHZvaWQgZ2V0U3RhY2tUcmFjZShKU0NlbGwqIG93bmVyLCBWZWN0b3I8U3RhY2tGcmFt
ZT4mIHJlc3VsdHMsIHNpemVfdCBmcmFtZXNUb1NraXAgPSAwLCBzaXplX3QgbWF4U3RhY2tTaXpl
ID0gc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSk7CiAKICAgICBwcml2YXRlOgpA
QCAtMTUwLDEwICsxNDgsNiBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBKU1ZhbHVlIGV4
ZWN1dGUoQ2FsbEZyYW1lQ2xvc3VyZSYpOwogCi0KLQotICAgICAgICB2b2lkIGR1bXBSZWdpc3Rl
cnMoQ2FsbEZyYW1lKik7Ci0gICAgICAgIAogICAgICAgICBWTSYgbV92bTsKICNpZiAhRU5BQkxF
KEpJVCkKICAgICAgICAgQ0xvb3BTdGFjayBtX2Nsb29wU3RhY2s7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0uY3BwCShyZXZpc2lvbiAyMzU0MDcpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTE0OTAsNiArMTQ5MCwzNiBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBmdW5jCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAor
Ly8gRHVtcHMgdGhlIGN1cnJlbnQgQ2FsbEZyYW1lLgorLy8gVXNhZ2U6ICR2bS5kdW1wUmVnaXN0
ZXJzKE4pIC8vIGR1bXAgdGhlIHJlZ2lzdGVycyBvZiB0aGUgTnRoIENhbGxGcmFtZS4KKy8vIFVz
YWdlOiAkdm0uZHVtcFJlZ2lzdGVycygpIC8vIGR1bXAgdGhlIHJlZ2lzdGVycyBvZiB0aGUgY3Vy
cmVudCBDYWxsRnJhbWUuCisvLyBGSVhNRTogQ3VycmVudGx5LCB0aGlzIGZ1bmN0aW9uIGR1bXBz
IHRoZSBwaHlzaWNhbCBmcmFtZS4gV2Ugc2hvdWxkIG1ha2UKKy8vIGl0IGR1bXAgdGhlIGxvZ2lj
YWwgZnJhbWUgKGkuZS4gYmUgYWJsZSB0byBkdW1wIGlubGluZWQgZnJhbWVzIGFzIHdlbGwpLgor
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25EdW1wUmVnaXN0ZXJz
KEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICB1bnNpZ25lZCByZXF1ZXN0ZWRGcmFtZUluZGV4ID0g
MTsKKyAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpID49IDEpIHsKKyAgICAgICAgSlNWYWx1
ZSB2YWx1ZSA9IGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApOworICAgICAgICBpZiAoIXZhbHVl
LmlzVUludDMyKCkpCisgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOworCisgICAgICAgIC8vIFdlIG5lZWQgdG8gaW5jIHRoZSBmcmFtZSBudW1iZXIgYmVj
YXVzZSB0aGUgY2FsbGVyIHdvdWxkIGNvbnNpZGVyCisgICAgICAgIC8vIGl0cyBvd24gZnJhbWUg
YXMgZnJhbWUgMC4gSGVuY2UsIHdlIG5lZWQgZGlzY291bnQgdGhlIGZyYW1lIGZvciB0aGlzCisg
ICAgICAgIC8vIGZ1bmN0aW9uLgorICAgICAgICByZXF1ZXN0ZWRGcmFtZUluZGV4ID0gdmFsdWUu
YXNVSW50MzIoKSArIDE7CisgICAgfQorCisgICAgdW5zaWduZWQgZnJhbWVJbmRleCA9IDA7Cisg
ICAgZXhlYy0+aXRlcmF0ZShbJl0gKFN0YWNrVmlzaXRvciYgdmlzaXRvcikgeworICAgICAgICBp
ZiAoZnJhbWVJbmRleCsrICE9IHJlcXVlc3RlZEZyYW1lSW5kZXgpCisgICAgICAgICAgICByZXR1
cm4gU3RhY2tWaXNpdG9yOjpDb250aW51ZTsKKyAgICAgICAgVk1JbnNwZWN0b3I6OmR1bXBSZWdp
c3RlcnModmlzaXRvci0+Y2FsbEZyYW1lKCkpOworICAgICAgICByZXR1cm4gU3RhY2tWaXNpdG9y
OjpEb25lOworICAgIH0pOworCisgICAgcmV0dXJuIGVuY29kZWRKU1VuZGVmaW5lZCgpOworfQor
CiAvLyBEdW1wcyB0aGUgaW50ZXJuYWwgbWVtb3J5IGxheW91dCBvZiBhIEpTQ2VsbC4KIC8vIFVz
YWdlOiAkdm0uZHVtcENlbGwoY2VsbCkKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGZ1bmN0aW9uRHVtcENlbGwoRXhlY1N0YXRlKiBleGVjKQpAQCAtMjAyMCw2ICsyMDUwLDcg
QEAgdm9pZCBKU0RvbGxhclZNOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiAgICAgYWRkRnVuY3Rp
b24odm0sICJwcmludCIsIGZ1bmN0aW9uUHJpbnQsIDEpOwogICAgIGFkZEZ1bmN0aW9uKHZtLCAi
ZHVtcENhbGxGcmFtZSIsIGZ1bmN0aW9uRHVtcENhbGxGcmFtZSwgMCk7CiAgICAgYWRkRnVuY3Rp
b24odm0sICJkdW1wU3RhY2siLCBmdW5jdGlvbkR1bXBTdGFjaywgMCk7CisgICAgYWRkRnVuY3Rp
b24odm0sICJkdW1wUmVnaXN0ZXJzIiwgZnVuY3Rpb25EdW1wUmVnaXN0ZXJzLCAxKTsKIAogICAg
IGFkZEZ1bmN0aW9uKHZtLCAiZHVtcENlbGwiLCBmdW5jdGlvbkR1bXBDZWxsLCAxKTsKIApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL1ZNSW5zcGVjdG9yLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvVk1JbnNwZWN0b3IuY3BwCShyZXZpc2lv
biAyMzU0MDcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvVk1JbnNwZWN0b3IuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zNjcsNiArMzY3LDk3IEBAIHZvaWQgVk1JbnNwZWN0b3I6OmR1
bXBDYWxsRnJhbWUoQ2FsbEZyYW0KICAgICBjYWxsRnJhbWUtPml0ZXJhdGUoZnVuY3Rvcik7CiB9
CiAKK3ZvaWQgVk1JbnNwZWN0b3I6OmR1bXBSZWdpc3RlcnMoQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
Cit7CisgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBjYWxsRnJhbWUtPmNvZGVCbG9jaygpOwor
ICAgIGlmICghY29kZUJsb2NrKSB7CisgICAgICAgIGRhdGFMb2coIkR1bXBpbmcgaG9zdCBmcmFt
ZSByZWdpc3RlcnMgbm90IHN1cHBvcnRlZC5cbiIpOworICAgICAgICByZXR1cm47CisgICAgfQor
ICAgIFZNJiB2bSA9ICpjb2RlQmxvY2stPnZtKCk7CisgICAgYXV0byB2YWx1ZUFzU3RyaW5nID0g
WyZdIChKU1ZhbHVlIHYpIC0+IENTdHJpbmcgeworICAgICAgICBpZiAoIXYuaXNDZWxsKCkgfHwg
Vk1JbnNwZWN0b3I6OmlzVmFsaWRDZWxsKCZ2bS5oZWFwLCByZWludGVycHJldF9jYXN0PEpTQ2Vs
bCo+KEpTVmFsdWU6OmVuY29kZSh2KSkpKQorICAgICAgICAgICAgcmV0dXJuIHRvQ1N0cmluZyh2
KTsKKyAgICAgICAgcmV0dXJuICIiOworICAgIH07CisKKyAgICBkYXRhTG9nRigiUmVnaXN0ZXIg
ZnJhbWU6IFxuXG4iKTsKKyAgICBkYXRhTG9nRigiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIpOwor
ICAgIGRhdGFMb2dGKCIgICAgICAgICAgICB1c2UgICAgICAgICAgICB8ICAgYWRkcmVzcyAgfCAg
ICAgICAgICAgICAgICB2YWx1ZSAgICAgICAgICAgICAgIFxuIik7CisgICAgZGF0YUxvZ0YoIi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tXG4iKTsKKworICAgIGNvbnN0IFJlZ2lzdGVyKiBpdDsKKyAgICBj
b25zdCBSZWdpc3RlciogZW5kOworCisgICAgaXQgPSBjYWxsRnJhbWUtPnJlZ2lzdGVycygpICsg
Q2FsbEZyYW1lU2xvdDo6dGhpc0FyZ3VtZW50ICsgY2FsbEZyYW1lLT5hcmd1bWVudENvdW50KCk7
CisgICAgZW5kID0gY2FsbEZyYW1lLT5yZWdpc3RlcnMoKSArIENhbGxGcmFtZVNsb3Q6OnRoaXNB
cmd1bWVudCAtIDE7CisgICAgd2hpbGUgKGl0ID4gZW5kKSB7CisgICAgICAgIEpTVmFsdWUgdiA9
IGl0LT5qc1ZhbHVlKCk7CisgICAgICAgIGludCByZWdpc3Rlck51bWJlciA9IGl0IC0gY2FsbEZy
YW1lLT5yZWdpc3RlcnMoKTsKKyAgICAgICAgU3RyaW5nIG5hbWUgPSBjb2RlQmxvY2stPm5hbWVG
b3JSZWdpc3RlcihWaXJ0dWFsUmVnaXN0ZXIocmVnaXN0ZXJOdW1iZXIpKTsKKyAgICAgICAgZGF0
YUxvZ0YoIltyJSAzZCAlMTRzXSAgICAgIHwgJTEwcCB8IDB4JS0xNmxseCAlc1xuIiwgcmVnaXN0
ZXJOdW1iZXIsIG5hbWUuYXNjaWkoKS5kYXRhKCksIGl0LCAobG9uZyBsb25nKUpTVmFsdWU6OmVu
Y29kZSh2KSwgdmFsdWVBc1N0cmluZyh2KS5kYXRhKCkpOworICAgICAgICAtLWl0OworICAgIH0K
KyAgICAKKyAgICBkYXRhTG9nRigiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIpOworICAgIGRhdGFM
b2dGKCJbQXJndW1lbnRDb3VudF0gICAgICAgICAgICB8ICUxMHAgfCAlbHUgXG4iLCBpdCwgKHVu
c2lnbmVkIGxvbmcpIGNhbGxGcmFtZS0+YXJndW1lbnRDb3VudCgpKTsKKworICAgIGNhbGxGcmFt
ZS0+aXRlcmF0ZShbJl0gKFN0YWNrVmlzaXRvciYgdmlzaXRvcikgeworICAgICAgICBpZiAodmlz
aXRvci0+Y2FsbEZyYW1lKCkgPT0gY2FsbEZyYW1lKSB7CisgICAgICAgICAgICB1bnNpZ25lZCBs
aW5lID0gMDsKKyAgICAgICAgICAgIHVuc2lnbmVkIHVudXNlZENvbHVtbiA9IDA7CisgICAgICAg
ICAgICB2aXNpdG9yLT5jb21wdXRlTGluZUFuZENvbHVtbihsaW5lLCB1bnVzZWRDb2x1bW4pOwor
ICAgICAgICAgICAgZGF0YUxvZ0YoIltSZXR1cm5WUENdICAgICAgICAgICAgICAgIHwgJTEwcCB8
ICVkIChsaW5lICVkKVxuIiwgaXQsIHZpc2l0b3ItPmJ5dGVjb2RlT2Zmc2V0KCksIGxpbmUpOwor
ICAgICAgICAgICAgcmV0dXJuIFN0YWNrVmlzaXRvcjo6RG9uZTsKKyAgICAgICAgfQorICAgICAg
ICByZXR1cm4gU3RhY2tWaXNpdG9yOjpDb250aW51ZTsKKyAgICB9KTsKKworICAgIC0taXQ7Cisg
ICAgZGF0YUxvZ0YoIltDYWxsZWVdICAgICAgICAgICAgICAgICAgIHwgJTEwcCB8IDB4JS0xNmxs
eCAlc1xuIiwgaXQsIChsb25nIGxvbmcpY2FsbEZyYW1lLT5jYWxsZWUoKS5yYXdQdHIoKSwgdmFs
dWVBc1N0cmluZyhpdC0+anNWYWx1ZSgpKS5kYXRhKCkpOworICAgIC0taXQ7CisgICAgZGF0YUxv
Z0YoIltDb2RlQmxvY2tdICAgICAgICAgICAgICAgIHwgJTEwcCB8IDB4JS0xNmxseCAiLCBpdCwg
KGxvbmcgbG9uZyljb2RlQmxvY2spOworICAgIGRhdGFMb2dMbihjb2RlQmxvY2spOworICAgIC0t
aXQ7CisjaWYgRU5BQkxFKEpJVCkKKyAgICBBYnN0cmFjdFBDIHBjID0gY2FsbEZyYW1lLT5hYnN0
cmFjdFJldHVyblBDKGNhbGxGcmFtZS0+dm0oKSk7CisgICAgaWYgKHBjLmhhc0pJVFJldHVybkFk
ZHJlc3MoKSkKKyAgICAgICAgZGF0YUxvZ0YoIltSZXR1cm5QQ10gICAgICAgICAgICAgICAgIHwg
JTEwcCB8ICVwIFxuIiwgaXQsIHBjLmppdFJldHVybkFkZHJlc3MoKS52YWx1ZSgpKTsKKyAgICAt
LWl0OworI2VuZGlmCisgICAgZGF0YUxvZ0YoIltDYWxsZXJGcmFtZV0gICAgICAgICAgICAgIHwg
JTEwcCB8ICVwIFxuIiwgaXQsIGNhbGxGcmFtZS0+Y2FsbGVyRnJhbWUoKSk7CisgICAgLS1pdDsK
KyAgICBkYXRhTG9nRigiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIpOworCisgICAgc2l6ZV90IG51
bWJlck9mQ2FsbGVlU2F2ZVNsb3RzID0gY29kZUJsb2NrLT5jYWxsZWVTYXZlU3BhY2VBc1ZpcnR1
YWxSZWdpc3RlcnMoKTsKKyAgICBjb25zdCBSZWdpc3RlciogZW5kT2ZDYWxsZWVTYXZlcyA9IGl0
IC0gbnVtYmVyT2ZDYWxsZWVTYXZlU2xvdHM7CisKKyAgICBlbmQgPSBpdCAtIGNvZGVCbG9jay0+
bnVtVmFycygpOworICAgIGlmIChpdCAhPSBlbmQpIHsKKyAgICAgICAgZG8geworICAgICAgICAg
ICAgSlNWYWx1ZSB2ID0gaXQtPmpzVmFsdWUoKTsKKyAgICAgICAgICAgIGludCByZWdpc3Rlck51
bWJlciA9IGl0IC0gY2FsbEZyYW1lLT5yZWdpc3RlcnMoKTsKKyAgICAgICAgICAgIFN0cmluZyBu
YW1lID0gKGl0ID4gZW5kT2ZDYWxsZWVTYXZlcykKKyAgICAgICAgICAgICAgICA/ICJDYWxsZWVT
YXZlUmVnIgorICAgICAgICAgICAgICAgIDogY29kZUJsb2NrLT5uYW1lRm9yUmVnaXN0ZXIoVmly
dHVhbFJlZ2lzdGVyKHJlZ2lzdGVyTnVtYmVyKSk7CisgICAgICAgICAgICBkYXRhTG9nRigiW3Il
IDNkICUxNHNdICAgICAgfCAlMTBwIHwgMHglLTE2bGx4ICVzXG4iLCByZWdpc3Rlck51bWJlciwg
bmFtZS5hc2NpaSgpLmRhdGEoKSwgaXQsIChsb25nIGxvbmcpSlNWYWx1ZTo6ZW5jb2RlKHYpLCB2
YWx1ZUFzU3RyaW5nKHYpLmRhdGEoKSk7CisgICAgICAgICAgICAtLWl0OworICAgICAgICB9IHdo
aWxlIChpdCAhPSBlbmQpOworICAgIH0KKyAgICBkYXRhTG9nRigiLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS1cbiIpOworCisgICAgZW5kID0gaXQgLSBjb2RlQmxvY2stPm51bUNhbGxlZUxvY2FscygpICsg
Y29kZUJsb2NrLT5udW1WYXJzKCk7CisgICAgaWYgKGl0ICE9IGVuZCkgeworICAgICAgICBkbyB7
CisgICAgICAgICAgICBKU1ZhbHVlIHYgPSAoKml0KS5qc1ZhbHVlKCk7CisgICAgICAgICAgICBp
bnQgcmVnaXN0ZXJOdW1iZXIgPSBpdCAtIGNhbGxGcmFtZS0+cmVnaXN0ZXJzKCk7CisgICAgICAg
ICAgICBkYXRhTG9nRigiW3IlIDNkXSAgICAgICAgICAgICAgICAgICAgIHwgJTEwcCB8IDB4JS0x
NmxseCAlc1xuIiwgcmVnaXN0ZXJOdW1iZXIsIGl0LCAobG9uZyBsb25nKUpTVmFsdWU6OmVuY29k
ZSh2KSwgdmFsdWVBc1N0cmluZyh2KS5kYXRhKCkpOworICAgICAgICAgICAgLS1pdDsKKyAgICAg
ICAgfSB3aGlsZSAoaXQgIT0gZW5kKTsKKyAgICB9CisgICAgZGF0YUxvZ0YoIi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tXG4iKTsKK30KKwogdm9pZCBWTUluc3BlY3Rvcjo6ZHVtcFN0YWNrKENhbGxGcmFt
ZSogdG9wQ2FsbEZyYW1lLCB1bnNpZ25lZCBmcmFtZXNUb1NraXApCiB7CiAgICAgaWYgKCFlbnN1
cmVDdXJyZW50VGhyZWFkT3duc0pTTG9jayh0b3BDYWxsRnJhbWUpKQpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rvb2xzL1ZNSW5zcGVjdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rvb2xzL1ZNSW5zcGVjdG9yLmgJKHJldmlzaW9uIDIzNTQwNykKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9WTUluc3BlY3Rvci5oCSh3b3JraW5nIGNvcHkpCkBA
IC03MCw2ICs3MCw3IEBAIHB1YmxpYzoKICAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgYm9v
bCBpc1ZhbGlkQ29kZUJsb2NrKEV4ZWNTdGF0ZSosIENvZGVCbG9jayopOwogICAgIEpTX0VYUE9S
VF9QUklWQVRFIHN0YXRpYyBDb2RlQmxvY2sqIGNvZGVCbG9ja0ZvckZyYW1lKENhbGxGcmFtZSog
dG9wQ2FsbEZyYW1lLCB1bnNpZ25lZCBmcmFtZU51bWJlcik7CiAgICAgSlNfRVhQT1JUX1BSSVZB
VEUgc3RhdGljIHZvaWQgZHVtcENhbGxGcmFtZShDYWxsRnJhbWUqLCB1bnNpZ25lZCBmcmFtZXNU
b1NraXAgPSAwKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgdm9pZCBkdW1wUmVnaXN0
ZXJzKENhbGxGcmFtZSopOwogICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyB2b2lkIGR1bXBT
dGFjayhDYWxsRnJhbWUqIHRvcENhbGxGcmFtZSwgdW5zaWduZWQgZnJhbWVzVG9Ta2lwID0gMCk7
CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIHZvaWQgZHVtcFZhbHVlKEpTVmFsdWUpOwog
ICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyB2b2lkIGR1bXBDZWxsTWVtb3J5KEpTQ2VsbCop
Owo=
</data>
<flag name="review"
          id="366001"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>