<?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>79901</bug_id>
          
          <creation_ts>2012-02-29 03:11:28 -0800</creation_ts>
          <short_desc>Refactoring: HTMLContentSelector should be InsertionPoint-aware</short_desc>
          <delta_ts>2012-02-29 22:39:50 -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>DOM</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>
          
          <blocked>78596</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Shinya Kawanaka">shinyak</reporter>
          <assigned_to name="Shinya Kawanaka">shinyak</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>dominicc</cc>
    
    <cc>hayato</cc>
    
    <cc>morrita</cc>
    
    <cc>rolandsteiner</cc>
    
    <cc>shinyak</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>567549</commentid>
    <comment_count>0</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-29 03:11:28 -0800</bug_when>
    <thetext>Currently it only consider HTMLContentElement.
It should consider InsertionPoint instead of HTMLContentElement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567554</commentid>
    <comment_count>1</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-29 03:16:41 -0800</bug_when>
    <thetext>I want to use HTMLContentSelector in &lt;shadow&gt; element for selecting the rest of light elements.

To support this, If HTMLContentSelector::select takes non HTMLContentElement InsertionPoint, we want to choose all of the rest light children.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567558</commentid>
    <comment_count>2</comment_count>
      <attachid>129433</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-29 03:20:59 -0800</bug_when>
    <thetext>Created attachment 129433
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>568150</commentid>
    <comment_count>3</comment_count>
      <attachid>129433</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-02-29 17:43:09 -0800</bug_when>
    <thetext>Comment on attachment 129433
Patch

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

&gt; Source/WebCore/html/shadow/HTMLContentSelector.cpp:117
&gt; +        query = adoptPtr(new ContentSelectorQuery(toHTMLContentElement(insertionPoint)));

I don&apos;t want to allocate this on heap since this will be hit for each attach()
even though we do it while following code.
Also, I hope these decisions being done by ContentSelectorQuery to make HTMLContentSelector element-type agnostic.

I feel that we should also get rid of such heap allocation. But it&apos;s another homework.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>568206</commentid>
    <comment_count>4</comment_count>
      <attachid>129608</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-29 18:33:51 -0800</bug_when>
    <thetext>Created attachment 129608
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>568315</commentid>
    <comment_count>5</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-29 21:27:50 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 129433 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=129433&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/shadow/HTMLContentSelector.cpp:117
&gt; &gt; +        query = adoptPtr(new ContentSelectorQuery(toHTMLContentElement(insertionPoint)));
&gt; 
&gt; I don&apos;t want to allocate this on heap since this will be hit for each attach()
&gt; even though we do it while following code.
&gt; Also, I hope these decisions being done by ContentSelectorQuery to make HTMLContentSelector element-type agnostic.

Fixed this issue.

&gt; 
&gt; I feel that we should also get rid of such heap allocation. But it&apos;s another homework.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>568323</commentid>
    <comment_count>6</comment_count>
      <attachid>129608</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-02-29 21:36:28 -0800</bug_when>
    <thetext>Comment on attachment 129608
Patch

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

