<?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>201101</bug_id>
          
          <creation_ts>2019-08-23 16:23:05 -0700</creation_ts>
          <short_desc>Removing fullscreen element in rAF() callback after requestFullscreen() can leave fullscreen in inconsistent state.</short_desc>
          <delta_ts>2019-08-27 13:47:29 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=201188</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>jonlee</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1564676</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-08-23 16:23:05 -0700</bug_when>
    <thetext>Removing fullscreen element in rAF() callback after requestFullscreen() can leave fullscreen in inconsistent state.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564689</commentid>
    <comment_count>1</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-08-23 16:42:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/54164587&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564978</commentid>
    <comment_count>2</comment_count>
      <attachid>377249</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-08-26 10:02:18 -0700</bug_when>
    <thetext>Created attachment 377249
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564981</commentid>
    <comment_count>3</comment_count>
      <attachid>377251</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-08-26 10:05:01 -0700</bug_when>
    <thetext>Created attachment 377251
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565199</commentid>
    <comment_count>4</comment_count>
      <attachid>377251</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2019-08-26 17:29:25 -0700</bug_when>
    <thetext>Comment on attachment 377251
Patch

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

&gt; Source/WebCore/dom/FullscreenManager.cpp:245
&gt; +        if (m_pendingFullscreenElement)

Nit: this test is unnecessary

&gt; Source/WebCore/dom/FullscreenManager.cpp:271
&gt; +        if (m_pendingFullscreenElement)

Ditto

&gt; LayoutTests/fullscreen/full-screen-request-removed-with-raf.html:9
&gt; +            if (document.webkitCurrentFullScreenElement &amp;&amp; document.webkitCurrentFullScreenElement.ownerDocument)

Shouldn’t this be “! document.webkitCurrentFullScreenElement.ownerDocument”?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565338</commentid>
    <comment_count>5</comment_count>
      <attachid>377251</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-08-27 08:02:23 -0700</bug_when>
    <thetext>Comment on attachment 377251
Patch

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

&gt;&gt; LayoutTests/fullscreen/full-screen-request-removed-with-raf.html:9
&gt;&gt; +            if (document.webkitCurrentFullScreenElement &amp;&amp; document.webkitCurrentFullScreenElement.ownerDocument)
&gt; 
&gt; Shouldn’t this be “! document.webkitCurrentFullScreenElement.ownerDocument”?

Yep.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565374</commentid>
    <comment_count>6</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-08-27 09:49:46 -0700</bug_when>
    <thetext>Committed r249147: &lt;https://trac.webkit.org/changeset/249147&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377249</attachid>
            <date>2019-08-26 10:02:18 -0700</date>
            <delta_ts>2019-08-26 10:05:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201101-20190826100218.patch</filename>
            <type>text/plain</type>
            <size>22672</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5MDE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzIwNmY2ZGFiMmYzYjJj
