<?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>95914</bug_id>
          
          <creation_ts>2012-09-05 17:11:03 -0700</creation_ts>
          <short_desc>[CSS Shaders] u_textureSize uniform should be set to the size of the texture.</short_desc>
          <delta_ts>2012-09-16 08:15:47 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>71392</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexandru Chiculita">achicu</reporter>
          <assigned_to name="Michelangelo De Simone">michelangelo</assigned_to>
          <cc>achicu</cc>
    
    <cc>dino</cc>
    
    <cc>michelangelo</cc>
    
    <cc>mvujovic</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>712690</commentid>
    <comment_count>0</comment_count>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2012-09-05 17:11:03 -0700</bug_when>
    <thetext>There are some uniforms that are specified in the spec, but are not set in the implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718803</commentid>
    <comment_count>1</comment_count>
      <attachid>163717</attachid>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2012-09-12 15:24:35 -0700</bug_when>
    <thetext>Created attachment 163717
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718839</commentid>
    <comment_count>2</comment_count>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2012-09-12 15:57:29 -0700</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=163717&amp;action=review

Looks good!

&gt; Source/WebCore/platform/graphics/filters/FECustomFilter.cpp:357
&gt; +        m_context-&gt;uniform2f(m_compiledProgram-&gt;tileSizeLocation(), 1.0 / m_meshColumns, 1.0 / m_meshRows);

I know that m_meshColumns &gt; 0 and m_meshRows &gt; 0 (that check is in CSSParser.cpp), but maybe we could assert about it here.

&gt; LayoutTests/css3/filters/custom/custom-filter-u-mesh-box.html:32
&gt; +            As of now u_meshBox always returns (-0.5, -0.5, 1, 1); this shall change

Do you want to reference to that bug?

&gt; LayoutTests/css3/filters/resources/u-mesh-box.fs:1
&gt; +precision mediump float;

Add a comment at the top saying what this shader does.

&gt; LayoutTests/css3/filters/resources/u-mesh-box.fs:7
&gt; +    return a &gt; b - epsilon &amp;&amp; a &lt; b + epsilon;

Add some ( ) to make it easier to read.

The same for the other shaders.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718843</commentid>
    <comment_count>3</comment_count>
      <attachid>163717</attachid>
    <who name="Max Vujovic">mvujovic</who>
    <bug_when>2012-09-12 16:02:31 -0700</bug_when>
    <thetext>Comment on attachment 163717
Patch

Nice! I had one comment in addition to Alex&apos;s:

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

&gt; LayoutTests/css3/filters/resources/u-mesh-box.fs:12
&gt; +    gl_FragColor = (areFloatsEqual(u_meshBox.x, -0.5) &amp;&amp; areFloatsEqual(u_meshBox.y, -0.5) &amp;&amp; areFloatsEqual(u_meshBox.z, 1.0) &amp;&amp; areFloatsEqual(u_meshBox.w, 1.0)) ? vec4(0.0, 1.0, 0.0, 1.0) : vec4(1.0, 0.0, 0.0, 1.0);

Adding another function areVectorsEqual(vec4 a, vec4 b) that calls areFloatEqual could be more readable, like so:

gl_FragColor = areVectorsEqual(u_meshBox, vec4(-0.5, -0.5, 1.0, 1.0)) ? vec4(0.0, 1.0, 0.0, 1.0) : vec4(1.0, 0.0, 0.0, 1.0);

&gt; LayoutTests/css3/filters/resources/u-mesh-size.fs:12
&gt; +    gl_FragColor = (areFloatsEqual(u_meshSize.x, 20.0) &amp;&amp; areFloatsEqual(u_meshSize.y, 10.0)) ? vec4(0.0, 1.0, 0.0, 1.0) : vec4(1.0, 0.0, 0.0, 1.0);

Ditto, but with vec2 instead of vec4.

&gt; LayoutTests/css3/filters/resources/u-texture-size.fs:12
&gt; +    gl_FragColor = (areFloatsEqual(u_textureSize.x, 100.0) &amp;&amp; areFloatsEqual(u_textureSize.y, 100.0)) ? vec4(0.0, 1.0, 0.0, 1.0) : vec4(1.0, 0.0, 0.0, 1.0);

Ditto.

&gt; LayoutTests/css3/filters/resources/u-tile-size.fs:12
&gt; +    gl_FragColor = (areFloatsEqual(u_tileSize.x, 0.05) &amp;&amp; areFloatsEqual(u_tileSize.y, 0.10)) ? vec4(0.0, 1.0, 0.0, 1.0) : vec4(1.0, 0.0, 0.0, 1.0);

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718872</commentid>
    <comment_count>4</comment_count>
      <attachid>163733</attachid>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2012-09-12 16:36:48 -0700</bug_when>
    <thetext>Created attachment 163733
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720972</commentid>
    <comment_count>5</comment_count>
      <attachid>163733</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2012-09-14 11:21:40 -0700</bug_when>
    <thetext>Comment on attachment 163733
Patch

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

&gt; Source/WebCore/platform/graphics/filters/FECustomFilter.cpp:357
&gt; +    if (m_compiledProgram-&gt;meshSizeLocation() != -1)
&gt; +        m_context-&gt;uniform2f(m_compiledProgram-&gt;meshSizeLocation(), m_meshColumns, m_meshRows);
&gt; +
&gt; +    ASSERT(m_meshColumns);
&gt; +    ASSERT(m_meshRows);

Might as well put the ASSERT before this first binding.

&gt; Source/WebCore/platform/graphics/filters/FECustomFilter.cpp:365
&gt; +    if (m_compiledProgram-&gt;meshBoxLocation() != -1)
&gt; +        // FIXME: This will change when filter margins will be implemented,
&gt; +        // see https://bugs.webkit.org/show_bug.cgi?id=71400
&gt; +        m_context-&gt;uniform4f(m_compiledProgram-&gt;meshBoxLocation(), -0.5, -0.5, 1.0, 1.0);

Please enclose in {} if you&apos;re putting comments before the statement, or put the comment before the if.

&gt; LayoutTests/css3/filters/resources/u-mesh-box.fs:1
&gt; +// Test whether u_meshBox is correctly set; change fragment color to green if yes.

Could you rename these files (u-mesh-box.fs u-mesh-size, u-texture-size, u-tile-size) to reflect the parameters they expect? I think people often look through layout tests to find examples of code, and might interpret this to be such. In reality it is u-mesh-box-is-unit-square or something. Do you agree?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721192</commentid>
    <comment_count>6</comment_count>
      <attachid>164237</attachid>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2012-09-14 15:29:08 -0700</bug_when>
    <thetext>Created attachment 164237
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721226</commentid>
    <comment_count>7</comment_count>
      <attachid>164237</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-14 16:11:17 -0700</bug_when>
    <thetext>Comment on attachment 164237
Patch for landing

Clearing flags on attachment: 164237

Committed r128666: &lt;http://trac.webkit.org/changeset/128666&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721227</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-14 16:11:20 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721541</commentid>
    <comment_count>9</comment_count>
      <attachid>164237</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-09-15 21:51:01 -0700</bug_when>
    <thetext>Comment on attachment 164237
Patch for landing

I wonder why you did rename u-mesh-box-is-unit-square.fs but not LayoutTests/css3/filters/resources/u-tile-size.fs and the other files as suggested. As far as I understand your code, you normalize tileSizeLocation. Shouldn&apos;t it be renamed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721605</commentid>
    <comment_count>10</comment_count>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2012-09-16 08:15:47 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; I wonder why you did rename u-mesh-box-is-unit-square.fs but not LayoutTests/css3/filters/resources/u-tile-size.fs and the other files as suggested. As far as I understand your code, you normalize tileSizeLocation. Shouldn&apos;t it be renamed?

Dean and I agreed on IRC that u-tile-size, u-texture-size and u-mesh-size were self explanatory enough to be left as they are.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163717</attachid>
            <date>2012-09-12 15:24:35 -0700</date>
            <delta_ts>2012-09-12 16:36:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95914-20120912152409.patch</filename>
            <type>text/plain</type>
            <size>16835</size>
            <attacher name="Michelangelo De Simone">michelangelo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4MzY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjE0MWIxMTQzMGExODdk
