<?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>58925</bug_id>
          
          <creation_ts>2011-04-19 13:55:30 -0700</creation_ts>
          <short_desc>REGRESSION(r55762): Highlight color can&apos;t be copied in gmail</short_desc>
          <delta_ts>2011-04-19 16:38:07 -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>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</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="Enrica Casucci">enrica</reporter>
          <assigned_to name="Enrica Casucci">enrica</assigned_to>
          <cc>adele</cc>
    
    <cc>ap</cc>
    
    <cc>mitz</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>388768</commentid>
    <comment_count>0</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2011-04-19 13:55:30 -0700</bug_when>
    <thetext>* STEPS TO REPRODUCE
1. Create new Gmail message
2. type &quot;test&quot;
3. select the word
4. select a background color from the toolbar
5. cmd-c to copy
6. hit the right arrow to move selection to the end of the word
7. cmd-v to paste

Expected:
testtest and the entire text has the selected background color

Actual:
the original word (&quot;test&quot;) has the selected background whereas the pasted content has no background.

&lt;rdar://problem/9253057&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>388769</commentid>
    <comment_count>1</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2011-04-19 13:57:53 -0700</bug_when>
    <thetext>The change in r55762 uncovered the real issue. The markup placed in the pasteboard doesn&apos;t contain the background color.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>388819</commentid>
    <comment_count>2</comment_count>
      <attachid>90260</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2011-04-19 14:58:15 -0700</bug_when>
    <thetext>Created attachment 90260
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>388822</commentid>
    <comment_count>3</comment_count>
      <attachid>90260</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-04-19 15:01:06 -0700</bug_when>
    <thetext>Comment on attachment 90260
Patch

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

&gt; Source/WebCore/editing/markup.cpp:455
&gt; +static bool hasVisibleBackgroundColor(CSSStyleDeclaration* style)
&gt; +{
&gt; +    if (!style)
&gt; +        return false;
&gt; +    RefPtr&lt;CSSValue&gt; colorValue = style-&gt;getPropertyCSSValue(CSSPropertyBackgroundColor);
&gt; +    if (!colorValue || !colorValue-&gt;isPrimitiveValue())
&gt; +        return false;
&gt; +    
&gt; +    CSSPrimitiveValue* primitiveColor = static_cast&lt;CSSPrimitiveValue*&gt;(colorValue.get());
&gt; +    RGBA32 rgba = 0;
&gt; +
&gt; +    if (primitiveColor-&gt;primitiveType() == CSSPrimitiveValue::CSS_RGBCOLOR)
&gt; +        rgba = primitiveColor-&gt;getRGBA32Value();
&gt; +    else
&gt; +        CSSParser::parseColor(rgba, colorValue-&gt;cssText());
&gt; +    return alphaChannel(rgba);
&gt; +}

There&apos;s hasTransparentBackgroundColor in Editor.cpp.  Please share code with that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>388829</commentid>
    <comment_count>4</comment_count>
      <attachid>90260</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-04-19 15:06:42 -0700</bug_when>
    <thetext>Comment on attachment 90260
Patch

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

&gt; LayoutTests/editing/pasteboard/copy-text-with-backgroundcolor.html:62
&gt; +&lt;div class=&quot;explanation&quot;&gt;
&gt; +&lt;div class=&quot;scenario&quot;&gt;
&gt; +Tests: 
&gt; +&lt;br&gt;
&gt; +Fix for this bug: 
&gt; +&lt;a href=&quot;https://bugs.webkit.org/show_bug.cgi?id=58925&quot;&gt;&amp;lt;https://bugs.webkit.org/show_bug.cgi?id=58925&amp;gt;&lt;/a&gt; REGRESSION(r55762): Highlight color can&apos;t be copied in gmail.
&gt; +&lt;/div&gt;
&gt; +&lt;div class=&quot;expected-results&quot;&gt;
&gt; +Expected Results:
&gt; +&lt;br&gt;
&gt; +The pasted text should have the same background color as the copied text.
&gt; +&lt;/div&gt;
&gt; +&lt;/div&gt;

I&apos;m not sure why you&apos;d need so much markup here.  Also, could you explain the steps to manually (i.e. interactively) run this test?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>388835</commentid>
    <comment_count>5</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2011-04-19 15:15:26 -0700</bug_when>
    <thetext>I will definitely do that, thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>388836</commentid>
    <comment_count>6</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2011-04-19 15:15:58 -0700</bug_when>
    <thetext>Will do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>388860</commentid>
    <comment_count>7</comment_count>
      <attachid>90268</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2011-04-19 15:45:49 -0700</bug_when>
    <thetext>Created attachment 90268
Patch2

Uses exiting hasTransparentBackgroundColor from the Editor class.
Added instructions to run test manually.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>388864</commentid>
    <comment_count>8</comment_count>
      <attachid>90268</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-04-19 15:49:47 -0700</bug_when>
    <thetext>Comment on attachment 90268
Patch2

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

&gt; Source/WebCore/editing/Editor.cpp:919
&gt; -static bool hasTransparentBackgroundColor(CSSStyleDeclaration* style)
&gt; +bool Editor::hasTransparentBackgroundColor(CSSStyleDeclaration* style)

Should it make more sense to move this function over to htmlediting.h/cpp?  I don&apos;t think we want to bloat the Editor class.

&gt; LayoutTests/ChangeLog:9
&gt; +        New tests.

Please explain what kind of a test you&apos;re adding.

&gt; LayoutTests/editing/pasteboard/copy-text-with-backgroundcolor.html:60
&gt; +The pasted text should have the same background color as the copied text. To run the test manually, select each of the two words with the same background color, copy, move the selection at the end of the second word and paste.

Please put some of this description in Markup.description so that it&apos;s printed out with the test results.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>388867</commentid>
    <comment_count>9</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2011-04-19 15:55:56 -0700</bug_when>
    <thetext>&gt; Should it make more sense to move this function over to htmlediting.h/cpp?  I don&apos;t think we want to bloat the Editor class.

I thought about that and decided against it, since all the functions in htmlediting.cpp deal with Position, VisiblePosition. Document and Node, but nothing that has to do with style.

&gt; &gt; LayoutTests/ChangeLog:9
&gt; &gt; +        New tests.
&gt; 
&gt; Please explain what kind of a test you&apos;re adding.
I thought it was fairly clear from the title of the bug and the file name of the test.

&gt; 
&gt; Please put some of this description in Markup.description so that it&apos;s printed out with the test results.
I believe there is enough description for such a simple test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>388868</commentid>
    <comment_count>10</comment_count>
      <attachid>90268</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-04-19 15:56:26 -0700</bug_when>
    <thetext>Comment on attachment 90268
Patch2

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

&gt; Source/WebCore/editing/markup.cpp:468
&gt; -    return !propertyMissingOrEqualToNone(style.get(), CSSPropertyTextDecoration);
&gt; +    return !propertyMissingOrEqualToNone(style.get(), CSSPropertyTextDecoration) || !Editor::hasTransparentBackgroundColor(style.get());

