<?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>109609</bug_id>
          
          <creation_ts>2013-02-12 13:35:03 -0800</creation_ts>
          <short_desc>SVG Image page scale should not be looked up in imageForRenderer or lookupOrCreateImageForContainer</short_desc>
          <delta_ts>2013-02-20 17:22:16 -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>SVG</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>110047</dependson>
    
    <dependson>110295</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Philip Rogers">pdr</reporter>
          <assigned_to name="Philip Rogers">pdr</assigned_to>
          <cc>d-r</cc>
    
    <cc>fmalita</cc>
    
    <cc>japhet</cc>
    
    <cc>schenney</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>831204</commentid>
    <comment_count>0</comment_count>
    <who name="Philip Rogers">pdr</who>
    <bug_when>2013-02-12 13:35:03 -0800</bug_when>
    <thetext>We currently dynamically compute the SVG image page scale before drawing. This should be refactored so it is only computed once, and when the page scale changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833702</commentid>
    <comment_count>1</comment_count>
      <attachid>188481</attachid>
    <who name="Philip Rogers">pdr</who>
    <bug_when>2013-02-14 22:37:16 -0800</bug_when>
    <thetext>Created attachment 188481
Refactor SVG image cache to actually store page scale</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834663</commentid>
    <comment_count>2</comment_count>
      <attachid>188481</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2013-02-16 00:08:08 -0800</bug_when>
    <thetext>Comment on attachment 188481
Refactor SVG image cache to actually store page scale

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

&gt; Source/WebCore/ChangeLog:37
&gt; +        * loader/cache/CachedImage.cpp:
&gt; +        (WebCore::CachedImage::switchClientsToRevalidatedResource):
&gt; +        (WebCore):
&gt; +        (WebCore::CachedImage::imageForRenderer):
&gt; +        (WebCore::CachedImage::setContainerSizeForRenderer):
&gt; +        (WebCore::CachedImage::createImage):
&gt; +        * loader/cache/CachedImage.h:
&gt; +        (CachedImage):
&gt; +        (WebCore::CachedImage::ContainerSizeRequest::ContainerSizeRequest):
&gt; +        (ContainerSizeRequest):
&gt; +        * svg/graphics/SVGImageCache.cpp:
&gt; +        (WebCore::SVGImageCache::setContainerSizeForRenderer):
&gt; +        (WebCore::SVGImageCache::imageForRenderer):
&gt; +        * svg/graphics/SVGImageCache.h:
&gt; +        (SVGImageCache):
&gt; +        * svg/graphics/SVGImageForContainer.h:
&gt; +        (WebCore::SVGImageForContainer::containerSize):
&gt; +        (SVGImageForContainer):
&gt; +        (WebCore::SVGImageForContainer::SVGImageForContainer):

This needs inline comments.

&gt; Source/WebCore/loader/cache/CachedImage.cpp:-160
&gt; -#if ENABLE(SVG)

wah, that looked indeed bad.

&gt; Source/WebCore/loader/cache/CachedImage.h:115
&gt; +        ContainerSizeRequest(const RenderObject* newRenderer, IntSize newSize, float newZoom)
&gt; +            : renderer(newRenderer), size(newSize), zoom(newZoom) { };

This is not formatted probably. Can you do it in new lines please?

&gt; Source/WebCore/loader/cache/CachedImage.h:116
&gt; +

omit the new line here after that.

&gt; Source/WebCore/svg/graphics/SVGImageCache.cpp:62
&gt; +    // FIXME: Are both of these scale factors required on all platforms?
&gt; +    float scale = page-&gt;deviceScaleFactor() * page-&gt;pageScaleFactor();

Can you figure this out first? I don&apos;t want to r+ this if we are unsure.

&gt; Source/WebCore/svg/graphics/SVGImageCache.cpp:65
&gt; +    sizeWithoutZoom.scale(1 / containerZoom);

containerZoom can not be 0? Can you assert this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835101</commentid>
    <comment_count>3</comment_count>
    <who name="Philip Rogers">pdr</who>
    <bug_when>2013-02-17 20:40:08 -0800</bug_when>
    <thetext>Thank you for the review Dirk.

In writing up a reply I found why Timothy added the two scale factors in the first place: it was to support dynamic changes (r120953). Unfortunately, it looks like SVG as CSS patterns has regressed completely (WK110047) so I couldn&apos;t write a test for whether we regress Timothy&apos;s dynamic usecase.

I&apos;m marking this as depending on WK110047 for now. We may have to drop this approach in the end.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837187</commentid>
    <comment_count>4</comment_count>
    <who name="Philip Rogers">pdr</who>
    <bug_when>2013-02-19 22:46:37 -0800</bug_when>
    <thetext>The patch in https://bugs.webkit.org/show_bug.cgi?id=110295 solves this issue as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837978</commentid>
    <comment_count>5</comment_count>
    <who name="Philip Rogers">pdr</who>
    <bug_when>2013-02-20 17:22:16 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; The patch in https://bugs.webkit.org/show_bug.cgi?id=110295 solves this issue as well.

