<?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>103655</bug_id>
          
          <creation_ts>2012-11-29 11:55:44 -0800</creation_ts>
          <short_desc>Add PlugInOriginHash</short_desc>
          <delta_ts>2012-12-07 00:47:34 -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>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.8</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>103206</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jon Lee">jonlee</reporter>
          <assigned_to name="Jon Lee">jonlee</assigned_to>
          <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>msaboff</cc>
    
    <cc>peter+ews</cc>
    
    <cc>philn</cc>
    
    <cc>rakuco</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>779267</commentid>
    <comment_count>0</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-11-29 11:55:44 -0800</bug_when>
    <thetext>Create a hash that uniquely identifies a combination of origins for plug-ins.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779268</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2012-11-29 11:55:52 -0800</bug_when>
    <thetext>&lt;rdar://problem/12778949&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779351</commentid>
    <comment_count>2</comment_count>
      <attachid>176795</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-11-29 12:47:50 -0800</bug_when>
    <thetext>Created attachment 176795
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779370</commentid>
    <comment_count>3</comment_count>
      <attachid>176798</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-11-29 13:14:03 -0800</bug_when>
    <thetext>Created attachment 176798
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779374</commentid>
    <comment_count>4</comment_count>
      <attachid>176800</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-11-29 13:18:13 -0800</bug_when>
    <thetext>Created attachment 176800
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779455</commentid>
    <comment_count>5</comment_count>
      <attachid>176800</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-11-29 14:45:15 -0800</bug_when>
    <thetext>Comment on attachment 176800
Patch

I don&apos;t think you want to force localHost if the plug-in or page-host are empty. In addition, you should also check the plug-in MIME type. I&apos;m wondering if this should just take a HTMLPlugInElement instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779459</commentid>
    <comment_count>6</comment_count>
      <attachid>176800</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-11-29 14:51:07 -0800</bug_when>
    <thetext>Comment on attachment 176800
Patch

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

r- for layering violation.

&gt; Source/WebCore/ChangeLog:18
&gt; +            In the case where the host has an empty string (like a file URL), we substitute in &quot;localhost&quot;.

Why is that desirable?

&gt; Source/WebCore/platform/PlugInOriginHash.cpp:13
&gt; + * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS&apos;&apos; AND ANY

What&apos;s &quot;Apple Computer, Inc.&quot;?

