<?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>172780</bug_id>
          
          <creation_ts>2017-05-31 15:23:44 -0700</creation_ts>
          <short_desc>[WebCore] Enable REQUEST_ANIMATION_FRAME_TIMER for all ports</short_desc>
          <delta_ts>2017-06-06 15:29:50 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Don Olmstead">don.olmstead</reporter>
          <assigned_to name="Don Olmstead">don.olmstead</assigned_to>
          <cc>achristensen</cc>
    
    <cc>annulen</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1314366</commentid>
    <comment_count>0</comment_count>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2017-05-31 15:23:44 -0700</bug_when>
    <thetext>All ports have USE_REQUEST_ANIMATION_FRAME_TIMER on. Remove all conditional compilation around it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1314442</commentid>
    <comment_count>1</comment_count>
      <attachid>311659</attachid>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2017-05-31 17:00:28 -0700</bug_when>
    <thetext>Created attachment 311659
Patch

Removing all references to USE(REQUEST_ANIMATION_FRAME_TIMER).

In Platform.h there&apos;s a conditional !USE(WINGDI) for its setting but no one is building with WINGDI and it should probably be removed in the future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1314447</commentid>
    <comment_count>2</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-05-31 17:03:23 -0700</bug_when>
    <thetext>Attachment 311659 did not pass style-queue:


ERROR: Source/WebCore/page/Chrome.h:88:  Missing space inside { }.  [whitespace/braces] [5]
Total errors found: 1 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1314453</commentid>
    <comment_count>3</comment_count>
      <attachid>311661</attachid>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2017-05-31 17:09:02 -0700</bug_when>
    <thetext>Created attachment 311661
Patch

Fix style</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1314470</commentid>
    <comment_count>4</comment_count>
      <attachid>311665</attachid>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2017-05-31 17:39:00 -0700</bug_when>
    <thetext>Created attachment 311665
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1314471</commentid>
    <comment_count>5</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-05-31 17:40:11 -0700</bug_when>
    <thetext>Attachment 311665 did not pass style-queue:


ERROR: Source/WebCore/ChangeLog:8:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
Total errors found: 1 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1314472</commentid>
    <comment_count>6</comment_count>
      <attachid>311666</attachid>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2017-05-31 17:41:48 -0700</bug_when>
    <thetext>Created attachment 311666
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1314485</commentid>
    <comment_count>7</comment_count>
      <attachid>311666</attachid>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2017-05-31 18:47:52 -0700</bug_when>
    <thetext>Comment on attachment 311666
Patch

Think this is ready to go. Only question I&apos;m not sure of is if scheduleAnimation should just be removed from HostWindow/Chrome.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1314649</commentid>
    <comment_count>8</comment_count>
      <attachid>311666</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-06-01 09:34:15 -0700</bug_when>
    <thetext>Comment on attachment 311666
Patch

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

&gt; Source/WebCore/page/Chrome.h:88
&gt; -    void scheduleAnimation() override;
&gt; +    void scheduleAnimation() override { }

