<?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>80856</bug_id>
          
          <creation_ts>2012-03-12 10:40:58 -0700</creation_ts>
          <short_desc>Split the extra logic out of RenderObjectChildList::updateBeforeAfterContent</short_desc>
          <delta_ts>2012-03-13 18:45:48 -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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Igor Trindade Oliveira">igor.oliveira</reporter>
          <assigned_to name="Igor Trindade Oliveira">igor.oliveira</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>enne</cc>
    
    <cc>hyatt</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>morrita</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>576255</commentid>
    <comment_count>0</comment_count>
    <who name="Igor Trindade Oliveira">igor.oliveira</who>
    <bug_when>2012-03-12 10:40:58 -0700</bug_when>
    <thetext>Currently, updateBeforeAfterContent has a complex logic, it creates and updates the before and after elements. 
Splitting the extra logic out of  RenderObjectChildList::updateBeforeAfterContent, makes it easier to understand.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576262</commentid>
    <comment_count>1</comment_count>
    <who name="Igor Trindade Oliveira">igor.oliveira</who>
    <bug_when>2012-03-12 10:45:39 -0700</bug_when>
    <thetext>Patch coming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576465</commentid>
    <comment_count>2</comment_count>
      <attachid>131396</attachid>
    <who name="Igor Trindade Oliveira">igor.oliveira</who>
    <bug_when>2012-03-12 13:34:57 -0700</bug_when>
    <thetext>Created attachment 131396
Patch.

Proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576591</commentid>
    <comment_count>3</comment_count>
      <attachid>131396</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-12 15:08:01 -0700</bug_when>
    <thetext>Comment on attachment 131396
Patch.

Attachment 131396 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11943161

New failing tests:
svg/text/text-block-child-crash.xhtml</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576615</commentid>
    <comment_count>4</comment_count>
      <attachid>131396</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-03-12 15:27:31 -0700</bug_when>
    <thetext>Comment on attachment 131396
Patch.

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

The rest of the change looks fine but I would like a green EWS!

&gt; Source/WebCore/rendering/RenderObjectChildList.cpp:540
&gt; -                    return;
&gt; -                }
&gt; +                generatedContentContainer = createBeforeAfterGeneratedContentContainer(owner, renderer, styledObject, pseudoElementStyle);

I don&apos;t think this change is right. We used to bail out if |generatedContentContainer| was not allowed by |owner| and now we don&apos;t - because it&apos;s missing a NULL-check. I guess that&apos;s why the EWS is unhappy.

Arguably this doesn&apos;t add much so I would advise just dropping this part of the change unless you need that for your refactoring.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576737</commentid>
    <comment_count>5</comment_count>
      <attachid>131455</attachid>
    <who name="Igor Trindade Oliveira">igor.oliveira</who>
    <bug_when>2012-03-12 16:58:01 -0700</bug_when>
    <thetext>Created attachment 131455
Patch

Proposed patch v2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577377</commentid>
    <comment_count>6</comment_count>
      <attachid>131455</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-03-13 08:56:21 -0700</bug_when>
    <thetext>Comment on attachment 131455
Patch

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

&gt; Source/WebCore/ChangeLog:3
&gt; +        Split the extra logic out of RenderObjectChildList::updateBeforeAfterContent

Btw, I don&apos;t know what the &quot;extra logic&quot; is. I guess it should be either
* Split some logic out of RenderObjectChildList::updateBeforeAfterContent
* Extra part of the generated content handling logic out of RenderObjectChildList::updateBeforeAfterContent

&gt; Source/WebCore/ChangeLog:12
&gt; +        (WebCore):

Useless line (not your fault as prepare-ChangeLog has been sick for some time).

&gt; Source/WebCore/ChangeLog:14
&gt; +        (WebCore::createBeforeAfterGeneratedContentContainer):

Stale entry.

