<?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>84181</bug_id>
          
          <creation_ts>2012-04-17 12:31:47 -0700</creation_ts>
          <short_desc>DevTools highlights elements in frames at un-scaled positions</short_desc>
          <delta_ts>2012-04-20 14:05:23 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Xianzhu Wang">wangxianzhu</reporter>
          <assigned_to name="Xianzhu Wang">wangxianzhu</assigned_to>
          <cc>jer.noble</cc>
    
    <cc>pfeldman</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>604245</commentid>
    <comment_count>0</comment_count>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2012-04-17 12:31:47 -0700</bug_when>
    <thetext>Reproduced on chromium-android (with page scaling).

1. On device, open www.gmail.com and login and switch to desktop version
2. start DevTools on the host to inspect the gmail page
3. In DevTools Elements pane, hover any element in the &quot;canvas_frame&quot; iframe.

Observed behavior:
The highlighted position is not the actual position of the hovered element, but the un-scaled position

Expected Behavior:
Should highlight the correct position of the element

Will upload a patch soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604331</commentid>
    <comment_count>1</comment_count>
      <attachid>137600</attachid>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2012-04-17 14:17:25 -0700</bug_when>
    <thetext>Created attachment 137600
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604691</commentid>
    <comment_count>2</comment_count>
      <attachid>137600</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-04-18 05:34:45 -0700</bug_when>
    <thetext>Comment on attachment 137600
patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        Test: inspector/elements/highlight-node-scaled.html

Please explain what changed and why in the ChangeLog. I can&apos;t reproduce it on ToT Chromium. Also, I am not sure what you expect to &quot;scale&quot; in a given test case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604844</commentid>
    <comment_count>3</comment_count>
      <attachid>137715</attachid>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2012-04-18 10:03:47 -0700</bug_when>
    <thetext>Created attachment 137715
patch v2 (added comments in ChangeLog)

