<?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>187215</bug_id>
          
          <creation_ts>2018-06-29 22:22:36 -0700</creation_ts>
          <short_desc>Generate event and event target interface types directly instead of via macros</short_desc>
          <delta_ts>2018-07-02 15:55:24 -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>UI Events</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="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>cdumez</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kangil.han</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1438109</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-06-29 22:22:36 -0700</bug_when>
    <thetext>Right now, make_event_factory.pl generates a bunch of macros in order to define EventInterface
and EventTargetInterface as well as toJS and toJSNewlyCreated.

Generate the final code directly to make debugging easier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1438115</commentid>
    <comment_count>1</comment_count>
      <attachid>343998</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-06-29 22:45:21 -0700</bug_when>
    <thetext>Created attachment 343998
Cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1438130</commentid>
    <comment_count>2</comment_count>
      <attachid>344004</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-06-29 23:58:45 -0700</bug_when>
    <thetext>Created attachment 344004
Cmake build fix attempt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1438677</commentid>
    <comment_count>3</comment_count>
      <attachid>344004</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-07-02 15:43:19 -0700</bug_when>
    <thetext>Comment on attachment 344004
Cmake build fix attempt

View in context: https://bugs.webkit.org/attachment.cgi?id=344004&amp;action=review

&gt; Source/WebCore/ChangeLog:9
&gt; +        and EventTargetInterface enum values and toJS for EventTarget. Removed the code to generate EvnentFactory::create

Typo: EvnentFactory</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1438681</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-07-02 15:54:34 -0700</bug_when>
    <thetext>Committed r233443: &lt;https://trac.webkit.org/changeset/233443&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1438682</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-07-02 15:55:24 -0700</bug_when>
    <thetext>&lt;rdar://problem/41745345&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>343998</attachid>
            <date>2018-06-29 22:45:21 -0700</date>
            <delta_ts>2018-06-29 23:58:43 -0700</delta_ts>
            <desc>Cleanup</desc>
            <filename>bug-187215-20180629224520.patch</filename>
            <type>text/plain</type>
            <size>19929</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzMzM4OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQxIEBACisyMDE4LTA2LTI5ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIEdlbmVyYXRlIGV2ZW50IGFuZCBl
