<?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>131586</bug_id>
          
          <creation_ts>2014-04-12 22:21:51 -0700</creation_ts>
          <short_desc>Keep secondary tile grid for zoomed-out scale</short_desc>
          <delta_ts>2014-04-14 12:20:52 -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>Layout and Rendering</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="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1000251</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2014-04-12 22:21:51 -0700</bug_when>
    <thetext>Better zooming</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1000253</commentid>
    <comment_count>1</comment_count>
      <attachid>229217</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2014-04-12 22:45:52 -0700</bug_when>
    <thetext>Created attachment 229217
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1000254</commentid>
    <comment_count>2</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2014-04-12 22:48:04 -0700</bug_when>
    <thetext>&lt;rdar://problem/16383851&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1000401</commentid>
    <comment_count>3</comment_count>
      <attachid>229217</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-04-13 23:25:24 -0700</bug_when>
    <thetext>Comment on attachment 229217
patch

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

&gt; Source/WebCore/platform/graphics/ca/mac/TileController.mm:520
&gt; +        count +=  m_zoomedOutTileGrid-&gt;numberOfUnparentedTiles();

extra space here after &quot;+=&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1000553</commentid>
    <comment_count>4</comment_count>
      <attachid>229217</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-04-14 11:27:44 -0700</bug_when>
    <thetext>Comment on attachment 229217
patch

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

&gt; Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:2999
&gt; +        if (m_isPageTiledBackingLayer)
&gt; +            m_uncommittedChanges |= ChildrenChanged;

Do we need to do this always? Is it bad if we do?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1000555</commentid>
    <comment_count>5</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2014-04-14 11:31:37 -0700</bug_when>
    <thetext>&gt; Do we need to do this always? Is it bad if we do?

We don&apos;t but I don&apos;t think it ends up doing significant amount of actual work if nothing changes (it just re-adds the layers that are already there).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1000557</commentid>
    <comment_count>6</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2014-04-14 11:40:48 -0700</bug_when>
    <thetext>https://trac.webkit.org/r167256</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1000570</commentid>
    <comment_count>7</comment_count>
      <attachid>229217</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-04-14 12:20:52 -0700</bug_when>
    <thetext>Comment on attachment 229217
patch

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

&gt;&gt; Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:2999
&gt;&gt; +            m_uncommittedChanges |= ChildrenChanged;
&gt; 
&gt; Do we need to do this always? Is it bad if we do?

Yeah, I would prefer that we don&apos;t always do this. It will result in extra remote layer tree transaction thrash.

tiledBacking() should have a:
bool contentsScaleChangeRequiresSublayerUpdate(float) or something.

&gt; Source/WebCore/platform/graphics/ca/mac/TileController.mm:135
&gt; +    return tileGrid().scale() * m_deviceScaleFactor;

I hope the scale /= deviceScaleFactor; and this math don&apos;t result in floating-point rounding issues that cause us to compare the contentsScale as different somewhere.

&gt; Source/WebCore/platform/graphics/ca/mac/TileGrid.h:-62
&gt; -    typedef unsigned TileValidationPolicyFlags;

Why did you remove this? I prefer strongly typed bitfield types.

&gt; Source/WebCore/platform/graphics/ca/mac/TileGrid.mm:340
&gt; +void TileGrid::revalidateTiles(unsigned validationPolicy)