I&apos;m not sure if this is the correct place to add this check.  This will force us to clone the highest ancestor with the background color.  So if html element had an opaque background color, we&apos;d copy that as well.   But I don&apos;t think that&apos;s what we want.  We&apos;d like to find the lowest common ancestor that has background color although this will not preserve the background color when the alpha value is less than 100%.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>388869</commentid>
    <comment_count>11</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-04-19 15:58:15 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; &gt; Please put some of this description in Markup.description so that it&apos;s printed out with the test results.
&gt; I believe there is enough description for such a simple test.

Oh, I&apos;m not saying that you need to explain anything.  I&apos;m just pointing out that your nice description isn&apos;t included in the expected result because you didn&apos;t put them in Markup.description.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>388874</commentid>
    <comment_count>12</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2011-04-19 16:05:59 -0700</bug_when>
    <thetext>&gt; I&apos;m not sure if this is the correct place to add this check.  This will force us to clone the highest ancestor with the background color.  So if html element had an opaque background color, we&apos;d copy that as well.   But I don&apos;t think that&apos;s what we want.  We&apos;d like to find the lowest common ancestor that has background color although this will not preserve the background color when the alpha value is less than 100%.

I don&apos;t believe this is true. The function I changed is used to decide which ancestors to consider and it is used, as I explained in the ChangeLog, by highestAncestorToWrapMarkup when calling highestEnclosingNodeOfType that will stop at root that is the highestEditableRoot.
I have not changed at all the logic to walk up the ancestors chain.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>388875</commentid>
    <comment_count>13</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-04-19 16:07:08 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; &gt; Should it make more sense to move this function over to htmlediting.h/cpp?  I don&apos;t think we want to bloat the Editor class.
&gt; 
&gt; I thought about that and decided against it, since all the functions in htmlediting.cpp deal with Position, VisiblePosition. Document and Node, but nothing that has to do with style.

Okay.  I was going to suggest EditingStyle.h/cpp but then this particular function doesn&apos;t fit well there either.  I guess keeping it as a method of the Editor class is fine as is.

