<?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>99806</bug_id>
          
          <creation_ts>2012-10-18 22:26:52 -0700</creation_ts>
          <short_desc>Use tile caches in place of CATiledLayer</short_desc>
          <delta_ts>2012-10-19 13:44:11 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>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="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>adele</cc>
    
    <cc>dino</cc>
    
    <cc>eric</cc>
    
    <cc>ian</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>745979</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-10-18 22:26:52 -0700</bug_when>
    <thetext>Use tile caches in place of CATiledLayer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745987</commentid>
    <comment_count>1</comment_count>
      <attachid>169548</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-10-18 22:41:50 -0700</bug_when>
    <thetext>Created attachment 169548
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745992</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-10-18 22:42:33 -0700</bug_when>
    <thetext>&lt;rdar://problem/6474145&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746087</commentid>
    <comment_count>3</comment_count>
    <who name="Ian Henderson">ian</who>
    <bug_when>2012-10-19 00:23:21 -0700</bug_when>
    <thetext>Nice!  Have we considered using tile caches for layers below the 2000px threshold as well?  That way we could avoid allocating memory for offscreen layers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746316</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-10-19 08:30:10 -0700</bug_when>
    <thetext>Possibly; or we could use this visible rect to just avoid allocating backing store for offscreen normal layers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746596</commentid>
    <comment_count>5</comment_count>
      <attachid>169548</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-10-19 13:23:05 -0700</bug_when>
    <thetext>Comment on attachment 169548
Patch

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

&gt; Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:1561
&gt; +    float leftEdgeDelta = paddingMultiplier * (m_visibleRect.x() - oldVisibleRect.x());

We should consider doing this for the main tile cache too.

&gt; Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:-2504
&gt; -    m_layer = PlatformCALayer::create(useTiledLayer ? PlatformCALayer::LayerTypeWebTiledLayer : PlatformCALayer::LayerTypeWebLayer, this);

Can we disappear LayerTypeWebTiledLayer entirely?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746604</commentid>
    <comment_count>6</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-10-19 13:44:11 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/131940</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169548</attachid>
            <date>2012-10-18 22:41:50 -0700</date>
            <delta_ts>2012-10-19 13:23:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99806-20121018224034.patch</filename>
            <type>text/plain</type>
            <size>17768</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxODQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDI1Nzk3YWVlMmEwYTA1
