<?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>189290</bug_id>
          
          <creation_ts>2018-09-04 17:32:16 -0700</creation_ts>
          <short_desc>[WHLSL] It shouldn’t be possible to use ternary expressions as l-values</short_desc>
          <delta_ts>2018-10-13 14:35:55 -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>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>176199</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Thomas Denney">tdenney</reporter>
          <assigned_to name="Thomas Denney">tdenney</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>ews-feeder</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1456554</commentid>
    <comment_count>0</comment_count>
    <who name="Thomas Denney">tdenney</who>
    <bug_when>2018-09-04 17:32:16 -0700</bug_when>
    <thetext>Ternary expressions can be used as l-values:

    (someCondition ? a : b) = 42;

It should be possible to take the address of any l-value, however the following doesn’t work:

    int a = 42;
    int b = 43;
    thread int* c = (someCondition ? a : b);

We should either disallow taking the address of a ternary expression, improve the current error message “Bad address space: undefined”, or support this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456556</commentid>
    <comment_count>1</comment_count>
    <who name="Thomas Denney">tdenney</who>
    <bug_when>2018-09-04 17:38:56 -0700</bug_when>
    <thetext>(In reply to Thomas Denney from comment #0)
&gt; Ternary expressions can be used as l-values:
&gt; 
&gt;     (someCondition ? a : b) = 42;
&gt; 
&gt; It should be possible to take the address of any l-value, however the
&gt; following doesn’t work:
&gt; 
&gt;     int a = 42;
&gt;     int b = 43;
&gt;     thread int* c = (someCondition ? a : b);

Sorry, that should be

      thread int* c = &amp;(someCondition ? a : b);

&gt; 
&gt; We should either disallow taking the address of a ternary expression,
&gt; improve the current error message “Bad address space: undefined”, or support
&gt; this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456557</commentid>
    <comment_count>2</comment_count>
    <who name="Thomas Denney">tdenney</who>
    <bug_when>2018-09-04 17:40:47 -0700</bug_when>
    <thetext>It is worth noting that C doesn’t permit this because it treats the ternary expression as an r-value, and therefore you cannot take its address.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456560</commentid>
    <comment_count>3</comment_count>
    <who name="Thomas Denney">tdenney</who>
    <bug_when>2018-09-04 17:47:54 -0700</bug_when>
    <thetext>We will therefore disallow:</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456561</commentid>
    <comment_count>4</comment_count>
    <who name="Thomas Denney">tdenney</who>
    <bug_when>2018-09-04 17:48:37 -0700</bug_when>
    <thetext>Therefore the following needs to be disallowed:

    (someCondition ? a : b) = something
    &amp;(someCondition ? a : b)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456563</commentid>
    <comment_count>5</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-09-04 17:50:30 -0700</bug_when>
    <thetext>(In reply to Thomas Denney from comment #4)
&gt; Therefore the following needs to be disallowed:
&gt; 
&gt;     (someCondition ? a : b) = something
&gt;     &amp;(someCondition ? a : b)

So ternary expressions will never be lvalues. Makes it easy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1462084</commentid>
    <comment_count>6</comment_count>
      <attachid>350425</attachid>
    <who name="Thomas Denney">tdenney</who>
    <bug_when>2018-09-21 14:13:44 -0700</bug_when>
    <thetext>Created attachment 350425
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1462960</commentid>
    <comment_count>7</comment_count>
      <attachid>350425</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-09-24 15:57:55 -0700</bug_when>
    <thetext>Comment on attachment 350425
Patch

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

Should also remove the block from NormalUsePropertyResolver.

&gt; Tools/WebGPUShadingLanguageRI/TernaryExpression.js:-41
&gt; -    get isLValue() { return this._isLValue; }
&gt; -    set isLValue(value) { this._isLValue = value; }

Similar to how CommaExpression.js has a comment about why it isn&apos;t an lvalue, a comment here would be appreciated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463019</commentid>
    <comment_count>8</comment_count>
      <attachid>350713</attachid>
    <who name="Thomas Denney">tdenney</who>
    <bug_when>2018-09-24 17:06:18 -0700</bug_when>
    <thetext>Created attachment 350713
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463023</commentid>
    <comment_count>9</comment_count>
      <attachid>350714</attachid>
    <who name="Thomas Denney">tdenney</who>
    <bug_when>2018-09-24 17:08:48 -0700</bug_when>
    <thetext>Created attachment 350714
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463024</commentid>
    <comment_count>10</comment_count>
      <attachid>350714</attachid>
    <who name="EWS">ews-feeder</who>
    <bug_when>2018-09-24 17:09:51 -0700</bug_when>
    <thetext>Comment on attachment 350714
Patch

Rejecting attachment 350714 from commit-queue.

tdenney@apple.com does not have committer permissions according to https://trac.webkit.org/browser/trunk/Tools/Scripts/webkitpy/common/config/contributors.json.

- If you do not have committer rights please read http://webkit.org/coding/contributing.html for instructions on how to use bugzilla flags.

- If you have committer rights please correct the error in Tools/Scripts/webkitpy/common/config/contributors.json by adding yourself to the file (no review needed).  The commit-queue restarts itself every 2 hours.  After restart the commit-queue will correctly respect your committer rights.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463054</commentid>
    <comment_count>11</comment_count>
      <attachid>350714</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-09-24 18:16:23 -0700</bug_when>
    <thetext>Comment on attachment 350714
Patch

Clearing flags on attachment: 350714

Committed r236449: &lt;https://trac.webkit.org/changeset/236449&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463066</commentid>
    <comment_count>12</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-09-24 18:47:25 -0700</bug_when>
    <thetext>&lt;rdar://problem/44748793&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1468819</commentid>
    <comment_count>13</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-10-13 14:35:55 -0700</bug_when>
    <thetext>Migrated to https://github.com/gpuweb/WHLSL/issues/43</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>350425</attachid>
            <date>2018-09-21 14:13:44 -0700</date>
            <delta_ts>2018-09-24 15:57:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189290-20180921141337.patch</filename>
            <type>text/plain</type>
            <size>7580</size>
            <attacher name="Thomas Denney">tdenney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2MzU3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZGE3ODQ1MDQwMDI4YjNiM2FiZWVhYWYyZjAzNzlhOGI5
NDYxOWQ4My4uNjA1MmY0MzY5YzFjZjYyMGY0YTA0ZDQ0ZGU1ZWUyM2MyNWI1YjVlMiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMw
IEBACisyMDE4LTA5LTIxICBUaG9tYXMgRGVubmV5ICA8dGRlbm5leUBhcHBsZS5jb20+CisKKyAg
ICAgICAgW1dITFNMXSBJdCBzaG91bGRu4oCZdCBiZSBwb3NzaWJsZSB0byB1c2UgdGVybmFyeSBl
eHByZXNzaW9ucyBhcyBsLXZhbHVlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTg5MjkwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgSXQgaXMgbm8gbG9uZ2VyIHBvc3NpYmxlIGZvciBhIHRlcm5hcnkgZXhw
cmVzc2lvbiB0byBiZSB0cmVhdGVkIGFzIGFuCisgICAgICAgIGwtdmFsdWUuIFRoaXMgcGF0Y2gg
YWRkcyBzZXZlcmFsIHRlc3QgY2FzZXMgdG8gdmVyaWZ5IHRoYXQgdGhpcyBpcyB0aGUKKyAgICAg
ICAgY2FzZS4KKworICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NoZWNrZXIuanM6
CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS52aXNpdFRlcm5hcnlFeHByZXNzaW9uKTogTm8g
bG9uZ2VyIGNoZWNrIGlzTFZhbHVlLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1Jld3JpdGVyLmpzOgorICAgICAgICAoUmV3cml0ZXIucHJvdG90eXBlLnZpc2l0VGVybmFyeUV4
cHJlc3Npb24pOiBObyBsb25nZXIgY29weSBpc0xWYWx1ZS4KKyAgICAgICAgKiBXZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9UZXJuYXJ5RXhwcmVzc2lvbi5qczoKKyAgICAgICAgKFRlcm5hcnlFeHBy
ZXNzaW9uKToKKyAgICAgICAgKFRlcm5hcnlFeHByZXNzaW9uLnByb3RvdHlwZS5nZXQgZWxzZUV4
cHJlc3Npb24pOgorICAgICAgICAoVGVybmFyeUV4cHJlc3Npb24ucHJvdG90eXBlLmdldCBpc0xW
YWx1ZSk6IERlbGV0ZWQuCisgICAgICAgIChUZXJuYXJ5RXhwcmVzc2lvbi5wcm90b3R5cGUuc2V0
IGlzTFZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9U
ZXN0LmpzOgorICAgICAgICAodGVzdHMudGVybmFyeUV4cHJlc3Npb24pOiBBZGQgY2hlY2tzIGZv
ciBmYWlsdXJlIGlmIGEgZmFpbHVyZSBpcyB1c2VkCisgICAgICAgIGFzIGFuIGwtdmFsdWUuCisg
ICAgICAgICh0ZXJuYXJ5RXhwcmVzc2lvbklzTFZhbHVlLm5vZGUuVGVybmFyeUV4cHJlc3Npb25W
aXNpdG9yLnByb3RvdHlwZS52aXNpdFRlcm5hcnlFeHByZXNzaW9uKTogRGVsZXRlZC4KKyAgICAg
ICAgKHRlcm5hcnlFeHByZXNzaW9uSXNMVmFsdWUubm9kZS5UZXJuYXJ5RXhwcmVzc2lvblZpc2l0
b3IpOiBEZWxldGVkLgorICAgICAgICAodGVzdHMudGVybmFyeUV4cHJlc3Npb25Jc0xWYWx1ZSk6
IERlbGV0ZWQuCisKIDIwMTgtMDktMjEgIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUu
Y29tPgogCiAgICAgICAgIEJyaW5nIHVwIHF1ZXVlcyBmb3IgaU9TIDEyIChCdWlsZCBmaXgpCmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DaGVja2VyLmpzIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tlci5qcwppbmRleCA1ZjU5OGIyZWU3NTIy
YmJjODEwNTQ1Yzk0OGQ3NzNmMmU0Zjk5NDdkLi4xNGY5ZDJiNGY3YTJlYmI1ZDIxMDM2NjUzMjc3
Yjk1YTQwZDg2ZDJkIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9D
aGVja2VyLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NoZWNrZXIuanMK
QEAgLTY4OCw3ICs2ODgsNiBAQCBjbGFzcyBDaGVja2VyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAg
ICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlRlcm5hcnkgZXhwcmVzc2lvbiBlbHNlIGhhcyBubyB0
eXBlOiAiICsgbm9kZS5lbHNlRXhwcmVzc2lvbik7CiAgICAgICAgIGlmICghYm9keVR5cGUuZXF1
YWxzV2l0aENvbW1pdChlbHNlVHlwZSkpCiAgICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJv
cigiQm9keSBhbmQgZWxzZSBjbGF1c2Ugb2YgdGVybmFyeSBzdGF0ZW1lbnQgZG9uJ3QgaGF2ZSB0
aGUgc2FtZSB0eXBlOiAiICsgbm9kZSk7Ci0gICAgICAgIG5vZGUuaXNMVmFsdWUgPSBub2RlLmJv
ZHlFeHByZXNzaW9uLmlzTFZhbHVlICYmIG5vZGUuZWxzZUV4cHJlc3Npb24uaXNMVmFsdWU7CiAg
ICAgICAgIHJldHVybiBib2R5VHlwZTsKICAgICB9CiAgICAgCmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXdyaXRlci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1Jld3JpdGVyLmpzCmluZGV4IDMwMjU4OTNhMDZhM2Y1OTAzMmI5ZjZjZDQzZjEy
NDY1MWYwMjZjYjkuLjdjMmRmYmE2OTU1MzM5ODg0ZGJiZjkxMDQ3OGQ0M2VmZmRlYzY1Y2YgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jld3JpdGVyLmpzCisrKyBi
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jld3JpdGVyLmpzCkBAIC0xNjcsOSArMTY3
LDcgQEAgY2xhc3MgUmV3cml0ZXIgewogCiAgICAgdmlzaXRUZXJuYXJ5RXhwcmVzc2lvbihub2Rl
KQogICAgIHsKLSAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBUZXJuYXJ5RXhwcmVzc2lvbihub2Rl
Lm9yaWdpbiwgbm9kZS5wcmVkaWNhdGUudmlzaXQodGhpcyksIG5vZGUuYm9keUV4cHJlc3Npb24u
dmlzaXQodGhpcyksIG5vZGUuZWxzZUV4cHJlc3Npb24udmlzaXQodGhpcykpOwotICAgICAgICBy
ZXN1bHQuaXNMVmFsdWUgPSBub2RlLmlzTFZhbHVlOwotICAgICAgICByZXR1cm4gcmVzdWx0Owor
ICAgICAgICByZXR1cm4gbmV3IFRlcm5hcnlFeHByZXNzaW9uKG5vZGUub3JpZ2luLCBub2RlLnBy
ZWRpY2F0ZS52aXNpdCh0aGlzKSwgbm9kZS5ib2R5RXhwcmVzc2lvbi52aXNpdCh0aGlzKSwgbm9k
ZS5lbHNlRXhwcmVzc2lvbi52aXNpdCh0aGlzKSk7CiAgICAgfQogICAgIAogICAgIF9oYW5kbGVQ
cm9wZXJ0eUFjY2Vzc0V4cHJlc3Npb24ocmVzdWx0LCBub2RlKQpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVybmFyeUV4cHJlc3Npb24uanMgYi9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXJuYXJ5RXhwcmVzc2lvbi5qcwppbmRleCBhNmY1YTAwMjFj
ODliOWI0OGU1NjYzOWNhNThmMWU1MTlmMjZmNjlhLi5lZTc2ZTk3MjZlZDEyMTQxMjQ1NzliMGVl
YzE3NjlhMGUwNzdjMWQ0IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9UZXJuYXJ5RXhwcmVzc2lvbi5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9UZXJuYXJ5RXhwcmVzc2lvbi5qcwpAQCAtMzEsMTQgKzMxLDExIEBAIGNsYXNzIFRlcm5hcnlF
eHByZXNzaW9uIGV4dGVuZHMgRXhwcmVzc2lvbiB7CiAgICAgICAgIHRoaXMuX3ByZWRpY2F0ZSA9
IHByZWRpY2F0ZTsKICAgICAgICAgdGhpcy5fYm9keUV4cHJlc3Npb24gPSBib2R5RXhwcmVzc2lv
bjsKICAgICAgICAgdGhpcy5fZWxzZUV4cHJlc3Npb24gPSBlbHNlRXhwcmVzc2lvbjsKLSAgICAg
ICAgdGhpcy5faXNMVmFsdWUgPSBudWxsOyAvLyBXZSB1c2UgbnVsbCB0byBpbmRpY2F0ZSB0aGF0
IHdlIGRvbid0IGtub3cgeWV0LgogICAgIH0KICAgICAKICAgICBnZXQgcHJlZGljYXRlKCkgeyBy
ZXR1cm4gdGhpcy5fcHJlZGljYXRlOyB9CiAgICAgZ2V0IGJvZHlFeHByZXNzaW9uKCkgeyByZXR1
cm4gdGhpcy5fYm9keUV4cHJlc3Npb247IH0KICAgICBnZXQgZWxzZUV4cHJlc3Npb24oKSB7IHJl
dHVybiB0aGlzLl9lbHNlRXhwcmVzc2lvbjsgfQotICAgIGdldCBpc0xWYWx1ZSgpIHsgcmV0dXJu
IHRoaXMuX2lzTFZhbHVlOyB9Ci0gICAgc2V0IGlzTFZhbHVlKHZhbHVlKSB7IHRoaXMuX2lzTFZh
bHVlID0gdmFsdWU7IH0KICAgICAKICAgICB0b1N0cmluZygpCiAgICAgewpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1Rlc3QuanMKaW5kZXggYWEwZmIzMTEyZmRlY2RlODFhNTAwODA5ZTQ1Mjkz
ODUyNDVlZDc4Ny4uZjdjYzI4MWU0OWY5ODU4YTRjNDYwNGQ2MDYzOTY3YTM1MDJjYjMzYyAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5qcworKysgYi9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzCkBAIC0zMzMsMTMgKzMzMyw2IEBAIHRl
c3RzLnRlcm5hcnlFeHByZXNzaW9uID0gZnVuY3Rpb24oKSB7CiAgICAgICAgIHsKICAgICAgICAg
ICAgIHJldHVybiB4IDwgMyA/IDQgOiA1OwogICAgICAgICB9Ci0gICAgICAgIHRlc3QgaW50IGJh
cihpbnQgeCkKLSAgICAgICAgewotICAgICAgICAgICAgaW50IHkgPSAxOwotICAgICAgICAgICAg
aW50IHogPSAyOwotICAgICAgICAgICAgKHggPCAzID8geSA6IHopID0gNzsKLSAgICAgICAgICAg
IHJldHVybiB5OwotICAgICAgICB9CiAgICAgICAgIHRlc3QgaW50IGJheihpbnQgeCkKICAgICAg
ICAgewogICAgICAgICAgICAgcmV0dXJuIHggPCAxMCA/IDExIDogeCA8IDEyID8gMTQgOiAxNTsK
QEAgLTM1MSw4ICszNDQsNiBAQCB0ZXN0cy50ZXJuYXJ5RXhwcmVzc2lvbiA9IGZ1bmN0aW9uKCkg
ewogICAgIGApOwogICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNzY3KV0pLCA1KTsKICAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDIpXSksIDQp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW21h
a2VJbnQocHJvZ3JhbSwgMildKSwgNyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJiYXIiLCBbbWFrZUludChwcm9ncmFtLCA4KV0pLCAxKTsKICAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJheiIsIFttYWtlSW50KHByb2dy
YW0sIDgpXSksIDExKTsKICAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImJheiIsIFttYWtlSW50KHByb2dyYW0sIDkpXSksIDExKTsKICAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJheiIsIFttYWtlSW50KHByb2dyYW0sIDEwKV0p
LCAxNCk7CkBAIC0zNjksNiArMzYwLDM5IEBAIHRlc3RzLnRlcm5hcnlFeHByZXNzaW9uID0gZnVu
Y3Rpb24oKSB7CiAgICAgICAgICAgICB9CiAgICAgICAgIGApLAogICAgICAgICAoZSkgPT4gZSBp
bnN0YW5jZW9mIFdUeXBlRXJyb3IpOworICAgIGNoZWNrRmFpbCgKKyAgICAgICAgKCkgPT4gZG9Q
cmVwKGAKKyAgICAgICAgICAgIGludCBmb28oKQorICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgIGludCB4OworICAgICAgICAgICAgICAgIGludCB5OworICAgICAgICAgICAgICAgICgwIDwg
MSA/IHggOiB5KSA9IDQyOworICAgICAgICAgICAgICAgIHJldHVybiB4OworICAgICAgICAgICAg
fQorICAgICAgICBgKSwKKyAgICAgICAgKGUpID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yICYm
IGUubWVzc2FnZS5pbmRleE9mKCJub3QgYW4gTFZhbHVlIikgIT0gLTEpOworICAgIGNoZWNrRmFp
bCgKKyAgICAgICAgKCkgPT4gZG9QcmVwKGAKKyAgICAgICAgICAgIGludCBmb28oKQorICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgIGludCB4OworICAgICAgICAgICAgICAgIGludCB5Owor
ICAgICAgICAgICAgICAgIHRocmVhZCBpbnQqIHogPSAmKDAgPCAxID8geCA6IHkpOworICAgICAg
ICAgICAgICAgIHJldHVybiAqejsKKyAgICAgICAgICAgIH0KKyAgICAgICAgYCksCisgICAgICAg
IChlKSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvciAmJiBlLm1lc3NhZ2UuaW5kZXhPZigibm90
IGFuIExWYWx1ZSIpICE9IC0xKTsKKyAgICBjaGVja0ZhaWwoCisgICAgICAgICgpID0+IGRvUHJl
cChgCisgICAgICAgICAgICBpbnQgZm9vKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICBpbnQgeDsKKyAgICAgICAgICAgICAgICBpbnQgeTsKKyAgICAgICAgICAgICAgICB0aHJlYWQg
aW50W10geiA9IEAoMCA8IDEgPyB4IDogeSk7CisgICAgICAgICAgICAgICAgcmV0dXJuICp6Owor
ICAgICAgICAgICAgfQorICAgICAgICBgKSwKKyAgICAgICAgKGUpID0+IGUgaW5zdGFuY2VvZiBX
VHlwZUVycm9yICYmIGUubWVzc2FnZS5pbmRleE9mKCJub3QgYW4gTFZhbHVlIikgIT0gLTEpOwog
ICAgIGNoZWNrRmFpbCgKICAgICAgICAgKCkgPT4gZG9QcmVwKGAKICAgICAgICAgICAgIGludCBm
b28oKQpAQCAtMzg5LDI5ICs0MTMsNiBAQCB0ZXN0cy50ZXJuYXJ5RXhwcmVzc2lvbiA9IGZ1bmN0
aW9uKCkgewogICAgICAgICAoZSkgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IpOwogfQogCi10
ZXN0cy50ZXJuYXJ5RXhwcmVzc2lvbklzTFZhbHVlID0gZnVuY3Rpb24oKSB7Ci0gICAgZnVuY3Rp
b24gdGVybmFyeUV4cHJlc3Npb25Jc0xWYWx1ZShub2RlKQotICAgIHsKLSAgICAgICAgbGV0IGlz
TFZhbHVlOwotICAgICAgICBjbGFzcyBUZXJuYXJ5RXhwcmVzc2lvblZpc2l0b3IgZXh0ZW5kcyBW
aXNpdG9yIHsKLSAgICAgICAgICAgIHZpc2l0VGVybmFyeUV4cHJlc3Npb24obm9kZSkKLSAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICBpc0xWYWx1ZSA9IG5vZGUuaXNMVmFsdWU7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgbm9kZS52aXNpdChuZXcgVGVybmFyeUV4cHJl
c3Npb25WaXNpdG9yKCkpOwotICAgICAgICByZXR1cm4gaXNMVmFsdWU7Ci0gICAgfQotCi0gICAg
bGV0IHByb2dyYW0gPSBkb1ByZXAoYGludCBmb28oKSB7IHJldHVybiAwIDwgMSA/IDAgOiAxOyB9
YCk7Ci0gICAgaWYgKHRlcm5hcnlFeHByZXNzaW9uSXNMVmFsdWUocHJvZ3JhbSkpCi0gICAgICAg
IHRocm93IG5ldyBFcnJvcihgci12YWx1ZSB0ZXJuYXJ5IGV4cHJlc3Npb24gaW5jb3JyZWN0bHkg
cGFyc2VkIGFzIGwtdmFsdWVgKTsKLQotICAgIHByb2dyYW0gPSBkb1ByZXAoYHZvaWQgZm9vKCkg
eyBpbnQgeDsgaW50IHk7ICgwIDwgMSA/IHggOiB5KSA9IDE7IH1gKTsKLSAgICBpZiAoIXRlcm5h
cnlFeHByZXNzaW9uSXNMVmFsdWUocHJvZ3JhbSkpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcihg
bC12YWx1ZSB0ZXJuYXJ5IGV4cHJlc3Npb24gaW5jb3JyZWN0bHkgcGFyc2VkIGFzIHItdmFsdWVg
KTsKLX0KLQogdGVzdHMubGl0ZXJhbEJvb2wgPSBmdW5jdGlvbigpIHsKICAgICBsZXQgcHJvZ3Jh
bSA9IGRvUHJlcCgidGVzdCBib29sIGZvbygpIHsgcmV0dXJuIHRydWU7IH0iKTsKICAgICBjaGVj
a0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIHRydWUpOwo=
</data>
<flag name="review"
          id="367886"
          type_id="1"
          status="+"
          setter="mmaxfield"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>350713</attachid>
            <date>2018-09-24 17:06:18 -0700</date>
            <delta_ts>2018-09-24 17:09:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189290-20180924170609.patch</filename>
            <type>text/plain</type>
            <size>8601</size>
            <attacher name="Thomas Denney">tdenney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2NDQzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOTNmOTczMzc3ODFlZmQzOTAwMmE2MTA2YTI2ZTlhZWFj
ZGVjZTA2OS4uNGY2Yjc2MDc2YjhiODAwZmRiYzcwM2EzMGNkMWNlNmI2YWMzNzk5NCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMy
IEBACisyMDE4LTA5LTIxICBUaG9tYXMgRGVubmV5ICA8dGRlbm5leUBhcHBsZS5jb20+CisKKyAg
ICAgICAgW1dITFNMXSBJdCBzaG91bGRu4oCZdCBiZSBwb3NzaWJsZSB0byB1c2UgdGVybmFyeSBl
eHByZXNzaW9ucyBhcyBsLXZhbHVlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTg5MjkwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgSXQgaXMgbm8gbG9uZ2VyIHBvc3NpYmxlIGZvciBhIHRlcm5hcnkgZXhw
cmVzc2lvbiB0byBiZSB0cmVhdGVkIGFzIGFuCisgICAgICAgIGwtdmFsdWUuIFRoaXMgcGF0Y2gg
YWRkcyBzZXZlcmFsIHRlc3QgY2FzZXMgdG8gdmVyaWZ5IHRoYXQgdGhpcyBpcyB0aGUKKyAgICAg
ICAgY2FzZS4KKworICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NoZWNrZXIuanM6
CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS52aXNpdFRlcm5hcnlFeHByZXNzaW9uKTogTm8g
bG9uZ2VyIGNoZWNrIGlzTFZhbHVlLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L05vcm1hbFVzZVByb3BlcnR5UmVzb2x2ZXI6CisgICAgICAgIChOb3JtYWxVc2VQcm9wZXJ0eVJl
c29sdmVyLnZpc2l0VGVybmFyeUV4cHJlc3Npb24pOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL1Jld3JpdGVyLmpzOgorICAgICAgICAoUmV3cml0ZXIucHJvdG90
eXBlLnZpc2l0VGVybmFyeUV4cHJlc3Npb24pOiBObyBsb25nZXIgY29weSBpc0xWYWx1ZS4KKyAg
ICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXJuYXJ5RXhwcmVzc2lvbi5qczoKKyAg
ICAgICAgKFRlcm5hcnlFeHByZXNzaW9uKToKKyAgICAgICAgKFRlcm5hcnlFeHByZXNzaW9uLnBy
b3RvdHlwZS5nZXQgZWxzZUV4cHJlc3Npb24pOgorICAgICAgICAoVGVybmFyeUV4cHJlc3Npb24u
cHJvdG90eXBlLmdldCBpc0xWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgIChUZXJuYXJ5RXhwcmVz
c2lvbi5wcm90b3R5cGUuc2V0IGlzTFZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzOgorICAgICAgICAodGVzdHMudGVybmFyeUV4cHJlc3Np
b24pOiBBZGQgY2hlY2tzIGZvciBmYWlsdXJlIGlmIGEgZmFpbHVyZSBpcyB1c2VkCisgICAgICAg
IGFzIGFuIGwtdmFsdWUuCisgICAgICAgICh0ZXJuYXJ5RXhwcmVzc2lvbklzTFZhbHVlLm5vZGUu
VGVybmFyeUV4cHJlc3Npb25WaXNpdG9yLnByb3RvdHlwZS52aXNpdFRlcm5hcnlFeHByZXNzaW9u
KTogRGVsZXRlZC4KKyAgICAgICAgKHRlcm5hcnlFeHByZXNzaW9uSXNMVmFsdWUubm9kZS5UZXJu
YXJ5RXhwcmVzc2lvblZpc2l0b3IpOiBEZWxldGVkLgorICAgICAgICAodGVzdHMudGVybmFyeUV4
cHJlc3Npb25Jc0xWYWx1ZSk6IERlbGV0ZWQuCisKIDIwMTgtMDktMjQgIEplciBOb2JsZSAgPGpl
ci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgU2hhcmVkQnVmZmVyIHNob3VsZCBoYXZlIGFu
IGVxdWFsaXR5IHRlc3QKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0NoZWNrZXIuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DaGVja2VyLmpzCmlu
ZGV4IDVmNTk4YjJlZTc1MjJiYmM4MTA1NDVjOTQ4ZDc3M2YyZTRmOTk0N2QuLjE0ZjlkMmI0Zjdh
MmViYjVkMjEwMzY2NTMyNzdiOTVhNDBkODZkMmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL0NoZWNrZXIuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvQ2hlY2tlci5qcwpAQCAtNjg4LDcgKzY4OCw2IEBAIGNsYXNzIENoZWNrZXIgZXh0ZW5k
cyBWaXNpdG9yIHsKICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVGVybmFyeSBleHByZXNz
aW9uIGVsc2UgaGFzIG5vIHR5cGU6ICIgKyBub2RlLmVsc2VFeHByZXNzaW9uKTsKICAgICAgICAg
aWYgKCFib2R5VHlwZS5lcXVhbHNXaXRoQ29tbWl0KGVsc2VUeXBlKSkKICAgICAgICAgICAgIHRo
cm93IG5ldyBXVHlwZUVycm9yKCJCb2R5IGFuZCBlbHNlIGNsYXVzZSBvZiB0ZXJuYXJ5IHN0YXRl
bWVudCBkb24ndCBoYXZlIHRoZSBzYW1lIHR5cGU6ICIgKyBub2RlKTsKLSAgICAgICAgbm9kZS5p
c0xWYWx1ZSA9IG5vZGUuYm9keUV4cHJlc3Npb24uaXNMVmFsdWUgJiYgbm9kZS5lbHNlRXhwcmVz
c2lvbi5pc0xWYWx1ZTsKICAgICAgICAgcmV0dXJuIGJvZHlUeXBlOwogICAgIH0KICAgICAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05vcm1hbFVzZVByb3BlcnR5
UmVzb2x2ZXIuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Ob3JtYWxVc2VQcm9w
ZXJ0eVJlc29sdmVyLmpzCmluZGV4IDlhZjE5ZWUwZTdlMmZhNGM1NmE0MGQwYmJiNTljZDdhOGM4
YWZlYTEuLmRmNDVkN2U0ZWIxMTQ5YmVmMzE1ODI5NjE1MTVmN2Y5NmY0ZTAxMTUgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05vcm1hbFVzZVByb3BlcnR5UmVzb2x2
ZXIuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTm9ybWFsVXNlUHJvcGVy
dHlSZXNvbHZlci5qcwpAQCAtMzQsMTIgKzM0LDUgQEAgY2xhc3MgTm9ybWFsVXNlUHJvcGVydHlS
ZXNvbHZlciBleHRlbmRzIFJld3JpdGVyIHsKICAgICB7CiAgICAgICAgIHJldHVybiBzdXBlci52
aXNpdEluZGV4RXhwcmVzc2lvbihub2RlKS5yZXdyaXRlQWZ0ZXJDbG9uaW5nKCk7CiAgICAgfQot
Ci0gICAgdmlzaXRUZXJuYXJ5RXhwcmVzc2lvbihub2RlKQotICAgIHsKLSAgICAgICAgbGV0IHJl
c3VsdCA9IHN1cGVyLnZpc2l0VGVybmFyeUV4cHJlc3Npb24obm9kZSk7Ci0gICAgICAgIHJlc3Vs
dC5pc0xWYWx1ZSA9IG5vZGUuaXNMVmFsdWU7Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAg
fQogfQogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXdyaXRl
ci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jld3JpdGVyLmpzCmluZGV4IDI2
N2U3YTMzMjM0YWYzNzJmMWUxMzRlZTYzZjk2Y2IxYzdmNzgxNjMuLjNhMTRiZGE4Y2RkMTlkNmVj
M2E5ZmI4MTYyMmNlZmNlMWI2YTE3NGEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1Jld3JpdGVyLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1Jld3JpdGVyLmpzCkBAIC0xNjcsOSArMTY3LDcgQEAgY2xhc3MgUmV3cml0ZXIgewogCiAgICAg
dmlzaXRUZXJuYXJ5RXhwcmVzc2lvbihub2RlKQogICAgIHsKLSAgICAgICAgbGV0IHJlc3VsdCA9
IG5ldyBUZXJuYXJ5RXhwcmVzc2lvbihub2RlLm9yaWdpbiwgbm9kZS5wcmVkaWNhdGUudmlzaXQo
dGhpcyksIG5vZGUuYm9keUV4cHJlc3Npb24udmlzaXQodGhpcyksIG5vZGUuZWxzZUV4cHJlc3Np
b24udmlzaXQodGhpcykpOwotICAgICAgICByZXN1bHQuaXNMVmFsdWUgPSBub2RlLmlzTFZhbHVl
OwotICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICByZXR1cm4gbmV3IFRlcm5hcnlFeHBy
ZXNzaW9uKG5vZGUub3JpZ2luLCBub2RlLnByZWRpY2F0ZS52aXNpdCh0aGlzKSwgbm9kZS5ib2R5
RXhwcmVzc2lvbi52aXNpdCh0aGlzKSwgbm9kZS5lbHNlRXhwcmVzc2lvbi52aXNpdCh0aGlzKSk7
CiAgICAgfQogICAgIAogICAgIF9oYW5kbGVQcm9wZXJ0eUFjY2Vzc0V4cHJlc3Npb24ocmVzdWx0
LCBub2RlKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVybmFy
eUV4cHJlc3Npb24uanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXJuYXJ5RXhw
cmVzc2lvbi5qcwppbmRleCBhNmY1YTAwMjFjODliOWI0OGU1NjYzOWNhNThmMWU1MTlmMjZmNjlh
Li5jMjI4MDU1YmE5Y2EzZGVhMzVmMDgyMjY1M2Q2MWQxNDYyOGQ4YTgzIDEwMDY0NAotLS0gYS9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXJuYXJ5RXhwcmVzc2lvbi5qcworKysgYi9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXJuYXJ5RXhwcmVzc2lvbi5qcwpAQCAtMzEs
MTUgKzMxLDE0IEBAIGNsYXNzIFRlcm5hcnlFeHByZXNzaW9uIGV4dGVuZHMgRXhwcmVzc2lvbiB7
CiAgICAgICAgIHRoaXMuX3ByZWRpY2F0ZSA9IHByZWRpY2F0ZTsKICAgICAgICAgdGhpcy5fYm9k
eUV4cHJlc3Npb24gPSBib2R5RXhwcmVzc2lvbjsKICAgICAgICAgdGhpcy5fZWxzZUV4cHJlc3Np
b24gPSBlbHNlRXhwcmVzc2lvbjsKLSAgICAgICAgdGhpcy5faXNMVmFsdWUgPSBudWxsOyAvLyBX
ZSB1c2UgbnVsbCB0byBpbmRpY2F0ZSB0aGF0IHdlIGRvbid0IGtub3cgeWV0LgogICAgIH0KICAg
ICAKICAgICBnZXQgcHJlZGljYXRlKCkgeyByZXR1cm4gdGhpcy5fcHJlZGljYXRlOyB9CiAgICAg
Z2V0IGJvZHlFeHByZXNzaW9uKCkgeyByZXR1cm4gdGhpcy5fYm9keUV4cHJlc3Npb247IH0KICAg
ICBnZXQgZWxzZUV4cHJlc3Npb24oKSB7IHJldHVybiB0aGlzLl9lbHNlRXhwcmVzc2lvbjsgfQot
ICAgIGdldCBpc0xWYWx1ZSgpIHsgcmV0dXJuIHRoaXMuX2lzTFZhbHVlOyB9Ci0gICAgc2V0IGlz
TFZhbHVlKHZhbHVlKSB7IHRoaXMuX2lzTFZhbHVlID0gdmFsdWU7IH0KICAgICAKKyAgICAvLyBM
aWtlIGluIEMsIGl0IGlzIG5vdCBuZXZlciBwb3NzaWJsZSB0byB1c2UgYSB0ZXJuYXJ5IGV4cHJl
c3Npb24gYXMgYW4gbFZhbHVlLgorCiAgICAgdG9TdHJpbmcoKQogICAgIHsKICAgICAgICAgcmV0
dXJuICIoIiArIHRoaXMucHJlZGljYXRlICsgIikgPyAoIiArIHRoaXMuYm9keUV4cHJlc3Npb24g
KyAiKSA6ICgiICsgdGhpcy5lbHNlRXhwcmVzc2lvbiArICIpIjsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9UZXN0LmpzCmluZGV4IGFlNzUwNzJiNjBmZjEwMjk5MjdhYTRjYmM3N2E4OWJhODQz
MWFjYjMuLmY5MWE3OTY3MjY2NzQ0OGNkZTYwNzgxNzAwN2JiMWU1YzU2MDk4NGQgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuanMKKysrIGIvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5qcwpAQCAtMzMzLDEzICszMzMsNiBAQCB0ZXN0cy50
ZXJuYXJ5RXhwcmVzc2lvbiA9IGZ1bmN0aW9uKCkgewogICAgICAgICB7CiAgICAgICAgICAgICBy
ZXR1cm4geCA8IDMgPyA0IDogNTsKICAgICAgICAgfQotICAgICAgICB0ZXN0IGludCBiYXIoaW50
IHgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGludCB5ID0gMTsKLSAgICAgICAgICAgIGludCB6
ID0gMjsKLSAgICAgICAgICAgICh4IDwgMyA/IHkgOiB6KSA9IDc7Ci0gICAgICAgICAgICByZXR1
cm4geTsKLSAgICAgICAgfQogICAgICAgICB0ZXN0IGludCBiYXooaW50IHgpCiAgICAgICAgIHsK
ICAgICAgICAgICAgIHJldHVybiB4IDwgMTAgPyAxMSA6IHggPCAxMiA/IDE0IDogMTU7CkBAIC0z
NTEsOCArMzQ0LDYgQEAgdGVzdHMudGVybmFyeUV4cHJlc3Npb24gPSBmdW5jdGlvbigpIHsKICAg
ICBgKTsKICAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlSW50KHByb2dyYW0sIDc2NyldKSwgNSk7CiAgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAyKV0pLCA0KTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFttYWtlSW50
KHByb2dyYW0sIDIpXSksIDcpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiYmFyIiwgW21ha2VJbnQocHJvZ3JhbSwgOCldKSwgMSk7CiAgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXoiLCBbbWFrZUludChwcm9ncmFtLCA4
KV0pLCAxMSk7CiAgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJi
YXoiLCBbbWFrZUludChwcm9ncmFtLCA5KV0pLCAxMSk7CiAgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXoiLCBbbWFrZUludChwcm9ncmFtLCAxMCldKSwgMTQp
OwpAQCAtMzY5LDYgKzM2MCwzOSBAQCB0ZXN0cy50ZXJuYXJ5RXhwcmVzc2lvbiA9IGZ1bmN0aW9u
KCkgewogICAgICAgICAgICAgfQogICAgICAgICBgKSwKICAgICAgICAgKGUpID0+IGUgaW5zdGFu
Y2VvZiBXVHlwZUVycm9yKTsKKyAgICBjaGVja0ZhaWwoCisgICAgICAgICgpID0+IGRvUHJlcChg
CisgICAgICAgICAgICBpbnQgZm9vKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBp
bnQgeDsKKyAgICAgICAgICAgICAgICBpbnQgeTsKKyAgICAgICAgICAgICAgICAoMCA8IDEgPyB4
IDogeSkgPSA0MjsKKyAgICAgICAgICAgICAgICByZXR1cm4geDsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgYCksCisgICAgICAgIChlKSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvciAmJiBlLm1l
c3NhZ2UuaW5kZXhPZigibm90IGFuIExWYWx1ZSIpICE9IC0xKTsKKyAgICBjaGVja0ZhaWwoCisg
ICAgICAgICgpID0+IGRvUHJlcChgCisgICAgICAgICAgICBpbnQgZm9vKCkKKyAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICBpbnQgeDsKKyAgICAgICAgICAgICAgICBpbnQgeTsKKyAgICAg
ICAgICAgICAgICB0aHJlYWQgaW50KiB6ID0gJigwIDwgMSA/IHggOiB5KTsKKyAgICAgICAgICAg
ICAgICByZXR1cm4gKno7CisgICAgICAgICAgICB9CisgICAgICAgIGApLAorICAgICAgICAoZSkg
PT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IgJiYgZS5tZXNzYWdlLmluZGV4T2YoIm5vdCBhbiBM
VmFsdWUiKSAhPSAtMSk7CisgICAgY2hlY2tGYWlsKAorICAgICAgICAoKSA9PiBkb1ByZXAoYAor
ICAgICAgICAgICAgaW50IGZvbygpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaW50
IHg7CisgICAgICAgICAgICAgICAgaW50IHk7CisgICAgICAgICAgICAgICAgdGhyZWFkIGludFtd
IHogPSBAKDAgPCAxID8geCA6IHkpOworICAgICAgICAgICAgICAgIHJldHVybiAqejsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgYCksCisgICAgICAgIChlKSA9PiBlIGluc3RhbmNlb2YgV1R5cGVF
cnJvciAmJiBlLm1lc3NhZ2UuaW5kZXhPZigibm90IGFuIExWYWx1ZSIpICE9IC0xKTsKICAgICBj
aGVja0ZhaWwoCiAgICAgICAgICgpID0+IGRvUHJlcChgCiAgICAgICAgICAgICBpbnQgZm9vKCkK
QEAgLTM4OSwyOSArNDEzLDYgQEAgdGVzdHMudGVybmFyeUV4cHJlc3Npb24gPSBmdW5jdGlvbigp
IHsKICAgICAgICAgKGUpID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yKTsKIH0KIAotdGVzdHMu
dGVybmFyeUV4cHJlc3Npb25Jc0xWYWx1ZSA9IGZ1bmN0aW9uKCkgewotICAgIGZ1bmN0aW9uIHRl
cm5hcnlFeHByZXNzaW9uSXNMVmFsdWUobm9kZSkKLSAgICB7Ci0gICAgICAgIGxldCBpc0xWYWx1
ZTsKLSAgICAgICAgY2xhc3MgVGVybmFyeUV4cHJlc3Npb25WaXNpdG9yIGV4dGVuZHMgVmlzaXRv
ciB7Ci0gICAgICAgICAgICB2aXNpdFRlcm5hcnlFeHByZXNzaW9uKG5vZGUpCi0gICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgaXNMVmFsdWUgPSBub2RlLmlzTFZhbHVlOwotICAgICAgICAg
ICAgfQotICAgICAgICB9Ci0gICAgICAgIG5vZGUudmlzaXQobmV3IFRlcm5hcnlFeHByZXNzaW9u
VmlzaXRvcigpKTsKLSAgICAgICAgcmV0dXJuIGlzTFZhbHVlOwotICAgIH0KLQotICAgIGxldCBw
cm9ncmFtID0gZG9QcmVwKGBpbnQgZm9vKCkgeyByZXR1cm4gMCA8IDEgPyAwIDogMTsgfWApOwot
ICAgIGlmICh0ZXJuYXJ5RXhwcmVzc2lvbklzTFZhbHVlKHByb2dyYW0pKQotICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoYHItdmFsdWUgdGVybmFyeSBleHByZXNzaW9uIGluY29ycmVjdGx5IHBhcnNl
ZCBhcyBsLXZhbHVlYCk7Ci0KLSAgICBwcm9ncmFtID0gZG9QcmVwKGB2b2lkIGZvbygpIHsgaW50
IHg7IGludCB5OyAoMCA8IDEgPyB4IDogeSkgPSAxOyB9YCk7Ci0gICAgaWYgKCF0ZXJuYXJ5RXhw
cmVzc2lvbklzTFZhbHVlKHByb2dyYW0pKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGwtdmFs
dWUgdGVybmFyeSBleHByZXNzaW9uIGluY29ycmVjdGx5IHBhcnNlZCBhcyByLXZhbHVlYCk7Ci19
Ci0KIHRlc3RzLmxpdGVyYWxCb29sID0gZnVuY3Rpb24oKSB7CiAgICAgbGV0IHByb2dyYW0gPSBk
b1ByZXAoInRlc3QgYm9vbCBmb28oKSB7IHJldHVybiB0cnVlOyB9Iik7CiAgICAgY2hlY2tCb29s
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCB0cnVlKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>350714</attachid>
            <date>2018-09-24 17:08:48 -0700</date>
            <delta_ts>2018-09-24 18:16:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189290-20180924170839.patch</filename>
            <type>text/plain</type>
            <size>8604</size>
            <attacher name="Thomas Denney">tdenney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2NDQzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOTNmOTczMzc3ODFlZmQzOTAwMmE2MTA2YTI2ZTlhZWFj
ZGVjZTA2OS4uNzcyYzgxYzk5YzRjZDRhZmZkNWM1N2Q0MDQ4NGZkZGU4MjE2ZTUwNyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMy
IEBACisyMDE4LTA5LTIxICBUaG9tYXMgRGVubmV5ICA8dGRlbm5leUBhcHBsZS5jb20+CisKKyAg
ICAgICAgW1dITFNMXSBJdCBzaG91bGRu4oCZdCBiZSBwb3NzaWJsZSB0byB1c2UgdGVybmFyeSBl
eHByZXNzaW9ucyBhcyBsLXZhbHVlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTg5MjkwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTXlsZXMgQy4gTWF4
ZmllbGQuCisKKyAgICAgICAgSXQgaXMgbm8gbG9uZ2VyIHBvc3NpYmxlIGZvciBhIHRlcm5hcnkg
ZXhwcmVzc2lvbiB0byBiZSB0cmVhdGVkIGFzIGFuCisgICAgICAgIGwtdmFsdWUuIFRoaXMgcGF0
Y2ggYWRkcyBzZXZlcmFsIHRlc3QgY2FzZXMgdG8gdmVyaWZ5IHRoYXQgdGhpcyBpcyB0aGUKKyAg
ICAgICAgY2FzZS4KKworICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NoZWNrZXIu
anM6CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS52aXNpdFRlcm5hcnlFeHByZXNzaW9uKTog
Tm8gbG9uZ2VyIGNoZWNrIGlzTFZhbHVlLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL05vcm1hbFVzZVByb3BlcnR5UmVzb2x2ZXI6CisgICAgICAgIChOb3JtYWxVc2VQcm9wZXJ0
eVJlc29sdmVyLnZpc2l0VGVybmFyeUV4cHJlc3Npb24pOiBEZWxldGVkLgorICAgICAgICAqIFdl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jld3JpdGVyLmpzOgorICAgICAgICAoUmV3cml0ZXIucHJv
dG90eXBlLnZpc2l0VGVybmFyeUV4cHJlc3Npb24pOiBObyBsb25nZXIgY29weSBpc0xWYWx1ZS4K
KyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXJuYXJ5RXhwcmVzc2lvbi5qczoK
KyAgICAgICAgKFRlcm5hcnlFeHByZXNzaW9uKToKKyAgICAgICAgKFRlcm5hcnlFeHByZXNzaW9u
LnByb3RvdHlwZS5nZXQgZWxzZUV4cHJlc3Npb24pOgorICAgICAgICAoVGVybmFyeUV4cHJlc3Np
b24ucHJvdG90eXBlLmdldCBpc0xWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgIChUZXJuYXJ5RXhw
cmVzc2lvbi5wcm90b3R5cGUuc2V0IGlzTFZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzOgorICAgICAgICAodGVzdHMudGVybmFyeUV4cHJl
c3Npb24pOiBBZGQgY2hlY2tzIGZvciBmYWlsdXJlIGlmIGEgZmFpbHVyZSBpcyB1c2VkCisgICAg
ICAgIGFzIGFuIGwtdmFsdWUuCisgICAgICAgICh0ZXJuYXJ5RXhwcmVzc2lvbklzTFZhbHVlLm5v
ZGUuVGVybmFyeUV4cHJlc3Npb25WaXNpdG9yLnByb3RvdHlwZS52aXNpdFRlcm5hcnlFeHByZXNz
aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKHRlcm5hcnlFeHByZXNzaW9uSXNMVmFsdWUubm9kZS5U
ZXJuYXJ5RXhwcmVzc2lvblZpc2l0b3IpOiBEZWxldGVkLgorICAgICAgICAodGVzdHMudGVybmFy
eUV4cHJlc3Npb25Jc0xWYWx1ZSk6IERlbGV0ZWQuCisKIDIwMTgtMDktMjQgIEplciBOb2JsZSAg
PGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgU2hhcmVkQnVmZmVyIHNob3VsZCBoYXZl
IGFuIGVxdWFsaXR5IHRlc3QKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL0NoZWNrZXIuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DaGVja2VyLmpz
CmluZGV4IDVmNTk4YjJlZTc1MjJiYmM4MTA1NDVjOTQ4ZDc3M2YyZTRmOTk0N2QuLjE0ZjlkMmI0
ZjdhMmViYjVkMjEwMzY2NTMyNzdiOTVhNDBkODZkMmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL0NoZWNrZXIuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvQ2hlY2tlci5qcwpAQCAtNjg4LDcgKzY4OCw2IEBAIGNsYXNzIENoZWNrZXIgZXh0
ZW5kcyBWaXNpdG9yIHsKICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVGVybmFyeSBleHBy
ZXNzaW9uIGVsc2UgaGFzIG5vIHR5cGU6ICIgKyBub2RlLmVsc2VFeHByZXNzaW9uKTsKICAgICAg
ICAgaWYgKCFib2R5VHlwZS5lcXVhbHNXaXRoQ29tbWl0KGVsc2VUeXBlKSkKICAgICAgICAgICAg
IHRocm93IG5ldyBXVHlwZUVycm9yKCJCb2R5IGFuZCBlbHNlIGNsYXVzZSBvZiB0ZXJuYXJ5IHN0
YXRlbWVudCBkb24ndCBoYXZlIHRoZSBzYW1lIHR5cGU6ICIgKyBub2RlKTsKLSAgICAgICAgbm9k
ZS5pc0xWYWx1ZSA9IG5vZGUuYm9keUV4cHJlc3Npb24uaXNMVmFsdWUgJiYgbm9kZS5lbHNlRXhw
cmVzc2lvbi5pc0xWYWx1ZTsKICAgICAgICAgcmV0dXJuIGJvZHlUeXBlOwogICAgIH0KICAgICAK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05vcm1hbFVzZVByb3Bl
cnR5UmVzb2x2ZXIuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Ob3JtYWxVc2VQ
cm9wZXJ0eVJlc29sdmVyLmpzCmluZGV4IDlhZjE5ZWUwZTdlMmZhNGM1NmE0MGQwYmJiNTljZDdh
OGM4YWZlYTEuLmRmNDVkN2U0ZWIxMTQ5YmVmMzE1ODI5NjE1MTVmN2Y5NmY0ZTAxMTUgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05vcm1hbFVzZVByb3BlcnR5UmVz
b2x2ZXIuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTm9ybWFsVXNlUHJv
cGVydHlSZXNvbHZlci5qcwpAQCAtMzQsMTIgKzM0LDUgQEAgY2xhc3MgTm9ybWFsVXNlUHJvcGVy
dHlSZXNvbHZlciBleHRlbmRzIFJld3JpdGVyIHsKICAgICB7CiAgICAgICAgIHJldHVybiBzdXBl
ci52aXNpdEluZGV4RXhwcmVzc2lvbihub2RlKS5yZXdyaXRlQWZ0ZXJDbG9uaW5nKCk7CiAgICAg
fQotCi0gICAgdmlzaXRUZXJuYXJ5RXhwcmVzc2lvbihub2RlKQotICAgIHsKLSAgICAgICAgbGV0
IHJlc3VsdCA9IHN1cGVyLnZpc2l0VGVybmFyeUV4cHJlc3Npb24obm9kZSk7Ci0gICAgICAgIHJl
c3VsdC5pc0xWYWx1ZSA9IG5vZGUuaXNMVmFsdWU7Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0g
ICAgfQogfQogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXdy
aXRlci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jld3JpdGVyLmpzCmluZGV4
IDI2N2U3YTMzMjM0YWYzNzJmMWUxMzRlZTYzZjk2Y2IxYzdmNzgxNjMuLjNhMTRiZGE4Y2RkMTlk
NmVjM2E5ZmI4MTYyMmNlZmNlMWI2YTE3NGEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1Jld3JpdGVyLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1Jld3JpdGVyLmpzCkBAIC0xNjcsOSArMTY3LDcgQEAgY2xhc3MgUmV3cml0ZXIgewogCiAg
ICAgdmlzaXRUZXJuYXJ5RXhwcmVzc2lvbihub2RlKQogICAgIHsKLSAgICAgICAgbGV0IHJlc3Vs
dCA9IG5ldyBUZXJuYXJ5RXhwcmVzc2lvbihub2RlLm9yaWdpbiwgbm9kZS5wcmVkaWNhdGUudmlz
aXQodGhpcyksIG5vZGUuYm9keUV4cHJlc3Npb24udmlzaXQodGhpcyksIG5vZGUuZWxzZUV4cHJl
c3Npb24udmlzaXQodGhpcykpOwotICAgICAgICByZXN1bHQuaXNMVmFsdWUgPSBub2RlLmlzTFZh
bHVlOwotICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICByZXR1cm4gbmV3IFRlcm5hcnlF
eHByZXNzaW9uKG5vZGUub3JpZ2luLCBub2RlLnByZWRpY2F0ZS52aXNpdCh0aGlzKSwgbm9kZS5i
b2R5RXhwcmVzc2lvbi52aXNpdCh0aGlzKSwgbm9kZS5lbHNlRXhwcmVzc2lvbi52aXNpdCh0aGlz
KSk7CiAgICAgfQogICAgIAogICAgIF9oYW5kbGVQcm9wZXJ0eUFjY2Vzc0V4cHJlc3Npb24ocmVz
dWx0LCBub2RlKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVy
bmFyeUV4cHJlc3Npb24uanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXJuYXJ5
RXhwcmVzc2lvbi5qcwppbmRleCBhNmY1YTAwMjFjODliOWI0OGU1NjYzOWNhNThmMWU1MTlmMjZm
NjlhLi5jMjI4MDU1YmE5Y2EzZGVhMzVmMDgyMjY1M2Q2MWQxNDYyOGQ4YTgzIDEwMDY0NAotLS0g
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXJuYXJ5RXhwcmVzc2lvbi5qcworKysg
Yi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXJuYXJ5RXhwcmVzc2lvbi5qcwpAQCAt
MzEsMTUgKzMxLDE0IEBAIGNsYXNzIFRlcm5hcnlFeHByZXNzaW9uIGV4dGVuZHMgRXhwcmVzc2lv
biB7CiAgICAgICAgIHRoaXMuX3ByZWRpY2F0ZSA9IHByZWRpY2F0ZTsKICAgICAgICAgdGhpcy5f
Ym9keUV4cHJlc3Npb24gPSBib2R5RXhwcmVzc2lvbjsKICAgICAgICAgdGhpcy5fZWxzZUV4cHJl
c3Npb24gPSBlbHNlRXhwcmVzc2lvbjsKLSAgICAgICAgdGhpcy5faXNMVmFsdWUgPSBudWxsOyAv
LyBXZSB1c2UgbnVsbCB0byBpbmRpY2F0ZSB0aGF0IHdlIGRvbid0IGtub3cgeWV0LgogICAgIH0K
ICAgICAKICAgICBnZXQgcHJlZGljYXRlKCkgeyByZXR1cm4gdGhpcy5fcHJlZGljYXRlOyB9CiAg
ICAgZ2V0IGJvZHlFeHByZXNzaW9uKCkgeyByZXR1cm4gdGhpcy5fYm9keUV4cHJlc3Npb247IH0K
ICAgICBnZXQgZWxzZUV4cHJlc3Npb24oKSB7IHJldHVybiB0aGlzLl9lbHNlRXhwcmVzc2lvbjsg
fQotICAgIGdldCBpc0xWYWx1ZSgpIHsgcmV0dXJuIHRoaXMuX2lzTFZhbHVlOyB9Ci0gICAgc2V0
IGlzTFZhbHVlKHZhbHVlKSB7IHRoaXMuX2lzTFZhbHVlID0gdmFsdWU7IH0KICAgICAKKyAgICAv
LyBMaWtlIGluIEMsIGl0IGlzIG5vdCBuZXZlciBwb3NzaWJsZSB0byB1c2UgYSB0ZXJuYXJ5IGV4
cHJlc3Npb24gYXMgYW4gbFZhbHVlLgorCiAgICAgdG9TdHJpbmcoKQogICAgIHsKICAgICAgICAg
cmV0dXJuICIoIiArIHRoaXMucHJlZGljYXRlICsgIikgPyAoIiArIHRoaXMuYm9keUV4cHJlc3Np
b24gKyAiKSA6ICgiICsgdGhpcy5lbHNlRXhwcmVzc2lvbiArICIpIjsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9UZXN0LmpzCmluZGV4IGFlNzUwNzJiNjBmZjEwMjk5MjdhYTRjYmM3N2E4OWJh
ODQzMWFjYjMuLmY5MWE3OTY3MjY2NzQ0OGNkZTYwNzgxNzAwN2JiMWU1YzU2MDk4NGQgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuanMKKysrIGIvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5qcwpAQCAtMzMzLDEzICszMzMsNiBAQCB0ZXN0
cy50ZXJuYXJ5RXhwcmVzc2lvbiA9IGZ1bmN0aW9uKCkgewogICAgICAgICB7CiAgICAgICAgICAg
ICByZXR1cm4geCA8IDMgPyA0IDogNTsKICAgICAgICAgfQotICAgICAgICB0ZXN0IGludCBiYXIo
aW50IHgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGludCB5ID0gMTsKLSAgICAgICAgICAgIGlu
dCB6ID0gMjsKLSAgICAgICAgICAgICh4IDwgMyA/IHkgOiB6KSA9IDc7Ci0gICAgICAgICAgICBy
ZXR1cm4geTsKLSAgICAgICAgfQogICAgICAgICB0ZXN0IGludCBiYXooaW50IHgpCiAgICAgICAg
IHsKICAgICAgICAgICAgIHJldHVybiB4IDwgMTAgPyAxMSA6IHggPCAxMiA/IDE0IDogMTU7CkBA
IC0zNTEsOCArMzQ0LDYgQEAgdGVzdHMudGVybmFyeUV4cHJlc3Npb24gPSBmdW5jdGlvbigpIHsK
ICAgICBgKTsKICAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlSW50KHByb2dyYW0sIDc2NyldKSwgNSk7CiAgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAyKV0pLCA0KTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFttYWtl
SW50KHByb2dyYW0sIDIpXSksIDcpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiYmFyIiwgW21ha2VJbnQocHJvZ3JhbSwgOCldKSwgMSk7CiAgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXoiLCBbbWFrZUludChwcm9ncmFt
LCA4KV0pLCAxMSk7CiAgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJiYXoiLCBbbWFrZUludChwcm9ncmFtLCA5KV0pLCAxMSk7CiAgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXoiLCBbbWFrZUludChwcm9ncmFtLCAxMCldKSwg
MTQpOwpAQCAtMzY5LDYgKzM2MCwzOSBAQCB0ZXN0cy50ZXJuYXJ5RXhwcmVzc2lvbiA9IGZ1bmN0
aW9uKCkgewogICAgICAgICAgICAgfQogICAgICAgICBgKSwKICAgICAgICAgKGUpID0+IGUgaW5z
dGFuY2VvZiBXVHlwZUVycm9yKTsKKyAgICBjaGVja0ZhaWwoCisgICAgICAgICgpID0+IGRvUHJl
cChgCisgICAgICAgICAgICBpbnQgZm9vKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICBpbnQgeDsKKyAgICAgICAgICAgICAgICBpbnQgeTsKKyAgICAgICAgICAgICAgICAoMCA8IDEg
PyB4IDogeSkgPSA0MjsKKyAgICAgICAgICAgICAgICByZXR1cm4geDsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgYCksCisgICAgICAgIChlKSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvciAmJiBl
Lm1lc3NhZ2UuaW5kZXhPZigibm90IGFuIExWYWx1ZSIpICE9IC0xKTsKKyAgICBjaGVja0ZhaWwo
CisgICAgICAgICgpID0+IGRvUHJlcChgCisgICAgICAgICAgICBpbnQgZm9vKCkKKyAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICBpbnQgeDsKKyAgICAgICAgICAgICAgICBpbnQgeTsKKyAg
ICAgICAgICAgICAgICB0aHJlYWQgaW50KiB6ID0gJigwIDwgMSA/IHggOiB5KTsKKyAgICAgICAg
ICAgICAgICByZXR1cm4gKno7CisgICAgICAgICAgICB9CisgICAgICAgIGApLAorICAgICAgICAo
ZSkgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IgJiYgZS5tZXNzYWdlLmluZGV4T2YoIm5vdCBh
biBMVmFsdWUiKSAhPSAtMSk7CisgICAgY2hlY2tGYWlsKAorICAgICAgICAoKSA9PiBkb1ByZXAo
YAorICAgICAgICAgICAgaW50IGZvbygpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
aW50IHg7CisgICAgICAgICAgICAgICAgaW50IHk7CisgICAgICAgICAgICAgICAgdGhyZWFkIGlu
dFtdIHogPSBAKDAgPCAxID8geCA6IHkpOworICAgICAgICAgICAgICAgIHJldHVybiAqejsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgYCksCisgICAgICAgIChlKSA9PiBlIGluc3RhbmNlb2YgV1R5
cGVFcnJvciAmJiBlLm1lc3NhZ2UuaW5kZXhPZigibm90IGFuIExWYWx1ZSIpICE9IC0xKTsKICAg
ICBjaGVja0ZhaWwoCiAgICAgICAgICgpID0+IGRvUHJlcChgCiAgICAgICAgICAgICBpbnQgZm9v
KCkKQEAgLTM4OSwyOSArNDEzLDYgQEAgdGVzdHMudGVybmFyeUV4cHJlc3Npb24gPSBmdW5jdGlv
bigpIHsKICAgICAgICAgKGUpID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yKTsKIH0KIAotdGVz
dHMudGVybmFyeUV4cHJlc3Npb25Jc0xWYWx1ZSA9IGZ1bmN0aW9uKCkgewotICAgIGZ1bmN0aW9u
IHRlcm5hcnlFeHByZXNzaW9uSXNMVmFsdWUobm9kZSkKLSAgICB7Ci0gICAgICAgIGxldCBpc0xW
YWx1ZTsKLSAgICAgICAgY2xhc3MgVGVybmFyeUV4cHJlc3Npb25WaXNpdG9yIGV4dGVuZHMgVmlz
aXRvciB7Ci0gICAgICAgICAgICB2aXNpdFRlcm5hcnlFeHByZXNzaW9uKG5vZGUpCi0gICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgaXNMVmFsdWUgPSBub2RlLmlzTFZhbHVlOwotICAgICAg
ICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIG5vZGUudmlzaXQobmV3IFRlcm5hcnlFeHByZXNz
aW9uVmlzaXRvcigpKTsKLSAgICAgICAgcmV0dXJuIGlzTFZhbHVlOwotICAgIH0KLQotICAgIGxl
dCBwcm9ncmFtID0gZG9QcmVwKGBpbnQgZm9vKCkgeyByZXR1cm4gMCA8IDEgPyAwIDogMTsgfWAp
OwotICAgIGlmICh0ZXJuYXJ5RXhwcmVzc2lvbklzTFZhbHVlKHByb2dyYW0pKQotICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoYHItdmFsdWUgdGVybmFyeSBleHByZXNzaW9uIGluY29ycmVjdGx5IHBh
cnNlZCBhcyBsLXZhbHVlYCk7Ci0KLSAgICBwcm9ncmFtID0gZG9QcmVwKGB2b2lkIGZvbygpIHsg
aW50IHg7IGludCB5OyAoMCA8IDEgPyB4IDogeSkgPSAxOyB9YCk7Ci0gICAgaWYgKCF0ZXJuYXJ5
RXhwcmVzc2lvbklzTFZhbHVlKHByb2dyYW0pKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGwt
dmFsdWUgdGVybmFyeSBleHByZXNzaW9uIGluY29ycmVjdGx5IHBhcnNlZCBhcyByLXZhbHVlYCk7
Ci19Ci0KIHRlc3RzLmxpdGVyYWxCb29sID0gZnVuY3Rpb24oKSB7CiAgICAgbGV0IHByb2dyYW0g
PSBkb1ByZXAoInRlc3QgYm9vbCBmb28oKSB7IHJldHVybiB0cnVlOyB9Iik7CiAgICAgY2hlY2tC
b29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCB0cnVlKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>