(In reply to comment #12)
&gt; I don&apos;t believe this is true. The function I changed is used to decide which ancestors to consider and it is used, as I explained in the ChangeLog, by highestAncestorToWrapMarkup when calling 
highestEnclosingNodeOfType that will stop at root that is the highestEditableRoot.

How about when we&apos;re in design mode?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>388877</commentid>
    <comment_count>14</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2011-04-19 16:10:09 -0700</bug_when>
    <thetext>&gt; How about when we&apos;re in design mode?
I did not add highestEnclosingNodeOfType, therefore it behaves as it always had.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>388891</commentid>
    <comment_count>15</comment_count>
      <attachid>90268</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-04-19 16:22:53 -0700</bug_when>
    <thetext>Comment on attachment 90268
Patch2

(In reply to comment #14)
&gt; &gt; How about when we&apos;re in design mode?
&gt; I did not add highestEnclosingNodeOfType, therefore it behaves as it always had.

Well, I meant that in design mode, root editable element is body so it&apos;ll clone all nodes up to body element if body has an opaque background but it seems like we have a way of handling that in paste side so I guess we&apos;re fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>388900</commentid>
    <comment_count>16</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2011-04-19 16:31:25 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (From update of attachment 90268 [details])
&gt; (In reply to comment #14)
&gt; &gt; &gt; How about when we&apos;re in design mode?
&gt; &gt; I did not add highestEnclosingNodeOfType, therefore it behaves as it always had.
&gt; 
&gt; Well, I meant that in design mode, root editable element is body so it&apos;ll clone all nodes up to body element if body has an opaque background but it seems like we have a way of handling that in paste side so I guess we&apos;re fine.

The case of the of the body with opaque background is accounted for in this code and we have a test that verifies that we preserve that correctly (editing/pasteboard/19644-2.html). Keep in mind also that block elements in the markup generation code are handled in a different way.

Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>388907</commentid>
    <comment_count>17</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2011-04-19 16:38:07 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/84311</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>90260</attachid>
            <date>2011-04-19 14:58:15 -0700</date>
            <delta_ts>2011-04-19 15:45:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>copybackground.txt</filename>
            <type>text/plain</type>
            <size>11414</size>
            <attacher name="Enrica Casucci">enrica</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg0Mjk3KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTEtMDQtMTkgIEVucmljYSBD
YXN1Y2NpICA8ZW5yaWNhQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSRUdSRVNTSU9OKHI1NTc2Mik6IEhpZ2hsaWdodCBjb2xvciBj
YW4ndCBiZSBjb3BpZWQgaW4gZ21haWwuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD01ODkyNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vOTI1MzA1Nz4K
KworICAgICAgICBUZXN0OiBlZGl0aW5nL3Bhc3RlYm9hcmQvY29weS10ZXh0LXdpdGgtYmFja2dy
b3VuZGNvbG9yLmh0bWwKKworICAgICAgICBUaGUgY2hhbmdlcyBvZiByNTU3NjIgdW5jb3ZlcmVk
IHRoZSB1bmRlcmx5aW5nIGlzc3VlIGhlcmUuIFRoZSBtYXJrdXAgZnJhZ21lbnQKKyAgICAgICAg
cGxhY2VkIGluIHRoZSBwYXN0ZWJvYXJkIGRvZXMgbm90IGNvbnRhaW4gdGhlIGJhY2tncm91bmQg
Y29sb3Igc3R5bGUuCisgICAgICAgIFRoaXMgb2NjdXJzIG9ubHkgaWYgdGhlIHNlbGVjdGlvbiBp
cyBsaW1pdGVkIHRvIGEgc2luZ2xlIHRleHQgbm9kZSwgd2hlcmVhcyBpZiB0aGUKKyAgICAgICAg
c2VsZWN0aW9uIHNwYW5zIGFjcm9zcyBtdWx0aXBsZSBub2RlcywgdGhlIHN0eWxlIGlzIHByZXNl
cnZlZCBjb3JyZWN0bHkuCisgICAgICAgIFRoZSBmaXggY29uc2lzdHMgaW4gY2hhbmdpbmcgdGhl
IGxvZ2ljIHRoYXQgZGVjaWRlcyB3aGV0aGVyIHdlIHNob3VsZCBpbmNsdWRlIHRoZSB3cmFwcGlu
ZworICAgICAgICBub2RlIGluIHRoZSBtYXJrdXAuIFRoYXQgbG9naWMgaXMgYmFzZWQgb24gdGhl
IGNvZGUgaW4gaGlnaGVzdEFuY2VzdG9yVG9XcmFwTWFya3VwIHdoaWNoIHJlbGllcworICAgICAg
ICBvbiBpc0VsZW1lbnRQcmVzZW50YXRpb25hbCB0byBjaG9vc2UgY2FuZGlkYXRlcyB0byBiZSB0
aGUgd3JhcHBpbmcgbm9kZS4KKyAgICAgICAgSSd2ZSBleHRlbmRlZCBpdCB0byBhY2NlcHQgbm9k
ZXMgdGhhdCBoYXZlIG5vbiBmdWxseSB0cmFuc3BhcmVudCBiYWNrZ3JvdW5kIGNvbG9ycy4KKyAg
ICAgICAgCisgICAgICAgICogZWRpdGluZy9tYXJrdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
aGFzVmlzaWJsZUJhY2tncm91bmRDb2xvcik6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6aXNF
bGVtZW50UHJlc2VudGF0aW9uYWwpOiBNb2RpZmllZCB0byB1c2UgaGFzVmlzaWJsZUJhY2tncm91
bmRDb2xvci4KKwogMjAxMS0wNC0xOSAgQmV0aCBEYWtpbiAgPGJkYWtpbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgTWFjaWVqIFN0YWNob3dpYWsuCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL21hcmt1cC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRp
dGluZy9tYXJrdXAuY3BwCShyZXZpc2lvbiA4NDI5NSkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvbWFya3VwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsOCArMjcsMTAgQEAKICNpbmNsdWRl
ICJtYXJrdXAuaCIKIAogI2luY2x1ZGUgIkNEQVRBU2VjdGlvbi5oIgorI2luY2x1ZGUgIkNvbG9y
LmgiCiAjaW5jbHVkZSAiQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmgiCiAjaW5jbHVkZSAi
Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uaCIKKyNpbmNsdWRlICJDU1NQYXJzZXIuaCIKICNp
bmNsdWRlICJDU1NQcmltaXRpdmVWYWx1ZS5oIgogI2luY2x1ZGUgIkNTU1Byb3BlcnR5LmgiCiAj
aW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgpAQCAtNDM0LDYgKzQzNiwyNCBAQCBzdGF0aWMg
Ym9vbCBwcm9wZXJ0eU1pc3NpbmdPckVxdWFsVG9Ob25lCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0
PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUuZ2V0KCkpLT5nZXRJZGVudCgpID09IENTU1ZhbHVl
Tm9uZTsKIH0KIAorc3RhdGljIGJvb2wgaGFzVmlzaWJsZUJhY2tncm91bmRDb2xvcihDU1NTdHls
ZURlY2xhcmF0aW9uKiBzdHlsZSkKK3sKKyAgICBpZiAoIXN0eWxlKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgUmVmUHRyPENTU1ZhbHVlPiBjb2xvclZhbHVlID0gc3R5bGUtPmdldFByb3Bl
cnR5Q1NTVmFsdWUoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IpOworICAgIGlmICghY29sb3JW
YWx1ZSB8fCAhY29sb3JWYWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgCisgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHByaW1pdGl2ZUNvbG9yID0gc3Rh
dGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPihjb2xvclZhbHVlLmdldCgpKTsKKyAgICBSR0JB
MzIgcmdiYSA9IDA7CisKKyAgICBpZiAocHJpbWl0aXZlQ29sb3ItPnByaW1pdGl2ZVR5cGUoKSA9
PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1JHQkNPTE9SKQorICAgICAgICByZ2JhID0gcHJpbWl0
aXZlQ29sb3ItPmdldFJHQkEzMlZhbHVlKCk7CisgICAgZWxzZQorICAgICAgICBDU1NQYXJzZXI6
OnBhcnNlQ29sb3IocmdiYSwgY29sb3JWYWx1ZS0+Y3NzVGV4dCgpKTsKKyAgICByZXR1cm4gYWxw
aGFDaGFubmVsKHJnYmEpOworfQorCiBzdGF0aWMgYm9vbCBuZWVkSW50ZXJjaGFuZ2VOZXdsaW5l
QWZ0ZXIoY29uc3QgVmlzaWJsZVBvc2l0aW9uJiB2KQogewogICAgIFZpc2libGVQb3NpdGlvbiBu
ZXh0ID0gdi5uZXh0KCk7CkBAIC00NjUsNyArNDg1LDcgQEAgc3RhdGljIGJvb2wgaXNFbGVtZW50
UHJlc2VudGF0aW9uYWwoY29ucwogICAgIFJlZlB0cjxDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlv
bj4gc3R5bGUgPSBzdHlsZUZyb21NYXRjaGVkUnVsZXNBbmRJbmxpbmVEZWNsKG5vZGUpOwogICAg
IGlmICghc3R5bGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4gIXByb3BlcnR5
TWlzc2luZ09yRXF1YWxUb05vbmUoc3R5bGUuZ2V0KCksIENTU1Byb3BlcnR5VGV4dERlY29yYXRp
b24pOworICAgIHJldHVybiAhcHJvcGVydHlNaXNzaW5nT3JFcXVhbFRvTm9uZShzdHlsZS5nZXQo
KSwgQ1NTUHJvcGVydHlUZXh0RGVjb3JhdGlvbikgfHwgaGFzVmlzaWJsZUJhY2tncm91bmRDb2xv
cihzdHlsZS5nZXQoKSk7CiB9CiAKIHN0YXRpYyBib29sIHNob3VsZEluY2x1ZGVXcmFwcGVyRm9y
RnVsbHlTZWxlY3RlZFJvb3QoTm9kZSogZnVsbHlTZWxlY3RlZFJvb3QsIENTU011dGFibGVTdHls
ZURlY2xhcmF0aW9uKiBzdHlsZSkKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDg0Mjk3KQorKysgTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDQt
MTkgIEVucmljYSBDYXN1Y2NpICA8ZW5yaWNhQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSRUdSRVNTSU9OKHI1NTc2Mik6IEhpZ2hs
aWdodCBjb2xvciBjYW4ndCBiZSBjb3BpZWQgaW4gZ21haWwuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01ODkyNQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vOTI1MzA1Nz4KKworICAgICAgICBOZXcgdGVzdHMuCisgICAgICAgIAorICAgICAgICAqIGVk
aXRpbmcvcGFzdGVib2FyZC9jb3B5LXRleHQtd2l0aC1iYWNrZ3JvdW5kY29sb3ItZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvY29weS10ZXh0LXdpdGgt
YmFja2dyb3VuZGNvbG9yLmh0bWw6IEFkZGVkLgorCiAyMDExLTA0LTE5ICBCZXRoIERha2luICA8
YmRha2luQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYWNpZWogU3RhY2hvd2lh
ay4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9jb3B5LXRleHQtd2l0aC1i
YWNrZ3JvdW5kY29sb3ItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Vk
aXRpbmcvcGFzdGVib2FyZC9jb3B5LXRleHQtd2l0aC1iYWNrZ3JvdW5kY29sb3ItZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2NvcHkt
dGV4dC13aXRoLWJhY2tncm91bmRjb2xvci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsNzkgQEAKK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZEJlZ2luRWRpdGluZ0luRE9NUmFu
Z2U6cmFuZ2UgZnJvbSAwIG9mIERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDcgb2Yg
RElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQKK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdE
aWRCZWdpbkVkaXRpbmc6V2ViVmlld0RpZEJlZ2luRWRpdGluZ05vdGlmaWNhdGlvbgorRURJVElO
RyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2Vs
ZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2Vs
ZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVM
RUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlv
bk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlv
bjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRF
OiBzaG91bGRJbnNlcnROb2RlOiNkb2N1bWVudC1mcmFnbWVudCByZXBsYWNpbmdET01SYW5nZTpy
YW5nZSBmcm9tIDE0IG9mICN0ZXh0ID4gU1BBTiA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3Vt
ZW50IHRvIDE0IG9mICN0ZXh0ID4gU1BBTiA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50
IGdpdmVuQWN0aW9uOldlYlZpZXdJbnNlcnRBY3Rpb25QYXN0ZWQKK0VESVRJTkcgREVMRUdBVEU6
IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSAxNCBvZiAjdGV4dCA+IFNQ
QU4gPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAxNCBvZiAjdGV4dCA+IFNQQU4g
PiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0b0RPTVJhbmdlOnJhbmdlIGZyb20gMTQg
b2YgI3RleHQgPiBTUEFOID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMTQgb2Yg
I3RleHQgPiBTUEFOID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNT
ZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcg
REVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVj
dGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJW
aWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hh
bmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJ
TkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNl
bGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNl
bGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERF
TEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rp
b25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZEluc2VydE5vZGU6I2RvY3Vt
ZW50LWZyYWdtZW50IHJlcGxhY2luZ0RPTVJhbmdlOnJhbmdlIGZyb20gMTYgb2YgI3RleHQgPiBT
UEFOID4gRElWID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMTYgb2YgI3RleHQg
PiBTUEFOID4gRElWID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgZ2l2ZW5BY3Rpb246
V2ViVmlld0luc2VydEFjdGlvblBhc3RlZAorRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdl
U2VsZWN0ZWRET01SYW5nZTpyYW5nZSBmcm9tIDE2IG9mICN0ZXh0ID4gU1BBTiA+IERJViA+IERJ
ViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDE2IG9mICN0ZXh0ID4gU1BBTiA+IERJViA+
IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAxNiBv
ZiAjdGV4dCA+IFNQQU4gPiBESVYgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAx
NiBvZiAjdGV4dCA+IFNQQU4gPiBESVYgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBh
ZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxT
RQorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlk
Q2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlk
Q2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdl
YlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNh
dGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3
RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3
RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24K
K0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENo
YW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogc2hvdWxkSW5zZXJ0
Tm9kZTojZG9jdW1lbnQtZnJhZ21lbnQgcmVwbGFjaW5nRE9NUmFuZ2U6cmFuZ2UgZnJvbSAyMiBv
ZiAjdGV4dCA+IFNQQU4gPiBESVYgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAy
MiBvZiAjdGV4dCA+IFNQQU4gPiBESVYgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBn
aXZlbkFjdGlvbjpXZWJWaWV3SW5zZXJ0QWN0aW9uUGFzdGVkCitFRElUSU5HIERFTEVHQVRFOiBz
aG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gMjIgb2YgI3RleHQgPiBTUEFO
ID4gRElWID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMjIgb2YgI3RleHQgPiBT
UEFOID4gRElWID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9ET01SYW5nZTpyYW5n
ZSBmcm9tIDIyIG9mICN0ZXh0ID4gRElWID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQg
dG8gMjIgb2YgI3RleHQgPiBESVYgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZp
bml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQor
RURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hh
bmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hh
bmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZp
ZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlv
bgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZEVuZEVkaXRpbmc6V2ViVmlld0RpZEVuZEVk
aXRpbmdOb3RpZmljYXRpb24KKworTWFya3VwIGJlZm9yZToKK3wgIgorIgorfCA8c3Bhbj4KK3wg
ICBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMCwgMCk7IgorfCAgICI8I3NlbGVj
dGlvbi1jYXJldD5SZWQgYmFja2dyb3VuZCIKK3wgIgorIgorfCA8ZGl2PgorfCAgIGlkPSJ0ZXN0
MiIKK3wgICA8c3Bhbj4KK3wgICAgIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsiCit8
ICAgICAiR3JlZW4gYmFja2dyb3VuZCIKK3wgIgorIgorfCA8ZGl2PgorfCAgIGlkPSJ0ZXN0MyIK
K3wgICA8c3Bhbj4KK3wgICAgIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAwLCAw
LCAwKTsiCit8ICAgICAiVHJhbnNwYXJlbnQgYmFja2dyb3VuZCIKK3wgIgorIgorCitNYXJrdXAg
YWZ0ZXI6Cit8ICIKKyIKK3wgPHNwYW4+Cit8ICAgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHJn
YigyNTUsIDAsIDApOyIKK3wgICAiUmVkIGJhY2tncm91bmQiCit8IDxzcGFuPgorfCAgIHN0eWxl
PSJiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAwLCAwKTsgIgorfCAgICJSZWQgYmFja2dyb3Vu
ZCIKK3wgPGRpdj4KK3wgICBpZD0idGVzdDIiCit8ICAgPHNwYW4+Cit8ICAgICBzdHlsZT0iYmFj
a2dyb3VuZC1jb2xvcjogZ3JlZW47IgorfCAgICAgIkdyZWVuIGJhY2tncm91bmQiCit8ICAgPHNw
YW4+Cit8ICAgICBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47ICIKK3wgICAgICJHcmVl
biBiYWNrZ3JvdW5kIgorfCAiCisiCit8IDxkaXY+Cit8ICAgaWQ9InRlc3QzIgorfCAgIDxzcGFu
PgorfCAgICAgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDAsIDAsIDApOyIKK3wg
ICAgICJUcmFuc3BhcmVudCBiYWNrZ3JvdW5kIgorfCAgICJUcmFuc3BhcmVudCBiYWNrZ3JvdW5k
PCNzZWxlY3Rpb24tY2FyZXQ+IgorfCAiCisiCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bh
c3RlYm9hcmQvY29weS10ZXh0LXdpdGgtYmFja2dyb3VuZGNvbG9yLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2NvcHktdGV4dC13aXRoLWJhY2tncm91
bmRjb2xvci5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJv
YXJkL2NvcHktdGV4dC13aXRoLWJhY2tncm91bmRjb2xvci5odG1sCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDc0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPiAKKzxoZWFkPgorCis8c3R5bGU+
CisuZWRpdGluZyB7IAorICAgIGJvcmRlcjogMnB4IHNvbGlkIHJlZDsgCisgICAgZm9udC1zaXpl
OiAyNHB4OyAKK30KKy5leHBsYW5hdGlvbiB7IAorICAgIGJvcmRlcjogMnB4IHNvbGlkIGJsdWU7
IAorICAgIHBhZGRpbmc6IDEycHg7IAorICAgIGZvbnQtc2l6ZTogMjRweDsgCisgICAgbWFyZ2lu
LWJvdHRvbTogMjRweDsKK30KKy5zY2VuYXJpbyB7IG1hcmdpbi1ib3R0b206IDE2cHg7fQorLnNj
ZW5hcmlvOmZpcnN0LWxpbmUgeyBmb250LXdlaWdodDogYm9sZDsgbWFyZ2luLWJvdHRvbTogMTZw
eDt9CisuZXhwZWN0ZWQtcmVzdWx0czpmaXJzdC1saW5lIHsgZm9udC13ZWlnaHQ6IGJvbGQgfQor
PC9zdHlsZT4KKzxzY3JpcHQgc3JjPS4uL2VkaXRpbmcuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2R1bXAtYXMtbWFya3VwLmpzIj48L3NjcmlwdD4KKworPHNjcmlw
dD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKKworZnVuY3Rpb24gcGVyZm9ybUNvcHlQYXN0ZShlbGVtZW50
TmFtZSkKK3sKKyAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1l
bnROYW1lKTsKKyAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2V0UG9zaXRpb24oZWxlbWVudC5m
aXJzdENoaWxkLCAwKTsKKyAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkubW9kaWZ5KCdleHRlbmQn
LCAnZm9yd2FyZCcsICd3b3JkJyk7CisgICAgd2luZG93LmdldFNlbGVjdGlvbigpLm1vZGlmeSgn
ZXh0ZW5kJywgJ2ZvcndhcmQnLCAnd29yZCcpOworICAgIGNvcHlDb21tYW5kKCk7CisgICAgd2lu
ZG93LmdldFNlbGVjdGlvbigpLm1vZGlmeSgnbW92ZScsICdmb3J3YXJkJywgJ2NoYXJhY3Rlcicp
OworICAgIHBhc3RlQ29tbWFuZCgpOworfQorCitmdW5jdGlvbiBlZGl0aW5nVGVzdCgpIHsKKyAg
ICBNYXJrdXAuZHVtcCgndGVzdCcsICdNYXJrdXAgYmVmb3JlJyk7CisgICAgcGVyZm9ybUNvcHlQ
YXN0ZSgidGVzdCIpOworICAgIHBlcmZvcm1Db3B5UGFzdGUoInRlc3QyIik7CisgICAgcGVyZm9y
bUNvcHlQYXN0ZSgidGVzdDMiKTsKKyAgICBNYXJrdXAuZHVtcCgndGVzdCcsICdNYXJrdXAgYWZ0
ZXInKTsKK30KKzwvc2NyaXB0PgorCis8dGl0bGU+RWRpdGluZyBUZXN0PC90aXRsZT4gCis8L2hl
YWQ+IAorPGJvZHk+Cis8ZGl2IGNsYXNzPSJleHBsYW5hdGlvbiI+Cis8ZGl2IGNsYXNzPSJzY2Vu
YXJpbyI+CitUZXN0czogCis8YnI+CitGaXggZm9yIHRoaXMgYnVnOiAKKzxhIGhyZWY9Imh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01ODkyNSI+Jmx0O2h0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01ODkyNSZndDs8L2E+IFJFR1JFU1NJT04ocjU1
NzYyKTogSGlnaGxpZ2h0IGNvbG9yIGNhbid0IGJlIGNvcGllZCBpbiBnbWFpbC4KKzwvZGl2Pgor
PGRpdiBjbGFzcz0iZXhwZWN0ZWQtcmVzdWx0cyI+CitFeHBlY3RlZCBSZXN1bHRzOgorPGJyPgor
VGhlIHBhc3RlZCB0ZXh0IHNob3VsZCBoYXZlIHRoZSBzYW1lIGJhY2tncm91bmQgY29sb3IgYXMg
dGhlIGNvcGllZCB0ZXh0LgorPC9kaXY+Cis8L2Rpdj4KKzxkaXYgY29udGVudGVkaXRhYmxlIGlk
PSJ0ZXN0IiBjbGFzcz0iZWRpdGluZyI+Cis8c3BhbiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjog
cmdiKDI1NSwgMCwgMCk7Ij5SZWQgYmFja2dyb3VuZDwvc3Bhbj4KKzxkaXYgaWQ9InRlc3QyIj48
c3BhbiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47Ij5HcmVlbiBiYWNrZ3JvdW5kPC9z
cGFuPjwvZGl2PgorPGRpdiBpZD0idGVzdDMiPjxzcGFuIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9y
OiByZ2IoMjU1LCAwLCAwLCAwKTsiPlRyYW5zcGFyZW50IGJhY2tncm91bmQ8L3NwYW4+PC9kaXY+
Cis8L2Rpdj4KKworPHNjcmlwdD4KK3J1bkVkaXRpbmdUZXN0KCk7Cis8L3NjcmlwdD4KKworPC9i
b2R5PgorPC9odG1sPgo=
</data>
<flag name="review"
          id="82994"
          type_id="1"
          status="-"
          setter="rniwa"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>90268</attachid>
            <date>2011-04-19 15:45:49 -0700</date>
            <delta_ts>2011-04-19 16:22:53 -0700</delta_ts>
            <desc>Patch2</desc>
            <filename>copybackground.txt</filename>
            <type>text/plain</type>
            <size>11775</size>
            <attacher name="Enrica Casucci">enrica</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg0MzAzKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjggQEAKKzIwMTEtMDQtMTkgIEVucmljYSBD
YXN1Y2NpICA8ZW5yaWNhQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSRUdSRVNTSU9OKHI1NTc2Mik6IEhpZ2hsaWdodCBjb2xvciBj
YW4ndCBiZSBjb3BpZWQgaW4gZ21haWwuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD01ODkyNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vOTI1MzA1Nz4K
KworICAgICAgICBUZXN0OiBlZGl0aW5nL3Bhc3RlYm9hcmQvY29weS10ZXh0LXdpdGgtYmFja2dy
b3VuZGNvbG9yLmh0bWwKKworICAgICAgICBUaGUgY2hhbmdlcyBvZiByNTU3NjIgdW5jb3ZlcmVk
IHRoZSB1bmRlcmx5aW5nIGlzc3VlIGhlcmUuIFRoZSBtYXJrdXAgZnJhZ21lbnQKKyAgICAgICAg
cGxhY2VkIGluIHRoZSBwYXN0ZWJvYXJkIGRvZXMgbm90IGNvbnRhaW4gdGhlIGJhY2tncm91bmQg
Y29sb3Igc3R5bGUuCisgICAgICAgIFRoaXMgb2NjdXJzIG9ubHkgaWYgdGhlIHNlbGVjdGlvbiBp
cyBsaW1pdGVkIHRvIGEgc2luZ2xlIHRleHQgbm9kZSwgd2hlcmVhcyBpZiB0aGUKKyAgICAgICAg
c2VsZWN0aW9uIHNwYW5zIGFjcm9zcyBtdWx0aXBsZSBub2RlcywgdGhlIHN0eWxlIGlzIHByZXNl
cnZlZCBjb3JyZWN0bHkuCisgICAgICAgIFRoZSBmaXggY29uc2lzdHMgaW4gY2hhbmdpbmcgdGhl
IGxvZ2ljIHRoYXQgZGVjaWRlcyB3aGV0aGVyIHdlIHNob3VsZCBpbmNsdWRlIHRoZSB3cmFwcGlu
ZworICAgICAgICBub2RlIGluIHRoZSBtYXJrdXAuIFRoYXQgbG9naWMgaXMgYmFzZWQgb24gdGhl
IGNvZGUgaW4gaGlnaGVzdEFuY2VzdG9yVG9XcmFwTWFya3VwIHdoaWNoIHJlbGllcworICAgICAg
ICBvbiBpc0VsZW1lbnRQcmVzZW50YXRpb25hbCB0byBjaG9vc2UgY2FuZGlkYXRlcyB0byBiZSB0
aGUgd3JhcHBpbmcgbm9kZS4KKyAgICAgICAgSSd2ZSBleHRlbmRlZCBpdCB0byBhY2NlcHQgbm9k
ZXMgdGhhdCBoYXZlIG5vbiBmdWxseSB0cmFuc3BhcmVudCBiYWNrZ3JvdW5kIGNvbG9ycy4KKwor
ICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6
aGFzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kQ29sb3IpOiBOb3cgaXMgYSBzdGF0aWMgbWV0aG9kIG9m
IHRoZSBjbGFzcy4KKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5oOgorICAgICAgICAqIGVkaXRp
bmcvbWFya3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzRWxlbWVudFByZXNlbnRhdGlvbmFs
KTogTW9kaWZpZWQgdG8gdXNlIGhhc1RyYW5zcGFyZW50QmFja2dyb3VuZENvbG9yLgorCiAyMDEx
LTA0LTE5ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgQmV0aCBEYWtpbi4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAJKHJldmlz
aW9uIDg0Mjk1KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC05MTYsNyArOTE2LDcgQEAgVHJpU3RhdGUgRWRpdG9yOjpzZWxlY3Rpb25IYXNT
dHlsZShpbnQgcAogICAgIHJldHVybiBzdGF0ZTsKIH0KIAotc3RhdGljIGJvb2wgaGFzVHJhbnNw
YXJlbnRCYWNrZ3JvdW5kQ29sb3IoQ1NTU3R5bGVEZWNsYXJhdGlvbiogc3R5bGUpCitib29sIEVk
aXRvcjo6aGFzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kQ29sb3IoQ1NTU3R5bGVEZWNsYXJhdGlvbiog
c3R5bGUpCiB7CiAgICAgUmVmUHRyPENTU1ZhbHVlPiBjc3NWYWx1ZSA9IHN0eWxlLT5nZXRQcm9w
ZXJ0eUNTU1ZhbHVlKENTU1Byb3BlcnR5QmFja2dyb3VuZENvbG9yKTsKICAgICBpZiAoIWNzc1Zh
bHVlKQpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCShyZXZpc2lvbiA4NDI5NSkKKysrIFNv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTE5OCw2ICsx
OTgsNyBAQCBwdWJsaWM6CiAgICAgQ29tbWFuZCBjb21tYW5kKGNvbnN0IFN0cmluZyYgY29tbWFu
ZE5hbWUpOyAvLyBDb21tYW5kIHNvdXJjZSBpcyBDb21tYW5kRnJvbU1lbnVPcktleUJpbmRpbmcu
CiAgICAgQ29tbWFuZCBjb21tYW5kKGNvbnN0IFN0cmluZyYgY29tbWFuZE5hbWUsIEVkaXRvckNv
bW1hbmRTb3VyY2UpOwogICAgIHN0YXRpYyBib29sIGNvbW1hbmRJc1N1cHBvcnRlZEZyb21NZW51
T3JLZXlCaW5kaW5nKGNvbnN0IFN0cmluZyYgY29tbWFuZE5hbWUpOyAvLyBXb3JrcyB3aXRob3V0
IGEgZnJhbWUuCisgICAgc3RhdGljIGJvb2wgaGFzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kQ29sb3Io
Q1NTU3R5bGVEZWNsYXJhdGlvbiopOwogCiAgICAgYm9vbCBpbnNlcnRUZXh0KGNvbnN0IFN0cmlu
ZyYsIEV2ZW50KiB0cmlnZ2VyaW5nRXZlbnQpOwogICAgIGJvb2wgaW5zZXJ0VGV4dEZvckNvbmZp
cm1lZENvbXBvc2l0aW9uKGNvbnN0IFN0cmluZyYgdGV4dCk7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL21hcmt1cC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9tYXJrdXAuY3BwCShyZXZpc2lvbiA4NDI5NSkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
bWFya3VwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDY1LDcgKzQ2NSw3IEBAIHN0YXRpYyBib29s
IGlzRWxlbWVudFByZXNlbnRhdGlvbmFsKGNvbnMKICAgICBSZWZQdHI8Q1NTTXV0YWJsZVN0eWxl
RGVjbGFyYXRpb24+IHN0eWxlID0gc3R5bGVGcm9tTWF0Y2hlZFJ1bGVzQW5kSW5saW5lRGVjbChu
b2RlKTsKICAgICBpZiAoIXN0eWxlKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJu
ICFwcm9wZXJ0eU1pc3NpbmdPckVxdWFsVG9Ob25lKHN0eWxlLmdldCgpLCBDU1NQcm9wZXJ0eVRl
eHREZWNvcmF0aW9uKTsKKyAgICByZXR1cm4gIXByb3BlcnR5TWlzc2luZ09yRXF1YWxUb05vbmUo
c3R5bGUuZ2V0KCksIENTU1Byb3BlcnR5VGV4dERlY29yYXRpb24pIHx8ICFFZGl0b3I6Omhhc1Ry
YW5zcGFyZW50QmFja2dyb3VuZENvbG9yKHN0eWxlLmdldCgpKTsKIH0KIAogc3RhdGljIGJvb2wg
c2hvdWxkSW5jbHVkZVdyYXBwZXJGb3JGdWxseVNlbGVjdGVkUm9vdChOb2RlKiBmdWxseVNlbGVj
dGVkUm9vdCwgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qIHN0eWxlKQpJbmRleDogTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2
aXNpb24gODQzMDMpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwxNiBAQAorMjAxMS0wNC0xOSAgRW5yaWNhIENhc3VjY2kgIDxlbnJpY2FAYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJF
R1JFU1NJT04ocjU1NzYyKTogSGlnaGxpZ2h0IGNvbG9yIGNhbid0IGJlIGNvcGllZCBpbiBnbWFp
bC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU4OTI1
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS85MjUzMDU3PgorCisgICAgICAgIE5ldyB0ZXN0cy4K
KyAgICAgICAgCisgICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL2NvcHktdGV4dC13aXRoLWJh
Y2tncm91bmRjb2xvci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvcGFz
dGVib2FyZC9jb3B5LXRleHQtd2l0aC1iYWNrZ3JvdW5kY29sb3IuaHRtbDogQWRkZWQuCisKIDIw
MTEtMDQtMTkgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KIAogICAgICAgICBBZGQg
Y2hlY2tzdW1zIHRvIHBuZyBmaWxlcyBpbiBwbGF0Zm9ybS9ndGsuCkluZGV4OiBMYXlvdXRUZXN0
cy9lZGl0aW5nL3Bhc3RlYm9hcmQvY29weS10ZXh0LXdpdGgtYmFja2dyb3VuZGNvbG9yLWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvY29w
eS10ZXh0LXdpdGgtYmFja2dyb3VuZGNvbG9yLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9jb3B5LXRleHQtd2l0aC1iYWNrZ3JvdW5k
Y29sb3ItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDc5IEBACitFRElUSU5H
IERFTEVHQVRFOiBzaG91bGRCZWdpbkVkaXRpbmdJbkRPTVJhbmdlOnJhbmdlIGZyb20gMCBvZiBE
SVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA3IG9mIERJViA+IEJPRFkgPiBIVE1MID4g
I2RvY3VtZW50CitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQmVnaW5FZGl0aW5nOldlYlZp
ZXdEaWRCZWdpbkVkaXRpbmdOb3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdE
aWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgor
RURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hh
bmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hh
bmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJ
TkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNl
bGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogc2hvdWxkSW5zZXJ0Tm9kZToj
ZG9jdW1lbnQtZnJhZ21lbnQgcmVwbGFjaW5nRE9NUmFuZ2U6cmFuZ2UgZnJvbSAxNCBvZiAjdGV4
dCA+IFNQQU4gPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAxNCBvZiAjdGV4dCA+
IFNQQU4gPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBnaXZlbkFjdGlvbjpXZWJWaWV3
SW5zZXJ0QWN0aW9uUGFzdGVkCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3Rl
ZERPTVJhbmdlOnJhbmdlIGZyb20gMTQgb2YgI3RleHQgPiBTUEFOID4gRElWID4gQk9EWSA+IEhU
TUwgPiAjZG9jdW1lbnQgdG8gMTQgb2YgI3RleHQgPiBTUEFOID4gRElWID4gQk9EWSA+IEhUTUwg
PiAjZG9jdW1lbnQgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDE0IG9mICN0ZXh0ID4gU1BBTiA+IERJ
ViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDE0IG9mICN0ZXh0ID4gU1BBTiA+IERJViA+
IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3du
c3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlk
Q2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VE
SVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNh
dGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3
RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3
RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24K
K0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENo
YW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENo
YW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElU
SU5HIERFTEVHQVRFOiBzaG91bGRJbnNlcnROb2RlOiNkb2N1bWVudC1mcmFnbWVudCByZXBsYWNp
bmdET01SYW5nZTpyYW5nZSBmcm9tIDE2IG9mICN0ZXh0ID4gU1BBTiA+IERJViA+IERJViA+IEJP
RFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDE2IG9mICN0ZXh0ID4gU1BBTiA+IERJViA+IERJViA+
IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGdpdmVuQWN0aW9uOldlYlZpZXdJbnNlcnRBY3Rpb25Q
YXN0ZWQKK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFu
Z2UgZnJvbSAxNiBvZiAjdGV4dCA+IFNQQU4gPiBESVYgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNk
b2N1bWVudCB0byAxNiBvZiAjdGV4dCA+IFNQQU4gPiBESVYgPiBESVYgPiBCT0RZID4gSFRNTCA+
ICNkb2N1bWVudCB0b0RPTVJhbmdlOnJhbmdlIGZyb20gMTYgb2YgI3RleHQgPiBTUEFOID4gRElW
ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMTYgb2YgI3RleHQgPiBTUEFOID4g
RElWID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25B
ZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6
IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlm
aWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hh
bmdlTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0
aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdB
VEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5v
dGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpX
ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3
ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmlj
YXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZEluc2VydE5vZGU6I2RvY3VtZW50LWZyYWdt
ZW50IHJlcGxhY2luZ0RPTVJhbmdlOnJhbmdlIGZyb20gMjIgb2YgI3RleHQgPiBTUEFOID4gRElW
ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMjIgb2YgI3RleHQgPiBTUEFOID4g
RElWID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgZ2l2ZW5BY3Rpb246V2ViVmlld0lu
c2VydEFjdGlvblBhc3RlZAorRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRE
T01SYW5nZTpyYW5nZSBmcm9tIDIyIG9mICN0ZXh0ID4gU1BBTiA+IERJViA+IERJViA+IEJPRFkg
PiBIVE1MID4gI2RvY3VtZW50IHRvIDIyIG9mICN0ZXh0ID4gU1BBTiA+IERJViA+IERJViA+IEJP
RFkgPiBIVE1MID4gI2RvY3VtZW50IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAyMiBvZiAjdGV4dCA+
IERJViA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDIyIG9mICN0ZXh0ID4gRElW
ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZp
bml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHdl
YlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNh
dGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdl
Tm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9u
OldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6
IHdlYlZpZXdEaWRFbmRFZGl0aW5nOldlYlZpZXdEaWRFbmRFZGl0aW5nTm90aWZpY2F0aW9uCisK
K01hcmt1cCBiZWZvcmU6Cit8ICIKKyIKK3wgPHNwYW4+Cit8ICAgc3R5bGU9ImJhY2tncm91bmQt
Y29sb3I6IHJnYigyNTUsIDAsIDApOyIKK3wgICAiPCNzZWxlY3Rpb24tY2FyZXQ+UmVkIGJhY2tn
cm91bmQiCit8ICIKKyIKK3wgPGRpdj4KK3wgICBpZD0idGVzdDIiCit8ICAgPHNwYW4+Cit8ICAg
ICBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47IgorfCAgICAgIkdyZWVuIGJhY2tncm91
bmQiCit8ICIKKyIKK3wgPGRpdj4KK3wgICBpZD0idGVzdDMiCit8ICAgPHNwYW4+Cit8ICAgICBz
dHlsZT0iYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMCwgMCwgMCk7IgorfCAgICAgIlRyYW5z
cGFyZW50IGJhY2tncm91bmQiCit8ICIKKyIKKworTWFya3VwIGFmdGVyOgorfCAiCisiCit8IDxz
cGFuPgorfCAgIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAwLCAwKTsiCit8ICAg
IlJlZCBiYWNrZ3JvdW5kIgorfCA8c3Bhbj4KK3wgICBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjog
cmdiKDI1NSwgMCwgMCk7ICIKK3wgICAiUmVkIGJhY2tncm91bmQiCit8IDxkaXY+Cit8ICAgaWQ9
InRlc3QyIgorfCAgIDxzcGFuPgorfCAgICAgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IGdyZWVu
OyIKK3wgICAgICJHcmVlbiBiYWNrZ3JvdW5kIgorfCAgIDxzcGFuPgorfCAgICAgc3R5bGU9ImJh
Y2tncm91bmQtY29sb3I6IGdyZWVuOyAiCit8ICAgICAiR3JlZW4gYmFja2dyb3VuZCIKK3wgIgor
IgorfCA8ZGl2PgorfCAgIGlkPSJ0ZXN0MyIKK3wgICA8c3Bhbj4KK3wgICAgIHN0eWxlPSJiYWNr
Z3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAwLCAwLCAwKTsiCit8ICAgICAiVHJhbnNwYXJlbnQgYmFj
a2dyb3VuZCIKK3wgICAiVHJhbnNwYXJlbnQgYmFja2dyb3VuZDwjc2VsZWN0aW9uLWNhcmV0PiIK
K3wgIgorIgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2NvcHktdGV4dC13
aXRoLWJhY2tncm91bmRjb2xvci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRp
bmcvcGFzdGVib2FyZC9jb3B5LXRleHQtd2l0aC1iYWNrZ3JvdW5kY29sb3IuaHRtbAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9jb3B5LXRleHQtd2l0aC1i
YWNrZ3JvdW5kY29sb3IuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3NCBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4gCis8aGVhZD4KKworPHN0eWxlPgorLmVkaXRpbmcgeyAKKyAgICBi
b3JkZXI6IDJweCBzb2xpZCByZWQ7IAorICAgIGZvbnQtc2l6ZTogMjRweDsgCit9CisuZXhwbGFu
YXRpb24geyAKKyAgICBib3JkZXI6IDJweCBzb2xpZCBibHVlOyAKKyAgICBwYWRkaW5nOiAxMnB4
OyAKKyAgICBmb250LXNpemU6IDI0cHg7IAorICAgIG1hcmdpbi1ib3R0b206IDI0cHg7Cit9Cisu
c2NlbmFyaW8geyBtYXJnaW4tYm90dG9tOiAxNnB4O30KKy5zY2VuYXJpbzpmaXJzdC1saW5lIHsg
Zm9udC13ZWlnaHQ6IGJvbGQ7IG1hcmdpbi1ib3R0b206IDE2cHg7fQorLmV4cGVjdGVkLXJlc3Vs
dHM6Zmlyc3QtbGluZSB7IGZvbnQtd2VpZ2h0OiBib2xkIH0KKzwvc3R5bGU+Cis8c2NyaXB0IHNy
Yz0uLi9lZGl0aW5nLmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9k
dW1wLWFzLW1hcmt1cC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQorICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
CisKK2Z1bmN0aW9uIHBlcmZvcm1Db3B5UGFzdGUoZWxlbWVudE5hbWUpCit7CisgICAgdmFyIGVs
ZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50TmFtZSk7CisgICAgd2luZG93
LmdldFNlbGVjdGlvbigpLnNldFBvc2l0aW9uKGVsZW1lbnQuZmlyc3RDaGlsZCwgMCk7CisgICAg
d2luZG93LmdldFNlbGVjdGlvbigpLm1vZGlmeSgnZXh0ZW5kJywgJ2ZvcndhcmQnLCAnd29yZCcp
OworICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5tb2RpZnkoJ2V4dGVuZCcsICdmb3J3YXJkJywg
J3dvcmQnKTsKKyAgICBjb3B5Q29tbWFuZCgpOworICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5t
b2RpZnkoJ21vdmUnLCAnZm9yd2FyZCcsICdjaGFyYWN0ZXInKTsKKyAgICBwYXN0ZUNvbW1hbmQo
KTsKK30KKworZnVuY3Rpb24gZWRpdGluZ1Rlc3QoKSB7CisgICAgTWFya3VwLmR1bXAoJ3Rlc3Qn
LCAnTWFya3VwIGJlZm9yZScpOworICAgIHBlcmZvcm1Db3B5UGFzdGUoInRlc3QiKTsKKyAgICBw
ZXJmb3JtQ29weVBhc3RlKCJ0ZXN0MiIpOworICAgIHBlcmZvcm1Db3B5UGFzdGUoInRlc3QzIik7
CisgICAgTWFya3VwLmR1bXAoJ3Rlc3QnLCAnTWFya3VwIGFmdGVyJyk7Cit9Cis8L3NjcmlwdD4K
KworPHRpdGxlPkVkaXRpbmcgVGVzdDwvdGl0bGU+IAorPC9oZWFkPiAKKzxib2R5PgorPGRpdiBj
bGFzcz0iZXhwbGFuYXRpb24iPgorPGRpdiBjbGFzcz0ic2NlbmFyaW8iPgorVGVzdHM6IAorPGJy
PgorRml4IGZvciB0aGlzIGJ1ZzogCis8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NTg5MjUiPiZsdDtodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NTg5MjUmZ3Q7PC9hPiBSRUdSRVNTSU9OKHI1NTc2Mik6IEhpZ2hsaWdodCBjb2xv
ciBjYW4ndCBiZSBjb3BpZWQgaW4gZ21haWwuCis8L2Rpdj4KKzxkaXYgY2xhc3M9ImV4cGVjdGVk
LXJlc3VsdHMiPgorRXhwZWN0ZWQgUmVzdWx0czoKKzxicj4KK1RoZSBwYXN0ZWQgdGV4dCBzaG91
bGQgaGF2ZSB0aGUgc2FtZSBiYWNrZ3JvdW5kIGNvbG9yIGFzIHRoZSBjb3BpZWQgdGV4dC4gVG8g
cnVuIHRoZSB0ZXN0IG1hbnVhbGx5LCBzZWxlY3QgZWFjaCBvZiB0aGUgdHdvIHdvcmRzIHdpdGgg
dGhlIHNhbWUgYmFja2dyb3VuZCBjb2xvciwgY29weSwgbW92ZSB0aGUgc2VsZWN0aW9uIGF0IHRo
ZSBlbmQgb2YgdGhlIHNlY29uZCB3b3JkIGFuZCBwYXN0ZS4KKzwvZGl2PgorPC9kaXY+Cis8ZGl2
IGNvbnRlbnRlZGl0YWJsZSBpZD0idGVzdCIgY2xhc3M9ImVkaXRpbmciPgorPHNwYW4gc3R5bGU9
ImJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDAsIDApOyI+UmVkIGJhY2tncm91bmQ8L3NwYW4+
Cis8ZGl2IGlkPSJ0ZXN0MiI+PHNwYW4gc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IGdyZWVuOyI+
R3JlZW4gYmFja2dyb3VuZDwvc3Bhbj48L2Rpdj4KKzxkaXYgaWQ9InRlc3QzIj48c3BhbiBzdHls
ZT0iYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMCwgMCwgMCk7Ij5UcmFuc3BhcmVudCBiYWNr
Z3JvdW5kPC9zcGFuPjwvZGl2PgorPC9kaXY+CisKKzxzY3JpcHQ+CitydW5FZGl0aW5nVGVzdCgp
OworPC9zY3JpcHQ+CisKKzwvYm9keT4KKzwvaHRtbD4K
</data>
<flag name="review"
          id="83001"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
      

    </bug>

</bugzilla>