<?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>37961</bug_id>
          
          <creation_ts>2010-04-21 17:20:42 -0700</creation_ts>
          <short_desc>Add a way for Widget to know about focus loss</short_desc>
          <delta_ts>2011-03-09 10:35:12 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Stuart Morgan">stuartmorgan</reporter>
          <assigned_to name="Stuart Morgan">stuartmorgan</assigned_to>
          <cc>amohr</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fishd</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>215578</commentid>
    <comment_count>0</comment_count>
    <who name="Stuart Morgan">stuartmorgan</who>
    <bug_when>2010-04-21 17:20:42 -0700</bug_when>
    <thetext>Currently, Widget has a setFocus() method to tell it that it has received focus, but no way of finding out that it has lost focus. This makes it impossible to correctly implemented focus for windowless plugins that don&apos;t have a corresponding native OS view--which Chromium on the Mac, at least, does not (and there are indications in the code that Mac Safari is, or at least once was) exploring the possibility of doing this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215584</commentid>
    <comment_count>1</comment_count>
      <attachid>54008</attachid>
    <who name="Stuart Morgan">stuartmorgan</who>
    <bug_when>2010-04-21 17:30:59 -0700</bug_when>
    <thetext>Created attachment 54008
Adds blur() to Widget

This adds blur() to Widget, along with an empty implementation on all platforms, and causes it to be called the same way setFocus() is currently called. Also adds the plumbing to connect blur() to the appropriate plugin method in Chromium (currently a no-op, but necessary for later non-WebKit Chromium changes).

No actual behavior changes should result from this patch. It will be up to platforms to start using this new method as they need it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215585</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-21 17:35:41 -0700</bug_when>
    <thetext>Attachment 54008 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/dom/Document.cpp:2873:  Declaration has space between type name and * in Widget *blurWidget  [whitespace/declaration] [3]
Total errors found: 1 in 16 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215933</commentid>
    <comment_count>3</comment_count>
      <attachid>54069</attachid>
    <who name="Stuart Morgan">stuartmorgan</who>
    <bug_when>2010-04-22 10:02:15 -0700</bug_when>
    <thetext>Created attachment 54069
Adds blur() to Widget

Fixes style issue (in both the new code and the code it was based on)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220142</commentid>
    <comment_count>4</comment_count>
      <attachid>54069</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-05-03 09:39:06 -0700</bug_when>
    <thetext>Comment on attachment 54069
Adds blur() to Widget

WebCore/platform/Widget.h:155
 +      virtual void setFocus();
how about just passing a &apos;bool focused&apos; to setFocus?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220147</commentid>
    <comment_count>5</comment_count>
    <who name="Stuart Morgan">stuartmorgan</who>
    <bug_when>2010-05-03 09:47:46 -0700</bug_when>
    <thetext>The only reason is that it would be a much more invasive change. I would have to find and change the existing implementation of setFocus in every descendent of Widget in every port, which would touch a lot more files and actually change existing logic. The chance of a build break or regression would be much higher.

Since there didn&apos;t seem to be an obvious preference for bool-argument setters in other cases (e.g., Widget has  show() and hide() rather than setVisible(bool)), I opted for the simpler change. I can do it the other way if people feel strongly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220779</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-05-04 14:19:38 -0700</bug_when>
    <thetext>It just struck me that &apos;setFocus&apos; and &apos;blur&apos; do not read like opposites.  Maybe the new method should be named setBlur?  That reads a bit funny though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221129</commentid>
    <comment_count>7</comment_count>
      <attachid>55128</attachid>
    <who name="Stuart Morgan">stuartmorgan</who>
    <bug_when>2010-05-05 08:46:28 -0700</bug_when>
    <thetext>Created attachment 55128
Adds boolean argument to setFocus

I can&apos;t come up with a better name, so I gave the setFocus(bool) approach a shot. The QT code unfortunately has a setFocus() call as well, but that was the only other one, so finding the right things to change wasn&apos;t as bad as I feared.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221139</commentid>
    <comment_count>8</comment_count>
      <attachid>55128</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-05-05 09:22:21 -0700</bug_when>
    <thetext>Comment on attachment 55128
Adds boolean argument to setFocus

Clearing flags on attachment: 55128

