<?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>94248</bug_id>
          
          <creation_ts>2012-08-16 13:32:25 -0700</creation_ts>
          <short_desc>[EFL][WK2] ewk_back_forward_list_item properties should be in sync with WebProcessProxy::m_backForwardListItemMap</short_desc>
          <delta_ts>2012-08-18 14:47:28 -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>WebKit EFL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>92617</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mikhail Pozdnyakov">mikhail.pozdnyakov</reporter>
          <assigned_to name="Mikhail Pozdnyakov">mikhail.pozdnyakov</assigned_to>
          <cc>cdumez</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kenneth</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>tmpsantos</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>697446</commentid>
    <comment_count>0</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-08-16 13:32:25 -0700</bug_when>
    <thetext>Currently ewk_back_forward_list_item properties are initialized from WKBackForwardListItemRef once in the constructor and then just stored.
This is erroneous approach as back forward items can be initialized within several iterations, meaning several ipc calls to UI process and several updates of WebProcessProxy::m_backForwardListItemMap where the items are stored. Hence the values of ewk_back_forward_list_item properties should be updated with the corresponding WKBackForwardListItem.. functions invokes every time they are called.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>697475</commentid>
    <comment_count>1</comment_count>
      <attachid>158892</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-08-16 13:47:56 -0700</bug_when>
    <thetext>Created attachment 158892
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>697483</commentid>
    <comment_count>2</comment_count>
      <attachid>158892</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-08-16 13:51:36 -0700</bug_when>
    <thetext>Comment on attachment 158892
patch

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

&gt; Source/WebKit2/UIProcess/API/efl/ewk_back_forward_list_item.cpp:92
&gt; +    return item-&gt;uri = WKEinaSharedString(AdoptWK, WKBackForwardListItemCopyURL(wkItem));

Personally, I would prefer this on 2 lines.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_back_forward_list_item.cpp:99
&gt; +    return item-&gt;title = WKEinaSharedString(AdoptWK, WKBackForwardListItemCopyTitle(item-&gt;wkItem.get()));

Ditto. + You should use wkItem directly instead of item-&gt;wkItem.get().

&gt; Source/WebKit2/UIProcess/API/efl/ewk_back_forward_list_item.cpp:106
&gt; +    return item-&gt;originalUri = WKEinaSharedString(AdoptWK, WKBackForwardListItemCopyOriginalURL(item-&gt;wkItem.get()));

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>697508</commentid>
    <comment_count>3</comment_count>
      <attachid>158897</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-08-16 14:13:53 -0700</bug_when>
    <thetext>Created attachment 158897
patch v2

Chris, thanks for review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>697518</commentid>
    <comment_count>4</comment_count>
      <attachid>158897</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-08-16 14:20:00 -0700</bug_when>
    <thetext>Comment on attachment 158897
patch v2

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>697816</commentid>
    <comment_count>5</comment_count>
      <attachid>158897</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-08-16 19:12:34 -0700</bug_when>
    <thetext>Comment on attachment 158897
patch v2

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

&gt; Source/WebKit2/ChangeLog:14
&gt; +        with the corresponding WKBackForwardListItem.. functions invokes every time

Use &apos;.&apos; instead &apos;..&apos; at the end of WKBackForwardListItem.

&gt; Source/WebKit2/ChangeLog:17
&gt; +        * PlatformEfl.cmake:

PlatformEfl.cmake is not modified by this patch.

&gt; Source/WebKit2/ChangeLog:24
&gt; +        * UIProcess/API/efl/tests/resources/default_test_page.html:

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>697948</commentid>
    <comment_count>6</comment_count>
      <attachid>159014</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-08-17 00:01:44 -0700</bug_when>
    <thetext>Created attachment 159014
patch v3

Fixed ChangeLog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698181</commentid>
    <comment_count>7</comment_count>
      <attachid>159014</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-08-17 04:11:56 -0700</bug_when>
    <thetext>Comment on attachment 159014
patch v3

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

&gt; Source/WebKit2/UIProcess/API/efl/ewk_back_forward_list_item.cpp:42
&gt; +    mutable WKEinaSharedString uri;

hmm you need to assign to this from const methods? maybe mention in the changelog

&gt; Source/WebKit2/UIProcess/API/efl/ewk_back_forward_list_item.cpp:69
&gt; +    if (!(item)-&gt;wkItem) {                                                 \
&gt; +        EINA_LOG_CRIT(&quot;item-&gt;wkItem is NULL.&quot;);                            \
&gt; +        return __VA_ARGS__;                                                \
&gt; +    }                                                                      \
&gt; +    if (!(item)-&gt;wkItem.get()) {                                           \
&gt; +        EINA_LOG_CRIT(&quot;item-&gt;wkItem.get() is NULL.&quot;);                      \
&gt; +        return __VA_ARGS__;                                                \
&gt; +    }                                                                      \

It is a RetainPtr class... what is the diff between checking if wkItem is Null and wkItem.get() ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698293</commentid>
    <comment_count>8</comment_count>
      <attachid>159113</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-08-17 06:55:43 -0700</bug_when>
    <thetext>Created attachment 159113
patch v4

Took Kenneth feedback into consideration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698301</commentid>
    <comment_count>9</comment_count>
      <attachid>159117</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-08-17 07:00:59 -0700</bug_when>
    <thetext>Created attachment 159117
patch v4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698303</commentid>
    <comment_count>10</comment_count>
      <attachid>159014</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-08-17 07:02:57 -0700</bug_when>
    <thetext>Comment on attachment 159014
patch v3

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

&gt;&gt; Source/WebKit2/UIProcess/API/efl/ewk_back_forward_list_item.cpp:69
&gt;&gt; +    }                                                                      \
&gt; 
&gt; It is a RetainPtr class... what is the diff between checking if wkItem is Null and wkItem.get() ?

Agree, it has bool operator overloaded. Thanks for the catch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698387</commentid>
    <comment_count>11</comment_count>
      <attachid>159117</attachid>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2012-08-17 09:05:10 -0700</bug_when>
    <thetext>Comment on attachment 159117
patch v4

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

&gt; Source/WebKit2/UIProcess/API/efl/ewk_back_forward_list_item.cpp:44
&gt; +    mutable WKEinaSharedString uri;
&gt; +    mutable WKEinaSharedString title;
&gt; +    mutable WKEinaSharedString originalUri;

Controversial but I think it is a legit case of using mutable. Looks to me it is because the getter is lazy initialized, right?

&gt; Source/WebKit2/UIProcess/API/efl/ewk_back_forward_list_item.cpp:66
&gt; +#define EWK_BACK_FORWARD_LIST_ITEM_WK_GET_OR_RETURN(item, wkItem_, ...)    \
&gt; +    if (!(item)) {                                                         \
&gt; +        EINA_LOG_CRIT(&quot;item is NULL.&quot;);                                    \
&gt; +        return __VA_ARGS__;                                                \
&gt; +    }                                                                      \
&gt; +    if (!(item)-&gt;wkItem) {                                                 \
&gt; +        EINA_LOG_CRIT(&quot;item-&gt;wkItem is NULL.&quot;);                            \
&gt; +        return __VA_ARGS__;                                                \
&gt; +    }                                                                      \
&gt; +    WKBackForwardListItemRef wkItem_ = (item)-&gt;wkItem.get()

Why are you using __VA_ARGS__ here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698948</commentid>
    <comment_count>12</comment_count>
      <attachid>159117</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-18 14:47:22 -0700</bug_when>
    <thetext>Comment on attachment 159117
patch v4

Clearing flags on attachment: 159117

Committed r125969: &lt;http://trac.webkit.org/changeset/125969&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698949</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-18 14:47:28 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158892</attachid>
            <date>2012-08-16 13:47:56 -0700</date>
            <delta_ts>2012-08-16 14:13:53 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug94248</filename>
            <type>text/plain</type>
            <size>5369</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IGU5NGYxNmUxNWRiZmNiNWNiNDM0YTY5NWE4MzkwNzcxODhiMjE1ZGIKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