:(</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>229217</attachid>
            <date>2014-04-12 22:45:52 -0700</date>
            <delta_ts>2014-04-14 12:20:51 -0700</delta_ts>
            <desc>patch</desc>
            <filename>zoomed-out-grid.patch</filename>
            <type>text/plain</type>
            <size>15563</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2NzE5MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU3IEBACisyMDE0LTA0LTEyICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBLZWVwIHNlY29uZGFyeSB0aWxl
IGdyaWQgZm9yIHpvb21lZC1vdXQgc2NhbGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEzMTU4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNB
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRlQ29udGVudHNT
Y2FsZSk6CisgICAgICAgIAorICAgICAgICAgICAgRG9uJ3QgcmVwYWludCB0aWxlZCBiYWNraW5n
IHdpdGggc2V0TmVlZHNEaXNwbGF5LCBpdCBpbnZhbGlkYXRlcyBpdHNlbGYgY29ycmVjdGx5IGlu
IHNldENvbnRlbnRzU2NhbGUuCisgICAgICAgICAgICBVcGRhdGUgY3VzdG9tIGNoaWxkIGxheWVy
cyB3aGVuIHRpbGVkIGJhY2tpbmcgc2NhbGUgY2hhbmdlcy4KKworICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2NhL21hYy9UaWxlQ29udHJvbGxlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2NhL21hYy9UaWxlQ29udHJvbGxlci5tbToKKyAgICAgICAgKFdlYkNvcmU6OlRpbGVD
b250cm9sbGVyOjpUaWxlQ29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpUaWxlQ29udHJv
bGxlcjo6c2V0TmVlZHNEaXNwbGF5KToKKyAgICAgICAgCisgICAgICAgICAgICBEcm9wIHRoZSB3
aG9sZSB6b29tZWQtb3V0IGdyaWQgb24gZnVsbCByZXBhaW50LgorCisgICAgICAgIChXZWJDb3Jl
OjpUaWxlQ29udHJvbGxlcjo6c2V0TmVlZHNEaXNwbGF5SW5SZWN0KToKKyAgICAgICAgICAgIAor
ICAgICAgICAgICAgRHJvcCBjaGFuZ2VkIHpvb21lZC1vdXQgdGlsZXMuIEEgbW9yZSBzb3BoaXN0
aWNhdGVkIHN0cmF0ZWd5IGlzIHBvc3NpYmxlLgorCisgICAgICAgIChXZWJDb3JlOjpUaWxlQ29u
dHJvbGxlcjo6c2V0Q29udGVudHNTY2FsZSk6CisgICAgICAgIAorICAgICAgICAgICAgU3dhcCB0
aGUgem9vbWVkLW91dCBncmlkIGluIGFuZCBvdXQgYXMgbmVlZGVkLgorICAgICAgICAgICAgUmVw
YWludCB0aGUgYWN0aXZlIGdyaWQgYWZ0ZXIgc2NhbGUgY2hhbmdlIHNvIHRoZSBjbGllbnQgZG9l
cyBub3QgaGF2ZSB0by4KKworICAgICAgICAoV2ViQ29yZTo6VGlsZUNvbnRyb2xsZXI6OmNvbnRl
bnRzU2NhbGUpOgorICAgICAgICAKKyAgICAgICAgICAgIEdldCB0aGUgY29udGVudCBzY2FsZSBm
cm9tIHRoZSB0aWxlIGdyaWQgc28gaXQgaXMgbm90IGtlcHQgaW4gdHdvIHBsYWNlcy4KKworICAg
ICAgICAoV2ViQ29yZTo6VGlsZUNvbnRyb2xsZXI6Onpvb21lZE91dENvbnRlbnRzU2NhbGUpOgor
ICAgICAgICAoV2ViQ29yZTo6VGlsZUNvbnRyb2xsZXI6OnNldFpvb21lZE91dENvbnRlbnRzU2Nh
bGUpOgorICAgICAgICAKKyAgICAgICAgICAgIERyb3AgdGhlIHpvb21lZC1vdXQgZ3JpZCBpZiBp
dCBubyBsb25nZXIgbWF0Y2hlcyB0aGUgem9vbWVkLW91dCBzY2FsZS4KKworICAgICAgICAoV2Vi
Q29yZTo6VGlsZUNvbnRyb2xsZXI6OnRpbGVSZXZhbGlkYXRpb25UaW1lckZpcmVkKToKKyAgICAg
ICAgKFdlYkNvcmU6OlRpbGVDb250cm9sbGVyOjpyZXRhaW5lZFRpbGVCYWNraW5nU3RvcmVNZW1v
cnkpOgorICAgICAgICAoV2ViQ29yZTo6VGlsZUNvbnRyb2xsZXI6OmNvbnRhaW5lckxheWVycyk6
CisgICAgICAgIAorICAgICAgICAgICAgUmV0dXJuIGJvdGggem9vbWVkLW91dCB0aWxlcyBhbmQg
dGhlIGFjdGl2ZSB0aWxlcy4gQWN0aXZlIHRpbGVzIGFyZSBvbiB0b3AuCisKKyAgICAgICAgKFdl
YkNvcmU6OlRpbGVDb250cm9sbGVyOjpudW1iZXJPZlVucGFyZW50ZWRUaWxlcyk6CisgICAgICAg
IChXZWJDb3JlOjpUaWxlQ29udHJvbGxlcjo6cmVtb3ZlVW5wYXJlbnRlZFRpbGVzTm93KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvVGlsZUdyaWQuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvVGlsZUdyaWQubW06CisgICAgICAgIChXZWJDb3JlOjpU
aWxlR3JpZDo6ZHJvcFRpbGVzSW5SZWN0KToKKyAgICAgICAgCisgICAgICAgICAgICBBZGQgYSBm
dW5jdGlvbiBmb3IgZHJvcHBpbmcgdGlsZXMuCisKKyAgICAgICAgKFdlYkNvcmU6OlRpbGVHcmlk
OjpyZXZhbGlkYXRlVGlsZXMpOgorCiAyMDE0LTA0LTEyICBBbmR5IEVzdGVzICA8YWVzdGVzQGFw
cGxlLmNvbT4KIAogICAgICAgICBGaXggdGhlIGlPUyBidWlsZCBhZnRlciByMTY3MTgzLgpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFw
aGljc0xheWVyQ0EuY3BwCShyZXZpc2lvbiAxNjcxNDUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
OTkyLDYgKzI5OTIsMTQgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUNvbnRlbnRzU2Nh
bAogICAgICAgICByZXR1cm47CiAKICAgICBtX2xheWVyLT5zZXRDb250ZW50c1NjYWxlKGNvbnRl
bnRzU2NhbGUpOworCisgICAgaWYgKHRpbGVkQmFja2luZygpKSB7CisgICAgICAgIC8vIFNjYWxl
IGNoYW5nZSBtYXkgc3dhcCBpbiBhIGRpZmZlcmVudCBzZXQgb2YgdGlsZXMgY2hhbmdpbmcgdGhl
IGN1c3RvbSBjaGlsZCBsYXllcnMuCisgICAgICAgIGlmIChtX2lzUGFnZVRpbGVkQmFja2luZ0xh
eWVyKQorICAgICAgICAgICAgbV91bmNvbW1pdHRlZENoYW5nZXMgfD0gQ2hpbGRyZW5DaGFuZ2Vk
OworICAgICAgICAvLyBUaWxlZCBiYWNraW5nIHJlcGFpbnRzIGF1dG9tYXRpY2FsbHkgb24gc2Nh
bGUgY2hhbmdlLgorICAgICAgICByZXR1cm47CisgICAgfQogICAgIGlmIChkcmF3c0NvbnRlbnQo
KSkKICAgICAgICAgbV9sYXllci0+c2V0TmVlZHNEaXNwbGF5KCk7CiB9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvVGlsZUNvbnRyb2xsZXIuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvVGlsZUNvbnRy
b2xsZXIuaAkocmV2aXNpb24gMTY3MTQ1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2EvbWFjL1RpbGVDb250cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTYwLDcgKzYw
LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0TmVlZHNEaXNwbGF5SW5SZWN0KGNvbnN0IEludFJl
Y3QmKTsKIAogICAgIHZvaWQgc2V0Q29udGVudHNTY2FsZShmbG9hdCk7Ci0gICAgZmxvYXQgY29u
dGVudHNTY2FsZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGVudHNTY2FsZTsgfQorICAgIGZsb2F0
IGNvbnRlbnRzU2NhbGUoKSBjb25zdDsKIAogICAgIGJvb2wgYWNjZWxlcmF0ZXNEcmF3aW5nKCkg
Y29uc3QgeyByZXR1cm4gbV9hY2NlbGVyYXRlc0RyYXdpbmc7IH0KICAgICB2b2lkIHNldEFjY2Vs
ZXJhdGVzRHJhd2luZyhib29sKTsKQEAgLTE0OCw3ICsxNDgsNyBAQCBwcml2YXRlOgogICAgIHZp
cnR1YWwgdm9pZCBzZXRTY3JvbGxpbmdNb2RlSW5kaWNhdGlvbihTY3JvbGxpbmdNb2RlSW5kaWNh
dGlvbikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldFRpbGVNYXJnaW5zKGludCBtYXJn
aW5Ub3AsIGludCBtYXJnaW5Cb3R0b20sIGludCBtYXJnaW5MZWZ0LCBpbnQgbWFyZ2luUmlnaHQp
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZXRab29tZWRPdXRDb250ZW50c1NjYWxlKGZs
b2F0KSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIGZsb2F0IHpvb21lZE91dENvbnRlbnRzU2NhbGUo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3pvb21lZE91dENvbnRlbnRzU2NhbGU7IH0KKyAg
ICB2aXJ0dWFsIGZsb2F0IHpvb21lZE91dENvbnRlbnRzU2NhbGUoKSBjb25zdCBvdmVycmlkZTsK
IAogICAgIHZvaWQgc2NoZWR1bGVUaWxlUmV2YWxpZGF0aW9uKGRvdWJsZSBpbnRlcnZhbCk7CiAg
ICAgdm9pZCB0aWxlUmV2YWxpZGF0aW9uVGltZXJGaXJlZChUaW1lcjxUaWxlQ29udHJvbGxlcj4q
KTsKQEAgLTE2Miw2ICsxNjIsNyBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxUaWxl
Q292ZXJhZ2VNYXA+IG1fY292ZXJhZ2VNYXA7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VGlsZUdy
aWQ+IG1fdGlsZUdyaWQ7CisgICAgc3RkOjp1bmlxdWVfcHRyPFRpbGVHcmlkPiBtX3pvb21lZE91
dFRpbGVHcmlkOwogCiAgICAgSW50U2l6ZSBtX3RpbGVTaXplOwogICAgIEZsb2F0UmVjdCBtX3Zp
c2libGVSZWN0OwpAQCAtMTcwLDcgKzE3MSw2IEBAIHByaXZhdGU6CiAKICAgICBUaW1lcjxUaWxl
Q29udHJvbGxlcj4gbV90aWxlUmV2YWxpZGF0aW9uVGltZXI7CiAKLSAgICBmbG9hdCBtX2NvbnRl
bnRzU2NhbGU7CiAgICAgZmxvYXQgbV96b29tZWRPdXRDb250ZW50c1NjYWxlOwogICAgIGZsb2F0
IG1fZGV2aWNlU2NhbGVGYWN0b3I7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL21hYy9UaWxlQ29udHJvbGxlci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvVGlsZUNvbnRyb2xsZXIubW0JKHJldmlzaW9u
IDE2NzE0NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9UaWxl
Q29udHJvbGxlci5tbQkod29ya2luZyBjb3B5KQpAQCAtNDQsMTEgKzQ0LDYgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1lbnVtIFRpbGVWYWxpZGF0aW9uUG9saWN5RmxhZyB7Ci0gICAgUHJ1
bmVTZWNvbmRhcnlUaWxlcyA9IDEgPDwgMCwKLSAgICBVbnBhcmVudEFsbFRpbGVzID0gMSA8PCAx
Ci19OwotCiBQYXNzT3duUHRyPFRpbGVDb250cm9sbGVyPiBUaWxlQ29udHJvbGxlcjo6Y3JlYXRl
KFBsYXRmb3JtQ0FMYXllciogcm9vdFBsYXRmb3JtTGF5ZXIpCiB7CiAgICAgcmV0dXJuIGFkb3B0
UHRyKG5ldyBUaWxlQ29udHJvbGxlcihyb290UGxhdGZvcm1MYXllcikpOwpAQCAtNTksNyArNTQs
NiBAQCBUaWxlQ29udHJvbGxlcjo6VGlsZUNvbnRyb2xsZXIoUGxhdGZvcm1DCiAgICAgLCBtX3Rp
bGVHcmlkKHN0ZDo6bWFrZV91bmlxdWU8VGlsZUdyaWQ+KCp0aGlzKSkKICAgICAsIG1fdGlsZVNp
emUoZGVmYXVsdFRpbGVXaWR0aCwgZGVmYXVsdFRpbGVIZWlnaHQpCiAgICAgLCBtX3RpbGVSZXZh
bGlkYXRpb25UaW1lcih0aGlzLCAmVGlsZUNvbnRyb2xsZXI6OnRpbGVSZXZhbGlkYXRpb25UaW1l
ckZpcmVkKQotICAgICwgbV9jb250ZW50c1NjYWxlKDEpCiAgICAgLCBtX3pvb21lZE91dENvbnRl
bnRzU2NhbGUoMCkKICAgICAsIG1fZGV2aWNlU2NhbGVGYWN0b3IoMSkKICAgICAsIG1fdGlsZUNv
dmVyYWdlKENvdmVyYWdlRm9yVmlzaWJsZUFyZWEpCkBAIC05NiwyMSArOTAsMjEgQEAgdm9pZCBU
aWxlQ29udHJvbGxlcjo6dGlsZUNhY2hlTGF5ZXJCb3VuZAogdm9pZCBUaWxlQ29udHJvbGxlcjo6
c2V0TmVlZHNEaXNwbGF5KCkKIHsKICAgICB0aWxlR3JpZCgpLnNldE5lZWRzRGlzcGxheSgpOwor
ICAgIG1fem9vbWVkT3V0VGlsZUdyaWQgPSBudWxscHRyOwogfQogCiB2b2lkIFRpbGVDb250cm9s
bGVyOjpzZXROZWVkc0Rpc3BsYXlJblJlY3QoY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKICAgICB0
aWxlR3JpZCgpLnNldE5lZWRzRGlzcGxheUluUmVjdChyZWN0KTsKKyAgICBpZiAobV96b29tZWRP
dXRUaWxlR3JpZCkKKyAgICAgICAgbV96b29tZWRPdXRUaWxlR3JpZC0+ZHJvcFRpbGVzSW5SZWN0
KHJlY3QpOwogfQogCiB2b2lkIFRpbGVDb250cm9sbGVyOjpzZXRDb250ZW50c1NjYWxlKGZsb2F0
IHNjYWxlKQogewogICAgIEFTU0VSVChvd25pbmdHcmFwaGljc0xheWVyKCktPmlzQ29tbWl0dGlu
Z0NoYW5nZXMoKSk7CiAKLSAgICBtX2NvbnRlbnRzU2NhbGUgPSBzY2FsZTsKLQogICAgIGZsb2F0
IGRldmljZVNjYWxlRmFjdG9yID0gb3duaW5nR3JhcGhpY3NMYXllcigpLT5wbGF0Zm9ybUNBTGF5
ZXJEZXZpY2VTY2FsZUZhY3RvcigpOwotCiAgICAgLy8gVGhlIHNjYWxlIHdlIGdldCBpcyB0aGUg
cHJvZHVjdCBvZiB0aGUgcGFnZSBzY2FsZSBmYWN0b3IgYW5kIGRldmljZSBzY2FsZSBmYWN0b3Iu
CiAgICAgLy8gRGl2aWRlIGJ5IHRoZSBkZXZpY2Ugc2NhbGUgZmFjdG9yIHNvIHdlJ2xsIGdldCB0
aGUgcGFnZSBzY2FsZSBmYWN0b3IuCiAgICAgc2NhbGUgLz0gZGV2aWNlU2NhbGVGYWN0b3I7CkBA
IC0xMjEsMTYgKzExNSw0NCBAQCB2b2lkIFRpbGVDb250cm9sbGVyOjpzZXRDb250ZW50c1NjYWxl
KGZsCiAgICAgbV9oYXNUaWxlc1dpdGhUZW1wb3JhcnlTY2FsZUZhY3RvciA9IGZhbHNlOwogICAg
IG1fZGV2aWNlU2NhbGVGYWN0b3IgPSBkZXZpY2VTY2FsZUZhY3RvcjsKIAorICAgIGlmIChtX3pv
b21lZE91dFRpbGVHcmlkICYmIG1fem9vbWVkT3V0VGlsZUdyaWQtPnNjYWxlKCkgPT0gc2NhbGUp
IHsKKyAgICAgICAgbV90aWxlR3JpZCA9IHN0ZDo6bW92ZShtX3pvb21lZE91dFRpbGVHcmlkKTsK
KyAgICAgICAgbV90aWxlR3JpZC0+cmV2YWxpZGF0ZVRpbGVzKDApOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgaWYgKG1fem9vbWVkT3V0Q29udGVudHNTY2FsZSAmJiBtX3pvb21lZE91
dENvbnRlbnRzU2NhbGUgPT0gdGlsZUdyaWQoKS5zY2FsZSgpICYmIHRpbGVHcmlkKCkuc2NhbGUo
KSAhPSBzY2FsZSAmJiAhbV9oYXNUaWxlc1dpdGhUZW1wb3JhcnlTY2FsZUZhY3RvcikgeworICAg
ICAgICBtX3pvb21lZE91dFRpbGVHcmlkID0gc3RkOjptb3ZlKG1fdGlsZUdyaWQpOworICAgICAg
ICBtX3RpbGVHcmlkID0gc3RkOjptYWtlX3VuaXF1ZTxUaWxlR3JpZD4oKnRoaXMpOworICAgIH0K
KwogICAgIHRpbGVHcmlkKCkuc2V0U2NhbGUoc2NhbGUpOworICAgIHRpbGVHcmlkKCkuc2V0TmVl
ZHNEaXNwbGF5KCk7Cit9CisKK2Zsb2F0IFRpbGVDb250cm9sbGVyOjpjb250ZW50c1NjYWxlKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gdGlsZUdyaWQoKS5zY2FsZSgpICogbV9kZXZpY2VTY2FsZUZh
Y3RvcjsKK30KKworZmxvYXQgVGlsZUNvbnRyb2xsZXI6Onpvb21lZE91dENvbnRlbnRzU2NhbGUo
KSBjb25zdAoreworICAgIHJldHVybiBtX3pvb21lZE91dENvbnRlbnRzU2NhbGUgKiBtX2Rldmlj
ZVNjYWxlRmFjdG9yOwogfQogCiB2b2lkIFRpbGVDb250cm9sbGVyOjpzZXRab29tZWRPdXRDb250
ZW50c1NjYWxlKGZsb2F0IHNjYWxlKQogewogICAgIEFTU0VSVChvd25pbmdHcmFwaGljc0xheWVy
KCktPmlzQ29tbWl0dGluZ0NoYW5nZXMoKSk7CiAKKyAgICBmbG9hdCBkZXZpY2VTY2FsZUZhY3Rv
ciA9IG93bmluZ0dyYXBoaWNzTGF5ZXIoKS0+cGxhdGZvcm1DQUxheWVyRGV2aWNlU2NhbGVGYWN0
b3IoKTsKKyAgICBzY2FsZSAvPSBkZXZpY2VTY2FsZUZhY3RvcjsKKwogICAgIGlmIChtX3pvb21l
ZE91dENvbnRlbnRzU2NhbGUgPT0gc2NhbGUpCiAgICAgICAgIHJldHVybjsKICAgICBtX3pvb21l
ZE91dENvbnRlbnRzU2NhbGUgPSBzY2FsZTsKKworICAgIGlmIChtX3pvb21lZE91dFRpbGVHcmlk
ICYmIG1fem9vbWVkT3V0VGlsZUdyaWQtPnNjYWxlKCkgIT0gbV96b29tZWRPdXRDb250ZW50c1Nj
YWxlKQorICAgICAgICBtX3pvb21lZE91dFRpbGVHcmlkID0gbnVsbHB0cjsKIH0KIAogdm9pZCBU
aWxlQ29udHJvbGxlcjo6c2V0QWNjZWxlcmF0ZXNEcmF3aW5nKGJvb2wgYWNjZWxlcmF0ZXNEcmF3
aW5nKQpAQCAtMzIyLDggKzM0NCwxMCBAQCB2b2lkIFRpbGVDb250cm9sbGVyOjp0aWxlUmV2YWxp
ZGF0aW9uVGltCiAgICAgICAgIHNldE5lZWRzUmV2YWxpZGF0ZVRpbGVzKCk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CisgICAgLy8gSWYgd2UgYXJlIG5vdCB2aXNpYmxlIGdldCByaWQgb2YgdGhl
IHpvb21lZC1vdXQgdGlsZXMuCisgICAgbV96b29tZWRPdXRUaWxlR3JpZCA9IG51bGxwdHI7CiAK
LSAgICBUaWxlR3JpZDo6VGlsZVZhbGlkYXRpb25Qb2xpY3lGbGFncyB2YWxpZGF0aW9uUG9saWN5
ID0gKHNob3VsZEFnZ3Jlc3NpdmVseVJldGFpblRpbGVzKCkgPyAwIDogUHJ1bmVTZWNvbmRhcnlU
aWxlcykgfCBVbnBhcmVudEFsbFRpbGVzOworICAgIHVuc2lnbmVkIHZhbGlkYXRpb25Qb2xpY3kg
PSAoc2hvdWxkQWdncmVzc2l2ZWx5UmV0YWluVGlsZXMoKSA/IDAgOiBUaWxlR3JpZDo6UHJ1bmVT
ZWNvbmRhcnlUaWxlcykgfCBUaWxlR3JpZDo6VW5wYXJlbnRBbGxUaWxlczsKIAogICAgIHRpbGVH
cmlkKCkucmV2YWxpZGF0ZVRpbGVzKHZhbGlkYXRpb25Qb2xpY3kpOwogfQpAQCAtMzc5LDcgKzQw
MywxMCBAQCBJbnRSZWN0IFRpbGVDb250cm9sbGVyOjp0aWxlR3JpZEV4dGVudCgpCiAKIGRvdWJs
ZSBUaWxlQ29udHJvbGxlcjo6cmV0YWluZWRUaWxlQmFja2luZ1N0b3JlTWVtb3J5KCkgY29uc3QK
IHsKLSAgICByZXR1cm4gdGlsZUdyaWQoKS5yZXRhaW5lZFRpbGVCYWNraW5nU3RvcmVNZW1vcnko
KTsKKyAgICBkb3VibGUgYnl0ZXMgPSB0aWxlR3JpZCgpLnJldGFpbmVkVGlsZUJhY2tpbmdTdG9y
ZU1lbW9yeSgpOworICAgIGlmIChtX3pvb21lZE91dFRpbGVHcmlkKQorICAgICAgICBieXRlcyAr
PSBtX3pvb21lZE91dFRpbGVHcmlkLT5yZXRhaW5lZFRpbGVCYWNraW5nU3RvcmVNZW1vcnkoKTsK
KyAgICByZXR1cm4gYnl0ZXM7CiB9CiAKIC8vIFJldHVybiB0aGUgcmVjdCBpbiBsYXllciBjb29y
ZHMsIG5vdCB0aWxlIGNvb3Jkcy4KQEAgLTQ3OCwyMCArNTA1LDI3IEBAIFJlZlB0cjxQbGF0Zm9y
bUNBTGF5ZXI+IFRpbGVDb250cm9sbGVyOjoKIAogVmVjdG9yPFJlZlB0cjxQbGF0Zm9ybUNBTGF5
ZXI+PiBUaWxlQ29udHJvbGxlcjo6Y29udGFpbmVyTGF5ZXJzKCkKIHsKLSAgICBWZWN0b3I8UmVm
UHRyPFBsYXRmb3JtQ0FMYXllcj4+IGxheWVyTGlzdCgxKTsKLSAgICBsYXllckxpc3RbMF0gPSAm
dGlsZUdyaWQoKS5jb250YWluZXJMYXllcigpOworICAgIFZlY3RvcjxSZWZQdHI8UGxhdGZvcm1D
QUxheWVyPj4gbGF5ZXJMaXN0OworICAgIGlmIChtX3pvb21lZE91dFRpbGVHcmlkKQorICAgICAg
ICBsYXllckxpc3QuYXBwZW5kKCZtX3pvb21lZE91dFRpbGVHcmlkLT5jb250YWluZXJMYXllcigp
KTsKKyAgICBsYXllckxpc3QuYXBwZW5kKCZ0aWxlR3JpZCgpLmNvbnRhaW5lckxheWVyKCkpOwog
ICAgIHJldHVybiBsYXllckxpc3Q7CiB9Ci0gICAgCisKICNpZiBQTEFURk9STShJT1MpCiB1bnNp
Z25lZCBUaWxlQ29udHJvbGxlcjo6bnVtYmVyT2ZVbnBhcmVudGVkVGlsZXMoKSBjb25zdAogewot
ICAgIHJldHVybiB0aWxlR3JpZCgpLm51bWJlck9mVW5wYXJlbnRlZFRpbGVzKCk7CisgICAgdW5z
aWduZWQgY291bnQgPSB0aWxlR3JpZCgpLm51bWJlck9mVW5wYXJlbnRlZFRpbGVzKCk7CisgICAg
aWYgKG1fem9vbWVkT3V0VGlsZUdyaWQpCisgICAgICAgIGNvdW50ICs9ICBtX3pvb21lZE91dFRp
bGVHcmlkLT5udW1iZXJPZlVucGFyZW50ZWRUaWxlcygpOworICAgIHJldHVybiBjb3VudDsKIH0K
IAogdm9pZCBUaWxlQ29udHJvbGxlcjo6cmVtb3ZlVW5wYXJlbnRlZFRpbGVzTm93KCkKIHsKICAg
ICB0aWxlR3JpZCgpLnJlbW92ZVVucGFyZW50ZWRUaWxlc05vdygpOworICAgIGlmIChtX3pvb21l
ZE91dFRpbGVHcmlkKQorICAgICAgICBtX3pvb21lZE91dFRpbGVHcmlkLT5yZW1vdmVVbnBhcmVu
dGVkVGlsZXNOb3coKTsKIAogICAgIHVwZGF0ZVRpbGVDb3ZlcmFnZU1hcCgpOwogfQpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1RpbGVHcmlkLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1RpbGVHcmlk
LmgJKHJldmlzaW9uIDE2NzE0NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhL21hYy9UaWxlR3JpZC5oCSh3b3JraW5nIGNvcHkpCkBAIC01NCwxMyArNTQsMTcgQEAgcHVi
bGljOgogCiAgICAgdm9pZCBzZXROZWVkc0Rpc3BsYXkoKTsKICAgICB2b2lkIHNldE5lZWRzRGlz
cGxheUluUmVjdChjb25zdCBJbnRSZWN0Jik7CisgICAgdm9pZCBkcm9wVGlsZXNJblJlY3QoY29u
c3QgSW50UmVjdCYpOwogCiAgICAgdm9pZCB1cGRhdGVUaWxlckxheWVyUHJvcGVydGllcygpOwog
CiAgICAgYm9vbCBwcmVwb3B1bGF0ZVJlY3QoY29uc3QgRmxvYXRSZWN0Jik7CiAKLSAgICB0eXBl
ZGVmIHVuc2lnbmVkIFRpbGVWYWxpZGF0aW9uUG9saWN5RmxhZ3M7Ci0gICAgdm9pZCByZXZhbGlk
YXRlVGlsZXMoVGlsZVZhbGlkYXRpb25Qb2xpY3lGbGFncyk7CisgICAgZW51bSBUaWxlVmFsaWRh
dGlvblBvbGljeUZsYWcgeworICAgICAgICBQcnVuZVNlY29uZGFyeVRpbGVzID0gMSA8PCAwLAor
ICAgICAgICBVbnBhcmVudEFsbFRpbGVzID0gMSA8PCAxCisgICAgfTsKKyAgICB2b2lkIHJldmFs
aWRhdGVUaWxlcyh1bnNpZ25lZCB2YWxpZGF0aW9uUG9saWN5RmxhZ3MpOwogICAgIGJvb2wgdGls
ZXNXb3VsZENoYW5nZUZvclZpc2libGVSZWN0KGNvbnN0IEZsb2F0UmVjdCYgbmV3VmlzaWJsZVJl
Y3QsIGNvbnN0IEZsb2F0UmVjdCYgb2xkVmlzaWJsZVJlY3QpIGNvbnN0OwogCiAgICAgSW50UmVj
dCB0aWxlQ292ZXJhZ2VSZWN0KCkgY29uc3Q7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS9tYWMvVGlsZUdyaWQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1RpbGVHcmlkLm1tCShyZXZpc2lvbiAxNjcxNDUp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvVGlsZUdyaWQubW0J
KHdvcmtpbmcgY29weSkKQEAgLTM5LDExICszOSw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotZW51bSBUaWxlVmFsaWRhdGlvblBvbGljeUZsYWcgewotICAgIFBydW5lU2Vjb25kYXJ5VGls
ZXMgPSAxIDw8IDAsCi0gICAgVW5wYXJlbnRBbGxUaWxlcyA9IDEgPDwgMQotfTsKLQogVGlsZUdy
aWQ6OlRpbGVHcmlkKFRpbGVDb250cm9sbGVyJiBjb250cm9sbGVyKQogICAgIDogbV9jb250cm9s
bGVyKGNvbnRyb2xsZXIpCiAgICAgLCBtX2NvbnRhaW5lckxheWVyKCpjb250cm9sbGVyLnJvb3RM
YXllcigpLmNyZWF0ZUNvbXBhdGlibGVMYXllcihQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZUxh
eWVyLCBudWxscHRyKSkKQEAgLTEyNCw2ICsxMTksMjUgQEAgdm9pZCBUaWxlR3JpZDo6c2V0TmVl
ZHNEaXNwbGF5SW5SZWN0KGNvbgogICAgICAgICBzZXRUaWxlTmVlZHNEaXNwbGF5SW5SZWN0KGl0
LT5rZXksIGl0LT52YWx1ZSwgcmVwYWludFJlY3RJblRpbGVDb29yZHMsIG1fcHJpbWFyeVRpbGVD
b3ZlcmFnZVJlY3QpOwogfQogCit2b2lkIFRpbGVHcmlkOjpkcm9wVGlsZXNJblJlY3QoY29uc3Qg
SW50UmVjdCYgcmVjdCkKK3sKKyAgICBpZiAobV90aWxlcy5pc0VtcHR5KCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIEZsb2F0UmVjdCBzY2FsZWRSZWN0KHJlY3QpOworICAgIHNjYWxlZFJlY3Qu
c2NhbGUobV9zY2FsZSk7CisgICAgSW50UmVjdCBkcm9wUmVjdEluVGlsZUNvb3JkcyhlbmNsb3Np
bmdJbnRSZWN0KHNjYWxlZFJlY3QpKTsKKworICAgIFZlY3RvcjxUaWxlSW5kZXg+IHRpbGVzVG9S
ZW1vdmU7CisKKyAgICBmb3IgKGF1dG8mIGluZGV4IDogbV90aWxlcy5rZXlzKCkpIHsKKyAgICAg
ICAgaWYgKHJlY3RGb3JUaWxlSW5kZXgoaW5kZXgpLmludGVyc2VjdHMoZHJvcFJlY3RJblRpbGVD
b29yZHMpKQorICAgICAgICAgICAgdGlsZXNUb1JlbW92ZS5hcHBlbmQoaW5kZXgpOworICAgIH0K
KworICAgIHJlbW92ZVRpbGVzKHRpbGVzVG9SZW1vdmUpOworfQorCiB2b2lkIFRpbGVHcmlkOjpz
ZXRUaWxlTmVlZHNEaXNwbGF5SW5SZWN0KGNvbnN0IFRpbGVJbmRleCYgdGlsZUluZGV4LCBUaWxl
SW5mbyYgdGlsZUluZm8sIGNvbnN0IEludFJlY3QmIHJlcGFpbnRSZWN0SW5UaWxlQ29vcmRzLCBj
b25zdCBJbnRSZWN0JiBjb3ZlcmFnZVJlY3RJblRpbGVDb29yZHMpCiB7CiAgICAgUGxhdGZvcm1D
QUxheWVyKiB0aWxlTGF5ZXIgPSB0aWxlSW5mby5sYXllci5nZXQoKTsKQEAgLTMyMyw3ICszMzcs
NyBAQCB2b2lkIFRpbGVHcmlkOjpyZW1vdmVUaWxlc0luQ29ob3J0KFRpbGVDCiAgICAgcmVtb3Zl
VGlsZXModGlsZXNUb1JlbW92ZSk7CiB9CiAKLXZvaWQgVGlsZUdyaWQ6OnJldmFsaWRhdGVUaWxl
cyhUaWxlVmFsaWRhdGlvblBvbGljeUZsYWdzIHZhbGlkYXRpb25Qb2xpY3kpCit2b2lkIFRpbGVH
cmlkOjpyZXZhbGlkYXRlVGlsZXModW5zaWduZWQgdmFsaWRhdGlvblBvbGljeSkKIHsKICAgICBG
bG9hdFJlY3QgdmlzaWJsZVJlY3QgPSBtX2NvbnRyb2xsZXIudmlzaWJsZVJlY3QoKTsKICAgICBJ
bnRSZWN0IGJvdW5kcyA9IG1fY29udHJvbGxlci5ib3VuZHMoKTsKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDE2NzE5MSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDE4IEBACisyMDE0LTA0LTEyICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFw
cGxlLmNvbT4KKworICAgICAgICBLZWVwIHNlY29uZGFyeSB0aWxlIGdyaWQgZm9yIHpvb21lZC1v
dXQgc2NhbGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEzMTU4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tp
bmcuY3BwOgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tp
bmc6OlBsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6
OlBsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZzo6Y3VzdG9tU3VibGF5ZXJzKToKKyAg
ICAgICAgCisgICAgICAgICAgICBBbHdheXMgcmVxdWVzdCBuZXcgc3VibGF5ZXIgbGlzdCBmcm9t
IHRpbGUgY29udHJvbGxlci4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxh
dGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nLmg6CisKIDIwMTQtMDQtMTIgIEFuZHkgRXN0
ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIE1vdmUgUXVpY2tMb29rSGFu
ZGxlIGZyb20gUmVzb3VyY2VMb2FkZXIgdG8gV2ViUmVzb3VyY2VMb2FkZXIKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlVGls
ZWRCYWNraW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZy5jcHAJKHJldmlzaW9u
IDE2NzE0NSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZv
cm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDAsNyAr
NDAsNiBAQCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmc6OlBsYXRmCiAgICAgOiBQ
bGF0Zm9ybUNBTGF5ZXJSZW1vdGUobGF5ZXJUeXBlLCBvd25lciwgY29udGV4dCkKIHsKICAgICBt
X3RpbGVDb250cm9sbGVyID0gVGlsZUNvbnRyb2xsZXI6OmNyZWF0ZSh0aGlzKTsKLSAgICBtX2N1
c3RvbVN1YmxheWVycyA9IHN0ZDo6bWFrZV91bmlxdWU8UGxhdGZvcm1DQUxheWVyTGlzdD4obV90
aWxlQ29udHJvbGxlci0+Y29udGFpbmVyTGF5ZXJzKCkpOwogfQogCiBQbGF0Zm9ybUNBTGF5ZXJS
ZW1vdGVUaWxlZEJhY2tpbmc6On5QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcoKQpA
QCAtNTcsNyArNTYsOCBAQCB2b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZzo6
CiAKIGNvbnN0IFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllckxpc3QqIFBsYXRmb3JtQ0FMYXllclJl
bW90ZVRpbGVkQmFja2luZzo6Y3VzdG9tU3VibGF5ZXJzKCkgY29uc3QKIHsKLSAgICByZXR1cm4g
bV9jdXN0b21TdWJsYXllcnMuZ2V0KCk7CisgICAgbV9jdXN0b21TdWJsYXllcnMgPSBtX3RpbGVD
b250cm9sbGVyLT5jb250YWluZXJMYXllcnMoKTsKKyAgICByZXR1cm4gJm1fY3VzdG9tU3VibGF5
ZXJzOwogfQogCiB2b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZzo6c2V0Qm91
bmRzKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgYm91bmRzKQpJbmRleDogU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tp
bmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L1BsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZy5oCShyZXZpc2lvbiAxNjcxNDUpCisr
KyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJl
bW90ZVRpbGVkQmFja2luZy5oCSh3b3JraW5nIGNvcHkpCkBAIC01NCw3ICs1NCw3IEBAIHByaXZh
dGU6CiAgICAgdmlydHVhbCB2b2lkIHNldEJvcmRlckNvbG9yKGNvbnN0IFdlYkNvcmU6OkNvbG9y
Jikgb3ZlcnJpZGU7CiAKICAgICBPd25QdHI8V2ViQ29yZTo6VGlsZUNvbnRyb2xsZXI+IG1fdGls
ZUNvbnRyb2xsZXI7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXll
ckxpc3Q+IG1fY3VzdG9tU3VibGF5ZXJzOworICAgIG11dGFibGUgV2ViQ29yZTo6UGxhdGZvcm1D
QUxheWVyTGlzdCBtX2N1c3RvbVN1YmxheWVyczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dAo=
</data>
<flag name="review"
          id="253586"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>