<?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>63155</bug_id>
          
          <creation_ts>2011-06-22 10:55:08 -0700</creation_ts>
          <short_desc>Add NSError wrapper functions in ResourceError when USE(CFNETWORK) is enabled</short_desc>
          <delta_ts>2011-06-22 23:01:05 -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>Platform</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>51836</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Pratik Solanki">psolanki</reporter>
          <assigned_to name="Pratik Solanki">psolanki</assigned_to>
          <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>darin</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>jberlin</cc>
    
    <cc>koivisto</cc>
    
    <cc>psolanki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>425362</commentid>
    <comment_count>0</comment_count>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2011-06-22 10:55:08 -0700</bug_when>
    <thetext>This is part of the move to the CFNetwork based loader on Mac - bug 51836. In order to send back NSError objects to WebKit on Mac, we need to have a wrapper NSError methods in ResourceError.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425391</commentid>
    <comment_count>1</comment_count>
      <attachid>98202</attachid>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2011-06-22 11:11:08 -0700</bug_when>
    <thetext>Created attachment 98202
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425409</commentid>
    <comment_count>2</comment_count>
      <attachid>98202</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-06-22 11:28:17 -0700</bug_when>
    <thetext>Comment on attachment 98202
Patch

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

&gt; Source/WebCore/platform/network/mac/ResourceErrorMac.mm:56
&gt; +    RetainPtr&lt;NSDictionary&gt; userInfo(AdoptNS, (NSDictionary *) CFErrorCopyUserInfo(error));

This needs to be AdoptCF, not AdoptNS.

The difference between the two is in garbage collection mode. What matters is the type of retain, CFRetain vs [retain].

&gt; Source/WebCore/platform/network/mac/ResourceErrorMac.mm:57
&gt; +    return [NSError errorWithDomain:(NSString*)CFErrorGetDomain(error) code:CFErrorGetCode(error) userInfo:userInfo.get()];

Don’t we want to cache a single NSError rather than creating new autoreleased one every time? I’m worried about the performance implications of creating new ones every time.

&gt; Source/WebKit/mac/ChangeLog:8
&gt; +        Use the explicit ResourceError::nsError() method instead of implicit operator casts.

Why?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425514</commentid>
    <comment_count>3</comment_count>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2011-06-22 13:10:34 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 98202 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=98202&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/network/mac/ResourceErrorMac.mm:56
&gt; &gt; +    RetainPtr&lt;NSDictionary&gt; userInfo(AdoptNS, (NSDictionary *) CFErrorCopyUserInfo(error));
&gt; 
&gt; This needs to be AdoptCF, not AdoptNS.

ok

&gt; &gt; Source/WebCore/platform/network/mac/ResourceErrorMac.mm:57
&gt; &gt; +    return [NSError errorWithDomain:(NSString*)CFErrorGetDomain(error) code:CFErrorGetCode(error) userInfo:userInfo.get()];
&gt; 
&gt; Don’t we want to cache a single NSError rather than creating new autoreleased one every time? I’m worried about the performance implications of creating new ones every time.

Yeah, I think we should cache it. Rewriting this part.

&gt; &gt; Source/WebKit/mac/ChangeLog:8
&gt; &gt; +        Use the explicit ResourceError::nsError() method instead of implicit operator casts.
&gt; 
&gt; Why?

I should have explained more in the changelog. I am pretty sure I was getting compile errors because the compiler was confused while trying to convert a ResourceError to an NSError* when USE(CFNETWORK) was enabled. But I am not seeing those anymore. I&apos;ll remove those changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425571</commentid>
    <comment_count>4</comment_count>
      <attachid>98239</attachid>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2011-06-22 14:11:04 -0700</bug_when>
    <thetext>Created attachment 98239
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425772</commentid>
    <comment_count>5</comment_count>
      <attachid>98239</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-06-22 17:30:19 -0700</bug_when>
    <thetext>Comment on attachment 98239
Patch

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

&gt; Source/WebCore/platform/network/mac/ResourceErrorMac.mm:58
&gt; +        RetainPtr&lt;NSDictionary&gt; userInfo(AdoptCF, (NSDictionary *) CFErrorCopyUserInfo(error));
&gt; +        m_platformNSError.adoptNS([[NSError alloc] initWithDomain:(NSString*)CFErrorGetDomain(error) code:CFErrorGetCode(error) userInfo:userInfo.get()]);

Different formatting of the typecasts on two successive lines.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425967</commentid>
    <comment_count>6</comment_count>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2011-06-22 23:01:05 -0700</bug_when>
    <thetext>Committed r89534: &lt;http://trac.webkit.org/changeset/89534&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98202</attachid>
            <date>2011-06-22 11:11:08 -0700</date>
            <delta_ts>2011-06-22 14:11:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-63155-20110622111107.patch</filename>
            <type>text/plain</type>
            <size>13336</size>
            <attacher name="Pratik Solanki">psolanki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODkzODQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhYTQ2ZTc1ZDUyZDFkOTdk