Committed r58821: &lt;http://trac.webkit.org/changeset/58821&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221140</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-05-05 09:22:27 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364589</commentid>
    <comment_count>10</comment_count>
    <who name="Alexander Mohr">amohr</who>
    <bug_when>2011-03-09 10:35:12 -0800</bug_when>
    <thetext>*** Bug 32836 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54008</attachid>
            <date>2010-04-21 17:30:59 -0700</date>
            <delta_ts>2010-04-22 10:02:15 -0700</delta_ts>
            <desc>Adds blur() to Widget</desc>
            <filename>37961.patch</filename>
            <type>text/plain</type>
            <size>8756</size>
            <attacher name="Stuart Morgan">stuartmorgan</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1ODAzMCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzcgQEAKKzIwMTAtMDQtMjEgIFN0dWFydCBNb3JnYW4gIDxzdHVhcnRtb3JnYW5A
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBhIGJsdXIoKSBtZXRob2QgdG8gV2lkZ2V0LCBhcyBhIGNvbXBsZW1lbnQgdG8g
c2V0Rm9jdXMoKSwgYW5kIGNhbGwKKyAgICAgICAgaXQgZnJvbSBEb2N1bWVudCB0aGUgc2FtZSB3
YXkgc2V0Rm9jdXMoKSBpcyBjYWxsZWQuCisgICAgICAgIFRoZSBibHVyIG1ldGhvZHMgY3VycmVu
dGx5IGRvIG5vdGhpbmcsIHNvIG5vIGJlaGF2aW9yIGlzIGNoYW5nZWQ7CisgICAgICAgIHRoaXMg
anVzdCBnaXZlcyBwbGF0Zm9ybXMgdGhlIG9wdGlvbiBvZiBoYW5kbGluZyB3aWRnZXQgZm9jdXMg
bG9zcy4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
Mzc5NjEKKworICAgICAgICAqIFdlYkNvcmUuYmFzZS5leHA6CisgICAgICAgICogZG9tL0RvY3Vt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXRGb2N1c2VkTm9kZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vV2lkZ2V0Lmg6CisgICAgICAgICogcGxhdGZvcm0vYW5kcm9pZC9X
aWRnZXRBbmRyb2lkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldDo6Ymx1cik6CisgICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0vV2lkZ2V0Q2hyb21pdW0uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V2lkZ2V0OjpibHVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvV2lkZ2V0RWZsLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldDo6Ymx1cik6CisgICAgICAgICogcGxhdGZvcm0v
Z3RrL1dpZGdldEd0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXaWRnZXQ6OmJsdXIpOgorICAg
ICAgICAqIHBsYXRmb3JtL2hhaWt1L1dpZGdldEhhaWt1LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OldpZGdldDo6Ymx1cik6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dpZGdldE1hYy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OldpZGdldDo6Ymx1cik6CisgICAgICAgICogcGxhdGZvcm0vcXQvV2lk
Z2V0UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0OjpibHVyKToKKyAgICAgICAgKiBw
bGF0Zm9ybS93aW4vV2lkZ2V0V2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldDo6Ymx1
cik6CisgICAgICAgICogcGxhdGZvcm0vd3gvV2lkZ2V0V3guY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6V2lkZ2V0OjpibHVyKToKKwogMjAxMC0wNC0yMSAgR2F2aW4gQmFycmFjbG91Z2ggIDxiYXJy
YWNsb3VnaEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChMZW9wYXJk
IGJ1aWxkIGZpeCkuCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUuYmFzZS5leHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9XZWJDb3JlLmJhc2UuZXhwCShyZXZpc2lvbiA1ODAxMSkKKysrIFdlYkNvcmUv
V2ViQ29yZS5iYXNlLmV4cAkod29ya2luZyBjb3B5KQpAQCAtNjA3LDYgKzYwNyw3IEBAIF9fWk43
V2ViQ29yZTZXaWRnZXQ0aGlkZUV2CiBfX1pON1dlYkNvcmU2V2lkZ2V0NHNob3dFdgogX19aTjdX
ZWJDb3JlNldpZGdldDVwYWludEVQTlNfMTVHcmFwaGljc0NvbnRleHRFUktOU183SW50UmVjdEUK
IF9fWk43V2ViQ29yZTZXaWRnZXQ4c2V0Rm9jdXNFdgorX19aTjdXZWJDb3JlNldpZGdldDRibHVy
RXYKIF9fWk43V2ViQ29yZTZXaWRnZXQ5c2V0UGFyZW50RVBOU18xMFNjcm9sbFZpZXdFCiBfX1pO
N1dlYkNvcmU2V2lkZ2V0QzFFUDZOU1ZpZXcKIF9fWk43V2ViQ29yZTZXaWRnZXRDMkVQNk5TVmll
dwpJbmRleDogV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcAkocmV2aXNpb24gNTgwMTEpCisrKyBXZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4NjgsNiArMjg2OCwxNCBAQCBib29sIERvY3VtZW50
OjpzZXRGb2N1c2VkTm9kZShQYXNzUmVmUHRyCiAgICAgICAgICAgICAKICAgICAgICAgaWYgKG9s
ZEZvY3VzZWROb2RlID09IG9sZEZvY3VzZWROb2RlLT5yb290RWRpdGFibGVFbGVtZW50KCkpCiAg
ICAgICAgICAgICBmcmFtZSgpLT5lZGl0b3IoKS0+ZGlkRW5kRWRpdGluZygpOworCisgICAgICAg
IGlmICh2aWV3KCkpIHsKKyAgICAgICAgICAgIFdpZGdldCAqYmx1cldpZGdldCA9IHdpZGdldEZv
ck5vZGUob2xkRm9jdXNlZE5vZGUuZ2V0KCkpOworICAgICAgICAgICAgaWYgKGJsdXJXaWRnZXQp
CisgICAgICAgICAgICAgICAgYmx1cldpZGdldC0+Ymx1cigpOworICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgIHZpZXcoKS0+Ymx1cigpOworICAgICAgICB9CiAgICAgfQogCiAgICAg
aWYgKG5ld0ZvY3VzZWROb2RlKSB7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0LmgJKHJldmlzaW9uIDU4MDExKQor
KysgV2ViQ29yZS9wbGF0Zm9ybS9XaWRnZXQuaAkod29ya2luZyBjb3B5KQpAQCAtMTUzLDYgKzE1
Myw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVJlY3QoY29uc3QgSW50
UmVjdCYpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRGb2N1cygpOworICAgIHZpcnR1YWwg
dm9pZCBibHVyKCk7CiAKICAgICB2b2lkIHNldEN1cnNvcihjb25zdCBDdXJzb3ImKTsKIApJbmRl
eDogV2ViQ29yZS9wbGF0Zm9ybS9hbmRyb2lkL1dpZGdldEFuZHJvaWQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvcGxhdGZvcm0vYW5kcm9pZC9XaWRnZXRBbmRyb2lkLmNwcAkocmV2aXNpb24g
NTgwMTEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2FuZHJvaWQvV2lkZ2V0QW5kcm9pZC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTYwLDYgKzYwLDEwIEBAIHZvaWQgV2lkZ2V0OjpzZXRGb2N1cygpCiAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAordm9pZCBXaWRnZXQ6OmJsdXIoKQoreworfQorCiB2
b2lkIFdpZGdldDo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjdHgsIGNvbnN0IEludFJlY3QmIHIp
CiB7CiAgICAgLy8gRklYTUU6IGluIHdoYXQgY2FzZSwgd2lsbCB0aGlzIGJlIGNhbGxlZCBmb3Ig
dGhlIHRvcCBmcmFtZT8KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vV2lkZ2V0Q2hy
b21pdW0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vV2lkZ2V0
Q2hyb21pdW0uY3BwCShyZXZpc2lvbiA1ODAxMSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vY2hyb21p
dW0vV2lkZ2V0Q2hyb21pdW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02OCw2ICs2OCwxMCBAQCB2
b2lkIFdpZGdldDo6c2V0Rm9jdXMoKQogICAgIENocm9taXVtQnJpZGdlOjp3aWRnZXRTZXRGb2N1
cyh0aGlzKTsKIH0KIAordm9pZCBXaWRnZXQ6OmJsdXIoKQoreworfQorCiB2b2lkIFdpZGdldDo6
c2V0SXNTZWxlY3RlZChib29sKQogewogfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9lZmwvV2lk
Z2V0RWZsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2VmbC9XaWRnZXRFZmwu
Y3BwCShyZXZpc2lvbiA1ODAxMSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZWZsL1dpZGdldEVmbC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTIwMyw2ICsyMDMsMTAgQEAgdm9pZCBXaWRnZXQ6OnNldEZv
Y3VzKCkKIHsKIH0KIAordm9pZCBXaWRnZXQ6OmJsdXIoKQoreworfQorCiB2b2lkIFdpZGdldDo6
YXBwbHlGYWxsYmFja0N1cnNvcigpCiB7CiAjaWYgSEFWRV9FQ09SRV9YCkluZGV4OiBXZWJDb3Jl
L3BsYXRmb3JtL2d0ay9XaWRnZXRHdGsuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZv
cm0vZ3RrL1dpZGdldEd0ay5jcHAJKHJldmlzaW9uIDU4MDExKQorKysgV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvV2lkZ2V0R3RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTgsNiArNTgsMTAgQEAgdm9p
ZCBXaWRnZXQ6OnNldEZvY3VzKCkKICAgICBndGtfd2lkZ2V0X2dyYWJfZm9jdXMocGxhdGZvcm1X
aWRnZXQoKSA/IHBsYXRmb3JtV2lkZ2V0KCkgOiBHVEtfV0lER0VUKHJvb3QoKS0+aG9zdFdpbmRv
dygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKSkpOwogfQogCit2b2lkIFdpZGdldDo6Ymx1cigpCit7
Cit9CisKIHN0YXRpYyBHZGtEcmF3YWJsZSogZ2RrRHJhd2FibGUoUGxhdGZvcm1XaWRnZXQgd2lk
Z2V0KQogewogICAgIHJldHVybiB3aWRnZXQgPyB3aWRnZXQtPndpbmRvdyA6IDA7CkluZGV4OiBX
ZWJDb3JlL3BsYXRmb3JtL2hhaWt1L1dpZGdldEhhaWt1LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3BsYXRmb3JtL2hhaWt1L1dpZGdldEhhaWt1LmNwcAkocmV2aXNpb24gNTgwMTEpCisrKyBX
ZWJDb3JlL3BsYXRmb3JtL2hhaWt1L1dpZGdldEhhaWt1LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
ODcsNiArODcsMTAgQEAgdm9pZCBXaWRnZXQ6OnNldEZvY3VzKCkKICAgICAgICAgdG9wTGV2ZWxQ
bGF0Zm9ybVdpZGdldCgpLT5NYWtlRm9jdXMoKTsKIH0KIAordm9pZCBXaWRnZXQ6OmJsdXIoKQor
eworfQorCiB2b2lkIFdpZGdldDo6c2V0Q3Vyc29yKGNvbnN0IEN1cnNvciYgY3Vyc29yKQogewog
ICAgIEF1dG9QbGF0Zm9ybVdpZGdldExvY2tlciBsb2NrZXIodG9wTGV2ZWxQbGF0Zm9ybVdpZGdl
dCgpKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbWFjL1dpZGdldE1hYy5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL21hYy9XaWRnZXRNYWMubW0JKHJldmlzaW9uIDU4MDExKQor
KysgV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2lkZ2V0TWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0x
MjAsNiArMTIwLDEwIEBAIHZvaWQgV2lkZ2V0OjpzZXRGb2N1cygpCiAgICAgRU5EX0JMT0NLX09C
SkNfRVhDRVBUSU9OUzsKIH0KIAordm9pZCBXaWRnZXQ6OmJsdXIoKQoreworfQorCiAgdm9pZCBX
aWRnZXQ6OnNldEN1cnNvcihjb25zdCBDdXJzb3ImIGN1cnNvcikKICB7CiAgICAgaWYgKFtOU0N1
cnNvciBjdXJyZW50Q3Vyc29yXSA9PSBjdXJzb3IuaW1wbCgpKQpJbmRleDogV2ViQ29yZS9wbGF0
Zm9ybS9xdC9XaWRnZXRRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9xdC9X
aWRnZXRRdC5jcHAJKHJldmlzaW9uIDU4MDExKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9xdC9XaWRn
ZXRRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc5LDYgKzc5LDEwIEBAIHZvaWQgV2lkZ2V0Ojpz
ZXRGb2N1cygpCiB7CiB9CiAKK3ZvaWQgV2lkZ2V0OjpibHVyKCkKK3sKK30KKwogdm9pZCBXaWRn
ZXQ6OnNldEN1cnNvcihjb25zdCBDdXJzb3ImIGN1cnNvcikKIHsKICNpZm5kZWYgUVRfTk9fQ1VS
U09SCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL3dpbi9XaWRnZXRXaW4uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvcGxhdGZvcm0vd2luL1dpZGdldFdpbi5jcHAJKHJldmlzaW9uIDU4MDExKQor
KysgV2ViQ29yZS9wbGF0Zm9ybS93aW4vV2lkZ2V0V2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTA1LDYgKzEwNSwxMCBAQCB2b2lkIFdpZGdldDo6c2V0Rm9jdXMoKQogewogfQogCit2b2lkIFdp
ZGdldDo6Ymx1cigpCit7Cit9CisKIHZvaWQgV2lkZ2V0OjpzZXRJc1NlbGVjdGVkKGJvb2wpCiB7
CiB9CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL3d4L1dpZGdldFd4LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BsYXRmb3JtL3d4L1dpZGdldFd4LmNwcAkocmV2aXNpb24gNTgwMTEpCisrKyBX
ZWJDb3JlL3BsYXRmb3JtL3d4L1dpZGdldFd4LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTAsNiAr
NTAsMTAgQEAgdm9pZCBXaWRnZXQ6OnNldEZvY3VzKCkKICAgICAgICAgd2lkZ2V0LT5TZXRGb2N1
cygpOwogfQogCit2b2lkIFdpZGdldDo6Ymx1cigpCit7Cit9CisKIHZvaWQgV2lkZ2V0OjpzZXRD
dXJzb3IoY29uc3QgQ3Vyc29yJiBjdXJzb3IpCiB7CiAgICAgaWYgKHBsYXRmb3JtV2lkZ2V0KCkg
JiYgY3Vyc29yLmltcGwoKSkKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNTgwMzApCisrKyBX
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAK
KzIwMTAtMDQtMjEgIFN0dWFydCBNb3JnYW4gIDxzdHVhcnRtb3JnYW5AY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENhbGwgdGhy
b3VnaCB0byB1cGRhdGVGb2N1cyB3aGVuIHBsdWdpbnMgbG9zZSBmb2N1cy4gQ3VycmVudGx5Cisg
ICAgICAgIGRvZXMgbm90aGluZywgc2luY2UgdGhlIGltcGxlbWVudGF0aW9uIG9mIHVwZGF0ZUZv
Y3VzIGRvZXNuJ3QKKyAgICAgICAgeWV0IGRvIGFueXRoaW5nIHdoZW4gY2FsbGVkIHdpdGggYSBm
YWxzZSBwYXJhbWV0ZXIuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTM3OTYxCisKKyAgICAgICAgKiBzcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBsdWdpbkNvbnRhaW5lckltcGw6OmJsdXIpOgorICAg
ICAgICAqIHNyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmg6CisKIDIwMTAtMDQtMjEgIEV2YW4g
TWFydGluICA8ZXZhbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwganVzdCBh
IGRlcGVuZGVuY3kgY2hhbmdlLgpJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5D
b250YWluZXJJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBs
dWdpbkNvbnRhaW5lckltcGwuY3BwCShyZXZpc2lvbiA1ODAxMSkKKysrIFdlYktpdC9jaHJvbWl1
bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzNCw2
ICsxMzQsMTIgQEAgdm9pZCBXZWJQbHVnaW5Db250YWluZXJJbXBsOjpzZXRGb2N1cygpCiAgICAg
bV93ZWJQbHVnaW4tPnVwZGF0ZUZvY3VzKHRydWUpOwogfQogCit2b2lkIFdlYlBsdWdpbkNvbnRh
aW5lckltcGw6OmJsdXIoKQoreworICAgIFdpZGdldDo6Ymx1cigpOworICAgIG1fd2ViUGx1Z2lu
LT51cGRhdGVGb2N1cyhmYWxzZSk7Cit9CisKIHZvaWQgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6
c2hvdygpCiB7CiAgICAgc2V0U2VsZlZpc2libGUodHJ1ZSk7CkluZGV4OiBXZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuaAkocmV2aXNpb24gNTgwMTEpCisrKyBX
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuaAkod29ya2luZyBjb3B5
KQpAQCAtNjgsNiArNjgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHBhaW50KFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dCosIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsKICAgICB2aXJ0
dWFsIHZvaWQgaW52YWxpZGF0ZVJlY3QoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwogICAgIHZp
cnR1YWwgdm9pZCBzZXRGb2N1cygpOworICAgIHZpcnR1YWwgdm9pZCBibHVyKCk7CiAgICAgdmly
dHVhbCB2b2lkIHNob3coKTsKICAgICB2aXJ0dWFsIHZvaWQgaGlkZSgpOwogICAgIHZpcnR1YWwg
dm9pZCBoYW5kbGVFdmVudChXZWJDb3JlOjpFdmVudCopOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54069</attachid>
            <date>2010-04-22 10:02:15 -0700</date>
            <delta_ts>2010-05-05 08:46:28 -0700</delta_ts>
            <desc>Adds blur() to Widget</desc>
            <filename>37961v2.patch</filename>
            <type>text/plain</type>
            <size>9284</size>
            <attacher name="Stuart Morgan">stuartmorgan</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1ODAzMCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzcgQEAKKzIwMTAtMDQtMjEgIFN0dWFydCBNb3JnYW4gIDxzdHVhcnRtb3JnYW5A
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBhIGJsdXIoKSBtZXRob2QgdG8gV2lkZ2V0LCBhcyBhIGNvbXBsZW1lbnQgdG8g
c2V0Rm9jdXMoKSwgYW5kIGNhbGwKKyAgICAgICAgaXQgZnJvbSBEb2N1bWVudCB0aGUgc2FtZSB3
YXkgc2V0Rm9jdXMoKSBpcyBjYWxsZWQuCisgICAgICAgIFRoZSBibHVyIG1ldGhvZHMgY3VycmVu
dGx5IGRvIG5vdGhpbmcsIHNvIG5vIGJlaGF2aW9yIGlzIGNoYW5nZWQ7CisgICAgICAgIHRoaXMg
anVzdCBnaXZlcyBwbGF0Zm9ybXMgdGhlIG9wdGlvbiBvZiBoYW5kbGluZyB3aWRnZXQgZm9jdXMg
bG9zcy4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
Mzc5NjEKKworICAgICAgICAqIFdlYkNvcmUuYmFzZS5leHA6CisgICAgICAgICogZG9tL0RvY3Vt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXRGb2N1c2VkTm9kZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vV2lkZ2V0Lmg6CisgICAgICAgICogcGxhdGZvcm0vYW5kcm9pZC9X
aWRnZXRBbmRyb2lkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldDo6Ymx1cik6CisgICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0vV2lkZ2V0Q2hyb21pdW0uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V2lkZ2V0OjpibHVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvV2lkZ2V0RWZsLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldDo6Ymx1cik6CisgICAgICAgICogcGxhdGZvcm0v
Z3RrL1dpZGdldEd0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXaWRnZXQ6OmJsdXIpOgorICAg
ICAgICAqIHBsYXRmb3JtL2hhaWt1L1dpZGdldEhhaWt1LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OldpZGdldDo6Ymx1cik6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dpZGdldE1hYy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OldpZGdldDo6Ymx1cik6CisgICAgICAgICogcGxhdGZvcm0vcXQvV2lk
Z2V0UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0OjpibHVyKToKKyAgICAgICAgKiBw
bGF0Zm9ybS93aW4vV2lkZ2V0V2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldDo6Ymx1
cik6CisgICAgICAgICogcGxhdGZvcm0vd3gvV2lkZ2V0V3guY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6V2lkZ2V0OjpibHVyKToKKwogMjAxMC0wNC0yMSAgR2F2aW4gQmFycmFjbG91Z2ggIDxiYXJy
YWNsb3VnaEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChMZW9wYXJk
IGJ1aWxkIGZpeCkuCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUuYmFzZS5leHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9XZWJDb3JlLmJhc2UuZXhwCShyZXZpc2lvbiA1ODAxMSkKKysrIFdlYkNvcmUv
V2ViQ29yZS5iYXNlLmV4cAkod29ya2luZyBjb3B5KQpAQCAtNjA3LDYgKzYwNyw3IEBAIF9fWk43
V2ViQ29yZTZXaWRnZXQ0aGlkZUV2CiBfX1pON1dlYkNvcmU2V2lkZ2V0NHNob3dFdgogX19aTjdX
ZWJDb3JlNldpZGdldDVwYWludEVQTlNfMTVHcmFwaGljc0NvbnRleHRFUktOU183SW50UmVjdEUK
IF9fWk43V2ViQ29yZTZXaWRnZXQ4c2V0Rm9jdXNFdgorX19aTjdXZWJDb3JlNldpZGdldDRibHVy
RXYKIF9fWk43V2ViQ29yZTZXaWRnZXQ5c2V0UGFyZW50RVBOU18xMFNjcm9sbFZpZXdFCiBfX1pO
N1dlYkNvcmU2V2lkZ2V0QzFFUDZOU1ZpZXcKIF9fWk43V2ViQ29yZTZXaWRnZXRDMkVQNk5TVmll
dwpJbmRleDogV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcAkocmV2aXNpb24gNTgwMTEpCisrKyBXZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4NjgsNiArMjg2OCwxNCBAQCBib29sIERvY3VtZW50
OjpzZXRGb2N1c2VkTm9kZShQYXNzUmVmUHRyCiAgICAgICAgICAgICAKICAgICAgICAgaWYgKG9s
ZEZvY3VzZWROb2RlID09IG9sZEZvY3VzZWROb2RlLT5yb290RWRpdGFibGVFbGVtZW50KCkpCiAg
ICAgICAgICAgICBmcmFtZSgpLT5lZGl0b3IoKS0+ZGlkRW5kRWRpdGluZygpOworCisgICAgICAg
IGlmICh2aWV3KCkpIHsKKyAgICAgICAgICAgIFdpZGdldCogYmx1cldpZGdldCA9IHdpZGdldEZv
ck5vZGUob2xkRm9jdXNlZE5vZGUuZ2V0KCkpOworICAgICAgICAgICAgaWYgKGJsdXJXaWRnZXQp
CisgICAgICAgICAgICAgICAgYmx1cldpZGdldC0+Ymx1cigpOworICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgIHZpZXcoKS0+Ymx1cigpOworICAgICAgICB9CiAgICAgfQogCiAgICAg
aWYgKG5ld0ZvY3VzZWROb2RlKSB7CkBAIC0yOTAzLDcgKzI5MTEsNyBAQCBib29sIERvY3VtZW50
OjpzZXRGb2N1c2VkTm9kZShQYXNzUmVmUHRyCiAgICAgICAgIC8vIGV3dywgSSBzdWNrLiBzZXQg
dGhlIHF0IGZvY3VzIGNvcnJlY3RseQogICAgICAgICAvLyAjIyMgZmluZCBhIGJldHRlciBwbGFj
ZSBpbiB0aGUgY29kZSBmb3IgdGhpcwogICAgICAgICBpZiAodmlldygpKSB7Ci0gICAgICAgICAg
ICBXaWRnZXQgKmZvY3VzV2lkZ2V0ID0gd2lkZ2V0Rm9yTm9kZShtX2ZvY3VzZWROb2RlLmdldCgp
KTsKKyAgICAgICAgICAgIFdpZGdldCogZm9jdXNXaWRnZXQgPSB3aWRnZXRGb3JOb2RlKG1fZm9j
dXNlZE5vZGUuZ2V0KCkpOwogICAgICAgICAgICAgaWYgKGZvY3VzV2lkZ2V0KSB7CiAgICAgICAg
ICAgICAgICAgLy8gTWFrZSBzdXJlIGEgd2lkZ2V0IGhhcyB0aGUgcmlnaHQgc2l6ZSBiZWZvcmUg
Z2l2aW5nIGl0IGZvY3VzLgogICAgICAgICAgICAgICAgIC8vIE90aGVyd2lzZSwgd2UgYXJlIHRl
c3RpbmcgZWRnZSBjYXNlcyBvZiB0aGUgV2lkZ2V0IGNvZGUuCkluZGV4OiBXZWJDb3JlL3BsYXRm
b3JtL1dpZGdldC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0LmgJKHJl
dmlzaW9uIDU4MDExKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9XaWRnZXQuaAkod29ya2luZyBjb3B5
KQpAQCAtMTUzLDYgKzE1Myw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0
ZVJlY3QoY29uc3QgSW50UmVjdCYpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRGb2N1cygp
OworICAgIHZpcnR1YWwgdm9pZCBibHVyKCk7CiAKICAgICB2b2lkIHNldEN1cnNvcihjb25zdCBD
dXJzb3ImKTsKIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9hbmRyb2lkL1dpZGdldEFuZHJvaWQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vYW5kcm9pZC9XaWRnZXRBbmRyb2lk
LmNwcAkocmV2aXNpb24gNTgwMTEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2FuZHJvaWQvV2lkZ2V0
QW5kcm9pZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYwLDYgKzYwLDEwIEBAIHZvaWQgV2lkZ2V0
OjpzZXRGb2N1cygpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAordm9pZCBXaWRnZXQ6OmJs
dXIoKQoreworfQorCiB2b2lkIFdpZGdldDo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjdHgsIGNv
bnN0IEludFJlY3QmIHIpCiB7CiAgICAgLy8gRklYTUU6IGluIHdoYXQgY2FzZSwgd2lsbCB0aGlz
IGJlIGNhbGxlZCBmb3IgdGhlIHRvcCBmcmFtZT8KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vY2hy
b21pdW0vV2lkZ2V0Q2hyb21pdW0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0v
Y2hyb21pdW0vV2lkZ2V0Q2hyb21pdW0uY3BwCShyZXZpc2lvbiA1ODAxMSkKKysrIFdlYkNvcmUv
cGxhdGZvcm0vY2hyb21pdW0vV2lkZ2V0Q2hyb21pdW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02
OCw2ICs2OCwxMCBAQCB2b2lkIFdpZGdldDo6c2V0Rm9jdXMoKQogICAgIENocm9taXVtQnJpZGdl
Ojp3aWRnZXRTZXRGb2N1cyh0aGlzKTsKIH0KIAordm9pZCBXaWRnZXQ6OmJsdXIoKQoreworfQor
CiB2b2lkIFdpZGdldDo6c2V0SXNTZWxlY3RlZChib29sKQogewogfQpJbmRleDogV2ViQ29yZS9w
bGF0Zm9ybS9lZmwvV2lkZ2V0RWZsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3Jt
L2VmbC9XaWRnZXRFZmwuY3BwCShyZXZpc2lvbiA1ODAxMSkKKysrIFdlYkNvcmUvcGxhdGZvcm0v
ZWZsL1dpZGdldEVmbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwMyw2ICsyMDMsMTAgQEAgdm9p
ZCBXaWRnZXQ6OnNldEZvY3VzKCkKIHsKIH0KIAordm9pZCBXaWRnZXQ6OmJsdXIoKQoreworfQor
CiB2b2lkIFdpZGdldDo6YXBwbHlGYWxsYmFja0N1cnNvcigpCiB7CiAjaWYgSEFWRV9FQ09SRV9Y
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2d0ay9XaWRnZXRHdGsuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGxhdGZvcm0vZ3RrL1dpZGdldEd0ay5jcHAJKHJldmlzaW9uIDU4MDExKQorKysg
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvV2lkZ2V0R3RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTgs
NiArNTgsMTAgQEAgdm9pZCBXaWRnZXQ6OnNldEZvY3VzKCkKICAgICBndGtfd2lkZ2V0X2dyYWJf
Zm9jdXMocGxhdGZvcm1XaWRnZXQoKSA/IHBsYXRmb3JtV2lkZ2V0KCkgOiBHVEtfV0lER0VUKHJv
b3QoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKSkpOwogfQogCit2b2lkIFdp
ZGdldDo6Ymx1cigpCit7Cit9CisKIHN0YXRpYyBHZGtEcmF3YWJsZSogZ2RrRHJhd2FibGUoUGxh
dGZvcm1XaWRnZXQgd2lkZ2V0KQogewogICAgIHJldHVybiB3aWRnZXQgPyB3aWRnZXQtPndpbmRv
dyA6IDA7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2hhaWt1L1dpZGdldEhhaWt1LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2hhaWt1L1dpZGdldEhhaWt1LmNwcAkocmV2aXNp
b24gNTgwMTEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2hhaWt1L1dpZGdldEhhaWt1LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtODcsNiArODcsMTAgQEAgdm9pZCBXaWRnZXQ6OnNldEZvY3VzKCkKICAg
ICAgICAgdG9wTGV2ZWxQbGF0Zm9ybVdpZGdldCgpLT5NYWtlRm9jdXMoKTsKIH0KIAordm9pZCBX
aWRnZXQ6OmJsdXIoKQoreworfQorCiB2b2lkIFdpZGdldDo6c2V0Q3Vyc29yKGNvbnN0IEN1cnNv
ciYgY3Vyc29yKQogewogICAgIEF1dG9QbGF0Zm9ybVdpZGdldExvY2tlciBsb2NrZXIodG9wTGV2
ZWxQbGF0Zm9ybVdpZGdldCgpKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbWFjL1dpZGdldE1h
Yy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL21hYy9XaWRnZXRNYWMubW0JKHJl
dmlzaW9uIDU4MDExKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2lkZ2V0TWFjLm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMjAsNiArMTIwLDEwIEBAIHZvaWQgV2lkZ2V0OjpzZXRGb2N1cygpCiAg
ICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIH0KIAordm9pZCBXaWRnZXQ6OmJsdXIoKQor
eworfQorCiAgdm9pZCBXaWRnZXQ6OnNldEN1cnNvcihjb25zdCBDdXJzb3ImIGN1cnNvcikKICB7
CiAgICAgaWYgKFtOU0N1cnNvciBjdXJyZW50Q3Vyc29yXSA9PSBjdXJzb3IuaW1wbCgpKQpJbmRl
eDogV2ViQ29yZS9wbGF0Zm9ybS9xdC9XaWRnZXRRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wbGF0Zm9ybS9xdC9XaWRnZXRRdC5jcHAJKHJldmlzaW9uIDU4MDExKQorKysgV2ViQ29yZS9w
bGF0Zm9ybS9xdC9XaWRnZXRRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc5LDYgKzc5LDEwIEBA
IHZvaWQgV2lkZ2V0OjpzZXRGb2N1cygpCiB7CiB9CiAKK3ZvaWQgV2lkZ2V0OjpibHVyKCkKK3sK
K30KKwogdm9pZCBXaWRnZXQ6OnNldEN1cnNvcihjb25zdCBDdXJzb3ImIGN1cnNvcikKIHsKICNp
Zm5kZWYgUVRfTk9fQ1VSU09SCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL3dpbi9XaWRnZXRXaW4u
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vd2luL1dpZGdldFdpbi5jcHAJKHJl
dmlzaW9uIDU4MDExKQorKysgV2ViQ29yZS9wbGF0Zm9ybS93aW4vV2lkZ2V0V2luLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTA1LDYgKzEwNSwxMCBAQCB2b2lkIFdpZGdldDo6c2V0Rm9jdXMoKQog
ewogfQogCit2b2lkIFdpZGdldDo6Ymx1cigpCit7Cit9CisKIHZvaWQgV2lkZ2V0OjpzZXRJc1Nl
bGVjdGVkKGJvb2wpCiB7CiB9CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL3d4L1dpZGdldFd4LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL3d4L1dpZGdldFd4LmNwcAkocmV2aXNp
b24gNTgwMTEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL3d4L1dpZGdldFd4LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNTAsNiArNTAsMTAgQEAgdm9pZCBXaWRnZXQ6OnNldEZvY3VzKCkKICAgICAgICAg
d2lkZ2V0LT5TZXRGb2N1cygpOwogfQogCit2b2lkIFdpZGdldDo6Ymx1cigpCit7Cit9CisKIHZv
aWQgV2lkZ2V0OjpzZXRDdXJzb3IoY29uc3QgQ3Vyc29yJiBjdXJzb3IpCiB7CiAgICAgaWYgKHBs
YXRmb3JtV2lkZ2V0KCkgJiYgY3Vyc29yLmltcGwoKSkKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkocmV2aXNp
b24gNTgwMzApCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTAtMDQtMjEgIFN0dWFydCBNb3JnYW4gIDxzdHVhcnRtb3JnYW5A
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIENhbGwgdGhyb3VnaCB0byB1cGRhdGVGb2N1cyB3aGVuIHBsdWdpbnMgbG9zZSBmb2N1
cy4gQ3VycmVudGx5CisgICAgICAgIGRvZXMgbm90aGluZywgc2luY2UgdGhlIGltcGxlbWVudGF0
aW9uIG9mIHVwZGF0ZUZvY3VzIGRvZXNuJ3QKKyAgICAgICAgeWV0IGRvIGFueXRoaW5nIHdoZW4g
Y2FsbGVkIHdpdGggYSBmYWxzZSBwYXJhbWV0ZXIuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3OTYxCisKKyAgICAgICAgKiBzcmMvV2ViUGx1Z2lu
Q29udGFpbmVySW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBsdWdpbkNvbnRhaW5lcklt
cGw6OmJsdXIpOgorICAgICAgICAqIHNyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmg6CisKIDIw
MTAtMDQtMjEgIEV2YW4gTWFydGluICA8ZXZhbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5y
ZXZpZXdlZCwganVzdCBhIGRlcGVuZGVuY3kgY2hhbmdlLgpJbmRleDogV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuY3BwCShyZXZpc2lvbiA1ODAxMSkKKysr
IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEzNCw2ICsxMzQsMTIgQEAgdm9pZCBXZWJQbHVnaW5Db250YWluZXJJbXBsOjpz
ZXRGb2N1cygpCiAgICAgbV93ZWJQbHVnaW4tPnVwZGF0ZUZvY3VzKHRydWUpOwogfQogCit2b2lk
IFdlYlBsdWdpbkNvbnRhaW5lckltcGw6OmJsdXIoKQoreworICAgIFdpZGdldDo6Ymx1cigpOwor
ICAgIG1fd2ViUGx1Z2luLT51cGRhdGVGb2N1cyhmYWxzZSk7Cit9CisKIHZvaWQgV2ViUGx1Z2lu
Q29udGFpbmVySW1wbDo6c2hvdygpCiB7CiAgICAgc2V0U2VsZlZpc2libGUodHJ1ZSk7CkluZGV4
OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuaAkocmV2aXNp
b24gNTgwMTEpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwu
aAkod29ya2luZyBjb3B5KQpAQCAtNjgsNiArNjgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIHBhaW50KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCosIGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmKTsKICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVJlY3QoY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRGb2N1cygpOworICAgIHZpcnR1YWwgdm9pZCBi
bHVyKCk7CiAgICAgdmlydHVhbCB2b2lkIHNob3coKTsKICAgICB2aXJ0dWFsIHZvaWQgaGlkZSgp
OwogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVFdmVudChXZWJDb3JlOjpFdmVudCopOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55128</attachid>
            <date>2010-05-05 08:46:28 -0700</date>
            <delta_ts>2010-05-05 09:22:20 -0700</delta_ts>
            <desc>Adds boolean argument to setFocus</desc>
            <filename>37961v3.patch</filename>
            <type>text/plain</type>
            <size>17729</size>
            <attacher name="Stuart Morgan">stuartmorgan</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1ODgxOCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTAgQEAKKzIwMTAtMDUtMDUgIFN0dWFydCBNb3JnYW4gIDxzdHVhcnRtb3JnYW5A
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBhICJmb2N1c2VkIiBwYXJhbWV0ZXIgdG8gV2lkZ2V0OjpzZXRGb2N1cywgYW5k
IHVwZGF0ZXMgRG9jdW1lbnQKKyAgICAgICAgc28gdGhhdCBXaWRnZXQgaXMgaW5mb3JtZWQgb2Yg
Zm9jdXMgbG9zcyBhcyB3ZWxsIGFzIGZvY3VzIGdhaW4uCisgICAgICAgIENoYW5nZXMgYWxsIGV4
aXN0aW5nIHNldEZvY3VzIGltcGxlbWVudGF0aW9ucyBzbyB0aGF0IHRoZXkgaWdub3JlCisgICAg
ICAgIHRoZSAnZmFsc2UnIGNhc2UsIHNvIG5vIGJlaGF2aW9yIGlzIGNoYW5nZWQgdW50aWwgaW5k
aXZpZHVhbAorICAgICAgICBwbGF0Zm9ybXMgYXJlIHVwZGF0ZWQgdG8gaGFuZGxlIHRoZSBuZXcg
Y2FzZSAoaWYgdGhleSB3YW50IHRvKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9Mzc5NjEKKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0Rm9jdXNlZE5vZGUpOgorICAgICAgICAqIHBs
YXRmb3JtL1dpZGdldC5oOgorICAgICAgICAqIHBsYXRmb3JtL2FuZHJvaWQvV2lkZ2V0QW5kcm9p
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXaWRnZXQ6OnNldEZvY3VzKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9jaHJvbWl1bS9XaWRnZXRDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpX
aWRnZXQ6OnNldEZvY3VzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvV2lkZ2V0RWZsLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OldpZGdldDo6c2V0Rm9jdXMpOgorICAgICAgICAqIHBsYXRmb3Jt
L2d0ay9XaWRnZXRHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0OjpzZXRGb2N1cyk6
CisgICAgICAgICogcGxhdGZvcm0vaGFpa3UvV2lkZ2V0SGFpa3UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V2lkZ2V0OjpzZXRGb2N1cyk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dpZGdldE1h
Yy5tbToKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldDo6c2V0Rm9jdXMpOgorICAgICAgICAqIHBs
YXRmb3JtL3F0L1dpZGdldFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldDo6c2V0Rm9j
dXMpOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9XaWRnZXRXaW4uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V2lkZ2V0OjpzZXRGb2N1cyk6CisgICAgICAgICogcGxhdGZvcm0vd3gvV2lkZ2V0V3gu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0OjpzZXRGb2N1cyk6CisgICAgICAgICogcGx1
Z2lucy9QbHVnaW5WaWV3Lmg6CisgICAgICAgICogcGx1Z2lucy9QbHVnaW5WaWV3Tm9uZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpzZXRGb2N1cyk6CisgICAgICAgICogcGx1
Z2lucy9ndGsvUGx1Z2luVmlld0d0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3
OjpzZXRGb2N1cyk6CisgICAgICAgICogcGx1Z2lucy9tYWMvUGx1Z2luVmlld01hYy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpzZXRGb2N1cyk6CisgICAgICAgICogcGx1Z2lu
cy9xdC9QbHVnaW5WaWV3UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6c2V0
Rm9jdXMpOgorICAgICAgICAqIHBsdWdpbnMvc3ltYmlhbi9QbHVnaW5WaWV3U3ltYmlhbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpzZXRGb2N1cyk6CisgICAgICAgICogcGx1
Z2lucy93aW4vUGx1Z2luVmlld1dpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3
OjpzZXRGb2N1cyk6CisKIDIwMTAtMDUtMDUgIFN0ZXZlIEJsb2NrICA8c3RldmVibG9ja0Bnb29n
bGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFBhdmVsIEZlbGRtYW4uCkluZGV4OiBXZWJD
b3JlL1dlYkNvcmUuYmFzZS5leHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLmJhc2Uu
ZXhwCShyZXZpc2lvbiA1ODgxNykKKysrIFdlYkNvcmUvV2ViQ29yZS5iYXNlLmV4cAkod29ya2lu
ZyBjb3B5KQpAQCAtNjA0LDcgKzYwNCw3IEBAIF9fWk43V2ViQ29yZTZXaWRnZXQyMXJlbGVhc2VQ
bGF0Zm9ybVdpZGcKIF9fWk43V2ViQ29yZTZXaWRnZXQ0aGlkZUV2CiBfX1pON1dlYkNvcmU2V2lk
Z2V0NHNob3dFdgogX19aTjdXZWJDb3JlNldpZGdldDVwYWludEVQTlNfMTVHcmFwaGljc0NvbnRl
eHRFUktOU183SW50UmVjdEUKLV9fWk43V2ViQ29yZTZXaWRnZXQ4c2V0Rm9jdXNFdgorX19aTjdX
ZWJDb3JlNldpZGdldDhzZXRGb2N1c0ViCiBfX1pON1dlYkNvcmU2V2lkZ2V0OXNldFBhcmVudEVQ
TlNfMTBTY3JvbGxWaWV3RQogX19aTjdXZWJDb3JlNldpZGdldEMxRVA2TlNWaWV3CiBfX1pON1dl
YkNvcmU2V2lkZ2V0QzJFUDZOU1ZpZXcKSW5kZXg6IFdlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHJldmlzaW9uIDU4ODE3KQor
KysgV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODcxLDYgKzI4
NzEsMTQgQEAgYm9vbCBEb2N1bWVudDo6c2V0Rm9jdXNlZE5vZGUoUGFzc1JlZlB0cgogICAgICAg
ICAgICAgCiAgICAgICAgIGlmIChvbGRGb2N1c2VkTm9kZSA9PSBvbGRGb2N1c2VkTm9kZS0+cm9v
dEVkaXRhYmxlRWxlbWVudCgpKQogICAgICAgICAgICAgZnJhbWUoKS0+ZWRpdG9yKCktPmRpZEVu
ZEVkaXRpbmcoKTsKKworICAgICAgICBpZiAodmlldygpKSB7CisgICAgICAgICAgICBXaWRnZXQq
IG9sZFdpZGdldCA9IHdpZGdldEZvck5vZGUob2xkRm9jdXNlZE5vZGUuZ2V0KCkpOworICAgICAg
ICAgICAgaWYgKG9sZFdpZGdldCkKKyAgICAgICAgICAgICAgICBvbGRXaWRnZXQtPnNldEZvY3Vz
KGZhbHNlKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB2aWV3KCktPnNldEZv
Y3VzKGZhbHNlKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIGlmIChuZXdGb2N1c2VkTm9kZSkg
ewpAQCAtMjg5OCw3ICsyOTA2LDcgQEAgYm9vbCBEb2N1bWVudDo6c2V0Rm9jdXNlZE5vZGUoUGFz
c1JlZlB0cgogICAgICAgICAgICAgZm9jdXNDaGFuZ2VCbG9ja2VkID0gdHJ1ZTsKICAgICAgICAg
ICAgIGdvdG8gU2V0Rm9jdXNlZE5vZGVEb25lOwogICAgICAgICB9Ci0gICAgICAgIG1fZm9jdXNl
ZE5vZGUtPnNldEZvY3VzKCk7CisgICAgICAgIG1fZm9jdXNlZE5vZGUtPnNldEZvY3VzKHRydWUp
OwogCiAgICAgICAgIGlmIChtX2ZvY3VzZWROb2RlID09IG1fZm9jdXNlZE5vZGUtPnJvb3RFZGl0
YWJsZUVsZW1lbnQoKSkKICAgICAgICAgICAgIGZyYW1lKCktPmVkaXRvcigpLT5kaWRCZWdpbkVk
aXRpbmcoKTsKQEAgLTI5MTYsOSArMjkyNCw5IEBAIGJvb2wgRG9jdW1lbnQ6OnNldEZvY3VzZWRO
b2RlKFBhc3NSZWZQdHIKICAgICAgICAgICAgICAgICBmb2N1c1dpZGdldCA9IHdpZGdldEZvck5v
ZGUobV9mb2N1c2VkTm9kZS5nZXQoKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAo
Zm9jdXNXaWRnZXQpCi0gICAgICAgICAgICAgICAgZm9jdXNXaWRnZXQtPnNldEZvY3VzKCk7Cisg
ICAgICAgICAgICAgICAgZm9jdXNXaWRnZXQtPnNldEZvY3VzKHRydWUpOwogICAgICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgICAgIHZpZXcoKS0+c2V0Rm9jdXMoKTsKKyAgICAgICAgICAgICAg
ICB2aWV3KCktPnNldEZvY3VzKHRydWUpOwogICAgICAgICB9CiAgICAgfQogCkluZGV4OiBXZWJD
b3JlL3BsYXRmb3JtL1dpZGdldC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vV2lk
Z2V0LmgJKHJldmlzaW9uIDU4ODE3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9XaWRnZXQuaAkod29y
a2luZyBjb3B5KQpAQCAtMTYxLDcgKzE2MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGludmFsaWRh
dGUoKSB7IGludmFsaWRhdGVSZWN0KGJvdW5kc1JlY3QoKSk7IH0KICAgICB2aXJ0dWFsIHZvaWQg
aW52YWxpZGF0ZVJlY3QoY29uc3QgSW50UmVjdCYpID0gMDsKIAotICAgIHZpcnR1YWwgdm9pZCBz
ZXRGb2N1cygpOworICAgIHZpcnR1YWwgdm9pZCBzZXRGb2N1cyhib29sKTsKIAogICAgIHZvaWQg
c2V0Q3Vyc29yKGNvbnN0IEN1cnNvciYpOwogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2FuZHJv
aWQvV2lkZ2V0QW5kcm9pZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9hbmRy
b2lkL1dpZGdldEFuZHJvaWQuY3BwCShyZXZpc2lvbiA1ODgxNykKKysrIFdlYkNvcmUvcGxhdGZv
cm0vYW5kcm9pZC9XaWRnZXRBbmRyb2lkLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTUsNyArNTUs
NyBAQCBJbnRSZWN0IFdpZGdldDo6ZnJhbWVSZWN0KCkgY29uc3QKICAgICByZXR1cm4gcGxhdGZv
cm1XaWRnZXQoKS0+Z2V0Qm91bmRzKCk7CiB9CiAKLXZvaWQgV2lkZ2V0OjpzZXRGb2N1cygpCit2
b2lkIFdpZGdldDo6c2V0Rm9jdXMoYm9vbCBmb2N1c2VkKQogewogICAgIG5vdEltcGxlbWVudGVk
KCk7CiB9CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1dpZGdldENocm9taXVtLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1dpZGdldENocm9taXVt
LmNwcAkocmV2aXNpb24gNTg4MTcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1dpZGdl
dENocm9taXVtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjMsOSArNjMsMTAgQEAgdm9pZCBXaWRn
ZXQ6OnBhaW50KEdyYXBoaWNzQ29udGV4dCosIGNvbgogewogfQogCi12b2lkIFdpZGdldDo6c2V0
Rm9jdXMoKQordm9pZCBXaWRnZXQ6OnNldEZvY3VzKGJvb2wgZm9jdXNlZCkKIHsKLSAgICBDaHJv
bWl1bUJyaWRnZTo6d2lkZ2V0U2V0Rm9jdXModGhpcyk7CisgICAgaWYgKGZvY3VzZWQpCisgICAg
ICAgIENocm9taXVtQnJpZGdlOjp3aWRnZXRTZXRGb2N1cyh0aGlzKTsKIH0KIAogdm9pZCBXaWRn
ZXQ6OnNldElzU2VsZWN0ZWQoYm9vbCkKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZWZsL1dpZGdl
dEVmbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9lZmwvV2lkZ2V0RWZsLmNw
cAkocmV2aXNpb24gNTg4MTcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2VmbC9XaWRnZXRFZmwuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xOTksNyArMTk5LDcgQEAgdm9pZCBXaWRnZXQ6OmZyYW1lUmVj
dHNDaGFuZ2VkKCkKICAgICBldmFzX29iamVjdF9yZXNpemUobywgcmVjdC53aWR0aCgpLCByZWN0
LmhlaWdodCgpKTsKIH0KIAotdm9pZCBXaWRnZXQ6OnNldEZvY3VzKCkKK3ZvaWQgV2lkZ2V0Ojpz
ZXRGb2N1cyhib29sIGZvY3VzZWQpCiB7CiB9CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3Rr
L1dpZGdldEd0ay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ndGsvV2lkZ2V0
R3RrLmNwcAkocmV2aXNpb24gNTg4MTcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2d0ay9XaWRnZXRH
dGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Myw5ICs1MywxMCBAQCBXaWRnZXQ6On5XaWRnZXQo
KQogICAgIHJlbGVhc2VQbGF0Zm9ybVdpZGdldCgpOwogfQogCi12b2lkIFdpZGdldDo6c2V0Rm9j
dXMoKQordm9pZCBXaWRnZXQ6OnNldEZvY3VzKGJvb2wgZm9jdXNlZCkKIHsKLSAgICBndGtfd2lk
Z2V0X2dyYWJfZm9jdXMocGxhdGZvcm1XaWRnZXQoKSA/IHBsYXRmb3JtV2lkZ2V0KCkgOiBHVEtf
V0lER0VUKHJvb3QoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKSkpOworICAg
IGlmIChmb2N1c2VkKQorICAgICAgICBndGtfd2lkZ2V0X2dyYWJfZm9jdXMocGxhdGZvcm1XaWRn
ZXQoKSA/IHBsYXRmb3JtV2lkZ2V0KCkgOiBHVEtfV0lER0VUKHJvb3QoKS0+aG9zdFdpbmRvdygp
LT5wbGF0Zm9ybVBhZ2VDbGllbnQoKSkpOwogfQogCiBzdGF0aWMgR2RrRHJhd2FibGUqIGdka0Ry
YXdhYmxlKFBsYXRmb3JtV2lkZ2V0IHdpZGdldCkKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vaGFp
a3UvV2lkZ2V0SGFpa3UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vaGFpa3Uv
V2lkZ2V0SGFpa3UuY3BwCShyZXZpc2lvbiA1ODgxNykKKysrIFdlYkNvcmUvcGxhdGZvcm0vaGFp
a3UvV2lkZ2V0SGFpa3UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MCwxMSArODAsMTMgQEAgdm9p
ZCBXaWRnZXQ6OnNldEZyYW1lUmVjdChjb25zdCBJbnRSZWN0JgogICAgIG1fZnJhbWUgPSByZWN0
OwogfQogCi12b2lkIFdpZGdldDo6c2V0Rm9jdXMoKQordm9pZCBXaWRnZXQ6OnNldEZvY3VzKGJv
b2wgZm9jdXNlZCkKIHsKLSAgICBBdXRvUGxhdGZvcm1XaWRnZXRMb2NrZXIgbG9ja2VyKHRvcExl
dmVsUGxhdGZvcm1XaWRnZXQoKSk7Ci0gICAgaWYgKGxvY2tlci5pc0xvY2tlZCgpKQotICAgICAg
ICB0b3BMZXZlbFBsYXRmb3JtV2lkZ2V0KCktPk1ha2VGb2N1cygpOworICAgIGlmIChmb2N1c2Vk
KSB7CisgICAgICAgIEF1dG9QbGF0Zm9ybVdpZGdldExvY2tlciBsb2NrZXIodG9wTGV2ZWxQbGF0
Zm9ybVdpZGdldCgpKTsKKyAgICAgICAgaWYgKGxvY2tlci5pc0xvY2tlZCgpKQorICAgICAgICAg
ICAgdG9wTGV2ZWxQbGF0Zm9ybVdpZGdldCgpLT5NYWtlRm9jdXMoKTsKKyAgICB9CiB9CiAKIHZv
aWQgV2lkZ2V0OjpzZXRDdXJzb3IoY29uc3QgQ3Vyc29yJiBjdXJzb3IpCkluZGV4OiBXZWJDb3Jl
L3BsYXRmb3JtL21hYy9XaWRnZXRNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvV2lkZ2V0TWFjLm1tCShyZXZpc2lvbiA1ODgxNykKKysrIFdlYkNvcmUvcGxhdGZvcm0v
bWFjL1dpZGdldE1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTA1LDggKzEwNSwxMSBAQCBXaWRn
ZXQ6On5XaWRnZXQoKQogfQogCiAvLyBGSVhNRTogU2hvdWxkIG1vdmUgdGhpcyB0byBDaHJvbWU7
IGJhZCBsYXllcmluZyB0aGF0IHRoaXMga25vd3MgYWJvdXQgRnJhbWUuCi12b2lkIFdpZGdldDo6
c2V0Rm9jdXMoKQordm9pZCBXaWRnZXQ6OnNldEZvY3VzKGJvb2wgZm9jdXNlZCkKIHsKKyAgICBp
ZiAoIWZvY3VzZWQpCisgICAgICAgIHJldHVybjsKKwogICAgIEZyYW1lKiBmcmFtZSA9IEZyYW1l
OjpmcmFtZUZvcldpZGdldCh0aGlzKTsKICAgICBpZiAoIWZyYW1lKQogICAgICAgICByZXR1cm47
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL3F0L1dpZGdldFF0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BsYXRmb3JtL3F0L1dpZGdldFF0LmNwcAkocmV2aXNpb24gNTg4MTcpCisrKyBXZWJD
b3JlL3BsYXRmb3JtL3F0L1dpZGdldFF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzUsNyArNzUs
NyBAQCB2b2lkIFdpZGdldDo6c2V0RnJhbWVSZWN0KGNvbnN0IEludFJlY3QmCiAgICAgZnJhbWVS
ZWN0c0NoYW5nZWQoKTsKIH0KIAotdm9pZCBXaWRnZXQ6OnNldEZvY3VzKCkKK3ZvaWQgV2lkZ2V0
OjpzZXRGb2N1cyhib29sIGZvY3VzZWQpCiB7CiB9CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0v
d2luL1dpZGdldFdpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS93aW4vV2lk
Z2V0V2luLmNwcAkocmV2aXNpb24gNTg4MTcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL3dpbi9XaWRn
ZXRXaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDEsNyArMTAxLDcgQEAgdm9pZCBXaWRnZXQ6
OnBhaW50KEdyYXBoaWNzQ29udGV4dCosIGNvbgogewogfQogCi12b2lkIFdpZGdldDo6c2V0Rm9j
dXMoKQordm9pZCBXaWRnZXQ6OnNldEZvY3VzKGJvb2wgZm9jdXNlZCkKIHsKIH0KIApJbmRleDog
V2ViQ29yZS9wbGF0Zm9ybS93eC9XaWRnZXRXeC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
bGF0Zm9ybS93eC9XaWRnZXRXeC5jcHAJKHJldmlzaW9uIDU4ODE3KQorKysgV2ViQ29yZS9wbGF0
Zm9ybS93eC9XaWRnZXRXeC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDEwICs0NCwxMiBAQCBX
aWRnZXQ6On5XaWRnZXQoKQogewogfQogCi12b2lkIFdpZGdldDo6c2V0Rm9jdXMoKQordm9pZCBX
aWRnZXQ6OnNldEZvY3VzKGJvb2wgZm9jdXNlZCkKIHsKLSAgICBpZiAoUGxhdGZvcm1XaWRnZXQg
d2lkZ2V0ID0gcGxhdGZvcm1XaWRnZXQoKSkKLSAgICAgICAgd2lkZ2V0LT5TZXRGb2N1cygpOwor
ICAgIGlmIChmb2N1c2VkKSB7CisgICAgICAgIGlmIChQbGF0Zm9ybVdpZGdldCB3aWRnZXQgPSBw
bGF0Zm9ybVdpZGdldCgpKQorICAgICAgICAgICAgd2lkZ2V0LT5TZXRGb2N1cygpOworICAgIH0K
IH0KIAogdm9pZCBXaWRnZXQ6OnNldEN1cnNvcihjb25zdCBDdXJzb3ImIGN1cnNvcikKSW5kZXg6
IFdlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbHVn
aW5zL1BsdWdpblZpZXcuaAkocmV2aXNpb24gNTg4MTcpCisrKyBXZWJDb3JlL3BsdWdpbnMvUGx1
Z2luVmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNjUsNyArMTY1LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICAvLyBXaWRnZXQgZnVuY3Rpb25zCiAgICAgICAgIHZpcnR1YWwgdm9p
ZCBzZXRGcmFtZVJlY3QoY29uc3QgSW50UmVjdCYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZnJh
bWVSZWN0c0NoYW5nZWQoKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHNldEZvY3VzKCk7CisgICAg
ICAgIHZpcnR1YWwgdm9pZCBzZXRGb2N1cyhib29sKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHNo
b3coKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGhpZGUoKTsKICAgICAgICAgdmlydHVhbCB2b2lk
IHBhaW50KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEludFJlY3QmKTsKSW5kZXg6IFdlYkNvcmUv
cGx1Z2lucy9QbHVnaW5WaWV3Tm9uZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbHVnaW5z
L1BsdWdpblZpZXdOb25lLmNwcAkocmV2aXNpb24gNTg4MTcpCisrKyBXZWJDb3JlL3BsdWdpbnMv
UGx1Z2luVmlld05vbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw3IEBAIHVzaW5n
IG5hbWVzcGFjZSBXVEY7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdm9pZCBQbHVnaW5WaWV3
OjpzZXRGb2N1cygpCit2b2lkIFBsdWdpblZpZXc6OnNldEZvY3VzKGJvb2wpCiB7CiB9CiAKSW5k
ZXg6IFdlYkNvcmUvcGx1Z2lucy9ndGsvUGx1Z2luVmlld0d0ay5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNwcAkocmV2aXNpb24gNTg4MTcpCisr
KyBXZWJDb3JlL3BsdWdpbnMvZ3RrL1BsdWdpblZpZXdHdGsuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xNDgsMTAgKzE0OCwxMCBAQCB2b2lkIFBsdWdpblZpZXc6OnVwZGF0ZVBsdWdpbldpZGdldCgp
CiAgICAgc2V0TlBXaW5kb3dJZk5lZWRlZCgpOwogfQogCi12b2lkIFBsdWdpblZpZXc6OnNldEZv
Y3VzKCkKK3ZvaWQgUGx1Z2luVmlldzo6c2V0Rm9jdXMoYm9vbCBmb2N1c2VkKQogewogICAgIEFT
U0VSVChwbGF0Zm9ybVBsdWdpbldpZGdldCgpID09IHBsYXRmb3JtV2lkZ2V0KCkpOwotICAgIFdp
ZGdldDo6c2V0Rm9jdXMoKTsKKyAgICBXaWRnZXQ6OnNldEZvY3VzKGZvY3VzZWQpOwogfQogCiB2
b2lkIFBsdWdpblZpZXc6OnNob3coKQpJbmRleDogV2ViQ29yZS9wbHVnaW5zL21hYy9QbHVnaW5W
aWV3TWFjLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsdWdpbnMvbWFjL1BsdWdpblZpZXdN
YWMuY3BwCShyZXZpc2lvbiA1ODgxNykKKysrIFdlYkNvcmUvcGx1Z2lucy9tYWMvUGx1Z2luVmll
d01hYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzMiw5ICszMzIsMTMgQEAgdm9pZCBQbHVnaW5W
aWV3OjpoaWRlKCkKICAgICBXaWRnZXQ6OmhpZGUoKTsKIH0KIAotdm9pZCBQbHVnaW5WaWV3Ojpz
ZXRGb2N1cygpCit2b2lkIFBsdWdpblZpZXc6OnNldEZvY3VzKGJvb2wgZm9jdXNlZCkKIHsKLSAg
ICBMT0coUGx1Z2lucywgIlBsdWdpblZpZXc6OnNldEZvY3VzKCkiKTsKKyAgICBMT0coUGx1Z2lu
cywgIlBsdWdpblZpZXc6OnNldEZvY3VzKCVkKSIsIGZvY3VzZWQpOworICAgIGlmICghZm9jdXNl
ZCkgeworICAgICAgICBXaWRnZXQ6OnNldEZvY3VzKGZvY3VzZWQpOworICAgICAgICByZXR1cm47
CisgICAgfQogCiAgICAgaWYgKHBsYXRmb3JtUGx1Z2luV2lkZ2V0KCkpCiAjaWYgUExBVEZPUk0o
UVQpCkBAIC0zNDMsNyArMzQ3LDcgQEAgdm9pZCBQbHVnaW5WaWV3OjpzZXRGb2N1cygpCiAgICAg
ICAgIHBsYXRmb3JtUGx1Z2luV2lkZ2V0KCktPlNldEZvY3VzKCk7CiAjZW5kaWYKICAgIGVsc2UK
LSAgICAgICBXaWRnZXQ6OnNldEZvY3VzKCk7CisgICAgICAgV2lkZ2V0OjpzZXRGb2N1cyhmb2N1
c2VkKTsKIAogICAgIC8vIFRPRE86IEFsc28gaGFuZGxlIGFuZCBwYXNzIG9uIGJsdXIgZXZlbnRz
IChmb2N1cyBsb3N0KQogCkBAIC0zNTYsNyArMzYwLDcgQEAgdm9pZCBQbHVnaW5WaWV3OjpzZXRG
b2N1cygpCiAgICAgcmVjb3JkLm1vZGlmaWVycyA9IEdldEN1cnJlbnRLZXlNb2RpZmllcnMoKTsK
IAogICAgIGlmICghZGlzcGF0Y2hOUEV2ZW50KHJlY29yZCkpCi0gICAgICAgIExPRyhFdmVudHMs
ICJQbHVnaW5WaWV3OjpzZXRGb2N1cygpOiBHZXQtZm9jdXMgZXZlbnQgbm90IGFjY2VwdGVkIik7
CisgICAgICAgIExPRyhFdmVudHMsICJQbHVnaW5WaWV3OjpzZXRGb2N1cyglZCk6IEZvY3VzIGV2
ZW50IG5vdCBhY2NlcHRlZCIsIGZvY3VzZWQpOwogI2VuZGlmCiB9CiAKSW5kZXg6IFdlYkNvcmUv
cGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGx1Z2lu
cy9xdC9QbHVnaW5WaWV3UXQuY3BwCShyZXZpc2lvbiA1ODgxNykKKysrIFdlYkNvcmUvcGx1Z2lu
cy9xdC9QbHVnaW5WaWV3UXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzQsMTIgKzEzNCwxNCBA
QCB2b2lkIFBsdWdpblZpZXc6OnVwZGF0ZVBsdWdpbldpZGdldCgpCiAgICAgaW52YWxpZGF0ZSgp
OwogfQogCi12b2lkIFBsdWdpblZpZXc6OnNldEZvY3VzKCkKK3ZvaWQgUGx1Z2luVmlldzo6c2V0
Rm9jdXMoYm9vbCBmb2N1c2VkKQogewotICAgIGlmIChwbGF0Zm9ybVBsdWdpbldpZGdldCgpKQot
ICAgICAgICBwbGF0Zm9ybVBsdWdpbldpZGdldCgpLT5zZXRGb2N1cyhRdDo6T3RoZXJGb2N1c1Jl
YXNvbik7Ci0gICAgZWxzZQotICAgICAgICBXaWRnZXQ6OnNldEZvY3VzKCk7CisgICAgaWYgKHBs
YXRmb3JtUGx1Z2luV2lkZ2V0KCkpIHsKKyAgICAgICAgaWYgKGZvY3VzZWQpCisgICAgICAgICAg
ICBwbGF0Zm9ybVBsdWdpbldpZGdldCgpLT5zZXRGb2N1cyhRdDo6T3RoZXJGb2N1c1JlYXNvbik7
CisgICAgfSBlbHNlIHsKKyAgICAgICAgV2lkZ2V0OjpzZXRGb2N1cyhmb2N1c2VkKTsKKyAgICB9
CiB9CiAKIHZvaWQgUGx1Z2luVmlldzo6c2hvdygpCkluZGV4OiBXZWJDb3JlL3BsdWdpbnMvc3lt
Ymlhbi9QbHVnaW5WaWV3U3ltYmlhbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbHVnaW5z
L3N5bWJpYW4vUGx1Z2luVmlld1N5bWJpYW4uY3BwCShyZXZpc2lvbiA1ODgxNykKKysrIFdlYkNv
cmUvcGx1Z2lucy9zeW1iaWFuL1BsdWdpblZpZXdTeW1iaWFuLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTAxLDEyICsxMDEsMTQgQEAgdm9pZCBQbHVnaW5WaWV3Ojp1cGRhdGVQbHVnaW5XaWRnZXQo
KQogICAgICAgICBzZXROUFdpbmRvd0lmTmVlZGVkKCk7CiB9CiAKLXZvaWQgUGx1Z2luVmlldzo6
c2V0Rm9jdXMoKQordm9pZCBQbHVnaW5WaWV3OjpzZXRGb2N1cyhib29sIGZvY3VzZWQpCiB7Ci0g
ICAgaWYgKHBsYXRmb3JtUGx1Z2luV2lkZ2V0KCkpCi0gICAgICAgIHBsYXRmb3JtUGx1Z2luV2lk
Z2V0KCktPnNldEZvY3VzKFF0OjpPdGhlckZvY3VzUmVhc29uKTsKLSAgICBlbHNlCi0gICAgICAg
IFdpZGdldDo6c2V0Rm9jdXMoKTsKKyAgICBpZiAocGxhdGZvcm1QbHVnaW5XaWRnZXQoKSkgewor
ICAgICAgICBpZiAoZm9jdXNlZCkKKyAgICAgICAgICAgIHBsYXRmb3JtUGx1Z2luV2lkZ2V0KCkt
PnNldEZvY3VzKFF0OjpPdGhlckZvY3VzUmVhc29uKTsKKyAgICB9IGVsc2UgeworICAgICAgICBX
aWRnZXQ6OnNldEZvY3VzKGZvY3VzZWQpOworICAgIH0KIH0KIAogdm9pZCBQbHVnaW5WaWV3Ojpz
aG93KCkKSW5kZXg6IFdlYkNvcmUvcGx1Z2lucy93aW4vUGx1Z2luVmlld1dpbi5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVnaW5WaWV3V2luLmNwcAkocmV2aXNpb24g
NTg4MTcpCisrKyBXZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdpblZpZXdXaW4uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00NjMsMTIgKzQ2MywxMiBAQCB2b2lkIFBsdWdpblZpZXc6OnVwZGF0ZVBsdWdp
bldpZGdldCgpCiAgICAgfQogfQogCi12b2lkIFBsdWdpblZpZXc6OnNldEZvY3VzKCkKK3ZvaWQg
UGx1Z2luVmlldzo6c2V0Rm9jdXMoYm9vbCBmb2N1c2VkKQogewotICAgIGlmIChwbGF0Zm9ybVBs
dWdpbldpZGdldCgpKQorICAgIGlmIChmb2N1c2VkICYmIHBsYXRmb3JtUGx1Z2luV2lkZ2V0KCkp
CiAgICAgICAgIFNldEZvY3VzKHBsYXRmb3JtUGx1Z2luV2lkZ2V0KCkpOwogCi0gICAgV2lkZ2V0
OjpzZXRGb2N1cygpOworICAgIFdpZGdldDo6c2V0Rm9jdXMoZm9jdXNlZCk7CiB9CiAKIHZvaWQg
UGx1Z2luVmlldzo6c2hvdygpCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDU4ODE4KQorKysg
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBA
CisyMDEwLTA1LTA1ICBTdHVhcnQgTW9yZ2FuICA8c3R1YXJ0bW9yZ2FuQGNocm9taXVtLm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUg
dGhlIHBsdWdpbiBjb250YWluZXIncyBzZXRGb2N1cyBpbXBsZW1lbnRhdGlvbiB0byBwYXNzIHRo
ZSBuZXcKKyAgICAgICAgYm9vbGVhbiBhcmd1bWVudCB0byB0aGUgbmV4dCBsYXllci4KKworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzc5NjEKKworICAg
ICAgICAqIHNyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGx1Z2luQ29udGFpbmVySW1wbDo6c2V0Rm9jdXMpOgorICAgICAgICAqIHNyYy9XZWJQbHVn
aW5Db250YWluZXJJbXBsLmg6CisKIDIwMTAtMDUtMDQgIFZhbmdlbGlzIEtva2tldmlzICA8dmFu
Z2VsaXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4K
SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmNw
cAkocmV2aXNpb24gNTg4MTcpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRh
aW5lckltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjgsMTAgKzEyOCwxMCBAQCB2b2lkIFdl
YlBsdWdpbkNvbnRhaW5lckltcGw6OmludmFsaWRhdGVSCiAgICAgcGFyZW50KCktPmhvc3RXaW5k
b3coKS0+aW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KGRhbWFnZVJlY3QsIGZhbHNlIC8qaW1t
ZWRpYXRlKi8pOwogfQogCi12b2lkIFdlYlBsdWdpbkNvbnRhaW5lckltcGw6OnNldEZvY3VzKCkK
K3ZvaWQgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6c2V0Rm9jdXMoYm9vbCBmb2N1c2VkKQogewot
ICAgIFdpZGdldDo6c2V0Rm9jdXMoKTsKLSAgICBtX3dlYlBsdWdpbi0+dXBkYXRlRm9jdXModHJ1
ZSk7CisgICAgV2lkZ2V0OjpzZXRGb2N1cyhmb2N1c2VkKTsKKyAgICBtX3dlYlBsdWdpbi0+dXBk
YXRlRm9jdXMoZm9jdXNlZCk7CiB9CiAKIHZvaWQgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6c2hv
dygpCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwu
aAkocmV2aXNpb24gNTg4MTcpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRh
aW5lckltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtNjcsNyArNjcsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIHNldEZyYW1lUmVjdChjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7CiAgICAg
dmlydHVhbCB2b2lkIHBhaW50KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCosIGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmKTsKICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVJlY3QoY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYpOwotICAgIHZpcnR1YWwgdm9pZCBzZXRGb2N1cygpOworICAgIHZpcnR1
YWwgdm9pZCBzZXRGb2N1cyhib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2hvdygpOwogICAgIHZp
cnR1YWwgdm9pZCBoaWRlKCk7CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50KFdlYkNvcmU6
OkV2ZW50Kik7CkluZGV4OiBXZWJLaXQvd2luL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQvd2luL0NoYW5nZUxvZwkocmV2aXNpb24gNTg4MTgpCisrKyBXZWJLaXQvd2luL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEwLTA1LTA1ICBTdHVhcnQgTW9y
Z2FuICA8c3R1YXJ0bW9yZ2FuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgc2V0Rm9jdXMgZm9yIHRoZSBuZXcgYm9v
bGVhbiBhcmd1bWVudDsgbm8gYmVoYXZpb3JhbCBjaGFuZ2UuCisKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3OTYxCisKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9FbWJlZGRlZFdpZGdldC5jcHA6CisgICAgICAgIChFbWJlZGRlZFdpZGdldDo6c2V0
Rm9jdXMpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VtYmVkZGVkV2lkZ2V0Lmg6CisKIDIw
MTAtMDUtMDMgIEFiaGlzaGVrIEFyeWEgIDxpbmZlcm5vQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpJbmRleDogV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9y
dC9FbWJlZGRlZFdpZGdldC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3dpbi9XZWJDb3JlU3Vw
cG9ydC9FbWJlZGRlZFdpZGdldC5jcHAJKHJldmlzaW9uIDU4ODE3KQorKysgV2ViS2l0L3dpbi9X
ZWJDb3JlU3VwcG9ydC9FbWJlZGRlZFdpZGdldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzMywx
MiArMTMzLDEyIEBAIHZvaWQgRW1iZWRkZWRXaWRnZXQ6OmZyYW1lUmVjdHNDaGFuZ2VkKCkKICAg
ICB9CiB9CiAKLXZvaWQgRW1iZWRkZWRXaWRnZXQ6OnNldEZvY3VzKCkKK3ZvaWQgRW1iZWRkZWRX
aWRnZXQ6OnNldEZvY3VzKGJvb2wgZm9jdXNlZCkKIHsKLSAgICBpZiAobV93aW5kb3cpCisgICAg
aWYgKG1fd2luZG93ICYmIGZvY3VzZWQpCiAgICAgICAgIFNldEZvY3VzKG1fd2luZG93KTsKIAot
ICAgIFdpZGdldDo6c2V0Rm9jdXMoKTsKKyAgICBXaWRnZXQ6OnNldEZvY3VzKGZvY3VzZWQpOwog
fQogCiB2b2lkIEVtYmVkZGVkV2lkZ2V0OjpzaG93KCkKSW5kZXg6IFdlYktpdC93aW4vV2ViQ29y
ZVN1cHBvcnQvRW1iZWRkZWRXaWRnZXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd2luL1dlYkNv
cmVTdXBwb3J0L0VtYmVkZGVkV2lkZ2V0LmgJKHJldmlzaW9uIDU4ODE3KQorKysgV2ViS2l0L3dp
bi9XZWJDb3JlU3VwcG9ydC9FbWJlZGRlZFdpZGdldC5oCSh3b3JraW5nIGNvcHkpCkBAIC02Miw3
ICs2Miw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVSZWN0KGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RnJhbWVSZWN0KGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmKTsKICAgICB2aXJ0dWFsIHZvaWQgZnJhbWVSZWN0c0NoYW5nZWQo
KTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Rm9jdXMoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Rm9j
dXMoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNob3coKTsKICAgICB2aXJ0dWFsIHZvaWQgaGlk
ZSgpOwogICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50UmVjdCB3aW5kb3dDbGlwUmVjdCgpIGNvbnN0
Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>