<?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>128553</bug_id>
          
          <creation_ts>2014-02-10 14:23:49 -0800</creation_ts>
          <short_desc>Show a debug tile map indicator for UI-side compositing</short_desc>
          <delta_ts>2014-02-10 16:20:35 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>979063</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-02-10 14:23:49 -0800</bug_when>
    <thetext>Show a debug tile map indicator for UI-side compositing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979070</commentid>
    <comment_count>1</comment_count>
      <attachid>223749</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-02-10 14:30:33 -0800</bug_when>
    <thetext>Created attachment 223749
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979090</commentid>
    <comment_count>2</comment_count>
      <attachid>223749</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-02-10 15:28:01 -0800</bug_when>
    <thetext>Comment on attachment 223749
Patch

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

&gt; Source/WebKit2/UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:188
&gt; +        // FIXME: get the correct scroll position;

capitals and periods

&gt; Source/WebKit2/UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:210
&gt; +    m_tileMapHostLayer.get().name = @&quot;Tile map host&quot;;

[...] instead of .get() in lots of places

&gt; Source/WebKit2/UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:221
&gt; +        const CGFloat components[] = { 1, 1, 1, 0.6 };
&gt; +        RetainPtr&lt;CGColorRef&gt; color = adoptCF(CGColorCreate(colorSpace.get(), components));
&gt; +        m_tileMapHostLayer.get().backgroundColor = color.get();

I wonder if using the color cache would be neater.

&gt; Source/WebKit2/UIProcess/mac/RemoteLayerTreeHost.h:51
&gt; +    void setIsDebugLayerTreeHost(bool flag = true) { m_isDebugLayerTreeHost = flag; }

default argument value? weird!

&gt; Source/WebKit2/UIProcess/mac/RemoteLayerTreeHost.mm:133
&gt; +            layer = adoptNS([[CALayer alloc] init]);

maybe we should give this a background color?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979127</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-02-10 16:20:35 -0800</bug_when>
    <thetext>https://trac.webkit.org/r163837</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223749</attachid>
            <date>2014-02-10 14:30:33 -0800</date>
            <delta_ts>2014-02-10 15:28:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-128553-20140210143026.patch</filename>
            <type>text/plain</type>
            <size>18105</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYzNzk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMWQxZDFmOGY4Nzc0NjUw
