<?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>48697</bug_id>
          
          <creation_ts>2010-10-29 16:27:42 -0700</creation_ts>
          <short_desc>Provide means to store shadow DOM nodes on Element</short_desc>
          <delta_ts>2010-12-02 03:12:37 -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>PC</rep_platform>
          <op_sys>OS X 10.5</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>44907</blocked>
    
    <blocked>48980</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dimitri Glazkov (Google)">dglazkov</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>arv</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>eric</cc>
    
    <cc>hyatt</cc>
    
    <cc>jschuh</cc>
    
    <cc>mjs</cc>
    
    <cc>morrita</cc>
    
    <cc>sam</cc>
    
    <cc>tkent</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>302176</commentid>
    <comment_count>0</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-10-29 16:27:42 -0700</bug_when>
    <thetext>We need a way to associate shadow DOM subtrees with an element. Currently, it&apos;s done by hard-coding a RefPtr to a node into a custom-built RenderObject. Instead, we should move it to the Element, probably to ElementRareData?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>302580</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-11-01 00:27:47 -0700</bug_when>
    <thetext>Hmm, but isn&apos;t shadow tree more of a rendering concept than a DOM one? I don&apos;t know much about how it works and why, but from your description, it sounds like the current design is more logical.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>302733</commentid>
    <comment_count>2</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-11-01 09:12:11 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Hmm, but isn&apos;t shadow tree more of a rendering concept than a DOM one? I don&apos;t know much about how it works and why, but from your description, it sounds like the current design is more logical.

Sorry, I abbreviated description too much :)

Shadow DOM is just DOM. In no situation having DOM nodes&apos; lifetime being managed by a RenderObject is a good thing.

Moving shadow DOM nodes to live in DOM would allow a much more natural and less hand-coded way to build and maintain elements that need shadow DOM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>302750</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-11-01 09:50:23 -0700</bug_when>
    <thetext>I&apos;m not sure if I&apos;m convinced. Shadow DOM is not just DOM, it&apos;s an implementation detail of element&apos;s renderer. If anything, we should be further isolating it from regular DOM.

Its lifetime is quite different, too, because shadow DOM nodes never have wrappers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>302756</commentid>
    <comment_count>4</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-11-01 10:02:12 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; I&apos;m not sure if I&apos;m convinced. Shadow DOM is not just DOM, it&apos;s an implementation detail of element&apos;s renderer. If anything, we should be further isolating it from regular DOM.
&gt; 
&gt; Its lifetime is quite different, too, because shadow DOM nodes never have wrappers.

Whoa, I thought you were asking for clarification here, not actually arguing about validity of current design.

Shadow DOM is just DOM, period. There&apos;s nothing to argue here. The way it is implemented currently is backwards.

The absence of JS wrappers has little to do with the matter, since shadow DOM elements still participate in the rest of lifecycle, including events, attachment, detachment, tree and document insertion/removal. Getting it right in the current design is extremely difficult, tricky, and brittle. Arguing for this being hand-coded instead of using standard DOM machinery seems... Halloweeney? :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>302766</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-11-01 10:27:00 -0700</bug_when>
    <thetext>Hyatt says that shadow DOM will be just DOM as we move to XBL, so I recede. I still think that for its current use, existing design is appropriate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>304149</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-11-03 11:31:30 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; We need a way to associate shadow DOM subtrees with an element. Currently, it&apos;s done by hard-coding a RefPtr to a node into a custom-built RenderObject. Instead, we should move it to the Element, probably to ElementRareData?

Given what Hyatt has said to me many times about this, I think this is OK.

Putting the root of the shadow DOM tree into ElementRareData seems OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309913</commentid>
    <comment_count>7</comment_count>
      <attachid>74035</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-11-16 13:40:55 -0800</bug_when>
    <thetext>Created attachment 74035
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309921</commentid>
    <comment_count>8</comment_count>
      <attachid>74038</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-11-16 13:50:18 -0800</bug_when>
    <thetext>Created attachment 74038
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310100</commentid>
    <comment_count>9</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-11-16 19:38:09 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; Created an attachment (id=74038) [details]
&gt; Patch

This one does what the bug says, but I am pursuing a slightly different approach. If it doesn&apos;t pan out, I&apos;ll flip this patch to r?.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314703</commentid>
    <comment_count>10</comment_count>
      <attachid>74038</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-11-29 16:07:22 -0800</bug_when>
    <thetext>Comment on attachment 74038
Patch

Looks good.  Any objection to r+?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314776</commentid>
    <comment_count>11</comment_count>
      <attachid>74038</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-11-29 17:48:58 -0800</bug_when>
    <thetext>Comment on attachment 74038
Patch

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

&gt; WebCore/dom/Element.cpp:895
&gt; +void Element::removedFromTree(bool deep)

Just for curious: is the order correct?
In a naive view, ContainerNode::removedFromTree() should be called afte shadow-&gt;removeFromTree() because
it should be reverse order of what insertedIntoTree() does.

&gt; WebCore/dom/Element.cpp:@
&gt;  void Element::detach()

Same question as one for removedFromTree().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314815</commentid>
    <comment_count>12</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-11-29 19:04:46 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 74038 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=74038&amp;action=review
&gt; 
&gt; &gt; WebCore/dom/Element.cpp:895
&gt; &gt; +void Element::removedFromTree(bool deep)
&gt; 
&gt; Just for curious: is the order correct?
&gt; In a naive view, ContainerNode::removedFromTree() should be called afte shadow-&gt;removeFromTree() because
&gt; it should be reverse order of what insertedIntoTree() does.
&gt; 
&gt; &gt; WebCore/dom/Element.cpp:@
&gt; &gt;  void Element::detach()
&gt; 
&gt; Same question as one for removedFromTree().

Ah, good question. Think of shadowRoot as an extra child. The order in which the children are inserted/attached is the same (and not the reverse) as their removal/detachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314853</commentid>
    <comment_count>13</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-11-29 21:43:02 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; Ah, good question. Think of shadowRoot as an extra child. The order in which the children are inserted/attached is the same (and not the reverse) as their removal/detachment.
