<?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>25439</bug_id>
          
          <creation_ts>2009-04-27 22:13:56 -0700</creation_ts>
          <short_desc>Deleting when in front of a block image removes character from previous paragraph</short_desc>
          <delta_ts>2009-11-05 03:09:57 -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>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Justin Garcia">justin.garcia</reporter>
          <assigned_to name="Justin Garcia">justin.garcia</assigned_to>
          <cc>adele</cc>
    
    <cc>enrica</cc>
    
    <cc>eric</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>119058</commentid>
    <comment_count>0</comment_count>
    <who name="Justin Garcia">justin.garcia</who>
    <bug_when>2009-04-27 22:13:56 -0700</bug_when>
    <thetext>Use:

&lt;div contentEditable=&quot;true&quot;&gt;hello&lt;img style=&quot;display:block;&quot; src=&quot;http://www.google.com/logos/logo.gif&quot;&gt;&lt;/div&gt;

Put the caret in front of the image and hit delete.  Caret should probably just move back one, instead of deleting a character from the previous paragraph.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119060</commentid>
    <comment_count>1</comment_count>
    <who name="Justin Garcia">justin.garcia</who>
    <bug_when>2009-04-27 22:22:28 -0700</bug_when>
    <thetext>&lt;rdar://problem/6767162&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159765</commentid>
    <comment_count>2</comment_count>
      <attachid>42310</attachid>
    <who name="Justin Garcia">justin.garcia</who>
    <bug_when>2009-11-02 02:47:31 -0800</bug_when>
    <thetext>Created attachment 42310
patch

patch and layout tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159872</commentid>
    <comment_count>3</comment_count>
    <who name="Adele Peterson">adele</who>
    <bug_when>2009-11-02 11:47:18 -0800</bug_when>
    <thetext>With the test case, I see the image disappear, not a character from the previous line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160002</commentid>
    <comment_count>4</comment_count>
    <who name="Justin Garcia">justin.garcia</who>
    <bug_when>2009-11-03 00:05:19 -0800</bug_when>
    <thetext>Ryosuke pointed out that the layout tests were missing a newline at the end.  Fixed that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160006</commentid>
    <comment_count>5</comment_count>
      <attachid>42310</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2009-11-03 00:41:49 -0800</bug_when>
    <thetext>Comment on attachment 42310
patch