&gt; Source/WebCore/platform/PlugInOriginHash.cpp:41
&gt; +static inline uint64_t codeFoldedHash(const String&amp; string)
&gt; +{
&gt; +    if (string.is8Bit())
&gt; +        return StringHasher::computeHash&lt;LChar, CaseFoldingHash::foldCase&lt;LChar&gt; &gt;(string.characters8(), string.length());

The function you are calling is named &quot;compute hash&quot;, so why does the new function not have this verb in its name?

&gt; Source/WebCore/platform/PlugInOriginHash.h:34
&gt; +typedef uint64_t PlugInOriginHash;

Our existing types named &quot;Hash&quot; are classes, see e.g. ones in StringHash.h. It&apos;s quite confusing to have a drastically different one for plug-ins.

&gt; Source/WebCore/platform/PlugInOriginHash.h:36
&gt; +PlugInOriginHash plugInOriginHash(const Page*, const KURL&amp; srcURL);

Code in WebCore/platform cannot use Page or Frame classes. It&apos;s either (1) platform API wrappers that do not know about Web classes or concepts or (2) platform level code that we build from scratch.

Even having &quot;plugin&quot; in the name is quite suspect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782364</commentid>
    <comment_count>7</comment_count>
      <attachid>177446</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-12-04 01:32:31 -0800</bug_when>
    <thetext>Created attachment 177446
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782370</commentid>
    <comment_count>8</comment_count>
      <attachid>177446</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-04 01:36:14 -0800</bug_when>
    <thetext>Comment on attachment 177446
Patch

Attachment 177446 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/15100945</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782371</commentid>
    <comment_count>9</comment_count>
      <attachid>177446</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-12-04 01:38:34 -0800</bug_when>
    <thetext>Comment on attachment 177446
Patch

Attachment 177446 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/15132359</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782372</commentid>
    <comment_count>10</comment_count>
      <attachid>177446</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-12-04 01:38:37 -0800</bug_when>
    <thetext>Comment on attachment 177446
Patch

Attachment 177446 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/15098972</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782374</commentid>
    <comment_count>11</comment_count>
      <attachid>177446</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-12-04 01:40:09 -0800</bug_when>
    <thetext>Comment on attachment 177446
Patch

Attachment 177446 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/15097949</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782376</commentid>
    <comment_count>12</comment_count>
      <attachid>177446</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-12-04 01:41:04 -0800</bug_when>
    <thetext>Comment on attachment 177446
Patch

Attachment 177446 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/15120760</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782381</commentid>
    <comment_count>13</comment_count>
      <attachid>177446</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2012-12-04 01:46:36 -0800</bug_when>
    <thetext>Comment on attachment 177446
Patch

Attachment 177446 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/15126551</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782393</commentid>
    <comment_count>14</comment_count>
      <attachid>177451</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-12-04 02:07:44 -0800</bug_when>
    <thetext>Created attachment 177451
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782660</commentid>
    <comment_count>15</comment_count>
      <attachid>177451</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-12-04 10:13:57 -0800</bug_when>
    <thetext>Comment on attachment 177451
Patch

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

review- because there is a much better way to do this hash correctly

&gt; Source/WebCore/ChangeLog:19
&gt; +        benefit either, since retrieving the host from the KURL creates a brand new string every time. We shift
&gt; +        the page&apos;s host hash, since otherwise, in the case of where the plug-in is loading from the same domain
&gt; +        as the page, it would lead to a combined hash of 0.

I don’t understand why a right shift of 1 is the right way to solve that problem. It throws away 1/32 of the host hash. I’d think a rotate would be better than a shift.

&gt; Source/WebCore/plugins/PlugInOriginHash.cpp:44
&gt; +static inline unsigned computeCaseFoldedHash(const String&amp; string)
&gt; +{
&gt; +    if (string.is8Bit())
&gt; +        return StringHasher::computeHash&lt;LChar, CaseFoldingHash::foldCase&lt;LChar&gt; &gt;(string.characters8(), string.length());
&gt; +    return StringHasher::computeHash&lt;UChar, CaseFoldingHash::foldCase&lt;UChar&gt; &gt;(string.characters16(), string.length());
&gt; +}

The fact that this is not a duplicate of the CaseFoldingHash::hash function from StringHash.h is a subtle detail that is not explained here. The change log mentions that we don’t want to mask the top 8 bits, but it’s easy to overlook that so we need a comment explaining that, not just change log. And I also think we should consider putting this function into StringHash.h in the future. We just need to figure out the right name for it.

&gt; Source/WebCore/plugins/PlugInOriginHash.cpp:51
&gt; +    String plugInSrcHost = plugInURL.host();

Why put this into a local variable, but not put plugInElement-&gt;serviceType() into a local variable?

&gt; Source/WebCore/plugins/PlugInOriginHash.cpp:53
&gt; +    return (computeCaseFoldedHash(pageHost) &gt;&gt; 1) ^ computeCaseFoldedHash(plugInSrcHost) ^ computeCaseFoldedHash(plugInElement-&gt;serviceType());

I’m not sure that exclusive or is a good way to combine these three hashes; normally we hash the hashes, or make a single hash. And the need to shift the hash of the page host and the source host is sufficiently non-obvious that it needs to be in a comment, not just change log.

I think I know a much better way to do this. Here’s my idea. First, we refactor the StringHasher::computeHash static member function into a new StringHasher::addCharacters(const T* data, unsigned length) non-static member function, so we have a function we can use on an existing StringHasher multiple times. Then we write a function to add a string to a hash named addCaseFoldedCharacters, which calls addCharacters. Then we write this:

    StringHasher hasher;
    addCaseFoldedCharacters(hasher, page-&gt;mainFrame()-&gt;document()-&gt;baseURL().host());
    hasher.addCharacter(0);
    addCaseFoldedCharacters(hasher, plugInURL.host());
    hasher.addCharacter(0);
    addCaseFoldedCharacters(hasher, plugInElement-&gt;serviceType());
    return hasher.hash();

This way, we won’t have to do any tricky shifting or worry about how well exclusive or works.

&gt; Source/WebCore/plugins/PlugInOriginHash.h:35
&gt; +    static unsigned hash(HTMLPlugInImageElement* plugInElement, const KURL&amp; plugInURL);

Normally we need an equality function to go along with a hash function. Are we actually going to rely on these hashes without also doing equality checks?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783410</commentid>
    <comment_count>16</comment_count>
      <attachid>177451</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-12-04 22:49:22 -0800</bug_when>
    <thetext>Comment on attachment 177451
Patch

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

&gt;&gt; Source/WebCore/plugins/PlugInOriginHash.cpp:53
&gt;&gt; +    return (computeCaseFoldedHash(pageHost) &gt;&gt; 1) ^ computeCaseFoldedHash(plugInSrcHost) ^ computeCaseFoldedHash(plugInElement-&gt;serviceType());
&gt; 
&gt; I’m not sure that exclusive or is a good way to combine these three hashes; normally we hash the hashes, or make a single hash. And the need to shift the hash of the page host and the source host is sufficiently non-obvious that it needs to be in a comment, not just change log.
&gt; 
&gt; I think I know a much better way to do this. Here’s my idea. First, we refactor the StringHasher::computeHash static member function into a new StringHasher::addCharacters(const T* data, unsigned length) non-static member function, so we have a function we can use on an existing StringHasher multiple times. Then we write a function to add a string to a hash named addCaseFoldedCharacters, which calls addCharacters. Then we write this:
&gt; 
&gt;     StringHasher hasher;
&gt;     addCaseFoldedCharacters(hasher, page-&gt;mainFrame()-&gt;document()-&gt;baseURL().host());
&gt;     hasher.addCharacter(0);
&gt;     addCaseFoldedCharacters(hasher, plugInURL.host());
&gt;     hasher.addCharacter(0);
&gt;     addCaseFoldedCharacters(hasher, plugInElement-&gt;serviceType());
&gt;     return hasher.hash();
&gt; 
&gt; This way, we won’t have to do any tricky shifting or worry about how well exclusive or works.

Excellent idea. I&apos;ve posted a patch to implement StringHasher::addCharacters() in bug 104076.

&gt;&gt; Source/WebCore/plugins/PlugInOriginHash.h:35
&gt;&gt; +    static unsigned hash(HTMLPlugInImageElement* plugInElement, const KURL&amp; plugInURL);
&gt; 
&gt; Normally we need an equality function to go along with a hash function. Are we actually going to rely on these hashes without also doing equality checks?

Normally you would, but this hash is not being used as a hash function for any data structure, and the intent was to only have the hashes shared among the processes like visited links. Having an equal() would imply needing to create a new struct for plug-in origins, and then sharing that data.

I&apos;m hoping with your proposed scheme that we avoid collisions. If we find ourselves with collisions, then I think we can revisit this, and switch from using HashSet&lt;unsigned&gt; to HashSet&lt;PlugInOrigin&gt; or something to that effect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783818</commentid>
    <comment_count>17</comment_count>
      <attachid>177773</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-12-05 09:14:15 -0800</bug_when>
    <thetext>Created attachment 177773
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785490</commentid>
    <comment_count>18</comment_count>
      <attachid>177773</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-12-06 17:55:49 -0800</bug_when>
    <thetext>Comment on attachment 177773
Patch

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

Looks like Darin&apos;s comments have been addressed.

&gt; Source/WebCore/plugins/PlugInOriginHash.cpp:39
&gt; +static inline void addCaseFoldedCharacters(StringHasher &amp;hasher, const String&amp; string)

Misplaced &amp; here.

&gt; Source/WebCore/plugins/PlugInOriginHash.cpp:49
&gt; +    if (!plugInElement-&gt;document()-&gt;page())
&gt; +        return 0;

That&apos;s quite likely to cause collisions!

Perhaps we should require the document to be in page instead of silently returning a bad hash?

&gt; Source/WebCore/plugins/PlugInOriginHash.cpp:59
&gt; +    LOG(Plugins, &quot;Hash: %s %s %s&quot;, plugInElement-&gt;document()-&gt;page()-&gt;mainFrame()-&gt;document()-&gt;baseURL().host().utf8().data(), plugInURL.host().utf8().data(), plugInElement-&gt;serviceType().utf8().data());

Do you still need this? It looks like it will be too chatty with Plugins channel enabled.

&gt; Source/WebCore/plugins/PlugInOriginHash.h:35
&gt; +    static unsigned hash(HTMLPlugInImageElement* plugInElement, const KURL&amp; plugInURL);

Argument names seem unnecessary here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785706</commentid>
    <comment_count>19</comment_count>
      <attachid>177773</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-12-07 00:39:47 -0800</bug_when>
    <thetext>Comment on attachment 177773
Patch

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

Thanks for reviewing!

&gt;&gt; Source/WebCore/plugins/PlugInOriginHash.cpp:39
&gt;&gt; +static inline void addCaseFoldedCharacters(StringHasher &amp;hasher, const String&amp; string)
&gt; 
&gt; Misplaced &amp; here.

Fixed.

&gt;&gt; Source/WebCore/plugins/PlugInOriginHash.cpp:49
&gt;&gt; +        return 0;
&gt; 
&gt; That&apos;s quite likely to cause collisions!
&gt; 
&gt; Perhaps we should require the document to be in page instead of silently returning a bad hash?

I can convert this to an assert.

&gt;&gt; Source/WebCore/plugins/PlugInOriginHash.cpp:59
&gt;&gt; +    LOG(Plugins, &quot;Hash: %s %s %s&quot;, plugInElement-&gt;document()-&gt;page()-&gt;mainFrame()-&gt;document()-&gt;baseURL().host().utf8().data(), plugInURL.host().utf8().data(), plugInElement-&gt;serviceType().utf8().data());
&gt; 
&gt; Do you still need this? It looks like it will be too chatty with Plugins channel enabled.

I&apos;d like to keep this in for a little while. It will only appear for ports that use plug-in snapshotting, anyway.

&gt;&gt; Source/WebCore/plugins/PlugInOriginHash.h:35
&gt;&gt; +    static unsigned hash(HTMLPlugInImageElement* plugInElement, const KURL&amp; plugInURL);
&gt; 
&gt; Argument names seem unnecessary here.

Removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785711</commentid>
    <comment_count>20</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-12-07 00:44:24 -0800</bug_when>
    <thetext>Committed r136932: &lt;http://trac.webkit.org/changeset/136932&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785714</commentid>
    <comment_count>21</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-12-07 00:47:34 -0800</bug_when>
    <thetext>And build fix r136933.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176795</attachid>
            <date>2012-11-29 12:47:50 -0800</date>
            <delta_ts>2012-11-29 13:13:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103655-20121129124523.patch</filename>
            <type>text/plain</type>
            <size>13849</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2MTUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjhkZTdkOTIxMWU3YjYw
MTZiODUyMWQ4ZDRiMjk4MWNlYmQwZGU2OS4uMzgyYTZkZjJiZGYxYzRhZjc5MTdiYmFlMmNjZjNk
ZTdlNmQ1ZGZkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTExLTI5ICBKb24g
TGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgUGx1Z0luT3JpZ2luSGFzaAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzNjU1Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMjc3ODk0OT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGhlIGNvbmNlcHQgb2YgcGx1Zy1pbiBvcmln
aW4gaGFzaGVzLCB3aGljaCBhcmUgYmFzZWQgb24gYSBjb21iaW5hdGlvbiBvZiB0aGUgYmFzZSBk
b21haW5zIG9mIHRoZQorICAgICAgICBwYWdlJ3MgbWFpbiBmcmFtZSBhbmQgdGhlIHBsdWdpbi4K
KworICAgICAgICAqIHBsYXRmb3JtL1BsdWdJbk9yaWdpbkhhc2guY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OmNvZGVGb2xkZWRIYXNoKTogSGFzaCB0aGUgc3RyaW5nIHdpdGggYSBjYXNl
LWZvbGRlZCBoYXNoLgorICAgICAgICAoV2ViQ29yZTo6cGx1Z0luT3JpZ2luSGFzaCk6IFRoZSBo
YXNoIGlzIHRoZSBqdXh0YXBvc2l0aW9uIG9mIHR3byBjb21wbGV0ZSAzMi1iaXQgaGFzaGVzLCBv
bmUgb2YgdGhlIHBhZ2UncworICAgICAgICBob3N0LCB0aGUgb3RoZXIgb2YgdGhlIHBsdWctaW4g
VVJMJ3MgaG9zdC4gV2UgdXNlIFN0cmluZ0hhc2hlcjo6Y29tcHV0ZUhhc2goKSB0byBnZXQgYWxs
IDMyLWJpdHMgb2YgdGhlCisgICAgICAgIGhhc2guIFVzaW5nIFN0cmluZ0ltcGwncyBoYXNoIG1h
c2tzIG91dCA4IG9mIHRoZSBoYXNoIGJpdHMsIGFuZCB3ZSBkbyBub3QgZ2V0IHRoZSBjYWNoaW5n
IGJlbmVmaXQgZWl0aGVyLCBzaW5jZQorICAgICAgICByZXRyaWV2aW5nIHRoZSBob3N0IGZyb20g
dGhlIEtVUkwgY3JlYXRlcyBhIGJyYW5kIG5ldyBzdHJpbmcgZXZlcnkgdGltZS4KKyAgICAgICAg
ICAgIEluIHRoZSBjYXNlIHdoZXJlIHRoZSBob3N0IGhhcyBhbiBlbXB0eSBzdHJpbmcgKGxpa2Ug
YSBmaWxlIFVSTCksIHdlIHN1YnN0aXR1dGUgaW4gImxvY2FsaG9zdCIuCisgICAgICAgICogcGxh
dGZvcm0vUGx1Z0luT3JpZ2luSGFzaC5oOiBBZGRlZC4KKworICAgICAgICAqIENNYWtlTGlzdHMu
dHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnBy
aToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorCiAyMDEyLTExLTI5ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5z
b25AaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBbV2ViS2l0Ml0gRW1iZWQgdGhlIEhUVFAg
YXV0aGVudGljYXRpb24gZGlhbG9nIGludG8gdGhlIFdlYlZpZXcKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
aW5kZXggYjQwYjRhZDVmZDMwN2RkNzUzNzIxOTA3NDAzZDRhZjczYjZjNTYzMS4uYzY0NDk1Y2Zm
ZjdiYTk2OWNhZWU1YTljZDVkNTJmNWJjY2FhZGY2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAg
LTE4MDgsNiArMTgwOCw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9QbGF0
Zm9ybUV2ZW50LmNwcAogICAgIHBsYXRmb3JtL1BsYXRmb3JtSW5zdHJ1bWVudGF0aW9uLmNwcAog
ICAgIHBsYXRmb3JtL1BsYXRmb3JtTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcAorICAgIHBsYXRm
b3JtL1BsdWdJbk9yaWdpbkhhc2guY3BwCiAgICAgcGxhdGZvcm0vUnVuTG9vcC5jcHAKICAgICBw
bGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuY3BwCiAgICAgcGxhdGZvcm0vU2Nyb2xs
QW5pbWF0b3IuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0
LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAwNjdjNzFjNWQw
ODM0MWJmZmQxNTk4N2IwMjZjMDgyNGVlYTIyNGI0Li42MmQ5ZGIxYzAzOGE4NTkwM2VhYzA4Zjc1
ZTlkZjRhOTk4MWU3YTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5s
aXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTU3Njks
NiArNTc2OSw4IEBAIHdlYmNvcmVfcGxhdGZvcm1fc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vUGxhdGZvcm1TdHJhdGVnaWVzLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bs
YXRmb3JtV2hlZWxFdmVudC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbHVnSW5Pcmln
aW5IYXNoLmNwcCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGx1Z0luT3JpZ2luSGFzaC5o
IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QT0RBcmVuYS5oIFwKIAlTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9QT0RGcmVlTGlzdEFyZW5hLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1BPREludGVydmFsLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBi
L1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggMmQ0MGFkMGJkMjY1ZDg3NzVjYWY2ZmM4
OGQ1NTMzZDQxNmUzMTc5Mi4uZjk0MmNjODI5YTVmNmM2M2NjNmZkZDc2YTUzZTFiNTA5MDFlMTFi
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9UYXJnZXQucHJpCkBAIC0xMDY5LDYgKzEwNjksNyBAQCBTT1VSQ0VTICs9IFwKICAgICBw
bGF0Zm9ybS9QbGF0Zm9ybUV2ZW50LmNwcCBcCiAgICAgcGxhdGZvcm0vUGxhdGZvcm1JbnN0cnVt
ZW50YXRpb24uY3BwIFwKICAgICBwbGF0Zm9ybS9QbGF0Zm9ybU1lbW9yeUluc3RydW1lbnRhdGlv
bi5jcHAgXAorICAgIHBsYXRmb3JtL1BsdWdJbk9yaWdpbkhhc2guY3BwIFwKICAgICBwbGF0Zm9y
bS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuY3BwIFwKICAgICBwbGF0Zm9ybS9SdW5Mb29wLmNw
cCBcCiAgICAgcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuY3BwIFwKQEAgLTIyNzEsNiArMjI3Miw3
IEBAIEhFQURFUlMgKz0gXAogICAgIHBsYXRmb3JtL1BsYXRmb3JtTWVtb3J5SW5zdHJ1bWVudGF0
aW9uLmggXAogICAgIHBsYXRmb3JtL1BsYXRmb3JtVG91Y2hFdmVudC5oIFwKICAgICBwbGF0Zm9y
bS9QbGF0Zm9ybVRvdWNoUG9pbnQuaCBcCisgICAgcGxhdGZvcm0vUGx1Z0luT3JpZ2luSGFzaC5o
IFwKICAgICBwbGF0Zm9ybS9Qb3B1cE1lbnUuaCBcCiAgICAgcGxhdGZvcm0vUmVmZXJyZXJQb2xp
Y3kuaCBcCiAgICAgcGxhdGZvcm0vcXQvQ2xpcGJvYXJkUXQuaCBcCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5k
ZXggNzNhN2FiNmVkZDNmM2U4NDk3ZTUzZjZkNjhmMmYzMTZlYzY2MzgwOS4uNTBkNjk2YjE2MGY1
MTdkMDEzMDIxNzU5ZGNjNDZjOTA2ZDYxZWE3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMzE0LDYg
KzMxNCw3IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vUGxhdGZvcm1TY3JlZW4uaCcsCiAgICAg
ICAgICAgICAncGxhdGZvcm0vUGxhdGZvcm1TdHJhdGVnaWVzLmgnLAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9QbHVn
SW5PcmlnaW5IYXNoLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL1BvcHVwTWVudS5oJywKICAg
ICAgICAgICAgICdwbGF0Zm9ybS9Qb3B1cE1lbnVDbGllbnQuaCcsCiAgICAgICAgICAgICAncGxh
dGZvcm0vUG9wdXBNZW51U3R5bGUuaCcsCkBAIC00NTAwLDYgKzQ1MDEsNyBAQAogICAgICAgICAg
ICAgJ3BsYXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAnLAogICAgICAgICAgICAgJ3BsYXRm
b3JtL1BsYXRmb3JtVG91Y2hFdmVudC5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9QbGF0Zm9y
bVRvdWNoUG9pbnQuaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vUGx1Z0luT3JpZ2luSGFzaC5j
cHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL1ByZXJlbmRlckhhbmRsZS5oJywKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9QdXJnZWFibGVCdWZmZXIuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
UmVmZXJyZXJQb2xpY3kuaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggODQyNzg4YThlMmJmMTJhZTZhNDVkZjY4MjgwNjFhMDJm
YmEyOTlkMi4uZTM1YWJiOTQ4ZWI5NDgwY2NiY2M2MmUzMGEwOTFjOTMxNTliY2QyYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
OTMzLDYgKzkzMyw4IEBACiAJCTMxOUU2OUI1MTMyOTlCQkQwMDRBQzkxQSAvKiBXZWJLaXRBbmlt
YXRpb25MaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDMxOUU2OUFGMTMyOTlCQkQwMDRBQzkxQSAvKiBXZWJLaXRBbmltYXRpb25MaXN0LmNwcCAq
LzsgfTsKIAkJMzE5RTY5QjYxMzI5OUJCRDAwNEFDOTFBIC8qIFdlYktpdEFuaW1hdGlvbkxpc3Qu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxOUU2OUIw
MTMyOTlCQkQwMDRBQzkxQSAvKiBXZWJLaXRBbmltYXRpb25MaXN0LmggKi87IH07CiAJCTMxOUZC
RDVGMTVEMkY0NjQwMDk2NDBBNiAvKiBDYWNoZWRJbWFnZUNsaWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE5RkJENUQxNUQyRjQ0NDAwOTY0MEE2
IC8qIENhY2hlZEltYWdlQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJMzFBNjdFNEMxNjYwMzI2QTAwNkNCQTY2IC8qIFBsdWdJbk9yaWdp
bkhhc2guY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MzFBNjdFNEExNjYwMzI2OTAwNkNCQTY2IC8qIFBsdWdJbk9yaWdpbkhhc2guY3BwICovOyB9Owor
CQkzMUE2N0U0RDE2NjAzMjZBMDA2Q0JBNjYgLyogUGx1Z0luT3JpZ2luSGFzaC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFBNjdFNEIxNjYwMzI2OTAw
NkNCQTY2IC8qIFBsdWdJbk9yaWdpbkhhc2guaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQkzMUE5NjNBNTE2NTVENDI2MDAwRDQ2NDUgLyogc3RhcnRC
dXR0b24ucG5nIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAzMUE5NjNBMTE2NTVENDI2MDAwRDQ2NDUgLyogc3RhcnRCdXR0b24ucG5nICovOyB9OwogCQkz
MUE5NjNBNjE2NTVENDI2MDAwRDQ2NDUgLyogc3RhcnRCdXR0b25AMngucG5nIGluIFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUE5NjNBMjE2NTVENDI2MDAw
RDQ2NDUgLyogc3RhcnRCdXR0b25AMngucG5nICovOyB9OwogCQkzMUE5NjNBNzE2NTVENDI2MDAw
RDQ2NDUgLyogc3RhcnRCdXR0b25QcmVzc2VkLnBuZyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFBOTYzQTMxNjU1RDQyNjAwMEQ0NjQ1IC8qIHN0YXJ0
QnV0dG9uUHJlc3NlZC5wbmcgKi87IH07CkBAIC04MTE1LDYgKzgxMTcsOCBAQAogCQkzMTlFNjlC
MDEzMjk5QkJEMDA0QUM5MUEgLyogV2ViS2l0QW5pbWF0aW9uTGlzdC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJLaXRBbmltYXRpb25MaXN0Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTMxOUU2OUIxMTMyOTlCQkQwMDRBQzkxQSAvKiBXZWJLaXRBbmltYXRp
b25MaXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJLaXRBbmltYXRpb25MaXN0Lmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE5RkJENUQxNUQyRjQ0NDAwOTY0MEE2
IC8qIENhY2hlZEltYWdlQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IENhY2hlZEltYWdlQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxQTY3
RTRBMTY2MDMyNjkwMDZDQkE2NiAvKiBQbHVnSW5PcmlnaW5IYXNoLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBsdWdJbk9yaWdpbkhhc2guY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkzMUE2N0U0QjE2NjAzMjY5MDA2Q0JBNjYgLyogUGx1Z0luT3Jp
Z2luSGFzaC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbHVnSW5PcmlnaW5I
YXNoLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxQTk2M0ExMTY1NUQ0MjYwMDBE
NDY0NSAvKiBzdGFydEJ1dHRvbi5wbmcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBpbWFnZS5wbmc7IHBhdGggPSBzdGFydEJ1dHRvbi5wbmc7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxQTk2M0EyMTY1NUQ0MjYwMDBENDY0NSAvKiBzdGFy
dEJ1dHRvbkAyeC5wbmcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBpbWFnZS5wbmc7IHBhdGggPSAic3RhcnRCdXR0b25AMngucG5nIjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzFBOTYzQTMxNjU1RDQyNjAwMEQ0NjQ1IC8qIHN0YXJ0QnV0
dG9uUHJlc3NlZC5wbmcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBpbWFnZS5wbmc7IHBhdGggPSBzdGFydEJ1dHRvblByZXNzZWQucG5nOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjEwNzQsNiArMjEwNzgsOCBAQAogCQkJCTFBRDhGODFB
MTFDQUI5RTkwMEU5M0U1NCAvKiBQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwICovLAogCQkJCTFBRDhG
ODE5MTFDQUI5RTkwMEU5M0U1NCAvKiBQbGF0Zm9ybVN0cmF0ZWdpZXMuaCAqLywKIAkJCQk5MzVD
NDc2QTA5QUM0RDRGMDBBNkFBQjQgLyogUGxhdGZvcm1XaGVlbEV2ZW50LmggKi8sCisJCQkJMzFB
NjdFNEExNjYwMzI2OTAwNkNCQTY2IC8qIFBsdWdJbk9yaWdpbkhhc2guY3BwICovLAorCQkJCTMx
QTY3RTRCMTY2MDMyNjkwMDZDQkE2NiAvKiBQbHVnSW5PcmlnaW5IYXNoLmggKi8sCiAJCQkJQkNC
QjhBQjQxM0YxQUZCMDAwNzM0REYwIC8qIFBPREFyZW5hLmggKi8sCiAJCQkJMUYzRjE5NTIxNDk5
Q0E3NjAwQTVBRUE3IC8qIFBPREZyZWVMaXN0QXJlbmEuaCAqLywKIAkJCQlCQ0JCOEFCNTEzRjFB
RkIwMDA3MzRERjAgLyogUE9ESW50ZXJ2YWwuaCAqLywKQEAgLTI1ODQ3LDYgKzI1ODUzLDcgQEAK
IAkJCQkzMTc0MUFBRDE2NjM2NjA5MDA4QTVCN0UgLyogU2ltdWxhdGVkQ2xpY2tPcHRpb25zLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxNUI4QjdDOTE2NTJDNTIyMDAzNkVGNTUgLyogSlNXZWJLaXRD
U1NNaXhGdW5jdGlvblZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Y3MkFGMzE2NjZFREZD
MDAyQTAyQkQgLyogTGF5ZXJQb29sLmggaW4gSGVhZGVycyAqLywKKwkJCQkzMUE2N0U0RDE2NjAz
MjZBMDA2Q0JBNjYgLyogUGx1Z0luT3JpZ2luSGFzaC5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwog
CQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yODk1
MSw2ICsyODk1OCw3IEBACiAJCQkJMTVCOEI3QzgxNjUyQzUyMjAwMzZFRjU1IC8qIEpTV2ViS2l0
Q1NTTWl4RnVuY3Rpb25WYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NkJBNzY2RTE2NjQy
N0E4MDA1QkU1RDEgLyogRnJhbWVMb2FkUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5
M0Y3MkFGNDE2NjZFREZDMDAyQTAyQkQgLyogTGF5ZXJQb29sLm1tIGluIFNvdXJjZXMgKi8sCisJ
CQkJMzFBNjdFNEMxNjYwMzI2QTAwNkNCQTY2IC8qIFBsdWdJbk9yaWdpbkhhc2guY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbHVnSW5Pcmln
aW5IYXNoLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsdWdJbk9yaWdpbkhhc2guY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmVhNDhiYmU1MzBkOWI0NWNmYjFlMmZjZDMwNDFhNTk4ZmE0MjUxNGEKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbHVnSW5PcmlnaW5IYXNo
LmNwcApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiUGx1Z0luT3JpZ2luSGFzaC5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNs
dWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIktVUkwuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisj
aW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMgaW5saW5lIHVpbnQ2NF90IGNvZGVGb2xkZWRIYXNo
KGNvbnN0IFN0cmluZyYgc3RyaW5nKQoreworICAgIGlmIChzdHJpbmcuaXM4Qml0KCkpCisgICAg
ICAgIHJldHVybiBTdHJpbmdIYXNoZXI6OmNvbXB1dGVIYXNoPExDaGFyLCBDYXNlRm9sZGluZ0hh
c2g6OmZvbGRDYXNlPExDaGFyPiA+KHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBzdHJpbmcubGVuZ3Ro
KCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDx1aW50NjRfdD4oU3RyaW5nSGFzaGVyOjpjb21w
dXRlSGFzaDxVQ2hhciwgQ2FzZUZvbGRpbmdIYXNoOjpmb2xkQ2FzZTxVQ2hhcj4gPihzdHJpbmcu
Y2hhcmFjdGVyczE2KCksIHN0cmluZy5sZW5ndGgoKSkpOworfQorCitQbHVnSW5PcmlnaW5IYXNo
IHBsdWdJbk9yaWdpbkhhc2goY29uc3QgUGFnZSogcGFnZSwgY29uc3QgS1VSTCYgc3JjVVJMKQor
eworICAgIExPRyhQbHVnaW5zLCAiSGFzaDogIik7CisgICAgU3RyaW5nIHBhZ2VIb3N0ID0gcGFn
ZS0+bWFpbkZyYW1lKCktPmRvY3VtZW50KCktPmJhc2VVUkwoKS5ob3N0KCk7CisgICAgaWYgKHBh
Z2VIb3N0LmlzRW1wdHkoKSkgeworICAgICAgICBMT0coUGx1Z2lucywgInBhZ2UgZW1wdHk6ICAg
ICAgICAlc1xuICAgICAgIiwgcGFnZS0+bWFpbkZyYW1lKCktPmRvY3VtZW50KCktPmJhc2VVUkwo
KS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgcGFnZUhvc3QgPSAibG9jYWxob3N0
IjsKKyAgICB9CisgICAgU3RyaW5nIHBsdWdJbkhvc3QgPSBzcmNVUkwuaG9zdCgpOworICAgIGlm
IChwbHVnSW5Ib3N0LmlzRW1wdHkoKSkgeworICAgICAgICBMT0coUGx1Z2lucywgInBsdWctaW4g
c3JjIGVtcHR5OiAlc1xuICAgICAgIiwgc3JjVVJMLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwor
ICAgICAgICBwbHVnSW5Ib3N0ID0gImxvY2FsaG9zdCI7CisgICAgfQorCisgICAgTE9HKFBsdWdp
bnMsICIlcyAlc1xuIiwgcGFnZUhvc3QudXRmOCgpLmRhdGEoKSwgc3JjVVJMLnV0ZjgoKS5kYXRh
KCkpOworICAgIHJldHVybiBjb2RlRm9sZGVkSGFzaChwYWdlSG9zdCkgPDwgMzIgfCBjb2RlRm9s
ZGVkSGFzaChwbHVnSW5Ib3N0KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGx1Z0luT3JpZ2luSGFzaC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vUGx1Z0luT3JpZ2luSGFzaC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRiZGI3ZGEy
ZjE3YzExMDY5ZDZjZDU0YzIxMzg3NGRmOWYyZjM5MmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9QbHVnSW5PcmlnaW5IYXNoLmgKQEAgLTAsMCArMSw0MCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBV
VEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBQbHVnSW5PcmlnaW5IYXNoX2gKKyNkZWZpbmUgUGx1Z0luT3JpZ2lu
SGFzaF9oCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgS1VSTDsKK2NsYXNzIFBhZ2U7
CisKK3R5cGVkZWYgdWludDY0X3QgUGx1Z0luT3JpZ2luSGFzaDsKKworUGx1Z0luT3JpZ2luSGFz
aCBwbHVnSW5PcmlnaW5IYXNoKGNvbnN0IFBhZ2UqLCBjb25zdCBLVVJMJiBzcmNVUkwpOworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvKiBQbHVnSW5PcmlnaW5IYXNoICovCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176798</attachid>
            <date>2012-11-29 13:14:03 -0800</date>
            <delta_ts>2012-11-29 13:18:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103655-20121129131136.patch</filename>
            <type>text/plain</type>
            <size>13853</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2MTUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjhkZTdkOTIxMWU3YjYw
MTZiODUyMWQ4ZDRiMjk4MWNlYmQwZGU2OS4uMzgyYTZkZjJiZGYxYzRhZjc5MTdiYmFlMmNjZjNk
ZTdlNmQ1ZGZkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTExLTI5ICBKb24g
TGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgUGx1Z0luT3JpZ2luSGFzaAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzNjU1Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMjc3ODk0OT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGhlIGNvbmNlcHQgb2YgcGx1Zy1pbiBvcmln
aW4gaGFzaGVzLCB3aGljaCBhcmUgYmFzZWQgb24gYSBjb21iaW5hdGlvbiBvZiB0aGUgYmFzZSBk
b21haW5zIG9mIHRoZQorICAgICAgICBwYWdlJ3MgbWFpbiBmcmFtZSBhbmQgdGhlIHBsdWdpbi4K
KworICAgICAgICAqIHBsYXRmb3JtL1BsdWdJbk9yaWdpbkhhc2guY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OmNvZGVGb2xkZWRIYXNoKTogSGFzaCB0aGUgc3RyaW5nIHdpdGggYSBjYXNl
LWZvbGRlZCBoYXNoLgorICAgICAgICAoV2ViQ29yZTo6cGx1Z0luT3JpZ2luSGFzaCk6IFRoZSBo
YXNoIGlzIHRoZSBqdXh0YXBvc2l0aW9uIG9mIHR3byBjb21wbGV0ZSAzMi1iaXQgaGFzaGVzLCBv
bmUgb2YgdGhlIHBhZ2UncworICAgICAgICBob3N0LCB0aGUgb3RoZXIgb2YgdGhlIHBsdWctaW4g
VVJMJ3MgaG9zdC4gV2UgdXNlIFN0cmluZ0hhc2hlcjo6Y29tcHV0ZUhhc2goKSB0byBnZXQgYWxs
IDMyLWJpdHMgb2YgdGhlCisgICAgICAgIGhhc2guIFVzaW5nIFN0cmluZ0ltcGwncyBoYXNoIG1h
c2tzIG91dCA4IG9mIHRoZSBoYXNoIGJpdHMsIGFuZCB3ZSBkbyBub3QgZ2V0IHRoZSBjYWNoaW5n
IGJlbmVmaXQgZWl0aGVyLCBzaW5jZQorICAgICAgICByZXRyaWV2aW5nIHRoZSBob3N0IGZyb20g
dGhlIEtVUkwgY3JlYXRlcyBhIGJyYW5kIG5ldyBzdHJpbmcgZXZlcnkgdGltZS4KKyAgICAgICAg
ICAgIEluIHRoZSBjYXNlIHdoZXJlIHRoZSBob3N0IGhhcyBhbiBlbXB0eSBzdHJpbmcgKGxpa2Ug
YSBmaWxlIFVSTCksIHdlIHN1YnN0aXR1dGUgaW4gImxvY2FsaG9zdCIuCisgICAgICAgICogcGxh
dGZvcm0vUGx1Z0luT3JpZ2luSGFzaC5oOiBBZGRlZC4KKworICAgICAgICAqIENNYWtlTGlzdHMu
dHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnBy
aToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorCiAyMDEyLTExLTI5ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5z
b25AaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBbV2ViS2l0Ml0gRW1iZWQgdGhlIEhUVFAg
YXV0aGVudGljYXRpb24gZGlhbG9nIGludG8gdGhlIFdlYlZpZXcKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
aW5kZXggYjQwYjRhZDVmZDMwN2RkNzUzNzIxOTA3NDAzZDRhZjczYjZjNTYzMS4uYzY0NDk1Y2Zm
ZjdiYTk2OWNhZWU1YTljZDVkNTJmNWJjY2FhZGY2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAg
LTE4MDgsNiArMTgwOCw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9QbGF0
Zm9ybUV2ZW50LmNwcAogICAgIHBsYXRmb3JtL1BsYXRmb3JtSW5zdHJ1bWVudGF0aW9uLmNwcAog
ICAgIHBsYXRmb3JtL1BsYXRmb3JtTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcAorICAgIHBsYXRm
b3JtL1BsdWdJbk9yaWdpbkhhc2guY3BwCiAgICAgcGxhdGZvcm0vUnVuTG9vcC5jcHAKICAgICBw
bGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuY3BwCiAgICAgcGxhdGZvcm0vU2Nyb2xs
QW5pbWF0b3IuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0
LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAwNjdjNzFjNWQw
ODM0MWJmZmQxNTk4N2IwMjZjMDgyNGVlYTIyNGI0Li42MmQ5ZGIxYzAzOGE4NTkwM2VhYzA4Zjc1
ZTlkZjRhOTk4MWU3YTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5s
aXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTU3Njks
NiArNTc2OSw4IEBAIHdlYmNvcmVfcGxhdGZvcm1fc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vUGxhdGZvcm1TdHJhdGVnaWVzLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bs
YXRmb3JtV2hlZWxFdmVudC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbHVnSW5Pcmln
aW5IYXNoLmNwcCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGx1Z0luT3JpZ2luSGFzaC5o
IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QT0RBcmVuYS5oIFwKIAlTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9QT0RGcmVlTGlzdEFyZW5hLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1BPREludGVydmFsLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBi
L1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggMmQ0MGFkMGJkMjY1ZDg3NzVjYWY2ZmM4
OGQ1NTMzZDQxNmUzMTc5Mi4uZjk0MmNjODI5YTVmNmM2M2NjNmZkZDc2YTUzZTFiNTA5MDFlMTFi
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9UYXJnZXQucHJpCkBAIC0xMDY5LDYgKzEwNjksNyBAQCBTT1VSQ0VTICs9IFwKICAgICBw
bGF0Zm9ybS9QbGF0Zm9ybUV2ZW50LmNwcCBcCiAgICAgcGxhdGZvcm0vUGxhdGZvcm1JbnN0cnVt
ZW50YXRpb24uY3BwIFwKICAgICBwbGF0Zm9ybS9QbGF0Zm9ybU1lbW9yeUluc3RydW1lbnRhdGlv
bi5jcHAgXAorICAgIHBsYXRmb3JtL1BsdWdJbk9yaWdpbkhhc2guY3BwIFwKICAgICBwbGF0Zm9y
bS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuY3BwIFwKICAgICBwbGF0Zm9ybS9SdW5Mb29wLmNw
cCBcCiAgICAgcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuY3BwIFwKQEAgLTIyNzEsNiArMjI3Miw3
IEBAIEhFQURFUlMgKz0gXAogICAgIHBsYXRmb3JtL1BsYXRmb3JtTWVtb3J5SW5zdHJ1bWVudGF0
aW9uLmggXAogICAgIHBsYXRmb3JtL1BsYXRmb3JtVG91Y2hFdmVudC5oIFwKICAgICBwbGF0Zm9y
bS9QbGF0Zm9ybVRvdWNoUG9pbnQuaCBcCisgICAgcGxhdGZvcm0vUGx1Z0luT3JpZ2luSGFzaC5o
IFwKICAgICBwbGF0Zm9ybS9Qb3B1cE1lbnUuaCBcCiAgICAgcGxhdGZvcm0vUmVmZXJyZXJQb2xp
Y3kuaCBcCiAgICAgcGxhdGZvcm0vcXQvQ2xpcGJvYXJkUXQuaCBcCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5k
ZXggNzNhN2FiNmVkZDNmM2U4NDk3ZTUzZjZkNjhmMmYzMTZlYzY2MzgwOS4uNTBkNjk2YjE2MGY1
MTdkMDEzMDIxNzU5ZGNjNDZjOTA2ZDYxZWE3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMzE0LDYg
KzMxNCw3IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vUGxhdGZvcm1TY3JlZW4uaCcsCiAgICAg
ICAgICAgICAncGxhdGZvcm0vUGxhdGZvcm1TdHJhdGVnaWVzLmgnLAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9QbHVn
SW5PcmlnaW5IYXNoLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL1BvcHVwTWVudS5oJywKICAg
ICAgICAgICAgICdwbGF0Zm9ybS9Qb3B1cE1lbnVDbGllbnQuaCcsCiAgICAgICAgICAgICAncGxh
dGZvcm0vUG9wdXBNZW51U3R5bGUuaCcsCkBAIC00NTAwLDYgKzQ1MDEsNyBAQAogICAgICAgICAg
ICAgJ3BsYXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAnLAogICAgICAgICAgICAgJ3BsYXRm
b3JtL1BsYXRmb3JtVG91Y2hFdmVudC5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9QbGF0Zm9y
bVRvdWNoUG9pbnQuaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vUGx1Z0luT3JpZ2luSGFzaC5j
cHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL1ByZXJlbmRlckhhbmRsZS5oJywKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9QdXJnZWFibGVCdWZmZXIuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
UmVmZXJyZXJQb2xpY3kuaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggODQyNzg4YThlMmJmMTJhZTZhNDVkZjY4MjgwNjFhMDJm
YmEyOTlkMi4uZTM1YWJiOTQ4ZWI5NDgwY2NiY2M2MmUzMGEwOTFjOTMxNTliY2QyYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
OTMzLDYgKzkzMyw4IEBACiAJCTMxOUU2OUI1MTMyOTlCQkQwMDRBQzkxQSAvKiBXZWJLaXRBbmlt
YXRpb25MaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDMxOUU2OUFGMTMyOTlCQkQwMDRBQzkxQSAvKiBXZWJLaXRBbmltYXRpb25MaXN0LmNwcCAq
LzsgfTsKIAkJMzE5RTY5QjYxMzI5OUJCRDAwNEFDOTFBIC8qIFdlYktpdEFuaW1hdGlvbkxpc3Qu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxOUU2OUIw
MTMyOTlCQkQwMDRBQzkxQSAvKiBXZWJLaXRBbmltYXRpb25MaXN0LmggKi87IH07CiAJCTMxOUZC
RDVGMTVEMkY0NjQwMDk2NDBBNiAvKiBDYWNoZWRJbWFnZUNsaWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE5RkJENUQxNUQyRjQ0NDAwOTY0MEE2
IC8qIENhY2hlZEltYWdlQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJMzFBNjdFNEMxNjYwMzI2QTAwNkNCQTY2IC8qIFBsdWdJbk9yaWdp
bkhhc2guY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MzFBNjdFNEExNjYwMzI2OTAwNkNCQTY2IC8qIFBsdWdJbk9yaWdpbkhhc2guY3BwICovOyB9Owor
CQkzMUE2N0U0RDE2NjAzMjZBMDA2Q0JBNjYgLyogUGx1Z0luT3JpZ2luSGFzaC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFBNjdFNEIxNjYwMzI2OTAw
NkNCQTY2IC8qIFBsdWdJbk9yaWdpbkhhc2guaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQkzMUE5NjNBNTE2NTVENDI2MDAwRDQ2NDUgLyogc3RhcnRC
dXR0b24ucG5nIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAzMUE5NjNBMTE2NTVENDI2MDAwRDQ2NDUgLyogc3RhcnRCdXR0b24ucG5nICovOyB9OwogCQkz
MUE5NjNBNjE2NTVENDI2MDAwRDQ2NDUgLyogc3RhcnRCdXR0b25AMngucG5nIGluIFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUE5NjNBMjE2NTVENDI2MDAw
RDQ2NDUgLyogc3RhcnRCdXR0b25AMngucG5nICovOyB9OwogCQkzMUE5NjNBNzE2NTVENDI2MDAw
RDQ2NDUgLyogc3RhcnRCdXR0b25QcmVzc2VkLnBuZyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFBOTYzQTMxNjU1RDQyNjAwMEQ0NjQ1IC8qIHN0YXJ0
QnV0dG9uUHJlc3NlZC5wbmcgKi87IH07CkBAIC04MTE1LDYgKzgxMTcsOCBAQAogCQkzMTlFNjlC
MDEzMjk5QkJEMDA0QUM5MUEgLyogV2ViS2l0QW5pbWF0aW9uTGlzdC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJLaXRBbmltYXRpb25MaXN0Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTMxOUU2OUIxMTMyOTlCQkQwMDRBQzkxQSAvKiBXZWJLaXRBbmltYXRp
b25MaXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJLaXRBbmltYXRpb25MaXN0Lmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE5RkJENUQxNUQyRjQ0NDAwOTY0MEE2
IC8qIENhY2hlZEltYWdlQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IENhY2hlZEltYWdlQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxQTY3
RTRBMTY2MDMyNjkwMDZDQkE2NiAvKiBQbHVnSW5PcmlnaW5IYXNoLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBsdWdJbk9yaWdpbkhhc2guY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkzMUE2N0U0QjE2NjAzMjY5MDA2Q0JBNjYgLyogUGx1Z0luT3Jp
Z2luSGFzaC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbHVnSW5PcmlnaW5I
YXNoLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxQTk2M0ExMTY1NUQ0MjYwMDBE
NDY0NSAvKiBzdGFydEJ1dHRvbi5wbmcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBpbWFnZS5wbmc7IHBhdGggPSBzdGFydEJ1dHRvbi5wbmc7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxQTk2M0EyMTY1NUQ0MjYwMDBENDY0NSAvKiBzdGFy
dEJ1dHRvbkAyeC5wbmcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBpbWFnZS5wbmc7IHBhdGggPSAic3RhcnRCdXR0b25AMngucG5nIjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzFBOTYzQTMxNjU1RDQyNjAwMEQ0NjQ1IC8qIHN0YXJ0QnV0
dG9uUHJlc3NlZC5wbmcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBpbWFnZS5wbmc7IHBhdGggPSBzdGFydEJ1dHRvblByZXNzZWQucG5nOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjEwNzQsNiArMjEwNzgsOCBAQAogCQkJCTFBRDhGODFB
MTFDQUI5RTkwMEU5M0U1NCAvKiBQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwICovLAogCQkJCTFBRDhG
ODE5MTFDQUI5RTkwMEU5M0U1NCAvKiBQbGF0Zm9ybVN0cmF0ZWdpZXMuaCAqLywKIAkJCQk5MzVD
NDc2QTA5QUM0RDRGMDBBNkFBQjQgLyogUGxhdGZvcm1XaGVlbEV2ZW50LmggKi8sCisJCQkJMzFB
NjdFNEExNjYwMzI2OTAwNkNCQTY2IC8qIFBsdWdJbk9yaWdpbkhhc2guY3BwICovLAorCQkJCTMx
QTY3RTRCMTY2MDMyNjkwMDZDQkE2NiAvKiBQbHVnSW5PcmlnaW5IYXNoLmggKi8sCiAJCQkJQkNC
QjhBQjQxM0YxQUZCMDAwNzM0REYwIC8qIFBPREFyZW5hLmggKi8sCiAJCQkJMUYzRjE5NTIxNDk5
Q0E3NjAwQTVBRUE3IC8qIFBPREZyZWVMaXN0QXJlbmEuaCAqLywKIAkJCQlCQ0JCOEFCNTEzRjFB
RkIwMDA3MzRERjAgLyogUE9ESW50ZXJ2YWwuaCAqLywKQEAgLTI1ODQ3LDYgKzI1ODUzLDcgQEAK
IAkJCQkzMTc0MUFBRDE2NjM2NjA5MDA4QTVCN0UgLyogU2ltdWxhdGVkQ2xpY2tPcHRpb25zLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxNUI4QjdDOTE2NTJDNTIyMDAzNkVGNTUgLyogSlNXZWJLaXRD
U1NNaXhGdW5jdGlvblZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Y3MkFGMzE2NjZFREZD
MDAyQTAyQkQgLyogTGF5ZXJQb29sLmggaW4gSGVhZGVycyAqLywKKwkJCQkzMUE2N0U0RDE2NjAz
MjZBMDA2Q0JBNjYgLyogUGx1Z0luT3JpZ2luSGFzaC5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwog
CQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yODk1
MSw2ICsyODk1OCw3IEBACiAJCQkJMTVCOEI3QzgxNjUyQzUyMjAwMzZFRjU1IC8qIEpTV2ViS2l0
Q1NTTWl4RnVuY3Rpb25WYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NkJBNzY2RTE2NjQy
N0E4MDA1QkU1RDEgLyogRnJhbWVMb2FkUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5
M0Y3MkFGNDE2NjZFREZDMDAyQTAyQkQgLyogTGF5ZXJQb29sLm1tIGluIFNvdXJjZXMgKi8sCisJ
CQkJMzFBNjdFNEMxNjYwMzI2QTAwNkNCQTY2IC8qIFBsdWdJbk9yaWdpbkhhc2guY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbHVnSW5Pcmln
aW5IYXNoLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsdWdJbk9yaWdpbkhhc2guY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjUwMGRlY2UyNmFkMjhmMTEwMmJmYzNiYjdiMmRiZmY1MjY4YTZlNGYKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbHVnSW5PcmlnaW5IYXNo
LmNwcApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiUGx1Z0luT3JpZ2luSGFzaC5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNs
dWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIktVUkwuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisj
aW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMgaW5saW5lIHVpbnQ2NF90IGNvZGVGb2xkZWRIYXNo
KGNvbnN0IFN0cmluZyYgc3RyaW5nKQoreworICAgIGlmIChzdHJpbmcuaXM4Qml0KCkpCisgICAg
ICAgIHJldHVybiBTdHJpbmdIYXNoZXI6OmNvbXB1dGVIYXNoPExDaGFyLCBDYXNlRm9sZGluZ0hh
c2g6OmZvbGRDYXNlPExDaGFyPiA+KHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBzdHJpbmcubGVuZ3Ro
KCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDx1aW50NjRfdD4oU3RyaW5nSGFzaGVyOjpjb21w
dXRlSGFzaDxVQ2hhciwgQ2FzZUZvbGRpbmdIYXNoOjpmb2xkQ2FzZTxVQ2hhcj4gPihzdHJpbmcu
Y2hhcmFjdGVyczE2KCksIHN0cmluZy5sZW5ndGgoKSkpOworfQorCitQbHVnSW5PcmlnaW5IYXNo
IHBsdWdJbk9yaWdpbkhhc2goY29uc3QgUGFnZSogcGFnZSwgY29uc3QgS1VSTCYgc3JjVVJMKQor
eworICAgIExPRyhQbHVnaW5zLCAiSGFzaDogIik7CisgICAgU3RyaW5nIHBhZ2VIb3N0ID0gcGFn
ZS0+bWFpbkZyYW1lKCktPmRvY3VtZW50KCktPmJhc2VVUkwoKS5ob3N0KCk7CisgICAgaWYgKHBh
Z2VIb3N0LmlzRW1wdHkoKSkgeworICAgICAgICBMT0coUGx1Z2lucywgInBhZ2UgZW1wdHk6ICAg
ICAgICAlc1xuICAgICAgIiwgcGFnZS0+bWFpbkZyYW1lKCktPmRvY3VtZW50KCktPmJhc2VVUkwo
KS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgcGFnZUhvc3QgPSAibG9jYWxob3N0
IjsKKyAgICB9CisgICAgU3RyaW5nIHBsdWdJbkhvc3QgPSBzcmNVUkwuaG9zdCgpOworICAgIGlm
IChwbHVnSW5Ib3N0LmlzRW1wdHkoKSkgeworICAgICAgICBMT0coUGx1Z2lucywgInBsdWctaW4g
c3JjIGVtcHR5OiAlc1xuICAgICAgIiwgc3JjVVJMLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwor
ICAgICAgICBwbHVnSW5Ib3N0ID0gImxvY2FsaG9zdCI7CisgICAgfQorCisgICAgTE9HKFBsdWdp
bnMsICIlcyAlc1xuIiwgcGFnZUhvc3QudXRmOCgpLmRhdGEoKSwgcGx1Z0luSG9zdC51dGY4KCku
ZGF0YSgpKTsKKyAgICByZXR1cm4gY29kZUZvbGRlZEhhc2gocGFnZUhvc3QpIDw8IDMyIHwgY29k
ZUZvbGRlZEhhc2gocGx1Z0luSG9zdCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsdWdJbk9yaWdpbkhhc2guaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsdWdJbk9yaWdpbkhhc2guaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YmRi
N2RhMmYxN2MxMTA2OWQ2Y2Q1NGMyMTM4NzRkZjlmMmYzOTJiCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGx1Z0luT3JpZ2luSGFzaC5oCkBAIC0wLDAgKzEsNDAg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
Q09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBD
T01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgUGx1Z0luT3JpZ2luSGFzaF9oCisjZGVmaW5lIFBsdWdJbk9y
aWdpbkhhc2hfaAorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEtVUkw7CitjbGFzcyBQ
YWdlOworCit0eXBlZGVmIHVpbnQ2NF90IFBsdWdJbk9yaWdpbkhhc2g7CisKK1BsdWdJbk9yaWdp
bkhhc2ggcGx1Z0luT3JpZ2luSGFzaChjb25zdCBQYWdlKiwgY29uc3QgS1VSTCYgc3JjVVJMKTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLyogUGx1Z0luT3JpZ2luSGFzaCAq
Lwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176800</attachid>
            <date>2012-11-29 13:18:13 -0800</date>
            <delta_ts>2012-12-04 01:32:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103655-20121129131546.patch</filename>
            <type>text/plain</type>
            <size>14477</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2MTUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjhkZTdkOTIxMWU3YjYw
MTZiODUyMWQ4ZDRiMjk4MWNlYmQwZGU2OS4uY2Q1YTVhNWU4ZDhlZDhkYmVjYThhYzdkODA0OTMz
ZmQ2MDFkZDk0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTExLTI5ICBKb24g
TGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgUGx1Z0luT3JpZ2luSGFzaAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzNjU1Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMjc3ODk0OT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGhlIGNvbmNlcHQgb2YgcGx1Zy1pbiBvcmln
aW4gaGFzaGVzLCB3aGljaCBhcmUgYmFzZWQgb24gYSBjb21iaW5hdGlvbiBvZiB0aGUgYmFzZSBk
b21haW5zIG9mIHRoZQorICAgICAgICBwYWdlJ3MgbWFpbiBmcmFtZSBhbmQgdGhlIHBsdWdpbi4K
KworICAgICAgICAqIHBsYXRmb3JtL1BsdWdJbk9yaWdpbkhhc2guY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OmNvZGVGb2xkZWRIYXNoKTogSGFzaCB0aGUgc3RyaW5nIHdpdGggYSBjYXNl
LWZvbGRlZCBoYXNoLgorICAgICAgICAoV2ViQ29yZTo6cGx1Z0luT3JpZ2luSGFzaCk6IFRoZSBo
YXNoIGlzIHRoZSBqdXh0YXBvc2l0aW9uIG9mIHR3byBjb21wbGV0ZSAzMi1iaXQgaGFzaGVzLCBv
bmUgb2YgdGhlIHBhZ2UncworICAgICAgICBob3N0LCB0aGUgb3RoZXIgb2YgdGhlIHBsdWctaW4g
VVJMJ3MgaG9zdC4gV2UgdXNlIFN0cmluZ0hhc2hlcjo6Y29tcHV0ZUhhc2goKSB0byBnZXQgYWxs
IDMyLWJpdHMgb2YgdGhlCisgICAgICAgIGhhc2guIFVzaW5nIFN0cmluZ0ltcGwncyBoYXNoIG1h
c2tzIG91dCA4IG9mIHRoZSBoYXNoIGJpdHMsIGFuZCB3ZSBkbyBub3QgZ2V0IHRoZSBjYWNoaW5n
IGJlbmVmaXQgZWl0aGVyLCBzaW5jZQorICAgICAgICByZXRyaWV2aW5nIHRoZSBob3N0IGZyb20g
dGhlIEtVUkwgY3JlYXRlcyBhIGJyYW5kIG5ldyBzdHJpbmcgZXZlcnkgdGltZS4KKyAgICAgICAg
ICAgIEluIHRoZSBjYXNlIHdoZXJlIHRoZSBob3N0IGhhcyBhbiBlbXB0eSBzdHJpbmcgKGxpa2Ug
YSBmaWxlIFVSTCksIHdlIHN1YnN0aXR1dGUgaW4gImxvY2FsaG9zdCIuCisgICAgICAgICogcGxh
dGZvcm0vUGx1Z0luT3JpZ2luSGFzaC5oOiBBZGRlZC4KKworICAgICAgICAqIENNYWtlTGlzdHMu
dHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnBy
aToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorCiAyMDEyLTExLTI5ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4K
IAogICAgICAgICBbR1RLXSBbV2ViS2l0Ml0gRW1iZWQgdGhlIEhUVFAgYXV0aGVudGljYXRpb24g
ZGlhbG9nIGludG8gdGhlIFdlYlZpZXcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggYjQwYjRhZDVm
ZDMwN2RkNzUzNzIxOTA3NDAzZDRhZjczYjZjNTYzMS4uYzY0NDk1Y2ZmZjdiYTk2OWNhZWU1YTlj
ZDVkNTJmNWJjY2FhZGY2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE4MDgsNiArMTgwOCw3
IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9QbGF0Zm9ybUV2ZW50LmNwcAog
ICAgIHBsYXRmb3JtL1BsYXRmb3JtSW5zdHJ1bWVudGF0aW9uLmNwcAogICAgIHBsYXRmb3JtL1Bs
YXRmb3JtTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcAorICAgIHBsYXRmb3JtL1BsdWdJbk9yaWdp
bkhhc2guY3BwCiAgICAgcGxhdGZvcm0vUnVuTG9vcC5jcHAKICAgICBwbGF0Zm9ybS9SdW50aW1l
QXBwbGljYXRpb25DaGVja3MuY3BwCiAgICAgcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAwNjdjNzFjNWQwODM0MWJmZmQxNTk4N2Iw
MjZjMDgyNGVlYTIyNGI0Li42MmQ5ZGIxYzAzOGE4NTkwM2VhYzA4Zjc1ZTlkZjRhOTk4MWU3YTIy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTU3NjksNiArNTc2OSw4IEBAIHdl
YmNvcmVfcGxhdGZvcm1fc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxh
dGZvcm1TdHJhdGVnaWVzLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1T
dHJhdGVnaWVzLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVu
dC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbHVnSW5PcmlnaW5IYXNoLmNwcCBcCisJ
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGx1Z0luT3JpZ2luSGFzaC5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9QT0RBcmVuYS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QT0RG
cmVlTGlzdEFyZW5hLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BPREludGVydmFsLmgg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3Jl
L1RhcmdldC5wcmkKaW5kZXggMmQ0MGFkMGJkMjY1ZDg3NzVjYWY2ZmM4OGQ1NTMzZDQxNmUzMTc5
Mi4uZjk0MmNjODI5YTVmNmM2M2NjNmZkZDc2YTUzZTFiNTA5MDFlMTFiNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJp
CkBAIC0xMDY5LDYgKzEwNjksNyBAQCBTT1VSQ0VTICs9IFwKICAgICBwbGF0Zm9ybS9QbGF0Zm9y
bUV2ZW50LmNwcCBcCiAgICAgcGxhdGZvcm0vUGxhdGZvcm1JbnN0cnVtZW50YXRpb24uY3BwIFwK
ICAgICBwbGF0Zm9ybS9QbGF0Zm9ybU1lbW9yeUluc3RydW1lbnRhdGlvbi5jcHAgXAorICAgIHBs
YXRmb3JtL1BsdWdJbk9yaWdpbkhhc2guY3BwIFwKICAgICBwbGF0Zm9ybS9SdW50aW1lQXBwbGlj
YXRpb25DaGVja3MuY3BwIFwKICAgICBwbGF0Zm9ybS9SdW5Mb29wLmNwcCBcCiAgICAgcGxhdGZv
cm0vU2NoZW1lUmVnaXN0cnkuY3BwIFwKQEAgLTIyNzEsNiArMjI3Miw3IEBAIEhFQURFUlMgKz0g
XAogICAgIHBsYXRmb3JtL1BsYXRmb3JtTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmggXAogICAgIHBs
YXRmb3JtL1BsYXRmb3JtVG91Y2hFdmVudC5oIFwKICAgICBwbGF0Zm9ybS9QbGF0Zm9ybVRvdWNo
UG9pbnQuaCBcCisgICAgcGxhdGZvcm0vUGx1Z0luT3JpZ2luSGFzaC5oIFwKICAgICBwbGF0Zm9y
bS9Qb3B1cE1lbnUuaCBcCiAgICAgcGxhdGZvcm0vUmVmZXJyZXJQb2xpY3kuaCBcCiAgICAgcGxh
dGZvcm0vcXQvQ2xpcGJvYXJkUXQuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNzNhN2FiNmVkZDNm
M2U4NDk3ZTUzZjZkNjhmMmYzMTZlYzY2MzgwOS4uNTBkNjk2YjE2MGY1MTdkMDEzMDIxNzU5ZGNj
NDZjOTA2ZDYxZWE3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMzE0LDYgKzMxNCw3IEBACiAgICAg
ICAgICAgICAncGxhdGZvcm0vUGxhdGZvcm1TY3JlZW4uaCcsCiAgICAgICAgICAgICAncGxhdGZv
cm0vUGxhdGZvcm1TdHJhdGVnaWVzLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL1BsYXRmb3Jt
V2hlZWxFdmVudC5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9QbHVnSW5PcmlnaW5IYXNoLmgn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL1BvcHVwTWVudS5oJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9Qb3B1cE1lbnVDbGllbnQuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vUG9wdXBNZW51
U3R5bGUuaCcsCkBAIC00NTAwLDYgKzQ1MDEsNyBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL1Bs
YXRmb3JtU3RyYXRlZ2llcy5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL1BsYXRmb3JtVG91
Y2hFdmVudC5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9QbGF0Zm9ybVRvdWNoUG9pbnQuaCcs
CisgICAgICAgICAgICAncGxhdGZvcm0vUGx1Z0luT3JpZ2luSGFzaC5jcHAnLAogICAgICAgICAg
ICAgJ3BsYXRmb3JtL1ByZXJlbmRlckhhbmRsZS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9Q
dXJnZWFibGVCdWZmZXIuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vUmVmZXJyZXJQb2xpY3ku
aCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4
IDkwNmJhMTYxMTYyYTBjOGZjZGM3N2I1YTZkOGMzYjhkNWVjMjhjZWEuLjg1YTIyMmQzZjA2M2Mw
ZjhhMWQ4YjE1NWYzNzdiNmMxZDRjNjBhZDEgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0yODczMCw2ICsyODczMCwxNCBAQAogCQkJCT4KIAkJ
CTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxQbHVnSW5P
cmlnaW5IYXNoLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZl
UGF0aD0iLi5ccGxhdGZvcm1cUGx1Z0luT3JpZ2luSGFzaC5oIgorCQkJCT4KKwkJCTwvRmlsZT4K
KwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxQb3B1cE1lbnUuaCIKIAkJ
CQk+CiAJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggODQyNzg4YThlMmJmMTJhZTZhNDVkZjY4MjgwNjFhMDJmYmEy
OTlkMi4uZTM1YWJiOTQ4ZWI5NDgwY2NiY2M2MmUzMGEwOTFjOTMxNTliY2QyYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtOTMz
LDYgKzkzMyw4IEBACiAJCTMxOUU2OUI1MTMyOTlCQkQwMDRBQzkxQSAvKiBXZWJLaXRBbmltYXRp
b25MaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDMxOUU2OUFGMTMyOTlCQkQwMDRBQzkxQSAvKiBXZWJLaXRBbmltYXRpb25MaXN0LmNwcCAqLzsg
fTsKIAkJMzE5RTY5QjYxMzI5OUJCRDAwNEFDOTFBIC8qIFdlYktpdEFuaW1hdGlvbkxpc3QuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxOUU2OUIwMTMy
OTlCQkQwMDRBQzkxQSAvKiBXZWJLaXRBbmltYXRpb25MaXN0LmggKi87IH07CiAJCTMxOUZCRDVG
MTVEMkY0NjQwMDk2NDBBNiAvKiBDYWNoZWRJbWFnZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE5RkJENUQxNUQyRjQ0NDAwOTY0MEE2IC8q
IENhY2hlZEltYWdlQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJMzFBNjdFNEMxNjYwMzI2QTAwNkNCQTY2IC8qIFBsdWdJbk9yaWdpbkhh
c2guY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFB
NjdFNEExNjYwMzI2OTAwNkNCQTY2IC8qIFBsdWdJbk9yaWdpbkhhc2guY3BwICovOyB9OworCQkz
MUE2N0U0RDE2NjAzMjZBMDA2Q0JBNjYgLyogUGx1Z0luT3JpZ2luSGFzaC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFBNjdFNEIxNjYwMzI2OTAwNkNC
QTY2IC8qIFBsdWdJbk9yaWdpbkhhc2guaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQkzMUE5NjNBNTE2NTVENDI2MDAwRDQ2NDUgLyogc3RhcnRCdXR0
b24ucG5nIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAz
MUE5NjNBMTE2NTVENDI2MDAwRDQ2NDUgLyogc3RhcnRCdXR0b24ucG5nICovOyB9OwogCQkzMUE5
NjNBNjE2NTVENDI2MDAwRDQ2NDUgLyogc3RhcnRCdXR0b25AMngucG5nIGluIFJlc291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUE5NjNBMjE2NTVENDI2MDAwRDQ2
NDUgLyogc3RhcnRCdXR0b25AMngucG5nICovOyB9OwogCQkzMUE5NjNBNzE2NTVENDI2MDAwRDQ2
NDUgLyogc3RhcnRCdXR0b25QcmVzc2VkLnBuZyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMzFBOTYzQTMxNjU1RDQyNjAwMEQ0NjQ1IC8qIHN0YXJ0QnV0
dG9uUHJlc3NlZC5wbmcgKi87IH07CkBAIC04MTE1LDYgKzgxMTcsOCBAQAogCQkzMTlFNjlCMDEz
Mjk5QkJEMDA0QUM5MUEgLyogV2ViS2l0QW5pbWF0aW9uTGlzdC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJLaXRBbmltYXRpb25MaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTMxOUU2OUIxMTMyOTlCQkQwMDRBQzkxQSAvKiBXZWJLaXRBbmltYXRpb25M
aXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJLaXRBbmltYXRpb25MaXN0LmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE5RkJENUQxNUQyRjQ0NDAwOTY0MEE2IC8q
IENhY2hlZEltYWdlQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENh
Y2hlZEltYWdlQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxQTY3RTRB
MTY2MDMyNjkwMDZDQkE2NiAvKiBQbHVnSW5PcmlnaW5IYXNoLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBsdWdJbk9yaWdpbkhhc2guY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkzMUE2N0U0QjE2NjAzMjY5MDA2Q0JBNjYgLyogUGx1Z0luT3JpZ2lu
SGFzaC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbHVnSW5PcmlnaW5IYXNo
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxQTk2M0ExMTY1NUQ0MjYwMDBENDY0
NSAvKiBzdGFydEJ1dHRvbi5wbmcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBpbWFnZS5wbmc7IHBhdGggPSBzdGFydEJ1dHRvbi5wbmc7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxQTk2M0EyMTY1NUQ0MjYwMDBENDY0NSAvKiBzdGFydEJ1
dHRvbkAyeC5wbmcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBpbWFnZS5wbmc7IHBhdGggPSAic3RhcnRCdXR0b25AMngucG5nIjsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMzFBOTYzQTMxNjU1RDQyNjAwMEQ0NjQ1IC8qIHN0YXJ0QnV0dG9u
UHJlc3NlZC5wbmcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBpbWFnZS5wbmc7IHBhdGggPSBzdGFydEJ1dHRvblByZXNzZWQucG5nOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMjEwNzQsNiArMjEwNzgsOCBAQAogCQkJCTFBRDhGODFBMTFD
QUI5RTkwMEU5M0U1NCAvKiBQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwICovLAogCQkJCTFBRDhGODE5
MTFDQUI5RTkwMEU5M0U1NCAvKiBQbGF0Zm9ybVN0cmF0ZWdpZXMuaCAqLywKIAkJCQk5MzVDNDc2
QTA5QUM0RDRGMDBBNkFBQjQgLyogUGxhdGZvcm1XaGVlbEV2ZW50LmggKi8sCisJCQkJMzFBNjdF
NEExNjYwMzI2OTAwNkNCQTY2IC8qIFBsdWdJbk9yaWdpbkhhc2guY3BwICovLAorCQkJCTMxQTY3
RTRCMTY2MDMyNjkwMDZDQkE2NiAvKiBQbHVnSW5PcmlnaW5IYXNoLmggKi8sCiAJCQkJQkNCQjhB
QjQxM0YxQUZCMDAwNzM0REYwIC8qIFBPREFyZW5hLmggKi8sCiAJCQkJMUYzRjE5NTIxNDk5Q0E3
NjAwQTVBRUE3IC8qIFBPREZyZWVMaXN0QXJlbmEuaCAqLywKIAkJCQlCQ0JCOEFCNTEzRjFBRkIw
MDA3MzRERjAgLyogUE9ESW50ZXJ2YWwuaCAqLywKQEAgLTI1ODQ3LDYgKzI1ODUzLDcgQEAKIAkJ
CQkzMTc0MUFBRDE2NjM2NjA5MDA4QTVCN0UgLyogU2ltdWxhdGVkQ2xpY2tPcHRpb25zLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxNUI4QjdDOTE2NTJDNTIyMDAzNkVGNTUgLyogSlNXZWJLaXRDU1NN
aXhGdW5jdGlvblZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Y3MkFGMzE2NjZFREZDMDAy
QTAyQkQgLyogTGF5ZXJQb29sLmggaW4gSGVhZGVycyAqLywKKwkJCQkzMUE2N0U0RDE2NjAzMjZB
MDA2Q0JBNjYgLyogUGx1Z0luT3JpZ2luSGFzaC5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJ
cnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yODk1MSw2
ICsyODk1OCw3IEBACiAJCQkJMTVCOEI3QzgxNjUyQzUyMjAwMzZFRjU1IC8qIEpTV2ViS2l0Q1NT
TWl4RnVuY3Rpb25WYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NkJBNzY2RTE2NjQyN0E4
MDA1QkU1RDEgLyogRnJhbWVMb2FkUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5M0Y3
MkFGNDE2NjZFREZDMDAyQTAyQkQgLyogTGF5ZXJQb29sLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJ
MzFBNjdFNEMxNjYwMzI2QTAwNkNCQTY2IC8qIFBsdWdJbk9yaWdpbkhhc2guY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7
CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbHVnSW5PcmlnaW5I
YXNoLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsdWdJbk9yaWdpbkhhc2guY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjUwMGRlY2UyNmFkMjhmMTEwMmJmYzNiYjdiMmRiZmY1MjY4YTZlNGYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbHVnSW5PcmlnaW5IYXNoLmNw
cApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiUGx1Z0luT3JpZ2luSGFzaC5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRl
ICJGcmFtZS5oIgorI2luY2x1ZGUgIktVUkwuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5j
bHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitzdGF0aWMgaW5saW5lIHVpbnQ2NF90IGNvZGVGb2xkZWRIYXNoKGNv
bnN0IFN0cmluZyYgc3RyaW5nKQoreworICAgIGlmIChzdHJpbmcuaXM4Qml0KCkpCisgICAgICAg
IHJldHVybiBTdHJpbmdIYXNoZXI6OmNvbXB1dGVIYXNoPExDaGFyLCBDYXNlRm9sZGluZ0hhc2g6
OmZvbGRDYXNlPExDaGFyPiA+KHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBzdHJpbmcubGVuZ3RoKCkp
OworICAgIHJldHVybiBzdGF0aWNfY2FzdDx1aW50NjRfdD4oU3RyaW5nSGFzaGVyOjpjb21wdXRl
SGFzaDxVQ2hhciwgQ2FzZUZvbGRpbmdIYXNoOjpmb2xkQ2FzZTxVQ2hhcj4gPihzdHJpbmcuY2hh
cmFjdGVyczE2KCksIHN0cmluZy5sZW5ndGgoKSkpOworfQorCitQbHVnSW5PcmlnaW5IYXNoIHBs
dWdJbk9yaWdpbkhhc2goY29uc3QgUGFnZSogcGFnZSwgY29uc3QgS1VSTCYgc3JjVVJMKQorewor
ICAgIExPRyhQbHVnaW5zLCAiSGFzaDogIik7CisgICAgU3RyaW5nIHBhZ2VIb3N0ID0gcGFnZS0+
bWFpbkZyYW1lKCktPmRvY3VtZW50KCktPmJhc2VVUkwoKS5ob3N0KCk7CisgICAgaWYgKHBhZ2VI
b3N0LmlzRW1wdHkoKSkgeworICAgICAgICBMT0coUGx1Z2lucywgInBhZ2UgZW1wdHk6ICAgICAg
ICAlc1xuICAgICAgIiwgcGFnZS0+bWFpbkZyYW1lKCktPmRvY3VtZW50KCktPmJhc2VVUkwoKS5z
dHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgcGFnZUhvc3QgPSAibG9jYWxob3N0IjsK
KyAgICB9CisgICAgU3RyaW5nIHBsdWdJbkhvc3QgPSBzcmNVUkwuaG9zdCgpOworICAgIGlmIChw
bHVnSW5Ib3N0LmlzRW1wdHkoKSkgeworICAgICAgICBMT0coUGx1Z2lucywgInBsdWctaW4gc3Jj
IGVtcHR5OiAlc1xuICAgICAgIiwgc3JjVVJMLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAg
ICAgICBwbHVnSW5Ib3N0ID0gImxvY2FsaG9zdCI7CisgICAgfQorCisgICAgTE9HKFBsdWdpbnMs
ICIlcyAlc1xuIiwgcGFnZUhvc3QudXRmOCgpLmRhdGEoKSwgcGx1Z0luSG9zdC51dGY4KCkuZGF0
YSgpKTsKKyAgICByZXR1cm4gY29kZUZvbGRlZEhhc2gocGFnZUhvc3QpIDw8IDMyIHwgY29kZUZv
bGRlZEhhc2gocGx1Z0luSG9zdCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsdWdJbk9yaWdpbkhhc2guaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1BsdWdJbk9yaWdpbkhhc2guaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YmRiN2Rh
MmYxN2MxMTA2OWQ2Y2Q1NGMyMTM4NzRkZjlmMmYzOTJiCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGx1Z0luT3JpZ2luSGFzaC5oCkBAIC0wLDAgKzEsNDAgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09N
UFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpZm5kZWYgUGx1Z0luT3JpZ2luSGFzaF9oCisjZGVmaW5lIFBsdWdJbk9yaWdp
bkhhc2hfaAorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEtVUkw7CitjbGFzcyBQYWdl
OworCit0eXBlZGVmIHVpbnQ2NF90IFBsdWdJbk9yaWdpbkhhc2g7CisKK1BsdWdJbk9yaWdpbkhh
c2ggcGx1Z0luT3JpZ2luSGFzaChjb25zdCBQYWdlKiwgY29uc3QgS1VSTCYgc3JjVVJMKTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLyogUGx1Z0luT3JpZ2luSGFzaCAqLwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177446</attachid>
            <date>2012-12-04 01:32:31 -0800</date>
            <delta_ts>2012-12-04 02:07:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103655-20121204012956.patch</filename>
            <type>text/plain</type>
            <size>14323</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2NDg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTRjYjc1NTQxYzlhYjU4
NTA0NWM5N2I5Mzc5YjExMTQ0ZDJmZGFjMS4uOTFmZTFhMmE3ZGZlZDUzYmJjMTRkZmUwNDgyYjc5
YmQyZGViNDZjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTEyLTA0ICBKb24g
TGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgUGx1Z0luT3JpZ2luSGFzaAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzNjU1Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMjc3ODk0OT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGhlIGNvbmNlcHQgb2YgcGx1Zy1pbiBvcmln
aW4gaGFzaGVzLCB3aGljaCBhcmUgYmFzZWQgb24gYSBjb21iaW5hdGlvbiBvZiB0aGUgYmFzZSBk
b21haW5zIG9mIHRoZQorICAgICAgICBwYWdlJ3MgbWFpbiBmcmFtZSBhbmQgdGhlIHBsdWctaW4s
IGFuZCB0aGUgcGx1Zy1pbiBNSU1FIHR5cGUuCisKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdJbk9y
aWdpbkhhc2guY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNvbXB1dGVDYXNlRm9sZGVk
SGFzaCk6IEhhc2ggdGhlIHN0cmluZyB3aXRoIGEgY2FzZS1mb2xkZWQgaGFzaC4KKyAgICAgICAg
KFdlYkNvcmU6OlBsdWdJbk9yaWdpbkhhc2g6Omhhc2gpOiBUaGUgaGFzaCBpcyB0aGUgYml0d2lz
ZSBjb21iaW5hdGlvbiBvZiB0aHJlZSB1bnNpZ25lZCBpbnQgaGFzaGVzOiB0aGUKKyAgICAgICAg
cGFnZSdzIGhvc3QsIHRoZSBwbHVnLWluIFVSTCdzIGhvc3QsIGFuZCB0aGUgTUlNRSB0eXBlLiBX
ZSB1c2UgU3RyaW5nSGFzaGVyOjpjb21wdXRlSGFzaCgpIHRvIGdldCBhbGwKKyAgICAgICAgMzIt
Yml0cyBvZiB0aGUgaGFzaC4gVXNpbmcgU3RyaW5nSW1wbCdzIGhhc2ggbWFza3Mgb3V0IDggb2Yg
dGhlIGhhc2ggYml0cywgYW5kIHdlIGRvIG5vdCBnZXQgdGhlIGNhY2hpbmcKKyAgICAgICAgYmVu
ZWZpdCBlaXRoZXIsIHNpbmNlIHJldHJpZXZpbmcgdGhlIGhvc3QgZnJvbSB0aGUgS1VSTCBjcmVh
dGVzIGEgYnJhbmQgbmV3IHN0cmluZyBldmVyeSB0aW1lLiBXZSBzaGlmdAorICAgICAgICB0aGUg
cGFnZSdzIGhvc3QgaGFzaCwgc2luY2Ugb3RoZXJ3aXNlLCBpbiB0aGUgY2FzZSBvZiB3aGVyZSB0
aGUgcGx1Zy1pbiBpcyBsb2FkaW5nIGZyb20gdGhlIHNhbWUgZG9tYWluCisgICAgICAgIGFzIHRo
ZSBwYWdlLCBpdCB3b3VsZCBsZWFkIHRvIGEgY29tYmluZWQgaGFzaCBvZiAwLgorICAgICAgICAq
IHBsdWdpbnMvUGx1Z0luT3JpZ2luSGFzaC5oOiBBZGRlZC4KKworICAgICAgICAqIENNYWtlTGlz
dHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0
LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorCiAyMDEyLTEyLTA0ICBNaWNoYWVsIFBydWV0dCAgPG1pY2hhZWxANjhrLm9yZz4KIAog
ICAgICAgICBbSlNDXSBHZW5lcmF0ZSB2aXNpdENoaWxkcmVuKCkgZm9yIHVuY3VzdG9taXplZCBF
dmVudFRhcmdldCBpbnRlcmZhY2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDk1MGEzNjA5YTdm
YTBhOTBjNTUzOTU0ZDMzNmNkMjI3ODcxMGMwZTUuLjExYWVkZmY0MTA0ZDZiMzNmNDdlYmM4MWFk
ZGFjNDY3YmQ2ZWM3MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0yMDYyLDYgKzIwNjIsNyBA
QCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGx1Z2lucy9ET01NaW1lVHlwZS5jcHAKICAgICBw
bHVnaW5zL0RPTVBsdWdpbkFycmF5LmNwcAogICAgIHBsdWdpbnMvRE9NUGx1Z2luLmNwcAorICAg
IHBsdWdpbnMvUGx1Z0luT3JpZ2luSGFzaC5jcHAKICAgICBwbHVnaW5zL1BsdWdpbkRhdGEuY3Bw
CiAgICAgcGx1Z2lucy9QbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyLmNwcAogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05V
bWFrZWZpbGUubGlzdC5hbQppbmRleCA1YWY3ZWY1NjFjMDdmZGI5MjhlODQ0NTNiMmJlOGZjN2U0
N2M2MDYwLi5mZGEzNzYwNTJhODk0MDU1NjdkOTdjYmFhZGU1YmE1Yjk5ZDdjNDlmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTQxNzMsNiArNDE3Myw4IEBAIHdlYmNvcmVfc291
cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01QbHVnaW4uaCBcCiAJU291cmNl
L1dlYkNvcmUvcGx1Z2lucy9ucGFwaS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsdWdpbnMvbnBm
dW5jdGlvbnMuaCBcCisJU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnSW5PcmlnaW5IYXNoLmNw
cCBcCisJU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnSW5PcmlnaW5IYXNoLmggXAogCVNvdXJj
ZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGF0YWJhc2UuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9w
bHVnaW5zL1BsdWdpbkRhdGFiYXNlLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2lu
RGF0YS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJj
ZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggMjk5MDIxYzllMmZjMzZlYzJhYmM4YzZkZTVkNDVh
OGQyMDhhNDRkYS4uN2ZmNThhMWIwZDMwZTMxOThmYWFlODE4ZWM1ZjRhNGJhYTljZWJjNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9U
YXJnZXQucHJpCkBAIC05MzYsNiArOTM2LDcgQEAgU09VUkNFUyArPSBcCiAgICAgcGx1Z2lucy9Q
bHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyLmNwcCBcCiAgICAgcGx1Z2lucy9ET01NaW1lVHlwZS5j
cHAgXAogICAgIHBsdWdpbnMvRE9NTWltZVR5cGVBcnJheS5jcHAgXAorICAgIHBsdWdpbnMvUGx1
Z0luT3JpZ2luSGFzaC5jcHAgXAogICAgIHBsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb24uY3Bw
IFwKICAgICBwbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uTGlzdC5jcHAgXAogICAgIHBsYXRm
b3JtL0FyZW5hLmNwcCBcCkBAIC0yMzM1LDYgKzIzMzYsNyBAQCBIRUFERVJTICs9IFwKICAgICBw
bHVnaW5zL1BsdWdpbkRlYnVnLmggXAogICAgIHBsdWdpbnMvRE9NUGx1Z2luLmggXAogICAgIHBs
dWdpbnMvSUZyYW1lU2hpbVN1cHBvcnQuaCBcCisgICAgcGx1Z2lucy9QbHVnSW5PcmlnaW5IYXNo
LmggXAogICAgIHBsdWdpbnMvUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlci5oIFwKICAgICBwbHVn
aW5zL1BsdWdpblBhY2thZ2UuaCBcCiAgICAgcGx1Z2lucy9QbHVnaW5TdHJlYW0uaCBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKaW5kZXggZGJmZmE1NDdlOWRmMGMzNTUyN2QxYWQ2NzllODU2NDdlNzI0MzcwZi4u
MjcwMmVjNjA5MDA4OWNjNGEyYzdkMmQ3MzMxZTliNjYxMTI4Nzk0NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aQpAQCAtMzIzNyw2ICszMjM3LDggQEAKICAgICAgICAgICAgICdwbHVnaW5zL0RPTVBsdWdpbkFy
cmF5LmgnLAogICAgICAgICAgICAgJ3BsdWdpbnMvSUZyYW1lU2hpbVN1cHBvcnQuY3BwJywKICAg
ICAgICAgICAgICdwbHVnaW5zL0lGcmFtZVNoaW1TdXBwb3J0LmgnLAorICAgICAgICAgICAgJ3Bs
dWdpbnMvUGx1Z0luT3JpZ2luSGFzaC5jcHAnLAorICAgICAgICAgICAgJ3BsdWdpbnMvUGx1Z0lu
T3JpZ2luSGFzaC5oJywKICAgICAgICAgICAgICdwbHVnaW5zL1BsdWdpbkRhdGEuY3BwJywKICAg
ICAgICAgICAgICdwbHVnaW5zL1BsdWdpbkRhdGFOb25lLmNwcCcsCiAgICAgICAgICAgICAncGx1
Z2lucy9QbHVnaW5EYXRhYmFzZS5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvagppbmRleCBlOTk0ODBjOWQ0MDE4MjdjY2I0MmQ5YTI3YThkNmU3NGU4
ZTQ3MTM4Li4wYjFkZjRlYzkyZWQwYzkxMWRlMjk5NWRiYzk5ZTI1OTc4MGE4NzcwIDEwMDc1NQot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNzI2MTgsNiAr
NzI2MTgsMTQgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0
aD0iLi5ccGx1Z2luc1xQbHVnSW5PcmlnaW5IYXNoLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJ
CQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGx1Z2luc1xQbHVnSW5PcmlnaW5IYXNoLmgi
CisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsdWdp
bnNcUGx1Z2luRGF0YS5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDcwZmUzNzgzNGY3OWU2
Y2YxY2NkMWE1NGM1ZGVkZDI0ZTk0OWE4ZmIuLmMxMzRhYjQwMDc4OWM2ZTBkMmFlNzhhMGQ2MjY5
YzBmYmU3NTU4YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTk1MSw2ICs5NTEsOCBAQAogCQkzMUMwRkY0QzBFNENFRkREMDA3
RDZGRTUgLyogRE9NV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUMwRkY0NjBFNENFRkREMDA3RDZGRTUgLyogRE9N
V2ViS2l0VHJhbnNpdGlvbkV2ZW50LmggKi87IH07CiAJCTMxQzBGRjREMEU0Q0VGREQwMDdENkZF
NSAvKiBET01XZWJLaXRUcmFuc2l0aW9uRXZlbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUMwRkY0NzBFNENFRkREMDA3RDZGRTUgLyogRE9NV2Vi
S2l0VHJhbnNpdGlvbkV2ZW50Lm1tICovOyB9OwogCQkzMUMwRkY0RTBFNENFRkREMDA3RDZGRTUg
LyogRE9NV2ViS2l0VHJhbnNpdGlvbkV2ZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQzBGRjQ4MEU0Q0VGREQwMDdENkZFNSAvKiBE
T01XZWJLaXRUcmFuc2l0aW9uRXZlbnRJbnRlcm5hbC5oICovOyB9OworCQkzMUQ1OTFCQjE2NkMy
RTZDMDBFNkJGMDIgLyogUGx1Z0luT3JpZ2luSGFzaC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUQ1OTFCOTE2NkMyRTZDMDBFNkJGMDIgLyogUGx1
Z0luT3JpZ2luSGFzaC5jcHAgKi87IH07CisJCTMxRDU5MUJDMTY2QzJFNkMwMEU2QkYwMiAvKiBQ
bHVnSW5PcmlnaW5IYXNoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzMUQ1OTFCQTE2NkMyRTZDMDBFNkJGMDIgLyogUGx1Z0luT3JpZ2luSGFzaC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKCk7IH07IH07CiAJCTMxRUMxRTI4MTRGRjYwRUUw
MEM5NDY2MiAvKiBKU05vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjay5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUVDMUUyNjE0RkY2MEVFMDBD
OTQ2NjIgLyogSlNOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2suY3BwICovOyB9OwogCQkz
MUVDMUUyOTE0RkY2MEVFMDBDOTQ2NjIgLyogSlNOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJh
Y2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxRUMx
RTI3MTRGRjYwRUUwMEM5NDY2MiAvKiBKU05vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjay5o
ICovOyB9OwogCQkzMUZCMUE1NzEyMEE1RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90aW9uQ2xpZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUZCMUE0
RjEyMEE1RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90aW9uQ2xpZW50LmggKi87IH07CkBAIC04MTM5
LDYgKzgxNDEsOCBAQAogCQkzMUMwRkY0NjBFNENFRkREMDA3RDZGRTUgLyogRE9NV2ViS2l0VHJh
bnNpdGlvbkV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVdlYktp
dFRyYW5zaXRpb25FdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMUMwRkY0
NzBFNENFRkREMDA3RDZGRTUgLyogRE9NV2ViS2l0VHJhbnNpdGlvbkV2ZW50Lm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NV2ViS2l0VHJhbnNpdGlvbkV2ZW50
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMUMwRkY0ODBFNENFRkREMDA3RDZG
RTUgLyogRE9NV2ViS2l0VHJhbnNpdGlvbkV2ZW50SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRE9NV2ViS2l0VHJhbnNpdGlvbkV2ZW50SW50ZXJuYWwuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFENTkxQjkxNjZDMkU2QzAwRTZCRjAyIC8qIFBs
dWdJbk9yaWdpbkhhc2guY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UGx1Z0luT3JpZ2luSGFzaC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxRDU5
MUJBMTY2QzJFNkMwMEU2QkYwMiAvKiBQbHVnSW5PcmlnaW5IYXNoLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFBsdWdJbk9yaWdpbkhhc2guaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMzFFOEQ4QkExNjBCQzk0QjAwNENFOEY1IC8qIFJlbmRlclNuYXBzaG90dGVk
UGx1Z0luLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlclNu
YXBzaG90dGVkUGx1Z0luLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzFFOEQ4
QkIxNjBCQzk0QzAwNENFOEY1IC8qIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclNuYXBzaG90dGVkUGx1Z0luLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxRUMxRDUwMTRGRUZEMDgwMEM5NDY2MiAvKiBOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2suaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IE5v
dGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjay5pZGw7IHBhdGggPSBNb2R1bGVzL25vdGlmaWNh
dGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTE1NjUzLDYgKzE1NjU3LDggQEAKIAkJCQlBOUM2RTRGMjBENzQ1RTQ4
MDA2NDQyRTkgLyogUGx1Z2luRGF0YS5oICovLAogCQkJCTFBREExNDBFMEUxQUU1RDkwMDAyM0VF
NSAvKiBQbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyLmNwcCAqLywKIAkJCQkxQURBMTQwRjBFMUFF
NUQ5MDAwMjNFRTUgLyogUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlci5oICovLAorCQkJCTMxRDU5
MUI5MTY2QzJFNkMwMEU2QkYwMiAvKiBQbHVnSW5PcmlnaW5IYXNoLmNwcCAqLywKKwkJCQkzMUQ1
OTFCQTE2NkMyRTZDMDBFNkJGMDIgLyogUGx1Z0luT3JpZ2luSGFzaC5oICovLAogCQkJCTFBQTg3
OThGMTFDQkU4NDYwMDNDNjY0RiAvKiBQbHVnaW5TdHJhdGVneS5oICovLAogCQkJCTBBRkRBQzND
MTBGNTQ0OEMwMEUxRjNEMiAvKiBQbHVnaW5WaWV3QmFzZS5oICovLAogCQkJCTc2RkYxN0UyMTEy
MzU2NzMwMDFENjFCNSAvKiBQbHVnaW5WaWV3Tm9uZS5jcHAgKi8sCkBAIC0yNTg2Nyw2ICsyNTg3
Myw3IEBACiAJCQkJMzE3NDFBQUQxNjYzNjYwOTAwOEE1QjdFIC8qIFNpbXVsYXRlZENsaWNrT3B0
aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTVCOEI3QzkxNjUyQzUyMjAwMzZFRjU1IC8qIEpT
V2ViS2l0Q1NTTWl4RnVuY3Rpb25WYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGNzJBRjMx
NjY2RURGQzAwMkEwMkJEIC8qIExheWVyUG9vbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzFENTkx
QkMxNjZDMkU2QzAwRTZCRjAyIC8qIFBsdWdJbk9yaWdpbkhhc2guaCBpbiBIZWFkZXJzICovLAog
CQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpA
QCAtMjg5NzMsNiArMjg5ODAsNyBAQAogCQkJCTg2QkE3NjZFMTY2NDI3QTgwMDVCRTVEMSAvKiBG
cmFtZUxvYWRSZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzRjcyQUY0MTY2NkVERkMw
MDJBMDJCRCAvKiBMYXllclBvb2wubW0gaW4gU291cmNlcyAqLywKIAkJCQlDMzc1RDdGRDE2NjM5
NTE5MDA2MTg0QUIgLyogVHlwZUFoZWFkLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMxRDU5MUJC
MTY2QzJFNkMwMEU2QkYwMiAvKiBQbHVnSW5PcmlnaW5IYXNoLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnSW5PcmlnaW5IYXNoLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z0luT3JpZ2luSGFzaC5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZTk1ZjFkNzBjMDUzYzY4OTM2YjFjMDUzMGM3ZDc5NTBjNmI1YmQ3MQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z0luT3JpZ2luSGFzaC5jcHAKQEAgLTAsMCAr
MSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQbHVn
SW5PcmlnaW5IYXNoLmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkZyYW1l
LmgiCisjaW5jbHVkZSAiSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oIgorI2luY2x1ZGUgIkxvZ2dp
bmcuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgY29tcHV0
ZUNhc2VGb2xkZWRIYXNoKGNvbnN0IFN0cmluZyYgc3RyaW5nKQoreworICAgIGlmIChzdHJpbmcu
aXM4Qml0KCkpCisgICAgICAgIHJldHVybiBTdHJpbmdIYXNoZXI6OmNvbXB1dGVIYXNoPExDaGFy
LCBDYXNlRm9sZGluZ0hhc2g6OmZvbGRDYXNlPExDaGFyPiA+KHN0cmluZy5jaGFyYWN0ZXJzOCgp
LCBzdHJpbmcubGVuZ3RoKCkpOworICAgIHJldHVybiBTdHJpbmdIYXNoZXI6OmNvbXB1dGVIYXNo
PFVDaGFyLCBDYXNlRm9sZGluZ0hhc2g6OmZvbGRDYXNlPFVDaGFyPiA+KHN0cmluZy5jaGFyYWN0
ZXJzMTYoKSwgc3RyaW5nLmxlbmd0aCgpKTsKK30KKwordW5zaWduZWQgUGx1Z0luT3JpZ2luSGFz
aDo6aGFzaChIVE1MUGx1Z0luSW1hZ2VFbGVtZW50KiBwbHVnSW5FbGVtZW50KQoreworICAgIGlm
ICghcGx1Z0luRWxlbWVudC0+ZG9jdW1lbnQoKS0+cGFnZSgpKQorICAgICAgICByZXR1cm4gMDsK
KyAgICBTdHJpbmcgcGFnZUhvc3QgPSBwbHVnSW5FbGVtZW50LT5kb2N1bWVudCgpLT5wYWdlKCkt
Pm1haW5GcmFtZSgpLT5kb2N1bWVudCgpLT5iYXNlVVJMKCkuaG9zdCgpOworICAgIFN0cmluZyBw
bHVnSW5TcmNIb3N0ID0gcGx1Z0luRWxlbWVudC0+bG9hZGVkVVJMSG9zdCgpOworICAgIExPRyhQ
bHVnaW5zLCAiSGFzaDogJXMgJXMgJXMiLCBwYWdlSG9zdC51dGY4KCkuZGF0YSgpLCBwbHVnSW5T
cmNIb3N0LnV0ZjgoKS5kYXRhKCksIHBsdWdJbkVsZW1lbnQtPnNlcnZpY2VUeXBlKCkudXRmOCgp
LmRhdGEoKSk7CisgICAgcmV0dXJuIChjb21wdXRlQ2FzZUZvbGRlZEhhc2gocGFnZUhvc3QpID4+
IDEpIF4gY29tcHV0ZUNhc2VGb2xkZWRIYXNoKHBsdWdJblNyY0hvc3QpIF4gY29tcHV0ZUNhc2VG
b2xkZWRIYXNoKHBsdWdJbkVsZW1lbnQtPnNlcnZpY2VUeXBlKCkpOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdJbk9y
aWdpbkhhc2guaCBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z0luT3JpZ2luSGFzaC5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjU5OWUzYjA3M2QwODY1YjJjN2Y2MGRlYzE3ZmU2NWE4ZWJhNjBlNmEKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdJbk9yaWdpbkhhc2guaApA
QCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBQbHVnSW5PcmlnaW5IYXNoX2gK
KyNkZWZpbmUgUGx1Z0luT3JpZ2luSGFzaF9oCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgSFRNTFBsdWdJbkltYWdlRWxlbWVudDsKKworc3RydWN0IFBsdWdJbk9yaWdpbkhhc2ggewor
ICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQqIHBsdWdJbkVs
ZW1lbnQpOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLyogUGx1Z0lu
T3JpZ2luSGFzaF9oICovCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177451</attachid>
            <date>2012-12-04 02:07:44 -0800</date>
            <delta_ts>2012-12-05 09:14:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103655-20121204020509.patch</filename>
            <type>text/plain</type>
            <size>14387</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2NDg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTRjYjc1NTQxYzlhYjU4
NTA0NWM5N2I5Mzc5YjExMTQ0ZDJmZGFjMS4uOTFmZTFhMmE3ZGZlZDUzYmJjMTRkZmUwNDgyYjc5
YmQyZGViNDZjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTEyLTA0ICBKb24g
TGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgUGx1Z0luT3JpZ2luSGFzaAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzNjU1Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMjc3ODk0OT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGhlIGNvbmNlcHQgb2YgcGx1Zy1pbiBvcmln
aW4gaGFzaGVzLCB3aGljaCBhcmUgYmFzZWQgb24gYSBjb21iaW5hdGlvbiBvZiB0aGUgYmFzZSBk
b21haW5zIG9mIHRoZQorICAgICAgICBwYWdlJ3MgbWFpbiBmcmFtZSBhbmQgdGhlIHBsdWctaW4s
IGFuZCB0aGUgcGx1Zy1pbiBNSU1FIHR5cGUuCisKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdJbk9y
aWdpbkhhc2guY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNvbXB1dGVDYXNlRm9sZGVk
SGFzaCk6IEhhc2ggdGhlIHN0cmluZyB3aXRoIGEgY2FzZS1mb2xkZWQgaGFzaC4KKyAgICAgICAg
KFdlYkNvcmU6OlBsdWdJbk9yaWdpbkhhc2g6Omhhc2gpOiBUaGUgaGFzaCBpcyB0aGUgYml0d2lz
ZSBjb21iaW5hdGlvbiBvZiB0aHJlZSB1bnNpZ25lZCBpbnQgaGFzaGVzOiB0aGUKKyAgICAgICAg
cGFnZSdzIGhvc3QsIHRoZSBwbHVnLWluIFVSTCdzIGhvc3QsIGFuZCB0aGUgTUlNRSB0eXBlLiBX
ZSB1c2UgU3RyaW5nSGFzaGVyOjpjb21wdXRlSGFzaCgpIHRvIGdldCBhbGwKKyAgICAgICAgMzIt
Yml0cyBvZiB0aGUgaGFzaC4gVXNpbmcgU3RyaW5nSW1wbCdzIGhhc2ggbWFza3Mgb3V0IDggb2Yg
dGhlIGhhc2ggYml0cywgYW5kIHdlIGRvIG5vdCBnZXQgdGhlIGNhY2hpbmcKKyAgICAgICAgYmVu
ZWZpdCBlaXRoZXIsIHNpbmNlIHJldHJpZXZpbmcgdGhlIGhvc3QgZnJvbSB0aGUgS1VSTCBjcmVh
dGVzIGEgYnJhbmQgbmV3IHN0cmluZyBldmVyeSB0aW1lLiBXZSBzaGlmdAorICAgICAgICB0aGUg
cGFnZSdzIGhvc3QgaGFzaCwgc2luY2Ugb3RoZXJ3aXNlLCBpbiB0aGUgY2FzZSBvZiB3aGVyZSB0
aGUgcGx1Zy1pbiBpcyBsb2FkaW5nIGZyb20gdGhlIHNhbWUgZG9tYWluCisgICAgICAgIGFzIHRo
ZSBwYWdlLCBpdCB3b3VsZCBsZWFkIHRvIGEgY29tYmluZWQgaGFzaCBvZiAwLgorICAgICAgICAq
IHBsdWdpbnMvUGx1Z0luT3JpZ2luSGFzaC5oOiBBZGRlZC4KKworICAgICAgICAqIENNYWtlTGlz
dHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0
LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorCiAyMDEyLTEyLTA0ICBNaWNoYWVsIFBydWV0dCAgPG1pY2hhZWxANjhrLm9yZz4KIAog
ICAgICAgICBbSlNDXSBHZW5lcmF0ZSB2aXNpdENoaWxkcmVuKCkgZm9yIHVuY3VzdG9taXplZCBF
dmVudFRhcmdldCBpbnRlcmZhY2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDk1MGEzNjA5YTdm
YTBhOTBjNTUzOTU0ZDMzNmNkMjI3ODcxMGMwZTUuLjExYWVkZmY0MTA0ZDZiMzNmNDdlYmM4MWFk
ZGFjNDY3YmQ2ZWM3MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0yMDYyLDYgKzIwNjIsNyBA
QCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGx1Z2lucy9ET01NaW1lVHlwZS5jcHAKICAgICBw
bHVnaW5zL0RPTVBsdWdpbkFycmF5LmNwcAogICAgIHBsdWdpbnMvRE9NUGx1Z2luLmNwcAorICAg
IHBsdWdpbnMvUGx1Z0luT3JpZ2luSGFzaC5jcHAKICAgICBwbHVnaW5zL1BsdWdpbkRhdGEuY3Bw
CiAgICAgcGx1Z2lucy9QbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyLmNwcAogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05V
bWFrZWZpbGUubGlzdC5hbQppbmRleCA1YWY3ZWY1NjFjMDdmZGI5MjhlODQ0NTNiMmJlOGZjN2U0
N2M2MDYwLi5mZGEzNzYwNTJhODk0MDU1NjdkOTdjYmFhZGU1YmE1Yjk5ZDdjNDlmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTQxNzMsNiArNDE3Myw4IEBAIHdlYmNvcmVfc291
cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01QbHVnaW4uaCBcCiAJU291cmNl
L1dlYkNvcmUvcGx1Z2lucy9ucGFwaS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsdWdpbnMvbnBm
dW5jdGlvbnMuaCBcCisJU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnSW5PcmlnaW5IYXNoLmNw
cCBcCisJU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnSW5PcmlnaW5IYXNoLmggXAogCVNvdXJj
ZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGF0YWJhc2UuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9w
bHVnaW5zL1BsdWdpbkRhdGFiYXNlLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2lu
RGF0YS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJj
ZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggMjk5MDIxYzllMmZjMzZlYzJhYmM4YzZkZTVkNDVh
OGQyMDhhNDRkYS4uN2ZmNThhMWIwZDMwZTMxOThmYWFlODE4ZWM1ZjRhNGJhYTljZWJjNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9U
YXJnZXQucHJpCkBAIC05MzYsNiArOTM2LDcgQEAgU09VUkNFUyArPSBcCiAgICAgcGx1Z2lucy9Q
bHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyLmNwcCBcCiAgICAgcGx1Z2lucy9ET01NaW1lVHlwZS5j
cHAgXAogICAgIHBsdWdpbnMvRE9NTWltZVR5cGVBcnJheS5jcHAgXAorICAgIHBsdWdpbnMvUGx1
Z0luT3JpZ2luSGFzaC5jcHAgXAogICAgIHBsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb24uY3Bw
IFwKICAgICBwbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uTGlzdC5jcHAgXAogICAgIHBsYXRm
b3JtL0FyZW5hLmNwcCBcCkBAIC0yMzM1LDYgKzIzMzYsNyBAQCBIRUFERVJTICs9IFwKICAgICBw
bHVnaW5zL1BsdWdpbkRlYnVnLmggXAogICAgIHBsdWdpbnMvRE9NUGx1Z2luLmggXAogICAgIHBs
dWdpbnMvSUZyYW1lU2hpbVN1cHBvcnQuaCBcCisgICAgcGx1Z2lucy9QbHVnSW5PcmlnaW5IYXNo
LmggXAogICAgIHBsdWdpbnMvUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlci5oIFwKICAgICBwbHVn
aW5zL1BsdWdpblBhY2thZ2UuaCBcCiAgICAgcGx1Z2lucy9QbHVnaW5TdHJlYW0uaCBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKaW5kZXggZGJmZmE1NDdlOWRmMGMzNTUyN2QxYWQ2NzllODU2NDdlNzI0MzcwZi4u
MjcwMmVjNjA5MDA4OWNjNGEyYzdkMmQ3MzMxZTliNjYxMTI4Nzk0NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aQpAQCAtMzIzNyw2ICszMjM3LDggQEAKICAgICAgICAgICAgICdwbHVnaW5zL0RPTVBsdWdpbkFy
cmF5LmgnLAogICAgICAgICAgICAgJ3BsdWdpbnMvSUZyYW1lU2hpbVN1cHBvcnQuY3BwJywKICAg
ICAgICAgICAgICdwbHVnaW5zL0lGcmFtZVNoaW1TdXBwb3J0LmgnLAorICAgICAgICAgICAgJ3Bs
dWdpbnMvUGx1Z0luT3JpZ2luSGFzaC5jcHAnLAorICAgICAgICAgICAgJ3BsdWdpbnMvUGx1Z0lu
T3JpZ2luSGFzaC5oJywKICAgICAgICAgICAgICdwbHVnaW5zL1BsdWdpbkRhdGEuY3BwJywKICAg
ICAgICAgICAgICdwbHVnaW5zL1BsdWdpbkRhdGFOb25lLmNwcCcsCiAgICAgICAgICAgICAncGx1
Z2lucy9QbHVnaW5EYXRhYmFzZS5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvagppbmRleCBlOTk0ODBjOWQ0MDE4MjdjY2I0MmQ5YTI3YThkNmU3NGU4
ZTQ3MTM4Li4wYjFkZjRlYzkyZWQwYzkxMWRlMjk5NWRiYzk5ZTI1OTc4MGE4NzcwIDEwMDc1NQot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNzI2MTgsNiAr
NzI2MTgsMTQgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0
aD0iLi5ccGx1Z2luc1xQbHVnSW5PcmlnaW5IYXNoLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJ
CQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGx1Z2luc1xQbHVnSW5PcmlnaW5IYXNoLmgi
CisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsdWdp
bnNcUGx1Z2luRGF0YS5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDcwZmUzNzgzNGY3OWU2
Y2YxY2NkMWE1NGM1ZGVkZDI0ZTk0OWE4ZmIuLmMxMzRhYjQwMDc4OWM2ZTBkMmFlNzhhMGQ2MjY5
YzBmYmU3NTU4YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTk1MSw2ICs5NTEsOCBAQAogCQkzMUMwRkY0QzBFNENFRkREMDA3
RDZGRTUgLyogRE9NV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUMwRkY0NjBFNENFRkREMDA3RDZGRTUgLyogRE9N
V2ViS2l0VHJhbnNpdGlvbkV2ZW50LmggKi87IH07CiAJCTMxQzBGRjREMEU0Q0VGREQwMDdENkZF
NSAvKiBET01XZWJLaXRUcmFuc2l0aW9uRXZlbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUMwRkY0NzBFNENFRkREMDA3RDZGRTUgLyogRE9NV2Vi
S2l0VHJhbnNpdGlvbkV2ZW50Lm1tICovOyB9OwogCQkzMUMwRkY0RTBFNENFRkREMDA3RDZGRTUg
LyogRE9NV2ViS2l0VHJhbnNpdGlvbkV2ZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQzBGRjQ4MEU0Q0VGREQwMDdENkZFNSAvKiBE
T01XZWJLaXRUcmFuc2l0aW9uRXZlbnRJbnRlcm5hbC5oICovOyB9OworCQkzMUQ1OTFCQjE2NkMy
RTZDMDBFNkJGMDIgLyogUGx1Z0luT3JpZ2luSGFzaC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUQ1OTFCOTE2NkMyRTZDMDBFNkJGMDIgLyogUGx1
Z0luT3JpZ2luSGFzaC5jcHAgKi87IH07CisJCTMxRDU5MUJDMTY2QzJFNkMwMEU2QkYwMiAvKiBQ
bHVnSW5PcmlnaW5IYXNoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzMUQ1OTFCQTE2NkMyRTZDMDBFNkJGMDIgLyogUGx1Z0luT3JpZ2luSGFzaC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKCk7IH07IH07CiAJCTMxRUMxRTI4MTRGRjYwRUUw
MEM5NDY2MiAvKiBKU05vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjay5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUVDMUUyNjE0RkY2MEVFMDBD
OTQ2NjIgLyogSlNOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2suY3BwICovOyB9OwogCQkz
MUVDMUUyOTE0RkY2MEVFMDBDOTQ2NjIgLyogSlNOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJh
Y2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxRUMx
RTI3MTRGRjYwRUUwMEM5NDY2MiAvKiBKU05vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjay5o
ICovOyB9OwogCQkzMUZCMUE1NzEyMEE1RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90aW9uQ2xpZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUZCMUE0
RjEyMEE1RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90aW9uQ2xpZW50LmggKi87IH07CkBAIC04MTM5
LDYgKzgxNDEsOCBAQAogCQkzMUMwRkY0NjBFNENFRkREMDA3RDZGRTUgLyogRE9NV2ViS2l0VHJh
bnNpdGlvbkV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVdlYktp
dFRyYW5zaXRpb25FdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMUMwRkY0
NzBFNENFRkREMDA3RDZGRTUgLyogRE9NV2ViS2l0VHJhbnNpdGlvbkV2ZW50Lm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NV2ViS2l0VHJhbnNpdGlvbkV2ZW50
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMUMwRkY0ODBFNENFRkREMDA3RDZG
RTUgLyogRE9NV2ViS2l0VHJhbnNpdGlvbkV2ZW50SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRE9NV2ViS2l0VHJhbnNpdGlvbkV2ZW50SW50ZXJuYWwuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFENTkxQjkxNjZDMkU2QzAwRTZCRjAyIC8qIFBs
dWdJbk9yaWdpbkhhc2guY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UGx1Z0luT3JpZ2luSGFzaC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxRDU5
MUJBMTY2QzJFNkMwMEU2QkYwMiAvKiBQbHVnSW5PcmlnaW5IYXNoLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFBsdWdJbk9yaWdpbkhhc2guaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMzFFOEQ4QkExNjBCQzk0QjAwNENFOEY1IC8qIFJlbmRlclNuYXBzaG90dGVk
UGx1Z0luLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlclNu
YXBzaG90dGVkUGx1Z0luLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzFFOEQ4
QkIxNjBCQzk0QzAwNENFOEY1IC8qIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclNuYXBzaG90dGVkUGx1Z0luLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxRUMxRDUwMTRGRUZEMDgwMEM5NDY2MiAvKiBOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2suaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IE5v
dGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjay5pZGw7IHBhdGggPSBNb2R1bGVzL25vdGlmaWNh
dGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTE1NjUzLDYgKzE1NjU3LDggQEAKIAkJCQlBOUM2RTRGMjBENzQ1RTQ4
MDA2NDQyRTkgLyogUGx1Z2luRGF0YS5oICovLAogCQkJCTFBREExNDBFMEUxQUU1RDkwMDAyM0VF
NSAvKiBQbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyLmNwcCAqLywKIAkJCQkxQURBMTQwRjBFMUFF
NUQ5MDAwMjNFRTUgLyogUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlci5oICovLAorCQkJCTMxRDU5
MUI5MTY2QzJFNkMwMEU2QkYwMiAvKiBQbHVnSW5PcmlnaW5IYXNoLmNwcCAqLywKKwkJCQkzMUQ1
OTFCQTE2NkMyRTZDMDBFNkJGMDIgLyogUGx1Z0luT3JpZ2luSGFzaC5oICovLAogCQkJCTFBQTg3
OThGMTFDQkU4NDYwMDNDNjY0RiAvKiBQbHVnaW5TdHJhdGVneS5oICovLAogCQkJCTBBRkRBQzND
MTBGNTQ0OEMwMEUxRjNEMiAvKiBQbHVnaW5WaWV3QmFzZS5oICovLAogCQkJCTc2RkYxN0UyMTEy
MzU2NzMwMDFENjFCNSAvKiBQbHVnaW5WaWV3Tm9uZS5jcHAgKi8sCkBAIC0yNTg2Nyw2ICsyNTg3
Myw3IEBACiAJCQkJMzE3NDFBQUQxNjYzNjYwOTAwOEE1QjdFIC8qIFNpbXVsYXRlZENsaWNrT3B0
aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTVCOEI3QzkxNjUyQzUyMjAwMzZFRjU1IC8qIEpT
V2ViS2l0Q1NTTWl4RnVuY3Rpb25WYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGNzJBRjMx
NjY2RURGQzAwMkEwMkJEIC8qIExheWVyUG9vbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzFENTkx
QkMxNjZDMkU2QzAwRTZCRjAyIC8qIFBsdWdJbk9yaWdpbkhhc2guaCBpbiBIZWFkZXJzICovLAog
CQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpA
QCAtMjg5NzMsNiArMjg5ODAsNyBAQAogCQkJCTg2QkE3NjZFMTY2NDI3QTgwMDVCRTVEMSAvKiBG
cmFtZUxvYWRSZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzRjcyQUY0MTY2NkVERkMw
MDJBMDJCRCAvKiBMYXllclBvb2wubW0gaW4gU291cmNlcyAqLywKIAkJCQlDMzc1RDdGRDE2NjM5
NTE5MDA2MTg0QUIgLyogVHlwZUFoZWFkLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMxRDU5MUJC
MTY2QzJFNkMwMEU2QkYwMiAvKiBQbHVnSW5PcmlnaW5IYXNoLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnSW5PcmlnaW5IYXNoLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z0luT3JpZ2luSGFzaC5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NjJlMmZjMzNlYzVjZWUxM2MxZjhhMzljNTJiOGJkMWQwNmVmMWMyOQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z0luT3JpZ2luSGFzaC5jcHAKQEAgLTAsMCAr
MSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQbHVn
SW5PcmlnaW5IYXNoLmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkZyYW1l
LmgiCisjaW5jbHVkZSAiSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oIgorI2luY2x1ZGUgIktVUkwu
aCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgPHd0
Zi90ZXh0L1N0cmluZ0hhc2guaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMgaW5s
aW5lIHVuc2lnbmVkIGNvbXB1dGVDYXNlRm9sZGVkSGFzaChjb25zdCBTdHJpbmcmIHN0cmluZykK
K3sKKyAgICBpZiAoc3RyaW5nLmlzOEJpdCgpKQorICAgICAgICByZXR1cm4gU3RyaW5nSGFzaGVy
Ojpjb21wdXRlSGFzaDxMQ2hhciwgQ2FzZUZvbGRpbmdIYXNoOjpmb2xkQ2FzZTxMQ2hhcj4gPihz
dHJpbmcuY2hhcmFjdGVyczgoKSwgc3RyaW5nLmxlbmd0aCgpKTsKKyAgICByZXR1cm4gU3RyaW5n
SGFzaGVyOjpjb21wdXRlSGFzaDxVQ2hhciwgQ2FzZUZvbGRpbmdIYXNoOjpmb2xkQ2FzZTxVQ2hh
cj4gPihzdHJpbmcuY2hhcmFjdGVyczE2KCksIHN0cmluZy5sZW5ndGgoKSk7Cit9CisKK3Vuc2ln
bmVkIFBsdWdJbk9yaWdpbkhhc2g6Omhhc2goSFRNTFBsdWdJbkltYWdlRWxlbWVudCogcGx1Z0lu
RWxlbWVudCwgY29uc3QgS1VSTCYgcGx1Z0luVVJMKQoreworICAgIGlmICghcGx1Z0luRWxlbWVu
dC0+ZG9jdW1lbnQoKS0+cGFnZSgpKQorICAgICAgICByZXR1cm4gMDsKKyAgICBTdHJpbmcgcGFn
ZUhvc3QgPSBwbHVnSW5FbGVtZW50LT5kb2N1bWVudCgpLT5wYWdlKCktPm1haW5GcmFtZSgpLT5k
b2N1bWVudCgpLT5iYXNlVVJMKCkuaG9zdCgpOworICAgIFN0cmluZyBwbHVnSW5TcmNIb3N0ID0g
cGx1Z0luVVJMLmhvc3QoKTsKKyAgICBMT0coUGx1Z2lucywgIkhhc2g6ICVzICVzICVzIiwgcGFn
ZUhvc3QudXRmOCgpLmRhdGEoKSwgcGx1Z0luU3JjSG9zdC51dGY4KCkuZGF0YSgpLCBwbHVnSW5F
bGVtZW50LT5zZXJ2aWNlVHlwZSgpLnV0ZjgoKS5kYXRhKCkpOworICAgIHJldHVybiAoY29tcHV0
ZUNhc2VGb2xkZWRIYXNoKHBhZ2VIb3N0KSA+PiAxKSBeIGNvbXB1dGVDYXNlRm9sZGVkSGFzaChw
bHVnSW5TcmNIb3N0KSBeIGNvbXB1dGVDYXNlRm9sZGVkSGFzaChwbHVnSW5FbGVtZW50LT5zZXJ2
aWNlVHlwZSgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnSW5PcmlnaW5IYXNoLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bHVnaW5zL1BsdWdJbk9yaWdpbkhhc2guaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OTZjMjExNzNhZTJjNGM2ZjU2
YWI5ZGQyMjEyYzJkNTkzM2Y4ZWVjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGx1Z2lucy9QbHVnSW5PcmlnaW5IYXNoLmgKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgUGx1Z0luT3JpZ2luSGFzaF9oCisjZGVmaW5lIFBsdWdJbk9yaWdpbkhhc2hfaAor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ7Citj
bGFzcyBLVVJMOworCitzdHJ1Y3QgUGx1Z0luT3JpZ2luSGFzaCB7CisgICAgc3RhdGljIHVuc2ln
bmVkIGhhc2goSFRNTFBsdWdJbkltYWdlRWxlbWVudCogcGx1Z0luRWxlbWVudCwgY29uc3QgS1VS
TCYgcGx1Z0luVVJMKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8q
IFBsdWdJbk9yaWdpbkhhc2hfaCAqLwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177773</attachid>
            <date>2012-12-05 09:14:15 -0800</date>
            <delta_ts>2012-12-07 00:39:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103655-20121205091141.patch</filename>
            <type>text/plain</type>
            <size>14469</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2Njk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDQ0NjQ1OGI4MTcxZDQ2
MWJkNDJkOTU5ZDYxZTJhNzdmNjcyNjEyYS4uODNjZDE2MjY1OWYyMzBlYTk2N2M5OGRlN2ZjYmY3
MmY2MDhlODYxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTEyLTA0ICBKb24g
TGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgUGx1Z0luT3JpZ2luSGFzaAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzNjU1Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMjc3ODk0OT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGhlIGNvbmNlcHQgb2YgcGx1Zy1pbiBvcmln
aW4gaGFzaGVzLCB3aGljaCBhcmUgYmFzZWQgb24gYSBjb21iaW5hdGlvbiBvZiB0aGUgYmFzZSBk
b21haW5zIG9mIHRoZQorICAgICAgICBwYWdlJ3MgbWFpbiBmcmFtZSBhbmQgdGhlIHBsdWctaW4s
IGFuZCB0aGUgcGx1Zy1pbiBNSU1FIHR5cGUuCisKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdJbk9y
aWdpbkhhc2guY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmFkZENhc2VGb2xkZWRDaGFy
YWN0ZXJzKTogQWRkIHRoZSBjYXNlLWZvbGRlZCBzdHJpbmcgdG8gdGhlIGhhc2guCisgICAgICAg
IChXZWJDb3JlOjpQbHVnSW5PcmlnaW5IYXNoOjpoYXNoKTogVGhlIGhhc2ggaXMgYmFzZWQgb24g
dGhlIGNvbmNhdGVuYXRpb24gb2YgdGhlIHBhZ2UncyBob3N0LCB0aGUgcGx1Zy1pbgorICAgICAg
ICBVUkwncyBob3N0LCBhbmQgdGhlIE1JTUUgdHlwZS4gV2UgdXNlIFN0cmluZ0hhc2hlciB0byBn
ZXQgYWxsIDMyLWJpdHMgb2YgdGhlIGhhc2gsIHNpbmNlIHVzaW5nIFN0cmluZ0ltcGwncyBoYXNo
CisgICAgICAgIG1hc2tzIG91dCA4IG9mIHRoZSBoYXNoIGJpdHMgdG8gbWFrZSByb29tIGZvciBi
aXQgZmxhZ3MuCisgICAgICAgICogcGx1Z2lucy9QbHVnSW5PcmlnaW5IYXNoLmg6IEFkZGVkLgor
CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5h
bToKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAg
ICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTItMTItMDUgIEpvc2h1YSBCZWxsICA8anNi
ZWxsQGNocm9taXVtLm9yZz4KIAogICAgICAgICBJbmRleGVkREI6IFJlcGxhY2UgdXNlIG9mIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2sgKFBhcnQgMikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5k
ZXggOTA4Nzg0NGEyNTZkNDhiZTYwNTZhNWMyZWE5YTQzZDc1NWZjMTUxZi4uMDZiYzdlMjE2NTQ5
YTUxZjRmMGU3YWM5Y2RlNTE0ZmMzOWJlMWMzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTIw
NjYsNiArMjA2Niw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBwbHVnaW5zL0RPTU1pbWVU
eXBlLmNwcAogICAgIHBsdWdpbnMvRE9NUGx1Z2luQXJyYXkuY3BwCiAgICAgcGx1Z2lucy9ET01Q
bHVnaW4uY3BwCisgICAgcGx1Z2lucy9QbHVnSW5PcmlnaW5IYXNoLmNwcAogICAgIHBsdWdpbnMv
UGx1Z2luRGF0YS5jcHAKICAgICBwbHVnaW5zL1BsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXIuY3Bw
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGFkMjk2NmQ3ZTQzMjczMGUwNDUz
M2QzODg4ZjgyOTk3MmMxYzQxMWQuLmMzOGNiZGNmNGVlZDgzZDBmMTY1NzU5ZjFjZWZhM2FjYTgz
ZWM0NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysr
IGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtNDE4Miw2ICs0MTgyLDgg
QEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTVBsdWdp
bi5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbHVnaW5zL25wYXBpLmNwcCBcCiAJU291cmNlL1dlYkNv
cmUvcGx1Z2lucy9ucGZ1bmN0aW9ucy5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdJ
bk9yaWdpbkhhc2guY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdJbk9yaWdpbkhh
c2guaCBcCiAJU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EYXRhYmFzZS5jcHAgXAogCVNv
dXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGF0YWJhc2UuaCBcCiAJU291cmNlL1dlYkNvcmUv
cGx1Z2lucy9QbHVnaW5EYXRhLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJn
ZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCAwOTViMmJiOTM3MWZkYzgz
ZDk2ZjgxNWJlNWE5MGI4ZmE3ZWQ2YTE4Li5iNDBlYzNmMDgwYmM1YTE5YmJhNWI5MjQ5NWVlZmEw
MDA1ODU2MWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTkzNyw2ICs5MzcsNyBAQCBTT1VSQ0VTICs9IFwK
ICAgICBwbHVnaW5zL1BsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXIuY3BwIFwKICAgICBwbHVnaW5z
L0RPTU1pbWVUeXBlLmNwcCBcCiAgICAgcGx1Z2lucy9ET01NaW1lVHlwZUFycmF5LmNwcCBcCisg
ICAgcGx1Z2lucy9QbHVnSW5PcmlnaW5IYXNoLmNwcCBcCiAgICAgcGxhdGZvcm0vYW5pbWF0aW9u
L0FuaW1hdGlvbi5jcHAgXAogICAgIHBsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb25MaXN0LmNw
cCBcCiAgICAgcGxhdGZvcm0vQXJlbmEuY3BwIFwKQEAgLTIzMzksNiArMjM0MCw3IEBAIEhFQURF
UlMgKz0gXAogICAgIHBsdWdpbnMvUGx1Z2luRGVidWcuaCBcCiAgICAgcGx1Z2lucy9ET01QbHVn
aW4uaCBcCiAgICAgcGx1Z2lucy9JRnJhbWVTaGltU3VwcG9ydC5oIFwKKyAgICBwbHVnaW5zL1Bs
dWdJbk9yaWdpbkhhc2guaCBcCiAgICAgcGx1Z2lucy9QbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVy
LmggXAogICAgIHBsdWdpbnMvUGx1Z2luUGFja2FnZS5oIFwKICAgICBwbHVnaW5zL1BsdWdpblN0
cmVhbS5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAwNDUyMzlkYTYyYjMyODY2OGFkNTUzMWExMTA3
OTg0ZGRiNzdkNDI0Li4wYzU5MzI5NTIxMTk3ZmRiNGZkMjUxMTMxZjdiMjJhMTA0OWM4MTJlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCkBAIC0zMjQwLDYgKzMyNDAsOCBAQAogICAgICAgICAgICAgJ3BsdWdp
bnMvRE9NUGx1Z2luQXJyYXkuaCcsCiAgICAgICAgICAgICAncGx1Z2lucy9JRnJhbWVTaGltU3Vw
cG9ydC5jcHAnLAogICAgICAgICAgICAgJ3BsdWdpbnMvSUZyYW1lU2hpbVN1cHBvcnQuaCcsCisg
ICAgICAgICAgICAncGx1Z2lucy9QbHVnSW5PcmlnaW5IYXNoLmNwcCcsCisgICAgICAgICAgICAn
cGx1Z2lucy9QbHVnSW5PcmlnaW5IYXNoLmgnLAogICAgICAgICAgICAgJ3BsdWdpbnMvUGx1Z2lu
RGF0YS5jcHAnLAogICAgICAgICAgICAgJ3BsdWdpbnMvUGx1Z2luRGF0YU5vbmUuY3BwJywKICAg
ICAgICAgICAgICdwbHVnaW5zL1BsdWdpbkRhdGFiYXNlLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGE4YWY5MGY2NmU1NGQ2YjEzNDgy
ZTI5YmI3NjNlN2VkYjIyMTcwMjguLjcyYTkzMWYxM2I1ZjU2YTNmYTUxYzkwOWUwNmQzZjQ3YWEy
OWY5MjcgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CkBAIC03MjY5OCw2ICs3MjY5OCwxNCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxwbHVnaW5zXFBsdWdJbk9yaWdpbkhhc2guY3BwIgorCQkJCT4K
KwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbHVnaW5zXFBsdWdJ
bk9yaWdpbkhhc2guaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZl
UGF0aD0iLi5ccGx1Z2luc1xQbHVnaW5EYXRhLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
MmQ4MWNlNmU0MGZhNzk4NmExN2U1ZmUxOGYzZmU1MjMxY2VjODM0ZS4uZjY4ZDBjODJhNmMzMWQ3
MTFlYWE1ODc4MTNkOTgxMGQ3NDU3NjBhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtOTQ5LDYgKzk0OSw4IEBACiAJCTMxQzBG
RjRDMEU0Q0VGREQwMDdENkZFNSAvKiBET01XZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQzBGRjQ2MEU0Q0VGREQw
MDdENkZFNSAvKiBET01XZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCAqLzsgfTsKIAkJMzFDMEZGNEQw
RTRDRUZERDAwN0Q2RkU1IC8qIERPTVdlYktpdFRyYW5zaXRpb25FdmVudC5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQzBGRjQ3MEU0Q0VGREQwMDdE
NkZFNSAvKiBET01XZWJLaXRUcmFuc2l0aW9uRXZlbnQubW0gKi87IH07CiAJCTMxQzBGRjRFMEU0
Q0VGREQwMDdENkZFNSAvKiBET01XZWJLaXRUcmFuc2l0aW9uRXZlbnRJbnRlcm5hbC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFDMEZGNDgwRTRDRUZE
RDAwN0Q2RkU1IC8qIERPTVdlYktpdFRyYW5zaXRpb25FdmVudEludGVybmFsLmggKi87IH07CisJ
CTMxRDU5MUJCMTY2QzJFNkMwMEU2QkYwMiAvKiBQbHVnSW5PcmlnaW5IYXNoLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxRDU5MUI5MTY2QzJFNkMw
MEU2QkYwMiAvKiBQbHVnSW5PcmlnaW5IYXNoLmNwcCAqLzsgfTsKKwkJMzFENTkxQkMxNjZDMkU2
QzAwRTZCRjAyIC8qIFBsdWdJbk9yaWdpbkhhc2guaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxRDU5MUJBMTY2QzJFNkMwMEU2QkYwMiAvKiBQbHVnSW5P
cmlnaW5IYXNoLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoKTsgfTsgfTsKIAkJMzFF
QzFFMjgxNEZGNjBFRTAwQzk0NjYyIC8qIEpTTm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNr
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxRUMx
RTI2MTRGRjYwRUUwMEM5NDY2MiAvKiBKU05vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjay5j
cHAgKi87IH07CiAJCTMxRUMxRTI5MTRGRjYwRUUwMEM5NDY2MiAvKiBKU05vdGlmaWNhdGlvblBl
cm1pc3Npb25DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMzFFQzFFMjcxNEZGNjBFRTAwQzk0NjYyIC8qIEpTTm90aWZpY2F0aW9uUGVybWlz
c2lvbkNhbGxiYWNrLmggKi87IH07CiAJCTMxRkIxQTU3MTIwQTVEMDYwMERDMDJBMCAvKiBEZXZp
Y2VNb3Rpb25DbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDMxRkIxQTRGMTIwQTVEMDYwMERDMDJBMCAvKiBEZXZpY2VNb3Rpb25DbGllbnQuaCAq
LzsgfTsKQEAgLTgxNDEsNiArODE0Myw4IEBACiAJCTMxQzBGRjQ2MEU0Q0VGREQwMDdENkZFNSAv
KiBET01XZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRE9NV2ViS2l0VHJhbnNpdGlvbkV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTMxQzBGRjQ3MEU0Q0VGREQwMDdENkZFNSAvKiBET01XZWJLaXRUcmFuc2l0aW9uRXZl
bnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01XZWJLaXRU
cmFuc2l0aW9uRXZlbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxQzBGRjQ4
MEU0Q0VGREQwMDdENkZFNSAvKiBET01XZWJLaXRUcmFuc2l0aW9uRXZlbnRJbnRlcm5hbC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01XZWJLaXRUcmFuc2l0aW9uRXZlbnRJ
bnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMUQ1OTFCOTE2NkMyRTZD
MDBFNkJGMDIgLyogUGx1Z0luT3JpZ2luSGFzaC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBQbHVnSW5PcmlnaW5IYXNoLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMzFENTkxQkExNjZDMkU2QzAwRTZCRjAyIC8qIFBsdWdJbk9yaWdpbkhhc2guaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGx1Z0luT3JpZ2luSGFzaC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMUU4RDhCQTE2MEJDOTRCMDA0Q0U4RjUgLyogUmVu
ZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkzMUU4RDhCQjE2MEJDOTRDMDA0Q0U4RjUgLyogUmVuZGVyU25hcHNob3R0ZWRQbHVn
SW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyU25hcHNob3R0ZWRQ
bHVnSW4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzFFQzFENTAxNEZFRkQwODAw
Qzk0NjYyIC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjay5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBuYW1lID0gTm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrLmlkbDsgcGF0aCA9IE1v
ZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2suaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTU2NjQsNiArMTU2NjgsOCBAQAogCQkJCUE5
QzZFNEYyMEQ3NDVFNDgwMDY0NDJFOSAvKiBQbHVnaW5EYXRhLmggKi8sCiAJCQkJMUFEQTE0MEUw
RTFBRTVEOTAwMDIzRUU1IC8qIFBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXIuY3BwICovLAogCQkJ
CTFBREExNDBGMEUxQUU1RDkwMDAyM0VFNSAvKiBQbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyLmgg
Ki8sCisJCQkJMzFENTkxQjkxNjZDMkU2QzAwRTZCRjAyIC8qIFBsdWdJbk9yaWdpbkhhc2guY3Bw
ICovLAorCQkJCTMxRDU5MUJBMTY2QzJFNkMwMEU2QkYwMiAvKiBQbHVnSW5PcmlnaW5IYXNoLmgg
Ki8sCiAJCQkJMUFBODc5OEYxMUNCRTg0NjAwM0M2NjRGIC8qIFBsdWdpblN0cmF0ZWd5LmggKi8s
CiAJCQkJMEFGREFDM0MxMEY1NDQ4QzAwRTFGM0QyIC8qIFBsdWdpblZpZXdCYXNlLmggKi8sCiAJ
CQkJNzZGRjE3RTIxMTIzNTY3MzAwMUQ2MUI1IC8qIFBsdWdpblZpZXdOb25lLmNwcCAqLywKQEAg
LTI1ODgyLDYgKzI1ODg4LDcgQEAKIAkJCQk5M0Y3MkFGMzE2NjZFREZDMDAyQTAyQkQgLyogTGF5
ZXJQb29sLmggaW4gSGVhZGVycyAqLywKIAkJCQlERUJDQ0REMjE2NjQ2RTgyMDBBNDUyRTEgLyog
UmVuZGVyTWVkaWFDb250cm9sRWxlbWVudHMuaCBpbiBIZWFkZXJzICovLAogCQkJCURFQkNDREQ0
MTY2NDZFQUYwMEE0NTJFMSAvKiBNZWRpYUNvbnRyb2xFbGVtZW50VHlwZXMuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTMxRDU5MUJDMTY2QzJFNkMwMEU2QkYwMiAvKiBQbHVnSW5PcmlnaW5IYXNoLmgg
aW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNz
aW5nID0gMDsKIAkJfTsKQEAgLTI4OTg5LDYgKzI4OTk2LDcgQEAKIAkJCQk4NkJBNzY2RTE2NjQy
N0E4MDA1QkU1RDEgLyogRnJhbWVMb2FkUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5
M0Y3MkFGNDE2NjZFREZDMDAyQTAyQkQgLyogTGF5ZXJQb29sLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQzM3NUQ3RkQxNjYzOTUxOTAwNjE4NEFCIC8qIFR5cGVBaGVhZC5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQkzMUQ1OTFCQjE2NkMyRTZDMDBFNkJGMDIgLyogUGx1Z0luT3JpZ2luSGFzaC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNz
aW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z0lu
T3JpZ2luSGFzaC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdJbk9yaWdpbkhhc2gu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjkwNjQ4OTlkYmViMzhhZGZjYzRjN2I3NTAyODA0MjQzNGU2YzNmNTIK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdJbk9yaWdpbkhh
c2guY3BwCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiUGx1Z0luT3JpZ2luSGFzaC5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIK
KyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkhUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaCIK
KyNpbmNsdWRlICJLVVJMLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIlBhZ2Uu
aCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworc3RhdGljIGlubGluZSB2b2lkIGFkZENhc2VGb2xkZWRDaGFyYWN0ZXJzKFN0cmluZ0hh
c2hlciAmaGFzaGVyLCBjb25zdCBTdHJpbmcmIHN0cmluZykKK3sKKyAgICBpZiAoc3RyaW5nLmlz
OEJpdCgpKQorICAgICAgICByZXR1cm4gaGFzaGVyLmFkZENoYXJhY3RlcnM8TENoYXIsIENhc2VG
b2xkaW5nSGFzaDo6Zm9sZENhc2U8TENoYXI+ID4oc3RyaW5nLmNoYXJhY3RlcnM4KCksIHN0cmlu
Zy5sZW5ndGgoKSk7CisgICAgcmV0dXJuIGhhc2hlci5hZGRDaGFyYWN0ZXJzPFVDaGFyLCBDYXNl
Rm9sZGluZ0hhc2g6OmZvbGRDYXNlPFVDaGFyPiA+KHN0cmluZy5jaGFyYWN0ZXJzMTYoKSwgc3Ry
aW5nLmxlbmd0aCgpKTsKK30KKwordW5zaWduZWQgUGx1Z0luT3JpZ2luSGFzaDo6aGFzaChIVE1M
UGx1Z0luSW1hZ2VFbGVtZW50KiBwbHVnSW5FbGVtZW50LCBjb25zdCBLVVJMJiBwbHVnSW5VUkwp
Cit7CisgICAgaWYgKCFwbHVnSW5FbGVtZW50LT5kb2N1bWVudCgpLT5wYWdlKCkpCisgICAgICAg
IHJldHVybiAwOworCisgICAgLy8gV2Ugd2FudCB0byBhdm9pZCBjb25jYXRlbmF0aW5nIHRoZSBz
dHJpbmdzIGFuZCB0aGVuIHRha2luZyB0aGUgaGFzaCwgc2luY2UgdGhhdCBjb3VsZCBsZWFkIHRv
IGFuIGV4cGVuc2l2ZSBjb252ZXJzaW9uLgorICAgIC8vIFdlIGFsc28gd2FudCB0byBhdm9pZCB1
c2luZyB0aGUgaGFzaCgpIGZ1bmN0aW9uIGluIFN0cmluZ0ltcGwgb3IgQ2FzZUZvbGRpbmdIYXNo
IGJlY2F1c2UgdGhhdCBtYXNrcyBvdXQgYml0cyBmb3IgdGhlIHVzZSBvZiBmbGFncy4KKyAgICBT
dHJpbmdIYXNoZXIgaGFzaGVyOworICAgIGFkZENhc2VGb2xkZWRDaGFyYWN0ZXJzKGhhc2hlciwg
cGx1Z0luRWxlbWVudC0+ZG9jdW1lbnQoKS0+cGFnZSgpLT5tYWluRnJhbWUoKS0+ZG9jdW1lbnQo
KS0+YmFzZVVSTCgpLmhvc3QoKSk7CisgICAgaGFzaGVyLmFkZENoYXJhY3RlcigwKTsKKyAgICBh
ZGRDYXNlRm9sZGVkQ2hhcmFjdGVycyhoYXNoZXIsIHBsdWdJblVSTC5ob3N0KCkpOworICAgIGhh
c2hlci5hZGRDaGFyYWN0ZXIoMCk7CisgICAgYWRkQ2FzZUZvbGRlZENoYXJhY3RlcnMoaGFzaGVy
LCBwbHVnSW5FbGVtZW50LT5zZXJ2aWNlVHlwZSgpKTsKKyAgICBMT0coUGx1Z2lucywgIkhhc2g6
ICVzICVzICVzIiwgcGx1Z0luRWxlbWVudC0+ZG9jdW1lbnQoKS0+cGFnZSgpLT5tYWluRnJhbWUo
KS0+ZG9jdW1lbnQoKS0+YmFzZVVSTCgpLmhvc3QoKS51dGY4KCkuZGF0YSgpLCBwbHVnSW5VUkwu
aG9zdCgpLnV0ZjgoKS5kYXRhKCksIHBsdWdJbkVsZW1lbnQtPnNlcnZpY2VUeXBlKCkudXRmOCgp
LmRhdGEoKSk7CisgICAgcmV0dXJuIGhhc2hlci5oYXNoKCk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z0luT3JpZ2lu
SGFzaC5oIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnSW5PcmlnaW5IYXNoLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNzk2YzIxMTczYWUyYzRjNmY1NmFiOWRkMjIxMmMyZDU5MzNmOGVlYwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z0luT3JpZ2luSGFzaC5oCkBAIC0w
LDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFBsdWdJbk9yaWdpbkhhc2hfaAorI2Rl
ZmluZSBQbHVnSW5PcmlnaW5IYXNoX2gKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBI
VE1MUGx1Z0luSW1hZ2VFbGVtZW50OworY2xhc3MgS1VSTDsKKworc3RydWN0IFBsdWdJbk9yaWdp
bkhhc2ggeworICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQq
IHBsdWdJbkVsZW1lbnQsIGNvbnN0IEtVUkwmIHBsdWdJblVSTCk7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvKiBQbHVnSW5PcmlnaW5IYXNoX2ggKi8K
</data>
<flag name="review"
          id="194031"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>