<?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>165588</bug_id>
          
          <creation_ts>2016-12-07 20:14:55 -0800</creation_ts>
          <short_desc>Gamepad support shows wrong values for PS4 controllers (D-pad is missing)</short_desc>
          <delta_ts>2017-01-26 11:23:22 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</component>
          <version>Safari Technology Preview</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Gregg Tavares">gman</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1257566</commentid>
    <comment_count>0</comment_count>
    <who name="Gregg Tavares">gman</who>
    <bug_when>2016-12-07 20:14:55 -0800</bug_when>
    <thetext>Release 19 (Safari 10.1, WebKit 12603.1.14.2)

If you plug in a PS4 controller and go to 

http://html5gamepad.com/

You&apos;ll see there is no info for the DPad

Firefox 50 gets this correct. Chrome 57 also gets it correct. (Chrome 54 does not)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1257741</commentid>
    <comment_count>1</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-12-08 10:10:05 -0800</bug_when>
    <thetext>&lt;rdar://problem/29578619&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270222</commentid>
    <comment_count>2</comment_count>
      <attachid>299815</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-01-26 10:26:37 -0800</bug_when>
    <thetext>Created attachment 299815
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270226</commentid>
    <comment_count>3</comment_count>
      <attachid>299815</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-01-26 10:39:21 -0800</bug_when>
    <thetext>Comment on attachment 299815
Patch

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

&gt; Source/WebCore/platform/gamepad/mac/HIDGamepad.cpp:216
&gt; +    *button++ = value &lt; 2 || value == 7 ? 1.0 : 0.0;

This looks like there are no bounds checks.  Please do this another way.

&gt; Source/WebCore/platform/gamepad/mac/HIDGamepad.h:138
&gt; +    Vector&lt;std::unique_ptr&lt;HIDGamepadDPad&gt;&gt; m_dPads;

these could be UniqueRef.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270232</commentid>
    <comment_count>4</comment_count>
      <attachid>299817</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-01-26 11:00:04 -0800</bug_when>
    <thetext>Created attachment 299817
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270251</commentid>
    <comment_count>5</comment_count>
      <attachid>299824</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-01-26 11:16:30 -0800</bug_when>
    <thetext>Created attachment 299824
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270253</commentid>
    <comment_count>6</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-01-26 11:23:22 -0800</bug_when>
    <thetext>https://trac.webkit.org/changeset/211220</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299815</attachid>
            <date>2017-01-26 10:26:37 -0800</date>
            <delta_ts>2017-01-26 11:00:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165588-20170126102435.patch</filename>
            <type>text/plain</type>
            <size>8262</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExMDY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjgwMTA5ZjZkN2IyNzBk