VGh1IEF1ZyAxNiAyMzo0NTo0NiAyMDEyICswMzAwCgogICAgYnVnOTQyNDgKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5k
ZXggYzk2YWI1Zi4uOGRhODU5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTA4
LTE2ICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWtoYWlsLnBvemRueWFrb3ZAaW50ZWwuY29tPgor
CisgICAgICAgIFtFRkxdW1dLMl0gZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW0gcHJvcGVydGll
cyBzaG91bGQgYmUgaW4gc3luYyB3aXRoIFdlYlByb2Nlc3NQcm94eTo6bV9iYWNrRm9yd2FyZExp
c3RJdGVtTWFwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05NDI0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEN1cnJlbnRseSBld2tfYmFja19mb3J3YXJkX2xpc3RfaXRlbSBwcm9wZXJ0aWVzIGFyZSBpbml0
aWFsaXplZCBmcm9tCisgICAgICAgIFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZiBvbmNlIGluIHRo
ZSBjb25zdHJ1Y3RvciBhbmQgdGhlbiBqdXN0IHN0b3JlZC4KKyAgICAgICAgVGhpcyBpcyBlcnJv
bmVvdXMgYXBwcm9hY2ggYXMgYmFjayBmb3J3YXJkIGl0ZW1zIGNhbiBiZSBpbml0aWFsaXplZCB3
aXRoaW4KKyAgICAgICAgc2V2ZXJhbCBpdGVyYXRpb25zLCBtZWFuaW5nIHNldmVyYWwgaXBjIGNh
bGxzIHRvIFVJIHByb2Nlc3MgYW5kIHNldmVyYWwgdXBkYXRlcworICAgICAgICBvZiBXZWJQcm9j
ZXNzUHJveHk6Om1fYmFja0ZvcndhcmRMaXN0SXRlbU1hcCB3aGVyZSB0aGUgaXRlbXMgYXJlIHN0
b3JlZC4KKyAgICAgICAgSGVuY2UgdGhlIHZhbHVlcyBvZiBld2tfYmFja19mb3J3YXJkX2xpc3Rf
aXRlbSBwcm9wZXJ0aWVzIHNob3VsZCBiZSB1cGRhdGVkCisgICAgICAgIHdpdGggdGhlIGNvcnJl
c3BvbmRpbmcgV0tCYWNrRm9yd2FyZExpc3RJdGVtLi4gZnVuY3Rpb25zIGludm9rZXMgZXZlcnkg
dGltZQorICAgICAgICB0aGV5IGFyZSBjYWxsZWQuCisKKyAgICAgICAgKiBQbGF0Zm9ybUVmbC5j
bWFrZToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfYmFja19mb3J3YXJkX2xpc3Rf
aXRlbS5jcHA6CisgICAgICAgIChfRXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW0pOgorICAgICAg
ICAoX0V3a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVtOjpfRXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0
ZW0pOgorICAgICAgICAoZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW1fdXJpX2dldCk6CisgICAg
ICAgIChld2tfYmFja19mb3J3YXJkX2xpc3RfaXRlbV90aXRsZV9nZXQpOgorICAgICAgICAoZXdr
X2JhY2tfZm9yd2FyZF9saXN0X2l0ZW1fb3JpZ2luYWxfdXJpX2dldCk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9lZmwvdGVzdHMvcmVzb3VyY2VzL2RlZmF1bHRfdGVzdF9wYWdlLmh0bWw6CisK
IDIwMTItMDgtMTYgIE1hcmNlbG8gTGlyYSAgPG1hcmNlbG8ubGlyYUBvcGVuYm9zc2Eub3JnPgog
CiAgICAgICAgIFtRdF0gSW5wdXQgbWV0aG9kIGhpbnRzIGFyZSBub3QgYmVpbmcgc2V0LgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2JhY2tfZm9yd2Fy
ZF9saXN0X2l0ZW0uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Jh
Y2tfZm9yd2FyZF9saXN0X2l0ZW0uY3BwCmluZGV4IGE4NTg2YjIuLjBlMmUzNzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19iYWNrX2ZvcndhcmRfbGlz
dF9pdGVtLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfYmFj
a19mb3J3YXJkX2xpc3RfaXRlbS5jcHAKQEAgLTM5LDE2ICszOSwxMyBAQCB1c2luZyBuYW1lc3Bh
Y2UgV2ViS2l0Owogc3RydWN0IF9Fd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbSB7CiAgICAgdW5z
aWduZWQgaW50IF9fcmVmOyAvKio8IHRoZSByZWZlcmVuY2UgY291bnQgb2YgdGhlIG9iamVjdCAq
LwogICAgIFdLUmV0YWluUHRyPFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZj4gd2tJdGVtOwotICAg
IFdLRWluYVNoYXJlZFN0cmluZyB1cmk7Ci0gICAgV0tFaW5hU2hhcmVkU3RyaW5nIHRpdGxlOwot
ICAgIFdLRWluYVNoYXJlZFN0cmluZyBvcmlnaW5hbFVyaTsKKyAgICBtdXRhYmxlIFdLRWluYVNo
YXJlZFN0cmluZyB1cmk7CisgICAgbXV0YWJsZSBXS0VpbmFTaGFyZWRTdHJpbmcgdGl0bGU7Cisg
ICAgbXV0YWJsZSBXS0VpbmFTaGFyZWRTdHJpbmcgb3JpZ2luYWxVcmk7CiAKICAgICBfRXdrX0Jh
Y2tfRm9yd2FyZF9MaXN0X0l0ZW0oV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmIGl0ZW1SZWYpCiAg
ICAgICAgIDogX19yZWYoMSkKICAgICAgICAgLCB3a0l0ZW0oaXRlbVJlZikKLSAgICAgICAgLCB1
cmkoQWRvcHRXSywgV0tCYWNrRm9yd2FyZExpc3RJdGVtQ29weVVSTChpdGVtUmVmKSkKLSAgICAg
ICAgLCB0aXRsZShBZG9wdFdLLCBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1Db3B5VGl0bGUoaXRlbVJl
ZikpCi0gICAgICAgICwgb3JpZ2luYWxVcmkoQWRvcHRXSywgV0tCYWNrRm9yd2FyZExpc3RJdGVt
Q29weU9yaWdpbmFsVVJMKGl0ZW1SZWYpKQogICAgIHsgfQogCiAgICAgfl9Fd2tfQmFja19Gb3J3
YXJkX0xpc3RfSXRlbSgpCkBAIC01Nyw2ICs1NCwyMSBAQCBzdHJ1Y3QgX0V3a19CYWNrX0Zvcndh
cmRfTGlzdF9JdGVtIHsKICAgICB9CiB9OwogCisjZGVmaW5lIEVXS19CQUNLX0ZPUldBUkRfTElT
VF9JVEVNX1dLX0dFVF9PUl9SRVRVUk4oaXRlbSwgd2tJdGVtXywgLi4uKSAgICBcCisgICAgaWYg
KCEoaXRlbSkpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCisgICAgICAgIEVJTkFfTE9HX0NSSVQoIml0ZW0gaXMgTlVMTC4iKTsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHJldHVybiBfX1ZBX0FS
R1NfXzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisg
ICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCisgICAgaWYgKCEoaXRlbSktPndrSXRlbSkgeyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIEVJTkFfTE9H
X0NSSVQoIml0ZW0tPndrSXRlbSBpcyBOVUxMLiIpOyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCisgICAgICAgIHJldHVybiBfX1ZBX0FSR1NfXzsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgaWYgKCEo
aXRlbSktPndrSXRlbS5nZXQoKSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCisgICAgICAgIEVJTkFfTE9HX0NSSVQoIml0ZW0tPndrSXRlbS5nZXQoKSBpcyBO
VUxMLiIpOyAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHJldHVybiBfX1ZBX0FSR1Nf
XzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg
fSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCisgICAgV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmIHdrSXRlbV8gPSAo
aXRlbSktPndrSXRlbS5nZXQoKQorCiB2b2lkIGV3a19iYWNrX2ZvcndhcmRfbGlzdF9pdGVtX3Jl
ZihFd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbSogaXRlbSkKIHsKICAgICBFSU5BX1NBRkVUWV9P
Tl9OVUxMX1JFVFVSTihpdGVtKTsKQEAgLTc1LDIzICs4NywyMyBAQCB2b2lkIGV3a19iYWNrX2Zv
cndhcmRfbGlzdF9pdGVtX3VucmVmKEV3a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVtKiBpdGVtKQog
CiBjb25zdCBjaGFyKiBld2tfYmFja19mb3J3YXJkX2xpc3RfaXRlbV91cmlfZ2V0KGNvbnN0IEV3
a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVtKiBpdGVtKQogewotICAgIEVJTkFfU0FGRVRZX09OX05V
TExfUkVUVVJOX1ZBTChpdGVtLCAwKTsKKyAgICBFV0tfQkFDS19GT1JXQVJEX0xJU1RfSVRFTV9X
S19HRVRfT1JfUkVUVVJOKGl0ZW0sIHdrSXRlbSwgMCk7CiAKLSAgICByZXR1cm4gaXRlbS0+dXJp
OworICAgIHJldHVybiBpdGVtLT51cmkgPSBXS0VpbmFTaGFyZWRTdHJpbmcoQWRvcHRXSywgV0tC
YWNrRm9yd2FyZExpc3RJdGVtQ29weVVSTCh3a0l0ZW0pKTsKIH0KIAogY29uc3QgY2hhciogZXdr
X2JhY2tfZm9yd2FyZF9saXN0X2l0ZW1fdGl0bGVfZ2V0KGNvbnN0IEV3a19CYWNrX0ZvcndhcmRf
TGlzdF9JdGVtKiBpdGVtKQogewotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChp
dGVtLCAwKTsKKyAgICBFV0tfQkFDS19GT1JXQVJEX0xJU1RfSVRFTV9XS19HRVRfT1JfUkVUVVJO
KGl0ZW0sIHdrSXRlbSwgMCk7CiAKLSAgICByZXR1cm4gaXRlbS0+dGl0bGU7CisgICAgcmV0dXJu
IGl0ZW0tPnRpdGxlID0gV0tFaW5hU2hhcmVkU3RyaW5nKEFkb3B0V0ssIFdLQmFja0ZvcndhcmRM
aXN0SXRlbUNvcHlUaXRsZShpdGVtLT53a0l0ZW0uZ2V0KCkpKTsKIH0KIAogY29uc3QgY2hhciog
ZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW1fb3JpZ2luYWxfdXJpX2dldChjb25zdCBFd2tfQmFj
a19Gb3J3YXJkX0xpc3RfSXRlbSogaXRlbSkKIHsKLSAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JF
VFVSTl9WQUwoaXRlbSwgMCk7CisgICAgRVdLX0JBQ0tfRk9SV0FSRF9MSVNUX0lURU1fV0tfR0VU
X09SX1JFVFVSTihpdGVtLCB3a0l0ZW0sIDApOwogCi0gICAgcmV0dXJuIGl0ZW0tPm9yaWdpbmFs
VXJpOworICAgIHJldHVybiBpdGVtLT5vcmlnaW5hbFVyaSA9IFdLRWluYVNoYXJlZFN0cmluZyhB
ZG9wdFdLLCBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1Db3B5T3JpZ2luYWxVUkwoaXRlbS0+d2tJdGVt
LmdldCgpKSk7CiB9CiAKIEV3a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVtKiBld2tfYmFja19mb3J3
YXJkX2xpc3RfaXRlbV9uZXcoV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmIGJhY2tGb3J3YXJkTGlz
dEl0ZW1EYXRhKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158897</attachid>
            <date>2012-08-16 14:13:53 -0700</date>
            <delta_ts>2012-08-17 00:01:44 -0700</delta_ts>
            <desc>patch v2</desc>
            <filename>bug94248_v2</filename>
            <type>text/plain</type>
            <size>5218</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IGY5YWFlMTY3ZWQzMGE3NjI0YThjNDlhMmY3YzVlOTcxNjI5YmMyZmYKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
