<?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>180876</bug_id>
          
          <creation_ts>2017-12-15 11:32:27 -0800</creation_ts>
          <short_desc>YARR: JIT RegExps with non-greedy parenthesized sub patterns</short_desc>
          <delta_ts>2018-08-24 11:22:32 -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>Other</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>
          
          <blocked>179230</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Saboff">msaboff</reporter>
          <assigned_to name="Michael Saboff">msaboff</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1382218</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2017-12-15 11:32:27 -0800</bug_when>
    <thetext>We currently do not JIT code for patterns like /(a)*?(b)*?/.  Instead we handle those in the YARR interpreter which is much slower.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1382219</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2017-12-15 11:32:51 -0800</bug_when>
    <thetext>&lt;rdar://problem/36077587&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1453363</commentid>
    <comment_count>2</comment_count>
      <attachid>347983</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2018-08-23 18:25:24 -0700</bug_when>
    <thetext>Created attachment 347983
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1453500</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2018-08-24 11:22:32 -0700</bug_when>
    <thetext>Committed r235322: &lt;https://trac.webkit.org/changeset/235322&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>347983</attachid>
            <date>2018-08-23 18:25:24 -0700</date>
            <delta_ts>2018-08-24 11:10:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>180876.patch</filename>
            <type>text/plain</type>
            <size>19146</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjM1MjYyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBA
CisyMDE4LTA4LTIzICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgorCisgICAg
ICAgIFlBUlI6IEpJVCBSZWdFeHBzIHdpdGggbm9uLWdyZWVkeSBwYXJlbnRoZXNpemVkIHN1YiBw
YXR0ZXJucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTgwODc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
SW1wbGVtZW50ZWQgdGhlIG5vbi1ncmVlZHkgbmVzdGVkIHBhcmVudGhlc2lzIGJhc2VkIG9uIHRo
ZSBwcmlvciBncmVlZHkgbmVzdGVkIHBhcmVudGhlc2lzIHdvcmsuCisgICAgICAgIEZvciB0aGUg
bWF0Y2hpbmcgY29kZSwgdGhlIGdyZWVkeSBwYXRoIHdhcyBjb3JyZWN0IGV4Y2VwdCB0aGF0IHdl
IGRvbid0IHRyeSBtYXRjaGluZyBmb3IgdGhlCisgICAgICAgIG5vbi1ncmVlZHkgY2FzZS4gIEFk
ZGVkIGEganVtcCBvdXQgdG8gdGhlIHRlcm0gYWZ0ZXIgdGhlIHBhcmVudGhlc2lzIGFuZCBhIGxh
YmVsIHRvIHBlcmZvcm0gdGhlCisgICAgICAgIGZpcnN0IC8gbmV4dCBtYXRjaCB3aGVuIHdlIGJh
Y2t0cmFjay4gIFRoZSBiYWNrdHJhY2tpbmcgY29kZSBuZWVkcyB0byBjaGVjayB0byBzZWUgaWYg
d2UgaGF2ZQorICAgICAgICB0cmllZCB0aGUgZmlyc3QgbWF0Y2ggb3IgaWYgd2UgY2FuIGRvIGFu
b3RoZXIgbWF0Y2guCisKKyAgICAgICAgVXBkYXRlZCB0aGUgZGlzYXNzZW1ibHkgYW5ub3RhdGlv
bnMgdG8gaW5jbHVkZSBwYXJlbnRoZXNpcyBjYXB0dXJpbmcgaW5mbywgcXVhbnRpZmllciB0eXBl
IGFuZAorICAgICAgICBjb3VudC4gIERpZCBvdGhlciBtaW5vciBjbGVhbnVwIGFzIHdlbGwuCisK
KyAgICAgICAgRml4ZWQgZnVuY3Rpb24gbmFtZSB0eXBvLCBhZGRlZCBtaXNzaW5nICd0JyBpbiAi
c2V0VXNlc1BhdGVybkNvbnRleHRCdWZmZXIoKSIuCisKKyAgICAgICAgVXBkYXRlZCB0aGUgdGV4
dCBpbiBzb21lIGNvbW1lbnRzLCBib3RoIGZvciB0aGlzIGNoYW5nZSBhcyB3ZWxsIGFzIGFjY3Vy
YWN5IGZvciBleGlzdGluZyBjb2RlLgorCisgICAgICAgICogeWFyci9ZYXJySklULmNwcDoKKyAg
ICAgICAgKEpTQzo6WWFycjo6WWFyckdlbmVyYXRvcjo6Z2VuZXJhdGUpOgorICAgICAgICAoSlND
OjpZYXJyOjpZYXJyR2VuZXJhdG9yOjpiYWNrdHJhY2spOgorICAgICAgICAoSlNDOjpZYXJyOjpZ
YXJyR2VuZXJhdG9yOjpvcENvbXBpbGVQYXJlbnRoZXNlc1N1YnBhdHRlcm4pOgorICAgICAgICAo
SlNDOjpZYXJyOjpZYXJyR2VuZXJhdG9yOjpjb21waWxlKToKKyAgICAgICAgKEpTQzo6WWFycjo6
ZHVtcENvbXBpbGVGYWlsdXJlKToKKyAgICAgICAgKEpTQzo6WWFycjo6aml0Q29tcGlsZSk6Cisg
ICAgICAgICogeWFyci9ZYXJySklULmg6CisgICAgICAgIChKU0M6OllhcnI6OllhcnJDb2RlQmxv
Y2s6OnNldFVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlcik6CisgICAgICAgIChKU0M6OllhcnI6Ollh
cnJDb2RlQmxvY2s6OnNldFVzZXNQYXRlcm5Db250ZXh0QnVmZmVyKTogRGVsZXRlZC4KKwogMjAx
OC0wOC0yMyAgU2FhbSBiYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBKU1J1
bkxvb3BUaW1lciBtYXkgcnVuIHBhcnQgb2YgYSBtZW1iZXIgZnVuY3Rpb24gYWZ0ZXIgaXQncyBk
ZXN0cm95ZWQKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuY3BwCShyZXZp
c2lvbiAyMzUyNjIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjIzNCw3ICsyMjM0LDcgQEAgY2xhc3MgWWFyckdlbmVyYXRvciA6
IHB1YmxpYyBZYXJySklUSW5mbwogICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAg
IC8vIElmIHRoZSBwYXJlbnRoZXNlcyBhcmUgcXVhbnRpZmllZCBHcmVlZHkgdGhlbiBhZGQgYSBs
YWJlbCB0byBqdW1wIGJhY2sKLSAgICAgICAgICAgICAgICAvLyB0byBpZiBnZXQgYSBmYWlsZWQg
bWF0Y2ggZnJvbSBhZnRlciB0aGUgcGFyZW50aGVzZXMuIEZvciBOb25HcmVlZHkKKyAgICAgICAg
ICAgICAgICAvLyB0byBpZiB3ZSBnZXQgYSBmYWlsZWQgbWF0Y2ggZnJvbSBhZnRlciB0aGUgcGFy
ZW50aGVzZXMuIEZvciBOb25HcmVlZHkKICAgICAgICAgICAgICAgICAvLyBwYXJlbnRoZXNlcywg
bGluayB0aGUganVtcCBmcm9tIGJlZm9yZSB0aGUgc3VicGF0dGVybiB0byBoZXJlLgogICAgICAg
ICAgICAgICAgIGlmICh0ZXJtLT5xdWFudGl0eVR5cGUgPT0gUXVhbnRpZmllckdyZWVkeSkKICAg
ICAgICAgICAgICAgICAgICAgb3AubV9yZWVudHJ5ID0gbGFiZWwoKTsKQEAgLTIyOTgsMTEgKzIy
OTgsMTEgQEAgY2xhc3MgWWFyckdlbmVyYXRvciA6IHB1YmxpYyBZYXJySklUSW5mbwogICAgICAg
ICAgICAgICAgIC8vICAgIG1hdGNoIHdpdGhpbiB0aGUgcGFyZW50aGVzZXMsIG9yIHRoZSBzZWNv
bmQgaGF2aW5nIHNraXBwZWQgb3ZlciB0aGVtLgogICAgICAgICAgICAgICAgIC8vICAtIFRvIGNo
ZWNrIGZvciBlbXB0eSBtYXRjaGVzLCB3aGljaCBtdXN0IGJlIHJlamVjdGVkLgogICAgICAgICAg
ICAgICAgIC8vCi0gICAgICAgICAgICAgICAgLy8gQXQgdGhlIGhlYWQgb2YgYSBOb25HcmVlZHkg
c2V0IG9mIHBhcmVudGhlc2VzIHdlJ2xsIGltbWVkaWF0ZWx5IHNldCB0aGUKLSAgICAgICAgICAg
ICAgICAvLyB2YWx1ZSBvbiB0aGUgc3RhY2sgdG8gLTEgKGluZGljYXRpbmcgYSBtYXRjaCBza2lw
cGluZyB0aGUgc3VicGF0dGVybiksCisgICAgICAgICAgICAgICAgLy8gQXQgdGhlIGhlYWQgb2Yg
YSBOb25HcmVlZHkgc2V0IG9mIHBhcmVudGhlc2VzIHdlJ2xsIGltbWVkaWF0ZWx5IHNldCAnYmVn
aW4nCisgICAgICAgICAgICAgICAgLy8gaW4gdGhlIGJhY2t0cmFjayBpbmZvIHRvIC0xIChpbmRp
Y2F0aW5nIGEgbWF0Y2ggc2tpcHBpbmcgdGhlIHN1YnBhdHRlcm4pLAogICAgICAgICAgICAgICAg
IC8vIGFuZCBwbGFudCBhIGp1bXAgdG8gdGhlIGVuZC4gV2UnbGwgYWxzbyBwbGFudCBhIGxhYmVs
IHRvIGJhY2t0cmFjayB0bwotICAgICAgICAgICAgICAgIC8vIHRvIHJlZW50ZXIgdGhlIHN1YnBh
dHRlcm4gbGF0ZXIsIHdpdGggYSBzdG9yZSB0byBzZXQgdXAgaW5kZXggb24gdGhlCi0gICAgICAg
ICAgICAgICAgLy8gc2Vjb25kIGl0ZXJhdGlvbi4KKyAgICAgICAgICAgICAgICAvLyB0byByZWVu
dGVyIHRoZSBzdWJwYXR0ZXJuIGxhdGVyLCB3aXRoIGEgc3RvcmUgdG8gc2V0ICdiZWdpbicgdG8g
Y3VycmVudCBpbmRleAorICAgICAgICAgICAgICAgIC8vIG9uIHRoZSBzZWNvbmQgaXRlcmF0aW9u
LgogICAgICAgICAgICAgICAgIC8vCiAgICAgICAgICAgICAgICAgLy8gRklYTUU6IGZvciBjYXB0
dXJpbmcgcGFyZW5zLCBjb3VsZCB1c2UgdGhlIGluZGV4IGluIHRoZSBjYXB0dXJlIGFycmF5Pwog
ICAgICAgICAgICAgICAgIGlmICh0ZXJtLT5xdWFudGl0eVR5cGUgPT0gUXVhbnRpZmllckdyZWVk
eSB8fCB0ZXJtLT5xdWFudGl0eVR5cGUgPT0gUXVhbnRpZmllck5vbkdyZWVkeSkgewpAQCAtMjM4
OSw3ICsyMzg5LDcgQEAgY2xhc3MgWWFyckdlbmVyYXRvciA6IHB1YmxpYyBZYXJySklUSW5mbwog
ICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAgIC8vIElmIHRoZSBwYXJlbnRoZXNl
cyBhcmUgcXVhbnRpZmllZCBHcmVlZHkgdGhlbiBhZGQgYSBsYWJlbCB0byBqdW1wIGJhY2sKLSAg
ICAgICAgICAgICAgICAvLyB0byBpZiBnZXQgYSBmYWlsZWQgbWF0Y2ggZnJvbSBhZnRlciB0aGUg
cGFyZW50aGVzZXMuIEZvciBOb25HcmVlZHkKKyAgICAgICAgICAgICAgICAvLyB0byBpZiB3ZSBn
ZXQgYSBmYWlsZWQgbWF0Y2ggZnJvbSBhZnRlciB0aGUgcGFyZW50aGVzZXMuIEZvciBOb25HcmVl
ZHkKICAgICAgICAgICAgICAgICAvLyBwYXJlbnRoZXNlcywgbGluayB0aGUganVtcCBmcm9tIGJl
Zm9yZSB0aGUgc3VicGF0dGVybiB0byBoZXJlLgogICAgICAgICAgICAgICAgIGlmICh0ZXJtLT5x
dWFudGl0eVR5cGUgPT0gUXVhbnRpZmllckdyZWVkeSkgewogICAgICAgICAgICAgICAgICAgICBp
ZiAodGVybS0+cXVhbnRpdHlNYXhDb3VudCAhPSBxdWFudGlmeUluZmluaXRlKQpAQCAtMjQwMSw2
ICsyNDAxLDcgQEAgY2xhc3MgWWFyckdlbmVyYXRvciA6IHB1YmxpYyBZYXJySklUSW5mbwogICAg
ICAgICAgICAgICAgIH0gZWxzZSBpZiAodGVybS0+cXVhbnRpdHlUeXBlID09IFF1YW50aWZpZXJO
b25HcmVlZHkpIHsKICAgICAgICAgICAgICAgICAgICAgWWFyck9wJiBiZWdpbk9wID0gbV9vcHNb
b3AubV9wcmV2aW91c09wXTsKICAgICAgICAgICAgICAgICAgICAgYmVnaW5PcC5tX2p1bXBzLmxp
bmsodGhpcyk7CisgICAgICAgICAgICAgICAgICAgIG9wLm1fcmVlbnRyeSA9IGxhYmVsKCk7CiAg
ICAgICAgICAgICAgICAgfQogI2Vsc2UgLy8gIVlBUlJfSklUX0FMTF9QQVJFTlNfRVhQUkVTU0lP
TlMKICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMjk2
MiwzMiArMjk2MywzMiBAQCBjbGFzcyBZYXJyR2VuZXJhdG9yIDogcHVibGljIFlhcnJKSVRJbmZv
CiAgICAgICAgICAgICAgICAgaWYgKHRlcm0tPnF1YW50aXR5VHlwZSAhPSBRdWFudGlmaWVyRml4
ZWRDb3VudCkgewogICAgICAgICAgICAgICAgICAgICBtX2JhY2t0cmFja2luZ1N0YXRlLmxpbmso
dGhpcyk7CiAKLSAgICAgICAgICAgICAgICAgICAgaWYgKHRlcm0tPnF1YW50aXR5VHlwZSA9PSBR
dWFudGlmaWVyR3JlZWR5KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlcklEIGN1
cnJQYXJlbkNvbnRleHRSZWcgPSByZWdUMDsKLSAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lz
dGVySUQgbmV3UGFyZW5Db250ZXh0UmVnID0gcmVnVDE7Ci0KLSAgICAgICAgICAgICAgICAgICAg
ICAgIGxvYWRGcm9tRnJhbWUocGFyZW50aGVzZXNGcmFtZUxvY2F0aW9uICsgQmFja1RyYWNrSW5m
b1BhcmVudGhlc2VzOjpwYXJlbkNvbnRleHRIZWFkSW5kZXgoKSwgY3VyclBhcmVuQ29udGV4dFJl
Zyk7CisgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVySUQgY3VyclBhcmVuQ29udGV4dFJlZyA9
IHJlZ1QwOworICAgICAgICAgICAgICAgICAgICBSZWdpc3RlcklEIG5ld1BhcmVuQ29udGV4dFJl
ZyA9IHJlZ1QxOwogCi0gICAgICAgICAgICAgICAgICAgICAgICByZXN0b3JlUGFyZW5Db250ZXh0
KGN1cnJQYXJlbkNvbnRleHRSZWcsIHJlZ1QyLCB0ZXJtLT5wYXJlbnRoZXNlcy5zdWJwYXR0ZXJu
SWQsIHRlcm0tPnBhcmVudGhlc2VzLmxhc3RTdWJwYXR0ZXJuSWQsIHBhcmVudGhlc2VzRnJhbWVM
b2NhdGlvbik7CisgICAgICAgICAgICAgICAgICAgIGxvYWRGcm9tRnJhbWUocGFyZW50aGVzZXNG
cmFtZUxvY2F0aW9uICsgQmFja1RyYWNrSW5mb1BhcmVudGhlc2VzOjpwYXJlbkNvbnRleHRIZWFk
SW5kZXgoKSwgY3VyclBhcmVuQ29udGV4dFJlZyk7CisgICAgICAgICAgICAgICAgICAgIAorICAg
ICAgICAgICAgICAgICAgICByZXN0b3JlUGFyZW5Db250ZXh0KGN1cnJQYXJlbkNvbnRleHRSZWcs
IHJlZ1QyLCB0ZXJtLT5wYXJlbnRoZXNlcy5zdWJwYXR0ZXJuSWQsIHRlcm0tPnBhcmVudGhlc2Vz
Lmxhc3RTdWJwYXR0ZXJuSWQsIHBhcmVudGhlc2VzRnJhbWVMb2NhdGlvbik7CisgICAgICAgICAg
ICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBmcmVlUGFyZW5Db250ZXh0KGN1cnJQYXJl
bkNvbnRleHRSZWcsIG5ld1BhcmVuQ29udGV4dFJlZyk7CisgICAgICAgICAgICAgICAgICAgIHN0
b3JlVG9GcmFtZShuZXdQYXJlbkNvbnRleHRSZWcsIHBhcmVudGhlc2VzRnJhbWVMb2NhdGlvbiAr
IEJhY2tUcmFja0luZm9QYXJlbnRoZXNlczo6cGFyZW5Db250ZXh0SGVhZEluZGV4KCkpOwogCi0g
ICAgICAgICAgICAgICAgICAgICAgICBmcmVlUGFyZW5Db250ZXh0KGN1cnJQYXJlbkNvbnRleHRS
ZWcsIG5ld1BhcmVuQ29udGV4dFJlZyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzdG9yZVRv
RnJhbWUobmV3UGFyZW5Db250ZXh0UmVnLCBwYXJlbnRoZXNlc0ZyYW1lTG9jYXRpb24gKyBCYWNr
VHJhY2tJbmZvUGFyZW50aGVzZXM6OnBhcmVuQ29udGV4dEhlYWRJbmRleCgpKTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IFJlZ2lzdGVySUQgY291bnRUZW1wb3JhcnkgPSByZWdUMDsK
LSAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRGcm9tRnJhbWUocGFyZW50aGVzZXNGcmFtZUxv
Y2F0aW9uICsgQmFja1RyYWNrSW5mb1BhcmVudGhlc2VzOjptYXRjaEFtb3VudEluZGV4KCksIGNv
dW50VGVtcG9yYXJ5KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIEp1bXAgemVyb0xlbmd0aE1h
dGNoID0gYnJhbmNoVGVzdDMyKFplcm8sIGNvdW50VGVtcG9yYXJ5KTsKKyAgICAgICAgICAgICAg
ICAgICAgY29uc3QgUmVnaXN0ZXJJRCBjb3VudFRlbXBvcmFyeSA9IHJlZ1QwOworICAgICAgICAg
ICAgICAgICAgICBsb2FkRnJvbUZyYW1lKHBhcmVudGhlc2VzRnJhbWVMb2NhdGlvbiArIEJhY2tU
cmFja0luZm9QYXJlbnRoZXNlczo6bWF0Y2hBbW91bnRJbmRleCgpLCBjb3VudFRlbXBvcmFyeSk7
CisgICAgICAgICAgICAgICAgICAgIEp1bXAgemVyb0xlbmd0aE1hdGNoID0gYnJhbmNoVGVzdDMy
KFplcm8sIGNvdW50VGVtcG9yYXJ5KTsKIAotICAgICAgICAgICAgICAgICAgICAgICAgc3ViMzIo
VHJ1c3RlZEltbTMyKDEpLCBjb3VudFRlbXBvcmFyeSk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBzdG9yZVRvRnJhbWUoY291bnRUZW1wb3JhcnksIHBhcmVudGhlc2VzRnJhbWVMb2NhdGlvbiAr
IEJhY2tUcmFja0luZm9QYXJlbnRoZXNlczo6bWF0Y2hBbW91bnRJbmRleCgpKTsKKyAgICAgICAg
ICAgICAgICAgICAgc3ViMzIoVHJ1c3RlZEltbTMyKDEpLCBjb3VudFRlbXBvcmFyeSk7CisgICAg
ICAgICAgICAgICAgICAgIHN0b3JlVG9GcmFtZShjb3VudFRlbXBvcmFyeSwgcGFyZW50aGVzZXNG
cmFtZUxvY2F0aW9uICsgQmFja1RyYWNrSW5mb1BhcmVudGhlc2VzOjptYXRjaEFtb3VudEluZGV4
KCkpOwogCi0gICAgICAgICAgICAgICAgICAgICAgICBqdW1wKG1fb3BzW29wLm1fbmV4dE9wXS5t
X3JlZW50cnkpOworICAgICAgICAgICAgICAgICAgICBqdW1wKG1fb3BzW29wLm1fbmV4dE9wXS5t
X3JlZW50cnkpOwogCi0gICAgICAgICAgICAgICAgICAgICAgICB6ZXJvTGVuZ3RoTWF0Y2gubGlu
ayh0aGlzKTsKKyAgICAgICAgICAgICAgICAgICAgemVyb0xlbmd0aE1hdGNoLmxpbmsodGhpcyk7
CiAKLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIENsZWFyIHRoZSBmbGFnIGluIHRoZSBzdGFj
a2ZyYW1lIGluZGljYXRpbmcgd2UgZGlkbid0IHJ1biB0aHJvdWdoIHRoZSBzdWJwYXR0ZXJuLgot
ICAgICAgICAgICAgICAgICAgICAgICAgc3RvcmVUb0ZyYW1lKFRydXN0ZWRJbW0zMigtMSksIHBh
cmVudGhlc2VzRnJhbWVMb2NhdGlvbiArIEJhY2tUcmFja0luZm9QYXJlbnRoZXNlczo6YmVnaW5J
bmRleCgpKTsKKyAgICAgICAgICAgICAgICAgICAgLy8gQ2xlYXIgdGhlIGZsYWcgaW4gdGhlIHN0
YWNrZnJhbWUgaW5kaWNhdGluZyB3ZSBkaWRuJ3QgcnVuIHRocm91Z2ggdGhlIHN1YnBhdHRlcm4u
CisgICAgICAgICAgICAgICAgICAgIHN0b3JlVG9GcmFtZShUcnVzdGVkSW1tMzIoLTEpLCBwYXJl
bnRoZXNlc0ZyYW1lTG9jYXRpb24gKyBCYWNrVHJhY2tJbmZvUGFyZW50aGVzZXM6OmJlZ2luSW5k
ZXgoKSk7CiAKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRlcm0tPnF1YW50aXR5VHlwZSA9PSBR
dWFudGlmaWVyR3JlZWR5KQogICAgICAgICAgICAgICAgICAgICAgICAganVtcChtX29wc1tvcC5t
X25leHRPcF0ubV9yZWVudHJ5KTsKLSAgICAgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAg
ICAgICAgICAgIC8vIElmIEdyZWVkeSwganVtcCB0byB0aGUgZW5kLgogICAgICAgICAgICAgICAg
ICAgICBpZiAodGVybS0+cXVhbnRpdHlUeXBlID09IFF1YW50aWZpZXJHcmVlZHkpIHsKQEAgLTMw
MTAsMTMgKzMwMTEsMTQgQEAgY2xhc3MgWWFyckdlbmVyYXRvciA6IHB1YmxpYyBZYXJySklUSW5m
bwogICAgICAgICAgICAgICAgIGlmICh0ZXJtLT5xdWFudGl0eVR5cGUgIT0gUXVhbnRpZmllckZp
eGVkQ291bnQpIHsKICAgICAgICAgICAgICAgICAgICAgbV9iYWNrdHJhY2tpbmdTdGF0ZS5saW5r
KHRoaXMpOwogCi0gICAgICAgICAgICAgICAgICAgIC8vIENoZWNrIHdoZXRoZXIgd2Ugc2hvdWxk
IGJhY2t0cmFjayBiYWNrIGludG8gdGhlIHBhcmVudGhlc2VzLCBvciBpZiB3ZQotICAgICAgICAg
ICAgICAgICAgICAvLyBhcmUgY3VycmVudGx5IGluIGEgc3RhdGUgd2hlcmUgd2UgaGFkIHNraXBw
ZWQgb3ZlciB0aGUgc3VicGF0dGVybgotICAgICAgICAgICAgICAgICAgICAvLyAoaW4gd2hpY2gg
Y2FzZSB0aGUgZmxhZyB2YWx1ZSBvbiB0aGUgc3RhY2sgd2lsbCBiZSAtMSkuCiAgICAgICAgICAg
ICAgICAgICAgIHVuc2lnbmVkIHBhcmVudGhlc2VzRnJhbWVMb2NhdGlvbiA9IHRlcm0tPmZyYW1l
TG9jYXRpb247Ci0gICAgICAgICAgICAgICAgICAgIEp1bXAgaGFkU2tpcHBlZCA9IGJyYW5jaDMy
KEVxdWFsLCBBZGRyZXNzKHN0YWNrUG9pbnRlclJlZ2lzdGVyLCAocGFyZW50aGVzZXNGcmFtZUxv
Y2F0aW9uICArIEJhY2tUcmFja0luZm9QYXJlbnRoZXNlczo6YmVnaW5JbmRleCgpKSAqIHNpemVv
Zih2b2lkKikpLCBUcnVzdGVkSW1tMzIoLTEpKTsKIAogICAgICAgICAgICAgICAgICAgICBpZiAo
dGVybS0+cXVhbnRpdHlUeXBlID09IFF1YW50aWZpZXJHcmVlZHkpIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIC8vIENoZWNrIHdoZXRoZXIgd2Ugc2hvdWxkIGJhY2t0cmFjayBiYWNrIGludG8g
dGhlIHBhcmVudGhlc2VzLCBvciBpZiB3ZQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gYXJl
IGN1cnJlbnRseSBpbiBhIHN0YXRlIHdoZXJlIHdlIGhhZCBza2lwcGVkIG92ZXIgdGhlIHN1YnBh
dHRlcm4KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIChpbiB3aGljaCBjYXNlIHRoZSBmbGFn
IHZhbHVlIG9uIHRoZSBzdGFjayB3aWxsIGJlIC0xKS4KKyAgICAgICAgICAgICAgICAgICAgICAg
IEp1bXAgaGFkU2tpcHBlZCA9IGJyYW5jaDMyKEVxdWFsLCBBZGRyZXNzKHN0YWNrUG9pbnRlclJl
Z2lzdGVyLCAocGFyZW50aGVzZXNGcmFtZUxvY2F0aW9uICArIEJhY2tUcmFja0luZm9QYXJlbnRo
ZXNlczo6YmVnaW5JbmRleCgpKSAqIHNpemVvZih2b2lkKikpLCBUcnVzdGVkSW1tMzIoLTEpKTsK
KwogICAgICAgICAgICAgICAgICAgICAgICAgLy8gRm9yIEdyZWVkeSBwYXJlbnRoZXNlcywgd2Ug
c2tpcCBhZnRlciBoYXZpbmcgYWxyZWFkeSB0cmllZCBnb2luZwogICAgICAgICAgICAgICAgICAg
ICAgICAgLy8gdGhyb3VnaCB0aGUgc3VicGF0dGVybiwgc28gaWYgd2UgZ2V0IGhlcmUgd2UncmUg
ZG9uZS4KICAgICAgICAgICAgICAgICAgICAgICAgIFlhcnJPcCYgYmVnaW5PcCA9IG1fb3BzW29w
Lm1fcHJldmlvdXNPcF07CkBAIC0zMDI3LDggKzMwMjksMjUgQEAgY2xhc3MgWWFyckdlbmVyYXRv
ciA6IHB1YmxpYyBZYXJySklUSW5mbwogICAgICAgICAgICAgICAgICAgICAgICAgLy8gbmV4dC4g
SnVtcCBiYWNrIHRvIHRoZSBzdGFydCBvZiB0aGUgcGFyZW50aGVzZXMgaW4gdGhlIGZvcndhcmRz
CiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtYXRjaGluZyBwYXRoLgogICAgICAgICAgICAg
ICAgICAgICAgICAgQVNTRVJUKHRlcm0tPnF1YW50aXR5VHlwZSA9PSBRdWFudGlmaWVyTm9uR3Jl
ZWR5KTsKKworICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUmVnaXN0ZXJJRCBiZWdpblRl
bXBvcmFyeSA9IHJlZ1QwOworICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUmVnaXN0ZXJJ
RCBjb3VudFRlbXBvcmFyeSA9IHJlZ1QxOworCiAgICAgICAgICAgICAgICAgICAgICAgICBZYXJy
T3AmIGJlZ2luT3AgPSBtX29wc1tvcC5tX3ByZXZpb3VzT3BdOwotICAgICAgICAgICAgICAgICAg
ICAgICAgaGFkU2tpcHBlZC5saW5rVG8oYmVnaW5PcC5tX3JlZW50cnksIHRoaXMpOworCisgICAg
ICAgICAgICAgICAgICAgICAgICBsb2FkRnJvbUZyYW1lKHBhcmVudGhlc2VzRnJhbWVMb2NhdGlv
biArIEJhY2tUcmFja0luZm9QYXJlbnRoZXNlczo6YmVnaW5JbmRleCgpLCBiZWdpblRlbXBvcmFy
eSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmFuY2gzMihFcXVhbCwgYmVnaW5UZW1wb3Jh
cnksIFRydXN0ZWRJbW0zMigtMSkpLmxpbmtUbyhiZWdpbk9wLm1fcmVlbnRyeSwgdGhpcyk7CisK
KyAgICAgICAgICAgICAgICAgICAgICAgIEp1bXBMaXN0IGV4Y2VlZGVkTWF0Y2hMaW1pdDsKKwor
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRlcm0tPnF1YW50aXR5TWF4Q291bnQgIT0gcXVh
bnRpZnlJbmZpbml0ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRGcm9tRnJh
bWUocGFyZW50aGVzZXNGcmFtZUxvY2F0aW9uICsgQmFja1RyYWNrSW5mb1BhcmVudGhlc2VzOjpt
YXRjaEFtb3VudEluZGV4KCksIGNvdW50VGVtcG9yYXJ5KTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBleGNlZWRlZE1hdGNoTGltaXQuYXBwZW5kKGJyYW5jaDMyKEFib3ZlT3JFcXVhbCwg
Y291bnRUZW1wb3JhcnksIEltbTMyKHRlcm0tPnF1YW50aXR5TWF4Q291bnQudW5zYWZlR2V0KCkp
KSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAg
IGJyYW5jaDMyKEFib3ZlLCBpbmRleCwgYmVnaW5UZW1wb3JhcnkpLmxpbmtUbyhiZWdpbk9wLm1f
cmVlbnRyeSwgdGhpcyk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2VlZGVkTWF0Y2hM
aW1pdC5saW5rKHRoaXMpOwogICAgICAgICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAg
ICAgICAgbV9iYWNrdHJhY2tpbmdTdGF0ZS5mYWxsdGhyb3VnaCgpOwpAQCAtMzEwMiw3ICszMTIx
LDcgQEAgY2xhc3MgWWFyckdlbmVyYXRvciA6IHB1YmxpYyBZYXJySklUSW5mbwogICAgIC8vIHRo
ZSBwYXJlbnRoZXNlcy4KICAgICAvLyBTdXBwb3J0ZWQgdHlwZXMgb2YgcGFyZW50aGVzZXMgYXJl
ICdPbmNlJyAocXVhbnRpdHlNYXhDb3VudCA9PSAxKSwKICAgICAvLyAnVGVybWluYWwnIChub24t
Y2FwdHVyaW5nIHBhcmVudGhlc2VzIHF1YW50aWZpZWQgYXMgZ3JlZWR5Ci0gICAgLy8gYW5kIGlu
ZmluaXRlKSwgYW5kIDAgYmFzZWQgZ3JlZWR5IHF1YW50aWZpZWQgcGFyZW50aGVzZXMuCisgICAg
Ly8gYW5kIGluZmluaXRlKSwgYW5kIDAgYmFzZWQgZ3JlZWR5IC8gbm9uLWdyZWVkeSBxdWFudGlm
aWVkIHBhcmVudGhlc2VzLgogICAgIC8vIEFsdGVybmF0aXZlcyB3aWxsIHVzZSB0aGUgJ1NpbXBs
ZScgc2V0IG9mIG9wcyBpZiBlaXRoZXIgdGhlCiAgICAgLy8gc3VicGF0dGVybiBpcyB0ZXJtaW5h
bCAoaW4gd2hpY2ggY2FzZSB3ZSB3aWxsIG5ldmVyIG5lZWQgdG8KICAgICAvLyBiYWNrdHJhY2sp
LCBvciBpZiB0aGUgc3VicGF0dGVybiBvbmx5IGNvbnRhaW5zIG9uZSBhbHRlcm5hdGl2ZS4KQEAg
LTMxMjQsNyArMzE0Myw5IEBAIGNsYXNzIFlhcnJHZW5lcmF0b3IgOiBwdWJsaWMgWWFyckpJVElu
Zm8KICAgICAgICAgaWYgKHRlcm0tPnF1YW50aXR5TWluQ291bnQgJiYgdGVybS0+cXVhbnRpdHlN
aW5Db3VudCAhPSB0ZXJtLT5xdWFudGl0eU1heENvdW50KSB7CiAgICAgICAgICAgICBtX2ZhaWx1
cmVSZWFzb24gPSBKSVRGYWlsdXJlUmVhc29uOjpWYXJpYWJsZUNvdW50ZWRQYXJlbnRoZXNpc1dp
dGhOb25aZXJvTWluaW11bTsKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfSBpZiAodGVy
bS0+cXVhbnRpdHlNYXhDb3VudCA9PSAxICYmICF0ZXJtLT5wYXJlbnRoZXNlcy5pc0NvcHkpIHsK
KyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKHRlcm0tPnF1YW50aXR5TWF4Q291bnQg
PT0gMSAmJiAhdGVybS0+cGFyZW50aGVzZXMuaXNDb3B5KSB7CiAgICAgICAgICAgICAvLyBTZWxl
Y3QgdGhlICdPbmNlJyBub2Rlcy4KICAgICAgICAgICAgIHBhcmVudGhlc2VzQmVnaW5PcENvZGUg
PSBPcFBhcmVudGhlc2VzU3VicGF0dGVybk9uY2VCZWdpbjsKICAgICAgICAgICAgIHBhcmVudGhl
c2VzRW5kT3BDb2RlID0gT3BQYXJlbnRoZXNlc1N1YnBhdHRlcm5PbmNlRW5kOwpAQCAtMzE0MSwx
MCArMzE2MiwxMCBAQCBjbGFzcyBZYXJyR2VuZXJhdG9yIDogcHVibGljIFlhcnJKSVRJbmZvCiAg
ICAgICAgICAgICBwYXJlbnRoZXNlc0VuZE9wQ29kZSA9IE9wUGFyZW50aGVzZXNTdWJwYXR0ZXJu
VGVybWluYWxFbmQ7CiAgICAgICAgIH0gZWxzZSB7CiAjaWYgRU5BQkxFKFlBUlJfSklUX0FMTF9Q
QVJFTlNfRVhQUkVTU0lPTlMpCi0gICAgICAgICAgICAvLyBXZSBvbmx5IGhhbmRsZSBnZW5lcmlj
IHBhcmVudGhlc2lzIHdpdGggZ3JlZWR5IGNvdW50cy4KLSAgICAgICAgICAgIGlmICh0ZXJtLT5x
dWFudGl0eVR5cGUgIT0gUXVhbnRpZmllckdyZWVkeSkgeworICAgICAgICAgICAgLy8gV2Ugb25s
eSBoYW5kbGUgZ2VuZXJpYyBwYXJlbnRoZXNpcyB3aXRoIG5vbi1maXhlZCBjb3VudHMuCisgICAg
ICAgICAgICBpZiAodGVybS0+cXVhbnRpdHlUeXBlID09IFF1YW50aWZpZXJGaXhlZENvdW50KSB7
CiAgICAgICAgICAgICAgICAgLy8gVGhpcyBzdWJwYXR0ZXJuIGlzIG5vdCBzdXBwb3J0ZWQgYnkg
dGhlIEpJVC4KLSAgICAgICAgICAgICAgICBtX2ZhaWx1cmVSZWFzb24gPSBKSVRGYWlsdXJlUmVh
c29uOjpOb25HcmVlZHlQYXJlbnRoZXNpemVkU3VicGF0dGVybjsKKyAgICAgICAgICAgICAgICBt
X2ZhaWx1cmVSZWFzb24gPSBKSVRGYWlsdXJlUmVhc29uOjpGaXhlZENvdW50UGFyZW50aGVzaXpl
ZFN1YnBhdHRlcm47CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogCkBA
IC0zNTYyLDcgKzM1ODMsNyBAQCBwdWJsaWM6CiAKICNpZiBFTkFCTEUoWUFSUl9KSVRfQUxMX1BB
UkVOU19FWFBSRVNTSU9OUykKICAgICAgICAgaWYgKG1fY29udGFpbnNOZXN0ZWRTdWJwYXR0ZXJu
cykKLSAgICAgICAgICAgIGNvZGVCbG9jay5zZXRVc2VzUGF0ZXJuQ29udGV4dEJ1ZmZlcigpOwor
ICAgICAgICAgICAgY29kZUJsb2NrLnNldFVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlcigpOwogI2Vu
ZGlmCiAKICAgICAgICAgZ2VuZXJhdGVFbnRlcigpOwpAQCAtMzc3NCwxOSArMzc5NSwyNyBAQCBw
dWJsaWM6CiAgICAgICAgIGNhc2UgT3BQYXJlbnRoZXNlc1N1YnBhdHRlcm5PbmNlQmVnaW46CiAg
ICAgICAgICAgICBvdXQucHJpbnQoIk9wUGFyZW50aGVzZXNTdWJwYXR0ZXJuT25jZUJlZ2luICIp
OwogICAgICAgICAgICAgaWYgKHRlcm0tPmNhcHR1cmUoKSkKLSAgICAgICAgICAgICAgICBvdXQu
cHJpbnRmKCJjYXB0dXJpbmcgcGF0dGVybiAjJXVcbiIsIG9wLm1fdGVybS0+cGFyZW50aGVzZXMu
c3VicGF0dGVybklkKTsKKyAgICAgICAgICAgICAgICBvdXQucHJpbnRmKCJjYXB0dXJpbmcgcGF0
dGVybiAjJXUiLCB0ZXJtLT5wYXJlbnRoZXNlcy5zdWJwYXR0ZXJuSWQpOwogICAgICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgICAgIG91dC5wcmludCgibm9uLWNhcHR1cmluZ1xuIik7CisgICAg
ICAgICAgICAgICAgb3V0LnByaW50KCJub24tY2FwdHVyaW5nIik7CisgICAgICAgICAgICB0ZXJt
LT5kdW1wUXVhbnRpZmllcihvdXQpOworICAgICAgICAgICAgb3V0LnByaW50KCJcbiIpOwogICAg
ICAgICAgICAgcmV0dXJuKDApOwogCiAgICAgICAgIGNhc2UgT3BQYXJlbnRoZXNlc1N1YnBhdHRl
cm5PbmNlRW5kOgotICAgICAgICAgICAgb3V0LnByaW50KCJPcFBhcmVudGhlc2VzU3VicGF0dGVy
bk9uY2VFbmRcbiIpOworICAgICAgICAgICAgb3V0LnByaW50KCJPcFBhcmVudGhlc2VzU3VicGF0
dGVybk9uY2VFbmQgIik7CisgICAgICAgICAgICBpZiAodGVybS0+Y2FwdHVyZSgpKQorICAgICAg
ICAgICAgICAgIG91dC5wcmludGYoImNhcHR1cmluZyBwYXR0ZXJuICMldSIsIHRlcm0tPnBhcmVu
dGhlc2VzLnN1YnBhdHRlcm5JZCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
b3V0LnByaW50KCJub24tY2FwdHVyaW5nIik7CisgICAgICAgICAgICB0ZXJtLT5kdW1wUXVhbnRp
ZmllcihvdXQpOworICAgICAgICAgICAgb3V0LnByaW50KCJcbiIpOwogICAgICAgICAgICAgcmV0
dXJuKDApOwogCiAgICAgICAgIGNhc2UgT3BQYXJlbnRoZXNlc1N1YnBhdHRlcm5UZXJtaW5hbEJl
Z2luOgogICAgICAgICAgICAgb3V0LnByaW50KCJPcFBhcmVudGhlc2VzU3VicGF0dGVyblRlcm1p
bmFsQmVnaW4gIik7CiAgICAgICAgICAgICBpZiAodGVybS0+Y2FwdHVyZSgpKQotICAgICAgICAg
ICAgICAgIG91dC5wcmludGYoImNhcHR1cmluZyBwYXR0ZXJuICMldVxuIiwgb3AubV90ZXJtLT5w
YXJlbnRoZXNlcy5zdWJwYXR0ZXJuSWQpOworICAgICAgICAgICAgICAgIG91dC5wcmludGYoImNh
cHR1cmluZyBwYXR0ZXJuICMldVxuIiwgdGVybS0+cGFyZW50aGVzZXMuc3VicGF0dGVybklkKTsK
ICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBvdXQucHJpbnQoIm5vbi1jYXB0dXJp
bmdcbiIpOwogICAgICAgICAgICAgcmV0dXJuKDApOwpAQCAtMzc5NCw3ICszODIzLDcgQEAgcHVi
bGljOgogICAgICAgICBjYXNlIE9wUGFyZW50aGVzZXNTdWJwYXR0ZXJuVGVybWluYWxFbmQ6CiAg
ICAgICAgICAgICBvdXQucHJpbnQoIk9wUGFyZW50aGVzZXNTdWJwYXR0ZXJuVGVybWluYWxFbmQg
Iik7CiAgICAgICAgICAgICBpZiAodGVybS0+Y2FwdHVyZSgpKQotICAgICAgICAgICAgICAgIG91
dC5wcmludGYoImNhcHR1cmluZyBwYXR0ZXJuICMldVxuIiwgb3AubV90ZXJtLT5wYXJlbnRoZXNl
cy5zdWJwYXR0ZXJuSWQpOworICAgICAgICAgICAgICAgIG91dC5wcmludGYoImNhcHR1cmluZyBw
YXR0ZXJuICMldVxuIiwgdGVybS0+cGFyZW50aGVzZXMuc3VicGF0dGVybklkKTsKICAgICAgICAg
ICAgIGVsc2UKICAgICAgICAgICAgICAgICBvdXQucHJpbnQoIm5vbi1jYXB0dXJpbmdcbiIpOwog
ICAgICAgICAgICAgcmV0dXJuKDApOwpAQCAtMzgwMiwyNSArMzgzMSwyOSBAQCBwdWJsaWM6CiAg
ICAgICAgIGNhc2UgT3BQYXJlbnRoZXNlc1N1YnBhdHRlcm5CZWdpbjoKICAgICAgICAgICAgIG91
dC5wcmludCgiT3BQYXJlbnRoZXNlc1N1YnBhdHRlcm5CZWdpbiAiKTsKICAgICAgICAgICAgIGlm
ICh0ZXJtLT5jYXB0dXJlKCkpCi0gICAgICAgICAgICAgICAgb3V0LnByaW50ZigiY2FwdHVyaW5n
IHBhdHRlcm4gIyV1XG4iLCBvcC5tX3Rlcm0tPnBhcmVudGhlc2VzLnN1YnBhdHRlcm5JZCk7Cisg
ICAgICAgICAgICAgICAgb3V0LnByaW50ZigiY2FwdHVyaW5nIHBhdHRlcm4gIyV1IiwgdGVybS0+
cGFyZW50aGVzZXMuc3VicGF0dGVybklkKTsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAg
ICAgICBvdXQucHJpbnQoIm5vbi1jYXB0dXJpbmdcbiIpOworICAgICAgICAgICAgICAgIG91dC5w
cmludCgibm9uLWNhcHR1cmluZyIpOworICAgICAgICAgICAgdGVybS0+ZHVtcFF1YW50aWZpZXIo
b3V0KTsKKyAgICAgICAgICAgIG91dC5wcmludCgiXG4iKTsKICAgICAgICAgICAgIHJldHVybigw
KTsKIAogICAgICAgICBjYXNlIE9wUGFyZW50aGVzZXNTdWJwYXR0ZXJuRW5kOgogICAgICAgICAg
ICAgb3V0LnByaW50KCJPcFBhcmVudGhlc2VzU3VicGF0dGVybkVuZCAiKTsKICAgICAgICAgICAg
IGlmICh0ZXJtLT5jYXB0dXJlKCkpCi0gICAgICAgICAgICAgICAgb3V0LnByaW50ZigiY2FwdHVy
aW5nIHBhdHRlcm4gIyV1XG4iLCBvcC5tX3Rlcm0tPnBhcmVudGhlc2VzLnN1YnBhdHRlcm5JZCk7
CisgICAgICAgICAgICAgICAgb3V0LnByaW50ZigiY2FwdHVyaW5nIHBhdHRlcm4gIyV1IiwgdGVy
bS0+cGFyZW50aGVzZXMuc3VicGF0dGVybklkKTsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAg
ICAgICAgICBvdXQucHJpbnQoIm5vbi1jYXB0dXJpbmdcbiIpOworICAgICAgICAgICAgICAgIG91
dC5wcmludCgibm9uLWNhcHR1cmluZyIpOworICAgICAgICAgICAgdGVybS0+ZHVtcFF1YW50aWZp
ZXIob3V0KTsKKyAgICAgICAgICAgIG91dC5wcmludCgiXG4iKTsKICAgICAgICAgICAgIHJldHVy
bigwKTsKIAogICAgICAgICBjYXNlIE9wUGFyZW50aGV0aWNhbEFzc2VydGlvbkJlZ2luOgotICAg
ICAgICAgICAgb3V0LnByaW50ZigiT3BQYXJlbnRoZXRpY2FsQXNzZXJ0aW9uQmVnaW4lc1xuIiwg
b3AubV90ZXJtLT5pbnZlcnQoKSA/ICIgaW52ZXJ0ZWQiIDogIiIpOworICAgICAgICAgICAgb3V0
LnByaW50ZigiT3BQYXJlbnRoZXRpY2FsQXNzZXJ0aW9uQmVnaW4lc1xuIiwgdGVybS0+aW52ZXJ0
KCkgPyAiIGludmVydGVkIiA6ICIiKTsKICAgICAgICAgICAgIHJldHVybigwKTsKIAogICAgICAg
ICBjYXNlIE9wUGFyZW50aGV0aWNhbEFzc2VydGlvbkVuZDoKLSAgICAgICAgICAgIG91dC5wcmlu
dCgiT3BQYXJlbnRoZXRpY2FsQXNzZXJ0aW9uRW5kJXNcbiIsIG9wLm1fdGVybS0+aW52ZXJ0KCkg
PyAiIGludmVydGVkIiA6ICIiKTsKKyAgICAgICAgICAgIG91dC5wcmludCgiT3BQYXJlbnRoZXRp
Y2FsQXNzZXJ0aW9uRW5kJXNcbiIsIHRlcm0tPmludmVydCgpID8gIiBpbnZlcnRlZCIgOiAiIik7
CiAgICAgICAgICAgICByZXR1cm4oMCk7CiAKICAgICAgICAgY2FzZSBPcE1hdGNoRmFpbGVkOgpA
QCAtMzg5Miw4ICszOTI1LDggQEAgc3RhdGljIHZvaWQgZHVtcENvbXBpbGVGYWlsdXJlKEpJVEZh
aWx1cgogICAgIGNhc2UgSklURmFpbHVyZVJlYXNvbjo6UGFyZW50aGVzaXplZFN1YnBhdHRlcm46
CiAgICAgICAgIGRhdGFMb2coIkNhbid0IEpJVCBhIHBhdHRlcm4gY29udGFpbmluZyBwYXJlbnRo
ZXNpemVkIHN1YnBhdHRlcm5zXG4iKTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBKSVRGYWls
dXJlUmVhc29uOjpOb25HcmVlZHlQYXJlbnRoZXNpemVkU3VicGF0dGVybjoKLSAgICAgICAgZGF0
YUxvZygiQ2FuJ3QgSklUIGEgcGF0dGVybiBjb250YWluaW5nIG5vbi1ncmVlZHkgcGFyZW50aGVz
aXplZCBzdWJwYXR0ZXJuc1xuIik7CisgICAgY2FzZSBKSVRGYWlsdXJlUmVhc29uOjpGaXhlZENv
dW50UGFyZW50aGVzaXplZFN1YnBhdHRlcm46CisgICAgICAgIGRhdGFMb2coIkNhbid0IEpJVCBh
IHBhdHRlcm4gY29udGFpbmluZyBmaXhlZCBjb3VudCBwYXJlbnRoZXNpemVkIHN1YnBhdHRlcm5z
XG4iKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBKSVRGYWlsdXJlUmVhc29uOjpFeGVjdXRh
YmxlTWVtb3J5QWxsb2NhdGlvbkZhaWx1cmU6CiAgICAgICAgIGRhdGFMb2coIkNhbid0IEpJVCBi
ZWNhdXNlIG9mIGZhaWx1cmUgb2YgYWxsb2NhdGlvbiBvZiBleGVjdXRhYmxlIG1lbW9yeVxuIik7
CkBAIC0zOTA5LDggKzM5NDIsMTEgQEAgdm9pZCBqaXRDb21waWxlKFlhcnJQYXR0ZXJuJiBwYXR0
ZXJuLCBTdAogICAgICAgICBZYXJyR2VuZXJhdG9yPEluY2x1ZGVTdWJwYXR0ZXJucz4odm0sIHBh
dHRlcm4sIHBhdHRlcm5TdHJpbmcsIGNvZGVCbG9jaywgY2hhclNpemUpLmNvbXBpbGUoKTsKIAog
ICAgIGlmIChhdXRvIGZhaWx1cmVSZWFzb24gPSBjb2RlQmxvY2suZmFpbHVyZVJlYXNvbigpKSB7
Ci0gICAgICAgIGlmIChPcHRpb25zOjpkdW1wQ29tcGlsZWRSZWdFeHBQYXR0ZXJucygpKQorICAg
ICAgICBpZiAoT3B0aW9uczo6ZHVtcENvbXBpbGVkUmVnRXhwUGF0dGVybnMoKSkgeworICAgICAg
ICAgICAgcGF0dGVybi5kdW1wUGF0dGVyblN0cmluZyhXVEY6OmRhdGFGaWxlKCksIHBhdHRlcm5T
dHJpbmcpOworICAgICAgICAgICAgZGF0YUxvZygiIDogIik7CiAgICAgICAgICAgICBkdW1wQ29t
cGlsZUZhaWx1cmUoKmZhaWx1cmVSZWFzb24pOworICAgICAgICB9CiAgICAgfQogfQogCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5oCShyZXZpc2lvbiAyMzUyNjIpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmgJKHdvcmtpbmcgY29weSkKQEAgLTU0
LDcgKzU0LDcgQEAgZW51bSBjbGFzcyBKSVRGYWlsdXJlUmVhc29uIDogdWludDhfdCB7CiAgICAg
QmFja1JlZmVyZW5jZSwKICAgICBWYXJpYWJsZUNvdW50ZWRQYXJlbnRoZXNpc1dpdGhOb25aZXJv
TWluaW11bSwKICAgICBQYXJlbnRoZXNpemVkU3VicGF0dGVybiwKLSAgICBOb25HcmVlZHlQYXJl
bnRoZXNpemVkU3VicGF0dGVybiwKKyAgICBGaXhlZENvdW50UGFyZW50aGVzaXplZFN1YnBhdHRl
cm4sCiAgICAgRXhlY3V0YWJsZU1lbW9yeUFsbG9jYXRpb25GYWlsdXJlLAogfTsKIApAQCAtOTYs
NyArOTYsNyBAQCBwdWJsaWM6CiAKICNpZiBFTkFCTEUoWUFSUl9KSVRfQUxMX1BBUkVOU19FWFBS
RVNTSU9OUykKICAgICBib29sIHVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlcigpIHsgcmV0dXJuIG1f
dXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyOyB9Ci0gICAgdm9pZCBzZXRVc2VzUGF0ZXJuQ29udGV4
dEJ1ZmZlcigpIHsgbV91c2VzUGF0dGVybkNvbnRleHRCdWZmZXIgPSB0cnVlOyB9CisgICAgdm9p
ZCBzZXRVc2VzUGF0dGVybkNvbnRleHRCdWZmZXIoKSB7IG1fdXNlc1BhdHRlcm5Db250ZXh0QnVm
ZmVyID0gdHJ1ZTsgfQogCiAgICAgTWF0Y2hSZXN1bHQgZXhlY3V0ZShjb25zdCBMQ2hhciogaW5w
dXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIGludCogb3V0cHV0LCB2b2lkKiBm
cmVlUGFyZW5Db250ZXh0LCB1bnNpZ25lZCBwYXJlbkNvbnRleHRTaXplKQogICAgIHsK
</data>
<flag name="review"
          id="365689"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>