Yeah, this seems no longer needed, so let&apos;s just remove it.  Maybe in a followup patch if that requires more surgery.
And if it is needed and can be final instead of just override, let&apos;s do that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1314865</commentid>
    <comment_count>9</comment_count>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2017-06-01 16:09:05 -0700</bug_when>
    <thetext>Is it possible to !REQUEST_ANIMATION_FRAME_TIMER code, if I&apos;ll keep it working?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1314866</commentid>
    <comment_count>10</comment_count>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2017-06-01 16:09:51 -0700</bug_when>
    <thetext>I&apos;ve meant, to keep !REQUEST_ANIMATION_FRAME_TIMER code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1315508</commentid>
    <comment_count>11</comment_count>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2017-06-03 19:00:49 -0700</bug_when>
    <thetext>(In reply to Konstantin Tokarev from comment #10)
&gt; I&apos;ve meant, to keep !REQUEST_ANIMATION_FRAME_TIMER code

Currently the !USE(REQUEST_ANIMATION_FRAME_TIMER) path does not compile. I found this out when compiling out the PS4 on trunk which did not have it set.

The only case where USE_REQUEST_ANIMATION_FRAME_TIMER was not turned on was if USE(WINGDI) was set. No one is using WINGDI and that should likely be removed as well. That is why I made the patch to remove it.

As we&apos;ve been going through WebCore we&apos;ve been encountering and fixing any of these issues. If someone wants to fix the !USE(REQUEST_ANIMATION_FRAME_TIMER) path that&apos;s fine. This just looks to remove a bunch of unused code and maybe more.

I don&apos;t know enough about what Qt WebKit requires so I&apos;m not sure why this would be a problem for you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1315755</commentid>
    <comment_count>12</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-06-05 13:20:04 -0700</bug_when>
    <thetext>Is there any fundamental problem preventing USE_REQUEST_ANIMATION_FRAME_TIMER on Qt?  We would like to drop as many of these legacy !USE_COMMONLY_IMPLEMENTED_THING code paths as possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1316278</commentid>
    <comment_count>13</comment_count>
      <attachid>311666</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-06-06 15:29:48 -0700</bug_when>
    <thetext>Comment on attachment 311666
Patch

Clearing flags on attachment: 311666

Committed r217862: &lt;http://trac.webkit.org/changeset/217862&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1316279</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-06-06 15:29:50 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>311659</attachid>
            <date>2017-05-31 17:00:28 -0700</date>
            <delta_ts>2017-05-31 17:09:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172780.diff</filename>
            <type>text/plain</type>
            <size>18363</size>
            <attacher name="Don Olmstead">don.olmstead</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggNTcxMmRjMGEwOWQuLjg3YWRhOWU5ODM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE3
LTA1LTMxICBEb24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRAYW0uc29ueS5jb20+CisKKyAgICAg
ICAgW1dlYkNvcmVdIEVuYWJsZSBSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9USU1FUiBmb3IgYWxs
IHBvcnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NzI3ODAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IHd0Zi9QbGF0Zm9ybS5oOgorCiAyMDE3LTA1LTMxICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxs
ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbGFuZCByMjE2ODA4LCB1bmRlcmx5aW5nIGxsZGIg
YnVnIGhhcyBiZWVuIGZpeGVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0u
aCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKaW5kZXggMGM5NTZmNGZmNjMuLmFiNWZlMzIx
ZWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtLmgKQEAgLTExMDEsMTAgKzExMDEsNiBAQAogI2RlZmluZSBVU0VfVklE
RU9UT09MQk9YIDEKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdU
SykgfHwgUExBVEZPUk0oV1BFKSB8fCAoUExBVEZPUk0oV0lOKSAmJiAhVVNFKFdJTkdESSkpCi0j
ZGVmaW5lIFVTRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9USU1FUiAxCi0jZW5kaWYKLQogI2lm
IFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICNkZWZp
bmUgVVNFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX0RJU1BMQVlfTU9OSVRPUiAxCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkOWEyYmRhODVjOC4uYmJlZGRhMWI0ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNiBAQAorMjAxNy0wNS0zMSAgRG9uIE9sbXN0ZWFkICA8ZG9uLm9sbXN0ZWFkQGFtLnNv
bnkuY29tPgorCisgICAgICAgIFtXZWJDb3JlXSBFbmFibGUgUkVRVUVTVF9BTklNQVRJT05fRlJB
TUVfVElNRVIgZm9yIGFsbCBwb3J0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTcyNzgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBObyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAg
ICAgICAgKiBkb20vU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjo6U2NyaXB0ZWRBbmltYXRpb25Db250
cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjo6
YWRkVGhyb3R0bGluZ1JlYXNvbik6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRlZEFuaW1hdGlv
bkNvbnRyb2xsZXI6OnJlbW92ZVRocm90dGxpbmdSZWFzb24pOgorICAgICAgICAoV2ViQ29yZTo6
U2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOjppc1Rocm90dGxlZCk6CisgICAgICAgIChXZWJD
b3JlOjpTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXI6OmludGVydmFsKToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjo6c2NoZWR1bGVBbmltYXRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6U2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOjpkaXNwbGF5UmVm
cmVzaEZpcmVkKToKKyAgICAgICAgKiBkb20vU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmg6
CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAqIHBhZ2UvQ2hyb21l
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6c2NoZWR1bGVBbmltYXRpb24pOiBEZWxl
dGVkLgorICAgICAgICAqIHBhZ2UvQ2hyb21lLmg6CisgICAgICAgICogcGFnZS9DaHJvbWVDbGll
bnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9DdXJsLmNtYWtlOiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsQW5pbWF0aW9uU21vb3RoOjpTY3JvbGxBbmltYXRpb25TbW9vdGgpOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsQW5pbWF0aW9uU21vb3RoOjpzdG9wKToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbEFuaW1hdGlvblNtb290aDo6YW5pbWF0aW9uVGltZXJGaXJlZCk6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxBbmltYXRpb25TbW9vdGg6OnN0YXJ0TmV4dFRpbWVyKToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbEFuaW1hdGlvblNtb290aDo6YW5pbWF0aW9uVGltZXJBY3RpdmUpOgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0aW9uU21vb3RoOjpzZXJ2aWNlQW5pbWF0aW9uKTog
RGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguaDoKKwog
MjAxNy0wNS0zMSAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAg
Q3Jhc2hUcmFjZXI6IFJlZ3Jlc3Npb24gOiBjb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQgYXQg
U1RQIHJlc3BvbnNpYmxlIDo6IGNvbS5hcHBsZS5XZWJDb3JlOiBXZWJDb3JlOjpTaGFyZWRCdWZm
ZXI6OmRhdGEgY29uc3QgKyAxMQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Njcmlw
dGVkQW5pbWF0aW9uQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0ZWRB
bmltYXRpb25Db250cm9sbGVyLmNwcAppbmRleCBlZmE0ZDBiODZkYS4uODU1ODA3Y2FiNzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIu
Y3BwCkBAIC0zOCwyMCArMzgsMTcgQEAKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUmVx
dWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgorI2lu
Y2x1ZGUgPGFsZ29yaXRobT4KKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRl
IDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1N5c3RlbVRyYWNpbmcuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKLSNpZiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJB
TUVfVElNRVIpCi0jaW5jbHVkZSA8YWxnb3JpdGhtPgotI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGlt
ZS5oPgotCiAvLyBBbGxvdyBhIGxpdHRsZSBtb3JlIHRoYW4gNjBmcHMgdG8gbWFrZSBzdXJlIHdl
IGNhbiBhdCBsZWFzdCBoaXQgdGhhdCBmcmFtZSByYXRlLgogc3RhdGljIGNvbnN0IFNlY29uZHMg
ZnVsbFNwZWVkQW5pbWF0aW9uSW50ZXJ2YWwgeyAxNV9tcyB9OwogLy8gQWxsb3cgYSBsaXR0bGUg
bW9yZSB0aGFuIDMwZnBzIHRvIG1ha2Ugc3VyZSB3ZSBjYW4gYXQgbGVhc3QgaGl0IHRoYXQgZnJh
bWUgcmF0ZS4KIHN0YXRpYyBjb25zdCBTZWNvbmRzIGhhbGZTcGVlZFRocm90dGxpbmdBbmltYXRp
b25JbnRlcnZhbCB7IDMwX21zIH07CiBzdGF0aWMgY29uc3QgU2Vjb25kcyBhZ2dyZXNzaXZlVGhy
b3R0bGluZ0FuaW1hdGlvbkludGVydmFsIHsgMTBfcyB9OwotI2VuZGlmCiAKICNkZWZpbmUgUkVM
RUFTRV9MT0dfSUZfQUxMT1dFRChmbXQsIC4uLikgUkVMRUFTRV9MT0dfSUYocGFnZSgpICYmIHBh
Z2UoKS0+aXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIFBlcmZvcm1hbmNlTG9nZ2luZywgIiVw
IC0gU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOjoiIGZtdCwgdGhpcywgIyNfX1ZBX0FSR1Nf
XykKIApAQCAtNTksOSArNTYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFNjcmlwdGVkQW5p
bWF0aW9uQ29udHJvbGxlcjo6U2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyKERvY3VtZW50JiBk
b2N1bWVudCwgUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlEKQogICAgIDogbV9kb2N1bWVudCgm
ZG9jdW1lbnQpCi0jaWYgVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX1RJTUVSKQogICAgICwg
bV9hbmltYXRpb25UaW1lcigqdGhpcywgJlNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjo6YW5p
bWF0aW9uVGltZXJGaXJlZCkKLSNlbmRpZgogewogICAgIHdpbmRvd1NjcmVlbkRpZENoYW5nZShk
aXNwbGF5SUQpOwogfQpAQCAtOTEsNyArODYsNyBAQCB2b2lkIFNjcmlwdGVkQW5pbWF0aW9uQ29u
dHJvbGxlcjo6cmVzdW1lKCkKICAgICAgICAgc2NoZWR1bGVBbmltYXRpb24oKTsKIH0KIAotI2lm
IFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9USU1FUikgJiYgVVNFKFJFUVVFU1RfQU5JTUFU
SU9OX0ZSQU1FX0RJU1BMQVlfTU9OSVRPUikgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisjaWYg
VVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX0RJU1BMQVlfTU9OSVRPUikgJiYgIVJFTEVBU0Vf
TE9HX0RJU0FCTEVECiAKIHN0YXRpYyBjb25zdCBjaGFyKiB0aHJvdHRsaW5nUmVhc29uVG9TdHJp
bmcoU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOjpUaHJvdHRsaW5nUmVhc29uIHJlYXNvbikK
IHsKQEAgLTEyNSw3ICsxMjAsNyBAQCBzdGF0aWMgU3RyaW5nIHRocm90dGxpbmdSZWFzb25zVG9T
dHJpbmcoT3B0aW9uU2V0PFNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjo6VAogCiB2b2lkIFNj
cmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjo6YWRkVGhyb3R0bGluZ1JlYXNvbihUaHJvdHRsaW5n
UmVhc29uIHJlYXNvbikKIHsKLSNpZiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfVElNRVIp
ICYmIFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IpCisjaWYgVVNF
KFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX0RJU1BMQVlfTU9OSVRPUikKICAgICBpZiAobV90aHJv
dHRsaW5nUmVhc29ucy5jb250YWlucyhyZWFzb24pKQogICAgICAgICByZXR1cm47CiAKQEAgLTE0
NCw3ICsxMzksNyBAQCB2b2lkIFNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjo6YWRkVGhyb3R0
bGluZ1JlYXNvbihUaHJvdHRsaW5nUmVhc29uIHJlYXNvbikKIAogdm9pZCBTY3JpcHRlZEFuaW1h
dGlvbkNvbnRyb2xsZXI6OnJlbW92ZVRocm90dGxpbmdSZWFzb24oVGhyb3R0bGluZ1JlYXNvbiBy
ZWFzb24pCiB7Ci0jaWYgVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX1RJTUVSKSAmJiBVU0Uo
UkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05JVE9SKQorI2lmIFVTRShSRVFVRVNU
X0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IpCiAgICAgaWYgKCFtX3Rocm90dGxpbmdS
ZWFzb25zLmNvbnRhaW5zKHJlYXNvbikpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTYzLDcgKzE1
OCw3IEBAIHZvaWQgU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOjpyZW1vdmVUaHJvdHRsaW5n
UmVhc29uKFRocm90dGxpbmdSZWFzb24gcmVhc29uCiAKIGJvb2wgU2NyaXB0ZWRBbmltYXRpb25D
b250cm9sbGVyOjppc1Rocm90dGxlZCgpIGNvbnN0CiB7Ci0jaWYgVVNFKFJFUVVFU1RfQU5JTUFU
SU9OX0ZSQU1FX1RJTUVSKSAmJiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9N
T05JVE9SKQorI2lmIFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1Ip
CiAgICAgcmV0dXJuICFtX3Rocm90dGxpbmdSZWFzb25zLmlzRW1wdHkoKTsKICNlbHNlCiAgICAg
cmV0dXJuIGZhbHNlOwpAQCAtMjUxLDcgKzI0Niw3IEBAIHZvaWQgU2NyaXB0ZWRBbmltYXRpb25D
b250cm9sbGVyOjp3aW5kb3dTY3JlZW5EaWRDaGFuZ2UoUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxh
CiAKIFNlY29uZHMgU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOjppbnRlcnZhbCgpIGNvbnN0
CiB7Ci0jaWYgVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX1RJTUVSKSAmJiBVU0UoUkVRVUVT
VF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05JVE9SKQorI2lmIFVTRShSRVFVRVNUX0FOSU1B
VElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IpCiAgICAgaWYgKG1fdGhyb3R0bGluZ1JlYXNvbnMu
Y29udGFpbnMoVGhyb3R0bGluZ1JlYXNvbjo6VmlzdWFsbHlJZGxlKSB8fCBtX3Rocm90dGxpbmdS
ZWFzb25zLmNvbnRhaW5zKFRocm90dGxpbmdSZWFzb246Ok91dHNpZGVWaWV3cG9ydCkpCiAgICAg
ICAgIHJldHVybiBhZ2dyZXNzaXZlVGhyb3R0bGluZ0FuaW1hdGlvbkludGVydmFsOwogCkBAIC0y
NzYsNyArMjcxLDYgQEAgdm9pZCBTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXI6OnNjaGVkdWxl
QW5pbWF0aW9uKCkKICAgICBpZiAoIXJlcXVlc3RBbmltYXRpb25GcmFtZUVuYWJsZWQoKSkKICAg
ICAgICAgcmV0dXJuOwogCi0jaWYgVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX1RJTUVSKQog
I2lmIFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IpCiAgICAgaWYg
KCFtX2lzVXNpbmdUaW1lciAmJiAhaXNUaHJvdHRsZWQoKSkgewogICAgICAgICBpZiAoRGlzcGxh
eVJlZnJlc2hNb25pdG9yTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLnNjaGVkdWxlQW5pbWF0aW9u
KCp0aGlzKSkKQEAgLTMwNCwyOSArMjk4LDIwIEBAIHZvaWQgU2NyaXB0ZWRBbmltYXRpb25Db250
cm9sbGVyOjpzY2hlZHVsZUFuaW1hdGlvbigpCiAgICAgfQogCiAgICAgbV9hbmltYXRpb25UaW1l
ci5zdGFydE9uZVNob3Qoc2NoZWR1bGVEZWxheSk7Ci0KLSNlbHNlCi0gICAgaWYgKEZyYW1lVmll
dyogZnJhbWVWaWV3ID0gbV9kb2N1bWVudC0+dmlldygpKQotICAgICAgICBmcmFtZVZpZXctPnNj
aGVkdWxlQW5pbWF0aW9uKCk7Ci0jZW5kaWYKIH0KIAotI2lmIFVTRShSRVFVRVNUX0FOSU1BVElP
Tl9GUkFNRV9USU1FUikKIHZvaWQgU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOjphbmltYXRp
b25UaW1lckZpcmVkKCkKIHsKICAgICBtX2xhc3RBbmltYXRpb25GcmFtZVRpbWVzdGFtcCA9IG1f
ZG9jdW1lbnQtPmRvbVdpbmRvdygpLT5ub3dUaW1lc3RhbXAoKTsKICAgICBzZXJ2aWNlU2NyaXB0
ZWRBbmltYXRpb25zKG1fbGFzdEFuaW1hdGlvbkZyYW1lVGltZXN0YW1wKTsKIH0KKwogI2lmIFVT
RShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IpCiB2b2lkIFNjcmlwdGVk
QW5pbWF0aW9uQ29udHJvbGxlcjo6ZGlzcGxheVJlZnJlc2hGaXJlZCgpCiB7CiAgICAgc2Vydmlj
ZVNjcmlwdGVkQW5pbWF0aW9ucyhtX2RvY3VtZW50LT5kb21XaW5kb3coKS0+bm93VGltZXN0YW1w
KCkpOwogfQotI2VuZGlmCi0jZW5kaWYKIAotCi0jaWYgVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZS
QU1FX0RJU1BMQVlfTU9OSVRPUikKIFJlZlB0cjxEaXNwbGF5UmVmcmVzaE1vbml0b3I+IFNjcmlw
dGVkQW5pbWF0aW9uQ29udHJvbGxlcjo6Y3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9yKFBsYXRm
b3JtRGlzcGxheUlEIGRpc3BsYXlJRCkgY29uc3QKIHsKICAgICBpZiAoIW1fZG9jdW1lbnQtPnBh
Z2UoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1hdGlvbkNv
bnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xs
ZXIuaAppbmRleCA2ZjZhNDBjMDczZi4uMDhkOTk2N2EyZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmgKQEAgLTI3LDE3ICsyNywxNCBA
QAogCiAjaW5jbHVkZSAiRE9NVGltZVN0YW1wLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TY3JlZW4u
aCIKKyNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9PcHRpb25TZXQuaD4KICNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CiAKLSNp
ZiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfVElNRVIpCi0jaW5jbHVkZSAiVGltZXIuaCIK
LSNlbmRpZgotCi0jaWYgVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX1RJTUVSKSAmJiBVU0Uo
UkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05JVE9SKQorI2lmIFVTRShSRVFVRVNU
X0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IpCiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAj
aW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiRGlzcGxheVJlZnJlc2hNb25pdG9y
Q2xpZW50LmgiCkBAIC05OCwxNCArOTUsMTEgQEAgcHJpdmF0ZToKICAgICBpbnQgbV9zdXNwZW5k
Q291bnQgeyAwIH07CiAKICAgICB2b2lkIHNjaGVkdWxlQW5pbWF0aW9uKCk7Ci0KLSNpZiBVU0Uo
UkVRVUVTVF9BTklNQVRJT05fRlJBTUVfVElNRVIpCiAgICAgdm9pZCBhbmltYXRpb25UaW1lckZp
cmVkKCk7CiAgICAgVGltZXIgbV9hbmltYXRpb25UaW1lcjsKICAgICBkb3VibGUgbV9sYXN0QW5p
bWF0aW9uRnJhbWVUaW1lc3RhbXAgeyAwIH07Ci0jZW5kaWYKIAotI2lmIFVTRShSRVFVRVNUX0FO
SU1BVElPTl9GUkFNRV9USU1FUikgJiYgVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX0RJU1BM
QVlfTU9OSVRPUikKKyNpZiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05J
VE9SKQogICAgIC8vIE92ZXJyaWRlIGZvciBEaXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnQKICAg
ICB2b2lkIGRpc3BsYXlSZWZyZXNoRmlyZWQoKSBvdmVycmlkZTsKICAgICBSZWZQdHI8RGlzcGxh
eVJlZnJlc2hNb25pdG9yPiBjcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3IoUGxhdGZvcm1EaXNw
bGF5SUQpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCmlu
ZGV4IGY1NjZjMzY0ZmJmLi4wYWE1ODMwNDg4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNs
aWVudHMuaApAQCAtMTEyLDEwICsxMTIsNiBAQCBjbGFzcyBFbXB0eUNocm9tZUNsaWVudCA6IHB1
YmxpYyBDaHJvbWVDbGllbnQgewogICAgIHZvaWQgcmVzZXRVcGRhdGVBdGxhc0ZvclRlc3Rpbmco
KSBmaW5hbCB7IH0KICNlbmRpZgogCi0jaWYgIVVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9U
SU1FUikKLSAgICB2b2lkIHNjaGVkdWxlQW5pbWF0aW9uKCkgZmluYWwgeyB9Ci0jZW5kaWYKLQog
ICAgIEludFBvaW50IHNjcmVlblRvUm9vdFZpZXcoY29uc3QgSW50UG9pbnQmIHApIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIHA7IH0KICAgICBJbnRSZWN0IHJvb3RWaWV3VG9TY3JlZW4oY29uc3QgSW50
UmVjdCYgcikgY29uc3QgZmluYWwgeyByZXR1cm4gcjsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAK
aW5kZXggYTViMDBhZTBiMTYuLmY3YWNlZDc4ODE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0Nocm9tZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCkBA
IC00NzQsMTMgKzQ3NCw2IEBAIHZvaWQgQ2hyb21lOjpzZXRDdXJzb3JIaWRkZW5VbnRpbE1vdXNl
TW92ZXMoYm9vbCBoaWRkZW5VbnRpbE1vdXNlTW92ZXMpCiAjZW5kaWYKIH0KIAotdm9pZCBDaHJv
bWU6OnNjaGVkdWxlQW5pbWF0aW9uKCkKLXsKLSNpZiAhVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZS
QU1FX1RJTUVSKQotICAgIG1fY2xpZW50LnNjaGVkdWxlQW5pbWF0aW9uKCk7Ci0jZW5kaWYKLX0K
LQogUGxhdGZvcm1EaXNwbGF5SUQgQ2hyb21lOjpkaXNwbGF5SUQoKSBjb25zdAogewogICAgIHJl
dHVybiBtX2Rpc3BsYXlJRDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21l
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCmluZGV4IGIzYzQ2NDdjMWFlLi4wNjYz
YWZlZjYwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCkBAIC04NSw3ICs4NSw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNldEN1cnNvcihjb25zdCBDdXJzb3ImKSBvdmVycmlkZTsKICAgICB2b2lkIHNldEN1
cnNvckhpZGRlblVudGlsTW91c2VNb3Zlcyhib29sKSBvdmVycmlkZTsKIAotICAgIHZvaWQgc2No
ZWR1bGVBbmltYXRpb24oKSBvdmVycmlkZTsKKyAgICB2b2lkIHNjaGVkdWxlQW5pbWF0aW9uKCkg
b3ZlcnJpZGUge30KIAogICAgIFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCgpIGNvbnN0IG92
ZXJyaWRlOwogICAgIHZvaWQgd2luZG93U2NyZWVuRGlkQ2hhbmdlKFBsYXRmb3JtRGlzcGxheUlE
KSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IDAxYWU0MDkwYTY1
Li44NDU2ZmVlNjI3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGll
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC0xODUsMTAg
KzE4NSw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29ySGlkZGVuVW50aWxN
b3VzZU1vdmVzKGJvb2wpID0gMDsKICNlbmRpZgogCi0jaWYgIVVTRShSRVFVRVNUX0FOSU1BVElP
Tl9GUkFNRV9USU1FUikKLSAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVBbmltYXRpb24oKSA9IDA7
Ci0jZW5kaWYKLQogICAgIHZpcnR1YWwgRmxvYXRTaXplIHNjcmVlblNpemUoKSBjb25zdCB7IHJl
dHVybiBjb25zdF9jYXN0PENocm9tZUNsaWVudCY+KCp0aGlzKS53aW5kb3dSZWN0KCkuc2l6ZSgp
OyB9CiAgICAgdmlydHVhbCBGbG9hdFNpemUgYXZhaWxhYmxlU2NyZWVuU2l6ZSgpIGNvbnN0IHsg
cmV0dXJuIGNvbnN0X2Nhc3Q8Q2hyb21lQ2xpZW50Jj4oKnRoaXMpLndpbmRvd1JlY3QoKS5zaXpl
KCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0
aW9uU21vb3RoLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvblNt
b290aC5jcHAKaW5kZXggN2E1ZjFlYTlhZGUuLjRjNmI4MTRmOTBkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvblNtb290aC5jcHAKQEAgLTQ1LDExICs0
NSw3IEBAIFNjcm9sbEFuaW1hdGlvblNtb290aDo6U2Nyb2xsQW5pbWF0aW9uU21vb3RoKFNjcm9s
bGFibGVBcmVhJiBzY3JvbGxhYmxlQXJlYSwgY29uCiAgICAgLCBtX25vdGlmeVBvc2l0aW9uQ2hh
bmdlZEZ1bmN0aW9uKFdURk1vdmUobm90aWZ5UG9zaXRpb25DaGFuZ2VkRnVuY3Rpb24pKQogICAg
ICwgbV9ob3Jpem9udGFsRGF0YShwb3NpdGlvbi54KCksIHNjcm9sbGFibGVBcmVhLnZpc2libGVX
aWR0aCgpKQogICAgICwgbV92ZXJ0aWNhbERhdGEocG9zaXRpb24ueSgpLCBzY3JvbGxhYmxlQXJl
YS52aXNpYmxlSGVpZ2h0KCkpCi0jaWYgVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX1RJTUVS
KQogICAgICwgbV9hbmltYXRpb25UaW1lcigqdGhpcywgJlNjcm9sbEFuaW1hdGlvblNtb290aDo6
YW5pbWF0aW9uVGltZXJGaXJlZCkKLSNlbHNlCi0gICAgLCBtX2FuaW1hdGlvbkFjdGl2ZShmYWxz
ZSkKLSNlbmRpZgogewogfQogCkBAIC03NCwxMSArNzAsNyBAQCBib29sIFNjcm9sbEFuaW1hdGlv
blNtb290aDo6c2Nyb2xsKFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBTY3JvbGxH
cmFudQogCiB2b2lkIFNjcm9sbEFuaW1hdGlvblNtb290aDo6c3RvcCgpCiB7Ci0jaWYgVVNFKFJF
UVVFU1RfQU5JTUFUSU9OX0ZSQU1FX1RJTUVSKQogICAgIG1fYW5pbWF0aW9uVGltZXIuc3RvcCgp
OwotI2Vsc2UKLSAgICBtX2FuaW1hdGlvbkFjdGl2ZSA9IGZhbHNlOwotI2VuZGlmCiB9CiAKIHZv
aWQgU2Nyb2xsQW5pbWF0aW9uU21vb3RoOjp1cGRhdGVWaXNpYmxlTGVuZ3RocygpCkBAIC05NCwx
NCArODYsNiBAQCB2b2lkIFNjcm9sbEFuaW1hdGlvblNtb290aDo6c2V0Q3VycmVudFBvc2l0aW9u
KGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0aW9uKQogICAgIG1fdmVydGljYWxEYXRhID0gUGVyQXhp
c0RhdGEocG9zaXRpb24ueSgpLCBtX3ZlcnRpY2FsRGF0YS52aXNpYmxlTGVuZ3RoKTsKIH0KIAot
I2lmICFVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfVElNRVIpCi12b2lkIFNjcm9sbEFuaW1h
dGlvblNtb290aDo6c2VydmljZUFuaW1hdGlvbigpCi17Ci0gICAgaWYgKG1fYW5pbWF0aW9uQWN0
aXZlKQotICAgICAgICBhbmltYXRpb25UaW1lckZpcmVkKCk7Ci19Ci0jZW5kaWYKLQogU2Nyb2xs
QW5pbWF0aW9uU21vb3RoOjp+U2Nyb2xsQW5pbWF0aW9uU21vb3RoKCkKIHsKIH0KQEAgLTQxMCwz
NyArMzk0LDE5IEBAIHZvaWQgU2Nyb2xsQW5pbWF0aW9uU21vb3RoOjphbmltYXRpb25UaW1lckZp
cmVkKCkKICAgICAgICAgY29udGludWVBbmltYXRpb24gPSB0cnVlOwogCiAgICAgaWYgKGNvbnRp
bnVlQW5pbWF0aW9uKQotI2lmIFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9USU1FUikKICAg
ICAgICAgc3RhcnROZXh0VGltZXIoc3RkOjptYXgobWluaW11bVRpbWVySW50ZXJ2YWwsIGRlbHRh
VG9OZXh0RnJhbWUpKTsKLSNlbHNlCi0gICAgICAgIHN0YXJ0TmV4dFRpbWVyKCk7Ci0gICAgZWxz
ZQotICAgICAgICBtX2FuaW1hdGlvbkFjdGl2ZSA9IGZhbHNlOwotI2VuZGlmCiAKICAgICBtX25v
dGlmeVBvc2l0aW9uQ2hhbmdlZEZ1bmN0aW9uKEZsb2F0UG9pbnQobV9ob3Jpem9udGFsRGF0YS5j
dXJyZW50UG9zaXRpb24sIG1fdmVydGljYWxEYXRhLmN1cnJlbnRQb3NpdGlvbikpOwogfQogCi0j
aWYgVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX1RJTUVSKQogdm9pZCBTY3JvbGxBbmltYXRp
b25TbW9vdGg6OnN0YXJ0TmV4dFRpbWVyKFNlY29uZHMgZGVsYXkpCiB7CiAgICAgbV9hbmltYXRp
b25UaW1lci5zdGFydE9uZVNob3QoZGVsYXkpOwogfQotI2Vsc2UKLXZvaWQgU2Nyb2xsQW5pbWF0
aW9uU21vb3RoOjpzdGFydE5leHRUaW1lcigpCi17Ci0gICAgaWYgKG1fc2Nyb2xsYWJsZUFyZWEu
c2NoZWR1bGVBbmltYXRpb24oKSkKLSAgICAgICAgbV9hbmltYXRpb25BY3RpdmUgPSB0cnVlOwot
fQotI2VuZGlmCiAKIGJvb2wgU2Nyb2xsQW5pbWF0aW9uU21vb3RoOjphbmltYXRpb25UaW1lckFj
dGl2ZSgpIGNvbnN0CiB7Ci0jaWYgVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX1RJTUVSKQog
ICAgIHJldHVybiBtX2FuaW1hdGlvblRpbWVyLmlzQWN0aXZlKCk7Ci0jZWxzZQotICAgIHJldHVy
biBtX2FuaW1hdGlvbkFjdGl2ZTsKLSNlbmRpZgogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9v
dGguaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvblNtb290aC5oCmlu
ZGV4IDhkNmY5Yzk1ZmRjLi4yNDM5NjQ4ZjE4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmgKQEAgLTIzLDggKzIzLDcgQEAKICAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFNjcm9sbEFuaW1hdGlv
blNtb290aF9oCi0jZGVmaW5lIFNjcm9sbEFuaW1hdGlvblNtb290aF9oCisjcHJhZ21hIG9uY2UK
IAogI2luY2x1ZGUgIlNjcm9sbEFuaW1hdGlvbi5oIgogCkBAIC01NSw5ICs1NCw2IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCB1cGRhdGVWaXNpYmxlTGVu
Z3RocygpIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0Q3VycmVudFBvc2l0aW9uKGNvbnN0IEZsb2F0
UG9pbnQmKSBvdmVycmlkZTsKLSNpZiAhVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX1RJTUVS
KQotICAgIHZvaWQgc2VydmljZUFuaW1hdGlvbigpIG92ZXJyaWRlOwotI2VuZGlmCiAKICAgICBz
dHJ1Y3QgUGVyQXhpc0RhdGEgewogICAgICAgICBQZXJBeGlzRGF0YSgpID0gZGVsZXRlOwpAQCAt
OTYsMTIgKzkyLDggQEAgcHJpdmF0ZToKICAgICBib29sIHVwZGF0ZVBlckF4aXNEYXRhKFBlckF4
aXNEYXRhJiwgU2Nyb2xsR3JhbnVsYXJpdHksIGZsb2F0IGRlbHRhLCBmbG9hdCBtaW5TY3JvbGxQ
b3NpdGlvbiwgZmxvYXQgbWF4U2Nyb2xsUG9zaXRpb24pOwogICAgIGJvb2wgYW5pbWF0ZVNjcm9s
bChQZXJBeGlzRGF0YSYsIE1vbm90b25pY1RpbWUgY3VycmVudFRpbWUpOwogCi0jaWYgVVNFKFJF
UVVFU1RfQU5JTUFUSU9OX0ZSQU1FX1RJTUVSKQogICAgIHZvaWQgcmVxdWVzdEFuaW1hdGlvblRp
bWVyRmlyZWQoKTsKICAgICB2b2lkIHN0YXJ0TmV4dFRpbWVyKFNlY29uZHMgZGVsYXkpOwotI2Vs
c2UKLSAgICB2b2lkIHN0YXJ0TmV4dFRpbWVyKCk7Ci0jZW5kaWYKICAgICB2b2lkIGFuaW1hdGlv
blRpbWVyRmlyZWQoKTsKICAgICBib29sIGFuaW1hdGlvblRpbWVyQWN0aXZlKCkgY29uc3Q7CiAK
QEAgLTExMSwxNSArMTAzLDkgQEAgcHJpdmF0ZToKICAgICBQZXJBeGlzRGF0YSBtX3ZlcnRpY2Fs
RGF0YTsKIAogICAgIE1vbm90b25pY1RpbWUgbV9zdGFydFRpbWU7Ci0jaWYgVVNFKFJFUVVFU1Rf
QU5JTUFUSU9OX0ZSQU1FX1RJTUVSKQogICAgIFRpbWVyIG1fYW5pbWF0aW9uVGltZXI7Ci0jZWxz
ZQotICAgIGJvb2wgbV9hbmltYXRpb25BY3RpdmUgeyBmYWxzZSB9OwotI2VuZGlmCi0KIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTTU9PVEhfU0NST0xM
SU5HKQotI2VuZGlmIC8vIFNjcm9sbEFuaW1hdGlvblNtb290aF9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOGVh
MmViMzFhZGEuLjZmOTNiMTYzOTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTct
MDUtMzEgIERvbiBPbG1zdGVhZCAgPGRvbi5vbG1zdGVhZEBhbS5zb255LmNvbT4KKworICAgICAg
ICBbV2ViQ29yZV0gRW5hYmxlIFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX1RJTUVSIGZvciBhbGwg
cG9ydHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
Mjc4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29tcG9zaXRpbmdDb29yZGlu
YXRvci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OnN5bmNE
aXNwbGF5U3RhdGUpOgorCiAyMDE3LTA1LTMxICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxl
LmNvbT4KIAogICAgICAgICBNYWtlIFdlYlJUQyBsZWdhY3kgQVBJIHN3aXRjaCBhbiBleHBlcmlt
ZW50YWwgZmVhdHVyZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDFmNWE5NGJlOGE1Li42
MThhNzNhM2Y5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtODA2LDggKzgwNiw2IEBA
IFJlZlB0cjxJY29uPiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZUljb25Gb3JGaWxlcyhjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzCiAKICNlbmRpZgogCi0jaWYgIVVTRShSRVFVRVNUX0FO
SU1BVElPTl9GUkFNRV9USU1FUikKLQogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNjaGVkdWxlQW5p
bWF0aW9uKCkKIHsKICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCkBAIC04MTUsOCArODEz
LDYgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNjaGVkdWxlQW5pbWF0aW9uKCkKICNlbmRpZgog
fQogCi0jZW5kaWYKLQogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmRpZEFzc29jaWF0ZUZvcm1Db250
cm9scyhjb25zdCBWZWN0b3I8UmVmUHRyPEVsZW1lbnQ+PiYgZWxlbWVudHMpCiB7CiAgICAgcmV0
dXJuIG1fcGFnZS5pbmplY3RlZEJ1bmRsZUZvcm1DbGllbnQoKS5kaWRBc3NvY2lhdGVGb3JtQ29u
dHJvbHMoJm1fcGFnZSwgZWxlbWVudHMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggODc4N2Qw
ZWNmMmYuLmNhNWJlODFlNjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTE4OSw5ICsxODks
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0Q3Vyc29ySGlkZGVuVW50aWxNb3VzZU1vdmVzKGJv
b2wpIGZpbmFsOwogI2VuZGlmCiAKLSNpZiAhVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX1RJ
TUVSKQogICAgIHZvaWQgc2NoZWR1bGVBbmltYXRpb24oKSBmaW5hbDsKLSNlbmRpZgogICAgIAog
I2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgYm9vbCByZXF1ZXN0UG9pbnRlckxvY2soKSBm
aW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29y
ZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29tcG9zaXRpbmdDb29y
ZGluYXRvci5jcHAKaW5kZXggNzdjMmJkZDA4MzguLjc1YmI3ZjM5YjEyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db21w
b3NpdGluZ0Nvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmNwcApAQCAt
MTU0LDExICsxNTQsNiBAQCBkb3VibGUgQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6dGltZXN0YW1w
KCkgY29uc3QKIAogdm9pZCBDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpzeW5jRGlzcGxheVN0YXRl
KCkKIHsKLSNpZiAhVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX1RJTUVSKSAmJiAhVVNFKFJF
UVVFU1RfQU5JTUFUSU9OX0ZSQU1FX0RJU1BMQVlfTU9OSVRPUikKLSAgICAvLyBNYWtlIHN1cmUg
dGhhdCBhbnkgcHJldmlvdXNseSByZWdpc3RlcmVkIGFuaW1hdGlvbiBjYWxsYmFja3MgYXJlIGJl
aW5nIGV4ZWN1dGVkIGJlZm9yZSB3ZSBmbHVzaCB0aGUgbGF5ZXJzLgotICAgIG1fbGFzdEFuaW1h
dGlvblNlcnZpY2VUaW1lID0gdGltZXN0YW1wKCk7Ci0gICAgbV9wYWdlLT5tYWluRnJhbWUoKS52
aWV3KCktPnNlcnZpY2VTY3JpcHRlZEFuaW1hdGlvbnMoKTsKLSNlbmRpZgogICAgIG1fcGFnZS0+
bWFpbkZyYW1lKCkudmlldygpLT51cGRhdGVMYXlvdXRBbmRTdHlsZUlmTmVlZGVkUmVjdXJzaXZl
KCk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>311661</attachid>
            <date>2017-05-31 17:09:02 -0700</date>
            <delta_ts>2017-05-31 17:39:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172780.diff</filename>
            <type>text/plain</type>
            <size>18364</size>
            <attacher name="Don Olmstead">don.olmstead</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggNTcxMmRjMGEwOWQuLjg3YWRhOWU5ODM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE3
LTA1LTMxICBEb24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRAYW0uc29ueS5jb20+CisKKyAgICAg
ICAgW1dlYkNvcmVdIEVuYWJsZSBSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9USU1FUiBmb3IgYWxs
IHBvcnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NzI3ODAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IHd0Zi9QbGF0Zm9ybS5oOgorCiAyMDE3LTA1LTMxICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxs
ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbGFuZCByMjE2ODA4LCB1bmRlcmx5aW5nIGxsZGIg
YnVnIGhhcyBiZWVuIGZpeGVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0u
aCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKaW5kZXggMGM5NTZmNGZmNjMuLmFiNWZlMzIx
ZWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtLmgKQEAgLTExMDEsMTAgKzExMDEsNiBAQAogI2RlZmluZSBVU0VfVklE
RU9UT09MQk9YIDEKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdU
SykgfHwgUExBVEZPUk0oV1BFKSB8fCAoUExBVEZPUk0oV0lOKSAmJiAhVVNFKFdJTkdESSkpCi0j
ZGVmaW5lIFVTRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9USU1FUiAxCi0jZW5kaWYKLQogI2lm
IFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICNkZWZp
bmUgVVNFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX0RJU1BMQVlfTU9OSVRPUiAxCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkOWEyYmRhODVjOC4uYmJlZGRhMWI0ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNiBAQAorMjAxNy0wNS0zMSAgRG9uIE9sbXN0ZWFkICA8ZG9uLm9sbXN0ZWFkQGFtLnNv
bnkuY29tPgorCisgICAgICAgIFtXZWJDb3JlXSBFbmFibGUgUkVRVUVTVF9BTklNQVRJT05fRlJB
TUVfVElNRVIgZm9yIGFsbCBwb3J0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTcyNzgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBObyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAg
ICAgICAgKiBkb20vU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjo6U2NyaXB0ZWRBbmltYXRpb25Db250
cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjo6
YWRkVGhyb3R0bGluZ1JlYXNvbik6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRlZEFuaW1hdGlv
bkNvbnRyb2xsZXI6OnJlbW92ZVRocm90dGxpbmdSZWFzb24pOgorICAgICAgICAoV2ViQ29yZTo6
U2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOjppc1Rocm90dGxlZCk6CisgICAgICAgIChXZWJD
b3JlOjpTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXI6OmludGVydmFsKToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjo6c2NoZWR1bGVBbmltYXRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6U2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOjpkaXNwbGF5UmVm
cmVzaEZpcmVkKToKKyAgICAgICAgKiBkb20vU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmg6
CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAqIHBhZ2UvQ2hyb21l
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6c2NoZWR1bGVBbmltYXRpb24pOiBEZWxl
dGVkLgorICAgICAgICAqIHBhZ2UvQ2hyb21lLmg6CisgICAgICAgICogcGFnZS9DaHJvbWVDbGll
bnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9DdXJsLmNtYWtlOiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsQW5pbWF0aW9uU21vb3RoOjpTY3JvbGxBbmltYXRpb25TbW9vdGgpOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsQW5pbWF0aW9uU21vb3RoOjpzdG9wKToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbEFuaW1hdGlvblNtb290aDo6YW5pbWF0aW9uVGltZXJGaXJlZCk6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxBbmltYXRpb25TbW9vdGg6OnN0YXJ0TmV4dFRpbWVyKToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbEFuaW1hdGlvblNtb290aDo6YW5pbWF0aW9uVGltZXJBY3RpdmUpOgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0aW9uU21vb3RoOjpzZXJ2aWNlQW5pbWF0aW9uKTog
RGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguaDoKKwog
MjAxNy0wNS0zMSAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAg
Q3Jhc2hUcmFjZXI6IFJlZ3Jlc3Npb24gOiBjb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQgYXQg
U1RQIHJlc3BvbnNpYmxlIDo6IGNvbS5hcHBsZS5XZWJDb3JlOiBXZWJDb3JlOjpTaGFyZWRCdWZm
ZXI6OmRhdGEgY29uc3QgKyAxMQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Njcmlw
dGVkQW5pbWF0aW9uQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0ZWRB
bmltYXRpb25Db250cm9sbGVyLmNwcAppbmRleCBlZmE0ZDBiODZkYS4uODU1ODA3Y2FiNzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIu
Y3BwCkBAIC0zOCwyMCArMzgsMTcgQEAKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUmVx
dWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgorI2lu
Y2x1ZGUgPGFsZ29yaXRobT4KKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRl
IDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1N5c3RlbVRyYWNpbmcuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKLSNpZiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJB
TUVfVElNRVIpCi0jaW5jbHVkZSA8YWxnb3JpdGhtPgotI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGlt
ZS5oPgotCiAvLyBBbGxvdyBhIGxpdHRsZSBtb3JlIHRoYW4gNjBmcHMgdG8gbWFrZSBzdXJlIHdl
IGNhbiBhdCBsZWFzdCBoaXQgdGhhdCBmcmFtZSByYXRlLgogc3RhdGljIGNvbnN0IFNlY29uZHMg
ZnVsbFNwZWVkQW5pbWF0aW9uSW50ZXJ2YWwgeyAxNV9tcyB9OwogLy8gQWxsb3cgYSBsaXR0bGUg
bW9yZSB0aGFuIDMwZnBzIHRvIG1ha2Ugc3VyZSB3ZSBjYW4gYXQgbGVhc3QgaGl0IHRoYXQgZnJh
bWUgcmF0ZS4KIHN0YXRpYyBjb25zdCBTZWNvbmRzIGhhbGZTcGVlZFRocm90dGxpbmdBbmltYXRp
b25JbnRlcnZhbCB7IDMwX21zIH07CiBzdGF0aWMgY29uc3QgU2Vjb25kcyBhZ2dyZXNzaXZlVGhy
b3R0bGluZ0FuaW1hdGlvbkludGVydmFsIHsgMTBfcyB9OwotI2VuZGlmCiAKICNkZWZpbmUgUkVM
RUFTRV9MT0dfSUZfQUxMT1dFRChmbXQsIC4uLikgUkVMRUFTRV9MT0dfSUYocGFnZSgpICYmIHBh
Z2UoKS0+aXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIFBlcmZvcm1hbmNlTG9nZ2luZywgIiVw
IC0gU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOjoiIGZtdCwgdGhpcywgIyNfX1ZBX0FSR1Nf
XykKIApAQCAtNTksOSArNTYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFNjcmlwdGVkQW5p
bWF0aW9uQ29udHJvbGxlcjo6U2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyKERvY3VtZW50JiBk
b2N1bWVudCwgUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlEKQogICAgIDogbV9kb2N1bWVudCgm
ZG9jdW1lbnQpCi0jaWYgVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX1RJTUVSKQogICAgICwg
bV9hbmltYXRpb25UaW1lcigqdGhpcywgJlNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjo6YW5p
bWF0aW9uVGltZXJGaXJlZCkKLSNlbmRpZgogewogICAgIHdpbmRvd1NjcmVlbkRpZENoYW5nZShk
aXNwbGF5SUQpOwogfQpAQCAtOTEsNyArODYsNyBAQCB2b2lkIFNjcmlwdGVkQW5pbWF0aW9uQ29u
dHJvbGxlcjo6cmVzdW1lKCkKICAgICAgICAgc2NoZWR1bGVBbmltYXRpb24oKTsKIH0KIAotI2lm
IFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9USU1FUikgJiYgVVNFKFJFUVVFU1RfQU5JTUFU
SU9OX0ZSQU1FX0RJU1BMQVlfTU9OSVRPUikgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisjaWYg
VVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX0RJU1BMQVlfTU9OSVRPUikgJiYgIVJFTEVBU0Vf
TE9HX0RJU0FCTEVECiAKIHN0YXRpYyBjb25zdCBjaGFyKiB0aHJvdHRsaW5nUmVhc29uVG9TdHJp
bmcoU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOjpUaHJvdHRsaW5nUmVhc29uIHJlYXNvbikK
IHsKQEAgLTEyNSw3ICsxMjAsNyBAQCBzdGF0aWMgU3RyaW5nIHRocm90dGxpbmdSZWFzb25zVG9T
dHJpbmcoT3B0aW9uU2V0PFNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjo6VAogCiB2b2lkIFNj
cmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjo6YWRkVGhyb3R0bGluZ1JlYXNvbihUaHJvdHRsaW5n
UmVhc29uIHJlYXNvbikKIHsKLSNpZiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfVElNRVIp
ICYmIFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IpCisjaWYgVVNF
KFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX0RJU1BMQVlfTU9OSVRPUikKICAgICBpZiAobV90aHJv
dHRsaW5nUmVhc29ucy5jb250YWlucyhyZWFzb24pKQogICAgICAgICByZXR1cm47CiAKQEAgLTE0
NCw3ICsxMzksNyBAQCB2b2lkIFNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjo6YWRkVGhyb3R0
bGluZ1JlYXNvbihUaHJvdHRsaW5nUmVhc29uIHJlYXNvbikKIAogdm9pZCBTY3JpcHRlZEFuaW1h
dGlvbkNvbnRyb2xsZXI6OnJlbW92ZVRocm90dGxpbmdSZWFzb24oVGhyb3R0bGluZ1JlYXNvbiBy
ZWFzb24pCiB7Ci0jaWYgVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX1RJTUVSKSAmJiBVU0Uo
UkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05JVE9SKQorI2lmIFVTRShSRVFVRVNU
X0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IpCiAgICAgaWYgKCFtX3Rocm90dGxpbmdS
ZWFzb25zLmNvbnRhaW5zKHJlYXNvbikpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTYzLDcgKzE1
OCw3IEBAIHZvaWQgU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOjpyZW1vdmVUaHJvdHRsaW5n
UmVhc29uKFRocm90dGxpbmdSZWFzb24gcmVhc29uCiAKIGJvb2wgU2NyaXB0ZWRBbmltYXRpb25D
b250cm9sbGVyOjppc1Rocm90dGxlZCgpIGNvbnN0CiB7Ci0jaWYgVVNFKFJFUVVFU1RfQU5JTUFU
SU9OX0ZSQU1FX1RJTUVSKSAmJiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9N
T05JVE9SKQorI2lmIFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1Ip
CiAgICAgcmV0dXJuICFtX3Rocm90dGxpbmdSZWFzb25zLmlzRW1wdHkoKTsKICNlbHNlCiAgICAg
cmV0dXJuIGZhbHNlOwpAQCAtMjUxLDcgKzI0Niw3IEBAIHZvaWQgU2NyaXB0ZWRBbmltYXRpb25D
b250cm9sbGVyOjp3aW5kb3dTY3JlZW5EaWRDaGFuZ2UoUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxh
CiAKIFNlY29uZHMgU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOjppbnRlcnZhbCgpIGNvbnN0
CiB7Ci0jaWYgVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX1RJTUVSKSAmJiBVU0UoUkVRVUVT
VF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05JVE9SKQorI2lmIFVTRShSRVFVRVNUX0FOSU1B
VElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IpCiAgICAgaWYgKG1fdGhyb3R0bGluZ1JlYXNvbnMu
Y29udGFpbnMoVGhyb3R0bGluZ1JlYXNvbjo6VmlzdWFsbHlJZGxlKSB8fCBtX3Rocm90dGxpbmdS
ZWFzb25zLmNvbnRhaW5zKFRocm90dGxpbmdSZWFzb246Ok91dHNpZGVWaWV3cG9ydCkpCiAgICAg
ICAgIHJldHVybiBhZ2dyZXNzaXZlVGhyb3R0bGluZ0FuaW1hdGlvbkludGVydmFsOwogCkBAIC0y
NzYsNyArMjcxLDYgQEAgdm9pZCBTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXI6OnNjaGVkdWxl
QW5pbWF0aW9uKCkKICAgICBpZiAoIXJlcXVlc3RBbmltYXRpb25GcmFtZUVuYWJsZWQoKSkKICAg
ICAgICAgcmV0dXJuOwogCi0jaWYgVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX1RJTUVSKQog
I2lmIFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IpCiAgICAgaWYg
KCFtX2lzVXNpbmdUaW1lciAmJiAhaXNUaHJvdHRsZWQoKSkgewogICAgICAgICBpZiAoRGlzcGxh
eVJlZnJlc2hNb25pdG9yTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLnNjaGVkdWxlQW5pbWF0aW9u
KCp0aGlzKSkKQEAgLTMwNCwyOSArMjk4LDIwIEBAIHZvaWQgU2NyaXB0ZWRBbmltYXRpb25Db250
cm9sbGVyOjpzY2hlZHVsZUFuaW1hdGlvbigpCiAgICAgfQogCiAgICAgbV9hbmltYXRpb25UaW1l
ci5zdGFydE9uZVNob3Qoc2NoZWR1bGVEZWxheSk7Ci0KLSNlbHNlCi0gICAgaWYgKEZyYW1lVmll
dyogZnJhbWVWaWV3ID0gbV9kb2N1bWVudC0+dmlldygpKQotICAgICAgICBmcmFtZVZpZXctPnNj
aGVkdWxlQW5pbWF0aW9uKCk7Ci0jZW5kaWYKIH0KIAotI2lmIFVTRShSRVFVRVNUX0FOSU1BVElP
Tl9GUkFNRV9USU1FUikKIHZvaWQgU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOjphbmltYXRp
b25UaW1lckZpcmVkKCkKIHsKICAgICBtX2xhc3RBbmltYXRpb25GcmFtZVRpbWVzdGFtcCA9IG1f
ZG9jdW1lbnQtPmRvbVdpbmRvdygpLT5ub3dUaW1lc3RhbXAoKTsKICAgICBzZXJ2aWNlU2NyaXB0
ZWRBbmltYXRpb25zKG1fbGFzdEFuaW1hdGlvbkZyYW1lVGltZXN0YW1wKTsKIH0KKwogI2lmIFVT
RShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IpCiB2b2lkIFNjcmlwdGVk
QW5pbWF0aW9uQ29udHJvbGxlcjo6ZGlzcGxheVJlZnJlc2hGaXJlZCgpCiB7CiAgICAgc2Vydmlj
ZVNjcmlwdGVkQW5pbWF0aW9ucyhtX2RvY3VtZW50LT5kb21XaW5kb3coKS0+bm93VGltZXN0YW1w
KCkpOwogfQotI2VuZGlmCi0jZW5kaWYKIAotCi0jaWYgVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZS
QU1FX0RJU1BMQVlfTU9OSVRPUikKIFJlZlB0cjxEaXNwbGF5UmVmcmVzaE1vbml0b3I+IFNjcmlw
dGVkQW5pbWF0aW9uQ29udHJvbGxlcjo6Y3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9yKFBsYXRm
b3JtRGlzcGxheUlEIGRpc3BsYXlJRCkgY29uc3QKIHsKICAgICBpZiAoIW1fZG9jdW1lbnQtPnBh
Z2UoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1hdGlvbkNv
bnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xs
ZXIuaAppbmRleCA2ZjZhNDBjMDczZi4uMDhkOTk2N2EyZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmgKQEAgLTI3LDE3ICsyNywxNCBA
QAogCiAjaW5jbHVkZSAiRE9NVGltZVN0YW1wLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TY3JlZW4u
aCIKKyNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9PcHRpb25TZXQuaD4KICNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CiAKLSNp
ZiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfVElNRVIpCi0jaW5jbHVkZSAiVGltZXIuaCIK
LSNlbmRpZgotCi0jaWYgVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX1RJTUVSKSAmJiBVU0Uo
UkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05JVE9SKQorI2lmIFVTRShSRVFVRVNU
X0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IpCiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAj
aW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiRGlzcGxheVJlZnJlc2hNb25pdG9y
Q2xpZW50LmgiCkBAIC05OCwxNCArOTUsMTEgQEAgcHJpdmF0ZToKICAgICBpbnQgbV9zdXNwZW5k
Q291bnQgeyAwIH07CiAKICAgICB2b2lkIHNjaGVkdWxlQW5pbWF0aW9uKCk7Ci0KLSNpZiBVU0Uo
UkVRVUVTVF9BTklNQVRJT05fRlJBTUVfVElNRVIpCiAgICAgdm9pZCBhbmltYXRpb25UaW1lckZp
cmVkKCk7CiAgICAgVGltZXIgbV9hbmltYXRpb25UaW1lcjsKICAgICBkb3VibGUgbV9sYXN0QW5p
bWF0aW9uRnJhbWVUaW1lc3RhbXAgeyAwIH07Ci0jZW5kaWYKIAotI2lmIFVTRShSRVFVRVNUX0FO
SU1BVElPTl9GUkFNRV9USU1FUikgJiYgVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX0RJU1BM
QVlfTU9OSVRPUikKKyNpZiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05J
VE9SKQogICAgIC8vIE92ZXJyaWRlIGZvciBEaXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnQKICAg
ICB2b2lkIGRpc3BsYXlSZWZyZXNoRmlyZWQoKSBvdmVycmlkZTsKICAgICBSZWZQdHI8RGlzcGxh
eVJlZnJlc2hNb25pdG9yPiBjcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3IoUGxhdGZvcm1EaXNw
bGF5SUQpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCmlu
ZGV4IGY1NjZjMzY0ZmJmLi4wYWE1ODMwNDg4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNs
aWVudHMuaApAQCAtMTEyLDEwICsxMTIsNiBAQCBjbGFzcyBFbXB0eUNocm9tZUNsaWVudCA6IHB1
YmxpYyBDaHJvbWVDbGllbnQgewogICAgIHZvaWQgcmVzZXRVcGRhdGVBdGxhc0ZvclRlc3Rpbmco
KSBmaW5hbCB7IH0KICNlbmRpZgogCi0jaWYgIVVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9U
SU1FUikKLSAgICB2b2lkIHNjaGVkdWxlQW5pbWF0aW9uKCkgZmluYWwgeyB9Ci0jZW5kaWYKLQog
ICAgIEludFBvaW50IHNjcmVlblRvUm9vdFZpZXcoY29uc3QgSW50UG9pbnQmIHApIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIHA7IH0KICAgICBJbnRSZWN0IHJvb3RWaWV3VG9TY3JlZW4oY29uc3QgSW50
UmVjdCYgcikgY29uc3QgZmluYWwgeyByZXR1cm4gcjsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAK
aW5kZXggYTViMDBhZTBiMTYuLmY3YWNlZDc4ODE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0Nocm9tZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCkBA
IC00NzQsMTMgKzQ3NCw2IEBAIHZvaWQgQ2hyb21lOjpzZXRDdXJzb3JIaWRkZW5VbnRpbE1vdXNl
TW92ZXMoYm9vbCBoaWRkZW5VbnRpbE1vdXNlTW92ZXMpCiAjZW5kaWYKIH0KIAotdm9pZCBDaHJv
bWU6OnNjaGVkdWxlQW5pbWF0aW9uKCkKLXsKLSNpZiAhVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZS
QU1FX1RJTUVSKQotICAgIG1fY2xpZW50LnNjaGVkdWxlQW5pbWF0aW9uKCk7Ci0jZW5kaWYKLX0K
LQogUGxhdGZvcm1EaXNwbGF5SUQgQ2hyb21lOjpkaXNwbGF5SUQoKSBjb25zdAogewogICAgIHJl
dHVybiBtX2Rpc3BsYXlJRDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21l
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCmluZGV4IGIzYzQ2NDdjMWFlLi4wNjYz
YWZlZjYwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCkBAIC04NSw3ICs4NSw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNldEN1cnNvcihjb25zdCBDdXJzb3ImKSBvdmVycmlkZTsKICAgICB2b2lkIHNldEN1
cnNvckhpZGRlblVudGlsTW91c2VNb3Zlcyhib29sKSBvdmVycmlkZTsKIAotICAgIHZvaWQgc2No
ZWR1bGVBbmltYXRpb24oKSBvdmVycmlkZTsKKyAgICB2b2lkIHNjaGVkdWxlQW5pbWF0aW9uKCkg
b3ZlcnJpZGUgeyB9CiAKICAgICBQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQoKSBjb25zdCBv
dmVycmlkZTsKICAgICB2b2lkIHdpbmRvd1NjcmVlbkRpZENoYW5nZShQbGF0Zm9ybURpc3BsYXlJ
RCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCAwMWFlNDA5MGE2
NS4uODQ1NmZlZTYyNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMTg1LDEw
ICsxODUsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldEN1cnNvckhpZGRlblVudGls
TW91c2VNb3Zlcyhib29sKSA9IDA7CiAjZW5kaWYKIAotI2lmICFVU0UoUkVRVUVTVF9BTklNQVRJ
T05fRlJBTUVfVElNRVIpCi0gICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlQW5pbWF0aW9uKCkgPSAw
OwotI2VuZGlmCi0KICAgICB2aXJ0dWFsIEZsb2F0U2l6ZSBzY3JlZW5TaXplKCkgY29uc3QgeyBy
ZXR1cm4gY29uc3RfY2FzdDxDaHJvbWVDbGllbnQmPigqdGhpcykud2luZG93UmVjdCgpLnNpemUo
KTsgfQogICAgIHZpcnR1YWwgRmxvYXRTaXplIGF2YWlsYWJsZVNjcmVlblNpemUoKSBjb25zdCB7
IHJldHVybiBjb25zdF9jYXN0PENocm9tZUNsaWVudCY+KCp0aGlzKS53aW5kb3dSZWN0KCkuc2l6
ZSgpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1h
dGlvblNtb290aC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25T
bW9vdGguY3BwCmluZGV4IDdhNWYxZWE5YWRlLi40YzZiODE0ZjkwZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguY3BwCkBAIC00NSwxMSAr
NDUsNyBAQCBTY3JvbGxBbmltYXRpb25TbW9vdGg6OlNjcm9sbEFuaW1hdGlvblNtb290aChTY3Jv
bGxhYmxlQXJlYSYgc2Nyb2xsYWJsZUFyZWEsIGNvbgogICAgICwgbV9ub3RpZnlQb3NpdGlvbkNo
YW5nZWRGdW5jdGlvbihXVEZNb3ZlKG5vdGlmeVBvc2l0aW9uQ2hhbmdlZEZ1bmN0aW9uKSkKICAg
ICAsIG1faG9yaXpvbnRhbERhdGEocG9zaXRpb24ueCgpLCBzY3JvbGxhYmxlQXJlYS52aXNpYmxl
V2lkdGgoKSkKICAgICAsIG1fdmVydGljYWxEYXRhKHBvc2l0aW9uLnkoKSwgc2Nyb2xsYWJsZUFy
ZWEudmlzaWJsZUhlaWdodCgpKQotI2lmIFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9USU1F
UikKICAgICAsIG1fYW5pbWF0aW9uVGltZXIoKnRoaXMsICZTY3JvbGxBbmltYXRpb25TbW9vdGg6
OmFuaW1hdGlvblRpbWVyRmlyZWQpCi0jZWxzZQotICAgICwgbV9hbmltYXRpb25BY3RpdmUoZmFs
c2UpCi0jZW5kaWYKIHsKIH0KIApAQCAtNzQsMTEgKzcwLDcgQEAgYm9vbCBTY3JvbGxBbmltYXRp
b25TbW9vdGg6OnNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgU2Nyb2xs
R3JhbnUKIAogdm9pZCBTY3JvbGxBbmltYXRpb25TbW9vdGg6OnN0b3AoKQogewotI2lmIFVTRShS
RVFVRVNUX0FOSU1BVElPTl9GUkFNRV9USU1FUikKICAgICBtX2FuaW1hdGlvblRpbWVyLnN0b3Ao
KTsKLSNlbHNlCi0gICAgbV9hbmltYXRpb25BY3RpdmUgPSBmYWxzZTsKLSNlbmRpZgogfQogCiB2
b2lkIFNjcm9sbEFuaW1hdGlvblNtb290aDo6dXBkYXRlVmlzaWJsZUxlbmd0aHMoKQpAQCAtOTQs
MTQgKzg2LDYgQEAgdm9pZCBTY3JvbGxBbmltYXRpb25TbW9vdGg6OnNldEN1cnJlbnRQb3NpdGlv
bihjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbikKICAgICBtX3ZlcnRpY2FsRGF0YSA9IFBlckF4
aXNEYXRhKHBvc2l0aW9uLnkoKSwgbV92ZXJ0aWNhbERhdGEudmlzaWJsZUxlbmd0aCk7CiB9CiAK
LSNpZiAhVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX1RJTUVSKQotdm9pZCBTY3JvbGxBbmlt
YXRpb25TbW9vdGg6OnNlcnZpY2VBbmltYXRpb24oKQotewotICAgIGlmIChtX2FuaW1hdGlvbkFj
dGl2ZSkKLSAgICAgICAgYW5pbWF0aW9uVGltZXJGaXJlZCgpOwotfQotI2VuZGlmCi0KIFNjcm9s
bEFuaW1hdGlvblNtb290aDo6flNjcm9sbEFuaW1hdGlvblNtb290aCgpCiB7CiB9CkBAIC00MTAs
MzcgKzM5NCwxOSBAQCB2b2lkIFNjcm9sbEFuaW1hdGlvblNtb290aDo6YW5pbWF0aW9uVGltZXJG
aXJlZCgpCiAgICAgICAgIGNvbnRpbnVlQW5pbWF0aW9uID0gdHJ1ZTsKIAogICAgIGlmIChjb250
aW51ZUFuaW1hdGlvbikKLSNpZiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfVElNRVIpCiAg
ICAgICAgIHN0YXJ0TmV4dFRpbWVyKHN0ZDo6bWF4KG1pbmltdW1UaW1lckludGVydmFsLCBkZWx0
YVRvTmV4dEZyYW1lKSk7Ci0jZWxzZQotICAgICAgICBzdGFydE5leHRUaW1lcigpOwotICAgIGVs
c2UKLSAgICAgICAgbV9hbmltYXRpb25BY3RpdmUgPSBmYWxzZTsKLSNlbmRpZgogCiAgICAgbV9u
b3RpZnlQb3NpdGlvbkNoYW5nZWRGdW5jdGlvbihGbG9hdFBvaW50KG1faG9yaXpvbnRhbERhdGEu
Y3VycmVudFBvc2l0aW9uLCBtX3ZlcnRpY2FsRGF0YS5jdXJyZW50UG9zaXRpb24pKTsKIH0KIAot
I2lmIFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9USU1FUikKIHZvaWQgU2Nyb2xsQW5pbWF0
aW9uU21vb3RoOjpzdGFydE5leHRUaW1lcihTZWNvbmRzIGRlbGF5KQogewogICAgIG1fYW5pbWF0
aW9uVGltZXIuc3RhcnRPbmVTaG90KGRlbGF5KTsKIH0KLSNlbHNlCi12b2lkIFNjcm9sbEFuaW1h
dGlvblNtb290aDo6c3RhcnROZXh0VGltZXIoKQotewotICAgIGlmIChtX3Njcm9sbGFibGVBcmVh
LnNjaGVkdWxlQW5pbWF0aW9uKCkpCi0gICAgICAgIG1fYW5pbWF0aW9uQWN0aXZlID0gdHJ1ZTsK
LX0KLSNlbmRpZgogCiBib29sIFNjcm9sbEFuaW1hdGlvblNtb290aDo6YW5pbWF0aW9uVGltZXJB
Y3RpdmUoKSBjb25zdAogewotI2lmIFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9USU1FUikK
ICAgICByZXR1cm4gbV9hbmltYXRpb25UaW1lci5pc0FjdGl2ZSgpOwotI2Vsc2UKLSAgICByZXR1
cm4gbV9hbmltYXRpb25BY3RpdmU7Ci0jZW5kaWYKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uU21v
b3RoLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguaApp
bmRleCA4ZDZmOWM5NWZkYy4uMjQzOTY0OGYxODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvblNtb290aC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbEFuaW1hdGlvblNtb290aC5oCkBAIC0yMyw4ICsyMyw3IEBACiAgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBTY3JvbGxBbmltYXRp
b25TbW9vdGhfaAotI2RlZmluZSBTY3JvbGxBbmltYXRpb25TbW9vdGhfaAorI3ByYWdtYSBvbmNl
CiAKICNpbmNsdWRlICJTY3JvbGxBbmltYXRpb24uaCIKIApAQCAtNTUsOSArNTQsNiBAQCBwcml2
YXRlOgogICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOwogICAgIHZvaWQgdXBkYXRlVmlzaWJsZUxl
bmd0aHMoKSBvdmVycmlkZTsKICAgICB2b2lkIHNldEN1cnJlbnRQb3NpdGlvbihjb25zdCBGbG9h
dFBvaW50Jikgb3ZlcnJpZGU7Ci0jaWYgIVVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9USU1F
UikKLSAgICB2b2lkIHNlcnZpY2VBbmltYXRpb24oKSBvdmVycmlkZTsKLSNlbmRpZgogCiAgICAg
c3RydWN0IFBlckF4aXNEYXRhIHsKICAgICAgICAgUGVyQXhpc0RhdGEoKSA9IGRlbGV0ZTsKQEAg
LTk2LDEyICs5Miw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCB1cGRhdGVQZXJBeGlzRGF0YShQZXJB
eGlzRGF0YSYsIFNjcm9sbEdyYW51bGFyaXR5LCBmbG9hdCBkZWx0YSwgZmxvYXQgbWluU2Nyb2xs
UG9zaXRpb24sIGZsb2F0IG1heFNjcm9sbFBvc2l0aW9uKTsKICAgICBib29sIGFuaW1hdGVTY3Jv
bGwoUGVyQXhpc0RhdGEmLCBNb25vdG9uaWNUaW1lIGN1cnJlbnRUaW1lKTsKIAotI2lmIFVTRShS
RVFVRVNUX0FOSU1BVElPTl9GUkFNRV9USU1FUikKICAgICB2b2lkIHJlcXVlc3RBbmltYXRpb25U
aW1lckZpcmVkKCk7CiAgICAgdm9pZCBzdGFydE5leHRUaW1lcihTZWNvbmRzIGRlbGF5KTsKLSNl
bHNlCi0gICAgdm9pZCBzdGFydE5leHRUaW1lcigpOwotI2VuZGlmCiAgICAgdm9pZCBhbmltYXRp
b25UaW1lckZpcmVkKCk7CiAgICAgYm9vbCBhbmltYXRpb25UaW1lckFjdGl2ZSgpIGNvbnN0Owog
CkBAIC0xMTEsMTUgKzEwMyw5IEBAIHByaXZhdGU6CiAgICAgUGVyQXhpc0RhdGEgbV92ZXJ0aWNh
bERhdGE7CiAKICAgICBNb25vdG9uaWNUaW1lIG1fc3RhcnRUaW1lOwotI2lmIFVTRShSRVFVRVNU
X0FOSU1BVElPTl9GUkFNRV9USU1FUikKICAgICBUaW1lciBtX2FuaW1hdGlvblRpbWVyOwotI2Vs
c2UKLSAgICBib29sIG1fYW5pbWF0aW9uQWN0aXZlIHsgZmFsc2UgfTsKLSNlbmRpZgotCiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU01PT1RIX1NDUk9M
TElORykKLSNlbmRpZiAvLyBTY3JvbGxBbmltYXRpb25TbW9vdGhfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDhl
YTJlYjMxYWRhLi42ZjkzYjE2Mzk5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE3
LTA1LTMxICBEb24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRAYW0uc29ueS5jb20+CisKKyAgICAg
ICAgW1dlYkNvcmVdIEVuYWJsZSBSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9USU1FUiBmb3IgYWxs
IHBvcnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NzI3ODAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5nQ29vcmRp
bmF0b3IuY3BwOgorICAgICAgICAoV2ViS2l0OjpDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpzeW5j
RGlzcGxheVN0YXRlKToKKwogMjAxNy0wNS0zMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBs
ZS5jb20+CiAKICAgICAgICAgTWFrZSBXZWJSVEMgbGVnYWN5IEFQSSBzd2l0Y2ggYW4gZXhwZXJp
bWVudGFsIGZlYXR1cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCAxZjVhOTRiZThhNS4u
NjE4YTczYTNmOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTgwNiw4ICs4MDYsNiBA
QCBSZWZQdHI8SWNvbj4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVJY29uRm9yRmlsZXMoY29uc3Qg
VmVjdG9yPFN0cmluZz4mIGZpbGVuYW1lcwogCiAjZW5kaWYKIAotI2lmICFVU0UoUkVRVUVTVF9B
TklNQVRJT05fRlJBTUVfVElNRVIpCi0KIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzY2hlZHVsZUFu
aW1hdGlvbigpCiB7CiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQpAQCAtODE1LDggKzgx
Myw2IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzY2hlZHVsZUFuaW1hdGlvbigpCiAjZW5kaWYK
IH0KIAotI2VuZGlmCi0KIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29u
dHJvbHMoY29uc3QgVmVjdG9yPFJlZlB0cjxFbGVtZW50Pj4mIGVsZW1lbnRzKQogewogICAgIHJl
dHVybiBtX3BhZ2UuaW5qZWN0ZWRCdW5kbGVGb3JtQ2xpZW50KCkuZGlkQXNzb2NpYXRlRm9ybUNv
bnRyb2xzKCZtX3BhZ2UsIGVsZW1lbnRzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDg3ODdk
MGVjZjJmLi5jYTViZTgxZTYxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0xODksOSArMTg5
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldEN1cnNvckhpZGRlblVudGlsTW91c2VNb3Zlcyhi
b29sKSBmaW5hbDsKICNlbmRpZgogCi0jaWYgIVVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9U
SU1FUikKICAgICB2b2lkIHNjaGVkdWxlQW5pbWF0aW9uKCkgZmluYWw7Ci0jZW5kaWYKICAgICAK
ICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgIGJvb2wgcmVxdWVzdFBvaW50ZXJMb2NrKCkg
ZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5nQ29v
cmRpbmF0b3IuY3BwCmluZGV4IDc3YzJiZGQwODM4Li43NWJiN2YzOWIxMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29t
cG9zaXRpbmdDb29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29tcG9zaXRpbmdDb29yZGluYXRvci5jcHAKQEAg
LTE1NCwxMSArMTU0LDYgQEAgZG91YmxlIENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OnRpbWVzdGFt
cCgpIGNvbnN0CiAKIHZvaWQgQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6c3luY0Rpc3BsYXlTdGF0
ZSgpCiB7Ci0jaWYgIVVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9USU1FUikgJiYgIVVTRShS
RVFVRVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IpCi0gICAgLy8gTWFrZSBzdXJl
IHRoYXQgYW55IHByZXZpb3VzbHkgcmVnaXN0ZXJlZCBhbmltYXRpb24gY2FsbGJhY2tzIGFyZSBi
ZWluZyBleGVjdXRlZCBiZWZvcmUgd2UgZmx1c2ggdGhlIGxheWVycy4KLSAgICBtX2xhc3RBbmlt
YXRpb25TZXJ2aWNlVGltZSA9IHRpbWVzdGFtcCgpOwotICAgIG1fcGFnZS0+bWFpbkZyYW1lKCku
dmlldygpLT5zZXJ2aWNlU2NyaXB0ZWRBbmltYXRpb25zKCk7Ci0jZW5kaWYKICAgICBtX3BhZ2Ut
Pm1haW5GcmFtZSgpLnZpZXcoKS0+dXBkYXRlTGF5b3V0QW5kU3R5bGVJZk5lZWRlZFJlY3Vyc2l2
ZSgpOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>311665</attachid>
            <date>2017-05-31 17:39:00 -0700</date>
            <delta_ts>2017-05-31 17:41:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172780.diff</filename>
            <type>text/plain</type>
            <size>18458</size>
            <attacher name="Don Olmstead">don.olmstead</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggNTcxMmRjMGEwOWQuLjg3YWRhOWU5ODM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE3
LTA1LTMxICBEb24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRAYW0uc29ueS5jb20+CisKKyAgICAg
ICAgW1dlYkNvcmVdIEVuYWJsZSBSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9USU1FUiBmb3IgYWxs
IHBvcnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NzI3ODAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IHd0Zi9QbGF0Zm9ybS5oOgorCiAyMDE3LTA1LTMxICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxs
ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbGFuZCByMjE2ODA4LCB1bmRlcmx5aW5nIGxsZGIg
YnVnIGhhcyBiZWVuIGZpeGVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0u
aCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKaW5kZXggMGM5NTZmNGZmNjMuLmFiNWZlMzIx
ZWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtLmgKQEAgLTExMDEsMTAgKzExMDEsNiBAQAogI2RlZmluZSBVU0VfVklE
RU9UT09MQk9YIDEKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdU
SykgfHwgUExBVEZPUk0oV1BFKSB8fCAoUExBVEZPUk0oV0lOKSAmJiAhVVNFKFdJTkdESSkpCi0j
ZGVmaW5lIFVTRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9USU1FUiAxCi0jZW5kaWYKLQogI2lm
IFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICNkZWZp
bmUgVVNFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX0RJU1BMQVlfTU9OSVRPUiAxCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkOWEyYmRhODVjOC4uYmJlZGRhMWI0ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNiBAQAorMjAxNy0wNS0zMSAgRG9uIE9sbXN0ZWFkICA8ZG9uLm9sbXN0ZWFkQGFtLnNv
bnkuY29tPgorCisgICAgICAgIFtXZWJDb3JlXSBFbmFibGUgUkVRVUVTVF9BTklNQVRJT05fRlJB
TUVfVElNRVIgZm9yIGFsbCBwb3J0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTcyNzgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChPT1BTISkuCisKKyAgICAgICAgKiBkb20vU2Ny
aXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdGVk
QW5pbWF0aW9uQ29udHJvbGxlcjo6U2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjo6YWRkVGhyb3R0bGluZ1Jl
YXNvbik6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXI6OnJl
bW92ZVRocm90dGxpbmdSZWFzb24pOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0ZWRBbmltYXRp
b25Db250cm9sbGVyOjppc1Rocm90dGxlZCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRlZEFu
aW1hdGlvbkNvbnRyb2xsZXI6OmludGVydmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdGVk
QW5pbWF0aW9uQ29udHJvbGxlcjo6c2NoZWR1bGVBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6U2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOjpkaXNwbGF5UmVmcmVzaEZpcmVkKToKKyAg
ICAgICAgKiBkb20vU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmg6CisgICAgICAgICogbG9h
ZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAqIHBhZ2UvQ2hyb21lLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNocm9tZTo6c2NoZWR1bGVBbmltYXRpb24pOiBEZWxldGVkLgorICAgICAgICAq
IHBhZ2UvQ2hyb21lLmg6CisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9DdXJsLmNtYWtlOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxB
bmltYXRpb25TbW9vdGguY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0aW9uU21v
b3RoOjpTY3JvbGxBbmltYXRpb25TbW9vdGgpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5p
bWF0aW9uU21vb3RoOjpzdG9wKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdGlvblNt
b290aDo6YW5pbWF0aW9uVGltZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmlt
YXRpb25TbW9vdGg6OnN0YXJ0TmV4dFRpbWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFu
aW1hdGlvblNtb290aDo6YW5pbWF0aW9uVGltZXJBY3RpdmUpOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsQW5pbWF0aW9uU21vb3RoOjpzZXJ2aWNlQW5pbWF0aW9uKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguaDoKKwogMjAxNy0wNS0zMSAgQW50
dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgQ3Jhc2hUcmFjZXI6IFJl
Z3Jlc3Npb24gOiBjb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQgYXQgU1RQIHJlc3BvbnNpYmxl
IDo6IGNvbS5hcHBsZS5XZWJDb3JlOiBXZWJDb3JlOjpTaGFyZWRCdWZmZXI6OmRhdGEgY29uc3Qg
KyAxMQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdGVkQW5pbWF0aW9uQ29u
dHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0ZWRBbmltYXRpb25Db250cm9s
bGVyLmNwcAppbmRleCBlZmE0ZDBiODZkYS4uODU1ODA3Y2FiNzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCkBAIC0zOCwyMCAr
MzgsMTcgQEAKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUmVxdWVzdEFuaW1hdGlvbkZy
YW1lQ2FsbGJhY2suaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgorI2luY2x1ZGUgPGFsZ29yaXRo
bT4KKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAj
aW5jbHVkZSA8d3RmL1N5c3RlbVRyYWNpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdC
dWlsZGVyLmg+CiAKLSNpZiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfVElNRVIpCi0jaW5j
bHVkZSA8YWxnb3JpdGhtPgotI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgotCiAvLyBBbGxv
dyBhIGxpdHRsZSBtb3JlIHRoYW4gNjBmcHMgdG8gbWFrZSBzdXJlIHdlIGNhbiBhdCBsZWFzdCBo
aXQgdGhhdCBmcmFtZSByYXRlLgogc3RhdGljIGNvbnN0IFNlY29uZHMgZnVsbFNwZWVkQW5pbWF0
aW9uSW50ZXJ2YWwgeyAxNV9tcyB9OwogLy8gQWxsb3cgYSBsaXR0bGUgbW9yZSB0aGFuIDMwZnBz
IHRvIG1ha2Ugc3VyZSB3ZSBjYW4gYXQgbGVhc3QgaGl0IHRoYXQgZnJhbWUgcmF0ZS4KIHN0YXRp
YyBjb25zdCBTZWNvbmRzIGhhbGZTcGVlZFRocm90dGxpbmdBbmltYXRpb25JbnRlcnZhbCB7IDMw
X21zIH07CiBzdGF0aWMgY29uc3QgU2Vjb25kcyBhZ2dyZXNzaXZlVGhyb3R0bGluZ0FuaW1hdGlv
bkludGVydmFsIHsgMTBfcyB9OwotI2VuZGlmCiAKICNkZWZpbmUgUkVMRUFTRV9MT0dfSUZfQUxM
T1dFRChmbXQsIC4uLikgUkVMRUFTRV9MT0dfSUYocGFnZSgpICYmIHBhZ2UoKS0+aXNBbHdheXNP
bkxvZ2dpbmdBbGxvd2VkKCksIFBlcmZvcm1hbmNlTG9nZ2luZywgIiVwIC0gU2NyaXB0ZWRBbmlt
YXRpb25Db250cm9sbGVyOjoiIGZtdCwgdGhpcywgIyNfX1ZBX0FSR1NfXykKIApAQCAtNTksOSAr
NTYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxl
cjo6U2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyKERvY3VtZW50JiBkb2N1bWVudCwgUGxhdGZv
cm1EaXNwbGF5SUQgZGlzcGxheUlEKQogICAgIDogbV9kb2N1bWVudCgmZG9jdW1lbnQpCi0jaWYg
VVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX1RJTUVSKQogICAgICwgbV9hbmltYXRpb25UaW1l
cigqdGhpcywgJlNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjo6YW5pbWF0aW9uVGltZXJGaXJl
ZCkKLSNlbmRpZgogewogICAgIHdpbmRvd1NjcmVlbkRpZENoYW5nZShkaXNwbGF5SUQpOwogfQpA
QCAtOTEsNyArODYsNyBAQCB2b2lkIFNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjo6cmVzdW1l
KCkKICAgICAgICAgc2NoZWR1bGVBbmltYXRpb24oKTsKIH0KIAotI2lmIFVTRShSRVFVRVNUX0FO
SU1BVElPTl9GUkFNRV9USU1FUikgJiYgVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX0RJU1BM
QVlfTU9OSVRPUikgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisjaWYgVVNFKFJFUVVFU1RfQU5J
TUFUSU9OX0ZSQU1FX0RJU1BMQVlfTU9OSVRPUikgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAK
IHN0YXRpYyBjb25zdCBjaGFyKiB0aHJvdHRsaW5nUmVhc29uVG9TdHJpbmcoU2NyaXB0ZWRBbmlt
YXRpb25Db250cm9sbGVyOjpUaHJvdHRsaW5nUmVhc29uIHJlYXNvbikKIHsKQEAgLTEyNSw3ICsx
MjAsNyBAQCBzdGF0aWMgU3RyaW5nIHRocm90dGxpbmdSZWFzb25zVG9TdHJpbmcoT3B0aW9uU2V0
PFNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjo6VAogCiB2b2lkIFNjcmlwdGVkQW5pbWF0aW9u
Q29udHJvbGxlcjo6YWRkVGhyb3R0bGluZ1JlYXNvbihUaHJvdHRsaW5nUmVhc29uIHJlYXNvbikK
IHsKLSNpZiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfVElNRVIpICYmIFVTRShSRVFVRVNU
X0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IpCisjaWYgVVNFKFJFUVVFU1RfQU5JTUFU
SU9OX0ZSQU1FX0RJU1BMQVlfTU9OSVRPUikKICAgICBpZiAobV90aHJvdHRsaW5nUmVhc29ucy5j
b250YWlucyhyZWFzb24pKQogICAgICAgICByZXR1cm47CiAKQEAgLTE0NCw3ICsxMzksNyBAQCB2
b2lkIFNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjo6YWRkVGhyb3R0bGluZ1JlYXNvbihUaHJv
dHRsaW5nUmVhc29uIHJlYXNvbikKIAogdm9pZCBTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXI6
OnJlbW92ZVRocm90dGxpbmdSZWFzb24oVGhyb3R0bGluZ1JlYXNvbiByZWFzb24pCiB7Ci0jaWYg
VVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX1RJTUVSKSAmJiBVU0UoUkVRVUVTVF9BTklNQVRJ
T05fRlJBTUVfRElTUExBWV9NT05JVE9SKQorI2lmIFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFN
RV9ESVNQTEFZX01PTklUT1IpCiAgICAgaWYgKCFtX3Rocm90dGxpbmdSZWFzb25zLmNvbnRhaW5z
KHJlYXNvbikpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTYzLDcgKzE1OCw3IEBAIHZvaWQgU2Ny
aXB0ZWRBbmltYXRpb25Db250cm9sbGVyOjpyZW1vdmVUaHJvdHRsaW5nUmVhc29uKFRocm90dGxp
bmdSZWFzb24gcmVhc29uCiAKIGJvb2wgU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOjppc1Ro
cm90dGxlZCgpIGNvbnN0CiB7Ci0jaWYgVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX1RJTUVS
KSAmJiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05JVE9SKQorI2lmIFVT
RShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IpCiAgICAgcmV0dXJuICFt
X3Rocm90dGxpbmdSZWFzb25zLmlzRW1wdHkoKTsKICNlbHNlCiAgICAgcmV0dXJuIGZhbHNlOwpA
QCAtMjUxLDcgKzI0Niw3IEBAIHZvaWQgU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOjp3aW5k
b3dTY3JlZW5EaWRDaGFuZ2UoUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxhCiAKIFNlY29uZHMgU2Ny
aXB0ZWRBbmltYXRpb25Db250cm9sbGVyOjppbnRlcnZhbCgpIGNvbnN0CiB7Ci0jaWYgVVNFKFJF
UVVFU1RfQU5JTUFUSU9OX0ZSQU1FX1RJTUVSKSAmJiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJB
TUVfRElTUExBWV9NT05JVE9SKQorI2lmIFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQ
TEFZX01PTklUT1IpCiAgICAgaWYgKG1fdGhyb3R0bGluZ1JlYXNvbnMuY29udGFpbnMoVGhyb3R0
bGluZ1JlYXNvbjo6VmlzdWFsbHlJZGxlKSB8fCBtX3Rocm90dGxpbmdSZWFzb25zLmNvbnRhaW5z
KFRocm90dGxpbmdSZWFzb246Ok91dHNpZGVWaWV3cG9ydCkpCiAgICAgICAgIHJldHVybiBhZ2dy
ZXNzaXZlVGhyb3R0bGluZ0FuaW1hdGlvbkludGVydmFsOwogCkBAIC0yNzYsNyArMjcxLDYgQEAg
dm9pZCBTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXI6OnNjaGVkdWxlQW5pbWF0aW9uKCkKICAg
ICBpZiAoIXJlcXVlc3RBbmltYXRpb25GcmFtZUVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwog
Ci0jaWYgVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX1RJTUVSKQogI2lmIFVTRShSRVFVRVNU
X0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IpCiAgICAgaWYgKCFtX2lzVXNpbmdUaW1l
ciAmJiAhaXNUaHJvdHRsZWQoKSkgewogICAgICAgICBpZiAoRGlzcGxheVJlZnJlc2hNb25pdG9y
TWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLnNjaGVkdWxlQW5pbWF0aW9uKCp0aGlzKSkKQEAgLTMw
NCwyOSArMjk4LDIwIEBAIHZvaWQgU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOjpzY2hlZHVs
ZUFuaW1hdGlvbigpCiAgICAgfQogCiAgICAgbV9hbmltYXRpb25UaW1lci5zdGFydE9uZVNob3Qo
c2NoZWR1bGVEZWxheSk7Ci0KLSNlbHNlCi0gICAgaWYgKEZyYW1lVmlldyogZnJhbWVWaWV3ID0g
bV9kb2N1bWVudC0+dmlldygpKQotICAgICAgICBmcmFtZVZpZXctPnNjaGVkdWxlQW5pbWF0aW9u
KCk7Ci0jZW5kaWYKIH0KIAotI2lmIFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9USU1FUikK
IHZvaWQgU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOjphbmltYXRpb25UaW1lckZpcmVkKCkK
IHsKICAgICBtX2xhc3RBbmltYXRpb25GcmFtZVRpbWVzdGFtcCA9IG1fZG9jdW1lbnQtPmRvbVdp
bmRvdygpLT5ub3dUaW1lc3RhbXAoKTsKICAgICBzZXJ2aWNlU2NyaXB0ZWRBbmltYXRpb25zKG1f
bGFzdEFuaW1hdGlvbkZyYW1lVGltZXN0YW1wKTsKIH0KKwogI2lmIFVTRShSRVFVRVNUX0FOSU1B
VElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IpCiB2b2lkIFNjcmlwdGVkQW5pbWF0aW9uQ29udHJv
bGxlcjo6ZGlzcGxheVJlZnJlc2hGaXJlZCgpCiB7CiAgICAgc2VydmljZVNjcmlwdGVkQW5pbWF0
aW9ucyhtX2RvY3VtZW50LT5kb21XaW5kb3coKS0+bm93VGltZXN0YW1wKCkpOwogfQotI2VuZGlm
Ci0jZW5kaWYKIAotCi0jaWYgVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX0RJU1BMQVlfTU9O
SVRPUikKIFJlZlB0cjxEaXNwbGF5UmVmcmVzaE1vbml0b3I+IFNjcmlwdGVkQW5pbWF0aW9uQ29u
dHJvbGxlcjo6Y3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9yKFBsYXRmb3JtRGlzcGxheUlEIGRp
c3BsYXlJRCkgY29uc3QKIHsKICAgICBpZiAoIW1fZG9jdW1lbnQtPnBhZ2UoKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuaAppbmRleCA2ZjZh
NDBjMDczZi4uMDhkOTk2N2EyZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3Jp
cHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0
ZWRBbmltYXRpb25Db250cm9sbGVyLmgKQEAgLTI3LDE3ICsyNywxNCBAQAogCiAjaW5jbHVkZSAi
RE9NVGltZVN0YW1wLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TY3JlZW4uaCIKKyNpbmNsdWRlICJU
aW1lci5oIgogI2luY2x1ZGUgPHd0Zi9PcHRpb25TZXQuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CiAKLSNpZiBVU0UoUkVRVUVTVF9B
TklNQVRJT05fRlJBTUVfVElNRVIpCi0jaW5jbHVkZSAiVGltZXIuaCIKLSNlbmRpZgotCi0jaWYg
VVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX1RJTUVSKSAmJiBVU0UoUkVRVUVTVF9BTklNQVRJ
T05fRlJBTUVfRElTUExBWV9NT05JVE9SKQorI2lmIFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFN
RV9ESVNQTEFZX01PTklUT1IpCiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiQ2hyb21l
Q2xpZW50LmgiCiAjaW5jbHVkZSAiRGlzcGxheVJlZnJlc2hNb25pdG9yQ2xpZW50LmgiCkBAIC05
OCwxNCArOTUsMTEgQEAgcHJpdmF0ZToKICAgICBpbnQgbV9zdXNwZW5kQ291bnQgeyAwIH07CiAK
ICAgICB2b2lkIHNjaGVkdWxlQW5pbWF0aW9uKCk7Ci0KLSNpZiBVU0UoUkVRVUVTVF9BTklNQVRJ
T05fRlJBTUVfVElNRVIpCiAgICAgdm9pZCBhbmltYXRpb25UaW1lckZpcmVkKCk7CiAgICAgVGlt
ZXIgbV9hbmltYXRpb25UaW1lcjsKICAgICBkb3VibGUgbV9sYXN0QW5pbWF0aW9uRnJhbWVUaW1l
c3RhbXAgeyAwIH07Ci0jZW5kaWYKIAotI2lmIFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9U
SU1FUikgJiYgVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX0RJU1BMQVlfTU9OSVRPUikKKyNp
ZiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05JVE9SKQogICAgIC8vIE92
ZXJyaWRlIGZvciBEaXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnQKICAgICB2b2lkIGRpc3BsYXlS
ZWZyZXNoRmlyZWQoKSBvdmVycmlkZTsKICAgICBSZWZQdHI8RGlzcGxheVJlZnJlc2hNb25pdG9y
PiBjcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3IoUGxhdGZvcm1EaXNwbGF5SUQpIGNvbnN0IG92
ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5o
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IGY1NjZjMzY0ZmJm
Li4wYWE1ODMwNDg4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApAQCAtMTEy
LDEwICsxMTIsNiBAQCBjbGFzcyBFbXB0eUNocm9tZUNsaWVudCA6IHB1YmxpYyBDaHJvbWVDbGll
bnQgewogICAgIHZvaWQgcmVzZXRVcGRhdGVBdGxhc0ZvclRlc3RpbmcoKSBmaW5hbCB7IH0KICNl
bmRpZgogCi0jaWYgIVVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9USU1FUikKLSAgICB2b2lk
IHNjaGVkdWxlQW5pbWF0aW9uKCkgZmluYWwgeyB9Ci0jZW5kaWYKLQogICAgIEludFBvaW50IHNj
cmVlblRvUm9vdFZpZXcoY29uc3QgSW50UG9pbnQmIHApIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHA7
IH0KICAgICBJbnRSZWN0IHJvb3RWaWV3VG9TY3JlZW4oY29uc3QgSW50UmVjdCYgcikgY29uc3Qg
ZmluYWwgeyByZXR1cm4gcjsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0No
cm9tZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKaW5kZXggYTViMDBhZTBi
MTYuLmY3YWNlZDc4ODE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCkBAIC00NzQsMTMgKzQ3NCw2
IEBAIHZvaWQgQ2hyb21lOjpzZXRDdXJzb3JIaWRkZW5VbnRpbE1vdXNlTW92ZXMoYm9vbCBoaWRk
ZW5VbnRpbE1vdXNlTW92ZXMpCiAjZW5kaWYKIH0KIAotdm9pZCBDaHJvbWU6OnNjaGVkdWxlQW5p
bWF0aW9uKCkKLXsKLSNpZiAhVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX1RJTUVSKQotICAg
IG1fY2xpZW50LnNjaGVkdWxlQW5pbWF0aW9uKCk7Ci0jZW5kaWYKLX0KLQogUGxhdGZvcm1EaXNw
bGF5SUQgQ2hyb21lOjpkaXNwbGF5SUQoKSBjb25zdAogewogICAgIHJldHVybiBtX2Rpc3BsYXlJ
RDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0Nocm9tZS5oCmluZGV4IGIzYzQ2NDdjMWFlLi44ZWJkYjVkYjM1NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZS5oCkBAIC04NSw3ICs4NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEN1cnNv
cihjb25zdCBDdXJzb3ImKSBvdmVycmlkZTsKICAgICB2b2lkIHNldEN1cnNvckhpZGRlblVudGls
TW91c2VNb3Zlcyhib29sKSBvdmVycmlkZTsKIAotICAgIHZvaWQgc2NoZWR1bGVBbmltYXRpb24o
KSBvdmVycmlkZTsKKyAgICB2b2lkIHNjaGVkdWxlQW5pbWF0aW9uKCkgb3ZlcnJpZGUgeyB9CiAK
ICAgICBQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2
b2lkIHdpbmRvd1NjcmVlbkRpZENoYW5nZShQbGF0Zm9ybURpc3BsYXlJRCkgb3ZlcnJpZGU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCAwMWFlNDA5MGE2NS4uODQ1NmZlZTYyNzUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMTg1LDEwICsxODUsNiBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIHNldEN1cnNvckhpZGRlblVudGlsTW91c2VNb3Zlcyhib29s
KSA9IDA7CiAjZW5kaWYKIAotI2lmICFVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfVElNRVIp
Ci0gICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlQW5pbWF0aW9uKCkgPSAwOwotI2VuZGlmCi0KICAg
ICB2aXJ0dWFsIEZsb2F0U2l6ZSBzY3JlZW5TaXplKCkgY29uc3QgeyByZXR1cm4gY29uc3RfY2Fz
dDxDaHJvbWVDbGllbnQmPigqdGhpcykud2luZG93UmVjdCgpLnNpemUoKTsgfQogICAgIHZpcnR1
YWwgRmxvYXRTaXplIGF2YWlsYWJsZVNjcmVlblNpemUoKSBjb25zdCB7IHJldHVybiBjb25zdF9j
YXN0PENocm9tZUNsaWVudCY+KCp0aGlzKS53aW5kb3dSZWN0KCkuc2l6ZSgpOyB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvblNtb290aC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguY3BwCmluZGV4
IDdhNWYxZWE5YWRlLi40YzZiODE0ZjkwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguY3BwCkBAIC00NSwxMSArNDUsNyBAQCBTY3JvbGxB
bmltYXRpb25TbW9vdGg6OlNjcm9sbEFuaW1hdGlvblNtb290aChTY3JvbGxhYmxlQXJlYSYgc2Ny
b2xsYWJsZUFyZWEsIGNvbgogICAgICwgbV9ub3RpZnlQb3NpdGlvbkNoYW5nZWRGdW5jdGlvbihX
VEZNb3ZlKG5vdGlmeVBvc2l0aW9uQ2hhbmdlZEZ1bmN0aW9uKSkKICAgICAsIG1faG9yaXpvbnRh
bERhdGEocG9zaXRpb24ueCgpLCBzY3JvbGxhYmxlQXJlYS52aXNpYmxlV2lkdGgoKSkKICAgICAs
IG1fdmVydGljYWxEYXRhKHBvc2l0aW9uLnkoKSwgc2Nyb2xsYWJsZUFyZWEudmlzaWJsZUhlaWdo
dCgpKQotI2lmIFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9USU1FUikKICAgICAsIG1fYW5p
bWF0aW9uVGltZXIoKnRoaXMsICZTY3JvbGxBbmltYXRpb25TbW9vdGg6OmFuaW1hdGlvblRpbWVy
RmlyZWQpCi0jZWxzZQotICAgICwgbV9hbmltYXRpb25BY3RpdmUoZmFsc2UpCi0jZW5kaWYKIHsK
IH0KIApAQCAtNzQsMTEgKzcwLDcgQEAgYm9vbCBTY3JvbGxBbmltYXRpb25TbW9vdGg6OnNjcm9s
bChTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgU2Nyb2xsR3JhbnUKIAogdm9pZCBT
Y3JvbGxBbmltYXRpb25TbW9vdGg6OnN0b3AoKQogewotI2lmIFVTRShSRVFVRVNUX0FOSU1BVElP
Tl9GUkFNRV9USU1FUikKICAgICBtX2FuaW1hdGlvblRpbWVyLnN0b3AoKTsKLSNlbHNlCi0gICAg
bV9hbmltYXRpb25BY3RpdmUgPSBmYWxzZTsKLSNlbmRpZgogfQogCiB2b2lkIFNjcm9sbEFuaW1h
dGlvblNtb290aDo6dXBkYXRlVmlzaWJsZUxlbmd0aHMoKQpAQCAtOTQsMTQgKzg2LDYgQEAgdm9p
ZCBTY3JvbGxBbmltYXRpb25TbW9vdGg6OnNldEN1cnJlbnRQb3NpdGlvbihjb25zdCBGbG9hdFBv
aW50JiBwb3NpdGlvbikKICAgICBtX3ZlcnRpY2FsRGF0YSA9IFBlckF4aXNEYXRhKHBvc2l0aW9u
LnkoKSwgbV92ZXJ0aWNhbERhdGEudmlzaWJsZUxlbmd0aCk7CiB9CiAKLSNpZiAhVVNFKFJFUVVF
U1RfQU5JTUFUSU9OX0ZSQU1FX1RJTUVSKQotdm9pZCBTY3JvbGxBbmltYXRpb25TbW9vdGg6OnNl
cnZpY2VBbmltYXRpb24oKQotewotICAgIGlmIChtX2FuaW1hdGlvbkFjdGl2ZSkKLSAgICAgICAg
YW5pbWF0aW9uVGltZXJGaXJlZCgpOwotfQotI2VuZGlmCi0KIFNjcm9sbEFuaW1hdGlvblNtb290
aDo6flNjcm9sbEFuaW1hdGlvblNtb290aCgpCiB7CiB9CkBAIC00MTAsMzcgKzM5NCwxOSBAQCB2
b2lkIFNjcm9sbEFuaW1hdGlvblNtb290aDo6YW5pbWF0aW9uVGltZXJGaXJlZCgpCiAgICAgICAg
IGNvbnRpbnVlQW5pbWF0aW9uID0gdHJ1ZTsKIAogICAgIGlmIChjb250aW51ZUFuaW1hdGlvbikK
LSNpZiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfVElNRVIpCiAgICAgICAgIHN0YXJ0TmV4
dFRpbWVyKHN0ZDo6bWF4KG1pbmltdW1UaW1lckludGVydmFsLCBkZWx0YVRvTmV4dEZyYW1lKSk7
Ci0jZWxzZQotICAgICAgICBzdGFydE5leHRUaW1lcigpOwotICAgIGVsc2UKLSAgICAgICAgbV9h
bmltYXRpb25BY3RpdmUgPSBmYWxzZTsKLSNlbmRpZgogCiAgICAgbV9ub3RpZnlQb3NpdGlvbkNo
YW5nZWRGdW5jdGlvbihGbG9hdFBvaW50KG1faG9yaXpvbnRhbERhdGEuY3VycmVudFBvc2l0aW9u
LCBtX3ZlcnRpY2FsRGF0YS5jdXJyZW50UG9zaXRpb24pKTsKIH0KIAotI2lmIFVTRShSRVFVRVNU
X0FOSU1BVElPTl9GUkFNRV9USU1FUikKIHZvaWQgU2Nyb2xsQW5pbWF0aW9uU21vb3RoOjpzdGFy
dE5leHRUaW1lcihTZWNvbmRzIGRlbGF5KQogewogICAgIG1fYW5pbWF0aW9uVGltZXIuc3RhcnRP
bmVTaG90KGRlbGF5KTsKIH0KLSNlbHNlCi12b2lkIFNjcm9sbEFuaW1hdGlvblNtb290aDo6c3Rh
cnROZXh0VGltZXIoKQotewotICAgIGlmIChtX3Njcm9sbGFibGVBcmVhLnNjaGVkdWxlQW5pbWF0
aW9uKCkpCi0gICAgICAgIG1fYW5pbWF0aW9uQWN0aXZlID0gdHJ1ZTsKLX0KLSNlbmRpZgogCiBi
b29sIFNjcm9sbEFuaW1hdGlvblNtb290aDo6YW5pbWF0aW9uVGltZXJBY3RpdmUoKSBjb25zdAog
ewotI2lmIFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9USU1FUikKICAgICByZXR1cm4gbV9h
bmltYXRpb25UaW1lci5pc0FjdGl2ZSgpOwotI2Vsc2UKLSAgICByZXR1cm4gbV9hbmltYXRpb25B
Y3RpdmU7Ci0jZW5kaWYKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguaAppbmRleCA4ZDZmOWM5NWZk
Yy4uMjQzOTY0OGYxODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bEFuaW1hdGlvblNtb290aC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFu
aW1hdGlvblNtb290aC5oCkBAIC0yMyw4ICsyMyw3IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBTY3JvbGxBbmltYXRpb25TbW9vdGhfaAotI2Rl
ZmluZSBTY3JvbGxBbmltYXRpb25TbW9vdGhfaAorI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJT
Y3JvbGxBbmltYXRpb24uaCIKIApAQCAtNTUsOSArNTQsNiBAQCBwcml2YXRlOgogICAgIHZvaWQg
c3RvcCgpIG92ZXJyaWRlOwogICAgIHZvaWQgdXBkYXRlVmlzaWJsZUxlbmd0aHMoKSBvdmVycmlk
ZTsKICAgICB2b2lkIHNldEN1cnJlbnRQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50Jikgb3ZlcnJp
ZGU7Ci0jaWYgIVVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9USU1FUikKLSAgICB2b2lkIHNl
cnZpY2VBbmltYXRpb24oKSBvdmVycmlkZTsKLSNlbmRpZgogCiAgICAgc3RydWN0IFBlckF4aXNE
YXRhIHsKICAgICAgICAgUGVyQXhpc0RhdGEoKSA9IGRlbGV0ZTsKQEAgLTk2LDEyICs5Miw4IEBA
IHByaXZhdGU6CiAgICAgYm9vbCB1cGRhdGVQZXJBeGlzRGF0YShQZXJBeGlzRGF0YSYsIFNjcm9s
bEdyYW51bGFyaXR5LCBmbG9hdCBkZWx0YSwgZmxvYXQgbWluU2Nyb2xsUG9zaXRpb24sIGZsb2F0
IG1heFNjcm9sbFBvc2l0aW9uKTsKICAgICBib29sIGFuaW1hdGVTY3JvbGwoUGVyQXhpc0RhdGEm
LCBNb25vdG9uaWNUaW1lIGN1cnJlbnRUaW1lKTsKIAotI2lmIFVTRShSRVFVRVNUX0FOSU1BVElP
Tl9GUkFNRV9USU1FUikKICAgICB2b2lkIHJlcXVlc3RBbmltYXRpb25UaW1lckZpcmVkKCk7CiAg
ICAgdm9pZCBzdGFydE5leHRUaW1lcihTZWNvbmRzIGRlbGF5KTsKLSNlbHNlCi0gICAgdm9pZCBz
dGFydE5leHRUaW1lcigpOwotI2VuZGlmCiAgICAgdm9pZCBhbmltYXRpb25UaW1lckZpcmVkKCk7
CiAgICAgYm9vbCBhbmltYXRpb25UaW1lckFjdGl2ZSgpIGNvbnN0OwogCkBAIC0xMTEsMTUgKzEw
Myw5IEBAIHByaXZhdGU6CiAgICAgUGVyQXhpc0RhdGEgbV92ZXJ0aWNhbERhdGE7CiAKICAgICBN
b25vdG9uaWNUaW1lIG1fc3RhcnRUaW1lOwotI2lmIFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFN
RV9USU1FUikKICAgICBUaW1lciBtX2FuaW1hdGlvblRpbWVyOwotI2Vsc2UKLSAgICBib29sIG1f
YW5pbWF0aW9uQWN0aXZlIHsgZmFsc2UgfTsKLSNlbmRpZgotCiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU01PT1RIX1NDUk9MTElORykKLSNlbmRpZiAv
LyBTY3JvbGxBbmltYXRpb25TbW9vdGhfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDhlYTJlYjMxYWRhLi4wZjJj
M2MxNTAzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE3LTA1LTMxICBEb24gT2xt
c3RlYWQgIDxkb24ub2xtc3RlYWRAYW0uc29ueS5jb20+CisKKyAgICAgICAgW1dlYkNvcmVdIEVu
YWJsZSBSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9USU1FUiBmb3IgYWxsIHBvcnRzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzI3ODAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hy
b21lQ2xpZW50OjpzY2hlZHVsZUFuaW1hdGlvbik6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6Q29tcG9zaXRpbmdDb29yZGluYXRvcjo6c3luY0Rpc3BsYXlT
dGF0ZSk6CisKIDIwMTctMDUtMzEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgog
CiAgICAgICAgIE1ha2UgV2ViUlRDIGxlZ2FjeSBBUEkgc3dpdGNoIGFuIGV4cGVyaW1lbnRhbCBm
ZWF0dXJlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggMWY1YTk0YmU4YTUuLjFjNmJhZmFj
Y2E2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC04MDYsMTcgKzgwNiw2IEBAIFJlZlB0
cjxJY29uPiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZUljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8
U3RyaW5nPiYgZmlsZW5hbWVzCiAKICNlbmRpZgogCi0jaWYgIVVTRShSRVFVRVNUX0FOSU1BVElP
Tl9GUkFNRV9USU1FUikKLQotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNjaGVkdWxlQW5pbWF0aW9u
KCkKLXsKLSNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCi0gICAgbV9wYWdlLmRyYXdpbmdB
cmVhKCktPmxheWVyVHJlZUhvc3QoKS0+c2NoZWR1bGVBbmltYXRpb24oKTsKLSNlbmRpZgotfQot
Ci0jZW5kaWYKLQogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmRpZEFzc29jaWF0ZUZvcm1Db250cm9s
cyhjb25zdCBWZWN0b3I8UmVmUHRyPEVsZW1lbnQ+PiYgZWxlbWVudHMpCiB7CiAgICAgcmV0dXJu
IG1fcGFnZS5pbmplY3RlZEJ1bmRsZUZvcm1DbGllbnQoKS5kaWRBc3NvY2lhdGVGb3JtQ29udHJv
bHMoJm1fcGFnZSwgZWxlbWVudHMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggODc4N2QwZWNm
MmYuLjRlMDMxNjFlZDhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTE4OSwxMCArMTg5LDYg
QEAgcHJpdmF0ZToKICAgICB2b2lkIHNldEN1cnNvckhpZGRlblVudGlsTW91c2VNb3Zlcyhib29s
KSBmaW5hbDsKICNlbmRpZgogCi0jaWYgIVVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9USU1F
UikKLSAgICB2b2lkIHNjaGVkdWxlQW5pbWF0aW9uKCkgZmluYWw7Ci0jZW5kaWYKLSAgICAKICNp
ZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgIGJvb2wgcmVxdWVzdFBvaW50ZXJMb2NrKCkgZmlu
YWw7CiAgICAgdm9pZCByZXF1ZXN0UG9pbnRlclVubG9jaygpIGZpbmFsOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29t
cG9zaXRpbmdDb29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmNwcAppbmRleCA3
N2MyYmRkMDgzOC4uNzViYjdmMzliMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdy
YXBoaWNzL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuY3BwCkBAIC0xNTQsMTEgKzE1NCw2IEBAIGRv
dWJsZSBDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjp0aW1lc3RhbXAoKSBjb25zdAogCiB2b2lkIENv
bXBvc2l0aW5nQ29vcmRpbmF0b3I6OnN5bmNEaXNwbGF5U3RhdGUoKQogewotI2lmICFVU0UoUkVR
VUVTVF9BTklNQVRJT05fRlJBTUVfVElNRVIpICYmICFVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJB
TUVfRElTUExBWV9NT05JVE9SKQotICAgIC8vIE1ha2Ugc3VyZSB0aGF0IGFueSBwcmV2aW91c2x5
IHJlZ2lzdGVyZWQgYW5pbWF0aW9uIGNhbGxiYWNrcyBhcmUgYmVpbmcgZXhlY3V0ZWQgYmVmb3Jl
IHdlIGZsdXNoIHRoZSBsYXllcnMuCi0gICAgbV9sYXN0QW5pbWF0aW9uU2VydmljZVRpbWUgPSB0
aW1lc3RhbXAoKTsKLSAgICBtX3BhZ2UtPm1haW5GcmFtZSgpLnZpZXcoKS0+c2VydmljZVNjcmlw
dGVkQW5pbWF0aW9ucygpOwotI2VuZGlmCiAgICAgbV9wYWdlLT5tYWluRnJhbWUoKS52aWV3KCkt
PnVwZGF0ZUxheW91dEFuZFN0eWxlSWZOZWVkZWRSZWN1cnNpdmUoKTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>311666</attachid>
            <date>2017-05-31 17:41:48 -0700</date>
            <delta_ts>2017-06-06 15:29:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172780.diff</filename>
            <type>text/plain</type>
            <size>18473</size>
            <attacher name="Don Olmstead">don.olmstead</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggNTcxMmRjMGEwOWQuLjg3YWRhOWU5ODM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE3
LTA1LTMxICBEb24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRAYW0uc29ueS5jb20+CisKKyAgICAg
ICAgW1dlYkNvcmVdIEVuYWJsZSBSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9USU1FUiBmb3IgYWxs
IHBvcnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NzI3ODAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IHd0Zi9QbGF0Zm9ybS5oOgorCiAyMDE3LTA1LTMxICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxs
ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbGFuZCByMjE2ODA4LCB1bmRlcmx5aW5nIGxsZGIg
YnVnIGhhcyBiZWVuIGZpeGVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0u
aCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKaW5kZXggMGM5NTZmNGZmNjMuLmFiNWZlMzIx
ZWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtLmgKQEAgLTExMDEsMTAgKzExMDEsNiBAQAogI2RlZmluZSBVU0VfVklE
RU9UT09MQk9YIDEKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdU
SykgfHwgUExBVEZPUk0oV1BFKSB8fCAoUExBVEZPUk0oV0lOKSAmJiAhVVNFKFdJTkdESSkpCi0j
ZGVmaW5lIFVTRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9USU1FUiAxCi0jZW5kaWYKLQogI2lm
IFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICNkZWZp
bmUgVVNFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX0RJU1BMQVlfTU9OSVRPUiAxCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkOWEyYmRhODVjOC4uYmJlZGRhMWI0ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNiBAQAorMjAxNy0wNS0zMSAgRG9uIE9sbXN0ZWFkICA8ZG9uLm9sbXN0ZWFkQGFtLnNv
bnkuY29tPgorCisgICAgICAgIFtXZWJDb3JlXSBFbmFibGUgUkVRVUVTVF9BTklNQVRJT05fRlJB
TUVfVElNRVIgZm9yIGFsbCBwb3J0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTcyNzgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBObyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAg
ICAgICAgKiBkb20vU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjo6U2NyaXB0ZWRBbmltYXRpb25Db250
cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjo6
YWRkVGhyb3R0bGluZ1JlYXNvbik6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRlZEFuaW1hdGlv
bkNvbnRyb2xsZXI6OnJlbW92ZVRocm90dGxpbmdSZWFzb24pOgorICAgICAgICAoV2ViQ29yZTo6
U2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOjppc1Rocm90dGxlZCk6CisgICAgICAgIChXZWJD
b3JlOjpTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXI6OmludGVydmFsKToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjo6c2NoZWR1bGVBbmltYXRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6U2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOjpkaXNwbGF5UmVm
cmVzaEZpcmVkKToKKyAgICAgICAgKiBkb20vU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmg6
CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAqIHBhZ2UvQ2hyb21l
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6c2NoZWR1bGVBbmltYXRpb24pOiBEZWxl
dGVkLgorICAgICAgICAqIHBhZ2UvQ2hyb21lLmg6CisgICAgICAgICogcGFnZS9DaHJvbWVDbGll
bnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9DdXJsLmNtYWtlOiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsQW5pbWF0aW9uU21vb3RoOjpTY3JvbGxBbmltYXRpb25TbW9vdGgpOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsQW5pbWF0aW9uU21vb3RoOjpzdG9wKToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbEFuaW1hdGlvblNtb290aDo6YW5pbWF0aW9uVGltZXJGaXJlZCk6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxBbmltYXRpb25TbW9vdGg6OnN0YXJ0TmV4dFRpbWVyKToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbEFuaW1hdGlvblNtb290aDo6YW5pbWF0aW9uVGltZXJBY3RpdmUpOgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0aW9uU21vb3RoOjpzZXJ2aWNlQW5pbWF0aW9uKTog
RGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguaDoKKwog
MjAxNy0wNS0zMSAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAg
Q3Jhc2hUcmFjZXI6IFJlZ3Jlc3Npb24gOiBjb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQgYXQg
U1RQIHJlc3BvbnNpYmxlIDo6IGNvbS5hcHBsZS5XZWJDb3JlOiBXZWJDb3JlOjpTaGFyZWRCdWZm
ZXI6OmRhdGEgY29uc3QgKyAxMQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Njcmlw
dGVkQW5pbWF0aW9uQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0ZWRB
bmltYXRpb25Db250cm9sbGVyLmNwcAppbmRleCBlZmE0ZDBiODZkYS4uODU1ODA3Y2FiNzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIu
Y3BwCkBAIC0zOCwyMCArMzgsMTcgQEAKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUmVx
dWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgorI2lu
Y2x1ZGUgPGFsZ29yaXRobT4KKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRl
IDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1N5c3RlbVRyYWNpbmcuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKLSNpZiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJB
TUVfVElNRVIpCi0jaW5jbHVkZSA8YWxnb3JpdGhtPgotI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGlt
ZS5oPgotCiAvLyBBbGxvdyBhIGxpdHRsZSBtb3JlIHRoYW4gNjBmcHMgdG8gbWFrZSBzdXJlIHdl
IGNhbiBhdCBsZWFzdCBoaXQgdGhhdCBmcmFtZSByYXRlLgogc3RhdGljIGNvbnN0IFNlY29uZHMg
ZnVsbFNwZWVkQW5pbWF0aW9uSW50ZXJ2YWwgeyAxNV9tcyB9OwogLy8gQWxsb3cgYSBsaXR0bGUg
bW9yZSB0aGFuIDMwZnBzIHRvIG1ha2Ugc3VyZSB3ZSBjYW4gYXQgbGVhc3QgaGl0IHRoYXQgZnJh
bWUgcmF0ZS4KIHN0YXRpYyBjb25zdCBTZWNvbmRzIGhhbGZTcGVlZFRocm90dGxpbmdBbmltYXRp
b25JbnRlcnZhbCB7IDMwX21zIH07CiBzdGF0aWMgY29uc3QgU2Vjb25kcyBhZ2dyZXNzaXZlVGhy
b3R0bGluZ0FuaW1hdGlvbkludGVydmFsIHsgMTBfcyB9OwotI2VuZGlmCiAKICNkZWZpbmUgUkVM
RUFTRV9MT0dfSUZfQUxMT1dFRChmbXQsIC4uLikgUkVMRUFTRV9MT0dfSUYocGFnZSgpICYmIHBh
Z2UoKS0+aXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIFBlcmZvcm1hbmNlTG9nZ2luZywgIiVw
IC0gU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOjoiIGZtdCwgdGhpcywgIyNfX1ZBX0FSR1Nf
XykKIApAQCAtNTksOSArNTYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFNjcmlwdGVkQW5p
bWF0aW9uQ29udHJvbGxlcjo6U2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyKERvY3VtZW50JiBk
b2N1bWVudCwgUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlEKQogICAgIDogbV9kb2N1bWVudCgm
ZG9jdW1lbnQpCi0jaWYgVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX1RJTUVSKQogICAgICwg
bV9hbmltYXRpb25UaW1lcigqdGhpcywgJlNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjo6YW5p
bWF0aW9uVGltZXJGaXJlZCkKLSNlbmRpZgogewogICAgIHdpbmRvd1NjcmVlbkRpZENoYW5nZShk
aXNwbGF5SUQpOwogfQpAQCAtOTEsNyArODYsNyBAQCB2b2lkIFNjcmlwdGVkQW5pbWF0aW9uQ29u
dHJvbGxlcjo6cmVzdW1lKCkKICAgICAgICAgc2NoZWR1bGVBbmltYXRpb24oKTsKIH0KIAotI2lm
IFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9USU1FUikgJiYgVVNFKFJFUVVFU1RfQU5JTUFU
SU9OX0ZSQU1FX0RJU1BMQVlfTU9OSVRPUikgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisjaWYg
VVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX0RJU1BMQVlfTU9OSVRPUikgJiYgIVJFTEVBU0Vf
TE9HX0RJU0FCTEVECiAKIHN0YXRpYyBjb25zdCBjaGFyKiB0aHJvdHRsaW5nUmVhc29uVG9TdHJp
bmcoU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOjpUaHJvdHRsaW5nUmVhc29uIHJlYXNvbikK
IHsKQEAgLTEyNSw3ICsxMjAsNyBAQCBzdGF0aWMgU3RyaW5nIHRocm90dGxpbmdSZWFzb25zVG9T
dHJpbmcoT3B0aW9uU2V0PFNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjo6VAogCiB2b2lkIFNj
cmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjo6YWRkVGhyb3R0bGluZ1JlYXNvbihUaHJvdHRsaW5n
UmVhc29uIHJlYXNvbikKIHsKLSNpZiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfVElNRVIp
ICYmIFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IpCisjaWYgVVNF
KFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX0RJU1BMQVlfTU9OSVRPUikKICAgICBpZiAobV90aHJv
dHRsaW5nUmVhc29ucy5jb250YWlucyhyZWFzb24pKQogICAgICAgICByZXR1cm47CiAKQEAgLTE0
NCw3ICsxMzksNyBAQCB2b2lkIFNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjo6YWRkVGhyb3R0
bGluZ1JlYXNvbihUaHJvdHRsaW5nUmVhc29uIHJlYXNvbikKIAogdm9pZCBTY3JpcHRlZEFuaW1h
dGlvbkNvbnRyb2xsZXI6OnJlbW92ZVRocm90dGxpbmdSZWFzb24oVGhyb3R0bGluZ1JlYXNvbiBy
ZWFzb24pCiB7Ci0jaWYgVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX1RJTUVSKSAmJiBVU0Uo
UkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05JVE9SKQorI2lmIFVTRShSRVFVRVNU
X0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IpCiAgICAgaWYgKCFtX3Rocm90dGxpbmdS
ZWFzb25zLmNvbnRhaW5zKHJlYXNvbikpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTYzLDcgKzE1
OCw3IEBAIHZvaWQgU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOjpyZW1vdmVUaHJvdHRsaW5n
UmVhc29uKFRocm90dGxpbmdSZWFzb24gcmVhc29uCiAKIGJvb2wgU2NyaXB0ZWRBbmltYXRpb25D
b250cm9sbGVyOjppc1Rocm90dGxlZCgpIGNvbnN0CiB7Ci0jaWYgVVNFKFJFUVVFU1RfQU5JTUFU
SU9OX0ZSQU1FX1RJTUVSKSAmJiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9N
T05JVE9SKQorI2lmIFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1Ip
CiAgICAgcmV0dXJuICFtX3Rocm90dGxpbmdSZWFzb25zLmlzRW1wdHkoKTsKICNlbHNlCiAgICAg
cmV0dXJuIGZhbHNlOwpAQCAtMjUxLDcgKzI0Niw3IEBAIHZvaWQgU2NyaXB0ZWRBbmltYXRpb25D
b250cm9sbGVyOjp3aW5kb3dTY3JlZW5EaWRDaGFuZ2UoUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxh
CiAKIFNlY29uZHMgU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOjppbnRlcnZhbCgpIGNvbnN0
CiB7Ci0jaWYgVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX1RJTUVSKSAmJiBVU0UoUkVRVUVT
VF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05JVE9SKQorI2lmIFVTRShSRVFVRVNUX0FOSU1B
VElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IpCiAgICAgaWYgKG1fdGhyb3R0bGluZ1JlYXNvbnMu
Y29udGFpbnMoVGhyb3R0bGluZ1JlYXNvbjo6VmlzdWFsbHlJZGxlKSB8fCBtX3Rocm90dGxpbmdS
ZWFzb25zLmNvbnRhaW5zKFRocm90dGxpbmdSZWFzb246Ok91dHNpZGVWaWV3cG9ydCkpCiAgICAg
ICAgIHJldHVybiBhZ2dyZXNzaXZlVGhyb3R0bGluZ0FuaW1hdGlvbkludGVydmFsOwogCkBAIC0y
NzYsNyArMjcxLDYgQEAgdm9pZCBTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXI6OnNjaGVkdWxl
QW5pbWF0aW9uKCkKICAgICBpZiAoIXJlcXVlc3RBbmltYXRpb25GcmFtZUVuYWJsZWQoKSkKICAg
ICAgICAgcmV0dXJuOwogCi0jaWYgVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX1RJTUVSKQog
I2lmIFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IpCiAgICAgaWYg
KCFtX2lzVXNpbmdUaW1lciAmJiAhaXNUaHJvdHRsZWQoKSkgewogICAgICAgICBpZiAoRGlzcGxh
eVJlZnJlc2hNb25pdG9yTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLnNjaGVkdWxlQW5pbWF0aW9u
KCp0aGlzKSkKQEAgLTMwNCwyOSArMjk4LDIwIEBAIHZvaWQgU2NyaXB0ZWRBbmltYXRpb25Db250
cm9sbGVyOjpzY2hlZHVsZUFuaW1hdGlvbigpCiAgICAgfQogCiAgICAgbV9hbmltYXRpb25UaW1l
ci5zdGFydE9uZVNob3Qoc2NoZWR1bGVEZWxheSk7Ci0KLSNlbHNlCi0gICAgaWYgKEZyYW1lVmll
dyogZnJhbWVWaWV3ID0gbV9kb2N1bWVudC0+dmlldygpKQotICAgICAgICBmcmFtZVZpZXctPnNj
aGVkdWxlQW5pbWF0aW9uKCk7Ci0jZW5kaWYKIH0KIAotI2lmIFVTRShSRVFVRVNUX0FOSU1BVElP
Tl9GUkFNRV9USU1FUikKIHZvaWQgU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOjphbmltYXRp
b25UaW1lckZpcmVkKCkKIHsKICAgICBtX2xhc3RBbmltYXRpb25GcmFtZVRpbWVzdGFtcCA9IG1f
ZG9jdW1lbnQtPmRvbVdpbmRvdygpLT5ub3dUaW1lc3RhbXAoKTsKICAgICBzZXJ2aWNlU2NyaXB0
ZWRBbmltYXRpb25zKG1fbGFzdEFuaW1hdGlvbkZyYW1lVGltZXN0YW1wKTsKIH0KKwogI2lmIFVT
RShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IpCiB2b2lkIFNjcmlwdGVk
QW5pbWF0aW9uQ29udHJvbGxlcjo6ZGlzcGxheVJlZnJlc2hGaXJlZCgpCiB7CiAgICAgc2Vydmlj
ZVNjcmlwdGVkQW5pbWF0aW9ucyhtX2RvY3VtZW50LT5kb21XaW5kb3coKS0+bm93VGltZXN0YW1w
KCkpOwogfQotI2VuZGlmCi0jZW5kaWYKIAotCi0jaWYgVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZS
QU1FX0RJU1BMQVlfTU9OSVRPUikKIFJlZlB0cjxEaXNwbGF5UmVmcmVzaE1vbml0b3I+IFNjcmlw
dGVkQW5pbWF0aW9uQ29udHJvbGxlcjo6Y3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9yKFBsYXRm
b3JtRGlzcGxheUlEIGRpc3BsYXlJRCkgY29uc3QKIHsKICAgICBpZiAoIW1fZG9jdW1lbnQtPnBh
Z2UoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1hdGlvbkNv
bnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xs
ZXIuaAppbmRleCA2ZjZhNDBjMDczZi4uMDhkOTk2N2EyZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmgKQEAgLTI3LDE3ICsyNywxNCBA
QAogCiAjaW5jbHVkZSAiRE9NVGltZVN0YW1wLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TY3JlZW4u
aCIKKyNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9PcHRpb25TZXQuaD4KICNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CiAKLSNp
ZiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfVElNRVIpCi0jaW5jbHVkZSAiVGltZXIuaCIK
LSNlbmRpZgotCi0jaWYgVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX1RJTUVSKSAmJiBVU0Uo
UkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05JVE9SKQorI2lmIFVTRShSRVFVRVNU
X0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IpCiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAj
aW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiRGlzcGxheVJlZnJlc2hNb25pdG9y
Q2xpZW50LmgiCkBAIC05OCwxNCArOTUsMTEgQEAgcHJpdmF0ZToKICAgICBpbnQgbV9zdXNwZW5k
Q291bnQgeyAwIH07CiAKICAgICB2b2lkIHNjaGVkdWxlQW5pbWF0aW9uKCk7Ci0KLSNpZiBVU0Uo
UkVRVUVTVF9BTklNQVRJT05fRlJBTUVfVElNRVIpCiAgICAgdm9pZCBhbmltYXRpb25UaW1lckZp
cmVkKCk7CiAgICAgVGltZXIgbV9hbmltYXRpb25UaW1lcjsKICAgICBkb3VibGUgbV9sYXN0QW5p
bWF0aW9uRnJhbWVUaW1lc3RhbXAgeyAwIH07Ci0jZW5kaWYKIAotI2lmIFVTRShSRVFVRVNUX0FO
SU1BVElPTl9GUkFNRV9USU1FUikgJiYgVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX0RJU1BM
QVlfTU9OSVRPUikKKyNpZiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05J
VE9SKQogICAgIC8vIE92ZXJyaWRlIGZvciBEaXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnQKICAg
ICB2b2lkIGRpc3BsYXlSZWZyZXNoRmlyZWQoKSBvdmVycmlkZTsKICAgICBSZWZQdHI8RGlzcGxh
eVJlZnJlc2hNb25pdG9yPiBjcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3IoUGxhdGZvcm1EaXNw
bGF5SUQpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCmlu
ZGV4IGY1NjZjMzY0ZmJmLi4wYWE1ODMwNDg4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNs
aWVudHMuaApAQCAtMTEyLDEwICsxMTIsNiBAQCBjbGFzcyBFbXB0eUNocm9tZUNsaWVudCA6IHB1
YmxpYyBDaHJvbWVDbGllbnQgewogICAgIHZvaWQgcmVzZXRVcGRhdGVBdGxhc0ZvclRlc3Rpbmco
KSBmaW5hbCB7IH0KICNlbmRpZgogCi0jaWYgIVVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9U
SU1FUikKLSAgICB2b2lkIHNjaGVkdWxlQW5pbWF0aW9uKCkgZmluYWwgeyB9Ci0jZW5kaWYKLQog
ICAgIEludFBvaW50IHNjcmVlblRvUm9vdFZpZXcoY29uc3QgSW50UG9pbnQmIHApIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIHA7IH0KICAgICBJbnRSZWN0IHJvb3RWaWV3VG9TY3JlZW4oY29uc3QgSW50
UmVjdCYgcikgY29uc3QgZmluYWwgeyByZXR1cm4gcjsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAK
aW5kZXggYTViMDBhZTBiMTYuLmY3YWNlZDc4ODE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0Nocm9tZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCkBA
IC00NzQsMTMgKzQ3NCw2IEBAIHZvaWQgQ2hyb21lOjpzZXRDdXJzb3JIaWRkZW5VbnRpbE1vdXNl
TW92ZXMoYm9vbCBoaWRkZW5VbnRpbE1vdXNlTW92ZXMpCiAjZW5kaWYKIH0KIAotdm9pZCBDaHJv
bWU6OnNjaGVkdWxlQW5pbWF0aW9uKCkKLXsKLSNpZiAhVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZS
QU1FX1RJTUVSKQotICAgIG1fY2xpZW50LnNjaGVkdWxlQW5pbWF0aW9uKCk7Ci0jZW5kaWYKLX0K
LQogUGxhdGZvcm1EaXNwbGF5SUQgQ2hyb21lOjpkaXNwbGF5SUQoKSBjb25zdAogewogICAgIHJl
dHVybiBtX2Rpc3BsYXlJRDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21l
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCmluZGV4IGIzYzQ2NDdjMWFlLi44ZWJk
YjVkYjM1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCkBAIC04NSw3ICs4NSw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNldEN1cnNvcihjb25zdCBDdXJzb3ImKSBvdmVycmlkZTsKICAgICB2b2lkIHNldEN1
cnNvckhpZGRlblVudGlsTW91c2VNb3Zlcyhib29sKSBvdmVycmlkZTsKIAotICAgIHZvaWQgc2No
ZWR1bGVBbmltYXRpb24oKSBvdmVycmlkZTsKKyAgICB2b2lkIHNjaGVkdWxlQW5pbWF0aW9uKCkg
b3ZlcnJpZGUgeyB9CiAKICAgICBQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQoKSBjb25zdCBv
dmVycmlkZTsKICAgICB2b2lkIHdpbmRvd1NjcmVlbkRpZENoYW5nZShQbGF0Zm9ybURpc3BsYXlJ
RCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCAwMWFlNDA5MGE2
NS4uODQ1NmZlZTYyNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMTg1LDEw
ICsxODUsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldEN1cnNvckhpZGRlblVudGls
TW91c2VNb3Zlcyhib29sKSA9IDA7CiAjZW5kaWYKIAotI2lmICFVU0UoUkVRVUVTVF9BTklNQVRJ
T05fRlJBTUVfVElNRVIpCi0gICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlQW5pbWF0aW9uKCkgPSAw
OwotI2VuZGlmCi0KICAgICB2aXJ0dWFsIEZsb2F0U2l6ZSBzY3JlZW5TaXplKCkgY29uc3QgeyBy
ZXR1cm4gY29uc3RfY2FzdDxDaHJvbWVDbGllbnQmPigqdGhpcykud2luZG93UmVjdCgpLnNpemUo
KTsgfQogICAgIHZpcnR1YWwgRmxvYXRTaXplIGF2YWlsYWJsZVNjcmVlblNpemUoKSBjb25zdCB7
IHJldHVybiBjb25zdF9jYXN0PENocm9tZUNsaWVudCY+KCp0aGlzKS53aW5kb3dSZWN0KCkuc2l6
ZSgpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1h
dGlvblNtb290aC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25T
bW9vdGguY3BwCmluZGV4IDdhNWYxZWE5YWRlLi40YzZiODE0ZjkwZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguY3BwCkBAIC00NSwxMSAr
NDUsNyBAQCBTY3JvbGxBbmltYXRpb25TbW9vdGg6OlNjcm9sbEFuaW1hdGlvblNtb290aChTY3Jv
bGxhYmxlQXJlYSYgc2Nyb2xsYWJsZUFyZWEsIGNvbgogICAgICwgbV9ub3RpZnlQb3NpdGlvbkNo
YW5nZWRGdW5jdGlvbihXVEZNb3ZlKG5vdGlmeVBvc2l0aW9uQ2hhbmdlZEZ1bmN0aW9uKSkKICAg
ICAsIG1faG9yaXpvbnRhbERhdGEocG9zaXRpb24ueCgpLCBzY3JvbGxhYmxlQXJlYS52aXNpYmxl
V2lkdGgoKSkKICAgICAsIG1fdmVydGljYWxEYXRhKHBvc2l0aW9uLnkoKSwgc2Nyb2xsYWJsZUFy
ZWEudmlzaWJsZUhlaWdodCgpKQotI2lmIFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9USU1F
UikKICAgICAsIG1fYW5pbWF0aW9uVGltZXIoKnRoaXMsICZTY3JvbGxBbmltYXRpb25TbW9vdGg6
OmFuaW1hdGlvblRpbWVyRmlyZWQpCi0jZWxzZQotICAgICwgbV9hbmltYXRpb25BY3RpdmUoZmFs
c2UpCi0jZW5kaWYKIHsKIH0KIApAQCAtNzQsMTEgKzcwLDcgQEAgYm9vbCBTY3JvbGxBbmltYXRp
b25TbW9vdGg6OnNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgU2Nyb2xs
R3JhbnUKIAogdm9pZCBTY3JvbGxBbmltYXRpb25TbW9vdGg6OnN0b3AoKQogewotI2lmIFVTRShS
RVFVRVNUX0FOSU1BVElPTl9GUkFNRV9USU1FUikKICAgICBtX2FuaW1hdGlvblRpbWVyLnN0b3Ao
KTsKLSNlbHNlCi0gICAgbV9hbmltYXRpb25BY3RpdmUgPSBmYWxzZTsKLSNlbmRpZgogfQogCiB2
b2lkIFNjcm9sbEFuaW1hdGlvblNtb290aDo6dXBkYXRlVmlzaWJsZUxlbmd0aHMoKQpAQCAtOTQs
MTQgKzg2LDYgQEAgdm9pZCBTY3JvbGxBbmltYXRpb25TbW9vdGg6OnNldEN1cnJlbnRQb3NpdGlv
bihjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbikKICAgICBtX3ZlcnRpY2FsRGF0YSA9IFBlckF4
aXNEYXRhKHBvc2l0aW9uLnkoKSwgbV92ZXJ0aWNhbERhdGEudmlzaWJsZUxlbmd0aCk7CiB9CiAK
LSNpZiAhVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX1RJTUVSKQotdm9pZCBTY3JvbGxBbmlt
YXRpb25TbW9vdGg6OnNlcnZpY2VBbmltYXRpb24oKQotewotICAgIGlmIChtX2FuaW1hdGlvbkFj
dGl2ZSkKLSAgICAgICAgYW5pbWF0aW9uVGltZXJGaXJlZCgpOwotfQotI2VuZGlmCi0KIFNjcm9s
bEFuaW1hdGlvblNtb290aDo6flNjcm9sbEFuaW1hdGlvblNtb290aCgpCiB7CiB9CkBAIC00MTAs
MzcgKzM5NCwxOSBAQCB2b2lkIFNjcm9sbEFuaW1hdGlvblNtb290aDo6YW5pbWF0aW9uVGltZXJG
aXJlZCgpCiAgICAgICAgIGNvbnRpbnVlQW5pbWF0aW9uID0gdHJ1ZTsKIAogICAgIGlmIChjb250
aW51ZUFuaW1hdGlvbikKLSNpZiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfVElNRVIpCiAg
ICAgICAgIHN0YXJ0TmV4dFRpbWVyKHN0ZDo6bWF4KG1pbmltdW1UaW1lckludGVydmFsLCBkZWx0
YVRvTmV4dEZyYW1lKSk7Ci0jZWxzZQotICAgICAgICBzdGFydE5leHRUaW1lcigpOwotICAgIGVs
c2UKLSAgICAgICAgbV9hbmltYXRpb25BY3RpdmUgPSBmYWxzZTsKLSNlbmRpZgogCiAgICAgbV9u
b3RpZnlQb3NpdGlvbkNoYW5nZWRGdW5jdGlvbihGbG9hdFBvaW50KG1faG9yaXpvbnRhbERhdGEu
Y3VycmVudFBvc2l0aW9uLCBtX3ZlcnRpY2FsRGF0YS5jdXJyZW50UG9zaXRpb24pKTsKIH0KIAot
I2lmIFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9USU1FUikKIHZvaWQgU2Nyb2xsQW5pbWF0
aW9uU21vb3RoOjpzdGFydE5leHRUaW1lcihTZWNvbmRzIGRlbGF5KQogewogICAgIG1fYW5pbWF0
aW9uVGltZXIuc3RhcnRPbmVTaG90KGRlbGF5KTsKIH0KLSNlbHNlCi12b2lkIFNjcm9sbEFuaW1h
dGlvblNtb290aDo6c3RhcnROZXh0VGltZXIoKQotewotICAgIGlmIChtX3Njcm9sbGFibGVBcmVh
LnNjaGVkdWxlQW5pbWF0aW9uKCkpCi0gICAgICAgIG1fYW5pbWF0aW9uQWN0aXZlID0gdHJ1ZTsK
LX0KLSNlbmRpZgogCiBib29sIFNjcm9sbEFuaW1hdGlvblNtb290aDo6YW5pbWF0aW9uVGltZXJB
Y3RpdmUoKSBjb25zdAogewotI2lmIFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9USU1FUikK
ICAgICByZXR1cm4gbV9hbmltYXRpb25UaW1lci5pc0FjdGl2ZSgpOwotI2Vsc2UKLSAgICByZXR1
cm4gbV9hbmltYXRpb25BY3RpdmU7Ci0jZW5kaWYKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uU21v
b3RoLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguaApp
bmRleCA4ZDZmOWM5NWZkYy4uMjQzOTY0OGYxODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvblNtb290aC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbEFuaW1hdGlvblNtb290aC5oCkBAIC0yMyw4ICsyMyw3IEBACiAgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBTY3JvbGxBbmltYXRp
b25TbW9vdGhfaAotI2RlZmluZSBTY3JvbGxBbmltYXRpb25TbW9vdGhfaAorI3ByYWdtYSBvbmNl
CiAKICNpbmNsdWRlICJTY3JvbGxBbmltYXRpb24uaCIKIApAQCAtNTUsOSArNTQsNiBAQCBwcml2
YXRlOgogICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOwogICAgIHZvaWQgdXBkYXRlVmlzaWJsZUxl
bmd0aHMoKSBvdmVycmlkZTsKICAgICB2b2lkIHNldEN1cnJlbnRQb3NpdGlvbihjb25zdCBGbG9h
dFBvaW50Jikgb3ZlcnJpZGU7Ci0jaWYgIVVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9USU1F
UikKLSAgICB2b2lkIHNlcnZpY2VBbmltYXRpb24oKSBvdmVycmlkZTsKLSNlbmRpZgogCiAgICAg
c3RydWN0IFBlckF4aXNEYXRhIHsKICAgICAgICAgUGVyQXhpc0RhdGEoKSA9IGRlbGV0ZTsKQEAg
LTk2LDEyICs5Miw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCB1cGRhdGVQZXJBeGlzRGF0YShQZXJB
eGlzRGF0YSYsIFNjcm9sbEdyYW51bGFyaXR5LCBmbG9hdCBkZWx0YSwgZmxvYXQgbWluU2Nyb2xs
UG9zaXRpb24sIGZsb2F0IG1heFNjcm9sbFBvc2l0aW9uKTsKICAgICBib29sIGFuaW1hdGVTY3Jv
bGwoUGVyQXhpc0RhdGEmLCBNb25vdG9uaWNUaW1lIGN1cnJlbnRUaW1lKTsKIAotI2lmIFVTRShS
RVFVRVNUX0FOSU1BVElPTl9GUkFNRV9USU1FUikKICAgICB2b2lkIHJlcXVlc3RBbmltYXRpb25U
aW1lckZpcmVkKCk7CiAgICAgdm9pZCBzdGFydE5leHRUaW1lcihTZWNvbmRzIGRlbGF5KTsKLSNl
bHNlCi0gICAgdm9pZCBzdGFydE5leHRUaW1lcigpOwotI2VuZGlmCiAgICAgdm9pZCBhbmltYXRp
b25UaW1lckZpcmVkKCk7CiAgICAgYm9vbCBhbmltYXRpb25UaW1lckFjdGl2ZSgpIGNvbnN0Owog
CkBAIC0xMTEsMTUgKzEwMyw5IEBAIHByaXZhdGU6CiAgICAgUGVyQXhpc0RhdGEgbV92ZXJ0aWNh
bERhdGE7CiAKICAgICBNb25vdG9uaWNUaW1lIG1fc3RhcnRUaW1lOwotI2lmIFVTRShSRVFVRVNU
X0FOSU1BVElPTl9GUkFNRV9USU1FUikKICAgICBUaW1lciBtX2FuaW1hdGlvblRpbWVyOwotI2Vs
c2UKLSAgICBib29sIG1fYW5pbWF0aW9uQWN0aXZlIHsgZmFsc2UgfTsKLSNlbmRpZgotCiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU01PT1RIX1NDUk9M
TElORykKLSNlbmRpZiAvLyBTY3JvbGxBbmltYXRpb25TbW9vdGhfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDhl
YTJlYjMxYWRhLi4wZjJjM2MxNTAzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE3
LTA1LTMxICBEb24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRAYW0uc29ueS5jb20+CisKKyAgICAg
ICAgW1dlYkNvcmVdIEVuYWJsZSBSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9USU1FUiBmb3IgYWxs
IHBvcnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NzI3ODAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpzY2hlZHVsZUFuaW1hdGlvbik6IERlbGV0ZWQuCisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db21wb3NpdGlu
Z0Nvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q29tcG9zaXRpbmdDb29yZGluYXRv
cjo6c3luY0Rpc3BsYXlTdGF0ZSk6CisKIDIwMTctMDUtMzEgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgV2ViUlRDIGxlZ2FjeSBBUEkgc3dpdGNoIGFu
IGV4cGVyaW1lbnRhbCBmZWF0dXJlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggMWY1YTk0
YmU4YTUuLjFjNmJhZmFjY2E2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC04MDYsMTcg
KzgwNiw2IEBAIFJlZlB0cjxJY29uPiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZUljb25Gb3JGaWxl
cyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzCiAKICNlbmRpZgogCi0jaWYgIVVTRShS
RVFVRVNUX0FOSU1BVElPTl9GUkFNRV9USU1FUikKLQotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNj
aGVkdWxlQW5pbWF0aW9uKCkKLXsKLSNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCi0gICAg
bV9wYWdlLmRyYXdpbmdBcmVhKCktPmxheWVyVHJlZUhvc3QoKS0+c2NoZWR1bGVBbmltYXRpb24o
KTsKLSNlbmRpZgotfQotCi0jZW5kaWYKLQogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmRpZEFzc29j
aWF0ZUZvcm1Db250cm9scyhjb25zdCBWZWN0b3I8UmVmUHRyPEVsZW1lbnQ+PiYgZWxlbWVudHMp
CiB7CiAgICAgcmV0dXJuIG1fcGFnZS5pbmplY3RlZEJ1bmRsZUZvcm1DbGllbnQoKS5kaWRBc3Nv
Y2lhdGVGb3JtQ29udHJvbHMoJm1fcGFnZSwgZWxlbWVudHMpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgK
aW5kZXggODc4N2QwZWNmMmYuLjRlMDMxNjFlZDhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAg
LTE4OSwxMCArMTg5LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldEN1cnNvckhpZGRlblVudGls
TW91c2VNb3Zlcyhib29sKSBmaW5hbDsKICNlbmRpZgogCi0jaWYgIVVTRShSRVFVRVNUX0FOSU1B
VElPTl9GUkFNRV9USU1FUikKLSAgICB2b2lkIHNjaGVkdWxlQW5pbWF0aW9uKCkgZmluYWw7Ci0j
ZW5kaWYKLSAgICAKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgIGJvb2wgcmVxdWVzdFBv
aW50ZXJMb2NrKCkgZmluYWw7CiAgICAgdm9pZCByZXF1ZXN0UG9pbnRlclVubG9jaygpIGZpbmFs
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvQ29tcG9zaXRpbmdDb29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db21wb3NpdGluZ0Nvb3JkaW5h
dG9yLmNwcAppbmRleCA3N2MyYmRkMDgzOC4uNzViYjdmMzliMTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0
aW5nQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9Db29yZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuY3BwCkBAIC0xNTQs
MTEgKzE1NCw2IEBAIGRvdWJsZSBDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjp0aW1lc3RhbXAoKSBj
b25zdAogCiB2b2lkIENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OnN5bmNEaXNwbGF5U3RhdGUoKQog
ewotI2lmICFVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfVElNRVIpICYmICFVU0UoUkVRVUVT
VF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05JVE9SKQotICAgIC8vIE1ha2Ugc3VyZSB0aGF0
IGFueSBwcmV2aW91c2x5IHJlZ2lzdGVyZWQgYW5pbWF0aW9uIGNhbGxiYWNrcyBhcmUgYmVpbmcg
ZXhlY3V0ZWQgYmVmb3JlIHdlIGZsdXNoIHRoZSBsYXllcnMuCi0gICAgbV9sYXN0QW5pbWF0aW9u
U2VydmljZVRpbWUgPSB0aW1lc3RhbXAoKTsKLSAgICBtX3BhZ2UtPm1haW5GcmFtZSgpLnZpZXco
KS0+c2VydmljZVNjcmlwdGVkQW5pbWF0aW9ucygpOwotI2VuZGlmCiAgICAgbV9wYWdlLT5tYWlu
RnJhbWUoKS52aWV3KCktPnVwZGF0ZUxheW91dEFuZFN0eWxlSWZOZWVkZWRSZWN1cnNpdmUoKTsK
IH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>