<?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>88283</bug_id>
          
          <creation_ts>2012-06-04 20:30:53 -0700</creation_ts>
          <short_desc>JSC:need to implement Dictionary::getWithUndefinedOrNullCheck for IDB</short_desc>
          <delta_ts>2012-06-05 05:28:27 -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>WebCore JavaScript</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>45110</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Charles Wei">charles.wei</reporter>
          <assigned_to name="Charles Wei">charles.wei</assigned_to>
          <cc>ggaren</cc>
    
    <cc>haraken</cc>
    
    <cc>jonlee</cc>
    
    <cc>jrogers</cc>
    
    <cc>oliver</cc>
    
    <cc>PeterHWang</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>sam</cc>
    
    <cc>staikos</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>641143</commentid>
    <comment_count>0</comment_count>
    <who name="Charles Wei">charles.wei</who>
    <bug_when>2012-06-04 20:30:53 -0700</bug_when>
    <thetext>We need to implement the JSC version of Dictionary::getWithUndefinedOrNullCheck for IndexedDB, which is referenced in : Modules/indexeddb/IDBDatabase.cpp, to get the KeyPath.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641146</commentid>
    <comment_count>1</comment_count>
      <attachid>145684</attachid>
    <who name="Charles Wei">charles.wei</who>
    <bug_when>2012-06-04 20:36:00 -0700</bug_when>
    <thetext>Created attachment 145684
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641150</commentid>
    <comment_count>2</comment_count>
      <attachid>145684</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-06-04 20:43:53 -0700</bug_when>
    <thetext>Comment on attachment 145684
Patch

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

&gt; Source/WebCore/bindings/js/Dictionary.cpp:82
&gt; +bool Dictionary::getWithUndefinedOrNullCheck(const String&amp; propertyName, String&amp; value) const

This method should behave the same as get() except that getWithUndefinedOrNullCheck() returns false if value is undefined or null. Please refer to bindings/v8/Dictionary.{h,cpp}.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641269</commentid>
    <comment_count>3</comment_count>
      <attachid>145718</attachid>
    <who name="Charles Wei">charles.wei</who>
    <bug_when>2012-06-05 01:10:30 -0700</bug_when>
    <thetext>Created attachment 145718
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641290</commentid>
    <comment_count>4</comment_count>
      <attachid>145718</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-06-05 01:23:38 -0700</bug_when>
    <thetext>Comment on attachment 145718
Patch

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        No new tests, this patch is to make idb work for JSC. All the existing
&gt; +        test cases for idb should apply.

What are the existing test cases? IDB is already enabled on JSC?

&gt; Source/WebCore/bindings/js/Dictionary.cpp:91
&gt; +    JSObject* object = m_dictionary.initializerObject();
&gt; +    ExecState* exec = m_dictionary.execState();
&gt; +    Identifier identifier(exec, propertyName.impl());
&gt; +    JSValue jsValue = object-&gt;get(exec, identifier);
&gt;  

More reasonable approach would be

(1) Dictionary::getWithUndefinedOrNullCheck() just calls JSDictionary::getWithUndefinedOrNullCheck(), which you need to newly implement as follows.
(2) JSDictionary::getWithUndefinedOrNullCheck() calls JSDictionary::tryGetPropertyAndResult(..., true), where the last argument indicates to check undefined or null.
(3) Modify JSDictionary::tryGetPropertyAndResult(..., bool) to support the last bool argument. If it is true, check undefined or null.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641400</commentid>
    <comment_count>5</comment_count>
      <attachid>145754</attachid>
    <who name="Charles Wei">charles.wei</who>
    <bug_when>2012-06-05 04:17:05 -0700</bug_when>
    <thetext>Created attachment 145754
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641402</commentid>
    <comment_count>6</comment_count>
    <who name="Charles Wei">charles.wei</who>
    <bug_when>2012-06-05 04:22:41 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 145718 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=145718&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:9
&gt; &gt; +        No new tests, this patch is to make idb work for JSC. All the existing
&gt; &gt; +        test cases for idb should apply.
&gt; 
&gt; What are the existing test cases? IDB is already enabled on JSC?
&gt; 
&gt; &gt; Source/WebCore/bindings/js/Dictionary.cpp:91
&gt; &gt; +    JSObject* object = m_dictionary.initializerObject();
&gt; &gt; +    ExecState* exec = m_dictionary.execState();
&gt; &gt; +    Identifier identifier(exec, propertyName.impl());
&gt; &gt; +    JSValue jsValue = object-&gt;get(exec, identifier);
&gt; &gt;  
&gt; 
&gt; More reasonable approach would be
&gt; 
&gt; (1) Dictionary::getWithUndefinedOrNullCheck() just calls JSDictionary::getWithUndefinedOrNullCheck(), which you need to newly implement as follows.
&gt; (2) JSDictionary::getWithUndefinedOrNullCheck() calls JSDictionary::tryGetPropertyAndResult(..., true), where the last argument indicates to check undefined or null.
&gt; (3) Modify JSDictionary::tryGetPropertyAndResult(..., bool) to support the last bool argument. If it is true, check undefined or null.