Makes sense. Thank you for the clarification.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>315083</commentid>
    <comment_count>14</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-11-30 09:07:59 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 74038 [details])
&gt; Looks good.  Any objection to r+?

Yup, this is ready for review. I thought I could make this depend on bug 50184, to make the operation of setting shadowHost/shadowRoot atomic, but turns out I can&apos;t twine them together until all current shadow DOM consumers are converted to the new model.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>315460</commentid>
    <comment_count>15</comment_count>
      <attachid>74038</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-11-30 17:59:37 -0800</bug_when>
    <thetext>Comment on attachment 74038
Patch

ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>315554</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-30 23:41:50 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 74038:

fast/loader/recursive-before-unload-crash.html
fast/images/load-img-with-empty-src.html

Please file bugs against the tests.  These tests were authored by beidson@apple.com, eric@webkit.org, and mitz@webkit.org.  The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>315607</commentid>
    <comment_count>17</comment_count>
      <attachid>74038</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-12-01 05:51:59 -0800</bug_when>
    <thetext>Comment on attachment 74038
Patch

Rejecting patch 74038 from commit-queue.

Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=eseidel-cq-sl&apos;, &apos;build&apos;, &apos;--no-clean&apos;, &apos;--no-update&apos;, &apos;--build-style=both&apos;]&quot; exit_code: 1
ERROR: Working directory has local commits, pass --force-clean to continue.

Full output: http://queues.webkit.org/results/6572010</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>315684</commentid>
    <comment_count>18</comment_count>
      <attachid>74038</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-12-01 09:18:50 -0800</bug_when>
    <thetext>Comment on attachment 74038
Patch

Rejecting patch 74038 from commit-queue.

Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=eseidel-cq-sl&apos;, &apos;build&apos;, &apos;--no-clean&apos;, &apos;--no-update&apos;, &apos;--build-style=both&apos;]&quot; exit_code: 2
Last 500 characters of output:
/WebKitBuild/WebCore.build/Debug/WebCore.build/Objects-normal/x86_64/DOMSVGAltGlyphElement.o /Projects/CommitQueue/WebKitBuild/Debug/DerivedSources/WebCore/DOMSVGAltGlyphElement.mm normal x86_64 objective-c++ com.apple.compilers.gcc.4_2
	CompileC /Projects/CommitQueue/WebKitBuild/WebCore.build/Debug/WebCore.build/Objects-normal/x86_64/DOMSVGAngle.o /Projects/CommitQueue/WebKitBuild/Debug/DerivedSources/WebCore/DOMSVGAngle.mm normal x86_64 objective-c++ com.apple.compilers.gcc.4_2
(19 failures)


Full output: http://queues.webkit.org/results/6671012</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>315718</commentid>
    <comment_count>19</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-12-01 10:23:33 -0800</bug_when>
    <thetext>More local commits trouble, see bug 49798.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>315785</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-12-01 11:54:41 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 74038:

fast/images/load-img-with-empty-src.html
fast/preloader/script.html

Please file bugs against the tests.  These tests were authored by abarth@webkit.org and mitz@webkit.org.  The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>315954</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-12-01 17:12:39 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 74038:

compositing/iframes/overlapped-nested-iframes.html
fast/dom/Geolocation/timestamp.html

