<?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>43996</bug_id>
          
          <creation_ts>2010-08-13 16:29:54 -0700</creation_ts>
          <short_desc>Add ability to count text matches without marking</short_desc>
          <delta_ts>2010-08-31 15:10:39 -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>Frames</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>264539</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-08-13 16:29:54 -0700</bug_when>
    <thetext>Add ability to count text matches without marking.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264540</commentid>
    <comment_count>1</comment_count>
      <attachid>64387</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-08-13 16:32:14 -0700</bug_when>
    <thetext>Created attachment 64387
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264551</commentid>
    <comment_count>2</comment_count>
      <attachid>64387</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2010-08-13 17:13:10 -0700</bug_when>
    <thetext>Comment on attachment 64387
Patch

WebCore/page/Frame.cpp:1257
 +  unsigned Frame::markAllMatchesForText(const String&amp; target, bool caseFlag, unsigned limit)

This method should be removed.  Since WebKit is the only caller, it should switch to using countMatchesForText() and pass in true for markMatches.  The WebCore.exp.in file will need to be updated to remove WebCore::Frame::markAllMatchesForText() and to add WebCore::Frame::countMatchesForText().


WebCore/page/Frame.h:211
 +          unsigned markAllMatchesForText(const String&amp;, bool caseFlag, unsigned limit);

This declaration can be removed.


WebKit/mac/WebView/WebHTMLView.mm:6206
 +  - (NSUInteger)countMatchesForText:(NSString *)string caseSensitive:(BOOL)caseFlag limit:(NSUInteger)limit markMatches:(BOOL)markMatches

This method should call WebCore::Frame::countMatchesForText() instead of WebCore::Frame::markAllMatchesForText() if it uses it.


WebKit/mac/WebView/WebPDFView.mm:633
 +  - (NSUInteger)countMatchesForText:(NSString *)string caseSensitive:(BOOL)caseFlag limit:(NSUInteger)limit markMatches:(BOOL)markMatches

This method should call WebCore::Frame::countMatchesForText() instead of WebCore::Frame::markAllMatchesForText() if it uses it.


WebKit/mac/WebView/WebView.mm:4368
 +  - (NSUInteger)countMatchesForText:(NSString *)string caseSensitive:(BOOL)caseFlag highlight:(BOOL)highlight limit:(NSUInteger)limit markMatches:(BOOL)markMatches

This method should call WebCore::Frame::countMatchesForText() instead of WebCore::Frame::markAllMatchesForText() if it uses it.


r- to address the above issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>272204</commentid>
    <comment_count>3</comment_count>
      <attachid>66072</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-08-31 10:43:42 -0700</bug_when>
    <thetext>Created attachment 66072
Updated Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>272207</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-31 10:45:04 -0700</bug_when>
    <thetext>Attachment 66072 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebCore/page/Page.cpp:529:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Total errors found: 1 in 13 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>272209</commentid>
    <comment_count>5</comment_count>
      <attachid>66072</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-08-31 10:47:29 -0700</bug_when>
    <thetext>Comment on attachment 66072
Updated Patch

&gt; +        // Do a &quot;fake&quot; paint in order to execute the code that computes the rendered rect for
&gt; +        // each text match.

Merge comment into one line?