Thanks for the review, Kentaro.  I just submitted a patch which is simpler and not changing any existing code of JSDictionary except the new added getWithUndefinedOrNullCheck().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641409</commentid>
    <comment_count>7</comment_count>
      <attachid>145754</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-06-05 04:30:25 -0700</bug_when>
    <thetext>Comment on attachment 145754
Patch

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

The patch looks OK.

&gt; Source/WebCore/ChangeLog:8
&gt; +        No new tests, idb not working for JSC yet.

Did you manually confirm that getWithUndefinedOrNullCheck() works as expected? (You do not need to add a test, but might want to somehow confirm that it works.)

&gt; Source/WebCore/bindings/js/Dictionary.h:64
&gt; +    bool getWithUndefinedOrNullCheck(const String&amp;, String&amp;) const;

Nit: getWithUndefinedOrNullCheck(const String&amp; propertyName, String&amp; value) would be better to distinguish variables. WebKit omits an argument name only if it is obvious.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641419</commentid>
    <comment_count>8</comment_count>
      <attachid>145754</attachid>
    <who name="Charles Wei">charles.wei</who>
    <bug_when>2012-06-05 04:36:17 -0700</bug_when>
    <thetext>Comment on attachment 145754
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:8
&gt;&gt; +        No new tests, idb not working for JSC yet.
&gt; 
&gt; Did you manually confirm that getWithUndefinedOrNullCheck() works as expected? (You do not need to add a test, but might want to somehow confirm that it works.)

Yes, of course.  I manually tested with correct value, null, undefined, no property, etc. All work as expected.

&gt;&gt; Source/WebCore/bindings/js/Dictionary.h:64
&gt;&gt; +    bool getWithUndefinedOrNullCheck(const String&amp;, String&amp;) const;
&gt; 
&gt; Nit: getWithUndefinedOrNullCheck(const String&amp; propertyName, String&amp; value) would be better to distinguish variables. WebKit omits an argument name only if it is obvious.

Ok, I can add that to make it clear.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641422</commentid>
    <comment_count>9</comment_count>
      <attachid>145755</attachid>
    <who name="Charles Wei">charles.wei</who>
    <bug_when>2012-06-05 04:40:05 -0700</bug_when>
    <thetext>Created attachment 145755
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641424</commentid>
    <comment_count>10</comment_count>
      <attachid>145755</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-06-05 04:40:28 -0700</bug_when>
    <thetext>Comment on attachment 145755
Patch

Looks OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641427</commentid>
    <comment_count>11</comment_count>
      <attachid>145755</attachid>
    <who name="Charles Wei">charles.wei</who>
    <bug_when>2012-06-05 04:42:56 -0700</bug_when>
    <thetext>Comment on attachment 145755
Patch

Thanks for the review, Kentaro.Now send it to commit queue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641451</commentid>
    <comment_count>12</comment_count>
      <attachid>145755</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-05 05:28:05 -0700</bug_when>
    <thetext>Comment on attachment 145755
Patch

Clearing flags on attachment: 145755

Committed r119484: &lt;http://trac.webkit.org/changeset/119484&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641453</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-05 05:28:27 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145684</attachid>
            <date>2012-06-04 20:36:00 -0700</date>
            <delta_ts>2012-06-05 01:10:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88283-20120605114522.patch</filename>
            <type>text/plain</type>
            <size>2344</size>
            <attacher name="Charles Wei">charles.wei</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5NDQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDc3MjUxNWE0ZjRlYWFk