dmVudCB0YXJnZXQgaW50ZXJmYWNlIHR5cGVzIGRpcmVjdGx5IGluc3RlYWQgb2YgdmlhIG1hY3Jv
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg3MjE1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFkZSBt
YWtlX2V2ZW50X2ZhY3RvcnkucGwgZGlyZWN0bHkgZ2VuZXJhdGUgRXZlbnRJbnRlcmZhY2UgZW51
bSB2YWx1ZXMgYW5kIHRvSlNOZXdseUNyZWF0ZWQgZm9yIEV2ZW50LAorICAgICAgICBhbmQgRXZl
bnRUYXJnZXRJbnRlcmZhY2UgZW51bSB2YWx1ZXMgYW5kIHRvSlMgZm9yIEV2ZW50VGFyZ2V0LiBS
ZW1vdmVkIHRoZSBjb2RlIHRvIGdlbmVyYXRlIEV2bmVudEZhY3Rvcnk6OmNyZWF0ZQorICAgICAg
ICBzaW5jZSBpdCB3YXMgbmV2ZXIgZXZlbiBjb21waWxlZCBvciB1c2VkIGFueXdoZXJlLgorCisg
ICAgICAgIFRoaXMgcGF0Y2ggZmFpdGhmdWxseSByZXBsaWNhdGVzIHdoYXQgdGhlIG1hY3JvIHVz
ZWQgdG8gZ2VuZXJhdGUgYnV0IHdlIHNob3VsZCBjb25zaWRlciBhbHdheXMgZ2VuZXJhdGluZyBl
aXRoZXIKKyAgICAgICAgdG9KUyBvciB0b0pTTmV3bHlDcmVhdGVkIGZvciBib3RoIGludGVyZmFj
ZXMgaW4gdGhlIGZ1dHVyZS4KKworICAgICAgICBObyBuZXcgdGVzdHMgc2luY2UgdGhlcmUgc2hv
dWxkIGJlIG5vIG9ic2VydmFibGUgYmVoYXZpb3JhbCBjaGFuZ2VzLgorCisgICAgICAgICogRGVy
aXZlZFNvdXJjZXMubWFrZTogR2VuZXJhdGUgRXZlbnRUYXJnZXRGYWN0b3J5LmNwcCwgd2hpY2gg
aXMgdXNlZCB0byBnZW5lcmF0ZSB0b0pTIGZ1bmN0aW9uIGZvciBFdmVudFRhcmdldC4KKyAgICAg
ICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvSlNFdmVudEN1c3RvbS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjp0b0pTTmV3bHlDcmVhdGVkKTogRGVsZXRlZC4gTm93IGdlbmVyYXRlZCBkaXJl
Y3RseSBpbiBFdmVudEZhY3RvcnkuY3BwLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRXZlbnRU
YXJnZXRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNFdmVudFRhcmdldDo6dG9XcmFw
cGVkKTogUmVtb3ZlZCB0aGUgdXNlIG9mIFRSWV9UT19VTldSQVBfV0lUSF9JTlRFUkZBQ0UuCisg
ICAgICAgIChXZWJDb3JlOjp0b0pTKTogRGVsZXRlZC4gTm93IGdlbmVyYXRlZCBkaXJlY3RseSBp
biBFdmVudEZhY3RvcnkuY3BwLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvSW5GaWxlc0Nv
bXBpbGVyLnBtOgorICAgICAgICAoZ2VuZXJhdGVJbnRlcmZhY2VzSGVhZGVyKTogVXNlICNwcmFn
bWEgb25jZS4gR2VuZXJhdGUgZW51bSB2YWx1ZXMgZGlyZWN0bHkuIEFkZGVkIHRoZSBzdXBwb3J0
IGZvciBzdWZmaXhpbmcKKyAgICAgICAgZWFjaCB0eXBlIG5hbWUgd2l0aCBuYW1lc3BhY2UgZm9y
IEV2ZW50VGFyZ2V0LgorICAgICAgICAqIGRvbS9FdmVudC5oOiBSZW1vdmVkIHRoZSBkZWNsYXJh
dGlvbiBvZiBFdmVudEludGVyZmFjZSBlbnVtLiBJdCdzIG5vdyBkaXJlY3RseSBnZW5lcmF0ZWQg
aW4gRXZlbnRJbnRlcmZhY2VzLmgKKyAgICAgICAgKiBkb20vRXZlbnROYW1lcy5pbjogR2VuZXJh
dGUgdG9KU05ld2x5Q3JlYXRlZC4KKyAgICAgICAgKiBkb20vRXZlbnRUYXJnZXQuaDogUmVtb3Zl
ZCB0aGUgZGVjbGFyYXRpb24gb2YgRXZlbnRUYXJnZXRJbnRlcmZhY2UgYXMgaXQncyBub3cgZG9u
ZSBpbiBFdmVudFRhcmdldEludGVyZmFjZXMuaC4KKyAgICAgICAgKiBkb20vRXZlbnRUYXJnZXRG
YWN0b3J5LmluOiBHZW5lcmF0ZSB0b0pTLgorICAgICAgICAqIGRvbS9tYWtlX2V2ZW50X2ZhY3Rv
cnkucGw6CisgICAgICAgIChkZWZhdWx0UGFyYW1ldGVycyk6IEFkZGVkIHR3byBuZXcgb3B0aW9u
cy4gZmFjdG9yeUZ1bmN0aW9uIHNwZWNpZmllcyB3aGV0aGVyIHRvSlMgb3IgdG9KU05ld2x5Q3Jl
YXRlZCBpcyBnZW5lcmF0ZWQsCisgICAgICAgIGFuZCB1c2VOYW1lc3BhY2VBc1N1ZmZpeCBzcGVj
aWZpZXMgd2hldGhlciBlYWNoIGVudHJ5IHNob3VsZCBiZSBzdWZmaXhlZCBieSB0aGUgbmFtZXNw
YWNlICh1c2VkIGJ5IEV2ZW50VGFyZ2V0KS4KKyAgICAgICAgKGdlbmVyYXRlQ29kZSk6IEFkZGVk
IGEgbWlzc2luZyBzZW1pY29sb24uCisgICAgICAgIChnZW5lcmF0ZUltcGxlbWVudGF0aW9uKTog
UmVtb3ZlZCB0aGUgZWFybHkgZXhpdCBmb3IgRXZlbnRUYXJnZXQgc2luY2Ugd2Ugbm93IG5lZWQg
dG8gZ2VuZXJhdGUgaXRzIHRvSlMgZnVuY3Rpb24uCisgICAgICAgIFJlcGxhY2VkIHRoZSBjb2Rl
IHRvIGdlbmVyYXRlIEV2ZW50RmFjdG9yeTo6Y3JlYXRlIGJ5IHRoZSBvbmUgdG8gZ2VuZXJhdGUg
dG9KUyAvIHRvSlNOZXdseUNyZWF0ZWQuCisKIDIwMTgtMDYtMjkgIEFudHRpIEtvaXZpc3RvICA8
YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyMzI4MDYpOiBGYWNlYm9v
ayBsb2dpbiBmaWVsZHMgaGF2ZSBibHVlIGZpbGwgYmFja2dyb3VuZCBpbnN0ZWFkIG9mIHdoaXRl
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDIzMzM4OSkKKysr
IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkKQEAgLTEz
OTYsOCArMTM5Niw4IEBAIEV2ZW50RmFjdG9yeSVjcHAgRXZlbnRIZWFkZXJzJWggRXZlbnRJbnQK
IAogRVZFTlRfVEFSR0VUX0ZBQ1RPUlkgPSBFdmVudFRhcmdldEZhY3RvcnkuaW4gJChBRERJVElP
TkFMX0VWRU5UX1RBUkdFVF9GQUNUT1JZKQogCi1hbGwgOiBFdmVudFRhcmdldEhlYWRlcnMuaCBF
dmVudFRhcmdldEludGVyZmFjZXMuaAotRXZlbnRUYXJnZXRIZWFkZXJzJWggRXZlbnRUYXJnZXRJ
bnRlcmZhY2VzJWggOiBkb20vbWFrZV9ldmVudF9mYWN0b3J5LnBsICQoRVZFTlRfVEFSR0VUX0ZB
Q1RPUlkpCithbGwgOiBFdmVudFRhcmdldEZhY3RvcnkuY3BwIEV2ZW50VGFyZ2V0SGVhZGVycy5o
IEV2ZW50VGFyZ2V0SW50ZXJmYWNlcy5oCitFdmVudFRhcmdldEZhY3RvcnklY3BwIEV2ZW50VGFy
Z2V0SGVhZGVycyVoIEV2ZW50VGFyZ2V0SW50ZXJmYWNlcyVoIDogZG9tL21ha2VfZXZlbnRfZmFj
dG9yeS5wbCAkKEVWRU5UX1RBUkdFVF9GQUNUT1JZKQogCSQoUEVSTCkgJDwgJChhZGRwcmVmaXgg
LS1pbnB1dCAsICQoZmlsdGVyLW91dCAkKFdlYkNvcmUpL2RvbS9tYWtlX2V2ZW50X2ZhY3Rvcnku
cGwsICReKSkKIAogIyAtLS0tLS0tLQpJbmRleDogU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQJKHJldmlzaW9uIDIzMzM4
OSkKKysrIFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yMzYx
LDYgKzIzNjEsOCBAQCB4bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyU2NvcGUuY3BwCiAKIENT
U1ZhbHVlS2V5d29yZHMuY3BwCiBDb2xvckRhdGEuY3BwCitFdmVudEZhY3RvcnkuY3BwCitFdmVu
dFRhcmdldEZhY3RvcnkuY3BwCiBIVE1MRWxlbWVudEZhY3RvcnkuY3BwCiBIVE1MRW50aXR5VGFi
bGUuY3BwCiBNYXRoTUxFbGVtZW50RmFjdG9yeS5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDIzMzM4OSkK
KysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29y
a2luZyBjb3B5KQpAQCAtMTA4NDMsNiArMTA4NDMsNyBAQAogCQk5QjZDNDE1MjEzNDQ5NDkwMDAw
ODVCNjIgLyogU3RyaW5nV2l0aERpcmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTdHJpbmdXaXRoRGlyZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTlCNzE0RTFFMUM5MTE2NjkwMEFDMEU5MiAvKiBFdmVudFBhdGguY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRXZlbnRQYXRoLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOUI3MTRFMUYxQzkxMTY2OTAwQUMwRTkyIC8qIEV2ZW50UGF0aC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFdmVudFBhdGguaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOUI4NTUzMDUyMEU3MzNCNTAwOUVFRjRGIC8qIEV2ZW50VGFyZ2V0
RmFjdG9yeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBFdmVudFRh
cmdldEZhY3RvcnkuY3BwOyBwYXRoID0gRXZlbnRUYXJnZXRGYWN0b3J5LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUI5Mjk5QjAxRjY3OTZBNDAwNjcyM0MyIC8qIFdlYkNvbnRl
bnRSZWFkZXJDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IFdlYkNvbnRlbnRSZWFkZXJDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OUJBMjczRjMxNzIyMDZCQjAwOTdDRTQ3IC8qIExvZ2ljYWxTZWxlY3Rpb25PZmZzZXRDYWNoZXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9naWNhbFNlbGVjdGlvbk9mZnNl
dENhY2hlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QkE4Mjc3ODFGMDYxNTY1
MDBGNzFFNzUgLyogTmF2aWdhdGlvbkRpc2FibGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IE5hdmlnYXRpb25EaXNhYmxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTA4NTMsNiArMTA4NTQsNyBAQAogCQk5QkM1RjlERjFENUFBRjZBMDAyQjc0OUQgLyog
SlNDdXN0b21FbGVtZW50UmVnaXN0cnlDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNDdXN0b21FbGVtZW50UmVnaXN0cnlDdXN0b20uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5QkM2QzIxOTEzQ0NDOTdCMDA4RTAzMzcgLyogSFRNTFRl
eHRGb3JtQ29udHJvbEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOUJDNkMyMUExM0NDQzk3QjAwOEUwMzM3IC8qIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxUZXh0Rm9ybUNv
bnRyb2xFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUJDQ0NBNTMy
MEU3MDk1RDAwNjhGQjAzIC8qIEV2ZW50RmFjdG9yeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBFdmVudEZhY3RvcnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5QkQwQkY5MTEyQTQyQkY1MDA3MkZENDMgLyogU2NvcGVkRXZlbnRRdWV1ZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY29wZWRFdmVudFF1ZXVlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCRDBCRjkyMTJBNDJCRjUwMDcyRkQ0MyAvKiBTY29w
ZWRFdmVudFF1ZXVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNj
b3BlZEV2ZW50UXVldWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QkQxRjY4
MDFGMDQ2MkI4MDAxQzlDREQgLyogTGF5b3V0RGlzYWxsb3dlZFNjb3BlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExheW91dERpc2FsbG93ZWRTY29wZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTg4ODgsOCArMTg4OTAsMTAgQEAKIAkJCQk2NTY1ODE0ODA5
RDEzMDQzMDAwRTYxRDcgLyogQ1NTVmFsdWVLZXl3b3Jkcy5oICovLAogCQkJCUUzMzQ4MjVFMURD
OTNBQTAwMDlDOTU0NCAvKiBET01KSVRBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmggKi8sCiAJCQkJ
RTFDNkNGQzIxNzQ2RDI5MzAwN0I4N0ExIC8qIERPTVdpbmRvd0NvbnN0cnVjdG9ycy5pZGwgKi8s
CisJCQkJOUJDQ0NBNTMyMEU3MDk1RDAwNjhGQjAzIC8qIEV2ZW50RmFjdG9yeS5jcHAgKi8sCiAJ
CQkJOTcwQjcyQTUxNDUwMDhFQjAwRjAwQTM3IC8qIEV2ZW50SGVhZGVycy5oICovLAogCQkJCTk3
MEI3Mjg5MTQ0RkZBQzYwMEYwMEEzNyAvKiBFdmVudEludGVyZmFjZXMuaCAqLywKKwkJCQk5Qjg1
NTMwNTIwRTczM0I1MDA5RUVGNEYgLyogRXZlbnRUYXJnZXRGYWN0b3J5LmNwcCAqLywKIAkJCQk5
N0FBM0NBMzE0NTIzN0NDMDAzRTFEQTYgLyogRXZlbnRUYXJnZXRIZWFkZXJzLmggKi8sCiAJCQkJ
OTdBQTNDQTQxNDUyMzdDQzAwM0UxREE2IC8qIEV2ZW50VGFyZ2V0SW50ZXJmYWNlcy5oICovLAog
CQkJCUExN0M4MTIwMEYyQTVDRjcwMDVEQUFFQiAvKiBIVE1MRWxlbWVudEZhY3RvcnkuY3BwICov
LApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudEN1c3RvbS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudEN1c3RvbS5jcHAJ
KHJldmlzaW9uIDIzMzM4OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRD
dXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MiwxOSArNDIsNiBAQAogbmFtZXNwYWNlIFdl
YkNvcmUgewogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAotI2RlZmluZSBUUllfVE9fV1JBUF9XSVRI
X0lOVEVSRkFDRShpbnRlcmZhY2VOYW1lKSBcCi0gICAgY2FzZSBpbnRlcmZhY2VOYW1lIyNJbnRl
cmZhY2VUeXBlOiBcCi0gICAgICAgIHJldHVybiBjcmVhdGVXcmFwcGVyPGludGVyZmFjZU5hbWU+
KGdsb2JhbE9iamVjdCwgV1RGTW92ZShldmVudCkpOwotCi1KU1ZhbHVlIHRvSlNOZXdseUNyZWF0
ZWQoRXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPEV2ZW50
PiYmIGV2ZW50KQotewotICAgIHN3aXRjaCAoZXZlbnQtPmV2ZW50SW50ZXJmYWNlKCkpIHsKLSAg
ICAgICAgRE9NX0VWRU5UX0lOVEVSRkFDRVNfRk9SX0VBQ0goVFJZX1RPX1dSQVBfV0lUSF9JTlRF
UkZBQ0UpCi0gICAgfQotCi0gICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXI8RXZlbnQ+KGdsb2JhbE9i
amVjdCwgV1RGTW92ZShldmVudCkpOwotfQotCiBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBzdGF0
ZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRXZlbnQmIGV2ZW50KQogewogICAg
IHJldHVybiB3cmFwKHN0YXRlLCBnbG9iYWxPYmplY3QsIGV2ZW50KTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXRDdXN0b20uY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXRDdXN0b20uY3BwCShyZXZp
c2lvbiAyMzMzODkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0
Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDAsMzcgKzQwLDE5IEBACiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2UgSlNDOwogCi0jZGVmaW5lIFRSWV9UT19XUkFQX1dJ
VEhfSU5URVJGQUNFKGludGVyZmFjZU5hbWUpIFwKLSAgICBjYXNlIGludGVyZmFjZU5hbWUjI0V2
ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTogXAotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9i
YWxPYmplY3QsIHN0YXRpY19jYXN0PGludGVyZmFjZU5hbWUmPih0YXJnZXQpKTsKLQotSlNWYWx1
ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
RXZlbnRUYXJnZXQmIHRhcmdldCkKLXsKLSAgICBzd2l0Y2ggKHRhcmdldC5ldmVudFRhcmdldElu
dGVyZmFjZSgpKSB7Ci0gICAgRE9NX0VWRU5UX1RBUkdFVF9JTlRFUkZBQ0VTX0ZPUl9FQUNIKFRS
WV9UT19XUkFQX1dJVEhfSU5URVJGQUNFKQotICAgIH0KLQotICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwotICAgIHJldHVybiBqc051bGwoKTsKLX0KLQotI3VuZGVmIFRSWV9UT19XUkFQX1dJVEhf
SU5URVJGQUNFCi0KLSNkZWZpbmUgVFJZX1RPX1VOV1JBUF9XSVRIX0lOVEVSRkFDRShpbnRlcmZh
Y2VOYW1lKSBcCi0gICAgaWYgKHZhbHVlLmluaGVyaXRzPEpTIyNpbnRlcmZhY2VOYW1lPih2bSkp
IFwKLSAgICAgICAgcmV0dXJuICZqc0Nhc3Q8SlMjI2ludGVyZmFjZU5hbWUqPihhc09iamVjdCh2
YWx1ZSkpLT53cmFwcGVkKCk7Ci0KIEV2ZW50VGFyZ2V0KiBKU0V2ZW50VGFyZ2V0Ojp0b1dyYXBw
ZWQoVk0mIHZtLCBKU1ZhbHVlIHZhbHVlKQogewotICAgIFRSWV9UT19VTldSQVBfV0lUSF9JTlRF
UkZBQ0UoV2luZG93UHJveHkpCi0gICAgVFJZX1RPX1VOV1JBUF9XSVRIX0lOVEVSRkFDRShET01X
aW5kb3cpCi0gICAgVFJZX1RPX1VOV1JBUF9XSVRIX0lOVEVSRkFDRShXb3JrZXJHbG9iYWxTY29w
ZSkKLSAgICBUUllfVE9fVU5XUkFQX1dJVEhfSU5URVJGQUNFKEV2ZW50VGFyZ2V0KQorICAgIGlm
ICh2YWx1ZS5pbmhlcml0czxKU1dpbmRvd1Byb3h5Pih2bSkpCisgICAgICAgIHJldHVybiAmanND
YXN0PEpTV2luZG93UHJveHkqPihhc09iamVjdCh2YWx1ZSkpLT53cmFwcGVkKCk7CisgICAgaWYg
KHZhbHVlLmluaGVyaXRzPEpTRE9NV2luZG93Pih2bSkpCisgICAgICAgIHJldHVybiAmanNDYXN0
PEpTRE9NV2luZG93Kj4oYXNPYmplY3QodmFsdWUpKS0+d3JhcHBlZCgpOworICAgIGlmICh2YWx1
ZS5pbmhlcml0czxKU1dvcmtlckdsb2JhbFNjb3BlPih2bSkpCisgICAgICAgIHJldHVybiAmanND
YXN0PEpTV29ya2VyR2xvYmFsU2NvcGUqPihhc09iamVjdCh2YWx1ZSkpLT53cmFwcGVkKCk7Cisg
ICAgaWYgKHZhbHVlLmluaGVyaXRzPEpTRXZlbnRUYXJnZXQ+KHZtKSkKKyAgICAgICAgcmV0dXJu
ICZqc0Nhc3Q8SlNFdmVudFRhcmdldCo+KGFzT2JqZWN0KHZhbHVlKSktPndyYXBwZWQoKTsKICAg
ICByZXR1cm4gbnVsbHB0cjsKIH0KIAotI3VuZGVmIFRSWV9UT19VTldSQVBfV0lUSF9JTlRFUkZB
Q0UKLQogc3RkOjp1bmlxdWVfcHRyPEpTRXZlbnRUYXJnZXRXcmFwcGVyPiBqc0V2ZW50VGFyZ2V0
Q2FzdChWTSYgdm0sIEpTVmFsdWUgdGhpc1ZhbHVlKQogewogICAgIGlmIChhdXRvKiB0YXJnZXQg
PSBqc0R5bmFtaWNDYXN0PEpTRXZlbnRUYXJnZXQqPih2bSwgdGhpc1ZhbHVlKSkKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSW5GaWxlc0NvbXBpbGVyLnBtCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSW5GaWxlc0NvbXBpbGVyLnBt
CShyZXZpc2lvbiAyMzMzODkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lu
RmlsZXNDb21waWxlci5wbQkod29ya2luZyBjb3B5KQpAQCAtMTkzLDE0ICsxOTMsMTQgQEAgc3Vi
IGdlbmVyYXRlSW50ZXJmYWNlc0hlYWRlcigpCiAKICAgICBteSAkRjsKICAgICBteSAkbmFtZXNw
YWNlID0gJHBhcnNlZFBhcmFtZXRlcnN7Im5hbWVzcGFjZSJ9OworICAgIG15ICR1c2VOYW1lc3Bh
Y2VBc1N1ZmZpeCA9ICRwYXJzZWRQYXJhbWV0ZXJzeyJ1c2VOYW1lc3BhY2VBc1N1ZmZpeCJ9Owog
ICAgIG15ICRvdXRwdXRGaWxlID0gIiRvdXRwdXREaXIvJHtuYW1lc3BhY2V9SW50ZXJmYWNlcy5o
IjsKIAogICAgIG9wZW4gRiwgIj4kb3V0cHV0RmlsZSIgb3IgZGllICJGYWlsZWQgdG8gb3BlbiBm
aWxlOiAkISI7CiAKICAgICBwcmludCBGIGxpY2Vuc2UoKTsKIAotICAgIHByaW50IEYgIiNpZm5k
ZWYgJHtuYW1lc3BhY2V9SW50ZXJmYWNlc19oXG4iOwotICAgIHByaW50IEYgIiNkZWZpbmUgJHtu
YW1lc3BhY2V9SW50ZXJmYWNlc19oXG4iOworICAgIHByaW50IEYgIiNwcmFnbWEgb25jZVxuIjsK
ICAgICBwcmludCBGICJcbiI7CiAKICAgICBteSAldW5jb25kaXRpb25hbEludGVyZmFjZXMgPSAo
KTsKQEAgLTIyMiwzNiArMjIyLDM1IEBAIHN1YiBnZW5lcmF0ZUludGVyZmFjZXNIZWFkZXIoKQog
CiAgICAgbXkgJG1hY3JvU3R5bGVkTmFtZXNwYWNlID0gJG9iamVjdC0+dG9NYWNyb1N0eWxlKCRu
YW1lc3BhY2UpOwogCisgICAgcHJpbnQgRiAibmFtZXNwYWNlIFdlYkNvcmUge1xuIjsKKyAgICBw
cmludCBGICJcbiI7CisgICAgcHJpbnQgRiAiZW51bSAke25hbWVzcGFjZX1JbnRlcmZhY2Uge1xu
IjsKKworICAgIG15ICRzdWZmaXggPSAiSW50ZXJmYWNlVHlwZSI7CisgICAgaWYgKCR1c2VOYW1l
c3BhY2VBc1N1ZmZpeCBlcSAidHJ1ZSIpIHsKKyAgICAgICAgJHN1ZmZpeCA9ICRuYW1lc3BhY2Ug
LiAkc3VmZml4OworICAgIH0KKworICAgIG15ICRjb3VudCA9IDE7CiAgICAgZm9yIG15ICRjb25k
aXRpb25hbCAoc29ydCBrZXlzICVpbnRlcmZhY2VzQnlDb25kaXRpb25hbCkgewogICAgICAgICBt
eSAkcHJlZmVycmVkQ29uZGl0aW9uYWwgPSAkb2JqZWN0LT5wcmVmZXJyZWRDb25kaXRpb25hbCgk
Y29uZGl0aW9uYWwpOwogICAgICAgICBwcmludCBGICIjaWYgIiAuICRvYmplY3QtPmNvbmRpdGlv
bmFsU3RyaW5nRnJvbUF0dHJpYnV0ZVZhbHVlKCRjb25kaXRpb25hbCkgLiAiXG4iOwotICAgICAg
ICBwcmludCBGICIjZGVmaW5lIERPTV8ke21hY3JvU3R5bGVkTmFtZXNwYWNlfV9JTlRFUkZBQ0VT
X0ZPUl9FQUNIXyRwcmVmZXJyZWRDb25kaXRpb25hbChtYWNybykgXFxcbiI7Ci0KICAgICAgICAg
Zm9yIG15ICRpbnRlcmZhY2UgKHNvcnQga2V5cyAleyAkaW50ZXJmYWNlc0J5Q29uZGl0aW9uYWx7
JGNvbmRpdGlvbmFsfSB9KSB7CiAgICAgICAgICAgICBuZXh0IGlmIGRlZmluZWQoJHVuY29uZGl0
aW9uYWxJbnRlcmZhY2VzeyRpbnRlcmZhY2V9KTsKLSAgICAgICAgICAgIHByaW50IEYgIiAgICBt
YWNybygkaW50ZXJmYWNlKSBcXFxuIjsKKyAgICAgICAgICAgIHByaW50IEYgIiAgICAke2ludGVy
ZmFjZX0ke3N1ZmZpeH0gPSAkY291bnQsXG4iOworICAgICAgICAgICAgJGNvdW50Kys7CiAgICAg
ICAgIH0KLQotICAgICAgICBwcmludCBGICIvLyBFbmQgb2YgRE9NXyR7bWFjcm9TdHlsZWROYW1l
c3BhY2V9X0lOVEVSRkFDRVNfRk9SX0VBQ0hfJHByZWZlcnJlZENvbmRpdGlvbmFsXG4iOwotICAg
ICAgICBwcmludCBGICIjZWxzZVxuIjsKLSAgICAgICAgcHJpbnQgRiAiI2RlZmluZSBET01fJHtt
YWNyb1N0eWxlZE5hbWVzcGFjZX1fSU5URVJGQUNFU19GT1JfRUFDSF8kcHJlZmVycmVkQ29uZGl0
aW9uYWwobWFjcm8pXG4iOwogICAgICAgICBwcmludCBGICIjZW5kaWZcbiI7Ci0gICAgICAgIHBy
aW50IEYgIlxuIjsKICAgICB9CiAKLSAgICBwcmludCBGICIjZGVmaW5lIERPTV8ke21hY3JvU3R5
bGVkTmFtZXNwYWNlfV9JTlRFUkZBQ0VTX0ZPUl9FQUNIKG1hY3JvKSBcXFxuIjsKLSAgICBwcmlu
dCBGICIgICAgXFxcbiI7CiAgICAgZm9yIG15ICRpbnRlcmZhY2UgKHNvcnQga2V5cyAldW5jb25k
aXRpb25hbEludGVyZmFjZXMpIHsKLSAgICAgICAgICAgIHByaW50IEYgIiAgICBtYWNybygkaW50
ZXJmYWNlKSBcXFxuIjsKLSAgICB9Ci0gICAgcHJpbnQgRiAiICAgIFxcXG4iOwotICAgIGZvciBt
eSAkY29uZGl0aW9uYWwgKHNvcnQga2V5cyAlaW50ZXJmYWNlc0J5Q29uZGl0aW9uYWwpIHsKLSAg
ICAgICAgbXkgJHByZWZlcnJlZENvbmRpdGlvbmFsID0gJG9iamVjdC0+cHJlZmVycmVkQ29uZGl0
aW9uYWwoJGNvbmRpdGlvbmFsKTsKLSAgICAgICAgcHJpbnQgRiAiICAgIERPTV8ke21hY3JvU3R5
bGVkTmFtZXNwYWNlfV9JTlRFUkZBQ0VTX0ZPUl9FQUNIXyRwcmVmZXJyZWRDb25kaXRpb25hbCht
YWNybykgXFxcbiI7CisgICAgICAgIHByaW50IEYgIiAgICAke2ludGVyZmFjZX0ke3N1ZmZpeH0g
PSAkY291bnQsXG4iOworICAgICAgICAkY291bnQrKzsKICAgICB9CiAKKyAgICBwcmludCBGICJ9
O1xuIjsKICAgICBwcmludCBGICJcbiI7Ci0gICAgcHJpbnQgRiAiI2VuZGlmIC8vICR7bmFtZXNw
YWNlfUludGVyZmFjZXNfaFxuIjsKKyAgICBwcmludCBGICJ9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
XG4iOwogCiAgICAgY2xvc2UgRjsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5oCShyZXZpc2lvbiAyMzMz
ODkpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzgs
MTQgKzM4LDYgQEAgY2xhc3MgRXZlbnRQYXRoOwogY2xhc3MgRXZlbnRUYXJnZXQ7CiBjbGFzcyBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0OwogCi1lbnVtIEV2ZW50SW50ZXJmYWNlIHsKLQotI2RlZmlu
ZSBET01fRVZFTlRfSU5URVJGQUNFX0RFQ0xBUkUobmFtZSkgbmFtZSMjSW50ZXJmYWNlVHlwZSwK
LURPTV9FVkVOVF9JTlRFUkZBQ0VTX0ZPUl9FQUNIKERPTV9FVkVOVF9JTlRFUkZBQ0VfREVDTEFS
RSkKLSN1bmRlZiBET01fRVZFTlRfSU5URVJGQUNFX0RFQ0xBUkUKLQotfTsKLQogY2xhc3MgRXZl
bnQgOiBwdWJsaWMgU2NyaXB0V3JhcHBhYmxlLCBwdWJsaWMgUmVmQ291bnRlZDxFdmVudD4gewog
cHVibGljOgogICAgIGVudW0gY2xhc3MgSXNUcnVzdGVkIHsgTm8sIFllcyB9OwpJbmRleDogU291
cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvZG9tL0V2ZW50TmFtZXMuaW4JKHJldmlzaW9uIDIzMzM4OSkKKysrIFNvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudE5hbWVzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsNiBAQAogbmFtZXNw
YWNlPSJFdmVudCIKK2ZhY3RvcnlGdW5jdGlvbj10b05ld2x5Q3JlYXRlZAordXNlTmFtZXNwYWNl
QXNTdWZmaXg9ZmFsc2UKIAogRXZlbnQKIEV2ZW50cyBpbnRlcmZhY2VOYW1lPUV2ZW50CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuaAkocmV2aXNpb24gMjMzMzg5KQorKysgU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmgJKHdvcmtpbmcgY29weSkKQEAgLTUwLDE0ICs1MCw2IEBA
IHB1YmxpYzoKICAgICBib29sIGlzRmlyaW5nRXZlbnRMaXN0ZW5lcnMgeyBmYWxzZSB9OwogfTsK
IAotZW51bSBFdmVudFRhcmdldEludGVyZmFjZSB7Ci0KLSNkZWZpbmUgRE9NX0VWRU5UX0lOVEVS
RkFDRV9ERUNMQVJFKG5hbWUpIG5hbWUjI0V2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZSwKLURPTV9F
VkVOVF9UQVJHRVRfSU5URVJGQUNFU19GT1JfRUFDSChET01fRVZFTlRfSU5URVJGQUNFX0RFQ0xB
UkUpCi0jdW5kZWYgRE9NX0VWRU5UX0lOVEVSRkFDRV9ERUNMQVJFCi0KLX07Ci0KIGNsYXNzIEV2
ZW50VGFyZ2V0IDogcHVibGljIFNjcmlwdFdyYXBwYWJsZSB7CiBwdWJsaWM6CiAgICAgdm9pZCBy
ZWYoKSB7IHJlZkV2ZW50VGFyZ2V0KCk7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVu
dFRhcmdldEZhY3RvcnkuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50
VGFyZ2V0RmFjdG9yeS5pbgkocmV2aXNpb24gMjMzMzg5KQorKysgU291cmNlL1dlYkNvcmUvZG9t
L0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgkod29ya2luZyBjb3B5KQpAQCAtMSw0ICsxLDYgQEAKIG5h
bWVzcGFjZT0iRXZlbnRUYXJnZXQiCitmYWN0b3J5RnVuY3Rpb249dG9KUwordXNlTmFtZXNwYWNl
QXNTdWZmaXg9dHJ1ZQogCiBBYm9ydFNpZ25hbAogQXBwbGVQYXlTZXNzaW9uIGNvbmRpdGlvbmFs
PUFQUExFX1BBWQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL21ha2VfZXZlbnRfZmFjdG9yeS5w
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vbWFrZV9ldmVudF9mYWN0b3J5LnBs
CShyZXZpc2lvbiAyMzMzODkpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vbWFrZV9ldmVudF9mYWN0
b3J5LnBsCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw3ICszOCw5IEBAIHVzZSBsaWIgIiRGaW5kQmlu
OjpCaW4vLi4vYmluZGluZ3Mvc2NyaXAKIHVzZSBJbkZpbGVzQ29tcGlsZXI7CiAKIG15ICVkZWZh
dWx0UGFyYW1ldGVycyA9ICgKLSAgICAnbmFtZXNwYWNlJyA9PiAwCisgICAgJ25hbWVzcGFjZScg
PT4gMCwKKyAgICAnZmFjdG9yeUZ1bmN0aW9uJyA9PiAwLAorICAgICd1c2VOYW1lc3BhY2VBc1N1
ZmZpeCcgPT4gMCwKICk7CiAKIHN1YiBkZWZhdWx0SXRlbUZhY3RvcnkKQEAgLTYyLDcgKzY0LDcg
QEAgc3ViIGdlbmVyYXRlQ29kZSgpCiAKICAgICBnZW5lcmF0ZUltcGxlbWVudGF0aW9uKCRwYXJz
ZWRQYXJhbWV0ZXJzUmVmLCAkcGFyc2VkSXRlbXNSZWYpOwogICAgICRJbkNvbXBpbGVyLT5nZW5l
cmF0ZUludGVyZmFjZXNIZWFkZXIoKTsKLSAgICAkSW5Db21waWxlci0+Z2VuZXJhdGVIZWFkZXJz
SGVhZGVyKCkKKyAgICAkSW5Db21waWxlci0+Z2VuZXJhdGVIZWFkZXJzSGVhZGVyKCk7CiB9CiAK
IHN1YiBnZW5lcmF0ZUltcGxlbWVudGF0aW9uKCkKQEAgLTc0LDQzICs3Niw3MiBAQCBzdWIgZ2Vu
ZXJhdGVJbXBsZW1lbnRhdGlvbigpCiAgICAgbXkgJXBhcnNlZFBhcmFtZXRlcnMgPSAleyAkcGFy
c2VkUGFyYW1ldGVyc1JlZiB9OwogCiAgICAgbXkgJG5hbWVzcGFjZSA9ICRwYXJzZWRQYXJhbWV0
ZXJzeyJuYW1lc3BhY2UifTsKLQotICAgICMgQ3VycmVudGx5LCBvbmx5IEV2ZW50cyBoYXZlIGZh
Y3RvcnkgZmlsZXMuCi0gICAgcmV0dXJuIGlmICRuYW1lc3BhY2UgbmUgIkV2ZW50IjsKKyAgICBt
eSAkZmFjdG9yeUZ1bmN0aW9uID0gJHBhcnNlZFBhcmFtZXRlcnN7ImZhY3RvcnlGdW5jdGlvbiJ9
OworICAgICgkZmFjdG9yeUZ1bmN0aW9uIGVxICJ0b0pTIiBvciAkZmFjdG9yeUZ1bmN0aW9uIGVx
ICJ0b05ld2x5Q3JlYXRlZCIpIG9yIGRpZSAiZmFjdG9yeUZ1bmN0aW9uIHNob3VsZCBiZSBlaXRo
ZXIgdG9KUyBvciB0b05ld2x5Q3JlYXRlZCI7CisgICAgbXkgJHVzZU5hbWVzcGFjZUFzU3VmZml4
ID0gJHBhcnNlZFBhcmFtZXRlcnN7InVzZU5hbWVzcGFjZUFzU3VmZml4In07CiAKICAgICBteSAk
RjsKICAgICBvcGVuIEYsICI+IiwgIiRvdXRwdXREaXIvJHtuYW1lc3BhY2V9RmFjdG9yeS5jcHAi
IG9yIGRpZSAiRmFpbGVkIHRvIG9wZW4gZmlsZTogJCEiOwogCiAgICAgcHJpbnQgRiAkSW5Db21w
aWxlci0+bGljZW5zZSgpOwogCisgICAgbXkgJGludGVyZmFjZU1ldGhvZE5hbWUgPSBsY2ZpcnN0
ICRuYW1lc3BhY2UgLiAiSW50ZXJmYWNlIjsKKwogICAgIHByaW50IEYgIiNpbmNsdWRlIFwiY29u
ZmlnLmhcIlxuIjsKLSAgICBwcmludCBGICIjaW5jbHVkZSBcIiR7bmFtZXNwYWNlfUZhY3Rvcnku
aFwiXG4iOwotICAgIHByaW50IEYgIlxuIjsKICAgICBwcmludCBGICIjaW5jbHVkZSBcIiR7bmFt
ZXNwYWNlfUhlYWRlcnMuaFwiXG4iOworICAgIHByaW50IEYgIlxuIjsKKyAgICBwcmludCBGICIj
aW5jbHVkZSBcIkpTRE9NR2xvYmFsT2JqZWN0LmhcIlxuIjsKICAgICBwcmludCBGICIjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvU3RydWN0dXJlSW5saW5lcy5oPlxuIjsKICAgICBwcmludCBGICJc
biI7CiAgICAgcHJpbnQgRiAibmFtZXNwYWNlIFdlYkNvcmUge1xuIjsKICAgICBwcmludCBGICJc
biI7Ci0gICAgcHJpbnQgRiAiUmVmUHRyPCRuYW1lc3BhY2U+ICR7bmFtZXNwYWNlfUZhY3Rvcnk6
OmNyZWF0ZShjb25zdCBTdHJpbmcmIHR5cGUpXG4iOwotICAgIHByaW50IEYgIntcbiI7CisgICAg
IyBGSVhNRTogV2h5IGRvZXMgRXZlbnQgbmVlZCB0b05ld2x5Q3JlYXRlZCBidXQgRXZlbnRUYXJn
ZXQgbmVlZCB0b0pTPworICAgIGlmICgkZmFjdG9yeUZ1bmN0aW9uIGVxICJ0b05ld2x5Q3JlYXRl
ZCIpIHsKKyAgICAgICAgcHJpbnQgRiAiSlNDOjpKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoSlND
OjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8JHtuYW1l
c3BhY2V9PiYmIGltcGwpXG4iOworICAgICAgICBwcmludCBGICJ7XG4iOworICAgICAgICBwcmlu
dCBGICIgICAgc3dpdGNoIChpbXBsLT4ke2ludGVyZmFjZU1ldGhvZE5hbWV9KCkpIHtcbiI7Cisg
ICAgfSBlbHNlIHsKKyAgICAgICAgcHJpbnQgRiAiSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVj
U3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCAke25hbWVzcGFj
ZX0mIGltcGwpXG4iOworICAgICAgICBwcmludCBGICJ7XG4iOworICAgICAgICBwcmludCBGICIg
ICAgc3dpdGNoIChpbXBsLiR7aW50ZXJmYWNlTWV0aG9kTmFtZX0oKSkge1xuIjsKKyAgICB9CisK
KyAgICBteSAlZ2VuZXJhdGVkSW50ZXJmYWNlTmFtZXMgPSAoKTsKIAogICAgIGZvciBteSAkZXZl
bnROYW1lIChzb3J0IGtleXMgJXBhcnNlZEV2ZW50cykgewogICAgICAgICBteSAkY29uZGl0aW9u
YWwgPSAkcGFyc2VkRXZlbnRzeyRldmVudE5hbWV9eyJjb25kaXRpb25hbCJ9OwogICAgICAgICBt
eSAkcnVudGltZUVuYWJsZWQgPSAkcGFyc2VkRXZlbnRzeyRldmVudE5hbWV9eyJydW50aW1lRW5h
YmxlZCJ9OwogICAgICAgICBteSAkaW50ZXJmYWNlTmFtZSA9ICRJbkNvbXBpbGVyLT5pbnRlcmZh
Y2VGb3JJdGVtKCRldmVudE5hbWUpOwogCi0gICAgICAgICMgRklYTUU6IFRoaXMgc2hvdWxkIHBh
eSBhdHRlbnRpb24gdG8gJHJ1bnRpbWVDb25kaXRpb25hbCBzbyBpdCBjYW4gc3VwcG9ydCBSdW50
aW1lRW5hYmxlZEZlYXR1cmVzLgorICAgICAgICBuZXh0IGlmICRnZW5lcmF0ZWRJbnRlcmZhY2VO
YW1lc3skaW50ZXJmYWNlTmFtZX07CisgICAgICAgICRnZW5lcmF0ZWRJbnRlcmZhY2VOYW1lc3sk
aW50ZXJmYWNlTmFtZX0gPSAxOworCisgICAgICAgIG15ICRzdWZmaXggPSAiIjsKKyAgICAgICAg
aWYgKCR1c2VOYW1lc3BhY2VBc1N1ZmZpeCBlcSAidHJ1ZSIpIHsKKyAgICAgICAgICAgICRzdWZm
aXggPSAkbmFtZXNwYWNlIC4gJHN1ZmZpeDsKKyAgICAgICAgfQogCisgICAgICAgICMgRklYTUU6
IFRoaXMgc2hvdWxkIHBheSBhdHRlbnRpb24gdG8gJHJ1bnRpbWVDb25kaXRpb25hbCBzbyBpdCBj
YW4gc3VwcG9ydCBSdW50aW1lRW5hYmxlZEZlYXR1cmVzLgogICAgICAgICBpZiAoJGNvbmRpdGlv
bmFsKSB7CiAgICAgICAgICAgICBteSAkY29uZGl0aW9uYWxzID0gIiNpZiBFTkFCTEUoIiAuIGpv
aW4oIikgfHwgRU5BQkxFKCIsIHNwbGl0KCJcXHwiLCAkY29uZGl0aW9uYWwpKSAuICIpIjsKICAg
ICAgICAgICAgIHByaW50IEYgIiRjb25kaXRpb25hbHNcbiI7CiAgICAgICAgIH0KLSAgICAgICAg
cHJpbnQgRiAiICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKHR5cGUsIFwiJGV2ZW50TmFt
ZVwiKSlcbiI7Ci0gICAgICAgIHByaW50IEYgIiAgICAgICAgcmV0dXJuICR7aW50ZXJmYWNlTmFt
ZX06OmNyZWF0ZSgpO1xuIjsKKyAgICAgICAgcHJpbnQgRiAiICAgIGNhc2UgJHtpbnRlcmZhY2VO
YW1lfSR7c3VmZml4fUludGVyZmFjZVR5cGU6XG4iOworICAgICAgICBpZiAoJGZhY3RvcnlGdW5j
dGlvbiBlcSAidG9OZXdseUNyZWF0ZWQiKSB7CisgICAgICAgICAgICBwcmludCBGICIgICAgICAg
IHJldHVybiBjcmVhdGVXcmFwcGVyPCRpbnRlcmZhY2VOYW1lJHN1ZmZpeD4oZ2xvYmFsT2JqZWN0
LCBXVEZNb3ZlKGltcGwpKTtcbiI7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBwcmlu
dCBGICIgICAgICAgIHJldHVybiB0b0pTKHN0YXRlLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0
PCRpbnRlcmZhY2VOYW1lJj4oaW1wbCkpO1xuIjsKKyAgICAgICAgfQogICAgICAgICBwcmludCBG
ICIjZW5kaWZcbiIgaWYgJGNvbmRpdGlvbmFsOwogICAgIH0KIAotICAgIHByaW50IEYgIiAgICBy
ZXR1cm4gbnVsbHB0cjtcbiI7CisgICAgcHJpbnQgRiAiICAgIH1cbiI7CisgICAgaWYgKCRmYWN0
b3J5RnVuY3Rpb24gZXEgInRvTmV3bHlDcmVhdGVkIikgeworICAgICAgICBwcmludCBGICIgICAg
cmV0dXJuIGNyZWF0ZVdyYXBwZXI8JG5hbWVzcGFjZT4oZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKGlt
cGwpKTtcbiI7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcHJpbnQgRiAiICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpO1xuIjsKKyAgICAgICAgcHJpbnQgRiAiICAgIHJldHVybiBKU0M6OmpzTnVsbCgp
O1xuIjsKKyAgICB9CiAgICAgcHJpbnQgRiAifVxuIjsKICAgICBwcmludCBGICJcbiI7CiAgICAg
cHJpbnQgRiAifSAvLyBuYW1lc3BhY2UgV2ViQ29yZVxuIjsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>344004</attachid>
            <date>2018-06-29 23:58:45 -0700</date>
            <delta_ts>2018-07-02 15:43:19 -0700</delta_ts>
            <desc>Cmake build fix attempt</desc>
            <filename>bug-187215-20180629235844.patch</filename>
            <type>text/plain</type>
            <size>22034</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzMzM4OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQxIEBACisyMDE4LTA2LTI5ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIEdlbmVyYXRlIGV2ZW50IGFuZCBl