ZTEzZTg5OTVjNmNkNjY0NDMzNTc5ZGYxLi5hM2JlNDgxMDA4ZDg1NDU4YjdiMzFkMjZhOGMyY2I1
YzljMzQ3N2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMDYtMjIgIFByYXRp
ayBTb2xhbmtpICA8cHNvbGFua2lAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBOU0Vycm9yIHdyYXBwZXIgZnVuY3Rpb25zIGlu
IFJlc291cmNlRXJyb3Igd2hlbiBVU0UoQ0ZORVRXT1JLKSBpcyBlbmFibGVkCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MzE1NQorCisgICAgICAgIEFk
ZCBhbiB3cmFwcGVyIGZ1bmN0aW9ucyB0byBSZXNvdXJjZUVycm9yIHdoZW4gYnVpbGRpbmcgd2l0
aCBVU0UoQ0ZORVRXT1JLKS4gV2UgbmVlZCB0bworICAgICAgICBjcmVhdGUgYSBuZXcgTlNFcnJv
ciBpbiBSZXNvdXJjZUVycm9yOjpuc0Vycm9yKCkgc2luY2UgU2FmYXJpIGhhcyBjYXRlZ29yeSBt
ZXRob2RzIG9uCisgICAgICAgIE5TRXJyb3IgYW5kIHBhc3NpbmcgYSBDRkVycm9yUmVmIGJhY2sg
ZG9lcyBub3Qgd29yay4KKworICAgICAgICBObyB0ZXN0cyBiZWNhdXNlIG5vIGNoYW5nZSBpbiBm
dW5jdGlvbmFsaXR5LgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUVycm9yLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9tYWMvUmVzb3VyY2VFcnJvck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNl
RXJyb3I6OlJlc291cmNlRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VFcnJvcjo6
bnNFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUVycm9yOjpvcGVyYXRvciBOU0Vy
cm9yICopOgorCiAyMDExLTA2LTIxICBNYXJrIFBpbGdyaW0gIDxwaWxncmltQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpp
bmRleCA3YjhiN2RlYzlmNGU4NjNkYjk1YjQ2ZGYyYzg4NzZhNDA0MzFhNWU1Li5jNWM4NDM5MzNl
OWE3MzkyMmE3NDg3NjE0Y2U5YWI4ZDM4Y2Y0MmM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAt
MTkwNyw3ICsxOTA3LDkgQEAgX19aTjdXZWJDb3JlOFNldHRpbmdzMjBnQVZGb3VuZGF0aW9uRW5h
YmxlZEUKICNlbmRpZgogCiAjaWYgVVNFKENGTkVUV09SSykKK19fWk5LN1dlYkNvcmUxM1Jlc291
cmNlRXJyb3JjdlA5X19DRkVycm9yRXYKIF9fWk43V2ViQ29yZTEyU2NoZWR1bGVQYWlyQzFFUDEx
X19DRlJ1bkxvb3BQSzEwX19DRlN0cmluZwogI2Vsc2UKK19fWk5LN1dlYkNvcmUxM1Jlc291cmNl
RXJyb3JjdlA3TlNFcnJvckV2CiBfX1pON1dlYkNvcmUxMlNjaGVkdWxlUGFpckMxRVA5TlNSdW5M
b29wUEsxMF9fQ0ZTdHJpbmcKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUVycm9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2NmL1Jlc291cmNlRXJyb3IuaAppbmRleCBkMzY5MDNmMTRhZDgwNGUxYzhiYmVj
YmVjODRhMTE4OTBlNzBkM2E3Li4yMTg2YWE3YzZkZTgwYWFiZGMzOWE1ZDVmZDMxNjZjZWE4ZDQy
ZDUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291
cmNlRXJyb3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291
cmNlRXJyb3IuaApAQCAtMzEsMTQgKzMxLDEzIEBACiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5o
PgogI2lmIFVTRShDRk5FVFdPUkspCiAjaW5jbHVkZSA8Q29yZUZvdW5kYXRpb24vQ0ZTdHJlYW0u
aD4KLSNlbHNlCisjZW5kaWYKIAogI2lmZGVmIF9fT0JKQ19fCiBAY2xhc3MgTlNFcnJvcjsKICNl
bHNlCiBjbGFzcyBOU0Vycm9yOwogI2VuZGlmCi0jZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCkBAIC02OCw3ICs2Nyw5IEBAIHB1YmxpYzoKICAgICBSZXNvdXJjZUVycm9yKENGU3RyZWFt
RXJyb3IgZXJyb3IpOwogICAgIENGU3RyZWFtRXJyb3IgY2ZTdHJlYW1FcnJvcigpIGNvbnN0Owog
ICAgIG9wZXJhdG9yIENGU3RyZWFtRXJyb3IoKSBjb25zdDsKLSNlbHNlCisjZW5kaWYKKworI2lm
IFBMQVRGT1JNKE1BQykKICAgICBSZXNvdXJjZUVycm9yKE5TRXJyb3IgKik7CiAgICAgTlNFcnJv
ciAqbnNFcnJvcigpIGNvbnN0OwogICAgIG9wZXJhdG9yIE5TRXJyb3IgKigpIGNvbnN0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VFcnJv
ck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlRXJy
b3JNYWMubW0KaW5kZXggMGJhZGExZjMyOWYyZWU0ZGQyM2UxMGIxMzJiYjFhNWMzNzNhMDQxOC4u
ZTQwMWZlNjdlMmQ0YWMyOTY4YmYyNWI1NTE2MTBmNDQ1MDZkYTllMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VFcnJvck1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUVycm9yTWFjLm1t
CkBAIC0zNyw2ICszNywzMyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKKyNpZiBVU0UoQ0ZO
RVRXT1JLKQorCitSZXNvdXJjZUVycm9yOjpSZXNvdXJjZUVycm9yKE5TRXJyb3IgKmVycm9yKQor
ICAgIDogbV9kYXRhSXNVcFRvRGF0ZShmYWxzZSkKKyAgICAsIG1fcGxhdGZvcm1FcnJvcihyZWlu
dGVycHJldF9jYXN0PENGRXJyb3JSZWY+KGVycm9yKSkKK3sKKyAgICBtX2lzTnVsbCA9ICFlcnJv
cjsKK30KKworTlNFcnJvciAqUmVzb3VyY2VFcnJvcjo6bnNFcnJvcigpIGNvbnN0Cit7CisgICAg
aWYgKG1faXNOdWxsKSB7CisgICAgICAgIEFTU0VSVCghbV9wbGF0Zm9ybUVycm9yKTsKKyAgICAg
ICAgcmV0dXJuIG5pbDsKKyAgICB9CisgICAgQ0ZFcnJvclJlZiBlcnJvciA9IG1fcGxhdGZvcm1F
cnJvci5nZXQoKTsKKyAgICBSZXRhaW5QdHI8TlNEaWN0aW9uYXJ5PiB1c2VySW5mbyhBZG9wdE5T
LCAoTlNEaWN0aW9uYXJ5ICopIENGRXJyb3JDb3B5VXNlckluZm8oZXJyb3IpKTsKKyAgICByZXR1
cm4gW05TRXJyb3IgZXJyb3JXaXRoRG9tYWluOihOU1N0cmluZyopQ0ZFcnJvckdldERvbWFpbihl
cnJvcikgY29kZTpDRkVycm9yR2V0Q29kZShlcnJvcikgdXNlckluZm86dXNlckluZm8uZ2V0KCld
OworfQorCitSZXNvdXJjZUVycm9yOjpvcGVyYXRvciBOU0Vycm9yICooKSBjb25zdAoreworICAg
IHJldHVybiBuc0Vycm9yKCk7Cit9CisKKyNlbHNlCisKIFJlc291cmNlRXJyb3I6OlJlc291cmNl
RXJyb3IoTlNFcnJvciAqbnNFcnJvcikKICAgICA6IG1fZGF0YUlzVXBUb0RhdGUoZmFsc2UpCiAg
ICAgLCBtX3BsYXRmb3JtRXJyb3IobnNFcnJvcikKQEAgLTExNyw0ICsxNDQsNiBAQCBSZXNvdXJj
ZUVycm9yOjpvcGVyYXRvciBDRkVycm9yUmVmKCkgY29uc3QKICAgICByZXR1cm4gY2ZFcnJvcigp
OwogfQogCisjZW5kaWYgLy8gVVNFKENGTkVUV09SSykKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9tYWMvQ2hhbmdlTG9nCmluZGV4IGUxZWIzYzQzY2ZhNDgwODIwZTU2ZWY4NWEyNTlmZjM5NzI3
OTJlZGEuLjBkZDJkMDFmOGZkNDE5MzRlYzg1ZjA2YzFkYzkxY2U4ZjcyM2RiY2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxMS0wNi0yMiAgUHJhdGlrIFNvbGFua2kgIDxw
c29sYW5raUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIE5TRXJyb3Igd3JhcHBlciBmdW5jdGlvbnMgaW4gUmVzb3VyY2VFcnJv
ciB3aGVuIFVTRShDRk5FVFdPUkspIGlzIGVuYWJsZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYzMTU1CisKKyAgICAgICAgVXNlIHRoZSBleHBsaWNp
dCBSZXNvdXJjZUVycm9yOjpuc0Vycm9yKCkgbWV0aG9kIGluc3RlYWQgb2YgaW1wbGljaXQgb3Bl
cmF0b3IgY2FzdHMuCisKKyAgICAgICAgKiBQbHVnaW5zL0hvc3RlZC9Ib3N0ZWROZXRzY2FwZVBs
dWdpblN0cmVhbS5tbToKKyAgICAgICAgKFdlYktpdDo6SG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJl
YW06OmRpZEZhaWwpOgorICAgICAgICAqIFBsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5TdHJlYW0u
bW06CisgICAgICAgIChXZWJOZXRzY2FwZVBsdWdpblN0cmVhbTo6c3RvcCk6CisgICAgICAgIChX
ZWJOZXRzY2FwZVBsdWdpblN0cmVhbTo6ZGlkRmFpbCk6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW06CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVu
dDo6ZGlzcGF0Y2hEaWRGYWlsTG9hZGluZyk6CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVu
dDo6ZGlzcGF0Y2hEaWRGYWlsUHJvdmlzaW9uYWxMb2FkKToKKyAgICAgICAgKFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZhaWxMb2FkKToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVy
Q2xpZW50OjpkaXNwYXRjaFVuYWJsZVRvSW1wbGVtZW50UG9saWN5KToKKyAgICAgICAgKFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpzZXRNYWluRG9jdW1lbnRFcnJvcik6CisgICAgICAgICogV2ViVmll
dy9XZWJEYXRhU291cmNlLm1tOgorICAgICAgICAoLVtXZWJEYXRhU291cmNlIF9tYWluRG9jdW1l
bnRFcnJvcl0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWUubW06CisgICAgICAgICgtW1dl
YkZyYW1lIF9jYWNoZWFiaWxpdHlEaWN0aW9uYXJ5XSk6CisKIDIwMTEtMDYtMjAgIFBhdmVsIEZl
bGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgWXVy
eSBTZW1pa2hhdHNreS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9z
dGVkL0hvc3RlZE5ldHNjYXBlUGx1Z2luU3RyZWFtLm1tIGIvU291cmNlL1dlYktpdC9tYWMvUGx1
Z2lucy9Ib3N0ZWQvSG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJlYW0ubW0KaW5kZXggOGFjMTM4OTFk
Y2ZiMzVjZGFjZDZkMzE1NDFiYzgwNTgyNmMzMTRjNy4uZDVkMjU0NmIwM2IzOWE5YWI2NGRhOTg3
YmM2NmFjNjk2NmE0ZGRkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9I
b3N0ZWQvSG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJlYW0ubW0KKysrIGIvU291cmNlL1dlYktpdC9t
YWMvUGx1Z2lucy9Ib3N0ZWQvSG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJlYW0ubW0KQEAgLTE5OCw3
ICsxOTgsNyBAQCBOUFJlYXNvbiBIb3N0ZWROZXRzY2FwZVBsdWdpblN0cmVhbTo6cmVhc29uRm9y
RXJyb3IoTlNFcnJvciAqZXJyb3IpCiB2b2lkIEhvc3RlZE5ldHNjYXBlUGx1Z2luU3RyZWFtOjpk
aWRGYWlsKFdlYkNvcmU6Ok5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyKiwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VFcnJvciYgZXJyb3IpCiB7CiAgICAgaWYgKE5ldHNjYXBlUGx1Z2luSG9zdFBy
b3h5KiBob3N0UHJveHkgPSBtX2luc3RhbmNlLT5ob3N0UHJveHkoKSkKLSAgICAgICAgX1dLUEhT
dHJlYW1EaWRGYWlsKGhvc3RQcm94eS0+cG9ydCgpLCBtX2luc3RhbmNlLT5wbHVnaW5JRCgpLCBt
X3N0cmVhbUlELCByZWFzb25Gb3JFcnJvcihlcnJvcikpOworICAgICAgICBfV0tQSFN0cmVhbURp
ZEZhaWwoaG9zdFByb3h5LT5wb3J0KCksIG1faW5zdGFuY2UtPnBsdWdpbklEKCksIG1fc3RyZWFt
SUQsIHJlYXNvbkZvckVycm9yKGVycm9yLm5zRXJyb3IoKSkpOwogICAgIG1faW5zdGFuY2UtPmRp
c2Nvbm5lY3RTdHJlYW0odGhpcyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFj
L1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5TdHJlYW0ubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9Q
bHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luU3RyZWFtLm1tCmluZGV4IGM2Nzc5NzMxZTdkNTg0ZDI4
YzdlMzNjNzg5ZjkzM2Y0Mzg3NDMzMTQuLjU3MmIyZDA0MjUxMzUwMGI3Mzc0YTJhYWIwYjk3OWQ1
M2JjNzRkZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2Nh
cGVQbHVnaW5TdHJlYW0ubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRz
Y2FwZVBsdWdpblN0cmVhbS5tbQpAQCAtMjkxLDcgKzI5MSw3IEBAIHZvaWQgV2ViTmV0c2NhcGVQ
bHVnaW5TdHJlYW06OnN0b3AoKQogICAgIEFTU0VSVCghbV9mcmFtZUxvYWRlcik7CiAgICAgCiAg
ICAgaWYgKCFtX2xvYWRlci0+aXNEb25lKCkpCi0gICAgICAgIGNhbmNlbExvYWRBbmREZXN0cm95
U3RyZWFtV2l0aEVycm9yKG1fbG9hZGVyLT5jYW5jZWxsZWRFcnJvcigpKTsKKyAgICAgICAgY2Fu
Y2VsTG9hZEFuZERlc3Ryb3lTdHJlYW1XaXRoRXJyb3IobV9sb2FkZXItPmNhbmNlbGxlZEVycm9y
KCkubnNFcnJvcigpKTsKIH0KIAogdm9pZCBXZWJOZXRzY2FwZVBsdWdpblN0cmVhbTo6ZGlkUmVj
ZWl2ZVJlc3BvbnNlKE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyKiwgY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYgcmVzcG9uc2UpCkBAIC00ODYsNyArNDg2LDcgQEAgdm9pZCBXZWJOZXRzY2FwZVBs
dWdpblN0cmVhbTo6ZGVzdHJveVN0cmVhbVdpdGhFcnJvcihOU0Vycm9yICplcnJvcikKIAogdm9p
ZCBXZWJOZXRzY2FwZVBsdWdpblN0cmVhbTo6ZGlkRmFpbChXZWJDb3JlOjpOZXRzY2FwZVBsdWdJ
blN0cmVhbUxvYWRlciosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImIGVycm9yKQogewot
ICAgIGRlc3Ryb3lTdHJlYW1XaXRoRXJyb3IoZXJyb3IpOworICAgIGRlc3Ryb3lTdHJlYW1XaXRo
RXJyb3IoZXJyb3IubnNFcnJvcigpKTsKIH0KIAogdm9pZCBXZWJOZXRzY2FwZVBsdWdpblN0cmVh
bTo6Y2FuY2VsTG9hZEFuZERlc3Ryb3lTdHJlYW1XaXRoRXJyb3IoTlNFcnJvciAqZXJyb3IpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50Lm1tCmluZGV4IDViMjBkNThmNTYyNGFiYzcwY2Y2MGQ3MWQzZDMwMzY5NmIzMGRk
MTcuLjRlY2NkYTFlZDFkMTQ1MGQ4NmU5NWI5MTM3N2FhOTU4NjViYThkMGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50Lm1tCkBAIC01MjQsNyArNTI0LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlz
cGF0Y2hEaWRGYWlsTG9hZGluZyhEb2N1bWVudExvYWRlciogbG9hZGVyLCB1bnNpZ24KIAogICAg
IGlmIChpbXBsZW1lbnRhdGlvbnMtPmRpZEZhaWxMb2FkaW5nV2l0aEVycm9yRnJvbURhdGFTb3Vy
Y2VGdW5jKSB7CiAgICAgICAgIGlmIChpZCByZXNvdXJjZSA9IFt3ZWJWaWV3IF9vYmplY3RGb3JJ
ZGVudGlmaWVyOmlkZW50aWZpZXJdKQotICAgICAgICAgICAgQ2FsbFJlc291cmNlTG9hZERlbGVn
YXRlKGltcGxlbWVudGF0aW9ucy0+ZGlkRmFpbExvYWRpbmdXaXRoRXJyb3JGcm9tRGF0YVNvdXJj
ZUZ1bmMsIHdlYlZpZXcsIEBzZWxlY3Rvcih3ZWJWaWV3OnJlc291cmNlOmRpZEZhaWxMb2FkaW5n
V2l0aEVycm9yOmZyb21EYXRhU291cmNlOiksIHJlc291cmNlLCAoTlNFcnJvciAqKWVycm9yLCBk
YXRhU291cmNlKGxvYWRlcikpOworICAgICAgICAgICAgQ2FsbFJlc291cmNlTG9hZERlbGVnYXRl
KGltcGxlbWVudGF0aW9ucy0+ZGlkRmFpbExvYWRpbmdXaXRoRXJyb3JGcm9tRGF0YVNvdXJjZUZ1
bmMsIHdlYlZpZXcsIEBzZWxlY3Rvcih3ZWJWaWV3OnJlc291cmNlOmRpZEZhaWxMb2FkaW5nV2l0
aEVycm9yOmZyb21EYXRhU291cmNlOiksIHJlc291cmNlLCBlcnJvci5uc0Vycm9yKCksIGRhdGFT
b3VyY2UobG9hZGVyKSk7CiAgICAgfQogCiAgICAgW3dlYlZpZXcgX3JlbW92ZU9iamVjdEZvcklk
ZW50aWZpZXI6aWRlbnRpZmllcl07CkBAIC02NTQsMjYgKzY1NCwyOCBAQCB2b2lkIFdlYkZyYW1l
TG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZENvbW1pdExvYWQoKQogCiB2b2lkIFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQoY29uc3QgUmVzb3VyY2VF
cnJvciYgZXJyb3IpCiB7CisgICAgTlNFcnJvciAqbnNFcnJvciA9IGVycm9yLm5zRXJyb3IoKTsK
ICAgICBXZWJWaWV3ICp3ZWJWaWV3ID0gZ2V0V2ViVmlldyhtX3dlYkZyYW1lLmdldCgpKTsgICAK
LSAgICBbd2ViVmlldyBfZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJvcjplcnJvciBmb3JG
cmFtZTptX3dlYkZyYW1lLmdldCgpXTsKKyAgICBbd2ViVmlldyBfZGlkRmFpbFByb3Zpc2lvbmFs
TG9hZFdpdGhFcnJvcjpuc0Vycm9yIGZvckZyYW1lOm1fd2ViRnJhbWUuZ2V0KCldOwogCiAgICAg
V2ViRnJhbWVMb2FkRGVsZWdhdGVJbXBsZW1lbnRhdGlvbkNhY2hlKiBpbXBsZW1lbnRhdGlvbnMg
PSBXZWJWaWV3R2V0RnJhbWVMb2FkRGVsZWdhdGVJbXBsZW1lbnRhdGlvbnMod2ViVmlldyk7CiAg
ICAgaWYgKGltcGxlbWVudGF0aW9ucy0+ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJvckZv
ckZyYW1lRnVuYykKLSAgICAgICAgQ2FsbEZyYW1lTG9hZERlbGVnYXRlKGltcGxlbWVudGF0aW9u
cy0+ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJvckZvckZyYW1lRnVuYywgd2ViVmlldywg
QHNlbGVjdG9yKHdlYlZpZXc6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJvcjpmb3JGcmFt
ZTopLCAoTlNFcnJvciAqKWVycm9yLCBtX3dlYkZyYW1lLmdldCgpKTsKKyAgICAgICAgQ2FsbEZy
YW1lTG9hZERlbGVnYXRlKGltcGxlbWVudGF0aW9ucy0+ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdp
dGhFcnJvckZvckZyYW1lRnVuYywgd2ViVmlldywgQHNlbGVjdG9yKHdlYlZpZXc6ZGlkRmFpbFBy
b3Zpc2lvbmFsTG9hZFdpdGhFcnJvcjpmb3JGcmFtZTopLCBuc0Vycm9yLCBtX3dlYkZyYW1lLmdl
dCgpKTsKIAotICAgIFttX3dlYkZyYW1lLT5fcHJpdmF0ZS0+aW50ZXJuYWxMb2FkRGVsZWdhdGUg
d2ViRnJhbWU6bV93ZWJGcmFtZS5nZXQoKSBkaWRGaW5pc2hMb2FkV2l0aEVycm9yOmVycm9yXTsK
KyAgICBbbV93ZWJGcmFtZS0+X3ByaXZhdGUtPmludGVybmFsTG9hZERlbGVnYXRlIHdlYkZyYW1l
Om1fd2ViRnJhbWUuZ2V0KCkgZGlkRmluaXNoTG9hZFdpdGhFcnJvcjpuc0Vycm9yXTsKIH0KIAog
dm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGYWlsTG9hZChjb25zdCBSZXNv
dXJjZUVycm9yJiBlcnJvcikKIHsKKyAgICBOU0Vycm9yICpuc0Vycm9yID0gZXJyb3IubnNFcnJv
cigpOwogICAgIFdlYlZpZXcgKndlYlZpZXcgPSBnZXRXZWJWaWV3KG1fd2ViRnJhbWUuZ2V0KCkp
OyAgIAotICAgIFt3ZWJWaWV3IF9kaWRGYWlsTG9hZFdpdGhFcnJvcjplcnJvciBmb3JGcmFtZTpt
X3dlYkZyYW1lLmdldCgpXTsKKyAgICBbd2ViVmlldyBfZGlkRmFpbExvYWRXaXRoRXJyb3I6bnNF
cnJvciBmb3JGcmFtZTptX3dlYkZyYW1lLmdldCgpXTsKIAogICAgIFdlYkZyYW1lTG9hZERlbGVn
YXRlSW1wbGVtZW50YXRpb25DYWNoZSogaW1wbGVtZW50YXRpb25zID0gV2ViVmlld0dldEZyYW1l
TG9hZERlbGVnYXRlSW1wbGVtZW50YXRpb25zKHdlYlZpZXcpOwogICAgIGlmIChpbXBsZW1lbnRh
dGlvbnMtPmRpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWVGdW5jKQotICAgICAgICBDYWxsRnJh
bWVMb2FkRGVsZWdhdGUoaW1wbGVtZW50YXRpb25zLT5kaWRGYWlsTG9hZFdpdGhFcnJvckZvckZy
YW1lRnVuYywgd2ViVmlldywgQHNlbGVjdG9yKHdlYlZpZXc6ZGlkRmFpbExvYWRXaXRoRXJyb3I6
Zm9yRnJhbWU6KSwgKE5TRXJyb3IgKillcnJvciwgbV93ZWJGcmFtZS5nZXQoKSk7CisgICAgICAg
IENhbGxGcmFtZUxvYWREZWxlZ2F0ZShpbXBsZW1lbnRhdGlvbnMtPmRpZEZhaWxMb2FkV2l0aEVy
cm9yRm9yRnJhbWVGdW5jLCB3ZWJWaWV3LCBAc2VsZWN0b3Iod2ViVmlldzpkaWRGYWlsTG9hZFdp
dGhFcnJvcjpmb3JGcmFtZTopLCBuc0Vycm9yLCBtX3dlYkZyYW1lLmdldCgpKTsKIAotICAgIFtt
X3dlYkZyYW1lLT5fcHJpdmF0ZS0+aW50ZXJuYWxMb2FkRGVsZWdhdGUgd2ViRnJhbWU6bV93ZWJG
cmFtZS5nZXQoKSBkaWRGaW5pc2hMb2FkV2l0aEVycm9yOmVycm9yXTsKKyAgICBbbV93ZWJGcmFt
ZS0+X3ByaXZhdGUtPmludGVybmFsTG9hZERlbGVnYXRlIHdlYkZyYW1lOm1fd2ViRnJhbWUuZ2V0
KCkgZGlkRmluaXNoTG9hZFdpdGhFcnJvcjpuc0Vycm9yXTsKIH0KIAogdm9pZCBXZWJGcmFtZUxv
YWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGaW5pc2hEb2N1bWVudExvYWQoKQpAQCAtNzg4LDcgKzc5
MCw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNhbmNlbFBvbGljeUNoZWNrKCkKIHZv
aWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoVW5hYmxlVG9JbXBsZW1lbnRQb2xpY3ko
Y29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiB7CiAgICAgV2ViVmlldyAqd2ViVmlldyA9IGdl
dFdlYlZpZXcobV93ZWJGcmFtZS5nZXQoKSk7Ci0gICAgW1t3ZWJWaWV3IF9wb2xpY3lEZWxlZ2F0
ZUZvcndhcmRlcl0gd2ViVmlldzp3ZWJWaWV3IHVuYWJsZVRvSW1wbGVtZW50UG9saWN5V2l0aEVy
cm9yOmVycm9yIGZyYW1lOm1fd2ViRnJhbWUuZ2V0KCldOyAgICAKKyAgICBbW3dlYlZpZXcgX3Bv
bGljeURlbGVnYXRlRm9yd2FyZGVyXSB3ZWJWaWV3OndlYlZpZXcgdW5hYmxlVG9JbXBsZW1lbnRQ
b2xpY3lXaXRoRXJyb3I6ZXJyb3IubnNFcnJvcigpIGZyYW1lOm1fd2ViRnJhbWUuZ2V0KCldOwog
fQogCiB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFdpbGxTdWJtaXRGb3JtKEZy
YW1lUG9saWN5RnVuY3Rpb24gZnVuY3Rpb24sIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiBmb3JtU3Rh
dGUpCkBAIC04MjEsNyArODIzLDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6cmV2ZXJ0
VG9Qcm92aXNpb25hbFN0YXRlKERvY3VtZW50TG9hZGVyKiBsb2FkZXIpCiAKIHZvaWQgV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OnNldE1haW5Eb2N1bWVudEVycm9yKERvY3VtZW50TG9hZGVyKiBsb2Fk
ZXIsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogewotICAgIFtkYXRhU291cmNlKGxvYWRl
cikgX3NldE1haW5Eb2N1bWVudEVycm9yOmVycm9yXTsKKyAgICBbZGF0YVNvdXJjZShsb2FkZXIp
IF9zZXRNYWluRG9jdW1lbnRFcnJvcjplcnJvci5uc0Vycm9yKCldOwogfQogCiB2b2lkIFdlYkZy
YW1lTG9hZGVyQ2xpZW50Ojp3aWxsQ2hhbmdlRXN0aW1hdGVkUHJvZ3Jlc3MoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJEYXRhU291cmNlLm1tIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJEYXRhU291cmNlLm1tCmluZGV4IDgxYTY4NjZiN2JiODFkMmJj
NzE2MDViMDc5MDFkZjVhYjIzY2Y0Y2QuLjg4OThmYTFlZDU2NjBiM2ZhMzk4YTE5YTI5YTU2Zjg4
ODJiNmI3NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRGF0YVNv
dXJjZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkRhdGFTb3VyY2UubW0K
QEAgLTE1Miw3ICsxNTIsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYWRkVHlwZXNGcm9tQ2xhc3Mo
TlNNdXRhYmxlRGljdGlvbmFyeSAqYWxsVHlwZXMsIENsYXNzIG9iakNDbAogCiAtIChOU0Vycm9y
ICopX21haW5Eb2N1bWVudEVycm9yCiB7Ci0gICAgcmV0dXJuIF9wcml2YXRlLT5sb2FkZXItPm1h
aW5Eb2N1bWVudEVycm9yKCk7CisgICAgcmV0dXJuIF9wcml2YXRlLT5sb2FkZXItPm1haW5Eb2N1
bWVudEVycm9yKCkubnNFcnJvcigpOwogfQogCiAtICh2b2lkKV9hZGRTdWJmcmFtZUFyY2hpdmVz
OihOU0FycmF5ICopc3ViZnJhbWVBcmNoaXZlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJGcmFtZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJh
bWUubW0KaW5kZXggZDQwZjQ0ZTlmZjQzNTdiMjZjYTY3OGQzYWNmZGJmMmJkOTBlNDIxNS4uYzEx
MDQ4NTdjYzc1NzdhMGE3NzVkMmYyNmI3ZTE3NjIzNDgxNDM1MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYkZyYW1lLm1tCkBAIC0xMTUzLDcgKzExNTMsNyBAQCBzdGF0aWMgaW5saW5lIFdl
YkRhdGFTb3VyY2UgKmRhdGFTb3VyY2UoRG9jdW1lbnRMb2FkZXIqIGxvYWRlcikKICAgICBGcmFt
ZUxvYWRlciogZnJhbWVMb2FkZXIgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lLT5sb2FkZXIoKTsKICAg
ICBEb2N1bWVudExvYWRlciogZG9jdW1lbnRMb2FkZXIgPSBmcmFtZUxvYWRlci0+ZG9jdW1lbnRM
b2FkZXIoKTsKICAgICBpZiAoZG9jdW1lbnRMb2FkZXIgJiYgIWRvY3VtZW50TG9hZGVyLT5tYWlu
RG9jdW1lbnRFcnJvcigpLmlzTnVsbCgpKQotICAgICAgICBbcmVzdWx0IHNldE9iamVjdDooTlNF
cnJvciAqKWRvY3VtZW50TG9hZGVyLT5tYWluRG9jdW1lbnRFcnJvcigpIGZvcktleTpXZWJGcmFt
ZU1haW5Eb2N1bWVudEVycm9yXTsKKyAgICAgICAgW3Jlc3VsdCBzZXRPYmplY3Q6ZG9jdW1lbnRM
b2FkZXItPm1haW5Eb2N1bWVudEVycm9yKCkubnNFcnJvcigpIGZvcktleTpXZWJGcmFtZU1haW5E
b2N1bWVudEVycm9yXTsKICAgICAgICAgCiAgICAgaWYgKGZyYW1lTG9hZGVyLT5zdWJmcmFtZUxv
YWRlcigpLT5jb250YWluc1BsdWdpbnMoKSkKICAgICAgICAgW3Jlc3VsdCBzZXRPYmplY3Q6W05T
TnVtYmVyIG51bWJlcldpdGhCb29sOllFU10gZm9yS2V5OldlYkZyYW1lSGFzUGx1Z2luc107Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98239</attachid>
            <date>2011-06-22 14:11:04 -0700</date>
            <delta_ts>2011-06-22 17:30:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-63155-20110622141102.patch</filename>
            <type>text/plain</type>
            <size>4325</size>
            <attacher name="Pratik Solanki">psolanki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODkzODQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhYTQ2ZTc1ZDUyZDFkOTdk