&gt; +    if (isRenderedAsNonInlineTableImageOrHR(startOfParagraphToMove.deepEquivalent().node()) &amp;&amp; !isStartOfParagraph(mergeDestination)) {
&gt; +        m_endingPosition = m_upstreamStart;
&gt; +        return;

Why do we care whether the destination is the start of paragraph or not?

&gt; +bool isRenderedAsNonInlineTableImageOrHR(const Node* node)
&gt; +{
&gt; +    if (!node)
&gt; +        return false;
&gt; +    RenderObject* renderer = node-&gt;renderer();
&gt; +    return renderer &amp;&amp; ((renderer-&gt;isTable() &amp;&amp; !renderer-&gt;isInline()) || renderer-&gt;isImage() &amp;&amp; !renderer-&gt;isInline() || renderer-&gt;isHR());
...
&gt; -static bool renderedAsNonInlineTableOrHR(RenderObject* renderer)
&gt; -{
&gt; -    return renderer &amp;&amp; ((renderer-&gt;isTable() &amp;&amp; !renderer-&gt;isInline()) || renderer-&gt;isHR());
...
&gt; -    if (renderedAsNonInlineTableOrHR(startNode-&gt;renderer()) &amp;&amp; p.atLastEditingPositionForNode())
&gt; +    if (isRenderedAsNonInlineTableImageOrHR(startNode))

Why are we removing the condition that p.atLastEditingPositionForNode()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160151</commentid>
    <comment_count>6</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2009-11-03 11:45:31 -0800</bug_when>
    <thetext>I thought we were moving away from naming the tests after the bug number. I think it is better to give the test a meaningful name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160283</commentid>
    <comment_count>7</comment_count>
    <who name="Justin Garcia">justin.garcia</who>
    <bug_when>2009-11-03 18:26:31 -0800</bug_when>
    <thetext>&gt; Why do we care whether the destination is the start of paragraph or not?

If it is at the start of a paragraph, then the block table, image, or hr can move up (we can merge).  I will add a comment about this.

&gt; Why are we removing the condition that p.atLastEditingPositionForNode()?

Because firstDeepEditingPositionForNode(startNode) is also the start of the paragraph if p.atFirstEditingPositionForNode().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160284</commentid>
    <comment_count>8</comment_count>
    <who name="Justin Garcia">justin.garcia</who>
    <bug_when>2009-11-03 18:27:01 -0800</bug_when>
    <thetext>&gt; I think it is better to give the test a meaningful name.

Will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160303</commentid>
    <comment_count>9</comment_count>
      <attachid>42445</attachid>
    <who name="Justin Garcia">justin.garcia</who>
    <bug_when>2009-11-03 20:39:46 -0800</bug_when>
    <thetext>Created attachment 42445
patch

updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160779</commentid>
    <comment_count>10</comment_count>
    <who name="Justin Garcia">justin.garcia</who>
    <bug_when>2009-11-05 03:09:57 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/50542</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42310</attachid>
            <date>2009-11-02 02:47:31 -0800</date>
            <delta_ts>2009-11-03 20:39:46 -0800</delta_ts>
            <desc>patch</desc>
            <filename>25439.txt</filename>
            <type>text/plain</type>
            <size>11820</size>
            <attacher name="Justin Garcia">justin.garcia</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MDQwNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjcgQEAKKzIwMDktMTEtMDIgIEp1c3RpbiBHYXJjaWEgIDxqdXN0aW4uZ2FyY2lh
QGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU0MzkKKyAgICAg
ICAgRGVsZXRpbmcgd2hlbiBpbiBmcm9udCBvZiBhIGJsb2NrIGltYWdlIHJlbW92ZXMgY2hhcmFj
dGVyIGZyb20gcHJldmlvdXMgcGFyYWdyYXBoCisKKyAgICAgICAgQWRkZWQgZWRpdGluZy9kZWxl
dGluZy8yNTQzOS17MSwyLDN9Lmh0bWwKKworICAgICAgICAqIGVkaXRpbmcvRGVsZXRlU2VsZWN0
aW9uQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVTZWxlY3Rpb25Db21tYW5k
OjptZXJnZVBhcmFncmFwaHMpOiBCbG9jayBpbWFnZXMsIHRhYmxlcyBhbmQgSFJzIGNhbm5vdCAK
KyAgICAgICAgYmUgbWFkZSBpbmxpbmUgd2l0aCBvdGhlciBjb250ZW50LiAgSW5zdGVhZCBvZiBt
ZXJnaW5nLCBqdXN0IG1vdmUgdGhlIGNhcmV0IHRvIGp1c3QgYmVmb3JlIAorICAgICAgICB0aGUg
c2VsZWN0aW9uIHdlIGRlbGV0ZWQuCisgICAgICAgICogZWRpdGluZy9odG1sZWRpdGluZy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpmaXJzdEluU3BlY2lhbEVsZW1lbnQpOiBBZGRlZCBhIEZJWE1F
LiAgVGhpcyBmdW5jdGlvbiBiZWdpbnMgaXRlcmF0aW5nIHVwIGZyb20gcG9zLm5vZGUoKSwgd2hp
Y2ggCisgICAgICAgIGRvZXNuJ3QgbmVjZXNzYXJpbHkgY29udGFpbiBwb3MgKHN1cHBvc2UgcG9z
IHdhcyBbaW1nLCAwXSkuCisgICAgICAgIChXZWJDb3JlOjpsYXN0SW5TcGVjaWFsRWxlbWVudCk6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6aXNSZW5kZXJlZEFzTm9uSW5saW5lVGFibGVJbWFn
ZU9ySFIpOiBNb3ZlZCBmcm9tIHZpc2libGVfdW5pdHMuY3BwLiAgQWRkZWQgYSBjaGVjayBmb3Ig
bm9uLWlubGluZSBpbWFnZXMuCisgICAgICAgICogZWRpdGluZy9odG1sZWRpdGluZy5oOgorICAg
ICAgICAqIGVkaXRpbmcvdmlzaWJsZV91bml0cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzdGFy
dE9mUGFyYWdyYXBoKTogVXNlIG1vdmVkL3JlbmFtZWQgZnVuY3Rpb24uICBSZW1vdmVkIEZJWE1F
LiAgVGhlIHByb2JsZW0gY2F1c2luZyAKKyAgICAgICAgNTAyNzcwMiBpcyBub3cgc3F1YXJlbHkg
aW4gZmlyc3QvbGFzdEluU3BlY2lhbEVsZW1lbnQKKyAgICAgICAgKFdlYkNvcmU6OmVuZE9mUGFy
YWdyYXBoKTogRGl0dG8uCisKIDIwMDktMTEtMDEgIEtlbGx5IE5vcnRvbiAgPGtub3J0b25AZ29v
Z2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBUaW1vdGh5IEhhdGNoZXIuCkluZGV4OiBX
ZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCShyZXZpc2lvbiA1MDMx
NSkKKysrIFdlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNTk1LDYgKzU5NSwxMyBAQAogICAgICAgICByZXR1cm47CiAgICAgfQogICAg
IAorICAgIC8vIEJsb2NrIGltYWdlcywgdGFibGVzIGFuZCBIUnMgY2Fubm90IGJlIG1hZGUgaW5s
aW5lIHdpdGggb3RoZXIgY29udGVudC4gIEluc3RlYWQgb2YgbWVyZ2luZywganVzdCBtb3ZlIHRo
ZSBjYXJldAorICAgIC8vIHRvIGp1c3QgYmVmb3JlIHRoZSBzZWxlY3Rpb24gd2UgZGVsZXRlZC4K
KyAgICBpZiAoaXNSZW5kZXJlZEFzTm9uSW5saW5lVGFibGVJbWFnZU9ySFIoc3RhcnRPZlBhcmFn
cmFwaFRvTW92ZS5kZWVwRXF1aXZhbGVudCgpLm5vZGUoKSkgJiYgIWlzU3RhcnRPZlBhcmFncmFw
aChtZXJnZURlc3RpbmF0aW9uKSkgeworICAgICAgICBtX2VuZGluZ1Bvc2l0aW9uID0gbV91cHN0
cmVhbVN0YXJ0OworICAgICAgICByZXR1cm47CisgICAgfQorICAgIAogICAgIFJlZlB0cjxSYW5n
ZT4gcmFuZ2UgPSBSYW5nZTo6Y3JlYXRlKGRvY3VtZW50KCksIHJhbmdlQ29tcGxpYW50RXF1aXZh
bGVudChzdGFydE9mUGFyYWdyYXBoVG9Nb3ZlLmRlZXBFcXVpdmFsZW50KCkpLCByYW5nZUNvbXBs
aWFudEVxdWl2YWxlbnQoZW5kT2ZQYXJhZ3JhcGhUb01vdmUuZGVlcEVxdWl2YWxlbnQoKSkpOwog
ICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2VUb0JlUmVwbGFjZWQgPSBSYW5nZTo6Y3JlYXRlKGRvY3Vt
ZW50KCksIHJhbmdlQ29tcGxpYW50RXF1aXZhbGVudChtZXJnZURlc3RpbmF0aW9uLmRlZXBFcXVp
dmFsZW50KCkpLCByYW5nZUNvbXBsaWFudEVxdWl2YWxlbnQobWVyZ2VEZXN0aW5hdGlvbi5kZWVw
RXF1aXZhbGVudCgpKSk7CiAgICAgaWYgKCFkb2N1bWVudCgpLT5mcmFtZSgpLT5lZGl0b3IoKS0+
Y2xpZW50KCktPnNob3VsZE1vdmVSYW5nZUFmdGVyRGVsZXRlKHJhbmdlLmdldCgpLCByYW5nZVRv
QmVSZXBsYWNlZC5nZXQoKSkpCkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5jcHAJKHJldmlzaW9u
IDUwMzE1KQorKysgV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNDk0LDYgKzQ5NCw3IEBACiAKIHN0YXRpYyBOb2RlKiBmaXJzdEluU3BlY2lhbEVsZW1l
bnQoY29uc3QgUG9zaXRpb24mIHBvcykKIHsKKyAgICAvLyBGSVhNRTogVGhpcyBiZWdpbnMgYXQg
cG9zLm5vZGUoKSwgd2hpY2ggZG9lc24ndCBuZWNlc3NhcmlseSBjb250YWluIHBvcyAoc3VwcG9z
ZSBwb3Mgd2FzIFtpbWcsIDBdKS4gIFNlZSA8cmRhcjovL3Byb2JsZW0vNTAyNzcwMj4uCiAgICAg
Tm9kZSogcm9vdEVkaXRhYmxlRWxlbWVudCA9IHBvcy5ub2RlKCktPnJvb3RFZGl0YWJsZUVsZW1l
bnQoKTsKICAgICBmb3IgKE5vZGUqIG4gPSBwb3Mubm9kZSgpOyBuICYmIG4tPnJvb3RFZGl0YWJs
ZUVsZW1lbnQoKSA9PSByb290RWRpdGFibGVFbGVtZW50OyBuID0gbi0+cGFyZW50Tm9kZSgpKQog
ICAgICAgICBpZiAoaXNTcGVjaWFsRWxlbWVudChuKSkgewpAQCAtNTA5LDYgKzUxMCw3IEBACiAK
IHN0YXRpYyBOb2RlKiBsYXN0SW5TcGVjaWFsRWxlbWVudChjb25zdCBQb3NpdGlvbiYgcG9zKQog
eworICAgIC8vIEZJWE1FOiBUaGlzIGJlZ2lucyBhdCBwb3Mubm9kZSgpLCB3aGljaCBkb2Vzbid0
IG5lY2Vzc2FyaWx5IGNvbnRhaW4gcG9zIChzdXBwb3NlIHBvcyB3YXMgW2ltZywgMF0pLiAgU2Vl
IDxyZGFyOi8vcHJvYmxlbS81MDI3NzAyPi4KICAgICBOb2RlKiByb290RWRpdGFibGVFbGVtZW50
ID0gcG9zLm5vZGUoKS0+cm9vdEVkaXRhYmxlRWxlbWVudCgpOwogICAgIGZvciAoTm9kZSogbiA9
IHBvcy5ub2RlKCk7IG4gJiYgbi0+cm9vdEVkaXRhYmxlRWxlbWVudCgpID09IHJvb3RFZGl0YWJs
ZUVsZW1lbnQ7IG4gPSBuLT5wYXJlbnROb2RlKCkpCiAgICAgICAgIGlmIChpc1NwZWNpYWxFbGVt
ZW50KG4pKSB7CkBAIC0xMDc3LDYgKzEwNzksMTQgQEAKICAgICAgICAgJiYgdmlzaWJsZVBvc2l0
aW9uQWZ0ZXJOb2RlKG5vZGUpID09IHNlbGVjdGVkUmFuZ2UtPmVuZFBvc2l0aW9uKCk7CiB9CiAK
K2Jvb2wgaXNSZW5kZXJlZEFzTm9uSW5saW5lVGFibGVJbWFnZU9ySFIoY29uc3QgTm9kZSogbm9k
ZSkKK3sKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBSZW5kZXJP
YmplY3QqIHJlbmRlcmVyID0gbm9kZS0+cmVuZGVyZXIoKTsKKyAgICByZXR1cm4gcmVuZGVyZXIg
JiYgKChyZW5kZXJlci0+aXNUYWJsZSgpICYmICFyZW5kZXJlci0+aXNJbmxpbmUoKSkgfHwgcmVu
ZGVyZXItPmlzSW1hZ2UoKSAmJiAhcmVuZGVyZXItPmlzSW5saW5lKCkgfHwgcmVuZGVyZXItPmlz
SFIoKSk7Cit9CisKIFBhc3NSZWZQdHI8UmFuZ2U+IGF2b2lkSW50ZXJzZWN0aW9uV2l0aE5vZGUo
Y29uc3QgUmFuZ2UqIHJhbmdlLCBOb2RlKiBub2RlKQogewogICAgIGlmICghcmFuZ2UpCkluZGV4
OiBXZWJDb3JlL2VkaXRpbmcvdmlzaWJsZV91bml0cy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9lZGl0aW5nL3Zpc2libGVfdW5pdHMuY3BwCShyZXZpc2lvbiA1MDMxNSkKKysrIFdlYkNvcmUv
ZWRpdGluZy92aXNpYmxlX3VuaXRzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzc2LDEyICs3NzYs
NiBAQAogICAgIHJldHVybiBjLmhvbm9yRWRpdGFibGVCb3VuZGFyeUF0T3JCZWZvcmUobmV4dCk7
CiB9CiAKLXN0YXRpYyBib29sIHJlbmRlcmVkQXNOb25JbmxpbmVUYWJsZU9ySFIoUmVuZGVyT2Jq
ZWN0KiByZW5kZXJlcikKLXsKLSAgICByZXR1cm4gcmVuZGVyZXIgJiYgKChyZW5kZXJlci0+aXNU
YWJsZSgpICYmICFyZW5kZXJlci0+aXNJbmxpbmUoKSkgfHwgcmVuZGVyZXItPmlzSFIoKSk7Ci19
Ci0KLS8vIEZJWE1FOiBCcm9rZW4gZm9yIHBvc2l0aW9ucyBiZWZvcmUvYWZ0ZXIgaW1hZ2VzIHRo
YXQgYXJlbid0IGlubGluZSAoNTAyNzcwMikKIFZpc2libGVQb3NpdGlvbiBzdGFydE9mUGFyYWdy
YXBoKGNvbnN0IFZpc2libGVQb3NpdGlvbiYgYykKIHsKICAgICBQb3NpdGlvbiBwID0gYy5kZWVw
RXF1aXZhbGVudCgpOwpAQCAtNzkwLDcgKzc4NCw3IEBACiAgICAgaWYgKCFzdGFydE5vZGUpCiAg
ICAgICAgIHJldHVybiBWaXNpYmxlUG9zaXRpb24oKTsKICAgICAKLSAgICBpZiAocmVuZGVyZWRB
c05vbklubGluZVRhYmxlT3JIUihzdGFydE5vZGUtPnJlbmRlcmVyKCkpICYmIHAuYXRMYXN0RWRp
dGluZ1Bvc2l0aW9uRm9yTm9kZSgpKQorICAgIGlmIChpc1JlbmRlcmVkQXNOb25JbmxpbmVUYWJs
ZUltYWdlT3JIUihzdGFydE5vZGUpKQogICAgICAgICByZXR1cm4gZmlyc3REZWVwRWRpdGluZ1Bv
c2l0aW9uRm9yTm9kZShzdGFydE5vZGUpOwogCiAgICAgTm9kZSogc3RhcnRCbG9jayA9IGVuY2xv
c2luZ0Jsb2NrKHN0YXJ0Tm9kZSk7CkBAIC04NDEsNyArODM1LDYgQEAKICAgICByZXR1cm4gVmlz
aWJsZVBvc2l0aW9uKG5vZGUsIG9mZnNldCwgRE9XTlNUUkVBTSk7CiB9CiAKLS8vIEZJWE1FOiBC
cm9rZW4gZm9yIHBvc2l0aW9ucyBiZWZvcmUvYWZ0ZXIgaW1hZ2VzIHRoYXQgYXJlbid0IGlubGlu
ZSAoNTAyNzcwMikKIFZpc2libGVQb3NpdGlvbiBlbmRPZlBhcmFncmFwaChjb25zdCBWaXNpYmxl
UG9zaXRpb24gJmMpCiB7ICAgIAogICAgIGlmIChjLmlzTnVsbCgpKQpAQCAtODUwLDcgKzg0Myw3
IEBACiAgICAgUG9zaXRpb24gcCA9IGMuZGVlcEVxdWl2YWxlbnQoKTsKICAgICBOb2RlKiBzdGFy
dE5vZGUgPSBwLm5vZGUoKTsKIAotICAgIGlmIChyZW5kZXJlZEFzTm9uSW5saW5lVGFibGVPckhS
KHN0YXJ0Tm9kZS0+cmVuZGVyZXIoKSkgJiYgcC5hdEZpcnN0RWRpdGluZ1Bvc2l0aW9uRm9yTm9k
ZSgpKQorICAgIGlmIChpc1JlbmRlcmVkQXNOb25JbmxpbmVUYWJsZUltYWdlT3JIUihzdGFydE5v
ZGUpKQogICAgICAgICByZXR1cm4gbGFzdERlZXBFZGl0aW5nUG9zaXRpb25Gb3JOb2RlKHN0YXJ0
Tm9kZSk7CiAgICAgCiAgICAgTm9kZSogc3RhcnRCbG9jayA9IGVuY2xvc2luZ0Jsb2NrKHN0YXJ0
Tm9kZSk7CkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuaAkocmV2aXNpb24gNTAzMTUpCisrKyBXZWJD
b3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuaAkod29ya2luZyBjb3B5KQpAQCAtOTEsNiArOTEsNyBA
QAogYm9vbCBpc0xpc3RFbGVtZW50KE5vZGUqKTsKIGJvb2wgaXNOb2RlUmVuZGVyZWQoY29uc3Qg
Tm9kZSopOwogYm9vbCBpc05vZGVWaXNpYmx5Q29udGFpbmVkV2l0aGluKE5vZGUqLCBjb25zdCBS
YW5nZSopOworYm9vbCBpc1JlbmRlcmVkQXNOb25JbmxpbmVUYWJsZUltYWdlT3JIUihjb25zdCBO
b2RlKik7CiAgICAgCiAgICAgCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkluZGV4OiBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lv
biA1MDQwNykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE3IEBACisyMDA5LTExLTAyICBKdXN0aW4gR2FyY2lhICA8anVzdGluLmdhcmNpYUBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1NDM5CisgICAgICAgIERl
bGV0aW5nIHdoZW4gaW4gZnJvbnQgb2YgYSBibG9jayBpbWFnZSByZW1vdmVzIGNoYXJhY3RlciBm
cm9tIHByZXZpb3VzIHBhcmFncmFwaAorCisgICAgICAgICogZWRpdGluZy9kZWxldGluZy8yNTQz
OS0xLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9kZWxldGluZy8yNTQz
OS0xLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvZGVsZXRpbmcvMjU0MzktMi1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvZGVsZXRpbmcvMjU0MzktMi5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL2RlbGV0aW5nLzI1NDM5LTMtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL2RlbGV0aW5nLzI1NDM5LTMuaHRtbDogQWRkZWQu
CisKIDIwMDktMTEtMDIgIFJvbGFuZCBTdGVpbmVyICA8cm9sYW5kc3RlaW5lckBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2ZSBIeWF0dC4KSW5kZXg6IExheW91dFRlc3Rz
L2VkaXRpbmcvZGVsZXRpbmcvMjU0MzktMi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy8yNTQzOS0yLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvMjU0MzktMi1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMyBAQAorPGltZyBpZD0iaW1nIiBzdHlsZT0iZGlzcGxh
eTpibG9jazsiIHNyYz0iLi4vcmVzb3VyY2VzL2FiZS5wbmciPgorCitTZWxlY3Rpb246IFtbb2Jq
ZWN0IEhUTUxEaXZFbGVtZW50XSwgMF0KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRp
bmcvMjU0MzktMi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRp
bmcvMjU0MzktMi5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxl
dGluZy8yNTQzOS0yLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTggQEAKKzxoZWFkPgor
PHNjcmlwdD4KK2Z1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKKyAgICAgICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKKyAgICBpbWcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW1nIik7CisgICAgcyA9
IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKKyAgICBzLnNldFBvc2l0aW9uKGltZywgMCk7CisgICAg
ZG9jdW1lbnQuZXhlY0NvbW1hbmQoIkRlbGV0ZSIpOworICAgIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCisgICAgICAgIGRvY3VtZW50LmJvZHkuaW5uZXJUZXh0ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImRpdiIpLmlubmVySFRNTCArICJcblxuU2VsZWN0aW9uOiBbIiArIHMu
YW5jaG9yTm9kZSArICIsICIgKyBzLmFuY2hvck9mZnNldCArICJdIjsKK30KKzwvc2NyaXB0PiAg
ICAKKzwvaGVhZD4KKzxib2R5IG9uTG9hZD0icnVuVGVzdCgpOyI+Cis8ZGl2PlRoaXMgdGVzdHMg
cGxhY2luZyB0aGUgY2FyZXQganVzdCBiZWZvcmUgYSBibG9jayBpbWFnZSBhbmQgcHJlc3Npbmcg
ZGVsZXRlLiBUaGUgaW1hZ2Ugc2hvdWxkIG1vdmUgdXAgb25lIGxpbmUuPC9kaXY+Cis8ZGl2IGlk
PSJkaXYiIGNvbnRlbnRFZGl0YWJsZT0idHJ1ZSI+PGJyPjxpbWcgaWQ9ImltZyIgc3R5bGU9ImRp
c3BsYXk6YmxvY2s7IiBzcmM9Ii4uL3Jlc291cmNlcy9hYmUucG5nIj48L2Rpdj4KKzwvYm9keT4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2Rl
bGV0aW5nLzI1NDM5LTEtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Vk
aXRpbmcvZGVsZXRpbmcvMjU0MzktMS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nLzI1NDM5LTEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDMgQEAKK1RoaXMgdGVzdHMgcGxhY2luZyB0aGUgY2FyZXQganVzdCBiZWZv
cmUgYSBibG9jayBpbWFnZSBhbmQgcHJlc3NpbmcgZGVsZXRlLiBUaGUgaW1hZ2Ugc2hvdWxkIG5v
dCBiZSBkZWxldGVkLiBUaGUgY2FyZXQgc2hvdWxkIGp1c3QgbW92ZSBiYWNrIHRvIHRoZSBwcmV2
aW91cyBwYXJhZ3JhcGguPGltZyBpZD0iaW1nIiBzdHlsZT0iZGlzcGxheTpibG9jazsiIHNyYz0i
Li4vcmVzb3VyY2VzL2FiZS5wbmciPgorCitTZWxlY3Rpb246IFtbb2JqZWN0IFRleHRdLCAxNjdd
CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nLzI1NDM5LTEuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nLzI1NDM5LTEuaHRtbAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvMjU0MzktMS5odG1sCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDE3IEBACis8aGVhZD4KKzxzY3JpcHQ+CitmdW5jdGlvbiBydW5U
ZXN0KCkgeworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgaW1nID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImltZyIpOworICAgIHMgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7
CisgICAgcy5zZXRQb3NpdGlvbihpbWcsIDApOworICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJE
ZWxldGUiKTsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBk
b2N1bWVudC5ib2R5LmlubmVyVGV4dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkaXYiKS5p
bm5lckhUTUwgKyAiXG5cblNlbGVjdGlvbjogWyIgKyBzLmFuY2hvck5vZGUgKyAiLCAiICsgcy5h
bmNob3JPZmZzZXQgKyAiXSI7Cit9Cis8L3NjcmlwdD4gICAgCis8L2hlYWQ+Cis8Ym9keSBvbkxv
YWQ9InJ1blRlc3QoKTsiPgorPGRpdiBpZD0iZGl2IiBjb250ZW50RWRpdGFibGU9InRydWUiPlRo
aXMgdGVzdHMgcGxhY2luZyB0aGUgY2FyZXQganVzdCBiZWZvcmUgYSBibG9jayBpbWFnZSBhbmQg
cHJlc3NpbmcgZGVsZXRlLiBUaGUgaW1hZ2Ugc2hvdWxkIG5vdCBiZSBkZWxldGVkLiBUaGUgY2Fy
ZXQgc2hvdWxkIGp1c3QgbW92ZSBiYWNrIHRvIHRoZSBwcmV2aW91cyBwYXJhZ3JhcGguPGltZyBp
ZD0iaW1nIiBzdHlsZT0iZGlzcGxheTpibG9jazsiIHNyYz0iLi4vcmVzb3VyY2VzL2FiZS5wbmci
PjwvZGl2PgorPC9ib2R5PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91
dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvMjU0MzktMy1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy8yNTQzOS0zLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvMjU0MzktMy1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMyBAQAorVGhpcyB0ZXN0cyBwbGFjaW5nIHRo
ZSBjYXJldCBqdXN0IGJlZm9yZSBhIGJsb2NrIHRhYmxlIGFuZCBwcmVzc2luZyBkZWxldGUuIFRo
ZSBjYXJldCBzaG91bGQganVzdCBtb3ZlIGJhY2sgdG8gdGhlIHByZXZpb3VzIHBhcmFncmFwaC48
dGFibGUgYm9yZGVyPSIxIiBpZD0idGFibGUiPjx0Ym9keT48dHI+PHRkPjE8L3RkPjx0ZD4yPC90
ZD48L3RyPjwvdGJvZHk+PC90YWJsZT4KKworU2VsZWN0aW9uOiBbW29iamVjdCBUZXh0XSwgMTM0
XQpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy8yNTQzOS0zLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy8yNTQzOS0zLmh0bWwJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nLzI1NDM5LTMuaHRtbAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwxNyBAQAorPGhlYWQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gcnVu
VGVzdCgpIHsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICB3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIHRhYmxlID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhYmxlIik7CisgICAgcyA9IHdpbmRvdy5nZXRTZWxlY3Rp
b24oKTsKKyAgICBzLnNldFBvc2l0aW9uKHRhYmxlLCAwKTsKKyAgICBkb2N1bWVudC5leGVjQ29t
bWFuZCgiRGVsZXRlIik7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAg
ICAgICAgZG9jdW1lbnQuYm9keS5pbm5lclRleHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
ZGl2IikuaW5uZXJIVE1MICsgIlxuXG5TZWxlY3Rpb246IFsiICsgcy5hbmNob3JOb2RlICsgIiwg
IiArIHMuYW5jaG9yT2Zmc2V0ICsgIl0iOworfQorPC9zY3JpcHQ+ICAgIAorPC9oZWFkPgorPGJv
ZHkgb25Mb2FkPSJydW5UZXN0KCk7Ij4KKzxkaXYgaWQ9ImRpdiIgY29udGVudEVkaXRhYmxlPSJ0
cnVlIj5UaGlzIHRlc3RzIHBsYWNpbmcgdGhlIGNhcmV0IGp1c3QgYmVmb3JlIGEgYmxvY2sgdGFi
bGUgYW5kIHByZXNzaW5nIGRlbGV0ZS4gVGhlIGNhcmV0IHNob3VsZCBqdXN0IG1vdmUgYmFjayB0
byB0aGUgcHJldmlvdXMgcGFyYWdyYXBoLjx0YWJsZSBib3JkZXI9IjEiIGlkPSJ0YWJsZSI+PHRy
Pjx0ZD4xPC90ZD48dGQ+MjwvdGQ+PC90cj48L3RhYmxlPjwvZGl2PgorPC9ib2R5PgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42445</attachid>
            <date>2009-11-03 20:39:46 -0800</date>
            <delta_ts>2009-11-04 10:14:08 -0800</delta_ts>
            <desc>patch</desc>
            <filename>25439.txt</filename>
            <type>text/plain</type>
            <size>12756</size>
            <attacher name="Justin Garcia">justin.garcia</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MDQwNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjcgQEAKKzIwMDktMTEtMDIgIEp1c3RpbiBHYXJjaWEgIDxqdXN0aW4uZ2FyY2lh
QGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU0MzkKKyAgICAg
ICAgRGVsZXRpbmcgd2hlbiBpbiBmcm9udCBvZiBhIGJsb2NrIGltYWdlIHJlbW92ZXMgY2hhcmFj
dGVyIGZyb20gcHJldmlvdXMgcGFyYWdyYXBoCisKKyAgICAgICAgQWRkZWQgZWRpdGluZy9kZWxl
dGluZy8yNTQzOS17MSwyLDN9Lmh0bWwKKworICAgICAgICAqIGVkaXRpbmcvRGVsZXRlU2VsZWN0
aW9uQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVTZWxlY3Rpb25Db21tYW5k
OjptZXJnZVBhcmFncmFwaHMpOiBCbG9jayBpbWFnZXMsIHRhYmxlcyBhbmQgSFJzIGNhbm5vdCAK
KyAgICAgICAgYmUgbWFkZSBpbmxpbmUgd2l0aCBvdGhlciBjb250ZW50LiAgSW5zdGVhZCBvZiBt
ZXJnaW5nLCBqdXN0IG1vdmUgdGhlIGNhcmV0IHRvIGp1c3QgYmVmb3JlIAorICAgICAgICB0aGUg
c2VsZWN0aW9uIHdlIGRlbGV0ZWQuCisgICAgICAgICogZWRpdGluZy9odG1sZWRpdGluZy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpmaXJzdEluU3BlY2lhbEVsZW1lbnQpOiBBZGRlZCBhIEZJWE1F
LiAgVGhpcyBmdW5jdGlvbiBiZWdpbnMgaXRlcmF0aW5nIHVwIGZyb20gcG9zLm5vZGUoKSwgd2hp
Y2ggCisgICAgICAgIGRvZXNuJ3QgbmVjZXNzYXJpbHkgY29udGFpbiBwb3MgKHN1cHBvc2UgcG9z
IHdhcyBbaW1nLCAwXSkuCisgICAgICAgIChXZWJDb3JlOjpsYXN0SW5TcGVjaWFsRWxlbWVudCk6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6aXNSZW5kZXJlZEFzTm9uSW5saW5lVGFibGVJbWFn
ZU9ySFIpOiBNb3ZlZCBmcm9tIHZpc2libGVfdW5pdHMuY3BwLiAgQWRkZWQgYSBjaGVjayBmb3Ig
bm9uLWlubGluZSBpbWFnZXMuCisgICAgICAgICogZWRpdGluZy9odG1sZWRpdGluZy5oOgorICAg
ICAgICAqIGVkaXRpbmcvdmlzaWJsZV91bml0cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzdGFy
dE9mUGFyYWdyYXBoKTogVXNlIG1vdmVkL3JlbmFtZWQgZnVuY3Rpb24uICBSZW1vdmVkIEZJWE1F
LiAgVGhlIHByb2JsZW0gY2F1c2luZyAKKyAgICAgICAgNTAyNzcwMiBpcyBub3cgc3F1YXJlbHkg
aW4gZmlyc3QvbGFzdEluU3BlY2lhbEVsZW1lbnQKKyAgICAgICAgKFdlYkNvcmU6OmVuZE9mUGFy
YWdyYXBoKTogRGl0dG8uCisKIDIwMDktMTEtMDEgIEtlbGx5IE5vcnRvbiAgPGtub3J0b25AZ29v
Z2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBUaW1vdGh5IEhhdGNoZXIuCkluZGV4OiBX
ZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCShyZXZpc2lvbiA1MDMx
NSkKKysrIFdlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNTk1LDYgKzU5NSwxNCBAQAogICAgICAgICByZXR1cm47CiAgICAgfQogICAg
IAorICAgIC8vIEJsb2NrIGltYWdlcywgdGFibGVzIGFuZCBob3Jpem9udGFsIHJ1bGVzIGNhbm5v
dCBiZSBtYWRlIGlubGluZSB3aXRoIGNvbnRlbnQgYXQgbWVyZ2VEZXN0aW5hdGlvbi4gIElmIHRo
ZXJlIGlzIAorICAgIC8vIGFueSAoIWlzU3RhcnRPZlBhcmFncmFwaChtZXJnZURlc3RpbmF0aW9u
KSksIGRvbid0IG1lcmdlLCBqdXN0IG1vdmUgdGhlIGNhcmV0IHRvIGp1c3QgYmVmb3JlIHRoZSBz
ZWxlY3Rpb24gd2UgZGVsZXRlZC4KKyAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTI1NDM5CisgICAgaWYgKGlzUmVuZGVyZWRBc05vbklubGluZVRhYmxl
SW1hZ2VPckhSKHN0YXJ0T2ZQYXJhZ3JhcGhUb01vdmUuZGVlcEVxdWl2YWxlbnQoKS5ub2RlKCkp
ICYmICFpc1N0YXJ0T2ZQYXJhZ3JhcGgobWVyZ2VEZXN0aW5hdGlvbikpIHsKKyAgICAgICAgbV9l
bmRpbmdQb3NpdGlvbiA9IG1fdXBzdHJlYW1TdGFydDsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyAgICAKICAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlID0gUmFuZ2U6OmNyZWF0ZShkb2N1bWVudCgp
LCByYW5nZUNvbXBsaWFudEVxdWl2YWxlbnQoc3RhcnRPZlBhcmFncmFwaFRvTW92ZS5kZWVwRXF1
aXZhbGVudCgpKSwgcmFuZ2VDb21wbGlhbnRFcXVpdmFsZW50KGVuZE9mUGFyYWdyYXBoVG9Nb3Zl
LmRlZXBFcXVpdmFsZW50KCkpKTsKICAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlVG9CZVJlcGxhY2Vk
ID0gUmFuZ2U6OmNyZWF0ZShkb2N1bWVudCgpLCByYW5nZUNvbXBsaWFudEVxdWl2YWxlbnQobWVy
Z2VEZXN0aW5hdGlvbi5kZWVwRXF1aXZhbGVudCgpKSwgcmFuZ2VDb21wbGlhbnRFcXVpdmFsZW50
KG1lcmdlRGVzdGluYXRpb24uZGVlcEVxdWl2YWxlbnQoKSkpOwogICAgIGlmICghZG9jdW1lbnQo
KS0+ZnJhbWUoKS0+ZWRpdG9yKCktPmNsaWVudCgpLT5zaG91bGRNb3ZlUmFuZ2VBZnRlckRlbGV0
ZShyYW5nZS5nZXQoKSwgcmFuZ2VUb0JlUmVwbGFjZWQuZ2V0KCkpKQpJbmRleDogV2ViQ29yZS9l
ZGl0aW5nL2h0bWxlZGl0aW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvaHRt
bGVkaXRpbmcuY3BwCShyZXZpc2lvbiA1MDMxNSkKKysrIFdlYkNvcmUvZWRpdGluZy9odG1sZWRp
dGluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ5NCw2ICs0OTQsNyBAQAogCiBzdGF0aWMgTm9k
ZSogZmlyc3RJblNwZWNpYWxFbGVtZW50KGNvbnN0IFBvc2l0aW9uJiBwb3MpCiB7CisgICAgLy8g
RklYTUU6IFRoaXMgYmVnaW5zIGF0IHBvcy5ub2RlKCksIHdoaWNoIGRvZXNuJ3QgbmVjZXNzYXJp
bHkgY29udGFpbiBwb3MgKHN1cHBvc2UgcG9zIHdhcyBbaW1nLCAwXSkuICBTZWUgPHJkYXI6Ly9w
cm9ibGVtLzUwMjc3MDI+LgogICAgIE5vZGUqIHJvb3RFZGl0YWJsZUVsZW1lbnQgPSBwb3Mubm9k
ZSgpLT5yb290RWRpdGFibGVFbGVtZW50KCk7CiAgICAgZm9yIChOb2RlKiBuID0gcG9zLm5vZGUo
KTsgbiAmJiBuLT5yb290RWRpdGFibGVFbGVtZW50KCkgPT0gcm9vdEVkaXRhYmxlRWxlbWVudDsg
biA9IG4tPnBhcmVudE5vZGUoKSkKICAgICAgICAgaWYgKGlzU3BlY2lhbEVsZW1lbnQobikpIHsK
QEAgLTUwOSw2ICs1MTAsNyBAQAogCiBzdGF0aWMgTm9kZSogbGFzdEluU3BlY2lhbEVsZW1lbnQo
Y29uc3QgUG9zaXRpb24mIHBvcykKIHsKKyAgICAvLyBGSVhNRTogVGhpcyBiZWdpbnMgYXQgcG9z
Lm5vZGUoKSwgd2hpY2ggZG9lc24ndCBuZWNlc3NhcmlseSBjb250YWluIHBvcyAoc3VwcG9zZSBw
b3Mgd2FzIFtpbWcsIDBdKS4gIFNlZSA8cmRhcjovL3Byb2JsZW0vNTAyNzcwMj4uCiAgICAgTm9k
ZSogcm9vdEVkaXRhYmxlRWxlbWVudCA9IHBvcy5ub2RlKCktPnJvb3RFZGl0YWJsZUVsZW1lbnQo
KTsKICAgICBmb3IgKE5vZGUqIG4gPSBwb3Mubm9kZSgpOyBuICYmIG4tPnJvb3RFZGl0YWJsZUVs
ZW1lbnQoKSA9PSByb290RWRpdGFibGVFbGVtZW50OyBuID0gbi0+cGFyZW50Tm9kZSgpKQogICAg
ICAgICBpZiAoaXNTcGVjaWFsRWxlbWVudChuKSkgewpAQCAtMTA3Nyw2ICsxMDc5LDE0IEBACiAg
ICAgICAgICYmIHZpc2libGVQb3NpdGlvbkFmdGVyTm9kZShub2RlKSA9PSBzZWxlY3RlZFJhbmdl
LT5lbmRQb3NpdGlvbigpOwogfQogCitib29sIGlzUmVuZGVyZWRBc05vbklubGluZVRhYmxlSW1h
Z2VPckhSKGNvbnN0IE5vZGUqIG5vZGUpCit7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IG5vZGUtPnJlbmRlcmVyKCk7
CisgICAgcmV0dXJuIHJlbmRlcmVyICYmICgocmVuZGVyZXItPmlzVGFibGUoKSAmJiAhcmVuZGVy
ZXItPmlzSW5saW5lKCkpIHx8IHJlbmRlcmVyLT5pc0ltYWdlKCkgJiYgIXJlbmRlcmVyLT5pc0lu
bGluZSgpIHx8IHJlbmRlcmVyLT5pc0hSKCkpOworfQorCiBQYXNzUmVmUHRyPFJhbmdlPiBhdm9p
ZEludGVyc2VjdGlvbldpdGhOb2RlKGNvbnN0IFJhbmdlKiByYW5nZSwgTm9kZSogbm9kZSkKIHsK
ICAgICBpZiAoIXJhbmdlKQpJbmRleDogV2ViQ29yZS9lZGl0aW5nL3Zpc2libGVfdW5pdHMuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy92aXNpYmxlX3VuaXRzLmNwcAkocmV2aXNp
b24gNTAzMTUpCisrKyBXZWJDb3JlL2VkaXRpbmcvdmlzaWJsZV91bml0cy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTc3NiwxMiArNzc2LDYgQEAKICAgICByZXR1cm4gYy5ob25vckVkaXRhYmxlQm91
bmRhcnlBdE9yQmVmb3JlKG5leHQpOwogfQogCi1zdGF0aWMgYm9vbCByZW5kZXJlZEFzTm9uSW5s
aW5lVGFibGVPckhSKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCi17Ci0gICAgcmV0dXJuIHJlbmRl
cmVyICYmICgocmVuZGVyZXItPmlzVGFibGUoKSAmJiAhcmVuZGVyZXItPmlzSW5saW5lKCkpIHx8
IHJlbmRlcmVyLT5pc0hSKCkpOwotfQotCi0vLyBGSVhNRTogQnJva2VuIGZvciBwb3NpdGlvbnMg
YmVmb3JlL2FmdGVyIGltYWdlcyB0aGF0IGFyZW4ndCBpbmxpbmUgKDUwMjc3MDIpCiBWaXNpYmxl
UG9zaXRpb24gc3RhcnRPZlBhcmFncmFwaChjb25zdCBWaXNpYmxlUG9zaXRpb24mIGMpCiB7CiAg
ICAgUG9zaXRpb24gcCA9IGMuZGVlcEVxdWl2YWxlbnQoKTsKQEAgLTc5MCw3ICs3ODQsNyBAQAog
ICAgIGlmICghc3RhcnROb2RlKQogICAgICAgICByZXR1cm4gVmlzaWJsZVBvc2l0aW9uKCk7CiAg
ICAgCi0gICAgaWYgKHJlbmRlcmVkQXNOb25JbmxpbmVUYWJsZU9ySFIoc3RhcnROb2RlLT5yZW5k
ZXJlcigpKSAmJiBwLmF0TGFzdEVkaXRpbmdQb3NpdGlvbkZvck5vZGUoKSkKKyAgICBpZiAoaXNS
ZW5kZXJlZEFzTm9uSW5saW5lVGFibGVJbWFnZU9ySFIoc3RhcnROb2RlKSkKICAgICAgICAgcmV0
dXJuIGZpcnN0RGVlcEVkaXRpbmdQb3NpdGlvbkZvck5vZGUoc3RhcnROb2RlKTsKIAogICAgIE5v
ZGUqIHN0YXJ0QmxvY2sgPSBlbmNsb3NpbmdCbG9jayhzdGFydE5vZGUpOwpAQCAtODQxLDcgKzgz
NSw2IEBACiAgICAgcmV0dXJuIFZpc2libGVQb3NpdGlvbihub2RlLCBvZmZzZXQsIERPV05TVFJF
QU0pOwogfQogCi0vLyBGSVhNRTogQnJva2VuIGZvciBwb3NpdGlvbnMgYmVmb3JlL2FmdGVyIGlt
YWdlcyB0aGF0IGFyZW4ndCBpbmxpbmUgKDUwMjc3MDIpCiBWaXNpYmxlUG9zaXRpb24gZW5kT2ZQ
YXJhZ3JhcGgoY29uc3QgVmlzaWJsZVBvc2l0aW9uICZjKQogeyAgICAKICAgICBpZiAoYy5pc051
bGwoKSkKQEAgLTg1MCw3ICs4NDMsNyBAQAogICAgIFBvc2l0aW9uIHAgPSBjLmRlZXBFcXVpdmFs
ZW50KCk7CiAgICAgTm9kZSogc3RhcnROb2RlID0gcC5ub2RlKCk7CiAKLSAgICBpZiAocmVuZGVy
ZWRBc05vbklubGluZVRhYmxlT3JIUihzdGFydE5vZGUtPnJlbmRlcmVyKCkpICYmIHAuYXRGaXJz
dEVkaXRpbmdQb3NpdGlvbkZvck5vZGUoKSkKKyAgICBpZiAoaXNSZW5kZXJlZEFzTm9uSW5saW5l
VGFibGVJbWFnZU9ySFIoc3RhcnROb2RlKSkKICAgICAgICAgcmV0dXJuIGxhc3REZWVwRWRpdGlu
Z1Bvc2l0aW9uRm9yTm9kZShzdGFydE5vZGUpOwogICAgIAogICAgIE5vZGUqIHN0YXJ0QmxvY2sg
PSBlbmNsb3NpbmdCbG9jayhzdGFydE5vZGUpOwpJbmRleDogV2ViQ29yZS9lZGl0aW5nL2h0bWxl
ZGl0aW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmgJKHJl
dmlzaW9uIDUwMzE1KQorKysgV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTkxLDYgKzkxLDcgQEAKIGJvb2wgaXNMaXN0RWxlbWVudChOb2RlKik7CiBib29s
IGlzTm9kZVJlbmRlcmVkKGNvbnN0IE5vZGUqKTsKIGJvb2wgaXNOb2RlVmlzaWJseUNvbnRhaW5l
ZFdpdGhpbihOb2RlKiwgY29uc3QgUmFuZ2UqKTsKK2Jvb2wgaXNSZW5kZXJlZEFzTm9uSW5saW5l
VGFibGVJbWFnZU9ySFIoY29uc3QgTm9kZSopOwogICAgIAogICAgIAogLy8gLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNTA0OTYpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAwOS0xMS0wMyAgSnVzdGluIEdhcmNp
YSAgPGp1c3Rpbi5nYXJjaWFAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yNTQzOQorICAgICAgICBEZWxldGluZyB3aGVuIGluIGZyb250IG9mIGEgYmxvY2sgaW1h
Z2UgcmVtb3ZlcyBjaGFyYWN0ZXIgZnJvbSBwcmV2aW91cyBwYXJhZ3JhcGgKKworICAgICAgICAq
IGVkaXRpbmcvZGVsZXRpbmcvZGVsZXRlLWJlZm9yZS1ibG9jay1pbWFnZS0xLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9kZWxldGluZy9kZWxldGUtYmVmb3JlLWJsb2Nr
LWltYWdlLTEuaHRtbDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9kZWxldGluZy9kZWxldGUt
YmVmb3JlLWJsb2NrLWltYWdlLTItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0
aW5nL2RlbGV0aW5nL2RlbGV0ZS1iZWZvcmUtYmxvY2staW1hZ2UtMi5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBlZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS1iZWZvcmUtYmxvY2stdGFibGUtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS1iZWZvcmUt
YmxvY2stdGFibGUuaHRtbDogQWRkZWQuCisKIDIwMDktMTEtMDIgIEJlbmphbWluIFBvdWxhaW4g
IDxiZW5qYW1pbi5wb3VsYWluQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1v
biBIYXVzbWFubi4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvZGVsZXRlLWJl
Zm9yZS1ibG9jay10YWJsZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZWRpdGluZy9kZWxldGluZy9kZWxldGUtYmVmb3JlLWJsb2NrLXRhYmxlLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvZGVsZXRlLWJlZm9y
ZS1ibG9jay10YWJsZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMyBAQAor
VGhpcyB0ZXN0cyBwbGFjaW5nIHRoZSBjYXJldCBqdXN0IGJlZm9yZSBhIGJsb2NrIHRhYmxlIGFu
ZCBwcmVzc2luZyBkZWxldGUuIFRoZSBjYXJldCBzaG91bGQganVzdCBtb3ZlIGJhY2sgdG8gdGhl
IHByZXZpb3VzIHBhcmFncmFwaC48dGFibGUgYm9yZGVyPSIxIiBpZD0idGFibGUiPjx0Ym9keT48
dHI+PHRkPjE8L3RkPjx0ZD4yPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT4KKworU2VsZWN0aW9u
OiBbW29iamVjdCBUZXh0XSwgMTM0XQpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGlu
Zy9kZWxldGUtYmVmb3JlLWJsb2NrLXRhYmxlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZWRpdGluZy9kZWxldGluZy9kZWxldGUtYmVmb3JlLWJsb2NrLXRhYmxlLmh0bWwJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS1iZWZvcmUtYmxv
Y2stdGFibGUuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxOCBAQAorPGhlYWQ+Cis8c2Ny
aXB0PgorZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQorICAgICAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OworICAgIHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhYmxlIik7CisgICAgcyA9
IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKKyAgICBzLnNldFBvc2l0aW9uKHRhYmxlLCAwKTsKKyAg
ICBkb2N1bWVudC5leGVjQ29tbWFuZCgiRGVsZXRlIik7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikKKyAgICAgICAgZG9jdW1lbnQuYm9keS5pbm5lclRleHQgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiZGl2IikuaW5uZXJIVE1MICsgIlxuXG5TZWxlY3Rpb246IFsiICsg
cy5hbmNob3JOb2RlICsgIiwgIiArIHMuYW5jaG9yT2Zmc2V0ICsgIl0iOworfQorPC9zY3JpcHQ+
ICAgIAorPC9oZWFkPgorPGJvZHkgb25Mb2FkPSJydW5UZXN0KCk7Ij4KKzxkaXY+VGhpcyBpcyBh
IHRlc3QgZm9yIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yNTQzOSI+aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1NDM5PC9h
Pi48L2Rpdj4KKzxkaXYgaWQ9ImRpdiIgY29udGVudEVkaXRhYmxlPSJ0cnVlIj5UaGlzIHRlc3Rz
IHBsYWNpbmcgdGhlIGNhcmV0IGp1c3QgYmVmb3JlIGEgYmxvY2sgdGFibGUgYW5kIHByZXNzaW5n
IGRlbGV0ZS4gVGhlIGNhcmV0IHNob3VsZCBqdXN0IG1vdmUgYmFjayB0byB0aGUgcHJldmlvdXMg
cGFyYWdyYXBoLjx0YWJsZSBib3JkZXI9IjEiIGlkPSJ0YWJsZSI+PHRyPjx0ZD4xPC90ZD48dGQ+
MjwvdGQ+PC90cj48L3RhYmxlPjwvZGl2PgorPC9ib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvZWRp
dGluZy9kZWxldGluZy9kZWxldGUtYmVmb3JlLWJsb2NrLWltYWdlLTItZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvZGVsZXRlLWJlZm9yZS1i
bG9jay1pbWFnZS0yLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Vk
aXRpbmcvZGVsZXRpbmcvZGVsZXRlLWJlZm9yZS1ibG9jay1pbWFnZS0yLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwzIEBACis8aW1nIGlkPSJpbWciIHN0eWxlPSJkaXNwbGF5
OmJsb2NrOyIgc3JjPSIuLi9yZXNvdXJjZXMvYWJlLnBuZyI+CisKK1NlbGVjdGlvbjogW1tvYmpl
Y3QgSFRNTERpdkVsZW1lbnRdLCAwXQpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGlu
Zy9kZWxldGUtYmVmb3JlLWJsb2NrLWltYWdlLTIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS1iZWZvcmUtYmxvY2staW1hZ2UtMi5odG1sCShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9kZWxldGUtYmVmb3Jl
LWJsb2NrLWltYWdlLTIuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxOSBAQAorPGhlYWQ+
Cis8c2NyaXB0PgorZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQorICAgICAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOworICAgIGltZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbWciKTsKKyAgICBz
ID0gd2luZG93LmdldFNlbGVjdGlvbigpOworICAgIHMuc2V0UG9zaXRpb24oaW1nLCAwKTsKKyAg
ICBkb2N1bWVudC5leGVjQ29tbWFuZCgiRGVsZXRlIik7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikKKyAgICAgICAgZG9jdW1lbnQuYm9keS5pbm5lclRleHQgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiZGl2IikuaW5uZXJIVE1MICsgIlxuXG5TZWxlY3Rpb246IFsiICsg
cy5hbmNob3JOb2RlICsgIiwgIiArIHMuYW5jaG9yT2Zmc2V0ICsgIl0iOworfQorPC9zY3JpcHQ+
ICAgIAorPC9oZWFkPgorPGJvZHkgb25Mb2FkPSJydW5UZXN0KCk7Ij4KKzxkaXY+VGhpcyBpcyBh
IHRlc3QgZm9yIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yNTQzOSI+aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1NDM5PC9h
Pi48L2Rpdj4KKzxkaXY+VGhpcyB0ZXN0cyBwbGFjaW5nIHRoZSBjYXJldCBqdXN0IGJlZm9yZSBh
IGJsb2NrIGltYWdlIGFuZCBwcmVzc2luZyBkZWxldGUuIFRoZSBpbWFnZSBzaG91bGQgbW92ZSB1
cCBvbmUgbGluZS48L2Rpdj4KKzxkaXYgaWQ9ImRpdiIgY29udGVudEVkaXRhYmxlPSJ0cnVlIj48
YnI+PGltZyBpZD0iaW1nIiBzdHlsZT0iZGlzcGxheTpibG9jazsiIHNyYz0iLi4vcmVzb3VyY2Vz
L2FiZS5wbmciPjwvZGl2PgorPC9ib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxl
dGluZy9kZWxldGUtYmVmb3JlLWJsb2NrLWltYWdlLTEtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvZGVsZXRlLWJlZm9yZS1ibG9jay1pbWFn
ZS0xLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZGVs
ZXRpbmcvZGVsZXRlLWJlZm9yZS1ibG9jay1pbWFnZS0xLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwzIEBACitUaGlzIHRlc3RzIHBsYWNpbmcgdGhlIGNhcmV0IGp1c3QgYmVm
b3JlIGEgYmxvY2sgaW1hZ2UgYW5kIHByZXNzaW5nIGRlbGV0ZS4gVGhlIGltYWdlIHNob3VsZCBu
b3QgYmUgZGVsZXRlZC4gVGhlIGNhcmV0IHNob3VsZCBqdXN0IG1vdmUgYmFjayB0byB0aGUgcHJl
dmlvdXMgcGFyYWdyYXBoLjxpbWcgaWQ9ImltZyIgc3R5bGU9ImRpc3BsYXk6YmxvY2s7IiBzcmM9
Ii4uL3Jlc291cmNlcy9hYmUucG5nIj4KKworU2VsZWN0aW9uOiBbW29iamVjdCBUZXh0XSwgMTY3
XQpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9kZWxldGUtYmVmb3JlLWJsb2Nr
LWltYWdlLTEuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5n
L2RlbGV0ZS1iZWZvcmUtYmxvY2staW1hZ2UtMS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvZWRpdGluZy9kZWxldGluZy9kZWxldGUtYmVmb3JlLWJsb2NrLWltYWdlLTEuaHRtbAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwxOCBAQAorPGhlYWQ+Cis8c2NyaXB0PgorZnVuY3Rpb24g
cnVuVGVzdCgpIHsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAg
ICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGltZyA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbWciKTsKKyAgICBzID0gd2luZG93LmdldFNlbGVjdGlv
bigpOworICAgIHMuc2V0UG9zaXRpb24oaW1nLCAwKTsKKyAgICBkb2N1bWVudC5leGVjQ29tbWFu
ZCgiRGVsZXRlIik7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAg
ICAgZG9jdW1lbnQuYm9keS5pbm5lclRleHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGl2
IikuaW5uZXJIVE1MICsgIlxuXG5TZWxlY3Rpb246IFsiICsgcy5hbmNob3JOb2RlICsgIiwgIiAr
IHMuYW5jaG9yT2Zmc2V0ICsgIl0iOworfQorPC9zY3JpcHQ+ICAgIAorPC9oZWFkPgorPGJvZHkg
b25Mb2FkPSJydW5UZXN0KCk7Ij4KKzxkaXY+VGhpcyBpcyBhIHRlc3QgZm9yIDxhIGhyZWY9Imh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTQzOSI+aHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1NDM5PC9hPi48L2Rpdj4KKzxkaXYgaWQ9ImRp
diIgY29udGVudEVkaXRhYmxlPSJ0cnVlIj5UaGlzIHRlc3RzIHBsYWNpbmcgdGhlIGNhcmV0IGp1
c3QgYmVmb3JlIGEgYmxvY2sgaW1hZ2UgYW5kIHByZXNzaW5nIGRlbGV0ZS4gVGhlIGltYWdlIHNo
b3VsZCBub3QgYmUgZGVsZXRlZC4gVGhlIGNhcmV0IHNob3VsZCBqdXN0IG1vdmUgYmFjayB0byB0
aGUgcHJldmlvdXMgcGFyYWdyYXBoLjxpbWcgaWQ9ImltZyIgc3R5bGU9ImRpc3BsYXk6YmxvY2s7
IiBzcmM9Ii4uL3Jlc291cmNlcy9hYmUucG5nIj48L2Rpdj4KKzwvYm9keT4K
</data>
<flag name="review"
          id="23980"
          type_id="1"
          status="+"
          setter="adele"
    />
          </attachment>
      

    </bug>

</bugzilla>