<?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>65783</bug_id>
          
          <creation_ts>2011-08-05 12:11:53 -0700</creation_ts>
          <short_desc>refactor box-ordinal-group handling so we don&apos;t timeout on large values</short_desc>
          <delta_ts>2011-08-30 13:52:47 -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>New Bugs</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="Tony Chang">tony</reporter>
          <assigned_to name="Tony Chang">tony</assigned_to>
          <cc>darin</cc>
    
    <cc>gustavo</cc>
    
    <cc>hyatt</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>447328</commentid>
    <comment_count>0</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-08-05 12:11:53 -0700</bug_when>
    <thetext>refactor box-ordinal-group handling so we don&apos;t timeout on large values</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447330</commentid>
    <comment_count>1</comment_count>
      <attachid>103093</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-08-05 12:15:04 -0700</bug_when>
    <thetext>Created attachment 103093
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447335</commentid>
    <comment_count>2</comment_count>
      <attachid>103093</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-08-05 12:24:22 -0700</bug_when>
    <thetext>Comment on attachment 103093
Patch

Attachment 103093 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/9321157</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447337</commentid>
    <comment_count>3</comment_count>
      <attachid>103093</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-08-05 12:28:25 -0700</bug_when>
    <thetext>Comment on attachment 103093
Patch

Attachment 103093 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/9302993</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447345</commentid>
    <comment_count>4</comment_count>
      <attachid>103093</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-05 12:34:53 -0700</bug_when>
    <thetext>Comment on attachment 103093
Patch

Attachment 103093 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/9305903</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447356</commentid>
    <comment_count>5</comment_count>
      <attachid>103093</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-08-05 12:46:08 -0700</bug_when>
    <thetext>Comment on attachment 103093
Patch

Attachment 103093 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/9323054</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447384</commentid>
    <comment_count>6</comment_count>
      <attachid>103099</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-08-05 13:19:16 -0700</bug_when>
    <thetext>Created attachment 103099
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448189</commentid>
    <comment_count>7</comment_count>
      <attachid>103099</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2011-08-08 12:50:19 -0700</bug_when>
    <thetext>Comment on attachment 103099
Patch

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

This is just way too slow. You&apos;ll sort all the kids every time you do a layout. Keep in mind that flex-order is rarely ever going to be used.

A couple of ideas:

(1) Instead of caching only m_lastOrdinal, cache all the specified ordinals as you encounter them when walking. Just make a little inthash.
PROS: Can just do a normal RenderObject walk when box-ordinal-group is 1.
CONS: Do one complete walk of the entire list for each value of box-ordinal-group.
PERFORMANCE: O(n*m) where n is the # of children and m is the number of unique box-ordinal-group values.
MEMORY: O(m) where m is the number of unique box-ordinal-group values stored in the IntHash.

(2) Start off walking the children and only if you encounter a box-ordinal-group value of 1 do you fault to being sorted.
PROS: Will perform better with box-ordinal-group values other than just 1.
CONS: Takes up a lot of extra memory when you only have a couple of box-ordinal-group values (probably the common case).
PERFORMANCE: O(n) where n is the # of children.
MEMORY: O(n) where n is the number of children.

(3) Same as (2) but instead of a single sorted Vector, make an IntHash of (box-ordinal-group) -&gt; Vectors.
PROS: Easy to look only at a specific group.
CONS: Takes up a lot of extra memory still when you only have a couple of box-ordinal-group values.
PERFORMANCE: O(n) where n is the number of children.
MEMORY: O(n) where n is the number of children.

Given the characteristics of flex-order, I&apos;m inclined to favor approach #1. I don&apos;t think doing multiple walks of the child list will be that big a deal.

&gt; Source/WebCore/ChangeLog:10
&gt; +        vector and sorts them.  If box-oridinal-group is all the default

Typo. &quot;ordinal&quot;

&gt; Source/WebCore/rendering/RenderDeprecatedFlexibleBox.cpp:85
&gt; +    static bool compareFlexOrder(RenderBox* r1, RenderBox* r2)
&gt; +    {
&gt; +        return r1-&gt;style()-&gt;boxOrdinalGroup() &lt; r2-&gt;style()-&gt;boxOrdinalGroup();
&gt; +    }

I don&apos;t think compareFlexOrder is the right term. box-ordinal-group is about re-ordering the items. I&apos;d just call the function compare() :).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448191</commentid>
    <comment_count>8</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2011-08-08 12:52:55 -0700</bug_when>
    <thetext>Some clarifications.

For approach (1) you could use an IntHashSet rather than a map.

For approach (3) you could probably special case box-ordinal-group of 1 to just walk the normal child list and to not actually store a sorted Vector, i.e., only hold sorted child lists for the other box-ordinal-groups.

It seems to me that - given the rarity of this feature - approach #1 is the easiest.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448328</commentid>
    <comment_count>9</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-08-08 15:53:38 -0700</bug_when>
    <thetext>I tried to implement approach (1), but HashSet is not sorted, so once we collect the ordinals, we need to manually copy to a Vector and sort it.  The main downside to this approach is the extra memory it uses.

Really what I want is an STL set, but the closest thing I see to that is AVLTree.h.  Perhaps I should just use the AVL tree and before inserting, check to see if the value I&apos;m inserting already exists or not.

Maybe Darin has some data structure advice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448748</commentid>
    <comment_count>10</comment_count>
      <attachid>103387</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-08-09 13:17:21 -0700</bug_when>
    <thetext>Created attachment 103387
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448751</commentid>
    <comment_count>11</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-08-09 13:22:33 -0700</bug_when>
    <thetext>I went with (1) and copy to a vector and sort.  AVLTree seemed like a lot of code weight for this edge case (it doesn&apos;t appear to be used anywhere except leveldb).  There&apos;s also WebCore/platform/PODRedBlackTree, but it would require some modifications to get the max value and if we wanted to make inserts cheap.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>458542</commentid>
    <comment_count>12</comment_count>
      <attachid>103387</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2011-08-29 16:28:49 -0700</bug_when>
    <thetext>Comment on attachment 103387
Patch

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

Code and test looks good to me. Would be good to get at least a high-level OK from Hyatt though.

&gt; Source/WebCore/rendering/RenderDeprecatedFlexibleBox.cpp:28
&gt; +#include &quot;PODRedBlackTree.h&quot;

I think you meant to delete this.