&gt; Source/WebCore/html/shadow/ContentSelectorQuery.cpp:43
&gt; +    if (!insertionPoint-&gt;isContentElement()) {

Having these explicit type check is unfortunate.
Can you pull thee stuff up to InsertionPoint to make this code path more straight?
My feeling is that we can just pull select() up and return empty or null in HTMLShadowElement. Or we mihght able to add some polymorphic method to InsertionPoint.

&gt; Source/WebCore/html/shadow/ContentSelectorQuery.cpp:76
&gt; +    if (!m_insertionPoint-&gt;isContentElement())

Ditto about type check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>568339</commentid>
    <comment_count>7</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-29 21:59:21 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 129608 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=129608&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/shadow/ContentSelectorQuery.cpp:43
&gt; &gt; +    if (!insertionPoint-&gt;isContentElement()) {
&gt; 
&gt; Having these explicit type check is unfortunate.
&gt; Can you pull thee stuff up to InsertionPoint to make this code path more straight?
&gt; My feeling is that we can just pull select() up and return empty or null in HTMLShadowElement. Or we mihght able to add some polymorphic method to InsertionPoint.
&gt; 
&gt; &gt; Source/WebCore/html/shadow/ContentSelectorQuery.cpp:76
&gt; &gt; +    if (!m_insertionPoint-&gt;isContentElement())
&gt; 
&gt; Ditto about type check.

I agree. I&apos;ll update the patch soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>568351</commentid>
    <comment_count>8</comment_count>
      <attachid>129633</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-29 22:21:04 -0800</bug_when>
    <thetext>Created attachment 129633
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>568358</commentid>
    <comment_count>9</comment_count>
      <attachid>129633</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-02-29 22:34:11 -0800</bug_when>
    <thetext>Comment on attachment 129633
Patch

Looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>568360</commentid>
    <comment_count>10</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-29 22:39:50 -0800</bug_when>
    <thetext>Committed r109313: &lt;http://trac.webkit.org/changeset/109313&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129433</attachid>
            <date>2012-02-29 03:20:59 -0800</date>
            <delta_ts>2012-02-29 18:33:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79901-20120229202056.patch</filename>
            <type>text/plain</type>
            <size>6263</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5MTkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjhjZmNlODhlYWI0YmQ1
NTBmZjcxY2M2YTI2ZDZmNDljYWQ4ZmUzMC4uNDgzOTZiNGUwNzIxYzQwYmZjNWM5MmI2MTdiM2Yy
ZmU0Y2U0NjRhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTAyLTI5ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4gCisKKyAgICAgICAgUmVmYWN0b3Jp
bmc6IEhUTUxDb250ZW50U2VsZWN0b3Igc2hvdWxkIGJlIEluc2VydGlvblBvaW50LWF3YXJlLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzk5MDEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBIVE1MQ29udGVu
dFNlbGVjdG9yIHRvb2sgSFRNTENvbnRlbnRFbGVtZW50LCBidXQgdGhpcyBwYXRjaCBjaGFuZ2Vz
IGl0IHRha2VzIEluc2VydGlvblBvaW50IGluc3RlYWQuCisgICAgICAgIElmIEluc2VydGlvblBv
aW50IGlzIG5vdCBIVE1MQ29udGVudEVsZW1lbnQsIEhUTUxDb250ZW50U2VsZWN0b3Igd2lsbCBz
ZWxlY3RzIHRoZSByZXN0IG9mIGxpZ2h0IGNoaWxkcmVuLgorCisgICAgICAgICogZG9tL1NoYWRv
d1Jvb3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9vdDo6aGFzSW5zZXJ0aW9uUG9p
bnQpOgorICAgICAgICAqIGRvbS9TaGFkb3dSb290Lmg6CisgICAgICAgIChTaGFkb3dSb290KToK
KyAgICAgICAgKiBkb20vU2hhZG93VHJlZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dU
cmVlOjpuZWVkc1JlYXR0YWNoSG9zdENoaWxkcmVuQW5kU2hhZG93KToKKyAgICAgICAgKFdlYkNv
cmU6OlNoYWRvd1RyZWU6Omhvc3RDaGlsZHJlbkNoYW5nZWQpOgorICAgICAgICAqIGh0bWwvc2hh
ZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29udGVu
dEVsZW1lbnQ6OmRldGFjaCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRTZWxl
Y3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29udGVudFNlbGVjdG9yOjpzZWxlY3Qp
OgorICAgICAgICAqIGh0bWwvc2hhZG93L0hUTUxDb250ZW50U2VsZWN0b3IuaDoKKyAgICAgICAg
KEhUTUxDb250ZW50U2VsZWN0b3IpOgorCiAyMDEyLTAyLTI5ICBTaGlueWEgS2F3YW5ha2EgIDxz
aGlueWFrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBNZXRob2RzIGluIFNoYWRvd1RyZWUgYW5k
IFRyZWVTY29wZUFkb3B0ZXIgc2hvdWxkIGJlIG11bHRpcGxlIHNoYWRvdyByb290cyBhd2FyZS4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAppbmRleCBmNzY4ZTc3M2RiMjBiYWYzOTgwMjkwYTlk
MDcwNDUxNjcyYjJhZWIzLi4yNTUxYjNlY2I2ZmIxMGZhOTVlODhkM2NkMjdiZjA5ZTFmMGUwOGU1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCkBAIC0xNjQsMTAgKzE2NCwxMCBAQCBTaGFk
b3dUcmVlKiBTaGFkb3dSb290Ojp0cmVlKCkgY29uc3QKICAgICByZXR1cm4gMDsKIH0KIAotYm9v
bCBTaGFkb3dSb290OjpoYXNDb250ZW50RWxlbWVudCgpIGNvbnN0Citib29sIFNoYWRvd1Jvb3Q6
Omhhc0luc2VydGlvblBvaW50KCkgY29uc3QKIHsKICAgICBmb3IgKE5vZGUqIG4gPSBmaXJzdENo
aWxkKCk7IG47IG4gPSBuLT50cmF2ZXJzZU5leHROb2RlKHRoaXMpKSB7Ci0gICAgICAgIGlmIChu
LT5pc0NvbnRlbnRFbGVtZW50KCkpCisgICAgICAgIGlmIChpc0luc2VydGlvblBvaW50KG4pKQog
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2hhZG93Um9vdC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaApp
bmRleCBiN2JhNzBjZDU5ODc1OWM2M2ZkM2QxZTg0NWMwNmNmMDgxNDJlZjE0Li44YWUxYmZjMzkw
MjY5ZmRjNDc5YjViODczMjYxODhmY2QwNTg3MzNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2hhZG93Um9vdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgK
QEAgLTc2LDcgKzc2LDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNZb3VuZ2VzdCgpIGNvbnN0IHsg
cmV0dXJuICF5b3VuZ2VyU2hhZG93Um9vdCgpOyB9CiAgICAgYm9vbCBpc09sZGVzdCgpIGNvbnN0
IHsgcmV0dXJuICFvbGRlclNoYWRvd1Jvb3QoKTsgfQogCi0gICAgYm9vbCBoYXNDb250ZW50RWxl
bWVudCgpIGNvbnN0OworICAgIGJvb2wgaGFzSW5zZXJ0aW9uUG9pbnQoKSBjb25zdDsKIAogcHJp
dmF0ZToKICAgICBTaGFkb3dSb290KERvY3VtZW50Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2hhZG93VHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93VHJlZS5j
cHAKaW5kZXggMzUwNjc4NmY4MzRiZDFmMWVmMjMyYjI3NjFkNGMxZmZmYTU1MTUxYS4uN2VmM2Uy
NTI5M2E0NWUwMmNiODc3NDYyNTE2ZDVjM2RmYTRjYzY5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL1NoYWRvd1RyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dU
cmVlLmNwcApAQCAtMjUyLDE0ICsyNTIsMTQgQEAgdm9pZCBTaGFkb3dUcmVlOjpyZWNhbGNTaGFk
b3dUcmVlU3R5bGUoTm9kZTo6U3R5bGVDaGFuZ2UgY2hhbmdlKQogCiBib29sIFNoYWRvd1RyZWU6
Om5lZWRzUmVhdHRhY2hIb3N0Q2hpbGRyZW5BbmRTaGFkb3coKQogewotICAgIHJldHVybiBtX25l
ZWRzUmVjYWxjdWxhdGVDb250ZW50IHx8ICh5b3VuZ2VzdFNoYWRvd1Jvb3QoKSAmJiB5b3VuZ2Vz
dFNoYWRvd1Jvb3QoKS0+aGFzQ29udGVudEVsZW1lbnQoKSk7CisgICAgcmV0dXJuIG1fbmVlZHNS
ZWNhbGN1bGF0ZUNvbnRlbnQgfHwgKHlvdW5nZXN0U2hhZG93Um9vdCgpICYmIHlvdW5nZXN0U2hh
ZG93Um9vdCgpLT5oYXNJbnNlcnRpb25Qb2ludCgpKTsKIH0KIAogdm9pZCBTaGFkb3dUcmVlOjpo
b3N0Q2hpbGRyZW5DaGFuZ2VkKCkKIHsKICAgICBBU1NFUlQoeW91bmdlc3RTaGFkb3dSb290KCkp
OwogCi0gICAgaWYgKCF5b3VuZ2VzdFNoYWRvd1Jvb3QoKS0+aGFzQ29udGVudEVsZW1lbnQoKSkK
KyAgICBpZiAoIXlvdW5nZXN0U2hhZG93Um9vdCgpLT5oYXNJbnNlcnRpb25Qb2ludCgpKQogICAg
ICAgICByZXR1cm47CiAKICAgICAvLyBUaGlzIHJlc3VsdHMgaW4gZm9yY2VkIGRldGFjaGluZy9h
dHRhY2hpbmcgb2YgdGhlIHNoYWRvdyByZW5kZXIgdHJlZS4gU2VlIFNoYWRvd1Jvb3Q6OnJlY2Fs
Y1N0eWxlKCkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29u
dGVudEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRF
bGVtZW50LmNwcAppbmRleCBlMDU4YWZhYTEwODQ3OTNhY2ZlMWM0OWFiYTU2YTljMmU3MjJkNzc1
Li41ZjZkNzc5MTk1OTBjMmY4MjdjZWYxZmVhYWE4N2Q4ODY5MmQ1YjljIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHAKQEAgLTk0LDcg
Kzk0LDcgQEAgdm9pZCBIVE1MQ29udGVudEVsZW1lbnQ6OmRldGFjaCgpCiAgICAgICAgICAgICBz
ZWxlY3Rvci0+dW5zZWxlY3QoJm1fc2VsZWN0aW9ucyk7CiAKICAgICAgICAgLy8gV2hlbiBjb250
ZW50IGVsZW1lbnQgaXMgZGV0YWNoZWQsIHNoYWRvdyB0cmVlIHNob3VsZCBiZSByZWNyZWF0ZWQg
dG8gcmUtY2FsY3VsYXRlIHNlbGVjdG9yIGZvcgotICAgICAgICAvLyBvdGhlciBjb250ZW50IGVs
ZW1lbnRzLgorICAgICAgICAvLyBvdGhlciBpbnNlcnRpb24gcG9pbnRzLgogICAgICAgICByb290
LT50cmVlKCktPnNldE5lZWRzUmVhdHRhY2hIb3N0Q2hpbGRyZW5BbmRTaGFkb3coKTsKICAgICB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50U2Vs
ZWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRTZWxlY3Rv
ci5jcHAKaW5kZXggNWMzMGZmNmUxNDM0ZTJhOTE3MWI1YjE5MzA2NzdiZmRkNjc2OTY3YS4uZTRl
ZGU4MGNkYzgxNGMyM2Y0OGY4MzAxZjA2MGNlNzlkODk2YjU3NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRTZWxlY3Rvci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRTZWxlY3Rvci5jcHAKQEAgLTEwOCwxOSAr
MTA4LDIyIEBAIEhUTUxDb250ZW50U2VsZWN0b3I6On5IVE1MQ29udGVudFNlbGVjdG9yKCkKICAg
ICBBU1NFUlQobV9jYW5kaWRhdGVzLmlzRW1wdHkoKSk7CiB9CiAKLXZvaWQgSFRNTENvbnRlbnRT
ZWxlY3Rvcjo6c2VsZWN0KEhUTUxDb250ZW50RWxlbWVudCogY29udGVudEVsZW1lbnQsIEhUTUxD
b250ZW50U2VsZWN0aW9uTGlzdCogc2VsZWN0aW9ucykKK3ZvaWQgSFRNTENvbnRlbnRTZWxlY3Rv
cjo6c2VsZWN0KEluc2VydGlvblBvaW50KiBpbnNlcnRpb25Qb2ludCwgSFRNTENvbnRlbnRTZWxl
Y3Rpb25MaXN0KiBzZWxlY3Rpb25zKQogewogICAgIEFTU0VSVChzZWxlY3Rpb25zLT5pc0VtcHR5
KCkpOwogCi0gICAgQ29udGVudFNlbGVjdG9yUXVlcnkgcXVlcnkoY29udGVudEVsZW1lbnQpOwor
ICAgIE93blB0cjxDb250ZW50U2VsZWN0b3JRdWVyeT4gcXVlcnk7CisgICAgaWYgKGluc2VydGlv
blBvaW50LT5pc0NvbnRlbnRFbGVtZW50KCkpCisgICAgICAgIHF1ZXJ5ID0gYWRvcHRQdHIobmV3
IENvbnRlbnRTZWxlY3RvclF1ZXJ5KHRvSFRNTENvbnRlbnRFbGVtZW50KGluc2VydGlvblBvaW50
KSkpOworCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2NhbmRpZGF0ZXMuc2l6ZSgpOyAr
K2kpIHsKICAgICAgICAgTm9kZSogY2hpbGQgPSBtX2NhbmRpZGF0ZXNbaV0uZ2V0KCk7CiAgICAg
ICAgIGlmICghY2hpbGQpCiAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgaWYgKCFxdWVy
eS5tYXRjaGVzKGNoaWxkKSkKKyAgICAgICAgaWYgKHF1ZXJ5ICYmICFxdWVyeS0+bWF0Y2hlcyhj
aGlsZCkpCiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICBSZWZQdHI8SFRNTENvbnRl
bnRTZWxlY3Rpb24+IHNlbGVjdGlvbiA9IEhUTUxDb250ZW50U2VsZWN0aW9uOjpjcmVhdGUoY29u
dGVudEVsZW1lbnQsIGNoaWxkKTsKKyAgICAgICAgUmVmUHRyPEhUTUxDb250ZW50U2VsZWN0aW9u
PiBzZWxlY3Rpb24gPSBIVE1MQ29udGVudFNlbGVjdGlvbjo6Y3JlYXRlKGluc2VydGlvblBvaW50
LCBjaGlsZCk7CiAKICAgICAgICAgc2VsZWN0aW9ucy0+YXBwZW5kKHNlbGVjdGlvbik7CiAgICAg
ICAgIG1fc2VsZWN0aW9uU2V0LmFkZChzZWxlY3Rpb24uZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRTZWxlY3Rvci5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRTZWxlY3Rvci5oCmluZGV4IDI5YmQ2MTYzZjUx
MmFiNDNkZmI1N2Y3NjEzYzdhYTc3ZDI2ZDhmNTguLjE0ZWEwNTdhMGE1ZWQ1NzQ3Y2RjYTk4OThk
MmE1ZTVmYTUzYzU4NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hU
TUxDb250ZW50U2VsZWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1M
Q29udGVudFNlbGVjdG9yLmgKQEAgLTEzMCw3ICsxMzAsNyBAQCBwdWJsaWM6CiAgICAgSFRNTENv
bnRlbnRTZWxlY3RvcigpOwogICAgIH5IVE1MQ29udGVudFNlbGVjdG9yKCk7CiAKLSAgICB2b2lk
IHNlbGVjdChIVE1MQ29udGVudEVsZW1lbnQqLCBIVE1MQ29udGVudFNlbGVjdGlvbkxpc3QqKTsK
KyAgICB2b2lkIHNlbGVjdChJbnNlcnRpb25Qb2ludCosIEhUTUxDb250ZW50U2VsZWN0aW9uTGlz
dCopOwogICAgIHZvaWQgdW5zZWxlY3QoSFRNTENvbnRlbnRTZWxlY3Rpb25MaXN0Kik7CiAgICAg
SFRNTENvbnRlbnRTZWxlY3Rpb24qIGZpbmRGb3IoTm9kZSoga2V5KSBjb25zdDsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129608</attachid>
            <date>2012-02-29 18:33:51 -0800</date>
            <delta_ts>2012-02-29 22:20:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79901-20120301113350.patch</filename>
            <type>text/plain</type>
            <size>10560</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5Mjg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTdmOGJhNmUyMTEwNmEy
ZDc0YjYxZWM3ZjA1NDkzMWZhNWQzNmZmZC4uYWQzN2RiMWM0NDgxMDc5NGMxYWFmMWVhZjRkYTVh
MmYzOGQ1ODE2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEyLTAyLTI5ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZWZhY3Rvcmlu
ZzogSFRNTENvbnRlbnRTZWxlY3RvciBzaG91bGQgYmUgSW5zZXJ0aW9uUG9pbnQtYXdhcmUuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTkwMQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENvbnRlbnRTZWxl
Y3RvclF1ZXJ5IHRvb2sgSFRNTENvbnRlbnRFbGVtZW50IGFzIGFyZ3VtZW50LCBidXQgcGF0Y2gg
Y2hhbmdlcyBpdCB0byB0YWtlIEluc2VydGlvblBvaW50IGluc3RlYWQuCisgICAgICAgIElmIElu
c2VydGlvblBvaW50IGlzIG5vdCBIVE1MQ29udGVudEVsZW1lbnQsIENvbnRlbnRTZWxlY3RvclF1
ZXJ5IHdpbGwgc2VsZWN0cyB0aGUgcmVzdCBvZiBsaWdodCBjaGlsZHJlbi4KKworICAgICAgICAq
IGRvbS9TaGFkb3dSb290LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3Q6Omhhc0lu
c2VydGlvblBvaW50KToKKyAgICAgICAgKiBkb20vU2hhZG93Um9vdC5oOgorICAgICAgICAoU2hh
ZG93Um9vdCk6CisgICAgICAgICogZG9tL1NoYWRvd1RyZWUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U2hhZG93VHJlZTo6bmVlZHNSZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdyk6CisgICAg
ICAgIChXZWJDb3JlOjpTaGFkb3dUcmVlOjpob3N0Q2hpbGRyZW5DaGFuZ2VkKToKKyAgICAgICAg
KiBodG1sL3NoYWRvdy9Db250ZW50U2VsZWN0b3JRdWVyeS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDb250ZW50U2VsZWN0b3JRdWVyeTo6Q29udGVudFNlbGVjdG9yUXVlcnkpOgorICAgICAgICAo
V2ViQ29yZTo6Q29udGVudFNlbGVjdG9yUXVlcnk6Om1hdGNoZXMpOgorICAgICAgICAqIGh0bWwv
c2hhZG93L0NvbnRlbnRTZWxlY3RvclF1ZXJ5Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKENvbnRlbnRTZWxlY3RvclF1ZXJ5KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9IVE1MQ29u
dGVudEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnRlbnRFbGVtZW50Ojpk
ZXRhY2gpOgorICAgICAgICAqIGh0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5oOgorICAg
ICAgICAoV2ViQ29yZTo6dG9IVE1MQ29udGVudEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgICogaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRTZWxlY3Rvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MQ29udGVudFNlbGVjdG9yOjpzZWxlY3QpOgorICAgICAgICAqIGh0bWwv
c2hhZG93L0hUTUxDb250ZW50U2VsZWN0b3IuaDoKKyAgICAgICAgKEhUTUxDb250ZW50U2VsZWN0
b3IpOgorCiAyMDEyLTAyLTI5ICBBbmRyZWFzIEtsaW5nICA8YXdlc29tZWtsaW5nQGFwcGxlLmNv
bT4KIAogICAgICAgICBJc1N5bmNocm9uaXppbmdTdHlsZUF0dHJpYnV0ZUZsYWcgY291bGQgYmUg
cHVyZ2VkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCmluZGV4IDQxZTg3YjZjN2M3OTA4ZGE2
MjNmYTgwNzE1MjFmNzE5NjdhZWMzMTUuLmY3NmNiMjA5MjNlMzcyYWVjMGMyY2U2N2I2OWEzMzAx
NzkyZWViNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKQEAgLTE3OCwxMCArMTc4LDEw
IEBAIFNoYWRvd1RyZWUqIFNoYWRvd1Jvb3Q6OnRyZWUoKSBjb25zdAogICAgIHJldHVybiAwOwog
fQogCi1ib29sIFNoYWRvd1Jvb3Q6Omhhc0NvbnRlbnRFbGVtZW50KCkgY29uc3QKK2Jvb2wgU2hh
ZG93Um9vdDo6aGFzSW5zZXJ0aW9uUG9pbnQoKSBjb25zdAogewogICAgIGZvciAoTm9kZSogbiA9
IGZpcnN0Q2hpbGQoKTsgbjsgbiA9IG4tPnRyYXZlcnNlTmV4dE5vZGUodGhpcykpIHsKLSAgICAg
ICAgaWYgKG4tPmlzQ29udGVudEVsZW1lbnQoKSkKKyAgICAgICAgaWYgKGlzSW5zZXJ0aW9uUG9p
bnQobikpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93
Um9vdC5oCmluZGV4IGQxOWQzOWIwNjlmZjk0M2RmZGYwYmJkYzcyOGJjZDllOGU0Y2U5NmIuLjY0
ZGRmYTgyZjk1MmIyNTIwYmRlMjBmM2JmMTg2YzExZjEyNmNiZGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRv
d1Jvb3QuaApAQCAtNzksNyArNzksNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1lvdW5nZXN0KCkg
Y29uc3QgeyByZXR1cm4gIXlvdW5nZXJTaGFkb3dSb290KCk7IH0KICAgICBib29sIGlzT2xkZXN0
KCkgY29uc3QgeyByZXR1cm4gIW9sZGVyU2hhZG93Um9vdCgpOyB9CiAKLSAgICBib29sIGhhc0Nv
bnRlbnRFbGVtZW50KCkgY29uc3Q7CisgICAgYm9vbCBoYXNJbnNlcnRpb25Qb2ludCgpIGNvbnN0
OwogCiBwcml2YXRlOgogICAgIFNoYWRvd1Jvb3QoRG9jdW1lbnQqKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFk
b3dUcmVlLmNwcAppbmRleCA2Yzk2NmM0ZTFkZWI1MjBhZmMzZjVmYzg2Yzc3MGQwMDQ1NjNkODk5
Li5iOTE5NTEyNzg3ODMzMmFlYmJlZGM5OThmNWQ3N2EzMGRmZDA5YzJjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vU2hhZG93VHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L1NoYWRvd1RyZWUuY3BwCkBAIC0yNTQsMTQgKzI1NCwxNCBAQCB2b2lkIFNoYWRvd1RyZWU6OnJl
Y2FsY1NoYWRvd1RyZWVTdHlsZShOb2RlOjpTdHlsZUNoYW5nZSBjaGFuZ2UpCiAKIGJvb2wgU2hh
ZG93VHJlZTo6bmVlZHNSZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpCiB7Ci0gICAgcmV0
dXJuIG1fbmVlZHNSZWNhbGN1bGF0ZUNvbnRlbnQgfHwgKHlvdW5nZXN0U2hhZG93Um9vdCgpICYm
IHlvdW5nZXN0U2hhZG93Um9vdCgpLT5oYXNDb250ZW50RWxlbWVudCgpKTsKKyAgICByZXR1cm4g
bV9uZWVkc1JlY2FsY3VsYXRlQ29udGVudCB8fCAoeW91bmdlc3RTaGFkb3dSb290KCkgJiYgeW91
bmdlc3RTaGFkb3dSb290KCktPmhhc0luc2VydGlvblBvaW50KCkpOwogfQogCiB2b2lkIFNoYWRv
d1RyZWU6Omhvc3RDaGlsZHJlbkNoYW5nZWQoKQogewogICAgIEFTU0VSVCh5b3VuZ2VzdFNoYWRv
d1Jvb3QoKSk7CiAKLSAgICBpZiAoIXlvdW5nZXN0U2hhZG93Um9vdCgpLT5oYXNDb250ZW50RWxl
bWVudCgpKQorICAgIGlmICgheW91bmdlc3RTaGFkb3dSb290KCktPmhhc0luc2VydGlvblBvaW50
KCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIFRoaXMgcmVzdWx0cyBpbiBmb3JjZWQgZGV0
YWNoaW5nL2F0dGFjaGluZyBvZiB0aGUgc2hhZG93IHJlbmRlciB0cmVlLiBTZWUgU2hhZG93Um9v
dDo6cmVjYWxjU3R5bGUoKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0Nv
bnRlbnRTZWxlY3RvclF1ZXJ5LmNwcAppbmRleCBlMzQ2ZDc3MmExOGY0ODQwMTc2YzY3M2NlMzE4
ZWUxY2M2YzY1ZTAzLi5lOGU3ZjJmOGQ0ZTlmMTljOTFhNDUxZDQ4YWUyYTBlYWIwZmNmMjdlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Db250ZW50U2VsZWN0b3JRdWVy
eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVudFNlbGVjdG9yUXVl
cnkuY3BwCkBAIC0zMCwyMiArMzAsMzAgQEAKICNpbmNsdWRlICJDU1NQYXJzZXIuaCIKICNpbmNs
dWRlICJDU1NTZWxlY3Rvckxpc3QuaCIKICNpbmNsdWRlICJIVE1MQ29udGVudEVsZW1lbnQuaCIK
KyNpbmNsdWRlICJJbnNlcnRpb25Qb2ludC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUNv
bnRlbnRTZWxlY3RvclF1ZXJ5OjpDb250ZW50U2VsZWN0b3JRdWVyeShjb25zdCBIVE1MQ29udGVu
dEVsZW1lbnQqIGVsZW1lbnQpCi0gICAgOiBtX2NvbnRlbnRFbGVtZW50KGVsZW1lbnQpCi0gICAg
LCBtX3NlbGVjdG9yQ2hlY2tlcihlbGVtZW50LT5kb2N1bWVudCgpLCAhZWxlbWVudC0+ZG9jdW1l
bnQoKS0+aW5RdWlya3NNb2RlKCkpCitDb250ZW50U2VsZWN0b3JRdWVyeTo6Q29udGVudFNlbGVj
dG9yUXVlcnkoY29uc3QgSW5zZXJ0aW9uUG9pbnQqIGluc2VydGlvblBvaW50KQorICAgIDogbV9p
bnNlcnRpb25Qb2ludChpbnNlcnRpb25Qb2ludCkKKyAgICAsIG1fc2VsZWN0b3JDaGVja2VyKGlu
c2VydGlvblBvaW50LT5kb2N1bWVudCgpLCAhaW5zZXJ0aW9uUG9pbnQtPmRvY3VtZW50KCktPmlu
UXVpcmtzTW9kZSgpKQogewogICAgIG1fc2VsZWN0b3JDaGVja2VyLnNldENvbGxlY3RpbmdSdWxl
c09ubHkodHJ1ZSk7CiAKLSAgICBpZiAoZWxlbWVudC0+c2VsZWN0KCkuaXNOdWxsKCkgfHwgZWxl
bWVudC0+c2VsZWN0KCkuaXNFbXB0eSgpKSB7CisgICAgaWYgKCFpbnNlcnRpb25Qb2ludC0+aXND
b250ZW50RWxlbWVudCgpKSB7CisgICAgICAgIG1faXNWYWxpZFNlbGVjdG9yID0gdHJ1ZTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNvbnN0IEhUTUxDb250ZW50RWxlbWVudCogY29u
dGVudEVsZW1lbnQgPSB0b0hUTUxDb250ZW50RWxlbWVudChpbnNlcnRpb25Qb2ludCk7CisKKyAg
ICBpZiAoY29udGVudEVsZW1lbnQtPnNlbGVjdCgpLmlzTnVsbCgpIHx8IGNvbnRlbnRFbGVtZW50
LT5zZWxlY3QoKS5pc0VtcHR5KCkpIHsKICAgICAgICAgbV9pc1ZhbGlkU2VsZWN0b3IgPSB0cnVl
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgQ1NTUGFyc2VyIHBhcnNlcih0cnVlKTsK
LSAgICBwYXJzZXIucGFyc2VTZWxlY3RvcihlbGVtZW50LT5zZWxlY3QoKSwgZWxlbWVudC0+ZG9j
dW1lbnQoKSwgbV9zZWxlY3Rvckxpc3QpOworICAgIHBhcnNlci5wYXJzZVNlbGVjdG9yKGNvbnRl
bnRFbGVtZW50LT5zZWxlY3QoKSwgY29udGVudEVsZW1lbnQtPmRvY3VtZW50KCksIG1fc2VsZWN0
b3JMaXN0KTsKIAogICAgIG1faXNWYWxpZFNlbGVjdG9yID0gQ29udGVudFNlbGVjdG9yUXVlcnk6
OnZhbGlkYXRlU2VsZWN0b3JMaXN0KCk7CiAgICAgaWYgKG1faXNWYWxpZFNlbGVjdG9yKQpAQCAt
NjMsOSArNzEsMTMgQEAgYm9vbCBDb250ZW50U2VsZWN0b3JRdWVyeTo6bWF0Y2hlcyhOb2RlKiBu
b2RlKSBjb25zdAogICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAg
QVNTRVJUKG5vZGUtPnBhcmVudE5vZGUoKSA9PSBtX2NvbnRlbnRFbGVtZW50LT5zaGFkb3dUcmVl
Um9vdE5vZGUoKS0+c2hhZG93SG9zdCgpKTsKKyAgICBBU1NFUlQobm9kZS0+cGFyZW50Tm9kZSgp
ID09IG1faW5zZXJ0aW9uUG9pbnQtPnNoYWRvd1RyZWVSb290Tm9kZSgpLT5zaGFkb3dIb3N0KCkp
OworCisgICAgaWYgKCFtX2luc2VydGlvblBvaW50LT5pc0NvbnRlbnRFbGVtZW50KCkpCisgICAg
ICAgIHJldHVybiB0cnVlOwogCi0gICAgaWYgKG1fY29udGVudEVsZW1lbnQtPnNlbGVjdCgpLmlz
TnVsbCgpIHx8IG1fY29udGVudEVsZW1lbnQtPnNlbGVjdCgpLmlzRW1wdHkoKSkKKyAgICBjb25z
dCBIVE1MQ29udGVudEVsZW1lbnQqIGNvbnRlbnRFbGVtZW50ID0gdG9IVE1MQ29udGVudEVsZW1l
bnQobV9pbnNlcnRpb25Qb2ludCk7CisgICAgaWYgKGNvbnRlbnRFbGVtZW50LT5zZWxlY3QoKS5p
c051bGwoKSB8fCBjb250ZW50RWxlbWVudC0+c2VsZWN0KCkuaXNFbXB0eSgpKQogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKIAogICAgIGlmICghbV9pc1ZhbGlkU2VsZWN0b3IpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Db250ZW50U2VsZWN0b3JRdWVyeS5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVudFNlbGVjdG9yUXVlcnkuaAppbmRleCA1MjdhYTQ5
MDUyYzhjYjI4ZDlhMjM4OWEzNDk1NGQzNjZlMjE2Y2Y4Li45NGZhM2VmY2NmM2Y5ZDcyZTk3NDc3
NWUyZDJkMzE0MGQxM2NiMzRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9Db250ZW50U2VsZWN0b3JRdWVyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmgKQEAgLTQxLDE5ICs0MSwxOSBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIERvY3VtZW50OwogY2xhc3MgTm9kZTsKLWNsYXNzIEhUTUxDb250ZW50
RWxlbWVudDsKK2NsYXNzIEluc2VydGlvblBvaW50OwogCiBjbGFzcyBDb250ZW50U2VsZWN0b3JR
dWVyeSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ29udGVudFNlbGVjdG9yUXVlcnkpOwog
cHVibGljOgotICAgIGV4cGxpY2l0IENvbnRlbnRTZWxlY3RvclF1ZXJ5KGNvbnN0IEhUTUxDb250
ZW50RWxlbWVudCopOworICAgIGV4cGxpY2l0IENvbnRlbnRTZWxlY3RvclF1ZXJ5KGNvbnN0IElu
c2VydGlvblBvaW50Kik7CiAKICAgICBib29sIGlzVmFsaWRTZWxlY3RvcigpIGNvbnN0OwogICAg
IGJvb2wgbWF0Y2hlcyhOb2RlKikgY29uc3Q7CiBwcml2YXRlOgogICAgIGJvb2wgdmFsaWRhdGVT
ZWxlY3Rvckxpc3QoKTsKIAotICAgIGNvbnN0IEhUTUxDb250ZW50RWxlbWVudCogbV9jb250ZW50
RWxlbWVudDsKKyAgICBjb25zdCBJbnNlcnRpb25Qb2ludCogbV9pbnNlcnRpb25Qb2ludDsKICAg
ICBTZWxlY3RvckRhdGFMaXN0IG1fc2VsZWN0b3JzOwogICAgIENTU1NlbGVjdG9yTGlzdCBtX3Nl
bGVjdG9yTGlzdDsKICAgICBTZWxlY3RvckNoZWNrZXIgbV9zZWxlY3RvckNoZWNrZXI7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcAppbmRl
eCBlMDU4YWZhYTEwODQ3OTNhY2ZlMWM0OWFiYTU2YTljMmU3MjJkNzc1Li41ZjZkNzc5MTk1OTBj
MmY4MjdjZWYxZmVhYWE4N2Q4ODY5MmQ1YjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHAKQEAgLTk0LDcgKzk0LDcgQEAgdm9pZCBI
VE1MQ29udGVudEVsZW1lbnQ6OmRldGFjaCgpCiAgICAgICAgICAgICBzZWxlY3Rvci0+dW5zZWxl
Y3QoJm1fc2VsZWN0aW9ucyk7CiAKICAgICAgICAgLy8gV2hlbiBjb250ZW50IGVsZW1lbnQgaXMg
ZGV0YWNoZWQsIHNoYWRvdyB0cmVlIHNob3VsZCBiZSByZWNyZWF0ZWQgdG8gcmUtY2FsY3VsYXRl
IHNlbGVjdG9yIGZvcgotICAgICAgICAvLyBvdGhlciBjb250ZW50IGVsZW1lbnRzLgorICAgICAg
ICAvLyBvdGhlciBpbnNlcnRpb24gcG9pbnRzLgogICAgICAgICByb290LT50cmVlKCktPnNldE5l
ZWRzUmVhdHRhY2hIb3N0Q2hpbGRyZW5BbmRTaGFkb3coKTsKICAgICB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmgKaW5kZXggYzI3MmFhYWYw
ZTM1ZmY1MWY2OTRiMzE1MzlkNDI0MDIwMTdjMDY3MS4uOTM4ZTM4Y2VmZjIwMzQ0ODI3ZWMwOWQ1
YTFlNzY5NDUxNTY1NWY5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
SFRNTENvbnRlbnRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRN
TENvbnRlbnRFbGVtZW50LmgKQEAgLTY2LDYgKzY2LDEyIEBAIHByaXZhdGU6CiAgICAgdmlydHVh
bCB2b2lkIHBhcnNlQXR0cmlidXRlKEF0dHJpYnV0ZSopIE9WRVJSSURFOwogfTsKIAoraW5saW5l
IGNvbnN0IEhUTUxDb250ZW50RWxlbWVudCogdG9IVE1MQ29udGVudEVsZW1lbnQoY29uc3QgTm9k
ZSogbm9kZSkKK3sKKyAgICBBU1NFUlQoIW5vZGUgfHwgbm9kZS0+aXNDb250ZW50RWxlbWVudCgp
KTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgSFRNTENvbnRlbnRFbGVtZW50Kj4obm9k
ZSk7Cit9CisKIGlubGluZSBIVE1MQ29udGVudEVsZW1lbnQqIHRvSFRNTENvbnRlbnRFbGVtZW50
KE5vZGUqIG5vZGUpCiB7CiAgICAgQVNTRVJUKCFub2RlIHx8IG5vZGUtPmlzQ29udGVudEVsZW1l
bnQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVu
dFNlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50U2Vs
ZWN0b3IuY3BwCmluZGV4IDVjMzBmZjZlMTQzNGUyYTkxNzFiNWIxOTMwNjc3YmZkZDY3Njk2N2Eu
Ljk1Mzk1YmM4YmYyMmJhODM5OGZkNTZlNDVkODY0ZGE2MzE4MjY5MjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50U2VsZWN0b3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50U2VsZWN0b3IuY3BwCkBAIC0xMDgs
MTEgKzEwOCwxMiBAQCBIVE1MQ29udGVudFNlbGVjdG9yOjp+SFRNTENvbnRlbnRTZWxlY3Rvcigp
CiAgICAgQVNTRVJUKG1fY2FuZGlkYXRlcy5pc0VtcHR5KCkpOwogfQogCi12b2lkIEhUTUxDb250
ZW50U2VsZWN0b3I6OnNlbGVjdChIVE1MQ29udGVudEVsZW1lbnQqIGNvbnRlbnRFbGVtZW50LCBI
VE1MQ29udGVudFNlbGVjdGlvbkxpc3QqIHNlbGVjdGlvbnMpCit2b2lkIEhUTUxDb250ZW50U2Vs
ZWN0b3I6OnNlbGVjdChJbnNlcnRpb25Qb2ludCogaW5zZXJ0aW9uUG9pbnQsIEhUTUxDb250ZW50
U2VsZWN0aW9uTGlzdCogc2VsZWN0aW9ucykKIHsKICAgICBBU1NFUlQoc2VsZWN0aW9ucy0+aXNF
bXB0eSgpKTsKIAotICAgIENvbnRlbnRTZWxlY3RvclF1ZXJ5IHF1ZXJ5KGNvbnRlbnRFbGVtZW50
KTsKKyAgICBDb250ZW50U2VsZWN0b3JRdWVyeSBxdWVyeShpbnNlcnRpb25Qb2ludCk7CisKICAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fY2FuZGlkYXRlcy5zaXplKCk7ICsraSkgewogICAg
ICAgICBOb2RlKiBjaGlsZCA9IG1fY2FuZGlkYXRlc1tpXS5nZXQoKTsKICAgICAgICAgaWYgKCFj
aGlsZCkKQEAgLTEyMCw3ICsxMjEsNyBAQCB2b2lkIEhUTUxDb250ZW50U2VsZWN0b3I6OnNlbGVj
dChIVE1MQ29udGVudEVsZW1lbnQqIGNvbnRlbnRFbGVtZW50LCBIVE1MQ29udGVudAogICAgICAg
ICBpZiAoIXF1ZXJ5Lm1hdGNoZXMoY2hpbGQpKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAg
ICAgICAgUmVmUHRyPEhUTUxDb250ZW50U2VsZWN0aW9uPiBzZWxlY3Rpb24gPSBIVE1MQ29udGVu
dFNlbGVjdGlvbjo6Y3JlYXRlKGNvbnRlbnRFbGVtZW50LCBjaGlsZCk7CisgICAgICAgIFJlZlB0
cjxIVE1MQ29udGVudFNlbGVjdGlvbj4gc2VsZWN0aW9uID0gSFRNTENvbnRlbnRTZWxlY3Rpb246
OmNyZWF0ZShpbnNlcnRpb25Qb2ludCwgY2hpbGQpOwogCiAgICAgICAgIHNlbGVjdGlvbnMtPmFw
cGVuZChzZWxlY3Rpb24pOwogICAgICAgICBtX3NlbGVjdGlvblNldC5hZGQoc2VsZWN0aW9uLmdl
dCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50
U2VsZWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50U2VsZWN0
b3IuaAppbmRleCAyOWJkNjE2M2Y1MTJhYjQzZGZiNTdmNzYxM2M3YWE3N2QyNmQ4ZjU4Li4xNGVh
MDU3YTBhNWVkNTc0N2NkY2E5ODk4ZDJhNWU1ZmE1M2M1ODc0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudFNlbGVjdG9yLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRTZWxlY3Rvci5oCkBAIC0xMzAsNyArMTMwLDcg
QEAgcHVibGljOgogICAgIEhUTUxDb250ZW50U2VsZWN0b3IoKTsKICAgICB+SFRNTENvbnRlbnRT
ZWxlY3RvcigpOwogCi0gICAgdm9pZCBzZWxlY3QoSFRNTENvbnRlbnRFbGVtZW50KiwgSFRNTENv
bnRlbnRTZWxlY3Rpb25MaXN0Kik7CisgICAgdm9pZCBzZWxlY3QoSW5zZXJ0aW9uUG9pbnQqLCBI
VE1MQ29udGVudFNlbGVjdGlvbkxpc3QqKTsKICAgICB2b2lkIHVuc2VsZWN0KEhUTUxDb250ZW50
U2VsZWN0aW9uTGlzdCopOwogICAgIEhUTUxDb250ZW50U2VsZWN0aW9uKiBmaW5kRm9yKE5vZGUq
IGtleSkgY29uc3Q7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129633</attachid>
            <date>2012-02-29 22:21:04 -0800</date>
            <delta_ts>2012-02-29 22:34:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79901-20120301152102.patch</filename>
            <type>text/plain</type>
            <size>11211</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5Mjk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGM3MzMyMDcwZDg5N2Mw
YjI2YmIyMmE2MGY3MWFkNjcwOWE3ZmQzZi4uYmYxN2VhYTAwOWM5YTU4YTEwMjdmYjk0OGZkMjhk
ZTdkOTU5YTI2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDEyLTAyLTI5ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZWZhY3Rvcmlu
ZzogSFRNTENvbnRlbnRTZWxlY3RvciBzaG91bGQgYmUgSW5zZXJ0aW9uUG9pbnQtYXdhcmUuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTkwMQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENvbnRlbnRTZWxl
Y3RvclF1ZXJ5IHRvb2sgSFRNTENvbnRlbnRFbGVtZW50IGFzIGFyZ3VtZW50LCBidXQgcGF0Y2gg
Y2hhbmdlcyBpdCB0byB0YWtlIEluc2VydGlvblBvaW50IGluc3RlYWQuCisgICAgICAgIElmIElu
c2VydGlvblBvaW50IGlzIG5vdCBIVE1MQ29udGVudEVsZW1lbnQsIENvbnRlbnRTZWxlY3RvclF1
ZXJ5IHdpbGwgc2VsZWN0cyB0aGUgcmVzdCBvZiBsaWdodCBjaGlsZHJlbi4KKworICAgICAgICBO
b3cgSW5zZXJ0aW9uUG9pbnQgaGFzIHB1cmUgdmlydHVhbCBtZXRob2QgJ3NlbGVjdCcuIDxzaGFk
b3c+IHdpbGwgaW1wbGVtZW50IHRoaXMgYXMgYSBtZXRob2QgcmV0dXJuaW5nIGVtcHR5IHN0cmlu
Zy4KKworICAgICAgICAqIGRvbS9TaGFkb3dSb290LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNo
YWRvd1Jvb3Q6Omhhc0luc2VydGlvblBvaW50KToKKyAgICAgICAgKiBkb20vU2hhZG93Um9vdC5o
OgorICAgICAgICAoU2hhZG93Um9vdCk6CisgICAgICAgICogZG9tL1NoYWRvd1RyZWUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2hhZG93VHJlZTo6bmVlZHNSZWF0dGFjaEhvc3RDaGlsZHJlbkFu
ZFNoYWRvdyk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dUcmVlOjpob3N0Q2hpbGRyZW5DaGFu
Z2VkKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9Db250ZW50U2VsZWN0b3JRdWVyeS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDb250ZW50U2VsZWN0b3JRdWVyeTo6Q29udGVudFNlbGVjdG9yUXVl
cnkpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlbGVjdG9yUXVlcnk6Om1hdGNoZXMpOgor
ICAgICAgICAqIGh0bWwvc2hhZG93L0NvbnRlbnRTZWxlY3RvclF1ZXJ5Lmg6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKENvbnRlbnRTZWxlY3RvclF1ZXJ5KToKKyAgICAgICAgKiBodG1s
L3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENv
bnRlbnRFbGVtZW50OjpkZXRhY2gpOgorICAgICAgICAqIGh0bWwvc2hhZG93L0hUTUxDb250ZW50
RWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6dG9IVE1MQ29udGVudEVsZW1lbnQpOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgICogaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRTZWxlY3Rv
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29udGVudFNlbGVjdG9yOjpzZWxlY3QpOgor
ICAgICAgICAqIGh0bWwvc2hhZG93L0hUTUxDb250ZW50U2VsZWN0b3IuaDoKKyAgICAgICAgKEhU
TUxDb250ZW50U2VsZWN0b3IpOgorICAgICAgICAqIGh0bWwvc2hhZG93L0luc2VydGlvblBvaW50
Lmg6CisgICAgICAgIChJbnNlcnRpb25Qb2ludCk6CisKIDIwMTItMDItMjkgIEFtaSBGaXNjaG1h
biAgPGZpc2NobWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBDb250aW51ZSB0aGUgc2VhcmNo
IGZvciBwbGF5YWJsZSBtaW1lIHR5cGVzIGFtb25nIDxzb3VyY2U+IGNoaWxkcmVuIG9mIDx2aWRl
bz4gZXZlbiB3aGVuIHVzaW5nIGRhdGE6IFVSTHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TaGFkb3dSb290LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcApp
bmRleCA0MWU4N2I2YzdjNzkwOGRhNjIzZmE4MDcxNTIxZjcxOTY3YWVjMzE1Li5mNzZjYjIwOTIz
ZTM3MmFlYzBjMmNlNjdiNjlhMzMwMTc5MmVlYjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2hhZG93Um9vdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3Qu
Y3BwCkBAIC0xNzgsMTAgKzE3OCwxMCBAQCBTaGFkb3dUcmVlKiBTaGFkb3dSb290Ojp0cmVlKCkg
Y29uc3QKICAgICByZXR1cm4gMDsKIH0KIAotYm9vbCBTaGFkb3dSb290OjpoYXNDb250ZW50RWxl
bWVudCgpIGNvbnN0Citib29sIFNoYWRvd1Jvb3Q6Omhhc0luc2VydGlvblBvaW50KCkgY29uc3QK
IHsKICAgICBmb3IgKE5vZGUqIG4gPSBmaXJzdENoaWxkKCk7IG47IG4gPSBuLT50cmF2ZXJzZU5l
eHROb2RlKHRoaXMpKSB7Ci0gICAgICAgIGlmIChuLT5pc0NvbnRlbnRFbGVtZW50KCkpCisgICAg
ICAgIGlmIChpc0luc2VydGlvblBvaW50KG4pKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaAppbmRleCBkMTlkMzliMDY5ZmY5NDNkZmRmMGJi
ZGM3MjhiY2Q5ZThlNGNlOTZiLi42NGRkZmE4MmY5NTJiMjUyMGJkZTIwZjNiZjE4NmMxMWYxMjZj
YmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKQEAgLTc5LDcgKzc5LDcgQEAgcHVibGljOgog
ICAgIGJvb2wgaXNZb3VuZ2VzdCgpIGNvbnN0IHsgcmV0dXJuICF5b3VuZ2VyU2hhZG93Um9vdCgp
OyB9CiAgICAgYm9vbCBpc09sZGVzdCgpIGNvbnN0IHsgcmV0dXJuICFvbGRlclNoYWRvd1Jvb3Qo
KTsgfQogCi0gICAgYm9vbCBoYXNDb250ZW50RWxlbWVudCgpIGNvbnN0OworICAgIGJvb2wgaGFz
SW5zZXJ0aW9uUG9pbnQoKSBjb25zdDsKIAogcHJpdmF0ZToKICAgICBTaGFkb3dSb290KERvY3Vt
ZW50Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93VHJlZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vU2hhZG93VHJlZS5jcHAKaW5kZXggODExMzBjNDgxYTUwMWJkNjUx
YjkyNmExYmU3YjBiMTYyZDBmNjIyNy4uMmNjZTk5N2NhNjE3MWNhZDBkMTEwNzBmYjk0MjJmMDY0
Yzk4MTU0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1RyZWUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dUcmVlLmNwcApAQCAtMjYyLDE0ICsyNjIsMTQg
QEAgdm9pZCBTaGFkb3dUcmVlOjpyZWNhbGNTaGFkb3dUcmVlU3R5bGUoTm9kZTo6U3R5bGVDaGFu
Z2UgY2hhbmdlKQogCiBib29sIFNoYWRvd1RyZWU6Om5lZWRzUmVhdHRhY2hIb3N0Q2hpbGRyZW5B
bmRTaGFkb3coKQogewotICAgIHJldHVybiBtX25lZWRzUmVjYWxjdWxhdGVDb250ZW50IHx8ICh5
b3VuZ2VzdFNoYWRvd1Jvb3QoKSAmJiB5b3VuZ2VzdFNoYWRvd1Jvb3QoKS0+aGFzQ29udGVudEVs
ZW1lbnQoKSk7CisgICAgcmV0dXJuIG1fbmVlZHNSZWNhbGN1bGF0ZUNvbnRlbnQgfHwgKHlvdW5n
ZXN0U2hhZG93Um9vdCgpICYmIHlvdW5nZXN0U2hhZG93Um9vdCgpLT5oYXNJbnNlcnRpb25Qb2lu
dCgpKTsKIH0KIAogdm9pZCBTaGFkb3dUcmVlOjpob3N0Q2hpbGRyZW5DaGFuZ2VkKCkKIHsKICAg
ICBBU1NFUlQoeW91bmdlc3RTaGFkb3dSb290KCkpOwogCi0gICAgaWYgKCF5b3VuZ2VzdFNoYWRv
d1Jvb3QoKS0+aGFzQ29udGVudEVsZW1lbnQoKSkKKyAgICBpZiAoIXlvdW5nZXN0U2hhZG93Um9v
dCgpLT5oYXNJbnNlcnRpb25Qb2ludCgpKQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBUaGlz
IHJlc3VsdHMgaW4gZm9yY2VkIGRldGFjaGluZy9hdHRhY2hpbmcgb2YgdGhlIHNoYWRvdyByZW5k
ZXIgdHJlZS4gU2VlIFNoYWRvd1Jvb3Q6OnJlY2FsY1N0eWxlKCkuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Db250ZW50U2VsZWN0b3JRdWVyeS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9Db250ZW50U2VsZWN0b3JRdWVyeS5jcHAKaW5kZXggZTM0NmQ3
NzJhMThmNDg0MDE3NmM2NzNjZTMxOGVlMWNjNmM2NWUwMy4uMDQyNGE1ZmE4NmRmNGMxOGRjYTFk
ZGEzNzIwNzhjNThlYmUzNTFlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvQ29udGVudFNlbGVjdG9yUXVlcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcApAQCAtMjksMjMgKzI5LDIzIEBACiAKICNpbmNs
dWRlICJDU1NQYXJzZXIuaCIKICNpbmNsdWRlICJDU1NTZWxlY3Rvckxpc3QuaCIKLSNpbmNsdWRl
ICJIVE1MQ29udGVudEVsZW1lbnQuaCIKKyNpbmNsdWRlICJJbnNlcnRpb25Qb2ludC5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLUNvbnRlbnRTZWxlY3RvclF1ZXJ5OjpDb250ZW50U2VsZWN0
b3JRdWVyeShjb25zdCBIVE1MQ29udGVudEVsZW1lbnQqIGVsZW1lbnQpCi0gICAgOiBtX2NvbnRl
bnRFbGVtZW50KGVsZW1lbnQpCi0gICAgLCBtX3NlbGVjdG9yQ2hlY2tlcihlbGVtZW50LT5kb2N1
bWVudCgpLCAhZWxlbWVudC0+ZG9jdW1lbnQoKS0+aW5RdWlya3NNb2RlKCkpCitDb250ZW50U2Vs
ZWN0b3JRdWVyeTo6Q29udGVudFNlbGVjdG9yUXVlcnkoY29uc3QgSW5zZXJ0aW9uUG9pbnQqIGlu
c2VydGlvblBvaW50KQorICAgIDogbV9pbnNlcnRpb25Qb2ludChpbnNlcnRpb25Qb2ludCkKKyAg
ICAsIG1fc2VsZWN0b3JDaGVja2VyKGluc2VydGlvblBvaW50LT5kb2N1bWVudCgpLCAhaW5zZXJ0
aW9uUG9pbnQtPmRvY3VtZW50KCktPmluUXVpcmtzTW9kZSgpKQogewogICAgIG1fc2VsZWN0b3JD
aGVja2VyLnNldENvbGxlY3RpbmdSdWxlc09ubHkodHJ1ZSk7CiAKLSAgICBpZiAoZWxlbWVudC0+
c2VsZWN0KCkuaXNOdWxsKCkgfHwgZWxlbWVudC0+c2VsZWN0KCkuaXNFbXB0eSgpKSB7CisgICAg
aWYgKGluc2VydGlvblBvaW50LT5zZWxlY3QoKS5pc051bGwoKSB8fCBpbnNlcnRpb25Qb2ludC0+
c2VsZWN0KCkuaXNFbXB0eSgpKSB7CiAgICAgICAgIG1faXNWYWxpZFNlbGVjdG9yID0gdHJ1ZTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIENTU1BhcnNlciBwYXJzZXIodHJ1ZSk7Ci0g
ICAgcGFyc2VyLnBhcnNlU2VsZWN0b3IoZWxlbWVudC0+c2VsZWN0KCksIGVsZW1lbnQtPmRvY3Vt
ZW50KCksIG1fc2VsZWN0b3JMaXN0KTsKKyAgICBwYXJzZXIucGFyc2VTZWxlY3RvcihpbnNlcnRp
b25Qb2ludC0+c2VsZWN0KCksIGluc2VydGlvblBvaW50LT5kb2N1bWVudCgpLCBtX3NlbGVjdG9y
TGlzdCk7CiAKICAgICBtX2lzVmFsaWRTZWxlY3RvciA9IENvbnRlbnRTZWxlY3RvclF1ZXJ5Ojp2
YWxpZGF0ZVNlbGVjdG9yTGlzdCgpOwogICAgIGlmIChtX2lzVmFsaWRTZWxlY3RvcikKQEAgLTYz
LDkgKzYzLDkgQEAgYm9vbCBDb250ZW50U2VsZWN0b3JRdWVyeTo6bWF0Y2hlcyhOb2RlKiBub2Rl
KSBjb25zdAogICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgQVNT
RVJUKG5vZGUtPnBhcmVudE5vZGUoKSA9PSBtX2NvbnRlbnRFbGVtZW50LT5zaGFkb3dUcmVlUm9v
dE5vZGUoKS0+c2hhZG93SG9zdCgpKTsKKyAgICBBU1NFUlQobm9kZS0+cGFyZW50Tm9kZSgpID09
IG1faW5zZXJ0aW9uUG9pbnQtPnNoYWRvd1RyZWVSb290Tm9kZSgpLT5zaGFkb3dIb3N0KCkpOwog
Ci0gICAgaWYgKG1fY29udGVudEVsZW1lbnQtPnNlbGVjdCgpLmlzTnVsbCgpIHx8IG1fY29udGVu
dEVsZW1lbnQtPnNlbGVjdCgpLmlzRW1wdHkoKSkKKyAgICBpZiAobV9pbnNlcnRpb25Qb2ludC0+
c2VsZWN0KCkuaXNOdWxsKCkgfHwgbV9pbnNlcnRpb25Qb2ludC0+c2VsZWN0KCkuaXNFbXB0eSgp
KQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIGlmICghbV9pc1ZhbGlkU2VsZWN0b3IpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Db250ZW50U2VsZWN0b3JRdWVy
eS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVudFNlbGVjdG9yUXVlcnkuaApp
bmRleCA1MjdhYTQ5MDUyYzhjYjI4ZDlhMjM4OWEzNDk1NGQzNjZlMjE2Y2Y4Li45NGZhM2VmY2Nm
M2Y5ZDcyZTk3NDc3NWUyZDJkMzE0MGQxM2NiMzRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9Db250ZW50U2VsZWN0b3JRdWVyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmgKQEAgLTQxLDE5ICs0MSwxOSBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERvY3VtZW50OwogY2xhc3MgTm9kZTsKLWNsYXNz
IEhUTUxDb250ZW50RWxlbWVudDsKK2NsYXNzIEluc2VydGlvblBvaW50OwogCiBjbGFzcyBDb250
ZW50U2VsZWN0b3JRdWVyeSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ29udGVudFNlbGVj
dG9yUXVlcnkpOwogcHVibGljOgotICAgIGV4cGxpY2l0IENvbnRlbnRTZWxlY3RvclF1ZXJ5KGNv
bnN0IEhUTUxDb250ZW50RWxlbWVudCopOworICAgIGV4cGxpY2l0IENvbnRlbnRTZWxlY3RvclF1
ZXJ5KGNvbnN0IEluc2VydGlvblBvaW50Kik7CiAKICAgICBib29sIGlzVmFsaWRTZWxlY3Rvcigp
IGNvbnN0OwogICAgIGJvb2wgbWF0Y2hlcyhOb2RlKikgY29uc3Q7CiBwcml2YXRlOgogICAgIGJv
b2wgdmFsaWRhdGVTZWxlY3Rvckxpc3QoKTsKIAotICAgIGNvbnN0IEhUTUxDb250ZW50RWxlbWVu
dCogbV9jb250ZW50RWxlbWVudDsKKyAgICBjb25zdCBJbnNlcnRpb25Qb2ludCogbV9pbnNlcnRp
b25Qb2ludDsKICAgICBTZWxlY3RvckRhdGFMaXN0IG1fc2VsZWN0b3JzOwogICAgIENTU1NlbGVj
dG9yTGlzdCBtX3NlbGVjdG9yTGlzdDsKICAgICBTZWxlY3RvckNoZWNrZXIgbV9zZWxlY3RvckNo
ZWNrZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVu
dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVt
ZW50LmNwcAppbmRleCBlMDU4YWZhYTEwODQ3OTNhY2ZlMWM0OWFiYTU2YTljMmU3MjJkNzc1Li41
ZjZkNzc5MTk1OTBjMmY4MjdjZWYxZmVhYWE4N2Q4ODY5MmQ1YjljIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHAKQEAgLTk0LDcgKzk0
LDcgQEAgdm9pZCBIVE1MQ29udGVudEVsZW1lbnQ6OmRldGFjaCgpCiAgICAgICAgICAgICBzZWxl
Y3Rvci0+dW5zZWxlY3QoJm1fc2VsZWN0aW9ucyk7CiAKICAgICAgICAgLy8gV2hlbiBjb250ZW50
IGVsZW1lbnQgaXMgZGV0YWNoZWQsIHNoYWRvdyB0cmVlIHNob3VsZCBiZSByZWNyZWF0ZWQgdG8g
cmUtY2FsY3VsYXRlIHNlbGVjdG9yIGZvcgotICAgICAgICAvLyBvdGhlciBjb250ZW50IGVsZW1l
bnRzLgorICAgICAgICAvLyBvdGhlciBpbnNlcnRpb24gcG9pbnRzLgogICAgICAgICByb290LT50
cmVlKCktPnNldE5lZWRzUmVhdHRhY2hIb3N0Q2hpbGRyZW5BbmRTaGFkb3coKTsKICAgICB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmgKaW5k
ZXggYzI3MmFhYWYwZTM1ZmY1MWY2OTRiMzE1MzlkNDI0MDIwMTdjMDY3MS4uOTM4ZTM4Y2VmZjIw
MzQ0ODI3ZWMwOWQ1YTFlNzY5NDUxNTY1NWY5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmgKQEAgLTY2LDYgKzY2LDEyIEBAIHByaXZhdGU6
CiAgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKEF0dHJpYnV0ZSopIE9WRVJSSURFOwog
fTsKIAoraW5saW5lIGNvbnN0IEhUTUxDb250ZW50RWxlbWVudCogdG9IVE1MQ29udGVudEVsZW1l
bnQoY29uc3QgTm9kZSogbm9kZSkKK3sKKyAgICBBU1NFUlQoIW5vZGUgfHwgbm9kZS0+aXNDb250
ZW50RWxlbWVudCgpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgSFRNTENvbnRlbnRF
bGVtZW50Kj4obm9kZSk7Cit9CisKIGlubGluZSBIVE1MQ29udGVudEVsZW1lbnQqIHRvSFRNTENv
bnRlbnRFbGVtZW50KE5vZGUqIG5vZGUpCiB7CiAgICAgQVNTRVJUKCFub2RlIHx8IG5vZGUtPmlz
Q29udGVudEVsZW1lbnQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9IVE1MQ29udGVudFNlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hU
TUxDb250ZW50U2VsZWN0b3IuY3BwCmluZGV4IDVjMzBmZjZlMTQzNGUyYTkxNzFiNWIxOTMwNjc3
YmZkZDY3Njk2N2EuLjk1Mzk1YmM4YmYyMmJhODM5OGZkNTZlNDVkODY0ZGE2MzE4MjY5MjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50U2VsZWN0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50U2VsZWN0b3Iu
Y3BwCkBAIC0xMDgsMTEgKzEwOCwxMiBAQCBIVE1MQ29udGVudFNlbGVjdG9yOjp+SFRNTENvbnRl
bnRTZWxlY3RvcigpCiAgICAgQVNTRVJUKG1fY2FuZGlkYXRlcy5pc0VtcHR5KCkpOwogfQogCi12
b2lkIEhUTUxDb250ZW50U2VsZWN0b3I6OnNlbGVjdChIVE1MQ29udGVudEVsZW1lbnQqIGNvbnRl
bnRFbGVtZW50LCBIVE1MQ29udGVudFNlbGVjdGlvbkxpc3QqIHNlbGVjdGlvbnMpCit2b2lkIEhU
TUxDb250ZW50U2VsZWN0b3I6OnNlbGVjdChJbnNlcnRpb25Qb2ludCogaW5zZXJ0aW9uUG9pbnQs
IEhUTUxDb250ZW50U2VsZWN0aW9uTGlzdCogc2VsZWN0aW9ucykKIHsKICAgICBBU1NFUlQoc2Vs
ZWN0aW9ucy0+aXNFbXB0eSgpKTsKIAotICAgIENvbnRlbnRTZWxlY3RvclF1ZXJ5IHF1ZXJ5KGNv
bnRlbnRFbGVtZW50KTsKKyAgICBDb250ZW50U2VsZWN0b3JRdWVyeSBxdWVyeShpbnNlcnRpb25Q
b2ludCk7CisKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fY2FuZGlkYXRlcy5zaXplKCk7
ICsraSkgewogICAgICAgICBOb2RlKiBjaGlsZCA9IG1fY2FuZGlkYXRlc1tpXS5nZXQoKTsKICAg
ICAgICAgaWYgKCFjaGlsZCkKQEAgLTEyMCw3ICsxMjEsNyBAQCB2b2lkIEhUTUxDb250ZW50U2Vs
ZWN0b3I6OnNlbGVjdChIVE1MQ29udGVudEVsZW1lbnQqIGNvbnRlbnRFbGVtZW50LCBIVE1MQ29u
dGVudAogICAgICAgICBpZiAoIXF1ZXJ5Lm1hdGNoZXMoY2hpbGQpKQogICAgICAgICAgICAgY29u
dGludWU7CiAKLSAgICAgICAgUmVmUHRyPEhUTUxDb250ZW50U2VsZWN0aW9uPiBzZWxlY3Rpb24g
PSBIVE1MQ29udGVudFNlbGVjdGlvbjo6Y3JlYXRlKGNvbnRlbnRFbGVtZW50LCBjaGlsZCk7Cisg
ICAgICAgIFJlZlB0cjxIVE1MQ29udGVudFNlbGVjdGlvbj4gc2VsZWN0aW9uID0gSFRNTENvbnRl
bnRTZWxlY3Rpb246OmNyZWF0ZShpbnNlcnRpb25Qb2ludCwgY2hpbGQpOwogCiAgICAgICAgIHNl
bGVjdGlvbnMtPmFwcGVuZChzZWxlY3Rpb24pOwogICAgICAgICBtX3NlbGVjdGlvblNldC5hZGQo
c2VsZWN0aW9uLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L0hUTUxDb250ZW50U2VsZWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxD
b250ZW50U2VsZWN0b3IuaAppbmRleCAyOWJkNjE2M2Y1MTJhYjQzZGZiNTdmNzYxM2M3YWE3N2Qy
NmQ4ZjU4Li4xNGVhMDU3YTBhNWVkNTc0N2NkY2E5ODk4ZDJhNWU1ZmE1M2M1ODc0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudFNlbGVjdG9yLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRTZWxlY3Rvci5oCkBAIC0x
MzAsNyArMTMwLDcgQEAgcHVibGljOgogICAgIEhUTUxDb250ZW50U2VsZWN0b3IoKTsKICAgICB+
SFRNTENvbnRlbnRTZWxlY3RvcigpOwogCi0gICAgdm9pZCBzZWxlY3QoSFRNTENvbnRlbnRFbGVt
ZW50KiwgSFRNTENvbnRlbnRTZWxlY3Rpb25MaXN0Kik7CisgICAgdm9pZCBzZWxlY3QoSW5zZXJ0
aW9uUG9pbnQqLCBIVE1MQ29udGVudFNlbGVjdGlvbkxpc3QqKTsKICAgICB2b2lkIHVuc2VsZWN0
KEhUTUxDb250ZW50U2VsZWN0aW9uTGlzdCopOwogICAgIEhUTUxDb250ZW50U2VsZWN0aW9uKiBm
aW5kRm9yKE5vZGUqIGtleSkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L0luc2VydGlvblBvaW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9J
bnNlcnRpb25Qb2ludC5oCmluZGV4IGRiNWEzZDA3MjVjNjIwMzBhYTYzZTk1NDdjZWU3MGRkNGFi
ZWQ4NGUuLmM0YzFhMmQ1Y2Q3OTYwODk1ZTA0ZDJiZjYzNmZlOWI2YmZiMTMyZmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0luc2VydGlvblBvaW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSW5zZXJ0aW9uUG9pbnQuaApAQCAtMzMsNiArMzMsNyBA
QAogCiAjaW5jbHVkZSAiSFRNTENvbnRlbnRTZWxlY3Rvci5oIgogI2luY2x1ZGUgIkhUTUxFbGVt
ZW50LmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CkBAIC00NCw2ICs0NSw4IEBAIHB1YmxpYzoKICAgICBib29sIGhhc1NlbGVjdGlvbigpIGNvbnN0
IHsgcmV0dXJuIG1fc2VsZWN0aW9ucy5maXJzdCgpOyB9CiAgICAgYm9vbCBpc1NoYWRvd0JvdW5k
YXJ5KCkgY29uc3Q7CiAKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2VsZWN0KCkg
Y29uc3QgPSAwOworCiBwcm90ZWN0ZWQ6CiAgICAgSW5zZXJ0aW9uUG9pbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQo
Y29uc3QgTm9kZVJlbmRlcmluZ0NvbnRleHQmKSBPVkVSUklERTsK
</data>
<flag name="review"
          id="132357"
          type_id="1"
          status="+"
          setter="morrita"
    />
          </attachment>
      

    </bug>

</bugzilla>