NDZhOTQ2NjFkOGNhNTI3N2EwZDlhMmNiNS4uYTljZGMyOWRkODQzNDI1YzY5Yzc2OGFjZGVkZWFl
OWRmOWYwNjVjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTA2LTA0ICBDaGFy
bGVzIFdlaSAgPGNoYXJsZXMud2VpQHRvcmNobW9iaWxlLmNvbS5jbj4KKworICAgICAgICBKU0M6
bmVlZCB0byBpbXBsZW1lbnQgRGljdGlvbmFyeTo6Z2V0V2l0aFVuZGVmaW5lZE9yTnVsbENoZWNr
IGZvciBJREIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg4MjgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzLCBhbGwgdGhlIGlkYiB0ZXN0IGNhc2VzIGFwcGx5LgorCisgICAgICAgICog
YmluZGluZ3MvanMvRGljdGlvbmFyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaWN0aW9uYXJ5
OjpnZXRXaXRoVW5kZWZpbmVkT3JOdWxsQ2hlY2spOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0Rp
Y3Rpb25hcnkuaDoKKyAgICAgICAgKERpY3Rpb25hcnkpOgorCiAyMDEyLTA2LTA0ICBEYW5hIEph
bnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gUmVtb3Zl
IHJlZHVuZGFudCBzZXROZWVkc0NvbW1pdCB3aGVuIHByZXBhcmVUb0RyYXcgZmFpbHMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0RpY3Rpb25hcnkuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvRGljdGlvbmFyeS5jcHAKaW5kZXggODFiMzQ1ZDQ4ZGVhYjEz
N2Y4ZjE2NzU2ODlhNTI2NWJjY2Q2ZmE1NC4uYzA2ZjZkZmM2MzE4YTMwN2JhYjE1MGNkZGFmYWFh
NTE1YzY5OGM5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvRGljdGlv
bmFyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvRGljdGlvbmFyeS5jcHAK
QEAgLTc5LDUgKzc5LDE3IEBAIGJvb2wgRGljdGlvbmFyeTo6Z2V0T3duUHJvcGVydGllc0FzU3Ry
aW5nSGFzaE1hcChXVEY6Okhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+JiBtCiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKK2Jvb2wgRGljdGlvbmFyeTo6Z2V0V2l0aFVuZGVmaW5lZE9yTnVsbENoZWNrKGNv
bnN0IFN0cmluZyYgcHJvcGVydHlOYW1lLCBTdHJpbmcmIHZhbHVlKSBjb25zdAoreworICAgIFdU
Rjo6SGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gbWFwOworICAgIGlmICghZ2V0T3duUHJvcGVydGll
c0FzU3RyaW5nSGFzaE1hcChtYXApKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAo
bWFwLmNvbnRhaW5zKHByb3BlcnR5TmFtZSkpIHsKKyAgICAgICAgdmFsdWUgPSBtYXAuZ2V0KHBy
b3BlcnR5TmFtZSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFs
c2U7Cit9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9EaWN0
aW9uYXJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9EaWN0aW9uYXJ5LmgKaW5kZXgg
Y2NjZWVlNzA2ODEwN2IyMGU5OTU5YmRhOGQ1NWUxMTBiM2I3MDk3ZC4uMTRiODZhMDdhZDc4NGRm
ZjQ1NjNiZDRmZTg1N2EyMTAyODgxMTcyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvRGljdGlvbmFyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0Rp
Y3Rpb25hcnkuaApAQCAtNjEsNyArNjEsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc09iamVjdCgp
IGNvbnN0IHsgcmV0dXJuIG1fZGljdGlvbmFyeS5pc1ZhbGlkKCk7IH0KICAgICBib29sIGlzVW5k
ZWZpbmVkT3JOdWxsKCkgY29uc3QgeyByZXR1cm4gIW1fZGljdGlvbmFyeS5pc1ZhbGlkKCk7IH0K
ICAgICBib29sIGdldE93blByb3BlcnRpZXNBc1N0cmluZ0hhc2hNYXAoV1RGOjpIYXNoTWFwPFN0
cmluZywgU3RyaW5nPiYpIGNvbnN0OwotICAgIGJvb2wgZ2V0V2l0aFVuZGVmaW5lZE9yTnVsbENo
ZWNrKGNvbnN0IFN0cmluZyYsIFN0cmluZyYpIGNvbnN0IHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0
dXJuIGZhbHNlOyB9CisgICAgYm9vbCBnZXRXaXRoVW5kZWZpbmVkT3JOdWxsQ2hlY2soY29uc3Qg
U3RyaW5nJiwgU3RyaW5nJikgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAgdGVtcGxhdGUgPHR5cGVu
YW1lIFQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145718</attachid>
            <date>2012-06-05 01:10:30 -0700</date>
            <delta_ts>2012-06-05 04:16:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88283-20120605161953.patch</filename>
            <type>text/plain</type>
            <size>2632</size>
            <attacher name="Charles Wei">charles.wei</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5NDY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWE5YTQ3NzJkYzQwN2Uy