&gt; Source/WebCore/rendering/RenderDeprecatedFlexibleBox.cpp:85
&gt; +                    if (static_cast&lt;size_t&gt;(m_ordinalValues.size()) != m_sortedOrdinalValues.size()) {

Maybe add a comment saying why we do this size check? Namely, that it avoids regenerating and sorting m_sortedOrdinalValues when the iterator is reset, which happens frequently.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459134</commentid>
    <comment_count>13</comment_count>
      <attachid>105682</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-08-30 13:23:53 -0700</bug_when>
    <thetext>Created attachment 105682
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459145</commentid>
    <comment_count>14</comment_count>
      <attachid>105682</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2011-08-30 13:36:37 -0700</bug_when>
    <thetext>Comment on attachment 105682
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459166</commentid>
    <comment_count>15</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-08-30 13:52:47 -0700</bug_when>
    <thetext>Committed r94108: &lt;http://trac.webkit.org/changeset/94108&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103093</attachid>
            <date>2011-08-05 12:15:04 -0700</date>
            <delta_ts>2011-08-05 13:19:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65783-20110805121417.patch</filename>
            <type>text/plain</type>
            <size>8112</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTI0ODMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjODJlZmMyZGFkOWFjODZkZGQ1ZjBi
ZjYwNGZhMWVhYmExZmIzNmMyLi42MWQxOWNiMDdkMjYwMTFkZTY2ZDJlZjZmMmUwYzI1ODU5YzVj
MmE3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDgtMDUgIFRvbnkgQ2hhbmcgIDx0b255
QGNocm9taXVtLm9yZz4KKworICAgICAgICByZWZhY3RvciBib3gtb3JkaW5hbC1ncm91cCBoYW5k
bGluZyBzbyB3ZSBkb24ndCB0aW1lb3V0IG9uIGxhcmdlIHZhbHVlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU3ODMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZmxleGJveC9ib3gtb3JkaW5h
bC1ncm91cC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmxleGJveC9ib3gt
b3JkaW5hbC1ncm91cC5odG1sOiBBZGRlZC4KKwogMjAxMS0wOC0wNSAgQW1pIEZpc2NobWFuICA8
ZmlzY2htYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIGNvbXBvc2l0aW5nL3ZpZGVvL3ZpZGVv
LWJhY2tncm91bmQtY29sb3IuaHRtbCB0ZXN0IGRvZXMgbm90IHByb2R1Y2UgY29ycmVjdCBvdXRw
dXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmxleGJveC9ib3gtb3JkaW5hbC1ncm91
cC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ZsZXhib3gvYm94LW9yZGluYWwtZ3Jv
dXAtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY2NjY3YWZmMmM2M2JmZTQwNTI3ODBjNzZhYTAw
YjQyYjcxMGIyOWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZsZXhib3gv
Ym94LW9yZGluYWwtZ3JvdXAtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorVGhpcyB0ZXN0
cyB0byBtYWtlIHN1cmUgdGhhdCBsYXJnZSBib3gtb3JkaW5hbC1ncm91cCB2YWx1ZXMgZG9uJ3Qg
aGFuZyB0aGUgcmVuZGVyZXIuIFRoaXMgdGVzdCBwYXNzZXMgaWYgaXQgZG9lcyBub3QgdGltZW91
dC4KKworMQorMgorMworNAorNQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mbGV4Ym94
L2JveC1vcmRpbmFsLWdyb3VwLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ZsZXhib3gvYm94LW9y
ZGluYWwtZ3JvdXAuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYjNkYzY5YjFkYTY1NzY0NDQyYTIxZjhiNTJk
ZjE0ZTkxNjA2MmQzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mbGV4Ym94
L2JveC1vcmRpbmFsLWdyb3VwLmh0bWwKQEAgLTAsMCArMSw2NCBAQAorPGh0bWw+Cis8aGVhZD4K
KzxzdHlsZT4KK2Rpdi5ib3ggeworICBkaXNwbGF5OiAtbW96LWJveDsKKyAgZGlzcGxheTogLXdl
YmtpdC1ib3g7CisgIGRpc3BsYXk6IGJveDsKK30KKworZGl2Lm51bWJlciB7CisgIGJvcmRlcjog
MnB4IHNvbGlkIGJsYWNrOworICBwYWRkaW5nOiA0cHg7CisgIG1hcmdpbjogNHB4OworfQorCisu
Zmlyc3QgeworICAtbW96LWJveC1vcmRpbmFsLWdyb3VwOiAxOworICAtd2Via2l0LWJveC1vcmRp
bmFsLWdyb3VwOiAxOworICBib3gtb3JkaW5hbC1ncm91cDogMTsKK30KKworLnNlY29uZCB7Cisg
IC1tb3otYm94LW9yZGluYWwtZ3JvdXA6IDEwMDAwMDAwMDA7CisgIC13ZWJraXQtYm94LW9yZGlu
YWwtZ3JvdXA6IDEwMDAwMDAwMDA7CisgIGJveC1vcmRpbmFsLWdyb3VwOiAxMDAwMDAwMDAwOwor
fQorCisudGhpcmQgeworICAtbW96LWJveC1vcmRpbmFsLWdyb3VwOiAyMDAwMDAwMDAwOworICAt
d2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOiAyMDAwMDAwMDAwOworICBib3gtb3JkaW5hbC1ncm91
cDogMjAwMDAwMDAwMDsKK30KKworLmZvdXJ0aCB7CisgIC1tb3otYm94LW9yZGluYWwtZ3JvdXA6
IDMwMDAwMDAwMDA7CisgIC13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6IDMwMDAwMDAwMDA7Cisg
IGJveC1vcmRpbmFsLWdyb3VwOiAzMDAwMDAwMDAwOworfQorCisuZmlmdGggeworICAtbW96LWJv
eC1vcmRpbmFsLWdyb3VwOiA0MDAwMDAwMDAwOworICAtd2Via2l0LWJveC1vcmRpbmFsLWdyb3Vw
OiA0MDAwMDAwMDAwOworICBib3gtb3JkaW5hbC1ncm91cDogNDAwMDAwMDAwMDsKK30KKworPC9z
dHlsZT4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKzwvc2NyaXB0PgorPGJvZHk+Cis8cD4K
K1RoaXMgdGVzdHMgdG8gbWFrZSBzdXJlIHRoYXQgbGFyZ2UgYm94LW9yZGluYWwtZ3JvdXAgdmFs
dWVzIGRvbid0IGhhbmcgdGhlIHJlbmRlcmVyLgorVGhpcyB0ZXN0IHBhc3NlcyBpZiBpdCBkb2Vz
IG5vdCB0aW1lb3V0LgorPC9wPgorPGRpdiBjbGFzcz0iYm94Ij4KKyAgPGRpdiBjbGFzcz0ibnVt
YmVyIGZpcnN0Ij4xPC9kaXY+CisgIDxkaXYgY2xhc3M9Im51bWJlciBzZWNvbmQiPjI8L2Rpdj4K
KyAgPGRpdiBjbGFzcz0ibnVtYmVyIHRoaXJkIj4zPC9kaXY+CisgIDxkaXYgY2xhc3M9Im51bWJl
ciBmb3VydGgiPjQ8L2Rpdj4KKyAgPGRpdiBjbGFzcz0ibnVtYmVyIGZpZnRoIj41PC9kaXY+Cis8
L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwMmFlNDNiM2Y4N2Y2NjlhMGE2
ZmVhZTFlYjNiNThiN2ZkZDYxNjAwLi5jNjFmNjNlN2Q2MzQ2YTIzMjljYjFmODkwYzljZTI0ZTQw
OTA0YTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTEtMDgtMDUgIFRvbnkgQ2hh
bmcgIDx0b255QGNocm9taXVtLm9yZz4KKworICAgICAgICByZWZhY3RvciBib3gtb3JkaW5hbC1n
cm91cCBoYW5kbGluZyBzbyB3ZSBkb24ndCB0aW1lb3V0IG9uIGxhcmdlIHZhbHVlcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU3ODMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgb2xkIGNvZGUgd2Fs
a2VkIGZyb20gMSB0byB0aGUgbGFzdCBib3gtb3JkaW5hbC1ncm91cCB3aGlsZQorICAgICAgICBp
dGVyYXRpbmcgb3ZlciBlYWNoIGZsZXggaXRlbS4gIFRoZSBuZXcgY29kZSBqdXN0IHB1dHMgdGhl
bSBpbiBhCisgICAgICAgIHZlY3RvciBhbmQgc29ydHMgdGhlbS4gIElmIGJveC1vcmlkaW5hbC1n
cm91cCBpcyBhbGwgdGhlIGRlZmF1bHQKKyAgICAgICAgdmFsdWUsIHRoZSBuZXcgd2F5IGlzIGEg
dGFkIHNsb3dlciAoc2luY2UgaXQgaGFzIHRvIGRvIHRoZSBPKG4gbGcgbikKKyAgICAgICAgc29y
dCksIGJ1dCBzaW5jZSB0aGUgbnVtYmVyIG9mIGZsZXggaXRlbXMgaXMgcmVsYXRpdmVseSBzbWFs
bCwgSQorICAgICAgICB0aGluayBpdCdzIGEgd29ydGh3aGlsZSB0cmFkZW9mZi4KKworICAgICAg
ICBUZXN0OiBmYXN0L2ZsZXhib3gvYm94LW9yZGluYWwtZ3JvdXAuaHRtbAorCisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGbGV4Qm94SXRlcmF0b3I6OkZsZXhCb3hJdGVyYXRvcik6CisgICAgICAgIChXZWJDb3Jl
OjpGbGV4Qm94SXRlcmF0b3I6OnJlc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkZsZXhCb3hJdGVy
YXRvcjo6bmV4dCk6CisgICAgICAgIChXZWJDb3JlOjpGbGV4Qm94SXRlcmF0b3I6OmNvbXBhcmVG
bGV4T3JkZXIpOgorCiAyMDExLTA4LTA1ICBZYWVsIEFoYXJvbiAgPHlhZWwuYWhhcm9uQG5va2lh
LmNvbT4KIAogICAgICAgICBkaXI9YXV0byBuZWVkcyB0byB3b3JrIG9uIHZhbHVlIG9mIGlucHV0
IGFuZCB0ZXh0YXJlYSBlbGVtZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcAppbmRleCBhYzk5NDRlNDc1MDRi
MWEzNzQyMDk5NjkzYzEzNTg5ZGM2ODM3NzEwLi40YWFjMzgzMWRkMjYwZDMyMmUyNzk1NWEwNmU1
YmNiMGFmNzc2NzkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcApAQCAtMjUsNDIgKzI1LDQyIEBACiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94Lmgi
CiAKKyNpbmNsdWRlIDxhbGdvcml0aG0+CiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKICNpbmNs
dWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1
ZGUgPHd0Zi91bmljb2RlL0NoYXJhY3Rlck5hbWVzLmg+CiAKLXVzaW5nIG5hbWVzcGFjZSBzdGQ7
Ci0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRmxleEJveEl0ZXJhdG9yIHsKIHB1Ymxp
YzoKICAgICBGbGV4Qm94SXRlcmF0b3IoUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94KiBwYXJl
bnQpCiAgICAgICAgIDogbV9ib3gocGFyZW50KQotICAgICAgICAsIG1fbGFzdE9yZGluYWwoMSkK
ICAgICB7CisgICAgICAgIGJvb2wgZm9yd2FyZDsKICAgICAgICAgaWYgKG1fYm94LT5zdHlsZSgp
LT5ib3hPcmllbnQoKSA9PSBIT1JJWk9OVEFMICYmICFtX2JveC0+c3R5bGUoKS0+aXNMZWZ0VG9S
aWdodERpcmVjdGlvbigpKQotICAgICAgICAgICAgbV9mb3J3YXJkID0gbV9ib3gtPnN0eWxlKCkt
PmJveERpcmVjdGlvbigpICE9IEJOT1JNQUw7CisgICAgICAgICAgICBmb3J3YXJkID0gbV9ib3gt
PnN0eWxlKCktPmJveERpcmVjdGlvbigpICE9IEJOT1JNQUw7CiAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgIG1fZm9yd2FyZCA9IG1fYm94LT5zdHlsZSgpLT5ib3hEaXJlY3Rpb24oKSA9PSBCTk9S
TUFMOwotICAgICAgICBpZiAoIW1fZm9yd2FyZCkgewotICAgICAgICAgICAgLy8gTm8gY2hvaWNl
LCBzaW5jZSB3ZSdyZSBnb2luZyBiYWNrd2FyZHMsIHdlIGhhdmUgdG8gZmluZCBvdXQgdGhlIGhp
Z2hlc3Qgb3JkaW5hbCB1cCBmcm9udC4KLSAgICAgICAgICAgIFJlbmRlckJveCogY2hpbGQgPSBt
X2JveC0+Zmlyc3RDaGlsZEJveCgpOwotICAgICAgICAgICAgd2hpbGUgKGNoaWxkKSB7Ci0gICAg
ICAgICAgICAgICAgaWYgKGNoaWxkLT5zdHlsZSgpLT5ib3hPcmRpbmFsR3JvdXAoKSA+IG1fbGFz
dE9yZGluYWwpCi0gICAgICAgICAgICAgICAgICAgIG1fbGFzdE9yZGluYWwgPSBjaGlsZC0+c3R5
bGUoKS0+Ym94T3JkaW5hbEdyb3VwKCk7Ci0gICAgICAgICAgICAgICAgY2hpbGQgPSBjaGlsZC0+
bmV4dFNpYmxpbmdCb3goKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvcndhcmQgPSBt
X2JveC0+c3R5bGUoKS0+Ym94RGlyZWN0aW9uKCkgPT0gQk5PUk1BTDsKKworICAgICAgICBmb3Ig
KFJlbmRlckJveCogY2hpbGQgPSBtX2JveC0+Zmlyc3RDaGlsZEJveCgpOyBjaGlsZDsgY2hpbGQg
PSBjaGlsZC0+bmV4dFNpYmxpbmdCb3goKSkgeworICAgICAgICAgICAgaWYgKCFjaGlsZC0+aXNB
bm9ueW1vdXMoKSAmJiBjaGlsZC0+c3R5bGUoKS0+dmlzaWJpbGl0eSgpID09IENPTExBUFNFKQor
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgbV9zb3J0ZWRGbGV4SXRlbXMu
YXBwZW5kKGNoaWxkKTsKICAgICAgICAgfQogCisgICAgICAgIHN0ZDo6c3RhYmxlX3NvcnQobV9z
b3J0ZWRGbGV4SXRlbXMuYmVnaW4oKSwgbV9zb3J0ZWRGbGV4SXRlbXMuZW5kKCksIGNvbXBhcmVG
bGV4T3JkZXIpOworCisgICAgICAgIGlmICghZm9yd2FyZCkKKyAgICAgICAgICAgIG1fc29ydGVk
RmxleEl0ZW1zLnJldmVyc2UoKTsKKwogICAgICAgICByZXNldCgpOwogICAgIH0KIAogICAgIHZv
aWQgcmVzZXQoKQogICAgIHsKICAgICAgICAgbV9jdXJyZW50Q2hpbGQgPSAwOwotICAgICAgICBt
X2N1cnJlbnRPcmRpbmFsID0gbV9mb3J3YXJkID8gMCA6IG1fbGFzdE9yZGluYWwgKyAxOwogICAg
IH0KIAogICAgIFJlbmRlckJveCogZmlyc3QoKQpAQCAtNzEsMzUgKzcxLDIwIEBAIHB1YmxpYzoK
IAogICAgIFJlbmRlckJveCogbmV4dCgpCiAgICAgewotICAgICAgICBkbyB7Ci0gICAgICAgICAg
ICBpZiAoIW1fY3VycmVudENoaWxkKSB7Ci0gICAgICAgICAgICAgICAgaWYgKG1fZm9yd2FyZCkg
ewotICAgICAgICAgICAgICAgICAgICArK21fY3VycmVudE9yZGluYWw7Ci0gICAgICAgICAgICAg
ICAgICAgIGlmIChtX2N1cnJlbnRPcmRpbmFsID4gbV9sYXN0T3JkaW5hbCkKLSAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICAgICAgICAgICAgICBtX2N1cnJlbnRDaGls
ZCA9IG1fYm94LT5maXJzdENoaWxkQm94KCk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgICAgICAgICAgLS1tX2N1cnJlbnRPcmRpbmFsOwotICAgICAgICAgICAgICAgICAg
ICBpZiAoIW1fY3VycmVudE9yZGluYWwpCi0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
MDsKLSAgICAgICAgICAgICAgICAgICAgbV9jdXJyZW50Q2hpbGQgPSBtX2JveC0+bGFzdENoaWxk
Qm94KCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgICAgIG1fY3VycmVudENoaWxkID0gbV9mb3J3YXJkID8gbV9jdXJyZW50
Q2hpbGQtPm5leHRTaWJsaW5nQm94KCkgOiBtX2N1cnJlbnRDaGlsZC0+cHJldmlvdXNTaWJsaW5n
Qm94KCk7Ci0gICAgICAgICAgICBpZiAobV9jdXJyZW50Q2hpbGQgJiYgbV9jdXJyZW50Q2hpbGQt
PnN0eWxlKCktPmJveE9yZGluYWxHcm91cCgpID4gbV9sYXN0T3JkaW5hbCkKLSAgICAgICAgICAg
ICAgICBtX2xhc3RPcmRpbmFsID0gbV9jdXJyZW50Q2hpbGQtPnN0eWxlKCktPmJveE9yZGluYWxH
cm91cCgpOwotICAgICAgICB9IHdoaWxlICghbV9jdXJyZW50Q2hpbGQgfHwgKCFtX2N1cnJlbnRD
aGlsZC0+aXNBbm9ueW1vdXMoKQotICAgICAgICAgICAgICAgICAmJiAobV9jdXJyZW50Q2hpbGQt
PnN0eWxlKCktPmJveE9yZGluYWxHcm91cCgpICE9IG1fY3VycmVudE9yZGluYWwgfHwgbV9jdXJy
ZW50Q2hpbGQtPnN0eWxlKCktPnZpc2liaWxpdHkoKSA9PSBDT0xMQVBTRSkpKTsKLSAgICAgICAg
cmV0dXJuIG1fY3VycmVudENoaWxkOworICAgICAgICBpZiAobV9jdXJyZW50Q2hpbGQgPCBtX3Nv
cnRlZEZsZXhJdGVtcy5zaXplKCkpCisgICAgICAgICAgICByZXR1cm4gbV9zb3J0ZWRGbGV4SXRl
bXNbbV9jdXJyZW50Q2hpbGQrK107CisgICAgICAgIHJldHVybiAwOwogICAgIH0KIAogcHJpdmF0
ZToKKyAgICBzdGF0aWMgYm9vbCBjb21wYXJlRmxleE9yZGVyKFJlbmRlckJveCogcjEsIFJlbmRl
ckJveCogcjIpCisgICAgeworICAgICAgICByZXR1cm4gcjEtPnN0eWxlKCktPmJveE9yZGluYWxH
cm91cCgpIDwgcjItPnN0eWxlKCktPmJveE9yZGluYWxHcm91cCgpOworICAgIH0KKwogICAgIFJl
bmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveCogbV9ib3g7Ci0gICAgUmVuZGVyQm94KiBtX2N1cnJl
bnRDaGlsZDsKLSAgICBib29sIG1fZm9yd2FyZDsKLSAgICB1bnNpZ25lZCBpbnQgbV9jdXJyZW50
T3JkaW5hbDsKLSAgICB1bnNpZ25lZCBpbnQgbV9sYXN0T3JkaW5hbDsKKyAgICBzaXplX3QgbV9j
dXJyZW50Q2hpbGQ7CisgICAgVmVjdG9yPFJlbmRlckJveCo+IG1fc29ydGVkRmxleEl0ZW1zOwog
fTsKIAogUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjpSZW5kZXJEZXByZWNhdGVkRmxleGli
bGVCb3goTm9kZSogbm9kZSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103099</attachid>
            <date>2011-08-05 13:19:16 -0700</date>
            <delta_ts>2011-08-09 13:17:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65783-20110805131829.patch</filename>
            <type>text/plain</type>
            <size>8034</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTI0ODMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjODJlZmMyZGFkOWFjODZkZGQ1ZjBi
ZjYwNGZhMWVhYmExZmIzNmMyLi42MWQxOWNiMDdkMjYwMTFkZTY2ZDJlZjZmMmUwYzI1ODU5YzVj
MmE3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDgtMDUgIFRvbnkgQ2hhbmcgIDx0b255
QGNocm9taXVtLm9yZz4KKworICAgICAgICByZWZhY3RvciBib3gtb3JkaW5hbC1ncm91cCBoYW5k
bGluZyBzbyB3ZSBkb24ndCB0aW1lb3V0IG9uIGxhcmdlIHZhbHVlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU3ODMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZmxleGJveC9ib3gtb3JkaW5h
bC1ncm91cC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmxleGJveC9ib3gt
b3JkaW5hbC1ncm91cC5odG1sOiBBZGRlZC4KKwogMjAxMS0wOC0wNSAgQW1pIEZpc2NobWFuICA8
ZmlzY2htYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIGNvbXBvc2l0aW5nL3ZpZGVvL3ZpZGVv
LWJhY2tncm91bmQtY29sb3IuaHRtbCB0ZXN0IGRvZXMgbm90IHByb2R1Y2UgY29ycmVjdCBvdXRw
dXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmxleGJveC9ib3gtb3JkaW5hbC1ncm91
cC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ZsZXhib3gvYm94LW9yZGluYWwtZ3Jv
dXAtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY2NjY3YWZmMmM2M2JmZTQwNTI3ODBjNzZhYTAw
YjQyYjcxMGIyOWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZsZXhib3gv
Ym94LW9yZGluYWwtZ3JvdXAtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorVGhpcyB0ZXN0
cyB0byBtYWtlIHN1cmUgdGhhdCBsYXJnZSBib3gtb3JkaW5hbC1ncm91cCB2YWx1ZXMgZG9uJ3Qg
aGFuZyB0aGUgcmVuZGVyZXIuIFRoaXMgdGVzdCBwYXNzZXMgaWYgaXQgZG9lcyBub3QgdGltZW91
dC4KKworMQorMgorMworNAorNQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mbGV4Ym94
L2JveC1vcmRpbmFsLWdyb3VwLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ZsZXhib3gvYm94LW9y
ZGluYWwtZ3JvdXAuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYjNkYzY5YjFkYTY1NzY0NDQyYTIxZjhiNTJk
ZjE0ZTkxNjA2MmQzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mbGV4Ym94
L2JveC1vcmRpbmFsLWdyb3VwLmh0bWwKQEAgLTAsMCArMSw2NCBAQAorPGh0bWw+Cis8aGVhZD4K
KzxzdHlsZT4KK2Rpdi5ib3ggeworICBkaXNwbGF5OiAtbW96LWJveDsKKyAgZGlzcGxheTogLXdl
YmtpdC1ib3g7CisgIGRpc3BsYXk6IGJveDsKK30KKworZGl2Lm51bWJlciB7CisgIGJvcmRlcjog
MnB4IHNvbGlkIGJsYWNrOworICBwYWRkaW5nOiA0cHg7CisgIG1hcmdpbjogNHB4OworfQorCisu
Zmlyc3QgeworICAtbW96LWJveC1vcmRpbmFsLWdyb3VwOiAxOworICAtd2Via2l0LWJveC1vcmRp
bmFsLWdyb3VwOiAxOworICBib3gtb3JkaW5hbC1ncm91cDogMTsKK30KKworLnNlY29uZCB7Cisg
IC1tb3otYm94LW9yZGluYWwtZ3JvdXA6IDEwMDAwMDAwMDA7CisgIC13ZWJraXQtYm94LW9yZGlu
YWwtZ3JvdXA6IDEwMDAwMDAwMDA7CisgIGJveC1vcmRpbmFsLWdyb3VwOiAxMDAwMDAwMDAwOwor
fQorCisudGhpcmQgeworICAtbW96LWJveC1vcmRpbmFsLWdyb3VwOiAyMDAwMDAwMDAwOworICAt
d2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOiAyMDAwMDAwMDAwOworICBib3gtb3JkaW5hbC1ncm91
cDogMjAwMDAwMDAwMDsKK30KKworLmZvdXJ0aCB7CisgIC1tb3otYm94LW9yZGluYWwtZ3JvdXA6
IDMwMDAwMDAwMDA7CisgIC13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6IDMwMDAwMDAwMDA7Cisg
IGJveC1vcmRpbmFsLWdyb3VwOiAzMDAwMDAwMDAwOworfQorCisuZmlmdGggeworICAtbW96LWJv
eC1vcmRpbmFsLWdyb3VwOiA0MDAwMDAwMDAwOworICAtd2Via2l0LWJveC1vcmRpbmFsLWdyb3Vw
OiA0MDAwMDAwMDAwOworICBib3gtb3JkaW5hbC1ncm91cDogNDAwMDAwMDAwMDsKK30KKworPC9z
dHlsZT4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKzwvc2NyaXB0PgorPGJvZHk+Cis8cD4K
K1RoaXMgdGVzdHMgdG8gbWFrZSBzdXJlIHRoYXQgbGFyZ2UgYm94LW9yZGluYWwtZ3JvdXAgdmFs
dWVzIGRvbid0IGhhbmcgdGhlIHJlbmRlcmVyLgorVGhpcyB0ZXN0IHBhc3NlcyBpZiBpdCBkb2Vz
IG5vdCB0aW1lb3V0LgorPC9wPgorPGRpdiBjbGFzcz0iYm94Ij4KKyAgPGRpdiBjbGFzcz0ibnVt
YmVyIGZpcnN0Ij4xPC9kaXY+CisgIDxkaXYgY2xhc3M9Im51bWJlciBzZWNvbmQiPjI8L2Rpdj4K
KyAgPGRpdiBjbGFzcz0ibnVtYmVyIHRoaXJkIj4zPC9kaXY+CisgIDxkaXYgY2xhc3M9Im51bWJl
ciBmb3VydGgiPjQ8L2Rpdj4KKyAgPGRpdiBjbGFzcz0ibnVtYmVyIGZpZnRoIj41PC9kaXY+Cis8
L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwMmFlNDNiM2Y4N2Y2NjlhMGE2
ZmVhZTFlYjNiNThiN2ZkZDYxNjAwLi5jNjFmNjNlN2Q2MzQ2YTIzMjljYjFmODkwYzljZTI0ZTQw
OTA0YTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTEtMDgtMDUgIFRvbnkgQ2hh
bmcgIDx0b255QGNocm9taXVtLm9yZz4KKworICAgICAgICByZWZhY3RvciBib3gtb3JkaW5hbC1n
cm91cCBoYW5kbGluZyBzbyB3ZSBkb24ndCB0aW1lb3V0IG9uIGxhcmdlIHZhbHVlcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU3ODMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgb2xkIGNvZGUgd2Fs
a2VkIGZyb20gMSB0byB0aGUgbGFzdCBib3gtb3JkaW5hbC1ncm91cCB3aGlsZQorICAgICAgICBp
dGVyYXRpbmcgb3ZlciBlYWNoIGZsZXggaXRlbS4gIFRoZSBuZXcgY29kZSBqdXN0IHB1dHMgdGhl
bSBpbiBhCisgICAgICAgIHZlY3RvciBhbmQgc29ydHMgdGhlbS4gIElmIGJveC1vcmlkaW5hbC1n
cm91cCBpcyBhbGwgdGhlIGRlZmF1bHQKKyAgICAgICAgdmFsdWUsIHRoZSBuZXcgd2F5IGlzIGEg
dGFkIHNsb3dlciAoc2luY2UgaXQgaGFzIHRvIGRvIHRoZSBPKG4gbGcgbikKKyAgICAgICAgc29y
dCksIGJ1dCBzaW5jZSB0aGUgbnVtYmVyIG9mIGZsZXggaXRlbXMgaXMgcmVsYXRpdmVseSBzbWFs
bCwgSQorICAgICAgICB0aGluayBpdCdzIGEgd29ydGh3aGlsZSB0cmFkZW9mZi4KKworICAgICAg
ICBUZXN0OiBmYXN0L2ZsZXhib3gvYm94LW9yZGluYWwtZ3JvdXAuaHRtbAorCisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGbGV4Qm94SXRlcmF0b3I6OkZsZXhCb3hJdGVyYXRvcik6CisgICAgICAgIChXZWJDb3Jl
OjpGbGV4Qm94SXRlcmF0b3I6OnJlc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkZsZXhCb3hJdGVy
YXRvcjo6bmV4dCk6CisgICAgICAgIChXZWJDb3JlOjpGbGV4Qm94SXRlcmF0b3I6OmNvbXBhcmVG
bGV4T3JkZXIpOgorCiAyMDExLTA4LTA1ICBZYWVsIEFoYXJvbiAgPHlhZWwuYWhhcm9uQG5va2lh
LmNvbT4KIAogICAgICAgICBkaXI9YXV0byBuZWVkcyB0byB3b3JrIG9uIHZhbHVlIG9mIGlucHV0
IGFuZCB0ZXh0YXJlYSBlbGVtZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcAppbmRleCBhYzk5NDRlNDc1MDRi
MWEzNzQyMDk5NjkzYzEzNTg5ZGM2ODM3NzEwLi41ODI2OTVlYzRlY2VlYjNhZmZlNmZiMGZhOTNj
MzM4MDM1Yjg4ZWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcApAQCAtMjUsNiArMjUsNyBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5oIgog
CisjaW5jbHVkZSA8YWxnb3JpdGhtPgogI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KQEAgLTM4LDI5
ICszOSwzMCBAQCBjbGFzcyBGbGV4Qm94SXRlcmF0b3IgewogcHVibGljOgogICAgIEZsZXhCb3hJ
dGVyYXRvcihSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3gqIHBhcmVudCkKICAgICAgICAgOiBt
X2JveChwYXJlbnQpCi0gICAgICAgICwgbV9sYXN0T3JkaW5hbCgxKQogICAgIHsKKyAgICAgICAg
Ym9vbCBmb3J3YXJkOwogICAgICAgICBpZiAobV9ib3gtPnN0eWxlKCktPmJveE9yaWVudCgpID09
IEhPUklaT05UQUwgJiYgIW1fYm94LT5zdHlsZSgpLT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkp
Ci0gICAgICAgICAgICBtX2ZvcndhcmQgPSBtX2JveC0+c3R5bGUoKS0+Ym94RGlyZWN0aW9uKCkg
IT0gQk5PUk1BTDsKKyAgICAgICAgICAgIGZvcndhcmQgPSBtX2JveC0+c3R5bGUoKS0+Ym94RGly
ZWN0aW9uKCkgIT0gQk5PUk1BTDsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgbV9mb3J3YXJk
ID0gbV9ib3gtPnN0eWxlKCktPmJveERpcmVjdGlvbigpID09IEJOT1JNQUw7Ci0gICAgICAgIGlm
ICghbV9mb3J3YXJkKSB7Ci0gICAgICAgICAgICAvLyBObyBjaG9pY2UsIHNpbmNlIHdlJ3JlIGdv
aW5nIGJhY2t3YXJkcywgd2UgaGF2ZSB0byBmaW5kIG91dCB0aGUgaGlnaGVzdCBvcmRpbmFsIHVw
IGZyb250LgotICAgICAgICAgICAgUmVuZGVyQm94KiBjaGlsZCA9IG1fYm94LT5maXJzdENoaWxk
Qm94KCk7Ci0gICAgICAgICAgICB3aGlsZSAoY2hpbGQpIHsKLSAgICAgICAgICAgICAgICBpZiAo
Y2hpbGQtPnN0eWxlKCktPmJveE9yZGluYWxHcm91cCgpID4gbV9sYXN0T3JkaW5hbCkKLSAgICAg
ICAgICAgICAgICAgICAgbV9sYXN0T3JkaW5hbCA9IGNoaWxkLT5zdHlsZSgpLT5ib3hPcmRpbmFs
R3JvdXAoKTsKLSAgICAgICAgICAgICAgICBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZ0JveCgp
OwotICAgICAgICAgICAgfQorICAgICAgICAgICAgZm9yd2FyZCA9IG1fYm94LT5zdHlsZSgpLT5i
b3hEaXJlY3Rpb24oKSA9PSBCTk9STUFMOworCisgICAgICAgIGZvciAoUmVuZGVyQm94KiBjaGls
ZCA9IG1fYm94LT5maXJzdENoaWxkQm94KCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2li
bGluZ0JveCgpKSB7CisgICAgICAgICAgICBpZiAoIWNoaWxkLT5pc0Fub255bW91cygpICYmIGNo
aWxkLT5zdHlsZSgpLT52aXNpYmlsaXR5KCkgPT0gQ09MTEFQU0UpCisgICAgICAgICAgICAgICAg
Y29udGludWU7CisgICAgICAgICAgICBtX3NvcnRlZEZsZXhJdGVtcy5hcHBlbmQoY2hpbGQpOwog
ICAgICAgICB9CiAKKyAgICAgICAgc3RhYmxlX3NvcnQobV9zb3J0ZWRGbGV4SXRlbXMuYmVnaW4o
KSwgbV9zb3J0ZWRGbGV4SXRlbXMuZW5kKCksIGNvbXBhcmVGbGV4T3JkZXIpOworCisgICAgICAg
IGlmICghZm9yd2FyZCkKKyAgICAgICAgICAgIG1fc29ydGVkRmxleEl0ZW1zLnJldmVyc2UoKTsK
KwogICAgICAgICByZXNldCgpOwogICAgIH0KIAogICAgIHZvaWQgcmVzZXQoKQogICAgIHsKICAg
ICAgICAgbV9jdXJyZW50Q2hpbGQgPSAwOwotICAgICAgICBtX2N1cnJlbnRPcmRpbmFsID0gbV9m
b3J3YXJkID8gMCA6IG1fbGFzdE9yZGluYWwgKyAxOwogICAgIH0KIAogICAgIFJlbmRlckJveCog
Zmlyc3QoKQpAQCAtNzEsMzUgKzczLDIwIEBAIHB1YmxpYzoKIAogICAgIFJlbmRlckJveCogbmV4
dCgpCiAgICAgewotICAgICAgICBkbyB7Ci0gICAgICAgICAgICBpZiAoIW1fY3VycmVudENoaWxk
KSB7Ci0gICAgICAgICAgICAgICAgaWYgKG1fZm9yd2FyZCkgewotICAgICAgICAgICAgICAgICAg
ICArK21fY3VycmVudE9yZGluYWw7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChtX2N1cnJlbnRP
cmRpbmFsID4gbV9sYXN0T3JkaW5hbCkKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAw
OwotICAgICAgICAgICAgICAgICAgICBtX2N1cnJlbnRDaGlsZCA9IG1fYm94LT5maXJzdENoaWxk
Qm94KCk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgLS1t
X2N1cnJlbnRPcmRpbmFsOwotICAgICAgICAgICAgICAgICAgICBpZiAoIW1fY3VycmVudE9yZGlu
YWwpCi0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgICAgICAgICAg
ICAgbV9jdXJyZW50Q2hpbGQgPSBtX2JveC0+bGFzdENoaWxkQm94KCk7Ci0gICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG1f
Y3VycmVudENoaWxkID0gbV9mb3J3YXJkID8gbV9jdXJyZW50Q2hpbGQtPm5leHRTaWJsaW5nQm94
KCkgOiBtX2N1cnJlbnRDaGlsZC0+cHJldmlvdXNTaWJsaW5nQm94KCk7Ci0gICAgICAgICAgICBp
ZiAobV9jdXJyZW50Q2hpbGQgJiYgbV9jdXJyZW50Q2hpbGQtPnN0eWxlKCktPmJveE9yZGluYWxH
cm91cCgpID4gbV9sYXN0T3JkaW5hbCkKLSAgICAgICAgICAgICAgICBtX2xhc3RPcmRpbmFsID0g
bV9jdXJyZW50Q2hpbGQtPnN0eWxlKCktPmJveE9yZGluYWxHcm91cCgpOwotICAgICAgICB9IHdo
aWxlICghbV9jdXJyZW50Q2hpbGQgfHwgKCFtX2N1cnJlbnRDaGlsZC0+aXNBbm9ueW1vdXMoKQot
ICAgICAgICAgICAgICAgICAmJiAobV9jdXJyZW50Q2hpbGQtPnN0eWxlKCktPmJveE9yZGluYWxH
cm91cCgpICE9IG1fY3VycmVudE9yZGluYWwgfHwgbV9jdXJyZW50Q2hpbGQtPnN0eWxlKCktPnZp
c2liaWxpdHkoKSA9PSBDT0xMQVBTRSkpKTsKLSAgICAgICAgcmV0dXJuIG1fY3VycmVudENoaWxk
OworICAgICAgICBpZiAobV9jdXJyZW50Q2hpbGQgPCBtX3NvcnRlZEZsZXhJdGVtcy5zaXplKCkp
CisgICAgICAgICAgICByZXR1cm4gbV9zb3J0ZWRGbGV4SXRlbXNbbV9jdXJyZW50Q2hpbGQrK107
CisgICAgICAgIHJldHVybiAwOwogICAgIH0KIAogcHJpdmF0ZToKKyAgICBzdGF0aWMgYm9vbCBj
b21wYXJlRmxleE9yZGVyKFJlbmRlckJveCogcjEsIFJlbmRlckJveCogcjIpCisgICAgeworICAg
ICAgICByZXR1cm4gcjEtPnN0eWxlKCktPmJveE9yZGluYWxHcm91cCgpIDwgcjItPnN0eWxlKCkt
PmJveE9yZGluYWxHcm91cCgpOworICAgIH0KKwogICAgIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJs
ZUJveCogbV9ib3g7Ci0gICAgUmVuZGVyQm94KiBtX2N1cnJlbnRDaGlsZDsKLSAgICBib29sIG1f
Zm9yd2FyZDsKLSAgICB1bnNpZ25lZCBpbnQgbV9jdXJyZW50T3JkaW5hbDsKLSAgICB1bnNpZ25l
ZCBpbnQgbV9sYXN0T3JkaW5hbDsKKyAgICBzaXplX3QgbV9jdXJyZW50Q2hpbGQ7CisgICAgVmVj
dG9yPFJlbmRlckJveCo+IG1fc29ydGVkRmxleEl0ZW1zOwogfTsKIAogUmVuZGVyRGVwcmVjYXRl
ZEZsZXhpYmxlQm94OjpSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3goTm9kZSogbm9kZSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103387</attachid>
            <date>2011-08-09 13:17:21 -0700</date>
            <delta_ts>2011-08-30 13:23:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65783-20110809131631.patch</filename>
            <type>text/plain</type>
            <size>7953</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTI2OTEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4ODM2MTViMGM4ZTBhNjZhOTViZWNh
YjI2OWFhNTViMWQ1ZjllZjcyLi5mZWM0ZDBjM2VmNjIyNjY0ZTdiODU3ZTRjYzI3Yzg4YjIyNDVj
NTQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDgtMDkgIFRvbnkgQ2hhbmcgIDx0b255
QGNocm9taXVtLm9yZz4KKworICAgICAgICByZWZhY3RvciBib3gtb3JkaW5hbC1ncm91cCBoYW5k
bGluZyBzbyB3ZSBkb24ndCB0aW1lb3V0IG9uIGxhcmdlIHZhbHVlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU3ODMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZmxleGJveC9ib3gtb3JkaW5h
bC1ncm91cC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmxleGJveC9ib3gt
b3JkaW5hbC1ncm91cC5odG1sOiBBZGRlZC4KKwogMjAxMS0wOC0wOSAgUGF2ZWwgRmVsZG1hbiAg
PHBmZWxkbWFuQGdvb2dsZS5jb20+CiAKICAgICAgICAgTm90IHJldmlld2VkOiByZWJhc2VsaW5p
bmcgaW5zcGVjdG9yIHRlc3QuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZsZXhib3gv
Ym94LW9yZGluYWwtZ3JvdXAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mbGV4Ym94
L2JveC1vcmRpbmFsLWdyb3VwLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lODQxMmNlNDI3ODM3
Y2UxODdlMGZiNWY5ZjAxMWIzMjgyYjY1NmU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9mbGV4Ym94L2JveC1vcmRpbmFsLWdyb3VwLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDEyIEBACitUaGlzIHRlc3RzIHRvIG1ha2Ugc3VyZSB0aGF0IGxhcmdlIGJveC1vcmRpbmFsLWdy
b3VwIHZhbHVlcyBkb24ndCBoYW5nIHRoZSByZW5kZXJlci4gVGhpcyB0ZXN0IHBhc3NlcyBpZiBp
dCBkb2VzIG5vdCB0aW1lb3V0LgorCisxCisyCiszCis0Cis1CiszCis0CisxCisyCis1CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZsZXhib3gvYm94LW9yZGluYWwtZ3JvdXAuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvZmxleGJveC9ib3gtb3JkaW5hbC1ncm91cC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmY2ZWRlZTRmNDc5ZmEyOThmY2NmMzM4MzMzMzc0YzI1ZjY3NWZkOWEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZsZXhib3gvYm94LW9yZGluYWwtZ3JvdXAuaHRtbApA
QCAtMCwwICsxLDcyIEBACis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorZGl2LmJveCB7CisgIGRp
c3BsYXk6IC1tb3otYm94OworICBkaXNwbGF5OiAtd2Via2l0LWJveDsKKyAgZGlzcGxheTogYm94
OworfQorCitkaXYubnVtYmVyIHsKKyAgYm9yZGVyOiAycHggc29saWQgYmxhY2s7CisgIHBhZGRp
bmc6IDRweDsKKyAgbWFyZ2luOiA0cHg7Cit9CisKKy5maXJzdCB7CisgIC1tb3otYm94LW9yZGlu
YWwtZ3JvdXA6IDE7CisgIC13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6IDE7CisgIGJveC1vcmRp
bmFsLWdyb3VwOiAxOworfQorCisuc2Vjb25kIHsKKyAgLW1vei1ib3gtb3JkaW5hbC1ncm91cDog
MTAwMDAwMDAwMDsKKyAgLXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDogMTAwMDAwMDAwMDsKKyAg
Ym94LW9yZGluYWwtZ3JvdXA6IDEwMDAwMDAwMDA7Cit9CisKKy50aGlyZCB7CisgIC1tb3otYm94
LW9yZGluYWwtZ3JvdXA6IDIwMDAwMDAwMDA7CisgIC13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6
IDIwMDAwMDAwMDA7CisgIGJveC1vcmRpbmFsLWdyb3VwOiAyMDAwMDAwMDAwOworfQorCisuZm91
cnRoIHsKKyAgLW1vei1ib3gtb3JkaW5hbC1ncm91cDogMzAwMDAwMDAwMDsKKyAgLXdlYmtpdC1i
b3gtb3JkaW5hbC1ncm91cDogMzAwMDAwMDAwMDsKKyAgYm94LW9yZGluYWwtZ3JvdXA6IDMwMDAw
MDAwMDA7Cit9CisKKy5maWZ0aCB7CisgIC1tb3otYm94LW9yZGluYWwtZ3JvdXA6IDQwMDAwMDAw
MDA7CisgIC13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6IDQwMDAwMDAwMDA7CisgIGJveC1vcmRp
bmFsLWdyb3VwOiA0MDAwMDAwMDAwOworfQorCis8L3N0eWxlPgorPHNjcmlwdD4KK2lmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOworPC9zY3JpcHQ+Cis8Ym9keT4KKzxwPgorVGhpcyB0ZXN0cyB0byBtYWtlIHN1cmUg
dGhhdCBsYXJnZSBib3gtb3JkaW5hbC1ncm91cCB2YWx1ZXMgZG9uJ3QgaGFuZyB0aGUgcmVuZGVy
ZXIuCitUaGlzIHRlc3QgcGFzc2VzIGlmIGl0IGRvZXMgbm90IHRpbWVvdXQuCis8L3A+Cis8ZGl2
IGNsYXNzPSJib3giPgorICA8ZGl2IGNsYXNzPSJudW1iZXIgZmlyc3QiPjE8L2Rpdj4KKyAgPGRp
diBjbGFzcz0ibnVtYmVyIHNlY29uZCI+MjwvZGl2PgorICA8ZGl2IGNsYXNzPSJudW1iZXIgdGhp
cmQiPjM8L2Rpdj4KKyAgPGRpdiBjbGFzcz0ibnVtYmVyIGZvdXJ0aCI+NDwvZGl2PgorICA8ZGl2
IGNsYXNzPSJudW1iZXIgZmlmdGgiPjU8L2Rpdj4KKzwvZGl2PgorCis8ZGl2IGNsYXNzPSJib3gi
IHN0eWxlPSItd2Via2l0LWJveC1kaXJlY3Rpb246IHJldmVyc2UiPgorICA8ZGl2IGNsYXNzPSJu
dW1iZXIgdGhpcmQiPjM8L2Rpdj4KKyAgPGRpdiBjbGFzcz0ibnVtYmVyIHNlY29uZCI+NDwvZGl2
PgorICA8ZGl2IGNsYXNzPSJudW1iZXIgZmlmdGgiPjE8L2Rpdj4KKyAgPGRpdiBjbGFzcz0ibnVt
YmVyIGZvdXJ0aCI+MjwvZGl2PgorICA8ZGl2IGNsYXNzPSJudW1iZXIgZmlyc3QiPjU8L2Rpdj4K
KzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGUwOWJmOGQ3MGI1MjZmOGVk
MWMyZDRkMzdlNWE0YWE5NDZlMDdhNmYuLmNkYzM4ZTExN2ZhNmQ1ODVjOWZiMDFkMzlkM2Y2N2Fm
OWJiMmUxYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxMS0wOC0wOSAgVG9ueSBD
aGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIHJlZmFjdG9yIGJveC1vcmRpbmFs
LWdyb3VwIGhhbmRsaW5nIHNvIHdlIGRvbid0IHRpbWVvdXQgb24gbGFyZ2UgdmFsdWVzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTc4MworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBvbGQgY29kZSB3
YWxrZWQgZnJvbSAxIHRvIHRoZSBsYXN0IGJveC1vcmRpbmFsLWdyb3VwIHdoaWxlCisgICAgICAg
IGl0ZXJhdGluZyBvdmVyIGVhY2ggZmxleCBpdGVtLiAgVGhlIG5ldyBjb2RlIGNvbGxlY3RzIG9y
ZGluYWxzIGFzCisgICAgICAgIHdlIGRvIHRoZSBmaXJzdCB3YWxrIGFuZCBzb3J0cyB0aGVtLiAg
RWFjaCBhZGRpdGlvbmFsIGl0ZXJhdGlvbgorICAgICAgICB0aHJvdWdoIHRoZSBmbGV4IGl0ZW1z
IGdldHMgdGhlIG5leHQgb3JpZG5hbCBmcm9tIHRoZSBzb3J0ZWQgbGlzdC4KKworICAgICAgICBU
aGlzIG1haW50YWlucyB0aGUgc2luZ2xlIHBhc3MgZm9yIHRoZSBjb21tb24gY2FzZSBvZiBubwor
ICAgICAgICBib3gtb3JkaW5hbC1ncm91cHMgc3BlY2lmaWVkLiAgSWYgdGhlcmUgYXJlIG9yZGlu
YWwgZ3JvdXBzLAorICAgICAgICB0aGUgcnVudGltZSBpcyBPKG4qbSArIG0gbGcgbSkgd2hlcmUg
biBpcyB0aGUgIyBvZiBmbGV4IGl0ZW1zIGFuZAorICAgICAgICBtIGlzIHRoZSBudW1iZXIgb2Yg
dW5pcXVlIGJveC1vcmRpbmFsLWdyb3VwIHZhbHVlcy4gIFRoZSBtZW1vcnkKKyAgICAgICAgdXNh
Z2UgaXMgTygybSkuCisKKyAgICAgICAgVGVzdDogZmFzdC9mbGV4Ym94L2JveC1vcmRpbmFsLWdy
b3VwLmh0bWwKKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVC
b3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmxleEJveEl0ZXJhdG9yOjpGbGV4Qm94SXRlcmF0
b3IpOgorICAgICAgICAoV2ViQ29yZTo6RmxleEJveEl0ZXJhdG9yOjpyZXNldCk6CisgICAgICAg
IChXZWJDb3JlOjpGbGV4Qm94SXRlcmF0b3I6Om5leHQpOgorICAgICAgICAoV2ViQ29yZTo6Rmxl
eEJveEl0ZXJhdG9yOjpjb21wYXJlRmxleE9yZGVyKToKKwogMjAxMS0wOC0wOSAgTmF0ZSBDaGFw
aW4gIDxqYXBoZXRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJlbW92ZSByZWNlaXZlZENhbmNl
bGxhdGlvbigpIGZyb20gU3VicmVzb3VyY2VMb2FkZXJDbGllbnQuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwCmlu
ZGV4IGYzNDEwMmI4NTNiOWU4ZGY3YzQ3MzM1Yzg3ZTE0ZDNiMjExYzRmMjIuLmZiNWMwMjI2NGE1
NjU1OWEzZDU1NjA2ZDBhM2E5N2E4MzBmODNmNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwCkBAIC0yNSw2
ICsyNSw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUmVuZGVyRGVwcmVjYXRl
ZEZsZXhpYmxlQm94LmgiCiAKKyNpbmNsdWRlICJQT0RSZWRCbGFja1RyZWUuaCIKICNpbmNsdWRl
ICJSZW5kZXJMYXllci5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlIDx3dGYv
U3RkTGliRXh0cmFzLmg+CkBAIC02MCw3ICs2MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlc2V0
KCkKICAgICB7CiAgICAgICAgIG1fY3VycmVudENoaWxkID0gMDsKLSAgICAgICAgbV9jdXJyZW50
T3JkaW5hbCA9IG1fZm9yd2FyZCA/IDAgOiBtX2xhc3RPcmRpbmFsICsgMTsKKyAgICAgICAgbV9v
cmRpbmFsSXRlcmF0aW9uID0gLTE7CiAgICAgfQogCiAgICAgUmVuZGVyQm94KiBmaXJzdCgpCkBA
IC03MywyMiArNzQsMzEgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgZG8gewogICAgICAgICAg
ICAgaWYgKCFtX2N1cnJlbnRDaGlsZCkgewotICAgICAgICAgICAgICAgIGlmIChtX2ZvcndhcmQp
IHsKLSAgICAgICAgICAgICAgICAgICAgKyttX2N1cnJlbnRPcmRpbmFsOwotICAgICAgICAgICAg
ICAgICAgICBpZiAobV9jdXJyZW50T3JkaW5hbCA+IG1fbGFzdE9yZGluYWwpCi0gICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgICAgICAgICAgICAgbV9jdXJyZW50Q2hp
bGQgPSBtX2JveC0+Zmlyc3RDaGlsZEJveCgpOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICAgICAgICAgIC0tbV9jdXJyZW50T3JkaW5hbDsKLSAgICAgICAgICAgICAgICAg
ICAgaWYgKCFtX2N1cnJlbnRPcmRpbmFsKQorICAgICAgICAgICAgICAgICsrbV9vcmRpbmFsSXRl
cmF0aW9uOworCisgICAgICAgICAgICAgICAgaWYgKCFtX29yZGluYWxJdGVyYXRpb24pCisgICAg
ICAgICAgICAgICAgICAgIG1fY3VycmVudE9yZGluYWwgPSBtX2ZvcndhcmQgPyAxIDogbV9sYXN0
T3JkaW5hbDsKKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaWYg
KG1fb3JkaW5hbEl0ZXJhdGlvbiA+PSBtX29yZGluYWxWYWx1ZXMuc2l6ZSgpICsgMSkKICAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICAgICAgICAgICAgICBtX2N1cnJl
bnRDaGlsZCA9IG1fYm94LT5sYXN0Q2hpbGRCb3goKTsKKworICAgICAgICAgICAgICAgICAgICBp
ZiAoc3RhdGljX2Nhc3Q8c2l6ZV90PihtX29yZGluYWxWYWx1ZXMuc2l6ZSgpKSAhPSBtX3NvcnRl
ZE9yZGluYWxWYWx1ZXMuc2l6ZSgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjb3B5VG9W
ZWN0b3IobV9vcmRpbmFsVmFsdWVzLCBtX3NvcnRlZE9yZGluYWxWYWx1ZXMpOworICAgICAgICAg
ICAgICAgICAgICAgICAgc29ydChtX3NvcnRlZE9yZGluYWxWYWx1ZXMuYmVnaW4oKSwgbV9zb3J0
ZWRPcmRpbmFsVmFsdWVzLmVuZCgpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICBtX2N1cnJlbnRPcmRpbmFsID0gbV9mb3J3YXJkID8gbV9zb3J0ZWRPcmRpbmFs
VmFsdWVzW21fb3JkaW5hbEl0ZXJhdGlvbiAtIDFdIDogbV9zb3J0ZWRPcmRpbmFsVmFsdWVzW21f
c29ydGVkT3JkaW5hbFZhbHVlcy5zaXplKCkgLSBtX29yZGluYWxJdGVyYXRpb25dOwogICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGVsc2UKKworICAgICAgICAg
ICAgICAgIG1fY3VycmVudENoaWxkID0gbV9mb3J3YXJkID8gbV9ib3gtPmZpcnN0Q2hpbGRCb3go
KSA6IG1fYm94LT5sYXN0Q2hpbGRCb3goKTsKKyAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAg
ICAgICAgIG1fY3VycmVudENoaWxkID0gbV9mb3J3YXJkID8gbV9jdXJyZW50Q2hpbGQtPm5leHRT
aWJsaW5nQm94KCkgOiBtX2N1cnJlbnRDaGlsZC0+cHJldmlvdXNTaWJsaW5nQm94KCk7Ci0gICAg
ICAgICAgICBpZiAobV9jdXJyZW50Q2hpbGQgJiYgbV9jdXJyZW50Q2hpbGQtPnN0eWxlKCktPmJv
eE9yZGluYWxHcm91cCgpID4gbV9sYXN0T3JkaW5hbCkKLSAgICAgICAgICAgICAgICBtX2xhc3RP
cmRpbmFsID0gbV9jdXJyZW50Q2hpbGQtPnN0eWxlKCktPmJveE9yZGluYWxHcm91cCgpOworCisg
ICAgICAgICAgICBpZiAoIW1fY3VycmVudENoaWxkKQorICAgICAgICAgICAgICAgIGNvbnRpbnVl
OworCisgICAgICAgICAgICBpZiAoKG1fZm9yd2FyZCAmJiBtX2N1cnJlbnRPcmRpbmFsID09IDEg
JiYgbV9jdXJyZW50Q2hpbGQtPnN0eWxlKCktPmJveE9yZGluYWxHcm91cCgpICE9IDEpCisgICAg
ICAgICAgICAgICAgfHwgKCFtX2ZvcndhcmQgJiYgbV9jdXJyZW50T3JkaW5hbCA9PSBtX2xhc3RP
cmRpbmFsICYmIG1fY3VycmVudENoaWxkLT5zdHlsZSgpLT5ib3hPcmRpbmFsR3JvdXAoKSAhPSBt
X2xhc3RPcmRpbmFsKSkKKyAgICAgICAgICAgICAgICBtX29yZGluYWxWYWx1ZXMuYWRkKG1fY3Vy
cmVudENoaWxkLT5zdHlsZSgpLT5ib3hPcmRpbmFsR3JvdXAoKSk7CiAgICAgICAgIH0gd2hpbGUg
KCFtX2N1cnJlbnRDaGlsZCB8fCAoIW1fY3VycmVudENoaWxkLT5pc0Fub255bW91cygpCiAgICAg
ICAgICAgICAgICAgICYmIChtX2N1cnJlbnRDaGlsZC0+c3R5bGUoKS0+Ym94T3JkaW5hbEdyb3Vw
KCkgIT0gbV9jdXJyZW50T3JkaW5hbCB8fCBtX2N1cnJlbnRDaGlsZC0+c3R5bGUoKS0+dmlzaWJp
bGl0eSgpID09IENPTExBUFNFKSkpOwogICAgICAgICByZXR1cm4gbV9jdXJyZW50Q2hpbGQ7CkBA
IC0xMDAsNiArMTEwLDkgQEAgcHJpdmF0ZToKICAgICBib29sIG1fZm9yd2FyZDsKICAgICB1bnNp
Z25lZCBpbnQgbV9jdXJyZW50T3JkaW5hbDsKICAgICB1bnNpZ25lZCBpbnQgbV9sYXN0T3JkaW5h
bDsKKyAgICBIYXNoU2V0PHVuc2lnbmVkIGludD4gbV9vcmRpbmFsVmFsdWVzOworICAgIFZlY3Rv
cjx1bnNpZ25lZCBpbnQ+IG1fc29ydGVkT3JkaW5hbFZhbHVlczsKKyAgICBpbnQgbV9vcmRpbmFs
SXRlcmF0aW9uOwogfTsKIAogUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjpSZW5kZXJEZXBy
ZWNhdGVkRmxleGlibGVCb3goTm9kZSogbm9kZSkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105682</attachid>
            <date>2011-08-30 13:23:53 -0700</date>
            <delta_ts>2011-08-30 13:36:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65783-20110830132250.patch</filename>
            <type>text/plain</type>
            <size>8921</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQwOTAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiZmRkZjVkZmI2OGVlOWQ4ZDE1NmI1
MDFiN2ZhYjg5YmU4N2VjODg4Li43ODhlNzVkNTljODAyMWNmMmRhOTY0OTA0ZmNlNDZlNjY5NzI1
YTc3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDgtMzAgIFRvbnkgQ2hhbmcgIDx0b255
QGNocm9taXVtLm9yZz4KKworICAgICAgICByZWZhY3RvciBib3gtb3JkaW5hbC1ncm91cCBoYW5k
bGluZyBzbyB3ZSBkb24ndCB0aW1lb3V0IG9uIGxhcmdlIHZhbHVlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU3ODMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZmxleGJveC9ib3gtb3JkaW5h
bC1ncm91cC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmxleGJveC9ib3gt
b3JkaW5hbC1ncm91cC5odG1sOiBBZGRlZC4KKwogMjAxMS0wOC0zMCAgU2hlcmlmZiBCb3QgIDx3
ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGlu
ZyBvdXQgcjkzOTI0LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mbGV4Ym94L2JveC1v
cmRpbmFsLWdyb3VwLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZmxleGJveC9ib3gt
b3JkaW5hbC1ncm91cC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTg0MTJjZTQyNzgzN2NlMTg3
ZTBmYjVmOWYwMTFiMzI4MmI2NTZlNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZmxleGJveC9ib3gtb3JkaW5hbC1ncm91cC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBA
QAorVGhpcyB0ZXN0cyB0byBtYWtlIHN1cmUgdGhhdCBsYXJnZSBib3gtb3JkaW5hbC1ncm91cCB2
YWx1ZXMgZG9uJ3QgaGFuZyB0aGUgcmVuZGVyZXIuIFRoaXMgdGVzdCBwYXNzZXMgaWYgaXQgZG9l
cyBub3QgdGltZW91dC4KKworMQorMgorMworNAorNQorMworNAorMQorMgorNQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9mbGV4Ym94L2JveC1vcmRpbmFsLWdyb3VwLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2ZsZXhib3gvYm94LW9yZGluYWwtZ3JvdXAuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5m
NmVkZWU0ZjQ3OWZhMjk4ZmNjZjMzODMzMzM3NGMyNWY2NzVmZDlhCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9mbGV4Ym94L2JveC1vcmRpbmFsLWdyb3VwLmh0bWwKQEAgLTAs
MCArMSw3MiBAQAorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2Rpdi5ib3ggeworICBkaXNwbGF5
OiAtbW96LWJveDsKKyAgZGlzcGxheTogLXdlYmtpdC1ib3g7CisgIGRpc3BsYXk6IGJveDsKK30K
KworZGl2Lm51bWJlciB7CisgIGJvcmRlcjogMnB4IHNvbGlkIGJsYWNrOworICBwYWRkaW5nOiA0
cHg7CisgIG1hcmdpbjogNHB4OworfQorCisuZmlyc3QgeworICAtbW96LWJveC1vcmRpbmFsLWdy
b3VwOiAxOworICAtd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOiAxOworICBib3gtb3JkaW5hbC1n
cm91cDogMTsKK30KKworLnNlY29uZCB7CisgIC1tb3otYm94LW9yZGluYWwtZ3JvdXA6IDEwMDAw
MDAwMDA7CisgIC13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6IDEwMDAwMDAwMDA7CisgIGJveC1v
cmRpbmFsLWdyb3VwOiAxMDAwMDAwMDAwOworfQorCisudGhpcmQgeworICAtbW96LWJveC1vcmRp
bmFsLWdyb3VwOiAyMDAwMDAwMDAwOworICAtd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOiAyMDAw
MDAwMDAwOworICBib3gtb3JkaW5hbC1ncm91cDogMjAwMDAwMDAwMDsKK30KKworLmZvdXJ0aCB7
CisgIC1tb3otYm94LW9yZGluYWwtZ3JvdXA6IDMwMDAwMDAwMDA7CisgIC13ZWJraXQtYm94LW9y
ZGluYWwtZ3JvdXA6IDMwMDAwMDAwMDA7CisgIGJveC1vcmRpbmFsLWdyb3VwOiAzMDAwMDAwMDAw
OworfQorCisuZmlmdGggeworICAtbW96LWJveC1vcmRpbmFsLWdyb3VwOiA0MDAwMDAwMDAwOwor
ICAtd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOiA0MDAwMDAwMDAwOworICBib3gtb3JkaW5hbC1n
cm91cDogNDAwMDAwMDAwMDsKK30KKworPC9zdHlsZT4KKzxzY3JpcHQ+CitpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKKzwvc2NyaXB0PgorPGJvZHk+Cis8cD4KK1RoaXMgdGVzdHMgdG8gbWFrZSBzdXJlIHRoYXQg
bGFyZ2UgYm94LW9yZGluYWwtZ3JvdXAgdmFsdWVzIGRvbid0IGhhbmcgdGhlIHJlbmRlcmVyLgor
VGhpcyB0ZXN0IHBhc3NlcyBpZiBpdCBkb2VzIG5vdCB0aW1lb3V0LgorPC9wPgorPGRpdiBjbGFz
cz0iYm94Ij4KKyAgPGRpdiBjbGFzcz0ibnVtYmVyIGZpcnN0Ij4xPC9kaXY+CisgIDxkaXYgY2xh
c3M9Im51bWJlciBzZWNvbmQiPjI8L2Rpdj4KKyAgPGRpdiBjbGFzcz0ibnVtYmVyIHRoaXJkIj4z
PC9kaXY+CisgIDxkaXYgY2xhc3M9Im51bWJlciBmb3VydGgiPjQ8L2Rpdj4KKyAgPGRpdiBjbGFz
cz0ibnVtYmVyIGZpZnRoIj41PC9kaXY+Cis8L2Rpdj4KKworPGRpdiBjbGFzcz0iYm94IiBzdHls
ZT0iLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiByZXZlcnNlIj4KKyAgPGRpdiBjbGFzcz0ibnVtYmVy
IHRoaXJkIj4zPC9kaXY+CisgIDxkaXYgY2xhc3M9Im51bWJlciBzZWNvbmQiPjQ8L2Rpdj4KKyAg
PGRpdiBjbGFzcz0ibnVtYmVyIGZpZnRoIj4xPC9kaXY+CisgIDxkaXYgY2xhc3M9Im51bWJlciBm
b3VydGgiPjI8L2Rpdj4KKyAgPGRpdiBjbGFzcz0ibnVtYmVyIGZpcnN0Ij41PC9kaXY+Cis8L2Rp
dj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1ZjQxYjI1NzljZmYyNzI4ODgyNGQ1
MjhmMzRjMTliYzMwYmU5ZmI4Li40Y2E0NWNjZjhkYzAyMWE2M2I0NGU2YzVjZWNhOTM2YmEyZmM0
ODdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTEtMDgtMzAgIFRvbnkgQ2hhbmcg
IDx0b255QGNocm9taXVtLm9yZz4KKworICAgICAgICByZWZhY3RvciBib3gtb3JkaW5hbC1ncm91
cCBoYW5kbGluZyBzbyB3ZSBkb24ndCB0aW1lb3V0IG9uIGxhcmdlIHZhbHVlcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU3ODMKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgb2xkIGNvZGUgd2Fsa2Vk
IGZyb20gMSB0byB0aGUgbGFzdCBib3gtb3JkaW5hbC1ncm91cCB3aGlsZQorICAgICAgICBpdGVy
YXRpbmcgb3ZlciBlYWNoIGZsZXggaXRlbS4gIFRoZSBuZXcgY29kZSBjb2xsZWN0cyBvcmRpbmFs
cyBhcworICAgICAgICB3ZSBkbyB0aGUgZmlyc3Qgd2FsayBhbmQgc29ydHMgdGhlbS4gIEVhY2gg
YWRkaXRpb25hbCBpdGVyYXRpb24KKyAgICAgICAgdGhyb3VnaCB0aGUgZmxleCBpdGVtcyBnZXRz
IHRoZSBuZXh0IG9yaWRuYWwgZnJvbSB0aGUgc29ydGVkIGxpc3QuCisKKyAgICAgICAgVGhpcyBt
YWludGFpbnMgdGhlIHNpbmdsZSBwYXNzIGZvciB0aGUgY29tbW9uIGNhc2Ugb2Ygbm8KKyAgICAg
ICAgYm94LW9yZGluYWwtZ3JvdXBzIHNwZWNpZmllZC4gIElmIHRoZXJlIGFyZSBvcmRpbmFsIGdy
b3VwcywKKyAgICAgICAgdGhlIHJ1bnRpbWUgaXMgTyhuKm0gKyBtIGxnIG0pIHdoZXJlIG4gaXMg
dGhlICMgb2YgZmxleCBpdGVtcyBhbmQKKyAgICAgICAgbSBpcyB0aGUgbnVtYmVyIG9mIHVuaXF1
ZSBib3gtb3JkaW5hbC1ncm91cCB2YWx1ZXMuICBUaGUgbWVtb3J5CisgICAgICAgIHVzYWdlIGlz
IE8oMm0pLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZmxleGJveC9ib3gtb3JkaW5hbC1ncm91cC5o
dG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZsZXhCb3hJdGVyYXRvcjo6RmxleEJveEl0ZXJhdG9yKToK
KyAgICAgICAgKFdlYkNvcmU6OkZsZXhCb3hJdGVyYXRvcjo6cmVzZXQpOgorICAgICAgICAoV2Vi
Q29yZTo6RmxleEJveEl0ZXJhdG9yOjpuZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkZsZXhCb3hJ
dGVyYXRvcjo6Y29tcGFyZUZsZXhPcmRlcik6CisKIDIwMTEtMDgtMzAgIEFudHRpIEtvaXZpc3Rv
ICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIHF1ZXJ5U2VsZWN0b3IvcXVlcnlTZWxlY3Rv
ckFsbCBzaG91bGQgdXNlIHNlbGVjdG9yIGNoZWNrZXIgZmFzdCBwYXRoIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNw
cAppbmRleCBmMzQxMDJiODUzYjllOGRmN2M0NzMzNWM4N2UxNGQzYjIxMWM0ZjIyLi5jYzUwNGE2
NzRhMTU2YjhkMGNiZWMwMWFiMTIwMjc2MmJiZjU5ZWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcApAQCAt
MzgsNyArMzgsNyBAQCBjbGFzcyBGbGV4Qm94SXRlcmF0b3IgewogcHVibGljOgogICAgIEZsZXhC
b3hJdGVyYXRvcihSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3gqIHBhcmVudCkKICAgICAgICAg
OiBtX2JveChwYXJlbnQpCi0gICAgICAgICwgbV9sYXN0T3JkaW5hbCgxKQorICAgICAgICAsIG1f
bGFyZ2VzdE9yZGluYWwoMSkKICAgICB7CiAgICAgICAgIGlmIChtX2JveC0+c3R5bGUoKS0+Ym94
T3JpZW50KCkgPT0gSE9SSVpPTlRBTCAmJiAhbV9ib3gtPnN0eWxlKCktPmlzTGVmdFRvUmlnaHRE
aXJlY3Rpb24oKSkKICAgICAgICAgICAgIG1fZm9yd2FyZCA9IG1fYm94LT5zdHlsZSgpLT5ib3hE
aXJlY3Rpb24oKSAhPSBCTk9STUFMOwpAQCAtNDgsOCArNDgsOCBAQCBwdWJsaWM6CiAgICAgICAg
ICAgICAvLyBObyBjaG9pY2UsIHNpbmNlIHdlJ3JlIGdvaW5nIGJhY2t3YXJkcywgd2UgaGF2ZSB0
byBmaW5kIG91dCB0aGUgaGlnaGVzdCBvcmRpbmFsIHVwIGZyb250LgogICAgICAgICAgICAgUmVu
ZGVyQm94KiBjaGlsZCA9IG1fYm94LT5maXJzdENoaWxkQm94KCk7CiAgICAgICAgICAgICB3aGls
ZSAoY2hpbGQpIHsKLSAgICAgICAgICAgICAgICBpZiAoY2hpbGQtPnN0eWxlKCktPmJveE9yZGlu
YWxHcm91cCgpID4gbV9sYXN0T3JkaW5hbCkKLSAgICAgICAgICAgICAgICAgICAgbV9sYXN0T3Jk
aW5hbCA9IGNoaWxkLT5zdHlsZSgpLT5ib3hPcmRpbmFsR3JvdXAoKTsKKyAgICAgICAgICAgICAg
ICBpZiAoY2hpbGQtPnN0eWxlKCktPmJveE9yZGluYWxHcm91cCgpID4gbV9sYXJnZXN0T3JkaW5h
bCkKKyAgICAgICAgICAgICAgICAgICAgbV9sYXJnZXN0T3JkaW5hbCA9IGNoaWxkLT5zdHlsZSgp
LT5ib3hPcmRpbmFsR3JvdXAoKTsKICAgICAgICAgICAgICAgICBjaGlsZCA9IGNoaWxkLT5uZXh0
U2libGluZ0JveCgpOwogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC02MCw3ICs2MCw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIHJlc2V0KCkKICAgICB7CiAgICAgICAgIG1fY3VycmVudENoaWxk
ID0gMDsKLSAgICAgICAgbV9jdXJyZW50T3JkaW5hbCA9IG1fZm9yd2FyZCA/IDAgOiBtX2xhc3RP
cmRpbmFsICsgMTsKKyAgICAgICAgbV9vcmRpbmFsSXRlcmF0aW9uID0gLTE7CiAgICAgfQogCiAg
ICAgUmVuZGVyQm94KiBmaXJzdCgpCkBAIC03MywzMyArNzMsNDggQEAgcHVibGljOgogICAgIHsK
ICAgICAgICAgZG8gewogICAgICAgICAgICAgaWYgKCFtX2N1cnJlbnRDaGlsZCkgewotICAgICAg
ICAgICAgICAgIGlmIChtX2ZvcndhcmQpIHsKLSAgICAgICAgICAgICAgICAgICAgKyttX2N1cnJl
bnRPcmRpbmFsOwotICAgICAgICAgICAgICAgICAgICBpZiAobV9jdXJyZW50T3JkaW5hbCA+IG1f
bGFzdE9yZGluYWwpCi0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAg
ICAgICAgICAgICAgbV9jdXJyZW50Q2hpbGQgPSBtX2JveC0+Zmlyc3RDaGlsZEJveCgpOwotICAg
ICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIC0tbV9jdXJyZW50T3Jk
aW5hbDsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCFtX2N1cnJlbnRPcmRpbmFsKQorICAgICAg
ICAgICAgICAgICsrbV9vcmRpbmFsSXRlcmF0aW9uOworCisgICAgICAgICAgICAgICAgaWYgKCFt
X29yZGluYWxJdGVyYXRpb24pCisgICAgICAgICAgICAgICAgICAgIG1fY3VycmVudE9yZGluYWwg
PSBtX2ZvcndhcmQgPyAxIDogbV9sYXJnZXN0T3JkaW5hbDsKKyAgICAgICAgICAgICAgICBlbHNl
IHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1fb3JkaW5hbEl0ZXJhdGlvbiA+PSBtX29yZGlu
YWxWYWx1ZXMuc2l6ZSgpICsgMSkKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOwot
ICAgICAgICAgICAgICAgICAgICBtX2N1cnJlbnRDaGlsZCA9IG1fYm94LT5sYXN0Q2hpbGRCb3go
KTsKKworICAgICAgICAgICAgICAgICAgICAvLyBPbmx5IGNvcHkrc29ydCB0aGUgdmFsdWVzIG9u
Y2UgcGVyIGxheW91dCBldmVuIGlmIHRoZSBpdGVyYXRvciBpcyByZXNldC4KKyAgICAgICAgICAg
ICAgICAgICAgaWYgKHN0YXRpY19jYXN0PHNpemVfdD4obV9vcmRpbmFsVmFsdWVzLnNpemUoKSkg
IT0gbV9zb3J0ZWRPcmRpbmFsVmFsdWVzLnNpemUoKSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgY29weVRvVmVjdG9yKG1fb3JkaW5hbFZhbHVlcywgbV9zb3J0ZWRPcmRpbmFsVmFsdWVzKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIHNvcnQobV9zb3J0ZWRPcmRpbmFsVmFsdWVzLmJlZ2lu
KCksIG1fc29ydGVkT3JkaW5hbFZhbHVlcy5lbmQoKSk7CisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgbV9jdXJyZW50T3JkaW5hbCA9IG1fZm9yd2FyZCA/IG1fc29y
dGVkT3JkaW5hbFZhbHVlc1ttX29yZGluYWxJdGVyYXRpb24gLSAxXSA6IG1fc29ydGVkT3JkaW5h
bFZhbHVlc1ttX3NvcnRlZE9yZGluYWxWYWx1ZXMuc2l6ZSgpIC0gbV9vcmRpbmFsSXRlcmF0aW9u
XTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBlbHNlCisK
KyAgICAgICAgICAgICAgICBtX2N1cnJlbnRDaGlsZCA9IG1fZm9yd2FyZCA/IG1fYm94LT5maXJz
dENoaWxkQm94KCkgOiBtX2JveC0+bGFzdENoaWxkQm94KCk7CisgICAgICAgICAgICB9IGVsc2UK
ICAgICAgICAgICAgICAgICBtX2N1cnJlbnRDaGlsZCA9IG1fZm9yd2FyZCA/IG1fY3VycmVudENo
aWxkLT5uZXh0U2libGluZ0JveCgpIDogbV9jdXJyZW50Q2hpbGQtPnByZXZpb3VzU2libGluZ0Jv
eCgpOwotICAgICAgICAgICAgaWYgKG1fY3VycmVudENoaWxkICYmIG1fY3VycmVudENoaWxkLT5z
dHlsZSgpLT5ib3hPcmRpbmFsR3JvdXAoKSA+IG1fbGFzdE9yZGluYWwpCi0gICAgICAgICAgICAg
ICAgbV9sYXN0T3JkaW5hbCA9IG1fY3VycmVudENoaWxkLT5zdHlsZSgpLT5ib3hPcmRpbmFsR3Jv
dXAoKTsKKworICAgICAgICAgICAgaWYgKG1fY3VycmVudENoaWxkICYmIG5vdEZpcnN0T3JkaW5h
bFZhbHVlKCkpCisgICAgICAgICAgICAgICAgbV9vcmRpbmFsVmFsdWVzLmFkZChtX2N1cnJlbnRD
aGlsZC0+c3R5bGUoKS0+Ym94T3JkaW5hbEdyb3VwKCkpOwogICAgICAgICB9IHdoaWxlICghbV9j
dXJyZW50Q2hpbGQgfHwgKCFtX2N1cnJlbnRDaGlsZC0+aXNBbm9ueW1vdXMoKQogICAgICAgICAg
ICAgICAgICAmJiAobV9jdXJyZW50Q2hpbGQtPnN0eWxlKCktPmJveE9yZGluYWxHcm91cCgpICE9
IG1fY3VycmVudE9yZGluYWwgfHwgbV9jdXJyZW50Q2hpbGQtPnN0eWxlKCktPnZpc2liaWxpdHko
KSA9PSBDT0xMQVBTRSkpKTsKICAgICAgICAgcmV0dXJuIG1fY3VycmVudENoaWxkOwogICAgIH0K
IAogcHJpdmF0ZToKKyAgICBib29sIG5vdEZpcnN0T3JkaW5hbFZhbHVlKCkKKyAgICB7CisgICAg
ICAgIHVuc2lnbmVkIGludCBmaXJzdE9yZGluYWxWYWx1ZSA9IG1fZm9yd2FyZCA/IDEgOiBtX2xh
cmdlc3RPcmRpbmFsOworICAgICAgICByZXR1cm4gbV9jdXJyZW50T3JkaW5hbCA9PSBmaXJzdE9y
ZGluYWxWYWx1ZSAmJiBtX2N1cnJlbnRDaGlsZC0+c3R5bGUoKS0+Ym94T3JkaW5hbEdyb3VwKCkg
IT0gZmlyc3RPcmRpbmFsVmFsdWU7CisgICAgfQorCiAgICAgUmVuZGVyRGVwcmVjYXRlZEZsZXhp
YmxlQm94KiBtX2JveDsKICAgICBSZW5kZXJCb3gqIG1fY3VycmVudENoaWxkOwogICAgIGJvb2wg
bV9mb3J3YXJkOwogICAgIHVuc2lnbmVkIGludCBtX2N1cnJlbnRPcmRpbmFsOwotICAgIHVuc2ln
bmVkIGludCBtX2xhc3RPcmRpbmFsOworICAgIHVuc2lnbmVkIGludCBtX2xhcmdlc3RPcmRpbmFs
OworICAgIEhhc2hTZXQ8dW5zaWduZWQgaW50PiBtX29yZGluYWxWYWx1ZXM7CisgICAgVmVjdG9y
PHVuc2lnbmVkIGludD4gbV9zb3J0ZWRPcmRpbmFsVmFsdWVzOworICAgIGludCBtX29yZGluYWxJ
dGVyYXRpb247CiB9OwogCiBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3g6OlJlbmRlckRlcHJl
Y2F0ZWRGbGV4aWJsZUJveChOb2RlKiBub2RlKQo=
</data>
<flag name="review"
          id="101911"
          type_id="1"
          status="+"
          setter="hyatt"
    />
          </attachment>
      

    </bug>

</bugzilla>