dmVudCB0YXJnZXQgaW50ZXJmYWNlIHR5cGVzIGRpcmVjdGx5IGluc3RlYWQgb2YgdmlhIG1hY3Jv
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg3MjE1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFkZSBt
YWtlX2V2ZW50X2ZhY3RvcnkucGwgZGlyZWN0bHkgZ2VuZXJhdGUgRXZlbnRJbnRlcmZhY2UgZW51
bSB2YWx1ZXMgYW5kIHRvSlNOZXdseUNyZWF0ZWQgZm9yIEV2ZW50LAorICAgICAgICBhbmQgRXZl
bnRUYXJnZXRJbnRlcmZhY2UgZW51bSB2YWx1ZXMgYW5kIHRvSlMgZm9yIEV2ZW50VGFyZ2V0LiBS
ZW1vdmVkIHRoZSBjb2RlIHRvIGdlbmVyYXRlIEV2bmVudEZhY3Rvcnk6OmNyZWF0ZQorICAgICAg
ICBzaW5jZSBpdCB3YXMgbmV2ZXIgZXZlbiBjb21waWxlZCBvciB1c2VkIGFueXdoZXJlLgorCisg
ICAgICAgIFRoaXMgcGF0Y2ggZmFpdGhmdWxseSByZXBsaWNhdGVzIHdoYXQgdGhlIG1hY3JvIHVz
ZWQgdG8gZ2VuZXJhdGUgYnV0IHdlIHNob3VsZCBjb25zaWRlciBhbHdheXMgZ2VuZXJhdGluZyBl
aXRoZXIKKyAgICAgICAgdG9KUyBvciB0b0pTTmV3bHlDcmVhdGVkIGZvciBib3RoIGludGVyZmFj
ZXMgaW4gdGhlIGZ1dHVyZS4KKworICAgICAgICBObyBuZXcgdGVzdHMgc2luY2UgdGhlcmUgc2hv
dWxkIGJlIG5vIG9ic2VydmFibGUgYmVoYXZpb3JhbCBjaGFuZ2VzLgorCisgICAgICAgICogRGVy
aXZlZFNvdXJjZXMubWFrZTogR2VuZXJhdGUgRXZlbnRUYXJnZXRGYWN0b3J5LmNwcCwgd2hpY2gg
aXMgdXNlZCB0byBnZW5lcmF0ZSB0b0pTIGZ1bmN0aW9uIGZvciBFdmVudFRhcmdldC4KKyAgICAg
ICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvSlNFdmVudEN1c3RvbS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjp0b0pTTmV3bHlDcmVhdGVkKTogRGVsZXRlZC4gTm93IGdlbmVyYXRlZCBkaXJl
Y3RseSBpbiBFdmVudEZhY3RvcnkuY3BwLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRXZlbnRU
YXJnZXRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNFdmVudFRhcmdldDo6dG9XcmFw
cGVkKTogUmVtb3ZlZCB0aGUgdXNlIG9mIFRSWV9UT19VTldSQVBfV0lUSF9JTlRFUkZBQ0UuCisg
ICAgICAgIChXZWJDb3JlOjp0b0pTKTogRGVsZXRlZC4gTm93IGdlbmVyYXRlZCBkaXJlY3RseSBp
biBFdmVudEZhY3RvcnkuY3BwLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvSW5GaWxlc0Nv
bXBpbGVyLnBtOgorICAgICAgICAoZ2VuZXJhdGVJbnRlcmZhY2VzSGVhZGVyKTogVXNlICNwcmFn
bWEgb25jZS4gR2VuZXJhdGUgZW51bSB2YWx1ZXMgZGlyZWN0bHkuIEFkZGVkIHRoZSBzdXBwb3J0
IGZvciBzdWZmaXhpbmcKKyAgICAgICAgZWFjaCB0eXBlIG5hbWUgd2l0aCBuYW1lc3BhY2UgZm9y
IEV2ZW50VGFyZ2V0LgorICAgICAgICAqIGRvbS9FdmVudC5oOiBSZW1vdmVkIHRoZSBkZWNsYXJh
dGlvbiBvZiBFdmVudEludGVyZmFjZSBlbnVtLiBJdCdzIG5vdyBkaXJlY3RseSBnZW5lcmF0ZWQg
aW4gRXZlbnRJbnRlcmZhY2VzLmgKKyAgICAgICAgKiBkb20vRXZlbnROYW1lcy5pbjogR2VuZXJh
dGUgdG9KU05ld2x5Q3JlYXRlZC4KKyAgICAgICAgKiBkb20vRXZlbnRUYXJnZXQuaDogUmVtb3Zl
ZCB0aGUgZGVjbGFyYXRpb24gb2YgRXZlbnRUYXJnZXRJbnRlcmZhY2UgYXMgaXQncyBub3cgZG9u
ZSBpbiBFdmVudFRhcmdldEludGVyZmFjZXMuaC4KKyAgICAgICAgKiBkb20vRXZlbnRUYXJnZXRG
YWN0b3J5LmluOiBHZW5lcmF0ZSB0b0pTLgorICAgICAgICAqIGRvbS9tYWtlX2V2ZW50X2ZhY3Rv
cnkucGw6CisgICAgICAgIChkZWZhdWx0UGFyYW1ldGVycyk6IEFkZGVkIHR3byBuZXcgb3B0aW9u
cy4gZmFjdG9yeUZ1bmN0aW9uIHNwZWNpZmllcyB3aGV0aGVyIHRvSlMgb3IgdG9KU05ld2x5Q3Jl
YXRlZCBpcyBnZW5lcmF0ZWQsCisgICAgICAgIGFuZCB1c2VOYW1lc3BhY2VBc1N1ZmZpeCBzcGVj
aWZpZXMgd2hldGhlciBlYWNoIGVudHJ5IHNob3VsZCBiZSBzdWZmaXhlZCBieSB0aGUgbmFtZXNw
YWNlICh1c2VkIGJ5IEV2ZW50VGFyZ2V0KS4KKyAgICAgICAgKGdlbmVyYXRlQ29kZSk6IEFkZGVk
IGEgbWlzc2luZyBzZW1pY29sb24uCisgICAgICAgIChnZW5lcmF0ZUltcGxlbWVudGF0aW9uKTog
UmVtb3ZlZCB0aGUgZWFybHkgZXhpdCBmb3IgRXZlbnRUYXJnZXQgc2luY2Ugd2Ugbm93IG5lZWQg
dG8gZ2VuZXJhdGUgaXRzIHRvSlMgZnVuY3Rpb24uCisgICAgICAgIFJlcGxhY2VkIHRoZSBjb2Rl
IHRvIGdlbmVyYXRlIEV2ZW50RmFjdG9yeTo6Y3JlYXRlIGJ5IHRoZSBvbmUgdG8gZ2VuZXJhdGUg
dG9KUyAvIHRvSlNOZXdseUNyZWF0ZWQuCisKIDIwMTgtMDYtMjkgIEFudHRpIEtvaXZpc3RvICA8
YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyMzI4MDYpOiBGYWNlYm9v
ayBsb2dpbiBmaWVsZHMgaGF2ZSBibHVlIGZpbGwgYmFja2dyb3VuZCBpbnN0ZWFkIG9mIHdoaXRl
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMjMzMzg5KQorKysgU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE4OTYsMTIgKzE4OTYsMTQg
QEAgR0VORVJBVEVfRE9NX05BTUVTKEhUTUwgJHtXRUJDT1JFX0RJUn0vaAogbGlzdChBUFBFTkQg
V2ViQ29yZV9TT1VSQ0VTICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9IVE1MTmFtZXMu
Y3BwICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9IVE1MRWxlbWVudEZhY3RvcnkuY3Bw
ICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9KU0hUTUxFbGVtZW50V3JhcHBlckZhY3Rv
cnkuY3BwKQogCiAKLUdFTkVSQVRFX0VWRU5UX0ZBQ1RPUlkoJHtXRUJDT1JFX0RJUn0vZG9tL0V2
ZW50TmFtZXMuaW4gRXZlbnRJbnRlcmZhY2VzLmgpCitHRU5FUkFURV9FVkVOVF9GQUNUT1JZKCR7
V0VCQ09SRV9ESVJ9L2RvbS9FdmVudE5hbWVzLmluIEV2ZW50KQogbGlzdChBUFBFTkQgV2ViQ29y
ZV9TT1VSQ0VTICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9FdmVudEludGVyZmFjZXMu
aCkKK2xpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUyAke0RFUklWRURfU09VUkNFU19XRUJDT1JF
X0RJUn0vRXZlbnRGYWN0b3J5LmNwcCkKIAogCi1HRU5FUkFURV9FVkVOVF9GQUNUT1JZKCR7V0VC
Q09SRV9ESVJ9L2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4gRXZlbnRUYXJnZXRJbnRlcmZhY2Vz
LmgpCitHRU5FUkFURV9FVkVOVF9GQUNUT1JZKCR7V0VCQ09SRV9ESVJ9L2RvbS9FdmVudFRhcmdl
dEZhY3RvcnkuaW4gRXZlbnRUYXJnZXQpCiBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMgJHtE
RVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L0V2ZW50VGFyZ2V0SW50ZXJmYWNlcy5oKQorbGlz
dChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9F
dmVudFRhcmdldEZhY3RvcnkuY3BwKQogCiAKIEdFTkVSQVRFX1NFVFRJTkdTX01BQ1JPUygke1dF
QkNPUkVfRElSfS9wYWdlL1NldHRpbmdzLnlhbWwgU2V0dGluZ3MuaCkKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24gMjMzMzg5KQorKysgU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtMTM5Niw4ICsxMzk2LDggQEAg
RXZlbnRGYWN0b3J5JWNwcCBFdmVudEhlYWRlcnMlaCBFdmVudEludAogCiBFVkVOVF9UQVJHRVRf
RkFDVE9SWSA9IEV2ZW50VGFyZ2V0RmFjdG9yeS5pbiAkKEFERElUSU9OQUxfRVZFTlRfVEFSR0VU
X0ZBQ1RPUlkpCiAKLWFsbCA6IEV2ZW50VGFyZ2V0SGVhZGVycy5oIEV2ZW50VGFyZ2V0SW50ZXJm
YWNlcy5oCi1FdmVudFRhcmdldEhlYWRlcnMlaCBFdmVudFRhcmdldEludGVyZmFjZXMlaCA6IGRv
bS9tYWtlX2V2ZW50X2ZhY3RvcnkucGwgJChFVkVOVF9UQVJHRVRfRkFDVE9SWSkKK2FsbCA6IEV2
ZW50VGFyZ2V0RmFjdG9yeS5jcHAgRXZlbnRUYXJnZXRIZWFkZXJzLmggRXZlbnRUYXJnZXRJbnRl
cmZhY2VzLmgKK0V2ZW50VGFyZ2V0RmFjdG9yeSVjcHAgRXZlbnRUYXJnZXRIZWFkZXJzJWggRXZl
bnRUYXJnZXRJbnRlcmZhY2VzJWggOiBkb20vbWFrZV9ldmVudF9mYWN0b3J5LnBsICQoRVZFTlRf
VEFSR0VUX0ZBQ1RPUlkpCiAJJChQRVJMKSAkPCAkKGFkZHByZWZpeCAtLWlucHV0ICwgJChmaWx0
ZXItb3V0ICQoV2ViQ29yZSkvZG9tL21ha2VfZXZlbnRfZmFjdG9yeS5wbCwgJF4pKQogCiAjIC0t
LS0tLS0tCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAkocmV2aXNpb24gMjMzMzg5KQorKysgU291cmNlL1dl
YkNvcmUvU291cmNlcy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTIzNjEsNiArMjM2MSw4IEBAIHht
bC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJTY29wZS5jcHAKIAogQ1NTVmFsdWVLZXl3b3Jkcy5j
cHAKIENvbG9yRGF0YS5jcHAKK0V2ZW50RmFjdG9yeS5jcHAKK0V2ZW50VGFyZ2V0RmFjdG9yeS5j
cHAKIEhUTUxFbGVtZW50RmFjdG9yeS5jcHAKIEhUTUxFbnRpdHlUYWJsZS5jcHAKIE1hdGhNTEVs
ZW1lbnRGYWN0b3J5LmNwcApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZU1hY3Jvcy5jbWFr
ZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlTWFjcm9zLmNtYWtlCShyZXZp
c2lvbiAyMzMzODkpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlTWFjcm9zLmNtYWtlCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNTksMTEgKzE1OSwxMiBAQCBtYWNybyhHRU5FUkFURV9GT05UX05BTUVT
IF9pbmZpbGUpCiBlbmRtYWNybygpCiAKIAotbWFjcm8oR0VORVJBVEVfRVZFTlRfRkFDVE9SWSBf
aW5maWxlIF9vdXRmaWxlKQorbWFjcm8oR0VORVJBVEVfRVZFTlRfRkFDVE9SWSBfaW5maWxlIF9u
YW1lc3BhY2UpCiAgICAgc2V0KE5BTUVTX0dFTkVSQVRPUiAke1dFQkNPUkVfRElSfS9kb20vbWFr
ZV9ldmVudF9mYWN0b3J5LnBsKQorICAgIHNldChfb3V0cHV0ZmlsZXMgJHtERVJJVkVEX1NPVVJD
RVNfV0VCQ09SRV9ESVJ9LyR7X25hbWVzcGFjZX1JbnRlcmZhY2VzLmggJHtERVJJVkVEX1NPVVJD
RVNfV0VCQ09SRV9ESVJ9LyR7X25hbWVzcGFjZX1GYWN0b3J5LmNwcCkKIAogICAgIGFkZF9jdXN0
b21fY29tbWFuZCgKLSAgICAgICAgT1VUUFVUICAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJ
Un0vJHtfb3V0ZmlsZX0KKyAgICAgICAgT1VUUFVUICAke19vdXRwdXRmaWxlc30KICAgICAgICAg
TUFJTl9ERVBFTkRFTkNZICR7X2luZmlsZX0KICAgICAgICAgREVQRU5EUyAke05BTUVTX0dFTkVS
QVRPUn0gJHtTQ1JJUFRTX0JJTkRJTkdTfQogICAgICAgICBDT01NQU5EICR7UEVSTF9FWEVDVVRB
QkxFfSAke05BTUVTX0dFTkVSQVRPUn0gLS1pbnB1dCAke19pbmZpbGV9IC0tb3V0cHV0RGlyICR7
REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfQpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjMzMzg5KQorKysg
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5n
IGNvcHkpCkBAIC0xMDg0Myw2ICsxMDg0Myw3IEBACiAJCTlCNkM0MTUyMTM0NDk0OTAwMDA4NUI2
MiAvKiBTdHJpbmdXaXRoRGlyZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFN0cmluZ1dpdGhEaXJlY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OUI3MTRFMUUxQzkxMTY2OTAwQUMwRTkyIC8qIEV2ZW50UGF0aC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFdmVudFBhdGguY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5QjcxNEUxRjFDOTExNjY5MDBBQzBFOTIgLyogRXZlbnRQYXRoLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50UGF0aC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk5Qjg1NTMwNTIwRTczM0I1MDA5RUVGNEYgLyogRXZlbnRUYXJnZXRGYWN0
b3J5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEV2ZW50VGFyZ2V0
RmFjdG9yeS5jcHA7IHBhdGggPSBFdmVudFRhcmdldEZhY3RvcnkuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5QjkyOTlCMDFGNjc5NkE0MDA2NzIzQzIgLyogV2ViQ29udGVudFJl
YWRlckNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2Vi
Q29udGVudFJlYWRlckNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QkEy
NzNGMzE3MjIwNkJCMDA5N0NFNDcgLyogTG9naWNhbFNlbGVjdGlvbk9mZnNldENhY2hlcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMb2dpY2FsU2VsZWN0aW9uT2Zmc2V0Q2Fj
aGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCQTgyNzc4MUYwNjE1NjUwMEY3
MUU3NSAvKiBOYXZpZ2F0aW9uRGlzYWJsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTmF2aWdhdGlvbkRpc2FibGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xMDg1Myw2ICsxMDg1NCw3IEBACiAJCTlCQzVGOURGMUQ1QUFGNkEwMDJCNzQ5RCAvKiBKU0N1
c3RvbUVsZW1lbnRSZWdpc3RyeUN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU0N1c3RvbUVsZW1lbnRSZWdpc3RyeUN1c3RvbS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTlCQzZDMjE5MTNDQ0M5N0IwMDhFMDMzNyAvKiBIVE1MVGV4dEZv
cm1Db250cm9sRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIVE1M
VGV4dEZvcm1Db250cm9sRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
QkM2QzIxQTEzQ0NDOTdCMDA4RTAzMzcgLyogSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTFRleHRGb3JtQ29udHJv
bEVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QkNDQ0E1MzIwRTcw
OTVEMDA2OEZCMDMgLyogRXZlbnRGYWN0b3J5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEV2ZW50RmFjdG9yeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTlCRDBCRjkxMTJBNDJCRjUwMDcyRkQ0MyAvKiBTY29wZWRFdmVudFF1ZXVlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjb3BlZEV2ZW50UXVldWUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUJEMEJGOTIxMkE0MkJGNTAwNzJGRDQzIC8qIFNjb3BlZEV2
ZW50UXVldWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2NvcGVk
RXZlbnRRdWV1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCRDFGNjgwMUYw
NDYyQjgwMDFDOUNERCAvKiBMYXlvdXREaXNhbGxvd2VkU2NvcGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTGF5b3V0RGlzYWxsb3dlZFNjb3BlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xODg4OCw4ICsxODg5MCwxMCBAQAogCQkJCTY1NjU4MTQ4MDlEMTMw
NDMwMDBFNjFENyAvKiBDU1NWYWx1ZUtleXdvcmRzLmggKi8sCiAJCQkJRTMzNDgyNUUxREM5M0FB
MDAwOUM5NTQ0IC8qIERPTUpJVEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaCAqLywKIAkJCQlFMUM2
Q0ZDMjE3NDZEMjkzMDA3Qjg3QTEgLyogRE9NV2luZG93Q29uc3RydWN0b3JzLmlkbCAqLywKKwkJ
CQk5QkNDQ0E1MzIwRTcwOTVEMDA2OEZCMDMgLyogRXZlbnRGYWN0b3J5LmNwcCAqLywKIAkJCQk5
NzBCNzJBNTE0NTAwOEVCMDBGMDBBMzcgLyogRXZlbnRIZWFkZXJzLmggKi8sCiAJCQkJOTcwQjcy
ODkxNDRGRkFDNjAwRjAwQTM3IC8qIEV2ZW50SW50ZXJmYWNlcy5oICovLAorCQkJCTlCODU1MzA1
MjBFNzMzQjUwMDlFRUY0RiAvKiBFdmVudFRhcmdldEZhY3RvcnkuY3BwICovLAogCQkJCTk3QUEz
Q0EzMTQ1MjM3Q0MwMDNFMURBNiAvKiBFdmVudFRhcmdldEhlYWRlcnMuaCAqLywKIAkJCQk5N0FB
M0NBNDE0NTIzN0NDMDAzRTFEQTYgLyogRXZlbnRUYXJnZXRJbnRlcmZhY2VzLmggKi8sCiAJCQkJ
QTE3QzgxMjAwRjJBNUNGNzAwNURBQUVCIC8qIEhUTUxFbGVtZW50RmFjdG9yeS5jcHAgKi8sCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmNwcAkocmV2
aXNpb24gMjMzMzg5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudEN1c3Rv
bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQyLDE5ICs0Miw2IEBACiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiB1c2luZyBuYW1lc3BhY2UgSlNDOwogCi0jZGVmaW5lIFRSWV9UT19XUkFQX1dJVEhfSU5U
RVJGQUNFKGludGVyZmFjZU5hbWUpIFwKLSAgICBjYXNlIGludGVyZmFjZU5hbWUjI0ludGVyZmFj
ZVR5cGU6IFwKLSAgICAgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXI8aW50ZXJmYWNlTmFtZT4oZ2xv
YmFsT2JqZWN0LCBXVEZNb3ZlKGV2ZW50KSk7Ci0KLUpTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChF
eGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8RXZlbnQ+JiYg
ZXZlbnQpCi17Ci0gICAgc3dpdGNoIChldmVudC0+ZXZlbnRJbnRlcmZhY2UoKSkgewotICAgICAg
ICBET01fRVZFTlRfSU5URVJGQUNFU19GT1JfRUFDSChUUllfVE9fV1JBUF9XSVRIX0lOVEVSRkFD
RSkKLSAgICB9Ci0KLSAgICByZXR1cm4gY3JlYXRlV3JhcHBlcjxFdmVudD4oZ2xvYmFsT2JqZWN0
LCBXVEZNb3ZlKGV2ZW50KSk7Ci19Ci0KIEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIHN0YXRlLCBK
U0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFdmVudCYgZXZlbnQpCiB7CiAgICAgcmV0
dXJuIHdyYXAoc3RhdGUsIGdsb2JhbE9iamVjdCwgZXZlbnQpOwpJbmRleDogU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNFdmVudFRhcmdldEN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudFRhcmdldEN1c3RvbS5jcHAJKHJldmlzaW9u
IDIzMzM4OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXRDdXN0
b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MCwzNyArNDAsMTkgQEAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKLSNkZWZpbmUgVFJZX1RPX1dSQVBfV0lUSF9J
TlRFUkZBQ0UoaW50ZXJmYWNlTmFtZSkgXAotICAgIGNhc2UgaW50ZXJmYWNlTmFtZSMjRXZlbnRU
YXJnZXRJbnRlcmZhY2VUeXBlOiBcCi0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9i
amVjdCwgc3RhdGljX2Nhc3Q8aW50ZXJmYWNlTmFtZSY+KHRhcmdldCkpOwotCi1KU1ZhbHVlIHRv
SlMoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFdmVu
dFRhcmdldCYgdGFyZ2V0KQotewotICAgIHN3aXRjaCAodGFyZ2V0LmV2ZW50VGFyZ2V0SW50ZXJm
YWNlKCkpIHsKLSAgICBET01fRVZFTlRfVEFSR0VUX0lOVEVSRkFDRVNfRk9SX0VBQ0goVFJZX1RP
X1dSQVBfV0lUSF9JTlRFUkZBQ0UpCi0gICAgfQotCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
Ci0gICAgcmV0dXJuIGpzTnVsbCgpOwotfQotCi0jdW5kZWYgVFJZX1RPX1dSQVBfV0lUSF9JTlRF
UkZBQ0UKLQotI2RlZmluZSBUUllfVE9fVU5XUkFQX1dJVEhfSU5URVJGQUNFKGludGVyZmFjZU5h
bWUpIFwKLSAgICBpZiAodmFsdWUuaW5oZXJpdHM8SlMjI2ludGVyZmFjZU5hbWU+KHZtKSkgXAot
ICAgICAgICByZXR1cm4gJmpzQ2FzdDxKUyMjaW50ZXJmYWNlTmFtZSo+KGFzT2JqZWN0KHZhbHVl
KSktPndyYXBwZWQoKTsKLQogRXZlbnRUYXJnZXQqIEpTRXZlbnRUYXJnZXQ6OnRvV3JhcHBlZChW
TSYgdm0sIEpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgVFJZX1RPX1VOV1JBUF9XSVRIX0lOVEVSRkFD
RShXaW5kb3dQcm94eSkKLSAgICBUUllfVE9fVU5XUkFQX1dJVEhfSU5URVJGQUNFKERPTVdpbmRv
dykKLSAgICBUUllfVE9fVU5XUkFQX1dJVEhfSU5URVJGQUNFKFdvcmtlckdsb2JhbFNjb3BlKQot
ICAgIFRSWV9UT19VTldSQVBfV0lUSF9JTlRFUkZBQ0UoRXZlbnRUYXJnZXQpCisgICAgaWYgKHZh
bHVlLmluaGVyaXRzPEpTV2luZG93UHJveHk+KHZtKSkKKyAgICAgICAgcmV0dXJuICZqc0Nhc3Q8
SlNXaW5kb3dQcm94eSo+KGFzT2JqZWN0KHZhbHVlKSktPndyYXBwZWQoKTsKKyAgICBpZiAodmFs
dWUuaW5oZXJpdHM8SlNET01XaW5kb3c+KHZtKSkKKyAgICAgICAgcmV0dXJuICZqc0Nhc3Q8SlNE
T01XaW5kb3cqPihhc09iamVjdCh2YWx1ZSkpLT53cmFwcGVkKCk7CisgICAgaWYgKHZhbHVlLmlu
aGVyaXRzPEpTV29ya2VyR2xvYmFsU2NvcGU+KHZtKSkKKyAgICAgICAgcmV0dXJuICZqc0Nhc3Q8
SlNXb3JrZXJHbG9iYWxTY29wZSo+KGFzT2JqZWN0KHZhbHVlKSktPndyYXBwZWQoKTsKKyAgICBp
ZiAodmFsdWUuaW5oZXJpdHM8SlNFdmVudFRhcmdldD4odm0pKQorICAgICAgICByZXR1cm4gJmpz
Q2FzdDxKU0V2ZW50VGFyZ2V0Kj4oYXNPYmplY3QodmFsdWUpKS0+d3JhcHBlZCgpOwogICAgIHJl
dHVybiBudWxscHRyOwogfQogCi0jdW5kZWYgVFJZX1RPX1VOV1JBUF9XSVRIX0lOVEVSRkFDRQot
CiBzdGQ6OnVuaXF1ZV9wdHI8SlNFdmVudFRhcmdldFdyYXBwZXI+IGpzRXZlbnRUYXJnZXRDYXN0
KFZNJiB2bSwgSlNWYWx1ZSB0aGlzVmFsdWUpCiB7CiAgICAgaWYgKGF1dG8qIHRhcmdldCA9IGpz
RHluYW1pY0Nhc3Q8SlNFdmVudFRhcmdldCo+KHZtLCB0aGlzVmFsdWUpKQpJbmRleDogU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JbkZpbGVzQ29tcGlsZXIucG0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JbkZpbGVzQ29tcGlsZXIucG0JKHJl
dmlzaW9uIDIzMzM4OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSW5GaWxl
c0NvbXBpbGVyLnBtCSh3b3JraW5nIGNvcHkpCkBAIC0xOTMsMTQgKzE5MywxNCBAQCBzdWIgZ2Vu
ZXJhdGVJbnRlcmZhY2VzSGVhZGVyKCkKIAogICAgIG15ICRGOwogICAgIG15ICRuYW1lc3BhY2Ug
PSAkcGFyc2VkUGFyYW1ldGVyc3sibmFtZXNwYWNlIn07CisgICAgbXkgJHVzZU5hbWVzcGFjZUFz
U3VmZml4ID0gJHBhcnNlZFBhcmFtZXRlcnN7InVzZU5hbWVzcGFjZUFzU3VmZml4In07CiAgICAg
bXkgJG91dHB1dEZpbGUgPSAiJG91dHB1dERpci8ke25hbWVzcGFjZX1JbnRlcmZhY2VzLmgiOwog
CiAgICAgb3BlbiBGLCAiPiRvdXRwdXRGaWxlIiBvciBkaWUgIkZhaWxlZCB0byBvcGVuIGZpbGU6
ICQhIjsKIAogICAgIHByaW50IEYgbGljZW5zZSgpOwogCi0gICAgcHJpbnQgRiAiI2lmbmRlZiAk
e25hbWVzcGFjZX1JbnRlcmZhY2VzX2hcbiI7Ci0gICAgcHJpbnQgRiAiI2RlZmluZSAke25hbWVz
cGFjZX1JbnRlcmZhY2VzX2hcbiI7CisgICAgcHJpbnQgRiAiI3ByYWdtYSBvbmNlXG4iOwogICAg
IHByaW50IEYgIlxuIjsKIAogICAgIG15ICV1bmNvbmRpdGlvbmFsSW50ZXJmYWNlcyA9ICgpOwpA
QCAtMjIyLDM2ICsyMjIsMzUgQEAgc3ViIGdlbmVyYXRlSW50ZXJmYWNlc0hlYWRlcigpCiAKICAg
ICBteSAkbWFjcm9TdHlsZWROYW1lc3BhY2UgPSAkb2JqZWN0LT50b01hY3JvU3R5bGUoJG5hbWVz
cGFjZSk7CiAKKyAgICBwcmludCBGICJuYW1lc3BhY2UgV2ViQ29yZSB7XG4iOworICAgIHByaW50
IEYgIlxuIjsKKyAgICBwcmludCBGICJlbnVtICR7bmFtZXNwYWNlfUludGVyZmFjZSB7XG4iOwor
CisgICAgbXkgJHN1ZmZpeCA9ICJJbnRlcmZhY2VUeXBlIjsKKyAgICBpZiAoJHVzZU5hbWVzcGFj
ZUFzU3VmZml4IGVxICJ0cnVlIikgeworICAgICAgICAkc3VmZml4ID0gJG5hbWVzcGFjZSAuICRz
dWZmaXg7CisgICAgfQorCisgICAgbXkgJGNvdW50ID0gMTsKICAgICBmb3IgbXkgJGNvbmRpdGlv
bmFsIChzb3J0IGtleXMgJWludGVyZmFjZXNCeUNvbmRpdGlvbmFsKSB7CiAgICAgICAgIG15ICRw
cmVmZXJyZWRDb25kaXRpb25hbCA9ICRvYmplY3QtPnByZWZlcnJlZENvbmRpdGlvbmFsKCRjb25k
aXRpb25hbCk7CiAgICAgICAgIHByaW50IEYgIiNpZiAiIC4gJG9iamVjdC0+Y29uZGl0aW9uYWxT
dHJpbmdGcm9tQXR0cmlidXRlVmFsdWUoJGNvbmRpdGlvbmFsKSAuICJcbiI7Ci0gICAgICAgIHBy
aW50IEYgIiNkZWZpbmUgRE9NXyR7bWFjcm9TdHlsZWROYW1lc3BhY2V9X0lOVEVSRkFDRVNfRk9S
X0VBQ0hfJHByZWZlcnJlZENvbmRpdGlvbmFsKG1hY3JvKSBcXFxuIjsKLQogICAgICAgICBmb3Ig
bXkgJGludGVyZmFjZSAoc29ydCBrZXlzICV7ICRpbnRlcmZhY2VzQnlDb25kaXRpb25hbHskY29u
ZGl0aW9uYWx9IH0pIHsKICAgICAgICAgICAgIG5leHQgaWYgZGVmaW5lZCgkdW5jb25kaXRpb25h
bEludGVyZmFjZXN7JGludGVyZmFjZX0pOwotICAgICAgICAgICAgcHJpbnQgRiAiICAgIG1hY3Jv
KCRpbnRlcmZhY2UpIFxcXG4iOworICAgICAgICAgICAgcHJpbnQgRiAiICAgICR7aW50ZXJmYWNl
fSR7c3VmZml4fSA9ICRjb3VudCxcbiI7CisgICAgICAgICAgICAkY291bnQrKzsKICAgICAgICAg
fQotCi0gICAgICAgIHByaW50IEYgIi8vIEVuZCBvZiBET01fJHttYWNyb1N0eWxlZE5hbWVzcGFj
ZX1fSU5URVJGQUNFU19GT1JfRUFDSF8kcHJlZmVycmVkQ29uZGl0aW9uYWxcbiI7Ci0gICAgICAg
IHByaW50IEYgIiNlbHNlXG4iOwotICAgICAgICBwcmludCBGICIjZGVmaW5lIERPTV8ke21hY3Jv
U3R5bGVkTmFtZXNwYWNlfV9JTlRFUkZBQ0VTX0ZPUl9FQUNIXyRwcmVmZXJyZWRDb25kaXRpb25h
bChtYWNybylcbiI7CiAgICAgICAgIHByaW50IEYgIiNlbmRpZlxuIjsKLSAgICAgICAgcHJpbnQg
RiAiXG4iOwogICAgIH0KIAotICAgIHByaW50IEYgIiNkZWZpbmUgRE9NXyR7bWFjcm9TdHlsZWRO
YW1lc3BhY2V9X0lOVEVSRkFDRVNfRk9SX0VBQ0gobWFjcm8pIFxcXG4iOwotICAgIHByaW50IEYg
IiAgICBcXFxuIjsKICAgICBmb3IgbXkgJGludGVyZmFjZSAoc29ydCBrZXlzICV1bmNvbmRpdGlv
bmFsSW50ZXJmYWNlcykgewotICAgICAgICAgICAgcHJpbnQgRiAiICAgIG1hY3JvKCRpbnRlcmZh
Y2UpIFxcXG4iOwotICAgIH0KLSAgICBwcmludCBGICIgICAgXFxcbiI7Ci0gICAgZm9yIG15ICRj
b25kaXRpb25hbCAoc29ydCBrZXlzICVpbnRlcmZhY2VzQnlDb25kaXRpb25hbCkgewotICAgICAg
ICBteSAkcHJlZmVycmVkQ29uZGl0aW9uYWwgPSAkb2JqZWN0LT5wcmVmZXJyZWRDb25kaXRpb25h
bCgkY29uZGl0aW9uYWwpOwotICAgICAgICBwcmludCBGICIgICAgRE9NXyR7bWFjcm9TdHlsZWRO
YW1lc3BhY2V9X0lOVEVSRkFDRVNfRk9SX0VBQ0hfJHByZWZlcnJlZENvbmRpdGlvbmFsKG1hY3Jv
KSBcXFxuIjsKKyAgICAgICAgcHJpbnQgRiAiICAgICR7aW50ZXJmYWNlfSR7c3VmZml4fSA9ICRj
b3VudCxcbiI7CisgICAgICAgICRjb3VudCsrOwogICAgIH0KIAorICAgIHByaW50IEYgIn07XG4i
OwogICAgIHByaW50IEYgIlxuIjsKLSAgICBwcmludCBGICIjZW5kaWYgLy8gJHtuYW1lc3BhY2V9
SW50ZXJmYWNlc19oXG4iOworICAgIHByaW50IEYgIn0gLy8gbmFtZXNwYWNlIFdlYkNvcmVcbiI7
CiAKICAgICBjbG9zZSBGOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmgJKHJldmlzaW9uIDIzMzM4OSkK
KysrIFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCwxNCAr
MzgsNiBAQCBjbGFzcyBFdmVudFBhdGg7CiBjbGFzcyBFdmVudFRhcmdldDsKIGNsYXNzIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQ7CiAKLWVudW0gRXZlbnRJbnRlcmZhY2UgewotCi0jZGVmaW5lIERP
TV9FVkVOVF9JTlRFUkZBQ0VfREVDTEFSRShuYW1lKSBuYW1lIyNJbnRlcmZhY2VUeXBlLAotRE9N
X0VWRU5UX0lOVEVSRkFDRVNfRk9SX0VBQ0goRE9NX0VWRU5UX0lOVEVSRkFDRV9ERUNMQVJFKQot
I3VuZGVmIERPTV9FVkVOVF9JTlRFUkZBQ0VfREVDTEFSRQotCi19OwotCiBjbGFzcyBFdmVudCA6
IHB1YmxpYyBTY3JpcHRXcmFwcGFibGUsIHB1YmxpYyBSZWZDb3VudGVkPEV2ZW50PiB7CiBwdWJs
aWM6CiAgICAgZW51bSBjbGFzcyBJc1RydXN0ZWQgeyBObywgWWVzIH07CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9k
b20vRXZlbnROYW1lcy5pbgkocmV2aXNpb24gMjMzMzg5KQorKysgU291cmNlL1dlYkNvcmUvZG9t
L0V2ZW50TmFtZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTEsNCArMSw2IEBACiBuYW1lc3BhY2U9
IkV2ZW50IgorZmFjdG9yeUZ1bmN0aW9uPXRvTmV3bHlDcmVhdGVkCit1c2VOYW1lc3BhY2VBc1N1
ZmZpeD1mYWxzZQogCiBFdmVudAogRXZlbnRzIGludGVyZmFjZU5hbWU9RXZlbnQKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2RvbS9FdmVudFRhcmdldC5oCShyZXZpc2lvbiAyMzMzODkpCisrKyBTb3VyY2UvV2ViQ29y
ZS9kb20vRXZlbnRUYXJnZXQuaAkod29ya2luZyBjb3B5KQpAQCAtNTAsMTQgKzUwLDYgQEAgcHVi
bGljOgogICAgIGJvb2wgaXNGaXJpbmdFdmVudExpc3RlbmVycyB7IGZhbHNlIH07CiB9OwogCi1l
bnVtIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIHsKLQotI2RlZmluZSBET01fRVZFTlRfSU5URVJGQUNF
X0RFQ0xBUkUobmFtZSkgbmFtZSMjRXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlLAotRE9NX0VWRU5U
X1RBUkdFVF9JTlRFUkZBQ0VTX0ZPUl9FQUNIKERPTV9FVkVOVF9JTlRFUkZBQ0VfREVDTEFSRSkK
LSN1bmRlZiBET01fRVZFTlRfSU5URVJGQUNFX0RFQ0xBUkUKLQotfTsKLQogY2xhc3MgRXZlbnRU
YXJnZXQgOiBwdWJsaWMgU2NyaXB0V3JhcHBhYmxlIHsKIHB1YmxpYzoKICAgICB2b2lkIHJlZigp
IHsgcmVmRXZlbnRUYXJnZXQoKTsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFy
Z2V0RmFjdG9yeS5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJn
ZXRGYWN0b3J5LmluCShyZXZpc2lvbiAyMzMzODkpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnRUYXJnZXRGYWN0b3J5LmluCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsNiBAQAogbmFtZXNw
YWNlPSJFdmVudFRhcmdldCIKK2ZhY3RvcnlGdW5jdGlvbj10b0pTCit1c2VOYW1lc3BhY2VBc1N1
ZmZpeD10cnVlCiAKIEFib3J0U2lnbmFsCiBBcHBsZVBheVNlc3Npb24gY29uZGl0aW9uYWw9QVBQ
TEVfUEFZCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vbWFrZV9ldmVudF9mYWN0b3J5LnBsCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9tYWtlX2V2ZW50X2ZhY3RvcnkucGwJKHJl
dmlzaW9uIDIzMzM4OSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9tYWtlX2V2ZW50X2ZhY3Rvcnku
cGwJKHdvcmtpbmcgY29weSkKQEAgLTM4LDcgKzM4LDkgQEAgdXNlIGxpYiAiJEZpbmRCaW46OkJp
bi8uLi9iaW5kaW5ncy9zY3JpcAogdXNlIEluRmlsZXNDb21waWxlcjsKIAogbXkgJWRlZmF1bHRQ
YXJhbWV0ZXJzID0gKAotICAgICduYW1lc3BhY2UnID0+IDAKKyAgICAnbmFtZXNwYWNlJyA9PiAw
LAorICAgICdmYWN0b3J5RnVuY3Rpb24nID0+IDAsCisgICAgJ3VzZU5hbWVzcGFjZUFzU3VmZml4
JyA9PiAwLAogKTsKIAogc3ViIGRlZmF1bHRJdGVtRmFjdG9yeQpAQCAtNjIsNyArNjQsNyBAQCBz
dWIgZ2VuZXJhdGVDb2RlKCkKIAogICAgIGdlbmVyYXRlSW1wbGVtZW50YXRpb24oJHBhcnNlZFBh
cmFtZXRlcnNSZWYsICRwYXJzZWRJdGVtc1JlZik7CiAgICAgJEluQ29tcGlsZXItPmdlbmVyYXRl
SW50ZXJmYWNlc0hlYWRlcigpOwotICAgICRJbkNvbXBpbGVyLT5nZW5lcmF0ZUhlYWRlcnNIZWFk
ZXIoKQorICAgICRJbkNvbXBpbGVyLT5nZW5lcmF0ZUhlYWRlcnNIZWFkZXIoKTsKIH0KIAogc3Vi
IGdlbmVyYXRlSW1wbGVtZW50YXRpb24oKQpAQCAtNzQsNDMgKzc2LDcyIEBAIHN1YiBnZW5lcmF0
ZUltcGxlbWVudGF0aW9uKCkKICAgICBteSAlcGFyc2VkUGFyYW1ldGVycyA9ICV7ICRwYXJzZWRQ
YXJhbWV0ZXJzUmVmIH07CiAKICAgICBteSAkbmFtZXNwYWNlID0gJHBhcnNlZFBhcmFtZXRlcnN7
Im5hbWVzcGFjZSJ9OwotCi0gICAgIyBDdXJyZW50bHksIG9ubHkgRXZlbnRzIGhhdmUgZmFjdG9y
eSBmaWxlcy4KLSAgICByZXR1cm4gaWYgJG5hbWVzcGFjZSBuZSAiRXZlbnQiOworICAgIG15ICRm
YWN0b3J5RnVuY3Rpb24gPSAkcGFyc2VkUGFyYW1ldGVyc3siZmFjdG9yeUZ1bmN0aW9uIn07Cisg
ICAgKCRmYWN0b3J5RnVuY3Rpb24gZXEgInRvSlMiIG9yICRmYWN0b3J5RnVuY3Rpb24gZXEgInRv
TmV3bHlDcmVhdGVkIikgb3IgZGllICJmYWN0b3J5RnVuY3Rpb24gc2hvdWxkIGJlIGVpdGhlciB0
b0pTIG9yIHRvTmV3bHlDcmVhdGVkIjsKKyAgICBteSAkdXNlTmFtZXNwYWNlQXNTdWZmaXggPSAk
cGFyc2VkUGFyYW1ldGVyc3sidXNlTmFtZXNwYWNlQXNTdWZmaXgifTsKIAogICAgIG15ICRGOwog
ICAgIG9wZW4gRiwgIj4iLCAiJG91dHB1dERpci8ke25hbWVzcGFjZX1GYWN0b3J5LmNwcCIgb3Ig
ZGllICJGYWlsZWQgdG8gb3BlbiBmaWxlOiAkISI7CiAKICAgICBwcmludCBGICRJbkNvbXBpbGVy
LT5saWNlbnNlKCk7CiAKKyAgICBteSAkaW50ZXJmYWNlTWV0aG9kTmFtZSA9IGxjZmlyc3QgJG5h
bWVzcGFjZSAuICJJbnRlcmZhY2UiOworCiAgICAgcHJpbnQgRiAiI2luY2x1ZGUgXCJjb25maWcu
aFwiXG4iOwotICAgIHByaW50IEYgIiNpbmNsdWRlIFwiJHtuYW1lc3BhY2V9RmFjdG9yeS5oXCJc
biI7Ci0gICAgcHJpbnQgRiAiXG4iOwogICAgIHByaW50IEYgIiNpbmNsdWRlIFwiJHtuYW1lc3Bh
Y2V9SGVhZGVycy5oXCJcbiI7CisgICAgcHJpbnQgRiAiXG4iOworICAgIHByaW50IEYgIiNpbmNs
dWRlIFwiSlNET01HbG9iYWxPYmplY3QuaFwiXG4iOwogICAgIHByaW50IEYgIiNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9TdHJ1Y3R1cmVJbmxpbmVzLmg+XG4iOwogICAgIHByaW50IEYgIlxuIjsK
ICAgICBwcmludCBGICJuYW1lc3BhY2UgV2ViQ29yZSB7XG4iOwogICAgIHByaW50IEYgIlxuIjsK
LSAgICBwcmludCBGICJSZWZQdHI8JG5hbWVzcGFjZT4gJHtuYW1lc3BhY2V9RmFjdG9yeTo6Y3Jl
YXRlKGNvbnN0IFN0cmluZyYgdHlwZSlcbiI7Ci0gICAgcHJpbnQgRiAie1xuIjsKKyAgICAjIEZJ
WE1FOiBXaHkgZG9lcyBFdmVudCBuZWVkIHRvTmV3bHlDcmVhdGVkIGJ1dCBFdmVudFRhcmdldCBu
ZWVkIHRvSlM/CisgICAgaWYgKCRmYWN0b3J5RnVuY3Rpb24gZXEgInRvTmV3bHlDcmVhdGVkIikg
eworICAgICAgICBwcmludCBGICJKU0M6OkpTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChKU0M6OkV4
ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjwke25hbWVzcGFj
ZX0+JiYgaW1wbClcbiI7CisgICAgICAgIHByaW50IEYgIntcbiI7CisgICAgICAgIHByaW50IEYg
IiAgICBzd2l0Y2ggKGltcGwtPiR7aW50ZXJmYWNlTWV0aG9kTmFtZX0oKSkge1xuIjsKKyAgICB9
IGVsc2UgeworICAgICAgICBwcmludCBGICJKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0
ZSogc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsICR7bmFtZXNwYWNlfSYg
aW1wbClcbiI7CisgICAgICAgIHByaW50IEYgIntcbiI7CisgICAgICAgIHByaW50IEYgIiAgICBz
d2l0Y2ggKGltcGwuJHtpbnRlcmZhY2VNZXRob2ROYW1lfSgpKSB7XG4iOworICAgIH0KKworICAg
IG15ICVnZW5lcmF0ZWRJbnRlcmZhY2VOYW1lcyA9ICgpOwogCiAgICAgZm9yIG15ICRldmVudE5h
bWUgKHNvcnQga2V5cyAlcGFyc2VkRXZlbnRzKSB7CiAgICAgICAgIG15ICRjb25kaXRpb25hbCA9
ICRwYXJzZWRFdmVudHN7JGV2ZW50TmFtZX17ImNvbmRpdGlvbmFsIn07CiAgICAgICAgIG15ICRy
dW50aW1lRW5hYmxlZCA9ICRwYXJzZWRFdmVudHN7JGV2ZW50TmFtZX17InJ1bnRpbWVFbmFibGVk
In07CiAgICAgICAgIG15ICRpbnRlcmZhY2VOYW1lID0gJEluQ29tcGlsZXItPmludGVyZmFjZUZv
ckl0ZW0oJGV2ZW50TmFtZSk7CiAKLSAgICAgICAgIyBGSVhNRTogVGhpcyBzaG91bGQgcGF5IGF0
dGVudGlvbiB0byAkcnVudGltZUNvbmRpdGlvbmFsIHNvIGl0IGNhbiBzdXBwb3J0IFJ1bnRpbWVF
bmFibGVkRmVhdHVyZXMuCisgICAgICAgIG5leHQgaWYgJGdlbmVyYXRlZEludGVyZmFjZU5hbWVz
eyRpbnRlcmZhY2VOYW1lfTsKKyAgICAgICAgJGdlbmVyYXRlZEludGVyZmFjZU5hbWVzeyRpbnRl
cmZhY2VOYW1lfSA9IDE7CisKKyAgICAgICAgbXkgJHN1ZmZpeCA9ICIiOworICAgICAgICBpZiAo
JHVzZU5hbWVzcGFjZUFzU3VmZml4IGVxICJ0cnVlIikgeworICAgICAgICAgICAgJHN1ZmZpeCA9
ICRuYW1lc3BhY2UgLiAkc3VmZml4OworICAgICAgICB9CiAKKyAgICAgICAgIyBGSVhNRTogVGhp
cyBzaG91bGQgcGF5IGF0dGVudGlvbiB0byAkcnVudGltZUNvbmRpdGlvbmFsIHNvIGl0IGNhbiBz
dXBwb3J0IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuCiAgICAgICAgIGlmICgkY29uZGl0aW9uYWwp
IHsKICAgICAgICAgICAgIG15ICRjb25kaXRpb25hbHMgPSAiI2lmIEVOQUJMRSgiIC4gam9pbigi
KSB8fCBFTkFCTEUoIiwgc3BsaXQoIlxcfCIsICRjb25kaXRpb25hbCkpIC4gIikiOwogICAgICAg
ICAgICAgcHJpbnQgRiAiJGNvbmRpdGlvbmFsc1xuIjsKICAgICAgICAgfQotICAgICAgICBwcmlu
dCBGICIgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UodHlwZSwgXCIkZXZlbnROYW1lXCIp
KVxuIjsKLSAgICAgICAgcHJpbnQgRiAiICAgICAgICByZXR1cm4gJHtpbnRlcmZhY2VOYW1lfTo6
Y3JlYXRlKCk7XG4iOworICAgICAgICBwcmludCBGICIgICAgY2FzZSAke2ludGVyZmFjZU5hbWV9
JHtzdWZmaXh9SW50ZXJmYWNlVHlwZTpcbiI7CisgICAgICAgIGlmICgkZmFjdG9yeUZ1bmN0aW9u
IGVxICJ0b05ld2x5Q3JlYXRlZCIpIHsKKyAgICAgICAgICAgIHByaW50IEYgIiAgICAgICAgcmV0
dXJuIGNyZWF0ZVdyYXBwZXI8JGludGVyZmFjZU5hbWUkc3VmZml4PihnbG9iYWxPYmplY3QsIFdU
Rk1vdmUoaW1wbCkpO1xuIjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHByaW50IEYg
IiAgICAgICAgcmV0dXJuIHRvSlMoc3RhdGUsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8JGlu
dGVyZmFjZU5hbWUmPihpbXBsKSk7XG4iOworICAgICAgICB9CiAgICAgICAgIHByaW50IEYgIiNl
bmRpZlxuIiBpZiAkY29uZGl0aW9uYWw7CiAgICAgfQogCi0gICAgcHJpbnQgRiAiICAgIHJldHVy
biBudWxscHRyO1xuIjsKKyAgICBwcmludCBGICIgICAgfVxuIjsKKyAgICBpZiAoJGZhY3RvcnlG
dW5jdGlvbiBlcSAidG9OZXdseUNyZWF0ZWQiKSB7CisgICAgICAgIHByaW50IEYgIiAgICByZXR1
cm4gY3JlYXRlV3JhcHBlcjwkbmFtZXNwYWNlPihnbG9iYWxPYmplY3QsIFdURk1vdmUoaW1wbCkp
O1xuIjsKKyAgICB9IGVsc2UgeworICAgICAgICBwcmludCBGICIgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7XG4iOworICAgICAgICBwcmludCBGICIgICAgcmV0dXJuIEpTQzo6anNOdWxsKCk7XG4i
OworICAgIH0KICAgICBwcmludCBGICJ9XG4iOwogICAgIHByaW50IEYgIlxuIjsKICAgICBwcmlu
dCBGICJ9IC8vIG5hbWVzcGFjZSBXZWJDb3JlXG4iOwo=
</data>
<flag name="review"
          id="362059"
          type_id="1"
          status="+"
          setter="cdumez"
    />
          </attachment>
      

    </bug>

</bugzilla>