&gt; +        Document* doc = document();
&gt; +        if (m_view &amp;&amp; contentRenderer()) {
&gt; +            doc-&gt;updateLayout(); // Ensure layout is up to date.

Get rid of pointless local variable &quot;doc&quot;?

&gt; -        unsigned markAllMatchesForText(const String&amp;, bool caseFlag, unsigned limit);
&gt; +        unsigned countMatchesForText(const String&amp;, bool caseFlag, unsigned limit, bool markMatches);

A boolean for this is not great, since we’re often passing a constant. I suppose we can live with this, but it’s ugly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>272425</commentid>
    <comment_count>6</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-08-31 15:10:39 -0700</bug_when>
    <thetext>Landed in r66544.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64387</attachid>
            <date>2010-08-13 16:32:14 -0700</date>
            <delta_ts>2010-08-31 10:43:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patcher.diff</filename>
            <type>text/plain</type>
            <size>10031</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NTMzOSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMTAtMDgtMTMgIFNhbSBXZWluaWcgPHdlaW5pZ0BhcHBsZS5jb20+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGFi
aWxpdHkgdG8gY291bnQgdGV4dCBtYXRjaGVzIHdpdGhvdXQgbWFya2luZworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDM5OTYKKworICAgICAgICBTYWZh
cmkgbmVlZHMgdG8gYmUgYWJsZSB0byBjb3VudCB0ZXh0IG1hdGNoZXMgd2l0aG91dCB0cmlnZ2Vy
aW5nIGxvdHMgb2YgcmVwYWludGluZy4KKyAgICAgICAgQ2hhbmdpbmcgbWFya0FsbE1hdGNoZXNG
b3JUZXh0IHRvICJjb3VudE1hdGNoZXNGb3JUZXh0IiBhbmQgYWRkaW5nIGEgbWFya01hdGNoZXMK
KyAgICAgICAgcGFyYW1ldGVyLiAgbWFya0FsbE1hdGNoZXNGb3JUZXh0IGp1c3QgY2FsbHMgY291
bnRNYXRjaGVzRm9yVGV4dCBwYXNzaW5nIHRydWUgZm9yCisgICAgICAgIG1hcmtNYXRjaGVzLgor
CisgICAgICAgICogcGFnZS9GcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6bWFy
a0FsbE1hdGNoZXNGb3JUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpjb3VudE1hdGNo
ZXNGb3JUZXh0KToKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmg6CisKIDIwMTAtMDgtMTMgIExlYW5k
cm8gUGVyZWlyYSAgPGxlYW5kcm9AcHJvZnVzaW9uLm1vYmk+CiAKICAgICAgICAgW0VGTF0gVW5y
ZXZpZXdlZCBidWlsZCBmaXguCkluZGV4OiBXZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvcGFnZS9GcmFtZS5jcHAJKHJldmlzaW9uIDY1MzM5KQorKysgV2ViQ29y
ZS9wYWdlL0ZyYW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI1Niw2ICsxMjU2LDExIEBAIGJv
b2wgRnJhbWU6OmZpbmRTdHJpbmcoY29uc3QgU3RyaW5nJiB0YXIKIAogdW5zaWduZWQgRnJhbWU6
Om1hcmtBbGxNYXRjaGVzRm9yVGV4dChjb25zdCBTdHJpbmcmIHRhcmdldCwgYm9vbCBjYXNlRmxh
ZywgdW5zaWduZWQgbGltaXQpCiB7CisgICAgcmV0dXJuIGNvdW50TWF0Y2hlc0ZvclRleHQodGFy
Z2V0LCBjYXNlRmxhZywgbGltaXQsIHRydWUpOworfQorCit1bnNpZ25lZCBGcmFtZTo6Y291bnRN
YXRjaGVzRm9yVGV4dChjb25zdCBTdHJpbmcmIHRhcmdldCwgYm9vbCBjYXNlRmxhZywgdW5zaWdu
ZWQgbGltaXQsIGJvb2wgbWFya01hdGNoZXMpCit7CiAgICAgaWYgKHRhcmdldC5pc0VtcHR5KCkp
CiAgICAgICAgIHJldHVybiAwOwogCkBAIC0xMjc3LDcgKzEyODIsOCBAQCB1bnNpZ25lZCBGcmFt
ZTo6bWFya0FsbE1hdGNoZXNGb3JUZXh0KGNvCiAgICAgICAgIC8vIE9ubHkgdHJlYXQgdGhlIHJl
c3VsdCBhcyBhIG1hdGNoIGlmIGl0IGlzIHZpc2libGUKICAgICAgICAgaWYgKGVkaXRvcigpLT5p
bnNpZGVWaXNpYmxlQXJlYShyZXN1bHRSYW5nZS5nZXQoKSkpIHsKICAgICAgICAgICAgICsrbWF0
Y2hDb3VudDsKLSAgICAgICAgICAgIGRvY3VtZW50KCktPmFkZE1hcmtlcihyZXN1bHRSYW5nZS5n
ZXQoKSwgRG9jdW1lbnRNYXJrZXI6OlRleHRNYXRjaCk7CisgICAgICAgICAgICBpZiAobWFya01h
dGNoZXMpCisgICAgICAgICAgICAgICAgZG9jdW1lbnQoKS0+YWRkTWFya2VyKHJlc3VsdFJhbmdl
LmdldCgpLCBEb2N1bWVudE1hcmtlcjo6VGV4dE1hdGNoKTsKICAgICAgICAgfQogCiAgICAgICAg
IC8vIFN0b3AgbG9va2luZyBpZiB3ZSBoaXQgdGhlIHNwZWNpZmllZCBsaW1pdC4gQSBsaW1pdCBv
ZiAwIG1lYW5zIG5vIGxpbWl0LgpAQCAtMTI5NSwxNiArMTMwMSwxOCBAQCB1bnNpZ25lZCBGcmFt
ZTo6bWFya0FsbE1hdGNoZXNGb3JUZXh0KGNvCiAgICAgICAgICAgICBzZWFyY2hSYW5nZS0+c2V0
RW5kKHNoYWRvd1RyZWVSb290LCBzaGFkb3dUcmVlUm9vdC0+Y2hpbGROb2RlQ291bnQoKSwgZXhj
ZXB0aW9uKTsKICAgICB9IHdoaWxlICh0cnVlKTsKIAotICAgIC8vIERvIGEgImZha2UiIHBhaW50
IGluIG9yZGVyIHRvIGV4ZWN1dGUgdGhlIGNvZGUgdGhhdCBjb21wdXRlcyB0aGUgcmVuZGVyZWQg
cmVjdCBmb3IKLSAgICAvLyBlYWNoIHRleHQgbWF0Y2guCi0gICAgRG9jdW1lbnQqIGRvYyA9IGRv
Y3VtZW50KCk7Ci0gICAgaWYgKG1fdmlldyAmJiBjb250ZW50UmVuZGVyZXIoKSkgewotICAgICAg
ICBkb2MtPnVwZGF0ZUxheW91dCgpOyAvLyBFbnN1cmUgbGF5b3V0IGlzIHVwIHRvIGRhdGUuCi0g
ICAgICAgIEludFJlY3QgdmlzaWJsZVJlY3QgPSBtX3ZpZXctPnZpc2libGVDb250ZW50UmVjdCgp
OwotICAgICAgICBpZiAoIXZpc2libGVSZWN0LmlzRW1wdHkoKSkgewotICAgICAgICAgICAgR3Jh
cGhpY3NDb250ZXh0IGNvbnRleHQoKFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0KikwKTsKLSAgICAg
ICAgICAgIGNvbnRleHQuc2V0UGFpbnRpbmdEaXNhYmxlZCh0cnVlKTsKLSAgICAgICAgICAgIG1f
dmlldy0+cGFpbnRDb250ZW50cygmY29udGV4dCwgdmlzaWJsZVJlY3QpOworICAgIGlmIChtYXJr
TWF0Y2hlcykgeworICAgICAgICAvLyBEbyBhICJmYWtlIiBwYWludCBpbiBvcmRlciB0byBleGVj
dXRlIHRoZSBjb2RlIHRoYXQgY29tcHV0ZXMgdGhlIHJlbmRlcmVkIHJlY3QgZm9yCisgICAgICAg
IC8vIGVhY2ggdGV4dCBtYXRjaC4KKyAgICAgICAgRG9jdW1lbnQqIGRvYyA9IGRvY3VtZW50KCk7
CisgICAgICAgIGlmIChtX3ZpZXcgJiYgY29udGVudFJlbmRlcmVyKCkpIHsKKyAgICAgICAgICAg
IGRvYy0+dXBkYXRlTGF5b3V0KCk7IC8vIEVuc3VyZSBsYXlvdXQgaXMgdXAgdG8gZGF0ZS4KKyAg
ICAgICAgICAgIEludFJlY3QgdmlzaWJsZVJlY3QgPSBtX3ZpZXctPnZpc2libGVDb250ZW50UmVj
dCgpOworICAgICAgICAgICAgaWYgKCF2aXNpYmxlUmVjdC5pc0VtcHR5KCkpIHsKKyAgICAgICAg
ICAgICAgICBHcmFwaGljc0NvbnRleHQgY29udGV4dCgoUGxhdGZvcm1HcmFwaGljc0NvbnRleHQq
KTApOworICAgICAgICAgICAgICAgIGNvbnRleHQuc2V0UGFpbnRpbmdEaXNhYmxlZCh0cnVlKTsK
KyAgICAgICAgICAgICAgICBtX3ZpZXctPnBhaW50Q29udGVudHMoJmNvbnRleHQsIHZpc2libGVS
ZWN0KTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KIApJbmRleDogV2ViQ29yZS9w
YWdlL0ZyYW1lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0ZyYW1lLmgJKHJldmlzaW9u
IDY1MzM5KQorKysgV2ViQ29yZS9wYWdlL0ZyYW1lLmgJKHdvcmtpbmcgY29weSkKQEAgLTIwOSw2
ICsyMDksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFJlbmRlclN0eWxlKiBzdHls
ZUZvclNlbGVjdGlvblN0YXJ0KE5vZGUqJiBub2RlVG9SZW1vdmUpIGNvbnN0OwogCiAgICAgICAg
IHVuc2lnbmVkIG1hcmtBbGxNYXRjaGVzRm9yVGV4dChjb25zdCBTdHJpbmcmLCBib29sIGNhc2VG
bGFnLCB1bnNpZ25lZCBsaW1pdCk7CisgICAgICAgIHVuc2lnbmVkIGNvdW50TWF0Y2hlc0ZvclRl
eHQoY29uc3QgU3RyaW5nJiwgYm9vbCBjYXNlRmxhZywgdW5zaWduZWQgbGltaXQsIGJvb2wgbWFy
a01hdGNoZXMpOwogICAgICAgICBib29sIG1hcmtlZFRleHRNYXRjaGVzQXJlSGlnaGxpZ2h0ZWQo
KSBjb25zdDsKICAgICAgICAgdm9pZCBzZXRNYXJrZWRUZXh0TWF0Y2hlc0FyZUhpZ2hsaWdodGVk
KGJvb2wgZmxhZyk7CiAKSW5kZXg6IFdlYktpdC9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdC9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiA2NTMzOSkKKysrIFdlYktpdC9tYWMvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTAtMDgtMTMgIFNhbSBX
ZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGQgYWJpbGl0eSB0byBjb3VudCB0ZXh0IG1hdGNoZXMgd2l0aG91
dCBtYXJraW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00Mzk5NgorCisgICAgICAgIFNhZmFyaSBuZWVkcyB0byBiZSBhYmxlIHRvIGNvdW50IHRleHQg
bWF0Y2hlcyB3aXRob3V0IHRyaWdnZXJpbmcgbG90cyBvZiByZXBhaW50aW5nLgorICAgICAgICBD
aGFuZ2luZyBtYXJrQWxsTWF0Y2hlc0ZvclRleHQgdG8gImNvdW50TWF0Y2hlc0ZvclRleHQiIGFu
ZCBhZGRpbmcgYSBtYXJrTWF0Y2hlcworICAgICAgICBwYXJhbWV0ZXIuICBtYXJrQWxsTWF0Y2hl
c0ZvclRleHQganVzdCBjYWxscyBjb3VudE1hdGNoZXNGb3JUZXh0IHBhc3NpbmcgdHJ1ZSBmb3IK
KyAgICAgICAgbWFya01hdGNoZXMuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYkRvY3VtZW50SW50
ZXJuYWwuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYkhUTUxWaWV3Lm1tOgorICAgICAgICAoLVtX
ZWJIVE1MVmlldyBtYXJrQWxsTWF0Y2hlc0ZvclRleHQ6Y2FzZVNlbnNpdGl2ZTpsaW1pdDpdKToK
KyAgICAgICAgKC1bV2ViSFRNTFZpZXcgY291bnRNYXRjaGVzRm9yVGV4dDpjYXNlU2Vuc2l0aXZl
OmxpbWl0Om1hcmtNYXRjaGVzOl0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViUERGVmlldy5tbToK
KyAgICAgICAgKC1bV2ViUERGVmlldyBtYXJrQWxsTWF0Y2hlc0ZvclRleHQ6Y2FzZVNlbnNpdGl2
ZTpsaW1pdDpdKToKKyAgICAgICAgKC1bV2ViUERGVmlldyBjb3VudE1hdGNoZXNGb3JUZXh0OmNh
c2VTZW5zaXRpdmU6bGltaXQ6bWFya01hdGNoZXM6XSk6CisgICAgICAgICogV2ViVmlldy9XZWJW
aWV3Lm1tOgorICAgICAgICAoLVtXZWJWaWV3IG1hcmtBbGxNYXRjaGVzRm9yVGV4dDpjYXNlU2Vu
c2l0aXZlOmhpZ2hsaWdodDpsaW1pdDpdKToKKyAgICAgICAgKC1bV2ViVmlldyBjb3VudE1hdGNo
ZXNGb3JUZXh0OmNhc2VTZW5zaXRpdmU6aGlnaGxpZ2h0OmxpbWl0Om1hcmtNYXRjaGVzOl0pOgor
ICAgICAgICAqIFdlYlZpZXcvV2ViVmlld1ByaXZhdGUuaDoKKwogMjAxMC0wOC0xMyAgR2F2aW4g
QmFycmFjbG91Z2ggIDxiYXJyYWNsb3VnaEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgU2FtIFdlaW5pZwpJbmRleDogV2ViS2l0L21hYy9XZWJWaWV3L1dlYkRvY3VtZW50SW50ZXJu
YWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViRG9jdW1lbnRJbnRlcm5h
bC5oCShyZXZpc2lvbiA2NTMzOSkKKysrIFdlYktpdC9tYWMvV2ViVmlldy9XZWJEb2N1bWVudElu
dGVybmFsLmgJKHdvcmtpbmcgY29weSkKQEAgLTYyLDYgKzYyLDcgQEAKIC0gKHZvaWQpc2V0TWFy
a2VkVGV4dE1hdGNoZXNBcmVIaWdobGlnaHRlZDooQk9PTCluZXdWYWx1ZTsKIC0gKEJPT0wpbWFy
a2VkVGV4dE1hdGNoZXNBcmVIaWdobGlnaHRlZDsKIC0gKFdlYk5TVUludGVnZXIpbWFya0FsbE1h
dGNoZXNGb3JUZXh0OihOU1N0cmluZyAqKXN0cmluZyBjYXNlU2Vuc2l0aXZlOihCT09MKWNhc2VG
bGFnIGxpbWl0OihXZWJOU1VJbnRlZ2VyKWxpbWl0OworLSAoV2ViTlNVSW50ZWdlciljb3VudE1h
dGNoZXNGb3JUZXh0OihOU1N0cmluZyAqKXN0cmluZyBjYXNlU2Vuc2l0aXZlOihCT09MKWNhc2VG
bGFnIGxpbWl0OihXZWJOU1VJbnRlZ2VyKWxpbWl0IG1hcmtNYXRjaGVzOihCT09MKW1hcmtNYXRj
aGVzOwogLSAodm9pZCl1bm1hcmtBbGxUZXh0TWF0Y2hlczsKIC0gKE5TQXJyYXkgKilyZWN0c0Zv
clRleHRNYXRjaGVzOwogQGVuZApJbmRleDogV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQkocmV2
aXNpb24gNjUzMzkpCisrKyBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0JKHdvcmtp
bmcgY29weSkKQEAgLTYyMDAsNiArNjIwMCwxMSBAQCAtIChOU0RpY3Rpb25hcnkgKillbGVtZW50
QXRQb2ludDooTlNQb2luCiAKIC0gKE5TVUludGVnZXIpbWFya0FsbE1hdGNoZXNGb3JUZXh0OihO
U1N0cmluZyAqKXN0cmluZyBjYXNlU2Vuc2l0aXZlOihCT09MKWNhc2VGbGFnIGxpbWl0OihOU1VJ
bnRlZ2VyKWxpbWl0CiB7CisgICAgcmV0dXJuIFtzZWxmIGNvdW50TWF0Y2hlc0ZvclRleHQ6c3Ry
aW5nIGNhc2VTZW5zaXRpdmU6Y2FzZUZsYWcgbGltaXQ6bGltaXQgbWFya01hdGNoZXM6WUVTXTsK
K30KKworLSAoTlNVSW50ZWdlciljb3VudE1hdGNoZXNGb3JUZXh0OihOU1N0cmluZyAqKXN0cmlu
ZyBjYXNlU2Vuc2l0aXZlOihCT09MKWNhc2VGbGFnIGxpbWl0OihOU1VJbnRlZ2VyKWxpbWl0IG1h
cmtNYXRjaGVzOihCT09MKW1hcmtNYXRjaGVzCit7CiAgICAgRnJhbWUqIGNvcmVGcmFtZSA9IGNv
cmUoW3NlbGYgX2ZyYW1lXSk7CiAgICAgaWYgKCFjb3JlRnJhbWUpCiAgICAgICAgIHJldHVybiAw
OwpJbmRleDogV2ViS2l0L21hYy9XZWJWaWV3L1dlYlBERlZpZXcubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlBERlZpZXcubW0JKHJldmlzaW9uIDY1MzM5KQorKysgV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYlBERlZpZXcubW0JKHdvcmtpbmcgY29weSkKQEAgLTYyNyw2ICs2
MjcsMTEgQEAgLSAoQk9PTCltYXJrZWRUZXh0TWF0Y2hlc0FyZUhpZ2hsaWdodGVkCiAKIC0gKE5T
VUludGVnZXIpbWFya0FsbE1hdGNoZXNGb3JUZXh0OihOU1N0cmluZyAqKXN0cmluZyBjYXNlU2Vu
c2l0aXZlOihCT09MKWNhc2VGbGFnIGxpbWl0OihOU1VJbnRlZ2VyKWxpbWl0CiB7CisgICAgcmV0
dXJuIFtzZWxmIGNvdW50TWF0Y2hlc0ZvclRleHQ6c3RyaW5nIGNhc2VTZW5zaXRpdmU6Y2FzZUZs
YWcgbGltaXQ6bGltaXQgbWFya01hdGNoZXM6WUVTXTsKK30KKworLSAoTlNVSW50ZWdlciljb3Vu
dE1hdGNoZXNGb3JUZXh0OihOU1N0cmluZyAqKXN0cmluZyBjYXNlU2Vuc2l0aXZlOihCT09MKWNh
c2VGbGFnIGxpbWl0OihOU1VJbnRlZ2VyKWxpbWl0IG1hcmtNYXRjaGVzOihCT09MKW1hcmtNYXRj
aGVzCit7CiAgICAgUERGU2VsZWN0aW9uICpwcmV2aW91c01hdGNoID0gbmlsOwogICAgIFBERlNl
bGVjdGlvbiAqbmV4dE1hdGNoID0gbmlsOwogICAgIE5TTXV0YWJsZUFycmF5ICptYXRjaGVzID0g
W1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTpsaW1pdF07CkluZGV4OiBX
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL1dl
YlZpZXcvV2ViVmlldy5tbQkocmV2aXNpb24gNjUzMzkpCisrKyBXZWJLaXQvbWFjL1dlYlZpZXcv
V2ViVmlldy5tbQkod29ya2luZyBjb3B5KQpAQCAtNDM2MiwxNSArNDM2MiwyMSBAQCAtIChCT09M
KWNhbk1hcmtBbGxUZXh0TWF0Y2hlcwogCiAtIChOU1VJbnRlZ2VyKW1hcmtBbGxNYXRjaGVzRm9y
VGV4dDooTlNTdHJpbmcgKilzdHJpbmcgY2FzZVNlbnNpdGl2ZTooQk9PTCljYXNlRmxhZyBoaWdo
bGlnaHQ6KEJPT0wpaGlnaGxpZ2h0IGxpbWl0OihOU1VJbnRlZ2VyKWxpbWl0CiB7CisgICAgcmV0
dXJuIFtzZWxmIGNvdW50TWF0Y2hlc0ZvclRleHQ6c3RyaW5nIGNhc2VTZW5zaXRpdmU6Y2FzZUZs
YWcgaGlnaGxpZ2h0OmhpZ2hsaWdodCBsaW1pdDpsaW1pdCBtYXJrTWF0Y2hlczpZRVNdOworfQor
CistIChOU1VJbnRlZ2VyKWNvdW50TWF0Y2hlc0ZvclRleHQ6KE5TU3RyaW5nICopc3RyaW5nIGNh
c2VTZW5zaXRpdmU6KEJPT0wpY2FzZUZsYWcgaGlnaGxpZ2h0OihCT09MKWhpZ2hsaWdodCBsaW1p
dDooTlNVSW50ZWdlcilsaW1pdCBtYXJrTWF0Y2hlczooQk9PTCltYXJrTWF0Y2hlcworewogICAg
IFdlYkZyYW1lICpmcmFtZSA9IFtzZWxmIG1haW5GcmFtZV07CiAgICAgdW5zaWduZWQgbWF0Y2hD
b3VudCA9IDA7CiAgICAgZG8gewogICAgICAgICBpZCA8V2ViRG9jdW1lbnRWaWV3PiB2aWV3ID0g
W1tmcmFtZSBmcmFtZVZpZXddIGRvY3VtZW50Vmlld107CiAgICAgICAgIGlmIChbdmlldyBjb25m
b3Jtc1RvUHJvdG9jb2w6QHByb3RvY29sKFdlYk11bHRpcGxlVGV4dE1hdGNoZXMpXSkgewotICAg
ICAgICAgICAgWyhOU1ZpZXcgPFdlYk11bHRpcGxlVGV4dE1hdGNoZXM+Kil2aWV3ICBzZXRNYXJr
ZWRUZXh0TWF0Y2hlc0FyZUhpZ2hsaWdodGVkOmhpZ2hsaWdodF07CisgICAgICAgICAgICBpZiAo
bWFya01hdGNoZXMpCisgICAgICAgICAgICAgICAgWyhOU1ZpZXcgPFdlYk11bHRpcGxlVGV4dE1h
dGNoZXM+Kil2aWV3ICBzZXRNYXJrZWRUZXh0TWF0Y2hlc0FyZUhpZ2hsaWdodGVkOmhpZ2hsaWdo
dF07CiAgICAgICAgIAogICAgICAgICAgICAgQVNTRVJUKGxpbWl0ID09IDAgfHwgbWF0Y2hDb3Vu
dCA8IGxpbWl0KTsKLSAgICAgICAgICAgIG1hdGNoQ291bnQgKz0gWyhOU1ZpZXcgPFdlYk11bHRp
cGxlVGV4dE1hdGNoZXM+Kil2aWV3IG1hcmtBbGxNYXRjaGVzRm9yVGV4dDpzdHJpbmcgY2FzZVNl
bnNpdGl2ZTpjYXNlRmxhZyBsaW1pdDpsaW1pdCA9PSAwID8gMCA6IGxpbWl0IC0gbWF0Y2hDb3Vu
dF07CisgICAgICAgICAgICBtYXRjaENvdW50ICs9IFsoTlNWaWV3IDxXZWJNdWx0aXBsZVRleHRN
YXRjaGVzPiopdmlldyBjb3VudE1hdGNoZXNGb3JUZXh0OnN0cmluZyBjYXNlU2Vuc2l0aXZlOmNh
c2VGbGFnIGxpbWl0OmxpbWl0ID09IDAgPyAwIDogbGltaXQgLSBtYXRjaENvdW50IG1hcmtNYXRj
aGVzOm1hcmtNYXRjaGVzXTsKIAogICAgICAgICAgICAgLy8gU3RvcCBsb29raW5nIGlmIHdlJ3Zl
IHJlYWNoZWQgdGhlIGxpbWl0LiBBIGxpbWl0IG9mIDAgbWVhbnMgbm8gbGltaXQuCiAgICAgICAg
ICAgICBpZiAobGltaXQgPiAwICYmIG1hdGNoQ291bnQgPj0gbGltaXQpCkluZGV4OiBXZWJLaXQv
bWFjL1dlYlZpZXcvV2ViVmlld1ByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL1dl
YlZpZXcvV2ViVmlld1ByaXZhdGUuaAkocmV2aXNpb24gNjUzMzkpCisrKyBXZWJLaXQvbWFjL1dl
YlZpZXcvV2ViVmlld1ByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMTgwLDYgKzE4MCw3IEBA
IEBpbnRlcmZhY2UgV2ViVmlldyAoV2ViUGVuZGluZ1B1YmxpYykKIC8vIFRoZXNlIG1ldGhvZHMg
YXJlIHN0aWxsIGluIGZsdXg7IGRvbid0IHJlbHkgb24gdGhlbSB5ZXQuCiAtIChCT09MKWNhbk1h
cmtBbGxUZXh0TWF0Y2hlczsKIC0gKFdlYk5TVUludGVnZXIpbWFya0FsbE1hdGNoZXNGb3JUZXh0
OihOU1N0cmluZyAqKXN0cmluZyBjYXNlU2Vuc2l0aXZlOihCT09MKWNhc2VGbGFnIGhpZ2hsaWdo
dDooQk9PTCloaWdobGlnaHQgbGltaXQ6KFdlYk5TVUludGVnZXIpbGltaXQ7CistIChXZWJOU1VJ
bnRlZ2VyKWNvdW50TWF0Y2hlc0ZvclRleHQ6KE5TU3RyaW5nICopc3RyaW5nIGNhc2VTZW5zaXRp
dmU6KEJPT0wpY2FzZUZsYWcgaGlnaGxpZ2h0OihCT09MKWhpZ2hsaWdodCBsaW1pdDooV2ViTlNV
SW50ZWdlcilsaW1pdCBtYXJrTWF0Y2hlczooQk9PTCltYXJrTWF0Y2hlczsKIC0gKHZvaWQpdW5t
YXJrQWxsVGV4dE1hdGNoZXM7CiAtIChOU0FycmF5ICopcmVjdHNGb3JUZXh0TWF0Y2hlczsKIAo=
</data>
<flag name="review"
          id="52939"
          type_id="1"
          status="-"
          setter="ddkilzer"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66072</attachid>
            <date>2010-08-31 10:43:42 -0700</date>
            <delta_ts>2010-08-31 10:47:29 -0700</delta_ts>
            <desc>Updated Patch</desc>
            <filename>count-text-matches-without-marking.txt</filename>
            <type>text/plain</type>
            <size>12918</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NjIyNSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMTAtMDgtMjcgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYWJp
bGl0eSB0byBjb3VudCB0ZXh0IG1hdGNoZXMgd2l0aG91dCBtYXJraW5nCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00Mzk5NgorCisgICAgICAgIFNhZmFy
aSBuZWVkcyB0byBiZSBhYmxlIHRvIGNvdW50IHRleHQgbWF0Y2hlcyB3aXRob3V0IHRyaWdnZXJp
bmcgbG90cyBvZiByZXBhaW50aW5nLgorICAgICAgICBSZW5hbWUgbWFya0FsbE1hdGNoZXNGb3JU
ZXh0KCkgdG8gY291bnRNYXRjaGVzRm9yVGV4dCgpIGFuZCBhZGQgYSBtYXJrTWF0Y2hlcyBwYXJh
bWV0ZXIuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBwYWdlL0ZyYW1l
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpjb3VudE1hdGNoZXNGb3JUZXh0KToKKyAg
ICAgICAgKiBwYWdlL0ZyYW1lLmg6CisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlBhZ2U6Om1hcmtBbGxNYXRjaGVzRm9yVGV4dCk6CisKIDIwMTAtMDgtMjcgIFBh
dmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgWXVyeSBTZW1pa2hhdHNreS4KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5leHAuaW4KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkocmV2aXNpb24gNjYyMjUpCisrKyBXZWJD
b3JlL1dlYkNvcmUuZXhwLmluCSh3b3JraW5nIGNvcHkpCkBAIC01ODEsOCArNTgxLDggQEAgX19a
TjdXZWJDb3JlNUZyYW1lMTBmaW5kU3RyaW5nRVJLTjNXVEY2UwogX19aTjdXZWJDb3JlNUZyYW1l
MTNyZWFwcGx5U3R5bGVzRXYKIF9fWk43V2ViQ29yZTVGcmFtZTE0ZnJhbWVGb3JXaWRnZXRFUEtO
U182V2lkZ2V0RQogX19aTjdXZWJDb3JlNUZyYW1lMTVyZXZlYWxTZWxlY3Rpb25FUktOU18xNVNj
cm9sbEFsaWdubWVudEViCitfX1pON1dlYkNvcmU1RnJhbWUxOWNvdW50TWF0Y2hlc0ZvclRleHRF
UktOM1dURjZTdHJpbmdFYmpiCiBfX1pON1dlYkNvcmU1RnJhbWUyMHNldFNlbGVjdGlvbkZyb21O
b25lRXYKLV9fWk43V2ViQ29yZTVGcmFtZTIxbWFya0FsbE1hdGNoZXNGb3JUZXh0RVJLTjNXVEY2
U3RyaW5nRWJqCiBfX1pON1dlYkNvcmU1RnJhbWUyM3Zpc2libGVQb3NpdGlvbkZvclBvaW50RVJL
TlNfOEludFBvaW50RQogX19aTjdXZWJDb3JlNUZyYW1lMjRjb21wdXRlQW5kU2V0VHlwaW5nU3R5
bGVFUE5TXzE5Q1NTU3R5bGVEZWNsYXJhdGlvbkVOU18xMEVkaXRBY3Rpb25FCiBfX1pON1dlYkNv
cmU1RnJhbWUyNW1hdGNoTGFiZWxzQWdhaW5zdEVsZW1lbnRFUDdOU0FycmF5UE5TXzdFbGVtZW50
RQpJbmRleDogV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bh
Z2UvRnJhbWUuY3BwCShyZXZpc2lvbiA2NjIyNSkKKysrIFdlYkNvcmUvcGFnZS9GcmFtZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEyNTgsNyArMTI1OCw3IEBAIGJvb2wgRnJhbWU6OmZpbmRTdHJp
bmcoY29uc3QgU3RyaW5nJiB0YXIKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdW5zaWduZWQgRnJh
bWU6Om1hcmtBbGxNYXRjaGVzRm9yVGV4dChjb25zdCBTdHJpbmcmIHRhcmdldCwgYm9vbCBjYXNl
RmxhZywgdW5zaWduZWQgbGltaXQpCit1bnNpZ25lZCBGcmFtZTo6Y291bnRNYXRjaGVzRm9yVGV4
dChjb25zdCBTdHJpbmcmIHRhcmdldCwgYm9vbCBjYXNlRmxhZywgdW5zaWduZWQgbGltaXQsIGJv
b2wgbWFya01hdGNoZXMpCiB7CiAgICAgaWYgKHRhcmdldC5pc0VtcHR5KCkpCiAgICAgICAgIHJl
dHVybiAwOwpAQCAtMTI4MSw3ICsxMjgxLDggQEAgdW5zaWduZWQgRnJhbWU6Om1hcmtBbGxNYXRj
aGVzRm9yVGV4dChjbwogICAgICAgICAvLyBPbmx5IHRyZWF0IHRoZSByZXN1bHQgYXMgYSBtYXRj
aCBpZiBpdCBpcyB2aXNpYmxlCiAgICAgICAgIGlmIChlZGl0b3IoKS0+aW5zaWRlVmlzaWJsZUFy
ZWEocmVzdWx0UmFuZ2UuZ2V0KCkpKSB7CiAgICAgICAgICAgICArK21hdGNoQ291bnQ7Ci0gICAg
ICAgICAgICBkb2N1bWVudCgpLT5tYXJrZXJzKCktPmFkZE1hcmtlcihyZXN1bHRSYW5nZS5nZXQo
KSwgRG9jdW1lbnRNYXJrZXI6OlRleHRNYXRjaCk7CisgICAgICAgICAgICBpZiAobWFya01hdGNo
ZXMpCisgICAgICAgICAgICAgICAgZG9jdW1lbnQoKS0+bWFya2VycygpLT5hZGRNYXJrZXIocmVz
dWx0UmFuZ2UuZ2V0KCksIERvY3VtZW50TWFya2VyOjpUZXh0TWF0Y2gpOwogICAgICAgICB9CiAK
ICAgICAgICAgLy8gU3RvcCBsb29raW5nIGlmIHdlIGhpdCB0aGUgc3BlY2lmaWVkIGxpbWl0LiBB
IGxpbWl0IG9mIDAgbWVhbnMgbm8gbGltaXQuCkBAIC0xMjk5LDE2ICsxMzAwLDE4IEBAIHVuc2ln
bmVkIEZyYW1lOjptYXJrQWxsTWF0Y2hlc0ZvclRleHQoY28KICAgICAgICAgICAgIHNlYXJjaFJh
bmdlLT5zZXRFbmQoc2hhZG93VHJlZVJvb3QsIHNoYWRvd1RyZWVSb290LT5jaGlsZE5vZGVDb3Vu
dCgpLCBleGNlcHRpb24pOwogICAgIH0gd2hpbGUgKHRydWUpOwogCi0gICAgLy8gRG8gYSAiZmFr
ZSIgcGFpbnQgaW4gb3JkZXIgdG8gZXhlY3V0ZSB0aGUgY29kZSB0aGF0IGNvbXB1dGVzIHRoZSBy
ZW5kZXJlZCByZWN0IGZvcgotICAgIC8vIGVhY2ggdGV4dCBtYXRjaC4KLSAgICBEb2N1bWVudCog
ZG9jID0gZG9jdW1lbnQoKTsKLSAgICBpZiAobV92aWV3ICYmIGNvbnRlbnRSZW5kZXJlcigpKSB7
Ci0gICAgICAgIGRvYy0+dXBkYXRlTGF5b3V0KCk7IC8vIEVuc3VyZSBsYXlvdXQgaXMgdXAgdG8g
ZGF0ZS4KLSAgICAgICAgSW50UmVjdCB2aXNpYmxlUmVjdCA9IG1fdmlldy0+dmlzaWJsZUNvbnRl
bnRSZWN0KCk7Ci0gICAgICAgIGlmICghdmlzaWJsZVJlY3QuaXNFbXB0eSgpKSB7Ci0gICAgICAg
ICAgICBHcmFwaGljc0NvbnRleHQgY29udGV4dCgoUGxhdGZvcm1HcmFwaGljc0NvbnRleHQqKTAp
OwotICAgICAgICAgICAgY29udGV4dC5zZXRQYWludGluZ0Rpc2FibGVkKHRydWUpOwotICAgICAg
ICAgICAgbV92aWV3LT5wYWludENvbnRlbnRzKCZjb250ZXh0LCB2aXNpYmxlUmVjdCk7CisgICAg
aWYgKG1hcmtNYXRjaGVzKSB7CisgICAgICAgIC8vIERvIGEgImZha2UiIHBhaW50IGluIG9yZGVy
IHRvIGV4ZWN1dGUgdGhlIGNvZGUgdGhhdCBjb21wdXRlcyB0aGUgcmVuZGVyZWQgcmVjdCBmb3IK
KyAgICAgICAgLy8gZWFjaCB0ZXh0IG1hdGNoLgorICAgICAgICBEb2N1bWVudCogZG9jID0gZG9j
dW1lbnQoKTsKKyAgICAgICAgaWYgKG1fdmlldyAmJiBjb250ZW50UmVuZGVyZXIoKSkgeworICAg
ICAgICAgICAgZG9jLT51cGRhdGVMYXlvdXQoKTsgLy8gRW5zdXJlIGxheW91dCBpcyB1cCB0byBk
YXRlLgorICAgICAgICAgICAgSW50UmVjdCB2aXNpYmxlUmVjdCA9IG1fdmlldy0+dmlzaWJsZUNv
bnRlbnRSZWN0KCk7CisgICAgICAgICAgICBpZiAoIXZpc2libGVSZWN0LmlzRW1wdHkoKSkgewor
ICAgICAgICAgICAgICAgIEdyYXBoaWNzQ29udGV4dCBjb250ZXh0KChQbGF0Zm9ybUdyYXBoaWNz
Q29udGV4dCopMCk7CisgICAgICAgICAgICAgICAgY29udGV4dC5zZXRQYWludGluZ0Rpc2FibGVk
KHRydWUpOworICAgICAgICAgICAgICAgIG1fdmlldy0+cGFpbnRDb250ZW50cygmY29udGV4dCwg
dmlzaWJsZVJlY3QpOworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogCkluZGV4OiBX
ZWJDb3JlL3BhZ2UvRnJhbWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRnJhbWUuaAko
cmV2aXNpb24gNjYyMjUpCisrKyBXZWJDb3JlL3BhZ2UvRnJhbWUuaAkod29ya2luZyBjb3B5KQpA
QCAtMjA4LDcgKzIwOCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBSZW5kZXJT
dHlsZSogc3R5bGVGb3JTZWxlY3Rpb25TdGFydChOb2RlKiYgbm9kZVRvUmVtb3ZlKSBjb25zdDsK
IAotICAgICAgICB1bnNpZ25lZCBtYXJrQWxsTWF0Y2hlc0ZvclRleHQoY29uc3QgU3RyaW5nJiwg
Ym9vbCBjYXNlRmxhZywgdW5zaWduZWQgbGltaXQpOworICAgICAgICB1bnNpZ25lZCBjb3VudE1h
dGNoZXNGb3JUZXh0KGNvbnN0IFN0cmluZyYsIGJvb2wgY2FzZUZsYWcsIHVuc2lnbmVkIGxpbWl0
LCBib29sIG1hcmtNYXRjaGVzKTsKICAgICAgICAgYm9vbCBtYXJrZWRUZXh0TWF0Y2hlc0FyZUhp
Z2hsaWdodGVkKCkgY29uc3Q7CiAgICAgICAgIHZvaWQgc2V0TWFya2VkVGV4dE1hdGNoZXNBcmVI
aWdobGlnaHRlZChib29sIGZsYWcpOwogCkluZGV4OiBXZWJDb3JlL3BhZ2UvUGFnZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCShyZXZpc2lvbiA2NjIyNSkKKysrIFdl
YkNvcmUvcGFnZS9QYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTI2LDcgKzUyNiw3IEBAIHVu
c2lnbmVkIGludCBQYWdlOjptYXJrQWxsTWF0Y2hlc0ZvclRleHQKICAgICBGcmFtZSogZnJhbWUg
PSBtYWluRnJhbWUoKTsKICAgICBkbyB7CiAgICAgICAgIGZyYW1lLT5zZXRNYXJrZWRUZXh0TWF0
Y2hlc0FyZUhpZ2hsaWdodGVkKHNob3VsZEhpZ2hsaWdodCk7Ci0gICAgICAgIG1hdGNoZXMgKz0g
ZnJhbWUtPm1hcmtBbGxNYXRjaGVzRm9yVGV4dCh0YXJnZXQsIGNhc2VTZW5zaXRpdml0eSA9PSBU
ZXh0Q2FzZVNlbnNpdGl2ZSwgKGxpbWl0ID09IDApID8gMCA6IChsaW1pdCAtIG1hdGNoZXMpKTsK
KyAgICAgICAgbWF0Y2hlcyArPSBmcmFtZS0+Y291bnRNYXRjaGVzRm9yVGV4dCh0YXJnZXQsIGNh
c2VTZW5zaXRpdml0eSA9PSBUZXh0Q2FzZVNlbnNpdGl2ZSwgKGxpbWl0ID09IDApID8gMCA6IChs
aW1pdCAtIG1hdGNoZXMpLCB0cnVlKTsKICAgICAgICAgZnJhbWUgPSBpbmNyZW1lbnRGcmFtZShm
cmFtZSwgdHJ1ZSwgZmFsc2UpOwogICAgIH0gd2hpbGUgKGZyYW1lKTsKIApJbmRleDogV2ViS2l0
L2VmbC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2VmbC9DaGFuZ2VMb2cJKHJldmlz
aW9uIDY2MjI1KQorKysgV2ViS2l0L2VmbC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwxNCBAQAorMjAxMC0wOC0yNyAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhYmlsaXR5
IHRvIGNvdW50IHRleHQgbWF0Y2hlcyB3aXRob3V0IG1hcmtpbmcKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQzOTk2CisKKyAgICAgICAgKiBld2svZXdr
X2ZyYW1lLmNwcDoKKyAgICAgICAgKGV3a19mcmFtZV90ZXh0X21hdGNoZXNfbWFyayk6IFN3aXRj
aGVkIHRvIGNhbGwKKyAgICAgICAgY291bnRNYXRjaGVzRm9yVGV4dCgpIGluc3RlYWQgb2YgbWFy
a0FsbE1hdGNoZXNGb3JUZXh0KCkuCisKIDIwMTAtMDgtMjYgIE1pcm9zbGF3IFN6eW1hbnNraSAg
PG1pcm9zbGF3LnNAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBS
b2hkZSBDaHJpc3RpYW5zZW4uCkluZGV4OiBXZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAJKHJldmlzaW9uIDY2MjI1
KQorKysgV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzcx
LDcgKzc3MSw3IEBAIHVuc2lnbmVkIGludCBld2tfZnJhbWVfdGV4dF9tYXRjaGVzX21hcmsKICAg
ICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc3RyaW5nLCAwKTsKIAogICAgIHNkLT5m
cmFtZS0+c2V0TWFya2VkVGV4dE1hdGNoZXNBcmVIaWdobGlnaHRlZChoaWdobGlnaHQpOwotICAg
IHJldHVybiBzZC0+ZnJhbWUtPm1hcmtBbGxNYXRjaGVzRm9yVGV4dChXVEY6OlN0cmluZzo6ZnJv
bVVURjgoc3RyaW5nKSwgY2FzZV9zZW5zaXRpdmUsIGxpbWl0KTsKKyAgICByZXR1cm4gc2QtPmZy
YW1lLT5jb3VudE1hdGNoZXNGb3JUZXh0KFdURjo6U3RyaW5nOjpmcm9tVVRGOChzdHJpbmcpLCBj
YXNlX3NlbnNpdGl2ZSwgbGltaXQsIHRydWUpOwogfQogCiAvKioKSW5kZXg6IFdlYktpdC9tYWMv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiA2
NjIyNSkKKysrIFdlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MjcgQEAKKzIwMTAtMDgtMjcgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYWJpbGl0eSB0byBj
b3VudCB0ZXh0IG1hdGNoZXMgd2l0aG91dCBtYXJraW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00Mzk5NgorCisgICAgICAgIFNhZmFyaSBuZWVkcyB0
byBiZSBhYmxlIHRvIGNvdW50IHRleHQgbWF0Y2hlcyB3aXRob3V0IHRyaWdnZXJpbmcgbG90cyBv
ZiByZXBhaW50aW5nLgorICAgICAgICBSZW5hbWUgbWFya0FsbE1hdGNoZXNGb3JUZXh0OiB0byBj
b3VudE1hdGNoZXNGb3JUZXh0OiBhbmQgYWRkIGEgbWFya01hdGNoZXM6CisgICAgICAgIHBhcmFt
ZXRlci4gIEZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBtYXJrQWxsTWF0Y2hlc0ZvclRleHQ6
IGNhbGxzCisgICAgICAgIGNvdW50TWF0Y2hlc0ZvclRleHQ6IGFuZCBwYXNzZXMgWUVTIGZvciBt
YXJrTWF0Y2hlczouCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYkRvY3VtZW50SW50ZXJuYWwuaDoK
KyAgICAgICAgKiBXZWJWaWV3L1dlYkhUTUxWaWV3Lm1tOgorICAgICAgICAoLVtXZWJIVE1MVmll
dyBtYXJrQWxsTWF0Y2hlc0ZvclRleHQ6Y2FzZVNlbnNpdGl2ZTpsaW1pdDpdKToKKyAgICAgICAg
KC1bV2ViSFRNTFZpZXcgY291bnRNYXRjaGVzRm9yVGV4dDpjYXNlU2Vuc2l0aXZlOmxpbWl0Om1h
cmtNYXRjaGVzOl0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViUERGVmlldy5tbToKKyAgICAgICAg
KC1bV2ViUERGVmlldyBtYXJrQWxsTWF0Y2hlc0ZvclRleHQ6Y2FzZVNlbnNpdGl2ZTpsaW1pdDpd
KToKKyAgICAgICAgKC1bV2ViUERGVmlldyBjb3VudE1hdGNoZXNGb3JUZXh0OmNhc2VTZW5zaXRp
dmU6bGltaXQ6bWFya01hdGNoZXM6XSk6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgor
ICAgICAgICAoLVtXZWJWaWV3IG1hcmtBbGxNYXRjaGVzRm9yVGV4dDpjYXNlU2Vuc2l0aXZlOmhp
Z2hsaWdodDpsaW1pdDpdKToKKyAgICAgICAgKC1bV2ViVmlldyBjb3VudE1hdGNoZXNGb3JUZXh0
OmNhc2VTZW5zaXRpdmU6aGlnaGxpZ2h0OmxpbWl0Om1hcmtNYXRjaGVzOl0pOgorICAgICAgICAq
IFdlYlZpZXcvV2ViVmlld1ByaXZhdGUuaDoKKwogMjAxMC0wOC0yNyAgWXVyeSBTZW1pa2hhdHNr
eSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBQYXZlbCBGZWxk
bWFuLgpJbmRleDogV2ViS2l0L21hYy9XZWJWaWV3L1dlYkRvY3VtZW50SW50ZXJuYWwuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViRG9jdW1lbnRJbnRlcm5hbC5oCShyZXZp
c2lvbiA2NjIyNSkKKysrIFdlYktpdC9tYWMvV2ViVmlldy9XZWJEb2N1bWVudEludGVybmFsLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTYyLDYgKzYyLDcgQEAKIC0gKHZvaWQpc2V0TWFya2VkVGV4dE1h
dGNoZXNBcmVIaWdobGlnaHRlZDooQk9PTCluZXdWYWx1ZTsKIC0gKEJPT0wpbWFya2VkVGV4dE1h
dGNoZXNBcmVIaWdobGlnaHRlZDsKIC0gKFdlYk5TVUludGVnZXIpbWFya0FsbE1hdGNoZXNGb3JU
ZXh0OihOU1N0cmluZyAqKXN0cmluZyBjYXNlU2Vuc2l0aXZlOihCT09MKWNhc2VGbGFnIGxpbWl0
OihXZWJOU1VJbnRlZ2VyKWxpbWl0OworLSAoV2ViTlNVSW50ZWdlciljb3VudE1hdGNoZXNGb3JU
ZXh0OihOU1N0cmluZyAqKXN0cmluZyBjYXNlU2Vuc2l0aXZlOihCT09MKWNhc2VGbGFnIGxpbWl0
OihXZWJOU1VJbnRlZ2VyKWxpbWl0IG1hcmtNYXRjaGVzOihCT09MKW1hcmtNYXRjaGVzOwogLSAo
dm9pZCl1bm1hcmtBbGxUZXh0TWF0Y2hlczsKIC0gKE5TQXJyYXkgKilyZWN0c0ZvclRleHRNYXRj
aGVzOwogQGVuZApJbmRleDogV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQkocmV2aXNpb24gNjYy
MjUpCisrKyBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0JKHdvcmtpbmcgY29weSkK
QEAgLTYyMDIsMTAgKzYyMDIsMTUgQEAgLSAoTlNEaWN0aW9uYXJ5ICopZWxlbWVudEF0UG9pbnQ6
KE5TUG9pbgogCiAtIChOU1VJbnRlZ2VyKW1hcmtBbGxNYXRjaGVzRm9yVGV4dDooTlNTdHJpbmcg
KilzdHJpbmcgY2FzZVNlbnNpdGl2ZTooQk9PTCljYXNlRmxhZyBsaW1pdDooTlNVSW50ZWdlcils
aW1pdAogeworICAgIHJldHVybiBbc2VsZiBjb3VudE1hdGNoZXNGb3JUZXh0OnN0cmluZyBjYXNl
U2Vuc2l0aXZlOmNhc2VGbGFnIGxpbWl0OmxpbWl0IG1hcmtNYXRjaGVzOllFU107Cit9CisKKy0g
KE5TVUludGVnZXIpY291bnRNYXRjaGVzRm9yVGV4dDooTlNTdHJpbmcgKilzdHJpbmcgY2FzZVNl
bnNpdGl2ZTooQk9PTCljYXNlRmxhZyBsaW1pdDooTlNVSW50ZWdlcilsaW1pdCBtYXJrTWF0Y2hl
czooQk9PTCltYXJrTWF0Y2hlcworewogICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKFtzZWxm
IF9mcmFtZV0pOwogICAgIGlmICghY29yZUZyYW1lKQogICAgICAgICByZXR1cm4gMDsKLSAgICBy
ZXR1cm4gY29yZUZyYW1lLT5tYXJrQWxsTWF0Y2hlc0ZvclRleHQoc3RyaW5nLCBjYXNlRmxhZywg
bGltaXQpOworICAgIHJldHVybiBjb3JlRnJhbWUtPmNvdW50TWF0Y2hlc0ZvclRleHQoc3RyaW5n
LCBjYXNlRmxhZywgbGltaXQsIG1hcmtNYXRjaGVzKTsKIH0KIAogLSAodm9pZClzZXRNYXJrZWRU
ZXh0TWF0Y2hlc0FyZUhpZ2hsaWdodGVkOihCT09MKW5ld1ZhbHVlCkluZGV4OiBXZWJLaXQvbWFj
L1dlYlZpZXcvV2ViUERGVmlldy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL1dlYlZpZXcv
V2ViUERGVmlldy5tbQkocmV2aXNpb24gNjYyMjUpCisrKyBXZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
UERGVmlldy5tbQkod29ya2luZyBjb3B5KQpAQCAtNjI4LDYgKzYyOCwxMSBAQCAtIChCT09MKW1h
cmtlZFRleHRNYXRjaGVzQXJlSGlnaGxpZ2h0ZWQKIAogLSAoTlNVSW50ZWdlciltYXJrQWxsTWF0
Y2hlc0ZvclRleHQ6KE5TU3RyaW5nICopc3RyaW5nIGNhc2VTZW5zaXRpdmU6KEJPT0wpY2FzZUZs
YWcgbGltaXQ6KE5TVUludGVnZXIpbGltaXQKIHsKKyAgICByZXR1cm4gW3NlbGYgY291bnRNYXRj
aGVzRm9yVGV4dDpzdHJpbmcgY2FzZVNlbnNpdGl2ZTpjYXNlRmxhZyBsaW1pdDpsaW1pdCBtYXJr
TWF0Y2hlczpZRVNdOworfQorCistIChOU1VJbnRlZ2VyKWNvdW50TWF0Y2hlc0ZvclRleHQ6KE5T
U3RyaW5nICopc3RyaW5nIGNhc2VTZW5zaXRpdmU6KEJPT0wpY2FzZUZsYWcgbGltaXQ6KE5TVUlu
dGVnZXIpbGltaXQgbWFya01hdGNoZXM6KEJPT0wpbWFya01hdGNoZXMKK3sKICAgICBQREZTZWxl
Y3Rpb24gKnByZXZpb3VzTWF0Y2ggPSBuaWw7CiAgICAgUERGU2VsZWN0aW9uICpuZXh0TWF0Y2gg
PSBuaWw7CiAgICAgTlNNdXRhYmxlQXJyYXkgKm1hdGNoZXMgPSBbW05TTXV0YWJsZUFycmF5IGFs
bG9jXSBpbml0V2l0aENhcGFjaXR5OmxpbWl0XTsKSW5kZXg6IFdlYktpdC9tYWMvV2ViVmlldy9X
ZWJWaWV3Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCShy
ZXZpc2lvbiA2NjIyNSkKKysrIFdlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCSh3b3JraW5n
IGNvcHkpCkBAIC00MzcyLDE1ICs0MzcyLDIxIEBAIC0gKEJPT0wpY2FuTWFya0FsbFRleHRNYXRj
aGVzCiAKIC0gKE5TVUludGVnZXIpbWFya0FsbE1hdGNoZXNGb3JUZXh0OihOU1N0cmluZyAqKXN0
cmluZyBjYXNlU2Vuc2l0aXZlOihCT09MKWNhc2VGbGFnIGhpZ2hsaWdodDooQk9PTCloaWdobGln
aHQgbGltaXQ6KE5TVUludGVnZXIpbGltaXQKIHsKKyAgICByZXR1cm4gW3NlbGYgY291bnRNYXRj
aGVzRm9yVGV4dDpzdHJpbmcgY2FzZVNlbnNpdGl2ZTpjYXNlRmxhZyBoaWdobGlnaHQ6aGlnaGxp
Z2h0IGxpbWl0OmxpbWl0IG1hcmtNYXRjaGVzOllFU107Cit9CisKKy0gKE5TVUludGVnZXIpY291
bnRNYXRjaGVzRm9yVGV4dDooTlNTdHJpbmcgKilzdHJpbmcgY2FzZVNlbnNpdGl2ZTooQk9PTClj
YXNlRmxhZyBoaWdobGlnaHQ6KEJPT0wpaGlnaGxpZ2h0IGxpbWl0OihOU1VJbnRlZ2VyKWxpbWl0
IG1hcmtNYXRjaGVzOihCT09MKW1hcmtNYXRjaGVzCit7CiAgICAgV2ViRnJhbWUgKmZyYW1lID0g
W3NlbGYgbWFpbkZyYW1lXTsKICAgICB1bnNpZ25lZCBtYXRjaENvdW50ID0gMDsKICAgICBkbyB7
CiAgICAgICAgIGlkIDxXZWJEb2N1bWVudFZpZXc+IHZpZXcgPSBbW2ZyYW1lIGZyYW1lVmlld10g
ZG9jdW1lbnRWaWV3XTsKICAgICAgICAgaWYgKFt2aWV3IGNvbmZvcm1zVG9Qcm90b2NvbDpAcHJv
dG9jb2woV2ViTXVsdGlwbGVUZXh0TWF0Y2hlcyldKSB7Ci0gICAgICAgICAgICBbKE5TVmlldyA8
V2ViTXVsdGlwbGVUZXh0TWF0Y2hlcz4qKXZpZXcgIHNldE1hcmtlZFRleHRNYXRjaGVzQXJlSGln
aGxpZ2h0ZWQ6aGlnaGxpZ2h0XTsKKyAgICAgICAgICAgIGlmIChtYXJrTWF0Y2hlcykKKyAgICAg
ICAgICAgICAgICBbKE5TVmlldyA8V2ViTXVsdGlwbGVUZXh0TWF0Y2hlcz4qKXZpZXcgc2V0TWFy
a2VkVGV4dE1hdGNoZXNBcmVIaWdobGlnaHRlZDpoaWdobGlnaHRdOwogICAgICAgICAKICAgICAg
ICAgICAgIEFTU0VSVChsaW1pdCA9PSAwIHx8IG1hdGNoQ291bnQgPCBsaW1pdCk7Ci0gICAgICAg
ICAgICBtYXRjaENvdW50ICs9IFsoTlNWaWV3IDxXZWJNdWx0aXBsZVRleHRNYXRjaGVzPiopdmll
dyBtYXJrQWxsTWF0Y2hlc0ZvclRleHQ6c3RyaW5nIGNhc2VTZW5zaXRpdmU6Y2FzZUZsYWcgbGlt
aXQ6bGltaXQgPT0gMCA/IDAgOiBsaW1pdCAtIG1hdGNoQ291bnRdOworICAgICAgICAgICAgbWF0
Y2hDb3VudCArPSBbKE5TVmlldyA8V2ViTXVsdGlwbGVUZXh0TWF0Y2hlcz4qKXZpZXcgY291bnRN
YXRjaGVzRm9yVGV4dDpzdHJpbmcgY2FzZVNlbnNpdGl2ZTpjYXNlRmxhZyBsaW1pdDpsaW1pdCA9
PSAwID8gMCA6IGxpbWl0IC0gbWF0Y2hDb3VudCBtYXJrTWF0Y2hlczptYXJrTWF0Y2hlc107CiAK
ICAgICAgICAgICAgIC8vIFN0b3AgbG9va2luZyBpZiB3ZSd2ZSByZWFjaGVkIHRoZSBsaW1pdC4g
QSBsaW1pdCBvZiAwIG1lYW5zIG5vIGxpbWl0LgogICAgICAgICAgICAgaWYgKGxpbWl0ID4gMCAm
JiBtYXRjaENvdW50ID49IGxpbWl0KQpJbmRleDogV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdQ
cml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdQcml2YXRl
LmgJKHJldmlzaW9uIDY2MjI1KQorKysgV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdQcml2YXRl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTE4MCw2ICsxODAsNyBAQCBAaW50ZXJmYWNlIFdlYlZpZXcg
KFdlYlBlbmRpbmdQdWJsaWMpCiAvLyBUaGVzZSBtZXRob2RzIGFyZSBzdGlsbCBpbiBmbHV4OyBk
b24ndCByZWx5IG9uIHRoZW0geWV0LgogLSAoQk9PTCljYW5NYXJrQWxsVGV4dE1hdGNoZXM7CiAt
IChXZWJOU1VJbnRlZ2VyKW1hcmtBbGxNYXRjaGVzRm9yVGV4dDooTlNTdHJpbmcgKilzdHJpbmcg
Y2FzZVNlbnNpdGl2ZTooQk9PTCljYXNlRmxhZyBoaWdobGlnaHQ6KEJPT0wpaGlnaGxpZ2h0IGxp
bWl0OihXZWJOU1VJbnRlZ2VyKWxpbWl0OworLSAoV2ViTlNVSW50ZWdlciljb3VudE1hdGNoZXNG
b3JUZXh0OihOU1N0cmluZyAqKXN0cmluZyBjYXNlU2Vuc2l0aXZlOihCT09MKWNhc2VGbGFnIGhp
Z2hsaWdodDooQk9PTCloaWdobGlnaHQgbGltaXQ6KFdlYk5TVUludGVnZXIpbGltaXQgbWFya01h
dGNoZXM6KEJPT0wpbWFya01hdGNoZXM7CiAtICh2b2lkKXVubWFya0FsbFRleHRNYXRjaGVzOwog
LSAoTlNBcnJheSAqKXJlY3RzRm9yVGV4dE1hdGNoZXM7CiAK
</data>
<flag name="review"
          id="54986"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>