OGM2ZDUxNDQ2OGIxZDY0YmNiNTY1YWE4YS4uYmVmYTVmZDlmOTQzYWMxOTcxZjk5ZjA4MWQwZDNh
NTBlNWY0MDIyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTA2LTA1ICBDaGFy
bGVzIFdlaSAgPGNoYXJsZXMud2VpQHRvcmNobW9iaWxlLmNvbS5jbj4KKworICAgICAgICBKU0M6
bmVlZCB0byBpbXBsZW1lbnQgRGljdGlvbmFyeTo6Z2V0V2l0aFVuZGVmaW5lZE9yTnVsbENoZWNr
IGZvciBJREIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg4MjgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzLCB0aGlzIHBhdGNoIGlzIHRvIG1ha2UgaWRiIHdvcmsgZm9yIEpTQy4gQWxs
IHRoZSBleGlzdGluZworICAgICAgICB0ZXN0IGNhc2VzIGZvciBpZGIgc2hvdWxkIGFwcGx5Lgor
CisgICAgICAgICogYmluZGluZ3MvanMvRGljdGlvbmFyeS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpEaWN0aW9uYXJ5OjpnZXRXaXRoVW5kZWZpbmVkT3JOdWxsQ2hlY2spOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0RpY3Rpb25hcnkuaDoKKyAgICAgICAgKERpY3Rpb25hcnkpOgorCiAyMDEyLTA2
LTA1ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRXZlbnRIYW5k
bGVyIHNob3VsZG4ndCBkaXNwYXRjaCBmYWtlIG1vdXNlbW92ZSBldmVudHMgd2hlbiBzY3JvbGxp
bmcgb24gZGV2aWNlcyB0aGF0IGRvbid0IGhhdmUgYSBtb3VzZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvRGljdGlvbmFyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9EaWN0aW9uYXJ5LmNwcAppbmRleCA4MWIzNDVkNDhkZWFiMTM3ZjhmMTY3NTY4OWE1
MjY1YmNjZDZmYTU0Li4yNmRkMDU2NzU3ZmE5ZThlNDk0MDRmZjFkOThiMDZjNzEzOGYzOWM3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9EaWN0aW9uYXJ5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9EaWN0aW9uYXJ5LmNwcApAQCAtNzksNSArNzks
MjAgQEAgYm9vbCBEaWN0aW9uYXJ5OjpnZXRPd25Qcm9wZXJ0aWVzQXNTdHJpbmdIYXNoTWFwKFdU
Rjo6SGFzaE1hcDxTdHJpbmcsIFN0cmluZz4mIG0KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotfTsK
K2Jvb2wgRGljdGlvbmFyeTo6Z2V0V2l0aFVuZGVmaW5lZE9yTnVsbENoZWNrKGNvbnN0IFN0cmlu
ZyYgcHJvcGVydHlOYW1lLCBTdHJpbmcmIHZhbHVlKSBjb25zdAoreworICAgIGlmICghbV9kaWN0
aW9uYXJ5LmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgSlNPYmplY3Qq
IG9iamVjdCA9IG1fZGljdGlvbmFyeS5pbml0aWFsaXplck9iamVjdCgpOworICAgIEV4ZWNTdGF0
ZSogZXhlYyA9IG1fZGljdGlvbmFyeS5leGVjU3RhdGUoKTsKKyAgICBJZGVudGlmaWVyIGlkZW50
aWZpZXIoZXhlYywgcHJvcGVydHlOYW1lLmltcGwoKSk7CisgICAgSlNWYWx1ZSBqc1ZhbHVlID0g
b2JqZWN0LT5nZXQoZXhlYywgaWRlbnRpZmllcik7CiAKKyAgICBpZiAoanNWYWx1ZS5pc1VuZGVm
aW5lZE9yTnVsbCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICB2YWx1ZSA9IHVzdHJp
bmdUb1N0cmluZyhqc1ZhbHVlLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSk7CisgICAgcmV0
dXJuIHRydWU7Cit9Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9E
aWN0aW9uYXJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9EaWN0aW9uYXJ5LmgKaW5k
ZXggY2NjZWVlNzA2ODEwN2IyMGU5OTU5YmRhOGQ1NWUxMTBiM2I3MDk3ZC4uMTRiODZhMDdhZDc4
NGRmZjQ1NjNiZDRmZTg1N2EyMTAyODgxMTcyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvRGljdGlvbmFyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0RpY3Rpb25hcnkuaApAQCAtNjEsNyArNjEsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc09iamVj
dCgpIGNvbnN0IHsgcmV0dXJuIG1fZGljdGlvbmFyeS5pc1ZhbGlkKCk7IH0KICAgICBib29sIGlz
VW5kZWZpbmVkT3JOdWxsKCkgY29uc3QgeyByZXR1cm4gIW1fZGljdGlvbmFyeS5pc1ZhbGlkKCk7
IH0KICAgICBib29sIGdldE93blByb3BlcnRpZXNBc1N0cmluZ0hhc2hNYXAoV1RGOjpIYXNoTWFw
PFN0cmluZywgU3RyaW5nPiYpIGNvbnN0OwotICAgIGJvb2wgZ2V0V2l0aFVuZGVmaW5lZE9yTnVs
bENoZWNrKGNvbnN0IFN0cmluZyYsIFN0cmluZyYpIGNvbnN0IHsgbm90SW1wbGVtZW50ZWQoKTsg
cmV0dXJuIGZhbHNlOyB9CisgICAgYm9vbCBnZXRXaXRoVW5kZWZpbmVkT3JOdWxsQ2hlY2soY29u
c3QgU3RyaW5nJiwgU3RyaW5nJikgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAgdGVtcGxhdGUgPHR5
cGVuYW1lIFQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145754</attachid>
            <date>2012-06-05 04:17:05 -0700</date>
            <delta_ts>2012-06-05 04:39:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88283-20120605192627.patch</filename>
            <type>text/plain</type>
            <size>3930</size>
            <attacher name="Charles Wei">charles.wei</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5NDc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzFhN2FiYzI4YTVlYmNm
