<?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>240802</bug_id>
          
          <creation_ts>2022-05-23 08:32:50 -0700</creation_ts>
          <short_desc>REGRESSION(r289580): Canvas: putImageData sometimes draws nothing</short_desc>
          <delta_ts>2022-06-09 00:46:21 -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>Canvas</component>
          <version>Safari Technology Preview</version>
          <rep_platform>Mac (Apple Silicon)</rep_platform>
          <op_sys>macOS 12</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=236305</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>
          
          <blocked>236305</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Bart Corremans">bart.corremans</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>dino</cc>
    
    <cc>rackler</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1871180</commentid>
    <comment_count>0</comment_count>
      <attachid>459678</attachid>
    <who name="Bart Corremans">bart.corremans</who>
    <bug_when>2022-05-23 08:32:50 -0700</bug_when>
    <thetext>Created attachment 459678
Render loop demonstrating the issue

putImageData will occasionally fail to draw anything.

I first noticed this in Technology Preview in an RDP client implementation, where we use putImageData to update the parts of the screen that have been changed. Scrolling, moving and resizing windows would result in distorted rendering.

Calling getImageData after a putImageData call will circumvent the issue.

I have created what I hope is a decent reproduction of the same issue, as the exact scenario is hard to replicate.

In this simple reproduction, a render loop copies a source canvas 20x20 pixels at a time using requestAnimationFrame.

Allow the loop to run and notice how sometimes, empty squares are left in the target canvas. This occurs less frequently when the browser tab is idle and focused, and more frequently if it is in the background, or if the user interacts with the page (e.g. by selecting text).

You can use the &quot;Enable fix&quot; checkbox to toggle the getImageData workaround.

This does not occur on the released 15.5 version.

I am aware of https://bugs.webkit.org/show_bug.cgi?id=229986, but I cannot reproduce it with the included workaround, so I am unsure if that issue has already been fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1871181</commentid>
    <comment_count>1</comment_count>
    <who name="Bart Corremans">bart.corremans</who>
    <bug_when>2022-05-23 08:34:29 -0700</bug_when>
    <thetext>Note that if opening the index.html file directly, you will need to enable Develop -&gt; Disable Local File Restrictions.

If you are serving using a web server, this is not needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1871403</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-05-23 19:48:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/93801722&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1871642</commentid>
    <comment_count>3</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-05-24 20:12:30 -0700</bug_when>
    <thetext>Thanks for reporting this bug.

In the attached test case, putImageData() is the only drawing operation which is applied to the target context. r289580 made PutPixelBuffer an ImageBuffer message not a display list item. So the flag RemoteDisplayListRecorderProxy::m_needsFlush is never set to true because no StreamConnection message is sent from the target canvas. So RemoteImageBufferProxy::flushDrawingContextAsync() never returns true because m_remoteDisplayList::needsFlush() always returns false. This makes flushDrawingContext() return always without waiting. When drawing the target canvas to the page we copy its backend to a NativeImage in WebProcess. This happens while the last PutPixelBuffer message is being processed by GPUProcess.

Calling getImageData() as a workaround forces GPUProcess to flush all the drawing items before returning the image data. After receiving the data from GPUProcess, if we copy the backend to NativeImage in WebProcess, we will be getting valid pixels.

Another workaround is to draw dummy anything to the target canvas. This will fix the drawing issue.

Instead of using:

    target.getImageData(0, 0, canvasWidth, canvasHeight);

We can use something like this:

    target.fillRect(0, 0, 0, 0);

This will set RemoteDisplayListRecorderProxy::m_needsFlush() to true. So when copyNativeImage() is called, flushDrawingContext() will wait until a DidFlush message is received.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1871655</commentid>
    <comment_count>4</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-05-24 21:24:40 -0700</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/1003</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1871673</commentid>
    <comment_count>5</comment_count>
      <attachid>459745</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-05-24 23:47:00 -0700</bug_when>
    <thetext>Created attachment 459745
simpler test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1871883</commentid>
    <comment_count>6</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-05-25 16:20:31 -0700</bug_when>
    <thetext>*** Bug 240735 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1872260</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-05-26 20:56:05 -0700</bug_when>
    <thetext>Committed r294928 (251039@main): &lt;https://commits.webkit.org/251039@main&gt;

Reviewed commits have been landed. Closing PR #1003 and removing active labels.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1872284</commentid>
    <comment_count>8</comment_count>
    <who name="Bart Corremans">bart.corremans</who>
    <bug_when>2022-05-27 02:16:23 -0700</bug_when>
    <thetext>Thank you for the explanation and quick resolution! I can confirm my original issue is also fixed using the latest WebKit build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1872461</commentid>
    <comment_count>9</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-05-27 16:14:55 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1872462</commentid>
    <comment_count>10</comment_count>
      <attachid>459823</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-05-27 16:14:57 -0700</bug_when>
    <thetext>Created attachment 459823
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1873260</commentid>
    <comment_count>11</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-06-01 03:03:50 -0700</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/1206</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1873631</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-06-02 11:14:34 -0700</bug_when>
    <thetext>Committed r295132 (251223@main): &lt;https://commits.webkit.org/251223@main&gt;