MWYwNTU0MGM3NjBlYmY0Njc2YzExYTg4NC4uYWJjNTJhMjMxODE5MTUwYjQxNDk2MjQ4YmE5NDY5
YTRjYTNmYzRiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDEyLTEwLTE4ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSB0aWxlIGNh
Y2hlcyBpbiBwbGFjZSBvZiBDQVRpbGVkTGF5ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTk5ODA2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82NDc0
MTQ1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEhh
dmUgR3JhcGhpY3NMYXllckNBIHVzZSBUaWxlQ2FjaGVzIGluc3RlYWQgb2YgQ0FUaWxlZExheWVy
IG5vdyBmb3IKKyAgICAgICAgbGF5ZXJzIHRoYXQgZXhjZWVkIHRoZSAyMDAwcHggc2l6ZSB0aHJl
c2hvbGQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tpbmcuaDoKKyAg
ICAgICAgKFRpbGVkQmFja2luZyk6IEhhdmUgbm9ybWFsIGdldHRlciBhbmQgc2V0dGVyIGZvciB0
aGUgdmlzaWJsZSByZWN0LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNz
TGF5ZXJDQS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OmZsdXNoQ29t
cG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkpOiBXZSBuZWVkCisgICAgICAgIHRvIHBhc3Mg
aW4gYW4gb2xkIHZpc2libGVSZWN0IHRvIGNvbW1pdExheWVyQ2hhbmdlc0JlZm9yZVN1YmxheWVy
cygpLiBKdXN0IHVzZQorICAgICAgICBvdXIgY3VycmVudCB2aXNpYmxlIHJlY3QsIHdoaWNoIHJl
c3VsdCBpbiBubyB0aWxlIGFyZWEgd29yay4KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5
ZXJDQTo6Y29tcHV0ZVZpc2libGVSZWN0KTogTWFrZSB0aGlzIGNvbnN0IGFuZCBoYXZlIGl0Cisg
ICAgICAgIHJldHVybiB0aGUgcmVjdCwgZm9yIGNsYXJpdHkuCisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0xheWVyQ0E6OnJlY3Vyc2l2ZUNvbW1pdENoYW5nZXMpOiBLZWVwIHRyYWNrIG9mIHRo
ZSBvbGQKKyAgICAgICAgdmlzaWJsZSByZWN0LCBhbmQgdXNlIHRoZSBjaGFuZ2UgZmxhZ3MgbWVj
aGFuaXNtIHRvIGVuc3VyZSB0aGF0IHdlIHJlY29tcHV0ZQorICAgICAgICB0aWxlIGFyZWFzIGxh
dGVyLgorICAgICAgICBXaGVuIGNhbGxpbmcgY29tbWl0TGF5ZXJDaGFuZ2VzQmVmb3JlU3VibGF5
ZXJzKCkgb24gdGhlIG1hc2sgbGF5ZXIsIGp1c3QgcGFzcworICAgICAgICBpdHMgb3duIHZpc2li
bGUgcmVjdCBhcyB0aGUgb2xkIHZpc2libGUgcmVjdC4KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXJDQTo6Y29tbWl0TGF5ZXJDaGFuZ2VzQmVmb3JlU3VibGF5ZXJzKTogUGFzcyBpbiB0
aGUKKyAgICAgICAgb2xkVmlzaWJsZVJlY3Qgc28gdGhhdCB1cGRhdGVWaXNpYmxlUmVjdCgpIGNh
biB1c2UgdGhpcyB0byBzZWUgaG93IHRoZQorICAgICAgICB2aXNpYmxlUmVjdCBpcyBjaGFuZ2lu
Zy4KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6YWRqdXN0VGlsZWRMYXllclZp
c2libGVSZWN0KTogVGhpcyBtZW1iZXIgZnVuY3Rpb24KKyAgICAgICAgY29tcGFyZXMgdGhlIG9s
ZCBhbmQgbmV3IHZpc2libGUgcmVjdHMsIGFuZCBleHRlbmRzIHRoZSB0aWxlIGNvdmVyYWdlIGFy
ZWEKKyAgICAgICAgaW4gZGlyZWN0aW9ucyB3aGVyZSBtb3JlIGNvbnRlbnQgaXMgYmVpbmcgZXhw
b3NlZC4gSXQgdGFrZXMgY2FyZSB0byBhdm9pZAorICAgICAgICAiaml0dGVyIiBpbiB0aGUgdmlz
aWJsZSByZWN0IGRlbHRhcyBjYXVzaW5nIGVkZ2UgdGlsZXMgdG8gZ2V0IGNyZWF0ZWQgdGhlbgor
ICAgICAgICBkZXN0cm95ZWQgYnkga2VlcGluZyBhbnkgZXh0cmEgcGFkZGluZyB0aGF0IGFscmVh
ZHkgZXhpc3RzIGluIGEgZGlyZWN0aW9uCisgICAgICAgIHdoZXJlIG1vcmUgY29udGVudCBpcyBi
ZWluZyBleHBvc2VkLgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjp1cGRhdGVW
aXNpYmxlUmVjdCk6IENhbGwgYWRqdXN0VGlsZWRMYXllclZpc2libGVSZWN0KCkKKyAgICAgICAg
YW5kIHVzZSB0aGUgcmVzdWx0IHRvIHVwZGF0ZSB0aGUgVGlsZWRCYWNraW5nJ3MgdmlzaWJsZVJl
Y3QuCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnN3YXBGcm9tT3JUb1RpbGVk
TGF5ZXIpOiBDcmVhdGUgbGF5ZXJzIG9mIHR5cGUKKyAgICAgICAgTGF5ZXJUeXBlVGlsZUNhY2hl
TGF5ZXIgaW5zdGVhZCBvZiBMYXllclR5cGVXZWJUaWxlZExheWVyLiBCZWNhdXNlIHRpbGUKKyAg
ICAgICAgY2FjaGUgbGF5ZXJzIGludm9sdmUgYWRkaW5nIGFuIGV4dHJhIGxheWVyIHRvIHRoZSBo
aWVyYXJjaHkgKHRoZSB0aWxlIGNvbnRhaW5lciksCisgICAgICAgIHdlIGNhbGwgdXBkYXRlU3Vi
bGF5ZXJMaXN0KCkgd2hlbiBjaGFuZ2luZyBsYXllciB0eXBlLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oOiBOZXcgbV9zaXplQXRMYXN0VmlzaWJsZVJl
Y3RVcGRhdGUgbWVtYmVyCisgICAgICAgIHRoYXQgaXMgdXNlZCB0byBwcmV2ZW50IHRoZSBhZGp1
c3RUaWxlZExheWVyVmlzaWJsZVJlY3QoKSBsb2dpYyBiZWluZyBjb25mdXNlZCBieQorICAgICAg
ICBzaXplIGNoYW5nZXMuCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnZpc2li
bGVSZWN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvVGlsZUNhY2hlLmg6
IEhhdmUgbm9ybWFsIGdldHRlciBhbmQgc2V0dGVyIGZvciB0aGUgdmlzaWJsZSByZWN0LgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9UaWxlQ2FjaGUubW06CisgICAgICAgIChX
ZWJDb3JlOjpUaWxlQ2FjaGU6OnNldFZpc2libGVSZWN0KTogUmVuYW1lZCB0byBzZXRWaXNpYmxl
UmVjdCgpLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpmbHVzaFBlbmRpbmdMYXll
ckNoYW5nZXMpOiBBdm9pZCBkb2luZyB3b3JrCisgICAgICAgIGZvciBwYWdlcyBpbiB0aGUgcGFn
ZSBjYWNoZSwgZm9yIHdoaWNoIHRoZSByb290IGxheWVyIGlzIHVuYXR0YWNoZWQuCisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OmZyYW1lVmlld0RpZFNjcm9sbCk6IHZp
c2libGVSZWN0Q2hhbmdlZCgpIHdhcyByZW5hbWVkCisgICAgICAgIHRvIHNldFZpc2libGVSZWN0
KCkuCisKIDIwMTItMTAtMTggIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+
CiAKICAgICAgICAgW1dLMl0gV2ViS2l0MiBkb2VzIG5vdCBidWlsZCB3aXRob3V0IFBMVUdJTl9Q
Uk9DRVNTIG9uIE1hYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvVGlsZWRCYWNraW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UaWxl
ZEJhY2tpbmcuaAppbmRleCAxYzc0ZjA5YTIxMzk3MTM5OTJjZjUxMTBmODU2NzRiMDZiNWQ2Mjlk
Li40MTA4ZjEyMmJlNDBjOTEyMDljNWY1MGRhNzllZWNkYWRjNGU4ODZlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tpbmcuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tpbmcuaApAQCAtMzQsNyArMzQs
OSBAQCBjbGFzcyBUaWxlZEJhY2tpbmcgewogcHVibGljOgogICAgIHZpcnR1YWwgflRpbGVkQmFj
a2luZygpIHsgfQogCi0gICAgdmlydHVhbCB2b2lkIHZpc2libGVSZWN0Q2hhbmdlZChjb25zdCBJ
bnRSZWN0JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRWaXNpYmxlUmVjdChjb25zdCBJbnRS
ZWN0JikgPSAwOworICAgIHZpcnR1YWwgSW50UmVjdCB2aXNpYmxlUmVjdCgpIGNvbnN0ID0gMDsK
KwogICAgIHZpcnR1YWwgdm9pZCBzZXRJc0luV2luZG93KGJvb2wpID0gMDsKIAogICAgIGVudW0g
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhp
Y3NMYXllckNBLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBo
aWNzTGF5ZXJDQS5jcHAKaW5kZXggZDNkZjdmZTBmY2RiZWJiODljNjFiOGM4YTQ3OWY2OGRlNzhm
N2Q3NC4uZmY1NjBiMDMyNDg0YjkxYjc3ZWFmYmI3MjE3YTY5MjMxZGE4MjgyNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVy
Q0EuY3BwCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiU2NhbGVUcmFuc2Zvcm1PcGVyYXRp
b24uaCIKICNpbmNsdWRlICJTeXN0ZW1UaW1lLmgiCiAjaW5jbHVkZSAiVGV4dFN0cmVhbS5oIgor
I2luY2x1ZGUgIlRpbGVkQmFja2luZy5oIgogI2luY2x1ZGUgIlRyYW5zZm9ybVN0YXRlLmgiCiAj
aW5jbHVkZSAiVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSA8UXVhcnR6
Q29yZS9DQVRyYW5zZm9ybTNELmg+CkBAIC05MDUsNyArOTA2LDcgQEAgdm9pZCBHcmFwaGljc0xh
eWVyQ0E6OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKQogewogICAgIGZs
b2F0IHBhZ2VTY2FsZUZhY3RvcjsKICAgICBGbG9hdFBvaW50IG9mZnNldCA9IGNvbXB1dGVQb3Np
dGlvblJlbGF0aXZlVG9CYXNlKHBhZ2VTY2FsZUZhY3Rvcik7Ci0gICAgY29tbWl0TGF5ZXJDaGFu
Z2VzQmVmb3JlU3VibGF5ZXJzKHBhZ2VTY2FsZUZhY3Rvciwgb2Zmc2V0KTsKKyAgICBjb21taXRM
YXllckNoYW5nZXNCZWZvcmVTdWJsYXllcnMocGFnZVNjYWxlRmFjdG9yLCBvZmZzZXQsIG1fdmlz
aWJsZVJlY3QpOwogICAgIGNvbW1pdExheWVyQ2hhbmdlc0FmdGVyU3VibGF5ZXJzKCk7CiB9CiAK
QEAgLTkxNCw3ICs5MTUsNyBAQCBUaWxlZEJhY2tpbmcqIEdyYXBoaWNzTGF5ZXJDQTo6dGlsZWRC
YWNraW5nKCkKICAgICByZXR1cm4gbV9sYXllci0+dGlsZWRCYWNraW5nKCk7CiB9CiAKLXZvaWQg
R3JhcGhpY3NMYXllckNBOjpjb21wdXRlVmlzaWJsZVJlY3QoVHJhbnNmb3JtU3RhdGUmIHN0YXRl
KQorRmxvYXRSZWN0IEdyYXBoaWNzTGF5ZXJDQTo6Y29tcHV0ZVZpc2libGVSZWN0KFRyYW5zZm9y
bVN0YXRlJiBzdGF0ZSkgY29uc3QKIHsKICAgICBib29sIHByZXNlcnZlM0QgPSBwcmVzZXJ2ZXMz
RCgpIHx8IChwYXJlbnQoKSA/IHBhcmVudCgpLT5wcmVzZXJ2ZXMzRCgpIDogZmFsc2UpOwogICAg
IFRyYW5zZm9ybVN0YXRlOjpUcmFuc2Zvcm1BY2N1bXVsYXRpb24gYWNjdW11bGF0aW9uID0gcHJl
c2VydmUzRCA/IFRyYW5zZm9ybVN0YXRlOjpBY2N1bXVsYXRlVHJhbnNmb3JtIDogVHJhbnNmb3Jt
U3RhdGU6OkZsYXR0ZW5UcmFuc2Zvcm07CkBAIC05NTQsMTMgKzk1NSwxOSBAQCB2b2lkIEdyYXBo
aWNzTGF5ZXJDQTo6Y29tcHV0ZVZpc2libGVSZWN0KFRyYW5zZm9ybVN0YXRlJiBzdGF0ZSkKICAg
ICAgICAgc3RhdGUuc2V0UXVhZChjbGlwUmVjdEZvclNlbGYpOwogICAgIH0KIAotICAgIG1fdmlz
aWJsZVJlY3QgPSBjbGlwUmVjdEZvclNlbGY7CisgICAgcmV0dXJuIGNsaXBSZWN0Rm9yU2VsZjsK
IH0KIAogdm9pZCBHcmFwaGljc0xheWVyQ0E6OnJlY3Vyc2l2ZUNvbW1pdENoYW5nZXMoY29uc3Qg
VHJhbnNmb3JtU3RhdGUmIHN0YXRlLCBmbG9hdCBwYWdlU2NhbGVGYWN0b3IsIGNvbnN0IEZsb2F0
UG9pbnQmIHBvc2l0aW9uUmVsYXRpdmVUb0Jhc2UsIGJvb2wgYWZmZWN0ZWRCeVBhZ2VTY2FsZSkK
IHsKICAgICBUcmFuc2Zvcm1TdGF0ZSBsb2NhbFN0YXRlID0gc3RhdGU7Ci0gICAgY29tcHV0ZVZp
c2libGVSZWN0KGxvY2FsU3RhdGUpOworICAgIAorICAgIEZsb2F0UmVjdCB2aXNpYmxlUmVjdCA9
IGNvbXB1dGVWaXNpYmxlUmVjdChsb2NhbFN0YXRlKTsKKyAgICBGbG9hdFJlY3Qgb2xkVmlzaWJs
ZVJlY3QgPSBtX3Zpc2libGVSZWN0OworICAgIGlmICh2aXNpYmxlUmVjdCAhPSBtX3Zpc2libGVS
ZWN0KSB7CisgICAgICAgIG1fdW5jb21taXR0ZWRDaGFuZ2VzIHw9IFZpc2libGVSZWN0Q2hhbmdl
ZDsKKyAgICAgICAgbV92aXNpYmxlUmVjdCA9IHZpc2libGVSZWN0OworICAgIH0KIAogI2lmZGVm
IFZJU0lCTEVfVElMRV9XQVNICiAgICAgLy8gVXNlIGhhdmluZyBhIHRyYW5zZm9ybSBhcyBhIGtl
eSB0byBtYWtpbmcgdGhlIHRpbGUgd2FzaCBsYXllci4gSWYgZXZlcnkgbGF5ZXIgZ2V0cyBhIHdh
c2gsCkBAIC05OTUsMTAgKzEwMDIsMTIgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnJlY3Vyc2l2
ZUNvbW1pdENoYW5nZXMoY29uc3QgVHJhbnNmb3JtU3RhdGUmIHN0YXRlLCBmbG9hdAogICAgIGlm
IChhZmZlY3RlZEJ5UGFnZVNjYWxlKQogICAgICAgICBiYXNlUmVsYXRpdmVQb3NpdGlvbiArPSBt
X3Bvc2l0aW9uOwogICAgIAotICAgIGNvbW1pdExheWVyQ2hhbmdlc0JlZm9yZVN1YmxheWVycyhw
YWdlU2NhbGVGYWN0b3IsIGJhc2VSZWxhdGl2ZVBvc2l0aW9uKTsKKyAgICBjb21taXRMYXllckNo
YW5nZXNCZWZvcmVTdWJsYXllcnMocGFnZVNjYWxlRmFjdG9yLCBiYXNlUmVsYXRpdmVQb3NpdGlv
biwgb2xkVmlzaWJsZVJlY3QpOwogCi0gICAgaWYgKG1fbWFza0xheWVyKQotICAgICAgICBzdGF0
aWNfY2FzdDxHcmFwaGljc0xheWVyQ0EqPihtX21hc2tMYXllciktPmNvbW1pdExheWVyQ2hhbmdl
c0JlZm9yZVN1YmxheWVycyhwYWdlU2NhbGVGYWN0b3IsIGJhc2VSZWxhdGl2ZVBvc2l0aW9uKTsK
KyAgICBpZiAobV9tYXNrTGF5ZXIpIHsKKyAgICAgICAgR3JhcGhpY3NMYXllckNBKiBtYXNrTGF5
ZXJDQSA9IHN0YXRpY19jYXN0PEdyYXBoaWNzTGF5ZXJDQSo+KG1fbWFza0xheWVyKTsKKyAgICAg
ICAgbWFza0xheWVyQ0EtPmNvbW1pdExheWVyQ2hhbmdlc0JlZm9yZVN1YmxheWVycyhwYWdlU2Nh
bGVGYWN0b3IsIGJhc2VSZWxhdGl2ZVBvc2l0aW9uLCBtYXNrTGF5ZXJDQS0+dmlzaWJsZVJlY3Qo
KSk7CisgICAgfQogCiAgICAgY29uc3QgVmVjdG9yPEdyYXBoaWNzTGF5ZXIqPiYgY2hpbGRMYXll
cnMgPSBjaGlsZHJlbigpOwogICAgIHNpemVfdCBudW1DaGlsZHJlbiA9IGNoaWxkTGF5ZXJzLnNp
emUoKTsKQEAgLTEwNTUsNyArMTA2NCw3IEBAIGZsb2F0IEdyYXBoaWNzTGF5ZXJDQTo6cGxhdGZv
cm1DQUxheWVyRGV2aWNlU2NhbGVGYWN0b3IoKQogICAgIHJldHVybiBkZXZpY2VTY2FsZUZhY3Rv
cigpOwogfQogCi12b2lkIEdyYXBoaWNzTGF5ZXJDQTo6Y29tbWl0TGF5ZXJDaGFuZ2VzQmVmb3Jl
U3VibGF5ZXJzKGZsb2F0IHBhZ2VTY2FsZUZhY3RvciwgY29uc3QgRmxvYXRQb2ludCYgcG9zaXRp
b25SZWxhdGl2ZVRvQmFzZSkKK3ZvaWQgR3JhcGhpY3NMYXllckNBOjpjb21taXRMYXllckNoYW5n
ZXNCZWZvcmVTdWJsYXllcnMoZmxvYXQgcGFnZVNjYWxlRmFjdG9yLCBjb25zdCBGbG9hdFBvaW50
JiBwb3NpdGlvblJlbGF0aXZlVG9CYXNlLCBjb25zdCBGbG9hdFJlY3QmIG9sZFZpc2libGVSZWN0
KQogewogICAgIGlmICghbV91bmNvbW1pdHRlZENoYW5nZXMpCiAgICAgICAgIHJldHVybjsKQEAg
LTExMjIsNiArMTEzMSw5IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjpjb21taXRMYXllckNoYW5n
ZXNCZWZvcmVTdWJsYXllcnMoZmxvYXQgcGFnZVNjYWxlRmFjdG9yLCBjCiAgICAgaWYgKG1fdW5j
b21taXR0ZWRDaGFuZ2VzICYgQ29udGVudHNTY2FsZUNoYW5nZWQpCiAgICAgICAgIHVwZGF0ZUNv
bnRlbnRzU2NhbGUocGFnZVNjYWxlRmFjdG9yLCBwb3NpdGlvblJlbGF0aXZlVG9CYXNlKTsKIAor
ICAgIGlmIChtX3VuY29tbWl0dGVkQ2hhbmdlcyAmIFZpc2libGVSZWN0Q2hhbmdlZCkKKyAgICAg
ICAgdXBkYXRlVmlzaWJsZVJlY3Qob2xkVmlzaWJsZVJlY3QpOworCiAgICAgaWYgKG1fdW5jb21t
aXR0ZWRDaGFuZ2VzICYgRGlydHlSZWN0c0NoYW5nZWQpCiAgICAgICAgIHJlcGFpbnRMYXllckRp
cnR5UmVjdHMoKTsKICAgICAKQEAgLTE1MzUsNyArMTU0Nyw3OCBAQCB2b2lkIEdyYXBoaWNzTGF5
ZXJDQTo6dXBkYXRlQWNjZWxlcmF0ZXNEcmF3aW5nKCkKIHsKICAgICBtX2xheWVyLT5zZXRBY2Nl
bGVyYXRlc0RyYXdpbmcobV9hY2NlbGVyYXRlc0RyYXdpbmcpOwogfQorCitGbG9hdFJlY3QgR3Jh
cGhpY3NMYXllckNBOjphZGp1c3RUaWxlZExheWVyVmlzaWJsZVJlY3QoVGlsZWRCYWNraW5nKiB0
aWxlZEJhY2tpbmcsIGNvbnN0IEZsb2F0UmVjdCYgb2xkVmlzaWJsZVJlY3QsIGNvbnN0IEZsb2F0
U2l6ZSYgb2xkU2l6ZSkgY29uc3QKK3sKKyAgICAvLyBJZiB0aGUgb2xkIHZpc2libGUgcmVjdCBp
cyBlbXB0eSwgd2UgaGF2ZSBubyBpbmZvcm1hdGlvbiBhYm91dCBob3cgdGhlIHZpc2libGUgYXJl
YSBpcyBjaGFuZ2luZworICAgIC8vIChtYXliZSB0aGUgbGF5ZXIgd2FzIGp1c3QgY3JlYXRlZCks
IHNvIGRvbid0IGF0dGVtcHQgdG8gZXhwYW5kLiBBbHNvIGRvbid0IGF0dGVtcHQgdG8gZXhwYW5k
CisgICAgLy8gaWYgdGhlIHNpemUgY2hhbmdlZC4KKyAgICBpZiAob2xkVmlzaWJsZVJlY3QuaXNF
bXB0eSgpIHx8IG1fc2l6ZSAhPSBvbGRTaXplKQorICAgICAgICByZXR1cm4gbV92aXNpYmxlUmVj
dDsKKworICAgIGNvbnN0IGZsb2F0IHBhZGRpbmdNdWx0aXBsaWVyID0gMjsKKworICAgIGZsb2F0
IGxlZnRFZGdlRGVsdGEgPSBwYWRkaW5nTXVsdGlwbGllciAqIChtX3Zpc2libGVSZWN0LngoKSAt
IG9sZFZpc2libGVSZWN0LngoKSk7CisgICAgZmxvYXQgcmlnaHRFZGdlRGVsdGEgPSBwYWRkaW5n
TXVsdGlwbGllciAqIChtX3Zpc2libGVSZWN0Lm1heFgoKSAtIG9sZFZpc2libGVSZWN0Lm1heFgo
KSk7CisKKyAgICBmbG9hdCB0b3BFZGdlRGVsdGEgPSBwYWRkaW5nTXVsdGlwbGllciAqIChtX3Zp
c2libGVSZWN0LnkoKSAtIG9sZFZpc2libGVSZWN0LnkoKSk7CisgICAgZmxvYXQgYm90dG9tRWRn
ZURlbHRhID0gcGFkZGluZ011bHRpcGxpZXIgKiAobV92aXNpYmxlUmVjdC5tYXhZKCkgLSBvbGRW
aXNpYmxlUmVjdC5tYXhZKCkpOwogICAgIAorICAgIEZsb2F0UmVjdCBleGlzdGluZ1RpbGVCYWNr
aW5nUmVjdCA9IHRpbGVkQmFja2luZy0+dmlzaWJsZVJlY3QoKTsKKyAgICBGbG9hdFJlY3QgZXhw
YW5kZWRSZWN0ID0gbV92aXNpYmxlUmVjdDsKKworICAgIC8vIE1vcmUgZXhwb3NlZCBvbiBsZWZ0
IHNpZGUuCisgICAgaWYgKGxlZnRFZGdlRGVsdGEgPCAwKSB7CisgICAgICAgIGZsb2F0IG5ld0xl
ZnQgPSBleHBhbmRlZFJlY3QueCgpICsgbGVmdEVkZ2VEZWx0YTsKKyAgICAgICAgLy8gUGFkIHRv
IHRoZSBsZWZ0LCBidXQgZG9uJ3QgcmVkdWNlIHBhZGRpbmcgdGhhdCdzIGFscmVhZHkgaW4gdGhl
IGJhY2tpbmcgc3RvcmUgKHNpbmNlIHdlJ3JlIHN0aWxsIGV4cG9zaW5nIHRvIHRoZSBsZWZ0KS4K
KyAgICAgICAgaWYgKG5ld0xlZnQgPCBleGlzdGluZ1RpbGVCYWNraW5nUmVjdC54KCkpCisgICAg
ICAgICAgICBleHBhbmRlZFJlY3Quc2hpZnRYRWRnZVRvKG5ld0xlZnQpOworICAgICAgICBlbHNl
CisgICAgICAgICAgICBleHBhbmRlZFJlY3Quc2hpZnRYRWRnZVRvKGV4aXN0aW5nVGlsZUJhY2tp
bmdSZWN0LngoKSk7CisgICAgfQorCisgICAgLy8gTW9yZSBleHBvc2VkIG9uIHJpZ2h0LgorICAg
IGlmIChyaWdodEVkZ2VEZWx0YSA+IDApIHsKKyAgICAgICAgZmxvYXQgbmV3UmlnaHQgPSBleHBh
bmRlZFJlY3QubWF4WCgpICsgcmlnaHRFZGdlRGVsdGE7CisgICAgICAgIC8vIFBhZCB0byB0aGUg
cmlnaHQsIGJ1dCBkb24ndCByZWR1Y2UgcGFkZGluZyB0aGF0J3MgYWxyZWFkeSBpbiB0aGUgYmFj
a2luZyBzdG9yZSAoc2luY2Ugd2UncmUgc3RpbGwgZXhwb3NpbmcgdG8gdGhlIHJpZ2h0KS4KKyAg
ICAgICAgaWYgKG5ld1JpZ2h0ID4gZXhpc3RpbmdUaWxlQmFja2luZ1JlY3QubWF4WCgpKQorICAg
ICAgICAgICAgZXhwYW5kZWRSZWN0LnNldFdpZHRoKG5ld1JpZ2h0IC0gZXhwYW5kZWRSZWN0Lngo
KSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGV4cGFuZGVkUmVjdC5zZXRXaWR0aChleGlz
dGluZ1RpbGVCYWNraW5nUmVjdC5tYXhYKCkgLSBleHBhbmRlZFJlY3QueCgpKTsKKyAgICB9CisK
KyAgICAvLyBNb3JlIGV4cG9zZWQgYXQgdG9wLgorICAgIGlmICh0b3BFZGdlRGVsdGEgPCAwKSB7
CisgICAgICAgIGZsb2F0IG5ld1RvcCA9IGV4cGFuZGVkUmVjdC55KCkgKyB0b3BFZGdlRGVsdGE7
CisgICAgICAgIGlmIChuZXdUb3AgPCBleGlzdGluZ1RpbGVCYWNraW5nUmVjdC55KCkpCisgICAg
ICAgICAgICBleHBhbmRlZFJlY3Quc2hpZnRZRWRnZVRvKG5ld1RvcCk7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIGV4cGFuZGVkUmVjdC5zaGlmdFlFZGdlVG8oZXhpc3RpbmdUaWxlQmFja2lu
Z1JlY3QueSgpKTsKKyAgICB9CisKKyAgICAvLyBNb3JlIGV4cG9zZWQgb24gYm90dG9tLgorICAg
IGlmIChib3R0b21FZGdlRGVsdGEgPiAwKSB7CisgICAgICAgIGZsb2F0IG5ld0JvdHRvbSA9IGV4
cGFuZGVkUmVjdC5tYXhZKCkgKyBib3R0b21FZGdlRGVsdGE7CisgICAgICAgIGlmIChuZXdCb3R0
b20gPiBleGlzdGluZ1RpbGVCYWNraW5nUmVjdC5tYXhZKCkpCisgICAgICAgICAgICBleHBhbmRl
ZFJlY3Quc2V0SGVpZ2h0KG5ld0JvdHRvbSAtIGV4cGFuZGVkUmVjdC55KCkpOworICAgICAgICBl
bHNlCisgICAgICAgICAgICBleHBhbmRlZFJlY3Quc2V0SGVpZ2h0KGV4aXN0aW5nVGlsZUJhY2tp
bmdSZWN0Lm1heFkoKSAtIGV4cGFuZGVkUmVjdC55KCkpOworICAgIH0KKyAgICAKKyAgICByZXR1
cm4gZXhwYW5kZWRSZWN0OworfQorCit2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRlVmlzaWJs
ZVJlY3QoY29uc3QgRmxvYXRSZWN0JiBvbGRWaXNpYmxlUmVjdCkKK3sKKyAgICBpZiAobV9sYXll
ci0+bGF5ZXJUeXBlKCkgIT0gUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVUaWxlQ2FjaGVMYXll
cikKKyAgICAgICAgcmV0dXJuOworCisgICAgRmxvYXRSZWN0IHRpbGVBcmVhID0gYWRqdXN0VGls
ZWRMYXllclZpc2libGVSZWN0KHRpbGVkQmFja2luZygpLCBvbGRWaXNpYmxlUmVjdCwgbV9zaXpl
QXRMYXN0VmlzaWJsZVJlY3RVcGRhdGUpOworICAgIHRpbGVkQmFja2luZygpLT5zZXRWaXNpYmxl
UmVjdChlbmNsb3NpbmdJbnRSZWN0KHRpbGVBcmVhKSk7CisKKyAgICBtX3NpemVBdExhc3RWaXNp
YmxlUmVjdFVwZGF0ZSA9IG1fc2l6ZTsKK30KKwogdm9pZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0
ZUxheWVyQmFja2dyb3VuZENvbG9yKCkKIHsKICAgICBpZiAobV9pc1BhZ2VUaWxlQ2FjaGVMYXll
cikgewpAQCAtMjUwMSw3ICsyNTg0LDcgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnN3YXBGcm9t
T3JUb1RpbGVkTGF5ZXIoYm9vbCB1c2VUaWxlZExheWVyLCBmbG9hdCBwYWdlU2NhbGUKICAgICBB
U1NFUlQodXNlVGlsZWRMYXllciAhPSBtX3VzaW5nVGlsZWRMYXllcik7CiAgICAgUmVmUHRyPFBs
YXRmb3JtQ0FMYXllcj4gb2xkTGF5ZXIgPSBtX2xheWVyOwogICAgIAotICAgIG1fbGF5ZXIgPSBQ
bGF0Zm9ybUNBTGF5ZXI6OmNyZWF0ZSh1c2VUaWxlZExheWVyID8gUGxhdGZvcm1DQUxheWVyOjpM
YXllclR5cGVXZWJUaWxlZExheWVyIDogUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVXZWJMYXll
ciwgdGhpcyk7CisgICAgbV9sYXllciA9IFBsYXRmb3JtQ0FMYXllcjo6Y3JlYXRlKHVzZVRpbGVk
TGF5ZXIgPyBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZVRpbGVDYWNoZUxheWVyIDogUGxhdGZv
cm1DQUxheWVyOjpMYXllclR5cGVXZWJMYXllciwgdGhpcyk7CiAgICAgbV91c2luZ1RpbGVkTGF5
ZXIgPSB1c2VUaWxlZExheWVyOwogICAgIAogICAgIG1fbGF5ZXItPmFkb3B0U3VibGF5ZXJzKG9s
ZExheWVyLmdldCgpKTsKQEAgLTI1MjAsNiArMjYwMyw3IEBAIHZvaWQgR3JhcGhpY3NMYXllckNB
Ojpzd2FwRnJvbU9yVG9UaWxlZExheWVyKGJvb2wgdXNlVGlsZWRMYXllciwgZmxvYXQgcGFnZVNj
YWxlCiAgICAgdXBkYXRlR2VvbWV0cnkocGFnZVNjYWxlRmFjdG9yLCBwb3NpdGlvblJlbGF0aXZl
VG9CYXNlKTsKICAgICB1cGRhdGVUcmFuc2Zvcm0oKTsKICAgICB1cGRhdGVDaGlsZHJlblRyYW5z
Zm9ybSgpOworICAgIHVwZGF0ZVN1YmxheWVyTGlzdCgpOwogICAgIHVwZGF0ZU1hc2tzVG9Cb3Vu
ZHMoKTsKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgdXBkYXRlRmlsdGVycygpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXll
ckNBLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVy
Q0EuaAppbmRleCBiOGRhNTc3NmE5OWY5NzBlZDMwOWNlYWZhYWVhODgxMjg1MGRiMzIyLi5jNmIy
MTBlNWI4YjU3MTZmYzk4YmE3Y2EyNmMxZDY4MTlkZTcyMWJlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaApAQCAtMjEx
LDcgKzIxMSw3IEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiBtX3J1bm5pbmdBbmltYXRpb25z
LmZpbmQoYW5pbWF0aW9uTmFtZSkgIT0gbV9ydW5uaW5nQW5pbWF0aW9ucy5lbmQoKTsKICAgICB9
CiAKLSAgICB2b2lkIGNvbW1pdExheWVyQ2hhbmdlc0JlZm9yZVN1YmxheWVycyhmbG9hdCBwYWdl
U2NhbGVGYWN0b3IsIGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0aW9uUmVsYXRpdmVUb0Jhc2UpOwor
ICAgIHZvaWQgY29tbWl0TGF5ZXJDaGFuZ2VzQmVmb3JlU3VibGF5ZXJzKGZsb2F0IHBhZ2VTY2Fs
ZUZhY3RvciwgY29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb25SZWxhdGl2ZVRvQmFzZSwgY29uc3Qg
RmxvYXRSZWN0JiBvbGRWaXNpYmxlUmVjdCk7CiAgICAgdm9pZCBjb21taXRMYXllckNoYW5nZXNB
ZnRlclN1YmxheWVycygpOwogCiAgICAgRmxvYXRQb2ludCBjb21wdXRlUG9zaXRpb25SZWxhdGl2
ZVRvQmFzZShmbG9hdCYgcGFnZVNjYWxlKSBjb25zdDsKQEAgLTIzMyw3ICsyMzMsMTAgQEAgcHJp
dmF0ZToKIAogICAgIHZvaWQgY29tcHV0ZVBpeGVsQWxpZ25tZW50KGZsb2F0IHBpeGVsQWxpZ25t
ZW50U2NhbGUsIGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0aW9uUmVsYXRpdmVUb0Jhc2UsCiAgICAg
ICAgIEZsb2F0UG9pbnQmIHBvc2l0aW9uLCBGbG9hdFNpemUmLCBGbG9hdFBvaW50M0QmIGFuY2hv
clBvaW50LCBGbG9hdFNpemUmIGFsaWdubWVudE9mZnNldCkgY29uc3Q7Ci0gICAgdm9pZCBjb21w
dXRlVmlzaWJsZVJlY3QoVHJhbnNmb3JtU3RhdGUmKTsKKyAgICBGbG9hdFJlY3QgY29tcHV0ZVZp
c2libGVSZWN0KFRyYW5zZm9ybVN0YXRlJikgY29uc3Q7CisgICAgY29uc3QgRmxvYXRSZWN0JiB2
aXNpYmxlUmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fdmlzaWJsZVJlY3Q7IH0KKyAgICAKKyAgICBG
bG9hdFJlY3QgYWRqdXN0VGlsZWRMYXllclZpc2libGVSZWN0KFRpbGVkQmFja2luZyosIGNvbnN0
IEZsb2F0UmVjdCYgb2xkVmlzaWJsZVJlY3QsIGNvbnN0IEZsb2F0U2l6ZSYgb2xkU2l6ZSkgY29u
c3Q7CiAKICAgICAvLyBVc2VkIHRvIHRyYWNrIHRoZSBwYXRoIGRvd24gdGhlIHRyZWUgZm9yIHJl
cGxpY2EgbGF5ZXJzLgogICAgIHN0cnVjdCBSZXBsaWNhU3RhdGUgewpAQCAtMzIzLDYgKzMyNiw3
IEBAIHByaXZhdGU6CiAgICAgdm9pZCB1cGRhdGVMYXllckFuaW1hdGlvbnMoKTsKICAgICB2b2lk
IHVwZGF0ZUNvbnRlbnRzTmVlZHNEaXNwbGF5KCk7CiAgICAgdm9pZCB1cGRhdGVBY2NlbGVyYXRl
c0RyYXdpbmcoKTsKKyAgICB2b2lkIHVwZGF0ZVZpc2libGVSZWN0KGNvbnN0IEZsb2F0UmVjdCYg
b2xkVmlzaWJsZVJlY3QpOwogICAgIHZvaWQgdXBkYXRlQ29udGVudHNTY2FsZShmbG9hdCBwaXhl
bEFsaWdubWVudFNjYWxlLCBjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvblJlbGF0aXZlVG9CYXNl
KTsKICAgICAKICAgICBlbnVtIFN0cnVjdHVyYWxMYXllclB1cnBvc2UgewpAQCAtMzcyLDggKzM3
Niw5IEBAIHByaXZhdGU6CiAgICAgICAgIEFjY2VsZXJhdGVzRHJhd2luZ0NoYW5nZWQgPSAxIDw8
IDIyLAogICAgICAgICBDb250ZW50c1NjYWxlQ2hhbmdlZCA9IDEgPDwgMjMsCiAgICAgICAgIENv
bnRlbnRzVmlzaWJpbGl0eUNoYW5nZWQgPSAxIDw8IDI0LAorICAgICAgICBWaXNpYmxlUmVjdENo
YW5nZWQgPSAxIDw8IDI1LAogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKLSAgICAgICAgRmlsdGVy
c0NoYW5nZWQgPSAxIDw8IDI1LAorICAgICAgICBGaWx0ZXJzQ2hhbmdlZCA9IDEgPDwgMjYsCiAj
ZW5kaWYKICAgICB9OwogICAgIHR5cGVkZWYgdW5zaWduZWQgTGF5ZXJDaGFuZ2VGbGFnczsKQEAg
LTM5Niw2ICs0MDEsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+IG1f
dmlzaWJsZVRpbGVXYXNoTGF5ZXI7CiAjZW5kaWYKICAgICBGbG9hdFJlY3QgbV92aXNpYmxlUmVj
dDsKKyAgICBGbG9hdFNpemUgbV9zaXplQXRMYXN0VmlzaWJsZVJlY3RVcGRhdGU7CiAgICAgCiAg
ICAgZW51bSBDb250ZW50c0xheWVyUHVycG9zZSB7CiAgICAgICAgIE5vQ29udGVudHNMYXllciA9
IDAsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMv
VGlsZUNhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvVGls
ZUNhY2hlLmgKaW5kZXggNzYzODdlOGFhZjVkMTU1OTZlMTEzYTBlYTAzYzc4NTc0YTRkMjQ5ZC4u
MTdlOThlZTNjM2VjYTg3ZGU2ODg4YzNjYjBiMDhmYmUxMjBkMjg3OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1RpbGVDYWNoZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9UaWxlQ2FjaGUuaApAQCAtNzMs
NyArNzMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRUaWxlRGVidWdCb3JkZXJXaWR0aChmbG9h
dCk7CiAgICAgdm9pZCBzZXRUaWxlRGVidWdCb3JkZXJDb2xvcihDR0NvbG9yUmVmKTsKIAotICAg
IEludFJlY3QgdmlzaWJsZVJlY3QoKSBjb25zdCB7IHJldHVybiBtX3Zpc2libGVSZWN0OyB9Cisg
ICAgdmlydHVhbCBJbnRSZWN0IHZpc2libGVSZWN0KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4g
bV92aXNpYmxlUmVjdDsgfQogCiAgICAgdW5zaWduZWQgYmxhbmtQaXhlbENvdW50KCkgY29uc3Q7
CiAgICAgc3RhdGljIHVuc2lnbmVkIGJsYW5rUGl4ZWxDb3VudEZvclRpbGVzKGNvbnN0IFdlYlRp
bGVMYXllckxpc3QmLCBJbnRSZWN0LCBJbnRQb2ludCk7CkBAIC04Miw3ICs4Miw3IEBAIHByaXZh
dGU6CiAgICAgVGlsZUNhY2hlKFdlYlRpbGVDYWNoZUxheWVyKiwgY29uc3QgSW50U2l6ZSYgdGls
ZVNpemUpOwogCiAgICAgLy8gVGlsZWRCYWNraW5nIG1lbWJlciBmdW5jdGlvbnMuCi0gICAgdmly
dHVhbCB2b2lkIHZpc2libGVSZWN0Q2hhbmdlZChjb25zdCBJbnRSZWN0JikgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCB2b2lkIHNldFZpc2libGVSZWN0KGNvbnN0IEludFJlY3QmKSBPVkVSUklERTsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0SXNJbldpbmRvdyhib29sKSBPVkVSUklERTsKICAgICB2aXJ0
dWFsIHZvaWQgc2V0VGlsZUNvdmVyYWdlKFRpbGVDb3ZlcmFnZSkgT1ZFUlJJREU7CiAgICAgdmly
dHVhbCBUaWxlQ292ZXJhZ2UgdGlsZUNvdmVyYWdlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4g
bV90aWxlQ292ZXJhZ2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL21hYy9UaWxlQ2FjaGUubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYS9tYWMvVGlsZUNhY2hlLm1tCmluZGV4IGIxMmIxNGQxMWI3ZTY1MTc1MDNmZDJlYTE0
Yzg5MzAwNDVmMjdlMTYuLjNiYWJkNWViNGE1MWZjOGEwMWU1MTM0MjYwNTNiMDcyNjdiZWMxYzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9UaWxl
Q2FjaGUubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1Rp
bGVDYWNoZS5tbQpAQCAtMjIwLDcgKzIyMCw3IEBAIHZvaWQgVGlsZUNhY2hlOjpzZXRUaWxlc09w
YXF1ZShib29sIG9wYXF1ZSkKICAgICB9CiB9CiAKLXZvaWQgVGlsZUNhY2hlOjp2aXNpYmxlUmVj
dENoYW5nZWQoY29uc3QgSW50UmVjdCYgdmlzaWJsZVJlY3QpCit2b2lkIFRpbGVDYWNoZTo6c2V0
VmlzaWJsZVJlY3QoY29uc3QgSW50UmVjdCYgdmlzaWJsZVJlY3QpCiB7CiAgICAgaWYgKG1fdmlz
aWJsZVJlY3QgPT0gdmlzaWJsZVJlY3QpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXggZjEwNGFm
MjZmMDcyZWFhYTgwNzNkNjlhNTZiNmZiYTVhOTM1NDM0OS4uNTU2NjRjMjI4NDVmMGE1MmNmNmMz
ZDM4Zjc5NDA2MGZhMzYyMzI5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTI4Myw2ICsyODMsOSBAQCB2b2lkIFJlbmRl
ckxheWVyQ29tcG9zaXRvcjo6Zmx1c2hQZW5kaW5nTGF5ZXJDaGFuZ2VzKGJvb2wgaXNGbHVzaFJv
b3QpCiAgICAgaWYgKCFpc0ZsdXNoUm9vdCAmJiByb290TGF5ZXJBdHRhY2htZW50KCkgPT0gUm9v
dExheWVyQXR0YWNoZWRWaWFFbmNsb3NpbmdGcmFtZSkKICAgICAgICAgcmV0dXJuOwogICAgIAor
ICAgIGlmIChyb290TGF5ZXJBdHRhY2htZW50KCkgPT0gUm9vdExheWVyVW5hdHRhY2hlZCkKKyAg
ICAgICAgcmV0dXJuOworCiAgICAgQW5pbWF0aW9uVXBkYXRlQmxvY2sgYW5pbWF0aW9uVXBkYXRl
QmxvY2sobV9yZW5kZXJWaWV3LT5mcmFtZVZpZXcoKS0+ZnJhbWUoKS0+YW5pbWF0aW9uKCkpOwog
CiAgICAgQVNTRVJUKCFtX2ZsdXNoaW5nTGF5ZXJzKTsKQEAgLTEwOTcsNyArMTEwMCw3IEBAIHZv
aWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpmcmFtZVZpZXdEaWRTY3JvbGwoKQogICAgIGlmIChU
aWxlZEJhY2tpbmcqIHRpbGVkQmFja2luZyA9IGZyYW1lVmlldy0+dGlsZWRCYWNraW5nKCkpIHsK
ICAgICAgICAgSW50UmVjdCB2aXNpYmxlQ29udGVudFJlY3QgPSBmcmFtZVZpZXctPnZpc2libGVD
b250ZW50UmVjdChmYWxzZSAvKiBleGNsdWRlIHNjcm9sbGJhcnMgKi8pOwogICAgICAgICB2aXNp
YmxlQ29udGVudFJlY3QubW92ZSh0b1NpemUoZnJhbWVWaWV3LT5zY3JvbGxPcmlnaW4oKSkpOwot
ICAgICAgICB0aWxlZEJhY2tpbmctPnZpc2libGVSZWN0Q2hhbmdlZCh2aXNpYmxlQ29udGVudFJl
Y3QpOworICAgICAgICB0aWxlZEJhY2tpbmctPnNldFZpc2libGVSZWN0KHZpc2libGVDb250ZW50
UmVjdCk7CiAgICAgfQogCiAgICAgaWYgKCFtX3Njcm9sbExheWVyKQo=
</data>
<flag name="review"
          id="182890"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>