YjMzMTY3Yzg1MWU4NjgxMGE5NzgzNTAzYS4uYjA0MWIxMjlkMjMyZTFjMDc4MjM0ZGJjZmY3ZmMy
YjIwZDJjNzNjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTA5LTEyICBNaWNo
ZWxhbmdlbG8gRGUgU2ltb25lICA8bWljaGVsYW5nZWxvQHdlYmtpdC5vcmc+CisKKyAgICAgICAg
W0NTUyBTaGFkZXJzXSB1X3RleHR1cmVTaXplIHVuaWZvcm0gc2hvdWxkIGJlIHNldCB0byB0aGUg
c2l6ZSBvZiB0aGUgdGV4dHVyZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTk1OTE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGhpcyBhZGRzIHN1cHBvcnQgZm9yIHRoZSBmb2xsb3dpbmcgc2hhZGVyIHVu
aWZvcm0gdmFyaWFibGVzOgorCisgICAgICAgICAgICB1bmlmb3JtIHZlYzIgdV90ZXh0dXJlU2l6
ZQorICAgICAgICAgICAgdW5pZm9ybSB2ZWM0IHVfbWVzaEJveAorICAgICAgICAgICAgdW5pZm9y
bSB2ZWMyIHVfdGlsZVNpemUKKyAgICAgICAgICAgIHVuaWZvcm0gdmVjMiB1X21lc2hTaXplCisK
KyAgICAgICAgVGhlIHJlbGV2YW50IHNwZWMgc2VjdGlvbiBpczoKKyAgICAgICAgaHR0cDovL2R2
Y3MudzMub3JnL2hnL0ZYVEYvcmF3LWZpbGUvdGlwL2ZpbHRlcnMvaW5kZXguaHRtbCNzaGFkZXIt
dW5pZm9ybS12YXJpYWJsZXMKKworICAgICAgICBUZXN0czogY3NzMy9maWx0ZXJzL2N1c3RvbS9j
dXN0b20tZmlsdGVyLXUtbWVzaC1ib3guaHRtbAorICAgICAgICAgICAgICAgY3NzMy9maWx0ZXJz
L2N1c3RvbS9jdXN0b20tZmlsdGVyLXUtbWVzaC1zaXplLmh0bWwKKyAgICAgICAgICAgICAgIGNz
czMvZmlsdGVycy9jdXN0b20vY3VzdG9tLWZpbHRlci11LXRleHR1cmUtc2l6ZS5odG1sCisgICAg
ICAgICAgICAgICBjc3MzL2ZpbHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItdS10aWxlLXNpemUu
aHRtbAorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUN1c3RvbUZpbHRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRUN1c3RvbUZpbHRlcjo6YmluZFByb2dyYW1BbmRC
dWZmZXJzKToKKwogMjAxMi0wOS0xMiAgTWljaGFlbCBTYWJvZmYgIDxtc2Fib2ZmQGFwcGxlLmNv
bT4KIAogICAgICAgICBFbGVtZW50OjpjbGFzc0F0dHJpYnV0ZUNoYW5nZWQgc2hvdWxkIHVzZSBj
aGFyYWN0ZXJzOC8xNiB0byBmaW5kIGZpcnN0IG5vbi13aGl0ZXNwYWNlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ3VzdG9tRmlsdGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDdXN0b21GaWx0
ZXIuY3BwCmluZGV4IGZkMTI1MDYxZGJjYWE5YjhmOWYyN2IzZGM3YzU3ZTBiZDE5ZTg5ZWIuLmY3
MGUzMTgwNTY5Y2IxNTUwZDZlNDM3OWI2OGU0ZmIzYzFjOWM5Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDdXN0b21GaWx0ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDdXN0b21GaWx0
ZXIuY3BwCkBAIC0zNDksNiArMzQ5LDE5IEBAIHZvaWQgRkVDdXN0b21GaWx0ZXI6OmJpbmRQcm9n
cmFtQW5kQnVmZmVycyhVaW50OENsYW1wZWRBcnJheSogc3JjUGl4ZWxBcnJheSkKICAgICAgICAg
cHJvamVjdGlvbk1hdHJpeC50b0NvbHVtbk1ham9yRmxvYXRBcnJheShnbFByb2plY3Rpb25NYXRy
aXgpOwogICAgICAgICBtX2NvbnRleHQtPnVuaWZvcm1NYXRyaXg0ZnYobV9jb21waWxlZFByb2dy
YW0tPnByb2plY3Rpb25NYXRyaXhMb2NhdGlvbigpLCAxLCBmYWxzZSwgJmdsUHJvamVjdGlvbk1h
dHJpeFswXSk7CiAgICAgfQorCisgICAgaWYgKG1fY29tcGlsZWRQcm9ncmFtLT5tZXNoU2l6ZUxv
Y2F0aW9uKCkgIT0gLTEpCisgICAgICAgIG1fY29udGV4dC0+dW5pZm9ybTJmKG1fY29tcGlsZWRQ
cm9ncmFtLT5tZXNoU2l6ZUxvY2F0aW9uKCksIG1fbWVzaENvbHVtbnMsIG1fbWVzaFJvd3MpOwor
CisgICAgaWYgKG1fY29tcGlsZWRQcm9ncmFtLT50aWxlU2l6ZUxvY2F0aW9uKCkgIT0gLTEpCisg
ICAgICAgIG1fY29udGV4dC0+dW5pZm9ybTJmKG1fY29tcGlsZWRQcm9ncmFtLT50aWxlU2l6ZUxv
Y2F0aW9uKCksIDEuMCAvIG1fbWVzaENvbHVtbnMsIDEuMCAvIG1fbWVzaFJvd3MpOworCisgICAg
aWYgKG1fY29tcGlsZWRQcm9ncmFtLT5tZXNoQm94TG9jYXRpb24oKSAhPSAtMSkKKyAgICAgICAg
Ly8gRklYTUU6IFRoaXMgd2lsbCBjaGFuZ2Ugd2hlbiBmaWx0ZXIgbWFyZ2lucyB3aWxsIGJlIGlt
cGxlbWVudGVkLgorICAgICAgICBtX2NvbnRleHQtPnVuaWZvcm00ZihtX2NvbXBpbGVkUHJvZ3Jh
bS0+bWVzaEJveExvY2F0aW9uKCksIC0wLjUsIC0wLjUsIDEuMCwgMS4wKTsKKworICAgIGlmICht
X2NvbXBpbGVkUHJvZ3JhbS0+c2FtcGxlclNpemVMb2NhdGlvbigpICE9IC0xKQorICAgICAgICBt
X2NvbnRleHQtPnVuaWZvcm0yZihtX2NvbXBpbGVkUHJvZ3JhbS0+c2FtcGxlclNpemVMb2NhdGlv
bigpLCBtX2NvbnRleHRTaXplLndpZHRoKCksIG1fY29udGV4dFNpemUuaGVpZ2h0KCkpOwogICAg
IAogICAgIG1fY29udGV4dC0+YmluZEJ1ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6QVJSQVlfQlVG
RkVSLCBtX21lc2gtPnZlcnRpY2VzQnVmZmVyT2JqZWN0KCkpOwogICAgIG1fY29udGV4dC0+Ymlu
ZEJ1ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6RUxFTUVOVF9BUlJBWV9CVUZGRVIsIG1fbWVzaC0+
ZWxlbWVudHNCdWZmZXJPYmplY3QoKSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTI3MDRmNTVjMjk1Njk4YzQ0YmJjYjdh
N2RkOGVlZWM0MzhhM2QwNS4uYzVmOTUxYjAwNDQxYjFhMWI0ODE2MzE2NzQyMmRiY2NjN2JlZWRi
YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTA5LTEyICBNaWNoZWxhbmdlbG8gRGUgU2lt
b25lICA8bWljaGVsYW5nZWxvQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW0NTUyBTaGFkZXJzXSB1
X3RleHR1cmVTaXplIHVuaWZvcm0gc2hvdWxkIGJlIHNldCB0byB0aGUgc2l6ZSBvZiB0aGUgdGV4
dHVyZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1
OTE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVz
dHMgZm9yIHRoZSBmb2xsb3dpbmcgdW5pZm9ybSB2YXJpYWJsZXM6CisgICAgICAgICAgICB1bmlm
b3JtIHZlYzIgdV90ZXh0dXJlU2l6ZQorICAgICAgICAgICAgdW5pZm9ybSB2ZWM0IHVfbWVzaEJv
eAorICAgICAgICAgICAgdW5pZm9ybSB2ZWMyIHVfdGlsZVNpemUKKyAgICAgICAgICAgIHVuaWZv
cm0gdmVjMiB1X21lc2hTaXplCisKKyAgICAgICAgUmVsZXZhbnQgc3BlYzoKKyAgICAgICAgaHR0
cDovL2R2Y3MudzMub3JnL2hnL0ZYVEYvcmF3LWZpbGUvdGlwL2ZpbHRlcnMvaW5kZXguaHRtbCNz
aGFkZXItdW5pZm9ybS12YXJpYWJsZXMKKworICAgICAgICAqIGNzczMvZmlsdGVycy9jdXN0b20v
Y3VzdG9tLWZpbHRlci11LW1lc2gtYm94LWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGNzczMvZmlsdGVycy9jdXN0b20vY3VzdG9tLWZpbHRlci11LW1lc2gtYm94Lmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGNzczMvZmlsdGVycy9jdXN0b20vY3VzdG9tLWZpbHRlci11LW1lc2gtc2l6
ZS1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2ZpbHRlcnMvY3VzdG9tL2N1
c3RvbS1maWx0ZXItdS1tZXNoLXNpemUuaHRtbDogQWRkZWQuCisgICAgICAgICogY3NzMy9maWx0
ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLXUtdGV4dHVyZS1zaXplLWV4cGVjdGVkLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGNzczMvZmlsdGVycy9jdXN0b20vY3VzdG9tLWZpbHRlci11LXRleHR1
cmUtc2l6ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2ZpbHRlcnMvY3VzdG9tL2N1c3Rv
bS1maWx0ZXItdS10aWxlLXNpemUtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogY3Nz
My9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLXUtdGlsZS1zaXplLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGNzczMvZmlsdGVycy9yZXNvdXJjZXMvdS1tZXNoLWJveC5mczogQWRkZWQuCisg
ICAgICAgICogY3NzMy9maWx0ZXJzL3Jlc291cmNlcy91LW1lc2gtc2l6ZS5mczogQWRkZWQuCisg
ICAgICAgICogY3NzMy9maWx0ZXJzL3Jlc291cmNlcy91LXRleHR1cmUtc2l6ZS5mczogQWRkZWQu
CisgICAgICAgICogY3NzMy9maWx0ZXJzL3Jlc291cmNlcy91LXRpbGUtc2l6ZS5mczogQWRkZWQu
CisKIDIwMTItMDktMTIgIFN0ZXBoYW5pZSBMZXdpcyAgPHNsZXdpc0BhcHBsZS5jb20+CiAKICAg
ICAgICAgZmFzdC9ldmVudHMvZGlzcGF0Y2gtbWVzc2FnZS1zdHJpbmctZGF0YS5odG1sIGZhaWxz
IG9uIG1hYyB3azIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20v
Y3VzdG9tLWZpbHRlci11LW1lc2gtYm94LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3Mz
L2ZpbHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItdS1tZXNoLWJveC1leHBlY3RlZC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjJhMGNkZjcwNWYxYjhjMmQwOTRkOTI5Y2JiMDkwODVkYzE0N2YwZjMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0
ZXItdS1tZXNoLWJveC1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhZG9jdHlwZSBo
dG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDx0aXRsZT5UZXN0IHVfbWVzaFNpemU8
L3RpdGxlPgorICAgICAgICA8c3R5bGU+CisgICAgICAgICAgICAjZmlsdGVydGVzdGJveCB7Cisg
ICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgICAgICAgICB3aWR0aDogMTAw
cHg7CisgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAsIDI1NSwgMCk7Cisg
ICAgICAgICAgICB9CisgICAgICAgIDwvc3R5bGU+CisgICAgPC9oZWFkPgorICAgIDxib2R5IG9u
bG9hZD0icnVuVGVzdCgpIj4KKyAgICAgICAgPGRpdiBpZD0iZmlsdGVydGVzdGJveCI+PC9kaXY+
CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9maWx0
ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLXUtbWVzaC1ib3guaHRtbCBiL0xheW91dFRlc3RzL2Nz
czMvZmlsdGVycy9jdXN0b20vY3VzdG9tLWZpbHRlci11LW1lc2gtYm94Lmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZTYwMWFkMDgwNjE2YjRjMTQ5YTVhMjYwYzMxMTk3MDA4YzlhMDg2MgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20vY3VzdG9tLWZpbHRlci11LW1l
c2gtYm94Lmh0bWwKQEAgLTAsMCArMSwzOCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAg
ICA8aGVhZD4KKyAgICAgICAgPHRpdGxlPlRlc3QgdV9tZXNoQm94PC90aXRsZT4KKyAgICAgICAg
PHNjcmlwdD4KKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAg
ICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0Q1NTQ3Vz
dG9tRmlsdGVyRW5hYmxlZCIsICIxIik7CisgICAgICAgICAgICAgICAgd2luZG93LnRlc3RSdW5u
ZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRXZWJHTEVuYWJsZWQiLCAiMSIpOworICAgICAg
ICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgZnVuY3Rpb24gcnVuVGVzdCgpCisgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgLy8gV2UgbmVlZCB0byBydW4gdGhlIHRlc3RzIGFmdGVyIHRoZSBkb3dubG9h
ZGluZyBzdWNjZWVkZWQuCisgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQor
ICAgICAgICAgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAg
ICAgICAgICB9CisgICAgICAgIDwvc2NyaXB0PgorICAgICAgICA8c3R5bGU+CisgICAgICAgICAg
ICAjZmlsdGVydGVzdGJveCB7CisgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAg
ICAgICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xv
cjogcmVkOworICAgICAgICAgICAgICAgIC13ZWJraXQtZmlsdGVyOiBjdXN0b20obm9uZSB1cmwo
Jy4uL3Jlc291cmNlcy91LW1lc2gtYm94LmZzJykpOworICAgICAgICAgICAgfQorICAgICAgICA8
L3N0eWxlPgorICAgIDwvaGVhZD4KKyAgICA8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CisgICAg
ICAgIDwhLS0KKyAgICAgICAgICAgIEEgMTAweDEwMHB4IHJlZCBkaXYgaXMgY29sb3VyZWQgZ3Jl
ZW4gaWYgdV9tZXNoQm94IGlzIGNvcnJlY3RseSBzZXQgYW5kCisgICAgICAgICAgICBwYXNzZWQg
dG8gdGhlIHNoYWRlci4KKyAgICAgICAgICAgIEFzIG9mIG5vdyB1X21lc2hCb3ggYWx3YXlzIHJl
dHVybnMgKC0wLjUsIC0wLjUsIDEsIDEpOyB0aGlzIHNoYWxsIGNoYW5nZQorICAgICAgICAgICAg
d2hlbiBmaWx0ZXIgbWFyZ2lucyB3aWxsIGJlIGltcGxlbWVudGVkLgorICAgICAgICAgICAgRmFp
bHMgaWYgdGhlIGRpdiBzdGF5cyByZWQuCisgICAgICAgIC0tPgorICAgICAgICA8ZGl2IGlkPSJm
aWx0ZXJ0ZXN0Ym94Ij48L2Rpdj4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItdS1tZXNoLXNpemUt
ZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20vY3VzdG9tLWZp
bHRlci11LW1lc2gtc2l6ZS1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZkYmNjM2UyM2UxNjIx
NDc5YTIzNWVlZTc3ZDY2OTM4MDA3MWFjN2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9jc3MzL2ZpbHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItdS1tZXNoLXNpemUtZXhwZWN0ZWQu
aHRtbApAQCAtMCwwICsxLDE2IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFk
PgorICAgICAgICA8dGl0bGU+VGVzdCB1X21lc2hCb3g8L3RpdGxlPgorICAgICAgICA8c3R5bGU+
CisgICAgICAgICAgICAjZmlsdGVydGVzdGJveCB7CisgICAgICAgICAgICAgICAgaGVpZ2h0OiAx
MDBweDsKKyAgICAgICAgICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgICAgICAgICAgYmFj
a2dyb3VuZC1jb2xvcjogcmdiKDAsIDI1NSwgMCk7CisgICAgICAgICAgICB9CisgICAgICAgIDwv
c3R5bGU+CisgICAgPC9oZWFkPgorICAgIDxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKyAgICAg
ICAgPGRpdiBpZD0iZmlsdGVydGVzdGJveCI+PC9kaXY+CisgICAgPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVy
LXUtbWVzaC1zaXplLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9tL2N1c3Rv
bS1maWx0ZXItdS1tZXNoLXNpemUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMjgxZDg0YzUwYTJlMTAwNTEy
NDhmMmFlNGE0NGI2ODM0ODYwODk2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3Nz
My9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLXUtbWVzaC1zaXplLmh0bWwKQEAgLTAsMCAr
MSwzNiBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHRp
dGxlPlRlc3QgdV9tZXNoU2l6ZTwvdGl0bGU+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgICAgICB3aW5kb3cudGVzdFJ1
bm5lci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdENTU0N1c3RvbUZpbHRlckVuYWJsZWQiLCAi
MSIpOworICAgICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLm92ZXJyaWRlUHJlZmVyZW5j
ZSgiV2ViS2l0V2ViR0xFbmFibGVkIiwgIjEiKTsKKyAgICAgICAgICAgICAgICB3aW5kb3cudGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1
bmN0aW9uIHJ1blRlc3QoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8vIFdlIG5l
ZWQgdG8gcnVuIHRoZSB0ZXN0cyBhZnRlciB0aGUgZG93bmxvYWRpbmcgc3VjY2VlZGVkLgorICAg
ICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICAgICAg
d2luZG93LnRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgfQorICAgICAgICA8
L3NjcmlwdD4KKyAgICAgICAgPHN0eWxlPgorICAgICAgICAgICAgI2ZpbHRlcnRlc3Rib3ggewor
ICAgICAgICAgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgICAgICAgICAgd2lkdGg6IDEw
MHB4OworICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKKyAgICAgICAgICAg
ICAgICAtd2Via2l0LWZpbHRlcjogY3VzdG9tKG5vbmUgdXJsKCcuLi9yZXNvdXJjZXMvdS1tZXNo
LXNpemUuZnMnKSwgMTAgMjApOworICAgICAgICAgICAgfQorICAgICAgICA8L3N0eWxlPgorICAg
IDwvaGVhZD4KKyAgICA8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CisgICAgICAgIDwhLS0KKyAg
ICAgICAgICAgIEEgMTAweDEwMHB4IHJlZCBkaXYgaXMgY29sb3VyZWQgZ3JlZW4gaWYgdV9tZXNo
U2l6ZSBpcyBjb3JyZWN0bHkgc2V0IGFuZAorICAgICAgICAgICAgcGFzc2VkIHRvIHRoZSBzaGFk
ZXIuCisgICAgICAgICAgICBGYWlscyBpZiB0aGUgZGl2IHN0YXlzIHJlZC4KKyAgICAgICAgLS0+
CisgICAgICAgIDxkaXYgaWQ9ImZpbHRlcnRlc3Rib3giPjwvZGl2PgorICAgIDwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20vY3VzdG9t
LWZpbHRlci11LXRleHR1cmUtc2l6ZS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9m
aWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLXUtdGV4dHVyZS1zaXplLWV4cGVjdGVkLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZTM2NmExZDgzMmE5ODY1MmVmNTA0OTcwN2MyZDQ5ZGZiODY3N2I0NwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20vY3VzdG9tLWZp
bHRlci11LXRleHR1cmUtc2l6ZS1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhZG9j
dHlwZSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDx0aXRsZT5UZXN0IHVfdGV4
dHVyZVNpemU8L3RpdGxlPgorICAgICAgICA8c3R5bGU+CisgICAgICAgICAgICAjZmlsdGVydGVz
dGJveCB7CisgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgICAgICAgICB3
aWR0aDogMTAwcHg7CisgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAsIDI1
NSwgMCk7CisgICAgICAgICAgICB9CisgICAgICAgIDwvc3R5bGU+CisgICAgPC9oZWFkPgorICAg
IDxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKyAgICAgICAgPGRpdiBpZD0iZmlsdGVydGVzdGJv
eCI+PC9kaXY+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Y3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLXUtdGV4dHVyZS1zaXplLmh0bWwgYi9M
YXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItdS10ZXh0dXJlLXNp
emUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lNTkyMDZiMjQwYjhlMDA0NTU5OTY1NmFhNDVlMTM3M2FlMmJh
MzMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS9j
dXN0b20tZmlsdGVyLXUtdGV4dHVyZS1zaXplLmh0bWwKQEAgLTAsMCArMSwzNiBAQAorPCFkb2N0
eXBlIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHRpdGxlPlRlc3QgdV90ZXh0
dXJlU2l6ZTwvdGl0bGU+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5vdmVycmlk
ZVByZWZlcmVuY2UoIldlYktpdENTU0N1c3RvbUZpbHRlckVuYWJsZWQiLCAiMSIpOworICAgICAg
ICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0V2Vi
R0xFbmFibGVkIiwgIjEiKTsKKyAgICAgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci53YWl0
VW50aWxEb25lKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHJ1blRl
c3QoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gcnVuIHRo
ZSB0ZXN0cyBhZnRlciB0aGUgZG93bmxvYWRpbmcgc3VjY2VlZGVkLgorICAgICAgICAgICAgICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICAgICAgd2luZG93LnRlc3RS
dW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAg
ICAgICAgPHN0eWxlPgorICAgICAgICAgICAgI2ZpbHRlcnRlc3Rib3ggeworICAgICAgICAgICAg
ICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgICAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAg
ICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKKyAgICAgICAgICAgICAgICAtd2Via2l0
LWZpbHRlcjogY3VzdG9tKG5vbmUgdXJsKCcuLi9yZXNvdXJjZXMvdS10ZXh0dXJlLXNpemUuZnMn
KSk7CisgICAgICAgICAgICB9CisgICAgICAgIDwvc3R5bGU+CisgICAgPC9oZWFkPgorICAgIDxi
b2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKyAgICAgICAgPCEtLQorICAgICAgICAgICAgQSAxMDB4
MTAwcHggcmVkIGRpdiBpcyBjb2xvdXJlZCBncmVlbiBpZiB1X3RleHR1cmVTaXplIGlzIGNvcnJl
Y3RseSBzZXQgYW5kCisgICAgICAgICAgICBwYXNzZWQgdG8gdGhlIHNoYWRlci4KKyAgICAgICAg
ICAgIEZhaWxzIGlmIHRoZSBkaXYgc3RheXMgcmVkLgorICAgICAgICAtLT4KKyAgICAgICAgPGRp
diBpZD0iZmlsdGVydGVzdGJveCI+PC9kaXY+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLXUtdGls
ZS1zaXplLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9tL2N1
c3RvbS1maWx0ZXItdS10aWxlLXNpemUtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZWNhMDY2
ZjQ4ZDE1M2M2YzZjMDQ4ODAxODM5YTVjNmJlNTBhODE1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLXUtdGlsZS1zaXplLWV4
cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAg
ICA8aGVhZD4KKyAgICAgICAgPHRpdGxlPlRlc3QgdV90aWxlU2l6ZTwvdGl0bGU+CisgICAgICAg
IDxzdHlsZT4KKyAgICAgICAgICAgICNmaWx0ZXJ0ZXN0Ym94IHsKKyAgICAgICAgICAgICAgICBo
ZWlnaHQ6IDEwMHB4OworICAgICAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAg
ICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCwgMjU1LCAwKTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgPC9zdHlsZT4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHkgb25sb2FkPSJydW5UZXN0KCki
PgorICAgICAgICA8ZGl2IGlkPSJmaWx0ZXJ0ZXN0Ym94Ij48L2Rpdj4KKyAgICA8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9tL2N1c3Rv
bS1maWx0ZXItdS10aWxlLXNpemUuaHRtbCBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0
b20vY3VzdG9tLWZpbHRlci11LXRpbGUtc2l6ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg5ODA0OTc4NTRj
YjRiOTE5NzU1ZjJjNmRlYTFmZDdmYTAwZTBkNTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItdS10aWxlLXNpemUuaHRtbApA
QCAtMCwwICsxLDM2IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAg
ICAgICA8dGl0bGU+VGVzdCB1X3RpbGVTaXplPC90aXRsZT4KKyAgICAgICAgPHNjcmlwdD4KKyAg
ICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAgICAgIHdpbmRv
dy50ZXN0UnVubmVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0Q1NTQ3VzdG9tRmlsdGVyRW5h
YmxlZCIsICIxIik7CisgICAgICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIub3ZlcnJpZGVQ
cmVmZXJlbmNlKCJXZWJLaXRXZWJHTEVuYWJsZWQiLCAiMSIpOworICAgICAgICAgICAgICAgIHdp
bmRvdy50ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgZnVuY3Rpb24gcnVuVGVzdCgpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
Ly8gV2UgbmVlZCB0byBydW4gdGhlIHRlc3RzIGFmdGVyIHRoZSBkb3dubG9hZGluZyBzdWNjZWVk
ZWQuCisgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAg
ICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICB9Cisg
ICAgICAgIDwvc2NyaXB0PgorICAgICAgICA8c3R5bGU+CisgICAgICAgICAgICAjZmlsdGVydGVz
dGJveCB7CisgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgICAgICAgICB3
aWR0aDogMTAwcHg7CisgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOworICAg
ICAgICAgICAgICAgIC13ZWJraXQtZmlsdGVyOiBjdXN0b20obm9uZSB1cmwoJy4uL3Jlc291cmNl
cy91LXRpbGUtc2l6ZS5mcycpLCAxMCAyMCk7CisgICAgICAgICAgICB9CisgICAgICAgIDwvc3R5
bGU+CisgICAgPC9oZWFkPgorICAgIDxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKyAgICAgICAg
PCEtLQorICAgICAgICAgICAgQSAxMDB4MTAwcHggcmVkIGRpdiBpcyBjb2xvdXJlZCBncmVlbiBp
ZiB1X3RpbGVTaXplIGlzIGNvcnJlY3RseSBzZXQgYW5kCisgICAgICAgICAgICBwYXNzZWQgdG8g
dGhlIHNoYWRlci4KKyAgICAgICAgICAgIEZhaWxzIGlmIHRoZSBkaXYgc3RheXMgcmVkLgorICAg
ICAgICAtLT4KKyAgICAgICAgPGRpdiBpZD0iZmlsdGVydGVzdGJveCI+PC9kaXY+CisgICAgPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3Jlc291
cmNlcy91LW1lc2gtYm94LmZzIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3Jlc291cmNlcy91
LW1lc2gtYm94LmZzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRiYmI0MWUwYTA0ZWUzNGE0NzhkZDEzY2Q4ZmRkNGI0
MTlhMGNlY2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvcmVz
b3VyY2VzL3UtbWVzaC1ib3guZnMKQEAgLTAsMCArMSwxMyBAQAorcHJlY2lzaW9uIG1lZGl1bXAg
ZmxvYXQ7Cit1bmlmb3JtIHZlYzQgdV9tZXNoQm94OworCitib29sIGFyZUZsb2F0c0VxdWFsKGZs
b2F0IGEsIGZsb2F0IGIpCit7CisgICAgY29uc3QgZmxvYXQgZXBzaWxvbiA9IDAuMDAxOworICAg
IHJldHVybiBhID4gYiAtIGVwc2lsb24gJiYgYSA8IGIgKyBlcHNpbG9uOworfQorCit2b2lkIG1h
aW4oKQoreworICAgIGdsX0ZyYWdDb2xvciA9IChhcmVGbG9hdHNFcXVhbCh1X21lc2hCb3gueCwg
LTAuNSkgJiYgYXJlRmxvYXRzRXF1YWwodV9tZXNoQm94LnksIC0wLjUpICYmIGFyZUZsb2F0c0Vx
dWFsKHVfbWVzaEJveC56LCAxLjApICYmIGFyZUZsb2F0c0VxdWFsKHVfbWVzaEJveC53LCAxLjAp
KSA/IHZlYzQoMC4wLCAxLjAsIDAuMCwgMS4wKSA6IHZlYzQoMS4wLCAwLjAsIDAuMCwgMS4wKTsK
K30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9yZXNvdXJjZXMvdS1tZXNo
LXNpemUuZnMgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvcmVzb3VyY2VzL3UtbWVzaC1zaXpl
LmZzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmU4YWUzNTQ5OTE1NmRmM2JlZWMyNjkwMDk2MDA1MzE5ODJlODI5YzEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvcmVzb3VyY2VzL3Ut
bWVzaC1zaXplLmZzCkBAIC0wLDAgKzEsMTMgQEAKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0Owor
dW5pZm9ybSB2ZWMyIHVfbWVzaFNpemU7CisKK2Jvb2wgYXJlRmxvYXRzRXF1YWwoZmxvYXQgYSwg
ZmxvYXQgYikKK3sKKyAgICBjb25zdCBmbG9hdCBlcHNpbG9uID0gMC4wMDE7CisgICAgcmV0dXJu
IGEgPiBiIC0gZXBzaWxvbiAmJiBhIDwgYiArIGVwc2lsb247Cit9CisKK3ZvaWQgbWFpbigpCit7
CisgICAgZ2xfRnJhZ0NvbG9yID0gKGFyZUZsb2F0c0VxdWFsKHVfbWVzaFNpemUueCwgMjAuMCkg
JiYgYXJlRmxvYXRzRXF1YWwodV9tZXNoU2l6ZS55LCAxMC4wKSkgPyB2ZWM0KDAuMCwgMS4wLCAw
LjAsIDEuMCkgOiB2ZWM0KDEuMCwgMC4wLCAwLjAsIDEuMCk7Cit9CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9jc3MzL2ZpbHRlcnMvcmVzb3VyY2VzL3UtdGV4dHVyZS1zaXplLmZzIGIvTGF5b3V0
VGVzdHMvY3NzMy9maWx0ZXJzL3Jlc291cmNlcy91LXRleHR1cmUtc2l6ZS5mcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li44YTRhZDE5NTVjNGI5ODY1MWE5MmMyNTkxYzBjMWY5ZDc0YTY0ZWM0Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3Jlc291cmNlcy91LXRleHR1cmUtc2l6ZS5m
cwpAQCAtMCwwICsxLDEzIEBACitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKK3VuaWZvcm0gdmVj
MiB1X3RleHR1cmVTaXplOworCitib29sIGFyZUZsb2F0c0VxdWFsKGZsb2F0IGEsIGZsb2F0IGIp
Cit7CisgICAgY29uc3QgZmxvYXQgZXBzaWxvbiA9IDAuMDAxOworICAgIHJldHVybiBhID4gYiAt
IGVwc2lsb24gJiYgYSA8IGIgKyBlcHNpbG9uOworfQorCit2b2lkIG1haW4oKQoreworICAgIGds
X0ZyYWdDb2xvciA9IChhcmVGbG9hdHNFcXVhbCh1X3RleHR1cmVTaXplLngsIDEwMC4wKSAmJiBh
cmVGbG9hdHNFcXVhbCh1X3RleHR1cmVTaXplLnksIDEwMC4wKSkgPyB2ZWM0KDAuMCwgMS4wLCAw
LjAsIDEuMCkgOiB2ZWM0KDEuMCwgMC4wLCAwLjAsIDEuMCk7Cit9CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9jc3MzL2ZpbHRlcnMvcmVzb3VyY2VzL3UtdGlsZS1zaXplLmZzIGIvTGF5b3V0VGVz
dHMvY3NzMy9maWx0ZXJzL3Jlc291cmNlcy91LXRpbGUtc2l6ZS5mcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNTlh
Mzg4MjFlYzM2MzVlOWYxMGM0NzViMDZhZTdlOTBjM2Q4MTFhCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3Jlc291cmNlcy91LXRpbGUtc2l6ZS5mcwpAQCAtMCww
ICsxLDEzIEBACitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKK3VuaWZvcm0gdmVjMiB1X3RpbGVT
aXplOworCitib29sIGFyZUZsb2F0c0VxdWFsKGZsb2F0IGEsIGZsb2F0IGIpCit7CisgICAgY29u
c3QgZmxvYXQgZXBzaWxvbiA9IDAuMDAxOworICAgIHJldHVybiBhID4gYiAtIGVwc2lsb24gJiYg
YSA8IGIgKyBlcHNpbG9uOworfQorCit2b2lkIG1haW4oKQoreworICAgIGdsX0ZyYWdDb2xvciA9
IChhcmVGbG9hdHNFcXVhbCh1X3RpbGVTaXplLngsIDAuMDUpICYmIGFyZUZsb2F0c0VxdWFsKHVf
dGlsZVNpemUueSwgMC4xMCkpID8gdmVjNCgwLjAsIDEuMCwgMC4wLCAxLjApIDogdmVjNCgxLjAs
IDAuMCwgMC4wLCAxLjApOworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163733</attachid>
            <date>2012-09-12 16:36:48 -0700</date>
            <delta_ts>2012-09-14 15:29:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95914-20120912163622.patch</filename>
            <type>text/plain</type>
            <size>17714</size>
            <attacher name="Michelangelo De Simone">michelangelo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4MzY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjE0MWIxMTQzMGExODdk
