<?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>172246</bug_id>
          
          <creation_ts>2017-05-17 15:04:16 -0700</creation_ts>
          <short_desc>[WK2] Notify client when a process exceeds background CPU limit while in the foreground</short_desc>
          <delta_ts>2017-05-19 15:11:20 -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>WebKit2</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>172244</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>kling</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1309849</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-17 15:04:16 -0700</bug_when>
    <thetext>Notify client when a process exceeds background CPU limit while in the foreground.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309850</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-17 15:04:44 -0700</bug_when>
    <thetext>&lt;rdar://problem/32235411&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309853</commentid>
    <comment_count>2</comment_count>
      <attachid>310450</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-17 15:05:49 -0700</bug_when>
    <thetext>Created attachment 310450
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309854</commentid>
    <comment_count>3</comment_count>
      <attachid>310450</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-17 15:08:26 -0700</bug_when>
    <thetext>Comment on attachment 310450
WIP Patch

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

&gt; Source/WebKit2/UIProcess/WebProcessProxy.cpp:1167
&gt; +            // FIXME: We should call a delegate to notify the client we exceeded the background CPU limit while in the foreground (i.e. we would have terminated the process if it weren&apos;t visible).

I am holding off on this part since Andreas seems pretty far along on Bug 172244, and we&apos;ll likely use the same client callback (with a different parameter).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1310726</commentid>
    <comment_count>4</comment_count>
      <attachid>310687</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-19 12:55:05 -0700</bug_when>
    <thetext>Created attachment 310687
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1310779</commentid>
    <comment_count>5</comment_count>
      <attachid>310687</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2017-05-19 14:42:05 -0700</bug_when>
    <thetext>Comment on attachment 310687
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1310797</commentid>
    <comment_count>6</comment_count>
      <attachid>310687</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-19 15:11:19 -0700</bug_when>
    <thetext>Comment on attachment 310687
Patch

Clearing flags on attachment: 310687

Committed r217153: &lt;http://trac.webkit.org/changeset/217153&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1310798</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-19 15:11:20 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310450</attachid>
            <date>2017-05-17 15:05:49 -0700</date>
            <delta_ts>2017-05-19 12:55:03 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>172246_cpu_notify_wip.patch</filename>
            <type>text/plain</type>
            <size>19139</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NQVU1vbml0b3IuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ1BVTW9uaXRvci5jcHAKaW5kZXggNWZhYWY2NmU2MDIuLjE0