NTA0NWNhZTE4Y2ZkOTM2ZmFkN2E1MmU3Zi4uNTcxOTI5YTdhOThlMGExMWE5NjAxOGVhMTMyODE0
ZTViN2E1ZWQ5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ2IEBACiAyMDE0LTAyLTEwICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCisgICAgICAgIFNob3cgYSBkZWJ1
ZyB0aWxlIG1hcCBpbmRpY2F0b3IgZm9yIFVJLXNpZGUgY29tcG9zaXRpbmcKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyODU1MworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgSW1wbGVtZW50IGEg
dGlsZWQgc2Nyb2xsaW5nIGluZGljYXRvciBmb3IgVUktc2lkZSBjb21wb3NpdGluZy4KKyAgICAg
ICAgCisgICAgICAgIFRoZSBpbmRpY2F0b3IgaXMgY3JlYXRlZCBieSBtYWtpbmcgYW5vdGhlciBS
ZW1vdGVMYXllclRyZWVIb3N0LAorICAgICAgICBhbmQgZGVjb2RpbmcgdGhlIHRyYW5zYWN0aW9u
IGluIGl0IGEgc2Vjb25kIHRpbWUgdG8gY3JlYXRlIGEgY2xvbmVkCisgICAgICAgIGxheWVyIHRy
ZWUuIEluIHRoYXQgY2xvbmUgY29tbWl0LCB3ZSBtb2RpZnkgc29tZSBsYXllciBwcm9wZXJ0aWVz
IHRvCisgICAgICAgIG1ha2UgdGhpbmdzIGVhc2llciB0byBzZWUuCisgICAgICAgIAorICAgICAg
ICBUaGUgY2xvbmVkIGxheWVyIHRyZWUgaXMgaG9zdGVkIGluIHRoZSByb290IGxheWVyIG9mIHRo
ZSBtYWluCisgICAgICAgIFJlbW90ZUxheWVyVHJlZUhvc3QuCisgICAgICAgIAorICAgICAgICBS
ZW1vdGVMYXllclRyZWVIb3N0IHdhcyBjaGFuZ2VkIHRvIG5vdCBuZWVkIGEgcG9pbnRlciB0byB0
aGUgV2ViUGFnZVByb3h5LAorICAgICAgICB3aGljaCBpdCBvbmx5IHVzZWQgaW4gdGhlICJyb290
IGxheWVyIGNoYW5nZWQiIGNhc2U7IGluc3RlYWQsIGl0IG5vdyBqdXN0CisgICAgICAgIHJldHVy
bnMgYSBib29sIGZyb20gdXBkYXRlTGF5ZXJUcmVlKCkgaW4gdGhhdCBzaXR1YXRpb24uCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJv
eHkuY3BwOiBFeHBsYW5hdG9yeSBjb21tZW50LgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvUmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMv
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQ
cm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6
OmNvbW1pdExheWVyVHJlZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhUHJveHk6OnNldEV4cG9zZWRSZWN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6aW5kaWNhdG9yTG9jYXRpb24pOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojp1cGRhdGVEZWJ1Z0luZGljYXRv
clBvc2l0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQ
cm94eTo6aW5kaWNhdG9yU2NhbGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYVByb3h5Ojp1cGRhdGVEZWJ1Z0luZGljYXRvcik6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OnNob3dEZWJ1Z0luZGljYXRvcik6Cisg
ICAgICAgICogVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVIb3N0Lmg6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUhvc3Q6OnJvb3RMYXllcik6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZUxheWVyVHJlZUhvc3Q6OnNldElzRGVidWdMYXllclRyZWVIb3N0KToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlSG9zdDo6aXNEZWJ1Z0xheWVyVHJlZUhvc3QpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlSG9zdC5tbToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTGF5ZXJUcmVlSG9zdDo6UmVtb3RlTGF5ZXJUcmVlSG9zdCk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUhvc3Q6OnVwZGF0ZUxheWVyVHJlZSk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUhvc3Q6OmNyZWF0ZUxheWVyKToKKworMjAxNC0wMi0x
MCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKwogICAgICAgICBQdXQg
YSBkZWxlZ2F0ZXNTY3JvbGxpbmcgZmxhZyBvbiBXZWJQYWdlUHJveHkgc28gdGhhdCB0aGUgVUkg
cHJvY2VzcyBrbm93cyB3aGVuIHNjcm9sbGluZyBpcyBkZWxlZ2F0ZWQKICAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyODQyOQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaAppbmRleCBiOWU1ODE1OWY4NjBjZWJjOTQy
OTg5NTJlNjFiZDZkNDJlYTllNWViLi5iYzY4OTY0ZTZjOWQ0ZmQ5ZmIxNmQ3ZjBhMWVjMDNjNjIw
ZWFkNjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQ
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmgK
QEAgLTc0LDEzICs3NCwxNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGNvbW1pdFRyYW5z
aWVudFpvb20oZG91YmxlLCBXZWJDb3JlOjpGbG9hdFBvaW50KSB7IH0KIAogI2lmIFBMQVRGT1JN
KE1BQykKLSAgICB2b2lkIHNldEV4cG9zZWRSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYp
OworICAgIHZpcnR1YWwgdm9pZCBzZXRFeHBvc2VkUmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJl
Y3QmKTsKICAgICBXZWJDb3JlOjpGbG9hdFJlY3QgZXhwb3NlZFJlY3QoKSBjb25zdCB7IHJldHVy
biBtX2V4cG9zZWRSZWN0OyB9CiAgICAgdm9pZCBleHBvc2VkUmVjdENoYW5nZWRUaW1lckZpcmVk
KFdlYkNvcmU6OlRpbWVyPERyYXdpbmdBcmVhUHJveHk+Kik7CiAgICAgCiAgICAgdm9pZCBzZXRD
dXN0b21GaXhlZFBvc2l0aW9uUmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKTsKICNlbmRp
ZgogCisgICAgdmlydHVhbCB2b2lkIHNob3dEZWJ1Z0luZGljYXRvcihib29sKSB7IH0KKyAgICB2
aXJ0dWFsIGJvb2wgaXNTaG93aW5nRGVidWdJbmRpY2F0b3IoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgRHJhd2luZ0FyZWFQcm94eShEcmF3aW5n
QXJlYVR5cGUsIFdlYlBhZ2VQcm94eSopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGlu
YXRvclByb3h5LmNwcAppbmRleCA2M2QyNWJjMDMxZmNkNWUwNDIyOTVmNWRiZmEyYmNkM2MxMjI4
OTMwLi5mYWRkMTdiMzUzMmUwNmE2ZGFjNmNhNTBkYzNiMmZiMTc0NDE2ZjdiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcv
UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAKQEAgLTEzOSw2ICsxMzksNyBAQCB2
b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbFBvc2l0aW9uQ2hhbmdl
ZFZpYURlbGVnYXRlZFNjcm9sbGluZwogICAgIG1fc2Nyb2xsaW5nVHJlZS0+c2Nyb2xsUG9zaXRp
b25DaGFuZ2VkVmlhRGVsZWdhdGVkU2Nyb2xsaW5nKG5vZGVJRCwgb2Zmc2V0KTsKIH0KIAorLy8g
VGhpcyBjb21lcyBmcm9tIHRoZSBzY3JvbGxpbmcgdHJlZS4KIHZvaWQgUmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsUG9zaXRpb25DaGFuZ2VkKFdlYkNvcmU6OlNjcm9sbGlu
Z05vZGVJRCBzY3JvbGxlZE5vZGVJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgbmV3U2Ny
b2xsUG9zaXRpb24pCiB7CiAgICAgbV93ZWJQYWdlUHJveHkuc2VuZChNZXNzYWdlczo6UmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3I6OlNjcm9sbFBvc2l0aW9uQ2hhbmdlZEZvck5vZGUoc2Nyb2xs
ZWROb2RlSUQsIG5ld1Njcm9sbFBvc2l0aW9uKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5o
CmluZGV4IGFmOTMwMjZhNmEwZDFhYmVmNjdlNzY1MjFkZmFkZjlkMzE4NzM2NTkuLjdhYTU5ZGQ5
NzhhYmU4NTJiZmRhZjg5YWE4YjE2YjNhNjAxMTRlZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQ
cm94eS5oCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJEcmF3aW5nQXJlYVByb3h5Lmgi
CiAjaW5jbHVkZSAiUmVtb3RlTGF5ZXJUcmVlSG9zdC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRmxv
YXRQb2ludC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW50UG9pbnQuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0ludFNpemUuaD4KIApAQCAtNDIsMTIgKzQzLDIyIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IH5SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5KCk7CiAKICAgICBjb25zdCBSZW1vdGVM
YXllclRyZWVIb3N0JiByZW1vdGVMYXllclRyZWVIb3N0KCkgY29uc3QgeyByZXR1cm4gbV9yZW1v
dGVMYXllclRyZWVIb3N0OyB9Ci0gICAgCisKIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHNp
emVEaWRDaGFuZ2UoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGV2aWNlU2NhbGVGYWN0
b3JEaWRDaGFuZ2UoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkVXBkYXRlR2VvbWV0
cnkoKSBvdmVycmlkZTsKIAorICAgIHZvaWQgc2hvd0RlYnVnSW5kaWNhdG9yKGJvb2wpOworCisg
ICAgdmlydHVhbCB2b2lkIHNldEV4cG9zZWRSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYp
IG92ZXJyaWRlOworCisgICAgZmxvYXQgaW5kaWNhdG9yU2NhbGUoV2ViQ29yZTo6SW50U2l6ZSBj
b250ZW50c1NpemUpIGNvbnN0OworICAgIHZvaWQgdXBkYXRlRGVidWdJbmRpY2F0b3IoV2ViQ29y
ZTo6SW50U2l6ZSBjb250ZW50c1NpemUsIGJvb2wgcm9vdExheWVyQ2hhbmdlZCwgZmxvYXQgc2Nh
bGUpOworICAgIHZvaWQgdXBkYXRlRGVidWdJbmRpY2F0b3JQb3NpdGlvbigpOworICAgIAorICAg
IFdlYkNvcmU6OkZsb2F0UG9pbnQgaW5kaWNhdG9yTG9jYXRpb24oKSBjb25zdDsKKwogICAgIC8v
IElQQzo6TWVzc2FnZVJlY2VpdmVyCiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiosIElQQzo6TWVzc2FnZURlY29kZXImKSBvdmVycmlkZTsKIApAQCAt
NjEsNiArNzIsMTAgQEAgcHJpdmF0ZToKIAogICAgIFdlYkNvcmU6OkludFNpemUgbV9sYXN0U2Vu
dFNpemU7CiAgICAgV2ViQ29yZTo6SW50U2l6ZSBtX2xhc3RTZW50TGF5ZXJQb3NpdGlvbjsKKwor
ICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVMYXllclRyZWVIb3N0PiBtX2RlYnVnSW5kaWNhdG9y
TGF5ZXJUcmVlSG9zdDsKKyAgICBSZXRhaW5QdHI8Q0FMYXllcj4gbV90aWxlTWFwSG9zdExheWVy
OworICAgIFJldGFpblB0cjxDQUxheWVyPiBtX2V4cG9zZWRSZWN0SW5kaWNhdG9yTGF5ZXI7CiB9
OwogCiBEUkFXSU5HX0FSRUFfUFJPWFlfVFlQRV9DQVNUUyhSZW1vdGVMYXllclRyZWVEcmF3aW5n
QXJlYVByb3h5LCB0eXBlKCkgPT0gRHJhd2luZ0FyZWFUeXBlUmVtb3RlTGF5ZXJUcmVlKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJh
d2luZ0FyZWFQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbQppbmRleCBmMzdjOGVlODAyMWFiMDJiYjg5ZGU1YTJj
MzkzMmNhZTViNDA0NDdlLi5lMTU3ZDJkZTAzZmQ4OGViYzUwMTI0NGQwYzVhM2IxNDU4YzQzODM4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJl
ZURyYXdpbmdBcmVhUHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9S
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCkBAIC0zMSwxMiArMzEsMTUgQEAKICNp
bXBvcnQgIlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaCIKICNpbXBvcnQgIldlYlBh
Z2VQcm94eS5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzc1Byb3h5LmgiCisjaW1wb3J0IDxXZWJDb3Jl
L1dlYkNvcmVDQUxheWVyRXh0cmFzLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIAogUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6UmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eShXZWJQYWdlUHJveHkqIHdlYlBhZ2VQcm94eSkK
ICAgICA6IERyYXdpbmdBcmVhUHJveHkoRHJhd2luZ0FyZWFUeXBlUmVtb3RlTGF5ZXJUcmVlLCB3
ZWJQYWdlUHJveHkpCi0gICAgLCBtX3JlbW90ZUxheWVyVHJlZUhvc3Qod2ViUGFnZVByb3h5KQor
ICAgICwgbV9yZW1vdGVMYXllclRyZWVIb3N0KCkKICAgICAsIG1faXNXYWl0aW5nRm9yRGlkVXBk
YXRlR2VvbWV0cnkoZmFsc2UpCiB7CiAgICAgbV93ZWJQYWdlUHJveHktPnByb2Nlc3MoKS5hZGRN
ZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6
Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV93ZWJQYWdlUHJveHktPnBhZ2VJRCgpLCAqdGhpcyk7
CkBAIC04NSwxMyArODgsMTUyIEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94
eTo6c2VuZFVwZGF0ZUdlb21ldHJ5KCkKIAogdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJl
YVByb3h5Ojpjb21taXRMYXllclRyZWUoY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24m
IGxheWVyVHJlZVRyYW5zYWN0aW9uLCBjb25zdCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRy
YW5zYWN0aW9uJiBzY3JvbGxpbmdUcmVlVHJhbnNhY3Rpb24pCiB7Ci0gICAgbV9yZW1vdGVMYXll
clRyZWVIb3N0LnVwZGF0ZUxheWVyVHJlZShsYXllclRyZWVUcmFuc2FjdGlvbik7CisgICAgaWYg
KG1fcmVtb3RlTGF5ZXJUcmVlSG9zdC51cGRhdGVMYXllclRyZWUobGF5ZXJUcmVlVHJhbnNhY3Rp
b24pKQorICAgICAgICBtX3dlYlBhZ2VQcm94eS0+c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ1Jv
b3RMYXllcihtX3JlbW90ZUxheWVyVHJlZUhvc3Qucm9vdExheWVyKCkpOworCiAjaWYgRU5BQkxF
KEFTWU5DX1NDUk9MTElORykKICAgICBtX3dlYlBhZ2VQcm94eS0+c2Nyb2xsaW5nQ29vcmRpbmF0
b3JQcm94eSgpLT51cGRhdGVTY3JvbGxpbmdUcmVlKHNjcm9sbGluZ1RyZWVUcmFuc2FjdGlvbik7
CiAjZW5kaWYKICNpZiBQTEFURk9STShJT1MpCiAgICAgbV93ZWJQYWdlUHJveHktPmRpZENvbW1p
dExheWVyVHJlZShsYXllclRyZWVUcmFuc2FjdGlvbik7CiAjZW5kaWYKKworICAgIHNob3dEZWJ1
Z0luZGljYXRvcihtX3dlYlBhZ2VQcm94eS0+cHJlZmVyZW5jZXMoKS50aWxlZFNjcm9sbGluZ0lu
ZGljYXRvclZpc2libGUoKSk7CisKKyAgICBpZiAobV9kZWJ1Z0luZGljYXRvckxheWVyVHJlZUhv
c3QpIHsKKyAgICAgICAgZmxvYXQgc2NhbGUgPSBpbmRpY2F0b3JTY2FsZShsYXllclRyZWVUcmFu
c2FjdGlvbi5jb250ZW50c1NpemUoKSk7CisgICAgICAgIGJvb2wgcm9vdExheWVyQ2hhbmdlZCA9
IG1fZGVidWdJbmRpY2F0b3JMYXllclRyZWVIb3N0LT51cGRhdGVMYXllclRyZWUobGF5ZXJUcmVl
VHJhbnNhY3Rpb24sIHNjYWxlKTsKKyAgICAgICAgdXBkYXRlRGVidWdJbmRpY2F0b3IobGF5ZXJU
cmVlVHJhbnNhY3Rpb24uY29udGVudHNTaXplKCksIHJvb3RMYXllckNoYW5nZWQsIHNjYWxlKTsK
KyAgICAgICAgbV9kZWJ1Z0luZGljYXRvckxheWVyVHJlZUhvc3QtPnJvb3RMYXllcigpLm5hbWUg
PSBAIkluZGljYXRvciBob3N0IHJvb3QiOworICAgIH0KK30KKworc3RhdGljIGNvbnN0IGZsb2F0
IGluZGljYXRvckluc2V0ID0gMTA7CitzdGF0aWMgY29uc3QgZmxvYXQgaW5kaWNhdG9yVG9wSW5z
ZXQgPSAxMDA7CisKK3ZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6c2V0RXhw
b3NlZFJlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiByKQoreworICAgIERyYXdpbmdBcmVh
UHJveHk6OnNldEV4cG9zZWRSZWN0KHIpOworICAgIHVwZGF0ZURlYnVnSW5kaWNhdG9yUG9zaXRp
b24oKTsKK30KKworRmxvYXRQb2ludCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojpp
bmRpY2F0b3JMb2NhdGlvbigpIGNvbnN0Cit7CisgICAgaWYgKG1fd2ViUGFnZVByb3h5LT5kZWxl
Z2F0ZXNTY3JvbGxpbmcoKSkgeworICAgICAgICBGbG9hdFBvaW50IHRpbGVkTWFwTG9jYXRpb24g
PSBleHBvc2VkUmVjdCgpLmxvY2F0aW9uKCk7CisgICAgICAgIHRpbGVkTWFwTG9jYXRpb24gKz0g
RmxvYXRTaXplKGluZGljYXRvckluc2V0LCBpbmRpY2F0b3JUb3BJbnNldCk7CisgICAgICAgIGZs
b2F0IHNjYWxlID0gMSAvIG1fd2ViUGFnZVByb3h5LT5wYWdlU2NhbGVGYWN0b3IoKTsKKyAgICAg
ICAgdGlsZWRNYXBMb2NhdGlvbi5zY2FsZShzY2FsZSwgc2NhbGUpOworICAgICAgICByZXR1cm4g
dGlsZWRNYXBMb2NhdGlvbjsKKyAgICB9CisgICAgCisgICAgcmV0dXJuIEZsb2F0UG9pbnQoaW5k
aWNhdG9ySW5zZXQsIGluZGljYXRvckluc2V0KTsKK30KKwordm9pZCBSZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYVByb3h5Ojp1cGRhdGVEZWJ1Z0luZGljYXRvclBvc2l0aW9uKCkKK3sKKyAgICBp
ZiAoIW1fdGlsZU1hcEhvc3RMYXllcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV90aWxlTWFw
SG9zdExheWVyLmdldCgpLnBvc2l0aW9uID0gaW5kaWNhdG9yTG9jYXRpb24oKTsKK30KKworZmxv
YXQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6aW5kaWNhdG9yU2NhbGUoSW50U2l6
ZSBjb250ZW50c1NpemUpIGNvbnN0Cit7CisgICAgLy8gUGljayBhIGdvb2Qgc2NhbGUuCisgICAg
SW50U2l6ZSB2aWV3U2l6ZSA9IG1fd2ViUGFnZVByb3h5LT52aWV3U2l6ZSgpOworCisgICAgZmxv
YXQgc2NhbGUgPSAxOworICAgIGlmICghY29udGVudHNTaXplLmlzRW1wdHkoKSkgeworICAgICAg
ICBmbG9hdCB3aWR0aFNjYWxlID0gc3RkOjptaW48ZmxvYXQ+KCh2aWV3U2l6ZS53aWR0aCgpIC0g
MiAqIGluZGljYXRvckluc2V0KSAvIGNvbnRlbnRzU2l6ZS53aWR0aCgpLCAwLjA1KTsKKyAgICAg
ICAgc2NhbGUgPSBzdGQ6Om1pbih3aWR0aFNjYWxlLCBzdGF0aWNfY2FzdDxmbG9hdD4odmlld1Np
emUuaGVpZ2h0KCkgLSBpbmRpY2F0b3JUb3BJbnNldCAtIGluZGljYXRvckluc2V0KSAvIGNvbnRl
bnRzU2l6ZS5oZWlnaHQoKSk7CisgICAgfQorICAgIAorICAgIHJldHVybiBzY2FsZTsKK30KKwor
dm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojp1cGRhdGVEZWJ1Z0luZGljYXRv
cihJbnRTaXplIGNvbnRlbnRzU2l6ZSwgYm9vbCByb290TGF5ZXJDaGFuZ2VkLCBmbG9hdCBzY2Fs
ZSkKK3sKKyAgICAvLyBNYWtlIHN1cmUgd2UncmUgdGhlIGxhc3Qgc3VibGF5ZXIuCisgICAgQ0FM
YXllciAqcm9vdExheWVyID0gbV9yZW1vdGVMYXllclRyZWVIb3N0LnJvb3RMYXllcigpOworICAg
IFttX3RpbGVNYXBIb3N0TGF5ZXIgcmVtb3ZlRnJvbVN1cGVybGF5ZXJdOworICAgIFtyb290TGF5
ZXIgYWRkU3VibGF5ZXI6bV90aWxlTWFwSG9zdExheWVyLmdldCgpXTsKKworICAgIC8vIFBpY2sg
YSBnb29kIHNjYWxlLgorICAgIEludFNpemUgdmlld1NpemUgPSBtX3dlYlBhZ2VQcm94eS0+dmll
d1NpemUoKTsKKworICAgIG1fdGlsZU1hcEhvc3RMYXllci5nZXQoKS5ib3VuZHMgPSBGbG9hdFJl
Y3QoRmxvYXRQb2ludCgpLCBjb250ZW50c1NpemUpOworICAgIG1fdGlsZU1hcEhvc3RMYXllci5n
ZXQoKS5wb3NpdGlvbiA9IGluZGljYXRvckxvY2F0aW9uKCk7CisgICAgbV90aWxlTWFwSG9zdExh
eWVyLmdldCgpLnRyYW5zZm9ybSA9IENBVHJhbnNmb3JtM0RNYWtlU2NhbGUoc2NhbGUsIHNjYWxl
LCAxKTsKKworICAgIGlmIChyb290TGF5ZXJDaGFuZ2VkKSB7CisgICAgICAgIG1fdGlsZU1hcEhv
c3RMYXllci5nZXQoKS5zdWJsYXllcnMgPSBAW107CisgICAgICAgIFttX3RpbGVNYXBIb3N0TGF5
ZXIgYWRkU3VibGF5ZXI6bV9kZWJ1Z0luZGljYXRvckxheWVyVHJlZUhvc3QtPnJvb3RMYXllcigp
XTsKKyAgICAgICAgW21fdGlsZU1hcEhvc3RMYXllciBhZGRTdWJsYXllcjptX2V4cG9zZWRSZWN0
SW5kaWNhdG9yTGF5ZXIuZ2V0KCldOworICAgIH0KKyAgICAKKyAgICBjb25zdCBmbG9hdCBpbmRp
Y2F0b3JCb3JkZXJXaWR0aCA9IDE7CisgICAgZmxvYXQgY291bnRlclNjYWxlZEJvcmRlciA9IGlu
ZGljYXRvckJvcmRlcldpZHRoIC8gc2NhbGU7CisKKyAgICBtX2V4cG9zZWRSZWN0SW5kaWNhdG9y
TGF5ZXIuZ2V0KCkuYm9yZGVyV2lkdGggPSBjb3VudGVyU2NhbGVkQm9yZGVyOworCisgICAgaWYg
KG1fd2ViUGFnZVByb3h5LT5kZWxlZ2F0ZXNTY3JvbGxpbmcoKSkgeworICAgICAgICBGbG9hdFJl
Y3Qgc2NhbGVkRXhwb3NlZFJlY3QgPSBleHBvc2VkUmVjdCgpOworICAgICAgICBmbG9hdCBzY2Fs
ZSA9IDEgLyBtX3dlYlBhZ2VQcm94eS0+cGFnZVNjYWxlRmFjdG9yKCk7CisgICAgICAgIHNjYWxl
ZEV4cG9zZWRSZWN0LnNjYWxlKHNjYWxlLCBzY2FsZSk7CisKKyAgICAgICAgbV9leHBvc2VkUmVj
dEluZGljYXRvckxheWVyLmdldCgpLnBvc2l0aW9uID0gc2NhbGVkRXhwb3NlZFJlY3QubG9jYXRp
b24oKTsKKyAgICAgICAgbV9leHBvc2VkUmVjdEluZGljYXRvckxheWVyLmdldCgpLmJvdW5kcyA9
IEZsb2F0UmVjdChGbG9hdFBvaW50KCksIHNjYWxlZEV4cG9zZWRSZWN0LnNpemUoKSk7CisgICAg
fSBlbHNlIHsKKyAgICAgICAgLy8gRklYTUU6IGdldCB0aGUgY29ycmVjdCBzY3JvbGwgcG9zaXRp
b247CisgICAgICAgIG1fZXhwb3NlZFJlY3RJbmRpY2F0b3JMYXllci5nZXQoKS5ib3VuZHMgPSBG
bG9hdFJlY3QoRmxvYXRQb2ludCgpLCB2aWV3U2l6ZSk7CisgICAgfQorfQorCit2b2lkIFJlbW90
ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OnNob3dEZWJ1Z0luZGljYXRvcihib29sIHNob3cp
Cit7CisgICAgaWYgKHNob3cgPT0gISFtX2RlYnVnSW5kaWNhdG9yTGF5ZXJUcmVlSG9zdCkKKyAg
ICAgICAgcmV0dXJuOworICAgIAorICAgIGlmICghc2hvdykgeworICAgICAgICBbbV90aWxlTWFw
SG9zdExheWVyIHJlbW92ZUZyb21TdXBlcmxheWVyXTsKKyAgICAgICAgbV90aWxlTWFwSG9zdExh
eWVyID0gbnVsbHB0cjsKKyAgICAgICAgbV9leHBvc2VkUmVjdEluZGljYXRvckxheWVyID0gbnVs
bHB0cjsKKyAgICAgICAgbV9kZWJ1Z0luZGljYXRvckxheWVyVHJlZUhvc3QgPSBudWxscHRyOwor
ICAgICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIG1fZGVidWdJbmRpY2F0b3JMYXllclRy
ZWVIb3N0ID0gc3RkOjptYWtlX3VuaXF1ZTxSZW1vdGVMYXllclRyZWVIb3N0PigpOworICAgIG1f
ZGVidWdJbmRpY2F0b3JMYXllclRyZWVIb3N0LT5zZXRJc0RlYnVnTGF5ZXJUcmVlSG9zdCgpOwor
CisgICAgbV90aWxlTWFwSG9zdExheWVyID0gYWRvcHROUyhbW0NBTGF5ZXIgYWxsb2NdIGluaXRd
KTsKKyAgICBtX3RpbGVNYXBIb3N0TGF5ZXIuZ2V0KCkubmFtZSA9IEAiVGlsZSBtYXAgaG9zdCI7
CisgICAgW21fdGlsZU1hcEhvc3RMYXllciB3ZWJfZGlzYWJsZUFsbEFjdGlvbnNdOworICAgIG1f
dGlsZU1hcEhvc3RMYXllci5nZXQoKS5hbmNob3JQb2ludCA9IENHUG9pbnRaZXJvOworICAgIG1f
dGlsZU1hcEhvc3RMYXllci5nZXQoKS5vcGFjaXR5ID0gMC43NTsKKyAgICBtX3RpbGVNYXBIb3N0
TGF5ZXIuZ2V0KCkubWFza3NUb0JvdW5kcyA9IFlFUzsKKyAgICBtX3RpbGVNYXBIb3N0TGF5ZXIu
Z2V0KCkuYm9yZGVyV2lkdGggPSAyOworCisgICAgUmV0YWluUHRyPENHQ29sb3JTcGFjZVJlZj4g
Y29sb3JTcGFjZSA9IGFkb3B0Q0YoQ0dDb2xvclNwYWNlQ3JlYXRlRGV2aWNlUkdCKCkpOworICAg
IHsKKyAgICAgICAgY29uc3QgQ0dGbG9hdCBjb21wb25lbnRzW10gPSB7IDEsIDEsIDEsIDAuNiB9
OworICAgICAgICBSZXRhaW5QdHI8Q0dDb2xvclJlZj4gY29sb3IgPSBhZG9wdENGKENHQ29sb3JD
cmVhdGUoY29sb3JTcGFjZS5nZXQoKSwgY29tcG9uZW50cykpOworICAgICAgICBtX3RpbGVNYXBI
b3N0TGF5ZXIuZ2V0KCkuYmFja2dyb3VuZENvbG9yID0gY29sb3IuZ2V0KCk7CisKKyAgICAgICAg
Y29uc3QgQ0dGbG9hdCBib3JkZXJDbXBvbmVudHNbXSA9IHsgMCwgMCwgMCwgMSB9OworICAgICAg
ICBSZXRhaW5QdHI8Q0dDb2xvclJlZj4gYm9yZGVyQ29sb3IgPSBhZG9wdENGKENHQ29sb3JDcmVh
dGUoY29sb3JTcGFjZS5nZXQoKSwgYm9yZGVyQ21wb25lbnRzKSk7CisgICAgICAgIG1fdGlsZU1h
cEhvc3RMYXllci5nZXQoKS5ib3JkZXJDb2xvciA9IGJvcmRlckNvbG9yLmdldCgpOworICAgIH0K
KyAgICAKKyAgICBtX2V4cG9zZWRSZWN0SW5kaWNhdG9yTGF5ZXIgPSBhZG9wdE5TKFtbQ0FMYXll
ciBhbGxvY10gaW5pdF0pOworICAgIFttX2V4cG9zZWRSZWN0SW5kaWNhdG9yTGF5ZXIgd2ViX2Rp
c2FibGVBbGxBY3Rpb25zXTsKKyAgICBtX2V4cG9zZWRSZWN0SW5kaWNhdG9yTGF5ZXIuZ2V0KCku
YW5jaG9yUG9pbnQgPSBDR1BvaW50WmVybzsKKworICAgIHsKKyAgICAgICAgY29uc3QgQ0dGbG9h
dCBjb21wb25lbnRzW10gPSB7IDAsIDEsIDAsIDEgfTsKKyAgICAgICAgUmV0YWluUHRyPENHQ29s
b3JSZWY+IGNvbG9yID0gYWRvcHRDRihDR0NvbG9yQ3JlYXRlKGNvbG9yU3BhY2UuZ2V0KCksIGNv
bXBvbmVudHMpKTsKKyAgICAgICAgbV9leHBvc2VkUmVjdEluZGljYXRvckxheWVyLmdldCgpLmJv
cmRlckNvbG9yID0gY29sb3IuZ2V0KCk7CisgICAgfQogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJU
cmVlSG9zdC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVI
b3N0LmgKaW5kZXggYWY2MmM1MjdiNjkzYjM0N2IxOGRkMDI4OGIzZTU4YTAyNmYxMjg2NS4uZjc3
NjI1NTcwM2IyNzNmMThlMTE4YzIzN2VjYjlkNDIzOWIxODRlYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVIb3N0LmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVIb3N0LmgKQEAgLTM5LDIwICsz
OSwyNCBAQCBjbGFzcyBXZWJQYWdlUHJveHk7CiAKIGNsYXNzIFJlbW90ZUxheWVyVHJlZUhvc3Qg
ewogcHVibGljOgotICAgIGV4cGxpY2l0IFJlbW90ZUxheWVyVHJlZUhvc3QoV2ViUGFnZVByb3h5
Kik7CisgICAgZXhwbGljaXQgUmVtb3RlTGF5ZXJUcmVlSG9zdCgpOwogICAgIHZpcnR1YWwgflJl
bW90ZUxheWVyVHJlZUhvc3QoKTsKIAogICAgIENBTGF5ZXIgKmdldExheWVyKFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCkgY29uc3Q7CisgICAgQ0FMYXllciAqcm9vdExh
eWVyKCkgY29uc3QgeyByZXR1cm4gbV9yb290TGF5ZXI7IH0KIAotICAgIHZvaWQgdXBkYXRlTGF5
ZXJUcmVlKGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uJik7CisgICAgLy8gUmV0dXJu
cyB0cnVlIGlmIHRoZSByb290IGxheWVyIGNoYW5nZWQuCisgICAgYm9vbCB1cGRhdGVMYXllclRy
ZWUoY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24mLCBmbG9hdCBpbmRpY2F0b3JTY2Fs
ZUZhY3RvciAgPSAxKTsKKworICAgIHZvaWQgc2V0SXNEZWJ1Z0xheWVyVHJlZUhvc3QoYm9vbCBm
bGFnID0gdHJ1ZSkgeyBtX2lzRGVidWdMYXllclRyZWVIb3N0ID0gZmxhZzsgfQorICAgIGJvb2wg
aXNEZWJ1Z0xheWVyVHJlZUhvc3QoKSBjb25zdCB7IHJldHVybiBtX2lzRGVidWdMYXllclRyZWVI
b3N0OyB9CiAKIHByaXZhdGU6CiAgICAgQ0FMYXllciAqY3JlYXRlTGF5ZXIoUmVtb3RlTGF5ZXJU
cmVlVHJhbnNhY3Rpb246OkxheWVyQ3JlYXRpb25Qcm9wZXJ0aWVzKTsKIAotICAgIFdlYlBhZ2VQ
cm94eSogbV93ZWJQYWdlUHJveHk7Ci0KICAgICBDQUxheWVyICptX3Jvb3RMYXllcjsKICAgICBI
YXNoTWFwPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCwgUmV0YWluUHRy
PENBTGF5ZXI+PiBtX2xheWVyczsKKyAgICBib29sIG1faXNEZWJ1Z0xheWVyVHJlZUhvc3Q7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlSG9zdC5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlSG9zdC5tbQppbmRleCA4M2U3M2YyYjhjYTc5ZGIwYTAx
MzFhNGE0YzQyMDdiOTI1ZGEzZWM1Li40ZWZiYzIzZmIxZWI3YTZjZmFjMjg4N2M5YjUzNmVlMmU2
MWRmNTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxh
eWVyVHJlZUhvc3QubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVM
YXllclRyZWVIb3N0Lm1tCkBAIC00Miw5ICs0Miw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotUmVtb3RlTGF5ZXJUcmVlSG9zdDo6UmVtb3RlTGF5
ZXJUcmVlSG9zdChXZWJQYWdlUHJveHkqIHdlYlBhZ2VQcm94eSkKLSAgICA6IG1fd2ViUGFnZVBy
b3h5KHdlYlBhZ2VQcm94eSkKLSAgICAsIG1fcm9vdExheWVyKG51bGxwdHIpCitSZW1vdGVMYXll
clRyZWVIb3N0OjpSZW1vdGVMYXllclRyZWVIb3N0KCkKKyAgICA6IG1fcm9vdExheWVyKG51bGxw
dHIpCisgICAgLCBtX2lzRGVidWdMYXllclRyZWVIb3N0KGZhbHNlKQogewogfQogCkBAIC01Miwx
NyArNTIsMTggQEAgUmVtb3RlTGF5ZXJUcmVlSG9zdDo6flJlbW90ZUxheWVyVHJlZUhvc3QoKQog
ewogfQogCi12b2lkIFJlbW90ZUxheWVyVHJlZUhvc3Q6OnVwZGF0ZUxheWVyVHJlZShjb25zdCBS
ZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24pCitib29sIFJlbW90ZUxheWVy
VHJlZUhvc3Q6OnVwZGF0ZUxheWVyVHJlZShjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlv
biYgdHJhbnNhY3Rpb24sIGZsb2F0IGluZGljYXRvclNjYWxlRmFjdG9yKQogewogICAgIExPRyhS
ZW1vdGVMYXllclRyZWUsICIlcyIsIHRyYW5zYWN0aW9uLmRlc2NyaXB0aW9uKCkuZGF0YSgpKTsK
IAogICAgIGZvciAoYXV0byBjcmVhdGVkTGF5ZXIgOiB0cmFuc2FjdGlvbi5jcmVhdGVkTGF5ZXJz
KCkpCiAgICAgICAgIGNyZWF0ZUxheWVyKGNyZWF0ZWRMYXllcik7CiAKKyAgICBib29sIHJvb3RM
YXllckNoYW5nZWQgPSBmYWxzZTsKICAgICBDQUxheWVyICpyb290TGF5ZXIgPSBnZXRMYXllcih0
cmFuc2FjdGlvbi5yb290TGF5ZXJJRCgpKTsKICAgICBpZiAobV9yb290TGF5ZXIgIT0gcm9vdExh
eWVyKSB7CiAgICAgICAgIG1fcm9vdExheWVyID0gcm9vdExheWVyOwotICAgICAgICBtX3dlYlBh
Z2VQcm94eS0+c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ1Jvb3RMYXllcihtX3Jvb3RMYXllcik7
CisgICAgICAgIHJvb3RMYXllckNoYW5nZWQgPSB0cnVlOwogICAgIH0KIAogICAgIGZvciAoYXV0
byBjaGFuZ2VkTGF5ZXIgOiB0cmFuc2FjdGlvbi5jaGFuZ2VkTGF5ZXJzKCkpIHsKQEAgLTgxLDEx
ICs4MiwyMSBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZUhvc3Q6OnVwZGF0ZUxheWVyVHJlZShjb25z
dCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbiYgdHJhbgogICAgICAgICBpZiAocHJvcGVydGll
cy5jaGFuZ2VkUHJvcGVydGllcyAmIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpNYXNrTGF5
ZXJDaGFuZ2VkICYmIHByb3BlcnRpZXMubWFza0xheWVySUQpCiAgICAgICAgICAgICByZWxhdGVk
TGF5ZXJzLnNldChwcm9wZXJ0aWVzLm1hc2tMYXllcklELCBnZXRMYXllcihwcm9wZXJ0aWVzLm1h
c2tMYXllcklEKSk7CiAKLSAgICAgICAgUmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVyOjph
cHBseVByb3BlcnRpZXNUb0xheWVyKGxheWVyLCBwcm9wZXJ0aWVzLCByZWxhdGVkTGF5ZXJzKTsK
KyAgICAgICAgaWYgKG1faXNEZWJ1Z0xheWVyVHJlZUhvc3QpIHsKKyAgICAgICAgICAgIFJlbW90
ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXMgcHJvcGVydGllc0NvcHkocHJv
cGVydGllcyk7CisgICAgICAgICAgICBwcm9wZXJ0aWVzQ29weS5tYXNrc1RvQm91bmRzID0gZmFs
c2U7CisgICAgICAgICAgICBpZiAocHJvcGVydGllc0NvcHkuY2hhbmdlZFByb3BlcnRpZXMgJiBS
ZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6Qm9yZGVyV2lkdGhDaGFuZ2VkKQorICAgICAgICAg
ICAgICAgIHByb3BlcnRpZXNDb3B5LmJvcmRlcldpZHRoICo9IDEgLyBpbmRpY2F0b3JTY2FsZUZh
Y3RvcjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgUmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlB
cHBsaWVyOjphcHBseVByb3BlcnRpZXNUb0xheWVyKGxheWVyLCBwcm9wZXJ0aWVzQ29weSwgcmVs
YXRlZExheWVycyk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgUmVtb3RlTGF5ZXJUcmVl
UHJvcGVydHlBcHBsaWVyOjphcHBseVByb3BlcnRpZXNUb0xheWVyKGxheWVyLCBwcm9wZXJ0aWVz
LCByZWxhdGVkTGF5ZXJzKTsKICAgICB9CiAKICAgICBmb3IgKGF1dG8gZGVzdHJveWVkTGF5ZXIg
OiB0cmFuc2FjdGlvbi5kZXN0cm95ZWRMYXllcnMoKSkKICAgICAgICAgbV9sYXllcnMucmVtb3Zl
KGRlc3Ryb3llZExheWVyKTsKKworICAgIHJldHVybiByb290TGF5ZXJDaGFuZ2VkOwogfQogCiBD
QUxheWVyICpSZW1vdGVMYXllclRyZWVIb3N0OjpnZXRMYXllcihHcmFwaGljc0xheWVyOjpQbGF0
Zm9ybUxheWVySUQgbGF5ZXJJRCkgY29uc3QKQEAgLTExNiw3ICsxMjcsMTAgQEAgQ0FMYXllciAq
UmVtb3RlTGF5ZXJUcmVlSG9zdDo6Y3JlYXRlTGF5ZXIoUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rp
b246OkxheWVyQ3JlYXQKICAgICAgICAgbGF5ZXIgPSBhZG9wdE5TKFtbQ0FUcmFuc2Zvcm1MYXll
ciBhbGxvY10gaW5pdF0pOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFBsYXRmb3JtQ0FMYXll
cjo6TGF5ZXJUeXBlQ3VzdG9tOgotICAgICAgICBsYXllciA9IFdLTWFrZVJlbmRlckxheWVyKHBy
b3BlcnRpZXMuaG9zdGluZ0NvbnRleHRJRCk7CisgICAgICAgIGlmICghbV9pc0RlYnVnTGF5ZXJU
cmVlSG9zdCkKKyAgICAgICAgICAgIGxheWVyID0gV0tNYWtlUmVuZGVyTGF5ZXIocHJvcGVydGll
cy5ob3N0aW5nQ29udGV4dElEKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbGF5ZXIgPSBh
ZG9wdE5TKFtbQ0FMYXllciBhbGxvY10gaW5pdF0pOwogICAgICAgICBicmVhazsKICAgICBkZWZh
dWx0OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
</data>
<flag name="review"
          id="247820"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>