<?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>124165</bug_id>
          
          <creation_ts>2013-11-11 13:58:17 -0800</creation_ts>
          <short_desc>Remote Layer Tree: Implement Page Overlays</short_desc>
          <delta_ts>2013-11-11 16:23:20 -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>WebKit2</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>andersca</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>949439</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-11-11 13:58:17 -0800</bug_when>
    <thetext>Bring over page overlay functionality from TCADA.

&lt;rdar://problem/15199056&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949473</commentid>
    <comment_count>1</comment_count>
      <attachid>216616</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-11-11 15:42:04 -0800</bug_when>
    <thetext>Created attachment 216616
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949474</commentid>
    <comment_count>2</comment_count>
      <attachid>216617</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-11-11 15:53:02 -0800</bug_when>
    <thetext>Created attachment 216617
anders comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949476</commentid>
    <comment_count>3</comment_count>
      <attachid>216617</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-11-11 16:00:30 -0800</bug_when>
    <thetext>Comment on attachment 216617
anders comments

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

&gt; Source/WebKit2/WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:78
&gt; +    typedef HashMap&lt;PageOverlay*, std::unique_ptr&lt;GraphicsLayerCARemote&gt;&gt; PageOverlayLayerMap;
&gt; +    PageOverlayLayerMap m_pageOverlayLayers;

No need for a typedef here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949480</commentid>
    <comment_count>4</comment_count>
      <attachid>216620</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-11-11 16:11:12 -0800</bug_when>
    <thetext>Created attachment 216620
for landing once SVN returns</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949481</commentid>
    <comment_count>5</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-11-11 16:23:20 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/159079</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>216616</attachid>
            <date>2013-11-11 15:42:04 -0800</date>
            <delta_ts>2013-11-11 15:53:02 -0800</delta_ts>
            <desc>patch</desc>
            <filename>overlay.diff</filename>
            <type>text/plain</type>
            <size>12075</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBkMjQ1NjZmLi5kZjIyMWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEg
QEAKKzIwMTMtMTEtMTEgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgUmVtb3RlIExheWVyIFRyZWU6IEltcGxlbWVudCBQYWdlIE92ZXJsYXlzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQxNjUKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzE1MTk5MDU2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBwYWdlIG92ZXJsYXlzLCB2ZXJ5IHNpbWls
YXIgdG8gaG93IHRoZXkgd29yayBpbiBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYSwKKyAg
ICAgICAgYnV0IG1hbmlwdWxhdGluZyB0aGUgUGxhdGZvcm1DQUxheWVyIHRyZWUgaW5zdGVhZCBv
ZiB0aGUgQ0FMYXllciB0cmVlIGRpcmVjdGx5LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0Lm1tOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVMYXllclRyZWVDb250ZXh0OjpvdXRPZlRyZWVMYXllcldhc0FkZGVkKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlQ29udGV4dDo6b3V0T2ZUcmVlTGF5ZXJXaWxsQmVSZW1v
dmVkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlQ29udGV4dDo6Zmx1c2hMYXll
cnMpOgorICAgICAgICBBZGQgYSBsaXN0IG9mIG91dC1vZi10cmVlIEdyYXBoaWNzTGF5ZXJzIHdo
aWNoIGFyZSBmbHVzaGVkIGluIGFkZGl0aW9uCisgICAgICAgIHRvIHRoZSBwYWdlJ3MgR3JhcGhp
Y3NMYXllciB0cmVlLCBhbmQgZnVuY3Rpb25zIHRvIG1hbmlwdWxhdGUgdGhpcyBsaXN0LgorCisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJl
YS5oOgorICAgICAgICBNYWtlIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhIGEgR3JhcGhpY3NM
YXllckNsaWVudCwgc28gd2UgY2FuIGdldCBjYWxsYmFja3MKKyAgICAgICAgZnJvbSB0aGUgR3Jh
cGhpY3NMYXllcnMgdGhhdCBkcml2ZSBvdXIgcGFnZSBvdmVybGF5cy4KKyAgICAgICAgT3ZlcnJp
ZGUgdGhlIHJlbGV2YW50IHBhZ2Ugb3ZlcmxheSBmdW5jdGlvbnMuCisgICAgICAgIEFkZCBzdG9y
YWdlIGZvciB0aGUgcm9vdCBsYXllciwgdmlldyBzaXplLCBhbmQgYSBtYXAgb2YgUGFnZU92ZXJs
YXktPkdyYXBoaWNzTGF5ZXIuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1Jl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYTo6c2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIpOgorICAgICAgICBTdG9y
ZSB0aGUgcm9vdCBHcmFwaGljc0xheWVyIGZvciBsYXRlciB1c2UuCisKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnVwZGF0ZUdlb21ldHJ5KToKKyAgICAgICAg
VXBkYXRlIHRoZSBzaXplIG9mIHRoZSBwYWdlIG92ZXJsYXlzIHdoZW4gdGhlIERyYXdpbmdBcmVh
J3MgZ2VvbWV0cnkgY2hhbmdlcy4KKworICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYTo6dXBkYXRlUHJlZmVyZW5jZXMpOgorICAgICAgICBVcGRhdGUgdGhlIHBhZ2Ug
b3ZlcmxheSBzZXR0aW5ncyB3aGVuIG5lY2Vzc2FyeS4KKworICAgICAgICAoV2ViS2l0OjpSZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYTo6ZGlkSW5zdGFsbFBhZ2VPdmVybGF5KToKKyAgICAgICAg
Q3JlYXRlIGEgR3JhcGhpY3NMYXllciBmb3Igb3VyIHBhZ2Ugb3ZlcmxheSwgc2V0IGl0IHVwLCBh
bmQgcGFyZW50IGl0LgorICAgICAgICBJbmZvcm0gdGhlIFJlbW90ZUxheWVyVHJlZUNvbnRleHQg
dGhhdCBpdCB3aWxsIG5lZWQgdG8gZmx1c2ggdGhpcyBHcmFwaGljc0xheWVyLAorICAgICAgICBz
aW5jZSBpdCdzIG5vdCBhIHBhcnQgb2YgdGhlIHBhZ2UncyBHcmFwaGljc0xheWVyIHRyZWUuCisK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmRpZFVuaW5zdGFs
bFBhZ2VPdmVybGF5KToKKyAgICAgICAgVGVhciBkb3duIG91ciBwYWdlIG92ZXJsYXkncyBHcmFw
aGljc0xheWVyLgorCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
OjpzZXRQYWdlT3ZlcmxheU5lZWRzRGlzcGxheSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxh
eWVyVHJlZURyYXdpbmdBcmVhOjpzZXRQYWdlT3ZlcmxheU9wYWNpdHkpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6cGFpbnRDb250ZW50cyk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpkZXZpY2VTY2FsZUZhY3Rvcik6
CisKIDIwMTMtMTEtMTEgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgogCiAgICAgICAgIFtHVEtdIENyYXNoIHdoZW4gcHJpbnRpbmcgdmlhIGphdmFzY3JpcHQgaW4g
V2ViS2l0MgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9SZW1vdGVMYXllclRyZWVDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQuaAppbmRleCBkOTk1YjUyLi5hM2VhMjlh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90
ZUxheWVyVHJlZUNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQuaApAQCAtNTEsNiArNTEsOSBAQCBwdWJsaWM6
CiAgICAgdm9pZCBsYXllcldhc0NyZWF0ZWQoUGxhdGZvcm1DQUxheWVyUmVtb3RlKiwgV2ViQ29y
ZTo6UGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGUpOwogICAgIHZvaWQgbGF5ZXJXaWxsQmVEZXN0
cm95ZWQoUGxhdGZvcm1DQUxheWVyUmVtb3RlKik7CiAKKyAgICB2b2lkIG91dE9mVHJlZUxheWVy
V2FzQWRkZWQoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopOworICAgIHZvaWQgb3V0T2ZUcmVlTGF5
ZXJXaWxsQmVSZW1vdmVkKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKKwogICAgIExheWVySG9z
dGluZ01vZGUgbGF5ZXJIb3N0aW5nTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fd2ViUGFnZS0+bGF5
ZXJIb3N0aW5nTW9kZSgpOyB9CiAKIHByaXZhdGU6CkBAIC02NCw2ICs2Nyw3IEBAIHByaXZhdGU6
CiAgICAgV2ViQ29yZTo6VGltZXI8UmVtb3RlTGF5ZXJUcmVlQ29udGV4dD4gbV9sYXllckZsdXNo
VGltZXI7CiAKICAgICBSZWZQdHI8UGxhdGZvcm1DQUxheWVyUmVtb3RlPiBtX3Jvb3RMYXllcjsK
KyAgICBWZWN0b3I8V2ViQ29yZTo6R3JhcGhpY3NMYXllcio+IG1fb3V0T2ZUcmVlTGF5ZXJzOwog
CiAgICAgVmVjdG9yPFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllckNyZWF0aW9uUHJv
cGVydGllcz4gbV9jcmVhdGVkTGF5ZXJzOwogICAgIFZlY3RvcjxSZW1vdGVMYXllclRyZWVUcmFu
c2FjdGlvbjo6TGF5ZXJJRD4gbV9kZXN0cm95ZWRMYXllcnM7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQubW0g
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNv
bnRleHQubW0KaW5kZXggZjU3YTYxMi4uNDFjZmJkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29u
dGV4dC5tbQpAQCAtNzgsNiArNzgsMTkgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVDb250ZXh0Ojps
YXllcldpbGxCZURlc3Ryb3llZChQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUqIGxheWVyKQogICAgIG1f
ZGVzdHJveWVkTGF5ZXJzLmFwcGVuZChsYXllci0+bGF5ZXJJRCgpKTsKIH0KIAordm9pZCBSZW1v
dGVMYXllclRyZWVDb250ZXh0OjpvdXRPZlRyZWVMYXllcldhc0FkZGVkKEdyYXBoaWNzTGF5ZXIq
IGxheWVyKQoreworICAgIEFTU0VSVCghbV9vdXRPZlRyZWVMYXllcnMuY29udGFpbnMobGF5ZXIp
KTsKKyAgICBtX291dE9mVHJlZUxheWVycy5hcHBlbmQobGF5ZXIpOworfQorCit2b2lkIFJlbW90
ZUxheWVyVHJlZUNvbnRleHQ6Om91dE9mVHJlZUxheWVyV2lsbEJlUmVtb3ZlZChHcmFwaGljc0xh
eWVyKiBsYXllcikKK3sKKyAgICBzaXplX3QgbGF5ZXJJbmRleCA9IG1fb3V0T2ZUcmVlTGF5ZXJz
LmZpbmQobGF5ZXIpOworICAgIEFTU0VSVChsYXllckluZGV4ICE9IG5vdEZvdW5kKTsKKyAgICBt
X291dE9mVHJlZUxheWVycy5yZW1vdmUobGF5ZXJJbmRleCk7Cit9CisKIHZvaWQgUmVtb3RlTGF5
ZXJUcmVlQ29udGV4dDo6c2NoZWR1bGVMYXllckZsdXNoKCkKIHsKICAgICBpZiAobV9sYXllckZs
dXNoVGltZXIuaXNBY3RpdmUoKSkKQEAgLTEwOCw2ICsxMjEsOSBAQCB2b2lkIFJlbW90ZUxheWVy
VHJlZUNvbnRleHQ6OmZsdXNoTGF5ZXJzKCkKICAgICBtX3dlYlBhZ2UtPmxheW91dElmTmVlZGVk
KCk7CiAgICAgbV93ZWJQYWdlLT5jb3JlUGFnZSgpLT5tYWluRnJhbWUoKS52aWV3KCktPmZsdXNo
Q29tcG9zaXRpbmdTdGF0ZUluY2x1ZGluZ1N1YmZyYW1lcygpOwogCisgICAgZm9yIChjb25zdCBh
dXRvJiBsYXllciA6IG1fb3V0T2ZUcmVlTGF5ZXJzKQorICAgICAgICBsYXllci0+Zmx1c2hDb21w
b3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpOworCiAgICAgdHJhbnNhY3Rpb24uc2V0Q3Jl
YXRlZExheWVycyhzdGQ6Om1vdmUobV9jcmVhdGVkTGF5ZXJzKSk7CiAgICAgdHJhbnNhY3Rpb24u
c2V0RGVzdHJveWVkTGF5ZXJJRHMoc3RkOjptb3ZlKG1fZGVzdHJveWVkTGF5ZXJzKSk7CiAgICAg
bV9yb290TGF5ZXItPnJlY3Vyc2l2ZUJ1aWxkVHJhbnNhY3Rpb24odHJhbnNhY3Rpb24pOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5oCmluZGV4IDI5YWM1MjcuLmU0YzUzOWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWEuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmgKQEAgLTI3LDEyICsyNywxOSBAQAog
I2RlZmluZSBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYV9oCiAKICNpbmNsdWRlICJEcmF3aW5n
QXJlYS5oIgorI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXJDQVJlbW90ZS5oIgorI2luY2x1ZGUgPFdl
YkNvcmUvR3JhcGhpY3NMYXllckNsaWVudC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFBsYXRmb3JtQ0FMYXllcjsKK30KIAogbmFtZXNw
YWNlIFdlYktpdCB7CiAKIGNsYXNzIFJlbW90ZUxheWVyVHJlZUNvbnRleHQ7CiAKLWNsYXNzIFJl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhIDogcHVibGljIERyYXdpbmdBcmVhIHsKK2NsYXNzIFJl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhIDogcHVibGljIERyYXdpbmdBcmVhLCBwdWJsaWMgV2Vi
Q29yZTo6R3JhcGhpY3NMYXllckNsaWVudCB7CiBwdWJsaWM6CiAgICAgUmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWEoV2ViUGFnZSosIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmKTsK
ICAgICB2aXJ0dWFsIH5SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYSgpOwpAQCAtNTIsNyArNTks
MjUgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVQcmVmZXJlbmNlcyhjb25z
dCBXZWJQcmVmZXJlbmNlc1N0b3JlJikgT1ZFUlJJREU7CiAKKyAgICB2aXJ0dWFsIHZvaWQgZGlk
SW5zdGFsbFBhZ2VPdmVybGF5KFBhZ2VPdmVybGF5KikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2
b2lkIGRpZFVuaW5zdGFsbFBhZ2VPdmVybGF5KFBhZ2VPdmVybGF5KikgT1ZFUlJJREU7CisgICAg
dmlydHVhbCB2b2lkIHNldFBhZ2VPdmVybGF5TmVlZHNEaXNwbGF5KFBhZ2VPdmVybGF5KiwgY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRQYWdl
T3ZlcmxheU9wYWNpdHkoUGFnZU92ZXJsYXkqLCBmbG9hdCkgT1ZFUlJJREU7CisKKyAgICAvLyBX
ZWJDb3JlOjpHcmFwaGljc0xheWVyQ2xpZW50CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFuaW1h
dGlvblN0YXJ0ZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIGRvdWJsZSB0aW1lKSBP
VkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBX
ZWJDb3JlOjpHcmFwaGljc0xheWVyKikgT1ZFUlJJREUgeyB9CisgICAgdmlydHVhbCB2b2lkIHBh
aW50Q29udGVudHMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dCYsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0JiBjbGlwUmVjdCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBmbG9hdCBk
ZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRD
b21taXRDaGFuZ2VzRm9yTGF5ZXIoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0
IE9WRVJSSURFIHsgfQorCiAgICAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZUxheWVyVHJlZUNvbnRl
eHQ+IG1fcmVtb3RlTGF5ZXJUcmVlQ29udGV4dDsKKyAgICBSZWZQdHI8V2ViQ29yZTo6UGxhdGZv
cm1DQUxheWVyPiBtX3Jvb3RMYXllcjsKKworICAgIHR5cGVkZWYgSGFzaE1hcDxQYWdlT3Zlcmxh
eSosIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyQ0FSZW1vdGU+PiBQYWdlT3ZlcmxheUxh
eWVyTWFwOworICAgIFBhZ2VPdmVybGF5TGF5ZXJNYXAgbV9wYWdlT3ZlcmxheUxheWVyczsKKwor
ICAgIFdlYkNvcmU6OkludFNpemUgbV92aWV3U2l6ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9S
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0KaW5kZXggZGU2MWVkYS4u
NWFkZWI5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tCkBAIC0yNyw2
ICsyNyw3IEBACiAjaW1wb3J0ICJSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5oIgogCiAjaW1w
b3J0ICJEcmF3aW5nQXJlYVByb3h5TWVzc2FnZXMuaCIKKyNpbXBvcnQgIkdyYXBoaWNzTGF5ZXJD
QVJlbW90ZS5oIgogI2ltcG9ydCAiUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5oIgogI2ltcG9ydCAi
V2ViUGFnZS5oIgogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZS5oPgpAQCAtNjgsNiArNjksOCBAQCBH
cmFwaGljc0xheWVyRmFjdG9yeSogUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmdyYXBoaWNz
TGF5ZXJGYWN0b3J5KCkKIAogdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6c2V0Um9v
dENvbXBvc2l0aW5nTGF5ZXIoR3JhcGhpY3NMYXllciogcm9vdExheWVyKQogeworICAgIG1fcm9v
dExheWVyID0gcm9vdExheWVyID8gc3RhdGljX2Nhc3Q8R3JhcGhpY3NMYXllckNBUmVtb3RlKj4o
cm9vdExheWVyKS0+cGxhdGZvcm1DQUxheWVyKCkgOiBudWxscHRyOworCiAgICAgbV9yZW1vdGVM
YXllclRyZWVDb250ZXh0LT5zZXRSb290TGF5ZXIocm9vdExheWVyKTsKIH0KIApAQCAtNzgsNyAr
ODEsMTUgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6c2NoZWR1bGVDb21wb3Np
dGluZ0xheWVyRmx1c2goKQogCiB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjp1cGRh
dGVHZW9tZXRyeShjb25zdCBJbnRTaXplJiB2aWV3U2l6ZSwgY29uc3QgSW50U2l6ZSYgbGF5ZXJQ
b3NpdGlvbikKIHsKKyAgICBtX3ZpZXdTaXplID0gdmlld1NpemU7CiAgICAgbV93ZWJQYWdlLT5z
ZXRTaXplKHZpZXdTaXplKTsKKworICAgIGZvciAoUGFnZU92ZXJsYXlMYXllck1hcDo6aXRlcmF0
b3IgaXQgPSBtX3BhZ2VPdmVybGF5TGF5ZXJzLmJlZ2luKCksIGVuZCA9IG1fcGFnZU92ZXJsYXlM
YXllcnMuZW5kKCk7IGl0ICE9IGVuZDsgKytpdCkgeworICAgICAgICBHcmFwaGljc0xheWVyKiBs
YXllciA9IGl0LT52YWx1ZS5nZXQoKTsKKyAgICAgICAgaWYgKGxheWVyLT5kcmF3c0NvbnRlbnQo
KSkKKyAgICAgICAgICAgIGxheWVyLT5zZXRTaXplKHZpZXdTaXplKTsKKyAgICB9CisKICAgICBz
Y2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpOwogCiAgICAgbV93ZWJQYWdlLT5zZW5kKE1l
c3NhZ2VzOjpEcmF3aW5nQXJlYVByb3h5OjpEaWRVcGRhdGVHZW9tZXRyeSgpKTsKQEAgLTk3LDYg
KzEwOCw4MyBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjp1cGRhdGVQcmVmZXJl
bmNlcyhjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJikKICAgICAvLyBpbiBvcmRlciB0byBiZSBz
Y3JvbGxlZCBieSB0aGUgU2Nyb2xsaW5nQ29vcmRpbmF0b3IuCiAgICAgc2V0dGluZ3Muc2V0QWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb25FbmFibGVkKHRydWUpOwogICAgIHNl
dHRpbmdzLnNldEZpeGVkUG9zaXRpb25DcmVhdGVzU3RhY2tpbmdDb250ZXh0KHRydWUpOworCisg
ICAgZm9yIChhdXRvIGl0ID0gbV9wYWdlT3ZlcmxheUxheWVycy5iZWdpbigpLCBlbmQgPSBtX3Bh
Z2VPdmVybGF5TGF5ZXJzLmVuZCgpOyBpdCAhPSBlbmQ7ICsraXQpIHsKKyAgICAgICAgaXQtPnZh
bHVlLT5zZXRBY2NlbGVyYXRlc0RyYXdpbmcoc2V0dGluZ3MuYWNjZWxlcmF0ZWREcmF3aW5nRW5h
YmxlZCgpKTsKKyAgICAgICAgaXQtPnZhbHVlLT5zZXRTaG93RGVidWdCb3JkZXIoc2V0dGluZ3Mu
c2hvd0RlYnVnQm9yZGVycygpKTsKKyAgICAgICAgaXQtPnZhbHVlLT5zZXRTaG93UmVwYWludENv
dW50ZXIoc2V0dGluZ3Muc2hvd1JlcGFpbnRDb3VudGVyKCkpOworICAgIH0KK30KKwordm9pZCBS
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6ZGlkSW5zdGFsbFBhZ2VPdmVybGF5KFBhZ2VPdmVy
bGF5KiBwYWdlT3ZlcmxheSkKK3sKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllckNB
UmVtb3RlPiBsYXllcihzdGF0aWNfY2FzdDxHcmFwaGljc0xheWVyQ0FSZW1vdGUqPihHcmFwaGlj
c0xheWVyOjpjcmVhdGUoZ3JhcGhpY3NMYXllckZhY3RvcnkoKSwgdGhpcykucmVsZWFzZSgpKSk7
CisjaWZuZGVmIE5ERUJVRworICAgIGxheWVyLT5zZXROYW1lKCJwYWdlIG92ZXJsYXkgY29udGVu
dCIpOworI2VuZGlmCisKKyAgICBsYXllci0+c2V0QWNjZWxlcmF0ZXNEcmF3aW5nKG1fd2ViUGFn
ZS0+Y29yZVBhZ2UoKS0+c2V0dGluZ3MoKS5hY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKCkpOwor
ICAgIGxheWVyLT5zZXRTaG93RGVidWdCb3JkZXIobV93ZWJQYWdlLT5jb3JlUGFnZSgpLT5zZXR0
aW5ncygpLnNob3dEZWJ1Z0JvcmRlcnMoKSk7CisgICAgbGF5ZXItPnNldFNob3dSZXBhaW50Q291
bnRlcihtX3dlYlBhZ2UtPmNvcmVQYWdlKCktPnNldHRpbmdzKCkuc2hvd1JlcGFpbnRDb3VudGVy
KCkpOworCisgICAgbV9yb290TGF5ZXItPmFwcGVuZFN1YmxheWVyKGxheWVyLT5wbGF0Zm9ybUNB
TGF5ZXIoKSk7CisgICAgbV9yZW1vdGVMYXllclRyZWVDb250ZXh0LT5vdXRPZlRyZWVMYXllcldh
c0FkZGVkKGxheWVyLmdldCgpKTsKKworICAgIG1fcGFnZU92ZXJsYXlMYXllcnMuYWRkKHBhZ2VP
dmVybGF5LCBzdGQ6Om1vdmUobGF5ZXIpKTsKKyAgICBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJG
bHVzaCgpOworfQorCit2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpkaWRVbmluc3Rh
bGxQYWdlT3ZlcmxheShQYWdlT3ZlcmxheSogcGFnZU92ZXJsYXkpCit7CisgICAgc3RkOjp1bmlx
dWVfcHRyPEdyYXBoaWNzTGF5ZXJDQVJlbW90ZT4gbGF5ZXIgPSBtX3BhZ2VPdmVybGF5TGF5ZXJz
LnRha2UocGFnZU92ZXJsYXkpOworICAgIEFTU0VSVChsYXllcik7CisKKyAgICBtX3JlbW90ZUxh
eWVyVHJlZUNvbnRleHQtPm91dE9mVHJlZUxheWVyV2lsbEJlUmVtb3ZlZChsYXllci5nZXQoKSk7
CisgICAgbGF5ZXItPnBsYXRmb3JtQ0FMYXllcigpLT5yZW1vdmVGcm9tU3VwZXJsYXllcigpOwor
CisgICAgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKTsKK30KKwordm9pZCBSZW1vdGVM
YXllclRyZWVEcmF3aW5nQXJlYTo6c2V0UGFnZU92ZXJsYXlOZWVkc0Rpc3BsYXkoUGFnZU92ZXJs
YXkqIHBhZ2VPdmVybGF5LCBjb25zdCBJbnRSZWN0JiByZWN0KQoreworICAgIEdyYXBoaWNzTGF5
ZXJDQVJlbW90ZSogbGF5ZXIgPSBtX3BhZ2VPdmVybGF5TGF5ZXJzLmdldChwYWdlT3ZlcmxheSk7
CisKKyAgICBpZiAoIWxheWVyKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIWxheWVyLT5k
cmF3c0NvbnRlbnQoKSkgeworICAgICAgICBsYXllci0+c2V0RHJhd3NDb250ZW50KHRydWUpOwor
ICAgICAgICBsYXllci0+c2V0U2l6ZShtX3ZpZXdTaXplKTsKKyAgICB9CisKKyAgICBsYXllci0+
c2V0TmVlZHNEaXNwbGF5SW5SZWN0KHJlY3QpOworICAgIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXll
ckZsdXNoKCk7Cit9CisKK3ZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnNldFBhZ2VP
dmVybGF5T3BhY2l0eShQYWdlT3ZlcmxheSogcGFnZU92ZXJsYXksIGZsb2F0IG9wYWNpdHkpCit7
CisgICAgR3JhcGhpY3NMYXllckNBUmVtb3RlKiBsYXllciA9IG1fcGFnZU92ZXJsYXlMYXllcnMu
Z2V0KHBhZ2VPdmVybGF5KTsKKyAgICAKKyAgICBpZiAoIWxheWVyKQorICAgICAgICByZXR1cm47
CisgICAgCisgICAgbGF5ZXItPnNldE9wYWNpdHkob3BhY2l0eSk7CisgICAgc2NoZWR1bGVDb21w
b3NpdGluZ0xheWVyRmx1c2goKTsKK30KKwordm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJl
YTo6cGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyLCBHcmFw
aGljc0NvbnRleHQmIGdyYXBoaWNzQ29udGV4dCwgR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2Us
IGNvbnN0IEludFJlY3QmIGNsaXBSZWN0KQoreworICAgIGZvciAoYXV0byBpdCA9IG1fcGFnZU92
ZXJsYXlMYXllcnMuYmVnaW4oKSwgZW5kID0gbV9wYWdlT3ZlcmxheUxheWVycy5lbmQoKTsgaXQg
IT0gZW5kOyArK2l0KSB7CisgICAgICAgIGlmIChpdC0+dmFsdWUuZ2V0KCkgPT0gZ3JhcGhpY3NM
YXllcikgeworICAgICAgICAgICAgbV93ZWJQYWdlLT5kcmF3UGFnZU92ZXJsYXkoaXQtPmtleSwg
Z3JhcGhpY3NDb250ZXh0LCBjbGlwUmVjdCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
fQorICAgIH0KK30KKworZmxvYXQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmRldmljZVNj
YWxlRmFjdG9yKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV93ZWJQYWdlLT5jb3JlUGFnZSgpLT5k
ZXZpY2VTY2FsZUZhY3RvcigpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>216617</attachid>
            <date>2013-11-11 15:53:02 -0800</date>
            <delta_ts>2013-11-11 16:11:12 -0800</delta_ts>
            <desc>anders comments</desc>
            <filename>overlay.diff</filename>
            <type>text/plain</type>
            <size>12008</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBkMjQ1NjZmLi5kZjIyMWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEg
QEAKKzIwMTMtMTEtMTEgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgUmVtb3RlIExheWVyIFRyZWU6IEltcGxlbWVudCBQYWdlIE92ZXJsYXlzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQxNjUKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzE1MTk5MDU2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBwYWdlIG92ZXJsYXlzLCB2ZXJ5IHNpbWls
YXIgdG8gaG93IHRoZXkgd29yayBpbiBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYSwKKyAg
ICAgICAgYnV0IG1hbmlwdWxhdGluZyB0aGUgUGxhdGZvcm1DQUxheWVyIHRyZWUgaW5zdGVhZCBv
ZiB0aGUgQ0FMYXllciB0cmVlIGRpcmVjdGx5LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0Lm1tOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVMYXllclRyZWVDb250ZXh0OjpvdXRPZlRyZWVMYXllcldhc0FkZGVkKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlQ29udGV4dDo6b3V0T2ZUcmVlTGF5ZXJXaWxsQmVSZW1v
dmVkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlQ29udGV4dDo6Zmx1c2hMYXll
cnMpOgorICAgICAgICBBZGQgYSBsaXN0IG9mIG91dC1vZi10cmVlIEdyYXBoaWNzTGF5ZXJzIHdo
aWNoIGFyZSBmbHVzaGVkIGluIGFkZGl0aW9uCisgICAgICAgIHRvIHRoZSBwYWdlJ3MgR3JhcGhp
Y3NMYXllciB0cmVlLCBhbmQgZnVuY3Rpb25zIHRvIG1hbmlwdWxhdGUgdGhpcyBsaXN0LgorCisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJl
YS5oOgorICAgICAgICBNYWtlIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhIGEgR3JhcGhpY3NM
YXllckNsaWVudCwgc28gd2UgY2FuIGdldCBjYWxsYmFja3MKKyAgICAgICAgZnJvbSB0aGUgR3Jh
cGhpY3NMYXllcnMgdGhhdCBkcml2ZSBvdXIgcGFnZSBvdmVybGF5cy4KKyAgICAgICAgT3ZlcnJp
ZGUgdGhlIHJlbGV2YW50IHBhZ2Ugb3ZlcmxheSBmdW5jdGlvbnMuCisgICAgICAgIEFkZCBzdG9y
YWdlIGZvciB0aGUgcm9vdCBsYXllciwgdmlldyBzaXplLCBhbmQgYSBtYXAgb2YgUGFnZU92ZXJs
YXktPkdyYXBoaWNzTGF5ZXIuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1Jl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYTo6c2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIpOgorICAgICAgICBTdG9y
ZSB0aGUgcm9vdCBHcmFwaGljc0xheWVyIGZvciBsYXRlciB1c2UuCisKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnVwZGF0ZUdlb21ldHJ5KToKKyAgICAgICAg
VXBkYXRlIHRoZSBzaXplIG9mIHRoZSBwYWdlIG92ZXJsYXlzIHdoZW4gdGhlIERyYXdpbmdBcmVh
J3MgZ2VvbWV0cnkgY2hhbmdlcy4KKworICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYTo6dXBkYXRlUHJlZmVyZW5jZXMpOgorICAgICAgICBVcGRhdGUgdGhlIHBhZ2Ug
b3ZlcmxheSBzZXR0aW5ncyB3aGVuIG5lY2Vzc2FyeS4KKworICAgICAgICAoV2ViS2l0OjpSZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYTo6ZGlkSW5zdGFsbFBhZ2VPdmVybGF5KToKKyAgICAgICAg
Q3JlYXRlIGEgR3JhcGhpY3NMYXllciBmb3Igb3VyIHBhZ2Ugb3ZlcmxheSwgc2V0IGl0IHVwLCBh
bmQgcGFyZW50IGl0LgorICAgICAgICBJbmZvcm0gdGhlIFJlbW90ZUxheWVyVHJlZUNvbnRleHQg
dGhhdCBpdCB3aWxsIG5lZWQgdG8gZmx1c2ggdGhpcyBHcmFwaGljc0xheWVyLAorICAgICAgICBz
aW5jZSBpdCdzIG5vdCBhIHBhcnQgb2YgdGhlIHBhZ2UncyBHcmFwaGljc0xheWVyIHRyZWUuCisK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmRpZFVuaW5zdGFs
bFBhZ2VPdmVybGF5KToKKyAgICAgICAgVGVhciBkb3duIG91ciBwYWdlIG92ZXJsYXkncyBHcmFw
aGljc0xheWVyLgorCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
OjpzZXRQYWdlT3ZlcmxheU5lZWRzRGlzcGxheSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxh
eWVyVHJlZURyYXdpbmdBcmVhOjpzZXRQYWdlT3ZlcmxheU9wYWNpdHkpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6cGFpbnRDb250ZW50cyk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpkZXZpY2VTY2FsZUZhY3Rvcik6
CisKIDIwMTMtMTEtMTEgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgogCiAgICAgICAgIFtHVEtdIENyYXNoIHdoZW4gcHJpbnRpbmcgdmlhIGphdmFzY3JpcHQgaW4g
V2ViS2l0MgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9SZW1vdGVMYXllclRyZWVDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQuaAppbmRleCBkOTk1YjUyLi5hM2VhMjlh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90
ZUxheWVyVHJlZUNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQuaApAQCAtNTEsNiArNTEsOSBAQCBwdWJsaWM6
CiAgICAgdm9pZCBsYXllcldhc0NyZWF0ZWQoUGxhdGZvcm1DQUxheWVyUmVtb3RlKiwgV2ViQ29y
ZTo6UGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGUpOwogICAgIHZvaWQgbGF5ZXJXaWxsQmVEZXN0
cm95ZWQoUGxhdGZvcm1DQUxheWVyUmVtb3RlKik7CiAKKyAgICB2b2lkIG91dE9mVHJlZUxheWVy
V2FzQWRkZWQoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopOworICAgIHZvaWQgb3V0T2ZUcmVlTGF5
ZXJXaWxsQmVSZW1vdmVkKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKKwogICAgIExheWVySG9z
dGluZ01vZGUgbGF5ZXJIb3N0aW5nTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fd2ViUGFnZS0+bGF5
ZXJIb3N0aW5nTW9kZSgpOyB9CiAKIHByaXZhdGU6CkBAIC02NCw2ICs2Nyw3IEBAIHByaXZhdGU6
CiAgICAgV2ViQ29yZTo6VGltZXI8UmVtb3RlTGF5ZXJUcmVlQ29udGV4dD4gbV9sYXllckZsdXNo
VGltZXI7CiAKICAgICBSZWZQdHI8UGxhdGZvcm1DQUxheWVyUmVtb3RlPiBtX3Jvb3RMYXllcjsK
KyAgICBWZWN0b3I8V2ViQ29yZTo6R3JhcGhpY3NMYXllcio+IG1fb3V0T2ZUcmVlTGF5ZXJzOwog
CiAgICAgVmVjdG9yPFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllckNyZWF0aW9uUHJv
cGVydGllcz4gbV9jcmVhdGVkTGF5ZXJzOwogICAgIFZlY3RvcjxSZW1vdGVMYXllclRyZWVUcmFu
c2FjdGlvbjo6TGF5ZXJJRD4gbV9kZXN0cm95ZWRMYXllcnM7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQubW0g
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNv
bnRleHQubW0KaW5kZXggZjU3YTYxMi4uNDFjZmJkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29u
dGV4dC5tbQpAQCAtNzgsNiArNzgsMTkgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVDb250ZXh0Ojps
YXllcldpbGxCZURlc3Ryb3llZChQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUqIGxheWVyKQogICAgIG1f
ZGVzdHJveWVkTGF5ZXJzLmFwcGVuZChsYXllci0+bGF5ZXJJRCgpKTsKIH0KIAordm9pZCBSZW1v
dGVMYXllclRyZWVDb250ZXh0OjpvdXRPZlRyZWVMYXllcldhc0FkZGVkKEdyYXBoaWNzTGF5ZXIq
IGxheWVyKQoreworICAgIEFTU0VSVCghbV9vdXRPZlRyZWVMYXllcnMuY29udGFpbnMobGF5ZXIp
KTsKKyAgICBtX291dE9mVHJlZUxheWVycy5hcHBlbmQobGF5ZXIpOworfQorCit2b2lkIFJlbW90
ZUxheWVyVHJlZUNvbnRleHQ6Om91dE9mVHJlZUxheWVyV2lsbEJlUmVtb3ZlZChHcmFwaGljc0xh
eWVyKiBsYXllcikKK3sKKyAgICBzaXplX3QgbGF5ZXJJbmRleCA9IG1fb3V0T2ZUcmVlTGF5ZXJz
LmZpbmQobGF5ZXIpOworICAgIEFTU0VSVChsYXllckluZGV4ICE9IG5vdEZvdW5kKTsKKyAgICBt
X291dE9mVHJlZUxheWVycy5yZW1vdmUobGF5ZXJJbmRleCk7Cit9CisKIHZvaWQgUmVtb3RlTGF5
ZXJUcmVlQ29udGV4dDo6c2NoZWR1bGVMYXllckZsdXNoKCkKIHsKICAgICBpZiAobV9sYXllckZs
dXNoVGltZXIuaXNBY3RpdmUoKSkKQEAgLTEwOCw2ICsxMjEsOSBAQCB2b2lkIFJlbW90ZUxheWVy
VHJlZUNvbnRleHQ6OmZsdXNoTGF5ZXJzKCkKICAgICBtX3dlYlBhZ2UtPmxheW91dElmTmVlZGVk
KCk7CiAgICAgbV93ZWJQYWdlLT5jb3JlUGFnZSgpLT5tYWluRnJhbWUoKS52aWV3KCktPmZsdXNo
Q29tcG9zaXRpbmdTdGF0ZUluY2x1ZGluZ1N1YmZyYW1lcygpOwogCisgICAgZm9yIChjb25zdCBh
dXRvJiBsYXllciA6IG1fb3V0T2ZUcmVlTGF5ZXJzKQorICAgICAgICBsYXllci0+Zmx1c2hDb21w
b3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpOworCiAgICAgdHJhbnNhY3Rpb24uc2V0Q3Jl
YXRlZExheWVycyhzdGQ6Om1vdmUobV9jcmVhdGVkTGF5ZXJzKSk7CiAgICAgdHJhbnNhY3Rpb24u
c2V0RGVzdHJveWVkTGF5ZXJJRHMoc3RkOjptb3ZlKG1fZGVzdHJveWVkTGF5ZXJzKSk7CiAgICAg
bV9yb290TGF5ZXItPnJlY3Vyc2l2ZUJ1aWxkVHJhbnNhY3Rpb24odHJhbnNhY3Rpb24pOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5oCmluZGV4IDI5YWM1MjcuLmU0YzUzOWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWEuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmgKQEAgLTI3LDEyICsyNywxOSBAQAog
I2RlZmluZSBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYV9oCiAKICNpbmNsdWRlICJEcmF3aW5n
QXJlYS5oIgorI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXJDQVJlbW90ZS5oIgorI2luY2x1ZGUgPFdl
YkNvcmUvR3JhcGhpY3NMYXllckNsaWVudC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFBsYXRmb3JtQ0FMYXllcjsKK30KIAogbmFtZXNw
YWNlIFdlYktpdCB7CiAKIGNsYXNzIFJlbW90ZUxheWVyVHJlZUNvbnRleHQ7CiAKLWNsYXNzIFJl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhIDogcHVibGljIERyYXdpbmdBcmVhIHsKK2NsYXNzIFJl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhIDogcHVibGljIERyYXdpbmdBcmVhLCBwdWJsaWMgV2Vi
Q29yZTo6R3JhcGhpY3NMYXllckNsaWVudCB7CiBwdWJsaWM6CiAgICAgUmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWEoV2ViUGFnZSosIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmKTsK
ICAgICB2aXJ0dWFsIH5SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYSgpOwpAQCAtNTIsNyArNTks
MjUgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVQcmVmZXJlbmNlcyhjb25z
dCBXZWJQcmVmZXJlbmNlc1N0b3JlJikgT1ZFUlJJREU7CiAKKyAgICB2aXJ0dWFsIHZvaWQgZGlk
SW5zdGFsbFBhZ2VPdmVybGF5KFBhZ2VPdmVybGF5KikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2
b2lkIGRpZFVuaW5zdGFsbFBhZ2VPdmVybGF5KFBhZ2VPdmVybGF5KikgT1ZFUlJJREU7CisgICAg
dmlydHVhbCB2b2lkIHNldFBhZ2VPdmVybGF5TmVlZHNEaXNwbGF5KFBhZ2VPdmVybGF5KiwgY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRQYWdl
T3ZlcmxheU9wYWNpdHkoUGFnZU92ZXJsYXkqLCBmbG9hdCkgT1ZFUlJJREU7CisKKyAgICAvLyBX
ZWJDb3JlOjpHcmFwaGljc0xheWVyQ2xpZW50CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFuaW1h
dGlvblN0YXJ0ZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIGRvdWJsZSB0aW1lKSBP
VkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBX
ZWJDb3JlOjpHcmFwaGljc0xheWVyKikgT1ZFUlJJREUgeyB9CisgICAgdmlydHVhbCB2b2lkIHBh
aW50Q29udGVudHMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dCYsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0JiBjbGlwUmVjdCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBmbG9hdCBk
ZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRD
b21taXRDaGFuZ2VzRm9yTGF5ZXIoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0
IE9WRVJSSURFIHsgfQorCiAgICAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZUxheWVyVHJlZUNvbnRl
eHQ+IG1fcmVtb3RlTGF5ZXJUcmVlQ29udGV4dDsKKyAgICBSZWZQdHI8V2ViQ29yZTo6UGxhdGZv
cm1DQUxheWVyPiBtX3Jvb3RMYXllcjsKKworICAgIHR5cGVkZWYgSGFzaE1hcDxQYWdlT3Zlcmxh
eSosIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyQ0FSZW1vdGU+PiBQYWdlT3ZlcmxheUxh
eWVyTWFwOworICAgIFBhZ2VPdmVybGF5TGF5ZXJNYXAgbV9wYWdlT3ZlcmxheUxheWVyczsKKwor
ICAgIFdlYkNvcmU6OkludFNpemUgbV92aWV3U2l6ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9S
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0KaW5kZXggZGU2MWVkYS4u
MGI4ZTU3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tCkBAIC0yNyw2
ICsyNyw3IEBACiAjaW1wb3J0ICJSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5oIgogCiAjaW1w
b3J0ICJEcmF3aW5nQXJlYVByb3h5TWVzc2FnZXMuaCIKKyNpbXBvcnQgIkdyYXBoaWNzTGF5ZXJD
QVJlbW90ZS5oIgogI2ltcG9ydCAiUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5oIgogI2ltcG9ydCAi
V2ViUGFnZS5oIgogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZS5oPgpAQCAtNjgsNiArNjksOCBAQCBH
cmFwaGljc0xheWVyRmFjdG9yeSogUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmdyYXBoaWNz
TGF5ZXJGYWN0b3J5KCkKIAogdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6c2V0Um9v
dENvbXBvc2l0aW5nTGF5ZXIoR3JhcGhpY3NMYXllciogcm9vdExheWVyKQogeworICAgIG1fcm9v
dExheWVyID0gcm9vdExheWVyID8gc3RhdGljX2Nhc3Q8R3JhcGhpY3NMYXllckNBUmVtb3RlKj4o
cm9vdExheWVyKS0+cGxhdGZvcm1DQUxheWVyKCkgOiBudWxscHRyOworCiAgICAgbV9yZW1vdGVM
YXllclRyZWVDb250ZXh0LT5zZXRSb290TGF5ZXIocm9vdExheWVyKTsKIH0KIApAQCAtNzgsNyAr
ODEsMTUgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6c2NoZWR1bGVDb21wb3Np
dGluZ0xheWVyRmx1c2goKQogCiB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjp1cGRh
dGVHZW9tZXRyeShjb25zdCBJbnRTaXplJiB2aWV3U2l6ZSwgY29uc3QgSW50U2l6ZSYgbGF5ZXJQ
b3NpdGlvbikKIHsKKyAgICBtX3ZpZXdTaXplID0gdmlld1NpemU7CiAgICAgbV93ZWJQYWdlLT5z
ZXRTaXplKHZpZXdTaXplKTsKKworICAgIGZvciAoY29uc3QgYXV0byYgb3ZlcmxheUFuZExheWVy
IDogbV9wYWdlT3ZlcmxheUxheWVycykgeworICAgICAgICBHcmFwaGljc0xheWVyKiBsYXllciA9
IG92ZXJsYXlBbmRMYXllci52YWx1ZS5nZXQoKTsKKyAgICAgICAgaWYgKGxheWVyLT5kcmF3c0Nv
bnRlbnQoKSkKKyAgICAgICAgICAgIGxheWVyLT5zZXRTaXplKHZpZXdTaXplKTsKKyAgICB9CisK
ICAgICBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpOwogCiAgICAgbV93ZWJQYWdlLT5z
ZW5kKE1lc3NhZ2VzOjpEcmF3aW5nQXJlYVByb3h5OjpEaWRVcGRhdGVHZW9tZXRyeSgpKTsKQEAg
LTk3LDYgKzEwOCw4MyBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjp1cGRhdGVQ
cmVmZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJikKICAgICAvLyBpbiBvcmRlciB0
byBiZSBzY3JvbGxlZCBieSB0aGUgU2Nyb2xsaW5nQ29vcmRpbmF0b3IuCiAgICAgc2V0dGluZ3Mu
c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb25FbmFibGVkKHRydWUpOwog
ICAgIHNldHRpbmdzLnNldEZpeGVkUG9zaXRpb25DcmVhdGVzU3RhY2tpbmdDb250ZXh0KHRydWUp
OworCisgICAgZm9yIChjb25zdCBhdXRvJiBvdmVybGF5QW5kTGF5ZXIgOiBtX3BhZ2VPdmVybGF5
TGF5ZXJzKSB7CisgICAgICAgIG92ZXJsYXlBbmRMYXllci52YWx1ZS0+c2V0QWNjZWxlcmF0ZXNE
cmF3aW5nKHNldHRpbmdzLmFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQoKSk7CisgICAgICAgIG92
ZXJsYXlBbmRMYXllci52YWx1ZS0+c2V0U2hvd0RlYnVnQm9yZGVyKHNldHRpbmdzLnNob3dEZWJ1
Z0JvcmRlcnMoKSk7CisgICAgICAgIG92ZXJsYXlBbmRMYXllci52YWx1ZS0+c2V0U2hvd1JlcGFp
bnRDb3VudGVyKHNldHRpbmdzLnNob3dSZXBhaW50Q291bnRlcigpKTsKKyAgICB9Cit9CisKK3Zv
aWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmRpZEluc3RhbGxQYWdlT3ZlcmxheShQYWdl
T3ZlcmxheSogcGFnZU92ZXJsYXkpCit7CisgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5
ZXJDQVJlbW90ZT4gbGF5ZXIoc3RhdGljX2Nhc3Q8R3JhcGhpY3NMYXllckNBUmVtb3RlKj4oR3Jh
cGhpY3NMYXllcjo6Y3JlYXRlKGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCksIHRoaXMpLnJlbGVhc2Uo
KSkpOworI2lmbmRlZiBOREVCVUcKKyAgICBsYXllci0+c2V0TmFtZSgicGFnZSBvdmVybGF5IGNv
bnRlbnQiKTsKKyNlbmRpZgorCisgICAgbGF5ZXItPnNldEFjY2VsZXJhdGVzRHJhd2luZyhtX3dl
YlBhZ2UtPmNvcmVQYWdlKCktPnNldHRpbmdzKCkuYWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZCgp
KTsKKyAgICBsYXllci0+c2V0U2hvd0RlYnVnQm9yZGVyKG1fd2ViUGFnZS0+Y29yZVBhZ2UoKS0+
c2V0dGluZ3MoKS5zaG93RGVidWdCb3JkZXJzKCkpOworICAgIGxheWVyLT5zZXRTaG93UmVwYWlu
dENvdW50ZXIobV93ZWJQYWdlLT5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLnNob3dSZXBhaW50Q291
bnRlcigpKTsKKworICAgIG1fcm9vdExheWVyLT5hcHBlbmRTdWJsYXllcihsYXllci0+cGxhdGZv
cm1DQUxheWVyKCkpOworICAgIG1fcmVtb3RlTGF5ZXJUcmVlQ29udGV4dC0+b3V0T2ZUcmVlTGF5
ZXJXYXNBZGRlZChsYXllci5nZXQoKSk7CisKKyAgICBtX3BhZ2VPdmVybGF5TGF5ZXJzLmFkZChw
YWdlT3ZlcmxheSwgc3RkOjptb3ZlKGxheWVyKSk7CisgICAgc2NoZWR1bGVDb21wb3NpdGluZ0xh
eWVyRmx1c2goKTsKK30KKwordm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6ZGlkVW5p
bnN0YWxsUGFnZU92ZXJsYXkoUGFnZU92ZXJsYXkqIHBhZ2VPdmVybGF5KQoreworICAgIHN0ZDo6
dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyQ0FSZW1vdGU+IGxheWVyID0gbV9wYWdlT3ZlcmxheUxh
eWVycy50YWtlKHBhZ2VPdmVybGF5KTsKKyAgICBBU1NFUlQobGF5ZXIpOworCisgICAgbV9yZW1v
dGVMYXllclRyZWVDb250ZXh0LT5vdXRPZlRyZWVMYXllcldpbGxCZVJlbW92ZWQobGF5ZXIuZ2V0
KCkpOworICAgIGxheWVyLT5wbGF0Zm9ybUNBTGF5ZXIoKS0+cmVtb3ZlRnJvbVN1cGVybGF5ZXIo
KTsKKworICAgIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCk7Cit9CisKK3ZvaWQgUmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnNldFBhZ2VPdmVybGF5TmVlZHNEaXNwbGF5KFBhZ2VP
dmVybGF5KiBwYWdlT3ZlcmxheSwgY29uc3QgSW50UmVjdCYgcmVjdCkKK3sKKyAgICBHcmFwaGlj
c0xheWVyQ0FSZW1vdGUqIGxheWVyID0gbV9wYWdlT3ZlcmxheUxheWVycy5nZXQocGFnZU92ZXJs
YXkpOworCisgICAgaWYgKCFsYXllcikKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFsYXll
ci0+ZHJhd3NDb250ZW50KCkpIHsKKyAgICAgICAgbGF5ZXItPnNldERyYXdzQ29udGVudCh0cnVl
KTsKKyAgICAgICAgbGF5ZXItPnNldFNpemUobV92aWV3U2l6ZSk7CisgICAgfQorCisgICAgbGF5
ZXItPnNldE5lZWRzRGlzcGxheUluUmVjdChyZWN0KTsKKyAgICBzY2hlZHVsZUNvbXBvc2l0aW5n
TGF5ZXJGbHVzaCgpOworfQorCit2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpzZXRQ
YWdlT3ZlcmxheU9wYWNpdHkoUGFnZU92ZXJsYXkqIHBhZ2VPdmVybGF5LCBmbG9hdCBvcGFjaXR5
KQoreworICAgIEdyYXBoaWNzTGF5ZXJDQVJlbW90ZSogbGF5ZXIgPSBtX3BhZ2VPdmVybGF5TGF5
ZXJzLmdldChwYWdlT3ZlcmxheSk7CisgICAgCisgICAgaWYgKCFsYXllcikKKyAgICAgICAgcmV0
dXJuOworICAgIAorICAgIGxheWVyLT5zZXRPcGFjaXR5KG9wYWNpdHkpOworICAgIHNjaGVkdWxl
Q29tcG9zaXRpbmdMYXllckZsdXNoKCk7Cit9CisKK3ZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWE6OnBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllciwg
R3JhcGhpY3NDb250ZXh0JiBncmFwaGljc0NvbnRleHQsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1Bo
YXNlLCBjb25zdCBJbnRSZWN0JiBjbGlwUmVjdCkKK3sKKyAgICBmb3IgKGNvbnN0IGF1dG8mIG92
ZXJsYXlBbmRMYXllciA6IG1fcGFnZU92ZXJsYXlMYXllcnMpIHsKKyAgICAgICAgaWYgKG92ZXJs
YXlBbmRMYXllci52YWx1ZS5nZXQoKSA9PSBncmFwaGljc0xheWVyKSB7CisgICAgICAgICAgICBt
X3dlYlBhZ2UtPmRyYXdQYWdlT3ZlcmxheShvdmVybGF5QW5kTGF5ZXIua2V5LCBncmFwaGljc0Nv
bnRleHQsIGNsaXBSZWN0KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQor
fQorCitmbG9hdCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6ZGV2aWNlU2NhbGVGYWN0b3Io
KSBjb25zdAoreworICAgIHJldHVybiBtX3dlYlBhZ2UtPmNvcmVQYWdlKCktPmRldmljZVNjYWxl
RmFjdG9yKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>
<flag name="review"
          id="239612"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>216620</attachid>
            <date>2013-11-11 16:11:12 -0800</date>
            <delta_ts>2013-11-11 16:11:12 -0800</delta_ts>
            <desc>for landing once SVN returns</desc>
            <filename>overlay.diff</filename>
            <type>text/plain</type>
            <size>11628</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1OTA3NykKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUxIEBACisyMDEzLTExLTExICBUaW0gSG9y
