<?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>74773</bug_id>
          
          <creation_ts>2011-12-16 17:39:48 -0800</creation_ts>
          <short_desc>Move everyone off of WorkItem</short_desc>
          <delta_ts>2011-12-18 09:07:02 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (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="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>darin</cc>
    
    <cc>gustavo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>523182</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-12-16 17:39:48 -0800</bug_when>
    <thetext>Move everyone off of WorkItem</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523184</commentid>
    <comment_count>1</comment_count>
      <attachid>119706</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-12-16 17:41:54 -0800</bug_when>
    <thetext>Created attachment 119706
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523258</commentid>
    <comment_count>2</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-12-16 22:47:19 -0800</bug_when>
    <thetext>Windows build failure:

9&gt;..\Platform\win\WorkQueueWin.cpp(40) : error C2065: &apos;fuction&apos; : undeclared identifier
9&gt;..\Platform\win\WorkQueueWin.cpp(152) : error C2039: &apos;item&apos; : is not a member of &apos;WorkQueue::WorkItemWin&apos;
9&gt;        c:\cygwin\home\buildbot\WebKit\Source\WebKit2\Platform\WorkQueue.h(118) : see declaration of &apos;WorkQueue::WorkItemWin&apos;
9&gt;..\Platform\win\WorkQueueWin.cpp(152) : error C2227: left of &apos;-&gt;execute&apos; must point to class/struct/union/generic type
9&gt;..\Platform\win\WorkQueueWin.cpp(197) : error C2059: syntax error : &apos;)&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523259</commentid>
    <comment_count>3</comment_count>
      <attachid>119706</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-12-16 22:47:47 -0800</bug_when>
    <thetext>Comment on attachment 119706
Patch

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

&gt; Source/WebKit2/Platform/win/WorkQueueWin.cpp:40
&gt; +    return adoptRef(new WorkItemWin(fuction, queue));

Typo here: “fuction”.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523280</commentid>
    <comment_count>4</comment_count>
      <attachid>119706</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-12-17 01:17:26 -0800</bug_when>
    <thetext>Comment on attachment 119706
Patch

Attachment 119706 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/10928042</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523465</commentid>
    <comment_count>5</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-12-18 09:07:02 -0800</bug_when>
    <thetext>Committed r103178: &lt;http://trac.webkit.org/changeset/103178&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119706</attachid>
            <date>2011-12-16 17:41:54 -0800</date>
            <delta_ts>2011-12-17 01:17:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74773-20111216174156.patch</filename>
            <type>text/plain</type>
            <size>32779</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAzMTMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOGUwZTYyNmEzYWRkYWY4
YmMzMWY1ZDI5OTBlODFiNWFjZDM2M2QyZS4uMDc3ZTlkYjhiODNiODY2NzkyMjFmN2EyZTk2Y2Nm
N2E0ODE1MDVhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDYyIEBACiAyMDExLTEyLTE2ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKKyAgICAgICAgTW92ZSBldmVyeW9u
ZSBvZmYgb2YgV29ya0l0ZW0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTc0NzczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL3VuaXgvQ29ubmVjdGlvblVuaXguY3BwOgorICAg
ICAgICAoQ29yZUlQQzo6Q29ubmVjdGlvbjo6b3Blbik6CisgICAgICAgIChDb3JlSVBDOjpDb25u
ZWN0aW9uOjpzZXRTaG91bGRDbG9zZUNvbm5lY3Rpb25PblByb2Nlc3NUZXJtaW5hdGlvbik6Cisg
ICAgICAgICogUGxhdGZvcm0vQ29yZUlQQy93aW4vQ29ubmVjdGlvbldpbi5jcHA6CisgICAgICAg
IChDb3JlSVBDOjpDb25uZWN0aW9uOjpvcGVuKToKKyAgICAgICAgKiBQbGF0Zm9ybS9SdW5Mb29w
LmNwcDoKKyAgICAgICAgKFJ1bkxvb3A6OnBlcmZvcm1Xb3JrKToKKyAgICAgICAgKFJ1bkxvb3A6
OmRpc3BhdGNoKToKKyAgICAgICAgKiBQbGF0Zm9ybS9SdW5Mb29wLmg6CisgICAgICAgICogUGxh
dGZvcm0vV29ya1F1ZXVlLmNwcDoKKyAgICAgICAgKiBQbGF0Zm9ybS9Xb3JrUXVldWUuaDoKKyAg
ICAgICAgKFdvcmtRdWV1ZTo6V29ya0l0ZW1XaW46OmZ1bmN0aW9uKToKKyAgICAgICAgKiBQbGF0
Zm9ybS9ndGsvV29ya1F1ZXVlR3RrLmNwcDoKKyAgICAgICAgKFdvcmtRdWV1ZTo6RXZlbnRTb3Vy
Y2U6OkV2ZW50U291cmNlKToKKyAgICAgICAgKFdvcmtRdWV1ZTo6RXZlbnRTb3VyY2U6OmV4ZWN1
dGVFdmVudFNvdXJjZSk6CisgICAgICAgIChXb3JrUXVldWU6OnJlZ2lzdGVyRXZlbnRTb3VyY2VI
YW5kbGVyKToKKyAgICAgICAgKFdvcmtRdWV1ZTo6ZGlzcGF0Y2hPblNvdXJjZSk6CisgICAgICAg
IChXb3JrUXVldWU6OmRpc3BhdGNoKToKKyAgICAgICAgKFdvcmtRdWV1ZTo6ZGlzcGF0Y2hBZnRl
ckRlbGF5KToKKyAgICAgICAgKFdvcmtRdWV1ZTo6ZGlzcGF0Y2hPblRlcm1pbmF0aW9uKToKKyAg
ICAgICAgKiBQbGF0Zm9ybS9tYWMvV29ya1F1ZXVlTWFjLmNwcDoKKyAgICAgICAgKFdvcmtRdWV1
ZTo6ZXhlY3V0ZUZ1bmN0aW9uKToKKyAgICAgICAgKFdvcmtRdWV1ZTo6ZGlzcGF0Y2gpOgorICAg
ICAgICAoV29ya1F1ZXVlOjpkaXNwYXRjaEFmdGVyRGVsYXkpOgorICAgICAgICAqIFBsYXRmb3Jt
L3F0L1dvcmtRdWV1ZVF0LmNwcDoKKyAgICAgICAgKFdvcmtRdWV1ZTo6V29ya0l0ZW1RdDo6V29y
a0l0ZW1RdCk6CisgICAgICAgIChXb3JrUXVldWU6OldvcmtJdGVtUXQ6On5Xb3JrSXRlbVF0KToK
KyAgICAgICAgKFdvcmtRdWV1ZTo6V29ya0l0ZW1RdDo6ZXhlY3V0ZSk6CisgICAgICAgIChXb3Jr
UXVldWU6OnJlZ2lzdGVyU29ja2V0RXZlbnRIYW5kbGVyKToKKyAgICAgICAgKFdvcmtRdWV1ZTo6
ZGlzcGF0Y2gpOgorICAgICAgICAoV29ya1F1ZXVlOjpkaXNwYXRjaEFmdGVyRGVsYXkpOgorICAg
ICAgICAoV29ya1F1ZXVlOjpkaXNwYXRjaE9uVGVybWluYXRpb24pOgorICAgICAgICAqIFBsYXRm
b3JtL3dpbi9SdW5Mb29wV2luLmNwcDoKKyAgICAgICAgKFJ1bkxvb3A6Ondha2VVcCk6CisgICAg
ICAgICogUGxhdGZvcm0vd2luL1dvcmtRdWV1ZVdpbi5jcHA6CisgICAgICAgIChXb3JrUXVldWU6
OldvcmtJdGVtV2luOjpXb3JrSXRlbVdpbik6CisgICAgICAgIChXb3JrUXVldWU6OldvcmtJdGVt
V2luOjpjcmVhdGUpOgorICAgICAgICAoV29ya1F1ZXVlOjpIYW5kbGVXb3JrSXRlbTo6SGFuZGxl
V29ya0l0ZW0pOgorICAgICAgICAoV29ya1F1ZXVlOjpIYW5kbGVXb3JrSXRlbTo6Y3JlYXRlQnlB
ZG9wdGluZ0hhbmRsZSk6CisgICAgICAgIChXb3JrUXVldWU6OnJlZ2lzdGVySGFuZGxlKToKKyAg
ICAgICAgKFdvcmtRdWV1ZTo6ZGlzcGF0Y2gpOgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hl
ci9ndGsvUHJvY2Vzc0xhdW5jaGVyR3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc0xh
dW5jaGVyOjpsYXVuY2hQcm9jZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvcXQv
UHJvY2Vzc0xhdW5jaGVyUXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzTGF1bmNoZXI6
OmxhdW5jaFByb2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci93aW4vUHJvY2Vz
c0xhdW5jaGVyV2luLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc0xhdW5jaGVyOjpsYXVu
Y2hQcm9jZXNzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL21hYy9Db3JlSVBDQ2xpZW50UnVuTG9v
cC5tbToKKyAgICAgICAgKFdlYktpdDo6Y2FsbE9uQ29yZUlQQ0NsaWVudFJ1bkxvb3BBbmRXYWl0
KToKKworMjAxMS0xMi0xNiAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgor
CiAgICAgICAgIENvbnZlcnQgbW9yZSBXb3JrSXRlbXMgb3ZlciB0byBXVEY6OkZ1bmN0aW9ucwog
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ3NzAKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy91bml4L0Nvbm5lY3Rp
b25Vbml4LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvdW5peC9Db25uZWN0
aW9uVW5peC5jcHAKaW5kZXggMjlhY2Y2YzcxNTZiODA4ZmRjNGY1ZDc5YTRlZWFkZDVmMjg1NDhh
Ny4uZDU0YWZmODgyYjVkNzUzMjkyMWUwMDg0ODEzOWZhOTJkZmNjOTkyMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy91bml4L0Nvbm5lY3Rpb25Vbml4LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL3VuaXgvQ29ubmVjdGlvblVuaXgu
Y3BwCkBAIC0yOSwxMyArMjksMTMgQEAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAKICNpbmNs
dWRlICJBcmd1bWVudEVuY29kZXIuaCIKLSNpbmNsdWRlICJXb3JrSXRlbS5oIgogI2luY2x1ZGUg
IlNoYXJlZE1lbW9yeS5oIgogI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KICNpbmNsdWRlIDx1bmlz
dGQuaD4KICNpbmNsdWRlIDxlcnJuby5oPgogI2luY2x1ZGUgPGZjbnRsLmg+CiAjaW5jbHVkZSA8
d3RmL0Fzc2VydGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYvRnVuY3Rpb25hbC5oPgogI2luY2x1ZGUg
PHd0Zi9Pd25BcnJheVB0ci5oPgogCiAjaWYgUExBVEZPUk0oUVQpCkBAIC00MTksMTUgKzQxOSwx
NSBAQCBib29sIENvbm5lY3Rpb246Om9wZW4oKQogCiAgICAgbV9pc0Nvbm5lY3RlZCA9IHRydWU7
CiAjaWYgUExBVEZPUk0oUVQpCi0gICAgbV9zb2NrZXROb3RpZmllciA9IG1fY29ubmVjdGlvblF1
ZXVlLnJlZ2lzdGVyU29ja2V0RXZlbnRIYW5kbGVyKG1fc29ja2V0RGVzY3JpcHRvciwgUVNvY2tl
dE5vdGlmaWVyOjpSZWFkLCBXb3JrSXRlbTo6Y3JlYXRlKHRoaXMsICZDb25uZWN0aW9uOjpyZWFk
eVJlYWRIYW5kbGVyKSk7CisgICAgbV9zb2NrZXROb3RpZmllciA9IG1fY29ubmVjdGlvblF1ZXVl
LnJlZ2lzdGVyU29ja2V0RXZlbnRIYW5kbGVyKG1fc29ja2V0RGVzY3JpcHRvciwgUVNvY2tldE5v
dGlmaWVyOjpSZWFkLCBiaW5kKCZDb25uZWN0aW9uOjpyZWFkeVJlYWRIYW5kbGVyLCB0aGlzKSk7
CiAjZWxpZiBQTEFURk9STShHVEspCi0gICAgbV9jb25uZWN0aW9uUXVldWUucmVnaXN0ZXJFdmVu
dFNvdXJjZUhhbmRsZXIobV9zb2NrZXREZXNjcmlwdG9yLCAoR19JT19IVVAgfCBHX0lPX0VSUiks
IFdvcmtJdGVtOjpjcmVhdGUodGhpcywgJkNvbm5lY3Rpb246OmNvbm5lY3Rpb25EaWRDbG9zZSkp
OwotICAgIG1fY29ubmVjdGlvblF1ZXVlLnJlZ2lzdGVyRXZlbnRTb3VyY2VIYW5kbGVyKG1fc29j
a2V0RGVzY3JpcHRvciwgR19JT19JTiwgV29ya0l0ZW06OmNyZWF0ZSh0aGlzLCAmQ29ubmVjdGlv
bjo6cmVhZHlSZWFkSGFuZGxlcikpOworICAgIG1fY29ubmVjdGlvblF1ZXVlLnJlZ2lzdGVyRXZl
bnRTb3VyY2VIYW5kbGVyKG1fc29ja2V0RGVzY3JpcHRvciwgKEdfSU9fSFVQIHwgR19JT19FUlIp
LCBiaW5kKCZDb25uZWN0aW9uOjpjb25uZWN0aW9uRGlkQ2xvc2UsIHRoaXMpKTsKKyAgICBtX2Nv
bm5lY3Rpb25RdWV1ZS5yZWdpc3RlckV2ZW50U291cmNlSGFuZGxlcihtX3NvY2tldERlc2NyaXB0
b3IsIEdfSU9fSU4sIGJpbmQoJkNvbm5lY3Rpb246OnJlYWR5UmVhZEhhbmRsZXIsIHRoaXMpKTsK
ICNlbmRpZgogCiAgICAgLy8gU2NoZWR1bGUgYSBjYWxsIHRvIHJlYWR5UmVhZEhhbmRsZXIuIERh
dGEgbWF5IGhhdmUgYXJyaXZlZCBiZWZvcmUgaW5zdGFsbGF0aW9uIG9mIHRoZSBzaWduYWwKICAg
ICAvLyBoYW5kbGVyLgotICAgIG1fY29ubmVjdGlvblF1ZXVlLnNjaGVkdWxlV29yayhXb3JrSXRl
bTo6Y3JlYXRlKHRoaXMsICZDb25uZWN0aW9uOjpyZWFkeVJlYWRIYW5kbGVyKSk7CisgICAgbV9j
b25uZWN0aW9uUXVldWUuZGlzcGF0Y2goYmluZCgmQ29ubmVjdGlvbjo6cmVhZHlSZWFkSGFuZGxl
ciwgdGhpcykpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC01NTUsNyArNTU1LDcgQEAgYm9v
bCBDb25uZWN0aW9uOjpzZW5kT3V0Z29pbmdNZXNzYWdlKE1lc3NhZ2VJRCBtZXNzYWdlSUQsIFBh
c3NPd25QdHI8QXJndW1lbnRFbmMKICNpZiBQTEFURk9STShRVCkKIHZvaWQgQ29ubmVjdGlvbjo6
c2V0U2hvdWxkQ2xvc2VDb25uZWN0aW9uT25Qcm9jZXNzVGVybWluYXRpb24oV2ViS2l0OjpQbGF0
Zm9ybVByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3MpCiB7Ci0gICAgbV9jb25uZWN0aW9uUXVldWUu
c2NoZWR1bGVXb3JrT25UZXJtaW5hdGlvbihwcm9jZXNzLCBXb3JrSXRlbTo6Y3JlYXRlKHRoaXMs
ICZDb25uZWN0aW9uOjpjb25uZWN0aW9uRGlkQ2xvc2UpKTsKKyAgICBtX2Nvbm5lY3Rpb25RdWV1
ZS5kaXNwYXRjaE9uVGVybWluYXRpb24ocHJvY2VzcywgYmluZCgmQ29ubmVjdGlvbjo6Y29ubmVj
dGlvbkRpZENsb3NlLCB0aGlzKSk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vQ29yZUlQQy93aW4vQ29ubmVjdGlvbldpbi5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL3dpbi9Db25uZWN0aW9uV2luLmNwcAppbmRleCBmNWI1OWU5
ZTU4MjVjYjYzZmYxYWIyYzViMjlhODYyMGIxMTcxOTQ1Li5iZmFlNmFhYjFiZWU3NWJiMWFlYzA1
NDdhOTcyMjQzMzNjM2NlMjk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9D
b3JlSVBDL3dpbi9Db25uZWN0aW9uV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9Db3JlSVBDL3dpbi9Db25uZWN0aW9uV2luLmNwcApAQCAtMjcsNyArMjcsNyBAQAogI2luY2x1
ZGUgIkNvbm5lY3Rpb24uaCIKIAogI2luY2x1ZGUgIkFyZ3VtZW50RW5jb2Rlci5oIgotI2luY2x1
ZGUgIldvcmtJdGVtLmgiCisjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uYWwuaD4KICNpbmNsdWRlIDx3
dGYvUmFuZG9tTnVtYmVyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAg
LTI2MywxMSArMjYzLDExIEBAIGJvb2wgQ29ubmVjdGlvbjo6b3BlbigpCiAgICAgbV9pc0Nvbm5l
Y3RlZCA9IHRydWU7CiAKICAgICAvLyBTdGFydCBsaXN0ZW5pbmcgZm9yIHJlYWQgYW5kIHdyaXRl
IHN0YXRlIGV2ZW50cy4KLSAgICBtX2Nvbm5lY3Rpb25RdWV1ZS5yZWdpc3RlckhhbmRsZShtX3Jl
YWRTdGF0ZS5oRXZlbnQsIFdvcmtJdGVtOjpjcmVhdGUodGhpcywgJkNvbm5lY3Rpb246OnJlYWRF
dmVudEhhbmRsZXIpKTsKLSAgICBtX2Nvbm5lY3Rpb25RdWV1ZS5yZWdpc3RlckhhbmRsZShtX3dy
aXRlU3RhdGUuaEV2ZW50LCBXb3JrSXRlbTo6Y3JlYXRlKHRoaXMsICZDb25uZWN0aW9uOjp3cml0
ZUV2ZW50SGFuZGxlcikpOworICAgIG1fY29ubmVjdGlvblF1ZXVlLnJlZ2lzdGVySGFuZGxlKG1f
cmVhZFN0YXRlLmhFdmVudCwgYmluZCgmQ29ubmVjdGlvbjo6cmVhZEV2ZW50SGFuZGxlciwgdGhp
cykpOworICAgIG1fY29ubmVjdGlvblF1ZXVlLnJlZ2lzdGVySGFuZGxlKG1fd3JpdGVTdGF0ZS5o
RXZlbnQsIGJpbmQoJkNvbm5lY3Rpb246OndyaXRlRXZlbnRIYW5kbGVyLCB0aGlzKSk7CiAKICAg
ICAvLyBTY2hlZHVsZSBhIHJlYWQuCi0gICAgbV9jb25uZWN0aW9uUXVldWUuc2NoZWR1bGVXb3Jr
KFdvcmtJdGVtOjpjcmVhdGUodGhpcywgJkNvbm5lY3Rpb246OnJlYWRFdmVudEhhbmRsZXIpKTsK
KyAgICBtX2Nvbm5lY3Rpb25RdWV1ZS5kaXNwYXRjaChiaW5kKCZDb25uZWN0aW9uOjpyZWFkRXZl
bnRIYW5kbGVyLCB0aGlzKSk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL1J1bkxvb3AuY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vUnVuTG9vcC5jcHAKaW5kZXggMjcyNGEwOGEyMzQ1NjFhZTUxM2M3ZTk0N2NiMGRlNzBkZjIx
N2Q2OS4uYjAwNjYwZjI0NjdiYjU3ZmY1ZjY5YTc3MDdhMTNmODNhNTVlNjU4MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vUnVuTG9vcC5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vUnVuTG9vcC5jcHAKQEAgLTUyLDI3ICs1MiwyMCBAQCBSdW5Mb29wKiBSdW5M
b29wOjptYWluKCkKIAogdm9pZCBSdW5Mb29wOjpwZXJmb3JtV29yaygpCiB7Ci0gICAgVmVjdG9y
PE93blB0cjxXb3JrSXRlbT4gPiB3b3JrSXRlbVF1ZXVlOworICAgIFZlY3RvcjxGdW5jdGlvbjx2
b2lkKCk+ID4gZnVuY3Rpb25RdWV1ZTsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX3dvcmtJdGVtUXVldWVMb2NrKTsKLSAgICAgICAgbV93b3JrSXRlbVF1ZXVlLnN3YXAod29y
a0l0ZW1RdWV1ZSk7CisgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2Z1bmN0aW9uUXVldWVM
b2NrKTsKKyAgICAgICAgbV9mdW5jdGlvblF1ZXVlLnN3YXAoZnVuY3Rpb25RdWV1ZSk7CiAgICAg
fQogCi0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB3b3JrSXRlbVF1ZXVlLnNpemUoKTsgKytp
KSB7Ci0gICAgICAgIE93blB0cjxXb3JrSXRlbT4gaXRlbSA9IHdvcmtJdGVtUXVldWVbaV0ucmVs
ZWFzZSgpOwotICAgICAgICBpdGVtLT5leGVjdXRlKCk7Ci0gICAgfQorICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgZnVuY3Rpb25RdWV1ZS5zaXplKCk7ICsraSkKKyAgICAgICAgZnVuY3Rpb25R
dWV1ZVtpXSgpOwogfQogCiB2b2lkIFJ1bkxvb3A6OmRpc3BhdGNoKGNvbnN0IEZ1bmN0aW9uPHZv
aWQoKT4mIGZ1bmN0aW9uKQogewotICAgIHNjaGVkdWxlV29yayhXb3JrSXRlbTo6Y3JlYXRlKGZ1
bmN0aW9uKSk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6c2NoZWR1bGVXb3JrKFBhc3NPd25QdHI8V29y
a0l0ZW0+IGl0ZW0pCi17Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fd29ya0l0ZW1RdWV1ZUxv
Y2spOwotICAgIG1fd29ya0l0ZW1RdWV1ZS5hcHBlbmQoaXRlbSk7CisgICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fZnVuY3Rpb25RdWV1ZUxvY2spOworICAgIG1fZnVuY3Rpb25RdWV1ZS5hcHBlbmQo
ZnVuY3Rpb24pOwogCiAgICAgd2FrZVVwKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS9SdW5Mb29wLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9SdW5Mb29wLmgK
aW5kZXggNWMyZjYyZTZhMmYzYjk4OWNmM2VhMzNkMmQzOTUyZjQxYjAyNmRjYS4uOTVlNTdiODVl
MGU2NDNhNzhhZWRjZmFjY2RhMTg0N2JjYjU0MTYxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vUnVuTG9vcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL1J1bkxv
b3AuaApAQCAtMjksNiArMjksNyBAQAogI2RlZmluZSBSdW5Mb29wX2gKIAogI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uYWwuaD4KICNpbmNsdWRlIDx3dGYv
SGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Ro
cmVhZFNwZWNpZmljLmg+CkBAIC01Niw5ICs1Nyw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUnVu
TG9vcCogY3VycmVudCgpOwogICAgIHN0YXRpYyBSdW5Mb29wKiBtYWluKCk7CiAKLSAgICAvLyBG
SVhNRTogR2V0IHJpZCBvZiB0aGlzIG92ZXJsb2FkIGFuZCB1c2UgV1RGOjpGdW5jdGlvbiBldmVy
eXdoZXJlLgotICAgIHZvaWQgc2NoZWR1bGVXb3JrKFBhc3NPd25QdHI8V29ya0l0ZW0+KTsKLQog
ICAgIHZvaWQgZGlzcGF0Y2goY29uc3QgRnVuY3Rpb248dm9pZCgpPiYpOwogCiAjaWYgUExBVEZP
Uk0oV0lOKQpAQCAtMTQzLDggKzE0MSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwZXJmb3JtV29y
aygpOwogICAgIHZvaWQgd2FrZVVwKCk7CiAKLSAgICBNdXRleCBtX3dvcmtJdGVtUXVldWVMb2Nr
OwotICAgIFZlY3RvcjxPd25QdHI8V29ya0l0ZW0+ID4gbV93b3JrSXRlbVF1ZXVlOworICAgIE11
dGV4IG1fZnVuY3Rpb25RdWV1ZUxvY2s7CisgICAgVmVjdG9yPEZ1bmN0aW9uPHZvaWQoKT4gPiBt
X2Z1bmN0aW9uUXVldWU7CiAKICNpZiBQTEFURk9STShXSU4pCiAgICAgc3RhdGljIGJvb2wgcmVn
aXN0ZXJSdW5Mb29wTWVzc2FnZVdpbmRvd0NsYXNzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybS9Xb3JrUXVldWUuY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vV29y
a1F1ZXVlLmNwcAppbmRleCAzNjRiZWQyMTQxZWI3OTU3OGE4M2Y5MjhhZWUyNDIzODlhNzc4NWEy
Li42YmNkZDIyNjQ0MjMwODI4MDU2MGI4OTQyNWFiMTYwNzdmY2ViNWRhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Xb3JrUXVldWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtL1dvcmtRdWV1ZS5jcHAKQEAgLTQwLDE2ICs0MCw2IEBAIFdvcmtRdWV1ZTo6fldv
cmtRdWV1ZSgpCiAjZW5kaWYKIH0KIAotdm9pZCBXb3JrUXVldWU6OmRpc3BhdGNoKGNvbnN0IEZ1
bmN0aW9uPHZvaWQoKT4mIGZ1bmN0aW9uKQotewotICAgIHNjaGVkdWxlV29yayhXb3JrSXRlbTo6
Y3JlYXRlKGZ1bmN0aW9uKSk7Ci19Ci0KLXZvaWQgV29ya1F1ZXVlOjpkaXNwYXRjaEFmdGVyRGVs
YXkoY29uc3QgRnVuY3Rpb248dm9pZCgpPiYgZnVuY3Rpb24sIGRvdWJsZSBkZWxheSkKLXsKLSAg
ICBzY2hlZHVsZVdvcmtBZnRlckRlbGF5KFdvcmtJdGVtOjpjcmVhdGUoZnVuY3Rpb24pLCBkZWxh
eSk7Ci19Ci0KIHZvaWQgV29ya1F1ZXVlOjppbnZhbGlkYXRlKCkKIHsKICAgICB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Xb3JrUXVldWUuaCBiL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtL1dvcmtRdWV1ZS5oCmluZGV4IDgwYjhmZGYzZTg3ZTAxZmQzZjE2YzFiOTk2Y2E2
ZGQ3OGZkMmVjNTYuLjk4ZjhiNzZmZWQwYmFmZDIxZDhlM2Q4MDI5NzI0ZmE5MWUzMTE3ZmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL1dvcmtRdWV1ZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL1dvcmtRdWV1ZS5oCkBAIC0zMyw4ICszMyw4IEBACiAjZW5kaWYK
ICNlbmRpZgogCi0jaW5jbHVkZSAiV29ya0l0ZW0uaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5o
PgorI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbmFsLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4K
ICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
CkBAIC03MSwxNCArNzEsNiBAQCBwdWJsaWM6CiAgICAgLy8gV2lsbCBkaXNwYXRjaCB0aGUgZ2l2
ZW4gZnVuY3Rpb24gYWZ0ZXIgdGhlIGdpdmVuIGRlbGF5IChpbiBzZWNvbmRzKS4KICAgICB2b2lk
IGRpc3BhdGNoQWZ0ZXJEZWxheShjb25zdCBGdW5jdGlvbjx2b2lkKCk+JiwgZG91YmxlIGRlbGF5
KTsKIAotICAgIC8vIEZJWE1FOiBHZXQgcmlkIG9mIFdvcmtJdGVtIGV2ZXJ5d2hlcmUuCi0KLSAg
ICAvLyBXaWxsIHNjaGVkdWxlIHRoZSBnaXZlbiB3b3JrIGl0ZW0gdG8gcnVuIGFzIHNvb24gYXMg
cG9zc2libGUuCi0gICAgdm9pZCBzY2hlZHVsZVdvcmsoUGFzc093blB0cjxXb3JrSXRlbT4pOwot
Ci0gICAgLy8gV2lsbCBzY2hlZHVsZSB0aGUgZ2l2ZW4gd29yayBpdGVtIHRvIHJ1biBhZnRlciB0
aGUgZ2l2ZW4gZGVsYXkgKGluIHNlY29uZHMpLgotICAgIHZvaWQgc2NoZWR1bGVXb3JrQWZ0ZXJE
ZWxheShQYXNzT3duUHRyPFdvcmtJdGVtPiwgZG91YmxlIGRlbGF5KTsKLQogICAgIHZvaWQgaW52
YWxpZGF0ZSgpOwogCiAjaWYgT1MoREFSV0lOKQpAQCAtOTUsMTUgKzg3LDE1IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHJlZ2lzdGVyTWFjaFBvcnRFdmVudEhhbmRsZXIobWFjaF9wb3J0X3QsIE1hY2hQ
b3J0RXZlbnRUeXBlLCBjb25zdCBGdW5jdGlvbjx2b2lkKCk+Jik7CiAgICAgdm9pZCB1bnJlZ2lz
dGVyTWFjaFBvcnRFdmVudEhhbmRsZXIobWFjaF9wb3J0X3QpOwogI2VsaWYgUExBVEZPUk0oV0lO
KQotICAgIHZvaWQgcmVnaXN0ZXJIYW5kbGUoSEFORExFLCBQYXNzT3duUHRyPFdvcmtJdGVtPik7
CisgICAgdm9pZCByZWdpc3RlckhhbmRsZShIQU5ETEUsIGNvbnN0IEZ1bmN0aW9uPHZvaWQoKT4m
KTsKICAgICB2b2lkIHVucmVnaXN0ZXJBbmRDbG9zZUhhbmRsZShIQU5ETEUpOwogI2VsaWYgUExB
VEZPUk0oUVQpCi0gICAgUVNvY2tldE5vdGlmaWVyKiByZWdpc3RlclNvY2tldEV2ZW50SGFuZGxl
cihpbnQsIFFTb2NrZXROb3RpZmllcjo6VHlwZSwgUGFzc093blB0cjxXb3JrSXRlbT4pOwotICAg
IHZvaWQgc2NoZWR1bGVXb3JrT25UZXJtaW5hdGlvbihXZWJLaXQ6OlBsYXRmb3JtUHJvY2Vzc0lk
ZW50aWZpZXIsIFBhc3NPd25QdHI8V29ya0l0ZW0+KTsKKyAgICBRU29ja2V0Tm90aWZpZXIqIHJl
Z2lzdGVyU29ja2V0RXZlbnRIYW5kbGVyKGludCwgUVNvY2tldE5vdGlmaWVyOjpUeXBlLCBjb25z
dCBGdW5jdGlvbjx2b2lkKCk+Jik7CisgICAgdm9pZCBkaXNwYXRjaE9uVGVybWluYXRpb24oV2Vi
S2l0OjpQbGF0Zm9ybVByb2Nlc3NJZGVudGlmaWVyLCBjb25zdCBGdW5jdGlvbjx2b2lkKCk+Jik7
CiAjZWxpZiBQTEFURk9STShHVEspCi0gICAgdm9pZCByZWdpc3RlckV2ZW50U291cmNlSGFuZGxl
cihpbnQsIGludCwgUGFzc093blB0cjxXb3JrSXRlbT4pOworICAgIHZvaWQgcmVnaXN0ZXJFdmVu
dFNvdXJjZUhhbmRsZXIoaW50LCBpbnQsIGNvbnN0IEZ1bmN0aW9uPHZvaWQoKT4mKTsKICAgICB2
b2lkIHVucmVnaXN0ZXJFdmVudFNvdXJjZUhhbmRsZXIoaW50KTsKLSAgICB2b2lkIHNjaGVkdWxl
V29ya09uVGVybWluYXRpb24oV2ViS2l0OjpQbGF0Zm9ybVByb2Nlc3NJZGVudGlmaWVyLCBQYXNz
T3duUHRyPFdvcmtJdGVtPik7CisgICAgdm9pZCBkaXNwYXRjaFdvcmtPblRlcm1pbmF0aW9uKFdl
YktpdDo6UGxhdGZvcm1Qcm9jZXNzSWRlbnRpZmllciwgY29uc3QgRnVuY3Rpb248dm9pZCgpPiYp
OwogI2VuZGlmCiAKIHByaXZhdGU6CkBAIC0xMTYsNyArMTA4LDcgQEAgcHJpdmF0ZToKIAogI2lm
IE9TKERBUldJTikKICNpZiBIQVZFKERJU1BBVENIX0gpCi0gICAgc3RhdGljIHZvaWQgZXhlY3V0
ZVdvcmtJdGVtKHZvaWQqKTsKKyAgICBzdGF0aWMgdm9pZCBleGVjdXRlRnVuY3Rpb24odm9pZCop
OwogICAgIE11dGV4IG1fZXZlbnRTb3VyY2VzTXV0ZXg7CiAgICAgY2xhc3MgRXZlbnRTb3VyY2U7
CiAgICAgSGFzaE1hcDxtYWNoX3BvcnRfdCwgRXZlbnRTb3VyY2UqPiBtX2V2ZW50U291cmNlczsK
QEAgLTEyNSwzMCArMTE3LDMwIEBAIHByaXZhdGU6CiAjZWxpZiBQTEFURk9STShXSU4pCiAgICAg
Y2xhc3MgV29ya0l0ZW1XaW4gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8V29ya0l0ZW1X
aW4+IHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdvcmtJdGVtV2lu
PiBjcmVhdGUoUGFzc093blB0cjxXb3JrSXRlbT4sIFdvcmtRdWV1ZSopOworICAgICAgICBzdGF0
aWMgUGFzc1JlZlB0cjxXb3JrSXRlbVdpbj4gY3JlYXRlKGNvbnN0IEZ1bmN0aW9uPHZvaWQoKT4m
LCBXb3JrUXVldWUqKTsKICAgICAgICAgdmlydHVhbCB+V29ya0l0ZW1XaW4oKTsKIAotICAgICAg
ICBXb3JrSXRlbSogaXRlbSgpIGNvbnN0IHsgcmV0dXJuIG1faXRlbS5nZXQoKTsgfQorICAgICAg
ICBGdW5jdGlvbjx2b2lkKCk+JiBmdW5jdGlvbigpIHsgcmV0dXJuIG1fZnVuY3Rpb247IH0KICAg
ICAgICAgV29ya1F1ZXVlKiBxdWV1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcXVldWU7IH0KIAogICAg
IHByb3RlY3RlZDoKLSAgICAgICAgV29ya0l0ZW1XaW4oUGFzc093blB0cjxXb3JrSXRlbT4sIFdv
cmtRdWV1ZSopOworICAgICAgICBXb3JrSXRlbVdpbihjb25zdCBGdW5jdGlvbjx2b2lkKCk+Jiwg
V29ya1F1ZXVlKik7CiAKICAgICBwcml2YXRlOgotICAgICAgICBPd25QdHI8V29ya0l0ZW0+IG1f
aXRlbTsKKyAgICAgICAgRnVuY3Rpb248dm9pZCgpPiBtX2Z1bmN0aW9uOwogICAgICAgICBXb3Jr
UXVldWUqIG1fcXVldWU7CiAgICAgfTsKIAogICAgIGNsYXNzIEhhbmRsZVdvcmtJdGVtIDogcHVi
bGljIFdvcmtJdGVtV2luIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRy
PEhhbmRsZVdvcmtJdGVtPiBjcmVhdGVCeUFkb3B0aW5nSGFuZGxlKEhBTkRMRSwgUGFzc093blB0
cjxXb3JrSXRlbT4sIFdvcmtRdWV1ZSopOworICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxIYW5k
bGVXb3JrSXRlbT4gY3JlYXRlQnlBZG9wdGluZ0hhbmRsZShIQU5ETEUsIGNvbnN0IEZ1bmN0aW9u
PHZvaWQoKT4mLCBXb3JrUXVldWUqKTsKICAgICAgICAgdmlydHVhbCB+SGFuZGxlV29ya0l0ZW0o
KTsKIAogICAgICAgICB2b2lkIHNldFdhaXRIYW5kbGUoSEFORExFIHdhaXRIYW5kbGUpIHsgbV93
YWl0SGFuZGxlID0gd2FpdEhhbmRsZTsgfQogICAgICAgICBIQU5ETEUgd2FpdEhhbmRsZSgpIGNv
bnN0IHsgcmV0dXJuIG1fd2FpdEhhbmRsZTsgfQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgSGFu
ZGxlV29ya0l0ZW0oSEFORExFLCBQYXNzT3duUHRyPFdvcmtJdGVtPiwgV29ya1F1ZXVlKik7Cisg
ICAgICAgIEhhbmRsZVdvcmtJdGVtKEhBTkRMRSwgY29uc3QgRnVuY3Rpb248dm9pZCgpPiYsIFdv
cmtRdWV1ZSopOwogCiAgICAgICAgIEhBTkRMRSBtX2hhbmRsZTsKICAgICAgICAgSEFORExFIG1f
d2FpdEhhbmRsZTsKQEAgLTE4Miw3ICsxNzQsNyBAQCBwcml2YXRlOgogI2VsaWYgUExBVEZPUk0o
R1RLKQogICAgIHN0YXRpYyB2b2lkKiBzdGFydFdvcmtRdWV1ZVRocmVhZChXb3JrUXVldWUqKTsK
ICAgICB2b2lkIHdvcmtRdWV1ZVRocmVhZEJvZHkoKTsKLSAgICB2b2lkIHNjaGVkdWxlV29ya09u
U291cmNlKEdTb3VyY2UqLCBQYXNzT3duUHRyPFdvcmtJdGVtPiwgR1NvdXJjZUZ1bmMpOworICAg
IHZvaWQgc2NoZWR1bGVXb3JrT25Tb3VyY2UoR1NvdXJjZSosIGNvbnN0IEZ1bmN0aW9uPHZvaWQo
KT4mLCBHU291cmNlRnVuYyk7CiAKICAgICBUaHJlYWRJZGVudGlmaWVyIG1fd29ya1F1ZXVlVGhy
ZWFkOwogICAgIEdNYWluQ29udGV4dCogbV9ldmVudENvbnRleHQ7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9ndGsvV29ya1F1ZXVlR3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtL2d0ay9Xb3JrUXVldWVHdGsuY3BwCmluZGV4IDhkNWQ4MWM4MjMzYzZjNzE5MWQy
OTkwMjA1NWY3ZjkzYWQ3MWFlYWMuLjExMmJhMjhiNTVjN2E2OTgxM2Q3OTAxNGJjNTc5NGUzZTBl
OWI4ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL2d0ay9Xb3JrUXVldWVH
dGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL2d0ay9Xb3JrUXVldWVHdGsuY3Bw
CkBAIC0zNiw4ICszNiw4IEBACiAvLyBXb3JrUXVldWU6OkV2ZW50U291cmNlCiBjbGFzcyBXb3Jr
UXVldWU6OkV2ZW50U291cmNlIHsKIHB1YmxpYzoKLSAgICBFdmVudFNvdXJjZShQYXNzT3duUHRy
PFdvcmtJdGVtPiB3b3JrSXRlbSwgV29ya1F1ZXVlKiB3b3JrUXVldWUsIEdDYW5jZWxsYWJsZSog
Y2FuY2VsbGFibGUpCi0gICAgICAgIDogbV93b3JrSXRlbSh3b3JrSXRlbSkKKyAgICBFdmVudFNv
dXJjZShjb25zdCBGdW5jdGlvbjx2b2lkKCk+JiBmdW5jdGlvbiwgV29ya1F1ZXVlKiB3b3JrUXVl
dWUsIEdDYW5jZWxsYWJsZSogY2FuY2VsbGFibGUpCisgICAgICAgIDogbV9mdW5jdGlvbihmdW5j
dGlvbikKICAgICAgICAgLCBtX3dvcmtRdWV1ZSh3b3JrUXVldWUpCiAgICAgICAgICwgbV9jYW5j
ZWxsYWJsZShjYW5jZWxsYWJsZSkKICAgICB7CkBAIC02MCw3ICs2MCw3IEBAIHB1YmxpYzoKICAg
ICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBldmVudFNvdXJjZS0+
bV93b3JrSXRlbS0+ZXhlY3V0ZSgpOworICAgICAgICBldmVudFNvdXJjZS0+bV9mdW5jdGlvbigp
OwogICAgIH0KIAogICAgIHN0YXRpYyBnYm9vbGVhbiBwZXJmb3JtV29ya09uY2UoRXZlbnRTb3Vy
Y2UqIGV2ZW50U291cmNlKQpAQCAtOTMsNyArOTMsNyBAQCBwdWJsaWM6CiAgICAgfQogICAgCiBw
dWJsaWM6Ci0gICAgUGFzc093blB0cjxXb3JrSXRlbT4gbV93b3JrSXRlbTsKKyAgICBGdW5jdGlv
bjx2b2lkKCk+IG1fZnVuY3Rpb247CiAgICAgV29ya1F1ZXVlKiBtX3dvcmtRdWV1ZTsKICAgICBH
Q2FuY2VsbGFibGUqIG1fY2FuY2VsbGFibGU7CiB9OwpAQCAtMTUzLDE0ICsxNTMsMTQgQEAgdm9p
ZCBXb3JrUXVldWU6OndvcmtRdWV1ZVRocmVhZEJvZHkoKQogICAgIGdfbWFpbl9sb29wX3J1biht
X2V2ZW50TG9vcCk7CiB9CiAKLXZvaWQgV29ya1F1ZXVlOjpyZWdpc3RlckV2ZW50U291cmNlSGFu
ZGxlcihpbnQgZmlsZURlc2NyaXB0b3IsIGludCBjb25kaXRpb24sIFBhc3NPd25QdHI8V29ya0l0
ZW0+IGl0ZW0pCit2b2lkIFdvcmtRdWV1ZTo6cmVnaXN0ZXJFdmVudFNvdXJjZUhhbmRsZXIoaW50
IGZpbGVEZXNjcmlwdG9yLCBpbnQgY29uZGl0aW9uLCBjb25zdCBGdW5jdGlvbjx2b2lkKCk+JiBm
dW5jdGlvbikKIHsKICAgICBHUmVmUHRyPEdTb2NrZXQ+IHNvY2tldCA9IGFkb3B0R1JlZihnX3Nv
Y2tldF9uZXdfZnJvbV9mZChmaWxlRGVzY3JpcHRvciwgMCkpOwogICAgIEFTU0VSVChzb2NrZXQp
OwogICAgIEdSZWZQdHI8R0NhbmNlbGxhYmxlPiBjYW5jZWxsYWJsZSA9IGFkb3B0R1JlZihnX2Nh
bmNlbGxhYmxlX25ldygpKTsKICAgICBHUmVmUHRyPEdTb3VyY2U+IGRpc3BhdGNoU291cmNlID0g
YWRvcHRHUmVmKGdfc29ja2V0X2NyZWF0ZV9zb3VyY2Uoc29ja2V0LmdldCgpLCBzdGF0aWNfY2Fz
dDxHSU9Db25kaXRpb24+KGNvbmRpdGlvbiksIGNhbmNlbGxhYmxlLmdldCgpKSk7CiAgICAgQVNT
RVJUKGRpc3BhdGNoU291cmNlKTsKLSAgICBFdmVudFNvdXJjZSogZXZlbnRTb3VyY2UgPSBuZXcg
RXZlbnRTb3VyY2UoaXRlbSwgdGhpcywgY2FuY2VsbGFibGUuZ2V0KCkpOworICAgIEV2ZW50U291
cmNlKiBldmVudFNvdXJjZSA9IG5ldyBFdmVudFNvdXJjZShmdW5jdGlvbiwgdGhpcywgY2FuY2Vs
bGFibGUuZ2V0KCkpOwogICAgIEFTU0VSVChldmVudFNvdXJjZSk7CiAKICAgICBnX3NvdXJjZV9z
ZXRfY2FsbGJhY2soZGlzcGF0Y2hTb3VyY2UuZ2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8R1NvdXJj
ZUZ1bmM+KCZXb3JrUXVldWU6OkV2ZW50U291cmNlOjpwZXJmb3JtV29yayksCkBAIC0yMDAsOSAr
MjAwLDkgQEAgdm9pZCBXb3JrUXVldWU6OnVucmVnaXN0ZXJFdmVudFNvdXJjZUhhbmRsZXIoaW50
IGZpbGVEZXNjcmlwdG9yKQogICAgIH0KIH0KIAotdm9pZCBXb3JrUXVldWU6OnNjaGVkdWxlV29y
a09uU291cmNlKEdTb3VyY2UqIGRpc3BhdGNoU291cmNlLCBQYXNzT3duUHRyPFdvcmtJdGVtPiBp
dGVtLCBHU291cmNlRnVuYyBzb3VyY2VDYWxsYmFjaykKK3ZvaWQgV29ya1F1ZXVlOjpkaXNwYXRj
aE9uU291cmNlKEdTb3VyY2UqIGRpc3BhdGNoU291cmNlLCBjb25zdCBGdW5jdGlvbjx2b2lkKCk+
JiBmdW5jdGlvbiwgR1NvdXJjZUZ1bmMgc291cmNlQ2FsbGJhY2spCiB7Ci0gICAgRXZlbnRTb3Vy
Y2UqIGV2ZW50U291cmNlID0gbmV3IEV2ZW50U291cmNlKGl0ZW0sIHRoaXMsIDApOworICAgIEV2
ZW50U291cmNlKiBldmVudFNvdXJjZSA9IG5ldyBFdmVudFNvdXJjZShmdW5jdGlvbiwgdGhpcywg
MCk7CiAKICAgICBnX3NvdXJjZV9zZXRfY2FsbGJhY2soZGlzcGF0Y2hTb3VyY2UsIHNvdXJjZUNh
bGxiYWNrLCBldmVudFNvdXJjZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVpbnRlcnBy
ZXRfY2FzdDxHRGVzdHJveU5vdGlmeT4oJldvcmtRdWV1ZTo6RXZlbnRTb3VyY2U6OmRlbGV0ZUV2
ZW50U291cmNlKSk7CkBAIC0yMTAsMjcgKzIxMCwyNyBAQCB2b2lkIFdvcmtRdWV1ZTo6c2NoZWR1
bGVXb3JrT25Tb3VyY2UoR1NvdXJjZSogZGlzcGF0Y2hTb3VyY2UsIFBhc3NPd25QdHI8V29ya0l0
ZQogICAgIGdfc291cmNlX2F0dGFjaChkaXNwYXRjaFNvdXJjZSwgbV9ldmVudENvbnRleHQpOwog
fQogCi12b2lkIFdvcmtRdWV1ZTo6c2NoZWR1bGVXb3JrKFBhc3NPd25QdHI8V29ya0l0ZW0+IGl0
ZW0pCit2b2lkIFdvcmtRdWV1ZTo6ZGlzcGF0Y2goY29uc3QgRnVuY3Rpb248dm9pZCgpPiYgZnVu
Y3Rpb24pCiB7CiAgICAgR1JlZlB0cjxHU291cmNlPiBkaXNwYXRjaFNvdXJjZSA9IGFkb3B0R1Jl
ZihnX2lkbGVfc291cmNlX25ldygpKTsKICAgICBBU1NFUlQoZGlzcGF0Y2hTb3VyY2UpOwogICAg
IGdfc291cmNlX3NldF9wcmlvcml0eShkaXNwYXRjaFNvdXJjZS5nZXQoKSwgR19QUklPUklUWV9E
RUZBVUxUKTsKIAotICAgIHNjaGVkdWxlV29ya09uU291cmNlKGRpc3BhdGNoU291cmNlLmdldCgp
LCBpdGVtLCByZWludGVycHJldF9jYXN0PEdTb3VyY2VGdW5jPigmV29ya1F1ZXVlOjpFdmVudFNv
dXJjZTo6cGVyZm9ybVdvcmtPbmNlKSk7CisgICAgZGlzcGF0Y2hPblNvdXJjZShkaXNwYXRjaFNv
dXJjZS5nZXQoKSwgZnVuY3Rpb24sIHJlaW50ZXJwcmV0X2Nhc3Q8R1NvdXJjZUZ1bmM+KCZXb3Jr
UXVldWU6OkV2ZW50U291cmNlOjpwZXJmb3JtV29ya09uY2UpKTsKIH0KIAotdm9pZCBXb3JrUXVl
dWU6OnNjaGVkdWxlV29ya0FmdGVyRGVsYXkoUGFzc093blB0cjxXb3JrSXRlbT4gaXRlbSwgZG91
YmxlIGRlbGF5KQordm9pZCBXb3JrUXVldWU6OmRpc3BhdGNoQWZ0ZXJEZWxheShjb25zdCBGdW5j
dGlvbjx2b2lkKCk+JiBmdW5jdGlvbiwgZG91YmxlIGRlbGF5KQogewogICAgIEdSZWZQdHI8R1Nv
dXJjZT4gZGlzcGF0Y2hTb3VyY2UgPSBhZG9wdEdSZWYoZ190aW1lb3V0X3NvdXJjZV9uZXcoc3Rh
dGljX2Nhc3Q8Z3VpbnQ+KGRlbGF5ICogMTAwMCkpKTsKICAgICBBU1NFUlQoZGlzcGF0Y2hTb3Vy
Y2UpOwogCi0gICAgc2NoZWR1bGVXb3JrT25Tb3VyY2UoZGlzcGF0Y2hTb3VyY2UuZ2V0KCksIGl0
ZW0sIHJlaW50ZXJwcmV0X2Nhc3Q8R1NvdXJjZUZ1bmM+KCZXb3JrUXVldWU6OkV2ZW50U291cmNl
OjpwZXJmb3JtV29ya09uY2UpKTsKKyAgICBkaXNwYXRjaE9uU291cmNlKGRpc3BhdGNoU291cmNl
LmdldCgpLCBmdW5jdGlvbiwgcmVpbnRlcnByZXRfY2FzdDxHU291cmNlRnVuYz4oJldvcmtRdWV1
ZTo6RXZlbnRTb3VyY2U6OnBlcmZvcm1Xb3JrT25jZSkpOwogfQogCi12b2lkIFdvcmtRdWV1ZTo6
c2NoZWR1bGVXb3JrT25UZXJtaW5hdGlvbihXZWJLaXQ6OlBsYXRmb3JtUHJvY2Vzc0lkZW50aWZp
ZXIgcHJvY2VzcywgUGFzc093blB0cjxXb3JrSXRlbT4gaXRlbSkKK3ZvaWQgV29ya1F1ZXVlOjpk
aXNwYXRjaE9uVGVybWluYXRpb24oV2ViS2l0OjpQbGF0Zm9ybVByb2Nlc3NJZGVudGlmaWVyIHBy
b2Nlc3MsIGNvbnN0IEZ1bmN0aW9uPHZvaWQoKT4mIGZ1bmN0aW9uKQogewogICAgIEdSZWZQdHI8
R1NvdXJjZT4gZGlzcGF0Y2hTb3VyY2UgPSBhZG9wdEdSZWYoZ19jaGlsZF93YXRjaF9zb3VyY2Vf
bmV3KHByb2Nlc3MpKTsKICAgICBBU1NFUlQoZGlzcGF0Y2hTb3VyY2UpOwogCi0gICAgc2NoZWR1
bGVXb3JrT25Tb3VyY2UoZGlzcGF0Y2hTb3VyY2UuZ2V0KCksIGl0ZW0sIHJlaW50ZXJwcmV0X2Nh
c3Q8R1NvdXJjZUZ1bmM+KCZXb3JrUXVldWU6OkV2ZW50U291cmNlOjpwZXJmb3JtV29ya09uVGVy
bWluYXRpb24pKTsKKyAgICBkaXNwYXRjaE9uU291cmNlKGRpc3BhdGNoU291cmNlLmdldCgpLCBm
dW5jdGlvbiwgcmVpbnRlcnByZXRfY2FzdDxHU291cmNlRnVuYz4oJldvcmtRdWV1ZTo6RXZlbnRT
b3VyY2U6OnBlcmZvcm1Xb3JrT25UZXJtaW5hdGlvbikpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vbWFjL1dvcmtRdWV1ZU1hYy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybS9tYWMvV29ya1F1ZXVlTWFjLmNwcAppbmRleCBjYmI0OGM1YzU3ZWJmZmQ1Yjg1NzEz
MDQ0NGVhNjY0MWE3ZmMyODFjLi41Yzg2NzBhNWFjMWE4MDZhNmFmOGFmNDBiYTkxMmFjYThlZTYy
MGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9tYWMvV29ya1F1ZXVlTWFj
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9tYWMvV29ya1F1ZXVlTWFjLmNwcApA
QCAtMzIsMzAgKzMyLDMwIEBACiAKICNpZiBIQVZFKERJU1BBVENIX0gpCiAKLXZvaWQgV29ya1F1
ZXVlOjpleGVjdXRlV29ya0l0ZW0odm9pZCogaXRlbSkKK3ZvaWQgV29ya1F1ZXVlOjpleGVjdXRl
RnVuY3Rpb24odm9pZCogY29udGV4dCkKIHsKICAgICBXb3JrUXVldWUqIHF1ZXVlID0gc3RhdGlj
X2Nhc3Q8V29ya1F1ZXVlKj4oZGlzcGF0Y2hfZ2V0X2NvbnRleHQoZGlzcGF0Y2hfZ2V0X2N1cnJl
bnRfcXVldWUoKSkpOwotICAgIE93blB0cjxXb3JrSXRlbT4gd29ya0l0ZW0gPSBhZG9wdFB0cihz
dGF0aWNfY2FzdDxXb3JrSXRlbSo+KGl0ZW0pKTsKKyAgICBPd25QdHI8RnVuY3Rpb248dm9pZCgp
PiA+IGZ1bmN0aW9uID0gYWRvcHRQdHIoc3RhdGljX2Nhc3Q8RnVuY3Rpb248dm9pZCgpPio+KGNv
bnRleHQpKTsKICAgICAKICAgICB7CiAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihxdWV1ZS0+
bV9pc1ZhbGlkTXV0ZXgpOwogICAgICAgICBpZiAoIXF1ZXVlLT5tX2lzVmFsaWQpCiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgfQotICAgIAotICAgIHdvcmtJdGVtLT5leGVjdXRlKCk7CisKKyAg
ICAoKmZ1bmN0aW9uKSgpOwogfQogCi12b2lkIFdvcmtRdWV1ZTo6c2NoZWR1bGVXb3JrKFBhc3NP
d25QdHI8V29ya0l0ZW0+IGl0ZW0pCit2b2lkIFdvcmtRdWV1ZTo6ZGlzcGF0Y2goY29uc3QgRnVu
Y3Rpb248dm9pZCgpPiYgZnVuY3Rpb24pCiB7Ci0gICAgZGlzcGF0Y2hfYXN5bmNfZihtX2Rpc3Bh
dGNoUXVldWUsIGl0ZW0ubGVha1B0cigpLCBleGVjdXRlV29ya0l0ZW0pOworICAgIGRpc3BhdGNo
X2FzeW5jX2YobV9kaXNwYXRjaFF1ZXVlLCBuZXcgRnVuY3Rpb248dm9pZCgpPihmdW5jdGlvbiks
IGV4ZWN1dGVGdW5jdGlvbik7CiB9CiAKLXZvaWQgV29ya1F1ZXVlOjpzY2hlZHVsZVdvcmtBZnRl
ckRlbGF5KFBhc3NPd25QdHI8V29ya0l0ZW0+IGl0ZW0sIGRvdWJsZSBkZWxheSkKK3ZvaWQgV29y
a1F1ZXVlOjpkaXNwYXRjaEFmdGVyRGVsYXkoY29uc3QgRnVuY3Rpb248dm9pZCgpPiYgZnVuY3Rp
b24sIGRvdWJsZSBkZWxheSkKIHsKICAgICBkaXNwYXRjaF90aW1lX3QgZGVsYXlUaW1lID0gZGlz
cGF0Y2hfdGltZShESVNQQVRDSF9USU1FX05PVywgZGVsYXkgKiBOU0VDX1BFUl9TRUMpOwogCi0g
ICAgZGlzcGF0Y2hfYWZ0ZXJfZihkZWxheVRpbWUsIG1fZGlzcGF0Y2hRdWV1ZSwgaXRlbS5sZWFr
UHRyKCksIGV4ZWN1dGVXb3JrSXRlbSk7CisgICAgZGlzcGF0Y2hfYWZ0ZXJfZihkZWxheVRpbWUs
IG1fZGlzcGF0Y2hRdWV1ZSwgbmV3IEZ1bmN0aW9uPHZvaWQoKT4oZnVuY3Rpb24pLCBleGVjdXRl
RnVuY3Rpb24pOwogfQogCiBjbGFzcyBXb3JrUXVldWU6OkV2ZW50U291cmNlIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3F0L1dvcmtRdWV1ZVF0LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtL3F0L1dvcmtRdWV1ZVF0LmNwcAppbmRleCA5NTk5NDhkNzFiMzYzNzFh
OWY2YmFmZTcwZjQ0ZDAxZTcxYTg5YTEyLi4xNTU1MmQxMDM3ODRiZWRkYjJhOWU2NjI3YzgyNDQy
ZDU1ODY5ZjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9xdC9Xb3JrUXVl
dWVRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vcXQvV29ya1F1ZXVlUXQuY3Bw
CkBAIC0zNywzMiArMzcsMzEgQEAKIGNsYXNzIFdvcmtRdWV1ZTo6V29ya0l0ZW1RdCA6IHB1Ymxp
YyBRT2JqZWN0IHsKICAgICBRX09CSkVDVAogcHVibGljOgotICAgIFdvcmtJdGVtUXQoV29ya1F1
ZXVlKiB3b3JrUXVldWUsIFdvcmtJdGVtKiB3b3JrSXRlbSkKKyAgICBXb3JrSXRlbVF0KFdvcmtR
dWV1ZSogd29ya1F1ZXVlLCBjb25zdCBGdW5jdGlvbjx2b2lkKCk+JiBmdW5jdGlvbikKICAgICAg
ICAgOiBtX3F1ZXVlKHdvcmtRdWV1ZSkKICAgICAgICAgLCBtX3NvdXJjZSgwKQogICAgICAgICAs
IG1fc2lnbmFsKDApCi0gICAgICAgICwgbV93b3JrSXRlbSh3b3JrSXRlbSkKKyAgICAgICAgLCBt
X2Z1bmN0aW9uKGZ1bmN0aW9uKQogICAgIHsKICAgICB9CiAKLSAgICBXb3JrSXRlbVF0KFdvcmtR
dWV1ZSogd29ya1F1ZXVlLCBRT2JqZWN0KiBzb3VyY2UsIGNvbnN0IGNoYXIqIHNpZ25hbCwgV29y
a0l0ZW0qIHdvcmtJdGVtKQorICAgIFdvcmtJdGVtUXQoV29ya1F1ZXVlKiB3b3JrUXVldWUsIFFP
YmplY3QqIHNvdXJjZSwgY29uc3QgY2hhciogc2lnbmFsLCBjb25zdCBGdW5jdGlvbjx2b2lkKCk+
JiBmdW5jdGlvbikKICAgICAgICAgOiBtX3F1ZXVlKHdvcmtRdWV1ZSkKICAgICAgICAgLCBtX3Nv
dXJjZShzb3VyY2UpCiAgICAgICAgICwgbV9zaWduYWwoc2lnbmFsKQotICAgICAgICAsIG1fd29y
a0l0ZW0od29ya0l0ZW0pCisgICAgICAgICwgbV9mdW5jdGlvbihmdW5jdGlvbikKICAgICB7CiAg
ICAgICAgIGNvbm5lY3QobV9zb3VyY2UsIG1fc2lnbmFsLCBTTE9UKGV4ZWN1dGUoKSksIFF0OjpR
dWV1ZWRDb25uZWN0aW9uKTsKICAgICB9CiAKICAgICB+V29ya0l0ZW1RdCgpCiAgICAgewotICAg
ICAgICBkZWxldGUgbV93b3JrSXRlbTsKICAgICB9CiAKICAgICBRX1NMT1Qgdm9pZCBleGVjdXRl
KCkgCiAgICAgeyAKICAgICAgICAgaWYgKG1fcXVldWUtPm1faXNWYWxpZCkKLSAgICAgICAgICAg
IG1fd29ya0l0ZW0tPmV4ZWN1dGUoKTsKKyAgICAgICAgICAgIG1fZnVuY3Rpb24oKTsKICAgICB9
CiAKICAgICBRX1NMT1Qgdm9pZCBleGVjdXRlQW5kRGVsZXRlKCkKQEAgLTc5LDE3ICs3OCwxNyBA
QCBwdWJsaWM6CiAgICAgV29ya1F1ZXVlKiBtX3F1ZXVlOwogICAgIFFPYmplY3QqIG1fc291cmNl
OwogICAgIGNvbnN0IGNoYXIqIG1fc2lnbmFsOwotICAgIFdvcmtJdGVtKiBtX3dvcmtJdGVtOwor
ICAgIEZ1bmN0aW9uPHZvaWQoKT4gbV9mdW5jdGlvbjsKIH07CiAKLVFTb2NrZXROb3RpZmllciog
V29ya1F1ZXVlOjpyZWdpc3RlclNvY2tldEV2ZW50SGFuZGxlcihpbnQgc29ja2V0RGVzY3JpcHRv
ciwgUVNvY2tldE5vdGlmaWVyOjpUeXBlIHR5cGUsIFBhc3NPd25QdHI8V29ya0l0ZW0+IHdvcmtJ
dGVtKQorUVNvY2tldE5vdGlmaWVyKiBXb3JrUXVldWU6OnJlZ2lzdGVyU29ja2V0RXZlbnRIYW5k
bGVyKGludCBzb2NrZXREZXNjcmlwdG9yLCBRU29ja2V0Tm90aWZpZXI6OlR5cGUgdHlwZSwgY29u
c3QgRnVuY3Rpb248dm9pZCgpPiYgZnVuY3Rpb24pCiB7CiAgICAgQVNTRVJUKG1fd29ya1RocmVh
ZCk7CiAKICAgICBRU29ja2V0Tm90aWZpZXIqIG5vdGlmaWVyID0gbmV3IFFTb2NrZXROb3RpZmll
cihzb2NrZXREZXNjcmlwdG9yLCB0eXBlLCAwKTsKICAgICBub3RpZmllci0+c2V0RW5hYmxlZChm
YWxzZSk7CiAgICAgbm90aWZpZXItPm1vdmVUb1RocmVhZChtX3dvcmtUaHJlYWQpOwotICAgIFdv
cmtRdWV1ZTo6V29ya0l0ZW1RdCogaXRlbVF0ID0gbmV3IFdvcmtRdWV1ZTo6V29ya0l0ZW1RdCh0
aGlzLCBub3RpZmllciwgU0lHTkFMKGFjdGl2YXRlZChpbnQpKSwgd29ya0l0ZW0ubGVha1B0cigp
KTsKKyAgICBXb3JrUXVldWU6OldvcmtJdGVtUXQqIGl0ZW1RdCA9IG5ldyBXb3JrUXVldWU6Oldv
cmtJdGVtUXQodGhpcywgbm90aWZpZXIsIFNJR05BTChhY3RpdmF0ZWQoaW50KSksIGZ1bmN0aW9u
KTsKICAgICBpdGVtUXQtPm1vdmVUb1RocmVhZChtX3dvcmtUaHJlYWQpOwogICAgIG5vdGlmaWVy
LT5zZXRFbmFibGVkKHRydWUpOwogICAgIHJldHVybiBub3RpZmllcjsKQEAgLTEwOSwyMyArMTA4
LDIzIEBAIHZvaWQgV29ya1F1ZXVlOjpwbGF0Zm9ybUludmFsaWRhdGUoKQogICAgIGRlbGV0ZUFs
bFZhbHVlcyhtX3NpZ25hbExpc3RlbmVycyk7CiB9CiAKLXZvaWQgV29ya1F1ZXVlOjpzY2hlZHVs
ZVdvcmsoUGFzc093blB0cjxXb3JrSXRlbT4gaXRlbSkKK3ZvaWQgV29ya1F1ZXVlOjpkaXNwYXRj
aChjb25zdCBGdW5jdGlvbjx2b2lkKCk+JiBmdW5jdGlvbikKIHsKLSAgICBXb3JrUXVldWU6Oldv
cmtJdGVtUXQqIGl0ZW1RdCA9IG5ldyBXb3JrUXVldWU6OldvcmtJdGVtUXQodGhpcywgaXRlbS5s
ZWFrUHRyKCkpOworICAgIFdvcmtRdWV1ZTo6V29ya0l0ZW1RdCogaXRlbVF0ID0gbmV3IFdvcmtR
dWV1ZTo6V29ya0l0ZW1RdCh0aGlzLCBmdW5jdGlvbik7CiAgICAgaXRlbVF0LT5tb3ZlVG9UaHJl
YWQobV93b3JrVGhyZWFkKTsKICAgICBRTWV0YU9iamVjdDo6aW52b2tlTWV0aG9kKGl0ZW1RdCwg
ImV4ZWN1dGVBbmREZWxldGUiLCBRdDo6UXVldWVkQ29ubmVjdGlvbik7CiB9CiAKLXZvaWQgV29y
a1F1ZXVlOjpzY2hlZHVsZVdvcmtBZnRlckRlbGF5KFBhc3NPd25QdHI8V29ya0l0ZW0+IGl0ZW0s
IGRvdWJsZSBkZWxheUluU2Vjb25kKQordm9pZCBXb3JrUXVldWU6OmRpc3BhdGNoQWZ0ZXJEZWxh
eShjb25zdCBGdW5jdGlvbjx2b2lkKCk+JiBmdW5jdGlvbiwgZG91YmxlIGRlbGF5SW5TZWNvbmQp
CiB7Ci0gICAgV29ya1F1ZXVlOjpXb3JrSXRlbVF0KiBpdGVtUXQgPSBuZXcgV29ya1F1ZXVlOjpX
b3JrSXRlbVF0KHRoaXMsIGl0ZW0ubGVha1B0cigpKTsKKyAgICBXb3JrUXVldWU6OldvcmtJdGVt
UXQqIGl0ZW1RdCA9IG5ldyBXb3JrUXVldWU6OldvcmtJdGVtUXQodGhpcywgZnVuY3Rpb24pOwog
ICAgIGl0ZW1RdC0+c3RhcnRUaW1lcihzdGF0aWNfY2FzdDxpbnQ+KGRlbGF5SW5TZWNvbmQgKiAx
MDAwKSk7CiAgICAgaXRlbVF0LT5tb3ZlVG9UaHJlYWQobV93b3JrVGhyZWFkKTsKIH0KIAotdm9p
ZCBXb3JrUXVldWU6OnNjaGVkdWxlV29ya09uVGVybWluYXRpb24oV2ViS2l0OjpQbGF0Zm9ybVBy
b2Nlc3NJZGVudGlmaWVyIHByb2Nlc3MsIFBhc3NPd25QdHI8V29ya0l0ZW0+IHdvcmtJdGVtKQor
dm9pZCBXb3JrUXVldWU6OmRpc3BhdGNoT25UZXJtaW5hdGlvbihXZWJLaXQ6OlBsYXRmb3JtUHJv
Y2Vzc0lkZW50aWZpZXIgcHJvY2VzcywgY29uc3QgRnVuY3Rpb248dm9pZCgpPiYgZnVuY3Rpb24p
CiB7Ci0gICAgV29ya1F1ZXVlOjpXb3JrSXRlbVF0KiBpdGVtUXQgPSBuZXcgV29ya1F1ZXVlOjpX
b3JrSXRlbVF0KHRoaXMsIHByb2Nlc3MsIFNJR05BTChmaW5pc2hlZChpbnQsIFFQcm9jZXNzOjpF
eGl0U3RhdHVzKSksIHdvcmtJdGVtLmxlYWtQdHIoKSk7CisgICAgV29ya1F1ZXVlOjpXb3JrSXRl
bVF0KiBpdGVtUXQgPSBuZXcgV29ya1F1ZXVlOjpXb3JrSXRlbVF0KHRoaXMsIHByb2Nlc3MsIFNJ
R05BTChmaW5pc2hlZChpbnQsIFFQcm9jZXNzOjpFeGl0U3RhdHVzKSksIGZ1bmN0aW9uKTsKICAg
ICBpdGVtUXQtPm1vdmVUb1RocmVhZChtX3dvcmtUaHJlYWQpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS93aW4vUnVuTG9vcFdpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS93aW4vUnVuTG9vcFdpbi5jcHAKaW5kZXggMjFiYzJlMDk2NGNiNDg3MzEwNGVj
ZmVhYjQ1MjdkY2Q3YjM2MTVhMS4uNjBhNDBlMGUxMjFjNjM5OTg4NGMyZDYzZjc5Mzg2MzA4NmEy
YmJhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vd2luL1J1bkxvb3BXaW4u
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3dpbi9SdW5Mb29wV2luLmNwcApAQCAt
MTU1LDcgKzE1NSw3IEBAIFJ1bkxvb3A6On5SdW5Mb29wKCkKIAogdm9pZCBSdW5Mb29wOjp3YWtl
VXAoKQogewotICAgIC8vIEZJWE1FOiBObyBuZWVkIHRvIHdha2UgdXAgdGhlIHJ1biBsb29wIGlm
IHdlJ3ZlIGFscmVhZHkgY2FsbGVkIHNjaGVkdWxlV29yaworICAgIC8vIEZJWE1FOiBObyBuZWVk
IHRvIHdha2UgdXAgdGhlIHJ1biBsb29wIGlmIHdlJ3ZlIGFscmVhZHkgY2FsbGVkIGRpc3BhdGNo
CiAgICAgLy8gYmVmb3JlIHRoZSBydW4gbG9vcCBoYXMgaGFkIHRoZSB0aW1lIHRvIHJlc3BvbmQu
CiAgICAgOjpQb3N0TWVzc2FnZShtX3J1bkxvb3BNZXNzYWdlV2luZG93LCBQZXJmb3JtV29ya01l
c3NhZ2UsIHJlaW50ZXJwcmV0X2Nhc3Q8V1BBUkFNPih0aGlzKSwgMCk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS93aW4vV29ya1F1ZXVlV2luLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtL3dpbi9Xb3JrUXVldWVXaW4uY3BwCmluZGV4IDQ0ZTk4ODUxOWUxNTRm
ODZiYzA1NTBlODVlMmFlNzk5OTRjYTA2MmMuLmQzNDIwZDcyMTNiZWFlODliOGU5YWViMTI4MzUx
YmM0NzNlMTk4Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3dpbi9Xb3Jr
UXVldWVXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3dpbi9Xb3JrUXVldWVX
aW4uY3BwCkBAIC0yOSwzMiArMjksMzIgQEAKICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVu
dGVkLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogCi1pbmxpbmUgV29ya1F1ZXVlOjpX
b3JrSXRlbVdpbjo6V29ya0l0ZW1XaW4oUGFzc093blB0cjxXb3JrSXRlbT4gaXRlbSwgV29ya1F1
ZXVlKiBxdWV1ZSkKLSAgICA6IG1faXRlbShpdGVtKQoraW5saW5lIFdvcmtRdWV1ZTo6V29ya0l0
ZW1XaW46OldvcmtJdGVtV2luKGNvbnN0IEZ1bmN0aW9uPHZvaWQoKT4mIGZ1bmN0aW9uLCBXb3Jr
UXVldWUqIHF1ZXVlKQorICAgIDogbV9mdW5jdGlvbihmdW5jdGlvbikKICAgICAsIG1fcXVldWUo
cXVldWUpCiB7CiB9CiAKLVBhc3NSZWZQdHI8V29ya1F1ZXVlOjpXb3JrSXRlbVdpbj4gV29ya1F1
ZXVlOjpXb3JrSXRlbVdpbjo6Y3JlYXRlKFBhc3NPd25QdHI8V29ya0l0ZW0+IGl0ZW0sIFdvcmtR
dWV1ZSogcXVldWUpCitQYXNzUmVmUHRyPFdvcmtRdWV1ZTo6V29ya0l0ZW1XaW4+IFdvcmtRdWV1
ZTo6V29ya0l0ZW1XaW46OmNyZWF0ZShjb25zdCBGdW5jdGlvbjx2b2lkKCk+JiBmdW5jdGlvbiwg
V29ya1F1ZXVlKiBxdWV1ZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdvcmtJdGVtV2lu
KGl0ZW0sIHF1ZXVlKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXb3JrSXRlbVdpbihmdWN0
aW9uLCBxdWV1ZSkpOwogfQogCiBXb3JrUXVldWU6OldvcmtJdGVtV2luOjp+V29ya0l0ZW1XaW4o
KQogewogfQogCi1pbmxpbmUgV29ya1F1ZXVlOjpIYW5kbGVXb3JrSXRlbTo6SGFuZGxlV29ya0l0
ZW0oSEFORExFIGhhbmRsZSwgUGFzc093blB0cjxXb3JrSXRlbT4gaXRlbSwgV29ya1F1ZXVlKiBx
dWV1ZSkKLSAgICA6IFdvcmtJdGVtV2luKGl0ZW0sIHF1ZXVlKQoraW5saW5lIFdvcmtRdWV1ZTo6
SGFuZGxlV29ya0l0ZW06OkhhbmRsZVdvcmtJdGVtKEhBTkRMRSBoYW5kbGUsIGNvbnN0IEZ1bmN0
aW9uPHZvaWQoKT4mIGZ1bmN0aW9uLCBXb3JrUXVldWUqIHF1ZXVlKQorICAgIDogV29ya0l0ZW1X
aW4oZnVuY3Rpb24sIHF1ZXVlKQogICAgICwgbV9oYW5kbGUoaGFuZGxlKQogICAgICwgbV93YWl0
SGFuZGxlKDApCiB7CiAgICAgQVNTRVJUX0FSRyhoYW5kbGUsIGhhbmRsZSk7CiB9CiAKLVBhc3NS
ZWZQdHI8V29ya1F1ZXVlOjpIYW5kbGVXb3JrSXRlbT4gV29ya1F1ZXVlOjpIYW5kbGVXb3JrSXRl
bTo6Y3JlYXRlQnlBZG9wdGluZ0hhbmRsZShIQU5ETEUgaGFuZGxlLCBQYXNzT3duUHRyPFdvcmtJ
dGVtPiBpdGVtLCBXb3JrUXVldWUqIHF1ZXVlKQorUGFzc1JlZlB0cjxXb3JrUXVldWU6OkhhbmRs
ZVdvcmtJdGVtPiBXb3JrUXVldWU6OkhhbmRsZVdvcmtJdGVtOjpjcmVhdGVCeUFkb3B0aW5nSGFu
ZGxlKEhBTkRMRSBoYW5kbGUsIGNvbnN0IEZ1bmN0aW9uPHZvaWQoKT4mIGZ1bmN0aW9uLCBXb3Jr
UXVldWUqIHF1ZXVlKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgSGFuZGxlV29ya0l0ZW0o
aGFuZGxlLCBpdGVtLCBxdWV1ZSkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgSGFuZGxlV29y
a0l0ZW0oaGFuZGxlLCBmdW5jdGlvbiwgcXVldWUpKTsKIH0KIAogV29ya1F1ZXVlOjpIYW5kbGVX
b3JrSXRlbTo6fkhhbmRsZVdvcmtJdGVtKCkKQEAgLTg3LDkgKzg3LDkgQEAgdm9pZCBXb3JrUXVl
dWU6OmhhbmRsZUNhbGxiYWNrKHZvaWQqIGNvbnRleHQsIEJPT0xFQU4gdGltZXJPcldhaXRGaXJl
ZCkKICAgICBxdWV1ZS0+cGVyZm9ybVdvcmtPblJlZ2lzdGVyZWRXb3JrVGhyZWFkKCk7CiB9CiAK
LXZvaWQgV29ya1F1ZXVlOjpyZWdpc3RlckhhbmRsZShIQU5ETEUgaGFuZGxlLCBQYXNzT3duUHRy
PFdvcmtJdGVtPiBpdGVtKQordm9pZCBXb3JrUXVldWU6OnJlZ2lzdGVySGFuZGxlKEhBTkRMRSBo
YW5kbGUsIGNvbnN0IEZ1bmN0aW9uPHZvaWQoKT4mIGZ1bmN0aW9uKQogewotICAgIFJlZlB0cjxI
YW5kbGVXb3JrSXRlbT4gaGFuZGxlSXRlbSA9IEhhbmRsZVdvcmtJdGVtOjpjcmVhdGVCeUFkb3B0
aW5nSGFuZGxlKGhhbmRsZSwgaXRlbSwgdGhpcyk7CisgICAgUmVmUHRyPEhhbmRsZVdvcmtJdGVt
PiBoYW5kbGVJdGVtID0gSGFuZGxlV29ya0l0ZW06OmNyZWF0ZUJ5QWRvcHRpbmdIYW5kbGUoaGFu
ZGxlLCBmdW5jdGlvbiwgdGhpcyk7CiAKICAgICB7CiAgICAgICAgIE11dGV4TG9ja2VyIGxvY2so
bV9oYW5kbGVzTG9jayk7CkBAIC0xOTQsMTEgKzE5NCwxMSBAQCB2b2lkIFdvcmtRdWV1ZTo6cGxh
dGZvcm1JbnZhbGlkYXRlKCkKICAgICA6OkRlbGV0ZVRpbWVyUXVldWVFeChtX3RpbWVyUXVldWUs
IDApOwogfQogCi12b2lkIFdvcmtRdWV1ZTo6c2NoZWR1bGVXb3JrKFBhc3NPd25QdHI8V29ya0l0
ZW0+IGl0ZW0pCit2b2lkIFdvcmtRdWV1ZTo6ZGlzcGF0Y2goY29uc3QgRnVuY3Rpb248dm9pZCgp
PiYgZnVuY3Rpb24pKQogewogICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3dvcmtJdGVtUXVldWVM
b2NrKTsKIAotICAgIG1fd29ya0l0ZW1RdWV1ZS5hcHBlbmQoV29ya0l0ZW1XaW46OmNyZWF0ZShp
dGVtLCB0aGlzKSk7CisgICAgbV93b3JrSXRlbVF1ZXVlLmFwcGVuZChXb3JrSXRlbVdpbjo6Y3Jl
YXRlKGZ1bmN0aW9uLCB0aGlzKSk7CiAKICAgICAvLyBTcGF3biBhIHdvcmsgdGhyZWFkIHRvIHBl
cmZvcm0gdGhlIHdvcmsgd2UganVzdCBhZGRlZC4gQXMgYW4gb3B0aW1pemF0aW9uLCB3ZSBhdm9p
ZAogICAgIC8vIHNwYXduaW5nIHRoZSB0aHJlYWQgaWYgYSB3b3JrIHRocmVhZCBpcyBhbHJlYWR5
IHJlZ2lzdGVyZWQuIFRoaXMgcHJldmVudHMgbXVsdGlwbGUgd29yawpAQCAtMjE0LDcgKzIxNCw3
IEBAIHN0cnVjdCBUaW1lckNvbnRleHQgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8VGlt
ZXJDb250ZXh0PiB7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8VGltZXJDb250ZXh0PiBjcmVhdGUo
KSB7IHJldHVybiBhZG9wdFJlZihuZXcgVGltZXJDb250ZXh0KTsgfQogCiAgICAgV29ya1F1ZXVl
KiBxdWV1ZTsKLSAgICBPd25QdHI8V29ya0l0ZW0+IGl0ZW07CisgICAgRnVuY3Rpb248dm9pZCgp
PiBmdW5jdGlvbjsKICAgICBNdXRleCB0aW1lck11dGV4OwogICAgIEhBTkRMRSB0aW1lcjsKIApA
QCAtMjMwLDcgKzIzMCw3IEBAIHZvaWQgV29ya1F1ZXVlOjp0aW1lckNhbGxiYWNrKHZvaWQqIGNv
bnRleHQsIEJPT0xFQU4gdGltZXJPcldhaXRGaXJlZCkKICAgICAvLyBCYWxhbmNlZCBieSBsZWFr
UmVmIGluIHNjaGVkdWxlV29ya0FmdGVyRGVsYXkuCiAgICAgUmVmUHRyPFRpbWVyQ29udGV4dD4g
dGltZXJDb250ZXh0ID0gYWRvcHRSZWYoc3RhdGljX2Nhc3Q8VGltZXJDb250ZXh0Kj4oY29udGV4
dCkpOwogCi0gICAgdGltZXJDb250ZXh0LT5xdWV1ZS0+c2NoZWR1bGVXb3JrKHRpbWVyQ29udGV4
dC0+aXRlbS5yZWxlYXNlKCkpOworICAgIHRpbWVyQ29udGV4dC0+cXVldWUtPmRpc3BhdGNoKHRp
bWVyQ29udGV4dC0+ZnVuY3Rpb24pOwogCiAgICAgTXV0ZXhMb2NrZXIgbG9jayh0aW1lckNvbnRl
eHQtPnRpbWVyTXV0ZXgpOwogICAgIEFTU0VSVCh0aW1lckNvbnRleHQtPnRpbWVyKTsKQEAgLTIz
OSwxMyArMjM5LDEzIEBAIHZvaWQgV29ya1F1ZXVlOjp0aW1lckNhbGxiYWNrKHZvaWQqIGNvbnRl
eHQsIEJPT0xFQU4gdGltZXJPcldhaXRGaXJlZCkKICAgICAgICAgQVNTRVJUX1dJVEhfTUVTU0FH
RShmYWxzZSwgIjo6RGVsZXRlVGltZXJRdWV1ZVRpbWVyIGZhaWxlZCB3aXRoIGVycm9yICVsdSIs
IDo6R2V0TGFzdEVycm9yKCkpOwogfQogCi12b2lkIFdvcmtRdWV1ZTo6c2NoZWR1bGVXb3JrQWZ0
ZXJEZWxheShQYXNzT3duUHRyPFdvcmtJdGVtPiBpdGVtLCBkb3VibGUgZGVsYXkpCit2b2lkIFdv
cmtRdWV1ZTo6ZGlzcGF0Y2hBZnRlckRlbGF5KGNvbnN0IEZ1bmN0aW9uPHZvaWQoKT4mIGZ1bmN0
aW9uLCBkb3VibGUgZGVsYXkpCiB7CiAgICAgQVNTRVJUKG1fdGltZXJRdWV1ZSk7CiAKICAgICBS
ZWZQdHI8VGltZXJDb250ZXh0PiBjb250ZXh0ID0gVGltZXJDb250ZXh0OjpjcmVhdGUoKTsKICAg
ICBjb250ZXh0LT5xdWV1ZSA9IHRoaXM7Ci0gICAgY29udGV4dC0+aXRlbSA9IGl0ZW07CisgICAg
Y29udGV4dC0+ZnVuY3Rpb24gPSBmdW5jdGlvbjsKIAogICAgIHsKICAgICAgICAgLy8gVGhlIHRp
bWVyIGNhbGxiYWNrIGNvdWxkIGZpcmUgYmVmb3JlIDo6Q3JlYXRlVGltZXJRdWV1ZVRpbWVyIGV2
ZW4gcmV0dXJucywgc28gd2UgcHJvdGVjdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0xhdW5jaGVyL2d0ay9Qcm9jZXNzTGF1bmNoZXJHdGsuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0xhdW5jaGVyL2d0ay9Qcm9jZXNzTGF1bmNoZXJHdGsuY3BwCmluZGV4IGJi
YmFlMmU2ODA5Mjg0MDI1NWU2ZWFiZDRjZjVlYzU0MGM0Y2YxYTguLmQ3YTUwODI5ZDJlZjRkZjhm
ZWE4NGJmYWNjNDcxMzM4N2QyZTg2NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9MYXVuY2hlci9ndGsvUHJvY2Vzc0xhdW5jaGVyR3RrLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvZ3RrL1Byb2Nlc3NMYXVuY2hlckd0ay5jcHAKQEAgLTEz
Myw3ICsxMzMsNyBAQCB2b2lkIFByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2VzcygpCiAgICAg
Z19jaGlsZF93YXRjaF9hZGQobV9wcm9jZXNzSWRlbnRpZmllciwgY2hpbGRGaW5pc2hlZEZ1bmN0
aW9uLCBHSU5UX1RPX1BPSU5URVIoc29ja2V0c1sxXSkpOwogCiAgICAgLy8gV2UndmUgZmluaXNo
ZWQgbGF1bmNoaW5nIHRoZSBwcm9jZXNzLCBtZXNzYWdlIGJhY2sgdG8gdGhlIG1haW4gcnVuIGxv
b3AuCi0gICAgUnVuTG9vcDo6bWFpbigpLT5zY2hlZHVsZVdvcmsoV29ya0l0ZW06OmNyZWF0ZSh0
aGlzLCAmUHJvY2Vzc0xhdW5jaGVyOjpkaWRGaW5pc2hMYXVuY2hpbmdQcm9jZXNzLCBtX3Byb2Nl
c3NJZGVudGlmaWVyLCBzb2NrZXRzWzFdKSk7CisgICAgUnVuTG9vcDo6bWFpbigpLT5kaXNwYXRj
aChiaW5kKCZQcm9jZXNzTGF1bmNoZXI6OmRpZEZpbmlzaExhdW5jaGluZ1Byb2Nlc3MsIHRoaXMs
IG1fcHJvY2Vzc0lkZW50aWZpZXIsIHNvY2tldHNbMV0pKTsKIH0KIAogdm9pZCBQcm9jZXNzTGF1
bmNoZXI6OnRlcm1pbmF0ZVByb2Nlc3MoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0xhdW5jaGVyL3F0L1Byb2Nlc3NMYXVuY2hlclF0LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9MYXVuY2hlci9xdC9Qcm9jZXNzTGF1bmNoZXJRdC5jcHAKaW5kZXggYjcyNWQ3
YjkyNGM2ZjRiNTBkN2UwMzhiOGEyZmE0YmVjMjgxNzE0Yi4uOTNhZmE0MDA5MjI3YWU0MTljMzVm
ZTllYzkyMzViNzY5ZTMwYjhkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0xhdW5jaGVyL3F0L1Byb2Nlc3NMYXVuY2hlclF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvTGF1bmNoZXIvcXQvUHJvY2Vzc0xhdW5jaGVyUXQuY3BwCkBAIC0xNzQsNyArMTc0
LDcgQEAgdm9pZCBQcm9jZXNzTGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MoKQogCiAgICAgc2V0cHJp
b3JpdHkoUFJJT19QUk9DRVNTLCB3ZWJQcm9jZXNzLT5waWQoKSwgMTApOwogCi0gICAgUnVuTG9v
cDo6bWFpbigpLT5zY2hlZHVsZVdvcmsoV29ya0l0ZW06OmNyZWF0ZSh0aGlzLCAmV2ViS2l0OjpQ
cm9jZXNzTGF1bmNoZXI6OmRpZEZpbmlzaExhdW5jaGluZ1Byb2Nlc3MsIHdlYlByb2Nlc3MsIGNv
bm5lY3RvcikpOworICAgIFJ1bkxvb3A6Om1haW4oKS0+ZGlzcGF0Y2goYmluZCgmV2ViS2l0OjpQ
cm9jZXNzTGF1bmNoZXI6OmRpZEZpbmlzaExhdW5jaGluZ1Byb2Nlc3MsIHRoaXMsIHdlYlByb2Nl
c3MsIGNvbm5lY3RvcikpOwogfQogCiB2b2lkIFByb2Nlc3NMYXVuY2hlcjo6dGVybWluYXRlUHJv
Y2VzcygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvd2lu
L1Byb2Nlc3NMYXVuY2hlcldpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNo
ZXIvd2luL1Byb2Nlc3NMYXVuY2hlcldpbi5jcHAKaW5kZXggMDMxNzViNTdjZWM5YzEyYTZkMzJj
ZGE0ZWRmZDQwYWQ3NGY0ODYyNi4uZDUyNmMwMzA3OGQ1N2NiYWRmYTI4OTU4NTE2MDg2Mzc4NWUw
NTU0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL3dpbi9Q
cm9jZXNzTGF1bmNoZXJXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVu
Y2hlci93aW4vUHJvY2Vzc0xhdW5jaGVyV2luLmNwcApAQCAtMTAyLDcgKzEwMiw3IEBAIHZvaWQg
UHJvY2Vzc0xhdW5jaGVyOjpsYXVuY2hQcm9jZXNzKCkKICAgICA6OkNsb3NlSGFuZGxlKHByb2Nl
c3NJbmZvcm1hdGlvbi5oVGhyZWFkKTsKIAogICAgIC8vIFdlJ3ZlIGZpbmlzaGVkIGxhdW5jaGlu
ZyB0aGUgcHJvY2VzcywgbWVzc2FnZSBiYWNrIHRvIHRoZSBydW4gbG9vcC4KLSAgICBSdW5Mb29w
OjptYWluKCktPnNjaGVkdWxlV29yayhXb3JrSXRlbTo6Y3JlYXRlKHRoaXMsICZQcm9jZXNzTGF1
bmNoZXI6OmRpZEZpbmlzaExhdW5jaGluZ1Byb2Nlc3MsIHByb2Nlc3NJbmZvcm1hdGlvbi5oUHJv
Y2Vzcywgc2VydmVySWRlbnRpZmllcikpOworICAgIFJ1bkxvb3A6Om1haW4oKS0+ZGlzcGF0Y2go
YmluZCgmUHJvY2Vzc0xhdW5jaGVyOjpkaWRGaW5pc2hMYXVuY2hpbmdQcm9jZXNzLCB0aGlzLCBw
cm9jZXNzSW5mb3JtYXRpb24uaFByb2Nlc3MsIHNlcnZlcklkZW50aWZpZXIpKTsKIH0KIAogdm9p
ZCBQcm9jZXNzTGF1bmNoZXI6OnRlcm1pbmF0ZVByb2Nlc3MoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9tYWMvQ29yZUlQQ0NsaWVudFJ1bkxvb3AubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9Db3JlSVBDQ2xpZW50UnVuTG9vcC5tbQppbmRleCAxNzU4
ODY4YTA0ZDQwZDE2MTgyZTM2YTU4NTY5ZDExZjU3M2VkMzc2Li5jYjUwNDY1Zjk1YWNiMDc0NWE4
ZmE3MTA0NzIxZDA3NjA0ZDIwZmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL21hYy9Db3JlSVBDQ2xpZW50UnVuTG9vcC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL21hYy9Db3JlSVBDQ2xpZW50UnVuTG9vcC5tbQpAQCAtNjgsOCArNjgsOCBAQCBzdGF0
aWMgTlNBcnJheSAqY29yZUlQQ1J1bkxvb3BNb2Rlc0FycmF5KCkKIAogdm9pZCBjYWxsT25Db3Jl
SVBDQ2xpZW50UnVuTG9vcEFuZFdhaXQoRnVuY3Rpb25XaXRoQ29udGV4dCBmdW5jdGlvbiwgdm9p
ZCogY29udGV4dCkKIHsKLSAgICAvLyBGSVhNRTogSXQgd291bGQgZml0IGJldHRlciB3aXRoIFdl
YktpdDIgY29kaW5nIHN0eWxlIHRvIHVzZSBhIFdvcmtJdGVtIGhlcmUuCi0gICAgLy8gVG8gZG8g
dGhhdCB3ZSdkIG5lZWQgdG8gbWFrZSBzY2hlZHVsZVdvcmsgaGF2ZSBhbiBvdmVybG9hZCB0aGF0
IHRha2VzIGFuIGFycmF5IG9mIHJ1biBsb29wIG1vZGVzIG9yIGZpbmQgc29tZQorICAgIC8vIEZJ
WE1FOiBJdCB3b3VsZCBmaXQgYmV0dGVyIHdpdGggV2ViS2l0MiBjb2Rpbmcgc3R5bGUgdG8gdXNl
IGEgV1RGIEZ1bmN0aW9uIGhlcmUuCisgICAgLy8gVG8gZG8gdGhhdCB3ZSdkIG5lZWQgdG8gbWFr
ZSBkaXNwYXRjaCBoYXZlIGFuIG92ZXJsb2FkIHRoYXQgdGFrZXMgYW4gYXJyYXkgb2YgcnVuIGxv
b3AgbW9kZXMgb3IgZmluZCBzb21lCiAgICAgLy8gb3RoZXIgd2F5IHRvIHNwZWNpZnkgdGhhdCB3
ZSB3YW50IHRvIGluY2x1ZGUgdGhlIHN5bmNocm9ub3VzIGxvYWQgcnVuIGxvb3AgbW9kZS4KICAg
ICBSZXRhaW5QdHI8V0tGdW5jdGlvbkFkYXB0ZXI+IGFkYXB0ZXIoQWRvcHROUywgW1tXS0Z1bmN0
aW9uQWRhcHRlciBhbGxvY10gaW5pdF0pOwogICAgIGFkYXB0ZXItPmZ1bmN0aW9uID0gZnVuY3Rp
b247Cg==
</data>
<flag name="review"
          id="119807"
          type_id="1"
          status="+"
          setter="darin"
    />
    <flag name="commit-queue"
          id="119825"
          type_id="3"
          status="-"
          setter="gustavo"
    />
          </attachment>
      

    </bug>

</bugzilla>