<?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>60066</bug_id>
          
          <creation_ts>2011-05-03 14:44:49 -0700</creation_ts>
          <short_desc>[chromium] Go through WebPermissionClient for local storage access.  Also cleanup left over code from previous WebPermissionClient change.</short_desc>
          <delta_ts>2011-05-03 19:09:09 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="John Abd-El-Malek">jam</reporter>
          <assigned_to name="John Abd-El-Malek">jam</assigned_to>
          <cc>abarth</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>397403</commentid>
    <comment_count>0</comment_count>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-05-03 14:44:49 -0700</bug_when>
    <thetext>[chromium] Go through WebPermissionClient for local storage access.  Also cleanup left over code from previous WebPermissionClient change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>397408</commentid>
    <comment_count>1</comment_count>
      <attachid>92137</attachid>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-05-03 14:49:37 -0700</bug_when>
    <thetext>Created attachment 92137
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>397410</commentid>
    <comment_count>2</comment_count>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-05-03 14:53:06 -0700</bug_when>
    <thetext>ccing Darin since it&apos;s WebKit API, although I don&apos;t think we need to wait for his ok for this since it&apos;s just adding a similar function to an API he just reviewed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>397412</commentid>
    <comment_count>3</comment_count>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-05-03 14:54:09 -0700</bug_when>
    <thetext>chrome side change: http://codereview.chromium.org/6915017/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>397423</commentid>
    <comment_count>4</comment_count>
      <attachid>92137</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-05-03 15:07:03 -0700</bug_when>
    <thetext>Comment on attachment 92137
Patch

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

&gt; Source/WebKit/chromium/public/WebPermissionClient.h:49
&gt; +    virtual bool allowLocalStorage(WebFrame*, const WebURL&amp;) { return true; }

the URL can be generated from the WebFrame, so it&apos;s redundant here

&gt; Source/WebKit/chromium/src/StorageAreaProxy.cpp:89
&gt; +    if (webView-&gt;permissionClient()
&gt; +        &amp;&amp; !webView-&gt;permissionClient()-&gt;allowLocalStorage(webFrame, url)) {

nit: don&apos;t line wrap this</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>397506</commentid>
    <comment_count>5</comment_count>
      <attachid>92137</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-05-03 16:20:46 -0700</bug_when>
    <thetext>Comment on attachment 92137
Patch

According to Dr Barth the allowLocalStorage() implementation should be using securityOrigin() and not URL.  There are case where the two can differ and we definitely don&apos;t want to let a page get around the user&apos;s local storage settings by faking out the url.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>397517</commentid>
    <comment_count>6</comment_count>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-05-03 16:28:43 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 92137 [details])
&gt; According to Dr Barth the allowLocalStorage() implementation should be using securityOrigin() and not URL.  There are case where the two can differ and we definitely don&apos;t want to let a page get around the user&apos;s local storage settings by faking out the url.


So the old code was calling frame-&gt;document()-&gt;url(), hence why I moved it to do the same.  Does securityOrigin() return the whole url, or only scheme+host+port?  If it&apos;s the latter, then that wouldn&apos;t work if the user has a content setting for a url that has path for example.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>397596</commentid>
    <comment_count>7</comment_count>
      <attachid>92179</attachid>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-05-03 18:04:33 -0700</bug_when>
    <thetext>Created attachment 92179
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>397601</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-05-03 18:12:35 -0700</bug_when>
    <thetext>&gt; So the old code was calling frame-&gt;document()-&gt;url(), hence why I moved it to do the same.  Does securityOrigin() return the whole url, or only scheme+host+port?  If it&apos;s the latter, then that wouldn&apos;t work if the user has a content setting for a url that has path for example.

Security restrictions at a finer granularity than a scheme+host+port don&apos;t work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>397611</commentid>
    <comment_count>9</comment_count>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-05-03 18:33:57 -0700</bug_when>
    <thetext>ok so I tried to set content settings policies for a url with a path, and that didn&apos;t work.  so it looks like it&apos;s just for hostnames then, in which case using securityOrigin should be fine.  however, that should be done in a separate cl, in case that has any side-effects.  this change has others that depend on it, and once they&apos;re committed, reverting this won&apos;t be possible without reverting the chorme side.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>397614</commentid>
    <comment_count>10</comment_count>
      <attachid>92179</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-05-03 18:43:28 -0700</bug_when>
    <thetext>Comment on attachment 92179
Patch

R=me. I agree that changing the url/securityOrigin behavior should be a separate patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>397620</commentid>
    <comment_count>11</comment_count>
      <attachid>92182</attachid>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-05-03 18:52:36 -0700</bug_when>
    <thetext>Created attachment 92182
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>397622</commentid>
    <comment_count>12</comment_count>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-05-03 18:53:39 -0700</bug_when>
    <thetext>I filed bug 60108 for the url issue.

i updated the patch to include the chromium revision with the chrome side change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>397626</commentid>
    <comment_count>13</comment_count>
      <attachid>92184</attachid>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-05-03 19:03:35 -0700</bug_when>
    <thetext>Created attachment 92184
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>397630</commentid>
    <comment_count>14</comment_count>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-05-03 19:09:09 -0700</bug_when>
    <thetext>Committed r85703: &lt;http://trac.webkit.org/changeset/85703&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92137</attachid>
            <date>2011-05-03 14:49:37 -0700</date>
            <delta_ts>2011-05-03 18:04:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-60066-20110503144816.patch</filename>
            <type>text/plain</type>
            <size>8842</size>
            <attacher name="John Abd-El-Malek">jam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA4NTY2MykKKysrIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjUg
QEAKKzIwMTEtMDUtMDMgIEpvaG4gQWJkLUVsLU1hbGVrICA8amFtQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbY2hyb21pdW1d
IEdvIHRocm91Z2ggV2ViUGVybWlzc2lvbkNsaWVudCBmb3IgbG9jYWwgc3RvcmFnZSBhY2Nlc3Mu
ICBBbHNvIGNsZWFudXAgbGVmdCBvdmVyIGNvZGUgZnJvbSBwcmV2aW91cyBXZWJQZXJtaXNzaW9u
Q2xpZW50IGNoYW5nZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTYwMDY2CisKKyAgICAgICAgKiBwdWJsaWMvV2ViRnJhbWVDbGllbnQuaDoKKyAgICAg
ICAgKiBwdWJsaWMvV2ViUGVybWlzc2lvbkNsaWVudC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
ZXJtaXNzaW9uQ2xpZW50OjphbGxvd0xvY2FsU3RvcmFnZSk6CisgICAgICAgICogc3JjL0RhdGFi
YXNlT2JzZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VPYnNlcnZlcjo6Y2Fu
RXN0YWJsaXNoRGF0YWJhc2UpOgorICAgICAgICAqIHNyYy9GcmFtZUxvYWRlckNsaWVudEltcGwu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudEltcGw6OmFsbG93U2NyaXB0
RXh0ZW5zaW9uKToKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnRJbXBsOjphbGxv
d0phdmFTY3JpcHQpOgorICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudEltcGw6OmFs
bG93UGx1Z2lucyk6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6YWxs
b3dJbWFnZXMpOgorICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudEltcGw6OmRpZE5v
dEFsbG93U2NyaXB0KToKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnRJbXBsOjpk
aWROb3RBbGxvd1BsdWdpbnMpOgorICAgICAgICAqIHNyYy9TdG9yYWdlQXJlYVByb3h5LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VBcmVhUHJveHk6OnNldEl0ZW0pOgorCiAyMDExLTA1
LTAzICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCwgcm9sbGluZyB0aGUgdmVyc2lvbiBvZiBjaHJvbWl1bSB0byByODM5MjIuCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZUNsaWVudC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lQ2xpZW50LmgJKHJldmlzaW9u
IDg1NjQ3KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWVDbGllbnQu
aAkod29ya2luZyBjb3B5KQpAQCAtMjk0LDE1ICsyOTQsNiBAQCBwdWJsaWM6CiAgICAgLy8gc2Ny
aXB0cy4KICAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlSXNvbGF0ZWRTY3JpcHRDb250ZXh0KFdl
YkZyYW1lKikgeyB9CiAKLSAgICAvLyBGSVhNRShqYW0pOiByZW1vdmUgbWUgb25jZSBDaHJvbWUn
cyBXZWJLaXQgaXMgcm9sbGVkLgotICAgIHZpcnR1YWwgYm9vbCBhbGxvd1BsdWdpbnMoV2ViRnJh
bWUqLCBib29sIGVuYWJsZWRQZXJTZXR0aW5ncykgeyByZXR1cm4gZW5hYmxlZFBlclNldHRpbmdz
OyB9Ci0gICAgdmlydHVhbCB2b2lkIGRpZE5vdEFsbG93UGx1Z2lucyhXZWJGcmFtZSopIHsgfQot
ICAgIHZpcnR1YWwgYm9vbCBhbGxvd0ltYWdlcyhXZWJGcmFtZSosIGJvb2wgZW5hYmxlZFBlclNl
dHRpbmdzKSB7IHJldHVybiBlbmFibGVkUGVyU2V0dGluZ3M7IH0KLSAgICB2aXJ0dWFsIGJvb2wg
YWxsb3dTY3JpcHQoV2ViRnJhbWUqLCBib29sIGVuYWJsZWRQZXJTZXR0aW5ncykgeyByZXR1cm4g
ZW5hYmxlZFBlclNldHRpbmdzOyB9Ci0gICAgdmlydHVhbCBib29sIGFsbG93RGF0YWJhc2UoV2Vi
RnJhbWUqLCBjb25zdCBXZWJTdHJpbmcmIG5hbWUsIGNvbnN0IFdlYlN0cmluZyYgZGlzcGxheU5h
bWUsIHVuc2lnbmVkIGxvbmcgZXN0aW1hdGVkU2l6ZSkgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZp
cnR1YWwgdm9pZCBkaWROb3RBbGxvd1NjcmlwdChXZWJGcmFtZSopIHsgfQotICAgIHZpcnR1YWwg
Ym9vbCBhbGxvd1NjcmlwdEV4dGVuc2lvbihXZWJGcmFtZSosIGNvbnN0IFdlYlN0cmluZyYgZXh0
ZW5zaW9uTmFtZSwgaW50IGV4dGVuc2lvbkdyb3VwKSB7IHJldHVybiB0cnVlOyB9Ci0KIAogICAg
IC8vIEdlb21ldHJ5IG5vdGlmaWNhdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJQZXJtaXNzaW9uQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViUGVybWlzc2lvbkNsaWVudC5oCShyZXZpc2lvbiA4NTY0NykKKysrIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBlcm1pc3Npb25DbGllbnQuaAkod29ya2luZyBj
b3B5KQpAQCAtMzUsNiArMzUsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViRnJh
bWU7CiBjbGFzcyBXZWJTdHJpbmc7CitjbGFzcyBXZWJVUkw7CiAKIGNsYXNzIFdlYlBlcm1pc3Np
b25DbGllbnQgewogcHVibGljOgpAQCAtNDQsNiArNDUsOSBAQCBwdWJsaWM6CiAgICAgLy8gQ29u
dHJvbHMgd2hldGhlciBpbWFnZXMgYXJlIGFsbG93ZWQgZm9yIHRoaXMgZnJhbWUuCiAgICAgdmly
dHVhbCBib29sIGFsbG93SW1hZ2VzKFdlYkZyYW1lKiwgYm9vbCBlbmFibGVkUGVyU2V0dGluZ3Mp
IHsgcmV0dXJuIGVuYWJsZWRQZXJTZXR0aW5nczsgfQogCisgICAgLy8gQ29udHJvbHMgd2hldGhl
ciBIVE1MNSBMb2NhbCBTdG9yYWdlIGlzIGFsbG93ZWQgZm9yIHRoaXMgZnJhbWUuCisgICAgdmly
dHVhbCBib29sIGFsbG93TG9jYWxTdG9yYWdlKFdlYkZyYW1lKiwgY29uc3QgV2ViVVJMJikgeyBy
ZXR1cm4gdHJ1ZTsgfQorCiAgICAgLy8gQ29udHJvbHMgd2hldGhlciBwbHVnaW5zIGFyZSBhbGxv
d2VkIGZvciB0aGlzIGZyYW1lLgogICAgIHZpcnR1YWwgYm9vbCBhbGxvd1BsdWdpbnMoV2ViRnJh
bWUqLCBib29sIGVuYWJsZWRQZXJTZXR0aW5ncykgeyByZXR1cm4gZW5hYmxlZFBlclNldHRpbmdz
OyB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0RhdGFiYXNlT2JzZXJ2ZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0RhdGFiYXNlT2Jz
ZXJ2ZXIuY3BwCShyZXZpc2lvbiA4NTY0NykKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0RhdGFiYXNlT2JzZXJ2ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MSw4ICs2MSw2IEBAIGJv
b2wgRGF0YWJhc2VPYnNlcnZlcjo6Y2FuRXN0YWJsaXNoRGF0YWIKICAgICAgICAgV2ViVmlld0lt
cGwqIHdlYlZpZXcgPSB3ZWJGcmFtZS0+dmlld0ltcGwoKTsKICAgICAgICAgaWYgKHdlYlZpZXct
PnBlcm1pc3Npb25DbGllbnQoKSkKICAgICAgICAgICAgIHJldHVybiB3ZWJWaWV3LT5wZXJtaXNz
aW9uQ2xpZW50KCktPmFsbG93RGF0YWJhc2Uod2ViRnJhbWUsIG5hbWUsIGRpc3BsYXlOYW1lLCBl
c3RpbWF0ZWRTaXplKTsKLSAgICAgICAgLy8gRklYTUUoamFtKTogcmVtb3ZlIHRoaXMuCi0gICAg
ICAgIHJldHVybiB3ZWJGcmFtZS0+Y2xpZW50KCktPmFsbG93RGF0YWJhc2Uod2ViRnJhbWUsIG5h
bWUsIGRpc3BsYXlOYW1lLCBlc3RpbWF0ZWRTaXplKTsKICAgICB9IGVsc2UgewogICAgICAgICBX
b3JrZXJDb250ZXh0KiB3b3JrZXJDb250ZXh0ID0gc3RhdGljX2Nhc3Q8V29ya2VyQ29udGV4dCo+
KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwogICAgICAgICBXb3JrZXJMb2FkZXJQcm94eSogd29y
a2VyTG9hZGVyUHJveHkgPSAmd29ya2VyQ29udGV4dC0+dGhyZWFkKCktPndvcmtlckxvYWRlclBy
b3h5KCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVu
dEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1l
TG9hZGVyQ2xpZW50SW1wbC5jcHAJKHJldmlzaW9uIDg1NjQ3KQorKysgU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTU4LDEwICsxNTgsNiBAQCBib29sIEZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6YWxsb3dTY3JpcHRF
CiAgICAgaWYgKHdlYnZpZXcgJiYgd2Vidmlldy0+cGVybWlzc2lvbkNsaWVudCgpKQogICAgICAg
ICByZXR1cm4gd2Vidmlldy0+cGVybWlzc2lvbkNsaWVudCgpLT5hbGxvd1NjcmlwdEV4dGVuc2lv
bihtX3dlYkZyYW1lLCBleHRlbnNpb25OYW1lLCBleHRlbnNpb25Hcm91cCk7CiAKLSAgICAvLyBG
SVhNRShqYW0pOiByZW1vdmUgdGhpcy4KLSAgICBpZiAobV93ZWJGcmFtZS0+Y2xpZW50KCkpCi0g
ICAgICAgIHJldHVybiBtX3dlYkZyYW1lLT5jbGllbnQoKS0+YWxsb3dTY3JpcHRFeHRlbnNpb24o
bV93ZWJGcmFtZSwgZXh0ZW5zaW9uTmFtZSwgZXh0ZW5zaW9uR3JvdXApOwotCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKQEAgLTE4NSwxMCArMTgxLDYgQEAgYm9vbCBGcmFtZUxvYWRlckNsaWVudElt
cGw6OmFsbG93SmF2YVNjcgogICAgIGlmICh3ZWJ2aWV3ICYmIHdlYnZpZXctPnBlcm1pc3Npb25D
bGllbnQoKSkKICAgICAgICAgcmV0dXJuIHdlYnZpZXctPnBlcm1pc3Npb25DbGllbnQoKS0+YWxs
b3dTY3JpcHQobV93ZWJGcmFtZSwgZW5hYmxlZFBlclNldHRpbmdzKTsKIAotICAgIC8vIEZJWE1F
KGphbSk6IHJlbW92ZSB0aGlzLgotICAgIGlmIChtX3dlYkZyYW1lLT5jbGllbnQoKSkKLSAgICAg
ICAgcmV0dXJuIG1fd2ViRnJhbWUtPmNsaWVudCgpLT5hbGxvd1NjcmlwdChtX3dlYkZyYW1lLCBl
bmFibGVkUGVyU2V0dGluZ3MpOwotCiAgICAgcmV0dXJuIGVuYWJsZWRQZXJTZXR0aW5nczsKIH0K
IApAQCAtMTk4LDEwICsxOTAsNiBAQCBib29sIEZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6YWxsb3dQ
bHVnaW5zCiAgICAgaWYgKHdlYnZpZXcgJiYgd2Vidmlldy0+cGVybWlzc2lvbkNsaWVudCgpKQog
ICAgICAgICByZXR1cm4gd2Vidmlldy0+cGVybWlzc2lvbkNsaWVudCgpLT5hbGxvd1BsdWdpbnMo
bV93ZWJGcmFtZSwgZW5hYmxlZFBlclNldHRpbmdzKTsKIAotICAgIC8vIEZJWE1FKGphbSk6IHJl
bW92ZSB0aGlzLgotICAgIGlmIChtX3dlYkZyYW1lLT5jbGllbnQoKSkKLSAgICAgICAgcmV0dXJu
IG1fd2ViRnJhbWUtPmNsaWVudCgpLT5hbGxvd1BsdWdpbnMobV93ZWJGcmFtZSwgZW5hYmxlZFBl
clNldHRpbmdzKTsKLQogICAgIHJldHVybiBlbmFibGVkUGVyU2V0dGluZ3M7CiB9CiAKQEAgLTIx
MSwxMCArMTk5LDYgQEAgYm9vbCBGcmFtZUxvYWRlckNsaWVudEltcGw6OmFsbG93SW1hZ2VzKAog
ICAgIGlmICh3ZWJ2aWV3ICYmIHdlYnZpZXctPnBlcm1pc3Npb25DbGllbnQoKSkKICAgICAgICAg
cmV0dXJuIHdlYnZpZXctPnBlcm1pc3Npb25DbGllbnQoKS0+YWxsb3dJbWFnZXMobV93ZWJGcmFt
ZSwgZW5hYmxlZFBlclNldHRpbmdzKTsKIAotICAgIC8vIEZJWE1FKGphbSk6IHJlbW92ZSB0aGlz
LgotICAgIGlmIChtX3dlYkZyYW1lLT5jbGllbnQoKSkKLSAgICAgICAgcmV0dXJuIG1fd2ViRnJh
bWUtPmNsaWVudCgpLT5hbGxvd0ltYWdlcyhtX3dlYkZyYW1lLCBlbmFibGVkUGVyU2V0dGluZ3Mp
OwotCiAgICAgcmV0dXJuIGVuYWJsZWRQZXJTZXR0aW5nczsKIH0KIApAQCAtMjIzLDEwICsyMDcs
NiBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6ZGlkTm90QWxsb3dTCiAgICAgV2ViVmll
d0ltcGwqIHdlYnZpZXcgPSBtX3dlYkZyYW1lLT52aWV3SW1wbCgpOwogICAgIGlmICh3ZWJ2aWV3
ICYmIHdlYnZpZXctPnBlcm1pc3Npb25DbGllbnQoKSkKICAgICAgICAgd2Vidmlldy0+cGVybWlz
c2lvbkNsaWVudCgpLT5kaWROb3RBbGxvd1NjcmlwdChtX3dlYkZyYW1lKTsKLQotICAgIC8vIEZJ
WE1FKGphbSk6IHJlbW92ZSB0aGlzLgotICAgIGlmIChtX3dlYkZyYW1lLT5jbGllbnQoKSkKLSAg
ICAgICAgbV93ZWJGcmFtZS0+Y2xpZW50KCktPmRpZE5vdEFsbG93U2NyaXB0KG1fd2ViRnJhbWUp
OwogfQogCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6ZGlkTm90QWxsb3dQbHVnaW5zKCkK
QEAgLTIzNSw5ICsyMTUsNiBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6ZGlkTm90QWxs
b3dQCiAgICAgaWYgKHdlYnZpZXcgJiYgd2Vidmlldy0+cGVybWlzc2lvbkNsaWVudCgpKQogICAg
ICAgICB3ZWJ2aWV3LT5wZXJtaXNzaW9uQ2xpZW50KCktPmRpZE5vdEFsbG93UGx1Z2lucyhtX3dl
YkZyYW1lKTsKIAotICAgIC8vIEZJWE1FKGphbSk6IHJlbW92ZSB0aGlzLgotICAgIGlmIChtX3dl
YkZyYW1lLT5jbGllbnQoKSkKLSAgICAgICAgbV93ZWJGcmFtZS0+Y2xpZW50KCktPmRpZE5vdEFs
bG93UGx1Z2lucyhtX3dlYkZyYW1lKTsKIH0KIAogYm9vbCBGcmFtZUxvYWRlckNsaWVudEltcGw6
Omhhc1dlYlZpZXcoKSBjb25zdApJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvU3Rv
cmFnZUFyZWFQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvU3RvcmFnZUFyZWFQcm94eS5jcHAJKHJldmlzaW9uIDg1NjQ3KQorKysgU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvU3RvcmFnZUFyZWFQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1
LDkgKzQ1LDExIEBACiAjaW5jbHVkZSAiU3RvcmFnZUV2ZW50LmgiCiAKICNpbmNsdWRlICJXZWJG
cmFtZUltcGwuaCIKKyNpbmNsdWRlICJXZWJQZXJtaXNzaW9uQ2xpZW50LmgiCiAjaW5jbHVkZSAi
V2ViU3RvcmFnZUFyZWEuaCIKICNpbmNsdWRlICJXZWJTdHJpbmcuaCIKICNpbmNsdWRlICJXZWJV
UkwuaCIKKyNpbmNsdWRlICJXZWJWaWV3SW1wbC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
QEAgLTgwLDEyICs4MiwxOSBAQCBTdHJpbmcgU3RvcmFnZUFyZWFQcm94eTo6c2V0SXRlbShjb25z
dCBTCiB7CiAgICAgV2ViS2l0OjpXZWJTdG9yYWdlQXJlYTo6UmVzdWx0IHJlc3VsdCA9IFdlYktp
dDo6V2ViU3RvcmFnZUFyZWE6OlJlc3VsdE9LOwogICAgIFdlYktpdDo6V2ViU3RyaW5nIG9sZFZh
bHVlOwotICAgIFdlYktpdDo6V2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViS2l0OjpXZWJGcmFtZUlt
cGw6OmZyb21GcmFtZShmcmFtZSk7Ci0gICAgbV9zdG9yYWdlQXJlYS0+c2V0SXRlbShrZXksIHZh
bHVlLCBmcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCksIHJlc3VsdCwgb2xkVmFsdWUsIHdlYkZyYW1l
KTsKLSAgICBlYyA9IChyZXN1bHQgPT0gV2ViS2l0OjpXZWJTdG9yYWdlQXJlYTo6UmVzdWx0T0sp
ID8gMCA6IFFVT1RBX0VYQ0VFREVEX0VSUjsKLSAgICBTdHJpbmcgb2xkVmFsdWVTdHJpbmcgPSBv
bGRWYWx1ZTsKLSAgICBpZiAob2xkVmFsdWVTdHJpbmcgIT0gdmFsdWUgJiYgcmVzdWx0ID09IFdl
YktpdDo6V2ViU3RvcmFnZUFyZWE6OlJlc3VsdE9LKQotICAgICAgICBzdG9yYWdlRXZlbnQoa2V5
LCBvbGRWYWx1ZSwgdmFsdWUsIG1fc3RvcmFnZVR5cGUsIGZyYW1lLT5kb2N1bWVudCgpLT5zZWN1
cml0eU9yaWdpbigpLCBmcmFtZSk7CisgICAgV2ViS2l0OjpXZWJGcmFtZUltcGwqIHdlYkZyYW1l
ID0gV2ViS2l0OjpXZWJGcmFtZUltcGw6OmZyb21GcmFtZShmcmFtZSk7CisgICAgV2ViS2l0OjpX
ZWJWaWV3SW1wbCogd2ViVmlldyA9IHdlYkZyYW1lLT52aWV3SW1wbCgpOworICAgIFdlYktpdDo6
V2ViVVJMIHVybCA9IGZyYW1lLT5kb2N1bWVudCgpLT51cmwoKTsKKyAgICBpZiAod2ViVmlldy0+
cGVybWlzc2lvbkNsaWVudCgpCisgICAgICAgICYmICF3ZWJWaWV3LT5wZXJtaXNzaW9uQ2xpZW50
KCktPmFsbG93TG9jYWxTdG9yYWdlKHdlYkZyYW1lLCB1cmwpKSB7CisgICAgICAgIGVjID0gUVVP
VEFfRVhDRUVERURfRVJSOworICAgIH0gZWxzZSB7CisgICAgICAgIG1fc3RvcmFnZUFyZWEtPnNl
dEl0ZW0oa2V5LCB2YWx1ZSwgdXJsLCByZXN1bHQsIG9sZFZhbHVlLCB3ZWJGcmFtZSk7CisgICAg
ICAgIGVjID0gKHJlc3VsdCA9PSBXZWJLaXQ6OldlYlN0b3JhZ2VBcmVhOjpSZXN1bHRPSykgPyAw
IDogUVVPVEFfRVhDRUVERURfRVJSOworICAgICAgICBTdHJpbmcgb2xkVmFsdWVTdHJpbmcgPSBv
bGRWYWx1ZTsKKyAgICAgICAgaWYgKG9sZFZhbHVlU3RyaW5nICE9IHZhbHVlICYmIHJlc3VsdCA9
PSBXZWJLaXQ6OldlYlN0b3JhZ2VBcmVhOjpSZXN1bHRPSykKKyAgICAgICAgICAgIHN0b3JhZ2VF
dmVudChrZXksIG9sZFZhbHVlLCB2YWx1ZSwgbV9zdG9yYWdlVHlwZSwgZnJhbWUtPmRvY3VtZW50
KCktPnNlY3VyaXR5T3JpZ2luKCksIGZyYW1lKTsKKyAgICB9CiAgICAgcmV0dXJuIG9sZFZhbHVl
OwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92179</attachid>
            <date>2011-05-03 18:04:33 -0700</date>
            <delta_ts>2011-05-03 18:52:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-60066-20110503180312.patch</filename>
            <type>text/plain</type>
            <size>9805</size>
            <attacher name="John Abd-El-Malek">jam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA4NTY2MykKKysrIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjUg
QEAKKzIwMTEtMDUtMDMgIEpvaG4gQWJkLUVsLU1hbGVrICA8amFtQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbY2hyb21pdW1d
IEdvIHRocm91Z2ggV2ViUGVybWlzc2lvbkNsaWVudCBmb3IgbG9jYWwgc3RvcmFnZSBhY2Nlc3Mu
ICBBbHNvIGNsZWFudXAgbGVmdCBvdmVyIGNvZGUgZnJvbSBwcmV2aW91cyBXZWJQZXJtaXNzaW9u
Q2xpZW50IGNoYW5nZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTYwMDY2CisKKyAgICAgICAgKiBwdWJsaWMvV2ViRnJhbWVDbGllbnQuaDoKKyAgICAg
ICAgKiBwdWJsaWMvV2ViUGVybWlzc2lvbkNsaWVudC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
ZXJtaXNzaW9uQ2xpZW50OjphbGxvd0xvY2FsU3RvcmFnZSk6CisgICAgICAgICogc3JjL0RhdGFi
YXNlT2JzZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VPYnNlcnZlcjo6Y2Fu
RXN0YWJsaXNoRGF0YWJhc2UpOgorICAgICAgICAqIHNyYy9GcmFtZUxvYWRlckNsaWVudEltcGwu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudEltcGw6OmFsbG93U2NyaXB0
RXh0ZW5zaW9uKToKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnRJbXBsOjphbGxv
d0phdmFTY3JpcHQpOgorICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudEltcGw6OmFs
bG93UGx1Z2lucyk6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6YWxs
b3dJbWFnZXMpOgorICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudEltcGw6OmRpZE5v
dEFsbG93U2NyaXB0KToKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnRJbXBsOjpk
aWROb3RBbGxvd1BsdWdpbnMpOgorICAgICAgICAqIHNyYy9TdG9yYWdlQXJlYVByb3h5LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VBcmVhUHJveHk6OnNldEl0ZW0pOgorCiAyMDExLTA1
LTAzICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCwgcm9sbGluZyB0aGUgdmVyc2lvbiBvZiBjaHJvbWl1bSB0byByODM5MjIuCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0RFUFMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJv
bWl1bS9ERVBTCShyZXZpc2lvbiA4NTY0NykKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vREVQ
Uwkod29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBAQAogCiB2YXJzID0gewogICAnY2hyb21p
dW1fc3ZuJzogJ2h0dHA6Ly9zcmMuY2hyb21pdW0ub3JnL3N2bi90cnVuay9zcmMnLAotICAnY2hy
b21pdW1fcmV2JzogJzgzNzIyJworICAnY2hyb21pdW1fcmV2JzogJzg0MDA5JwogfQogCiBkZXBz
ID0gewpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWVDbGllbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZUNs
aWVudC5oCShyZXZpc2lvbiA4NTY0NykKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYkZyYW1lQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5NCwxNSArMjk0LDYgQEAgcHVi
bGljOgogICAgIC8vIHNjcmlwdHMuCiAgICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZUlzb2xhdGVk
U2NyaXB0Q29udGV4dChXZWJGcmFtZSopIHsgfQogCi0gICAgLy8gRklYTUUoamFtKTogcmVtb3Zl
IG1lIG9uY2UgQ2hyb21lJ3MgV2ViS2l0IGlzIHJvbGxlZC4KLSAgICB2aXJ0dWFsIGJvb2wgYWxs
b3dQbHVnaW5zKFdlYkZyYW1lKiwgYm9vbCBlbmFibGVkUGVyU2V0dGluZ3MpIHsgcmV0dXJuIGVu
YWJsZWRQZXJTZXR0aW5nczsgfQotICAgIHZpcnR1YWwgdm9pZCBkaWROb3RBbGxvd1BsdWdpbnMo
V2ViRnJhbWUqKSB7IH0KLSAgICB2aXJ0dWFsIGJvb2wgYWxsb3dJbWFnZXMoV2ViRnJhbWUqLCBi
b29sIGVuYWJsZWRQZXJTZXR0aW5ncykgeyByZXR1cm4gZW5hYmxlZFBlclNldHRpbmdzOyB9Ci0g
ICAgdmlydHVhbCBib29sIGFsbG93U2NyaXB0KFdlYkZyYW1lKiwgYm9vbCBlbmFibGVkUGVyU2V0
dGluZ3MpIHsgcmV0dXJuIGVuYWJsZWRQZXJTZXR0aW5nczsgfQotICAgIHZpcnR1YWwgYm9vbCBh
bGxvd0RhdGFiYXNlKFdlYkZyYW1lKiwgY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBjb25zdCBXZWJT
dHJpbmcmIGRpc3BsYXlOYW1lLCB1bnNpZ25lZCBsb25nIGVzdGltYXRlZFNpemUpIHsgcmV0dXJu
IHRydWU7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGlkTm90QWxsb3dTY3JpcHQoV2ViRnJhbWUqKSB7
IH0KLSAgICB2aXJ0dWFsIGJvb2wgYWxsb3dTY3JpcHRFeHRlbnNpb24oV2ViRnJhbWUqLCBjb25z
dCBXZWJTdHJpbmcmIGV4dGVuc2lvbk5hbWUsIGludCBleHRlbnNpb25Hcm91cCkgeyByZXR1cm4g
dHJ1ZTsgfQotCiAKICAgICAvLyBHZW9tZXRyeSBub3RpZmljYXRpb25zIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIApJbmRleDogU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViUGVybWlzc2lvbkNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBlcm1pc3Npb25DbGllbnQuaAkocmV2aXNpb24g
ODU2NDcpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQZXJtaXNzaW9uQ2xp
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDYgQEAgbmFtZXNwYWNlIFdlYktpdCB7
CiAKIGNsYXNzIFdlYkZyYW1lOwogY2xhc3MgV2ViU3RyaW5nOwotCiBjbGFzcyBXZWJQZXJtaXNz
aW9uQ2xpZW50IHsKIHB1YmxpYzoKICAgICAvLyBDb250cm9scyB3aGV0aGVyIGFjY2VzcyB0byBX
ZWIgRGF0YWJhc2VzIGlzIGFsbG93ZWQgZm9yIHRoaXMgZnJhbWUuCkBAIC01Nyw2ICs1NiwxMCBA
QCBwdWJsaWM6CiAgICAgLy8gdmFsdWUuCiAgICAgdmlydHVhbCBib29sIGFsbG93U2NyaXB0RXh0
ZW5zaW9uKFdlYkZyYW1lKiwgY29uc3QgV2ViU3RyaW5nJiBleHRlbnNpb25OYW1lLCBpbnQgZXh0
ZW5zaW9uR3JvdXApIHsgcmV0dXJuIHRydWU7IH0KIAorICAgIC8vIENvbnRyb2xzIHdoZXRoZXIg
SFRNTDUgV2ViIFN0b3JhZ2UgaXMgYWxsb3dlZCBmb3IgdGhpcyBmcmFtZS4KKyAgICAvLyBJZiBs
b2NhbCBpcyB0cnVlLCB0aGVuIHRoaXMgaXMgZm9yIGxvY2FsIHN0b3JhZ2UsIG90aGVyd2lzZSBp
dCdzIGZvciBzZXNzaW9uIHN0b3JhZ2UuCisgICAgdmlydHVhbCBib29sIGFsbG93U3RvcmFnZShX
ZWJGcmFtZSosIGJvb2wgbG9jYWwpIHsgcmV0dXJuIHRydWU7IH0KKwogICAgIC8vIENvbnRyb2xz
IHdoZXRoZXIgYWNjZXNzIHRvIHJlYWQgdGhlIGNsaXBib2FyZCBpcyBhbGxvd2VkIGZvciB0aGlz
IGZyYW1lLgogICAgIHZpcnR1YWwgYm9vbCBhbGxvd1JlYWRGcm9tQ2xpcGJvYXJkKFdlYkZyYW1l
KiwgYm9vbCBkZWZhdWx0VmFsdWUpIHsgcmV0dXJuIGRlZmF1bHRWYWx1ZTsgfQogCkluZGV4OiBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTdG9yYWdlQXJlYS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlN0b3JhZ2VBcmVhLmgJKHJldmlz
aW9uIDg1NjQ3KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU3RvcmFnZUFy
ZWEuaAkod29ya2luZyBjb3B5KQpAQCAtNDgsOCArNDgsNyBAQCBwdWJsaWM6CiAKICAgICBlbnVt
IFJlc3VsdCB7CiAgICAgICAgIFJlc3VsdE9LID0gMCwKLSAgICAgICAgUmVzdWx0QmxvY2tlZEJ5
UXVvdGEsCi0gICAgICAgIFJlc3VsdEJsb2NrZWRCeVBvbGljeQorICAgICAgICBSZXN1bHRCbG9j
a2VkQnlRdW90YQogICAgIH07CiAKICAgICAvLyBUaGUgbnVtYmVyIG9mIGtleS92YWx1ZSBwYWly
cyBpbiB0aGUgc3RvcmFnZSBhcmVhLgpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
RGF0YWJhc2VPYnNlcnZlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvRGF0YWJhc2VPYnNlcnZlci5jcHAJKHJldmlzaW9uIDg1NjQ3KQorKysgU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvRGF0YWJhc2VPYnNlcnZlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTYxLDggKzYxLDYgQEAgYm9vbCBEYXRhYmFzZU9ic2VydmVyOjpjYW5Fc3RhYmxpc2hEYXRhYgog
ICAgICAgICBXZWJWaWV3SW1wbCogd2ViVmlldyA9IHdlYkZyYW1lLT52aWV3SW1wbCgpOwogICAg
ICAgICBpZiAod2ViVmlldy0+cGVybWlzc2lvbkNsaWVudCgpKQogICAgICAgICAgICAgcmV0dXJu
IHdlYlZpZXctPnBlcm1pc3Npb25DbGllbnQoKS0+YWxsb3dEYXRhYmFzZSh3ZWJGcmFtZSwgbmFt
ZSwgZGlzcGxheU5hbWUsIGVzdGltYXRlZFNpemUpOwotICAgICAgICAvLyBGSVhNRShqYW0pOiBy
ZW1vdmUgdGhpcy4KLSAgICAgICAgcmV0dXJuIHdlYkZyYW1lLT5jbGllbnQoKS0+YWxsb3dEYXRh
YmFzZSh3ZWJGcmFtZSwgbmFtZSwgZGlzcGxheU5hbWUsIGVzdGltYXRlZFNpemUpOwogICAgIH0g
ZWxzZSB7CiAgICAgICAgIFdvcmtlckNvbnRleHQqIHdvcmtlckNvbnRleHQgPSBzdGF0aWNfY2Fz
dDxXb3JrZXJDb250ZXh0Kj4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CiAgICAgICAgIFdvcmtl
ckxvYWRlclByb3h5KiB3b3JrZXJMb2FkZXJQcm94eSA9ICZ3b3JrZXJDb250ZXh0LT50aHJlYWQo
KS0+d29ya2VyTG9hZGVyUHJveHkoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcAkocmV2aXNpb24gODU2NDcpCisr
KyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xNTgsMTAgKzE1OCw2IEBAIGJvb2wgRnJhbWVMb2FkZXJDbGllbnRJ
bXBsOjphbGxvd1NjcmlwdEUKICAgICBpZiAod2VidmlldyAmJiB3ZWJ2aWV3LT5wZXJtaXNzaW9u
Q2xpZW50KCkpCiAgICAgICAgIHJldHVybiB3ZWJ2aWV3LT5wZXJtaXNzaW9uQ2xpZW50KCktPmFs
bG93U2NyaXB0RXh0ZW5zaW9uKG1fd2ViRnJhbWUsIGV4dGVuc2lvbk5hbWUsIGV4dGVuc2lvbkdy
b3VwKTsKIAotICAgIC8vIEZJWE1FKGphbSk6IHJlbW92ZSB0aGlzLgotICAgIGlmIChtX3dlYkZy
YW1lLT5jbGllbnQoKSkKLSAgICAgICAgcmV0dXJuIG1fd2ViRnJhbWUtPmNsaWVudCgpLT5hbGxv
d1NjcmlwdEV4dGVuc2lvbihtX3dlYkZyYW1lLCBleHRlbnNpb25OYW1lLCBleHRlbnNpb25Hcm91
cCk7Ci0KICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMTg1LDEwICsxODEsNiBAQCBib29sIEZy
YW1lTG9hZGVyQ2xpZW50SW1wbDo6YWxsb3dKYXZhU2NyCiAgICAgaWYgKHdlYnZpZXcgJiYgd2Vi
dmlldy0+cGVybWlzc2lvbkNsaWVudCgpKQogICAgICAgICByZXR1cm4gd2Vidmlldy0+cGVybWlz
c2lvbkNsaWVudCgpLT5hbGxvd1NjcmlwdChtX3dlYkZyYW1lLCBlbmFibGVkUGVyU2V0dGluZ3Mp
OwogCi0gICAgLy8gRklYTUUoamFtKTogcmVtb3ZlIHRoaXMuCi0gICAgaWYgKG1fd2ViRnJhbWUt
PmNsaWVudCgpKQotICAgICAgICByZXR1cm4gbV93ZWJGcmFtZS0+Y2xpZW50KCktPmFsbG93U2Ny
aXB0KG1fd2ViRnJhbWUsIGVuYWJsZWRQZXJTZXR0aW5ncyk7Ci0KICAgICByZXR1cm4gZW5hYmxl
ZFBlclNldHRpbmdzOwogfQogCkBAIC0xOTgsMTAgKzE5MCw2IEBAIGJvb2wgRnJhbWVMb2FkZXJD
bGllbnRJbXBsOjphbGxvd1BsdWdpbnMKICAgICBpZiAod2VidmlldyAmJiB3ZWJ2aWV3LT5wZXJt
aXNzaW9uQ2xpZW50KCkpCiAgICAgICAgIHJldHVybiB3ZWJ2aWV3LT5wZXJtaXNzaW9uQ2xpZW50
KCktPmFsbG93UGx1Z2lucyhtX3dlYkZyYW1lLCBlbmFibGVkUGVyU2V0dGluZ3MpOwogCi0gICAg
Ly8gRklYTUUoamFtKTogcmVtb3ZlIHRoaXMuCi0gICAgaWYgKG1fd2ViRnJhbWUtPmNsaWVudCgp
KQotICAgICAgICByZXR1cm4gbV93ZWJGcmFtZS0+Y2xpZW50KCktPmFsbG93UGx1Z2lucyhtX3dl
YkZyYW1lLCBlbmFibGVkUGVyU2V0dGluZ3MpOwotCiAgICAgcmV0dXJuIGVuYWJsZWRQZXJTZXR0
aW5nczsKIH0KIApAQCAtMjExLDEwICsxOTksNiBAQCBib29sIEZyYW1lTG9hZGVyQ2xpZW50SW1w
bDo6YWxsb3dJbWFnZXMoCiAgICAgaWYgKHdlYnZpZXcgJiYgd2Vidmlldy0+cGVybWlzc2lvbkNs
aWVudCgpKQogICAgICAgICByZXR1cm4gd2Vidmlldy0+cGVybWlzc2lvbkNsaWVudCgpLT5hbGxv
d0ltYWdlcyhtX3dlYkZyYW1lLCBlbmFibGVkUGVyU2V0dGluZ3MpOwogCi0gICAgLy8gRklYTUUo
amFtKTogcmVtb3ZlIHRoaXMuCi0gICAgaWYgKG1fd2ViRnJhbWUtPmNsaWVudCgpKQotICAgICAg
ICByZXR1cm4gbV93ZWJGcmFtZS0+Y2xpZW50KCktPmFsbG93SW1hZ2VzKG1fd2ViRnJhbWUsIGVu
YWJsZWRQZXJTZXR0aW5ncyk7Ci0KICAgICByZXR1cm4gZW5hYmxlZFBlclNldHRpbmdzOwogfQog
CkBAIC0yMjMsMTAgKzIwNyw2IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRJbXBsOjpkaWROb3RB
bGxvd1MKICAgICBXZWJWaWV3SW1wbCogd2VidmlldyA9IG1fd2ViRnJhbWUtPnZpZXdJbXBsKCk7
CiAgICAgaWYgKHdlYnZpZXcgJiYgd2Vidmlldy0+cGVybWlzc2lvbkNsaWVudCgpKQogICAgICAg
ICB3ZWJ2aWV3LT5wZXJtaXNzaW9uQ2xpZW50KCktPmRpZE5vdEFsbG93U2NyaXB0KG1fd2ViRnJh
bWUpOwotCi0gICAgLy8gRklYTUUoamFtKTogcmVtb3ZlIHRoaXMuCi0gICAgaWYgKG1fd2ViRnJh
bWUtPmNsaWVudCgpKQotICAgICAgICBtX3dlYkZyYW1lLT5jbGllbnQoKS0+ZGlkTm90QWxsb3dT
Y3JpcHQobV93ZWJGcmFtZSk7CiB9CiAKIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRJbXBsOjpkaWRO
b3RBbGxvd1BsdWdpbnMoKQpAQCAtMjM1LDkgKzIxNSw2IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGll
bnRJbXBsOjpkaWROb3RBbGxvd1AKICAgICBpZiAod2VidmlldyAmJiB3ZWJ2aWV3LT5wZXJtaXNz
aW9uQ2xpZW50KCkpCiAgICAgICAgIHdlYnZpZXctPnBlcm1pc3Npb25DbGllbnQoKS0+ZGlkTm90
QWxsb3dQbHVnaW5zKG1fd2ViRnJhbWUpOwogCi0gICAgLy8gRklYTUUoamFtKTogcmVtb3ZlIHRo
aXMuCi0gICAgaWYgKG1fd2ViRnJhbWUtPmNsaWVudCgpKQotICAgICAgICBtX3dlYkZyYW1lLT5j
bGllbnQoKS0+ZGlkTm90QWxsb3dQbHVnaW5zKG1fd2ViRnJhbWUpOwogfQogCiBib29sIEZyYW1l
TG9hZGVyQ2xpZW50SW1wbDo6aGFzV2ViVmlldygpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9TdG9yYWdlQXJlYVByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9TdG9yYWdlQXJlYVByb3h5LmNwcAkocmV2aXNpb24gODU2NDcp
CisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9TdG9yYWdlQXJlYVByb3h5LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNDUsOSArNDUsMTEgQEAKICNpbmNsdWRlICJTdG9yYWdlRXZlbnQuaCIK
IAogI2luY2x1ZGUgIldlYkZyYW1lSW1wbC5oIgorI2luY2x1ZGUgIldlYlBlcm1pc3Npb25DbGll
bnQuaCIKICNpbmNsdWRlICJXZWJTdG9yYWdlQXJlYS5oIgogI2luY2x1ZGUgIldlYlN0cmluZy5o
IgogI2luY2x1ZGUgIldlYlVSTC5oIgorI2luY2x1ZGUgIldlYlZpZXdJbXBsLmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIApAQCAtODAsMTIgKzgyLDE3IEBAIFN0cmluZyBTdG9yYWdlQXJlYVBy
b3h5OjpzZXRJdGVtKGNvbnN0IFMKIHsKICAgICBXZWJLaXQ6OldlYlN0b3JhZ2VBcmVhOjpSZXN1
bHQgcmVzdWx0ID0gV2ViS2l0OjpXZWJTdG9yYWdlQXJlYTo6UmVzdWx0T0s7CiAgICAgV2ViS2l0
OjpXZWJTdHJpbmcgb2xkVmFsdWU7Ci0gICAgV2ViS2l0OjpXZWJGcmFtZSogd2ViRnJhbWUgPSBX
ZWJLaXQ6OldlYkZyYW1lSW1wbDo6ZnJvbUZyYW1lKGZyYW1lKTsKLSAgICBtX3N0b3JhZ2VBcmVh
LT5zZXRJdGVtKGtleSwgdmFsdWUsIGZyYW1lLT5kb2N1bWVudCgpLT51cmwoKSwgcmVzdWx0LCBv
bGRWYWx1ZSwgd2ViRnJhbWUpOwotICAgIGVjID0gKHJlc3VsdCA9PSBXZWJLaXQ6OldlYlN0b3Jh
Z2VBcmVhOjpSZXN1bHRPSykgPyAwIDogUVVPVEFfRVhDRUVERURfRVJSOwotICAgIFN0cmluZyBv
bGRWYWx1ZVN0cmluZyA9IG9sZFZhbHVlOwotICAgIGlmIChvbGRWYWx1ZVN0cmluZyAhPSB2YWx1
ZSAmJiByZXN1bHQgPT0gV2ViS2l0OjpXZWJTdG9yYWdlQXJlYTo6UmVzdWx0T0spCi0gICAgICAg
IHN0b3JhZ2VFdmVudChrZXksIG9sZFZhbHVlLCB2YWx1ZSwgbV9zdG9yYWdlVHlwZSwgZnJhbWUt
PmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIGZyYW1lKTsKKyAgICBXZWJLaXQ6OldlYkZy
YW1lSW1wbCogd2ViRnJhbWUgPSBXZWJLaXQ6OldlYkZyYW1lSW1wbDo6ZnJvbUZyYW1lKGZyYW1l
KTsKKyAgICBXZWJLaXQ6OldlYlZpZXdJbXBsKiB3ZWJWaWV3ID0gd2ViRnJhbWUtPnZpZXdJbXBs
KCk7CisgICAgaWYgKHdlYlZpZXctPnBlcm1pc3Npb25DbGllbnQoKSAmJiAhd2ViVmlldy0+cGVy
bWlzc2lvbkNsaWVudCgpLT5hbGxvd1N0b3JhZ2Uod2ViRnJhbWUsIG1fc3RvcmFnZVR5cGUgPT0g
TG9jYWxTdG9yYWdlKSkKKyAgICAgICAgZWMgPSBRVU9UQV9FWENFRURFRF9FUlI7CisgICAgZWxz
ZSB7CisgICAgICAgIG1fc3RvcmFnZUFyZWEtPnNldEl0ZW0oa2V5LCB2YWx1ZSwgZnJhbWUtPmRv
Y3VtZW50KCktPnVybCgpLCByZXN1bHQsIG9sZFZhbHVlLCB3ZWJGcmFtZSk7CisgICAgICAgIGVj
ID0gKHJlc3VsdCA9PSBXZWJLaXQ6OldlYlN0b3JhZ2VBcmVhOjpSZXN1bHRPSykgPyAwIDogUVVP
VEFfRVhDRUVERURfRVJSOworICAgICAgICBTdHJpbmcgb2xkVmFsdWVTdHJpbmcgPSBvbGRWYWx1
ZTsKKyAgICAgICAgaWYgKG9sZFZhbHVlU3RyaW5nICE9IHZhbHVlICYmIHJlc3VsdCA9PSBXZWJL
aXQ6OldlYlN0b3JhZ2VBcmVhOjpSZXN1bHRPSykKKyAgICAgICAgICAgIHN0b3JhZ2VFdmVudChr
ZXksIG9sZFZhbHVlLCB2YWx1ZSwgbV9zdG9yYWdlVHlwZSwgZnJhbWUtPmRvY3VtZW50KCktPnNl
Y3VyaXR5T3JpZ2luKCksIGZyYW1lKTsKKyAgICB9CiAgICAgcmV0dXJuIG9sZFZhbHVlOwogfQog
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92182</attachid>
            <date>2011-05-03 18:52:36 -0700</date>
            <delta_ts>2011-05-03 19:03:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-60066-20110503185021.patch</filename>
            <type>text/plain</type>
            <size>9615</size>
            <attacher name="John Abd-El-Malek">jam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA4NTY2MykKKysrIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjUg
QEAKKzIwMTEtMDUtMDMgIEpvaG4gQWJkLUVsLU1hbGVrICA8amFtQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbY2hyb21pdW1d
IEdvIHRocm91Z2ggV2ViUGVybWlzc2lvbkNsaWVudCBmb3IgbG9jYWwgc3RvcmFnZSBhY2Nlc3Mu
ICBBbHNvIGNsZWFudXAgbGVmdCBvdmVyIGNvZGUgZnJvbSBwcmV2aW91cyBXZWJQZXJtaXNzaW9u
Q2xpZW50IGNoYW5nZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTYwMDY2CisKKyAgICAgICAgKiBwdWJsaWMvV2ViRnJhbWVDbGllbnQuaDoKKyAgICAg
ICAgKiBwdWJsaWMvV2ViUGVybWlzc2lvbkNsaWVudC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
ZXJtaXNzaW9uQ2xpZW50OjphbGxvd0xvY2FsU3RvcmFnZSk6CisgICAgICAgICogc3JjL0RhdGFi
YXNlT2JzZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VPYnNlcnZlcjo6Y2Fu
RXN0YWJsaXNoRGF0YWJhc2UpOgorICAgICAgICAqIHNyYy9GcmFtZUxvYWRlckNsaWVudEltcGwu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudEltcGw6OmFsbG93U2NyaXB0
RXh0ZW5zaW9uKToKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnRJbXBsOjphbGxv
d0phdmFTY3JpcHQpOgorICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudEltcGw6OmFs
bG93UGx1Z2lucyk6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6YWxs
b3dJbWFnZXMpOgorICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudEltcGw6OmRpZE5v
dEFsbG93U2NyaXB0KToKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnRJbXBsOjpk
aWROb3RBbGxvd1BsdWdpbnMpOgorICAgICAgICAqIHNyYy9TdG9yYWdlQXJlYVByb3h5LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VBcmVhUHJveHk6OnNldEl0ZW0pOgorCiAyMDExLTA1
LTAzICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCwgcm9sbGluZyB0aGUgdmVyc2lvbiBvZiBjaHJvbWl1bSB0byByODM5MjIuCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0RFUFMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJv
bWl1bS9ERVBTCShyZXZpc2lvbiA4NTY0NykKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vREVQ
Uwkod29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBAQAogCiB2YXJzID0gewogICAnY2hyb21p
dW1fc3ZuJzogJ2h0dHA6Ly9zcmMuY2hyb21pdW0ub3JnL3N2bi90cnVuay9zcmMnLAotICAnY2hy
b21pdW1fcmV2JzogJzgzNzIyJworICAnY2hyb21pdW1fcmV2JzogJzg0MDIzJwogfQogCiBkZXBz
ID0gewpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWVDbGllbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZUNs
aWVudC5oCShyZXZpc2lvbiA4NTY0NykKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYkZyYW1lQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5NCwxNSArMjk0LDYgQEAgcHVi
bGljOgogICAgIC8vIHNjcmlwdHMuCiAgICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZUlzb2xhdGVk
U2NyaXB0Q29udGV4dChXZWJGcmFtZSopIHsgfQogCi0gICAgLy8gRklYTUUoamFtKTogcmVtb3Zl
IG1lIG9uY2UgQ2hyb21lJ3MgV2ViS2l0IGlzIHJvbGxlZC4KLSAgICB2aXJ0dWFsIGJvb2wgYWxs
b3dQbHVnaW5zKFdlYkZyYW1lKiwgYm9vbCBlbmFibGVkUGVyU2V0dGluZ3MpIHsgcmV0dXJuIGVu
YWJsZWRQZXJTZXR0aW5nczsgfQotICAgIHZpcnR1YWwgdm9pZCBkaWROb3RBbGxvd1BsdWdpbnMo
V2ViRnJhbWUqKSB7IH0KLSAgICB2aXJ0dWFsIGJvb2wgYWxsb3dJbWFnZXMoV2ViRnJhbWUqLCBi
b29sIGVuYWJsZWRQZXJTZXR0aW5ncykgeyByZXR1cm4gZW5hYmxlZFBlclNldHRpbmdzOyB9Ci0g
ICAgdmlydHVhbCBib29sIGFsbG93U2NyaXB0KFdlYkZyYW1lKiwgYm9vbCBlbmFibGVkUGVyU2V0
dGluZ3MpIHsgcmV0dXJuIGVuYWJsZWRQZXJTZXR0aW5nczsgfQotICAgIHZpcnR1YWwgYm9vbCBh
bGxvd0RhdGFiYXNlKFdlYkZyYW1lKiwgY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBjb25zdCBXZWJT
dHJpbmcmIGRpc3BsYXlOYW1lLCB1bnNpZ25lZCBsb25nIGVzdGltYXRlZFNpemUpIHsgcmV0dXJu
IHRydWU7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGlkTm90QWxsb3dTY3JpcHQoV2ViRnJhbWUqKSB7
IH0KLSAgICB2aXJ0dWFsIGJvb2wgYWxsb3dTY3JpcHRFeHRlbnNpb24oV2ViRnJhbWUqLCBjb25z
dCBXZWJTdHJpbmcmIGV4dGVuc2lvbk5hbWUsIGludCBleHRlbnNpb25Hcm91cCkgeyByZXR1cm4g
dHJ1ZTsgfQotCiAKICAgICAvLyBHZW9tZXRyeSBub3RpZmljYXRpb25zIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIApJbmRleDogU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViUGVybWlzc2lvbkNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBlcm1pc3Npb25DbGllbnQuaAkocmV2aXNpb24g
ODU2NDcpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQZXJtaXNzaW9uQ2xp
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTU3LDYgKzU3LDEwIEBAIHB1YmxpYzoKICAgICAvLyB2
YWx1ZS4KICAgICB2aXJ0dWFsIGJvb2wgYWxsb3dTY3JpcHRFeHRlbnNpb24oV2ViRnJhbWUqLCBj
b25zdCBXZWJTdHJpbmcmIGV4dGVuc2lvbk5hbWUsIGludCBleHRlbnNpb25Hcm91cCkgeyByZXR1
cm4gdHJ1ZTsgfQogCisgICAgLy8gQ29udHJvbHMgd2hldGhlciBIVE1MNSBXZWIgU3RvcmFnZSBp
cyBhbGxvd2VkIGZvciB0aGlzIGZyYW1lLgorICAgIC8vIElmIGxvY2FsIGlzIHRydWUsIHRoZW4g
dGhpcyBpcyBmb3IgbG9jYWwgc3RvcmFnZSwgb3RoZXJ3aXNlIGl0J3MgZm9yIHNlc3Npb24gc3Rv
cmFnZS4KKyAgICB2aXJ0dWFsIGJvb2wgYWxsb3dTdG9yYWdlKFdlYkZyYW1lKiwgYm9vbCBsb2Nh
bCkgeyByZXR1cm4gdHJ1ZTsgfQorCiAgICAgLy8gQ29udHJvbHMgd2hldGhlciBhY2Nlc3MgdG8g
cmVhZCB0aGUgY2xpcGJvYXJkIGlzIGFsbG93ZWQgZm9yIHRoaXMgZnJhbWUuCiAgICAgdmlydHVh
bCBib29sIGFsbG93UmVhZEZyb21DbGlwYm9hcmQoV2ViRnJhbWUqLCBib29sIGRlZmF1bHRWYWx1
ZSkgeyByZXR1cm4gZGVmYXVsdFZhbHVlOyB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYlN0b3JhZ2VBcmVhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViU3RvcmFnZUFyZWEuaAkocmV2aXNpb24gODU2NDcpCisrKyBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTdG9yYWdlQXJlYS5oCSh3b3JraW5nIGNvcHkp
CkBAIC00OCw4ICs0OCw3IEBAIHB1YmxpYzoKIAogICAgIGVudW0gUmVzdWx0IHsKICAgICAgICAg
UmVzdWx0T0sgPSAwLAotICAgICAgICBSZXN1bHRCbG9ja2VkQnlRdW90YSwKLSAgICAgICAgUmVz
dWx0QmxvY2tlZEJ5UG9saWN5CisgICAgICAgIFJlc3VsdEJsb2NrZWRCeVF1b3RhCiAgICAgfTsK
IAogICAgIC8vIFRoZSBudW1iZXIgb2Yga2V5L3ZhbHVlIHBhaXJzIGluIHRoZSBzdG9yYWdlIGFy
ZWEuCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9EYXRhYmFzZU9ic2VydmVyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9EYXRhYmFzZU9ic2Vy
dmVyLmNwcAkocmV2aXNpb24gODU2NDcpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9E
YXRhYmFzZU9ic2VydmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjEsOCArNjEsNiBAQCBib29s
IERhdGFiYXNlT2JzZXJ2ZXI6OmNhbkVzdGFibGlzaERhdGFiCiAgICAgICAgIFdlYlZpZXdJbXBs
KiB3ZWJWaWV3ID0gd2ViRnJhbWUtPnZpZXdJbXBsKCk7CiAgICAgICAgIGlmICh3ZWJWaWV3LT5w
ZXJtaXNzaW9uQ2xpZW50KCkpCiAgICAgICAgICAgICByZXR1cm4gd2ViVmlldy0+cGVybWlzc2lv
bkNsaWVudCgpLT5hbGxvd0RhdGFiYXNlKHdlYkZyYW1lLCBuYW1lLCBkaXNwbGF5TmFtZSwgZXN0
aW1hdGVkU2l6ZSk7Ci0gICAgICAgIC8vIEZJWE1FKGphbSk6IHJlbW92ZSB0aGlzLgotICAgICAg
ICByZXR1cm4gd2ViRnJhbWUtPmNsaWVudCgpLT5hbGxvd0RhdGFiYXNlKHdlYkZyYW1lLCBuYW1l
LCBkaXNwbGF5TmFtZSwgZXN0aW1hdGVkU2l6ZSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgV29y
a2VyQ29udGV4dCogd29ya2VyQ29udGV4dCA9IHN0YXRpY19jYXN0PFdvcmtlckNvbnRleHQqPihz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KTsKICAgICAgICAgV29ya2VyTG9hZGVyUHJveHkqIHdvcmtl
ckxvYWRlclByb3h5ID0gJndvcmtlckNvbnRleHQtPnRocmVhZCgpLT53b3JrZXJMb2FkZXJQcm94
eSgpOwpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJ
bXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxv
YWRlckNsaWVudEltcGwuY3BwCShyZXZpc2lvbiA4NTY0NykKKysrIFNvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1
OCwxMCArMTU4LDYgQEAgYm9vbCBGcmFtZUxvYWRlckNsaWVudEltcGw6OmFsbG93U2NyaXB0RQog
ICAgIGlmICh3ZWJ2aWV3ICYmIHdlYnZpZXctPnBlcm1pc3Npb25DbGllbnQoKSkKICAgICAgICAg
cmV0dXJuIHdlYnZpZXctPnBlcm1pc3Npb25DbGllbnQoKS0+YWxsb3dTY3JpcHRFeHRlbnNpb24o
bV93ZWJGcmFtZSwgZXh0ZW5zaW9uTmFtZSwgZXh0ZW5zaW9uR3JvdXApOwogCi0gICAgLy8gRklY
TUUoamFtKTogcmVtb3ZlIHRoaXMuCi0gICAgaWYgKG1fd2ViRnJhbWUtPmNsaWVudCgpKQotICAg
ICAgICByZXR1cm4gbV93ZWJGcmFtZS0+Y2xpZW50KCktPmFsbG93U2NyaXB0RXh0ZW5zaW9uKG1f
d2ViRnJhbWUsIGV4dGVuc2lvbk5hbWUsIGV4dGVuc2lvbkdyb3VwKTsKLQogICAgIHJldHVybiB0
cnVlOwogfQogCkBAIC0xODUsMTAgKzE4MSw2IEBAIGJvb2wgRnJhbWVMb2FkZXJDbGllbnRJbXBs
OjphbGxvd0phdmFTY3IKICAgICBpZiAod2VidmlldyAmJiB3ZWJ2aWV3LT5wZXJtaXNzaW9uQ2xp
ZW50KCkpCiAgICAgICAgIHJldHVybiB3ZWJ2aWV3LT5wZXJtaXNzaW9uQ2xpZW50KCktPmFsbG93
U2NyaXB0KG1fd2ViRnJhbWUsIGVuYWJsZWRQZXJTZXR0aW5ncyk7CiAKLSAgICAvLyBGSVhNRShq
YW0pOiByZW1vdmUgdGhpcy4KLSAgICBpZiAobV93ZWJGcmFtZS0+Y2xpZW50KCkpCi0gICAgICAg
IHJldHVybiBtX3dlYkZyYW1lLT5jbGllbnQoKS0+YWxsb3dTY3JpcHQobV93ZWJGcmFtZSwgZW5h
YmxlZFBlclNldHRpbmdzKTsKLQogICAgIHJldHVybiBlbmFibGVkUGVyU2V0dGluZ3M7CiB9CiAK
QEAgLTE5OCwxMCArMTkwLDYgQEAgYm9vbCBGcmFtZUxvYWRlckNsaWVudEltcGw6OmFsbG93UGx1
Z2lucwogICAgIGlmICh3ZWJ2aWV3ICYmIHdlYnZpZXctPnBlcm1pc3Npb25DbGllbnQoKSkKICAg
ICAgICAgcmV0dXJuIHdlYnZpZXctPnBlcm1pc3Npb25DbGllbnQoKS0+YWxsb3dQbHVnaW5zKG1f
d2ViRnJhbWUsIGVuYWJsZWRQZXJTZXR0aW5ncyk7CiAKLSAgICAvLyBGSVhNRShqYW0pOiByZW1v
dmUgdGhpcy4KLSAgICBpZiAobV93ZWJGcmFtZS0+Y2xpZW50KCkpCi0gICAgICAgIHJldHVybiBt
X3dlYkZyYW1lLT5jbGllbnQoKS0+YWxsb3dQbHVnaW5zKG1fd2ViRnJhbWUsIGVuYWJsZWRQZXJT
ZXR0aW5ncyk7Ci0KICAgICByZXR1cm4gZW5hYmxlZFBlclNldHRpbmdzOwogfQogCkBAIC0yMTEs
MTAgKzE5OSw2IEBAIGJvb2wgRnJhbWVMb2FkZXJDbGllbnRJbXBsOjphbGxvd0ltYWdlcygKICAg
ICBpZiAod2VidmlldyAmJiB3ZWJ2aWV3LT5wZXJtaXNzaW9uQ2xpZW50KCkpCiAgICAgICAgIHJl
dHVybiB3ZWJ2aWV3LT5wZXJtaXNzaW9uQ2xpZW50KCktPmFsbG93SW1hZ2VzKG1fd2ViRnJhbWUs
IGVuYWJsZWRQZXJTZXR0aW5ncyk7CiAKLSAgICAvLyBGSVhNRShqYW0pOiByZW1vdmUgdGhpcy4K
LSAgICBpZiAobV93ZWJGcmFtZS0+Y2xpZW50KCkpCi0gICAgICAgIHJldHVybiBtX3dlYkZyYW1l
LT5jbGllbnQoKS0+YWxsb3dJbWFnZXMobV93ZWJGcmFtZSwgZW5hYmxlZFBlclNldHRpbmdzKTsK
LQogICAgIHJldHVybiBlbmFibGVkUGVyU2V0dGluZ3M7CiB9CiAKQEAgLTIyMywxMCArMjA3LDYg
QEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudEltcGw6OmRpZE5vdEFsbG93UwogICAgIFdlYlZpZXdJ
bXBsKiB3ZWJ2aWV3ID0gbV93ZWJGcmFtZS0+dmlld0ltcGwoKTsKICAgICBpZiAod2VidmlldyAm
JiB3ZWJ2aWV3LT5wZXJtaXNzaW9uQ2xpZW50KCkpCiAgICAgICAgIHdlYnZpZXctPnBlcm1pc3Np
b25DbGllbnQoKS0+ZGlkTm90QWxsb3dTY3JpcHQobV93ZWJGcmFtZSk7Ci0KLSAgICAvLyBGSVhN
RShqYW0pOiByZW1vdmUgdGhpcy4KLSAgICBpZiAobV93ZWJGcmFtZS0+Y2xpZW50KCkpCi0gICAg
ICAgIG1fd2ViRnJhbWUtPmNsaWVudCgpLT5kaWROb3RBbGxvd1NjcmlwdChtX3dlYkZyYW1lKTsK
IH0KIAogdm9pZCBGcmFtZUxvYWRlckNsaWVudEltcGw6OmRpZE5vdEFsbG93UGx1Z2lucygpCkBA
IC0yMzUsOSArMjE1LDYgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudEltcGw6OmRpZE5vdEFsbG93
UAogICAgIGlmICh3ZWJ2aWV3ICYmIHdlYnZpZXctPnBlcm1pc3Npb25DbGllbnQoKSkKICAgICAg
ICAgd2Vidmlldy0+cGVybWlzc2lvbkNsaWVudCgpLT5kaWROb3RBbGxvd1BsdWdpbnMobV93ZWJG
cmFtZSk7CiAKLSAgICAvLyBGSVhNRShqYW0pOiByZW1vdmUgdGhpcy4KLSAgICBpZiAobV93ZWJG
cmFtZS0+Y2xpZW50KCkpCi0gICAgICAgIG1fd2ViRnJhbWUtPmNsaWVudCgpLT5kaWROb3RBbGxv
d1BsdWdpbnMobV93ZWJGcmFtZSk7CiB9CiAKIGJvb2wgRnJhbWVMb2FkZXJDbGllbnRJbXBsOjpo
YXNXZWJWaWV3KCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1N0b3Jh
Z2VBcmVhUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1N0b3JhZ2VBcmVhUHJveHkuY3BwCShyZXZpc2lvbiA4NTY0NykKKysrIFNvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1N0b3JhZ2VBcmVhUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NSw5
ICs0NSwxMSBAQAogI2luY2x1ZGUgIlN0b3JhZ2VFdmVudC5oIgogCiAjaW5jbHVkZSAiV2ViRnJh
bWVJbXBsLmgiCisjaW5jbHVkZSAiV2ViUGVybWlzc2lvbkNsaWVudC5oIgogI2luY2x1ZGUgIldl
YlN0b3JhZ2VBcmVhLmgiCiAjaW5jbHVkZSAiV2ViU3RyaW5nLmgiCiAjaW5jbHVkZSAiV2ViVVJM
LmgiCisjaW5jbHVkZSAiV2ViVmlld0ltcGwuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBA
IC04MCwxMiArODIsMTcgQEAgU3RyaW5nIFN0b3JhZ2VBcmVhUHJveHk6OnNldEl0ZW0oY29uc3Qg
UwogewogICAgIFdlYktpdDo6V2ViU3RvcmFnZUFyZWE6OlJlc3VsdCByZXN1bHQgPSBXZWJLaXQ6
OldlYlN0b3JhZ2VBcmVhOjpSZXN1bHRPSzsKICAgICBXZWJLaXQ6OldlYlN0cmluZyBvbGRWYWx1
ZTsKLSAgICBXZWJLaXQ6OldlYkZyYW1lKiB3ZWJGcmFtZSA9IFdlYktpdDo6V2ViRnJhbWVJbXBs
Ojpmcm9tRnJhbWUoZnJhbWUpOwotICAgIG1fc3RvcmFnZUFyZWEtPnNldEl0ZW0oa2V5LCB2YWx1
ZSwgZnJhbWUtPmRvY3VtZW50KCktPnVybCgpLCByZXN1bHQsIG9sZFZhbHVlLCB3ZWJGcmFtZSk7
Ci0gICAgZWMgPSAocmVzdWx0ID09IFdlYktpdDo6V2ViU3RvcmFnZUFyZWE6OlJlc3VsdE9LKSA/
IDAgOiBRVU9UQV9FWENFRURFRF9FUlI7Ci0gICAgU3RyaW5nIG9sZFZhbHVlU3RyaW5nID0gb2xk
VmFsdWU7Ci0gICAgaWYgKG9sZFZhbHVlU3RyaW5nICE9IHZhbHVlICYmIHJlc3VsdCA9PSBXZWJL
aXQ6OldlYlN0b3JhZ2VBcmVhOjpSZXN1bHRPSykKLSAgICAgICAgc3RvcmFnZUV2ZW50KGtleSwg
b2xkVmFsdWUsIHZhbHVlLCBtX3N0b3JhZ2VUeXBlLCBmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJp
dHlPcmlnaW4oKSwgZnJhbWUpOworICAgIFdlYktpdDo6V2ViRnJhbWVJbXBsKiB3ZWJGcmFtZSA9
IFdlYktpdDo6V2ViRnJhbWVJbXBsOjpmcm9tRnJhbWUoZnJhbWUpOworICAgIFdlYktpdDo6V2Vi
Vmlld0ltcGwqIHdlYlZpZXcgPSB3ZWJGcmFtZS0+dmlld0ltcGwoKTsKKyAgICBpZiAod2ViVmll
dy0+cGVybWlzc2lvbkNsaWVudCgpICYmICF3ZWJWaWV3LT5wZXJtaXNzaW9uQ2xpZW50KCktPmFs
bG93U3RvcmFnZSh3ZWJGcmFtZSwgbV9zdG9yYWdlVHlwZSA9PSBMb2NhbFN0b3JhZ2UpKQorICAg
ICAgICBlYyA9IFFVT1RBX0VYQ0VFREVEX0VSUjsKKyAgICBlbHNlIHsKKyAgICAgICAgbV9zdG9y
YWdlQXJlYS0+c2V0SXRlbShrZXksIHZhbHVlLCBmcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCksIHJl
c3VsdCwgb2xkVmFsdWUsIHdlYkZyYW1lKTsKKyAgICAgICAgZWMgPSAocmVzdWx0ID09IFdlYktp
dDo6V2ViU3RvcmFnZUFyZWE6OlJlc3VsdE9LKSA/IDAgOiBRVU9UQV9FWENFRURFRF9FUlI7Cisg
ICAgICAgIFN0cmluZyBvbGRWYWx1ZVN0cmluZyA9IG9sZFZhbHVlOworICAgICAgICBpZiAob2xk
VmFsdWVTdHJpbmcgIT0gdmFsdWUgJiYgcmVzdWx0ID09IFdlYktpdDo6V2ViU3RvcmFnZUFyZWE6
OlJlc3VsdE9LKQorICAgICAgICAgICAgc3RvcmFnZUV2ZW50KGtleSwgb2xkVmFsdWUsIHZhbHVl
LCBtX3N0b3JhZ2VUeXBlLCBmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgZnJh
bWUpOworICAgIH0KICAgICByZXR1cm4gb2xkVmFsdWU7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92184</attachid>
            <date>2011-05-03 19:03:35 -0700</date>
            <delta_ts>2011-05-03 19:07:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-60066-20110503190120.patch</filename>
            <type>text/plain</type>
            <size>9615</size>
            <attacher name="John Abd-El-Malek">jam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA4NTcwMikKKysrIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjUg
QEAKKzIwMTEtMDUtMDMgIEpvaG4gQWJkLUVsLU1hbGVrICA8amFtQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBKYW1lcyBSb2JpbnNvbi4KKworICAgICAgICBbY2hyb21pdW1d
IEdvIHRocm91Z2ggV2ViUGVybWlzc2lvbkNsaWVudCBmb3IgbG9jYWwgc3RvcmFnZSBhY2Nlc3Mu
ICBBbHNvIGNsZWFudXAgbGVmdCBvdmVyIGNvZGUgZnJvbSBwcmV2aW91cyBXZWJQZXJtaXNzaW9u
Q2xpZW50IGNoYW5nZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTYwMDY2CisKKyAgICAgICAgKiBwdWJsaWMvV2ViRnJhbWVDbGllbnQuaDoKKyAgICAg
ICAgKiBwdWJsaWMvV2ViUGVybWlzc2lvbkNsaWVudC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
ZXJtaXNzaW9uQ2xpZW50OjphbGxvd0xvY2FsU3RvcmFnZSk6CisgICAgICAgICogc3JjL0RhdGFi
YXNlT2JzZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VPYnNlcnZlcjo6Y2Fu
RXN0YWJsaXNoRGF0YWJhc2UpOgorICAgICAgICAqIHNyYy9GcmFtZUxvYWRlckNsaWVudEltcGwu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudEltcGw6OmFsbG93U2NyaXB0
RXh0ZW5zaW9uKToKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnRJbXBsOjphbGxv
d0phdmFTY3JpcHQpOgorICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudEltcGw6OmFs
bG93UGx1Z2lucyk6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6YWxs
b3dJbWFnZXMpOgorICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudEltcGw6OmRpZE5v
dEFsbG93U2NyaXB0KToKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnRJbXBsOjpk
aWROb3RBbGxvd1BsdWdpbnMpOgorICAgICAgICAqIHNyYy9TdG9yYWdlQXJlYVByb3h5LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VBcmVhUHJveHk6OnNldEl0ZW0pOgorCiAyMDExLTA1
LTAzICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCwgcm9sbGluZyB0aGUgdmVyc2lvbiBvZiBjaHJvbWl1bSB0byByODM5MjIuCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0RFUFMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJv
bWl1bS9ERVBTCShyZXZpc2lvbiA4NTY0NykKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vREVQ
Uwkod29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBAQAogCiB2YXJzID0gewogICAnY2hyb21p
dW1fc3ZuJzogJ2h0dHA6Ly9zcmMuY2hyb21pdW0ub3JnL3N2bi90cnVuay9zcmMnLAotICAnY2hy
b21pdW1fcmV2JzogJzgzNzIyJworICAnY2hyb21pdW1fcmV2JzogJzg0MDIzJwogfQogCiBkZXBz
ID0gewpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWVDbGllbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZUNs
aWVudC5oCShyZXZpc2lvbiA4NTY0NykKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYkZyYW1lQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5NCwxNSArMjk0LDYgQEAgcHVi
bGljOgogICAgIC8vIHNjcmlwdHMuCiAgICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZUlzb2xhdGVk
U2NyaXB0Q29udGV4dChXZWJGcmFtZSopIHsgfQogCi0gICAgLy8gRklYTUUoamFtKTogcmVtb3Zl
IG1lIG9uY2UgQ2hyb21lJ3MgV2ViS2l0IGlzIHJvbGxlZC4KLSAgICB2aXJ0dWFsIGJvb2wgYWxs
b3dQbHVnaW5zKFdlYkZyYW1lKiwgYm9vbCBlbmFibGVkUGVyU2V0dGluZ3MpIHsgcmV0dXJuIGVu
YWJsZWRQZXJTZXR0aW5nczsgfQotICAgIHZpcnR1YWwgdm9pZCBkaWROb3RBbGxvd1BsdWdpbnMo
V2ViRnJhbWUqKSB7IH0KLSAgICB2aXJ0dWFsIGJvb2wgYWxsb3dJbWFnZXMoV2ViRnJhbWUqLCBi
b29sIGVuYWJsZWRQZXJTZXR0aW5ncykgeyByZXR1cm4gZW5hYmxlZFBlclNldHRpbmdzOyB9Ci0g
ICAgdmlydHVhbCBib29sIGFsbG93U2NyaXB0KFdlYkZyYW1lKiwgYm9vbCBlbmFibGVkUGVyU2V0
dGluZ3MpIHsgcmV0dXJuIGVuYWJsZWRQZXJTZXR0aW5nczsgfQotICAgIHZpcnR1YWwgYm9vbCBh
bGxvd0RhdGFiYXNlKFdlYkZyYW1lKiwgY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBjb25zdCBXZWJT
dHJpbmcmIGRpc3BsYXlOYW1lLCB1bnNpZ25lZCBsb25nIGVzdGltYXRlZFNpemUpIHsgcmV0dXJu
IHRydWU7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGlkTm90QWxsb3dTY3JpcHQoV2ViRnJhbWUqKSB7
IH0KLSAgICB2aXJ0dWFsIGJvb2wgYWxsb3dTY3JpcHRFeHRlbnNpb24oV2ViRnJhbWUqLCBjb25z
dCBXZWJTdHJpbmcmIGV4dGVuc2lvbk5hbWUsIGludCBleHRlbnNpb25Hcm91cCkgeyByZXR1cm4g
dHJ1ZTsgfQotCiAKICAgICAvLyBHZW9tZXRyeSBub3RpZmljYXRpb25zIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIApJbmRleDogU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViUGVybWlzc2lvbkNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBlcm1pc3Npb25DbGllbnQuaAkocmV2aXNpb24g
ODU2NDcpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQZXJtaXNzaW9uQ2xp
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTU3LDYgKzU3LDEwIEBAIHB1YmxpYzoKICAgICAvLyB2
YWx1ZS4KICAgICB2aXJ0dWFsIGJvb2wgYWxsb3dTY3JpcHRFeHRlbnNpb24oV2ViRnJhbWUqLCBj
b25zdCBXZWJTdHJpbmcmIGV4dGVuc2lvbk5hbWUsIGludCBleHRlbnNpb25Hcm91cCkgeyByZXR1
cm4gdHJ1ZTsgfQogCisgICAgLy8gQ29udHJvbHMgd2hldGhlciBIVE1MNSBXZWIgU3RvcmFnZSBp
cyBhbGxvd2VkIGZvciB0aGlzIGZyYW1lLgorICAgIC8vIElmIGxvY2FsIGlzIHRydWUsIHRoZW4g
dGhpcyBpcyBmb3IgbG9jYWwgc3RvcmFnZSwgb3RoZXJ3aXNlIGl0J3MgZm9yIHNlc3Npb24gc3Rv
cmFnZS4KKyAgICB2aXJ0dWFsIGJvb2wgYWxsb3dTdG9yYWdlKFdlYkZyYW1lKiwgYm9vbCBsb2Nh
bCkgeyByZXR1cm4gdHJ1ZTsgfQorCiAgICAgLy8gQ29udHJvbHMgd2hldGhlciBhY2Nlc3MgdG8g
cmVhZCB0aGUgY2xpcGJvYXJkIGlzIGFsbG93ZWQgZm9yIHRoaXMgZnJhbWUuCiAgICAgdmlydHVh
bCBib29sIGFsbG93UmVhZEZyb21DbGlwYm9hcmQoV2ViRnJhbWUqLCBib29sIGRlZmF1bHRWYWx1
ZSkgeyByZXR1cm4gZGVmYXVsdFZhbHVlOyB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYlN0b3JhZ2VBcmVhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViU3RvcmFnZUFyZWEuaAkocmV2aXNpb24gODU2NDcpCisrKyBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTdG9yYWdlQXJlYS5oCSh3b3JraW5nIGNvcHkp
CkBAIC00OCw4ICs0OCw3IEBAIHB1YmxpYzoKIAogICAgIGVudW0gUmVzdWx0IHsKICAgICAgICAg
UmVzdWx0T0sgPSAwLAotICAgICAgICBSZXN1bHRCbG9ja2VkQnlRdW90YSwKLSAgICAgICAgUmVz
dWx0QmxvY2tlZEJ5UG9saWN5CisgICAgICAgIFJlc3VsdEJsb2NrZWRCeVF1b3RhCiAgICAgfTsK
IAogICAgIC8vIFRoZSBudW1iZXIgb2Yga2V5L3ZhbHVlIHBhaXJzIGluIHRoZSBzdG9yYWdlIGFy
ZWEuCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9EYXRhYmFzZU9ic2VydmVyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9EYXRhYmFzZU9ic2Vy
dmVyLmNwcAkocmV2aXNpb24gODU2NDcpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9E
YXRhYmFzZU9ic2VydmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjEsOCArNjEsNiBAQCBib29s
IERhdGFiYXNlT2JzZXJ2ZXI6OmNhbkVzdGFibGlzaERhdGFiCiAgICAgICAgIFdlYlZpZXdJbXBs
KiB3ZWJWaWV3ID0gd2ViRnJhbWUtPnZpZXdJbXBsKCk7CiAgICAgICAgIGlmICh3ZWJWaWV3LT5w
ZXJtaXNzaW9uQ2xpZW50KCkpCiAgICAgICAgICAgICByZXR1cm4gd2ViVmlldy0+cGVybWlzc2lv
bkNsaWVudCgpLT5hbGxvd0RhdGFiYXNlKHdlYkZyYW1lLCBuYW1lLCBkaXNwbGF5TmFtZSwgZXN0
aW1hdGVkU2l6ZSk7Ci0gICAgICAgIC8vIEZJWE1FKGphbSk6IHJlbW92ZSB0aGlzLgotICAgICAg
ICByZXR1cm4gd2ViRnJhbWUtPmNsaWVudCgpLT5hbGxvd0RhdGFiYXNlKHdlYkZyYW1lLCBuYW1l
LCBkaXNwbGF5TmFtZSwgZXN0aW1hdGVkU2l6ZSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgV29y
a2VyQ29udGV4dCogd29ya2VyQ29udGV4dCA9IHN0YXRpY19jYXN0PFdvcmtlckNvbnRleHQqPihz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KTsKICAgICAgICAgV29ya2VyTG9hZGVyUHJveHkqIHdvcmtl
ckxvYWRlclByb3h5ID0gJndvcmtlckNvbnRleHQtPnRocmVhZCgpLT53b3JrZXJMb2FkZXJQcm94
eSgpOwpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJ
bXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxv
YWRlckNsaWVudEltcGwuY3BwCShyZXZpc2lvbiA4NTY0NykKKysrIFNvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1
OCwxMCArMTU4LDYgQEAgYm9vbCBGcmFtZUxvYWRlckNsaWVudEltcGw6OmFsbG93U2NyaXB0RQog
ICAgIGlmICh3ZWJ2aWV3ICYmIHdlYnZpZXctPnBlcm1pc3Npb25DbGllbnQoKSkKICAgICAgICAg
cmV0dXJuIHdlYnZpZXctPnBlcm1pc3Npb25DbGllbnQoKS0+YWxsb3dTY3JpcHRFeHRlbnNpb24o
bV93ZWJGcmFtZSwgZXh0ZW5zaW9uTmFtZSwgZXh0ZW5zaW9uR3JvdXApOwogCi0gICAgLy8gRklY
TUUoamFtKTogcmVtb3ZlIHRoaXMuCi0gICAgaWYgKG1fd2ViRnJhbWUtPmNsaWVudCgpKQotICAg
ICAgICByZXR1cm4gbV93ZWJGcmFtZS0+Y2xpZW50KCktPmFsbG93U2NyaXB0RXh0ZW5zaW9uKG1f
d2ViRnJhbWUsIGV4dGVuc2lvbk5hbWUsIGV4dGVuc2lvbkdyb3VwKTsKLQogICAgIHJldHVybiB0
cnVlOwogfQogCkBAIC0xODUsMTAgKzE4MSw2IEBAIGJvb2wgRnJhbWVMb2FkZXJDbGllbnRJbXBs
OjphbGxvd0phdmFTY3IKICAgICBpZiAod2VidmlldyAmJiB3ZWJ2aWV3LT5wZXJtaXNzaW9uQ2xp
ZW50KCkpCiAgICAgICAgIHJldHVybiB3ZWJ2aWV3LT5wZXJtaXNzaW9uQ2xpZW50KCktPmFsbG93
U2NyaXB0KG1fd2ViRnJhbWUsIGVuYWJsZWRQZXJTZXR0aW5ncyk7CiAKLSAgICAvLyBGSVhNRShq
YW0pOiByZW1vdmUgdGhpcy4KLSAgICBpZiAobV93ZWJGcmFtZS0+Y2xpZW50KCkpCi0gICAgICAg
IHJldHVybiBtX3dlYkZyYW1lLT5jbGllbnQoKS0+YWxsb3dTY3JpcHQobV93ZWJGcmFtZSwgZW5h
YmxlZFBlclNldHRpbmdzKTsKLQogICAgIHJldHVybiBlbmFibGVkUGVyU2V0dGluZ3M7CiB9CiAK
QEAgLTE5OCwxMCArMTkwLDYgQEAgYm9vbCBGcmFtZUxvYWRlckNsaWVudEltcGw6OmFsbG93UGx1
Z2lucwogICAgIGlmICh3ZWJ2aWV3ICYmIHdlYnZpZXctPnBlcm1pc3Npb25DbGllbnQoKSkKICAg
ICAgICAgcmV0dXJuIHdlYnZpZXctPnBlcm1pc3Npb25DbGllbnQoKS0+YWxsb3dQbHVnaW5zKG1f
d2ViRnJhbWUsIGVuYWJsZWRQZXJTZXR0aW5ncyk7CiAKLSAgICAvLyBGSVhNRShqYW0pOiByZW1v
dmUgdGhpcy4KLSAgICBpZiAobV93ZWJGcmFtZS0+Y2xpZW50KCkpCi0gICAgICAgIHJldHVybiBt
X3dlYkZyYW1lLT5jbGllbnQoKS0+YWxsb3dQbHVnaW5zKG1fd2ViRnJhbWUsIGVuYWJsZWRQZXJT
ZXR0aW5ncyk7Ci0KICAgICByZXR1cm4gZW5hYmxlZFBlclNldHRpbmdzOwogfQogCkBAIC0yMTEs
MTAgKzE5OSw2IEBAIGJvb2wgRnJhbWVMb2FkZXJDbGllbnRJbXBsOjphbGxvd0ltYWdlcygKICAg
ICBpZiAod2VidmlldyAmJiB3ZWJ2aWV3LT5wZXJtaXNzaW9uQ2xpZW50KCkpCiAgICAgICAgIHJl
dHVybiB3ZWJ2aWV3LT5wZXJtaXNzaW9uQ2xpZW50KCktPmFsbG93SW1hZ2VzKG1fd2ViRnJhbWUs
IGVuYWJsZWRQZXJTZXR0aW5ncyk7CiAKLSAgICAvLyBGSVhNRShqYW0pOiByZW1vdmUgdGhpcy4K
LSAgICBpZiAobV93ZWJGcmFtZS0+Y2xpZW50KCkpCi0gICAgICAgIHJldHVybiBtX3dlYkZyYW1l
LT5jbGllbnQoKS0+YWxsb3dJbWFnZXMobV93ZWJGcmFtZSwgZW5hYmxlZFBlclNldHRpbmdzKTsK
LQogICAgIHJldHVybiBlbmFibGVkUGVyU2V0dGluZ3M7CiB9CiAKQEAgLTIyMywxMCArMjA3LDYg
QEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudEltcGw6OmRpZE5vdEFsbG93UwogICAgIFdlYlZpZXdJ
bXBsKiB3ZWJ2aWV3ID0gbV93ZWJGcmFtZS0+dmlld0ltcGwoKTsKICAgICBpZiAod2VidmlldyAm
JiB3ZWJ2aWV3LT5wZXJtaXNzaW9uQ2xpZW50KCkpCiAgICAgICAgIHdlYnZpZXctPnBlcm1pc3Np
b25DbGllbnQoKS0+ZGlkTm90QWxsb3dTY3JpcHQobV93ZWJGcmFtZSk7Ci0KLSAgICAvLyBGSVhN
RShqYW0pOiByZW1vdmUgdGhpcy4KLSAgICBpZiAobV93ZWJGcmFtZS0+Y2xpZW50KCkpCi0gICAg
ICAgIG1fd2ViRnJhbWUtPmNsaWVudCgpLT5kaWROb3RBbGxvd1NjcmlwdChtX3dlYkZyYW1lKTsK
IH0KIAogdm9pZCBGcmFtZUxvYWRlckNsaWVudEltcGw6OmRpZE5vdEFsbG93UGx1Z2lucygpCkBA
IC0yMzUsOSArMjE1LDYgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudEltcGw6OmRpZE5vdEFsbG93
UAogICAgIGlmICh3ZWJ2aWV3ICYmIHdlYnZpZXctPnBlcm1pc3Npb25DbGllbnQoKSkKICAgICAg
ICAgd2Vidmlldy0+cGVybWlzc2lvbkNsaWVudCgpLT5kaWROb3RBbGxvd1BsdWdpbnMobV93ZWJG
cmFtZSk7CiAKLSAgICAvLyBGSVhNRShqYW0pOiByZW1vdmUgdGhpcy4KLSAgICBpZiAobV93ZWJG
cmFtZS0+Y2xpZW50KCkpCi0gICAgICAgIG1fd2ViRnJhbWUtPmNsaWVudCgpLT5kaWROb3RBbGxv
d1BsdWdpbnMobV93ZWJGcmFtZSk7CiB9CiAKIGJvb2wgRnJhbWVMb2FkZXJDbGllbnRJbXBsOjpo
YXNXZWJWaWV3KCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1N0b3Jh
Z2VBcmVhUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1N0b3JhZ2VBcmVhUHJveHkuY3BwCShyZXZpc2lvbiA4NTY0NykKKysrIFNvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1N0b3JhZ2VBcmVhUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NSw5
ICs0NSwxMSBAQAogI2luY2x1ZGUgIlN0b3JhZ2VFdmVudC5oIgogCiAjaW5jbHVkZSAiV2ViRnJh
bWVJbXBsLmgiCisjaW5jbHVkZSAiV2ViUGVybWlzc2lvbkNsaWVudC5oIgogI2luY2x1ZGUgIldl
YlN0b3JhZ2VBcmVhLmgiCiAjaW5jbHVkZSAiV2ViU3RyaW5nLmgiCiAjaW5jbHVkZSAiV2ViVVJM
LmgiCisjaW5jbHVkZSAiV2ViVmlld0ltcGwuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBA
IC04MCwxMiArODIsMTcgQEAgU3RyaW5nIFN0b3JhZ2VBcmVhUHJveHk6OnNldEl0ZW0oY29uc3Qg
UwogewogICAgIFdlYktpdDo6V2ViU3RvcmFnZUFyZWE6OlJlc3VsdCByZXN1bHQgPSBXZWJLaXQ6
OldlYlN0b3JhZ2VBcmVhOjpSZXN1bHRPSzsKICAgICBXZWJLaXQ6OldlYlN0cmluZyBvbGRWYWx1
ZTsKLSAgICBXZWJLaXQ6OldlYkZyYW1lKiB3ZWJGcmFtZSA9IFdlYktpdDo6V2ViRnJhbWVJbXBs
Ojpmcm9tRnJhbWUoZnJhbWUpOwotICAgIG1fc3RvcmFnZUFyZWEtPnNldEl0ZW0oa2V5LCB2YWx1
ZSwgZnJhbWUtPmRvY3VtZW50KCktPnVybCgpLCByZXN1bHQsIG9sZFZhbHVlLCB3ZWJGcmFtZSk7
Ci0gICAgZWMgPSAocmVzdWx0ID09IFdlYktpdDo6V2ViU3RvcmFnZUFyZWE6OlJlc3VsdE9LKSA/
IDAgOiBRVU9UQV9FWENFRURFRF9FUlI7Ci0gICAgU3RyaW5nIG9sZFZhbHVlU3RyaW5nID0gb2xk
VmFsdWU7Ci0gICAgaWYgKG9sZFZhbHVlU3RyaW5nICE9IHZhbHVlICYmIHJlc3VsdCA9PSBXZWJL
aXQ6OldlYlN0b3JhZ2VBcmVhOjpSZXN1bHRPSykKLSAgICAgICAgc3RvcmFnZUV2ZW50KGtleSwg
b2xkVmFsdWUsIHZhbHVlLCBtX3N0b3JhZ2VUeXBlLCBmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJp
dHlPcmlnaW4oKSwgZnJhbWUpOworICAgIFdlYktpdDo6V2ViRnJhbWVJbXBsKiB3ZWJGcmFtZSA9
IFdlYktpdDo6V2ViRnJhbWVJbXBsOjpmcm9tRnJhbWUoZnJhbWUpOworICAgIFdlYktpdDo6V2Vi
Vmlld0ltcGwqIHdlYlZpZXcgPSB3ZWJGcmFtZS0+dmlld0ltcGwoKTsKKyAgICBpZiAod2ViVmll
dy0+cGVybWlzc2lvbkNsaWVudCgpICYmICF3ZWJWaWV3LT5wZXJtaXNzaW9uQ2xpZW50KCktPmFs
bG93U3RvcmFnZSh3ZWJGcmFtZSwgbV9zdG9yYWdlVHlwZSA9PSBMb2NhbFN0b3JhZ2UpKQorICAg
ICAgICBlYyA9IFFVT1RBX0VYQ0VFREVEX0VSUjsKKyAgICBlbHNlIHsKKyAgICAgICAgbV9zdG9y
YWdlQXJlYS0+c2V0SXRlbShrZXksIHZhbHVlLCBmcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCksIHJl
c3VsdCwgb2xkVmFsdWUsIHdlYkZyYW1lKTsKKyAgICAgICAgZWMgPSAocmVzdWx0ID09IFdlYktp
dDo6V2ViU3RvcmFnZUFyZWE6OlJlc3VsdE9LKSA/IDAgOiBRVU9UQV9FWENFRURFRF9FUlI7Cisg
ICAgICAgIFN0cmluZyBvbGRWYWx1ZVN0cmluZyA9IG9sZFZhbHVlOworICAgICAgICBpZiAob2xk
VmFsdWVTdHJpbmcgIT0gdmFsdWUgJiYgcmVzdWx0ID09IFdlYktpdDo6V2ViU3RvcmFnZUFyZWE6
OlJlc3VsdE9LKQorICAgICAgICAgICAgc3RvcmFnZUV2ZW50KGtleSwgb2xkVmFsdWUsIHZhbHVl
LCBtX3N0b3JhZ2VUeXBlLCBmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgZnJh
bWUpOworICAgIH0KICAgICByZXR1cm4gb2xkVmFsdWU7CiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>