<?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>235954</bug_id>
          
          <creation_ts>2022-02-01 08:15:46 -0800</creation_ts>
          <short_desc>SampleBufferDiplayLayer should not need to create IOSurfaces</short_desc>
          <delta_ts>2022-02-03 02:14:57 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebRTC</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>235951</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1835973</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-02-01 08:15:46 -0800</bug_when>
    <thetext>SampleBufferDiplayLayer should not need to create IOSurfaces</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835976</commentid>
    <comment_count>1</comment_count>
      <attachid>450531</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-02-01 08:21:34 -0800</bug_when>
    <thetext>Created attachment 450531
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835985</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-01 08:40:24 -0800</bug_when>
    <thetext>&lt;rdar://problem/88329675&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1836468</commentid>
    <comment_count>3</comment_count>
      <attachid>450531</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2022-02-02 09:08:18 -0800</bug_when>
    <thetext>Comment on attachment 450531
Patch

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

&gt; Source/WebKit/GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.cpp:125
&gt; +        sample = MediaSampleAVFObjC::createImageSample(WTFMove(pixelBuffer), remoteSample.rotation(), remoteSample.mirrored());
&gt; +        sample-&gt;setTimestamps(remoteSample.time(), MediaTime { });

As a followup, it would be nice if createImageSample that took optional timestamps.

&gt; Source/WebKit/GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.cpp:172
&gt; +void RemoteSampleBufferDisplayLayer::setSharedVideoFrameSemaphore(IPC::Semaphore&amp;&amp; semaphore)
&gt; +{
&gt; +    m_sharedVideoFrameReader.setSemaphore(WTFMove(semaphore));
&gt; +}
&gt; +
&gt; +void RemoteSampleBufferDisplayLayer::setSharedVideoFrameMemory(const SharedMemory::IPCHandle&amp; ipcHandle)
&gt; +{
&gt; +    auto memory = SharedMemory::map(ipcHandle.handle, SharedMemory::Protection::ReadOnly);
&gt; +    if (!memory)
&gt; +        return;
&gt; +
&gt; +    m_sharedVideoFrameReader.setSharedMemory(memory.releaseNonNull());
&gt; +}