YjMzMTY3Yzg1MWU4NjgxMGE5NzgzNTAzYS4uYjA0MWIxMjlkMjMyZTFjMDc4MjM0ZGJjZmY3ZmMy
YjIwZDJjNzNjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTA5LTEyICBNaWNo
ZWxhbmdlbG8gRGUgU2ltb25lICA8bWljaGVsYW5nZWxvQHdlYmtpdC5vcmc+CisKKyAgICAgICAg
W0NTUyBTaGFkZXJzXSB1X3RleHR1cmVTaXplIHVuaWZvcm0gc2hvdWxkIGJlIHNldCB0byB0aGUg
c2l6ZSBvZiB0aGUgdGV4dHVyZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTk1OTE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGhpcyBhZGRzIHN1cHBvcnQgZm9yIHRoZSBmb2xsb3dpbmcgc2hhZGVyIHVu
aWZvcm0gdmFyaWFibGVzOgorCisgICAgICAgICAgICB1bmlmb3JtIHZlYzIgdV90ZXh0dXJlU2l6
ZQorICAgICAgICAgICAgdW5pZm9ybSB2ZWM0IHVfbWVzaEJveAorICAgICAgICAgICAgdW5pZm9y
bSB2ZWMyIHVfdGlsZVNpemUKKyAgICAgICAgICAgIHVuaWZvcm0gdmVjMiB1X21lc2hTaXplCisK
KyAgICAgICAgVGhlIHJlbGV2YW50IHNwZWMgc2VjdGlvbiBpczoKKyAgICAgICAgaHR0cDovL2R2
Y3MudzMub3JnL2hnL0ZYVEYvcmF3LWZpbGUvdGlwL2ZpbHRlcnMvaW5kZXguaHRtbCNzaGFkZXIt
dW5pZm9ybS12YXJpYWJsZXMKKworICAgICAgICBUZXN0czogY3NzMy9maWx0ZXJzL2N1c3RvbS9j
dXN0b20tZmlsdGVyLXUtbWVzaC1ib3guaHRtbAorICAgICAgICAgICAgICAgY3NzMy9maWx0ZXJz
L2N1c3RvbS9jdXN0b20tZmlsdGVyLXUtbWVzaC1zaXplLmh0bWwKKyAgICAgICAgICAgICAgIGNz
czMvZmlsdGVycy9jdXN0b20vY3VzdG9tLWZpbHRlci11LXRleHR1cmUtc2l6ZS5odG1sCisgICAg
ICAgICAgICAgICBjc3MzL2ZpbHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItdS10aWxlLXNpemUu
aHRtbAorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUN1c3RvbUZpbHRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRUN1c3RvbUZpbHRlcjo6YmluZFByb2dyYW1BbmRC
dWZmZXJzKToKKwogMjAxMi0wOS0xMiAgTWljaGFlbCBTYWJvZmYgIDxtc2Fib2ZmQGFwcGxlLmNv
bT4KIAogICAgICAgICBFbGVtZW50OjpjbGFzc0F0dHJpYnV0ZUNoYW5nZWQgc2hvdWxkIHVzZSBj
aGFyYWN0ZXJzOC8xNiB0byBmaW5kIGZpcnN0IG5vbi13aGl0ZXNwYWNlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ3VzdG9tRmlsdGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDdXN0b21GaWx0
ZXIuY3BwCmluZGV4IGZkMTI1MDYxZGJjYWE5YjhmOWYyN2IzZGM3YzU3ZTBiZDE5ZTg5ZWIuLjRi
N2QxY2Y5OTYwY2Y0MjBkYmNkMTA3YWI3ZmJmZGExZjc2YzZkNDYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDdXN0b21GaWx0ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDdXN0b21GaWx0
ZXIuY3BwCkBAIC0zNDksNiArMzQ5LDIzIEBAIHZvaWQgRkVDdXN0b21GaWx0ZXI6OmJpbmRQcm9n
cmFtQW5kQnVmZmVycyhVaW50OENsYW1wZWRBcnJheSogc3JjUGl4ZWxBcnJheSkKICAgICAgICAg
cHJvamVjdGlvbk1hdHJpeC50b0NvbHVtbk1ham9yRmxvYXRBcnJheShnbFByb2plY3Rpb25NYXRy
aXgpOwogICAgICAgICBtX2NvbnRleHQtPnVuaWZvcm1NYXRyaXg0ZnYobV9jb21waWxlZFByb2dy
YW0tPnByb2plY3Rpb25NYXRyaXhMb2NhdGlvbigpLCAxLCBmYWxzZSwgJmdsUHJvamVjdGlvbk1h
dHJpeFswXSk7CiAgICAgfQorCisgICAgaWYgKG1fY29tcGlsZWRQcm9ncmFtLT5tZXNoU2l6ZUxv
Y2F0aW9uKCkgIT0gLTEpCisgICAgICAgIG1fY29udGV4dC0+dW5pZm9ybTJmKG1fY29tcGlsZWRQ
cm9ncmFtLT5tZXNoU2l6ZUxvY2F0aW9uKCksIG1fbWVzaENvbHVtbnMsIG1fbWVzaFJvd3MpOwor
CisgICAgQVNTRVJUKG1fbWVzaENvbHVtbnMpOworICAgIEFTU0VSVChtX21lc2hSb3dzKTsKKwor
ICAgIGlmIChtX2NvbXBpbGVkUHJvZ3JhbS0+dGlsZVNpemVMb2NhdGlvbigpICE9IC0xKQorICAg
ICAgICBtX2NvbnRleHQtPnVuaWZvcm0yZihtX2NvbXBpbGVkUHJvZ3JhbS0+dGlsZVNpemVMb2Nh
dGlvbigpLCAxLjAgLyBtX21lc2hDb2x1bW5zLCAxLjAgLyBtX21lc2hSb3dzKTsKKworICAgIGlm
IChtX2NvbXBpbGVkUHJvZ3JhbS0+bWVzaEJveExvY2F0aW9uKCkgIT0gLTEpCisgICAgICAgIC8v
IEZJWE1FOiBUaGlzIHdpbGwgY2hhbmdlIHdoZW4gZmlsdGVyIG1hcmdpbnMgd2lsbCBiZSBpbXBs
ZW1lbnRlZCwKKyAgICAgICAgLy8gc2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03MTQwMAorICAgICAgICBtX2NvbnRleHQtPnVuaWZvcm00ZihtX2NvbXBpbGVkUHJv
Z3JhbS0+bWVzaEJveExvY2F0aW9uKCksIC0wLjUsIC0wLjUsIDEuMCwgMS4wKTsKKworICAgIGlm
IChtX2NvbXBpbGVkUHJvZ3JhbS0+c2FtcGxlclNpemVMb2NhdGlvbigpICE9IC0xKQorICAgICAg
ICBtX2NvbnRleHQtPnVuaWZvcm0yZihtX2NvbXBpbGVkUHJvZ3JhbS0+c2FtcGxlclNpemVMb2Nh
dGlvbigpLCBtX2NvbnRleHRTaXplLndpZHRoKCksIG1fY29udGV4dFNpemUuaGVpZ2h0KCkpOwog
ICAgIAogICAgIG1fY29udGV4dC0+YmluZEJ1ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6QVJSQVlf
QlVGRkVSLCBtX21lc2gtPnZlcnRpY2VzQnVmZmVyT2JqZWN0KCkpOwogICAgIG1fY29udGV4dC0+
YmluZEJ1ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6RUxFTUVOVF9BUlJBWV9CVUZGRVIsIG1fbWVz
aC0+ZWxlbWVudHNCdWZmZXJPYmplY3QoKSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTI3MDRmNTVjMjk1Njk4YzQ0YmJj
YjdhN2RkOGVlZWM0MzhhM2QwNS4uYzVmOTUxYjAwNDQxYjFhMWI0ODE2MzE2NzQyMmRiY2NjN2Jl
ZWRiYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTA5LTEyICBNaWNoZWxhbmdlbG8gRGUg
U2ltb25lICA8bWljaGVsYW5nZWxvQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW0NTUyBTaGFkZXJz
XSB1X3RleHR1cmVTaXplIHVuaWZvcm0gc2hvdWxkIGJlIHNldCB0byB0aGUgc2l6ZSBvZiB0aGUg
dGV4dHVyZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk1OTE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGVzdHMgZm9yIHRoZSBmb2xsb3dpbmcgdW5pZm9ybSB2YXJpYWJsZXM6CisgICAgICAgICAgICB1
bmlmb3JtIHZlYzIgdV90ZXh0dXJlU2l6ZQorICAgICAgICAgICAgdW5pZm9ybSB2ZWM0IHVfbWVz
aEJveAorICAgICAgICAgICAgdW5pZm9ybSB2ZWMyIHVfdGlsZVNpemUKKyAgICAgICAgICAgIHVu
aWZvcm0gdmVjMiB1X21lc2hTaXplCisKKyAgICAgICAgUmVsZXZhbnQgc3BlYzoKKyAgICAgICAg
aHR0cDovL2R2Y3MudzMub3JnL2hnL0ZYVEYvcmF3LWZpbGUvdGlwL2ZpbHRlcnMvaW5kZXguaHRt
bCNzaGFkZXItdW5pZm9ybS12YXJpYWJsZXMKKworICAgICAgICAqIGNzczMvZmlsdGVycy9jdXN0
b20vY3VzdG9tLWZpbHRlci11LW1lc2gtYm94LWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGNzczMvZmlsdGVycy9jdXN0b20vY3VzdG9tLWZpbHRlci11LW1lc2gtYm94Lmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGNzczMvZmlsdGVycy9jdXN0b20vY3VzdG9tLWZpbHRlci11LW1lc2gt
c2l6ZS1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2ZpbHRlcnMvY3VzdG9t
L2N1c3RvbS1maWx0ZXItdS1tZXNoLXNpemUuaHRtbDogQWRkZWQuCisgICAgICAgICogY3NzMy9m
aWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLXUtdGV4dHVyZS1zaXplLWV4cGVjdGVkLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGNzczMvZmlsdGVycy9jdXN0b20vY3VzdG9tLWZpbHRlci11LXRl
eHR1cmUtc2l6ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2ZpbHRlcnMvY3VzdG9tL2N1
c3RvbS1maWx0ZXItdS10aWxlLXNpemUtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICog
Y3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLXUtdGlsZS1zaXplLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGNzczMvZmlsdGVycy9yZXNvdXJjZXMvdS1tZXNoLWJveC5mczogQWRkZWQu
CisgICAgICAgICogY3NzMy9maWx0ZXJzL3Jlc291cmNlcy91LW1lc2gtc2l6ZS5mczogQWRkZWQu
CisgICAgICAgICogY3NzMy9maWx0ZXJzL3Jlc291cmNlcy91LXRleHR1cmUtc2l6ZS5mczogQWRk
ZWQuCisgICAgICAgICogY3NzMy9maWx0ZXJzL3Jlc291cmNlcy91LXRpbGUtc2l6ZS5mczogQWRk
ZWQuCisKIDIwMTItMDktMTIgIFN0ZXBoYW5pZSBMZXdpcyAgPHNsZXdpc0BhcHBsZS5jb20+CiAK
ICAgICAgICAgZmFzdC9ldmVudHMvZGlzcGF0Y2gtbWVzc2FnZS1zdHJpbmctZGF0YS5odG1sIGZh
aWxzIG9uIG1hYyB3azIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0
b20vY3VzdG9tLWZpbHRlci11LW1lc2gtYm94LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9j
c3MzL2ZpbHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItdS1tZXNoLWJveC1leHBlY3RlZC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjJhMGNkZjcwNWYxYjhjMmQwOTRkOTI5Y2JiMDkwODVkYzE0N2YwZjMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9tL2N1c3RvbS1m
aWx0ZXItdS1tZXNoLWJveC1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhZG9jdHlw
ZSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDx0aXRsZT5UZXN0IHVfbWVzaFNp
emU8L3RpdGxlPgorICAgICAgICA8c3R5bGU+CisgICAgICAgICAgICAjZmlsdGVydGVzdGJveCB7
CisgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgICAgICAgICB3aWR0aDog
MTAwcHg7CisgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAsIDI1NSwgMCk7
CisgICAgICAgICAgICB9CisgICAgICAgIDwvc3R5bGU+CisgICAgPC9oZWFkPgorICAgIDxib2R5
IG9ubG9hZD0icnVuVGVzdCgpIj4KKyAgICAgICAgPGRpdiBpZD0iZmlsdGVydGVzdGJveCI+PC9k
aXY+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9m
aWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLXUtbWVzaC1ib3guaHRtbCBiL0xheW91dFRlc3Rz
L2NzczMvZmlsdGVycy9jdXN0b20vY3VzdG9tLWZpbHRlci11LW1lc2gtYm94Lmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZjhjZjUyNjE2NzUxZDJhYTFlYWMxNTI1NjA2YTA1YWZmMDg2MjA3ZAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20vY3VzdG9tLWZpbHRlci11
LW1lc2gtYm94Lmh0bWwKQEAgLTAsMCArMSwzOSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4K
KyAgICA8aGVhZD4KKyAgICAgICAgPHRpdGxlPlRlc3QgdV9tZXNoQm94PC90aXRsZT4KKyAgICAg
ICAgPHNjcmlwdD4KKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAg
ICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0Q1NT
Q3VzdG9tRmlsdGVyRW5hYmxlZCIsICIxIik7CisgICAgICAgICAgICAgICAgd2luZG93LnRlc3RS
dW5uZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRXZWJHTEVuYWJsZWQiLCAiMSIpOworICAg
ICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gcnVuVGVzdCgpCisgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgLy8gV2UgbmVlZCB0byBydW4gdGhlIHRlc3RzIGFmdGVyIHRoZSBkb3du
bG9hZGluZyBzdWNjZWVkZWQuCisgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQorICAgICAgICAgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cisg
ICAgICAgICAgICB9CisgICAgICAgIDwvc2NyaXB0PgorICAgICAgICA8c3R5bGU+CisgICAgICAg
ICAgICAjZmlsdGVydGVzdGJveCB7CisgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAg
ICAgICAgICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1j
b2xvcjogcmVkOworICAgICAgICAgICAgICAgIC13ZWJraXQtZmlsdGVyOiBjdXN0b20obm9uZSB1
cmwoJy4uL3Jlc291cmNlcy91LW1lc2gtYm94LmZzJykpOworICAgICAgICAgICAgfQorICAgICAg
ICA8L3N0eWxlPgorICAgIDwvaGVhZD4KKyAgICA8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cisg
ICAgICAgIDwhLS0KKyAgICAgICAgICAgIEEgMTAweDEwMHB4IHJlZCBkaXYgaXMgY29sb3VyZWQg
Z3JlZW4gaWYgdV9tZXNoQm94IGlzIGNvcnJlY3RseSBzZXQgYW5kCisgICAgICAgICAgICBwYXNz
ZWQgdG8gdGhlIHNoYWRlci4KKyAgICAgICAgICAgIEFzIG9mIG5vdyB1X21lc2hCb3ggYWx3YXlz
IHJldHVybnMgKC0wLjUsIC0wLjUsIDEsIDEpOyB0aGlzIHNoYWxsIGNoYW5nZQorICAgICAgICAg
ICAgd2hlbiBmaWx0ZXIgbWFyZ2lucyB3aWxsIGJlIGltcGxlbWVudGVkLCBzZWU6CisgICAgICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE0MDAKKyAgICAg
ICAgICAgIEZhaWxzIGlmIHRoZSBkaXYgc3RheXMgcmVkLgorICAgICAgICAtLT4KKyAgICAgICAg
PGRpdiBpZD0iZmlsdGVydGVzdGJveCI+PC9kaXY+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLXUt
bWVzaC1zaXplLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9t
L2N1c3RvbS1maWx0ZXItdS1tZXNoLXNpemUtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZGJj
YzNlMjNlMTYyMTQ3OWEyMzVlZWU3N2Q2NjkzODAwNzFhYzdlCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLXUtbWVzaC1zaXpl
LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4K
KyAgICA8aGVhZD4KKyAgICAgICAgPHRpdGxlPlRlc3QgdV9tZXNoQm94PC90aXRsZT4KKyAgICAg
ICAgPHN0eWxlPgorICAgICAgICAgICAgI2ZpbHRlcnRlc3Rib3ggeworICAgICAgICAgICAgICAg
IGhlaWdodDogMTAwcHg7CisgICAgICAgICAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICAg
ICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigwLCAyNTUsIDApOworICAgICAgICAgICAgfQor
ICAgICAgICA8L3N0eWxlPgorICAgIDwvaGVhZD4KKyAgICA8Ym9keSBvbmxvYWQ9InJ1blRlc3Qo
KSI+CisgICAgICAgIDxkaXYgaWQ9ImZpbHRlcnRlc3Rib3giPjwvZGl2PgorICAgIDwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20vY3Vz
dG9tLWZpbHRlci11LW1lc2gtc2l6ZS5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1
c3RvbS9jdXN0b20tZmlsdGVyLXUtbWVzaC1zaXplLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTI4MWQ4NGM1
MGEyZTEwMDUxMjQ4ZjJhZTRhNDRiNjgzNDg2MDg5NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20vY3VzdG9tLWZpbHRlci11LW1lc2gtc2l6ZS5odG1s
CkBAIC0wLDAgKzEsMzYgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+Cisg
ICAgICAgIDx0aXRsZT5UZXN0IHVfbWVzaFNpemU8L3RpdGxlPgorICAgICAgICA8c2NyaXB0Pgor
ICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICAgICAgd2lu
ZG93LnRlc3RSdW5uZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRDU1NDdXN0b21GaWx0ZXJF
bmFibGVkIiwgIjEiKTsKKyAgICAgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5vdmVycmlk
ZVByZWZlcmVuY2UoIldlYktpdFdlYkdMRW5hYmxlZCIsICIxIik7CisgICAgICAgICAgICAgICAg
d2luZG93LnRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICBmdW5jdGlvbiBydW5UZXN0KCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICAvLyBXZSBuZWVkIHRvIHJ1biB0aGUgdGVzdHMgYWZ0ZXIgdGhlIGRvd25sb2FkaW5nIHN1Y2Nl
ZWRlZC4KKyAgICAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAg
ICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgIDxzdHlsZT4KKyAgICAgICAgICAgICNmaWx0ZXJ0
ZXN0Ym94IHsKKyAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICAgICAgICAg
IHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7Cisg
ICAgICAgICAgICAgICAgLXdlYmtpdC1maWx0ZXI6IGN1c3RvbShub25lIHVybCgnLi4vcmVzb3Vy
Y2VzL3UtbWVzaC1zaXplLmZzJyksIDEwIDIwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgPC9z
dHlsZT4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorICAgICAg
ICA8IS0tCisgICAgICAgICAgICBBIDEwMHgxMDBweCByZWQgZGl2IGlzIGNvbG91cmVkIGdyZWVu
IGlmIHVfbWVzaFNpemUgaXMgY29ycmVjdGx5IHNldCBhbmQKKyAgICAgICAgICAgIHBhc3NlZCB0
byB0aGUgc2hhZGVyLgorICAgICAgICAgICAgRmFpbHMgaWYgdGhlIGRpdiBzdGF5cyByZWQuCisg
ICAgICAgIC0tPgorICAgICAgICA8ZGl2IGlkPSJmaWx0ZXJ0ZXN0Ym94Ij48L2Rpdj4KKyAgICA8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3Vz
dG9tL2N1c3RvbS1maWx0ZXItdS10ZXh0dXJlLXNpemUtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRl
c3RzL2NzczMvZmlsdGVycy9jdXN0b20vY3VzdG9tLWZpbHRlci11LXRleHR1cmUtc2l6ZS1leHBl
Y3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUzNjZhMWQ4MzJhOTg2NTJlZjUwNDk3MDdjMmQ0OWRmYjg2
NzdiNDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9t
L2N1c3RvbS1maWx0ZXItdS10ZXh0dXJlLXNpemUtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDE2
IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8dGl0bGU+
VGVzdCB1X3RleHR1cmVTaXplPC90aXRsZT4KKyAgICAgICAgPHN0eWxlPgorICAgICAgICAgICAg
I2ZpbHRlcnRlc3Rib3ggeworICAgICAgICAgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAg
ICAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6
IHJnYigwLCAyNTUsIDApOworICAgICAgICAgICAgfQorICAgICAgICA8L3N0eWxlPgorICAgIDwv
aGVhZD4KKyAgICA8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CisgICAgICAgIDxkaXYgaWQ9ImZp
bHRlcnRlc3Rib3giPjwvZGl2PgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20vY3VzdG9tLWZpbHRlci11LXRleHR1cmUtc2l6
ZS5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLXUt
dGV4dHVyZS1zaXplLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTU5MjA2YjI0MGI4ZTAwNDU1OTk2NTZhYTQ1
ZTEzNzNhZTJiYTMzMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVy
cy9jdXN0b20vY3VzdG9tLWZpbHRlci11LXRleHR1cmUtc2l6ZS5odG1sCkBAIC0wLDAgKzEsMzYg
QEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDx0aXRsZT5U
ZXN0IHVfdGV4dHVyZVNpemU8L3RpdGxlPgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICAgICAgd2luZG93LnRlc3RSdW5u
ZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRDU1NDdXN0b21GaWx0ZXJFbmFibGVkIiwgIjEi
KTsKKyAgICAgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5vdmVycmlkZVByZWZlcmVuY2Uo
IldlYktpdFdlYkdMRW5hYmxlZCIsICIxIik7CisgICAgICAgICAgICAgICAgd2luZG93LnRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5j
dGlvbiBydW5UZXN0KCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvLyBXZSBuZWVk
IHRvIHJ1biB0aGUgdGVzdHMgYWZ0ZXIgdGhlIGRvd25sb2FkaW5nIHN1Y2NlZWRlZC4KKyAgICAg
ICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgICAgIHdp
bmRvdy50ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgPC9z
Y3JpcHQ+CisgICAgICAgIDxzdHlsZT4KKyAgICAgICAgICAgICNmaWx0ZXJ0ZXN0Ym94IHsKKyAg
ICAgICAgICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICAgICAgICAgIHdpZHRoOiAxMDBw
eDsKKyAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7CisgICAgICAgICAgICAg
ICAgLXdlYmtpdC1maWx0ZXI6IGN1c3RvbShub25lIHVybCgnLi4vcmVzb3VyY2VzL3UtdGV4dHVy
ZS1zaXplLmZzJykpOworICAgICAgICAgICAgfQorICAgICAgICA8L3N0eWxlPgorICAgIDwvaGVh
ZD4KKyAgICA8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CisgICAgICAgIDwhLS0KKyAgICAgICAg
ICAgIEEgMTAweDEwMHB4IHJlZCBkaXYgaXMgY29sb3VyZWQgZ3JlZW4gaWYgdV90ZXh0dXJlU2l6
ZSBpcyBjb3JyZWN0bHkgc2V0IGFuZAorICAgICAgICAgICAgcGFzc2VkIHRvIHRoZSBzaGFkZXIu
CisgICAgICAgICAgICBGYWlscyBpZiB0aGUgZGl2IHN0YXlzIHJlZC4KKyAgICAgICAgLS0+Cisg
ICAgICAgIDxkaXYgaWQ9ImZpbHRlcnRlc3Rib3giPjwvZGl2PgorICAgIDwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20vY3VzdG9tLWZp
bHRlci11LXRpbGUtc2l6ZS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJz
L2N1c3RvbS9jdXN0b20tZmlsdGVyLXUtdGlsZS1zaXplLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uY2VjYTA2NmY0OGQxNTNjNmM2YzA0ODgwMTgzOWE1YzZiZTUwYTgxNQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20vY3VzdG9tLWZpbHRlci11LXRp
bGUtc2l6ZS1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhZG9jdHlwZSBodG1sPgor
PGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDx0aXRsZT5UZXN0IHVfdGlsZVNpemU8L3RpdGxl
PgorICAgICAgICA8c3R5bGU+CisgICAgICAgICAgICAjZmlsdGVydGVzdGJveCB7CisgICAgICAg
ICAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgICAgICAgICB3aWR0aDogMTAwcHg7Cisg
ICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAsIDI1NSwgMCk7CisgICAgICAg
ICAgICB9CisgICAgICAgIDwvc3R5bGU+CisgICAgPC9oZWFkPgorICAgIDxib2R5IG9ubG9hZD0i
cnVuVGVzdCgpIj4KKyAgICAgICAgPGRpdiBpZD0iZmlsdGVydGVzdGJveCI+PC9kaXY+CisgICAg
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1
c3RvbS9jdXN0b20tZmlsdGVyLXUtdGlsZS1zaXplLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2Zp
bHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItdS10aWxlLXNpemUuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44
OTgwNDk3ODU0Y2I0YjkxOTc1NWYyYzZkZWExZmQ3ZmEwMGUwZDU0Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLXUtdGlsZS1z
aXplLmh0bWwKQEAgLTAsMCArMSwzNiBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgICA8
aGVhZD4KKyAgICAgICAgPHRpdGxlPlRlc3QgdV90aWxlU2l6ZTwvdGl0bGU+CisgICAgICAgIDxz
Y3JpcHQ+CisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAg
ICAgICB3aW5kb3cudGVzdFJ1bm5lci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdENTU0N1c3Rv
bUZpbHRlckVuYWJsZWQiLCAiMSIpOworICAgICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVy
Lm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0V2ViR0xFbmFibGVkIiwgIjEiKTsKKyAgICAgICAg
ICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgIC8vIFdlIG5lZWQgdG8gcnVuIHRoZSB0ZXN0cyBhZnRlciB0aGUgZG93bmxvYWRp
bmcgc3VjY2VlZGVkLgorICAgICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAg
ICAgICAgICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAg
ICAgICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAgICAgICAgPHN0eWxlPgorICAgICAgICAgICAg
I2ZpbHRlcnRlc3Rib3ggeworICAgICAgICAgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAg
ICAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6
IHJlZDsKKyAgICAgICAgICAgICAgICAtd2Via2l0LWZpbHRlcjogY3VzdG9tKG5vbmUgdXJsKCcu
Li9yZXNvdXJjZXMvdS10aWxlLXNpemUuZnMnKSwgMTAgMjApOworICAgICAgICAgICAgfQorICAg
ICAgICA8L3N0eWxlPgorICAgIDwvaGVhZD4KKyAgICA8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+
CisgICAgICAgIDwhLS0KKyAgICAgICAgICAgIEEgMTAweDEwMHB4IHJlZCBkaXYgaXMgY29sb3Vy
ZWQgZ3JlZW4gaWYgdV90aWxlU2l6ZSBpcyBjb3JyZWN0bHkgc2V0IGFuZAorICAgICAgICAgICAg
cGFzc2VkIHRvIHRoZSBzaGFkZXIuCisgICAgICAgICAgICBGYWlscyBpZiB0aGUgZGl2IHN0YXlz
IHJlZC4KKyAgICAgICAgLS0+CisgICAgICAgIDxkaXYgaWQ9ImZpbHRlcnRlc3Rib3giPjwvZGl2
PgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZmls
dGVycy9yZXNvdXJjZXMvdS1tZXNoLWJveC5mcyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9y
ZXNvdXJjZXMvdS1tZXNoLWJveC5mcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYThkMDY4MWVmN2YyMWY0ZGViMzI2
MTEzYjE5ZDM0NTlmMjI4ODlmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9m
aWx0ZXJzL3Jlc291cmNlcy91LW1lc2gtYm94LmZzCkBAIC0wLDAgKzEsMTkgQEAKKy8vIFRlc3Qg
d2hldGhlciB1X21lc2hCb3ggaXMgY29ycmVjdGx5IHNldDsgY2hhbmdlIGZyYWdtZW50IGNvbG9y
IHRvIGdyZWVuIGlmIHllcy4KK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwordW5pZm9ybSB2ZWM0
IHVfbWVzaEJveDsKKworYm9vbCBhcmVGbG9hdHNFcXVhbChmbG9hdCBhLCBmbG9hdCBiKQorewor
ICAgIGNvbnN0IGZsb2F0IGVwc2lsb24gPSAwLjAwMTsKKyAgICByZXR1cm4gKGEgPiAoYiAtIGVw
c2lsb24pKSAmJiAoYSA8IChiICsgZXBzaWxvbikpOworfQorCitib29sIGFyZVZlY3RvcnNFcXVh
bCh2ZWM0IGEsIHZlYzQgYikKK3sKKyAgICByZXR1cm4gYXJlRmxvYXRzRXF1YWwoYS54LCBiLngp
ICYmIGFyZUZsb2F0c0VxdWFsKGEueSwgYi55KSAmJiBhcmVGbG9hdHNFcXVhbChhLnosIGIueikg
JiYgYXJlRmxvYXRzRXF1YWwoYS53LCBiLncpOworfQorCit2b2lkIG1haW4oKQoreworICAgIGds
X0ZyYWdDb2xvciA9IGFyZVZlY3RvcnNFcXVhbCh1X21lc2hCb3gsIHZlYzQoLTAuNSwgLTAuNSwg
MS4wLCAxLjApKSA/IHZlYzQoMC4wLCAxLjAsIDAuMCwgMS4wKSA6IHZlYzQoMS4wLCAwLjAsIDAu
MCwgMS4wKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9yZXNvdXJj
ZXMvdS1tZXNoLXNpemUuZnMgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvcmVzb3VyY2VzL3Ut
bWVzaC1zaXplLmZzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZiZmUzNGNlYmE4OTExNjEwY2E5MTU2OTg3YTk3Yzgx
YTk5YzkwYjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvcmVz
b3VyY2VzL3UtbWVzaC1zaXplLmZzCkBAIC0wLDAgKzEsMTkgQEAKKy8vIFRlc3Qgd2hldGhlciB1
X21lc2hTaXplIGlzIGNvcnJlY3RseSBzZXQ7IGNoYW5nZSBmcmFnbWVudCB0byBjb2xvciBncmVl
biBpZiB5ZXMuCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKK3VuaWZvcm0gdmVjMiB1X21lc2hT
aXplOworCitib29sIGFyZUZsb2F0c0VxdWFsKGZsb2F0IGEsIGZsb2F0IGIpCit7CisgICAgY29u
c3QgZmxvYXQgZXBzaWxvbiA9IDAuMDAxOworICAgIHJldHVybiAoYSA+IChiIC0gZXBzaWxvbikp
ICYmIChhIDwgKGIgKyBlcHNpbG9uKSk7Cit9CisKK2Jvb2wgYXJlVmVjdG9yc0VxdWFsKHZlYzIg
YSwgdmVjMiBiKQoreworICAgIHJldHVybiBhcmVGbG9hdHNFcXVhbChhLngsIGIueCkgJiYgYXJl
RmxvYXRzRXF1YWwoYS55LCBiLnkpOworfQorCit2b2lkIG1haW4oKQoreworICAgIGdsX0ZyYWdD
b2xvciA9IGFyZVZlY3RvcnNFcXVhbCh1X21lc2hTaXplLCB2ZWMyKDIwLjAsIDEwLjApKSA/IHZl
YzQoMC4wLCAxLjAsIDAuMCwgMS4wKSA6IHZlYzQoMS4wLCAwLjAsIDAuMCwgMS4wKTsKK30KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9yZXNvdXJjZXMvdS10ZXh0dXJlLXNp
emUuZnMgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvcmVzb3VyY2VzL3UtdGV4dHVyZS1zaXpl
LmZzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjE3NTE1ZGYwNTQzZjAxODIyMTRiMTczMGZkZmNlODJhOTI2MTFkNWUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvcmVzb3VyY2VzL3Ut
dGV4dHVyZS1zaXplLmZzCkBAIC0wLDAgKzEsMTkgQEAKKy8vIFRlc3Qgd2hldGhlciB1X3RleHR1
cmVTaXplIGlzIGNvcnJlY3RseSBzZXQ7IGNoYW5nZSBmcmFnbWVudCBjb2xvciB0byBncmVlbiBp
ZiB5ZXMuCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKK3VuaWZvcm0gdmVjMiB1X3RleHR1cmVT
aXplOworCitib29sIGFyZUZsb2F0c0VxdWFsKGZsb2F0IGEsIGZsb2F0IGIpCit7CisgICAgY29u
c3QgZmxvYXQgZXBzaWxvbiA9IDAuMDAxOworICAgIHJldHVybiAoYSA+IChiIC0gZXBzaWxvbikp
ICYmIChhIDwgKGIgKyBlcHNpbG9uKSk7Cit9CisKK2Jvb2wgYXJlVmVjdG9yc0VxdWFsKHZlYzIg
YSwgdmVjMiBiKQoreworICAgIHJldHVybiBhcmVGbG9hdHNFcXVhbChhLngsIGIueCkgJiYgYXJl
RmxvYXRzRXF1YWwoYS55LCBiLnkpOworfQorCit2b2lkIG1haW4oKQoreworICAgIGdsX0ZyYWdD
b2xvciA9IGFyZVZlY3RvcnNFcXVhbCh1X3RleHR1cmVTaXplLCB2ZWMyKDEwMC4wLCAxMDAuMCkp
ID8gdmVjNCgwLjAsIDEuMCwgMC4wLCAxLjApIDogdmVjNCgxLjAsIDAuMCwgMC4wLCAxLjApOwor
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3Jlc291cmNlcy91LXRpbGUt
c2l6ZS5mcyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9yZXNvdXJjZXMvdS10aWxlLXNpemUu
ZnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZmJmMDhhMzY2ZDc5NTY0N2Y1MjdmM2M0NGQ1ODFiYzI1MzEwM2MxNQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9yZXNvdXJjZXMvdS10
aWxlLXNpemUuZnMKQEAgLTAsMCArMSwxOSBAQAorLy8gVGVzdCB3aGV0aGVyIHVfdGlsZVNpemUg
aXMgY29ycmVjdGx5IHNldDsgY2hhbmdlIGZyYWdtZW50IGNvbG9yIHRvIGdyZWVuIGlmIHllcy4K
K3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwordW5pZm9ybSB2ZWMyIHVfdGlsZVNpemU7CisKK2Jv
b2wgYXJlRmxvYXRzRXF1YWwoZmxvYXQgYSwgZmxvYXQgYikKK3sKKyAgICBjb25zdCBmbG9hdCBl
cHNpbG9uID0gMC4wMDE7CisgICAgcmV0dXJuIChhID4gKGIgLSBlcHNpbG9uKSkgJiYgKGEgPCAo
YiArIGVwc2lsb24pKTsKK30KKworYm9vbCBhcmVWZWN0b3JzRXF1YWwodmVjMiBhLCB2ZWMyIGIp
Cit7CisgICAgcmV0dXJuIGFyZUZsb2F0c0VxdWFsKGEueCwgYi54KSAmJiBhcmVGbG9hdHNFcXVh
bChhLnksIGIueSk7Cit9CisKK3ZvaWQgbWFpbigpCit7CisgICAgZ2xfRnJhZ0NvbG9yID0gYXJl
VmVjdG9yc0VxdWFsKHVfdGlsZVNpemUsIHZlYzIoMC4wNSwgMC4xMCkpID8gdmVjNCgwLjAsIDEu
MCwgMC4wLCAxLjApIDogdmVjNCgxLjAsIDAuMCwgMC4wLCAxLjApOworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164237</attachid>
            <date>2012-09-14 15:29:08 -0700</date>
            <delta_ts>2012-09-15 21:51:01 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-95914-20120914152839.patch</filename>
            <type>text/plain</type>
            <size>17821</size>
            <attacher name="Michelangelo De Simone">michelangelo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NDk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjQ3NDAyNmQyODgwZDFm