Houston, we&apos;ve landed. Closing this bug too.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188481</attachid>
            <date>2013-02-14 22:37:16 -0800</date>
            <delta_ts>2013-02-16 00:08:08 -0800</delta_ts>
            <desc>Refactor SVG image cache to actually store page scale</desc>
            <filename>109609.1.patch</filename>
            <type>text/plain</type>
            <size>12298</size>
            <attacher name="Philip Rogers">pdr</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0Mjk2MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQxIEBACisyMDEzLTAyLTE0ICBQaGlsaXAg
Um9nZXJzICA8cGRyQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmVmYWN0b3IgU1ZHIGltYWdlIGNh
Y2hlIHRvIHN0b3JlIHBhZ2Ugc2NhbGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwOTYwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFByZXZpb3VzbHkgdGhlIFNWRyBpbWFnZSBjYWNoZSBkaWQgbm90IGNh
Y2hlIHRoZSBwYWdlIHNjYWxlIGFuZCBpbnN0ZWFkIHF1ZXJpZWQgZm9yIGl0CisgICAgICAgIGlu
IGxvb2t1cE9yQ3JlYXRlSW1hZ2VGb3JSZW5kZXJlci4gVGhpcyBwYXRjaCByZWZhY3RvcnMgdGhp
cyBzbyB0aGUgcGFnZSBzY2FsZSBpcyBzdG9yZWQKKyAgICAgICAgb25jZS4gQXMgYSByZXN1bHQg
b2YgdGhpcyByZWZhY3RvcmluZywgU1ZHSW1hZ2VGb3JDb250YWluZXIgbm8gbG9uZ2VyIG5lZWRz
IHNldHRlcnMKKyAgICAgICAgYW5kIFNWR0ltYWdlQ2FjaGUgaXMgc2ltcGxpZmllZC4KKworICAg
ICAgICBUaGlzIGFwcHJvYWNoIGZvciBjYWNoaW5nIHRoZSBwYWdlIHNjYWxlIGlzIHNhZmUgYmVj
YXVzZSBhIGNoYW5nZSBpbiBwYWdlIHNjYWxlIHdpbGwKKyAgICAgICAgcmVzZXQgdGhlIGNvbnRh
aW5lciBzaXplLiBUaGUgcGFnZSBzY2FsZSBuZWVkcyB0byBiZSBjYWNoZWQgYmVjYXVzZSBpdCBp
cyB1c2VkIGluCisgICAgICAgIFNWR0ltYWdlOjpkcmF3UGF0dGVybkZvckNvbnRhaW5lcigpIGZv
ciBjcmVhdGluZyBhbiBpbWFnZSBidWZmZXIgb2YgYXBwcm9wcmlhdGUgc2l6ZS4KKworICAgICAg
ICBObyBuZXcgdGVzdHMgYXMgdGhpcyBpcyBqdXN0IGEgcmVmYWN0b3JpbmcuCisKKyAgICAgICAg
KiBsb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVk
SW1hZ2U6OnN3aXRjaENsaWVudHNUb1JldmFsaWRhdGVkUmVzb3VyY2UpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRJbWFnZTo6aW1hZ2VGb3JSZW5kZXJlcik6
CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRJbWFnZTo6c2V0Q29udGFpbmVyU2l6ZUZvclJlbmRl
cmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZEltYWdlOjpjcmVhdGVJbWFnZSk6CisgICAg
ICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmg6CisgICAgICAgIChDYWNoZWRJbWFnZSk6
CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRJbWFnZTo6Q29udGFpbmVyU2l6ZVJlcXVlc3Q6OkNv
bnRhaW5lclNpemVSZXF1ZXN0KToKKyAgICAgICAgKENvbnRhaW5lclNpemVSZXF1ZXN0KToKKyAg
ICAgICAgKiBzdmcvZ3JhcGhpY3MvU1ZHSW1hZ2VDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdJbWFnZUNhY2hlOjpzZXRDb250YWluZXJTaXplRm9yUmVuZGVyZXIpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHSW1hZ2VDYWNoZTo6aW1hZ2VGb3JSZW5kZXJlcik6CisgICAgICAgICogc3Zn
L2dyYXBoaWNzL1NWR0ltYWdlQ2FjaGUuaDoKKyAgICAgICAgKFNWR0ltYWdlQ2FjaGUpOgorICAg
ICAgICAqIHN2Zy9ncmFwaGljcy9TVkdJbWFnZUZvckNvbnRhaW5lci5oOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHSW1hZ2VGb3JDb250YWluZXI6OmNvbnRhaW5lclNpemUpOgorICAgICAgICAoU1ZH
SW1hZ2VGb3JDb250YWluZXIpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW1hZ2VGb3JDb250YWlu
ZXI6OlNWR0ltYWdlRm9yQ29udGFpbmVyKToKKwogMjAxMy0wMi0xNCAgQXJwaXRhIEJhaHVndW5h
ICA8YXJwaXRhYmFodWd1bmFAZ21haWwuY29tPgogCiAgICAgICAgIENhcmV0IHBvc2l0aW9uZWQg
YXQgdGhlIGVuZCBvZiBhIHRleHQgbGluZSAoZm9sbG93ZWQgYnkgYW4gZW1wdHkgYmxvY2spIGlu
IHZlcnRpY2FsIHdyaXRpbmcgbW9kZSBkaXNhcHBlYXJzIHdoZW4gcHJlc3NpbmcgdGhlIHJpZ2h0
L2Rvd24gYXJyb3cga2V5LgpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZEltYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkSW1hZ2UuY3BwCShyZXZpc2lvbiAxNDI5NTEpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjcsNyArMTI3LDcgQEAg
dm9pZCBDYWNoZWRJbWFnZTo6c3dpdGNoQ2xpZW50c1RvUmV2YWxpZAogICAgICAgICBDYWNoZWRS
ZXNvdXJjZTo6c3dpdGNoQ2xpZW50c1RvUmV2YWxpZGF0ZWRSZXNvdXJjZSgpOwogICAgICAgICBD
YWNoZWRJbWFnZSogcmV2YWxpZGF0ZWRDYWNoZWRJbWFnZSA9IHN0YXRpY19jYXN0PENhY2hlZElt
YWdlKj4ocmVzb3VyY2VUb1JldmFsaWRhdGUoKSk7CiAgICAgICAgIGZvciAoQ29udGFpbmVyU2l6
ZVJlcXVlc3RzOjppdGVyYXRvciBpdCA9IHN3aXRjaENvbnRhaW5lclNpemVSZXF1ZXN0cy5iZWdp
bigpOyBpdCAhPSBzd2l0Y2hDb250YWluZXJTaXplUmVxdWVzdHMuZW5kKCk7ICsraXQpCi0gICAg
ICAgICAgICByZXZhbGlkYXRlZENhY2hlZEltYWdlLT5zZXRDb250YWluZXJTaXplRm9yUmVuZGVy
ZXIoaXQtPmtleSwgaXQtPnZhbHVlLmZpcnN0LCBpdC0+dmFsdWUuc2Vjb25kKTsKKyAgICAgICAg
ICAgIHJldmFsaWRhdGVkQ2FjaGVkSW1hZ2UtPnNldENvbnRhaW5lclNpemVGb3JSZW5kZXJlcihp
dC0+dmFsdWUucmVuZGVyZXIsIGl0LT52YWx1ZS5zaXplLCBpdC0+dmFsdWUuem9vbSk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKQEAgLTE1NywyNSArMTU3LDYgQEAgYm9vbCBDYWNoZWRJbWFn
ZTo6d2lsbFBhaW50QnJva2VuSW1hZ2UoKQogICAgIHJldHVybiBlcnJvck9jY3VycmVkKCkgJiYg
bV9zaG91bGRQYWludEJyb2tlbkltYWdlOwogfQogCi0jaWYgRU5BQkxFKFNWRykKLWlubGluZSBJ
bWFnZSogQ2FjaGVkSW1hZ2U6Omxvb2t1cE9yQ3JlYXRlSW1hZ2VGb3JSZW5kZXJlcihjb25zdCBS
ZW5kZXJPYmplY3QqIHJlbmRlcmVyKQotewotICAgIGlmICghbV9pbWFnZSkKLSAgICAgICAgcmV0
dXJuIDA7Ci0gICAgaWYgKCFtX2ltYWdlLT5pc1NWR0ltYWdlKCkpCi0gICAgICAgIHJldHVybiBt
X2ltYWdlLmdldCgpOwotICAgIEltYWdlKiB1c2VJbWFnZSA9IG1fc3ZnSW1hZ2VDYWNoZS0+aW1h
Z2VGb3JSZW5kZXJlcihyZW5kZXJlcik7Ci0gICAgaWYgKHVzZUltYWdlID09IEltYWdlOjpudWxs
SW1hZ2UoKSkKLSAgICAgICAgcmV0dXJuIG1faW1hZ2UuZ2V0KCk7Ci0gICAgcmV0dXJuIHVzZUlt
YWdlOwotfQotI2Vsc2UKLWlubGluZSBJbWFnZSogQ2FjaGVkSW1hZ2U6Omxvb2t1cE9yQ3JlYXRl
SW1hZ2VGb3JSZW5kZXJlcihjb25zdCBSZW5kZXJPYmplY3QqKQotewotICAgIHJldHVybiBtX2lt
YWdlLmdldCgpOwotfQotI2VuZGlmCi0KIEltYWdlKiBDYWNoZWRJbWFnZTo6aW1hZ2UoKQogewog
ICAgIEFTU0VSVCghaXNQdXJnZWFibGUoKSk7CkBAIC0yMDQsMzMgKzE4NSw0MiBAQCBJbWFnZSog
Q2FjaGVkSW1hZ2U6OmltYWdlRm9yUmVuZGVyZXIoY29uCiAgICAgICAgIHJldHVybiBicm9rZW5J
bWFnZSgxKS5maXJzdDsKICAgICB9CiAKLSAgICBpZiAobV9pbWFnZSkKLSAgICAgICAgcmV0dXJu
IGxvb2t1cE9yQ3JlYXRlSW1hZ2VGb3JSZW5kZXJlcihyZW5kZXJlcik7CisgICAgaWYgKG1faW1h
Z2UpIHsKKyNpZiBFTkFCTEUoU1ZHKQorICAgICAgICBpZiAobV9pbWFnZS0+aXNTVkdJbWFnZSgp
KSB7CisgICAgICAgICAgICBJbWFnZSogaW1hZ2UgPSBtX3N2Z0ltYWdlQ2FjaGUtPmltYWdlRm9y
UmVuZGVyZXIocmVuZGVyZXIpOworICAgICAgICAgICAgaWYgKGltYWdlICE9IEltYWdlOjpudWxs
SW1hZ2UoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gaW1hZ2U7CisgICAgICAgIH0KKyNlbHNl
CisgICAgICAgIFVOVVNFRF9QQVJBTShyZW5kZXJlcik7CisjZW5kaWYKKyAgICAgICAgcmV0dXJu
IG1faW1hZ2UuZ2V0KCk7CisgICAgfQogCiAgICAgcmV0dXJuIEltYWdlOjpudWxsSW1hZ2UoKTsK
IH0KIAotdm9pZCBDYWNoZWRJbWFnZTo6c2V0Q29udGFpbmVyU2l6ZUZvclJlbmRlcmVyKGNvbnN0
IENhY2hlZEltYWdlQ2xpZW50KiByZW5kZXJlciwgY29uc3QgSW50U2l6ZSYgY29udGFpbmVyU2l6
ZSwgZmxvYXQgY29udGFpbmVyWm9vbSkKK3ZvaWQgQ2FjaGVkSW1hZ2U6OnNldENvbnRhaW5lclNp
emVGb3JSZW5kZXJlcihjb25zdCBSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBjb25zdCBJbnRTaXpl
JiBjb250YWluZXJTaXplLCBmbG9hdCBjb250YWluZXJab29tKQogewogICAgIGlmIChjb250YWlu
ZXJTaXplLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogICAgIEFTU0VSVChyZW5kZXJlcik7
CiAgICAgQVNTRVJUKGNvbnRhaW5lclpvb20pOwogICAgIGlmICghbV9pbWFnZSkgewotICAgICAg
ICBtX3BlbmRpbmdDb250YWluZXJTaXplUmVxdWVzdHMuc2V0KHJlbmRlcmVyLCBTaXplQW5kWm9v
bShjb250YWluZXJTaXplLCBjb250YWluZXJab29tKSk7CisgICAgICAgIG1fcGVuZGluZ0NvbnRh
aW5lclNpemVSZXF1ZXN0cy5zZXQocmVuZGVyZXIsIENvbnRhaW5lclNpemVSZXF1ZXN0KHJlbmRl
cmVyLCBjb250YWluZXJTaXplLCBjb250YWluZXJab29tKSk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CisKICNpZiBFTkFCTEUoU1ZHKQotICAgIGlmICghbV9pbWFnZS0+aXNTVkdJbWFnZSgpKSB7
Ci0gICAgICAgIG1faW1hZ2UtPnNldENvbnRhaW5lclNpemUoY29udGFpbmVyU2l6ZSk7CisgICAg
aWYgKG1faW1hZ2UtPmlzU1ZHSW1hZ2UoKSkgeworICAgICAgICBtX3N2Z0ltYWdlQ2FjaGUtPnNl
dENvbnRhaW5lclNpemVGb3JSZW5kZXJlcihyZW5kZXJlciwgY29udGFpbmVyU2l6ZSwgY29udGFp
bmVyWm9vbSk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0KLSAgICBtX3N2Z0ltYWdlQ2FjaGUt
PnNldENvbnRhaW5lclNpemVGb3JSZW5kZXJlcihyZW5kZXJlciwgY29udGFpbmVyU2l6ZSwgY29u
dGFpbmVyWm9vbSk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShjb250YWluZXJab29tKTsKLSAg
ICBtX2ltYWdlLT5zZXRDb250YWluZXJTaXplKGNvbnRhaW5lclNpemUpOwogI2VuZGlmCisgICAg
bV9pbWFnZS0+c2V0Q29udGFpbmVyU2l6ZShjb250YWluZXJTaXplKTsKIH0KIAogYm9vbCBDYWNo
ZWRJbWFnZTo6dXNlc0ltYWdlQ29udGFpbmVyU2l6ZSgpIGNvbnN0CkBAIC0zNDEsNyArMzMxLDcg
QEAgaW5saW5lIHZvaWQgQ2FjaGVkSW1hZ2U6OmNyZWF0ZUltYWdlKCkKICAgICAgICAgLy8gU2Vu
ZCBxdWV1ZWQgY29udGFpbmVyIHNpemUgcmVxdWVzdHMuCiAgICAgICAgIGlmIChtX2ltYWdlLT51
c2VzQ29udGFpbmVyU2l6ZSgpKSB7CiAgICAgICAgICAgICBmb3IgKENvbnRhaW5lclNpemVSZXF1
ZXN0czo6aXRlcmF0b3IgaXQgPSBtX3BlbmRpbmdDb250YWluZXJTaXplUmVxdWVzdHMuYmVnaW4o
KTsgaXQgIT0gbV9wZW5kaW5nQ29udGFpbmVyU2l6ZVJlcXVlc3RzLmVuZCgpOyArK2l0KQotICAg
ICAgICAgICAgICAgIHNldENvbnRhaW5lclNpemVGb3JSZW5kZXJlcihpdC0+a2V5LCBpdC0+dmFs
dWUuZmlyc3QsIGl0LT52YWx1ZS5zZWNvbmQpOworICAgICAgICAgICAgICAgIHNldENvbnRhaW5l
clNpemVGb3JSZW5kZXJlcihpdC0+dmFsdWUucmVuZGVyZXIsIGl0LT52YWx1ZS5zaXplLCBpdC0+
dmFsdWUuem9vbSk7CiAgICAgICAgIH0KICAgICAgICAgbV9wZW5kaW5nQ29udGFpbmVyU2l6ZVJl
cXVlc3RzLmNsZWFyKCk7CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZEltYWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZEltYWdlLmgJKHJldmlzaW9uIDE0Mjk1MSkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRJbWFnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC02MSw3ICs2MSw3IEBAIHB1
YmxpYzoKIAogICAgIGJvb2wgY2FuUmVuZGVyKGNvbnN0IFJlbmRlck9iamVjdCogcmVuZGVyZXIs
IGZsb2F0IG11bHRpcGxpZXIpIHsgcmV0dXJuICFlcnJvck9jY3VycmVkKCkgJiYgIWltYWdlU2l6
ZUZvclJlbmRlcmVyKHJlbmRlcmVyLCBtdWx0aXBsaWVyKS5pc0VtcHR5KCk7IH0KIAotICAgIHZv
aWQgc2V0Q29udGFpbmVyU2l6ZUZvclJlbmRlcmVyKGNvbnN0IENhY2hlZEltYWdlQ2xpZW50Kiwg
Y29uc3QgSW50U2l6ZSYsIGZsb2F0KTsKKyAgICB2b2lkIHNldENvbnRhaW5lclNpemVGb3JSZW5k
ZXJlcihjb25zdCBSZW5kZXJPYmplY3QqLCBjb25zdCBJbnRTaXplJiwgZmxvYXQpOwogICAgIGJv
b2wgdXNlc0ltYWdlQ29udGFpbmVyU2l6ZSgpIGNvbnN0OwogICAgIGJvb2wgaW1hZ2VIYXNSZWxh
dGl2ZVdpZHRoKCkgY29uc3Q7CiAgICAgYm9vbCBpbWFnZUhhc1JlbGF0aXZlSGVpZ2h0KCkgY29u
c3Q7CkBAIC05Nyw4ICs5Nyw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVt
b3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0IE9WRVJSSURFOwogCiBwcml2YXRlOgot
ICAgIEltYWdlKiBsb29rdXBPckNyZWF0ZUltYWdlRm9yUmVuZGVyZXIoY29uc3QgUmVuZGVyT2Jq
ZWN0Kik7Ci0KICAgICB2b2lkIGNsZWFyKCk7CiAKICAgICB2b2lkIGNyZWF0ZUltYWdlKCk7CkBA
IC0xMTEsOCArMTA5LDE3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIHZvaWQgc3dpdGNoQ2xp
ZW50c1RvUmV2YWxpZGF0ZWRSZXNvdXJjZSgpIE9WRVJSSURFOwogCi0gICAgdHlwZWRlZiBwYWly
PEludFNpemUsIGZsb2F0PiBTaXplQW5kWm9vbTsKLSAgICB0eXBlZGVmIEhhc2hNYXA8Y29uc3Qg
Q2FjaGVkSW1hZ2VDbGllbnQqLCBTaXplQW5kWm9vbT4gQ29udGFpbmVyU2l6ZVJlcXVlc3RzOwor
ICAgIHN0cnVjdCBDb250YWluZXJTaXplUmVxdWVzdCB7CisgICAgICAgIENvbnRhaW5lclNpemVS
ZXF1ZXN0KCkgeyB9OworICAgICAgICBDb250YWluZXJTaXplUmVxdWVzdChjb25zdCBSZW5kZXJP
YmplY3QqIG5ld1JlbmRlcmVyLCBJbnRTaXplIG5ld1NpemUsIGZsb2F0IG5ld1pvb20pCisgICAg
ICAgICAgICA6IHJlbmRlcmVyKG5ld1JlbmRlcmVyKSwgc2l6ZShuZXdTaXplKSwgem9vbShuZXda
b29tKSB7IH07CisKKyAgICAgICAgY29uc3QgUmVuZGVyT2JqZWN0KiByZW5kZXJlcjsKKyAgICAg
ICAgSW50U2l6ZSBzaXplOworICAgICAgICBmbG9hdCB6b29tOworICAgIH07CisKKyAgICB0eXBl
ZGVmIEhhc2hNYXA8Y29uc3QgQ2FjaGVkSW1hZ2VDbGllbnQqLCBDb250YWluZXJTaXplUmVxdWVz
dD4gQ29udGFpbmVyU2l6ZVJlcXVlc3RzOwogICAgIENvbnRhaW5lclNpemVSZXF1ZXN0cyBtX3Bl
bmRpbmdDb250YWluZXJTaXplUmVxdWVzdHM7CiAKICAgICBSZWZQdHI8SW1hZ2U+IG1faW1hZ2U7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2VDYWNoZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlQ2FjaGUuY3Bw
CShyZXZpc2lvbiAxNDI5NTEpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1h
Z2VDYWNoZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUyLDIyICs1MiwxOSBAQCB2b2lkIFNWR0lt
YWdlQ2FjaGU6OnJlbW92ZUNsaWVudEZyb21DYWNoCiAgICAgICAgIG1faW1hZ2VGb3JDb250YWlu
ZXJNYXAucmVtb3ZlKGNsaWVudCk7CiB9CiAKLXZvaWQgU1ZHSW1hZ2VDYWNoZTo6c2V0Q29udGFp
bmVyU2l6ZUZvclJlbmRlcmVyKGNvbnN0IENhY2hlZEltYWdlQ2xpZW50KiBjbGllbnQsIGNvbnN0
IEludFNpemUmIGNvbnRhaW5lclNpemUsIGZsb2F0IGNvbnRhaW5lclpvb20pCit2b2lkIFNWR0lt
YWdlQ2FjaGU6OnNldENvbnRhaW5lclNpemVGb3JSZW5kZXJlcihjb25zdCBSZW5kZXJPYmplY3Qq
IHJlbmRlcmVyLCBjb25zdCBJbnRTaXplJiBjb250YWluZXJTaXplLCBmbG9hdCBjb250YWluZXJa
b29tKQogewotICAgIEFTU0VSVChjbGllbnQpOworICAgIEFTU0VSVChyZW5kZXJlcik7CiAgICAg
QVNTRVJUKCFjb250YWluZXJTaXplLmlzRW1wdHkoKSk7CiAKLSAgICBGbG9hdFNpemUgY29udGFp
bmVyU2l6ZVdpdGhvdXRab29tKGNvbnRhaW5lclNpemUpOwotICAgIGNvbnRhaW5lclNpemVXaXRo
b3V0Wm9vbS5zY2FsZSgxIC8gY29udGFpbmVyWm9vbSk7CisgICAgUGFnZSogcGFnZSA9IHJlbmRl
cmVyLT5kb2N1bWVudCgpLT5wYWdlKCk7CisgICAgLy8gRklYTUU6IEFyZSBib3RoIG9mIHRoZXNl
IHNjYWxlIGZhY3RvcnMgcmVxdWlyZWQgb24gYWxsIHBsYXRmb3Jtcz8KKyAgICBmbG9hdCBzY2Fs
ZSA9IHBhZ2UtPmRldmljZVNjYWxlRmFjdG9yKCkgKiBwYWdlLT5wYWdlU2NhbGVGYWN0b3IoKTsK
IAotICAgIEltYWdlRm9yQ29udGFpbmVyTWFwOjppdGVyYXRvciBpbWFnZUl0ID0gbV9pbWFnZUZv
ckNvbnRhaW5lck1hcC5maW5kKGNsaWVudCk7Ci0gICAgaWYgKGltYWdlSXQgPT0gbV9pbWFnZUZv
ckNvbnRhaW5lck1hcC5lbmQoKSkgewotICAgICAgICBSZWZQdHI8U1ZHSW1hZ2VGb3JDb250YWlu
ZXI+IGltYWdlID0gU1ZHSW1hZ2VGb3JDb250YWluZXI6OmNyZWF0ZShtX3N2Z0ltYWdlLCBjb250
YWluZXJTaXplV2l0aG91dFpvb20sIDEsIGNvbnRhaW5lclpvb20pOwotICAgICAgICBtX2ltYWdl
Rm9yQ29udGFpbmVyTWFwLnNldChjbGllbnQsIGltYWdlKTsKLSAgICB9IGVsc2UgewotICAgICAg
ICBpbWFnZUl0LT52YWx1ZS0+c2V0U2l6ZShjb250YWluZXJTaXplV2l0aG91dFpvb20pOwotICAg
ICAgICBpbWFnZUl0LT52YWx1ZS0+c2V0Wm9vbShjb250YWluZXJab29tKTsKLSAgICB9CisgICAg
RmxvYXRTaXplIHNpemVXaXRob3V0Wm9vbShjb250YWluZXJTaXplKTsKKyAgICBzaXplV2l0aG91
dFpvb20uc2NhbGUoMSAvIGNvbnRhaW5lclpvb20pOworCisgICAgbV9pbWFnZUZvckNvbnRhaW5l
ck1hcC5zZXQocmVuZGVyZXIsIFNWR0ltYWdlRm9yQ29udGFpbmVyOjpjcmVhdGUobV9zdmdJbWFn
ZSwgc2l6ZVdpdGhvdXRab29tLCBzY2FsZSwgY29udGFpbmVyWm9vbSkpOwogfQogCiBJbnRTaXpl
IFNWR0ltYWdlQ2FjaGU6OmltYWdlU2l6ZUZvclJlbmRlcmVyKGNvbnN0IFJlbmRlck9iamVjdCog
cmVuZGVyZXIpIGNvbnN0CkBAIC05OCwxOSArOTUsMTIgQEAgSW1hZ2UqIFNWR0ltYWdlQ2FjaGU6
OmltYWdlRm9yUmVuZGVyZXIoYwogICAgIGlmICghcmVuZGVyZXIpCiAgICAgICAgIHJldHVybiBJ
bWFnZTo6bnVsbEltYWdlKCk7CiAKLSAgICAvLyBUaGUgY2FjaGUgbmVlZHMgdG8ga25vdyB0aGUg
c2l6ZSBvZiB0aGUgcmVuZGVyZXIgYmVmb3JlIHF1ZXJ5aW5nIGFuIGltYWdlIGZvciBpdC4KICAg
ICBJbWFnZUZvckNvbnRhaW5lck1hcDo6aXRlcmF0b3IgaXQgPSBtX2ltYWdlRm9yQ29udGFpbmVy
TWFwLmZpbmQocmVuZGVyZXIpOwogICAgIGlmIChpdCA9PSBtX2ltYWdlRm9yQ29udGFpbmVyTWFw
LmVuZCgpKQogICAgICAgICByZXR1cm4gSW1hZ2U6Om51bGxJbWFnZSgpOwogCi0gICAgUmVmUHRy
PFNWR0ltYWdlRm9yQ29udGFpbmVyPiBpbWFnZSA9IGl0LT52YWx1ZTsKLSAgICBBU1NFUlQoIWlt
YWdlLT5jb250YWluZXJTaXplKCkuaXNFbXB0eSgpKTsKLQotICAgIC8vIEZJWE1FOiBTZXQgdGhl
IHBhZ2Ugc2NhbGUgaW4gc2V0Q29udGFpbmVyU2l6ZUZvclJlbmRlcmVyIGluc3RlYWQgb2YgbG9v
a2luZyBpdCB1cCBoZXJlLgotICAgIFBhZ2UqIHBhZ2UgPSByZW5kZXJlci0+ZG9jdW1lbnQoKS0+
cGFnZSgpOwotICAgIGltYWdlLT5zZXRQYWdlU2NhbGUocGFnZS0+ZGV2aWNlU2NhbGVGYWN0b3Io
KSAqIHBhZ2UtPnBhZ2VTY2FsZUZhY3RvcigpKTsKLQotICAgIHJldHVybiBpbWFnZS5nZXQoKTsK
KyAgICBBU1NFUlQoIWl0LT52YWx1ZS0+Y29udGFpbmVyU2l6ZSgpLmlzRW1wdHkoKSk7CisgICAg
cmV0dXJuIGl0LT52YWx1ZS5nZXQoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRl
eDogU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlQ2FjaGUuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2VDYWNoZS5oCShyZXZpc2lv
biAxNDI5NTEpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2VDYWNoZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcmVt
b3ZlQ2xpZW50RnJvbUNhY2hlKGNvbnN0IENhY2hlZEltYWdlQ2xpZW50Kik7CiAKLSAgICB2b2lk
IHNldENvbnRhaW5lclNpemVGb3JSZW5kZXJlcihjb25zdCBDYWNoZWRJbWFnZUNsaWVudCosIGNv
bnN0IEludFNpemUmLCBmbG9hdCk7CisgICAgdm9pZCBzZXRDb250YWluZXJTaXplRm9yUmVuZGVy
ZXIoY29uc3QgUmVuZGVyT2JqZWN0KiwgY29uc3QgSW50U2l6ZSYsIGZsb2F0KTsKICAgICBJbnRT
aXplIGltYWdlU2l6ZUZvclJlbmRlcmVyKGNvbnN0IFJlbmRlck9iamVjdCopIGNvbnN0OwogCiAg
ICAgSW1hZ2UqIGltYWdlRm9yUmVuZGVyZXIoY29uc3QgUmVuZGVyT2JqZWN0Kik7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2VGb3JDb250YWluZXIuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2VGb3JDb250YWluZXIu
aAkocmV2aXNpb24gMTQyOTUxKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0lt
YWdlRm9yQ29udGFpbmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTYzLDI0ICs2MywxOSBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCBib29sIGN1cnJlbnRGcmFtZUtub3duVG9CZU9wYXF1ZSgpIE9WRVJS
SURFIHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICBGbG9hdFNpemUgY29udGFpbmVyU2l6ZSgpIHsg
cmV0dXJuIG1fY29udGFpbmVyU2l6ZTsgfQotICAgIGZsb2F0IHBhZ2VTY2FsZSgpIHsgcmV0dXJu
IG1fcGFnZVNjYWxlOyB9CiAgICAgZmxvYXQgem9vbSgpIHsgcmV0dXJuIG1fem9vbTsgfQogCi0g
ICAgdm9pZCBzZXRTaXplKEZsb2F0U2l6ZSYgc2l6ZSkgeyBtX2NvbnRhaW5lclNpemUgPSBzaXpl
OyB9Ci0gICAgdm9pZCBzZXRab29tKGZsb2F0IHpvb20pIHsgbV96b29tID0gem9vbTsgfQotICAg
IHZvaWQgc2V0UGFnZVNjYWxlKGZsb2F0IHBhZ2VTY2FsZSkgeyBtX3BhZ2VTY2FsZSA9IHBhZ2VT
Y2FsZTsgfQotCiBwcml2YXRlOgotICAgIFNWR0ltYWdlRm9yQ29udGFpbmVyKFNWR0ltYWdlKiBp
bWFnZSwgY29uc3QgRmxvYXRTaXplJiBjb250YWluZXJTaXplLCBmbG9hdCBwYWdlU2NhbGUsIGZs
b2F0IHpvb20pCisgICAgU1ZHSW1hZ2VGb3JDb250YWluZXIoU1ZHSW1hZ2UqIGltYWdlLCBjb25z
dCBGbG9hdFNpemUmIGNvbnRhaW5lclNpemUsIGNvbnN0IGZsb2F0IHBhZ2VTY2FsZSwgY29uc3Qg
ZmxvYXQgem9vbSkKICAgICAgICAgOiBtX2ltYWdlKGltYWdlKSwgbV9jb250YWluZXJTaXplKGNv
bnRhaW5lclNpemUpLCBtX3BhZ2VTY2FsZShwYWdlU2NhbGUpLCBtX3pvb20oem9vbSkgeyB9CiAK
ICAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveURlY29kZWREYXRhKGJvb2wgLypkZXN0cm95QWxsKi8g
PSB0cnVlKSB7IH0KICAgICB2aXJ0dWFsIHVuc2lnbmVkIGRlY29kZWRTaXplKCkgY29uc3QgeyBy
ZXR1cm4gMDsgfQogCiAgICAgU1ZHSW1hZ2UqIG1faW1hZ2U7Ci0gICAgRmxvYXRTaXplIG1fY29u
dGFpbmVyU2l6ZTsKLSAgICBmbG9hdCBtX3BhZ2VTY2FsZTsKLSAgICBmbG9hdCBtX3pvb207Cisg
ICAgY29uc3QgRmxvYXRTaXplIG1fY29udGFpbmVyU2l6ZTsKKyAgICBjb25zdCBmbG9hdCBtX3Bh
Z2VTY2FsZTsKKyAgICBjb25zdCBmbG9hdCBtX3pvb207CiB9OwogfQogCg==
</data>
<flag name="review"
          id="208886"
          type_id="1"
          status="-"
          setter="krit"
    />
          </attachment>
      

    </bug>

</bugzilla>