YTIzNjYyZmQzOGEzZTRmMzAxYmNiYjg1NS4uNzdkYTQ0NzRhNDE0NDY4NTY4NWMxMTQ3ZDEyMWUy
ZTY4NTNhZmRjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE5LTA4LTI2ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92aW5nIGZ1bGxzY3Jl
ZW4gZWxlbWVudCBpbiByQUYoKSBjYWxsYmFjayBhZnRlciByZXF1ZXN0RnVsbHNjcmVlbigpIGNh
biBsZWF2ZSBmdWxsc2NyZWVuIGluIGluY29uc2lzdGVudCBzdGF0ZS4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTEwMQorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNTQxNjQ1ODc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGVzdDogZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1yZXF1ZXN0LXJlbW92ZWQt
d2l0aC1yYWYuaHRtbAorCisgICAgICAgIEFkZCBhIG5ldyBzdGF0ZSB2YXJpYWJsZSwgbV9wZW5k
aW5nRnVsbHNjcmVlbkVsZW1lbnQsIHRvIHRyYWNrIHdoaWNoIGVsZW1lbnQgaXMgYWJvdXQgdG8K
KyAgICAgICAgYmVjb21lIHRoZSBmdWxsc2NyZWVuIGVsZW1lbnQsIHNvIHRoYXQgd2hlbiBlbGVt
ZW50cyBhcmUgcmVtb3ZlZCBvciBjYW5jZWxGdWxsc2NyZWVuKCkgaXMKKyAgICAgICAgY2FsbGVk
LCB0aGUgc3RhdGUgbWFjaGluZSBpbnNpZGUgdGhlIGZ1bGxzY3JlZW4gYWxnb3JpdGhtIGNhbiBj
YW5jZWwgZWZmZWN0aXZlbHkuCisKKyAgICAgICAgKiBkb20vRnVsbHNjcmVlbk1hbmFnZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RnVsbHNjcmVlbk1hbmFnZXI6OnJlcXVlc3RGdWxsc2NyZWVu
Rm9yRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpGdWxsc2NyZWVuTWFuYWdlcjo6Y2FuY2Vs
RnVsbHNjcmVlbik6CisgICAgICAgIChXZWJDb3JlOjpGdWxsc2NyZWVuTWFuYWdlcjo6ZXhpdEZ1
bGxzY3JlZW4pOgorICAgICAgICAoV2ViQ29yZTo6RnVsbHNjcmVlbk1hbmFnZXI6OndpbGxFbnRl
ckZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViQ29yZTo6RnVsbHNjcmVlbk1hbmFnZXI6OndpbGxF
eGl0RnVsbHNjcmVlbik6CisgICAgICAgIChXZWJDb3JlOjpGdWxsc2NyZWVuTWFuYWdlcjo6ZGlk
RXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViQ29yZTo6RnVsbHNjcmVlbk1hbmFnZXI6OmFk
anVzdEZ1bGxzY3JlZW5FbGVtZW50T25Ob2RlUmVtb3ZhbCk6CisgICAgICAgIChXZWJDb3JlOjpG
dWxsc2NyZWVuTWFuYWdlcjo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6RnVsbHNjcmVlbk1h
bmFnZXI6OmZ1bGxzY3JlZW5FbGVtZW50UmVtb3ZlZCk6IERlbGV0ZWQuCisgICAgICAgICogZG9t
L0Z1bGxzY3JlZW5NYW5hZ2VyLmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vaW9zL01lZGlh
U2Vzc2lvbk1hbmFnZXJJT1MuaDoKKwogMjAxOS0wOC0wOCAgSmVyIE5vYmxlICA8amVyLm5vYmxl
QGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgdGhlIFJlbW90ZSBQbGF5YmFjayBBUEku
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IDM4YmM0OGUxMDIzNTQ0OGM3YWY4MTJhNjBjODE4NjM0ZjBmMDNjYTEuLjVk
YzQ3ZjI1Y2FjYjBhNDY5ODJhNTNiMzE2ZWZjMThlYTc0ZGU1ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzAgQEAKKzIwMTktMDgtMjYgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisK
KyAgICAgICAgUmVtb3ZpbmcgZnVsbHNjcmVlbiBlbGVtZW50IGluIHJBRigpIGNhbGxiYWNrIGFm
dGVyIHJlcXVlc3RGdWxsc2NyZWVuKCkgY2FuIGxlYXZlIGZ1bGxzY3JlZW4gaW4gaW5jb25zaXN0
ZW50IHN0YXRlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjAxMTAxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NDE2NDU4Nz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbW9yZSBzdGF0ZSB0byB0
cmFjayBpbiB3aGljaCBkaXJlY3Rpb24gdGhlIGFuaW1hdGlvbiBpcyBmbG93aW5nIHRvIGFsbG93
IGluLXByb2Nlc3MKKyAgICAgICAgYW5pbWF0aW9ucyB0byBiZSBjYW5jZWxsZWQgbW9yZSBncmFj
ZWZ1bGx5LgorCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVl
bldpbmRvd0NvbnRyb2xsZXJJT1MubW06CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0Nv
bnRyb2xsZXIgZW50ZXJGdWxsU2NyZWVuXSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRv
d0NvbnRyb2xsZXIgYmVnYW5FbnRlckZ1bGxTY3JlZW5XaXRoSW5pdGlhbEZyYW1lOmZpbmFsRnJh
bWU6XSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgcmVxdWVzdEV4
aXRGdWxsU2NyZWVuXSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIg
ZXhpdEZ1bGxTY3JlZW5dKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNj
cmVlbk1hbmFnZXIuaDoKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
Q29udGV4dDo6YW5pbWF0aW9uU3RhdGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VDb250ZXh0OjpzZXRBbmltYXRpb25TdGF0ZSk6CisgICAgICAgIChX
ZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUNvbnRleHQ6OmlzQW5pbWF0aW5nIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQ29u
dGV4dDo6c2V0SXNBbmltYXRpbmcpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvY29j
b2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxs
c2NyZWVuTWFuYWdlcjo6ZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQpOgorICAg
ICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpleGl0VmlkZW9GdWxsc2NyZWVu
Rm9yVmlkZW9FbGVtZW50KToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdl
cjo6ZGlkRW50ZXJGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVu
TWFuYWdlcjo6ZGlkQ2xlYW51cEZ1bGxzY3JlZW4pOgorCiAyMDE5LTA4LTA4ICBKZXIgTm9ibGUg
IDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIEltcGxlbWVudCB0aGUgUmVtb3RlIFBs
YXliYWNrIEFQSS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9GdWxsc2NyZWVuTWFu
YWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRnVsbHNjcmVlbk1hbmFnZXIuY3BwCmluZGV4
IDgzMGExY2IyNDU1NjE0NmM1MjJkZjc4MjAxNDk4NmYyZDM2OTNhYTMuLjJlYzU2YWZlNWQxNWQy
ZjY0NjViYWJlOGRiZTA4YzM0MTk5MjA1MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9GdWxsc2NyZWVuTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Z1bGxzY3Jl
ZW5NYW5hZ2VyLmNwcApAQCAtMTIwLDcgKzEyMCwxNiBAQCB2b2lkIEZ1bGxzY3JlZW5NYW5hZ2Vy
OjpyZXF1ZXN0RnVsbHNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCogZWxlbWVudCwgRnVsbHNjcmVl
bgogICAgICAgICB9CiAgICAgfQogCisgICAgbV9wZW5kaW5nRnVsbHNjcmVlbkVsZW1lbnQgPSBl
bGVtZW50OworCiAgICAgbV9mdWxsc2NyZWVuVGFza1F1ZXVlLmVucXVldWVUYXNrKFt0aGlzLCBl
bGVtZW50ID0gbWFrZVJlZlB0cihlbGVtZW50KSwgY2hlY2tUeXBlLCBoYXNLZXlib2FyZEFjY2Vz
cywgZmFpbGVkUHJlZmxpZ2h0c10gKCkgbXV0YWJsZSB7CisgICAgICAgIC8vIERvbid0IGFsbG93
IGZ1bGxzY3JlZW4gaWYgaXQgaGFzIGJlZW4gY2FuY2VsbGVkIG9yIGEgZGlmZmVyZW50IGZ1bGxz
Y3JlZW4gZWxlbWVudAorICAgICAgICAvLyBoYXMgcmVxdWVzdGVkIGZ1bGxzY3JlZW4uCisgICAg
ICAgIGlmIChtX3BlbmRpbmdGdWxsc2NyZWVuRWxlbWVudCAhPSBlbGVtZW50KSB7CisgICAgICAg
ICAgICBmYWlsZWRQcmVmbGlnaHRzKFdURk1vdmUoZWxlbWVudCkpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisKICAgICAgICAgLy8gRG9uJ3QgYWxsb3cgZnVsbHNjcmVlbiBpZiBk
b2N1bWVudCBpcyBoaWRkZW4uCiAgICAgICAgIGlmIChkb2N1bWVudCgpLmhpZGRlbigpKSB7CiAg
ICAgICAgICAgICBmYWlsZWRQcmVmbGlnaHRzKFdURk1vdmUoZWxlbWVudCkpOwpAQCAtMjA5LDkg
KzIxOCwxMyBAQCB2b2lkIEZ1bGxzY3JlZW5NYW5hZ2VyOjpyZXF1ZXN0RnVsbHNjcmVlbkZvckVs
ZW1lbnQoRWxlbWVudCogZWxlbWVudCwgRnVsbHNjcmVlbgogICAgICAgICAvLyA1LiBSZXR1cm4s
IGFuZCBydW4gdGhlIHJlbWFpbmluZyBzdGVwcyBhc3luY2hyb25vdXNseS4KICAgICAgICAgLy8g
Ni4gT3B0aW9uYWxseSwgcGVyZm9ybSBzb21lIGFuaW1hdGlvbi4KICAgICAgICAgbV9hcmVLZXlz
RW5hYmxlZEluRnVsbHNjcmVlbiA9IGhhc0tleWJvYXJkQWNjZXNzOwotICAgICAgICBtX2Z1bGxz
Y3JlZW5UYXNrUXVldWUuZW5xdWV1ZVRhc2soW3RoaXMsIGVsZW1lbnQgPSBXVEZNb3ZlKGVsZW1l
bnQpXSB7Ci0gICAgICAgICAgICBpZiAoYXV0byBwYWdlID0gdGhpcy0+cGFnZSgpKQotICAgICAg
ICAgICAgICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmVudGVyRnVsbFNjcmVlbkZvckVsZW1l
bnQoKmVsZW1lbnQuZ2V0KCkpOworICAgICAgICBtX2Z1bGxzY3JlZW5UYXNrUXVldWUuZW5xdWV1
ZVRhc2soW3RoaXMsIGVsZW1lbnQgPSBXVEZNb3ZlKGVsZW1lbnQpLCBmYWlsZWRQcmVmbGlnaHRz
ID0gV1RGTW92ZShmYWlsZWRQcmVmbGlnaHRzKV0gKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBh
dXRvIHBhZ2UgPSB0aGlzLT5wYWdlKCk7CisgICAgICAgICAgICBpZiAoIXBhZ2UgfHwgZG9jdW1l
bnQoKS5oaWRkZW4oKSB8fCBtX3BlbmRpbmdGdWxsc2NyZWVuRWxlbWVudCAhPSBlbGVtZW50IHx8
ICFlbGVtZW50LT5pc0Nvbm5lY3RlZCgpKSB7CisgICAgICAgICAgICAgICAgZmFpbGVkUHJlZmxp
Z2h0cyhlbGVtZW50KTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5lbnRlckZ1bGxTY3JlZW5Gb3JFbGVt
ZW50KCplbGVtZW50LmdldCgpKTsKICAgICAgICAgfSk7CiAKICAgICAgICAgLy8gNy4gT3B0aW9u
YWxseSwgZGlzcGxheSBhIG1lc3NhZ2UgaW5kaWNhdGluZyBob3cgdGhlIHVzZXIgY2FuIGV4aXQg
ZGlzcGxheWluZyB0aGUgY29udGV4dCBvYmplY3QgZnVsbHNjcmVlbi4KQEAgLTIyNSw4ICsyMzgs
MTQgQEAgdm9pZCBGdWxsc2NyZWVuTWFuYWdlcjo6Y2FuY2VsRnVsbHNjcmVlbigpCiAgICAgLy8g
IlRvIGZ1bGx5IGV4aXQgZnVsbHNjcmVlbiBhY3QgYXMgaWYgdGhlIGV4aXRGdWxsc2NyZWVuKCkg
bWV0aG9kIHdhcyBpbnZva2VkIG9uIHRoZSB0b3AtbGV2ZWwgYnJvd3NpbmcKICAgICAvLyBjb250
ZXh0J3MgZG9jdW1lbnQgYW5kIHN1YnNlcXVlbnRseSBlbXB0eSB0aGF0IGRvY3VtZW50J3MgZnVs
bHNjcmVlbiBlbGVtZW50IHN0YWNrLiIKICAgICBEb2N1bWVudCYgdG9wRG9jdW1lbnQgPSBkb2N1
bWVudCgpLnRvcERvY3VtZW50KCk7Ci0gICAgaWYgKCF0b3BEb2N1bWVudC5mdWxsc2NyZWVuTWFu
YWdlcigpLmZ1bGxzY3JlZW5FbGVtZW50KCkpCisgICAgaWYgKCF0b3BEb2N1bWVudC5mdWxsc2Ny
ZWVuTWFuYWdlcigpLmZ1bGxzY3JlZW5FbGVtZW50KCkpIHsKKyAgICAgICAgLy8gSWYgdGhlcmUg
aXMgYSBwZW5kaW5nIGZ1bGxzY3JlZW4gZWxlbWVudCBidXQgbm8gdG9wIGRvY3VtZW50IGZ1bGxz
Y3JlZW4gZWxlbWVudCwKKyAgICAgICAgLy8gdGhlcmUgaXMgYSBwZW5kaW5nIHRhc2sgaW4gZW50
ZXJGdWxsc2NyZWVuKCkuIENhdXNlIGl0IHRvIGNhbmNlbCBhbmQgZmlyZSBhbiBlcnJvcgorICAg
ICAgICAvLyBieSBjbGVhcmluZyB0aGUgcGVuZGluZyBmdWxsc2NyZWVuIGVsZW1lbnQuCisgICAg
ICAgIGlmIChtX3BlbmRpbmdGdWxsc2NyZWVuRWxlbWVudCkKKyAgICAgICAgICAgIG1fcGVuZGlu
Z0Z1bGxzY3JlZW5FbGVtZW50ID0gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuOworICAgIH0KIAog
ICAgIC8vIFRvIGFjaGlldmUgdGhhdCBhaW0sIHJlbW92ZSBhbGwgdGhlIGVsZW1lbnRzIGZyb20g
dGhlIHRvcCBkb2N1bWVudCdzIHN0YWNrIGV4Y2VwdCBmb3IgdGhlIGZpcnN0IGJlZm9yZQogICAg
IC8vIGNhbGxpbmcgd2Via2l0RXhpdEZ1bGxzY3JlZW4oKToKQEAgLTI0NSw4ICsyNjQsMTQgQEAg
dm9pZCBGdWxsc2NyZWVuTWFuYWdlcjo6ZXhpdEZ1bGxzY3JlZW4oKQogICAgIERvY3VtZW50KiBj
dXJyZW50RG9jID0gJmRvY3VtZW50KCk7CiAKICAgICAvLyAyLiBJZiBkb2MncyBmdWxsc2NyZWVu
IGVsZW1lbnQgc3RhY2sgaXMgZW1wdHksIHRlcm1pbmF0ZSB0aGVzZSBzdGVwcy4KLSAgICBpZiAo
bV9mdWxsc2NyZWVuRWxlbWVudFN0YWNrLmlzRW1wdHkoKSkKKyAgICBpZiAobV9mdWxsc2NyZWVu
RWxlbWVudFN0YWNrLmlzRW1wdHkoKSkgeworICAgICAgICAvLyBJZiB0aGVyZSBpcyBhIHBlbmRp
bmcgZnVsbHNjcmVlbiBlbGVtZW50IGJ1dCBhbiBlbXB0eSBmdWxsc2NyZWVuIGVsZW1lbnQgc3Rh
Y2ssCisgICAgICAgIC8vIHRoZXJlIGlzIGEgcGVuZGluZyB0YXNrIGluIHJlcXVlc3RGdWxsc2Ny
ZWVuRm9yRWxlbWVudCgpLiBDYXVzZSBpdCB0byBjYW5jZWwgYW5kIGZpcmUgYW4gZXJyb3IKKyAg
ICAgICAgLy8gYnkgY2xlYXJpbmcgdGhlIHBlbmRpbmcgZnVsbHNjcmVlbiBlbGVtZW50LgorICAg
ICAgICBpZiAobV9wZW5kaW5nRnVsbHNjcmVlbkVsZW1lbnQpCisgICAgICAgICAgICBtX3BlbmRp
bmdGdWxsc2NyZWVuRWxlbWVudCA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAK
ICAgICAvLyAzLiBMZXQgZGVzY2VuZGFudHMgYmUgYWxsIHRoZSBkb2MncyBkZXNjZW5kYW50IGJy
b3dzaW5nIGNvbnRleHQncyBkb2N1bWVudHMgd2l0aCBhIG5vbi1lbXB0eSBmdWxsc2NyZWVuCiAg
ICAgLy8gZWxlbWVudCBzdGFjayAoaWYgYW55KSwgb3JkZXJlZCBzbyB0aGF0IHRoZSBjaGlsZCBv
ZiB0aGUgZG9jIGlzIGxhc3QgYW5kIHRoZSBkb2N1bWVudCBmdXJ0aGVzdApAQCAtMjk4LDYgKzMy
MywxNCBAQCB2b2lkIEZ1bGxzY3JlZW5NYW5hZ2VyOjpleGl0RnVsbHNjcmVlbigpCiAgICAgICAg
IGlmICghcGFnZSkKICAgICAgICAgICAgIHJldHVybjsKIAorICAgICAgICAvLyBJZiB0aGVyZSBp
cyBhIHBlbmRpbmcgZnVsbHNjcmVlbiBlbGVtZW50IGJ1dCBubyBmdWxsc2NyZWVuIGVsZW1lbnQK
KyAgICAgICAgLy8gdGhlcmUgaXMgYSBwZW5kaW5nIHRhc2sgaW4gcmVxdWVzdEZ1bGxzY3JlZW5G
b3JFbGVtZW50KCkuIENhdXNlIGl0IHRvIGNhbmNlbCBhbmQgZmlyZSBhbiBlcnJvcgorICAgICAg
ICAvLyBieSBjbGVhcmluZyB0aGUgcGVuZGluZyBmdWxsc2NyZWVuIGVsZW1lbnQuCisgICAgICAg
IGlmICghZnVsbHNjcmVlbkVsZW1lbnQgJiYgbV9wZW5kaW5nRnVsbHNjcmVlbkVsZW1lbnQpIHsK
KyAgICAgICAgICAgIG1fcGVuZGluZ0Z1bGxzY3JlZW5FbGVtZW50ID0gbnVsbHB0cjsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCiAgICAgICAgIC8vIE9ubHkgZXhpdCBvdXQgb2Yg
ZnVsbCBzY3JlZW4gd2luZG93IG1vZGUgaWYgdGhlcmUgYXJlIG5vIHJlbWFpbmluZyBlbGVtZW50
cyBpbiB0aGUKICAgICAgICAgLy8gZnVsbCBzY3JlZW4gc3RhY2suCiAgICAgICAgIGlmICghbmV3
VG9wKSB7CkBAIC0zMzksMTIgKzM3MiwyMSBAQCB2b2lkIEZ1bGxzY3JlZW5NYW5hZ2VyOjp3aWxs
RW50ZXJGdWxsc2NyZWVuKEVsZW1lbnQmIGVsZW1lbnQpCiAgICAgaWYgKCFwYWdlKCkpCiAgICAg
ICAgIHJldHVybjsKIAorICAgIC8vIElmIHBlbmRpbmcgZnVsbHNjcmVlbiBlbGVtZW50IGlzIHVu
c2V0IG9yIGFub3RoZXIgZWxlbWVudCdzIHdhcyByZXF1ZXN0ZWQsCisgICAgLy8gaXNzdWUgYSBj
YW5jZWwgZnVsbHNjcmVlbiByZXF1ZXN0IHRvIHRoZSBjbGllbnQKKyAgICBpZiAobV9wZW5kaW5n
RnVsbHNjcmVlbkVsZW1lbnQgIT0gJmVsZW1lbnQpIHsKKyAgICAgICAgcGFnZSgpLT5jaHJvbWUo
KS5jbGllbnQoKS5leGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoJmVsZW1lbnQpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCiAgICAgQVNTRVJUKHBhZ2UoKS0+c2V0dGluZ3MoKS5mdWxsU2NyZWVu
RW5hYmxlZCgpKTsKIAogICAgIHVud3JhcEZ1bGxzY3JlZW5SZW5kZXJlcihtX2Z1bGxzY3JlZW5S
ZW5kZXJlci5nZXQoKSwgbV9mdWxsc2NyZWVuRWxlbWVudC5nZXQoKSk7CiAKICAgICBlbGVtZW50
LndpbGxCZWNvbWVGdWxsc2NyZWVuRWxlbWVudCgpOwogCisgICAgQVNTRVJUKCZlbGVtZW50ID09
IG1fcGVuZGluZ0Z1bGxzY3JlZW5FbGVtZW50KTsKKyAgICBtX3BlbmRpbmdGdWxsc2NyZWVuRWxl
bWVudCA9IG51bGxwdHI7CiAgICAgbV9mdWxsc2NyZWVuRWxlbWVudCA9ICZlbGVtZW50OwogCiAj
aWYgVVNFKE5BVElWRV9GVUxMU0NSRUVOX1ZJREVPKQpAQCAtMzg1LDMwICs0MjcsMzIgQEAgdm9p
ZCBGdWxsc2NyZWVuTWFuYWdlcjo6ZGlkRW50ZXJGdWxsc2NyZWVuKCkKIAogdm9pZCBGdWxsc2Ny
ZWVuTWFuYWdlcjo6d2lsbEV4aXRGdWxsc2NyZWVuKCkKIHsKLSAgICBpZiAoIW1fZnVsbHNjcmVl
bkVsZW1lbnQpCisgICAgYXV0byBmdWxsc2NyZWVuRWxlbWVudCA9IGZ1bGxzY3JlZW5PclBlbmRp
bmdFbGVtZW50KCk7CisgICAgaWYgKCFmdWxsc2NyZWVuRWxlbWVudCkKICAgICAgICAgcmV0dXJu
OwogCiAgICAgaWYgKCFoYXNMaXZpbmdSZW5kZXJUcmVlKCkgfHwgcGFnZUNhY2hlU3RhdGUoKSAh
PSBEb2N1bWVudDo6Tm90SW5QYWdlQ2FjaGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fZnVs
bHNjcmVlbkVsZW1lbnQtPndpbGxTdG9wQmVpbmdGdWxsc2NyZWVuRWxlbWVudCgpOworICAgIGZ1
bGxzY3JlZW5FbGVtZW50LT53aWxsU3RvcEJlaW5nRnVsbHNjcmVlbkVsZW1lbnQoKTsKIH0KIAog
dm9pZCBGdWxsc2NyZWVuTWFuYWdlcjo6ZGlkRXhpdEZ1bGxzY3JlZW4oKQogewotICAgIGlmICgh
bV9mdWxsc2NyZWVuRWxlbWVudCkKKyAgICBhdXRvIGZ1bGxzY3JlZW5FbGVtZW50ID0gZnVsbHNj
cmVlbk9yUGVuZGluZ0VsZW1lbnQoKTsKKyAgICBpZiAoIWZ1bGxzY3JlZW5FbGVtZW50KQogICAg
ICAgICByZXR1cm47CiAKICAgICBpZiAoIWhhc0xpdmluZ1JlbmRlclRyZWUoKSB8fCBwYWdlQ2Fj
aGVTdGF0ZSgpICE9IERvY3VtZW50OjpOb3RJblBhZ2VDYWNoZSkKICAgICAgICAgcmV0dXJuOwot
Ci0gICAgbV9mdWxsc2NyZWVuRWxlbWVudC0+c2V0Q29udGFpbnNGdWxsU2NyZWVuRWxlbWVudE9u
QW5jZXN0b3JzQ3Jvc3NpbmdGcmFtZUJvdW5kYXJpZXMoZmFsc2UpOworICAgIGZ1bGxzY3JlZW5F
bGVtZW50LT5zZXRDb250YWluc0Z1bGxTY3JlZW5FbGVtZW50T25BbmNlc3RvcnNDcm9zc2luZ0Zy
YW1lQm91bmRhcmllcyhmYWxzZSk7CiAKICAgICBtX2FyZUtleXNFbmFibGVkSW5GdWxsc2NyZWVu
ID0gZmFsc2U7CiAKICAgICB1bndyYXBGdWxsc2NyZWVuUmVuZGVyZXIobV9mdWxsc2NyZWVuUmVu
ZGVyZXIuZ2V0KCksIG1fZnVsbHNjcmVlbkVsZW1lbnQuZ2V0KCkpOwogCiAgICAgbV9mdWxsc2Ny
ZWVuRWxlbWVudCA9IG51bGxwdHI7CisgICAgbV9wZW5kaW5nRnVsbHNjcmVlbkVsZW1lbnQgPSBu
dWxscHRyOwogICAgIHNjaGVkdWxlRnVsbFN0eWxlUmVidWlsZCgpOwogCiAgICAgLy8gV2hlbiB3
ZWJraXRDYW5jZWxGdWxsc2NyZWVuIGlzIGNhbGxlZCwgd2UgY2FsbCB3ZWJraXRFeGl0RnVsbHNj
cmVlbiBvbiB0aGUgdG9wRG9jdW1lbnQoKS4gVGhhdApAQCAtNDgzLDI1ICs1MjcsMjIgQEAgdm9p
ZCBGdWxsc2NyZWVuTWFuYWdlcjo6ZGlzcGF0Y2hGdWxsc2NyZWVuQ2hhbmdlT3JFcnJvckV2ZW50
KERlcXVlPFJlZlB0cjxOb2RlPj4KICAgICB9CiB9CiAKLXZvaWQgRnVsbHNjcmVlbk1hbmFnZXI6
OmZ1bGxzY3JlZW5FbGVtZW50UmVtb3ZlZCgpCi17Ci0gICAgbV9mdWxsc2NyZWVuRWxlbWVudC0+
c2V0Q29udGFpbnNGdWxsU2NyZWVuRWxlbWVudE9uQW5jZXN0b3JzQ3Jvc3NpbmdGcmFtZUJvdW5k
YXJpZXMoZmFsc2UpOwotICAgIGNhbmNlbEZ1bGxzY3JlZW4oKTsKLX0KLQogdm9pZCBGdWxsc2Ny
ZWVuTWFuYWdlcjo6YWRqdXN0RnVsbHNjcmVlbkVsZW1lbnRPbk5vZGVSZW1vdmFsKE5vZGUmIG5v
ZGUsIERvY3VtZW50OjpOb2RlUmVtb3ZhbCBub2RlUmVtb3ZhbCkKIHsKLSAgICBpZiAoIW1fZnVs
bHNjcmVlbkVsZW1lbnQpCisgICAgYXV0byBmdWxsc2NyZWVuRWxlbWVudCA9IGZ1bGxzY3JlZW5P
clBlbmRpbmdFbGVtZW50KCk7CisgICAgaWYgKCFmdWxsc2NyZWVuRWxlbWVudCkKICAgICAgICAg
cmV0dXJuOwogCiAgICAgYm9vbCBlbGVtZW50SW5TdWJ0cmVlID0gZmFsc2U7CiAgICAgaWYgKG5v
ZGVSZW1vdmFsID09IERvY3VtZW50OjpOb2RlUmVtb3ZhbDo6Q2hpbGRyZW5PZk5vZGUpCi0gICAg
ICAgIGVsZW1lbnRJblN1YnRyZWUgPSBtX2Z1bGxzY3JlZW5FbGVtZW50LT5pc0Rlc2NlbmRhbnRP
Zihub2RlKTsKKyAgICAgICAgZWxlbWVudEluU3VidHJlZSA9IGZ1bGxzY3JlZW5FbGVtZW50LT5p
c0Rlc2NlbmRhbnRPZihub2RlKTsKICAgICBlbHNlCi0gICAgICAgIGVsZW1lbnRJblN1YnRyZWUg
PSAobV9mdWxsc2NyZWVuRWxlbWVudCA9PSAmbm9kZSkgfHwgbV9mdWxsc2NyZWVuRWxlbWVudC0+
aXNEZXNjZW5kYW50T2Yobm9kZSk7CisgICAgICAgIGVsZW1lbnRJblN1YnRyZWUgPSAoZnVsbHNj
cmVlbkVsZW1lbnQgPT0gJm5vZGUpIHx8IGZ1bGxzY3JlZW5FbGVtZW50LT5pc0Rlc2NlbmRhbnRP
Zihub2RlKTsKIAotICAgIGlmIChlbGVtZW50SW5TdWJ0cmVlKQotICAgICAgICBmdWxsc2NyZWVu
RWxlbWVudFJlbW92ZWQoKTsKKyAgICBpZiAoZWxlbWVudEluU3VidHJlZSkgeworICAgICAgICBm
dWxsc2NyZWVuRWxlbWVudC0+c2V0Q29udGFpbnNGdWxsU2NyZWVuRWxlbWVudE9uQW5jZXN0b3Jz
Q3Jvc3NpbmdGcmFtZUJvdW5kYXJpZXMoZmFsc2UpOworICAgICAgICBjYW5jZWxGdWxsc2NyZWVu
KCk7CisgICAgfQogfQogCiBib29sIEZ1bGxzY3JlZW5NYW5hZ2VyOjppc0FuaW1hdGluZ0Z1bGxz
Y3JlZW4oKSBjb25zdApAQCAtNTQxLDYgKzU4Miw3IEBAIHZvaWQgRnVsbHNjcmVlbk1hbmFnZXI6
OnNldEZ1bGxzY3JlZW5Db250cm9sc0hpZGRlbihib29sIGZsYWcpCiB2b2lkIEZ1bGxzY3JlZW5N
YW5hZ2VyOjpjbGVhcigpCiB7CiAgICAgbV9mdWxsc2NyZWVuRWxlbWVudCA9IG51bGxwdHI7Cisg
ICAgbV9wZW5kaW5nRnVsbHNjcmVlbkVsZW1lbnQgPSBudWxscHRyOwogICAgIG1fZnVsbHNjcmVl
bkVsZW1lbnRTdGFjay5jbGVhcigpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRnVsbHNjcmVlbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9GdWxsc2NyZWVuTWFu
YWdlci5oCmluZGV4IDIxYzk5YTQ1N2MzZDZiZThkZDc3MDQ5YmMxZDU3ZmIxMzY2YzE5ODQuLmUy
NzM0MThmYjVlOGI2ZTRhMjA0MWFkZWVlMzkyYTdjMGM3ODJhMjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9GdWxsc2NyZWVuTWFuYWdlci5oCkBAIC0xMDksNiArMTA5LDkgQEAgcHJvdGVjdGVkOgogcHJp
dmF0ZToKICAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKIAorICAgIFJlZlB0cjxFbGVtZW50PiBm
dWxsc2NyZWVuT3JQZW5kaW5nRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZnVsbHNjcmVlbkVs
ZW1lbnQgPyBtX2Z1bGxzY3JlZW5FbGVtZW50IDogbV9wZW5kaW5nRnVsbHNjcmVlbkVsZW1lbnQ7
IH0KKworICAgIFJlZlB0cjxFbGVtZW50PiBtX3BlbmRpbmdGdWxsc2NyZWVuRWxlbWVudDsKICAg
ICBSZWZQdHI8RWxlbWVudD4gbV9mdWxsc2NyZWVuRWxlbWVudDsKICAgICBWZWN0b3I8UmVmUHRy
PEVsZW1lbnQ+PiBtX2Z1bGxzY3JlZW5FbGVtZW50U3RhY2s7CiAgICAgV2Vha1B0cjxSZW5kZXJG
dWxsU2NyZWVuPiBtX2Z1bGxzY3JlZW5SZW5kZXJlciB7IG51bGxwdHIgfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9T
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdl
cklPUy5oCmluZGV4IDQ2ZTliYjE4YzljOTgwOTcxNTEzYTllNGM4YWI0Y2JmYTQxZmNmZDMuLjg2
MDMwYzY5ZWUyYzJmODk1MGRhNzU3YzNiMmMxYjVhYTc5YjY4ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJ
T1MuaApAQCAtNDcsNiArNDcsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGV4dGVybmFsT3V0cHV0
RGV2aWNlQXZhaWxhYmxlRGlkQ2hhbmdlKCk7CiAgICAgYm9vbCBoYXNXaXJlbGVzc1RhcmdldHNB
dmFpbGFibGUoKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldFNob3VsZFBsYXlUb1dpcmVsZXNzVGFy
Z2V0KGJvb2wpOworICAgIGJvb2wgc2hvdWxkUGxheVRvV2lyZWxlc3NUYXJnZXQoKSBjb25zdDsK
ICNpZiBIQVZFKENFTEVTVElBTCkKICAgICB2b2lkIGNhclBsYXlTZXJ2ZXJEaWVkKCk7CiAgICAg
dm9pZCB1cGRhdGVDYXJQbGF5SXNDb25uZWN0ZWQoT3B0aW9uYWw8Ym9vbD4mJik7CkBAIC03MSw2
ICs3Myw3IEBAIHByaXZhdGU6CiAjaWYgSEFWRShDRUxFU1RJQUwpCiAgICAgYm9vbCBtX2hhdmVQ
cmVzZW50ZWRBcHBsaWNhdGlvblBJRCB7IGZhbHNlIH07CiAjZW5kaWYKKyAgICBib29sIG1fc2hv
dWxkUGxheVRvV2lyZWxlc3NUYXJnZXQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxT
Y3JlZW5XaW5kb3dDb250cm9sbGVySU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcklPUy5tbQppbmRleCA2MjYz
MTY1YzUzN2M3YzhhYWJiOTNlOGI3YjRlNWZmMzUzMWI3NjFlLi45OWViMWQ1NDgxMjFjMzU1MTgy
ODc1MWRkN2JiZmExYTlmOWJiYzQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVySU9TLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlbldpbmRv
d0NvbnRyb2xsZXJJT1MubW0KQEAgLTQ0Nyw2ICs0NDcsNyBAQCBAaW1wbGVtZW50YXRpb24gV0tG
dWxsU2NyZWVuV2luZG93Q29udHJvbGxlciB7CiAgICAgUmV0YWluUHRyPE5TU3RyaW5nPiBfRVZP
cmdhbml6YXRpb25OYW1lOwogICAgIEJPT0wgX0VWT3JnYW5pemF0aW9uTmFtZUlzVmFsaWQ7CiAg
ICAgQk9PTCBfaW5JbnRlcmFjdGl2ZURpc21pc3M7CisgICAgQk9PTCBfZXhpdFJlcXVlc3RlZDsK
IAogICAgIFJldGFpblB0cjxpZD4gX25vdGlmaWNhdGlvbkxpc3RlbmVyOwogfQpAQCAtNTk3LDYg
KzU5OCwxMyBAQCAtICh2b2lkKWVudGVyRnVsbFNjcmVlbgogCiAgICAgICAgIF9yZXBhaW50Q2Fs
bGJhY2sgPSBXZWJLaXQ6OlZvaWRDYWxsYmFjazo6Y3JlYXRlKFtwcm90ZWN0ZWRTZWxmID0gcmV0
YWluUHRyKHNlbGYpLCBzZWxmXShXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3IpIHsKICAgICAg
ICAgICAgIF9yZXBhaW50Q2FsbGJhY2sgPSBudWxscHRyOworCisgICAgICAgICAgICBpZiAoX2V4
aXRSZXF1ZXN0ZWQpIHsKKyAgICAgICAgICAgICAgICBfZXhpdFJlcXVlc3RlZCA9IE5POworICAg
ICAgICAgICAgICAgIFtzZWxmIF9leGl0RnVsbHNjcmVlbkltbWVkaWF0ZWx5XTsKKyAgICAgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKICAgICAgICAgICAgIGlmIChhdXRvKiBt
YW5hZ2VyID0gW3Byb3RlY3RlZFNlbGYgX21hbmFnZXJdKSB7CiAgICAgICAgICAgICAgICAgbWFu
YWdlci0+d2lsbEVudGVyRnVsbFNjcmVlbigpOwogICAgICAgICAgICAgICAgIHJldHVybjsKQEAg
LTY0MCw2ICs2NDgsMTIgQEAgLSAodm9pZCliZWdhbkVudGVyRnVsbFNjcmVlbldpdGhJbml0aWFs
RnJhbWU6KENHUmVjdClpbml0aWFsRnJhbWUgZmluYWxGcmFtZTooQ0cKICAgICBbX3Jvb3RWaWV3
Q29udHJvbGxlciBwcmVzZW50Vmlld0NvbnRyb2xsZXI6X2Z1bGxzY3JlZW5WaWV3Q29udHJvbGxl
ci5nZXQoKSBhbmltYXRlZDpZRVMgY29tcGxldGlvbjpeewogICAgICAgICBfZnVsbFNjcmVlblN0
YXRlID0gV2ViS2l0OjpJbkZ1bGxTY3JlZW47CiAKKyAgICAgICAgaWYgKF9leGl0UmVxdWVzdGVk
KSB7CisgICAgICAgICAgICBfZXhpdFJlcXVlc3RlZCA9IE5POworICAgICAgICAgICAgW3NlbGYg
X2V4aXRGdWxsc2NyZWVuSW1tZWRpYXRlbHldOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisKICAgICAgICAgYXV0byogcGFnZSA9IFtzZWxmLl93ZWJWaWV3IF9wYWdlXTsKICAgICAg
ICAgYXV0byogbWFuYWdlciA9IHNlbGYuX21hbmFnZXI7CiAgICAgICAgIGlmIChwYWdlICYmIG1h
bmFnZXIpIHsKQEAgLTY1Nyw2ICs2NzEsMTEgQEAgLSAodm9pZCliZWdhbkVudGVyRnVsbFNjcmVl
bldpdGhJbml0aWFsRnJhbWU6KENHUmVjdClpbml0aWFsRnJhbWUgZmluYWxGcmFtZTooQ0cKIAog
LSAodm9pZClyZXF1ZXN0RXhpdEZ1bGxTY3JlZW4KIHsKKyAgICBpZiAoX2Z1bGxTY3JlZW5TdGF0
ZSAhPSBXZWJLaXQ6OkluRnVsbFNjcmVlbikgeworICAgICAgICBfZXhpdFJlcXVlc3RlZCA9IFlF
UzsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGlmIChhdXRvKiBtYW5hZ2VyID0gc2Vs
Zi5fbWFuYWdlcikgewogICAgICAgICBtYW5hZ2VyLT5yZXF1ZXN0RXhpdEZ1bGxTY3JlZW4oKTsK
ICAgICAgICAgcmV0dXJuOwpAQCAtNjY4LDggKzY4NywxMCBAQCAtICh2b2lkKXJlcXVlc3RFeGl0
RnVsbFNjcmVlbgogCiAtICh2b2lkKWV4aXRGdWxsU2NyZWVuCiB7Ci0gICAgaWYgKCFzZWxmLmlz
RnVsbFNjcmVlbikKKyAgICBpZiAoX2Z1bGxTY3JlZW5TdGF0ZSA8IFdlYktpdDo6SW5GdWxsU2Ny
ZWVuKSB7CisgICAgICAgIF9leGl0UmVxdWVzdGVkID0gWUVTOwogICAgICAgICByZXR1cm47Cisg
ICAgfQogICAgIF9mdWxsU2NyZWVuU3RhdGUgPSBXZWJLaXQ6OldhaXRpbmdUb0V4aXRGdWxsU2Ny
ZWVuOwogCiAgICAgaWYgKGF1dG8qIG1hbmFnZXIgPSBzZWxmLl9tYW5hZ2VyKSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdl
ci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXIuaAppbmRleCAxZmYxMTIwMWU4NzEzMTNlMTI3MjRlOWRlMDBmNDhkMzRjN2QxZDdkLi5jYmJi
YWNkMDRiM2M0NWNjM2I4ZWE4OTc0MDI2N2FmMDYwZWE4ZTZiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgKQEAg
LTczLDggKzczLDkgQEAgcHVibGljOgogICAgIExheWVySG9zdGluZ0NvbnRleHQqIGxheWVySG9z
dGluZ0NvbnRleHQoKSB7IHJldHVybiBtX2xheWVySG9zdGluZ0NvbnRleHQuZ2V0KCk7IH0KICAg
ICB2b2lkIHNldExheWVySG9zdGluZ0NvbnRleHQoc3RkOjp1bmlxdWVfcHRyPExheWVySG9zdGlu
Z0NvbnRleHQ+JiYpOwogCi0gICAgYm9vbCBpc0FuaW1hdGluZygpIGNvbnN0IHsgcmV0dXJuIG1f
aXNBbmltYXRpbmc7IH0KLSAgICB2b2lkIHNldElzQW5pbWF0aW5nKGJvb2wgZmxhZykgeyBtX2lz
QW5pbWF0aW5nID0gZmxhZzsgfQorICAgIGVudW0gY2xhc3MgQW5pbWF0aW9uVHlwZSB7IE5vbmUs
IEludG9GdWxsc2NyZWVuLCBGcm9tRnVsbHNjcmVlbiB9OworICAgIEFuaW1hdGlvblR5cGUgYW5p
bWF0aW9uU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2FuaW1hdGlvblR5cGU7IH0KKyAgICB2b2lk
IHNldEFuaW1hdGlvblN0YXRlKEFuaW1hdGlvblR5cGUgZmxhZykgeyBtX2FuaW1hdGlvblR5cGUg
PSBmbGFnOyB9CiAKICAgICBib29sIHRhcmdldElzRnVsbHNjcmVlbigpIGNvbnN0IHsgcmV0dXJu
IG1fdGFyZ2V0SXNGdWxsc2NyZWVuOyB9CiAgICAgdm9pZCBzZXRUYXJnZXRJc0Z1bGxzY3JlZW4o
Ym9vbCBmbGFnKSB7IG1fdGFyZ2V0SXNGdWxsc2NyZWVuID0gZmxhZzsgfQpAQCAtOTgsNyArOTks
NyBAQCBwcml2YXRlOgogICAgIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXIqIG1fbWFuYWdlcjsKICAg
ICB1aW50NjRfdCBtX2NvbnRleHRJZDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TGF5ZXJIb3N0aW5n
Q29udGV4dD4gbV9sYXllckhvc3RpbmdDb250ZXh0OwotICAgIGJvb2wgbV9pc0FuaW1hdGluZyB7
IGZhbHNlIH07CisgICAgQW5pbWF0aW9uVHlwZSBtX2FuaW1hdGlvblR5cGUgeyBmYWxzZSB9Owog
ICAgIGJvb2wgbV90YXJnZXRJc0Z1bGxzY3JlZW4geyBmYWxzZSB9OwogICAgIFdlYkNvcmU6OkhU
TUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSBtX2Z1bGxzY3JlZW5Nb2Rl
IHsgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9u
ZSB9OwogICAgIGJvb2wgbV9mdWxsc2NyZWVuU3RhbmRieSB7IGZhbHNlIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5t
bSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
Lm1tCmluZGV4IGY1MzZjM2RhYTExYWU3OTgzNTRmNzM0YzY4M2ZkOGZmZDg5ZjhjOTUuLjU4OTBm
NzI5NTE3Mjc1NDA0MTkzYWMyMzIzM2UxNjIzMzE1MjU4MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCkBA
IC0yNjAsOSArMjYwLDkgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjplbnRlclZpZGVv
RnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChIVE1MVmlkZW9FbGVtZW4KICAgICBpZiAob2xkTW9k
ZSA9PSBIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVOb25lICYmIG1v
ZGUgIT0gSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZSkKICAg
ICAgICAgbW9kZWwtPnNldFZpZGVvTGF5ZXJGcmFtZSh2aWRlb0xheWVyRnJhbWUpOwogCi0gICAg
aWYgKGludGVyZmFjZS0+aXNBbmltYXRpbmcoKSkKKyAgICBpZiAoaW50ZXJmYWNlLT5hbmltYXRp
b25TdGF0ZSgpICE9IFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUNvbnRleHQ6OkFuaW1hdGlvblR5
cGU6Ok5vbmUpCiAgICAgICAgIHJldHVybjsKLSAgICBpbnRlcmZhY2UtPnNldElzQW5pbWF0aW5n
KHRydWUpOworICAgIGludGVyZmFjZS0+c2V0QW5pbWF0aW9uU3RhdGUoVmlkZW9GdWxsc2NyZWVu
SW50ZXJmYWNlQ29udGV4dDo6QW5pbWF0aW9uVHlwZTo6SW50b0Z1bGxzY3JlZW4pOwogCiAgICAg
Ym9vbCBhbGxvd3NQaWN0dXJlSW5QaWN0dXJlID0gdmlkZW9FbGVtZW50LndlYmtpdFN1cHBvcnRz
UHJlc2VudGF0aW9uTW9kZShIVE1MVmlkZW9FbGVtZW50OjpWaWRlb1ByZXNlbnRhdGlvbk1vZGU6
OlBpY3R1cmVJblBpY3R1cmUpOwogCkBAIC0yOTYsMTAgKzI5Niw5IEBAIHZvaWQgVmlkZW9GdWxs
c2NyZWVuTWFuYWdlcjo6ZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3Jl
OjpIVE1MVmlkCiAKICAgICBpbnRlcmZhY2Uuc2V0VGFyZ2V0SXNGdWxsc2NyZWVuKGZhbHNlKTsK
IAotICAgIGlmIChpbnRlcmZhY2UuaXNBbmltYXRpbmcoKSkKKyAgICBpZiAoaW50ZXJmYWNlLmFu
aW1hdGlvblN0YXRlKCkgPT0gVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQ29udGV4dDo6QW5pbWF0
aW9uVHlwZTo6RnJvbUZ1bGxzY3JlZW4pCiAgICAgICAgIHJldHVybjsKLQotICAgIGludGVyZmFj
ZS5zZXRJc0FuaW1hdGluZyh0cnVlKTsKKyAgICBpbnRlcmZhY2Uuc2V0QW5pbWF0aW9uU3RhdGUo
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQ29udGV4dDo6QW5pbWF0aW9uVHlwZTo6RnJvbUZ1bGxz
Y3JlZW4pOwogICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5OjpFeGl0RnVsbHNjcmVlbihjb250ZXh0SWQsIGlubGluZVZpZGVvRnJhbWUodmlkZW9F
bGVtZW50KSkpOwogfQogCkBAIC00MzgsNyArNDM3LDcgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyOjpkaWRFbnRlckZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKQogCiAgICAgYXV0
byBbbW9kZWwsIGludGVyZmFjZV0gPSBlbnN1cmVNb2RlbEFuZEludGVyZmFjZShjb250ZXh0SWQp
OwogCi0gICAgaW50ZXJmYWNlLT5zZXRJc0FuaW1hdGluZyhmYWxzZSk7CisgICAgaW50ZXJmYWNl
LT5zZXRBbmltYXRpb25TdGF0ZShWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VDb250ZXh0OjpBbmlt
YXRpb25UeXBlOjpOb25lKTsKICAgICBpbnRlcmZhY2UtPnNldElzRnVsbHNjcmVlbihmYWxzZSk7
CiAKICAgICBSZWZQdHI8SFRNTFZpZGVvRWxlbWVudD4gdmlkZW9FbGVtZW50ID0gbW9kZWwtPnZp
ZGVvRWxlbWVudCgpOwpAQCAtNTAxLDcgKzUwMCw3IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFu
YWdlcjo6ZGlkQ2xlYW51cEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKQogICAgICAgICBp
bnRlcmZhY2UtPnNldExheWVySG9zdGluZ0NvbnRleHQobnVsbHB0cik7CiAgICAgfQogCi0gICAg
aW50ZXJmYWNlLT5zZXRJc0FuaW1hdGluZyhmYWxzZSk7CisgICAgaW50ZXJmYWNlLT5zZXRBbmlt
YXRpb25TdGF0ZShWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VDb250ZXh0OjpBbmltYXRpb25UeXBl
OjpOb25lKTsKICAgICBpbnRlcmZhY2UtPnNldElzRnVsbHNjcmVlbihmYWxzZSk7CiAgICAgSFRN
TE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUgPSBpbnRlcmZhY2Ut
PmZ1bGxzY3JlZW5Nb2RlKCk7CiAgICAgYm9vbCBzdGFuZGJ5ID0gaW50ZXJmYWNlLT5mdWxsc2Ny
ZWVuU3RhbmRieSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGNlZmVmNzllYWQ4MTQxYzU1ZjA3MGUzMTA1ZWY1NmIxOWEz
YzExMzkuLjc0OGQzMDAyN2NjODAzNzg3N2RlYzRlNTJhZDQzMDIxZjE2OGQwNzAgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNCBAQAorMjAxOS0wOC0yNiAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNv
bT4KKworICAgICAgICBSZW1vdmluZyBmdWxsc2NyZWVuIGVsZW1lbnQgaW4gckFGKCkgY2FsbGJh
Y2sgYWZ0ZXIgcmVxdWVzdEZ1bGxzY3JlZW4oKSBjYW4gbGVhdmUgZnVsbHNjcmVlbiBpbiBpbmNv
bnNpc3RlbnQgc3RhdGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDExMDEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU0MTY0NTg3PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZnVsbHNjcmVlbi9m
dWxsLXNjcmVlbi1yZXF1ZXN0LXJlbW92ZWQtd2l0aC1yYWYtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBmdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLXJlcXVlc3QtcmVtb3ZlZC13aXRoLXJh
Zi5odG1sOiBBZGRlZC4KKwogMjAxOS0wOC0wOCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxl
LmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgdGhlIFJlbW90ZSBQbGF5YmFjayBBUEkuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLXJlcXVlc3QtcmVtb3Zl
ZC13aXRoLXJhZi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2Ny
ZWVuLXJlcXVlc3QtcmVtb3ZlZC13aXRoLXJhZi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWEx
YzcxNDdhZTRkMjAwNjRmYTkwYjcxMjE4NWUzNmY3MWY2Y2NlNAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Z1bGxzY3JlZW4vZnVsbC1zY3JlZW4tcmVxdWVzdC1yZW1vdmVkLXdpdGgt
cmFmLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK1Rlc3RzIHRoYXQgZnVsbHNjcmVlbiBp
cyBub3QgZW50ZXJlZCBpZiB0aGUgZnVsbHNjcmVlbiBlbGVtZW50IGFuY2VzdG9yIGlzIHJlbW92
ZWQgd2l0aCByQUYgd2hpbGUgZW50ZXJpbmcgZnVsbHNjcmVlbi4KKworUmVtb3ZlZCBjaGlsZCBl
bGVtZW50LgorCitTVUNDRVNTCitFTkQgT0YgVEVTVAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLXJlcXVlc3QtcmVtb3ZlZC13aXRoLXJhZi5odG1sIGIv
TGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1yZXF1ZXN0LXJlbW92ZWQtd2l0aC1y
YWYuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi41NWU4ODkyOTdiMzg5Yjc5NjdlYmNiZWY2M2VmNDcwYzE0ODRj
NTRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVl
bi1yZXF1ZXN0LXJlbW92ZWQtd2l0aC1yYWYuaHRtbApAQCAtMCwwICsxLDQzIEBACisKKzxzY3Jp
cHQgc3JjPSJmdWxsLXNjcmVlbi10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisgICAgCisg
ICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCAoZXYpID0+IHsKKyAgICAgICAgdmFy
IHRhcmdldCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyN0YXJnZXQnKTsKKworICAgICAgICBk
b2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd3ZWJraXRmdWxsc2NyZWVuY2hhbmdlJywgKGV2KSA9
PiB7IAorICAgICAgICAgICAgaWYgKGRvY3VtZW50LndlYmtpdEN1cnJlbnRGdWxsU2NyZWVuRWxl
bWVudCAmJiBkb2N1bWVudC53ZWJraXRDdXJyZW50RnVsbFNjcmVlbkVsZW1lbnQub3duZXJEb2N1
bWVudCkKKyAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIkZBSUw6IGRvY3VtZW50LndlYmtp
dEN1cnJlbnRGdWxsU2NyZWVuRWxlbWVudC5vd25lckRvY3VtZW50IGlzIE5VTEwhIik7CisgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCJTVUNDRVNTIik7CisK
KyAgICAgICAgICAgIGRvY3VtZW50LndlYmtpdEV4aXRGdWxsc2NyZWVuKCk7CisgICAgICAgICAg
ICBlbmRUZXN0KCk7ICAgIAorICAgICAgICB9LCB7b25jZTogdHJ1ZX0pOworCisgICAgICAgIGRv
Y3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3dlYmtpdGZ1bGxzY3JlZW5lcnJvcicsIChldikgPT4g
eworICAgICAgICAgICAgY29uc29sZVdyaXRlKCJTVUNDRVNTIik7CisgICAgICAgICAgICBlbmRU
ZXN0KCk7ICAgIAorICAgICAgICB9LCB7b25jZTogdHJ1ZX0pOworCisgICAgICAgIGZ1bmN0aW9u
IHRlc3QoKQorICAgICAgICB7CisgICAgICAgICAgICB0YXJnZXQud2Via2l0UmVxdWVzdEZ1bGxT
Y3JlZW4oKTsKKyAgICAgICAgICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4g
eworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiUmVtb3ZlZCBjaGlsZCBlbGVtZW50LiIp
OworICAgICAgICAgICAgICAgIHRhcmdldC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRhcmdldCk7
CisgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCIiKTsKKyAgICAgICAgICAgIH0pOworICAg
ICAgICB9ICAKKworICAgICAgICBydW5XaXRoS2V5RG93bih0ZXN0KTsKKyAgICB9KTsKKworPC9z
Y3JpcHQ+CisKKzxwPlRlc3RzIHRoYXQgZnVsbHNjcmVlbiBpcyBub3QgZW50ZXJlZCBpZiB0aGUg
ZnVsbHNjcmVlbiBlbGVtZW50IGFuY2VzdG9yIGlzIHJlbW92ZWQgd2l0aCByQUYgd2hpbGUgZW50
ZXJpbmcgZnVsbHNjcmVlbi48L3A+CisKKzxkaXYgaWQ9YW5jZXN0b3I+CisgICAgPHNwYW4gaWQ9
dGFyZ2V0PkZ1bGxzY3JlZW4gdGFyZ2V0ITwvc3Bhbj4KKzwvZGl2PgorCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377251</attachid>
            <date>2019-08-26 10:05:01 -0700</date>
            <delta_ts>2019-08-27 09:49:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201101-20190826100501.patch</filename>
            <type>text/plain</type>
            <size>21751</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5MDE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzIwNmY2ZGFiMmYzYjJj