VGh1IEF1ZyAxNiAyMzo0NTo0NiAyMDEyICswMzAwCgogICAgYnVnOTQyNDgKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5k
ZXggYzk2YWI1Zi4uOGRhODU5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTA4
LTE2ICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWtoYWlsLnBvemRueWFrb3ZAaW50ZWwuY29tPgor
CisgICAgICAgIFtFRkxdW1dLMl0gZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW0gcHJvcGVydGll
cyBzaG91bGQgYmUgaW4gc3luYyB3aXRoIFdlYlByb2Nlc3NQcm94eTo6bV9iYWNrRm9yd2FyZExp
c3RJdGVtTWFwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05NDI0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEN1cnJlbnRseSBld2tfYmFja19mb3J3YXJkX2xpc3RfaXRlbSBwcm9wZXJ0aWVzIGFyZSBpbml0
aWFsaXplZCBmcm9tCisgICAgICAgIFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZiBvbmNlIGluIHRo
ZSBjb25zdHJ1Y3RvciBhbmQgdGhlbiBqdXN0IHN0b3JlZC4KKyAgICAgICAgVGhpcyBpcyBlcnJv
bmVvdXMgYXBwcm9hY2ggYXMgYmFjayBmb3J3YXJkIGl0ZW1zIGNhbiBiZSBpbml0aWFsaXplZCB3
aXRoaW4KKyAgICAgICAgc2V2ZXJhbCBpdGVyYXRpb25zLCBtZWFuaW5nIHNldmVyYWwgaXBjIGNh
bGxzIHRvIFVJIHByb2Nlc3MgYW5kIHNldmVyYWwgdXBkYXRlcworICAgICAgICBvZiBXZWJQcm9j
ZXNzUHJveHk6Om1fYmFja0ZvcndhcmRMaXN0SXRlbU1hcCB3aGVyZSB0aGUgaXRlbXMgYXJlIHN0
b3JlZC4KKyAgICAgICAgSGVuY2UgdGhlIHZhbHVlcyBvZiBld2tfYmFja19mb3J3YXJkX2xpc3Rf
aXRlbSBwcm9wZXJ0aWVzIHNob3VsZCBiZSB1cGRhdGVkCisgICAgICAgIHdpdGggdGhlIGNvcnJl
c3BvbmRpbmcgV0tCYWNrRm9yd2FyZExpc3RJdGVtLi4gZnVuY3Rpb25zIGludm9rZXMgZXZlcnkg
dGltZQorICAgICAgICB0aGV5IGFyZSBjYWxsZWQuCisKKyAgICAgICAgKiBQbGF0Zm9ybUVmbC5j
bWFrZToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfYmFja19mb3J3YXJkX2xpc3Rf
aXRlbS5jcHA6CisgICAgICAgIChfRXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW0pOgorICAgICAg
ICAoX0V3a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVtOjpfRXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0
ZW0pOgorICAgICAgICAoZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW1fdXJpX2dldCk6CisgICAg
ICAgIChld2tfYmFja19mb3J3YXJkX2xpc3RfaXRlbV90aXRsZV9nZXQpOgorICAgICAgICAoZXdr
X2JhY2tfZm9yd2FyZF9saXN0X2l0ZW1fb3JpZ2luYWxfdXJpX2dldCk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9lZmwvdGVzdHMvcmVzb3VyY2VzL2RlZmF1bHRfdGVzdF9wYWdlLmh0bWw6CisK
IDIwMTItMDgtMTYgIE1hcmNlbG8gTGlyYSAgPG1hcmNlbG8ubGlyYUBvcGVuYm9zc2Eub3JnPgog
CiAgICAgICAgIFtRdF0gSW5wdXQgbWV0aG9kIGhpbnRzIGFyZSBub3QgYmVpbmcgc2V0LgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2JhY2tfZm9yd2Fy
ZF9saXN0X2l0ZW0uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Jh
Y2tfZm9yd2FyZF9saXN0X2l0ZW0uY3BwCmluZGV4IGE4NTg2YjIuLjkwZjllZTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19iYWNrX2ZvcndhcmRfbGlz
dF9pdGVtLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfYmFj
a19mb3J3YXJkX2xpc3RfaXRlbS5jcHAKQEAgLTM5LDE2ICszOSwxMyBAQCB1c2luZyBuYW1lc3Bh
Y2UgV2ViS2l0Owogc3RydWN0IF9Fd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbSB7CiAgICAgdW5z
aWduZWQgaW50IF9fcmVmOyAvKio8IHRoZSByZWZlcmVuY2UgY291bnQgb2YgdGhlIG9iamVjdCAq
LwogICAgIFdLUmV0YWluUHRyPFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZj4gd2tJdGVtOwotICAg
IFdLRWluYVNoYXJlZFN0cmluZyB1cmk7Ci0gICAgV0tFaW5hU2hhcmVkU3RyaW5nIHRpdGxlOwot
ICAgIFdLRWluYVNoYXJlZFN0cmluZyBvcmlnaW5hbFVyaTsKKyAgICBtdXRhYmxlIFdLRWluYVNo
YXJlZFN0cmluZyB1cmk7CisgICAgbXV0YWJsZSBXS0VpbmFTaGFyZWRTdHJpbmcgdGl0bGU7Cisg
ICAgbXV0YWJsZSBXS0VpbmFTaGFyZWRTdHJpbmcgb3JpZ2luYWxVcmk7CiAKICAgICBfRXdrX0Jh
Y2tfRm9yd2FyZF9MaXN0X0l0ZW0oV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmIGl0ZW1SZWYpCiAg
ICAgICAgIDogX19yZWYoMSkKICAgICAgICAgLCB3a0l0ZW0oaXRlbVJlZikKLSAgICAgICAgLCB1
cmkoQWRvcHRXSywgV0tCYWNrRm9yd2FyZExpc3RJdGVtQ29weVVSTChpdGVtUmVmKSkKLSAgICAg
ICAgLCB0aXRsZShBZG9wdFdLLCBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1Db3B5VGl0bGUoaXRlbVJl
ZikpCi0gICAgICAgICwgb3JpZ2luYWxVcmkoQWRvcHRXSywgV0tCYWNrRm9yd2FyZExpc3RJdGVt
Q29weU9yaWdpbmFsVVJMKGl0ZW1SZWYpKQogICAgIHsgfQogCiAgICAgfl9Fd2tfQmFja19Gb3J3
YXJkX0xpc3RfSXRlbSgpCkBAIC01Nyw2ICs1NCwyMSBAQCBzdHJ1Y3QgX0V3a19CYWNrX0Zvcndh
cmRfTGlzdF9JdGVtIHsKICAgICB9CiB9OwogCisjZGVmaW5lIEVXS19CQUNLX0ZPUldBUkRfTElT
VF9JVEVNX1dLX0dFVF9PUl9SRVRVUk4oaXRlbSwgd2tJdGVtXywgLi4uKSAgICBcCisgICAgaWYg
KCEoaXRlbSkpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCisgICAgICAgIEVJTkFfTE9HX0NSSVQoIml0ZW0gaXMgTlVMTC4iKTsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHJldHVybiBfX1ZBX0FS
R1NfXzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisg
ICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCisgICAgaWYgKCEoaXRlbSktPndrSXRlbSkgeyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIEVJTkFfTE9H
X0NSSVQoIml0ZW0tPndrSXRlbSBpcyBOVUxMLiIpOyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCisgICAgICAgIHJldHVybiBfX1ZBX0FSR1NfXzsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgaWYgKCEo
aXRlbSktPndrSXRlbS5nZXQoKSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCisgICAgICAgIEVJTkFfTE9HX0NSSVQoIml0ZW0tPndrSXRlbS5nZXQoKSBpcyBO
VUxMLiIpOyAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHJldHVybiBfX1ZBX0FSR1Nf
XzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg
fSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCisgICAgV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmIHdrSXRlbV8gPSAo
aXRlbSktPndrSXRlbS5nZXQoKQorCiB2b2lkIGV3a19iYWNrX2ZvcndhcmRfbGlzdF9pdGVtX3Jl
ZihFd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbSogaXRlbSkKIHsKICAgICBFSU5BX1NBRkVUWV9P
Tl9OVUxMX1JFVFVSTihpdGVtKTsKQEAgLTc1LDIxICs4NywyNyBAQCB2b2lkIGV3a19iYWNrX2Zv
cndhcmRfbGlzdF9pdGVtX3VucmVmKEV3a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVtKiBpdGVtKQog
CiBjb25zdCBjaGFyKiBld2tfYmFja19mb3J3YXJkX2xpc3RfaXRlbV91cmlfZ2V0KGNvbnN0IEV3
a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVtKiBpdGVtKQogewotICAgIEVJTkFfU0FGRVRZX09OX05V
TExfUkVUVVJOX1ZBTChpdGVtLCAwKTsKKyAgICBFV0tfQkFDS19GT1JXQVJEX0xJU1RfSVRFTV9X
S19HRVRfT1JfUkVUVVJOKGl0ZW0sIHdrSXRlbSwgMCk7CisKKyAgICBpdGVtLT51cmkgPSBXS0Vp
bmFTaGFyZWRTdHJpbmcoQWRvcHRXSywgV0tCYWNrRm9yd2FyZExpc3RJdGVtQ29weVVSTCh3a0l0
ZW0pKTsKIAogICAgIHJldHVybiBpdGVtLT51cmk7CiB9CiAKIGNvbnN0IGNoYXIqIGV3a19iYWNr
X2ZvcndhcmRfbGlzdF9pdGVtX3RpdGxlX2dldChjb25zdCBFd2tfQmFja19Gb3J3YXJkX0xpc3Rf
SXRlbSogaXRlbSkKIHsKLSAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoaXRlbSwg
MCk7CisgICAgRVdLX0JBQ0tfRk9SV0FSRF9MSVNUX0lURU1fV0tfR0VUX09SX1JFVFVSTihpdGVt
LCB3a0l0ZW0sIDApOworCisgICAgaXRlbS0+dGl0bGUgPSBXS0VpbmFTaGFyZWRTdHJpbmcoQWRv
cHRXSywgV0tCYWNrRm9yd2FyZExpc3RJdGVtQ29weVRpdGxlKHdrSXRlbSkpOwogCiAgICAgcmV0
dXJuIGl0ZW0tPnRpdGxlOwogfQogCiBjb25zdCBjaGFyKiBld2tfYmFja19mb3J3YXJkX2xpc3Rf
aXRlbV9vcmlnaW5hbF91cmlfZ2V0KGNvbnN0IEV3a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVtKiBp
dGVtKQogewotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChpdGVtLCAwKTsKKyAg
ICBFV0tfQkFDS19GT1JXQVJEX0xJU1RfSVRFTV9XS19HRVRfT1JfUkVUVVJOKGl0ZW0sIHdrSXRl
bSwgMCk7CisKKyAgICBpdGVtLT5vcmlnaW5hbFVyaSA9IFdLRWluYVNoYXJlZFN0cmluZyhBZG9w
dFdLLCBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1Db3B5T3JpZ2luYWxVUkwod2tJdGVtKSk7CiAKICAg
ICByZXR1cm4gaXRlbS0+b3JpZ2luYWxVcmk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159014</attachid>
            <date>2012-08-17 00:01:44 -0700</date>
            <delta_ts>2012-08-17 07:02:57 -0700</delta_ts>
            <desc>patch v3</desc>
            <filename>bug94248_v3</filename>
            <type>text/plain</type>
            <size>5116</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IGE0MTg2ODE3NzU1ZDdkZDU3NjA2MDYwZjg0YWM3ZWI4MTIwZTk5OGEKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