Y2E4MmRkNDA3NDcyNWYxOTkzNzYzMzhhMy4uNzYzOWMzMTZhNWM2NmNkNmFmNDE3YjlhZWFmMzlj
MjNhYmVjNTIyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE3LTAxLTI2ICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBHYW1lcGFkIHN1cHBvcnQg
c2hvd3Mgd3JvbmcgdmFsdWVzIGZvciBQUzQgY29udHJvbGxlcnMgKEQtcGFkIGlzIG1pc3Npbmcp
LgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjk1Nzg2MTk+IGFuZCBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY1NTg4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChDdXJyZW50bHkgdW5hYmxlIHRv
IHRlc3QgSElEIGJhY2tlbmQgZGlyZWN0bHkpCisKKyAgICAgICAgRFBhZHMgcmVwb3J0IHRoZWly
IEhJRCB0eXBlIGFzICJhIGJ1dHRvbiIsIGJ1dCB0aGVpciBISUQgdXNhZ2UgaXMgIkhhdHN3aXRj
aCIuCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBhIG5ldyBlbGVtZW50IHR5cGUgdGhhdCBtYXBz
IGEgImhhdHN3aXRjaCIgdmFsdWUgdG8gNCBhZGRpdGlvbmFsIGJ1dHRvbnMuCisgICAgICAgIAor
ICAgICAgICAqIHBsYXRmb3JtL2dhbWVwYWQvbWFjL0hJREdhbWVwYWQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SElER2FtZXBhZDo6aW5pdEVsZW1lbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OkhJ
REdhbWVwYWQ6OmluaXRFbGVtZW50c0Zyb21BcnJheSk6CisgICAgICAgIChXZWJDb3JlOjpISURH
YW1lcGFkOjptYXliZUFkZERQYWQpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsbEluQnV0dG9uVmFs
dWVzKToKKyAgICAgICAgKFdlYkNvcmU6OkhJREdhbWVwYWQ6OnZhbHVlQ2hhbmdlZCk6CisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9nYW1lcGFkL21hYy9ISURHYW1lcGFkLmg6CisgICAgICAgIChXZWJD
b3JlOjpISURHYW1lcGFkRWxlbWVudDo6aXNEUGFkKToKKyAgICAgICAgKFdlYkNvcmU6OkhJREdh
bWVwYWREUGFkOjpISURHYW1lcGFkRFBhZCk6CisgICAgICAgIChXZWJDb3JlOjpISURHYW1lcGFk
RFBhZDo6bm9ybWFsaXplZFZhbHVlKToKKwogMjAxNy0wMS0yMyAgQWxleCBDaHJpc3RlbnNlbiAg
PGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFVSTFBhcnNlciBzaG91bGQgZmFp
bCB0byBwYXJzZSBwZXJjZW50LWVuY29kZWQgaW52YWxpZCBVVEYtOCBzZXF1ZW5jZXMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvbWFjL0hJREdhbWVwYWQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9tYWMvSElER2FtZXBhZC5jcHAKaW5k
ZXggODM3YTM5OGQzMjc0NzU0YjU4OGQzOGExYTJkZTA2YzIyNWYzNTllMi4uZjg4MzZmMzlhYzQ3
NWQ1YTkzNmI0ZTMzY2JkMWE0YWJmYWRmMGVhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ2FtZXBhZC9tYWMvSElER2FtZXBhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ2FtZXBhZC9tYWMvSElER2FtZXBhZC5jcHAKQEAgLTc5LDExICs3OSwxNCBAQCB2
b2lkIEhJREdhbWVwYWQ6OmluaXRFbGVtZW50cygpCiAgICAgfSk7CiAKICAgICBtX2F4aXNWYWx1
ZXMucmVzaXplKG1fYXhlcy5zaXplKCkpOwotICAgIG1fYnV0dG9uVmFsdWVzLnJlc2l6ZShtX2J1
dHRvbnMuc2l6ZSgpKTsKKyAgICBtX2J1dHRvblZhbHVlcy5yZXNpemUobV9idXR0b25zLnNpemUo
KSArIChtX2RQYWRzLnNpemUoKSAqIDQpKTsKIAogICAgIGZvciAoYXV0byYgYnV0dG9uIDogbV9i
dXR0b25zKQogICAgICAgICBnZXRDdXJyZW50VmFsdWVGb3JFbGVtZW50KCpidXR0b24pOwogCisg
ICAgZm9yIChhdXRvJiBkUGFkIDogbV9kUGFkcykKKyAgICAgICAgZ2V0Q3VycmVudFZhbHVlRm9y
RWxlbWVudCgqZFBhZCk7CisKICAgICBmb3IgKGF1dG8mIGF4aXMgOiBtX2F4ZXMpCiAgICAgICAg
IGdldEN1cnJlbnRWYWx1ZUZvckVsZW1lbnQoKmF4aXMpOwogfQpAQCAtMTA0LDggKzEwNywxMiBA
QCB2b2lkIEhJREdhbWVwYWQ6OmluaXRFbGVtZW50c0Zyb21BcnJheShDRkFycmF5UmVmIGVsZW1l
bnRzKQogCiAgICAgICAgIElPSElERWxlbWVudFR5cGUgdHlwZSA9IElPSElERWxlbWVudEdldFR5
cGUoZWxlbWVudCk7CiAKLSAgICAgICAgaWYgKCh0eXBlID09IGtJT0hJREVsZW1lbnRUeXBlSW5w
dXRfTWlzYyB8fCB0eXBlID09IGtJT0hJREVsZW1lbnRUeXBlSW5wdXRfQnV0dG9uKSAmJiBtYXli
ZUFkZEJ1dHRvbihlbGVtZW50KSkKLSAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBpZiAo
KHR5cGUgPT0ga0lPSElERWxlbWVudFR5cGVJbnB1dF9NaXNjIHx8IHR5cGUgPT0ga0lPSElERWxl
bWVudFR5cGVJbnB1dF9CdXR0b24pKSB7CisgICAgICAgICAgICBpZiAobWF5YmVBZGRCdXR0b24o
ZWxlbWVudCkpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBpZiAobWF5
YmVBZGREUGFkKGVsZW1lbnQpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9
CiAKICAgICAgICAgaWYgKCh0eXBlID09IGtJT0hJREVsZW1lbnRUeXBlSW5wdXRfTWlzYyB8fCB0
eXBlID09IGtJT0hJREVsZW1lbnRUeXBlSW5wdXRfQXhpcykgJiYgbWF5YmVBZGRBeGlzKGVsZW1l
bnQpKQogICAgICAgICAgICAgY29udGludWU7CkBAIC0xMzYsNiArMTQzLDI3IEBAIGJvb2wgSElE
R2FtZXBhZDo6bWF5YmVBZGRCdXR0b24oSU9ISURFbGVtZW50UmVmIGVsZW1lbnQpCiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKK2Jvb2wgSElER2FtZXBhZDo6bWF5YmVBZGREUGFkKElPSElERWxlbWVu
dFJlZiBlbGVtZW50KQoreworICAgIHVpbnQzMl90IHVzYWdlUGFnZSA9IElPSElERWxlbWVudEdl
dFVzYWdlUGFnZShlbGVtZW50KTsKKyAgICBpZiAodXNhZ2VQYWdlICE9IGtISURQYWdlX0dlbmVy
aWNEZXNrdG9wKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICB1aW50MzJfdCB1c2FnZSA9
IElPSElERWxlbWVudEdldFVzYWdlKGVsZW1lbnQpOworICAgIGlmICghdXNhZ2UgfHwgdXNhZ2Ug
IT0ga0hJRFVzYWdlX0dEX0hhdHN3aXRjaCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
Q0ZJbmRleCBtaW4gPSBJT0hJREVsZW1lbnRHZXRMb2dpY2FsTWluKGVsZW1lbnQpOworICAgIENG
SW5kZXggbWF4ID0gSU9ISURFbGVtZW50R2V0TG9naWNhbE1heChlbGVtZW50KTsKKworICAgIG1f
ZFBhZHMuYXBwZW5kKHN0ZDo6bWFrZV91bmlxdWU8SElER2FtZXBhZERQYWQ+KG1pbiwgbWF4LCBl
bGVtZW50KSk7CisKKyAgICBJT0hJREVsZW1lbnRDb29raWUgY29va2llID0gSU9ISURFbGVtZW50
R2V0Q29va2llKGVsZW1lbnQpOworICAgIG1fZWxlbWVudE1hcC5zZXQoY29va2llLCBtX2RQYWRz
Lmxhc3QoKS5nZXQoKSk7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogYm9vbCBISURHYW1lcGFk
OjptYXliZUFkZEF4aXMoSU9ISURFbGVtZW50UmVmIGVsZW1lbnQpCiB7CiAgICAgdWludDMyX3Qg
dXNhZ2VQYWdlID0gSU9ISURFbGVtZW50R2V0VXNhZ2VQYWdlKGVsZW1lbnQpOwpAQCAtMTU4LDYg
KzE4NiwzOSBAQCBib29sIEhJREdhbWVwYWQ6Om1heWJlQWRkQXhpcyhJT0hJREVsZW1lbnRSZWYg
ZWxlbWVudCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorc3RhdGljIHZvaWQgZmlsbEluQnV0dG9u
VmFsdWVzKGludCB2YWx1ZSwgZG91YmxlJiBmaXJzdEJ1dHRvbikKK3sKKyAgICAvLyBTdGFuZGFy
ZCBEUGFkcyBoYXZlIDggcG9zc2libGUgcG9zaXRpb24gdmFsdWVzLCBtb3ZpbmcgYXJvdW5kIGEg
Y2lyY2xlOgorICAgIC8vIDAgLSBVcAorICAgIC8vIDEgLSBVcCArIHJpZ2h0CisgICAgLy8gMiAt
IFJpZ2h0CisgICAgLy8gMyAtIERvd24gKyByaWdodAorICAgIC8vIDQgLSBEb3duCisgICAgLy8g
NSAtIERvd24gKyBsZWZ0CisgICAgLy8gNiAtIExlZnQKKyAgICAvLyA3IC0gVXAgYW5kIExlZnQK
KyAgICAvLyBUaGVzZSA4IHBvc2l0aW9ucyBhcmUgbWFwcGVkIG9uIHRvIDQgYnV0dG9uIHBvc2l0
aW9uczoKKyAgICAvLyAwIC0gVXAKKyAgICAvLyAxIC0gRG93bgorICAgIC8vIDIgLSBMZWZ0Cisg
ICAgLy8gMyAtIFJpZ2h0CisKKyAgICBkb3VibGUqIGJ1dHRvbiA9ICZmaXJzdEJ1dHRvbjsKKwor
ICAgIC8vIEhhbmRsZSBhbiBpbnZhbGlkIGlucHV0IHZhbHVlIHRoYXQgd2UgZG9uJ3Qga25vdyBo
b3cgdG8gaW50ZXJwcmV0LgorICAgIGlmICh2YWx1ZSA8IDAgfHwgdmFsdWUgPiA3KSB7CisgICAg
ICAgICpidXR0b24rKyA9IDAuMDsKKyAgICAgICAgKmJ1dHRvbisrID0gMC4wOworICAgICAgICAq
YnV0dG9uKysgPSAwLjA7CisgICAgICAgICpidXR0b24gPSAwLjA7CisgICAgfQorCisgICAgKmJ1
dHRvbisrID0gdmFsdWUgPCAyIHx8IHZhbHVlID09IDcgPyAxLjAgOiAwLjA7CisgICAgKmJ1dHRv
bisrID0gdmFsdWUgPiAyICYmIHZhbHVlIDwgNiA/IDEuMCA6IDAuMDsKKyAgICAqYnV0dG9uKysg
PSB2YWx1ZSA+IDQgPyAxLjAgOiAwLjA7CisgICAgKmJ1dHRvbiA9IHZhbHVlID4gMCAmJiB2YWx1
ZSA8IDQgPyAxLjAgOiAwLjA7Cit9CisKIEhJRElucHV0VHlwZSBISURHYW1lcGFkOjp2YWx1ZUNo
YW5nZWQoSU9ISURWYWx1ZVJlZiB2YWx1ZSkKIHsKICAgICBJT0hJREVsZW1lbnRDb29raWUgY29v
a2llID0gSU9ISURFbGVtZW50R2V0Q29va2llKElPSElEVmFsdWVHZXRFbGVtZW50KHZhbHVlKSk7
CkBAIC0xNzEsMTMgKzIzMiwyNyBAQCBISURJbnB1dFR5cGUgSElER2FtZXBhZDo6dmFsdWVDaGFu
Z2VkKElPSElEVmFsdWVSZWYgdmFsdWUpCiAKICAgICBpZiAoZWxlbWVudC0+aXNCdXR0b24oKSkg
ewogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9idXR0b25zLnNpemUoKTsgKytp
KSB7Ci0gICAgICAgICAgICBpZiAobV9idXR0b25zW2ldLmdldCgpID09IGVsZW1lbnQpCisgICAg
ICAgICAgICBpZiAobV9idXR0b25zW2ldLmdldCgpID09IGVsZW1lbnQpIHsKICAgICAgICAgICAg
ICAgICBtX2J1dHRvblZhbHVlc1tpXSA9IGVsZW1lbnQtPm5vcm1hbGl6ZWRWYWx1ZSgpOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfSBlbHNl
IGlmIChlbGVtZW50LT5pc0F4aXMoKSkgewogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgbV9heGVzLnNpemUoKTsgKytpKSB7Ci0gICAgICAgICAgICBpZiAobV9heGVzW2ldLmdldCgp
ID09IGVsZW1lbnQpCisgICAgICAgICAgICBpZiAobV9heGVzW2ldLmdldCgpID09IGVsZW1lbnQp
IHsKICAgICAgICAgICAgICAgICBtX2F4aXNWYWx1ZXNbaV0gPSBlbGVtZW50LT5ub3JtYWxpemVk
VmFsdWUoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fQorICAgIH0gZWxzZSBpZiAoZWxlbWVudC0+aXNEUGFkKCkpIHsKKyAgICAgICAgaW50IGludFZh
bHVlID0gSU9ISURWYWx1ZUdldEludGVnZXJWYWx1ZSh2YWx1ZSkgLSBlbGVtZW50LT5taW47Cisg
ICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2RQYWRzLnNpemUoKTsgKytpKSB7Cisg
ICAgICAgICAgICBpZiAobV9kUGFkc1tpXS5nZXQoKSAhPSBlbGVtZW50KQorICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICAvLyBFYWNoIERQYWQgcmVwcmVzZW50cyA0IGJ1
dHRvbiB2YWx1ZXMgd2hpY2ggYXJlIHRhY2tlZCBvbiB0byB0aGUgZW5kIG9mIHRoZSB2YWx1ZXMg
ZnJvbSBub24tRFBhZCBidXR0b25zLgorICAgICAgICAgICAgdW5zaWduZWQgZmlyc3RCdXR0b25W
YWx1ZSA9IG1fYnV0dG9ucy5zaXplKCkgKyBpICogNDsKKyAgICAgICAgICAgIGZpbGxJbkJ1dHRv
blZhbHVlcyhpbnRWYWx1ZSwgbV9idXR0b25WYWx1ZXNbZmlyc3RCdXR0b25WYWx1ZV0pOwogICAg
ICAgICB9CiAgICAgfSBlbHNlCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9tYWMvSElER2FtZXBhZC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9tYWMvSElER2FtZXBhZC5oCmluZGV4IDQz
YWU3NDk5ZWJkZGU0NDBhZjk5MDRlYWViZTU4NGEwN2RmMmNmYjAuLjNkNmY2MGQ1NDViMjk2NGFl
ZTkwNThmZWM4M2UzYTA2MDZiOGM3NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dhbWVwYWQvbWFjL0hJREdhbWVwYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9nYW1lcGFkL21hYy9ISURHYW1lcGFkLmgKQEAgLTU0LDYgKzU0LDcgQEAgc3RydWN0IEhJREdh
bWVwYWRFbGVtZW50IHsKIAogICAgIHZpcnR1YWwgYm9vbCBpc0J1dHRvbigpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzQXhpcygpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzRFBhZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CiAKICAgICB2aXJ0dWFsIGRvdWJsZSBub3JtYWxpemVkVmFsdWUoKSA9IDA7CiB9OwpAQCAtNjcs
NyArNjgsNyBAQCBzdHJ1Y3QgSElER2FtZXBhZEJ1dHRvbiA6IEhJREdhbWVwYWRFbGVtZW50IHsK
IAogICAgIHVpbnQzMl90IHByaW9yaXR5OwogCi0gICAgYm9vbCBpc0J1dHRvbigpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICBib29sIGlzQnV0dG9uKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgLy8gQnV0dG9ucyBub3JtYWxpemUgdG8gdGhlIHJhbmdl
ICgwLjApIC0gKDEuMCkKICAgICBkb3VibGUgbm9ybWFsaXplZFZhbHVlKCkgb3ZlcnJpZGUKQEAg
LTgyLDcgKzgzLDcgQEAgc3RydWN0IEhJREdhbWVwYWRBeGlzIDogSElER2FtZXBhZEVsZW1lbnQg
ewogICAgIHsKICAgICB9CiAKLSAgICBib29sIGlzQXhpcygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIHRydWU7IH0KKyAgICBib29sIGlzQXhpcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7
IH0KIAogICAgIC8vIEF4ZXMgbm9ybWFsaXplIHRvIHRoZSByYW5nZSAoLTEuMCkgLSAoMS4wKQog
ICAgIGRvdWJsZSBub3JtYWxpemVkVmFsdWUoKSBvdmVycmlkZQpAQCAtOTEsNiArOTIsMTcgQEAg
c3RydWN0IEhJREdhbWVwYWRBeGlzIDogSElER2FtZXBhZEVsZW1lbnQgewogICAgIH0KIH07CiAK
K3N0cnVjdCBISURHYW1lcGFkRFBhZCA6IEhJREdhbWVwYWRFbGVtZW50IHsKKyAgICBISURHYW1l
cGFkRFBhZChkb3VibGUgbWluLCBkb3VibGUgbWF4LCBJT0hJREVsZW1lbnRSZWYgZWxlbWVudCkK
KyAgICAgICAgOiBISURHYW1lcGFkRWxlbWVudChtaW4sIG1heCwgZWxlbWVudCkKKyAgICB7Cisg
ICAgfQorCisgICAgYm9vbCBpc0RQYWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisK
KyAgICB2aXJ0dWFsIGRvdWJsZSBub3JtYWxpemVkVmFsdWUoKSB7IFJFTEVBU0VfQVNTRVJUX05P
VF9SRUFDSEVEKCk7IH0KK307CisKIGVudW0gY2xhc3MgSElESW5wdXRUeXBlIHsKICAgICBCdXR0
b25QcmVzcywKICAgICBOb3RBQnV0dG9uUHJlc3MsCkBAIC0xMTIsNiArMTI0LDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIGluaXRFbGVtZW50c0Zyb21BcnJheShDRkFycmF5UmVmKTsKIAogICAgIGJv
b2wgbWF5YmVBZGRCdXR0b24oSU9ISURFbGVtZW50UmVmKTsKKyAgICBib29sIG1heWJlQWRkRFBh
ZChJT0hJREVsZW1lbnRSZWYpOwogICAgIGJvb2wgbWF5YmVBZGRBeGlzKElPSElERWxlbWVudFJl
Zik7CiAKICAgICB2b2lkIGdldEN1cnJlbnRWYWx1ZUZvckVsZW1lbnQoY29uc3QgSElER2FtZXBh
ZEVsZW1lbnQmKTsKQEAgLTEyMiw2ICsxMzUsNyBAQCBwcml2YXRlOgogCiAgICAgVmVjdG9yPHN0
ZDo6dW5pcXVlX3B0cjxISURHYW1lcGFkQnV0dG9uPj4gbV9idXR0b25zOwogICAgIFZlY3Rvcjxz
dGQ6OnVuaXF1ZV9wdHI8SElER2FtZXBhZEF4aXM+PiBtX2F4ZXM7CisgICAgVmVjdG9yPHN0ZDo6
dW5pcXVlX3B0cjxISURHYW1lcGFkRFBhZD4+IG1fZFBhZHM7CiAgICAgVmVjdG9yPGRvdWJsZT4g
bV9idXR0b25WYWx1ZXM7CiAgICAgVmVjdG9yPGRvdWJsZT4gbV9heGlzVmFsdWVzOwogfTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299817</attachid>
            <date>2017-01-26 11:00:04 -0800</date>
            <delta_ts>2017-01-26 11:16:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165588-20170126105802.patch</filename>
            <type>text/plain</type>
            <size>9795</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExMDY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjgwMTA5ZjZkN2IyNzBk
