<?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>57849</bug_id>
          
          <creation_ts>2011-04-05 08:04:20 -0700</creation_ts>
          <short_desc>[Chromium] Add WebKit API to query and request unified offline-storage quota</short_desc>
          <delta_ts>2011-05-06 01:28:54 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>57927</blocked>
    
    <blocked>60355</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kinuko Yasuda">kinuko</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>ericu</cc>
    
    <cc>fishd</cc>
    
    <cc>jorlow</cc>
    
    <cc>levin</cc>
    
    <cc>michaeln</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>379566</commentid>
    <comment_count>0</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2011-04-05 08:04:20 -0700</bug_when>
    <thetext>Per discussion on public-webapps, we should expose WebKit API to query and request quota for unified offline-storage quota.
http://lists.w3.org/Archives/Public/public-webapps/2011JanMar/0346.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>379572</commentid>
    <comment_count>1</comment_count>
      <attachid>88237</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2011-04-05 08:10:38 -0700</bug_when>
    <thetext>Created attachment 88237
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>379578</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-04-05 08:21:17 -0700</bug_when>
    <thetext>Attachment 88237 did not build on chromium:
Build output: http://queues.webkit.org/results/8334344</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>379725</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2011-04-05 10:38:30 -0700</bug_when>
    <thetext>Do we intend to have these api&apos;s available from within shared workers too?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>379731</commentid>
    <comment_count>4</comment_count>
      <attachid>88237</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-04-05 10:44:53 -0700</bug_when>
    <thetext>Comment on attachment 88237
Patch

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

Leaving up for review for Darin.

&gt; Source/WebKit/chromium/public/WebStorageInfoCallbacks.h:41
&gt; +    // Callback for WebFrameClient::requestStorageQuota. This may return a smaller amount of quota than the requested, or may return zero when the quota is not enabled (for the requesting origin).

WebKit doesn&apos;t have a line length limit but this seems a bit long.

&gt; Source/WebKit/chromium/public/WebStorageInfoCallbacks.h:42
&gt; +    zero when the quota system is not enabled for the origin.

This appears to be a mistake.

&gt; Source/WebKit/chromium/public/WebStorageInfoCallbacks.h:46
&gt; +    virtual ~WebStorageInfoCallbacks() {}

Space between {}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>379749</commentid>
    <comment_count>5</comment_count>
      <attachid>88237</attachid>
    <who name="Eric U.">ericu</who>
    <bug_when>2011-04-05 11:09:57 -0700</bug_when>
    <thetext>Comment on attachment 88237
Patch

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

&gt; Source/WebKit/chromium/public/WebFrameClient.h:374
&gt; +        WebFrame*, WebStorageInfoType, WebStorageInfoCallbacks*) { }

Doesn&apos;t this need a parameter for how much quota is being requested?

&gt; Source/WebKit/chromium/public/WebStorageInfoCallbacks.h:39
&gt; +    virtual void didQueryStorageUsage(unsigned long long usageInBytes, unsigned long long quotaInBytes) = 0;

Why put these both in the same object?  Will any method ever need both of them?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>379823</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-04-05 13:14:46 -0700</bug_when>
    <thetext>Attachment 88237 did not build on chromium:
Build output: http://queues.webkit.org/results/8336407</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>379863</commentid>
    <comment_count>7</comment_count>
      <attachid>88237</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-04-05 14:32:01 -0700</bug_when>
    <thetext>Comment on attachment 88237
Patch

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

&gt; Source/WebKit/chromium/public/WebFrameClient.h:368
&gt; +    // Queries the origin&apos;s offline storage usage and quota information.

this is not just for &quot;offline&quot; use, right?  might be better to leave out that word.

it seems like you should document what callback method will be called, and you
should also document how the lifetime of the callbacks object is managed.  who
is responsible for deleting it?

