<?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>102230</bug_id>
          
          <creation_ts>2012-11-14 07:26:29 -0800</creation_ts>
          <short_desc>[v8] Improve worker.postMessage() string performance: avoid utf8 conversion</short_desc>
          <delta_ts>2012-12-04 20:29:24 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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>
          <dependson>96818</dependson>
    
    <dependson>102243</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="noel gordon">noel.gordon</reporter>
          <assigned_to name="noel gordon">noel.gordon</assigned_to>
          <cc>abarth</cc>
    
    <cc>alecflett</cc>
    
    <cc>dcarney</cc>
    
    <cc>eric</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>jsbell</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>766876</commentid>
    <comment_count>0</comment_count>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2012-11-14 07:26:29 -0800</bug_when>
    <thetext>SerializedScriptValue uses of v8::String::Utf8Value stringValue(value) is hot code transferring strings to/from workers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766878</commentid>
    <comment_count>1</comment_count>
      <attachid>174155</attachid>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2012-11-14 07:30:17 -0800</bug_when>
    <thetext>Created attachment 174155
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766941</commentid>
    <comment_count>2</comment_count>
      <attachid>174155</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-14 08:46:09 -0800</bug_when>
    <thetext>Comment on attachment 174155
Patch

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

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:334
&gt; +        doWriteUint32(static_cast&lt;uint32_t&gt;(length * 2));

2 -&gt; sizeof(UChar) ?

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:335
&gt; +        ensureSpace(length * 2);

Maybe we should put &quot;length * 2&quot; into a local variable since we use it a bunch?  Perhaps size?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766952</commentid>
    <comment_count>3</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-11-14 08:54:53 -0800</bug_when>
    <thetext>I filed https://bugs.webkit.org/show_bug.cgi?id=102243 to track the issue this will cause with IndexedDB. We could land this first, but ideally 102243 would land at the same time or within a few days.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766953</commentid>
    <comment_count>4</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-11-14 08:58:13 -0800</bug_when>
    <thetext>wireFormatVersion (line 244) needs to be incremented.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767026</commentid>
    <comment_count>5</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-11-14 10:32:03 -0800</bug_when>
    <thetext>Please wait for bug 96818 so you have a place to add tests and support backwards-compatible changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771563</commentid>
    <comment_count>6</comment_count>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2012-11-19 23:18:28 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; wireFormatVersion (line 244) needs to be incremented.

Considering bug 72198 and bug 76803, both of which added new serialization tag definitions, then why increment?  Seems we&apos;ve never done so before.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771929</commentid>
    <comment_count>7</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-11-20 09:29:23 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #4)
&gt; &gt; wireFormatVersion (line 244) needs to be incremented.
&gt; 
&gt; Considering bug 72198 and bug 76803, both of which added new serialization tag definitions, then why increment?  Seems we&apos;ve never done so before.

The scenario we need to account for is:

* User installs build N+1
* User visits site using IndexedDB which writes SSVs to disk
* User &quot;downgrades&quot; to build N, without removing the &quot;profile&quot; (cookies, DBs, etc)
* User visits site; IndexedDB opens the backing store; some SSVs can&apos;t be parsed, surfaced as seemingly random data errors or inconsistencies

This scenario is unfortunately common enough that we&apos;ve had to account for it by detecting the downgrade scenario. Our response in the IndexedDB code is rather severe (blow away the database) but the alternative is to block that origin&apos;s use of IDB, or surface what appears to web apps as data corruption.

The frequency of this scenario was not apparent to us until recently, or we would have implemented code such as https://bugs.webkit.org/show_bug.cgi?id=102243 earlier.

Suggestions for alternate approaches are welcome.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>773906</commentid>
    <comment_count>8</comment_count>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2012-11-22 06:35:13 -0800</bug_when>
    <thetext>Thanks Josuha, I suppose IDB is like a really big cookie and users can blow their cookies (and IDB&apos;s) away any time. Applications have to deal with it: IDB storage is persistent, but it&apos;s not permanent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>773914</commentid>
    <comment_count>9</comment_count>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2012-11-22 06:40:31 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 174155 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=174155&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:334
&gt; &gt; +        doWriteUint32(static_cast&lt;uint32_t&gt;(length * 2));
&gt; 
&gt; 2 -&gt; sizeof(UChar) ?

Done.

&gt; &gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:335
&gt; &gt; +        ensureSpace(length * 2);
&gt; 
&gt; Maybe we should put &quot;length * 2&quot; into a local variable since we use it a bunch?  Perhaps size?

Good suggestion, I used size.  I also had to account for the length being VarInt encoded when working out if a paddingTag should be added.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>773919</commentid>
    <comment_count>10</comment_count>
      <attachid>175667</attachid>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2012-11-22 06:49:05 -0800</bug_when>
    <thetext>Created attachment 175667
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778439</commentid>
    <comment_count>11</comment_count>
      <attachid>175667</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-11-28 15:54:26 -0800</bug_when>
    <thetext>Comment on attachment 175667
Patch

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

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:247
&gt; +// Version 1: Version numbers manifested in space-time.

How about 
Version 0: Initial version, without explicit support for version numbers.
Version 1: support for object references (cycle detection)
Version 2:...

&gt; LayoutTests/platform/chromium/fast/storage/serialized-script-value.html:149
&gt; +var unicodeObject = {a: &apos;a&apos;, u: String.fromCharCode(0x03B1,0x03B2)};

you&apos;re going to need to add a backwards-compatible test here too - you&apos;ll have to run the test without your patch to generate the value first, then set the 3rd parameter to testSerialization to &apos;true&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778591</commentid>
    <comment_count>12</comment_count>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2012-11-28 18:30:50 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 175667 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=175667&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:247
&gt; &gt; +// Version 1: Version numbers manifested in space-time.
&gt; 
&gt; How about 
&gt; Version 0: Initial version, without explicit support for version numbers.
&gt; Version 1: support for object references (cycle detection)
&gt; Version 2:...