YTE5NjYyZTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DUFVNb25pdG9y
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DUFVNb25pdG9yLmNwcApAQCAtMzUs
NiArMzUsMTIgQEAgQ1BVTW9uaXRvcjo6Q1BVTW9uaXRvcihTZWNvbmRzIGNoZWNrSW50ZXJ2YWws
IEV4Y2VlZGVkQ1BVTGltaXRIYW5kbGVyJiYgZXhjZWVkZWQKIHsKIH0KIAordm9pZCBDUFVNb25p
dG9yOjpzdG9wKCkKK3sKKyAgICBtX3RpbWVyLnN0b3AoKTsKKyAgICBtX2NwdUxpbWl0ID0gc3Rk
OjpudWxsb3B0OworfQorCiB2b2lkIENQVU1vbml0b3I6OnNldENQVUxpbWl0KHN0ZDo6b3B0aW9u
YWw8ZG91YmxlPiBjcHVMaW1pdCkKIHsKICAgICBpZiAobV9jcHVMaW1pdCA9PSBjcHVMaW1pdCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NQVU1vbml0b3IuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0NQVU1vbml0b3IuaAppbmRleCBkNGRkYjc3OGQ2ZC4uMTBhZWFj
MzEwMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NQVU1vbml0b3IuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DUFVNb25pdG9yLmgKQEAgLTM3LDYgKzM3LDcg
QEAgcHVibGljOgogICAgIHVzaW5nIEV4Y2VlZGVkQ1BVTGltaXRIYW5kbGVyID0gV1RGOjpGdW5j
dGlvbjx2b2lkKGRvdWJsZSk+OwogICAgIFdFQkNPUkVfRVhQT1JUIENQVU1vbml0b3IoU2Vjb25k
cyBjaGVja0ludGVydmFsLCBFeGNlZWRlZENQVUxpbWl0SGFuZGxlciYmKTsKIAorICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc3RvcCgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q1BVTGlt
aXQoc3RkOjpvcHRpb25hbDxkb3VibGU+KTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCAxMDRkN2Ni
ZWM5Yi4uZGQxODRjMTI5ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTk0LDcgKzk0LDcgQEAgdm9pZCBXZWJQYWdl
Q3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAog
ICAgIGVuY29kZXIuZW5jb2RlRW51bSh1c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKTsKICAg
ICBlbmNvZGVyLmVuY29kZUVudW0ob2JzZXJ2ZWRMYXlvdXRNaWxlc3RvbmVzKTsKICAgICBlbmNv
ZGVyIDw8IG92ZXJyaWRlQ29udGVudFNlY3VyaXR5UG9saWN5OwotICAgIGVuY29kZXIgPDwgYmFj
a2dyb3VuZENQVUxpbWl0OworICAgIGVuY29kZXIgPDwgY3B1TGltaXQ7CiAgICAgZW5jb2RlciA8
PCB1cmxTY2hlbWVIYW5kbGVyczsKICNpZiBFTkFCTEUoV0VCX1JUQykKICAgICBlbmNvZGVyIDw8
IGljZUNhbmRpZGF0ZUZpbHRlcmluZ0VuYWJsZWQ7CkBAIC0yMzQsNyArMjM0LDcgQEAgYm9vbCBX
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBX
ZWJQYWdlQ3JlYXRpb25QYXIKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMub3Zl
cnJpZGVDb250ZW50U2VjdXJpdHlQb2xpY3kpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuYmFja2dyb3VuZENQVUxpbWl0KSkKKyAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuY3B1TGltaXQpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMudXJsU2NoZW1l
SGFuZGxlcnMpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25Q
YXJhbWV0ZXJzLmgKaW5kZXggMjdjZjBiNGQwODkuLmJhZDRkNWU3ZDhjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTE0OCw3
ICsxNDgsNyBAQCBzdHJ1Y3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgV2ViQ29y
ZTo6TGF5b3V0TWlsZXN0b25lcyBvYnNlcnZlZExheW91dE1pbGVzdG9uZXM7CiAKICAgICBTdHJp
bmcgb3ZlcnJpZGVDb250ZW50U2VjdXJpdHlQb2xpY3k7Ci0gICAgc3RkOjpvcHRpb25hbDxkb3Vi
bGU+IGJhY2tncm91bmRDUFVMaW1pdDsKKyAgICBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gY3B1TGlt
aXQ7CiAKICAgICBIYXNoTWFwPFN0cmluZywgdWludDY0X3Q+IHVybFNjaGVtZUhhbmRsZXJzOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1
cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3Vy
YXRpb24uY3BwCmluZGV4IDA5YTc0M2YyMDEzLi5hMGFjZTllMDc4MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5jcHAKQEAg
LTY4LDcgKzY4LDcgQEAgUmVmPFBhZ2VDb25maWd1cmF0aW9uPiBQYWdlQ29uZmlndXJhdGlvbjo6
Y29weSgpIGNvbnN0CiAgICAgY29weS0+bV9hbHdheXNSdW5zQXRGb3JlZ3JvdW5kUHJpb3JpdHkg
PSB0aGlzLT5tX2Fsd2F5c1J1bnNBdEZvcmVncm91bmRQcmlvcml0eTsKICNlbmRpZgogICAgIGNv
cHktPm1faW5pdGlhbENhcGl0YWxpemF0aW9uRW5hYmxlZCA9IHRoaXMtPm1faW5pdGlhbENhcGl0
YWxpemF0aW9uRW5hYmxlZDsKLSAgICBjb3B5LT5tX2JhY2tncm91bmRDUFVMaW1pdCA9IHRoaXMt
Pm1fYmFja2dyb3VuZENQVUxpbWl0OworICAgIGNvcHktPm1fY3B1TGltaXQgPSB0aGlzLT5tX2Nw
dUxpbWl0OwogICAgIGNvcHktPm1fY29udHJvbGxlZEJ5QXV0b21hdGlvbiA9IHRoaXMtPm1fY29u
dHJvbGxlZEJ5QXV0b21hdGlvbjsKICAgICBjb3B5LT5tX292ZXJyaWRlQ29udGVudFNlY3VyaXR5
UG9saWN5ID0gdGhpcy0+bV9vdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5oCmlu
ZGV4IDVkNDY3MzdlYTMxLi5iMmFlMjQ3MmRlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uaApAQCAtOTQsOCArOTQsOCBAQCBw
dWJsaWM6CiAgICAgYm9vbCBpbml0aWFsQ2FwaXRhbGl6YXRpb25FbmFibGVkKCkgeyByZXR1cm4g
bV9pbml0aWFsQ2FwaXRhbGl6YXRpb25FbmFibGVkOyB9CiAgICAgdm9pZCBzZXRJbml0aWFsQ2Fw
aXRhbGl6YXRpb25FbmFibGVkKGJvb2wgaW5pdGlhbENhcGl0YWxpemF0aW9uRW5hYmxlZCkgeyBt
X2luaXRpYWxDYXBpdGFsaXphdGlvbkVuYWJsZWQgPSBpbml0aWFsQ2FwaXRhbGl6YXRpb25FbmFi
bGVkOyB9CiAKLSAgICBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gYmFja2dyb3VuZENQVUxpbWl0KCkg
Y29uc3QgeyByZXR1cm4gbV9iYWNrZ3JvdW5kQ1BVTGltaXQ7IH0KLSAgICB2b2lkIHNldEJhY2tn
cm91bmRDUFVMaW1pdChkb3VibGUgY3B1TGltaXQpIHsgbV9iYWNrZ3JvdW5kQ1BVTGltaXQgPSBj
cHVMaW1pdDsgfQorICAgIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBjcHVMaW1pdCgpIGNvbnN0IHsg
cmV0dXJuIG1fY3B1TGltaXQ7IH0KKyAgICB2b2lkIHNldENQVUxpbWl0KGRvdWJsZSBjcHVMaW1p
dCkgeyBtX2NwdUxpbWl0ID0gY3B1TGltaXQ7IH0KIAogICAgIGJvb2wgd2FpdHNGb3JQYWludEFm
dGVyVmlld0RpZE1vdmVUb1dpbmRvdygpIGNvbnN0IHsgcmV0dXJuIG1fd2FpdHNGb3JQYWludEFm
dGVyVmlld0RpZE1vdmVUb1dpbmRvdzsgfQogICAgIHZvaWQgc2V0V2FpdHNGb3JQYWludEFmdGVy
Vmlld0RpZE1vdmVUb1dpbmRvdyhib29sIHNob3VsZFN5bmNocm9uaXplKSB7IG1fd2FpdHNGb3JQ
YWludEFmdGVyVmlld0RpZE1vdmVUb1dpbmRvdyA9IHNob3VsZFN5bmNocm9uaXplOyB9CkBAIC0x
MjgsNyArMTI4LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1faW5pdGlhbENhcGl0YWxpemF0aW9u
RW5hYmxlZCA9IHRydWU7CiAgICAgYm9vbCBtX3dhaXRzRm9yUGFpbnRBZnRlclZpZXdEaWRNb3Zl
VG9XaW5kb3cgPSB0cnVlOwogICAgIGJvb2wgbV9jb250cm9sbGVkQnlBdXRvbWF0aW9uID0gZmFs
c2U7Ci0gICAgc3RkOjpvcHRpb25hbDxkb3VibGU+IG1fYmFja2dyb3VuZENQVUxpbWl0OworICAg
IHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBtX2NwdUxpbWl0OwogCiAgICAgV1RGOjpTdHJpbmcgbV9v
dmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlQ29uZmlndXJhdGlvblJlZi5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlQ29uZmlndXJhdGlvblJlZi5jcHAKaW5kZXgg
ZmI3NTc1NGJjMDYuLmM3NTRhOWY1NmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tQYWdlQ29uZmlndXJhdGlvblJlZi5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUNvbmZpZ3VyYXRpb25SZWYuY3BwCkBAIC0xMTEsNSAr
MTExLDUgQEAgdm9pZCBXS1BhZ2VDb25maWd1cmF0aW9uU2V0SW5pdGlhbENhcGl0YWxpemF0aW9u
RW5hYmxlZChXS1BhZ2VDb25maWd1cmF0aW9uUmVmIGMKIAogdm9pZCBXS1BhZ2VDb25maWd1cmF0
aW9uU2V0QmFja2dyb3VuZENQVUxpbWl0KFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJh
dGlvbiwgZG91YmxlIGNwdUxpbWl0KQogewotICAgIHRvSW1wbChjb25maWd1cmF0aW9uKS0+c2V0
QmFja2dyb3VuZENQVUxpbWl0KGNwdUxpbWl0KTsKKyAgICB0b0ltcGwoY29uZmlndXJhdGlvbikt
PnNldENQVUxpbWl0KGNwdUxpbWl0KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKaW5kZXggOGY2ODdlYzlmMjEuLmJjMDI2ZjllZTJiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMzU1LDcgKzM1NSw3IEBAIFdlYlBh
Z2VQcm94eTo6V2ViUGFnZVByb3h5KFBhZ2VDbGllbnQmIHBhZ2VDbGllbnQsIFdlYlByb2Nlc3NQ
cm94eSYgcHJvY2VzcywgdWluCiAgICAgLCBtX2Fsd2F5c1J1bnNBdEZvcmVncm91bmRQcmlvcml0
eShtX2NvbmZpZ3VyYXRpb24tPmFsd2F5c1J1bnNBdEZvcmVncm91bmRQcmlvcml0eSgpKQogI2Vu
ZGlmCiAgICAgLCBtX2luaXRpYWxDYXBpdGFsaXphdGlvbkVuYWJsZWQobV9jb25maWd1cmF0aW9u
LT5pbml0aWFsQ2FwaXRhbGl6YXRpb25FbmFibGVkKCkpCi0gICAgLCBtX2JhY2tncm91bmRDUFVM
aW1pdChtX2NvbmZpZ3VyYXRpb24tPmJhY2tncm91bmRDUFVMaW1pdCgpKQorICAgICwgbV9jcHVM
aW1pdChtX2NvbmZpZ3VyYXRpb24tPmNwdUxpbWl0KCkpCiAgICAgLCBtX2JhY2tGb3J3YXJkTGlz
dChXZWJCYWNrRm9yd2FyZExpc3Q6OmNyZWF0ZSgqdGhpcykpCiAgICAgLCBtX21haW50YWluc0lu
YWN0aXZlU2VsZWN0aW9uKGZhbHNlKQogICAgICwgbV93YWl0c0ZvclBhaW50QWZ0ZXJWaWV3RGlk
TW92ZVRvV2luZG93KG1fY29uZmlndXJhdGlvbi0+d2FpdHNGb3JQYWludEFmdGVyVmlld0RpZE1v
dmVUb1dpbmRvdygpKQpAQCAtNTYwMiw3ICs1NjAyLDcgQEAgV2ViUGFnZUNyZWF0aW9uUGFyYW1l
dGVycyBXZWJQYWdlUHJveHk6OmNyZWF0aW9uUGFyYW1ldGVycygpCiAgICAgcGFyYW1ldGVycy51
c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uID0gbV9wYWdlQ2xpZW50LnVzZXJJbnRlcmZhY2VM
YXlvdXREaXJlY3Rpb24oKTsKICAgICBwYXJhbWV0ZXJzLm9ic2VydmVkTGF5b3V0TWlsZXN0b25l
cyA9IG1fb2JzZXJ2ZWRMYXlvdXRNaWxlc3RvbmVzOwogICAgIHBhcmFtZXRlcnMub3ZlcnJpZGVD
b250ZW50U2VjdXJpdHlQb2xpY3kgPSBtX292ZXJyaWRlQ29udGVudFNlY3VyaXR5UG9saWN5Owot
ICAgIHBhcmFtZXRlcnMuYmFja2dyb3VuZENQVUxpbWl0ID0gbV9iYWNrZ3JvdW5kQ1BVTGltaXQ7
CisgICAgcGFyYW1ldGVycy5jcHVMaW1pdCA9IG1fY3B1TGltaXQ7CiAKICAgICBmb3IgKGF1dG8m
IGl0ZXJhdG9yIDogbV91cmxTY2hlbWVIYW5kbGVyc0J5U2NoZW1lKQogICAgICAgICBwYXJhbWV0
ZXJzLnVybFNjaGVtZUhhbmRsZXJzLnNldChpdGVyYXRvci5rZXksIGl0ZXJhdG9yLnZhbHVlLT5p
ZGVudGlmaWVyKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4
IDdhYWEyNjNhNTIwLi44YzFlYTczNTMwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaApAQCAtMTcxMSw3ICsxNzExLDcgQEAgcHJpdmF0ZToKICAgICBQcm9jZXNzVGhy
b3R0bGVyOjpGb3JlZ3JvdW5kQWN0aXZpdHlUb2tlbiBtX2FjdGl2aXR5VG9rZW47CiAjZW5kaWYK
ICAgICBib29sIG1faW5pdGlhbENhcGl0YWxpemF0aW9uRW5hYmxlZDsKLSAgICBzdGQ6Om9wdGlv
bmFsPGRvdWJsZT4gbV9iYWNrZ3JvdW5kQ1BVTGltaXQ7CisgICAgc3RkOjpvcHRpb25hbDxkb3Vi
bGU+IG1fY3B1TGltaXQ7CiAgICAgUmVmPFdlYkJhY2tGb3J3YXJkTGlzdD4gbV9iYWNrRm9yd2Fy
ZExpc3Q7CiAgICAgICAgIAogICAgIGJvb2wgbV9tYWludGFpbnNJbmFjdGl2ZVNlbGVjdGlvbjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggODMw
MTM1YzE1MDAuLmM0MTM1MjI1ODc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmNwcApAQCAtMTE0NywyNCArMTE0NywzMyBAQCB2b2lkIFdlYlByb2Nlc3NQ
cm94eTo6ZGlkRXhjZWVkSW5hY3RpdmVNZW1vcnlMaW1pdCgpCiAgICAgcmVxdWVzdFRlcm1pbmF0
aW9uKFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbjo6RXhjZWVkZWRNZW1vcnlMaW1pdCk7CiB9CiAK
LXZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRFeGNlZWRCYWNrZ3JvdW5kQ1BVTGltaXQoKQordm9p
ZCBXZWJQcm9jZXNzUHJveHk6OmRpZEV4Y2VlZENQVUxpbWl0KCkKIHsKICAgICBmb3IgKGF1dG8m
IHBhZ2UgOiBwYWdlcygpKSB7Ci0gICAgICAgIGlmIChwYWdlLT5pc1ZpZXdWaXNpYmxlKCkpCi0g
ICAgICAgICAgICByZXR1cm47Ci0KICAgICAgICAgaWYgKHBhZ2UtPmlzUGxheWluZ0F1ZGlvKCkp
IHsKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HKFBlcmZvcm1hbmNlTG9nZ2luZywgIiVwIC0gV2Vi
UHJvY2Vzc1Byb3h5OjpkaWRFeGNlZWRCYWNrZ3JvdW5kQ1BVTGltaXQoKSBXZWJQcm9jZXNzIGhh
cyBleGNlZWRlZCB0aGUgYmFja2dyb3VuZCBDUFUgbGltaXQgYnV0IHdlIGFyZSBub3QgdGVybWlu
YXRpbmcgaXQgYmVjYXVzZSB0aGVyZSBpcyBhdWRpbyBwbGF5aW5nIiwgdGhpcyk7CisgICAgICAg
ICAgICBSRUxFQVNFX0xPRyhQZXJmb3JtYW5jZUxvZ2dpbmcsICIlcCAtIFdlYlByb2Nlc3NQcm94
eTo6ZGlkRXhjZWVkQ1BVTGltaXQoKSBXZWJQcm9jZXNzIGhhcyBleGNlZWRlZCB0aGUgYmFja2dy
b3VuZCBDUFUgbGltaXQgYnV0IHdlIGFyZSBub3QgdGVybWluYXRpbmcgaXQgYmVjYXVzZSB0aGVy
ZSBpcyBhdWRpbyBwbGF5aW5nIiwgdGhpcyk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KIAogICAgICAgICBpZiAocGFnZS0+aGFzQWN0aXZlQXVkaW9TdHJlYW0oKSB8fCBwYWdlLT5o
YXNBY3RpdmVWaWRlb1N0cmVhbSgpKSB7Ci0gICAgICAgICAgICBSRUxFQVNFX0xPRyhQZXJmb3Jt
YW5jZUxvZ2dpbmcsICIlcCAtIFdlYlByb2Nlc3NQcm94eTo6ZGlkRXhjZWVkQmFja2dyb3VuZENQ
VUxpbWl0KCkgV2ViUHJvY2VzcyBoYXMgZXhjZWVkZWQgdGhlIGJhY2tncm91bmQgQ1BVIGxpbWl0
IGJ1dCB3ZSBhcmUgbm90IHRlcm1pbmF0aW5nIGl0IGJlY2F1c2UgaXQgaXMgY2FwdHVyaW5nIGF1
ZGlvIC8gdmlkZW8iLCB0aGlzKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HKFBlcmZvcm1hbmNl
TG9nZ2luZywgIiVwIC0gV2ViUHJvY2Vzc1Byb3h5OjpkaWRFeGNlZWRDUFVMaW1pdCgpIFdlYlBy
b2Nlc3MgaGFzIGV4Y2VlZGVkIHRoZSBiYWNrZ3JvdW5kIENQVSBsaW1pdCBidXQgd2UgYXJlIG5v
dCB0ZXJtaW5hdGluZyBpdCBiZWNhdXNlIGl0IGlzIGNhcHR1cmluZyBhdWRpbyAvIHZpZGVvIiwg
dGhpcyk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBSRUxF
QVNFX0xPR19FUlJPUihQZXJmb3JtYW5jZUxvZ2dpbmcsICIlcCAtIFdlYlByb2Nlc3NQcm94eTo6
ZGlkRXhjZWVkQmFja2dyb3VuZENQVUxpbWl0KCkgVGVybWluYXRpbmcgYmFja2dyb3VuZCBXZWJQ
cm9jZXNzIHRoYXQgaGFzIGV4Y2VlZGVkIHRoZSBiYWNrZ3JvdW5kIENQVSBsaW1pdCIsIHRoaXMp
OworICAgIGJvb2wgaGFzVmlzaWJsZVBhZ2UgPSBmYWxzZTsKKyAgICBmb3IgKGF1dG8mIHBhZ2Ug
OiBwYWdlcygpKSB7CisgICAgICAgIGlmIChwYWdlLT5pc1ZpZXdWaXNpYmxlKCkpIHsKKyAgICAg
ICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgY2FsbCBhIGRlbGVnYXRlIHRvIG5vdGlmeSB0aGUg
Y2xpZW50IHdlIGV4Y2VlZGVkIHRoZSBiYWNrZ3JvdW5kIENQVSBsaW1pdCB3aGlsZSBpbiB0aGUg
Zm9yZWdyb3VuZCAoaS5lLiB3ZSB3b3VsZCBoYXZlIHRlcm1pbmF0ZWQgdGhlIHByb2Nlc3MgaWYg
aXQgd2VyZW4ndCB2aXNpYmxlKS4KKyAgICAgICAgICAgIGhhc1Zpc2libGVQYWdlID0gdHJ1ZTsK
KyAgICAgICAgfQorICAgIH0KKworICAgIC8vIFdlIG9ubHkgbm90aWZ5IHRoZSBjbGllbnQgdGhh
dCB0aGUgcHJvY2VzcyBleGNlZWRlZCB0aGUgQ1BVIGxpbWl0IHdoZW4gaXQgaXMgdmlzaWJsZSwg
d2UgZG8gbm90IHRlcm1pbmF0ZSBpdC4KKyAgICBpZiAoaGFzVmlzaWJsZVBhZ2UpCisgICAgICAg
IHJldHVybjsKKworICAgIFJFTEVBU0VfTE9HX0VSUk9SKFBlcmZvcm1hbmNlTG9nZ2luZywgIiVw
IC0gV2ViUHJvY2Vzc1Byb3h5OjpkaWRFeGNlZWRDUFVMaW1pdCgpIFRlcm1pbmF0aW5nIGJhY2tn
cm91bmQgV2ViUHJvY2VzcyB0aGF0IGhhcyBleGNlZWRlZCB0aGUgYmFja2dyb3VuZCBDUFUgbGlt
aXQiLCB0aGlzKTsKICAgICBsb2dEaWFnbm9zdGljTWVzc2FnZUZvclJlc291cmNlTGltaXRUZXJt
aW5hdGlvbihEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmV4Y2VlZGVkQmFja2dyb3VuZENQVUxpbWl0
S2V5KCkpOwogICAgIHJlcXVlc3RUZXJtaW5hdGlvbihQcm9jZXNzVGVybWluYXRpb25SZWFzb246
OkV4Y2VlZGVkQ1BVTGltaXQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5oCmluZGV4IDQxNTgyYTc5YmUzLi42Y2NmMzY1MGM3YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtMTc3LDcgKzE3Nyw3IEBAIHB1Ymxp
YzoKIAogICAgIHZvaWQgcHJvY2Vzc1Rlcm1pbmF0ZWQoKTsKIAotICAgIHZvaWQgZGlkRXhjZWVk
QmFja2dyb3VuZENQVUxpbWl0KCk7CisgICAgdm9pZCBkaWRFeGNlZWRDUFVMaW1pdCgpOwogICAg
IHZvaWQgZGlkRXhjZWVkQWN0aXZlTWVtb3J5TGltaXQoKTsKICAgICB2b2lkIGRpZEV4Y2VlZElu
YWN0aXZlTWVtb3J5TGltaXQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KaW5kZXggM2QwZGJmMDYwMTMuLmI3NDk1MDgx
MTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkubWVzc2FnZXMuaW4KQEAgLTQ3LDcgKzQ3LDcgQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2Vzc1By
b3h5IExlZ2FjeVJlY2VpdmVyIHsKIAogICAgIERpZEV4Y2VlZEFjdGl2ZU1lbW9yeUxpbWl0KCkK
ICAgICBEaWRFeGNlZWRJbmFjdGl2ZU1lbW9yeUxpbWl0KCkKLSAgICBEaWRFeGNlZWRCYWNrZ3Jv
dW5kQ1BVTGltaXQoKQorICAgIERpZEV4Y2VlZENQVUxpbWl0KCkKIAogICAgIFJldGFpbkljb25G
b3JQYWdlVVJMKFN0cmluZyBwYWdlVVJMKQogICAgIFJlbGVhc2VJY29uRm9yUGFnZVVSTChTdHJp
bmcgcGFnZVVSTCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcAppbmRleCA3MzUyOGQ3YjgwNC4uNjQwZWE0Y2Q1MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTM2MCw3ICszNjAsNyBAQCBXZWJQ
YWdlOjpXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYm
IHBhcmFtZXRlcnMpCiAgICAgLCBtX3VzZXJBY3Rpdml0eUh5c3RlcmVzaXMoW3RoaXNdKEh5c3Rl
cmVzaXNTdGF0ZSkgeyB1cGRhdGVVc2VyQWN0aXZpdHkoKTsgfSkKICAgICAsIG1fdXNlckludGVy
ZmFjZUxheW91dERpcmVjdGlvbihwYXJhbWV0ZXJzLnVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rp
b24pCiAgICAgLCBtX292ZXJyaWRlQ29udGVudFNlY3VyaXR5UG9saWN5IHsgcGFyYW1ldGVycy5v
dmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeSB9Ci0gICAgLCBtX2JhY2tncm91bmRDUFVMaW1p
dChwYXJhbWV0ZXJzLmJhY2tncm91bmRDUFVMaW1pdCkKKyAgICAsIG1fY3B1TGltaXQocGFyYW1l
dGVycy5jcHVMaW1pdCkKIHsKICAgICBBU1NFUlQobV9wYWdlSUQpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBmOWU0MjRmMmM1Mi4uNGY3Yzk3
NTU1YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApA
QCAtOTY3LDcgKzk2Nyw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgV2ViVVJMU2NoZW1lSGFu
ZGxlclByb3h5KiB1cmxTY2hlbWVIYW5kbGVyRm9yU2NoZW1lKGNvbnN0IFN0cmluZyYpOwotICAg
IHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBiYWNrZ3JvdW5kQ1BVTGltaXQoKSBjb25zdCB7IHJldHVy
biBtX2JhY2tncm91bmRDUFVMaW1pdDsgfQorICAgIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBjcHVM
aW1pdCgpIGNvbnN0IHsgcmV0dXJuIG1fY3B1TGltaXQ7IH0KIAogICAgIHN0YXRpYyBQbHVnaW5W
aWV3KiBwbHVnaW5WaWV3Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWUqKTsKIApAQCAtMTU1NSw3ICsx
NTU1LDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0
aW9uIG1fdXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbiB7IFdlYkNvcmU6OlVzZXJJbnRlcmZh
Y2VMYXlvdXREaXJlY3Rpb246OkxUUiB9OwogCiAgICAgY29uc3QgU3RyaW5nIG1fb3ZlcnJpZGVD
b250ZW50U2VjdXJpdHlQb2xpY3k7Ci0gICAgY29uc3Qgc3RkOjpvcHRpb25hbDxkb3VibGU+IG1f
YmFja2dyb3VuZENQVUxpbWl0OworICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBtX2Nw
dUxpbWl0OwogCiAgICAgSGFzaE1hcDxTdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxXZWJVUkxTY2hl
bWVIYW5kbGVyUHJveHk+PiBtX3NjaGVtZVRvVVJMU2NoZW1lSGFuZGxlclByb3h5TWFwOwogICAg
IEhhc2hNYXA8dWludDY0X3QsIFdlYlVSTFNjaGVtZUhhbmRsZXJQcm94eSo+IG1faWRlbnRpZmll
clRvVVJMU2NoZW1lSGFuZGxlclByb3h5TWFwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5jcHAKaW5kZXggZTg3Y2JlYzU0YTMuLmYwZjE2YmY3Y2JiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTU5Niw3ICs1OTYsNyBAQCB2b2lkIFdl
YlByb2Nlc3M6OmNyZWF0ZVdlYlBhZ2UodWludDY0X3QgcGFnZUlELCBXZWJQYWdlQ3JlYXRpb25Q
YXJhbWV0ZXJzJiYgcGFyYQogCiAgICAgICAgIC8vIEJhbGFuY2VkIGJ5IGFuIGVuYWJsZVRlcm1p
bmF0aW9uIGluIHJlbW92ZVdlYlBhZ2UuCiAgICAgICAgIGRpc2FibGVUZXJtaW5hdGlvbigpOwot
ICAgICAgICB1cGRhdGVCYWNrZ3JvdW5kQ1BVTGltaXQoKTsKKyAgICAgICAgdXBkYXRlQ1BVTGlt
aXQoKTsKICAgICB9IGVsc2UKICAgICAgICAgcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS0+cmVpbml0
aWFsaXplV2ViUGFnZShXVEZNb3ZlKHBhcmFtZXRlcnMpKTsKIApAQCAtNjExLDcgKzYxMSw3IEBA
IHZvaWQgV2ViUHJvY2Vzczo6cmVtb3ZlV2ViUGFnZSh1aW50NjRfdCBwYWdlSUQpCiAgICAgbV9w
YWdlTWFwLnJlbW92ZShwYWdlSUQpOwogCiAgICAgZW5hYmxlVGVybWluYXRpb24oKTsKLSAgICB1
cGRhdGVCYWNrZ3JvdW5kQ1BVTGltaXQoKTsKKyAgICB1cGRhdGVDUFVMaW1pdCgpOwogfQogCiBi
b29sIFdlYlByb2Nlc3M6OnNob3VsZFRlcm1pbmF0ZSgpCkBAIC0xMjg3LDExICsxMjg3LDExIEBA
IHZvaWQgV2ViUHJvY2Vzczo6dXBkYXRlQWN0aXZlUGFnZXMoKQogewogfQogCi12b2lkIFdlYlBy
b2Nlc3M6OnVwZGF0ZUJhY2tncm91bmRDUFVMaW1pdCgpCit2b2lkIFdlYlByb2Nlc3M6OnVwZGF0
ZUNQVUxpbWl0KCkKIHsKIH0KIAotdm9pZCBXZWJQcm9jZXNzOjp1cGRhdGVCYWNrZ3JvdW5kQ1BV
TW9uaXRvclN0YXRlKCkKK3ZvaWQgV2ViUHJvY2Vzczo6dXBkYXRlQ1BVTW9uaXRvclN0YXRlKENQ
VU1vbml0b3JVcGRhdGVSZWFzb24pCiB7CiB9CiAKQEAgLTEzMDAsNyArMTMwMCw3IEBAIHZvaWQg
V2ViUHJvY2Vzczo6dXBkYXRlQmFja2dyb3VuZENQVU1vbml0b3JTdGF0ZSgpCiB2b2lkIFdlYlBy
b2Nlc3M6OnBhZ2VBY3Rpdml0eVN0YXRlRGlkQ2hhbmdlKHVpbnQ2NF90LCBXZWJDb3JlOjpBY3Rp
dml0eVN0YXRlOjpGbGFncyBjaGFuZ2VkKQogewogICAgIGlmIChjaGFuZ2VkICYgV2ViQ29yZTo6
QWN0aXZpdHlTdGF0ZTo6SXNWaXNpYmxlKQotICAgICAgICB1cGRhdGVCYWNrZ3JvdW5kQ1BVTW9u
aXRvclN0YXRlKCk7CisgICAgICAgIHVwZGF0ZUNQVU1vbml0b3JTdGF0ZShDUFVNb25pdG9yVXBk
YXRlUmVhc29uOjpWaXNpYmlsaXR5SGFzQ2hhbmdlZCk7CiB9CiAKICNpZiBQTEFURk9STShJT1Mp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IGI4MjhiNzU0NWJiLi41
OWMyMDZiNmFlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTMx
Nyw4ICszMTcsOSBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZUZv
ck5ldHdvcmtQcm9jZXNzQ3Jhc2goKTsKICAgICBib29sIGhhc1Zpc2libGVXZWJQYWdlKCkgY29u
c3Q7Ci0gICAgdm9pZCB1cGRhdGVCYWNrZ3JvdW5kQ1BVTGltaXQoKTsKLSAgICB2b2lkIHVwZGF0
ZUJhY2tncm91bmRDUFVNb25pdG9yU3RhdGUoKTsKKyAgICB2b2lkIHVwZGF0ZUNQVUxpbWl0KCk7
CisgICAgZW51bSBjbGFzcyBDUFVNb25pdG9yVXBkYXRlUmVhc29uIHsgTGltaXRIYXNDaGFuZ2Vk
LCBWaXNpYmlsaXR5SGFzQ2hhbmdlZCB9OworICAgIHZvaWQgdXBkYXRlQ1BVTW9uaXRvclN0YXRl
KENQVU1vbml0b3JVcGRhdGVSZWFzb24pOwogCiAgICAgLy8gQ2hpbGRQcm9jZXNzCiAgICAgdm9p
ZCBpbml0aWFsaXplUHJvY2Vzcyhjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFt
ZXRlcnMmKSBvdmVycmlkZTsKQEAgLTQyMCw4ICs0MjEsOCBAQCBwcml2YXRlOgogICAgIHVuc2ln
bmVkIG1fcGFnZXNNYXJraW5nTGF5ZXJzQXNWb2xhdGlsZSB7IDAgfTsKICAgICBib29sIG1fc3Vw
cHJlc3NNZW1vcnlQcmVzc3VyZUhhbmRsZXIgeyBmYWxzZSB9OwogI2lmIFBMQVRGT1JNKE1BQykK
LSAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Q1BVTW9uaXRvcj4gbV9iYWNrZ3JvdW5kQ1BV
TW9uaXRvcjsKLSAgICBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gbV9iYWNrZ3JvdW5kQ1BVTGltaXQ7
CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkNQVU1vbml0b3I+IG1fY3B1TW9uaXRvcjsK
KyAgICBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gbV9jcHVMaW1pdDsKICNlbmRpZgogCiAgICAgSGFz
aE1hcDxXZWJDb3JlOjpVc2VyR2VzdHVyZVRva2VuICosIHVpbnQ2NF90PiBtX3VzZXJHZXN0dXJl
VG9rZW5zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQ
cm9jZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nl
c3NDb2NvYS5tbQppbmRleCBlMjRlOGM1YjhhMi4uNjNkNWMxMjE1ZGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCkBAIC05Miw3
ICs5Miw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogbmFtZXNwYWNlIFdlYktpdCB7CiAK
ICNpZiBQTEFURk9STShNQUMpCi1zdGF0aWMgY29uc3QgU2Vjb25kcyBiYWNrZ3JvdW5kQ1BVTW9u
aXRvcmluZ0ludGVydmFsIHsgOF9taW4gfTsKK3N0YXRpYyBjb25zdCBTZWNvbmRzIGNwdU1vbml0
b3JpbmdJbnRlcnZhbCB7IDhfbWluIH07CiAjZW5kaWYKIAogdm9pZCBXZWJQcm9jZXNzOjpwbGF0
Zm9ybVNldENhY2hlTW9kZWwoQ2FjaGVNb2RlbCkKQEAgLTM5Niw0NiArMzk2LDUyIEBAIHZvaWQg
V2ViUHJvY2Vzczo6dXBkYXRlQWN0aXZlUGFnZXMoKQogI2VuZGlmCiB9CiAKLXZvaWQgV2ViUHJv
Y2Vzczo6dXBkYXRlQmFja2dyb3VuZENQVUxpbWl0KCkKK3ZvaWQgV2ViUHJvY2Vzczo6dXBkYXRl
Q1BVTGltaXQoKQogewogI2lmIFBMQVRGT1JNKE1BQykKLSAgICBzdGQ6Om9wdGlvbmFsPGRvdWJs
ZT4gYmFja2dyb3VuZENQVUxpbWl0OworICAgIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBjcHVMaW1p
dDsKIAogICAgIC8vIFVzZSB0aGUgbGFyZ2VzdCBsaW1pdCBhbW9uZyBhbGwgcGFnZXMgaW4gdGhp
cyBwcm9jZXNzLgogICAgIGZvciAoYXV0byYgcGFnZSA6IG1fcGFnZU1hcC52YWx1ZXMoKSkgewot
ICAgICAgICBhdXRvIHBhZ2VDUFVMaW1pdCA9IHBhZ2UtPmJhY2tncm91bmRDUFVMaW1pdCgpOwor
ICAgICAgICBhdXRvIHBhZ2VDUFVMaW1pdCA9IHBhZ2UtPmNwdUxpbWl0KCk7CiAgICAgICAgIGlm
ICghcGFnZUNQVUxpbWl0KSB7Ci0gICAgICAgICAgICBiYWNrZ3JvdW5kQ1BVTGltaXQgPSBzdGQ6
Om51bGxvcHQ7CisgICAgICAgICAgICBjcHVMaW1pdCA9IHN0ZDo6bnVsbG9wdDsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAgICAgIGlmICghYmFja2dyb3VuZENQVUxpbWl0IHx8
IHBhZ2VDUFVMaW1pdCA+IGJhY2tncm91bmRDUFVMaW1pdC52YWx1ZSgpKQotICAgICAgICAgICAg
YmFja2dyb3VuZENQVUxpbWl0ID0gcGFnZUNQVUxpbWl0OworICAgICAgICBpZiAoIWNwdUxpbWl0
IHx8IHBhZ2VDUFVMaW1pdCA+IGNwdUxpbWl0LnZhbHVlKCkpCisgICAgICAgICAgICBjcHVMaW1p
dCA9IHBhZ2VDUFVMaW1pdDsKICAgICB9CiAKLSAgICBpZiAobV9iYWNrZ3JvdW5kQ1BVTGltaXQg
PT0gYmFja2dyb3VuZENQVUxpbWl0KQorICAgIGlmIChtX2NwdUxpbWl0ID09IGNwdUxpbWl0KQog
ICAgICAgICByZXR1cm47CiAKLSAgICBtX2JhY2tncm91bmRDUFVMaW1pdCA9IGJhY2tncm91bmRD
UFVMaW1pdDsKLSAgICB1cGRhdGVCYWNrZ3JvdW5kQ1BVTW9uaXRvclN0YXRlKCk7CisgICAgbV9j
cHVMaW1pdCA9IGNwdUxpbWl0OworICAgIHVwZGF0ZUNQVU1vbml0b3JTdGF0ZShDUFVNb25pdG9y
VXBkYXRlUmVhc29uOjpMaW1pdEhhc0NoYW5nZWQpOwogI2VuZGlmCiB9CiAKLXZvaWQgV2ViUHJv
Y2Vzczo6dXBkYXRlQmFja2dyb3VuZENQVU1vbml0b3JTdGF0ZSgpCit2b2lkIFdlYlByb2Nlc3M6
OnVwZGF0ZUNQVU1vbml0b3JTdGF0ZShDUFVNb25pdG9yVXBkYXRlUmVhc29uIHJlYXNvbikKIHsK
ICNpZiBQTEFURk9STShNQUMpCi0gICAgaWYgKCFtX2JhY2tncm91bmRDUFVMaW1pdCB8fCBoYXNW
aXNpYmxlV2ViUGFnZSgpKSB7Ci0gICAgICAgIGlmIChtX2JhY2tncm91bmRDUFVNb25pdG9yKQot
ICAgICAgICAgICAgbV9iYWNrZ3JvdW5kQ1BVTW9uaXRvci0+c2V0Q1BVTGltaXQoc3RkOjpudWxs
b3B0KTsKKyAgICBpZiAoIW1fY3B1TGltaXQpIHsKKyAgICAgICAgaWYgKG1fY3B1TW9uaXRvcikK
KyAgICAgICAgICAgIG1fY3B1TW9uaXRvci0+c2V0Q1BVTGltaXQoc3RkOjpudWxsb3B0KTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmICghbV9iYWNrZ3JvdW5kQ1BVTW9uaXRvcikg
ewotICAgICAgICBtX2JhY2tncm91bmRDUFVNb25pdG9yID0gc3RkOjptYWtlX3VuaXF1ZTxDUFVN
b25pdG9yPihiYWNrZ3JvdW5kQ1BVTW9uaXRvcmluZ0ludGVydmFsLCBbdGhpc10oZG91YmxlIGNw
dVVzYWdlKSB7Ci0gICAgICAgICAgICBSRUxFQVNFX0xPRyhQZXJmb3JtYW5jZUxvZ2dpbmcsICIl
cCAtIFdlYlByb2Nlc3MgZXhjZWVkZWQgYmFja2dyb3VuZCBDUFUgbGltaXQgb2YgJS4xZiUlICh3
YXMgdXNpbmcgJS4xZiUlKSIsIHRoaXMsIG1fYmFja2dyb3VuZENQVUxpbWl0LnZhbHVlKCkgKiAx
MDAsIGNwdVVzYWdlICogMTAwKTsKLSAgICAgICAgICAgIHBhcmVudFByb2Nlc3NDb25uZWN0aW9u
KCktPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6RGlkRXhjZWVkQmFja2dyb3VuZENQ
VUxpbWl0KCksIDApOworICAgIGlmICghbV9jcHVNb25pdG9yKSB7CisgICAgICAgIG1fY3B1TW9u
aXRvciA9IHN0ZDo6bWFrZV91bmlxdWU8Q1BVTW9uaXRvcj4oY3B1TW9uaXRvcmluZ0ludGVydmFs
LCBbdGhpc10oZG91YmxlIGNwdVVzYWdlKSB7CisgICAgICAgICAgICBSRUxFQVNFX0xPRyhQZXJm
b3JtYW5jZUxvZ2dpbmcsICIlcCAtIFdlYlByb2Nlc3MgZXhjZWVkZWQgQ1BVIGxpbWl0IG9mICUu
MWYlJSAod2FzIHVzaW5nICUuMWYlJSkgaGFzVmlzaWJsZVBhZ2VzPyAlZCIsIHRoaXMsIG1fY3B1
TGltaXQudmFsdWUoKSAqIDEwMCwgY3B1VXNhZ2UgKiAxMDAsIGhhc1Zpc2libGVXZWJQYWdlKCkp
OworICAgICAgICAgICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6
V2ViUHJvY2Vzc1Byb3h5OjpEaWRFeGNlZWRDUFVMaW1pdCgpLCAwKTsKICAgICAgICAgfSk7Cisg
ICAgfSBlbHNlIGlmIChyZWFzb24gPT0gQ1BVTW9uaXRvclVwZGF0ZVJlYXNvbjo6VmlzaWJpbGl0
eUhhc0NoYW5nZWQpIHsKKyAgICAgICAgLy8gSWYgdGhlIHZpc2liaWxpdHkgaGFzIGNoYW5nZWQs
IHN0b3AgdGhlIENQVSBtb25pdG9yIGJlZm9yZSBzZXR0aW5nIGl0cyBsaW1pdC4gVGhpcyBpcyBu
ZWVkZWQgYmVjYXVzZSB0aGUgQ1BVIHVzYWdlIGNhbiB2YXJ5IHdpbGRseSBiYXNlZCBvbiB2aXNp
YmlsaXR5IGFuZCB3ZSB3b3VsZAorICAgICAgICAvLyBub3Qgd2FudCB0byByZXBvcnQgdGhhdCBh
IHByb2Nlc3MgaGFzIGV4Y2VlZGVkIGl0cyBiYWNrZ3JvdW5kIENQVSBsaW1pdCBldmVuIHRob3Vn
aCBtb3N0IG9mIHRoZSBDUFUgdGltZSB3YXMgdXNlZCB3aGlsZSB0aGUgcHJvY2VzcyB3YXMgdmlz
aWJsZS4KKyAgICAgICAgbV9jcHVNb25pdG9yLT5zdG9wKCk7CiAgICAgfQotICAgIG1fYmFja2dy
b3VuZENQVU1vbml0b3ItPnNldENQVUxpbWl0KG1fYmFja2dyb3VuZENQVUxpbWl0LnZhbHVlKCkp
OworICAgIG1fY3B1TW9uaXRvci0+c2V0Q1BVTGltaXQobV9jcHVMaW1pdC52YWx1ZSgpKTsKKyNl
bHNlCisgICAgVU5VU0VEX1BBUkFNKHJlYXNvbik7CiAjZW5kaWYKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310687</attachid>
            <date>2017-05-19 12:55:05 -0700</date>
            <delta_ts>2017-05-19 15:11:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172246-20170519125518.patch</filename>
            <type>text/plain</type>
            <size>24967</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE3MTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNmYwYmI5MTU0ZTE4NjMw