VGh1IEF1ZyAxNiAyMzo0NTo0NiAyMDEyICswMzAwCgogICAgYnVnOTQyNDgKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5k
ZXggYzk2YWI1Zi4uNzY1NWIzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEyLTA4
LTE2ICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWtoYWlsLnBvemRueWFrb3ZAaW50ZWwuY29tPgor
CisgICAgICAgIFtFRkxdW1dLMl0gZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW0gcHJvcGVydGll
cyBzaG91bGQgYmUgaW4gc3luYyB3aXRoIFdlYlByb2Nlc3NQcm94eTo6bV9iYWNrRm9yd2FyZExp
c3RJdGVtTWFwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05NDI0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEN1cnJlbnRseSBld2tfYmFja19mb3J3YXJkX2xpc3RfaXRlbSBwcm9wZXJ0aWVzIGFyZSBpbml0
aWFsaXplZCBmcm9tCisgICAgICAgIFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZiBvbmNlIGluIHRo
ZSBjb25zdHJ1Y3RvciBhbmQgdGhlbiBqdXN0IHN0b3JlZC4KKyAgICAgICAgVGhpcyBpcyBlcnJv
bmVvdXMgYXBwcm9hY2ggYXMgYmFjayBmb3J3YXJkIGl0ZW1zIGNhbiBiZSBpbml0aWFsaXplZCB3
aXRoaW4KKyAgICAgICAgc2V2ZXJhbCBpdGVyYXRpb25zLCBtZWFuaW5nIHNldmVyYWwgaXBjIGNh
bGxzIHRvIFVJIHByb2Nlc3MgYW5kIHNldmVyYWwgdXBkYXRlcworICAgICAgICBvZiBXZWJQcm9j
ZXNzUHJveHk6Om1fYmFja0ZvcndhcmRMaXN0SXRlbU1hcCB3aGVyZSB0aGUgaXRlbXMgYXJlIHN0
b3JlZC4KKyAgICAgICAgSGVuY2UgdGhlIHZhbHVlcyBvZiBld2tfYmFja19mb3J3YXJkX2xpc3Rf
aXRlbSBwcm9wZXJ0aWVzIHNob3VsZCBiZSB1cGRhdGVkCisgICAgICAgIHdpdGggdGhlIGNvcnJl
c3BvbmRpbmcgV0tCYWNrRm9yd2FyZExpc3RJdGVtIGZ1bmN0aW9uIGludm9rZXMgZXZlcnkgdGlt
ZQorICAgICAgICB0aGV5IGFyZSBjYWxsZWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfYmFja19mb3J3YXJkX2xpc3RfaXRlbS5jcHA6CisgICAgICAgIChfRXdrX0JhY2tfRm9y
d2FyZF9MaXN0X0l0ZW0pOgorICAgICAgICAoX0V3a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVtOjpf
RXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW0pOgorICAgICAgICAoZXdrX2JhY2tfZm9yd2FyZF9s
aXN0X2l0ZW1fdXJpX2dldCk6CisgICAgICAgIChld2tfYmFja19mb3J3YXJkX2xpc3RfaXRlbV90
aXRsZV9nZXQpOgorICAgICAgICAoZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW1fb3JpZ2luYWxf
dXJpX2dldCk6CisKIDIwMTItMDgtMTYgIE1hcmNlbG8gTGlyYSAgPG1hcmNlbG8ubGlyYUBvcGVu
Ym9zc2Eub3JnPgogCiAgICAgICAgIFtRdF0gSW5wdXQgbWV0aG9kIGhpbnRzIGFyZSBub3QgYmVp
bmcgc2V0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X2JhY2tfZm9yd2FyZF9saXN0X2l0ZW0uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW0uY3BwCmluZGV4IGE4NTg2YjIuLjkwZjll
ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19iYWNr
X2ZvcndhcmRfbGlzdF9pdGVtLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfYmFja19mb3J3YXJkX2xpc3RfaXRlbS5jcHAKQEAgLTM5LDE2ICszOSwxMyBAQCB1
c2luZyBuYW1lc3BhY2UgV2ViS2l0Owogc3RydWN0IF9Fd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRl
bSB7CiAgICAgdW5zaWduZWQgaW50IF9fcmVmOyAvKio8IHRoZSByZWZlcmVuY2UgY291bnQgb2Yg
dGhlIG9iamVjdCAqLwogICAgIFdLUmV0YWluUHRyPFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZj4g
d2tJdGVtOwotICAgIFdLRWluYVNoYXJlZFN0cmluZyB1cmk7Ci0gICAgV0tFaW5hU2hhcmVkU3Ry
aW5nIHRpdGxlOwotICAgIFdLRWluYVNoYXJlZFN0cmluZyBvcmlnaW5hbFVyaTsKKyAgICBtdXRh
YmxlIFdLRWluYVNoYXJlZFN0cmluZyB1cmk7CisgICAgbXV0YWJsZSBXS0VpbmFTaGFyZWRTdHJp
bmcgdGl0bGU7CisgICAgbXV0YWJsZSBXS0VpbmFTaGFyZWRTdHJpbmcgb3JpZ2luYWxVcmk7CiAK
ICAgICBfRXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW0oV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVm
IGl0ZW1SZWYpCiAgICAgICAgIDogX19yZWYoMSkKICAgICAgICAgLCB3a0l0ZW0oaXRlbVJlZikK
LSAgICAgICAgLCB1cmkoQWRvcHRXSywgV0tCYWNrRm9yd2FyZExpc3RJdGVtQ29weVVSTChpdGVt
UmVmKSkKLSAgICAgICAgLCB0aXRsZShBZG9wdFdLLCBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1Db3B5
VGl0bGUoaXRlbVJlZikpCi0gICAgICAgICwgb3JpZ2luYWxVcmkoQWRvcHRXSywgV0tCYWNrRm9y
d2FyZExpc3RJdGVtQ29weU9yaWdpbmFsVVJMKGl0ZW1SZWYpKQogICAgIHsgfQogCiAgICAgfl9F
d2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbSgpCkBAIC01Nyw2ICs1NCwyMSBAQCBzdHJ1Y3QgX0V3
a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVtIHsKICAgICB9CiB9OwogCisjZGVmaW5lIEVXS19CQUNL
X0ZPUldBUkRfTElTVF9JVEVNX1dLX0dFVF9PUl9SRVRVUk4oaXRlbSwgd2tJdGVtXywgLi4uKSAg
ICBcCisgICAgaWYgKCEoaXRlbSkpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIEVJTkFfTE9HX0NSSVQoIml0ZW0gaXMg
TlVMTC4iKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHJl
dHVybiBfX1ZBX0FSR1NfXzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCisgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgaWYgKCEoaXRlbSktPndrSXRlbSkg
eyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg
ICAgIEVJTkFfTE9HX0NSSVQoIml0ZW0tPndrSXRlbSBpcyBOVUxMLiIpOyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCisgICAgICAgIHJldHVybiBfX1ZBX0FSR1NfXzsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
CisgICAgaWYgKCEoaXRlbSktPndrSXRlbS5nZXQoKSkgeyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIEVJTkFfTE9HX0NSSVQoIml0ZW0tPndrSXRl
bS5nZXQoKSBpcyBOVUxMLiIpOyAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHJldHVy
biBfX1ZBX0FSR1NfXzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCisgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVm
IHdrSXRlbV8gPSAoaXRlbSktPndrSXRlbS5nZXQoKQorCiB2b2lkIGV3a19iYWNrX2ZvcndhcmRf
bGlzdF9pdGVtX3JlZihFd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbSogaXRlbSkKIHsKICAgICBF
SU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihpdGVtKTsKQEAgLTc1LDIxICs4NywyNyBAQCB2b2lk
IGV3a19iYWNrX2ZvcndhcmRfbGlzdF9pdGVtX3VucmVmKEV3a19CYWNrX0ZvcndhcmRfTGlzdF9J
dGVtKiBpdGVtKQogCiBjb25zdCBjaGFyKiBld2tfYmFja19mb3J3YXJkX2xpc3RfaXRlbV91cmlf
Z2V0KGNvbnN0IEV3a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVtKiBpdGVtKQogewotICAgIEVJTkFf
U0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChpdGVtLCAwKTsKKyAgICBFV0tfQkFDS19GT1JXQVJE
X0xJU1RfSVRFTV9XS19HRVRfT1JfUkVUVVJOKGl0ZW0sIHdrSXRlbSwgMCk7CisKKyAgICBpdGVt
LT51cmkgPSBXS0VpbmFTaGFyZWRTdHJpbmcoQWRvcHRXSywgV0tCYWNrRm9yd2FyZExpc3RJdGVt
Q29weVVSTCh3a0l0ZW0pKTsKIAogICAgIHJldHVybiBpdGVtLT51cmk7CiB9CiAKIGNvbnN0IGNo
YXIqIGV3a19iYWNrX2ZvcndhcmRfbGlzdF9pdGVtX3RpdGxlX2dldChjb25zdCBFd2tfQmFja19G
b3J3YXJkX0xpc3RfSXRlbSogaXRlbSkKIHsKLSAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVS
Tl9WQUwoaXRlbSwgMCk7CisgICAgRVdLX0JBQ0tfRk9SV0FSRF9MSVNUX0lURU1fV0tfR0VUX09S
X1JFVFVSTihpdGVtLCB3a0l0ZW0sIDApOworCisgICAgaXRlbS0+dGl0bGUgPSBXS0VpbmFTaGFy
ZWRTdHJpbmcoQWRvcHRXSywgV0tCYWNrRm9yd2FyZExpc3RJdGVtQ29weVRpdGxlKHdrSXRlbSkp
OwogCiAgICAgcmV0dXJuIGl0ZW0tPnRpdGxlOwogfQogCiBjb25zdCBjaGFyKiBld2tfYmFja19m
b3J3YXJkX2xpc3RfaXRlbV9vcmlnaW5hbF91cmlfZ2V0KGNvbnN0IEV3a19CYWNrX0ZvcndhcmRf
TGlzdF9JdGVtKiBpdGVtKQogewotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChp
dGVtLCAwKTsKKyAgICBFV0tfQkFDS19GT1JXQVJEX0xJU1RfSVRFTV9XS19HRVRfT1JfUkVUVVJO
KGl0ZW0sIHdrSXRlbSwgMCk7CisKKyAgICBpdGVtLT5vcmlnaW5hbFVyaSA9IFdLRWluYVNoYXJl
ZFN0cmluZyhBZG9wdFdLLCBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1Db3B5T3JpZ2luYWxVUkwod2tJ
dGVtKSk7CiAKICAgICByZXR1cm4gaXRlbS0+b3JpZ2luYWxVcmk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159113</attachid>
            <date>2012-08-17 06:55:43 -0700</date>
            <delta_ts>2012-08-17 06:56:17 -0700</delta_ts>
            <desc>patch v4</desc>
            <filename>bug94248_v4</filename>
            <type>text/plain</type>
            <size>5175</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IGRjOGU0MjVmMjE1N2ZkZmZmYmMyMTc2YTI4MGI1MWNkMGRkZWI1ZDUKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