Reviewed commits have been landed. Closing PR #1206 and removing active labels.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>459678</attachid>
            <date>2022-05-23 08:32:50 -0700</date>
            <delta_ts>2022-05-23 08:32:50 -0700</delta_ts>
            <desc>Render loop demonstrating the issue</desc>
            <filename>canvas-repro.zip</filename>
            <type>application/zip</type>
            <size>34082</size>
            <attacher name="Bart Corremans">bart.corremans</attacher>
            
              <data encoding="base64">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
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>459745</attachid>
            <date>2022-05-24 23:47:00 -0700</date>
            <delta_ts>2022-05-24 23:47:00 -0700</delta_ts>
            <desc>simpler test case</desc>
            <filename>canvas-put-image-data-no-draw.html</filename>
            <type>text/html</type>
            <size>1500</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">PGJvZHk+CiAgICA8Y2FudmFzIGlkPSJ0YXJnZXQiIHdpZHRoPSI0MDAiIGhlaWdodD0iNDAwIj48
L2NhbnZhcz4KICAgIDxzY3JpcHQ+CiAgICAgICAgY29uc3QgdGFyZ2V0Q2FudmFzID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpOwogICAgICAgIGNvbnN0IHRhcmdldCA9IHRhcmdl
dENhbnZhcy5nZXRDb250ZXh0KCcyZCcpOwoKICAgICAgICBjb25zdCBjYW52YXNXaWR0aCA9IHRh
cmdldENhbnZhcy53aWR0aDsKICAgICAgICBjb25zdCBjYW52YXNIZWlnaHQgPSB0YXJnZXRDYW52
YXMuaGVpZ2h0CgogICAgICAgIHZhciBzb3VyY2VDYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdjYW52YXMnKTsKICAgICAgICBzb3VyY2VDYW52YXMud2lkdGggID0gY2FudmFzV2lkdGg7
CiAgICAgICAgc291cmNlQ2FudmFzLmhlaWdodCA9IGNhbnZhc0hlaWdodDsKCiAgICAgICAgY29u
c3Qgc291cmNlID0gc291cmNlQ2FudmFzLmdldENvbnRleHQoJzJkJyk7CgogICAgICAgIGxldCBw
cm9ncmVzc1ggPSAwOwogICAgICAgIGxldCBwcm9ncmVzc1kgPSAwOwogICAgICAgIGNvbnN0IHBh
aW50U2l6ZSA9IDEwMDsKCiAgICAgICAgc291cmNlLmZpbGxTdHlsZSA9ICdncmVlbic7CiAgICAg
ICAgc291cmNlLmZpbGxSZWN0KDAsIDAsIGNhbnZhc1dpZHRoLCBjYW52YXNIZWlnaHQpOwogICAg
ICAgIGNvbnN0IGltYWdlZGF0YSA9IHNvdXJjZS5nZXRJbWFnZURhdGEoMCwgMCwgY2FudmFzV2lk
dGgsIGNhbnZhc0hlaWdodCk7CgogICAgICAgIGZ1bmN0aW9uIGRyYXdMb29wKCkgewogICAgICAg
ICAgICB0YXJnZXQucHV0SW1hZ2VEYXRhKGltYWdlZGF0YSwgMCwgMCwgcHJvZ3Jlc3NYLCBwcm9n
cmVzc1ksIHBhaW50U2l6ZSwgcGFpbnRTaXplKTsKCiAgICAgICAgICAgIHByb2dyZXNzWCArPSBw
YWludFNpemU7CgogICAgICAgICAgICBpZiAocHJvZ3Jlc3NYICsgcGFpbnRTaXplIDw9IGNhbnZh
c1dpZHRoKSB7CiAgICAgICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZHJhd0xvb3Ap
OwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAo
cHJvZ3Jlc3NZICsgcGFpbnRTaXplID4gY2FudmFzSGVpZ2h0KSB7CiAgICAgICAgICAgICAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpCiAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3Rp
ZnlEb25lKCk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgIHByb2dyZXNzWCA9IDA7CiAgICAgICAgICAgIHByb2dyZXNzWSArPSBwYWludFNpemU7CiAg
ICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShkcmF3TG9vcCk7CiAgICAgICAgfQoKICAg
ICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCiAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOwoKICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZHJhd0xvb3ApOwogICAg
PC9zY3JpcHQ+CjwvYm9keT4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459823</attachid>
            <date>2022-05-27 16:14:57 -0700</date>
            <delta_ts>2022-05-28 04:17:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-240802-20220527161456.patch</filename>
            <type>text/plain</type>
            <size>16334</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">RnJvbSAyYTJhYzAxMTZiOTJiOWRjNjI5OGZhNjZlMTkxMjFlMWVkNzE0YTQxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBTYWlkIEFib3UtSGFsbGF3YSA8c2FpZEBhcHBsZS5jb20+CkRh