And it would be nice to put these into a &quot;mixin&quot; class with a pure virtual `SharedVideoFrameReader` getter others can derive from instead of duplicating in all of the classes that need them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1836826</commentid>
    <comment_count>4</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-02-03 01:53:40 -0800</bug_when>
    <thetext>(In reply to Eric Carlson from comment #3)
&gt; Comment on attachment 450531 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=450531&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.cpp:125
&gt; &gt; +        sample = MediaSampleAVFObjC::createImageSample(WTFMove(pixelBuffer), remoteSample.rotation(), remoteSample.mirrored());
&gt; &gt; +        sample-&gt;setTimestamps(remoteSample.time(), MediaTime { });
&gt; 
&gt; As a followup, it would be nice if createImageSample that took optional
&gt; timestamps.

I filed https://bugs.webkit.org/show_bug.cgi?id=236067.

&gt; &gt; Source/WebKit/GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.cpp:172
&gt; &gt; +void RemoteSampleBufferDisplayLayer::setSharedVideoFrameSemaphore(IPC::Semaphore&amp;&amp; semaphore)
&gt; &gt; +{
&gt; &gt; +    m_sharedVideoFrameReader.setSemaphore(WTFMove(semaphore));
&gt; &gt; +}
&gt; &gt; +
&gt; &gt; +void RemoteSampleBufferDisplayLayer::setSharedVideoFrameMemory(const SharedMemory::IPCHandle&amp; ipcHandle)
&gt; &gt; +{
&gt; &gt; +    auto memory = SharedMemory::map(ipcHandle.handle, SharedMemory::Protection::ReadOnly);
&gt; &gt; +    if (!memory)
&gt; &gt; +        return;
&gt; &gt; +
&gt; &gt; +    m_sharedVideoFrameReader.setSharedMemory(memory.releaseNonNull());
&gt; &gt; +}
&gt; 
&gt; And it would be nice to put these into a &quot;mixin&quot; class with a pure virtual
&gt; `SharedVideoFrameReader` getter others can derive from instead of
&gt; duplicating in all of the classes that need them.

I can at least make setSharedMemory take a IPCHandle to centralise more code.
I filed https://bugs.webkit.org/show_bug.cgi?id=236068.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1836830</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-03 02:14:54 -0800</bug_when>
    <thetext>Committed r289038 (246745@main): &lt;https://commits.webkit.org/246745@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 450531.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450531</attachid>
            <date>2022-02-01 08:21:34 -0800</date>
            <delta_ts>2022-02-03 02:14:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235954-20220201172132.patch</filename>
            <type>text/plain</type>
            <size>8633</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4Nzk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU0NWNjMDhiN2U2YzM2NTEx
MTYxNmRiZTkzYWQyOTIxYWJjYmYyNzEuLjUwMjg1NWY1ZDhiZDk0YzA2ZjU5ZjEwYmQxOTliYzE2
ZGQ2MDQ2MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjItMDItMDEgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFNhbXBsZUJ1ZmZlckRpcGxheUxh
eWVyIHNob3VsZCBub3QgbmVlZCB0byBjcmVhdGUgSU9TdXJmYWNlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1OTU0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSB1c2Ugb2YgU2hhcmVkVmlkZW9G
cmFtZVJlYWRlciBhbmQgU2hhcmVkVmlkZW9GcmFtZVdyaXRlciBiZXR3ZWVuIFNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllciBhbmQgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLgorICAgICAg
ICBNYW51YWxseSB0ZXN0ZWQuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwOgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRj
L1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oOgorICAgICAgICAqIEdQVVByb2Nlc3Mv
d2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5tZXNzYWdlcy5pbjoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
Lmg6CisKIDIwMjItMDItMDEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAg
ICAgICAgIExpYldlYlJUQ0NvZGVjcyBzaG91bGQgbm90IG5lZWQgdG8gY3JlYXRlIElPU3VyZmFj
ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJy
dGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcAppbmRleCA0OTcwNzRiZjhhMmYy
Yzk5ZmI2NDAyMzI5NTA5ZmNhMjI3MTIxOTI4Li4yMTdkYjk3YTNjZTRjODMwMDQ4YWZhYzgyOGVm
YmRiYmQ1MThlN2EwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRj
L1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwCkBAIC0x
MTMsMTYgKzExMywyNiBAQCB2b2lkIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6cGF1
c2UoKQogICAgIG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLT5wYXVzZSgpOwogfQogCi12b2lk
IFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6ZW5xdWV1ZVNhbXBsZShXZWJDb3JlOjpS
ZW1vdGVWaWRlb1NhbXBsZSYmIHJlbW90ZVNhbXBsZSkKK3ZvaWQgUmVtb3RlU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyOjplbnF1ZXVlU2FtcGxlKFJlbW90ZVZpZGVvU2FtcGxlJiYgcmVtb3RlU2Ft
cGxlKQogewotICAgIGlmICghbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbiB8fCBtX2ltYWdlVHJhbnNm
ZXJTZXNzaW9uLT5waXhlbEZvcm1hdCgpICE9IHJlbW90ZVNhbXBsZS52aWRlb0Zvcm1hdCgpKQot
ICAgICAgICBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uID0gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6
Y3JlYXRlKHJlbW90ZVNhbXBsZS52aWRlb0Zvcm1hdCgpKTsKKyAgICBSZWZQdHI8TWVkaWFTYW1w
bGU+IHNhbXBsZTsKKyAgICBpZiAoIXJlbW90ZVNhbXBsZS5zdXJmYWNlKCkpIHsKKyAgICAgICAg
YXV0byBwaXhlbEJ1ZmZlciA9IG1fc2hhcmVkVmlkZW9GcmFtZVJlYWRlci5yZWFkKCk7CisgICAg
ICAgIGlmICghcGl4ZWxCdWZmZXIpCisgICAgICAgICAgICByZXR1cm47CiAKLSAgICBBU1NFUlQo
bV9pbWFnZVRyYW5zZmVyU2Vzc2lvbik7Ci0gICAgaWYgKCFtX2ltYWdlVHJhbnNmZXJTZXNzaW9u
KQotICAgICAgICByZXR1cm47CisgICAgICAgIHNhbXBsZSA9IE1lZGlhU2FtcGxlQVZGT2JqQzo6
Y3JlYXRlSW1hZ2VTYW1wbGUoV1RGTW92ZShwaXhlbEJ1ZmZlciksIHJlbW90ZVNhbXBsZS5yb3Rh
dGlvbigpLCByZW1vdGVTYW1wbGUubWlycm9yZWQoKSk7CisgICAgICAgIHNhbXBsZS0+c2V0VGlt
ZXN0YW1wcyhyZW1vdGVTYW1wbGUudGltZSgpLCBNZWRpYVRpbWUgeyB9KTsKKyAgICB9IGVsc2Ug
eworICAgICAgICBpZiAoIW1faW1hZ2VUcmFuc2ZlclNlc3Npb24gfHwgbV9pbWFnZVRyYW5zZmVy
U2Vzc2lvbi0+cGl4ZWxGb3JtYXQoKSAhPSByZW1vdGVTYW1wbGUudmlkZW9Gb3JtYXQoKSkKKyAg
ICAgICAgICAgIG1faW1hZ2VUcmFuc2ZlclNlc3Npb24gPSBJbWFnZVRyYW5zZmVyU2Vzc2lvblZU
OjpjcmVhdGUocmVtb3RlU2FtcGxlLnZpZGVvRm9ybWF0KCkpOworCisgICAgICAgIEFTU0VSVCht
X2ltYWdlVHJhbnNmZXJTZXNzaW9uKTsKKyAgICAgICAgaWYgKCFtX2ltYWdlVHJhbnNmZXJTZXNz
aW9uKQorICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byBzYW1wbGUgPSBtX2ltYWdlVHJh
bnNmZXJTZXNzaW9uLT5jcmVhdGVNZWRpYVNhbXBsZShyZW1vdGVTYW1wbGUpOworICAgICAgICBz
YW1wbGUgPSBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uLT5jcmVhdGVNZWRpYVNhbXBsZShyZW1vdGVT
YW1wbGUpOworICAgIH0KIAogICAgIEFTU0VSVChzYW1wbGUpOwogICAgIGlmICghc2FtcGxlKQpA
QCAtMTQ3LDYgKzE1NywyMCBAQCB2b2lkIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6
c2FtcGxlQnVmZmVyRGlzcGxheUxheWVyU3RhdHVzRGlkRmFpbCgpCiAgICAgc2VuZChNZXNzYWdl
czo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpTZXREaWRGYWlsIHsgbV9zYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXItPmRpZEZhaWwoKSB9KTsKIH0KIAordm9pZCBSZW1vdGVTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXI6OnNldFNoYXJlZFZpZGVvRnJhbWVTZW1hcGhvcmUoSVBDOjpTZW1hcGhvcmUm
JiBzZW1hcGhvcmUpCit7CisgICAgbV9zaGFyZWRWaWRlb0ZyYW1lUmVhZGVyLnNldFNlbWFwaG9y
ZShXVEZNb3ZlKHNlbWFwaG9yZSkpOworfQorCit2b2lkIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllcjo6c2V0U2hhcmVkVmlkZW9GcmFtZU1lbW9yeShjb25zdCBTaGFyZWRNZW1vcnk6OklQ
Q0hhbmRsZSYgaXBjSGFuZGxlKQoreworICAgIGF1dG8gbWVtb3J5ID0gU2hhcmVkTWVtb3J5Ojpt
YXAoaXBjSGFuZGxlLmhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7
CisgICAgaWYgKCFtZW1vcnkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fc2hhcmVkVmlkZW9G
cmFtZVJlYWRlci5zZXRTaGFyZWRNZW1vcnkobWVtb3J5LnJlbGVhc2VOb25OdWxsKCkpOworfQor
CiB9CiAKICNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKSAm
JiBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaCBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmgKaW5k
ZXggNGFjMTE4YWNlZTJiZDNhMjc2MTYwODhmODAyZmMzZGEwZjlhNTEzMC4uNzI1YjNkMjZiNzFj
Nzg4NmRjNDg4ODI3ZDBhNmY3ZDI1MmFhN2EwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllci5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAj
aW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgogI2luY2x1ZGUgIlNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllcklkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJTaGFyZWRWaWRlb0ZyYW1lLmgiCiAjaW5jbHVk
ZSA8V2ViQ29yZS9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaD4KICNpbmNsdWRlIDx3dGYvTWVk
aWFUaW1lLmg+CiAKQEAgLTc0LDYgKzc1LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHBhdXNlKCk7
CiAgICAgdm9pZCBlbnF1ZXVlU2FtcGxlKFdlYkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlJiYpOwog
ICAgIHZvaWQgY2xlYXJFbnF1ZXVlZFNhbXBsZXMoKTsKKyAgICB2b2lkIHNldFNoYXJlZFZpZGVv
RnJhbWVTZW1hcGhvcmUoSVBDOjpTZW1hcGhvcmUmJik7CisgICAgdm9pZCBzZXRTaGFyZWRWaWRl
b0ZyYW1lTWVtb3J5KGNvbnN0IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlJik7CiAKICAgICAvLyBJ
UEM6Ok1lc3NhZ2VTZW5kZXIKICAgICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25u
ZWN0aW9uKCkgY29uc3QgZmluYWw7CkBAIC04Nyw2ICs5MCw3IEBAIHByaXZhdGU6CiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPFdlYkNvcmU6OkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ+IG1faW1hZ2VUcmFu
c2ZlclNlc3Npb247CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkxvY2FsU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyPiBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjsKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8TGF5ZXJIb3N0aW5nQ29udGV4dD4gbV9sYXllckhvc3RpbmdDb250ZXh0OworICAg
IFNoYXJlZFZpZGVvRnJhbWVSZWFkZXIgbV9zaGFyZWRWaWRlb0ZyYW1lUmVhZGVyOwogfTsKIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5tZXNzYWdlcy5pbgppbmRl
eCA2YzExNDFmMzlmZTNkZjVmYzUwYjIzZGIzMjEyZWQxZTU2YTZiNzU4Li5lNTA0ODMxNDFlZmVm
YWZiNDNkY2E2MDhjZGMzN2Q2MjE2ZjdlY2RmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5tZXNzYWdlcy5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllci5tZXNzYWdlcy5pbgpAQCAtMzYsNiArMzYsOCBAQCBtZXNzYWdlcyAtPiBS
ZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgTm90UmVmQ291bnRlZCB7CiAgICAgQ2xlYXJF
bnF1ZXVlZFNhbXBsZXMoKQogICAgIFBsYXkoKQogICAgIFBhdXNlKCkKKyAgICBTZXRTaGFyZWRW
aWRlb0ZyYW1lU2VtYXBob3JlKElQQzo6U2VtYXBob3JlIHNlbWFwaG9yZSkKKyAgICBTZXRTaGFy
ZWRWaWRlb0ZyYW1lTWVtb3J5KFdlYktpdDo6U2hhcmVkTWVtb3J5OjpJUENIYW5kbGUgc3RvcmFn
ZUhhbmRsZSkKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcAppbmRl
eCBiZTkxOWNkZDFmMDA4MWY1MzY5NTQxYTIxNzMwM2YyNGU2MDIyYTBjLi4yMTlhNTVkZjFjMjlm
ZDFjNmY5MzM2MTFhMjkyNWI1YzNjMDZlMTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ci5jcHAKQEAgLTEyNiwxMiArMTI2LDI5IEBAIHZvaWQgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
OjpwYXVzZSgpCiAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXI6OlBhdXNlIHsgfSwgbV9pZGVudGlmaWVyKTsKIH0KIAorYm9vbCBT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmNvcHlTaGFyZWRWaWRlb0ZyYW1lKENWUGl4ZWxCdWZm
ZXJSZWYgcGl4ZWxCdWZmZXIpCit7CisgICAgaWYgKCFwaXhlbEJ1ZmZlcikKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIHJldHVybiBtX3NoYXJlZFZpZGVvRnJhbWVXcml0ZXIud3JpdGUocGl4
ZWxCdWZmZXIsCisgICAgICAgIFt0aGlzXShhdXRvJiBzZW1hcGhvcmUpIHsgbV9jb25uZWN0aW9u
LT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OlNldFNoYXJl
ZFZpZGVvRnJhbWVTZW1hcGhvcmUgeyBzZW1hcGhvcmUgfSwgbV9pZGVudGlmaWVyKTsgfSwKKyAg
ICAgICAgW3RoaXNdKGF1dG8mIGhhbmRsZSkgeyBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6
OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6U2V0U2hhcmVkVmlkZW9GcmFtZU1lbW9y
eSB7IGhhbmRsZSB9LCBtX2lkZW50aWZpZXIpOyB9CisgICAgKTsKK30KKwogdm9pZCBTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXI6OmVucXVldWVTYW1wbGUoTWVkaWFTYW1wbGUmIHNhbXBsZSkKIHsK
ICAgICBpZiAobV9wYXVzZWQpCiAgICAgICAgIHJldHVybjsKLSAgICBpZiAoYXV0byByZW1vdGVT
YW1wbGUgPSBSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRlKHNhbXBsZSkpCi0gICAgICAgIG1fY29u
bmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpF
bnF1ZXVlU2FtcGxlIHsgKnJlbW90ZVNhbXBsZSB9LCBtX2lkZW50aWZpZXIpOworCisgICAgYXV0
byByZW1vdGVTYW1wbGUgPSBSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRlKHNhbXBsZSwgUmVtb3Rl
VmlkZW9TYW1wbGU6OlNob3VsZENoZWNrRm9ySU9TdXJmYWNlOjpObyk7CisgICAgaWYgKCFyZW1v
dGVTYW1wbGUtPnN1cmZhY2UoKSkgeworICAgICAgICAvLyBidWZmZXIgaXMgbm90IElPU3VyZmFj
ZSwgd2UgbmVlZCB0byBjb3B5IHRvIHNoYXJlZCB2aWRlbyBmcmFtZS4KKyAgICAgICAgaWYgKCFj
b3B5U2hhcmVkVmlkZW9GcmFtZShyZW1vdGVTYW1wbGUtPmltYWdlQnVmZmVyKCkpKQorICAgICAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6
UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpFbnF1ZXVlU2FtcGxlIHsgKnJlbW90ZVNh
bXBsZSB9LCBtX2lkZW50aWZpZXIpOwogfQogCiB2b2lkIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
cjo6Y2xlYXJFbnF1ZXVlZFNhbXBsZXMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaAppbmRl
eCBiOWM5Njg0MzIwNjE2MjI2NjQxZWYzMDlkZTc1NzhiYTRlNTM0ZjczLi41NjM2OWFkZGYwYWJm
MzQ2YjBkMjFjODUwNmQ2OWNiM2QzYjQwZTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIu
aApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkdQVVByb2Nlc3NDb25uZWN0aW9uLmgiCiAj
aW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVySWRlbnRpZmllci5oIgorI2luY2x1ZGUgIlNoYXJlZFZpZGVvRnJhbWUuaCIKICNpbmNs
dWRlIDxXZWJDb3JlL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oPgogI2luY2x1ZGUgPHd0Zi9X
ZWFrUHRyLmg+CiAKQEAgLTczLDYgKzc0LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGdwdVByb2Nl
c3NDb25uZWN0aW9uRGlkQ2xvc2UoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mKSBmaW5hbDsKIAogICAg
IHZvaWQgc2V0RGlkRmFpbChib29sKTsKKyAgICBib29sIGNvcHlTaGFyZWRWaWRlb0ZyYW1lKENW
UGl4ZWxCdWZmZXJSZWYpOwogCiAgICAgV2Vha1B0cjxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJN
YW5hZ2VyPiBtX21hbmFnZXI7CiAgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9u
OwpAQCAtODEsNiArODMsOCBAQCBwcml2YXRlOgogICAgIFBsYXRmb3JtTGF5ZXJDb250YWluZXIg
bV92aWRlb0xheWVyOwogICAgIGJvb2wgbV9kaWRGYWlsIHsgZmFsc2UgfTsKICAgICBib29sIG1f
cGF1c2VkIHsgZmFsc2UgfTsKKworICAgIFNoYXJlZFZpZGVvRnJhbWVXcml0ZXIgbV9zaGFyZWRW
aWRlb0ZyYW1lV3JpdGVyOwogfTsKIAogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>