&gt; Source/WebCore/rendering/RenderObjectChildList.cpp:350
&gt; +    if (child &amp;&amp; child-&gt;style()-&gt;styleType() == type) {

Nit: This could use an early return.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578090</commentid>
    <comment_count>7</comment_count>
    <who name="Igor Trindade Oliveira">igor.oliveira</who>
    <bug_when>2012-03-13 18:45:48 -0700</bug_when>
    <thetext>Committed r110656: http://trac.webkit.org/changeset/110656</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131396</attachid>
            <date>2012-03-12 13:34:57 -0700</date>
            <delta_ts>2012-03-12 16:58:01 -0700</delta_ts>
            <desc>Patch.</desc>
            <filename>0001-Split-the-extra-logic-out-of-RenderObjectChildList-u.patch</filename>
            <type>text/plain</type>
            <size>14576</size>
            <attacher name="Igor Trindade Oliveira">igor.oliveira</attacher>
            
              <data encoding="base64">RnJvbSAxZDFlNmRlOTA5NzhkODc0OTQxYTdjMWE4YzY3ZDgwZGM1YWQ1YmFhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBJZ29yIE9saXZlaXJhIDxpZ29yLm9Ac2lzYS5zYW1zdW5nLmNv
bT4KRGF0ZTogTW9uLCAxMiBNYXIgMjAxMiAxMzoxOTo0MyAtMDcwMApTdWJqZWN0OiBbUEFUQ0hd
IFNwbGl0IHRoZSBleHRyYSBsb2dpYyBvdXQgb2YKIFJlbmRlck9iamVjdENoaWxkTGlzdDo6dXBk
YXRlQmVmb3JlQWZ0ZXJDb250ZW50CgotLS0KIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgICAxOSArKwogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck9iamVjdENoaWxkTGlzdC5jcHAgfCAgMTg4ICsrKysrKysrKysrLS0tLS0tLS0tCiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmggICB8ICAgIDMg
KwogMyBmaWxlcyBjaGFuZ2VkLCAxMjUgaW5zZXJ0aW9ucygrKSwgODUgZGVsZXRpb25zKC0pCgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IDY1MDNiM2UuLmM1YzM3ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBA
QAorMjAxMi0wMy0xMiAgSWdvciBPbGl2ZWlyYSAgPGlnb3Iub0BzaXNhLnNhbXN1bmcuY29tPgor
CisgICAgICAgIFNwbGl0IHRoZSBleHRyYSBsb2dpYyBvdXQgb2YgUmVuZGVyT2JqZWN0Q2hpbGRM
aXN0Ojp1cGRhdGVCZWZvcmVBZnRlckNvbnRlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTgwODU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTm8gY2hhbmdlIGluIGJlaGF2aW9yIGV4cGVjdGVkLgorCisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdENoaWxkTGlzdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJPYmplY3RDaGlsZExpc3Q6OnVwZGF0ZUJlZm9yZUFmdGVyU3R5bGUpOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVSZW5kZXJGb3JCZWZv
cmVBZnRlckNvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQmVmb3JlQWZ0ZXJHZW5l
cmF0ZWRDb250ZW50Q29udGFpbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdENo
aWxkTGlzdDo6dXBkYXRlQmVmb3JlQWZ0ZXJDb250ZW50KToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyT2JqZWN0Q2hpbGRMaXN0Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFJl
bmRlck9iamVjdENoaWxkTGlzdCk6CisKIDIwMTItMDMtMDkgIEpvbiBMZWUgIDxqb25sZWVAYXBw
bGUuY29tPgogCiAgICAgICAgIFJlbmFtZSBOb3RpZmljYXRpb25QcmVzZW50ZXIgdG8gTm90aWZp
Y2F0aW9uQ2xpZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
T2JqZWN0Q2hpbGRMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmpl
Y3RDaGlsZExpc3QuY3BwCmluZGV4IGVmZTZiODUuLjc2ZDQzYTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3RDaGlsZExpc3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3RDaGlsZExpc3QuY3BwCkBAIC0zNDUsNiAr
MzQ1LDEwNSBAQCBSZW5kZXJPYmplY3QqIFJlbmRlck9iamVjdENoaWxkTGlzdDo6YWZ0ZXJQc2V1
ZG9FbGVtZW50UmVuZGVyZXIoY29uc3QgUmVuZGVyT2JqZQogICAgIHJldHVybiBsYXN0OwogfQog
Cit2b2lkIFJlbmRlck9iamVjdENoaWxkTGlzdDo6dXBkYXRlQmVmb3JlQWZ0ZXJTdHlsZShSZW5k
ZXJPYmplY3QqIGNoaWxkLCBQc2V1ZG9JZCB0eXBlLCBSZW5kZXJTdHlsZSogcHNldWRvRWxlbWVu
dFN0eWxlKQoreworICAgIGlmIChjaGlsZCAmJiBjaGlsZC0+c3R5bGUoKS0+c3R5bGVUeXBlKCkg
PT0gdHlwZSkgeworICAgICAgICAvLyBXZSBoYXZlIGdlbmVyYXRlZCBjb250ZW50IHByZXNlbnQg
c3RpbGwuIFdlIHdhbnQgdG8gd2FsayB0aGlzIGNvbnRlbnQgYW5kIHVwZGF0ZSBvdXIKKyAgICAg
ICAgLy8gc3R5bGUgaW5mb3JtYXRpb24gd2l0aCB0aGUgbmV3IHBzZXVkby1lbGVtZW50IHN0eWxl
LgorICAgICAgICBjaGlsZC0+c2V0U3R5bGUocHNldWRvRWxlbWVudFN0eWxlKTsKKworICAgICAg
ICBSZW5kZXJPYmplY3QqIGJlZm9yZUFmdGVyUGFyZW50ID0gZmluZEJlZm9yZUFmdGVyUGFyZW50
KGNoaWxkKTsKKyAgICAgICAgaWYgKCFiZWZvcmVBZnRlclBhcmVudCkKKyAgICAgICAgICAgIHJl
dHVybjsKKworICAgICAgICAvLyBXaGVuIGJlZm9yZUFmdGVyUGFyZW50IGlzIG5vdCBlcXVhbCB0
byBjaGlsZCAoZS5nLiBpbiB0YWJsZXMpLAorICAgICAgICAvLyB3ZSBuZWVkIHRvIGNyZWF0ZSBu
ZXcgc3R5bGVzIGluaGVyaXRpbmcgZnJvbSBwc2V1ZG9FbGVtZW50U3R5bGUKKyAgICAgICAgLy8g
b24gYWxsIHRoZSBpbnRlcm1lZGlhdGUgcGFyZW50cyAobGVhdmluZyB0aGVpciBkaXNwbGF5IHNh
bWUpLgorICAgICAgICBpZiAoYmVmb3JlQWZ0ZXJQYXJlbnQgIT0gY2hpbGQpIHsKKyAgICAgICAg
ICAgIFJlbmRlck9iamVjdCogY3VyciA9IGJlZm9yZUFmdGVyUGFyZW50OworICAgICAgICAgICAg
d2hpbGUgKGN1cnIgJiYgY3VyciAhPSBjaGlsZCkgeworICAgICAgICAgICAgICAgIEFTU0VSVChj
dXJyLT5pc0Fub255bW91cygpKTsKKyAgICAgICAgICAgICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+
IG5ld1N0eWxlID0gUmVuZGVyU3R5bGU6OmNyZWF0ZSgpOworICAgICAgICAgICAgICAgIG5ld1N0
eWxlLT5pbmhlcml0RnJvbShwc2V1ZG9FbGVtZW50U3R5bGUpOworICAgICAgICAgICAgICAgIG5l
d1N0eWxlLT5zZXREaXNwbGF5KGN1cnItPnN0eWxlKCktPmRpc3BsYXkoKSk7CisgICAgICAgICAg
ICAgICAgbmV3U3R5bGUtPnNldFN0eWxlVHlwZShjdXJyLT5zdHlsZSgpLT5zdHlsZVR5cGUoKSk7
CisgICAgICAgICAgICAgICAgY3Vyci0+c2V0U3R5bGUobmV3U3R5bGUpOworICAgICAgICAgICAg
ICAgIGN1cnIgPSBjdXJyLT5wYXJlbnQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisg
ICAgICAgIC8vIE5vdGUgdGhhdCBpZiB3ZSBldmVyIHN1cHBvcnQgYWRkaXRpb25hbCB0eXBlcyBv
ZiBnZW5lcmF0ZWQgY29udGVudCAod2hpY2ggc2hvdWxkIGJlIHdheSBvZmYKKyAgICAgICAgLy8g
aW4gdGhlIGZ1dHVyZSksIHRoaXMgY29kZSB3aWxsIG5lZWQgdG8gYmUgcGF0Y2hlZC4KKyAgICAg
ICAgZm9yIChSZW5kZXJPYmplY3QqIGdlbkNoaWxkID0gYmVmb3JlQWZ0ZXJQYXJlbnQtPmZpcnN0
Q2hpbGQoKTsgZ2VuQ2hpbGQ7IGdlbkNoaWxkID0gZ2VuQ2hpbGQtPm5leHRTaWJsaW5nKCkpIHsK
KyAgICAgICAgICAgIGlmIChnZW5DaGlsZC0+aXNUZXh0KCkpCisgICAgICAgICAgICAgICAgLy8g
R2VuZXJhdGVkIHRleHQgY29udGVudCBpcyBhIGNoaWxkIHdob3NlIHN0eWxlIGFsc28gbmVlZHMg
dG8gYmUgc2V0IHRvIHRoZSBwc2V1ZG8tZWxlbWVudCBzdHlsZS4KKyAgICAgICAgICAgICAgICBn
ZW5DaGlsZC0+c2V0U3R5bGUocHNldWRvRWxlbWVudFN0eWxlKTsKKyAgICAgICAgICAgIGVsc2Ug
aWYgKGdlbkNoaWxkLT5pc0ltYWdlKCkpIHsKKyAgICAgICAgICAgICAgICAvLyBJbWFnZXMgZ2V0
IGFuIGVtcHR5IHN0eWxlIHRoYXQgaW5oZXJpdHMgZnJvbSB0aGUgcHNldWRvLgorICAgICAgICAg
ICAgICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gc3R5bGUgPSBSZW5kZXJTdHlsZTo6Y3JlYXRlKCk7
CisgICAgICAgICAgICAgICAgc3R5bGUtPmluaGVyaXRGcm9tKHBzZXVkb0VsZW1lbnRTdHlsZSk7
CisgICAgICAgICAgICAgICAgZ2VuQ2hpbGQtPnNldFN0eWxlKHN0eWxlLnJlbGVhc2UoKSk7Cisg
ICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIFJlbmRlckxpc3RJdGVtIG1h
eSBpbnNlcnQgYSBsaXN0IG1hcmtlciBoZXJlLiBXZSBkbyBub3QgbmVlZCB0byBjYXJlIGFib3V0
IHRoaXMgY2FzZS4KKyAgICAgICAgICAgICAgICAvLyBPdGhlcndpc2UsIGdlbkNoaWxkIG11c3Qg
YmUgYSBmaXJzdC1sZXR0ZXIgY29udGFpbmVyLiB1cGRhdGVGaXJzdExldHRlcigpIHdpbGwgdGFr
ZSBjYXJlIG9mIGl0LgorICAgICAgICAgICAgICAgIEFTU0VSVChnZW5DaGlsZC0+aXNMaXN0TWFy
a2VyKCkgfHwgZ2VuQ2hpbGQtPnN0eWxlKCktPnN0eWxlVHlwZSgpID09IEZJUlNUX0xFVFRFUik7
CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CisKK3N0YXRpYyBSZW5kZXJPYmpl
Y3QqIGNyZWF0ZVJlbmRlckZvckJlZm9yZUFmdGVyQ29udGVudChSZW5kZXJPYmplY3QqIG93bmVy
LCBjb25zdCBDb250ZW50RGF0YSogY29udGVudCwgUmVuZGVyU3R5bGUqIHBzZXVkb0VsZW1lbnRT
dHlsZSkKK3sKKyAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gMDsKKyAgICBzd2l0Y2ggKGNv
bnRlbnQtPnR5cGUoKSkgeworICAgIGNhc2UgQ09OVEVOVF9OT05FOgorICAgICAgICBicmVhazsK
KyAgICBjYXNlIENPTlRFTlRfVEVYVDoKKyAgICAgICAgcmVuZGVyZXIgPSBuZXcgKG93bmVyLT5y
ZW5kZXJBcmVuYSgpKSBSZW5kZXJUZXh0RnJhZ21lbnQob3duZXItPmRvY3VtZW50KCkgLyogYW5v
bnltb3VzIG9iamVjdCAqLywgc3RhdGljX2Nhc3Q8Y29uc3QgVGV4dENvbnRlbnREYXRhKj4oY29u
dGVudCktPnRleHQoKS5pbXBsKCkpOworICAgICAgICByZW5kZXJlci0+c2V0U3R5bGUocHNldWRv
RWxlbWVudFN0eWxlKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDT05URU5UX09CSkVDVDog
eworICAgICAgICBSZW5kZXJJbWFnZSogaW1hZ2UgPSBuZXcgKG93bmVyLT5yZW5kZXJBcmVuYSgp
KSBSZW5kZXJJbWFnZShvd25lci0+ZG9jdW1lbnQoKSk7IC8vIGFub255bW91cyBvYmplY3QKKyAg
ICAgICAgUmVmUHRyPFJlbmRlclN0eWxlPiBzdHlsZSA9IFJlbmRlclN0eWxlOjpjcmVhdGUoKTsK
KyAgICAgICAgc3R5bGUtPmluaGVyaXRGcm9tKHBzZXVkb0VsZW1lbnRTdHlsZSk7CisgICAgICAg
IGltYWdlLT5zZXRTdHlsZShzdHlsZS5yZWxlYXNlKCkpOworICAgICAgICBpZiAoY29uc3QgU3R5
bGVJbWFnZSogc3R5bGVJbWFnZSA9IHN0YXRpY19jYXN0PGNvbnN0IEltYWdlQ29udGVudERhdGEq
Pihjb250ZW50KS0+aW1hZ2UoKSkKKyAgICAgICAgICAgIGltYWdlLT5zZXRJbWFnZVJlc291cmNl
KFJlbmRlckltYWdlUmVzb3VyY2VTdHlsZUltYWdlOjpjcmVhdGUoY29uc3RfY2FzdDxTdHlsZUlt
YWdlKj4oc3R5bGVJbWFnZSkpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgaW1hZ2UtPnNl
dEltYWdlUmVzb3VyY2UoUmVuZGVySW1hZ2VSZXNvdXJjZTo6Y3JlYXRlKCkpOworICAgICAgICBy
ZW5kZXJlciA9IGltYWdlOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBDT05URU5U
X0NPVU5URVI6CisgICAgICAgIHJlbmRlcmVyID0gbmV3IChvd25lci0+cmVuZGVyQXJlbmEoKSkg
UmVuZGVyQ291bnRlcihvd25lci0+ZG9jdW1lbnQoKSwgKnN0YXRpY19jYXN0PGNvbnN0IENvdW50
ZXJDb250ZW50RGF0YSo+KGNvbnRlbnQpLT5jb3VudGVyKCkpOworICAgICAgICByZW5kZXJlci0+
c2V0U3R5bGUocHNldWRvRWxlbWVudFN0eWxlKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBD
T05URU5UX1FVT1RFOgorICAgICAgICByZW5kZXJlciA9IG5ldyAob3duZXItPnJlbmRlckFyZW5h
KCkpIFJlbmRlclF1b3RlKG93bmVyLT5kb2N1bWVudCgpLCBzdGF0aWNfY2FzdDxjb25zdCBRdW90
ZUNvbnRlbnREYXRhKj4oY29udGVudCktPnF1b3RlKCkpOworICAgICAgICByZW5kZXJlci0+c2V0
U3R5bGUocHNldWRvRWxlbWVudFN0eWxlKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHJl
dHVybiByZW5kZXJlcjsKK30KKworc3RhdGljIFJlbmRlck9iamVjdCogY3JlYXRlQmVmb3JlQWZ0
ZXJHZW5lcmF0ZWRDb250ZW50Q29udGFpbmVyKFJlbmRlck9iamVjdCogb3duZXIsIFJlbmRlck9i
amVjdCogYmVmb3JlQWZ0ZXJSZW5kZXIsIGNvbnN0IFJlbmRlck9iamVjdCogc3R5bGVkT2JqZWN0
LCBSZW5kZXJTdHlsZSogcHNldWRvRWxlbWVudFN0eWxlKQoreworICAgIC8vIE1ha2UgYSBnZW5l
cmF0ZWQgYm94IHRoYXQgbWlnaHQgYmUgYW55IGRpc3BsYXkgdHlwZSBub3cgdGhhdCB3ZSBhcmUg
YWJsZSB0byBkcmlsbCBkb3duIGludG8gY2hpbGRyZW4KKyAgICAvLyB0byBmaW5kIHRoZSBvcmln
aW5hbCBjb250ZW50IHByb3Blcmx5LgorICAgIFJlbmRlck9iamVjdCogZ2VuZXJhdGVkQ29udGVu
dENvbnRhaW5lciA9IFJlbmRlck9iamVjdDo6Y3JlYXRlT2JqZWN0KG93bmVyLT5kb2N1bWVudCgp
LCBwc2V1ZG9FbGVtZW50U3R5bGUpOworICAgIEFTU0VSVChzdHlsZWRPYmplY3QtPm5vZGUoKSk7
IC8vIFRoZSBzdHlsZWQgb2JqZWN0IGNhbm5vdCBiZSBhbm9ueW1vdXMgb3IgZWxzZSBpdCBjb3Vs
ZCBub3QgaGF2ZSAnOmJlZm9yZScgb3IgJzphZnRlcicgcHNldWRvIGVsZW1lbnRzLgorICAgIGdl
bmVyYXRlZENvbnRlbnRDb250YWluZXItPnNldE5vZGUoc3R5bGVkT2JqZWN0LT5ub2RlKCkpOyAv
LyBUaGlzIGFsbG93cyBhY2Nlc3MgdG8gdGhlIGdlbmVyYXRpbmdOb2RlLgorICAgIGdlbmVyYXRl
ZENvbnRlbnRDb250YWluZXItPnNldFN0eWxlKHBzZXVkb0VsZW1lbnRTdHlsZSk7CisgICAgaWYg
KCFvd25lci0+aXNDaGlsZEFsbG93ZWQoZ2VuZXJhdGVkQ29udGVudENvbnRhaW5lciwgcHNldWRv
RWxlbWVudFN0eWxlKSkgeworICAgICAgICAvLyBUaGUgZ2VuZXJhdGVkIGNvbnRlbnQgY29udGFp
bmVyIGlzIG5vdCBhbGxvd2VkIGhlcmUgLT4gYWJvcnQuCisgICAgICAgIGdlbmVyYXRlZENvbnRl
bnRDb250YWluZXItPmRlc3Ryb3koKTsKKyAgICAgICAgYmVmb3JlQWZ0ZXJSZW5kZXItPmRlc3Ry
b3koKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgcmV0dXJuIGdlbmVyYXRlZENv
bnRlbnRDb250YWluZXI7Cit9CisKIHZvaWQgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0Ojp1cGRhdGVC
ZWZvcmVBZnRlckNvbnRlbnQoUmVuZGVyT2JqZWN0KiBvd25lciwgUHNldWRvSWQgdHlwZSwgY29u
c3QgUmVuZGVyT2JqZWN0KiBzdHlsZWRPYmplY3QpCiB7CiAgICAgLy8gRG91YmxlIGNoZWNrIHRo
YXQgdGhlIGRvY3VtZW50IGRpZCBpbiBmYWN0IHVzZSBnZW5lcmF0ZWQgY29udGVudCBydWxlcy4g
IE90aGVyd2lzZSB3ZSBzaG91bGQgbm90IGhhdmUgYmVlbiBjYWxsZWQuCkBAIC00MTQsNDkgKzUx
Myw3IEBAIHZvaWQgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0Ojp1cGRhdGVCZWZvcmVBZnRlckNvbnRl
bnQoUmVuZGVyT2JqZWN0KiBvd25lciwgUHNldWRvCiAgICAgICAgIHBzZXVkb0VsZW1lbnRTdHls
ZS0+c2V0RGlzcGxheShJTkxJTkUpOwogCiAgICAgaWYgKG9sZENvbnRlbnRQcmVzZW50KSB7Ci0g
ICAgICAgIGlmIChjaGlsZCAmJiBjaGlsZC0+c3R5bGUoKS0+c3R5bGVUeXBlKCkgPT0gdHlwZSkg
ewotICAgICAgICAgICAgLy8gV2UgaGF2ZSBnZW5lcmF0ZWQgY29udGVudCBwcmVzZW50IHN0aWxs
LiAgV2Ugd2FudCB0byB3YWxrIHRoaXMgY29udGVudCBhbmQgdXBkYXRlIG91cgotICAgICAgICAg
ICAgLy8gc3R5bGUgaW5mb3JtYXRpb24gd2l0aCB0aGUgbmV3IHBzZXVkby1lbGVtZW50IHN0eWxl
LgotICAgICAgICAgICAgY2hpbGQtPnNldFN0eWxlKHBzZXVkb0VsZW1lbnRTdHlsZSk7Ci0KLSAg
ICAgICAgICAgIFJlbmRlck9iamVjdCogYmVmb3JlQWZ0ZXJQYXJlbnQgPSBmaW5kQmVmb3JlQWZ0
ZXJQYXJlbnQoY2hpbGQpOwotICAgICAgICAgICAgaWYgKCFiZWZvcmVBZnRlclBhcmVudCkKLSAg
ICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgICAgIC8vIFdoZW4gYmVmb3JlQWZ0ZXJQ
YXJlbnQgaXMgbm90IGVxdWFsIHRvIGNoaWxkIChlLmcuIGluIHRhYmxlcyksCi0gICAgICAgICAg
ICAvLyB3ZSBuZWVkIHRvIGNyZWF0ZSBuZXcgc3R5bGVzIGluaGVyaXRpbmcgZnJvbSBwc2V1ZG9F
bGVtZW50U3R5bGUgCi0gICAgICAgICAgICAvLyBvbiBhbGwgdGhlIGludGVybWVkaWF0ZSBwYXJl
bnRzIChsZWF2aW5nIHRoZWlyIGRpc3BsYXkgc2FtZSkuCi0gICAgICAgICAgICBpZiAoYmVmb3Jl
QWZ0ZXJQYXJlbnQgIT0gY2hpbGQpIHsKLSAgICAgICAgICAgICAgICBSZW5kZXJPYmplY3QqIGN1
cnIgPSBiZWZvcmVBZnRlclBhcmVudDsKLSAgICAgICAgICAgICAgICB3aGlsZSAoY3VyciAmJiBj
dXJyICE9IGNoaWxkKSB7Ci0gICAgICAgICAgICAgICAgICAgIEFTU0VSVChjdXJyLT5pc0Fub255
bW91cygpKTsKLSAgICAgICAgICAgICAgICAgICAgUmVmUHRyPFJlbmRlclN0eWxlPiBuZXdTdHls
ZSA9IFJlbmRlclN0eWxlOjpjcmVhdGUoKTsKLSAgICAgICAgICAgICAgICAgICAgbmV3U3R5bGUt
PmluaGVyaXRGcm9tKHBzZXVkb0VsZW1lbnRTdHlsZSk7Ci0gICAgICAgICAgICAgICAgICAgIG5l
d1N0eWxlLT5zZXREaXNwbGF5KGN1cnItPnN0eWxlKCktPmRpc3BsYXkoKSk7Ci0gICAgICAgICAg
ICAgICAgICAgIG5ld1N0eWxlLT5zZXRTdHlsZVR5cGUoY3Vyci0+c3R5bGUoKS0+c3R5bGVUeXBl
KCkpOwotICAgICAgICAgICAgICAgICAgICBjdXJyLT5zZXRTdHlsZShuZXdTdHlsZSk7Ci0gICAg
ICAgICAgICAgICAgICAgIGN1cnIgPSBjdXJyLT5wYXJlbnQoKTsKLSAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC8vIE5vdGUgdGhhdCBpZiB3ZSBldmVyIHN1
cHBvcnQgYWRkaXRpb25hbCB0eXBlcyBvZiBnZW5lcmF0ZWQgY29udGVudCAod2hpY2ggc2hvdWxk
IGJlIHdheSBvZmYKLSAgICAgICAgICAgIC8vIGluIHRoZSBmdXR1cmUpLCB0aGlzIGNvZGUgd2ls
bCBuZWVkIHRvIGJlIHBhdGNoZWQuCi0gICAgICAgICAgICBmb3IgKFJlbmRlck9iamVjdCogZ2Vu
Q2hpbGQgPSBiZWZvcmVBZnRlclBhcmVudC0+Zmlyc3RDaGlsZCgpOyBnZW5DaGlsZDsgZ2VuQ2hp
bGQgPSBnZW5DaGlsZC0+bmV4dFNpYmxpbmcoKSkgewotICAgICAgICAgICAgICAgIGlmIChnZW5D
aGlsZC0+aXNUZXh0KCkpCi0gICAgICAgICAgICAgICAgICAgIC8vIEdlbmVyYXRlZCB0ZXh0IGNv
bnRlbnQgaXMgYSBjaGlsZCB3aG9zZSBzdHlsZSBhbHNvIG5lZWRzIHRvIGJlIHNldCB0byB0aGUg
cHNldWRvLWVsZW1lbnQgc3R5bGUuCi0gICAgICAgICAgICAgICAgICAgIGdlbkNoaWxkLT5zZXRT
dHlsZShwc2V1ZG9FbGVtZW50U3R5bGUpOwotICAgICAgICAgICAgICAgIGVsc2UgaWYgKGdlbkNo
aWxkLT5pc0ltYWdlKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gSW1hZ2VzIGdldCBhbiBl
bXB0eSBzdHlsZSB0aGF0IGluaGVyaXRzIGZyb20gdGhlIHBzZXVkby4KLSAgICAgICAgICAgICAg
ICAgICAgUmVmUHRyPFJlbmRlclN0eWxlPiBzdHlsZSA9IFJlbmRlclN0eWxlOjpjcmVhdGUoKTsK
LSAgICAgICAgICAgICAgICAgICAgc3R5bGUtPmluaGVyaXRGcm9tKHBzZXVkb0VsZW1lbnRTdHls
ZSk7Ci0gICAgICAgICAgICAgICAgICAgIGdlbkNoaWxkLT5zZXRTdHlsZShzdHlsZS5yZWxlYXNl
KCkpOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIFJl
bmRlckxpc3RJdGVtIG1heSBpbnNlcnQgYSBsaXN0IG1hcmtlciBoZXJlLiBXZSBkbyBub3QgbmVl
ZCB0byBjYXJlIGFib3V0IHRoaXMgY2FzZS4KLSAgICAgICAgICAgICAgICAgICAgLy8gT3RoZXJ3
aXNlLCBnZW5DaGlsZCBtdXN0IGJlIGEgZmlyc3QtbGV0dGVyIGNvbnRhaW5lci4gdXBkYXRlRmly
c3RMZXR0ZXIoKSB3aWxsIHRha2UgY2FyZSBvZiBpdC4KLSAgICAgICAgICAgICAgICAgICAgQVNT
RVJUKGdlbkNoaWxkLT5pc0xpc3RNYXJrZXIoKSB8fCBnZW5DaGlsZC0+c3R5bGUoKS0+c3R5bGVU
eXBlKCkgPT0gRklSU1RfTEVUVEVSKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9
Ci0gICAgICAgIH0KKyAgICAgICAgdXBkYXRlQmVmb3JlQWZ0ZXJTdHlsZShjaGlsZCwgdHlwZSwg
cHNldWRvRWxlbWVudFN0eWxlKTsKICAgICAgICAgcmV0dXJuOyAvLyBXZSd2ZSB1cGRhdGVkIHRo
ZSBnZW5lcmF0ZWQgY29udGVudC4gVGhhdCdzIGFsbCB3ZSBuZWVkZWQgdG8gZG8uCiAgICAgfQog
ICAgIApAQCAtNDczLDUzICs1MzAsMTQgQEAgdm9pZCBSZW5kZXJPYmplY3RDaGlsZExpc3Q6OnVw
ZGF0ZUJlZm9yZUFmdGVyQ29udGVudChSZW5kZXJPYmplY3QqIG93bmVyLCBQc2V1ZG8KICAgICAv
LyBHZW5lcmF0ZWQgY29udGVudCBjb25zaXN0cyBvZiBhIHNpbmdsZSBjb250YWluZXIgdGhhdCBo
b3VzZXMgbXVsdGlwbGUgY2hpbGRyZW4gKHNwZWNpZmllZAogICAgIC8vIGJ5IHRoZSBjb250ZW50
IHByb3BlcnR5KS4gIFRoaXMgZ2VuZXJhdGVkIGNvbnRlbnQgY29udGFpbmVyIGdldHMgdGhlIHBz
ZXVkby1lbGVtZW50IHN0eWxlIHNldCBvbiBpdC4KICAgICBSZW5kZXJPYmplY3QqIGdlbmVyYXRl
ZENvbnRlbnRDb250YWluZXIgPSAwOwotICAgIAorCiAgICAgLy8gV2FsayBvdXIgbGlzdCBvZiBn
ZW5lcmF0ZWQgY29udGVudCBhbmQgY3JlYXRlIHJlbmRlciBvYmplY3RzIGZvciBlYWNoLgogICAg
IGZvciAoY29uc3QgQ29udGVudERhdGEqIGNvbnRlbnQgPSBwc2V1ZG9FbGVtZW50U3R5bGUtPmNv
bnRlbnREYXRhKCk7IGNvbnRlbnQ7IGNvbnRlbnQgPSBjb250ZW50LT5uZXh0KCkpIHsKLSAgICAg
ICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IDA7Ci0gICAgICAgIHN3aXRjaCAoY29udGVudC0+
dHlwZSgpKSB7Ci0gICAgICAgICAgICBjYXNlIENPTlRFTlRfTk9ORToKLSAgICAgICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgQ09OVEVOVF9URVhUOgotICAgICAgICAgICAgICAg
IHJlbmRlcmVyID0gbmV3IChvd25lci0+cmVuZGVyQXJlbmEoKSkgUmVuZGVyVGV4dEZyYWdtZW50
KG93bmVyLT5kb2N1bWVudCgpIC8qIGFub255bW91cyBvYmplY3QgKi8sIHN0YXRpY19jYXN0PGNv
bnN0IFRleHRDb250ZW50RGF0YSo+KGNvbnRlbnQpLT50ZXh0KCkuaW1wbCgpKTsKLSAgICAgICAg
ICAgICAgICByZW5kZXJlci0+c2V0U3R5bGUocHNldWRvRWxlbWVudFN0eWxlKTsKLSAgICAgICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgQ09OVEVOVF9PQkpFQ1Q6IHsKLSAgICAg
ICAgICAgICAgICBSZW5kZXJJbWFnZSogaW1hZ2UgPSBuZXcgKG93bmVyLT5yZW5kZXJBcmVuYSgp
KSBSZW5kZXJJbWFnZShvd25lci0+ZG9jdW1lbnQoKSk7IC8vIGFub255bW91cyBvYmplY3QKLSAg
ICAgICAgICAgICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IHN0eWxlID0gUmVuZGVyU3R5bGU6OmNy
ZWF0ZSgpOwotICAgICAgICAgICAgICAgIHN0eWxlLT5pbmhlcml0RnJvbShwc2V1ZG9FbGVtZW50
U3R5bGUpOwotICAgICAgICAgICAgICAgIGltYWdlLT5zZXRTdHlsZShzdHlsZS5yZWxlYXNlKCkp
OwotICAgICAgICAgICAgICAgIGlmIChjb25zdCBTdHlsZUltYWdlKiBzdHlsZUltYWdlID0gc3Rh
dGljX2Nhc3Q8Y29uc3QgSW1hZ2VDb250ZW50RGF0YSo+KGNvbnRlbnQpLT5pbWFnZSgpKQotICAg
ICAgICAgICAgICAgICAgICBpbWFnZS0+c2V0SW1hZ2VSZXNvdXJjZShSZW5kZXJJbWFnZVJlc291
cmNlU3R5bGVJbWFnZTo6Y3JlYXRlKGNvbnN0X2Nhc3Q8U3R5bGVJbWFnZSo+KHN0eWxlSW1hZ2Up
KSk7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBpbWFnZS0+c2V0
SW1hZ2VSZXNvdXJjZShSZW5kZXJJbWFnZVJlc291cmNlOjpjcmVhdGUoKSk7Ci0gICAgICAgICAg
ICAgICAgcmVuZGVyZXIgPSBpbWFnZTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgY2FzZSBDT05URU5UX0NPVU5URVI6Ci0gICAgICAgICAgICByZW5kZXJl
ciA9IG5ldyAob3duZXItPnJlbmRlckFyZW5hKCkpIFJlbmRlckNvdW50ZXIob3duZXItPmRvY3Vt
ZW50KCksICpzdGF0aWNfY2FzdDxjb25zdCBDb3VudGVyQ29udGVudERhdGEqPihjb250ZW50KS0+
Y291bnRlcigpKTsKLSAgICAgICAgICAgIHJlbmRlcmVyLT5zZXRTdHlsZShwc2V1ZG9FbGVtZW50
U3R5bGUpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ09OVEVOVF9RVU9URToK
LSAgICAgICAgICAgIHJlbmRlcmVyID0gbmV3IChvd25lci0+cmVuZGVyQXJlbmEoKSkgUmVuZGVy
UXVvdGUob3duZXItPmRvY3VtZW50KCksIHN0YXRpY19jYXN0PGNvbnN0IFF1b3RlQ29udGVudERh
dGEqPihjb250ZW50KS0+cXVvdGUoKSk7Ci0gICAgICAgICAgICByZW5kZXJlci0+c2V0U3R5bGUo
cHNldWRvRWxlbWVudFN0eWxlKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9CisgICAg
ICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSAgY3JlYXRlUmVuZGVyRm9yQmVmb3JlQWZ0ZXJD
b250ZW50KG93bmVyLCBjb250ZW50LCBwc2V1ZG9FbGVtZW50U3R5bGUpOwogCiAgICAgICAgIGlm
IChyZW5kZXJlcikgewogICAgICAgICAgICAgaWYgKCFnZW5lcmF0ZWRDb250ZW50Q29udGFpbmVy
KSB7Ci0gICAgICAgICAgICAgICAgLy8gTWFrZSBhIGdlbmVyYXRlZCBib3ggdGhhdCBtaWdodCBi
ZSBhbnkgZGlzcGxheSB0eXBlIG5vdyB0aGF0IHdlIGFyZSBhYmxlIHRvIGRyaWxsIGRvd24gaW50
byBjaGlsZHJlbgotICAgICAgICAgICAgICAgIC8vIHRvIGZpbmQgdGhlIG9yaWdpbmFsIGNvbnRl
bnQgcHJvcGVybHkuCi0gICAgICAgICAgICAgICAgZ2VuZXJhdGVkQ29udGVudENvbnRhaW5lciA9
IFJlbmRlck9iamVjdDo6Y3JlYXRlT2JqZWN0KG93bmVyLT5kb2N1bWVudCgpLCBwc2V1ZG9FbGVt
ZW50U3R5bGUpOwotICAgICAgICAgICAgICAgIEFTU0VSVChzdHlsZWRPYmplY3QtPm5vZGUoKSk7
IC8vIFRoZSBzdHlsZWQgb2JqZWN0IGNhbm5vdCBiZSBhbm9ueW1vdXMgb3IgZWxzZSBpdCBjb3Vs
ZCBub3QgaGF2ZSAnOmJlZm9yZScgb3IgJzphZnRlcicgcHNldWRvIGVsZW1lbnRzLgotICAgICAg
ICAgICAgICAgIGdlbmVyYXRlZENvbnRlbnRDb250YWluZXItPnNldE5vZGUoc3R5bGVkT2JqZWN0
LT5ub2RlKCkpOyAvLyBUaGlzIGFsbG93cyBhY2Nlc3MgdG8gdGhlIGdlbmVyYXRpbmdOb2RlLgot
ICAgICAgICAgICAgICAgIGdlbmVyYXRlZENvbnRlbnRDb250YWluZXItPnNldFN0eWxlKHBzZXVk
b0VsZW1lbnRTdHlsZSk7Ci0gICAgICAgICAgICAgICAgaWYgKCFvd25lci0+aXNDaGlsZEFsbG93
ZWQoZ2VuZXJhdGVkQ29udGVudENvbnRhaW5lciwgcHNldWRvRWxlbWVudFN0eWxlKSkgewotICAg
ICAgICAgICAgICAgICAgICAvLyBUaGUgZ2VuZXJhdGVkIGNvbnRlbnQgY29udGFpbmVyIGlzIG5v
dCBhbGxvd2VkIGhlcmUgLT4gYWJvcnQuCi0gICAgICAgICAgICAgICAgICAgIGdlbmVyYXRlZENv
bnRlbnRDb250YWluZXItPmRlc3Ryb3koKTsKLSAgICAgICAgICAgICAgICAgICAgcmVuZGVyZXIt
PmRlc3Ryb3koKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICBnZW5lcmF0ZWRDb250ZW50Q29udGFpbmVyID0gY3JlYXRlQmVm
b3JlQWZ0ZXJHZW5lcmF0ZWRDb250ZW50Q29udGFpbmVyKG93bmVyLCByZW5kZXJlciwgc3R5bGVk
T2JqZWN0LCBwc2V1ZG9FbGVtZW50U3R5bGUpOwogCiAgICAgICAgICAgICAgICAgLy8gV2hlbiB3
ZSBkb24ndCBoYXZlIGEgZmlyc3QgY2hpbGQgYW5kIGFyZSBwYXJ0IG9mIGEgY29udGludWF0aW9u
IGNoYWluLAogICAgICAgICAgICAgICAgIC8vIGluc2VydEJlZm9yZSBpcyBpbmNvcnJlY3RseSBz
ZXQgdG8gemVybyBhYm92ZSwgd2hpY2ggY2F1c2VzIHRoZSA6YmVmb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmgKaW5kZXggYzhmYzk3OC4u
Y2ZlOTAyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVj
dENoaWxkTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3RD
aGlsZExpc3QuaApAQCAtMzIsNiArMzIsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBSZW5kZXJPYmplY3Q7CitjbGFzcyBSZW5kZXJTdHlsZTsKIAogY2xhc3MgUmVuZGVyT2JqZWN0
Q2hpbGRMaXN0IHsKIHB1YmxpYzoKQEAgLTYwLDYgKzYxLDggQEAgcHVibGljOgogICAgIFJlbmRl
ck9iamVjdCogYWZ0ZXJQc2V1ZG9FbGVtZW50UmVuZGVyZXIoY29uc3QgUmVuZGVyT2JqZWN0KiBv
d25lcikgY29uc3Q7CiAKIHByaXZhdGU6CisgICAgdm9pZCB1cGRhdGVCZWZvcmVBZnRlclN0eWxl
KFJlbmRlck9iamVjdCogY2hpbGQsIFBzZXVkb0lkIHR5cGUsIFJlbmRlclN0eWxlKiBwc2V1ZG9F
bGVtZW50U3R5bGUpOworCiAgICAgUmVuZGVyT2JqZWN0KiBtX2ZpcnN0Q2hpbGQ7CiAgICAgUmVu
ZGVyT2JqZWN0KiBtX2xhc3RDaGlsZDsKIH07Ci0tIAoxLjcuNS40Cgo=
</data>
<flag name="commit-queue"
          id="134734"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131455</attachid>
            <date>2012-03-12 16:58:01 -0700</date>
            <delta_ts>2012-03-13 08:56:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Split-the-extra-logic-out-of-RenderObjectChildList-u.patch</filename>
            <type>text/plain</type>
            <size>12199</size>
            <attacher name="Igor Trindade Oliveira">igor.oliveira</attacher>
            
              <data encoding="base64">RnJvbSBjZjk4NTM2ODRkNmY1YzE1MWY2MjM3MTFhMTUxZWExZGM2MmM5MzdhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBJZ29yIE9saXZlaXJhIDxpZ29yLm9Ac2lzYS5zYW1zdW5nLmNv
bT4KRGF0ZTogTW9uLCAxMiBNYXIgMjAxMiAxMzoxOTo0MyAtMDcwMApTdWJqZWN0OiBbUEFUQ0hd
IFNwbGl0IHRoZSBleHRyYSBsb2dpYyBvdXQgb2YKIFJlbmRlck9iamVjdENoaWxkTGlzdDo6dXBk
YXRlQmVmb3JlQWZ0ZXJDb250ZW50CgotLS0KIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgICAxOSArKysKIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJPYmplY3RDaGlsZExpc3QuY3BwIHwgIDE1NyArKysrKysrKysrKy0tLS0tLS0tLQog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdENoaWxkTGlzdC5oICAgfCAgICAz
ICsKIDMgZmlsZXMgY2hhbmdlZCwgMTA2IGluc2VydGlvbnMoKyksIDczIGRlbGV0aW9ucygtKQoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2NTAzYjNlLi5jNWMzN2ZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIg
QEAKKzIwMTItMDMtMTIgIElnb3IgT2xpdmVpcmEgIDxpZ29yLm9Ac2lzYS5zYW1zdW5nLmNvbT4K
KworICAgICAgICBTcGxpdCB0aGUgZXh0cmEgbG9naWMgb3V0IG9mIFJlbmRlck9iamVjdENoaWxk
TGlzdDo6dXBkYXRlQmVmb3JlQWZ0ZXJDb250ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDg1NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE5vIGNoYW5nZSBpbiBiZWhhdmlvciBleHBlY3RlZC4KKwor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3RDaGlsZExpc3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyT2JqZWN0Q2hpbGRMaXN0Ojp1cGRhdGVCZWZvcmVBZnRlclN0eWxlKToK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlUmVuZGVyRm9yQmVm
b3JlQWZ0ZXJDb250ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUJlZm9yZUFmdGVyR2Vu
ZXJhdGVkQ29udGVudENvbnRhaW5lcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3RD
aGlsZExpc3Q6OnVwZGF0ZUJlZm9yZUFmdGVyQ29udGVudCk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlck9iamVjdENoaWxkTGlzdC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChS
ZW5kZXJPYmplY3RDaGlsZExpc3QpOgorCiAyMDEyLTAzLTA5ICBKb24gTGVlICA8am9ubGVlQGFw
cGxlLmNvbT4KIAogICAgICAgICBSZW5hbWUgTm90aWZpY2F0aW9uUHJlc2VudGVyIHRvIE5vdGlm
aWNhdGlvbkNsaWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck9iamVjdENoaWxkTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0Q2hpbGRMaXN0LmNwcAppbmRleCBlZmU2Yjg1Li4zNDFjY2U1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmNwcApAQCAtMzQ1LDYg
KzM0NSw4NyBAQCBSZW5kZXJPYmplY3QqIFJlbmRlck9iamVjdENoaWxkTGlzdDo6YWZ0ZXJQc2V1
ZG9FbGVtZW50UmVuZGVyZXIoY29uc3QgUmVuZGVyT2JqZQogICAgIHJldHVybiBsYXN0OwogfQog
Cit2b2lkIFJlbmRlck9iamVjdENoaWxkTGlzdDo6dXBkYXRlQmVmb3JlQWZ0ZXJTdHlsZShSZW5k
ZXJPYmplY3QqIGNoaWxkLCBQc2V1ZG9JZCB0eXBlLCBSZW5kZXJTdHlsZSogcHNldWRvRWxlbWVu
dFN0eWxlKQoreworICAgIGlmIChjaGlsZCAmJiBjaGlsZC0+c3R5bGUoKS0+c3R5bGVUeXBlKCkg
PT0gdHlwZSkgeworICAgICAgICAvLyBXZSBoYXZlIGdlbmVyYXRlZCBjb250ZW50IHByZXNlbnQg
c3RpbGwuIFdlIHdhbnQgdG8gd2FsayB0aGlzIGNvbnRlbnQgYW5kIHVwZGF0ZSBvdXIKKyAgICAg
ICAgLy8gc3R5bGUgaW5mb3JtYXRpb24gd2l0aCB0aGUgbmV3IHBzZXVkby1lbGVtZW50IHN0eWxl
LgorICAgICAgICBjaGlsZC0+c2V0U3R5bGUocHNldWRvRWxlbWVudFN0eWxlKTsKKworICAgICAg
ICBSZW5kZXJPYmplY3QqIGJlZm9yZUFmdGVyUGFyZW50ID0gZmluZEJlZm9yZUFmdGVyUGFyZW50
KGNoaWxkKTsKKyAgICAgICAgaWYgKCFiZWZvcmVBZnRlclBhcmVudCkKKyAgICAgICAgICAgIHJl
dHVybjsKKworICAgICAgICAvLyBXaGVuIGJlZm9yZUFmdGVyUGFyZW50IGlzIG5vdCBlcXVhbCB0
byBjaGlsZCAoZS5nLiBpbiB0YWJsZXMpLAorICAgICAgICAvLyB3ZSBuZWVkIHRvIGNyZWF0ZSBu
ZXcgc3R5bGVzIGluaGVyaXRpbmcgZnJvbSBwc2V1ZG9FbGVtZW50U3R5bGUKKyAgICAgICAgLy8g
b24gYWxsIHRoZSBpbnRlcm1lZGlhdGUgcGFyZW50cyAobGVhdmluZyB0aGVpciBkaXNwbGF5IHNh
bWUpLgorICAgICAgICBpZiAoYmVmb3JlQWZ0ZXJQYXJlbnQgIT0gY2hpbGQpIHsKKyAgICAgICAg
ICAgIFJlbmRlck9iamVjdCogY3VyciA9IGJlZm9yZUFmdGVyUGFyZW50OworICAgICAgICAgICAg
d2hpbGUgKGN1cnIgJiYgY3VyciAhPSBjaGlsZCkgeworICAgICAgICAgICAgICAgIEFTU0VSVChj
dXJyLT5pc0Fub255bW91cygpKTsKKyAgICAgICAgICAgICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+
IG5ld1N0eWxlID0gUmVuZGVyU3R5bGU6OmNyZWF0ZSgpOworICAgICAgICAgICAgICAgIG5ld1N0
eWxlLT5pbmhlcml0RnJvbShwc2V1ZG9FbGVtZW50U3R5bGUpOworICAgICAgICAgICAgICAgIG5l
d1N0eWxlLT5zZXREaXNwbGF5KGN1cnItPnN0eWxlKCktPmRpc3BsYXkoKSk7CisgICAgICAgICAg
ICAgICAgbmV3U3R5bGUtPnNldFN0eWxlVHlwZShjdXJyLT5zdHlsZSgpLT5zdHlsZVR5cGUoKSk7
CisgICAgICAgICAgICAgICAgY3Vyci0+c2V0U3R5bGUobmV3U3R5bGUpOworICAgICAgICAgICAg
ICAgIGN1cnIgPSBjdXJyLT5wYXJlbnQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisg
ICAgICAgIC8vIE5vdGUgdGhhdCBpZiB3ZSBldmVyIHN1cHBvcnQgYWRkaXRpb25hbCB0eXBlcyBv
ZiBnZW5lcmF0ZWQgY29udGVudCAod2hpY2ggc2hvdWxkIGJlIHdheSBvZmYKKyAgICAgICAgLy8g
aW4gdGhlIGZ1dHVyZSksIHRoaXMgY29kZSB3aWxsIG5lZWQgdG8gYmUgcGF0Y2hlZC4KKyAgICAg
ICAgZm9yIChSZW5kZXJPYmplY3QqIGdlbkNoaWxkID0gYmVmb3JlQWZ0ZXJQYXJlbnQtPmZpcnN0
Q2hpbGQoKTsgZ2VuQ2hpbGQ7IGdlbkNoaWxkID0gZ2VuQ2hpbGQtPm5leHRTaWJsaW5nKCkpIHsK
KyAgICAgICAgICAgIGlmIChnZW5DaGlsZC0+aXNUZXh0KCkpCisgICAgICAgICAgICAgICAgLy8g
R2VuZXJhdGVkIHRleHQgY29udGVudCBpcyBhIGNoaWxkIHdob3NlIHN0eWxlIGFsc28gbmVlZHMg
dG8gYmUgc2V0IHRvIHRoZSBwc2V1ZG8tZWxlbWVudCBzdHlsZS4KKyAgICAgICAgICAgICAgICBn
ZW5DaGlsZC0+c2V0U3R5bGUocHNldWRvRWxlbWVudFN0eWxlKTsKKyAgICAgICAgICAgIGVsc2Ug
aWYgKGdlbkNoaWxkLT5pc0ltYWdlKCkpIHsKKyAgICAgICAgICAgICAgICAvLyBJbWFnZXMgZ2V0
IGFuIGVtcHR5IHN0eWxlIHRoYXQgaW5oZXJpdHMgZnJvbSB0aGUgcHNldWRvLgorICAgICAgICAg
ICAgICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gc3R5bGUgPSBSZW5kZXJTdHlsZTo6Y3JlYXRlKCk7
CisgICAgICAgICAgICAgICAgc3R5bGUtPmluaGVyaXRGcm9tKHBzZXVkb0VsZW1lbnRTdHlsZSk7
CisgICAgICAgICAgICAgICAgZ2VuQ2hpbGQtPnNldFN0eWxlKHN0eWxlLnJlbGVhc2UoKSk7Cisg
ICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIFJlbmRlckxpc3RJdGVtIG1h
eSBpbnNlcnQgYSBsaXN0IG1hcmtlciBoZXJlLiBXZSBkbyBub3QgbmVlZCB0byBjYXJlIGFib3V0
IHRoaXMgY2FzZS4KKyAgICAgICAgICAgICAgICAvLyBPdGhlcndpc2UsIGdlbkNoaWxkIG11c3Qg
YmUgYSBmaXJzdC1sZXR0ZXIgY29udGFpbmVyLiB1cGRhdGVGaXJzdExldHRlcigpIHdpbGwgdGFr
ZSBjYXJlIG9mIGl0LgorICAgICAgICAgICAgICAgIEFTU0VSVChnZW5DaGlsZC0+aXNMaXN0TWFy
a2VyKCkgfHwgZ2VuQ2hpbGQtPnN0eWxlKCktPnN0eWxlVHlwZSgpID09IEZJUlNUX0xFVFRFUik7
CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CisKK3N0YXRpYyBSZW5kZXJPYmpl
Y3QqIGNyZWF0ZVJlbmRlckZvckJlZm9yZUFmdGVyQ29udGVudChSZW5kZXJPYmplY3QqIG93bmVy
LCBjb25zdCBDb250ZW50RGF0YSogY29udGVudCwgUmVuZGVyU3R5bGUqIHBzZXVkb0VsZW1lbnRT
dHlsZSkKK3sKKyAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gMDsKKyAgICBzd2l0Y2ggKGNv
bnRlbnQtPnR5cGUoKSkgeworICAgIGNhc2UgQ09OVEVOVF9OT05FOgorICAgICAgICBicmVhazsK
KyAgICBjYXNlIENPTlRFTlRfVEVYVDoKKyAgICAgICAgcmVuZGVyZXIgPSBuZXcgKG93bmVyLT5y
ZW5kZXJBcmVuYSgpKSBSZW5kZXJUZXh0RnJhZ21lbnQob3duZXItPmRvY3VtZW50KCkgLyogYW5v
bnltb3VzIG9iamVjdCAqLywgc3RhdGljX2Nhc3Q8Y29uc3QgVGV4dENvbnRlbnREYXRhKj4oY29u
dGVudCktPnRleHQoKS5pbXBsKCkpOworICAgICAgICByZW5kZXJlci0+c2V0U3R5bGUocHNldWRv
RWxlbWVudFN0eWxlKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDT05URU5UX09CSkVDVDog
eworICAgICAgICBSZW5kZXJJbWFnZSogaW1hZ2UgPSBuZXcgKG93bmVyLT5yZW5kZXJBcmVuYSgp
KSBSZW5kZXJJbWFnZShvd25lci0+ZG9jdW1lbnQoKSk7IC8vIGFub255bW91cyBvYmplY3QKKyAg
ICAgICAgUmVmUHRyPFJlbmRlclN0eWxlPiBzdHlsZSA9IFJlbmRlclN0eWxlOjpjcmVhdGUoKTsK
KyAgICAgICAgc3R5bGUtPmluaGVyaXRGcm9tKHBzZXVkb0VsZW1lbnRTdHlsZSk7CisgICAgICAg
IGltYWdlLT5zZXRTdHlsZShzdHlsZS5yZWxlYXNlKCkpOworICAgICAgICBpZiAoY29uc3QgU3R5
bGVJbWFnZSogc3R5bGVJbWFnZSA9IHN0YXRpY19jYXN0PGNvbnN0IEltYWdlQ29udGVudERhdGEq
Pihjb250ZW50KS0+aW1hZ2UoKSkKKyAgICAgICAgICAgIGltYWdlLT5zZXRJbWFnZVJlc291cmNl
KFJlbmRlckltYWdlUmVzb3VyY2VTdHlsZUltYWdlOjpjcmVhdGUoY29uc3RfY2FzdDxTdHlsZUlt
YWdlKj4oc3R5bGVJbWFnZSkpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgaW1hZ2UtPnNl
dEltYWdlUmVzb3VyY2UoUmVuZGVySW1hZ2VSZXNvdXJjZTo6Y3JlYXRlKCkpOworICAgICAgICBy
ZW5kZXJlciA9IGltYWdlOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBDT05URU5U
X0NPVU5URVI6CisgICAgICAgIHJlbmRlcmVyID0gbmV3IChvd25lci0+cmVuZGVyQXJlbmEoKSkg
UmVuZGVyQ291bnRlcihvd25lci0+ZG9jdW1lbnQoKSwgKnN0YXRpY19jYXN0PGNvbnN0IENvdW50
ZXJDb250ZW50RGF0YSo+KGNvbnRlbnQpLT5jb3VudGVyKCkpOworICAgICAgICByZW5kZXJlci0+
c2V0U3R5bGUocHNldWRvRWxlbWVudFN0eWxlKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBD
T05URU5UX1FVT1RFOgorICAgICAgICByZW5kZXJlciA9IG5ldyAob3duZXItPnJlbmRlckFyZW5h
KCkpIFJlbmRlclF1b3RlKG93bmVyLT5kb2N1bWVudCgpLCBzdGF0aWNfY2FzdDxjb25zdCBRdW90
ZUNvbnRlbnREYXRhKj4oY29udGVudCktPnF1b3RlKCkpOworICAgICAgICByZW5kZXJlci0+c2V0
U3R5bGUocHNldWRvRWxlbWVudFN0eWxlKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHJl
dHVybiByZW5kZXJlcjsKK30KKwogdm9pZCBSZW5kZXJPYmplY3RDaGlsZExpc3Q6OnVwZGF0ZUJl
Zm9yZUFmdGVyQ29udGVudChSZW5kZXJPYmplY3QqIG93bmVyLCBQc2V1ZG9JZCB0eXBlLCBjb25z
dCBSZW5kZXJPYmplY3QqIHN0eWxlZE9iamVjdCkKIHsKICAgICAvLyBEb3VibGUgY2hlY2sgdGhh
dCB0aGUgZG9jdW1lbnQgZGlkIGluIGZhY3QgdXNlIGdlbmVyYXRlZCBjb250ZW50IHJ1bGVzLiAg
T3RoZXJ3aXNlIHdlIHNob3VsZCBub3QgaGF2ZSBiZWVuIGNhbGxlZC4KQEAgLTQxNCw0OSArNDk1
LDcgQEAgdm9pZCBSZW5kZXJPYmplY3RDaGlsZExpc3Q6OnVwZGF0ZUJlZm9yZUFmdGVyQ29udGVu
dChSZW5kZXJPYmplY3QqIG93bmVyLCBQc2V1ZG8KICAgICAgICAgcHNldWRvRWxlbWVudFN0eWxl
LT5zZXREaXNwbGF5KElOTElORSk7CiAKICAgICBpZiAob2xkQ29udGVudFByZXNlbnQpIHsKLSAg
ICAgICAgaWYgKGNoaWxkICYmIGNoaWxkLT5zdHlsZSgpLT5zdHlsZVR5cGUoKSA9PSB0eXBlKSB7
Ci0gICAgICAgICAgICAvLyBXZSBoYXZlIGdlbmVyYXRlZCBjb250ZW50IHByZXNlbnQgc3RpbGwu
ICBXZSB3YW50IHRvIHdhbGsgdGhpcyBjb250ZW50IGFuZCB1cGRhdGUgb3VyCi0gICAgICAgICAg
ICAvLyBzdHlsZSBpbmZvcm1hdGlvbiB3aXRoIHRoZSBuZXcgcHNldWRvLWVsZW1lbnQgc3R5bGUu
Ci0gICAgICAgICAgICBjaGlsZC0+c2V0U3R5bGUocHNldWRvRWxlbWVudFN0eWxlKTsKLQotICAg
ICAgICAgICAgUmVuZGVyT2JqZWN0KiBiZWZvcmVBZnRlclBhcmVudCA9IGZpbmRCZWZvcmVBZnRl
clBhcmVudChjaGlsZCk7Ci0gICAgICAgICAgICBpZiAoIWJlZm9yZUFmdGVyUGFyZW50KQotICAg
ICAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAgICAgLy8gV2hlbiBiZWZvcmVBZnRlclBh
cmVudCBpcyBub3QgZXF1YWwgdG8gY2hpbGQgKGUuZy4gaW4gdGFibGVzKSwKLSAgICAgICAgICAg
IC8vIHdlIG5lZWQgdG8gY3JlYXRlIG5ldyBzdHlsZXMgaW5oZXJpdGluZyBmcm9tIHBzZXVkb0Vs
ZW1lbnRTdHlsZSAKLSAgICAgICAgICAgIC8vIG9uIGFsbCB0aGUgaW50ZXJtZWRpYXRlIHBhcmVu
dHMgKGxlYXZpbmcgdGhlaXIgZGlzcGxheSBzYW1lKS4KLSAgICAgICAgICAgIGlmIChiZWZvcmVB
ZnRlclBhcmVudCAhPSBjaGlsZCkgewotICAgICAgICAgICAgICAgIFJlbmRlck9iamVjdCogY3Vy
ciA9IGJlZm9yZUFmdGVyUGFyZW50OwotICAgICAgICAgICAgICAgIHdoaWxlIChjdXJyICYmIGN1
cnIgIT0gY2hpbGQpIHsKLSAgICAgICAgICAgICAgICAgICAgQVNTRVJUKGN1cnItPmlzQW5vbnlt
b3VzKCkpOwotICAgICAgICAgICAgICAgICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IG5ld1N0eWxl
ID0gUmVuZGVyU3R5bGU6OmNyZWF0ZSgpOwotICAgICAgICAgICAgICAgICAgICBuZXdTdHlsZS0+
aW5oZXJpdEZyb20ocHNldWRvRWxlbWVudFN0eWxlKTsKLSAgICAgICAgICAgICAgICAgICAgbmV3
U3R5bGUtPnNldERpc3BsYXkoY3Vyci0+c3R5bGUoKS0+ZGlzcGxheSgpKTsKLSAgICAgICAgICAg
ICAgICAgICAgbmV3U3R5bGUtPnNldFN0eWxlVHlwZShjdXJyLT5zdHlsZSgpLT5zdHlsZVR5cGUo
KSk7Ci0gICAgICAgICAgICAgICAgICAgIGN1cnItPnNldFN0eWxlKG5ld1N0eWxlKTsKLSAgICAg
ICAgICAgICAgICAgICAgY3VyciA9IGN1cnItPnBhcmVudCgpOwotICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLy8gTm90ZSB0aGF0IGlmIHdlIGV2ZXIgc3Vw
cG9ydCBhZGRpdGlvbmFsIHR5cGVzIG9mIGdlbmVyYXRlZCBjb250ZW50ICh3aGljaCBzaG91bGQg
YmUgd2F5IG9mZgotICAgICAgICAgICAgLy8gaW4gdGhlIGZ1dHVyZSksIHRoaXMgY29kZSB3aWxs
IG5lZWQgdG8gYmUgcGF0Y2hlZC4KLSAgICAgICAgICAgIGZvciAoUmVuZGVyT2JqZWN0KiBnZW5D
aGlsZCA9IGJlZm9yZUFmdGVyUGFyZW50LT5maXJzdENoaWxkKCk7IGdlbkNoaWxkOyBnZW5DaGls
ZCA9IGdlbkNoaWxkLT5uZXh0U2libGluZygpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGdlbkNo
aWxkLT5pc1RleHQoKSkKLSAgICAgICAgICAgICAgICAgICAgLy8gR2VuZXJhdGVkIHRleHQgY29u
dGVudCBpcyBhIGNoaWxkIHdob3NlIHN0eWxlIGFsc28gbmVlZHMgdG8gYmUgc2V0IHRvIHRoZSBw
c2V1ZG8tZWxlbWVudCBzdHlsZS4KLSAgICAgICAgICAgICAgICAgICAgZ2VuQ2hpbGQtPnNldFN0
eWxlKHBzZXVkb0VsZW1lbnRTdHlsZSk7Ci0gICAgICAgICAgICAgICAgZWxzZSBpZiAoZ2VuQ2hp
bGQtPmlzSW1hZ2UoKSkgewotICAgICAgICAgICAgICAgICAgICAvLyBJbWFnZXMgZ2V0IGFuIGVt
cHR5IHN0eWxlIHRoYXQgaW5oZXJpdHMgZnJvbSB0aGUgcHNldWRvLgotICAgICAgICAgICAgICAg
ICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IHN0eWxlID0gUmVuZGVyU3R5bGU6OmNyZWF0ZSgpOwot
ICAgICAgICAgICAgICAgICAgICBzdHlsZS0+aW5oZXJpdEZyb20ocHNldWRvRWxlbWVudFN0eWxl
KTsKLSAgICAgICAgICAgICAgICAgICAgZ2VuQ2hpbGQtPnNldFN0eWxlKHN0eWxlLnJlbGVhc2Uo
KSk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gUmVu
ZGVyTGlzdEl0ZW0gbWF5IGluc2VydCBhIGxpc3QgbWFya2VyIGhlcmUuIFdlIGRvIG5vdCBuZWVk
IHRvIGNhcmUgYWJvdXQgdGhpcyBjYXNlLgotICAgICAgICAgICAgICAgICAgICAvLyBPdGhlcndp
c2UsIGdlbkNoaWxkIG11c3QgYmUgYSBmaXJzdC1sZXR0ZXIgY29udGFpbmVyLiB1cGRhdGVGaXJz
dExldHRlcigpIHdpbGwgdGFrZSBjYXJlIG9mIGl0LgotICAgICAgICAgICAgICAgICAgICBBU1NF
UlQoZ2VuQ2hpbGQtPmlzTGlzdE1hcmtlcigpIHx8IGdlbkNoaWxkLT5zdHlsZSgpLT5zdHlsZVR5
cGUoKSA9PSBGSVJTVF9MRVRURVIpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0K
LSAgICAgICAgfQorICAgICAgICB1cGRhdGVCZWZvcmVBZnRlclN0eWxlKGNoaWxkLCB0eXBlLCBw
c2V1ZG9FbGVtZW50U3R5bGUpOwogICAgICAgICByZXR1cm47IC8vIFdlJ3ZlIHVwZGF0ZWQgdGhl
IGdlbmVyYXRlZCBjb250ZW50LiBUaGF0J3MgYWxsIHdlIG5lZWRlZCB0byBkby4KICAgICB9CiAg
ICAgCkBAIC00NzMsMzggKzUxMiwxMCBAQCB2b2lkIFJlbmRlck9iamVjdENoaWxkTGlzdDo6dXBk
YXRlQmVmb3JlQWZ0ZXJDb250ZW50KFJlbmRlck9iamVjdCogb3duZXIsIFBzZXVkbwogICAgIC8v
IEdlbmVyYXRlZCBjb250ZW50IGNvbnNpc3RzIG9mIGEgc2luZ2xlIGNvbnRhaW5lciB0aGF0IGhv
dXNlcyBtdWx0aXBsZSBjaGlsZHJlbiAoc3BlY2lmaWVkCiAgICAgLy8gYnkgdGhlIGNvbnRlbnQg
cHJvcGVydHkpLiAgVGhpcyBnZW5lcmF0ZWQgY29udGVudCBjb250YWluZXIgZ2V0cyB0aGUgcHNl
dWRvLWVsZW1lbnQgc3R5bGUgc2V0IG9uIGl0LgogICAgIFJlbmRlck9iamVjdCogZ2VuZXJhdGVk
Q29udGVudENvbnRhaW5lciA9IDA7Ci0gICAgCisKICAgICAvLyBXYWxrIG91ciBsaXN0IG9mIGdl
bmVyYXRlZCBjb250ZW50IGFuZCBjcmVhdGUgcmVuZGVyIG9iamVjdHMgZm9yIGVhY2guCiAgICAg
Zm9yIChjb25zdCBDb250ZW50RGF0YSogY29udGVudCA9IHBzZXVkb0VsZW1lbnRTdHlsZS0+Y29u
dGVudERhdGEoKTsgY29udGVudDsgY29udGVudCA9IGNvbnRlbnQtPm5leHQoKSkgewotICAgICAg
ICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gMDsKLSAgICAgICAgc3dpdGNoIChjb250ZW50LT50
eXBlKCkpIHsKLSAgICAgICAgICAgIGNhc2UgQ09OVEVOVF9OT05FOgotICAgICAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICAgICAgY2FzZSBDT05URU5UX1RFWFQ6Ci0gICAgICAgICAgICAgICAg
cmVuZGVyZXIgPSBuZXcgKG93bmVyLT5yZW5kZXJBcmVuYSgpKSBSZW5kZXJUZXh0RnJhZ21lbnQo
b3duZXItPmRvY3VtZW50KCkgLyogYW5vbnltb3VzIG9iamVjdCAqLywgc3RhdGljX2Nhc3Q8Y29u
c3QgVGV4dENvbnRlbnREYXRhKj4oY29udGVudCktPnRleHQoKS5pbXBsKCkpOwotICAgICAgICAg
ICAgICAgIHJlbmRlcmVyLT5zZXRTdHlsZShwc2V1ZG9FbGVtZW50U3R5bGUpOwotICAgICAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBDT05URU5UX09CSkVDVDogewotICAgICAg
ICAgICAgICAgIFJlbmRlckltYWdlKiBpbWFnZSA9IG5ldyAob3duZXItPnJlbmRlckFyZW5hKCkp
IFJlbmRlckltYWdlKG93bmVyLT5kb2N1bWVudCgpKTsgLy8gYW5vbnltb3VzIG9iamVjdAotICAg
ICAgICAgICAgICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gc3R5bGUgPSBSZW5kZXJTdHlsZTo6Y3Jl
YXRlKCk7Ci0gICAgICAgICAgICAgICAgc3R5bGUtPmluaGVyaXRGcm9tKHBzZXVkb0VsZW1lbnRT
dHlsZSk7Ci0gICAgICAgICAgICAgICAgaW1hZ2UtPnNldFN0eWxlKHN0eWxlLnJlbGVhc2UoKSk7
Ci0gICAgICAgICAgICAgICAgaWYgKGNvbnN0IFN0eWxlSW1hZ2UqIHN0eWxlSW1hZ2UgPSBzdGF0
aWNfY2FzdDxjb25zdCBJbWFnZUNvbnRlbnREYXRhKj4oY29udGVudCktPmltYWdlKCkpCi0gICAg
ICAgICAgICAgICAgICAgIGltYWdlLT5zZXRJbWFnZVJlc291cmNlKFJlbmRlckltYWdlUmVzb3Vy
Y2VTdHlsZUltYWdlOjpjcmVhdGUoY29uc3RfY2FzdDxTdHlsZUltYWdlKj4oc3R5bGVJbWFnZSkp
KTsKLSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIGltYWdlLT5zZXRJ
bWFnZVJlc291cmNlKFJlbmRlckltYWdlUmVzb3VyY2U6OmNyZWF0ZSgpKTsKLSAgICAgICAgICAg
ICAgICByZW5kZXJlciA9IGltYWdlOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAg
ICAgfQotICAgICAgICBjYXNlIENPTlRFTlRfQ09VTlRFUjoKLSAgICAgICAgICAgIHJlbmRlcmVy
ID0gbmV3IChvd25lci0+cmVuZGVyQXJlbmEoKSkgUmVuZGVyQ291bnRlcihvd25lci0+ZG9jdW1l
bnQoKSwgKnN0YXRpY19jYXN0PGNvbnN0IENvdW50ZXJDb250ZW50RGF0YSo+KGNvbnRlbnQpLT5j
b3VudGVyKCkpOwotICAgICAgICAgICAgcmVuZGVyZXItPnNldFN0eWxlKHBzZXVkb0VsZW1lbnRT
dHlsZSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDT05URU5UX1FVT1RFOgot
ICAgICAgICAgICAgcmVuZGVyZXIgPSBuZXcgKG93bmVyLT5yZW5kZXJBcmVuYSgpKSBSZW5kZXJR
dW90ZShvd25lci0+ZG9jdW1lbnQoKSwgc3RhdGljX2Nhc3Q8Y29uc3QgUXVvdGVDb250ZW50RGF0
YSo+KGNvbnRlbnQpLT5xdW90ZSgpKTsKLSAgICAgICAgICAgIHJlbmRlcmVyLT5zZXRTdHlsZShw
c2V1ZG9FbGVtZW50U3R5bGUpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KKyAgICAg
ICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9ICBjcmVhdGVSZW5kZXJGb3JCZWZvcmVBZnRlckNv
bnRlbnQob3duZXIsIGNvbnRlbnQsIHBzZXVkb0VsZW1lbnRTdHlsZSk7CiAKICAgICAgICAgaWYg
KHJlbmRlcmVyKSB7CiAgICAgICAgICAgICBpZiAoIWdlbmVyYXRlZENvbnRlbnRDb250YWluZXIp
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3RDaGls
ZExpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3RDaGlsZExpc3Qu
aAppbmRleCBjOGZjOTc4Li5jZmU5MDI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck9iamVjdENoaWxkTGlzdC5oCkBAIC0zMiw2ICszMiw3IEBACiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIFJlbmRlck9iamVjdDsKK2NsYXNzIFJlbmRlclN0eWxlOwogCiBj
bGFzcyBSZW5kZXJPYmplY3RDaGlsZExpc3QgewogcHVibGljOgpAQCAtNjAsNiArNjEsOCBAQCBw
dWJsaWM6CiAgICAgUmVuZGVyT2JqZWN0KiBhZnRlclBzZXVkb0VsZW1lbnRSZW5kZXJlcihjb25z
dCBSZW5kZXJPYmplY3QqIG93bmVyKSBjb25zdDsKIAogcHJpdmF0ZToKKyAgICB2b2lkIHVwZGF0
ZUJlZm9yZUFmdGVyU3R5bGUoUmVuZGVyT2JqZWN0KiBjaGlsZCwgUHNldWRvSWQgdHlwZSwgUmVu
ZGVyU3R5bGUqIHBzZXVkb0VsZW1lbnRTdHlsZSk7CisKICAgICBSZW5kZXJPYmplY3QqIG1fZmly
c3RDaGlsZDsKICAgICBSZW5kZXJPYmplY3QqIG1fbGFzdENoaWxkOwogfTsKLS0gCjEuNy41LjQK
Cg==
</data>
<flag name="review"
          id="134778"
          type_id="1"
          status="+"
          setter="jchaffraix"
    />
    <flag name="commit-queue"
          id="135005"
          type_id="3"
          status="-"
          setter="jchaffraix"
    />
          </attachment>
      

    </bug>

</bugzilla>