dGU6IEZyaSwgMjcgTWF5IDIwMjIgMDM6NTU6MTUgKzAwMDAKU3ViamVjdDogW1BBVENIXSBSRUdS
RVNTSU9OKHIyODk1ODApOiBDYW52YXM6IHB1dEltYWdlRGF0YSBzb21ldGltZXMgZHJhd3MKIG5v
dGhpbmcgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0MDgwMiByZGFy
Oi8vOTM4MDE3MjIKClJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KClJlbW90ZUltYWdlQnVmZmVy
UHJveHk6OnB1dFBpeGVsQnVmZmVyKCkgbmVlZHMgdG8gc2V0TmVlZHNGbHVzaCh0cnVlKSBvbmNl
IHRoZQpyZXF1ZXN0IHRvIGNoYW5nZSB0aGUgYmFja2VuZCBpcyBzZW50IHRvIEdQVVByb2Nlc3Mu
IElmIFdlYlByb2Nlc3MgaGFzIGFjY2VzcyB0bwp0aGUgSW1hZ2VCdWZmZXJCYWNrZW5kLCBmbHVz
aERyYXdpbmdDb250ZXh0KCkgd2lsbCBiZSBjYWxsZWQgZnJvbSBjb3B5TmF0aXZlSW1hZ2UoKS4K
VGhpcyBjYWxsIGhhcyB0byB3YWl0IGFsbCBEaXNwbGF5TGlzdCBpdGVtcyBhbmQgUHV0UGl4ZWxC
dWZmZXIgbWVzc2FnZXMgdG8gYmUKZmx1c2hlZCB0byB0aGUgYmFja2VuZCBiZWZvcmUgY29weU5h
dGl2ZUltYWdlKCkgY29waWVzIHRoZSBwaXhlbHMgb2YgdGhlIGJhY2tlbmQKdG8gYSBOYXRpdmVJ
bWFnZS4KCiogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaDoK
KFdlYkNvcmU6OkltYWdlQnVmZmVyOjpzZXROZWVkc0ZsdXNoKToKKiBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5oOgoo
V2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnNlbmQpOgooV2ViS2l0OjpS
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OnJlc2V0TmVlZHNGbHVzaCk6IERlbGV0ZWQu
CihXZWJLaXQ6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6bmVlZHNGbHVzaCBjb25z
dCk6IERlbGV0ZWQuCigpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oOgooV2ViS2l0OjpSZW1vdGVJbWFnZUJ1
ZmZlclByb3h5Ojp+UmVtb3RlSW1hZ2VCdWZmZXJQcm94eSk6CgpDYW5vbmljYWwgbGluazogaHR0
cHM6Ly9jb21taXRzLndlYmtpdC5vcmcvMjUxMDM5QG1haW4KZ2l0LXN2bi1pZDogaHR0cHM6Ly9z
dm4ud2Via2l0Lm9yZy9yZXBvc2l0b3J5L3dlYmtpdC90cnVua0AyOTQ5MjggMjY4ZjQ1Y2MtY2Qw
OS0wNDEwLWFiM2MtZDUyNjkxYjRkYmZjCi0tLQogLi4uL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2VCdWZmZXIuaCAgIHwgIDEgKwogLi4uL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJl
Y29yZGVyLmNwcCAgICAgIHwgIDMgKysKIC4uLi9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNv
cmRlci5oICAgICAgICB8ICAyICsKIC4uLi9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHku
Y3BwICAgICAgICB8ICA3ICsrKwogLi4uL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3Jk
ZXJQcm94eS5oIHwgIDggKy0tCiAuLi4vR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJv
eHkuaCAgICAgfCAxNSArKysrLS0KIC4uLmFudmFzLXB1dC1pbWFnZS1kYXRhLW5vLWRyYXctZXhw
ZWN0ZWQuaHRtbCB8IDEzICsrKysrCiAuLi4vY2FudmFzL2NhbnZhcy1wdXQtaW1hZ2UtZGF0YS1u
by1kcmF3Lmh0bWwgfCA1MCArKysrKysrKysrKysrKysrKysrCiBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMgfCAyMSAtLS0tLS0tLQogOSBmaWxlcyBjaGFuZ2Vk
LCA4OSBpbnNlcnRpb25zKCspLCAzMSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBM
YXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtcHV0LWltYWdlLWRhdGEtbm8tZHJhdy1leHBl
Y3RlZC5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2Fu
dmFzLXB1dC1pbWFnZS1kYXRhLW5vLWRyYXcuaHRtbAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCmluZGV4IGZiNGQyNjVmN2QzNS4uZDRhYzM4MzBm
NjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1
ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVy
LmgKQEAgLTEwMCw2ICsxMDAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGZsdXNoRHJh
d2luZ0NvbnRleHQoKSB7IH0KICAgICB2aXJ0dWFsIGJvb2wgZmx1c2hEcmF3aW5nQ29udGV4dEFz
eW5jKCkgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkRmx1c2goR3JhcGhp
Y3NDb250ZXh0Rmx1c2hJZGVudGlmaWVyKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNG
bHVzaChib29sKSB7IH0KIAogICAgIHZpcnR1YWwgRmxvYXRTaXplIGxvZ2ljYWxTaXplKCkgY29u
c3QgPSAwOwogICAgIHZpcnR1YWwgSW50U2l6ZSB0cnVuY2F0ZWRMb2dpY2FsU2l6ZSgpIGNvbnN0
ID0gMDsgLy8gVGhpcyB0cnVuY2F0ZXMgdGhlIHJlYWwgc2l6ZS4gWW91IHByb2JhYmx5IHNob3Vs
ZCBiZSBjYWxsaW5nIGxvZ2ljYWxTaXplKCkgaW5zdGVhZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdFJlY29yZGVyLmNwcAppbmRleCBlZWQ0NDRlZTNhMjkuLjI3OTliMDk0MTRkZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0UmVjb3JkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcApAQCAtOTUsNiArOTUsOSBA
QCB2b2lkIFJlY29yZGVyOjphcHBlbmRTdGF0ZUNoYW5nZUl0ZW1JZk5lY2Vzc2FyeSgpCiAgICAg
Ly8gRklYTUU6IFRoaXMgaXMgY3VycmVudGx5IGludm9rZWQgaW4gYW4gYWQtaG9jIG1hbm5lciB3
aGVuIHJlY29yZGluZyBkcmF3aW5nIGl0ZW1zLiBXZSBzaG91bGQgY29uc2lkZXIgZWl0aGVyCiAg
ICAgLy8gc3BsaXR0aW5nIEdyYXBoaWNzQ29udGV4dCBzdGF0ZSBjaGFuZ2VzIGludG8gaW5kaXZp
ZHVhbCBkaXNwbGF5IGxpc3QgaXRlbXMsIG9yIHJlZmFjdG9yaW5nIHRoZSBjb2RlIHN1Y2ggdGhh
dAogICAgIC8vIHRoaXMgbWV0aG9kIGlzIGF1dG9tYXRpY2FsbHkgaW52b2tlZCB3aGVuIHJlY29y
ZGluZyBhIGRyYXdpbmcgaXRlbS4KKworICAgIHNldE5lZWRzRmx1c2godHJ1ZSk7CisKICAgICBh
dXRvJiBzdGF0ZSA9IGN1cnJlbnRTdGF0ZSgpLnN0YXRlOwogICAgIGlmICghc3RhdGUuY2hhbmdl
cygpKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIu
aAppbmRleCA2MDA0ODMzNmE3ZjguLmZiNzk2OTBjYjVjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3RSZWNvcmRlci5oCkBAIC0xMzUsNiArMTM1LDggQEAgcHJvdGVjdGVkOgogICAgIHZp
cnR1YWwgYm9vbCByZWNvcmRSZXNvdXJjZVVzZShjb25zdCBTb3VyY2VJbWFnZSYpID0gMDsKICAg
ICB2aXJ0dWFsIGJvb2wgcmVjb3JkUmVzb3VyY2VVc2UoRm9udCYpID0gMDsKIAorICAgIHZpcnR1
YWwgdm9pZCBzZXROZWVkc0ZsdXNoKGJvb2wpIHsgfQorCiAgICAgc3RydWN0IENvbnRleHRTdGF0
ZSB7CiAgICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlIHN0YXRlOwogICAgICAgICBzdGQ6Om9w
dGlvbmFsPEdyYXBoaWNzQ29udGV4dFN0YXRlPiBsYXN0RHJhd2luZ1N0YXRlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlz
dFJlY29yZGVyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuY3BwCmluZGV4IDE0ZjM2ODY3MmI4Yy4u
NTZlNGJhMDM0NzRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJv
eHkuY3BwCkBAIC00MzQsNiArNDM0LDEzIEBAIGJvb2wgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRl
clByb3h5OjpyZWNvcmRSZXNvdXJjZVVzZShGb250JiBmb250KQogICAgIHJldHVybiB0cnVlOwog
fQogCit2b2lkIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6c2V0TmVlZHNGbHVzaChi
b29sIG5lZWRzRmx1c2gpCit7CisgICAgaWYgKFVOTElLRUxZKCFtX2ltYWdlQnVmZmVyKSkKKyAg
ICAgICAgcmV0dXJuOworICAgIG1faW1hZ2VCdWZmZXItPnNldE5lZWRzRmx1c2gobmVlZHNGbHVz
aCk7Cit9CisKIHZvaWQgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpmbHVzaENvbnRl
eHQoR3JhcGhpY3NDb250ZXh0Rmx1c2hJZGVudGlmaWVyIGlkZW50aWZpZXIpCiB7CiAgICAgc2Vu
ZChNZXNzYWdlczo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6Rmx1c2hDb250ZXh0KGlkZW50
aWZpZXIpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5oCmluZGV4
IDU3ZTQ3NDIxMGNkNy4uNWY5NWNjMDI5MTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxp
c3RSZWNvcmRlclByb3h5LmgKQEAgLTQyLDkgKzQyLDYgQEAgcHVibGljOgogICAgIFJlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXJQcm94eShXZWJDb3JlOjpJbWFnZUJ1ZmZlciYsIFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eSYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgaW5pdGlhbENsaXAs
IGNvbnN0IFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybSYpOwogICAgIH5SZW1vdGVEaXNwbGF5TGlz
dFJlY29yZGVyUHJveHkoKSA9IGRlZmF1bHQ7CiAKLSAgICB2b2lkIHJlc2V0TmVlZHNGbHVzaCgp
IHsgbV9uZWVkc0ZsdXNoID0gZmFsc2U7IH0KLSAgICBib29sIG5lZWRzRmx1c2goKSBjb25zdCB7
IHJldHVybiBtX25lZWRzRmx1c2g7IH0KLQogICAgIHZvaWQgY29udmVydFRvTHVtaW5hbmNlTWFz
aygpIGZpbmFsOwogICAgIHZvaWQgdHJhbnNmb3JtVG9Db2xvclNwYWNlKGNvbnN0IFdlYkNvcmU6
OkRlc3RpbmF0aW9uQ29sb3JTcGFjZSYpIGZpbmFsOwogICAgIHZvaWQgZmx1c2hDb250ZXh0KFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dEZsdXNoSWRlbnRpZmllcik7CkBAIC01NSw4ICs1Miw2IEBA
IHByaXZhdGU6CiAgICAgewogICAgICAgICBpZiAoVU5MSUtFTFkoIW1fcmVuZGVyaW5nQmFja2Vu
ZCkpCiAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgbV9uZWVkc0ZsdXNoID0gdHJ1ZTsK
ICAgICAgICAgbV9yZW5kZXJpbmdCYWNrZW5kLT5zZW5kVG9TdHJlYW0oV1RGTW92ZShtZXNzYWdl
KSwgbV9kZXN0aW5hdGlvbkJ1ZmZlcklkZW50aWZpZXIpOwogICAgIH0KIApAQCAtMTM3LDYgKzEz
Miw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCByZWNvcmRSZXNvdXJjZVVzZShjb25zdCBXZWJDb3Jl
OjpTb3VyY2VJbWFnZSYpIGZpbmFsOwogICAgIGJvb2wgcmVjb3JkUmVzb3VyY2VVc2UoV2ViQ29y
ZTo6Rm9udCYpIGZpbmFsOwogCisgICAgdm9pZCBzZXROZWVkc0ZsdXNoKGJvb2wpIGZpbmFsOwor
CiAgICAgUmVmUHRyPFdlYkNvcmU6OkltYWdlQnVmZmVyPiBjcmVhdGVJbWFnZUJ1ZmZlcihjb25z
dCBXZWJDb3JlOjpGbG9hdFNpemUmLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIGNvbnN0IFdlYkNv
cmU6OkRlc3RpbmF0aW9uQ29sb3JTcGFjZSYsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UmVuZGVy
aW5nTW9kZT4sIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UmVuZGVyaW5nTWV0aG9kPikgY29uc3Qg
ZmluYWw7CiAgICAgUmVmUHRyPFdlYkNvcmU6OkltYWdlQnVmZmVyPiBjcmVhdGVBbGlnbmVkSW1h
Z2VCdWZmZXIoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiwgY29uc3QgV2ViQ29yZTo6RGVzdGlu
YXRpb25Db2xvclNwYWNlJiwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpSZW5kZXJpbmdNZXRob2Q+
KSBjb25zdCBmaW5hbDsKICAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2VCdWZmZXI+IGNyZWF0ZUFs
aWduZWRJbWFnZUJ1ZmZlcihjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3Jl
OjpEZXN0aW5hdGlvbkNvbG9yU3BhY2UmLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlJlbmRlcmlu
Z01ldGhvZD4pIGNvbnN0IGZpbmFsOwpAQCAtMTQ0LDcgKzE0MSw2IEBAIHByaXZhdGU6CiAgICAg
V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIG1fZGVzdGluYXRpb25CdWZmZXJJ
ZGVudGlmaWVyOwogICAgIFdlYWtQdHI8V2ViQ29yZTo6SW1hZ2VCdWZmZXI+IG1faW1hZ2VCdWZm
ZXI7CiAgICAgV2Vha1B0cjxSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk+IG1fcmVuZGVyaW5n
QmFja2VuZDsKLSAgICBib29sIG1fbmVlZHNGbHVzaCB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgKaW5kZXggOGEyZTM2NmM2
NGYyLi45Njc4YjNlZjY1NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCkBAIC02Niw3
ICs2Niw3IEBAIHB1YmxpYzoKICAgICB+UmVtb3RlSW1hZ2VCdWZmZXJQcm94eSgpCiAgICAgewog
ICAgICAgICBpZiAoIW1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5IHx8IG1fcmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5LT5pc0dQVVByb2Nlc3NDb25uZWN0aW9uQ2xvc2VkKCkpIHsKLSAg
ICAgICAgICAgIG1fcmVtb3RlRGlzcGxheUxpc3QucmVzZXROZWVkc0ZsdXNoKCk7CisgICAgICAg
ICAgICBzZXROZWVkc0ZsdXNoKGZhbHNlKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
fQogCkBAIC0xMTYsNiArMTE2LDExIEBAIHByb3RlY3RlZDoKICAgICAgICAgbV9yZWNlaXZlZEZs
dXNoSWRlbnRpZmllckNoYW5nZWRDb25kaXRpb24ubm90aWZ5QWxsKCk7CiAgICAgfQogCisgICAg
dm9pZCBzZXROZWVkc0ZsdXNoKGJvb2wgbmVlZHNGbHVzaCkgZmluYWwKKyAgICB7CisgICAgICAg
IG1fbmVlZHNGbHVzaCA9IG5lZWRzRmx1c2g7CisgICAgfQorCiAgICAgdm9pZCB3YWl0Rm9yRGlk
Rmx1c2hXaXRoVGltZW91dCgpCiAgICAgewogICAgICAgICBpZiAoIW1fcmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5KQpAQCAtMjQ2LDcgKzI1MSw3IEBAIHByb3RlY3RlZDoKIAogICAgIHZvaWQg
Y2xlYXJCYWNrZW5kKCkgZmluYWwKICAgICB7Ci0gICAgICAgIG1fcmVtb3RlRGlzcGxheUxpc3Qu
cmVzZXROZWVkc0ZsdXNoKCk7CisgICAgICAgIHNldE5lZWRzRmx1c2goZmFsc2UpOwogICAgICAg
ICBkaWRGbHVzaChtX3NlbnRGbHVzaElkZW50aWZpZXIpOwogICAgICAgICBCYXNlQ29uY3JldGVJ
bWFnZUJ1ZmZlcjo6Y2xlYXJCYWNrZW5kKCk7CiAgICAgfQpAQCAtMjcxLDYgKzI3Niw3IEBAIHBy
b3RlY3RlZDoKICAgICAgICAgYXV0byYgbXV0YWJsZVRoaXMgPSBjb25zdF9jYXN0PFJlbW90ZUlt
YWdlQnVmZmVyUHJveHkmPigqdGhpcyk7CiAgICAgICAgIG11dGFibGVUaGlzLmZsdXNoRHJhd2lu
Z0NvbnRleHRBc3luYygpOwogICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS0+
cHV0UGl4ZWxCdWZmZXJGb3JJbWFnZUJ1ZmZlcihtX3JlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
ciwgcGl4ZWxCdWZmZXIsIHNyY1JlY3QsIGRlc3RQb2ludCwgZGVzdEZvcm1hdCk7CisgICAgICAg
IHNldE5lZWRzRmx1c2godHJ1ZSk7CiAgICAgfQogCiAgICAgdm9pZCBjb252ZXJ0VG9MdW1pbmFu
Y2VNYXNrKCkgZmluYWwKQEAgLTMwOSwxMyArMzE1LDEzIEBAIHByb3RlY3RlZDoKICAgICAgICAg
aWYgKFVOTElLRUxZKCFtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSkpCiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgaWYgKCFtX3JlbW90ZURpc3BsYXlMaXN0Lm5lZWRz
Rmx1c2goKSkKKyAgICAgICAgaWYgKCFtX25lZWRzRmx1c2gpCiAgICAgICAgICAgICByZXR1cm4g
aGFzUGVuZGluZ0ZsdXNoKCk7CiAgICAgICAgIAogICAgICAgICBtX3NlbnRGbHVzaElkZW50aWZp
ZXIgPSBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRGbHVzaElkZW50aWZpZXI6OmdlbmVyYXRlKCk7
CiAgICAgICAgIExPR19XSVRIX1NUUkVBTShTaGFyZWREaXNwbGF5TGlzdHMsIHN0cmVhbSA8PCAi
UmVtb3RlSW1hZ2VCdWZmZXJQcm94eSAiIDw8IG1fcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
IDw8ICIgZmx1c2hEcmF3aW5nQ29udGV4dEFzeW5jIC0gZmx1c2ggIiA8PCBtX3NlbnRGbHVzaElk
ZW50aWZpZXIpOwogICAgICAgICBtX3JlbW90ZURpc3BsYXlMaXN0LmZsdXNoQ29udGV4dChtX3Nl
bnRGbHVzaElkZW50aWZpZXIpOwotICAgICAgICBtX3JlbW90ZURpc3BsYXlMaXN0LnJlc2V0TmVl
ZHNGbHVzaCgpOworICAgICAgICBzZXROZWVkc0ZsdXNoKGZhbHNlKTsKICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfQogCkBAIC0zNDgsNiArMzU0LDcgQEAgcHJvdGVjdGVkOgogICAgIFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dEZsdXNoSWRlbnRpZmllciBtX3JlY2VpdmVkRmx1c2hJZGVudGlm
aWVyIFdURl9HVUFSREVEX0JZX0xPQ0sobV9yZWNlaXZlZEZsdXNoSWRlbnRpZmllckxvY2spOyAv
LyBPbmx5IG1vZGlmaWVkIG9uIHRoZSBtYWluIHRocmVhZCBidXQgbWF5IGdldCBxdWVyaWVkIG9u
IGEgc2Vjb25kYXJ5IHRocmVhZC4KICAgICBXZWFrUHRyPFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eT4gbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk7CiAgICAgUmVtb3RlRGlzcGxheUxp
c3RSZWNvcmRlclByb3h5IG1fcmVtb3RlRGlzcGxheUxpc3Q7CisgICAgYm9vbCBtX25lZWRzRmx1
c2ggeyBmYWxzZSB9OwogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgQmFja2VuZFR5cGU+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtcHV0LWltYWdlLWRhdGEtbm8t
ZHJhdy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLXB1dC1p
bWFnZS1kYXRhLW5vLWRyYXctZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAuLmU3YjgxNjU4MzI3MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1wdXQtaW1hZ2UtZGF0YS1uby1kcmF3LWV4cGVjdGVkLmh0
bWwKQEAgLTAsMCArMSwxMyBAQAorPGJvZHk+CisgICAgPGNhbnZhcyBpZD0idGFyZ2V0IiB3aWR0
aD0iNDAwIiBoZWlnaHQ9IjQwMCI+PC9jYW52YXM+CisgICAgPHNjcmlwdD4KKyAgICAgICAgY29u
c3QgdGFyZ2V0Q2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpOworICAg
ICAgICBjb25zdCB0YXJnZXQgPSB0YXJnZXRDYW52YXMuZ2V0Q29udGV4dCgnMmQnKTsKKworICAg
ICAgICBjb25zdCBjYW52YXNXaWR0aCA9IHRhcmdldENhbnZhcy53aWR0aDsKKyAgICAgICAgY29u
c3QgY2FudmFzSGVpZ2h0ID0gdGFyZ2V0Q2FudmFzLmhlaWdodAorCisgICAgICAgIHRhcmdldC5m
aWxsU3R5bGUgPSAnZ3JlZW4nOworICAgICAgICB0YXJnZXQuZmlsbFJlY3QoMCwgMCwgY2FudmFz
V2lkdGgsIGNhbnZhc0hlaWdodCk7CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtcHV0LWltYWdlLWRhdGEtbm8tZHJhdy5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLXB1dC1pbWFnZS1kYXRhLW5vLWRy
YXcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmVkYTEyZTAw
MjRhNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1w
dXQtaW1hZ2UtZGF0YS1uby1kcmF3Lmh0bWwKQEAgLTAsMCArMSw1MCBAQAorPGJvZHk+CisgICAg
PGNhbnZhcyBpZD0idGFyZ2V0IiB3aWR0aD0iNDAwIiBoZWlnaHQ9IjQwMCI+PC9jYW52YXM+Cisg
ICAgPHNjcmlwdD4KKyAgICAgICAgY29uc3QgdGFyZ2V0Q2FudmFzID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3RhcmdldCcpOworICAgICAgICBjb25zdCB0YXJnZXQgPSB0YXJnZXRDYW52YXMu
Z2V0Q29udGV4dCgnMmQnKTsKKworICAgICAgICBjb25zdCBjYW52YXNXaWR0aCA9IHRhcmdldENh
bnZhcy53aWR0aDsKKyAgICAgICAgY29uc3QgY2FudmFzSGVpZ2h0ID0gdGFyZ2V0Q2FudmFzLmhl
aWdodAorCisgICAgICAgIHZhciBzb3VyY2VDYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdjYW52YXMnKTsKKyAgICAgICAgc291cmNlQ2FudmFzLndpZHRoICA9IGNhbnZhc1dpZHRoOwor
ICAgICAgICBzb3VyY2VDYW52YXMuaGVpZ2h0ID0gY2FudmFzSGVpZ2h0OworCisgICAgICAgIGNv
bnN0IHNvdXJjZSA9IHNvdXJjZUNhbnZhcy5nZXRDb250ZXh0KCcyZCcpOworCisgICAgICAgIGxl
dCBwcm9ncmVzc1ggPSAwOworICAgICAgICBsZXQgcHJvZ3Jlc3NZID0gMDsKKyAgICAgICAgY29u
c3QgcGFpbnRTaXplID0gMTAwOworCisgICAgICAgIHNvdXJjZS5maWxsU3R5bGUgPSAnZ3JlZW4n
OworICAgICAgICBzb3VyY2UuZmlsbFJlY3QoMCwgMCwgY2FudmFzV2lkdGgsIGNhbnZhc0hlaWdo
dCk7CisgICAgICAgIGNvbnN0IGltYWdlZGF0YSA9IHNvdXJjZS5nZXRJbWFnZURhdGEoMCwgMCwg
Y2FudmFzV2lkdGgsIGNhbnZhc0hlaWdodCk7CisKKyAgICAgICAgZnVuY3Rpb24gZHJhd0xvb3Ao
KSB7CisgICAgICAgICAgICB0YXJnZXQucHV0SW1hZ2VEYXRhKGltYWdlZGF0YSwgMCwgMCwgcHJv
Z3Jlc3NYLCBwcm9ncmVzc1ksIHBhaW50U2l6ZSwgcGFpbnRTaXplKTsKKworICAgICAgICAgICAg
cHJvZ3Jlc3NYICs9IHBhaW50U2l6ZTsKKworICAgICAgICAgICAgaWYgKHByb2dyZXNzWCArIHBh
aW50U2l6ZSA8PSBjYW52YXNXaWR0aCkgeworICAgICAgICAgICAgICAgIHJlcXVlc3RBbmltYXRp
b25GcmFtZShkcmF3TG9vcCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAg
fQorCisgICAgICAgICAgICBpZiAocHJvZ3Jlc3NZICsgcGFpbnRTaXplID4gY2FudmFzSGVpZ2h0
KSB7CisgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICByZXR1cm47
CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHByb2dyZXNzWCA9IDA7CisgICAgICAgICAg
ICBwcm9ncmVzc1kgKz0gcGFpbnRTaXplOworICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZy
YW1lKGRyYXdMb29wKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgICAgIHJl
cXVlc3RBbmltYXRpb25GcmFtZShkcmF3TG9vcCk7CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMWU3
Y2Y5ZTFjYWY0Li4zMGFiNzVjMmViMWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy13azIvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
d2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE3MTIsMjcgKzE3MTIsNiBAQCB3ZWJraXQub3JnL2Iv
MjQwMTIzIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3J0
cC1jbG9ja3JhdAogCiB3ZWJraXQub3JnL2IvMjQwNjcwIGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC90aGUtaW1nLWVsZW1lbnQv
aW1hZ2UtbG9hZGluZy1sYXp5LW1vdmUtaW50by1zY3JpcHQtZGlzYWJsZWQtaWZyYW1lLmh0bWwg
WyBQYXNzIENyYXNoIF0KIAotd2Via2l0Lm9yZy9iLzI0MDczNSBbIFJlbGVhc2UgXSB3ZWJnbC8y
LjAuMC9jb25mb3JtYW5jZS90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAv
dGV4LTJkLXJnYi1yZ2ItdW5zaWduZWRfc2hvcnRfNV82XzUuaHRtbCBbIFBhc3MgRmFpbHVyZSBd
Ci13ZWJraXQub3JnL2IvMjQwNzM1IFsgUmVsZWFzZSBdIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNl
L3RleHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtMmQtcmdiYS1yZ2Jh
LXVuc2lnbmVkX2J5dGUuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjQwNzM1
IFsgUmVsZWFzZSBdIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlL3RleHR1cmVzL2ltYWdlX2JpdG1h
cF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtMmQtcmdiYS1yZ2JhLXVuc2lnbmVkX3Nob3J0XzRfNF80
XzQuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjQwNzM1IFsgUmVsZWFzZSBd
IHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFn
ZV9iaXRtYXAvdGV4LTJkLXIxMWZfZzExZl9iMTBmLXJnYi11bnNpZ25lZF9pbnRfMTBmXzExZl8x
MWZfcmV2Lmh0bWwgWyBQYXNzIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzI0MDczNSBbIFJlbGVh
c2UgXSB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21f
aW1hZ2VfYml0bWFwL3RleC0yZC1yMTZmLXJlZC1mbG9hdC5odG1sIFsgUGFzcyBGYWlsdXJlIF0K
LXdlYmtpdC5vcmcvYi8yNDA3MzUgWyBSZWxlYXNlIF0gd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2Uy
L3RleHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2ltYWdlX2JpdG1hcC90ZXgtMmQtcjgtcmVkLXVu
c2lnbmVkX2J5dGUuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjQwNzM1IFsg
UmVsZWFzZSBdIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBf
ZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTJkLXJnYjVfYTEtcmdiYS11bnNpZ25lZF9zaG9ydF81XzVf
NV8xLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzI0MDczNSBbIFJlbGVhc2Ug
XSB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1h
Z2VfYml0bWFwL3RleC0zZC1yZ2IxNmYtcmdiLWZsb2F0Lmh0bWwgWyBQYXNzIEZhaWx1cmUgXQot
d2Via2l0Lm9yZy9iLzI0MDczNSBbIFJlbGVhc2UgXSB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIv
dGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1hZ2VfYml0bWFwL3RleC0zZC1yZ2I1NjUtcmdi
LXVuc2lnbmVkX3Nob3J0XzVfNl81Lmh0bWwgWyBQYXNzIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9i
LzI0MDczNSBbIFJlbGVhc2UgXSB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvaW1h
Z2VfYml0bWFwX2Zyb21faW1hZ2VfYml0bWFwL3RleC0zZC1yZ2I5X2U1LXJnYi1oYWxmX2Zsb2F0
Lmh0bWwgWyBQYXNzIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzI0MDczNSBbIFJlbGVhc2UgXSB3
ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1hZ2Vf
Yml0bWFwL3RleC0zZC1yZ2JhMzJmLXJnYmEtZmxvYXQuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCi13
ZWJraXQub3JnL2IvMjQwNzM1IFsgUmVsZWFzZSBdIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90
ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTNkLXJnYmE4dWktcmdi
YV9pbnRlZ2VyLXVuc2lnbmVkX2J5dGUuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCi13ZWJraXQub3Jn
L2IvMjQwNzM1IFsgUmVsZWFzZSBdIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9p
bWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTJkLXIzMmYtcmVkLWZsb2F0Lmh0bWwg
WyBQYXNzIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzI0MDczNSBbIFJlbGVhc2UgXSB3ZWJnbC8y
LjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1hZ2VfYml0bWFw
L3RleC0yZC1yZ2I4LXJnYi11bnNpZ25lZF9ieXRlLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQotd2Vi
a2l0Lm9yZy9iLzI0MDczNSBbIFJlbGVhc2UgXSB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4
dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1hZ2VfYml0bWFwL3RleC0yZC1yZ2I5X2U1LXJnYi1m
bG9hdC5odG1sIFsgUGFzcyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yNDA3MzUgWyBSZWxlYXNl
IF0gd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RleHR1cmVzL2ltYWdlX2JpdG1hcF9mcm9tX2lt
YWdlX2JpdG1hcC90ZXgtMmQtcmdiYTQtcmdiYS11bnNpZ25lZF9ieXRlLmh0bWwgWyBQYXNzIEZh
aWx1cmUgXQotd2Via2l0Lm9yZy9iLzI0MDczNSBbIFJlbGVhc2UgXSB3ZWJnbC8yLjAuMC9jb25m
b3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1hZ2VfYml0bWFwL3RleC0zZC1y
Z2IxNmYtcmdiLWhhbGZfZmxvYXQuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCi13ZWJraXQub3JnL2Iv
MjQwNzM1IFsgUmVsZWFzZSBdIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90ZXh0dXJlcy9pbWFn
ZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTNkLXNyZ2I4LXJnYi11bnNpZ25lZF9ieXRl
Lmh0bWwgWyBQYXNzIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzI0MDczNSBbIFJlbGVhc2UgXSB3
ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdGV4dHVyZXMvaW1hZ2VfYml0bWFwX2Zyb21faW1hZ2Vf
Yml0bWFwL3RleC0yZC1yMTFmX2cxMWZfYjEwZi1yZ2ItZmxvYXQuaHRtbCBbIFBhc3MgRmFpbHVy
ZSBdCi13ZWJraXQub3JnL2IvMjQwNzM1IFsgUmVsZWFzZSBdIHdlYmdsLzIuMC4wL2NvbmZvcm1h
bmNlMi90ZXh0dXJlcy9pbWFnZV9iaXRtYXBfZnJvbV9pbWFnZV9iaXRtYXAvdGV4LTJkLXIxNmYt
cmVkLWhhbGZfZmxvYXQuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCi0KIHdlYmtpdC5vcmcvYi8yNDA4
MTQgd2VicnRjL2NhbnZhcy10by1wZWVyLWNvbm5lY3Rpb24uaHRtbCBbIFBhc3MgRmFpbHVyZSBd
CiAKIHdlYmtpdC5vcmcvYi8yNDA4MjEgWyBNb250ZXJleSBSZWxlYXNlIF0gd2ViZ2wvbWF4LWFj
dGl2ZS1jb250ZXh0cy13ZWJnbGNvbnRleHRsb3N0LXByZXZlbnQtZGVmYXVsdC5odG1sIFsgU2xv
dyBdCi0tIAoyLjMyLjAgKEFwcGxlIEdpdC0xMzIpCgo=
</data>
<flag name="commit-queue"
          id="488954"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>