OGIwNjgwMDQxNzg5NjRhMWY2YzcxMDAwOC4uMTM4N2MwMzlkNTk2Mzc4Yzg2MDI5MWYyYzA3M2Iw
YTZkNTg4Y2UzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTA2LTA1ICBDaGFy
bGVzIFdlaSAgPGNoYXJsZXMud2VpQHRvcmNobW9iaWxlLmNvbS5jbj4KKworICAgICAgICBKU0M6
bmVlZCB0byBpbXBsZW1lbnQgRGljdGlvbmFyeTo6Z2V0V2l0aFVuZGVmaW5lZE9yTnVsbENoZWNr
IGZvciBJREIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg4MjgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzLCBpZGIgbm90IHdvcmtpbmcgZm9yIEpTQyB5ZXQuCisKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9EaWN0aW9uYXJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpY3Rpb25hcnk6
OmdldFdpdGhVbmRlZmluZWRPck51bGxDaGVjayk6CisgICAgICAgICogYmluZGluZ3MvanMvRGlj
dGlvbmFyeS5oOgorICAgICAgICAoRGljdGlvbmFyeSk6CisgICAgICAgICogYmluZGluZ3MvanMv
SlNEaWN0aW9uYXJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRGljdGlvbmFyeTo6Z2V0V2l0
aFVuZGVmaW5lZE9yTnVsbENoZWNrKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTRGljdGlvbmFyeS5oOgorICAgICAgICAoSlNEaWN0aW9uYXJ5KToKKwogMjAx
Mi0wNi0wNCAgS2ludWtvIFlhc3VkYSAgPGtpbnVrb0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
Q2hyb21pdW0gdGVzdHM6ICJBZGQgc3VwcG9ydCBmb3IgdGhlIEJsb2IgY29uc3RydWN0b3IiIFty
MTE1NTgyXSByZWdyZXNzZWQgYmxvYiBsYXlvdXQgdGVzdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0RpY3Rpb25hcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvRGljdGlvbmFyeS5jcHAKaW5kZXggODFiMzQ1ZDQ4ZGVhYjEzN2Y4ZjE2NzU2ODlhNTI2
NWJjY2Q2ZmE1NC4uYmE5NjBkYzgyODNiZWEzYTJkNGUyNzAxMGM0OWUzY2I0OTQzZjZkZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvRGljdGlvbmFyeS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvRGljdGlvbmFyeS5jcHAKQEAgLTc5LDUgKzc5LDkg
QEAgYm9vbCBEaWN0aW9uYXJ5OjpnZXRPd25Qcm9wZXJ0aWVzQXNTdHJpbmdIYXNoTWFwKFdURjo6
SGFzaE1hcDxTdHJpbmcsIFN0cmluZz4mIG0KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotfTsKK2Jv
b2wgRGljdGlvbmFyeTo6Z2V0V2l0aFVuZGVmaW5lZE9yTnVsbENoZWNrKGNvbnN0IFN0cmluZyYg
cHJvcGVydHlOYW1lLCBTdHJpbmcmIHZhbHVlKSBjb25zdAoreworICAgIHJldHVybiBtX2RpY3Rp
b25hcnkuZ2V0V2l0aFVuZGVmaW5lZE9yTnVsbENoZWNrKHByb3BlcnR5TmFtZSwgdmFsdWUpOwor
fQogCit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvRGljdGlvbmFy
eS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvRGljdGlvbmFyeS5oCmluZGV4IGNjY2Vl
ZTcwNjgxMDdiMjBlOTk1OWJkYThkNTVlMTEwYjNiNzA5N2QuLjE0Yjg2YTA3YWQ3ODRkZmY0NTYz
YmQ0ZmU4NTdhMjEwMjg4MTE3MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0RpY3Rpb25hcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9EaWN0aW9u
YXJ5LmgKQEAgLTYxLDcgKzYxLDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNPYmplY3QoKSBjb25z
dCB7IHJldHVybiBtX2RpY3Rpb25hcnkuaXNWYWxpZCgpOyB9CiAgICAgYm9vbCBpc1VuZGVmaW5l
ZE9yTnVsbCgpIGNvbnN0IHsgcmV0dXJuICFtX2RpY3Rpb25hcnkuaXNWYWxpZCgpOyB9CiAgICAg
Ym9vbCBnZXRPd25Qcm9wZXJ0aWVzQXNTdHJpbmdIYXNoTWFwKFdURjo6SGFzaE1hcDxTdHJpbmcs
IFN0cmluZz4mKSBjb25zdDsKLSAgICBib29sIGdldFdpdGhVbmRlZmluZWRPck51bGxDaGVjayhj
b25zdCBTdHJpbmcmLCBTdHJpbmcmKSBjb25zdCB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBm
YWxzZTsgfQorICAgIGJvb2wgZ2V0V2l0aFVuZGVmaW5lZE9yTnVsbENoZWNrKGNvbnN0IFN0cmlu
ZyYsIFN0cmluZyYpIGNvbnN0OwogCiBwcml2YXRlOgogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBU
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGljdGlvbmFyeS5jcHAKaW5kZXggZmM2
YTE2ZDkzMDZkNDVhMmZiMTc1M2QwMjZjNWU0ODRmMTYyNWQzNS4uMDE5ZWY0MzdlMWU3MjRiOWM3
OTVhNTI0YzVhYmNjOTMwMTI5YTg4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNEaWN0aW9uYXJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RpY3Rpb25hcnkuY3BwCkBAIC0xNjcsNCArMTY3LDE0IEBAIHZvaWQgSlNEaWN0aW9uYXJ5Ojpj
b252ZXJ0VmFsdWUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlLCBIYXNoU2V0PEF0b21p
Y1N0CiB9CiAjZW5kaWYKIAorYm9vbCBKU0RpY3Rpb25hcnk6OmdldFdpdGhVbmRlZmluZWRPck51
bGxDaGVjayhjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSwgU3RyaW5nJiByZXN1bHQpIGNvbnN0
Cit7CisgICAgSlNWYWx1ZSB2YWx1ZTsKKyAgICBpZiAodHJ5R2V0UHJvcGVydHkocHJvcGVydHlO
YW1lLnV0ZjgoKS5kYXRhKCksIHZhbHVlKSAhPSBQcm9wZXJ0eUZvdW5kIHx8IHZhbHVlLmlzVW5k
ZWZpbmVkT3JOdWxsKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJlc3VsdCA9IHVz
dHJpbmdUb1N0cmluZyh2YWx1ZS50b1N0cmluZyhtX2V4ZWMpLT52YWx1ZShtX2V4ZWMpKTsKKyAg
ICByZXR1cm4gdHJ1ZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuaAppbmRleCBlMGJhMTY5OTc3MTIzNzM1OGJlMTJj
NmU3ZmZmNWZiNzk3OTYzMDIyLi4xOTBmNjY0MzY3ZThiM2MxZDMzNDAyNWM1ZWEzN2JlNjI0MDY3
ODlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnku
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuaApAQCAtNTgs
NiArNTgsNyBAQCBwdWJsaWM6CiAgICAgLy8gUmV0dXJucyB0cnVlIGlmIHRoZSBwcm9wZXJ0eSB3
YXMgZm91bmQgaW4gdGhlIGRpY3Rpb25hcnksIGFuZCB0aGUgdmFsdWUgY291bGQgYmUgY29udmVy
dGVkIHRvIHRoZSBkZXNpcmVkIHR5cGUuCiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFJlc3VsdD4K
ICAgICBib29sIGdldChjb25zdCBjaGFyKiBwcm9wZXJ0eU5hbWUsIFJlc3VsdCYpIGNvbnN0Owor
ICAgIGJvb2wgZ2V0V2l0aFVuZGVmaW5lZE9yTnVsbENoZWNrKGNvbnN0IFN0cmluZyYgcHJvcGVy
dHlOYW1lLCBTdHJpbmcmIHZhbHVlKSBjb25zdDsKIAogICAgIEpTQzo6RXhlY1N0YXRlKiBleGVj
U3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2V4ZWM7IH0KICAgICBKU0M6OkpTT2JqZWN0KiBpbml0
aWFsaXplck9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIG1faW5pdGlhbGl6ZXJPYmplY3Q7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145755</attachid>
            <date>2012-06-05 04:40:05 -0700</date>
            <delta_ts>2012-06-05 05:28:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88283-20120605194928.patch</filename>
            <type>text/plain</type>
            <size>3949</size>
            <attacher name="Charles Wei">charles.wei</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5NDc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzFhN2FiYzI4YTVlYmNm
