<?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>176197</bug_id>
          
          <creation_ts>2017-08-31 17:03:20 -0700</creation_ts>
          <short_desc>WSL should support makeptr (\)</short_desc>
          <delta_ts>2018-10-13 19:59:49 -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>WebGPU</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>176199</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>mmaxfield</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1344203</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-08-31 17:03:20 -0700</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344205</commentid>
    <comment_count>1</comment_count>
      <attachid>319543</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-08-31 17:05:42 -0700</bug_when>
    <thetext>Created attachment 319543
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344207</commentid>
    <comment_count>2</comment_count>
      <attachid>319543</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-08-31 17:07:43 -0700</bug_when>
    <thetext>Comment on attachment 319543
the patch

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

&gt; Tools/WebGPUShadingLanguageRI/Evaluator.js:132
&gt; +                throw new Error(&quot;Cannot get type or argument; i = &quot; + i + &quot;, argument = &quot; + argument + &quot;, type = &quot; + type + &quot;; in &quot; + node);

if you use a template literal here I&apos;d think it&apos;d be easier to read.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344210</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-08-31 17:09:58 -0700</bug_when>
    <thetext>Landed in https://trac.webkit.org/changeset/221460/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1353653</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-09-27 12:47:41 -0700</bug_when>
    <thetext>&lt;rdar://problem/34694027&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1469009</commentid>
    <comment_count>5</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-10-13 19:59:49 -0700</bug_when>
    <thetext>Migrated to https://github.com/gpuweb/WHLSL/issues/203</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319543</attachid>
            <date>2017-08-31 17:05:42 -0700</date>
            <delta_ts>2017-08-31 17:07:43 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>22594</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIyMTQ1OSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDcwIEBACisyMDE3LTA4LTMxICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisK
KyAgICAgICAgV1NMIHNob3VsZCBzdXBwb3J0IG1ha2VwdHIgKFwpCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYxOTcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFRoaXMgcmVxdWlyZWQgaW50
cm9kdWNpbmcgc29tZSBzYW5pdHkgYWJvdXQgaG93IHBvaW50ZXJzIGFyZSBjYXJyaWVkIGFyb3Vu
ZCBpbiB0aGUgZXZhbHVhdG9yLgorICAgICAgICBJdCB0dXJucyBvdXQgdGhhdCB3ZSBuZWVkIHRv
IGJlIGNhcmVmdWwgYWJvdXQgd2hlbiBhIHBvaW50ZXIgdG8gYW4gcnZhbHVlIGlzIGRlcmVmZXJl
bmNlZC4gSXQKKyAgICAgICAgc2hvdWxkIGJlIGRlcmVmZXJlbmNlZCBiYXNpY2FsbHkgaW1tZWRp
YXRlbHkuIElmIGl0IGNhbm5vdCBiZSwgdGhlbiB3ZSBuZWVkIHRvIHNuYXBzaG90IHRoZQorICAg
ICAgICB2YWx1ZS4gVG8gZG8gdGhhdCwgd2UgbmVlZCB0byBrbm93IHRoZSB0eXBlcyBvZiB0aGlu
Z3MgaW4gYSBmZXcgbW9yZSBwbGFjZXMuIFRoYXQncyB3aGF0IHRoaXMKKyAgICAgICAgY2hhbmdl
IGFjY29tcGxpc2hlcy4KKworICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0FsbC5q
czoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DYWxsRnVuY3Rpb24uanM6Cisg
ICAgICAgIChjYWxsRnVuY3Rpb24pOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0NoZWNrZXIuanM6CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS52aXNpdFByb3RvY29sRGVj
bC5zZXQgdGhyb3cpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0RlcmVmZXJl
bmNlRXhwcmVzc2lvbi5qczoKKyAgICAgICAgKERlcmVmZXJlbmNlRXhwcmVzc2lvbi5wcm90b3R5
cGUuZ2V0IGlzTFZhbHVlKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9FdmFs
dWF0b3IuanM6CisgICAgICAgIChFdmFsdWF0b3IucHJvdG90eXBlLl9zbmFwc2hvdCk6CisgICAg
ICAgIChFdmFsdWF0b3IucHJvdG90eXBlLnJ1bkJvZHkpOgorICAgICAgICAoRXZhbHVhdG9yLnBy
b3RvdHlwZS52aXNpdEZ1bmN0aW9uTGlrZUJsb2NrKToKKyAgICAgICAgKEV2YWx1YXRvci5wcm90
b3R5cGUudmlzaXREZXJlZmVyZW5jZUV4cHJlc3Npb24pOgorICAgICAgICAoRXZhbHVhdG9yLnBy
b3RvdHlwZS52aXNpdE1ha2VQdHJFeHByZXNzaW9uKToKKyAgICAgICAgKEV2YWx1YXRvci5wcm90
b3R5cGUudmlzaXRDb21tYUV4cHJlc3Npb24pOgorICAgICAgICAoRXZhbHVhdG9yLnByb3RvdHlw
ZS52aXNpdENhbGxFeHByZXNzaW9uKToKKyAgICAgICAgKEV2YWx1YXRvcik6CisgICAgICAgIChF
dmFsdWF0b3IucHJvdG90eXBlLl9kZXJlZmVyZW5jZSk6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvRnVuY0luc3RhbnRpYXRvci5qczoKKyAgICAgICAgKEZ1bmNJ
bnN0YW50aWF0b3IucHJvdG90eXBlLmdldFVuaXF1ZS5JbnN0YW50aWF0ZS5wcm90b3R5cGUudmlz
aXRGdW5jRGVmKToKKyAgICAgICAgKEZ1bmNJbnN0YW50aWF0b3IucHJvdG90eXBlLmdldFVuaXF1
ZS5JbnN0YW50aWF0ZS5wcm90b3R5cGUudmlzaXROYXRpdmVGdW5jKToKKyAgICAgICAgKEZ1bmNJ
bnN0YW50aWF0b3IucHJvdG90eXBlLmdldFVuaXF1ZS5JbnN0YW50aWF0ZSk6CisgICAgICAgIChG
dW5jSW5zdGFudGlhdG9yLnByb3RvdHlwZS5nZXRVbmlxdWUpOgorICAgICAgICAoRnVuY0luc3Rh
bnRpYXRvcik6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRnVuY3Rpb25MaWtl
QmxvY2suanM6CisgICAgICAgIChGdW5jdGlvbkxpa2VCbG9jayk6CisgICAgICAgIChGdW5jdGlv
bkxpa2VCbG9jay5wcm90b3R5cGUuZ2V0IHJldHVyblR5cGUpOgorICAgICAgICAoRnVuY3Rpb25M
aWtlQmxvY2sucHJvdG90eXBlLnRvU3RyaW5nKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9JbmxpbmVyLmpzOgorICAgICAgICAoSW5saW5lci5wcm90b3R5cGUudmlzaXRDYWxs
RXhwcmVzc2lvbik6CisgICAgICAgIChJbmxpbmVyKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9NYWtlUHRyRXhwcmVzc2lvbi5qczogQWRkZWQuCisgICAgICAgIChNYWtlUHRy
RXhwcmVzc2lvbik6CisgICAgICAgIChNYWtlUHRyRXhwcmVzc2lvbi5wcm90b3R5cGUuZ2V0IGxW
YWx1ZSk6CisgICAgICAgIChNYWtlUHRyRXhwcmVzc2lvbi5wcm90b3R5cGUudG9TdHJpbmcpOgor
ICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hdGl2ZUZ1bmNJbnN0YW5jZS5qczog
QWRkZWQuCisgICAgICAgIChOYXRpdmVGdW5jSW5zdGFuY2UpOgorICAgICAgICAoTmF0aXZlRnVu
Y0luc3RhbmNlLnByb3RvdHlwZS5nZXQgZnVuYyk6CisgICAgICAgIChOYXRpdmVGdW5jSW5zdGFu
Y2UucHJvdG90eXBlLnRvU3RyaW5nKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9SZXdyaXRlci5qczoKKyAgICAgICAgKFJld3JpdGVyLnByb3RvdHlwZS52aXNpdE1ha2VQdHJF
eHByZXNzaW9uKToKKyAgICAgICAgKFJld3JpdGVyLnByb3RvdHlwZS52aXNpdENhbGxFeHByZXNz
aW9uKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzOgorICAgICAg
ICAoVEVTVF9kZXJlZmVyZW5jZVN0b3JlKToKKyAgICAgICAgKFRFU1Rfc2ltcGxlTWFrZVB0cik6
CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVmFsdWUuanM6CisgICAgICAgIChW
YWx1ZS5wcm90b3R5cGUuZ2V0IGlzTFZhbHVlKToKKyAgICAgICAgKFZhbHVlKToKKyAgICAgICAg
KiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9WYXJpYWJsZVJlZi5qczoKKyAgICAgICAgKFZhcmlh
YmxlUmVmLnByb3RvdHlwZS5nZXQgaXNMVmFsdWUpOgorICAgICAgICAoVmFyaWFibGVSZWYucHJv
dG90eXBlLmdldCBhZGRyZXNzU3BhY2UpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1Zpc2l0b3IuanM6CisgICAgICAgIChWaXNpdG9yLnByb3RvdHlwZS52aXNpdE1ha2VQdHJF
eHByZXNzaW9uKToKKyAgICAgICAgKFZpc2l0b3IucHJvdG90eXBlLnZpc2l0Q2FsbEV4cHJlc3Np
b24pOgorCiAyMDE3LTA4LTMxICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgog
CiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyMjE0NDUuCkluZGV4OiBUb29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvQWxsLmpzCShyZXZpc2lvbiAyMjE0NTApCisrKyBUb29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanMJKHdvcmtpbmcgY29weSkKQEAgLTYzLDkgKzYzLDEx
IEBAIGxvYWQoIkludExpdGVyYWwuanMiKTsKIGxvYWQoIkludHJpbnNpY3MuanMiKTsKIGxvYWQo
IkxleGVyLmpzIik7CiBsb2FkKCJMZXhlclRva2VuLmpzIik7Citsb2FkKCJNYWtlUHRyRXhwcmVz
c2lvbi5qcyIpOwogbG9hZCgiTmFtZUNvbnRleHQuanMiKTsKIGxvYWQoIk5hbWVSZXNvbHZlci5q
cyIpOwogbG9hZCgiTmF0aXZlRnVuYy5qcyIpOworbG9hZCgiTmF0aXZlRnVuY0luc3RhbmNlLmpz
Iik7CiBsb2FkKCJOYXRpdmVUeXBlLmpzIik7CiBsb2FkKCJOYXRpdmVUeXBlSW5zdGFuY2UuanMi
KTsKIGxvYWQoIk51bGxUeXBlLmpzIik7CkluZGV4OiBUb29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9DYWxsRnVuY3Rpb24uanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvQ2FsbEZ1bmN0aW9uLmpzCShyZXZpc2lvbiAyMjE0NTApCisrKyBUb29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9DYWxsRnVuY3Rpb24uanMJKHdvcmtpbmcgY29weSkKQEAgLTMz
LDcgKzMzLDcgQEAgZnVuY3Rpb24gY2FsbEZ1bmN0aW9uKHByb2dyYW0sIG5hbWUsIHR5cAogICAg
ICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcigiPGNhbGxGdW5jdGlvbj4iLCAiQ2Fubm90IHJlc29s
dmUgZnVuY3Rpb24gY2FsbCAiICsgbmFtZSArICI8IiArIHR5cGVBcmd1bWVudHMgKyAiPigiICsg
YXJndW1lbnRMaXN0ICsgIikiKTsKICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZ1bmMucGFyYW1l
dGVycy5sZW5ndGg7ICsraSkKICAgICAgICAgZnVuYy5wYXJhbWV0ZXJzW2ldLmVQdHIuY29weUZy
b20oYXJndW1lbnRMaXN0W2ldLmVQdHIsIGFyZ3VtZW50VHlwZXNbaV0uc2l6ZSk7Ci0gICAgbGV0
IHJlc3VsdCA9IG5ldyBFdmFsdWF0b3IocHJvZ3JhbSkucnVuQm9keShmdW5jLmJvZHkpOwotICAg
IHJldHVybiBuZXcgVHlwZWRWYWx1ZShmdW5jLnJldHVyblR5cGUsIHJlc3VsdCk7CisgICAgbGV0
IHJlc3VsdCA9IG5ldyBFdmFsdWF0b3IocHJvZ3JhbSkucnVuQm9keShmdW5jLnJldHVyblR5cGUs
IGZ1bmMuYm9keSk7CisgICAgcmV0dXJuIG5ldyBUeXBlZFZhbHVlKGZ1bmMucmV0dXJuVHlwZS51
bmlmeU5vZGUsIHJlc3VsdCk7CiB9CiAKSW5kZXg6IFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL0NoZWNrZXIuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvQ2hlY2tlci5qcwkocmV2aXNpb24gMjIxNDUwKQorKysgVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvQ2hlY2tlci5qcwkod29ya2luZyBjb3B5KQpAQCAtMTIzLDcgKzEyMyw4IEBAIGNs
YXNzIENoZWNrZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAKICAgICB2aXNpdEFzc2lnbm1lbnQo
bm9kZSkKICAgICB7Ci0gICAgICAgIC8vIEZJWE1FOiBXZSBuZWVkIHRvIGNoZWNrIHRoYXQgdGhl
IGxocyBpcyBhc3NpZ25hYmxlLgorICAgICAgICBpZiAoIW5vZGUubGhzLmlzTFZhbHVlKQorICAg
ICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAi
TEhTIG9mIGFzc2lnbm1lbnQgaXMgbm90IGFuIExWYWx1ZTogIiArIG5vZGUubGhzKTsKICAgICAg
ICAgbGV0IGxoc1R5cGUgPSBub2RlLmxocy52aXNpdCh0aGlzKTsKICAgICAgICAgbGV0IHJoc1R5
cGUgPSBub2RlLnJocy52aXNpdCh0aGlzKTsKICAgICAgICAgaWYgKCFsaHNUeXBlLmVxdWFscyhy
aHNUeXBlKSkKQEAgLTEzOCw5ICsxMzksMjAgQEAgY2xhc3MgQ2hlY2tlciBleHRlbmRzIFZpc2l0
b3IgewogICAgICAgICBpZiAoIXR5cGUuaXNQdHIpCiAgICAgICAgICAgICB0aHJvdyBuZXcgV1R5
cGVFcnJvcihub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJUeXBlIHBhc3NlZCB0byBkZXJlZmVy
ZW5jZSBpcyBub3QgYSBwb2ludGVyOiAiICsgdHlwZSk7CiAgICAgICAgIG5vZGUudHlwZSA9IHR5
cGUuZWxlbWVudFR5cGU7CisgICAgICAgIG5vZGUuYWRkcmVzc1NwYWNlID0gdHlwZS5hZGRyZXNz
U3BhY2U7CiAgICAgICAgIHJldHVybiBub2RlLnR5cGU7CiAgICAgfQogICAgIAorICAgIHZpc2l0
TWFrZVB0ckV4cHJlc3Npb24obm9kZSkKKyAgICB7CisgICAgICAgIGlmICghbm9kZS5sVmFsdWUu
aXNMVmFsdWUpCisgICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcihub2RlLm9yaWdpbi5v
cmlnaW5TdHJpbmcsICJPcGVyYW5kIHRvIFxcIGlzIG5vdCBhbiBMVmFsdWU6ICIgKyBub2RlLmxW
YWx1ZSk7CisgICAgICAgIAorICAgICAgICBsZXQgZWxlbWVudFR5cGUgPSBub2RlLmxWYWx1ZS52
aXNpdCh0aGlzKS51bmlmeU5vZGU7CisgICAgICAgIAorICAgICAgICByZXR1cm4gbmV3IFB0clR5
cGUobm9kZS5vcmlnaW4sIG5vZGUubFZhbHVlLmFkZHJlc3NTcGFjZSwgZWxlbWVudFR5cGUpOwor
ICAgIH0KKyAgICAKICAgICB2aXNpdFZhcmlhYmxlUmVmKG5vZGUpCiAgICAgewogICAgICAgICBy
ZXR1cm4gbm9kZS52YXJpYWJsZS50eXBlOwpJbmRleDogVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvRGVyZWZlcmVuY2VFeHByZXNzaW9uLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL0RlcmVmZXJlbmNlRXhwcmVzc2lvbi5qcwkocmV2aXNpb24gMjIx
NDUwKQorKysgVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRGVyZWZlcmVuY2VFeHByZXNz
aW9uLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBAIGNsYXNzIERlcmVmZXJlbmNl
RXhwcmVzc2lvbiBleHRlbmRzIEV4cHIKICAgICB9CiAgICAgCiAgICAgZ2V0IHB0cigpIHsgcmV0
dXJuIHRoaXMuX3B0cjsgfQorICAgIGdldCBpc0xWYWx1ZSgpIHsgcmV0dXJuIHRydWU7IH0KICAg
ICAKICAgICB0b1N0cmluZygpCiAgICAgewpJbmRleDogVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvRXZhbHVhdG9yLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL0V2YWx1YXRvci5qcwkocmV2aXNpb24gMjIxNDUwKQorKysgVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvRXZhbHVhdG9yLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3ICszMiwy
MCBAQCBjbGFzcyBFdmFsdWF0b3IgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAgICAgdGhpcy5fcHJv
Z3JhbSA9IHByb2dyYW07CiAgICAgfQogICAgIAotICAgIHJ1bkJvZHkoYmxvY2spCisgICAgLy8g
WW91IG11c3Qgc25hcHNob3QgaWYgeW91IHVzZSBhIHZhbHVlIGluIHJ2YWx1ZSBjb250ZXh0LiBG
b3IgZXhhbXBsZSwgYSBjYWxsIGV4cHJlc3Npb24gd2lsbAorICAgIC8vIHNuYXBzaG90IGFsbCBv
ZiBpdHMgYXJndW1lbnRzIGltbWVkYWl0ZWx5IHVwb24gZXhlY3V0aW5nIHRoZW0uIEluIGdlbmVy
YWwsIGl0IHNob3VsZCBub3QgYmUKKyAgICAvLyBwb3NzaWJsZSBmb3IgYSBwb2ludGVyIHJldHVy
bmVkIGZyb20gYSB2aXNpdCBtZXRob2QgaW4gcnZhbHVlIGNvbnRleHQgdG8gbGl2ZSBhY3Jvc3Mg
YW55IGVmZmVjdHMuCisgICAgX3NuYXBzaG90KHR5cGUsIHB0cikKKyAgICB7CisgICAgICAgIGxl
dCBzaXplID0gdHlwZS5zaXplOworICAgICAgICBpZiAoIXNpemUpCisgICAgICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoIkNhbm5vdCBnZXQgc2l6ZSBvZiB0eXBlOiAiICsgdHlwZSk7CisgICAgICAg
IGxldCByZXN1bHQgPSBuZXcgRVB0cihuZXcgRUJ1ZmZlcihzaXplKSwgMCk7CisgICAgICAgIHJl
c3VsdC5jb3B5RnJvbShwdHIsIHNpemUpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0K
KyAgICAKKyAgICBydW5Cb2R5KHR5cGUsIGJsb2NrKQogICAgIHsKICAgICAgICAgdHJ5IHsKICAg
ICAgICAgICAgIGJsb2NrLnZpc2l0KHRoaXMpOwpAQCAtNDMsNyArNTYsNyBAQCBjbGFzcyBFdmFs
dWF0b3IgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAgICAgICAgIGlmIChlID09IEJyZWFrRXhjZXB0
aW9uIHx8IGUgPT0gQ29udGludWVFeGNlcHRpb24pCiAgICAgICAgICAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCJTaG91bGQgbm90IHNlZSBicmVhay9jb250aW51ZSBhdCBmdW5jdGlvbiBzY29wZSIp
OwogICAgICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBSZXR1cm5FeGNlcHRpb24pCi0gICAgICAg
ICAgICAgICAgcmV0dXJuIGUudmFsdWU7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3Nu
YXBzaG90KHR5cGUsIGUudmFsdWUpOwogICAgICAgICAgICAgdGhyb3cgZTsKICAgICAgICAgfQog
ICAgIH0KQEAgLTU1LDcgKzY4LDcgQEAgY2xhc3MgRXZhbHVhdG9yIGV4dGVuZHMgVmlzaXRvciB7
CiAgICAgICAgICAgICAgICAgbm9kZS5hcmd1bWVudExpc3RbaV0udmlzaXQodGhpcyksCiAgICAg
ICAgICAgICAgICAgbm9kZS5wYXJhbWV0ZXJzW2ldLnR5cGUuc2l6ZSk7CiAgICAgICAgIH0KLSAg
ICAgICAgcmV0dXJuIHRoaXMucnVuQm9keShub2RlLmJvZHkpOworICAgICAgICByZXR1cm4gdGhp
cy5ydW5Cb2R5KG5vZGUucmV0dXJuVHlwZSwgbm9kZS5ib2R5KTsKICAgICB9CiAgICAgCiAgICAg
dmlzaXRSZXR1cm4obm9kZSkKQEAgLTc5LDE3ICs5MiwxNCBAQCBjbGFzcyBFdmFsdWF0b3IgZXh0
ZW5kcyBWaXNpdG9yIHsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAgICAgCi0gICAg
X2RlcmVmZXJlbmNlKHB0ciwgdHlwZSkKKyAgICB2aXNpdERlcmVmZXJlbmNlRXhwcmVzc2lvbihu
b2RlKQogICAgIHsKLSAgICAgICAgbGV0IHNpemUgPSB0eXBlLnNpemU7Ci0gICAgICAgIGxldCBy
ZXN1bHQgPSBuZXcgRVB0cihuZXcgRUJ1ZmZlcihzaXplKSwgMCk7Ci0gICAgICAgIHJlc3VsdC5j
b3B5RnJvbShwdHIubG9hZFZhbHVlKCksIHNpemUpOwotICAgICAgICByZXR1cm4gcmVzdWx0Owor
ICAgICAgICByZXR1cm4gbm9kZS5wdHIudmlzaXQodGhpcykubG9hZFZhbHVlKCk7CiAgICAgfQog
ICAgIAotICAgIHZpc2l0RGVyZWZlcmVuY2VFeHByZXNzaW9uKG5vZGUpCisgICAgdmlzaXRNYWtl
UHRyRXhwcmVzc2lvbihub2RlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2RlcmVmZXJl
bmNlKG5vZGUucHRyLnZpc2l0KHRoaXMpLCBub2RlLnR5cGUpOworICAgICAgICByZXR1cm4gRVB0
ci5ib3gobm9kZS5sVmFsdWUudmlzaXQodGhpcykpOwogICAgIH0KICAgICAKICAgICB2aXNpdENv
bW1hRXhwcmVzc2lvbihub2RlKQpAQCAtOTcsNiArMTA3LDcgQEAgY2xhc3MgRXZhbHVhdG9yIGV4
dGVuZHMgVmlzaXRvciB7CiAgICAgICAgIGxldCByZXN1bHQ7CiAgICAgICAgIGZvciAobGV0IGV4
cHJlc3Npb24gb2Ygbm9kZS5saXN0KQogICAgICAgICAgICAgcmVzdWx0ID0gZXhwcmVzc2lvbi52
aXNpdCh0aGlzKTsKKyAgICAgICAgLy8gVGhpcyBzaG91bGQgYWxtb3N0IHNuYXBzaG90LCBleGNl
cHQgdGhhdCB0YWlsLXJldHVybmluZyBhIHBvaW50ZXIgaXMgdG90YWxseSBPSy4KICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKICAgICB9CiAgICAgCkBAIC0xMTMsMTIgKzEyNCwxNCBAQCBjbGFzcyBF
dmFsdWF0b3IgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICB2aXNpdENhbGxFeHByZXNzaW9uKG5vZGUp
CiAgICAgewogICAgICAgICAvLyBXZSBldmFsdWF0ZSBpbmxpbmVkIEFTVHMsIHNvIHRoaXMgY2Fu
IG9ubHkgYmUgYSBuYXRpdmUgY2FsbC4KLSAgICAgICAgbGV0IGNhbGxBcmd1bWVudHMgPSBub2Rl
LmFyZ3VtZW50TGlzdC5tYXAoYXJndW1lbnQgPT4gewotICAgICAgICAgICAgbGV0IHJlc3VsdCA9
IGFyZ3VtZW50LnZpc2l0KHRoaXMpOwotICAgICAgICAgICAgaWYgKCFyZXN1bHQpCi0gICAgICAg
ICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJOdWxsIHJlc3VsdCBmcm9tICIgKyBhcmd1bWVudCk7
Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICB9KTsKKyAgICAgICAgbGV0IGNh
bGxBcmd1bWVudHMgPSBbXTsKKyAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBub2RlLmFyZ3Vt
ZW50TGlzdC5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgbGV0IGFyZ3VtZW50ID0gbm9kZS5h
cmd1bWVudExpc3RbaV07CisgICAgICAgICAgICBsZXQgdHlwZSA9IG5vZGUubmF0aXZlRnVuY0lu
c3RhbmNlLnBhcmFtZXRlclR5cGVzW2ldOworICAgICAgICAgICAgaWYgKCF0eXBlIHx8ICFhcmd1
bWVudCkKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBnZXQgdHlwZSBv
ciBhcmd1bWVudDsgaSA9ICIgKyBpICsgIiwgYXJndW1lbnQgPSAiICsgYXJndW1lbnQgKyAiLCB0
eXBlID0gIiArIHR5cGUgKyAiOyBpbiAiICsgbm9kZSk7CisgICAgICAgICAgICBjYWxsQXJndW1l
bnRzLnB1c2godGhpcy5fc25hcHNob3QodHlwZSwgYXJndW1lbnQudmlzaXQodGhpcykpKTsKKyAg
ICAgICAgfQogICAgICAgICByZXR1cm4gbm9kZS5mdW5jLmltcGxlbWVudGF0aW9uKGNhbGxBcmd1
bWVudHMsIG5vZGUpOwogICAgIH0KIH0KSW5kZXg6IFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL0Z1bmNJbnN0YW50aWF0b3IuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvRnVuY0luc3RhbnRpYXRvci5qcwkocmV2aXNpb24gMjIxNDM1KQorKysgVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRnVuY0luc3RhbnRpYXRvci5qcwkod29ya2luZyBj
b3B5KQpAQCAtNTQsMTIgKzU0LDI3IEBAIGNsYXNzIEZ1bmNJbnN0YW50aWF0b3IgewogICAgICAg
ICB9CiAgICAgICAgIAogICAgICAgICBsZXQgc3Vic3RpdHV0aW9uID0gU3Vic3RpdHV0aW9uLm1h
cHBpbmcoZnVuYy50eXBlUGFyYW1ldGVycywgdHlwZUFyZ3VtZW50cyk7Ci0gICAgICAgIGxldCBy
ZXN1bHRpbmdGdW5jID0gbmV3IEZ1bmNEZWYoCi0gICAgICAgICAgICBmdW5jLm9yaWdpbiwgZnVu
Yy5uYW1lLAotICAgICAgICAgICAgZnVuYy5yZXR1cm5UeXBlLnZpc2l0KHN1YnN0aXR1dGlvbiks
Ci0gICAgICAgICAgICBbXSwgLy8gV2UncmUgaW5zdGFudGlhdGVkIHNvIHdlIG5vIGxvbmdlciB0
YWtlIHR5cGUgcGFyYW1ldGVycy4KLSAgICAgICAgICAgIGZ1bmMucGFyYW1ldGVycy5tYXAocGFy
YW1ldGVyID0+IHBhcmFtZXRlci52aXNpdChzdWJzdGl0dXRpb24pKSwKLSAgICAgICAgICAgIGZ1
bmMuYm9keS52aXNpdChzdWJzdGl0dXRpb24pKTsKKyAgICAgICAgCisgICAgICAgIGNsYXNzIElu
c3RhbnRpYXRlIHsKKyAgICAgICAgICAgIHZpc2l0RnVuY0RlZihmdW5jKQorICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRnVuY0RlZigKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYy5vcmlnaW4sIGZ1bmMubmFtZSwKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5yZXR1
cm5UeXBlLnZpc2l0KHN1YnN0aXR1dGlvbiksCisgICAgICAgICAgICAgICAgICAgIFtdLCAvLyBX
ZSdyZSBpbnN0YW50aWF0ZWQgc28gd2Ugbm8gbG9uZ2VyIHRha2UgdHlwZSBwYXJhbWV0ZXJzLgor
ICAgICAgICAgICAgICAgICAgICBmdW5jLnBhcmFtZXRlcnMubWFwKHBhcmFtZXRlciA9PiBwYXJh
bWV0ZXIudmlzaXQoc3Vic3RpdHV0aW9uKSksCisgICAgICAgICAgICAgICAgICAgIGZ1bmMuYm9k
eS52aXNpdChzdWJzdGl0dXRpb24pKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAg
ICAgICAgICAgdmlzaXROYXRpdmVGdW5jKGZ1bmMpCisgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgcmV0dXJuIG5ldyBOYXRpdmVGdW5jSW5zdGFuY2UoCisgICAgICAgICAgICAgICAgICAg
IGZ1bmMsCisgICAgICAgICAgICAgICAgICAgIGZ1bmMucmV0dXJuVHlwZS52aXNpdChzdWJzdGl0
dXRpb24pLAorICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzLm1hcChwYXJhbWV0ZXIgPT4g
cGFyYW1ldGVyLnZpc2l0KHN1YnN0aXR1dGlvbikpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fQorICAgICAgICBsZXQgcmVzdWx0aW5nRnVuYyA9IGZ1bmMudmlzaXQobmV3IEluc3RhbnRpYXRl
KCkpOwogICAgICAgICBsZXQgaW5zdGFuY2UgPSB7ZnVuYzogcmVzdWx0aW5nRnVuYywgdHlwZUFy
Z3VtZW50c307CiAgICAgICAgIGluc3RhbmNlcy5wdXNoKGluc3RhbmNlKTsKICAgICAgICAgcmV0
dXJuIHJlc3VsdGluZ0Z1bmM7CkluZGV4OiBUb29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9G
dW5jdGlvbkxpa2VCbG9jay5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9GdW5jdGlvbkxpa2VCbG9jay5qcwkocmV2aXNpb24gMjIxNDM1KQorKysgVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRnVuY3Rpb25MaWtlQmxvY2suanMJKHdvcmtpbmcgY29w
eSkKQEAgLTI1LDIyICsyNSwyNCBAQAogInVzZSBzdHJpY3QiOwogCiBjbGFzcyBGdW5jdGlvbkxp
a2VCbG9jayBleHRlbmRzIFZhbHVlIHsKLSAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIGFyZ3VtZW50
TGlzdCwgcGFyYW1ldGVycywgYm9keSkKKyAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIHJldHVyblR5
cGUsIGFyZ3VtZW50TGlzdCwgcGFyYW1ldGVycywgYm9keSkKICAgICB7CiAgICAgICAgIHN1cGVy
KCk7CiAgICAgICAgIHRoaXMuX29yaWdpbiA9IG9yaWdpbjsKKyAgICAgICAgdGhpcy5fcmV0dXJu
VHlwZSA9IHJldHVyblR5cGU7CiAgICAgICAgIHRoaXMuX2FyZ3VtZW50TGlzdCA9IGFyZ3VtZW50
TGlzdDsKICAgICAgICAgdGhpcy5fcGFyYW1ldGVycyA9IHBhcmFtZXRlcnM7CiAgICAgICAgIHRo
aXMuX2JvZHkgPSBib2R5OwogICAgIH0KICAgICAKICAgICBnZXQgb3JpZ2luKCkgeyByZXR1cm4g
dGhpcy5fb3JpZ2luOyB9CisgICAgZ2V0IHJldHVyblR5cGUoKSB7IHJldHVybiB0aGlzLl9yZXR1
cm5UeXBlOyB9CiAgICAgZ2V0IGFyZ3VtZW50TGlzdCgpIHsgcmV0dXJuIHRoaXMuX2FyZ3VtZW50
TGlzdDsgfQogICAgIGdldCBwYXJhbWV0ZXJzKCkgeyByZXR1cm4gdGhpcy5fcGFyYW1ldGVyczsg
fQogICAgIGdldCBib2R5KCkgeyByZXR1cm4gdGhpcy5fYm9keTsgfQogICAgIAogICAgIHRvU3Ry
aW5nKCkKICAgICB7Ci0gICAgICAgIHJldHVybiAiWyZdICgiICsgdGhpcy5wYXJhbWV0ZXJzICsg
IikgeyAiICsgdGhpcy5ibG9jayArICIgfSgiICsgdGhpcy5hcmd1bWVudExpc3QgKyAiKSI7Cisg
ICAgICAgIHJldHVybiAiKFsmXSAoIiArIHRoaXMucGFyYW1ldGVycyArICIpIC0+ICIgKyB0aGlz
LnJldHVyblR5cGUgKyAiIHsgIiArIHRoaXMuYmxvY2sgKyAiIH0oIiArIHRoaXMuYXJndW1lbnRM
aXN0ICsgIikpIjsKICAgICB9CiB9CkluZGV4OiBUb29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9JbmxpbmVyLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0lubGluZXIuanMJKHJldmlzaW9uIDIyMTQzNSkKKysrIFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL0lubGluZXIuanMJKHdvcmtpbmcgY29weSkKQEAgLTM0LDEzICszNCwxNyBAQCBjbGFz
cyBJbmxpbmVyIGV4dGVuZHMgUmV3cml0ZXIgewogICAgIAogICAgIHZpc2l0Q2FsbEV4cHJlc3Np
b24obm9kZSkKICAgICB7Ci0gICAgICAgIGlmIChub2RlLmZ1bmMuaXNOYXRpdmUpCi0gICAgICAg
ICAgICByZXR1cm4gc3VwZXIudmlzaXRDYWxsRXhwcmVzc2lvbihub2RlKTsKICAgICAgICAgcmV0
dXJuIHRoaXMuX3Zpc2l0aW5nLmRvVmlzaXQobm9kZS5mdW5jLCAoKSA9PiB7CiAgICAgICAgICAg
ICBsZXQgZnVuYyA9IHRoaXMuX3Byb2dyYW0uZnVuY0luc3RhbnRpYXRvci5nZXRVbmlxdWUobm9k
ZS5mdW5jLCBub2RlLmFjdHVhbFR5cGVBcmd1bWVudHMpOworICAgICAgICAgICAgaWYgKGZ1bmMu
aXNOYXRpdmUpIHsKKyAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gc3VwZXIudmlzaXRDYWxs
RXhwcmVzc2lvbihub2RlKTsKKyAgICAgICAgICAgICAgICByZXN1bHQubmF0aXZlRnVuY0luc3Rh
bmNlID0gZnVuYzsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAg
fQogICAgICAgICAgICAgX2lubGluZUZ1bmN0aW9uKHRoaXMuX3Byb2dyYW0sIGZ1bmMsIHRoaXMu
X3Zpc2l0aW5nKTsKICAgICAgICAgICAgIHJldHVybiBuZXcgRnVuY3Rpb25MaWtlQmxvY2soCiAg
ICAgICAgICAgICAgICAgbm9kZS5vcmlnaW4sCisgICAgICAgICAgICAgICAgZnVuYy5yZXR1cm5U
eXBlLAogICAgICAgICAgICAgICAgIG5vZGUuYXJndW1lbnRMaXN0Lm1hcChhcmd1bWVudCA9PiBh
cmd1bWVudC52aXNpdCh0aGlzKSksCiAgICAgICAgICAgICAgICAgZnVuYy5wYXJhbWV0ZXJzLCBm
dW5jLmJvZHkpOwogICAgICAgICB9KTsKSW5kZXg6IFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL01ha2VQdHJFeHByZXNzaW9uLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL01ha2VQdHJFeHByZXNzaW9uLmpzCShub25leGlzdGVudCkKKysrIFRvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ha2VQdHJFeHByZXNzaW9uLmpzCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCisgKi8KKyJ1c2Ugc3RyaWN0IjsKKworY2xhc3MgTWFrZVB0ckV4cHJlc3Npb24gZXh0ZW5k
cyBFeHByZXNzaW9uIHsKKyAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIGxWYWx1ZSkKKyAgICB7Cisg
ICAgICAgIHN1cGVyKG9yaWdpbik7CisgICAgICAgIHRoaXMuX2xWYWx1ZSA9IGxWYWx1ZTsKKyAg
ICB9CisgICAgCisgICAgZ2V0IGxWYWx1ZSgpIHsgcmV0dXJuIHRoaXMuX2xWYWx1ZTsgfQorICAg
IAorICAgIHRvU3RyaW5nKCkKKyAgICB7CisgICAgICAgIHJldHVybiAiXFwoIiArIHRoaXMucHRy
ICsgIikiOworICAgIH0KK30KSW5kZXg6IFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05h
dGl2ZUZ1bmNJbnN0YW5jZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9OYXRpdmVGdW5jSW5zdGFuY2UuanMJKG5vbmV4aXN0ZW50KQorKysgVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvTmF0aXZlRnVuY0luc3RhbmNlLmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
CisgKi8KKyJ1c2Ugc3RyaWN0IjsKKworY2xhc3MgTmF0aXZlRnVuY0luc3RhbmNlIGV4dGVuZHMg
RnVuYyB7CisgICAgY29uc3RydWN0b3IoZnVuYywgcmV0dXJuVHlwZSwgcGFyYW1ldGVycykKKyAg
ICB7CisgICAgICAgIHN1cGVyKGZ1bmMubmFtZSwgcmV0dXJuVHlwZSwgW10sIHBhcmFtZXRlcnMp
OworICAgICAgICB0aGlzLl9mdW5jID0gZnVuYzsKKyAgICB9CisgICAgCisgICAgZ2V0IGZ1bmMo
KSB7IHJldHVybiB0aGlzLl9mdW5jOyB9CisKKyAgICB0b1N0cmluZygpCisgICAgeworICAgICAg
ICByZXR1cm4gIm5hdGl2ZSAiICsgc3VwZXIudG9TdHJpbmcoKTsKKyAgICB9Cit9CisKSW5kZXg6
IFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jld3JpdGVyLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jld3JpdGVyLmpzCShyZXZpc2lvbiAyMjE0
NTApCisrKyBUb29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXdyaXRlci5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtMTUwLDYgKzE1MCwxMSBAQCBjbGFzcyBSZXdyaXRlciB7CiAgICAgICAgIHJl
dHVybiByZXN1bHQ7CiAgICAgfQogICAgIAorICAgIHZpc2l0TWFrZVB0ckV4cHJlc3Npb24obm9k
ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgTWFrZVB0ckV4cHJlc3Npb24obm9kZS5vcmln
aW4sIG5vZGUubFZhbHVlLnZpc2l0KHRoaXMpKTsKKyAgICB9CisgICAgCiAgICAgdmlzaXRWYXJp
YWJsZVJlZihub2RlKQogICAgIHsKICAgICAgICAgbm9kZS52YXJpYWJsZSA9IHRoaXMuX2dldE1h
cHBpbmcobm9kZS52YXJpYWJsZSk7CkBAIC0xNzgsNiArMTgzLDcgQEAgY2xhc3MgUmV3cml0ZXIg
ewogICAgICAgICAgICAgICAgIGFjdHVhbFR5cGVBcmd1bWVudHMubWFwKGFjdHVhbFR5cGVBcmd1
bWVudCA9PiBhY3R1YWxUeXBlQXJndW1lbnQudmlzaXQodGhpcykpOwogICAgICAgICB9CiAgICAg
ICAgIHJlc3VsdC5mdW5jID0gbm9kZS5mdW5jOworICAgICAgICByZXN1bHQubmF0aXZlRnVuY0lu
c3RhbmNlID0gbm9kZS5uYXRpdmVGdW5jSW5zdGFuY2U7CiAgICAgICAgIHJldHVybiByZXN1bHQ7
CiAgICAgfQogICAgIApJbmRleDogVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzCShy
ZXZpc2lvbiAyMjE0NTApCisrKyBUb29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0Lmpz
CSh3b3JraW5nIGNvcHkpCkBAIC0xMjMsNiArMTIzLDQwIEBAIGZ1bmN0aW9uIFRFU1Rfc2ltcGxl
RGVyZWZlcmVuY2UoKQogICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFtUeXBlZFZhbHVlLmJveChuZXcgUHRyVHlwZShudWxsLCAiZGV2aWNlIiwg
cHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVQdHIoYnVmZmVyLCAwKSldKSwgMTMpOwog
fQogCitmdW5jdGlvbiBURVNUX2RlcmVmZXJlbmNlU3RvcmUoKQoreworICAgIGxldCBwcm9ncmFt
ID0gZG9QcmVwKGAKKyAgICAgICAgdm9pZCBmb28oZGV2aWNlIGludF4gcCkKKyAgICAgICAgewor
ICAgICAgICAgICAgXnAgPSA1MjsKKyAgICAgICAgfWApOworICAgIGxldCBidWZmZXIgPSBuZXcg
RUJ1ZmZlcigxKTsKKyAgICBidWZmZXIuc2V0KDAsIDEzKTsKKyAgICBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbVHlwZWRWYWx1ZS5ib3gobmV3IFB0clR5cGUobnVsbCwgImRldmlj
ZSIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiksIG5ldyBFUHRyKGJ1ZmZlciwgMCkpXSk7Cisg
ICAgaWYgKGJ1ZmZlci5nZXQoMCkgIT0gNTIpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigiRXhw
ZWN0ZWQgYnVmZmVyIHRvIGNvbnRhaW4gNTIgYnV0IGl0IGNvbnRhaW5zOiAiICsgYnVmZmVyLmdl
dCgwKSk7Cit9CisKK2Z1bmN0aW9uIFRFU1Rfc2ltcGxlTWFrZVB0cigpCit7CisgICAgbGV0IHBy
b2dyYW0gPSBkb1ByZXAoYAorICAgICAgICB0aHJlYWQgaW50XiBmb28oKQorICAgICAgICB7Cisg
ICAgICAgICAgICBpbnQgeCA9IDQyOworICAgICAgICAgICAgcmV0dXJuIFxceDsKKyAgICAgICAg
fWApOworICAgIGxldCByZXN1bHQgPSBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
XSk7CisgICAgaWYgKCFyZXN1bHQudHlwZS5pc1B0cikKKyAgICAgICAgdGhyb3cgbmV3IEVycm9y
KCJSZXR1cm4gdHlwZSBpcyBub3QgYSBwb2ludGVyOiAiICsgcmVzdWx0LnR5cGUpOworICAgIGlm
ICghcmVzdWx0LnR5cGUuZWxlbWVudFR5cGUuZXF1YWxzKHByb2dyYW0uaW50cmluc2ljcy5pbnQz
MikpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigiUmV0dXJuIHR5cGUgaXMgbm90IGEgcG9pbnRl
ciB0byBhbiBpbnQ6ICIgKyByZXN1bHQudHlwZSk7CisgICAgaWYgKCEocmVzdWx0LnZhbHVlIGlu
c3RhbmNlb2YgRVB0cikpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigiUmV0dXJuIHZhbHVlIGlz
IG5vdCBhbiBFUHRyOiAiICsgcmVzdWx0LnZhbHVlKTsKKyAgICBsZXQgdmFsdWUgPSByZXN1bHQu
dmFsdWUubG9hZFZhbHVlKCk7CisgICAgaWYgKHZhbHVlICE9IDQyKQorICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoIkV4cGVjdGVkIDQyIGJ1dCBnb3Q6ICIgKyB2YWx1ZSk7Cit9CisKIGxldCBiZWZv
cmUgPSBwcmVjaXNlVGltZSgpOwogCiBsZXQgZmlsdGVyID0gLy4qLzsgLy8gcnVuIGV2ZXJ5dGhp
bmcgYnkgZGVmYXVsdApJbmRleDogVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVmFsdWUu
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVmFsdWUuanMJ
KHJldmlzaW9uIDIyMTQzNSkKKysrIFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1ZhbHVl
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw1ICsyNyw2IEBACiBjbGFzcyBWYWx1ZSBleHRlbmRz
IE5vZGUgewogICAgIGdldCBraW5kKCkgeyByZXR1cm4gVmFsdWU7IH0KICAgICBnZXQgaXNDb25z
dGV4cHIoKSB7IHJldHVybiBmYWxzZTsgfQorICAgIGdldCBpc0xWYWx1ZSgpIHsgcmV0dXJuIGZh
bHNlOyB9CiB9CiAKSW5kZXg6IFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1ZhcmlhYmxl
UmVmLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Zhcmlh
YmxlUmVmLmpzCShyZXZpc2lvbiAyMjE0MzUpCisrKyBUb29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9WYXJpYWJsZVJlZi5qcwkod29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUsOCBAQCBjbGFz
cyBWYXJpYWJsZVJlZiBleHRlbmRzIEV4cHJlc3Npb24gewogICAgIGdldCBuYW1lKCkgeyByZXR1
cm4gdGhpcy5fbmFtZTsgfQogICAgIGdldCBpc0NvbnN0ZXhwcigpIHsgcmV0dXJuIHRoaXMudmFy
aWFibGUuaXNDb25zdGV4cHI7IH0KICAgICBnZXQgdW5pZnlOb2RlKCkgeyByZXR1cm4gdGhpcy52
YXJpYWJsZS51bmlmeU5vZGU7IH0KKyAgICBnZXQgaXNMVmFsdWUoKSB7IHJldHVybiB0cnVlOyB9
CisgICAgZ2V0IGFkZHJlc3NTcGFjZSgpIHsgcmV0dXJuICJ0aHJlYWQiOyB9CiAgICAgCiAgICAg
dG9TdHJpbmcoKQogICAgIHsKSW5kZXg6IFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Zp
c2l0b3IuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVmlz
aXRvci5qcwkocmV2aXNpb24gMjIxNDUwKQorKysgVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvVmlzaXRvci5qcwkod29ya2luZyBjb3B5KQpAQCAtMTU4LDYgKzE1OCwxMSBAQCBjbGFzcyBW
aXNpdG9yIHsKICAgICAgICAgbm9kZS5wdHIudmlzaXQodGhpcyk7CiAgICAgfQogICAgIAorICAg
IHZpc2l0TWFrZVB0ckV4cHJlc3Npb24obm9kZSkKKyAgICB7CisgICAgICAgIG5vZGUubFZhbHVl
LnZpc2l0KHRoaXMpOworICAgIH0KKyAgICAKICAgICB2aXNpdFZhcmlhYmxlUmVmKG5vZGUpCiAg
ICAgewogICAgIH0KQEAgLTE3OCw2ICsxODMsMTEgQEAgY2xhc3MgVmlzaXRvciB7CiAgICAgICAg
ICAgICB0eXBlQXJndW1lbnQudmlzaXQodGhpcyk7CiAgICAgICAgIGZvciAobGV0IGFyZ3VtZW50
IG9mIG5vZGUuYXJndW1lbnRMaXN0KQogICAgICAgICAgICAgYXJndW1lbnQudmlzaXQodGhpcyk7
CisgICAgICAgIGxldCBhY3R1YWxUeXBlQXJndW1lbnRzID0gbm9kZS5hY3R1YWxUeXBlQXJndW1l
bnRzOworICAgICAgICBpZiAoYWN0dWFsVHlwZUFyZ3VtZW50cykgeworICAgICAgICAgICAgZm9y
IChsZXQgYXJndW1lbnQgb2YgYWN0dWFsVHlwZUFyZ3VtZW50cykKKyAgICAgICAgICAgICAgICBh
cmd1bWVudC52aXNpdCh0aGlzKTsKKyAgICAgICAgfQogICAgIH0KICAgICAKICAgICB2aXNpdEZ1
bmN0aW9uTGlrZUJsb2NrKG5vZGUpCg==
</data>
<flag name="review"
          id="339810"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>