Y2E4MmRkNDA3NDcyNWYxOTkzNzYzMzhhMy4uMTZiMDgwZWFlMmEzNjRkYmUwODc0M2JiZDkwMTNi
YjU2NzA4ZjQ5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE3LTAxLTI2ICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBHYW1lcGFkIHN1cHBvcnQg
c2hvd3Mgd3JvbmcgdmFsdWVzIGZvciBQUzQgY29udHJvbGxlcnMgKEQtcGFkIGlzIG1pc3Npbmcp
LgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjk1Nzg2MTk+IGFuZCBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY1NTg4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChDdXJyZW50bHkgdW5hYmxlIHRv
IHRlc3QgSElEIGJhY2tlbmQgZGlyZWN0bHkpCisKKyAgICAgICAgRFBhZHMgcmVwb3J0IHRoZWly
IEhJRCB0eXBlIGFzICJhIGJ1dHRvbiIsIGJ1dCB0aGVpciBISUQgdXNhZ2UgaXMgIkhhdHN3aXRj
aCIuCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBhIG5ldyBlbGVtZW50IHR5cGUgdGhhdCBtYXBz
IGEgImhhdHN3aXRjaCIgdmFsdWUgdG8gNCBhZGRpdGlvbmFsIGJ1dHRvbnMuCisgICAgICAgIAor
ICAgICAgICAqIHBsYXRmb3JtL2dhbWVwYWQvbWFjL0hJREdhbWVwYWQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SElER2FtZXBhZDo6aW5pdEVsZW1lbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OkhJ
REdhbWVwYWQ6OmluaXRFbGVtZW50c0Zyb21BcnJheSk6CisgICAgICAgIChXZWJDb3JlOjpISURH
YW1lcGFkOjptYXliZUFkZEJ1dHRvbik6CisgICAgICAgIChXZWJDb3JlOjpISURHYW1lcGFkOjpt
YXliZUFkZERQYWQpOgorICAgICAgICAoV2ViQ29yZTo6SElER2FtZXBhZDo6bWF5YmVBZGRBeGlz
KToKKyAgICAgICAgKFdlYkNvcmU6OmZpbGxJbkJ1dHRvblZhbHVlcyk6CisgICAgICAgIChXZWJD
b3JlOjpISURHYW1lcGFkOjp2YWx1ZUNoYW5nZWQpOgorCisgICAgICAgICogcGxhdGZvcm0vZ2Ft
ZXBhZC9tYWMvSElER2FtZXBhZC5oOgorICAgICAgICAoV2ViQ29yZTo6SElER2FtZXBhZEVsZW1l
bnQ6OmlzRFBhZCk6CisgICAgICAgIChXZWJDb3JlOjpISURHYW1lcGFkRFBhZDo6SElER2FtZXBh
ZERQYWQpOgorICAgICAgICAoV2ViQ29yZTo6SElER2FtZXBhZERQYWQ6Om5vcm1hbGl6ZWRWYWx1
ZSk6CisKIDIwMTctMDEtMjMgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0
Lm9yZz4KIAogICAgICAgICBVUkxQYXJzZXIgc2hvdWxkIGZhaWwgdG8gcGFyc2UgcGVyY2VudC1l
bmNvZGVkIGludmFsaWQgVVRGLTggc2VxdWVuY2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9nYW1lcGFkL21hYy9ISURHYW1lcGFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dhbWVwYWQvbWFjL0hJREdhbWVwYWQuY3BwCmluZGV4IDgzN2EzOThkMzI3NDc1NGI1
ODhkMzhhMWEyZGUwNmMyMjVmMzU5ZTIuLmE2MjVhYWIwYjQzYjRiNWMxZWE0Mzk3MWRiYmZlMTQ4
OTMxNzcxY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvbWFj
L0hJREdhbWVwYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvbWFj
L0hJREdhbWVwYWQuY3BwCkBAIC03OSwxMyArNzksMTYgQEAgdm9pZCBISURHYW1lcGFkOjppbml0
RWxlbWVudHMoKQogICAgIH0pOwogCiAgICAgbV9heGlzVmFsdWVzLnJlc2l6ZShtX2F4ZXMuc2l6
ZSgpKTsKLSAgICBtX2J1dHRvblZhbHVlcy5yZXNpemUobV9idXR0b25zLnNpemUoKSk7CisgICAg
bV9idXR0b25WYWx1ZXMucmVzaXplKG1fYnV0dG9ucy5zaXplKCkgKyAobV9kUGFkcy5zaXplKCkg
KiA0KSk7CiAKICAgICBmb3IgKGF1dG8mIGJ1dHRvbiA6IG1fYnV0dG9ucykKLSAgICAgICAgZ2V0
Q3VycmVudFZhbHVlRm9yRWxlbWVudCgqYnV0dG9uKTsKKyAgICAgICAgZ2V0Q3VycmVudFZhbHVl
Rm9yRWxlbWVudChidXR0b24uZ2V0KCkpOworCisgICAgZm9yIChhdXRvJiBkUGFkIDogbV9kUGFk
cykKKyAgICAgICAgZ2V0Q3VycmVudFZhbHVlRm9yRWxlbWVudChkUGFkLmdldCgpKTsKIAogICAg
IGZvciAoYXV0byYgYXhpcyA6IG1fYXhlcykKLSAgICAgICAgZ2V0Q3VycmVudFZhbHVlRm9yRWxl
bWVudCgqYXhpcyk7CisgICAgICAgIGdldEN1cnJlbnRWYWx1ZUZvckVsZW1lbnQoYXhpcy5nZXQo
KSk7CiB9CiAKIHZvaWQgSElER2FtZXBhZDo6aW5pdEVsZW1lbnRzRnJvbUFycmF5KENGQXJyYXlS
ZWYgZWxlbWVudHMpCkBAIC0xMDQsOCArMTA3LDEyIEBAIHZvaWQgSElER2FtZXBhZDo6aW5pdEVs
ZW1lbnRzRnJvbUFycmF5KENGQXJyYXlSZWYgZWxlbWVudHMpCiAKICAgICAgICAgSU9ISURFbGVt
ZW50VHlwZSB0eXBlID0gSU9ISURFbGVtZW50R2V0VHlwZShlbGVtZW50KTsKIAotICAgICAgICBp
ZiAoKHR5cGUgPT0ga0lPSElERWxlbWVudFR5cGVJbnB1dF9NaXNjIHx8IHR5cGUgPT0ga0lPSElE
RWxlbWVudFR5cGVJbnB1dF9CdXR0b24pICYmIG1heWJlQWRkQnV0dG9uKGVsZW1lbnQpKQotICAg
ICAgICAgICAgY29udGludWU7CisgICAgICAgIGlmICgodHlwZSA9PSBrSU9ISURFbGVtZW50VHlw
ZUlucHV0X01pc2MgfHwgdHlwZSA9PSBrSU9ISURFbGVtZW50VHlwZUlucHV0X0J1dHRvbikpIHsK
KyAgICAgICAgICAgIGlmIChtYXliZUFkZEJ1dHRvbihlbGVtZW50KSkKKyAgICAgICAgICAgICAg
ICBjb250aW51ZTsKKyAgICAgICAgICAgIGlmIChtYXliZUFkZERQYWQoZWxlbWVudCkpCisgICAg
ICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KIAogICAgICAgICBpZiAoKHR5cGUgPT0g
a0lPSElERWxlbWVudFR5cGVJbnB1dF9NaXNjIHx8IHR5cGUgPT0ga0lPSElERWxlbWVudFR5cGVJ
bnB1dF9BeGlzKSAmJiBtYXliZUFkZEF4aXMoZWxlbWVudCkpCiAgICAgICAgICAgICBjb250aW51
ZTsKQEAgLTEyOCwxMCArMTM1LDMxIEBAIGJvb2wgSElER2FtZXBhZDo6bWF5YmVBZGRCdXR0b24o
SU9ISURFbGVtZW50UmVmIGVsZW1lbnQpCiAgICAgQ0ZJbmRleCBtaW4gPSBJT0hJREVsZW1lbnRH
ZXRMb2dpY2FsTWluKGVsZW1lbnQpOwogICAgIENGSW5kZXggbWF4ID0gSU9ISURFbGVtZW50R2V0
TG9naWNhbE1heChlbGVtZW50KTsKIAotICAgIG1fYnV0dG9ucy5hcHBlbmQoc3RkOjptYWtlX3Vu
aXF1ZTxISURHYW1lcGFkQnV0dG9uPih1c2FnZSwgbWluLCBtYXgsIGVsZW1lbnQpKTsKKyAgICBt
X2J1dHRvbnMuYXBwZW5kKG1ha2VVbmlxdWVSZWY8SElER2FtZXBhZEJ1dHRvbj4odXNhZ2UsIG1p
biwgbWF4LCBlbGVtZW50KSk7CiAKICAgICBJT0hJREVsZW1lbnRDb29raWUgY29va2llID0gSU9I
SURFbGVtZW50R2V0Q29va2llKGVsZW1lbnQpOwotICAgIG1fZWxlbWVudE1hcC5zZXQoY29va2ll
LCBtX2J1dHRvbnMubGFzdCgpLmdldCgpKTsKKyAgICBtX2VsZW1lbnRNYXAuc2V0KGNvb2tpZSwg
Jm1fYnV0dG9ucy5sYXN0KCkuZ2V0KCkpOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wg
SElER2FtZXBhZDo6bWF5YmVBZGREUGFkKElPSElERWxlbWVudFJlZiBlbGVtZW50KQoreworICAg
IHVpbnQzMl90IHVzYWdlUGFnZSA9IElPSElERWxlbWVudEdldFVzYWdlUGFnZShlbGVtZW50KTsK
KyAgICBpZiAodXNhZ2VQYWdlICE9IGtISURQYWdlX0dlbmVyaWNEZXNrdG9wKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICB1aW50MzJfdCB1c2FnZSA9IElPSElERWxlbWVudEdldFVzYWdl
KGVsZW1lbnQpOworICAgIGlmICghdXNhZ2UgfHwgdXNhZ2UgIT0ga0hJRFVzYWdlX0dEX0hhdHN3
aXRjaCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgQ0ZJbmRleCBtaW4gPSBJT0hJREVs
ZW1lbnRHZXRMb2dpY2FsTWluKGVsZW1lbnQpOworICAgIENGSW5kZXggbWF4ID0gSU9ISURFbGVt
ZW50R2V0TG9naWNhbE1heChlbGVtZW50KTsKKworICAgIG1fZFBhZHMuYXBwZW5kKG1ha2VVbmlx
dWVSZWY8SElER2FtZXBhZERQYWQ+KG1pbiwgbWF4LCBlbGVtZW50KSk7CisKKyAgICBJT0hJREVs
ZW1lbnRDb29raWUgY29va2llID0gSU9ISURFbGVtZW50R2V0Q29va2llKGVsZW1lbnQpOworICAg
IG1fZWxlbWVudE1hcC5zZXQoY29va2llLCAmbV9kUGFkcy5sYXN0KCkuZ2V0KCkpOwogCiAgICAg
cmV0dXJuIHRydWU7CiB9CkBAIC0xNTAsMTQgKzE3OCw0NiBAQCBib29sIEhJREdhbWVwYWQ6Om1h
eWJlQWRkQXhpcyhJT0hJREVsZW1lbnRSZWYgZWxlbWVudCkKICAgICBDRkluZGV4IG1pbiA9IElP
SElERWxlbWVudEdldFBoeXNpY2FsTWluKGVsZW1lbnQpOwogICAgIENGSW5kZXggbWF4ID0gSU9I
SURFbGVtZW50R2V0UGh5c2ljYWxNYXgoZWxlbWVudCk7CiAKLSAgICBtX2F4ZXMuYXBwZW5kKHN0
ZDo6bWFrZV91bmlxdWU8SElER2FtZXBhZEF4aXM+KG1pbiwgbWF4LCBlbGVtZW50KSk7CisgICAg
bV9heGVzLmFwcGVuZChtYWtlVW5pcXVlUmVmPEhJREdhbWVwYWRBeGlzPihtaW4sIG1heCwgZWxl
bWVudCkpOwogCiAgICAgSU9ISURFbGVtZW50Q29va2llIGNvb2tpZSA9IElPSElERWxlbWVudEdl
dENvb2tpZShlbGVtZW50KTsKLSAgICBtX2VsZW1lbnRNYXAuc2V0KGNvb2tpZSwgbV9heGVzLmxh
c3QoKS5nZXQoKSk7CisgICAgbV9lbGVtZW50TWFwLnNldChjb29raWUsICZtX2F4ZXMubGFzdCgp
LmdldCgpKTsKIAogICAgIHJldHVybiB0cnVlOwogfQogCitzdGF0aWMgdm9pZCBmaWxsSW5CdXR0
b25WYWx1ZXMoaW50IHZhbHVlLCBkb3VibGUmIGJ1dHRvbjAsIGRvdWJsZSYgYnV0dG9uMSwgZG91
YmxlJiBidXR0b24yLCBkb3VibGUmIGJ1dHRvbjMpCit7CisgICAgLy8gU3RhbmRhcmQgRFBhZHMg
aGF2ZSA4IHBvc3NpYmxlIHBvc2l0aW9uIHZhbHVlcywgbW92aW5nIGFyb3VuZCBhIGNpcmNsZToK
KyAgICAvLyAwIC0gVXAKKyAgICAvLyAxIC0gVXAgKyByaWdodAorICAgIC8vIDIgLSBSaWdodAor
ICAgIC8vIDMgLSBEb3duICsgcmlnaHQKKyAgICAvLyA0IC0gRG93bgorICAgIC8vIDUgLSBEb3du
ICsgbGVmdAorICAgIC8vIDYgLSBMZWZ0CisgICAgLy8gNyAtIFVwIGFuZCBMZWZ0CisgICAgLy8g
VGhlc2UgOCBwb3NpdGlvbnMgYXJlIG1hcHBlZCBvbiB0byA0IGJ1dHRvbiBwb3NpdGlvbnM6Cisg
ICAgLy8gMCAtIFVwCisgICAgLy8gMSAtIERvd24KKyAgICAvLyAyIC0gTGVmdAorICAgIC8vIDMg
LSBSaWdodAorCisgICAgaWYgKHZhbHVlIDwgMCB8fCB2YWx1ZSA+IDcpIHsKKyAgICAgICAgLy8g
SGFuZGxlIGFuIGludmFsaWQgaW5wdXQgdmFsdWUgdGhhdCB3ZSBkb24ndCBrbm93IGhvdyB0byBp
bnRlcnByZXQuCisgICAgICAgIGJ1dHRvbjAgPSAwLjA7CisgICAgICAgIGJ1dHRvbjEgPSAwLjA7
CisgICAgICAgIGJ1dHRvbjIgPSAwLjA7CisgICAgICAgIGJ1dHRvbjMgPSAwLjA7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBidXR0b24wID0gdmFsdWUgPCAyIHx8IHZhbHVlID09IDcg
PyAxLjAgOiAwLjA7CisgICAgYnV0dG9uMSA9IHZhbHVlID4gMiAmJiB2YWx1ZSA8IDYgPyAxLjAg
OiAwLjA7CisgICAgYnV0dG9uMiA9IHZhbHVlID4gNCA/IDEuMCA6IDAuMDsKKyAgICBidXR0b24z
ID0gdmFsdWUgPiAwICYmIHZhbHVlIDwgNCA/IDEuMCA6IDAuMDsKK30KKwogSElESW5wdXRUeXBl
IEhJREdhbWVwYWQ6OnZhbHVlQ2hhbmdlZChJT0hJRFZhbHVlUmVmIHZhbHVlKQogewogICAgIElP
SElERWxlbWVudENvb2tpZSBjb29raWUgPSBJT0hJREVsZW1lbnRHZXRDb29raWUoSU9ISURWYWx1
ZUdldEVsZW1lbnQodmFsdWUpKTsKQEAgLTE3MSwxMyArMjMxLDMxIEBAIEhJRElucHV0VHlwZSBI
SURHYW1lcGFkOjp2YWx1ZUNoYW5nZWQoSU9ISURWYWx1ZVJlZiB2YWx1ZSkKIAogICAgIGlmIChl
bGVtZW50LT5pc0J1dHRvbigpKSB7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBt
X2J1dHRvbnMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgICAgIGlmIChtX2J1dHRvbnNbaV0uZ2V0
KCkgPT0gZWxlbWVudCkKKyAgICAgICAgICAgIGlmICgmbV9idXR0b25zW2ldLmdldCgpID09IGVs
ZW1lbnQpIHsKICAgICAgICAgICAgICAgICBtX2J1dHRvblZhbHVlc1tpXSA9IGVsZW1lbnQtPm5v
cm1hbGl6ZWRWYWx1ZSgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQog
ICAgICAgICB9CiAgICAgfSBlbHNlIGlmIChlbGVtZW50LT5pc0F4aXMoKSkgewogICAgICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9heGVzLnNpemUoKTsgKytpKSB7Ci0gICAgICAgICAg
ICBpZiAobV9heGVzW2ldLmdldCgpID09IGVsZW1lbnQpCisgICAgICAgICAgICBpZiAoJm1fYXhl
c1tpXS5nZXQoKSA9PSBlbGVtZW50KSB7CiAgICAgICAgICAgICAgICAgbV9heGlzVmFsdWVzW2ld
ID0gZWxlbWVudC0+bm9ybWFsaXplZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKGVsZW1lbnQtPmlzRFBhZCgp
KSB7CisgICAgICAgIGludCBpbnRWYWx1ZSA9IElPSElEVmFsdWVHZXRJbnRlZ2VyVmFsdWUodmFs
dWUpIC0gZWxlbWVudC0+bWluOworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9k
UGFkcy5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgaWYgKCZtX2RQYWRzW2ldLmdldCgpICE9
IGVsZW1lbnQpCisgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgIC8vIEVh
Y2ggRFBhZCByZXByZXNlbnRzIDQgYnV0dG9uIHZhbHVlcyB3aGljaCBhcmUgdGFja2VkIG9uIHRv
IHRoZSBlbmQgb2YgdGhlIHZhbHVlcyBmcm9tIG5vbi1EUGFkIGJ1dHRvbnMuCisgICAgICAgICAg
ICB1bnNpZ25lZCBmaXJzdEJ1dHRvblZhbHVlID0gbV9idXR0b25zLnNpemUoKSArIGkgKiA0Owor
CisgICAgICAgICAgICBBU1NFUlQobV9idXR0b25WYWx1ZXMuc2l6ZSgpID4gZmlyc3RCdXR0b25W
YWx1ZSArIDMpOworICAgICAgICAgICAgZG91YmxlKiBidXR0b24wID0gJm1fYnV0dG9uVmFsdWVz
W2ZpcnN0QnV0dG9uVmFsdWVdOworCisgICAgICAgICAgICBmaWxsSW5CdXR0b25WYWx1ZXMoaW50
VmFsdWUsICpidXR0b24wLCAqKGJ1dHRvbjAgKyAxKSwgKihidXR0b24wICsgMiksICooYnV0dG9u
MCArIDMpKTsKICAgICAgICAgfQogICAgIH0gZWxzZQogICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvbWFjL0hJ
REdhbWVwYWQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvbWFjL0hJREdhbWVw
YWQuaAppbmRleCA0M2FlNzQ5OWViZGRlNDQwYWY5OTA0ZWFlYmU1ODRhMDdkZjJjZmIwLi4xNWYw
NGM3MDhlOTAwN2JiNGRhZGVlNTQzNWMzNTdmMDJmNTMxYzkzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL21hYy9ISURHYW1lcGFkLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9tYWMvSElER2FtZXBhZC5oCkBAIC0zMSw2ICszMSw3IEBA
CiAjaW5jbHVkZSA8SU9LaXQvaGlkL0lPSElERGV2aWNlLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hN
YXAuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisjaW5jbHVkZSA8d3RmL1VuaXF1ZVJl
Zi5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTU0LDYgKzU1LDcgQEAgc3RydWN0IEhJ
REdhbWVwYWRFbGVtZW50IHsKIAogICAgIHZpcnR1YWwgYm9vbCBpc0J1dHRvbigpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzQXhpcygpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzRFBhZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CiAKICAgICB2aXJ0dWFsIGRvdWJsZSBub3JtYWxpemVkVmFsdWUoKSA9IDA7CiB9OwpAQCAt
NjcsNyArNjksNyBAQCBzdHJ1Y3QgSElER2FtZXBhZEJ1dHRvbiA6IEhJREdhbWVwYWRFbGVtZW50
IHsKIAogICAgIHVpbnQzMl90IHByaW9yaXR5OwogCi0gICAgYm9vbCBpc0J1dHRvbigpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICBib29sIGlzQnV0dG9uKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgLy8gQnV0dG9ucyBub3JtYWxpemUgdG8gdGhlIHJh
bmdlICgwLjApIC0gKDEuMCkKICAgICBkb3VibGUgbm9ybWFsaXplZFZhbHVlKCkgb3ZlcnJpZGUK
QEAgLTgyLDcgKzg0LDcgQEAgc3RydWN0IEhJREdhbWVwYWRBeGlzIDogSElER2FtZXBhZEVsZW1l
bnQgewogICAgIHsKICAgICB9CiAKLSAgICBib29sIGlzQXhpcygpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIHRydWU7IH0KKyAgICBib29sIGlzQXhpcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRy
dWU7IH0KIAogICAgIC8vIEF4ZXMgbm9ybWFsaXplIHRvIHRoZSByYW5nZSAoLTEuMCkgLSAoMS4w
KQogICAgIGRvdWJsZSBub3JtYWxpemVkVmFsdWUoKSBvdmVycmlkZQpAQCAtOTEsNiArOTMsMTcg
QEAgc3RydWN0IEhJREdhbWVwYWRBeGlzIDogSElER2FtZXBhZEVsZW1lbnQgewogICAgIH0KIH07
CiAKK3N0cnVjdCBISURHYW1lcGFkRFBhZCA6IEhJREdhbWVwYWRFbGVtZW50IHsKKyAgICBISURH
YW1lcGFkRFBhZChkb3VibGUgbWluLCBkb3VibGUgbWF4LCBJT0hJREVsZW1lbnRSZWYgZWxlbWVu
dCkKKyAgICAgICAgOiBISURHYW1lcGFkRWxlbWVudChtaW4sIG1heCwgZWxlbWVudCkKKyAgICB7
CisgICAgfQorCisgICAgYm9vbCBpc0RQYWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9
CisKKyAgICB2aXJ0dWFsIGRvdWJsZSBub3JtYWxpemVkVmFsdWUoKSB7IFJFTEVBU0VfQVNTRVJU
X05PVF9SRUFDSEVEKCk7IH0KK307CisKIGVudW0gY2xhc3MgSElESW5wdXRUeXBlIHsKICAgICBC
dXR0b25QcmVzcywKICAgICBOb3RBQnV0dG9uUHJlc3MsCkBAIC0xMTIsNiArMTI1LDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGluaXRFbGVtZW50c0Zyb21BcnJheShDRkFycmF5UmVmKTsKIAogICAg
IGJvb2wgbWF5YmVBZGRCdXR0b24oSU9ISURFbGVtZW50UmVmKTsKKyAgICBib29sIG1heWJlQWRk
RFBhZChJT0hJREVsZW1lbnRSZWYpOwogICAgIGJvb2wgbWF5YmVBZGRBeGlzKElPSElERWxlbWVu
dFJlZik7CiAKICAgICB2b2lkIGdldEN1cnJlbnRWYWx1ZUZvckVsZW1lbnQoY29uc3QgSElER2Ft
ZXBhZEVsZW1lbnQmKTsKQEAgLTEyMCw4ICsxMzQsOSBAQCBwcml2YXRlOgogCiAgICAgSGFzaE1h
cDxJT0hJREVsZW1lbnRDb29raWUsIEhJREdhbWVwYWRFbGVtZW50Kj4gbV9lbGVtZW50TWFwOwog
Ci0gICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxISURHYW1lcGFkQnV0dG9uPj4gbV9idXR0b25z
OwotICAgIFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8SElER2FtZXBhZEF4aXM+PiBtX2F4ZXM7Cisg
ICAgVmVjdG9yPFVuaXF1ZVJlZjxISURHYW1lcGFkQnV0dG9uPj4gbV9idXR0b25zOworICAgIFZl
Y3RvcjxVbmlxdWVSZWY8SElER2FtZXBhZEF4aXM+PiBtX2F4ZXM7CisgICAgVmVjdG9yPFVuaXF1
ZVJlZjxISURHYW1lcGFkRFBhZD4+IG1fZFBhZHM7CiAgICAgVmVjdG9yPGRvdWJsZT4gbV9idXR0
b25WYWx1ZXM7CiAgICAgVmVjdG9yPGRvdWJsZT4gbV9heGlzVmFsdWVzOwogfTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299824</attachid>
            <date>2017-01-26 11:16:30 -0800</date>
            <delta_ts>2017-01-26 11:20:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165588-20170126111428.patch</filename>
            <type>text/plain</type>
            <size>9819</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExMDY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjgwMTA5ZjZkN2IyNzBk