(In reply to comment #2)
&gt; Please explain what changed and why in the ChangeLog. I can&apos;t reproduce it on ToT Chromium. Also, I am not sure what you expect to &quot;scale&quot; in a given test case.

Sorry for not being clear in the last patch. Added comments in ChangeLog in this patch.

The scaling feature is used on some mobile platforms, e.g. chromium-android. However, the issue can be reproduced on all platforms with the new test case which forces scaling with window.internals.settings.setPageScale(2, 0, 0). The change uses FrameView::contentsToRootView() to map the coordinates of a node in a frame to the coordinates in the main view, instead of calculating by only the offsets.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>605482</commentid>
    <comment_count>4</comment_count>
      <attachid>137715</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-04-19 03:59:31 -0700</bug_when>
    <thetext>Comment on attachment 137715
patch v2 (added comments in ChangeLog)

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

&gt; LayoutTests/inspector/elements/highlight-node-scaled.html:39
&gt; +    window.internals.settings.setPageScaleFactor(2, 0, 0);

This should be:
if (window.internals)
    window.internals.settings.setPageScaleFactor(2, 0, 0);

So that the test could be loaded outside DRT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>605641</commentid>
    <comment_count>5</comment_count>
      <attachid>137715</attachid>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2012-04-19 09:54:15 -0700</bug_when>
    <thetext>Comment on attachment 137715
patch v2 (added comments in ChangeLog)

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

&gt;&gt; LayoutTests/inspector/elements/highlight-node-scaled.html:39
&gt;&gt; +    window.internals.settings.setPageScaleFactor(2, 0, 0);
&gt; 
&gt; This should be:
&gt; if (window.internals)
&gt;     window.internals.settings.setPageScaleFactor(2, 0, 0);
&gt; 
&gt; So that the test could be loaded outside DRT.

Done. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>605642</commentid>
    <comment_count>6</comment_count>
      <attachid>137913</attachid>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2012-04-19 09:54:51 -0700</bug_when>
    <thetext>Created attachment 137913
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>605647</commentid>
    <comment_count>7</comment_count>
      <attachid>137913</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-04-19 09:58:42 -0700</bug_when>
    <thetext>Comment on attachment 137913
patch for landing

Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>605749</commentid>
    <comment_count>8</comment_count>
      <attachid>137913</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-19 11:42:18 -0700</bug_when>
    <thetext>Comment on attachment 137913
patch for landing

Clearing flags on attachment: 137913

Committed r114659: &lt;http://trac.webkit.org/changeset/114659&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>605750</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-19 11:42:22 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>606881</commentid>
    <comment_count>10</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2012-04-20 14:05:23 -0700</bug_when>
    <thetext>This changeset is causing a crash in inspector/elements/elements-panel-selection-on-refresh.html.

Filed https://bugs.webkit.org/show_bug.cgi?id=84492 to track the new crash.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137600</attachid>
            <date>2012-04-17 14:17:25 -0700</date>
            <delta_ts>2012-04-18 10:03:47 -0700</delta_ts>
            <desc>patch</desc>
            <filename>84181</filename>
            <type>text/plain</type>
            <size>9272</size>
            <attacher name="Xianzhu Wang">wangxianzhu</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExNDQzMSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDEyLTA0LTE3ICBYaWFuemh1
IFdhbmcgIDx3YW5neGlhbnpodUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgRGV2VG9vbHMgaGln
aGxpZ2h0cyBlbGVtZW50cyBpbiBmcmFtZXMgYXQgdW4tc2NhbGVkIHBvc2l0aW9ucworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQxODEKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBpbnNwZWN0b3Iv
ZWxlbWVudHMvaGlnaGxpZ2h0LW5vZGUtc2NhbGVkLmh0bWwKKworICAgICAgICAqIGluc3BlY3Rv
ci9ET01Ob2RlSGlnaGxpZ2h0ZXIuY3BwOgorCiAyMDEyLTA0LTE3ICBFbWlsIEEgRWtsdW5kICA8
ZWFlQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSb2xsb3V0IHIxMTQ0MDQgYXMgaXQgYnJva2Ug
YSBjb3VwbGUgb2YgY2hyb21pdW0gYnVpbGRzLgpJbmRleDogU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0RPTU5vZGVIaWdobGlnaHRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0RPTU5vZGVIaWdobGlnaHRlci5jcHAJKHJldmlzaW9uIDExNDQxNCkKKysrIFNv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9ET01Ob2RlSGlnaGxpZ2h0ZXIuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xNDMsMTIgKzE0Myw2IEBAIHZvaWQgZHJhd0hpZ2hsaWdodEZvclNWR1JlbmRlcmVy
KEdyYXBoaWMKICAgICAgICAgZHJhd091dGxpbmVkUXVhZChjb250ZXh0LCBhYnNvbHV0ZVF1YWRz
W2ldLCBoaWdobGlnaHREYXRhLT5jb250ZW50LCBDb2xvcjo6dHJhbnNwYXJlbnQpOwogfQogCi1p
bmxpbmUgSW50U2l6ZSBmcmFtZVRvTWFpbkZyYW1lT2Zmc2V0KEZyYW1lKiBmcmFtZSkKLXsKLSAg
ICBJbnRQb2ludCBtYWluRnJhbWVQb2ludCA9IGZyYW1lLT5wYWdlKCktPm1haW5GcmFtZSgpLT52
aWV3KCktPnJvb3RWaWV3VG9Db250ZW50cyhmcmFtZS0+dmlldygpLT5jb250ZW50c1RvUm9vdFZp
ZXcoSW50UG9pbnQoKSkpOwotICAgIHJldHVybiB0b1NpemUobWFpbkZyYW1lUG9pbnQpOwotfQot
CiBpbnQgZHJhd1N1YnN0cmluZyhjb25zdCBUZXh0UnVuJiBnbG9iYWxUZXh0UnVuLCBpbnQgb2Zm
c2V0LCBpbnQgbGVuZ3RoLCBjb25zdCBDb2xvciYgdGV4dENvbG9yLCBjb25zdCBGb250JiBmb250
LCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IExheW91dFJlY3QmIHRpdGxlUmVjdCkK
IHsKICAgICBjb250ZXh0LnNldEZpbGxDb2xvcih0ZXh0Q29sb3IsIENvbG9yU3BhY2VEZXZpY2VS
R0IpOwpAQCAtMzU5LDI2ICszNTMsMzEgQEAgdm9pZCBkcmF3RWxlbWVudFRpdGxlKEdyYXBoaWNz
Q29udGV4dCYgYwogICAgIGRyYXdTdWJzdHJpbmcobm9kZVRpdGxlUnVuLCBjdXJyZW50UG9zLCBw
eFN0cmluZy5sZW5ndGgoKSwgcHhBbmRCb3JkZXJDb2xvciwgZm9udCwgY29udGV4dCwgdGl0bGVS
ZWN0KTsKIH0KIAorc3RhdGljIHZvaWQgY29udGVudHNRdWFkVG9Sb290VmlldyhGbG9hdFF1YWQm
IHF1YWQsIEZyYW1lVmlldyogdmlldykKK3sKKyAgICBxdWFkLnNldFAxKHZpZXctPmNvbnRlbnRz
VG9Sb290Vmlldyhyb3VuZGVkTGF5b3V0UG9pbnQocXVhZC5wMSgpKSkpOworICAgIHF1YWQuc2V0
UDIodmlldy0+Y29udGVudHNUb1Jvb3RWaWV3KHJvdW5kZWRMYXlvdXRQb2ludChxdWFkLnAyKCkp
KSk7CisgICAgcXVhZC5zZXRQMyh2aWV3LT5jb250ZW50c1RvUm9vdFZpZXcocm91bmRlZExheW91
dFBvaW50KHF1YWQucDMoKSkpKTsKKyAgICBxdWFkLnNldFA0KHZpZXctPmNvbnRlbnRzVG9Sb290
Vmlldyhyb3VuZGVkTGF5b3V0UG9pbnQocXVhZC5wNCgpKSkpOworfQorCiBzdGF0aWMgdm9pZCBn
ZXRPckRyYXdOb2RlSGlnaGxpZ2h0KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgSGlnaGxpZ2h0
RGF0YSogaGlnaGxpZ2h0RGF0YSwgSGlnaGxpZ2h0KiBoaWdobGlnaHQpCiB7CiAgICAgTm9kZSog
bm9kZSA9IGhpZ2hsaWdodERhdGEtPm5vZGUuZ2V0KCk7CiAgICAgUmVuZGVyT2JqZWN0KiByZW5k
ZXJlciA9IG5vZGUtPnJlbmRlcmVyKCk7CiAgICAgRnJhbWUqIGNvbnRhaW5pbmdGcmFtZSA9IG5v
ZGUtPmRvY3VtZW50KCktPmZyYW1lKCk7CisgICAgRnJhbWVWaWV3KiBjb250YWluaW5nVmlldyA9
IGNvbnRhaW5pbmdGcmFtZS0+dmlldygpOwogCiAgICAgaWYgKCFyZW5kZXJlciB8fCAhY29udGFp
bmluZ0ZyYW1lKQogICAgICAgICByZXR1cm47CiAKLSAgICBJbnRTaXplIG1haW5GcmFtZU9mZnNl
dCA9IGZyYW1lVG9NYWluRnJhbWVPZmZzZXQoY29udGFpbmluZ0ZyYW1lKTsKLSAgICBJbnRSZWN0
IGJvdW5kaW5nQm94ID0gcmVuZGVyZXItPmFic29sdXRlQm91bmRpbmdCb3hSZWN0KCk7Ci0KLSAg
ICBib3VuZGluZ0JveC5tb3ZlKG1haW5GcmFtZU9mZnNldCk7Ci0KLSAgICBJbnRSZWN0IHRpdGxl
QW5jaG9yQm94ID0gYm91bmRpbmdCb3g7CisgICAgTGF5b3V0UmVjdCBib3VuZGluZ0JveCA9IGNv
bnRhaW5pbmdWaWV3LT5jb250ZW50c1RvUm9vdFZpZXcocmVuZGVyZXItPmFic29sdXRlQm91bmRp
bmdCb3hSZWN0KCkpOworICAgIExheW91dFJlY3QgdGl0bGVBbmNob3JCb3ggPSBib3VuZGluZ0Jv
eDsKIAotICAgIEZyYW1lVmlldyogdmlldyA9IGNvbnRhaW5pbmdGcmFtZS0+cGFnZSgpLT5tYWlu
RnJhbWUoKS0+dmlldygpOwotICAgIEZsb2F0UmVjdCB2aXNpYmxlUmVjdCA9IHZpZXctPnZpc2li
bGVDb250ZW50UmVjdCgpOworICAgIEZyYW1lVmlldyogbWFpblZpZXcgPSBjb250YWluaW5nRnJh
bWUtPnBhZ2UoKS0+bWFpbkZyYW1lKCktPnZpZXcoKTsKKyAgICBGbG9hdFJlY3QgdmlzaWJsZVJl
Y3QgPSBtYWluVmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0KCk7CiAgICAgLy8gRG9uJ3QgdHJhbnNs
YXRlIHRoZSBjb250ZXh0IGlmIHRoZSBmcmFtZSBpcyByZW5kZXJlZCBpbiBwYWdlIGNvb3JkaW5h
dGVzLgotICAgIGlmIChjb250ZXh0ICYmICF2aWV3LT5kZWxlZ2F0ZXNTY3JvbGxpbmcoKSkKKyAg
ICBpZiAoY29udGV4dCAmJiAhbWFpblZpZXctPmRlbGVnYXRlc1Njcm9sbGluZygpKQogICAgICAg
ICBjb250ZXh0LT50cmFuc2xhdGUoLXZpc2libGVSZWN0LngoKSwgLXZpc2libGVSZWN0LnkoKSk7
CiAKICAgICAvLyBSZW5kZXJTVkdSb290IHNob3VsZCBiZSBoaWdobGlnaHRlZCB0aHJvdWdoIHRo
ZSBpc0JveCgpIGNvZGUgcGF0aCwgYWxsIG90aGVyIFNWRyBlbGVtZW50cyBzaG91bGQganVzdCBk
dW1wIHRoZWlyIGFic29sdXRlUXVhZHMoKS4KQEAgLTM5Miw3ICszOTEsNyBAQCBzdGF0aWMgdm9p
ZCBnZXRPckRyYXdOb2RlSGlnaGxpZ2h0KEdyYXBoCiAgICAgICAgIGhpZ2hsaWdodC0+dHlwZSA9
IEhpZ2hsaWdodFR5cGVSZWN0czsKICAgICAgICAgcmVuZGVyZXItPmFic29sdXRlUXVhZHMoaGln
aGxpZ2h0LT5xdWFkcyk7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaGlnaGxpZ2h0
LT5xdWFkcy5zaXplKCk7ICsraSkKLSAgICAgICAgICAgIGhpZ2hsaWdodC0+cXVhZHNbaV0gKz0g
bWFpbkZyYW1lT2Zmc2V0OworICAgICAgICAgICAgY29udGVudHNRdWFkVG9Sb290VmlldyhoaWdo
bGlnaHQtPnF1YWRzW2ldLCBjb250YWluaW5nVmlldyk7CiAKICAgICAgICAgaWYgKGNvbnRleHQp
CiAgICAgICAgICAgICBkcmF3SGlnaGxpZ2h0Rm9yU1ZHUmVuZGVyZXIoKmNvbnRleHQsIGhpZ2hs
aWdodC0+cXVhZHMsIGhpZ2hsaWdodERhdGEpOwpAQCAtNDM1LDEwICs0MzQsMTAgQEAgc3RhdGlj
IHZvaWQgZ2V0T3JEcmF3Tm9kZUhpZ2hsaWdodChHcmFwaAogICAgICAgICBGbG9hdFF1YWQgYWJz
Qm9yZGVyUXVhZCA9IHJlbmRlcmVyLT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UmVjdChib3Jk
ZXJCb3gpKTsKICAgICAgICAgRmxvYXRRdWFkIGFic01hcmdpblF1YWQgPSByZW5kZXJlci0+bG9j
YWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QobWFyZ2luQm94KSk7CiAKLSAgICAgICAgYWJzQ29u
dGVudFF1YWQubW92ZShtYWluRnJhbWVPZmZzZXQpOwotICAgICAgICBhYnNQYWRkaW5nUXVhZC5t
b3ZlKG1haW5GcmFtZU9mZnNldCk7Ci0gICAgICAgIGFic0JvcmRlclF1YWQubW92ZShtYWluRnJh
bWVPZmZzZXQpOwotICAgICAgICBhYnNNYXJnaW5RdWFkLm1vdmUobWFpbkZyYW1lT2Zmc2V0KTsK
KyAgICAgICAgY29udGVudHNRdWFkVG9Sb290VmlldyhhYnNDb250ZW50UXVhZCwgY29udGFpbmlu
Z1ZpZXcpOworICAgICAgICBjb250ZW50c1F1YWRUb1Jvb3RWaWV3KGFic1BhZGRpbmdRdWFkLCBj
b250YWluaW5nVmlldyk7CisgICAgICAgIGNvbnRlbnRzUXVhZFRvUm9vdFZpZXcoYWJzQm9yZGVy
UXVhZCwgY29udGFpbmluZ1ZpZXcpOworICAgICAgICBjb250ZW50c1F1YWRUb1Jvb3RWaWV3KGFi
c01hcmdpblF1YWQsIGNvbnRhaW5pbmdWaWV3KTsKIAogICAgICAgICB0aXRsZUFuY2hvckJveCA9
IGFic01hcmdpblF1YWQuZW5jbG9zaW5nQm91bmRpbmdCb3goKTsKIApJbmRleDogTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNp
b24gMTE0NDMxKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTQgQEAKKzIwMTItMDQtMTcgIFhpYW56aHUgV2FuZyAgPHdhbmd4aWFuemh1QGNocm9t
aXVtLm9yZz4KKworICAgICAgICBEZXZUb29scyBoaWdobGlnaHRzIGVsZW1lbnRzIGluIGZyYW1l
cyBhdCB1bi1zY2FsZWQgcG9zaXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD04NDE4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL2hpZ2hsaWdodC1ub2RlLXNjYWxl
ZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9lbGVtZW50cy9oaWdo
bGlnaHQtbm9kZS1zY2FsZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VsZW1l
bnRzL3Jlc291cmNlcy9oaWdobGlnaHQtbm9kZS1zY2FsZWQtaWZyYW1lLmh0bWw6IEFkZGVkLgor
CiAyMDEyLTA0LTE3ICBCZW4gTXVyZG9jaCAgPGJlbm1AZ29vZ2xlLmNvbT4KIAogICAgICAgICBg
bG9jYWxTdG9yYWdlLnNldEl0ZW1gIGNhbiBvdmVyd3JpdGUgYGxvY2FsU3RvcmFnZWAgbWV0aG9k
cwpJbmRleDogTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2hpZ2hsaWdodC1ub2RlLXNj
YWxlZC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Vs
ZW1lbnRzL2hpZ2hsaWdodC1ub2RlLXNjYWxlZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvaGlnaGxpZ2h0LW5vZGUtc2NhbGVkLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2IEBACisKK21hcmdpbiByZWN0IGlz
IDE2NiB4IDE4OCBhdCAoMTU0LCAxOTIpCitib3JkZXIgcmVjdCBpcyAxMzggeCAxNjAgYXQgKDE2
OCwgMjA2KQorcGFkZGluZyByZWN0IGlzIDExOCB4IDE0MCBhdCAoMTc4LCAyMTYpCitjb250ZW50
IHJlY3QgaXMgNjYgeCA4OCBhdCAoMjA0LCAyNDIpCisKClByb3BlcnR5IGNoYW5nZXMgb246IExh
eW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9oaWdobGlnaHQtbm9kZS1zY2FsZWQtZXhwZWN0
ZWQudHh0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBMRgoKSW5kZXg6IExh
eW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9oaWdobGlnaHQtbm9kZS1zY2FsZWQuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvaGlnaGxpZ2h0LW5v
ZGUtc2NhbGVkLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxl
bWVudHMvaGlnaGxpZ2h0LW5vZGUtc2NhbGVkLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
NjUgQEAKKzxodG1sPgorPGhlYWQ+CisKKzxzdHlsZT4KKworYm9keSB7CisgICAgbWFyZ2luOiAw
OworfQorCitpZnJhbWUgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICBsZWZ0OiA4M3B4
OworICAgIHRvcDogNTNweDsKKyAgICB3aWR0aDogMjAwcHg7CisgICAgaGVpZ2h0OiAyMDBweDsK
K30KKworPC9zdHlsZT4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rl
c3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Z1
bmN0aW9uIGR1bXBJbnNwZWN0b3JIaWdobGlnaHRSZWN0cygpCit7CisgICAgdmFyIHJlY3ROYW1l
cyA9IFsibWFyZ2luIiwgImJvcmRlciIsICJwYWRkaW5nIiwgImNvbnRlbnQiXTsKKyAgICB2YXIg
cmVjdHMgPSB3aW5kb3cuaW50ZXJuYWxzLmluc3BlY3RvckhpZ2hsaWdodFJlY3RzKGRvY3VtZW50
KTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY3RzLmxlbmd0aDsgaSsrKQorICAgIHsKKyAg
ICAgICAgdmFyIHJlY3ROYW1lID0gKGkgPCByZWN0TmFtZXMubGVuZ3RoID8gcmVjdE5hbWVzW2ld
IDogInVudGl0bGVkIik7CisgICAgICAgIHZhciByZWN0ID0gcmVjdHMuaXRlbShpKTsKKyAgICAg
ICAgdmFyIGxpbmUgPSByZWN0TmFtZSArICIgcmVjdCBpcyAiICsgcmVjdC53aWR0aCArICIgeCAi
ICsgcmVjdC5oZWlnaHQgKyAiIGF0ICgiICsgcmVjdC50b3AgKyAiLCAiICsgcmVjdC5sZWZ0ICsg
Iik8YnIvPiI7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5u
ZXJIVE1MICs9IGxpbmU7CisgICAgfQorfQorCitmdW5jdGlvbiBvbmxvYWQoKQoreworICAgIGlm
ICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNl
dFBhZ2VTY2FsZUZhY3RvcigyLCAwLCAwKTsKKyAgICBydW5UZXN0KCk7Cit9CisgICAgCitmdW5j
dGlvbiB0ZXN0KCkKK3sKKyAgICBXZWJJbnNwZWN0b3IuaW5zcGVjdG9yVmlldy5zZXRDdXJyZW50
UGFuZWwoV2ViSW5zcGVjdG9yLnBhbmVscy5lbGVtZW50cyk7CisgICAgV2ViSW5zcGVjdG9yLnBh
bmVscy5lbGVtZW50cy50cmVlT3V0bGluZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5F
bGVtZW50c1RyZWVPdXRsaW5lLkV2ZW50cy5TZWxlY3RlZE5vZGVDaGFuZ2VkLCBzZWxlY3RlZE5v
ZGVDaGFuZ2VkLCB0aGlzKTsKKworICAgIGZ1bmN0aW9uIHNlbGVjdGVkTm9kZUNoYW5nZWQoZXZl
bnQpCisgICAgeworICAgICAgICB2YXIgbm9kZSA9IGV2ZW50LmRhdGE7CisgICAgICAgIGlmIChu
b2RlLmdldEF0dHJpYnV0ZSgiaWQiKSA9PSAiZGl2IikKKyAgICAgICAgICAgIFJ1bnRpbWVBZ2Vu
dC5ldmFsdWF0ZSgiZHVtcEluc3BlY3RvckhpZ2hsaWdodFJlY3RzKCkiLCBJbnNwZWN0b3JUZXN0
LmNvbXBsZXRlVGVzdCk7CisgICAgfQorICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJbkNvbnNv
bGUoImluc3BlY3QoaWZyYW1lRGl2RWxlbWVudCkiKTsKK30KKworPC9zY3JpcHQ+Cis8L2hlYWQ+
CisKKzxib2R5IG9ubG9hZD0ib25sb2FkKCkiPgorPGlmcmFtZSBzcmM9InJlc291cmNlcy9oaWdo
bGlnaHQtbm9kZS1zY2FsZWQtaWZyYW1lLmh0bWwiPjwvaWZyYW1lPgorPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvaGlnaGxpZ2h0LW5vZGUtc2NhbGVkLmh0bWwKX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQogICArIExGCgpJbmRleDogTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2VsZW1lbnRzL3Jlc291cmNlcy9oaWdobGlnaHQtbm9kZS1zY2FsZWQtaWZyYW1lLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL3Jlc291cmNl
cy9oaWdobGlnaHQtbm9kZS1zY2FsZWQtaWZyYW1lLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvcmVzb3VyY2VzL2hpZ2hsaWdodC1ub2RlLXNjYWxl
ZC1pZnJhbWUuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyNCBAQAorPGh0bWw+Cis8aGVh
ZD4KKzxzdHlsZT4KK2RpdiB7CisgICAgbWFyZ2luOiA3cHg7CisgICAgcGFkZGluZzogMTNweDsK
KyAgICBib3JkZXI6IDVweCBzb2xpZCBibGFjazsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7Cisg
ICAgbGVmdDogMTFweDsKKyAgICB0b3A6IDIycHg7CisgICAgd2lkdGg6IDMzcHg7CisgICAgaGVp
Z2h0OiA0NHB4OyAgICAKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7Cit9Cis8L3N0eWxlPgor
PC9oZWFkPgorCis8Ym9keT4KKzxkaXYgaWQ9ImRpdiI+PC9kaXY+Cis8c2NyaXB0PgordG9wLmlm
cmFtZURpdkVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGl2Iik7Cis8L3Njcmlw
dD4KKzwvYm9keT4KKwoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2VsZW1lbnRzL3Jlc291cmNlcy9oaWdobGlnaHQtbm9kZS1zY2FsZWQtaWZyYW1lLmh0bWwKX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQogICArIExGCgo=
</data>
<flag name="review"
          id="142705"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
    <flag name="commit-queue"
          id="142706"
          type_id="3"
          status="-"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137715</attachid>
            <date>2012-04-18 10:03:47 -0700</date>
            <delta_ts>2012-04-19 09:54:51 -0700</delta_ts>
            <desc>patch v2 (added comments in ChangeLog)</desc>
            <filename>84181a</filename>
            <type>text/plain</type>
            <size>9864</size>
            <attacher name="Xianzhu Wang">wangxianzhu</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExNDUxOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDEyLTA0LTE4ICBYaWFuemh1
IFdhbmcgIDx3YW5neGlhbnpodUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgRGV2VG9vbHMgaGln
aGxpZ2h0cyBlbGVtZW50cyBpbiBmcmFtZXMgYXQgdW4tc2NhbGVkIHBvc2l0aW9ucworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQxODEKKworICAgICAg
ICBPbiBtb2JpbGUgcGxhdGZvcm1zIChlLmcuIGNocm9taXVtLWFuZHJvaWQpLCBub3JtYWxseSBw
YWdlcyBhcmUgc2NhbGVkLAorICAgICAgICB0aHVzIHRoZSBjb29yZGluYXRpb25zIG9mIGhpZ2hs
aWdodCByZWN0IGluc2lkZSBvZiBhIGZyYW1lIG5lZWRzIHRvCisgICAgICAgIGNvbnNpZGVyIG5v
dCBvbmx5IHRoZSBvZmZzZXQsIGJ1dCBhbHNvIHRoZSBzY2FsZS4gVGhlIGNoYW5nZSB1c2VzCisg
ICAgICAgIEZyYW1lVmlldzo6Y29udGVudHNUb1Jvb3RWaWV3KCkgdG8gbWFwIHRoZSBjb29yZGlu
YXRlcyBvZiBhIG5vZGUgaW4KKyAgICAgICAgYSBmcmFtZSB0byB0aGUgY29vcmRpbmF0ZXMgaW4g
dGhlIG1haW4gZnJhbWUsIGluc3RlYWQgb2YgY2FsY3VsYXRpbmcKKyAgICAgICAgYnkgb25seSB0
aGUgb2Zmc2V0LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRlc3Q6IGluc3BlY3Rvci9lbGVtZW50cy9oaWdobGlnaHQtbm9kZS1zY2FsZWQuaHRtbAor
CisgICAgICAgICogaW5zcGVjdG9yL0RPTU5vZGVIaWdobGlnaHRlci5jcHA6CisKIDIwMTItMDQt
MTggIEFsZXhhbmRydSBDaGljdWxpdGEgIDxhY2hpY3VAYWRvYmUuY29tPgogCiAgICAgICAgIFtD
U1MgRmlsdGVyc10gRG8gbm90IHVzZSBjbGlwcGluZyByZWN0IHdoZW4gY2FsY3VsYXRpbmcgdGhl
IGJvdW5kcyBvZiBhIGxheWVyCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRE9NTm9k
ZUhpZ2hsaWdodGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
RE9NTm9kZUhpZ2hsaWdodGVyLmNwcAkocmV2aXNpb24gMTE0NTE4KQorKysgU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0RPTU5vZGVIaWdobGlnaHRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0
MywxMiArMTQzLDYgQEAgdm9pZCBkcmF3SGlnaGxpZ2h0Rm9yU1ZHUmVuZGVyZXIoR3JhcGhpYwog
ICAgICAgICBkcmF3T3V0bGluZWRRdWFkKGNvbnRleHQsIGFic29sdXRlUXVhZHNbaV0sIGhpZ2hs
aWdodERhdGEtPmNvbnRlbnQsIENvbG9yOjp0cmFuc3BhcmVudCk7CiB9CiAKLWlubGluZSBJbnRT
aXplIGZyYW1lVG9NYWluRnJhbWVPZmZzZXQoRnJhbWUqIGZyYW1lKQotewotICAgIEludFBvaW50
IG1haW5GcmFtZVBvaW50ID0gZnJhbWUtPnBhZ2UoKS0+bWFpbkZyYW1lKCktPnZpZXcoKS0+cm9v
dFZpZXdUb0NvbnRlbnRzKGZyYW1lLT52aWV3KCktPmNvbnRlbnRzVG9Sb290VmlldyhJbnRQb2lu
dCgpKSk7Ci0gICAgcmV0dXJuIHRvU2l6ZShtYWluRnJhbWVQb2ludCk7Ci19Ci0KIGludCBkcmF3
U3Vic3RyaW5nKGNvbnN0IFRleHRSdW4mIGdsb2JhbFRleHRSdW4sIGludCBvZmZzZXQsIGludCBs
ZW5ndGgsIGNvbnN0IENvbG9yJiB0ZXh0Q29sb3IsIGNvbnN0IEZvbnQmIGZvbnQsIEdyYXBoaWNz
Q29udGV4dCYgY29udGV4dCwgY29uc3QgTGF5b3V0UmVjdCYgdGl0bGVSZWN0KQogewogICAgIGNv
bnRleHQuc2V0RmlsbENvbG9yKHRleHRDb2xvciwgQ29sb3JTcGFjZURldmljZVJHQik7CkBAIC0z
NTksMjYgKzM1MywzMSBAQCB2b2lkIGRyYXdFbGVtZW50VGl0bGUoR3JhcGhpY3NDb250ZXh0JiBj
CiAgICAgZHJhd1N1YnN0cmluZyhub2RlVGl0bGVSdW4sIGN1cnJlbnRQb3MsIHB4U3RyaW5nLmxl
bmd0aCgpLCBweEFuZEJvcmRlckNvbG9yLCBmb250LCBjb250ZXh0LCB0aXRsZVJlY3QpOwogfQog
CitzdGF0aWMgdm9pZCBjb250ZW50c1F1YWRUb1Jvb3RWaWV3KEZsb2F0UXVhZCYgcXVhZCwgRnJh
bWVWaWV3KiB2aWV3KQoreworICAgIHF1YWQuc2V0UDEodmlldy0+Y29udGVudHNUb1Jvb3RWaWV3
KHJvdW5kZWRMYXlvdXRQb2ludChxdWFkLnAxKCkpKSk7CisgICAgcXVhZC5zZXRQMih2aWV3LT5j
b250ZW50c1RvUm9vdFZpZXcocm91bmRlZExheW91dFBvaW50KHF1YWQucDIoKSkpKTsKKyAgICBx
dWFkLnNldFAzKHZpZXctPmNvbnRlbnRzVG9Sb290Vmlldyhyb3VuZGVkTGF5b3V0UG9pbnQocXVh
ZC5wMygpKSkpOworICAgIHF1YWQuc2V0UDQodmlldy0+Y29udGVudHNUb1Jvb3RWaWV3KHJvdW5k
ZWRMYXlvdXRQb2ludChxdWFkLnA0KCkpKSk7Cit9CisKIHN0YXRpYyB2b2lkIGdldE9yRHJhd05v
ZGVIaWdobGlnaHQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBIaWdobGlnaHREYXRhKiBoaWdo
bGlnaHREYXRhLCBIaWdobGlnaHQqIGhpZ2hsaWdodCkKIHsKICAgICBOb2RlKiBub2RlID0gaGln
aGxpZ2h0RGF0YS0+bm9kZS5nZXQoKTsKICAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gbm9k
ZS0+cmVuZGVyZXIoKTsKICAgICBGcmFtZSogY29udGFpbmluZ0ZyYW1lID0gbm9kZS0+ZG9jdW1l
bnQoKS0+ZnJhbWUoKTsKKyAgICBGcmFtZVZpZXcqIGNvbnRhaW5pbmdWaWV3ID0gY29udGFpbmlu
Z0ZyYW1lLT52aWV3KCk7CiAKICAgICBpZiAoIXJlbmRlcmVyIHx8ICFjb250YWluaW5nRnJhbWUp
CiAgICAgICAgIHJldHVybjsKIAotICAgIEludFNpemUgbWFpbkZyYW1lT2Zmc2V0ID0gZnJhbWVU
b01haW5GcmFtZU9mZnNldChjb250YWluaW5nRnJhbWUpOwotICAgIEludFJlY3QgYm91bmRpbmdC
b3ggPSByZW5kZXJlci0+YWJzb2x1dGVCb3VuZGluZ0JveFJlY3QoKTsKLQotICAgIGJvdW5kaW5n
Qm94Lm1vdmUobWFpbkZyYW1lT2Zmc2V0KTsKLQotICAgIEludFJlY3QgdGl0bGVBbmNob3JCb3gg
PSBib3VuZGluZ0JveDsKKyAgICBMYXlvdXRSZWN0IGJvdW5kaW5nQm94ID0gY29udGFpbmluZ1Zp
ZXctPmNvbnRlbnRzVG9Sb290VmlldyhyZW5kZXJlci0+YWJzb2x1dGVCb3VuZGluZ0JveFJlY3Qo
KSk7CisgICAgTGF5b3V0UmVjdCB0aXRsZUFuY2hvckJveCA9IGJvdW5kaW5nQm94OwogCi0gICAg
RnJhbWVWaWV3KiB2aWV3ID0gY29udGFpbmluZ0ZyYW1lLT5wYWdlKCktPm1haW5GcmFtZSgpLT52
aWV3KCk7Ci0gICAgRmxvYXRSZWN0IHZpc2libGVSZWN0ID0gdmlldy0+dmlzaWJsZUNvbnRlbnRS
ZWN0KCk7CisgICAgRnJhbWVWaWV3KiBtYWluVmlldyA9IGNvbnRhaW5pbmdGcmFtZS0+cGFnZSgp
LT5tYWluRnJhbWUoKS0+dmlldygpOworICAgIEZsb2F0UmVjdCB2aXNpYmxlUmVjdCA9IG1haW5W
aWV3LT52aXNpYmxlQ29udGVudFJlY3QoKTsKICAgICAvLyBEb24ndCB0cmFuc2xhdGUgdGhlIGNv
bnRleHQgaWYgdGhlIGZyYW1lIGlzIHJlbmRlcmVkIGluIHBhZ2UgY29vcmRpbmF0ZXMuCi0gICAg
aWYgKGNvbnRleHQgJiYgIXZpZXctPmRlbGVnYXRlc1Njcm9sbGluZygpKQorICAgIGlmIChjb250
ZXh0ICYmICFtYWluVmlldy0+ZGVsZWdhdGVzU2Nyb2xsaW5nKCkpCiAgICAgICAgIGNvbnRleHQt
PnRyYW5zbGF0ZSgtdmlzaWJsZVJlY3QueCgpLCAtdmlzaWJsZVJlY3QueSgpKTsKIAogICAgIC8v
IFJlbmRlclNWR1Jvb3Qgc2hvdWxkIGJlIGhpZ2hsaWdodGVkIHRocm91Z2ggdGhlIGlzQm94KCkg
Y29kZSBwYXRoLCBhbGwgb3RoZXIgU1ZHIGVsZW1lbnRzIHNob3VsZCBqdXN0IGR1bXAgdGhlaXIg
YWJzb2x1dGVRdWFkcygpLgpAQCAtMzkyLDcgKzM5MSw3IEBAIHN0YXRpYyB2b2lkIGdldE9yRHJh
d05vZGVIaWdobGlnaHQoR3JhcGgKICAgICAgICAgaGlnaGxpZ2h0LT50eXBlID0gSGlnaGxpZ2h0
VHlwZVJlY3RzOwogICAgICAgICByZW5kZXJlci0+YWJzb2x1dGVRdWFkcyhoaWdobGlnaHQtPnF1
YWRzKTsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBoaWdobGlnaHQtPnF1YWRzLnNp
emUoKTsgKytpKQotICAgICAgICAgICAgaGlnaGxpZ2h0LT5xdWFkc1tpXSArPSBtYWluRnJhbWVP
ZmZzZXQ7CisgICAgICAgICAgICBjb250ZW50c1F1YWRUb1Jvb3RWaWV3KGhpZ2hsaWdodC0+cXVh
ZHNbaV0sIGNvbnRhaW5pbmdWaWV3KTsKIAogICAgICAgICBpZiAoY29udGV4dCkKICAgICAgICAg
ICAgIGRyYXdIaWdobGlnaHRGb3JTVkdSZW5kZXJlcigqY29udGV4dCwgaGlnaGxpZ2h0LT5xdWFk
cywgaGlnaGxpZ2h0RGF0YSk7CkBAIC00MzUsMTAgKzQzNCwxMCBAQCBzdGF0aWMgdm9pZCBnZXRP
ckRyYXdOb2RlSGlnaGxpZ2h0KEdyYXBoCiAgICAgICAgIEZsb2F0UXVhZCBhYnNCb3JkZXJRdWFk
ID0gcmVuZGVyZXItPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KGJvcmRlckJveCkpOwog
ICAgICAgICBGbG9hdFF1YWQgYWJzTWFyZ2luUXVhZCA9IHJlbmRlcmVyLT5sb2NhbFRvQWJzb2x1
dGVRdWFkKEZsb2F0UmVjdChtYXJnaW5Cb3gpKTsKIAotICAgICAgICBhYnNDb250ZW50UXVhZC5t
b3ZlKG1haW5GcmFtZU9mZnNldCk7Ci0gICAgICAgIGFic1BhZGRpbmdRdWFkLm1vdmUobWFpbkZy
YW1lT2Zmc2V0KTsKLSAgICAgICAgYWJzQm9yZGVyUXVhZC5tb3ZlKG1haW5GcmFtZU9mZnNldCk7
Ci0gICAgICAgIGFic01hcmdpblF1YWQubW92ZShtYWluRnJhbWVPZmZzZXQpOworICAgICAgICBj
b250ZW50c1F1YWRUb1Jvb3RWaWV3KGFic0NvbnRlbnRRdWFkLCBjb250YWluaW5nVmlldyk7Cisg
ICAgICAgIGNvbnRlbnRzUXVhZFRvUm9vdFZpZXcoYWJzUGFkZGluZ1F1YWQsIGNvbnRhaW5pbmdW
aWV3KTsKKyAgICAgICAgY29udGVudHNRdWFkVG9Sb290VmlldyhhYnNCb3JkZXJRdWFkLCBjb250
YWluaW5nVmlldyk7CisgICAgICAgIGNvbnRlbnRzUXVhZFRvUm9vdFZpZXcoYWJzTWFyZ2luUXVh
ZCwgY29udGFpbmluZ1ZpZXcpOwogCiAgICAgICAgIHRpdGxlQW5jaG9yQm94ID0gYWJzTWFyZ2lu
UXVhZC5lbmNsb3NpbmdCb3VuZGluZ0JveCgpOwogCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMTQ1MTgp
CisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBA
QAorMjAxMi0wNC0xOCAgWGlhbnpodSBXYW5nICA8d2FuZ3hpYW56aHVAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIERldlRvb2xzIGhpZ2hsaWdodHMgZWxlbWVudHMgaW4gZnJhbWVzIGF0IHVuLXNj
YWxlZCBwb3NpdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTg0MTgxCisKKyAgICAgICAgVGhlIG5ldyB0ZXN0IGNhc2UgaXMgYSBzY2FsZWQgd2Vi
IHBhZ2UgY29udGFpbmluZyBhbiBpZnJhbWUuIEl0IHRlc3RzCisgICAgICAgIGlmIHRoZSBoaWdo
bGlnaHQgcmVjdCBvZiBhbiBlbGVtZW50IGluIHRoZSBpZnJhbWUgaXMgY29ycmVjdC4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9l
bGVtZW50cy9oaWdobGlnaHQtbm9kZS1zY2FsZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBpbnNwZWN0b3IvZWxlbWVudHMvaGlnaGxpZ2h0LW5vZGUtc2NhbGVkLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGluc3BlY3Rvci9lbGVtZW50cy9yZXNvdXJjZXMvaGlnaGxpZ2h0LW5vZGUt
c2NhbGVkLWlmcmFtZS5odG1sOiBBZGRlZC4KKwogMjAxMi0wNC0xOCAgU2ltb24gRnJhc2VyICA8
c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBBU1NFUlQgd2hlbiBhIGxheWVyIHdp
dGggYSBmb3JlZ3JvdW5kIGxheWVyIGlzIGluICdwYWludCBpbnRvIGFuY2VzdG9yJyBtb2RlCklu
ZGV4OiBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvaGlnaGxpZ2h0LW5vZGUtc2NhbGVk
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVu
dHMvaGlnaGxpZ2h0LW5vZGUtc2NhbGVkLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExh
eW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9oaWdobGlnaHQtbm9kZS1zY2FsZWQtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYgQEAKKworbWFyZ2luIHJlY3QgaXMgMTY2
IHggMTg4IGF0ICgxNTQsIDE5MikKK2JvcmRlciByZWN0IGlzIDEzOCB4IDE2MCBhdCAoMTY4LCAy
MDYpCitwYWRkaW5nIHJlY3QgaXMgMTE4IHggMTQwIGF0ICgxNzgsIDIxNikKK2NvbnRlbnQgcmVj
dCBpcyA2NiB4IDg4IGF0ICgyMDQsIDI0MikKKwoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2hpZ2hsaWdodC1ub2RlLXNjYWxlZC1leHBlY3RlZC50
eHQKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQogICArIExGCgpJbmRleDogTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2hpZ2hsaWdodC1ub2RlLXNjYWxlZC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9oaWdobGlnaHQtbm9kZS1z
Y2FsZWQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50
cy9oaWdobGlnaHQtbm9kZS1zY2FsZWQuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2NCBA
QAorPGh0bWw+Cis8aGVhZD4KKworPHN0eWxlPgorCitib2R5IHsKKyAgICBtYXJnaW46IDA7Cit9
CisKK2lmcmFtZSB7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIGxlZnQ6IDgzcHg7Cisg
ICAgdG9wOiA1M3B4OworICAgIHdpZHRoOiAyMDBweDsKKyAgICBoZWlnaHQ6IDIwMHB4OworfQor
Cis8L3N0eWxlPgorCis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5z
cGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworZnVuY3Rp
b24gZHVtcEluc3BlY3RvckhpZ2hsaWdodFJlY3RzKCkKK3sKKyAgICB2YXIgcmVjdE5hbWVzID0g
WyJtYXJnaW4iLCAiYm9yZGVyIiwgInBhZGRpbmciLCAiY29udGVudCJdOworICAgIHZhciByZWN0
cyA9IHdpbmRvdy5pbnRlcm5hbHMuaW5zcGVjdG9ySGlnaGxpZ2h0UmVjdHMoZG9jdW1lbnQpOwor
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjdHMubGVuZ3RoOyBpKyspCisgICAgeworICAgICAg
ICB2YXIgcmVjdE5hbWUgPSAoaSA8IHJlY3ROYW1lcy5sZW5ndGggPyByZWN0TmFtZXNbaV0gOiAi
dW50aXRsZWQiKTsKKyAgICAgICAgdmFyIHJlY3QgPSByZWN0cy5pdGVtKGkpOworICAgICAgICB2
YXIgbGluZSA9IHJlY3ROYW1lICsgIiByZWN0IGlzICIgKyByZWN0LndpZHRoICsgIiB4ICIgKyBy
ZWN0LmhlaWdodCArICIgYXQgKCIgKyByZWN0LnRvcCArICIsICIgKyByZWN0LmxlZnQgKyAiKTxi
ci8+IjsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhU
TUwgKz0gbGluZTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIG9ubG9hZCgpCit7CisgICAgd2luZG93
LmludGVybmFscy5zZXR0aW5ncy5zZXRQYWdlU2NhbGVGYWN0b3IoMiwgMCwgMCk7CisgICAgcnVu
VGVzdCgpOworfQorICAgIAorZnVuY3Rpb24gdGVzdCgpCit7CisgICAgV2ViSW5zcGVjdG9yLmlu
c3BlY3RvclZpZXcuc2V0Q3VycmVudFBhbmVsKFdlYkluc3BlY3Rvci5wYW5lbHMuZWxlbWVudHMp
OworICAgIFdlYkluc3BlY3Rvci5wYW5lbHMuZWxlbWVudHMudHJlZU91dGxpbmUuYWRkRXZlbnRM
aXN0ZW5lcihXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlT3V0bGluZS5FdmVudHMuU2VsZWN0ZWRO
b2RlQ2hhbmdlZCwgc2VsZWN0ZWROb2RlQ2hhbmdlZCwgdGhpcyk7CisKKyAgICBmdW5jdGlvbiBz
ZWxlY3RlZE5vZGVDaGFuZ2VkKGV2ZW50KQorICAgIHsKKyAgICAgICAgdmFyIG5vZGUgPSBldmVu
dC5kYXRhOworICAgICAgICBpZiAobm9kZS5nZXRBdHRyaWJ1dGUoImlkIikgPT0gImRpdiIpCisg
ICAgICAgICAgICBSdW50aW1lQWdlbnQuZXZhbHVhdGUoImR1bXBJbnNwZWN0b3JIaWdobGlnaHRS
ZWN0cygpIiwgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QpOworICAgIH0KKyAgICBJbnNwZWN0
b3JUZXN0LmV2YWx1YXRlSW5Db25zb2xlKCJpbnNwZWN0KGlmcmFtZURpdkVsZW1lbnQpIik7Cit9
CisKKzwvc2NyaXB0PgorPC9oZWFkPgorCis8Ym9keSBvbmxvYWQ9Im9ubG9hZCgpIj4KKzxpZnJh
bWUgc3JjPSJyZXNvdXJjZXMvaGlnaGxpZ2h0LW5vZGUtc2NhbGVkLWlmcmFtZS5odG1sIj48L2lm
cmFtZT4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgoKUHJvcGVy
dHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2hpZ2hsaWdodC1u
b2RlLXNjYWxlZC5odG1sCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBMRgoK
SW5kZXg6IExheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9yZXNvdXJjZXMvaGlnaGxpZ2h0
LW5vZGUtc2NhbGVkLWlmcmFtZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2luc3Bl
Y3Rvci9lbGVtZW50cy9yZXNvdXJjZXMvaGlnaGxpZ2h0LW5vZGUtc2NhbGVkLWlmcmFtZS5odG1s
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL3Jlc291cmNl
cy9oaWdobGlnaHQtbm9kZS1zY2FsZWQtaWZyYW1lLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsMjQgQEAKKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CitkaXYgeworICAgIG1hcmdpbjogN3B4
OworICAgIHBhZGRpbmc6IDEzcHg7CisgICAgYm9yZGVyOiA1cHggc29saWQgYmxhY2s7CisgICAg
cG9zaXRpb246IGFic29sdXRlOworICAgIGxlZnQ6IDExcHg7CisgICAgdG9wOiAyMnB4OworICAg
IHdpZHRoOiAzM3B4OworICAgIGhlaWdodDogNDRweDsgICAgCisgICAgYmFja2dyb3VuZC1jb2xv
cjogcmVkOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKworPGJvZHk+Cis8ZGl2IGlkPSJkaXYiPjwv
ZGl2PgorPHNjcmlwdD4KK3RvcC5pZnJhbWVEaXZFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImRpdiIpOworPC9zY3JpcHQ+Cis8L2JvZHk+CisKClByb3BlcnR5IGNoYW5nZXMgb246
IExheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9yZXNvdXJjZXMvaGlnaGxpZ2h0LW5vZGUt
c2NhbGVkLWlmcmFtZS5odG1sCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBM
RgoK
</data>
<flag name="review"
          id="142865"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137913</attachid>
            <date>2012-04-19 09:54:51 -0700</date>
            <delta_ts>2012-04-19 11:42:18 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>84181c</filename>
            <type>text/plain</type>
            <size>9829</size>
            <attacher name="Xianzhu Wang">wangxianzhu</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExNDY0MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDEyLTA0LTE5ICBYaWFuemh1
IFdhbmcgIDx3YW5neGlhbnpodUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgRGV2VG9vbHMgaGln
aGxpZ2h0cyBlbGVtZW50cyBpbiBmcmFtZXMgYXQgdW4tc2NhbGVkIHBvc2l0aW9ucworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQxODEKKworICAgICAg
ICBPbiBtb2JpbGUgcGxhdGZvcm1zIChlLmcuIGNocm9taXVtLWFuZHJvaWQpLCBub3JtYWxseSBw
YWdlcyBhcmUgc2NhbGVkLAorICAgICAgICB0aHVzIHRoZSBjb29yZGluYXRpb25zIG9mIGhpZ2hs
aWdodCByZWN0IGluc2lkZSBvZiBhIGZyYW1lIG5lZWRzIHRvCisgICAgICAgIGNvbnNpZGVyIG5v
dCBvbmx5IHRoZSBvZmZzZXQsIGJ1dCBhbHNvIHRoZSBzY2FsZS4gVGhlIGNoYW5nZSB1c2VzCisg
ICAgICAgIEZyYW1lVmlldzo6Y29udGVudHNUb1Jvb3RWaWV3KCkgdG8gbWFwIHRoZSBjb29yZGlu
YXRlcyBvZiBhIG5vZGUgaW4KKyAgICAgICAgYSBmcmFtZSB0byB0aGUgY29vcmRpbmF0ZXMgaW4g
dGhlIG1haW4gZnJhbWUsIGluc3RlYWQgb2YgY2FsY3VsYXRpbmcKKyAgICAgICAgYnkgb25seSB0
aGUgb2Zmc2V0LgorCisgICAgICAgIFJldmlld2VkIGJ5IFBhdmVsIEZlbGRtYW4uCisKKyAgICAg
ICAgVGVzdDogaW5zcGVjdG9yL2VsZW1lbnRzL2hpZ2hsaWdodC1ub2RlLXNjYWxlZC5odG1sCisK
KyAgICAgICAgKiBpbnNwZWN0b3IvRE9NTm9kZUhpZ2hsaWdodGVyLmNwcDoKKwogMjAxMi0wNC0x
OSAgTWFyayBQaWxncmltICA8cGlsZ3JpbUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9t
aXVtXSBDYWxsIG1pbWVSZWdpc3RyeSBkaXJlY3RseQpJbmRleDogU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0RPTU5vZGVIaWdobGlnaHRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0RPTU5vZGVIaWdobGlnaHRlci5jcHAJKHJldmlzaW9uIDExNDY0MikKKysr
IFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9ET01Ob2RlSGlnaGxpZ2h0ZXIuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xNDMsMTIgKzE0Myw2IEBAIHZvaWQgZHJhd0hpZ2hsaWdodEZvclNWR1JlbmRl
cmVyKEdyYXBoaWMKICAgICAgICAgZHJhd091dGxpbmVkUXVhZChjb250ZXh0LCBhYnNvbHV0ZVF1
YWRzW2ldLCBoaWdobGlnaHREYXRhLT5jb250ZW50LCBDb2xvcjo6dHJhbnNwYXJlbnQpOwogfQog
Ci1pbmxpbmUgSW50U2l6ZSBmcmFtZVRvTWFpbkZyYW1lT2Zmc2V0KEZyYW1lKiBmcmFtZSkKLXsK
LSAgICBJbnRQb2ludCBtYWluRnJhbWVQb2ludCA9IGZyYW1lLT5wYWdlKCktPm1haW5GcmFtZSgp
LT52aWV3KCktPnJvb3RWaWV3VG9Db250ZW50cyhmcmFtZS0+dmlldygpLT5jb250ZW50c1RvUm9v
dFZpZXcoSW50UG9pbnQoKSkpOwotICAgIHJldHVybiB0b1NpemUobWFpbkZyYW1lUG9pbnQpOwot
fQotCiBpbnQgZHJhd1N1YnN0cmluZyhjb25zdCBUZXh0UnVuJiBnbG9iYWxUZXh0UnVuLCBpbnQg
b2Zmc2V0LCBpbnQgbGVuZ3RoLCBjb25zdCBDb2xvciYgdGV4dENvbG9yLCBjb25zdCBGb250JiBm
b250LCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IExheW91dFJlY3QmIHRpdGxlUmVj
dCkKIHsKICAgICBjb250ZXh0LnNldEZpbGxDb2xvcih0ZXh0Q29sb3IsIENvbG9yU3BhY2VEZXZp
Y2VSR0IpOwpAQCAtMzU5LDI2ICszNTMsMzEgQEAgdm9pZCBkcmF3RWxlbWVudFRpdGxlKEdyYXBo
aWNzQ29udGV4dCYgYwogICAgIGRyYXdTdWJzdHJpbmcobm9kZVRpdGxlUnVuLCBjdXJyZW50UG9z
LCBweFN0cmluZy5sZW5ndGgoKSwgcHhBbmRCb3JkZXJDb2xvciwgZm9udCwgY29udGV4dCwgdGl0
bGVSZWN0KTsKIH0KIAorc3RhdGljIHZvaWQgY29udGVudHNRdWFkVG9Sb290VmlldyhGbG9hdFF1
YWQmIHF1YWQsIEZyYW1lVmlldyogdmlldykKK3sKKyAgICBxdWFkLnNldFAxKHZpZXctPmNvbnRl
bnRzVG9Sb290Vmlldyhyb3VuZGVkTGF5b3V0UG9pbnQocXVhZC5wMSgpKSkpOworICAgIHF1YWQu
c2V0UDIodmlldy0+Y29udGVudHNUb1Jvb3RWaWV3KHJvdW5kZWRMYXlvdXRQb2ludChxdWFkLnAy
KCkpKSk7CisgICAgcXVhZC5zZXRQMyh2aWV3LT5jb250ZW50c1RvUm9vdFZpZXcocm91bmRlZExh
eW91dFBvaW50KHF1YWQucDMoKSkpKTsKKyAgICBxdWFkLnNldFA0KHZpZXctPmNvbnRlbnRzVG9S
b290Vmlldyhyb3VuZGVkTGF5b3V0UG9pbnQocXVhZC5wNCgpKSkpOworfQorCiBzdGF0aWMgdm9p
ZCBnZXRPckRyYXdOb2RlSGlnaGxpZ2h0KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgSGlnaGxp
Z2h0RGF0YSogaGlnaGxpZ2h0RGF0YSwgSGlnaGxpZ2h0KiBoaWdobGlnaHQpCiB7CiAgICAgTm9k
ZSogbm9kZSA9IGhpZ2hsaWdodERhdGEtPm5vZGUuZ2V0KCk7CiAgICAgUmVuZGVyT2JqZWN0KiBy
ZW5kZXJlciA9IG5vZGUtPnJlbmRlcmVyKCk7CiAgICAgRnJhbWUqIGNvbnRhaW5pbmdGcmFtZSA9
IG5vZGUtPmRvY3VtZW50KCktPmZyYW1lKCk7CisgICAgRnJhbWVWaWV3KiBjb250YWluaW5nVmll
dyA9IGNvbnRhaW5pbmdGcmFtZS0+dmlldygpOwogCiAgICAgaWYgKCFyZW5kZXJlciB8fCAhY29u
dGFpbmluZ0ZyYW1lKQogICAgICAgICByZXR1cm47CiAKLSAgICBJbnRTaXplIG1haW5GcmFtZU9m
ZnNldCA9IGZyYW1lVG9NYWluRnJhbWVPZmZzZXQoY29udGFpbmluZ0ZyYW1lKTsKLSAgICBJbnRS
ZWN0IGJvdW5kaW5nQm94ID0gcmVuZGVyZXItPmFic29sdXRlQm91bmRpbmdCb3hSZWN0KCk7Ci0K
LSAgICBib3VuZGluZ0JveC5tb3ZlKG1haW5GcmFtZU9mZnNldCk7Ci0KLSAgICBJbnRSZWN0IHRp
dGxlQW5jaG9yQm94ID0gYm91bmRpbmdCb3g7CisgICAgTGF5b3V0UmVjdCBib3VuZGluZ0JveCA9
IGNvbnRhaW5pbmdWaWV3LT5jb250ZW50c1RvUm9vdFZpZXcocmVuZGVyZXItPmFic29sdXRlQm91
bmRpbmdCb3hSZWN0KCkpOworICAgIExheW91dFJlY3QgdGl0bGVBbmNob3JCb3ggPSBib3VuZGlu
Z0JveDsKIAotICAgIEZyYW1lVmlldyogdmlldyA9IGNvbnRhaW5pbmdGcmFtZS0+cGFnZSgpLT5t
YWluRnJhbWUoKS0+dmlldygpOwotICAgIEZsb2F0UmVjdCB2aXNpYmxlUmVjdCA9IHZpZXctPnZp
c2libGVDb250ZW50UmVjdCgpOworICAgIEZyYW1lVmlldyogbWFpblZpZXcgPSBjb250YWluaW5n
RnJhbWUtPnBhZ2UoKS0+bWFpbkZyYW1lKCktPnZpZXcoKTsKKyAgICBGbG9hdFJlY3QgdmlzaWJs
ZVJlY3QgPSBtYWluVmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0KCk7CiAgICAgLy8gRG9uJ3QgdHJh
bnNsYXRlIHRoZSBjb250ZXh0IGlmIHRoZSBmcmFtZSBpcyByZW5kZXJlZCBpbiBwYWdlIGNvb3Jk
aW5hdGVzLgotICAgIGlmIChjb250ZXh0ICYmICF2aWV3LT5kZWxlZ2F0ZXNTY3JvbGxpbmcoKSkK
KyAgICBpZiAoY29udGV4dCAmJiAhbWFpblZpZXctPmRlbGVnYXRlc1Njcm9sbGluZygpKQogICAg
ICAgICBjb250ZXh0LT50cmFuc2xhdGUoLXZpc2libGVSZWN0LngoKSwgLXZpc2libGVSZWN0Lnko
KSk7CiAKICAgICAvLyBSZW5kZXJTVkdSb290IHNob3VsZCBiZSBoaWdobGlnaHRlZCB0aHJvdWdo
IHRoZSBpc0JveCgpIGNvZGUgcGF0aCwgYWxsIG90aGVyIFNWRyBlbGVtZW50cyBzaG91bGQganVz
dCBkdW1wIHRoZWlyIGFic29sdXRlUXVhZHMoKS4KQEAgLTM5Miw3ICszOTEsNyBAQCBzdGF0aWMg
dm9pZCBnZXRPckRyYXdOb2RlSGlnaGxpZ2h0KEdyYXBoCiAgICAgICAgIGhpZ2hsaWdodC0+dHlw
ZSA9IEhpZ2hsaWdodFR5cGVSZWN0czsKICAgICAgICAgcmVuZGVyZXItPmFic29sdXRlUXVhZHMo
aGlnaGxpZ2h0LT5xdWFkcyk7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaGlnaGxp
Z2h0LT5xdWFkcy5zaXplKCk7ICsraSkKLSAgICAgICAgICAgIGhpZ2hsaWdodC0+cXVhZHNbaV0g
Kz0gbWFpbkZyYW1lT2Zmc2V0OworICAgICAgICAgICAgY29udGVudHNRdWFkVG9Sb290Vmlldyho
aWdobGlnaHQtPnF1YWRzW2ldLCBjb250YWluaW5nVmlldyk7CiAKICAgICAgICAgaWYgKGNvbnRl
eHQpCiAgICAgICAgICAgICBkcmF3SGlnaGxpZ2h0Rm9yU1ZHUmVuZGVyZXIoKmNvbnRleHQsIGhp
Z2hsaWdodC0+cXVhZHMsIGhpZ2hsaWdodERhdGEpOwpAQCAtNDM1LDEwICs0MzQsMTAgQEAgc3Rh
dGljIHZvaWQgZ2V0T3JEcmF3Tm9kZUhpZ2hsaWdodChHcmFwaAogICAgICAgICBGbG9hdFF1YWQg
YWJzQm9yZGVyUXVhZCA9IHJlbmRlcmVyLT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UmVjdChi
b3JkZXJCb3gpKTsKICAgICAgICAgRmxvYXRRdWFkIGFic01hcmdpblF1YWQgPSByZW5kZXJlci0+
bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QobWFyZ2luQm94KSk7CiAKLSAgICAgICAgYWJz
Q29udGVudFF1YWQubW92ZShtYWluRnJhbWVPZmZzZXQpOwotICAgICAgICBhYnNQYWRkaW5nUXVh
ZC5tb3ZlKG1haW5GcmFtZU9mZnNldCk7Ci0gICAgICAgIGFic0JvcmRlclF1YWQubW92ZShtYWlu
RnJhbWVPZmZzZXQpOwotICAgICAgICBhYnNNYXJnaW5RdWFkLm1vdmUobWFpbkZyYW1lT2Zmc2V0
KTsKKyAgICAgICAgY29udGVudHNRdWFkVG9Sb290VmlldyhhYnNDb250ZW50UXVhZCwgY29udGFp
bmluZ1ZpZXcpOworICAgICAgICBjb250ZW50c1F1YWRUb1Jvb3RWaWV3KGFic1BhZGRpbmdRdWFk
LCBjb250YWluaW5nVmlldyk7CisgICAgICAgIGNvbnRlbnRzUXVhZFRvUm9vdFZpZXcoYWJzQm9y
ZGVyUXVhZCwgY29udGFpbmluZ1ZpZXcpOworICAgICAgICBjb250ZW50c1F1YWRUb1Jvb3RWaWV3
KGFic01hcmdpblF1YWQsIGNvbnRhaW5pbmdWaWV3KTsKIAogICAgICAgICB0aXRsZUFuY2hvckJv
eCA9IGFic01hcmdpblF1YWQuZW5jbG9zaW5nQm91bmRpbmdCb3goKTsKIApJbmRleDogTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2
aXNpb24gMTE0NjQyKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTItMDQtMTkgIFhpYW56aHUgV2FuZyAgPHdhbmd4aWFuemh1QGNo
cm9taXVtLm9yZz4KKworICAgICAgICBEZXZUb29scyBoaWdobGlnaHRzIGVsZW1lbnRzIGluIGZy
YW1lcyBhdCB1bi1zY2FsZWQgcG9zaXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04NDE4MQorCisgICAgICAgIFRoZSBuZXcgdGVzdCBjYXNlIGlz
IGEgc2NhbGVkIHdlYiBwYWdlIGNvbnRhaW5pbmcgYW4gaWZyYW1lLiBJdCB0ZXN0cworICAgICAg
ICBpZiB0aGUgaGlnaGxpZ2h0IHJlY3Qgb2YgYW4gZWxlbWVudCBpbiB0aGUgaWZyYW1lIGlzIGNv
cnJlY3QuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwgRmVsZG1hbi4KKworICAgICAgICAq
IGluc3BlY3Rvci9lbGVtZW50cy9oaWdobGlnaHQtbm9kZS1zY2FsZWQtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVudHMvaGlnaGxpZ2h0LW5vZGUtc2NhbGVk
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9lbGVtZW50cy9yZXNvdXJjZXMvaGln
aGxpZ2h0LW5vZGUtc2NhbGVkLWlmcmFtZS5odG1sOiBBZGRlZC4KKwogMjAxMi0wNC0xOSAgVmlj
dG9yIENhcmJ1bmUgIDx2Y2FyYnVuZUBhZG9iZS5jb20+CiAKICAgICAgICAgRGlzcGxheSBhIFRl
eHRUcmFja0N1ZSB3aGVuIHNuYXAtdG8tbGluZXMgZmxhZyBpcyBub3Qgc2V0CkluZGV4OiBMYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvaGlnaGxpZ2h0LW5vZGUtc2NhbGVkLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvaGlnaGxp
Z2h0LW5vZGUtc2NhbGVkLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L2luc3BlY3Rvci9lbGVtZW50cy9oaWdobGlnaHQtbm9kZS1zY2FsZWQtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYgQEAKKworbWFyZ2luIHJlY3QgaXMgMTY2IHggMTg4IGF0
ICgxNTQsIDE5MikKK2JvcmRlciByZWN0IGlzIDEzOCB4IDE2MCBhdCAoMTY4LCAyMDYpCitwYWRk
aW5nIHJlY3QgaXMgMTE4IHggMTQwIGF0ICgxNzgsIDIxNikKK2NvbnRlbnQgcmVjdCBpcyA2NiB4
IDg4IGF0ICgyMDQsIDI0MikKKwoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2VsZW1lbnRzL2hpZ2hsaWdodC1ub2RlLXNjYWxlZC1leHBlY3RlZC50eHQKX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQogICArIExGCgpJbmRleDogTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2VsZW1lbnRzL2hpZ2hsaWdodC1ub2RlLXNjYWxlZC5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9oaWdobGlnaHQtbm9kZS1zY2FsZWQuaHRt
bAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9oaWdobGln
aHQtbm9kZS1zY2FsZWQuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2NSBAQAorPGh0bWw+
Cis8aGVhZD4KKworPHN0eWxlPgorCitib2R5IHsKKyAgICBtYXJnaW46IDA7Cit9CisKK2lmcmFt
ZSB7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIGxlZnQ6IDgzcHg7CisgICAgdG9wOiA1
M3B4OworICAgIHdpZHRoOiAyMDBweDsKKyAgICBoZWlnaHQ6IDIwMHB4OworfQorCis8L3N0eWxl
PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRl
c3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworZnVuY3Rpb24gZHVtcElu
c3BlY3RvckhpZ2hsaWdodFJlY3RzKCkKK3sKKyAgICB2YXIgcmVjdE5hbWVzID0gWyJtYXJnaW4i
LCAiYm9yZGVyIiwgInBhZGRpbmciLCAiY29udGVudCJdOworICAgIHZhciByZWN0cyA9IHdpbmRv
dy5pbnRlcm5hbHMuaW5zcGVjdG9ySGlnaGxpZ2h0UmVjdHMoZG9jdW1lbnQpOworICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgcmVjdHMubGVuZ3RoOyBpKyspCisgICAgeworICAgICAgICB2YXIgcmVj
dE5hbWUgPSAoaSA8IHJlY3ROYW1lcy5sZW5ndGggPyByZWN0TmFtZXNbaV0gOiAidW50aXRsZWQi
KTsKKyAgICAgICAgdmFyIHJlY3QgPSByZWN0cy5pdGVtKGkpOworICAgICAgICB2YXIgbGluZSA9
IHJlY3ROYW1lICsgIiByZWN0IGlzICIgKyByZWN0LndpZHRoICsgIiB4ICIgKyByZWN0LmhlaWdo
dCArICIgYXQgKCIgKyByZWN0LnRvcCArICIsICIgKyByZWN0LmxlZnQgKyAiKTxici8+IjsKKyAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gbGlu
ZTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIG9ubG9hZCgpCit7CisgICAgaWYgKHdpbmRvdy5pbnRl
cm5hbHMpCisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UGFnZVNjYWxlRmFj
dG9yKDIsIDAsIDApOworICAgIHJ1blRlc3QoKTsKK30KKyAgICAKK2Z1bmN0aW9uIHRlc3QoKQor
eworICAgIFdlYkluc3BlY3Rvci5pbnNwZWN0b3JWaWV3LnNldEN1cnJlbnRQYW5lbChXZWJJbnNw
ZWN0b3IucGFuZWxzLmVsZW1lbnRzKTsKKyAgICBXZWJJbnNwZWN0b3IucGFuZWxzLmVsZW1lbnRz
LnRyZWVPdXRsaW5lLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZU91
dGxpbmUuRXZlbnRzLlNlbGVjdGVkTm9kZUNoYW5nZWQsIHNlbGVjdGVkTm9kZUNoYW5nZWQsIHRo
aXMpOworCisgICAgZnVuY3Rpb24gc2VsZWN0ZWROb2RlQ2hhbmdlZChldmVudCkKKyAgICB7Cisg
ICAgICAgIHZhciBub2RlID0gZXZlbnQuZGF0YTsKKyAgICAgICAgaWYgKG5vZGUuZ2V0QXR0cmli
dXRlKCJpZCIpID09ICJkaXYiKQorICAgICAgICAgICAgUnVudGltZUFnZW50LmV2YWx1YXRlKCJk
dW1wSW5zcGVjdG9ySGlnaGxpZ2h0UmVjdHMoKSIsIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0
KTsKKyAgICB9CisgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluQ29uc29sZSgiaW5zcGVjdChp
ZnJhbWVEaXZFbGVtZW50KSIpOworfQorCis8L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHkgb25s
b2FkPSJvbmxvYWQoKSI+Cis8aWZyYW1lIHNyYz0icmVzb3VyY2VzL2hpZ2hsaWdodC1ub2RlLXNj
YWxlZC1pZnJhbWUuaHRtbCI+PC9pZnJhbWU+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzwv
Ym9keT4KKzwvaHRtbD4KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2luc3BlY3Rv
ci9lbGVtZW50cy9oaWdobGlnaHQtbm9kZS1zY2FsZWQuaHRtbApfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBz
dm46ZW9sLXN0eWxlCiAgICsgTEYKCkluZGV4OiBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVu
dHMvcmVzb3VyY2VzL2hpZ2hsaWdodC1ub2RlLXNjYWxlZC1pZnJhbWUuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvcmVzb3VyY2VzL2hpZ2hsaWdodC1u
b2RlLXNjYWxlZC1pZnJhbWUuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2luc3Bl
Y3Rvci9lbGVtZW50cy9yZXNvdXJjZXMvaGlnaGxpZ2h0LW5vZGUtc2NhbGVkLWlmcmFtZS5odG1s
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI0IEBACis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgor
ZGl2IHsKKyAgICBtYXJnaW46IDdweDsKKyAgICBwYWRkaW5nOiAxM3B4OworICAgIGJvcmRlcjog
NXB4IHNvbGlkIGJsYWNrOworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICBsZWZ0OiAxMXB4
OworICAgIHRvcDogMjJweDsKKyAgICB3aWR0aDogMzNweDsKKyAgICBoZWlnaHQ6IDQ0cHg7ICAg
IAorICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+CisKKzxi
b2R5PgorPGRpdiBpZD0iZGl2Ij48L2Rpdj4KKzxzY3JpcHQ+Cit0b3AuaWZyYW1lRGl2RWxlbWVu
dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkaXYiKTsKKzwvc2NyaXB0PgorPC9ib2R5Pgor
CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvcmVz
b3VyY2VzL2hpZ2hsaWdodC1ub2RlLXNjYWxlZC1pZnJhbWUuaHRtbApfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVk
OiBzdm46ZW9sLXN0eWxlCiAgICsgTEYKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>