M2RiNTBkNGYxMWVlNzY1YTYyNzk4YWMxZC4uMzZiYTQ4ZjQ1MmNhN2IwMDk5ZTJjMzhlN2I3ZGRj
MzllMjMwNTYwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDE3LTA1LTE5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gTm90aWZ5IGNsaWVu
dCB3aGVuIGEgcHJvY2VzcyBleGNlZWRzIGJhY2tncm91bmQgQ1BVIGxpbWl0IHdoaWxlIGluIHRo
ZSBmb3JlZ3JvdW5kCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNzIyNDYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMyMjM1NDExPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gdGhlcmUgaXMgYSBi
YWNrZ3JvdW5kIENQVSBsaW1pdCBzZXQgYnkgdGhlIGNsaWVudCwgd2Ugbm93IG1vbml0b3IgdGhl
IENQVQorICAgICAgICB1c2FnZXMgb2YgYWxsIFdlYkNvbnRlbnQgcHJvY2Vzc2VzLCBub3QganVz
dCB0aGUgbm9uLXZpc2libGUgb25lcy4gVGhpcyB3YXksIHdlCisgICAgICAgIGFyZSBub3cgYWJs
ZSB0byBub3RpZnkgdGhlIGNsaWVudCBhIHByb2Nlc3MgaGFzIGV4Y2VlZGVkIHRoZSBiYWNrZ3Jv
dW5kIENQVQorICAgICAgICBsaW1pdCB3aGlsZSBpbiB0aGUgZm9yZWdyb3VuZCwgdmlhIHRoZSBV
SUNsaWVudCdzIGRpZEV4Y2VlZEJhY2tncm91bmRSZXNvdXJjZUxpbWl0V2hpbGVJbkZvcmVncm91
bmQKKyAgICAgICAgZnVuY3Rpb24sIHBhc3Npbmcga1dLUmVzb3VyY2VMaW1pdENQVS4KKworICAg
ICAgICAqIFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQv
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJ
UGFnZUNvbmZpZ3VyYXRpb24uY3BwOgorICAgICAgICAoQVBJOjpQYWdlQ29uZmlndXJhdGlvbjo6
Y29weSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5oOgor
ICAgICAgICAoQVBJOjpQYWdlQ29uZmlndXJhdGlvbjo6Y3B1TGltaXQpOgorICAgICAgICAoQVBJ
OjpQYWdlQ29uZmlndXJhdGlvbjo6c2V0Q1BVTGltaXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQy9XS1BhZ2VDb25maWd1cmF0aW9uUmVmLmNwcDoKKyAgICAgICAgKFdLUGFnZUNvbmZpZ3Vy
YXRpb25TZXRCYWNrZ3JvdW5kQ1BVTGltaXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnVwZGF0ZVRocm90dGxl
U3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNyZWF0aW9uUGFyYW1ldGVy
cyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkRXhjZWVkSW5hY3RpdmVNZW1v
cnlMaW1pdFdoaWxlQWN0aXZlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRF
eGNlZWRCYWNrZ3JvdW5kQ1BVTGltaXRXaGlsZUluRm9yZWdyb3VuZCk6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmRpZEV4Y2VlZENQVUxp
bWl0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1fY3B1TGltaXQpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OmNwdUxpbWl0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpjcmVhdGVXZWJQYWdlKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzczo6cmVtb3ZlV2ViUGFnZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3M6OnVwZGF0ZUNQVUxpbWl0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6
dXBkYXRlQ1BVTW9uaXRvclN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGFn
ZUFjdGl2aXR5U3RhdGVEaWRDaGFuZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjp1cGRhdGVDUFVMaW1pdCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3M6OnVwZGF0ZUNQVU1vbml0b3JTdGF0ZSk6CisKIDIwMTctMDUtMTkgIENh
cmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJFR1JF
U1NJT04ocjIxNjk3Nyk6IFtHVEtdIEVwaGVtZXJhbCBzZXNzaW9ucyBicm9rZW4gYWZ0ZXIgcjIx
Njk3NwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBh
cmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFt
ZXRlcnMuY3BwCmluZGV4IDEwNGQ3Y2JlYzliNzc2YjcwMjgwNGJkM2M2Mzg4ZDBjZGZhOTVlZDAu
LmRkMTg0YzEyOWQwMWVlZDgwMDM5ZjQwOGJiMDRjZWFkYWIwMzllZTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTk0
LDcgKzk0LDcgQEAgdm9pZCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIuZW5jb2RlRW51bSh1c2VySW50ZXJm
YWNlTGF5b3V0RGlyZWN0aW9uKTsKICAgICBlbmNvZGVyLmVuY29kZUVudW0ob2JzZXJ2ZWRMYXlv
dXRNaWxlc3RvbmVzKTsKICAgICBlbmNvZGVyIDw8IG92ZXJyaWRlQ29udGVudFNlY3VyaXR5UG9s
aWN5OwotICAgIGVuY29kZXIgPDwgYmFja2dyb3VuZENQVUxpbWl0OworICAgIGVuY29kZXIgPDwg
Y3B1TGltaXQ7CiAgICAgZW5jb2RlciA8PCB1cmxTY2hlbWVIYW5kbGVyczsKICNpZiBFTkFCTEUo
V0VCX1JUQykKICAgICBlbmNvZGVyIDw8IGljZUNhbmRpZGF0ZUZpbHRlcmluZ0VuYWJsZWQ7CkBA
IC0yMzQsNyArMjM0LDcgQEAgYm9vbCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUo
SVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBXZWJQYWdlQ3JlYXRpb25QYXIKICAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHBhcmFtZXRlcnMub3ZlcnJpZGVDb250ZW50U2VjdXJpdHlQb2xpY3kpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMu
YmFja2dyb3VuZENQVUxpbWl0KSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMu
Y3B1TGltaXQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHBhcmFtZXRlcnMudXJsU2NoZW1lSGFuZGxlcnMpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggMjdjZjBiNGQwODkxYjUy
ZjlmNDg4MDQyOGQyYTM2NDRjODJkODQ4ZC4uYmFkNGQ1ZTdkOGNkYzFlYTkzZjczNGU5MWE4NDgy
MDU5ZDMzYWYxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVycy5oCkBAIC0xNDgsNyArMTQ4LDcgQEAgc3RydWN0IFdlYlBhZ2VDcmVhdGlv
blBhcmFtZXRlcnMgewogICAgIFdlYkNvcmU6OkxheW91dE1pbGVzdG9uZXMgb2JzZXJ2ZWRMYXlv
dXRNaWxlc3RvbmVzOwogCiAgICAgU3RyaW5nIG92ZXJyaWRlQ29udGVudFNlY3VyaXR5UG9saWN5
OwotICAgIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBiYWNrZ3JvdW5kQ1BVTGltaXQ7CisgICAgc3Rk
OjpvcHRpb25hbDxkb3VibGU+IGNwdUxpbWl0OwogCiAgICAgSGFzaE1hcDxTdHJpbmcsIHVpbnQ2
NF90PiB1cmxTY2hlbWVIYW5kbGVyczsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmNwcAppbmRleCAwOWE3NDNmMjAxM2Q2ZmYy
YzAzODg4YjJkZWZhOTk2NjFhMjEyNjI0Li5hMGFjZTllMDc4MmVkMmEwMjNiODQ4ZGQyNTExY2Uz
Y2I2MTI0ZGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVBh
Z2VDb25maWd1cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQ
SVBhZ2VDb25maWd1cmF0aW9uLmNwcApAQCAtNjgsNyArNjgsNyBAQCBSZWY8UGFnZUNvbmZpZ3Vy
YXRpb24+IFBhZ2VDb25maWd1cmF0aW9uOjpjb3B5KCkgY29uc3QKICAgICBjb3B5LT5tX2Fsd2F5
c1J1bnNBdEZvcmVncm91bmRQcmlvcml0eSA9IHRoaXMtPm1fYWx3YXlzUnVuc0F0Rm9yZWdyb3Vu
ZFByaW9yaXR5OwogI2VuZGlmCiAgICAgY29weS0+bV9pbml0aWFsQ2FwaXRhbGl6YXRpb25FbmFi
bGVkID0gdGhpcy0+bV9pbml0aWFsQ2FwaXRhbGl6YXRpb25FbmFibGVkOwotICAgIGNvcHktPm1f
YmFja2dyb3VuZENQVUxpbWl0ID0gdGhpcy0+bV9iYWNrZ3JvdW5kQ1BVTGltaXQ7CisgICAgY29w
eS0+bV9jcHVMaW1pdCA9IHRoaXMtPm1fY3B1TGltaXQ7CiAgICAgY29weS0+bV9jb250cm9sbGVk
QnlBdXRvbWF0aW9uID0gdGhpcy0+bV9jb250cm9sbGVkQnlBdXRvbWF0aW9uOwogICAgIGNvcHkt
Pm1fb3ZlcnJpZGVDb250ZW50U2VjdXJpdHlQb2xpY3kgPSB0aGlzLT5tX292ZXJyaWRlQ29udGVu
dFNlY3VyaXR5UG9saWN5OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0FQSVBhZ2VDb25maWd1cmF0aW9uLmgKaW5kZXggNWQ0NjczN2VhMzE1NjYzNTMwMWY4ZTIwMzEw
Mjc2ZTIxMDZkNzIyNy4uYjJhZTI0NzJkZTNmODEzMGM0NDk5YTBjM2JhMGMzZmJhZDZmOGFhMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJh
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3Vy
YXRpb24uaApAQCAtOTQsOCArOTQsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpbml0aWFsQ2FwaXRh
bGl6YXRpb25FbmFibGVkKCkgeyByZXR1cm4gbV9pbml0aWFsQ2FwaXRhbGl6YXRpb25FbmFibGVk
OyB9CiAgICAgdm9pZCBzZXRJbml0aWFsQ2FwaXRhbGl6YXRpb25FbmFibGVkKGJvb2wgaW5pdGlh
bENhcGl0YWxpemF0aW9uRW5hYmxlZCkgeyBtX2luaXRpYWxDYXBpdGFsaXphdGlvbkVuYWJsZWQg
PSBpbml0aWFsQ2FwaXRhbGl6YXRpb25FbmFibGVkOyB9CiAKLSAgICBzdGQ6Om9wdGlvbmFsPGRv
dWJsZT4gYmFja2dyb3VuZENQVUxpbWl0KCkgY29uc3QgeyByZXR1cm4gbV9iYWNrZ3JvdW5kQ1BV
TGltaXQ7IH0KLSAgICB2b2lkIHNldEJhY2tncm91bmRDUFVMaW1pdChkb3VibGUgY3B1TGltaXQp
IHsgbV9iYWNrZ3JvdW5kQ1BVTGltaXQgPSBjcHVMaW1pdDsgfQorICAgIHN0ZDo6b3B0aW9uYWw8
ZG91YmxlPiBjcHVMaW1pdCgpIGNvbnN0IHsgcmV0dXJuIG1fY3B1TGltaXQ7IH0KKyAgICB2b2lk
IHNldENQVUxpbWl0KGRvdWJsZSBjcHVMaW1pdCkgeyBtX2NwdUxpbWl0ID0gY3B1TGltaXQ7IH0K
IAogICAgIGJvb2wgd2FpdHNGb3JQYWludEFmdGVyVmlld0RpZE1vdmVUb1dpbmRvdygpIGNvbnN0
IHsgcmV0dXJuIG1fd2FpdHNGb3JQYWludEFmdGVyVmlld0RpZE1vdmVUb1dpbmRvdzsgfQogICAg
IHZvaWQgc2V0V2FpdHNGb3JQYWludEFmdGVyVmlld0RpZE1vdmVUb1dpbmRvdyhib29sIHNob3Vs
ZFN5bmNocm9uaXplKSB7IG1fd2FpdHNGb3JQYWludEFmdGVyVmlld0RpZE1vdmVUb1dpbmRvdyA9
IHNob3VsZFN5bmNocm9uaXplOyB9CkBAIC0xMjgsNyArMTI4LDcgQEAgcHJpdmF0ZToKICAgICBi
b29sIG1faW5pdGlhbENhcGl0YWxpemF0aW9uRW5hYmxlZCA9IHRydWU7CiAgICAgYm9vbCBtX3dh
aXRzRm9yUGFpbnRBZnRlclZpZXdEaWRNb3ZlVG9XaW5kb3cgPSB0cnVlOwogICAgIGJvb2wgbV9j
b250cm9sbGVkQnlBdXRvbWF0aW9uID0gZmFsc2U7Ci0gICAgc3RkOjpvcHRpb25hbDxkb3VibGU+
IG1fYmFja2dyb3VuZENQVUxpbWl0OworICAgIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBtX2NwdUxp
bWl0OwogCiAgICAgV1RGOjpTdHJpbmcgbV9vdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeTsK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlQ29u
ZmlndXJhdGlvblJlZi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdl
Q29uZmlndXJhdGlvblJlZi5jcHAKaW5kZXggZmI3NTc1NGJjMDZiNjNiODU4OTZmNjllMGJkMWMz
ZGQwZWE5YzFlYy4uYzc1NGE5ZjU2ZjZiY2ZhMDY3YjIwY2FlN2UwOThhYzBlMjI1MTE3YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUNvbmZpZ3VyYXRp
b25SZWYuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VDb25m
aWd1cmF0aW9uUmVmLmNwcApAQCAtMTExLDUgKzExMSw1IEBAIHZvaWQgV0tQYWdlQ29uZmlndXJh
dGlvblNldEluaXRpYWxDYXBpdGFsaXphdGlvbkVuYWJsZWQoV0tQYWdlQ29uZmlndXJhdGlvblJl
ZiBjCiAKIHZvaWQgV0tQYWdlQ29uZmlndXJhdGlvblNldEJhY2tncm91bmRDUFVMaW1pdChXS1Bh
Z2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24sIGRvdWJsZSBjcHVMaW1pdCkKIHsKLSAg
ICB0b0ltcGwoY29uZmlndXJhdGlvbiktPnNldEJhY2tncm91bmRDUFVMaW1pdChjcHVMaW1pdCk7
CisgICAgdG9JbXBsKGNvbmZpZ3VyYXRpb24pLT5zZXRDUFVMaW1pdChjcHVMaW1pdCk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGI0OWE4ODBjZGM0
ZmVmMGE2ZmZhMWQ4ZDJlMzAwNjQxY2NiY2JlOTQuLmQyZjU2ZWY4YmYzZGVlNGIyZWMyYmIzMDRh
NjYyZWFkY2M0ZTBhM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCkBAIC0xOTEsNyArMTkxLDcgQEAKICNkZWZpbmUgTUVTU0FHRV9DSEVDSyhhc3NlcnRpb24p
IE1FU1NBR0VfQ0hFQ0tfQkFTRShhc3NlcnRpb24sIG1fcHJvY2Vzcy0+Y29ubmVjdGlvbigpKQog
I2RlZmluZSBNRVNTQUdFX0NIRUNLX1VSTCh1cmwpIE1FU1NBR0VfQ0hFQ0tfQkFTRShtX3Byb2Nl
c3MtPmNoZWNrVVJMUmVjZWl2ZWRGcm9tV2ViUHJvY2Vzcyh1cmwpLCBtX3Byb2Nlc3MtPmNvbm5l
Y3Rpb24oKSkKIAotI2RlZmluZSBSRUxFQVNFX0xPR19JRl9BTExPV0VEKC4uLikgUkVMRUFTRV9M
T0dfSUYoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIFByb2Nlc3NTdXNwZW5zaW9uLCBfX1ZB
X0FSR1NfXykKKyNkZWZpbmUgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChjaGFubmVsLCAuLi4pIFJF
TEVBU0VfTE9HX0lGKGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBjaGFubmVsLCBfX1ZBX0FS
R1NfXykKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTM1NSw3ICszNTUsNyBAQCBX
ZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eShQYWdlQ2xpZW50JiBwYWdlQ2xpZW50LCBXZWJQcm9j
ZXNzUHJveHkmIHByb2Nlc3MsIHVpbgogICAgICwgbV9hbHdheXNSdW5zQXRGb3JlZ3JvdW5kUHJp
b3JpdHkobV9jb25maWd1cmF0aW9uLT5hbHdheXNSdW5zQXRGb3JlZ3JvdW5kUHJpb3JpdHkoKSkK
ICNlbmRpZgogICAgICwgbV9pbml0aWFsQ2FwaXRhbGl6YXRpb25FbmFibGVkKG1fY29uZmlndXJh
dGlvbi0+aW5pdGlhbENhcGl0YWxpemF0aW9uRW5hYmxlZCgpKQotICAgICwgbV9iYWNrZ3JvdW5k
Q1BVTGltaXQobV9jb25maWd1cmF0aW9uLT5iYWNrZ3JvdW5kQ1BVTGltaXQoKSkKKyAgICAsIG1f
Y3B1TGltaXQobV9jb25maWd1cmF0aW9uLT5jcHVMaW1pdCgpKQogICAgICwgbV9iYWNrRm9yd2Fy
ZExpc3QoV2ViQmFja0ZvcndhcmRMaXN0OjpjcmVhdGUoKnRoaXMpKQogICAgICwgbV9tYWludGFp
bnNJbmFjdGl2ZVNlbGVjdGlvbihmYWxzZSkKICAgICAsIG1fd2FpdHNGb3JQYWludEFmdGVyVmll
d0RpZE1vdmVUb1dpbmRvdyhtX2NvbmZpZ3VyYXRpb24tPndhaXRzRm9yUGFpbnRBZnRlclZpZXdE
aWRNb3ZlVG9XaW5kb3coKSkKQEAgLTE2MDUsMTYgKzE2MDUsMTYgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OnVwZGF0ZVRocm90dGxlU3RhdGUoKQogICAgIGJvb2wgaXNDYXB0dXJpbmdNZWRpYSA9IG1f
YWN0aXZpdHlTdGF0ZSAmIEFjdGl2aXR5U3RhdGU6OklzQ2FwdHVyaW5nTWVkaWE7CiAgICAgaWYg
KCFpc1ZpZXdWaXNpYmxlKCkgJiYgIW1fYWx3YXlzUnVuc0F0Rm9yZWdyb3VuZFByaW9yaXR5ICYm
ICFpc0NhcHR1cmluZ01lZGlhKSB7CiAgICAgICAgIGlmIChtX2FjdGl2aXR5VG9rZW4pIHsKLSAg
ICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoIiVwIC0gVUlQcm9jZXNzIGlzIHJlbGVh
c2luZyBhIGZvcmVncm91bmQgYXNzZXJ0aW9uIGJlY2F1c2UgdGhlIHZpZXcgaXMgbm8gbG9uZ2Vy
IHZpc2libGUiLCB0aGlzKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoUHJv
Y2Vzc1N1c3BlbnNpb24sICIlcCAtIFVJUHJvY2VzcyBpcyByZWxlYXNpbmcgYSBmb3JlZ3JvdW5k
IGFzc2VydGlvbiBiZWNhdXNlIHRoZSB2aWV3IGlzIG5vIGxvbmdlciB2aXNpYmxlIiwgdGhpcyk7
CiAgICAgICAgICAgICBtX2FjdGl2aXR5VG9rZW4gPSBudWxscHRyOwogICAgICAgICB9CiAgICAg
fSBlbHNlIGlmICghbV9hY3Rpdml0eVRva2VuKSB7CiAgICAgICAgIGlmIChpc1ZpZXdWaXNpYmxl
KCkpCi0gICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCIlcCAtIFVJUHJvY2VzcyBp
cyB0YWtpbmcgYSBmb3JlZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIHRoZSB2aWV3IGlzIHZpc2li
bGUiLCB0aGlzKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoUHJvY2Vzc1N1
c3BlbnNpb24sICIlcCAtIFVJUHJvY2VzcyBpcyB0YWtpbmcgYSBmb3JlZ3JvdW5kIGFzc2VydGlv
biBiZWNhdXNlIHRoZSB2aWV3IGlzIHZpc2libGUiLCB0aGlzKTsKICAgICAgICAgZWxzZSBpZiAo
aXNDYXB0dXJpbmdNZWRpYSkKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoIiVw
IC0gVUlQcm9jZXNzIGlzIHRha2luZyBhIGZvcmVncm91bmQgYXNzZXJ0aW9uIGJlY2F1c2UgbWVk
aWEgY2FwdHVyZSBpcyBhY3RpdmUiLCB0aGlzKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lG
X0FMTE9XRUQoUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFVJUHJvY2VzcyBpcyB0YWtpbmcgYSBm
b3JlZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIG1lZGlhIGNhcHR1cmUgaXMgYWN0aXZlIiwgdGhp
cyk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoIiVw
IC0gVUlQcm9jZXNzIGlzIHRha2luZyBhIGZvcmVncm91bmQgYXNzZXJ0aW9uIGV2ZW4gdGhvdWdo
IHRoZSB2aWV3IGlzIG5vdCB2aXNpYmxlIGJlY2F1c2UgbV9hbHdheXNSdW5zQXRGb3JlZ3JvdW5k
UHJpb3JpdHkgaXMgdHJ1ZSIsIHRoaXMpOworICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxM
T1dFRChQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gVUlQcm9jZXNzIGlzIHRha2luZyBhIGZvcmVn
cm91bmQgYXNzZXJ0aW9uIGV2ZW4gdGhvdWdoIHRoZSB2aWV3IGlzIG5vdCB2aXNpYmxlIGJlY2F1
c2UgbV9hbHdheXNSdW5zQXRGb3JlZ3JvdW5kUHJpb3JpdHkgaXMgdHJ1ZSIsIHRoaXMpOwogICAg
ICAgICBtX2FjdGl2aXR5VG9rZW4gPSBtX3Byb2Nlc3MtPnRocm90dGxlcigpLmZvcmVncm91bmRB
Y3Rpdml0eVRva2VuKCk7CiAgICAgfQogI2VuZGlmCkBAIC01NjAyLDcgKzU2MDIsNyBAQCBXZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzIFdlYlBhZ2VQcm94eTo6Y3JlYXRpb25QYXJhbWV0ZXJzKCkK
ICAgICBwYXJhbWV0ZXJzLnVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24gPSBtX3BhZ2VDbGll
bnQudXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbigpOwogICAgIHBhcmFtZXRlcnMub2JzZXJ2
ZWRMYXlvdXRNaWxlc3RvbmVzID0gbV9vYnNlcnZlZExheW91dE1pbGVzdG9uZXM7CiAgICAgcGFy
YW1ldGVycy5vdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeSA9IG1fb3ZlcnJpZGVDb250ZW50
U2VjdXJpdHlQb2xpY3k7Ci0gICAgcGFyYW1ldGVycy5iYWNrZ3JvdW5kQ1BVTGltaXQgPSBtX2Jh
Y2tncm91bmRDUFVMaW1pdDsKKyAgICBwYXJhbWV0ZXJzLmNwdUxpbWl0ID0gbV9jcHVMaW1pdDsK
IAogICAgIGZvciAoYXV0byYgaXRlcmF0b3IgOiBtX3VybFNjaGVtZUhhbmRsZXJzQnlTY2hlbWUp
CiAgICAgICAgIHBhcmFtZXRlcnMudXJsU2NoZW1lSGFuZGxlcnMuc2V0KGl0ZXJhdG9yLmtleSwg
aXRlcmF0b3IudmFsdWUtPmlkZW50aWZpZXIoKSk7CkBAIC02NzA4LDkgKzY3MDgsMTYgQEAgdm9p
ZCBXZWJQYWdlUHJveHk6OnNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KHVpbnQ2NF90IGNv
bnRleHRJZCwgYm9vbCBzaG91bGQKIAogdm9pZCBXZWJQYWdlUHJveHk6OmRpZEV4Y2VlZEluYWN0
aXZlTWVtb3J5TGltaXRXaGlsZUFjdGl2ZSgpCiB7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dF
RChQZXJmb3JtYW5jZUxvZ2dpbmcsICIlcCAtIFdlYlBhZ2VQcm94eTo6ZGlkRXhjZWVkSW5hY3Rp
dmVNZW1vcnlMaW1pdFdoaWxlQWN0aXZlKCkiLCB0aGlzKTsKICAgICBtX3VpQ2xpZW50LT5kaWRF
eGNlZWRCYWNrZ3JvdW5kUmVzb3VyY2VMaW1pdFdoaWxlSW5Gb3JlZ3JvdW5kKCp0aGlzLCBrV0tS
ZXNvdXJjZUxpbWl0TWVtb3J5KTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OmRpZEV4Y2VlZEJh
Y2tncm91bmRDUFVMaW1pdFdoaWxlSW5Gb3JlZ3JvdW5kKCkKK3sKKyAgICBSRUxFQVNFX0xPR19J
Rl9BTExPV0VEKFBlcmZvcm1hbmNlTG9nZ2luZywgIiVwIC0gV2ViUGFnZVByb3h5OjpkaWRFeGNl
ZWRCYWNrZ3JvdW5kQ1BVTGltaXRXaGlsZUluRm9yZWdyb3VuZCgpIiwgdGhpcyk7CisgICAgbV91
aUNsaWVudC0+ZGlkRXhjZWVkQmFja2dyb3VuZFJlc291cmNlTGltaXRXaGlsZUluRm9yZWdyb3Vu
ZCgqdGhpcywga1dLUmVzb3VyY2VMaW1pdENQVSk7Cit9CisKIHZvaWQgV2ViUGFnZVByb3h5Ojpk
aWRDaGFuZ2VCYWNrZ3JvdW5kQ29sb3IoKQogewogICAgIG1fcGFnZUNsaWVudC5kaWRDaGFuZ2VC
YWNrZ3JvdW5kQ29sb3IoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApp
bmRleCA4ZWE0NzUzOTM0MDgzNDk4YjY1NWFlODhlMTA3NmE5OTkxYjJjYjFmLi4zYjU1YzFhZTM0
MzM0YTZiNjhhYzZhMDNmMzU0YTY1MzdhNDU0NzE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCkBAIC0zNzksNiArMzc5LDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNV
c2luZ0hpZ2hQZXJmb3JtYW5jZVdlYkdMKCkgY29uc3QgeyByZXR1cm4gbV9pc1VzaW5nSGlnaFBl
cmZvcm1hbmNlV2ViR0w7IH0KIAogICAgIHZvaWQgZGlkRXhjZWVkSW5hY3RpdmVNZW1vcnlMaW1p
dFdoaWxlQWN0aXZlKCk7CisgICAgdm9pZCBkaWRFeGNlZWRCYWNrZ3JvdW5kQ1BVTGltaXRXaGls
ZUluRm9yZWdyb3VuZCgpOwogCiAgICAgdm9pZCBjbG9zZVBhZ2UoYm9vbCBzdG9wUmVzcG9uc2l2
ZW5lc3NUaW1lcik7CiAKQEAgLTE3MDYsNyArMTcwNyw3IEBAIHByaXZhdGU6CiAgICAgUHJvY2Vz
c1Rocm90dGxlcjo6Rm9yZWdyb3VuZEFjdGl2aXR5VG9rZW4gbV9hY3Rpdml0eVRva2VuOwogI2Vu
ZGlmCiAgICAgYm9vbCBtX2luaXRpYWxDYXBpdGFsaXphdGlvbkVuYWJsZWQ7Ci0gICAgc3RkOjpv
cHRpb25hbDxkb3VibGU+IG1fYmFja2dyb3VuZENQVUxpbWl0OworICAgIHN0ZDo6b3B0aW9uYWw8
ZG91YmxlPiBtX2NwdUxpbWl0OwogICAgIFJlZjxXZWJCYWNrRm9yd2FyZExpc3Q+IG1fYmFja0Zv
cndhcmRMaXN0OwogICAgICAgICAKICAgICBib29sIG1fbWFpbnRhaW5zSW5hY3RpdmVTZWxlY3Rp
b247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4
IDllMTQxZGMxMTVmNmJjYzZjNDRhZDk4MjY3NzExMWNjZWNiNmEwNTguLjgyYzIxODZhMzBmOWYw
YjgzYzAyMTExMWVhNTNiODExNWJiODZmM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0xMjExLDI0ICsxMjExLDMzIEBAIHZvaWQgV2ViUHJv
Y2Vzc1Byb3h5OjpkaWRFeGNlZWRJbmFjdGl2ZU1lbW9yeUxpbWl0KCkKICAgICByZXF1ZXN0VGVy
bWluYXRpb24oUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uOjpFeGNlZWRlZE1lbW9yeUxpbWl0KTsK
IH0KIAotdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZEV4Y2VlZEJhY2tncm91bmRDUFVMaW1pdCgp
Cit2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkRXhjZWVkQ1BVTGltaXQoKQogewogICAgIGZvciAo
YXV0byYgcGFnZSA6IHBhZ2VzKCkpIHsKLSAgICAgICAgaWYgKHBhZ2UtPmlzVmlld1Zpc2libGUo
KSkKLSAgICAgICAgICAgIHJldHVybjsKLQogICAgICAgICBpZiAocGFnZS0+aXNQbGF5aW5nQXVk
aW8oKSkgewotICAgICAgICAgICAgUkVMRUFTRV9MT0coUGVyZm9ybWFuY2VMb2dnaW5nLCAiJXAg
LSBXZWJQcm9jZXNzUHJveHk6OmRpZEV4Y2VlZEJhY2tncm91bmRDUFVMaW1pdCgpIFdlYlByb2Nl
c3MgaGFzIGV4Y2VlZGVkIHRoZSBiYWNrZ3JvdW5kIENQVSBsaW1pdCBidXQgd2UgYXJlIG5vdCB0
ZXJtaW5hdGluZyBpdCBiZWNhdXNlIHRoZXJlIGlzIGF1ZGlvIHBsYXlpbmciLCB0aGlzKTsKKyAg
ICAgICAgICAgIFJFTEVBU0VfTE9HKFBlcmZvcm1hbmNlTG9nZ2luZywgIiVwIC0gV2ViUHJvY2Vz
c1Byb3h5OjpkaWRFeGNlZWRDUFVMaW1pdCgpIFdlYlByb2Nlc3MgaGFzIGV4Y2VlZGVkIHRoZSBi
YWNrZ3JvdW5kIENQVSBsaW1pdCBidXQgd2UgYXJlIG5vdCB0ZXJtaW5hdGluZyBpdCBiZWNhdXNl
IHRoZXJlIGlzIGF1ZGlvIHBsYXlpbmciLCB0aGlzKTsKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQogCiAgICAgICAgIGlmIChwYWdlLT5oYXNBY3RpdmVBdWRpb1N0cmVhbSgpIHx8IHBh
Z2UtPmhhc0FjdGl2ZVZpZGVvU3RyZWFtKCkpIHsKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HKFBl
cmZvcm1hbmNlTG9nZ2luZywgIiVwIC0gV2ViUHJvY2Vzc1Byb3h5OjpkaWRFeGNlZWRCYWNrZ3Jv
dW5kQ1BVTGltaXQoKSBXZWJQcm9jZXNzIGhhcyBleGNlZWRlZCB0aGUgYmFja2dyb3VuZCBDUFUg
bGltaXQgYnV0IHdlIGFyZSBub3QgdGVybWluYXRpbmcgaXQgYmVjYXVzZSBpdCBpcyBjYXB0dXJp
bmcgYXVkaW8gLyB2aWRlbyIsIHRoaXMpOworICAgICAgICAgICAgUkVMRUFTRV9MT0coUGVyZm9y
bWFuY2VMb2dnaW5nLCAiJXAgLSBXZWJQcm9jZXNzUHJveHk6OmRpZEV4Y2VlZENQVUxpbWl0KCkg
V2ViUHJvY2VzcyBoYXMgZXhjZWVkZWQgdGhlIGJhY2tncm91bmQgQ1BVIGxpbWl0IGJ1dCB3ZSBh
cmUgbm90IHRlcm1pbmF0aW5nIGl0IGJlY2F1c2UgaXQgaXMgY2FwdHVyaW5nIGF1ZGlvIC8gdmlk
ZW8iLCB0aGlzKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KIAotICAg
IFJFTEVBU0VfTE9HX0VSUk9SKFBlcmZvcm1hbmNlTG9nZ2luZywgIiVwIC0gV2ViUHJvY2Vzc1By
b3h5OjpkaWRFeGNlZWRCYWNrZ3JvdW5kQ1BVTGltaXQoKSBUZXJtaW5hdGluZyBiYWNrZ3JvdW5k
IFdlYlByb2Nlc3MgdGhhdCBoYXMgZXhjZWVkZWQgdGhlIGJhY2tncm91bmQgQ1BVIGxpbWl0Iiwg
dGhpcyk7CisgICAgYm9vbCBoYXNWaXNpYmxlUGFnZSA9IGZhbHNlOworICAgIGZvciAoYXV0byYg
cGFnZSA6IHBhZ2VzKCkpIHsKKyAgICAgICAgaWYgKHBhZ2UtPmlzVmlld1Zpc2libGUoKSkgewor
ICAgICAgICAgICAgcGFnZS0+ZGlkRXhjZWVkQmFja2dyb3VuZENQVUxpbWl0V2hpbGVJbkZvcmVn
cm91bmQoKTsKKyAgICAgICAgICAgIGhhc1Zpc2libGVQYWdlID0gdHJ1ZTsKKyAgICAgICAgfQor
ICAgIH0KKworICAgIC8vIFdlIG9ubHkgbm90aWZ5IHRoZSBjbGllbnQgdGhhdCB0aGUgcHJvY2Vz
cyBleGNlZWRlZCB0aGUgQ1BVIGxpbWl0IHdoZW4gaXQgaXMgdmlzaWJsZSwgd2UgZG8gbm90IHRl
cm1pbmF0ZSBpdC4KKyAgICBpZiAoaGFzVmlzaWJsZVBhZ2UpCisgICAgICAgIHJldHVybjsKKwor
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKFBlcmZvcm1hbmNlTG9nZ2luZywgIiVwIC0gV2ViUHJvY2Vz
c1Byb3h5OjpkaWRFeGNlZWRDUFVMaW1pdCgpIFRlcm1pbmF0aW5nIGJhY2tncm91bmQgV2ViUHJv
Y2VzcyB0aGF0IGhhcyBleGNlZWRlZCB0aGUgYmFja2dyb3VuZCBDUFUgbGltaXQiLCB0aGlzKTsK
ICAgICBsb2dEaWFnbm9zdGljTWVzc2FnZUZvclJlc291cmNlTGltaXRUZXJtaW5hdGlvbihEaWFn
bm9zdGljTG9nZ2luZ0tleXM6OmV4Y2VlZGVkQmFja2dyb3VuZENQVUxpbWl0S2V5KCkpOwogICAg
IHJlcXVlc3RUZXJtaW5hdGlvbihQcm9jZXNzVGVybWluYXRpb25SZWFzb246OkV4Y2VlZGVkQ1BV
TGltaXQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmlu
ZGV4IGNjZWMxY2NkOTYwMWFhZDk0MWQ5OWE0YmZiNjdlMjQyN2YxMjk4YjAuLjExNjUwODVkNjNl
MzNkNWI0ZWI5NzU0MzNkN2NlN2FlMzAwMjc4MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTE3OSw3ICsxNzksNyBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIHByb2Nlc3NUZXJtaW5hdGVkKCk7CiAKLSAgICB2b2lkIGRpZEV4Y2VlZEJhY2tncm91bmRD
UFVMaW1pdCgpOworICAgIHZvaWQgZGlkRXhjZWVkQ1BVTGltaXQoKTsKICAgICB2b2lkIGRpZEV4
Y2VlZEFjdGl2ZU1lbW9yeUxpbWl0KCk7CiAgICAgdm9pZCBkaWRFeGNlZWRJbmFjdGl2ZU1lbW9y
eUxpbWl0KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDM1NjgwOWMwZDAzZjFjNDQwZGNlMDIxOGMyNmNhNjhh
MWJhYjhlNDAuLjkzMzc4MzBjMjcxNWI0ODlhNTgyMTY0ZDNmYjU2NjkyZTBhYjUwMGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMu
aW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdl
cy5pbgpAQCAtNDcsNyArNDcsNyBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzUHJveHkgTGVnYWN5
UmVjZWl2ZXIgewogCiAgICAgRGlkRXhjZWVkQWN0aXZlTWVtb3J5TGltaXQoKQogICAgIERpZEV4
Y2VlZEluYWN0aXZlTWVtb3J5TGltaXQoKQotICAgIERpZEV4Y2VlZEJhY2tncm91bmRDUFVMaW1p
dCgpCisgICAgRGlkRXhjZWVkQ1BVTGltaXQoKQogCiAgICAgUmV0YWluSWNvbkZvclBhZ2VVUkwo
U3RyaW5nIHBhZ2VVUkwpCiAgICAgUmVsZWFzZUljb25Gb3JQYWdlVVJMKFN0cmluZyBwYWdlVVJM
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4
IDU1OWZlY2VkNTVhOWMwY2M4YzljNTE5NjNkZGJhODdjNjdlZjczMTAuLjA1YmQ5OTk5NGJiZDVi
YWRjMWM3ZGQzM2NjYzY2YjNkN2YzYWVjN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTM2Myw3ICszNjMsNyBAQCBXZWJQYWdlOjpXZWJQ
YWdlKHVpbnQ2NF90IHBhZ2VJRCwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRl
cnMpCiAgICAgLCBtX3VzZXJBY3Rpdml0eUh5c3RlcmVzaXMoW3RoaXNdKEh5c3RlcmVzaXNTdGF0
ZSkgeyB1cGRhdGVVc2VyQWN0aXZpdHkoKTsgfSkKICAgICAsIG1fdXNlckludGVyZmFjZUxheW91
dERpcmVjdGlvbihwYXJhbWV0ZXJzLnVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24pCiAgICAg
LCBtX292ZXJyaWRlQ29udGVudFNlY3VyaXR5UG9saWN5IHsgcGFyYW1ldGVycy5vdmVycmlkZUNv
bnRlbnRTZWN1cml0eVBvbGljeSB9Ci0gICAgLCBtX2JhY2tncm91bmRDUFVMaW1pdChwYXJhbWV0
ZXJzLmJhY2tncm91bmRDUFVMaW1pdCkKKyAgICAsIG1fY3B1TGltaXQocGFyYW1ldGVycy5jcHVM
aW1pdCkKIHsKICAgICBBU1NFUlQobV9wYWdlSUQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBiNzE5YzBmMzRkMWUxYzYzMWIzZGY1MTM4NGZl
NGFmZjM2YTc4ZGRhLi44ZDg3ZDNiMDI3ZTczZTFiZTQzMjgwMDMzZTk3MzNmYzA4YjYzNDM4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTk3Myw3
ICs5NzMsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIFdlYlVSTFNjaGVtZUhhbmRsZXJQcm94
eSogdXJsU2NoZW1lSGFuZGxlckZvclNjaGVtZShjb25zdCBTdHJpbmcmKTsKLSAgICBzdGQ6Om9w
dGlvbmFsPGRvdWJsZT4gYmFja2dyb3VuZENQVUxpbWl0KCkgY29uc3QgeyByZXR1cm4gbV9iYWNr
Z3JvdW5kQ1BVTGltaXQ7IH0KKyAgICBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gY3B1TGltaXQoKSBj
b25zdCB7IHJldHVybiBtX2NwdUxpbWl0OyB9CiAKICAgICBzdGF0aWMgUGx1Z2luVmlldyogcGx1
Z2luVmlld0ZvckZyYW1lKFdlYkNvcmU6OkZyYW1lKik7CiAKQEAgLTE1NjEsNyArMTU2MSw3IEBA
IHByaXZhdGU6CiAgICAgV2ViQ29yZTo6VXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbiBtX3Vz
ZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24geyBXZWJDb3JlOjpVc2VySW50ZXJmYWNlTGF5b3V0
RGlyZWN0aW9uOjpMVFIgfTsKIAogICAgIGNvbnN0IFN0cmluZyBtX292ZXJyaWRlQ29udGVudFNl
Y3VyaXR5UG9saWN5OwotICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBtX2JhY2tncm91
bmRDUFVMaW1pdDsKKyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gbV9jcHVMaW1pdDsK
IAogICAgIEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViVVJMU2NoZW1lSGFuZGxl
clByb3h5Pj4gbV9zY2hlbWVUb1VSTFNjaGVtZUhhbmRsZXJQcm94eU1hcDsKICAgICBIYXNoTWFw
PHVpbnQ2NF90LCBXZWJVUkxTY2hlbWVIYW5kbGVyUHJveHkqPiBtX2lkZW50aWZpZXJUb1VSTFNj
aGVtZUhhbmRsZXJQcm94eU1hcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
Y3BwCmluZGV4IDYwMTk4YTNmYjM5ZGIyYjU2MTA3YThhNDZmNGU3OWMwMTAyNmJhYzIuLjEyMmNm
MmUyY2RhMTAzOTFhZGU1Y2IwZWI4Y2NlN2I3NDA5Zjg2YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtNTk5LDcgKzU5OSw3IEBAIHZvaWQgV2ViUHJvY2Vz
czo6Y3JlYXRlV2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRl
cnMmJiBwYXJhCiAKICAgICAgICAgLy8gQmFsYW5jZWQgYnkgYW4gZW5hYmxlVGVybWluYXRpb24g
aW4gcmVtb3ZlV2ViUGFnZS4KICAgICAgICAgZGlzYWJsZVRlcm1pbmF0aW9uKCk7Ci0gICAgICAg
IHVwZGF0ZUJhY2tncm91bmRDUFVMaW1pdCgpOworICAgICAgICB1cGRhdGVDUFVMaW1pdCgpOwog
ICAgIH0gZWxzZQogICAgICAgICByZXN1bHQuaXRlcmF0b3ItPnZhbHVlLT5yZWluaXRpYWxpemVX
ZWJQYWdlKFdURk1vdmUocGFyYW1ldGVycykpOwogCkBAIC02MTQsNyArNjE0LDcgQEAgdm9pZCBX
ZWJQcm9jZXNzOjpyZW1vdmVXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCkKICAgICBtX3BhZ2VNYXAu
cmVtb3ZlKHBhZ2VJRCk7CiAKICAgICBlbmFibGVUZXJtaW5hdGlvbigpOwotICAgIHVwZGF0ZUJh
Y2tncm91bmRDUFVMaW1pdCgpOworICAgIHVwZGF0ZUNQVUxpbWl0KCk7CiB9CiAKIGJvb2wgV2Vi
UHJvY2Vzczo6c2hvdWxkVGVybWluYXRlKCkKQEAgLTEyOTAsMTEgKzEyOTAsMTEgQEAgdm9pZCBX
ZWJQcm9jZXNzOjp1cGRhdGVBY3RpdmVQYWdlcygpCiB7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzczo6
dXBkYXRlQmFja2dyb3VuZENQVUxpbWl0KCkKK3ZvaWQgV2ViUHJvY2Vzczo6dXBkYXRlQ1BVTGlt
aXQoKQogewogfQogCi12b2lkIFdlYlByb2Nlc3M6OnVwZGF0ZUJhY2tncm91bmRDUFVNb25pdG9y
U3RhdGUoKQordm9pZCBXZWJQcm9jZXNzOjp1cGRhdGVDUFVNb25pdG9yU3RhdGUoQ1BVTW9uaXRv
clVwZGF0ZVJlYXNvbikKIHsKIH0KIApAQCAtMTMwMyw3ICsxMzAzLDcgQEAgdm9pZCBXZWJQcm9j
ZXNzOjp1cGRhdGVCYWNrZ3JvdW5kQ1BVTW9uaXRvclN0YXRlKCkKIHZvaWQgV2ViUHJvY2Vzczo6
cGFnZUFjdGl2aXR5U3RhdGVEaWRDaGFuZ2UodWludDY0X3QsIFdlYkNvcmU6OkFjdGl2aXR5U3Rh
dGU6OkZsYWdzIGNoYW5nZWQpCiB7CiAgICAgaWYgKGNoYW5nZWQgJiBXZWJDb3JlOjpBY3Rpdml0
eVN0YXRlOjpJc1Zpc2libGUpCi0gICAgICAgIHVwZGF0ZUJhY2tncm91bmRDUFVNb25pdG9yU3Rh
dGUoKTsKKyAgICAgICAgdXBkYXRlQ1BVTW9uaXRvclN0YXRlKENQVU1vbml0b3JVcGRhdGVSZWFz
b246OlZpc2liaWxpdHlIYXNDaGFuZ2VkKTsKIH0KIAogI2lmIFBMQVRGT1JNKElPUykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggYjgyOGI3NTQ1YmJjYTNiMjBmYzkw
NDA5NmNjZTBkZDkxMmMzNzNlZi4uNTljMjA2YjZhZWQwODEyYTRmNGZhMGM0M2NlMGMzMGY2MzA2
ZmRmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTMxNyw4ICsz
MTcsOSBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZUZvck5ldHdv
cmtQcm9jZXNzQ3Jhc2goKTsKICAgICBib29sIGhhc1Zpc2libGVXZWJQYWdlKCkgY29uc3Q7Ci0g
ICAgdm9pZCB1cGRhdGVCYWNrZ3JvdW5kQ1BVTGltaXQoKTsKLSAgICB2b2lkIHVwZGF0ZUJhY2tn
cm91bmRDUFVNb25pdG9yU3RhdGUoKTsKKyAgICB2b2lkIHVwZGF0ZUNQVUxpbWl0KCk7CisgICAg
ZW51bSBjbGFzcyBDUFVNb25pdG9yVXBkYXRlUmVhc29uIHsgTGltaXRIYXNDaGFuZ2VkLCBWaXNp
YmlsaXR5SGFzQ2hhbmdlZCB9OworICAgIHZvaWQgdXBkYXRlQ1BVTW9uaXRvclN0YXRlKENQVU1v
bml0b3JVcGRhdGVSZWFzb24pOwogCiAgICAgLy8gQ2hpbGRQcm9jZXNzCiAgICAgdm9pZCBpbml0
aWFsaXplUHJvY2Vzcyhjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMm
KSBvdmVycmlkZTsKQEAgLTQyMCw4ICs0MjEsOCBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1f
cGFnZXNNYXJraW5nTGF5ZXJzQXNWb2xhdGlsZSB7IDAgfTsKICAgICBib29sIG1fc3VwcHJlc3NN
ZW1vcnlQcmVzc3VyZUhhbmRsZXIgeyBmYWxzZSB9OwogI2lmIFBMQVRGT1JNKE1BQykKLSAgICBz
dGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Q1BVTW9uaXRvcj4gbV9iYWNrZ3JvdW5kQ1BVTW9uaXRv
cjsKLSAgICBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gbV9iYWNrZ3JvdW5kQ1BVTGltaXQ7CisgICAg
c3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkNQVU1vbml0b3I+IG1fY3B1TW9uaXRvcjsKKyAgICBz
dGQ6Om9wdGlvbmFsPGRvdWJsZT4gbV9jcHVMaW1pdDsKICNlbmRpZgogCiAgICAgSGFzaE1hcDxX
ZWJDb3JlOjpVc2VyR2VzdHVyZVRva2VuICosIHVpbnQ2NF90PiBtX3VzZXJHZXN0dXJlVG9rZW5z
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNz
Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2Nv
YS5tbQppbmRleCBlMjRlOGM1YjhhMjA1NjI1ZGU3ZmMwYjI3YmVlOGQ1NjQxM2JhNzNlLi5iODI5
OGFlNmNkNmFjYWQ3MmVlZTQ1NDhjZDZhY2ExZjNiOTAwMDBhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQpAQCAtOTIsNyArOTIs
NyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIG5hbWVzcGFjZSBXZWJLaXQgewogCiAjaWYg
UExBVEZPUk0oTUFDKQotc3RhdGljIGNvbnN0IFNlY29uZHMgYmFja2dyb3VuZENQVU1vbml0b3Jp
bmdJbnRlcnZhbCB7IDhfbWluIH07CitzdGF0aWMgY29uc3QgU2Vjb25kcyBjcHVNb25pdG9yaW5n
SW50ZXJ2YWwgeyA4X21pbiB9OwogI2VuZGlmCiAKIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1T
ZXRDYWNoZU1vZGVsKENhY2hlTW9kZWwpCkBAIC0zOTYsNDYgKzM5Niw1MiBAQCB2b2lkIFdlYlBy
b2Nlc3M6OnVwZGF0ZUFjdGl2ZVBhZ2VzKCkKICNlbmRpZgogfQogCi12b2lkIFdlYlByb2Nlc3M6
OnVwZGF0ZUJhY2tncm91bmRDUFVMaW1pdCgpCit2b2lkIFdlYlByb2Nlc3M6OnVwZGF0ZUNQVUxp
bWl0KCkKIHsKICNpZiBQTEFURk9STShNQUMpCi0gICAgc3RkOjpvcHRpb25hbDxkb3VibGU+IGJh
Y2tncm91bmRDUFVMaW1pdDsKKyAgICBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gY3B1TGltaXQ7CiAK
ICAgICAvLyBVc2UgdGhlIGxhcmdlc3QgbGltaXQgYW1vbmcgYWxsIHBhZ2VzIGluIHRoaXMgcHJv
Y2Vzcy4KICAgICBmb3IgKGF1dG8mIHBhZ2UgOiBtX3BhZ2VNYXAudmFsdWVzKCkpIHsKLSAgICAg
ICAgYXV0byBwYWdlQ1BVTGltaXQgPSBwYWdlLT5iYWNrZ3JvdW5kQ1BVTGltaXQoKTsKKyAgICAg
ICAgYXV0byBwYWdlQ1BVTGltaXQgPSBwYWdlLT5jcHVMaW1pdCgpOwogICAgICAgICBpZiAoIXBh
Z2VDUFVMaW1pdCkgewotICAgICAgICAgICAgYmFja2dyb3VuZENQVUxpbWl0ID0gc3RkOjpudWxs
b3B0OworICAgICAgICAgICAgY3B1TGltaXQgPSBzdGQ6Om51bGxvcHQ7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgfQotICAgICAgICBpZiAoIWJhY2tncm91bmRDUFVMaW1pdCB8fCBwYWdl
Q1BVTGltaXQgPiBiYWNrZ3JvdW5kQ1BVTGltaXQudmFsdWUoKSkKLSAgICAgICAgICAgIGJhY2tn
cm91bmRDUFVMaW1pdCA9IHBhZ2VDUFVMaW1pdDsKKyAgICAgICAgaWYgKCFjcHVMaW1pdCB8fCBw
YWdlQ1BVTGltaXQgPiBjcHVMaW1pdC52YWx1ZSgpKQorICAgICAgICAgICAgY3B1TGltaXQgPSBw
YWdlQ1BVTGltaXQ7CiAgICAgfQogCi0gICAgaWYgKG1fYmFja2dyb3VuZENQVUxpbWl0ID09IGJh
Y2tncm91bmRDUFVMaW1pdCkKKyAgICBpZiAobV9jcHVMaW1pdCA9PSBjcHVMaW1pdCkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgbV9iYWNrZ3JvdW5kQ1BVTGltaXQgPSBiYWNrZ3JvdW5kQ1BVTGlt
aXQ7Ci0gICAgdXBkYXRlQmFja2dyb3VuZENQVU1vbml0b3JTdGF0ZSgpOworICAgIG1fY3B1TGlt
aXQgPSBjcHVMaW1pdDsKKyAgICB1cGRhdGVDUFVNb25pdG9yU3RhdGUoQ1BVTW9uaXRvclVwZGF0
ZVJlYXNvbjo6TGltaXRIYXNDaGFuZ2VkKTsKICNlbmRpZgogfQogCi12b2lkIFdlYlByb2Nlc3M6
OnVwZGF0ZUJhY2tncm91bmRDUFVNb25pdG9yU3RhdGUoKQordm9pZCBXZWJQcm9jZXNzOjp1cGRh
dGVDUFVNb25pdG9yU3RhdGUoQ1BVTW9uaXRvclVwZGF0ZVJlYXNvbiByZWFzb24pCiB7CiAjaWYg
UExBVEZPUk0oTUFDKQotICAgIGlmICghbV9iYWNrZ3JvdW5kQ1BVTGltaXQgfHwgaGFzVmlzaWJs
ZVdlYlBhZ2UoKSkgewotICAgICAgICBpZiAobV9iYWNrZ3JvdW5kQ1BVTW9uaXRvcikKLSAgICAg
ICAgICAgIG1fYmFja2dyb3VuZENQVU1vbml0b3ItPnNldENQVUxpbWl0KHN0ZDo6bnVsbG9wdCk7
CisgICAgaWYgKCFtX2NwdUxpbWl0KSB7CisgICAgICAgIGlmIChtX2NwdU1vbml0b3IpCisgICAg
ICAgICAgICBtX2NwdU1vbml0b3ItPnNldENQVUxpbWl0KHN0ZDo6bnVsbG9wdCk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoIW1fYmFja2dyb3VuZENQVU1vbml0b3IpIHsKLSAg
ICAgICAgbV9iYWNrZ3JvdW5kQ1BVTW9uaXRvciA9IHN0ZDo6bWFrZV91bmlxdWU8Q1BVTW9uaXRv
cj4oYmFja2dyb3VuZENQVU1vbml0b3JpbmdJbnRlcnZhbCwgW3RoaXNdKGRvdWJsZSBjcHVVc2Fn
ZSkgewotICAgICAgICAgICAgUkVMRUFTRV9MT0coUGVyZm9ybWFuY2VMb2dnaW5nLCAiJXAgLSBX
ZWJQcm9jZXNzIGV4Y2VlZGVkIGJhY2tncm91bmQgQ1BVIGxpbWl0IG9mICUuMWYlJSAod2FzIHVz
aW5nICUuMWYlJSkiLCB0aGlzLCBtX2JhY2tncm91bmRDUFVMaW1pdC52YWx1ZSgpICogMTAwLCBj
cHVVc2FnZSAqIDEwMCk7Ci0gICAgICAgICAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5z
ZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkRpZEV4Y2VlZEJhY2tncm91bmRDUFVMaW1p
dCgpLCAwKTsKKyAgICBpZiAoIW1fY3B1TW9uaXRvcikgeworICAgICAgICBtX2NwdU1vbml0b3Ig
PSBzdGQ6Om1ha2VfdW5pcXVlPENQVU1vbml0b3I+KGNwdU1vbml0b3JpbmdJbnRlcnZhbCwgW3Ro
aXNdKGRvdWJsZSBjcHVVc2FnZSkgeworICAgICAgICAgICAgUkVMRUFTRV9MT0coUGVyZm9ybWFu
Y2VMb2dnaW5nLCAiJXAgLSBXZWJQcm9jZXNzIGV4Y2VlZGVkIENQVSBsaW1pdCBvZiAlLjFmJSUg
KHdhcyB1c2luZyAlLjFmJSUpIGhhc1Zpc2libGVQYWdlcz8gJWQiLCB0aGlzLCBtX2NwdUxpbWl0
LnZhbHVlKCkgKiAxMDAsIGNwdVVzYWdlICogMTAwLCBoYXNWaXNpYmxlV2ViUGFnZSgpKTsKKyAg
ICAgICAgICAgIHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBy
b2Nlc3NQcm94eTo6RGlkRXhjZWVkQ1BVTGltaXQoKSwgMCk7CiAgICAgICAgIH0pOworICAgIH0g
ZWxzZSBpZiAocmVhc29uID09IENQVU1vbml0b3JVcGRhdGVSZWFzb246OlZpc2liaWxpdHlIYXND
aGFuZ2VkKSB7CisgICAgICAgIC8vIElmIHRoZSB2aXNpYmlsaXR5IGhhcyBjaGFuZ2VkLCBzdG9w
IHRoZSBDUFUgbW9uaXRvciBiZWZvcmUgc2V0dGluZyBpdHMgbGltaXQuIFRoaXMgaXMgbmVlZGVk
IGJlY2F1c2UgdGhlIENQVSB1c2FnZSBjYW4gdmFyeSB3aWxkbHkgYmFzZWQgb24gdmlzaWJpbGl0
eSBhbmQgd2Ugd291bGQKKyAgICAgICAgLy8gbm90IHdhbnQgdG8gcmVwb3J0IHRoYXQgYSBwcm9j
ZXNzIGhhcyBleGNlZWRlZCBpdHMgYmFja2dyb3VuZCBDUFUgbGltaXQgZXZlbiB0aG91Z2ggbW9z
dCBvZiB0aGUgQ1BVIHRpbWUgd2FzIHVzZWQgd2hpbGUgdGhlIHByb2Nlc3Mgd2FzIHZpc2libGUu
CisgICAgICAgIG1fY3B1TW9uaXRvci0+c2V0Q1BVTGltaXQoc3RkOjpudWxsb3B0KTsKICAgICB9
Ci0gICAgbV9iYWNrZ3JvdW5kQ1BVTW9uaXRvci0+c2V0Q1BVTGltaXQobV9iYWNrZ3JvdW5kQ1BV
TGltaXQudmFsdWUoKSk7CisgICAgbV9jcHVNb25pdG9yLT5zZXRDUFVMaW1pdChtX2NwdUxpbWl0
LnZhbHVlKCkpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocmVhc29uKTsKICNlbmRpZgogfQog
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>