ZTEzZTg5OTVjNmNkNjY0NDMzNTc5ZGYxLi5iNzM4MTQ5ODY1N2M5MDQ5MWM5Yzg1ZTNlODVjZjFj
YWE4ZjJkMTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTEtMDYtMjIgIFByYXRp
ayBTb2xhbmtpICA8cHNvbGFua2lAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBOU0Vycm9yIHdyYXBwZXIgZnVuY3Rpb25zIGlu
IFJlc291cmNlRXJyb3Igd2hlbiBVU0UoQ0ZORVRXT1JLKSBpcyBlbmFibGVkCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MzE1NQorCisgICAgICAgIEFk
ZCB3cmFwcGVyIGZ1bmN0aW9ucyB0byBSZXNvdXJjZUVycm9yIHdoZW4gYnVpbGRpbmcgd2l0aCBV
U0UoQ0ZORVRXT1JLKS4gV2UgbmVlZCB0byBjcmVhdGUKKyAgICAgICAgYSBuZXcgTlNFcnJvciBp
biBSZXNvdXJjZUVycm9yOjpuc0Vycm9yKCkgc2luY2UgU2FmYXJpIGhhcyBjYXRlZ29yeSBtZXRo
b2RzIG9uIE5TRXJyb3IgYW5kCisgICAgICAgIHBhc3NpbmcgYSBDRkVycm9yUmVmIGJhY2sgZG9l
cyBub3Qgd29yayBldmVuIHRob3VnaCBDRkVycm9yUmVmL05TRXJycm9yIGFyZSB0b2xsLWZyZWUK
KyAgICAgICAgYnJpZGdlZC4KKworICAgICAgICBObyB0ZXN0cyBiZWNhdXNlIG5vIGNoYW5nZSBp
biBmdW5jdGlvbmFsaXR5LgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICog
cGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUVycm9yLmg6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9tYWMvUmVzb3VyY2VFcnJvck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlRXJyb3I6OlJlc291cmNlRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VFcnJv
cjo6bnNFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUVycm9yOjpvcGVyYXRvciBO
U0Vycm9yICopOgorCiAyMDExLTA2LTIxICBNYXJrIFBpbGdyaW0gIDxwaWxncmltQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgppbmRleCA3YjhiN2RlYzlmNGU4NjNkYjk1YjQ2ZGYyYzg4NzZhNDA0MzFhNWU1Li5jNWM4NDM5
MzNlOWE3MzkyMmE3NDg3NjE0Y2U5YWI4ZDM4Y2Y0MmM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpA
QCAtMTkwNyw3ICsxOTA3LDkgQEAgX19aTjdXZWJDb3JlOFNldHRpbmdzMjBnQVZGb3VuZGF0aW9u
RW5hYmxlZEUKICNlbmRpZgogCiAjaWYgVVNFKENGTkVUV09SSykKK19fWk5LN1dlYkNvcmUxM1Jl
c291cmNlRXJyb3JjdlA5X19DRkVycm9yRXYKIF9fWk43V2ViQ29yZTEyU2NoZWR1bGVQYWlyQzFF
UDExX19DRlJ1bkxvb3BQSzEwX19DRlN0cmluZwogI2Vsc2UKK19fWk5LN1dlYkNvcmUxM1Jlc291
cmNlRXJyb3JjdlA3TlNFcnJvckV2CiBfX1pON1dlYkNvcmUxMlNjaGVkdWxlUGFpckMxRVA5TlNS
dW5Mb29wUEsxMF9fQ0ZTdHJpbmcKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUVycm9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlRXJyb3IuaAppbmRleCBkMzY5MDNmMTRhZDgwNGUxYzhi
YmVjYmVjODRhMTE4OTBlNzBkM2E3Li5hNDY4NWY3NTc3NzVmM2YyZDMyMGM3OGFhYThjZGY2YzNj
ZjU4ZTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jl
c291cmNlRXJyb3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jl
c291cmNlRXJyb3IuaApAQCAtMzEsMTQgKzMxLDEzIEBACiAjaW5jbHVkZSA8d3RmL1JldGFpblB0
ci5oPgogI2lmIFVTRShDRk5FVFdPUkspCiAjaW5jbHVkZSA8Q29yZUZvdW5kYXRpb24vQ0ZTdHJl
YW0uaD4KLSNlbHNlCisjZW5kaWYKIAogI2lmZGVmIF9fT0JKQ19fCiBAY2xhc3MgTlNFcnJvcjsK
ICNlbHNlCiBjbGFzcyBOU0Vycm9yOwogI2VuZGlmCi0jZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCkBAIC02OCw3ICs2Nyw5IEBAIHB1YmxpYzoKICAgICBSZXNvdXJjZUVycm9yKENGU3Ry
ZWFtRXJyb3IgZXJyb3IpOwogICAgIENGU3RyZWFtRXJyb3IgY2ZTdHJlYW1FcnJvcigpIGNvbnN0
OwogICAgIG9wZXJhdG9yIENGU3RyZWFtRXJyb3IoKSBjb25zdDsKLSNlbHNlCisjZW5kaWYKKwor
I2lmIFBMQVRGT1JNKE1BQykKICAgICBSZXNvdXJjZUVycm9yKE5TRXJyb3IgKik7CiAgICAgTlNF
cnJvciAqbnNFcnJvcigpIGNvbnN0OwogICAgIG9wZXJhdG9yIE5TRXJyb3IgKigpIGNvbnN0OwpA
QCAtODQsNiArODUsOSBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9kYXRhSXNVcFRvRGF0ZTsKICNp
ZiBVU0UoQ0ZORVRXT1JLKQogICAgIG11dGFibGUgUmV0YWluUHRyPENGRXJyb3JSZWY+IG1fcGxh
dGZvcm1FcnJvcjsKKyNpZiBQTEFURk9STShNQUMpCisgICAgbXV0YWJsZSBSZXRhaW5QdHI8TlNF
cnJvcj4gbV9wbGF0Zm9ybU5TRXJyb3I7CisjZW5kaWYKICNpZiBQTEFURk9STShXSU4pCiAgICAg
UmV0YWluUHRyPENGRGF0YVJlZj4gbV9jZXJ0aWZpY2F0ZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VFcnJvck1hYy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlRXJyb3JNYWMubW0K
aW5kZXggMGJhZGExZjMyOWYyZWU0ZGQyM2UxMGIxMzJiYjFhNWMzNzNhMDQxOC4uZDNkMWE1M2Ew
MTkwMmMzNDdiOWYzNGZmMzdkYmM2YmM5OGZkNjc0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VFcnJvck1hYy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUVycm9yTWFjLm1tCkBAIC0zNyw2
ICszNywzNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKKyNpZiBVU0UoQ0ZORVRXT1JLKQor
CitSZXNvdXJjZUVycm9yOjpSZXNvdXJjZUVycm9yKE5TRXJyb3IgKmVycm9yKQorICAgIDogbV9k
YXRhSXNVcFRvRGF0ZShmYWxzZSkKKyAgICAsIG1fcGxhdGZvcm1FcnJvcihyZWludGVycHJldF9j
YXN0PENGRXJyb3JSZWY+KGVycm9yKSkKK3sKKyAgICBtX2lzTnVsbCA9ICFlcnJvcjsKK30KKwor
TlNFcnJvciAqUmVzb3VyY2VFcnJvcjo6bnNFcnJvcigpIGNvbnN0Cit7CisgICAgaWYgKG1faXNO
dWxsKSB7CisgICAgICAgIEFTU0VSVCghbV9wbGF0Zm9ybUVycm9yKTsKKyAgICAgICAgcmV0dXJu
IG5pbDsKKyAgICB9CisgICAgaWYgKCFtX3BsYXRmb3JtTlNFcnJvcikgeworICAgICAgICBDRkVy
cm9yUmVmIGVycm9yID0gbV9wbGF0Zm9ybUVycm9yLmdldCgpOworICAgICAgICBSZXRhaW5QdHI8
TlNEaWN0aW9uYXJ5PiB1c2VySW5mbyhBZG9wdENGLCAoTlNEaWN0aW9uYXJ5ICopIENGRXJyb3JD
b3B5VXNlckluZm8oZXJyb3IpKTsKKyAgICAgICAgbV9wbGF0Zm9ybU5TRXJyb3IuYWRvcHROUyhb
W05TRXJyb3IgYWxsb2NdIGluaXRXaXRoRG9tYWluOihOU1N0cmluZyopQ0ZFcnJvckdldERvbWFp
bihlcnJvcikgY29kZTpDRkVycm9yR2V0Q29kZShlcnJvcikgdXNlckluZm86dXNlckluZm8uZ2V0
KCldKTsKKyAgICB9CisgICAgcmV0dXJuIG1fcGxhdGZvcm1OU0Vycm9yLmdldCgpOworfQorCitS
ZXNvdXJjZUVycm9yOjpvcGVyYXRvciBOU0Vycm9yICooKSBjb25zdAoreworICAgIHJldHVybiBu
c0Vycm9yKCk7Cit9CisKKyNlbHNlCisKIFJlc291cmNlRXJyb3I6OlJlc291cmNlRXJyb3IoTlNF
cnJvciAqbnNFcnJvcikKICAgICA6IG1fZGF0YUlzVXBUb0RhdGUoZmFsc2UpCiAgICAgLCBtX3Bs
YXRmb3JtRXJyb3IobnNFcnJvcikKQEAgLTExNyw0ICsxNDcsNiBAQCBSZXNvdXJjZUVycm9yOjpv
cGVyYXRvciBDRkVycm9yUmVmKCkgY29uc3QKICAgICByZXR1cm4gY2ZFcnJvcigpOwogfQogCisj
ZW5kaWYgLy8gVVNFKENGTkVUV09SSykKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>
<flag name="review"
          id="92409"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>