How about (refer comment 6) I just write // Version 2: Added StringUCharTag for UChar v8 strings. since that&apos;s the only real fact I have.  &quot;support for object references (cycle detection)&quot; does not cover what happened before version 2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778793</commentid>
    <comment_count>13</comment_count>
      <attachid>176668</attachid>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2012-11-29 00:48:59 -0800</bug_when>
    <thetext>Created attachment 176668
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778798</commentid>
    <comment_count>14</comment_count>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2012-11-29 00:53:46 -0800</bug_when>
    <thetext>(In reply to comment #11)

&gt; &gt; LayoutTests/platform/chromium/fast/storage/serialized-script-value.html:149
&gt; &gt; +var unicodeObject = {a: &apos;a&apos;, u: String.fromCharCode(0x03B1,0x03B2)};
&gt; 
&gt; you&apos;re going to need to add a backwards-compatible test here too - you&apos;ll have to run the test without your patch to generate the value first, then set the 3rd parameter to testSerialization to &apos;true&apos;

ok, I grabbed data for the test without my patch, and added that old data as the third argument of the test.  Didn&apos;t use a &apos;true&apos;, hope this is correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778802</commentid>
    <comment_count>15</comment_count>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2012-11-29 01:00:23 -0800</bug_when>
    <thetext>(In reply to comment #14)
Also fixed the existing test on http://trac.webkit.org/changeset/136085 so I could grab the data.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779695</commentid>
    <comment_count>16</comment_count>
      <attachid>176875</attachid>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2012-11-29 18:09:10 -0800</bug_when>
    <thetext>Created attachment 176875
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780364</commentid>
    <comment_count>17</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-11-30 13:28:41 -0800</bug_when>
    <thetext>thanks for updating the tests - they lgtm now. (and yes, not sure why I thought the 3rd param was true/false)

(I&apos;m realizing that what we really need is to support a whole list of &quot;oldFormat&quot; rather than just one - i.e. we should be supporting all the 0x01-prefixed values here. But you don&apos;t need to address that in this patch)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783099</commentid>
    <comment_count>18</comment_count>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2012-12-04 16:44:04 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; thanks for updating the tests - they lgtm now. (and yes, not sure why I thought the 3rd param was true/false)

: ) no worries.

&gt; (I&apos;m realizing that what we really need is to support a whole list of &quot;oldFormat&quot; rather than just one - i.e. we should be supporting all the 0x01-prefixed values here. But you don&apos;t need to address that in this patch)

Indeed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783102</commentid>
    <comment_count>19</comment_count>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2012-12-04 16:44:58 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; I filed https://bugs.webkit.org/show_bug.cgi?id=102243 to track the issue this will cause with IndexedDB. We could land this first, but ideally 102243 would land at the same time or within a few days.

So is there anything more I need do here Josuha?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783105</commentid>
    <comment_count>20</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-12-04 16:47:30 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; So is there anything more I need do here Josuha?

Not that I know of - I&apos;d say go ahead and land it! I have 102243 ready to go... apart from tests and those will probably have to live in Chromium anyway. Users downgrading w/o deleting their profiles is not supported, just common enough that I want to be proactive so we don&apos;t have to land these together.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783118</commentid>
    <comment_count>21</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-12-04 16:57:39 -0800</bug_when>
    <thetext>This looks reasonable, but I would love to have Dan Carney comment, given that he&apos;s been working in the v8-specific 8-bit string code so much lately.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783121</commentid>
    <comment_count>22</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-12-04 16:59:19 -0800</bug_when>
    <thetext>Actually, this has little to do with v8-8bit strings, so Dan&apos;s comments although welcome, are not necessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783124</commentid>
    <comment_count>23</comment_count>
      <attachid>176875</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-12-04 17:02:40 -0800</bug_when>
    <thetext>Comment on attachment 176875
Patch

If Alec says LGTM, then LGTM too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783313</commentid>
    <comment_count>24</comment_count>
      <attachid>176875</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-04 20:29:18 -0800</bug_when>
    <thetext>Comment on attachment 176875
Patch

Clearing flags on attachment: 176875

Committed r136624: &lt;http://trac.webkit.org/changeset/136624&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783314</commentid>
    <comment_count>25</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-04 20:29:24 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174155</attachid>
            <date>2012-11-14 07:30:17 -0800</date>
            <delta_ts>2012-11-22 06:48:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102230-20121115022815.patch</filename>
            <type>text/plain</type>
            <size>4853</size>
            <attacher name="noel gordon">noel.gordon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0MTU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzU1YzMwZjU2ZDcwOTEx
YjhmN2Q0ZGE4NDE1MTNlMDAyNTQ3YzVmMi4uNjhmM2UwZTk0MjlhOTFkMmM2NGQzMDUzYTNhYjI2
OTYwNzE0ODEwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTExLTE0ICBOb2Vs
IEdvcmRvbiAgPG5vZWwuZ29yZG9uQGdtYWlsLmNvbT4KKworICAgICAgICBJbXByb3ZlIHdvcmtl
ci5Qb3N0TWVzc2FnZShzdHJpbmcpIHBlcmZvcm1hbmNlOiBhdm9pZCB1dGY4IHN0cmluZyBjb252
ZXJzaW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDIyMzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
dm9pZCB1dGY4IGNvbnZlcnNpb24gd2hlbiBzZXJpYWxpemluZyBzdHJpbmdzLiBQcm92aWRlIEFz
Y2lpIGFuZCBVQ2hhciB3cml0ZXJzCisgICAgICAgIGZvciB2OCBzdGluZ3MgZm9yIHNlcmlhbGl6
YXRpb24gYW5kIHByb3ZpZGUgYSBVQ2hhciByZWFkZXIgZm9yIGRlc2VyaWFsaXphdGlvbi4KKyAg
ICAgICAgVXNlIGEgbmV3IHNlcmlhbGl6YXRpb24gdGFnIChTdHJpbmdVQ2hhclRhZykgZm9yIFVD
aGFyIHN0cmluZ3MuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBDb3ZlcmVkIGJ5IGV4aXNpdGlu
ZyB0ZXN0cy4gIFdvcmsgaW4gcHJvZ3Jlc3MuCisKKyAgICAgICAgKiBiaW5kaW5ncy92OC9TZXJp
YWxpemVkU2NyaXB0VmFsdWUuY3BwOgorCiAyMDEyLTExLTA5ICBEZWFuIEphY2tzb24gIDxkaW5v
QGFwcGxlLmNvbT4KIAogICAgICAgICBTdXBwb3J0IGxpc3Qgb2YgdHJhY2tzIGluIGNhcHRpb24g
bWVkaWEgY29udHJvbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Nl
cmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TZXJp
YWxpemVkU2NyaXB0VmFsdWUuY3BwCmluZGV4IGQxMmQwODUzZDQ0N2ZkNjMxN2Y1NjAyNDY2MDgy
Yzk4YTc3NWY4MDMuLmMzZjA5OTRmYzU3OTIwZWY3MTYwMDcwZDNjZTM4YjNiZTNkNzJmOTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZh
bHVlLmNwcApAQCAtMTg0LDYgKzE4NCw3IEBAIGVudW0gU2VyaWFsaXphdGlvblRhZyB7CiAgICAg
VHJ1ZVRhZyA9ICdUJywgLy8gLT4gPHRydWU+CiAgICAgRmFsc2VUYWcgPSAnRicsIC8vIC0+IDxm
YWxzZT4KICAgICBTdHJpbmdUYWcgPSAnUycsIC8vIHN0cmluZzpSYXdTdHJpbmcgLT4gc3RyaW5n
CisgICAgU3RyaW5nVUNoYXJUYWcgPSAnYycsIC8vIHN0cmluZzpSYXdVQ2hhclN0cmluZyAtPiBz
dHJpbmcKICAgICBJbnQzMlRhZyA9ICdJJywgLy8gdmFsdWU6WmlnWmFnLWVuY29kZWQgaW50MzIg
LT4gSW50ZWdlcgogICAgIFVpbnQzMlRhZyA9ICdVJywgLy8gdmFsdWU6dWludDMyX3QgLT4gSW50
ZWdlcgogICAgIERhdGVUYWcgPSAnRCcsIC8vIHZhbHVlOmRvdWJsZSAtPiBEYXRlIChyZWYpCkBA
IC0zMDgsNiArMzA5LDM3IEBAIHB1YmxpYzoKICAgICAgICAgZG9Xcml0ZVN0cmluZyhkYXRhLCBs
ZW5ndGgpOwogICAgIH0KIAorICAgIHZvaWQgd3JpdGVBc2NpaVN0cmluZyh2ODo6SGFuZGxlPHY4
OjpTdHJpbmc+JiBzdHJpbmcpCisgICAgeworICAgICAgICBpbnQgbGVuZ3RoID0gc3RyaW5nLT5M
ZW5ndGgoKTsKKyAgICAgICAgQVNTRVJUKGxlbmd0aCA+PSAwKTsKKworICAgICAgICBhcHBlbmQo
U3RyaW5nVGFnKTsKKyAgICAgICAgZG9Xcml0ZVVpbnQzMihzdGF0aWNfY2FzdDx1aW50MzJfdD4o
bGVuZ3RoKSk7CisgICAgICAgIGVuc3VyZVNwYWNlKGxlbmd0aCk7CisKKyAgICAgICAgY2hhciog
YnVmZmVyID0gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oYnl0ZUF0KG1fcG9zaXRpb24pKTsKKyAg
ICAgICAgc3RyaW5nLT5Xcml0ZUFzY2lpKGJ1ZmZlciwgMCwgbGVuZ3RoLCB2OFN0cmluZ1dyaXRl
T3B0aW9ucygpKTsKKyAgICAgICAgbV9wb3NpdGlvbiArPSBsZW5ndGg7CisgICAgfQorCisgICAg
dm9pZCB3cml0ZVVDaGFyU3RyaW5nKHY4OjpIYW5kbGU8djg6OlN0cmluZz4mIHN0cmluZykKKyAg
ICB7CisgICAgICAgIGludCBsZW5ndGggPSBzdHJpbmctPkxlbmd0aCgpOworICAgICAgICBBU1NF
UlQobGVuZ3RoID49IDApOworCisgICAgICAgIGlmICghKG1fcG9zaXRpb24gJiAxKSkKKyAgICAg
ICAgICAgIGFwcGVuZChQYWRkaW5nVGFnKTsKKyAgICAgICAgYXBwZW5kKFN0cmluZ1VDaGFyVGFn
KTsKKyAgICAgICAgZG9Xcml0ZVVpbnQzMihzdGF0aWNfY2FzdDx1aW50MzJfdD4obGVuZ3RoICog
MikpOworICAgICAgICBlbnN1cmVTcGFjZShsZW5ndGggKiAyKTsKKworICAgICAgICBBU1NFUlQo
IShtX3Bvc2l0aW9uICYgMSkpOworICAgICAgICB1aW50MTZfdCogYnVmZmVyID0gcmVpbnRlcnBy
ZXRfY2FzdDx1aW50MTZfdCo+KGJ5dGVBdChtX3Bvc2l0aW9uKSk7CisgICAgICAgIHN0cmluZy0+
V3JpdGUoYnVmZmVyLCAwLCBsZW5ndGgsIHY4U3RyaW5nV3JpdGVPcHRpb25zKCkpOworICAgICAg
ICBtX3Bvc2l0aW9uICs9IGxlbmd0aCAqIDI7CisgICAgfQorCiAgICAgdm9pZCB3cml0ZVN0cmlu
Z09iamVjdChjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoKQogICAgIHsKICAgICAgICAgQVNT
RVJUKGxlbmd0aCA+PSAwKTsKQEAgLTU5OCw2ICs2MzAsMTYgQEAgcHJpdmF0ZToKICAgICAgICAg
bV9idWZmZXIuZ3JvdygobV9wb3NpdGlvbiArIGV4dHJhICsgMSkgLyAyKTsgLy8gIisgMSIgdG8g
cm91bmQgdXAuCiAgICAgfQogCisgICAgaW50IHY4U3RyaW5nV3JpdGVPcHRpb25zKCkKKyAgICB7
CisgICAgICAgIHJldHVybiB2ODo6U3RyaW5nOjpOT19OVUxMX1RFUk1JTkFUSU9OIHwgdjg6OlN0
cmluZzo6UFJFU0VSVkVfQVNDSUlfTlVMTDsKKyAgICB9CisKKyAgICBpbnQgdjhTdHJpbmdXcml0
ZU9wdGlvbnNXaXRoRmxhdHRlbigpCisgICAgeworICAgICAgICByZXR1cm4gdjg6OlN0cmluZzo6
SElOVF9NQU5ZX1dSSVRFU19FWFBFQ1RFRCB8IHY4U3RyaW5nV3JpdGVPcHRpb25zKCk7CisgICAg
fQorCiAgICAgdm9pZCBmaWxsSG9sZSgpCiAgICAgewogICAgICAgICBDT01QSUxFX0FTU0VSVChz
aXplb2YoQnVmZmVyVmFsdWVUeXBlKSA9PSAyLCBCdWZmZXJWYWx1ZVR5cGVJc1R3b0J5dGVzKTsK
QEAgLTk2OSw4ICsxMDExLDExIEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHdyaXRlU3RyaW5nKHY4
OjpIYW5kbGU8djg6OlZhbHVlPiB2YWx1ZSkKICAgICB7Ci0gICAgICAgIHY4OjpTdHJpbmc6OlV0
ZjhWYWx1ZSBzdHJpbmdWYWx1ZSh2YWx1ZSk7Ci0gICAgICAgIG1fd3JpdGVyLndyaXRlU3RyaW5n
KCpzdHJpbmdWYWx1ZSwgc3RyaW5nVmFsdWUubGVuZ3RoKCkpOworICAgICAgICB2ODo6SGFuZGxl
PHY4OjpTdHJpbmc+IHN0cmluZyA9IHZhbHVlLkFzPHY4OjpTdHJpbmc+KCk7CisgICAgICAgIGlm
ICghc3RyaW5nLT5MZW5ndGgoKSB8fCAhc3RyaW5nLT5NYXlDb250YWluTm9uQXNjaWkoKSkKKyAg
ICAgICAgICAgIG1fd3JpdGVyLndyaXRlQXNjaWlTdHJpbmcoc3RyaW5nKTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgbV93cml0ZXIud3JpdGVVQ2hhclN0cmluZyhzdHJpbmcpOwogICAgIH0K
IAogICAgIHZvaWQgd3JpdGVTdHJpbmdPYmplY3Qodjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVl
KQpAQCAtMTMxOSw2ICsxMzY0LDEwIEBAIHB1YmxpYzoKICAgICAgICAgICAgIGlmICghcmVhZFN0
cmluZyh2YWx1ZSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgU3RyaW5nVUNoYXJUYWc6CisgICAgICAgICAgICBpZiAoIXJl
YWRVQ2hhclN0cmluZyh2YWx1ZSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgU3RyaW5nT2JqZWN0VGFnOgogICAgICAgICAg
ICAgaWYgKCFyZWFkU3RyaW5nT2JqZWN0KHZhbHVlKSkKICAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CkBAIC0xNTQ5LDYgKzE1OTgsMTkgQEAgcHJpdmF0ZToKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgfQogCisgICAgYm9vbCByZWFkVUNoYXJTdHJpbmcodjg6OkhhbmRsZTx2ODo6VmFs
dWU+KiB2YWx1ZSkKKyAgICB7CisgICAgICAgIHVpbnQzMl90IGxlbmd0aDsKKyAgICAgICAgaWYg
KCFkb1JlYWRVaW50MzIoJmxlbmd0aCkgfHwgKGxlbmd0aCAmIDEpKQorICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgICAgICBpZiAobV9wb3NpdGlvbiArIGxlbmd0aCA+IG1fbGVuZ3RoKQor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBBU1NFUlQoISgobV9idWZmZXIgKyBt
X3Bvc2l0aW9uKSAmIDEpKTsKKyAgICAgICAgKnZhbHVlID0gdjg6OlN0cmluZzo6TmV3KHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDE2X3QqPihtX2J1ZmZlciArIG1fcG9zaXRpb24pLCBsZW5n
dGggLyAyKTsKKyAgICAgICAgbV9wb3NpdGlvbiArPSBsZW5ndGg7CisgICAgICAgIHJldHVybiB0
cnVlOworICAgIH0KKwogICAgIGJvb2wgcmVhZFN0cmluZ09iamVjdCh2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4qIHZhbHVlKQogICAgIHsKICAgICAgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHN0cmlu
Z1ZhbHVlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175667</attachid>
            <date>2012-11-22 06:49:05 -0800</date>
            <delta_ts>2012-11-29 00:48:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102230-20121123014649.patch</filename>
            <type>text/plain</type>
            <size>16979</size>
            <attacher name="noel gordon">noel.gordon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1MTIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWJhZjU5YjdmMWViZWY4
ODEzZWM4ZDRlMTA0OGVlMjEyNzE4MDQ3YS4uODU2YmJlNzMyZjhjY2U0NTg2MDFhNTJlYTJkYjQx
ZmMwOWJmNzMyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTExLTIyICBOb2Vs
IEdvcmRvbiAgPG5vZWwuZ29yZG9uQGdtYWlsLmNvbT4KKworICAgICAgICBbdjhdIEltcHJvdmUg
d29ya2VyLnBvc3RNZXNzYWdlKCkgc3RyaW5nIHBlcmZvcm1hbmNlOiBhdm9pZCB1dGY4IHN0cmlu
ZyBjb252ZXJzaW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDIyMzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBdm9pZCB1dGY4IGNvbnZlcnNpb24gd2hlbiBzZXJpYWxpemluZyBzdHJpbmdzIHdpdGgg
U2VyaWFsaXplZFNjcmlwdFZhbHVlLiBQcm92aWRlIAorICAgICAgICBBc2NpaSBhbmQgVUNoYXIg
d3JpdGVycyBmb3Igdjggc3RyaW5nIHNlcmlhbGl6YXRpb24gYW5kIHByb3ZpZGUgYSBVQ2hhciBy
ZWFkZXIgZm9yCisgICAgICAgIGRlc2VyaWFsaXphdGlvbi4gRGVmaW5lL3VzZSBzZXJpYWxpemF0
aW9uIFN0cmluZ1VDaGFyVGFnIHRvIGluZGljYXRlIFVDaGFyIHN0cmluZ3MKKyAgICAgICAgaW4g
dGhlIHdpcmUgZm9ybWF0LiBJbmNyZW1lbnQgdGhlIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSB3aXJl
IGZvcm1hdCB2ZXJzaW9uLgorCisgICAgICAgIEluIHRoZSB3aXJlIGZvcm1hdCwgU3RyaW5nVUNo
YXJUYWcgaXMgZm9sbG93ZWQgYnkgdGhlIHN0cmluZyBsZW5ndGggaW4gYnl0ZXMsIHRoZW4KKyAg
ICAgICAgdGhlIGxlbmd0aC8yIFVDaGFycyBvZiB0aGUgc3RyaW5nLgorCisgICAgICAgIE5vdGUg
dGhlIHN0cmluZyBsZW5ndGggaXMgVmFySW50IGVuY29kZWQuIER1cmluZyBzZXJpYWxpemF0aW9u
LCBjb21wdXRlIHRoZSBudW1iZXIKKyAgICAgICAgb2YgYnl0ZXMgdXNlZCB0byBlbmNvZGUgdGhl
IGxlbmd0aCBhbmQgcHJlcGVuZCBhIFBhZGRpbmdUYWcgaWYgbmVlZGVkIHNvIHRoZSBVQ2hhcgor
ICAgICAgICBkYXRhIGFwcGVhcnMgb24gYW4gZXZlbi1ieXRlIGJvdW5kYXJ5LiBUaGlzIHByZXZl
bnRzIHVuYWxpZ25lZCByZWFkcyBvZiBVQ2hhciBkYXRhCisgICAgICAgIGR1cmluZyBkZXNlcmlh
bGl6YXRpb24gKHRoZSBkZXNlcmlhbGl6YXRpb24gYnVmZmVyIGlzIGV2ZW4tYnl0ZSBhbGlnbmVk
KS4KKworICAgICAgICBUZXN0aW5nIHRyYW5zZmVycyBvZiBsYXJnZSBzdHJpbmdzIHRvIGFuZCBm
cm9tIHdvcmtlcnMgaW5kaWNhdGVzIGEgMTBYIGltcHJvdmVtZW50CisgICAgICAgIGluIHRyYW5z
ZmVyIHJhdGUgZm9yIHN0cmluZ3MsIGFuZCBzdHJpbmdzIHdpdGhpbiBqcyBvYmplY3RzLCB3aXRo
IHRoaXMgY2hhbmdlLiBGb3IKKyAgICAgICAgZXhhbXBsZSwgNTAwIE1CeXRlL3Mgb24gbXkgdGVz
dCBtYWNoaW5lICg1MCBNQnl0ZS9zIHdpdGhvdXQgdGhpcyBjaGFuZ2UpIGZvciBmbGF0LAorICAg
ICAgICAzMiBNQnl0ZSBwb3N0TWVzc2FnZShzdHJpbmcpIHRyYW5zZmVycy4KKworICAgICAgICBD
b3ZlcmVkIGJ5IHBsYXRmb3JtL2Nocm9taXVtL2Zhc3Qvc3RvcmFnZS9zZXJpYWxpemVkLXNjcmlw
dC12YWx1ZS5odG1sCisKKyAgICAgICAgKiBiaW5kaW5ncy92OC9TZXJpYWxpemVkU2NyaXB0VmFs
dWUuY3BwOgorCiAyMDEyLTExLTE4ICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICB3ZWJhdWRpbzogY2xlYW4tdXAuIFJlcGxhY2UgQXVkaW9Db250ZXh0
OjptX2RvY3VtZW50IG1lbWJlciB3aXRoIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyOjpzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAppbmRleCBiNjE5MTA1ODY1MDBkNzkzM2EyM2Fl
YjllM2Q1NTRhM2E5MmYwYzFiLi5mODFmOTgxODIzZDI2NTE0ZWQ3ZDhlNmQyZWI2YTEyZTBmOWQ3
MTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TZXJpYWxpemVkU2Ny
aXB0VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZS5jcHAKQEAgLTE2OCw2ICsxNjgsNyBAQCB0eXBlZGVmIFVDaGFyIEJ1ZmZlclZh
bHVlVHlwZTsKIAogLy8gV2ViQ29yZVN0cmluZ3MgYXJlIHJlYWQgYXMgKGxlbmd0aDp1aW50MzJf
dCwgc3RyaW5nOlVURjhbbGVuZ3RoXSkuCiAvLyBSYXdTdHJpbmdzIGFyZSByZWFkIGFzIChsZW5n
dGg6dWludDMyX3QsIHN0cmluZzpVVEY4W2xlbmd0aF0pLgorLy8gUmF3VUNoYXJTdHJpbmdzIGFy
ZSByZWFkIGFzIChsZW5ndGg6dWludDMyX3QsIHN0cmluZzpVQ2hhcltsZW5ndGgvc2l6ZW9mKFVD
aGFyKV0pLgogLy8gUmF3RmlsZXMgYXJlIHJlYWQgYXMgKHBhdGg6V2ViQ29yZVN0cmluZywgdXJs
OldlYkNvcmVTdHJuZywgdHlwZTpXZWJDb3JlU3RyaW5nKS4KIC8vIFRoZXJlIGlzIGEgcmVmZXJl
bmNlIHRhYmxlIHRoYXQgbWFwcyBvYmplY3QgcmVmZXJlbmNlcyAodWludDMyX3QpIHRvIHY4OjpW
YWx1ZXMuCiAvLyBUb2tlbnMgbWFya2VkIHdpdGggKHJlZikgYXJlIGluc2VydGVkIGludG8gdGhl
IHJlZmVyZW5jZSB0YWJsZSBhbmQgZ2l2ZW4gdGhlIG5leHQgb2JqZWN0IHJlZmVyZW5jZSBJRCBh
ZnRlciBkZWNvZGluZy4KQEAgLTE4NSw2ICsxODYsNyBAQCBlbnVtIFNlcmlhbGl6YXRpb25UYWcg
ewogICAgIFRydWVUYWcgPSAnVCcsIC8vIC0+IDx0cnVlPgogICAgIEZhbHNlVGFnID0gJ0YnLCAv
LyAtPiA8ZmFsc2U+CiAgICAgU3RyaW5nVGFnID0gJ1MnLCAvLyBzdHJpbmc6UmF3U3RyaW5nIC0+
IHN0cmluZworICAgIFN0cmluZ1VDaGFyVGFnID0gJ2MnLCAvLyBzdHJpbmc6UmF3VUNoYXJTdHJp
bmcgLT4gc3RyaW5nCiAgICAgSW50MzJUYWcgPSAnSScsIC8vIHZhbHVlOlppZ1phZy1lbmNvZGVk
IGludDMyIC0+IEludGVnZXIKICAgICBVaW50MzJUYWcgPSAnVScsIC8vIHZhbHVlOnVpbnQzMl90
IC0+IEludGVnZXIKICAgICBEYXRlVGFnID0gJ0QnLCAvLyB2YWx1ZTpkb3VibGUgLT4gRGF0ZSAo
cmVmKQpAQCAtMjQyLDcgKzI0NCw5IEBAIHN0YXRpYyBib29sIHNob3VsZENoZWNrRm9yQ3ljbGVz
KGludCBkZXB0aCkKIH0KIAogLy8gSW5jcmVtZW50IHRoaXMgZm9yIGVhY2ggaW5jb21wYXRpYmxl
IGNoYW5nZSB0byB0aGUgd2lyZSBmb3JtYXQuCi1zdGF0aWMgY29uc3QgdWludDMyX3Qgd2lyZUZv
cm1hdFZlcnNpb24gPSAxOworLy8gVmVyc2lvbiAxOiBWZXJzaW9uIG51bWJlcnMgbWFuaWZlc3Rl
ZCBpbiBzcGFjZS10aW1lLgorLy8gVmVyc2lvbiAyOiBBZGRlZCBTdHJpbmdVQ2hhclRhZyBmb3Ig
VUNoYXIgdjggc3RyaW5ncy4KK3N0YXRpYyBjb25zdCB1aW50MzJfdCB3aXJlRm9ybWF0VmVyc2lv
biA9IDI7CiAKIHN0YXRpYyBjb25zdCBpbnQgbWF4RGVwdGggPSAyMDAwMDsKIApAQCAtMzA5LDYg
KzMxMyw0MCBAQCBwdWJsaWM6CiAgICAgICAgIGRvV3JpdGVTdHJpbmcoZGF0YSwgbGVuZ3RoKTsK
ICAgICB9CiAKKyAgICB2b2lkIHdyaXRlQXNjaWlTdHJpbmcodjg6OkhhbmRsZTx2ODo6U3RyaW5n
PiYgc3RyaW5nKQorICAgIHsKKyAgICAgICAgaW50IGxlbmd0aCA9IHN0cmluZy0+TGVuZ3RoKCk7
CisgICAgICAgIEFTU0VSVChsZW5ndGggPj0gMCk7CisKKyAgICAgICAgYXBwZW5kKFN0cmluZ1Rh
Zyk7CisgICAgICAgIGRvV3JpdGVVaW50MzIoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGxlbmd0aCkp
OworICAgICAgICBlbnN1cmVTcGFjZShsZW5ndGgpOworCisgICAgICAgIGNoYXIqIGJ1ZmZlciA9
IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGJ5dGVBdChtX3Bvc2l0aW9uKSk7CisgICAgICAgIHN0
cmluZy0+V3JpdGVBc2NpaShidWZmZXIsIDAsIGxlbmd0aCwgdjhTdHJpbmdXcml0ZU9wdGlvbnMo
KSk7CisgICAgICAgIG1fcG9zaXRpb24gKz0gbGVuZ3RoOworICAgIH0KKworICAgIHZvaWQgd3Jp
dGVVQ2hhclN0cmluZyh2ODo6SGFuZGxlPHY4OjpTdHJpbmc+JiBzdHJpbmcpCisgICAgeworICAg
ICAgICBpbnQgbGVuZ3RoID0gc3RyaW5nLT5MZW5ndGgoKTsKKyAgICAgICAgQVNTRVJUKGxlbmd0
aCA+PSAwKTsKKworICAgICAgICBpbnQgc2l6ZSA9IGxlbmd0aCAqIHNpemVvZihVQ2hhcik7Cisg
ICAgICAgIGludCBieXRlcyA9IGJ5dGVzTmVlZGVkVG9XaXJlRW5jb2RlKHN0YXRpY19jYXN0PHVp
bnQzMl90PihzaXplKSk7CisgICAgICAgIGlmICgobV9wb3NpdGlvbiArIDEgKyBieXRlcykgJiAx
KQorICAgICAgICAgICAgYXBwZW5kKFBhZGRpbmdUYWcpOworCisgICAgICAgIGFwcGVuZChTdHJp
bmdVQ2hhclRhZyk7CisgICAgICAgIGRvV3JpdGVVaW50MzIoc3RhdGljX2Nhc3Q8dWludDMyX3Q+
KHNpemUpKTsKKyAgICAgICAgZW5zdXJlU3BhY2Uoc2l6ZSk7CisKKyAgICAgICAgQVNTRVJUKCEo
bV9wb3NpdGlvbiAmIDEpKTsKKyAgICAgICAgdWludDE2X3QqIGJ1ZmZlciA9IHJlaW50ZXJwcmV0
X2Nhc3Q8dWludDE2X3QqPihieXRlQXQobV9wb3NpdGlvbikpOworICAgICAgICBzdHJpbmctPldy
aXRlKGJ1ZmZlciwgMCwgbGVuZ3RoLCB2OFN0cmluZ1dyaXRlT3B0aW9ucygpKTsKKyAgICAgICAg
bV9wb3NpdGlvbiArPSBzaXplOworICAgIH0KKwogICAgIHZvaWQgd3JpdGVTdHJpbmdPYmplY3Qo
Y29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCkKICAgICB7CiAgICAgICAgIEFTU0VSVChsZW5n
dGggPj0gMCk7CkBAIC01NDYsNiArNTg0LDE5IEBAIHByaXZhdGU6CiAgICAgICAgIGRvV3JpdGVT
dHJpbmcoYnVmZmVyLT5kYXRhKCksIGJ1ZmZlci0+c2l6ZSgpKTsKICAgICB9CiAKKyAgICBpbnQg
Ynl0ZXNOZWVkZWRUb1dpcmVFbmNvZGUodWludDMyX3QgdmFsdWUpCisgICAgeworICAgICAgICBp
bnQgYnl0ZXMgPSAxOworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgdmFsdWUg
Pj49IHZhckludFNoaWZ0OworICAgICAgICAgICAgaWYgKCF2YWx1ZSkKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICsrYnl0ZXM7CisgICAgICAgIH0KKworICAgICAgICByZXR1
cm4gYnl0ZXM7CisgICAgfQorCiAgICAgdGVtcGxhdGU8Y2xhc3MgVD4KICAgICB2b2lkIGRvV3Jp
dGVVaW50SGVscGVyKFQgdmFsdWUpCiAgICAgewpAQCAtNjA4LDcgKzY1OSwyMCBAQCBwcml2YXRl
OgogICAgICAgICAgICAgKmJ5dGVBdChtX3Bvc2l0aW9uKSA9IHN0YXRpY19jYXN0PHVpbnQ4X3Q+
KFBhZGRpbmdUYWcpOwogICAgIH0KIAotICAgIHVpbnQ4X3QqIGJ5dGVBdChpbnQgcG9zaXRpb24p
IHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KG1fYnVmZmVyLmRhdGEoKSkgKyBw
b3NpdGlvbjsgfQorICAgIHVpbnQ4X3QqIGJ5dGVBdChpbnQgcG9zaXRpb24pCisgICAgeworICAg
ICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4obV9idWZmZXIuZGF0YSgpKSAr
IHBvc2l0aW9uOworICAgIH0KKworICAgIGludCB2OFN0cmluZ1dyaXRlT3B0aW9ucygpCisgICAg
eworICAgICAgICByZXR1cm4gdjg6OlN0cmluZzo6Tk9fTlVMTF9URVJNSU5BVElPTiB8IHY4OjpT
dHJpbmc6OlBSRVNFUlZFX0FTQ0lJX05VTEw7CisgICAgfQorCisgICAgaW50IHY4U3RyaW5nV3Jp
dGVPcHRpb25zV2l0aEZsYXR0ZW4oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHY4OjpTdHJpbmc6
OkhJTlRfTUFOWV9XUklURVNfRVhQRUNURUQgfCB2OFN0cmluZ1dyaXRlT3B0aW9ucygpOworICAg
IH0KIAogICAgIFZlY3RvcjxCdWZmZXJWYWx1ZVR5cGU+IG1fYnVmZmVyOwogICAgIHVuc2lnbmVk
IG1fcG9zaXRpb247CkBAIC05NzAsOCArMTAzNCwxMSBAQCBwcml2YXRlOgogCiAgICAgdm9pZCB3
cml0ZVN0cmluZyh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFsdWUpCiAgICAgewotICAgICAgICB2
ODo6U3RyaW5nOjpVdGY4VmFsdWUgc3RyaW5nVmFsdWUodmFsdWUpOwotICAgICAgICBtX3dyaXRl
ci53cml0ZVN0cmluZygqc3RyaW5nVmFsdWUsIHN0cmluZ1ZhbHVlLmxlbmd0aCgpKTsKKyAgICAg
ICAgdjg6OkhhbmRsZTx2ODo6U3RyaW5nPiBzdHJpbmcgPSB2YWx1ZS5Bczx2ODo6U3RyaW5nPigp
OworICAgICAgICBpZiAoIXN0cmluZy0+TGVuZ3RoKCkgfHwgIXN0cmluZy0+TWF5Q29udGFpbk5v
bkFzY2lpKCkpCisgICAgICAgICAgICBtX3dyaXRlci53cml0ZUFzY2lpU3RyaW5nKHN0cmluZyk7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1fd3JpdGVyLndyaXRlVUNoYXJTdHJpbmcoc3Ry
aW5nKTsKICAgICB9CiAKICAgICB2b2lkIHdyaXRlU3RyaW5nT2JqZWN0KHY4OjpIYW5kbGU8djg6
OlZhbHVlPiB2YWx1ZSkKQEAgLTEyNjgsNiArMTMzNSw3IEBAIHB1YmxpYzoKICAgICAgICAgLCBt
X3ZlcnNpb24oMCkKICAgICAgICAgLCBtX2lzb2xhdGUoaXNvbGF0ZSkKICAgICB7CisgICAgICAg
IEFTU0VSVCghKHJlaW50ZXJwcmV0X2Nhc3Q8c2l6ZV90PihidWZmZXIpICYgMSkpOwogICAgICAg
ICBBU1NFUlQobGVuZ3RoID49IDApOwogICAgIH0KIApAQCAtMTMyMCw2ICsxMzg4LDEwIEBAIHB1
YmxpYzoKICAgICAgICAgICAgIGlmICghcmVhZFN0cmluZyh2YWx1ZSkpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgU3RyaW5n
VUNoYXJUYWc6CisgICAgICAgICAgICBpZiAoIXJlYWRVQ2hhclN0cmluZyh2YWx1ZSkpCisgICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNh
c2UgU3RyaW5nT2JqZWN0VGFnOgogICAgICAgICAgICAgaWYgKCFyZWFkU3RyaW5nT2JqZWN0KHZh
bHVlKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xNTUwLDYgKzE2MjIsMTkg
QEAgcHJpdmF0ZToKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCisgICAgYm9vbCByZWFk
VUNoYXJTdHJpbmcodjg6OkhhbmRsZTx2ODo6VmFsdWU+KiB2YWx1ZSkKKyAgICB7CisgICAgICAg
IHVpbnQzMl90IGxlbmd0aDsKKyAgICAgICAgaWYgKCFkb1JlYWRVaW50MzIoJmxlbmd0aCkgfHwg
KGxlbmd0aCAmIDEpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAobV9w
b3NpdGlvbiArIGxlbmd0aCA+IG1fbGVuZ3RoKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICBBU1NFUlQoIShtX3Bvc2l0aW9uICYgMSkpOworICAgICAgICAqdmFsdWUgPSB2ODo6
U3RyaW5nOjpOZXcocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50MTZfdCo+KG1fYnVmZmVyICsg
bV9wb3NpdGlvbiksIGxlbmd0aCAvIHNpemVvZihVQ2hhcikpOworICAgICAgICBtX3Bvc2l0aW9u
ICs9IGxlbmd0aDsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCiAgICAgYm9vbCByZWFk
U3RyaW5nT2JqZWN0KHY4OjpIYW5kbGU8djg6OlZhbHVlPiogdmFsdWUpCiAgICAgewogICAgICAg
ICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gc3RyaW5nVmFsdWU7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzU2YzUzNzgxMGUx
Y2EzYWJiN2Q1MzQ1Y2RhNzM1NGZkNmRmNmNhMi4uZDgwY2I1N2JlZmI1YWRhNmI1NzVmYmY3MzBk
YjJkNzE5YzEzZTBhMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTExLTIyICBOb2VsIEdv
cmRvbiAgPG5vZWwuZ29yZG9uQGdtYWlsLmNvbT4KKworICAgICAgICBbdjhdIEltcHJvdmUgd29y
a2VyLnBvc3RNZXNzYWdlKCkgc3RyaW5nIHBlcmZvcm1hbmNlOiBhdm9pZCB1dGY4IHN0cmluZyBj
b252ZXJzaW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDIyMzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBVcGRhdGUgc2VyaWFsaXplZC1zY3JpcHQtdmFsdWUtZXhwZWN0ZWQgcmVzdWx0cyBmb3IgdGhl
IG5ldyBTZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCisgICAgICAgIHdpcmUgZm9ybWF0IHZlcnNp
b24uIEFkZCB0ZXN0IGNhc2VzIGZvciBVQ2hhciBzdHJpbmcgc2VyaWFsaXphdGlvbiB0byB2ZXJp
ZnkgdGhhdCB0aGUKKyAgICAgICAgVUNoYXIgc3RyaW5nIGRhdGEgYXBwZWFycyBvbiBhbiBldmVu
IGJ5dGUgYm91bmRhcnkgaW4gdGhlIHdpcmUgZGF0YSBmb3JtYXQuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9jaHJvbWl1bS9mYXN0L3N0b3JhZ2Uvc2VyaWFsaXplZC1zY3JpcHQtdmFsdWUtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2Zhc3Qvc3RvcmFnZS9zZXJpYWxp
emVkLXNjcmlwdC12YWx1ZS5odG1sOgorCiAyMDEyLTExLTE4ICBLZWlzaGkgSGF0dG9yaSAgPGtl
aXNoaUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gQWRkIHRlc3RzIGZvciB3ZWVr
IHN1Z2dlc3Rpb24gcGlja2VyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS9mYXN0L3N0b3JhZ2Uvc2VyaWFsaXplZC1zY3JpcHQtdmFsdWUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9zdG9yYWdlL3NlcmlhbGl6ZWQtc2Ny
aXB0LXZhbHVlLWV4cGVjdGVkLnR4dAppbmRleCA1NjNkMGUzY2EwOGY5Nzc1MDFiZGU5MmI4MWIz
OTMyOTJmMmRkOWE5Li4zMTQyYmZiNjM5Mzg0Nzg3Mjk0MGU3MmFkZTg3YzVlZWEzMWRhZTRmIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L3N0b3JhZ2Uvc2Vy
aWFsaXplZC1zY3JpcHQtdmFsdWUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL2Zhc3Qvc3RvcmFnZS9zZXJpYWxpemVkLXNjcmlwdC12YWx1ZS1leHBlY3Rl
ZC50eHQKQEAgLTExNyw2ICsxMTcsMTYgQEAgUEFTUyBKU09OLnN0cmluZ2lmeShuZXdPYmopIGlz
IEpTT04uc3RyaW5naWZ5KG9iaikKIFNlcmlhbGl6ZSB7ImhlbGxvIjoidGhlcmUifToKIFBBU1Mg
YnVmZmVyVmlldy5sZW5ndGggaXMgZXhwZWN0ZWRCdWZmZXJWYWx1ZXMubGVuZ3RoCiAKK0Rlc2Vy
aWFsaXplIHRvIHsiYSI6ImEiLCJ1IjoizrHOsiJ9OgorUEFTUyBKU09OLnN0cmluZ2lmeShuZXdP
YmopIGlzIEpTT04uc3RyaW5naWZ5KG9iaikKK1NlcmlhbGl6ZSB7ImEiOiJhIiwidSI6Is6xzrIi
fToKK1BBU1MgYnVmZmVyVmlldy5sZW5ndGggaXMgZXhwZWN0ZWRCdWZmZXJWYWx1ZXMubGVuZ3Ro
CisKK0Rlc2VyaWFsaXplIHRvIHsiYSI6ImFiIiwidSI6Is6xzrIifToKK1BBU1MgSlNPTi5zdHJp
bmdpZnkobmV3T2JqKSBpcyBKU09OLnN0cmluZ2lmeShvYmopCitTZXJpYWxpemUgeyJhIjoiYWIi
LCJ1IjoizrHOsiJ9OgorUEFTUyBidWZmZXJWaWV3Lmxlbmd0aCBpcyBleHBlY3RlZEJ1ZmZlclZh
bHVlcy5sZW5ndGgKKwogU2VyaWFsaXplIHVuZGVmaW5lZDoKIFBBU1MgdGhyb3duRXhjZXB0aW9u
LmNvZGUgaXMgZXhwZWN0ZWRFeGNlcHRpb24KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3Qvc3RvcmFn
ZS9zZXJpYWxpemVkLXNjcmlwdC12YWx1ZS5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vZmFzdC9zdG9yYWdlL3NlcmlhbGl6ZWQtc2NyaXB0LXZhbHVlLmh0bWwKaW5kZXggNDkx
NjgxOWU4NDg2N2M3MzlhODBhODY3Y2ZhZjYyYTE3Yzc2ZGY3NC4uZmIxN2MyZmE4Njk1ODM1ZWU2
OWNiODRkZDkxNGY3YjdiNzNhNTAwYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0vZmFzdC9zdG9yYWdlL3NlcmlhbGl6ZWQtc2NyaXB0LXZhbHVlLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9zdG9yYWdlL3NlcmlhbGl6ZWQtc2Ny
aXB0LXZhbHVlLmh0bWwKQEAgLTEyLDcgKzEyLDcgQEAgZnVuY3Rpb24gZXhwZWN0QnVmZmVyVmFs
dWUoZXhwZWN0ZWRWYWx1ZXMsIGJ1ZmZlcikgewogICAgIGlmIChzdWNjZXNzKSB7CiAgICAgICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgZXhwZWN0ZWRWYWx1ZXMubGVuZ3RoOyBpKyspIHsKICAgICAg
ICAgICAgIGlmIChleHBlY3RlZFZhbHVlc1tpXSAhPSBidWZmZXJWaWV3W2ldKSB7Ci0gICAgICAg
ICAgICAgICAgdGVzdEZhaWxlZCgiQXJyYXlCdWZmZXJWaWV3cyBkaWZmZXIgYXQgaW5kZXggIiAr
IGkgKyAiLiBTaG91bGQgYmUgIiArIGV4cGVjdGVkVmFsdWVzW2ldICsgIi4gV2FzICIgKyB2aWV3
W2ldKTsKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJBcnJheUJ1ZmZlclZpZXdzIGRpZmZl
ciBhdCBpbmRleCAiICsgaSArICIuIFNob3VsZCBiZSAiICsgZXhwZWN0ZWRWYWx1ZXNbaV0gKyAi
LiBXYXMgIiArIGJ1ZmZlclZpZXdbaV0pOwogICAgICAgICAgICAgICAgIHN1Y2Nlc3MgPSBmYWxz
ZTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KQEAgLTgyLDcgKzgyLDcg
QEAgZnVuY3Rpb24gdGVzdFNlcmlhbGl6YXRpb24ob2JqLCB2YWx1ZXMsIG9sZEZvcm1hdCwgc2Vy
aWFsaXplRXhjZXB0aW9uVmFsdWUpIHsKIC8vIGFyZSBvbmx5IHBlcnNpc3RlZCBvdXQgaW4gdGhl
IHdvcmxkIGluIEluZGV4ZWREQiBzdG9yZXMgdGhhdCB3ZXJlCiAvLyB3cml0dGVuIHdpdGggaW1w
bGVtZW50YXRpb25zIGJ1aWx0IGJlZm9yZSBtaWQtMjAxMS4KIHRlc3RTZXJpYWxpemF0aW9uKHtm
b286ICd6b28nLCBiYXI6IHtiYXo6ICdteU5ld0tleSd9fSwKLSAgICAgICAgICAgICAgICAgIFsg
MHgwMWZmLCAweDAwM2YsIDB4M2Y2ZiwgMHg1MzAxLCAweDY2MDMsCisgICAgICAgICAgICAgICAg
ICBbIDB4MDJmZiwgMHgwMDNmLCAweDNmNmYsIDB4NTMwMSwgMHg2NjAzLAogICAgICAgICAgICAg
ICAgICAgICAweDZmNmYsIDB4MDEzZiwgMHgwMzUzLCAweDZmN2EsIDB4M2Y2ZiwKICAgICAgICAg
ICAgICAgICAgICAgMHg1MzAxLCAweDYyMDMsIDB4NzI2MSwgMHgwMTNmLCAweDNmNmYsCiAgICAg
ICAgICAgICAgICAgICAgIDB4NTMwMiwgMHg2MjAzLCAweDdhNjEsIDB4MDIzZiwgMHgwODUzLApA
QCAtOTAsNjEgKzkwLDc0IEBAIHRlc3RTZXJpYWxpemF0aW9uKHtmb286ICd6b28nLCBiYXI6IHti
YXo6ICdteU5ld0tleSd9fSwKICAgICAgICAgICAgICAgICAgICAgMHgwMjdiIF0pOwogCiB0ZXN0
U2VyaWFsaXphdGlvbih7Zm9vOiAnem9vJywgYmFyOiAnbXlOZXdLZXknfSwKLSAgICAgICAgICAg
ICAgICAgIFsweDAxZmYsIDB4MDAzZiwgMHgzZjZmLCAweDUzMDEsIDB4NjYwMywKKyAgICAgICAg
ICAgICAgICAgIFsweDAyZmYsIDB4MDAzZiwgMHgzZjZmLCAweDUzMDEsIDB4NjYwMywKICAgICAg
ICAgICAgICAgICAgICAweDZmNmYsIDB4MDEzZiwgMHgwMzUzLCAweDZmN2EsIDB4M2Y2ZiwKICAg
ICAgICAgICAgICAgICAgICAweDUzMDEsIDB4NjIwMywgMHg3MjYxLCAweDAxM2YsIDB4MDg1MywK
ICAgICAgICAgICAgICAgICAgICAweDc5NmQsIDB4NjU0ZSwgMHg0Yjc3LCAweDc5NjUsIDB4MDI3
Yl0pOwogCi10ZXN0U2VyaWFsaXphdGlvbihbXSwgWzB4MDFmZiwgMHgwMDNmLCAweDAwNDEsIDB4
MDAyNCwgMHgwMDAwIF0pOwordGVzdFNlcmlhbGl6YXRpb24oW10sIFsweDAyZmYsIDB4MDAzZiwg
MHgwMDQxLCAweDAwMjQsIDB4MDAwMCBdKTsKIHRlc3RTZXJpYWxpemF0aW9uKHtmb286ICJ6b28i
fSwKLSAgICAgICAgICAgICAgICAgIFsweDAxZmYsIDB4MDAzZiwgMHgzZjZmLCAweDUzMDEsIDB4
NjYwMywgMHg2ZjZmLAorICAgICAgICAgICAgICAgICAgWzB4MDJmZiwgMHgwMDNmLCAweDNmNmYs
IDB4NTMwMSwgMHg2NjAzLCAweDZmNmYsCiAgICAgICAgICAgICAgICAgICAgMHgwMTNmLCAweDAz
NTMsIDB4NmY3YSwgMHg3YjZmLCAweDAwMDFdLAogICAgICAgICAgICAgICAgICAgWzB4MDM1Mywg
MHg2ZjY2LCAweDUzNmYsIDB4N2EwMywgMHg2ZjZmLCAweDAxN2JdKTsKIHRlc3RTZXJpYWxpemF0
aW9uKHtmb286IG51bGx9LAotICAgICAgICAgICAgICAgICAgWzB4MDFmZiwgMHgwMDNmLCAweDNm
NmYsIDB4NTMwMSwgMHg2NjAzLCAweDZmNmYsCisgICAgICAgICAgICAgICAgICBbMHgwMmZmLCAw
eDAwM2YsIDB4M2Y2ZiwgMHg1MzAxLCAweDY2MDMsIDB4NmY2ZiwKICAgICAgICAgICAgICAgICAg
ICAweDAxM2YsIDB4N2IzMCwgMHgwMDAxXSwKICAgICAgICAgICAgICAgICAgIFsweDAzNTMsIDB4
NmY2NiwgMHgzMDZmLCAweDAxN2JdKTsKLXRlc3RTZXJpYWxpemF0aW9uKHt9LCBbMHgwMWZmLCAw
eDAwM2YsIDB4N2I2ZiwgMHgwMDAwXSwgWzB4MDA3Yl0pOwordGVzdFNlcmlhbGl6YXRpb24oe30s
IFsweDAyZmYsIDB4MDAzZiwgMHg3YjZmLCAweDAwMDBdLCBbMHgwMDdiXSk7CiAKLXRlc3RTZXJp
YWxpemF0aW9uKHVuZGVmaW5lZCwgWzB4MDFmZiwgMHgwMDNmLCAweDAwNWZdKTsKLXRlc3RTZXJp
YWxpemF0aW9uKHRydWUsIFsweDAxZmYsIDB4MDAzZiwgMHgwMDU0XSk7Ci10ZXN0U2VyaWFsaXph
dGlvbihmYWxzZSwgWzB4MDFmZiwgMHgwMDNmLCAweDAwNDZdKTsKK3Rlc3RTZXJpYWxpemF0aW9u
KHVuZGVmaW5lZCwgWzB4MDJmZiwgMHgwMDNmLCAweDAwNWZdKTsKK3Rlc3RTZXJpYWxpemF0aW9u
KHRydWUsIFsweDAyZmYsIDB4MDAzZiwgMHgwMDU0XSk7Cit0ZXN0U2VyaWFsaXphdGlvbihmYWxz
ZSwgWzB4MDJmZiwgMHgwMDNmLCAweDAwNDZdKTsKIC8vIFNwYXJzZSBhcnJheSBkZXNlcmlhbGl6
YXRpb24gaXMgYnJva2VuLgogLy8gU2VlOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9OTY4MzgKLS8vIHRlc3RTZXJpYWxpemF0aW9uKG5ldyBBcnJheSgxMDApLCBbMHgw
MWZmLCAweDAwM2YsIDB4NjQ2MSwgMHgwMDQwLCAweDAwNjRdKTsKLXRlc3RTZXJpYWxpemF0aW9u
KDEwLCBbMHgwMWZmLCAweDAwM2YsIDB4MTQ0OV0pOwotdGVzdFNlcmlhbGl6YXRpb24oLTEwLCBb
MHgwMWZmLCAweDAwM2YsIDB4MTM0OV0pOwotdGVzdFNlcmlhbGl6YXRpb24oTWF0aC5wb3coMiwz
MCksIFsweDAxZmYsIDB4MDAzZiwgMHg4MDQ5LCAweDgwODAsIDB4MDg4MF0pOwotdGVzdFNlcmlh
bGl6YXRpb24oTWF0aC5wb3coMiw1NSksIFsweDAxZmYsIDB4MDAzZiwgMHgwMDRlLCAweDAwMDAs
IDB4MDAwMCwKKy8vIHRlc3RTZXJpYWxpemF0aW9uKG5ldyBBcnJheSgxMDApLCBbMHgwMmZmLCAw
eDAwM2YsIDB4NjQ2MSwgMHgwMDQwLCAweDAwNjRdKTsKK3Rlc3RTZXJpYWxpemF0aW9uKDEwLCBb
MHgwMmZmLCAweDAwM2YsIDB4MTQ0OV0pOwordGVzdFNlcmlhbGl6YXRpb24oLTEwLCBbMHgwMmZm
LCAweDAwM2YsIDB4MTM0OV0pOwordGVzdFNlcmlhbGl6YXRpb24oTWF0aC5wb3coMiwzMCksIFsw
eDAyZmYsIDB4MDAzZiwgMHg4MDQ5LCAweDgwODAsIDB4MDg4MF0pOwordGVzdFNlcmlhbGl6YXRp
b24oTWF0aC5wb3coMiw1NSksIFsweDAyZmYsIDB4MDAzZiwgMHgwMDRlLCAweDAwMDAsIDB4MDAw
MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2MDAwLCAweDAwNDNdKTsK
LXRlc3RTZXJpYWxpemF0aW9uKDEuMjMsIFsweDAxZmYsIDB4MDAzZiwgMHhhZTRlLCAweGUxNDcs
IDB4MTQ3YSwgMHhmM2FlLCAweDAwM2ZdKTsKLXRlc3RTZXJpYWxpemF0aW9uKCIiLCBbMHgwMWZm
LCAweDAwM2YsIDB4MDA1M10pOwotdGVzdFNlcmlhbGl6YXRpb24oImFiYyIsIFsweDAxZmYsIDB4
MDAzZiwgMHgwMzUzLCAweDYyNjEsIDB4MDA2M10pOwotdGVzdFNlcmlhbGl6YXRpb24oe2ludGVn
ZXI6IDEyM30sIFsweDAxZmYsIDB4MDAzZiwgMHgzZjZmLCAweDUzMDEsIDB4NjkwNywKK3Rlc3RT
ZXJpYWxpemF0aW9uKDEuMjMsIFsweDAyZmYsIDB4MDAzZiwgMHhhZTRlLCAweGUxNDcsIDB4MTQ3
YSwgMHhmM2FlLCAweDAwM2ZdKTsKK3Rlc3RTZXJpYWxpemF0aW9uKCIiLCBbMHgwMmZmLCAweDAw
M2YsIDB4MDA1M10pOwordGVzdFNlcmlhbGl6YXRpb24oImFiYyIsIFsweDAyZmYsIDB4MDAzZiwg
MHgwMzUzLCAweDYyNjEsIDB4MDA2M10pOwordGVzdFNlcmlhbGl6YXRpb24oe2ludGVnZXI6IDEy
M30sIFsweDAyZmYsIDB4MDAzZiwgMHgzZjZmLCAweDUzMDEsIDB4NjkwNywKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMHg3NDZlLCAweDY3NjUsIDB4NzI2NSwgMHgwMTNmLCAw
eGY2NDksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N2IwMSwgMHgwMDAx
XSk7Ci10ZXN0U2VyaWFsaXphdGlvbih7c3RyaW5nOiAic3RyIn0sIFsweDAxZmYsIDB4MDAzZiwg
MHgzZjZmLCAweDUzMDEsIDB4NzMwNiwKK3Rlc3RTZXJpYWxpemF0aW9uKHtzdHJpbmc6ICJzdHIi
fSwgWzB4MDJmZiwgMHgwMDNmLCAweDNmNmYsIDB4NTMwMSwgMHg3MzA2LAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMHg3Mjc0LCAweDZlNjksIDB4M2Y2NywgMHg1MzAxLCAw
eDczMDMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcyNzQsIDB4MDE3
Yl0pOwotdGVzdFNlcmlhbGl6YXRpb24oe2xpc3Q6IFsxLDIsM119LCBbMHgwMWZmLCAweDAwM2Ys
IDB4M2Y2ZiwgMHg1MzAxLCAweDZjMDQsCit0ZXN0U2VyaWFsaXphdGlvbih7bGlzdDogWzEsMiwz
XX0sIFsweDAyZmYsIDB4MDAzZiwgMHgzZjZmLCAweDUzMDEsIDB4NmMwNCwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzM2OSwgMHgzZjc0LCAweDQxMDEsIDB4M2YwMywg
MHg0OTAyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzZjAyLCAweDQ5
MDIsIDB4M2YwNCwgMHg0OTAyLCAweDI0MDYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAweDAzMDAsIDB4MDE3Yl0pOwotdGVzdFNlcmlhbGl6YXRpb24obnVsbCwgWzB4MDFm
ZiwgMHgwMDNmLCAweDAwMzBdKTsKLXRlc3RTZXJpYWxpemF0aW9uKC9hYmMvLCBbMHgwMWZmLCAw
eDAwM2YsIDB4MDM1MiwgMHg2MjYxLCAweDAwNjNdKTsKK3Rlc3RTZXJpYWxpemF0aW9uKG51bGws
IFsweDAyZmYsIDB4MDAzZiwgMHgwMDMwXSk7Cit0ZXN0U2VyaWFsaXphdGlvbigvYWJjLywgWzB4
MDJmZiwgMHgwMDNmLCAweDAzNTIsIDB4NjI2MSwgMHgwMDYzXSk7CiAKIHZhciBpbm5lck9iamVj
dCA9IHtoZWxsbzogInRoZXJlIn07CiB2YXIgb3V0ZXJPYmplY3QgPSB7aW5uZXI6IGlubmVyT2Jq
ZWN0fTsKIG91dGVyT2JqZWN0WydvdXRlciddID0gaW5uZXJPYmplY3Q7Ci10ZXN0U2VyaWFsaXph
dGlvbihvdXRlck9iamVjdCwgWzB4MDFmZiwgMHgwMDNmLCAweDNmNmYsIDB4NTMwMSwgMHg2OTA1
LAordGVzdFNlcmlhbGl6YXRpb24ob3V0ZXJPYmplY3QsIFsweDAyZmYsIDB4MDAzZiwgMHgzZjZm
LCAweDUzMDEsIDB4NjkwNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2ZTZl
LCAweDcyNjUsIDB4MDEzZiwgMHgzZjZmLCAweDUzMDIsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDB4NjgwNSwgMHg2YzY1LCAweDZmNmMsIDB4MDIzZiwgMHgwNTUzLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAweDY4NzQsIDB4NzI2NSwgMHg3YjY1LCAweDNmMDEs
IDB4NTMwMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2ZjA1LCAweDc0NzUs
IDB4NzI2NSwgMHgwMjNmLCAweDAxNWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDB4MDI3Yl0pOwotdGVzdFNlcmlhbGl6YXRpb24oaW5uZXJPYmplY3QsIFsweDAxZmYsIDB4MDAz
ZiwgMHgzZjZmLCAweDUzMDEsIDB4NjgwNSwKK3Rlc3RTZXJpYWxpemF0aW9uKGlubmVyT2JqZWN0
LCBbMHgwMmZmLCAweDAwM2YsIDB4M2Y2ZiwgMHg1MzAxLCAweDY4MDUsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDB4NmM2NSwgMHg2ZjZjLCAweDAxM2YsIDB4MDU1MywgMHg2ODc0
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcyNjUsIDB4N2I2NSwgMHgwMDAx
XSk7CisKK3ZhciB1bmljb2RlT2JqZWN0ID0ge2E6ICdhJywgdTogU3RyaW5nLmZyb21DaGFyQ29k
ZSgweDAzQjEsMHgwM0IyKX07Cit0ZXN0U2VyaWFsaXphdGlvbih1bmljb2RlT2JqZWN0LAorICAg
ICAgICAgICAgICAgICAgWzB4MDJmZiwgMHgwMDNmLCAweDNmNmYsIDB4NTMwMSwgMHg2MTAxLAor
ICAgICAgICAgICAgICAgICAgIDB4MDEzZiwgMHgwMTUzLCAweDNmNjEsIDB4NTMwMSwgMHg3NTAx
LAorICAgICAgICAgICAgICAgICAgIDB4MDEzZiwgMHgwNDYzLCAweDAzYjEsIDB4MDNiMiwgMHgw
MjdiXSk7Cit1bmljb2RlT2JqZWN0LmEgPSAnYWInOwordGVzdFNlcmlhbGl6YXRpb24odW5pY29k
ZU9iamVjdCwKKyAgICAgICAgICAgICAgICAgIFsweDAyZmYsIDB4MDAzZiwgMHgzZjZmLCAweDUz
MDEsIDB4NjEwMSwKKyAgICAgICAgICAgICAgICAgICAweDAxM2YsIDB4MDI1MywgMHg2MjYxLCAw
eDAxM2YsIDB4MDE1MywKKyAgICAgICAgICAgICAgICAgICAweDNmNzUsIDB4MDAwMSwgMHgwNDYz
LCAweDAzYjEsIDB4MDNiMiwKKyAgICAgICAgICAgICAgICAgICAweDAyN2JdKTsKKwogdGVzdFNl
cmlhbGl6YXRpb24oZnVuY3Rpb24oKXt9LCBbXSwgbnVsbCwgRE9NRXhjZXB0aW9uLkRBVEFfQ0xP
TkVfRVJSKTsKICAgICAgICAgPC9zY3JpcHQ+CiAgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8u
Li8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176668</attachid>
            <date>2012-11-29 00:48:59 -0800</date>
            <delta_ts>2012-11-29 18:09:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102230-20121129194632.patch</filename>
            <type>text/plain</type>
            <size>16802</size>
            <attacher name="noel gordon">noel.gordon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2MDg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzAyYjhjMDBiZjYyN2Y5
ZjEyMjgyMDU1YTYxNjUyNDQ1MzJjNTQ1OC4uMjE5Zjc1YjA3YWUwNDdlZTdhMjU0MjM5YjIzMTkz
ZTA0ODAwZTEzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTExLTI5ICBOb2Vs
IEdvcmRvbiAgPG5vZWwuZ29yZG9uQGdtYWlsLmNvbT4KKworICAgICAgICBbdjhdIEltcHJvdmUg
d29ya2VyLnBvc3RNZXNzYWdlKCkgc3RyaW5nIHBlcmZvcm1hbmNlOiBhdm9pZCB1dGY4IHN0cmlu
ZyBjb252ZXJzaW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDIyMzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBdm9pZCB1dGY4IGNvbnZlcnNpb24gd2hlbiBzZXJpYWxpemluZyBzdHJpbmdzIHdpdGgg
U2VyaWFsaXplZFNjcmlwdFZhbHVlLiBQcm92aWRlIAorICAgICAgICBBc2NpaSBhbmQgVUNoYXIg
d3JpdGVycyBmb3Igdjggc3RyaW5nIHNlcmlhbGl6YXRpb24gYW5kIHByb3ZpZGUgYSBVQ2hhciBy
ZWFkZXIgZm9yCisgICAgICAgIGRlc2VyaWFsaXphdGlvbi4gRGVmaW5lL3VzZSBzZXJpYWxpemF0
aW9uIFN0cmluZ1VDaGFyVGFnIHRvIGluZGljYXRlIFVDaGFyIHN0cmluZ3MKKyAgICAgICAgaW4g
dGhlIHdpcmUgZm9ybWF0LiBJbmNyZW1lbnQgdGhlIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSB3aXJl
IGZvcm1hdCB2ZXJzaW9uLgorCisgICAgICAgIEluIHRoZSB3aXJlIGZvcm1hdCwgU3RyaW5nVUNo
YXJUYWcgaXMgZm9sbG93ZWQgYnkgdGhlIHN0cmluZyBsZW5ndGggaW4gYnl0ZXMsIHRoZW4KKyAg
ICAgICAgdGhlIGxlbmd0aC8yIFVDaGFycyBvZiB0aGUgc3RyaW5nLgorCisgICAgICAgIE5vdGUg
dGhlIHN0cmluZyBsZW5ndGggaXMgVmFySW50IGVuY29kZWQuIER1cmluZyBzZXJpYWxpemF0aW9u
LCBjb21wdXRlIHRoZSBudW1iZXIKKyAgICAgICAgb2YgYnl0ZXMgdXNlZCB0byBlbmNvZGUgdGhl
IGxlbmd0aCBhbmQgcHJlcGVuZCBhIFBhZGRpbmdUYWcgaWYgbmVlZGVkIHNvIHRoZSBVQ2hhcgor
ICAgICAgICBkYXRhIGFwcGVhcnMgb24gYW4gZXZlbi1ieXRlIGJvdW5kYXJ5LiBUaGlzIHByZXZl
bnRzIHVuYWxpZ25lZCByZWFkcyBvZiBVQ2hhciBkYXRhCisgICAgICAgIGR1cmluZyBkZXNlcmlh
bGl6YXRpb24gKHRoZSBkZXNlcmlhbGl6YXRpb24gYnVmZmVyIGlzIGV2ZW4tYnl0ZSBhbGlnbmVk
KS4KKworICAgICAgICBUZXN0aW5nIHRyYW5zZmVycyBvZiBsYXJnZSBzdHJpbmdzIHRvIGFuZCBm
cm9tIHdvcmtlcnMgaW5kaWNhdGVzIGEgMTBYIGltcHJvdmVtZW50CisgICAgICAgIGluIHRyYW5z
ZmVyIHJhdGUgZm9yIHN0cmluZ3MsIGFuZCBzdHJpbmdzIHdpdGhpbiBqcyBvYmplY3RzLCB3aXRo
IHRoaXMgY2hhbmdlLiBGb3IKKyAgICAgICAgZXhhbXBsZSwgNTAwIE1CeXRlL3Mgb24gbXkgdGVz
dCBtYWNoaW5lICg1MCBNQnl0ZS9zIHdpdGhvdXQgdGhpcyBjaGFuZ2UpIGZvciBmbGF0LAorICAg
ICAgICAzMiBNQnl0ZSBzdHJpbmcgcG9zdE1lc3NhZ2UoKSB0cmFuc2ZlcnMuCisKKyAgICAgICAg
Q292ZXJlZCBieSBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L3N0b3JhZ2Uvc2VyaWFsaXplZC1zY3Jp
cHQtdmFsdWUuaHRtbAorCisgICAgICAgICogYmluZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZh
bHVlLmNwcDoKKwogMjAxMi0xMS0yOCAgSm9zaHVhIEJlbGwgIDxqc2JlbGxAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFtDaHJvbWl1bV0gSW5kZXhlZERCOiBBc3NlcnQvY3Jhc2ggaW4gaW5kZXhp
bmcgbGF5b3V0IHRlc3RzIGluIGNvbnRlbnRfc2hlbGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCmluZGV4IGI2MTkxMDU4NjUw
MGQ3OTMzYTIzYWViOWUzZDU1NGEzYTkyZjBjMWIuLjI4ZTVmYzNkZWE3ZDY2YTVlNDUyYTFlYTQy
NGFmYWIwNWU5M2QyOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Nl
cmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
U2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcApAQCAtMTY4LDYgKzE2OCw3IEBAIHR5cGVkZWYgVUNo
YXIgQnVmZmVyVmFsdWVUeXBlOwogCiAvLyBXZWJDb3JlU3RyaW5ncyBhcmUgcmVhZCBhcyAobGVu
Z3RoOnVpbnQzMl90LCBzdHJpbmc6VVRGOFtsZW5ndGhdKS4KIC8vIFJhd1N0cmluZ3MgYXJlIHJl
YWQgYXMgKGxlbmd0aDp1aW50MzJfdCwgc3RyaW5nOlVURjhbbGVuZ3RoXSkuCisvLyBSYXdVQ2hh
clN0cmluZ3MgYXJlIHJlYWQgYXMgKGxlbmd0aDp1aW50MzJfdCwgc3RyaW5nOlVDaGFyW2xlbmd0
aC9zaXplb2YoVUNoYXIpXSkuCiAvLyBSYXdGaWxlcyBhcmUgcmVhZCBhcyAocGF0aDpXZWJDb3Jl
U3RyaW5nLCB1cmw6V2ViQ29yZVN0cm5nLCB0eXBlOldlYkNvcmVTdHJpbmcpLgogLy8gVGhlcmUg
aXMgYSByZWZlcmVuY2UgdGFibGUgdGhhdCBtYXBzIG9iamVjdCByZWZlcmVuY2VzICh1aW50MzJf
dCkgdG8gdjg6OlZhbHVlcy4KIC8vIFRva2VucyBtYXJrZWQgd2l0aCAocmVmKSBhcmUgaW5zZXJ0
ZWQgaW50byB0aGUgcmVmZXJlbmNlIHRhYmxlIGFuZCBnaXZlbiB0aGUgbmV4dCBvYmplY3QgcmVm
ZXJlbmNlIElEIGFmdGVyIGRlY29kaW5nLgpAQCAtMTg1LDYgKzE4Niw3IEBAIGVudW0gU2VyaWFs
aXphdGlvblRhZyB7CiAgICAgVHJ1ZVRhZyA9ICdUJywgLy8gLT4gPHRydWU+CiAgICAgRmFsc2VU
YWcgPSAnRicsIC8vIC0+IDxmYWxzZT4KICAgICBTdHJpbmdUYWcgPSAnUycsIC8vIHN0cmluZzpS
YXdTdHJpbmcgLT4gc3RyaW5nCisgICAgU3RyaW5nVUNoYXJUYWcgPSAnYycsIC8vIHN0cmluZzpS
YXdVQ2hhclN0cmluZyAtPiBzdHJpbmcKICAgICBJbnQzMlRhZyA9ICdJJywgLy8gdmFsdWU6Wmln
WmFnLWVuY29kZWQgaW50MzIgLT4gSW50ZWdlcgogICAgIFVpbnQzMlRhZyA9ICdVJywgLy8gdmFs
dWU6dWludDMyX3QgLT4gSW50ZWdlcgogICAgIERhdGVUYWcgPSAnRCcsIC8vIHZhbHVlOmRvdWJs
ZSAtPiBEYXRlIChyZWYpCkBAIC0yNDIsNyArMjQ0LDggQEAgc3RhdGljIGJvb2wgc2hvdWxkQ2hl
Y2tGb3JDeWNsZXMoaW50IGRlcHRoKQogfQogCiAvLyBJbmNyZW1lbnQgdGhpcyBmb3IgZWFjaCBp
bmNvbXBhdGlibGUgY2hhbmdlIHRvIHRoZSB3aXJlIGZvcm1hdC4KLXN0YXRpYyBjb25zdCB1aW50
MzJfdCB3aXJlRm9ybWF0VmVyc2lvbiA9IDE7CisvLyBWZXJzaW9uIDI6IEFkZGVkIFN0cmluZ1VD
aGFyVGFnIGZvciBVQ2hhciB2OCBzdHJpbmdzLgorc3RhdGljIGNvbnN0IHVpbnQzMl90IHdpcmVG
b3JtYXRWZXJzaW9uID0gMjsKIAogc3RhdGljIGNvbnN0IGludCBtYXhEZXB0aCA9IDIwMDAwOwog
CkBAIC0zMDksNiArMzEyLDQwIEBAIHB1YmxpYzoKICAgICAgICAgZG9Xcml0ZVN0cmluZyhkYXRh
LCBsZW5ndGgpOwogICAgIH0KIAorICAgIHZvaWQgd3JpdGVBc2NpaVN0cmluZyh2ODo6SGFuZGxl
PHY4OjpTdHJpbmc+JiBzdHJpbmcpCisgICAgeworICAgICAgICBpbnQgbGVuZ3RoID0gc3RyaW5n
LT5MZW5ndGgoKTsKKyAgICAgICAgQVNTRVJUKGxlbmd0aCA+PSAwKTsKKworICAgICAgICBhcHBl
bmQoU3RyaW5nVGFnKTsKKyAgICAgICAgZG9Xcml0ZVVpbnQzMihzdGF0aWNfY2FzdDx1aW50MzJf
dD4obGVuZ3RoKSk7CisgICAgICAgIGVuc3VyZVNwYWNlKGxlbmd0aCk7CisKKyAgICAgICAgY2hh
ciogYnVmZmVyID0gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oYnl0ZUF0KG1fcG9zaXRpb24pKTsK
KyAgICAgICAgc3RyaW5nLT5Xcml0ZUFzY2lpKGJ1ZmZlciwgMCwgbGVuZ3RoLCB2OFN0cmluZ1dy
aXRlT3B0aW9ucygpKTsKKyAgICAgICAgbV9wb3NpdGlvbiArPSBsZW5ndGg7CisgICAgfQorCisg
ICAgdm9pZCB3cml0ZVVDaGFyU3RyaW5nKHY4OjpIYW5kbGU8djg6OlN0cmluZz4mIHN0cmluZykK
KyAgICB7CisgICAgICAgIGludCBsZW5ndGggPSBzdHJpbmctPkxlbmd0aCgpOworICAgICAgICBB
U1NFUlQobGVuZ3RoID49IDApOworCisgICAgICAgIGludCBzaXplID0gbGVuZ3RoICogc2l6ZW9m
KFVDaGFyKTsKKyAgICAgICAgaW50IGJ5dGVzID0gYnl0ZXNOZWVkZWRUb1dpcmVFbmNvZGUoc3Rh
dGljX2Nhc3Q8dWludDMyX3Q+KHNpemUpKTsKKyAgICAgICAgaWYgKChtX3Bvc2l0aW9uICsgMSAr
IGJ5dGVzKSAmIDEpCisgICAgICAgICAgICBhcHBlbmQoUGFkZGluZ1RhZyk7CisKKyAgICAgICAg
YXBwZW5kKFN0cmluZ1VDaGFyVGFnKTsKKyAgICAgICAgZG9Xcml0ZVVpbnQzMihzdGF0aWNfY2Fz
dDx1aW50MzJfdD4oc2l6ZSkpOworICAgICAgICBlbnN1cmVTcGFjZShzaXplKTsKKworICAgICAg
ICBBU1NFUlQoIShtX3Bvc2l0aW9uICYgMSkpOworICAgICAgICB1aW50MTZfdCogYnVmZmVyID0g
cmVpbnRlcnByZXRfY2FzdDx1aW50MTZfdCo+KGJ5dGVBdChtX3Bvc2l0aW9uKSk7CisgICAgICAg
IHN0cmluZy0+V3JpdGUoYnVmZmVyLCAwLCBsZW5ndGgsIHY4U3RyaW5nV3JpdGVPcHRpb25zKCkp
OworICAgICAgICBtX3Bvc2l0aW9uICs9IHNpemU7CisgICAgfQorCiAgICAgdm9pZCB3cml0ZVN0
cmluZ09iamVjdChjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoKQogICAgIHsKICAgICAgICAg
QVNTRVJUKGxlbmd0aCA+PSAwKTsKQEAgLTU0Niw2ICs1ODMsMTkgQEAgcHJpdmF0ZToKICAgICAg
ICAgZG9Xcml0ZVN0cmluZyhidWZmZXItPmRhdGEoKSwgYnVmZmVyLT5zaXplKCkpOwogICAgIH0K
IAorICAgIGludCBieXRlc05lZWRlZFRvV2lyZUVuY29kZSh1aW50MzJfdCB2YWx1ZSkKKyAgICB7
CisgICAgICAgIGludCBieXRlcyA9IDE7CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAg
ICAgICB2YWx1ZSA+Pj0gdmFySW50U2hpZnQ7CisgICAgICAgICAgICBpZiAoIXZhbHVlKQorICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgKytieXRlczsKKyAgICAgICAgfQorCisg
ICAgICAgIHJldHVybiBieXRlczsKKyAgICB9CisKICAgICB0ZW1wbGF0ZTxjbGFzcyBUPgogICAg
IHZvaWQgZG9Xcml0ZVVpbnRIZWxwZXIoVCB2YWx1ZSkKICAgICB7CkBAIC02MDgsNyArNjU4LDE1
IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAqYnl0ZUF0KG1fcG9zaXRpb24pID0gc3RhdGljX2Nh
c3Q8dWludDhfdD4oUGFkZGluZ1RhZyk7CiAgICAgfQogCi0gICAgdWludDhfdCogYnl0ZUF0KGlu
dCBwb3NpdGlvbikgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4obV9idWZmZXIu
ZGF0YSgpKSArIHBvc2l0aW9uOyB9CisgICAgdWludDhfdCogYnl0ZUF0KGludCBwb3NpdGlvbikK
KyAgICB7CisgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihtX2J1ZmZl
ci5kYXRhKCkpICsgcG9zaXRpb247CisgICAgfQorCisgICAgaW50IHY4U3RyaW5nV3JpdGVPcHRp
b25zKCkKKyAgICB7CisgICAgICAgIHJldHVybiB2ODo6U3RyaW5nOjpOT19OVUxMX1RFUk1JTkFU
SU9OIHwgdjg6OlN0cmluZzo6UFJFU0VSVkVfQVNDSUlfTlVMTDsKKyAgICB9CiAKICAgICBWZWN0
b3I8QnVmZmVyVmFsdWVUeXBlPiBtX2J1ZmZlcjsKICAgICB1bnNpZ25lZCBtX3Bvc2l0aW9uOwpA
QCAtOTcwLDggKzEwMjgsMTEgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgd3JpdGVTdHJpbmcodjg6
OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlKQogICAgIHsKLSAgICAgICAgdjg6OlN0cmluZzo6VXRm
OFZhbHVlIHN0cmluZ1ZhbHVlKHZhbHVlKTsKLSAgICAgICAgbV93cml0ZXIud3JpdGVTdHJpbmco
KnN0cmluZ1ZhbHVlLCBzdHJpbmdWYWx1ZS5sZW5ndGgoKSk7CisgICAgICAgIHY4OjpIYW5kbGU8
djg6OlN0cmluZz4gc3RyaW5nID0gdmFsdWUuQXM8djg6OlN0cmluZz4oKTsKKyAgICAgICAgaWYg
KCFzdHJpbmctPkxlbmd0aCgpIHx8ICFzdHJpbmctPk1heUNvbnRhaW5Ob25Bc2NpaSgpKQorICAg
ICAgICAgICAgbV93cml0ZXIud3JpdGVBc2NpaVN0cmluZyhzdHJpbmcpOworICAgICAgICBlbHNl
CisgICAgICAgICAgICBtX3dyaXRlci53cml0ZVVDaGFyU3RyaW5nKHN0cmluZyk7CiAgICAgfQog
CiAgICAgdm9pZCB3cml0ZVN0cmluZ09iamVjdCh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFsdWUp
CkBAIC0xMjY4LDYgKzEzMjksNyBAQCBwdWJsaWM6CiAgICAgICAgICwgbV92ZXJzaW9uKDApCiAg
ICAgICAgICwgbV9pc29sYXRlKGlzb2xhdGUpCiAgICAgeworICAgICAgICBBU1NFUlQoIShyZWlu
dGVycHJldF9jYXN0PHNpemVfdD4oYnVmZmVyKSAmIDEpKTsKICAgICAgICAgQVNTRVJUKGxlbmd0
aCA+PSAwKTsKICAgICB9CiAKQEAgLTEzMjAsNiArMTM4MiwxMCBAQCBwdWJsaWM6CiAgICAgICAg
ICAgICBpZiAoIXJlYWRTdHJpbmcodmFsdWUpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFN0cmluZ1VDaGFyVGFnOgorICAg
ICAgICAgICAgaWYgKCFyZWFkVUNoYXJTdHJpbmcodmFsdWUpKQorICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFN0cmluZ09iamVj
dFRhZzoKICAgICAgICAgICAgIGlmICghcmVhZFN0cmluZ09iamVjdCh2YWx1ZSkpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTU1MCw2ICsxNjE2LDE5IEBAIHByaXZhdGU6CiAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAorICAgIGJvb2wgcmVhZFVDaGFyU3RyaW5nKHY4
OjpIYW5kbGU8djg6OlZhbHVlPiogdmFsdWUpCisgICAgeworICAgICAgICB1aW50MzJfdCBsZW5n
dGg7CisgICAgICAgIGlmICghZG9SZWFkVWludDMyKCZsZW5ndGgpIHx8IChsZW5ndGggJiAxKSkK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKG1fcG9zaXRpb24gKyBsZW5n
dGggPiBtX2xlbmd0aCkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgQVNTRVJU
KCEobV9wb3NpdGlvbiAmIDEpKTsKKyAgICAgICAgKnZhbHVlID0gdjg6OlN0cmluZzo6TmV3KHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDE2X3QqPihtX2J1ZmZlciArIG1fcG9zaXRpb24pLCBs
ZW5ndGggLyBzaXplb2YoVUNoYXIpKTsKKyAgICAgICAgbV9wb3NpdGlvbiArPSBsZW5ndGg7Cisg
ICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKwogICAgIGJvb2wgcmVhZFN0cmluZ09iamVjdCh2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4qIHZhbHVlKQogICAgIHsKICAgICAgICAgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IHN0cmluZ1ZhbHVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDIyZWVkMjkwNjdkZmZjZTQ2MjEzNGNhYjk2
ZWE2NmE1MWZjM2EzNmYuLjk5OGI2NWY5ZWE0M2RkYzYyNTU2OTBkZjZkOWZiNTgwM2MxMjc2NWYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMi0xMS0yOSAgTm9lbCBHb3Jkb24gIDxub2VsLmdv
cmRvbkBnbWFpbC5jb20+CisKKyAgICAgICAgW3Y4XSBJbXByb3ZlIHdvcmtlci5wb3N0TWVzc2Fn
ZSgpIHN0cmluZyBwZXJmb3JtYW5jZTogYXZvaWQgdXRmOCBzdHJpbmcgY29udmVyc2lvbgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyMjMwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIHNlcmlh
bGl6ZWQtc2NyaXB0LXZhbHVlLWV4cGVjdGVkIHJlc3VsdHMgZm9yIHRoZSBuZXcgU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlCisgICAgICAgIHdpcmUgZm9ybWF0IHZlcnNpb24uIEFkZCB0ZXN0IGNhc2Vz
IGZvciBVQ2hhciBzdHJpbmcgc2VyaWFsaXphdGlvbiB0byB2ZXJpZnkgdGhhdAorICAgICAgICB0
aGUgVUNoYXIgc3RyaW5nIGRhdGEgYXBwZWFycyBvbiBhbiBldmVuLWJ5dGUgYm91bmRhcnkgaW4g
dGhlIHdpcmUgZm9ybWF0LCBhbmQgdG8KKyAgICAgICAgdGVzdCByZWFkaW5nIHN0cmluZyBkYXRh
IGZyb20gdGhlIHByZXZpb3VzIHdpcmUgZm9ybWF0IGlzIGJhY2t3YXJkLWNvbXBhdGlibGUuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L3N0b3JhZ2Uvc2VyaWFsaXplZC1zY3Jp
cHQtdmFsdWUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2Zhc3Qv
c3RvcmFnZS9zZXJpYWxpemVkLXNjcmlwdC12YWx1ZS5odG1sOgorCiAyMDEyLTExLTI4ICBOb2Vs
IEdvcmRvbiAgPG5vZWwuZ29yZG9uQGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIHRl
c3QgZml4OiBjaHJvbWl1bS9mYXN0L3N0b3JhZ2Uvc2VyaWFsaXplZC1zY3JpcHQtdmFsdWUuaHRt
bApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9zdG9yYWdl
L3NlcmlhbGl6ZWQtc2NyaXB0LXZhbHVlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL2Zhc3Qvc3RvcmFnZS9zZXJpYWxpemVkLXNjcmlwdC12YWx1ZS1leHBlY3Rl
ZC50eHQKaW5kZXggNTYzZDBlM2NhMDhmOTc3NTAxYmRlOTJiODFiMzkzMjkyZjJkZDlhOS4uNWU1
NjhjYzQzZTEzYWUwNGE4MDE3ZjM2NzE3NmNjMDU5MGMzMTMxYiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9zdG9yYWdlL3NlcmlhbGl6ZWQtc2NyaXB0LXZh
bHVlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0
L3N0b3JhZ2Uvc2VyaWFsaXplZC1zY3JpcHQtdmFsdWUtZXhwZWN0ZWQudHh0CkBAIC0xMTcsNiAr
MTE3LDE4IEBAIFBBU1MgSlNPTi5zdHJpbmdpZnkobmV3T2JqKSBpcyBKU09OLnN0cmluZ2lmeShv
YmopCiBTZXJpYWxpemUgeyJoZWxsbyI6InRoZXJlIn06CiBQQVNTIGJ1ZmZlclZpZXcubGVuZ3Ro
IGlzIGV4cGVjdGVkQnVmZmVyVmFsdWVzLmxlbmd0aAogCitEZXNlcmlhbGl6ZSB0byB7ImEiOiJh
IiwidSI6Is6xzrIifToKK1BBU1MgSlNPTi5zdHJpbmdpZnkobmV3T2JqKSBpcyBKU09OLnN0cmlu
Z2lmeShvYmopCitQQVNTIEpTT04uc3RyaW5naWZ5KG5ld09iaikgaXMgSlNPTi5zdHJpbmdpZnko
b2JqKQorU2VyaWFsaXplIHsiYSI6ImEiLCJ1IjoizrHOsiJ9OgorUEFTUyBidWZmZXJWaWV3Lmxl
bmd0aCBpcyBleHBlY3RlZEJ1ZmZlclZhbHVlcy5sZW5ndGgKKworRGVzZXJpYWxpemUgdG8geyJh
IjoiYWIiLCJ1IjoizrHOsiJ9OgorUEFTUyBKU09OLnN0cmluZ2lmeShuZXdPYmopIGlzIEpTT04u
c3RyaW5naWZ5KG9iaikKK1BBU1MgSlNPTi5zdHJpbmdpZnkobmV3T2JqKSBpcyBKU09OLnN0cmlu
Z2lmeShvYmopCitTZXJpYWxpemUgeyJhIjoiYWIiLCJ1IjoizrHOsiJ9OgorUEFTUyBidWZmZXJW
aWV3Lmxlbmd0aCBpcyBleHBlY3RlZEJ1ZmZlclZhbHVlcy5sZW5ndGgKKwogU2VyaWFsaXplIHVu
ZGVmaW5lZDoKIFBBU1MgdGhyb3duRXhjZXB0aW9uLmNvZGUgaXMgZXhwZWN0ZWRFeGNlcHRpb24K
IFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL2Zhc3Qvc3RvcmFnZS9zZXJpYWxpemVkLXNjcmlwdC12YWx1ZS5o
dG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9zdG9yYWdlL3NlcmlhbGl6
ZWQtc2NyaXB0LXZhbHVlLmh0bWwKaW5kZXggNzE1YTkxMTAwN2NlZTgxOWQ1MTc0NzY4NTMyNGZk
YTQ2YTE5ZGFkNC4uNDY0MWFlZDk4MTE3NDU1YzEzZTFlYmIzOWQ3ZTU5ZjVhNjBjMmY5MSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9zdG9yYWdlL3Nlcmlh
bGl6ZWQtc2NyaXB0LXZhbHVlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vZmFzdC9zdG9yYWdlL3NlcmlhbGl6ZWQtc2NyaXB0LXZhbHVlLmh0bWwKQEAgLTgyLDcgKzgy
LDcgQEAgZnVuY3Rpb24gdGVzdFNlcmlhbGl6YXRpb24ob2JqLCB2YWx1ZXMsIG9sZEZvcm1hdCwg
c2VyaWFsaXplRXhjZXB0aW9uVmFsdWUpIHsKIC8vIGFyZSBvbmx5IHBlcnNpc3RlZCBvdXQgaW4g
dGhlIHdvcmxkIGluIEluZGV4ZWREQiBzdG9yZXMgdGhhdCB3ZXJlCiAvLyB3cml0dGVuIHdpdGgg
aW1wbGVtZW50YXRpb25zIGJ1aWx0IGJlZm9yZSBtaWQtMjAxMS4KIHRlc3RTZXJpYWxpemF0aW9u
KHtmb286ICd6b28nLCBiYXI6IHtiYXo6ICdteU5ld0tleSd9fSwKLSAgICAgICAgICAgICAgICAg
IFsgMHgwMWZmLCAweDAwM2YsIDB4M2Y2ZiwgMHg1MzAxLCAweDY2MDMsCisgICAgICAgICAgICAg
ICAgICBbIDB4MDJmZiwgMHgwMDNmLCAweDNmNmYsIDB4NTMwMSwgMHg2NjAzLAogICAgICAgICAg
ICAgICAgICAgICAweDZmNmYsIDB4MDEzZiwgMHgwMzUzLCAweDZmN2EsIDB4M2Y2ZiwKICAgICAg
ICAgICAgICAgICAgICAgMHg1MzAxLCAweDYyMDMsIDB4NzI2MSwgMHgwMTNmLCAweDNmNmYsCiAg
ICAgICAgICAgICAgICAgICAgIDB4NTMwMiwgMHg2MjAzLCAweDdhNjEsIDB4MDIzZiwgMHgwODUz
LApAQCAtOTAsNjEgKzkwLDgxIEBAIHRlc3RTZXJpYWxpemF0aW9uKHtmb286ICd6b28nLCBiYXI6
IHtiYXo6ICdteU5ld0tleSd9fSwKICAgICAgICAgICAgICAgICAgICAgMHgwMjdiIF0pOwogCiB0
ZXN0U2VyaWFsaXphdGlvbih7Zm9vOiAnem9vJywgYmFyOiAnbXlOZXdLZXknfSwKLSAgICAgICAg
ICAgICAgICAgIFsweDAxZmYsIDB4MDAzZiwgMHgzZjZmLCAweDUzMDEsIDB4NjYwMywKKyAgICAg
ICAgICAgICAgICAgIFsweDAyZmYsIDB4MDAzZiwgMHgzZjZmLCAweDUzMDEsIDB4NjYwMywKICAg
ICAgICAgICAgICAgICAgICAweDZmNmYsIDB4MDEzZiwgMHgwMzUzLCAweDZmN2EsIDB4M2Y2ZiwK
ICAgICAgICAgICAgICAgICAgICAweDUzMDEsIDB4NjIwMywgMHg3MjYxLCAweDAxM2YsIDB4MDg1
MywKICAgICAgICAgICAgICAgICAgICAweDc5NmQsIDB4NjU0ZSwgMHg0Yjc3LCAweDc5NjUsIDB4
MDI3Yl0pOwogCi10ZXN0U2VyaWFsaXphdGlvbihbXSwgWzB4MDFmZiwgMHgwMDNmLCAweDAwNDEs
IDB4MDAyNCwgMHgwMDAwIF0pOwordGVzdFNlcmlhbGl6YXRpb24oW10sIFsweDAyZmYsIDB4MDAz
ZiwgMHgwMDQxLCAweDAwMjQsIDB4MDAwMCBdKTsKIHRlc3RTZXJpYWxpemF0aW9uKHtmb286ICJ6
b28ifSwKLSAgICAgICAgICAgICAgICAgIFsweDAxZmYsIDB4MDAzZiwgMHgzZjZmLCAweDUzMDEs
IDB4NjYwMywgMHg2ZjZmLAorICAgICAgICAgICAgICAgICAgWzB4MDJmZiwgMHgwMDNmLCAweDNm
NmYsIDB4NTMwMSwgMHg2NjAzLCAweDZmNmYsCiAgICAgICAgICAgICAgICAgICAgMHgwMTNmLCAw
eDAzNTMsIDB4NmY3YSwgMHg3YjZmLCAweDAwMDFdLAogICAgICAgICAgICAgICAgICAgWzB4MDM1
MywgMHg2ZjY2LCAweDUzNmYsIDB4N2EwMywgMHg2ZjZmLCAweDAxN2JdKTsKIHRlc3RTZXJpYWxp
emF0aW9uKHtmb286IG51bGx9LAotICAgICAgICAgICAgICAgICAgWzB4MDFmZiwgMHgwMDNmLCAw
eDNmNmYsIDB4NTMwMSwgMHg2NjAzLCAweDZmNmYsCisgICAgICAgICAgICAgICAgICBbMHgwMmZm
LCAweDAwM2YsIDB4M2Y2ZiwgMHg1MzAxLCAweDY2MDMsIDB4NmY2ZiwKICAgICAgICAgICAgICAg
ICAgICAweDAxM2YsIDB4N2IzMCwgMHgwMDAxXSwKICAgICAgICAgICAgICAgICAgIFsweDAzNTMs
IDB4NmY2NiwgMHgzMDZmLCAweDAxN2JdKTsKLXRlc3RTZXJpYWxpemF0aW9uKHt9LCBbMHgwMWZm
LCAweDAwM2YsIDB4N2I2ZiwgMHgwMDAwXSwgWzB4MDA3Yl0pOwordGVzdFNlcmlhbGl6YXRpb24o
e30sIFsweDAyZmYsIDB4MDAzZiwgMHg3YjZmLCAweDAwMDBdLCBbMHgwMDdiXSk7CiAKLXRlc3RT
ZXJpYWxpemF0aW9uKHVuZGVmaW5lZCwgWzB4MDFmZiwgMHgwMDNmLCAweDAwNWZdKTsKLXRlc3RT
ZXJpYWxpemF0aW9uKHRydWUsIFsweDAxZmYsIDB4MDAzZiwgMHgwMDU0XSk7Ci10ZXN0U2VyaWFs
aXphdGlvbihmYWxzZSwgWzB4MDFmZiwgMHgwMDNmLCAweDAwNDZdKTsKK3Rlc3RTZXJpYWxpemF0
aW9uKHVuZGVmaW5lZCwgWzB4MDJmZiwgMHgwMDNmLCAweDAwNWZdKTsKK3Rlc3RTZXJpYWxpemF0
aW9uKHRydWUsIFsweDAyZmYsIDB4MDAzZiwgMHgwMDU0XSk7Cit0ZXN0U2VyaWFsaXphdGlvbihm
YWxzZSwgWzB4MDJmZiwgMHgwMDNmLCAweDAwNDZdKTsKIC8vIFNwYXJzZSBhcnJheSBkZXNlcmlh
bGl6YXRpb24gaXMgYnJva2VuLgogLy8gU2VlOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9OTY4MzgKLS8vIHRlc3RTZXJpYWxpemF0aW9uKG5ldyBBcnJheSgxMDApLCBb
MHgwMWZmLCAweDAwM2YsIDB4NjQ2MSwgMHgwMDQwLCAweDAwNjRdKTsKLXRlc3RTZXJpYWxpemF0
aW9uKDEwLCBbMHgwMWZmLCAweDAwM2YsIDB4MTQ0OV0pOwotdGVzdFNlcmlhbGl6YXRpb24oLTEw
LCBbMHgwMWZmLCAweDAwM2YsIDB4MTM0OV0pOwotdGVzdFNlcmlhbGl6YXRpb24oTWF0aC5wb3co
MiwzMCksIFsweDAxZmYsIDB4MDAzZiwgMHg4MDQ5LCAweDgwODAsIDB4MDg4MF0pOwotdGVzdFNl
cmlhbGl6YXRpb24oTWF0aC5wb3coMiw1NSksIFsweDAxZmYsIDB4MDAzZiwgMHgwMDRlLCAweDAw
MDAsIDB4MDAwMCwKKy8vIHRlc3RTZXJpYWxpemF0aW9uKG5ldyBBcnJheSgxMDApLCBbMHgwMmZm
LCAweDAwM2YsIDB4NjQ2MSwgMHgwMDQwLCAweDAwNjRdKTsKK3Rlc3RTZXJpYWxpemF0aW9uKDEw
LCBbMHgwMmZmLCAweDAwM2YsIDB4MTQ0OV0pOwordGVzdFNlcmlhbGl6YXRpb24oLTEwLCBbMHgw
MmZmLCAweDAwM2YsIDB4MTM0OV0pOwordGVzdFNlcmlhbGl6YXRpb24oTWF0aC5wb3coMiwzMCks
IFsweDAyZmYsIDB4MDAzZiwgMHg4MDQ5LCAweDgwODAsIDB4MDg4MF0pOwordGVzdFNlcmlhbGl6
YXRpb24oTWF0aC5wb3coMiw1NSksIFsweDAyZmYsIDB4MDAzZiwgMHgwMDRlLCAweDAwMDAsIDB4
MDAwMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2MDAwLCAweDAwNDNd
KTsKLXRlc3RTZXJpYWxpemF0aW9uKDEuMjMsIFsweDAxZmYsIDB4MDAzZiwgMHhhZTRlLCAweGUx
NDcsIDB4MTQ3YSwgMHhmM2FlLCAweDAwM2ZdKTsKLXRlc3RTZXJpYWxpemF0aW9uKCIiLCBbMHgw
MWZmLCAweDAwM2YsIDB4MDA1M10pOwotdGVzdFNlcmlhbGl6YXRpb24oImFiYyIsIFsweDAxZmYs
IDB4MDAzZiwgMHgwMzUzLCAweDYyNjEsIDB4MDA2M10pOwotdGVzdFNlcmlhbGl6YXRpb24oe2lu
dGVnZXI6IDEyM30sIFsweDAxZmYsIDB4MDAzZiwgMHgzZjZmLCAweDUzMDEsIDB4NjkwNywKK3Rl
c3RTZXJpYWxpemF0aW9uKDEuMjMsIFsweDAyZmYsIDB4MDAzZiwgMHhhZTRlLCAweGUxNDcsIDB4
MTQ3YSwgMHhmM2FlLCAweDAwM2ZdKTsKK3Rlc3RTZXJpYWxpemF0aW9uKCIiLCBbMHgwMmZmLCAw
eDAwM2YsIDB4MDA1M10pOwordGVzdFNlcmlhbGl6YXRpb24oImFiYyIsIFsweDAyZmYsIDB4MDAz
ZiwgMHgwMzUzLCAweDYyNjEsIDB4MDA2M10pOwordGVzdFNlcmlhbGl6YXRpb24oe2ludGVnZXI6
IDEyM30sIFsweDAyZmYsIDB4MDAzZiwgMHgzZjZmLCAweDUzMDEsIDB4NjkwNywKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3NDZlLCAweDY3NjUsIDB4NzI2NSwgMHgwMTNm
LCAweGY2NDksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N2IwMSwgMHgw
MDAxXSk7Ci10ZXN0U2VyaWFsaXphdGlvbih7c3RyaW5nOiAic3RyIn0sIFsweDAxZmYsIDB4MDAz
ZiwgMHgzZjZmLCAweDUzMDEsIDB4NzMwNiwKK3Rlc3RTZXJpYWxpemF0aW9uKHtzdHJpbmc6ICJz
dHIifSwgWzB4MDJmZiwgMHgwMDNmLCAweDNmNmYsIDB4NTMwMSwgMHg3MzA2LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3Mjc0LCAweDZlNjksIDB4M2Y2NywgMHg1MzAx
LCAweDczMDMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcyNzQsIDB4
MDE3Yl0pOwotdGVzdFNlcmlhbGl6YXRpb24oe2xpc3Q6IFsxLDIsM119LCBbMHgwMWZmLCAweDAw
M2YsIDB4M2Y2ZiwgMHg1MzAxLCAweDZjMDQsCit0ZXN0U2VyaWFsaXphdGlvbih7bGlzdDogWzEs
MiwzXX0sIFsweDAyZmYsIDB4MDAzZiwgMHgzZjZmLCAweDUzMDEsIDB4NmMwNCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzM2OSwgMHgzZjc0LCAweDQxMDEsIDB4M2Yw
MywgMHg0OTAyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgzZjAyLCAw
eDQ5MDIsIDB4M2YwNCwgMHg0OTAyLCAweDI0MDYsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAweDAzMDAsIDB4MDE3Yl0pOwotdGVzdFNlcmlhbGl6YXRpb24obnVsbCwgWzB4
MDFmZiwgMHgwMDNmLCAweDAwMzBdKTsKLXRlc3RTZXJpYWxpemF0aW9uKC9hYmMvLCBbMHgwMWZm
LCAweDAwM2YsIDB4MDM1MiwgMHg2MjYxLCAweDAwNjNdKTsKK3Rlc3RTZXJpYWxpemF0aW9uKG51
bGwsIFsweDAyZmYsIDB4MDAzZiwgMHgwMDMwXSk7Cit0ZXN0U2VyaWFsaXphdGlvbigvYWJjLywg
WzB4MDJmZiwgMHgwMDNmLCAweDAzNTIsIDB4NjI2MSwgMHgwMDYzXSk7CiAKIHZhciBpbm5lck9i
amVjdCA9IHtoZWxsbzogInRoZXJlIn07CiB2YXIgb3V0ZXJPYmplY3QgPSB7aW5uZXI6IGlubmVy
T2JqZWN0fTsKIG91dGVyT2JqZWN0WydvdXRlciddID0gaW5uZXJPYmplY3Q7Ci10ZXN0U2VyaWFs
aXphdGlvbihvdXRlck9iamVjdCwgWzB4MDFmZiwgMHgwMDNmLCAweDNmNmYsIDB4NTMwMSwgMHg2
OTA1LAordGVzdFNlcmlhbGl6YXRpb24ob3V0ZXJPYmplY3QsIFsweDAyZmYsIDB4MDAzZiwgMHgz
ZjZmLCAweDUzMDEsIDB4NjkwNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2
ZTZlLCAweDcyNjUsIDB4MDEzZiwgMHgzZjZmLCAweDUzMDIsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDB4NjgwNSwgMHg2YzY1LCAweDZmNmMsIDB4MDIzZiwgMHgwNTUzLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDY4NzQsIDB4NzI2NSwgMHg3YjY1LCAweDNm
MDEsIDB4NTMwMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2ZjA1LCAweDc0
NzUsIDB4NzI2NSwgMHgwMjNmLCAweDAxNWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDB4MDI3Yl0pOwotdGVzdFNlcmlhbGl6YXRpb24oaW5uZXJPYmplY3QsIFsweDAxZmYsIDB4
MDAzZiwgMHgzZjZmLCAweDUzMDEsIDB4NjgwNSwKK3Rlc3RTZXJpYWxpemF0aW9uKGlubmVyT2Jq
ZWN0LCBbMHgwMmZmLCAweDAwM2YsIDB4M2Y2ZiwgMHg1MzAxLCAweDY4MDUsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDB4NmM2NSwgMHg2ZjZjLCAweDAxM2YsIDB4MDU1MywgMHg2
ODc0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcyNjUsIDB4N2I2NSwgMHgw
MDAxXSk7CisKK3ZhciB1bmljb2RlT2JqZWN0ID0ge2E6ICdhJywgdTogU3RyaW5nLmZyb21DaGFy
Q29kZSgweDAzQjEsMHgwM0IyKX07Cit0ZXN0U2VyaWFsaXphdGlvbih1bmljb2RlT2JqZWN0LAor
ICAgICAgICAgICAgICAgICAgWzB4MDJmZiwgMHgwMDNmLCAweDNmNmYsIDB4NTMwMSwgMHg2MTAx
LAorICAgICAgICAgICAgICAgICAgIDB4MDEzZiwgMHgwMTUzLCAweDNmNjEsIDB4NTMwMSwgMHg3
NTAxLAorICAgICAgICAgICAgICAgICAgIDB4MDEzZiwgMHgwNDYzLCAweDAzYjEsIDB4MDNiMiwg
MHgwMjdiXSwKKyAgICAgICAgICAgICAgICAgIFsweDAxZmYsIDB4MDAzZiwgMHgzZjZmLCAweDUz
MDEsIDB4NjEwMSwKKyAgICAgICAgICAgICAgICAgICAweDAxM2YsIDB4MDE1MywgMHgzZjYxLCAw
eDUzMDEsIDB4NzUwMSwKKyAgICAgICAgICAgICAgICAgICAweDAxM2YsIDB4MDQ1MywgMHhiMWNl
LCAweGIyY2UsIDB4MDI3Yl0pOwordW5pY29kZU9iamVjdC5hID0gJ2FiJzsKK3Rlc3RTZXJpYWxp
emF0aW9uKHVuaWNvZGVPYmplY3QsCisgICAgICAgICAgICAgICAgICBbMHgwMmZmLCAweDAwM2Ys
IDB4M2Y2ZiwgMHg1MzAxLCAweDYxMDEsCisgICAgICAgICAgICAgICAgICAgMHgwMTNmLCAweDAy
NTMsIDB4NjI2MSwgMHgwMTNmLCAweDAxNTMsCisgICAgICAgICAgICAgICAgICAgMHgzZjc1LCAw
eDAwMDEsIDB4MDQ2MywgMHgwM2IxLCAweDAzYjIsCisgICAgICAgICAgICAgICAgICAgMHgwMjdi
XSwKKyAgICAgICAgICAgICAgICAgIFsweDAxZmYsIDB4MDAzZiwgMHgzZjZmLCAweDUzMDEsIDB4
NjEwMSwKKyAgICAgICAgICAgICAgICAgICAweDAxM2YsIDB4MDI1MywgMHg2MjYxLCAweDAxM2Ys
IDB4MDE1MywKKyAgICAgICAgICAgICAgICAgICAweDNmNzUsIDB4NTMwMSwgMHhjZTA0LCAweGNl
YjEsIDB4N2JiMiwKKyAgICAgICAgICAgICAgICAgICAweDAwMDJdKTsKKwogdGVzdFNlcmlhbGl6
YXRpb24oZnVuY3Rpb24oKXt9LCBbXSwgbnVsbCwgRE9NRXhjZXB0aW9uLkRBVEFfQ0xPTkVfRVJS
KTsKICAgICAgICAgPC9zY3JpcHQ+CiAgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176875</attachid>
            <date>2012-11-29 18:09:10 -0800</date>
            <delta_ts>2012-12-04 20:29:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102230-20121130130642.patch</filename>
            <type>text/plain</type>
            <size>17035</size>
            <attacher name="noel gordon">noel.gordon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2MDg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzAyYjhjMDBiZjYyN2Y5
ZjEyMjgyMDU1YTYxNjUyNDQ1MzJjNTQ1OC4uYmJlN2RjNzQxNjg3MTg0OTY2MDY0OGNlZmJhOGU5
ODM2MmI3NGQ0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTExLTI5ICBOb2Vs
IEdvcmRvbiAgPG5vZWwuZ29yZG9uQGdtYWlsLmNvbT4KKworICAgICAgICBbdjhdIEltcHJvdmUg
d29ya2VyLnBvc3RNZXNzYWdlKCkgc3RyaW5nIHBlcmZvcm1hbmNlOiBhdm9pZCB1dGY4IGNvbnZl
cnNpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
MjIzMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEF2
b2lkIHV0ZjggY29udmVyc2lvbiB3aGVuIHNlcmlhbGl6aW5nIHN0cmluZ3Mgd2l0aCBTZXJpYWxp
emVkU2NyaXB0VmFsdWUuIFByb3ZpZGUgCisgICAgICAgIEFzY2lpIGFuZCBVQ2hhciB3cml0ZXJz
IGZvciB2OCBzdHJpbmcgc2VyaWFsaXphdGlvbiBhbmQgcHJvdmlkZSBhIFVDaGFyIHJlYWRlciBm
b3IKKyAgICAgICAgZGVzZXJpYWxpemF0aW9uLiBEZWZpbmUvdXNlIHNlcmlhbGl6YXRpb24gU3Ry
aW5nVUNoYXJUYWcgdG8gaW5kaWNhdGUgVUNoYXIgc3RyaW5ncworICAgICAgICBpbiB0aGUgd2ly
ZSBmb3JtYXQuIEluY3JlbWVudCB0aGUgU2VyaWFsaXplZFNjcmlwdFZhbHVlIHdpcmUgZm9ybWF0
IHZlcnNpb24uCisKKyAgICAgICAgSW4gdGhlIHdpcmUgZm9ybWF0LCBTdHJpbmdVQ2hhclRhZyBp
cyBmb2xsb3dlZCBieSB0aGUgc3RyaW5nIGxlbmd0aCBpbiBieXRlcywgdGhlbgorICAgICAgICB0
aGUgbGVuZ3RoLzIgVUNoYXJzIG9mIHRoZSBzdHJpbmcuCisKKyAgICAgICAgTm90ZSB0aGUgc3Ry
aW5nIGxlbmd0aCBpcyBWYXJJbnQgZW5jb2RlZC4gRHVyaW5nIHNlcmlhbGl6YXRpb24sIGNvbXB1
dGUgdGhlIG51bWJlcgorICAgICAgICBvZiBieXRlcyB1c2VkIHRvIGVuY29kZSB0aGUgbGVuZ3Ro
IGFuZCBwcmVwZW5kIGEgUGFkZGluZ1RhZyBpZiBuZWVkZWQgc28gdGhlIFVDaGFyCisgICAgICAg
IGRhdGEgYXBwZWFycyBvbiBhbiBldmVuLWJ5dGUgYm91bmRhcnkuIFRoaXMgcHJldmVudHMgdW5h
bGlnbmVkIHJlYWRzIG9mIFVDaGFyIGRhdGEKKyAgICAgICAgZHVyaW5nIGRlc2VyaWFsaXphdGlv
biAodGhlIGRlc2VyaWFsaXphdGlvbiBidWZmZXIgaXMgZXZlbi1ieXRlIGFsaWduZWQpLgorCisg
ICAgICAgIFRlc3RpbmcgdHJhbnNmZXJzIG9mIGxhcmdlIHN0cmluZ3MgdG8gYW5kIGZyb20gd29y
a2VycyBpbmRpY2F0ZXMgYSAxMFggaW1wcm92ZW1lbnQKKyAgICAgICAgaW4gdHJhbnNmZXIgcmF0
ZSBmb3Igc3RyaW5ncywgYW5kIHN0cmluZ3Mgd2l0aGluIGpzIG9iamVjdHMsIHdpdGggdGhpcyBj
aGFuZ2UuIEZvcgorICAgICAgICBleGFtcGxlLCA1MDAgTUJ5dGUvcyBvbiBteSB0ZXN0IG1hY2hp
bmUgKDUwIE1CeXRlL3Mgd2l0aG91dCB0aGlzIGNoYW5nZSkgZm9yIGZsYXQsCisgICAgICAgIDMy
IE1CeXRlIHN0cmluZyBwb3N0TWVzc2FnZSgpIHRyYW5zZmVycy4KKworICAgICAgICBDb3ZlcmVk
IGJ5IHBsYXRmb3JtL2Nocm9taXVtL2Zhc3Qvc3RvcmFnZS9zZXJpYWxpemVkLXNjcmlwdC12YWx1
ZS5odG1sCisKKyAgICAgICAgKiBiaW5kaW5ncy92OC9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3Bw
OgorCiAyMDEyLTExLTI4ICBKb3NodWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgW0Nocm9taXVtXSBJbmRleGVkREI6IEFzc2VydC9jcmFzaCBpbiBpbmRleGluZyBsYXlv
dXQgdGVzdHMgaW4gY29udGVudF9zaGVsbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKaW5kZXggYjYxOTEwNTg2NTAwZDc5MzNh
MjNhZWI5ZTNkNTU0YTNhOTJmMGMxYi4uMjhlNWZjM2RlYTdkNjZhNWU0NTJhMWVhNDI0YWZhYjA1
ZTkzZDI5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TZXJpYWxp
emVkU2NyaXB0VmFsdWUuY3BwCkBAIC0xNjgsNiArMTY4LDcgQEAgdHlwZWRlZiBVQ2hhciBCdWZm
ZXJWYWx1ZVR5cGU7CiAKIC8vIFdlYkNvcmVTdHJpbmdzIGFyZSByZWFkIGFzIChsZW5ndGg6dWlu
dDMyX3QsIHN0cmluZzpVVEY4W2xlbmd0aF0pLgogLy8gUmF3U3RyaW5ncyBhcmUgcmVhZCBhcyAo
bGVuZ3RoOnVpbnQzMl90LCBzdHJpbmc6VVRGOFtsZW5ndGhdKS4KKy8vIFJhd1VDaGFyU3RyaW5n
cyBhcmUgcmVhZCBhcyAobGVuZ3RoOnVpbnQzMl90LCBzdHJpbmc6VUNoYXJbbGVuZ3RoL3NpemVv
ZihVQ2hhcildKS4KIC8vIFJhd0ZpbGVzIGFyZSByZWFkIGFzIChwYXRoOldlYkNvcmVTdHJpbmcs
IHVybDpXZWJDb3JlU3RybmcsIHR5cGU6V2ViQ29yZVN0cmluZykuCiAvLyBUaGVyZSBpcyBhIHJl
ZmVyZW5jZSB0YWJsZSB0aGF0IG1hcHMgb2JqZWN0IHJlZmVyZW5jZXMgKHVpbnQzMl90KSB0byB2
ODo6VmFsdWVzLgogLy8gVG9rZW5zIG1hcmtlZCB3aXRoIChyZWYpIGFyZSBpbnNlcnRlZCBpbnRv
IHRoZSByZWZlcmVuY2UgdGFibGUgYW5kIGdpdmVuIHRoZSBuZXh0IG9iamVjdCByZWZlcmVuY2Ug
SUQgYWZ0ZXIgZGVjb2RpbmcuCkBAIC0xODUsNiArMTg2LDcgQEAgZW51bSBTZXJpYWxpemF0aW9u
VGFnIHsKICAgICBUcnVlVGFnID0gJ1QnLCAvLyAtPiA8dHJ1ZT4KICAgICBGYWxzZVRhZyA9ICdG
JywgLy8gLT4gPGZhbHNlPgogICAgIFN0cmluZ1RhZyA9ICdTJywgLy8gc3RyaW5nOlJhd1N0cmlu
ZyAtPiBzdHJpbmcKKyAgICBTdHJpbmdVQ2hhclRhZyA9ICdjJywgLy8gc3RyaW5nOlJhd1VDaGFy
U3RyaW5nIC0+IHN0cmluZwogICAgIEludDMyVGFnID0gJ0knLCAvLyB2YWx1ZTpaaWdaYWctZW5j
b2RlZCBpbnQzMiAtPiBJbnRlZ2VyCiAgICAgVWludDMyVGFnID0gJ1UnLCAvLyB2YWx1ZTp1aW50
MzJfdCAtPiBJbnRlZ2VyCiAgICAgRGF0ZVRhZyA9ICdEJywgLy8gdmFsdWU6ZG91YmxlIC0+IERh
dGUgKHJlZikKQEAgLTI0Miw3ICsyNDQsOCBAQCBzdGF0aWMgYm9vbCBzaG91bGRDaGVja0ZvckN5
Y2xlcyhpbnQgZGVwdGgpCiB9CiAKIC8vIEluY3JlbWVudCB0aGlzIGZvciBlYWNoIGluY29tcGF0
aWJsZSBjaGFuZ2UgdG8gdGhlIHdpcmUgZm9ybWF0Lgotc3RhdGljIGNvbnN0IHVpbnQzMl90IHdp
cmVGb3JtYXRWZXJzaW9uID0gMTsKKy8vIFZlcnNpb24gMjogQWRkZWQgU3RyaW5nVUNoYXJUYWcg
Zm9yIFVDaGFyIHY4IHN0cmluZ3MuCitzdGF0aWMgY29uc3QgdWludDMyX3Qgd2lyZUZvcm1hdFZl
cnNpb24gPSAyOwogCiBzdGF0aWMgY29uc3QgaW50IG1heERlcHRoID0gMjAwMDA7CiAKQEAgLTMw
OSw2ICszMTIsNDAgQEAgcHVibGljOgogICAgICAgICBkb1dyaXRlU3RyaW5nKGRhdGEsIGxlbmd0
aCk7CiAgICAgfQogCisgICAgdm9pZCB3cml0ZUFzY2lpU3RyaW5nKHY4OjpIYW5kbGU8djg6OlN0
cmluZz4mIHN0cmluZykKKyAgICB7CisgICAgICAgIGludCBsZW5ndGggPSBzdHJpbmctPkxlbmd0
aCgpOworICAgICAgICBBU1NFUlQobGVuZ3RoID49IDApOworCisgICAgICAgIGFwcGVuZChTdHJp
bmdUYWcpOworICAgICAgICBkb1dyaXRlVWludDMyKHN0YXRpY19jYXN0PHVpbnQzMl90PihsZW5n
dGgpKTsKKyAgICAgICAgZW5zdXJlU3BhY2UobGVuZ3RoKTsKKworICAgICAgICBjaGFyKiBidWZm
ZXIgPSByZWludGVycHJldF9jYXN0PGNoYXIqPihieXRlQXQobV9wb3NpdGlvbikpOworICAgICAg
ICBzdHJpbmctPldyaXRlQXNjaWkoYnVmZmVyLCAwLCBsZW5ndGgsIHY4U3RyaW5nV3JpdGVPcHRp
b25zKCkpOworICAgICAgICBtX3Bvc2l0aW9uICs9IGxlbmd0aDsKKyAgICB9CisKKyAgICB2b2lk
IHdyaXRlVUNoYXJTdHJpbmcodjg6OkhhbmRsZTx2ODo6U3RyaW5nPiYgc3RyaW5nKQorICAgIHsK
KyAgICAgICAgaW50IGxlbmd0aCA9IHN0cmluZy0+TGVuZ3RoKCk7CisgICAgICAgIEFTU0VSVChs
ZW5ndGggPj0gMCk7CisKKyAgICAgICAgaW50IHNpemUgPSBsZW5ndGggKiBzaXplb2YoVUNoYXIp
OworICAgICAgICBpbnQgYnl0ZXMgPSBieXRlc05lZWRlZFRvV2lyZUVuY29kZShzdGF0aWNfY2Fz
dDx1aW50MzJfdD4oc2l6ZSkpOworICAgICAgICBpZiAoKG1fcG9zaXRpb24gKyAxICsgYnl0ZXMp
ICYgMSkKKyAgICAgICAgICAgIGFwcGVuZChQYWRkaW5nVGFnKTsKKworICAgICAgICBhcHBlbmQo
U3RyaW5nVUNoYXJUYWcpOworICAgICAgICBkb1dyaXRlVWludDMyKHN0YXRpY19jYXN0PHVpbnQz
Ml90PihzaXplKSk7CisgICAgICAgIGVuc3VyZVNwYWNlKHNpemUpOworCisgICAgICAgIEFTU0VS
VCghKG1fcG9zaXRpb24gJiAxKSk7CisgICAgICAgIHVpbnQxNl90KiBidWZmZXIgPSByZWludGVy
cHJldF9jYXN0PHVpbnQxNl90Kj4oYnl0ZUF0KG1fcG9zaXRpb24pKTsKKyAgICAgICAgc3RyaW5n
LT5Xcml0ZShidWZmZXIsIDAsIGxlbmd0aCwgdjhTdHJpbmdXcml0ZU9wdGlvbnMoKSk7CisgICAg
ICAgIG1fcG9zaXRpb24gKz0gc2l6ZTsKKyAgICB9CisKICAgICB2b2lkIHdyaXRlU3RyaW5nT2Jq
ZWN0KGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgpCiAgICAgewogICAgICAgICBBU1NFUlQo
bGVuZ3RoID49IDApOwpAQCAtNTQ2LDYgKzU4MywxOSBAQCBwcml2YXRlOgogICAgICAgICBkb1dy
aXRlU3RyaW5nKGJ1ZmZlci0+ZGF0YSgpLCBidWZmZXItPnNpemUoKSk7CiAgICAgfQogCisgICAg
aW50IGJ5dGVzTmVlZGVkVG9XaXJlRW5jb2RlKHVpbnQzMl90IHZhbHVlKQorICAgIHsKKyAgICAg
ICAgaW50IGJ5dGVzID0gMTsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIHZh
bHVlID4+PSB2YXJJbnRTaGlmdDsKKyAgICAgICAgICAgIGlmICghdmFsdWUpCisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICArK2J5dGVzOworICAgICAgICB9CisKKyAgICAgICAg
cmV0dXJuIGJ5dGVzOworICAgIH0KKwogICAgIHRlbXBsYXRlPGNsYXNzIFQ+CiAgICAgdm9pZCBk
b1dyaXRlVWludEhlbHBlcihUIHZhbHVlKQogICAgIHsKQEAgLTYwOCw3ICs2NTgsMTUgQEAgcHJp
dmF0ZToKICAgICAgICAgICAgICpieXRlQXQobV9wb3NpdGlvbikgPSBzdGF0aWNfY2FzdDx1aW50
OF90PihQYWRkaW5nVGFnKTsKICAgICB9CiAKLSAgICB1aW50OF90KiBieXRlQXQoaW50IHBvc2l0
aW9uKSB7IHJldHVybiByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihtX2J1ZmZlci5kYXRhKCkp
ICsgcG9zaXRpb247IH0KKyAgICB1aW50OF90KiBieXRlQXQoaW50IHBvc2l0aW9uKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KG1fYnVmZmVyLmRhdGEo
KSkgKyBwb3NpdGlvbjsKKyAgICB9CisKKyAgICBpbnQgdjhTdHJpbmdXcml0ZU9wdGlvbnMoKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIHY4OjpTdHJpbmc6Ok5PX05VTExfVEVSTUlOQVRJT04gfCB2
ODo6U3RyaW5nOjpQUkVTRVJWRV9BU0NJSV9OVUxMOworICAgIH0KIAogICAgIFZlY3RvcjxCdWZm
ZXJWYWx1ZVR5cGU+IG1fYnVmZmVyOwogICAgIHVuc2lnbmVkIG1fcG9zaXRpb247CkBAIC05NzAs
OCArMTAyOCwxMSBAQCBwcml2YXRlOgogCiAgICAgdm9pZCB3cml0ZVN0cmluZyh2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gdmFsdWUpCiAgICAgewotICAgICAgICB2ODo6U3RyaW5nOjpVdGY4VmFsdWUg
c3RyaW5nVmFsdWUodmFsdWUpOwotICAgICAgICBtX3dyaXRlci53cml0ZVN0cmluZygqc3RyaW5n
VmFsdWUsIHN0cmluZ1ZhbHVlLmxlbmd0aCgpKTsKKyAgICAgICAgdjg6OkhhbmRsZTx2ODo6U3Ry
aW5nPiBzdHJpbmcgPSB2YWx1ZS5Bczx2ODo6U3RyaW5nPigpOworICAgICAgICBpZiAoIXN0cmlu
Zy0+TGVuZ3RoKCkgfHwgIXN0cmluZy0+TWF5Q29udGFpbk5vbkFzY2lpKCkpCisgICAgICAgICAg
ICBtX3dyaXRlci53cml0ZUFzY2lpU3RyaW5nKHN0cmluZyk7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIG1fd3JpdGVyLndyaXRlVUNoYXJTdHJpbmcoc3RyaW5nKTsKICAgICB9CiAKICAgICB2
b2lkIHdyaXRlU3RyaW5nT2JqZWN0KHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2YWx1ZSkKQEAgLTEy
NjgsNiArMTMyOSw3IEBAIHB1YmxpYzoKICAgICAgICAgLCBtX3ZlcnNpb24oMCkKICAgICAgICAg
LCBtX2lzb2xhdGUoaXNvbGF0ZSkKICAgICB7CisgICAgICAgIEFTU0VSVCghKHJlaW50ZXJwcmV0
X2Nhc3Q8c2l6ZV90PihidWZmZXIpICYgMSkpOwogICAgICAgICBBU1NFUlQobGVuZ3RoID49IDAp
OwogICAgIH0KIApAQCAtMTMyMCw2ICsxMzgyLDEwIEBAIHB1YmxpYzoKICAgICAgICAgICAgIGlm
ICghcmVhZFN0cmluZyh2YWx1ZSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgU3RyaW5nVUNoYXJUYWc6CisgICAgICAgICAg
ICBpZiAoIXJlYWRVQ2hhclN0cmluZyh2YWx1ZSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgU3RyaW5nT2JqZWN0VGFnOgog
ICAgICAgICAgICAgaWYgKCFyZWFkU3RyaW5nT2JqZWN0KHZhbHVlKSkKICAgICAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CkBAIC0xNTUwLDYgKzE2MTYsMTkgQEAgcHJpdmF0ZToKICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgfQogCisgICAgYm9vbCByZWFkVUNoYXJTdHJpbmcodjg6OkhhbmRs
ZTx2ODo6VmFsdWU+KiB2YWx1ZSkKKyAgICB7CisgICAgICAgIHVpbnQzMl90IGxlbmd0aDsKKyAg
ICAgICAgaWYgKCFkb1JlYWRVaW50MzIoJmxlbmd0aCkgfHwgKGxlbmd0aCAmIDEpKQorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAobV9wb3NpdGlvbiArIGxlbmd0aCA+IG1f
bGVuZ3RoKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBBU1NFUlQoIShtX3Bv
c2l0aW9uICYgMSkpOworICAgICAgICAqdmFsdWUgPSB2ODo6U3RyaW5nOjpOZXcocmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCB1aW50MTZfdCo+KG1fYnVmZmVyICsgbV9wb3NpdGlvbiksIGxlbmd0aCAv
IHNpemVvZihVQ2hhcikpOworICAgICAgICBtX3Bvc2l0aW9uICs9IGxlbmd0aDsKKyAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgfQorCiAgICAgYm9vbCByZWFkU3RyaW5nT2JqZWN0KHY4OjpIYW5k
bGU8djg6OlZhbHVlPiogdmFsdWUpCiAgICAgewogICAgICAgICB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gc3RyaW5nVmFsdWU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjJlZWQyOTA2N2RmZmNlNDYyMTM0Y2FiOTZlYTY2YTUx
ZmMzYTM2Zi4uNTVlN2RmYzBlZTdiNWY2MmM5NTIzMWMyOGMxOGM3YTNhYTdlYmZkNSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE4IEBACisyMDEyLTExLTI5ICBOb2VsIEdvcmRvbiAgPG5vZWwuZ29yZG9uQGdt
YWlsLmNvbT4KKworICAgICAgICBbdjhdIEltcHJvdmUgd29ya2VyLnBvc3RNZXNzYWdlKCkgc3Ry
aW5nIHBlcmZvcm1hbmNlOiBhdm9pZCB1dGY4IGNvbnZlcnNpb24KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjIzMAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBzZXJpYWxpemVkLXNjcmlwdC12
YWx1ZS1leHBlY3RlZCByZXN1bHRzIGZvciB0aGUgbmV3IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZQor
ICAgICAgICB3aXJlIGZvcm1hdCB2ZXJzaW9uLiBBZGQgdGVzdCBjYXNlcyBmb3IgVUNoYXIgc3Ry
aW5nIHNlcmlhbGl6YXRpb24gdG8gdmVyaWZ5IHRoYXQKKyAgICAgICAgdGhlIFVDaGFyIHN0cmlu
ZyBkYXRhIGFwcGVhcnMgb24gYW4gZXZlbi1ieXRlIGJvdW5kYXJ5IGluIHRoZSB3aXJlIGZvcm1h
dCwgYW5kIHRvCisgICAgICAgIHRlc3QgcmVhZGluZyBzdHJpbmcgZGF0YSBmcm9tIHRoZSBwcmV2
aW91cyB3aXJlIGZvcm1hdCBpcyBiYWNrd2FyZC1jb21wYXRpYmxlLgorCisgICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0vZmFzdC9zdG9yYWdlL3NlcmlhbGl6ZWQtc2NyaXB0LXZhbHVlLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L3N0b3JhZ2Uvc2VyaWFs
aXplZC1zY3JpcHQtdmFsdWUuaHRtbDoKKwogMjAxMi0xMS0yOCAgTm9lbCBHb3Jkb24gIDxub2Vs
LmdvcmRvbkBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCB0ZXN0IGZpeDogY2hyb21p
dW0vZmFzdC9zdG9yYWdlL3NlcmlhbGl6ZWQtc2NyaXB0LXZhbHVlLmh0bWwKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3Qvc3RvcmFnZS9zZXJpYWxpemVkLXNj
cmlwdC12YWx1ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9m
YXN0L3N0b3JhZ2Uvc2VyaWFsaXplZC1zY3JpcHQtdmFsdWUtZXhwZWN0ZWQudHh0CmluZGV4IDU2
M2QwZTNjYTA4Zjk3NzUwMWJkZTkyYjgxYjM5MzI5MmYyZGQ5YTkuLjQ3ZTBkYjUyZTgzNGU4YTAz
NWEwMmEyMDg1YTc1NzJkYjhiMzI4MjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtL2Zhc3Qvc3RvcmFnZS9zZXJpYWxpemVkLXNjcmlwdC12YWx1ZS1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9zdG9yYWdlL3Nlcmlh
bGl6ZWQtc2NyaXB0LXZhbHVlLWV4cGVjdGVkLnR4dApAQCAtMTE3LDYgKzExNywxOCBAQCBQQVNT
IEpTT04uc3RyaW5naWZ5KG5ld09iaikgaXMgSlNPTi5zdHJpbmdpZnkob2JqKQogU2VyaWFsaXpl
IHsiaGVsbG8iOiJ0aGVyZSJ9OgogUEFTUyBidWZmZXJWaWV3Lmxlbmd0aCBpcyBleHBlY3RlZEJ1
ZmZlclZhbHVlcy5sZW5ndGgKIAorRGVzZXJpYWxpemUgdG8geyJhIjoiYSIsInUiOiLOsc6yIiwi
ZCI6NDJ9OgorUEFTUyBKU09OLnN0cmluZ2lmeShuZXdPYmopIGlzIEpTT04uc3RyaW5naWZ5KG9i
aikKK1BBU1MgSlNPTi5zdHJpbmdpZnkobmV3T2JqKSBpcyBKU09OLnN0cmluZ2lmeShvYmopCitT
ZXJpYWxpemUgeyJhIjoiYSIsInUiOiLOsc6yIiwiZCI6NDJ9OgorUEFTUyBidWZmZXJWaWV3Lmxl
bmd0aCBpcyBleHBlY3RlZEJ1ZmZlclZhbHVlcy5sZW5ndGgKKworRGVzZXJpYWxpemUgdG8geyJh
IjoiYWIiLCJ1IjoizrHOsiIsImQiOjQyfToKK1BBU1MgSlNPTi5zdHJpbmdpZnkobmV3T2JqKSBp
cyBKU09OLnN0cmluZ2lmeShvYmopCitQQVNTIEpTT04uc3RyaW5naWZ5KG5ld09iaikgaXMgSlNP
Ti5zdHJpbmdpZnkob2JqKQorU2VyaWFsaXplIHsiYSI6ImFiIiwidSI6Is6xzrIiLCJkIjo0Mn06
CitQQVNTIGJ1ZmZlclZpZXcubGVuZ3RoIGlzIGV4cGVjdGVkQnVmZmVyVmFsdWVzLmxlbmd0aAor
CiBTZXJpYWxpemUgdW5kZWZpbmVkOgogUEFTUyB0aHJvd25FeGNlcHRpb24uY29kZSBpcyBleHBl
Y3RlZEV4Y2VwdGlvbgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9zdG9yYWdlL3NlcmlhbGl6ZWQt
c2NyaXB0LXZhbHVlLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L3N0
b3JhZ2Uvc2VyaWFsaXplZC1zY3JpcHQtdmFsdWUuaHRtbAppbmRleCA3MTVhOTExMDA3Y2VlODE5
ZDUxNzQ3Njg1MzI0ZmRhNDZhMTlkYWQ0Li5lZDc0NjgyZGZjYTkyNjgwMmM2M2U5OGI0ZjJkY2Zm
YmY3NDZkMzQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0
L3N0b3JhZ2Uvc2VyaWFsaXplZC1zY3JpcHQtdmFsdWUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS9mYXN0L3N0b3JhZ2Uvc2VyaWFsaXplZC1zY3JpcHQtdmFsdWUuaHRt
bApAQCAtODIsNyArODIsNyBAQCBmdW5jdGlvbiB0ZXN0U2VyaWFsaXphdGlvbihvYmosIHZhbHVl
cywgb2xkRm9ybWF0LCBzZXJpYWxpemVFeGNlcHRpb25WYWx1ZSkgewogLy8gYXJlIG9ubHkgcGVy
c2lzdGVkIG91dCBpbiB0aGUgd29ybGQgaW4gSW5kZXhlZERCIHN0b3JlcyB0aGF0IHdlcmUKIC8v
IHdyaXR0ZW4gd2l0aCBpbXBsZW1lbnRhdGlvbnMgYnVpbHQgYmVmb3JlIG1pZC0yMDExLgogdGVz
dFNlcmlhbGl6YXRpb24oe2ZvbzogJ3pvbycsIGJhcjoge2JhejogJ215TmV3S2V5J319LAotICAg
ICAgICAgICAgICAgICAgWyAweDAxZmYsIDB4MDAzZiwgMHgzZjZmLCAweDUzMDEsIDB4NjYwMywK
KyAgICAgICAgICAgICAgICAgIFsgMHgwMmZmLCAweDAwM2YsIDB4M2Y2ZiwgMHg1MzAxLCAweDY2
MDMsCiAgICAgICAgICAgICAgICAgICAgIDB4NmY2ZiwgMHgwMTNmLCAweDAzNTMsIDB4NmY3YSwg
MHgzZjZmLAogICAgICAgICAgICAgICAgICAgICAweDUzMDEsIDB4NjIwMywgMHg3MjYxLCAweDAx
M2YsIDB4M2Y2ZiwKICAgICAgICAgICAgICAgICAgICAgMHg1MzAyLCAweDYyMDMsIDB4N2E2MSwg
MHgwMjNmLCAweDA4NTMsCkBAIC05MCw2MSArOTAsODQgQEAgdGVzdFNlcmlhbGl6YXRpb24oe2Zv
bzogJ3pvbycsIGJhcjoge2JhejogJ215TmV3S2V5J319LAogICAgICAgICAgICAgICAgICAgICAw
eDAyN2IgXSk7CiAKIHRlc3RTZXJpYWxpemF0aW9uKHtmb286ICd6b28nLCBiYXI6ICdteU5ld0tl
eSd9LAotICAgICAgICAgICAgICAgICAgWzB4MDFmZiwgMHgwMDNmLCAweDNmNmYsIDB4NTMwMSwg
MHg2NjAzLAorICAgICAgICAgICAgICAgICAgWzB4MDJmZiwgMHgwMDNmLCAweDNmNmYsIDB4NTMw
MSwgMHg2NjAzLAogICAgICAgICAgICAgICAgICAgIDB4NmY2ZiwgMHgwMTNmLCAweDAzNTMsIDB4
NmY3YSwgMHgzZjZmLAogICAgICAgICAgICAgICAgICAgIDB4NTMwMSwgMHg2MjAzLCAweDcyNjEs
IDB4MDEzZiwgMHgwODUzLAogICAgICAgICAgICAgICAgICAgIDB4Nzk2ZCwgMHg2NTRlLCAweDRi
NzcsIDB4Nzk2NSwgMHgwMjdiXSk7CiAKLXRlc3RTZXJpYWxpemF0aW9uKFtdLCBbMHgwMWZmLCAw
eDAwM2YsIDB4MDA0MSwgMHgwMDI0LCAweDAwMDAgXSk7Cit0ZXN0U2VyaWFsaXphdGlvbihbXSwg
WzB4MDJmZiwgMHgwMDNmLCAweDAwNDEsIDB4MDAyNCwgMHgwMDAwIF0pOwogdGVzdFNlcmlhbGl6
YXRpb24oe2ZvbzogInpvbyJ9LAotICAgICAgICAgICAgICAgICAgWzB4MDFmZiwgMHgwMDNmLCAw
eDNmNmYsIDB4NTMwMSwgMHg2NjAzLCAweDZmNmYsCisgICAgICAgICAgICAgICAgICBbMHgwMmZm
LCAweDAwM2YsIDB4M2Y2ZiwgMHg1MzAxLCAweDY2MDMsIDB4NmY2ZiwKICAgICAgICAgICAgICAg
ICAgICAweDAxM2YsIDB4MDM1MywgMHg2ZjdhLCAweDdiNmYsIDB4MDAwMV0sCiAgICAgICAgICAg
ICAgICAgICBbMHgwMzUzLCAweDZmNjYsIDB4NTM2ZiwgMHg3YTAzLCAweDZmNmYsIDB4MDE3Yl0p
OwogdGVzdFNlcmlhbGl6YXRpb24oe2ZvbzogbnVsbH0sCi0gICAgICAgICAgICAgICAgICBbMHgw
MWZmLCAweDAwM2YsIDB4M2Y2ZiwgMHg1MzAxLCAweDY2MDMsIDB4NmY2ZiwKKyAgICAgICAgICAg
ICAgICAgIFsweDAyZmYsIDB4MDAzZiwgMHgzZjZmLCAweDUzMDEsIDB4NjYwMywgMHg2ZjZmLAog
ICAgICAgICAgICAgICAgICAgIDB4MDEzZiwgMHg3YjMwLCAweDAwMDFdLAogICAgICAgICAgICAg
ICAgICAgWzB4MDM1MywgMHg2ZjY2LCAweDMwNmYsIDB4MDE3Yl0pOwotdGVzdFNlcmlhbGl6YXRp
b24oe30sIFsweDAxZmYsIDB4MDAzZiwgMHg3YjZmLCAweDAwMDBdLCBbMHgwMDdiXSk7Cit0ZXN0
U2VyaWFsaXphdGlvbih7fSwgWzB4MDJmZiwgMHgwMDNmLCAweDdiNmYsIDB4MDAwMF0sIFsweDAw
N2JdKTsKIAotdGVzdFNlcmlhbGl6YXRpb24odW5kZWZpbmVkLCBbMHgwMWZmLCAweDAwM2YsIDB4
MDA1Zl0pOwotdGVzdFNlcmlhbGl6YXRpb24odHJ1ZSwgWzB4MDFmZiwgMHgwMDNmLCAweDAwNTRd
KTsKLXRlc3RTZXJpYWxpemF0aW9uKGZhbHNlLCBbMHgwMWZmLCAweDAwM2YsIDB4MDA0Nl0pOwor
dGVzdFNlcmlhbGl6YXRpb24odW5kZWZpbmVkLCBbMHgwMmZmLCAweDAwM2YsIDB4MDA1Zl0pOwor
dGVzdFNlcmlhbGl6YXRpb24odHJ1ZSwgWzB4MDJmZiwgMHgwMDNmLCAweDAwNTRdKTsKK3Rlc3RT
ZXJpYWxpemF0aW9uKGZhbHNlLCBbMHgwMmZmLCAweDAwM2YsIDB4MDA0Nl0pOwogLy8gU3BhcnNl
IGFycmF5IGRlc2VyaWFsaXphdGlvbiBpcyBicm9rZW4uCiAvLyBTZWU6IGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjgzOAotLy8gdGVzdFNlcmlhbGl6YXRpb24obmV3
IEFycmF5KDEwMCksIFsweDAxZmYsIDB4MDAzZiwgMHg2NDYxLCAweDAwNDAsIDB4MDA2NF0pOwot
dGVzdFNlcmlhbGl6YXRpb24oMTAsIFsweDAxZmYsIDB4MDAzZiwgMHgxNDQ5XSk7Ci10ZXN0U2Vy
aWFsaXphdGlvbigtMTAsIFsweDAxZmYsIDB4MDAzZiwgMHgxMzQ5XSk7Ci10ZXN0U2VyaWFsaXph
dGlvbihNYXRoLnBvdygyLDMwKSwgWzB4MDFmZiwgMHgwMDNmLCAweDgwNDksIDB4ODA4MCwgMHgw
ODgwXSk7Ci10ZXN0U2VyaWFsaXphdGlvbihNYXRoLnBvdygyLDU1KSwgWzB4MDFmZiwgMHgwMDNm
LCAweDAwNGUsIDB4MDAwMCwgMHgwMDAwLAorLy8gdGVzdFNlcmlhbGl6YXRpb24obmV3IEFycmF5
KDEwMCksIFsweDAyZmYsIDB4MDAzZiwgMHg2NDYxLCAweDAwNDAsIDB4MDA2NF0pOwordGVzdFNl
cmlhbGl6YXRpb24oMTAsIFsweDAyZmYsIDB4MDAzZiwgMHgxNDQ5XSk7Cit0ZXN0U2VyaWFsaXph
dGlvbigtMTAsIFsweDAyZmYsIDB4MDAzZiwgMHgxMzQ5XSk7Cit0ZXN0U2VyaWFsaXphdGlvbihN
YXRoLnBvdygyLDMwKSwgWzB4MDJmZiwgMHgwMDNmLCAweDgwNDksIDB4ODA4MCwgMHgwODgwXSk7
Cit0ZXN0U2VyaWFsaXphdGlvbihNYXRoLnBvdygyLDU1KSwgWzB4MDJmZiwgMHgwMDNmLCAweDAw
NGUsIDB4MDAwMCwgMHgwMDAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw
eDYwMDAsIDB4MDA0M10pOwotdGVzdFNlcmlhbGl6YXRpb24oMS4yMywgWzB4MDFmZiwgMHgwMDNm
LCAweGFlNGUsIDB4ZTE0NywgMHgxNDdhLCAweGYzYWUsIDB4MDAzZl0pOwotdGVzdFNlcmlhbGl6
YXRpb24oIiIsIFsweDAxZmYsIDB4MDAzZiwgMHgwMDUzXSk7Ci10ZXN0U2VyaWFsaXphdGlvbigi
YWJjIiwgWzB4MDFmZiwgMHgwMDNmLCAweDAzNTMsIDB4NjI2MSwgMHgwMDYzXSk7Ci10ZXN0U2Vy
aWFsaXphdGlvbih7aW50ZWdlcjogMTIzfSwgWzB4MDFmZiwgMHgwMDNmLCAweDNmNmYsIDB4NTMw
MSwgMHg2OTA3LAordGVzdFNlcmlhbGl6YXRpb24oMS4yMywgWzB4MDJmZiwgMHgwMDNmLCAweGFl
NGUsIDB4ZTE0NywgMHgxNDdhLCAweGYzYWUsIDB4MDAzZl0pOwordGVzdFNlcmlhbGl6YXRpb24o
IiIsIFsweDAyZmYsIDB4MDAzZiwgMHgwMDUzXSk7Cit0ZXN0U2VyaWFsaXphdGlvbigiYWJjIiwg
WzB4MDJmZiwgMHgwMDNmLCAweDAzNTMsIDB4NjI2MSwgMHgwMDYzXSk7Cit0ZXN0U2VyaWFsaXph
dGlvbih7aW50ZWdlcjogMTIzfSwgWzB4MDJmZiwgMHgwMDNmLCAweDNmNmYsIDB4NTMwMSwgMHg2
OTA3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDc0NmUsIDB4Njc2NSwg
MHg3MjY1LCAweDAxM2YsIDB4ZjY0OSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMHg3YjAxLCAweDAwMDFdKTsKLXRlc3RTZXJpYWxpemF0aW9uKHtzdHJpbmc6ICJzdHIifSwg
WzB4MDFmZiwgMHgwMDNmLCAweDNmNmYsIDB4NTMwMSwgMHg3MzA2LAordGVzdFNlcmlhbGl6YXRp
b24oe3N0cmluZzogInN0ciJ9LCBbMHgwMmZmLCAweDAwM2YsIDB4M2Y2ZiwgMHg1MzAxLCAweDcz
MDYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcyNzQsIDB4NmU2OSwg
MHgzZjY3LCAweDUzMDEsIDB4NzMwMywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDB4NzI3NCwgMHgwMTdiXSk7Ci10ZXN0U2VyaWFsaXphdGlvbih7bGlzdDogWzEsMiwzXX0s
IFsweDAxZmYsIDB4MDAzZiwgMHgzZjZmLCAweDUzMDEsIDB4NmMwNCwKK3Rlc3RTZXJpYWxpemF0
aW9uKHtsaXN0OiBbMSwyLDNdfSwgWzB4MDJmZiwgMHgwMDNmLCAweDNmNmYsIDB4NTMwMSwgMHg2
YzA0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3MzY5LCAweDNmNzQs
IDB4NDEwMSwgMHgzZjAzLCAweDQ5MDIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAweDNmMDIsIDB4NDkwMiwgMHgzZjA0LCAweDQ5MDIsIDB4MjQwNiwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMCwgMHgwMTdiXSk7Ci10ZXN0U2VyaWFsaXph
dGlvbihudWxsLCBbMHgwMWZmLCAweDAwM2YsIDB4MDAzMF0pOwotdGVzdFNlcmlhbGl6YXRpb24o
L2FiYy8sIFsweDAxZmYsIDB4MDAzZiwgMHgwMzUyLCAweDYyNjEsIDB4MDA2M10pOwordGVzdFNl
cmlhbGl6YXRpb24obnVsbCwgWzB4MDJmZiwgMHgwMDNmLCAweDAwMzBdKTsKK3Rlc3RTZXJpYWxp
emF0aW9uKC9hYmMvLCBbMHgwMmZmLCAweDAwM2YsIDB4MDM1MiwgMHg2MjYxLCAweDAwNjNdKTsK
IAogdmFyIGlubmVyT2JqZWN0ID0ge2hlbGxvOiAidGhlcmUifTsKIHZhciBvdXRlck9iamVjdCA9
IHtpbm5lcjogaW5uZXJPYmplY3R9Owogb3V0ZXJPYmplY3RbJ291dGVyJ10gPSBpbm5lck9iamVj
dDsKLXRlc3RTZXJpYWxpemF0aW9uKG91dGVyT2JqZWN0LCBbMHgwMWZmLCAweDAwM2YsIDB4M2Y2
ZiwgMHg1MzAxLCAweDY5MDUsCit0ZXN0U2VyaWFsaXphdGlvbihvdXRlck9iamVjdCwgWzB4MDJm
ZiwgMHgwMDNmLCAweDNmNmYsIDB4NTMwMSwgMHg2OTA1LAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAweDZlNmUsIDB4NzI2NSwgMHgwMTNmLCAweDNmNmYsIDB4NTMwMiwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2ODA1LCAweDZjNjUsIDB4NmY2YywgMHgwMjNm
LCAweDA1NTMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Njg3NCwgMHg3MjY1
LCAweDdiNjUsIDB4M2YwMSwgMHg1MzAyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAweDZmMDUsIDB4NzQ3NSwgMHg3MjY1LCAweDAyM2YsIDB4MDE1ZSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMHgwMjdiXSk7Ci10ZXN0U2VyaWFsaXphdGlvbihpbm5lck9iamVj
dCwgWzB4MDFmZiwgMHgwMDNmLCAweDNmNmYsIDB4NTMwMSwgMHg2ODA1LAordGVzdFNlcmlhbGl6
YXRpb24oaW5uZXJPYmplY3QsIFsweDAyZmYsIDB4MDAzZiwgMHgzZjZmLCAweDUzMDEsIDB4Njgw
NSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2YzY1LCAweDZmNmMsIDB4MDEz
ZiwgMHgwNTUzLCAweDY4NzQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzI2
NSwgMHg3YjY1LCAweDAwMDFdKTsKKwordmFyIHVuaWNvZGVPYmplY3QgPSB7YTogJ2EnLCB1OiBT
dHJpbmcuZnJvbUNoYXJDb2RlKDB4MDNCMSwweDAzQjIpLCBkOiA0Mn07Cit0ZXN0U2VyaWFsaXph
dGlvbih1bmljb2RlT2JqZWN0LAorICAgICAgICAgICAgICAgICAgWzB4MDJmZiwgMHgwMDNmLCAw
eDNmNmYsIDB4NTMwMSwgMHg2MTAxLAorICAgICAgICAgICAgICAgICAgIDB4MDEzZiwgMHgwMTUz
LCAweDNmNjEsIDB4NTMwMSwgMHg3NTAxLAorICAgICAgICAgICAgICAgICAgIDB4MDEzZiwgMHgw
NDYzLCAweDAzYjEsIDB4MDNiMiwgMHgwMTNmLAorICAgICAgICAgICAgICAgICAgIDB4MDE1Mywg
MHgzZjY0LCAweDQ5MDEsIDB4N2I1NCwgMHgwMDAzXSwKKyAgICAgICAgICAgICAgICAgIFsweDAx
ZmYsIDB4MDAzZiwgMHgzZjZmLCAweDUzMDEsIDB4NjEwMSwKKyAgICAgICAgICAgICAgICAgICAw
eDAxM2YsIDB4MDE1MywgMHgzZjYxLCAweDUzMDEsIDB4NzUwMSwKKyAgICAgICAgICAgICAgICAg
ICAweDAxM2YsIDB4MDQ1MywgMHhiMWNlLCAweGIyY2UsIDB4MDEzZiwKKyAgICAgICAgICAgICAg
ICAgICAweDAxNTMsIDB4M2Y2NCwgMHg0OTAxLCAweDdiNTQsIDB4MDAwM10pOwordW5pY29kZU9i
amVjdC5hID0gJ2FiJzsKK3Rlc3RTZXJpYWxpemF0aW9uKHVuaWNvZGVPYmplY3QsCisgICAgICAg
ICAgICAgICAgICBbMHgwMmZmLCAweDAwM2YsIDB4M2Y2ZiwgMHg1MzAxLCAweDYxMDEsCisgICAg
ICAgICAgICAgICAgICAgMHgwMTNmLCAweDAyNTMsIDB4NjI2MSwgMHgwMTNmLCAweDAxNTMsCisg
ICAgICAgICAgICAgICAgICAgMHgzZjc1LCAweDAwMDEsIDB4MDQ2MywgMHgwM2IxLCAweDAzYjIs
CisgICAgICAgICAgICAgICAgICAgMHgwMTNmLCAweDAxNTMsIDB4M2Y2NCwgMHg0OTAxLCAweDdi
NTQsCisgICAgICAgICAgICAgICAgICAgMHgwMDAzXSwKKyAgICAgICAgICAgICAgICAgIFsweDAx
ZmYsIDB4MDAzZiwgMHgzZjZmLCAweDUzMDEsIDB4NjEwMSwKKyAgICAgICAgICAgICAgICAgICAw
eDAxM2YsIDB4MDI1MywgMHg2MjYxLCAweDAxM2YsIDB4MDE1MywKKyAgICAgICAgICAgICAgICAg
ICAweDNmNzUsIDB4NTMwMSwgMHhjZTA0LCAweGNlYjEsIDB4M2ZiMiwKKyAgICAgICAgICAgICAg
ICAgICAweDUzMDEsIDB4NjQwMSwgMHgwMTNmLCAweDU0NDksIDB4MDM3Yl0pOworCiB0ZXN0U2Vy
aWFsaXphdGlvbihmdW5jdGlvbigpe30sIFtdLCBudWxsLCBET01FeGNlcHRpb24uREFUQV9DTE9O
RV9FUlIpOwogICAgICAgICA8L3NjcmlwdD4KICAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>