<?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>57927</bug_id>
          
          <creation_ts>2011-04-06 01:14:52 -0700</creation_ts>
          <short_desc>Add mock implementation and plumbing code for unified Quota API</short_desc>
          <delta_ts>2011-05-06 02:02:03 -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>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>57948</dependson>
    
    <dependson>57849</dependson>
    
    <dependson>57918</dependson>
          <blocked>60355</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kinuko Yasuda">kinuko</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dmikurube</cc>
    
    <cc>ericu</cc>
    
    <cc>fishd</cc>
    
    <cc>joepeck</cc>
    
    <cc>levin</cc>
    
    <cc>michaeln</cc>
    
    <cc>mjs</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>380204</commentid>
    <comment_count>0</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2011-04-06 01:14:52 -0700</bug_when>
    <thetext>Per public discussion on public-webapps, we want expose the unified quota API that allows webapps to request/query the current storage usage and quota.
http://lists.w3.org/Archives/Public/public-webapps/2011JanMar/0346.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>380460</commentid>
    <comment_count>1</comment_count>
      <attachid>88442</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2011-04-06 09:11:46 -0700</bug_when>
    <thetext>Created attachment 88442
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>380634</commentid>
    <comment_count>2</comment_count>
      <attachid>88442</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-04-06 11:06:10 -0700</bug_when>
    <thetext>Comment on attachment 88442
Patch

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

&gt; Source/WebCore/ChangeLog:15
&gt; +        No new tests: tests will be added when we add the implementation.

Usually the idl is the last thing added (after the implementation) and tests are required when the idl is added.


Maybe you should do the changes without the idl and add it in with tests when the impl is there.

&gt; Source/WebCore/page/DOMWindow.cpp:111
&gt; +#if ENABLE(QUOTA)

No if needed here. (The header has it.) Just put the include with the others.

&gt; Source/WebCore/storage/StorageInfo.cpp:38
&gt; +#include &quot;ScriptExecutionContext.h&quot;

Not needed a fwd decl will do.

&gt; Source/WebCore/storage/StorageInfo.h:49
&gt; +        TEMPORARY,

Enum members should user InterCaps with an initial capital letter. (I think you&apos;re using a chromium style.)

&gt; Source/WebCore/storage/StorageInfo.h:58
&gt; +    ~StorageInfo();

Consider making this private and making RefCounted&lt;StorageInfo&gt; a friend.

&gt; Source/WebCore/storage/StorageInfo.idl:2
&gt; + * Copyright (C) 2008, 2009 Apple Inc. All rights reserved.

This is an odd copyright header.

&gt; Source/WebKit/chromium/src/StorageInfoChromium.cpp:57
&gt; +    }

What if !isDocument?

I&apos;m bothered by the raw pointer (new...) but I understand. I wonder if there is another way to do this.

&gt; Source/WebKit/chromium/src/StorageInfoChromium.cpp:67
&gt; +    }

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381120</commentid>
    <comment_count>3</comment_count>
      <attachid>88568</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2011-04-06 21:46:01 -0700</bug_when>
    <thetext>Created attachment 88568
Patch

Got rid of the idl part.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381122</commentid>
    <comment_count>4</comment_count>
      <attachid>88569</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2011-04-06 21:50:30 -0700</bug_when>
    <thetext>Created attachment 88569
Patch

Minor fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381123</commentid>
    <comment_count>5</comment_count>
      <attachid>88442</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2011-04-06 21:53:42 -0700</bug_when>
    <thetext>Comment on attachment 88442
Patch

Thanks for reviewing,

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

&gt;&gt; Source/WebCore/ChangeLog:15
&gt;&gt; +        No new tests: tests will be added when we add the implementation.
&gt; 
&gt; Usually the idl is the last thing added (after the implementation) and tests are required when the idl is added.
&gt; 
&gt; 
&gt; Maybe you should do the changes without the idl and add it in with tests when the impl is there.

Discarded the idl changes.

&gt;&gt; Source/WebCore/page/DOMWindow.cpp:111
&gt;&gt; +#if ENABLE(QUOTA)
&gt; 
&gt; No if needed here. (The header has it.) Just put the include with the others.

Discarded this change for now.

&gt;&gt; Source/WebCore/storage/StorageInfo.cpp:38
&gt;&gt; +#include &quot;ScriptExecutionContext.h&quot;
&gt; 
&gt; Not needed a fwd decl will do.

Done.

&gt;&gt; Source/WebCore/storage/StorageInfo.h:49
&gt;&gt; +        TEMPORARY,
&gt; 
&gt; Enum members should user InterCaps with an initial capital letter. (I think you&apos;re using a chromium style.)

They&apos;re named after the IDL&apos;s constant names to enable enum checks.  (I removed the IDL changes from the patch so I removed this enum for now too.)

&gt;&gt; Source/WebCore/storage/StorageInfo.h:58
&gt;&gt; +    ~StorageInfo();
&gt; 
&gt; Consider making this private and making RefCounted&lt;StorageInfo&gt; a friend.

Done.

&gt;&gt; Source/WebCore/storage/StorageInfo.idl:2
&gt;&gt; + * Copyright (C) 2008, 2009 Apple Inc. All rights reserved.
&gt; 
&gt; This is an odd copyright header.

Will fix. (The IDL changes have been discarded from this change)

&gt;&gt; Source/WebKit/chromium/src/StorageInfoChromium.cpp:57
&gt;&gt; +    }
&gt; 
&gt; What if !isDocument?
&gt; 
&gt; I&apos;m bothered by the raw pointer (new...) but I understand. I wonder if there is another way to do this.

Added error handling code for !document cases.  As for the raw pointer I made a wrapper create method to make it less naked...

&gt;&gt; Source/WebKit/chromium/src/StorageInfoChromium.cpp:67
&gt;&gt; +    }
&gt; 
&gt; Ditto.

Did the same.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381133</commentid>
    <comment_count>6</comment_count>
      <attachid>88575</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2011-04-06 22:36:41 -0700</bug_when>
    <thetext>Created attachment 88575
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381135</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-04-06 22:42:36 -0700</bug_when>
    <thetext>Attachment 88575 did not build on chromium:
Build output: http://queues.webkit.org/results/8346487</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381139</commentid>
    <comment_count>8</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2011-04-06 22:46:47 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Attachment 88575 [details] did not build on chromium:
&gt; Build output: http://queues.webkit.org/results/8346487

This does not compile because the patch depends on issue 57849.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382086</commentid>
    <comment_count>9</comment_count>
      <attachid>88783</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2011-04-08 02:12:12 -0700</bug_when>
    <thetext>Created attachment 88783
Patch

Rebased as now the corresponding WebKit API change has been submitted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382218</commentid>
    <comment_count>10</comment_count>
      <attachid>88783</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-04-08 07:12:06 -0700</bug_when>
    <thetext>Comment on attachment 88783
Patch

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

Seems fine. Only one question before I r+.

&gt; Source/WebKit/chromium/src/StorageInfoChromium.cpp:57
&gt; +        webFrame-&gt;client()-&gt;queryStorageUsageAndQuota(webFrame, static_cast&lt;WebStorageQuotaType&gt;(storageType), WebStorageQuotaCallbacksImpl::createForUsageCallback(successCallback, errorCallback));

How do we know that storageType has a valid value?

What will happen if it doesn&apos;t?

Do we need to check for validity here?

&gt; Source/WebKit/chromium/src/StorageInfoChromium.cpp:72
&gt; +        webFrame-&gt;client()-&gt;requestStorageQuota(webFrame, static_cast&lt;WebStorageQuotaType&gt;(storageType), newQuotaInBytes, WebStorageQuotaCallbacksImpl::createForQuotaCallback(successCallback, errorCallback));

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383049</commentid>
    <comment_count>11</comment_count>
      <attachid>88972</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2011-04-10 23:55:57 -0700</bug_when>
    <thetext>Created attachment 88972
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383052</commentid>
    <comment_count>12</comment_count>
      <attachid>88973</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2011-04-10 23:59:13 -0700</bug_when>
    <thetext>Created attachment 88973
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383054</commentid>
    <comment_count>13</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2011-04-11 00:08:17 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 88783 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=88783&amp;action=review
&gt; 
&gt; Seems fine. Only one question before I r+.
&gt; 
&gt; &gt; Source/WebKit/chromium/src/StorageInfoChromium.cpp:57
&gt; &gt; +        webFrame-&gt;client()-&gt;queryStorageUsageAndQuota(webFrame, static_cast&lt;WebStorageQuotaType&gt;(storageType), WebStorageQuotaCallbacksImpl::createForUsageCallback(successCallback, errorCallback));
&gt; 
&gt; How do we know that storageType has a valid value?
&gt; 
&gt; What will happen if it doesn&apos;t?
&gt; 
&gt; Do we need to check for validity here?

I was planning to check for validity in the embedder side (i.e. chromium code) but I added the validity check here too, as we&apos;re crossing modules where the API defines valid storage types.

&gt; &gt; Source/WebKit/chromium/src/StorageInfoChromium.cpp:72
&gt; &gt; +        webFrame-&gt;client()-&gt;requestStorageQuota(webFrame, static_cast&lt;WebStorageQuotaType&gt;(storageType), newQuotaInBytes, WebStorageQuotaCallbacksImpl::createForQuotaCallback(successCallback, errorCallback));
&gt; 
&gt; Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>384698</commentid>
    <comment_count>14</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2011-04-12 23:21:53 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #10)
&gt; &gt; (From update of attachment 88783 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=88783&amp;action=review
&gt; &gt; 
&gt; &gt; Seems fine. Only one question before I r+.

David, could you or someone take another look when you have time?  Thanks and sorry for pushing,</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>384859</commentid>
    <comment_count>15</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2011-04-13 07:20:39 -0700</bug_when>
    <thetext>Committed r83729: &lt;http://trac.webkit.org/changeset/83729&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398511</commentid>
    <comment_count>16</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2011-05-04 20:25:41 -0700</bug_when>
    <thetext>This looks great! The last I heard on this was this nice summary
posted later in the public-webapps thread:
http://lists.w3.org/Archives/Public/public-webapps/2011JanMar/0542.html

What is the next step for this? Is a WebApps draft spec in the works,
or is that on hold until an implementation is fleshed out? Considering
the feedback from public-webapps that wouldn&apos;t be a bad idea.

You&apos;ve done a good job with Building the Bugzilla Bug dependency
tree / graph. Is there an overall tracking bug I can follow to make sure
I don&apos;t miss new bugs for this feature?

Thanks and Cheers!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>399438</commentid>
    <comment_count>17</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2011-05-06 02:02:03 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; This looks great! The last I heard on this was this nice summary
&gt; posted later in the public-webapps thread:
&gt; http://lists.w3.org/Archives/Public/public-webapps/2011JanMar/0542.html
&gt; 
&gt; What is the next step for this? Is a WebApps draft spec in the works,
&gt; or is that on hold until an implementation is fleshed out? Considering
&gt; the feedback from public-webapps that wouldn&apos;t be a bad idea.

Yes for now I&apos;m planning to add an experimental implementation first to flesh out how the implementation/API should be like.  After that we will bring the topic again in the public-webapps (if no one disagrees).

&gt; You&apos;ve done a good job with Building the Bugzilla Bug dependency
&gt; tree / graph. Is there an overall tracking bug I can follow to make sure
&gt; I don&apos;t miss new bugs for this feature?
&gt; 
&gt; Thanks and Cheers!

As for the bug dependency tree/graph, I just filed an umbrella bug for the feature/API: bug 60355
Probably you&apos;ll want track the bug to follow the feature.  I also sent out an email to webkit-dev to get more feedbacks/comments in the webkit developers community.  Please feel free to write to the thread if you have any comments!  Thanks,</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88442</attachid>
            <date>2011-04-06 09:11:46 -0700</date>
            <delta_ts>2011-04-06 21:53:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch</filename>
            <type>text/plain</type>
            <size>58108</size>
            <attacher name="Kinuko Yasuda">kinuko</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNjljNjdlMi4uNjUzMTE5NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTE5NDIsNiArMTk0MiwxNyBAQCBJRiAoRU5BQkxFX1BST0dSRVNTX1RBRykKICAg
ICApCiBFTkRJRiAoKQogCitpZiAoRU5BQkxFX1FVT1RBKQorICAgIExJU1QoQVBQRU5EIFdlYkNv
cmVfU09VUkNFUworICAgICAgICBzdG9yYWdlL1N0b3JhZ2VJbmZvLmNwcAorICAgICkKKyAgICBM
SVNUKEFQUEVORCBXZWJDb3JlX0lETF9GSUxFUworICAgICAgICBzdG9yYWdlL1N0b3JhZ2VJbmZv
LmlkbAorICAgICAgICBzdG9yYWdlL1N0b3JhZ2VJbmZvRXJyb3JDYWxsYmFjay5pZGwKKyAgICAg
ICAgc3RvcmFnZS9TdG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2suaWRsCisgICAgICAgIHN0b3JhZ2Uv
U3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrLmlkbAorICAgICkKK0VORElGICgpCiAKIAogIyBNb2R1
bGVzIHRoYXQgdGhlIGJpbmRpbmdzIGdlbmVyYXRvciBzY3JpcHRzIG1heSB1c2UKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCBmZmRjZTQzLi41NDhiYTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTEt
MDQtMDYgIEtpbnVrbyBZYXN1ZGEgIDxraW51a29AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4cG9zZSB1bmlmaWVkIFF1b3Rh
IEFQSSBpZiBRVU9UQSBidWlsZCBmbGFnIGlzIGVuYWJsZWQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU3OTI3CisKKyAgICAgICAgQWRkZWQgamF2YXNj
cmlwdCBiaW5kaW5ncyBhbmQgc29tZSBwbHVtYmluZyBjb2RlIGZvcgorICAgICAgICB3ZWJraXRT
dG9yYWdlSW5mbyAoU3RvcmFnZUluZm8pIGFuZCBjYWxsYmFja3MgZm9yIHRoZSBTdG9yYWdlSW5m
by4KKyAgICAgICAgTm8gaW1wbGVtZW50YXRpb24geWV0LgorCisgICAgICAgIFRoZSBBUEkgaXMg
Z3VhcmRlZCBieSB0aGUgUVVPVEEgYnVpbGQgZmxhZywgd2hpY2ggaXMgZGlzYWJsZWQgYnkKKyAg
ICAgICAgZGVmYXVsdC4KKworICAgICAgICBObyBuZXcgdGVzdHM6IHRlc3RzIHdpbGwgYmUgYWRk
ZWQgd2hlbiB3ZSBhZGQgdGhlIGltcGxlbWVudGF0aW9uLgorCisgICAgICAgICogQ01ha2VMaXN0
cy50eHQ6IEFkZGVkIG5ldyBmaWxlIGVudHJpZXMuCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMu
Y3BwOiBBZGRlZCBuZXcgZmlsZSBlbnRyaWVzLgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1h
a2U6IEFkZGVkIG5ldyBmaWxlIGVudHJpZXMuCisgICAgICAgICogR05VbWFrZWZpbGUuYW06IEFk
ZGVkIG5ldyBmaWxlIGVudHJpZXMuCisgICAgICAgICogV2ViQ29yZS5neXBpOiBBZGRlZCBuZXcg
ZmlsZSBlbnRyaWVzLgorICAgICAgICAqIFdlYkNvcmUucHJvOiBBZGRlZCBuZXcgZmlsZSBlbnRy
aWVzLgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOiBBZGRlZCBuZXcg
ZmlsZSBlbnRyaWVzLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajogQWRkZWQgbmV3IGZpbGUgZW50cmllcy4KKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6
IEFkZGVkIHdlYmtpdFN0b3JhZ2VJbmZvKCkuCisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6
OndlYmtpdFN0b3JhZ2VJbmZvKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5oOgorICAgICAg
ICAqIHBhZ2UvRE9NV2luZG93LmlkbDogQWRkZWQgd2Via2l0U3RvcmFnZUluZm8oKS4KKyAgICAg
ICAgKiBzdG9yYWdlL1N0b3JhZ2VJbmZvLmNwcDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9T
dG9yYWdlSW5mby5oOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL1N0b3JhZ2VJbmZvLmlkbDog
QWRkZWQuCisgICAgICAgICogc3RvcmFnZS9TdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2suaDogQWRk
ZWQuCisgICAgICAgICogc3RvcmFnZS9TdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2suaWRsOiBBZGRl
ZC4KKyAgICAgICAgKiBzdG9yYWdlL1N0b3JhZ2VJbmZvUXVvdGFDYWxsYmFjay5oOiBBZGRlZC4K
KyAgICAgICAgKiBzdG9yYWdlL1N0b3JhZ2VJbmZvUXVvdGFDYWxsYmFjay5pZGw6IEFkZGVkLgor
ICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrLmg6IEFkZGVkLgorICAg
ICAgICAqIHN0b3JhZ2UvU3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrLmlkbDogQWRkZWQuCisKIDIw
MTEtMDQtMDUgIEx1a2UgTWFjcGhlcnNvbiAgIDxtYWNwaGVyc29uQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5jcHAKaW5kZXggMjQwMjJmNy4uYjI2YmNlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNw
cApAQCAtMjgzLDYgKzI4MywxMCBAQAogI2luY2x1ZGUgIkpTU1FMVHJhbnNhY3Rpb25TeW5jQ2Fs
bGJhY2suY3BwIgogI2luY2x1ZGUgIkpTU3RvcmFnZS5jcHAiCiAjaW5jbHVkZSAiSlNTdG9yYWdl
RXZlbnQuY3BwIgorI2luY2x1ZGUgIkpTU3RvcmFnZUluZm8uY3BwIgorI2luY2x1ZGUgIkpTU3Rv
cmFnZUluZm9FcnJvckNhbGxiYWNrLmNwcCIKKyNpbmNsdWRlICJKU1N0b3JhZ2VJbmZvUXVvdGFD
YWxsYmFjay5jcHAiCisjaW5jbHVkZSAiSlNTdG9yYWdlSW5mb1VzYWdlQ2FsbGJhY2suY3BwIgog
I2luY2x1ZGUgIkpTU3RyaW5nQ2FsbGJhY2suY3BwIgogI2luY2x1ZGUgIkpTU3R5bGVNZWRpYS5j
cHAiCiAjaW5jbHVkZSAiSlNTdHlsZVNoZWV0LmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5t
YWtlCmluZGV4IDM1YTY1OTkuLjJhZTkzODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFr
ZQpAQCAtMzUxLDYgKzM1MSwxMCBAQCBET01fQ0xBU1NFUyA9IFwKICAgICBTUUxUcmFuc2FjdGlv
blN5bmNDYWxsYmFjayBcCiAgICAgU3RvcmFnZSBcCiAgICAgU3RvcmFnZUV2ZW50IFwKKyAgICBT
dG9yYWdlSW5mbyBcCisgICAgU3RvcmFnZUluZm9FcnJvckNhbGxiYWNrIFwKKyAgICBTdG9yYWdl
SW5mb1F1b3RhQ2FsbGJhY2sgXAorICAgIFN0b3JhZ2VJbmZvVXNhZ2VDYWxsYmFjayBcCiAgICAg
U3RyaW5nQ2FsbGJhY2sgXAogICAgIFNWR0FFbGVtZW50IFwKICAgICBTVkdBbHRHbHlwaEVsZW1l
bnQgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9Tb3VyY2Uv
V2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCBjODQ3NGQxLi5kYzIwN2ZhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVt
YWtlZmlsZS5hbQpAQCAtMzI0MiwxNyArMzI0MiwyMiBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAog
CVNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU1FMVHJhbnNhY3Rpb25TeW5jQ2FsbGJhY2suaCBcCiAJ
U291cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxUcmFuc2FjdGlvblN5bmMuY3BwIFwKIAlTb3VyY2Uv
V2ViQ29yZS9zdG9yYWdlL1NRTFRyYW5zYWN0aW9uU3luYy5oIFwKKwlTb3VyY2UvV2ViQ29yZS9z
dG9yYWdlL1N0b3JhZ2UuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2UuaCBc
CiAJU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlQXJlYS5oIFwKIAlTb3VyY2UvV2ViQ29y
ZS9zdG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3N0b3JhZ2Uv
U3RvcmFnZUFyZWFJbXBsLmggXAogCVNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUFyZWFT
eW5jLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlQXJlYVN5bmMuaCBcCi0J
U291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvc3Rv
cmFnZS9TdG9yYWdlRXZlbnQuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VF
dmVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VFdmVudERpc3BhdGNoZXIu
Y3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VFdmVudERpc3BhdGNoZXIuaCBc
Ci0JU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlRXZlbnQuaCBcCi0JU291cmNlL1dlYkNv
cmUvc3RvcmFnZS9TdG9yYWdlLmggXAorCVNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUlu
Zm8uY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VJbmZvLmggXAorCVNvdXJj
ZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUluZm9FcnJvckNhbGxiYWNrLmggXAorCVNvdXJjZS9X
ZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUluZm9RdW90YUNhbGxiYWNrLmggXAorCVNvdXJjZS9XZWJD
b3JlL3N0b3JhZ2UvU3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrLmggXAogCVNvdXJjZS9XZWJDb3Jl
L3N0b3JhZ2UvU3RvcmFnZU1hcC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFn
ZU1hcC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2UuY3BwIFwK
QEAgLTQyMjYsNiArNDIzMSwxNSBAQCBlbmRpZiAjIEVORCBFTkFCTEVfRklMRV9TWVNURU0KIGlm
IEVOQUJMRV9RVU9UQQogRkVBVFVSRV9ERUZJTkVTICs9IEVOQUJMRV9RVU9UQT0xCiB3ZWJjb3Jl
X2NwcGZsYWdzICs9IC1ERU5BQkxFX1FVT1RBPTEKK3dlYmNvcmVfYnVpbHRfc291cmNlcyArPSBc
CisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1N0b3JhZ2VJbmZvLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU1N0b3JhZ2VJbmZvLmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNTdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2suY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTU3RvcmFnZUluZm9FcnJvckNhbGxiYWNrLmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNTdG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2suY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTU3RvcmFnZUluZm9RdW90YUNhbGxiYWNrLmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNTdG9yYWdlSW5mb1VzYWdlQ2FsbGJhY2suY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTU3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrLmgKIGVuZGlmICMgRU5EIEVOQUJMRV9RVU9UQQog
CiAjIC0tLS0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBiNTE1NjkyLi5lNmYwYWI4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCkBAIC0xMzY5LDYgKzEzNjksMTAgQEAKICAgICAgICAgICAgICdzdG9yYWdlL1NRTFRy
YW5zYWN0aW9uU3luY0NhbGxiYWNrLmlkbCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9TdG9yYWdl
LmlkbCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9TdG9yYWdlRXZlbnQuaWRsJywKKyAgICAgICAg
ICAgICdzdG9yYWdlL1N0b3JhZ2VJbmZvLmlkbCcsCisgICAgICAgICAgICAnc3RvcmFnZS9TdG9y
YWdlSW5mb0Vycm9yQ2FsbGJhY2suaWRsJywKKyAgICAgICAgICAgICdzdG9yYWdlL1N0b3JhZ2VJ
bmZvUXVvdGFDYWxsYmFjay5pZGwnLAorICAgICAgICAgICAgJ3N0b3JhZ2UvU3RvcmFnZUluZm9V
c2FnZUNhbGxiYWNrLmlkbCcsCiAgICAgICAgICAgICAnd2ViYXVkaW8vQXVkaW9CdWZmZXIuaWRs
JywKICAgICAgICAgICAgICd3ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuaWRsJywKICAg
ICAgICAgICAgICd3ZWJhdWRpby9BdWRpb0NoYW5uZWxNZXJnZXIuaWRsJywKQEAgLTU1MTIsNiAr
NTUxNiwxMSBAQAogICAgICAgICAgICAgJ3N0b3JhZ2UvU3RvcmFnZUV2ZW50LmgnLAogICAgICAg
ICAgICAgJ3N0b3JhZ2UvU3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5jcHAnLAogICAgICAgICAgICAg
J3N0b3JhZ2UvU3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5oJywKKyAgICAgICAgICAgICdzdG9yYWdl
L1N0b3JhZ2VJbmZvLmNwcCcsCisgICAgICAgICAgICAnc3RvcmFnZS9TdG9yYWdlSW5mby5oJywK
KyAgICAgICAgICAgICdzdG9yYWdlL1N0b3JhZ2VJbmZvRXJyb3JDYWxsYmFjay5oJywKKyAgICAg
ICAgICAgICdzdG9yYWdlL1N0b3JhZ2VJbmZvUXVvdGFDYWxsYmFjay5oJywKKyAgICAgICAgICAg
ICdzdG9yYWdlL1N0b3JhZ2VJbmZvVXNhZ2VDYWxsYmFjay5oJywKICAgICAgICAgICAgICdzdG9y
YWdlL1N0b3JhZ2VNYXAuY3BwJywKICAgICAgICAgICAgICdzdG9yYWdlL1N0b3JhZ2VNYXAuaCcs
CiAgICAgICAgICAgICAnc3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlLmNwcCcsCkBAIC03ODI5LDYg
Kzc4MzgsMTQgQEAKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTU3RvcmFnZS5oJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTU3RvcmFnZUV2ZW50LmNwcCcsCiAgICAgICAgICAgICAnPChQUk9E
VUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1N0b3JhZ2VFdmVudC5oJywKKyAgICAg
ICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3RvcmFnZUlu
Zm8uY3BwJywKKyAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTU3RvcmFnZUluZm8uaCcsCisgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU1N0b3JhZ2VJbmZvRXJyb3JDYWxsYmFjay5jcHAnLAorICAgICAg
ICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTdG9yYWdlSW5m
b0Vycm9yQ2FsbGJhY2suaCcsCisgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU1N0b3JhZ2VJbmZvUXVvdGFDYWxsYmFjay5jcHAnLAorICAgICAgICAg
ICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTdG9yYWdlSW5mb1F1
b3RhQ2FsbGJhY2suaCcsCisgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU1N0b3JhZ2VJbmZvVXNhZ2VDYWxsYmFjay5jcHAnLAorICAgICAgICAgICAg
JzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTdG9yYWdlSW5mb1VzYWdl
Q2FsbGJhY2suaCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU1N0eWxlTWVkaWEuY3BwJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3R5bGVNZWRpYS5oJywKICAgICAgICAgICAgICc8KFBS
T0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3R5bGVTaGVldC5jcHAnLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnBybwppbmRleCAyNzNkNDMzLi5mNmQ3NjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnBybworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtMjkyMSw2
ICsyOTIxLDE3IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9JTlBVVF9TUEVFQ0g9MSkgewog
ICAgICAgICByZW5kZXJpbmcvUmVuZGVySW5wdXRTcGVlY2guY3BwCiB9CiAKK2NvbnRhaW5zKERF
RklORVMsIEVOQUJMRV9RVU9UQT0xKSB7CisgICAgSEVBREVSUyArPSBcCisgICAgICAgIHN0b3Jh
Z2UvU3RvcmFnZUluZm8uaCBcCisgICAgICAgIHN0b3JhZ2UvU3RvcmFnZUluZm9FcnJvckNhbGxi
YWNrLmggXAorICAgICAgICBzdG9yYWdlL1N0b3JhZ2VJbmZvUXVvdGFDYWxsYmFjay5oIFwKKyAg
ICAgICAgc3RvcmFnZS9TdG9yYWdlSW5mb1VzYWdlQ2FsbGJhY2suaAorCisgICAgU09VUkNFUyAr
PSBcCisgICAgICAgIHN0b3JhZ2UvU3RvcmFnZUluZm8uY3BwCit9CisKIGNvbnRhaW5zKERFRklO
RVMsIEVOQUJMRV9WSURFTz0xKSB7CiAgICAgU09VUkNFUyArPSBcCiAgICAgICAgIGh0bWwvSFRN
TEF1ZGlvRWxlbWVudC5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvagppbmRleCBmNThmN2ZlLi5lNzQ4ZGVjIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMTM1NTgsNiArMTM1NTgsMzggQEAKIAkJ
CQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0
aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU1N0b3JhZ2VJ
bmZvLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0i
JChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNl
c1xKU1N0b3JhZ2VJbmZvLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxh
dGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVy
aXZlZFNvdXJjZXNcSlNTdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2suY3BwIgorCQkJCT4KKwkJCTwv
RmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERp
cilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTU3RvcmFnZUluZm9FcnJvckNh
bGxiYWNrLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9
IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJj
ZXNcSlNTdG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2suY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJ
CTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQo
UHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTU3RvcmFnZUluZm9RdW90YUNhbGxiYWNrLmgi
CisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmln
dXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNTdG9y
YWdlSW5mb1VzYWdlQ2FsbGJhY2suY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJ
CQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5h
bWUpXERlcml2ZWRTb3VyY2VzXEpTU3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrLmgiCisJCQkJPgor
CQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1
aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNTdHJpbmdDYWxsYmFj
ay5jcHAiCiAJCQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpAQCAtNjYwNTgsNiArNjYwOTAs
MjYgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5c
c3RvcmFnZVxTdG9yYWdlSW5mby5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXHN0b3JhZ2VcU3RvcmFnZUluZm8uaCIKKwkJCQk+CisJCQk8L0Zp
bGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3RvcmFnZVxTdG9yYWdlSW5mb0Vy
cm9yQ2FsbGJhY2suaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZl
UGF0aD0iLi5cc3RvcmFnZVxTdG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2suaCIKKwkJCQk+CisJCQk8
L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3RvcmFnZVxTdG9yYWdlSW5m
b1VzYWdlQ2FsbGJhY2suaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0
aXZlUGF0aD0iLi5cc3RvcmFnZVxTdG9yYWdlTWFwLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggMTVhMWM4MS4uYWNlMTA1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjY0OSw2ICsyNjQ5LDE5IEBACiAJCTg2MjQzRDAx
MTFCQzMxRjcwMENDMDA2QSAvKiBKU0FycmF5QnVmZmVyVmlld0hlbHBlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODYyNDNEMDAxMUJDMzFGNzAwQ0Mw
MDZBIC8qIEpTQXJyYXlCdWZmZXJWaWV3SGVscGVyLmggKi87IH07CiAJCTg2RDk4MkY3MTI1QzE1
NDAwMEFEOUUzRCAvKiBEb2N1bWVudFRpbWluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODZEOTgyRjYxMjVDMTU0MDAwQUQ5RTNEIC8qIERvY3VtZW50
VGltaW5nLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJODkwQUUwRTExMjU2QTA3OTAwRjU5NjhDIC8qIERpcmVjdG9yeVJlYWRlckJhc2UuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5MEFFMEUwMTI1NkEw
NzkwMEY1OTY4QyAvKiBEaXJlY3RvcnlSZWFkZXJCYXNlLmggKi87IH07CisJCTg5MkNGMTkyMTM0
QzYyMEQwMEFBRURBMSAvKiBTdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2suaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5MkNGMThEMTM0QzYyMEQwMEFBRURB
MSAvKiBTdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2suaCAqLzsgfTsKKwkJODkyQ0YxOTMxMzRDNjIw
RDAwQUFFREExIC8qIFN0b3JhZ2VJbmZvUXVvdGFDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODkyQ0YxOEUxMzRDNjIwRDAwQUFFREExIC8q
IFN0b3JhZ2VJbmZvUXVvdGFDYWxsYmFjay5oICovOyB9OworCQk4OTJDRjE5NDEzNEM2MjBEMDBB
QUVEQTEgLyogU3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OTJDRjE4RjEzNEM2MjBEMDBBQUVEQTEgLyogU3Rv
cmFnZUluZm9Vc2FnZUNhbGxiYWNrLmggKi87IH07CisJCTg5MkNGMUVDMTM0QzY1NTUwMEFBRURB
MSAvKiBTdG9yYWdlSW5mby5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4OTJDRjFFQTEzNEM2NTU1MDBBQUVEQTEgLyogU3RvcmFnZUluZm8uY3BwICov
OyB9OworCQk4OTJDRjFFRDEzNEM2NTU1MDBBQUVEQTEgLyogU3RvcmFnZUluZm8uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5MkNGMUVCMTM0QzY1NTUw
MEFBRURBMSAvKiBTdG9yYWdlSW5mby5oICovOyB9OworCQk4OTJDRjIwQjEzNEM4QkIzMDBBQUVE
QTEgLyogSlNTdG9yYWdlSW5mby5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4OTJDRjIwMzEzNEM4QkIzMDBBQUVEQTEgLyogSlNTdG9yYWdlSW5mby5j
cHAgKi87IH07CisJCTg5MkNGMjBDMTM0QzhCQjMwMEFBRURBMSAvKiBKU1N0b3JhZ2VJbmZvLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OTJDRjIwNDEz
NEM4QkIzMDBBQUVEQTEgLyogSlNTdG9yYWdlSW5mby5oICovOyB9OworCQk4OTJDRjIwRDEzNEM4
QkIzMDBBQUVEQTEgLyogSlNTdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODkyQ0YyMDUxMzRDOEJCMzAwQUFF
REExIC8qIEpTU3RvcmFnZUluZm9FcnJvckNhbGxiYWNrLmNwcCAqLzsgfTsKKwkJODkyQ0YyMEUx
MzRDOEJCMzAwQUFFREExIC8qIEpTU3RvcmFnZUluZm9FcnJvckNhbGxiYWNrLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OTJDRjIwNjEzNEM4QkIzMDBB
QUVEQTEgLyogSlNTdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2suaCAqLzsgfTsKKwkJODkyQ0YyMEYx
MzRDOEJCMzAwQUFFREExIC8qIEpTU3RvcmFnZUluZm9RdW90YUNhbGxiYWNrLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5MkNGMjA3MTM0QzhCQjMw
MEFBRURBMSAvKiBKU1N0b3JhZ2VJbmZvUXVvdGFDYWxsYmFjay5jcHAgKi87IH07CisJCTg5MkNG
MjEwMTM0QzhCQjMwMEFBRURBMSAvKiBKU1N0b3JhZ2VJbmZvUXVvdGFDYWxsYmFjay5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODkyQ0YyMDgxMzRDOEJC
MzAwQUFFREExIC8qIEpTU3RvcmFnZUluZm9RdW90YUNhbGxiYWNrLmggKi87IH07CisJCTg5MkNG
MjExMTM0QzhCQjMwMEFBRURBMSAvKiBKU1N0b3JhZ2VJbmZvVXNhZ2VDYWxsYmFjay5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OTJDRjIwOTEzNEM4
QkIzMDBBQUVEQTEgLyogSlNTdG9yYWdlSW5mb1VzYWdlQ2FsbGJhY2suY3BwICovOyB9OworCQk4
OTJDRjIxMjEzNEM4QkIzMDBBQUVEQTEgLyogSlNTdG9yYWdlSW5mb1VzYWdlQ2FsbGJhY2suaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5MkNGMjBBMTM0
QzhCQjMwMEFBRURBMSAvKiBKU1N0b3JhZ2VJbmZvVXNhZ2VDYWxsYmFjay5oICovOyB9OwogCQk4
OTNDNDdBNzEyMzg5MDhCMDAyQjNEODYgLyogRmlsZUNhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OTNDNDdBNTEyMzg5MDhCMDAyQjNEODYg
LyogRmlsZUNhbGxiYWNrLmggKi87IH07CiAJCTg5M0M0N0E4MTIzODkwOEIwMDJCM0Q4NiAvKiBG
aWxlV3JpdGVyQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDg5M0M0N0E2MTIzODkwOEIwMDJCM0Q4NiAvKiBGaWxlV3JpdGVyQ2FsbGJhY2su
aCAqLzsgfTsKIAkJODkzQzQ3QjcxMjM4QTA5OTAwMkIzRDg2IC8qIEpTRmlsZUNhbGxiYWNrLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5M0M0N0I1
MTIzOEEwOTkwMDJCM0Q4NiAvKiBKU0ZpbGVDYWxsYmFjay5jcHAgKi87IH07CkBAIC05MTU5LDYg
KzkxNzIsMTkgQEAKIAkJODYyNDNEMDAxMUJDMzFGNzAwQ0MwMDZBIC8qIEpTQXJyYXlCdWZmZXJW
aWV3SGVscGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQXJyYXlCdWZm
ZXJWaWV3SGVscGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2RDk4MkY2MTI1
QzE1NDAwMEFEOUUzRCAvKiBEb2N1bWVudFRpbWluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBEb2N1bWVudFRpbWluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk4OTBBRTBFMDEyNTZBMDc5MDBGNTk2OEMgLyogRGlyZWN0b3J5UmVhZGVyQmFzZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBEaXJlY3RvcnlSZWFkZXJCYXNlLmg7IHBhdGgg
PSBmaWxlYXBpL0RpcmVjdG9yeVJlYWRlckJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJODkyQ0YxOEQxMzRDNjIwRDAwQUFFREExIC8qIFN0b3JhZ2VJbmZvRXJyb3JDYWxsYmFj
ay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdG9yYWdlSW5mb0Vycm9yQ2Fs
bGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODkyQ0YxOEUxMzRDNjIwRDAw
QUFFREExIC8qIFN0b3JhZ2VJbmZvUXVvdGFDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTdG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJODkyQ0YxOEYxMzRDNjIwRDAwQUFFREExIC8qIFN0b3JhZ2VJbmZvVXNh
Z2VDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdG9yYWdlSW5m
b1VzYWdlQ2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODkyQ0YxRUEx
MzRDNjU1NTAwQUFFREExIC8qIFN0b3JhZ2VJbmZvLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFN0b3JhZ2VJbmZvLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJODkyQ0YxRUIxMzRDNjU1NTAwQUFFREExIC8qIFN0b3JhZ2VJbmZvLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0b3JhZ2VJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTg5MkNGMjAzMTM0QzhCQjMwMEFBRURBMSAvKiBKU1N0b3JhZ2VJbmZvLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU3RvcmFnZUluZm8uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4OTJDRjIwNDEzNEM4QkIzMDBBQUVEQTEg
LyogSlNTdG9yYWdlSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1N0
b3JhZ2VJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg5MkNGMjA1MTM0QzhC
QjMwMEFBRURBMSAvKiBKU1N0b3JhZ2VJbmZvRXJyb3JDYWxsYmFjay5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1N0b3JhZ2VJbmZvRXJyb3JDYWxsYmFjay5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg5MkNGMjA2MTM0QzhCQjMwMEFBRURBMSAv
KiBKU1N0b3JhZ2VJbmZvRXJyb3JDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBKU1N0b3JhZ2VJbmZvRXJyb3JDYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk4OTJDRjIwNzEzNEM4QkIzMDBBQUVEQTEgLyogSlNTdG9yYWdlSW5mb1F1b3Rh
Q2FsbGJhY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTdG9y
YWdlSW5mb1F1b3RhQ2FsbGJhY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4
OTJDRjIwODEzNEM4QkIzMDBBQUVEQTEgLyogSlNTdG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2suaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTdG9yYWdlSW5mb1F1b3RhQ2FsbGJh
Y2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODkyQ0YyMDkxMzRDOEJCMzAwQUFF
REExIC8qIEpTU3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTU3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODkyQ0YyMEExMzRDOEJCMzAwQUFFREExIC8qIEpTU3Rv
cmFnZUluZm9Vc2FnZUNhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpTU3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTg5M0M0N0E1MTIzODkwOEIwMDJCM0Q4NiAvKiBGaWxlQ2FsbGJhY2suaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRmlsZUNhbGxiYWNrLmg7IHBhdGggPSBmaWxlYXBpL0Zp
bGVDYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4OTNDNDdBNjEyMzg5
MDhCMDAyQjNEODYgLyogRmlsZVdyaXRlckNhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IEZpbGVXcml0ZXJDYWxsYmFjay5oOyBwYXRoID0gZmlsZWFwaS9GaWxlV3Jp
dGVyQ2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODkzQzQ3QjUxMjM4
QTA5OTAwMkIzRDg2IC8qIEpTRmlsZUNhbGxiYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTRmlsZUNhbGxiYWNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTEzMTA1LDYgKzEzMTMxLDExIEBACiAJCQkJNTFFMEJBQkQwREE1NTQ4NDAwQTlF
NDE3IC8qIFN0b3JhZ2VFdmVudC5pZGwgKi8sCiAJCQkJQzVFOUI2NzYxMDY5N0UxMzAwQzdCQjFB
IC8qIFN0b3JhZ2VFdmVudERpc3BhdGNoZXIuY3BwICovLAogCQkJCUM1RUJERDgxMTA1RURERUMw
MDU2ODE2RiAvKiBTdG9yYWdlRXZlbnREaXNwYXRjaGVyLmggKi8sCisJCQkJODkyQ0YxRUExMzRD
NjU1NTAwQUFFREExIC8qIFN0b3JhZ2VJbmZvLmNwcCAqLywKKwkJCQk4OTJDRjFFQjEzNEM2NTU1
MDBBQUVEQTEgLyogU3RvcmFnZUluZm8uaCAqLywKKwkJCQk4OTJDRjE4RDEzNEM2MjBEMDBBQUVE
QTEgLyogU3RvcmFnZUluZm9FcnJvckNhbGxiYWNrLmggKi8sCisJCQkJODkyQ0YxOEUxMzRDNjIw
RDAwQUFFREExIC8qIFN0b3JhZ2VJbmZvUXVvdGFDYWxsYmFjay5oICovLAorCQkJCTg5MkNGMThG
MTM0QzYyMEQwMEFBRURBMSAvKiBTdG9yYWdlSW5mb1VzYWdlQ2FsbGJhY2suaCAqLywKIAkJCQk1
MUUwQkIzNzBEQTVBQ0I2MDBBOUU0MTcgLyogU3RvcmFnZU1hcC5jcHAgKi8sCiAJCQkJNTFFMEJC
MzYwREE1QUNCNjAwQTlFNDE3IC8qIFN0b3JhZ2VNYXAuaCAqLywKIAkJCQlDNTBEMEU4MDBGRjQy
NzI5MDBBQzI2NDQgLyogU3RvcmFnZU5hbWVzcGFjZS5jcHAgKi8sCkBAIC0xNzAzOCw2ICsxNzA2
OSwxNCBAQAogCQkJCTUxRTNGOUQ1MERBMDVFMUQwMDI1MDkxMSAvKiBKU1N0b3JhZ2UuaCAqLywK
IAkJCQk1MUUwQkFFODBEQTU1RDRBMDBBOUU0MTcgLyogSlNTdG9yYWdlRXZlbnQuY3BwICovLAog
CQkJCTUxRTBCQUU5MERBNTVENEEwMEE5RTQxNyAvKiBKU1N0b3JhZ2VFdmVudC5oICovLAorCQkJ
CTg5MkNGMjAzMTM0QzhCQjMwMEFBRURBMSAvKiBKU1N0b3JhZ2VJbmZvLmNwcCAqLywKKwkJCQk4
OTJDRjIwNDEzNEM4QkIzMDBBQUVEQTEgLyogSlNTdG9yYWdlSW5mby5oICovLAorCQkJCTg5MkNG
MjA1MTM0QzhCQjMwMEFBRURBMSAvKiBKU1N0b3JhZ2VJbmZvRXJyb3JDYWxsYmFjay5jcHAgKi8s
CisJCQkJODkyQ0YyMDYxMzRDOEJCMzAwQUFFREExIC8qIEpTU3RvcmFnZUluZm9FcnJvckNhbGxi
YWNrLmggKi8sCisJCQkJODkyQ0YyMDcxMzRDOEJCMzAwQUFFREExIC8qIEpTU3RvcmFnZUluZm9R
dW90YUNhbGxiYWNrLmNwcCAqLywKKwkJCQk4OTJDRjIwODEzNEM4QkIzMDBBQUVEQTEgLyogSlNT
dG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2suaCAqLywKKwkJCQk4OTJDRjIwOTEzNEM4QkIzMDBBQUVE
QTEgLyogSlNTdG9yYWdlSW5mb1VzYWdlQ2FsbGJhY2suY3BwICovLAorCQkJCTg5MkNGMjBBMTM0
QzhCQjMwMEFBRURBMSAvKiBKU1N0b3JhZ2VJbmZvVXNhZ2VDYWxsYmFjay5oICovLAogCQkJKTsK
IAkJCW5hbWUgPSBTdG9yYWdlOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTIyNzg4
LDYgKzIyODI3LDE0IEBACiAJCQkJOTNGMTk5RUQwODI0NUU1OTAwMUU5QUJDIC8qIFhTTFRQcm9j
ZXNzb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQkU1MTJFMENGNkM1MTIwMDJFQTk1OSAvKiBY
U0xUVW5pY29kZVNvcnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3N0UyRTBGMTJGMEZDOUMwMEMx
MzM3OSAvKiBYU1NGaWx0ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTg5MkNGMTkyMTM0QzYyMEQw
MEFBRURBMSAvKiBTdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAorCQkJ
CTg5MkNGMTkzMTM0QzYyMEQwMEFBRURBMSAvKiBTdG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2suaCBp
biBIZWFkZXJzICovLAorCQkJCTg5MkNGMTk0MTM0QzYyMEQwMEFBRURBMSAvKiBTdG9yYWdlSW5m
b1VzYWdlQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAorCQkJCTg5MkNGMUVEMTM0QzY1NTUwMEFB
RURBMSAvKiBTdG9yYWdlSW5mby5oIGluIEhlYWRlcnMgKi8sCisJCQkJODkyQ0YyMEMxMzRDOEJC
MzAwQUFFREExIC8qIEpTU3RvcmFnZUluZm8uaCBpbiBIZWFkZXJzICovLAorCQkJCTg5MkNGMjBF
MTM0QzhCQjMwMEFBRURBMSAvKiBKU1N0b3JhZ2VJbmZvRXJyb3JDYWxsYmFjay5oIGluIEhlYWRl
cnMgKi8sCisJCQkJODkyQ0YyMTAxMzRDOEJCMzAwQUFFREExIC8qIEpTU3RvcmFnZUluZm9RdW90
YUNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKKwkJCQk4OTJDRjIxMjEzNEM4QkIzMDBBQUVEQTEg
LyogSlNTdG9yYWdlSW5mb1VzYWdlQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJ
CXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjU0Njgs
NiArMjU1MTUsMTEgQEAKIAkJCQk5M0YxOUIwNTA4MjQ1RTU5MDAxRTlBQkMgLyogWFNMVFByb2Nl
c3NvckxpYnhzbHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFCRTUxMkQwQ0Y2QzUxMjAwMkVB
OTU5IC8qIFhTTFRVbmljb2RlU29ydC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzdFMkUwRTEy
RjBGQzlDMDBDMTMzNzkgLyogWFNTRmlsdGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTg5MkNG
MUVDMTM0QzY1NTUwMEFBRURBMSAvKiBTdG9yYWdlSW5mby5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQk4OTJDRjIwQjEzNEM4QkIzMDBBQUVEQTEgLyogSlNTdG9yYWdlSW5mby5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQk4OTJDRjIwRDEzNEM4QkIzMDBBQUVEQTEgLyogSlNTdG9yYWdlSW5mb0Vycm9y
Q2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJODkyQ0YyMEYxMzRDOEJCMzAwQUFFREEx
IC8qIEpTU3RvcmFnZUluZm9RdW90YUNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTg5
MkNGMjExMTM0QzhCQjMwMEFBRURBMSAvKiBKU1N0b3JhZ2VJbmZvVXNhZ2VDYWxsYmFjay5jcHAg
aW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNz
aW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCBhOGVmNmM0Li41
YjRlMzdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC0xMDgsNiArMTA4LDEwIEBA
CiAjaW5jbHVkZSAiTG9jYWxGaWxlU3lzdGVtLmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShRVU9U
QSkKKyNpbmNsdWRlICJTdG9yYWdlSW5mby5oIgorI2VuZGlmCisKICNpZiBFTkFCTEUoUkVRVUVT
VF9BTklNQVRJT05fRlJBTUUpCiAjaW5jbHVkZSAiUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJh
Y2suaCIKICNlbmRpZgpAQCAtNzg4LDcgKzc5Miw2IEBAIHZvaWQgRE9NV2luZG93OjpyZXNvbHZl
TG9jYWxGaWxlU3lzdGVtVVJMKGNvbnN0IFN0cmluZyYgdXJsLCBQYXNzUmVmUHRyPEVudHJ5Q2Fs
CiAKIENPTVBJTEVfQVNTRVJUKHN0YXRpY19jYXN0PGludD4oRE9NV2luZG93OjpURU1QT1JBUlkp
ID09IHN0YXRpY19jYXN0PGludD4oQXN5bmNGaWxlU3lzdGVtOjpUZW1wb3JhcnkpLCBlbnVtX21p
c21hdGNoKTsKIENPTVBJTEVfQVNTRVJUKHN0YXRpY19jYXN0PGludD4oRE9NV2luZG93OjpQRVJT
SVNURU5UKSA9PSBzdGF0aWNfY2FzdDxpbnQ+KEFzeW5jRmlsZVN5c3RlbTo6UGVyc2lzdGVudCks
IGVudW1fbWlzbWF0Y2gpOwotCiAjZW5kaWYKIAogdm9pZCBET01XaW5kb3c6OnBvc3RNZXNzYWdl
KFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBtZXNzYWdlLCBNZXNzYWdlUG9ydCog
cG9ydCwgY29uc3QgU3RyaW5nJiB0YXJnZXRPcmlnaW4sIERPTVdpbmRvdyogc291cmNlLCBFeGNl
cHRpb25Db2RlJiBlYykKQEAgLTE4NTgsNCArMTg2MSwxMyBAQCBET01VUkwqIERPTVdpbmRvdzo6
d2Via2l0VVJMKCkgY29uc3QKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKFFVT1RBKQorU3RvcmFn
ZUluZm8qIERPTVdpbmRvdzo6d2Via2l0U3RvcmFnZUluZm8oKSBjb25zdAoreworICAgIGlmICgh
bV9zdG9yYWdlSW5mbykKKyAgICAgICAgbV9zdG9yYWdlSW5mbyA9IFN0b3JhZ2VJbmZvOjpjcmVh
dGUoKTsKKyAgICByZXR1cm4gbV9zdG9yYWdlSW5mby5nZXQoKTsKK30KKyNlbmRpZgorCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAppbmRleCAwMWU1M2JiLi4x
NTRlNzlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKQEAgLTY0LDYgKzY0LDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFNjcmVlbjsKICAgICBjbGFzcyBTZXJpYWxpemVkU2Ny
aXB0VmFsdWU7CiAgICAgY2xhc3MgU3RvcmFnZTsKKyAgICBjbGFzcyBTdG9yYWdlSW5mbzsKICAg
ICBjbGFzcyBTdHlsZU1lZGlhOwogICAgIGNsYXNzIFdlYktpdFBvaW50OwogCkBAIC0zOTksNiAr
NDAwLDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgTm90aWZpY2F0aW9uQ2VudGVy
KiB3ZWJraXROb3RpZmljYXRpb25zKCkgY29uc3Q7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShRVU9U
QSkKKyAgICAgICAgU3RvcmFnZUluZm8qIHdlYmtpdFN0b3JhZ2VJbmZvKCkgY29uc3Q7CisjZW5k
aWYKKwogI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgICAgIERPTUFw
cGxpY2F0aW9uQ2FjaGUqIGFwcGxpY2F0aW9uQ2FjaGUoKSBjb25zdDsKICAgICAgICAgRE9NQXBw
bGljYXRpb25DYWNoZSogb3B0aW9uYWxBcHBsaWNhdGlvbkNhY2hlKCkgY29uc3QgeyByZXR1cm4g
bV9hcHBsaWNhdGlvbkNhY2hlLmdldCgpOyB9CkBAIC00OTEsNiArNDk2LDEwIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICNpZiBFTkFCTEUoQkxPQikKICAgICAgICAgbXV0YWJsZSBSZWZQdHI8RE9N
VVJMPiBtX2RvbVVSTDsKICNlbmRpZgorCisjaWYgRU5BQkxFKFFVT1RBKQorICAgICAgICBtdXRh
YmxlIFJlZlB0cjxTdG9yYWdlSW5mbz4gbV9zdG9yYWdlSW5mbzsKKyNlbmRpZgogICAgIH07CiAK
ICAgICBpbmxpbmUgU3RyaW5nIERPTVdpbmRvdzo6c3RhdHVzKCkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmlkbAppbmRleCBjZDQ5ZWM4Li42N2Q3NzEwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01X
aW5kb3cuaWRsCkBAIC03ODYsNiArNzg2LDggQEAgbW9kdWxlIHdpbmRvdyB7CiAKICAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIFtDb25kaXRpb25hbD1CTE9CXSBET01VUkwgd2Via2l0VVJMOwog
CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9UVVPVEFdIFN0b3JhZ2VJ
bmZvIHdlYmtpdFN0b3JhZ2VJbmZvOworCiAjZW5kaWYgLy8gZGVmaW5lZChMQU5HVUFHRV9KQVZB
U0NSSVBUKQogCiAjaWYgZGVmaW5lZChWOF9CSU5ESU5HKSAmJiBWOF9CSU5ESU5HCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VJbmZvLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3N0b3JhZ2UvU3RvcmFnZUluZm8uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjk3NDk5YzYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdl
L1N0b3JhZ2VJbmZvLmNwcApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
KyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisj
aWYgRU5BQkxFKFFVT1RBKQorCisjaW5jbHVkZSAiU3RvcmFnZUluZm8uaCIKKworI2luY2x1ZGUg
Ik5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgor
I2luY2x1ZGUgIlN0b3JhZ2VJbmZvRXJyb3JDYWxsYmFjay5oIgorI2luY2x1ZGUgIlN0b3JhZ2VJ
bmZvUXVvdGFDYWxsYmFjay5oIgorI2luY2x1ZGUgIlN0b3JhZ2VJbmZvVXNhZ2VDYWxsYmFjay5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1N0b3JhZ2VJbmZvOjpTdG9yYWdlSW5mbygpCit7
Cit9CisKK1N0b3JhZ2VJbmZvOjp+U3RvcmFnZUluZm8oKQoreworfQorCisjaWYgIVBMQVRGT1JN
KENIUk9NSVVNKQordm9pZCBTdG9yYWdlSW5mbzo6cXVlcnlVc2FnZUFuZFF1b3RhKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBpbnQsIFBhc3NSZWZQdHI8U3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNr
PiwgUGFzc1JlZlB0cjxTdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2s+KQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisKK3ZvaWQgU3RvcmFnZUluZm86OnJlcXVlc3RRdW90YShTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiwgaW50LCB1bnNpZ25lZCBsb25nIGxvbmcsIFBhc3NSZWZQdHI8U3RvcmFn
ZUluZm9RdW90YUNhbGxiYWNrPiwgUGFzc1JlZlB0cjxTdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2s+
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFFVT1RBKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3RvcmFnZS9TdG9yYWdlSW5mby5oIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9y
YWdlSW5mby5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQyYTMyMmMKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VJbmZvLmgKQEAg
LTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICog
bWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICog
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAq
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgU3RvcmFnZUluZm9faAorI2RlZmluZSBTdG9yYWdlSW5mb19o
CisKKyNpZiBFTkFCTEUoUVVPVEEpCisKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKK2NsYXNzIFN0b3JhZ2VJbmZvRXJyb3JDYWxsYmFjazsK
K2NsYXNzIFN0b3JhZ2VJbmZvUXVvdGFDYWxsYmFjazsKK2NsYXNzIFN0b3JhZ2VJbmZvVXNhZ2VD
YWxsYmFjazsKKworY2xhc3MgU3RvcmFnZUluZm8gOiBwdWJsaWMgUmVmQ291bnRlZDxTdG9yYWdl
SW5mbz4geworcHVibGljOgorICAgIGVudW0gU3RvcmFnZVR5cGUgeworICAgICAgICBURU1QT1JB
UlksCisgICAgICAgIFBFUlNJU1RFTlQsCisgICAgfTsKKworICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFN0b3JhZ2VJbmZvPiBjcmVhdGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBTdG9yYWdlSW5mbygpKTsKKyAgICB9CisKKyAgICB+U3RvcmFnZUluZm8oKTsKKworICAgIHZv
aWQgcXVlcnlVc2FnZUFuZFF1b3RhKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBpbnQgc3RvcmFn
ZVR5cGUsIFBhc3NSZWZQdHI8U3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrPiwgUGFzc1JlZlB0cjxT
dG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2s+KTsKKyAgICB2b2lkIHJlcXVlc3RRdW90YShTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiwgaW50IHN0b3JhZ2VUeXBlLCB1bnNpZ25lZCBsb25nIGxvbmcgbmV3
UXVvdGFJbkJ5dGVzLCBQYXNzUmVmUHRyPFN0b3JhZ2VJbmZvUXVvdGFDYWxsYmFjaz4sIFBhc3NS
ZWZQdHI8U3RvcmFnZUluZm9FcnJvckNhbGxiYWNrPik7CisKK3ByaXZhdGU6CisgICAgU3RvcmFn
ZUluZm8oKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJM
RShRVU9UQSkKKworI2VuZGlmIC8vIFN0b3JhZ2VJbmZvX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUluZm8uaWRsIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9T
dG9yYWdlSW5mby5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmMyZWRm
NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUluZm8u
aWRsCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCisgKi8KKworbW9kdWxlIHN0b3JhZ2UgeworICAgIGludGVyZmFjZSBbCisgICAg
ICAgIENvbmRpdGlvbmFsPVFVT1RBLAorICAgICAgICBPbWl0Q29uc3RydWN0b3IsCisgICAgICAg
IEdlbmVyYXRlTmF0aXZlQ29udmVydGVyLAorICAgICAgICBHZW5lcmF0ZVRvSlMsCisgICAgICAg
IE5vU3RhdGljVGFibGVzCisgICAgXSBTdG9yYWdlSW5mbyB7CisgICAgICAgIGNvbnN0IHVuc2ln
bmVkIHNob3J0IFRFTVBPUkFSWSA9IDA7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFBF
UlNJU1RFTlQgPSAxOworCisgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0
XSB2b2lkIHF1ZXJ5VXNhZ2VBbmRRdW90YShpbiB1bnNpZ25lZCBzaG9ydCBzdG9yYWdlVHlwZSwg
aW4gW0NhbGxiYWNrLCBPcHRpb25hbF0gU3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrIHVzYWdlQ2Fs
bGJhY2ssIGluIFtDYWxsYmFjaywgT3B0aW9uYWxdIFN0b3JhZ2VJbmZvRXJyb3JDYWxsYmFjayBl
cnJvckNhbGxiYWNrKTsKKyAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRd
IHZvaWQgcmVxdWVzdFF1b3RhKGluIHVuc2lnbmVkIHNob3J0IHN0b3JhZ2VUeXBlLCBpbiB1bnNp
Z25lZCBsb25nIGxvbmcgbmV3UXVvdGFJbkJ5dGVzLCBpbiBbQ2FsbGJhY2ssIE9wdGlvbmFsXSBT
dG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2sgcXVvdGFDYWxsYmFjaywgaW4gW0NhbGxiYWNrLCBPcHRp
b25hbF0gU3RvcmFnZUluZm9FcnJvckNhbGxiYWNrIGVycm9yQ2FsbGJhY2spOworICAgIH07Cit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VJbmZvRXJyb3JDYWxs
YmFjay5oIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2su
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZTNkNzVlCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2su
aApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
CisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBTdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2tfaAorI2Rl
ZmluZSBTdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2tfaAorCisjaWYgRU5BQkxFKFFVT1RBKQorCisj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBET01Db3JlRXhjZXB0aW9uOworCitjbGFzcyBTdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2sgOiBw
dWJsaWMgUmVmQ291bnRlZDxTdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2s+IHsKK3B1YmxpYzoKKyAg
ICB2aXJ0dWFsIH5TdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2soKSB7IH0KKyAgICB2aXJ0dWFsIGJv
b2wgaGFuZGxlRXZlbnQoRE9NQ29yZUV4Y2VwdGlvbiopID0gMDsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShRVU9UQSkKKworI2VuZGlmIC8vIFN0b3Jh
Z2VJbmZvRXJyb3JDYWxsYmFja19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdl
L1N0b3JhZ2VJbmZvRXJyb3JDYWxsYmFjay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0
b3JhZ2VJbmZvRXJyb3JDYWxsYmFjay5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uNjZjMzMxNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2Uv
U3RvcmFnZUluZm9FcnJvckNhbGxiYWNrLmlkbApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1
dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBu
YW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
KyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIHN0b3Jh
Z2UgeworICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFsPVFVT1RBLAorICAgICAg
ICBDYWxsYmFjaworICAgIF0gU3RvcmFnZUluZm9FcnJvckNhbGxiYWNrIHsKKyAgICAgICAgYm9v
bGVhbiBoYW5kbGVFdmVudChpbiBET01Db3JlRXhjZXB0aW9uIGVycm9yKTsKKyAgICB9OworfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlSW5mb1F1b3RhQ2FsbGJh
Y2suaCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUluZm9RdW90YUNhbGxiYWNrLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjZmZGU5OQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUluZm9RdW90YUNhbGxiYWNrLmgK
QEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBB
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
REFNQUdFLgorICovCisKKyNpZm5kZWYgU3RvcmFnZUluZm9RdW90YUNhbGxiYWNrX2gKKyNkZWZp
bmUgU3RvcmFnZUluZm9RdW90YUNhbGxiYWNrX2gKKworI2lmIEVOQUJMRShRVU9UQSkKKworI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
U3RvcmFnZUluZm9RdW90YUNhbGxiYWNrIDogcHVibGljIFJlZkNvdW50ZWQ8U3RvcmFnZUluZm9R
dW90YUNhbGxiYWNrPiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+U3RvcmFnZUluZm9RdW90YUNh
bGxiYWNrKCkgeyB9CisgICAgdmlydHVhbCBib29sIGhhbmRsZUV2ZW50KHVuc2lnbmVkIGxvbmcg
bG9uZyBncmFudGVkUXVvdGFJbkJ5dGVzKSA9IDA7Cit9OworCit9IC8vIG5hbWVzcGFjZQorCisj
ZW5kaWYgLy8gRU5BQkxFKFFVT1RBKQorCisjZW5kaWYgLy8gU3RvcmFnZUluZm9RdW90YUNhbGxi
YWNrX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUluZm9RdW90
YUNhbGxiYWNrLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUluZm9RdW90YUNh
bGxiYWNrLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YzcwODVkCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlSW5mb1F1b3Rh
Q2FsbGJhY2suaWRsCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICog
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgc3RvcmFnZSB7CisgICAgaW50ZXJm
YWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9UVVPVEEsCisgICAgICAgIENhbGxiYWNrCisgICAg
XSBTdG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2sgeworICAgICAgICBib29sZWFuIGhhbmRsZUV2ZW50
KGluIHVuc2lnbmVkIGxvbmcgbG9uZyBncmFudGVkUXVvdGFJbkJ5dGVzKTsKKyAgICB9OworfQor
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VJbmZvVXNhZ2VDYWxs
YmFjay5oIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlSW5mb1VzYWdlQ2FsbGJhY2su
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ODMyNTBhCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlSW5mb1VzYWdlQ2FsbGJhY2su
aApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
CisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBTdG9yYWdlSW5mb1VzYWdlQ2FsbGJhY2tfaAorI2Rl
ZmluZSBTdG9yYWdlSW5mb1VzYWdlQ2FsbGJhY2tfaAorCisjaWYgRU5BQkxFKFFVT1RBKQorCisj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBTdG9yYWdlSW5mb1VzYWdlQ2FsbGJhY2sgOiBwdWJsaWMgUmVmQ291bnRlZDxTdG9yYWdlSW5m
b1VzYWdlQ2FsbGJhY2s+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5TdG9yYWdlSW5mb1VzYWdl
Q2FsbGJhY2soKSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlRXZlbnQobG9uZyBsb25nIGN1
cnJlbnRVc2FnZUluQnl0ZXMsIGxvbmcgbG9uZyBjdXJyZW50UXVvdGFJbkJ5dGVzKSA9IDA7Cit9
OworCit9IC8vIG5hbWVzcGFjZQorCisjZW5kaWYgLy8gRU5BQkxFKFFVT1RBKQorCisjZW5kaWYg
Ly8gU3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N0b3JhZ2UvU3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N0
b3JhZ2UvU3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi40YWI5OGM5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
c3RvcmFnZS9TdG9yYWdlSW5mb1VzYWdlQ2FsbGJhY2suaWRsCkBAIC0wLDAgKzEsMzkgQEAKKy8q
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
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1
bGUgc3RvcmFnZSB7CisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9UVVPVEEs
CisgICAgICAgIENhbGxiYWNrCisgICAgXSBTdG9yYWdlSW5mb1VzYWdlQ2FsbGJhY2sgeworICAg
ICAgICBib29sZWFuIGhhbmRsZUV2ZW50KGluIGxvbmcgbG9uZyBjdXJyZW50VXNhZ2VJbkJ5dGVz
LCBpbiBsb25nIGxvbmcgY3VycmVudFF1b3RhSW5CeXRlcyk7CisgICAgfTsKK30KKwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwppbmRleCA1ZTQ5NTk0Li4wM2MyYjg3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDExLTA0LTA2ICBLaW51a28gWWFzdWRhICA8
a2ludWtvQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBFeHBvc2UgdW5pZmllZCBRdW90YSBBUEkgaWYgUVVPVEEgYnVpbGQgZmxh
ZyBpcyBlbmFibGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD01NzkyNworCisgICAgICAgICogV2ViS2l0Lmd5cDogQWRkZWQgbmV3IGZpbGUgZW50cmll
cy4KKyAgICAgICAgKiBzcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHA6IEFkZGVkIHN0b3JhZ2Ug
dHlwZSBlbnVtIGFzc2VydGlvbnMuCisgICAgICAgICogc3JjL1N0b3JhZ2VJbmZvQ2hyb21pdW0u
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VJbmZvOjpxdWVyeVVzYWdlQW5k
UXVvdGEpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZUluZm86OnJlcXVlc3RRdW90YSk6Cisg
ICAgICAgICogc3JjL1dlYlN0b3JhZ2VRdW90YUNhbGxiYWNrc0ltcGwuY3BwOiBBZGRlZC4gQW4g
aW1wbGVtZW50YXRpb24gb2YKKyAgICAgICAgV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzLgorICAg
ICAgICAoV2ViS2l0OjpXZWJTdG9yYWdlUXVvdGFDYWxsYmFja3NJbXBsOjpXZWJTdG9yYWdlUXVv
dGFDYWxsYmFja3NJbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViU3RvcmFnZVF1b3RhQ2FsbGJh
Y2tzSW1wbDo6fldlYlN0b3JhZ2VRdW90YUNhbGxiYWNrc0ltcGwpOgorICAgICAgICAoV2ViS2l0
OjpXZWJTdG9yYWdlUXVvdGFDYWxsYmFja3NJbXBsOjpkaWRRdWVyeVN0b3JhZ2VVc2FnZUFuZFF1
b3RhKToKKyAgICAgICAgKFdlYktpdDo6V2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzSW1wbDo6d2Fz
R3JhbnRlZFN0b3JhZ2VRdW90YSk6CisgICAgICAgIChXZWJLaXQ6OldlYlN0b3JhZ2VRdW90YUNh
bGxiYWNrc0ltcGw6OmRpZEZhaWwpOgorICAgICAgICAqIHNyYy9XZWJTdG9yYWdlUXVvdGFDYWxs
YmFja3NJbXBsLmg6IEFkZGVkLgorCiAyMDExLTA0LTA1ICBLaW51a28gWWFzdWRhICA8a2ludWtv
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vV2ViS2l0Lmd5cAppbmRleCA1MGQxZTMyLi5hYzIzZGE4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9XZWJLaXQuZ3lwCkBAIC00MDIsNiArNDAyLDcgQEAKICAgICAgICAgICAgICAgICAn
c3JjL1N0b3JhZ2VFdmVudERpc3BhdGNoZXJDaHJvbWl1bS5jcHAnLAogICAgICAgICAgICAgICAg
ICdzcmMvU3RvcmFnZUV2ZW50RGlzcGF0Y2hlckltcGwuY3BwJywKICAgICAgICAgICAgICAgICAn
c3JjL1N0b3JhZ2VFdmVudERpc3BhdGNoZXJJbXBsLmgnLAorICAgICAgICAgICAgICAgICdzcmMv
U3RvcmFnZUluZm9DaHJvbWl1bS5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvU3RvcmFnZU5h
bWVzcGFjZVByb3h5LmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9TdG9yYWdlTmFtZXNwYWNl
UHJveHkuaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9UZW1wb3JhcnlHbHVlLmgnLApAQCAtNTU0
LDYgKzU1NSw4IEBACiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJTdG9yYWdlRXZlbnREaXNwYXRj
aGVySW1wbC5oJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYlN0b3JhZ2VOYW1lc3BhY2VJbXBs
LmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJTdG9yYWdlTmFtZXNwYWNlSW1wbC5oJywK
KyAgICAgICAgICAgICAgICAnc3JjL1dlYlN0b3JhZ2VRdW90YUNhbGxiYWNrc0ltcGwuY3BwJywK
KyAgICAgICAgICAgICAgICAnc3JjL1dlYlN0b3JhZ2VRdW90YUNhbGxiYWNrc0ltcGwuaCcsCiAg
ICAgICAgICAgICAgICAgJ3NyYy9XZWJTdHJpbmcuY3BwJywKICAgICAgICAgICAgICAgICAnc3Jj
L1dlYlRleHRSdW4uY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYlRocmVhZFNhZmVEYXRh
LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRj
aGluZ0VudW1zLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5n
RW51bXMuY3BwCmluZGV4IDdiYWFmOGEuLmExY2Y3YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwCkBAIC01Miw2ICs1Miw3IEBA
CiAjaW5jbHVkZSAiUGFzdGVib2FyZFByaXZhdGUuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUN1cnNv
ci5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSAiU3RvcmFnZUluZm8uaCIKICNp
bmNsdWRlICJUZXh0QWZmaW5pdHkuaCIKICNpbmNsdWRlICJVc2VyQ29udGVudFR5cGVzLmgiCiAj
aW5jbHVkZSAiVXNlclNjcmlwdFR5cGVzLmgiCkBAIC03NSw2ICs3Niw3IEBACiAjaW5jbHVkZSAi
V2ViTm90aWZpY2F0aW9uUHJlc2VudGVyLmgiCiAjaW5jbHVkZSAiV2ViU2Nyb2xsYmFyLmgiCiAj
aW5jbHVkZSAiV2ViU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJXZWJTdG9yYWdlUXVvdGFUeXBlLmgi
CiAjaW5jbHVkZSAiV2ViVGV4dEFmZmluaXR5LmgiCiAjaW5jbHVkZSAiV2ViVGV4dENhc2VTZW5z
aXRpdml0eS5oIgogI2luY2x1ZGUgIldlYlRleHRDaGVja2luZ1Jlc3VsdC5oIgpAQCAtNDE0LDYg
KzQxNiwxMSBAQCBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYkdlb2xvY2F0aW9uRXJy
b3I6OkVycm9yUG9zaXRpb25VbmF2YWlsYWJsZSwgR2VvbAogQ09NUElMRV9BU1NFUlRfTUFUQ0hJ
TkdfRU5VTShXZWJUZXh0Q2hlY2tpbmdSZXN1bHQ6OkVycm9yU3BlbGxpbmcsIERvY3VtZW50TWFy
a2VyOjpTcGVsbGluZyk7CiBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYlRleHRDaGVj
a2luZ1Jlc3VsdDo6RXJyb3JHcmFtbWFyLCBEb2N1bWVudE1hcmtlcjo6R3JhbW1hcik7CiAKKyNp
ZiBFTkFCTEUoUVVPVEEpCitDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYlN0b3JhZ2VR
dW90YVR5cGVUZW1wb3JhcnksIFN0b3JhZ2VJbmZvOjpURU1QT1JBUlkpOworQ09NUElMRV9BU1NF
UlRfTUFUQ0hJTkdfRU5VTShXZWJTdG9yYWdlUXVvdGFUeXBlUGVyc2lzdGVudCwgU3RvcmFnZUlu
Zm86OlBFUlNJU1RFTlQpOworI2VuZGlmCisKICNpZiBPUyhEQVJXSU4pCiBDT01QSUxFX0FTU0VS
VF9NQVRDSElOR19FTlVNKFdlYlRoZW1lRW5naW5lOjpTdGF0ZURpc2FibGVkLCBQbGF0Zm9ybUJy
aWRnZTo6U3RhdGVEaXNhYmxlZCk7CiBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYlRo
ZW1lRW5naW5lOjpTdGF0ZUluYWN0aXZlLCBQbGF0Zm9ybUJyaWRnZTo6U3RhdGVJbmFjdGl2ZSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9TdG9yYWdlSW5mb0Nocm9t
aXVtLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1N0b3JhZ2VJbmZvQ2hyb21pdW0u
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFkZTA0ZjEKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9TdG9yYWdlSW5mb0Nocm9taXVt
LmNwcApAQCAtMCwwICsxLDcyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
KyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlN0b3Jh
Z2VJbmZvLmgiCisKKyNpZiBFTkFCTEUoUVVPVEEpCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgor
I2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRlICJTdG9yYWdlSW5m
b0Vycm9yQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJTdG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2suaCIK
KyNpbmNsdWRlICJTdG9yYWdlSW5mb1VzYWdlQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJXZWJGcmFt
ZUNsaWVudC5oIgorI2luY2x1ZGUgIldlYkZyYW1lSW1wbC5oIgorI2luY2x1ZGUgIldlYlN0b3Jh
Z2VRdW90YUNhbGxiYWNrc0ltcGwuaCIKKyNpbmNsdWRlICJXZWJTdG9yYWdlUXVvdGFUeXBlLmgi
CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9p
ZCBTdG9yYWdlSW5mbzo6cXVlcnlVc2FnZUFuZFF1b3RhKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQsIGludCBzdG9yYWdlVHlwZSwgUGFzc1JlZlB0cjxTdG9yYWdlSW5mb1VzYWdlQ2Fs
bGJhY2s+IHN1Y2Nlc3NDYWxsYmFjaywgUGFzc1JlZlB0cjxTdG9yYWdlSW5mb0Vycm9yQ2FsbGJh
Y2s+IGVycm9yQ2FsbGJhY2spCit7CisgICAgQVNTRVJUKGNvbnRleHQpOworICAgIGlmIChjb250
ZXh0LT5pc0RvY3VtZW50KCkpIHsKKyAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gc3RhdGlj
X2Nhc3Q8RG9jdW1lbnQqPihjb250ZXh0KTsKKyAgICAgICAgV2ViRnJhbWVJbXBsKiB3ZWJGcmFt
ZSA9IFdlYkZyYW1lSW1wbDo6ZnJvbUZyYW1lKGRvY3VtZW50LT5mcmFtZSgpKTsKKyAgICAgICAg
d2ViRnJhbWUtPmNsaWVudCgpLT5xdWVyeVN0b3JhZ2VVc2FnZUFuZFF1b3RhKHdlYkZyYW1lLCBz
dGF0aWNfY2FzdDxXZWJTdG9yYWdlUXVvdGFUeXBlPihzdG9yYWdlVHlwZSksIG5ldyBXZWJTdG9y
YWdlUXVvdGFDYWxsYmFja3NJbXBsKHN1Y2Nlc3NDYWxsYmFjaywgZXJyb3JDYWxsYmFjaykpOwor
ICAgIH0KK30KKwordm9pZCBTdG9yYWdlSW5mbzo6cmVxdWVzdFF1b3RhKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQsIGludCBzdG9yYWdlVHlwZSwgdW5zaWduZWQgbG9uZyBsb25nIG5l
d1F1b3RhSW5CeXRlcywgUGFzc1JlZlB0cjxTdG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2s+IHN1Y2Nl
c3NDYWxsYmFjaywgUGFzc1JlZlB0cjxTdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2s+IGVycm9yQ2Fs
bGJhY2spCit7CisgICAgQVNTRVJUKGNvbnRleHQpOworICAgIGlmIChjb250ZXh0LT5pc0RvY3Vt
ZW50KCkpIHsKKyAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gc3RhdGljX2Nhc3Q8RG9jdW1l
bnQqPihjb250ZXh0KTsKKyAgICAgICAgV2ViRnJhbWVJbXBsKiB3ZWJGcmFtZSA9IFdlYkZyYW1l
SW1wbDo6ZnJvbUZyYW1lKGRvY3VtZW50LT5mcmFtZSgpKTsKKyAgICAgICAgd2ViRnJhbWUtPmNs
aWVudCgpLT5yZXF1ZXN0U3RvcmFnZVF1b3RhKHdlYkZyYW1lLCBzdGF0aWNfY2FzdDxXZWJTdG9y
YWdlUXVvdGFUeXBlPihzdG9yYWdlVHlwZSksIG5ld1F1b3RhSW5CeXRlcywgbmV3IFdlYlN0b3Jh
Z2VRdW90YUNhbGxiYWNrc0ltcGwoc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrKSk7Cisg
ICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoUVVP
VEEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTdG9yYWdlUXVv
dGFDYWxsYmFja3NJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlN0b3Jh
Z2VRdW90YUNhbGxiYWNrc0ltcGwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmI4MjM4YjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJTdG9yYWdlUXVvdGFDYWxsYmFja3NJbXBsLmNwcApAQCAtMCwwICsxLDg3IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRp
c3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
KyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlN0b3JhZ2VRdW90YUNhbGxiYWNrc0ltcGwuaCIK
KworI2lmIEVOQUJMRShRVU9UQSkKKworI2luY2x1ZGUgIkRPTUNvcmVFeGNlcHRpb24uaCIKKyNp
bmNsdWRlICJTdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJTdG9yYWdlSW5m
b1F1b3RhQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJTdG9yYWdlSW5mb1VzYWdlQ2FsbGJhY2suaCIK
KwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJT
dG9yYWdlUXVvdGFDYWxsYmFja3NJbXBsOjpXZWJTdG9yYWdlUXVvdGFDYWxsYmFja3NJbXBsKFBh
c3NSZWZQdHI8V2ViQ29yZTo6U3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrPiB1c2FnZUNhbGxiYWNr
LCBQYXNzUmVmUHRyPFdlYkNvcmU6OlN0b3JhZ2VJbmZvRXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxs
YmFjaykKKyAgICA6IG1fdXNhZ2VDYWxsYmFjayh1c2FnZUNhbGxiYWNrKQorICAgICwgbV9lcnJv
ckNhbGxiYWNrKGVycm9yQ2FsbGJhY2spCit7Cit9CisKK1dlYlN0b3JhZ2VRdW90YUNhbGxiYWNr
c0ltcGw6OldlYlN0b3JhZ2VRdW90YUNhbGxiYWNrc0ltcGwoUGFzc1JlZlB0cjxXZWJDb3JlOjpT
dG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2s+IHF1b3RhQ2FsbGJhY2ssIFBhc3NSZWZQdHI8V2ViQ29y
ZTo6U3RvcmFnZUluZm9FcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrKQorICAgIDogbV9xdW90
YUNhbGxiYWNrKHF1b3RhQ2FsbGJhY2spCisgICAgLCBtX2Vycm9yQ2FsbGJhY2soZXJyb3JDYWxs
YmFjaykKK3sKK30KKworV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzSW1wbDo6fldlYlN0b3JhZ2VR
dW90YUNhbGxiYWNrc0ltcGwoKQoreworfQorCit2b2lkIFdlYlN0b3JhZ2VRdW90YUNhbGxiYWNr
c0ltcGw6OmRpZFF1ZXJ5U3RvcmFnZVVzYWdlQW5kUXVvdGEodW5zaWduZWQgbG9uZyBsb25nIHVz
YWdlSW5CeXRlcywgdW5zaWduZWQgbG9uZyBsb25nIHF1b3RhSW5CeXRlcykKK3sKKyAgICBpZiAo
bV91c2FnZUNhbGxiYWNrKQorICAgICAgICBtX3VzYWdlQ2FsbGJhY2stPmhhbmRsZUV2ZW50KHVz
YWdlSW5CeXRlcywgcXVvdGFJbkJ5dGVzKTsKKyAgICBkZWxldGUgdGhpczsKK30KKwordm9pZCBX
ZWJTdG9yYWdlUXVvdGFDYWxsYmFja3NJbXBsOjp3YXNHcmFudGVkU3RvcmFnZVF1b3RhKHVuc2ln
bmVkIGxvbmcgbG9uZyBncmFudGVkUXVvdGFJbkJ5dGVzKQoreworICAgIGlmIChtX3F1b3RhQ2Fs
bGJhY2spCisgICAgICAgIG1fcXVvdGFDYWxsYmFjay0+aGFuZGxlRXZlbnQoZ3JhbnRlZFF1b3Rh
SW5CeXRlcyk7CisgICAgZGVsZXRlIHRoaXM7Cit9CisKK3ZvaWQgV2ViU3RvcmFnZVF1b3RhQ2Fs
bGJhY2tzSW1wbDo6ZGlkRmFpbChXZWJFeGNlcHRpb25Db2RlIGVycm9yKQoreworICAgIGlmICht
X2Vycm9yQ2FsbGJhY2spIHsKKyAgICAgICAgRXhjZXB0aW9uQ29kZURlc2NyaXB0aW9uIGRlc2Ny
aXB0aW9uOworICAgICAgICBnZXRFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24oZXJyb3IsIGRlc2Ny
aXB0aW9uKTsKKyAgICAgICAgbV9lcnJvckNhbGxiYWNrLT5oYW5kbGVFdmVudChET01Db3JlRXhj
ZXB0aW9uOjpjcmVhdGUoZGVzY3JpcHRpb24pLmdldCgpKTsKKyAgICB9CisgICAgZGVsZXRlIHRo
aXM7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKFFVT1RB
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU3RvcmFnZVF1b3Rh
Q2FsbGJhY2tzSW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU3RvcmFnZVF1
b3RhQ2FsbGJhY2tzSW1wbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIx
MzRhODcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJT
dG9yYWdlUXVvdGFDYWxsYmFja3NJbXBsLmgKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRp
b24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisg
KiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViU3Rv
cmFnZVF1b3RhQ2FsbGJhY2tzSW1wbF9oCisjZGVmaW5lIFdlYlN0b3JhZ2VRdW90YUNhbGxiYWNr
c0ltcGxfaAorCisjaW5jbHVkZSAiV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzLmgiCisjaW5jbHVk
ZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKK2NsYXNzIFN0b3JhZ2VJbmZvRXJyb3JDYWxsYmFjazsKK2NsYXNzIFN0b3Jh
Z2VJbmZvUXVvdGFDYWxsYmFjazsKK2NsYXNzIFN0b3JhZ2VJbmZvVXNhZ2VDYWxsYmFjazsKK30K
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlN0b3JhZ2VRdW90YUNhbGxiYWNrc0lt
cGwgOiBwdWJsaWMgV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzIHsKK3B1YmxpYzoKKyAgICBXZWJT
dG9yYWdlUXVvdGFDYWxsYmFja3NJbXBsKFBhc3NSZWZQdHI8V2ViQ29yZTo6U3RvcmFnZUluZm9V
c2FnZUNhbGxiYWNrPiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTdG9yYWdlSW5mb0Vycm9yQ2FsbGJh
Y2s+KTsKKyAgICBXZWJTdG9yYWdlUXVvdGFDYWxsYmFja3NJbXBsKFBhc3NSZWZQdHI8V2ViQ29y
ZTo6U3RvcmFnZUluZm9RdW90YUNhbGxiYWNrPiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTdG9yYWdl
SW5mb0Vycm9yQ2FsbGJhY2s+KTsKKworICAgIHZpcnR1YWwgfldlYlN0b3JhZ2VRdW90YUNhbGxi
YWNrc0ltcGwoKTsKKworICAgIHZpcnR1YWwgdm9pZCBkaWRRdWVyeVN0b3JhZ2VVc2FnZUFuZFF1
b3RhKHVuc2lnbmVkIGxvbmcgbG9uZyB1c2FnZUluQnl0ZXMsIHVuc2lnbmVkIGxvbmcgbG9uZyBx
dW90YUluQnl0ZXMpOworICAgIHZpcnR1YWwgdm9pZCB3YXNHcmFudGVkU3RvcmFnZVF1b3RhKHVu
c2lnbmVkIGxvbmcgbG9uZyBncmFudGVkUXVvdGFJbkJ5dGVzKTsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkRmFpbChXZWJFeGNlcHRpb25Db2RlIGVycm9yKTsKKworcHJpdmF0ZToKKyAgICBSZWZQdHI8
V2ViQ29yZTo6U3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrPiBtX3VzYWdlQ2FsbGJhY2s7CisgICAg
UmVmUHRyPFdlYkNvcmU6OlN0b3JhZ2VJbmZvUXVvdGFDYWxsYmFjaz4gbV9xdW90YUNhbGxiYWNr
OworICAgIFJlZlB0cjxXZWJDb3JlOjpTdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2s+IG1fZXJyb3JD
YWxsYmFjazsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViU3Rv
cmFnZVF1b3RhQ2FsbGJhY2tzSW1wbF9oCg==
</data>
<flag name="review"
          id="80940"
          type_id="1"
          status="-"
          setter="levin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88568</attachid>
            <date>2011-04-06 21:46:01 -0700</date>
            <delta_ts>2011-04-06 21:50:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch</filename>
            <type>text/plain</type>
            <size>37049</size>
            <attacher name="Kinuko Yasuda">kinuko</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNjljNjdlMi4uZTgxMzVkYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTE5NDIsNiArMTk0MiwxMSBAQCBJRiAoRU5BQkxFX1BST0dSRVNTX1RBRykKICAg
ICApCiBFTkRJRiAoKQogCitpZiAoRU5BQkxFX1FVT1RBKQorICAgIExJU1QoQVBQRU5EIFdlYkNv
cmVfU09VUkNFUworICAgICAgICBzdG9yYWdlL1N0b3JhZ2VJbmZvLmNwcAorICAgICkKK0VORElG
ICgpCiAKIAogIyBNb2R1bGVzIHRoYXQgdGhlIGJpbmRpbmdzIGdlbmVyYXRvciBzY3JpcHRzIG1h
eSB1c2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCBmZmRjZTQzLi5kOTE4OTBhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzAgQEAKKzIwMTEtMDQtMDYgIEtpbnVrbyBZYXN1ZGEgIDxraW51a29AY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBt
b2NrIGltcGxlbWVudGF0aW9uIGFuZCBwbHVtYmluZyBjb2RlIGZvciB1bmlmaWVkIFF1b3RhIEFQ
SQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTc5MjcK
KworICAgICAgICBBZGRlZCBtb2NrIGltcGxlbWVudGF0aW9uIGFuZCBzb21lIHBsdW1iaW5nIGNv
ZGUgZm9yIHRoZSBxdW90YSBBUEksCisgICAgICAgIHRoYXQgaXMgYmFzZWQgb24gdGhlIGRpc2N1
c3Npb24gb24gcHVibGljLXdlYmFwcHM6CisgICAgICAgIGh0dHA6Ly9saXN0cy53My5vcmcvQXJj
aGl2ZXMvUHVibGljL3B1YmxpYy13ZWJhcHBzLzIwMTFKYW5NYXIvMDM0Ni5odG1sCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzOiB0ZXN0cyB3aWxsIGJlIGFkZGVkIHdoZW4gd2UgZXhwb3NlIHRoZSBB
UEkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogQWRkZWQgbmV3IGZpbGUgZW50cmllcy4K
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5jcHA6IEFkZGVkIG5ldyBmaWxlIGVudHJpZXMuCisg
ICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZTogQWRkZWQgbmV3IGZpbGUgZW50cmllcy4KKyAg
ICAgICAgKiBHTlVtYWtlZmlsZS5hbTogQWRkZWQgbmV3IGZpbGUgZW50cmllcy4KKyAgICAgICAg
KiBXZWJDb3JlLmd5cGk6IEFkZGVkIG5ldyBmaWxlIGVudHJpZXMuCisgICAgICAgICogV2ViQ29y
ZS5wcm86IEFkZGVkIG5ldyBmaWxlIGVudHJpZXMuCisgICAgICAgICogV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2o6IEFkZGVkIG5ldyBmaWxlIGVudHJpZXMuCisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGRlZCBuZXcgZmlsZSBlbnRyaWVzLgorICAg
ICAgICAqIHN0b3JhZ2UvU3RvcmFnZUluZm8uY3BwOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdl
L1N0b3JhZ2VJbmZvLmg6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZUluZm9FcnJv
ckNhbGxiYWNrLmg6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZUluZm9RdW90YUNh
bGxiYWNrLmg6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZUluZm9Vc2FnZUNhbGxi
YWNrLmg6IEFkZGVkLgorCiAyMDExLTA0LTA1ICBMdWtlIE1hY3BoZXJzb24gICA8bWFjcGhlcnNv
bkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292Lgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5hbQppbmRleCBjODQ3NGQxLi41YzE0ZTMxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5hbQpAQCAtMzI0MiwxNyArMzI0MiwyMiBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJj
ZS9XZWJDb3JlL3N0b3JhZ2UvU1FMVHJhbnNhY3Rpb25TeW5jQ2FsbGJhY2suaCBcCiAJU291cmNl
L1dlYkNvcmUvc3RvcmFnZS9TUUxUcmFuc2FjdGlvblN5bmMuY3BwIFwKIAlTb3VyY2UvV2ViQ29y
ZS9zdG9yYWdlL1NRTFRyYW5zYWN0aW9uU3luYy5oIFwKKwlTb3VyY2UvV2ViQ29yZS9zdG9yYWdl
L1N0b3JhZ2UuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2UuaCBcCiAJU291
cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlQXJlYS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9zdG9y
YWdlL1N0b3JhZ2VBcmVhSW1wbC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFn
ZUFyZWFJbXBsLmggXAogCVNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmNw
cCBcCiAJU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlQXJlYVN5bmMuaCBcCi0JU291cmNl
L1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvc3RvcmFnZS9T
dG9yYWdlRXZlbnQuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VFdmVudC5o
IFwKIAlTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VFdmVudERpc3BhdGNoZXIuY3BwIFwK
IAlTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VFdmVudERpc3BhdGNoZXIuaCBcCi0JU291
cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlRXZlbnQuaCBcCi0JU291cmNlL1dlYkNvcmUvc3Rv
cmFnZS9TdG9yYWdlLmggXAorCVNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUluZm8uY3Bw
IFwKKwlTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VJbmZvLmggXAorCVNvdXJjZS9XZWJD
b3JlL3N0b3JhZ2UvU3RvcmFnZUluZm9FcnJvckNhbGxiYWNrLmggXAorCVNvdXJjZS9XZWJDb3Jl
L3N0b3JhZ2UvU3RvcmFnZUluZm9RdW90YUNhbGxiYWNrLmggXAorCVNvdXJjZS9XZWJDb3JlL3N0
b3JhZ2UvU3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrLmggXAogCVNvdXJjZS9XZWJDb3JlL3N0b3Jh
Z2UvU3RvcmFnZU1hcC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZU1hcC5o
IFwKIAlTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2UuY3BwIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQppbmRleCBiNTE1NjkyLi41MjJmZGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC01NTEy
LDYgKzU1MTIsMTEgQEAKICAgICAgICAgICAgICdzdG9yYWdlL1N0b3JhZ2VFdmVudC5oJywKICAg
ICAgICAgICAgICdzdG9yYWdlL1N0b3JhZ2VFdmVudERpc3BhdGNoZXIuY3BwJywKICAgICAgICAg
ICAgICdzdG9yYWdlL1N0b3JhZ2VFdmVudERpc3BhdGNoZXIuaCcsCisgICAgICAgICAgICAnc3Rv
cmFnZS9TdG9yYWdlSW5mby5jcHAnLAorICAgICAgICAgICAgJ3N0b3JhZ2UvU3RvcmFnZUluZm8u
aCcsCisgICAgICAgICAgICAnc3RvcmFnZS9TdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2suaCcsCisg
ICAgICAgICAgICAnc3RvcmFnZS9TdG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2suaCcsCisgICAgICAg
ICAgICAnc3RvcmFnZS9TdG9yYWdlSW5mb1VzYWdlQ2FsbGJhY2suaCcsCiAgICAgICAgICAgICAn
c3RvcmFnZS9TdG9yYWdlTWFwLmNwcCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9TdG9yYWdlTWFw
LmgnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZS5jcHAnLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnBybwppbmRleCAyNzNkNDMzLi5mNmQ3NjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnBybworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtMjkyMSw2ICsy
OTIxLDE3IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9JTlBVVF9TUEVFQ0g9MSkgewogICAg
ICAgICByZW5kZXJpbmcvUmVuZGVySW5wdXRTcGVlY2guY3BwCiB9CiAKK2NvbnRhaW5zKERFRklO
RVMsIEVOQUJMRV9RVU9UQT0xKSB7CisgICAgSEVBREVSUyArPSBcCisgICAgICAgIHN0b3JhZ2Uv
U3RvcmFnZUluZm8uaCBcCisgICAgICAgIHN0b3JhZ2UvU3RvcmFnZUluZm9FcnJvckNhbGxiYWNr
LmggXAorICAgICAgICBzdG9yYWdlL1N0b3JhZ2VJbmZvUXVvdGFDYWxsYmFjay5oIFwKKyAgICAg
ICAgc3RvcmFnZS9TdG9yYWdlSW5mb1VzYWdlQ2FsbGJhY2suaAorCisgICAgU09VUkNFUyArPSBc
CisgICAgICAgIHN0b3JhZ2UvU3RvcmFnZUluZm8uY3BwCit9CisKIGNvbnRhaW5zKERFRklORVMs
IEVOQUJMRV9WSURFTz0xKSB7CiAgICAgU09VUkNFUyArPSBcCiAgICAgICAgIGh0bWwvSFRNTEF1
ZGlvRWxlbWVudC5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvagppbmRleCBmNThmN2ZlLi43YTVlOWM5IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNjYwNTgsNiArNjYwNTgsMjYgQEAKIAkJCQk+
CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3RvcmFnZVxTdG9y
YWdlSW5mby5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXHN0b3JhZ2VcU3RvcmFnZUluZm8uaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8Rmls
ZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3RvcmFnZVxTdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2su
aCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3Rv
cmFnZVxTdG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2suaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8
RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3RvcmFnZVxTdG9yYWdlSW5mb1VzYWdlQ2FsbGJh
Y2suaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5c
c3RvcmFnZVxTdG9yYWdlTWFwLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMTVhMWM4MS4u
MzFhZDc1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMjY0OSw2ICsyNjQ5LDExIEBACiAJCTg2MjQzRDAxMTFCQzMxRjcwMEND
MDA2QSAvKiBKU0FycmF5QnVmZmVyVmlld0hlbHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODYyNDNEMDAxMUJDMzFGNzAwQ0MwMDZBIC8qIEpTQXJy
YXlCdWZmZXJWaWV3SGVscGVyLmggKi87IH07CiAJCTg2RDk4MkY3MTI1QzE1NDAwMEFEOUUzRCAv
KiBEb2N1bWVudFRpbWluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODZEOTgyRjYxMjVDMTU0MDAwQUQ5RTNEIC8qIERvY3VtZW50VGltaW5nLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODkwQUUwRTEx
MjU2QTA3OTAwRjU5NjhDIC8qIERpcmVjdG9yeVJlYWRlckJhc2UuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5MEFFMEUwMTI1NkEwNzkwMEY1OTY4QyAv
KiBEaXJlY3RvcnlSZWFkZXJCYXNlLmggKi87IH07CisJCTg5MkNGMTkyMTM0QzYyMEQwMEFBRURB
MSAvKiBTdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5MkNGMThEMTM0QzYyMEQwMEFBRURBMSAvKiBTdG9yYWdl
SW5mb0Vycm9yQ2FsbGJhY2suaCAqLzsgfTsKKwkJODkyQ0YxOTMxMzRDNjIwRDAwQUFFREExIC8q
IFN0b3JhZ2VJbmZvUXVvdGFDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODkyQ0YxOEUxMzRDNjIwRDAwQUFFREExIC8qIFN0b3JhZ2VJbmZv
UXVvdGFDYWxsYmFjay5oICovOyB9OworCQk4OTJDRjE5NDEzNEM2MjBEMDBBQUVEQTEgLyogU3Rv
cmFnZUluZm9Vc2FnZUNhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4OTJDRjE4RjEzNEM2MjBEMDBBQUVEQTEgLyogU3RvcmFnZUluZm9Vc2Fn
ZUNhbGxiYWNrLmggKi87IH07CisJCTg5MkNGMUVDMTM0QzY1NTUwMEFBRURBMSAvKiBTdG9yYWdl
SW5mby5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
OTJDRjFFQTEzNEM2NTU1MDBBQUVEQTEgLyogU3RvcmFnZUluZm8uY3BwICovOyB9OworCQk4OTJD
RjFFRDEzNEM2NTU1MDBBQUVEQTEgLyogU3RvcmFnZUluZm8uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5MkNGMUVCMTM0QzY1NTUwMEFBRURBMSAvKiBT
dG9yYWdlSW5mby5oICovOyB9OwogCQk4OTNDNDdBNzEyMzg5MDhCMDAyQjNEODYgLyogRmlsZUNh
bGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
OTNDNDdBNTEyMzg5MDhCMDAyQjNEODYgLyogRmlsZUNhbGxiYWNrLmggKi87IH07CiAJCTg5M0M0
N0E4MTIzODkwOEIwMDJCM0Q4NiAvKiBGaWxlV3JpdGVyQ2FsbGJhY2suaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5M0M0N0E2MTIzODkwOEIwMDJCM0Q4
NiAvKiBGaWxlV3JpdGVyQ2FsbGJhY2suaCAqLzsgfTsKIAkJODkzQzQ3QjcxMjM4QTA5OTAwMkIz
RDg2IC8qIEpTRmlsZUNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg5M0M0N0I1MTIzOEEwOTkwMDJCM0Q4NiAvKiBKU0ZpbGVDYWxsYmFj
ay5jcHAgKi87IH07CkBAIC05MTU5LDYgKzkxNjQsMTEgQEAKIAkJODYyNDNEMDAxMUJDMzFGNzAw
Q0MwMDZBIC8qIEpTQXJyYXlCdWZmZXJWaWV3SGVscGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTQXJyYXlCdWZmZXJWaWV3SGVscGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTg2RDk4MkY2MTI1QzE1NDAwMEFEOUUzRCAvKiBEb2N1bWVudFRpbWluZy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEb2N1bWVudFRpbWluZy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4OTBBRTBFMDEyNTZBMDc5MDBGNTk2OEMgLyogRGly
ZWN0b3J5UmVhZGVyQmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBEaXJl
Y3RvcnlSZWFkZXJCYXNlLmg7IHBhdGggPSBmaWxlYXBpL0RpcmVjdG9yeVJlYWRlckJhc2UuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODkyQ0YxOEQxMzRDNjIwRDAwQUFFREExIC8q
IFN0b3JhZ2VJbmZvRXJyb3JDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJODkyQ0YxOEUxMzRDNjIwRDAwQUFFREExIC8qIFN0b3JhZ2VJbmZvUXVvdGFDYWxsYmFj
ay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdG9yYWdlSW5mb1F1b3RhQ2Fs
bGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODkyQ0YxOEYxMzRDNjIwRDAw
QUFFREExIC8qIFN0b3JhZ2VJbmZvVXNhZ2VDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTdG9yYWdlSW5mb1VzYWdlQ2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJODkyQ0YxRUExMzRDNjU1NTAwQUFFREExIC8qIFN0b3JhZ2VJbmZvLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0b3JhZ2VJbmZvLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODkyQ0YxRUIxMzRDNjU1NTAwQUFFREExIC8q
IFN0b3JhZ2VJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0b3JhZ2VJ
bmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg5M0M0N0E1MTIzODkwOEIwMDJC
M0Q4NiAvKiBGaWxlQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
RmlsZUNhbGxiYWNrLmg7IHBhdGggPSBmaWxlYXBpL0ZpbGVDYWxsYmFjay5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk4OTNDNDdBNjEyMzg5MDhCMDAyQjNEODYgLyogRmlsZVdyaXRl
ckNhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEZpbGVXcml0ZXJD
YWxsYmFjay5oOyBwYXRoID0gZmlsZWFwaS9GaWxlV3JpdGVyQ2FsbGJhY2suaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODkzQzQ3QjUxMjM4QTA5OTAwMkIzRDg2IC8qIEpTRmlsZUNh
bGxiYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRmlsZUNh
bGxiYWNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzMTA1LDYgKzEzMTE1
LDExIEBACiAJCQkJNTFFMEJBQkQwREE1NTQ4NDAwQTlFNDE3IC8qIFN0b3JhZ2VFdmVudC5pZGwg
Ki8sCiAJCQkJQzVFOUI2NzYxMDY5N0UxMzAwQzdCQjFBIC8qIFN0b3JhZ2VFdmVudERpc3BhdGNo
ZXIuY3BwICovLAogCQkJCUM1RUJERDgxMTA1RURERUMwMDU2ODE2RiAvKiBTdG9yYWdlRXZlbnRE
aXNwYXRjaGVyLmggKi8sCisJCQkJODkyQ0YxRUExMzRDNjU1NTAwQUFFREExIC8qIFN0b3JhZ2VJ
bmZvLmNwcCAqLywKKwkJCQk4OTJDRjFFQjEzNEM2NTU1MDBBQUVEQTEgLyogU3RvcmFnZUluZm8u
aCAqLywKKwkJCQk4OTJDRjE4RDEzNEM2MjBEMDBBQUVEQTEgLyogU3RvcmFnZUluZm9FcnJvckNh
bGxiYWNrLmggKi8sCisJCQkJODkyQ0YxOEUxMzRDNjIwRDAwQUFFREExIC8qIFN0b3JhZ2VJbmZv
UXVvdGFDYWxsYmFjay5oICovLAorCQkJCTg5MkNGMThGMTM0QzYyMEQwMEFBRURBMSAvKiBTdG9y
YWdlSW5mb1VzYWdlQ2FsbGJhY2suaCAqLywKIAkJCQk1MUUwQkIzNzBEQTVBQ0I2MDBBOUU0MTcg
LyogU3RvcmFnZU1hcC5jcHAgKi8sCiAJCQkJNTFFMEJCMzYwREE1QUNCNjAwQTlFNDE3IC8qIFN0
b3JhZ2VNYXAuaCAqLywKIAkJCQlDNTBEMEU4MDBGRjQyNzI5MDBBQzI2NDQgLyogU3RvcmFnZU5h
bWVzcGFjZS5jcHAgKi8sCkBAIC0yMjc4OCw2ICsyMjgwMywxMCBAQAogCQkJCTkzRjE5OUVEMDgy
NDVFNTkwMDFFOUFCQyAvKiBYU0xUUHJvY2Vzc29yLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUJF
NTEyRTBDRjZDNTEyMDAyRUE5NTkgLyogWFNMVFVuaWNvZGVTb3J0LmggaW4gSGVhZGVycyAqLywK
IAkJCQk5NzdFMkUwRjEyRjBGQzlDMDBDMTMzNzkgLyogWFNTRmlsdGVyLmggaW4gSGVhZGVycyAq
LywKKwkJCQk4OTJDRjE5MjEzNEM2MjBEMDBBQUVEQTEgLyogU3RvcmFnZUluZm9FcnJvckNhbGxi
YWNrLmggaW4gSGVhZGVycyAqLywKKwkJCQk4OTJDRjE5MzEzNEM2MjBEMDBBQUVEQTEgLyogU3Rv
cmFnZUluZm9RdW90YUNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKKwkJCQk4OTJDRjE5NDEzNEM2
MjBEMDBBQUVEQTEgLyogU3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywK
KwkJCQk4OTJDRjFFRDEzNEM2NTU1MDBBQUVEQTEgLyogU3RvcmFnZUluZm8uaCBpbiBIZWFkZXJz
ICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwog
CQl9OwpAQCAtMjU0NjgsNiArMjU0ODcsNyBAQAogCQkJCTkzRjE5QjA1MDgyNDVFNTkwMDFFOUFC
QyAvKiBYU0xUUHJvY2Vzc29yTGlieHNsdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMUJFNTEy
RDBDRjZDNTEyMDAyRUE5NTkgLyogWFNMVFVuaWNvZGVTb3J0LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTk3N0UyRTBFMTJGMEZDOUMwMEMxMzM3OSAvKiBYU1NGaWx0ZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJODkyQ0YxRUMxMzRDNjU1NTAwQUFFREExIC8qIFN0b3JhZ2VJbmZvLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Npbmcg
PSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlSW5m
by5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VJbmZvLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYzg5MzBjCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlSW5mby5jcHAKQEAgLTAsMCArMSw2OCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBk
aXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
CisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShRVU9UQSkKKworI2luY2x1ZGUgIlN0b3JhZ2VJ
bmZvLmgiCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlN0b3JhZ2VJ
bmZvRXJyb3JDYWxsYmFjay5oIgorI2luY2x1ZGUgIlN0b3JhZ2VJbmZvUXVvdGFDYWxsYmFjay5o
IgorI2luY2x1ZGUgIlN0b3JhZ2VJbmZvVXNhZ2VDYWxsYmFjay5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CisKK1N0b3JhZ2VJbmZvOjpT
dG9yYWdlSW5mbygpCit7Cit9CisKKyNpZiAhUExBVEZPUk0oQ0hST01JVU0pCit2b2lkIFN0b3Jh
Z2VJbmZvOjpxdWVyeVVzYWdlQW5kUXVvdGEoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGludCwg
UGFzc1JlZlB0cjxTdG9yYWdlSW5mb1VzYWdlQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPFN0b3JhZ2VJ
bmZvRXJyb3JDYWxsYmFjaz4pCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBT
dG9yYWdlSW5mbzo6cmVxdWVzdFF1b3RhKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBpbnQsIHVu
c2lnbmVkIGxvbmcgbG9uZywgUGFzc1JlZlB0cjxTdG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2s+LCBQ
YXNzUmVmUHRyPFN0b3JhZ2VJbmZvRXJyb3JDYWxsYmFjaz4pCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKK30KKyNlbmRpZgorCitTdG9yYWdlSW5mbzo6flN0b3JhZ2VJbmZvKCkKK3sKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFFVT1RBKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlSW5mby5oIGIvU291cmNlL1dlYkNv
cmUvc3RvcmFnZS9TdG9yYWdlSW5mby5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmE3NDI2ODkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0
b3JhZ2VJbmZvLmgKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
CisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgU3RvcmFnZUluZm9faAorI2RlZmlu
ZSBTdG9yYWdlSW5mb19oCisKKyNpZiBFTkFCTEUoUVVPVEEpCisKKyNpbmNsdWRlIDx3dGYvUGFz
c1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKK2NsYXNzIFN0b3JhZ2VJbmZv
RXJyb3JDYWxsYmFjazsKK2NsYXNzIFN0b3JhZ2VJbmZvUXVvdGFDYWxsYmFjazsKK2NsYXNzIFN0
b3JhZ2VJbmZvVXNhZ2VDYWxsYmFjazsKKworY2xhc3MgU3RvcmFnZUluZm8gOiBwdWJsaWMgUmVm
Q291bnRlZDxTdG9yYWdlSW5mbz4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0
b3JhZ2VJbmZvPiBjcmVhdGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBT
dG9yYWdlSW5mbygpKTsKKyAgICB9CisKKyAgICB2b2lkIHF1ZXJ5VXNhZ2VBbmRRdW90YShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiwgaW50IHN0b3JhZ2VUeXBlLCBQYXNzUmVmUHRyPFN0b3JhZ2VJ
bmZvVXNhZ2VDYWxsYmFjaz4sIFBhc3NSZWZQdHI8U3RvcmFnZUluZm9FcnJvckNhbGxiYWNrPik7
CisgICAgdm9pZCByZXF1ZXN0UXVvdGEoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGludCBzdG9y
YWdlVHlwZSwgdW5zaWduZWQgbG9uZyBsb25nIG5ld1F1b3RhSW5CeXRlcywgUGFzc1JlZlB0cjxT
dG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPFN0b3JhZ2VJbmZvRXJyb3JDYWxs
YmFjaz4pOworCitwcml2YXRlOgorICAgIFN0b3JhZ2VJbmZvKCk7CisgICAgflN0b3JhZ2VJbmZv
KCk7CisKKyAgICBmcmllbmQgY2xhc3MgUmVmQ291bnRlZDxTdG9yYWdlSW5mbz47Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoUVVPVEEpCisKKyNlbmRp
ZiAvLyBTdG9yYWdlSW5mb19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0
b3JhZ2VJbmZvRXJyb3JDYWxsYmFjay5oIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdl
SW5mb0Vycm9yQ2FsbGJhY2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42
ZTNkNzVlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdl
SW5mb0Vycm9yQ2FsbGJhY2suaApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAq
ICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBTdG9yYWdlSW5mb0Vy
cm9yQ2FsbGJhY2tfaAorI2RlZmluZSBTdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2tfaAorCisjaWYg
RU5BQkxFKFFVT1RBKQorCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBET01Db3JlRXhjZXB0aW9uOworCitjbGFzcyBTdG9yYWdlSW5m
b0Vycm9yQ2FsbGJhY2sgOiBwdWJsaWMgUmVmQ291bnRlZDxTdG9yYWdlSW5mb0Vycm9yQ2FsbGJh
Y2s+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5TdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2soKSB7
IH0KKyAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlRXZlbnQoRE9NQ29yZUV4Y2VwdGlvbiopID0gMDsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShRVU9UQSkK
KworI2VuZGlmIC8vIFN0b3JhZ2VJbmZvRXJyb3JDYWxsYmFja19oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VJbmZvUXVvdGFDYWxsYmFjay5oIGIvU291cmNlL1dl
YkNvcmUvc3RvcmFnZS9TdG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2suaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5mNmZkZTk5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvc3RvcmFnZS9TdG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2suaApAQCAtMCwwICsxLDUwIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICog
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
KyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
CisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmbmRlZiBTdG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2tfaAorI2RlZmluZSBTdG9yYWdlSW5mb1F1
b3RhQ2FsbGJhY2tfaAorCisjaWYgRU5BQkxFKFFVT1RBKQorCisjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTdG9yYWdlSW5mb1F1b3Rh
Q2FsbGJhY2sgOiBwdWJsaWMgUmVmQ291bnRlZDxTdG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2s+IHsK
K3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5TdG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2soKSB7IH0KKyAg
ICB2aXJ0dWFsIGJvb2wgaGFuZGxlRXZlbnQodW5zaWduZWQgbG9uZyBsb25nIGdyYW50ZWRRdW90
YUluQnl0ZXMpID0gMDsKK307CisKK30gLy8gbmFtZXNwYWNlCisKKyNlbmRpZiAvLyBFTkFCTEUo
UVVPVEEpCisKKyNlbmRpZiAvLyBTdG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2tfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlSW5mb1VzYWdlQ2FsbGJhY2suaCBiL1Nv
dXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzgzMjUwYQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrLmgKQEAgLTAsMCAr
MSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0Ogor
ICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisg
KiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgU3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrX2gKKyNkZWZpbmUgU3RvcmFn
ZUluZm9Vc2FnZUNhbGxiYWNrX2gKKworI2lmIEVOQUJMRShRVU9UQSkKKworI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3RvcmFnZUlu
Zm9Vc2FnZUNhbGxiYWNrIDogcHVibGljIFJlZkNvdW50ZWQ8U3RvcmFnZUluZm9Vc2FnZUNhbGxi
YWNrPiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+U3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrKCkg
eyB9CisgICAgdmlydHVhbCBib29sIGhhbmRsZUV2ZW50KGxvbmcgbG9uZyBjdXJyZW50VXNhZ2VJ
bkJ5dGVzLCBsb25nIGxvbmcgY3VycmVudFF1b3RhSW5CeXRlcykgPSAwOworfTsKKworfSAvLyBu
YW1lc3BhY2UKKworI2VuZGlmIC8vIEVOQUJMRShRVU9UQSkKKworI2VuZGlmIC8vIFN0b3JhZ2VJ
bmZvVXNhZ2VDYWxsYmFja19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDVlNDk1OTQu
Ljk1NzA2NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIw
MTEtMDQtMDYgIEtpbnVrbyBZYXN1ZGEgIDxraW51a29AY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBtb2NrIGltcGxlbWVu
dGF0aW9uIGFuZCBwbHVtYmluZyBjb2RlIGZvciB1bmlmaWVkIFF1b3RhIEFQSQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTc5MjcKKworICAgICAgICBB
ZGRlZCBwbHVtYmluZyBjb2RlIGZvciB0aGUgcXVvdGEgQVBJLCB0aGF0IGlzIGJhc2VkIG9uIHRo
ZQorICAgICAgICBkaXNjdXNzaW9uIG9uIHB1YmxpYy13ZWJhcHBzOgorICAgICAgICBodHRwOi8v
bGlzdHMudzMub3JnL0FyY2hpdmVzL1B1YmxpYy9wdWJsaWMtd2ViYXBwcy8yMDExSmFuTWFyLzAz
NDYuaHRtbAorCisgICAgICAgICogV2ViS2l0Lmd5cDogQWRkZWQgbmV3IGZpbGUgZW50cmllcy4K
KyAgICAgICAgKiBzcmMvU3RvcmFnZUluZm9DaHJvbWl1bS5jcHA6IEFkZGVkLgorICAgICAgICAq
IHNyYy9XZWJTdG9yYWdlUXVvdGFDYWxsYmFja3NJbXBsLmNwcDogQWRkZWQuIEFuIGltcGxlbWVu
dGF0aW9uIG9mCisgICAgICAgIFdlYlN0b3JhZ2VRdW90YUNhbGxiYWNrcy4KKyAgICAgICAgKiBz
cmMvV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzSW1wbC5oOiBBZGRlZC4KKwogMjAxMS0wNC0wNSAg
S2ludWtvIFlhc3VkYSAgPGtpbnVrb0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dl
YktpdC5neXAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKaW5kZXggNTBkMWUz
Mi4uYWMyM2RhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lw
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cApAQCAtNDAyLDYgKzQwMiw3
IEBACiAgICAgICAgICAgICAgICAgJ3NyYy9TdG9yYWdlRXZlbnREaXNwYXRjaGVyQ2hyb21pdW0u
Y3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1N0b3JhZ2VFdmVudERpc3BhdGNoZXJJbXBsLmNw
cCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9TdG9yYWdlRXZlbnREaXNwYXRjaGVySW1wbC5oJywK
KyAgICAgICAgICAgICAgICAnc3JjL1N0b3JhZ2VJbmZvQ2hyb21pdW0uY3BwJywKICAgICAgICAg
ICAgICAgICAnc3JjL1N0b3JhZ2VOYW1lc3BhY2VQcm94eS5jcHAnLAogICAgICAgICAgICAgICAg
ICdzcmMvU3RvcmFnZU5hbWVzcGFjZVByb3h5LmgnLAogICAgICAgICAgICAgICAgICdzcmMvVGVt
cG9yYXJ5R2x1ZS5oJywKQEAgLTU1NCw2ICs1NTUsOCBAQAogICAgICAgICAgICAgICAgICdzcmMv
V2ViU3RvcmFnZUV2ZW50RGlzcGF0Y2hlckltcGwuaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9X
ZWJTdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViU3Rv
cmFnZU5hbWVzcGFjZUltcGwuaCcsCisgICAgICAgICAgICAgICAgJ3NyYy9XZWJTdG9yYWdlUXVv
dGFDYWxsYmFja3NJbXBsLmNwcCcsCisgICAgICAgICAgICAgICAgJ3NyYy9XZWJTdG9yYWdlUXVv
dGFDYWxsYmFja3NJbXBsLmgnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViU3RyaW5nLmNwcCcs
CiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJUZXh0UnVuLmNwcCcsCiAgICAgICAgICAgICAgICAg
J3NyYy9XZWJUaHJlYWRTYWZlRGF0YS5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvU3RvcmFnZUluZm9DaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9TdG9yYWdlSW5mb0Nocm9taXVtLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi40Yjk5NjMxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvU3RvcmFnZUluZm9DaHJvbWl1bS5jcHAKQEAgLTAsMCArMSw4MyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0
cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisg
KiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJTdG9yYWdlSW5mby5oIgorCisjaWYgRU5BQkxFKFFVT1RB
KQorCisjaW5jbHVkZSAiRE9NQ29yZUV4Y2VwdGlvbi5oIgorI2luY2x1ZGUgIkRvY3VtZW50Lmgi
CisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgIlN0b3JhZ2VJ
bmZvRXJyb3JDYWxsYmFjay5oIgorI2luY2x1ZGUgIlN0b3JhZ2VJbmZvUXVvdGFDYWxsYmFjay5o
IgorI2luY2x1ZGUgIlN0b3JhZ2VJbmZvVXNhZ2VDYWxsYmFjay5oIgorI2luY2x1ZGUgIldlYkZy
YW1lQ2xpZW50LmgiCisjaW5jbHVkZSAiV2ViRnJhbWVJbXBsLmgiCisjaW5jbHVkZSAiV2ViU3Rv
cmFnZVF1b3RhQ2FsbGJhY2tzSW1wbC5oIgorI2luY2x1ZGUgIldlYlN0b3JhZ2VRdW90YVR5cGUu
aCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2
b2lkIFN0b3JhZ2VJbmZvOjpxdWVyeVVzYWdlQW5kUXVvdGEoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCwgaW50IHN0b3JhZ2VUeXBlLCBQYXNzUmVmUHRyPFN0b3JhZ2VJbmZvVXNhZ2VD
YWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNrLCBQYXNzUmVmUHRyPFN0b3JhZ2VJbmZvRXJyb3JDYWxs
YmFjaz4gZXJyb3JDYWxsYmFjaykKK3sKKyAgICBBU1NFUlQoY29udGV4dCk7CisgICAgaWYgKGNv
bnRleHQtPmlzRG9jdW1lbnQoKSkgeworICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBzdGF0
aWNfY2FzdDxEb2N1bWVudCo+KGNvbnRleHQpOworICAgICAgICBXZWJGcmFtZUltcGwqIHdlYkZy
YW1lID0gV2ViRnJhbWVJbXBsOjpmcm9tRnJhbWUoZG9jdW1lbnQtPmZyYW1lKCkpOworICAgICAg
ICB3ZWJGcmFtZS0+Y2xpZW50KCktPnF1ZXJ5U3RvcmFnZVVzYWdlQW5kUXVvdGEod2ViRnJhbWUs
IHN0YXRpY19jYXN0PFdlYlN0b3JhZ2VRdW90YVR5cGU+KHN0b3JhZ2VUeXBlKSwgV2ViU3RvcmFn
ZVF1b3RhQ2FsbGJhY2tzSW1wbDo6Y3JlYXRlRm9yVXNhZ2VDYWxsYmFjayhzdWNjZXNzQ2FsbGJh
Y2ssIGVycm9yQ2FsbGJhY2spKTsKKyAgICB9IGVsc2UgaWYgKGVycm9yQ2FsbGJhY2spIHsKKyAg
ICAgICAgLy8gVGhpcyBtdXN0IG5vdCBiZSBjYWxsZWQgaW4gdGhlIHdvcmtlciBjb250ZXh0Lgor
ICAgICAgICBFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24gZGVzY3JpcHRpb247CisgICAgICAgIGdl
dEV4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbihOT1RfU1VQUE9SVEVEX0VSUiwgZGVzY3JpcHRpb24p
OworICAgICAgICBlcnJvckNhbGxiYWNrLT5oYW5kbGVFdmVudChET01Db3JlRXhjZXB0aW9uOjpj
cmVhdGUoZGVzY3JpcHRpb24pLmdldCgpKTsKKyAgICB9Cit9CisKK3ZvaWQgU3RvcmFnZUluZm86
OnJlcXVlc3RRdW90YShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBpbnQgc3RvcmFn
ZVR5cGUsIHVuc2lnbmVkIGxvbmcgbG9uZyBuZXdRdW90YUluQnl0ZXMsIFBhc3NSZWZQdHI8U3Rv
cmFnZUluZm9RdW90YUNhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssIFBhc3NSZWZQdHI8U3RvcmFn
ZUluZm9FcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrKQoreworICAgIEFTU0VSVChjb250ZXh0
KTsKKyAgICBpZiAoY29udGV4dC0+aXNEb2N1bWVudCgpKSB7CisgICAgICAgIERvY3VtZW50KiBk
b2N1bWVudCA9IHN0YXRpY19jYXN0PERvY3VtZW50Kj4oY29udGV4dCk7CisgICAgICAgIFdlYkZy
YW1lSW1wbCogd2ViRnJhbWUgPSBXZWJGcmFtZUltcGw6OmZyb21GcmFtZShkb2N1bWVudC0+ZnJh
bWUoKSk7CisgICAgICAgIHdlYkZyYW1lLT5jbGllbnQoKS0+cmVxdWVzdFN0b3JhZ2VRdW90YSh3
ZWJGcmFtZSwgc3RhdGljX2Nhc3Q8V2ViU3RvcmFnZVF1b3RhVHlwZT4oc3RvcmFnZVR5cGUpLCBu
ZXdRdW90YUluQnl0ZXMsIFdlYlN0b3JhZ2VRdW90YUNhbGxiYWNrc0ltcGw6OmNyZWF0ZUZvclF1
b3RhQ2FsbGJhY2soc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrKSk7CisgICAgfSBlbHNl
IGlmIChlcnJvckNhbGxiYWNrKSB7CisgICAgICAgIC8vIFRoaXMgbXVzdCBub3QgYmUgY2FsbGVk
IGluIHRoZSB3b3JrZXIgY29udGV4dC4KKyAgICAgICAgRXhjZXB0aW9uQ29kZURlc2NyaXB0aW9u
IGRlc2NyaXB0aW9uOworICAgICAgICBnZXRFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24oTk9UX1NV
UFBPUlRFRF9FUlIsIGRlc2NyaXB0aW9uKTsKKyAgICAgICAgZXJyb3JDYWxsYmFjay0+aGFuZGxl
RXZlbnQoRE9NQ29yZUV4Y2VwdGlvbjo6Y3JlYXRlKGRlc2NyaXB0aW9uKS5nZXQoKSk7CisgICAg
fQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoUVVPVEEp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTdG9yYWdlUXVvdGFD
YWxsYmFja3NJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlN0b3JhZ2VR
dW90YUNhbGxiYWNrc0ltcGwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmI4MjM4YjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJTdG9yYWdlUXVvdGFDYWxsYmFja3NJbXBsLmNwcApAQCAtMCwwICsxLDg3IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3Ry
aWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlN0b3JhZ2VRdW90YUNhbGxiYWNrc0ltcGwuaCIKKwor
I2lmIEVOQUJMRShRVU9UQSkKKworI2luY2x1ZGUgIkRPTUNvcmVFeGNlcHRpb24uaCIKKyNpbmNs
dWRlICJTdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJTdG9yYWdlSW5mb1F1
b3RhQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJTdG9yYWdlSW5mb1VzYWdlQ2FsbGJhY2suaCIKKwor
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJTdG9y
YWdlUXVvdGFDYWxsYmFja3NJbXBsOjpXZWJTdG9yYWdlUXVvdGFDYWxsYmFja3NJbXBsKFBhc3NS
ZWZQdHI8V2ViQ29yZTo6U3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrPiB1c2FnZUNhbGxiYWNrLCBQ
YXNzUmVmUHRyPFdlYkNvcmU6OlN0b3JhZ2VJbmZvRXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFj
aykKKyAgICA6IG1fdXNhZ2VDYWxsYmFjayh1c2FnZUNhbGxiYWNrKQorICAgICwgbV9lcnJvckNh
bGxiYWNrKGVycm9yQ2FsbGJhY2spCit7Cit9CisKK1dlYlN0b3JhZ2VRdW90YUNhbGxiYWNrc0lt
cGw6OldlYlN0b3JhZ2VRdW90YUNhbGxiYWNrc0ltcGwoUGFzc1JlZlB0cjxXZWJDb3JlOjpTdG9y
YWdlSW5mb1F1b3RhQ2FsbGJhY2s+IHF1b3RhQ2FsbGJhY2ssIFBhc3NSZWZQdHI8V2ViQ29yZTo6
U3RvcmFnZUluZm9FcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrKQorICAgIDogbV9xdW90YUNh
bGxiYWNrKHF1b3RhQ2FsbGJhY2spCisgICAgLCBtX2Vycm9yQ2FsbGJhY2soZXJyb3JDYWxsYmFj
aykKK3sKK30KKworV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzSW1wbDo6fldlYlN0b3JhZ2VRdW90
YUNhbGxiYWNrc0ltcGwoKQoreworfQorCit2b2lkIFdlYlN0b3JhZ2VRdW90YUNhbGxiYWNrc0lt
cGw6OmRpZFF1ZXJ5U3RvcmFnZVVzYWdlQW5kUXVvdGEodW5zaWduZWQgbG9uZyBsb25nIHVzYWdl
SW5CeXRlcywgdW5zaWduZWQgbG9uZyBsb25nIHF1b3RhSW5CeXRlcykKK3sKKyAgICBpZiAobV91
c2FnZUNhbGxiYWNrKQorICAgICAgICBtX3VzYWdlQ2FsbGJhY2stPmhhbmRsZUV2ZW50KHVzYWdl
SW5CeXRlcywgcXVvdGFJbkJ5dGVzKTsKKyAgICBkZWxldGUgdGhpczsKK30KKwordm9pZCBXZWJT
dG9yYWdlUXVvdGFDYWxsYmFja3NJbXBsOjp3YXNHcmFudGVkU3RvcmFnZVF1b3RhKHVuc2lnbmVk
IGxvbmcgbG9uZyBncmFudGVkUXVvdGFJbkJ5dGVzKQoreworICAgIGlmIChtX3F1b3RhQ2FsbGJh
Y2spCisgICAgICAgIG1fcXVvdGFDYWxsYmFjay0+aGFuZGxlRXZlbnQoZ3JhbnRlZFF1b3RhSW5C
eXRlcyk7CisgICAgZGVsZXRlIHRoaXM7Cit9CisKK3ZvaWQgV2ViU3RvcmFnZVF1b3RhQ2FsbGJh
Y2tzSW1wbDo6ZGlkRmFpbChXZWJFeGNlcHRpb25Db2RlIGVycm9yKQoreworICAgIGlmIChtX2Vy
cm9yQ2FsbGJhY2spIHsKKyAgICAgICAgRXhjZXB0aW9uQ29kZURlc2NyaXB0aW9uIGRlc2NyaXB0
aW9uOworICAgICAgICBnZXRFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24oZXJyb3IsIGRlc2NyaXB0
aW9uKTsKKyAgICAgICAgbV9lcnJvckNhbGxiYWNrLT5oYW5kbGVFdmVudChET01Db3JlRXhjZXB0
aW9uOjpjcmVhdGUoZGVzY3JpcHRpb24pLmdldCgpKTsKKyAgICB9CisgICAgZGVsZXRlIHRoaXM7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKFFVT1RBKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU3RvcmFnZVF1b3RhQ2Fs
bGJhY2tzSW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU3RvcmFnZVF1b3Rh
Q2FsbGJhY2tzSW1wbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBjYzUx
MTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTdG9y
YWdlUXVvdGFDYWxsYmFja3NJbXBsLmgKQEAgLTAsMCArMSw3OCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24u
CisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViU3RvcmFn
ZVF1b3RhQ2FsbGJhY2tzSW1wbF9oCisjZGVmaW5lIFdlYlN0b3JhZ2VRdW90YUNhbGxiYWNrc0lt
cGxfaAorCisjaW5jbHVkZSAiV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzLmgiCisjaW5jbHVkZSA8
d3RmL1Bhc3NPd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgU3RvcmFnZUluZm9F
cnJvckNhbGxiYWNrOworY2xhc3MgU3RvcmFnZUluZm9RdW90YUNhbGxiYWNrOworY2xhc3MgU3Rv
cmFnZUluZm9Vc2FnZUNhbGxiYWNrOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3Mg
V2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzSW1wbCA6IHB1YmxpYyBXZWJTdG9yYWdlUXVvdGFDYWxs
YmFja3MgeworcHVibGljOgorICAgIHN0YXRpYyBXZWJTdG9yYWdlUXVvdGFDYWxsYmFja3NJbXBs
KiBjcmVhdGVGb3JVc2FnZUNhbGxiYWNrKFBhc3NSZWZQdHI8V2ViQ29yZTo6U3RvcmFnZUluZm9V
c2FnZUNhbGxiYWNrPiB1c2FnZUNhbGxiYWNrLCBQYXNzUmVmUHRyPFdlYkNvcmU6OlN0b3JhZ2VJ
bmZvRXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFjaykKKyAgICB7CisgICAgICAgIC8vIFRoaXMg
cmV0dXJucyBhIGxlYWtlZCBwdHIgKHRoZSBjbGFzcyBpcyBzZWxmLWRlc3RydWN0ZWQpLgorICAg
ICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFdlYlN0b3JhZ2VRdW90YUNhbGxiYWNrc0ltcGwodXNh
Z2VDYWxsYmFjaywgZXJyb3JDYWxsYmFjaykpLmxlYWtQdHIoKTsKKyAgICB9CisKKyAgICBzdGF0
aWMgV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzSW1wbCogY3JlYXRlRm9yUXVvdGFDYWxsYmFjayhQ
YXNzUmVmUHRyPFdlYkNvcmU6OlN0b3JhZ2VJbmZvUXVvdGFDYWxsYmFjaz4gcXVvdGFDYWxsYmFj
aywgUGFzc1JlZlB0cjxXZWJDb3JlOjpTdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2s+IGVycm9yQ2Fs
bGJhY2spCisgICAgeworICAgICAgICAvLyBUaGlzIHJldHVybnMgYSBsZWFrZWQgcHRyICh0aGUg
Y2xhc3MgaXMgc2VsZi1kZXN0cnVjdGVkKS4KKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBX
ZWJTdG9yYWdlUXVvdGFDYWxsYmFja3NJbXBsKHF1b3RhQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2sp
KS5sZWFrUHRyKCk7CisgICAgfQorCisgICAgdmlydHVhbCB+V2ViU3RvcmFnZVF1b3RhQ2FsbGJh
Y2tzSW1wbCgpOworCisgICAgdmlydHVhbCB2b2lkIGRpZFF1ZXJ5U3RvcmFnZVVzYWdlQW5kUXVv
dGEodW5zaWduZWQgbG9uZyBsb25nIHVzYWdlSW5CeXRlcywgdW5zaWduZWQgbG9uZyBsb25nIHF1
b3RhSW5CeXRlcyk7CisgICAgdmlydHVhbCB2b2lkIHdhc0dyYW50ZWRTdG9yYWdlUXVvdGEodW5z
aWduZWQgbG9uZyBsb25nIGdyYW50ZWRRdW90YUluQnl0ZXMpOworICAgIHZpcnR1YWwgdm9pZCBk
aWRGYWlsKFdlYkV4Y2VwdGlvbkNvZGUgZXJyb3IpOworCitwcml2YXRlOgorICAgIFdlYlN0b3Jh
Z2VRdW90YUNhbGxiYWNrc0ltcGwoUGFzc1JlZlB0cjxXZWJDb3JlOjpTdG9yYWdlSW5mb1VzYWdl
Q2FsbGJhY2s+LCBQYXNzUmVmUHRyPFdlYkNvcmU6OlN0b3JhZ2VJbmZvRXJyb3JDYWxsYmFjaz4p
OworICAgIFdlYlN0b3JhZ2VRdW90YUNhbGxiYWNrc0ltcGwoUGFzc1JlZlB0cjxXZWJDb3JlOjpT
dG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPFdlYkNvcmU6OlN0b3JhZ2VJbmZv
RXJyb3JDYWxsYmFjaz4pOworCisgICAgUmVmUHRyPFdlYkNvcmU6OlN0b3JhZ2VJbmZvVXNhZ2VD
YWxsYmFjaz4gbV91c2FnZUNhbGxiYWNrOworICAgIFJlZlB0cjxXZWJDb3JlOjpTdG9yYWdlSW5m
b1F1b3RhQ2FsbGJhY2s+IG1fcXVvdGFDYWxsYmFjazsKKyAgICBSZWZQdHI8V2ViQ29yZTo6U3Rv
cmFnZUluZm9FcnJvckNhbGxiYWNrPiBtX2Vycm9yQ2FsbGJhY2s7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYlN0b3JhZ2VRdW90YUNhbGxiYWNrc0ltcGxfaAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88569</attachid>
            <date>2011-04-06 21:50:30 -0700</date>
            <delta_ts>2011-04-06 22:36:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch</filename>
            <type>text/plain</type>
            <size>37067</size>
            <attacher name="Kinuko Yasuda">kinuko</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNjljNjdlMi4uZTgxMzVkYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTE5NDIsNiArMTk0MiwxMSBAQCBJRiAoRU5BQkxFX1BST0dSRVNTX1RBRykKICAg
ICApCiBFTkRJRiAoKQogCitpZiAoRU5BQkxFX1FVT1RBKQorICAgIExJU1QoQVBQRU5EIFdlYkNv
cmVfU09VUkNFUworICAgICAgICBzdG9yYWdlL1N0b3JhZ2VJbmZvLmNwcAorICAgICkKK0VORElG
ICgpCiAKIAogIyBNb2R1bGVzIHRoYXQgdGhlIGJpbmRpbmdzIGdlbmVyYXRvciBzY3JpcHRzIG1h
eSB1c2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCBmZmRjZTQzLi5kOTE4OTBhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzAgQEAKKzIwMTEtMDQtMDYgIEtpbnVrbyBZYXN1ZGEgIDxraW51a29AY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBt
b2NrIGltcGxlbWVudGF0aW9uIGFuZCBwbHVtYmluZyBjb2RlIGZvciB1bmlmaWVkIFF1b3RhIEFQ
SQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTc5MjcK
KworICAgICAgICBBZGRlZCBtb2NrIGltcGxlbWVudGF0aW9uIGFuZCBzb21lIHBsdW1iaW5nIGNv
ZGUgZm9yIHRoZSBxdW90YSBBUEksCisgICAgICAgIHRoYXQgaXMgYmFzZWQgb24gdGhlIGRpc2N1
c3Npb24gb24gcHVibGljLXdlYmFwcHM6CisgICAgICAgIGh0dHA6Ly9saXN0cy53My5vcmcvQXJj
aGl2ZXMvUHVibGljL3B1YmxpYy13ZWJhcHBzLzIwMTFKYW5NYXIvMDM0Ni5odG1sCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzOiB0ZXN0cyB3aWxsIGJlIGFkZGVkIHdoZW4gd2UgZXhwb3NlIHRoZSBB
UEkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogQWRkZWQgbmV3IGZpbGUgZW50cmllcy4K
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5jcHA6IEFkZGVkIG5ldyBmaWxlIGVudHJpZXMuCisg
ICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZTogQWRkZWQgbmV3IGZpbGUgZW50cmllcy4KKyAg
ICAgICAgKiBHTlVtYWtlZmlsZS5hbTogQWRkZWQgbmV3IGZpbGUgZW50cmllcy4KKyAgICAgICAg
KiBXZWJDb3JlLmd5cGk6IEFkZGVkIG5ldyBmaWxlIGVudHJpZXMuCisgICAgICAgICogV2ViQ29y
ZS5wcm86IEFkZGVkIG5ldyBmaWxlIGVudHJpZXMuCisgICAgICAgICogV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2o6IEFkZGVkIG5ldyBmaWxlIGVudHJpZXMuCisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGRlZCBuZXcgZmlsZSBlbnRyaWVzLgorICAg
ICAgICAqIHN0b3JhZ2UvU3RvcmFnZUluZm8uY3BwOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdl
L1N0b3JhZ2VJbmZvLmg6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZUluZm9FcnJv
ckNhbGxiYWNrLmg6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZUluZm9RdW90YUNh
bGxiYWNrLmg6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZUluZm9Vc2FnZUNhbGxi
YWNrLmg6IEFkZGVkLgorCiAyMDExLTA0LTA1ICBMdWtlIE1hY3BoZXJzb24gICA8bWFjcGhlcnNv
bkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292Lgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5hbQppbmRleCBjODQ3NGQxLi41YzE0ZTMxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5hbQpAQCAtMzI0MiwxNyArMzI0MiwyMiBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJj
ZS9XZWJDb3JlL3N0b3JhZ2UvU1FMVHJhbnNhY3Rpb25TeW5jQ2FsbGJhY2suaCBcCiAJU291cmNl
L1dlYkNvcmUvc3RvcmFnZS9TUUxUcmFuc2FjdGlvblN5bmMuY3BwIFwKIAlTb3VyY2UvV2ViQ29y
ZS9zdG9yYWdlL1NRTFRyYW5zYWN0aW9uU3luYy5oIFwKKwlTb3VyY2UvV2ViQ29yZS9zdG9yYWdl
L1N0b3JhZ2UuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2UuaCBcCiAJU291
cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlQXJlYS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9zdG9y
YWdlL1N0b3JhZ2VBcmVhSW1wbC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFn
ZUFyZWFJbXBsLmggXAogCVNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmNw
cCBcCiAJU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlQXJlYVN5bmMuaCBcCi0JU291cmNl
L1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvc3RvcmFnZS9T
dG9yYWdlRXZlbnQuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VFdmVudC5o
IFwKIAlTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VFdmVudERpc3BhdGNoZXIuY3BwIFwK
IAlTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VFdmVudERpc3BhdGNoZXIuaCBcCi0JU291
cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlRXZlbnQuaCBcCi0JU291cmNlL1dlYkNvcmUvc3Rv
cmFnZS9TdG9yYWdlLmggXAorCVNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUluZm8uY3Bw
IFwKKwlTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VJbmZvLmggXAorCVNvdXJjZS9XZWJD
b3JlL3N0b3JhZ2UvU3RvcmFnZUluZm9FcnJvckNhbGxiYWNrLmggXAorCVNvdXJjZS9XZWJDb3Jl
L3N0b3JhZ2UvU3RvcmFnZUluZm9RdW90YUNhbGxiYWNrLmggXAorCVNvdXJjZS9XZWJDb3JlL3N0
b3JhZ2UvU3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrLmggXAogCVNvdXJjZS9XZWJDb3JlL3N0b3Jh
Z2UvU3RvcmFnZU1hcC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZU1hcC5o
IFwKIAlTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2UuY3BwIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQppbmRleCBiNTE1NjkyLi41MjJmZGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC01NTEy
LDYgKzU1MTIsMTEgQEAKICAgICAgICAgICAgICdzdG9yYWdlL1N0b3JhZ2VFdmVudC5oJywKICAg
ICAgICAgICAgICdzdG9yYWdlL1N0b3JhZ2VFdmVudERpc3BhdGNoZXIuY3BwJywKICAgICAgICAg
ICAgICdzdG9yYWdlL1N0b3JhZ2VFdmVudERpc3BhdGNoZXIuaCcsCisgICAgICAgICAgICAnc3Rv
cmFnZS9TdG9yYWdlSW5mby5jcHAnLAorICAgICAgICAgICAgJ3N0b3JhZ2UvU3RvcmFnZUluZm8u
aCcsCisgICAgICAgICAgICAnc3RvcmFnZS9TdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2suaCcsCisg
ICAgICAgICAgICAnc3RvcmFnZS9TdG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2suaCcsCisgICAgICAg
ICAgICAnc3RvcmFnZS9TdG9yYWdlSW5mb1VzYWdlQ2FsbGJhY2suaCcsCiAgICAgICAgICAgICAn
c3RvcmFnZS9TdG9yYWdlTWFwLmNwcCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9TdG9yYWdlTWFw
LmgnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZS5jcHAnLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnBybwppbmRleCAyNzNkNDMzLi5mNmQ3NjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnBybworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtMjkyMSw2ICsy
OTIxLDE3IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9JTlBVVF9TUEVFQ0g9MSkgewogICAg
ICAgICByZW5kZXJpbmcvUmVuZGVySW5wdXRTcGVlY2guY3BwCiB9CiAKK2NvbnRhaW5zKERFRklO
RVMsIEVOQUJMRV9RVU9UQT0xKSB7CisgICAgSEVBREVSUyArPSBcCisgICAgICAgIHN0b3JhZ2Uv
U3RvcmFnZUluZm8uaCBcCisgICAgICAgIHN0b3JhZ2UvU3RvcmFnZUluZm9FcnJvckNhbGxiYWNr
LmggXAorICAgICAgICBzdG9yYWdlL1N0b3JhZ2VJbmZvUXVvdGFDYWxsYmFjay5oIFwKKyAgICAg
ICAgc3RvcmFnZS9TdG9yYWdlSW5mb1VzYWdlQ2FsbGJhY2suaAorCisgICAgU09VUkNFUyArPSBc
CisgICAgICAgIHN0b3JhZ2UvU3RvcmFnZUluZm8uY3BwCit9CisKIGNvbnRhaW5zKERFRklORVMs
IEVOQUJMRV9WSURFTz0xKSB7CiAgICAgU09VUkNFUyArPSBcCiAgICAgICAgIGh0bWwvSFRNTEF1
ZGlvRWxlbWVudC5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvagppbmRleCBmNThmN2ZlLi43YTVlOWM5IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNjYwNTgsNiArNjYwNTgsMjYgQEAKIAkJCQk+
CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3RvcmFnZVxTdG9y
YWdlSW5mby5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXHN0b3JhZ2VcU3RvcmFnZUluZm8uaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8Rmls
ZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3RvcmFnZVxTdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2su
aCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3Rv
cmFnZVxTdG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2suaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8
RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3RvcmFnZVxTdG9yYWdlSW5mb1VzYWdlQ2FsbGJh
Y2suaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5c
c3RvcmFnZVxTdG9yYWdlTWFwLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMTVhMWM4MS4u
MzFhZDc1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMjY0OSw2ICsyNjQ5LDExIEBACiAJCTg2MjQzRDAxMTFCQzMxRjcwMEND
MDA2QSAvKiBKU0FycmF5QnVmZmVyVmlld0hlbHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODYyNDNEMDAxMUJDMzFGNzAwQ0MwMDZBIC8qIEpTQXJy
YXlCdWZmZXJWaWV3SGVscGVyLmggKi87IH07CiAJCTg2RDk4MkY3MTI1QzE1NDAwMEFEOUUzRCAv
KiBEb2N1bWVudFRpbWluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODZEOTgyRjYxMjVDMTU0MDAwQUQ5RTNEIC8qIERvY3VtZW50VGltaW5nLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODkwQUUwRTEx
MjU2QTA3OTAwRjU5NjhDIC8qIERpcmVjdG9yeVJlYWRlckJhc2UuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5MEFFMEUwMTI1NkEwNzkwMEY1OTY4QyAv
KiBEaXJlY3RvcnlSZWFkZXJCYXNlLmggKi87IH07CisJCTg5MkNGMTkyMTM0QzYyMEQwMEFBRURB
MSAvKiBTdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5MkNGMThEMTM0QzYyMEQwMEFBRURBMSAvKiBTdG9yYWdl
SW5mb0Vycm9yQ2FsbGJhY2suaCAqLzsgfTsKKwkJODkyQ0YxOTMxMzRDNjIwRDAwQUFFREExIC8q
IFN0b3JhZ2VJbmZvUXVvdGFDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODkyQ0YxOEUxMzRDNjIwRDAwQUFFREExIC8qIFN0b3JhZ2VJbmZv
UXVvdGFDYWxsYmFjay5oICovOyB9OworCQk4OTJDRjE5NDEzNEM2MjBEMDBBQUVEQTEgLyogU3Rv
cmFnZUluZm9Vc2FnZUNhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4OTJDRjE4RjEzNEM2MjBEMDBBQUVEQTEgLyogU3RvcmFnZUluZm9Vc2Fn
ZUNhbGxiYWNrLmggKi87IH07CisJCTg5MkNGMUVDMTM0QzY1NTUwMEFBRURBMSAvKiBTdG9yYWdl
SW5mby5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
OTJDRjFFQTEzNEM2NTU1MDBBQUVEQTEgLyogU3RvcmFnZUluZm8uY3BwICovOyB9OworCQk4OTJD
RjFFRDEzNEM2NTU1MDBBQUVEQTEgLyogU3RvcmFnZUluZm8uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5MkNGMUVCMTM0QzY1NTUwMEFBRURBMSAvKiBT
dG9yYWdlSW5mby5oICovOyB9OwogCQk4OTNDNDdBNzEyMzg5MDhCMDAyQjNEODYgLyogRmlsZUNh
bGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
OTNDNDdBNTEyMzg5MDhCMDAyQjNEODYgLyogRmlsZUNhbGxiYWNrLmggKi87IH07CiAJCTg5M0M0
N0E4MTIzODkwOEIwMDJCM0Q4NiAvKiBGaWxlV3JpdGVyQ2FsbGJhY2suaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5M0M0N0E2MTIzODkwOEIwMDJCM0Q4
NiAvKiBGaWxlV3JpdGVyQ2FsbGJhY2suaCAqLzsgfTsKIAkJODkzQzQ3QjcxMjM4QTA5OTAwMkIz
RDg2IC8qIEpTRmlsZUNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg5M0M0N0I1MTIzOEEwOTkwMDJCM0Q4NiAvKiBKU0ZpbGVDYWxsYmFj
ay5jcHAgKi87IH07CkBAIC05MTU5LDYgKzkxNjQsMTEgQEAKIAkJODYyNDNEMDAxMUJDMzFGNzAw
Q0MwMDZBIC8qIEpTQXJyYXlCdWZmZXJWaWV3SGVscGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTQXJyYXlCdWZmZXJWaWV3SGVscGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTg2RDk4MkY2MTI1QzE1NDAwMEFEOUUzRCAvKiBEb2N1bWVudFRpbWluZy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEb2N1bWVudFRpbWluZy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4OTBBRTBFMDEyNTZBMDc5MDBGNTk2OEMgLyogRGly
ZWN0b3J5UmVhZGVyQmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBEaXJl
Y3RvcnlSZWFkZXJCYXNlLmg7IHBhdGggPSBmaWxlYXBpL0RpcmVjdG9yeVJlYWRlckJhc2UuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODkyQ0YxOEQxMzRDNjIwRDAwQUFFREExIC8q
IFN0b3JhZ2VJbmZvRXJyb3JDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJODkyQ0YxOEUxMzRDNjIwRDAwQUFFREExIC8qIFN0b3JhZ2VJbmZvUXVvdGFDYWxsYmFj
ay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdG9yYWdlSW5mb1F1b3RhQ2Fs
bGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODkyQ0YxOEYxMzRDNjIwRDAw
QUFFREExIC8qIFN0b3JhZ2VJbmZvVXNhZ2VDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTdG9yYWdlSW5mb1VzYWdlQ2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJODkyQ0YxRUExMzRDNjU1NTAwQUFFREExIC8qIFN0b3JhZ2VJbmZvLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0b3JhZ2VJbmZvLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODkyQ0YxRUIxMzRDNjU1NTAwQUFFREExIC8q
IFN0b3JhZ2VJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0b3JhZ2VJ
bmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg5M0M0N0E1MTIzODkwOEIwMDJC
M0Q4NiAvKiBGaWxlQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
RmlsZUNhbGxiYWNrLmg7IHBhdGggPSBmaWxlYXBpL0ZpbGVDYWxsYmFjay5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk4OTNDNDdBNjEyMzg5MDhCMDAyQjNEODYgLyogRmlsZVdyaXRl
ckNhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEZpbGVXcml0ZXJD
YWxsYmFjay5oOyBwYXRoID0gZmlsZWFwaS9GaWxlV3JpdGVyQ2FsbGJhY2suaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODkzQzQ3QjUxMjM4QTA5OTAwMkIzRDg2IC8qIEpTRmlsZUNh
bGxiYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRmlsZUNh
bGxiYWNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzMTA1LDYgKzEzMTE1
LDExIEBACiAJCQkJNTFFMEJBQkQwREE1NTQ4NDAwQTlFNDE3IC8qIFN0b3JhZ2VFdmVudC5pZGwg
Ki8sCiAJCQkJQzVFOUI2NzYxMDY5N0UxMzAwQzdCQjFBIC8qIFN0b3JhZ2VFdmVudERpc3BhdGNo
ZXIuY3BwICovLAogCQkJCUM1RUJERDgxMTA1RURERUMwMDU2ODE2RiAvKiBTdG9yYWdlRXZlbnRE
aXNwYXRjaGVyLmggKi8sCisJCQkJODkyQ0YxRUExMzRDNjU1NTAwQUFFREExIC8qIFN0b3JhZ2VJ
bmZvLmNwcCAqLywKKwkJCQk4OTJDRjFFQjEzNEM2NTU1MDBBQUVEQTEgLyogU3RvcmFnZUluZm8u
aCAqLywKKwkJCQk4OTJDRjE4RDEzNEM2MjBEMDBBQUVEQTEgLyogU3RvcmFnZUluZm9FcnJvckNh
bGxiYWNrLmggKi8sCisJCQkJODkyQ0YxOEUxMzRDNjIwRDAwQUFFREExIC8qIFN0b3JhZ2VJbmZv
UXVvdGFDYWxsYmFjay5oICovLAorCQkJCTg5MkNGMThGMTM0QzYyMEQwMEFBRURBMSAvKiBTdG9y
YWdlSW5mb1VzYWdlQ2FsbGJhY2suaCAqLywKIAkJCQk1MUUwQkIzNzBEQTVBQ0I2MDBBOUU0MTcg
LyogU3RvcmFnZU1hcC5jcHAgKi8sCiAJCQkJNTFFMEJCMzYwREE1QUNCNjAwQTlFNDE3IC8qIFN0
b3JhZ2VNYXAuaCAqLywKIAkJCQlDNTBEMEU4MDBGRjQyNzI5MDBBQzI2NDQgLyogU3RvcmFnZU5h
bWVzcGFjZS5jcHAgKi8sCkBAIC0yMjc4OCw2ICsyMjgwMywxMCBAQAogCQkJCTkzRjE5OUVEMDgy
NDVFNTkwMDFFOUFCQyAvKiBYU0xUUHJvY2Vzc29yLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUJF
NTEyRTBDRjZDNTEyMDAyRUE5NTkgLyogWFNMVFVuaWNvZGVTb3J0LmggaW4gSGVhZGVycyAqLywK
IAkJCQk5NzdFMkUwRjEyRjBGQzlDMDBDMTMzNzkgLyogWFNTRmlsdGVyLmggaW4gSGVhZGVycyAq
LywKKwkJCQk4OTJDRjE5MjEzNEM2MjBEMDBBQUVEQTEgLyogU3RvcmFnZUluZm9FcnJvckNhbGxi
YWNrLmggaW4gSGVhZGVycyAqLywKKwkJCQk4OTJDRjE5MzEzNEM2MjBEMDBBQUVEQTEgLyogU3Rv
cmFnZUluZm9RdW90YUNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKKwkJCQk4OTJDRjE5NDEzNEM2
MjBEMDBBQUVEQTEgLyogU3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywK
KwkJCQk4OTJDRjFFRDEzNEM2NTU1MDBBQUVEQTEgLyogU3RvcmFnZUluZm8uaCBpbiBIZWFkZXJz
ICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwog
CQl9OwpAQCAtMjU0NjgsNiArMjU0ODcsNyBAQAogCQkJCTkzRjE5QjA1MDgyNDVFNTkwMDFFOUFC
QyAvKiBYU0xUUHJvY2Vzc29yTGlieHNsdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMUJFNTEy
RDBDRjZDNTEyMDAyRUE5NTkgLyogWFNMVFVuaWNvZGVTb3J0LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTk3N0UyRTBFMTJGMEZDOUMwMEMxMzM3OSAvKiBYU1NGaWx0ZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJODkyQ0YxRUMxMzRDNjU1NTAwQUFFREExIC8qIFN0b3JhZ2VJbmZvLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Npbmcg
PSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlSW5m
by5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VJbmZvLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYzg5MzBjCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlSW5mby5jcHAKQEAgLTAsMCArMSw2OCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBk
aXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
CisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShRVU9UQSkKKworI2luY2x1ZGUgIlN0b3JhZ2VJ
bmZvLmgiCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlN0b3JhZ2VJ
bmZvRXJyb3JDYWxsYmFjay5oIgorI2luY2x1ZGUgIlN0b3JhZ2VJbmZvUXVvdGFDYWxsYmFjay5o
IgorI2luY2x1ZGUgIlN0b3JhZ2VJbmZvVXNhZ2VDYWxsYmFjay5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CisKK1N0b3JhZ2VJbmZvOjpT
dG9yYWdlSW5mbygpCit7Cit9CisKKyNpZiAhUExBVEZPUk0oQ0hST01JVU0pCit2b2lkIFN0b3Jh
Z2VJbmZvOjpxdWVyeVVzYWdlQW5kUXVvdGEoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGludCwg
UGFzc1JlZlB0cjxTdG9yYWdlSW5mb1VzYWdlQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPFN0b3JhZ2VJ
bmZvRXJyb3JDYWxsYmFjaz4pCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBT
dG9yYWdlSW5mbzo6cmVxdWVzdFF1b3RhKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBpbnQsIHVu
c2lnbmVkIGxvbmcgbG9uZywgUGFzc1JlZlB0cjxTdG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2s+LCBQ
YXNzUmVmUHRyPFN0b3JhZ2VJbmZvRXJyb3JDYWxsYmFjaz4pCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKK30KKyNlbmRpZgorCitTdG9yYWdlSW5mbzo6flN0b3JhZ2VJbmZvKCkKK3sKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFFVT1RBKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlSW5mby5oIGIvU291cmNlL1dlYkNv
cmUvc3RvcmFnZS9TdG9yYWdlSW5mby5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmE3NDI2ODkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0
b3JhZ2VJbmZvLmgKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
CisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgU3RvcmFnZUluZm9faAorI2RlZmlu
ZSBTdG9yYWdlSW5mb19oCisKKyNpZiBFTkFCTEUoUVVPVEEpCisKKyNpbmNsdWRlIDx3dGYvUGFz
c1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKK2NsYXNzIFN0b3JhZ2VJbmZv
RXJyb3JDYWxsYmFjazsKK2NsYXNzIFN0b3JhZ2VJbmZvUXVvdGFDYWxsYmFjazsKK2NsYXNzIFN0
b3JhZ2VJbmZvVXNhZ2VDYWxsYmFjazsKKworY2xhc3MgU3RvcmFnZUluZm8gOiBwdWJsaWMgUmVm
Q291bnRlZDxTdG9yYWdlSW5mbz4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0
b3JhZ2VJbmZvPiBjcmVhdGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBT
dG9yYWdlSW5mbygpKTsKKyAgICB9CisKKyAgICB2b2lkIHF1ZXJ5VXNhZ2VBbmRRdW90YShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiwgaW50IHN0b3JhZ2VUeXBlLCBQYXNzUmVmUHRyPFN0b3JhZ2VJ
bmZvVXNhZ2VDYWxsYmFjaz4sIFBhc3NSZWZQdHI8U3RvcmFnZUluZm9FcnJvckNhbGxiYWNrPik7
CisgICAgdm9pZCByZXF1ZXN0UXVvdGEoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGludCBzdG9y
YWdlVHlwZSwgdW5zaWduZWQgbG9uZyBsb25nIG5ld1F1b3RhSW5CeXRlcywgUGFzc1JlZlB0cjxT
dG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPFN0b3JhZ2VJbmZvRXJyb3JDYWxs
YmFjaz4pOworCitwcml2YXRlOgorICAgIFN0b3JhZ2VJbmZvKCk7CisgICAgflN0b3JhZ2VJbmZv
KCk7CisKKyAgICBmcmllbmQgY2xhc3MgUmVmQ291bnRlZDxTdG9yYWdlSW5mbz47Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoUVVPVEEpCisKKyNlbmRp
ZiAvLyBTdG9yYWdlSW5mb19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0
b3JhZ2VJbmZvRXJyb3JDYWxsYmFjay5oIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdl
SW5mb0Vycm9yQ2FsbGJhY2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42
ZTNkNzVlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdl
SW5mb0Vycm9yQ2FsbGJhY2suaApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAq
ICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBTdG9yYWdlSW5mb0Vy
cm9yQ2FsbGJhY2tfaAorI2RlZmluZSBTdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2tfaAorCisjaWYg
RU5BQkxFKFFVT1RBKQorCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBET01Db3JlRXhjZXB0aW9uOworCitjbGFzcyBTdG9yYWdlSW5m
b0Vycm9yQ2FsbGJhY2sgOiBwdWJsaWMgUmVmQ291bnRlZDxTdG9yYWdlSW5mb0Vycm9yQ2FsbGJh
Y2s+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5TdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2soKSB7
IH0KKyAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlRXZlbnQoRE9NQ29yZUV4Y2VwdGlvbiopID0gMDsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShRVU9UQSkK
KworI2VuZGlmIC8vIFN0b3JhZ2VJbmZvRXJyb3JDYWxsYmFja19oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VJbmZvUXVvdGFDYWxsYmFjay5oIGIvU291cmNlL1dl
YkNvcmUvc3RvcmFnZS9TdG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2suaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5mNmZkZTk5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvc3RvcmFnZS9TdG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2suaApAQCAtMCwwICsxLDUwIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICog
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
KyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
CisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmbmRlZiBTdG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2tfaAorI2RlZmluZSBTdG9yYWdlSW5mb1F1
b3RhQ2FsbGJhY2tfaAorCisjaWYgRU5BQkxFKFFVT1RBKQorCisjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTdG9yYWdlSW5mb1F1b3Rh
Q2FsbGJhY2sgOiBwdWJsaWMgUmVmQ291bnRlZDxTdG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2s+IHsK
K3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5TdG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2soKSB7IH0KKyAg
ICB2aXJ0dWFsIGJvb2wgaGFuZGxlRXZlbnQodW5zaWduZWQgbG9uZyBsb25nIGdyYW50ZWRRdW90
YUluQnl0ZXMpID0gMDsKK307CisKK30gLy8gbmFtZXNwYWNlCisKKyNlbmRpZiAvLyBFTkFCTEUo
UVVPVEEpCisKKyNlbmRpZiAvLyBTdG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2tfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlSW5mb1VzYWdlQ2FsbGJhY2suaCBiL1Nv
dXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODM4MjYxMQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrLmgKQEAgLTAsMCAr
MSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0Ogor
ICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisg
KiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgU3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrX2gKKyNkZWZpbmUgU3RvcmFn
ZUluZm9Vc2FnZUNhbGxiYWNrX2gKKworI2lmIEVOQUJMRShRVU9UQSkKKworI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3RvcmFnZUlu
Zm9Vc2FnZUNhbGxiYWNrIDogcHVibGljIFJlZkNvdW50ZWQ8U3RvcmFnZUluZm9Vc2FnZUNhbGxi
YWNrPiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+U3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrKCkg
eyB9CisgICAgdmlydHVhbCBib29sIGhhbmRsZUV2ZW50KHVuc2lnbmVkIGxvbmcgbG9uZyBjdXJy
ZW50VXNhZ2VJbkJ5dGVzLCB1bnNpZ25lZCBsb25nIGxvbmcgY3VycmVudFF1b3RhSW5CeXRlcykg
PSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UKKworI2VuZGlmIC8vIEVOQUJMRShRVU9UQSkKKwor
I2VuZGlmIC8vIFN0b3JhZ2VJbmZvVXNhZ2VDYWxsYmFja19oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCmluZGV4IDVlNDk1OTQuLjk1NzA2NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMTEtMDQtMDYgIEtpbnVrbyBZYXN1ZGEgIDxraW51a29AY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCBtb2NrIGltcGxlbWVudGF0aW9uIGFuZCBwbHVtYmluZyBjb2RlIGZvciB1bmlmaWVkIFF1
b3RhIEFQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NTc5MjcKKworICAgICAgICBBZGRlZCBwbHVtYmluZyBjb2RlIGZvciB0aGUgcXVvdGEgQVBJLCB0
aGF0IGlzIGJhc2VkIG9uIHRoZQorICAgICAgICBkaXNjdXNzaW9uIG9uIHB1YmxpYy13ZWJhcHBz
OgorICAgICAgICBodHRwOi8vbGlzdHMudzMub3JnL0FyY2hpdmVzL1B1YmxpYy9wdWJsaWMtd2Vi
YXBwcy8yMDExSmFuTWFyLzAzNDYuaHRtbAorCisgICAgICAgICogV2ViS2l0Lmd5cDogQWRkZWQg
bmV3IGZpbGUgZW50cmllcy4KKyAgICAgICAgKiBzcmMvU3RvcmFnZUluZm9DaHJvbWl1bS5jcHA6
IEFkZGVkLgorICAgICAgICAqIHNyYy9XZWJTdG9yYWdlUXVvdGFDYWxsYmFja3NJbXBsLmNwcDog
QWRkZWQuIEFuIGltcGxlbWVudGF0aW9uIG9mCisgICAgICAgIFdlYlN0b3JhZ2VRdW90YUNhbGxi
YWNrcy4KKyAgICAgICAgKiBzcmMvV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzSW1wbC5oOiBBZGRl
ZC4KKwogMjAxMS0wNC0wNSAgS2ludWtvIFlhc3VkYSAgPGtpbnVrb0BjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktp
dC5neXAKaW5kZXggNTBkMWUzMi4uYWMyM2RhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9XZWJLaXQuZ3lwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5
cApAQCAtNDAyLDYgKzQwMiw3IEBACiAgICAgICAgICAgICAgICAgJ3NyYy9TdG9yYWdlRXZlbnRE
aXNwYXRjaGVyQ2hyb21pdW0uY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1N0b3JhZ2VFdmVu
dERpc3BhdGNoZXJJbXBsLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9TdG9yYWdlRXZlbnRE
aXNwYXRjaGVySW1wbC5oJywKKyAgICAgICAgICAgICAgICAnc3JjL1N0b3JhZ2VJbmZvQ2hyb21p
dW0uY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1N0b3JhZ2VOYW1lc3BhY2VQcm94eS5jcHAn
LAogICAgICAgICAgICAgICAgICdzcmMvU3RvcmFnZU5hbWVzcGFjZVByb3h5LmgnLAogICAgICAg
ICAgICAgICAgICdzcmMvVGVtcG9yYXJ5R2x1ZS5oJywKQEAgLTU1NCw2ICs1NTUsOCBAQAogICAg
ICAgICAgICAgICAgICdzcmMvV2ViU3RvcmFnZUV2ZW50RGlzcGF0Y2hlckltcGwuaCcsCiAgICAg
ICAgICAgICAgICAgJ3NyYy9XZWJTdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAnLAogICAgICAgICAg
ICAgICAgICdzcmMvV2ViU3RvcmFnZU5hbWVzcGFjZUltcGwuaCcsCisgICAgICAgICAgICAgICAg
J3NyYy9XZWJTdG9yYWdlUXVvdGFDYWxsYmFja3NJbXBsLmNwcCcsCisgICAgICAgICAgICAgICAg
J3NyYy9XZWJTdG9yYWdlUXVvdGFDYWxsYmFja3NJbXBsLmgnLAogICAgICAgICAgICAgICAgICdz
cmMvV2ViU3RyaW5nLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJUZXh0UnVuLmNwcCcs
CiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJUaHJlYWRTYWZlRGF0YS5jcHAnLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvU3RvcmFnZUluZm9DaHJvbWl1bS5jcHAgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9TdG9yYWdlSW5mb0Nocm9taXVtLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40Yjk5NjMxCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvU3RvcmFnZUluZm9DaHJvbWl1bS5jcHAKQEAgLTAs
MCArMSw4MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0
OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
CisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTdG9yYWdlSW5mby5oIgor
CisjaWYgRU5BQkxFKFFVT1RBKQorCisjaW5jbHVkZSAiRE9NQ29yZUV4Y2VwdGlvbi5oIgorI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgor
I2luY2x1ZGUgIlN0b3JhZ2VJbmZvRXJyb3JDYWxsYmFjay5oIgorI2luY2x1ZGUgIlN0b3JhZ2VJ
bmZvUXVvdGFDYWxsYmFjay5oIgorI2luY2x1ZGUgIlN0b3JhZ2VJbmZvVXNhZ2VDYWxsYmFjay5o
IgorI2luY2x1ZGUgIldlYkZyYW1lQ2xpZW50LmgiCisjaW5jbHVkZSAiV2ViRnJhbWVJbXBsLmgi
CisjaW5jbHVkZSAiV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzSW1wbC5oIgorI2luY2x1ZGUgIldl
YlN0b3JhZ2VRdW90YVR5cGUuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCit2b2lkIFN0b3JhZ2VJbmZvOjpxdWVyeVVzYWdlQW5kUXVvdGEoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgaW50IHN0b3JhZ2VUeXBlLCBQYXNzUmVmUHRy
PFN0b3JhZ2VJbmZvVXNhZ2VDYWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNrLCBQYXNzUmVmUHRyPFN0
b3JhZ2VJbmZvRXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFjaykKK3sKKyAgICBBU1NFUlQoY29u
dGV4dCk7CisgICAgaWYgKGNvbnRleHQtPmlzRG9jdW1lbnQoKSkgeworICAgICAgICBEb2N1bWVu
dCogZG9jdW1lbnQgPSBzdGF0aWNfY2FzdDxEb2N1bWVudCo+KGNvbnRleHQpOworICAgICAgICBX
ZWJGcmFtZUltcGwqIHdlYkZyYW1lID0gV2ViRnJhbWVJbXBsOjpmcm9tRnJhbWUoZG9jdW1lbnQt
PmZyYW1lKCkpOworICAgICAgICB3ZWJGcmFtZS0+Y2xpZW50KCktPnF1ZXJ5U3RvcmFnZVVzYWdl
QW5kUXVvdGEod2ViRnJhbWUsIHN0YXRpY19jYXN0PFdlYlN0b3JhZ2VRdW90YVR5cGU+KHN0b3Jh
Z2VUeXBlKSwgV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzSW1wbDo6Y3JlYXRlRm9yVXNhZ2VDYWxs
YmFjayhzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spKTsKKyAgICB9IGVsc2UgaWYgKGVy
cm9yQ2FsbGJhY2spIHsKKyAgICAgICAgLy8gVGhpcyBtdXN0IG5vdCBiZSBjYWxsZWQgaW4gdGhl
IHdvcmtlciBjb250ZXh0LgorICAgICAgICBFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24gZGVzY3Jp
cHRpb247CisgICAgICAgIGdldEV4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbihOT1RfU1VQUE9SVEVE
X0VSUiwgZGVzY3JpcHRpb24pOworICAgICAgICBlcnJvckNhbGxiYWNrLT5oYW5kbGVFdmVudChE
T01Db3JlRXhjZXB0aW9uOjpjcmVhdGUoZGVzY3JpcHRpb24pLmdldCgpKTsKKyAgICB9Cit9CisK
K3ZvaWQgU3RvcmFnZUluZm86OnJlcXVlc3RRdW90YShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0LCBpbnQgc3RvcmFnZVR5cGUsIHVuc2lnbmVkIGxvbmcgbG9uZyBuZXdRdW90YUluQnl0
ZXMsIFBhc3NSZWZQdHI8U3RvcmFnZUluZm9RdW90YUNhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ss
IFBhc3NSZWZQdHI8U3RvcmFnZUluZm9FcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrKQorewor
ICAgIEFTU0VSVChjb250ZXh0KTsKKyAgICBpZiAoY29udGV4dC0+aXNEb2N1bWVudCgpKSB7Cisg
ICAgICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHN0YXRpY19jYXN0PERvY3VtZW50Kj4oY29udGV4
dCk7CisgICAgICAgIFdlYkZyYW1lSW1wbCogd2ViRnJhbWUgPSBXZWJGcmFtZUltcGw6OmZyb21G
cmFtZShkb2N1bWVudC0+ZnJhbWUoKSk7CisgICAgICAgIHdlYkZyYW1lLT5jbGllbnQoKS0+cmVx
dWVzdFN0b3JhZ2VRdW90YSh3ZWJGcmFtZSwgc3RhdGljX2Nhc3Q8V2ViU3RvcmFnZVF1b3RhVHlw
ZT4oc3RvcmFnZVR5cGUpLCBuZXdRdW90YUluQnl0ZXMsIFdlYlN0b3JhZ2VRdW90YUNhbGxiYWNr
c0ltcGw6OmNyZWF0ZUZvclF1b3RhQ2FsbGJhY2soc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxi
YWNrKSk7CisgICAgfSBlbHNlIGlmIChlcnJvckNhbGxiYWNrKSB7CisgICAgICAgIC8vIFRoaXMg
bXVzdCBub3QgYmUgY2FsbGVkIGluIHRoZSB3b3JrZXIgY29udGV4dC4KKyAgICAgICAgRXhjZXB0
aW9uQ29kZURlc2NyaXB0aW9uIGRlc2NyaXB0aW9uOworICAgICAgICBnZXRFeGNlcHRpb25Db2Rl
RGVzY3JpcHRpb24oTk9UX1NVUFBPUlRFRF9FUlIsIGRlc2NyaXB0aW9uKTsKKyAgICAgICAgZXJy
b3JDYWxsYmFjay0+aGFuZGxlRXZlbnQoRE9NQ29yZUV4Y2VwdGlvbjo6Y3JlYXRlKGRlc2NyaXB0
aW9uKS5nZXQoKSk7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBFTkFCTEUoUVVPVEEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJTdG9yYWdlUXVvdGFDYWxsYmFja3NJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlN0b3JhZ2VRdW90YUNhbGxiYWNrc0ltcGwuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmI4MjM4YjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJTdG9yYWdlUXVvdGFDYWxsYmFja3NJbXBsLmNwcApAQCAtMCww
ICsxLDg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6
CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
KyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlN0b3JhZ2VRdW90YUNh
bGxiYWNrc0ltcGwuaCIKKworI2lmIEVOQUJMRShRVU9UQSkKKworI2luY2x1ZGUgIkRPTUNvcmVF
eGNlcHRpb24uaCIKKyNpbmNsdWRlICJTdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2suaCIKKyNpbmNs
dWRlICJTdG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJTdG9yYWdlSW5mb1Vz
YWdlQ2FsbGJhY2suaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitXZWJTdG9yYWdlUXVvdGFDYWxsYmFja3NJbXBsOjpXZWJTdG9yYWdlUXVvdGFD
YWxsYmFja3NJbXBsKFBhc3NSZWZQdHI8V2ViQ29yZTo6U3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNr
PiB1c2FnZUNhbGxiYWNrLCBQYXNzUmVmUHRyPFdlYkNvcmU6OlN0b3JhZ2VJbmZvRXJyb3JDYWxs
YmFjaz4gZXJyb3JDYWxsYmFjaykKKyAgICA6IG1fdXNhZ2VDYWxsYmFjayh1c2FnZUNhbGxiYWNr
KQorICAgICwgbV9lcnJvckNhbGxiYWNrKGVycm9yQ2FsbGJhY2spCit7Cit9CisKK1dlYlN0b3Jh
Z2VRdW90YUNhbGxiYWNrc0ltcGw6OldlYlN0b3JhZ2VRdW90YUNhbGxiYWNrc0ltcGwoUGFzc1Jl
ZlB0cjxXZWJDb3JlOjpTdG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2s+IHF1b3RhQ2FsbGJhY2ssIFBh
c3NSZWZQdHI8V2ViQ29yZTo6U3RvcmFnZUluZm9FcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNr
KQorICAgIDogbV9xdW90YUNhbGxiYWNrKHF1b3RhQ2FsbGJhY2spCisgICAgLCBtX2Vycm9yQ2Fs
bGJhY2soZXJyb3JDYWxsYmFjaykKK3sKK30KKworV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzSW1w
bDo6fldlYlN0b3JhZ2VRdW90YUNhbGxiYWNrc0ltcGwoKQoreworfQorCit2b2lkIFdlYlN0b3Jh
Z2VRdW90YUNhbGxiYWNrc0ltcGw6OmRpZFF1ZXJ5U3RvcmFnZVVzYWdlQW5kUXVvdGEodW5zaWdu
ZWQgbG9uZyBsb25nIHVzYWdlSW5CeXRlcywgdW5zaWduZWQgbG9uZyBsb25nIHF1b3RhSW5CeXRl
cykKK3sKKyAgICBpZiAobV91c2FnZUNhbGxiYWNrKQorICAgICAgICBtX3VzYWdlQ2FsbGJhY2st
PmhhbmRsZUV2ZW50KHVzYWdlSW5CeXRlcywgcXVvdGFJbkJ5dGVzKTsKKyAgICBkZWxldGUgdGhp
czsKK30KKwordm9pZCBXZWJTdG9yYWdlUXVvdGFDYWxsYmFja3NJbXBsOjp3YXNHcmFudGVkU3Rv
cmFnZVF1b3RhKHVuc2lnbmVkIGxvbmcgbG9uZyBncmFudGVkUXVvdGFJbkJ5dGVzKQoreworICAg
IGlmIChtX3F1b3RhQ2FsbGJhY2spCisgICAgICAgIG1fcXVvdGFDYWxsYmFjay0+aGFuZGxlRXZl
bnQoZ3JhbnRlZFF1b3RhSW5CeXRlcyk7CisgICAgZGVsZXRlIHRoaXM7Cit9CisKK3ZvaWQgV2Vi
U3RvcmFnZVF1b3RhQ2FsbGJhY2tzSW1wbDo6ZGlkRmFpbChXZWJFeGNlcHRpb25Db2RlIGVycm9y
KQoreworICAgIGlmIChtX2Vycm9yQ2FsbGJhY2spIHsKKyAgICAgICAgRXhjZXB0aW9uQ29kZURl
c2NyaXB0aW9uIGRlc2NyaXB0aW9uOworICAgICAgICBnZXRFeGNlcHRpb25Db2RlRGVzY3JpcHRp
b24oZXJyb3IsIGRlc2NyaXB0aW9uKTsKKyAgICAgICAgbV9lcnJvckNhbGxiYWNrLT5oYW5kbGVF
dmVudChET01Db3JlRXhjZXB0aW9uOjpjcmVhdGUoZGVzY3JpcHRpb24pLmdldCgpKTsKKyAgICB9
CisgICAgZGVsZXRlIHRoaXM7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYg
Ly8gRU5BQkxFKFFVT1RBKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzSW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzSW1wbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjBjYzUxMTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJTdG9yYWdlUXVvdGFDYWxsYmFja3NJbXBsLmgKQEAgLTAsMCArMSw3OCBA
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
KyNpZm5kZWYgV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzSW1wbF9oCisjZGVmaW5lIFdlYlN0b3Jh
Z2VRdW90YUNhbGxiYWNrc0ltcGxfaAorCisjaW5jbHVkZSAiV2ViU3RvcmFnZVF1b3RhQ2FsbGJh
Y2tzLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc1Jl
ZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
Y2xhc3MgU3RvcmFnZUluZm9FcnJvckNhbGxiYWNrOworY2xhc3MgU3RvcmFnZUluZm9RdW90YUNh
bGxiYWNrOworY2xhc3MgU3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrOworfQorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworY2xhc3MgV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzSW1wbCA6IHB1YmxpYyBX
ZWJTdG9yYWdlUXVvdGFDYWxsYmFja3MgeworcHVibGljOgorICAgIHN0YXRpYyBXZWJTdG9yYWdl
UXVvdGFDYWxsYmFja3NJbXBsKiBjcmVhdGVGb3JVc2FnZUNhbGxiYWNrKFBhc3NSZWZQdHI8V2Vi
Q29yZTo6U3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrPiB1c2FnZUNhbGxiYWNrLCBQYXNzUmVmUHRy
PFdlYkNvcmU6OlN0b3JhZ2VJbmZvRXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFjaykKKyAgICB7
CisgICAgICAgIC8vIFRoaXMgcmV0dXJucyBhIGxlYWtlZCBwdHIgKHRoZSBjbGFzcyBpcyBzZWxm
LWRlc3RydWN0ZWQpLgorICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFdlYlN0b3JhZ2VRdW90
YUNhbGxiYWNrc0ltcGwodXNhZ2VDYWxsYmFjaywgZXJyb3JDYWxsYmFjaykpLmxlYWtQdHIoKTsK
KyAgICB9CisKKyAgICBzdGF0aWMgV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzSW1wbCogY3JlYXRl
Rm9yUXVvdGFDYWxsYmFjayhQYXNzUmVmUHRyPFdlYkNvcmU6OlN0b3JhZ2VJbmZvUXVvdGFDYWxs
YmFjaz4gcXVvdGFDYWxsYmFjaywgUGFzc1JlZlB0cjxXZWJDb3JlOjpTdG9yYWdlSW5mb0Vycm9y
Q2FsbGJhY2s+IGVycm9yQ2FsbGJhY2spCisgICAgeworICAgICAgICAvLyBUaGlzIHJldHVybnMg
YSBsZWFrZWQgcHRyICh0aGUgY2xhc3MgaXMgc2VsZi1kZXN0cnVjdGVkKS4KKyAgICAgICAgcmV0
dXJuIGFkb3B0UHRyKG5ldyBXZWJTdG9yYWdlUXVvdGFDYWxsYmFja3NJbXBsKHF1b3RhQ2FsbGJh
Y2ssIGVycm9yQ2FsbGJhY2spKS5sZWFrUHRyKCk7CisgICAgfQorCisgICAgdmlydHVhbCB+V2Vi
U3RvcmFnZVF1b3RhQ2FsbGJhY2tzSW1wbCgpOworCisgICAgdmlydHVhbCB2b2lkIGRpZFF1ZXJ5
U3RvcmFnZVVzYWdlQW5kUXVvdGEodW5zaWduZWQgbG9uZyBsb25nIHVzYWdlSW5CeXRlcywgdW5z
aWduZWQgbG9uZyBsb25nIHF1b3RhSW5CeXRlcyk7CisgICAgdmlydHVhbCB2b2lkIHdhc0dyYW50
ZWRTdG9yYWdlUXVvdGEodW5zaWduZWQgbG9uZyBsb25nIGdyYW50ZWRRdW90YUluQnl0ZXMpOwor
ICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKFdlYkV4Y2VwdGlvbkNvZGUgZXJyb3IpOworCitwcml2
YXRlOgorICAgIFdlYlN0b3JhZ2VRdW90YUNhbGxiYWNrc0ltcGwoUGFzc1JlZlB0cjxXZWJDb3Jl
OjpTdG9yYWdlSW5mb1VzYWdlQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPFdlYkNvcmU6OlN0b3JhZ2VJ
bmZvRXJyb3JDYWxsYmFjaz4pOworICAgIFdlYlN0b3JhZ2VRdW90YUNhbGxiYWNrc0ltcGwoUGFz
c1JlZlB0cjxXZWJDb3JlOjpTdG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPFdl
YkNvcmU6OlN0b3JhZ2VJbmZvRXJyb3JDYWxsYmFjaz4pOworCisgICAgUmVmUHRyPFdlYkNvcmU6
OlN0b3JhZ2VJbmZvVXNhZ2VDYWxsYmFjaz4gbV91c2FnZUNhbGxiYWNrOworICAgIFJlZlB0cjxX
ZWJDb3JlOjpTdG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2s+IG1fcXVvdGFDYWxsYmFjazsKKyAgICBS
ZWZQdHI8V2ViQ29yZTo6U3RvcmFnZUluZm9FcnJvckNhbGxiYWNrPiBtX2Vycm9yQ2FsbGJhY2s7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYlN0b3JhZ2VRdW90
YUNhbGxiYWNrc0ltcGxfaAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88575</attachid>
            <date>2011-04-06 22:36:41 -0700</date>
            <delta_ts>2011-04-08 02:12:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch</filename>
            <type>text/plain</type>
            <size>37093</size>
            <attacher name="Kinuko Yasuda">kinuko</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggOTAwYTc5Mi4uYTBjYmE5ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTE5NDUsNiArMTk0NSwxMSBAQCBJRiAoRU5BQkxFX1BST0dSRVNTX1RBRykKICAg
ICApCiBFTkRJRiAoKQogCitpZiAoRU5BQkxFX1FVT1RBKQorICAgIExJU1QoQVBQRU5EIFdlYkNv
cmVfU09VUkNFUworICAgICAgICBzdG9yYWdlL1N0b3JhZ2VJbmZvLmNwcAorICAgICkKK0VORElG
ICgpCiAKIAogIyBNb2R1bGVzIHRoYXQgdGhlIGJpbmRpbmdzIGdlbmVyYXRvciBzY3JpcHRzIG1h
eSB1c2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCA3NWNlMDQ5Li5lODI5MGI1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzAgQEAKKzIwMTEtMDQtMDYgIEtpbnVrbyBZYXN1ZGEgIDxraW51a29AY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBt
b2NrIGltcGxlbWVudGF0aW9uIGFuZCBwbHVtYmluZyBjb2RlIGZvciB1bmlmaWVkIFF1b3RhIEFQ
SQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTc5MjcK
KworICAgICAgICBBZGRlZCBtb2NrIGltcGxlbWVudGF0aW9uIGFuZCBzb21lIHBsdW1iaW5nIGNv
ZGUgZm9yIHRoZSBxdW90YSBBUEksCisgICAgICAgIHRoYXQgaXMgYmFzZWQgb24gdGhlIGRpc2N1
c3Npb24gb24gcHVibGljLXdlYmFwcHM6CisgICAgICAgIGh0dHA6Ly9saXN0cy53My5vcmcvQXJj
aGl2ZXMvUHVibGljL3B1YmxpYy13ZWJhcHBzLzIwMTFKYW5NYXIvMDM0Ni5odG1sCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzOiB0ZXN0cyB3aWxsIGJlIGFkZGVkIHdoZW4gd2UgZXhwb3NlIHRoZSBB
UEkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogQWRkZWQgbmV3IGZpbGUgZW50cmllcy4K
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5jcHA6IEFkZGVkIG5ldyBmaWxlIGVudHJpZXMuCisg
ICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZTogQWRkZWQgbmV3IGZpbGUgZW50cmllcy4KKyAg
ICAgICAgKiBHTlVtYWtlZmlsZS5hbTogQWRkZWQgbmV3IGZpbGUgZW50cmllcy4KKyAgICAgICAg
KiBXZWJDb3JlLmd5cGk6IEFkZGVkIG5ldyBmaWxlIGVudHJpZXMuCisgICAgICAgICogV2ViQ29y
ZS5wcm86IEFkZGVkIG5ldyBmaWxlIGVudHJpZXMuCisgICAgICAgICogV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2o6IEFkZGVkIG5ldyBmaWxlIGVudHJpZXMuCisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGRlZCBuZXcgZmlsZSBlbnRyaWVzLgorICAg
ICAgICAqIHN0b3JhZ2UvU3RvcmFnZUluZm8uY3BwOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdl
L1N0b3JhZ2VJbmZvLmg6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZUluZm9FcnJv
ckNhbGxiYWNrLmg6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZUluZm9RdW90YUNh
bGxiYWNrLmg6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZUluZm9Vc2FnZUNhbGxi
YWNrLmg6IEFkZGVkLgorCiAyMDExLTA0LTA2ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFt
CmluZGV4IGVlNzBhNGYuLjY4N2I3NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0zMjQ1LDE3
ICszMjQ1LDIyIEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvc3RvcmFn
ZS9TUUxUcmFuc2FjdGlvblN5bmNDYWxsYmFjay5oIFwKIAlTb3VyY2UvV2ViQ29yZS9zdG9yYWdl
L1NRTFRyYW5zYWN0aW9uU3luYy5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU1FMVHJh
bnNhY3Rpb25TeW5jLmggXAorCVNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZS5jcHAgXAor
CVNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9zdG9y
YWdlL1N0b3JhZ2VBcmVhLmggXAogCVNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUFyZWFJ
bXBsLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlQXJlYUltcGwuaCBcCiAJ
U291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlQXJlYVN5bmMuY3BwIFwKIAlTb3VyY2UvV2Vi
Q29yZS9zdG9yYWdlL1N0b3JhZ2VBcmVhU3luYy5oIFwKLQlTb3VyY2UvV2ViQ29yZS9zdG9yYWdl
L1N0b3JhZ2UuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VFdmVudC5jcHAg
XAorCVNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUV2ZW50LmggXAogCVNvdXJjZS9XZWJD
b3JlL3N0b3JhZ2UvU3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5jcHAgXAogCVNvdXJjZS9XZWJDb3Jl
L3N0b3JhZ2UvU3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5oIFwKLQlTb3VyY2UvV2ViQ29yZS9zdG9y
YWdlL1N0b3JhZ2VFdmVudC5oIFwKLQlTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2UuaCBc
CisJU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlSW5mby5jcHAgXAorCVNvdXJjZS9XZWJD
b3JlL3N0b3JhZ2UvU3RvcmFnZUluZm8uaCBcCisJU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9y
YWdlSW5mb0Vycm9yQ2FsbGJhY2suaCBcCisJU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdl
SW5mb1F1b3RhQ2FsbGJhY2suaCBcCisJU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlSW5m
b1VzYWdlQ2FsbGJhY2suaCBcCiAJU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlTWFwLmNw
cCBcCiAJU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlTWFwLmggXAogCVNvdXJjZS9XZWJD
b3JlL3N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGU5
ZjdmMmEuLmEwNjA0N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTU1MTcsNiArNTUxNywxMSBAQAog
ICAgICAgICAgICAgJ3N0b3JhZ2UvU3RvcmFnZUV2ZW50LmgnLAogICAgICAgICAgICAgJ3N0b3Jh
Z2UvU3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5jcHAnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvU3Rv
cmFnZUV2ZW50RGlzcGF0Y2hlci5oJywKKyAgICAgICAgICAgICdzdG9yYWdlL1N0b3JhZ2VJbmZv
LmNwcCcsCisgICAgICAgICAgICAnc3RvcmFnZS9TdG9yYWdlSW5mby5oJywKKyAgICAgICAgICAg
ICdzdG9yYWdlL1N0b3JhZ2VJbmZvRXJyb3JDYWxsYmFjay5oJywKKyAgICAgICAgICAgICdzdG9y
YWdlL1N0b3JhZ2VJbmZvUXVvdGFDYWxsYmFjay5oJywKKyAgICAgICAgICAgICdzdG9yYWdlL1N0
b3JhZ2VJbmZvVXNhZ2VDYWxsYmFjay5oJywKICAgICAgICAgICAgICdzdG9yYWdlL1N0b3JhZ2VN
YXAuY3BwJywKICAgICAgICAgICAgICdzdG9yYWdlL1N0b3JhZ2VNYXAuaCcsCiAgICAgICAgICAg
ICAnc3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnBybyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IGQ0MjIx
ZmYuLjVhODNjZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0yOTI0LDYgKzI5MjQsMTcgQEAgY29udGFp
bnMoREVGSU5FUywgRU5BQkxFX0lOUFVUX1NQRUVDSD0xKSB7CiAgICAgICAgIHJlbmRlcmluZy9S
ZW5kZXJJbnB1dFNwZWVjaC5jcHAKIH0KIAorY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1FVT1RB
PTEpIHsKKyAgICBIRUFERVJTICs9IFwKKyAgICAgICAgc3RvcmFnZS9TdG9yYWdlSW5mby5oIFwK
KyAgICAgICAgc3RvcmFnZS9TdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2suaCBcCisgICAgICAgIHN0
b3JhZ2UvU3RvcmFnZUluZm9RdW90YUNhbGxiYWNrLmggXAorICAgICAgICBzdG9yYWdlL1N0b3Jh
Z2VJbmZvVXNhZ2VDYWxsYmFjay5oCisKKyAgICBTT1VSQ0VTICs9IFwKKyAgICAgICAgc3RvcmFn
ZS9TdG9yYWdlSW5mby5jcHAKK30KKwogY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1ZJREVPPTEp
IHsKICAgICBTT1VSQ0VTICs9IFwKICAgICAgICAgaHRtbC9IVE1MQXVkaW9FbGVtZW50LmNwcCBc
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGFi
MjExNzYuLjg2NGIwZmQgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qCkBAIC02NjE2Miw2ICs2NjE2MiwyNiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJ
CTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxzdG9yYWdlXFN0b3JhZ2VJbmZvLmNwcCIKKwkJ
CQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3RvcmFnZVxT
dG9yYWdlSW5mby5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxzdG9yYWdlXFN0b3JhZ2VJbmZvRXJyb3JDYWxsYmFjay5oIgorCQkJCT4KKwkJCTwv
RmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxzdG9yYWdlXFN0b3JhZ2VJbmZv
UXVvdGFDYWxsYmFjay5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRp
dmVQYXRoPSIuLlxzdG9yYWdlXFN0b3JhZ2VJbmZvVXNhZ2VDYWxsYmFjay5oIgorCQkJCT4KKwkJ
CTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxzdG9yYWdlXFN0b3JhZ2VN
YXAuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxMDhkM2M2Li40MTc0NzI0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0y
NjQ5LDYgKzI2NDksMTEgQEAKIAkJODYyNDNEMDExMUJDMzFGNzAwQ0MwMDZBIC8qIEpTQXJyYXlC
dWZmZXJWaWV3SGVscGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4NjI0M0QwMDExQkMzMUY3MDBDQzAwNkEgLyogSlNBcnJheUJ1ZmZlclZpZXdIZWxw
ZXIuaCAqLzsgfTsKIAkJODZEOTgyRjcxMjVDMTU0MDAwQUQ5RTNEIC8qIERvY3VtZW50VGltaW5n
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkQ5ODJG
NjEyNUMxNTQwMDBBRDlFM0QgLyogRG9jdW1lbnRUaW1pbmcuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4OTBBRTBFMTEyNTZBMDc5MDBGNTk2OEMg
LyogRGlyZWN0b3J5UmVhZGVyQmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODkwQUUwRTAxMjU2QTA3OTAwRjU5NjhDIC8qIERpcmVjdG9yeVJlYWRl
ckJhc2UuaCAqLzsgfTsKKwkJODkyQ0YxOTIxMzRDNjIwRDAwQUFFREExIC8qIFN0b3JhZ2VJbmZv
RXJyb3JDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODkyQ0YxOEQxMzRDNjIwRDAwQUFFREExIC8qIFN0b3JhZ2VJbmZvRXJyb3JDYWxsYmFj
ay5oICovOyB9OworCQk4OTJDRjE5MzEzNEM2MjBEMDBBQUVEQTEgLyogU3RvcmFnZUluZm9RdW90
YUNhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4OTJDRjE4RTEzNEM2MjBEMDBBQUVEQTEgLyogU3RvcmFnZUluZm9RdW90YUNhbGxiYWNrLmgg
Ki87IH07CisJCTg5MkNGMTk0MTM0QzYyMEQwMEFBRURBMSAvKiBTdG9yYWdlSW5mb1VzYWdlQ2Fs
bGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5
MkNGMThGMTM0QzYyMEQwMEFBRURBMSAvKiBTdG9yYWdlSW5mb1VzYWdlQ2FsbGJhY2suaCAqLzsg
fTsKKwkJODkyQ0YxRUMxMzRDNjU1NTAwQUFFREExIC8qIFN0b3JhZ2VJbmZvLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5MkNGMUVBMTM0QzY1NTUw
MEFBRURBMSAvKiBTdG9yYWdlSW5mby5jcHAgKi87IH07CisJCTg5MkNGMUVEMTM0QzY1NTUwMEFB
RURBMSAvKiBTdG9yYWdlSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODkyQ0YxRUIxMzRDNjU1NTAwQUFFREExIC8qIFN0b3JhZ2VJbmZvLmggKi87
IH07CiAJCTg5M0M0N0E3MTIzODkwOEIwMDJCM0Q4NiAvKiBGaWxlQ2FsbGJhY2suaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5M0M0N0E1MTIzODkwOEIw
MDJCM0Q4NiAvKiBGaWxlQ2FsbGJhY2suaCAqLzsgfTsKIAkJODkzQzQ3QTgxMjM4OTA4QjAwMkIz
RDg2IC8qIEZpbGVXcml0ZXJDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODkzQzQ3QTYxMjM4OTA4QjAwMkIzRDg2IC8qIEZpbGVXcml0ZXJD
YWxsYmFjay5oICovOyB9OwogCQk4OTNDNDdCNzEyMzhBMDk5MDAyQjNEODYgLyogSlNGaWxlQ2Fs
bGJhY2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODkzQzQ3QjUxMjM4QTA5OTAwMkIzRDg2IC8qIEpTRmlsZUNhbGxiYWNrLmNwcCAqLzsgfTsKQEAg
LTkxNzMsNiArOTE3OCwxMSBAQAogCQk4NjI0M0QwMDExQkMzMUY3MDBDQzAwNkEgLyogSlNBcnJh
eUJ1ZmZlclZpZXdIZWxwZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNB
cnJheUJ1ZmZlclZpZXdIZWxwZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODZE
OTgyRjYxMjVDMTU0MDAwQUQ5RTNEIC8qIERvY3VtZW50VGltaW5nLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IERvY3VtZW50VGltaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTg5MEFFMEUwMTI1NkEwNzkwMEY1OTY4QyAvKiBEaXJlY3RvcnlSZWFkZXJCYXNl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERpcmVjdG9yeVJlYWRlckJhc2Uu
aDsgcGF0aCA9IGZpbGVhcGkvRGlyZWN0b3J5UmVhZGVyQmFzZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk4OTJDRjE4RDEzNEM2MjBEMDBBQUVEQTEgLyogU3RvcmFnZUluZm9FcnJv
ckNhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0b3JhZ2VJbmZv
RXJyb3JDYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4OTJDRjE4RTEz
NEM2MjBEMDBBQUVEQTEgLyogU3RvcmFnZUluZm9RdW90YUNhbGxiYWNrLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0b3JhZ2VJbmZvUXVvdGFDYWxsYmFjay5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk4OTJDRjE4RjEzNEM2MjBEMDBBQUVEQTEgLyogU3RvcmFn
ZUluZm9Vc2FnZUNhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0
b3JhZ2VJbmZvVXNhZ2VDYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4
OTJDRjFFQTEzNEM2NTU1MDBBQUVEQTEgLyogU3RvcmFnZUluZm8uY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3RvcmFnZUluZm8uY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk4OTJDRjFFQjEzNEM2NTU1MDBBQUVEQTEgLyogU3RvcmFnZUluZm8uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvcmFnZUluZm8uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODkzQzQ3QTUxMjM4OTA4QjAwMkIzRDg2IC8qIEZpbGVDYWxs
YmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBGaWxlQ2FsbGJhY2suaDsg
cGF0aCA9IGZpbGVhcGkvRmlsZUNhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTg5M0M0N0E2MTIzODkwOEIwMDJCM0Q4NiAvKiBGaWxlV3JpdGVyQ2FsbGJhY2suaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRmlsZVdyaXRlckNhbGxiYWNrLmg7IHBhdGgg
PSBmaWxlYXBpL0ZpbGVXcml0ZXJDYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk4OTNDNDdCNTEyMzhBMDk5MDAyQjNEODYgLyogSlNGaWxlQ2FsbGJhY2suY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNGaWxlQ2FsbGJhY2suY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTMxMzMsNiArMTMxNDMsMTEgQEAKIAkJCQk1MUUw
QkFCRDBEQTU1NDg0MDBBOUU0MTcgLyogU3RvcmFnZUV2ZW50LmlkbCAqLywKIAkJCQlDNUU5QjY3
NjEwNjk3RTEzMDBDN0JCMUEgLyogU3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5jcHAgKi8sCiAJCQkJ
QzVFQkREODExMDVFRERFQzAwNTY4MTZGIC8qIFN0b3JhZ2VFdmVudERpc3BhdGNoZXIuaCAqLywK
KwkJCQk4OTJDRjFFQTEzNEM2NTU1MDBBQUVEQTEgLyogU3RvcmFnZUluZm8uY3BwICovLAorCQkJ
CTg5MkNGMUVCMTM0QzY1NTUwMEFBRURBMSAvKiBTdG9yYWdlSW5mby5oICovLAorCQkJCTg5MkNG
MThEMTM0QzYyMEQwMEFBRURBMSAvKiBTdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2suaCAqLywKKwkJ
CQk4OTJDRjE4RTEzNEM2MjBEMDBBQUVEQTEgLyogU3RvcmFnZUluZm9RdW90YUNhbGxiYWNrLmgg
Ki8sCisJCQkJODkyQ0YxOEYxMzRDNjIwRDAwQUFFREExIC8qIFN0b3JhZ2VJbmZvVXNhZ2VDYWxs
YmFjay5oICovLAogCQkJCTUxRTBCQjM3MERBNUFDQjYwMEE5RTQxNyAvKiBTdG9yYWdlTWFwLmNw
cCAqLywKIAkJCQk1MUUwQkIzNjBEQTVBQ0I2MDBBOUU0MTcgLyogU3RvcmFnZU1hcC5oICovLAog
CQkJCUM1MEQwRTgwMEZGNDI3MjkwMEFDMjY0NCAvKiBTdG9yYWdlTmFtZXNwYWNlLmNwcCAqLywK
QEAgLTIyODM3LDYgKzIyODUyLDEwIEBACiAJCQkJRTFBMzE2MkQxMzRCQzMyRDAwN0M5QTRGIC8q
IFdlYk5TQXR0cmlidXRlZFN0cmluZ0V4dHJhcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTFBMzE2
NjMxMzRCQ0FFODAwN0M5QTRGIC8qIEhUTUxDb252ZXJ0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUIxRDVFQ0I1MTM0QjU4REEwMDg3Qzc4RiAvKiBDYWxsYmFja0Z1bmN0aW9uLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk4OTJDRjE5MjEzNEM2MjBEMDBBQUVEQTEgLyogU3RvcmFnZUluZm9FcnJvckNh
bGxiYWNrLmggaW4gSGVhZGVycyAqLywKKwkJCQk4OTJDRjE5MzEzNEM2MjBEMDBBQUVEQTEgLyog
U3RvcmFnZUluZm9RdW90YUNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKKwkJCQk4OTJDRjE5NDEz
NEM2MjBEMDBBQUVEQTEgLyogU3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrLmggaW4gSGVhZGVycyAq
LywKKwkJCQk4OTJDRjFFRDEzNEM2NTU1MDBBQUVEQTEgLyogU3RvcmFnZUluZm8uaCBpbiBIZWFk
ZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAw
OwogCQl9OwpAQCAtMjU1MjYsNiArMjU1NDUsNyBAQAogCQkJCUZEMDZERkE1MTM0QTRERUYwMDZG
NUQ3RCAvKiBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRTFBMzE2MkUxMzRCQzMyRDAwN0M5QTRGIC8qIFdlYk5TQXR0cmlidXRlZFN0cmluZ0V4dHJh
cy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUIxODI3NDkzMTM0Q0E0QzEwMEI5OEMyRCAvKiBDYWxs
YmFja0Z1bmN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTg5MkNGMUVDMTM0QzY1NTUwMEFB
RURBMSAvKiBTdG9yYWdlSW5mby5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5
Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUluZm8uY3BwIGIvU291cmNlL1dlYkNvcmUvc3RvcmFn
ZS9TdG9yYWdlSW5mby5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmM4
OTMwYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUlu
Zm8uY3BwCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICog
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUo
UVVPVEEpCisKKyNpbmNsdWRlICJTdG9yYWdlSW5mby5oIgorCisjaW5jbHVkZSAiTm90SW1wbGVt
ZW50ZWQuaCIKKyNpbmNsdWRlICJTdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2suaCIKKyNpbmNsdWRl
ICJTdG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJTdG9yYWdlSW5mb1VzYWdl
Q2FsbGJhY2suaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTY3JpcHRFeGVjdXRp
b25Db250ZXh0OworCitTdG9yYWdlSW5mbzo6U3RvcmFnZUluZm8oKQoreworfQorCisjaWYgIVBM
QVRGT1JNKENIUk9NSVVNKQordm9pZCBTdG9yYWdlSW5mbzo6cXVlcnlVc2FnZUFuZFF1b3RhKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBpbnQsIFBhc3NSZWZQdHI8U3RvcmFnZUluZm9Vc2FnZUNh
bGxiYWNrPiwgUGFzc1JlZlB0cjxTdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2s+KQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgU3RvcmFnZUluZm86OnJlcXVlc3RRdW90YShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiwgaW50LCB1bnNpZ25lZCBsb25nIGxvbmcsIFBhc3NSZWZQdHI8
U3RvcmFnZUluZm9RdW90YUNhbGxiYWNrPiwgUGFzc1JlZlB0cjxTdG9yYWdlSW5mb0Vycm9yQ2Fs
bGJhY2s+KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisjZW5kaWYKKworU3RvcmFnZUlu
Zm86On5TdG9yYWdlSW5mbygpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIEVOQUJMRShRVU9UQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2Uv
U3RvcmFnZUluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUluZm8uaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNzQyNjg5Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlSW5mby5oCkBAIC0wLDAgKzEsNjcgQEAK
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
aWZuZGVmIFN0b3JhZ2VJbmZvX2gKKyNkZWZpbmUgU3RvcmFnZUluZm9faAorCisjaWYgRU5BQkxF
KFFVT1RBKQorCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQ7CitjbGFzcyBTdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2s7CitjbGFzcyBTdG9yYWdl
SW5mb1F1b3RhQ2FsbGJhY2s7CitjbGFzcyBTdG9yYWdlSW5mb1VzYWdlQ2FsbGJhY2s7CisKK2Ns
YXNzIFN0b3JhZ2VJbmZvIDogcHVibGljIFJlZkNvdW50ZWQ8U3RvcmFnZUluZm8+IHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdG9yYWdlSW5mbz4gY3JlYXRlKCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3RvcmFnZUluZm8oKSk7CisgICAgfQorCisgICAg
dm9pZCBxdWVyeVVzYWdlQW5kUXVvdGEoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGludCBzdG9y
YWdlVHlwZSwgUGFzc1JlZlB0cjxTdG9yYWdlSW5mb1VzYWdlQ2FsbGJhY2s+LCBQYXNzUmVmUHRy
PFN0b3JhZ2VJbmZvRXJyb3JDYWxsYmFjaz4pOworICAgIHZvaWQgcmVxdWVzdFF1b3RhKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqLCBpbnQgc3RvcmFnZVR5cGUsIHVuc2lnbmVkIGxvbmcgbG9uZyBu
ZXdRdW90YUluQnl0ZXMsIFBhc3NSZWZQdHI8U3RvcmFnZUluZm9RdW90YUNhbGxiYWNrPiwgUGFz
c1JlZlB0cjxTdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2s+KTsKKworcHJpdmF0ZToKKyAgICBTdG9y
YWdlSW5mbygpOworICAgIH5TdG9yYWdlSW5mbygpOworCisgICAgZnJpZW5kIGNsYXNzIFJlZkNv
dW50ZWQ8U3RvcmFnZUluZm8+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gRU5BQkxFKFFVT1RBKQorCisjZW5kaWYgLy8gU3RvcmFnZUluZm9faApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2suaCBiL1Nv
dXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUluZm9FcnJvckNhbGxiYWNrLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmUzZDc1ZQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUluZm9FcnJvckNhbGxiYWNrLmgKQEAgLTAsMCAr
MSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0Ogor
ICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisg
KiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgU3RvcmFnZUluZm9FcnJvckNhbGxiYWNrX2gKKyNkZWZpbmUgU3RvcmFn
ZUluZm9FcnJvckNhbGxiYWNrX2gKKworI2lmIEVOQUJMRShRVU9UQSkKKworI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRE9NQ29yZUV4
Y2VwdGlvbjsKKworY2xhc3MgU3RvcmFnZUluZm9FcnJvckNhbGxiYWNrIDogcHVibGljIFJlZkNv
dW50ZWQ8U3RvcmFnZUluZm9FcnJvckNhbGxiYWNrPiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+
U3RvcmFnZUluZm9FcnJvckNhbGxiYWNrKCkgeyB9CisgICAgdmlydHVhbCBib29sIGhhbmRsZUV2
ZW50KERPTUNvcmVFeGNlcHRpb24qKSA9IDA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBFTkFCTEUoUVVPVEEpCisKKyNlbmRpZiAvLyBTdG9yYWdlSW5mb0Vycm9y
Q2FsbGJhY2tfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlSW5m
b1F1b3RhQ2FsbGJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUluZm9RdW90
YUNhbGxiYWNrLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjZmZGU5OQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUluZm9RdW90
YUNhbGxiYWNrLmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
CisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgU3RvcmFnZUluZm9RdW90YUNhbGxi
YWNrX2gKKyNkZWZpbmUgU3RvcmFnZUluZm9RdW90YUNhbGxiYWNrX2gKKworI2lmIEVOQUJMRShR
VU9UQSkKKworI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgU3RvcmFnZUluZm9RdW90YUNhbGxiYWNrIDogcHVibGljIFJlZkNvdW50ZWQ8
U3RvcmFnZUluZm9RdW90YUNhbGxiYWNrPiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+U3RvcmFn
ZUluZm9RdW90YUNhbGxiYWNrKCkgeyB9CisgICAgdmlydHVhbCBib29sIGhhbmRsZUV2ZW50KHVu
c2lnbmVkIGxvbmcgbG9uZyBncmFudGVkUXVvdGFJbkJ5dGVzKSA9IDA7Cit9OworCit9IC8vIG5h
bWVzcGFjZQorCisjZW5kaWYgLy8gRU5BQkxFKFFVT1RBKQorCisjZW5kaWYgLy8gU3RvcmFnZUlu
Zm9RdW90YUNhbGxiYWNrX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3Rv
cmFnZUluZm9Vc2FnZUNhbGxiYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VJ
bmZvVXNhZ2VDYWxsYmFjay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgz
ODI2MTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VJ
bmZvVXNhZ2VDYWxsYmFjay5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
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
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFN0b3JhZ2VJbmZvVXNh
Z2VDYWxsYmFja19oCisjZGVmaW5lIFN0b3JhZ2VJbmZvVXNhZ2VDYWxsYmFja19oCisKKyNpZiBF
TkFCTEUoUVVPVEEpCisKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIFN0b3JhZ2VJbmZvVXNhZ2VDYWxsYmFjayA6IHB1YmxpYyBSZWZD
b3VudGVkPFN0b3JhZ2VJbmZvVXNhZ2VDYWxsYmFjaz4geworcHVibGljOgorICAgIHZpcnR1YWwg
flN0b3JhZ2VJbmZvVXNhZ2VDYWxsYmFjaygpIHsgfQorICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVF
dmVudCh1bnNpZ25lZCBsb25nIGxvbmcgY3VycmVudFVzYWdlSW5CeXRlcywgdW5zaWduZWQgbG9u
ZyBsb25nIGN1cnJlbnRRdW90YUluQnl0ZXMpID0gMDsKK307CisKK30gLy8gbmFtZXNwYWNlCisK
KyNlbmRpZiAvLyBFTkFCTEUoUVVPVEEpCisKKyNlbmRpZiAvLyBTdG9yYWdlSW5mb1VzYWdlQ2Fs
bGJhY2tfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA2NTg0NzI0Li5kNzE5YjcwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDExLTA0LTA2ICBL
aW51a28gWWFzdWRhICA8a2ludWtvQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbW9jayBpbXBsZW1lbnRhdGlvbiBhbmQg
cGx1bWJpbmcgY29kZSBmb3IgdW5pZmllZCBRdW90YSBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU3OTI3CisKKyAgICAgICAgQWRkZWQgcGx1bWJp
bmcgY29kZSBmb3IgdGhlIHF1b3RhIEFQSSwgdGhhdCBpcyBiYXNlZCBvbiB0aGUKKyAgICAgICAg
ZGlzY3Vzc2lvbiBvbiBwdWJsaWMtd2ViYXBwczoKKyAgICAgICAgaHR0cDovL2xpc3RzLnczLm9y
Zy9BcmNoaXZlcy9QdWJsaWMvcHVibGljLXdlYmFwcHMvMjAxMUphbk1hci8wMzQ2Lmh0bWwKKwor
ICAgICAgICAqIFdlYktpdC5neXA6IEFkZGVkIG5ldyBmaWxlIGVudHJpZXMuCisgICAgICAgICog
c3JjL1N0b3JhZ2VJbmZvQ2hyb21pdW0uY3BwOiBBZGRlZC4KKyAgICAgICAgKiBzcmMvV2ViU3Rv
cmFnZVF1b3RhQ2FsbGJhY2tzSW1wbC5jcHA6IEFkZGVkLiBBbiBpbXBsZW1lbnRhdGlvbiBvZgor
ICAgICAgICBXZWJTdG9yYWdlUXVvdGFDYWxsYmFja3MuCisgICAgICAgICogc3JjL1dlYlN0b3Jh
Z2VRdW90YUNhbGxiYWNrc0ltcGwuaDogQWRkZWQuCisKIDIwMTEtMDQtMDYgIEFzYW5rYSBIZXJh
dGggIDxhc2Fua2FAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZp
c2hlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAppbmRleCAyNjNiNDllLi5jN2NiNjRlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCkBAIC00MDAsNiArNDAwLDcgQEAKICAgICAgICAg
ICAgICAgICAnc3JjL1N0b3JhZ2VFdmVudERpc3BhdGNoZXJDaHJvbWl1bS5jcHAnLAogICAgICAg
ICAgICAgICAgICdzcmMvU3RvcmFnZUV2ZW50RGlzcGF0Y2hlckltcGwuY3BwJywKICAgICAgICAg
ICAgICAgICAnc3JjL1N0b3JhZ2VFdmVudERpc3BhdGNoZXJJbXBsLmgnLAorICAgICAgICAgICAg
ICAgICdzcmMvU3RvcmFnZUluZm9DaHJvbWl1bS5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMv
U3RvcmFnZU5hbWVzcGFjZVByb3h5LmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9TdG9yYWdl
TmFtZXNwYWNlUHJveHkuaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9UZW1wb3JhcnlHbHVlLmgn
LApAQCAtNTUyLDYgKzU1Myw4IEBACiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJTdG9yYWdlRXZl
bnREaXNwYXRjaGVySW1wbC5oJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYlN0b3JhZ2VOYW1l
c3BhY2VJbXBsLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJTdG9yYWdlTmFtZXNwYWNl
SW1wbC5oJywKKyAgICAgICAgICAgICAgICAnc3JjL1dlYlN0b3JhZ2VRdW90YUNhbGxiYWNrc0lt
cGwuY3BwJywKKyAgICAgICAgICAgICAgICAnc3JjL1dlYlN0b3JhZ2VRdW90YUNhbGxiYWNrc0lt
cGwuaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJTdHJpbmcuY3BwJywKICAgICAgICAgICAg
ICAgICAnc3JjL1dlYlRleHRSdW4uY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYlRocmVh
ZFNhZmVEYXRhLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9T
dG9yYWdlSW5mb0Nocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1N0b3Jh
Z2VJbmZvQ2hyb21pdW0uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRi
OTk2MzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9TdG9y
YWdlSW5mb0Nocm9taXVtLmNwcApAQCAtMCwwICsxLDgzIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAq
ICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIlN0b3JhZ2VJbmZvLmgiCisKKyNpZiBFTkFCTEUoUVVPVEEpCisKKyNpbmNsdWRl
ICJET01Db3JlRXhjZXB0aW9uLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJT
Y3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisjaW5jbHVkZSAiU3RvcmFnZUluZm9FcnJvckNhbGxi
YWNrLmgiCisjaW5jbHVkZSAiU3RvcmFnZUluZm9RdW90YUNhbGxiYWNrLmgiCisjaW5jbHVkZSAi
U3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrLmgiCisjaW5jbHVkZSAiV2ViRnJhbWVDbGllbnQuaCIK
KyNpbmNsdWRlICJXZWJGcmFtZUltcGwuaCIKKyNpbmNsdWRlICJXZWJTdG9yYWdlUXVvdGFDYWxs
YmFja3NJbXBsLmgiCisjaW5jbHVkZSAiV2ViU3RvcmFnZVF1b3RhVHlwZS5oIgorCit1c2luZyBu
YW1lc3BhY2UgV2ViS2l0OworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgU3RvcmFnZUlu
Zm86OnF1ZXJ5VXNhZ2VBbmRRdW90YShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBp
bnQgc3RvcmFnZVR5cGUsIFBhc3NSZWZQdHI8U3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrPiBzdWNj
ZXNzQ2FsbGJhY2ssIFBhc3NSZWZQdHI8U3RvcmFnZUluZm9FcnJvckNhbGxiYWNrPiBlcnJvckNh
bGxiYWNrKQoreworICAgIEFTU0VSVChjb250ZXh0KTsKKyAgICBpZiAoY29udGV4dC0+aXNEb2N1
bWVudCgpKSB7CisgICAgICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHN0YXRpY19jYXN0PERvY3Vt
ZW50Kj4oY29udGV4dCk7CisgICAgICAgIFdlYkZyYW1lSW1wbCogd2ViRnJhbWUgPSBXZWJGcmFt
ZUltcGw6OmZyb21GcmFtZShkb2N1bWVudC0+ZnJhbWUoKSk7CisgICAgICAgIHdlYkZyYW1lLT5j
bGllbnQoKS0+cXVlcnlTdG9yYWdlVXNhZ2VBbmRRdW90YSh3ZWJGcmFtZSwgc3RhdGljX2Nhc3Q8
V2ViU3RvcmFnZVF1b3RhVHlwZT4oc3RvcmFnZVR5cGUpLCBXZWJTdG9yYWdlUXVvdGFDYWxsYmFj
a3NJbXBsOjpjcmVhdGVGb3JVc2FnZUNhbGxiYWNrKHN1Y2Nlc3NDYWxsYmFjaywgZXJyb3JDYWxs
YmFjaykpOworICAgIH0gZWxzZSBpZiAoZXJyb3JDYWxsYmFjaykgeworICAgICAgICAvLyBUaGlz
IG11c3Qgbm90IGJlIGNhbGxlZCBpbiB0aGUgd29ya2VyIGNvbnRleHQuCisgICAgICAgIEV4Y2Vw
dGlvbkNvZGVEZXNjcmlwdGlvbiBkZXNjcmlwdGlvbjsKKyAgICAgICAgZ2V0RXhjZXB0aW9uQ29k
ZURlc2NyaXB0aW9uKE5PVF9TVVBQT1JURURfRVJSLCBkZXNjcmlwdGlvbik7CisgICAgICAgIGVy
cm9yQ2FsbGJhY2stPmhhbmRsZUV2ZW50KERPTUNvcmVFeGNlcHRpb246OmNyZWF0ZShkZXNjcmlw
dGlvbikuZ2V0KCkpOworICAgIH0KK30KKwordm9pZCBTdG9yYWdlSW5mbzo6cmVxdWVzdFF1b3Rh
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGludCBzdG9yYWdlVHlwZSwgdW5zaWdu
ZWQgbG9uZyBsb25nIG5ld1F1b3RhSW5CeXRlcywgUGFzc1JlZlB0cjxTdG9yYWdlSW5mb1F1b3Rh
Q2FsbGJhY2s+IHN1Y2Nlc3NDYWxsYmFjaywgUGFzc1JlZlB0cjxTdG9yYWdlSW5mb0Vycm9yQ2Fs
bGJhY2s+IGVycm9yQ2FsbGJhY2spCit7CisgICAgQVNTRVJUKGNvbnRleHQpOworICAgIGlmIChj
b250ZXh0LT5pc0RvY3VtZW50KCkpIHsKKyAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gc3Rh
dGljX2Nhc3Q8RG9jdW1lbnQqPihjb250ZXh0KTsKKyAgICAgICAgV2ViRnJhbWVJbXBsKiB3ZWJG
cmFtZSA9IFdlYkZyYW1lSW1wbDo6ZnJvbUZyYW1lKGRvY3VtZW50LT5mcmFtZSgpKTsKKyAgICAg
ICAgd2ViRnJhbWUtPmNsaWVudCgpLT5yZXF1ZXN0U3RvcmFnZVF1b3RhKHdlYkZyYW1lLCBzdGF0
aWNfY2FzdDxXZWJTdG9yYWdlUXVvdGFUeXBlPihzdG9yYWdlVHlwZSksIG5ld1F1b3RhSW5CeXRl
cywgV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzSW1wbDo6Y3JlYXRlRm9yUXVvdGFDYWxsYmFjayhz
dWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spKTsKKyAgICB9IGVsc2UgaWYgKGVycm9yQ2Fs
bGJhY2spIHsKKyAgICAgICAgLy8gVGhpcyBtdXN0IG5vdCBiZSBjYWxsZWQgaW4gdGhlIHdvcmtl
ciBjb250ZXh0LgorICAgICAgICBFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24gZGVzY3JpcHRpb247
CisgICAgICAgIGdldEV4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbihOT1RfU1VQUE9SVEVEX0VSUiwg
ZGVzY3JpcHRpb24pOworICAgICAgICBlcnJvckNhbGxiYWNrLT5oYW5kbGVFdmVudChET01Db3Jl
RXhjZXB0aW9uOjpjcmVhdGUoZGVzY3JpcHRpb24pLmdldCgpKTsKKyAgICB9Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShRVU9UQSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlN0b3JhZ2VRdW90YUNhbGxiYWNrc0ltcGwu
Y3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tz
SW1wbC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjgyMzhiMQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlN0b3JhZ2VRdW90
YUNhbGxiYWNrc0ltcGwuY3BwCkBAIC0wLDAgKzEsODcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
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
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzSW1wbC5oIgorCisjaWYgRU5BQkxFKFFV
T1RBKQorCisjaW5jbHVkZSAiRE9NQ29yZUV4Y2VwdGlvbi5oIgorI2luY2x1ZGUgIlN0b3JhZ2VJ
bmZvRXJyb3JDYWxsYmFjay5oIgorI2luY2x1ZGUgIlN0b3JhZ2VJbmZvUXVvdGFDYWxsYmFjay5o
IgorI2luY2x1ZGUgIlN0b3JhZ2VJbmZvVXNhZ2VDYWxsYmFjay5oIgorCit1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYlN0b3JhZ2VRdW90YUNhbGxi
YWNrc0ltcGw6OldlYlN0b3JhZ2VRdW90YUNhbGxiYWNrc0ltcGwoUGFzc1JlZlB0cjxXZWJDb3Jl
OjpTdG9yYWdlSW5mb1VzYWdlQ2FsbGJhY2s+IHVzYWdlQ2FsbGJhY2ssIFBhc3NSZWZQdHI8V2Vi
Q29yZTo6U3RvcmFnZUluZm9FcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrKQorICAgIDogbV91
c2FnZUNhbGxiYWNrKHVzYWdlQ2FsbGJhY2spCisgICAgLCBtX2Vycm9yQ2FsbGJhY2soZXJyb3JD
YWxsYmFjaykKK3sKK30KKworV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzSW1wbDo6V2ViU3RvcmFn
ZVF1b3RhQ2FsbGJhY2tzSW1wbChQYXNzUmVmUHRyPFdlYkNvcmU6OlN0b3JhZ2VJbmZvUXVvdGFD
YWxsYmFjaz4gcXVvdGFDYWxsYmFjaywgUGFzc1JlZlB0cjxXZWJDb3JlOjpTdG9yYWdlSW5mb0Vy
cm9yQ2FsbGJhY2s+IGVycm9yQ2FsbGJhY2spCisgICAgOiBtX3F1b3RhQ2FsbGJhY2socXVvdGFD
YWxsYmFjaykKKyAgICAsIG1fZXJyb3JDYWxsYmFjayhlcnJvckNhbGxiYWNrKQoreworfQorCitX
ZWJTdG9yYWdlUXVvdGFDYWxsYmFja3NJbXBsOjp+V2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzSW1w
bCgpCit7Cit9CisKK3ZvaWQgV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzSW1wbDo6ZGlkUXVlcnlT
dG9yYWdlVXNhZ2VBbmRRdW90YSh1bnNpZ25lZCBsb25nIGxvbmcgdXNhZ2VJbkJ5dGVzLCB1bnNp
Z25lZCBsb25nIGxvbmcgcXVvdGFJbkJ5dGVzKQoreworICAgIGlmIChtX3VzYWdlQ2FsbGJhY2sp
CisgICAgICAgIG1fdXNhZ2VDYWxsYmFjay0+aGFuZGxlRXZlbnQodXNhZ2VJbkJ5dGVzLCBxdW90
YUluQnl0ZXMpOworICAgIGRlbGV0ZSB0aGlzOworfQorCit2b2lkIFdlYlN0b3JhZ2VRdW90YUNh
bGxiYWNrc0ltcGw6Ondhc0dyYW50ZWRTdG9yYWdlUXVvdGEodW5zaWduZWQgbG9uZyBsb25nIGdy
YW50ZWRRdW90YUluQnl0ZXMpCit7CisgICAgaWYgKG1fcXVvdGFDYWxsYmFjaykKKyAgICAgICAg
bV9xdW90YUNhbGxiYWNrLT5oYW5kbGVFdmVudChncmFudGVkUXVvdGFJbkJ5dGVzKTsKKyAgICBk
ZWxldGUgdGhpczsKK30KKwordm9pZCBXZWJTdG9yYWdlUXVvdGFDYWxsYmFja3NJbXBsOjpkaWRG
YWlsKFdlYkV4Y2VwdGlvbkNvZGUgZXJyb3IpCit7CisgICAgaWYgKG1fZXJyb3JDYWxsYmFjaykg
eworICAgICAgICBFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24gZGVzY3JpcHRpb247CisgICAgICAg
IGdldEV4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbihlcnJvciwgZGVzY3JpcHRpb24pOworICAgICAg
ICBtX2Vycm9yQ2FsbGJhY2stPmhhbmRsZUV2ZW50KERPTUNvcmVFeGNlcHRpb246OmNyZWF0ZShk
ZXNjcmlwdGlvbikuZ2V0KCkpOworICAgIH0KKyAgICBkZWxldGUgdGhpczsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoUVVPVEEpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTdG9yYWdlUXVvdGFDYWxsYmFja3NJbXBsLmgg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTdG9yYWdlUXVvdGFDYWxsYmFja3NJbXBs
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGNjNTExOAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlN0b3JhZ2VRdW90YUNhbGxi
YWNrc0ltcGwuaApAQCAtMCwwICsxLDc4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
KyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJTdG9yYWdlUXVvdGFDYWxsYmFj
a3NJbXBsX2gKKyNkZWZpbmUgV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzSW1wbF9oCisKKyNpbmNs
dWRlICJXZWJTdG9yYWdlUXVvdGFDYWxsYmFja3MuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc093blB0
ci5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBTdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2s7
CitjbGFzcyBTdG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2s7CitjbGFzcyBTdG9yYWdlSW5mb1VzYWdl
Q2FsbGJhY2s7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJTdG9yYWdlUXVv
dGFDYWxsYmFja3NJbXBsIDogcHVibGljIFdlYlN0b3JhZ2VRdW90YUNhbGxiYWNrcyB7CitwdWJs
aWM6CisgICAgc3RhdGljIFdlYlN0b3JhZ2VRdW90YUNhbGxiYWNrc0ltcGwqIGNyZWF0ZUZvclVz
YWdlQ2FsbGJhY2soUGFzc1JlZlB0cjxXZWJDb3JlOjpTdG9yYWdlSW5mb1VzYWdlQ2FsbGJhY2s+
IHVzYWdlQ2FsbGJhY2ssIFBhc3NSZWZQdHI8V2ViQ29yZTo6U3RvcmFnZUluZm9FcnJvckNhbGxi
YWNrPiBlcnJvckNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgLy8gVGhpcyByZXR1cm5zIGEgbGVh
a2VkIHB0ciAodGhlIGNsYXNzIGlzIHNlbGYtZGVzdHJ1Y3RlZCkuCisgICAgICAgIHJldHVybiBh
ZG9wdFB0cihuZXcgV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzSW1wbCh1c2FnZUNhbGxiYWNrLCBl
cnJvckNhbGxiYWNrKSkubGVha1B0cigpOworICAgIH0KKworICAgIHN0YXRpYyBXZWJTdG9yYWdl
UXVvdGFDYWxsYmFja3NJbXBsKiBjcmVhdGVGb3JRdW90YUNhbGxiYWNrKFBhc3NSZWZQdHI8V2Vi
Q29yZTo6U3RvcmFnZUluZm9RdW90YUNhbGxiYWNrPiBxdW90YUNhbGxiYWNrLCBQYXNzUmVmUHRy
PFdlYkNvcmU6OlN0b3JhZ2VJbmZvRXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFjaykKKyAgICB7
CisgICAgICAgIC8vIFRoaXMgcmV0dXJucyBhIGxlYWtlZCBwdHIgKHRoZSBjbGFzcyBpcyBzZWxm
LWRlc3RydWN0ZWQpLgorICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFdlYlN0b3JhZ2VRdW90
YUNhbGxiYWNrc0ltcGwocXVvdGFDYWxsYmFjaywgZXJyb3JDYWxsYmFjaykpLmxlYWtQdHIoKTsK
KyAgICB9CisKKyAgICB2aXJ0dWFsIH5XZWJTdG9yYWdlUXVvdGFDYWxsYmFja3NJbXBsKCk7CisK
KyAgICB2aXJ0dWFsIHZvaWQgZGlkUXVlcnlTdG9yYWdlVXNhZ2VBbmRRdW90YSh1bnNpZ25lZCBs
b25nIGxvbmcgdXNhZ2VJbkJ5dGVzLCB1bnNpZ25lZCBsb25nIGxvbmcgcXVvdGFJbkJ5dGVzKTsK
KyAgICB2aXJ0dWFsIHZvaWQgd2FzR3JhbnRlZFN0b3JhZ2VRdW90YSh1bnNpZ25lZCBsb25nIGxv
bmcgZ3JhbnRlZFF1b3RhSW5CeXRlcyk7CisgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoV2ViRXhj
ZXB0aW9uQ29kZSBlcnJvcik7CisKK3ByaXZhdGU6CisgICAgV2ViU3RvcmFnZVF1b3RhQ2FsbGJh
Y2tzSW1wbChQYXNzUmVmUHRyPFdlYkNvcmU6OlN0b3JhZ2VJbmZvVXNhZ2VDYWxsYmFjaz4sIFBh
c3NSZWZQdHI8V2ViQ29yZTo6U3RvcmFnZUluZm9FcnJvckNhbGxiYWNrPik7CisgICAgV2ViU3Rv
cmFnZVF1b3RhQ2FsbGJhY2tzSW1wbChQYXNzUmVmUHRyPFdlYkNvcmU6OlN0b3JhZ2VJbmZvUXVv
dGFDYWxsYmFjaz4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6U3RvcmFnZUluZm9FcnJvckNhbGxiYWNr
Pik7CisKKyAgICBSZWZQdHI8V2ViQ29yZTo6U3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrPiBtX3Vz
YWdlQ2FsbGJhY2s7CisgICAgUmVmUHRyPFdlYkNvcmU6OlN0b3JhZ2VJbmZvUXVvdGFDYWxsYmFj
az4gbV9xdW90YUNhbGxiYWNrOworICAgIFJlZlB0cjxXZWJDb3JlOjpTdG9yYWdlSW5mb0Vycm9y
Q2FsbGJhY2s+IG1fZXJyb3JDYWxsYmFjazsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAor
CisjZW5kaWYgLy8gV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzSW1wbF9oCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88783</attachid>
            <date>2011-04-08 02:12:12 -0700</date>
            <delta_ts>2011-04-10 23:55:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-57927-20110408181210.patch</filename>
            <type>text/plain</type>
            <size>37619</size>
            <attacher name="Kinuko Yasuda">kinuko</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODMyNjMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggYjUxODBj
OWRiMTkwMGY4NWM2N2ZmYTljOTVjMTI3ZjAwMjczY2NjMS4uMzJjYjI2OGVhMzZlODA5Mzc5NWNj
YzIzOGQ3MGRmODJjOTc5NmQ0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE5NDYsNiArMTk0
NiwxMSBAQCBJRiAoRU5BQkxFX1BST0dSRVNTX1RBRykKICAgICApCiBFTkRJRiAoKQogCitpZiAo
RU5BQkxFX1FVT1RBKQorICAgIExJU1QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUworICAgICAgICBz
dG9yYWdlL1N0b3JhZ2VJbmZvLmNwcAorICAgICkKK0VORElGICgpCiAKIAogIyBNb2R1bGVzIHRo
YXQgdGhlIGJpbmRpbmdzIGdlbmVyYXRvciBzY3JpcHRzIG1heSB1c2UKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4
MDk2YzgwNjQwYTY3ODE1ZWE2MTdiMWYyZDQ3NWY1NzViMjBiYzIzLi5hZGM1OTIyODAzMDJkYWRm
N2I3ZWNlZTMyZmE3NjU4YjYxMTRhZDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIw
MTEtMDQtMDcgIEtpbnVrbyBZYXN1ZGEgIDxraW51a29AY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBtb2NrIGltcGxlbWVu
dGF0aW9uIGFuZCBwbHVtYmluZyBjb2RlIGZvciB1bmlmaWVkIFF1b3RhIEFQSQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTc5MjcKKworICAgICAgICBB
ZGRlZCBtb2NrIGltcGxlbWVudGF0aW9uIGFuZCBzb21lIHBsdW1iaW5nIGNvZGUgZm9yIHRoZSBx
dW90YSBBUEksCisgICAgICAgIHRoYXQgaXMgYmFzZWQgb24gdGhlIGRpc2N1c3Npb24gb24gcHVi
bGljLXdlYmFwcHM6CisgICAgICAgIGh0dHA6Ly9saXN0cy53My5vcmcvQXJjaGl2ZXMvUHVibGlj
L3B1YmxpYy13ZWJhcHBzLzIwMTFKYW5NYXIvMDM0Ni5odG1sCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzOiB0ZXN0cyB3aWxsIGJlIGFkZGVkIHdoZW4gd2UgZXhwb3NlIHRoZSBBUEkuCisKKyAgICAg
ICAgKiBDTWFrZUxpc3RzLnR4dDogQWRkZWQgbmV3IGZpbGUgZW50cmllcy4KKyAgICAgICAgKiBE
ZXJpdmVkU291cmNlcy5jcHA6IEFkZGVkIG5ldyBmaWxlIGVudHJpZXMuCisgICAgICAgICogRGVy
aXZlZFNvdXJjZXMubWFrZTogQWRkZWQgbmV3IGZpbGUgZW50cmllcy4KKyAgICAgICAgKiBHTlVt
YWtlZmlsZS5hbTogQWRkZWQgbmV3IGZpbGUgZW50cmllcy4KKyAgICAgICAgKiBXZWJDb3JlLmd5
cGk6IEFkZGVkIG5ldyBmaWxlIGVudHJpZXMuCisgICAgICAgICogV2ViQ29yZS5wcm86IEFkZGVk
IG5ldyBmaWxlIGVudHJpZXMuCisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2o6IEFkZGVkIG5ldyBmaWxlIGVudHJpZXMuCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOiBBZGRlZCBuZXcgZmlsZSBlbnRyaWVzLgorICAgICAgICAqIHN0b3Jh
Z2UvU3RvcmFnZUluZm8uY3BwOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL1N0b3JhZ2VJbmZv
Lmg6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZUluZm9FcnJvckNhbGxiYWNrLmg6
IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZUluZm9RdW90YUNhbGxiYWNrLmg6IEFk
ZGVkLgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrLmg6IEFkZGVk
LgorCiAyMDExLTA0LTA3ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggY2NjYTQ3OTQ2
ZGU2NDI1YmIwNGQxMGVlM2EyZDhkMjA4YmYwMzQyZS4uNzY3MDQwODgwNzk5Y2EyMjk1ODljNGRl
NzM1NDAwOGU3YzBmNTc4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNTUyNyw2ICs1NTI3LDExIEBA
CiAgICAgICAgICAgICAnc3RvcmFnZS9TdG9yYWdlRXZlbnQuaCcsCiAgICAgICAgICAgICAnc3Rv
cmFnZS9TdG9yYWdlRXZlbnREaXNwYXRjaGVyLmNwcCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9T
dG9yYWdlRXZlbnREaXNwYXRjaGVyLmgnLAorICAgICAgICAgICAgJ3N0b3JhZ2UvU3RvcmFnZUlu
Zm8uY3BwJywKKyAgICAgICAgICAgICdzdG9yYWdlL1N0b3JhZ2VJbmZvLmgnLAorICAgICAgICAg
ICAgJ3N0b3JhZ2UvU3RvcmFnZUluZm9FcnJvckNhbGxiYWNrLmgnLAorICAgICAgICAgICAgJ3N0
b3JhZ2UvU3RvcmFnZUluZm9RdW90YUNhbGxiYWNrLmgnLAorICAgICAgICAgICAgJ3N0b3JhZ2Uv
U3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrLmgnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvU3RvcmFn
ZU1hcC5jcHAnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvU3RvcmFnZU1hcC5oJywKICAgICAgICAg
ICAgICdzdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2UuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUucHJvIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggZGYz
MzY5YzY0ZWU2MDY4NTJkM2VjNjdhNThlZmU5OTZiMWE5MTUwYS4uYzdmMTQ0M2Q1NTYzNmZhYTNk
ODlhMDQyMWNhZWVkN2JmZGFhM2JmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5wcm8KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTI5MjcsNiArMjkyNywx
NyBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfSU5QVVRfU1BFRUNIPTEpIHsKICAgICAgICAg
cmVuZGVyaW5nL1JlbmRlcklucHV0U3BlZWNoLmNwcAogfQogCitjb250YWlucyhERUZJTkVTLCBF
TkFCTEVfUVVPVEE9MSkgeworICAgIEhFQURFUlMgKz0gXAorICAgICAgICBzdG9yYWdlL1N0b3Jh
Z2VJbmZvLmggXAorICAgICAgICBzdG9yYWdlL1N0b3JhZ2VJbmZvRXJyb3JDYWxsYmFjay5oIFwK
KyAgICAgICAgc3RvcmFnZS9TdG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2suaCBcCisgICAgICAgIHN0
b3JhZ2UvU3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrLmgKKworICAgIFNPVVJDRVMgKz0gXAorICAg
ICAgICBzdG9yYWdlL1N0b3JhZ2VJbmZvLmNwcAorfQorCiBjb250YWlucyhERUZJTkVTLCBFTkFC
TEVfVklERU89MSkgewogICAgIFNPVVJDRVMgKz0gXAogICAgICAgICBodG1sL0hUTUxBdWRpb0Vs
ZW1lbnQuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2oKaW5kZXggYzJlM2E1NDA5NThjNTY1ZmNjN2E2NDViNmYzZGIxYWZhYzljOTQ1Zi4uOGFjMWE4
NzUwMGEzNzA2MGFhNjQ3MmFmMDUwMzE1MWE5Yjc0M2ZiNiAxMDA3NTUKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTY2MTc0LDYgKzY2MTc0LDI2IEBACiAJ
CQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN0b3JhZ2Vc
U3RvcmFnZUluZm8uY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRp
dmVQYXRoPSIuLlxzdG9yYWdlXFN0b3JhZ2VJbmZvLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJ
PEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN0b3JhZ2VcU3RvcmFnZUluZm9FcnJvckNhbGxi
YWNrLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XHN0b3JhZ2VcU3RvcmFnZUluZm9RdW90YUNhbGxiYWNrLmgiCisJCQkJPgorCQkJPC9GaWxlPgor
CQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN0b3JhZ2VcU3RvcmFnZUluZm9Vc2FnZUNh
bGxiYWNrLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXHN0b3JhZ2VcU3RvcmFnZU1hcC5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDhmYWQx
YmZkY2Y5OGNjYWQ1ZGQxMzFkYjE3YWI4ZTg2MGRlOTE3ODUuLmI5YzM3ZTZlY2ZiNjU4YWFjMDJk
NTg2OWJkOGIwMDIzY2M5ODFkZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI2NDksNiArMjY0OSwxMSBAQAogCQk4NjI0M0Qw
MTExQkMzMUY3MDBDQzAwNkEgLyogSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2MjQzRDAwMTFCQzMxRjcwMEND
MDA2QSAvKiBKU0FycmF5QnVmZmVyVmlld0hlbHBlci5oICovOyB9OwogCQk4NkQ5ODJGNzEyNUMx
NTQwMDBBRDlFM0QgLyogRG9jdW1lbnRUaW1pbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2RDk4MkY2MTI1QzE1NDAwMEFEOUUzRCAvKiBEb2N1bWVu
dFRpbWluZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTg5MEFFMEUxMTI1NkEwNzkwMEY1OTY4QyAvKiBEaXJlY3RvcnlSZWFkZXJCYXNlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OTBBRTBFMDEyNTZB
MDc5MDBGNTk2OEMgLyogRGlyZWN0b3J5UmVhZGVyQmFzZS5oICovOyB9OworCQk4OTJDRjE5MjEz
NEM2MjBEMDBBQUVEQTEgLyogU3RvcmFnZUluZm9FcnJvckNhbGxiYWNrLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OTJDRjE4RDEzNEM2MjBEMDBBQUVE
QTEgLyogU3RvcmFnZUluZm9FcnJvckNhbGxiYWNrLmggKi87IH07CisJCTg5MkNGMTkzMTM0QzYy
MEQwMEFBRURBMSAvKiBTdG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5MkNGMThFMTM0QzYyMEQwMEFBRURBMSAv
KiBTdG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2suaCAqLzsgfTsKKwkJODkyQ0YxOTQxMzRDNjIwRDAw
QUFFREExIC8qIFN0b3JhZ2VJbmZvVXNhZ2VDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODkyQ0YxOEYxMzRDNjIwRDAwQUFFREExIC8qIFN0
b3JhZ2VJbmZvVXNhZ2VDYWxsYmFjay5oICovOyB9OworCQk4OTJDRjFFQzEzNEM2NTU1MDBBQUVE
QTEgLyogU3RvcmFnZUluZm8uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODkyQ0YxRUExMzRDNjU1NTAwQUFFREExIC8qIFN0b3JhZ2VJbmZvLmNwcCAq
LzsgfTsKKwkJODkyQ0YxRUQxMzRDNjU1NTAwQUFFREExIC8qIFN0b3JhZ2VJbmZvLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OTJDRjFFQjEzNEM2NTU1
MDBBQUVEQTEgLyogU3RvcmFnZUluZm8uaCAqLzsgfTsKIAkJODkzQzQ3QTcxMjM4OTA4QjAwMkIz
RDg2IC8qIEZpbGVDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODkzQzQ3QTUxMjM4OTA4QjAwMkIzRDg2IC8qIEZpbGVDYWxsYmFjay5oICov
OyB9OwogCQk4OTNDNDdBODEyMzg5MDhCMDAyQjNEODYgLyogRmlsZVdyaXRlckNhbGxiYWNrLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OTNDNDdBNjEy
Mzg5MDhCMDAyQjNEODYgLyogRmlsZVdyaXRlckNhbGxiYWNrLmggKi87IH07CiAJCTg5M0M0N0I3
MTIzOEEwOTkwMDJCM0Q4NiAvKiBKU0ZpbGVDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OTNDNDdCNTEyMzhBMDk5MDAyQjNEODYgLyog
SlNGaWxlQ2FsbGJhY2suY3BwICovOyB9OwpAQCAtOTE3Niw2ICs5MTgxLDExIEBACiAJCTg2MjQz
RDAwMTFCQzMxRjcwMENDMDA2QSAvKiBKU0FycmF5QnVmZmVyVmlld0hlbHBlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0FycmF5QnVmZmVyVmlld0hlbHBlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NkQ5ODJGNjEyNUMxNTQwMDBBRDlFM0QgLyogRG9j
dW1lbnRUaW1pbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRG9jdW1lbnRU
aW1pbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODkwQUUwRTAxMjU2QTA3OTAw
RjU5NjhDIC8qIERpcmVjdG9yeVJlYWRlckJhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gRGlyZWN0b3J5UmVhZGVyQmFzZS5oOyBwYXRoID0gZmlsZWFwaS9EaXJlY3RvcnlS
ZWFkZXJCYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg5MkNGMThEMTM0QzYy
MEQwMEFBRURBMSAvKiBTdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU3RvcmFnZUluZm9FcnJvckNhbGxiYWNrLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTg5MkNGMThFMTM0QzYyMEQwMEFBRURBMSAvKiBTdG9yYWdlSW5m
b1F1b3RhQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvcmFn
ZUluZm9RdW90YUNhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg5MkNG
MThGMTM0QzYyMEQwMEFBRURBMSAvKiBTdG9yYWdlSW5mb1VzYWdlQ2FsbGJhY2suaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg5MkNGMUVBMTM0QzY1NTUwMEFBRURBMSAvKiBT
dG9yYWdlSW5mby5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdG9y
YWdlSW5mby5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg5MkNGMUVCMTM0QzY1
NTUwMEFBRURBMSAvKiBTdG9yYWdlSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTdG9yYWdlSW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4OTNDNDdB
NTEyMzg5MDhCMDAyQjNEODYgLyogRmlsZUNhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IEZpbGVDYWxsYmFjay5oOyBwYXRoID0gZmlsZWFwaS9GaWxlQ2FsbGJhY2su
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODkzQzQ3QTYxMjM4OTA4QjAwMkIzRDg2
IC8qIEZpbGVXcml0ZXJDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBGaWxlV3JpdGVyQ2FsbGJhY2suaDsgcGF0aCA9IGZpbGVhcGkvRmlsZVdyaXRlckNhbGxiYWNr
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg5M0M0N0I1MTIzOEEwOTkwMDJCM0Q4
NiAvKiBKU0ZpbGVDYWxsYmFjay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU0ZpbGVDYWxsYmFjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
MzEzOSw2ICsxMzE0OSwxMSBAQAogCQkJCTUxRTBCQUJEMERBNTU0ODQwMEE5RTQxNyAvKiBTdG9y
YWdlRXZlbnQuaWRsICovLAogCQkJCUM1RTlCNjc2MTA2OTdFMTMwMEM3QkIxQSAvKiBTdG9yYWdl
RXZlbnREaXNwYXRjaGVyLmNwcCAqLywKIAkJCQlDNUVCREQ4MTEwNUVEREVDMDA1NjgxNkYgLyog
U3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5oICovLAorCQkJCTg5MkNGMUVBMTM0QzY1NTUwMEFBRURB
MSAvKiBTdG9yYWdlSW5mby5jcHAgKi8sCisJCQkJODkyQ0YxRUIxMzRDNjU1NTAwQUFFREExIC8q
IFN0b3JhZ2VJbmZvLmggKi8sCisJCQkJODkyQ0YxOEQxMzRDNjIwRDAwQUFFREExIC8qIFN0b3Jh
Z2VJbmZvRXJyb3JDYWxsYmFjay5oICovLAorCQkJCTg5MkNGMThFMTM0QzYyMEQwMEFBRURBMSAv
KiBTdG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2suaCAqLywKKwkJCQk4OTJDRjE4RjEzNEM2MjBEMDBB
QUVEQTEgLyogU3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrLmggKi8sCiAJCQkJNTFFMEJCMzcwREE1
QUNCNjAwQTlFNDE3IC8qIFN0b3JhZ2VNYXAuY3BwICovLAogCQkJCTUxRTBCQjM2MERBNUFDQjYw
MEE5RTQxNyAvKiBTdG9yYWdlTWFwLmggKi8sCiAJCQkJQzUwRDBFODAwRkY0MjcyOTAwQUMyNjQ0
IC8qIFN0b3JhZ2VOYW1lc3BhY2UuY3BwICovLApAQCAtMjIzNDIsNiArMjIzNTcsMTAgQEAKIAkJ
CQlDNTEwMkVDRjBGRDlFRjhDMDBGQUZGMDQgLyogU3RvcmFnZUFyZWFTeW5jLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1MUUwQkFCQjBEQTU1NDcxMDBBOUU0MTcgLyogU3RvcmFnZUV2ZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQlDNUVCREQ4NDEwNUVEREVDMDA1NjgxNkYgLyogU3RvcmFnZUV2ZW50
RGlzcGF0Y2hlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJODkyQ0YxRUQxMzRDNjU1NTAwQUFFREEx
IC8qIFN0b3JhZ2VJbmZvLmggaW4gSGVhZGVycyAqLywKKwkJCQk4OTJDRjE5MjEzNEM2MjBEMDBB
QUVEQTEgLyogU3RvcmFnZUluZm9FcnJvckNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKKwkJCQk4
OTJDRjE5MzEzNEM2MjBEMDBBQUVEQTEgLyogU3RvcmFnZUluZm9RdW90YUNhbGxiYWNrLmggaW4g
SGVhZGVycyAqLywKKwkJCQk4OTJDRjE5NDEzNEM2MjBEMDBBQUVEQTEgLyogU3RvcmFnZUluZm9V
c2FnZUNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUUwQkIzODBEQTVBQ0I2MDBBOUU0
MTcgLyogU3RvcmFnZU1hcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzUwRDBFODMwRkY0MjcyOTAw
QUMyNjQ0IC8qIFN0b3JhZ2VOYW1lc3BhY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1NUUzOEJG
MTAwNDBENUQwMEE1NkJEQiAvKiBTdG9yYWdlTmFtZXNwYWNlSW1wbC5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yNTE1NCw2ICsyNTE3Myw3IEBACiAJCQkJQzUxMDJFRDAwRkQ5RUY4QzAwRkFGRjA0IC8q
IFN0b3JhZ2VBcmVhU3luYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUUwQkFCQzBEQTU1NDcx
MDBBOUU0MTcgLyogU3RvcmFnZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUM1RTlCNjc3
MTA2OTdFMTMwMEM3QkIxQSAvKiBTdG9yYWdlRXZlbnREaXNwYXRjaGVyLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTg5MkNGMUVDMTM0QzY1NTUwMEFBRURBMSAvKiBTdG9yYWdlSW5mby5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk1MUUwQkIzOTBEQTVBQ0I2MDBBOUU0MTcgLyogU3RvcmFnZU1hcC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlDNTBEMEU4MjBGRjQyNzI5MDBBQzI2NDQgLyogU3RvcmFn
ZU5hbWVzcGFjZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDNTVFMzhDMDEwMDQwRDVEMDBBNTZC
REIgLyogU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VJbmZvLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3N0b3JhZ2UvU3RvcmFnZUluZm8uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZjODkzMGM1N2U4YTdjMDEyNGE2
M2JmZGNlYzcyN2RiNTMzODE5ZmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dG9yYWdlL1N0b3JhZ2VJbmZvLmNwcApAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0
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
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorCisjaWYgRU5BQkxFKFFVT1RBKQorCisjaW5jbHVkZSAiU3RvcmFnZUluZm8uaCIKKworI2lu
Y2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAiU3RvcmFnZUluZm9FcnJvckNhbGxi
YWNrLmgiCisjaW5jbHVkZSAiU3RvcmFnZUluZm9RdW90YUNhbGxiYWNrLmgiCisjaW5jbHVkZSAi
U3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKKworU3RvcmFnZUluZm86OlN0b3JhZ2VJbmZvKCkK
K3sKK30KKworI2lmICFQTEFURk9STShDSFJPTUlVTSkKK3ZvaWQgU3RvcmFnZUluZm86OnF1ZXJ5
VXNhZ2VBbmRRdW90YShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgaW50LCBQYXNzUmVmUHRyPFN0
b3JhZ2VJbmZvVXNhZ2VDYWxsYmFjaz4sIFBhc3NSZWZQdHI8U3RvcmFnZUluZm9FcnJvckNhbGxi
YWNrPikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFN0b3JhZ2VJbmZvOjpy
ZXF1ZXN0UXVvdGEoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGludCwgdW5zaWduZWQgbG9uZyBs
b25nLCBQYXNzUmVmUHRyPFN0b3JhZ2VJbmZvUXVvdGFDYWxsYmFjaz4sIFBhc3NSZWZQdHI8U3Rv
cmFnZUluZm9FcnJvckNhbGxiYWNrPikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorI2Vu
ZGlmCisKK1N0b3JhZ2VJbmZvOjp+U3RvcmFnZUluZm8oKQoreworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoUVVPVEEpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0
b3JhZ2VJbmZvLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTc0MjY4OWJmMjY1ZjI4MTdjMTc2OWM3ZmVjZTkyZDVl
MTA3N2Y4YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFn
ZUluZm8uaApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAq
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBTdG9yYWdlSW5mb19oCisjZGVmaW5lIFN0
b3JhZ2VJbmZvX2gKKworI2lmIEVOQUJMRShRVU9UQSkKKworI2luY2x1ZGUgPHd0Zi9QYXNzUmVm
UHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworY2xhc3MgU3RvcmFnZUluZm9FcnJv
ckNhbGxiYWNrOworY2xhc3MgU3RvcmFnZUluZm9RdW90YUNhbGxiYWNrOworY2xhc3MgU3RvcmFn
ZUluZm9Vc2FnZUNhbGxiYWNrOworCitjbGFzcyBTdG9yYWdlSW5mbyA6IHB1YmxpYyBSZWZDb3Vu
dGVkPFN0b3JhZ2VJbmZvPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RvcmFn
ZUluZm8+IGNyZWF0ZSgpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFN0b3Jh
Z2VJbmZvKCkpOworICAgIH0KKworICAgIHZvaWQgcXVlcnlVc2FnZUFuZFF1b3RhKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBpbnQgc3RvcmFnZVR5cGUsIFBhc3NSZWZQdHI8U3RvcmFnZUluZm9V
c2FnZUNhbGxiYWNrPiwgUGFzc1JlZlB0cjxTdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2s+KTsKKyAg
ICB2b2lkIHJlcXVlc3RRdW90YShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgaW50IHN0b3JhZ2VU
eXBlLCB1bnNpZ25lZCBsb25nIGxvbmcgbmV3UXVvdGFJbkJ5dGVzLCBQYXNzUmVmUHRyPFN0b3Jh
Z2VJbmZvUXVvdGFDYWxsYmFjaz4sIFBhc3NSZWZQdHI8U3RvcmFnZUluZm9FcnJvckNhbGxiYWNr
Pik7CisKK3ByaXZhdGU6CisgICAgU3RvcmFnZUluZm8oKTsKKyAgICB+U3RvcmFnZUluZm8oKTsK
KworICAgIGZyaWVuZCBjbGFzcyBSZWZDb3VudGVkPFN0b3JhZ2VJbmZvPjsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShRVU9UQSkKKworI2VuZGlmIC8v
IFN0b3JhZ2VJbmZvX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFn
ZUluZm9FcnJvckNhbGxiYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VJbmZv
RXJyb3JDYWxsYmFjay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZlM2Q3NWU1OWMxNzEwMGZmZmJjM2ViNjk4ZTVl
OTdjMTMwYTdiMmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0
b3JhZ2VJbmZvRXJyb3JDYWxsYmFjay5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9u
LgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICog
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFN0b3JhZ2VJ
bmZvRXJyb3JDYWxsYmFja19oCisjZGVmaW5lIFN0b3JhZ2VJbmZvRXJyb3JDYWxsYmFja19oCisK
KyNpZiBFTkFCTEUoUVVPVEEpCisKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERPTUNvcmVFeGNlcHRpb247CisKK2NsYXNzIFN0b3Jh
Z2VJbmZvRXJyb3JDYWxsYmFjayA6IHB1YmxpYyBSZWZDb3VudGVkPFN0b3JhZ2VJbmZvRXJyb3JD
YWxsYmFjaz4geworcHVibGljOgorICAgIHZpcnR1YWwgflN0b3JhZ2VJbmZvRXJyb3JDYWxsYmFj
aygpIHsgfQorICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVFdmVudChET01Db3JlRXhjZXB0aW9uKikg
PSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFFV
T1RBKQorCisjZW5kaWYgLy8gU3RvcmFnZUluZm9FcnJvckNhbGxiYWNrX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUluZm9RdW90YUNhbGxiYWNrLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VJbmZvUXVvdGFDYWxsYmFjay5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmY2ZmRlOTljMjI2Zjk4NDI0ZjVmNDMzNTI0ZmYxNTRjYjkzZmVhNTcKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VJbmZvUXVvdGFDYWxsYmFjay5oCkBA
IC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAq
IG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAq
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisg
KiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWZuZGVmIFN0b3JhZ2VJbmZvUXVvdGFDYWxsYmFja19oCisjZGVmaW5l
IFN0b3JhZ2VJbmZvUXVvdGFDYWxsYmFja19oCisKKyNpZiBFTkFCTEUoUVVPVEEpCisKKyNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFN0
b3JhZ2VJbmZvUXVvdGFDYWxsYmFjayA6IHB1YmxpYyBSZWZDb3VudGVkPFN0b3JhZ2VJbmZvUXVv
dGFDYWxsYmFjaz4geworcHVibGljOgorICAgIHZpcnR1YWwgflN0b3JhZ2VJbmZvUXVvdGFDYWxs
YmFjaygpIHsgfQorICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVFdmVudCh1bnNpZ25lZCBsb25nIGxv
bmcgZ3JhbnRlZFF1b3RhSW5CeXRlcykgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UKKworI2Vu
ZGlmIC8vIEVOQUJMRShRVU9UQSkKKworI2VuZGlmIC8vIFN0b3JhZ2VJbmZvUXVvdGFDYWxsYmFj
a19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VJbmZvVXNhZ2VD
YWxsYmFjay5oIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlSW5mb1VzYWdlQ2FsbGJh
Y2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi44MzgyNjExNjc1OGZmZjk1ZmU3NjE4MGQ3M2MwODRkNjA1ODZmZjIw
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlSW5mb1Vz
YWdlQ2FsbGJhY2suaApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEx
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAq
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBTdG9yYWdlSW5mb1VzYWdlQ2Fs
bGJhY2tfaAorI2RlZmluZSBTdG9yYWdlSW5mb1VzYWdlQ2FsbGJhY2tfaAorCisjaWYgRU5BQkxF
KFFVT1RBKQorCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBTdG9yYWdlSW5mb1VzYWdlQ2FsbGJhY2sgOiBwdWJsaWMgUmVmQ291bnRl
ZDxTdG9yYWdlSW5mb1VzYWdlQ2FsbGJhY2s+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5TdG9y
YWdlSW5mb1VzYWdlQ2FsbGJhY2soKSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlRXZlbnQo
dW5zaWduZWQgbG9uZyBsb25nIGN1cnJlbnRVc2FnZUluQnl0ZXMsIHVuc2lnbmVkIGxvbmcgbG9u
ZyBjdXJyZW50UXVvdGFJbkJ5dGVzKSA9IDA7Cit9OworCit9IC8vIG5hbWVzcGFjZQorCisjZW5k
aWYgLy8gRU5BQkxFKFFVT1RBKQorCisjZW5kaWYgLy8gU3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNr
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZWE0ZjllZWFiYjJjNmI5NTcyNGViN2M3
YWNmMmZiYmM4MGQwMjYzZC4uYzQ1NjViNTZkZWE4YWIwNWQ5NzJmYjhiZjM0OGQ2MWZhOGEwYmQ3
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyMiBAQAogMjAxMS0wNC0w
NyAgS2ludWtvIFlhc3VkYSAgPGtpbnVrb0BjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIG1vY2sgaW1wbGVtZW50YXRpb24g
YW5kIHBsdW1iaW5nIGNvZGUgZm9yIHVuaWZpZWQgUXVvdGEgQVBJCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NzkyNworCisgICAgICAgIEFkZGVkIHBs
dW1iaW5nIGNvZGUgZm9yIHRoZSBxdW90YSBBUEksIHRoYXQgaXMgYmFzZWQgb24gdGhlCisgICAg
ICAgIGRpc2N1c3Npb24gb24gcHVibGljLXdlYmFwcHM6CisgICAgICAgIGh0dHA6Ly9saXN0cy53
My5vcmcvQXJjaGl2ZXMvUHVibGljL3B1YmxpYy13ZWJhcHBzLzIwMTFKYW5NYXIvMDM0Ni5odG1s
CisKKyAgICAgICAgKiBXZWJLaXQuZ3lwOiBBZGRlZCBuZXcgZmlsZSBlbnRyaWVzLgorICAgICAg
ICAqIHNyYy9TdG9yYWdlSW5mb0Nocm9taXVtLmNwcDogQWRkZWQuCisgICAgICAgICogc3JjL1dl
YlN0b3JhZ2VRdW90YUNhbGxiYWNrc0ltcGwuY3BwOiBBZGRlZC4gQW4gaW1wbGVtZW50YXRpb24g
b2YKKyAgICAgICAgV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzLgorICAgICAgICAqIHNyYy9XZWJT
dG9yYWdlUXVvdGFDYWxsYmFja3NJbXBsLmg6IEFkZGVkLgorCisyMDExLTA0LTA3ICBLaW51a28g
WWFzdWRhICA8a2ludWtvQGNocm9taXVtLm9yZz4KKwogICAgICAgICBSZXZpZXdlZCBieSBEYXJp
biBGaXNoZXIuCiAKICAgICAgICAgW0Nocm9taXVtXSBBZGQgV2ViS2l0IEFQSSB0byBxdWVyeSBh
bmQgcmVxdWVzdCB1bmlmaWVkIG9mZmxpbmUtc3RvcmFnZSBxdW90YQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9X
ZWJLaXQuZ3lwCmluZGV4IDkxN2U4ZmRmYWRkYTJmMzUyZDc3MWEyN2MxZjA1OWQ2OTA0ZWFkNGQu
LmM5Y2RlNzc2ZDAyMmNlZGUxZmMwMjg1NGY1MmI3ZDAyY2M4YTY0MWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL1dlYktpdC5neXAKQEAgLTQwMiw2ICs0MDIsNyBAQAogICAgICAgICAgICAgICAgICdzcmMv
U3RvcmFnZUV2ZW50RGlzcGF0Y2hlckNocm9taXVtLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3Ny
Yy9TdG9yYWdlRXZlbnREaXNwYXRjaGVySW1wbC5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMv
U3RvcmFnZUV2ZW50RGlzcGF0Y2hlckltcGwuaCcsCisgICAgICAgICAgICAgICAgJ3NyYy9TdG9y
YWdlSW5mb0Nocm9taXVtLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9TdG9yYWdlTmFtZXNw
YWNlUHJveHkuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1N0b3JhZ2VOYW1lc3BhY2VQcm94
eS5oJywKICAgICAgICAgICAgICAgICAnc3JjL1RlbXBvcmFyeUdsdWUuaCcsCkBAIC01NTQsNiAr
NTU1LDggQEAKICAgICAgICAgICAgICAgICAnc3JjL1dlYlN0b3JhZ2VFdmVudERpc3BhdGNoZXJJ
bXBsLmgnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViU3RvcmFnZU5hbWVzcGFjZUltcGwuY3Bw
JywKICAgICAgICAgICAgICAgICAnc3JjL1dlYlN0b3JhZ2VOYW1lc3BhY2VJbXBsLmgnLAorICAg
ICAgICAgICAgICAgICdzcmMvV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzSW1wbC5jcHAnLAorICAg
ICAgICAgICAgICAgICdzcmMvV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzSW1wbC5oJywKICAgICAg
ICAgICAgICAgICAnc3JjL1dlYlN0cmluZy5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2Vi
VGV4dFJ1bi5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViVGhyZWFkU2FmZURhdGEuY3Bw
JywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1N0b3JhZ2VJbmZvQ2hy
b21pdW0uY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvU3RvcmFnZUluZm9DaHJvbWl1
bS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNmNiMTcwOTNmNWUyZjM5ZWQ1ZGUyYjMzMDgzYzJkNzlkMDY3NDg3
MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1N0b3JhZ2VJ
bmZvQ2hyb21pdW0uY3BwCkBAIC0wLDAgKzEsODMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
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
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiU3RvcmFnZUluZm8uaCIKKworI2lmIEVOQUJMRShRVU9UQSkKKworI2luY2x1ZGUgIkRP
TUNvcmVFeGNlcHRpb24uaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIlNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRlICJTdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2su
aCIKKyNpbmNsdWRlICJTdG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJTdG9y
YWdlSW5mb1VzYWdlQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJXZWJGcmFtZUNsaWVudC5oIgorI2lu
Y2x1ZGUgIldlYkZyYW1lSW1wbC5oIgorI2luY2x1ZGUgIldlYlN0b3JhZ2VRdW90YUNhbGxiYWNr
c0ltcGwuaCIKKyNpbmNsdWRlICJXZWJTdG9yYWdlUXVvdGFUeXBlLmgiCisKK3VzaW5nIG5hbWVz
cGFjZSBXZWJLaXQ7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBTdG9yYWdlSW5mbzo6
cXVlcnlVc2FnZUFuZFF1b3RhKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGludCBz
dG9yYWdlVHlwZSwgUGFzc1JlZlB0cjxTdG9yYWdlSW5mb1VzYWdlQ2FsbGJhY2s+IHN1Y2Nlc3ND
YWxsYmFjaywgUGFzc1JlZlB0cjxTdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2s+IGVycm9yQ2FsbGJh
Y2spCit7CisgICAgQVNTRVJUKGNvbnRleHQpOworICAgIGlmIChjb250ZXh0LT5pc0RvY3VtZW50
KCkpIHsKKyAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gc3RhdGljX2Nhc3Q8RG9jdW1lbnQq
Pihjb250ZXh0KTsKKyAgICAgICAgV2ViRnJhbWVJbXBsKiB3ZWJGcmFtZSA9IFdlYkZyYW1lSW1w
bDo6ZnJvbUZyYW1lKGRvY3VtZW50LT5mcmFtZSgpKTsKKyAgICAgICAgd2ViRnJhbWUtPmNsaWVu
dCgpLT5xdWVyeVN0b3JhZ2VVc2FnZUFuZFF1b3RhKHdlYkZyYW1lLCBzdGF0aWNfY2FzdDxXZWJT
dG9yYWdlUXVvdGFUeXBlPihzdG9yYWdlVHlwZSksIFdlYlN0b3JhZ2VRdW90YUNhbGxiYWNrc0lt
cGw6OmNyZWF0ZUZvclVzYWdlQ2FsbGJhY2soc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNr
KSk7CisgICAgfSBlbHNlIGlmIChlcnJvckNhbGxiYWNrKSB7CisgICAgICAgIC8vIEZJWE1FOiBj
YWxsaW5nIHRoaXMgb24gd29ya2VyIGlzIG5vdCBzdXBwb3J0ZWQgeWV0LgorICAgICAgICBFeGNl
cHRpb25Db2RlRGVzY3JpcHRpb24gZGVzY3JpcHRpb247CisgICAgICAgIGdldEV4Y2VwdGlvbkNv
ZGVEZXNjcmlwdGlvbihOT1RfU1VQUE9SVEVEX0VSUiwgZGVzY3JpcHRpb24pOworICAgICAgICBl
cnJvckNhbGxiYWNrLT5oYW5kbGVFdmVudChET01Db3JlRXhjZXB0aW9uOjpjcmVhdGUoZGVzY3Jp
cHRpb24pLmdldCgpKTsKKyAgICB9Cit9CisKK3ZvaWQgU3RvcmFnZUluZm86OnJlcXVlc3RRdW90
YShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBpbnQgc3RvcmFnZVR5cGUsIHVuc2ln
bmVkIGxvbmcgbG9uZyBuZXdRdW90YUluQnl0ZXMsIFBhc3NSZWZQdHI8U3RvcmFnZUluZm9RdW90
YUNhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssIFBhc3NSZWZQdHI8U3RvcmFnZUluZm9FcnJvckNh
bGxiYWNrPiBlcnJvckNhbGxiYWNrKQoreworICAgIEFTU0VSVChjb250ZXh0KTsKKyAgICBpZiAo
Y29udGV4dC0+aXNEb2N1bWVudCgpKSB7CisgICAgICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHN0
YXRpY19jYXN0PERvY3VtZW50Kj4oY29udGV4dCk7CisgICAgICAgIFdlYkZyYW1lSW1wbCogd2Vi
RnJhbWUgPSBXZWJGcmFtZUltcGw6OmZyb21GcmFtZShkb2N1bWVudC0+ZnJhbWUoKSk7CisgICAg
ICAgIHdlYkZyYW1lLT5jbGllbnQoKS0+cmVxdWVzdFN0b3JhZ2VRdW90YSh3ZWJGcmFtZSwgc3Rh
dGljX2Nhc3Q8V2ViU3RvcmFnZVF1b3RhVHlwZT4oc3RvcmFnZVR5cGUpLCBuZXdRdW90YUluQnl0
ZXMsIFdlYlN0b3JhZ2VRdW90YUNhbGxiYWNrc0ltcGw6OmNyZWF0ZUZvclF1b3RhQ2FsbGJhY2so
c3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrKSk7CisgICAgfSBlbHNlIGlmIChlcnJvckNh
bGxiYWNrKSB7CisgICAgICAgIC8vIEZJWE1FOiBjYWxsaW5nIHRoaXMgb24gd29ya2VyIGlzIG5v
dCBzdXBwb3J0ZWQgeWV0LgorICAgICAgICBFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24gZGVzY3Jp
cHRpb247CisgICAgICAgIGdldEV4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbihOT1RfU1VQUE9SVEVE
X0VSUiwgZGVzY3JpcHRpb24pOworICAgICAgICBlcnJvckNhbGxiYWNrLT5oYW5kbGVFdmVudChE
T01Db3JlRXhjZXB0aW9uOjpjcmVhdGUoZGVzY3JpcHRpb24pLmdldCgpKTsKKyAgICB9Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShRVU9UQSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlN0b3JhZ2VRdW90YUNhbGxiYWNr
c0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU3RvcmFnZVF1b3RhQ2Fs
bGJhY2tzSW1wbC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmFhZTRhY2RjNjY3ZDc1ZDEzMjc4YTYyMGE5OGQ0
ZTM4NzZiYjkyNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlN0b3JhZ2VRdW90YUNhbGxiYWNrc0ltcGwuY3BwCkBAIC0wLDAgKzEsOTkgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlz
dHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwor
ICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzSW1wbC5oIgor
CisjaWYgRU5BQkxFKFFVT1RBKQorCisjaW5jbHVkZSAiRE9NQ29yZUV4Y2VwdGlvbi5oIgorI2lu
Y2x1ZGUgIlN0b3JhZ2VJbmZvRXJyb3JDYWxsYmFjay5oIgorI2luY2x1ZGUgIlN0b3JhZ2VJbmZv
UXVvdGFDYWxsYmFjay5oIgorI2luY2x1ZGUgIlN0b3JhZ2VJbmZvVXNhZ2VDYWxsYmFjay5oIgor
Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYlN0
b3JhZ2VRdW90YUNhbGxiYWNrc0ltcGwqIFdlYlN0b3JhZ2VRdW90YUNhbGxiYWNrc0ltcGw6OmNy
ZWF0ZUZvclVzYWdlQ2FsbGJhY2soUGFzc1JlZlB0cjxXZWJDb3JlOjpTdG9yYWdlSW5mb1VzYWdl
Q2FsbGJhY2s+IHVzYWdlQ2FsbGJhY2ssIFBhc3NSZWZQdHI8V2ViQ29yZTo6U3RvcmFnZUluZm9F
cnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrKQoreworICAgIC8vIFRoaXMgY2xhc3MgaXMgc2Vs
Zi1kZXN0cnVjdGVkOyByZXR1cm5pbmcgYSBsZWFrZWQgcG9pbnRlci4KKyAgICByZXR1cm4gYWRv
cHRQdHIobmV3IFdlYlN0b3JhZ2VRdW90YUNhbGxiYWNrc0ltcGwodXNhZ2VDYWxsYmFjaywgZXJy
b3JDYWxsYmFjaykpLmxlYWtQdHIoKTsKK30KKworV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzSW1w
bCogV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzSW1wbDo6Y3JlYXRlRm9yUXVvdGFDYWxsYmFjayhQ
YXNzUmVmUHRyPFdlYkNvcmU6OlN0b3JhZ2VJbmZvUXVvdGFDYWxsYmFjaz4gcXVvdGFDYWxsYmFj
aywgUGFzc1JlZlB0cjxXZWJDb3JlOjpTdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2s+IGVycm9yQ2Fs
bGJhY2spCit7CisgICAgLy8gVGhpcyBjbGFzcyBpcyBzZWxmLWRlc3RydWN0ZWQ7IHJldHVybmlu
ZyBhIGxlYWtlZCBwb2ludGVyLgorICAgIHJldHVybiBhZG9wdFB0cihuZXcgV2ViU3RvcmFnZVF1
b3RhQ2FsbGJhY2tzSW1wbChxdW90YUNhbGxiYWNrLCBlcnJvckNhbGxiYWNrKSkubGVha1B0cigp
OworfQorCitXZWJTdG9yYWdlUXVvdGFDYWxsYmFja3NJbXBsOjp+V2ViU3RvcmFnZVF1b3RhQ2Fs
bGJhY2tzSW1wbCgpCit7Cit9CisKK3ZvaWQgV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzSW1wbDo6
ZGlkUXVlcnlTdG9yYWdlVXNhZ2VBbmRRdW90YSh1bnNpZ25lZCBsb25nIGxvbmcgdXNhZ2VJbkJ5
dGVzLCB1bnNpZ25lZCBsb25nIGxvbmcgcXVvdGFJbkJ5dGVzKQoreworICAgIGlmIChtX3VzYWdl
Q2FsbGJhY2spCisgICAgICAgIG1fdXNhZ2VDYWxsYmFjay0+aGFuZGxlRXZlbnQodXNhZ2VJbkJ5
dGVzLCBxdW90YUluQnl0ZXMpOworICAgIGRlbGV0ZSB0aGlzOworfQorCit2b2lkIFdlYlN0b3Jh
Z2VRdW90YUNhbGxiYWNrc0ltcGw6OmRpZEdyYW50U3RvcmFnZVF1b3RhKHVuc2lnbmVkIGxvbmcg
bG9uZyBncmFudGVkUXVvdGFJbkJ5dGVzKQoreworICAgIGlmIChtX3F1b3RhQ2FsbGJhY2spCisg
ICAgICAgIG1fcXVvdGFDYWxsYmFjay0+aGFuZGxlRXZlbnQoZ3JhbnRlZFF1b3RhSW5CeXRlcyk7
CisgICAgZGVsZXRlIHRoaXM7Cit9CisKK3ZvaWQgV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzSW1w
bDo6ZGlkRmFpbChXZWJTdG9yYWdlUXVvdGFFcnJvciBlcnJvcikKK3sKKyAgICBpZiAobV9lcnJv
ckNhbGxiYWNrKSB7CisgICAgICAgIEV4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbiBkZXNjcmlwdGlv
bjsKKyAgICAgICAgZ2V0RXhjZXB0aW9uQ29kZURlc2NyaXB0aW9uKHN0YXRpY19jYXN0PEV4Y2Vw
dGlvbkNvZGU+KGVycm9yKSwgZGVzY3JpcHRpb24pOworICAgICAgICBtX2Vycm9yQ2FsbGJhY2st
PmhhbmRsZUV2ZW50KERPTUNvcmVFeGNlcHRpb246OmNyZWF0ZShkZXNjcmlwdGlvbikuZ2V0KCkp
OworICAgIH0KKyAgICBkZWxldGUgdGhpczsKK30KKworV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tz
SW1wbDo6V2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzSW1wbChQYXNzUmVmUHRyPFdlYkNvcmU6OlN0
b3JhZ2VJbmZvVXNhZ2VDYWxsYmFjaz4gdXNhZ2VDYWxsYmFjaywgUGFzc1JlZlB0cjxXZWJDb3Jl
OjpTdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2s+IGVycm9yQ2FsbGJhY2spCisgICAgOiBtX3VzYWdl
Q2FsbGJhY2sodXNhZ2VDYWxsYmFjaykKKyAgICAsIG1fZXJyb3JDYWxsYmFjayhlcnJvckNhbGxi
YWNrKQoreworfQorCitXZWJTdG9yYWdlUXVvdGFDYWxsYmFja3NJbXBsOjpXZWJTdG9yYWdlUXVv
dGFDYWxsYmFja3NJbXBsKFBhc3NSZWZQdHI8V2ViQ29yZTo6U3RvcmFnZUluZm9RdW90YUNhbGxi
YWNrPiBxdW90YUNhbGxiYWNrLCBQYXNzUmVmUHRyPFdlYkNvcmU6OlN0b3JhZ2VJbmZvRXJyb3JD
YWxsYmFjaz4gZXJyb3JDYWxsYmFjaykKKyAgICA6IG1fcXVvdGFDYWxsYmFjayhxdW90YUNhbGxi
YWNrKQorICAgICwgbV9lcnJvckNhbGxiYWNrKGVycm9yQ2FsbGJhY2spCit7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKFFVT1RBKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzSW1wbC5o
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzSW1w
bC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmNiNThjMmI3OGJjNjU5NDQ0OWE1MzdkNjM5YjRjZDdmZmMyMzNjYWYK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTdG9yYWdl
UXVvdGFDYWxsYmFja3NJbXBsLmgKQEAgLTAsMCArMSw3MCBAQAorLyoKKyAqIENvcHlyaWdodCAo
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
b3RhQ2FsbGJhY2tzSW1wbF9oCisjZGVmaW5lIFdlYlN0b3JhZ2VRdW90YUNhbGxiYWNrc0ltcGxf
aAorCisjaW5jbHVkZSAiV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzLmgiCisjaW5jbHVkZSA8d3Rm
L1Bhc3NPd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgU3RvcmFnZUluZm9FcnJv
ckNhbGxiYWNrOworY2xhc3MgU3RvcmFnZUluZm9RdW90YUNhbGxiYWNrOworY2xhc3MgU3RvcmFn
ZUluZm9Vc2FnZUNhbGxiYWNrOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2Vi
U3RvcmFnZVF1b3RhQ2FsbGJhY2tzSW1wbCA6IHB1YmxpYyBXZWJTdG9yYWdlUXVvdGFDYWxsYmFj
a3MgeworcHVibGljOgorICAgIC8vIFRoZSBmb2xsb3dpbmcgY3JlYXRlIG1ldGhvZHMgcmV0dXJu
IGEgbGVha2VkIHB0ciAodGhlIGNsYXNzIGlzIHNlbGYtZGVzdHJ1Y3RlZCkuCisgICAgc3RhdGlj
IFdlYlN0b3JhZ2VRdW90YUNhbGxiYWNrc0ltcGwqIGNyZWF0ZUZvclVzYWdlQ2FsbGJhY2soUGFz
c1JlZlB0cjxXZWJDb3JlOjpTdG9yYWdlSW5mb1VzYWdlQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPFdl
YkNvcmU6OlN0b3JhZ2VJbmZvRXJyb3JDYWxsYmFjaz4pOworICAgIHN0YXRpYyBXZWJTdG9yYWdl
UXVvdGFDYWxsYmFja3NJbXBsKiBjcmVhdGVGb3JRdW90YUNhbGxiYWNrKFBhc3NSZWZQdHI8V2Vi
Q29yZTo6U3RvcmFnZUluZm9RdW90YUNhbGxiYWNrPiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTdG9y
YWdlSW5mb0Vycm9yQ2FsbGJhY2s+KTsKKworICAgIHZpcnR1YWwgfldlYlN0b3JhZ2VRdW90YUNh
bGxiYWNrc0ltcGwoKTsKKworICAgIHZpcnR1YWwgdm9pZCBkaWRRdWVyeVN0b3JhZ2VVc2FnZUFu
ZFF1b3RhKHVuc2lnbmVkIGxvbmcgbG9uZyB1c2FnZUluQnl0ZXMsIHVuc2lnbmVkIGxvbmcgbG9u
ZyBxdW90YUluQnl0ZXMpOworICAgIHZpcnR1YWwgdm9pZCBkaWRHcmFudFN0b3JhZ2VRdW90YSh1
bnNpZ25lZCBsb25nIGxvbmcgZ3JhbnRlZFF1b3RhSW5CeXRlcyk7CisgICAgdmlydHVhbCB2b2lk
IGRpZEZhaWwoV2ViU3RvcmFnZVF1b3RhRXJyb3IpOworCitwcml2YXRlOgorICAgIFdlYlN0b3Jh
Z2VRdW90YUNhbGxiYWNrc0ltcGwoUGFzc1JlZlB0cjxXZWJDb3JlOjpTdG9yYWdlSW5mb1VzYWdl
Q2FsbGJhY2s+LCBQYXNzUmVmUHRyPFdlYkNvcmU6OlN0b3JhZ2VJbmZvRXJyb3JDYWxsYmFjaz4p
OworICAgIFdlYlN0b3JhZ2VRdW90YUNhbGxiYWNrc0ltcGwoUGFzc1JlZlB0cjxXZWJDb3JlOjpT
dG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPFdlYkNvcmU6OlN0b3JhZ2VJbmZv
RXJyb3JDYWxsYmFjaz4pOworCisgICAgUmVmUHRyPFdlYkNvcmU6OlN0b3JhZ2VJbmZvVXNhZ2VD
YWxsYmFjaz4gbV91c2FnZUNhbGxiYWNrOworICAgIFJlZlB0cjxXZWJDb3JlOjpTdG9yYWdlSW5m
b1F1b3RhQ2FsbGJhY2s+IG1fcXVvdGFDYWxsYmFjazsKKyAgICBSZWZQdHI8V2ViQ29yZTo6U3Rv
cmFnZUluZm9FcnJvckNhbGxiYWNrPiBtX2Vycm9yQ2FsbGJhY2s7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYlN0b3JhZ2VRdW90YUNhbGxiYWNrc0ltcGxfaAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88972</attachid>
            <date>2011-04-10 23:55:57 -0700</date>
            <delta_ts>2011-04-10 23:59:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-57927-20110411155555.patch</filename>
            <type>text/plain</type>
            <size>38044</size>
            <attacher name="Kinuko Yasuda">kinuko</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODMyNjMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggYjUxODBj
OWRiMTkwMGY4NWM2N2ZmYTljOTVjMTI3ZjAwMjczY2NjMS4uMzJjYjI2OGVhMzZlODA5Mzc5NWNj
YzIzOGQ3MGRmODJjOTc5NmQ0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE5NDYsNiArMTk0
NiwxMSBAQCBJRiAoRU5BQkxFX1BST0dSRVNTX1RBRykKICAgICApCiBFTkRJRiAoKQogCitpZiAo
RU5BQkxFX1FVT1RBKQorICAgIExJU1QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUworICAgICAgICBz
dG9yYWdlL1N0b3JhZ2VJbmZvLmNwcAorICAgICkKK0VORElGICgpCiAKIAogIyBNb2R1bGVzIHRo
YXQgdGhlIGJpbmRpbmdzIGdlbmVyYXRvciBzY3JpcHRzIG1heSB1c2UKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4
MDk2YzgwNjQwYTY3ODE1ZWE2MTdiMWYyZDQ3NWY1NzViMjBiYzIzLi5hYTg5ODE5MmM2YmU1N2Yy
ZjM0ZjM3NDE1MzljYjE3ZTFmN2E1ZjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIw
MTEtMDQtMTEgIEtpbnVrbyBZYXN1ZGEgIDxraW51a29AY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBtb2NrIGltcGxlbWVu
dGF0aW9uIGFuZCBwbHVtYmluZyBjb2RlIGZvciB1bmlmaWVkIFF1b3RhIEFQSQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTc5MjcKKworICAgICAgICBB
ZGRlZCBtb2NrIGltcGxlbWVudGF0aW9uIGFuZCBzb21lIHBsdW1iaW5nIGNvZGUgZm9yIHRoZSBx
dW90YSBBUEksCisgICAgICAgIHRoYXQgaXMgYmFzZWQgb24gdGhlIGRpc2N1c3Npb24gb24gcHVi
bGljLXdlYmFwcHM6CisgICAgICAgIGh0dHA6Ly9saXN0cy53My5vcmcvQXJjaGl2ZXMvUHVibGlj
L3B1YmxpYy13ZWJhcHBzLzIwMTFKYW5NYXIvMDM0Ni5odG1sCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzOiB0ZXN0cyB3aWxsIGJlIGFkZGVkIHdoZW4gd2UgZXhwb3NlIHRoZSBBUEkuCisKKyAgICAg
ICAgKiBDTWFrZUxpc3RzLnR4dDogQWRkZWQgbmV3IGZpbGUgZW50cmllcy4KKyAgICAgICAgKiBE
ZXJpdmVkU291cmNlcy5jcHA6IEFkZGVkIG5ldyBmaWxlIGVudHJpZXMuCisgICAgICAgICogRGVy
aXZlZFNvdXJjZXMubWFrZTogQWRkZWQgbmV3IGZpbGUgZW50cmllcy4KKyAgICAgICAgKiBHTlVt
YWtlZmlsZS5hbTogQWRkZWQgbmV3IGZpbGUgZW50cmllcy4KKyAgICAgICAgKiBXZWJDb3JlLmd5
cGk6IEFkZGVkIG5ldyBmaWxlIGVudHJpZXMuCisgICAgICAgICogV2ViQ29yZS5wcm86IEFkZGVk
IG5ldyBmaWxlIGVudHJpZXMuCisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2o6IEFkZGVkIG5ldyBmaWxlIGVudHJpZXMuCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOiBBZGRlZCBuZXcgZmlsZSBlbnRyaWVzLgorICAgICAgICAqIHN0b3Jh
Z2UvU3RvcmFnZUluZm8uY3BwOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL1N0b3JhZ2VJbmZv
Lmg6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZUluZm9FcnJvckNhbGxiYWNrLmg6
IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZUluZm9RdW90YUNhbGxiYWNrLmg6IEFk
ZGVkLgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrLmg6IEFkZGVk
LgorCiAyMDExLTA0LTA3ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggY2NjYTQ3OTQ2
ZGU2NDI1YmIwNGQxMGVlM2EyZDhkMjA4YmYwMzQyZS4uNzY3MDQwODgwNzk5Y2EyMjk1ODljNGRl
NzM1NDAwOGU3YzBmNTc4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNTUyNyw2ICs1NTI3LDExIEBA
CiAgICAgICAgICAgICAnc3RvcmFnZS9TdG9yYWdlRXZlbnQuaCcsCiAgICAgICAgICAgICAnc3Rv
cmFnZS9TdG9yYWdlRXZlbnREaXNwYXRjaGVyLmNwcCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9T
dG9yYWdlRXZlbnREaXNwYXRjaGVyLmgnLAorICAgICAgICAgICAgJ3N0b3JhZ2UvU3RvcmFnZUlu
Zm8uY3BwJywKKyAgICAgICAgICAgICdzdG9yYWdlL1N0b3JhZ2VJbmZvLmgnLAorICAgICAgICAg
ICAgJ3N0b3JhZ2UvU3RvcmFnZUluZm9FcnJvckNhbGxiYWNrLmgnLAorICAgICAgICAgICAgJ3N0
b3JhZ2UvU3RvcmFnZUluZm9RdW90YUNhbGxiYWNrLmgnLAorICAgICAgICAgICAgJ3N0b3JhZ2Uv
U3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrLmgnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvU3RvcmFn
ZU1hcC5jcHAnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvU3RvcmFnZU1hcC5oJywKICAgICAgICAg
ICAgICdzdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2UuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUucHJvIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggZGYz
MzY5YzY0ZWU2MDY4NTJkM2VjNjdhNThlZmU5OTZiMWE5MTUwYS4uYzdmMTQ0M2Q1NTYzNmZhYTNk
ODlhMDQyMWNhZWVkN2JmZGFhM2JmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5wcm8KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTI5MjcsNiArMjkyNywx
NyBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfSU5QVVRfU1BFRUNIPTEpIHsKICAgICAgICAg
cmVuZGVyaW5nL1JlbmRlcklucHV0U3BlZWNoLmNwcAogfQogCitjb250YWlucyhERUZJTkVTLCBF
TkFCTEVfUVVPVEE9MSkgeworICAgIEhFQURFUlMgKz0gXAorICAgICAgICBzdG9yYWdlL1N0b3Jh
Z2VJbmZvLmggXAorICAgICAgICBzdG9yYWdlL1N0b3JhZ2VJbmZvRXJyb3JDYWxsYmFjay5oIFwK
KyAgICAgICAgc3RvcmFnZS9TdG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2suaCBcCisgICAgICAgIHN0
b3JhZ2UvU3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrLmgKKworICAgIFNPVVJDRVMgKz0gXAorICAg
ICAgICBzdG9yYWdlL1N0b3JhZ2VJbmZvLmNwcAorfQorCiBjb250YWlucyhERUZJTkVTLCBFTkFC
TEVfVklERU89MSkgewogICAgIFNPVVJDRVMgKz0gXAogICAgICAgICBodG1sL0hUTUxBdWRpb0Vs
ZW1lbnQuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2oKaW5kZXggYzJlM2E1NDA5NThjNTY1ZmNjN2E2NDViNmYzZGIxYWZhYzljOTQ1Zi4uOGFjMWE4
NzUwMGEzNzA2MGFhNjQ3MmFmMDUwMzE1MWE5Yjc0M2ZiNiAxMDA3NTUKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTY2MTc0LDYgKzY2MTc0LDI2IEBACiAJ
CQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN0b3JhZ2Vc
U3RvcmFnZUluZm8uY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRp
dmVQYXRoPSIuLlxzdG9yYWdlXFN0b3JhZ2VJbmZvLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJ
PEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN0b3JhZ2VcU3RvcmFnZUluZm9FcnJvckNhbGxi
YWNrLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XHN0b3JhZ2VcU3RvcmFnZUluZm9RdW90YUNhbGxiYWNrLmgiCisJCQkJPgorCQkJPC9GaWxlPgor
CQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN0b3JhZ2VcU3RvcmFnZUluZm9Vc2FnZUNh
bGxiYWNrLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXHN0b3JhZ2VcU3RvcmFnZU1hcC5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDhmYWQx
YmZkY2Y5OGNjYWQ1ZGQxMzFkYjE3YWI4ZTg2MGRlOTE3ODUuLmI5YzM3ZTZlY2ZiNjU4YWFjMDJk
NTg2OWJkOGIwMDIzY2M5ODFkZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI2NDksNiArMjY0OSwxMSBAQAogCQk4NjI0M0Qw
MTExQkMzMUY3MDBDQzAwNkEgLyogSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2MjQzRDAwMTFCQzMxRjcwMEND
MDA2QSAvKiBKU0FycmF5QnVmZmVyVmlld0hlbHBlci5oICovOyB9OwogCQk4NkQ5ODJGNzEyNUMx
NTQwMDBBRDlFM0QgLyogRG9jdW1lbnRUaW1pbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2RDk4MkY2MTI1QzE1NDAwMEFEOUUzRCAvKiBEb2N1bWVu
dFRpbWluZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTg5MEFFMEUxMTI1NkEwNzkwMEY1OTY4QyAvKiBEaXJlY3RvcnlSZWFkZXJCYXNlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OTBBRTBFMDEyNTZB
MDc5MDBGNTk2OEMgLyogRGlyZWN0b3J5UmVhZGVyQmFzZS5oICovOyB9OworCQk4OTJDRjE5MjEz
NEM2MjBEMDBBQUVEQTEgLyogU3RvcmFnZUluZm9FcnJvckNhbGxiYWNrLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OTJDRjE4RDEzNEM2MjBEMDBBQUVE
QTEgLyogU3RvcmFnZUluZm9FcnJvckNhbGxiYWNrLmggKi87IH07CisJCTg5MkNGMTkzMTM0QzYy
MEQwMEFBRURBMSAvKiBTdG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5MkNGMThFMTM0QzYyMEQwMEFBRURBMSAv
KiBTdG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2suaCAqLzsgfTsKKwkJODkyQ0YxOTQxMzRDNjIwRDAw
QUFFREExIC8qIFN0b3JhZ2VJbmZvVXNhZ2VDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODkyQ0YxOEYxMzRDNjIwRDAwQUFFREExIC8qIFN0
b3JhZ2VJbmZvVXNhZ2VDYWxsYmFjay5oICovOyB9OworCQk4OTJDRjFFQzEzNEM2NTU1MDBBQUVE
QTEgLyogU3RvcmFnZUluZm8uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODkyQ0YxRUExMzRDNjU1NTAwQUFFREExIC8qIFN0b3JhZ2VJbmZvLmNwcCAq
LzsgfTsKKwkJODkyQ0YxRUQxMzRDNjU1NTAwQUFFREExIC8qIFN0b3JhZ2VJbmZvLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OTJDRjFFQjEzNEM2NTU1
MDBBQUVEQTEgLyogU3RvcmFnZUluZm8uaCAqLzsgfTsKIAkJODkzQzQ3QTcxMjM4OTA4QjAwMkIz
RDg2IC8qIEZpbGVDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODkzQzQ3QTUxMjM4OTA4QjAwMkIzRDg2IC8qIEZpbGVDYWxsYmFjay5oICov
OyB9OwogCQk4OTNDNDdBODEyMzg5MDhCMDAyQjNEODYgLyogRmlsZVdyaXRlckNhbGxiYWNrLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OTNDNDdBNjEy
Mzg5MDhCMDAyQjNEODYgLyogRmlsZVdyaXRlckNhbGxiYWNrLmggKi87IH07CiAJCTg5M0M0N0I3
MTIzOEEwOTkwMDJCM0Q4NiAvKiBKU0ZpbGVDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OTNDNDdCNTEyMzhBMDk5MDAyQjNEODYgLyog
SlNGaWxlQ2FsbGJhY2suY3BwICovOyB9OwpAQCAtOTE3Niw2ICs5MTgxLDExIEBACiAJCTg2MjQz
RDAwMTFCQzMxRjcwMENDMDA2QSAvKiBKU0FycmF5QnVmZmVyVmlld0hlbHBlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0FycmF5QnVmZmVyVmlld0hlbHBlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NkQ5ODJGNjEyNUMxNTQwMDBBRDlFM0QgLyogRG9j
dW1lbnRUaW1pbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRG9jdW1lbnRU
aW1pbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODkwQUUwRTAxMjU2QTA3OTAw
RjU5NjhDIC8qIERpcmVjdG9yeVJlYWRlckJhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gRGlyZWN0b3J5UmVhZGVyQmFzZS5oOyBwYXRoID0gZmlsZWFwaS9EaXJlY3RvcnlS
ZWFkZXJCYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg5MkNGMThEMTM0QzYy
MEQwMEFBRURBMSAvKiBTdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU3RvcmFnZUluZm9FcnJvckNhbGxiYWNrLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTg5MkNGMThFMTM0QzYyMEQwMEFBRURBMSAvKiBTdG9yYWdlSW5m
b1F1b3RhQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvcmFn
ZUluZm9RdW90YUNhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg5MkNG
MThGMTM0QzYyMEQwMEFBRURBMSAvKiBTdG9yYWdlSW5mb1VzYWdlQ2FsbGJhY2suaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg5MkNGMUVBMTM0QzY1NTUwMEFBRURBMSAvKiBT
dG9yYWdlSW5mby5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdG9y
YWdlSW5mby5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg5MkNGMUVCMTM0QzY1
NTUwMEFBRURBMSAvKiBTdG9yYWdlSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTdG9yYWdlSW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4OTNDNDdB
NTEyMzg5MDhCMDAyQjNEODYgLyogRmlsZUNhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IEZpbGVDYWxsYmFjay5oOyBwYXRoID0gZmlsZWFwaS9GaWxlQ2FsbGJhY2su
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODkzQzQ3QTYxMjM4OTA4QjAwMkIzRDg2
IC8qIEZpbGVXcml0ZXJDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBGaWxlV3JpdGVyQ2FsbGJhY2suaDsgcGF0aCA9IGZpbGVhcGkvRmlsZVdyaXRlckNhbGxiYWNr
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg5M0M0N0I1MTIzOEEwOTkwMDJCM0Q4
NiAvKiBKU0ZpbGVDYWxsYmFjay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU0ZpbGVDYWxsYmFjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
MzEzOSw2ICsxMzE0OSwxMSBAQAogCQkJCTUxRTBCQUJEMERBNTU0ODQwMEE5RTQxNyAvKiBTdG9y
YWdlRXZlbnQuaWRsICovLAogCQkJCUM1RTlCNjc2MTA2OTdFMTMwMEM3QkIxQSAvKiBTdG9yYWdl
RXZlbnREaXNwYXRjaGVyLmNwcCAqLywKIAkJCQlDNUVCREQ4MTEwNUVEREVDMDA1NjgxNkYgLyog
U3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5oICovLAorCQkJCTg5MkNGMUVBMTM0QzY1NTUwMEFBRURB
MSAvKiBTdG9yYWdlSW5mby5jcHAgKi8sCisJCQkJODkyQ0YxRUIxMzRDNjU1NTAwQUFFREExIC8q
IFN0b3JhZ2VJbmZvLmggKi8sCisJCQkJODkyQ0YxOEQxMzRDNjIwRDAwQUFFREExIC8qIFN0b3Jh
Z2VJbmZvRXJyb3JDYWxsYmFjay5oICovLAorCQkJCTg5MkNGMThFMTM0QzYyMEQwMEFBRURBMSAv
KiBTdG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2suaCAqLywKKwkJCQk4OTJDRjE4RjEzNEM2MjBEMDBB
QUVEQTEgLyogU3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrLmggKi8sCiAJCQkJNTFFMEJCMzcwREE1
QUNCNjAwQTlFNDE3IC8qIFN0b3JhZ2VNYXAuY3BwICovLAogCQkJCTUxRTBCQjM2MERBNUFDQjYw
MEE5RTQxNyAvKiBTdG9yYWdlTWFwLmggKi8sCiAJCQkJQzUwRDBFODAwRkY0MjcyOTAwQUMyNjQ0
IC8qIFN0b3JhZ2VOYW1lc3BhY2UuY3BwICovLApAQCAtMjIzNDIsNiArMjIzNTcsMTAgQEAKIAkJ
CQlDNTEwMkVDRjBGRDlFRjhDMDBGQUZGMDQgLyogU3RvcmFnZUFyZWFTeW5jLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1MUUwQkFCQjBEQTU1NDcxMDBBOUU0MTcgLyogU3RvcmFnZUV2ZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQlDNUVCREQ4NDEwNUVEREVDMDA1NjgxNkYgLyogU3RvcmFnZUV2ZW50
RGlzcGF0Y2hlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJODkyQ0YxRUQxMzRDNjU1NTAwQUFFREEx
IC8qIFN0b3JhZ2VJbmZvLmggaW4gSGVhZGVycyAqLywKKwkJCQk4OTJDRjE5MjEzNEM2MjBEMDBB
QUVEQTEgLyogU3RvcmFnZUluZm9FcnJvckNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKKwkJCQk4
OTJDRjE5MzEzNEM2MjBEMDBBQUVEQTEgLyogU3RvcmFnZUluZm9RdW90YUNhbGxiYWNrLmggaW4g
SGVhZGVycyAqLywKKwkJCQk4OTJDRjE5NDEzNEM2MjBEMDBBQUVEQTEgLyogU3RvcmFnZUluZm9V
c2FnZUNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUUwQkIzODBEQTVBQ0I2MDBBOUU0
MTcgLyogU3RvcmFnZU1hcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzUwRDBFODMwRkY0MjcyOTAw
QUMyNjQ0IC8qIFN0b3JhZ2VOYW1lc3BhY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1NUUzOEJG
MTAwNDBENUQwMEE1NkJEQiAvKiBTdG9yYWdlTmFtZXNwYWNlSW1wbC5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yNTE1NCw2ICsyNTE3Myw3IEBACiAJCQkJQzUxMDJFRDAwRkQ5RUY4QzAwRkFGRjA0IC8q
IFN0b3JhZ2VBcmVhU3luYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUUwQkFCQzBEQTU1NDcx
MDBBOUU0MTcgLyogU3RvcmFnZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUM1RTlCNjc3
MTA2OTdFMTMwMEM3QkIxQSAvKiBTdG9yYWdlRXZlbnREaXNwYXRjaGVyLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTg5MkNGMUVDMTM0QzY1NTUwMEFBRURBMSAvKiBTdG9yYWdlSW5mby5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk1MUUwQkIzOTBEQTVBQ0I2MDBBOUU0MTcgLyogU3RvcmFnZU1hcC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlDNTBEMEU4MjBGRjQyNzI5MDBBQzI2NDQgLyogU3RvcmFn
ZU5hbWVzcGFjZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDNTVFMzhDMDEwMDQwRDVEMDBBNTZC
REIgLyogU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VJbmZvLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3N0b3JhZ2UvU3RvcmFnZUluZm8uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZjODkzMGM1N2U4YTdjMDEyNGE2
M2JmZGNlYzcyN2RiNTMzODE5ZmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dG9yYWdlL1N0b3JhZ2VJbmZvLmNwcApAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0
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
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorCisjaWYgRU5BQkxFKFFVT1RBKQorCisjaW5jbHVkZSAiU3RvcmFnZUluZm8uaCIKKworI2lu
Y2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAiU3RvcmFnZUluZm9FcnJvckNhbGxi
YWNrLmgiCisjaW5jbHVkZSAiU3RvcmFnZUluZm9RdW90YUNhbGxiYWNrLmgiCisjaW5jbHVkZSAi
U3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKKworU3RvcmFnZUluZm86OlN0b3JhZ2VJbmZvKCkK
K3sKK30KKworI2lmICFQTEFURk9STShDSFJPTUlVTSkKK3ZvaWQgU3RvcmFnZUluZm86OnF1ZXJ5
VXNhZ2VBbmRRdW90YShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgaW50LCBQYXNzUmVmUHRyPFN0
b3JhZ2VJbmZvVXNhZ2VDYWxsYmFjaz4sIFBhc3NSZWZQdHI8U3RvcmFnZUluZm9FcnJvckNhbGxi
YWNrPikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFN0b3JhZ2VJbmZvOjpy
ZXF1ZXN0UXVvdGEoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGludCwgdW5zaWduZWQgbG9uZyBs
b25nLCBQYXNzUmVmUHRyPFN0b3JhZ2VJbmZvUXVvdGFDYWxsYmFjaz4sIFBhc3NSZWZQdHI8U3Rv
cmFnZUluZm9FcnJvckNhbGxiYWNrPikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorI2Vu
ZGlmCisKK1N0b3JhZ2VJbmZvOjp+U3RvcmFnZUluZm8oKQoreworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoUVVPVEEpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0
b3JhZ2VJbmZvLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTc0MjY4OWJmMjY1ZjI4MTdjMTc2OWM3ZmVjZTkyZDVl
MTA3N2Y4YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFn
ZUluZm8uaApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAq
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBTdG9yYWdlSW5mb19oCisjZGVmaW5lIFN0
b3JhZ2VJbmZvX2gKKworI2lmIEVOQUJMRShRVU9UQSkKKworI2luY2x1ZGUgPHd0Zi9QYXNzUmVm
UHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworY2xhc3MgU3RvcmFnZUluZm9FcnJv
ckNhbGxiYWNrOworY2xhc3MgU3RvcmFnZUluZm9RdW90YUNhbGxiYWNrOworY2xhc3MgU3RvcmFn
ZUluZm9Vc2FnZUNhbGxiYWNrOworCitjbGFzcyBTdG9yYWdlSW5mbyA6IHB1YmxpYyBSZWZDb3Vu
dGVkPFN0b3JhZ2VJbmZvPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RvcmFn
ZUluZm8+IGNyZWF0ZSgpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFN0b3Jh
Z2VJbmZvKCkpOworICAgIH0KKworICAgIHZvaWQgcXVlcnlVc2FnZUFuZFF1b3RhKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBpbnQgc3RvcmFnZVR5cGUsIFBhc3NSZWZQdHI8U3RvcmFnZUluZm9V
c2FnZUNhbGxiYWNrPiwgUGFzc1JlZlB0cjxTdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2s+KTsKKyAg
ICB2b2lkIHJlcXVlc3RRdW90YShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgaW50IHN0b3JhZ2VU
eXBlLCB1bnNpZ25lZCBsb25nIGxvbmcgbmV3UXVvdGFJbkJ5dGVzLCBQYXNzUmVmUHRyPFN0b3Jh
Z2VJbmZvUXVvdGFDYWxsYmFjaz4sIFBhc3NSZWZQdHI8U3RvcmFnZUluZm9FcnJvckNhbGxiYWNr
Pik7CisKK3ByaXZhdGU6CisgICAgU3RvcmFnZUluZm8oKTsKKyAgICB+U3RvcmFnZUluZm8oKTsK
KworICAgIGZyaWVuZCBjbGFzcyBSZWZDb3VudGVkPFN0b3JhZ2VJbmZvPjsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShRVU9UQSkKKworI2VuZGlmIC8v
IFN0b3JhZ2VJbmZvX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFn
ZUluZm9FcnJvckNhbGxiYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VJbmZv
RXJyb3JDYWxsYmFjay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZlM2Q3NWU1OWMxNzEwMGZmZmJjM2ViNjk4ZTVl
OTdjMTMwYTdiMmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0
b3JhZ2VJbmZvRXJyb3JDYWxsYmFjay5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9u
LgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICog
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFN0b3JhZ2VJ
bmZvRXJyb3JDYWxsYmFja19oCisjZGVmaW5lIFN0b3JhZ2VJbmZvRXJyb3JDYWxsYmFja19oCisK
KyNpZiBFTkFCTEUoUVVPVEEpCisKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERPTUNvcmVFeGNlcHRpb247CisKK2NsYXNzIFN0b3Jh
Z2VJbmZvRXJyb3JDYWxsYmFjayA6IHB1YmxpYyBSZWZDb3VudGVkPFN0b3JhZ2VJbmZvRXJyb3JD
YWxsYmFjaz4geworcHVibGljOgorICAgIHZpcnR1YWwgflN0b3JhZ2VJbmZvRXJyb3JDYWxsYmFj
aygpIHsgfQorICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVFdmVudChET01Db3JlRXhjZXB0aW9uKikg
PSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFFV
T1RBKQorCisjZW5kaWYgLy8gU3RvcmFnZUluZm9FcnJvckNhbGxiYWNrX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUluZm9RdW90YUNhbGxiYWNrLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VJbmZvUXVvdGFDYWxsYmFjay5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmY2ZmRlOTljMjI2Zjk4NDI0ZjVmNDMzNTI0ZmYxNTRjYjkzZmVhNTcKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VJbmZvUXVvdGFDYWxsYmFjay5oCkBA
IC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAq
IG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAq
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisg
KiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWZuZGVmIFN0b3JhZ2VJbmZvUXVvdGFDYWxsYmFja19oCisjZGVmaW5l
IFN0b3JhZ2VJbmZvUXVvdGFDYWxsYmFja19oCisKKyNpZiBFTkFCTEUoUVVPVEEpCisKKyNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFN0
b3JhZ2VJbmZvUXVvdGFDYWxsYmFjayA6IHB1YmxpYyBSZWZDb3VudGVkPFN0b3JhZ2VJbmZvUXVv
dGFDYWxsYmFjaz4geworcHVibGljOgorICAgIHZpcnR1YWwgflN0b3JhZ2VJbmZvUXVvdGFDYWxs
YmFjaygpIHsgfQorICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVFdmVudCh1bnNpZ25lZCBsb25nIGxv
bmcgZ3JhbnRlZFF1b3RhSW5CeXRlcykgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UKKworI2Vu
ZGlmIC8vIEVOQUJMRShRVU9UQSkKKworI2VuZGlmIC8vIFN0b3JhZ2VJbmZvUXVvdGFDYWxsYmFj
a19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VJbmZvVXNhZ2VD
YWxsYmFjay5oIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlSW5mb1VzYWdlQ2FsbGJh
Y2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi44MzgyNjExNjc1OGZmZjk1ZmU3NjE4MGQ3M2MwODRkNjA1ODZmZjIw
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlSW5mb1Vz
YWdlQ2FsbGJhY2suaApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEx
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAq
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBTdG9yYWdlSW5mb1VzYWdlQ2Fs
bGJhY2tfaAorI2RlZmluZSBTdG9yYWdlSW5mb1VzYWdlQ2FsbGJhY2tfaAorCisjaWYgRU5BQkxF
KFFVT1RBKQorCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBTdG9yYWdlSW5mb1VzYWdlQ2FsbGJhY2sgOiBwdWJsaWMgUmVmQ291bnRl
ZDxTdG9yYWdlSW5mb1VzYWdlQ2FsbGJhY2s+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5TdG9y
YWdlSW5mb1VzYWdlQ2FsbGJhY2soKSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlRXZlbnQo
dW5zaWduZWQgbG9uZyBsb25nIGN1cnJlbnRVc2FnZUluQnl0ZXMsIHVuc2lnbmVkIGxvbmcgbG9u
ZyBjdXJyZW50UXVvdGFJbkJ5dGVzKSA9IDA7Cit9OworCit9IC8vIG5hbWVzcGFjZQorCisjZW5k
aWYgLy8gRU5BQkxFKFFVT1RBKQorCisjZW5kaWYgLy8gU3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNr
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZWE0ZjllZWFiYjJjNmI5NTcyNGViN2M3
YWNmMmZiYmM4MGQwMjYzZC4uN2Y5MGU1N2YwYWNkYjNiNTlmN2M3M2Q5Yzk0NzdjYTRlNjJiODU5
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMS0wNC0x
MSAgS2ludWtvIFlhc3VkYSAgPGtpbnVrb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIG1vY2sgaW1wbGVtZW50YXRpb24g
YW5kIHBsdW1iaW5nIGNvZGUgZm9yIHVuaWZpZWQgUXVvdGEgQVBJCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NzkyNworCisgICAgICAgIEFkZGVkIHBs
dW1iaW5nIGNvZGUgZm9yIHRoZSBxdW90YSBBUEksIHRoYXQgaXMgYmFzZWQgb24gdGhlCisgICAg
ICAgIGRpc2N1c3Npb24gb24gcHVibGljLXdlYmFwcHM6CisgICAgICAgIGh0dHA6Ly9saXN0cy53
My5vcmcvQXJjaGl2ZXMvUHVibGljL3B1YmxpYy13ZWJhcHBzLzIwMTFKYW5NYXIvMDM0Ni5odG1s
CisKKyAgICAgICAgKiBXZWJLaXQuZ3lwOiBBZGRlZCBuZXcgZmlsZSBlbnRyaWVzLgorICAgICAg
ICAqIHNyYy9TdG9yYWdlSW5mb0Nocm9taXVtLmNwcDogQWRkZWQuCisgICAgICAgICogc3JjL1dl
YlN0b3JhZ2VRdW90YUNhbGxiYWNrc0ltcGwuY3BwOiBBZGRlZC4gQW4gaW1wbGVtZW50YXRpb24g
b2YKKyAgICAgICAgV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzLgorICAgICAgICAqIHNyYy9XZWJT
dG9yYWdlUXVvdGFDYWxsYmFja3NJbXBsLmg6IEFkZGVkLgorCiAyMDExLTA0LTA3ICBLaW51a28g
WWFzdWRhICA8a2ludWtvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJp
biBGaXNoZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKaW5kZXggOTE3ZThmZGZhZGRhMmYz
NTJkNzcxYTI3YzFmMDU5ZDY5MDRlYWQ0ZC4uYzljZGU3NzZkMDIyY2VkZTFmYzAyODU0ZjUyYjdk
MDJjYzhhNjQxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lw
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cApAQCAtNDAyLDYgKzQwMiw3
IEBACiAgICAgICAgICAgICAgICAgJ3NyYy9TdG9yYWdlRXZlbnREaXNwYXRjaGVyQ2hyb21pdW0u
Y3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1N0b3JhZ2VFdmVudERpc3BhdGNoZXJJbXBsLmNw
cCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9TdG9yYWdlRXZlbnREaXNwYXRjaGVySW1wbC5oJywK
KyAgICAgICAgICAgICAgICAnc3JjL1N0b3JhZ2VJbmZvQ2hyb21pdW0uY3BwJywKICAgICAgICAg
ICAgICAgICAnc3JjL1N0b3JhZ2VOYW1lc3BhY2VQcm94eS5jcHAnLAogICAgICAgICAgICAgICAg
ICdzcmMvU3RvcmFnZU5hbWVzcGFjZVByb3h5LmgnLAogICAgICAgICAgICAgICAgICdzcmMvVGVt
cG9yYXJ5R2x1ZS5oJywKQEAgLTU1NCw2ICs1NTUsOCBAQAogICAgICAgICAgICAgICAgICdzcmMv
V2ViU3RvcmFnZUV2ZW50RGlzcGF0Y2hlckltcGwuaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9X
ZWJTdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViU3Rv
cmFnZU5hbWVzcGFjZUltcGwuaCcsCisgICAgICAgICAgICAgICAgJ3NyYy9XZWJTdG9yYWdlUXVv
dGFDYWxsYmFja3NJbXBsLmNwcCcsCisgICAgICAgICAgICAgICAgJ3NyYy9XZWJTdG9yYWdlUXVv
dGFDYWxsYmFja3NJbXBsLmgnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViU3RyaW5nLmNwcCcs
CiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJUZXh0UnVuLmNwcCcsCiAgICAgICAgICAgICAgICAg
J3NyYy9XZWJUaHJlYWRTYWZlRGF0YS5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvU3RvcmFnZUluZm9DaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9TdG9yYWdlSW5mb0Nocm9taXVtLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NTRiM2VjOWU5N2Vj
Yjg3MmRlMjIyZTRiNzNmNDc5OGYyMmI0MjE3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvU3RvcmFnZUluZm9DaHJvbWl1bS5jcHAKQEAgLTAsMCArMSw5OSBA
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
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTdG9yYWdlSW5mby5oIgorCisjaWYgRU5B
QkxFKFFVT1RBKQorCisjaW5jbHVkZSAiRE9NQ29yZUV4Y2VwdGlvbi5oIgorI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUg
IlN0b3JhZ2VJbmZvRXJyb3JDYWxsYmFjay5oIgorI2luY2x1ZGUgIlN0b3JhZ2VJbmZvUXVvdGFD
YWxsYmFjay5oIgorI2luY2x1ZGUgIlN0b3JhZ2VJbmZvVXNhZ2VDYWxsYmFjay5oIgorI2luY2x1
ZGUgIldlYkZyYW1lQ2xpZW50LmgiCisjaW5jbHVkZSAiV2ViRnJhbWVJbXBsLmgiCisjaW5jbHVk
ZSAiV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzSW1wbC5oIgorI2luY2x1ZGUgIldlYlN0b3JhZ2VR
dW90YVR5cGUuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCituYW1lc3BhY2Ugewordm9pZCBGaXJlU3RvcmFnZUluZm9FcnJvckNhbGxiYWNrKFBh
c3NSZWZQdHI8U3RvcmFnZUluZm9FcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrLCBFeGNlcHRp
b25Db2RlIGVjKQoreworICAgIEFTU0VSVChlcnJvckNhbGxiYWNrKTsKKyAgICBFeGNlcHRpb25D
b2RlRGVzY3JpcHRpb24gZGVzY3JpcHRpb247CisgICAgZ2V0RXhjZXB0aW9uQ29kZURlc2NyaXB0
aW9uKGVjLCBkZXNjcmlwdGlvbik7CisgICAgZXJyb3JDYWxsYmFjay0+aGFuZGxlRXZlbnQoRE9N
Q29yZUV4Y2VwdGlvbjo6Y3JlYXRlKGRlc2NyaXB0aW9uKS5nZXQoKSk7Cit9Cit9CisKK3ZvaWQg
U3RvcmFnZUluZm86OnF1ZXJ5VXNhZ2VBbmRRdW90YShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0LCBpbnQgc3RvcmFnZVR5cGUsIFBhc3NSZWZQdHI8U3RvcmFnZUluZm9Vc2FnZUNhbGxi
YWNrPiBzdWNjZXNzQ2FsbGJhY2ssIFBhc3NSZWZQdHI8U3RvcmFnZUluZm9FcnJvckNhbGxiYWNr
PiBlcnJvckNhbGxiYWNrKQoreworICAgIEFTU0VSVChjb250ZXh0KTsKKyAgICBpZiAoc3RvcmFn
ZVR5cGUgIT0gV2ViU3RvcmFnZVF1b3RhVHlwZVRlbXBvcmFyeSAmJiBzdG9yYWdlVHlwZSAhPSBX
ZWJTdG9yYWdlUXVvdGFUeXBlUGVyc2lzdGVudCkgeworICAgICAgICAvLyBVbmtub3duIHN0b3Jh
Z2UgdHlwZSBpcyByZXF1ZXN0ZWQuCisgICAgICAgIEZpcmVTdG9yYWdlSW5mb0Vycm9yQ2FsbGJh
Y2soTk9UX1NVUFBPUlRFRF9FUlIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChj
b250ZXh0LT5pc0RvY3VtZW50KCkpIHsKKyAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gc3Rh
dGljX2Nhc3Q8RG9jdW1lbnQqPihjb250ZXh0KTsKKyAgICAgICAgV2ViRnJhbWVJbXBsKiB3ZWJG
cmFtZSA9IFdlYkZyYW1lSW1wbDo6ZnJvbUZyYW1lKGRvY3VtZW50LT5mcmFtZSgpKTsKKyAgICAg
ICAgd2ViRnJhbWUtPmNsaWVudCgpLT5xdWVyeVN0b3JhZ2VVc2FnZUFuZFF1b3RhKHdlYkZyYW1l
LCBzdGF0aWNfY2FzdDxXZWJTdG9yYWdlUXVvdGFUeXBlPihzdG9yYWdlVHlwZSksIFdlYlN0b3Jh
Z2VRdW90YUNhbGxiYWNrc0ltcGw6OmNyZWF0ZUZvclVzYWdlQ2FsbGJhY2soc3VjY2Vzc0NhbGxi
YWNrLCBlcnJvckNhbGxiYWNrKSk7CisgICAgfSBlbHNlIGlmIChlcnJvckNhbGxiYWNrKSB7Cisg
ICAgICAgIC8vIEZJWE1FOiBjYWxsaW5nIHRoaXMgb24gd29ya2VyIGlzIG5vdCB5ZXQgc3VwcG9y
dGVkLgorICAgICAgICBGaXJlU3RvcmFnZUluZm9FcnJvckNhbGxiYWNrKE5PVF9TVVBQT1JURURf
RVJSKTsKKyAgICB9Cit9CisKK3ZvaWQgU3RvcmFnZUluZm86OnJlcXVlc3RRdW90YShTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBpbnQgc3RvcmFnZVR5cGUsIHVuc2lnbmVkIGxvbmcg
bG9uZyBuZXdRdW90YUluQnl0ZXMsIFBhc3NSZWZQdHI8U3RvcmFnZUluZm9RdW90YUNhbGxiYWNr
PiBzdWNjZXNzQ2FsbGJhY2ssIFBhc3NSZWZQdHI8U3RvcmFnZUluZm9FcnJvckNhbGxiYWNrPiBl
cnJvckNhbGxiYWNrKQoreworICAgIEFTU0VSVChjb250ZXh0KTsKKyAgICBpZiAoc3RvcmFnZVR5
cGUgIT0gV2ViU3RvcmFnZVF1b3RhVHlwZVRlbXBvcmFyeSAmJiBzdG9yYWdlVHlwZSAhPSBXZWJT
dG9yYWdlUXVvdGFUeXBlUGVyc2lzdGVudCkgeworICAgICAgICAvLyBVbmtub3duIHN0b3JhZ2Ug
dHlwZSBpcyByZXF1ZXN0ZWQuCisgICAgICAgIEZpcmVTdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2so
Tk9UX1NVUFBPUlRFRF9FUlIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChjb250
ZXh0LT5pc0RvY3VtZW50KCkpIHsKKyAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gc3RhdGlj
X2Nhc3Q8RG9jdW1lbnQqPihjb250ZXh0KTsKKyAgICAgICAgV2ViRnJhbWVJbXBsKiB3ZWJGcmFt
ZSA9IFdlYkZyYW1lSW1wbDo6ZnJvbUZyYW1lKGRvY3VtZW50LT5mcmFtZSgpKTsKKyAgICAgICAg
d2ViRnJhbWUtPmNsaWVudCgpLT5yZXF1ZXN0U3RvcmFnZVF1b3RhKHdlYkZyYW1lLCBzdGF0aWNf
Y2FzdDxXZWJTdG9yYWdlUXVvdGFUeXBlPihzdG9yYWdlVHlwZSksIG5ld1F1b3RhSW5CeXRlcywg
V2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzSW1wbDo6Y3JlYXRlRm9yUXVvdGFDYWxsYmFjayhzdWNj
ZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spKTsKKyAgICB9IGVsc2UgaWYgKGVycm9yQ2FsbGJh
Y2spIHsKKyAgICAgICAgLy8gRklYTUU6IGNhbGxpbmcgdGhpcyBvbiB3b3JrZXIgaXMgbm90IHll
dCBzdXBwb3J0ZWQuCisgICAgICAgIEZpcmVTdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2soTk9UX1NV
UFBPUlRFRF9FUlIpOworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gRU5BQkxFKFFVT1RBKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJTdG9yYWdlUXVvdGFDYWxsYmFja3NJbXBsLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YWFl
NGFjZGM2NjdkNzVkMTMyNzhhNjIwYTk4ZDRlMzg3NmJiOTI2Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzSW1wbC5j
cHAKQEAgLTAsMCArMSw5OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5j
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
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJTdG9y
YWdlUXVvdGFDYWxsYmFja3NJbXBsLmgiCisKKyNpZiBFTkFCTEUoUVVPVEEpCisKKyNpbmNsdWRl
ICJET01Db3JlRXhjZXB0aW9uLmgiCisjaW5jbHVkZSAiU3RvcmFnZUluZm9FcnJvckNhbGxiYWNr
LmgiCisjaW5jbHVkZSAiU3RvcmFnZUluZm9RdW90YUNhbGxiYWNrLmgiCisjaW5jbHVkZSAiU3Rv
cmFnZUluZm9Vc2FnZUNhbGxiYWNrLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzSW1wbCogV2ViU3Rv
cmFnZVF1b3RhQ2FsbGJhY2tzSW1wbDo6Y3JlYXRlRm9yVXNhZ2VDYWxsYmFjayhQYXNzUmVmUHRy
PFdlYkNvcmU6OlN0b3JhZ2VJbmZvVXNhZ2VDYWxsYmFjaz4gdXNhZ2VDYWxsYmFjaywgUGFzc1Jl
ZlB0cjxXZWJDb3JlOjpTdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2s+IGVycm9yQ2FsbGJhY2spCit7
CisgICAgLy8gVGhpcyBjbGFzcyBpcyBzZWxmLWRlc3RydWN0ZWQ7IHJldHVybmluZyBhIGxlYWtl
ZCBwb2ludGVyLgorICAgIHJldHVybiBhZG9wdFB0cihuZXcgV2ViU3RvcmFnZVF1b3RhQ2FsbGJh
Y2tzSW1wbCh1c2FnZUNhbGxiYWNrLCBlcnJvckNhbGxiYWNrKSkubGVha1B0cigpOworfQorCitX
ZWJTdG9yYWdlUXVvdGFDYWxsYmFja3NJbXBsKiBXZWJTdG9yYWdlUXVvdGFDYWxsYmFja3NJbXBs
OjpjcmVhdGVGb3JRdW90YUNhbGxiYWNrKFBhc3NSZWZQdHI8V2ViQ29yZTo6U3RvcmFnZUluZm9R
dW90YUNhbGxiYWNrPiBxdW90YUNhbGxiYWNrLCBQYXNzUmVmUHRyPFdlYkNvcmU6OlN0b3JhZ2VJ
bmZvRXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFjaykKK3sKKyAgICAvLyBUaGlzIGNsYXNzIGlz
IHNlbGYtZGVzdHJ1Y3RlZDsgcmV0dXJuaW5nIGEgbGVha2VkIHBvaW50ZXIuCisgICAgcmV0dXJu
IGFkb3B0UHRyKG5ldyBXZWJTdG9yYWdlUXVvdGFDYWxsYmFja3NJbXBsKHF1b3RhQ2FsbGJhY2ss
IGVycm9yQ2FsbGJhY2spKS5sZWFrUHRyKCk7Cit9CisKK1dlYlN0b3JhZ2VRdW90YUNhbGxiYWNr
c0ltcGw6On5XZWJTdG9yYWdlUXVvdGFDYWxsYmFja3NJbXBsKCkKK3sKK30KKwordm9pZCBXZWJT
dG9yYWdlUXVvdGFDYWxsYmFja3NJbXBsOjpkaWRRdWVyeVN0b3JhZ2VVc2FnZUFuZFF1b3RhKHVu
c2lnbmVkIGxvbmcgbG9uZyB1c2FnZUluQnl0ZXMsIHVuc2lnbmVkIGxvbmcgbG9uZyBxdW90YUlu
Qnl0ZXMpCit7CisgICAgaWYgKG1fdXNhZ2VDYWxsYmFjaykKKyAgICAgICAgbV91c2FnZUNhbGxi
YWNrLT5oYW5kbGVFdmVudCh1c2FnZUluQnl0ZXMsIHF1b3RhSW5CeXRlcyk7CisgICAgZGVsZXRl
IHRoaXM7Cit9CisKK3ZvaWQgV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzSW1wbDo6ZGlkR3JhbnRT
dG9yYWdlUXVvdGEodW5zaWduZWQgbG9uZyBsb25nIGdyYW50ZWRRdW90YUluQnl0ZXMpCit7Cisg
ICAgaWYgKG1fcXVvdGFDYWxsYmFjaykKKyAgICAgICAgbV9xdW90YUNhbGxiYWNrLT5oYW5kbGVF
dmVudChncmFudGVkUXVvdGFJbkJ5dGVzKTsKKyAgICBkZWxldGUgdGhpczsKK30KKwordm9pZCBX
ZWJTdG9yYWdlUXVvdGFDYWxsYmFja3NJbXBsOjpkaWRGYWlsKFdlYlN0b3JhZ2VRdW90YUVycm9y
IGVycm9yKQoreworICAgIGlmIChtX2Vycm9yQ2FsbGJhY2spIHsKKyAgICAgICAgRXhjZXB0aW9u
Q29kZURlc2NyaXB0aW9uIGRlc2NyaXB0aW9uOworICAgICAgICBnZXRFeGNlcHRpb25Db2RlRGVz
Y3JpcHRpb24oc3RhdGljX2Nhc3Q8RXhjZXB0aW9uQ29kZT4oZXJyb3IpLCBkZXNjcmlwdGlvbik7
CisgICAgICAgIG1fZXJyb3JDYWxsYmFjay0+aGFuZGxlRXZlbnQoRE9NQ29yZUV4Y2VwdGlvbjo6
Y3JlYXRlKGRlc2NyaXB0aW9uKS5nZXQoKSk7CisgICAgfQorICAgIGRlbGV0ZSB0aGlzOworfQor
CitXZWJTdG9yYWdlUXVvdGFDYWxsYmFja3NJbXBsOjpXZWJTdG9yYWdlUXVvdGFDYWxsYmFja3NJ
bXBsKFBhc3NSZWZQdHI8V2ViQ29yZTo6U3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrPiB1c2FnZUNh
bGxiYWNrLCBQYXNzUmVmUHRyPFdlYkNvcmU6OlN0b3JhZ2VJbmZvRXJyb3JDYWxsYmFjaz4gZXJy
b3JDYWxsYmFjaykKKyAgICA6IG1fdXNhZ2VDYWxsYmFjayh1c2FnZUNhbGxiYWNrKQorICAgICwg
bV9lcnJvckNhbGxiYWNrKGVycm9yQ2FsbGJhY2spCit7Cit9CisKK1dlYlN0b3JhZ2VRdW90YUNh
bGxiYWNrc0ltcGw6OldlYlN0b3JhZ2VRdW90YUNhbGxiYWNrc0ltcGwoUGFzc1JlZlB0cjxXZWJD
b3JlOjpTdG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2s+IHF1b3RhQ2FsbGJhY2ssIFBhc3NSZWZQdHI8
V2ViQ29yZTo6U3RvcmFnZUluZm9FcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrKQorICAgIDog
bV9xdW90YUNhbGxiYWNrKHF1b3RhQ2FsbGJhY2spCisgICAgLCBtX2Vycm9yQ2FsbGJhY2soZXJy
b3JDYWxsYmFjaykKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBF
TkFCTEUoUVVPVEEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJT
dG9yYWdlUXVvdGFDYWxsYmFja3NJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJTdG9yYWdlUXVvdGFDYWxsYmFja3NJbXBsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2I1OGMyYjc4YmM2NTk0
NDQ5YTUzN2Q2MzliNGNkN2ZmYzIzM2NhZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlN0b3JhZ2VRdW90YUNhbGxiYWNrc0ltcGwuaApAQCAtMCwwICsx
LDcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6Cisg
KgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAq
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
CisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmbmRlZiBXZWJTdG9yYWdlUXVvdGFDYWxsYmFja3NJbXBsX2gKKyNkZWZpbmUgV2Vi
U3RvcmFnZVF1b3RhQ2FsbGJhY2tzSW1wbF9oCisKKyNpbmNsdWRlICJXZWJTdG9yYWdlUXVvdGFD
YWxsYmFja3MuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9Q
YXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CitjbGFzcyBTdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2s7CitjbGFzcyBTdG9yYWdlSW5mb1F1
b3RhQ2FsbGJhY2s7CitjbGFzcyBTdG9yYWdlSW5mb1VzYWdlQ2FsbGJhY2s7Cit9CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJTdG9yYWdlUXVvdGFDYWxsYmFja3NJbXBsIDogcHVi
bGljIFdlYlN0b3JhZ2VRdW90YUNhbGxiYWNrcyB7CitwdWJsaWM6CisgICAgLy8gVGhlIGZvbGxv
d2luZyBjcmVhdGUgbWV0aG9kcyByZXR1cm4gYSBsZWFrZWQgcHRyICh0aGUgY2xhc3MgaXMgc2Vs
Zi1kZXN0cnVjdGVkKS4KKyAgICBzdGF0aWMgV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzSW1wbCog
Y3JlYXRlRm9yVXNhZ2VDYWxsYmFjayhQYXNzUmVmUHRyPFdlYkNvcmU6OlN0b3JhZ2VJbmZvVXNh
Z2VDYWxsYmFjaz4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6U3RvcmFnZUluZm9FcnJvckNhbGxiYWNr
Pik7CisgICAgc3RhdGljIFdlYlN0b3JhZ2VRdW90YUNhbGxiYWNrc0ltcGwqIGNyZWF0ZUZvclF1
b3RhQ2FsbGJhY2soUGFzc1JlZlB0cjxXZWJDb3JlOjpTdG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2s+
LCBQYXNzUmVmUHRyPFdlYkNvcmU6OlN0b3JhZ2VJbmZvRXJyb3JDYWxsYmFjaz4pOworCisgICAg
dmlydHVhbCB+V2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzSW1wbCgpOworCisgICAgdmlydHVhbCB2
b2lkIGRpZFF1ZXJ5U3RvcmFnZVVzYWdlQW5kUXVvdGEodW5zaWduZWQgbG9uZyBsb25nIHVzYWdl
SW5CeXRlcywgdW5zaWduZWQgbG9uZyBsb25nIHF1b3RhSW5CeXRlcyk7CisgICAgdmlydHVhbCB2
b2lkIGRpZEdyYW50U3RvcmFnZVF1b3RhKHVuc2lnbmVkIGxvbmcgbG9uZyBncmFudGVkUXVvdGFJ
bkJ5dGVzKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChXZWJTdG9yYWdlUXVvdGFFcnJvcik7
CisKK3ByaXZhdGU6CisgICAgV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzSW1wbChQYXNzUmVmUHRy
PFdlYkNvcmU6OlN0b3JhZ2VJbmZvVXNhZ2VDYWxsYmFjaz4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6
U3RvcmFnZUluZm9FcnJvckNhbGxiYWNrPik7CisgICAgV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tz
SW1wbChQYXNzUmVmUHRyPFdlYkNvcmU6OlN0b3JhZ2VJbmZvUXVvdGFDYWxsYmFjaz4sIFBhc3NS
ZWZQdHI8V2ViQ29yZTo6U3RvcmFnZUluZm9FcnJvckNhbGxiYWNrPik7CisKKyAgICBSZWZQdHI8
V2ViQ29yZTo6U3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrPiBtX3VzYWdlQ2FsbGJhY2s7CisgICAg
UmVmUHRyPFdlYkNvcmU6OlN0b3JhZ2VJbmZvUXVvdGFDYWxsYmFjaz4gbV9xdW90YUNhbGxiYWNr
OworICAgIFJlZlB0cjxXZWJDb3JlOjpTdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2s+IG1fZXJyb3JD
YWxsYmFjazsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViU3Rv
cmFnZVF1b3RhQ2FsbGJhY2tzSW1wbF9oCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88973</attachid>
            <date>2011-04-10 23:59:13 -0700</date>
            <delta_ts>2011-04-13 05:52:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-57927-20110411155911.patch</filename>
            <type>text/plain</type>
            <size>38044</size>
            <attacher name="Kinuko Yasuda">kinuko</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODMyNjMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggYjUxODBj
OWRiMTkwMGY4NWM2N2ZmYTljOTVjMTI3ZjAwMjczY2NjMS4uMzJjYjI2OGVhMzZlODA5Mzc5NWNj
YzIzOGQ3MGRmODJjOTc5NmQ0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE5NDYsNiArMTk0
NiwxMSBAQCBJRiAoRU5BQkxFX1BST0dSRVNTX1RBRykKICAgICApCiBFTkRJRiAoKQogCitpZiAo
RU5BQkxFX1FVT1RBKQorICAgIExJU1QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUworICAgICAgICBz
dG9yYWdlL1N0b3JhZ2VJbmZvLmNwcAorICAgICkKK0VORElGICgpCiAKIAogIyBNb2R1bGVzIHRo
YXQgdGhlIGJpbmRpbmdzIGdlbmVyYXRvciBzY3JpcHRzIG1heSB1c2UKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4
MDk2YzgwNjQwYTY3ODE1ZWE2MTdiMWYyZDQ3NWY1NzViMjBiYzIzLi5hYTg5ODE5MmM2YmU1N2Yy
ZjM0ZjM3NDE1MzljYjE3ZTFmN2E1ZjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIw
MTEtMDQtMTEgIEtpbnVrbyBZYXN1ZGEgIDxraW51a29AY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBtb2NrIGltcGxlbWVu
dGF0aW9uIGFuZCBwbHVtYmluZyBjb2RlIGZvciB1bmlmaWVkIFF1b3RhIEFQSQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTc5MjcKKworICAgICAgICBB
ZGRlZCBtb2NrIGltcGxlbWVudGF0aW9uIGFuZCBzb21lIHBsdW1iaW5nIGNvZGUgZm9yIHRoZSBx
dW90YSBBUEksCisgICAgICAgIHRoYXQgaXMgYmFzZWQgb24gdGhlIGRpc2N1c3Npb24gb24gcHVi
bGljLXdlYmFwcHM6CisgICAgICAgIGh0dHA6Ly9saXN0cy53My5vcmcvQXJjaGl2ZXMvUHVibGlj
L3B1YmxpYy13ZWJhcHBzLzIwMTFKYW5NYXIvMDM0Ni5odG1sCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzOiB0ZXN0cyB3aWxsIGJlIGFkZGVkIHdoZW4gd2UgZXhwb3NlIHRoZSBBUEkuCisKKyAgICAg
ICAgKiBDTWFrZUxpc3RzLnR4dDogQWRkZWQgbmV3IGZpbGUgZW50cmllcy4KKyAgICAgICAgKiBE
ZXJpdmVkU291cmNlcy5jcHA6IEFkZGVkIG5ldyBmaWxlIGVudHJpZXMuCisgICAgICAgICogRGVy
aXZlZFNvdXJjZXMubWFrZTogQWRkZWQgbmV3IGZpbGUgZW50cmllcy4KKyAgICAgICAgKiBHTlVt
YWtlZmlsZS5hbTogQWRkZWQgbmV3IGZpbGUgZW50cmllcy4KKyAgICAgICAgKiBXZWJDb3JlLmd5
cGk6IEFkZGVkIG5ldyBmaWxlIGVudHJpZXMuCisgICAgICAgICogV2ViQ29yZS5wcm86IEFkZGVk
IG5ldyBmaWxlIGVudHJpZXMuCisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2o6IEFkZGVkIG5ldyBmaWxlIGVudHJpZXMuCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOiBBZGRlZCBuZXcgZmlsZSBlbnRyaWVzLgorICAgICAgICAqIHN0b3Jh
Z2UvU3RvcmFnZUluZm8uY3BwOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL1N0b3JhZ2VJbmZv
Lmg6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZUluZm9FcnJvckNhbGxiYWNrLmg6
IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZUluZm9RdW90YUNhbGxiYWNrLmg6IEFk
ZGVkLgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrLmg6IEFkZGVk
LgorCiAyMDExLTA0LTA3ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggY2NjYTQ3OTQ2
ZGU2NDI1YmIwNGQxMGVlM2EyZDhkMjA4YmYwMzQyZS4uNzY3MDQwODgwNzk5Y2EyMjk1ODljNGRl
NzM1NDAwOGU3YzBmNTc4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNTUyNyw2ICs1NTI3LDExIEBA
CiAgICAgICAgICAgICAnc3RvcmFnZS9TdG9yYWdlRXZlbnQuaCcsCiAgICAgICAgICAgICAnc3Rv
cmFnZS9TdG9yYWdlRXZlbnREaXNwYXRjaGVyLmNwcCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9T
dG9yYWdlRXZlbnREaXNwYXRjaGVyLmgnLAorICAgICAgICAgICAgJ3N0b3JhZ2UvU3RvcmFnZUlu
Zm8uY3BwJywKKyAgICAgICAgICAgICdzdG9yYWdlL1N0b3JhZ2VJbmZvLmgnLAorICAgICAgICAg
ICAgJ3N0b3JhZ2UvU3RvcmFnZUluZm9FcnJvckNhbGxiYWNrLmgnLAorICAgICAgICAgICAgJ3N0
b3JhZ2UvU3RvcmFnZUluZm9RdW90YUNhbGxiYWNrLmgnLAorICAgICAgICAgICAgJ3N0b3JhZ2Uv
U3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrLmgnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvU3RvcmFn
ZU1hcC5jcHAnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvU3RvcmFnZU1hcC5oJywKICAgICAgICAg
ICAgICdzdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2UuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUucHJvIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggZGYz
MzY5YzY0ZWU2MDY4NTJkM2VjNjdhNThlZmU5OTZiMWE5MTUwYS4uYzdmMTQ0M2Q1NTYzNmZhYTNk
ODlhMDQyMWNhZWVkN2JmZGFhM2JmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5wcm8KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTI5MjcsNiArMjkyNywx
NyBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfSU5QVVRfU1BFRUNIPTEpIHsKICAgICAgICAg
cmVuZGVyaW5nL1JlbmRlcklucHV0U3BlZWNoLmNwcAogfQogCitjb250YWlucyhERUZJTkVTLCBF
TkFCTEVfUVVPVEE9MSkgeworICAgIEhFQURFUlMgKz0gXAorICAgICAgICBzdG9yYWdlL1N0b3Jh
Z2VJbmZvLmggXAorICAgICAgICBzdG9yYWdlL1N0b3JhZ2VJbmZvRXJyb3JDYWxsYmFjay5oIFwK
KyAgICAgICAgc3RvcmFnZS9TdG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2suaCBcCisgICAgICAgIHN0
b3JhZ2UvU3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrLmgKKworICAgIFNPVVJDRVMgKz0gXAorICAg
ICAgICBzdG9yYWdlL1N0b3JhZ2VJbmZvLmNwcAorfQorCiBjb250YWlucyhERUZJTkVTLCBFTkFC
TEVfVklERU89MSkgewogICAgIFNPVVJDRVMgKz0gXAogICAgICAgICBodG1sL0hUTUxBdWRpb0Vs
ZW1lbnQuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2oKaW5kZXggYzJlM2E1NDA5NThjNTY1ZmNjN2E2NDViNmYzZGIxYWZhYzljOTQ1Zi4uOGFjMWE4
NzUwMGEzNzA2MGFhNjQ3MmFmMDUwMzE1MWE5Yjc0M2ZiNiAxMDA3NTUKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTY2MTc0LDYgKzY2MTc0LDI2IEBACiAJ
CQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN0b3JhZ2Vc
U3RvcmFnZUluZm8uY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRp
dmVQYXRoPSIuLlxzdG9yYWdlXFN0b3JhZ2VJbmZvLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJ
PEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN0b3JhZ2VcU3RvcmFnZUluZm9FcnJvckNhbGxi
YWNrLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XHN0b3JhZ2VcU3RvcmFnZUluZm9RdW90YUNhbGxiYWNrLmgiCisJCQkJPgorCQkJPC9GaWxlPgor
CQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN0b3JhZ2VcU3RvcmFnZUluZm9Vc2FnZUNh
bGxiYWNrLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXHN0b3JhZ2VcU3RvcmFnZU1hcC5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDhmYWQx
YmZkY2Y5OGNjYWQ1ZGQxMzFkYjE3YWI4ZTg2MGRlOTE3ODUuLmI5YzM3ZTZlY2ZiNjU4YWFjMDJk
NTg2OWJkOGIwMDIzY2M5ODFkZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI2NDksNiArMjY0OSwxMSBAQAogCQk4NjI0M0Qw
MTExQkMzMUY3MDBDQzAwNkEgLyogSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2MjQzRDAwMTFCQzMxRjcwMEND
MDA2QSAvKiBKU0FycmF5QnVmZmVyVmlld0hlbHBlci5oICovOyB9OwogCQk4NkQ5ODJGNzEyNUMx
NTQwMDBBRDlFM0QgLyogRG9jdW1lbnRUaW1pbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2RDk4MkY2MTI1QzE1NDAwMEFEOUUzRCAvKiBEb2N1bWVu
dFRpbWluZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTg5MEFFMEUxMTI1NkEwNzkwMEY1OTY4QyAvKiBEaXJlY3RvcnlSZWFkZXJCYXNlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OTBBRTBFMDEyNTZB
MDc5MDBGNTk2OEMgLyogRGlyZWN0b3J5UmVhZGVyQmFzZS5oICovOyB9OworCQk4OTJDRjE5MjEz
NEM2MjBEMDBBQUVEQTEgLyogU3RvcmFnZUluZm9FcnJvckNhbGxiYWNrLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OTJDRjE4RDEzNEM2MjBEMDBBQUVE
QTEgLyogU3RvcmFnZUluZm9FcnJvckNhbGxiYWNrLmggKi87IH07CisJCTg5MkNGMTkzMTM0QzYy
MEQwMEFBRURBMSAvKiBTdG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5MkNGMThFMTM0QzYyMEQwMEFBRURBMSAv
KiBTdG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2suaCAqLzsgfTsKKwkJODkyQ0YxOTQxMzRDNjIwRDAw
QUFFREExIC8qIFN0b3JhZ2VJbmZvVXNhZ2VDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODkyQ0YxOEYxMzRDNjIwRDAwQUFFREExIC8qIFN0
b3JhZ2VJbmZvVXNhZ2VDYWxsYmFjay5oICovOyB9OworCQk4OTJDRjFFQzEzNEM2NTU1MDBBQUVE
QTEgLyogU3RvcmFnZUluZm8uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODkyQ0YxRUExMzRDNjU1NTAwQUFFREExIC8qIFN0b3JhZ2VJbmZvLmNwcCAq
LzsgfTsKKwkJODkyQ0YxRUQxMzRDNjU1NTAwQUFFREExIC8qIFN0b3JhZ2VJbmZvLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OTJDRjFFQjEzNEM2NTU1
MDBBQUVEQTEgLyogU3RvcmFnZUluZm8uaCAqLzsgfTsKIAkJODkzQzQ3QTcxMjM4OTA4QjAwMkIz
RDg2IC8qIEZpbGVDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODkzQzQ3QTUxMjM4OTA4QjAwMkIzRDg2IC8qIEZpbGVDYWxsYmFjay5oICov
OyB9OwogCQk4OTNDNDdBODEyMzg5MDhCMDAyQjNEODYgLyogRmlsZVdyaXRlckNhbGxiYWNrLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OTNDNDdBNjEy
Mzg5MDhCMDAyQjNEODYgLyogRmlsZVdyaXRlckNhbGxiYWNrLmggKi87IH07CiAJCTg5M0M0N0I3
MTIzOEEwOTkwMDJCM0Q4NiAvKiBKU0ZpbGVDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OTNDNDdCNTEyMzhBMDk5MDAyQjNEODYgLyog
SlNGaWxlQ2FsbGJhY2suY3BwICovOyB9OwpAQCAtOTE3Niw2ICs5MTgxLDExIEBACiAJCTg2MjQz
RDAwMTFCQzMxRjcwMENDMDA2QSAvKiBKU0FycmF5QnVmZmVyVmlld0hlbHBlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0FycmF5QnVmZmVyVmlld0hlbHBlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NkQ5ODJGNjEyNUMxNTQwMDBBRDlFM0QgLyogRG9j
dW1lbnRUaW1pbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRG9jdW1lbnRU
aW1pbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODkwQUUwRTAxMjU2QTA3OTAw
RjU5NjhDIC8qIERpcmVjdG9yeVJlYWRlckJhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gRGlyZWN0b3J5UmVhZGVyQmFzZS5oOyBwYXRoID0gZmlsZWFwaS9EaXJlY3RvcnlS
ZWFkZXJCYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg5MkNGMThEMTM0QzYy
MEQwMEFBRURBMSAvKiBTdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU3RvcmFnZUluZm9FcnJvckNhbGxiYWNrLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTg5MkNGMThFMTM0QzYyMEQwMEFBRURBMSAvKiBTdG9yYWdlSW5m
b1F1b3RhQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvcmFn
ZUluZm9RdW90YUNhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg5MkNG
MThGMTM0QzYyMEQwMEFBRURBMSAvKiBTdG9yYWdlSW5mb1VzYWdlQ2FsbGJhY2suaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg5MkNGMUVBMTM0QzY1NTUwMEFBRURBMSAvKiBT
dG9yYWdlSW5mby5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdG9y
YWdlSW5mby5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg5MkNGMUVCMTM0QzY1
NTUwMEFBRURBMSAvKiBTdG9yYWdlSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTdG9yYWdlSW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4OTNDNDdB
NTEyMzg5MDhCMDAyQjNEODYgLyogRmlsZUNhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IEZpbGVDYWxsYmFjay5oOyBwYXRoID0gZmlsZWFwaS9GaWxlQ2FsbGJhY2su
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODkzQzQ3QTYxMjM4OTA4QjAwMkIzRDg2
IC8qIEZpbGVXcml0ZXJDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBGaWxlV3JpdGVyQ2FsbGJhY2suaDsgcGF0aCA9IGZpbGVhcGkvRmlsZVdyaXRlckNhbGxiYWNr
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg5M0M0N0I1MTIzOEEwOTkwMDJCM0Q4
NiAvKiBKU0ZpbGVDYWxsYmFjay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU0ZpbGVDYWxsYmFjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
MzEzOSw2ICsxMzE0OSwxMSBAQAogCQkJCTUxRTBCQUJEMERBNTU0ODQwMEE5RTQxNyAvKiBTdG9y
YWdlRXZlbnQuaWRsICovLAogCQkJCUM1RTlCNjc2MTA2OTdFMTMwMEM3QkIxQSAvKiBTdG9yYWdl
RXZlbnREaXNwYXRjaGVyLmNwcCAqLywKIAkJCQlDNUVCREQ4MTEwNUVEREVDMDA1NjgxNkYgLyog
U3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5oICovLAorCQkJCTg5MkNGMUVBMTM0QzY1NTUwMEFBRURB
MSAvKiBTdG9yYWdlSW5mby5jcHAgKi8sCisJCQkJODkyQ0YxRUIxMzRDNjU1NTAwQUFFREExIC8q
IFN0b3JhZ2VJbmZvLmggKi8sCisJCQkJODkyQ0YxOEQxMzRDNjIwRDAwQUFFREExIC8qIFN0b3Jh
Z2VJbmZvRXJyb3JDYWxsYmFjay5oICovLAorCQkJCTg5MkNGMThFMTM0QzYyMEQwMEFBRURBMSAv
KiBTdG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2suaCAqLywKKwkJCQk4OTJDRjE4RjEzNEM2MjBEMDBB
QUVEQTEgLyogU3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrLmggKi8sCiAJCQkJNTFFMEJCMzcwREE1
QUNCNjAwQTlFNDE3IC8qIFN0b3JhZ2VNYXAuY3BwICovLAogCQkJCTUxRTBCQjM2MERBNUFDQjYw
MEE5RTQxNyAvKiBTdG9yYWdlTWFwLmggKi8sCiAJCQkJQzUwRDBFODAwRkY0MjcyOTAwQUMyNjQ0
IC8qIFN0b3JhZ2VOYW1lc3BhY2UuY3BwICovLApAQCAtMjIzNDIsNiArMjIzNTcsMTAgQEAKIAkJ
CQlDNTEwMkVDRjBGRDlFRjhDMDBGQUZGMDQgLyogU3RvcmFnZUFyZWFTeW5jLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1MUUwQkFCQjBEQTU1NDcxMDBBOUU0MTcgLyogU3RvcmFnZUV2ZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQlDNUVCREQ4NDEwNUVEREVDMDA1NjgxNkYgLyogU3RvcmFnZUV2ZW50
RGlzcGF0Y2hlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJODkyQ0YxRUQxMzRDNjU1NTAwQUFFREEx
IC8qIFN0b3JhZ2VJbmZvLmggaW4gSGVhZGVycyAqLywKKwkJCQk4OTJDRjE5MjEzNEM2MjBEMDBB
QUVEQTEgLyogU3RvcmFnZUluZm9FcnJvckNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKKwkJCQk4
OTJDRjE5MzEzNEM2MjBEMDBBQUVEQTEgLyogU3RvcmFnZUluZm9RdW90YUNhbGxiYWNrLmggaW4g
SGVhZGVycyAqLywKKwkJCQk4OTJDRjE5NDEzNEM2MjBEMDBBQUVEQTEgLyogU3RvcmFnZUluZm9V
c2FnZUNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUUwQkIzODBEQTVBQ0I2MDBBOUU0
MTcgLyogU3RvcmFnZU1hcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzUwRDBFODMwRkY0MjcyOTAw
QUMyNjQ0IC8qIFN0b3JhZ2VOYW1lc3BhY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1NUUzOEJG
MTAwNDBENUQwMEE1NkJEQiAvKiBTdG9yYWdlTmFtZXNwYWNlSW1wbC5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yNTE1NCw2ICsyNTE3Myw3IEBACiAJCQkJQzUxMDJFRDAwRkQ5RUY4QzAwRkFGRjA0IC8q
IFN0b3JhZ2VBcmVhU3luYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUUwQkFCQzBEQTU1NDcx
MDBBOUU0MTcgLyogU3RvcmFnZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUM1RTlCNjc3
MTA2OTdFMTMwMEM3QkIxQSAvKiBTdG9yYWdlRXZlbnREaXNwYXRjaGVyLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTg5MkNGMUVDMTM0QzY1NTUwMEFBRURBMSAvKiBTdG9yYWdlSW5mby5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk1MUUwQkIzOTBEQTVBQ0I2MDBBOUU0MTcgLyogU3RvcmFnZU1hcC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlDNTBEMEU4MjBGRjQyNzI5MDBBQzI2NDQgLyogU3RvcmFn
ZU5hbWVzcGFjZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDNTVFMzhDMDEwMDQwRDVEMDBBNTZC
REIgLyogU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VJbmZvLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3N0b3JhZ2UvU3RvcmFnZUluZm8uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZjODkzMGM1N2U4YTdjMDEyNGE2
M2JmZGNlYzcyN2RiNTMzODE5ZmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dG9yYWdlL1N0b3JhZ2VJbmZvLmNwcApAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0
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
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorCisjaWYgRU5BQkxFKFFVT1RBKQorCisjaW5jbHVkZSAiU3RvcmFnZUluZm8uaCIKKworI2lu
Y2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAiU3RvcmFnZUluZm9FcnJvckNhbGxi
YWNrLmgiCisjaW5jbHVkZSAiU3RvcmFnZUluZm9RdW90YUNhbGxiYWNrLmgiCisjaW5jbHVkZSAi
U3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKKworU3RvcmFnZUluZm86OlN0b3JhZ2VJbmZvKCkK
K3sKK30KKworI2lmICFQTEFURk9STShDSFJPTUlVTSkKK3ZvaWQgU3RvcmFnZUluZm86OnF1ZXJ5
VXNhZ2VBbmRRdW90YShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgaW50LCBQYXNzUmVmUHRyPFN0
b3JhZ2VJbmZvVXNhZ2VDYWxsYmFjaz4sIFBhc3NSZWZQdHI8U3RvcmFnZUluZm9FcnJvckNhbGxi
YWNrPikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFN0b3JhZ2VJbmZvOjpy
ZXF1ZXN0UXVvdGEoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGludCwgdW5zaWduZWQgbG9uZyBs
b25nLCBQYXNzUmVmUHRyPFN0b3JhZ2VJbmZvUXVvdGFDYWxsYmFjaz4sIFBhc3NSZWZQdHI8U3Rv
cmFnZUluZm9FcnJvckNhbGxiYWNrPikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorI2Vu
ZGlmCisKK1N0b3JhZ2VJbmZvOjp+U3RvcmFnZUluZm8oKQoreworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoUVVPVEEpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0
b3JhZ2VJbmZvLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTc0MjY4OWJmMjY1ZjI4MTdjMTc2OWM3ZmVjZTkyZDVl
MTA3N2Y4YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFn
ZUluZm8uaApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAq
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBTdG9yYWdlSW5mb19oCisjZGVmaW5lIFN0
b3JhZ2VJbmZvX2gKKworI2lmIEVOQUJMRShRVU9UQSkKKworI2luY2x1ZGUgPHd0Zi9QYXNzUmVm
UHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworY2xhc3MgU3RvcmFnZUluZm9FcnJv
ckNhbGxiYWNrOworY2xhc3MgU3RvcmFnZUluZm9RdW90YUNhbGxiYWNrOworY2xhc3MgU3RvcmFn
ZUluZm9Vc2FnZUNhbGxiYWNrOworCitjbGFzcyBTdG9yYWdlSW5mbyA6IHB1YmxpYyBSZWZDb3Vu
dGVkPFN0b3JhZ2VJbmZvPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RvcmFn
ZUluZm8+IGNyZWF0ZSgpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFN0b3Jh
Z2VJbmZvKCkpOworICAgIH0KKworICAgIHZvaWQgcXVlcnlVc2FnZUFuZFF1b3RhKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBpbnQgc3RvcmFnZVR5cGUsIFBhc3NSZWZQdHI8U3RvcmFnZUluZm9V
c2FnZUNhbGxiYWNrPiwgUGFzc1JlZlB0cjxTdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2s+KTsKKyAg
ICB2b2lkIHJlcXVlc3RRdW90YShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgaW50IHN0b3JhZ2VU
eXBlLCB1bnNpZ25lZCBsb25nIGxvbmcgbmV3UXVvdGFJbkJ5dGVzLCBQYXNzUmVmUHRyPFN0b3Jh
Z2VJbmZvUXVvdGFDYWxsYmFjaz4sIFBhc3NSZWZQdHI8U3RvcmFnZUluZm9FcnJvckNhbGxiYWNr
Pik7CisKK3ByaXZhdGU6CisgICAgU3RvcmFnZUluZm8oKTsKKyAgICB+U3RvcmFnZUluZm8oKTsK
KworICAgIGZyaWVuZCBjbGFzcyBSZWZDb3VudGVkPFN0b3JhZ2VJbmZvPjsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShRVU9UQSkKKworI2VuZGlmIC8v
IFN0b3JhZ2VJbmZvX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFn
ZUluZm9FcnJvckNhbGxiYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VJbmZv
RXJyb3JDYWxsYmFjay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZlM2Q3NWU1OWMxNzEwMGZmZmJjM2ViNjk4ZTVl
OTdjMTMwYTdiMmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0
b3JhZ2VJbmZvRXJyb3JDYWxsYmFjay5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9u
LgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICog
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFN0b3JhZ2VJ
bmZvRXJyb3JDYWxsYmFja19oCisjZGVmaW5lIFN0b3JhZ2VJbmZvRXJyb3JDYWxsYmFja19oCisK
KyNpZiBFTkFCTEUoUVVPVEEpCisKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERPTUNvcmVFeGNlcHRpb247CisKK2NsYXNzIFN0b3Jh
Z2VJbmZvRXJyb3JDYWxsYmFjayA6IHB1YmxpYyBSZWZDb3VudGVkPFN0b3JhZ2VJbmZvRXJyb3JD
YWxsYmFjaz4geworcHVibGljOgorICAgIHZpcnR1YWwgflN0b3JhZ2VJbmZvRXJyb3JDYWxsYmFj
aygpIHsgfQorICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVFdmVudChET01Db3JlRXhjZXB0aW9uKikg
PSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFFV
T1RBKQorCisjZW5kaWYgLy8gU3RvcmFnZUluZm9FcnJvckNhbGxiYWNrX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUluZm9RdW90YUNhbGxiYWNrLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VJbmZvUXVvdGFDYWxsYmFjay5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmY2ZmRlOTljMjI2Zjk4NDI0ZjVmNDMzNTI0ZmYxNTRjYjkzZmVhNTcKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VJbmZvUXVvdGFDYWxsYmFjay5oCkBA
IC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAq
IG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAq
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisg
KiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWZuZGVmIFN0b3JhZ2VJbmZvUXVvdGFDYWxsYmFja19oCisjZGVmaW5l
IFN0b3JhZ2VJbmZvUXVvdGFDYWxsYmFja19oCisKKyNpZiBFTkFCTEUoUVVPVEEpCisKKyNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFN0
b3JhZ2VJbmZvUXVvdGFDYWxsYmFjayA6IHB1YmxpYyBSZWZDb3VudGVkPFN0b3JhZ2VJbmZvUXVv
dGFDYWxsYmFjaz4geworcHVibGljOgorICAgIHZpcnR1YWwgflN0b3JhZ2VJbmZvUXVvdGFDYWxs
YmFjaygpIHsgfQorICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVFdmVudCh1bnNpZ25lZCBsb25nIGxv
bmcgZ3JhbnRlZFF1b3RhSW5CeXRlcykgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UKKworI2Vu
ZGlmIC8vIEVOQUJMRShRVU9UQSkKKworI2VuZGlmIC8vIFN0b3JhZ2VJbmZvUXVvdGFDYWxsYmFj
a19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VJbmZvVXNhZ2VD
YWxsYmFjay5oIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlSW5mb1VzYWdlQ2FsbGJh
Y2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi44MzgyNjExNjc1OGZmZjk1ZmU3NjE4MGQ3M2MwODRkNjA1ODZmZjIw
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlSW5mb1Vz
YWdlQ2FsbGJhY2suaApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEx
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAq
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBTdG9yYWdlSW5mb1VzYWdlQ2Fs
bGJhY2tfaAorI2RlZmluZSBTdG9yYWdlSW5mb1VzYWdlQ2FsbGJhY2tfaAorCisjaWYgRU5BQkxF
KFFVT1RBKQorCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBTdG9yYWdlSW5mb1VzYWdlQ2FsbGJhY2sgOiBwdWJsaWMgUmVmQ291bnRl
ZDxTdG9yYWdlSW5mb1VzYWdlQ2FsbGJhY2s+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5TdG9y
YWdlSW5mb1VzYWdlQ2FsbGJhY2soKSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlRXZlbnQo
dW5zaWduZWQgbG9uZyBsb25nIGN1cnJlbnRVc2FnZUluQnl0ZXMsIHVuc2lnbmVkIGxvbmcgbG9u
ZyBjdXJyZW50UXVvdGFJbkJ5dGVzKSA9IDA7Cit9OworCit9IC8vIG5hbWVzcGFjZQorCisjZW5k
aWYgLy8gRU5BQkxFKFFVT1RBKQorCisjZW5kaWYgLy8gU3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNr
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZWE0ZjllZWFiYjJjNmI5NTcyNGViN2M3
YWNmMmZiYmM4MGQwMjYzZC4uN2Y5MGU1N2YwYWNkYjNiNTlmN2M3M2Q5Yzk0NzdjYTRlNjJiODU5
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMS0wNC0x
MSAgS2ludWtvIFlhc3VkYSAgPGtpbnVrb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIG1vY2sgaW1wbGVtZW50YXRpb24g
YW5kIHBsdW1iaW5nIGNvZGUgZm9yIHVuaWZpZWQgUXVvdGEgQVBJCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NzkyNworCisgICAgICAgIEFkZGVkIHBs
dW1iaW5nIGNvZGUgZm9yIHRoZSBxdW90YSBBUEksIHRoYXQgaXMgYmFzZWQgb24gdGhlCisgICAg
ICAgIGRpc2N1c3Npb24gb24gcHVibGljLXdlYmFwcHM6CisgICAgICAgIGh0dHA6Ly9saXN0cy53
My5vcmcvQXJjaGl2ZXMvUHVibGljL3B1YmxpYy13ZWJhcHBzLzIwMTFKYW5NYXIvMDM0Ni5odG1s
CisKKyAgICAgICAgKiBXZWJLaXQuZ3lwOiBBZGRlZCBuZXcgZmlsZSBlbnRyaWVzLgorICAgICAg
ICAqIHNyYy9TdG9yYWdlSW5mb0Nocm9taXVtLmNwcDogQWRkZWQuCisgICAgICAgICogc3JjL1dl
YlN0b3JhZ2VRdW90YUNhbGxiYWNrc0ltcGwuY3BwOiBBZGRlZC4gQW4gaW1wbGVtZW50YXRpb24g
b2YKKyAgICAgICAgV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzLgorICAgICAgICAqIHNyYy9XZWJT
dG9yYWdlUXVvdGFDYWxsYmFja3NJbXBsLmg6IEFkZGVkLgorCiAyMDExLTA0LTA3ICBLaW51a28g
WWFzdWRhICA8a2ludWtvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJp
biBGaXNoZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKaW5kZXggOTE3ZThmZGZhZGRhMmYz
NTJkNzcxYTI3YzFmMDU5ZDY5MDRlYWQ0ZC4uYzljZGU3NzZkMDIyY2VkZTFmYzAyODU0ZjUyYjdk
MDJjYzhhNjQxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lw
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cApAQCAtNDAyLDYgKzQwMiw3
IEBACiAgICAgICAgICAgICAgICAgJ3NyYy9TdG9yYWdlRXZlbnREaXNwYXRjaGVyQ2hyb21pdW0u
Y3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1N0b3JhZ2VFdmVudERpc3BhdGNoZXJJbXBsLmNw
cCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9TdG9yYWdlRXZlbnREaXNwYXRjaGVySW1wbC5oJywK
KyAgICAgICAgICAgICAgICAnc3JjL1N0b3JhZ2VJbmZvQ2hyb21pdW0uY3BwJywKICAgICAgICAg
ICAgICAgICAnc3JjL1N0b3JhZ2VOYW1lc3BhY2VQcm94eS5jcHAnLAogICAgICAgICAgICAgICAg
ICdzcmMvU3RvcmFnZU5hbWVzcGFjZVByb3h5LmgnLAogICAgICAgICAgICAgICAgICdzcmMvVGVt
cG9yYXJ5R2x1ZS5oJywKQEAgLTU1NCw2ICs1NTUsOCBAQAogICAgICAgICAgICAgICAgICdzcmMv
V2ViU3RvcmFnZUV2ZW50RGlzcGF0Y2hlckltcGwuaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9X
ZWJTdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViU3Rv
cmFnZU5hbWVzcGFjZUltcGwuaCcsCisgICAgICAgICAgICAgICAgJ3NyYy9XZWJTdG9yYWdlUXVv
dGFDYWxsYmFja3NJbXBsLmNwcCcsCisgICAgICAgICAgICAgICAgJ3NyYy9XZWJTdG9yYWdlUXVv
dGFDYWxsYmFja3NJbXBsLmgnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViU3RyaW5nLmNwcCcs
CiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJUZXh0UnVuLmNwcCcsCiAgICAgICAgICAgICAgICAg
J3NyYy9XZWJUaHJlYWRTYWZlRGF0YS5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvU3RvcmFnZUluZm9DaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9TdG9yYWdlSW5mb0Nocm9taXVtLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iOWFjZTQ4NjJlNTcy
OTY5Yjg3NTk4OTY3Y2NiODE1MGE0OWVhNTc3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvU3RvcmFnZUluZm9DaHJvbWl1bS5jcHAKQEAgLTAsMCArMSw5OSBA
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
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTdG9yYWdlSW5mby5oIgorCisjaWYgRU5B
QkxFKFFVT1RBKQorCisjaW5jbHVkZSAiRE9NQ29yZUV4Y2VwdGlvbi5oIgorI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUg
IlN0b3JhZ2VJbmZvRXJyb3JDYWxsYmFjay5oIgorI2luY2x1ZGUgIlN0b3JhZ2VJbmZvUXVvdGFD
YWxsYmFjay5oIgorI2luY2x1ZGUgIlN0b3JhZ2VJbmZvVXNhZ2VDYWxsYmFjay5oIgorI2luY2x1
ZGUgIldlYkZyYW1lQ2xpZW50LmgiCisjaW5jbHVkZSAiV2ViRnJhbWVJbXBsLmgiCisjaW5jbHVk
ZSAiV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzSW1wbC5oIgorI2luY2x1ZGUgIldlYlN0b3JhZ2VR
dW90YVR5cGUuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCituYW1lc3BhY2Ugewordm9pZCBmaXJlU3RvcmFnZUluZm9FcnJvckNhbGxiYWNrKFBh
c3NSZWZQdHI8U3RvcmFnZUluZm9FcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrLCBFeGNlcHRp
b25Db2RlIGVjKQoreworICAgIEFTU0VSVChlcnJvckNhbGxiYWNrKTsKKyAgICBFeGNlcHRpb25D
b2RlRGVzY3JpcHRpb24gZGVzY3JpcHRpb247CisgICAgZ2V0RXhjZXB0aW9uQ29kZURlc2NyaXB0
aW9uKGVjLCBkZXNjcmlwdGlvbik7CisgICAgZXJyb3JDYWxsYmFjay0+aGFuZGxlRXZlbnQoRE9N
Q29yZUV4Y2VwdGlvbjo6Y3JlYXRlKGRlc2NyaXB0aW9uKS5nZXQoKSk7Cit9Cit9CisKK3ZvaWQg
U3RvcmFnZUluZm86OnF1ZXJ5VXNhZ2VBbmRRdW90YShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0LCBpbnQgc3RvcmFnZVR5cGUsIFBhc3NSZWZQdHI8U3RvcmFnZUluZm9Vc2FnZUNhbGxi
YWNrPiBzdWNjZXNzQ2FsbGJhY2ssIFBhc3NSZWZQdHI8U3RvcmFnZUluZm9FcnJvckNhbGxiYWNr
PiBlcnJvckNhbGxiYWNrKQoreworICAgIEFTU0VSVChjb250ZXh0KTsKKyAgICBpZiAoc3RvcmFn
ZVR5cGUgIT0gV2ViU3RvcmFnZVF1b3RhVHlwZVRlbXBvcmFyeSAmJiBzdG9yYWdlVHlwZSAhPSBX
ZWJTdG9yYWdlUXVvdGFUeXBlUGVyc2lzdGVudCkgeworICAgICAgICAvLyBVbmtub3duIHN0b3Jh
Z2UgdHlwZSBpcyByZXF1ZXN0ZWQuCisgICAgICAgIGZpcmVTdG9yYWdlSW5mb0Vycm9yQ2FsbGJh
Y2soTk9UX1NVUFBPUlRFRF9FUlIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChj
b250ZXh0LT5pc0RvY3VtZW50KCkpIHsKKyAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gc3Rh
dGljX2Nhc3Q8RG9jdW1lbnQqPihjb250ZXh0KTsKKyAgICAgICAgV2ViRnJhbWVJbXBsKiB3ZWJG
cmFtZSA9IFdlYkZyYW1lSW1wbDo6ZnJvbUZyYW1lKGRvY3VtZW50LT5mcmFtZSgpKTsKKyAgICAg
ICAgd2ViRnJhbWUtPmNsaWVudCgpLT5xdWVyeVN0b3JhZ2VVc2FnZUFuZFF1b3RhKHdlYkZyYW1l
LCBzdGF0aWNfY2FzdDxXZWJTdG9yYWdlUXVvdGFUeXBlPihzdG9yYWdlVHlwZSksIFdlYlN0b3Jh
Z2VRdW90YUNhbGxiYWNrc0ltcGw6OmNyZWF0ZUZvclVzYWdlQ2FsbGJhY2soc3VjY2Vzc0NhbGxi
YWNrLCBlcnJvckNhbGxiYWNrKSk7CisgICAgfSBlbHNlIGlmIChlcnJvckNhbGxiYWNrKSB7Cisg
ICAgICAgIC8vIEZJWE1FOiBjYWxsaW5nIHRoaXMgb24gd29ya2VyIGlzIG5vdCB5ZXQgc3VwcG9y
dGVkLgorICAgICAgICBmaXJlU3RvcmFnZUluZm9FcnJvckNhbGxiYWNrKE5PVF9TVVBQT1JURURf
RVJSKTsKKyAgICB9Cit9CisKK3ZvaWQgU3RvcmFnZUluZm86OnJlcXVlc3RRdW90YShTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBpbnQgc3RvcmFnZVR5cGUsIHVuc2lnbmVkIGxvbmcg
bG9uZyBuZXdRdW90YUluQnl0ZXMsIFBhc3NSZWZQdHI8U3RvcmFnZUluZm9RdW90YUNhbGxiYWNr
PiBzdWNjZXNzQ2FsbGJhY2ssIFBhc3NSZWZQdHI8U3RvcmFnZUluZm9FcnJvckNhbGxiYWNrPiBl
cnJvckNhbGxiYWNrKQoreworICAgIEFTU0VSVChjb250ZXh0KTsKKyAgICBpZiAoc3RvcmFnZVR5
cGUgIT0gV2ViU3RvcmFnZVF1b3RhVHlwZVRlbXBvcmFyeSAmJiBzdG9yYWdlVHlwZSAhPSBXZWJT
dG9yYWdlUXVvdGFUeXBlUGVyc2lzdGVudCkgeworICAgICAgICAvLyBVbmtub3duIHN0b3JhZ2Ug
dHlwZSBpcyByZXF1ZXN0ZWQuCisgICAgICAgIGZpcmVTdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2so
Tk9UX1NVUFBPUlRFRF9FUlIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChjb250
ZXh0LT5pc0RvY3VtZW50KCkpIHsKKyAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gc3RhdGlj
X2Nhc3Q8RG9jdW1lbnQqPihjb250ZXh0KTsKKyAgICAgICAgV2ViRnJhbWVJbXBsKiB3ZWJGcmFt
ZSA9IFdlYkZyYW1lSW1wbDo6ZnJvbUZyYW1lKGRvY3VtZW50LT5mcmFtZSgpKTsKKyAgICAgICAg
d2ViRnJhbWUtPmNsaWVudCgpLT5yZXF1ZXN0U3RvcmFnZVF1b3RhKHdlYkZyYW1lLCBzdGF0aWNf
Y2FzdDxXZWJTdG9yYWdlUXVvdGFUeXBlPihzdG9yYWdlVHlwZSksIG5ld1F1b3RhSW5CeXRlcywg
V2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzSW1wbDo6Y3JlYXRlRm9yUXVvdGFDYWxsYmFjayhzdWNj
ZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spKTsKKyAgICB9IGVsc2UgaWYgKGVycm9yQ2FsbGJh
Y2spIHsKKyAgICAgICAgLy8gRklYTUU6IGNhbGxpbmcgdGhpcyBvbiB3b3JrZXIgaXMgbm90IHll
dCBzdXBwb3J0ZWQuCisgICAgICAgIGZpcmVTdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2soTk9UX1NV
UFBPUlRFRF9FUlIpOworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gRU5BQkxFKFFVT1RBKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJTdG9yYWdlUXVvdGFDYWxsYmFja3NJbXBsLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YWFl
NGFjZGM2NjdkNzVkMTMyNzhhNjIwYTk4ZDRlMzg3NmJiOTI2Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzSW1wbC5j
cHAKQEAgLTAsMCArMSw5OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5j
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
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJTdG9y
YWdlUXVvdGFDYWxsYmFja3NJbXBsLmgiCisKKyNpZiBFTkFCTEUoUVVPVEEpCisKKyNpbmNsdWRl
ICJET01Db3JlRXhjZXB0aW9uLmgiCisjaW5jbHVkZSAiU3RvcmFnZUluZm9FcnJvckNhbGxiYWNr
LmgiCisjaW5jbHVkZSAiU3RvcmFnZUluZm9RdW90YUNhbGxiYWNrLmgiCisjaW5jbHVkZSAiU3Rv
cmFnZUluZm9Vc2FnZUNhbGxiYWNrLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzSW1wbCogV2ViU3Rv
cmFnZVF1b3RhQ2FsbGJhY2tzSW1wbDo6Y3JlYXRlRm9yVXNhZ2VDYWxsYmFjayhQYXNzUmVmUHRy
PFdlYkNvcmU6OlN0b3JhZ2VJbmZvVXNhZ2VDYWxsYmFjaz4gdXNhZ2VDYWxsYmFjaywgUGFzc1Jl
ZlB0cjxXZWJDb3JlOjpTdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2s+IGVycm9yQ2FsbGJhY2spCit7
CisgICAgLy8gVGhpcyBjbGFzcyBpcyBzZWxmLWRlc3RydWN0ZWQ7IHJldHVybmluZyBhIGxlYWtl
ZCBwb2ludGVyLgorICAgIHJldHVybiBhZG9wdFB0cihuZXcgV2ViU3RvcmFnZVF1b3RhQ2FsbGJh
Y2tzSW1wbCh1c2FnZUNhbGxiYWNrLCBlcnJvckNhbGxiYWNrKSkubGVha1B0cigpOworfQorCitX
ZWJTdG9yYWdlUXVvdGFDYWxsYmFja3NJbXBsKiBXZWJTdG9yYWdlUXVvdGFDYWxsYmFja3NJbXBs
OjpjcmVhdGVGb3JRdW90YUNhbGxiYWNrKFBhc3NSZWZQdHI8V2ViQ29yZTo6U3RvcmFnZUluZm9R
dW90YUNhbGxiYWNrPiBxdW90YUNhbGxiYWNrLCBQYXNzUmVmUHRyPFdlYkNvcmU6OlN0b3JhZ2VJ
bmZvRXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFjaykKK3sKKyAgICAvLyBUaGlzIGNsYXNzIGlz
IHNlbGYtZGVzdHJ1Y3RlZDsgcmV0dXJuaW5nIGEgbGVha2VkIHBvaW50ZXIuCisgICAgcmV0dXJu
IGFkb3B0UHRyKG5ldyBXZWJTdG9yYWdlUXVvdGFDYWxsYmFja3NJbXBsKHF1b3RhQ2FsbGJhY2ss
IGVycm9yQ2FsbGJhY2spKS5sZWFrUHRyKCk7Cit9CisKK1dlYlN0b3JhZ2VRdW90YUNhbGxiYWNr
c0ltcGw6On5XZWJTdG9yYWdlUXVvdGFDYWxsYmFja3NJbXBsKCkKK3sKK30KKwordm9pZCBXZWJT
dG9yYWdlUXVvdGFDYWxsYmFja3NJbXBsOjpkaWRRdWVyeVN0b3JhZ2VVc2FnZUFuZFF1b3RhKHVu
c2lnbmVkIGxvbmcgbG9uZyB1c2FnZUluQnl0ZXMsIHVuc2lnbmVkIGxvbmcgbG9uZyBxdW90YUlu
Qnl0ZXMpCit7CisgICAgaWYgKG1fdXNhZ2VDYWxsYmFjaykKKyAgICAgICAgbV91c2FnZUNhbGxi
YWNrLT5oYW5kbGVFdmVudCh1c2FnZUluQnl0ZXMsIHF1b3RhSW5CeXRlcyk7CisgICAgZGVsZXRl
IHRoaXM7Cit9CisKK3ZvaWQgV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzSW1wbDo6ZGlkR3JhbnRT
dG9yYWdlUXVvdGEodW5zaWduZWQgbG9uZyBsb25nIGdyYW50ZWRRdW90YUluQnl0ZXMpCit7Cisg
ICAgaWYgKG1fcXVvdGFDYWxsYmFjaykKKyAgICAgICAgbV9xdW90YUNhbGxiYWNrLT5oYW5kbGVF
dmVudChncmFudGVkUXVvdGFJbkJ5dGVzKTsKKyAgICBkZWxldGUgdGhpczsKK30KKwordm9pZCBX
ZWJTdG9yYWdlUXVvdGFDYWxsYmFja3NJbXBsOjpkaWRGYWlsKFdlYlN0b3JhZ2VRdW90YUVycm9y
IGVycm9yKQoreworICAgIGlmIChtX2Vycm9yQ2FsbGJhY2spIHsKKyAgICAgICAgRXhjZXB0aW9u
Q29kZURlc2NyaXB0aW9uIGRlc2NyaXB0aW9uOworICAgICAgICBnZXRFeGNlcHRpb25Db2RlRGVz
Y3JpcHRpb24oc3RhdGljX2Nhc3Q8RXhjZXB0aW9uQ29kZT4oZXJyb3IpLCBkZXNjcmlwdGlvbik7
CisgICAgICAgIG1fZXJyb3JDYWxsYmFjay0+aGFuZGxlRXZlbnQoRE9NQ29yZUV4Y2VwdGlvbjo6
Y3JlYXRlKGRlc2NyaXB0aW9uKS5nZXQoKSk7CisgICAgfQorICAgIGRlbGV0ZSB0aGlzOworfQor
CitXZWJTdG9yYWdlUXVvdGFDYWxsYmFja3NJbXBsOjpXZWJTdG9yYWdlUXVvdGFDYWxsYmFja3NJ
bXBsKFBhc3NSZWZQdHI8V2ViQ29yZTo6U3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrPiB1c2FnZUNh
bGxiYWNrLCBQYXNzUmVmUHRyPFdlYkNvcmU6OlN0b3JhZ2VJbmZvRXJyb3JDYWxsYmFjaz4gZXJy
b3JDYWxsYmFjaykKKyAgICA6IG1fdXNhZ2VDYWxsYmFjayh1c2FnZUNhbGxiYWNrKQorICAgICwg
bV9lcnJvckNhbGxiYWNrKGVycm9yQ2FsbGJhY2spCit7Cit9CisKK1dlYlN0b3JhZ2VRdW90YUNh
bGxiYWNrc0ltcGw6OldlYlN0b3JhZ2VRdW90YUNhbGxiYWNrc0ltcGwoUGFzc1JlZlB0cjxXZWJD
b3JlOjpTdG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2s+IHF1b3RhQ2FsbGJhY2ssIFBhc3NSZWZQdHI8
V2ViQ29yZTo6U3RvcmFnZUluZm9FcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrKQorICAgIDog
bV9xdW90YUNhbGxiYWNrKHF1b3RhQ2FsbGJhY2spCisgICAgLCBtX2Vycm9yQ2FsbGJhY2soZXJy
b3JDYWxsYmFjaykKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBF
TkFCTEUoUVVPVEEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJT
dG9yYWdlUXVvdGFDYWxsYmFja3NJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJTdG9yYWdlUXVvdGFDYWxsYmFja3NJbXBsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2I1OGMyYjc4YmM2NTk0
NDQ5YTUzN2Q2MzliNGNkN2ZmYzIzM2NhZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlN0b3JhZ2VRdW90YUNhbGxiYWNrc0ltcGwuaApAQCAtMCwwICsx
LDcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6Cisg
KgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAq
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
CisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmbmRlZiBXZWJTdG9yYWdlUXVvdGFDYWxsYmFja3NJbXBsX2gKKyNkZWZpbmUgV2Vi
U3RvcmFnZVF1b3RhQ2FsbGJhY2tzSW1wbF9oCisKKyNpbmNsdWRlICJXZWJTdG9yYWdlUXVvdGFD
YWxsYmFja3MuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9Q
YXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CitjbGFzcyBTdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2s7CitjbGFzcyBTdG9yYWdlSW5mb1F1
b3RhQ2FsbGJhY2s7CitjbGFzcyBTdG9yYWdlSW5mb1VzYWdlQ2FsbGJhY2s7Cit9CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJTdG9yYWdlUXVvdGFDYWxsYmFja3NJbXBsIDogcHVi
bGljIFdlYlN0b3JhZ2VRdW90YUNhbGxiYWNrcyB7CitwdWJsaWM6CisgICAgLy8gVGhlIGZvbGxv
d2luZyBjcmVhdGUgbWV0aG9kcyByZXR1cm4gYSBsZWFrZWQgcHRyICh0aGUgY2xhc3MgaXMgc2Vs
Zi1kZXN0cnVjdGVkKS4KKyAgICBzdGF0aWMgV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzSW1wbCog
Y3JlYXRlRm9yVXNhZ2VDYWxsYmFjayhQYXNzUmVmUHRyPFdlYkNvcmU6OlN0b3JhZ2VJbmZvVXNh
Z2VDYWxsYmFjaz4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6U3RvcmFnZUluZm9FcnJvckNhbGxiYWNr
Pik7CisgICAgc3RhdGljIFdlYlN0b3JhZ2VRdW90YUNhbGxiYWNrc0ltcGwqIGNyZWF0ZUZvclF1
b3RhQ2FsbGJhY2soUGFzc1JlZlB0cjxXZWJDb3JlOjpTdG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2s+
LCBQYXNzUmVmUHRyPFdlYkNvcmU6OlN0b3JhZ2VJbmZvRXJyb3JDYWxsYmFjaz4pOworCisgICAg
dmlydHVhbCB+V2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzSW1wbCgpOworCisgICAgdmlydHVhbCB2
b2lkIGRpZFF1ZXJ5U3RvcmFnZVVzYWdlQW5kUXVvdGEodW5zaWduZWQgbG9uZyBsb25nIHVzYWdl
SW5CeXRlcywgdW5zaWduZWQgbG9uZyBsb25nIHF1b3RhSW5CeXRlcyk7CisgICAgdmlydHVhbCB2
b2lkIGRpZEdyYW50U3RvcmFnZVF1b3RhKHVuc2lnbmVkIGxvbmcgbG9uZyBncmFudGVkUXVvdGFJ
bkJ5dGVzKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChXZWJTdG9yYWdlUXVvdGFFcnJvcik7
CisKK3ByaXZhdGU6CisgICAgV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzSW1wbChQYXNzUmVmUHRy
PFdlYkNvcmU6OlN0b3JhZ2VJbmZvVXNhZ2VDYWxsYmFjaz4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6
U3RvcmFnZUluZm9FcnJvckNhbGxiYWNrPik7CisgICAgV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tz
SW1wbChQYXNzUmVmUHRyPFdlYkNvcmU6OlN0b3JhZ2VJbmZvUXVvdGFDYWxsYmFjaz4sIFBhc3NS
ZWZQdHI8V2ViQ29yZTo6U3RvcmFnZUluZm9FcnJvckNhbGxiYWNrPik7CisKKyAgICBSZWZQdHI8
V2ViQ29yZTo6U3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrPiBtX3VzYWdlQ2FsbGJhY2s7CisgICAg
UmVmUHRyPFdlYkNvcmU6OlN0b3JhZ2VJbmZvUXVvdGFDYWxsYmFjaz4gbV9xdW90YUNhbGxiYWNr
OworICAgIFJlZlB0cjxXZWJDb3JlOjpTdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2s+IG1fZXJyb3JD
YWxsYmFjazsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViU3Rv
cmFnZVF1b3RhQ2FsbGJhY2tzSW1wbF9oCg==
</data>
<flag name="review"
          id="81594"
          type_id="1"
          status="+"
          setter="levin"
    />
          </attachment>
      

    </bug>

</bugzilla>