Y2E4MmRkNDA3NDcyNWYxOTkzNzYzMzhhMy4uMTZiMDgwZWFlMmEzNjRkYmUwODc0M2JiZDkwMTNi
YjU2NzA4ZjQ5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE3LTAxLTI2ICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBHYW1lcGFkIHN1cHBvcnQg
c2hvd3Mgd3JvbmcgdmFsdWVzIGZvciBQUzQgY29udHJvbGxlcnMgKEQtcGFkIGlzIG1pc3Npbmcp
LgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjk1Nzg2MTk+IGFuZCBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY1NTg4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChDdXJyZW50bHkgdW5hYmxlIHRv
IHRlc3QgSElEIGJhY2tlbmQgZGlyZWN0bHkpCisKKyAgICAgICAgRFBhZHMgcmVwb3J0IHRoZWly
IEhJRCB0eXBlIGFzICJhIGJ1dHRvbiIsIGJ1dCB0aGVpciBISUQgdXNhZ2UgaXMgIkhhdHN3aXRj
aCIuCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBhIG5ldyBlbGVtZW50IHR5cGUgdGhhdCBtYXBz
IGEgImhhdHN3aXRjaCIgdmFsdWUgdG8gNCBhZGRpdGlvbmFsIGJ1dHRvbnMuCisgICAgICAgIAor
ICAgICAgICAqIHBsYXRmb3JtL2dhbWVwYWQvbWFjL0hJREdhbWVwYWQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SElER2FtZXBhZDo6aW5pdEVsZW1lbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OkhJ
REdhbWVwYWQ6OmluaXRFbGVtZW50c0Zyb21BcnJheSk6CisgICAgICAgIChXZWJDb3JlOjpISURH
YW1lcGFkOjptYXliZUFkZEJ1dHRvbik6CisgICAgICAgIChXZWJDb3JlOjpISURHYW1lcGFkOjpt
YXliZUFkZERQYWQpOgorICAgICAgICAoV2ViQ29yZTo6SElER2FtZXBhZDo6bWF5YmVBZGRBeGlz
KToKKyAgICAgICAgKFdlYkNvcmU6OmZpbGxJbkJ1dHRvblZhbHVlcyk6CisgICAgICAgIChXZWJD
b3JlOjpISURHYW1lcGFkOjp2YWx1ZUNoYW5nZWQpOgorCisgICAgICAgICogcGxhdGZvcm0vZ2Ft
ZXBhZC9tYWMvSElER2FtZXBhZC5oOgorICAgICAgICAoV2ViQ29yZTo6SElER2FtZXBhZEVsZW1l
bnQ6OmlzRFBhZCk6CisgICAgICAgIChXZWJDb3JlOjpISURHYW1lcGFkRFBhZDo6SElER2FtZXBh
ZERQYWQpOgorICAgICAgICAoV2ViQ29yZTo6SElER2FtZXBhZERQYWQ6Om5vcm1hbGl6ZWRWYWx1
ZSk6CisKIDIwMTctMDEtMjMgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0
Lm9yZz4KIAogICAgICAgICBVUkxQYXJzZXIgc2hvdWxkIGZhaWwgdG8gcGFyc2UgcGVyY2VudC1l
bmNvZGVkIGludmFsaWQgVVRGLTggc2VxdWVuY2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9nYW1lcGFkL21hYy9ISURHYW1lcGFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dhbWVwYWQvbWFjL0hJREdhbWVwYWQuY3BwCmluZGV4IDgzN2EzOThkMzI3NDc1NGI1
ODhkMzhhMWEyZGUwNmMyMjVmMzU5ZTIuLmQyYTc1NGM2MDBjYWFiMDQyMDY1ZWI3MjdkYWNkOTU2
MzAyMTI0MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvbWFj
L0hJREdhbWVwYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvbWFj
L0hJREdhbWVwYWQuY3BwCkBAIC03OSwxMyArNzksMTYgQEAgdm9pZCBISURHYW1lcGFkOjppbml0
RWxlbWVudHMoKQogICAgIH0pOwogCiAgICAgbV9heGlzVmFsdWVzLnJlc2l6ZShtX2F4ZXMuc2l6
ZSgpKTsKLSAgICBtX2J1dHRvblZhbHVlcy5yZXNpemUobV9idXR0b25zLnNpemUoKSk7CisgICAg
bV9idXR0b25WYWx1ZXMucmVzaXplKG1fYnV0dG9ucy5zaXplKCkgKyAobV9kUGFkcy5zaXplKCkg
KiA0KSk7CiAKICAgICBmb3IgKGF1dG8mIGJ1dHRvbiA6IG1fYnV0dG9ucykKLSAgICAgICAgZ2V0
Q3VycmVudFZhbHVlRm9yRWxlbWVudCgqYnV0dG9uKTsKKyAgICAgICAgZ2V0Q3VycmVudFZhbHVl
Rm9yRWxlbWVudChidXR0b24uZ2V0KCkpOworCisgICAgZm9yIChhdXRvJiBkUGFkIDogbV9kUGFk
cykKKyAgICAgICAgZ2V0Q3VycmVudFZhbHVlRm9yRWxlbWVudChkUGFkLmdldCgpKTsKIAogICAg
IGZvciAoYXV0byYgYXhpcyA6IG1fYXhlcykKLSAgICAgICAgZ2V0Q3VycmVudFZhbHVlRm9yRWxl
bWVudCgqYXhpcyk7CisgICAgICAgIGdldEN1cnJlbnRWYWx1ZUZvckVsZW1lbnQoYXhpcy5nZXQo
KSk7CiB9CiAKIHZvaWQgSElER2FtZXBhZDo6aW5pdEVsZW1lbnRzRnJvbUFycmF5KENGQXJyYXlS
ZWYgZWxlbWVudHMpCkBAIC0xMDQsOCArMTA3LDEyIEBAIHZvaWQgSElER2FtZXBhZDo6aW5pdEVs
ZW1lbnRzRnJvbUFycmF5KENGQXJyYXlSZWYgZWxlbWVudHMpCiAKICAgICAgICAgSU9ISURFbGVt
ZW50VHlwZSB0eXBlID0gSU9ISURFbGVtZW50R2V0VHlwZShlbGVtZW50KTsKIAotICAgICAgICBp
ZiAoKHR5cGUgPT0ga0lPSElERWxlbWVudFR5cGVJbnB1dF9NaXNjIHx8IHR5cGUgPT0ga0lPSElE
RWxlbWVudFR5cGVJbnB1dF9CdXR0b24pICYmIG1heWJlQWRkQnV0dG9uKGVsZW1lbnQpKQotICAg
ICAgICAgICAgY29udGludWU7CisgICAgICAgIGlmICgodHlwZSA9PSBrSU9ISURFbGVtZW50VHlw
ZUlucHV0X01pc2MgfHwgdHlwZSA9PSBrSU9ISURFbGVtZW50VHlwZUlucHV0X0J1dHRvbikpIHsK
KyAgICAgICAgICAgIGlmIChtYXliZUFkZEJ1dHRvbihlbGVtZW50KSkKKyAgICAgICAgICAgICAg
ICBjb250aW51ZTsKKyAgICAgICAgICAgIGlmIChtYXliZUFkZERQYWQoZWxlbWVudCkpCisgICAg
ICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KIAogICAgICAgICBpZiAoKHR5cGUgPT0g
a0lPSElERWxlbWVudFR5cGVJbnB1dF9NaXNjIHx8IHR5cGUgPT0ga0lPSElERWxlbWVudFR5cGVJ
bnB1dF9BeGlzKSAmJiBtYXliZUFkZEF4aXMoZWxlbWVudCkpCiAgICAgICAgICAgICBjb250aW51
ZTsKQEAgLTEyOCwxMCArMTM1LDMxIEBAIGJvb2wgSElER2FtZXBhZDo6bWF5YmVBZGRCdXR0b24o
SU9ISURFbGVtZW50UmVmIGVsZW1lbnQpCiAgICAgQ0ZJbmRleCBtaW4gPSBJT0hJREVsZW1lbnRH
ZXRMb2dpY2FsTWluKGVsZW1lbnQpOwogICAgIENGSW5kZXggbWF4ID0gSU9ISURFbGVtZW50R2V0
TG9naWNhbE1heChlbGVtZW50KTsKIAotICAgIG1fYnV0dG9ucy5hcHBlbmQoc3RkOjptYWtlX3Vu
aXF1ZTxISURHYW1lcGFkQnV0dG9uPih1c2FnZSwgbWluLCBtYXgsIGVsZW1lbnQpKTsKKyAgICBt
X2J1dHRvbnMuYXBwZW5kKG1ha2VVbmlxdWVSZWY8SElER2FtZXBhZEJ1dHRvbj4odXNhZ2UsIG1p
biwgbWF4LCBlbGVtZW50KSk7CiAKICAgICBJT0hJREVsZW1lbnRDb29raWUgY29va2llID0gSU9I
SURFbGVtZW50R2V0Q29va2llKGVsZW1lbnQpOwotICAgIG1fZWxlbWVudE1hcC5zZXQoY29va2ll
LCBtX2J1dHRvbnMubGFzdCgpLmdldCgpKTsKKyAgICBtX2VsZW1lbnRNYXAuc2V0KGNvb2tpZSwg
Jm1fYnV0dG9ucy5sYXN0KCkuZ2V0KCkpOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wg
SElER2FtZXBhZDo6bWF5YmVBZGREUGFkKElPSElERWxlbWVudFJlZiBlbGVtZW50KQoreworICAg
IHVpbnQzMl90IHVzYWdlUGFnZSA9IElPSElERWxlbWVudEdldFVzYWdlUGFnZShlbGVtZW50KTsK
KyAgICBpZiAodXNhZ2VQYWdlICE9IGtISURQYWdlX0dlbmVyaWNEZXNrdG9wKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICB1aW50MzJfdCB1c2FnZSA9IElPSElERWxlbWVudEdldFVzYWdl
KGVsZW1lbnQpOworICAgIGlmICghdXNhZ2UgfHwgdXNhZ2UgIT0ga0hJRFVzYWdlX0dEX0hhdHN3
aXRjaCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgQ0ZJbmRleCBtaW4gPSBJT0hJREVs
ZW1lbnRHZXRMb2dpY2FsTWluKGVsZW1lbnQpOworICAgIENGSW5kZXggbWF4ID0gSU9ISURFbGVt
ZW50R2V0TG9naWNhbE1heChlbGVtZW50KTsKKworICAgIG1fZFBhZHMuYXBwZW5kKG1ha2VVbmlx
dWVSZWY8SElER2FtZXBhZERQYWQ+KG1pbiwgbWF4LCBlbGVtZW50KSk7CisKKyAgICBJT0hJREVs
ZW1lbnRDb29raWUgY29va2llID0gSU9ISURFbGVtZW50R2V0Q29va2llKGVsZW1lbnQpOworICAg
IG1fZWxlbWVudE1hcC5zZXQoY29va2llLCAmbV9kUGFkcy5sYXN0KCkuZ2V0KCkpOwogCiAgICAg
cmV0dXJuIHRydWU7CiB9CkBAIC0xNTAsMTQgKzE3OCw0NiBAQCBib29sIEhJREdhbWVwYWQ6Om1h
eWJlQWRkQXhpcyhJT0hJREVsZW1lbnRSZWYgZWxlbWVudCkKICAgICBDRkluZGV4IG1pbiA9IElP
SElERWxlbWVudEdldFBoeXNpY2FsTWluKGVsZW1lbnQpOwogICAgIENGSW5kZXggbWF4ID0gSU9I
SURFbGVtZW50R2V0UGh5c2ljYWxNYXgoZWxlbWVudCk7CiAKLSAgICBtX2F4ZXMuYXBwZW5kKHN0
ZDo6bWFrZV91bmlxdWU8SElER2FtZXBhZEF4aXM+KG1pbiwgbWF4LCBlbGVtZW50KSk7CisgICAg
bV9heGVzLmFwcGVuZChtYWtlVW5pcXVlUmVmPEhJREdhbWVwYWRBeGlzPihtaW4sIG1heCwgZWxl
bWVudCkpOwogCiAgICAgSU9ISURFbGVtZW50Q29va2llIGNvb2tpZSA9IElPSElERWxlbWVudEdl
dENvb2tpZShlbGVtZW50KTsKLSAgICBtX2VsZW1lbnRNYXAuc2V0KGNvb2tpZSwgbV9heGVzLmxh
c3QoKS5nZXQoKSk7CisgICAgbV9lbGVtZW50TWFwLnNldChjb29raWUsICZtX2F4ZXMubGFzdCgp
LmdldCgpKTsKIAogICAgIHJldHVybiB0cnVlOwogfQogCitzdGF0aWMgdm9pZCBmaWxsSW5CdXR0
b25WYWx1ZXMoaW50IHZhbHVlLCBkb3VibGUmIGJ1dHRvbjAsIGRvdWJsZSYgYnV0dG9uMSwgZG91
YmxlJiBidXR0b24yLCBkb3VibGUmIGJ1dHRvbjMpCit7CisgICAgLy8gU3RhbmRhcmQgRFBhZHMg
aGF2ZSA4IHBvc3NpYmxlIHBvc2l0aW9uIHZhbHVlcywgbW92aW5nIGFyb3VuZCBhIGNpcmNsZToK
KyAgICAvLyAwIC0gVXAKKyAgICAvLyAxIC0gVXAgKyByaWdodAorICAgIC8vIDIgLSBSaWdodAor
ICAgIC8vIDMgLSBEb3duICsgcmlnaHQKKyAgICAvLyA0IC0gRG93bgorICAgIC8vIDUgLSBEb3du
ICsgbGVmdAorICAgIC8vIDYgLSBMZWZ0CisgICAgLy8gNyAtIFVwIGFuZCBMZWZ0CisgICAgLy8g
VGhlc2UgOCBwb3NpdGlvbnMgYXJlIG1hcHBlZCBvbiB0byA0IGJ1dHRvbiBwb3NpdGlvbnM6Cisg
ICAgLy8gMCAtIFVwCisgICAgLy8gMSAtIERvd24KKyAgICAvLyAyIC0gTGVmdAorICAgIC8vIDMg
LSBSaWdodAorCisgICAgaWYgKHZhbHVlIDwgMCB8fCB2YWx1ZSA+IDcpIHsKKyAgICAgICAgLy8g
SGFuZGxlIGFuIGludmFsaWQgaW5wdXQgdmFsdWUgdGhhdCB3ZSBkb24ndCBrbm93IGhvdyB0byBp
bnRlcnByZXQuCisgICAgICAgIGJ1dHRvbjAgPSAwLjA7CisgICAgICAgIGJ1dHRvbjEgPSAwLjA7
CisgICAgICAgIGJ1dHRvbjIgPSAwLjA7CisgICAgICAgIGJ1dHRvbjMgPSAwLjA7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBidXR0b24wID0gdmFsdWUgPCAyIHx8IHZhbHVlID09IDcg
PyAxLjAgOiAwLjA7CisgICAgYnV0dG9uMSA9IHZhbHVlID4gMiAmJiB2YWx1ZSA8IDYgPyAxLjAg
OiAwLjA7CisgICAgYnV0dG9uMiA9IHZhbHVlID4gNCA/IDEuMCA6IDAuMDsKKyAgICBidXR0b24z
ID0gdmFsdWUgPiAwICYmIHZhbHVlIDwgNCA/IDEuMCA6IDAuMDsKK30KKwogSElESW5wdXRUeXBl
IEhJREdhbWVwYWQ6OnZhbHVlQ2hhbmdlZChJT0hJRFZhbHVlUmVmIHZhbHVlKQogewogICAgIElP
SElERWxlbWVudENvb2tpZSBjb29raWUgPSBJT0hJREVsZW1lbnRHZXRDb29raWUoSU9ISURWYWx1
ZUdldEVsZW1lbnQodmFsdWUpKTsKQEAgLTE3MSwxMyArMjMxLDMwIEBAIEhJRElucHV0VHlwZSBI
SURHYW1lcGFkOjp2YWx1ZUNoYW5nZWQoSU9ISURWYWx1ZVJlZiB2YWx1ZSkKIAogICAgIGlmIChl
bGVtZW50LT5pc0J1dHRvbigpKSB7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBt
X2J1dHRvbnMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgICAgIGlmIChtX2J1dHRvbnNbaV0uZ2V0
KCkgPT0gZWxlbWVudCkKKyAgICAgICAgICAgIGlmICgmbV9idXR0b25zW2ldLmdldCgpID09IGVs
ZW1lbnQpIHsKICAgICAgICAgICAgICAgICBtX2J1dHRvblZhbHVlc1tpXSA9IGVsZW1lbnQtPm5v
cm1hbGl6ZWRWYWx1ZSgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQog
ICAgICAgICB9CiAgICAgfSBlbHNlIGlmIChlbGVtZW50LT5pc0F4aXMoKSkgewogICAgICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9heGVzLnNpemUoKTsgKytpKSB7Ci0gICAgICAgICAg
ICBpZiAobV9heGVzW2ldLmdldCgpID09IGVsZW1lbnQpCisgICAgICAgICAgICBpZiAoJm1fYXhl
c1tpXS5nZXQoKSA9PSBlbGVtZW50KSB7CiAgICAgICAgICAgICAgICAgbV9heGlzVmFsdWVzW2ld
ID0gZWxlbWVudC0+bm9ybWFsaXplZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKGVsZW1lbnQtPmlzRFBhZCgp
KSB7CisgICAgICAgIGludCBpbnRWYWx1ZSA9IElPSElEVmFsdWVHZXRJbnRlZ2VyVmFsdWUodmFs
dWUpIC0gZWxlbWVudC0+bWluOworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9k
UGFkcy5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgaWYgKCZtX2RQYWRzW2ldLmdldCgpICE9
IGVsZW1lbnQpCisgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgIC8vIEVh
Y2ggRFBhZCByZXByZXNlbnRzIDQgYnV0dG9uIHZhbHVlcyB3aGljaCBhcmUgdGFja2VkIG9uIHRv
IHRoZSBlbmQgb2YgdGhlIHZhbHVlcyBmcm9tIG5vbi1EUGFkIGJ1dHRvbnMuCisgICAgICAgICAg
ICB1bnNpZ25lZCBmaXJzdEJ1dHRvblZhbHVlID0gbV9idXR0b25zLnNpemUoKSArIGkgKiA0Owor
CisgICAgICAgICAgICBBU1NFUlQobV9idXR0b25WYWx1ZXMuc2l6ZSgpID4gZmlyc3RCdXR0b25W
YWx1ZSArIDMpOworCisgICAgICAgICAgICBmaWxsSW5CdXR0b25WYWx1ZXMoaW50VmFsdWUsIG1f
YnV0dG9uVmFsdWVzW2ZpcnN0QnV0dG9uVmFsdWVdLCBtX2J1dHRvblZhbHVlc1tmaXJzdEJ1dHRv
blZhbHVlICsgMV0sIG1fYnV0dG9uVmFsdWVzW2ZpcnN0QnV0dG9uVmFsdWUgKyAyXSwgbV9idXR0
b25WYWx1ZXNbZmlyc3RCdXR0b25WYWx1ZSArIDNdKTsKICAgICAgICAgfQogICAgIH0gZWxzZQog
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dhbWVwYWQvbWFjL0hJREdhbWVwYWQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dhbWVwYWQvbWFjL0hJREdhbWVwYWQuaAppbmRleCA0M2FlNzQ5OWViZGRlNDQwYWY5OTA0
ZWFlYmU1ODRhMDdkZjJjZmIwLi4xNWYwNGM3MDhlOTAwN2JiNGRhZGVlNTQzNWMzNTdmMDJmNTMx
YzkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL21hYy9ISURH
YW1lcGFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9tYWMvSElER2Ft
ZXBhZC5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSA8SU9LaXQvaGlkL0lPSElERGV2aWNl
Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+
CisjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAg
LTU0LDYgKzU1LDcgQEAgc3RydWN0IEhJREdhbWVwYWRFbGVtZW50IHsKIAogICAgIHZpcnR1YWwg
Ym9vbCBpc0J1dHRvbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29s
IGlzQXhpcygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzRFBh
ZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICB2aXJ0dWFsIGRvdWJsZSBub3JtYWxp
emVkVmFsdWUoKSA9IDA7CiB9OwpAQCAtNjcsNyArNjksNyBAQCBzdHJ1Y3QgSElER2FtZXBhZEJ1
dHRvbiA6IEhJREdhbWVwYWRFbGVtZW50IHsKIAogICAgIHVpbnQzMl90IHByaW9yaXR5OwogCi0g
ICAgYm9vbCBpc0J1dHRvbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICBi
b29sIGlzQnV0dG9uKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgLy8gQnV0
dG9ucyBub3JtYWxpemUgdG8gdGhlIHJhbmdlICgwLjApIC0gKDEuMCkKICAgICBkb3VibGUgbm9y
bWFsaXplZFZhbHVlKCkgb3ZlcnJpZGUKQEAgLTgyLDcgKzg0LDcgQEAgc3RydWN0IEhJREdhbWVw
YWRBeGlzIDogSElER2FtZXBhZEVsZW1lbnQgewogICAgIHsKICAgICB9CiAKLSAgICBib29sIGlz
QXhpcygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICBib29sIGlzQXhpcygp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIC8vIEF4ZXMgbm9ybWFsaXplIHRv
IHRoZSByYW5nZSAoLTEuMCkgLSAoMS4wKQogICAgIGRvdWJsZSBub3JtYWxpemVkVmFsdWUoKSBv
dmVycmlkZQpAQCAtOTEsNiArOTMsMTcgQEAgc3RydWN0IEhJREdhbWVwYWRBeGlzIDogSElER2Ft
ZXBhZEVsZW1lbnQgewogICAgIH0KIH07CiAKK3N0cnVjdCBISURHYW1lcGFkRFBhZCA6IEhJREdh
bWVwYWRFbGVtZW50IHsKKyAgICBISURHYW1lcGFkRFBhZChkb3VibGUgbWluLCBkb3VibGUgbWF4
LCBJT0hJREVsZW1lbnRSZWYgZWxlbWVudCkKKyAgICAgICAgOiBISURHYW1lcGFkRWxlbWVudCht
aW4sIG1heCwgZWxlbWVudCkKKyAgICB7CisgICAgfQorCisgICAgYm9vbCBpc0RQYWQoKSBjb25z
dCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisKKyAgICB2aXJ0dWFsIGRvdWJsZSBub3JtYWxpemVk
VmFsdWUoKSB7IFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KK307CisKIGVudW0gY2xh
c3MgSElESW5wdXRUeXBlIHsKICAgICBCdXR0b25QcmVzcywKICAgICBOb3RBQnV0dG9uUHJlc3Ms
CkBAIC0xMTIsNiArMTI1LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGluaXRFbGVtZW50c0Zyb21B
cnJheShDRkFycmF5UmVmKTsKIAogICAgIGJvb2wgbWF5YmVBZGRCdXR0b24oSU9ISURFbGVtZW50
UmVmKTsKKyAgICBib29sIG1heWJlQWRkRFBhZChJT0hJREVsZW1lbnRSZWYpOwogICAgIGJvb2wg
bWF5YmVBZGRBeGlzKElPSElERWxlbWVudFJlZik7CiAKICAgICB2b2lkIGdldEN1cnJlbnRWYWx1
ZUZvckVsZW1lbnQoY29uc3QgSElER2FtZXBhZEVsZW1lbnQmKTsKQEAgLTEyMCw4ICsxMzQsOSBA
QCBwcml2YXRlOgogCiAgICAgSGFzaE1hcDxJT0hJREVsZW1lbnRDb29raWUsIEhJREdhbWVwYWRF
bGVtZW50Kj4gbV9lbGVtZW50TWFwOwogCi0gICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxISURH
YW1lcGFkQnV0dG9uPj4gbV9idXR0b25zOwotICAgIFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8SElE
R2FtZXBhZEF4aXM+PiBtX2F4ZXM7CisgICAgVmVjdG9yPFVuaXF1ZVJlZjxISURHYW1lcGFkQnV0
dG9uPj4gbV9idXR0b25zOworICAgIFZlY3RvcjxVbmlxdWVSZWY8SElER2FtZXBhZEF4aXM+PiBt
X2F4ZXM7CisgICAgVmVjdG9yPFVuaXF1ZVJlZjxISURHYW1lcGFkRFBhZD4+IG1fZFBhZHM7CiAg
ICAgVmVjdG9yPGRvdWJsZT4gbV9idXR0b25WYWx1ZXM7CiAgICAgVmVjdG9yPGRvdWJsZT4gbV9h
eGlzVmFsdWVzOwogfTsK
</data>
<flag name="review"
          id="321758"
          type_id="1"
          status="+"
          setter="achristensen"
    />
          </attachment>
      

    </bug>

</bugzilla>