Please file bugs against the tests.  These tests were authored by simon.fraser@apple.com.  The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>315993</commentid>
    <comment_count>22</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-12-01 19:34:39 -0800</bug_when>
    <thetext>(In reply to comment #21)
&gt; The commit-queue encountered the following flaky tests while processing attachment 74038 [details]:
&gt; 
&gt; compositing/iframes/overlapped-nested-iframes.html
&gt; fast/dom/Geolocation/timestamp.html
&gt; 
&gt; Please file bugs against the tests.  These tests were authored by simon.fraser@apple.com.  The commit-queue is continuing to process your patch.

I don&apos;t get it. Is commit queue choking on this patch? Does anybody know how to do a bot-Heimlich?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316002</commentid>
    <comment_count>23</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-12-01 20:10:52 -0800</bug_when>
    <thetext>The tree has been perma-red, and there are at least 3 badly flaky tests at the moment.  Basically the cq is useless when the tree is this bad.  If someone fixes it, the queue and bots will start workign again. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316016</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-12-01 22:29:29 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 74038:

fast/frames/flattening/iframe-flattening-fixed-height.html
canvas/philip/tests/2d.text.draw.align.center.html

Please file bugs against the tests.  These tests were authored by Chang.Shu@nokia.com, kenneth@webkit.org, and kling@webkit.org.  The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316040</commentid>
    <comment_count>25</comment_count>
      <attachid>74038</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-12-02 01:15:20 -0800</bug_when>
    <thetext>Comment on attachment 74038
Patch

Clearing flags on attachment: 74038

Committed r73114: &lt;http://trac.webkit.org/changeset/73114&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316041</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-12-02 01:15:28 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316068</commentid>
    <comment_count>27</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-12-02 03:12:37 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 74038:

animations/combo-transform-translate+scale.html
fast/preloader/script.html

Please file bugs against the tests.  These tests were authored by abarth@webkit.org, cmarrin@apple.com, darin@apple.com, ojan@chromium.org, and pol@apple.com.  The commit-queue is continuing to process your patch.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74035</attachid>
            <date>2010-11-16 13:40:55 -0800</date>
            <delta_ts>2010-11-16 13:50:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-48697-20101116134053.patch</filename>
            <type>text/plain</type>
            <size>6673</size>
            <attacher name="Dimitri Glazkov (Google)">dglazkov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YTNjZmQzNmQ2MDkxZTE2NDE5NjQwYTk1MzA1ZDQ3MmJkYzEwZDg1YS4uODkyMTc3Yjc5ZjAyMzYy
NjNiNzhmNTUwMzk2OGJjMDRhY2U4YmM0MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxMC0xMS0xNiAgRGlt
aXRyaSBHbGF6a292ICA8ZGdsYXprb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFByb3ZpZGUgbWVhbnMgdG8gc3RvcmUgc2hh
ZG93IERPTSBub2RlcyBvbiBFbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00ODY5NworCisgICAgICAgIEFkZHMgc2hhZG93IERPTSBhd2FyZW5l
c3MgdG8gdGhlIHN0YW5kYXJkIE5vZGUgYXR0YWNoL2RldGFjaCwKKyAgICAgICAgZG9jdW1lbnQg
YW5kIHRyZWUgaW5zZXJ0aW9uIGFuZCByZW1vdmFsIGN5Y2xlLgorCisgICAgICAgIE5vIG5ldyB0
ZXN0cywgYmVjYXVzZSB0aGUgY29kZSBpcyBub3QgeWV0IHVzZWQuCisKKyAgICAgICAgKiBkb20v
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjppbnNlcnRlZEludG9Eb2N1
bWVudCk6IEFkZGVkIGxvZ2ljIHRvIGNhc2NhZGUgZG93biB0byBzaGFkb3cgRE9NLCBpZiBwcmVz
ZW50LgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6cmVtb3ZlZEZyb21Eb2N1bWVudCk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6aW5zZXJ0ZWRJbnRvVHJlZSk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6cmVtb3ZlZEZyb21UcmVlKTogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjphdHRhY2gpOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OkVsZW1lbnQ6OmRldGFjaCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6
cmVjYWxjU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2hhZG93Um9vdCk6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2V0U2hhZG93Um9vdCk6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6Y2xlYXJTaGFkb3dSb290KTogQWRkZWQuCisgICAg
ICAgICogZG9tL0VsZW1lbnQuaDogQWRkZWQgZGVjbHMuCisgICAgICAgICogZG9tL0VsZW1lbnRS
YXJlRGF0YS5oOiBBZGRlZCBhIG1lbWJlciB0byBob2xkIGEgUmVmUHRyIHRvIHRoZSBzaGFkb3cg
RE9NIHJvb3QgZm9yIHRoZSBlbGVtZW50LgorCiAyMDEwLTExLTE2ICBQYXZlbCBGZWxkbWFuICA8
cGZlbGRtYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFl1cnkgU2VtaWto
YXRza3kuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1dlYkNvcmUvZG9t
L0VsZW1lbnQuY3BwCmluZGV4IGY2MzUzMDA3MzRlM2VhYzJiYWM0NWI2NDZjN2NjMzc5NjUzMjNh
NTUuLjBiNzE0ZDlhMDEzZTQxZTIxZjI3ZWY1MGJiNDM5NWU1NzgxM2I1ZmQgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBA
IC04NTYsNiArODU2LDggQEAgdm9pZCBFbGVtZW50OjppbnNlcnRlZEludG9Eb2N1bWVudCgpCiAg
ICAgLy8gbmVlZCB0byBkbyBzdXBlcmNsYXNzIHByb2Nlc3NpbmcgZmlyc3Qgc28gaW5Eb2N1bWVu
dCgpIGlzIHRydWUKICAgICAvLyBieSB0aGUgdGltZSB3ZSByZWFjaCB1cGRhdGVJZAogICAgIENv
bnRhaW5lck5vZGU6Omluc2VydGVkSW50b0RvY3VtZW50KCk7CisgICAgaWYgKE5vZGUqIHNoYWRv
dyA9IHNoYWRvd1Jvb3QoKSkKKyAgICAgICAgc2hhZG93LT5pbnNlcnRlZEludG9Eb2N1bWVudCgp
OwogCiAgICAgaWYgKGhhc0lEKCkpIHsKICAgICAgICAgaWYgKG1fYXR0cmlidXRlTWFwKSB7CkBA
IC04NzcsNiArODc5LDI2IEBAIHZvaWQgRWxlbWVudDo6cmVtb3ZlZEZyb21Eb2N1bWVudCgpCiAg
ICAgfQogCiAgICAgQ29udGFpbmVyTm9kZTo6cmVtb3ZlZEZyb21Eb2N1bWVudCgpOworICAgIGlm
IChOb2RlKiBzaGFkb3cgPSBzaGFkb3dSb290KCkpCisgICAgICAgIHNoYWRvdy0+cmVtb3ZlZEZy
b21Eb2N1bWVudCgpOworfQorCit2b2lkIEVsZW1lbnQ6Omluc2VydGVkSW50b1RyZWUoYm9vbCBk
ZWVwKQoreworICAgIENvbnRhaW5lck5vZGU6Omluc2VydGVkSW50b1RyZWUoZGVlcCk7CisgICAg
aWYgKCFkZWVwKQorICAgICAgICByZXR1cm47CisgICAgaWYgKE5vZGUqIHNoYWRvdyA9IHNoYWRv
d1Jvb3QoKSkKKyAgICAgICAgc2hhZG93LT5pbnNlcnRlZEludG9UcmVlKHRydWUpOworfQorCit2
b2lkIEVsZW1lbnQ6OnJlbW92ZWRGcm9tVHJlZShib29sIGRlZXApCit7CisgICAgQ29udGFpbmVy
Tm9kZTo6cmVtb3ZlZEZyb21UcmVlKGRlZXApOworICAgIGlmICghZGVlcCkKKyAgICAgICAgcmV0
dXJuOworICAgIGlmIChOb2RlKiBzaGFkb3cgPSBzaGFkb3dSb290KCkpCisgICAgICAgIHNoYWRv
dy0+cmVtb3ZlZEZyb21UcmVlKHRydWUpOwogfQogCiB2b2lkIEVsZW1lbnQ6OmF0dGFjaCgpCkBA
IC04ODYsNiArOTA4LDggQEAgdm9pZCBFbGVtZW50OjphdHRhY2goKQogCiAgICAgY3JlYXRlUmVu
ZGVyZXJJZk5lZWRlZCgpOwogICAgIENvbnRhaW5lck5vZGU6OmF0dGFjaCgpOworICAgIGlmIChO
b2RlKiBzaGFkb3cgPSBzaGFkb3dSb290KCkpCisgICAgICAgIHNoYWRvdy0+YXR0YWNoKCk7CiAg
ICAgaWYgKGhhc1JhcmVEYXRhKCkpIHsgICAKICAgICAgICAgRWxlbWVudFJhcmVEYXRhKiBkYXRh
ID0gcmFyZURhdGEoKTsKICAgICAgICAgaWYgKGRhdGEtPm5lZWRzRm9jdXNBcHBlYXJhbmNlVXBk
YXRlU29vbkFmdGVyQXR0YWNoKCkpIHsKQEAgLTkwNyw2ICs5MzEsOCBAQCB2b2lkIEVsZW1lbnQ6
OmRldGFjaCgpCiAgICAgaWYgKGhhc1JhcmVEYXRhKCkpCiAgICAgICAgIHJhcmVEYXRhKCktPnJl
c2V0Q29tcHV0ZWRTdHlsZSgpOwogICAgIENvbnRhaW5lck5vZGU6OmRldGFjaCgpOworICAgIGlm
IChOb2RlKiBzaGFkb3cgPSBzaGFkb3dSb290KCkpCisgICAgICAgIHNoYWRvdy0+ZGV0YWNoKCk7
CiAKICAgICBSZW5kZXJXaWRnZXQ6OnJlc3VtZVdpZGdldEhpZXJhcmNoeVVwZGF0ZXMoKTsKIH0K
QEAgLTk2MCwxMCArOTg2LDggQEAgdm9pZCBFbGVtZW50OjpyZWNhbGNTdHlsZShTdHlsZUNoYW5n
ZSBjaGFuZ2UpCiAgICAgYm9vbCBoYXNQb3NpdGlvbmFsUnVsZXMgPSBuZWVkc1N0eWxlUmVjYWxj
KCkgJiYgY3VycmVudFN0eWxlICYmIGN1cnJlbnRTdHlsZS0+Y2hpbGRyZW5BZmZlY3RlZEJ5UG9z
aXRpb25hbFJ1bGVzKCk7CiAgICAgYm9vbCBoYXNEaXJlY3RBZGphY2VudFJ1bGVzID0gY3VycmVu
dFN0eWxlICYmIGN1cnJlbnRTdHlsZS0+Y2hpbGRyZW5BZmZlY3RlZEJ5RGlyZWN0QWRqYWNlbnRS
dWxlcygpOwogCi0jaWYgRU5BQkxFKFNWRykKLSAgICBpZiAoIWhhc1BhcmVudFN0eWxlICYmIGlz
U2hhZG93Tm9kZSgpICYmIGlzU1ZHRWxlbWVudCgpKQorICAgIGlmICghaGFzUGFyZW50U3R5bGUg
JiYgaXNTaGFkb3dOb2RlKCkpCiAgICAgICAgIGhhc1BhcmVudFN0eWxlID0gdHJ1ZTsKLSNlbmRp
ZgogCiAgICAgaWYgKChjaGFuZ2UgPiBOb0NoYW5nZSB8fCBuZWVkc1N0eWxlUmVjYWxjKCkpKSB7
CiAgICAgICAgIGlmIChoYXNSYXJlRGF0YSgpKQpAQCAtMTA0MiwxMSArMTA2Niw0MyBAQCB2b2lk
IEVsZW1lbnQ6OnJlY2FsY1N0eWxlKFN0eWxlQ2hhbmdlIGNoYW5nZSkKICAgICAgICAgaWYgKG4t
PmlzRWxlbWVudE5vZGUoKSkKICAgICAgICAgICAgIGZvcmNlQ2hlY2tPZk5leHRFbGVtZW50U2li
bGluZyA9IGNoaWxkUnVsZXNDaGFuZ2VkICYmIGhhc0RpcmVjdEFkamFjZW50UnVsZXM7CiAgICAg
fQorICAgIC8vIEZJWE1FOiBUaGlzIGRvZXMgbm90IGNhcmUgYWJvdXQgc2libGluZyBjb21iaW5h
dG9ycy4gV2lsbCBiZSBuZWNlc3NhcnkgaW4gWEJMMiB3b3JsZC4KKyAgICBpZiAoTm9kZSogc2hh
ZG93ID0gc2hhZG93Um9vdCgpKSB7CisgICAgICAgIGlmIChjaGFuZ2UgPj0gSW5oZXJpdCB8fCBz
aGFkb3ctPmlzVGV4dE5vZGUoKSB8fCBzaGFkb3ctPmNoaWxkTmVlZHNTdHlsZVJlY2FsYygpIHx8
IHNoYWRvdy0+bmVlZHNTdHlsZVJlY2FsYygpKQorICAgICAgICAgICAgc2hhZG93LT5yZWNhbGNT
dHlsZShjaGFuZ2UpOworICAgIH0KIAogICAgIGNsZWFyTmVlZHNTdHlsZVJlY2FsYygpOwogICAg
IGNsZWFyQ2hpbGROZWVkc1N0eWxlUmVjYWxjKCk7CiB9CiAKK05vZGUqIEVsZW1lbnQ6OnNoYWRv
d1Jvb3QoKQoreworICAgIHJldHVybiBoYXNSYXJlRGF0YSgpID8gcmFyZURhdGEoKS0+bV9zaGFk
b3dSb290LmdldCgpIDogMDsKK30KKwordm9pZCBFbGVtZW50OjpzZXRTaGFkb3dSb290KE5vZGUq
IG5vZGUpCit7CisgICAgQVNTRVJUKG5vZGUpOworCisgICAgLy8gRklYTUU6IE9uY2UgYWxsIGlu
c3RhbmNlcyBvZiBzaGFkb3cgRE9NIGFyZSBjb252ZXJ0ZWQgdG8gdXNlIHRoaXMgY29kZSwgYWRk
IHNldHRpbmcgb2Ygc2hhZG93IGhvc3QgKHNoYWRvd1BhcmVudCkgb24gbm9kZS4KKyAgICBlbnN1
cmVSYXJlRGF0YSgpLT5tX3NoYWRvd1Jvb3QgPSBub2RlOworfQorCit2b2lkIEVsZW1lbnQ6OmNs
ZWFyU2hhZG93Um9vdCgpCit7CisgICAgaWYgKCFoYXNSYXJlRGF0YSgpKQorICAgICAgICByZXR1
cm47CisKKyAgICBSZWZQdHI8Tm9kZT4gc2hhZG93Um9vdCA9IHJhcmVEYXRhKCktPm1fc2hhZG93
Um9vdC5yZWxlYXNlKCk7CisgICAgZG9jdW1lbnQoKS0+cmVtb3ZlRm9jdXNlZE5vZGVPZlN1YnRy
ZWUoc2hhZG93Um9vdC5nZXQoKSk7CisgICAgLy8gRklYTUU6IE9uY2UgYWxsIGluc3RhbmNlcyBv
ZiBzaGFkb3cgRE9NIGFyZSBjb252ZXJ0ZWQgdG8gdXNlIHRoaXMgY29kZSwgYWRkIGNsZWFyaW5n
IG9mIHNoYWRvdyBob3N0IChzaGFkb3dQYXJlbnQpLgorICAgIGlmIChzaGFkb3dSb290LT5pbkRv
Y3VtZW50KCkpCisgICAgICAgIHNoYWRvd1Jvb3QtPnJlbW92ZWRGcm9tRG9jdW1lbnQoKTsKKyAg
ICBlbHNlCisgICAgICAgIHNoYWRvd1Jvb3QtPnJlbW92ZWRGcm9tVHJlZSh0cnVlKTsKK30KKwog
Ym9vbCBFbGVtZW50OjpjaGlsZFR5cGVBbGxvd2VkKE5vZGVUeXBlIHR5cGUpCiB7CiAgICAgc3dp
dGNoICh0eXBlKSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9XZWJDb3Jl
L2RvbS9FbGVtZW50LmgKaW5kZXggN2Q0Yjk0Yzc4YjYxY2U5ZWViMGE5YjBkNzMxNDY0YmE4NTQy
NjRiMS4uZWRhMWZlMjFiYTI3OGNkMTllYjlhNzZhNDBkZTRiMGY4NTA0ZDRlYyAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9kb20vRWxlbWVudC5oCisrKyBiL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAt
MjI1LDYgKzIyNSwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0
ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKTsKICAgICB2aXJ0dWFsIHZvaWQg
cmVjYWxjU3R5bGUoU3R5bGVDaGFuZ2UgPSBOb0NoYW5nZSk7CiAKKyAgICBOb2RlKiBzaGFkb3dS
b290KCk7CisgICAgdm9pZCBzZXRTaGFkb3dSb290KE5vZGUqKTsKKyAgICB2b2lkIGNsZWFyU2hh
ZG93Um9vdCgpOworCiAgICAgUmVuZGVyU3R5bGUqIGNvbXB1dGVkU3R5bGUoUHNldWRvSWQgPSBO
T1BTRVVETyk7CiAKICAgICBBdG9taWNTdHJpbmcgY29tcHV0ZUluaGVyaXRlZExhbmd1YWdlKCkg
Y29uc3Q7CkBAIC0zMzcsNiArMzQxLDggQEAgcHJvdGVjdGVkOgogCiAgICAgdmlydHVhbCB2b2lk
IGluc2VydGVkSW50b0RvY3VtZW50KCk7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZWRGcm9tRG9j
dW1lbnQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgaW5zZXJ0ZWRJbnRvVHJlZShib29sKTsKKyAgICB2
aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb21UcmVlKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBjaGls
ZHJlbkNoYW5nZWQoYm9vbCBjaGFuZ2VkQnlQYXJzZXIgPSBmYWxzZSwgTm9kZSogYmVmb3JlQ2hh
bmdlID0gMCwgTm9kZSogYWZ0ZXJDaGFuZ2UgPSAwLCBpbnQgY2hpbGRDb3VudERlbHRhID0gMCk7
CiAKICAgICAvLyBUaGUgaW1wbGVtZW50YXRpb24gb2YgRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdl
ZCgpIGNhbGxzIHRoZSBmb2xsb3dpbmcgdHdvIGZ1bmN0aW9ucy4KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oIGIvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmgK
aW5kZXggMDZiZmUwYzdkYWI3MjgyNTE3NjZkN2U1YWVkZTRiYzJlYzg2ZTYxYy4uZjdmMzBiYjcw
OGQxZmU4MzVlZTY4ZmFhOTA1NzYzYmI2NDg4NmM0NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20v
RWxlbWVudFJhcmVEYXRhLmgKKysrIGIvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmgKQEAg
LTQxLDYgKzQxLDcgQEAgcHVibGljOgogCiAgICAgSW50U2l6ZSBtX21pbmltdW1TaXplRm9yUmVz
aXppbmc7CiAgICAgUmVmUHRyPFJlbmRlclN0eWxlPiBtX2NvbXB1dGVkU3R5bGU7CisgICAgUmVm
UHRyPE5vZGU+IG1fc2hhZG93Um9vdDsKIAogICAgIE93blB0cjxEYXRhc2V0RE9NU3RyaW5nTWFw
PiBtX2RhdGFzZXRET01TdHJpbmdNYXA7CiAgICAgT3duUHRyPENsYXNzTGlzdD4gbV9jbGFzc0xp
c3Q7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74038</attachid>
            <date>2010-11-16 13:50:18 -0800</date>
            <delta_ts>2010-12-02 01:15:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-48697-20101116135017.patch</filename>
            <type>text/plain</type>
            <size>6695</size>
            <attacher name="Dimitri Glazkov (Google)">dglazkov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YTNjZmQzNmQ2MDkxZTE2NDE5NjQwYTk1MzA1ZDQ3MmJkYzEwZDg1YS4uODkyMTc3Yjc5ZjAyMzYy
NjNiNzhmNTUwMzk2OGJjMDRhY2U4YmM0MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxMC0xMS0xNiAgRGlt
aXRyaSBHbGF6a292ICA8ZGdsYXprb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFByb3ZpZGUgbWVhbnMgdG8gc3RvcmUgc2hh
ZG93IERPTSBub2RlcyBvbiBFbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00ODY5NworCisgICAgICAgIEFkZHMgc2hhZG93IERPTSBhd2FyZW5l
c3MgdG8gdGhlIHN0YW5kYXJkIE5vZGUgYXR0YWNoL2RldGFjaCwKKyAgICAgICAgZG9jdW1lbnQg
YW5kIHRyZWUgaW5zZXJ0aW9uIGFuZCByZW1vdmFsIGN5Y2xlLgorCisgICAgICAgIE5vIG5ldyB0
ZXN0cywgYmVjYXVzZSB0aGUgY29kZSBpcyBub3QgeWV0IHVzZWQuCisKKyAgICAgICAgKiBkb20v
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjppbnNlcnRlZEludG9Eb2N1
bWVudCk6IEFkZGVkIGxvZ2ljIHRvIGNhc2NhZGUgZG93biB0byBzaGFkb3cgRE9NLCBpZiBwcmVz
ZW50LgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6cmVtb3ZlZEZyb21Eb2N1bWVudCk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6aW5zZXJ0ZWRJbnRvVHJlZSk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6cmVtb3ZlZEZyb21UcmVlKTogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjphdHRhY2gpOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OkVsZW1lbnQ6OmRldGFjaCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6
cmVjYWxjU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2hhZG93Um9vdCk6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2V0U2hhZG93Um9vdCk6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6Y2xlYXJTaGFkb3dSb290KTogQWRkZWQuCisgICAg
ICAgICogZG9tL0VsZW1lbnQuaDogQWRkZWQgZGVjbHMuCisgICAgICAgICogZG9tL0VsZW1lbnRS
YXJlRGF0YS5oOiBBZGRlZCBhIG1lbWJlciB0byBob2xkIGEgUmVmUHRyIHRvIHRoZSBzaGFkb3cg
RE9NIHJvb3QgZm9yIHRoZSBlbGVtZW50LgorCiAyMDEwLTExLTE2ICBQYXZlbCBGZWxkbWFuICA8
cGZlbGRtYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFl1cnkgU2VtaWto
YXRza3kuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1dlYkNvcmUvZG9t
L0VsZW1lbnQuY3BwCmluZGV4IGY2MzUzMDA3MzRlM2VhYzJiYWM0NWI2NDZjN2NjMzc5NjUzMjNh
NTUuLjg5NDA2M2JjNmIyYWQ1MDE4ZDU2YjJjNmQ5YjVkMTMwNDQ0MzRiYmEgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBA
IC04NTYsNiArODU2LDggQEAgdm9pZCBFbGVtZW50OjppbnNlcnRlZEludG9Eb2N1bWVudCgpCiAg
ICAgLy8gbmVlZCB0byBkbyBzdXBlcmNsYXNzIHByb2Nlc3NpbmcgZmlyc3Qgc28gaW5Eb2N1bWVu
dCgpIGlzIHRydWUKICAgICAvLyBieSB0aGUgdGltZSB3ZSByZWFjaCB1cGRhdGVJZAogICAgIENv
bnRhaW5lck5vZGU6Omluc2VydGVkSW50b0RvY3VtZW50KCk7CisgICAgaWYgKE5vZGUqIHNoYWRv
dyA9IHNoYWRvd1Jvb3QoKSkKKyAgICAgICAgc2hhZG93LT5pbnNlcnRlZEludG9Eb2N1bWVudCgp
OwogCiAgICAgaWYgKGhhc0lEKCkpIHsKICAgICAgICAgaWYgKG1fYXR0cmlidXRlTWFwKSB7CkBA
IC04NzcsNiArODc5LDI2IEBAIHZvaWQgRWxlbWVudDo6cmVtb3ZlZEZyb21Eb2N1bWVudCgpCiAg
ICAgfQogCiAgICAgQ29udGFpbmVyTm9kZTo6cmVtb3ZlZEZyb21Eb2N1bWVudCgpOworICAgIGlm
IChOb2RlKiBzaGFkb3cgPSBzaGFkb3dSb290KCkpCisgICAgICAgIHNoYWRvdy0+cmVtb3ZlZEZy
b21Eb2N1bWVudCgpOworfQorCit2b2lkIEVsZW1lbnQ6Omluc2VydGVkSW50b1RyZWUoYm9vbCBk
ZWVwKQoreworICAgIENvbnRhaW5lck5vZGU6Omluc2VydGVkSW50b1RyZWUoZGVlcCk7CisgICAg
aWYgKCFkZWVwKQorICAgICAgICByZXR1cm47CisgICAgaWYgKE5vZGUqIHNoYWRvdyA9IHNoYWRv
d1Jvb3QoKSkKKyAgICAgICAgc2hhZG93LT5pbnNlcnRlZEludG9UcmVlKHRydWUpOworfQorCit2
b2lkIEVsZW1lbnQ6OnJlbW92ZWRGcm9tVHJlZShib29sIGRlZXApCit7CisgICAgQ29udGFpbmVy
Tm9kZTo6cmVtb3ZlZEZyb21UcmVlKGRlZXApOworICAgIGlmICghZGVlcCkKKyAgICAgICAgcmV0
dXJuOworICAgIGlmIChOb2RlKiBzaGFkb3cgPSBzaGFkb3dSb290KCkpCisgICAgICAgIHNoYWRv
dy0+cmVtb3ZlZEZyb21UcmVlKHRydWUpOwogfQogCiB2b2lkIEVsZW1lbnQ6OmF0dGFjaCgpCkBA
IC04ODYsNiArOTA4LDggQEAgdm9pZCBFbGVtZW50OjphdHRhY2goKQogCiAgICAgY3JlYXRlUmVu
ZGVyZXJJZk5lZWRlZCgpOwogICAgIENvbnRhaW5lck5vZGU6OmF0dGFjaCgpOworICAgIGlmIChO
b2RlKiBzaGFkb3cgPSBzaGFkb3dSb290KCkpCisgICAgICAgIHNoYWRvdy0+YXR0YWNoKCk7CiAg
ICAgaWYgKGhhc1JhcmVEYXRhKCkpIHsgICAKICAgICAgICAgRWxlbWVudFJhcmVEYXRhKiBkYXRh
ID0gcmFyZURhdGEoKTsKICAgICAgICAgaWYgKGRhdGEtPm5lZWRzRm9jdXNBcHBlYXJhbmNlVXBk
YXRlU29vbkFmdGVyQXR0YWNoKCkpIHsKQEAgLTkwNyw2ICs5MzEsOCBAQCB2b2lkIEVsZW1lbnQ6
OmRldGFjaCgpCiAgICAgaWYgKGhhc1JhcmVEYXRhKCkpCiAgICAgICAgIHJhcmVEYXRhKCktPnJl
c2V0Q29tcHV0ZWRTdHlsZSgpOwogICAgIENvbnRhaW5lck5vZGU6OmRldGFjaCgpOworICAgIGlm
IChOb2RlKiBzaGFkb3cgPSBzaGFkb3dSb290KCkpCisgICAgICAgIHNoYWRvdy0+ZGV0YWNoKCk7
CiAKICAgICBSZW5kZXJXaWRnZXQ6OnJlc3VtZVdpZGdldEhpZXJhcmNoeVVwZGF0ZXMoKTsKIH0K
QEAgLTk2MCwxMCArOTg2LDggQEAgdm9pZCBFbGVtZW50OjpyZWNhbGNTdHlsZShTdHlsZUNoYW5n
ZSBjaGFuZ2UpCiAgICAgYm9vbCBoYXNQb3NpdGlvbmFsUnVsZXMgPSBuZWVkc1N0eWxlUmVjYWxj
KCkgJiYgY3VycmVudFN0eWxlICYmIGN1cnJlbnRTdHlsZS0+Y2hpbGRyZW5BZmZlY3RlZEJ5UG9z
aXRpb25hbFJ1bGVzKCk7CiAgICAgYm9vbCBoYXNEaXJlY3RBZGphY2VudFJ1bGVzID0gY3VycmVu
dFN0eWxlICYmIGN1cnJlbnRTdHlsZS0+Y2hpbGRyZW5BZmZlY3RlZEJ5RGlyZWN0QWRqYWNlbnRS
dWxlcygpOwogCi0jaWYgRU5BQkxFKFNWRykKLSAgICBpZiAoIWhhc1BhcmVudFN0eWxlICYmIGlz
U2hhZG93Tm9kZSgpICYmIGlzU1ZHRWxlbWVudCgpKQorICAgIGlmICghaGFzUGFyZW50U3R5bGUg
JiYgaXNTaGFkb3dOb2RlKCkpCiAgICAgICAgIGhhc1BhcmVudFN0eWxlID0gdHJ1ZTsKLSNlbmRp
ZgogCiAgICAgaWYgKChjaGFuZ2UgPiBOb0NoYW5nZSB8fCBuZWVkc1N0eWxlUmVjYWxjKCkpKSB7
CiAgICAgICAgIGlmIChoYXNSYXJlRGF0YSgpKQpAQCAtMTA0MiwxMSArMTA2Niw0MyBAQCB2b2lk
IEVsZW1lbnQ6OnJlY2FsY1N0eWxlKFN0eWxlQ2hhbmdlIGNoYW5nZSkKICAgICAgICAgaWYgKG4t
PmlzRWxlbWVudE5vZGUoKSkKICAgICAgICAgICAgIGZvcmNlQ2hlY2tPZk5leHRFbGVtZW50U2li
bGluZyA9IGNoaWxkUnVsZXNDaGFuZ2VkICYmIGhhc0RpcmVjdEFkamFjZW50UnVsZXM7CiAgICAg
fQorICAgIC8vIEZJWE1FOiBUaGlzIGRvZXMgbm90IGNhcmUgYWJvdXQgc2libGluZyBjb21iaW5h
dG9ycy4gV2lsbCBiZSBuZWNlc3NhcnkgaW4gWEJMMiB3b3JsZC4KKyAgICBpZiAoTm9kZSogc2hh
ZG93ID0gc2hhZG93Um9vdCgpKSB7CisgICAgICAgIGlmIChjaGFuZ2UgPj0gSW5oZXJpdCB8fCBz
aGFkb3ctPmlzVGV4dE5vZGUoKSB8fCBzaGFkb3ctPmNoaWxkTmVlZHNTdHlsZVJlY2FsYygpIHx8
IHNoYWRvdy0+bmVlZHNTdHlsZVJlY2FsYygpKQorICAgICAgICAgICAgc2hhZG93LT5yZWNhbGNT
dHlsZShjaGFuZ2UpOworICAgIH0KIAogICAgIGNsZWFyTmVlZHNTdHlsZVJlY2FsYygpOwogICAg
IGNsZWFyQ2hpbGROZWVkc1N0eWxlUmVjYWxjKCk7CiB9CiAKK05vZGUqIEVsZW1lbnQ6OnNoYWRv
d1Jvb3QoKQoreworICAgIHJldHVybiBoYXNSYXJlRGF0YSgpID8gcmFyZURhdGEoKS0+bV9zaGFk
b3dSb290LmdldCgpIDogMDsKK30KKwordm9pZCBFbGVtZW50OjpzZXRTaGFkb3dSb290KFBhc3NS
ZWZQdHI8Tm9kZT4gbm9kZSkKK3sKKyAgICBBU1NFUlQobm9kZSk7CisKKyAgICAvLyBGSVhNRTog
T25jZSBhbGwgaW5zdGFuY2VzIG9mIHNoYWRvdyBET00gYXJlIGNvbnZlcnRlZCB0byB1c2UgdGhp
cyBjb2RlLCBhZGQgc2V0dGluZyBvZiBzaGFkb3cgaG9zdCAoc2hhZG93UGFyZW50KSBvbiBub2Rl
LgorICAgIGVuc3VyZVJhcmVEYXRhKCktPm1fc2hhZG93Um9vdCA9IG5vZGU7Cit9CisKK3ZvaWQg
RWxlbWVudDo6Y2xlYXJTaGFkb3dSb290KCkKK3sKKyAgICBpZiAoIWhhc1JhcmVEYXRhKCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIFJlZlB0cjxOb2RlPiBzaGFkb3dSb290ID0gcmFyZURhdGEo
KS0+bV9zaGFkb3dSb290LnJlbGVhc2UoKTsKKyAgICBkb2N1bWVudCgpLT5yZW1vdmVGb2N1c2Vk
Tm9kZU9mU3VidHJlZShzaGFkb3dSb290LmdldCgpKTsKKyAgICAvLyBGSVhNRTogT25jZSBhbGwg
aW5zdGFuY2VzIG9mIHNoYWRvdyBET00gYXJlIGNvbnZlcnRlZCB0byB1c2UgdGhpcyBjb2RlLCBh
ZGQgY2xlYXJpbmcgb2Ygc2hhZG93IGhvc3QgKHNoYWRvd1BhcmVudCkuCisgICAgaWYgKHNoYWRv
d1Jvb3QtPmluRG9jdW1lbnQoKSkKKyAgICAgICAgc2hhZG93Um9vdC0+cmVtb3ZlZEZyb21Eb2N1
bWVudCgpOworICAgIGVsc2UKKyAgICAgICAgc2hhZG93Um9vdC0+cmVtb3ZlZEZyb21UcmVlKHRy
dWUpOworfQorCiBib29sIEVsZW1lbnQ6OmNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUgdHlwZSkK
IHsKICAgICBzd2l0Y2ggKHR5cGUpIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0VsZW1lbnQu
aCBiL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAppbmRleCA3ZDRiOTRjNzhiNjFjZTllZWIwYTliMGQ3
MzE0NjRiYTg1NDI2NGIxLi44NDMyZjgyNWViN2ZmZTJkMWZlYmViMDU1YTUxMzYyZmFiOTZhZDMx
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKKysrIGIvV2ViQ29yZS9kb20vRWxl
bWVudC5oCkBAIC0yMjUsNiArMjI1LDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFJlbmRlck9i
amVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopOwogICAgIHZp
cnR1YWwgdm9pZCByZWNhbGNTdHlsZShTdHlsZUNoYW5nZSA9IE5vQ2hhbmdlKTsKIAorICAgIE5v
ZGUqIHNoYWRvd1Jvb3QoKTsKKyAgICB2b2lkIHNldFNoYWRvd1Jvb3QoUGFzc1JlZlB0cjxOb2Rl
Pik7CisgICAgdm9pZCBjbGVhclNoYWRvd1Jvb3QoKTsKKwogICAgIFJlbmRlclN0eWxlKiBjb21w
dXRlZFN0eWxlKFBzZXVkb0lkID0gTk9QU0VVRE8pOwogCiAgICAgQXRvbWljU3RyaW5nIGNvbXB1
dGVJbmhlcml0ZWRMYW5ndWFnZSgpIGNvbnN0OwpAQCAtMzM3LDYgKzM0MSw4IEBAIHByb3RlY3Rl
ZDoKIAogICAgIHZpcnR1YWwgdm9pZCBpbnNlcnRlZEludG9Eb2N1bWVudCgpOwogICAgIHZpcnR1
YWwgdm9pZCByZW1vdmVkRnJvbURvY3VtZW50KCk7CisgICAgdmlydHVhbCB2b2lkIGluc2VydGVk
SW50b1RyZWUoYm9vbCk7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZWRGcm9tVHJlZShib29sKTsK
ICAgICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGJvb2wgY2hhbmdlZEJ5UGFyc2VyID0g
ZmFsc2UsIE5vZGUqIGJlZm9yZUNoYW5nZSA9IDAsIE5vZGUqIGFmdGVyQ2hhbmdlID0gMCwgaW50
IGNoaWxkQ291bnREZWx0YSA9IDApOwogCiAgICAgLy8gVGhlIGltcGxlbWVudGF0aW9uIG9mIEVs
ZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoKSBjYWxscyB0aGUgZm9sbG93aW5nIHR3byBmdW5jdGlv
bnMuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaCBiL1dlYkNvcmUv
ZG9tL0VsZW1lbnRSYXJlRGF0YS5oCmluZGV4IDA2YmZlMGM3ZGFiNzI4MjUxNzY2ZDdlNWFlZGU0
YmMyZWM4NmU2MWMuLmY3ZjMwYmI3MDhkMWZlODM1ZWU2OGZhYTkwNTc2M2JiNjQ4ODZjNDcgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCisrKyBiL1dlYkNvcmUvZG9t
L0VsZW1lbnRSYXJlRGF0YS5oCkBAIC00MSw2ICs0MSw3IEBAIHB1YmxpYzoKIAogICAgIEludFNp
emUgbV9taW5pbXVtU2l6ZUZvclJlc2l6aW5nOwogICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbV9j
b21wdXRlZFN0eWxlOworICAgIFJlZlB0cjxOb2RlPiBtX3NoYWRvd1Jvb3Q7CiAKICAgICBPd25Q
dHI8RGF0YXNldERPTVN0cmluZ01hcD4gbV9kYXRhc2V0RE9NU3RyaW5nTWFwOwogICAgIE93blB0
cjxDbGFzc0xpc3Q+IG1fY2xhc3NMaXN0Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>