VGh1IEF1ZyAxNiAyMzo0NTo0NiAyMDEyICswMzAwCgogICAgYnVnOTQyNDgKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5k
ZXggOTMyYWNlNi4uODUzMWIwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEyLTA4
LTE2ICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWtoYWlsLnBvemRueWFrb3ZAaW50ZWwuY29tPgor
CisgICAgICAgIFtFRkxdW1dLMl0gZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW0gcHJvcGVydGll
cyBzaG91bGQgYmUgaW4gc3luYyB3aXRoIFdlYlByb2Nlc3NQcm94eTo6bV9iYWNrRm9yd2FyZExp
c3RJdGVtTWFwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05NDI0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEN1cnJlbnRseSBld2tfYmFja19mb3J3YXJkX2xpc3RfaXRlbSBwcm9wZXJ0aWVzIGFyZSBpbml0
aWFsaXplZCBmcm9tCisgICAgICAgIFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZiBvbmNlIGluIHRo
ZSBjb25zdHJ1Y3RvciBhbmQgdGhlbiBqdXN0IHN0b3JlZC4KKyAgICAgICAgVGhpcyBpcyBlcnJv
bmVvdXMgYXBwcm9hY2ggYXMgYmFjayBmb3J3YXJkIGl0ZW1zIGNhbiBiZSBpbml0aWFsaXplZCB3
aXRoaW4KKyAgICAgICAgc2V2ZXJhbCBpdGVyYXRpb25zLCBtZWFuaW5nIHNldmVyYWwgaXBjIGNh
bGxzIHRvIFVJIHByb2Nlc3MgYW5kIHNldmVyYWwgdXBkYXRlcworICAgICAgICBvZiBXZWJQcm9j
ZXNzUHJveHk6Om1fYmFja0ZvcndhcmRMaXN0SXRlbU1hcCB3aGVyZSB0aGUgaXRlbXMgYXJlIHN0
b3JlZC4KKyAgICAgICAgSGVuY2UgdGhlIHZhbHVlcyBvZiBld2tfYmFja19mb3J3YXJkX2xpc3Rf
aXRlbSBwcm9wZXJ0aWVzIHNob3VsZCBiZSB1cGRhdGVkCisgICAgICAgIHdpdGggdGhlIGNvcnJl
c3BvbmRpbmcgV0tCYWNrRm9yd2FyZExpc3RJdGVtIGZ1bmN0aW9uIGludm9rZXMgZXZlcnkgdGlt
ZQorICAgICAgICB0aGV5IGFyZSBjYWxsZWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfYmFja19mb3J3YXJkX2xpc3RfaXRlbS5jcHA6CisgICAgICAgIChfRXdrX0JhY2tfRm9y
d2FyZF9MaXN0X0l0ZW0pOgorICAgICAgICAoX0V3a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVtOjpf
RXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW0pOgorICAgICAgICAoZXdrX2JhY2tfZm9yd2FyZF9s
aXN0X2l0ZW1fdXJpX2dldCk6CisgICAgICAgIChld2tfYmFja19mb3J3YXJkX2xpc3RfaXRlbV90
aXRsZV9nZXQpOgorICAgICAgICAoZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW1fb3JpZ2luYWxf
dXJpX2dldCk6CisKIDIwMTItMDgtMTcgIE1pa2hhaWwgUG96ZG55YWtvdiAgPG1pa2hhaWwucG96
ZG55YWtvdkBpbnRlbC5jb20+CiAKICAgICAgICAgW0VGTF1bV0syXSBHZXR0aW5nIHVubmVjZXNz
YXJ5ICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwgd2FybmluZ3Mgd2hpbGUgcGFnZSBu
YXZpZ2F0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfYmFja19mb3J3YXJkX2xpc3RfaXRlbS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfYmFja19mb3J3YXJkX2xpc3RfaXRlbS5jcHAKaW5kZXggYTg1ODZiMi4uOTBm
OWVlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Jh
Y2tfZm9yd2FyZF9saXN0X2l0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a19iYWNrX2ZvcndhcmRfbGlzdF9pdGVtLmNwcApAQCAtMzksMTYgKzM5LDEzIEBA
IHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiBzdHJ1Y3QgX0V3a19CYWNrX0ZvcndhcmRfTGlzdF9J
dGVtIHsKICAgICB1bnNpZ25lZCBpbnQgX19yZWY7IC8qKjwgdGhlIHJlZmVyZW5jZSBjb3VudCBv
ZiB0aGUgb2JqZWN0ICovCiAgICAgV0tSZXRhaW5QdHI8V0tCYWNrRm9yd2FyZExpc3RJdGVtUmVm
PiB3a0l0ZW07Ci0gICAgV0tFaW5hU2hhcmVkU3RyaW5nIHVyaTsKLSAgICBXS0VpbmFTaGFyZWRT
dHJpbmcgdGl0bGU7Ci0gICAgV0tFaW5hU2hhcmVkU3RyaW5nIG9yaWdpbmFsVXJpOworICAgIG11
dGFibGUgV0tFaW5hU2hhcmVkU3RyaW5nIHVyaTsKKyAgICBtdXRhYmxlIFdLRWluYVNoYXJlZFN0
cmluZyB0aXRsZTsKKyAgICBtdXRhYmxlIFdLRWluYVNoYXJlZFN0cmluZyBvcmlnaW5hbFVyaTsK
IAogICAgIF9Fd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbShXS0JhY2tGb3J3YXJkTGlzdEl0ZW1S
ZWYgaXRlbVJlZikKICAgICAgICAgOiBfX3JlZigxKQogICAgICAgICAsIHdrSXRlbShpdGVtUmVm
KQotICAgICAgICAsIHVyaShBZG9wdFdLLCBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1Db3B5VVJMKGl0
ZW1SZWYpKQotICAgICAgICAsIHRpdGxlKEFkb3B0V0ssIFdLQmFja0ZvcndhcmRMaXN0SXRlbUNv
cHlUaXRsZShpdGVtUmVmKSkKLSAgICAgICAgLCBvcmlnaW5hbFVyaShBZG9wdFdLLCBXS0JhY2tG
b3J3YXJkTGlzdEl0ZW1Db3B5T3JpZ2luYWxVUkwoaXRlbVJlZikpCiAgICAgeyB9CiAKICAgICB+
X0V3a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVtKCkKQEAgLTU3LDYgKzU0LDIxIEBAIHN0cnVjdCBf
RXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW0gewogICAgIH0KIH07CiAKKyNkZWZpbmUgRVdLX0JB
Q0tfRk9SV0FSRF9MSVNUX0lURU1fV0tfR0VUX09SX1JFVFVSTihpdGVtLCB3a0l0ZW1fLCAuLi4p
ICAgIFwKKyAgICBpZiAoIShpdGVtKSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgRUlOQV9MT0dfQ1JJVCgiaXRlbSBp
cyBOVUxMLiIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAg
cmV0dXJuIF9fVkFfQVJHU19fOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBpZiAoIShpdGVtKS0+d2tJdGVt
KSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg
ICAgICAgRUlOQV9MT0dfQ1JJVCgiaXRlbS0+d2tJdGVtIGlzIE5VTEwuIik7ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKKyAgICAgICAgcmV0dXJuIF9fVkFfQVJHU19fOyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKKyAgICBpZiAoIShpdGVtKS0+d2tJdGVtLmdldCgpKSB7ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgRUlOQV9MT0dfQ1JJVCgiaXRlbS0+d2tJ
dGVtLmdldCgpIGlzIE5VTEwuIik7ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgcmV0
dXJuIF9fVkFfQVJHU19fOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1S
ZWYgd2tJdGVtXyA9IChpdGVtKS0+d2tJdGVtLmdldCgpCisKIHZvaWQgZXdrX2JhY2tfZm9yd2Fy
ZF9saXN0X2l0ZW1fcmVmKEV3a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVtKiBpdGVtKQogewogICAg
IEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKGl0ZW0pOwpAQCAtNzUsMjEgKzg3LDI3IEBAIHZv
aWQgZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW1fdW5yZWYoRXdrX0JhY2tfRm9yd2FyZF9MaXN0
X0l0ZW0qIGl0ZW0pCiAKIGNvbnN0IGNoYXIqIGV3a19iYWNrX2ZvcndhcmRfbGlzdF9pdGVtX3Vy
aV9nZXQoY29uc3QgRXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW0qIGl0ZW0pCiB7Ci0gICAgRUlO
QV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKGl0ZW0sIDApOworICAgIEVXS19CQUNLX0ZPUldB
UkRfTElTVF9JVEVNX1dLX0dFVF9PUl9SRVRVUk4oaXRlbSwgd2tJdGVtLCAwKTsKKworICAgIGl0
ZW0tPnVyaSA9IFdLRWluYVNoYXJlZFN0cmluZyhBZG9wdFdLLCBXS0JhY2tGb3J3YXJkTGlzdEl0
ZW1Db3B5VVJMKHdrSXRlbSkpOwogCiAgICAgcmV0dXJuIGl0ZW0tPnVyaTsKIH0KIAogY29uc3Qg
Y2hhciogZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW1fdGl0bGVfZ2V0KGNvbnN0IEV3a19CYWNr
X0ZvcndhcmRfTGlzdF9JdGVtKiBpdGVtKQogewotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVU
VVJOX1ZBTChpdGVtLCAwKTsKKyAgICBFV0tfQkFDS19GT1JXQVJEX0xJU1RfSVRFTV9XS19HRVRf
T1JfUkVUVVJOKGl0ZW0sIHdrSXRlbSwgMCk7CisKKyAgICBpdGVtLT50aXRsZSA9IFdLRWluYVNo
YXJlZFN0cmluZyhBZG9wdFdLLCBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1Db3B5VGl0bGUod2tJdGVt
KSk7CiAKICAgICByZXR1cm4gaXRlbS0+dGl0bGU7CiB9CiAKIGNvbnN0IGNoYXIqIGV3a19iYWNr
X2ZvcndhcmRfbGlzdF9pdGVtX29yaWdpbmFsX3VyaV9nZXQoY29uc3QgRXdrX0JhY2tfRm9yd2Fy
ZF9MaXN0X0l0ZW0qIGl0ZW0pCiB7Ci0gICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFM
KGl0ZW0sIDApOworICAgIEVXS19CQUNLX0ZPUldBUkRfTElTVF9JVEVNX1dLX0dFVF9PUl9SRVRV
Uk4oaXRlbSwgd2tJdGVtLCAwKTsKKworICAgIGl0ZW0tPm9yaWdpbmFsVXJpID0gV0tFaW5hU2hh
cmVkU3RyaW5nKEFkb3B0V0ssIFdLQmFja0ZvcndhcmRMaXN0SXRlbUNvcHlPcmlnaW5hbFVSTCh3
a0l0ZW0pKTsKIAogICAgIHJldHVybiBpdGVtLT5vcmlnaW5hbFVyaTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159117</attachid>
            <date>2012-08-17 07:00:59 -0700</date>
            <delta_ts>2012-08-18 14:47:22 -0700</delta_ts>
            <desc>patch v4</desc>
            <filename>bug94248_v4</filename>
            <type>text/plain</type>
            <size>4929</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IDg0Yzc4NmM1YjFmYjg2ODk2NTRhOTE3NmNjOTkzYmEzZGFmYjZjZGIKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