OGIwNjgwMDQxNzg5NjRhMWY2YzcxMDAwOC4uMTM4N2MwMzlkNTk2Mzc4Yzg2MDI5MWYyYzA3M2Iw
YTZkNTg4Y2UzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTA2LTA1ICBDaGFy
bGVzIFdlaSAgPGNoYXJsZXMud2VpQHRvcmNobW9iaWxlLmNvbS5jbj4KKworICAgICAgICBKU0M6
bmVlZCB0byBpbXBsZW1lbnQgRGljdGlvbmFyeTo6Z2V0V2l0aFVuZGVmaW5lZE9yTnVsbENoZWNr
IGZvciBJREIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg4MjgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzLCBpZGIgbm90IHdvcmtpbmcgZm9yIEpTQyB5ZXQuCisKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9EaWN0aW9uYXJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpY3Rpb25hcnk6
OmdldFdpdGhVbmRlZmluZWRPck51bGxDaGVjayk6CisgICAgICAgICogYmluZGluZ3MvanMvRGlj
dGlvbmFyeS5oOgorICAgICAgICAoRGljdGlvbmFyeSk6CisgICAgICAgICogYmluZGluZ3MvanMv
SlNEaWN0aW9uYXJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRGljdGlvbmFyeTo6Z2V0V2l0
aFVuZGVmaW5lZE9yTnVsbENoZWNrKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTRGljdGlvbmFyeS5oOgorICAgICAgICAoSlNEaWN0aW9uYXJ5KToKKwogMjAx
Mi0wNi0wNCAgS2ludWtvIFlhc3VkYSAgPGtpbnVrb0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
Q2hyb21pdW0gdGVzdHM6ICJBZGQgc3VwcG9ydCBmb3IgdGhlIEJsb2IgY29uc3RydWN0b3IiIFty
MTE1NTgyXSByZWdyZXNzZWQgYmxvYiBsYXlvdXQgdGVzdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0RpY3Rpb25hcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvRGljdGlvbmFyeS5jcHAKaW5kZXggODFiMzQ1ZDQ4ZGVhYjEzN2Y4ZjE2NzU2ODlhNTI2
NWJjY2Q2ZmE1NC4uYmE5NjBkYzgyODNiZWEzYTJkNGUyNzAxMGM0OWUzY2I0OTQzZjZkZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvRGljdGlvbmFyeS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvRGljdGlvbmFyeS5jcHAKQEAgLTc5LDUgKzc5LDkg
QEAgYm9vbCBEaWN0aW9uYXJ5OjpnZXRPd25Qcm9wZXJ0aWVzQXNTdHJpbmdIYXNoTWFwKFdURjo6
SGFzaE1hcDxTdHJpbmcsIFN0cmluZz4mIG0KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotfTsKK2Jv
b2wgRGljdGlvbmFyeTo6Z2V0V2l0aFVuZGVmaW5lZE9yTnVsbENoZWNrKGNvbnN0IFN0cmluZyYg
cHJvcGVydHlOYW1lLCBTdHJpbmcmIHZhbHVlKSBjb25zdAoreworICAgIHJldHVybiBtX2RpY3Rp
b25hcnkuZ2V0V2l0aFVuZGVmaW5lZE9yTnVsbENoZWNrKHByb3BlcnR5TmFtZSwgdmFsdWUpOwor
fQogCit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvRGljdGlvbmFy
eS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvRGljdGlvbmFyeS5oCmluZGV4IGNjY2Vl
ZTcwNjgxMDdiMjBlOTk1OWJkYThkNTVlMTEwYjNiNzA5N2QuLjM3YzNlODgwNmEyYTFhMDNjNDEx
MTc5Yzc1MjlhYTJiZmQ4ZjVkNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0RpY3Rpb25hcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9EaWN0aW9u
YXJ5LmgKQEAgLTYxLDcgKzYxLDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNPYmplY3QoKSBjb25z
dCB7IHJldHVybiBtX2RpY3Rpb25hcnkuaXNWYWxpZCgpOyB9CiAgICAgYm9vbCBpc1VuZGVmaW5l
ZE9yTnVsbCgpIGNvbnN0IHsgcmV0dXJuICFtX2RpY3Rpb25hcnkuaXNWYWxpZCgpOyB9CiAgICAg
Ym9vbCBnZXRPd25Qcm9wZXJ0aWVzQXNTdHJpbmdIYXNoTWFwKFdURjo6SGFzaE1hcDxTdHJpbmcs
IFN0cmluZz4mKSBjb25zdDsKLSAgICBib29sIGdldFdpdGhVbmRlZmluZWRPck51bGxDaGVjayhj
b25zdCBTdHJpbmcmLCBTdHJpbmcmKSBjb25zdCB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBm
YWxzZTsgfQorICAgIGJvb2wgZ2V0V2l0aFVuZGVmaW5lZE9yTnVsbENoZWNrKGNvbnN0IFN0cmlu
ZyYgcHJvcGVydHlOYW1lLCBTdHJpbmcmIHZhbHVlKSBjb25zdDsKIAogcHJpdmF0ZToKICAgICB0
ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRGljdGlvbmFyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RpY3Rp
b25hcnkuY3BwCmluZGV4IGZjNmExNmQ5MzA2ZDQ1YTJmYjE3NTNkMDI2YzVlNDg0ZjE2MjVkMzUu
LjAxOWVmNDM3ZTFlNzI0YjljNzk1YTUyNGM1YWJjYzkzMDEyOWE4OGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGljdGlvbmFyeS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmNwcApAQCAtMTY3LDQgKzE2NywxNCBAQCB2
b2lkIEpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2
YWx1ZSwgSGFzaFNldDxBdG9taWNTdAogfQogI2VuZGlmCiAKK2Jvb2wgSlNEaWN0aW9uYXJ5Ojpn
ZXRXaXRoVW5kZWZpbmVkT3JOdWxsQ2hlY2soY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUsIFN0
cmluZyYgcmVzdWx0KSBjb25zdAoreworICAgIEpTVmFsdWUgdmFsdWU7CisgICAgaWYgKHRyeUdl
dFByb3BlcnR5KHByb3BlcnR5TmFtZS51dGY4KCkuZGF0YSgpLCB2YWx1ZSkgIT0gUHJvcGVydHlG
b3VuZCB8fCB2YWx1ZS5pc1VuZGVmaW5lZE9yTnVsbCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICByZXN1bHQgPSB1c3RyaW5nVG9TdHJpbmcodmFsdWUudG9TdHJpbmcobV9leGVjKS0+
dmFsdWUobV9leGVjKSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGljdGlvbmFy
eS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmgKaW5kZXggZTBi
YTE2OTk3NzEyMzczNThiZTEyYzZlN2ZmZjVmYjc5Nzk2MzAyMi4uMTkwZjY2NDM2N2U4YjNjMWQz
MzQwMjVjNWVhMzdiZTYyNDA2Nzg5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNEaWN0aW9uYXJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
aWN0aW9uYXJ5LmgKQEAgLTU4LDYgKzU4LDcgQEAgcHVibGljOgogICAgIC8vIFJldHVybnMgdHJ1
ZSBpZiB0aGUgcHJvcGVydHkgd2FzIGZvdW5kIGluIHRoZSBkaWN0aW9uYXJ5LCBhbmQgdGhlIHZh
bHVlIGNvdWxkIGJlIGNvbnZlcnRlZCB0byB0aGUgZGVzaXJlZCB0eXBlLgogICAgIHRlbXBsYXRl
IDx0eXBlbmFtZSBSZXN1bHQ+CiAgICAgYm9vbCBnZXQoY29uc3QgY2hhciogcHJvcGVydHlOYW1l
LCBSZXN1bHQmKSBjb25zdDsKKyAgICBib29sIGdldFdpdGhVbmRlZmluZWRPck51bGxDaGVjayhj
b25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSwgU3RyaW5nJiB2YWx1ZSkgY29uc3Q7CiAKICAgICBK
U0M6OkV4ZWNTdGF0ZSogZXhlY1N0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9leGVjOyB9CiAgICAg
SlNDOjpKU09iamVjdCogaW5pdGlhbGl6ZXJPYmplY3QoKSBjb25zdCB7IHJldHVybiBtX2luaXRp
YWxpemVyT2JqZWN0OyB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>