dG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW90ZSBMYXllciBU
cmVlOiBJbXBsZW1lbnQgUGFnZSBPdmVybGF5cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0MTY1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xNTE5
OTA1Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBBbmRlcnMgQ2FybHNzb24uCisKKyAgICAgICAg
SW1wbGVtZW50IHBhZ2Ugb3ZlcmxheXMsIHZlcnkgc2ltaWxhciB0byBob3cgdGhleSB3b3JrIGlu
IFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLAorICAgICAgICBidXQgbWFuaXB1bGF0aW5n
IHRoZSBQbGF0Zm9ybUNBTGF5ZXIgdHJlZSBpbnN0ZWFkIG9mIHRoZSBDQUxheWVyIHRyZWUgZGly
ZWN0bHkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJl
ZUNvbnRleHQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVy
VHJlZUNvbnRleHQubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUNvbnRleHQ6
Om91dE9mVHJlZUxheWVyV2FzQWRkZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRy
ZWVDb250ZXh0OjpvdXRPZlRyZWVMYXllcldpbGxCZVJlbW92ZWQpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVMYXllclRyZWVDb250ZXh0OjpmbHVzaExheWVycyk6CisgICAgICAgIEFkZCBhIGxp
c3Qgb2Ygb3V0LW9mLXRyZWUgR3JhcGhpY3NMYXllcnMgd2hpY2ggYXJlIGZsdXNoZWQgaW4gYWRk
aXRpb24KKyAgICAgICAgdG8gdGhlIHBhZ2UncyBHcmFwaGljc0xheWVyIHRyZWUsIGFuZCBmdW5j
dGlvbnMgdG8gbWFuaXB1bGF0ZSB0aGlzIGxpc3QuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmg6CisgICAgICAgIE1ha2UgUmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEgYSBHcmFwaGljc0xheWVyQ2xpZW50LCBzbyB3ZSBjYW4g
Z2V0IGNhbGxiYWNrcworICAgICAgICBmcm9tIHRoZSBHcmFwaGljc0xheWVycyB0aGF0IGRyaXZl
IG91ciBwYWdlIG92ZXJsYXlzLgorICAgICAgICBPdmVycmlkZSB0aGUgcmVsZXZhbnQgcGFnZSBv
dmVybGF5IGZ1bmN0aW9ucy4KKyAgICAgICAgQWRkIHN0b3JhZ2UgZm9yIHRoZSByb290IGxheWVy
LCB2aWV3IHNpemUsIGFuZCBhIG1hcCBvZiBQYWdlT3ZlcmxheS0+R3JhcGhpY3NMYXllci4KKwor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWEubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpzZXRS
b290Q29tcG9zaXRpbmdMYXllcik6CisgICAgICAgIFN0b3JlIHRoZSByb290IEdyYXBoaWNzTGF5
ZXIgZm9yIGxhdGVyIHVzZS4KKworICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3
aW5nQXJlYTo6dXBkYXRlR2VvbWV0cnkpOgorICAgICAgICBVcGRhdGUgdGhlIHNpemUgb2YgdGhl
IHBhZ2Ugb3ZlcmxheXMgd2hlbiB0aGUgRHJhd2luZ0FyZWEncyBnZW9tZXRyeSBjaGFuZ2VzLgor
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjp1cGRhdGVQcmVm
ZXJlbmNlcyk6CisgICAgICAgIFVwZGF0ZSB0aGUgcGFnZSBvdmVybGF5IHNldHRpbmdzIHdoZW4g
bmVjZXNzYXJ5LgorCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
OjpkaWRJbnN0YWxsUGFnZU92ZXJsYXkpOgorICAgICAgICBDcmVhdGUgYSBHcmFwaGljc0xheWVy
IGZvciBvdXIgcGFnZSBvdmVybGF5LCBzZXQgaXQgdXAsIGFuZCBwYXJlbnQgaXQuCisgICAgICAg
IEluZm9ybSB0aGUgUmVtb3RlTGF5ZXJUcmVlQ29udGV4dCB0aGF0IGl0IHdpbGwgbmVlZCB0byBm
bHVzaCB0aGlzIEdyYXBoaWNzTGF5ZXIsCisgICAgICAgIHNpbmNlIGl0J3Mgbm90IGEgcGFydCBv
ZiB0aGUgcGFnZSdzIEdyYXBoaWNzTGF5ZXIgdHJlZS4KKworICAgICAgICAoV2ViS2l0OjpSZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYTo6ZGlkVW5pbnN0YWxsUGFnZU92ZXJsYXkpOgorICAgICAg
ICBUZWFyIGRvd24gb3VyIHBhZ2Ugb3ZlcmxheSdzIEdyYXBoaWNzTGF5ZXIuCisKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnNldFBhZ2VPdmVybGF5TmVlZHNE
aXNwbGF5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnNl
dFBhZ2VPdmVybGF5T3BhY2l0eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhOjpwYWludENvbnRlbnRzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJU
cmVlRHJhd2luZ0FyZWE6OmRldmljZVNjYWxlRmFjdG9yKToKKwogMjAxMy0xMS0xMSAgQW5kZXJz
IENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBhIEZyYW1lTG9h
ZFN0YXRlIG9iamVjdCBhbmQgYmVnaW4gbW92aW5nIGxvYWRpbmcgcmVsYXRlZCBtZW1iZXJzIGZy
b20gV2ViRnJhbWVQcm94eQpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0LmgJKHJldmlz
aW9uIDE1OTA3NykKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVt
b3RlTGF5ZXJUcmVlQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC01MSw2ICs1MSw5IEBACiAg
ICAgdm9pZCBsYXllcldhc0NyZWF0ZWQoUGxhdGZvcm1DQUxheWVyUmVtb3RlKiwgV2ViQ29yZTo6
UGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGUpOwogICAgIHZvaWQgbGF5ZXJXaWxsQmVEZXN0cm95
ZWQoUGxhdGZvcm1DQUxheWVyUmVtb3RlKik7CiAKKyAgICB2b2lkIG91dE9mVHJlZUxheWVyV2Fz
QWRkZWQoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopOworICAgIHZvaWQgb3V0T2ZUcmVlTGF5ZXJX
aWxsQmVSZW1vdmVkKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKKwogICAgIExheWVySG9zdGlu
Z01vZGUgbGF5ZXJIb3N0aW5nTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fd2ViUGFnZS0+bGF5ZXJI
b3N0aW5nTW9kZSgpOyB9CiAKIHByaXZhdGU6CkBAIC02NCw2ICs2Nyw3IEBACiAgICAgV2ViQ29y
ZTo6VGltZXI8UmVtb3RlTGF5ZXJUcmVlQ29udGV4dD4gbV9sYXllckZsdXNoVGltZXI7CiAKICAg
ICBSZWZQdHI8UGxhdGZvcm1DQUxheWVyUmVtb3RlPiBtX3Jvb3RMYXllcjsKKyAgICBWZWN0b3I8
V2ViQ29yZTo6R3JhcGhpY3NMYXllcio+IG1fb3V0T2ZUcmVlTGF5ZXJzOwogCiAgICAgVmVjdG9y
PFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllckNyZWF0aW9uUHJvcGVydGllcz4gbV9j
cmVhdGVkTGF5ZXJzOwogICAgIFZlY3RvcjxSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5
ZXJJRD4gbV9kZXN0cm95ZWRMYXllcnM7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0
Lm1tCShyZXZpc2lvbiAxNTkwNzcpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQubW0JKHdvcmtpbmcgY29weSkKQEAgLTc4LDYg
Kzc4LDE5IEBACiAgICAgbV9kZXN0cm95ZWRMYXllcnMuYXBwZW5kKGxheWVyLT5sYXllcklEKCkp
OwogfQogCit2b2lkIFJlbW90ZUxheWVyVHJlZUNvbnRleHQ6Om91dE9mVHJlZUxheWVyV2FzQWRk
ZWQoR3JhcGhpY3NMYXllciogbGF5ZXIpCit7CisgICAgQVNTRVJUKCFtX291dE9mVHJlZUxheWVy
cy5jb250YWlucyhsYXllcikpOworICAgIG1fb3V0T2ZUcmVlTGF5ZXJzLmFwcGVuZChsYXllcik7
Cit9CisKK3ZvaWQgUmVtb3RlTGF5ZXJUcmVlQ29udGV4dDo6b3V0T2ZUcmVlTGF5ZXJXaWxsQmVS
ZW1vdmVkKEdyYXBoaWNzTGF5ZXIqIGxheWVyKQoreworICAgIHNpemVfdCBsYXllckluZGV4ID0g
bV9vdXRPZlRyZWVMYXllcnMuZmluZChsYXllcik7CisgICAgQVNTRVJUKGxheWVySW5kZXggIT0g
bm90Rm91bmQpOworICAgIG1fb3V0T2ZUcmVlTGF5ZXJzLnJlbW92ZShsYXllckluZGV4KTsKK30K
Kwogdm9pZCBSZW1vdGVMYXllclRyZWVDb250ZXh0OjpzY2hlZHVsZUxheWVyRmx1c2goKQogewog
ICAgIGlmIChtX2xheWVyRmx1c2hUaW1lci5pc0FjdGl2ZSgpKQpAQCAtMTA4LDYgKzEyMSw5IEBA
CiAgICAgbV93ZWJQYWdlLT5sYXlvdXRJZk5lZWRlZCgpOwogICAgIG1fd2ViUGFnZS0+Y29yZVBh
Z2UoKS0+bWFpbkZyYW1lKCkudmlldygpLT5mbHVzaENvbXBvc2l0aW5nU3RhdGVJbmNsdWRpbmdT
dWJmcmFtZXMoKTsKIAorICAgIGZvciAoY29uc3QgYXV0byYgbGF5ZXIgOiBtX291dE9mVHJlZUxh
eWVycykKKyAgICAgICAgbGF5ZXItPmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9u
bHkoKTsKKwogICAgIHRyYW5zYWN0aW9uLnNldENyZWF0ZWRMYXllcnMoc3RkOjptb3ZlKG1fY3Jl
YXRlZExheWVycykpOwogICAgIHRyYW5zYWN0aW9uLnNldERlc3Ryb3llZExheWVySURzKHN0ZDo6
bW92ZShtX2Rlc3Ryb3llZExheWVycykpOwogICAgIG1fcm9vdExheWVyLT5yZWN1cnNpdmVCdWls
ZFRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhLmgJKHJldmlzaW9uIDE1OTA3NykKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaAkod29ya2luZyBjb3B5
KQpAQCAtMjcsMTIgKzI3LDE5IEBACiAjZGVmaW5lIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
X2gKIAogI2luY2x1ZGUgIkRyYXdpbmdBcmVhLmgiCisjaW5jbHVkZSAiR3JhcGhpY3NMYXllckNB
UmVtb3RlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0xheWVyQ2xpZW50Lmg+CisjaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KIAorbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgUGxhdGZv
cm1DQUxheWVyOworfQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgUmVtb3RlTGF5ZXJU
cmVlQ29udGV4dDsKIAotY2xhc3MgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEgOiBwdWJsaWMg
RHJhd2luZ0FyZWEgeworY2xhc3MgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEgOiBwdWJsaWMg
RHJhd2luZ0FyZWEsIHB1YmxpYyBXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2xpZW50IHsKIHB1Ymxp
YzoKICAgICBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYShXZWJQYWdlKiwgY29uc3QgV2ViUGFn
ZUNyZWF0aW9uUGFyYW1ldGVycyYpOwogICAgIHZpcnR1YWwgflJlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhKCk7CkBAIC01Miw3ICs1OSwyNCBAQAogCiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVBy
ZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmKSBPVkVSUklERTsKIAorICAgIHZp
cnR1YWwgdm9pZCBkaWRJbnN0YWxsUGFnZU92ZXJsYXkoUGFnZU92ZXJsYXkqKSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlkVW5pbnN0YWxsUGFnZU92ZXJsYXkoUGFnZU92ZXJsYXkqKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0UGFnZU92ZXJsYXlOZWVkc0Rpc3BsYXkoUGFn
ZU92ZXJsYXkqLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB2b2lkIHNldFBhZ2VPdmVybGF5T3BhY2l0eShQYWdlT3ZlcmxheSosIGZsb2F0KSBPVkVSUklE
RTsKKworICAgIC8vIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDbGllbnQKKyAgICB2aXJ0dWFsIHZv
aWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwg
ZG91YmxlIHRpbWUpIE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGbHVzaFJl
cXVpcmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBPVkVSUklERSB7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwg
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllclBhaW50aW5n
UGhhc2UsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNsaXBSZWN0KSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmly
dHVhbCB2b2lkIGRpZENvbW1pdENoYW5nZXNGb3JMYXllcihjb25zdCBXZWJDb3JlOjpHcmFwaGlj
c0xheWVyKikgY29uc3QgT1ZFUlJJREUgeyB9CisKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3Rl
TGF5ZXJUcmVlQ29udGV4dD4gbV9yZW1vdGVMYXllclRyZWVDb250ZXh0OworICAgIFJlZlB0cjxX
ZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXI+IG1fcm9vdExheWVyOworCisgICAgSGFzaE1hcDxQYWdl
T3ZlcmxheSosIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyQ0FSZW1vdGU+PiBtX3BhZ2VP
dmVybGF5TGF5ZXJzOworCisgICAgV2ViQ29yZTo6SW50U2l6ZSBtX3ZpZXdTaXplOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWEubW0JKHJldmlzaW9uIDE1OTA3NykKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0JKHdvcmtpbmcgY29weSkK
QEAgLTI3LDYgKzI3LDcgQEAKICNpbXBvcnQgIlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmgi
CiAKICNpbXBvcnQgIkRyYXdpbmdBcmVhUHJveHlNZXNzYWdlcy5oIgorI2ltcG9ydCAiR3JhcGhp
Y3NMYXllckNBUmVtb3RlLmgiCiAjaW1wb3J0ICJSZW1vdGVMYXllclRyZWVDb250ZXh0LmgiCiAj
aW1wb3J0ICJXZWJQYWdlLmgiCiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lLmg+CkBAIC02OCw2ICs2
OSw4IEBACiAKIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnNldFJvb3RDb21wb3Np
dGluZ0xheWVyKEdyYXBoaWNzTGF5ZXIqIHJvb3RMYXllcikKIHsKKyAgICBtX3Jvb3RMYXllciA9
IHJvb3RMYXllciA/IHN0YXRpY19jYXN0PEdyYXBoaWNzTGF5ZXJDQVJlbW90ZSo+KHJvb3RMYXll
ciktPnBsYXRmb3JtQ0FMYXllcigpIDogbnVsbHB0cjsKKwogICAgIG1fcmVtb3RlTGF5ZXJUcmVl
Q29udGV4dC0+c2V0Um9vdExheWVyKHJvb3RMYXllcik7CiB9CiAKQEAgLTc4LDcgKzgxLDE1IEBA
CiAKIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnVwZGF0ZUdlb21ldHJ5KGNvbnN0
IEludFNpemUmIHZpZXdTaXplLCBjb25zdCBJbnRTaXplJiBsYXllclBvc2l0aW9uKQogeworICAg
IG1fdmlld1NpemUgPSB2aWV3U2l6ZTsKICAgICBtX3dlYlBhZ2UtPnNldFNpemUodmlld1NpemUp
OworCisgICAgZm9yIChjb25zdCBhdXRvJiBvdmVybGF5QW5kTGF5ZXIgOiBtX3BhZ2VPdmVybGF5
TGF5ZXJzKSB7CisgICAgICAgIEdyYXBoaWNzTGF5ZXIqIGxheWVyID0gb3ZlcmxheUFuZExheWVy
LnZhbHVlLmdldCgpOworICAgICAgICBpZiAobGF5ZXItPmRyYXdzQ29udGVudCgpKQorICAgICAg
ICAgICAgbGF5ZXItPnNldFNpemUodmlld1NpemUpOworICAgIH0KKwogICAgIHNjaGVkdWxlQ29t
cG9zaXRpbmdMYXllckZsdXNoKCk7CiAKICAgICBtX3dlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OkRy
YXdpbmdBcmVhUHJveHk6OkRpZFVwZGF0ZUdlb21ldHJ5KCkpOwpAQCAtOTcsNiArMTA4LDgzIEBA
CiAgICAgLy8gaW4gb3JkZXIgdG8gYmUgc2Nyb2xsZWQgYnkgdGhlIFNjcm9sbGluZ0Nvb3JkaW5h
dG9yLgogICAgIHNldHRpbmdzLnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0
aW9uRW5hYmxlZCh0cnVlKTsKICAgICBzZXR0aW5ncy5zZXRGaXhlZFBvc2l0aW9uQ3JlYXRlc1N0
YWNraW5nQ29udGV4dCh0cnVlKTsKKworICAgIGZvciAoY29uc3QgYXV0byYgb3ZlcmxheUFuZExh
eWVyIDogbV9wYWdlT3ZlcmxheUxheWVycykgeworICAgICAgICBvdmVybGF5QW5kTGF5ZXIudmFs
dWUtPnNldEFjY2VsZXJhdGVzRHJhd2luZyhzZXR0aW5ncy5hY2NlbGVyYXRlZERyYXdpbmdFbmFi
bGVkKCkpOworICAgICAgICBvdmVybGF5QW5kTGF5ZXIudmFsdWUtPnNldFNob3dEZWJ1Z0JvcmRl
cihzZXR0aW5ncy5zaG93RGVidWdCb3JkZXJzKCkpOworICAgICAgICBvdmVybGF5QW5kTGF5ZXIu
dmFsdWUtPnNldFNob3dSZXBhaW50Q291bnRlcihzZXR0aW5ncy5zaG93UmVwYWludENvdW50ZXIo
KSk7CisgICAgfQogfQogCit2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpkaWRJbnN0
YWxsUGFnZU92ZXJsYXkoUGFnZU92ZXJsYXkqIHBhZ2VPdmVybGF5KQoreworICAgIHN0ZDo6dW5p
cXVlX3B0cjxHcmFwaGljc0xheWVyQ0FSZW1vdGU+IGxheWVyKHN0YXRpY19jYXN0PEdyYXBoaWNz
TGF5ZXJDQVJlbW90ZSo+KEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShncmFwaGljc0xheWVyRmFjdG9y
eSgpLCB0aGlzKS5yZWxlYXNlKCkpKTsKKyNpZm5kZWYgTkRFQlVHCisgICAgbGF5ZXItPnNldE5h
bWUoInBhZ2Ugb3ZlcmxheSBjb250ZW50Iik7CisjZW5kaWYKKworICAgIGxheWVyLT5zZXRBY2Nl
bGVyYXRlc0RyYXdpbmcobV93ZWJQYWdlLT5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLmFjY2VsZXJh
dGVkRHJhd2luZ0VuYWJsZWQoKSk7CisgICAgbGF5ZXItPnNldFNob3dEZWJ1Z0JvcmRlcihtX3dl
YlBhZ2UtPmNvcmVQYWdlKCktPnNldHRpbmdzKCkuc2hvd0RlYnVnQm9yZGVycygpKTsKKyAgICBs
YXllci0+c2V0U2hvd1JlcGFpbnRDb3VudGVyKG1fd2ViUGFnZS0+Y29yZVBhZ2UoKS0+c2V0dGlu
Z3MoKS5zaG93UmVwYWludENvdW50ZXIoKSk7CisKKyAgICBtX3Jvb3RMYXllci0+YXBwZW5kU3Vi
bGF5ZXIobGF5ZXItPnBsYXRmb3JtQ0FMYXllcigpKTsKKyAgICBtX3JlbW90ZUxheWVyVHJlZUNv
bnRleHQtPm91dE9mVHJlZUxheWVyV2FzQWRkZWQobGF5ZXIuZ2V0KCkpOworCisgICAgbV9wYWdl
T3ZlcmxheUxheWVycy5hZGQocGFnZU92ZXJsYXksIHN0ZDo6bW92ZShsYXllcikpOworICAgIHNj
aGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCk7Cit9CisKK3ZvaWQgUmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWE6OmRpZFVuaW5zdGFsbFBhZ2VPdmVybGF5KFBhZ2VPdmVybGF5KiBwYWdlT3Zl
cmxheSkKK3sKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllckNBUmVtb3RlPiBsYXll
ciA9IG1fcGFnZU92ZXJsYXlMYXllcnMudGFrZShwYWdlT3ZlcmxheSk7CisgICAgQVNTRVJUKGxh
eWVyKTsKKworICAgIG1fcmVtb3RlTGF5ZXJUcmVlQ29udGV4dC0+b3V0T2ZUcmVlTGF5ZXJXaWxs
QmVSZW1vdmVkKGxheWVyLmdldCgpKTsKKyAgICBsYXllci0+cGxhdGZvcm1DQUxheWVyKCktPnJl
bW92ZUZyb21TdXBlcmxheWVyKCk7CisKKyAgICBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVz
aCgpOworfQorCit2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpzZXRQYWdlT3Zlcmxh
eU5lZWRzRGlzcGxheShQYWdlT3ZlcmxheSogcGFnZU92ZXJsYXksIGNvbnN0IEludFJlY3QmIHJl
Y3QpCit7CisgICAgR3JhcGhpY3NMYXllckNBUmVtb3RlKiBsYXllciA9IG1fcGFnZU92ZXJsYXlM
YXllcnMuZ2V0KHBhZ2VPdmVybGF5KTsKKworICAgIGlmICghbGF5ZXIpCisgICAgICAgIHJldHVy
bjsKKworICAgIGlmICghbGF5ZXItPmRyYXdzQ29udGVudCgpKSB7CisgICAgICAgIGxheWVyLT5z
ZXREcmF3c0NvbnRlbnQodHJ1ZSk7CisgICAgICAgIGxheWVyLT5zZXRTaXplKG1fdmlld1NpemUp
OworICAgIH0KKworICAgIGxheWVyLT5zZXROZWVkc0Rpc3BsYXlJblJlY3QocmVjdCk7CisgICAg
c2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKTsKK30KKwordm9pZCBSZW1vdGVMYXllclRy
ZWVEcmF3aW5nQXJlYTo6c2V0UGFnZU92ZXJsYXlPcGFjaXR5KFBhZ2VPdmVybGF5KiBwYWdlT3Zl
cmxheSwgZmxvYXQgb3BhY2l0eSkKK3sKKyAgICBHcmFwaGljc0xheWVyQ0FSZW1vdGUqIGxheWVy
ID0gbV9wYWdlT3ZlcmxheUxheWVycy5nZXQocGFnZU92ZXJsYXkpOworICAgIAorICAgIGlmICgh
bGF5ZXIpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBsYXllci0+c2V0T3BhY2l0eShvcGFj
aXR5KTsKKyAgICBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpOworfQorCit2b2lkIFJl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5
ZXIqIGdyYXBoaWNzTGF5ZXIsIEdyYXBoaWNzQ29udGV4dCYgZ3JhcGhpY3NDb250ZXh0LCBHcmFw
aGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgSW50UmVjdCYgY2xpcFJlY3QpCit7CisgICAg
Zm9yIChjb25zdCBhdXRvJiBvdmVybGF5QW5kTGF5ZXIgOiBtX3BhZ2VPdmVybGF5TGF5ZXJzKSB7
CisgICAgICAgIGlmIChvdmVybGF5QW5kTGF5ZXIudmFsdWUuZ2V0KCkgPT0gZ3JhcGhpY3NMYXll
cikgeworICAgICAgICAgICAgbV93ZWJQYWdlLT5kcmF3UGFnZU92ZXJsYXkob3ZlcmxheUFuZExh
eWVyLmtleSwgZ3JhcGhpY3NDb250ZXh0LCBjbGlwUmVjdCk7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgfQorICAgIH0KK30KKworZmxvYXQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6
OmRldmljZVNjYWxlRmFjdG9yKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV93ZWJQYWdlLT5jb3Jl
UGFnZSgpLT5kZXZpY2VTY2FsZUZhY3RvcigpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
      

    </bug>

</bugzilla>