YTIzNjYyZmQzOGEzZTRmMzAxYmNiYjg1NS4uNzdkZTU1MzU4ZTgwY2QxMDk3YmM1ZTA2YWQzMDE3
Y2JjZTQ4OGQzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE5LTA4LTI2ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92aW5nIGZ1bGxzY3Jl
ZW4gZWxlbWVudCBpbiByQUYoKSBjYWxsYmFjayBhZnRlciByZXF1ZXN0RnVsbHNjcmVlbigpIGNh
biBsZWF2ZSBmdWxsc2NyZWVuIGluIGluY29uc2lzdGVudCBzdGF0ZS4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTEwMQorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNTQxNjQ1ODc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGVzdDogZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1yZXF1ZXN0LXJlbW92ZWQt
d2l0aC1yYWYuaHRtbAorCisgICAgICAgIEFkZCBhIG5ldyBzdGF0ZSB2YXJpYWJsZSwgbV9wZW5k
aW5nRnVsbHNjcmVlbkVsZW1lbnQsIHRvIHRyYWNrIHdoaWNoIGVsZW1lbnQgaXMgYWJvdXQgdG8K
KyAgICAgICAgYmVjb21lIHRoZSBmdWxsc2NyZWVuIGVsZW1lbnQsIHNvIHRoYXQgd2hlbiBlbGVt
ZW50cyBhcmUgcmVtb3ZlZCBvciBjYW5jZWxGdWxsc2NyZWVuKCkgaXMKKyAgICAgICAgY2FsbGVk
LCB0aGUgc3RhdGUgbWFjaGluZSBpbnNpZGUgdGhlIGZ1bGxzY3JlZW4gYWxnb3JpdGhtIGNhbiBj
YW5jZWwgZWZmZWN0aXZlbHkuCisKKyAgICAgICAgKiBkb20vRnVsbHNjcmVlbk1hbmFnZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RnVsbHNjcmVlbk1hbmFnZXI6OnJlcXVlc3RGdWxsc2NyZWVu
Rm9yRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpGdWxsc2NyZWVuTWFuYWdlcjo6Y2FuY2Vs
RnVsbHNjcmVlbik6CisgICAgICAgIChXZWJDb3JlOjpGdWxsc2NyZWVuTWFuYWdlcjo6ZXhpdEZ1
bGxzY3JlZW4pOgorICAgICAgICAoV2ViQ29yZTo6RnVsbHNjcmVlbk1hbmFnZXI6OndpbGxFbnRl
ckZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViQ29yZTo6RnVsbHNjcmVlbk1hbmFnZXI6OndpbGxF
eGl0RnVsbHNjcmVlbik6CisgICAgICAgIChXZWJDb3JlOjpGdWxsc2NyZWVuTWFuYWdlcjo6ZGlk
RXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViQ29yZTo6RnVsbHNjcmVlbk1hbmFnZXI6OmFk
anVzdEZ1bGxzY3JlZW5FbGVtZW50T25Ob2RlUmVtb3ZhbCk6CisgICAgICAgIChXZWJDb3JlOjpG
dWxsc2NyZWVuTWFuYWdlcjo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6RnVsbHNjcmVlbk1h
bmFnZXI6OmZ1bGxzY3JlZW5FbGVtZW50UmVtb3ZlZCk6IERlbGV0ZWQuCisgICAgICAgICogZG9t
L0Z1bGxzY3JlZW5NYW5hZ2VyLmg6CisKIDIwMTktMDgtMDggIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IHRoZSBSZW1vdGUgUGxheWJhY2sgQVBJ
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCAzOGJjNDhlMTAyMzU0NDhjN2FmODEyYTYwYzgxODYzNGYwZjAzY2ExLi41
ZGM0N2YyNWNhY2IwYTQ2OTgyYTUzYjMxNmVmYzE4ZWE3NGRlNWUxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDMwIEBACisyMDE5LTA4LTI2ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgor
CisgICAgICAgIFJlbW92aW5nIGZ1bGxzY3JlZW4gZWxlbWVudCBpbiByQUYoKSBjYWxsYmFjayBh
ZnRlciByZXF1ZXN0RnVsbHNjcmVlbigpIGNhbiBsZWF2ZSBmdWxsc2NyZWVuIGluIGluY29uc2lz
dGVudCBzdGF0ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwMTEwMQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTQxNjQ1ODc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIG1vcmUgc3RhdGUgdG8g
dHJhY2sgaW4gd2hpY2ggZGlyZWN0aW9uIHRoZSBhbmltYXRpb24gaXMgZmxvd2luZyB0byBhbGxv
dyBpbi1wcm9jZXNzCisgICAgICAgIGFuaW1hdGlvbnMgdG8gYmUgY2FuY2VsbGVkIG1vcmUgZ3Jh
Y2VmdWxseS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3Jl
ZW5XaW5kb3dDb250cm9sbGVySU9TLm1tOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dD
b250cm9sbGVyIGVudGVyRnVsbFNjcmVlbl0pOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5k
b3dDb250cm9sbGVyIGJlZ2FuRW50ZXJGdWxsU2NyZWVuV2l0aEluaXRpYWxGcmFtZTpmaW5hbEZy
YW1lOl0pOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIHJlcXVlc3RF
eGl0RnVsbFNjcmVlbl0pOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVy
IGV4aXRGdWxsU2NyZWVuXSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyLmg6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZUNvbnRleHQ6OmFuaW1hdGlvblN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlQ29udGV4dDo6c2V0QW5pbWF0aW9uU3RhdGUpOgorICAgICAgICAo
V2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VDb250ZXh0Ojppc0FuaW1hdGluZyBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUNv
bnRleHQ6OnNldElzQW5pbWF0aW5nKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL2Nv
Y29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW06CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXI6OmVudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KToKKyAg
ICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZXhpdFZpZGVvRnVsbHNjcmVl
bkZvclZpZGVvRWxlbWVudCk6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXI6OmRpZEVudGVyRnVsbHNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXI6OmRpZENsZWFudXBGdWxsc2NyZWVuKToKKwogMjAxOS0wOC0wOCAgSmVyIE5vYmxl
ICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgdGhlIFJlbW90ZSBQ
bGF5YmFjayBBUEkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRnVsbHNjcmVlbk1h
bmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcAppbmRl
eCA4MzBhMWNiMjQ1NTYxNDZjNTIyZGY3ODIwMTQ5ODZmMmQzNjkzYWEzLi4yZWM1NmFmZTVkMTVk
MmY2NDY1YmFiZThkYmUwOGMzNDE5OTIwNTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRnVsbHNjcmVlbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9GdWxsc2Ny
ZWVuTWFuYWdlci5jcHAKQEAgLTEyMCw3ICsxMjAsMTYgQEAgdm9pZCBGdWxsc2NyZWVuTWFuYWdl
cjo6cmVxdWVzdEZ1bGxzY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQsIEZ1bGxzY3Jl
ZW4KICAgICAgICAgfQogICAgIH0KIAorICAgIG1fcGVuZGluZ0Z1bGxzY3JlZW5FbGVtZW50ID0g
ZWxlbWVudDsKKwogICAgIG1fZnVsbHNjcmVlblRhc2tRdWV1ZS5lbnF1ZXVlVGFzayhbdGhpcywg
ZWxlbWVudCA9IG1ha2VSZWZQdHIoZWxlbWVudCksIGNoZWNrVHlwZSwgaGFzS2V5Ym9hcmRBY2Nl
c3MsIGZhaWxlZFByZWZsaWdodHNdICgpIG11dGFibGUgeworICAgICAgICAvLyBEb24ndCBhbGxv
dyBmdWxsc2NyZWVuIGlmIGl0IGhhcyBiZWVuIGNhbmNlbGxlZCBvciBhIGRpZmZlcmVudCBmdWxs
c2NyZWVuIGVsZW1lbnQKKyAgICAgICAgLy8gaGFzIHJlcXVlc3RlZCBmdWxsc2NyZWVuLgorICAg
ICAgICBpZiAobV9wZW5kaW5nRnVsbHNjcmVlbkVsZW1lbnQgIT0gZWxlbWVudCkgeworICAgICAg
ICAgICAgZmFpbGVkUHJlZmxpZ2h0cyhXVEZNb3ZlKGVsZW1lbnQpKTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorCiAgICAgICAgIC8vIERvbid0IGFsbG93IGZ1bGxzY3JlZW4gaWYg
ZG9jdW1lbnQgaXMgaGlkZGVuLgogICAgICAgICBpZiAoZG9jdW1lbnQoKS5oaWRkZW4oKSkgewog
ICAgICAgICAgICAgZmFpbGVkUHJlZmxpZ2h0cyhXVEZNb3ZlKGVsZW1lbnQpKTsKQEAgLTIwOSw5
ICsyMTgsMTMgQEAgdm9pZCBGdWxsc2NyZWVuTWFuYWdlcjo6cmVxdWVzdEZ1bGxzY3JlZW5Gb3JF
bGVtZW50KEVsZW1lbnQqIGVsZW1lbnQsIEZ1bGxzY3JlZW4KICAgICAgICAgLy8gNS4gUmV0dXJu
LCBhbmQgcnVuIHRoZSByZW1haW5pbmcgc3RlcHMgYXN5bmNocm9ub3VzbHkuCiAgICAgICAgIC8v
IDYuIE9wdGlvbmFsbHksIHBlcmZvcm0gc29tZSBhbmltYXRpb24uCiAgICAgICAgIG1fYXJlS2V5
c0VuYWJsZWRJbkZ1bGxzY3JlZW4gPSBoYXNLZXlib2FyZEFjY2VzczsKLSAgICAgICAgbV9mdWxs
c2NyZWVuVGFza1F1ZXVlLmVucXVldWVUYXNrKFt0aGlzLCBlbGVtZW50ID0gV1RGTW92ZShlbGVt
ZW50KV0gewotICAgICAgICAgICAgaWYgKGF1dG8gcGFnZSA9IHRoaXMtPnBhZ2UoKSkKLSAgICAg
ICAgICAgICAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5lbnRlckZ1bGxTY3JlZW5Gb3JFbGVt
ZW50KCplbGVtZW50LmdldCgpKTsKKyAgICAgICAgbV9mdWxsc2NyZWVuVGFza1F1ZXVlLmVucXVl
dWVUYXNrKFt0aGlzLCBlbGVtZW50ID0gV1RGTW92ZShlbGVtZW50KSwgZmFpbGVkUHJlZmxpZ2h0
cyA9IFdURk1vdmUoZmFpbGVkUHJlZmxpZ2h0cyldICgpIG11dGFibGUgeworICAgICAgICAgICAg
YXV0byBwYWdlID0gdGhpcy0+cGFnZSgpOworICAgICAgICAgICAgaWYgKCFwYWdlIHx8IGRvY3Vt
ZW50KCkuaGlkZGVuKCkgfHwgbV9wZW5kaW5nRnVsbHNjcmVlbkVsZW1lbnQgIT0gZWxlbWVudCB8
fCAhZWxlbWVudC0+aXNDb25uZWN0ZWQoKSkgeworICAgICAgICAgICAgICAgIGZhaWxlZFByZWZs
aWdodHMoZWxlbWVudCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQor
ICAgICAgICAgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuZW50ZXJGdWxsU2NyZWVuRm9yRWxl
bWVudCgqZWxlbWVudC5nZXQoKSk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIC8vIDcuIE9wdGlv
bmFsbHksIGRpc3BsYXkgYSBtZXNzYWdlIGluZGljYXRpbmcgaG93IHRoZSB1c2VyIGNhbiBleGl0
IGRpc3BsYXlpbmcgdGhlIGNvbnRleHQgb2JqZWN0IGZ1bGxzY3JlZW4uCkBAIC0yMjUsOCArMjM4
LDE0IEBAIHZvaWQgRnVsbHNjcmVlbk1hbmFnZXI6OmNhbmNlbEZ1bGxzY3JlZW4oKQogICAgIC8v
ICJUbyBmdWxseSBleGl0IGZ1bGxzY3JlZW4gYWN0IGFzIGlmIHRoZSBleGl0RnVsbHNjcmVlbigp
IG1ldGhvZCB3YXMgaW52b2tlZCBvbiB0aGUgdG9wLWxldmVsIGJyb3dzaW5nCiAgICAgLy8gY29u
dGV4dCdzIGRvY3VtZW50IGFuZCBzdWJzZXF1ZW50bHkgZW1wdHkgdGhhdCBkb2N1bWVudCdzIGZ1
bGxzY3JlZW4gZWxlbWVudCBzdGFjay4iCiAgICAgRG9jdW1lbnQmIHRvcERvY3VtZW50ID0gZG9j
dW1lbnQoKS50b3BEb2N1bWVudCgpOwotICAgIGlmICghdG9wRG9jdW1lbnQuZnVsbHNjcmVlbk1h
bmFnZXIoKS5mdWxsc2NyZWVuRWxlbWVudCgpKQorICAgIGlmICghdG9wRG9jdW1lbnQuZnVsbHNj
cmVlbk1hbmFnZXIoKS5mdWxsc2NyZWVuRWxlbWVudCgpKSB7CisgICAgICAgIC8vIElmIHRoZXJl
IGlzIGEgcGVuZGluZyBmdWxsc2NyZWVuIGVsZW1lbnQgYnV0IG5vIHRvcCBkb2N1bWVudCBmdWxs
c2NyZWVuIGVsZW1lbnQsCisgICAgICAgIC8vIHRoZXJlIGlzIGEgcGVuZGluZyB0YXNrIGluIGVu
dGVyRnVsbHNjcmVlbigpLiBDYXVzZSBpdCB0byBjYW5jZWwgYW5kIGZpcmUgYW4gZXJyb3IKKyAg
ICAgICAgLy8gYnkgY2xlYXJpbmcgdGhlIHBlbmRpbmcgZnVsbHNjcmVlbiBlbGVtZW50LgorICAg
ICAgICBpZiAobV9wZW5kaW5nRnVsbHNjcmVlbkVsZW1lbnQpCisgICAgICAgICAgICBtX3BlbmRp
bmdGdWxsc2NyZWVuRWxlbWVudCA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAK
ICAgICAvLyBUbyBhY2hpZXZlIHRoYXQgYWltLCByZW1vdmUgYWxsIHRoZSBlbGVtZW50cyBmcm9t
IHRoZSB0b3AgZG9jdW1lbnQncyBzdGFjayBleGNlcHQgZm9yIHRoZSBmaXJzdCBiZWZvcmUKICAg
ICAvLyBjYWxsaW5nIHdlYmtpdEV4aXRGdWxsc2NyZWVuKCk6CkBAIC0yNDUsOCArMjY0LDE0IEBA
IHZvaWQgRnVsbHNjcmVlbk1hbmFnZXI6OmV4aXRGdWxsc2NyZWVuKCkKICAgICBEb2N1bWVudCog
Y3VycmVudERvYyA9ICZkb2N1bWVudCgpOwogCiAgICAgLy8gMi4gSWYgZG9jJ3MgZnVsbHNjcmVl
biBlbGVtZW50IHN0YWNrIGlzIGVtcHR5LCB0ZXJtaW5hdGUgdGhlc2Ugc3RlcHMuCi0gICAgaWYg
KG1fZnVsbHNjcmVlbkVsZW1lbnRTdGFjay5pc0VtcHR5KCkpCisgICAgaWYgKG1fZnVsbHNjcmVl
bkVsZW1lbnRTdGFjay5pc0VtcHR5KCkpIHsKKyAgICAgICAgLy8gSWYgdGhlcmUgaXMgYSBwZW5k
aW5nIGZ1bGxzY3JlZW4gZWxlbWVudCBidXQgYW4gZW1wdHkgZnVsbHNjcmVlbiBlbGVtZW50IHN0
YWNrLAorICAgICAgICAvLyB0aGVyZSBpcyBhIHBlbmRpbmcgdGFzayBpbiByZXF1ZXN0RnVsbHNj
cmVlbkZvckVsZW1lbnQoKS4gQ2F1c2UgaXQgdG8gY2FuY2VsIGFuZCBmaXJlIGFuIGVycm9yCisg
ICAgICAgIC8vIGJ5IGNsZWFyaW5nIHRoZSBwZW5kaW5nIGZ1bGxzY3JlZW4gZWxlbWVudC4KKyAg
ICAgICAgaWYgKG1fcGVuZGluZ0Z1bGxzY3JlZW5FbGVtZW50KQorICAgICAgICAgICAgbV9wZW5k
aW5nRnVsbHNjcmVlbkVsZW1lbnQgPSBudWxscHRyOwogICAgICAgICByZXR1cm47CisgICAgfQog
CiAgICAgLy8gMy4gTGV0IGRlc2NlbmRhbnRzIGJlIGFsbCB0aGUgZG9jJ3MgZGVzY2VuZGFudCBi
cm93c2luZyBjb250ZXh0J3MgZG9jdW1lbnRzIHdpdGggYSBub24tZW1wdHkgZnVsbHNjcmVlbgog
ICAgIC8vIGVsZW1lbnQgc3RhY2sgKGlmIGFueSksIG9yZGVyZWQgc28gdGhhdCB0aGUgY2hpbGQg
b2YgdGhlIGRvYyBpcyBsYXN0IGFuZCB0aGUgZG9jdW1lbnQgZnVydGhlc3QKQEAgLTI5OCw2ICsz
MjMsMTQgQEAgdm9pZCBGdWxsc2NyZWVuTWFuYWdlcjo6ZXhpdEZ1bGxzY3JlZW4oKQogICAgICAg
ICBpZiAoIXBhZ2UpCiAgICAgICAgICAgICByZXR1cm47CiAKKyAgICAgICAgLy8gSWYgdGhlcmUg
aXMgYSBwZW5kaW5nIGZ1bGxzY3JlZW4gZWxlbWVudCBidXQgbm8gZnVsbHNjcmVlbiBlbGVtZW50
CisgICAgICAgIC8vIHRoZXJlIGlzIGEgcGVuZGluZyB0YXNrIGluIHJlcXVlc3RGdWxsc2NyZWVu
Rm9yRWxlbWVudCgpLiBDYXVzZSBpdCB0byBjYW5jZWwgYW5kIGZpcmUgYW4gZXJyb3IKKyAgICAg
ICAgLy8gYnkgY2xlYXJpbmcgdGhlIHBlbmRpbmcgZnVsbHNjcmVlbiBlbGVtZW50LgorICAgICAg
ICBpZiAoIWZ1bGxzY3JlZW5FbGVtZW50ICYmIG1fcGVuZGluZ0Z1bGxzY3JlZW5FbGVtZW50KSB7
CisgICAgICAgICAgICBtX3BlbmRpbmdGdWxsc2NyZWVuRWxlbWVudCA9IG51bGxwdHI7CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KKwogICAgICAgICAvLyBPbmx5IGV4aXQgb3V0IG9m
IGZ1bGwgc2NyZWVuIHdpbmRvdyBtb2RlIGlmIHRoZXJlIGFyZSBubyByZW1haW5pbmcgZWxlbWVu
dHMgaW4gdGhlCiAgICAgICAgIC8vIGZ1bGwgc2NyZWVuIHN0YWNrLgogICAgICAgICBpZiAoIW5l
d1RvcCkgewpAQCAtMzM5LDEyICszNzIsMjEgQEAgdm9pZCBGdWxsc2NyZWVuTWFuYWdlcjo6d2ls
bEVudGVyRnVsbHNjcmVlbihFbGVtZW50JiBlbGVtZW50KQogICAgIGlmICghcGFnZSgpKQogICAg
ICAgICByZXR1cm47CiAKKyAgICAvLyBJZiBwZW5kaW5nIGZ1bGxzY3JlZW4gZWxlbWVudCBpcyB1
bnNldCBvciBhbm90aGVyIGVsZW1lbnQncyB3YXMgcmVxdWVzdGVkLAorICAgIC8vIGlzc3VlIGEg
Y2FuY2VsIGZ1bGxzY3JlZW4gcmVxdWVzdCB0byB0aGUgY2xpZW50CisgICAgaWYgKG1fcGVuZGlu
Z0Z1bGxzY3JlZW5FbGVtZW50ICE9ICZlbGVtZW50KSB7CisgICAgICAgIHBhZ2UoKS0+Y2hyb21l
KCkuY2xpZW50KCkuZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KCZlbGVtZW50KTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKwogICAgIEFTU0VSVChwYWdlKCktPnNldHRpbmdzKCkuZnVsbFNjcmVl
bkVuYWJsZWQoKSk7CiAKICAgICB1bndyYXBGdWxsc2NyZWVuUmVuZGVyZXIobV9mdWxsc2NyZWVu
UmVuZGVyZXIuZ2V0KCksIG1fZnVsbHNjcmVlbkVsZW1lbnQuZ2V0KCkpOwogCiAgICAgZWxlbWVu
dC53aWxsQmVjb21lRnVsbHNjcmVlbkVsZW1lbnQoKTsKIAorICAgIEFTU0VSVCgmZWxlbWVudCA9
PSBtX3BlbmRpbmdGdWxsc2NyZWVuRWxlbWVudCk7CisgICAgbV9wZW5kaW5nRnVsbHNjcmVlbkVs
ZW1lbnQgPSBudWxscHRyOwogICAgIG1fZnVsbHNjcmVlbkVsZW1lbnQgPSAmZWxlbWVudDsKIAog
I2lmIFVTRShOQVRJVkVfRlVMTFNDUkVFTl9WSURFTykKQEAgLTM4NSwzMCArNDI3LDMyIEBAIHZv
aWQgRnVsbHNjcmVlbk1hbmFnZXI6OmRpZEVudGVyRnVsbHNjcmVlbigpCiAKIHZvaWQgRnVsbHNj
cmVlbk1hbmFnZXI6OndpbGxFeGl0RnVsbHNjcmVlbigpCiB7Ci0gICAgaWYgKCFtX2Z1bGxzY3Jl
ZW5FbGVtZW50KQorICAgIGF1dG8gZnVsbHNjcmVlbkVsZW1lbnQgPSBmdWxsc2NyZWVuT3JQZW5k
aW5nRWxlbWVudCgpOworICAgIGlmICghZnVsbHNjcmVlbkVsZW1lbnQpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIGlmICghaGFzTGl2aW5nUmVuZGVyVHJlZSgpIHx8IHBhZ2VDYWNoZVN0YXRlKCkg
IT0gRG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2Z1
bGxzY3JlZW5FbGVtZW50LT53aWxsU3RvcEJlaW5nRnVsbHNjcmVlbkVsZW1lbnQoKTsKKyAgICBm
dWxsc2NyZWVuRWxlbWVudC0+d2lsbFN0b3BCZWluZ0Z1bGxzY3JlZW5FbGVtZW50KCk7CiB9CiAK
IHZvaWQgRnVsbHNjcmVlbk1hbmFnZXI6OmRpZEV4aXRGdWxsc2NyZWVuKCkKIHsKLSAgICBpZiAo
IW1fZnVsbHNjcmVlbkVsZW1lbnQpCisgICAgYXV0byBmdWxsc2NyZWVuRWxlbWVudCA9IGZ1bGxz
Y3JlZW5PclBlbmRpbmdFbGVtZW50KCk7CisgICAgaWYgKCFmdWxsc2NyZWVuRWxlbWVudCkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgaWYgKCFoYXNMaXZpbmdSZW5kZXJUcmVlKCkgfHwgcGFnZUNh
Y2hlU3RhdGUoKSAhPSBEb2N1bWVudDo6Tm90SW5QYWdlQ2FjaGUpCiAgICAgICAgIHJldHVybjsK
LQotICAgIG1fZnVsbHNjcmVlbkVsZW1lbnQtPnNldENvbnRhaW5zRnVsbFNjcmVlbkVsZW1lbnRP
bkFuY2VzdG9yc0Nyb3NzaW5nRnJhbWVCb3VuZGFyaWVzKGZhbHNlKTsKKyAgICBmdWxsc2NyZWVu
RWxlbWVudC0+c2V0Q29udGFpbnNGdWxsU2NyZWVuRWxlbWVudE9uQW5jZXN0b3JzQ3Jvc3NpbmdG
cmFtZUJvdW5kYXJpZXMoZmFsc2UpOwogCiAgICAgbV9hcmVLZXlzRW5hYmxlZEluRnVsbHNjcmVl
biA9IGZhbHNlOwogCiAgICAgdW53cmFwRnVsbHNjcmVlblJlbmRlcmVyKG1fZnVsbHNjcmVlblJl
bmRlcmVyLmdldCgpLCBtX2Z1bGxzY3JlZW5FbGVtZW50LmdldCgpKTsKIAogICAgIG1fZnVsbHNj
cmVlbkVsZW1lbnQgPSBudWxscHRyOworICAgIG1fcGVuZGluZ0Z1bGxzY3JlZW5FbGVtZW50ID0g
bnVsbHB0cjsKICAgICBzY2hlZHVsZUZ1bGxTdHlsZVJlYnVpbGQoKTsKIAogICAgIC8vIFdoZW4g
d2Via2l0Q2FuY2VsRnVsbHNjcmVlbiBpcyBjYWxsZWQsIHdlIGNhbGwgd2Via2l0RXhpdEZ1bGxz
Y3JlZW4gb24gdGhlIHRvcERvY3VtZW50KCkuIFRoYXQKQEAgLTQ4MywyNSArNTI3LDIyIEBAIHZv
aWQgRnVsbHNjcmVlbk1hbmFnZXI6OmRpc3BhdGNoRnVsbHNjcmVlbkNoYW5nZU9yRXJyb3JFdmVu
dChEZXF1ZTxSZWZQdHI8Tm9kZT4+CiAgICAgfQogfQogCi12b2lkIEZ1bGxzY3JlZW5NYW5hZ2Vy
OjpmdWxsc2NyZWVuRWxlbWVudFJlbW92ZWQoKQotewotICAgIG1fZnVsbHNjcmVlbkVsZW1lbnQt
PnNldENvbnRhaW5zRnVsbFNjcmVlbkVsZW1lbnRPbkFuY2VzdG9yc0Nyb3NzaW5nRnJhbWVCb3Vu
ZGFyaWVzKGZhbHNlKTsKLSAgICBjYW5jZWxGdWxsc2NyZWVuKCk7Ci19Ci0KIHZvaWQgRnVsbHNj
cmVlbk1hbmFnZXI6OmFkanVzdEZ1bGxzY3JlZW5FbGVtZW50T25Ob2RlUmVtb3ZhbChOb2RlJiBu
b2RlLCBEb2N1bWVudDo6Tm9kZVJlbW92YWwgbm9kZVJlbW92YWwpCiB7Ci0gICAgaWYgKCFtX2Z1
bGxzY3JlZW5FbGVtZW50KQorICAgIGF1dG8gZnVsbHNjcmVlbkVsZW1lbnQgPSBmdWxsc2NyZWVu
T3JQZW5kaW5nRWxlbWVudCgpOworICAgIGlmICghZnVsbHNjcmVlbkVsZW1lbnQpCiAgICAgICAg
IHJldHVybjsKIAogICAgIGJvb2wgZWxlbWVudEluU3VidHJlZSA9IGZhbHNlOwogICAgIGlmIChu
b2RlUmVtb3ZhbCA9PSBEb2N1bWVudDo6Tm9kZVJlbW92YWw6OkNoaWxkcmVuT2ZOb2RlKQotICAg
ICAgICBlbGVtZW50SW5TdWJ0cmVlID0gbV9mdWxsc2NyZWVuRWxlbWVudC0+aXNEZXNjZW5kYW50
T2Yobm9kZSk7CisgICAgICAgIGVsZW1lbnRJblN1YnRyZWUgPSBmdWxsc2NyZWVuRWxlbWVudC0+
aXNEZXNjZW5kYW50T2Yobm9kZSk7CiAgICAgZWxzZQotICAgICAgICBlbGVtZW50SW5TdWJ0cmVl
ID0gKG1fZnVsbHNjcmVlbkVsZW1lbnQgPT0gJm5vZGUpIHx8IG1fZnVsbHNjcmVlbkVsZW1lbnQt
PmlzRGVzY2VuZGFudE9mKG5vZGUpOworICAgICAgICBlbGVtZW50SW5TdWJ0cmVlID0gKGZ1bGxz
Y3JlZW5FbGVtZW50ID09ICZub2RlKSB8fCBmdWxsc2NyZWVuRWxlbWVudC0+aXNEZXNjZW5kYW50
T2Yobm9kZSk7CiAKLSAgICBpZiAoZWxlbWVudEluU3VidHJlZSkKLSAgICAgICAgZnVsbHNjcmVl
bkVsZW1lbnRSZW1vdmVkKCk7CisgICAgaWYgKGVsZW1lbnRJblN1YnRyZWUpIHsKKyAgICAgICAg
ZnVsbHNjcmVlbkVsZW1lbnQtPnNldENvbnRhaW5zRnVsbFNjcmVlbkVsZW1lbnRPbkFuY2VzdG9y
c0Nyb3NzaW5nRnJhbWVCb3VuZGFyaWVzKGZhbHNlKTsKKyAgICAgICAgY2FuY2VsRnVsbHNjcmVl
bigpOworICAgIH0KIH0KIAogYm9vbCBGdWxsc2NyZWVuTWFuYWdlcjo6aXNBbmltYXRpbmdGdWxs
c2NyZWVuKCkgY29uc3QKQEAgLTU0MSw2ICs1ODIsNyBAQCB2b2lkIEZ1bGxzY3JlZW5NYW5hZ2Vy
OjpzZXRGdWxsc2NyZWVuQ29udHJvbHNIaWRkZW4oYm9vbCBmbGFnKQogdm9pZCBGdWxsc2NyZWVu
TWFuYWdlcjo6Y2xlYXIoKQogewogICAgIG1fZnVsbHNjcmVlbkVsZW1lbnQgPSBudWxscHRyOwor
ICAgIG1fcGVuZGluZ0Z1bGxzY3JlZW5FbGVtZW50ID0gbnVsbHB0cjsKICAgICBtX2Z1bGxzY3Jl
ZW5FbGVtZW50U3RhY2suY2xlYXIoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRnVsbHNjcmVlbk1h
bmFnZXIuaAppbmRleCAyMWM5OWE0NTdjM2Q2YmU4ZGQ3NzA0OWJjMWQ1N2ZiMTM2NmMxOTg0Li5l
MjczNDE4ZmI1ZThiNmU0YTIwNDFhZGVlZTM5MmE3YzBjNzgyYTIxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRnVsbHNjcmVlbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRnVsbHNjcmVlbk1hbmFnZXIuaApAQCAtMTA5LDYgKzEwOSw5IEBAIHByb3RlY3RlZDoKIHBy
aXZhdGU6CiAgICAgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7CiAKKyAgICBSZWZQdHI8RWxlbWVudD4g
ZnVsbHNjcmVlbk9yUGVuZGluZ0VsZW1lbnQoKSBjb25zdCB7IHJldHVybiBtX2Z1bGxzY3JlZW5F
bGVtZW50ID8gbV9mdWxsc2NyZWVuRWxlbWVudCA6IG1fcGVuZGluZ0Z1bGxzY3JlZW5FbGVtZW50
OyB9CisKKyAgICBSZWZQdHI8RWxlbWVudD4gbV9wZW5kaW5nRnVsbHNjcmVlbkVsZW1lbnQ7CiAg
ICAgUmVmUHRyPEVsZW1lbnQ+IG1fZnVsbHNjcmVlbkVsZW1lbnQ7CiAgICAgVmVjdG9yPFJlZlB0
cjxFbGVtZW50Pj4gbV9mdWxsc2NyZWVuRWxlbWVudFN0YWNrOwogICAgIFdlYWtQdHI8UmVuZGVy
RnVsbFNjcmVlbj4gbV9mdWxsc2NyZWVuUmVuZGVyZXIgeyBudWxscHRyIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5XaW5k
b3dDb250cm9sbGVySU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Z1bGxzY3Jl
ZW4vV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcklPUy5tbQppbmRleCA2MjYzMTY1YzUzN2M3
YzhhYWJiOTNlOGI3YjRlNWZmMzUzMWI3NjFlLi45OWViMWQ1NDgxMjFjMzU1MTgyODc1MWRkN2Ji
ZmExYTlmOWJiYzQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZnVs
bHNjcmVlbi9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVySU9TLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xs
ZXJJT1MubW0KQEAgLTQ0Nyw2ICs0NDcsNyBAQCBAaW1wbGVtZW50YXRpb24gV0tGdWxsU2NyZWVu
V2luZG93Q29udHJvbGxlciB7CiAgICAgUmV0YWluUHRyPE5TU3RyaW5nPiBfRVZPcmdhbml6YXRp
b25OYW1lOwogICAgIEJPT0wgX0VWT3JnYW5pemF0aW9uTmFtZUlzVmFsaWQ7CiAgICAgQk9PTCBf
aW5JbnRlcmFjdGl2ZURpc21pc3M7CisgICAgQk9PTCBfZXhpdFJlcXVlc3RlZDsKIAogICAgIFJl
dGFpblB0cjxpZD4gX25vdGlmaWNhdGlvbkxpc3RlbmVyOwogfQpAQCAtNTk3LDYgKzU5OCwxMyBA
QCAtICh2b2lkKWVudGVyRnVsbFNjcmVlbgogCiAgICAgICAgIF9yZXBhaW50Q2FsbGJhY2sgPSBX
ZWJLaXQ6OlZvaWRDYWxsYmFjazo6Y3JlYXRlKFtwcm90ZWN0ZWRTZWxmID0gcmV0YWluUHRyKHNl
bGYpLCBzZWxmXShXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3IpIHsKICAgICAgICAgICAgIF9y
ZXBhaW50Q2FsbGJhY2sgPSBudWxscHRyOworCisgICAgICAgICAgICBpZiAoX2V4aXRSZXF1ZXN0
ZWQpIHsKKyAgICAgICAgICAgICAgICBfZXhpdFJlcXVlc3RlZCA9IE5POworICAgICAgICAgICAg
ICAgIFtzZWxmIF9leGl0RnVsbHNjcmVlbkltbWVkaWF0ZWx5XTsKKyAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICB9CisKICAgICAgICAgICAgIGlmIChhdXRvKiBtYW5hZ2VyID0g
W3Byb3RlY3RlZFNlbGYgX21hbmFnZXJdKSB7CiAgICAgICAgICAgICAgICAgbWFuYWdlci0+d2ls
bEVudGVyRnVsbFNjcmVlbigpOwogICAgICAgICAgICAgICAgIHJldHVybjsKQEAgLTY0MCw2ICs2
NDgsMTIgQEAgLSAodm9pZCliZWdhbkVudGVyRnVsbFNjcmVlbldpdGhJbml0aWFsRnJhbWU6KENH
UmVjdClpbml0aWFsRnJhbWUgZmluYWxGcmFtZTooQ0cKICAgICBbX3Jvb3RWaWV3Q29udHJvbGxl
ciBwcmVzZW50Vmlld0NvbnRyb2xsZXI6X2Z1bGxzY3JlZW5WaWV3Q29udHJvbGxlci5nZXQoKSBh
bmltYXRlZDpZRVMgY29tcGxldGlvbjpeewogICAgICAgICBfZnVsbFNjcmVlblN0YXRlID0gV2Vi
S2l0OjpJbkZ1bGxTY3JlZW47CiAKKyAgICAgICAgaWYgKF9leGl0UmVxdWVzdGVkKSB7CisgICAg
ICAgICAgICBfZXhpdFJlcXVlc3RlZCA9IE5POworICAgICAgICAgICAgW3NlbGYgX2V4aXRGdWxs
c2NyZWVuSW1tZWRpYXRlbHldOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKICAg
ICAgICAgYXV0byogcGFnZSA9IFtzZWxmLl93ZWJWaWV3IF9wYWdlXTsKICAgICAgICAgYXV0byog
bWFuYWdlciA9IHNlbGYuX21hbmFnZXI7CiAgICAgICAgIGlmIChwYWdlICYmIG1hbmFnZXIpIHsK
QEAgLTY1Nyw2ICs2NzEsMTEgQEAgLSAodm9pZCliZWdhbkVudGVyRnVsbFNjcmVlbldpdGhJbml0
aWFsRnJhbWU6KENHUmVjdClpbml0aWFsRnJhbWUgZmluYWxGcmFtZTooQ0cKIAogLSAodm9pZCly
ZXF1ZXN0RXhpdEZ1bGxTY3JlZW4KIHsKKyAgICBpZiAoX2Z1bGxTY3JlZW5TdGF0ZSAhPSBXZWJL
aXQ6OkluRnVsbFNjcmVlbikgeworICAgICAgICBfZXhpdFJlcXVlc3RlZCA9IFlFUzsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKwogICAgIGlmIChhdXRvKiBtYW5hZ2VyID0gc2VsZi5fbWFuYWdl
cikgewogICAgICAgICBtYW5hZ2VyLT5yZXF1ZXN0RXhpdEZ1bGxTY3JlZW4oKTsKICAgICAgICAg
cmV0dXJuOwpAQCAtNjY4LDggKzY4NywxMCBAQCAtICh2b2lkKXJlcXVlc3RFeGl0RnVsbFNjcmVl
bgogCiAtICh2b2lkKWV4aXRGdWxsU2NyZWVuCiB7Ci0gICAgaWYgKCFzZWxmLmlzRnVsbFNjcmVl
bikKKyAgICBpZiAoX2Z1bGxTY3JlZW5TdGF0ZSA8IFdlYktpdDo6SW5GdWxsU2NyZWVuKSB7Cisg
ICAgICAgIF9leGl0UmVxdWVzdGVkID0gWUVTOwogICAgICAgICByZXR1cm47CisgICAgfQogICAg
IF9mdWxsU2NyZWVuU3RhdGUgPSBXZWJLaXQ6OldhaXRpbmdUb0V4aXRGdWxsU2NyZWVuOwogCiAg
ICAgaWYgKGF1dG8qIG1hbmFnZXIgPSBzZWxmLl9tYW5hZ2VyKSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaAppbmRl
eCAxZmYxMTIwMWU4NzEzMTNlMTI3MjRlOWRlMDBmNDhkMzRjN2QxZDdkLi5jYmJiYWNkMDRiM2M0
NWNjM2I4ZWE4OTc0MDI2N2FmMDYwZWE4ZTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgKQEAgLTczLDggKzcz
LDkgQEAgcHVibGljOgogICAgIExheWVySG9zdGluZ0NvbnRleHQqIGxheWVySG9zdGluZ0NvbnRl
eHQoKSB7IHJldHVybiBtX2xheWVySG9zdGluZ0NvbnRleHQuZ2V0KCk7IH0KICAgICB2b2lkIHNl
dExheWVySG9zdGluZ0NvbnRleHQoc3RkOjp1bmlxdWVfcHRyPExheWVySG9zdGluZ0NvbnRleHQ+
JiYpOwogCi0gICAgYm9vbCBpc0FuaW1hdGluZygpIGNvbnN0IHsgcmV0dXJuIG1faXNBbmltYXRp
bmc7IH0KLSAgICB2b2lkIHNldElzQW5pbWF0aW5nKGJvb2wgZmxhZykgeyBtX2lzQW5pbWF0aW5n
ID0gZmxhZzsgfQorICAgIGVudW0gY2xhc3MgQW5pbWF0aW9uVHlwZSB7IE5vbmUsIEludG9GdWxs
c2NyZWVuLCBGcm9tRnVsbHNjcmVlbiB9OworICAgIEFuaW1hdGlvblR5cGUgYW5pbWF0aW9uU3Rh
dGUoKSBjb25zdCB7IHJldHVybiBtX2FuaW1hdGlvblR5cGU7IH0KKyAgICB2b2lkIHNldEFuaW1h
dGlvblN0YXRlKEFuaW1hdGlvblR5cGUgZmxhZykgeyBtX2FuaW1hdGlvblR5cGUgPSBmbGFnOyB9
CiAKICAgICBib29sIHRhcmdldElzRnVsbHNjcmVlbigpIGNvbnN0IHsgcmV0dXJuIG1fdGFyZ2V0
SXNGdWxsc2NyZWVuOyB9CiAgICAgdm9pZCBzZXRUYXJnZXRJc0Z1bGxzY3JlZW4oYm9vbCBmbGFn
KSB7IG1fdGFyZ2V0SXNGdWxsc2NyZWVuID0gZmxhZzsgfQpAQCAtOTgsNyArOTksNyBAQCBwcml2
YXRlOgogICAgIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXIqIG1fbWFuYWdlcjsKICAgICB1aW50NjRf
dCBtX2NvbnRleHRJZDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TGF5ZXJIb3N0aW5nQ29udGV4dD4g
bV9sYXllckhvc3RpbmdDb250ZXh0OwotICAgIGJvb2wgbV9pc0FuaW1hdGluZyB7IGZhbHNlIH07
CisgICAgQW5pbWF0aW9uVHlwZSBtX2FuaW1hdGlvblR5cGUgeyBmYWxzZSB9OwogICAgIGJvb2wg
bV90YXJnZXRJc0Z1bGxzY3JlZW4geyBmYWxzZSB9OwogICAgIFdlYkNvcmU6OkhUTUxNZWRpYUVs
ZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSBtX2Z1bGxzY3JlZW5Nb2RlIHsgV2ViQ29y
ZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZSB9OwogICAg
IGJvb2wgbV9mdWxsc2NyZWVuU3RhbmRieSB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbSBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCmluZGV4
IGY1MzZjM2RhYTExYWU3OTgzNTRmNzM0YzY4M2ZkOGZmZDg5ZjhjOTUuLjU4OTBmNzI5NTE3Mjc1
NDA0MTkzYWMyMzIzM2UxNjIzMzE1MjU4MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCkBAIC0yNjAsOSAr
MjYwLDkgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjplbnRlclZpZGVvRnVsbHNjcmVl
bkZvclZpZGVvRWxlbWVudChIVE1MVmlkZW9FbGVtZW4KICAgICBpZiAob2xkTW9kZSA9PSBIVE1M
TWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVOb25lICYmIG1vZGUgIT0gSFRN
TE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZSkKICAgICAgICAgbW9k
ZWwtPnNldFZpZGVvTGF5ZXJGcmFtZSh2aWRlb0xheWVyRnJhbWUpOwogCi0gICAgaWYgKGludGVy
ZmFjZS0+aXNBbmltYXRpbmcoKSkKKyAgICBpZiAoaW50ZXJmYWNlLT5hbmltYXRpb25TdGF0ZSgp
ICE9IFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUNvbnRleHQ6OkFuaW1hdGlvblR5cGU6Ok5vbmUp
CiAgICAgICAgIHJldHVybjsKLSAgICBpbnRlcmZhY2UtPnNldElzQW5pbWF0aW5nKHRydWUpOwor
ICAgIGludGVyZmFjZS0+c2V0QW5pbWF0aW9uU3RhdGUoVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
Q29udGV4dDo6QW5pbWF0aW9uVHlwZTo6SW50b0Z1bGxzY3JlZW4pOwogCiAgICAgYm9vbCBhbGxv
d3NQaWN0dXJlSW5QaWN0dXJlID0gdmlkZW9FbGVtZW50LndlYmtpdFN1cHBvcnRzUHJlc2VudGF0
aW9uTW9kZShIVE1MVmlkZW9FbGVtZW50OjpWaWRlb1ByZXNlbnRhdGlvbk1vZGU6OlBpY3R1cmVJ
blBpY3R1cmUpOwogCkBAIC0yOTYsMTAgKzI5Niw5IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFu
YWdlcjo6ZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlk
CiAKICAgICBpbnRlcmZhY2Uuc2V0VGFyZ2V0SXNGdWxsc2NyZWVuKGZhbHNlKTsKIAotICAgIGlm
IChpbnRlcmZhY2UuaXNBbmltYXRpbmcoKSkKKyAgICBpZiAoaW50ZXJmYWNlLmFuaW1hdGlvblN0
YXRlKCkgPT0gVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQ29udGV4dDo6QW5pbWF0aW9uVHlwZTo6
RnJvbUZ1bGxzY3JlZW4pCiAgICAgICAgIHJldHVybjsKLQotICAgIGludGVyZmFjZS5zZXRJc0Fu
aW1hdGluZyh0cnVlKTsKKyAgICBpbnRlcmZhY2Uuc2V0QW5pbWF0aW9uU3RhdGUoVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlQ29udGV4dDo6QW5pbWF0aW9uVHlwZTo6RnJvbUZ1bGxzY3JlZW4pOwog
ICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpF
eGl0RnVsbHNjcmVlbihjb250ZXh0SWQsIGlubGluZVZpZGVvRnJhbWUodmlkZW9FbGVtZW50KSkp
OwogfQogCkBAIC00MzgsNyArNDM3LDcgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpk
aWRFbnRlckZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKQogCiAgICAgYXV0byBbbW9kZWws
IGludGVyZmFjZV0gPSBlbnN1cmVNb2RlbEFuZEludGVyZmFjZShjb250ZXh0SWQpOwogCi0gICAg
aW50ZXJmYWNlLT5zZXRJc0FuaW1hdGluZyhmYWxzZSk7CisgICAgaW50ZXJmYWNlLT5zZXRBbmlt
YXRpb25TdGF0ZShWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VDb250ZXh0OjpBbmltYXRpb25UeXBl
OjpOb25lKTsKICAgICBpbnRlcmZhY2UtPnNldElzRnVsbHNjcmVlbihmYWxzZSk7CiAKICAgICBS
ZWZQdHI8SFRNTFZpZGVvRWxlbWVudD4gdmlkZW9FbGVtZW50ID0gbW9kZWwtPnZpZGVvRWxlbWVu
dCgpOwpAQCAtNTAxLDcgKzUwMCw3IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZGlk
Q2xlYW51cEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKQogICAgICAgICBpbnRlcmZhY2Ut
PnNldExheWVySG9zdGluZ0NvbnRleHQobnVsbHB0cik7CiAgICAgfQogCi0gICAgaW50ZXJmYWNl
LT5zZXRJc0FuaW1hdGluZyhmYWxzZSk7CisgICAgaW50ZXJmYWNlLT5zZXRBbmltYXRpb25TdGF0
ZShWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VDb250ZXh0OjpBbmltYXRpb25UeXBlOjpOb25lKTsK
ICAgICBpbnRlcmZhY2UtPnNldElzRnVsbHNjcmVlbihmYWxzZSk7CiAgICAgSFRNTE1lZGlhRWxl
bWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUgPSBpbnRlcmZhY2UtPmZ1bGxzY3Jl
ZW5Nb2RlKCk7CiAgICAgYm9vbCBzdGFuZGJ5ID0gaW50ZXJmYWNlLT5mdWxsc2NyZWVuU3RhbmRi
eSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IGNlZmVmNzllYWQ4MTQxYzU1ZjA3MGUzMTA1ZWY1NmIxOWEzYzExMzkuLjc0
OGQzMDAyN2NjODAzNzg3N2RlYzRlNTJhZDQzMDIxZjE2OGQwNzAgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NCBAQAorMjAxOS0wOC0yNiAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAg
ICAgICBSZW1vdmluZyBmdWxsc2NyZWVuIGVsZW1lbnQgaW4gckFGKCkgY2FsbGJhY2sgYWZ0ZXIg
cmVxdWVzdEZ1bGxzY3JlZW4oKSBjYW4gbGVhdmUgZnVsbHNjcmVlbiBpbiBpbmNvbnNpc3RlbnQg
c3RhdGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDExMDEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU0MTY0NTg3PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZnVsbHNjcmVlbi9mdWxsLXNjcmVl
bi1yZXF1ZXN0LXJlbW92ZWQtd2l0aC1yYWYtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBmdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLXJlcXVlc3QtcmVtb3ZlZC13aXRoLXJhZi5odG1sOiBB
ZGRlZC4KKwogMjAxOS0wOC0wOCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAog
ICAgICAgICBJbXBsZW1lbnQgdGhlIFJlbW90ZSBQbGF5YmFjayBBUEkuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLXJlcXVlc3QtcmVtb3ZlZC13aXRoLXJh
Zi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLXJlcXVl
c3QtcmVtb3ZlZC13aXRoLXJhZi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWExYzcxNDdhZTRk
MjAwNjRmYTkwYjcxMjE4NWUzNmY3MWY2Y2NlNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Z1bGxzY3JlZW4vZnVsbC1zY3JlZW4tcmVxdWVzdC1yZW1vdmVkLXdpdGgtcmFmLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK1Rlc3RzIHRoYXQgZnVsbHNjcmVlbiBpcyBub3QgZW50
ZXJlZCBpZiB0aGUgZnVsbHNjcmVlbiBlbGVtZW50IGFuY2VzdG9yIGlzIHJlbW92ZWQgd2l0aCBy
QUYgd2hpbGUgZW50ZXJpbmcgZnVsbHNjcmVlbi4KKworUmVtb3ZlZCBjaGlsZCBlbGVtZW50Lgor
CitTVUNDRVNTCitFTkQgT0YgVEVTVAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mdWxsc2Ny
ZWVuL2Z1bGwtc2NyZWVuLXJlcXVlc3QtcmVtb3ZlZC13aXRoLXJhZi5odG1sIGIvTGF5b3V0VGVz
dHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1yZXF1ZXN0LXJlbW92ZWQtd2l0aC1yYWYuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41NWU4ODkyOTdiMzg5Yjc5NjdlYmNiZWY2M2VmNDcwYzE0ODRjNTRiCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1yZXF1ZXN0
LXJlbW92ZWQtd2l0aC1yYWYuaHRtbApAQCAtMCwwICsxLDQzIEBACisKKzxzY3JpcHQgc3JjPSJm
dWxsLXNjcmVlbi10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisgICAgCisgICAgd2luZG93
LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCAoZXYpID0+IHsKKyAgICAgICAgdmFyIHRhcmdldCA9
IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyN0YXJnZXQnKTsKKworICAgICAgICBkb2N1bWVudC5h
ZGRFdmVudExpc3RlbmVyKCd3ZWJraXRmdWxsc2NyZWVuY2hhbmdlJywgKGV2KSA9PiB7IAorICAg
ICAgICAgICAgaWYgKGRvY3VtZW50LndlYmtpdEN1cnJlbnRGdWxsU2NyZWVuRWxlbWVudCAmJiBk
b2N1bWVudC53ZWJraXRDdXJyZW50RnVsbFNjcmVlbkVsZW1lbnQub3duZXJEb2N1bWVudCkKKyAg
ICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIkZBSUw6IGRvY3VtZW50LndlYmtpdEN1cnJlbnRG
dWxsU2NyZWVuRWxlbWVudC5vd25lckRvY3VtZW50IGlzIE5VTEwhIik7CisgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCJTVUNDRVNTIik7CisKKyAgICAgICAg
ICAgIGRvY3VtZW50LndlYmtpdEV4aXRGdWxsc2NyZWVuKCk7CisgICAgICAgICAgICBlbmRUZXN0
KCk7ICAgIAorICAgICAgICB9LCB7b25jZTogdHJ1ZX0pOworCisgICAgICAgIGRvY3VtZW50LmFk
ZEV2ZW50TGlzdGVuZXIoJ3dlYmtpdGZ1bGxzY3JlZW5lcnJvcicsIChldikgPT4geworICAgICAg
ICAgICAgY29uc29sZVdyaXRlKCJTVUNDRVNTIik7CisgICAgICAgICAgICBlbmRUZXN0KCk7ICAg
IAorICAgICAgICB9LCB7b25jZTogdHJ1ZX0pOworCisgICAgICAgIGZ1bmN0aW9uIHRlc3QoKQor
ICAgICAgICB7CisgICAgICAgICAgICB0YXJnZXQud2Via2l0UmVxdWVzdEZ1bGxTY3JlZW4oKTsK
KyAgICAgICAgICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4geworICAgICAg
ICAgICAgICAgIGNvbnNvbGVXcml0ZSgiUmVtb3ZlZCBjaGlsZCBlbGVtZW50LiIpOworICAgICAg
ICAgICAgICAgIHRhcmdldC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRhcmdldCk7CisgICAgICAg
ICAgICAgICAgY29uc29sZVdyaXRlKCIiKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9ICAK
KworICAgICAgICBydW5XaXRoS2V5RG93bih0ZXN0KTsKKyAgICB9KTsKKworPC9zY3JpcHQ+CisK
KzxwPlRlc3RzIHRoYXQgZnVsbHNjcmVlbiBpcyBub3QgZW50ZXJlZCBpZiB0aGUgZnVsbHNjcmVl
biBlbGVtZW50IGFuY2VzdG9yIGlzIHJlbW92ZWQgd2l0aCByQUYgd2hpbGUgZW50ZXJpbmcgZnVs
bHNjcmVlbi48L3A+CisKKzxkaXYgaWQ9YW5jZXN0b3I+CisgICAgPHNwYW4gaWQ9dGFyZ2V0PkZ1
bGxzY3JlZW4gdGFyZ2V0ITwvc3Bhbj4KKzwvZGl2PgorCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>