MjRlMGVkOTM2ZDIzMWY0NjJjYjk3ZmFjNy4uNjE2NDdhODBmOTgzZGRkYWI1ZjMxMjMyOGI0ZWRj
YWI4OGQ5Y2ZiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTA5LTEyICBNaWNo
ZWxhbmdlbG8gRGUgU2ltb25lICA8bWljaGVsYW5nZWxvQHdlYmtpdC5vcmc+CisKKyAgICAgICAg
W0NTUyBTaGFkZXJzXSB1X3RleHR1cmVTaXplIHVuaWZvcm0gc2hvdWxkIGJlIHNldCB0byB0aGUg
c2l6ZSBvZiB0aGUgdGV4dHVyZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTk1OTE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGVhbiBKYWNrc29uLgor
CisgICAgICAgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciB0aGUgZm9sbG93aW5nIHNoYWRlciB1bmlm
b3JtIHZhcmlhYmxlczoKKworICAgICAgICAgICAgdW5pZm9ybSB2ZWMyIHVfdGV4dHVyZVNpemUK
KyAgICAgICAgICAgIHVuaWZvcm0gdmVjNCB1X21lc2hCb3gKKyAgICAgICAgICAgIHVuaWZvcm0g
dmVjMiB1X3RpbGVTaXplCisgICAgICAgICAgICB1bmlmb3JtIHZlYzIgdV9tZXNoU2l6ZQorCisg
ICAgICAgIFRoZSByZWxldmFudCBzZWN0aW9uIG9mIHRoZSBzcGVjaWZpY2F0aW9uIGlzOgorICAg
ICAgICBodHRwOi8vZHZjcy53My5vcmcvaGcvRlhURi9yYXctZmlsZS90aXAvZmlsdGVycy9pbmRl
eC5odG1sI3NoYWRlci11bmlmb3JtLXZhcmlhYmxlcworCisgICAgICAgIFRlc3RzOiBjc3MzL2Zp
bHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItdS1tZXNoLWJveC5odG1sCisgICAgICAgICAgICAg
ICBjc3MzL2ZpbHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItdS1tZXNoLXNpemUuaHRtbAorICAg
ICAgICAgICAgICAgY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLXUtdGV4dHVyZS1z
aXplLmh0bWwKKyAgICAgICAgICAgICAgIGNzczMvZmlsdGVycy9jdXN0b20vY3VzdG9tLWZpbHRl
ci11LXRpbGUtc2l6ZS5odG1sCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFQ3VzdG9tRmlsdGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFQ3VzdG9tRmlsdGVyOjpi
aW5kUHJvZ3JhbUFuZEJ1ZmZlcnMpOgorCiAyMDEyLTA5LTEzICBZb25nIExpICA8eW9saUByaW0u
Y29tPgogCiAgICAgICAgIFtCbGFja0JlcnJ5XSBSZXNvdXJjZVJlcXVlc3Qgc3RyaW5nIG9wdGlt
aXphdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVDdXN0b21GaWx0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GRUN1c3RvbUZpbHRlci5jcHAKaW5kZXggZmQxMjUwNjFkYmNhYTliOGY5ZjI3
YjNkYzdjNTdlMGJkMTllODllYi4uNzUyYzRkNzA3NzhiNTJhNjM3OWFkNmRhYjljZWNmYmVhMmNm
Yjc0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRUN1c3RvbUZpbHRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GRUN1c3RvbUZpbHRlci5jcHAKQEAgLTM0OSw2ICszNDksMjQgQEAgdm9pZCBG
RUN1c3RvbUZpbHRlcjo6YmluZFByb2dyYW1BbmRCdWZmZXJzKFVpbnQ4Q2xhbXBlZEFycmF5KiBz
cmNQaXhlbEFycmF5KQogICAgICAgICBwcm9qZWN0aW9uTWF0cml4LnRvQ29sdW1uTWFqb3JGbG9h
dEFycmF5KGdsUHJvamVjdGlvbk1hdHJpeCk7CiAgICAgICAgIG1fY29udGV4dC0+dW5pZm9ybU1h
dHJpeDRmdihtX2NvbXBpbGVkUHJvZ3JhbS0+cHJvamVjdGlvbk1hdHJpeExvY2F0aW9uKCksIDEs
IGZhbHNlLCAmZ2xQcm9qZWN0aW9uTWF0cml4WzBdKTsKICAgICB9CisKKyAgICBBU1NFUlQobV9t
ZXNoQ29sdW1ucyk7CisgICAgQVNTRVJUKG1fbWVzaFJvd3MpOworCisgICAgaWYgKG1fY29tcGls
ZWRQcm9ncmFtLT5tZXNoU2l6ZUxvY2F0aW9uKCkgIT0gLTEpCisgICAgICAgIG1fY29udGV4dC0+
dW5pZm9ybTJmKG1fY29tcGlsZWRQcm9ncmFtLT5tZXNoU2l6ZUxvY2F0aW9uKCksIG1fbWVzaENv
bHVtbnMsIG1fbWVzaFJvd3MpOworCisgICAgaWYgKG1fY29tcGlsZWRQcm9ncmFtLT50aWxlU2l6
ZUxvY2F0aW9uKCkgIT0gLTEpCisgICAgICAgIG1fY29udGV4dC0+dW5pZm9ybTJmKG1fY29tcGls
ZWRQcm9ncmFtLT50aWxlU2l6ZUxvY2F0aW9uKCksIDEuMCAvIG1fbWVzaENvbHVtbnMsIDEuMCAv
IG1fbWVzaFJvd3MpOworCisgICAgaWYgKG1fY29tcGlsZWRQcm9ncmFtLT5tZXNoQm94TG9jYXRp
b24oKSAhPSAtMSkgeworICAgICAgICAvLyBGSVhNRTogVGhpcyB3aWxsIGNoYW5nZSB3aGVuIGZp
bHRlciBtYXJnaW5zIHdpbGwgYmUgaW1wbGVtZW50ZWQsCisgICAgICAgIC8vIHNlZSBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE0MDAKKyAgICAgICAgbV9jb250ZXh0
LT51bmlmb3JtNGYobV9jb21waWxlZFByb2dyYW0tPm1lc2hCb3hMb2NhdGlvbigpLCAtMC41LCAt
MC41LCAxLjAsIDEuMCk7CisgICAgfQorCisgICAgaWYgKG1fY29tcGlsZWRQcm9ncmFtLT5zYW1w
bGVyU2l6ZUxvY2F0aW9uKCkgIT0gLTEpCisgICAgICAgIG1fY29udGV4dC0+dW5pZm9ybTJmKG1f
Y29tcGlsZWRQcm9ncmFtLT5zYW1wbGVyU2l6ZUxvY2F0aW9uKCksIG1fY29udGV4dFNpemUud2lk
dGgoKSwgbV9jb250ZXh0U2l6ZS5oZWlnaHQoKSk7CiAgICAgCiAgICAgbV9jb250ZXh0LT5iaW5k
QnVmZmVyKEdyYXBoaWNzQ29udGV4dDNEOjpBUlJBWV9CVUZGRVIsIG1fbWVzaC0+dmVydGljZXNC
dWZmZXJPYmplY3QoKSk7CiAgICAgbV9jb250ZXh0LT5iaW5kQnVmZmVyKEdyYXBoaWNzQ29udGV4
dDNEOjpFTEVNRU5UX0FSUkFZX0JVRkZFUiwgbV9tZXNoLT5lbGVtZW50c0J1ZmZlck9iamVjdCgp
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCAzNTQ0NDhiMDYwNjY3MzNlNzY1YTBmYjcyMzc1ZjYyNDliNTUxYTNlLi44ODE5
NzQ2ZGZiOTNiOGVkY2QxYTVhN2FjYjZiNDVjMWYzNzYwNmQ5IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIg
QEAKKzIwMTItMDktMTIgIE1pY2hlbGFuZ2VsbyBEZSBTaW1vbmUgIDxtaWNoZWxhbmdlbG9Ad2Vi
a2l0Lm9yZz4KKworICAgICAgICBbQ1NTIFNoYWRlcnNdIHVfdGV4dHVyZVNpemUgdW5pZm9ybSBz
aG91bGQgYmUgc2V0IHRvIHRoZSBzaXplIG9mIHRoZSB0ZXh0dXJlLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTU5MTQKKworICAgICAgICBSZXZpZXdl
ZCBieSBEZWFuIEphY2tzb24uCisKKyAgICAgICAgVGVzdHMgZm9yIHRoZSBmb2xsb3dpbmcgdW5p
Zm9ybSB2YXJpYWJsZXM6CisgICAgICAgICAgICB1bmlmb3JtIHZlYzIgdV90ZXh0dXJlU2l6ZQor
ICAgICAgICAgICAgdW5pZm9ybSB2ZWM0IHVfbWVzaEJveAorICAgICAgICAgICAgdW5pZm9ybSB2
ZWMyIHVfdGlsZVNpemUKKyAgICAgICAgICAgIHVuaWZvcm0gdmVjMiB1X21lc2hTaXplCisKKyAg
ICAgICAgVGhlIHJlbGV2YW50IHNlY3Rpb24gb2YgdGhlIHNwZWNpZmljYXRpb24gaXM6CisgICAg
ICAgIGh0dHA6Ly9kdmNzLnczLm9yZy9oZy9GWFRGL3Jhdy1maWxlL3RpcC9maWx0ZXJzL2luZGV4
Lmh0bWwjc2hhZGVyLXVuaWZvcm0tdmFyaWFibGVzCisKKyAgICAgICAgKiBjc3MzL2ZpbHRlcnMv
Y3VzdG9tL2N1c3RvbS1maWx0ZXItdS1tZXNoLWJveC1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBjc3MzL2ZpbHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItdS1tZXNoLWJveC5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2ZpbHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItdS1t
ZXNoLXNpemUtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogY3NzMy9maWx0ZXJzL2N1
c3RvbS9jdXN0b20tZmlsdGVyLXUtbWVzaC1zaXplLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNz
czMvZmlsdGVycy9jdXN0b20vY3VzdG9tLWZpbHRlci11LXRleHR1cmUtc2l6ZS1leHBlY3RlZC5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2ZpbHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0ZXIt
dS10ZXh0dXJlLXNpemUuaHRtbDogQWRkZWQuCisgICAgICAgICogY3NzMy9maWx0ZXJzL2N1c3Rv
bS9jdXN0b20tZmlsdGVyLXUtdGlsZS1zaXplLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGNzczMvZmlsdGVycy9jdXN0b20vY3VzdG9tLWZpbHRlci11LXRpbGUtc2l6ZS5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBjc3MzL2ZpbHRlcnMvcmVzb3VyY2VzL3UtbWVzaC1ib3gtaXMtdW5p
dC1zcXVhcmUuZnM6IEFkZGVkLgorICAgICAgICAqIGNzczMvZmlsdGVycy9yZXNvdXJjZXMvdS1t
ZXNoLXNpemUuZnM6IEFkZGVkLgorICAgICAgICAqIGNzczMvZmlsdGVycy9yZXNvdXJjZXMvdS10
ZXh0dXJlLXNpemUuZnM6IEFkZGVkLgorICAgICAgICAqIGNzczMvZmlsdGVycy9yZXNvdXJjZXMv
dS10aWxlLXNpemUuZnM6IEFkZGVkLgorCiAyMDEyLTA5LTEzICBTdWRhcnNhbmEgTmFnaW5lbmkg
IDxzdWRhcnNhbmEubmFnaW5lbmlAbGludXguaW50ZWwuY29tPgogCiAgICAgICAgIFtXSzJdW1dU
Ul0gV2ViS2l0VGVzdFJ1bm5lciBuZWVkcyB0ZXN0UnVubmVyLmNhbGxTaG91bGRDbG9zZU9uV2Vi
VmlldwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20t
ZmlsdGVyLXUtbWVzaC1ib3gtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVy
cy9jdXN0b20vY3VzdG9tLWZpbHRlci11LW1lc2gtYm94LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMmEwY2RmNzA1ZjFiOGMyZDA5NGQ5MjljYmIwOTA4NWRjMTQ3ZjBmMwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20vY3VzdG9tLWZpbHRlci11LW1l
c2gtYm94LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPCFkb2N0eXBlIGh0bWw+Cis8
aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHRpdGxlPlRlc3QgdV9tZXNoU2l6ZTwvdGl0bGU+
CisgICAgICAgIDxzdHlsZT4KKyAgICAgICAgICAgICNmaWx0ZXJ0ZXN0Ym94IHsKKyAgICAgICAg
ICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKKyAg
ICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCwgMjU1LCAwKTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgPC9zdHlsZT4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHkgb25sb2FkPSJy
dW5UZXN0KCkiPgorICAgICAgICA8ZGl2IGlkPSJmaWx0ZXJ0ZXN0Ym94Ij48L2Rpdj4KKyAgICA8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3Vz
dG9tL2N1c3RvbS1maWx0ZXItdS1tZXNoLWJveC5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0
ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLXUtbWVzaC1ib3guaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZTY1
ZGE0OWQyZGM3NWU0OTI0YmMyYjIyYTBjMGZjZGFiYjBiYzJjCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLXUtbWVzaC1ib3gu
aHRtbApAQCAtMCwwICsxLDM5IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFk
PgorICAgICAgICA8dGl0bGU+VGVzdCB1X21lc2hCb3g8L3RpdGxlPgorICAgICAgICA8c2NyaXB0
PgorICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICAgICAg
d2luZG93LnRlc3RSdW5uZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRDU1NDdXN0b21GaWx0
ZXJFbmFibGVkIiwgIjEiKTsKKyAgICAgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5vdmVy
cmlkZVByZWZlcmVuY2UoIldlYktpdFdlYkdMRW5hYmxlZCIsICIxIik7CisgICAgICAgICAgICAg
ICAgd2luZG93LnRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICBmdW5jdGlvbiBydW5UZXN0KCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICAvLyBXZSBuZWVkIHRvIHJ1biB0aGUgdGVzdHMgYWZ0ZXIgdGhlIGRvd25sb2FkaW5nIHN1
Y2NlZWRlZC4KKyAgICAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAg
ICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgIDxzdHlsZT4KKyAgICAgICAgICAgICNmaWx0
ZXJ0ZXN0Ym94IHsKKyAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICAgICAg
ICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7
CisgICAgICAgICAgICAgICAgLXdlYmtpdC1maWx0ZXI6IGN1c3RvbShub25lIHVybCgnLi4vcmVz
b3VyY2VzL3UtbWVzaC1ib3gtaXMtdW5pdC1zcXVhcmUuZnMnKSk7CisgICAgICAgICAgICB9Cisg
ICAgICAgIDwvc3R5bGU+CisgICAgPC9oZWFkPgorICAgIDxib2R5IG9ubG9hZD0icnVuVGVzdCgp
Ij4KKyAgICAgICAgPCEtLQorICAgICAgICAgICAgQSAxMDB4MTAwcHggcmVkIGRpdiBpcyBjb2xv
dXJlZCBncmVlbiBpZiB1X21lc2hCb3ggaXMgY29ycmVjdGx5IHNldCBhbmQKKyAgICAgICAgICAg
IHBhc3NlZCB0byB0aGUgc2hhZGVyLgorICAgICAgICAgICAgQXMgb2Ygbm93IHVfbWVzaEJveCBh
bHdheXMgcmV0dXJucyAoLTAuNSwgLTAuNSwgMSwgMSk7IHRoaXMgc2hhbGwgY2hhbmdlCisgICAg
ICAgICAgICB3aGVuIGZpbHRlciBtYXJnaW5zIHdpbGwgYmUgaW1wbGVtZW50ZWQsIHNlZToKKyAg
ICAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTQwMAor
ICAgICAgICAgICAgRmFpbHMgaWYgdGhlIGRpdiBzdGF5cyByZWQuCisgICAgICAgIC0tPgorICAg
ICAgICA8ZGl2IGlkPSJmaWx0ZXJ0ZXN0Ym94Ij48L2Rpdj4KKyAgICA8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0
ZXItdS1tZXNoLXNpemUtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9j
dXN0b20vY3VzdG9tLWZpbHRlci11LW1lc2gtc2l6ZS1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmZkYmNjM2UyM2UxNjIxNDc5YTIzNWVlZTc3ZDY2OTM4MDA3MWFjN2UKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItdS1tZXNo
LXNpemUtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDE2IEBACis8IWRvY3R5cGUgaHRtbD4KKzxo
dG1sPgorICAgIDxoZWFkPgorICAgICAgICA8dGl0bGU+VGVzdCB1X21lc2hCb3g8L3RpdGxlPgor
ICAgICAgICA8c3R5bGU+CisgICAgICAgICAgICAjZmlsdGVydGVzdGJveCB7CisgICAgICAgICAg
ICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgICAgICAgICB3aWR0aDogMTAwcHg7CisgICAg
ICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAsIDI1NSwgMCk7CisgICAgICAgICAg
ICB9CisgICAgICAgIDwvc3R5bGU+CisgICAgPC9oZWFkPgorICAgIDxib2R5IG9ubG9hZD0icnVu
VGVzdCgpIj4KKyAgICAgICAgPGRpdiBpZD0iZmlsdGVydGVzdGJveCI+PC9kaXY+CisgICAgPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3Rv
bS9jdXN0b20tZmlsdGVyLXUtbWVzaC1zaXplLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRl
cnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItdS1tZXNoLXNpemUuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMjgx
ZDg0YzUwYTJlMTAwNTEyNDhmMmFlNGE0NGI2ODM0ODYwODk2Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLXUtbWVzaC1zaXpl
Lmh0bWwKQEAgLTAsMCArMSwzNiBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVh
ZD4KKyAgICAgICAgPHRpdGxlPlRlc3QgdV9tZXNoU2l6ZTwvdGl0bGU+CisgICAgICAgIDxzY3Jp
cHQ+CisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgICAg
ICB3aW5kb3cudGVzdFJ1bm5lci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdENTU0N1c3RvbUZp
bHRlckVuYWJsZWQiLCAiMSIpOworICAgICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLm92
ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0V2ViR0xFbmFibGVkIiwgIjEiKTsKKyAgICAgICAgICAg
ICAgICB3aW5kb3cudGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgIC8vIFdlIG5lZWQgdG8gcnVuIHRoZSB0ZXN0cyBhZnRlciB0aGUgZG93bmxvYWRpbmcg
c3VjY2VlZGVkLgorICAgICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAg
ICAgICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAg
ICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAgICAgICAgPHN0eWxlPgorICAgICAgICAgICAgI2Zp
bHRlcnRlc3Rib3ggeworICAgICAgICAgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgICAg
ICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJl
ZDsKKyAgICAgICAgICAgICAgICAtd2Via2l0LWZpbHRlcjogY3VzdG9tKG5vbmUgdXJsKCcuLi9y
ZXNvdXJjZXMvdS1tZXNoLXNpemUuZnMnKSwgMTAgMjApOworICAgICAgICAgICAgfQorICAgICAg
ICA8L3N0eWxlPgorICAgIDwvaGVhZD4KKyAgICA8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cisg
ICAgICAgIDwhLS0KKyAgICAgICAgICAgIEEgMTAweDEwMHB4IHJlZCBkaXYgaXMgY29sb3VyZWQg
Z3JlZW4gaWYgdV9tZXNoU2l6ZSBpcyBjb3JyZWN0bHkgc2V0IGFuZAorICAgICAgICAgICAgcGFz
c2VkIHRvIHRoZSBzaGFkZXIuCisgICAgICAgICAgICBGYWlscyBpZiB0aGUgZGl2IHN0YXlzIHJl
ZC4KKyAgICAgICAgLS0+CisgICAgICAgIDxkaXYgaWQ9ImZpbHRlcnRlc3Rib3giPjwvZGl2Pgor
ICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZmlsdGVy
cy9jdXN0b20vY3VzdG9tLWZpbHRlci11LXRleHR1cmUtc2l6ZS1leHBlY3RlZC5odG1sIGIvTGF5
b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLXUtdGV4dHVyZS1zaXpl
LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTM2NmExZDgzMmE5ODY1MmVmNTA0OTcwN2MyZDQ5
ZGZiODY3N2I0NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9j
dXN0b20vY3VzdG9tLWZpbHRlci11LXRleHR1cmUtc2l6ZS1leHBlY3RlZC5odG1sCkBAIC0wLDAg
KzEsMTYgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDx0
aXRsZT5UZXN0IHVfdGV4dHVyZVNpemU8L3RpdGxlPgorICAgICAgICA8c3R5bGU+CisgICAgICAg
ICAgICAjZmlsdGVydGVzdGJveCB7CisgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAg
ICAgICAgICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1j
b2xvcjogcmdiKDAsIDI1NSwgMCk7CisgICAgICAgICAgICB9CisgICAgICAgIDwvc3R5bGU+Cisg
ICAgPC9oZWFkPgorICAgIDxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKyAgICAgICAgPGRpdiBp
ZD0iZmlsdGVydGVzdGJveCI+PC9kaXY+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLXUtdGV4dHVy
ZS1zaXplLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0
ZXItdS10ZXh0dXJlLXNpemUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNTkyMDZiMjQwYjhlMDA0NTU5OTY1
NmFhNDVlMTM3M2FlMmJhMzMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9m
aWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLXUtdGV4dHVyZS1zaXplLmh0bWwKQEAgLTAsMCAr
MSwzNiBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHRp
dGxlPlRlc3QgdV90ZXh0dXJlU2l6ZTwvdGl0bGU+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAg
ICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgICAgICB3aW5kb3cudGVz
dFJ1bm5lci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdENTU0N1c3RvbUZpbHRlckVuYWJsZWQi
LCAiMSIpOworICAgICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLm92ZXJyaWRlUHJlZmVy
ZW5jZSgiV2ViS2l0V2ViR0xFbmFibGVkIiwgIjEiKTsKKyAgICAgICAgICAgICAgICB3aW5kb3cu
dGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
IGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8vIFdl
IG5lZWQgdG8gcnVuIHRoZSB0ZXN0cyBhZnRlciB0aGUgZG93bmxvYWRpbmcgc3VjY2VlZGVkLgor
ICAgICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICAg
ICAgd2luZG93LnRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgfQorICAgICAg
ICA8L3NjcmlwdD4KKyAgICAgICAgPHN0eWxlPgorICAgICAgICAgICAgI2ZpbHRlcnRlc3Rib3gg
eworICAgICAgICAgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgICAgICAgICAgd2lkdGg6
IDEwMHB4OworICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKKyAgICAgICAg
ICAgICAgICAtd2Via2l0LWZpbHRlcjogY3VzdG9tKG5vbmUgdXJsKCcuLi9yZXNvdXJjZXMvdS10
ZXh0dXJlLXNpemUuZnMnKSk7CisgICAgICAgICAgICB9CisgICAgICAgIDwvc3R5bGU+CisgICAg
PC9oZWFkPgorICAgIDxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKyAgICAgICAgPCEtLQorICAg
ICAgICAgICAgQSAxMDB4MTAwcHggcmVkIGRpdiBpcyBjb2xvdXJlZCBncmVlbiBpZiB1X3RleHR1
cmVTaXplIGlzIGNvcnJlY3RseSBzZXQgYW5kCisgICAgICAgICAgICBwYXNzZWQgdG8gdGhlIHNo
YWRlci4KKyAgICAgICAgICAgIEZhaWxzIGlmIHRoZSBkaXYgc3RheXMgcmVkLgorICAgICAgICAt
LT4KKyAgICAgICAgPGRpdiBpZD0iZmlsdGVydGVzdGJveCI+PC9kaXY+CisgICAgPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0
b20tZmlsdGVyLXUtdGlsZS1zaXplLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2Zp
bHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItdS10aWxlLXNpemUtZXhwZWN0ZWQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5jZWNhMDY2ZjQ4ZDE1M2M2YzZjMDQ4ODAxODM5YTVjNmJlNTBhODE1Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVy
LXUtdGlsZS1zaXplLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPCFkb2N0eXBlIGh0
bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHRpdGxlPlRlc3QgdV90aWxlU2l6ZTwv
dGl0bGU+CisgICAgICAgIDxzdHlsZT4KKyAgICAgICAgICAgICNmaWx0ZXJ0ZXN0Ym94IHsKKyAg
ICAgICAgICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICAgICAgICAgIHdpZHRoOiAxMDBw
eDsKKyAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCwgMjU1LCAwKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgPC9zdHlsZT4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHkgb25s
b2FkPSJydW5UZXN0KCkiPgorICAgICAgICA8ZGl2IGlkPSJmaWx0ZXJ0ZXN0Ym94Ij48L2Rpdj4K
KyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRl
cnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItdS10aWxlLXNpemUuaHRtbCBiL0xheW91dFRlc3RzL2Nz
czMvZmlsdGVycy9jdXN0b20vY3VzdG9tLWZpbHRlci11LXRpbGUtc2l6ZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjg5ODA0OTc4NTRjYjRiOTE5NzU1ZjJjNmRlYTFmZDdmYTAwZTBkNTQKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9tL2N1c3RvbS1maWx0ZXItdS10
aWxlLXNpemUuaHRtbApAQCAtMCwwICsxLDM2IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgor
ICAgIDxoZWFkPgorICAgICAgICA8dGl0bGU+VGVzdCB1X3RpbGVTaXplPC90aXRsZT4KKyAgICAg
ICAgPHNjcmlwdD4KKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAg
ICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0Q1NT
Q3VzdG9tRmlsdGVyRW5hYmxlZCIsICIxIik7CisgICAgICAgICAgICAgICAgd2luZG93LnRlc3RS
dW5uZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRXZWJHTEVuYWJsZWQiLCAiMSIpOworICAg
ICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gcnVuVGVzdCgpCisgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgLy8gV2UgbmVlZCB0byBydW4gdGhlIHRlc3RzIGFmdGVyIHRoZSBkb3du
bG9hZGluZyBzdWNjZWVkZWQuCisgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQorICAgICAgICAgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cisg
ICAgICAgICAgICB9CisgICAgICAgIDwvc2NyaXB0PgorICAgICAgICA8c3R5bGU+CisgICAgICAg
ICAgICAjZmlsdGVydGVzdGJveCB7CisgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAg
ICAgICAgICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1j
b2xvcjogcmVkOworICAgICAgICAgICAgICAgIC13ZWJraXQtZmlsdGVyOiBjdXN0b20obm9uZSB1
cmwoJy4uL3Jlc291cmNlcy91LXRpbGUtc2l6ZS5mcycpLCAxMCAyMCk7CisgICAgICAgICAgICB9
CisgICAgICAgIDwvc3R5bGU+CisgICAgPC9oZWFkPgorICAgIDxib2R5IG9ubG9hZD0icnVuVGVz
dCgpIj4KKyAgICAgICAgPCEtLQorICAgICAgICAgICAgQSAxMDB4MTAwcHggcmVkIGRpdiBpcyBj
b2xvdXJlZCBncmVlbiBpZiB1X3RpbGVTaXplIGlzIGNvcnJlY3RseSBzZXQgYW5kCisgICAgICAg
ICAgICBwYXNzZWQgdG8gdGhlIHNoYWRlci4KKyAgICAgICAgICAgIEZhaWxzIGlmIHRoZSBkaXYg
c3RheXMgcmVkLgorICAgICAgICAtLT4KKyAgICAgICAgPGRpdiBpZD0iZmlsdGVydGVzdGJveCI+
PC9kaXY+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3Nz
My9maWx0ZXJzL3Jlc291cmNlcy91LW1lc2gtYm94LWlzLXVuaXQtc3F1YXJlLmZzIGIvTGF5b3V0
VGVzdHMvY3NzMy9maWx0ZXJzL3Jlc291cmNlcy91LW1lc2gtYm94LWlzLXVuaXQtc3F1YXJlLmZz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmNhOGQwNjgxZWY3ZjIxZjRkZWIzMjYxMTNiMTlkMzQ1OWYyMjg4OWYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvcmVzb3VyY2VzL3UtbWVz
aC1ib3gtaXMtdW5pdC1zcXVhcmUuZnMKQEAgLTAsMCArMSwxOSBAQAorLy8gVGVzdCB3aGV0aGVy
IHVfbWVzaEJveCBpcyBjb3JyZWN0bHkgc2V0OyBjaGFuZ2UgZnJhZ21lbnQgY29sb3IgdG8gZ3Jl
ZW4gaWYgeWVzLgorcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7Cit1bmlmb3JtIHZlYzQgdV9tZXNo
Qm94OworCitib29sIGFyZUZsb2F0c0VxdWFsKGZsb2F0IGEsIGZsb2F0IGIpCit7CisgICAgY29u
c3QgZmxvYXQgZXBzaWxvbiA9IDAuMDAxOworICAgIHJldHVybiAoYSA+IChiIC0gZXBzaWxvbikp
ICYmIChhIDwgKGIgKyBlcHNpbG9uKSk7Cit9CisKK2Jvb2wgYXJlVmVjdG9yc0VxdWFsKHZlYzQg
YSwgdmVjNCBiKQoreworICAgIHJldHVybiBhcmVGbG9hdHNFcXVhbChhLngsIGIueCkgJiYgYXJl
RmxvYXRzRXF1YWwoYS55LCBiLnkpICYmIGFyZUZsb2F0c0VxdWFsKGEueiwgYi56KSAmJiBhcmVG
bG9hdHNFcXVhbChhLncsIGIudyk7Cit9CisKK3ZvaWQgbWFpbigpCit7CisgICAgZ2xfRnJhZ0Nv
bG9yID0gYXJlVmVjdG9yc0VxdWFsKHVfbWVzaEJveCwgdmVjNCgtMC41LCAtMC41LCAxLjAsIDEu
MCkpID8gdmVjNCgwLjAsIDEuMCwgMC4wLCAxLjApIDogdmVjNCgxLjAsIDAuMCwgMC4wLCAxLjAp
OworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3Jlc291cmNlcy91LW1l
c2gtc2l6ZS5mcyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9yZXNvdXJjZXMvdS1tZXNoLXNp
emUuZnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZmJmZTM0Y2ViYTg5MTE2MTBjYTkxNTY5ODdhOTdjODFhOTljOTBi
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9yZXNvdXJjZXMv
dS1tZXNoLXNpemUuZnMKQEAgLTAsMCArMSwxOSBAQAorLy8gVGVzdCB3aGV0aGVyIHVfbWVzaFNp
emUgaXMgY29ycmVjdGx5IHNldDsgY2hhbmdlIGZyYWdtZW50IHRvIGNvbG9yIGdyZWVuIGlmIHll
cy4KK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwordW5pZm9ybSB2ZWMyIHVfbWVzaFNpemU7CisK
K2Jvb2wgYXJlRmxvYXRzRXF1YWwoZmxvYXQgYSwgZmxvYXQgYikKK3sKKyAgICBjb25zdCBmbG9h
dCBlcHNpbG9uID0gMC4wMDE7CisgICAgcmV0dXJuIChhID4gKGIgLSBlcHNpbG9uKSkgJiYgKGEg
PCAoYiArIGVwc2lsb24pKTsKK30KKworYm9vbCBhcmVWZWN0b3JzRXF1YWwodmVjMiBhLCB2ZWMy
IGIpCit7CisgICAgcmV0dXJuIGFyZUZsb2F0c0VxdWFsKGEueCwgYi54KSAmJiBhcmVGbG9hdHNF
cXVhbChhLnksIGIueSk7Cit9CisKK3ZvaWQgbWFpbigpCit7CisgICAgZ2xfRnJhZ0NvbG9yID0g
YXJlVmVjdG9yc0VxdWFsKHVfbWVzaFNpemUsIHZlYzIoMjAuMCwgMTAuMCkpID8gdmVjNCgwLjAs
IDEuMCwgMC4wLCAxLjApIDogdmVjNCgxLjAsIDAuMCwgMC4wLCAxLjApOworfQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3Jlc291cmNlcy91LXRleHR1cmUtc2l6ZS5mcyBi
L0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9yZXNvdXJjZXMvdS10ZXh0dXJlLXNpemUuZnMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMTc1MTVkZjA1NDNmMDE4MjIxNGIxNzMwZmRmY2U4MmE5MjYxMWQ1ZQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9yZXNvdXJjZXMvdS10ZXh0dXJl
LXNpemUuZnMKQEAgLTAsMCArMSwxOSBAQAorLy8gVGVzdCB3aGV0aGVyIHVfdGV4dHVyZVNpemUg
aXMgY29ycmVjdGx5IHNldDsgY2hhbmdlIGZyYWdtZW50IGNvbG9yIHRvIGdyZWVuIGlmIHllcy4K
K3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwordW5pZm9ybSB2ZWMyIHVfdGV4dHVyZVNpemU7CisK
K2Jvb2wgYXJlRmxvYXRzRXF1YWwoZmxvYXQgYSwgZmxvYXQgYikKK3sKKyAgICBjb25zdCBmbG9h
dCBlcHNpbG9uID0gMC4wMDE7CisgICAgcmV0dXJuIChhID4gKGIgLSBlcHNpbG9uKSkgJiYgKGEg
PCAoYiArIGVwc2lsb24pKTsKK30KKworYm9vbCBhcmVWZWN0b3JzRXF1YWwodmVjMiBhLCB2ZWMy
IGIpCit7CisgICAgcmV0dXJuIGFyZUZsb2F0c0VxdWFsKGEueCwgYi54KSAmJiBhcmVGbG9hdHNF
cXVhbChhLnksIGIueSk7Cit9CisKK3ZvaWQgbWFpbigpCit7CisgICAgZ2xfRnJhZ0NvbG9yID0g
YXJlVmVjdG9yc0VxdWFsKHVfdGV4dHVyZVNpemUsIHZlYzIoMTAwLjAsIDEwMC4wKSkgPyB2ZWM0
KDAuMCwgMS4wLCAwLjAsIDEuMCkgOiB2ZWM0KDEuMCwgMC4wLCAwLjAsIDEuMCk7Cit9CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvcmVzb3VyY2VzL3UtdGlsZS1zaXplLmZz
IGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3Jlc291cmNlcy91LXRpbGUtc2l6ZS5mcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mYmYwOGEzNjZkNzk1NjQ3ZjUyN2YzYzQ0ZDU4MWJjMjUzMTAzYzE1Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3Jlc291cmNlcy91LXRpbGUtc2l6
ZS5mcwpAQCAtMCwwICsxLDE5IEBACisvLyBUZXN0IHdoZXRoZXIgdV90aWxlU2l6ZSBpcyBjb3Jy
ZWN0bHkgc2V0OyBjaGFuZ2UgZnJhZ21lbnQgY29sb3IgdG8gZ3JlZW4gaWYgeWVzLgorcHJlY2lz
aW9uIG1lZGl1bXAgZmxvYXQ7Cit1bmlmb3JtIHZlYzIgdV90aWxlU2l6ZTsKKworYm9vbCBhcmVG
bG9hdHNFcXVhbChmbG9hdCBhLCBmbG9hdCBiKQoreworICAgIGNvbnN0IGZsb2F0IGVwc2lsb24g
PSAwLjAwMTsKKyAgICByZXR1cm4gKGEgPiAoYiAtIGVwc2lsb24pKSAmJiAoYSA8IChiICsgZXBz
aWxvbikpOworfQorCitib29sIGFyZVZlY3RvcnNFcXVhbCh2ZWMyIGEsIHZlYzIgYikKK3sKKyAg
ICByZXR1cm4gYXJlRmxvYXRzRXF1YWwoYS54LCBiLngpICYmIGFyZUZsb2F0c0VxdWFsKGEueSwg
Yi55KTsKK30KKwordm9pZCBtYWluKCkKK3sKKyAgICBnbF9GcmFnQ29sb3IgPSBhcmVWZWN0b3Jz
RXF1YWwodV90aWxlU2l6ZSwgdmVjMigwLjA1LCAwLjEwKSkgPyB2ZWM0KDAuMCwgMS4wLCAwLjAs
IDEuMCkgOiB2ZWM0KDEuMCwgMC4wLCAwLjAsIDEuMCk7Cit9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>