VGh1IEF1ZyAxNiAyMzo0NTo0NiAyMDEyICswMzAwCgogICAgYnVnOTQyNDgKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5k
ZXggOTMyYWNlNi4uODBhY2EyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEyLTA4
LTE2ICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWtoYWlsLnBvemRueWFrb3ZAaW50ZWwuY29tPgor
CisgICAgICAgIFtFRkxdW1dLMl0gZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW0gcHJvcGVydGll
cyBzaG91bGQgYmUgaW4gc3luYyB3aXRoIFdlYlByb2Nlc3NQcm94eTo6bV9iYWNrRm9yd2FyZExp
c3RJdGVtTWFwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05NDI0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEN1cnJlbnRseSBld2tfYmFja19mb3J3YXJkX2xpc3RfaXRlbSBwcm9wZXJ0aWVzIGFyZSBpbml0
aWFsaXplZCBmcm9tCisgICAgICAgIFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZiBvbmNlIGluIHRo
ZSBjb25zdHJ1Y3RvciBhbmQgdGhlbiBqdXN0IHN0b3JlZC4KKyAgICAgICAgVGhpcyBpcyBlcnJv
bmVvdXMgYXBwcm9hY2ggYXMgYmFjayBmb3J3YXJkIGl0ZW1zIGNhbiBiZSBpbml0aWFsaXplZCB3
aXRoaW4KKyAgICAgICAgc2V2ZXJhbCBpdGVyYXRpb25zLCBtZWFuaW5nIHNldmVyYWwgaXBjIGNh
bGxzIHRvIFVJIHByb2Nlc3MgYW5kIHNldmVyYWwgdXBkYXRlcworICAgICAgICBvZiBXZWJQcm9j
ZXNzUHJveHk6Om1fYmFja0ZvcndhcmRMaXN0SXRlbU1hcCB3aGVyZSB0aGUgaXRlbXMgYXJlIHN0
b3JlZC4KKyAgICAgICAgSGVuY2UgdGhlIHZhbHVlcyBvZiBld2tfYmFja19mb3J3YXJkX2xpc3Rf
aXRlbSBwcm9wZXJ0aWVzIHNob3VsZCBiZSB1cGRhdGVkCisgICAgICAgIHdpdGggdGhlIGNvcnJl
c3BvbmRpbmcgV0tCYWNrRm9yd2FyZExpc3RJdGVtIGZ1bmN0aW9uIGludm9rZXMgZXZlcnkgdGlt
ZQorICAgICAgICB0aGV5IGFyZSBjYWxsZWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfYmFja19mb3J3YXJkX2xpc3RfaXRlbS5jcHA6CisgICAgICAgIChfRXdrX0JhY2tfRm9y
d2FyZF9MaXN0X0l0ZW0pOiBEYXRhIG1lbWJlcnMgaGF2ZSB0byBiZSBtdXRhYmxlIGFzIGFzc2ln
bmVkIGJlaW5nIGNvbnN0IHBvaW50ZXJzLgorICAgICAgICAoX0V3a19CYWNrX0ZvcndhcmRfTGlz
dF9JdGVtOjpfRXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW0pOgorICAgICAgICAoZXdrX2JhY2tf
Zm9yd2FyZF9saXN0X2l0ZW1fdXJpX2dldCk6CisgICAgICAgIChld2tfYmFja19mb3J3YXJkX2xp
c3RfaXRlbV90aXRsZV9nZXQpOgorICAgICAgICAoZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW1f
b3JpZ2luYWxfdXJpX2dldCk6CisKIDIwMTItMDgtMTcgIE1pa2hhaWwgUG96ZG55YWtvdiAgPG1p
a2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CiAKICAgICAgICAgW0VGTF1bV0syXSBHZXR0aW5n
IHVubmVjZXNzYXJ5ICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwgd2FybmluZ3Mgd2hp
bGUgcGFnZSBuYXZpZ2F0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfYmFja19mb3J3YXJkX2xpc3RfaXRlbS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfYmFja19mb3J3YXJkX2xpc3RfaXRlbS5jcHAKaW5kZXggYTg1
ODZiMi4uODcxMTg3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a19iYWNrX2ZvcndhcmRfbGlzdF9pdGVtLmNwcApAQCAtMzksMTYg
KzM5LDEzIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiBzdHJ1Y3QgX0V3a19CYWNrX0Zvcndh
cmRfTGlzdF9JdGVtIHsKICAgICB1bnNpZ25lZCBpbnQgX19yZWY7IC8qKjwgdGhlIHJlZmVyZW5j
ZSBjb3VudCBvZiB0aGUgb2JqZWN0ICovCiAgICAgV0tSZXRhaW5QdHI8V0tCYWNrRm9yd2FyZExp
c3RJdGVtUmVmPiB3a0l0ZW07Ci0gICAgV0tFaW5hU2hhcmVkU3RyaW5nIHVyaTsKLSAgICBXS0Vp
bmFTaGFyZWRTdHJpbmcgdGl0bGU7Ci0gICAgV0tFaW5hU2hhcmVkU3RyaW5nIG9yaWdpbmFsVXJp
OworICAgIG11dGFibGUgV0tFaW5hU2hhcmVkU3RyaW5nIHVyaTsKKyAgICBtdXRhYmxlIFdLRWlu
YVNoYXJlZFN0cmluZyB0aXRsZTsKKyAgICBtdXRhYmxlIFdLRWluYVNoYXJlZFN0cmluZyBvcmln
aW5hbFVyaTsKIAogICAgIF9Fd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbShXS0JhY2tGb3J3YXJk
TGlzdEl0ZW1SZWYgaXRlbVJlZikKICAgICAgICAgOiBfX3JlZigxKQogICAgICAgICAsIHdrSXRl
bShpdGVtUmVmKQotICAgICAgICAsIHVyaShBZG9wdFdLLCBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1D
b3B5VVJMKGl0ZW1SZWYpKQotICAgICAgICAsIHRpdGxlKEFkb3B0V0ssIFdLQmFja0ZvcndhcmRM
aXN0SXRlbUNvcHlUaXRsZShpdGVtUmVmKSkKLSAgICAgICAgLCBvcmlnaW5hbFVyaShBZG9wdFdL
LCBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1Db3B5T3JpZ2luYWxVUkwoaXRlbVJlZikpCiAgICAgeyB9
CiAKICAgICB+X0V3a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVtKCkKQEAgLTU3LDYgKzU0LDE3IEBA
IHN0cnVjdCBfRXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW0gewogICAgIH0KIH07CiAKKyNkZWZp
bmUgRVdLX0JBQ0tfRk9SV0FSRF9MSVNUX0lURU1fV0tfR0VUX09SX1JFVFVSTihpdGVtLCB3a0l0
ZW1fLCAuLi4pICAgIFwKKyAgICBpZiAoIShpdGVtKSkgeyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgRUlOQV9MT0dfQ1JJ
VCgiaXRlbSBpcyBOVUxMLiIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
KyAgICAgICAgcmV0dXJuIF9fVkFfQVJHU19fOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBpZiAoIShpdGVt
KS0+d2tJdGVtKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKKyAgICAgICAgRUlOQV9MT0dfQ1JJVCgiaXRlbS0+d2tJdGVtIGlzIE5VTEwuIik7ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgcmV0dXJuIF9fVkFfQVJHU19fOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKKyAgICBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWYgd2tJdGVtXyA9IChpdGVt
KS0+d2tJdGVtLmdldCgpCisKIHZvaWQgZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW1fcmVmKEV3
a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVtKiBpdGVtKQogewogICAgIEVJTkFfU0FGRVRZX09OX05V
TExfUkVUVVJOKGl0ZW0pOwpAQCAtNzUsMjEgKzgzLDI3IEBAIHZvaWQgZXdrX2JhY2tfZm9yd2Fy
ZF9saXN0X2l0ZW1fdW5yZWYoRXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW0qIGl0ZW0pCiAKIGNv
bnN0IGNoYXIqIGV3a19iYWNrX2ZvcndhcmRfbGlzdF9pdGVtX3VyaV9nZXQoY29uc3QgRXdrX0Jh
Y2tfRm9yd2FyZF9MaXN0X0l0ZW0qIGl0ZW0pCiB7Ci0gICAgRUlOQV9TQUZFVFlfT05fTlVMTF9S
RVRVUk5fVkFMKGl0ZW0sIDApOworICAgIEVXS19CQUNLX0ZPUldBUkRfTElTVF9JVEVNX1dLX0dF
VF9PUl9SRVRVUk4oaXRlbSwgd2tJdGVtLCAwKTsKKworICAgIGl0ZW0tPnVyaSA9IFdLRWluYVNo
YXJlZFN0cmluZyhBZG9wdFdLLCBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1Db3B5VVJMKHdrSXRlbSkp
OwogCiAgICAgcmV0dXJuIGl0ZW0tPnVyaTsKIH0KIAogY29uc3QgY2hhciogZXdrX2JhY2tfZm9y
d2FyZF9saXN0X2l0ZW1fdGl0bGVfZ2V0KGNvbnN0IEV3a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVt
KiBpdGVtKQogewotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChpdGVtLCAwKTsK
KyAgICBFV0tfQkFDS19GT1JXQVJEX0xJU1RfSVRFTV9XS19HRVRfT1JfUkVUVVJOKGl0ZW0sIHdr
SXRlbSwgMCk7CisKKyAgICBpdGVtLT50aXRsZSA9IFdLRWluYVNoYXJlZFN0cmluZyhBZG9wdFdL
LCBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1Db3B5VGl0bGUod2tJdGVtKSk7CiAKICAgICByZXR1cm4g
aXRlbS0+dGl0bGU7CiB9CiAKIGNvbnN0IGNoYXIqIGV3a19iYWNrX2ZvcndhcmRfbGlzdF9pdGVt
X29yaWdpbmFsX3VyaV9nZXQoY29uc3QgRXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW0qIGl0ZW0p
CiB7Ci0gICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKGl0ZW0sIDApOworICAgIEVX
S19CQUNLX0ZPUldBUkRfTElTVF9JVEVNX1dLX0dFVF9PUl9SRVRVUk4oaXRlbSwgd2tJdGVtLCAw
KTsKKworICAgIGl0ZW0tPm9yaWdpbmFsVXJpID0gV0tFaW5hU2hhcmVkU3RyaW5nKEFkb3B0V0ss
IFdLQmFja0ZvcndhcmRMaXN0SXRlbUNvcHlPcmlnaW5hbFVSTCh3a0l0ZW0pKTsKIAogICAgIHJl
dHVybiBpdGVtLT5vcmlnaW5hbFVyaTsKIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>