&gt; Source/WebKit/chromium/public/WebFrameClient.h:369
&gt; +    virtual void queryStorageUsage(

maybe this method should be named queryStorageUsageAndQuota to better reflect
what it does?

&gt; Source/WebKit/chromium/public/WebFrameClient.h:373
&gt; +    virtual void requestStorageQuota(

so there is no need for this to take a &quot;size hint&quot; parameter?  i would have
expected there to be one much as there is one for openFileSystem.

&gt; Source/WebKit/chromium/public/WebStorageInfoCallbacks.h:36
&gt; +class WebStorageInfoCallbacks {

maybe call this WebStorageQuotaCallbacks?

&gt; Source/WebKit/chromium/public/WebStorageInfoCallbacks.h:37
&gt; +public:

should this interface have a didFail method so that we have a way to abort
early in case the web page is going away?

&gt; Source/WebKit/chromium/public/WebStorageInfoCallbacks.h:39
&gt; +    virtual void didQueryStorageUsage(unsigned long long usageInBytes, unsigned long long quotaInBytes) = 0;

didQueryStorageUsageAndQuota

&gt; Source/WebKit/chromium/public/WebStorageInfoCallbacks.h:43
&gt; +    virtual void didRequestStorageQuota(unsigned long long grantedQuotaInBytes) = 0;

It seems like the name of this function should better correspond to the idea of
being granted something:

wasGrantedStorageQuota

&gt; Source/WebKit/chromium/public/WebStorageInfoType.h:36
&gt; +enum WebStorageInfoType {

It seems like this is meant to describe quota / life-time policy.  Maybe the name
could be improved by using those terms?

enum WebStorageQuotaType {
    WebStorageQuotaTemporary,
    WebStorageQuotaPersistent
};

I&apos;m not sure that &quot;quota&quot; is the best term here either.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>380143</commentid>
    <comment_count>8</comment_count>
      <attachid>88371</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2011-04-05 23:01:45 -0700</bug_when>
    <thetext>Created attachment 88371
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>380144</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-04-05 23:03:17 -0700</bug_when>
    <thetext>Attachment 88371 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1

Source/WebKit/chromium/public/WebFrameClient.h:371:  Should only a single space after a punctuation in a comment.  [whitespace/comments] [5]
Source/WebKit/chromium/public/WebFrameClient.h:383:  Should only a single space after a punctuation in a comment.  [whitespace/comments] [5]
Total errors found: 2 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>380152</commentid>
    <comment_count>10</comment_count>
      <attachid>88374</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2011-04-05 23:19:13 -0700</bug_when>
    <thetext>Created attachment 88374
Patch

Fixed style errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381069</commentid>
    <comment_count>11</comment_count>
      <attachid>88237</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2011-04-06 19:41:03 -0700</bug_when>
    <thetext>Comment on attachment 88237
Patch

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

&gt;&gt; Source/WebKit/chromium/public/WebFrameClient.h:368
&gt;&gt; +    // Queries the origin&apos;s offline storage usage and quota information.
&gt; 
&gt; this is not just for &quot;offline&quot; use, right?  might be better to leave out that word.
&gt; 
&gt; it seems like you should document what callback method will be called, and you
&gt; should also document how the lifetime of the callbacks object is managed.  who
&gt; is responsible for deleting it?

Done.

&gt;&gt; Source/WebKit/chromium/public/WebFrameClient.h:369
&gt;&gt; +    virtual void queryStorageUsage(
&gt; 
&gt; maybe this method should be named queryStorageUsageAndQuota to better reflect
&gt; what it does?

Done.

&gt;&gt; Source/WebKit/chromium/public/WebStorageInfoCallbacks.h:36
&gt;&gt; +class WebStorageInfoCallbacks {
&gt; 
&gt; maybe call this WebStorageQuotaCallbacks?

Done.

&gt;&gt; Source/WebKit/chromium/public/WebStorageInfoCallbacks.h:37
&gt;&gt; +public:
&gt; 
&gt; should this interface have a didFail method so that we have a way to abort
&gt; early in case the web page is going away?

Done.

&gt;&gt;&gt; Source/WebKit/chromium/public/WebStorageInfoCallbacks.h:39
&gt;&gt;&gt; +    virtual void didQueryStorageUsage(unsigned long long usageInBytes, unsigned long long quotaInBytes) = 0;
&gt;&gt; 
&gt;&gt; Why put these both in the same object?  Will any method ever need both of them?
&gt; 
&gt; didQueryStorageUsageAndQuota

Done.  @Eric: it&apos;s just to simplify the callback handling implementation.  We&apos;ve done similar in FileSystem before so it&apos;s easier for me to follow the way.

&gt;&gt; Source/WebKit/chromium/public/WebStorageInfoCallbacks.h:41
&gt;&gt; +    // Callback for WebFrameClient::requestStorageQuota. This may return a smaller amount of quota than the requested, or may return zero when the quota is not enabled (for the requesting origin).
&gt; 
&gt; WebKit doesn&apos;t have a line length limit but this seems a bit long.

Broke the line.

&gt;&gt; Source/WebKit/chromium/public/WebStorageInfoCallbacks.h:42
&gt;&gt; +    zero when the quota system is not enabled for the origin.
&gt; 
&gt; This appears to be a mistake.

Added didFail instead.

&gt;&gt; Source/WebKit/chromium/public/WebStorageInfoCallbacks.h:43
&gt;&gt; +    virtual void didRequestStorageQuota(unsigned long long grantedQuotaInBytes) = 0;
&gt; 
&gt; It seems like the name of this function should better correspond to the idea of
&gt; being granted something:
&gt; 
&gt; wasGrantedStorageQuota

Done.

&gt;&gt; Source/WebKit/chromium/public/WebStorageInfoCallbacks.h:46
&gt;&gt; +    virtual ~WebStorageInfoCallbacks() {}
&gt; 
&gt; Space between {}

Done.

&gt;&gt; Source/WebKit/chromium/public/WebStorageInfoType.h:36
&gt;&gt; +enum WebStorageInfoType {
&gt; 
&gt; It seems like this is meant to describe quota / life-time policy.  Maybe the name
&gt; could be improved by using those terms?
&gt; 
&gt; enum WebStorageQuotaType {
&gt;     WebStorageQuotaTemporary,
&gt;     WebStorageQuotaPersistent
&gt; };
&gt; 
&gt; I&apos;m not sure that &quot;quota&quot; is the best term here either.

Changed the name to WebStorageQuotaType.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381149</commentid>
    <comment_count>12</comment_count>
      <attachid>88580</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2011-04-07 00:05:06 -0700</bug_when>
    <thetext>Created attachment 88580
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381152</commentid>
    <comment_count>13</comment_count>
      <attachid>88582</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2011-04-07 00:09:12 -0700</bug_when>
    <thetext>Created attachment 88582
Patch

Added WebStorageQuotaError enum.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381396</commentid>
    <comment_count>14</comment_count>
      <attachid>88582</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-04-07 09:14:09 -0700</bug_when>
    <thetext>Comment on attachment 88582
Patch

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

R=me because my nit picks are very minor.  Feel free to correct those and then commit.

&gt; Source/WebKit/chromium/public/WebStorageQuotaError.h:38
&gt; +    WebStorageQuotaErrorOk = 0,

do you need the &quot;ok&quot; value?  i can&apos;t imagine didFail being called with this value.

&gt; Source/WebKit/chromium/public/WebStorageQuotaError.h:40
&gt; +    WebStorageQuotaErrorSecurity = 18,

it is not very obvious what ErrorSecurity and ErrorAbort mean.  i think ErrorAbort
will be used whenever the operation could not complete because we are shutting down.
what does ErrorSecurity mean?

maybe the name could be improved or maybe a comment could be added or both.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381542</commentid>
    <comment_count>15</comment_count>
      <attachid>88582</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-04-07 11:53:02 -0700</bug_when>
    <thetext>Comment on attachment 88582
Patch

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

&gt; Source/WebKit/chromium/public/WebStorageQuotaCallbacks.h:45
&gt; +    virtual void wasGrantedStorageQuota(unsigned long long grantedQuotaInBytes) = 0;

you&apos;re going to hate me for suggesting another change here, but maybe
didGrantStorageQuota would be an even better name.  that just occurred
to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381965</commentid>
    <comment_count>16</comment_count>
      <attachid>88582</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2011-04-07 20:50:22 -0700</bug_when>
    <thetext>Comment on attachment 88582
Patch

Thanks for reviewing,

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

&gt;&gt; Source/WebKit/chromium/public/WebStorageQuotaCallbacks.h:45
&gt;&gt; +    virtual void wasGrantedStorageQuota(unsigned long long grantedQuotaInBytes) = 0;
&gt; 
&gt; you&apos;re going to hate me for suggesting another change here, but maybe
&gt; didGrantStorageQuota would be an even better name.  that just occurred
&gt; to me.

Ok that sounds better... :) I&apos;ll just replace the method name and will submit, if the change doesn&apos;t affect your r+.

&gt;&gt; Source/WebKit/chromium/public/WebStorageQuotaError.h:38
&gt;&gt; +    WebStorageQuotaErrorOk = 0,
&gt; 
&gt; do you need the &quot;ok&quot; value?  i can&apos;t imagine didFail being called with this value.

Sounds true, will drop it.

&gt;&gt; Source/WebKit/chromium/public/WebStorageQuotaError.h:40
&gt;&gt; +    WebStorageQuotaErrorSecurity = 18,
&gt; 
&gt; it is not very obvious what ErrorSecurity and ErrorAbort mean.  i think ErrorAbort
&gt; will be used whenever the operation could not complete because we are shutting down.
&gt; what does ErrorSecurity mean?
&gt; 
&gt; maybe the name could be improved or maybe a comment could be added or both.

For now I will just drop QuotaErrorSecurity until I find a proper usage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382024</commentid>
    <comment_count>17</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2011-04-07 23:35:01 -0700</bug_when>
    <thetext>Committed r83258: &lt;http://trac.webkit.org/changeset/83258&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382317</commentid>
    <comment_count>18</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-04-08 09:59:04 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; Ok that sounds better... :) I&apos;ll just replace the method name and will submit, if the change doesn&apos;t affect your r+.
...
&gt; Sounds true, will drop it.
...
&gt; For now I will just drop QuotaErrorSecurity until I find a proper usage.

SGTM, thanks!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88237</attachid>
            <date>2011-04-05 08:10:38 -0700</date>
            <delta_ts>2011-04-06 19:41:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-57849-20110406001037.patch</filename>
            <type>text/plain</type>
            <size>8224</size>
            <attacher name="Kinuko Yasuda">kinuko</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODI3NjUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
NDUzNjM1NTIzMjE0MDEyYWFiYjJlYTJlMTkxNmFhMjE0NmQ3MWQ1MC4uOWM1OTU2NTAwNDhiOWI5
YTQxMjQwOWExMDM1OGJiNTAzOTRlNjViNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMyBAQAorMjAxMS0wNC0wNSAgS2ludWtvIFlhc3VkYSAgPGtpbnVrb0BjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
W0Nocm9taXVtXSBBZGQgV2ViS2l0IEFQSSB0byBxdWVyeSBhbmQgcmVxdWVzdCB1bmlmaWVkIG9m
ZmxpbmUtc3RvcmFnZSBxdW90YQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTc4NDkKKyAgICAgICAgSnVzdCBhZGRpbmcgQVBJLCB0aGlzIGRvZXMgbm90
IGRvIGFueXRoaW5nIHlldC4KKworICAgICAgICBUaGUgQVBJIGlzIGJhc2VkIG9uIHRoZSBwdWJs
aWMgZGlzY3Vzc2lvbiBmb3IgdW5pZmllZCBxdW90YSBBUEk6CisgICAgICAgIGh0dHA6Ly9saXN0
cy53My5vcmcvQXJjaGl2ZXMvUHVibGljL3B1YmxpYy13ZWJhcHBzLzIwMTFKYW5NYXIvMDM0Ni5o
dG1sCisgICAgICAgIChUaGUgZGV0YWlsIGlzIG5vdCB5ZXQgZnVsbHkgc3BlY2lmaWVkIGFuZCBt
aWdodCBiZSBzdWJqZWN0IHRvIGNoYW5nZS4pCisKKyAgICAgICAgKiBXZWJLaXQuZ3lwOgorICAg
ICAgICAqIHB1YmxpYy9XZWJGcmFtZUNsaWVudC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFt
ZUNsaWVudDo6cXVlcnlTdG9yYWdlVXNhZ2UpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2Vi
RnJhbWVDbGllbnQ6OnJlcXVlc3RTdG9yYWdlUXVvdGEpOiBBZGRlZC4KKyAgICAgICAgKiBwdWJs
aWMvV2ViU3RvcmFnZUluZm9DYWxsYmFja3MuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6Oldl
YlN0b3JhZ2VJbmZvQ2FsbGJhY2tzOjp+V2ViU3RvcmFnZUluZm9DYWxsYmFja3MpOgorICAgICAg
ICAqIHB1YmxpYy9XZWJTdG9yYWdlSW5mb1R5cGUuaDogQWRkZWQuCisKIDIwMTEtMDQtMDEgIEFk
YW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBBdHRlbXB0IHRvIGZpeCB0
aGUgQ2hyb21pdW0gYnVpbGQgdXNpbmcgdGhlIGdyZWF0IGFuZCBwb3dlcmZ1bCBnaXQuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL1dlYktpdC5neXAKaW5kZXggNzJkZGI0NWZkZjhmOTVkMjg5NDhmMTA3NjgwNjBh
NjNhMWRiOGNjYS4uYTY4MTg2NTQ1ZTUzOWNiZWI4NTlmYmJhMzg3ZGYwZGE5MGE0YTI1OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cApAQCAtMjY2LDYgKzI2Niw4IEBACiAgICAgICAgICAg
ICAgICAgJ3B1YmxpYy9XZWJTcGVlY2hJbnB1dFJlc3VsdC5oJywKICAgICAgICAgICAgICAgICAn
cHVibGljL1dlYlN0b3JhZ2VBcmVhLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViU3Rv
cmFnZUV2ZW50RGlzcGF0Y2hlci5oJywKKyAgICAgICAgICAgICAgICAncHVibGljL1dlYlN0b3Jh
Z2VJbmZvQ2FsbGJhY2tzLmgnLAorICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViU3RvcmFnZUlu
Zm9UeXBlLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViU3RvcmFnZU5hbWVzcGFjZS5o
JywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYlN0cmluZy5oJywKICAgICAgICAgICAgICAg
ICAncHVibGljL1dlYlRleHRBZmZpbml0eS5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYkZyYW1lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJGcmFtZUNsaWVudC5oCmluZGV4IDJjMjFlZTY0NTg0ODc0NjNjZWQzNGQyOTM5
YTMyMmExMTI4NmZiMzYuLmVlMDZmNDgxM2UwZTgwZDRlNWRlODY3ZWVlNDEzOGJhMjRhZTFiYWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWVDbGllbnQuaApA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAt
MzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIldlYkZpbGVTeXN0ZW0uaCIKICNpbmNsdWRlICJXZWJO
YXZpZ2F0aW9uUG9saWN5LmgiCiAjaW5jbHVkZSAiV2ViTmF2aWdhdGlvblR5cGUuaCIKKyNpbmNs
dWRlICJXZWJTdG9yYWdlSW5mb1R5cGUuaCIKICNpbmNsdWRlICJXZWJVUkxFcnJvci5oIgogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKQEAgLTM2Miw2ICszNjMsMTYgQEAgcHVibGljOgogICAgICAgICBX
ZWJGcmFtZSosIFdlYkZpbGVTeXN0ZW06OlR5cGUsIGxvbmcgbG9uZyBzaXplLAogICAgICAgICBi
b29sIGNyZWF0ZSwgV2ViRmlsZVN5c3RlbUNhbGxiYWNrcyopIHsgfQogCisgICAgLy8gUXVvdGEg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CisKKyAgICAvLyBRdWVyaWVzIHRoZSBvcmlnaW4ncyBvZmZsaW5lIHN0b3JhZ2UgdXNhZ2UgYW5k
IHF1b3RhIGluZm9ybWF0aW9uLgorICAgIHZpcnR1YWwgdm9pZCBxdWVyeVN0b3JhZ2VVc2FnZSgK
KyAgICAgICAgV2ViRnJhbWUqLCBXZWJTdG9yYWdlSW5mb1R5cGUsIFdlYlN0b3JhZ2VJbmZvQ2Fs
bGJhY2tzKikgeyB9CisKKyAgICAvLyBSZXF1ZXN0cyBhIG5ldyBxdW90YSBzaXplIGZvciB0aGUg
b3JpZ2luJ3Mgb2ZmbGluZSBzdG9yYWdlLgorICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0U3RvcmFn
ZVF1b3RhKAorICAgICAgICBXZWJGcmFtZSosIFdlYlN0b3JhZ2VJbmZvVHlwZSwgV2ViU3RvcmFn
ZUluZm9DYWxsYmFja3MqKSB7IH0KKwogcHJvdGVjdGVkOgogICAgIH5XZWJGcmFtZUNsaWVudCgp
IHsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlN0
b3JhZ2VJbmZvQ2FsbGJhY2tzLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJT
dG9yYWdlSW5mb0NhbGxiYWNrcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE5NzdmZDcyMDcwYWIyZDEzY2UyMzI0
YjM1OWQxZDA2ZTUyMGFhNGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJTdG9yYWdlSW5mb0NhbGxiYWNrcy5oCkBAIC0wLDAgKzEsNTEgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICog
ZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAq
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIFdlYlN0b3JhZ2VJbmZvQ2FsbGJhY2tzX2gKKyNkZWZpbmUgV2ViU3RvcmFnZUluZm9DYWxs
YmFja3NfaAorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViU3RvcmFnZUluZm9DYWxs
YmFja3MgeworcHVibGljOgorICAgIC8vIENhbGxiYWNrIGZvciBXZWJGcmFtZUNsaWVudDo6cXVl
cnlTdG9yYWdlVXNhZ2UuCisgICAgdmlydHVhbCB2b2lkIGRpZFF1ZXJ5U3RvcmFnZVVzYWdlKHVu
c2lnbmVkIGxvbmcgbG9uZyB1c2FnZUluQnl0ZXMsIHVuc2lnbmVkIGxvbmcgbG9uZyBxdW90YUlu
Qnl0ZXMpID0gMDsKKworICAgIC8vIENhbGxiYWNrIGZvciBXZWJGcmFtZUNsaWVudDo6cmVxdWVz
dFN0b3JhZ2VRdW90YS4gVGhpcyBtYXkgcmV0dXJuIGEgc21hbGxlciBhbW91bnQgb2YgcXVvdGEg
dGhhbiB0aGUgcmVxdWVzdGVkLCBvciBtYXkgcmV0dXJuIHplcm8gd2hlbiB0aGUgcXVvdGEgaXMg
bm90IGVuYWJsZWQgKGZvciB0aGUgcmVxdWVzdGluZyBvcmlnaW4pLgorICAgIHplcm8gd2hlbiB0
aGUgcXVvdGEgc3lzdGVtIGlzIG5vdCBlbmFibGVkIGZvciB0aGUgb3JpZ2luLgorICAgIHZpcnR1
YWwgdm9pZCBkaWRSZXF1ZXN0U3RvcmFnZVF1b3RhKHVuc2lnbmVkIGxvbmcgbG9uZyBncmFudGVk
UXVvdGFJbkJ5dGVzKSA9IDA7CisKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIH5XZWJTdG9yYWdl
SW5mb0NhbGxiYWNrcygpIHt9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlm
IC8vIFdlYlN0b3JhZ2VJbmZvQ2FsbGJhY2tzX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYlN0b3JhZ2VJbmZvVHlwZS5oIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViU3RvcmFnZUluZm9UeXBlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmU1N2ZjMzg2M2I0
NmU2MjUyMDVkNzc0ZDRlNzFmZDVjMzA4YTcxMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlN0b3JhZ2VJbmZvVHlwZS5oCkBAIC0wLDAgKzEsNDMg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAq
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIFdlYlN0b3JhZ2VJbmZvVHlwZV9oCisjZGVmaW5lIFdlYlN0b3JhZ2VJbmZvVHlw
ZV9oCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitlbnVtIFdlYlN0b3JhZ2VJbmZvVHlwZSB7Cisg
ICAgV2ViU3RvcmFnZUluZm9UeXBlVGVtcG9yYXJ5LAorICAgIFdlYlN0b3JhZ2VJbmZvVHlwZVBl
cnNpc3RlbnQsCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYlN0
b3JhZ2VJbmZvVHlwZV9oCg==
</data>
<flag name="review"
          id="80714"
          type_id="1"
          status="-"
          setter="fishd"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88371</attachid>
            <date>2011-04-05 23:01:45 -0700</date>
            <delta_ts>2011-04-05 23:19:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch</filename>
            <type>text/plain</type>
            <size>9179</size>
            <attacher name="Kinuko Yasuda">kinuko</attacher>
            
              <data encoding="base64">Y29tbWl0IGQ3ZGY4MTQyOThhNjgyMzI5NmZkNzc4YjhkMzM5ZjQ2YmJhZDI4YWUKQXV0aG9yOiBL
aW51a28gWWFzdWRhIDxraW51a29AZ29vZ2xlLmNvbT4KRGF0ZTogICBXZWQgQXByIDYgMTQ6NTY6
MjQgMjAxMSArMDkwMAoKICAgIDU3ODQ5CgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAx
NWU4YzRjLi41ZTQ5NTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIy
IEBACisyMDExLTA0LTA1ICBLaW51a28gWWFzdWRhICA8a2ludWtvQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbQ2hyb21pdW1d
IEFkZCBXZWJLaXQgQVBJIHRvIHF1ZXJ5IGFuZCByZXF1ZXN0IHVuaWZpZWQgb2ZmbGluZS1zdG9y
YWdlIHF1b3RhCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD01Nzg0OQorICAgICAgICBKdXN0IGFkZGluZyB0aGUgQVBJLCB0aGlzIGRvZXMgbm90IGRvIGFu
eXRoaW5nIHlldC4KKworICAgICAgICBUaGUgQVBJIGlzIGJhc2VkIG9uIHRoZSBwdWJsaWMgZGlz
Y3Vzc2lvbiBmb3IgdW5pZmllZCBxdW90YSBBUEk6CisgICAgICAgIGh0dHA6Ly9saXN0cy53My5v
cmcvQXJjaGl2ZXMvUHVibGljL3B1YmxpYy13ZWJhcHBzLzIwMTFKYW5NYXIvMDM0Ni5odG1sCisg
ICAgICAgIChUaGUgZGV0YWlsIGlzIG5vdCB5ZXQgZnVsbHkgc3BlY2lmaWVkIGFuZCBtaWdodCBi
ZSBzdWJqZWN0IHRvIGNoYW5nZS4pCisKKyAgICAgICAgKiBwdWJsaWMvV2ViRnJhbWVDbGllbnQu
aDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVDbGllbnQ6OnF1ZXJ5U3RvcmFnZVVzYWdlQW5k
UXVvdGEpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVDbGllbnQ6OnJlcXVlc3RT
dG9yYWdlUXVvdGEpOiBBZGRlZC4KKyAgICAgICAgKiBwdWJsaWMvV2ViU3RvcmFnZVF1b3RhQ2Fs
bGJhY2tzLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJTdG9yYWdlUXVvdGFDYWxsYmFj
a3M6On5XZWJTdG9yYWdlUXVvdGFDYWxsYmFja3MpOgorICAgICAgICAqIHB1YmxpYy9XZWJTdG9y
YWdlUXVvdGFUeXBlLmg6IEFkZGVkLgorCiAyMDExLTA0LTA1ICBIYW5zIFdlbm5ib3JnICA8aGFu
c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9XZWJLaXQuZ3lwCmluZGV4IDI2M2I0OWUuLjUwZDFlMzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL1dlYktpdC5neXAKQEAgLTI2Niw2ICsyNjYsOCBAQAogICAgICAgICAgICAgICAgICdwdWJs
aWMvV2ViU3BlZWNoSW5wdXRSZXN1bHQuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJT
dG9yYWdlQXJlYS5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYlN0b3JhZ2VFdmVudERp
c3BhdGNoZXIuaCcsCisgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJTdG9yYWdlUXVvdGFDYWxs
YmFja3MuaCcsCisgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJTdG9yYWdlUXVvdGFUeXBlLmgn
LAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViU3RvcmFnZU5hbWVzcGFjZS5oJywKICAgICAg
ICAgICAgICAgICAncHVibGljL1dlYlN0cmluZy5oJywKICAgICAgICAgICAgICAgICAncHVibGlj
L1dlYlRleHRBZmZpbml0eS5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYkZyYW1lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJGcmFtZUNsaWVudC5oCmluZGV4IDJjMjFlZTYuLjMyYjk5YTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWVDbGllbnQuaApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMzUsNiArMzUsNyBAQAogI2lu
Y2x1ZGUgIldlYkZpbGVTeXN0ZW0uaCIKICNpbmNsdWRlICJXZWJOYXZpZ2F0aW9uUG9saWN5Lmgi
CiAjaW5jbHVkZSAiV2ViTmF2aWdhdGlvblR5cGUuaCIKKyNpbmNsdWRlICJXZWJTdG9yYWdlUXVv
dGFUeXBlLmgiCiAjaW5jbHVkZSAiV2ViVVJMRXJyb3IuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7
CkBAIC01MSw2ICs1Miw3IEBAIGNsYXNzIFdlYk5vZGU7CiBjbGFzcyBXZWJQbHVnaW47CiBjbGFz
cyBXZWJTZWN1cml0eU9yaWdpbjsKIGNsYXNzIFdlYlNoYXJlZFdvcmtlcjsKK2NsYXNzIFdlYlN0
b3JhZ2VRdW90YUNhbGxiYWNrczsKIGNsYXNzIFdlYlN0cmluZzsKIGNsYXNzIFdlYlVSTDsKIGNs
YXNzIFdlYlVSTFJlcXVlc3Q7CkBAIC0zNjIsNiArMzY0LDMzIEBAIHB1YmxpYzoKICAgICAgICAg
V2ViRnJhbWUqLCBXZWJGaWxlU3lzdGVtOjpUeXBlLCBsb25nIGxvbmcgc2l6ZSwKICAgICAgICAg
Ym9vbCBjcmVhdGUsIFdlYkZpbGVTeXN0ZW1DYWxsYmFja3MqKSB7IH0KIAorICAgIC8vIFF1b3Rh
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorCisgICAgLy8gUXVlcmllcyB0aGUgb3JpZ2luJ3Mgc3RvcmFnZSB1c2FnZSBhbmQgcXVvdGEg
aW5mb3JtYXRpb24uCisgICAgLy8gV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzOjpkaWRRdWVyeVN0
b3JhZ2VVc2FnZUFuZFF1b3RhIHdpbGwgYmUgY2FsbGVkCisgICAgLy8gd2l0aCB0aGUgY3VycmVu
dCB1c2FnZSBhbmQgcXVvdGEgaW5mb3JtYXRpb24gZm9yIHRoZSBvcmlnaW4uICBXaGVuCisgICAg
Ly8gYW4gZXJyb3Igb2NjdXJzIFdlYlN0b3JhZ2VRdW90YUNhbGxiYWNrczo6ZGlkRmFpbCBpcyBj
YWxsZWQgd2l0aCBhbgorICAgIC8vIGVycm9yIGNvZGUuCisgICAgLy8gVGhlIGNhbGxiYWNrcyBv
YmplY3QgaXMgZGVsZXRlZCB3aGVuIHRoZSBjYWxsYmFjayBtZXRob2QgaXMgY2FsbGVkCisgICAg
Ly8gYW5kIGRvZXMgbm90IG5lZWQgdG8gYmUgKGFuZCBzaG91bGQgbm90IGJlKSBkZWxldGVkIG1h
bnVhbGx5LgorICAgIHZpcnR1YWwgdm9pZCBxdWVyeVN0b3JhZ2VVc2FnZUFuZFF1b3RhKAorICAg
ICAgICBXZWJGcmFtZSosIFdlYlN0b3JhZ2VRdW90YVR5cGUsIFdlYlN0b3JhZ2VRdW90YUNhbGxi
YWNrcyopIHsgfQorCisgICAgLy8gUmVxdWVzdHMgYSBuZXcgcXVvdGEgc2l6ZSBmb3IgdGhlIG9y
aWdpbidzIHN0b3JhZ2UuCisgICAgLy8gfG5ld1F1b3RhSW5CeXRlc3wgaW5kaWNhdGVzIGhvdyBt
dWNoIHN0b3JhZ2Ugc3BhY2UgKGluIGJ5dGVzKSB0aGUKKyAgICAvLyBjYWxsZXIgZXhwZWN0cyB0
byBuZWVkLgorICAgIC8vIFdlYlN0b3JhZ2VRdW90YUNhbGxiYWNrczo6cmVxdWVzdFN0b3JhZ2VR
dW90YSB3aWxsIGJlIGNhbGxlZCB3aGVuCisgICAgLy8gYSBuZXcgcXVvdGEgaXMgZ3JhbnRlZC4g
IFdlYlN0b3JhZ2VRdW90YUNhbGxiYWNrczo6cmVxdWVzdFN0b3JhZ2VRdW90YQorICAgIC8vIGlz
IGNhbGxlZCB3aXRoIGFuIGVycm9yIGNvZGUgb3RoZXJ3aXNlLgorICAgIC8vIE5vdGUgdGhhdCB0
aGUgcmVxdWVzdGluZyBxdW90YSBzaXplIG1heSBub3QgYWx3YXlzIGJlIGdyYW50ZWQgYW5kCisg
ICAgLy8gYSBzbWFsbGVyIGFtb3VudCBvZiBxdW90YSB0aGFuIHJlcXVlc3RlZCBtaWdodCBiZSBy
ZXR1cm5lZC4KKyAgICAvLyBUaGUgY2FsbGJhY2tzIG9iamVjdCBpcyBkZWxldGVkIHdoZW4gdGhl
IGNhbGxiYWNrIG1ldGhvZCBpcyBjYWxsZWQKKyAgICAvLyBhbmQgZG9lcyBub3QgbmVlZCB0byBi
ZSAoYW5kIHNob3VsZCBub3QgYmUpIGRlbGV0ZWQgbWFudWFsbHkuCisgICAgdmlydHVhbCB2b2lk
IHJlcXVlc3RTdG9yYWdlUXVvdGEoCisgICAgICAgIFdlYkZyYW1lKiwgV2ViU3RvcmFnZVF1b3Rh
VHlwZSwKKyAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIG5ld1F1b3RhSW5CeXRlcywKKyAgICAg
ICAgV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzKikgeyB9CisKIHByb3RlY3RlZDoKICAgICB+V2Vi
RnJhbWVDbGllbnQoKSB7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJTdG9yYWdlUXVvdGFDYWxsYmFja3MuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYlN0b3JhZ2VRdW90YUNhbGxiYWNrcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmRjOWM4MDQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJTdG9yYWdlUXVvdGFDYWxsYmFja3MuaApAQCAtMCwwICsxLDU1
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisg
KiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBXZWJTdG9yYWdlUXVvdGFDYWxsYmFja3NfaAorI2RlZmluZSBXZWJTdG9yYWdl
UXVvdGFDYWxsYmFja3NfaAorCisjaW5jbHVkZSAiV2ViRXhjZXB0aW9uQ29kZS5oIgorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzIHsKK3B1Ymxp
YzoKKyAgICAvLyBDYWxsYmFjayBmb3IgV2ViRnJhbWVDbGllbnQ6OnF1ZXJ5U3RvcmFnZVVzYWdl
QW5kUXVvdGEuCisgICAgdmlydHVhbCB2b2lkIGRpZFF1ZXJ5U3RvcmFnZVVzYWdlQW5kUXVvdGEo
dW5zaWduZWQgbG9uZyBsb25nIHVzYWdlSW5CeXRlcywgdW5zaWduZWQgbG9uZyBsb25nIHF1b3Rh
SW5CeXRlcykgPSAwOworCisgICAgLy8gQ2FsbGJhY2sgZm9yIFdlYkZyYW1lQ2xpZW50OjpyZXF1
ZXN0U3RvcmFnZVF1b3RhLgorICAgIC8vIFRoaXMgbWF5IHJldHVybiBhIHNtYWxsZXIgYW1vdW50
IG9mIHF1b3RhIHRoYW4gdGhlIHJlcXVlc3RlZC4KKyAgICB2aXJ0dWFsIHZvaWQgd2FzR3JhbnRl
ZFN0b3JhZ2VRdW90YSh1bnNpZ25lZCBsb25nIGxvbmcgZ3JhbnRlZFF1b3RhSW5CeXRlcykgPSAw
OworCisgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoV2ViRXhjZXB0aW9uQ29kZSBlcnJvcikgPSAw
OworCitwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCB+V2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzKCkg
eyB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYlN0b3JhZ2VR
dW90YUNhbGxiYWNrc19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJTdG9yYWdlUXVvdGFUeXBlLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJTdG9yYWdlUXVvdGFUeXBlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
YjE4Y2FmOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYlN0b3JhZ2VRdW90YVR5cGUuaApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4K
KyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJTdG9yYWdl
UXVvdGFUeXBlX2gKKyNkZWZpbmUgV2ViU3RvcmFnZVF1b3RhVHlwZV9oCisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitlbnVtIFdlYlN0b3JhZ2VRdW90YVR5cGUgeworICAgIFdlYlN0b3JhZ2VRdW90
YVR5cGVUZW1wb3JhcnksCisgICAgV2ViU3RvcmFnZVF1b3RhVHlwZVBlcnNpc3RlbnQsCit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYlN0b3JhZ2VRdW90YVR5cGVf
aAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88374</attachid>
            <date>2011-04-05 23:19:13 -0700</date>
            <delta_ts>2011-04-07 00:05:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch</filename>
            <type>text/plain</type>
            <size>9177</size>
            <attacher name="Kinuko Yasuda">kinuko</attacher>
            
              <data encoding="base64">Y29tbWl0IGYzNWY0NWU5N2ZhM2JhM2JkYzBkZDI0MWQyZDUxMzM3MjM3MDM1ZDAKQXV0aG9yOiBL
aW51a28gWWFzdWRhIDxraW51a29AZ29vZ2xlLmNvbT4KRGF0ZTogICBXZWQgQXByIDYgMTQ6NTY6
MjQgMjAxMSArMDkwMAoKICAgIDU3ODQ5CgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAx
NWU4YzRjLi41ZTQ5NTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIy
IEBACisyMDExLTA0LTA1ICBLaW51a28gWWFzdWRhICA8a2ludWtvQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbQ2hyb21pdW1d
IEFkZCBXZWJLaXQgQVBJIHRvIHF1ZXJ5IGFuZCByZXF1ZXN0IHVuaWZpZWQgb2ZmbGluZS1zdG9y
YWdlIHF1b3RhCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD01Nzg0OQorICAgICAgICBKdXN0IGFkZGluZyB0aGUgQVBJLCB0aGlzIGRvZXMgbm90IGRvIGFu
eXRoaW5nIHlldC4KKworICAgICAgICBUaGUgQVBJIGlzIGJhc2VkIG9uIHRoZSBwdWJsaWMgZGlz
Y3Vzc2lvbiBmb3IgdW5pZmllZCBxdW90YSBBUEk6CisgICAgICAgIGh0dHA6Ly9saXN0cy53My5v
cmcvQXJjaGl2ZXMvUHVibGljL3B1YmxpYy13ZWJhcHBzLzIwMTFKYW5NYXIvMDM0Ni5odG1sCisg
ICAgICAgIChUaGUgZGV0YWlsIGlzIG5vdCB5ZXQgZnVsbHkgc3BlY2lmaWVkIGFuZCBtaWdodCBi
ZSBzdWJqZWN0IHRvIGNoYW5nZS4pCisKKyAgICAgICAgKiBwdWJsaWMvV2ViRnJhbWVDbGllbnQu
aDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVDbGllbnQ6OnF1ZXJ5U3RvcmFnZVVzYWdlQW5k
UXVvdGEpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVDbGllbnQ6OnJlcXVlc3RT
dG9yYWdlUXVvdGEpOiBBZGRlZC4KKyAgICAgICAgKiBwdWJsaWMvV2ViU3RvcmFnZVF1b3RhQ2Fs
bGJhY2tzLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJTdG9yYWdlUXVvdGFDYWxsYmFj
a3M6On5XZWJTdG9yYWdlUXVvdGFDYWxsYmFja3MpOgorICAgICAgICAqIHB1YmxpYy9XZWJTdG9y
YWdlUXVvdGFUeXBlLmg6IEFkZGVkLgorCiAyMDExLTA0LTA1ICBIYW5zIFdlbm5ib3JnICA8aGFu
c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9XZWJLaXQuZ3lwCmluZGV4IDI2M2I0OWUuLjUwZDFlMzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL1dlYktpdC5neXAKQEAgLTI2Niw2ICsyNjYsOCBAQAogICAgICAgICAgICAgICAgICdwdWJs
aWMvV2ViU3BlZWNoSW5wdXRSZXN1bHQuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJT
dG9yYWdlQXJlYS5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYlN0b3JhZ2VFdmVudERp
c3BhdGNoZXIuaCcsCisgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJTdG9yYWdlUXVvdGFDYWxs
YmFja3MuaCcsCisgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJTdG9yYWdlUXVvdGFUeXBlLmgn
LAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViU3RvcmFnZU5hbWVzcGFjZS5oJywKICAgICAg
ICAgICAgICAgICAncHVibGljL1dlYlN0cmluZy5oJywKICAgICAgICAgICAgICAgICAncHVibGlj
L1dlYlRleHRBZmZpbml0eS5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYkZyYW1lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJGcmFtZUNsaWVudC5oCmluZGV4IDJjMjFlZTYuLjA3YTU0NjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWVDbGllbnQuaApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMzUsNiArMzUsNyBAQAogI2lu
Y2x1ZGUgIldlYkZpbGVTeXN0ZW0uaCIKICNpbmNsdWRlICJXZWJOYXZpZ2F0aW9uUG9saWN5Lmgi
CiAjaW5jbHVkZSAiV2ViTmF2aWdhdGlvblR5cGUuaCIKKyNpbmNsdWRlICJXZWJTdG9yYWdlUXVv
dGFUeXBlLmgiCiAjaW5jbHVkZSAiV2ViVVJMRXJyb3IuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7
CkBAIC01MSw2ICs1Miw3IEBAIGNsYXNzIFdlYk5vZGU7CiBjbGFzcyBXZWJQbHVnaW47CiBjbGFz
cyBXZWJTZWN1cml0eU9yaWdpbjsKIGNsYXNzIFdlYlNoYXJlZFdvcmtlcjsKK2NsYXNzIFdlYlN0
b3JhZ2VRdW90YUNhbGxiYWNrczsKIGNsYXNzIFdlYlN0cmluZzsKIGNsYXNzIFdlYlVSTDsKIGNs
YXNzIFdlYlVSTFJlcXVlc3Q7CkBAIC0zNjIsNiArMzY0LDMzIEBAIHB1YmxpYzoKICAgICAgICAg
V2ViRnJhbWUqLCBXZWJGaWxlU3lzdGVtOjpUeXBlLCBsb25nIGxvbmcgc2l6ZSwKICAgICAgICAg
Ym9vbCBjcmVhdGUsIFdlYkZpbGVTeXN0ZW1DYWxsYmFja3MqKSB7IH0KIAorICAgIC8vIFF1b3Rh
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorCisgICAgLy8gUXVlcmllcyB0aGUgb3JpZ2luJ3Mgc3RvcmFnZSB1c2FnZSBhbmQgcXVvdGEg
aW5mb3JtYXRpb24uCisgICAgLy8gV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzOjpkaWRRdWVyeVN0
b3JhZ2VVc2FnZUFuZFF1b3RhIHdpbGwgYmUgY2FsbGVkCisgICAgLy8gd2l0aCB0aGUgY3VycmVu
dCB1c2FnZSBhbmQgcXVvdGEgaW5mb3JtYXRpb24gZm9yIHRoZSBvcmlnaW4uIFdoZW4KKyAgICAv
LyBhbiBlcnJvciBvY2N1cnMgV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzOjpkaWRGYWlsIGlzIGNh
bGxlZCB3aXRoIGFuCisgICAgLy8gZXJyb3IgY29kZS4KKyAgICAvLyBUaGUgY2FsbGJhY2tzIG9i
amVjdCBpcyBkZWxldGVkIHdoZW4gdGhlIGNhbGxiYWNrIG1ldGhvZCBpcyBjYWxsZWQKKyAgICAv
LyBhbmQgZG9lcyBub3QgbmVlZCB0byBiZSAoYW5kIHNob3VsZCBub3QgYmUpIGRlbGV0ZWQgbWFu
dWFsbHkuCisgICAgdmlydHVhbCB2b2lkIHF1ZXJ5U3RvcmFnZVVzYWdlQW5kUXVvdGEoCisgICAg
ICAgIFdlYkZyYW1lKiwgV2ViU3RvcmFnZVF1b3RhVHlwZSwgV2ViU3RvcmFnZVF1b3RhQ2FsbGJh
Y2tzKikgeyB9CisKKyAgICAvLyBSZXF1ZXN0cyBhIG5ldyBxdW90YSBzaXplIGZvciB0aGUgb3Jp
Z2luJ3Mgc3RvcmFnZS4KKyAgICAvLyB8bmV3UXVvdGFJbkJ5dGVzfCBpbmRpY2F0ZXMgaG93IG11
Y2ggc3RvcmFnZSBzcGFjZSAoaW4gYnl0ZXMpIHRoZQorICAgIC8vIGNhbGxlciBleHBlY3RzIHRv
IG5lZWQuCisgICAgLy8gV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzOjpyZXF1ZXN0U3RvcmFnZVF1
b3RhIHdpbGwgYmUgY2FsbGVkIHdoZW4KKyAgICAvLyBhIG5ldyBxdW90YSBpcyBncmFudGVkLiBX
ZWJTdG9yYWdlUXVvdGFDYWxsYmFja3M6OnJlcXVlc3RTdG9yYWdlUXVvdGEKKyAgICAvLyBpcyBj
YWxsZWQgd2l0aCBhbiBlcnJvciBjb2RlIG90aGVyd2lzZS4KKyAgICAvLyBOb3RlIHRoYXQgdGhl
IHJlcXVlc3RpbmcgcXVvdGEgc2l6ZSBtYXkgbm90IGFsd2F5cyBiZSBncmFudGVkIGFuZAorICAg
IC8vIGEgc21hbGxlciBhbW91bnQgb2YgcXVvdGEgdGhhbiByZXF1ZXN0ZWQgbWlnaHQgYmUgcmV0
dXJuZWQuCisgICAgLy8gVGhlIGNhbGxiYWNrcyBvYmplY3QgaXMgZGVsZXRlZCB3aGVuIHRoZSBj
YWxsYmFjayBtZXRob2QgaXMgY2FsbGVkCisgICAgLy8gYW5kIGRvZXMgbm90IG5lZWQgdG8gYmUg
KGFuZCBzaG91bGQgbm90IGJlKSBkZWxldGVkIG1hbnVhbGx5LgorICAgIHZpcnR1YWwgdm9pZCBy
ZXF1ZXN0U3RvcmFnZVF1b3RhKAorICAgICAgICBXZWJGcmFtZSosIFdlYlN0b3JhZ2VRdW90YVR5
cGUsCisgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBuZXdRdW90YUluQnl0ZXMsCisgICAgICAg
IFdlYlN0b3JhZ2VRdW90YUNhbGxiYWNrcyopIHsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgfldlYkZy
YW1lQ2xpZW50KCkgeyB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJTdG9yYWdlUXVvdGFDYWxsYmFja3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5kYzljODA0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzLmgKQEAgLTAsMCArMSw1NSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
CisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICog
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzX2gKKyNkZWZpbmUgV2ViU3RvcmFnZVF1
b3RhQ2FsbGJhY2tzX2gKKworI2luY2x1ZGUgIldlYkV4Y2VwdGlvbkNvZGUuaCIKKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlN0b3JhZ2VRdW90YUNhbGxiYWNrcyB7CitwdWJsaWM6
CisgICAgLy8gQ2FsbGJhY2sgZm9yIFdlYkZyYW1lQ2xpZW50OjpxdWVyeVN0b3JhZ2VVc2FnZUFu
ZFF1b3RhLgorICAgIHZpcnR1YWwgdm9pZCBkaWRRdWVyeVN0b3JhZ2VVc2FnZUFuZFF1b3RhKHVu
c2lnbmVkIGxvbmcgbG9uZyB1c2FnZUluQnl0ZXMsIHVuc2lnbmVkIGxvbmcgbG9uZyBxdW90YUlu
Qnl0ZXMpID0gMDsKKworICAgIC8vIENhbGxiYWNrIGZvciBXZWJGcmFtZUNsaWVudDo6cmVxdWVz
dFN0b3JhZ2VRdW90YS4KKyAgICAvLyBUaGlzIG1heSByZXR1cm4gYSBzbWFsbGVyIGFtb3VudCBv
ZiBxdW90YSB0aGFuIHRoZSByZXF1ZXN0ZWQuCisgICAgdmlydHVhbCB2b2lkIHdhc0dyYW50ZWRT
dG9yYWdlUXVvdGEodW5zaWduZWQgbG9uZyBsb25nIGdyYW50ZWRRdW90YUluQnl0ZXMpID0gMDsK
KworICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKFdlYkV4Y2VwdGlvbkNvZGUgZXJyb3IpID0gMDsK
KworcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgfldlYlN0b3JhZ2VRdW90YUNhbGxiYWNrcygpIHsg
fQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJTdG9yYWdlUXVv
dGFDYWxsYmFja3NfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViU3RvcmFnZVF1b3RhVHlwZS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
U3RvcmFnZVF1b3RhVHlwZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIx
OGNhZjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJTdG9yYWdlUXVvdGFUeXBlLmgKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisg
KiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViU3RvcmFnZVF1
b3RhVHlwZV9oCisjZGVmaW5lIFdlYlN0b3JhZ2VRdW90YVR5cGVfaAorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworZW51bSBXZWJTdG9yYWdlUXVvdGFUeXBlIHsKKyAgICBXZWJTdG9yYWdlUXVvdGFU
eXBlVGVtcG9yYXJ5LAorICAgIFdlYlN0b3JhZ2VRdW90YVR5cGVQZXJzaXN0ZW50LAorfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJTdG9yYWdlUXVvdGFUeXBlX2gK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88580</attachid>
            <date>2011-04-07 00:05:06 -0700</date>
            <delta_ts>2011-04-07 00:09:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch</filename>
            <type>text/plain</type>
            <size>13564</size>
            <attacher name="Kinuko Yasuda">kinuko</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlN0b3JhZ2VRdW90
YUNhbGxiYWNrcy5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU3RvcmFnZVF1
b3RhQ2FsbGJhY2tzLmgKaW5kZXggZGM5YzgwNC4uYTU0YzM2MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzLmgKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzLmgK
QEAgLTMxLDcgKzMxLDcgQEAKICNpZm5kZWYgV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzX2gKICNk
ZWZpbmUgV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzX2gKIAotI2luY2x1ZGUgIldlYkV4Y2VwdGlv
bkNvZGUuaCIKKyNpbmNsdWRlICJXZWJTdG9yYWdlUXVvdGFFcnJvci5oIgogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIApAQCAtNDQsNyArNDQsNyBAQCBwdWJsaWM6CiAgICAgLy8gVGhpcyBtYXkgcmV0
dXJuIGEgc21hbGxlciBhbW91bnQgb2YgcXVvdGEgdGhhbiB0aGUgcmVxdWVzdGVkLgogICAgIHZp
cnR1YWwgdm9pZCB3YXNHcmFudGVkU3RvcmFnZVF1b3RhKHVuc2lnbmVkIGxvbmcgbG9uZyBncmFu
dGVkUXVvdGFJbkJ5dGVzKSA9IDA7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChXZWJFeGNl
cHRpb25Db2RlIGVycm9yKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoV2ViU3RvcmFn
ZVF1b3RhRXJyb3IpID0gMDsKIAogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgfldlYlN0b3JhZ2VR
dW90YUNhbGxiYWNrcygpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViU3RvcmFnZVF1b3RhRXJyb3IuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYlN0b3JhZ2VRdW90YUVycm9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uYTFlMjM5OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYlN0b3JhZ2VRdW90YUVycm9yLmgKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmli
dXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
CisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2Vi
U3RvcmFnZVF1b3RhRXJyb3JfaAorI2RlZmluZSBXZWJTdG9yYWdlUXVvdGFFcnJvcl9oCisKK25h
bWVzcGFjZSBXZWJLaXQgeworCisvLyBUaGUgZXJyb3IgY29kZSB1c2VkIGZvciBXZWJTdG9yYWdl
UXVvdGEuCitlbnVtIFdlYlN0b3JhZ2VRdW90YUVycm9yIHsKKyAgICBXZWJTdG9yYWdlUXVvdGFF
cnJvck9rID0gMCwKKyAgICBXZWJTdG9yYWdlUXVvdGFFcnJvck5vdFN1cHBvcnRlZCA9IDksCisg
ICAgV2ViU3RvcmFnZVF1b3RhRXJyb3JTZWN1cml0eSA9IDE4LAorICAgIFdlYlN0b3JhZ2VRdW90
YUVycm9yQWJvcnQgPSAyMCwKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYg
Ly8gV2ViU3RvcmFnZVF1b3RhRXJyb3JfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcAppbmRleCA3YmFhZjhhLi40NDE1YjdmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNw
cApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkFzeW5jRmlsZVN5c3RlbS5oIgogI2luY2x1
ZGUgIkRvY3VtZW50TWFya2VyLmgiCiAjaW5jbHVkZSAiRWRpdG9ySW5zZXJ0QWN0aW9uLmgiCisj
aW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkZpbGVFcnJvci5oIgogI2luY2x1
ZGUgIkZpbGVNZXRhZGF0YS5oIgogI2luY2x1ZGUgIkZvbnREZXNjcmlwdGlvbi5oIgpAQCAtNzUs
NiArNzYsNyBAQAogI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvblByZXNlbnRlci5oIgogI2luY2x1
ZGUgIldlYlNjcm9sbGJhci5oIgogI2luY2x1ZGUgIldlYlNldHRpbmdzLmgiCisjaW5jbHVkZSAi
V2ViU3RvcmFnZVF1b3RhRXJyb3IuaCIKICNpbmNsdWRlICJXZWJUZXh0QWZmaW5pdHkuaCIKICNp
bmNsdWRlICJXZWJUZXh0Q2FzZVNlbnNpdGl2aXR5LmgiCiAjaW5jbHVkZSAiV2ViVGV4dENoZWNr
aW5nUmVzdWx0LmgiCkBAIC00MTQsNiArNDE2LDEyIEBAIENPTVBJTEVfQVNTRVJUX01BVENISU5H
X0VOVU0oV2ViR2VvbG9jYXRpb25FcnJvcjo6RXJyb3JQb3NpdGlvblVuYXZhaWxhYmxlLCBHZW9s
CiBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYlRleHRDaGVja2luZ1Jlc3VsdDo6RXJy
b3JTcGVsbGluZywgRG9jdW1lbnRNYXJrZXI6OlNwZWxsaW5nKTsKIENPTVBJTEVfQVNTRVJUX01B
VENISU5HX0VOVU0oV2ViVGV4dENoZWNraW5nUmVzdWx0OjpFcnJvckdyYW1tYXIsIERvY3VtZW50
TWFya2VyOjpHcmFtbWFyKTsKIAorI2lmIEVOQUJMRShRVU9UQSkKK0NPTVBJTEVfQVNTRVJUX01B
VENISU5HX0VOVU0oV2ViU3RvcmFnZVF1b3RhRXJyb3JOb3RTdXBwb3J0ZWQsIE5PVF9TVVBQT1JU
RURfRVJSKTsKK0NPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViU3RvcmFnZVF1b3RhRXJy
b3JTZWN1cml0eSwgU0VDVVJJVFlfRVJSKTsKK0NPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0o
V2ViU3RvcmFnZVF1b3RhRXJyb3JBYm9ydCwgQUJPUlRfRVJSKTsKKyNlbmRpZgorCiAjaWYgT1Mo
REFSV0lOKQogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJUaGVtZUVuZ2luZTo6U3Rh
dGVEaXNhYmxlZCwgUGxhdGZvcm1CcmlkZ2U6OlN0YXRlRGlzYWJsZWQpOwogQ09NUElMRV9BU1NF
UlRfTUFUQ0hJTkdfRU5VTShXZWJUaGVtZUVuZ2luZTo6U3RhdGVJbmFjdGl2ZSwgUGxhdGZvcm1C
cmlkZ2U6OlN0YXRlSW5hY3RpdmUpOwoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMTVl
OGM0Yy4uNWU0OTU5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBA
QAorMjAxMS0wNC0wNSAgS2ludWtvIFlhc3VkYSAgPGtpbnVrb0BjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0Nocm9taXVtXSBB
ZGQgV2ViS2l0IEFQSSB0byBxdWVyeSBhbmQgcmVxdWVzdCB1bmlmaWVkIG9mZmxpbmUtc3RvcmFn
ZSBxdW90YQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NTc4NDkKKyAgICAgICAgSnVzdCBhZGRpbmcgdGhlIEFQSSwgdGhpcyBkb2VzIG5vdCBkbyBhbnl0
aGluZyB5ZXQuCisKKyAgICAgICAgVGhlIEFQSSBpcyBiYXNlZCBvbiB0aGUgcHVibGljIGRpc2N1
c3Npb24gZm9yIHVuaWZpZWQgcXVvdGEgQVBJOgorICAgICAgICBodHRwOi8vbGlzdHMudzMub3Jn
L0FyY2hpdmVzL1B1YmxpYy9wdWJsaWMtd2ViYXBwcy8yMDExSmFuTWFyLzAzNDYuaHRtbAorICAg
ICAgICAoVGhlIGRldGFpbCBpcyBub3QgeWV0IGZ1bGx5IHNwZWNpZmllZCBhbmQgbWlnaHQgYmUg
c3ViamVjdCB0byBjaGFuZ2UuKQorCisgICAgICAgICogcHVibGljL1dlYkZyYW1lQ2xpZW50Lmg6
CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lQ2xpZW50OjpxdWVyeVN0b3JhZ2VVc2FnZUFuZFF1
b3RhKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lQ2xpZW50OjpyZXF1ZXN0U3Rv
cmFnZVF1b3RhKTogQWRkZWQuCisgICAgICAgICogcHVibGljL1dlYlN0b3JhZ2VRdW90YUNhbGxi
YWNrcy5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tz
Ojp+V2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzKToKKyAgICAgICAgKiBwdWJsaWMvV2ViU3RvcmFn
ZVF1b3RhVHlwZS5oOiBBZGRlZC4KKwogMjAxMS0wNC0wNSAgSGFucyBXZW5uYm9yZyAgPGhhbnNA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGgKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vV2ViS2l0Lmd5cAppbmRleCAyNjNiNDllLi41MGQxZTMyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9XZWJLaXQuZ3lwCkBAIC0yNjYsNiArMjY2LDggQEAKICAgICAgICAgICAgICAgICAncHVibGlj
L1dlYlNwZWVjaElucHV0UmVzdWx0LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViU3Rv
cmFnZUFyZWEuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJTdG9yYWdlRXZlbnREaXNw
YXRjaGVyLmgnLAorICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViU3RvcmFnZVF1b3RhQ2FsbGJh
Y2tzLmgnLAorICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViU3RvcmFnZVF1b3RhVHlwZS5oJywK
ICAgICAgICAgICAgICAgICAncHVibGljL1dlYlN0b3JhZ2VOYW1lc3BhY2UuaCcsCiAgICAgICAg
ICAgICAgICAgJ3B1YmxpYy9XZWJTdHJpbmcuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9X
ZWJUZXh0QWZmaW5pdHkuaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJGcmFtZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
RnJhbWVDbGllbnQuaAppbmRleCAyYzIxZWU2Li4wN2E1NDYwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lQ2xpZW50LmgKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNs
dWRlICJXZWJGaWxlU3lzdGVtLmgiCiAjaW5jbHVkZSAiV2ViTmF2aWdhdGlvblBvbGljeS5oIgog
I2luY2x1ZGUgIldlYk5hdmlnYXRpb25UeXBlLmgiCisjaW5jbHVkZSAiV2ViU3RvcmFnZVF1b3Rh
VHlwZS5oIgogI2luY2x1ZGUgIldlYlVSTEVycm9yLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewpA
QCAtNTEsNiArNTIsNyBAQCBjbGFzcyBXZWJOb2RlOwogY2xhc3MgV2ViUGx1Z2luOwogY2xhc3Mg
V2ViU2VjdXJpdHlPcmlnaW47CiBjbGFzcyBXZWJTaGFyZWRXb3JrZXI7CitjbGFzcyBXZWJTdG9y
YWdlUXVvdGFDYWxsYmFja3M7CiBjbGFzcyBXZWJTdHJpbmc7CiBjbGFzcyBXZWJVUkw7CiBjbGFz
cyBXZWJVUkxSZXF1ZXN0OwpAQCAtMzYyLDYgKzM2NCwzMyBAQCBwdWJsaWM6CiAgICAgICAgIFdl
YkZyYW1lKiwgV2ViRmlsZVN5c3RlbTo6VHlwZSwgbG9uZyBsb25nIHNpemUsCiAgICAgICAgIGJv
b2wgY3JlYXRlLCBXZWJGaWxlU3lzdGVtQ2FsbGJhY2tzKikgeyB9CiAKKyAgICAvLyBRdW90YSAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
KworICAgIC8vIFF1ZXJpZXMgdGhlIG9yaWdpbidzIHN0b3JhZ2UgdXNhZ2UgYW5kIHF1b3RhIGlu
Zm9ybWF0aW9uLgorICAgIC8vIFdlYlN0b3JhZ2VRdW90YUNhbGxiYWNrczo6ZGlkUXVlcnlTdG9y
YWdlVXNhZ2VBbmRRdW90YSB3aWxsIGJlIGNhbGxlZAorICAgIC8vIHdpdGggdGhlIGN1cnJlbnQg
dXNhZ2UgYW5kIHF1b3RhIGluZm9ybWF0aW9uIGZvciB0aGUgb3JpZ2luLiBXaGVuCisgICAgLy8g
YW4gZXJyb3Igb2NjdXJzIFdlYlN0b3JhZ2VRdW90YUNhbGxiYWNrczo6ZGlkRmFpbCBpcyBjYWxs
ZWQgd2l0aCBhbgorICAgIC8vIGVycm9yIGNvZGUuCisgICAgLy8gVGhlIGNhbGxiYWNrcyBvYmpl
Y3QgaXMgZGVsZXRlZCB3aGVuIHRoZSBjYWxsYmFjayBtZXRob2QgaXMgY2FsbGVkCisgICAgLy8g
YW5kIGRvZXMgbm90IG5lZWQgdG8gYmUgKGFuZCBzaG91bGQgbm90IGJlKSBkZWxldGVkIG1hbnVh
bGx5LgorICAgIHZpcnR1YWwgdm9pZCBxdWVyeVN0b3JhZ2VVc2FnZUFuZFF1b3RhKAorICAgICAg
ICBXZWJGcmFtZSosIFdlYlN0b3JhZ2VRdW90YVR5cGUsIFdlYlN0b3JhZ2VRdW90YUNhbGxiYWNr
cyopIHsgfQorCisgICAgLy8gUmVxdWVzdHMgYSBuZXcgcXVvdGEgc2l6ZSBmb3IgdGhlIG9yaWdp
bidzIHN0b3JhZ2UuCisgICAgLy8gfG5ld1F1b3RhSW5CeXRlc3wgaW5kaWNhdGVzIGhvdyBtdWNo
IHN0b3JhZ2Ugc3BhY2UgKGluIGJ5dGVzKSB0aGUKKyAgICAvLyBjYWxsZXIgZXhwZWN0cyB0byBu
ZWVkLgorICAgIC8vIFdlYlN0b3JhZ2VRdW90YUNhbGxiYWNrczo6cmVxdWVzdFN0b3JhZ2VRdW90
YSB3aWxsIGJlIGNhbGxlZCB3aGVuCisgICAgLy8gYSBuZXcgcXVvdGEgaXMgZ3JhbnRlZC4gV2Vi
U3RvcmFnZVF1b3RhQ2FsbGJhY2tzOjpyZXF1ZXN0U3RvcmFnZVF1b3RhCisgICAgLy8gaXMgY2Fs
bGVkIHdpdGggYW4gZXJyb3IgY29kZSBvdGhlcndpc2UuCisgICAgLy8gTm90ZSB0aGF0IHRoZSBy
ZXF1ZXN0aW5nIHF1b3RhIHNpemUgbWF5IG5vdCBhbHdheXMgYmUgZ3JhbnRlZCBhbmQKKyAgICAv
LyBhIHNtYWxsZXIgYW1vdW50IG9mIHF1b3RhIHRoYW4gcmVxdWVzdGVkIG1pZ2h0IGJlIHJldHVy
bmVkLgorICAgIC8vIFRoZSBjYWxsYmFja3Mgb2JqZWN0IGlzIGRlbGV0ZWQgd2hlbiB0aGUgY2Fs
bGJhY2sgbWV0aG9kIGlzIGNhbGxlZAorICAgIC8vIGFuZCBkb2VzIG5vdCBuZWVkIHRvIGJlIChh
bmQgc2hvdWxkIG5vdCBiZSkgZGVsZXRlZCBtYW51YWxseS4KKyAgICB2aXJ0dWFsIHZvaWQgcmVx
dWVzdFN0b3JhZ2VRdW90YSgKKyAgICAgICAgV2ViRnJhbWUqLCBXZWJTdG9yYWdlUXVvdGFUeXBl
LAorICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgbmV3UXVvdGFJbkJ5dGVzLAorICAgICAgICBX
ZWJTdG9yYWdlUXVvdGFDYWxsYmFja3MqKSB7IH0KKwogcHJvdGVjdGVkOgogICAgIH5XZWJGcmFt
ZUNsaWVudCgpIHsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYlN0b3JhZ2VRdW90YUNhbGxiYWNrcy5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uZGM5YzgwNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYlN0b3JhZ2VRdW90YUNhbGxiYWNrcy5oCkBAIC0wLDAgKzEsNTUgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQor
ICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
KyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIFdlYlN0b3JhZ2VRdW90YUNhbGxiYWNrc19oCisjZGVmaW5lIFdlYlN0b3JhZ2VRdW90
YUNhbGxiYWNrc19oCisKKyNpbmNsdWRlICJXZWJFeGNlcHRpb25Db2RlLmgiCisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitjbGFzcyBXZWJTdG9yYWdlUXVvdGFDYWxsYmFja3MgeworcHVibGljOgor
ICAgIC8vIENhbGxiYWNrIGZvciBXZWJGcmFtZUNsaWVudDo6cXVlcnlTdG9yYWdlVXNhZ2VBbmRR
dW90YS4KKyAgICB2aXJ0dWFsIHZvaWQgZGlkUXVlcnlTdG9yYWdlVXNhZ2VBbmRRdW90YSh1bnNp
Z25lZCBsb25nIGxvbmcgdXNhZ2VJbkJ5dGVzLCB1bnNpZ25lZCBsb25nIGxvbmcgcXVvdGFJbkJ5
dGVzKSA9IDA7CisKKyAgICAvLyBDYWxsYmFjayBmb3IgV2ViRnJhbWVDbGllbnQ6OnJlcXVlc3RT
dG9yYWdlUXVvdGEuCisgICAgLy8gVGhpcyBtYXkgcmV0dXJuIGEgc21hbGxlciBhbW91bnQgb2Yg
cXVvdGEgdGhhbiB0aGUgcmVxdWVzdGVkLgorICAgIHZpcnR1YWwgdm9pZCB3YXNHcmFudGVkU3Rv
cmFnZVF1b3RhKHVuc2lnbmVkIGxvbmcgbG9uZyBncmFudGVkUXVvdGFJbkJ5dGVzKSA9IDA7CisK
KyAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChXZWJFeGNlcHRpb25Db2RlIGVycm9yKSA9IDA7CisK
K3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIH5XZWJTdG9yYWdlUXVvdGFDYWxsYmFja3MoKSB7IH0K
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViU3RvcmFnZVF1b3Rh
Q2FsbGJhY2tzX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YlN0b3JhZ2VRdW90YVR5cGUuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlN0
b3JhZ2VRdW90YVR5cGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMThj
YWY4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
U3RvcmFnZVF1b3RhVHlwZS5oCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICog
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYlN0b3JhZ2VRdW90
YVR5cGVfaAorI2RlZmluZSBXZWJTdG9yYWdlUXVvdGFUeXBlX2gKKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK2VudW0gV2ViU3RvcmFnZVF1b3RhVHlwZSB7CisgICAgV2ViU3RvcmFnZVF1b3RhVHlw
ZVRlbXBvcmFyeSwKKyAgICBXZWJTdG9yYWdlUXVvdGFUeXBlUGVyc2lzdGVudCwKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViU3RvcmFnZVF1b3RhVHlwZV9oCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88582</attachid>
            <date>2011-04-07 00:09:12 -0700</date>
            <delta_ts>2011-04-07 20:50:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch</filename>
            <type>text/plain</type>
            <size>12747</size>
            <attacher name="Kinuko Yasuda">kinuko</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMTVlOGM0Yy4uNWU0OTU5NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMS0wNC0wNSAgS2ludWtvIFlh
c3VkYSAgPGtpbnVrb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgW0Nocm9taXVtXSBBZGQgV2ViS2l0IEFQSSB0byBxdWVyeSBh
bmQgcmVxdWVzdCB1bmlmaWVkIG9mZmxpbmUtc3RvcmFnZSBxdW90YQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTc4NDkKKyAgICAgICAgSnVzdCBhZGRp
bmcgdGhlIEFQSSwgdGhpcyBkb2VzIG5vdCBkbyBhbnl0aGluZyB5ZXQuCisKKyAgICAgICAgVGhl
IEFQSSBpcyBiYXNlZCBvbiB0aGUgcHVibGljIGRpc2N1c3Npb24gZm9yIHVuaWZpZWQgcXVvdGEg
QVBJOgorICAgICAgICBodHRwOi8vbGlzdHMudzMub3JnL0FyY2hpdmVzL1B1YmxpYy9wdWJsaWMt
d2ViYXBwcy8yMDExSmFuTWFyLzAzNDYuaHRtbAorICAgICAgICAoVGhlIGRldGFpbCBpcyBub3Qg
eWV0IGZ1bGx5IHNwZWNpZmllZCBhbmQgbWlnaHQgYmUgc3ViamVjdCB0byBjaGFuZ2UuKQorCisg
ICAgICAgICogcHVibGljL1dlYkZyYW1lQ2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkZy
YW1lQ2xpZW50OjpxdWVyeVN0b3JhZ2VVc2FnZUFuZFF1b3RhKTogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYkZyYW1lQ2xpZW50OjpyZXF1ZXN0U3RvcmFnZVF1b3RhKTogQWRkZWQuCisgICAg
ICAgICogcHVibGljL1dlYlN0b3JhZ2VRdW90YUNhbGxiYWNrcy5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYktpdDo6V2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzOjp+V2ViU3RvcmFnZVF1b3RhQ2FsbGJh
Y2tzKToKKyAgICAgICAgKiBwdWJsaWMvV2ViU3RvcmFnZVF1b3RhVHlwZS5oOiBBZGRlZC4KKwog
MjAxMS0wNC0wNSAgSGFucyBXZW5uYm9yZyAgPGhhbnNAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IEFkYW0gQmFydGgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vV2ViS2l0Lmd5cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAppbmRleCAy
NjNiNDllLi41MGQxZTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktp
dC5neXAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCkBAIC0yNjYsNiAr
MjY2LDggQEAKICAgICAgICAgICAgICAgICAncHVibGljL1dlYlNwZWVjaElucHV0UmVzdWx0Lmgn
LAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViU3RvcmFnZUFyZWEuaCcsCiAgICAgICAgICAg
ICAgICAgJ3B1YmxpYy9XZWJTdG9yYWdlRXZlbnREaXNwYXRjaGVyLmgnLAorICAgICAgICAgICAg
ICAgICdwdWJsaWMvV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzLmgnLAorICAgICAgICAgICAgICAg
ICdwdWJsaWMvV2ViU3RvcmFnZVF1b3RhVHlwZS5oJywKICAgICAgICAgICAgICAgICAncHVibGlj
L1dlYlN0b3JhZ2VOYW1lc3BhY2UuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJTdHJp
bmcuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJUZXh0QWZmaW5pdHkuaCcsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZUNsaWVudC5oIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWVDbGllbnQuaAppbmRleCAyYzIx
ZWU2Li4wN2E1NDYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJGcmFtZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZy
YW1lQ2xpZW50LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJXZWJGaWxlU3lzdGVtLmgiCiAj
aW5jbHVkZSAiV2ViTmF2aWdhdGlvblBvbGljeS5oIgogI2luY2x1ZGUgIldlYk5hdmlnYXRpb25U
eXBlLmgiCisjaW5jbHVkZSAiV2ViU3RvcmFnZVF1b3RhVHlwZS5oIgogI2luY2x1ZGUgIldlYlVS
TEVycm9yLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNTEsNiArNTIsNyBAQCBjbGFzcyBX
ZWJOb2RlOwogY2xhc3MgV2ViUGx1Z2luOwogY2xhc3MgV2ViU2VjdXJpdHlPcmlnaW47CiBjbGFz
cyBXZWJTaGFyZWRXb3JrZXI7CitjbGFzcyBXZWJTdG9yYWdlUXVvdGFDYWxsYmFja3M7CiBjbGFz
cyBXZWJTdHJpbmc7CiBjbGFzcyBXZWJVUkw7CiBjbGFzcyBXZWJVUkxSZXF1ZXN0OwpAQCAtMzYy
LDYgKzM2NCwzMyBAQCBwdWJsaWM6CiAgICAgICAgIFdlYkZyYW1lKiwgV2ViRmlsZVN5c3RlbTo6
VHlwZSwgbG9uZyBsb25nIHNpemUsCiAgICAgICAgIGJvb2wgY3JlYXRlLCBXZWJGaWxlU3lzdGVt
Q2FsbGJhY2tzKikgeyB9CiAKKyAgICAvLyBRdW90YSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8vIFF1ZXJpZXMgdGhlIG9y
aWdpbidzIHN0b3JhZ2UgdXNhZ2UgYW5kIHF1b3RhIGluZm9ybWF0aW9uLgorICAgIC8vIFdlYlN0
b3JhZ2VRdW90YUNhbGxiYWNrczo6ZGlkUXVlcnlTdG9yYWdlVXNhZ2VBbmRRdW90YSB3aWxsIGJl
IGNhbGxlZAorICAgIC8vIHdpdGggdGhlIGN1cnJlbnQgdXNhZ2UgYW5kIHF1b3RhIGluZm9ybWF0
aW9uIGZvciB0aGUgb3JpZ2luLiBXaGVuCisgICAgLy8gYW4gZXJyb3Igb2NjdXJzIFdlYlN0b3Jh
Z2VRdW90YUNhbGxiYWNrczo6ZGlkRmFpbCBpcyBjYWxsZWQgd2l0aCBhbgorICAgIC8vIGVycm9y
IGNvZGUuCisgICAgLy8gVGhlIGNhbGxiYWNrcyBvYmplY3QgaXMgZGVsZXRlZCB3aGVuIHRoZSBj
YWxsYmFjayBtZXRob2QgaXMgY2FsbGVkCisgICAgLy8gYW5kIGRvZXMgbm90IG5lZWQgdG8gYmUg
KGFuZCBzaG91bGQgbm90IGJlKSBkZWxldGVkIG1hbnVhbGx5LgorICAgIHZpcnR1YWwgdm9pZCBx
dWVyeVN0b3JhZ2VVc2FnZUFuZFF1b3RhKAorICAgICAgICBXZWJGcmFtZSosIFdlYlN0b3JhZ2VR
dW90YVR5cGUsIFdlYlN0b3JhZ2VRdW90YUNhbGxiYWNrcyopIHsgfQorCisgICAgLy8gUmVxdWVz
dHMgYSBuZXcgcXVvdGEgc2l6ZSBmb3IgdGhlIG9yaWdpbidzIHN0b3JhZ2UuCisgICAgLy8gfG5l
d1F1b3RhSW5CeXRlc3wgaW5kaWNhdGVzIGhvdyBtdWNoIHN0b3JhZ2Ugc3BhY2UgKGluIGJ5dGVz
KSB0aGUKKyAgICAvLyBjYWxsZXIgZXhwZWN0cyB0byBuZWVkLgorICAgIC8vIFdlYlN0b3JhZ2VR
dW90YUNhbGxiYWNrczo6cmVxdWVzdFN0b3JhZ2VRdW90YSB3aWxsIGJlIGNhbGxlZCB3aGVuCisg
ICAgLy8gYSBuZXcgcXVvdGEgaXMgZ3JhbnRlZC4gV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzOjpy
ZXF1ZXN0U3RvcmFnZVF1b3RhCisgICAgLy8gaXMgY2FsbGVkIHdpdGggYW4gZXJyb3IgY29kZSBv
dGhlcndpc2UuCisgICAgLy8gTm90ZSB0aGF0IHRoZSByZXF1ZXN0aW5nIHF1b3RhIHNpemUgbWF5
IG5vdCBhbHdheXMgYmUgZ3JhbnRlZCBhbmQKKyAgICAvLyBhIHNtYWxsZXIgYW1vdW50IG9mIHF1
b3RhIHRoYW4gcmVxdWVzdGVkIG1pZ2h0IGJlIHJldHVybmVkLgorICAgIC8vIFRoZSBjYWxsYmFj
a3Mgb2JqZWN0IGlzIGRlbGV0ZWQgd2hlbiB0aGUgY2FsbGJhY2sgbWV0aG9kIGlzIGNhbGxlZAor
ICAgIC8vIGFuZCBkb2VzIG5vdCBuZWVkIHRvIGJlIChhbmQgc2hvdWxkIG5vdCBiZSkgZGVsZXRl
ZCBtYW51YWxseS4KKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFN0b3JhZ2VRdW90YSgKKyAgICAg
ICAgV2ViRnJhbWUqLCBXZWJTdG9yYWdlUXVvdGFUeXBlLAorICAgICAgICB1bnNpZ25lZCBsb25n
IGxvbmcgbmV3UXVvdGFJbkJ5dGVzLAorICAgICAgICBXZWJTdG9yYWdlUXVvdGFDYWxsYmFja3Mq
KSB7IH0KKwogcHJvdGVjdGVkOgogICAgIH5XZWJGcmFtZUNsaWVudCgpIHsgfQogfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlN0b3JhZ2VRdW90YUNhbGxi
YWNrcy5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU3RvcmFnZVF1b3RhQ2Fs
bGJhY2tzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTU0YzM2MwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlN0b3JhZ2VR
dW90YUNhbGxiYWNrcy5oCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwor
ICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYlN0b3JhZ2VRdW90YUNh
bGxiYWNrc19oCisjZGVmaW5lIFdlYlN0b3JhZ2VRdW90YUNhbGxiYWNrc19oCisKKyNpbmNsdWRl
ICJXZWJTdG9yYWdlUXVvdGFFcnJvci5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3Mg
V2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzIHsKK3B1YmxpYzoKKyAgICAvLyBDYWxsYmFjayBmb3Ig
V2ViRnJhbWVDbGllbnQ6OnF1ZXJ5U3RvcmFnZVVzYWdlQW5kUXVvdGEuCisgICAgdmlydHVhbCB2
b2lkIGRpZFF1ZXJ5U3RvcmFnZVVzYWdlQW5kUXVvdGEodW5zaWduZWQgbG9uZyBsb25nIHVzYWdl
SW5CeXRlcywgdW5zaWduZWQgbG9uZyBsb25nIHF1b3RhSW5CeXRlcykgPSAwOworCisgICAgLy8g
Q2FsbGJhY2sgZm9yIFdlYkZyYW1lQ2xpZW50OjpyZXF1ZXN0U3RvcmFnZVF1b3RhLgorICAgIC8v
IFRoaXMgbWF5IHJldHVybiBhIHNtYWxsZXIgYW1vdW50IG9mIHF1b3RhIHRoYW4gdGhlIHJlcXVl
c3RlZC4KKyAgICB2aXJ0dWFsIHZvaWQgd2FzR3JhbnRlZFN0b3JhZ2VRdW90YSh1bnNpZ25lZCBs
b25nIGxvbmcgZ3JhbnRlZFF1b3RhSW5CeXRlcykgPSAwOworCisgICAgdmlydHVhbCB2b2lkIGRp
ZEZhaWwoV2ViU3RvcmFnZVF1b3RhRXJyb3IpID0gMDsKKworcHJvdGVjdGVkOgorICAgIHZpcnR1
YWwgfldlYlN0b3JhZ2VRdW90YUNhbGxiYWNrcygpIHsgfQorfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CisKKyNlbmRpZiAvLyBXZWJTdG9yYWdlUXVvdGFDYWxsYmFja3NfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU3RvcmFnZVF1b3RhRXJyb3IuaCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlN0b3JhZ2VRdW90YUVycm9yLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTFlMjM5OQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlN0b3JhZ2VRdW90YUVycm9yLmgK
QEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQor
ICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQor
ICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
KyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViU3RvcmFnZVF1b3RhRXJyb3JfaAorI2RlZmluZSBX
ZWJTdG9yYWdlUXVvdGFFcnJvcl9oCisKK25hbWVzcGFjZSBXZWJLaXQgeworCisvLyBUaGUgZXJy
b3IgY29kZSB1c2VkIGZvciBXZWJTdG9yYWdlUXVvdGEuCitlbnVtIFdlYlN0b3JhZ2VRdW90YUVy
cm9yIHsKKyAgICBXZWJTdG9yYWdlUXVvdGFFcnJvck9rID0gMCwKKyAgICBXZWJTdG9yYWdlUXVv
dGFFcnJvck5vdFN1cHBvcnRlZCA9IDksCisgICAgV2ViU3RvcmFnZVF1b3RhRXJyb3JTZWN1cml0
eSA9IDE4LAorICAgIFdlYlN0b3JhZ2VRdW90YUVycm9yQWJvcnQgPSAyMCwKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViU3RvcmFnZVF1b3RhRXJyb3JfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU3RvcmFnZVF1b3RhVHlw
ZS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU3RvcmFnZVF1b3RhVHlwZS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIxOGNhZjgKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTdG9yYWdlUXVvdGFUeXBl
LmgKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisg
KiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViU3RvcmFnZVF1b3RhVHlwZV9oCisjZGVmaW5l
IFdlYlN0b3JhZ2VRdW90YVR5cGVfaAorCituYW1lc3BhY2UgV2ViS2l0IHsKKworZW51bSBXZWJT
dG9yYWdlUXVvdGFUeXBlIHsKKyAgICBXZWJTdG9yYWdlUXVvdGFUeXBlVGVtcG9yYXJ5LAorICAg
IFdlYlN0b3JhZ2VRdW90YVR5cGVQZXJzaXN0ZW50LAorfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisKKyNlbmRpZiAvLyBXZWJTdG9yYWdlUXVvdGFUeXBlX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAKaW5kZXggN2JhYWY4YS4u
NDQxNWI3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0
Y2hpbmdFbnVtcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0
Y2hpbmdFbnVtcy5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJBc3luY0ZpbGVTeXN0
ZW0uaCIKICNpbmNsdWRlICJEb2N1bWVudE1hcmtlci5oIgogI2luY2x1ZGUgIkVkaXRvckluc2Vy
dEFjdGlvbi5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJGaWxlRXJy
b3IuaCIKICNpbmNsdWRlICJGaWxlTWV0YWRhdGEuaCIKICNpbmNsdWRlICJGb250RGVzY3JpcHRp
b24uaCIKQEAgLTc1LDYgKzc2LDcgQEAKICNpbmNsdWRlICJXZWJOb3RpZmljYXRpb25QcmVzZW50
ZXIuaCIKICNpbmNsdWRlICJXZWJTY3JvbGxiYXIuaCIKICNpbmNsdWRlICJXZWJTZXR0aW5ncy5o
IgorI2luY2x1ZGUgIldlYlN0b3JhZ2VRdW90YUVycm9yLmgiCiAjaW5jbHVkZSAiV2ViVGV4dEFm
ZmluaXR5LmgiCiAjaW5jbHVkZSAiV2ViVGV4dENhc2VTZW5zaXRpdml0eS5oIgogI2luY2x1ZGUg
IldlYlRleHRDaGVja2luZ1Jlc3VsdC5oIgpAQCAtNDE0LDYgKzQxNiwxMiBAQCBDT01QSUxFX0FT
U0VSVF9NQVRDSElOR19FTlVNKFdlYkdlb2xvY2F0aW9uRXJyb3I6OkVycm9yUG9zaXRpb25VbmF2
YWlsYWJsZSwgR2VvbAogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJUZXh0Q2hlY2tp
bmdSZXN1bHQ6OkVycm9yU3BlbGxpbmcsIERvY3VtZW50TWFya2VyOjpTcGVsbGluZyk7CiBDT01Q
SUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYlRleHRDaGVja2luZ1Jlc3VsdDo6RXJyb3JHcmFt
bWFyLCBEb2N1bWVudE1hcmtlcjo6R3JhbW1hcik7CiAKKyNpZiBFTkFCTEUoUVVPVEEpCitDT01Q
SUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYlN0b3JhZ2VRdW90YUVycm9yTm90U3VwcG9ydGVk
LCBOT1RfU1VQUE9SVEVEX0VSUik7CitDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYlN0
b3JhZ2VRdW90YUVycm9yU2VjdXJpdHksIFNFQ1VSSVRZX0VSUik7CitDT01QSUxFX0FTU0VSVF9N
QVRDSElOR19FTlVNKFdlYlN0b3JhZ2VRdW90YUVycm9yQWJvcnQsIEFCT1JUX0VSUik7CisjZW5k
aWYKKwogI2lmIE9TKERBUldJTikKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViVGhl
bWVFbmdpbmU6OlN0YXRlRGlzYWJsZWQsIFBsYXRmb3JtQnJpZGdlOjpTdGF0ZURpc2FibGVkKTsK
IENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViVGhlbWVFbmdpbmU6OlN0YXRlSW5hY3Rp
dmUsIFBsYXRmb3JtQnJpZGdlOjpTdGF0ZUluYWN0aXZlKTsK
</data>
<flag name="review"
          id="81111"
          type_id="1"
          status="+"
          setter="fishd"
    />
    <flag name="commit-queue"
          id="81193"
          type_id="3"
          status="-"
          setter="fishd"
    />
          </attachment>
      

    </bug>

</bugzilla>